summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/1942.c6
-rw-r--r--src/mame/drivers/1943.c15
-rw-r--r--src/mame/drivers/20pacgal.c63
-rw-r--r--src/mame/drivers/40love.c221
-rw-r--r--src/mame/drivers/4enraya.c34
-rw-r--r--src/mame/drivers/88games.c82
-rw-r--r--src/mame/drivers/actfancr.c42
-rw-r--r--src/mame/drivers/aeroboto.c31
-rw-r--r--src/mame/drivers/aerofgt.c73
-rw-r--r--src/mame/drivers/airbustr.c98
-rw-r--r--src/mame/drivers/ajax.c11
-rw-r--r--src/mame/drivers/aliens.c62
-rw-r--r--src/mame/drivers/alpha68k.c432
-rw-r--r--src/mame/drivers/ambush.c14
-rw-r--r--src/mame/drivers/ampoker2.c34
-rw-r--r--src/mame/drivers/amspdwy.c25
-rw-r--r--src/mame/drivers/angelkds.c50
-rw-r--r--src/mame/drivers/appoooh.c11
-rw-r--r--src/mame/drivers/aquarium.c47
-rw-r--r--src/mame/drivers/arabian.c49
-rw-r--r--src/mame/drivers/argus.c12
-rw-r--r--src/mame/drivers/armedf.c206
-rw-r--r--src/mame/drivers/artmagic.c77
-rw-r--r--src/mame/drivers/ashnojoe.c32
-rw-r--r--src/mame/drivers/asterix.c64
-rw-r--r--src/mame/drivers/asteroid.c10
-rw-r--r--src/mame/drivers/astrocde.c238
-rw-r--r--src/mame/drivers/astrof.c110
-rw-r--r--src/mame/drivers/asuka.c19
-rw-r--r--src/mame/drivers/atetris.c57
-rw-r--r--src/mame/drivers/avalnche.c41
-rw-r--r--src/mame/drivers/aztarac.c15
-rw-r--r--src/mame/drivers/bagman.c17
-rw-r--r--src/mame/drivers/baraduke.c59
-rw-r--r--src/mame/drivers/battlane.c19
-rw-r--r--src/mame/drivers/battlera.c35
-rw-r--r--src/mame/drivers/battlnts.c17
-rw-r--r--src/mame/drivers/bbusters.c65
-rw-r--r--src/mame/drivers/bigevglf.c139
-rw-r--r--src/mame/drivers/bionicc.c47
-rw-r--r--src/mame/drivers/bishi.c34
-rw-r--r--src/mame/drivers/bking.c90
-rw-r--r--src/mame/drivers/bladestl.c35
-rw-r--r--src/mame/drivers/blktiger.c48
-rw-r--r--src/mame/drivers/blmbycar.c48
-rw-r--r--src/mame/drivers/blockade.c20
-rw-r--r--src/mame/drivers/blockhl.c49
-rw-r--r--src/mame/drivers/blockout.c27
-rw-r--r--src/mame/drivers/blueprnt.c22
-rw-r--r--src/mame/drivers/bogeyman.c24
-rw-r--r--src/mame/drivers/bombjack.c22
-rw-r--r--src/mame/drivers/bottom9.c104
-rw-r--r--src/mame/drivers/brkthru.c27
-rw-r--r--src/mame/drivers/btime.c171
-rw-r--r--src/mame/drivers/buggychl.c38
-rw-r--r--src/mame/drivers/bwing.c81
-rw-r--r--src/mame/drivers/bzone.c21
-rw-r--r--src/mame/drivers/cabal.c65
-rw-r--r--src/mame/drivers/canyon.c20
-rw-r--r--src/mame/drivers/capbowl.c44
-rw-r--r--src/mame/drivers/carjmbre.c7
-rw-r--r--src/mame/drivers/cave.c361
-rw-r--r--src/mame/drivers/cbasebal.c45
-rw-r--r--src/mame/drivers/cbuster.c48
-rw-r--r--src/mame/drivers/ccastles.c77
-rw-r--r--src/mame/drivers/cclimber.c64
-rw-r--r--src/mame/drivers/centiped.c125
-rw-r--r--src/mame/drivers/chaknpop.c6
-rw-r--r--src/mame/drivers/champbas.c49
-rw-r--r--src/mame/drivers/changela.c159
-rw-r--r--src/mame/drivers/chqflag.c90
-rw-r--r--src/mame/drivers/cinemat.c96
-rw-r--r--src/mame/drivers/circus.c8
-rw-r--r--src/mame/drivers/circusc.c48
-rw-r--r--src/mame/drivers/cischeat.c167
-rw-r--r--src/mame/drivers/citycon.c13
-rw-r--r--src/mame/drivers/cloak.c37
-rw-r--r--src/mame/drivers/cloud9.c51
-rw-r--r--src/mame/drivers/clshroad.c12
-rw-r--r--src/mame/drivers/cninja.c104
-rw-r--r--src/mame/drivers/combatsc.c160
-rw-r--r--src/mame/drivers/compgolf.c15
-rw-r--r--src/mame/drivers/contra.c25
-rw-r--r--src/mame/drivers/coolpool.c303
-rw-r--r--src/mame/drivers/cop01.c47
-rw-r--r--src/mame/drivers/copsnrob.c15
-rw-r--r--src/mame/drivers/cosmic.c227
-rw-r--r--src/mame/drivers/cps1.c102
-rw-r--r--src/mame/drivers/cps3.c268
-rw-r--r--src/mame/drivers/crbaloon.c39
-rw-r--r--src/mame/drivers/crgolf.c68
-rw-r--r--src/mame/drivers/crimfght.c39
-rw-r--r--src/mame/drivers/crospang.c6
-rw-r--r--src/mame/drivers/crshrace.c36
-rw-r--r--src/mame/drivers/cvs.c64
-rw-r--r--src/mame/drivers/darius.c161
-rw-r--r--src/mame/drivers/darkmist.c9
-rw-r--r--src/mame/drivers/darkseal.c17
-rw-r--r--src/mame/drivers/dassault.c69
-rw-r--r--src/mame/drivers/dbz.c31
-rw-r--r--src/mame/drivers/dcheese.c54
-rw-r--r--src/mame/drivers/ddragon3.c25
-rw-r--r--src/mame/drivers/ddribble.c38
-rw-r--r--src/mame/drivers/deadang.c13
-rw-r--r--src/mame/drivers/dec0.c68
-rw-r--r--src/mame/drivers/dec8.c509
-rw-r--r--src/mame/drivers/deco32.c420
-rw-r--r--src/mame/drivers/deco_mlc.c103
-rw-r--r--src/mame/drivers/deniam.c15
-rw-r--r--src/mame/drivers/djboy.c150
-rw-r--r--src/mame/drivers/djmain.c158
-rw-r--r--src/mame/drivers/dkong.c206
-rw-r--r--src/mame/drivers/dogfgt.c50
-rw-r--r--src/mame/drivers/dooyong.c20
-rw-r--r--src/mame/drivers/dragrace.c49
-rw-r--r--src/mame/drivers/drgnmst.c106
-rw-r--r--src/mame/drivers/dribling.c20
-rw-r--r--src/mame/drivers/drmicro.c20
-rw-r--r--src/mame/drivers/dynax.c912
-rw-r--r--src/mame/drivers/eolith.c42
-rw-r--r--src/mame/drivers/epos.c13
-rw-r--r--src/mame/drivers/equites.c137
-rw-r--r--src/mame/drivers/esd16.c83
-rw-r--r--src/mame/drivers/espial.c18
-rw-r--r--src/mame/drivers/esripsys.c230
-rw-r--r--src/mame/drivers/exerion.c11
-rw-r--r--src/mame/drivers/exidy.c11
-rw-r--r--src/mame/drivers/exidy440.c82
-rw-r--r--src/mame/drivers/exprraid.c24
-rw-r--r--src/mame/drivers/exterm.c88
-rw-r--r--src/mame/drivers/exzisus.c80
-rw-r--r--src/mame/drivers/f1gp.c79
-rw-r--r--src/mame/drivers/fantland.c139
-rw-r--r--src/mame/drivers/fastlane.c22
-rw-r--r--src/mame/drivers/fcombat.c61
-rw-r--r--src/mame/drivers/fgoal.c89
-rw-r--r--src/mame/drivers/finalizr.c48
-rw-r--r--src/mame/drivers/firetrap.c131
-rw-r--r--src/mame/drivers/firetrk.c164
-rw-r--r--src/mame/drivers/fitfight.c74
-rw-r--r--src/mame/drivers/flkatck.c35
-rw-r--r--src/mame/drivers/flower.c39
-rw-r--r--src/mame/drivers/flstory.c165
-rw-r--r--src/mame/drivers/freekick.c127
-rw-r--r--src/mame/drivers/fromanc2.c139
-rw-r--r--src/mame/drivers/fromance.c107
-rw-r--r--src/mame/drivers/funkybee.c12
-rw-r--r--src/mame/drivers/funworld.c10
-rw-r--r--src/mame/drivers/funybubl.c19
-rw-r--r--src/mame/drivers/fuukifg2.c34
-rw-r--r--src/mame/drivers/fuukifg3.c84
-rw-r--r--src/mame/drivers/gaelco.c65
-rw-r--r--src/mame/drivers/gaelco2.c20
-rw-r--r--src/mame/drivers/gaelco3d.c185
-rw-r--r--src/mame/drivers/gaiden.c106
-rw-r--r--src/mame/drivers/galaga.c62
-rw-r--r--src/mame/drivers/galastrm.c70
-rw-r--r--src/mame/drivers/galaxold.c35
-rw-r--r--src/mame/drivers/galivan.c70
-rw-r--r--src/mame/drivers/galspnbl.c7
-rw-r--r--src/mame/drivers/gaplus.c69
-rw-r--r--src/mame/drivers/gatron.c4
-rw-r--r--src/mame/drivers/gberet.c60
-rw-r--r--src/mame/drivers/gbusters.c79
-rw-r--r--src/mame/drivers/gcpinbal.c72
-rw-r--r--src/mame/drivers/gijoe.c31
-rw-r--r--src/mame/drivers/glass.c21
-rw-r--r--src/mame/drivers/gng.c19
-rw-r--r--src/mame/drivers/goal92.c30
-rw-r--r--src/mame/drivers/goindol.c64
-rw-r--r--src/mame/drivers/goldstar.c162
-rw-r--r--src/mame/drivers/gomoku.c6
-rw-r--r--src/mame/drivers/gotcha.c4
-rw-r--r--src/mame/drivers/gottlieb.c96
-rw-r--r--src/mame/drivers/gradius3.c90
-rw-r--r--src/mame/drivers/grchamp.c105
-rw-r--r--src/mame/drivers/gridlee.c44
-rw-r--r--src/mame/drivers/groundfx.c68
-rw-r--r--src/mame/drivers/gstriker.c99
-rw-r--r--src/mame/drivers/gunbustr.c67
-rw-r--r--src/mame/drivers/gundealr.c6
-rw-r--r--src/mame/drivers/gunsmoke.c4
-rw-r--r--src/mame/drivers/gyruss.c35
-rw-r--r--src/mame/drivers/hanaawas.c20
-rw-r--r--src/mame/drivers/hcastle.c21
-rw-r--r--src/mame/drivers/hexion.c12
-rw-r--r--src/mame/drivers/himesiki.c13
-rw-r--r--src/mame/drivers/hitme.c41
-rw-r--r--src/mame/drivers/hnayayoi.c32
-rw-r--r--src/mame/drivers/hng64.c330
-rw-r--r--src/mame/drivers/homedata.c249
-rw-r--r--src/mame/drivers/hyperspt.c17
-rw-r--r--src/mame/drivers/hyprduel.c147
-rw-r--r--src/mame/drivers/ikki.c15
-rw-r--r--src/mame/drivers/inufuku.c22
-rw-r--r--src/mame/drivers/iqblock.c34
-rw-r--r--src/mame/drivers/irobot.c19
-rw-r--r--src/mame/drivers/ironhors.c11
-rw-r--r--src/mame/drivers/itech32.c348
-rw-r--r--src/mame/drivers/itech8.c94
-rw-r--r--src/mame/drivers/jack.c37
-rw-r--r--src/mame/drivers/jackal.c70
-rw-r--r--src/mame/drivers/jailbrek.c11
-rw-r--r--src/mame/drivers/jedi.c56
-rw-r--r--src/mame/drivers/jpmimpct.c190
-rw-r--r--src/mame/drivers/kaneko16.c109
-rw-r--r--src/mame/drivers/kangaroo.c21
-rw-r--r--src/mame/drivers/karnov.c72
-rw-r--r--src/mame/drivers/kchamp.c46
-rw-r--r--src/mame/drivers/kickgoal.c18
-rw-r--r--src/mame/drivers/kingobox.c32
-rw-r--r--src/mame/drivers/kncljoe.c14
-rw-r--r--src/mame/drivers/konamigx.c272
-rw-r--r--src/mame/drivers/kopunch.c22
-rw-r--r--src/mame/drivers/ksayakyu.c27
-rw-r--r--src/mame/drivers/kyugo.c26
-rw-r--r--src/mame/drivers/labyrunr.c10
-rw-r--r--src/mame/drivers/ladybug.c45
-rw-r--r--src/mame/drivers/ladyfrog.c56
-rw-r--r--src/mame/drivers/laserbat.c71
-rw-r--r--src/mame/drivers/lasso.c41
-rw-r--r--src/mame/drivers/lastduel.c12
-rw-r--r--src/mame/drivers/lazercmd.c88
-rw-r--r--src/mame/drivers/legionna.c6
-rw-r--r--src/mame/drivers/lemmings.c58
-rw-r--r--src/mame/drivers/lethal.c84
-rw-r--r--src/mame/drivers/lethalj.c27
-rw-r--r--src/mame/drivers/liberate.c133
-rw-r--r--src/mame/drivers/lkage.c69
-rw-r--r--src/mame/drivers/lordgun.c45
-rw-r--r--src/mame/drivers/lsasquad.c12
-rw-r--r--src/mame/drivers/lucky74.c36
-rw-r--r--src/mame/drivers/lvcards.c39
-rw-r--r--src/mame/drivers/lwings.c77
-rw-r--r--src/mame/drivers/m10.c139
-rw-r--r--src/mame/drivers/m107.c60
-rw-r--r--src/mame/drivers/m62.c72
-rw-r--r--src/mame/drivers/m72.c234
-rw-r--r--src/mame/drivers/m90.c29
-rw-r--r--src/mame/drivers/m92.c78
-rw-r--r--src/mame/drivers/macrossp.c81
-rw-r--r--src/mame/drivers/madalien.c34
-rw-r--r--src/mame/drivers/madmotor.c7
-rw-r--r--src/mame/drivers/magmax.c29
-rw-r--r--src/mame/drivers/mainevt.c100
-rw-r--r--src/mame/drivers/mainsnk.c20
-rw-r--r--src/mame/drivers/malzak.c52
-rw-r--r--src/mame/drivers/mappy.c84
-rw-r--r--src/mame/drivers/marineb.c7
-rw-r--r--src/mame/drivers/mario.c9
-rw-r--r--src/mame/drivers/markham.c4
-rw-r--r--src/mame/drivers/matmania.c14
-rw-r--r--src/mame/drivers/mcatadv.c31
-rw-r--r--src/mame/drivers/mcr68.c157
-rw-r--r--src/mame/drivers/meadows.c63
-rw-r--r--src/mame/drivers/megasys1.c189
-rw-r--r--src/mame/drivers/megazone.c29
-rw-r--r--src/mame/drivers/mermaid.c56
-rw-r--r--src/mame/drivers/metalmx.c111
-rw-r--r--src/mame/drivers/metlclsh.c41
-rw-r--r--src/mame/drivers/metro.c550
-rw-r--r--src/mame/drivers/mexico86.c4
-rw-r--r--src/mame/drivers/mhavoc.c14
-rw-r--r--src/mame/drivers/midzeus.c129
-rw-r--r--src/mame/drivers/mikie.c31
-rw-r--r--src/mame/drivers/mitchell.c99
-rw-r--r--src/mame/drivers/mjkjidai.c28
-rw-r--r--src/mame/drivers/model1.c154
-rw-r--r--src/mame/drivers/momoko.c6
-rw-r--r--src/mame/drivers/moo.c92
-rw-r--r--src/mame/drivers/mosaic.c42
-rw-r--r--src/mame/drivers/mouser.c32
-rw-r--r--src/mame/drivers/mpu4.c158
-rw-r--r--src/mame/drivers/mrdo.c8
-rw-r--r--src/mame/drivers/mrflea.c72
-rw-r--r--src/mame/drivers/mrjong.c4
-rw-r--r--src/mame/drivers/ms32.c193
-rw-r--r--src/mame/drivers/msisaac.c81
-rw-r--r--src/mame/drivers/mugsmash.c23
-rw-r--r--src/mame/drivers/munchmo.c21
-rw-r--r--src/mame/drivers/mw8080bw.c124
-rw-r--r--src/mame/drivers/mystston.c21
-rw-r--r--src/mame/drivers/mystwarr.c174
-rw-r--r--src/mame/drivers/n8080.c21
-rw-r--r--src/mame/drivers/namcofl.c124
-rw-r--r--src/mame/drivers/namcona1.c204
-rw-r--r--src/mame/drivers/namcond1.c25
-rw-r--r--src/mame/drivers/namcos1.c71
-rw-r--r--src/mame/drivers/namcos21.c523
-rw-r--r--src/mame/drivers/namcos86.c128
-rw-r--r--src/mame/drivers/naughtyb.c81
-rw-r--r--src/mame/drivers/nbmj8688.c32
-rw-r--r--src/mame/drivers/nbmj8891.c4
-rw-r--r--src/mame/drivers/nbmj8991.c16
-rw-r--r--src/mame/drivers/nbmj9195.c473
-rw-r--r--src/mame/drivers/nemesis.c141
-rw-r--r--src/mame/drivers/neogeo.c126
-rw-r--r--src/mame/drivers/ninjakd2.c81
-rw-r--r--src/mame/drivers/ninjaw.c74
-rw-r--r--src/mame/drivers/niyanpai.c204
-rw-r--r--src/mame/drivers/nmk16.c210
-rw-r--r--src/mame/drivers/norautp.c27
-rw-r--r--src/mame/drivers/nova2001.c18
-rw-r--r--src/mame/drivers/nycaptor.c174
-rw-r--r--src/mame/drivers/ohmygod.c17
-rw-r--r--src/mame/drivers/ojankohs.c126
-rw-r--r--src/mame/drivers/oneshot.c47
-rw-r--r--src/mame/drivers/opwolf.c63
-rw-r--r--src/mame/drivers/orbit.c9
-rw-r--r--src/mame/drivers/othldrby.c26
-rw-r--r--src/mame/drivers/othunder.c95
-rw-r--r--src/mame/drivers/overdriv.c58
-rw-r--r--src/mame/drivers/pacland.c64
-rw-r--r--src/mame/drivers/pacman.c347
-rw-r--r--src/mame/drivers/pandoras.c70
-rw-r--r--src/mame/drivers/paradise.c18
-rw-r--r--src/mame/drivers/parodius.c84
-rw-r--r--src/mame/drivers/pastelg.c55
-rw-r--r--src/mame/drivers/pbaction.c24
-rw-r--r--src/mame/drivers/pcktgal.c33
-rw-r--r--src/mame/drivers/pgm.c76
-rw-r--r--src/mame/drivers/pingpong.c32
-rw-r--r--src/mame/drivers/pirates.c15
-rw-r--r--src/mame/drivers/pitnrun.c19
-rw-r--r--src/mame/drivers/pktgaldx.c12
-rw-r--r--src/mame/drivers/playch10.c44
-rw-r--r--src/mame/drivers/playmark.c115
-rw-r--r--src/mame/drivers/plygonet.c218
-rw-r--r--src/mame/drivers/pokechmp.c42
-rw-r--r--src/mame/drivers/polepos.c68
-rw-r--r--src/mame/drivers/policetr.c81
-rw-r--r--src/mame/drivers/polyplay.c62
-rw-r--r--src/mame/drivers/poolshrk.c38
-rw-r--r--src/mame/drivers/pooyan.c11
-rw-r--r--src/mame/drivers/popeye.c18
-rw-r--r--src/mame/drivers/popper.c34
-rw-r--r--src/mame/drivers/portrait.c28
-rw-r--r--src/mame/drivers/powerins.c21
-rw-r--r--src/mame/drivers/prehisle.c6
-rw-r--r--src/mame/drivers/psikyo.c206
-rw-r--r--src/mame/drivers/psikyo4.c95
-rw-r--r--src/mame/drivers/psikyosh.c48
-rw-r--r--src/mame/drivers/psychic5.c47
-rw-r--r--src/mame/drivers/punchout.c89
-rw-r--r--src/mame/drivers/pushman.c106
-rw-r--r--src/mame/drivers/qdrmfgp.c96
-rw-r--r--src/mame/drivers/quizdna.c18
-rw-r--r--src/mame/drivers/raiden.c11
-rw-r--r--src/mame/drivers/rainbow.c16
-rw-r--r--src/mame/drivers/rallyx.c60
-rw-r--r--src/mame/drivers/rastan.c7
-rw-r--r--src/mame/drivers/realbrk.c103
-rw-r--r--src/mame/drivers/redalert.c28
-rw-r--r--src/mame/drivers/renegade.c148
-rw-r--r--src/mame/drivers/retofinv.c76
-rw-r--r--src/mame/drivers/rltennis.c21
-rw-r--r--src/mame/drivers/rockrage.c17
-rw-r--r--src/mame/drivers/rocnrope.c13
-rw-r--r--src/mame/drivers/rohga.c18
-rw-r--r--src/mame/drivers/rollerg.c46
-rw-r--r--src/mame/drivers/rollrace.c20
-rw-r--r--src/mame/drivers/route16.c81
-rw-r--r--src/mame/drivers/rpunch.c24
-rw-r--r--src/mame/drivers/runaway.c20
-rw-r--r--src/mame/drivers/rungun.c76
-rw-r--r--src/mame/drivers/sauro.c36
-rw-r--r--src/mame/drivers/sbasketb.c19
-rw-r--r--src/mame/drivers/scotrsht.c15
-rw-r--r--src/mame/drivers/sderby.c50
-rw-r--r--src/mame/drivers/segag80r.c73
-rw-r--r--src/mame/drivers/segag80v.c105
-rw-r--r--src/mame/drivers/senjyo.c36
-rw-r--r--src/mame/drivers/sf.c135
-rw-r--r--src/mame/drivers/shadfrce.c59
-rw-r--r--src/mame/drivers/shangha3.c69
-rw-r--r--src/mame/drivers/shangkid.c54
-rw-r--r--src/mame/drivers/shisen.c18
-rw-r--r--src/mame/drivers/shootout.c30
-rw-r--r--src/mame/drivers/sidearms.c24
-rw-r--r--src/mame/drivers/sidepckt.c87
-rw-r--r--src/mame/drivers/silkroad.c16
-rw-r--r--src/mame/drivers/simpl156.c204
-rw-r--r--src/mame/drivers/simpsons.c15
-rw-r--r--src/mame/drivers/skydiver.c7
-rw-r--r--src/mame/drivers/skykid.c76
-rw-r--r--src/mame/drivers/skyraid.c32
-rw-r--r--src/mame/drivers/slapfght.c26
-rw-r--r--src/mame/drivers/slapshot.c71
-rw-r--r--src/mame/drivers/snk.c413
-rw-r--r--src/mame/drivers/snk68.c68
-rw-r--r--src/mame/drivers/snookr10.c108
-rw-r--r--src/mame/drivers/snowbros.c131
-rw-r--r--src/mame/drivers/solomon.c25
-rw-r--r--src/mame/drivers/sonson.c23
-rw-r--r--src/mame/drivers/spbactn.c8
-rw-r--r--src/mame/drivers/spcforce.c48
-rw-r--r--src/mame/drivers/spdodgeb.c62
-rw-r--r--src/mame/drivers/speedatk.c46
-rw-r--r--src/mame/drivers/speedbal.c10
-rw-r--r--src/mame/drivers/speedspn.c18
-rw-r--r--src/mame/drivers/splash.c126
-rw-r--r--src/mame/drivers/sprcros2.c28
-rw-r--r--src/mame/drivers/sprint2.c107
-rw-r--r--src/mame/drivers/sprint4.c60
-rw-r--r--src/mame/drivers/sprint8.c35
-rw-r--r--src/mame/drivers/spy.c113
-rw-r--r--src/mame/drivers/srmp2.c138
-rw-r--r--src/mame/drivers/srumbler.c15
-rw-r--r--src/mame/drivers/sshangha.c53
-rw-r--r--src/mame/drivers/sslam.c37
-rw-r--r--src/mame/drivers/ssozumo.c13
-rw-r--r--src/mame/drivers/sspeedr.c30
-rw-r--r--src/mame/drivers/ssrj.c11
-rw-r--r--src/mame/drivers/ssv.c348
-rw-r--r--src/mame/drivers/st0016.c52
-rw-r--r--src/mame/drivers/stactics.c20
-rw-r--r--src/mame/drivers/stadhero.c18
-rw-r--r--src/mame/drivers/starfire.c45
-rw-r--r--src/mame/drivers/starshp1.c33
-rw-r--r--src/mame/drivers/starwars.c19
-rw-r--r--src/mame/drivers/strnskil.c39
-rw-r--r--src/mame/drivers/suna16.c103
-rw-r--r--src/mame/drivers/suna8.c318
-rw-r--r--src/mame/drivers/supbtime.c23
-rw-r--r--src/mame/drivers/superchs.c116
-rw-r--r--src/mame/drivers/superqix.c220
-rw-r--r--src/mame/drivers/suprloco.c8
-rw-r--r--src/mame/drivers/suprnova.c215
-rw-r--r--src/mame/drivers/suprridr.c25
-rw-r--r--src/mame/drivers/suprslam.c27
-rw-r--r--src/mame/drivers/surpratk.c54
-rw-r--r--src/mame/drivers/system1.c156
-rw-r--r--src/mame/drivers/system16.c550
-rw-r--r--src/mame/drivers/tagteam.c19
-rw-r--r--src/mame/drivers/tail2nos.c7
-rw-r--r--src/mame/drivers/taito_b.c139
-rw-r--r--src/mame/drivers/taito_f2.c190
-rw-r--r--src/mame/drivers/taito_f3.c78
-rw-r--r--src/mame/drivers/taito_h.c34
-rw-r--r--src/mame/drivers/taito_l.c297
-rw-r--r--src/mame/drivers/taito_o.c14
-rw-r--r--src/mame/drivers/taito_z.c250
-rw-r--r--src/mame/drivers/taitoair.c109
-rw-r--r--src/mame/drivers/taitojc.c367
-rw-r--r--src/mame/drivers/taitosj.c11
-rw-r--r--src/mame/drivers/tank8.c22
-rw-r--r--src/mame/drivers/tankbatt.c91
-rw-r--r--src/mame/drivers/tankbust.c47
-rw-r--r--src/mame/drivers/taotaido.c31
-rw-r--r--src/mame/drivers/targeth.c12
-rw-r--r--src/mame/drivers/tatsumi.c112
-rw-r--r--src/mame/drivers/tbowl.c70
-rw-r--r--src/mame/drivers/tceptor.c77
-rw-r--r--src/mame/drivers/tecmo.c71
-rw-r--r--src/mame/drivers/tecmo16.c8
-rw-r--r--src/mame/drivers/tecmosys.c54
-rw-r--r--src/mame/drivers/tehkanwc.c48
-rw-r--r--src/mame/drivers/terracre.c36
-rw-r--r--src/mame/drivers/tetrisp2.c163
-rw-r--r--src/mame/drivers/thedeep.c115
-rw-r--r--src/mame/drivers/thepit.c40
-rw-r--r--src/mame/drivers/thief.c22
-rw-r--r--src/mame/drivers/thoop2.c18
-rw-r--r--src/mame/drivers/thunderx.c151
-rw-r--r--src/mame/drivers/tiamc1.c8
-rw-r--r--src/mame/drivers/tigeroad.c17
-rw-r--r--src/mame/drivers/timelimt.c13
-rw-r--r--src/mame/drivers/timeplt.c27
-rw-r--r--src/mame/drivers/tmnt.c435
-rw-r--r--src/mame/drivers/tnzs.c25
-rw-r--r--src/mame/drivers/toaplan2.c395
-rw-r--r--src/mame/drivers/toki.c17
-rw-r--r--src/mame/drivers/topspeed.c50
-rw-r--r--src/mame/drivers/toypop.c97
-rw-r--r--src/mame/drivers/tp84.c34
-rw-r--r--src/mame/drivers/trackfld.c42
-rw-r--r--src/mame/drivers/triplhnt.c39
-rw-r--r--src/mame/drivers/trucocl.c7
-rw-r--r--src/mame/drivers/tryout.c26
-rw-r--r--src/mame/drivers/tsamurai.c144
-rw-r--r--src/mame/drivers/tubep.c91
-rw-r--r--src/mame/drivers/tumbleb.c119
-rw-r--r--src/mame/drivers/tumblep.c24
-rw-r--r--src/mame/drivers/tunhunt.c19
-rw-r--r--src/mame/drivers/turbo.c78
-rw-r--r--src/mame/drivers/tutankhm.c29
-rw-r--r--src/mame/drivers/twin16.c147
-rw-r--r--src/mame/drivers/ultraman.c11
-rw-r--r--src/mame/drivers/ultratnk.c68
-rw-r--r--src/mame/drivers/undrfire.c113
-rw-r--r--src/mame/drivers/unico.c76
-rw-r--r--src/mame/drivers/usgames.c32
-rw-r--r--src/mame/drivers/vaportra.c26
-rw-r--r--src/mame/drivers/vastar.c33
-rw-r--r--src/mame/drivers/vball.c55
-rw-r--r--src/mame/drivers/vendetta.c65
-rw-r--r--src/mame/drivers/vicdual.c293
-rw-r--r--src/mame/drivers/victory.c12
-rw-r--r--src/mame/drivers/videopin.c18
-rw-r--r--src/mame/drivers/vigilant.c26
-rw-r--r--src/mame/drivers/vsnes.c40
-rw-r--r--src/mame/drivers/warpwarp.c97
-rw-r--r--src/mame/drivers/warriorb.c55
-rw-r--r--src/mame/drivers/wc90.c22
-rw-r--r--src/mame/drivers/wc90b.c29
-rw-r--r--src/mame/drivers/wecleman.c131
-rw-r--r--src/mame/drivers/welltris.c24
-rw-r--r--src/mame/drivers/wgp.c79
-rw-r--r--src/mame/drivers/wiping.c26
-rw-r--r--src/mame/drivers/wiz.c51
-rw-r--r--src/mame/drivers/wolfpack.c70
-rw-r--r--src/mame/drivers/wrally.c12
-rw-r--r--src/mame/drivers/wwfsstar.c37
-rw-r--r--src/mame/drivers/wwfwfest.c60
-rw-r--r--src/mame/drivers/xain.c67
-rw-r--r--src/mame/drivers/xexex.c84
-rw-r--r--src/mame/drivers/xmen.c56
-rw-r--r--src/mame/drivers/xorworld.c12
-rw-r--r--src/mame/drivers/xxmissio.c32
-rw-r--r--src/mame/drivers/xyonix.c54
-rw-r--r--src/mame/drivers/yunsun16.c14
-rw-r--r--src/mame/drivers/yunsung8.c20
-rw-r--r--src/mame/drivers/zac2650.c8
-rw-r--r--src/mame/drivers/zaccaria.c42
-rw-r--r--src/mame/drivers/zaxxon.c42
-rw-r--r--src/mame/includes/1942.h1
-rw-r--r--src/mame/includes/1943.h2
-rw-r--r--src/mame/includes/20pacgal.h8
-rw-r--r--src/mame/includes/40love.h15
-rw-r--r--src/mame/includes/4enraya.h3
-rw-r--r--src/mame/includes/88games.h8
-rw-r--r--src/mame/includes/actfancr.h4
-rw-r--r--src/mame/includes/aeroboto.h4
-rw-r--r--src/mame/includes/aerofgt.h7
-rw-r--r--src/mame/includes/airbustr.h12
-rw-r--r--src/mame/includes/ajax.h1
-rw-r--r--src/mame/includes/aliens.h6
-rw-r--r--src/mame/includes/alpha68k.h21
-rw-r--r--src/mame/includes/ambush.h2
-rw-r--r--src/mame/includes/ampoker2.h8
-rw-r--r--src/mame/includes/amspdwy.h4
-rw-r--r--src/mame/includes/angelkds.h6
-rw-r--r--src/mame/includes/appoooh.h1
-rw-r--r--src/mame/includes/aquarium.h6
-rw-r--r--src/mame/includes/arabian.h5
-rw-r--r--src/mame/includes/argus.h1
-rw-r--r--src/mame/includes/armedf.h17
-rw-r--r--src/mame/includes/artmagic.h6
-rw-r--r--src/mame/includes/ashnojoe.h5
-rw-r--r--src/mame/includes/asterix.h5
-rw-r--r--src/mame/includes/asteroid.h2
-rw-r--r--src/mame/includes/astrocde.h22
-rw-r--r--src/mame/includes/astrof.h11
-rw-r--r--src/mame/includes/asuka.h4
-rw-r--r--src/mame/includes/atetris.h5
-rw-r--r--src/mame/includes/avalnche.h5
-rw-r--r--src/mame/includes/aztarac.h2
-rw-r--r--src/mame/includes/bagman.h2
-rw-r--r--src/mame/includes/baraduke.h6
-rw-r--r--src/mame/includes/battlane.h1
-rw-r--r--src/mame/includes/battlera.h4
-rw-r--r--src/mame/includes/battlnts.h2
-rw-r--r--src/mame/includes/bbusters.h10
-rw-r--r--src/mame/includes/bigevglf.h18
-rw-r--r--src/mame/includes/bionicc.h5
-rw-r--r--src/mame/includes/bishi.h5
-rw-r--r--src/mame/includes/bking.h14
-rw-r--r--src/mame/includes/bladestl.h3
-rw-r--r--src/mame/includes/blktiger.h6
-rw-r--r--src/mame/includes/blmbycar.h6
-rw-r--r--src/mame/includes/blockade.h2
-rw-r--r--src/mame/includes/blockhl.h5
-rw-r--r--src/mame/includes/blockout.h3
-rw-r--r--src/mame/includes/blueprnt.h3
-rw-r--r--src/mame/includes/bogeyman.h2
-rw-r--r--src/mame/includes/bombjack.h3
-rw-r--r--src/mame/includes/bottom9.h11
-rw-r--r--src/mame/includes/brkthru.h3
-rw-r--r--src/mame/includes/btime.h11
-rw-r--r--src/mame/includes/buggychl.h5
-rw-r--r--src/mame/includes/bwing.h7
-rw-r--r--src/mame/includes/bzone.h3
-rw-r--r--src/mame/includes/cabal.h8
-rw-r--r--src/mame/includes/canyon.h3
-rw-r--r--src/mame/includes/capbowl.h5
-rw-r--r--src/mame/includes/carjmbre.h1
-rw-r--r--src/mame/includes/cave.h30
-rw-r--r--src/mame/includes/cbasebal.h4
-rw-r--r--src/mame/includes/cbuster.h2
-rw-r--r--src/mame/includes/ccastles.h9
-rw-r--r--src/mame/includes/cclimber.h7
-rw-r--r--src/mame/includes/centiped.h13
-rw-r--r--src/mame/includes/chaknpop.h1
-rw-r--r--src/mame/includes/champbas.h5
-rw-r--r--src/mame/includes/changela.h21
-rw-r--r--src/mame/includes/chqflag.h6
-rw-r--r--src/mame/includes/cinemat.h11
-rw-r--r--src/mame/includes/circus.h1
-rw-r--r--src/mame/includes/circusc.h5
-rw-r--r--src/mame/includes/cischeat.h16
-rw-r--r--src/mame/includes/citycon.h2
-rw-r--r--src/mame/includes/cloak.h6
-rw-r--r--src/mame/includes/cloud9.h6
-rw-r--r--src/mame/includes/clshroad.h1
-rw-r--r--src/mame/includes/cninja.h7
-rw-r--r--src/mame/includes/combatsc.h13
-rw-r--r--src/mame/includes/compgolf.h1
-rw-r--r--src/mame/includes/contra.h4
-rw-r--r--src/mame/includes/coolpool.h20
-rw-r--r--src/mame/includes/cop01.h5
-rw-r--r--src/mame/includes/copsnrob.h2
-rw-r--r--src/mame/includes/cosmic.h9
-rw-r--r--src/mame/includes/cps1.h14
-rw-r--r--src/mame/includes/cps3.h30
-rw-r--r--src/mame/includes/crbaloon.h3
-rw-r--r--src/mame/includes/crgolf.h9
-rw-r--r--src/mame/includes/crimfght.h4
-rw-r--r--src/mame/includes/crospang.h1
-rw-r--r--src/mame/includes/crshrace.h5
-rw-r--r--src/mame/includes/cvs.h6
-rw-r--r--src/mame/includes/darius.h17
-rw-r--r--src/mame/includes/darkmist.h1
-rw-r--r--src/mame/includes/darkseal.h2
-rw-r--r--src/mame/includes/dassault.h8
-rw-r--r--src/mame/includes/dbz.h4
-rw-r--r--src/mame/includes/dcheese.h6
-rw-r--r--src/mame/includes/ddragon3.h1
-rw-r--r--src/mame/includes/ddribble.h6
-rw-r--r--src/mame/includes/deadang.h2
-rw-r--r--src/mame/includes/dec0.h6
-rw-r--r--src/mame/includes/dec8.h22
-rw-r--r--src/mame/includes/deco32.h30
-rw-r--r--src/mame/includes/deco_mlc.h10
-rw-r--r--src/mame/includes/deniam.h2
-rw-r--r--src/mame/includes/djboy.h17
-rw-r--r--src/mame/includes/djmain.h18
-rw-r--r--src/mame/includes/dkong.h17
-rw-r--r--src/mame/includes/dogfgt.h6
-rw-r--r--src/mame/includes/dooyong.h2
-rw-r--r--src/mame/includes/dragrace.h5
-rw-r--r--src/mame/includes/drgnmst.h10
-rw-r--r--src/mame/includes/dribling.h2
-rw-r--r--src/mame/includes/drmicro.h2
-rw-r--r--src/mame/includes/dynax.h74
-rw-r--r--src/mame/includes/eolith.h4
-rw-r--r--src/mame/includes/epos.h1
-rw-r--r--src/mame/includes/equites.h13
-rw-r--r--src/mame/includes/esd16.h7
-rw-r--r--src/mame/includes/espial.h2
-rw-r--r--src/mame/includes/esripsys.h20
-rw-r--r--src/mame/includes/exerion.h1
-rw-r--r--src/mame/includes/exidy.h1
-rw-r--r--src/mame/includes/exidy440.h10
-rw-r--r--src/mame/includes/exprraid.h3
-rw-r--r--src/mame/includes/exterm.h11
-rw-r--r--src/mame/includes/exzisus.h8
-rw-r--r--src/mame/includes/f1gp.h9
-rw-r--r--src/mame/includes/fantland.h11
-rw-r--r--src/mame/includes/fastlane.h2
-rw-r--r--src/mame/includes/fcombat.h9
-rw-r--r--src/mame/includes/fgoal.h12
-rw-r--r--src/mame/includes/finalizr.h6
-rw-r--r--src/mame/includes/firetrap.h10
-rw-r--r--src/mame/includes/firetrk.h13
-rw-r--r--src/mame/includes/fitfight.h10
-rw-r--r--src/mame/includes/flkatck.h5
-rw-r--r--src/mame/includes/flower.h6
-rw-r--r--src/mame/includes/flstory.h8
-rw-r--r--src/mame/includes/freekick.h11
-rw-r--r--src/mame/includes/fromanc2.h15
-rw-r--r--src/mame/includes/fromance.h10
-rw-r--r--src/mame/includes/funkybee.h2
-rw-r--r--src/mame/includes/funworld.h2
-rw-r--r--src/mame/includes/funybubl.h3
-rw-r--r--src/mame/includes/fuukifg2.h3
-rw-r--r--src/mame/includes/fuukifg3.h8
-rw-r--r--src/mame/includes/gaelco.h7
-rw-r--r--src/mame/includes/gaelco2.h5
-rw-r--r--src/mame/includes/gaelco3d.h19
-rw-r--r--src/mame/includes/gaiden.h6
-rw-r--r--src/mame/includes/galaga.h4
-rw-r--r--src/mame/includes/galastrm.h6
-rw-r--r--src/mame/includes/galaxold.h7
-rw-r--r--src/mame/includes/galivan.h9
-rw-r--r--src/mame/includes/galspnbl.h1
-rw-r--r--src/mame/includes/gaplus.h7
-rw-r--r--src/mame/includes/gatron.h1
-rw-r--r--src/mame/includes/gberet.h7
-rw-r--r--src/mame/includes/gbusters.h8
-rw-r--r--src/mame/includes/gcpinbal.h2
-rw-r--r--src/mame/includes/gijoe.h5
-rw-r--r--src/mame/includes/glass.h3
-rw-r--r--src/mame/includes/gng.h3
-rw-r--r--src/mame/includes/goal92.h3
-rw-r--r--src/mame/includes/goindol.h6
-rw-r--r--src/mame/includes/goldstar.h31
-rw-r--r--src/mame/includes/gomoku.h1
-rw-r--r--src/mame/includes/gotcha.h1
-rw-r--r--src/mame/includes/gottlieb.h8
-rw-r--r--src/mame/includes/gradius3.h11
-rw-r--r--src/mame/includes/grchamp.h11
-rw-r--r--src/mame/includes/gridlee.h5
-rw-r--r--src/mame/includes/groundfx.h7
-rw-r--r--src/mame/includes/gstriker.h11
-rw-r--r--src/mame/includes/gunbustr.h6
-rw-r--r--src/mame/includes/gundealr.h1
-rw-r--r--src/mame/includes/gunsmoke.h1
-rw-r--r--src/mame/includes/gyruss.h5
-rw-r--r--src/mame/includes/hanaawas.h2
-rw-r--r--src/mame/includes/hcastle.h3
-rw-r--r--src/mame/includes/hexion.h1
-rw-r--r--src/mame/includes/himesiki.h2
-rw-r--r--src/mame/includes/hitme.h5
-rw-r--r--src/mame/includes/hnayayoi.h3
-rw-r--r--src/mame/includes/hng64.h30
-rw-r--r--src/mame/includes/homedata.h23
-rw-r--r--src/mame/includes/hyperspt.h2
-rw-r--r--src/mame/includes/hyprduel.h9
-rw-r--r--src/mame/includes/ikki.h2
-rw-r--r--src/mame/includes/inufuku.h3
-rw-r--r--src/mame/includes/iqblock.h4
-rw-r--r--src/mame/includes/irobot.h3
-rw-r--r--src/mame/includes/ironhors.h1
-rw-r--r--src/mame/includes/itech32.h33
-rw-r--r--src/mame/includes/itech8.h10
-rw-r--r--src/mame/includes/jack.h3
-rw-r--r--src/mame/includes/jackal.h9
-rw-r--r--src/mame/includes/jailbrek.h1
-rw-r--r--src/mame/includes/jedi.h7
-rw-r--r--src/mame/includes/jpmimpct.h18
-rw-r--r--src/mame/includes/kaneko16.h10
-rw-r--r--src/mame/includes/kangaroo.h3
-rw-r--r--src/mame/includes/karnov.h2
-rw-r--r--src/mame/includes/kchamp.h6
-rw-r--r--src/mame/includes/kickgoal.h2
-rw-r--r--src/mame/includes/kingobox.h4
-rw-r--r--src/mame/includes/kncljoe.h2
-rw-r--r--src/mame/includes/konamigx.h23
-rw-r--r--src/mame/includes/kopunch.h3
-rw-r--r--src/mame/includes/ksayakyu.h4
-rw-r--r--src/mame/includes/kyugo.h3
-rw-r--r--src/mame/includes/labyrunr.h1
-rw-r--r--src/mame/includes/ladybug.h6
-rw-r--r--src/mame/includes/ladyfrog.h7
-rw-r--r--src/mame/includes/laserbat.h7
-rw-r--r--src/mame/includes/lasso.h4
-rw-r--r--src/mame/includes/lastduel.h2
-rw-r--r--src/mame/includes/lazercmd.h8
-rw-r--r--src/mame/includes/legionna.h1
-rw-r--r--src/mame/includes/lemmings.h6
-rw-r--r--src/mame/includes/lethal.h10
-rw-r--r--src/mame/includes/lethalj.h3
-rw-r--r--src/mame/includes/liberate.h10
-rw-r--r--src/mame/includes/lkage.h8
-rw-r--r--src/mame/includes/lordgun.h6
-rw-r--r--src/mame/includes/lsasquad.h1
-rw-r--r--src/mame/includes/lucky74.h6
-rw-r--r--src/mame/includes/lvcards.h3
-rw-r--r--src/mame/includes/lwings.h7
-rw-r--r--src/mame/includes/m10.h8
-rw-r--r--src/mame/includes/m107.h9
-rw-r--r--src/mame/includes/m62.h9
-rw-r--r--src/mame/includes/m72.h26
-rw-r--r--src/mame/includes/m90.h4
-rw-r--r--src/mame/includes/m92.h10
-rw-r--r--src/mame/includes/macrossp.h7
-rw-r--r--src/mame/includes/madalien.h5
-rw-r--r--src/mame/includes/madmotor.h1
-rw-r--r--src/mame/includes/magmax.h4
-rw-r--r--src/mame/includes/mainevt.h9
-rw-r--r--src/mame/includes/mainsnk.h3
-rw-r--r--src/mame/includes/malzak.h7
-rw-r--r--src/mame/includes/mappy.h3
-rw-r--r--src/mame/includes/marineb.h1
-rw-r--r--src/mame/includes/mario.h1
-rw-r--r--src/mame/includes/markham.h1
-rw-r--r--src/mame/includes/matmania.h2
-rw-r--r--src/mame/includes/mcatadv.h4
-rw-r--r--src/mame/includes/mcr68.h13
-rw-r--r--src/mame/includes/meadows.h6
-rw-r--r--src/mame/includes/megasys1.h14
-rw-r--r--src/mame/includes/megazone.h4
-rw-r--r--src/mame/includes/mermaid.h6
-rw-r--r--src/mame/includes/metalmx.h18
-rw-r--r--src/mame/includes/metlclsh.h6
-rw-r--r--src/mame/includes/metro.h31
-rw-r--r--src/mame/includes/mexico86.h1
-rw-r--r--src/mame/includes/mhavoc.h2
-rw-r--r--src/mame/includes/midzeus.h19
-rw-r--r--src/mame/includes/mikie.h4
-rw-r--r--src/mame/includes/mitchell.h10
-rw-r--r--src/mame/includes/mjkjidai.h2
-rw-r--r--src/mame/includes/model1.h16
-rw-r--r--src/mame/includes/momoko.h1
-rw-r--r--src/mame/includes/moo.h10
-rw-r--r--src/mame/includes/mosaic.h4
-rw-r--r--src/mame/includes/mouser.h4
-rw-r--r--src/mame/includes/mpu4.h11
-rw-r--r--src/mame/includes/mrdo.h1
-rw-r--r--src/mame/includes/mrflea.h10
-rw-r--r--src/mame/includes/mrjong.h1
-rw-r--r--src/mame/includes/ms32.h28
-rw-r--r--src/mame/includes/msisaac.h10
-rw-r--r--src/mame/includes/mugsmash.h2
-rw-r--r--src/mame/includes/munchmo.h3
-rw-r--r--src/mame/includes/mw8080bw.h14
-rw-r--r--src/mame/includes/mystston.h2
-rw-r--r--src/mame/includes/mystwarr.h19
-rw-r--r--src/mame/includes/n8080.h3
-rw-r--r--src/mame/includes/namcofl.h19
-rw-r--r--src/mame/includes/namcona1.h23
-rw-r--r--src/mame/includes/namcond1.h5
-rw-r--r--src/mame/includes/namcos1.h8
-rw-r--r--src/mame/includes/namcos21.h69
-rw-r--r--src/mame/includes/namcos86.h13
-rw-r--r--src/mame/includes/naughtyb.h6
-rw-r--r--src/mame/includes/nbmj8688.h2
-rw-r--r--src/mame/includes/nbmj8891.h1
-rw-r--r--src/mame/includes/nbmj8991.h3
-rw-r--r--src/mame/includes/nbmj9195.h49
-rw-r--r--src/mame/includes/nemesis.h13
-rw-r--r--src/mame/includes/neogeo.h15
-rw-r--r--src/mame/includes/ninjakd2.h6
-rw-r--r--src/mame/includes/ninjaw.h6
-rw-r--r--src/mame/includes/niyanpai.h28
-rw-r--r--src/mame/includes/nmk16.h23
-rw-r--r--src/mame/includes/norautp.h5
-rw-r--r--src/mame/includes/nova2001.h2
-rw-r--r--src/mame/includes/nycaptor.h20
-rw-r--r--src/mame/includes/ohmygod.h1
-rw-r--r--src/mame/includes/ojankohs.h11
-rw-r--r--src/mame/includes/oneshot.h5
-rw-r--r--src/mame/includes/opwolf.h9
-rw-r--r--src/mame/includes/orbit.h1
-rw-r--r--src/mame/includes/othldrby.h4
-rw-r--r--src/mame/includes/othunder.h9
-rw-r--r--src/mame/includes/overdriv.h7
-rw-r--r--src/mame/includes/pacland.h8
-rw-r--r--src/mame/includes/pacman.h40
-rw-r--r--src/mame/includes/pandoras.h6
-rw-r--r--src/mame/includes/paradise.h2
-rw-r--r--src/mame/includes/parodius.h8
-rw-r--r--src/mame/includes/pastelg.h5
-rw-r--r--src/mame/includes/pbaction.h3
-rw-r--r--src/mame/includes/pcktgal.h4
-rw-r--r--src/mame/includes/pgm.h8
-rw-r--r--src/mame/includes/pingpong.h3
-rw-r--r--src/mame/includes/pirates.h2
-rw-r--r--src/mame/includes/pitnrun.h3
-rw-r--r--src/mame/includes/pktgaldx.h2
-rw-r--r--src/mame/includes/playch10.h5
-rw-r--r--src/mame/includes/playmark.h10
-rw-r--r--src/mame/includes/plygonet.h24
-rw-r--r--src/mame/includes/pokechmp.h4
-rw-r--r--src/mame/includes/polepos.h5
-rw-r--r--src/mame/includes/policetr.h5
-rw-r--r--src/mame/includes/polyplay.h3
-rw-r--r--src/mame/includes/poolshrk.h5
-rw-r--r--src/mame/includes/pooyan.h1
-rw-r--r--src/mame/includes/popeye.h2
-rw-r--r--src/mame/includes/popper.h3
-rw-r--r--src/mame/includes/portrait.h3
-rw-r--r--src/mame/includes/powerins.h3
-rw-r--r--src/mame/includes/prehisle.h1
-rw-r--r--src/mame/includes/psikyo.h14
-rw-r--r--src/mame/includes/psikyo4.h7
-rw-r--r--src/mame/includes/psikyosh.h4
-rw-r--r--src/mame/includes/psychic5.h5
-rw-r--r--src/mame/includes/punchout.h6
-rw-r--r--src/mame/includes/pushman.h8
-rw-r--r--src/mame/includes/qdrmfgp.h10
-rw-r--r--src/mame/includes/quizdna.h2
-rw-r--r--src/mame/includes/raiden.h1
-rw-r--r--src/mame/includes/rainbow.h2
-rw-r--r--src/mame/includes/rallyx.h4
-rw-r--r--src/mame/includes/rastan.h1
-rw-r--r--src/mame/includes/realbrk.h6
-rw-r--r--src/mame/includes/redalert.h4
-rw-r--r--src/mame/includes/renegade.h7
-rw-r--r--src/mame/includes/retofinv.h10
-rw-r--r--src/mame/includes/rltennis.h3
-rw-r--r--src/mame/includes/rockrage.h2
-rw-r--r--src/mame/includes/rocnrope.h2
-rw-r--r--src/mame/includes/rohga.h2
-rw-r--r--src/mame/includes/rollerg.h5
-rw-r--r--src/mame/includes/rollrace.h4
-rw-r--r--src/mame/includes/route16.h8
-rw-r--r--src/mame/includes/rpunch.h3
-rw-r--r--src/mame/includes/runaway.h3
-rw-r--r--src/mame/includes/rungun.h8
-rw-r--r--src/mame/includes/sauro.h5
-rw-r--r--src/mame/includes/sbasketb.h3
-rw-r--r--src/mame/includes/scotrsht.h2
-rw-r--r--src/mame/includes/sderby.h7
-rw-r--r--src/mame/includes/segag80r.h9
-rw-r--r--src/mame/includes/segag80v.h10
-rw-r--r--src/mame/includes/senjyo.h4
-rw-r--r--src/mame/includes/sf.h7
-rw-r--r--src/mame/includes/shadfrce.h6
-rw-r--r--src/mame/includes/shangha3.h7
-rw-r--r--src/mame/includes/shangkid.h5
-rw-r--r--src/mame/includes/shisen.h2
-rw-r--r--src/mame/includes/shootout.h4
-rw-r--r--src/mame/includes/sidearms.h3
-rw-r--r--src/mame/includes/sidepckt.h4
-rw-r--r--src/mame/includes/silkroad.h2
-rw-r--r--src/mame/includes/simpl156.h18
-rw-r--r--src/mame/includes/simpsons.h2
-rw-r--r--src/mame/includes/skydiver.h1
-rw-r--r--src/mame/includes/skykid.h8
-rw-r--r--src/mame/includes/skyraid.h4
-rw-r--r--src/mame/includes/slapfght.h2
-rw-r--r--src/mame/includes/slapshot.h8
-rw-r--r--src/mame/includes/snk.h48
-rw-r--r--src/mame/includes/snk68.h10
-rw-r--r--src/mame/includes/snookr10.h3
-rw-r--r--src/mame/includes/snowbros.h15
-rw-r--r--src/mame/includes/solomon.h3
-rw-r--r--src/mame/includes/sonson.h3
-rw-r--r--src/mame/includes/spbactn.h1
-rw-r--r--src/mame/includes/spcforce.h6
-rw-r--r--src/mame/includes/spdodgeb.h5
-rw-r--r--src/mame/includes/speedatk.h4
-rw-r--r--src/mame/includes/speedbal.h1
-rw-r--r--src/mame/includes/speedspn.h3
-rw-r--r--src/mame/includes/splash.h16
-rw-r--r--src/mame/includes/sprcros2.h2
-rw-r--r--src/mame/includes/sprint2.h12
-rw-r--r--src/mame/includes/sprint4.h10
-rw-r--r--src/mame/includes/sprint8.h4
-rw-r--r--src/mame/includes/spy.h8
-rw-r--r--src/mame/includes/srmp2.h16
-rw-r--r--src/mame/includes/srumbler.h1
-rw-r--r--src/mame/includes/sshangha.h6
-rw-r--r--src/mame/includes/sslam.h4
-rw-r--r--src/mame/includes/ssozumo.h2
-rw-r--r--src/mame/includes/sspeedr.h5
-rw-r--r--src/mame/includes/ssrj.h1
-rw-r--r--src/mame/includes/ssv.h35
-rw-r--r--src/mame/includes/st0016.h6
-rw-r--r--src/mame/includes/stactics.h3
-rw-r--r--src/mame/includes/stadhero.h2
-rw-r--r--src/mame/includes/starfire.h6
-rw-r--r--src/mame/includes/starshp1.h3
-rw-r--r--src/mame/includes/starwars.h3
-rw-r--r--src/mame/includes/strnskil.h4
-rw-r--r--src/mame/includes/suna16.h9
-rw-r--r--src/mame/includes/suna8.h34
-rw-r--r--src/mame/includes/supbtime.h2
-rw-r--r--src/mame/includes/superchs.h10
-rw-r--r--src/mame/includes/superqix.h18
-rw-r--r--src/mame/includes/suprloco.h1
-rw-r--r--src/mame/includes/suprnova.h20
-rw-r--r--src/mame/includes/suprridr.h4
-rw-r--r--src/mame/includes/suprslam.h4
-rw-r--r--src/mame/includes/surpratk.h4
-rw-r--r--src/mame/includes/system1.h15
-rw-r--r--src/mame/includes/system16.h38
-rw-r--r--src/mame/includes/tagteam.h3
-rw-r--r--src/mame/includes/tail2nos.h1
-rw-r--r--src/mame/includes/taito_b.h17
-rw-r--r--src/mame/includes/taito_f2.h14
-rw-r--r--src/mame/includes/taito_f3.h8
-rw-r--r--src/mame/includes/taito_h.h2
-rw-r--r--src/mame/includes/taito_l.h32
-rw-r--r--src/mame/includes/taito_o.h2
-rw-r--r--src/mame/includes/taito_z.h25
-rw-r--r--src/mame/includes/taitoair.h12
-rw-r--r--src/mame/includes/taitojc.h38
-rw-r--r--src/mame/includes/taitosj.h1
-rw-r--r--src/mame/includes/tank8.h3
-rw-r--r--src/mame/includes/tankbatt.h12
-rw-r--r--src/mame/includes/tankbust.h5
-rw-r--r--src/mame/includes/taotaido.h4
-rw-r--r--src/mame/includes/targeth.h2
-rw-r--r--src/mame/includes/tatsumi.h11
-rw-r--r--src/mame/includes/tbowl.h10
-rw-r--r--src/mame/includes/tceptor.h12
-rw-r--r--src/mame/includes/tecmo.h7
-rw-r--r--src/mame/includes/tecmo16.h1
-rw-r--r--src/mame/includes/tecmosys.h6
-rw-r--r--src/mame/includes/tehkanwc.h7
-rw-r--r--src/mame/includes/terracre.h5
-rw-r--r--src/mame/includes/tetrisp2.h16
-rw-r--r--src/mame/includes/thedeep.h11
-rw-r--r--src/mame/includes/thepit.h4
-rw-r--r--src/mame/includes/thief.h2
-rw-r--r--src/mame/includes/thoop2.h3
-rw-r--r--src/mame/includes/thunderx.h11
-rw-r--r--src/mame/includes/tiamc1.h1
-rw-r--r--src/mame/includes/tigeroad.h2
-rw-r--r--src/mame/includes/timelimt.h2
-rw-r--r--src/mame/includes/timeplt.h3
-rw-r--r--src/mame/includes/tmnt.h34
-rw-r--r--src/mame/includes/tnzs.h3
-rw-r--r--src/mame/includes/toaplan2.h36
-rw-r--r--src/mame/includes/toki.h3
-rw-r--r--src/mame/includes/topspeed.h6
-rw-r--r--src/mame/includes/toypop.h13
-rw-r--r--src/mame/includes/tp84.h4
-rw-r--r--src/mame/includes/trackfld.h4
-rw-r--r--src/mame/includes/triplhnt.h5
-rw-r--r--src/mame/includes/trucocl.h1
-rw-r--r--src/mame/includes/tryout.h4
-rw-r--r--src/mame/includes/tsamurai.h18
-rw-r--r--src/mame/includes/tubep.h12
-rw-r--r--src/mame/includes/tumbleb.h14
-rw-r--r--src/mame/includes/tumblep.h4
-rw-r--r--src/mame/includes/tunhunt.h2
-rw-r--r--src/mame/includes/turbo.h9
-rw-r--r--src/mame/includes/tutankhm.h4
-rw-r--r--src/mame/includes/twin16.h13
-rw-r--r--src/mame/includes/ultraman.h2
-rw-r--r--src/mame/includes/ultratnk.h11
-rw-r--r--src/mame/includes/undrfire.h13
-rw-r--r--src/mame/includes/unico.h11
-rw-r--r--src/mame/includes/usgames.h3
-rw-r--r--src/mame/includes/vaportra.h3
-rw-r--r--src/mame/includes/vastar.h5
-rw-r--r--src/mame/includes/vball.h5
-rw-r--r--src/mame/includes/vendetta.h7
-rw-r--r--src/mame/includes/vicdual.h30
-rw-r--r--src/mame/includes/victory.h1
-rw-r--r--src/mame/includes/videopin.h2
-rw-r--r--src/mame/includes/vigilant.h3
-rw-r--r--src/mame/includes/vsnes.h5
-rw-r--r--src/mame/includes/warpwarp.h6
-rw-r--r--src/mame/includes/warriorb.h5
-rw-r--r--src/mame/includes/wc90.h3
-rw-r--r--src/mame/includes/wc90b.h4
-rw-r--r--src/mame/includes/wecleman.h10
-rw-r--r--src/mame/includes/welltris.h3
-rw-r--r--src/mame/includes/wgp.h10
-rw-r--r--src/mame/includes/wiping.h4
-rw-r--r--src/mame/includes/wiz.h5
-rw-r--r--src/mame/includes/wolfpack.h14
-rw-r--r--src/mame/includes/wrally.h2
-rw-r--r--src/mame/includes/wwfsstar.h4
-rw-r--r--src/mame/includes/wwfwfest.h7
-rw-r--r--src/mame/includes/xain.h8
-rw-r--r--src/mame/includes/xexex.h12
-rw-r--r--src/mame/includes/xmen.h6
-rw-r--r--src/mame/includes/xorworld.h2
-rw-r--r--src/mame/includes/xxmissio.h3
-rw-r--r--src/mame/includes/xyonix.h3
-rw-r--r--src/mame/includes/yunsun16.h2
-rw-r--r--src/mame/includes/yunsung8.h2
-rw-r--r--src/mame/includes/zac2650.h1
-rw-r--r--src/mame/includes/zaccaria.h7
-rw-r--r--src/mame/includes/zaxxon.h4
1050 files changed, 22644 insertions, 20888 deletions
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index 5a3c2c7a53a..5b804318d17 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -69,9 +69,9 @@ correctly.
#include "includes/1942.h"
-static WRITE8_HANDLER( c1942_bankswitch_w )
+WRITE8_MEMBER(_1942_state::c1942_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
static TIMER_DEVICE_CALLBACK( c1942_scanline )
@@ -98,7 +98,7 @@ static ADDRESS_MAP_START( c1942_map, AS_PROGRAM, 8, _1942_state )
AM_RANGE(0xc802, 0xc803) AM_WRITE_LEGACY(c1942_scroll_w)
AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(c1942_c804_w)
AM_RANGE(0xc805, 0xc805) AM_WRITE_LEGACY(c1942_palette_bank_w)
- AM_RANGE(0xc806, 0xc806) AM_WRITE_LEGACY(c1942_bankswitch_w)
+ AM_RANGE(0xc806, 0xc806) AM_WRITE(c1942_bankswitch_w)
AM_RANGE(0xcc00, 0xcc7f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(c1942_fgvideoram_w) AM_BASE(m_fg_videoram)
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE_LEGACY(c1942_bgvideoram_w) AM_BASE(m_bg_videoram)
diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c
index 7aae43d8f94..40333a2178f 100644
--- a/src/mame/drivers/1943.c
+++ b/src/mame/drivers/1943.c
@@ -36,15 +36,15 @@
/* Read/Write Handlers */
-static READ8_HANDLER( c1943_protection_r )
+READ8_MEMBER(_1943_state::c1943_protection_r)
{
/*
This is a protection check. The game crashes (thru a jump to 0x8000)
if a read from this address doesn't return the value it expects.
*/
- int data = cpu_get_reg(&space->device(), Z80_BC) >> 8;
-// logerror("protection read, PC: %04x Result:%02x\n", cpu_get_pc(&space->device()), data);
+ int data = cpu_get_reg(&space.device(), Z80_BC) >> 8;
+// logerror("protection read, PC: %04x Result:%02x\n", cpu_get_pc(&space.device()), data);
return data;
}
@@ -58,7 +58,7 @@ static ADDRESS_MAP_START( c1943_map, AS_PROGRAM, 8, _1943_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P2")
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSWA")
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSWB")
- AM_RANGE(0xc007, 0xc007) AM_READ_LEGACY(c1943_protection_r)
+ AM_RANGE(0xc007, 0xc007) AM_READ(c1943_protection_r)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(c1943_c804_w) // ROM bank switch, screen flip
AM_RANGE(0xc806, 0xc806) AM_WRITE_LEGACY(watchdog_reset_w)
@@ -647,14 +647,15 @@ static DRIVER_INIT( 1943 )
memory_configure_bank(machine, "bank1", 0, 8, &ROM[0x10000], 0x4000);
}
-static READ8_HANDLER( _1943b_c007_r ) { return 0; }
+READ8_MEMBER(_1943_state::_1943b_c007_r){ return 0; }
static DRIVER_INIT( 1943b )
{
+ _1943_state *state = machine.driver_data<_1943_state>();
DRIVER_INIT_CALL( 1943 );
//it expects 0x00 to be returned from the protection reads because the protection has been patched out.
- //AM_RANGE(0xc007, 0xc007) AM_READ_LEGACY(c1943_protection_r)
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc007, 0xc007, FUNC(_1943b_c007_r));
+ //AM_RANGE(0xc007, 0xc007) AM_READ(c1943_protection_r)
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc007, 0xc007, read8_delegate(FUNC(_1943_state::_1943b_c007_r),state));
}
diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c
index 97db72f073f..4cc64943cee 100644
--- a/src/mame/drivers/20pacgal.c
+++ b/src/mame/drivers/20pacgal.c
@@ -74,19 +74,17 @@
*
*************************************/
-static WRITE8_HANDLER( irqack_w )
+WRITE8_MEMBER(_20pacgal_state::irqack_w)
{
- _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
- if (!state->m_irq_mask)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ if (!m_irq_mask)
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( timer_pulse_w )
+WRITE8_MEMBER(_20pacgal_state::timer_pulse_w)
{
- //_20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
//printf("timer pulse %02x\n", data);
}
@@ -128,9 +126,9 @@ static const eeprom_interface _20pacgal_eeprom_intf =
*
*************************************/
-static WRITE8_HANDLER( _20pacgal_coin_counter_w )
+WRITE8_MEMBER(_20pacgal_state::_20pacgal_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
@@ -153,24 +151,22 @@ static void set_bankptr(running_machine &machine)
memory_set_bankptr(machine, "bank1", state->m_ram_48000);
}
-static WRITE8_HANDLER( ram_bank_select_w )
+WRITE8_MEMBER(_20pacgal_state::ram_bank_select_w)
{
- _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
- state->m_game_selected = data & 1;
- set_bankptr(space->machine());
+ m_game_selected = data & 1;
+ set_bankptr(machine());
}
-static WRITE8_HANDLER( ram_48000_w )
+WRITE8_MEMBER(_20pacgal_state::ram_48000_w)
{
- _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
- if (state->m_game_selected)
+ if (m_game_selected)
{
if (offset < 0x0800)
- state->m_video_ram[offset & 0x07ff] = data;
+ m_video_ram[offset & 0x07ff] = data;
- state->m_ram_48000[offset] = data;
+ m_ram_48000[offset] = data;
}
}
@@ -180,22 +176,19 @@ static WRITE8_HANDLER( ram_48000_w )
*
*************************************/
-static WRITE8_HANDLER( sprite_gfx_w )
+WRITE8_MEMBER(_20pacgal_state::sprite_gfx_w)
{
- _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
- state->m_sprite_gfx_ram[offset] = data;
+ m_sprite_gfx_ram[offset] = data;
}
-static WRITE8_HANDLER( sprite_ram_w )
+WRITE8_MEMBER(_20pacgal_state::sprite_ram_w)
{
- _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
- state->m_sprite_ram[offset] = data;
+ m_sprite_ram[offset] = data;
}
-static WRITE8_HANDLER( sprite_lookup_w )
+WRITE8_MEMBER(_20pacgal_state::sprite_lookup_w)
{
- _20pacgal_state *state = space->machine().driver_data<_20pacgal_state>();
- state->m_sprite_color_lookup[offset] = data;
+ m_sprite_color_lookup[offset] = data;
}
static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8, _20pacgal_state )
@@ -210,11 +203,11 @@ static ADDRESS_MAP_START( 20pacgal_map, AS_PROGRAM, 8, _20pacgal_state )
AM_RANGE(0x45f00, 0x45fff) AM_DEVWRITE_LEGACY("namco", namcos1_cus30_w)
AM_RANGE(0x46000, 0x46fff) AM_WRITEONLY AM_BASE(m_char_gfx_ram)
AM_RANGE(0x47100, 0x47100) AM_RAM /* leftover from original Galaga code */
- AM_RANGE(0x48000, 0x49fff) AM_READ_BANK("bank1") AM_WRITE_LEGACY(ram_48000_w) /* this should be a mirror of 08000-09ffff */
- AM_RANGE(0x4c000, 0x4dfff) AM_WRITE_LEGACY(sprite_gfx_w)
- AM_RANGE(0x4e000, 0x4e17f) AM_WRITE_LEGACY(sprite_ram_w)
+ AM_RANGE(0x48000, 0x49fff) AM_READ_BANK("bank1") AM_WRITE(ram_48000_w) /* this should be a mirror of 08000-09ffff */
+ AM_RANGE(0x4c000, 0x4dfff) AM_WRITE(sprite_gfx_w)
+ AM_RANGE(0x4e000, 0x4e17f) AM_WRITE(sprite_ram_w)
AM_RANGE(0x4e180, 0x4feff) AM_WRITENOP
- AM_RANGE(0x4ff00, 0x4ffff) AM_WRITE_LEGACY(sprite_lookup_w)
+ AM_RANGE(0x4ff00, 0x4ffff) AM_WRITE(sprite_lookup_w)
ADDRESS_MAP_END
@@ -233,16 +226,16 @@ static ADDRESS_MAP_START( 20pacgal_io_map, AS_IO, 8, _20pacgal_state )
AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
AM_RANGE(0x82, 0x82) AM_READ_PORT("SERVICE")
AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x81, 0x81) AM_WRITE_LEGACY(timer_pulse_w) /* ??? pulsed by the timer irq */
- AM_RANGE(0x82, 0x82) AM_WRITE_LEGACY(irqack_w)
+ AM_RANGE(0x81, 0x81) AM_WRITE(timer_pulse_w) /* ??? pulsed by the timer irq */
+ AM_RANGE(0x82, 0x82) AM_WRITE(irqack_w)
AM_RANGE(0x84, 0x84) AM_NOP /* ?? */
AM_RANGE(0x85, 0x86) AM_WRITEONLY AM_BASE(m_stars_seed) /* stars: rng seed (lo/hi) */
AM_RANGE(0x87, 0x87) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0x88, 0x88) AM_WRITE_LEGACY(ram_bank_select_w)
+ AM_RANGE(0x88, 0x88) AM_WRITE(ram_bank_select_w)
AM_RANGE(0x89, 0x89) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
AM_RANGE(0x8a, 0x8a) AM_WRITEONLY AM_BASE(m_stars_ctrl) /* stars: bits 3-4 = active set; bit 5 = enable */
AM_RANGE(0x8b, 0x8b) AM_WRITEONLY AM_BASE(m_flip)
- AM_RANGE(0x8f, 0x8f) AM_WRITE_LEGACY(_20pacgal_coin_counter_w)
+ AM_RANGE(0x8f, 0x8f) AM_WRITE(_20pacgal_coin_counter_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 028be1fc933..788a9f9397f 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -234,40 +234,38 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(fortyl_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(fortyl_state::nmi_disable_w)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(fortyl_state::nmi_enable_w)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
#if 0
-static WRITE8_HANDLER( fortyl_coin_counter_w )
+WRITE8_MEMBER(fortyl_state::fortyl_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
#endif
-static WRITE8_HANDLER( bank_select_w )
+WRITE8_MEMBER(fortyl_state::bank_select_w)
{
if ((data != 0x02) && (data != 0xfd))
@@ -276,16 +274,15 @@ static WRITE8_HANDLER( bank_select_w )
// popmessage("WRONG BANK SELECT = %x !!!!\n",data);
}
- memory_set_bank(space->machine(), "bank1", data & 1);
+ memory_set_bank(machine(), "bank1", data & 1);
}
-static WRITE8_HANDLER( pix1_w )
+WRITE8_MEMBER(fortyl_state::pix1_w)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
// if (data > 7)
// logerror("pix1 = %2x\n", data);
- state->m_pix1 = data;
+ m_pix1 = data;
}
static WRITE8_DEVICE_HANDLER( pix1_mcu_w )
@@ -297,31 +294,28 @@ static WRITE8_DEVICE_HANDLER( pix1_mcu_w )
state->m_pix1 = data;
}
-static WRITE8_HANDLER( pix2_w )
+WRITE8_MEMBER(fortyl_state::pix2_w)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
// if ((data!=0x00) && (data != 0xff))
// logerror("pix2 = %2x\n", data);
- state->m_pix2[0] = state->m_pix2[1];
- state->m_pix2[1] = data;
+ m_pix2[0] = m_pix2[1];
+ m_pix2[1] = data;
}
#if 0
-static READ8_HANDLER( pix1_r )
+READ8_MEMBER(fortyl_state::pix1_r)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- return state->m_pix1;
+ return m_pix1;
}
#endif
-static READ8_HANDLER( pix2_r )
+READ8_MEMBER(fortyl_state::pix2_r)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
int res;
- int d1 = state->m_pix1 & 7;
+ int d1 = m_pix1 & 7;
- res = (((state->m_pix2[1] << (d1 + 8)) | (state->m_pix2[0] << d1)) & 0xff00) >> 8;
+ res = (((m_pix2[1] << (d1 + 8)) | (m_pix2[0] << d1)) & 0xff00) >> 8;
return res;
}
@@ -393,20 +387,19 @@ static const UINT8 mcu_data2[0x80] =
};
-static WRITE8_HANDLER( undoukai_mcu_w )
+WRITE8_MEMBER(fortyl_state::undoukai_mcu_w)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- int ram_adr = state->m_mcu_ram[0x1b5] * 0x100 + state->m_mcu_ram[0x1b4];
+ int ram_adr = m_mcu_ram[0x1b5] * 0x100 + m_mcu_ram[0x1b4];
int d, i;
// logerror("mcu_w %02x\n", data);
- if (state->m_mcu_cmd != -1)
+ if (m_mcu_cmd != -1)
{
- state->m_mcu_in[(state->m_mcu_cmd & 0x10) >> 4][state->m_mcu_cmd & 0x0f] = data;
- state->m_mcu_cmd = -1;
+ m_mcu_in[(m_mcu_cmd & 0x10) >> 4][m_mcu_cmd & 0x0f] = data;
+ m_mcu_cmd = -1;
}
else
{
@@ -420,14 +413,14 @@ static WRITE8_HANDLER( undoukai_mcu_w )
case 0xc5:
case 0xc6:
case 0xc7:
- state->m_mcu_cmd = (data & 0x0f) | 0x10;
+ m_mcu_cmd = (data & 0x0f) | 0x10;
break;
case 0xb0:
case 0xb1:
case 0xb2:
case 0xb3:
- state->m_mcu_cmd = data & 0x0f;
+ m_mcu_cmd = data & 0x0f;
break;
case 0x30:
@@ -440,96 +433,96 @@ static WRITE8_HANDLER( undoukai_mcu_w )
case 0x37:
case 0x38:
case 0x39:
- state->m_from_mcu = state->m_mcu_out[0][data & 0x0f];
+ m_from_mcu = m_mcu_out[0][data & 0x0f];
break;
case 0x40:
case 0x41:
case 0x42:
- state->m_from_mcu = state->m_mcu_out[1][data & 0x0f];
+ m_from_mcu = m_mcu_out[1][data & 0x0f];
break;
case 0x01:
- state->m_mcu_out[0][0] = (state->m_mcu_in[0][0] ^ (state->m_mcu_in[0][0] >> 4)) & 0x0f;
+ m_mcu_out[0][0] = (m_mcu_in[0][0] ^ (m_mcu_in[0][0] >> 4)) & 0x0f;
break;
case 0x02:
- if (state->m_mcu_in[0][3] != 0x00)
+ if (m_mcu_in[0][3] != 0x00)
{
- state->m_mcu_out[0][1] = 0x0c;
- state->m_mcu_out[0][2] = 0x00;
+ m_mcu_out[0][1] = 0x0c;
+ m_mcu_out[0][2] = 0x00;
}
else
{
- state->m_mcu_out[0][2] = 0xa2;
- switch (state->m_mcu_in[0][0] & 0x03)
+ m_mcu_out[0][2] = 0xa2;
+ switch (m_mcu_in[0][0] & 0x03)
{
- case 0: state->m_mcu_out[0][1] = 0x55; break;
- case 1: state->m_mcu_out[0][1] = 0x3d; break;
- case 2: state->m_mcu_out[0][1] = 0x45; break;
- case 3: state->m_mcu_out[0][1] = 0x4d; break;
+ case 0: m_mcu_out[0][1] = 0x55; break;
+ case 1: m_mcu_out[0][1] = 0x3d; break;
+ case 2: m_mcu_out[0][1] = 0x45; break;
+ case 3: m_mcu_out[0][1] = 0x4d; break;
}
}
break;
case 0x03:
- state->m_mcu_out[0][1] = (((state->m_mcu_in[0][0] * 8) & 0x38) -1) & 0xff ;
+ m_mcu_out[0][1] = (((m_mcu_in[0][0] * 8) & 0x38) -1) & 0xff ;
- if (state->m_mcu_in[0][1] | state->m_mcu_in[0][2])
+ if (m_mcu_in[0][1] | m_mcu_in[0][2])
d = 0x40;
else
d = 0x00;
for (i = 0; i < 8; i++)
- state->m_mcu_out[0][i + 2] = mcu_data0[((state->m_mcu_out[0][1] + i) & 0x3f) + d];
+ m_mcu_out[0][i + 2] = mcu_data0[((m_mcu_out[0][1] + i) & 0x3f) + d];
break;
case 0x04:
- state->m_mcu_out[0][0] = ((state->m_mcu_in[0][0] & 0x0f) << 4) + (state->m_mcu_in[0][1] & 0x0f);
- state->m_mcu_out[0][1] = ((state->m_mcu_in[0][2] & 0x0f) << 4) + (state->m_mcu_in[0][3] & 0x0f);
+ m_mcu_out[0][0] = ((m_mcu_in[0][0] & 0x0f) << 4) + (m_mcu_in[0][1] & 0x0f);
+ m_mcu_out[0][1] = ((m_mcu_in[0][2] & 0x0f) << 4) + (m_mcu_in[0][3] & 0x0f);
break;
case 0x05:
-// state->m_mcu_out[0][0] = 255 * cos(PI * state->m_mcu_in[0][0] / 180);
-// state->m_mcu_out[0][1] = 255 * sin(PI * state->m_mcu_in[0][0] / 180);
+// m_mcu_out[0][0] = 255 * cos(PI * m_mcu_in[0][0] / 180);
+// m_mcu_out[0][1] = 255 * sin(PI * m_mcu_in[0][0] / 180);
- d = state->m_mcu_in[0][0] & 0x7f;
- state->m_mcu_out[0][0] = mcu_data1[d];
- state->m_mcu_out[0][1] = mcu_data2[d];
+ d = m_mcu_in[0][0] & 0x7f;
+ m_mcu_out[0][0] = mcu_data1[d];
+ m_mcu_out[0][1] = mcu_data2[d];
break;
case 0x06:
- if (state->m_mcu_in[0][0] != 0x00)
- state->m_mcu_out[0][0] = 0xfa;
+ if (m_mcu_in[0][0] != 0x00)
+ m_mcu_out[0][0] = 0xfa;
else
- switch (state->m_mcu_in[0][1])
+ switch (m_mcu_in[0][1])
{
- case 0x00: state->m_mcu_out[0][0] = 0x02; break;
- case 0x01: state->m_mcu_out[0][0] = 0x01; break;
- case 0x02: state->m_mcu_out[0][0] = 0x01; break;
- case 0x03: state->m_mcu_out[0][0] = 0x04; break;
- case 0x04: state->m_mcu_out[0][0] = 0x01; break;
- case 0x05: state->m_mcu_out[0][0] = 0x14; break;
- case 0x06: state->m_mcu_out[0][0] = 0x14; break;
- case 0x07: state->m_mcu_out[0][0] = 0xb6; break;
+ case 0x00: m_mcu_out[0][0] = 0x02; break;
+ case 0x01: m_mcu_out[0][0] = 0x01; break;
+ case 0x02: m_mcu_out[0][0] = 0x01; break;
+ case 0x03: m_mcu_out[0][0] = 0x04; break;
+ case 0x04: m_mcu_out[0][0] = 0x01; break;
+ case 0x05: m_mcu_out[0][0] = 0x14; break;
+ case 0x06: m_mcu_out[0][0] = 0x14; break;
+ case 0x07: m_mcu_out[0][0] = 0xb6; break;
default:
- // popmessage("cmd06: %02x %02x", state->m_mcu_in[0][0], state->m_mcu_in[0][1]);
- logerror("cmd06: %02x %02x\n", state->m_mcu_in[0][0], state->m_mcu_in[0][1]);
+ // popmessage("cmd06: %02x %02x", m_mcu_in[0][0], m_mcu_in[0][1]);
+ logerror("cmd06: %02x %02x\n", m_mcu_in[0][0], m_mcu_in[0][1]);
}
break;
case 0x07:
- switch (state->m_mcu_in[0][0] & 7)
+ switch (m_mcu_in[0][0] & 7)
{
- case 0: state->m_mcu_out[0][0] = 0x1d; break;
- case 1: state->m_mcu_out[0][0] = 0x1b; break;
- case 2: state->m_mcu_out[0][0] = 0x15; break;
- case 3: state->m_mcu_out[0][0] = 0x13; break;
- case 4: state->m_mcu_out[0][0] = 0x25; break;
- case 5: state->m_mcu_out[0][0] = 0x23; break;
- case 6: state->m_mcu_out[0][0] = 0xff; break;
- case 7: state->m_mcu_out[0][0] = 0xff; break;
+ case 0: m_mcu_out[0][0] = 0x1d; break;
+ case 1: m_mcu_out[0][0] = 0x1b; break;
+ case 2: m_mcu_out[0][0] = 0x15; break;
+ case 3: m_mcu_out[0][0] = 0x13; break;
+ case 4: m_mcu_out[0][0] = 0x25; break;
+ case 5: m_mcu_out[0][0] = 0x23; break;
+ case 6: m_mcu_out[0][0] = 0xff; break;
+ case 7: m_mcu_out[0][0] = 0xff; break;
}
break;
@@ -538,31 +531,30 @@ static WRITE8_HANDLER( undoukai_mcu_w )
if(ram_adr >= 0xa000 && ram_adr < 0xa800)
{
ram_adr = ram_adr - 0xa000;
- state->m_mcu_out[1][0] = state->m_mcu_ram[ram_adr];
- state->m_mcu_out[1][1] = state->m_mcu_ram[ram_adr + 1];
- state->m_mcu_out[1][2] = state->m_mcu_ram[ram_adr + 2] & 0x0f;
+ m_mcu_out[1][0] = m_mcu_ram[ram_adr];
+ m_mcu_out[1][1] = m_mcu_ram[ram_adr + 1];
+ m_mcu_out[1][2] = m_mcu_ram[ram_adr + 2] & 0x0f;
}
break;
default:
- state->m_from_mcu = 0x5d;
+ m_from_mcu = 0x5d;
-// popmessage("unknown cmd%02x: %02x %02x %02x %02x", data, state->m_mcu_in[0][0], state->m_mcu_in[0][1], state->m_mcu_in[0][2], state->m_mcu_in[0][3]);
-// logerror("unknown cmd%02x: %02x %02x %02x %02x\n", data, state->m_mcu_in[0][0], state->m_mcu_in[0][1], state->m_mcu_in[0][2], state->m_mcu_in[0][3]);
+// popmessage("unknown cmd%02x: %02x %02x %02x %02x", data, m_mcu_in[0][0], m_mcu_in[0][1], m_mcu_in[0][2], m_mcu_in[0][3]);
+// logerror("unknown cmd%02x: %02x %02x %02x %02x\n", data, m_mcu_in[0][0], m_mcu_in[0][1], m_mcu_in[0][2], m_mcu_in[0][3]);
}
}
}
-static READ8_HANDLER( undoukai_mcu_r )
+READ8_MEMBER(fortyl_state::undoukai_mcu_r)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- // logerror("mcu_r %02x\n", state->m_from_mcu);
+ // logerror("mcu_r %02x\n", m_from_mcu);
- return state->m_from_mcu;
+ return m_from_mcu;
}
-static READ8_HANDLER( undoukai_mcu_status_r )
+READ8_MEMBER(fortyl_state::undoukai_mcu_status_r)
{
int res = 3;
@@ -609,24 +601,21 @@ static DRIVER_INIT( 40love )
/***************************************************************************/
-static READ8_HANDLER( from_snd_r )
+READ8_MEMBER(fortyl_state::from_snd_r)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- state->m_snd_flag = 0;
- return state->m_snd_data;
+ m_snd_flag = 0;
+ return m_snd_data;
}
-static READ8_HANDLER( snd_flag_r )
+READ8_MEMBER(fortyl_state::snd_flag_r)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- return state->m_snd_flag | 0xfd;
+ return m_snd_flag | 0xfd;
}
-static WRITE8_HANDLER( to_main_w )
+WRITE8_MEMBER(fortyl_state::to_main_w)
{
- fortyl_state *state = space->machine().driver_data<fortyl_state>();
- state->m_snd_data = data;
- state->m_snd_flag = 2;
+ m_snd_data = data;
+ m_snd_flag = 2;
}
/***************************************************************************/
@@ -636,10 +625,10 @@ static ADDRESS_MAP_START( 40love_map, AS_PROGRAM, 8, fortyl_state )
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(0x8802, 0x8802) AM_WRITE_LEGACY(bank_select_w)
- AM_RANGE(0x8803, 0x8803) AM_READWRITE_LEGACY(pix2_r, pix2_w) //pixel layer related
- AM_RANGE(0x8804, 0x8804) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0x8805, 0x8805) AM_READ_LEGACY(snd_flag_r) AM_WRITENOP /*sound_reset*/ //????
+ 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)
+ AM_RANGE(0x8805, 0x8805) AM_READ(snd_flag_r) AM_WRITENOP /*sound_reset*/ //????
AM_RANGE(0x8807, 0x8807) AM_READNOP /* unknown */
AM_RANGE(0x8808, 0x8808) AM_READ_PORT("DSW3")
AM_RANGE(0x8809, 0x8809) AM_READ_PORT("P1")
@@ -660,12 +649,12 @@ static ADDRESS_MAP_START( undoukai_map, AS_PROGRAM, 8, fortyl_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_BASE(m_mcu_ram) /* M5517P on main board */
- AM_RANGE(0xa800, 0xa800) AM_READWRITE_LEGACY(undoukai_mcu_r, undoukai_mcu_w)
- AM_RANGE(0xa801, 0xa801) AM_READWRITE_LEGACY(undoukai_mcu_status_r, pix1_w) //pixel layer related
- AM_RANGE(0xa802, 0xa802) AM_WRITE_LEGACY(bank_select_w)
- AM_RANGE(0xa803, 0xa803) AM_READWRITE_LEGACY(pix2_r, pix2_w) //pixel layer related
- AM_RANGE(0xa804, 0xa804) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xa805, 0xa805) AM_READ_LEGACY(snd_flag_r) AM_WRITENOP /*sound_reset*/ //????
+ AM_RANGE(0xa800, 0xa800) AM_READWRITE(undoukai_mcu_r, undoukai_mcu_w)
+ AM_RANGE(0xa801, 0xa801) AM_READWRITE(undoukai_mcu_status_r, pix1_w) //pixel layer related
+ AM_RANGE(0xa802, 0xa802) AM_WRITE(bank_select_w)
+ AM_RANGE(0xa803, 0xa803) AM_READWRITE(pix2_r, pix2_w) //pixel layer related
+ AM_RANGE(0xa804, 0xa804) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xa805, 0xa805) AM_READ(snd_flag_r) AM_WRITENOP /*sound_reset*/ //????
AM_RANGE(0xa807, 0xa807) AM_READNOP AM_WRITENOP /* unknown */
AM_RANGE(0xa808, 0xa808) AM_READ_PORT("DSW3")
AM_RANGE(0xa809, 0xa809) AM_READ_PORT("P1")
@@ -761,9 +750,9 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, fortyl_state )
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(0xd800, 0xd800) AM_READWRITE_LEGACY(soundlatch_r, to_main_w)
- AM_RANGE(0xda00, 0xda00) AM_READNOP AM_WRITE_LEGACY(nmi_enable_w) /* unknown read */
- AM_RANGE(0xdc00, 0xdc00) AM_WRITE_LEGACY(nmi_disable_w)
+ AM_RANGE(0xd800, 0xd800) AM_READ_LEGACY(soundlatch_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)
AM_RANGE(0xde00, 0xde00) AM_READNOP AM_DEVWRITE_LEGACY("dac", dac_signed_w) /* signed 8-bit DAC - unknown read */
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostics ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index 3c8b979212c..19d8c7de8ac 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -62,10 +62,9 @@ Sound :
#define MAIN_CLOCK XTAL_8MHz
-static WRITE8_HANDLER( sound_data_w )
+WRITE8_MEMBER(_4enraya_state::sound_data_w)
{
- _4enraya_state *state = space->machine().driver_data<_4enraya_state>();
- state->m_soundlatch = data;
+ m_soundlatch = data;
}
static WRITE8_DEVICE_HANDLER( sound_control_w )
@@ -78,9 +77,9 @@ static WRITE8_DEVICE_HANDLER( sound_control_w )
state->m_last_snd_ctrl = data;
}
-static READ8_HANDLER( fenraya_custom_map_r )
+READ8_MEMBER(_4enraya_state::fenraya_custom_map_r)
{
- UINT8 *prom = space->machine().region("pal_prom")->base();
+ UINT8 *prom = machine().region("pal_prom")->base();
UINT8 prom_routing = (prom[offset >> 12] & 0xf) ^ 0xf;
UINT8 res;
@@ -88,34 +87,32 @@ static READ8_HANDLER( fenraya_custom_map_r )
if(prom_routing & 1) //ROM5
{
- UINT8 *rom = space->machine().region("maincpu")->base();
+ UINT8 *rom = machine().region("maincpu")->base();
res |= rom[offset & 0x7fff];
}
if(prom_routing & 2) //ROM4
{
- UINT8 *rom = space->machine().region("maincpu")->base();
+ UINT8 *rom = machine().region("maincpu")->base();
res |= rom[(offset & 0x7fff) | 0x8000];
}
if(prom_routing & 4) //RAM
{
- _4enraya_state *state = space->machine().driver_data<_4enraya_state>();
- res |= state->m_workram[offset & 0xfff];
+ res |= m_workram[offset & 0xfff];
}
if(prom_routing & 8) //gfx control / RAM wait
{
- _4enraya_state *state = space->machine().driver_data<_4enraya_state>();
- res |= state->m_videoram[offset & 0xfff];
+ res |= m_videoram[offset & 0xfff];
}
return res;
}
-static WRITE8_HANDLER( fenraya_custom_map_w )
+WRITE8_MEMBER(_4enraya_state::fenraya_custom_map_w)
{
- UINT8 *prom = space->machine().region("pal_prom")->base();
+ UINT8 *prom = machine().region("pal_prom")->base();
UINT8 prom_routing = (prom[offset >> 12] & 0xf) ^ 0xf;
if(prom_routing & 1) //ROM5
@@ -130,18 +127,17 @@ static WRITE8_HANDLER( fenraya_custom_map_w )
if(prom_routing & 4) //RAM
{
- _4enraya_state *state = space->machine().driver_data<_4enraya_state>();
- state->m_workram[offset & 0xfff] = data;
+ m_workram[offset & 0xfff] = data;
}
if(prom_routing & 8) //gfx control / RAM wait
{
- fenraya_videoram_w(space,offset & 0xfff,data);
+ fenraya_videoram_w(&space,offset & 0xfff,data);
}
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _4enraya_state )
- AM_RANGE(0x0000, 0xffff) AM_READWRITE_LEGACY(fenraya_custom_map_r,fenraya_custom_map_w)
+ AM_RANGE(0x0000, 0xffff) AM_READWRITE(fenraya_custom_map_r,fenraya_custom_map_w)
#if 0
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xcfff) AM_RAM
@@ -156,7 +152,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, _4enraya_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW")
AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS")
AM_RANGE(0x02, 0x02) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x23, 0x23) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0x23, 0x23) AM_WRITE(sound_data_w)
AM_RANGE(0x33, 0x33) AM_DEVWRITE_LEGACY("aysnd", sound_control_w)
ADDRESS_MAP_END
@@ -172,7 +168,7 @@ static ADDRESS_MAP_START( unkpacg_main_portmap, AS_IO, 8, _4enraya_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0x20, 0x20) AM_WRITE(sound_data_w)
AM_RANGE(0x30, 0x30) AM_DEVWRITE_LEGACY("aysnd", sound_control_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index 7d22765d2cf..64b8d9e2a8e 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -30,102 +30,94 @@ static INTERRUPT_GEN( k88games_interrupt )
irq0_line_hold(device);
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(_88games_state::bankedram_r)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
- if (state->m_videobank)
- return state->m_ram[offset];
+ if (m_videobank)
+ return m_ram[offset];
else
{
- if (state->m_zoomreadroms)
- return k051316_rom_r(state->m_k051316, offset);
+ if (m_zoomreadroms)
+ return k051316_rom_r(m_k051316, offset);
else
- return k051316_r(state->m_k051316, offset);
+ return k051316_r(m_k051316, offset);
}
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(_88games_state::bankedram_w)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
- if (state->m_videobank)
- state->m_ram[offset] = data;
+ if (m_videobank)
+ m_ram[offset] = data;
else
- k051316_w(state->m_k051316, offset, data);
+ k051316_w(m_k051316, offset, data);
}
-static WRITE8_HANDLER( k88games_5f84_w )
+WRITE8_MEMBER(_88games_state::k88games_5f84_w)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
/* bits 0/1 coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 2 enables ROM reading from the 051316 */
/* also 5fce == 2 read roms, == 3 read ram */
- state->m_zoomreadroms = data & 0x04;
+ m_zoomreadroms = data & 0x04;
if (data & 0xf8)
popmessage("5f84 = %02x", data);
}
-static WRITE8_HANDLER( k88games_sh_irqtrigger_w )
+WRITE8_MEMBER(_88games_state::k88games_sh_irqtrigger_w)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
- 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);
}
-static WRITE8_HANDLER( speech_control_w )
+WRITE8_MEMBER(_88games_state::speech_control_w)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
device_t *upd;
- state->m_speech_chip = (data & 4) ? 1 : 0;
- upd = state->m_speech_chip ? state->m_upd_2 : state->m_upd_1;
+ m_speech_chip = (data & 4) ? 1 : 0;
+ upd = m_speech_chip ? m_upd_2 : m_upd_1;
upd7759_reset_w(upd, data & 2);
upd7759_start_w(upd, data & 1);
}
-static WRITE8_HANDLER( speech_msg_w )
+WRITE8_MEMBER(_88games_state::speech_msg_w)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
- device_t *upd = state->m_speech_chip ? state->m_upd_2 : state->m_upd_1;
+ device_t *upd = m_speech_chip ? m_upd_2 : m_upd_1;
upd7759_port_w(upd, 0, data);
}
/* special handlers to combine 052109 & 051960 */
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(_88games_state::k052109_051960_r)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(_88games_state::k052109_051960_w)
{
- _88games_state *state = space->machine().driver_data<_88games_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
/*************************************
@@ -139,28 +131,28 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE_LEGACY(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(m_paletteram_1000) /* banked ROM + palette RAM */
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x3800, 0x3fff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE(m_ram)
- AM_RANGE(0x5f84, 0x5f84) AM_WRITE_LEGACY(k88games_5f84_w)
+ AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram)
+ AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w)
AM_RANGE(0x5f88, 0x5f88) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x5f90, 0x5f90) AM_WRITE_LEGACY(k88games_sh_irqtrigger_w)
+ AM_RANGE(0x5f90, 0x5f90) AM_WRITE(k88games_sh_irqtrigger_w)
AM_RANGE(0x5f94, 0x5f94) AM_READ_PORT("IN0")
AM_RANGE(0x5f95, 0x5f95) AM_READ_PORT("IN1")
AM_RANGE(0x5f96, 0x5f96) AM_READ_PORT("IN2")
AM_RANGE(0x5f97, 0x5f97) AM_READ_PORT("DSW1")
AM_RANGE(0x5f9b, 0x5f9b) AM_READ_PORT("DSW2")
AM_RANGE(0x5fc0, 0x5fcf) AM_DEVWRITE_LEGACY("k051316", k051316_ctrl_w)
- AM_RANGE(0x4000, 0x7fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(speech_msg_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(speech_msg_w)
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(speech_control_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(speech_control_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index 5dd2f83c46c..9ad328fe9d1 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -34,45 +34,41 @@
/******************************************************************************/
-static WRITE8_HANDLER( triothep_control_select_w )
+WRITE8_MEMBER(actfancr_state::triothep_control_select_w)
{
- actfancr_state *state = space->machine().driver_data<actfancr_state>();
- state->m_trio_control_select = data;
+ m_trio_control_select = data;
}
-static READ8_HANDLER( triothep_control_r )
+READ8_MEMBER(actfancr_state::triothep_control_r)
{
- actfancr_state *state = space->machine().driver_data<actfancr_state>();
- switch (state->m_trio_control_select)
+ switch (m_trio_control_select)
{
- case 0: return input_port_read(space->machine(), "P1");
- case 1: return input_port_read(space->machine(), "P2");
- case 2: return input_port_read(space->machine(), "DSW1");
- case 3: return input_port_read(space->machine(), "DSW2");
- case 4: return input_port_read(space->machine(), "SYSTEM"); /* VBL */
+ case 0: return input_port_read(machine(), "P1");
+ case 1: return input_port_read(machine(), "P2");
+ case 2: return input_port_read(machine(), "DSW1");
+ case 3: return input_port_read(machine(), "DSW2");
+ case 4: return input_port_read(machine(), "SYSTEM"); /* VBL */
}
return 0xff;
}
-static WRITE8_HANDLER( actfancr_sound_w )
+WRITE8_MEMBER(actfancr_state::actfancr_sound_w)
{
- actfancr_state *state = space->machine().driver_data<actfancr_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
/******************************************************************************/
-static WRITE8_HANDLER( actfancr_buffer_spriteram_w)
+WRITE8_MEMBER(actfancr_state::actfancr_buffer_spriteram_w)
{
- actfancr_state *state = space->machine().driver_data<actfancr_state>();
- UINT8 *src = reinterpret_cast<UINT8 *>(memory_get_shared(space->machine(), "spriteram"));
+ UINT8 *src = reinterpret_cast<UINT8 *>(memory_get_shared(machine(), "spriteram"));
// copy to a 16-bit region for our sprite draw code too
for (int i=0;i<0x800/2;i++)
{
- state->m_spriteram16[i] = src[i*2] | (src[(i*2)+1] <<8);
+ m_spriteram16[i] = src[i*2] | (src[(i*2)+1] <<8);
}
}
@@ -85,14 +81,14 @@ static ADDRESS_MAP_START( actfan_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x070010, 0x07001f) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control1_8bit_swap_w)
AM_RANGE(0x072000, 0x0727ff) AM_DEVREADWRITE_LEGACY("tilegen2", deco_bac06_pf_data_8bit_swap_r, deco_bac06_pf_data_8bit_swap_w)
AM_RANGE(0x100000, 0x1007ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x110000, 0x110001) AM_WRITE_LEGACY(actfancr_buffer_spriteram_w)
+ AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w)
AM_RANGE(0x120000, 0x1205ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x130000, 0x130000) AM_READ_PORT("P1")
AM_RANGE(0x130001, 0x130001) AM_READ_PORT("P2")
AM_RANGE(0x130002, 0x130002) AM_READ_PORT("DSW1")
AM_RANGE(0x130003, 0x130003) AM_READ_PORT("DSW2")
AM_RANGE(0x140000, 0x140001) AM_READ_PORT("SYSTEM") /* VBL */
- AM_RANGE(0x150000, 0x150001) AM_WRITE_LEGACY(actfancr_sound_w)
+ AM_RANGE(0x150000, 0x150001) AM_WRITE(actfancr_sound_w)
AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_BASE(m_main_ram) /* Main ram */
ADDRESS_MAP_END
@@ -106,13 +102,13 @@ static ADDRESS_MAP_START( triothep_map, AS_PROGRAM, 8, actfancr_state )
AM_RANGE(0x060010, 0x06001f) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control1_8bit_swap_w)
AM_RANGE(0x064000, 0x0647ff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_data_8bit_swap_r, deco_bac06_pf_data_8bit_swap_w)
AM_RANGE(0x066400, 0x0667ff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_rowscroll_8bit_swap_r, deco_bac06_pf_rowscroll_8bit_swap_w)
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(actfancr_sound_w)
- AM_RANGE(0x110000, 0x110001) AM_WRITE_LEGACY(actfancr_buffer_spriteram_w)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(actfancr_sound_w)
+ AM_RANGE(0x110000, 0x110001) AM_WRITE(actfancr_buffer_spriteram_w)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x130000, 0x1305ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x140001) AM_READNOP /* Value doesn't matter */
AM_RANGE(0x1f0000, 0x1f3fff) AM_RAM AM_BASE(m_main_ram) /* Main ram */
- AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE_LEGACY(triothep_control_r, triothep_control_select_w)
+ AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(triothep_control_r, triothep_control_select_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index ee18bbb4061..7c7cb72cfb5 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -28,15 +28,14 @@ Revisions:
#include "includes/aeroboto.h"
-static READ8_HANDLER( aeroboto_201_r )
+READ8_MEMBER(aeroboto_state::aeroboto_201_r)
{
- aeroboto_state *state = space->machine().driver_data<aeroboto_state>();
/* if you keep a button pressed during boot, the game will expect this */
/* serie of values to be returned from 3004, and display "PASS 201" if it is */
static const UINT8 res[4] = { 0xff, 0x9f, 0x1b, 0x03 };
- logerror("PC %04x: read 3004\n", cpu_get_pc(&space->device()));
- return res[(state->m_count++) & 3];
+ logerror("PC %04x: read 3004\n", cpu_get_pc(&space.device()));
+ return res[(m_count++) & 3];
}
@@ -50,31 +49,29 @@ static INTERRUPT_GEN( aeroboto_interrupt )
state->m_disable_irq--;
}
-static READ8_HANDLER( aeroboto_irq_ack_r )
+READ8_MEMBER(aeroboto_state::aeroboto_irq_ack_r)
{
- cputag_set_input_line(space->machine(),"maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(),"maincpu", 0, CLEAR_LINE);
return 0xff;
}
-static READ8_HANDLER( aeroboto_2973_r )
+READ8_MEMBER(aeroboto_state::aeroboto_2973_r)
{
- aeroboto_state *state = space->machine().driver_data<aeroboto_state>();
- state->m_mainram[0x02be] = 0;
+ m_mainram[0x02be] = 0;
return 0xff;
}
-static WRITE8_HANDLER ( aeroboto_1a2_w )
+WRITE8_MEMBER(aeroboto_state::aeroboto_1a2_w)
{
- aeroboto_state *state = space->machine().driver_data<aeroboto_state>();
- state->m_mainram[0x01a2] = data;
+ m_mainram[0x01a2] = data;
if (data)
- state->m_disable_irq = 1;
+ m_disable_irq = 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, aeroboto_state )
- AM_RANGE(0x01a2, 0x01a2) AM_WRITE_LEGACY(aeroboto_1a2_w) // affects IRQ line (more protection?)
+ AM_RANGE(0x01a2, 0x01a2) AM_WRITE(aeroboto_1a2_w) // affects IRQ line (more protection?)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(m_mainram) // main RAM
AM_RANGE(0x0800, 0x08ff) AM_RAM // tile color buffer; copied to 0x2000
AM_RANGE(0x0900, 0x09ff) AM_WRITEONLY // a backup of default tile colors
@@ -84,15 +81,15 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, aeroboto_state )
AM_RANGE(0x1840, 0x27ff) AM_WRITENOP // cleared during custom LSI test
AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // sprite RAM
AM_RANGE(0x2900, 0x2fff) AM_WRITENOP // cleared along with sprite RAM
- AM_RANGE(0x2973, 0x2973) AM_READ_LEGACY(aeroboto_2973_r) // protection read
+ AM_RANGE(0x2973, 0x2973) AM_READ(aeroboto_2973_r) // protection read
AM_RANGE(0x3000, 0x3000) AM_READWRITE_LEGACY(aeroboto_in0_r, aeroboto_3000_w)
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(soundlatch2_w)
AM_RANGE(0x3003, 0x3003) AM_WRITEONLY AM_BASE(m_vscroll)
- AM_RANGE(0x3004, 0x3004) AM_READ_LEGACY(aeroboto_201_r) AM_WRITEONLY AM_BASE(m_starx)
+ AM_RANGE(0x3004, 0x3004) AM_READ(aeroboto_201_r) AM_WRITEONLY AM_BASE(m_starx)
AM_RANGE(0x3005, 0x3005) AM_WRITEONLY AM_BASE(m_stary) // usable but probably wrong
AM_RANGE(0x3006, 0x3006) AM_WRITEONLY AM_BASE(m_bgcolor)
- AM_RANGE(0x3800, 0x3800) AM_READ_LEGACY(aeroboto_irq_ack_r) // watchdog or IRQ ack
+ AM_RANGE(0x3800, 0x3800) AM_READ(aeroboto_irq_ack_r) // watchdog or IRQ ack
AM_RANGE(0x4000, 0xffff) AM_ROM // main ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 94889fb6265..50c66b4c594 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -66,53 +66,48 @@ Verification still needed for the other PCBs.
#include "sound/okim6295.h"
#include "includes/aerofgt.h"
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(aerofgt_state::sound_command_w)
{
- aerofgt_state *state = space->machine().driver_data<aerofgt_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
-static WRITE16_HANDLER( turbofrc_sound_command_w )
+WRITE16_MEMBER(aerofgt_state::turbofrc_sound_command_w)
{
- aerofgt_state *state = space->machine().driver_data<aerofgt_state>();
if (ACCESSING_BITS_8_15)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, (data >> 8) & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
-static WRITE16_HANDLER( aerfboot_soundlatch_w )
+WRITE16_MEMBER(aerofgt_state::aerfboot_soundlatch_w)
{
- aerofgt_state *state = space->machine().driver_data<aerofgt_state>();
if(ACCESSING_BITS_8_15)
{
soundlatch_w(space, 0, (data >> 8) & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
-static READ16_HANDLER( pending_command_r )
+READ16_MEMBER(aerofgt_state::pending_command_r)
{
- aerofgt_state *state = space->machine().driver_data<aerofgt_state>();
- return state->m_pending_command;
+ return m_pending_command;
}
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(aerofgt_state::pending_command_clear_w)
{
- aerofgt_state *state = space->machine().driver_data<aerofgt_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
-static WRITE8_HANDLER( aerofgt_sh_bankswitch_w )
+WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
@@ -132,9 +127,9 @@ static WRITE16_DEVICE_HANDLER( aerfboo2_okim6295_banking_w )
// }
}
-static WRITE8_HANDLER( aerfboot_okim6295_banking_w )
+WRITE8_MEMBER(aerofgt_state::aerfboot_okim6295_banking_w)
{
- UINT8 *oki = space->machine().region("oki")->base();
+ UINT8 *oki = machine().region("oki")->base();
/*bit 2 (0x4) setted too?*/
if (data & 0x4)
memcpy(&oki[0x20000], &oki[((data & 0x3) * 0x20000) + 0x40000], 0x20000);
@@ -151,7 +146,7 @@ static ADDRESS_MAP_START( pspikes_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(pspikes_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE_LEGACY(pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE_LEGACY(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff006, 0xfff007) AM_READWRITE_LEGACY(pending_command_r, sound_command_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_READWRITE(pending_command_r, sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state )
@@ -220,9 +215,9 @@ static ADDRESS_MAP_START( karatblz_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0")
AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE_LEGACY(karatblz_gfxbank_w)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("IN2")
- AM_RANGE(0x0ff006, 0x0ff007) AM_READ_PORT("IN3") AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x0ff006, 0x0ff007) AM_READ_PORT("IN3") AM_WRITE(sound_command_w)
AM_RANGE(0x0ff008, 0x0ff009) AM_READ_PORT("DSW") AM_WRITE_LEGACY(aerofgt_bg1scrollx_w)
- AM_RANGE(0x0ff00a, 0x0ff00b) AM_READWRITE_LEGACY(pending_command_r, aerofgt_bg1scrolly_w)
+ AM_RANGE(0x0ff00a, 0x0ff00b) AM_READ(pending_command_r) AM_WRITE_LEGACY(aerofgt_bg1scrolly_w)
AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITE_LEGACY(aerofgt_bg2scrollx_w)
AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE_LEGACY(aerofgt_bg2scrolly_w)
ADDRESS_MAP_END
@@ -238,7 +233,7 @@ static ADDRESS_MAP_START( spinlbrk_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(spinlbrk_gfxbank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE_LEGACY(aerofgt_bg2scrollx_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
- AM_RANGE(0xfff006, 0xfff007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16, aerofgt_state )
@@ -256,11 +251,11 @@ static ADDRESS_MAP_START( turbofrc_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0ff000, 0x0ff001) AM_READ_PORT("IN0")
AM_RANGE(0x0ff002, 0x0ff003) AM_READ_PORT("IN1") AM_WRITE_LEGACY(aerofgt_bg1scrolly_w)
AM_RANGE(0x0ff004, 0x0ff005) AM_READ_PORT("DSW") AM_WRITE_LEGACY(aerofgt_bg2scrollx_w)
- AM_RANGE(0x0ff006, 0x0ff007) AM_READWRITE_LEGACY(pending_command_r, aerofgt_bg2scrolly_w)
+ AM_RANGE(0x0ff006, 0x0ff007) AM_READ(pending_command_r) AM_WRITE_LEGACY(aerofgt_bg2scrolly_w)
AM_RANGE(0x0ff008, 0x0ff009) AM_READ_PORT("IN2")
AM_RANGE(0x0ff008, 0x0ff00b) AM_WRITE_LEGACY(turbofrc_gfxbank_w)
AM_RANGE(0x0ff00c, 0x0ff00d) AM_WRITENOP /* related to bg2 (written together with the scroll registers) */
- AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE_LEGACY(turbofrc_sound_command_w)
+ AM_RANGE(0x0ff00e, 0x0ff00f) AM_WRITE(turbofrc_sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state )
@@ -276,10 +271,10 @@ static ADDRESS_MAP_START( aerofgtb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0fe000, 0x0fe001) AM_READ_PORT("IN0")
AM_RANGE(0x0fe002, 0x0fe003) AM_READ_PORT("IN1") AM_WRITE_LEGACY(aerofgt_bg1scrolly_w)
AM_RANGE(0x0fe004, 0x0fe005) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(aerofgt_bg2scrollx_w)
- AM_RANGE(0x0fe006, 0x0fe007) AM_READWRITE_LEGACY(pending_command_r, aerofgt_bg2scrolly_w)
+ AM_RANGE(0x0fe006, 0x0fe007) AM_READ(pending_command_r) AM_WRITE_LEGACY(aerofgt_bg2scrolly_w)
AM_RANGE(0x0fe008, 0x0fe009) AM_READ_PORT("DSW2")
AM_RANGE(0x0fe008, 0x0fe00b) AM_WRITE_LEGACY(turbofrc_gfxbank_w)
- AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE_LEGACY(turbofrc_sound_command_w)
+ AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE(turbofrc_sound_command_w)
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_BASE(m_rasterram) /* used only for the scroll registers */
ADDRESS_MAP_END
@@ -303,9 +298,9 @@ static ADDRESS_MAP_START( aerofgt_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xffffa4, 0xffffa5) AM_READ_PORT("SYSTEM")
AM_RANGE(0xffffa6, 0xffffa7) AM_READ_PORT("DSW1")
AM_RANGE(0xffffa8, 0xffffa9) AM_READ_PORT("DSW2")
- AM_RANGE(0xffffac, 0xffffad) AM_READ_LEGACY(pending_command_r) AM_WRITENOP /* ??? */
+ AM_RANGE(0xffffac, 0xffffad) AM_READ(pending_command_r) AM_WRITENOP /* ??? */
AM_RANGE(0xffffae, 0xffffaf) AM_READ_PORT("DSW3")
- AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state )
@@ -326,7 +321,7 @@ static ADDRESS_MAP_START( aerfboot_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0x0fe004, 0x0fe005) AM_WRITE_LEGACY(aerofgt_bg2scrollx_w)
AM_RANGE(0x0fe006, 0x0fe007) AM_WRITE_LEGACY(aerofgt_bg2scrolly_w)
AM_RANGE(0x0fe008, 0x0fe00b) AM_WRITE_LEGACY(turbofrc_gfxbank_w)
- AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE_LEGACY(aerfboot_soundlatch_w)
+ AM_RANGE(0x0fe00e, 0x0fe00f) AM_WRITE(aerfboot_soundlatch_w)
AM_RANGE(0x0fe010, 0x0fe011) AM_WRITENOP
AM_RANGE(0x0fe012, 0x0fe013) AM_WRITENOP
AM_RANGE(0x0fe400, 0x0fe401) AM_WRITENOP
@@ -359,7 +354,7 @@ static ADDRESS_MAP_START( aerfboo2_map, AS_PROGRAM, 16, aerofgt_state )
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(0x0fe010, 0x0fe011) AM_WRITENOP
-// AM_RANGE(0x0fe012, 0x0fe013) AM_WRITE_LEGACY(aerfboot_soundlatch_w)
+// AM_RANGE(0x0fe012, 0x0fe013) AM_WRITE(aerfboot_soundlatch_w)
AM_RANGE(0x0fe400, 0x0fe401) AM_WRITENOP // data for a crtc?
AM_RANGE(0x0fe402, 0x0fe403) AM_WRITENOP // address for a crtc?
AM_RANGE(0x0ff000, 0x0fffff) AM_RAM AM_BASE(m_rasterram) /* used only for the scroll registers */
@@ -377,7 +372,7 @@ static ADDRESS_MAP_START( wbbc97_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(pspikes_palette_bank_w)
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1") AM_WRITE_LEGACY(pspikes_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW") AM_WRITE_LEGACY(aerofgt_bg1scrolly_w)
- AM_RANGE(0xfff006, 0xfff007) AM_READNOP AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xfff006, 0xfff007) AM_READNOP AM_WRITE(sound_command_w)
AM_RANGE(0xfff00e, 0xfff00f) AM_WRITE_LEGACY(wbbc97_bitmap_enable_w)
ADDRESS_MAP_END
@@ -389,23 +384,23 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( turbofrc_sound_portmap, AS_IO, 8, aerofgt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(aerofgt_sh_bankswitch_w)
- AM_RANGE(0x14, 0x14) AM_READWRITE_LEGACY(soundlatch_r, pending_command_clear_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(aerofgt_sh_bankswitch_w)
+ AM_RANGE(0x14, 0x14) AM_READ_LEGACY(soundlatch_r) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerofgt_sound_portmap, AS_IO, 8, aerofgt_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(aerofgt_sh_bankswitch_w)
- AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(pending_command_clear_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(aerofgt_sh_bankswitch_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x0c, 0x0c) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aerfboot_sound_map, AS_PROGRAM, 8, aerofgt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(aerfboot_okim6295_banking_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(aerfboot_okim6295_banking_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index 3eb4f770fa0..01fa6125313 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -225,9 +225,8 @@ Code at 505: waits for bit 1 to go low, writes command, waits for bit
#include "includes/airbustr.h"
/* Read/Write Handlers */
-static READ8_HANDLER( devram_r )
+READ8_MEMBER(airbustr_state::devram_r)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
// There's an MCU here, possibly
switch (offset)
@@ -243,7 +242,7 @@ static READ8_HANDLER( devram_r )
case 0xff2:
case 0xff3:
{
- int x = (state->m_devram[0xff0] + state->m_devram[0xff1] * 256) * (state->m_devram[0xff2] + state->m_devram[0xff3] * 256);
+ int x = (m_devram[0xff0] + m_devram[0xff1] * 256) * (m_devram[0xff2] + m_devram[0xff3] * 256);
if (offset == 0xff2)
return (x & 0x00ff) >> 0;
else
@@ -253,99 +252,91 @@ static READ8_HANDLER( devram_r )
/* Reading eff4, F0 times must yield at most 80-1 consecutive
equal values */
case 0xff4:
- return space->machine().rand();
+ return machine().rand();
default:
- return state->m_devram[offset];
+ return m_devram[offset];
}
}
-static WRITE8_HANDLER( master_nmi_trigger_w )
+WRITE8_MEMBER(airbustr_state::master_nmi_trigger_w)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
- device_set_input_line(state->m_slave, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( master_bankswitch_w )
+WRITE8_MEMBER(airbustr_state::master_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
}
-static WRITE8_HANDLER( slave_bankswitch_w )
+WRITE8_MEMBER(airbustr_state::slave_bankswitch_w)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
- memory_set_bank(space->machine(), "bank2", data & 0x07);
+ memory_set_bank(machine(), "bank2", data & 0x07);
- flip_screen_set(space->machine(), data & 0x10);
+ flip_screen_set(machine(), data & 0x10);
// used at the end of levels, after defeating the boss, to leave trails
- pandora_set_clear_bitmap(state->m_pandora, data & 0x20);
+ pandora_set_clear_bitmap(m_pandora, data & 0x20);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(airbustr_state::sound_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank3", data & 0x07);
+ memory_set_bank(machine(), "bank3", data & 0x07);
}
-static READ8_HANDLER( soundcommand_status_r )
+READ8_MEMBER(airbustr_state::soundcommand_status_r)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
// bits: 2 <-> ? 1 <-> soundlatch full 0 <-> soundlatch2 empty
- return 4 + state->m_soundlatch_status * 2 + (1 - state->m_soundlatch2_status);
+ return 4 + m_soundlatch_status * 2 + (1 - m_soundlatch2_status);
}
-static READ8_HANDLER( soundcommand_r )
+READ8_MEMBER(airbustr_state::soundcommand_r)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
- state->m_soundlatch_status = 0; // soundlatch has been read
+ m_soundlatch_status = 0; // soundlatch has been read
return soundlatch_r(space, 0);
}
-static READ8_HANDLER( soundcommand2_r )
+READ8_MEMBER(airbustr_state::soundcommand2_r)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
- state->m_soundlatch2_status = 0; // soundlatch2 has been read
+ m_soundlatch2_status = 0; // soundlatch2 has been read
return soundlatch2_r(space, 0);
}
-static WRITE8_HANDLER( soundcommand_w )
+WRITE8_MEMBER(airbustr_state::soundcommand_w)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
soundlatch_w(space, 0, data);
- state->m_soundlatch_status = 1; // soundlatch has been written
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE); // cause a nmi to sub cpu
+ m_soundlatch_status = 1; // soundlatch has been written
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE); // cause a nmi to sub cpu
}
-static WRITE8_HANDLER( soundcommand2_w )
+WRITE8_MEMBER(airbustr_state::soundcommand2_w)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
soundlatch2_w(space, 0, data);
- state->m_soundlatch2_status = 1; // soundlatch2 has been written
+ m_soundlatch2_status = 1; // soundlatch2 has been written
}
-static WRITE8_HANDLER( airbustr_paletteram_w )
+WRITE8_MEMBER(airbustr_state::airbustr_paletteram_w)
{
- airbustr_state *state = space->machine().driver_data<airbustr_state>();
int val;
/* ! byte 1 ! ! byte 0 ! */
/* xGGG GGRR RRRB BBBB */
/* x432 1043 2104 3210 */
- state->m_paletteram[offset] = data;
- val = (state->m_paletteram[offset | 1] << 8) | state->m_paletteram[offset & ~1];
+ m_paletteram[offset] = data;
+ val = (m_paletteram[offset | 1] << 8) | m_paletteram[offset & ~1];
- palette_set_color_rgb(space->machine(), offset / 2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0));
+ palette_set_color_rgb(machine(), offset / 2, pal5bit(val >> 5), pal5bit(val >> 10), pal5bit(val >> 0));
}
-static WRITE8_HANDLER( airbustr_coin_counter_w )
+WRITE8_MEMBER(airbustr_state::airbustr_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
- coin_lockout_w(space->machine(), 0, ~data & 4);
- coin_lockout_w(space->machine(), 1, ~data & 8);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
+ coin_lockout_w(machine(), 0, ~data & 4);
+ coin_lockout_w(machine(), 1, ~data & 8);
}
/* Memory Maps */
@@ -360,9 +351,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( master_io_map, AS_IO, 8, airbustr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(master_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(master_bankswitch_w)
AM_RANGE(0x01, 0x01) AM_WRITENOP // ???
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(master_nmi_trigger_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(master_nmi_trigger_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, airbustr_state )
@@ -372,7 +363,7 @@ static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, airbustr_state )
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE_LEGACY(airbustr_colorram2_w) AM_BASE(m_colorram2)
AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE_LEGACY(airbustr_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE_LEGACY(airbustr_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0xd000, 0xd5ff) AM_RAM_WRITE_LEGACY(airbustr_paletteram_w) AM_BASE(m_paletteram)
+ AM_RANGE(0xd000, 0xd5ff) AM_RAM_WRITE(airbustr_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0xd600, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_RAM AM_SHARE("share1")
@@ -380,14 +371,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_io_map, AS_IO, 8, airbustr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(slave_bankswitch_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(soundcommand2_r, soundcommand_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(slave_bankswitch_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(soundcommand2_r, soundcommand_w)
AM_RANGE(0x04, 0x0c) AM_WRITE_LEGACY(airbustr_scrollregs_w)
- AM_RANGE(0x0e, 0x0e) AM_READ_LEGACY(soundcommand_status_r)
+ AM_RANGE(0x0e, 0x0e) AM_READ(soundcommand_status_r)
AM_RANGE(0x20, 0x20) AM_READ_PORT("P1")
AM_RANGE(0x22, 0x22) AM_READ_PORT("P2")
AM_RANGE(0x24, 0x24) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x28, 0x28) AM_WRITE_LEGACY(airbustr_coin_counter_w)
+ AM_RANGE(0x28, 0x28) AM_WRITE(airbustr_coin_counter_w)
AM_RANGE(0x38, 0x38) AM_WRITENOP // irq ack / irq mask
ADDRESS_MAP_END
@@ -399,10 +390,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, airbustr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x04, 0x04) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x06, 0x06) AM_READWRITE_LEGACY(soundcommand_r, soundcommand2_w)
+ AM_RANGE(0x06, 0x06) AM_READWRITE(soundcommand_r, soundcommand2_w)
ADDRESS_MAP_END
/* Input Ports */
@@ -797,7 +788,8 @@ ROM_END
static DRIVER_INIT( airbustr )
{
- machine.device("master")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xe000, 0xefff, FUNC(devram_r)); // protection device lives here
+ airbustr_state *state = machine.driver_data<airbustr_state>();
+ machine.device("master")->memory().space(AS_PROGRAM)->install_read_handler(0xe000, 0xefff, read8_delegate(FUNC(airbustr_state::devram_r),state)); // protection device lives here
}
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index 07c6c205892..0dda8aa3add 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -21,7 +21,7 @@
#include "includes/konamipt.h"
static WRITE8_DEVICE_HANDLER( k007232_extvol_w );
-static WRITE8_HANDLER( sound_bank_w );
+
/****************************************************************************/
@@ -50,7 +50,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ajax_sound_map, AS_PROGRAM, 8, ajax_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM F6 */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM 2128SL at D16 */
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(sound_bank_w) /* 007232 bankswitch */
+ 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 */
@@ -135,20 +135,19 @@ INPUT_PORTS_END
0 / 2MBANK
*/
-static WRITE8_HANDLER( sound_bank_w )
+WRITE8_MEMBER(ajax_state::sound_bank_w)
{
- ajax_state *state = space->machine().driver_data<ajax_state>();
int bank_A, bank_B;
/* banks # for the 007232 (chip 1) */
bank_A = BIT(data, 1);
bank_B = BIT(data, 0);
- k007232_set_bank(state->m_k007232_1, bank_A, bank_B);
+ k007232_set_bank(m_k007232_1, bank_A, bank_B);
/* banks # for the 007232 (chip 2) */
bank_A = ((data >> 4) & 0x03);
bank_B = ((data >> 2) & 0x03);
- k007232_set_bank(state->m_k007232_2, bank_A, bank_B);
+ k007232_set_bank(m_k007232_2, bank_A, bank_B);
}
static void volume_callback0(device_t *device, int v)
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index f9ec1dad4a5..425c9468060 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -27,39 +27,36 @@ static INTERRUPT_GEN( aliens_interrupt )
device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(aliens_state::bankedram_r)
{
- aliens_state *state = space->machine().driver_data<aliens_state>();
- if (state->m_palette_selected)
- return space->machine().generic.paletteram.u8[offset];
+ if (m_palette_selected)
+ return machine().generic.paletteram.u8[offset];
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(aliens_state::bankedram_w)
{
- aliens_state *state = space->machine().driver_data<aliens_state>();
- if (state->m_palette_selected)
+ if (m_palette_selected)
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
-static WRITE8_HANDLER( aliens_coin_counter_w )
+WRITE8_MEMBER(aliens_state::aliens_coin_counter_w)
{
- aliens_state *state = space->machine().driver_data<aliens_state>();
/* bits 0-1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 5 = select work RAM or palette */
- state->m_palette_selected = data & 0x20;
+ m_palette_selected = data & 0x20;
/* bit 6 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
/* other bits unknown */
#if 0
@@ -71,12 +68,11 @@ static WRITE8_HANDLER( aliens_coin_counter_w )
#endif
}
-static WRITE8_HANDLER( aliens_sh_irqtrigger_w )
+WRITE8_MEMBER(aliens_state::aliens_sh_irqtrigger_w)
{
- aliens_state *state = space->machine().driver_data<aliens_state>();
soundlatch_w(space, offset, data);
- 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);
}
static WRITE8_DEVICE_HANDLER( aliens_snd_bankswitch_w )
@@ -93,37 +89,35 @@ static WRITE8_DEVICE_HANDLER( aliens_snd_bankswitch_w )
}
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(aliens_state::k052109_051960_r)
{
- aliens_state *state = space->machine().driver_data<aliens_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(aliens_state::k052109_051960_w)
{
- aliens_state *state = space->machine().driver_data<aliens_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state )
- AM_RANGE(0x0000, 0x03ff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE(m_ram) /* palette + work RAM */
+ AM_RANGE(0x0000, 0x03ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram) /* palette + work RAM */
AM_RANGE(0x0400, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0x5f80, 0x5f80) AM_READ_PORT("DSW3")
@@ -131,9 +125,9 @@ static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state )
AM_RANGE(0x5f82, 0x5f82) AM_READ_PORT("P2")
AM_RANGE(0x5f83, 0x5f83) AM_READ_PORT("DSW2")
AM_RANGE(0x5f84, 0x5f84) AM_READ_PORT("DSW1")
- AM_RANGE(0x5f88, 0x5f88) AM_READWRITE_LEGACY(watchdog_reset_r, aliens_coin_counter_w) /* coin counters */
- AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE_LEGACY(aliens_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x4000, 0x7fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x5f88, 0x5f88) AM_READ_LEGACY(watchdog_reset_r) AM_WRITE(aliens_coin_counter_w) /* coin counters */
+ AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(aliens_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM e24_j02.bin */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index 2001504f9f7..55bd0bad031 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -209,140 +209,134 @@ DIP locations verified from manuals for:
/******************************************************************************/
-static WRITE16_HANDLER( tnextspc_coin_counters_w )
+WRITE16_MEMBER(alpha68k_state::tnextspc_coin_counters_w)
{
- coin_counter_w(space->machine(), offset, data & 0x01);
+ coin_counter_w(machine(), offset, data & 0x01);
}
-static WRITE16_HANDLER( tnextspc_unknown_w )
+WRITE16_MEMBER(alpha68k_state::tnextspc_unknown_w)
{
- logerror("tnextspc_unknown_w : PC = %04x - offset = %04x - data = %04x\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("tnextspc_unknown_w : PC = %04x - offset = %04x - data = %04x\n", cpu_get_pc(&space.device()), offset, data);
if (offset == 0)
- alpha68k_flipscreen_w(space->machine(), data & 0x100);
+ alpha68k_flipscreen_w(machine(), data & 0x100);
}
-static WRITE16_HANDLER( alpha_microcontroller_w )
+WRITE16_MEMBER(alpha68k_state::alpha_microcontroller_w)
{
- logerror("%04x: Alpha write trigger at %04x (%04x)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%04x: Alpha write trigger at %04x (%04x)\n", cpu_get_pc(&space.device()), offset, data);
/* 0x44 = coin clear signal to microcontroller? */
if (offset == 0x2d && ACCESSING_BITS_0_7)
- alpha68k_flipscreen_w(space->machine(), data & 1);
+ alpha68k_flipscreen_w(machine(), data & 1);
}
/******************************************************************************/
-static READ16_HANDLER( kyros_dip_r )
+READ16_MEMBER(alpha68k_state::kyros_dip_r)
{
- return input_port_read(space->machine(), "IN1") << 8;
+ return input_port_read(machine(), "IN1") << 8;
}
-static READ16_HANDLER( control_1_r )
+READ16_MEMBER(alpha68k_state::control_1_r)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- if (state->m_invert_controls)
- return ~(input_port_read(space->machine(), "IN0") + (input_port_read(space->machine(), "IN1") << 8));
+ if (m_invert_controls)
+ return ~(input_port_read(machine(), "IN0") + (input_port_read(machine(), "IN1") << 8));
- return (input_port_read(space->machine(), "IN0") + (input_port_read(space->machine(), "IN1") << 8));
+ return (input_port_read(machine(), "IN0") + (input_port_read(machine(), "IN1") << 8));
}
-static READ16_HANDLER( control_2_r )
+READ16_MEMBER(alpha68k_state::control_2_r)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- if (state->m_invert_controls)
- return ~(input_port_read(space->machine(), "IN3") + ((~(1 << input_port_read(space->machine(), "IN5"))) << 8));
+ if (m_invert_controls)
+ return ~(input_port_read(machine(), "IN3") + ((~(1 << input_port_read(machine(), "IN5"))) << 8));
- return input_port_read(space->machine(), "IN3") + /* Low byte of CN1 */
- ((~(1 << input_port_read(space->machine(), "IN5"))) << 8);
+ return input_port_read(machine(), "IN3") + /* Low byte of CN1 */
+ ((~(1 << input_port_read(machine(), "IN5"))) << 8);
}
-static READ16_HANDLER( control_2_V_r )
+READ16_MEMBER(alpha68k_state::control_2_V_r)
{
- return input_port_read(space->machine(), "IN3");
+ return input_port_read(machine(), "IN3");
}
-static READ16_HANDLER( control_3_r )
+READ16_MEMBER(alpha68k_state::control_3_r)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- if (state->m_invert_controls)
- return ~(((~(1 << input_port_read(space->machine(), "IN6"))) << 8) & 0xff00);
+ if (m_invert_controls)
+ return ~(((~(1 << input_port_read(machine(), "IN6"))) << 8) & 0xff00);
- return ((~(1 << input_port_read(space->machine(), "IN6"))) << 8) & 0xff00;
+ return ((~(1 << input_port_read(machine(), "IN6"))) << 8) & 0xff00;
}
/* High 4 bits of CN1 & CN2 */
-static READ16_HANDLER( control_4_r )
+READ16_MEMBER(alpha68k_state::control_4_r)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- if (state->m_invert_controls)
- return ~((((~(1 << input_port_read(space->machine(), "IN6"))) << 4) & 0xf000)
- + (((~(1 << input_port_read(space->machine(), "IN5")))) & 0x0f00));
+ if (m_invert_controls)
+ return ~((((~(1 << input_port_read(machine(), "IN6"))) << 4) & 0xf000)
+ + (((~(1 << input_port_read(machine(), "IN5")))) & 0x0f00));
- return (((~(1 << input_port_read(space->machine(), "IN6"))) << 4) & 0xf000)
- + (((~(1 << input_port_read(space->machine(), "IN5")))) & 0x0f00);
+ return (((~(1 << input_port_read(machine(), "IN6"))) << 4) & 0xf000)
+ + (((~(1 << input_port_read(machine(), "IN5")))) & 0x0f00);
}
-static READ16_HANDLER( jongbou_inputs_r )
+READ16_MEMBER(alpha68k_state::jongbou_inputs_r)
{
- UINT8 inp1 = input_port_read(space->machine(), "IN3");
- UINT8 inp2 = input_port_read(space->machine(), "IN4");
+ UINT8 inp1 = input_port_read(machine(), "IN3");
+ UINT8 inp2 = input_port_read(machine(), "IN4");
inp1 = ((inp1 & 0x01) << 3) + ((inp1 & 0x02) << 1) + ((inp1 & 0x04) >> 1) + ((inp1 & 0x08) >> 3);
inp2 = ((inp2 & 0x01) << 3) + ((inp2 & 0x02) << 1) + ((inp2 & 0x04) >> 1) + ((inp2 & 0x08) >> 3);
- return input_port_read(space->machine(), "IN0") | inp1 | inp2 << 4;
+ return input_port_read(machine(), "IN0") | inp1 | inp2 << 4;
}
/******************************************************************************/
-static WRITE16_HANDLER( kyros_sound_w )
+WRITE16_MEMBER(alpha68k_state::kyros_sound_w)
{
if(ACCESSING_BITS_8_15)
soundlatch_w(space, 0, (data >> 8) & 0xff);
}
-static WRITE16_HANDLER( alpha68k_II_sound_w )
+WRITE16_MEMBER(alpha68k_state::alpha68k_II_sound_w)
{
if(ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
}
-static WRITE16_HANDLER( alpha68k_V_sound_w )
+WRITE16_MEMBER(alpha68k_state::alpha68k_V_sound_w)
{
/* Sound & fix bank select are in the same word */
if(ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
if(ACCESSING_BITS_8_15)
- alpha68k_V_video_bank_w(space->machine(), (data >> 8) & 0xff);
+ alpha68k_V_video_bank_w(machine(), (data >> 8) & 0xff);
}
//AT
-static WRITE16_HANDLER( paddlema_soundlatch_w )
+WRITE16_MEMBER(alpha68k_state::paddlema_soundlatch_w)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
}
-static WRITE16_HANDLER( tnextspc_soundlatch_w )
+WRITE16_MEMBER(alpha68k_state::tnextspc_soundlatch_w)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
//ZT
/******************************************************************************/
-static READ16_HANDLER( kyros_alpha_trigger_r )
+READ16_MEMBER(alpha68k_state::kyros_alpha_trigger_r)
{
/* possible jump codes:
- Kyros : 0x22
@@ -350,80 +344,79 @@ static READ16_HANDLER( kyros_alpha_trigger_r )
*/
static const UINT8 coinage1[8][2]={{1,1}, {1,5}, {1,3}, {2,3}, {1,2}, {1,6}, {1,4}, {3,2}};
static const UINT8 coinage2[8][2]={{1,1}, {5,1}, {3,1}, {7,1}, {2,1}, {6,1}, {4,1}, {8,1}};
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- int source = state->m_shared_ram[offset];
+ int source = m_shared_ram[offset];
switch (offset)
{
case 0x22: /* Coin value */
- state->m_shared_ram[0x22] = (source & 0xff00) | (state->m_credits & 0x00ff);
+ m_shared_ram[0x22] = (source & 0xff00) | (m_credits & 0x00ff);
return 0;
case 0x29: /* Query microcontroller for coin insert */
- state->m_trigstate++;
- if ((input_port_read(space->machine(), "IN2") & 0x3) == 3)
- state->m_latch = 0;
- if ((input_port_read(space->machine(), "IN2") & 0x1) == 0 && !state->m_latch)
+ m_trigstate++;
+ if ((input_port_read(machine(), "IN2") & 0x3) == 3)
+ m_latch = 0;
+ if ((input_port_read(machine(), "IN2") & 0x1) == 0 && !m_latch)
{
- state->m_shared_ram[0x29] = (source & 0xff00) | (state->m_coin_id & 0xff); // coinA
- state->m_shared_ram[0x22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x29] = (source & 0xff00) | (m_coin_id & 0xff); // coinA
+ m_shared_ram[0x22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- state->m_coinvalue = (~input_port_read(space->machine(), "IN1") >> 1) & 7;
- state->m_deposits1++;
- if (state->m_deposits1 == coinage1[state->m_coinvalue][0])
+ m_coinvalue = (~input_port_read(machine(), "IN1") >> 1) & 7;
+ m_deposits1++;
+ if (m_deposits1 == coinage1[m_coinvalue][0])
{
- state->m_credits = coinage1[state->m_coinvalue][1];
- state->m_deposits1 = 0;
+ m_credits = coinage1[m_coinvalue][1];
+ m_deposits1 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
- else if ((input_port_read(space->machine(), "IN2") & 0x2) == 0 && !state->m_latch)
+ else if ((input_port_read(machine(), "IN2") & 0x2) == 0 && !m_latch)
{
- state->m_shared_ram[0x29] = (source & 0xff00) | (state->m_coin_id >> 8); // coinB
- state->m_shared_ram[0x22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x29] = (source & 0xff00) | (m_coin_id >> 8); // coinB
+ m_shared_ram[0x22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- state->m_coinvalue = (~input_port_read(space->machine(), "IN1") >>1 ) & 7;
- state->m_deposits2++;
- if (state->m_deposits2 == coinage2[state->m_coinvalue][0])
+ m_coinvalue = (~input_port_read(machine(), "IN1") >>1 ) & 7;
+ m_deposits2++;
+ if (m_deposits2 == coinage2[m_coinvalue][0])
{
- state->m_credits = coinage2[state->m_coinvalue][1];
- state->m_deposits2 = 0;
+ m_credits = coinage2[m_coinvalue][1];
+ m_deposits2 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
else
{
- if (state->m_microcontroller_id == 0x00ff) /* Super Stingry */
+ if (m_microcontroller_id == 0x00ff) /* Super Stingry */
{
- if (state->m_trigstate >= 12 || state->m_game_id == ALPHA68K_JONGBOU) /* arbitrary value ! */
+ if (m_trigstate >= 12 || m_game_id == ALPHA68K_JONGBOU) /* arbitrary value ! */
{
- state->m_trigstate = 0;
- state->m_microcontroller_data = 0x21; // timer
+ m_trigstate = 0;
+ m_microcontroller_data = 0x21; // timer
}
else
- state->m_microcontroller_data = 0x00;
+ m_microcontroller_data = 0x00;
}
else
- state->m_microcontroller_data = 0x00;
+ m_microcontroller_data = 0x00;
- state->m_shared_ram[0x29] = (source & 0xff00) | state->m_microcontroller_data;
+ m_shared_ram[0x29] = (source & 0xff00) | m_microcontroller_data;
}
return 0;
case 0xff: /* Custom check, only used at bootup */
- state->m_shared_ram[0xff] = (source & 0xff00) | state->m_microcontroller_id;
+ m_shared_ram[0xff] = (source & 0xff00) | m_microcontroller_id;
break;
}
- logerror("%04x: Alpha read trigger at %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Alpha read trigger at %04x\n", cpu_get_pc(&space.device()), offset);
return 0; /* Values returned don't matter */
}
/* Time Soldiers, Sky Soldiers, Gold Medalist */
-static READ16_HANDLER( alpha_II_trigger_r )
+READ16_MEMBER(alpha68k_state::alpha_II_trigger_r)
{
/* possible jump codes:
- Time Soldiers : 0x21,0x22,0x23,0x24,0x34,0x37,0x3a,0x3d,0x40,0x43,0x46,0x49
@@ -432,93 +425,92 @@ static READ16_HANDLER( alpha_II_trigger_r )
*/
static const UINT8 coinage1[8][2] = {{1,1}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {2,3}, {3,2}};
static const UINT8 coinage2[8][2] = {{1,1}, {2,1}, {3,1}, {4,1}, {5,1}, {6,1}, {7,1}, {8,1}};
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- int source = state->m_shared_ram[offset];
+ int source = m_shared_ram[offset];
switch (offset)
{
case 0: /* Dipswitch 2 */
- state->m_shared_ram[0] = (source & 0xff00) | input_port_read(space->machine(), "IN4");
+ m_shared_ram[0] = (source & 0xff00) | input_port_read(machine(), "IN4");
return 0;
case 0x22: /* Coin value */
- state->m_shared_ram[0x22] = (source & 0xff00) | (state->m_credits & 0x00ff);
+ m_shared_ram[0x22] = (source & 0xff00) | (m_credits & 0x00ff);
return 0;
case 0x29: /* Query microcontroller for coin insert */
- if ((input_port_read(space->machine(), "IN2") & 0x3) == 3)
- state->m_latch = 0;
- if ((input_port_read(space->machine(), "IN2") & 0x1) == 0 && !state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 0x3) == 3)
+ m_latch = 0;
+ if ((input_port_read(machine(), "IN2") & 0x1) == 0 && !m_latch)
{
- state->m_shared_ram[0x29] = (source & 0xff00) | (state->m_coin_id & 0xff); // coinA
- state->m_shared_ram[0x22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x29] = (source & 0xff00) | (m_coin_id & 0xff); // coinA
+ m_shared_ram[0x22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- if ((state->m_coin_id & 0xff) == 0x22)
+ if ((m_coin_id & 0xff) == 0x22)
{
- if (state->m_game_id == ALPHA68K_BTLFIELDB)
- state->m_coinvalue = (input_port_read(space->machine(), "IN4") >> 0) & 7;
+ if (m_game_id == ALPHA68K_BTLFIELDB)
+ m_coinvalue = (input_port_read(machine(), "IN4") >> 0) & 7;
else
- state->m_coinvalue = (~input_port_read(space->machine(), "IN4") >> 0) & 7;
+ m_coinvalue = (~input_port_read(machine(), "IN4") >> 0) & 7;
- state->m_deposits1++;
- if (state->m_deposits1 == coinage1[state->m_coinvalue][0])
+ m_deposits1++;
+ if (m_deposits1 == coinage1[m_coinvalue][0])
{
- state->m_credits = coinage1[state->m_coinvalue][1];
- state->m_deposits1 = 0;
+ m_credits = coinage1[m_coinvalue][1];
+ m_deposits1 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
}
- else if ((input_port_read(space->machine(), "IN2") & 0x2) == 0 && !state->m_latch)
+ else if ((input_port_read(machine(), "IN2") & 0x2) == 0 && !m_latch)
{
- state->m_shared_ram[0x29] = (source & 0xff00) | (state->m_coin_id >> 8); // coinB
- state->m_shared_ram[0x22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x29] = (source & 0xff00) | (m_coin_id >> 8); // coinB
+ m_shared_ram[0x22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- if ((state->m_coin_id >> 8) == 0x22)
+ if ((m_coin_id >> 8) == 0x22)
{
- if (state->m_game_id == ALPHA68K_BTLFIELDB)
- state->m_coinvalue = (input_port_read(space->machine(), "IN4") >> 0) & 7;
+ if (m_game_id == ALPHA68K_BTLFIELDB)
+ m_coinvalue = (input_port_read(machine(), "IN4") >> 0) & 7;
else
- state->m_coinvalue = (~input_port_read(space->machine(), "IN4") >> 0) & 7;
+ m_coinvalue = (~input_port_read(machine(), "IN4") >> 0) & 7;
- state->m_deposits2++;
- if (state->m_deposits2 == coinage2[state->m_coinvalue][0])
+ m_deposits2++;
+ if (m_deposits2 == coinage2[m_coinvalue][0])
{
- state->m_credits = coinage2[state->m_coinvalue][1];
- state->m_deposits2 = 0;
+ m_credits = coinage2[m_coinvalue][1];
+ m_deposits2 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
}
else
{
- if (state->m_microcontroller_id == 0x8803) /* Gold Medalist */
- state->m_microcontroller_data = 0x21; // timer
+ if (m_microcontroller_id == 0x8803) /* Gold Medalist */
+ m_microcontroller_data = 0x21; // timer
else
- state->m_microcontroller_data = 0x00;
- state->m_shared_ram[0x29] = (source & 0xff00) | state->m_microcontroller_data;
+ m_microcontroller_data = 0x00;
+ m_shared_ram[0x29] = (source & 0xff00) | m_microcontroller_data;
}
return 0;
case 0xfe: /* Custom ID check, same for all games */
- state->m_shared_ram[0xfe] = (source & 0xff00) | 0x87;
+ m_shared_ram[0xfe] = (source & 0xff00) | 0x87;
break;
case 0xff: /* Custom ID check, same for all games */
- state->m_shared_ram[0xff] = (source & 0xff00) | 0x13;
+ m_shared_ram[0xff] = (source & 0xff00) | 0x13;
break;
}
- logerror("%04x: Alpha read trigger at %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Alpha read trigger at %04x\n", cpu_get_pc(&space.device()), offset);
return 0; /* Values returned don't matter */
}
/* Sky Adventure, Gang Wars, Super Champion Baseball */
-static READ16_HANDLER( alpha_V_trigger_r )
+READ16_MEMBER(alpha68k_state::alpha_V_trigger_r)
{
/* possible jump codes:
- Sky Adventure : 0x21,0x22,0x23,0x24,0x34,0x37,0x3a,0x3d,0x40,0x43,0x46,0x49
@@ -527,138 +519,137 @@ static READ16_HANDLER( alpha_V_trigger_r )
*/
static const UINT8 coinage1[8][2] = {{1,1}, {1,5}, {1,3}, {2,3}, {1,2}, {1,6}, {1,4}, {3,2}};
static const UINT8 coinage2[8][2] = {{1,1}, {5,1}, {3,1}, {7,1}, {2,1}, {6,1}, {4,1}, {8,1}};
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
- int source = state->m_shared_ram[offset];
+ int source = m_shared_ram[offset];
switch (offset)
{
case 0: /* Dipswitch 1 */
- state->m_shared_ram[0] = (source & 0xff00) | input_port_read(space->machine(), "IN4");
+ m_shared_ram[0] = (source & 0xff00) | input_port_read(machine(), "IN4");
return 0;
case 0x22: /* Coin value */
- state->m_shared_ram[0x22] = (source & 0xff00) | (state->m_credits & 0x00ff);
+ m_shared_ram[0x22] = (source & 0xff00) | (m_credits & 0x00ff);
return 0;
case 0x29: /* Query microcontroller for coin insert */
- if ((input_port_read(space->machine(), "IN2") & 0x3) == 3)
- state->m_latch = 0;
- if ((input_port_read(space->machine(), "IN2") & 0x1) == 0 && !state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 0x3) == 3)
+ m_latch = 0;
+ if ((input_port_read(machine(), "IN2") & 0x1) == 0 && !m_latch)
{
- state->m_shared_ram[0x29] = (source & 0xff00) | (state->m_coin_id & 0xff); // coinA
- state->m_shared_ram[0x22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x29] = (source & 0xff00) | (m_coin_id & 0xff); // coinA
+ m_shared_ram[0x22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- if ((state->m_coin_id & 0xff) == 0x22)
+ if ((m_coin_id & 0xff) == 0x22)
{
- state->m_coinvalue = (~input_port_read(space->machine(), "IN4") >> 1) & 7;
- state->m_deposits1++;
- if (state->m_deposits1 == coinage1[state->m_coinvalue][0])
+ m_coinvalue = (~input_port_read(machine(), "IN4") >> 1) & 7;
+ m_deposits1++;
+ if (m_deposits1 == coinage1[m_coinvalue][0])
{
- state->m_credits = coinage1[state->m_coinvalue][1];
- state->m_deposits1 = 0;
+ m_credits = coinage1[m_coinvalue][1];
+ m_deposits1 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
}
- else if ((input_port_read(space->machine(), "IN2") & 0x2) == 0 && !state->m_latch)
+ else if ((input_port_read(machine(), "IN2") & 0x2) == 0 && !m_latch)
{
- state->m_shared_ram[0x29] = (source & 0xff00) | (state->m_coin_id>>8); // coinB
- state->m_shared_ram[0x22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x29] = (source & 0xff00) | (m_coin_id>>8); // coinB
+ m_shared_ram[0x22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- if ((state->m_coin_id >> 8) == 0x22)
+ if ((m_coin_id >> 8) == 0x22)
{
- state->m_coinvalue = (~input_port_read(space->machine(), "IN4") >> 1) & 7;
- state->m_deposits2++;
- if (state->m_deposits2 == coinage2[state->m_coinvalue][0])
+ m_coinvalue = (~input_port_read(machine(), "IN4") >> 1) & 7;
+ m_deposits2++;
+ if (m_deposits2 == coinage2[m_coinvalue][0])
{
- state->m_credits = coinage2[state->m_coinvalue][1];
- state->m_deposits2 = 0;
+ m_credits = coinage2[m_coinvalue][1];
+ m_deposits2 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
}
else
{
- state->m_microcontroller_data = 0x00;
- state->m_shared_ram[0x29] = (source & 0xff00) | state->m_microcontroller_data;
+ m_microcontroller_data = 0x00;
+ m_shared_ram[0x29] = (source & 0xff00) | m_microcontroller_data;
}
return 0;
case 0xfe: /* Custom ID check */
- state->m_shared_ram[0xfe] = (source & 0xff00) | (state->m_microcontroller_id >> 8);
+ m_shared_ram[0xfe] = (source & 0xff00) | (m_microcontroller_id >> 8);
break;
case 0xff: /* Custom ID check */
- state->m_shared_ram[0xff] = (source & 0xff00) | (state->m_microcontroller_id & 0xff);
+ m_shared_ram[0xff] = (source & 0xff00) | (m_microcontroller_id & 0xff);
break;
case 0x1f00: /* Dipswitch 1 */
- state->m_shared_ram[0x1f00] = (source & 0xff00) | input_port_read(space->machine(), "IN4");
+ m_shared_ram[0x1f00] = (source & 0xff00) | input_port_read(machine(), "IN4");
return 0;
case 0x1f29: /* Query microcontroller for coin insert */
- if ((input_port_read(space->machine(), "IN2") & 0x3) == 3)
- state->m_latch = 0;
- if ((input_port_read(space->machine(), "IN2") & 0x1) == 0 && !state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 0x3) == 3)
+ m_latch = 0;
+ if ((input_port_read(machine(), "IN2") & 0x1) == 0 && !m_latch)
{
- state->m_shared_ram[0x1f29] = (source & 0xff00) | (state->m_coin_id & 0xff); // coinA
- state->m_shared_ram[0x1f22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x1f29] = (source & 0xff00) | (m_coin_id & 0xff); // coinA
+ m_shared_ram[0x1f22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- if ((state->m_coin_id & 0xff) == 0x22)
+ if ((m_coin_id & 0xff) == 0x22)
{
- state->m_coinvalue = (~input_port_read(space->machine(), "IN4") >> 1) & 7;
- state->m_deposits1++;
- if (state->m_deposits1 == coinage1[state->m_coinvalue][0])
+ m_coinvalue = (~input_port_read(machine(), "IN4") >> 1) & 7;
+ m_deposits1++;
+ if (m_deposits1 == coinage1[m_coinvalue][0])
{
- state->m_credits = coinage1[state->m_coinvalue][1];
- state->m_deposits1 = 0;
+ m_credits = coinage1[m_coinvalue][1];
+ m_deposits1 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
}
- else if ((input_port_read(space->machine(), "IN2") & 0x2) == 0 && !state->m_latch)
+ else if ((input_port_read(machine(), "IN2") & 0x2) == 0 && !m_latch)
{
- state->m_shared_ram[0x1f29] = (source & 0xff00) | (state->m_coin_id >> 8); // coinB
- state->m_shared_ram[0x1f22] = (source & 0xff00) | 0x0;
- state->m_latch = 1;
+ m_shared_ram[0x1f29] = (source & 0xff00) | (m_coin_id >> 8); // coinB
+ m_shared_ram[0x1f22] = (source & 0xff00) | 0x0;
+ m_latch = 1;
- if ((state->m_coin_id >> 8) == 0x22)
+ if ((m_coin_id >> 8) == 0x22)
{
- state->m_coinvalue = (~input_port_read(space->machine(), "IN4") >> 1) & 7;
- state->m_deposits2++;
- if (state->m_deposits2 == coinage2[state->m_coinvalue][0])
+ m_coinvalue = (~input_port_read(machine(), "IN4") >> 1) & 7;
+ m_deposits2++;
+ if (m_deposits2 == coinage2[m_coinvalue][0])
{
- state->m_credits = coinage2[state->m_coinvalue][1];
- state->m_deposits2 = 0;
+ m_credits = coinage2[m_coinvalue][1];
+ m_deposits2 = 0;
}
else
- state->m_credits = 0;
+ m_credits = 0;
}
}
else
{
- state->m_microcontroller_data = 0x00;
- state->m_shared_ram[0x1f29] = (source & 0xff00) | state->m_microcontroller_data;
+ m_microcontroller_data = 0x00;
+ m_shared_ram[0x1f29] = (source & 0xff00) | m_microcontroller_data;
}
/* Gang Wars expects the first dip to appear in RAM at 0x02c6,
the microcontroller supplies it (it does for all the other games,
but usually to 0x0 in RAM) when 0x21 is read (code at 0x009332) */
- source = state->m_shared_ram[0x0163];
- state->m_shared_ram[0x0163] = (source & 0x00ff) | (input_port_read(space->machine(), "IN4") << 8);
+ source = m_shared_ram[0x0163];
+ m_shared_ram[0x0163] = (source & 0x00ff) | (input_port_read(machine(), "IN4") << 8);
return 0;
case 0x1ffe: /* Custom ID check */
- state->m_shared_ram[0x1ffe] = (source & 0xff00) | (state->m_microcontroller_id >> 8);
+ m_shared_ram[0x1ffe] = (source & 0xff00) | (m_microcontroller_id >> 8);
break;
case 0x1fff: /* Custom ID check */
- state->m_shared_ram[0x1fff] = (source & 0xff00) | (state->m_microcontroller_id & 0xff);
+ m_shared_ram[0x1fff] = (source & 0xff00) | (m_microcontroller_id & 0xff);
break;
}
- logerror("%04x: Alpha read trigger at %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Alpha read trigger at %04x\n", cpu_get_pc(&space.device()), offset);
return 0; /* Values returned don't matter */
}
@@ -670,9 +661,9 @@ static ADDRESS_MAP_START( kyros_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x020000, 0x020fff) AM_RAM AM_BASE(m_shared_ram) // work RAM
AM_RANGE(0x040000, 0x041fff) AM_RAM AM_BASE(m_spriteram) // sprite RAM
AM_RANGE(0x060000, 0x060001) AM_RAM AM_BASE(m_videoram) // MSB: watchdog, LSB: BGC
- AM_RANGE(0x080000, 0x0801ff) AM_READWRITE_LEGACY(kyros_alpha_trigger_r, alpha_microcontroller_w)
+ AM_RANGE(0x080000, 0x0801ff) AM_READWRITE(kyros_alpha_trigger_r, alpha_microcontroller_w)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN0")
- AM_RANGE(0x0e0000, 0x0e0001) AM_READWRITE_LEGACY(kyros_dip_r, kyros_sound_w)
+ AM_RANGE(0x0e0000, 0x0e0001) AM_READWRITE(kyros_dip_r, kyros_sound_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( alpha68k_I_map, AS_PROGRAM, 16, alpha68k_state )
@@ -683,24 +674,24 @@ static ADDRESS_MAP_START( alpha68k_I_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x180008, 0x180009) AM_READ_PORT("IN4") // LSB: DSW1
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") // joy1, joy2
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("IN1") // coin, start, service
- AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN2") AM_WRITE_LEGACY(paddlema_soundlatch_w) // LSB: sound latch write and RST38 trigger, joy3, joy4
+ AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN2") AM_WRITE(paddlema_soundlatch_w) // LSB: sound latch write and RST38 trigger, joy3, joy4
ADDRESS_MAP_END
static ADDRESS_MAP_START( alpha68k_II_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE(m_shared_ram)
- AM_RANGE(0x080000, 0x080001) AM_READ_LEGACY(control_1_r) /* Joysticks */
- AM_RANGE(0x080000, 0x080001) AM_WRITE_LEGACY(alpha68k_II_sound_w)
- AM_RANGE(0x0c0000, 0x0c0001) AM_READ_LEGACY(control_2_r) /* CN1 & Dip 1 */
+ AM_RANGE(0x080000, 0x080001) AM_READ(control_1_r) /* Joysticks */
+ AM_RANGE(0x080000, 0x080001) AM_WRITE(alpha68k_II_sound_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ(control_2_r) /* CN1 & Dip 1 */
AM_RANGE(0x0c0000, 0x0c00ff) AM_WRITE_LEGACY(alpha68k_II_video_bank_w)
- AM_RANGE(0x0c8000, 0x0c8001) AM_READ_LEGACY(control_3_r) /* Bottom of CN2 */
- AM_RANGE(0x0d0000, 0x0d0001) AM_READ_LEGACY(control_4_r) /* Top of CN1 & CN2 */
+ AM_RANGE(0x0c8000, 0x0c8001) AM_READ(control_3_r) /* Bottom of CN2 */
+ AM_RANGE(0x0d0000, 0x0d0001) AM_READ(control_4_r) /* Top of CN1 & CN2 */
AM_RANGE(0x0d8000, 0x0d8001) AM_READNOP /* IRQ ack? */
AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* IRQ ack? */
AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* watchdog? */
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE_LEGACY(alpha68k_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0x300000, 0x3001ff) AM_READWRITE_LEGACY(alpha_II_trigger_r, alpha_microcontroller_w)
+ AM_RANGE(0x300000, 0x3001ff) AM_READWRITE(alpha_II_trigger_r, alpha_microcontroller_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(alpha68k_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0x800000, 0x83ffff) AM_ROMBANK("bank8")
ADDRESS_MAP_END
@@ -708,22 +699,22 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( alpha68k_V_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM AM_BASE(m_shared_ram)
- AM_RANGE(0x080000, 0x080001) AM_READWRITE_LEGACY(control_1_r, alpha68k_V_sound_w) /* Joysticks */
- AM_RANGE(0x0c0000, 0x0c0001) AM_READ_LEGACY(control_2_V_r) /* Dip 2 */
+ AM_RANGE(0x080000, 0x080001) AM_READWRITE(control_1_r, alpha68k_V_sound_w) /* Joysticks */
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ(control_2_V_r) /* Dip 2 */
AM_RANGE(0x0c0000, 0x0c00ff) AM_WRITE_LEGACY(alpha68k_V_video_control_w)
AM_RANGE(0x0d8000, 0x0d8001) AM_READNOP /* IRQ ack? */
AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* IRQ ack? */
AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* watchdog? */
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE_LEGACY(alpha68k_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0x300000, 0x303fff) AM_READ_LEGACY(alpha_V_trigger_r)
- AM_RANGE(0x300000, 0x3001ff) AM_WRITE_LEGACY(alpha_microcontroller_w)
- AM_RANGE(0x303e00, 0x303fff) AM_WRITE_LEGACY(alpha_microcontroller_w) /* Gang Wars mirror */
+ AM_RANGE(0x300000, 0x303fff) AM_READ(alpha_V_trigger_r)
+ AM_RANGE(0x300000, 0x3001ff) AM_WRITE(alpha_microcontroller_w)
+ AM_RANGE(0x303e00, 0x303fff) AM_WRITE(alpha_microcontroller_w) /* Gang Wars mirror */
AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE_LEGACY(alpha68k_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0x800000, 0x83ffff) AM_ROMBANK("bank8")
ADDRESS_MAP_END
-static READ16_HANDLER(sound_cpu_r) { return 1; }
+READ16_MEMBER(alpha68k_state::sound_cpu_r){ return 1; }
static ADDRESS_MAP_START( tnextspc_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
@@ -737,17 +728,17 @@ static ADDRESS_MAP_START( tnextspc_map, AS_PROGRAM, 16, alpha68k_state )
AM_RANGE(0x0e0008, 0x0e0009) AM_READ_PORT("DSW1")
AM_RANGE(0x0e000a, 0x0e000b) AM_READ_PORT("DSW2")
AM_RANGE(0x0e000e, 0x0e000f) AM_WRITENOP // unknown write port (0)
- AM_RANGE(0x0e0018, 0x0e0019) AM_READ_LEGACY(sound_cpu_r)
- AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE_LEGACY(tnextspc_unknown_w)
- AM_RANGE(0x0f0002, 0x0f0005) AM_WRITE_LEGACY(tnextspc_coin_counters_w)
- AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE_LEGACY(tnextspc_soundlatch_w)
+ AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_cpu_r)
+ AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE(tnextspc_unknown_w)
+ AM_RANGE(0x0f0002, 0x0f0005) AM_WRITE(tnextspc_coin_counters_w)
+ AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(tnextspc_soundlatch_w)
ADDRESS_MAP_END
/******************************************************************************/
-static WRITE8_HANDLER( sound_bank_w )
+WRITE8_MEMBER(alpha68k_state::sound_bank_w)
{
- memory_set_bank(space->machine(), "bank7", data);
+ memory_set_bank(machine(), "bank7", data);
}
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, alpha68k_state )
@@ -808,7 +799,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, alpha68k_state )
AM_RANGE(0x08, 0x08) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
AM_RANGE(0x0a, 0x0b) AM_DEVWRITE_LEGACY("ym2", ym2413_w)
AM_RANGE(0x0c, 0x0d) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
- AM_RANGE(0x0e, 0x0e) AM_WRITE_LEGACY(sound_bank_w)
+ AM_RANGE(0x0e, 0x0e) AM_WRITE(sound_bank_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kyros_sound_portmap, AS_IO, 8, alpha68k_state )
@@ -1835,21 +1826,20 @@ static const ay8910_interface ay8910_config =
DEVCB_MEMORY_HANDLER("audiocpu", PROGRAM, soundlatch_r)
};
-static WRITE8_HANDLER( porta_w )
+WRITE8_MEMBER(alpha68k_state::porta_w)
{
- alpha68k_state *state = space->machine().driver_data<alpha68k_state>();
if(data == 0xff)
return; // skip
/* guess */
- if(data == 0 && state->m_sound_pa_latch) // 1 -> 0 transition = enables NMI
- state->m_sound_nmi_mask = 1;
+ if(data == 0 && m_sound_pa_latch) // 1 -> 0 transition = enables NMI
+ m_sound_nmi_mask = 1;
- if(data && state->m_sound_pa_latch == 0) // 0 -> 1 transition = disables NMI
- state->m_sound_nmi_mask = 0;
+ if(data && m_sound_pa_latch == 0) // 0 -> 1 transition = disables NMI
+ m_sound_nmi_mask = 0;
- state->m_sound_pa_latch = data & 1;
+ m_sound_pa_latch = data & 1;
}
static const ym2203_interface ym2203_config =
@@ -1859,7 +1849,7 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_MEMORY_HANDLER("audiocpu", PROGRAM, soundlatch_r),
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("audiocpu", PROGRAM, porta_w),
+ DEVCB_DRIVER_MEMBER(alpha68k_state, porta_w),
DEVCB_NULL
},
NULL
@@ -3178,7 +3168,7 @@ static DRIVER_INIT( kyros )
static DRIVER_INIT( jongbou )
{
alpha68k_state *state = machine.driver_data<alpha68k_state>();
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0c0000, 0x0c0001, FUNC(jongbou_inputs_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0c0000, 0x0c0001, read16_delegate(FUNC(alpha68k_state::jongbou_inputs_r),state));
state->m_invert_controls = 0;
state->m_microcontroller_id = 0x00ff;
state->m_coin_id = 0x23 | (0x24 << 8);
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index b8af5195cad..649e6a9aed8 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -45,15 +45,15 @@
*
*************************************/
-static WRITE8_HANDLER( ambush_coin_counter_w )
+WRITE8_MEMBER(ambush_state::ambush_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(ambush_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
@@ -74,9 +74,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ambush_state )
AM_RANGE(0xc400, 0xc7ff) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("DSW1")
AM_RANGE(0xcc00, 0xcc03) AM_WRITENOP
- AM_RANGE(0xcc04, 0xcc04) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0xcc04, 0xcc04) AM_WRITE(flip_screen_w)
AM_RANGE(0xcc05, 0xcc05) AM_WRITEONLY AM_BASE(m_colorbank)
- AM_RANGE(0xcc07, 0xcc07) AM_WRITE_LEGACY(ambush_coin_counter_w)
+ AM_RANGE(0xcc07, 0xcc07) AM_WRITE(ambush_coin_counter_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, ambush_state )
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index a7abf2e510d..44e23793d27 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -469,7 +469,7 @@
*/
-static WRITE8_HANDLER( ampoker2_port30_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port30_w)
/*-------------------------------------------------
PORT_30 C000H ;OUTPUT PORT 30H
---------------------------------------------------
@@ -483,7 +483,7 @@ static WRITE8_HANDLER( ampoker2_port30_w )
}
-static WRITE8_HANDLER( ampoker2_port31_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port31_w)
/*-------------------------------------------------
PORT_31 C001H ;OUTPUT PORT 31H
---------------------------------------------------
@@ -501,7 +501,7 @@ static WRITE8_HANDLER( ampoker2_port31_w )
}
-static WRITE8_HANDLER( ampoker2_port32_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port32_w)
/*-------------------------------------------------
PORT_32 C002H ;OUTPUT PORT 32H
---------------------------------------------------
@@ -516,7 +516,7 @@ static WRITE8_HANDLER( ampoker2_port32_w )
}
-static WRITE8_HANDLER( ampoker2_port33_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port33_w)
/*-------------------------------------------------
PORT_33 C003H ;OUTPUT PORT 33H
---------------------------------------------------
@@ -530,7 +530,7 @@ static WRITE8_HANDLER( ampoker2_port33_w )
}
-static WRITE8_HANDLER( ampoker2_port34_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port34_w)
/*-------------------------------------------------
PORT_34 C004H ;OUTPUT PORT 34H
---------------------------------------------------
@@ -545,7 +545,7 @@ static WRITE8_HANDLER( ampoker2_port34_w )
}
-static WRITE8_HANDLER( ampoker2_port35_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port35_w)
/*-------------------------------------------------
PORT_35 C005H ;OUTPUT PORT 35H
---------------------------------------------------
@@ -559,7 +559,7 @@ static WRITE8_HANDLER( ampoker2_port35_w )
}
-static WRITE8_HANDLER( ampoker2_port36_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_port36_w)
/*-------------------------------------------------
PORT_36 C006H ;OUTPUT PORT 36H
---------------------------------------------------
@@ -577,7 +577,7 @@ static WRITE8_HANDLER( ampoker2_port36_w )
}
-static WRITE8_HANDLER( ampoker2_watchdog_reset_w )
+WRITE8_MEMBER(ampoker2_state::ampoker2_watchdog_reset_w)
/*-------------------------------------------------
PORT_37 C007H ;OUTPUT PORT 37H
---------------------------------------------------
@@ -588,7 +588,7 @@ static WRITE8_HANDLER( ampoker2_watchdog_reset_w )
if (((data >> 3) & 0x01) == 0) /* check for refresh value (0x08) */
{
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
// popmessage("%02x", data);
}
else
@@ -620,14 +620,14 @@ static ADDRESS_MAP_START( ampoker2_io_map, AS_IO, 8, ampoker2_state )
AM_RANGE(0x16, 0x16) AM_READ_PORT("IN6")
AM_RANGE(0x17, 0x17) AM_READ_PORT("IN7")
// AM_RANGE(0x21, 0x21) AM_WRITENOP /* undocumented, write 0x1a after each reset */
- AM_RANGE(0x30, 0x30) AM_WRITE_LEGACY(ampoker2_port30_w) /* see write handlers */
- AM_RANGE(0x31, 0x31) AM_WRITE_LEGACY(ampoker2_port31_w) /* see write handlers */
- AM_RANGE(0x32, 0x32) AM_WRITE_LEGACY(ampoker2_port32_w) /* see write handlers */
- AM_RANGE(0x33, 0x33) AM_WRITE_LEGACY(ampoker2_port33_w) /* see write handlers */
- AM_RANGE(0x34, 0x34) AM_WRITE_LEGACY(ampoker2_port34_w) /* see write handlers */
- AM_RANGE(0x35, 0x35) AM_WRITE_LEGACY(ampoker2_port35_w) /* see write handlers */
- AM_RANGE(0x36, 0x36) AM_WRITE_LEGACY(ampoker2_port36_w) /* see write handlers */
- AM_RANGE(0x37, 0x37) AM_WRITE_LEGACY(ampoker2_watchdog_reset_w)
+ AM_RANGE(0x30, 0x30) AM_WRITE(ampoker2_port30_w) /* see write handlers */
+ AM_RANGE(0x31, 0x31) AM_WRITE(ampoker2_port31_w) /* see write handlers */
+ AM_RANGE(0x32, 0x32) AM_WRITE(ampoker2_port32_w) /* see write handlers */
+ AM_RANGE(0x33, 0x33) AM_WRITE(ampoker2_port33_w) /* see write handlers */
+ AM_RANGE(0x34, 0x34) AM_WRITE(ampoker2_port34_w) /* see write handlers */
+ AM_RANGE(0x35, 0x35) AM_WRITE(ampoker2_port35_w) /* see write handlers */
+ AM_RANGE(0x36, 0x36) AM_WRITE(ampoker2_port36_w) /* see write handlers */
+ AM_RANGE(0x37, 0x37) AM_WRITE(ampoker2_watchdog_reset_w)
AM_RANGE(0x38, 0x39) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0x3A, 0x3A) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index 49ecc6fd0f2..48842a96c71 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -52,14 +52,14 @@ static UINT8 amspdwy_wheel_r( running_machine &machine, int index )
return state->m_wheel_return[index] | input_port_read(machine, portnames[index]);
}
-static READ8_HANDLER( amspdwy_wheel_0_r )
+READ8_MEMBER(amspdwy_state::amspdwy_wheel_0_r)
{
- return amspdwy_wheel_r(space->machine(), 0);
+ return amspdwy_wheel_r(machine(), 0);
}
-static READ8_HANDLER( amspdwy_wheel_1_r )
+READ8_MEMBER(amspdwy_state::amspdwy_wheel_1_r)
{
- return amspdwy_wheel_r(space->machine(), 1);
+ return amspdwy_wheel_r(machine(), 1);
}
static READ8_DEVICE_HANDLER( amspdwy_sound_r )
@@ -67,11 +67,10 @@ static READ8_DEVICE_HANDLER( amspdwy_sound_r )
return (ym2151_status_port_r(device, 0) & ~ 0x30) | input_port_read(device->machine(), "IN0");
}
-static WRITE8_HANDLER( amspdwy_sound_w )
+WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w)
{
- amspdwy_state *state = space->machine().driver_data<amspdwy_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8, amspdwy_state )
@@ -83,23 +82,23 @@ static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8, amspdwy_state )
// AM_RANGE(0xa000, 0xa000) AM_WRITENOP // ?
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("DSW1")
AM_RANGE(0xa400, 0xa400) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(amspdwy_flipscreen_w) // DSW 2 + Toggle Flip Screen?
- AM_RANGE(0xa800, 0xa800) AM_READ_LEGACY(amspdwy_wheel_0_r) // Player 1
- AM_RANGE(0xac00, 0xac00) AM_READ_LEGACY(amspdwy_wheel_1_r) // Player 2
+ 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_LEGACY(amspdwy_sound_w) // YM2151 status, To Sound CPU
+ AM_RANGE(0xb400, 0xb400) AM_DEVREAD_LEGACY("ymsnd", amspdwy_sound_r) AM_WRITE(amspdwy_sound_w) // YM2151 status, To Sound CPU
AM_RANGE(0xc000, 0xc0ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)// Sprites
AM_RANGE(0xe000, 0xe7ff) AM_RAM // Work RAM
ADDRESS_MAP_END
-static READ8_HANDLER( amspdwy_port_r )
+READ8_MEMBER(amspdwy_state::amspdwy_port_r)
{
- UINT8 *tracks = space->machine().region("maincpu")->base() + 0x10000;
+ UINT8 *tracks = machine().region("maincpu")->base() + 0x10000;
return tracks[offset];
}
static ADDRESS_MAP_START( amspdwy_portmap, AS_IO, 8, amspdwy_state )
- AM_RANGE(0x0000, 0x7fff) AM_READ_LEGACY(amspdwy_port_r)
+ AM_RANGE(0x0000, 0x7fff) AM_READ(amspdwy_port_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 760f4bcb8c3..9f6069f89c0 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -129,18 +129,18 @@ Dumped by Chackn
#include "sound/2203intf.h"
#include "includes/angelkds.h"
-static READ8_HANDLER( angelkds_main_sound_r );
-static WRITE8_HANDLER( angelkds_main_sound_w );
-static READ8_HANDLER( angelkds_sub_sound_r );
-static WRITE8_HANDLER( angelkds_sub_sound_w );
+
+
+
+
/*** CPU Banking
*/
-static WRITE8_HANDLER( angelkds_cpu_bank_write )
+WRITE8_MEMBER(angelkds_state::angelkds_cpu_bank_write)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f); // shall we check (data & 0x0f) < # of available banks (8 or 10 resp.)?
+ memory_set_bank(machine(), "bank1", data & 0x0f); // shall we check (data & 0x0f) < # of available banks (8 or 10 resp.)?
}
@@ -154,24 +154,24 @@ these make the game a bit easier for testing purposes
#if FAKEINPUTS
-static READ8_HANDLER( angelkds_input_r )
+READ8_MEMBER(angelkds_state::angelkds_input_r)
{
int fake;
static const char *const portnames[] = { "I81", "I82" };
static const char *const fakenames[] = { "FAKE1", "FAKE2" };
- fake = input_port_read(space->machine(), fakenames[offset]);
+ fake = input_port_read(machine(), fakenames[offset]);
- return ((fake & 0x01) ? fake : input_port_read(space->machine(), portnames[offset]));
+ return ((fake & 0x01) ? fake : input_port_read(machine(), portnames[offset]));
}
#else
-static READ8_HANDLER( angelkds_input_r )
+READ8_MEMBER(angelkds_state::angelkds_input_r)
{
static const char *const portnames[] = { "I81", "I82" };
- return input_port_read(space->machine(), portnames[offset]);
+ return input_port_read(machine(), portnames[offset]);
}
#endif
@@ -213,15 +213,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, angelkds_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP // 00 on start-up, not again
- AM_RANGE(0x42, 0x42) AM_WRITE_LEGACY(angelkds_cpu_bank_write)
+ AM_RANGE(0x42, 0x42) AM_WRITE(angelkds_cpu_bank_write)
AM_RANGE(0x43, 0x43) AM_WRITENOP // 9a on start-up, not again
AM_RANGE(0x40, 0x40) AM_READ_PORT("I40") /* "Coinage" Dip Switches */
AM_RANGE(0x41, 0x41) AM_READ_PORT("I41") /* Other Dip Switches */
AM_RANGE(0x42, 0x42) AM_READ_PORT("I42") /* Players inputs (not needed ?) */
AM_RANGE(0x80, 0x80) AM_READ_PORT("I80") /* System inputs */
- AM_RANGE(0x81, 0x82) AM_READ_LEGACY(angelkds_input_r) /* Players inputs */
+ AM_RANGE(0x81, 0x82) AM_READ(angelkds_input_r) /* Players inputs */
AM_RANGE(0x83, 0x83) AM_WRITENOP // 9b on start-up, not again
- AM_RANGE(0xc0, 0xc3) AM_READWRITE_LEGACY(angelkds_main_sound_r, angelkds_main_sound_w) // 02 various points
+ AM_RANGE(0xc0, 0xc3) AM_READWRITE(angelkds_main_sound_r, angelkds_main_sound_w) // 02 various points
ADDRESS_MAP_END
/* sub cpu */
@@ -238,7 +238,7 @@ static ADDRESS_MAP_START( sub_portmap, AS_IO, 8, angelkds_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x40, 0x41) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r, ym2203_w)
- AM_RANGE(0x80, 0x83) AM_READWRITE_LEGACY(angelkds_sub_sound_r, angelkds_sub_sound_w) // spcpostn
+ AM_RANGE(0x80, 0x83) AM_READWRITE(angelkds_sub_sound_r, angelkds_sub_sound_w) // spcpostn
ADDRESS_MAP_END
@@ -486,28 +486,24 @@ sound related ?
*/
-static WRITE8_HANDLER( angelkds_main_sound_w )
+WRITE8_MEMBER(angelkds_state::angelkds_main_sound_w)
{
- angelkds_state *state = space->machine().driver_data<angelkds_state>();
- state->m_sound[offset] = data;
+ m_sound[offset] = data;
}
-static READ8_HANDLER( angelkds_main_sound_r )
+READ8_MEMBER(angelkds_state::angelkds_main_sound_r)
{
- angelkds_state *state = space->machine().driver_data<angelkds_state>();
- return state->m_sound2[offset];
+ return m_sound2[offset];
}
-static WRITE8_HANDLER( angelkds_sub_sound_w )
+WRITE8_MEMBER(angelkds_state::angelkds_sub_sound_w)
{
- angelkds_state *state = space->machine().driver_data<angelkds_state>();
- state->m_sound2[offset] = data;
+ m_sound2[offset] = data;
}
-static READ8_HANDLER( angelkds_sub_sound_r )
+READ8_MEMBER(angelkds_state::angelkds_sub_sound_r)
{
- angelkds_state *state = space->machine().driver_data<angelkds_state>();
- return state->m_sound[offset];
+ return m_sound[offset];
}
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index 4810bf4fc0f..20178f6692d 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -197,13 +197,12 @@ static void appoooh_adpcm_int(device_t *device)
}
/* adpcm address write */
-static WRITE8_HANDLER( appoooh_adpcm_w )
+WRITE8_MEMBER(appoooh_state::appoooh_adpcm_w)
{
- appoooh_state *state = space->machine().driver_data<appoooh_state>();
- state->m_adpcm_address = data << 8;
- msm5205_reset_w(state->m_adpcm, 0);
- state->m_adpcm_data = 0xffffffff;
+ m_adpcm_address = data << 8;
+ msm5205_reset_w(m_adpcm, 0);
+ m_adpcm_data = 0xffffffff;
}
@@ -234,7 +233,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, appoooh_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_DEVWRITE_LEGACY("sn2", sn76496_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(appoooh_adpcm_w)
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE(appoooh_adpcm_w)
AM_RANGE(0x04, 0x04) AM_READ_PORT("BUTTON3") AM_WRITE_LEGACY(appoooh_out_w)
AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(appoooh_scroll_w) /* unknown */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c
index 94123678fa8..321f843f225 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -42,36 +42,33 @@ Notes:
#include "includes/aquarium.h"
-static READ16_HANDLER( aquarium_coins_r )
+READ16_MEMBER(aquarium_state::aquarium_coins_r)
{
- aquarium_state *state = space->machine().driver_data<aquarium_state>();
int data;
- data = (input_port_read(space->machine(), "SYSTEM") & 0x7fff);
- data |= state->m_aquarium_snd_ack;
- state->m_aquarium_snd_ack = 0;
+ data = (input_port_read(machine(), "SYSTEM") & 0x7fff);
+ data |= m_aquarium_snd_ack;
+ m_aquarium_snd_ack = 0;
return data;
}
-static WRITE8_HANDLER( aquarium_snd_ack_w )
+WRITE8_MEMBER(aquarium_state::aquarium_snd_ack_w)
{
- aquarium_state *state = space->machine().driver_data<aquarium_state>();
- state->m_aquarium_snd_ack = 0x8000;
+ m_aquarium_snd_ack = 0x8000;
}
-static WRITE16_HANDLER( aquarium_sound_w )
+WRITE16_MEMBER(aquarium_state::aquarium_sound_w)
{
// popmessage("sound write %04x",data);
- aquarium_state *state = space->machine().driver_data<aquarium_state>();
soundlatch_w(space, 1, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
}
-static WRITE8_HANDLER( aquarium_z80_bank_w )
+WRITE8_MEMBER(aquarium_state::aquarium_z80_bank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
}
static UINT8 aquarium_snd_bitswap( UINT8 scrambled_data )
@@ -90,17 +87,17 @@ static UINT8 aquarium_snd_bitswap( UINT8 scrambled_data )
return data;
}
-static READ8_HANDLER( aquarium_oki_r )
+READ8_MEMBER(aquarium_state::aquarium_oki_r)
{
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
- return aquarium_snd_bitswap(oki->read(*space, offset));
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
+ return aquarium_snd_bitswap(oki->read(*&space, offset));
}
-static WRITE8_HANDLER( aquarium_oki_w )
+WRITE8_MEMBER(aquarium_state::aquarium_oki_w)
{
- logerror("%s:Writing %04x to the OKI M6295\n", space->machine().describe_context(), aquarium_snd_bitswap(data));
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
- oki->write(*space, offset, (aquarium_snd_bitswap(data)));
+ logerror("%s:Writing %04x to the OKI M6295\n", machine().describe_context(), aquarium_snd_bitswap(data));
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
+ oki->write(*&space, offset, (aquarium_snd_bitswap(data)));
}
@@ -118,9 +115,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, aquarium_state )
AM_RANGE(0xd80080, 0xd80081) AM_READ_PORT("DSW")
AM_RANGE(0xd80082, 0xd80083) AM_READNOP /* stored but not read back ? check code at 0x01f440 */
AM_RANGE(0xd80084, 0xd80085) AM_READ_PORT("INPUTS")
- AM_RANGE(0xd80086, 0xd80087) AM_READ_LEGACY(aquarium_coins_r)
+ AM_RANGE(0xd80086, 0xd80087) AM_READ(aquarium_coins_r)
AM_RANGE(0xd80088, 0xd80089) AM_WRITENOP /* ?? video related */
- AM_RANGE(0xd8008a, 0xd8008b) AM_WRITE_LEGACY(aquarium_sound_w)
+ AM_RANGE(0xd8008a, 0xd8008b) AM_WRITE(aquarium_sound_w)
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -133,10 +130,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( snd_portmap, AS_IO, 8, aquarium_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(aquarium_oki_r, aquarium_oki_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(aquarium_oki_r, aquarium_oki_w)
AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(aquarium_snd_ack_w)
- AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(aquarium_z80_bank_w)
+ AM_RANGE(0x06, 0x06) AM_WRITE(aquarium_snd_ack_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(aquarium_z80_bank_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( aquarium )
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index b4044ff7b9e..41b94c5cac3 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -98,11 +98,10 @@ static WRITE8_DEVICE_HANDLER( ay8910_portb_w )
*
*************************************/
-static READ8_HANDLER( mcu_port_r_r )
+READ8_MEMBER(arabian_state::mcu_port_r_r)
{
- arabian_state *state = space->machine().driver_data<arabian_state>();
- UINT8 val = state->m_mcu_port_r[offset];
+ UINT8 val = m_mcu_port_r[offset];
/* RAM mode is enabled */
if (offset == 0)
@@ -111,44 +110,42 @@ static READ8_HANDLER( mcu_port_r_r )
return val;
}
-static WRITE8_HANDLER( mcu_port_r_w )
+WRITE8_MEMBER(arabian_state::mcu_port_r_w)
{
- arabian_state *state = space->machine().driver_data<arabian_state>();
if (offset == 0)
{
- UINT32 ram_addr = ((state->m_mcu_port_p & 7) << 8) | state->m_mcu_port_o;
+ UINT32 ram_addr = ((m_mcu_port_p & 7) << 8) | m_mcu_port_o;
if (~data & 2)
- state->m_custom_cpu_ram[ram_addr] = 0xf0 | state->m_mcu_port_r[3];
+ m_custom_cpu_ram[ram_addr] = 0xf0 | m_mcu_port_r[3];
- state->m_flip_screen = data & 8;
+ m_flip_screen = data & 8;
}
- state->m_mcu_port_r[offset] = data & 0x0f;
+ m_mcu_port_r[offset] = data & 0x0f;
}
-static READ8_HANDLER( mcu_portk_r )
+READ8_MEMBER(arabian_state::mcu_portk_r)
{
- arabian_state *state = space->machine().driver_data<arabian_state>();
UINT8 val = 0xf;
- if (~state->m_mcu_port_r[0] & 1)
+ if (~m_mcu_port_r[0] & 1)
{
- UINT32 ram_addr = ((state->m_mcu_port_p & 7) << 8) | state->m_mcu_port_o;
- val = state->m_custom_cpu_ram[ram_addr];
+ UINT32 ram_addr = ((m_mcu_port_p & 7) << 8) | m_mcu_port_o;
+ val = m_custom_cpu_ram[ram_addr];
}
else
{
static const char *const comnames[] = { "COM0", "COM1", "COM2", "COM3", "COM4", "COM5" };
- UINT8 sel = ((state->m_mcu_port_r[2] << 4) | state->m_mcu_port_r[1]) & 0x3f;
+ UINT8 sel = ((m_mcu_port_r[2] << 4) | m_mcu_port_r[1]) & 0x3f;
int i;
for (i = 0; i < 6; ++i)
{
if (~sel & (1 << i))
{
- val = input_port_read(space->machine(), comnames[i]);
+ val = input_port_read(machine(), comnames[i]);
break;
}
}
@@ -157,21 +154,19 @@ static READ8_HANDLER( mcu_portk_r )
return val & 0x0f;
}
-static WRITE8_HANDLER( mcu_port_o_w )
+WRITE8_MEMBER(arabian_state::mcu_port_o_w)
{
- arabian_state *state = space->machine().driver_data<arabian_state>();
UINT8 out = data & 0x0f;
if (data & 0x10)
- state->m_mcu_port_o = (state->m_mcu_port_o & 0x0f) | (out << 4);
+ m_mcu_port_o = (m_mcu_port_o & 0x0f) | (out << 4);
else
- state->m_mcu_port_o = (state->m_mcu_port_o & 0xf0) | out;
+ m_mcu_port_o = (m_mcu_port_o & 0xf0) | out;
}
-static WRITE8_HANDLER( mcu_port_p_w )
+WRITE8_MEMBER(arabian_state::mcu_port_p_w)
{
- arabian_state *state = space->machine().driver_data<arabian_state>();
- state->m_mcu_port_p = data & 0x0f;
+ m_mcu_port_p = data & 0x0f;
}
@@ -213,10 +208,10 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, arabian_state )
- AM_RANGE(MB88_PORTK, MB88_PORTK ) AM_READ_LEGACY(mcu_portk_r)
- AM_RANGE(MB88_PORTO, MB88_PORTO ) AM_WRITE_LEGACY(mcu_port_o_w)
- AM_RANGE(MB88_PORTP, MB88_PORTP ) AM_WRITE_LEGACY(mcu_port_p_w)
- AM_RANGE(MB88_PORTR0, MB88_PORTR3) AM_READWRITE_LEGACY(mcu_port_r_r, mcu_port_r_w)
+ AM_RANGE(MB88_PORTK, MB88_PORTK ) AM_READ(mcu_portk_r)
+ AM_RANGE(MB88_PORTO, MB88_PORTO ) AM_WRITE(mcu_port_o_w)
+ AM_RANGE(MB88_PORTP, MB88_PORTP ) AM_WRITE(mcu_port_p_w)
+ AM_RANGE(MB88_PORTR0, MB88_PORTR3) AM_READWRITE(mcu_port_r_r, mcu_port_r_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index 85174e5d671..4f74a463404 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -174,13 +174,13 @@ static const ym2203_interface ym2203_config =
***************************************************************************/
-static WRITE8_HANDLER( argus_bankselect_w )
+WRITE8_MEMBER(argus_state::argus_bankselect_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
int bankaddress;
bankaddress = 0x10000 + ((data & 7) * 0x4000);
- memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress]); /* Select 8 banks of 16k */
+ memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); /* Select 8 banks of 16k */
}
@@ -200,7 +200,7 @@ static ADDRESS_MAP_START( argus_map, AS_PROGRAM, 8, argus_state )
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc201, 0xc201) AM_WRITE_LEGACY(argus_flipscreen_w)
- AM_RANGE(0xc202, 0xc202) AM_WRITE_LEGACY(argus_bankselect_w)
+ AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w)
AM_RANGE(0xc300, 0xc301) AM_RAM AM_BASE(m_bg0_scrollx)
AM_RANGE(0xc302, 0xc303) AM_RAM AM_BASE(m_bg0_scrolly)
AM_RANGE(0xc308, 0xc309) AM_RAM AM_BASE(m_bg1_scrollx)
@@ -224,7 +224,7 @@ static ADDRESS_MAP_START( valtric_map, AS_PROGRAM, 8, argus_state )
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc201, 0xc201) AM_WRITE_LEGACY(argus_flipscreen_w)
- AM_RANGE(0xc202, 0xc202) AM_WRITE_LEGACY(argus_bankselect_w)
+ AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w)
AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(valtric_unknown_w)
AM_RANGE(0xc308, 0xc309) AM_RAM AM_BASE(m_bg1_scrollx)
AM_RANGE(0xc30a, 0xc30b) AM_RAM AM_BASE(m_bg1_scrolly)
@@ -249,7 +249,7 @@ static ADDRESS_MAP_START( butasan_map, AS_PROGRAM, 8, argus_state )
AM_RANGE(0xc100, 0xc100) AM_WRITE_LEGACY(butasan_unknown_w)
AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc201, 0xc201) AM_WRITE_LEGACY(argus_flipscreen_w)
- AM_RANGE(0xc202, 0xc202) AM_WRITE_LEGACY(argus_bankselect_w)
+ AM_RANGE(0xc202, 0xc202) AM_WRITE(argus_bankselect_w)
AM_RANGE(0xc203, 0xc203) AM_WRITE_LEGACY(butasan_pageselect_w)
AM_RANGE(0xc300, 0xc301) AM_RAM AM_BASE(m_bg0_scrollx)
AM_RANGE(0xc302, 0xc303) AM_RAM AM_BASE(m_bg0_scrolly)
diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c
index 65669c1f9d9..6ef2d017c15 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -313,74 +313,71 @@ Notes:
---- ---- ---- ---x coin counter 0
*/
-static WRITE16_HANDLER( terraf_io_w )
+WRITE16_MEMBER(armedf_state::terraf_io_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- if(data & 0x4000 && ((state->m_vreg & 0x4000) == 0)) //0 -> 1 transition
- nb_1414m4_exec(space,(state->m_text_videoram[0] << 8) | (state->m_text_videoram[1] & 0xff),state->m_text_videoram,state->m_fg_scrollx,state->m_fg_scrolly,state->m_tx_tilemap);
+ if(data & 0x4000 && ((m_vreg & 0x4000) == 0)) //0 -> 1 transition
+ nb_1414m4_exec(&space,(m_text_videoram[0] << 8) | (m_text_videoram[1] & 0xff),m_text_videoram,m_fg_scrollx,m_fg_scrolly,m_tx_tilemap);
- COMBINE_DATA(&state->m_vreg);
+ COMBINE_DATA(&m_vreg);
- coin_counter_w(space->machine(), 0, (data & 1) >> 0);
- coin_counter_w(space->machine(), 1, (data & 2) >> 1);
+ coin_counter_w(machine(), 0, (data & 1) >> 0);
+ coin_counter_w(machine(), 1, (data & 2) >> 1);
- flip_screen_set(space->machine(), state->m_vreg & 0x1000);
+ flip_screen_set(machine(), m_vreg & 0x1000);
}
-static WRITE16_HANDLER( terrafb_io_w )
+WRITE16_MEMBER(armedf_state::terrafb_io_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- if(data & 0x4000 && ((state->m_vreg & 0x4000) == 0)) //0 -> 1 transition
- cputag_set_input_line(space->machine(), "extra", 0, HOLD_LINE);
+ if(data & 0x4000 && ((m_vreg & 0x4000) == 0)) //0 -> 1 transition
+ cputag_set_input_line(machine(), "extra", 0, HOLD_LINE);
- COMBINE_DATA(&state->m_vreg);
+ COMBINE_DATA(&m_vreg);
- coin_counter_w(space->machine(), 0, (data & 1) >> 0);
- coin_counter_w(space->machine(), 1, (data & 2) >> 1);
+ coin_counter_w(machine(), 0, (data & 1) >> 0);
+ coin_counter_w(machine(), 1, (data & 2) >> 1);
- flip_screen_set(space->machine(), state->m_vreg & 0x1000);
+ flip_screen_set(machine(), m_vreg & 0x1000);
}
-static WRITE16_HANDLER( bootleg_io_w )
+WRITE16_MEMBER(armedf_state::bootleg_io_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- if(data & 0x4000 && ((state->m_vreg & 0x4000) == 0)) //0 -> 1 transition
+ if(data & 0x4000 && ((m_vreg & 0x4000) == 0)) //0 -> 1 transition
{
// NOP
}
- COMBINE_DATA(&state->m_vreg);
+ COMBINE_DATA(&m_vreg);
- coin_counter_w(space->machine(), 0, (data & 1) >> 0);
- coin_counter_w(space->machine(), 1, (data & 2) >> 1);
+ coin_counter_w(machine(), 0, (data & 1) >> 0);
+ coin_counter_w(machine(), 1, (data & 2) >> 1);
- flip_screen_set(space->machine(), state->m_vreg & 0x1000);
+ flip_screen_set(machine(), m_vreg & 0x1000);
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(armedf_state::sound_command_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, ((data & 0x7f) << 1) | 1);
}
-static READ8_HANDLER( soundlatch_clear_r )
+READ8_MEMBER(armedf_state::soundlatch_clear_r)
{
soundlatch_clear_w(space, 0, 0);
return 0;
}
-static WRITE16_HANDLER( irq_lv1_ack_w )
+WRITE16_MEMBER(armedf_state::irq_lv1_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 1, CLEAR_LINE);
}
-static WRITE16_HANDLER( irq_lv2_ack_w )
+WRITE16_MEMBER(armedf_state::irq_lv2_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
}
@@ -405,12 +402,12 @@ static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x078002, 0x078003) AM_READ_PORT("P2")
AM_RANGE(0x078004, 0x078005) AM_READ_PORT("DSW1")
AM_RANGE(0x078006, 0x078007) AM_READ_PORT("DSW2")
-// AM_RANGE(0x07c000, 0x07c001) AM_WRITE_LEGACY(terraf_io_w) handled in DRIVER_INIT
+// AM_RANGE(0x07c000, 0x07c001) AM_WRITE(terraf_io_w) handled in DRIVER_INIT
AM_RANGE(0x07c002, 0x07c003) AM_WRITE_LEGACY(armedf_bg_scrollx_w)
AM_RANGE(0x07c004, 0x07c005) AM_WRITE_LEGACY(armedf_bg_scrolly_w)
- AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
- AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE_LEGACY(irq_lv1_ack_w)
+ AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv1_ack_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kozure_map, AS_PROGRAM, 16, armedf_state )
@@ -439,9 +436,9 @@ static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16, armedf_state )
// AM_RANGE(0x07c000, 0x07c001) AM_WRITE_LEGACY(io_w)
AM_RANGE(0x07c002, 0x07c003) AM_WRITE_LEGACY(armedf_bg_scrollx_w)
AM_RANGE(0x07c004, 0x07c005) AM_WRITE_LEGACY(armedf_bg_scrolly_w)
- AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
- AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE_LEGACY(irq_lv2_ack_w)
+ AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv2_ack_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16, armedf_state )
@@ -461,24 +458,23 @@ static ADDRESS_MAP_START( legion_map, AS_PROGRAM, 16, armedf_state )
// AM_RANGE(0x07c000, 0x07c001) AM_WRITE_LEGACY(legion_io_w)
AM_RANGE(0x07c002, 0x07c003) AM_WRITE_LEGACY(armedf_bg_scrollx_w)
AM_RANGE(0x07c004, 0x07c005) AM_WRITE_LEGACY(armedf_bg_scrolly_w)
- AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
- AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE_LEGACY(irq_lv2_ack_w)
+ AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv2_ack_w)
ADDRESS_MAP_END
-static WRITE8_HANDLER( legiono_fg_scroll_w )
+WRITE8_MEMBER(armedf_state::legiono_fg_scroll_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
if(offset >= 0xb && offset < 0xf)
- state->m_legion_cmd[offset-0xb] = data & 0xff;
+ m_legion_cmd[offset-0xb] = data & 0xff;
- state->m_fg_scrollx = (state->m_legion_cmd[0x02] & 0xff) | ((state->m_legion_cmd[0x03] & 0x3) << 8);
- state->m_fg_scrolly = (state->m_legion_cmd[0x00] & 0xff) | ((state->m_legion_cmd[0x01] & 0x3) << 8);
+ m_fg_scrollx = (m_legion_cmd[0x02] & 0xff) | ((m_legion_cmd[0x03] & 0x3) << 8);
+ m_fg_scrolly = (m_legion_cmd[0x00] & 0xff) | ((m_legion_cmd[0x01] & 0x3) << 8);
}
static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16, armedf_state )
- AM_RANGE(0x040000, 0x04003f) AM_WRITE8_LEGACY(legiono_fg_scroll_w,0x00ff)
+ AM_RANGE(0x040000, 0x04003f) AM_WRITE8(legiono_fg_scroll_w,0x00ff)
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
@@ -492,12 +488,12 @@ static ADDRESS_MAP_START( legiono_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x078002, 0x078003) AM_READ_PORT("P2")
AM_RANGE(0x078004, 0x078005) AM_READ_PORT("DSW1")
AM_RANGE(0x078006, 0x078007) AM_READ_PORT("DSW2")
-// AM_RANGE(0x07c000, 0x07c001) AM_WRITE_LEGACY(bootleg_io_w)
+// AM_RANGE(0x07c000, 0x07c001) AM_WRITE(bootleg_io_w)
AM_RANGE(0x07c002, 0x07c003) AM_WRITE_LEGACY(armedf_bg_scrollx_w)
AM_RANGE(0x07c004, 0x07c005) AM_WRITE_LEGACY(armedf_bg_scrolly_w)
- AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x07c00a, 0x07c00b) AM_WRITE(sound_command_w)
AM_RANGE(0x07c00c, 0x07c00d) AM_WRITENOP /* Watchdog ? cycle 0000 -> 0100 -> 0200 back to 0000 */
- AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE_LEGACY(irq_lv2_ack_w)
+ AM_RANGE(0x07c00e, 0x07c00f) AM_WRITE(irq_lv2_ack_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16, armedf_state )
@@ -514,90 +510,87 @@ static ADDRESS_MAP_START( armedf_map, AS_PROGRAM, 16, armedf_state )
AM_RANGE(0x06c004, 0x06c005) AM_READ_PORT("DSW1")
AM_RANGE(0x06c006, 0x06c007) AM_READ_PORT("DSW2")
AM_RANGE(0x06c000, 0x06c7ff) AM_RAM
- AM_RANGE(0x06d000, 0x06d001) AM_WRITE_LEGACY(terraf_io_w)
+ AM_RANGE(0x06d000, 0x06d001) AM_WRITE(terraf_io_w)
AM_RANGE(0x06d002, 0x06d003) AM_WRITE_LEGACY(armedf_bg_scrollx_w)
AM_RANGE(0x06d004, 0x06d005) AM_WRITE_LEGACY(armedf_bg_scrolly_w)
AM_RANGE(0x06d006, 0x06d007) AM_WRITE_LEGACY(armedf_fg_scrollx_w)
AM_RANGE(0x06d008, 0x06d009) AM_WRITE_LEGACY(armedf_fg_scrolly_w)
- AM_RANGE(0x06d00a, 0x06d00b) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x06d00a, 0x06d00b) AM_WRITE(sound_command_w)
AM_RANGE(0x06d00c, 0x06d00d) AM_WRITENOP //watchdog
- AM_RANGE(0x06d00e, 0x06d00f) AM_WRITE_LEGACY(irq_lv1_ack_w)
+ AM_RANGE(0x06d00e, 0x06d00f) AM_WRITE(irq_lv1_ack_w)
ADDRESS_MAP_END
-static READ16_HANDLER( latch_r )
+READ16_MEMBER(bigfghtr_state::latch_r)
{
- bigfghtr_state *state = space->machine().driver_data<bigfghtr_state>();
- state->m_read_latch = 1;
+ m_read_latch = 1;
return 0;
}
-static WRITE16_HANDLER( sharedram_w )
+WRITE16_MEMBER(bigfghtr_state::sharedram_w)
{
- bigfghtr_state *state = space->machine().driver_data<bigfghtr_state>();
- COMBINE_DATA(&state->m_sharedram[offset]);
+ COMBINE_DATA(&m_sharedram[offset]);
switch(offset)
{
case 0x40/2:
- state->m_mcu_input_snippet = (data == 0x100);
- state->m_mcu_jsr_snippet = (data == 0x300);
+ m_mcu_input_snippet = (data == 0x100);
+ m_mcu_jsr_snippet = (data == 0x300);
break;
}
}
-static READ16_HANDLER(sharedram_r)
+READ16_MEMBER(bigfghtr_state::sharedram_r)
{
- bigfghtr_state *state = space->machine().driver_data<bigfghtr_state>();
- if(state->m_mcu_input_snippet)
+ if(m_mcu_input_snippet)
{
switch(offset+0x600/2)
{
case 0x640/2:
- if(state->m_read_latch)
+ if(m_read_latch)
{
- state->m_read_latch = 0;
- return space->machine().rand(); // TODO
+ m_read_latch = 0;
+ return machine().rand(); // TODO
}
break;
case 0x642/2:
- return (input_port_read(space->machine(), "DSW0") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "DSW0") & 0xffff) ^ 0xffff;
case 0x644/2:
- return (input_port_read(space->machine(), "DSW1") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "DSW1") & 0xffff) ^ 0xffff;
case 0x646/2:
- return (input_port_read(space->machine(), "P1") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "P1") & 0xffff) ^ 0xffff;
case 0x648/2:
- return (input_port_read(space->machine(), "P2") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "P2") & 0xffff) ^ 0xffff;
}
}
- if(state->m_mcu_jsr_snippet)
+ if(m_mcu_jsr_snippet)
{
switch(offset+0x600/2)
{
case 0x640/2:
- if(state->m_read_latch)
+ if(m_read_latch)
{
- state->m_read_latch = 0;
- return space->machine().rand(); // TODO
+ m_read_latch = 0;
+ return machine().rand(); // TODO
}
break;
case 0x642/2:
- return (input_port_read(space->machine(), "DSW0") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "DSW0") & 0xffff) ^ 0xffff;
case 0x644/2:
- return (input_port_read(space->machine(), "DSW1") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "DSW1") & 0xffff) ^ 0xffff;
case 0x646/2:
- return (input_port_read(space->machine(), "P1") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "P1") & 0xffff) ^ 0xffff;
case 0x648/2:
- return (input_port_read(space->machine(), "P2") & 0xffff) ^ 0xffff;
+ return (input_port_read(machine(), "P2") & 0xffff) ^ 0xffff;
/*
protection controls where the program code should jump to.
@@ -674,13 +667,13 @@ static READ16_HANDLER(sharedram_r)
}
}
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x0805ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x080600, 0x083fff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x080600, 0x083fff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x084000, 0x085fff) AM_RAM //work ram
AM_RANGE(0x086000, 0x086fff) AM_RAM_WRITE_LEGACY(armedf_bg_videoram_w) AM_BASE(m_bg_videoram)
AM_RANGE(0x087000, 0x087fff) AM_RAM_WRITE_LEGACY(armedf_fg_videoram_w) AM_BASE(m_fg_videoram)
@@ -691,16 +684,16 @@ static ADDRESS_MAP_START( bigfghtr_map, AS_PROGRAM, 16, bigfghtr_state )
AM_RANGE(0x08c002, 0x08c003) AM_READ_PORT("P2")
AM_RANGE(0x08c004, 0x08c005) AM_READ_PORT("DSW0")
AM_RANGE(0x08c006, 0x08c007) AM_READ_PORT("DSW1")
- AM_RANGE(0x08d000, 0x08d001) AM_WRITE_LEGACY(terraf_io_w) //807b0
+ AM_RANGE(0x08d000, 0x08d001) AM_WRITE(terraf_io_w) //807b0
AM_RANGE(0x08d002, 0x08d003) AM_WRITE_LEGACY(armedf_bg_scrollx_w)
AM_RANGE(0x08d004, 0x08d005) AM_WRITE_LEGACY(armedf_bg_scrolly_w)
AM_RANGE(0x08d006, 0x08d007) AM_WRITE_LEGACY(armedf_fg_scrollx_w)
AM_RANGE(0x08d008, 0x08d009) AM_WRITE_LEGACY(armedf_fg_scrolly_w)
- AM_RANGE(0x08d00a, 0x08d00b) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x08d00a, 0x08d00b) AM_WRITE(sound_command_w)
AM_RANGE(0x08d00c, 0x08d00d) AM_WRITENOP //watchdog
- AM_RANGE(0x08d00e, 0x08d00f) AM_WRITE_LEGACY(irq_lv1_ack_w)
+ AM_RANGE(0x08d00e, 0x08d00f) AM_WRITE(irq_lv1_ack_w)
- AM_RANGE(0x400000, 0x400001) AM_READ_LEGACY(latch_r)
+ AM_RANGE(0x400000, 0x400001) AM_READ(latch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, armedf_state )
@@ -713,55 +706,50 @@ static ADDRESS_MAP_START( cclimbr2_soundmap, AS_PROGRAM, 8, armedf_state )
AM_RANGE(0xc000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static READ8_HANDLER( blitter_txram_r )
+READ8_MEMBER(armedf_state::blitter_txram_r)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- return state->m_text_videoram[offset] & 0xff;
+ return m_text_videoram[offset] & 0xff;
}
-static WRITE8_HANDLER( blitter_txram_w )
+WRITE8_MEMBER(armedf_state::blitter_txram_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- state->m_text_videoram[offset] = (data & 0xff) | (state->m_text_videoram[offset] & 0xff00);
- state->m_tx_tilemap->mark_tile_dirty(offset);
+ m_text_videoram[offset] = (data & 0xff) | (m_text_videoram[offset] & 0xff00);
+ m_tx_tilemap->mark_tile_dirty(offset);
}
-static WRITE8_HANDLER( fg_scrollx_w )
+WRITE8_MEMBER(armedf_state::fg_scrollx_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- state->m_fg_scrollx = (data & 0xff) | (state->m_fg_scrollx & 0x300);
+ m_fg_scrollx = (data & 0xff) | (m_fg_scrollx & 0x300);
}
-static WRITE8_HANDLER( fg_scrolly_w )
+WRITE8_MEMBER(armedf_state::fg_scrolly_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- state->m_fg_scrolly = (data & 0xff) | (state->m_fg_scrolly & 0x300);
+ m_fg_scrolly = (data & 0xff) | (m_fg_scrolly & 0x300);
}
-static WRITE8_HANDLER( fg_scroll_msb_w )
+WRITE8_MEMBER(armedf_state::fg_scroll_msb_w)
{
- armedf_state *state = space->machine().driver_data<armedf_state>();
- state->m_fg_scrolly = (((data & 0x03) >> 0) << 8) | (state->m_fg_scrolly & 0xff);
- state->m_fg_scrollx = (((data & 0x0c) >> 2) << 8) | (state->m_fg_scrollx & 0xff);
+ m_fg_scrolly = (((data & 0x03) >> 0) << 8) | (m_fg_scrolly & 0xff);
+ m_fg_scrollx = (((data & 0x0c) >> 2) << 8) | (m_fg_scrollx & 0xff);
}
static ADDRESS_MAP_START( terrafb_extraz80_map, AS_PROGRAM, 8, armedf_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x5fff) AM_READWRITE_LEGACY(blitter_txram_r,blitter_txram_w)
+ AM_RANGE(0x4000, 0x5fff) AM_READWRITE(blitter_txram_r,blitter_txram_w)
AM_RANGE(0x8000, 0x87ff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( terrafb_extraz80_portmap, AS_IO, 8, armedf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00,0x00) AM_WRITE_LEGACY(fg_scrollx_w)
- AM_RANGE(0x01,0x01) AM_WRITE_LEGACY(fg_scrolly_w)
- AM_RANGE(0x02,0x02) AM_WRITE_LEGACY(fg_scroll_msb_w)
+ AM_RANGE(0x00,0x00) AM_WRITE(fg_scrollx_w)
+ AM_RANGE(0x01,0x01) AM_WRITE(fg_scrolly_w)
+ AM_RANGE(0x02,0x02) AM_WRITE(fg_scroll_msb_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, armedf_state )
@@ -769,7 +757,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, armedf_state )
AM_RANGE(0x0, 0x1) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x2, 0x2) AM_DEVWRITE_LEGACY("dac1", dac_signed_w)
AM_RANGE(0x3, 0x3) AM_DEVWRITE_LEGACY("dac2", dac_signed_w)
- AM_RANGE(0x4, 0x4) AM_READ_LEGACY(soundlatch_clear_r)
+ AM_RANGE(0x4, 0x4) AM_READ(soundlatch_clear_r)
AM_RANGE(0x6, 0x6) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -2053,7 +2041,7 @@ static DRIVER_INIT( terraf )
armedf_state *state = machine.driver_data<armedf_state>();
state->m_scroll_type = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(bootleg_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::bootleg_io_w),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c006, 0x07c007, FUNC(terraf_fg_scrolly_w) );
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c008, 0x07c009, FUNC(terraf_fg_scrollx_w) );
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0c0000, 0x0c0001, FUNC(terraf_fg_scroll_msb_arm_w) );
@@ -2064,7 +2052,7 @@ static DRIVER_INIT( terrafu )
armedf_state *state = machine.driver_data<armedf_state>();
state->m_scroll_type = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(terraf_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),state));
}
static DRIVER_INIT( terrafb )
@@ -2072,7 +2060,7 @@ static DRIVER_INIT( terrafb )
armedf_state *state = machine.driver_data<armedf_state>();
state->m_scroll_type = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(terrafb_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terrafb_io_w),state));
}
static DRIVER_INIT( armedf )
@@ -2087,7 +2075,7 @@ static DRIVER_INIT( kozure )
armedf_state *state = machine.driver_data<armedf_state>();
state->m_scroll_type = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(terraf_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),state));
}
@@ -2103,7 +2091,7 @@ static DRIVER_INIT( legion )
RAM[0x000488 / 2] = 0x4e71;
#endif
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(terraf_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),state));
state->m_scroll_type = 2;
}
@@ -2119,7 +2107,7 @@ static DRIVER_INIT( legiono )
/* No need to patch the checksum routine (see notes) ! */
#endif
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(bootleg_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::bootleg_io_w),state));
state->m_scroll_type = 2;
}
@@ -2128,7 +2116,7 @@ static DRIVER_INIT( cclimbr2 )
{
armedf_state *state = machine.driver_data<armedf_state>();
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07c000, 0x07c001, FUNC(terraf_io_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07c000, 0x07c001, write16_delegate(FUNC(armedf_state::terraf_io_w),state));
state->m_scroll_type = 3;
}
diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c
index 6d9a92f71e2..b229ac8a842 100644
--- a/src/mame/drivers/artmagic.c
+++ b/src/mame/drivers/artmagic.c
@@ -94,15 +94,15 @@ static MACHINE_RESET( artmagic )
*
*************************************/
-static READ16_HANDLER( tms_host_r )
+READ16_MEMBER(artmagic_state::tms_host_r)
{
- return tms34010_host_r(space->machine().device("tms"), offset);
+ return tms34010_host_r(machine().device("tms"), offset);
}
-static WRITE16_HANDLER( tms_host_w )
+WRITE16_MEMBER(artmagic_state::tms_host_w)
{
- tms34010_host_w(space->machine().device("tms"), offset, data);
+ tms34010_host_w(machine().device("tms"), offset, data);
}
@@ -113,19 +113,18 @@ static WRITE16_HANDLER( tms_host_w )
*
*************************************/
-static WRITE16_HANDLER( control_w )
+WRITE16_MEMBER(artmagic_state::control_w)
{
- artmagic_state *state = space->machine().driver_data<artmagic_state>();
- COMBINE_DATA(&state->m_control[offset]);
+ COMBINE_DATA(&m_control[offset]);
/* OKI banking here */
if (offset == 0)
{
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
oki->set_bank_base((((data >> 4) & 1) * 0x40000) % oki->region()->bytes());
}
- logerror("%06X:control_w(%d) = %04X\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:control_w(%d) = %04X\n", cpu_get_pc(&space.device()), offset, data);
}
@@ -143,18 +142,17 @@ static TIMER_CALLBACK( irq_off )
update_irq_state(machine);
}
-static READ16_HANDLER( ultennis_hack_r )
+READ16_MEMBER(artmagic_state::ultennis_hack_r)
{
- artmagic_state *state = space->machine().driver_data<artmagic_state>();
/* IRQ5 points to: jsr (a5); rte */
- UINT32 pc = cpu_get_pc(&space->device());
+ UINT32 pc = cpu_get_pc(&space.device());
if (pc == 0x18c2 || pc == 0x18e4)
{
- state->m_hack_irq = 1;
- update_irq_state(space->machine());
- space->machine().scheduler().timer_set(attotime::from_usec(1), FUNC(irq_off));
+ m_hack_irq = 1;
+ update_irq_state(machine());
+ machine().scheduler().timer_set(attotime::from_usec(1), FUNC(irq_off));
}
- return input_port_read(space->machine(), "300000");
+ return input_port_read(machine(), "300000");
}
@@ -392,27 +390,26 @@ static CUSTOM_INPUT( prot_r )
}
-static WRITE16_HANDLER( protection_bit_w )
+WRITE16_MEMBER(artmagic_state::protection_bit_w)
{
- artmagic_state *state = space->machine().driver_data<artmagic_state>();
/* shift in the new bit based on the offset */
- state->m_prot_input[state->m_prot_input_index] <<= 1;
- state->m_prot_input[state->m_prot_input_index] |= offset;
+ m_prot_input[m_prot_input_index] <<= 1;
+ m_prot_input[m_prot_input_index] |= offset;
/* clock out the next bit based on the offset */
- state->m_prot_output_bit = state->m_prot_output[state->m_prot_output_index] & 0x01;
- state->m_prot_output[state->m_prot_output_index] >>= 1;
+ m_prot_output_bit = m_prot_output[m_prot_output_index] & 0x01;
+ m_prot_output[m_prot_output_index] >>= 1;
/* are we done with a whole byte? */
- if (++state->m_prot_bit_index == 8)
+ if (++m_prot_bit_index == 8)
{
/* add the data and process it */
- state->m_prot_input_index++;
- state->m_prot_output_index++;
- state->m_prot_bit_index = 0;
+ m_prot_input_index++;
+ m_prot_output_index++;
+ m_prot_bit_index = 0;
/* update the protection state */
- (*state->m_protection_handler)(space->machine());
+ (*m_protection_handler)(machine());
}
}
@@ -434,10 +431,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x300006, 0x300007) AM_READ_PORT("300006")
AM_RANGE(0x300008, 0x300009) AM_READ_PORT("300008")
AM_RANGE(0x30000a, 0x30000b) AM_READ_PORT("30000a")
- AM_RANGE(0x300000, 0x300003) AM_WRITE_LEGACY(control_w) AM_BASE(m_control)
- AM_RANGE(0x300004, 0x300007) AM_WRITE_LEGACY(protection_bit_w)
+ AM_RANGE(0x300000, 0x300003) AM_WRITE(control_w) AM_BASE(m_control)
+ AM_RANGE(0x300004, 0x300007) AM_WRITE(protection_bit_w)
AM_RANGE(0x360000, 0x360001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380007) AM_READWRITE_LEGACY(tms_host_r, tms_host_w)
+ AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w)
ADDRESS_MAP_END
@@ -453,15 +450,15 @@ static ADDRESS_MAP_START( stonebal_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x30000a, 0x30000b) AM_READ_PORT("30000a")
AM_RANGE(0x30000c, 0x30000d) AM_READ_PORT("30000c")
AM_RANGE(0x30000e, 0x30000f) AM_READ_PORT("30000e")
- AM_RANGE(0x300000, 0x300003) AM_WRITE_LEGACY(control_w) AM_BASE(m_control)
- AM_RANGE(0x300004, 0x300007) AM_WRITE_LEGACY(protection_bit_w)
+ AM_RANGE(0x300000, 0x300003) AM_WRITE(control_w) AM_BASE(m_control)
+ AM_RANGE(0x300004, 0x300007) AM_WRITE(protection_bit_w)
AM_RANGE(0x340000, 0x340001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380007) AM_READWRITE_LEGACY(tms_host_r, tms_host_w)
+ AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w)
ADDRESS_MAP_END
-static READ16_HANDLER(unk_r)
+READ16_MEMBER(artmagic_state::unk_r)
{
- return space->machine().rand();
+ return machine().rand();
}
static ADDRESS_MAP_START( shtstar_map, AS_PROGRAM, 16, artmagic_state )
@@ -476,13 +473,13 @@ static ADDRESS_MAP_START( shtstar_map, AS_PROGRAM, 16, artmagic_state )
AM_RANGE(0x3c0008, 0x3c0009) AM_READ_PORT("3c0008")
AM_RANGE(0x3c000a, 0x3c000b) AM_READ_PORT("3c000a")
- AM_RANGE(0x3c0012, 0x3c0013) AM_READ_LEGACY(unk_r)
+ AM_RANGE(0x3c0012, 0x3c0013) AM_READ(unk_r)
AM_RANGE(0x3c0014, 0x3c0015) AM_NOP
- AM_RANGE(0x300000, 0x300003) AM_WRITE_LEGACY(control_w) AM_BASE(m_control)
- AM_RANGE(0x3c0004, 0x3c0007) AM_WRITE_LEGACY(protection_bit_w)
+ AM_RANGE(0x300000, 0x300003) AM_WRITE(control_w) AM_BASE(m_control)
+ AM_RANGE(0x3c0004, 0x3c0007) AM_WRITE(protection_bit_w)
AM_RANGE(0x340000, 0x340001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x380000, 0x380007) AM_READWRITE_LEGACY(tms_host_r, tms_host_w)
+ AM_RANGE(0x380000, 0x380007) AM_READWRITE(tms_host_r, tms_host_w)
ADDRESS_MAP_END
@@ -1172,7 +1169,7 @@ static DRIVER_INIT( ultennis )
state->m_protection_handler = ultennis_protection;
/* additional (protection?) hack */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x300000, 0x300001, FUNC(ultennis_hack_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x300000, 0x300001, read16_delegate(FUNC(artmagic_state::ultennis_hack_r),state));
}
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 90322c263b2..29ffb53a61a 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -79,19 +79,18 @@ Coin B is not used
#include "sound/msm5205.h"
#include "includes/ashnojoe.h"
-static READ16_HANDLER(fake_4a00a_r)
+READ16_MEMBER(ashnojoe_state::fake_4a00a_r)
{
/* If it returns 1 there's no sound. Is it used to sync the game and sound?
or just a debug enable/disable register? */
return 0;
}
-static WRITE16_HANDLER( ashnojoe_soundlatch_w )
+WRITE16_MEMBER(ashnojoe_state::ashnojoe_soundlatch_w)
{
- ashnojoe_state *state = space->machine().driver_data<ashnojoe_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_soundlatch_status = 1;
+ m_soundlatch_status = 1;
soundlatch_w(space, 0, data & 0xff);
}
}
@@ -110,8 +109,8 @@ static ADDRESS_MAP_START( ashnojoe_map, AS_PROGRAM, 16, ashnojoe_state )
AM_RANGE(0x04a002, 0x04a003) AM_READ_PORT("P2")
AM_RANGE(0x04a004, 0x04a005) AM_READ_PORT("DSW")
AM_RANGE(0x04a006, 0x04a007) AM_WRITEONLY AM_BASE(m_tilemap_reg)
- AM_RANGE(0x04a008, 0x04a009) AM_WRITE_LEGACY(ashnojoe_soundlatch_w)
- AM_RANGE(0x04a00a, 0x04a00b) AM_READ_LEGACY(fake_4a00a_r) // ??
+ AM_RANGE(0x04a008, 0x04a009) AM_WRITE(ashnojoe_soundlatch_w)
+ AM_RANGE(0x04a00a, 0x04a00b) AM_READ(fake_4a00a_r) // ??
AM_RANGE(0x04a010, 0x04a019) AM_WRITE_LEGACY(joe_tilemaps_xscroll_w)
AM_RANGE(0x04a020, 0x04a029) AM_WRITE_LEGACY(joe_tilemaps_yscroll_w)
AM_RANGE(0x04c000, 0x04ffff) AM_RAM
@@ -119,23 +118,20 @@ static ADDRESS_MAP_START( ashnojoe_map, AS_PROGRAM, 16, ashnojoe_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( adpcm_w )
+WRITE8_MEMBER(ashnojoe_state::adpcm_w)
{
- ashnojoe_state *state = space->machine().driver_data<ashnojoe_state>();
- state->m_adpcm_byte = data;
+ m_adpcm_byte = data;
}
-static READ8_HANDLER( sound_latch_r )
+READ8_MEMBER(ashnojoe_state::sound_latch_r)
{
- ashnojoe_state *state = space->machine().driver_data<ashnojoe_state>();
- state->m_soundlatch_status = 0;
+ m_soundlatch_status = 0;
return soundlatch_r(space, 0);
}
-static READ8_HANDLER( sound_latch_status_r )
+READ8_MEMBER(ashnojoe_state::sound_latch_status_r)
{
- ashnojoe_state *state = space->machine().driver_data<ashnojoe_state>();
- return state->m_soundlatch_status;
+ return m_soundlatch_status;
}
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ashnojoe_state )
@@ -147,9 +143,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, ashnojoe_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(adpcm_w)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(sound_latch_r)
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(sound_latch_status_r)
+ AM_RANGE(0x02, 0x02) AM_WRITE(adpcm_w)
+ AM_RANGE(0x04, 0x04) AM_READ(sound_latch_r)
+ AM_RANGE(0x06, 0x06) AM_READ(sound_latch_status_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index 1306be386f3..1d1389d159e 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -31,27 +31,25 @@ static const eeprom_interface eeprom_intf =
};
#if 0
-static READ16_HANDLER( control2_r )
+READ16_MEMBER(asterix_state::control2_r)
{
- asterix_state *state = space->machine().driver_data<asterix_state>();
- return state->m_cur_control2;
+ return m_cur_control2;
}
#endif
-static WRITE16_HANDLER( control2_w )
+WRITE16_MEMBER(asterix_state::control2_w)
{
- asterix_state *state = space->machine().driver_data<asterix_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_cur_control2 = data;
+ m_cur_control2 = data;
/* bit 0 is data */
/* bit 1 is cs (active low) */
/* bit 2 is clock (active high) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
/* bit 5 is select tile bank */
- k056832_set_tile_bank(state->m_k056832, (data & 0x20) >> 5);
+ k056832_set_tile_bank(m_k056832, (data & 0x20) >> 5);
}
}
@@ -77,38 +75,35 @@ static TIMER_CALLBACK( nmi_callback )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( sound_arm_nmi_w )
+WRITE8_MEMBER(asterix_state::sound_arm_nmi_w)
{
- asterix_state *state = space->machine().driver_data<asterix_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- space->machine().scheduler().timer_set(attotime::from_usec(5), FUNC(nmi_callback));
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ machine().scheduler().timer_set(attotime::from_usec(5), FUNC(nmi_callback));
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(asterix_state::sound_irq_w)
{
- asterix_state *state = space->machine().driver_data<asterix_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
// Check the routine at 7f30 in the ead version.
// You're not supposed to laugh.
// This emulation is grossly overkill but hey, I'm having fun.
#if 0
-static WRITE16_HANDLER( protection_w )
+WRITE16_MEMBER(asterix_state::protection_w)
{
- asterix_state *state = space->machine().driver_data<asterix_state>();
- COMBINE_DATA(state->m_prot + offset);
+ COMBINE_DATA(m_prot + offset);
if (offset == 1)
{
- UINT32 cmd = (state->m_prot[0] << 16) | state->m_prot[1];
+ UINT32 cmd = (m_prot[0] << 16) | m_prot[1];
switch (cmd >> 24)
{
case 0x64:
{
- UINT32 param1 = (space->read_word(cmd & 0xffffff) << 16) | space->read_word((cmd & 0xffffff) + 2);
- UINT32 param2 = (space->read_word((cmd & 0xffffff) + 4) << 16) | space->read_word((cmd & 0xffffff) + 6);
+ UINT32 param1 = (read_word(cmd & 0xffffff) << 16) | read_word((cmd & 0xffffff) + 2);
+ UINT32 param2 = (read_word((cmd & 0xffffff) + 4) << 16) | read_word((cmd & 0xffffff) + 6);
switch (param1 >> 24)
{
@@ -119,7 +114,7 @@ static WRITE16_HANDLER( protection_w )
param2 &= 0xffffff;
while(size >= 0)
{
- space->write_word(param2, space->read_word(param1));
+ write_word(param2, read_word(param1));
param1 += 2;
param2 += 2;
size--;
@@ -134,22 +129,21 @@ static WRITE16_HANDLER( protection_w )
}
#endif
-static WRITE16_HANDLER( protection_w )
+WRITE16_MEMBER(asterix_state::protection_w)
{
- asterix_state *state = space->machine().driver_data<asterix_state>();
- COMBINE_DATA(state->m_prot + offset);
+ COMBINE_DATA(m_prot + offset);
if (offset == 1)
{
- UINT32 cmd = (state->m_prot[0] << 16) | state->m_prot[1];
+ UINT32 cmd = (m_prot[0] << 16) | m_prot[1];
switch (cmd >> 24)
{
case 0x64:
{
- UINT32 param1 = (space->read_word(cmd & 0xffffff) << 16)
- | space->read_word((cmd & 0xffffff) + 2);
- UINT32 param2 = (space->read_word((cmd & 0xffffff) + 4) << 16)
- | space->read_word((cmd & 0xffffff) + 6);
+ UINT32 param1 = (space.read_word(cmd & 0xffffff) << 16)
+ | space.read_word((cmd & 0xffffff) + 2);
+ UINT32 param2 = (space.read_word((cmd & 0xffffff) + 4) << 16)
+ | space.read_word((cmd & 0xffffff) + 6);
switch (param1 >> 24)
{
@@ -160,7 +154,7 @@ static WRITE16_HANDLER( protection_w )
param2 &= 0xffffff;
while(size >= 0)
{
- space->write_word(param2, space->read_word(param1));
+ space.write_word(param2, space.read_word(param1));
param1 += 2;
param2 += 2;
size--;
@@ -184,14 +178,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, asterix_state )
AM_RANGE(0x300000, 0x30001f) AM_DEVREADWRITE_LEGACY("k053244", k053244_lsb_r, k053244_lsb_w)
AM_RANGE(0x380000, 0x380001) AM_READ_PORT("IN0")
AM_RANGE(0x380002, 0x380003) AM_READ_PORT("IN1")
- AM_RANGE(0x380100, 0x380101) AM_WRITE_LEGACY(control2_w)
+ AM_RANGE(0x380100, 0x380101) AM_WRITE(control2_w)
AM_RANGE(0x380200, 0x380203) AM_DEVREADWRITE8_LEGACY("k053260", asterix_sound_r, k053260_w, 0x00ff)
- AM_RANGE(0x380300, 0x380301) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x380300, 0x380301) AM_WRITE(sound_irq_w)
AM_RANGE(0x380400, 0x380401) AM_WRITE_LEGACY(asterix_spritebank_w)
AM_RANGE(0x380500, 0x38051f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x380600, 0x380601) AM_NOP // Watchdog
AM_RANGE(0x380700, 0x380707) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w)
- AM_RANGE(0x380800, 0x380803) AM_WRITE_LEGACY(protection_w)
+ AM_RANGE(0x380800, 0x380803) AM_WRITE(protection_w)
AM_RANGE(0x400000, 0x400fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_half_word_r, k056832_ram_half_word_w)
AM_RANGE(0x420000, 0x421fff) AM_DEVREAD_LEGACY("k056832", k056832_old_rom_word_r) // Passthrough to tile roms
AM_RANGE(0x440000, 0x44003f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)
@@ -202,7 +196,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, asterix_state )
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf801, 0xf801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_status_port_r, ym2151_data_port_w)
AM_RANGE(0xfa00, 0xfa2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
AM_RANGE(0xfe00, 0xfe00) AM_DEVWRITE_LEGACY("ymsnd", ym2151_register_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c
index 35477385140..5213575a072 100644
--- a/src/mame/drivers/asteroid.c
+++ b/src/mame/drivers/asteroid.c
@@ -202,9 +202,9 @@ There is not a rev 03 known or dumped. An Asteroids rev 03 is not mentioned in a
*
*************************************/
-static WRITE8_HANDLER( astdelux_coin_counter_w )
+WRITE8_MEMBER(asteroid_state::astdelux_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
@@ -215,7 +215,7 @@ static WRITE8_HANDLER( astdelux_coin_counter_w )
*
*************************************/
-static WRITE8_HANDLER( llander_led_w )
+WRITE8_MEMBER(asteroid_state::llander_led_w)
{
static const char *const lampname[] =
{
@@ -273,7 +273,7 @@ static ADDRESS_MAP_START( astdelux_map, AS_PROGRAM, 8, asteroid_state )
AM_RANGE(0x3c00, 0x3c01) AM_WRITE_LEGACY(astdelux_led_w)
AM_RANGE(0x3c03, 0x3c03) AM_DEVWRITE_LEGACY("discrete", astdelux_sounds_w)
AM_RANGE(0x3c04, 0x3c04) AM_WRITE_LEGACY(astdelux_bank_switch_w)
- AM_RANGE(0x3c05, 0x3c07) AM_WRITE_LEGACY(astdelux_coin_counter_w)
+ AM_RANGE(0x3c05, 0x3c07) AM_WRITE(astdelux_coin_counter_w)
AM_RANGE(0x3e00, 0x3e00) AM_DEVWRITE_LEGACY("discrete", asteroid_noise_reset_w)
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_BASE_LEGACY(&avgdvg_vectorram) AM_SIZE_LEGACY(&avgdvg_vectorram_size) AM_REGION("maincpu", 0x4000)
AM_RANGE(0x4800, 0x57ff) AM_ROM /* vector rom */
@@ -289,7 +289,7 @@ static ADDRESS_MAP_START( llander_map, AS_PROGRAM, 8, asteroid_state )
AM_RANGE(0x2800, 0x2803) AM_READ_LEGACY(asteroid_DSW1_r) /* DSW1 */
AM_RANGE(0x2c00, 0x2c00) AM_READ_PORT("THRUST")
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(avgdvg_go_w)
- AM_RANGE(0x3200, 0x3200) AM_WRITE_LEGACY(llander_led_w)
+ AM_RANGE(0x3200, 0x3200) AM_WRITE(llander_led_w)
AM_RANGE(0x3400, 0x3400) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x3c00, 0x3c00) AM_DEVWRITE_LEGACY("discrete", llander_sounds_w)
AM_RANGE(0x3e00, 0x3e00) AM_DEVWRITE_LEGACY("discrete", llander_snd_reset_w)
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index 229201a67e1..db7cf05aa75 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -152,27 +152,24 @@ static MACHINE_START( astrocde )
*
*************************************/
-static WRITE8_HANDLER( protected_ram_enable_w )
+WRITE8_MEMBER(astrocde_state::protected_ram_enable_w)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- state->m_ram_write_enable = TRUE;
+ m_ram_write_enable = TRUE;
}
-static READ8_HANDLER( protected_ram_r )
+READ8_MEMBER(astrocde_state::protected_ram_r)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- state->m_ram_write_enable = FALSE;
- return state->m_protected_ram[offset];
+ m_ram_write_enable = FALSE;
+ return m_protected_ram[offset];
}
-static WRITE8_HANDLER( protected_ram_w )
+WRITE8_MEMBER(astrocde_state::protected_ram_w)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- if (state->m_ram_write_enable)
- state->m_protected_ram[offset] = data;
- state->m_ram_write_enable = FALSE;
+ if (m_ram_write_enable)
+ m_protected_ram[offset] = data;
+ m_ram_write_enable = FALSE;
}
@@ -183,7 +180,7 @@ static WRITE8_HANDLER( protected_ram_w )
*
*************************************/
-static WRITE8_HANDLER( seawolf2_lamps_w )
+WRITE8_MEMBER(astrocde_state::seawolf2_lamps_w)
{
/* 0x42 = player 2 (left), 0x43 = player 1 (right) */
/* --x----- explosion */
@@ -203,12 +200,11 @@ static WRITE8_HANDLER( seawolf2_lamps_w )
}
-static WRITE8_HANDLER( seawolf2_sound_1_w ) // Port 40
+WRITE8_MEMBER(astrocde_state::seawolf2_sound_1_w)// Port 40
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- samples_device *samples = space->machine().device<samples_device>("samples");
- UINT8 rising_bits = data & ~state->m_port_1_last;
- state->m_port_1_last = data;
+ samples_device *samples = machine().device<samples_device>("samples");
+ UINT8 rising_bits = data & ~m_port_1_last;
+ m_port_1_last = data;
if (rising_bits & 0x01) samples->start(1, 1); /* Left Torpedo */
if (rising_bits & 0x02) samples->start(0, 0); /* Left Ship Hit */
@@ -219,12 +215,11 @@ static WRITE8_HANDLER( seawolf2_sound_1_w ) // Port 40
}
-static WRITE8_HANDLER( seawolf2_sound_2_w ) // Port 41
+WRITE8_MEMBER(astrocde_state::seawolf2_sound_2_w)// Port 41
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- samples_device *samples = space->machine().device<samples_device>("samples");
- UINT8 rising_bits = data & ~state->m_port_2_last;
- state->m_port_2_last = data;
+ samples_device *samples = machine().device<samples_device>("samples");
+ UINT8 rising_bits = data & ~m_port_2_last;
+ m_port_2_last = data;
samples->set_volume(0, (data & 0x80) ? 1.0 : 0.0);
samples->set_volume(1, (data & 0x80) ? 1.0 : 0.0);
@@ -247,7 +242,7 @@ static WRITE8_HANDLER( seawolf2_sound_2_w ) // Port 41
if (rising_bits & 0x10) samples->start(8, 3); /* Right Sonar */
if (rising_bits & 0x20) samples->start(3, 3); /* Left Sonar */
- coin_counter_w(space->machine(), 0, data & 0x40); /* Coin Counter */
+ coin_counter_w(machine(), 0, data & 0x40); /* Coin Counter */
}
@@ -266,16 +261,15 @@ static CUSTOM_INPUT( ebases_trackball_r )
}
-static WRITE8_HANDLER( ebases_trackball_select_w )
+WRITE8_MEMBER(astrocde_state::ebases_trackball_select_w)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- state->m_input_select = data & 3;
+ m_input_select = data & 3;
}
-static WRITE8_HANDLER( ebases_coin_w )
+WRITE8_MEMBER(astrocde_state::ebases_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
@@ -286,11 +280,11 @@ static WRITE8_HANDLER( ebases_coin_w )
*
*************************************/
-static READ8_HANDLER( spacezap_io_r )
+READ8_MEMBER(astrocde_state::spacezap_io_r)
{
- coin_counter_w(space->machine(), 0, (offset >> 8) & 1);
- coin_counter_w(space->machine(), 1, (offset >> 9) & 1);
- return input_port_read_safe(space->machine(), "P3HANDLE", 0xff);
+ coin_counter_w(machine(), 0, (offset >> 8) & 1);
+ coin_counter_w(machine(), 1, (offset >> 9) & 1);
+ return input_port_read_safe(machine(), "P3HANDLE", 0xff);
}
@@ -301,20 +295,19 @@ static READ8_HANDLER( spacezap_io_r )
*
*************************************/
-static READ8_HANDLER( wow_io_r )
+READ8_MEMBER(astrocde_state::wow_io_r)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
UINT8 data = (offset >> 8) & 1;
switch ((offset >> 9) & 7)
{
- case 0: coin_counter_w(space->machine(), 0, data); break;
- case 1: coin_counter_w(space->machine(), 1, data); break;
- case 2: state->m_sparkle[0] = data; break;
- case 3: state->m_sparkle[1] = data; break;
- case 4: state->m_sparkle[2] = data; break;
- case 5: state->m_sparkle[3] = data; break;
- case 7: coin_counter_w(space->machine(), 2, data); break;
+ case 0: coin_counter_w(machine(), 0, data); break;
+ case 1: coin_counter_w(machine(), 1, data); break;
+ case 2: m_sparkle[0] = data; break;
+ case 3: m_sparkle[1] = data; break;
+ case 4: m_sparkle[2] = data; break;
+ case 5: m_sparkle[3] = data; break;
+ case 7: coin_counter_w(machine(), 2, data); break;
}
return 0xff;
}
@@ -327,25 +320,24 @@ static READ8_HANDLER( wow_io_r )
*
*************************************/
-static READ8_HANDLER( gorf_io_1_r )
+READ8_MEMBER(astrocde_state::gorf_io_1_r)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
UINT8 data = (offset >> 8) & 1;
switch ((offset >> 9) & 7)
{
- case 0: coin_counter_w(space->machine(), 0, data); break;
- case 1: coin_counter_w(space->machine(), 1, data); break;
- case 2: state->m_sparkle[0] = data; break;
- case 3: state->m_sparkle[1] = data; break;
- case 4: state->m_sparkle[2] = data; break;
- case 5: state->m_sparkle[3] = data; break;
+ case 0: coin_counter_w(machine(), 0, data); break;
+ case 1: coin_counter_w(machine(), 1, data); break;
+ case 2: m_sparkle[0] = data; break;
+ case 3: m_sparkle[1] = data; break;
+ case 4: m_sparkle[2] = data; break;
+ case 5: m_sparkle[3] = data; break;
case 6:
- space->machine().device<astrocade_device>("astrocade1")->set_output_gain(0, data ? 0.0 : 1.0);
+ machine().device<astrocade_device>("astrocade1")->set_output_gain(0, data ? 0.0 : 1.0);
#if USE_FAKE_VOTRAX
- space->machine().device<samples_device>("samples")->set_output_gain(0, data ? 1.0 : 0.0);
+ machine().device<samples_device>("samples")->set_output_gain(0, data ? 1.0 : 0.0);
#else
- space->machine().device<votrax_sc01_device>("votrax")->set_output_gain(0, data ? 1.0 : 0.0);
+ machine().device<votrax_sc01_device>("votrax")->set_output_gain(0, data ? 1.0 : 0.0);
#endif
break;
case 7: mame_printf_debug("io_1:%d\n", data); break;
@@ -354,7 +346,7 @@ static READ8_HANDLER( gorf_io_1_r )
}
-static READ8_HANDLER( gorf_io_2_r )
+READ8_MEMBER(astrocde_state::gorf_io_2_r)
{
UINT8 data = (offset >> 8) & 1;
@@ -380,17 +372,17 @@ static READ8_HANDLER( gorf_io_2_r )
*
*************************************/
-static READ8_HANDLER( robby_io_r )
+READ8_MEMBER(astrocde_state::robby_io_r)
{
UINT8 data = (offset >> 8) & 1;
switch ((offset >> 9) & 7)
{
- case 0: coin_counter_w(space->machine(), 0, data); break;
- case 1: coin_counter_w(space->machine(), 1, data); break;
- case 2: coin_counter_w(space->machine(), 2, data); break;
- case 6: set_led_status(space->machine(), 0, data); break;
- case 7: set_led_status(space->machine(), 1, data); break;
+ case 0: coin_counter_w(machine(), 0, data); break;
+ case 1: coin_counter_w(machine(), 1, data); break;
+ case 2: coin_counter_w(machine(), 2, data); break;
+ case 6: set_led_status(machine(), 0, data); break;
+ case 7: set_led_status(machine(), 1, data); break;
}
return 0xff;
}
@@ -403,17 +395,17 @@ static READ8_HANDLER( robby_io_r )
*
*************************************/
-static READ8_HANDLER( profpac_io_1_r )
+READ8_MEMBER(astrocde_state::profpac_io_1_r)
{
- coin_counter_w(space->machine(), 0, (offset >> 8) & 1);
- coin_counter_w(space->machine(), 1, (offset >> 9) & 1);
- set_led_status(space->machine(), 0, (offset >> 10) & 1);
- set_led_status(space->machine(), 1, (offset >> 11) & 1);
+ coin_counter_w(machine(), 0, (offset >> 8) & 1);
+ coin_counter_w(machine(), 1, (offset >> 9) & 1);
+ set_led_status(machine(), 0, (offset >> 10) & 1);
+ set_led_status(machine(), 1, (offset >> 11) & 1);
return 0xff;
}
-static READ8_HANDLER( profpac_io_2_r )
+READ8_MEMBER(astrocde_state::profpac_io_2_r)
{
output_set_lamp_value(0, (offset >> 8) & 1); /* left lamp A */
output_set_lamp_value(1, (offset >> 9) & 1); /* left lamp B */
@@ -425,27 +417,26 @@ static READ8_HANDLER( profpac_io_2_r )
}
-static WRITE8_HANDLER( profpac_banksw_w )
+WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
int bank = (data >> 5) & 3;
- /* this is accessed from I/O space but modifies program space, so we normalize here */
- space = space->device().memory().space(AS_PROGRAM);
+ /* this is accessed from I/O &space but modifies program &space, so we normalize here */
+ address_space *prog_space = space.device().memory().space(AS_PROGRAM);
/* remember the banking bits for save state support */
- state->m_profpac_bank = data;
+ m_profpac_bank = data;
/* set the main banking */
- space->install_read_bank(0x4000, 0xbfff, "bank1");
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("user1")->base() + 0x8000 * bank);
+ prog_space->install_read_bank(0x4000, 0xbfff, "bank1");
+ memory_set_bankptr(machine(), "bank1", machine().region("user1")->base() + 0x8000 * bank);
/* bank 0 reads video RAM in the 4000-7FFF range */
if (bank == 0)
- space->install_legacy_read_handler(0x4000, 0x7fff, FUNC(profpac_videoram_r));
+ prog_space->install_legacy_read_handler(0x4000, 0x7fff, FUNC(profpac_videoram_r));
/* if we have a 640k EPROM board, map that on top of the 4000-7FFF range if specified */
- if ((data & 0x80) && space->machine().region("user2")->base() != NULL)
+ if ((data & 0x80) && machine().region("user2")->base() != NULL)
{
/* Note: There is a jumper which could change the base offset to 0xa8 instead */
bank = data - 0x80;
@@ -453,11 +444,11 @@ static WRITE8_HANDLER( profpac_banksw_w )
/* if the bank is in range, map the appropriate bank */
if (bank < 0x28)
{
- space->install_read_bank(0x4000, 0x7fff, "bank2");
- memory_set_bankptr(space->machine(), "bank2", space->machine().region("user2")->base() + 0x4000 * bank);
+ prog_space->install_read_bank(0x4000, 0x7fff, "bank2");
+ memory_set_bankptr(machine(), "bank2", machine().region("user2")->base() + 0x4000 * bank);
}
else
- space->unmap_read(0x4000, 0x7fff);
+ prog_space->unmap_read(0x4000, 0x7fff);
}
}
@@ -467,7 +458,7 @@ static void profbank_banksw_restore(running_machine &machine)
astrocde_state *state = machine.driver_data<astrocde_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_IO);
- profpac_banksw_w(space, 0, state->m_profpac_bank);
+ state->profpac_banksw_w(*space, 0, state->m_profpac_bank);
}
@@ -478,14 +469,13 @@ static void profbank_banksw_restore(running_machine &machine)
*
*************************************/
-static READ8_HANDLER( demndrgn_io_r )
+READ8_MEMBER(astrocde_state::demndrgn_io_r)
{
- astrocde_state *state = space->machine().driver_data<astrocde_state>();
- coin_counter_w(space->machine(), 0, (offset >> 8) & 1);
- coin_counter_w(space->machine(), 1, (offset >> 9) & 1);
- set_led_status(space->machine(), 0, (offset >> 10) & 1);
- set_led_status(space->machine(), 1, (offset >> 11) & 1);
- state->m_input_select = (offset >> 12) & 1;
+ coin_counter_w(machine(), 0, (offset >> 8) & 1);
+ coin_counter_w(machine(), 1, (offset >> 9) & 1);
+ set_led_status(machine(), 0, (offset >> 10) & 1);
+ set_led_status(machine(), 1, (offset >> 11) & 1);
+ m_input_select = (offset >> 12) & 1;
return 0xff;
}
@@ -498,7 +488,7 @@ static CUSTOM_INPUT( demndragn_joystick_r )
}
-static WRITE8_HANDLER( demndrgn_sound_w )
+WRITE8_MEMBER(astrocde_state::demndrgn_sound_w)
{
logerror("Trigger sound sample 0x%02x\n",data);
}
@@ -532,14 +522,14 @@ static const ay8910_interface ay8912_interface =
};
-static WRITE8_HANDLER( tenpindx_sound_w )
+WRITE8_MEMBER(astrocde_state::tenpindx_sound_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( tenpindx_lamp_w )
+WRITE8_MEMBER(astrocde_state::tenpindx_lamp_w)
{
/* lamps */
if (offset == 0)
@@ -561,14 +551,14 @@ static WRITE8_HANDLER( tenpindx_lamp_w )
}
-static WRITE8_HANDLER( tenpindx_counter_w )
+WRITE8_MEMBER(astrocde_state::tenpindx_counter_w)
{
- coin_counter_w(space->machine(), 0, (data >> 0) & 1);
+ coin_counter_w(machine(), 0, (data >> 0) & 1);
if (data & 0xfc) mame_printf_debug("tenpindx_counter_w = %02X\n", data);
}
-static WRITE8_HANDLER( tenpindx_lights_w )
+WRITE8_MEMBER(astrocde_state::tenpindx_lights_w)
{
/* "flashlights" */
int which = data >> 4;
@@ -611,7 +601,7 @@ static ADDRESS_MAP_START( spacezap_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x0000, 0x3fff) AM_WRITE_LEGACY(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_videoram)
- AM_RANGE(0xd000, 0xd03f) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
+ AM_RANGE(0xd000, 0xd03f) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
AM_RANGE(0xd040, 0xd7ff) AM_RAM
ADDRESS_MAP_END
@@ -621,7 +611,7 @@ static ADDRESS_MAP_START( wow_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_WRITE_LEGACY(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0x8000, 0xcfff) AM_ROM
- AM_RANGE(0xd000, 0xd03f) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
+ AM_RANGE(0xd000, 0xd03f) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
AM_RANGE(0xd040, 0xdfff) AM_RAM
ADDRESS_MAP_END
@@ -631,7 +621,7 @@ static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_WRITE_LEGACY(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0x8000, 0xdfff) AM_ROM
- AM_RANGE(0xe000, 0xe1ff) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
+ AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe800, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -643,7 +633,7 @@ static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x4000, 0x7fff) AM_READWRITE_LEGACY(profpac_videoram_r, profpac_videoram_w)
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_ROM
- AM_RANGE(0xe000, 0xe1ff) AM_READWRITE_LEGACY(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
+ AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_BASE(m_protected_ram)
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe800, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -682,7 +672,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map_mono_pattern, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE_LEGACY(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE_LEGACY(astrocade_pattern_board_w)
- AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w)
+ AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w)
ADDRESS_MAP_END
@@ -690,7 +680,7 @@ static ADDRESS_MAP_START( port_map_stereo_pattern, AS_IO, 8, astrocde_state )
AM_RANGE(0x0000, 0x0019) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_READWRITE_LEGACY(astrocade_data_chip_register_r, astrocade_data_chip_register_w)
AM_RANGE(0x0050, 0x0058) AM_MIRROR(0xff00) AM_MASK(0xffff) AM_DEVWRITE_LEGACY("astrocade2", astrocade_sound_w)
AM_RANGE(0x0078, 0x007e) AM_MIRROR(0xff00) AM_WRITE_LEGACY(astrocade_pattern_board_w)
- AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w)
+ AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w)
ADDRESS_MAP_END
@@ -701,8 +691,8 @@ static ADDRESS_MAP_START( port_map_16col_pattern, AS_IO, 8, astrocde_state )
AM_RANGE(0x00bf, 0x00bf) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_page_select_w)
AM_RANGE(0x00c3, 0x00c3) AM_MIRROR(0xff00) AM_READ_LEGACY(profpac_intercept_r)
AM_RANGE(0x00c0, 0x00c5) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_screenram_ctrl_w)
- AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_banksw_w)
- AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w)
+ AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE(profpac_banksw_w)
+ AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w)
ADDRESS_MAP_END
@@ -712,8 +702,8 @@ static ADDRESS_MAP_START( port_map_16col_pattern_nosound, AS_IO, 8, astrocde_sta
AM_RANGE(0x00bf, 0x00bf) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_page_select_w)
AM_RANGE(0x00c3, 0x00c3) AM_MIRROR(0xff00) AM_READ_LEGACY(profpac_intercept_r)
AM_RANGE(0x00c0, 0x00c5) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_screenram_ctrl_w)
- AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE_LEGACY(profpac_banksw_w)
- AM_RANGE(0xa55b, 0xa55b) AM_WRITE_LEGACY(protected_ram_enable_w)
+ AM_RANGE(0x00f3, 0x00f3) AM_MIRROR(0xff00) AM_WRITE(profpac_banksw_w)
+ AM_RANGE(0xa55b, 0xa55b) AM_WRITE(protected_ram_enable_w)
ADDRESS_MAP_END
@@ -1751,9 +1741,9 @@ static DRIVER_INIT( seawolf2 )
{
astrocde_state *state = machine.driver_data<astrocde_state>();
state->m_video_config = 0x00;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x40, 0x40, 0, 0xff18, FUNC(seawolf2_sound_1_w));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x41, 0x41, 0, 0xff18, FUNC(seawolf2_sound_2_w));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x42, 0x43, 0, 0xff18, FUNC(seawolf2_lamps_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x40, 0x40, 0, 0xff18, write8_delegate(FUNC(astrocde_state::seawolf2_sound_1_w),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x41, 0x41, 0, 0xff18, write8_delegate(FUNC(astrocde_state::seawolf2_sound_2_w),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x42, 0x43, 0, 0xff18, write8_delegate(FUNC(astrocde_state::seawolf2_lamps_w),state));
}
@@ -1761,8 +1751,8 @@ static DRIVER_INIT( ebases )
{
astrocde_state *state = machine.driver_data<astrocde_state>();
state->m_video_config = AC_SOUND_PRESENT;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x20, 0, 0xff07, FUNC(ebases_coin_w));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x28, 0x28, 0, 0xff07, FUNC(ebases_trackball_select_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x20, 0x20, 0, 0xff07, write8_delegate(FUNC(astrocde_state::ebases_coin_w),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x28, 0x28, 0, 0xff07, write8_delegate(FUNC(astrocde_state::ebases_trackball_select_w),state));
}
@@ -1770,7 +1760,7 @@ static DRIVER_INIT( spacezap )
{
astrocde_state *state = machine.driver_data<astrocde_state>();
state->m_video_config = AC_SOUND_PRESENT | AC_MONITOR_BW;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x13, 0x13, 0x03ff, 0xff00, FUNC(spacezap_io_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x13, 0x13, 0x03ff, 0xff00, read8_delegate(FUNC(astrocde_state::spacezap_io_r),state));
}
@@ -1778,7 +1768,7 @@ static DRIVER_INIT( wow )
{
astrocde_state *state = machine.driver_data<astrocde_state>();
state->m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x15, 0x15, 0x0fff, 0xff00, FUNC(wow_io_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x15, 0x15, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::wow_io_r),state));
machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x17, 0x17, 0xffff, 0xff00, FUNC(wow_speech_r));
}
@@ -1787,8 +1777,8 @@ static DRIVER_INIT( gorf )
{
astrocde_state *state = machine.driver_data<astrocde_state>();
state->m_video_config = AC_SOUND_PRESENT | AC_LIGHTPEN_INTS | AC_STARS;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x15, 0x15, 0x0fff, 0xff00, FUNC(gorf_io_1_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x16, 0x16, 0x0fff, 0xff00, FUNC(gorf_io_2_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x15, 0x15, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::gorf_io_1_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x16, 0x16, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::gorf_io_2_r),state));
machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x17, 0x17, 0xffff, 0xff00, FUNC(gorf_speech_r));
}
@@ -1797,7 +1787,7 @@ static DRIVER_INIT( robby )
{
astrocde_state *state = machine.driver_data<astrocde_state>();
state->m_video_config = AC_SOUND_PRESENT;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x15, 0x15, 0x0fff, 0xff00, FUNC(robby_io_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x15, 0x15, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::robby_io_r),state));
}
@@ -1807,11 +1797,11 @@ static DRIVER_INIT( profpac )
address_space *iospace = machine.device("maincpu")->memory().space(AS_IO);
state->m_video_config = AC_SOUND_PRESENT;
- iospace->install_legacy_read_handler(0x14, 0x14, 0x0fff, 0xff00, FUNC(profpac_io_1_r));
- iospace->install_legacy_read_handler(0x15, 0x15, 0x77ff, 0xff00, FUNC(profpac_io_2_r));
+ iospace->install_read_handler(0x14, 0x14, 0x0fff, 0xff00, read8_delegate(FUNC(astrocde_state::profpac_io_1_r),state));
+ iospace->install_read_handler(0x15, 0x15, 0x77ff, 0xff00, read8_delegate(FUNC(astrocde_state::profpac_io_2_r),state));
/* reset banking */
- profpac_banksw_w(iospace, 0, 0);
+ state->profpac_banksw_w(*iospace, 0, 0);
machine.save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine));
}
@@ -1822,13 +1812,13 @@ static DRIVER_INIT( demndrgn )
address_space *iospace = machine.device("maincpu")->memory().space(AS_IO);
state->m_video_config = 0x00;
- iospace->install_legacy_read_handler(0x14, 0x14, 0x1fff, 0xff00, FUNC(demndrgn_io_r));
+ iospace->install_read_handler(0x14, 0x14, 0x1fff, 0xff00, read8_delegate(FUNC(astrocde_state::demndrgn_io_r),state));
iospace->install_read_port(0x1c, 0x1c, 0x0000, 0xff00, "FIREX");
iospace->install_read_port(0x1d, 0x1d, 0x0000, 0xff00, "FIREY");
- iospace->install_legacy_write_handler(0x97, 0x97, 0x0000, 0xff00, FUNC(demndrgn_sound_w));
+ iospace->install_write_handler(0x97, 0x97, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::demndrgn_sound_w),state));
/* reset banking */
- profpac_banksw_w(iospace, 0, 0);
+ state->profpac_banksw_w(*iospace, 0, 0);
machine.save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine));
}
@@ -1844,13 +1834,13 @@ static DRIVER_INIT( tenpindx )
iospace->install_read_port(0x62, 0x62, 0x0000, 0xff00, "P62");
iospace->install_read_port(0x63, 0x63, 0x0000, 0xff00, "P63");
iospace->install_read_port(0x64, 0x64, 0x0000, 0xff00, "P64");
- iospace->install_legacy_write_handler(0x65, 0x66, 0x0000, 0xff00, FUNC(tenpindx_lamp_w));
- iospace->install_legacy_write_handler(0x67, 0x67, 0x0000, 0xff00, FUNC(tenpindx_counter_w));
- iospace->install_legacy_write_handler(0x68, 0x68, 0x0000, 0xff00, FUNC(tenpindx_lights_w));
- iospace->install_legacy_write_handler(0x97, 0x97, 0x0000, 0xff00, FUNC(tenpindx_sound_w));
+ iospace->install_write_handler(0x65, 0x66, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_lamp_w),state));
+ iospace->install_write_handler(0x67, 0x67, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_counter_w),state));
+ iospace->install_write_handler(0x68, 0x68, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_lights_w),state));
+ iospace->install_write_handler(0x97, 0x97, 0x0000, 0xff00, write8_delegate(FUNC(astrocde_state::tenpindx_sound_w),state));
/* reset banking */
- profpac_banksw_w(iospace, 0, 0);
+ state->profpac_banksw_w(*iospace, 0, 0);
machine.save().register_postload(save_prepost_delegate(FUNC(profbank_banksw_restore), &machine));
}
diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c
index 0472e91060f..fcf83b41d87 100644
--- a/src/mame/drivers/astrof.c
+++ b/src/mame/drivers/astrof.c
@@ -79,10 +79,9 @@
*
*************************************/
-static READ8_HANDLER( irq_clear_r )
+READ8_MEMBER(astrof_state::irq_clear_r)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
return 0;
}
@@ -280,37 +279,34 @@ static void tomahawk_get_pens( running_machine &machine, pen_t *pens )
}
-static WRITE8_HANDLER( astrof_videoram_w )
+WRITE8_MEMBER(astrof_state::astrof_videoram_w)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
- state->m_videoram[offset] = data;
- state->m_colorram[offset >> 1] = *state->m_astrof_color & 0x0e;
+ m_videoram[offset] = data;
+ m_colorram[offset >> 1] = *m_astrof_color & 0x0e;
}
-static WRITE8_HANDLER( tomahawk_videoram_w )
+WRITE8_MEMBER(astrof_state::tomahawk_videoram_w)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
- state->m_videoram[offset] = data;
- state->m_colorram[offset >> 1] = (*state->m_astrof_color & 0x0e) | ((*state->m_astrof_color & 0x01) << 4);
+ m_videoram[offset] = data;
+ m_colorram[offset >> 1] = (*m_astrof_color & 0x0e) | ((*m_astrof_color & 0x01) << 4);
}
-static WRITE8_HANDLER( video_control_1_w )
+WRITE8_MEMBER(astrof_state::video_control_1_w)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
- state->m_flipscreen = ((data >> 0) & 0x01) & input_port_read(space->machine(), "CAB");
+ m_flipscreen = ((data >> 0) & 0x01) & input_port_read(machine(), "CAB");
/* this ties to the CLR pin of the shift registers */
- state->m_screen_off = (data & 0x02) ? TRUE : FALSE;
+ m_screen_off = (data & 0x02) ? TRUE : FALSE;
/* D2 - not connected in the schematics, but at one point Astro Fighter sets it to 1 */
/* D3-D7 - not connected */
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
}
@@ -330,10 +326,10 @@ static void astrof_set_video_control_2( running_machine &machine, UINT8 data )
/* D4-D7 - not connected */
}
-static WRITE8_HANDLER( astrof_video_control_2_w )
+WRITE8_MEMBER(astrof_state::astrof_video_control_2_w)
{
- astrof_set_video_control_2(space->machine(), data);
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
+ astrof_set_video_control_2(machine(), data);
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
}
@@ -350,10 +346,10 @@ static void spfghmk2_set_video_control_2( running_machine &machine, UINT8 data )
/* D3-D7 - not connected */
}
-static WRITE8_HANDLER( spfghmk2_video_control_2_w )
+WRITE8_MEMBER(astrof_state::spfghmk2_video_control_2_w)
{
- spfghmk2_set_video_control_2(space->machine(), data);
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
+ spfghmk2_set_video_control_2(machine(), data);
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
}
@@ -369,10 +365,10 @@ static void tomahawk_set_video_control_2( running_machine &machine, UINT8 data )
state->m_red_on = (data & 0x08) ? TRUE : FALSE;
}
-static WRITE8_HANDLER( tomahawk_video_control_2_w )
+WRITE8_MEMBER(astrof_state::tomahawk_video_control_2_w)
{
- tomahawk_set_video_control_2(space->machine(), data);
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
+ tomahawk_set_video_control_2(machine(), data);
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
}
@@ -452,37 +448,34 @@ static SCREEN_UPDATE_RGB32( tomahawk )
*
*************************************/
-static READ8_HANDLER( shoot_r )
+READ8_MEMBER(astrof_state::shoot_r)
{
/* not really sure about this */
- return space->machine().rand() & 8;
+ return machine().rand() & 8;
}
-static READ8_HANDLER( abattle_coin_prot_r )
+READ8_MEMBER(astrof_state::abattle_coin_prot_r)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
- state->m_abattle_count = (state->m_abattle_count + 1) % 0x0101;
- return state->m_abattle_count ? 0x07 : 0x00;
+ m_abattle_count = (m_abattle_count + 1) % 0x0101;
+ return m_abattle_count ? 0x07 : 0x00;
}
-static READ8_HANDLER( afire_coin_prot_r )
+READ8_MEMBER(astrof_state::afire_coin_prot_r)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
- state->m_abattle_count = state->m_abattle_count ^ 0x01;
- return state->m_abattle_count ? 0x07 : 0x00;
+ m_abattle_count = m_abattle_count ^ 0x01;
+ return m_abattle_count ? 0x07 : 0x00;
}
-static READ8_HANDLER( tomahawk_protection_r )
+READ8_MEMBER(astrof_state::tomahawk_protection_r)
{
- astrof_state *state = space->machine().driver_data<astrof_state>();
/* flip the byte */
- return BITSWAP8(*state->m_tomahawk_protection, 0, 1, 2, 3, 4, 5, 6, 7);
+ return BITSWAP8(*m_tomahawk_protection, 0, 1, 2, 3, 4, 5, 6, 7);
}
@@ -587,17 +580,17 @@ static MACHINE_RESET( abattle )
static ADDRESS_MAP_START( astrof_map, AS_PROGRAM, 8, astrof_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_NOP
- AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE_LEGACY(astrof_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
+ AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(astrof_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x6000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x8002) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0x8003, 0x8003) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITEONLY AM_BASE(m_astrof_color)
- AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(video_control_1_w)
- AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(astrof_video_control_2_w)
+ AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE(video_control_1_w)
+ AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE(astrof_video_control_2_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(astrof_audio_1_w)
AM_RANGE(0x8007, 0x8007) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(astrof_audio_2_w)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READ_PORT("IN") AM_WRITENOP
AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READ_PORT("DSW") AM_WRITENOP
- AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READ_LEGACY(irq_clear_r) AM_WRITENOP
+ AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READ(irq_clear_r) AM_WRITENOP
AM_RANGE(0xa003, 0xa007) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -606,17 +599,17 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spfghmk2_map, AS_PROGRAM, 8, astrof_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_NOP
- AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE_LEGACY(astrof_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
+ AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(astrof_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x6000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x8002) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0x8003, 0x8003) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITEONLY AM_BASE(m_astrof_color)
- AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(video_control_1_w)
- AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(spfghmk2_video_control_2_w)
+ AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE(video_control_1_w)
+ AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE(spfghmk2_video_control_2_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(spfghmk2_audio_w)
AM_RANGE(0x8007, 0x8007) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READ_PORT("IN") AM_WRITENOP
AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READ_PORT("DSW") AM_WRITENOP
- AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READ_LEGACY(irq_clear_r) AM_WRITENOP
+ AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READ(irq_clear_r) AM_WRITENOP
AM_RANGE(0xa003, 0xa007) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -625,18 +618,18 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tomahawk_map, AS_PROGRAM, 8, astrof_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_NOP
- AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE_LEGACY(tomahawk_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
+ AM_RANGE(0x4000, 0x5fff) AM_RAM_WRITE(tomahawk_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x6000, 0x7fff) AM_NOP
AM_RANGE(0x8000, 0x8002) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0x8003, 0x8003) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITEONLY AM_BASE(m_astrof_color)
- AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(video_control_1_w)
- AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(tomahawk_video_control_2_w)
+ AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE(video_control_1_w)
+ AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE(tomahawk_video_control_2_w)
AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITE_LEGACY(tomahawk_audio_w)
AM_RANGE(0x8007, 0x8007) AM_MIRROR(0x1ff8) AM_READNOP AM_WRITEONLY AM_BASE(m_tomahawk_protection)
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x1ff8) AM_READ_PORT("IN") AM_WRITENOP
AM_RANGE(0xa001, 0xa001) AM_MIRROR(0x1ff8) AM_READ_PORT("DSW") AM_WRITENOP
- AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READ_LEGACY(irq_clear_r) AM_WRITENOP
- AM_RANGE(0xa003, 0xa003) AM_MIRROR(0x1ff8) AM_READ_LEGACY(tomahawk_protection_r) AM_WRITENOP
+ AM_RANGE(0xa002, 0xa002) AM_MIRROR(0x1ff8) AM_READ(irq_clear_r) AM_WRITENOP
+ AM_RANGE(0xa003, 0xa003) AM_MIRROR(0x1ff8) AM_READ(tomahawk_protection_r) AM_WRITENOP
AM_RANGE(0xa004, 0xa007) AM_MIRROR(0x1ff8) AM_NOP
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -1307,8 +1300,9 @@ static DRIVER_INIT( abattle )
rom[i] = prom[rom[i]];
/* set up protection handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xa003, 0xa003, FUNC(shoot_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xa004, 0xa004, FUNC(abattle_coin_prot_r));
+ astrof_state *state = machine.driver_data<astrof_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),state));
}
@@ -1321,8 +1315,9 @@ static DRIVER_INIT( afire )
rom[i] = ~rom[i];
/* set up protection handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xa003, 0xa003, FUNC(shoot_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xa004, 0xa004, FUNC(afire_coin_prot_r));
+ astrof_state *state = machine.driver_data<astrof_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::afire_coin_prot_r),state));
}
@@ -1335,8 +1330,9 @@ static DRIVER_INIT( sstarbtl )
rom[i] = ~rom[i];
/* set up protection handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xa003, 0xa003, FUNC(shoot_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xa004, 0xa004, FUNC(abattle_coin_prot_r));
+ astrof_state *state = machine.driver_data<astrof_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xa003, 0xa003, read8_delegate(FUNC(astrof_state::shoot_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xa004, 0xa004, read8_delegate(FUNC(astrof_state::abattle_coin_prot_r),state));
}
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index 187d38217b9..ae6459c3b39 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -247,9 +247,9 @@ static INTERRUPT_GEN( cadash_interrupt )
SOUND
************************************************/
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(asuka_state::sound_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
static WRITE8_DEVICE_HANDLER( sound_bankswitch_2151_w )
@@ -276,10 +276,9 @@ static void asuka_msm5205_vck( device_t *device )
}
}
-static WRITE8_HANDLER( asuka_msm5205_address_w )
+WRITE8_MEMBER(asuka_state::asuka_msm5205_address_w)
{
- asuka_state *state = space->machine().driver_data<asuka_state>();
- state->m_adpcm_pos = (state->m_adpcm_pos & 0x00ff) | (data << 8);
+ m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8);
}
static WRITE8_DEVICE_HANDLER( asuka_msm5205_start_w )
@@ -296,12 +295,12 @@ static WRITE8_DEVICE_HANDLER( asuka_msm5205_stop_w )
static UINT8 *cadash_shared_ram;
-static READ16_HANDLER( cadash_share_r )
+READ16_MEMBER(asuka_state::cadash_share_r)
{
return cadash_shared_ram[offset];
}
-static WRITE16_HANDLER( cadash_share_w )
+WRITE16_MEMBER(asuka_state::cadash_share_w)
{
cadash_shared_ram[offset] = data & 0xff;
}
@@ -352,7 +351,7 @@ static ADDRESS_MAP_START( cadash_map, AS_PROGRAM, 16, asuka_state )
AM_RANGE(0x0c0000, 0x0c0001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
AM_RANGE(0x0c0002, 0x0c0003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x100000, 0x107fff) AM_RAM
- AM_RANGE(0x800000, 0x800fff) AM_READWRITE_LEGACY(cadash_share_r,cadash_share_w) /* network ram */
+ AM_RANGE(0x800000, 0x800fff) AM_READWRITE(cadash_share_r,cadash_share_w) /* network ram */
AM_RANGE(0x900000, 0x90000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_4bpg_word_w)
AM_RANGE(0xb00000, 0xb03fff) AM_DEVREADWRITE_LEGACY("pc090oj", pc090oj_word_r, pc090oj_word_w) /* sprite ram */
@@ -389,7 +388,7 @@ static ADDRESS_MAP_START( bonzeadv_z80_map, AS_PROGRAM, 8, asuka_state )
AM_RANGE(0xe600, 0xe600) AM_WRITENOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP
AM_RANGE(0xf000, 0xf000) AM_WRITENOP
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, asuka_state )
@@ -400,7 +399,7 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, asuka_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, 0xb000) AM_WRITE_LEGACY(asuka_msm5205_address_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)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c
index 6c3323ef553..ae790f480a6 100644
--- a/src/mame/drivers/atetris.c
+++ b/src/mame/drivers/atetris.c
@@ -82,9 +82,9 @@ static TIMER_CALLBACK( interrupt_gen )
}
-static WRITE8_HANDLER( irq_ack_w )
+WRITE8_MEMBER(atetris_state::irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -138,17 +138,16 @@ static MACHINE_RESET( atetris )
*
*************************************/
-static READ8_HANDLER( atetris_slapstic_r )
+READ8_MEMBER(atetris_state::atetris_slapstic_r)
{
- atetris_state *state = space->machine().driver_data<atetris_state>();
- int result = state->m_slapstic_base[0x2000 + offset];
- int new_bank = slapstic_tweak(space, offset) & 1;
+ int result = m_slapstic_base[0x2000 + offset];
+ int new_bank = slapstic_tweak(&space, offset) & 1;
/* update for the new bank */
- if (new_bank != state->m_current_bank)
+ if (new_bank != m_current_bank)
{
- state->m_current_bank = new_bank;
- memcpy(state->m_slapstic_base, &state->m_slapstic_source[state->m_current_bank * 0x4000], 0x4000);
+ m_current_bank = new_bank;
+ memcpy(m_slapstic_base, &m_slapstic_source[m_current_bank * 0x4000], 0x4000);
}
return result;
}
@@ -161,10 +160,10 @@ static READ8_HANDLER( atetris_slapstic_r )
*
*************************************/
-static WRITE8_HANDLER( coincount_w )
+WRITE8_MEMBER(atetris_state::coincount_w)
{
- coin_counter_w(space->machine(), 0, (data >> 5) & 1);
- coin_counter_w(space->machine(), 1, (data >> 4) & 1);
+ coin_counter_w(machine(), 0, (data >> 5) & 1);
+ coin_counter_w(machine(), 1, (data >> 4) & 1);
}
@@ -175,21 +174,19 @@ static WRITE8_HANDLER( coincount_w )
*
*************************************/
-static WRITE8_HANDLER( nvram_w )
+WRITE8_MEMBER(atetris_state::nvram_w)
{
- atetris_state *state = space->machine().driver_data<atetris_state>();
- if (state->m_nvram_write_enable)
- state->m_nvram[offset] = data;
- state->m_nvram_write_enable = 0;
+ if (m_nvram_write_enable)
+ m_nvram[offset] = data;
+ m_nvram_write_enable = 0;
}
-static WRITE8_HANDLER( nvram_enable_w )
+WRITE8_MEMBER(atetris_state::nvram_enable_w)
{
- atetris_state *state = space->machine().driver_data<atetris_state>();
- state->m_nvram_write_enable = 1;
+ m_nvram_write_enable = 1;
}
@@ -205,15 +202,15 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, atetris_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE_LEGACY(atetris_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x2000, 0x20ff) AM_MIRROR(0x0300) AM_RAM_WRITE_LEGACY(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE_LEGACY(nvram_w) AM_SHARE("nvram")
+ AM_RANGE(0x2400, 0x25ff) AM_MIRROR(0x0200) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
AM_RANGE(0x2800, 0x280f) AM_MIRROR(0x03e0) AM_DEVREADWRITE_LEGACY("pokey1", pokey_r, pokey_w)
AM_RANGE(0x2810, 0x281f) AM_MIRROR(0x03e0) AM_DEVREADWRITE_LEGACY("pokey2", pokey_r, pokey_w)
AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(nvram_enable_w)
- AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(coincount_w)
+ AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_WRITE(nvram_enable_w)
+ AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x03ff) AM_WRITE(irq_ack_w)
+ AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_WRITE(coincount_w)
AM_RANGE(0x4000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x7fff) AM_READ_LEGACY(atetris_slapstic_r)
+ AM_RANGE(0x6000, 0x7fff) AM_READ(atetris_slapstic_r)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -222,18 +219,18 @@ static ADDRESS_MAP_START( atetrisb2_map, AS_PROGRAM, 8, atetris_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE_LEGACY(atetris_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE_LEGACY(paletteram_RRRGGGBB_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE_LEGACY(nvram_w) AM_SHARE("nvram")
+ AM_RANGE(0x2400, 0x25ff) AM_RAM_WRITE(nvram_w) AM_SHARE("nvram")
AM_RANGE(0x2802, 0x2802) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0x2804, 0x2804) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
AM_RANGE(0x2806, 0x2806) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
AM_RANGE(0x2808, 0x2808) AM_READ_PORT("IN0")
AM_RANGE(0x2818, 0x2818) AM_READ_PORT("IN1")
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x3400, 0x3400) AM_WRITE_LEGACY(nvram_enable_w)
- AM_RANGE(0x3800, 0x3800) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITE_LEGACY(coincount_w)
+ AM_RANGE(0x3400, 0x3400) AM_WRITE(nvram_enable_w)
+ AM_RANGE(0x3800, 0x3800) AM_WRITE(irq_ack_w)
+ AM_RANGE(0x3c00, 0x3c00) AM_WRITE(coincount_w)
AM_RANGE(0x4000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x7fff) AM_READ_LEGACY(atetris_slapstic_r)
+ AM_RANGE(0x6000, 0x7fff) AM_READ(atetris_slapstic_r)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c
index efec6cf57c1..1763d0105f2 100644
--- a/src/mame/drivers/avalnche.c
+++ b/src/mame/drivers/avalnche.c
@@ -83,31 +83,30 @@ static SCREEN_UPDATE_RGB32( avalnche )
*
*************************************/
-static WRITE8_HANDLER( avalance_video_invert_w )
+WRITE8_MEMBER(avalnche_state::avalance_video_invert_w)
{
- avalnche_state *state = space->machine().driver_data<avalnche_state>();
- state->m_avalance_video_inverted = data & 0x01;
+ m_avalance_video_inverted = data & 0x01;
}
-static WRITE8_HANDLER( catch_coin_counter_w )
+WRITE8_MEMBER(avalnche_state::catch_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
-static WRITE8_HANDLER( avalance_credit_1_lamp_w )
+WRITE8_MEMBER(avalnche_state::avalance_credit_1_lamp_w)
{
- set_led_status(space->machine(), 0, data & 1);
+ set_led_status(machine(), 0, data & 1);
}
-static WRITE8_HANDLER( avalance_credit_2_lamp_w )
+WRITE8_MEMBER(avalnche_state::avalance_credit_2_lamp_w)
{
- set_led_status(space->machine(), 1, data & 1);
+ set_led_status(machine(), 1, data & 1);
}
-static WRITE8_HANDLER( avalance_start_lamp_w )
+WRITE8_MEMBER(avalnche_state::avalance_start_lamp_w)
{
- set_led_status(space->machine(), 2, data & 1);
+ set_led_status(machine(), 2, data & 1);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, avalnche_state )
@@ -118,12 +117,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, avalnche_state )
AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x0ffc) AM_READ_PORT("PADDLE")
AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READNOP
AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_credit_1_lamp_w)
+ AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w)
AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE_LEGACY("discrete", avalnche_attract_enable_w)
- AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_video_invert_w)
- AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_credit_2_lamp_w)
+ AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE(avalance_video_invert_w)
+ AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_2_lamp_w)
AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_DEVWRITE_LEGACY("discrete", avalnche_audio_w)
- AM_RANGE(0x4007, 0x4007) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_start_lamp_w)
+ AM_RANGE(0x4007, 0x4007) AM_MIRROR(0x0ff8) AM_WRITE(avalance_start_lamp_w)
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_DEVWRITE_LEGACY("discrete", avalnche_noise_amplitude_w)
AM_RANGE(0x6000, 0x7fff) AM_ROM
ADDRESS_MAP_END
@@ -136,13 +135,13 @@ static ADDRESS_MAP_START( catch_map, AS_PROGRAM, 8, avalnche_state )
AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x0ffc) AM_READ_PORT("PADDLE")
AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x0ffc) AM_READNOP
AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0fff) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_credit_1_lamp_w)
+ AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_1_lamp_w)
// AM_RANGE(0x4001, 0x4001) AM_MIRROR(0x0ff8) AM_DEVWRITE_LEGACY("discrete", avalnche_attract_enable_w) /* It is attract_enable just like avalnche, but not hooked up yet. */
- AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_video_invert_w)
- AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_credit_2_lamp_w)
+ AM_RANGE(0x4002, 0x4002) AM_MIRROR(0x0ff8) AM_WRITE(avalance_video_invert_w)
+ AM_RANGE(0x4003, 0x4003) AM_MIRROR(0x0ff8) AM_WRITE(avalance_credit_2_lamp_w)
AM_RANGE(0x4004, 0x4006) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(catch_audio_w)
- AM_RANGE(0x4007, 0x4007) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(avalance_start_lamp_w)
- AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_WRITE_LEGACY(catch_coin_counter_w)
+ AM_RANGE(0x4007, 0x4007) AM_MIRROR(0x0ff8) AM_WRITE(avalance_start_lamp_w)
+ AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_WRITE(catch_coin_counter_w)
AM_RANGE(0x7000, 0x7fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c
index 360cf767127..020a3a9370c 100644
--- a/src/mame/drivers/aztarac.c
+++ b/src/mame/drivers/aztarac.c
@@ -48,10 +48,9 @@ static MACHINE_RESET( aztarac )
*
*************************************/
-static READ16_HANDLER( nvram_r )
+READ16_MEMBER(aztarac_state::nvram_r)
{
- aztarac_state *state = space->machine().driver_data<aztarac_state>();
- return state->m_nvram[offset] | 0xfff0;
+ return m_nvram[offset] | 0xfff0;
}
@@ -62,10 +61,10 @@ static READ16_HANDLER( nvram_r )
*
*************************************/
-static READ16_HANDLER( joystick_r )
+READ16_MEMBER(aztarac_state::joystick_r)
{
- return (((input_port_read(space->machine(), "STICKZ") - 0xf) << 8) |
- ((input_port_read(space->machine(), "STICKY") - 0xf) & 0xff));
+ return (((input_port_read(machine(), "STICKZ") - 0xf) << 8) |
+ ((input_port_read(machine(), "STICKY") - 0xf) & 0xff));
}
@@ -78,8 +77,8 @@ static READ16_HANDLER( joystick_r )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, aztarac_state )
AM_RANGE(0x000000, 0x00bfff) AM_ROM
- AM_RANGE(0x022000, 0x0220ff) AM_READ_LEGACY(nvram_r) AM_WRITEONLY AM_SHARE("nvram")
- AM_RANGE(0x027000, 0x027001) AM_READ_LEGACY(joystick_r)
+ AM_RANGE(0x022000, 0x0220ff) AM_READ(nvram_r) AM_WRITEONLY AM_SHARE("nvram")
+ AM_RANGE(0x027000, 0x027001) AM_READ(joystick_r)
AM_RANGE(0x027004, 0x027005) AM_READ_PORT("INPUTS")
AM_RANGE(0x027008, 0x027009) AM_READWRITE_LEGACY(aztarac_sound_r, aztarac_sound_w)
AM_RANGE(0x02700c, 0x02700d) AM_READ_PORT("DIAL")
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index 8c26014d631..4f8ad08633b 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -97,16 +97,15 @@ static WRITE8_DEVICE_HANDLER( bagman_ls259_w )
}
}
-static WRITE8_HANDLER( bagman_coin_counter_w )
+WRITE8_MEMBER(bagman_state::bagman_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(bagman_state::irq_mask_w)
{
- bagman_state *state = space->machine().driver_data<bagman_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bagman_state )
@@ -117,7 +116,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bagman_state )
AM_RANGE(0x9c00, 0x9fff) AM_WRITENOP /* written to, but unused */
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(bagman_pal16r6_r)
//AM_RANGE(0xa800, 0xa805) AM_READ_LEGACY(bagman_ls259_r) /*just for debugging purposes*/
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITE_LEGACY(bagman_flipscreen_w)
AM_RANGE(0xa003, 0xa003) AM_WRITEONLY AM_BASE(m_video_enable)
AM_RANGE(0xc000, 0xffff) AM_ROM /* Super Bagman only */
@@ -125,7 +124,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bagman_state )
/* 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(0xa004, 0xa004) AM_WRITE_LEGACY(bagman_coin_counter_w)
+ 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 */
@@ -147,10 +146,10 @@ static ADDRESS_MAP_START( pickin_map, AS_PROGRAM, 8, bagman_state )
/* here only to initialize the pointer, */
/* writes are handled by bagman_colorram_w */
AM_RANGE(0x9c00, 0x9fff) AM_WRITENOP /* written to, but unused */
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITE_LEGACY(bagman_flipscreen_w)
AM_RANGE(0xa003, 0xa003) AM_WRITEONLY AM_BASE(m_video_enable)
- AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(bagman_coin_counter_w)
+ AM_RANGE(0xa004, 0xa004) AM_WRITE(bagman_coin_counter_w)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("DSW")
diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c
index 13740ed678f..7b156cf2e71 100644
--- a/src/mame/drivers/baraduke.c
+++ b/src/mame/drivers/baraduke.c
@@ -112,52 +112,50 @@ DIP locations verified for:
#include "includes/baraduke.h"
-static WRITE8_HANDLER( inputport_select_w )
+WRITE8_MEMBER(baraduke_state::inputport_select_w)
{
- baraduke_state *state = space->machine().driver_data<baraduke_state>();
if ((data & 0xe0) == 0x60)
- state->m_inputport_selected = data & 0x07;
+ m_inputport_selected = data & 0x07;
else if ((data & 0xe0) == 0xc0)
{
- coin_lockout_global_w(space->machine(), ~data & 1);
- coin_counter_w(space->machine(), 0,data & 2);
- coin_counter_w(space->machine(), 1,data & 4);
+ coin_lockout_global_w(machine(), ~data & 1);
+ coin_counter_w(machine(), 0,data & 2);
+ coin_counter_w(machine(), 1,data & 4);
}
}
-static READ8_HANDLER( inputport_r )
+READ8_MEMBER(baraduke_state::inputport_r)
{
- baraduke_state *state = space->machine().driver_data<baraduke_state>();
- switch (state->m_inputport_selected)
+ switch (m_inputport_selected)
{
case 0x00: /* DSW A (bits 0-4) */
- return (input_port_read(space->machine(), "DSWA") & 0xf8) >> 3;
+ return (input_port_read(machine(), "DSWA") & 0xf8) >> 3;
case 0x01: /* DSW A (bits 5-7), DSW B (bits 0-1) */
- return ((input_port_read(space->machine(), "DSWA") & 0x07) << 2) | ((input_port_read(space->machine(), "DSWB") & 0xc0) >> 6);
+ return ((input_port_read(machine(), "DSWA") & 0x07) << 2) | ((input_port_read(machine(), "DSWB") & 0xc0) >> 6);
case 0x02: /* DSW B (bits 2-6) */
- return (input_port_read(space->machine(), "DSWB") & 0x3e) >> 1;
+ return (input_port_read(machine(), "DSWB") & 0x3e) >> 1;
case 0x03: /* DSW B (bit 7), DSW C (bits 0-3) */
- return ((input_port_read(space->machine(), "DSWB") & 0x01) << 4) | (input_port_read(space->machine(), "EDGE") & 0x0f);
+ return ((input_port_read(machine(), "DSWB") & 0x01) << 4) | (input_port_read(machine(), "EDGE") & 0x0f);
case 0x04: /* coins, start */
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x05: /* 2P controls */
- return input_port_read(space->machine(), "IN2");
+ return input_port_read(machine(), "IN2");
case 0x06: /* 1P controls */
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
default:
return 0xff;
}
}
-static WRITE8_HANDLER( baraduke_lamps_w )
+WRITE8_MEMBER(baraduke_state::baraduke_lamps_w)
{
- set_led_status(space->machine(), 0,data & 0x08);
- set_led_status(space->machine(), 1,data & 0x10);
+ set_led_status(machine(), 0,data & 0x08);
+ set_led_status(machine(), 1,data & 0x10);
}
-static WRITE8_HANDLER( baraduke_irq_ack_w )
+WRITE8_MEMBER(baraduke_state::baraduke_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -168,23 +166,22 @@ static ADDRESS_MAP_START( baraduke_map, AS_PROGRAM, 8, baraduke_state )
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE_LEGACY("namco", namcos1_cus30_r,namcos1_cus30_w) /* PSG device, shared RAM */
AM_RANGE(0x4800, 0x4fff) AM_READWRITE_LEGACY(baraduke_textram_r,baraduke_textram_w) AM_BASE(m_textram)/* video RAM (text layer) */
AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
- AM_RANGE(0x8800, 0x8800) AM_WRITE_LEGACY(baraduke_irq_ack_w) /* irq acknowledge */
+ AM_RANGE(0x8800, 0x8800) AM_WRITE(baraduke_irq_ack_w) /* irq acknowledge */
AM_RANGE(0xb000, 0xb002) AM_WRITE_LEGACY(baraduke_scroll0_w) /* scroll (layer 0) */
AM_RANGE(0xb004, 0xb006) AM_WRITE_LEGACY(baraduke_scroll1_w) /* scroll (layer 1) */
AM_RANGE(0x6000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static READ8_HANDLER( soundkludge_r )
+READ8_MEMBER(baraduke_state::soundkludge_r)
{
- baraduke_state *state = space->machine().driver_data<baraduke_state>();
- return ((state->m_counter++) >> 4) & 0xff;
+ return ((m_counter++) >> 4) & 0xff;
}
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, baraduke_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE_LEGACY(m6801_io_r,m6801_io_w)/* internal registers */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */
- AM_RANGE(0x1105, 0x1105) AM_READ_LEGACY(soundkludge_r) /* cures speech */
+ AM_RANGE(0x1105, 0x1105) AM_READ(soundkludge_r) /* cures speech */
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE_LEGACY("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
AM_RANGE(0x8000, 0xbfff) AM_ROM /* MCU external ROM */
AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* watchdog reset? */
@@ -194,16 +191,16 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, baraduke_state )
ADDRESS_MAP_END
-static READ8_HANDLER( readFF )
+READ8_MEMBER(baraduke_state::readFF)
{
return 0xff;
}
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, baraduke_state )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_LEGACY(inputport_r) /* input ports read */
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE_LEGACY(inputport_select_w) /* input port select */
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ_LEGACY(readFF) /* leds won't work otherwise */
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE_LEGACY(baraduke_lamps_w) /* lamps */
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(inputport_r) /* input ports read */
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(inputport_select_w) /* input port select */
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE(baraduke_lamps_w) /* lamps */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c
index e7e969922ca..6e5edfbc66e 100644
--- a/src/mame/drivers/battlane.c
+++ b/src/mame/drivers/battlane.c
@@ -20,11 +20,10 @@
*
*************************************/
-static WRITE8_HANDLER( battlane_cpu_command_w )
+WRITE8_MEMBER(battlane_state::battlane_cpu_command_w)
{
- battlane_state *state = space->machine().driver_data<battlane_state>();
- state->m_cpu_control = data;
+ m_cpu_control = data;
/*
CPU control register
@@ -36,7 +35,7 @@ static WRITE8_HANDLER( battlane_cpu_command_w )
0x01 = Y Scroll MSB
*/
- flip_screen_set(space->machine(), data & 0x80);
+ flip_screen_set(machine(), data & 0x80);
/*
I think that the NMI is an inhibitor. It is constantly set
@@ -47,10 +46,10 @@ static WRITE8_HANDLER( battlane_cpu_command_w )
*/
/*
- if (~state->m_cpu_control & 0x08)
+ if (~m_cpu_control & 0x08)
{
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
- device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
}
*/
@@ -58,7 +57,7 @@ static WRITE8_HANDLER( battlane_cpu_command_w )
CPU2's SWI will trigger an 6809 IRQ on the master by resetting 0x04
Master will respond by setting the bit back again
*/
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, data & 0x04 ? CLEAR_LINE : HOLD_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, data & 0x04 ? CLEAR_LINE : HOLD_LINE);
/*
Slave function call (e.g. ROM test):
@@ -76,7 +75,7 @@ static WRITE8_HANDLER( battlane_cpu_command_w )
FA96: 27 FA BEQ $FA92 ; Wait for bit to be set
*/
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, data & 0x02 ? CLEAR_LINE : HOLD_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, data & 0x02 ? CLEAR_LINE : HOLD_LINE);
}
static INTERRUPT_GEN( battlane_cpu1_interrupt )
@@ -105,7 +104,7 @@ static ADDRESS_MAP_START( battlane_map, AS_PROGRAM, 8, battlane_state )
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("P1") AM_WRITE_LEGACY(battlane_video_ctrl_w)
AM_RANGE(0x1c01, 0x1c01) AM_READ_PORT("P2") AM_WRITE_LEGACY(battlane_scrollx_w)
AM_RANGE(0x1c02, 0x1c02) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(battlane_scrolly_w)
- AM_RANGE(0x1c03, 0x1c03) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(battlane_cpu_command_w)
+ AM_RANGE(0x1c03, 0x1c03) AM_READ_PORT("DSW2") AM_WRITE(battlane_cpu_command_w)
AM_RANGE(0x1c04, 0x1c05) AM_DEVREADWRITE_LEGACY("ymsnd", ym3526_r, ym3526_w)
AM_RANGE(0x1e00, 0x1e3f) AM_WRITE_LEGACY(battlane_palette_w)
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE_LEGACY(battlane_bitmap_w) AM_SHARE("share4")
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index 17907a74df0..5e430a92442 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -31,33 +31,31 @@
/******************************************************************************/
-static WRITE8_HANDLER( battlera_sound_w )
+WRITE8_MEMBER(battlera_state::battlera_sound_w)
{
if (offset == 0)
{
soundlatch_w(space,0,data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
}
/******************************************************************************/
-static WRITE8_HANDLER( control_data_w )
+WRITE8_MEMBER(battlera_state::control_data_w)
{
- battlera_state *state = space->machine().driver_data<battlera_state>();
- state->m_control_port_select=data;
+ m_control_port_select=data;
}
-static READ8_HANDLER( control_data_r )
+READ8_MEMBER(battlera_state::control_data_r)
{
- battlera_state *state = space->machine().driver_data<battlera_state>();
- switch (state->m_control_port_select)
+ switch (m_control_port_select)
{
- case 0xfe: return input_port_read(space->machine(), "IN0"); /* Player 1 */
- case 0xfd: return input_port_read(space->machine(), "IN1"); /* Player 2 */
- case 0xfb: return input_port_read(space->machine(), "IN2"); /* Coins */
- case 0xf7: return input_port_read(space->machine(), "DSW2"); /* Dip 2 */
- case 0xef: return input_port_read(space->machine(), "DSW1"); /* Dip 1 */
+ case 0xfe: return input_port_read(machine(), "IN0"); /* Player 1 */
+ case 0xfd: return input_port_read(machine(), "IN1"); /* Player 2 */
+ case 0xfb: return input_port_read(machine(), "IN2"); /* Coins */
+ case 0xf7: return input_port_read(machine(), "DSW2"); /* Dip 2 */
+ case 0xef: return input_port_read(machine(), "DSW1"); /* Dip 1 */
}
return 0xff;
@@ -68,12 +66,12 @@ static READ8_HANDLER( control_data_r )
static ADDRESS_MAP_START( battlera_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_READWRITE_LEGACY(HuC6270_debug_r, HuC6270_debug_w) /* Cheat to edit vram data */
- AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE_LEGACY(battlera_sound_w)
+ AM_RANGE(0x1e0800, 0x1e0801) AM_WRITE(battlera_sound_w)
AM_RANGE(0x1e1000, 0x1e13ff) AM_WRITE_LEGACY(battlera_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* Main ram */
AM_RANGE(0x1fe000, 0x1fe001) AM_READWRITE_LEGACY(HuC6270_register_r, HuC6270_register_w)
AM_RANGE(0x1fe002, 0x1fe003) AM_WRITE_LEGACY(HuC6270_data_w)
- AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE_LEGACY(control_data_r, control_data_w)
+ AM_RANGE(0x1ff000, 0x1ff001) AM_READWRITE(control_data_r, control_data_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
ADDRESS_MAP_END
@@ -97,10 +95,9 @@ static void battlera_adpcm_int(device_t *device)
cputag_set_input_line(device->machine(), "audiocpu", 1, HOLD_LINE);
}
-static WRITE8_HANDLER( battlera_adpcm_data_w )
+WRITE8_MEMBER(battlera_state::battlera_adpcm_data_w)
{
- battlera_state *state = space->machine().driver_data<battlera_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
static WRITE8_DEVICE_HANDLER( battlera_adpcm_reset_w )
@@ -111,7 +108,7 @@ static WRITE8_DEVICE_HANDLER( battlera_adpcm_reset_w )
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, battlera_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM
AM_RANGE(0x040000, 0x040001) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w)
- AM_RANGE(0x080000, 0x080001) AM_WRITE_LEGACY(battlera_adpcm_data_w)
+ 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_LEGACY(soundlatch_r) AM_DEVWRITE_LEGACY("msm", battlera_adpcm_reset_w)
diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c
index 4106586157d..5df3ab46a9f 100644
--- a/src/mame/drivers/battlnts.c
+++ b/src/mame/drivers/battlnts.c
@@ -32,20 +32,19 @@ static INTERRUPT_GEN( battlnts_interrupt )
device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( battlnts_sh_irqtrigger_w )
+WRITE8_MEMBER(battlnts_state::battlnts_sh_irqtrigger_w)
{
- battlnts_state *state = space->machine().driver_data<battlnts_state>();
- 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);
}
-static WRITE8_HANDLER( battlnts_bankswitch_w )
+WRITE8_MEMBER(battlnts_state::battlnts_bankswitch_w)
{
/* bits 6 & 7 = bank number */
- memory_set_bank(space->machine(), "bank1", (data & 0xc0) >> 6);
+ memory_set_bank(machine(), "bank1", (data & 0xc0) >> 6);
/* bits 4 & 5 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x10);
- coin_counter_w(space->machine(), 1, data & 0x20);
+ coin_counter_w(machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 1, data & 0x20);
/* other bits unknown */
}
@@ -68,11 +67,11 @@ static ADDRESS_MAP_START( battlnts_map, AS_PROGRAM, 8, battlnts_state )
AM_RANGE(0x2e02, 0x2e02) AM_READ_PORT("P1")
AM_RANGE(0x2e03, 0x2e03) AM_READ_PORT("DSW3") /* coinsw, testsw, startsw */
AM_RANGE(0x2e04, 0x2e04) AM_READ_PORT("DSW2")
- AM_RANGE(0x2e08, 0x2e08) AM_WRITE_LEGACY(battlnts_bankswitch_w) /* bankswitch control */
+ AM_RANGE(0x2e08, 0x2e08) AM_WRITE(battlnts_bankswitch_w) /* bankswitch control */
AM_RANGE(0x2e0c, 0x2e0c) AM_WRITE_LEGACY(battlnts_spritebank_w) /* sprite bank select */
AM_RANGE(0x2e10, 0x2e10) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x2e14, 0x2e14) AM_WRITE_LEGACY(soundlatch_w) /* sound code # */
- AM_RANGE(0x2e18, 0x2e18) AM_WRITE_LEGACY(battlnts_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x2e18, 0x2e18) AM_WRITE(battlnts_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM 777e02.bin */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index 95e3885cb76..1e0efe53430 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -237,85 +237,80 @@ Country :
/******************************************************************************/
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(bbusters_state::sound_status_r)
{
- bbusters_state *state = space->machine().driver_data<bbusters_state>();
- return state->m_sound_status;
+ return m_sound_status;
}
-static WRITE8_HANDLER( sound_status_w )
+WRITE8_MEMBER(bbusters_state::sound_status_w)
{
- bbusters_state *state = space->machine().driver_data<bbusters_state>();
- state->m_sound_status = data;
+ m_sound_status = data;
}
-static WRITE16_HANDLER( sound_cpu_w )
+WRITE16_MEMBER(bbusters_state::sound_cpu_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data&0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
/* Eprom is byte wide, top half of word _must_ be 0xff */
-static READ16_HANDLER( eprom_r )
+READ16_MEMBER(bbusters_state::eprom_r)
{
- bbusters_state *state = space->machine().driver_data<bbusters_state>();
- return (state->m_eprom_data[offset]&0xff) | 0xff00;
+ return (m_eprom_data[offset]&0xff) | 0xff00;
}
-static READ16_HANDLER( control_3_r )
+READ16_MEMBER(bbusters_state::control_3_r)
{
- bbusters_state *state = space->machine().driver_data<bbusters_state>();
static const char *const port[] = { "GUNX1", "GUNY1", "GUNX2", "GUNY2", "GUNX3", "GUNY3" };
- UINT16 retdata = input_port_read(space->machine(), port[state->m_gun_select]);
+ UINT16 retdata = input_port_read(machine(), port[m_gun_select]);
retdata >>=1; // by lowering the precision of the gun reading hardware the game seems to work better
return retdata;
}
-static WRITE16_HANDLER( gun_select_w )
+WRITE16_MEMBER(bbusters_state::gun_select_w)
{
- bbusters_state *state = space->machine().driver_data<bbusters_state>();
- logerror("%08x: gun r\n",cpu_get_pc(&space->device()));
+ logerror("%08x: gun r\n",cpu_get_pc(&space.device()));
- device_set_input_line(&space->device(), 2, HOLD_LINE);
+ device_set_input_line(&space.device(), 2, HOLD_LINE);
- state->m_gun_select = data & 0xff;
+ m_gun_select = data & 0xff;
}
-static WRITE16_HANDLER( two_gun_output_w )
+WRITE16_MEMBER(bbusters_state::two_gun_output_w)
{
output_set_value("Player1_Gun_Recoil",(data & 0x01));
output_set_value("Player2_Gun_Recoil",(data & 0x02)>>1);
}
-static WRITE16_HANDLER( three_gun_output_w )
+WRITE16_MEMBER(bbusters_state::three_gun_output_w)
{
output_set_value("Player1_Gun_Recoil",(data & 0x01));
output_set_value("Player2_Gun_Recoil",(data & 0x02)>>1);
output_set_value("Player3_Gun_Recoil",(data & 0x04)>>2);
}
-static READ16_HANDLER( kludge_r )
+READ16_MEMBER(bbusters_state::kludge_r)
{
// might latch the gun value?
return 0x0000;
}
-static READ16_HANDLER( mechatt_gun_r )
+READ16_MEMBER(bbusters_state::mechatt_gun_r)
{
int x, y;
- x = input_port_read(space->machine(), offset ? "GUNX2" : "GUNX1");
- y = input_port_read(space->machine(), offset ? "GUNY2" : "GUNY1");
+ x = input_port_read(machine(), offset ? "GUNX2" : "GUNX1");
+ y = input_port_read(machine(), offset ? "GUNY2" : "GUNY1");
/* Todo - does the hardware really clamp like this? */
x += 0x18;
@@ -346,13 +341,13 @@ static ADDRESS_MAP_START( bbusters_map, AS_PROGRAM, 16, bbusters_state )
AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("IN1") /* Player 3 */
AM_RANGE(0x0e0008, 0x0e0009) AM_READ_PORT("DSW1") /* Dip 1 */
AM_RANGE(0x0e000a, 0x0e000b) AM_READ_PORT("DSW2") /* Dip 2 */
- AM_RANGE(0x0e0018, 0x0e0019) AM_READ_LEGACY(sound_status_r)
- AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE_LEGACY(kludge_r, gun_select_w)
- AM_RANGE(0x0e8002, 0x0e8003) AM_READ_LEGACY(control_3_r)
+ AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_status_r)
+ AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(kludge_r, gun_select_w)
+ AM_RANGE(0x0e8002, 0x0e8003) AM_READ(control_3_r)
/* AM_RANGE(0x0f0008, 0x0f0009) AM_WRITENOP */
- AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE_LEGACY(three_gun_output_w)
- AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE_LEGACY(sound_cpu_w)
- AM_RANGE(0x0f8000, 0x0f80ff) AM_READ_LEGACY(eprom_r) AM_WRITEONLY AM_SHARE("eeprom") /* Eeprom */
+ AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(three_gun_output_w)
+ AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w)
+ AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) AM_WRITEONLY AM_SHARE("eeprom") /* Eeprom */
ADDRESS_MAP_END
/*******************************************************************************/
@@ -370,10 +365,10 @@ static ADDRESS_MAP_START( mechatt_map, AS_PROGRAM, 16, bbusters_state )
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0")
AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1")
- AM_RANGE(0x0e0004, 0x0e0007) AM_READ_LEGACY(mechatt_gun_r)
+ AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r)
/* AM_RANGE(0x0e4002, 0x0e4003) AM_WRITENOP Gun force feedback? */
- AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE_LEGACY(two_gun_output_w)
- AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE_LEGACY(sound_status_r, sound_cpu_w)
+ AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE(two_gun_output_w)
+ AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(sound_status_r, sound_cpu_w)
ADDRESS_MAP_END
/******************************************************************************/
@@ -381,7 +376,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bbusters_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(soundlatch_r, sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r) AM_WRITE(sound_status_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, bbusters_state )
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index 7f522fa86ce..823542f00a1 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -63,15 +63,14 @@ J1100072A
#include "includes/bigevglf.h"
-static WRITE8_HANDLER( beg_banking_w )
+WRITE8_MEMBER(bigevglf_state::beg_banking_w)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- state->m_beg_bank = data;
+ m_beg_bank = data;
/* d0-d3 connect to A11-A14 of the ROMs (via ls273 latch)
d4-d7 select one of ROMs (via ls273(above) and then ls154)
*/
- memory_set_bank(space->machine(), "bank1", state->m_beg_bank & 0xff); /* empty sockets for IC37-IC44 ROMS */
+ memory_set_bank(machine(), "bank1", m_beg_bank & 0xff); /* empty sockets for IC37-IC44 ROMS */
}
static TIMER_CALLBACK( from_sound_latch_callback )
@@ -80,35 +79,32 @@ static TIMER_CALLBACK( from_sound_latch_callback )
state->m_from_sound = param & 0xff;
state->m_sound_state |= 2;
}
-static WRITE8_HANDLER( beg_fromsound_w ) /* write to D800 sets bit 1 in status */
+WRITE8_MEMBER(bigevglf_state::beg_fromsound_w)/* write to D800 sets bit 1 in status */
{
- space->machine().scheduler().synchronize(FUNC(from_sound_latch_callback), (cpu_get_pc(&space->device()) << 16) | data);
+ machine().scheduler().synchronize(FUNC(from_sound_latch_callback), (cpu_get_pc(&space.device()) << 16) | data);
}
-static READ8_HANDLER( beg_fromsound_r )
+READ8_MEMBER(bigevglf_state::beg_fromsound_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
/* set a timer to force synchronization after the read */
- space->machine().scheduler().synchronize();
- return state->m_from_sound;
+ machine().scheduler().synchronize();
+ return m_from_sound;
}
-static READ8_HANDLER( beg_soundstate_r )
+READ8_MEMBER(bigevglf_state::beg_soundstate_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- UINT8 ret = state->m_sound_state;
+ UINT8 ret = m_sound_state;
/* set a timer to force synchronization after the read */
- space->machine().scheduler().synchronize();
- state->m_sound_state &= ~2; /* read from port 21 clears bit 1 in status */
+ machine().scheduler().synchronize();
+ m_sound_state &= ~2; /* read from port 21 clears bit 1 in status */
return ret;
}
-static READ8_HANDLER( soundstate_r )
+READ8_MEMBER(bigevglf_state::soundstate_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
/* set a timer to force synchronization after the read */
- space->machine().scheduler().synchronize();
- return state->m_sound_state;
+ machine().scheduler().synchronize();
+ return m_sound_state;
}
static TIMER_CALLBACK( nmi_callback )
@@ -122,34 +118,30 @@ static TIMER_CALLBACK( nmi_callback )
state->m_sound_state &= ~1;
}
-static WRITE8_HANDLER( sound_command_w ) /* write to port 20 clears bit 0 in status */
+WRITE8_MEMBER(bigevglf_state::sound_command_w)/* write to port 20 clears bit 0 in status */
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- state->m_for_sound = data;
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ m_for_sound = data;
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static READ8_HANDLER( sound_command_r ) /* read from D800 sets bit 0 in status */
+READ8_MEMBER(bigevglf_state::sound_command_r)/* read from D800 sets bit 0 in status */
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- state->m_sound_state |= 1;
- return state->m_for_sound;
+ m_sound_state |= 1;
+ return m_for_sound;
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(bigevglf_state::nmi_disable_w)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(bigevglf_state::nmi_enable_w)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
@@ -162,29 +154,28 @@ static TIMER_CALLBACK( deferred_ls74_w )
}
/* do this on a timer to let the CPUs synchronize */
-static WRITE8_HANDLER( beg13_a_clr_w )
+WRITE8_MEMBER(bigevglf_state::beg13_a_clr_w)
{
- space->machine().scheduler().synchronize(FUNC(deferred_ls74_w), (0 << 8) | 0);
+ machine().scheduler().synchronize(FUNC(deferred_ls74_w), (0 << 8) | 0);
}
-static WRITE8_HANDLER( beg13_b_clr_w )
+WRITE8_MEMBER(bigevglf_state::beg13_b_clr_w)
{
- space->machine().scheduler().synchronize(FUNC(deferred_ls74_w), (1 << 8) | 0);
+ machine().scheduler().synchronize(FUNC(deferred_ls74_w), (1 << 8) | 0);
}
-static WRITE8_HANDLER( beg13_a_set_w )
+WRITE8_MEMBER(bigevglf_state::beg13_a_set_w)
{
- space->machine().scheduler().synchronize(FUNC(deferred_ls74_w), (0 << 8) | 1);
+ machine().scheduler().synchronize(FUNC(deferred_ls74_w), (0 << 8) | 1);
}
-static WRITE8_HANDLER( beg13_b_set_w )
+WRITE8_MEMBER(bigevglf_state::beg13_b_set_w)
{
- space->machine().scheduler().synchronize(FUNC(deferred_ls74_w), (1 << 8) | 1);
+ machine().scheduler().synchronize(FUNC(deferred_ls74_w), (1 << 8) | 1);
}
-static READ8_HANDLER( beg_status_r )
+READ8_MEMBER(bigevglf_state::beg_status_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
/* d0 = Q of 74ls74 IC13(partA)
d1 = Q of 74ls74 IC13(partB)
@@ -196,31 +187,28 @@ static READ8_HANDLER( beg_status_r )
*/
/* set a timer to force synchronization after the read */
- space->machine().scheduler().synchronize();
- return (state->m_beg13_ls74[0] << 0) | (state->m_beg13_ls74[1] << 1);
+ machine().scheduler().synchronize();
+ return (m_beg13_ls74[0] << 0) | (m_beg13_ls74[1] << 1);
}
-static READ8_HANDLER( beg_trackball_x_r )
+READ8_MEMBER(bigevglf_state::beg_trackball_x_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
static const char *const portx_name[2] = { "P1X", "P2X" };
- return input_port_read(space->machine(), portx_name[state->m_port_select]);
+ return input_port_read(machine(), portx_name[m_port_select]);
}
-static READ8_HANDLER( beg_trackball_y_r )
+READ8_MEMBER(bigevglf_state::beg_trackball_y_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
static const char *const porty_name[2] = { "P1Y", "P2Y" };
- return input_port_read(space->machine(), porty_name[state->m_port_select]);
+ return input_port_read(machine(), porty_name[m_port_select]);
}
-static WRITE8_HANDLER( beg_port08_w )
+WRITE8_MEMBER(bigevglf_state::beg_port08_w)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
- state->m_port_select = (data & 0x04) >> 2;
+ m_port_select = (data & 0x04) >> 2;
}
@@ -321,11 +309,11 @@ static ADDRESS_MAP_START( bigevglf_portmap, AS_IO, 8, bigevglf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* video ram enable ???*/
AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(bigevglf_gfxcontrol_w) /* plane select */
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(beg_banking_w)
- AM_RANGE(0x03, 0x03) AM_WRITE_LEGACY(beg13_a_set_w)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(beg13_b_clr_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(beg_banking_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(beg13_a_set_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(beg13_b_clr_w)
AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(bigevglf_vidram_addr_w) /* video banking (256 banks) for f000-f0ff area */
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(beg_status_r)
+ AM_RANGE(0x06, 0x06) AM_READ(beg_status_r)
ADDRESS_MAP_END
@@ -339,37 +327,36 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, bigevglf_state )
ADDRESS_MAP_END
-static READ8_HANDLER( sub_cpu_mcu_coin_port_r )
+READ8_MEMBER(bigevglf_state::sub_cpu_mcu_coin_port_r)
{
- bigevglf_state *state = space->machine().driver_data<bigevglf_state>();
/*
bit 0 and bit 1 = coin inputs
bit 3 and bit 4 = MCU status
bit 5 = must toggle, vblank ?
*/
- state->m_mcu_coin_bit5 ^= 0x20;
- return bigevglf_mcu_status_r(space, 0) | (input_port_read(space->machine(), "PORT04") & 3) | state->m_mcu_coin_bit5; /* bit 0 and bit 1 - coin inputs */
+ m_mcu_coin_bit5 ^= 0x20;
+ return bigevglf_mcu_status_r(&space, 0) | (input_port_read(machine(), "PORT04") & 3) | m_mcu_coin_bit5; /* bit 0 and bit 1 - coin inputs */
}
static ADDRESS_MAP_START( bigevglf_sub_portmap, AS_IO, 8, bigevglf_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("PORT00")
AM_RANGE(0x01, 0x01) AM_READNOP
- AM_RANGE(0x02, 0x02) AM_READ_LEGACY(beg_trackball_x_r)
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(beg_trackball_y_r)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(sub_cpu_mcu_coin_port_r)
+ AM_RANGE(0x02, 0x02) AM_READ(beg_trackball_x_r)
+ AM_RANGE(0x03, 0x03) AM_READ(beg_trackball_y_r)
+ AM_RANGE(0x04, 0x04) AM_READ(sub_cpu_mcu_coin_port_r)
AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW1")
AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2")
AM_RANGE(0x07, 0x07) AM_READNOP
- AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(beg_port08_w) /* muxed port select + other unknown stuff */
+ AM_RANGE(0x08, 0x08) AM_WRITE(beg_port08_w) /* muxed port select + other unknown stuff */
AM_RANGE(0x0b, 0x0b) AM_READ_LEGACY(bigevglf_mcu_r)
AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(bigevglf_mcu_w)
AM_RANGE(0x0e, 0x0e) AM_WRITENOP /* 0-enable MCU, 1-keep reset line ASSERTED; D0 goes to the input of ls74 and the /Q of this ls74 goes to reset line on 68705 */
- AM_RANGE(0x10, 0x17) AM_WRITE_LEGACY(beg13_a_clr_w)
- AM_RANGE(0x18, 0x1f) AM_WRITE_LEGACY(beg13_b_set_w)
- AM_RANGE(0x20, 0x20) AM_READWRITE_LEGACY(beg_fromsound_r, sound_command_w)
- AM_RANGE(0x21, 0x21) AM_READ_LEGACY(beg_soundstate_r)
+ AM_RANGE(0x10, 0x17) AM_WRITE(beg13_a_clr_w)
+ AM_RANGE(0x18, 0x1f) AM_WRITE(beg13_b_set_w)
+ AM_RANGE(0x20, 0x20) AM_READWRITE(beg_fromsound_r, sound_command_w)
+ AM_RANGE(0x21, 0x21) AM_READ(beg_soundstate_r)
ADDRESS_MAP_END
@@ -385,9 +372,9 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bigevglf_state )
AM_RANGE(0xca00, 0xca0d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP
AM_RANGE(0xce00, 0xce00) AM_WRITENOP
- AM_RANGE(0xd800, 0xd800) AM_READWRITE_LEGACY(sound_command_r, beg_fromsound_w) /* write to D800 sets bit 1 in status */
- AM_RANGE(0xda00, 0xda00) AM_READWRITE_LEGACY(soundstate_r, nmi_enable_w)
- AM_RANGE(0xdc00, 0xdc00) AM_WRITE_LEGACY(nmi_disable_w)
+ AM_RANGE(0xd800, 0xd800) AM_READWRITE(sound_command_r, beg_fromsound_w) /* write to D800 sets bit 1 in status */
+ AM_RANGE(0xda00, 0xda00) AM_READWRITE(soundstate_r, nmi_enable_w)
+ AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w)
AM_RANGE(0xde00, 0xde00) AM_WRITENOP
AM_RANGE(0xe000, 0xefff) AM_READNOP /* space for diagnostics ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c
index e055dca4469..cfcb5ac9db3 100644
--- a/src/mame/drivers/bionicc.c
+++ b/src/mame/drivers/bionicc.c
@@ -70,50 +70,45 @@
*
*************************************/
-static WRITE16_HANDLER( hacked_controls_w )
+WRITE16_MEMBER(bionicc_state::hacked_controls_w)
{
- bionicc_state *state = space->machine().driver_data<bionicc_state>();
- logerror("%06x: hacked_controls_w %04x %02x\n", cpu_get_pc(&space->device()), offset, data);
- COMBINE_DATA(&state->m_inp[offset]);
+ logerror("%06x: hacked_controls_w %04x %02x\n", cpu_get_pc(&space.device()), offset, data);
+ COMBINE_DATA(&m_inp[offset]);
}
-static READ16_HANDLER( hacked_controls_r )
+READ16_MEMBER(bionicc_state::hacked_controls_r)
{
- bionicc_state *state = space->machine().driver_data<bionicc_state>();
- logerror("%06x: hacked_controls_r %04x %04x\n", cpu_get_pc(&space->device()), offset, state->m_inp[offset]);
- return state->m_inp[offset];
+ logerror("%06x: hacked_controls_r %04x %04x\n", cpu_get_pc(&space.device()), offset, m_inp[offset]);
+ return m_inp[offset];
}
-static WRITE16_HANDLER( bionicc_mpu_trigger_w )
+WRITE16_MEMBER(bionicc_state::bionicc_mpu_trigger_w)
{
- bionicc_state *state = space->machine().driver_data<bionicc_state>();
- data = input_port_read(space->machine(), "SYSTEM") >> 12;
- state->m_inp[0] = data ^ 0x0f;
+ data = input_port_read(machine(), "SYSTEM") >> 12;
+ m_inp[0] = data ^ 0x0f;
- data = input_port_read(space->machine(), "P2");
- state->m_inp[1] = data ^ 0xff;
+ data = input_port_read(machine(), "P2");
+ m_inp[1] = data ^ 0xff;
- data = input_port_read(space->machine(), "P1");
- state->m_inp[2] = data ^ 0xff;
+ data = input_port_read(machine(), "P1");
+ m_inp[2] = data ^ 0xff;
}
-static WRITE16_HANDLER( hacked_soundcommand_w )
+WRITE16_MEMBER(bionicc_state::hacked_soundcommand_w)
{
- bionicc_state *state = space->machine().driver_data<bionicc_state>();
- COMBINE_DATA(&state->m_soundcommand);
- soundlatch_w(space, 0, state->m_soundcommand & 0xff);
+ COMBINE_DATA(&m_soundcommand);
+ soundlatch_w(space, 0, m_soundcommand & 0xff);
}
-static READ16_HANDLER( hacked_soundcommand_r )
+READ16_MEMBER(bionicc_state::hacked_soundcommand_r)
{
- bionicc_state *state = space->machine().driver_data<bionicc_state>();
- return state->m_soundcommand;
+ return m_soundcommand;
}
@@ -155,14 +150,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bionicc_state )
AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("DSW")
AM_RANGE(0xfe8010, 0xfe8017) AM_WRITE_LEGACY(bionicc_scroll_w)
- AM_RANGE(0xfe801a, 0xfe801b) AM_WRITE_LEGACY(bionicc_mpu_trigger_w) /* ??? not sure, but looks like it */
+ AM_RANGE(0xfe801a, 0xfe801b) AM_WRITE(bionicc_mpu_trigger_w) /* ??? not sure, but looks like it */
AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE_LEGACY(bionicc_txvideoram_w) AM_BASE(m_txvideoram)
AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE_LEGACY(bionicc_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE_LEGACY(bionicc_bgvideoram_w) AM_BASE(m_bgvideoram)
AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE_LEGACY(bionicc_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0xffc000, 0xfffff7) AM_RAM /* working RAM */
- AM_RANGE(0xfffff8, 0xfffff9) AM_READWRITE_LEGACY(hacked_soundcommand_r, hacked_soundcommand_w) /* hack */
- AM_RANGE(0xfffffa, 0xffffff) AM_READWRITE_LEGACY(hacked_controls_r, hacked_controls_w) /* hack */
+ AM_RANGE(0xfffff8, 0xfffff9) AM_READWRITE(hacked_soundcommand_r, hacked_soundcommand_w) /* hack */
+ AM_RANGE(0xfffffa, 0xffffff) AM_READWRITE(hacked_controls_r, hacked_controls_w) /* hack */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c
index f70c72f7ee7..70f7a9c0586 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -89,24 +89,21 @@ Notes:
#include "sound/ymz280b.h"
#include "includes/bishi.h"
-static READ16_HANDLER( control_r )
+READ16_MEMBER(bishi_state::control_r)
{
- bishi_state *state = space->machine().driver_data<bishi_state>();
- return state->m_cur_control;
+ return m_cur_control;
}
-static WRITE16_HANDLER( control_w )
+WRITE16_MEMBER(bishi_state::control_w)
{
// bit 8 = interrupt gate
- bishi_state *state = space->machine().driver_data<bishi_state>();
- COMBINE_DATA(&state->m_cur_control);
+ COMBINE_DATA(&m_cur_control);
}
-static WRITE16_HANDLER( control2_w )
+WRITE16_MEMBER(bishi_state::control2_w)
{
// bit 12 = part of the banking calculation for the K056832 ROM readback
- bishi_state *state = space->machine().driver_data<bishi_state>();
- COMBINE_DATA(&state->m_cur_control2);
+ COMBINE_DATA(&m_cur_control2);
}
static TIMER_DEVICE_CALLBACK( bishi_scanline )
@@ -125,34 +122,33 @@ static TIMER_DEVICE_CALLBACK( bishi_scanline )
}
/* compensate for a bug in the ram/rom test */
-static READ16_HANDLER( bishi_mirror_r )
+READ16_MEMBER(bishi_state::bishi_mirror_r)
{
- return space->machine().generic.paletteram.u16[offset];
+ return machine().generic.paletteram.u16[offset];
}
-static READ16_HANDLER( bishi_K056832_rom_r )
+READ16_MEMBER(bishi_state::bishi_K056832_rom_r)
{
- bishi_state *state = space->machine().driver_data<bishi_state>();
UINT16 ouroffs;
ouroffs = (offset >> 1) * 8;
if (offset & 1)
ouroffs++;
- if (state->m_cur_control2 & 0x1000)
+ if (m_cur_control2 & 0x1000)
ouroffs += 4;
- return k056832_bishi_rom_word_r(state->m_k056832, ouroffs, mem_mask);
+ return k056832_bishi_rom_word_r(m_k056832, ouroffs, mem_mask);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x400000, 0x407fff) AM_RAM // Work RAM
- AM_RANGE(0x800000, 0x800001) AM_READWRITE_LEGACY(control_r, control_w)
+ AM_RANGE(0x800000, 0x800001) AM_READWRITE(control_r, control_w)
AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW")
AM_RANGE(0x800006, 0x800007) AM_READ_PORT("SYSTEM")
AM_RANGE(0x800008, 0x800009) AM_READ_PORT("INPUTS")
- AM_RANGE(0x810000, 0x810003) AM_WRITE_LEGACY(control2_w) // bank switch for K056832 character ROM test
+ AM_RANGE(0x810000, 0x810003) AM_WRITE(control2_w) // bank switch for K056832 character ROM test
AM_RANGE(0x820000, 0x820001) AM_WRITENOP // lamps (see lamp test in service menu)
AM_RANGE(0x830000, 0x83003f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)
AM_RANGE(0x840000, 0x840007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w) // VSCCS
@@ -161,8 +157,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state )
AM_RANGE(0x880000, 0x880003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0xff00)
AM_RANGE(0xa00000, 0xa01fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) // Graphic planes
AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE_LEGACY(paletteram16_xbgr_word_be_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xb04000, 0xb047ff) AM_READ_LEGACY(bishi_mirror_r) // bug in the ram/rom test?
- AM_RANGE(0xc00000, 0xc01fff) AM_READ_LEGACY(bishi_K056832_rom_r)
+ AM_RANGE(0xb04000, 0xb047ff) AM_READ(bishi_mirror_r) // bug in the ram/rom test?
+ AM_RANGE(0xc00000, 0xc01fff) AM_READ(bishi_K056832_rom_r)
ADDRESS_MAP_END
static INPUT_PORTS_START( bishi )
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index 67b1f2f04d6..66145304a37 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -23,22 +23,19 @@ DIP Locations verified for:
#include "machine/buggychl.h"
#include "includes/bking.h"
-static READ8_HANDLER( bking_sndnmi_disable_r )
+READ8_MEMBER(bking_state::bking_sndnmi_disable_r)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
return 0;
}
-static WRITE8_HANDLER( bking_sndnmi_enable_w )
+WRITE8_MEMBER(bking_state::bking_sndnmi_enable_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_sound_nmi_enable = 1;
+ m_sound_nmi_enable = 1;
}
-static WRITE8_HANDLER( bking_soundlatch_w )
+WRITE8_MEMBER(bking_state::bking_soundlatch_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
int i, code = 0;
for (i = 0;i < 8;i++)
@@ -46,27 +43,24 @@ static WRITE8_HANDLER( bking_soundlatch_w )
code |= 0x80 >> i;
soundlatch_w(space, offset, code);
- if (state->m_sound_nmi_enable)
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ if (m_sound_nmi_enable)
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( bking3_addr_l_w )
+WRITE8_MEMBER(bking_state::bking3_addr_l_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_addr_l = data;
+ m_addr_l = data;
}
-static WRITE8_HANDLER( bking3_addr_h_w )
+WRITE8_MEMBER(bking_state::bking3_addr_h_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_addr_h = data;
+ m_addr_h = data;
}
-static READ8_HANDLER( bking3_extrarom_r )
+READ8_MEMBER(bking_state::bking3_extrarom_r)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- UINT8 *rom = space->machine().region("user2")->base();
- return rom[state->m_addr_h * 256 + state->m_addr_l];
+ UINT8 *rom = machine().region("user2")->base();
+ return rom[m_addr_h * 256 + m_addr_l];
}
static WRITE8_DEVICE_HANDLER( unk_w )
@@ -77,7 +71,7 @@ static WRITE8_DEVICE_HANDLER( unk_w )
*/
}
-static READ8_HANDLER( bking3_ext_check_r )
+READ8_MEMBER(bking_state::bking3_ext_check_r)
{
return 0x31; //no "bad rom.", no "bad ext."
}
@@ -101,7 +95,7 @@ static ADDRESS_MAP_START( bking_io_map, AS_IO, 8, bking_state )
AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(bking_cont1_w)
AM_RANGE(0x09, 0x09) AM_WRITE_LEGACY(bking_cont2_w)
AM_RANGE(0x0a, 0x0a) AM_WRITE_LEGACY(bking_cont3_w)
- AM_RANGE(0x0b, 0x0b) AM_WRITE_LEGACY(bking_soundlatch_w)
+ AM_RANGE(0x0b, 0x0b) AM_WRITE(bking_soundlatch_w)
// AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(bking_eport2_w) this is not shown to be connected anywhere
AM_RANGE(0x0d, 0x0d) AM_WRITE_LEGACY(bking_hitclr_w)
AM_RANGE(0x07, 0x1f) AM_READ_LEGACY(bking_pos_r)
@@ -120,15 +114,15 @@ static ADDRESS_MAP_START( bking3_io_map, AS_IO, 8, bking_state )
AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(bking_cont1_w)
AM_RANGE(0x09, 0x09) AM_WRITE_LEGACY(bking_cont2_w)
AM_RANGE(0x0a, 0x0a) AM_WRITE_LEGACY(bking_cont3_w)
- AM_RANGE(0x0b, 0x0b) AM_WRITE_LEGACY(bking_soundlatch_w)
+ AM_RANGE(0x0b, 0x0b) AM_WRITE(bking_soundlatch_w)
// AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(bking_eport2_w) this is not shown to be connected anywhere
AM_RANGE(0x0d, 0x0d) AM_WRITE_LEGACY(bking_hitclr_w)
AM_RANGE(0x07, 0x1f) AM_READ_LEGACY(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(0x60, 0x60) AM_READ_LEGACY(bking3_extrarom_r)
- AM_RANGE(0x6f, 0x6f) AM_READWRITE_LEGACY(bking3_ext_check_r, bking3_addr_h_w)
- AM_RANGE(0x8f, 0x8f) AM_WRITE_LEGACY(bking3_addr_l_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)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bking_audio_map, AS_PROGRAM, 8, bking_state )
@@ -140,75 +134,69 @@ static ADDRESS_MAP_START( bking_audio_map, AS_PROGRAM, 8, bking_state )
AM_RANGE(0x4402, 0x4403) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
AM_RANGE(0x4403, 0x4403) AM_DEVREAD_LEGACY("ay2", ay8910_r)
AM_RANGE(0x4800, 0x4800) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x4802, 0x4802) AM_READWRITE_LEGACY(bking_sndnmi_disable_r, bking_sndnmi_enable_w)
+ AM_RANGE(0x4802, 0x4802) AM_READWRITE(bking_sndnmi_disable_r, bking_sndnmi_enable_w)
AM_RANGE(0xe000, 0xefff) AM_ROM /* Space for diagnostic ROM */
ADDRESS_MAP_END
#if 0
-static READ8_HANDLER( bking3_68705_port_a_r )
+READ8_MEMBER(bking_state::bking3_68705_port_a_r)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- //printf("port_a_r = %02X\n",(state->m_port_a_out & state->m_ddr_a) | (state->m_port_a_in & ~state->m_ddr_a));
- return (state->m_port_a_out & state->m_ddr_a) | (state->m_port_a_in & ~state->m_ddr_a);
+ //printf("port_a_r = %02X\n",(m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a));
+ return (m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a);
}
-static WRITE8_HANDLER( bking3_68705_port_a_w )
+WRITE8_MEMBER(bking_state::bking3_68705_port_a_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_port_a_out = data;
+ m_port_a_out = data;
// printf("port_a_out = %02X\n",data);
}
-static WRITE8_HANDLER( bking3_68705_ddr_a_w )
+WRITE8_MEMBER(bking_state::bking3_68705_ddr_a_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_ddr_a = data;
+ m_ddr_a = data;
}
-static READ8_HANDLER( bking3_68705_port_b_r )
+READ8_MEMBER(bking_state::bking3_68705_port_b_r)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- return (state->m_port_b_out & state->m_ddr_b) | (state->m_port_b_in & ~state->m_ddr_b);
+ return (m_port_b_out & m_ddr_b) | (m_port_b_in & ~m_ddr_b);
}
-static WRITE8_HANDLER( bking3_68705_port_b_w )
+WRITE8_MEMBER(bking_state::bking3_68705_port_b_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
// if(data != 0xff)
// printf("port_b_out = %02X\n",data);
if (~data & 0x02)
{
- state->m_port_a_in = from_main;
- if (main_sent) cputag_set_input_line(space->machine(), "mcu", 0, CLEAR_LINE);
+ m_port_a_in = from_main;
+ if (main_sent) cputag_set_input_line(machine(), "mcu", 0, CLEAR_LINE);
main_sent = 0;
}
if (~data & 0x04)
{
/* 68705 is writing data for the Z80 */
- from_mcu = state->m_port_a_out;
+ from_mcu = m_port_a_out;
mcu_sent = 1;
}
if(data != 0xff && data != 0xfb && data != 0xfd)
printf("port_b_w = %X\n",data);
- state->m_port_b_out = data;
+ m_port_b_out = data;
}
-static WRITE8_HANDLER( bking3_68705_ddr_b_w )
+WRITE8_MEMBER(bking_state::bking3_68705_ddr_b_w)
{
- bking_state *state = space->machine().driver_data<bking_state>();
- state->m_ddr_b = data;
+ m_ddr_b = data;
}
-static READ8_HANDLER( bking3_68705_port_c_r )
+READ8_MEMBER(bking_state::bking3_68705_port_c_r)
{
int port_c_in = 0;
if (main_sent) port_c_in |= 0x01;
if (!mcu_sent) port_c_in |= 0x02;
-//logerror("%04x: 68705 port C read %02x\n",cpu_get_pc(&space->device()),port_c_in);
+//logerror("%04x: 68705 port C read %02x\n",cpu_get_pc(&space.device()),port_c_in);
return port_c_in;
}
#endif
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index 1e378507736..63662590fb5 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -54,47 +54,44 @@ static TIMER_DEVICE_CALLBACK( bladestl_scanline )
*
*************************************/
-static READ8_HANDLER( trackball_r )
+READ8_MEMBER(bladestl_state::trackball_r)
{
- bladestl_state *state = space->machine().driver_data<bladestl_state>();
static const char *const port[] = { "TRACKBALL_P1_1", "TRACKBALL_P1_2", "TRACKBALL_P2_1", "TRACKBALL_P1_2" };
int curr, delta;
- curr = input_port_read(space->machine(), port[offset]);
- delta = (curr - state->m_last_track[offset]) & 0xff;
- state->m_last_track[offset] = curr;
+ curr = input_port_read(machine(), port[offset]);
+ delta = (curr - m_last_track[offset]) & 0xff;
+ m_last_track[offset] = curr;
return (delta & 0x80) | (curr >> 1);
}
-static WRITE8_HANDLER( bladestl_bankswitch_w )
+WRITE8_MEMBER(bladestl_state::bladestl_bankswitch_w)
{
- bladestl_state *state = space->machine().driver_data<bladestl_state>();
/* bits 0 & 1 = coin counters */
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
/* bits 2 & 3 = lamps */
- set_led_status(space->machine(), 0,data & 0x04);
- set_led_status(space->machine(), 1,data & 0x08);
+ set_led_status(machine(), 0,data & 0x04);
+ set_led_status(machine(), 1,data & 0x08);
/* bit 4 = relay (???) */
/* bits 5-6 = bank number */
- memory_set_bank(space->machine(), "bank1", (data & 0x60) >> 5);
+ memory_set_bank(machine(), "bank1", (data & 0x60) >> 5);
/* bit 7 = select sprite bank */
- state->m_spritebank = (data & 0x80) << 3;
+ m_spritebank = (data & 0x80) << 3;
}
-static WRITE8_HANDLER( bladestl_sh_irqtrigger_w )
+WRITE8_MEMBER(bladestl_state::bladestl_sh_irqtrigger_w)
{
- bladestl_state *state = space->machine().driver_data<bladestl_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
//logerror("(sound) write %02x\n", data);
}
@@ -132,10 +129,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bladestl_state )
AM_RANGE(0x2e02, 0x2e02) AM_READ_PORT("P2") /* 2P controls */
AM_RANGE(0x2e03, 0x2e03) AM_READ_PORT("DSW2") /* DISPW #2 */
AM_RANGE(0x2e40, 0x2e40) AM_READ_PORT("DSW1") /* DIPSW #1 */
- AM_RANGE(0x2e80, 0x2e80) AM_WRITE_LEGACY(bladestl_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x2e80, 0x2e80) AM_WRITE(bladestl_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
- AM_RANGE(0x2f00, 0x2f03) AM_READ_LEGACY(trackball_r) /* Trackballs */
- AM_RANGE(0x2f40, 0x2f40) AM_WRITE_LEGACY(bladestl_bankswitch_w) /* bankswitch control */
+ AM_RANGE(0x2f00, 0x2f03) AM_READ(trackball_r) /* Trackballs */
+ AM_RANGE(0x2f40, 0x2f40) AM_WRITE(bladestl_bankswitch_w) /* bankswitch control */
AM_RANGE(0x2f80, 0x2f9f) AM_DEVREADWRITE_LEGACY("k051733", k051733_r, k051733_w) /* Protection: 051733 */
AM_RANGE(0x2fc0, 0x2fc0) AM_WRITENOP /* ??? */
AM_RANGE(0x4000, 0x5fff) AM_RAM /* Work RAM */
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index 30baee24cf3..965669c793e 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -26,47 +26,43 @@ Protection comms between main cpu and i8751
**************************************************/
-static READ8_HANDLER( blktiger_from_mcu_r )
+READ8_MEMBER(blktiger_state::blktiger_from_mcu_r)
{
- blktiger_state *state = space->machine().driver_data<blktiger_state>();
- return state->m_i8751_latch;
+ return m_i8751_latch;
}
-static WRITE8_HANDLER( blktiger_to_mcu_w )
+WRITE8_MEMBER(blktiger_state::blktiger_to_mcu_w)
{
- blktiger_state *state = space->machine().driver_data<blktiger_state>();
- device_set_input_line(state->m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
- state->m_z80_latch = data;
+ device_set_input_line(m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
+ m_z80_latch = data;
}
-static READ8_HANDLER( blktiger_from_main_r )
+READ8_MEMBER(blktiger_state::blktiger_from_main_r)
{
- blktiger_state *state = space->machine().driver_data<blktiger_state>();
- device_set_input_line(state->m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
+ device_set_input_line(m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
//printf("%02x read\n",latch);
- return state->m_z80_latch;
+ return m_z80_latch;
}
-static WRITE8_HANDLER( blktiger_to_main_w )
+WRITE8_MEMBER(blktiger_state::blktiger_to_main_w)
{
- blktiger_state *state = space->machine().driver_data<blktiger_state>();
//printf("%02x write\n",data);
- state->m_i8751_latch = data;
+ m_i8751_latch = data;
}
-static WRITE8_HANDLER( blktiger_bankswitch_w )
+WRITE8_MEMBER(blktiger_state::blktiger_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static WRITE8_HANDLER( blktiger_coinlockout_w )
+WRITE8_MEMBER(blktiger_state::blktiger_coinlockout_w)
{
- if (input_port_read(space->machine(), "COIN_LOCKOUT") & 0x01)
+ if (input_port_read(machine(), "COIN_LOCKOUT") & 0x01)
{
- coin_lockout_w(space->machine(), 0,~data & 0x01);
- coin_lockout_w(space->machine(), 1,~data & 0x02);
+ coin_lockout_w(machine(), 0,~data & 0x01);
+ coin_lockout_w(machine(), 1,~data & 0x02);
}
}
@@ -85,13 +81,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( blktiger_io_map, AS_IO, 8, blktiger_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE_LEGACY(blktiger_bankswitch_w)
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(blktiger_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(blktiger_coinlockout_w)
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE(blktiger_coinlockout_w)
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(blktiger_video_control_w)
AM_RANGE(0x05, 0x05) AM_READ_PORT("FREEZE")
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x07, 0x07) AM_READWRITE_LEGACY(blktiger_from_mcu_r,blktiger_to_mcu_w) /* Software protection (7) */
+ AM_RANGE(0x07, 0x07) AM_READWRITE(blktiger_from_mcu_r,blktiger_to_mcu_w) /* Software protection (7) */
AM_RANGE(0x08, 0x09) AM_WRITE_LEGACY(blktiger_scrollx_w)
AM_RANGE(0x0a, 0x0b) AM_WRITE_LEGACY(blktiger_scrolly_w)
AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(blktiger_video_enable_w)
@@ -102,9 +98,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( blktigerbl_io_map, AS_IO, 8, blktiger_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE_LEGACY(blktiger_bankswitch_w)
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(blktiger_bankswitch_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(blktiger_coinlockout_w)
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE(blktiger_coinlockout_w)
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(blktiger_video_control_w)
AM_RANGE(0x05, 0x05) AM_READ_PORT("FREEZE")
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(watchdog_reset_w)
@@ -129,7 +125,7 @@ static ADDRESS_MAP_START( blktiger_mcu_map, AS_PROGRAM, 8, blktiger_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( blktiger_mcu_io_map, AS_IO, 8, blktiger_state )
- AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READWRITE_LEGACY(blktiger_from_main_r,blktiger_to_main_w)
+ AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READWRITE(blktiger_from_main_r,blktiger_to_main_w)
AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P3) AM_WRITENOP /* other ports unknown */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c
index 0edaac800f3..92c0f43732b 100644
--- a/src/mame/drivers/blmbycar.c
+++ b/src/mame/drivers/blmbycar.c
@@ -39,11 +39,11 @@ Check game speed, it depends on a bit we toggle..
/* The top 64k of samples are banked (16 banks total) */
-static WRITE16_HANDLER( blmbycar_okibank_w )
+WRITE16_MEMBER(blmbycar_state::blmbycar_okibank_w)
{
if (ACCESSING_BITS_0_7)
{
- UINT8 *RAM = space->machine().region("oki")->base();
+ UINT8 *RAM = machine().region("oki")->base();
memcpy(&RAM[0x30000], &RAM[0x40000 + 0x10000 * (data & 0xf)], 0x10000);
}
}
@@ -58,38 +58,35 @@ static WRITE16_HANDLER( blmbycar_okibank_w )
/* Preliminary potentiometric wheel support */
-static WRITE16_HANDLER( blmbycar_pot_wheel_reset_w )
+WRITE16_MEMBER(blmbycar_state::blmbycar_pot_wheel_reset_w)
{
- blmbycar_state *state = space->machine().driver_data<blmbycar_state>();
if (ACCESSING_BITS_0_7)
- state->m_pot_wheel = ~input_port_read(space->machine(), "WHEEL") & 0xff;
+ m_pot_wheel = ~input_port_read(machine(), "WHEEL") & 0xff;
}
-static WRITE16_HANDLER( blmbycar_pot_wheel_shift_w )
+WRITE16_MEMBER(blmbycar_state::blmbycar_pot_wheel_shift_w)
{
- blmbycar_state *state = space->machine().driver_data<blmbycar_state>();
if (ACCESSING_BITS_0_7)
{
- if ( ((state->m_old_val & 0xff) == 0xff) && ((data & 0xff) == 0) )
- state->m_pot_wheel <<= 1;
- state->m_old_val = data;
+ if ( ((m_old_val & 0xff) == 0xff) && ((data & 0xff) == 0) )
+ m_pot_wheel <<= 1;
+ m_old_val = data;
}
}
-static READ16_HANDLER( blmbycar_pot_wheel_r )
+READ16_MEMBER(blmbycar_state::blmbycar_pot_wheel_r)
{
- blmbycar_state *state = space->machine().driver_data<blmbycar_state>();
- return ((state->m_pot_wheel & 0x80) ? 0x04 : 0) | (space->machine().rand() & 0x08);
+ return ((m_pot_wheel & 0x80) ? 0x04 : 0) | (machine().rand() & 0x08);
}
/* Preliminary optical wheel support */
-static READ16_HANDLER( blmbycar_opt_wheel_r )
+READ16_MEMBER(blmbycar_state::blmbycar_opt_wheel_r)
{
- return (~input_port_read(space->machine(), "WHEEL") & 0xff) << 8;
+ return (~input_port_read(machine(), "WHEEL") & 0xff) << 8;
}
@@ -118,22 +115,21 @@ static ADDRESS_MAP_START( blmbycar_map, AS_PROGRAM, 16, blmbycar_state )
AM_RANGE(0x444000, 0x445fff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)// Sprites (size?)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1_P2")
- AM_RANGE(0x700004, 0x700005) AM_READ_LEGACY(blmbycar_opt_wheel_r) // Wheel (optical)
+ AM_RANGE(0x700004, 0x700005) AM_READ(blmbycar_opt_wheel_r) // Wheel (optical)
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("UNK")
- AM_RANGE(0x700008, 0x700009) AM_READ_LEGACY(blmbycar_pot_wheel_r) // Wheel (potentiometer)
+ AM_RANGE(0x700008, 0x700009) AM_READ(blmbycar_pot_wheel_r) // Wheel (potentiometer)
AM_RANGE(0x70000a, 0x70000b) AM_WRITENOP // ? Wheel
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(blmbycar_okibank_w) // Sound
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(blmbycar_okibank_w) // Sound
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0x70006a, 0x70006b) AM_WRITE_LEGACY(blmbycar_pot_wheel_reset_w) // Wheel (potentiometer)
- AM_RANGE(0x70007a, 0x70007b) AM_WRITE_LEGACY(blmbycar_pot_wheel_shift_w) //
+ AM_RANGE(0x70006a, 0x70006b) AM_WRITE(blmbycar_pot_wheel_reset_w) // Wheel (potentiometer)
+ AM_RANGE(0x70007a, 0x70007b) AM_WRITE(blmbycar_pot_wheel_shift_w) //
ADDRESS_MAP_END
-static READ16_HANDLER( waterball_unk_r )
+READ16_MEMBER(blmbycar_state::waterball_unk_r)
{
- blmbycar_state *state = space->machine().driver_data<blmbycar_state>();
- state->m_retvalue ^= 0x0008; // must toggle.. but not vblank?
- return state->m_retvalue;
+ m_retvalue ^= 0x0008; // must toggle.. but not vblank?
+ return m_retvalue;
}
static ADDRESS_MAP_START( watrball_map, AS_PROGRAM, 16, blmbycar_state )
@@ -154,9 +150,9 @@ static ADDRESS_MAP_START( watrball_map, AS_PROGRAM, 16, blmbycar_state )
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P1_P2")
AM_RANGE(0x700006, 0x700007) AM_READNOP // read
- AM_RANGE(0x700008, 0x700009) AM_READ_LEGACY(waterball_unk_r) // 0x0008 must toggle
+ AM_RANGE(0x700008, 0x700009) AM_READ(waterball_unk_r) // 0x0008 must toggle
AM_RANGE(0x70000a, 0x70000b) AM_WRITEONLY // ?? busy
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(blmbycar_okibank_w) // Sound
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(blmbycar_okibank_w) // Sound
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) //
ADDRESS_MAP_END
diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c
index 66ace17a714..a34acebbb54 100644
--- a/src/mame/drivers/blockade.c
+++ b/src/mame/drivers/blockade.c
@@ -76,29 +76,27 @@ static INTERRUPT_GEN( blockade_interrupt )
*
*************************************/
-static READ8_HANDLER( blockade_input_port_0_r )
+READ8_MEMBER(blockade_state::blockade_input_port_0_r)
{
- blockade_state *state = space->machine().driver_data<blockade_state>();
/* coin latch is bit 7 */
- UINT8 temp = (input_port_read(space->machine(), "IN0") & 0x7f);
+ UINT8 temp = (input_port_read(machine(), "IN0") & 0x7f);
- return (state->m_coin_latch << 7) | temp;
+ return (m_coin_latch << 7) | temp;
}
-static WRITE8_HANDLER( blockade_coin_latch_w )
+WRITE8_MEMBER(blockade_state::blockade_coin_latch_w)
{
- blockade_state *state = space->machine().driver_data<blockade_state>();
if (data & 0x80)
{
if (BLOCKADE_LOG) mame_printf_debug("Reset Coin Latch\n");
- if (state->m_just_been_reset)
+ if (m_just_been_reset)
{
- state->m_just_been_reset = 0;
- state->m_coin_latch = 0;
+ m_just_been_reset = 0;
+ m_coin_latch = 0;
}
else
- state->m_coin_latch = 1;
+ m_coin_latch = 1;
}
if (data & 0x20)
@@ -127,7 +125,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockade_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_io_map, AS_IO, 8, blockade_state )
- AM_RANGE(0x01, 0x01) AM_READWRITE_LEGACY(blockade_input_port_0_r, blockade_coin_latch_w)
+ AM_RANGE(0x01, 0x01) AM_READWRITE(blockade_input_port_0_r, blockade_coin_latch_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("discrete", blockade_sound_freq_w)
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2")
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index 14a65e43650..407a807873b 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -38,76 +38,71 @@ static INTERRUPT_GEN( blockhl_interrupt )
device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(blockhl_state::bankedram_r)
{
- blockhl_state *state = space->machine().driver_data<blockhl_state>();
- if (state->m_palette_selected)
- return space->machine().generic.paletteram.u8[offset];
+ if (m_palette_selected)
+ return machine().generic.paletteram.u8[offset];
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(blockhl_state::bankedram_w)
{
- blockhl_state *state = space->machine().driver_data<blockhl_state>();
- if (state->m_palette_selected)
+ if (m_palette_selected)
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
-static WRITE8_HANDLER( blockhl_sh_irqtrigger_w )
+WRITE8_MEMBER(blockhl_state::blockhl_sh_irqtrigger_w)
{
- blockhl_state *state = space->machine().driver_data<blockhl_state>();
- 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);
}
/* special handlers to combine 052109 & 051960 */
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(blockhl_state::k052109_051960_r)
{
- blockhl_state *state = space->machine().driver_data<blockhl_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(blockhl_state::k052109_051960_w)
{
- blockhl_state *state = space->machine().driver_data<blockhl_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
AM_RANGE(0x1f84, 0x1f84) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE_LEGACY(blockhl_sh_irqtrigger_w)
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(blockhl_sh_irqtrigger_w)
AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW3")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("P1")
AM_RANGE(0x1f96, 0x1f96) AM_READ_PORT("P2")
AM_RANGE(0x1f97, 0x1f97) AM_READ_PORT("DSW1")
AM_RANGE(0x1f98, 0x1f98) AM_READ_PORT("DSW2")
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x57ff) AM_RAM
- AM_RANGE(0x5800, 0x5fff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE(m_ram)
+ AM_RANGE(0x5800, 0x5fff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram)
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c
index 9290b8755d5..72264a1e304 100644
--- a/src/mame/drivers/blockout.c
+++ b/src/mame/drivers/blockout.c
@@ -74,29 +74,26 @@
#define MAIN_CLOCK XTAL_10MHz
#define AUDIO_CLOCK XTAL_3_579545MHz
-static WRITE16_HANDLER( blockout_sound_command_w )
+WRITE16_MEMBER(blockout_state::blockout_sound_command_w)
{
- blockout_state *state = space->machine().driver_data<blockout_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
-static WRITE16_HANDLER( blockout_irq6_ack_w )
+WRITE16_MEMBER(blockout_state::blockout_irq6_ack_w)
{
- blockout_state *state = space->machine().driver_data<blockout_state>();
- device_set_input_line(state->m_maincpu, 6, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 6, CLEAR_LINE);
}
-static WRITE16_HANDLER( blockout_irq5_ack_w )
+WRITE16_MEMBER(blockout_state::blockout_irq5_ack_w)
{
- blockout_state *state = space->machine().driver_data<blockout_state>();
- device_set_input_line(state->m_maincpu, 5, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 5, CLEAR_LINE);
}
/*************************************
@@ -112,9 +109,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blockout_state )
AM_RANGE(0x100004, 0x100005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100006, 0x100007) AM_READ_PORT("DSW1")
AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW2")
- AM_RANGE(0x100010, 0x100011) AM_WRITE_LEGACY(blockout_irq6_ack_w)
- AM_RANGE(0x100012, 0x100013) AM_WRITE_LEGACY(blockout_irq5_ack_w)
- AM_RANGE(0x100014, 0x100015) AM_WRITE_LEGACY(blockout_sound_command_w)
+ AM_RANGE(0x100010, 0x100011) AM_WRITE(blockout_irq6_ack_w)
+ AM_RANGE(0x100012, 0x100013) AM_WRITE(blockout_irq5_ack_w)
+ AM_RANGE(0x100014, 0x100015) AM_WRITE(blockout_sound_command_w)
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* don't know, maybe reset sound CPU */
AM_RANGE(0x180000, 0x1bffff) AM_RAM_WRITE_LEGACY(blockout_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x1d4000, 0x1dffff) AM_RAM /* work RAM */
@@ -132,9 +129,9 @@ static ADDRESS_MAP_START( agress_map, AS_PROGRAM, 16, blockout_state )
AM_RANGE(0x100004, 0x100005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100006, 0x100007) AM_READ_PORT("DSW1")
AM_RANGE(0x100008, 0x100009) AM_READ_PORT("DSW2")
- AM_RANGE(0x100010, 0x100011) AM_WRITE_LEGACY(blockout_irq6_ack_w)
- AM_RANGE(0x100012, 0x100013) AM_WRITE_LEGACY(blockout_irq5_ack_w)
- AM_RANGE(0x100014, 0x100015) AM_WRITE_LEGACY(blockout_sound_command_w)
+ AM_RANGE(0x100010, 0x100011) AM_WRITE(blockout_irq6_ack_w)
+ AM_RANGE(0x100012, 0x100013) AM_WRITE(blockout_irq5_ack_w)
+ AM_RANGE(0x100014, 0x100015) AM_WRITE(blockout_sound_command_w)
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* don't know, maybe reset sound CPU */
AM_RANGE(0x180000, 0x1bffff) AM_RAM_WRITE_LEGACY(blockout_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x1d4000, 0x1dffff) AM_RAM /* work RAM */
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index 403705699df..45cd7e2164e 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -63,23 +63,21 @@ static WRITE8_DEVICE_HANDLER( dipsw_w )
state->m_dipsw = data;
}
-static READ8_HANDLER( blueprnt_sh_dipsw_r )
+READ8_MEMBER(blueprnt_state::blueprnt_sh_dipsw_r)
{
- blueprnt_state *state = space->machine().driver_data<blueprnt_state>();
- return state->m_dipsw;
+ return m_dipsw;
}
-static WRITE8_HANDLER( blueprnt_sound_command_w )
+WRITE8_MEMBER(blueprnt_state::blueprnt_sound_command_w)
{
- blueprnt_state *state = space->machine().driver_data<blueprnt_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( blueprnt_coin_counter_w )
+WRITE8_MEMBER(blueprnt_state::blueprnt_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
/*************************************
@@ -94,10 +92,10 @@ static ADDRESS_MAP_START( blueprnt_map, AS_PROGRAM, 8, blueprnt_state )
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE_LEGACY(blueprnt_videoram_w) AM_MIRROR(0x400) AM_BASE(m_videoram)
AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE(m_scrollram)
AM_RANGE(0xb000, 0xb0ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") AM_WRITE_LEGACY(blueprnt_coin_counter_w)
+ AM_RANGE(0xc000, 0xc000) AM_READ_PORT("P1") AM_WRITE(blueprnt_coin_counter_w)
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2")
- AM_RANGE(0xc003, 0xc003) AM_READ_LEGACY(blueprnt_sh_dipsw_r)
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(blueprnt_sound_command_w)
+ AM_RANGE(0xc003, 0xc003) AM_READ(blueprnt_sh_dipsw_r)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(blueprnt_sound_command_w)
AM_RANGE(0xe000, 0xe000) AM_READWRITE_LEGACY(watchdog_reset_r, blueprnt_flipscreen_w)
AM_RANGE(0xf000, 0xf3ff) AM_RAM_WRITE_LEGACY(blueprnt_colorram_w) AM_BASE(m_colorram)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index e634f14fb1d..1b3bf674534 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -21,28 +21,26 @@
// Sound section is copied from Mysterious Stones driver by Nicola, Mike, Brad
-static WRITE8_HANDLER( bogeyman_8910_latch_w )
+WRITE8_MEMBER(bogeyman_state::bogeyman_8910_latch_w)
{
- bogeyman_state *state = space->machine().driver_data<bogeyman_state>();
- state->m_psg_latch = data;
+ m_psg_latch = data;
}
-static WRITE8_HANDLER( bogeyman_8910_control_w )
+WRITE8_MEMBER(bogeyman_state::bogeyman_8910_control_w)
{
- bogeyman_state *state = space->machine().driver_data<bogeyman_state>();
// bit 0 is flipscreen
- flip_screen_set(space->machine(), data & 0x01);
+ flip_screen_set(machine(), data & 0x01);
// bit 5 goes to 8910 #0 BDIR pin
- if ((state->m_last_write & 0x20) == 0x20 && (data & 0x20) == 0x00)
- ay8910_data_address_w(space->machine().device("ay1"), state->m_last_write >> 4, state->m_psg_latch);
+ if ((m_last_write & 0x20) == 0x20 && (data & 0x20) == 0x00)
+ ay8910_data_address_w(machine().device("ay1"), m_last_write >> 4, m_psg_latch);
// bit 7 goes to 8910 #1 BDIR pin
- if ((state->m_last_write & 0x80) == 0x80 && (data & 0x80) == 0x00)
- ay8910_data_address_w(space->machine().device("ay2"), state->m_last_write >> 6, state->m_psg_latch);
+ if ((m_last_write & 0x80) == 0x80 && (data & 0x80) == 0x00)
+ ay8910_data_address_w(machine().device("ay2"), m_last_write >> 6, m_psg_latch);
- state->m_last_write = data;
+ m_last_write = data;
}
/* Memory Map */
@@ -55,8 +53,8 @@ static ADDRESS_MAP_START( bogeyman_map, AS_PROGRAM, 8, bogeyman_state )
AM_RANGE(0x2100, 0x21ff) AM_RAM_WRITE_LEGACY(bogeyman_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x2800, 0x2bff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x3000, 0x300f) AM_RAM_WRITE_LEGACY(bogeyman_paletteram_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE_LEGACY(bogeyman_8910_control_w)
- AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE_LEGACY(bogeyman_8910_latch_w)
+ AM_RANGE(0x3800, 0x3800) AM_READ_PORT("P1") AM_WRITE(bogeyman_8910_control_w)
+ AM_RANGE(0x3801, 0x3801) AM_READ_PORT("P2") AM_WRITE(bogeyman_8910_latch_w)
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW1")
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW2") AM_WRITENOP // ??? sound
AM_RANGE(0x4000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index beab5f6fb4c..e5886c722ee 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -107,19 +107,18 @@ static TIMER_CALLBACK( soundlatch_callback )
state->m_latch = param;
}
-static WRITE8_HANDLER( bombjack_soundlatch_w )
+WRITE8_MEMBER(bombjack_state::bombjack_soundlatch_w)
{
/* make all the CPUs synchronize, and only AFTER that write the new command to the latch */
- space->machine().scheduler().synchronize(FUNC(soundlatch_callback), data);
+ machine().scheduler().synchronize(FUNC(soundlatch_callback), data);
}
-static READ8_HANDLER( bombjack_soundlatch_r )
+READ8_MEMBER(bombjack_state::bombjack_soundlatch_r)
{
- bombjack_state *state = space->machine().driver_data<bombjack_state>();
int res;
- res = state->m_latch;
- state->m_latch = 0;
+ res = m_latch;
+ m_latch = 0;
return res;
}
@@ -130,11 +129,10 @@ static READ8_HANDLER( bombjack_soundlatch_r )
*
*************************************/
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(bombjack_state::irq_mask_w)
{
- bombjack_state *state = space->machine().driver_data<bombjack_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bombjack_state )
@@ -147,21 +145,21 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bombjack_state )
AM_RANGE(0x9c00, 0x9cff) AM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x9e00, 0x9e00) AM_WRITE_LEGACY(bombjack_background_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("P1")
- AM_RANGE(0xb000, 0xb000) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(irq_mask_w)
AM_RANGE(0xb001, 0xb001) AM_READ_PORT("P2")
AM_RANGE(0xb002, 0xb002) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb003, 0xb003) AM_READNOP /* watchdog reset? */
AM_RANGE(0xb004, 0xb004) AM_READ_PORT("DSW1")
AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(bombjack_flipscreen_w)
AM_RANGE(0xb005, 0xb005) AM_READ_PORT("DSW2")
- AM_RANGE(0xb800, 0xb800) AM_WRITE_LEGACY(bombjack_soundlatch_w)
+ AM_RANGE(0xb800, 0xb800) AM_WRITE(bombjack_soundlatch_w)
AM_RANGE(0xc000, 0xdfff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, bombjack_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
- AM_RANGE(0x6000, 0x6000) AM_READ_LEGACY(bombjack_soundlatch_r)
+ AM_RANGE(0x6000, 0x6000) AM_READ(bombjack_soundlatch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, bombjack_state )
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index 89ec502714b..4a1275994b4 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -28,81 +28,75 @@ static INTERRUPT_GEN( bottom9_interrupt )
device_set_input_line(device, 0, HOLD_LINE);
}
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(bottom9_state::k052109_051960_r)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(bottom9_state::k052109_051960_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
-static READ8_HANDLER( bottom9_bankedram1_r )
+READ8_MEMBER(bottom9_state::bottom9_bankedram1_r)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- if (state->m_k052109_selected)
+ if (m_k052109_selected)
return k052109_051960_r(space, offset);
else
{
- if (state->m_zoomreadroms)
- return k051316_rom_r(state->m_k051316, offset);
+ if (m_zoomreadroms)
+ return k051316_rom_r(m_k051316, offset);
else
- return k051316_r(state->m_k051316, offset);
+ return k051316_r(m_k051316, offset);
}
}
-static WRITE8_HANDLER( bottom9_bankedram1_w )
+WRITE8_MEMBER(bottom9_state::bottom9_bankedram1_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- if (state->m_k052109_selected)
+ if (m_k052109_selected)
k052109_051960_w(space, offset, data);
else
- k051316_w(state->m_k051316, offset, data);
+ k051316_w(m_k051316, offset, data);
}
-static READ8_HANDLER( bottom9_bankedram2_r )
+READ8_MEMBER(bottom9_state::bottom9_bankedram2_r)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- if (state->m_k052109_selected)
+ if (m_k052109_selected)
return k052109_051960_r(space, offset + 0x2000);
else
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
}
-static WRITE8_HANDLER( bottom9_bankedram2_w )
+WRITE8_MEMBER(bottom9_state::bottom9_bankedram2_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- if (state->m_k052109_selected)
+ if (m_k052109_selected)
k052109_051960_w(space, offset + 0x2000, data);
else
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
}
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(bottom9_state::bankswitch_w)
{
int bank;
@@ -116,34 +110,32 @@ static WRITE8_HANDLER( bankswitch_w )
else
bank = ((data & 0x0e) >> 1);
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
}
-static WRITE8_HANDLER( bottom9_1f90_w )
+WRITE8_MEMBER(bottom9_state::bottom9_1f90_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
/* bits 0/1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 2 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
/* bit 3 = disable video */
- state->m_video_enable = ~data & 0x08;
+ m_video_enable = ~data & 0x08;
/* bit 4 = enable 051316 ROM reading */
- state->m_zoomreadroms = data & 0x10;
+ m_zoomreadroms = data & 0x10;
/* bit 5 = RAM bank */
- state->m_k052109_selected = data & 0x20;
+ m_k052109_selected = data & 0x20;
}
-static WRITE8_HANDLER( bottom9_sh_irqtrigger_w )
+WRITE8_MEMBER(bottom9_state::bottom9_sh_irqtrigger_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- 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);
}
static INTERRUPT_GEN( bottom9_sound_interrupt )
@@ -153,42 +145,40 @@ static INTERRUPT_GEN( bottom9_sound_interrupt )
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(bottom9_state::nmi_enable_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
- state->m_nmienable = data;
+ m_nmienable = data;
}
-static WRITE8_HANDLER( sound_bank_w )
+WRITE8_MEMBER(bottom9_state::sound_bank_w)
{
- bottom9_state *state = space->machine().driver_data<bottom9_state>();
int bank_A, bank_B;
bank_A = ((data >> 0) & 0x03);
bank_B = ((data >> 2) & 0x03);
- k007232_set_bank(state->m_k007232_1, bank_A, bank_B);
+ k007232_set_bank(m_k007232_1, bank_A, bank_B);
bank_A = ((data >> 4) & 0x03);
bank_B = ((data >> 6) & 0x03);
- k007232_set_bank(state->m_k007232_2, bank_A, bank_B);
+ k007232_set_bank(m_k007232_2, bank_A, bank_B);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bottom9_state )
- AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(bottom9_bankedram1_r, bottom9_bankedram1_w)
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE_LEGACY(bankswitch_w)
- AM_RANGE(0x1f90, 0x1f90) AM_WRITE_LEGACY(bottom9_1f90_w)
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bottom9_bankedram1_r, bottom9_bankedram1_w)
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITE(bankswitch_w)
+ AM_RANGE(0x1f90, 0x1f90) AM_WRITE(bottom9_1f90_w)
AM_RANGE(0x1fa0, 0x1fa0) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1fb0, 0x1fb0) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x1fc0, 0x1fc0) AM_WRITE_LEGACY(bottom9_sh_irqtrigger_w)
+ AM_RANGE(0x1fc0, 0x1fc0) AM_WRITE(bottom9_sh_irqtrigger_w)
AM_RANGE(0x1fd0, 0x1fd0) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1fd1, 0x1fd1) AM_READ_PORT("P1")
AM_RANGE(0x1fd2, 0x1fd2) AM_READ_PORT("P2")
AM_RANGE(0x1fd3, 0x1fd3) AM_READ_PORT("DSW1")
AM_RANGE(0x1fe0, 0x1fe0) AM_READ_PORT("DSW2")
AM_RANGE(0x1ff0, 0x1fff) AM_DEVWRITE_LEGACY("k051316", k051316_ctrl_w)
- AM_RANGE(0x2000, 0x27ff) AM_READWRITE_LEGACY(bottom9_bankedram2_r, bottom9_bankedram2_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x2000, 0x27ff) AM_READWRITE(bottom9_bankedram2_r, bottom9_bankedram2_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -197,11 +187,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, bottom9_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(sound_bank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w)
AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w)
AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(nmi_enable_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c
index ea8a7874285..cafff15615e 100644
--- a/src/mame/drivers/brkthru.c
+++ b/src/mame/drivers/brkthru.c
@@ -65,38 +65,35 @@
*
*************************************/
-static WRITE8_HANDLER( brkthru_1803_w )
+WRITE8_MEMBER(brkthru_state::brkthru_1803_w)
{
- brkthru_state *state = space->machine().driver_data<brkthru_state>();
/* bit 0 = NMI enable */
- state->m_nmi_mask = ~data & 1;
+ m_nmi_mask = ~data & 1;
if(data & 2)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
/* bit 1 = ? maybe IRQ acknowledge */
}
-static WRITE8_HANDLER( darwin_0803_w )
+WRITE8_MEMBER(brkthru_state::darwin_0803_w)
{
- brkthru_state *state = space->machine().driver_data<brkthru_state>();
/* bit 0 = NMI enable */
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
logerror("0803 %02X\n",data);
if(data & 2)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
/* bit 1 = ? maybe IRQ acknowledge */
}
-static WRITE8_HANDLER( brkthru_soundlatch_w )
+WRITE8_MEMBER(brkthru_state::brkthru_soundlatch_w)
{
- brkthru_state *state = space->machine().driver_data<brkthru_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
static INPUT_CHANGED( coin_inserted )
@@ -126,8 +123,8 @@ static ADDRESS_MAP_START( brkthru_map, AS_PROGRAM, 8, brkthru_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("DSW1")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW2/COIN")
AM_RANGE(0x1800, 0x1801) AM_WRITE_LEGACY(brkthru_1800_w) /* bg scroll and color, ROM bank selection, flip screen */
- AM_RANGE(0x1802, 0x1802) AM_WRITE_LEGACY(brkthru_soundlatch_w)
- AM_RANGE(0x1803, 0x1803) AM_WRITE_LEGACY(brkthru_1803_w) /* NMI enable, + ? */
+ AM_RANGE(0x1802, 0x1802) AM_WRITE(brkthru_soundlatch_w)
+ AM_RANGE(0x1803, 0x1803) AM_WRITE(brkthru_1803_w) /* NMI enable, + ? */
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -144,8 +141,8 @@ static ADDRESS_MAP_START( darwin_map, AS_PROGRAM, 8, brkthru_state )
AM_RANGE(0x0802, 0x0802) AM_READ_PORT("DSW1")
AM_RANGE(0x0803, 0x0803) AM_READ_PORT("DSW2/COIN")
AM_RANGE(0x0800, 0x0801) AM_WRITE_LEGACY(brkthru_1800_w) /* bg scroll and color, ROM bank selection, flip screen */
- AM_RANGE(0x0802, 0x0802) AM_WRITE_LEGACY(brkthru_soundlatch_w)
- AM_RANGE(0x0803, 0x0803) AM_WRITE_LEGACY(darwin_0803_w) /* NMI enable, + ? */
+ AM_RANGE(0x0802, 0x0802) AM_WRITE(brkthru_soundlatch_w)
+ AM_RANGE(0x0803, 0x0803) AM_WRITE(darwin_0803_w) /* NMI enable, + ? */
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index ec921b8b480..ee7dbc9f2f8 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -158,23 +158,22 @@ enum
};
-static WRITE8_HANDLER( audio_command_w );
-static READ8_HANDLER( audio_command_r );
-static READ8_HANDLER( zoar_dsw1_read );
+
+
+
static UINT8 *decrypted;
-static WRITE8_HANDLER( audio_nmi_enable_w )
+WRITE8_MEMBER(btime_state::audio_nmi_enable_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
/* for most games, this serves as the NMI enable for the audio CPU; however,
lnc and disco use bit 0 of the first AY-8910's port A instead; many other
games also write there in addition to this address */
- if (state->m_audio_nmi_enable_type == AUDIO_ENABLE_DIRECT)
+ if (m_audio_nmi_enable_type == AUDIO_ENABLE_DIRECT)
{
- 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);
}
}
@@ -237,126 +236,120 @@ static void btime_decrypt( address_space *space )
}
}
-static WRITE8_HANDLER( lnc_w )
+WRITE8_MEMBER(btime_state::lnc_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
if (offset <= 0x3bff) ;
- else if (offset >= 0x3c00 && offset <= 0x3fff) { lnc_videoram_w(space, offset - 0x3c00, data); return; }
- else if (offset >= 0x7c00 && offset <= 0x7fff) { lnc_mirrorvideoram_w(space, offset - 0x7c00, data); return; }
+ else if (offset >= 0x3c00 && offset <= 0x3fff) { lnc_videoram_w(&space, offset - 0x3c00, data); return; }
+ else if (offset >= 0x7c00 && offset <= 0x7fff) { lnc_mirrorvideoram_w(&space, offset - 0x7c00, data); return; }
else if (offset == 0x8000) { return; } /* AM_NOP */
- else if (offset == 0x8001) { bnj_video_control_w(space, 0, data); return; }
+ else if (offset == 0x8001) { bnj_video_control_w(&space, 0, data); return; }
else if (offset == 0x8003) ;
else if (offset == 0x9000) { return; } /* AM_NOP */
else if (offset == 0x9002) { audio_command_w(space, 0, data); return; }
else if (offset >= 0xb000 && offset <= 0xb1ff) ;
- else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space->device().tag(), cpu_get_pc(&space->device()), data, offset);
+ else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space.device().tag(), cpu_get_pc(&space.device()), data, offset);
- state->m_rambase[offset] = data;
+ m_rambase[offset] = data;
/* Swap bits 5 & 6 for opcodes */
decrypted[offset] = swap_bits_5_6(data);
}
-static WRITE8_HANDLER( mmonkey_w )
+WRITE8_MEMBER(btime_state::mmonkey_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
if (offset <= 0x3bff) ;
- else if (offset >= 0x3c00 && offset <= 0x3fff) { lnc_videoram_w(space, offset - 0x3c00, data); return; }
- else if (offset >= 0x7c00 && offset <= 0x7fff) { lnc_mirrorvideoram_w(space, offset - 0x7c00, data); return; }
- else if (offset == 0x8001) { bnj_video_control_w(space, 0, data); return; }
+ else if (offset >= 0x3c00 && offset <= 0x3fff) { lnc_videoram_w(&space, offset - 0x3c00, data); return; }
+ else if (offset >= 0x7c00 && offset <= 0x7fff) { lnc_mirrorvideoram_w(&space, offset - 0x7c00, data); return; }
+ else if (offset == 0x8001) { bnj_video_control_w(&space, 0, data); return; }
else if (offset == 0x8003) ;
else if (offset == 0x9000) { return; } /* AM_NOP */
else if (offset == 0x9002) { audio_command_w(space, 0, data); return; }
- else if (offset >= 0xb000 && offset <= 0xbfff) { mmonkey_protection_w(space, offset - 0xb000, data); return; }
- else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space->device().tag(), cpu_get_pc(&space->device()), data, offset);
+ else if (offset >= 0xb000 && offset <= 0xbfff) { mmonkey_protection_w(&space, offset - 0xb000, data); return; }
+ else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space.device().tag(), cpu_get_pc(&space.device()), data, offset);
- state->m_rambase[offset] = data;
+ m_rambase[offset] = data;
/* Swap bits 5 & 6 for opcodes */
decrypted[offset] = swap_bits_5_6(data);
}
-static WRITE8_HANDLER( btime_w )
+WRITE8_MEMBER(btime_state::btime_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
if (offset <= 0x07ff) ;
- else if (offset >= 0x0c00 && offset <= 0x0c0f) btime_paletteram_w(space, offset - 0x0c00, data);
+ else if (offset >= 0x0c00 && offset <= 0x0c0f) btime_paletteram_w(&space, offset - 0x0c00, data);
else if (offset >= 0x1000 && offset <= 0x17ff) ;
- else if (offset >= 0x1800 && offset <= 0x1bff) btime_mirrorvideoram_w(space, offset - 0x1800, data);
- else if (offset >= 0x1c00 && offset <= 0x1fff) btime_mirrorcolorram_w(space, offset - 0x1c00, data);
- else if (offset == 0x4002) btime_video_control_w(space, 0, data);
+ else if (offset >= 0x1800 && offset <= 0x1bff) btime_mirrorvideoram_w(&space, offset - 0x1800, data);
+ else if (offset >= 0x1c00 && offset <= 0x1fff) btime_mirrorcolorram_w(&space, offset - 0x1c00, data);
+ else if (offset == 0x4002) btime_video_control_w(&space, 0, data);
else if (offset == 0x4003) audio_command_w(space, 0, data);
- else if (offset == 0x4004) bnj_scroll1_w(space, 0, data);
- else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space->device().tag(), cpu_get_pc(&space->device()), data, offset);
+ else if (offset == 0x4004) bnj_scroll1_w(&space, 0, data);
+ else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space.device().tag(), cpu_get_pc(&space.device()), data, offset);
- state->m_rambase[offset] = data;
+ m_rambase[offset] = data;
- btime_decrypt(space);
+ btime_decrypt(&space);
}
-static WRITE8_HANDLER( tisland_w )
+WRITE8_MEMBER(btime_state::tisland_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
if (offset <= 0x07ff) ;
- else if (offset >= 0x0c00 && offset <= 0x0c0f) btime_paletteram_w(space, offset - 0x0c00, data);
+ else if (offset >= 0x0c00 && offset <= 0x0c0f) btime_paletteram_w(&space, offset - 0x0c00, data);
else if (offset >= 0x1000 && offset <= 0x17ff) ;
- else if (offset >= 0x1800 && offset <= 0x1bff) btime_mirrorvideoram_w(space, offset - 0x1800, data);
- else if (offset >= 0x1c00 && offset <= 0x1fff) btime_mirrorcolorram_w(space, offset - 0x1c00, data);
- else if (offset == 0x4002) btime_video_control_w(space, 0, data);
+ else if (offset >= 0x1800 && offset <= 0x1bff) btime_mirrorvideoram_w(&space, offset - 0x1800, data);
+ else if (offset >= 0x1c00 && offset <= 0x1fff) btime_mirrorcolorram_w(&space, offset - 0x1c00, data);
+ else if (offset == 0x4002) btime_video_control_w(&space, 0, data);
else if (offset == 0x4003) audio_command_w(space, 0, data);
- else if (offset == 0x4004) bnj_scroll1_w(space, 0, data);
- else if (offset == 0x4005) bnj_scroll2_w(space, 0, data);
-// else if (offset == 0x8000) btime_video_control_w(space,0,data);
- else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space->device().tag(), cpu_get_pc(&space->device()), data, offset);
+ else if (offset == 0x4004) bnj_scroll1_w(&space, 0, data);
+ else if (offset == 0x4005) bnj_scroll2_w(&space, 0, data);
+// else if (offset == 0x8000) btime_video_control_w(&space,0,data);
+ else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space.device().tag(), cpu_get_pc(&space.device()), data, offset);
- state->m_rambase[offset] = data;
+ m_rambase[offset] = data;
- btime_decrypt(space);
+ btime_decrypt(&space);
}
-static WRITE8_HANDLER( zoar_w )
+WRITE8_MEMBER(btime_state::zoar_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
if (offset <= 0x07ff) ;
else if (offset >= 0x8000 && offset <= 0x87ff) ;
- else if (offset >= 0x8800 && offset <= 0x8bff) btime_mirrorvideoram_w(space, offset - 0x8800, data);
- else if (offset >= 0x8c00 && offset <= 0x8fff) btime_mirrorcolorram_w(space, offset - 0x8c00, data);
- else if (offset == 0x9000) zoar_video_control_w(space, 0, data);
+ else if (offset >= 0x8800 && offset <= 0x8bff) btime_mirrorvideoram_w(&space, offset - 0x8800, data);
+ else if (offset >= 0x8c00 && offset <= 0x8fff) btime_mirrorcolorram_w(&space, offset - 0x8c00, data);
+ else if (offset == 0x9000) zoar_video_control_w(&space, 0, data);
else if (offset >= 0x9800 && offset <= 0x9803) ;
- else if (offset == 0x9804) bnj_scroll2_w(space, 0, data);
- else if (offset == 0x9805) bnj_scroll1_w(space, 0, data);
+ else if (offset == 0x9804) bnj_scroll2_w(&space, 0, data);
+ else if (offset == 0x9805) bnj_scroll1_w(&space, 0, data);
else if (offset == 0x9806) audio_command_w(space, 0, data);
- else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space->device().tag(), cpu_get_pc(&space->device()), data, offset);
+ else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space.device().tag(), cpu_get_pc(&space.device()), data, offset);
- state->m_rambase[offset] = data;
+ m_rambase[offset] = data;
- btime_decrypt(space);
+ btime_decrypt(&space);
}
-static WRITE8_HANDLER( disco_w )
+WRITE8_MEMBER(btime_state::disco_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
if (offset <= 0x04ff) ;
- else if (offset >= 0x2000 && offset <= 0x7fff) deco_charram_w(space, offset - 0x2000, data);
+ else if (offset >= 0x2000 && offset <= 0x7fff) deco_charram_w(&space, offset - 0x2000, data);
else if (offset >= 0x8000 && offset <= 0x881f) ;
else if (offset == 0x9a00) audio_command_w(space, 0, data);
- else if (offset == 0x9c00) disco_video_control_w(space, 0, data);
- else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space->device().tag(), cpu_get_pc(&space->device()), data, offset);
+ else if (offset == 0x9c00) disco_video_control_w(&space, 0, data);
+ else logerror("CPU '%s' PC %04x: warning - write %02x to unmapped memory address %04x\n", space.device().tag(), cpu_get_pc(&space.device()), data, offset);
- state->m_rambase[offset] = data;
+ m_rambase[offset] = data;
- btime_decrypt(space);
+ btime_decrypt(&space);
}
static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state )
- AM_RANGE(0x0000, 0xffff) AM_WRITE_LEGACY(btime_w) /* override the following entries to */
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(btime_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x0c00, 0x0c0f) AM_WRITE_LEGACY(btime_paletteram_w) AM_BASE_GENERIC(paletteram)
@@ -367,7 +360,7 @@ static ADDRESS_MAP_START( btime_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITENOP
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("P2")
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(btime_video_control_w)
- AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_WRITE(audio_command_w)
AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(bnj_scroll1_w)
AM_RANGE(0xb000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -385,7 +378,7 @@ static ADDRESS_MAP_START( cookrace_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(bnj_video_control_w)
AM_RANGE(0xe300, 0xe300) AM_READ_PORT("DSW1") /* mirror address used on high score name entry */
/* screen */
- AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW2") AM_WRITE(audio_command_w)
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P1")
AM_RANGE(0xe003, 0xe003) AM_READ_PORT("P2")
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM")
@@ -393,7 +386,7 @@ static ADDRESS_MAP_START( cookrace_map, AS_PROGRAM, 8, btime_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8, btime_state )
- AM_RANGE(0x0000, 0xffff) AM_WRITE_LEGACY(tisland_w) /* override the following entries to */
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(tisland_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x0c00, 0x0c0f) AM_WRITE_LEGACY(btime_paletteram_w) AM_BASE_GENERIC(paletteram)
@@ -404,14 +397,14 @@ static ADDRESS_MAP_START( tisland_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITENOP
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("P2")
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(btime_video_control_w)
- AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x4003, 0x4003) AM_READ_PORT("DSW1") AM_WRITE(audio_command_w)
AM_RANGE(0x4004, 0x4004) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(bnj_scroll1_w)
AM_RANGE(0x4005, 0x4005) AM_WRITE_LEGACY(bnj_scroll2_w)
AM_RANGE(0x9000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( zoar_map, AS_PROGRAM, 8, btime_state )
- AM_RANGE(0x0000, 0xffff) AM_WRITE_LEGACY(zoar_w) /* override the following entries to */
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(zoar_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x8000, 0x83ff) AM_WRITEONLY AM_BASE_SIZE(m_videoram, m_videoram_size)
@@ -419,19 +412,19 @@ static ADDRESS_MAP_START( zoar_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x8800, 0x8bff) AM_WRITE_LEGACY(btime_mirrorvideoram_w)
AM_RANGE(0x8c00, 0x8fff) AM_WRITE_LEGACY(btime_mirrorcolorram_w)
AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(zoar_video_control_w)
- AM_RANGE(0x9800, 0x9800) AM_READ_LEGACY(zoar_dsw1_read)
+ AM_RANGE(0x9800, 0x9800) AM_READ(zoar_dsw1_read)
AM_RANGE(0x9801, 0x9801) AM_READ_PORT("DSW2")
AM_RANGE(0x9802, 0x9802) AM_READ_PORT("P1")
AM_RANGE(0x9803, 0x9803) AM_READ_PORT("P2")
AM_RANGE(0x9800, 0x9803) AM_WRITEONLY AM_BASE(m_zoar_scrollram)
AM_RANGE(0x9804, 0x9804) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(bnj_scroll2_w)
AM_RANGE(0x9805, 0x9805) AM_WRITE_LEGACY(bnj_scroll1_w)
- AM_RANGE(0x9806, 0x9806) AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x9806, 0x9806) AM_WRITE(audio_command_w)
AM_RANGE(0xd000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( lnc_map, AS_PROGRAM, 8, btime_state )
- AM_RANGE(0x0000, 0xffff) AM_WRITE_LEGACY(lnc_w) /* override the following entries to */
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(lnc_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x3bff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x3c00, 0x3fff) AM_RAM_WRITE_LEGACY(lnc_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
@@ -442,13 +435,13 @@ static ADDRESS_MAP_START( lnc_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x8003, 0x8003) AM_WRITEONLY AM_BASE(m_lnc_charbank)
AM_RANGE(0x9000, 0x9000) AM_READ_PORT("P1") AM_WRITENOP /* IRQ ack??? */
AM_RANGE(0x9001, 0x9001) AM_READ_PORT("P2")
- AM_RANGE(0x9002, 0x9002) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x9002, 0x9002) AM_READ_PORT("SYSTEM") AM_WRITE(audio_command_w)
AM_RANGE(0xb000, 0xb1ff) AM_RAM
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mmonkey_map, AS_PROGRAM, 8, btime_state )
- AM_RANGE(0x0000, 0xffff) AM_WRITE_LEGACY(mmonkey_w) /* override the following entries to */
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(mmonkey_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x3bff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x3c00, 0x3fff) AM_RAM_WRITE_LEGACY(lnc_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
@@ -459,7 +452,7 @@ static ADDRESS_MAP_START( mmonkey_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x8003, 0x8003) AM_WRITEONLY AM_BASE(m_lnc_charbank)
AM_RANGE(0x9000, 0x9000) AM_READ_PORT("P1") AM_WRITENOP /* IRQ ack??? */
AM_RANGE(0x9001, 0x9001) AM_READ_PORT("P2")
- AM_RANGE(0x9002, 0x9002) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x9002, 0x9002) AM_READ_PORT("SYSTEM") AM_WRITE(audio_command_w)
AM_RANGE(0xb000, 0xbfff) AM_READWRITE_LEGACY(mmonkey_protection_r, mmonkey_protection_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -468,7 +461,7 @@ static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1")
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(bnj_video_control_w)
- AM_RANGE(0x1002, 0x1002) AM_READ_PORT("P1") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x1002, 0x1002) AM_READ_PORT("P1") AM_WRITE(audio_command_w)
AM_RANGE(0x1003, 0x1003) AM_READ_PORT("P2")
AM_RANGE(0x1004, 0x1004) AM_READ_PORT("SYSTEM")
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
@@ -483,7 +476,7 @@ static ADDRESS_MAP_START( bnj_map, AS_PROGRAM, 8, btime_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( disco_map, AS_PROGRAM, 8, btime_state )
- AM_RANGE(0x0000, 0xffff) AM_WRITE_LEGACY(disco_w) /* override the following entries to */
+ AM_RANGE(0x0000, 0xffff) AM_WRITE(disco_w) /* override the following entries to */
/* support ROM decryption */
AM_RANGE(0x0000, 0x04ff) AM_RAM AM_BASE(m_rambase)
AM_RANGE(0x2000, 0x7fff) AM_RAM_WRITE_LEGACY(deco_charram_w) AM_BASE(m_deco_charram)
@@ -494,7 +487,7 @@ static ADDRESS_MAP_START( disco_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x9200, 0x9200) AM_READ_PORT("P1")
AM_RANGE(0x9400, 0x9400) AM_READ_PORT("P2")
AM_RANGE(0x9800, 0x9800) AM_READ_PORT("DSW1")
- AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x9a00, 0x9a00) AM_READ_PORT("DSW2") AM_WRITE(audio_command_w)
AM_RANGE(0x9c00, 0x9c00) AM_READ_PORT("VBLANK") AM_WRITE_LEGACY(disco_video_control_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -507,8 +500,8 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, btime_state )
AM_RANGE(0x4000, 0x5fff) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
AM_RANGE(0x6000, 0x7fff) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
AM_RANGE(0x8000, 0x9fff) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
- AM_RANGE(0xa000, 0xbfff) AM_READ_LEGACY(audio_command_r)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE_LEGACY(audio_nmi_enable_w)
+ AM_RANGE(0xa000, 0xbfff) AM_READ(audio_command_r)
+ AM_RANGE(0xc000, 0xdfff) AM_WRITE(audio_nmi_enable_w)
AM_RANGE(0xe000, 0xefff) AM_MIRROR(0x1000) AM_ROM
ADDRESS_MAP_END
@@ -546,23 +539,21 @@ static INPUT_CHANGED( coin_inserted_nmi_lo )
}
-static WRITE8_HANDLER( audio_command_w )
+WRITE8_MEMBER(btime_state::audio_command_w)
{
- btime_state *state = space->machine().driver_data<btime_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE);
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
}
-static READ8_HANDLER( audio_command_r )
+READ8_MEMBER(btime_state::audio_command_r)
{
- btime_state *state = space->machine().driver_data<btime_state>();
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
return soundlatch_r(space, offset);
}
-static READ8_HANDLER( zoar_dsw1_read )
+READ8_MEMBER(btime_state::zoar_dsw1_read)
{
- return (!space->machine().primary_screen->vblank() << 7) | (input_port_read(space->machine(), "DSW1") & 0x7f);
+ return (!machine().primary_screen->vblank() << 7) | (input_port_read(machine(), "DSW1") & 0x7f);
}
static INPUT_PORTS_START( btime )
@@ -2085,9 +2076,9 @@ static void decrypt_C10707_cpu(running_machine &machine, const char *cputag)
decrypted = decrypt;
}
-static READ8_HANDLER( wtennis_reset_hack_r )
+READ8_MEMBER(btime_state::wtennis_reset_hack_r)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
/* Otherwise the game goes into test mode and there is no way out that I
can see. I'm not sure how it can work, it probably somehow has to do
@@ -2192,7 +2183,7 @@ static DRIVER_INIT( wtennis )
btime_state *state = machine.driver_data<btime_state>();
decrypt_C10707_cpu(machine, "maincpu");
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc15f, 0xc15f, FUNC(wtennis_reset_hack_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc15f, 0xc15f, read8_delegate(FUNC(btime_state::wtennis_reset_hack_r),state));
machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0200, 0x0fff, "bank10");
memory_set_bankptr(machine, "bank10", machine.region("audiocpu")->base() + 0xe200);
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index e18a012e6ca..259f78252d4 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -86,9 +86,9 @@ Dip locations and factory settings verified from dip listing
#include "buggychl.lh"
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(buggychl_state::bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x07); // shall we check if data&7 < # banks?
+ memory_set_bank(machine(), "bank1", data & 0x07); // shall we check if data&7 < # banks?
}
static TIMER_CALLBACK( nmi_callback )
@@ -101,32 +101,30 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(buggychl_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(buggychl_state::nmi_disable_w)
{
- buggychl_state *state = space->machine().driver_data<buggychl_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(buggychl_state::nmi_enable_w)
{
- buggychl_state *state = space->machine().driver_data<buggychl_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
-static WRITE8_HANDLER( sound_enable_w )
+WRITE8_MEMBER(buggychl_state::sound_enable_w)
{
- space->machine().sound().system_enable(data & 1);
+ machine().sound().system_enable(data & 1);
}
@@ -140,7 +138,7 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state )
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1") AM_WRITE_LEGACY(buggychl_chargen_w) AM_BASE(m_charram)
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0xd100, 0xd100) AM_WRITE_LEGACY(buggychl_ctrl_w)
- AM_RANGE(0xd200, 0xd200) AM_WRITE_LEGACY(bankswitch_w)
+ AM_RANGE(0xd200, 0xd200) AM_WRITE(bankswitch_w)
AM_RANGE(0xd300, 0xd300) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xd303, 0xd303) AM_WRITE_LEGACY(buggychl_sprite_lookup_bank_w)
AM_RANGE(0xd400, 0xd400) AM_DEVREADWRITE_LEGACY("bmcu", buggychl_mcu_r, buggychl_mcu_w)
@@ -154,7 +152,7 @@ static ADDRESS_MAP_START( buggychl_map, AS_PROGRAM, 8, buggychl_state )
AM_RANGE(0xd609, 0xd609) AM_READ_PORT("IN1") /* coin + accelerator */
// AM_RANGE(0xd60a, 0xd60a) // other inputs, not used?
// AM_RANGE(0xd60b, 0xd60b) // other inputs, not used?
- AM_RANGE(0xd610, 0xd610) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xd610, 0xd610) AM_WRITE(sound_command_w)
AM_RANGE(0xd618, 0xd618) AM_WRITENOP /* accelerator clear */
AM_RANGE(0xd700, 0xd7ff) AM_WRITE_LEGACY(paletteram_xxxxRRRRGGGGBBBB_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd840, 0xd85f) AM_WRITEONLY AM_BASE(m_scrollv)
@@ -173,9 +171,9 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, buggychl_state )
AM_RANGE(0x4830, 0x4830) AM_RAM /* TRBL/BASS for the 7630 on the MSM5232 output */
AM_RANGE(0x5000, 0x5000) AM_READ_LEGACY(soundlatch_r)
// AM_RANGE(0x5001, 0x5001) AM_READNOP /* is command pending? */
- AM_RANGE(0x5001, 0x5001) AM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0x5002, 0x5002) AM_WRITE_LEGACY(nmi_disable_w)
- AM_RANGE(0x5003, 0x5003) AM_WRITE_LEGACY(sound_enable_w)
+ AM_RANGE(0x5001, 0x5001) AM_WRITE(nmi_enable_w)
+ AM_RANGE(0x5002, 0x5002) AM_WRITE(nmi_disable_w)
+ AM_RANGE(0x5003, 0x5003) AM_WRITE(sound_enable_w)
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostics ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c
index 25d4f4c6f91..202f954776a 100644
--- a/src/mame/drivers/bwing.c
+++ b/src/mame/drivers/bwing.c
@@ -43,62 +43,56 @@ static INTERRUPT_GEN ( bwp3_interrupt )
//****************************************************************************
// Memory and I/O Handlers
-static WRITE8_HANDLER( bwp12_sharedram1_w )
+WRITE8_MEMBER(bwing_state::bwp12_sharedram1_w)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
- state->m_bwp1_sharedram1[offset] = state->m_bwp2_sharedram1[offset] = data;
+ m_bwp1_sharedram1[offset] = m_bwp2_sharedram1[offset] = data;
}
-static WRITE8_HANDLER( bwp3_u8F_w )
+WRITE8_MEMBER(bwing_state::bwp3_u8F_w)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
- state->m_bwp3_u8F_d = data; // prepares custom chip for various operations
+ m_bwp3_u8F_d = data; // prepares custom chip for various operations
}
-static WRITE8_HANDLER( bwp3_nmimask_w )
+WRITE8_MEMBER(bwing_state::bwp3_nmimask_w)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
- state->m_bwp3_nmimask = data & 0x80;
+ m_bwp3_nmimask = data & 0x80;
}
-static WRITE8_HANDLER( bwp3_nmiack_w )
+WRITE8_MEMBER(bwing_state::bwp3_nmiack_w)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
}
-static READ8_HANDLER( bwp1_io_r )
+READ8_MEMBER(bwing_state::bwp1_io_r)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
- if (offset == 0) return(input_port_read(space->machine(), "DSW0"));
- if (offset == 1) return(input_port_read(space->machine(), "DSW1"));
- if (offset == 2) return(input_port_read(space->machine(), "IN0"));
- if (offset == 3) return(input_port_read(space->machine(), "IN1"));
- if (offset == 4) return(input_port_read(space->machine(), "IN2"));
+ if (offset == 0) return(input_port_read(machine(), "DSW0"));
+ if (offset == 1) return(input_port_read(machine(), "DSW1"));
+ if (offset == 2) return(input_port_read(machine(), "IN0"));
+ if (offset == 3) return(input_port_read(machine(), "IN1"));
+ if (offset == 4) return(input_port_read(machine(), "IN2"));
- return((state->m_bwp123_membase[0])[0x1b00 + offset]);
+ return((m_bwp123_membase[0])[0x1b00 + offset]);
}
-static WRITE8_HANDLER( bwp1_ctrl_w )
+WRITE8_MEMBER(bwing_state::bwp1_ctrl_w)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
switch (offset)
{
// MSSTB
- case 0: device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, ASSERT_LINE); break;
+ case 0: device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE); break;
// IRQACK
- case 1: device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE); break;
+ case 1: device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE); break;
// FIRQACK
- case 2: device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE); break;
+ case 2: device_set_input_line(m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE); break;
// NMIACK
- case 3: device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE); break;
+ case 3: device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE); break;
// SWAP(bank-swaps sprite RAM between 1800 & 1900; ignored bc. they're treated as a single chunk.)
case 4: break;
@@ -106,11 +100,11 @@ static WRITE8_HANDLER( bwp1_ctrl_w )
// SNDREQ
case 5:
if (data == 0x80) // protection trick to screw CPU1 & 3
- device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, ASSERT_LINE); // SNMI
+ device_set_input_line(m_subcpu, INPUT_LINE_NMI, ASSERT_LINE); // SNMI
else
{
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ
+ device_set_input_line(m_audiocpu, DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ
}
break;
@@ -122,28 +116,27 @@ static WRITE8_HANDLER( bwp1_ctrl_w )
}
#if BW_DEBUG
- (state->m_bwp123_membase[0])[0x1c00 + offset] = data;
+ (m_bwp123_membase[0])[0x1c00 + offset] = data;
#endif
}
-static WRITE8_HANDLER( bwp2_ctrl_w )
+WRITE8_MEMBER(bwing_state::bwp2_ctrl_w)
{
- bwing_state *state = space->machine().driver_data<bwing_state>();
switch (offset)
{
- case 0: device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, ASSERT_LINE); break; // SMSTB
+ case 0: device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE); break; // SMSTB
- case 1: device_set_input_line(state->m_subcpu, M6809_FIRQ_LINE, CLEAR_LINE); break;
+ case 1: device_set_input_line(m_subcpu, M6809_FIRQ_LINE, CLEAR_LINE); break;
- case 2: device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, CLEAR_LINE); break;
+ case 2: device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE); break;
- case 3: device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, CLEAR_LINE); break;
+ case 3: device_set_input_line(m_subcpu, INPUT_LINE_NMI, CLEAR_LINE); break;
}
#if BW_DEBUG
{
- (state->m_bwp123_membase[1])[0x1800 + offset] = data;
+ (m_bwp123_membase[1])[0x1800 + offset] = data;
}
#endif
}
@@ -153,15 +146,15 @@ static WRITE8_HANDLER( bwp2_ctrl_w )
// Main CPU
static ADDRESS_MAP_START( bwp1_map, AS_PROGRAM, 8, bwing_state )
- AM_RANGE(0x1b00, 0x1b07) AM_READ_LEGACY(bwp1_io_r)
- AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE_LEGACY(bwp12_sharedram1_w) AM_BASE(m_bwp1_sharedram1)
+ AM_RANGE(0x1b00, 0x1b07) AM_READ(bwp1_io_r)
+ AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(bwp12_sharedram1_w) AM_BASE(m_bwp1_sharedram1)
AM_RANGE(0x0800, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE_LEGACY(bwing_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x1400, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x19ff) AM_RAM_WRITE_LEGACY(bwing_spriteram_w) AM_BASE(m_spriteram)
AM_RANGE(0x1a00, 0x1aff) AM_RAM_WRITE_LEGACY(bwing_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0x1b00, 0x1b07) AM_RAM_WRITE_LEGACY(bwing_scrollreg_w)
- AM_RANGE(0x1c00, 0x1c07) AM_RAM_WRITE_LEGACY(bwp1_ctrl_w)
+ AM_RANGE(0x1c00, 0x1c07) AM_RAM_WRITE(bwp1_ctrl_w)
AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(bwing_scrollram_r, bwing_scrollram_w)
AM_RANGE(0x4000, 0xffff) AM_ROM // "B-Wings US" writes to 9631-9632(debug?)
ADDRESS_MAP_END
@@ -169,9 +162,9 @@ ADDRESS_MAP_END
// Sub CPU
static ADDRESS_MAP_START( bwp2_map, AS_PROGRAM, 8, bwing_state )
- AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE_LEGACY(bwp12_sharedram1_w) AM_BASE(m_bwp2_sharedram1)
+ AM_RANGE(0x0000, 0x07ff) AM_RAM_WRITE(bwp12_sharedram1_w) AM_BASE(m_bwp2_sharedram1)
AM_RANGE(0x0800, 0x0fff) AM_RAM
- AM_RANGE(0x1800, 0x1803) AM_WRITE_LEGACY(bwp2_ctrl_w)
+ AM_RANGE(0x1800, 0x1803) AM_WRITE(bwp2_ctrl_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -180,19 +173,19 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bwp3_map, AS_PROGRAM, 8, bwing_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x0200) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
- AM_RANGE(0x1000, 0x1000) AM_WRITE_LEGACY(bwp3_nmiack_w)
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(bwp3_nmiack_w)
AM_RANGE(0x2000, 0x2000) AM_DEVWRITE_LEGACY("ay1", ay8910_data_w)
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("ay1", ay8910_address_w)
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("ay2", ay8910_data_w)
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE_LEGACY("ay2", ay8910_address_w)
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(bwp3_nmimask_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(bwp3_nmimask_w)
AM_RANGE(0xe000, 0xffff) AM_ROM AM_BASE_SIZE(m_bwp3_rombase, m_bwp3_romsize)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bwp3_io_map, AS_IO, 8, bwing_state )
- AM_RANGE(0x00, 0x00) AM_READ_PORT("VBLANK") AM_WRITE_LEGACY(bwp3_u8F_w)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("VBLANK") AM_WRITE(bwp3_u8F_w)
ADDRESS_MAP_END
//****************************************************************************
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index 9aabcdae25d..2a1fd0e8906 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -262,9 +262,9 @@ static CUSTOM_INPUT( clock_r )
}
-static WRITE8_HANDLER( bzone_coin_counter_w )
+WRITE8_MEMBER(bzone_state::bzone_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
@@ -302,7 +302,7 @@ static ADDRESS_MAP_START( bzone_map, AS_PROGRAM, 8, bzone_state )
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("IN0")
AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW0")
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("DSW1")
- AM_RANGE(0x1000, 0x1000) AM_WRITE_LEGACY(bzone_coin_counter_w)
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(bzone_coin_counter_w)
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x1400, 0x1400) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1600, 0x1600) AM_WRITE_LEGACY(avgdvg_reset_w)
@@ -778,31 +778,30 @@ ROM_END
*
*************************************/
-static READ8_HANDLER( analog_data_r )
+READ8_MEMBER(bzone_state::analog_data_r)
{
- bzone_state *state = space->machine().driver_data<bzone_state>();
- return state->m_analog_data;
+ return m_analog_data;
}
-static WRITE8_HANDLER( analog_select_w )
+WRITE8_MEMBER(bzone_state::analog_select_w)
{
- bzone_state *state = space->machine().driver_data<bzone_state>();
static const char *const analog_port[] = { "AN0", "AN1", "AN2" };
if (offset <= 2)
- state->m_analog_data = input_port_read(space->machine(), analog_port[offset]);
+ m_analog_data = input_port_read(machine(), analog_port[offset]);
}
static DRIVER_INIT( bradley )
{
+ bzone_state *state = machine.driver_data<bzone_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
space->install_ram(0x400, 0x7ff);
space->install_read_port(0x1808, 0x1808, "1808");
space->install_read_port(0x1809, 0x1809, "1809");
- space->install_legacy_read_handler(0x180a, 0x180a, FUNC(analog_data_r));
- space->install_legacy_write_handler(0x1848, 0x1850, FUNC(analog_select_w));
+ space->install_read_handler(0x180a, 0x180a, read8_delegate(FUNC(bzone_state::analog_data_r),state));
+ space->install_write_handler(0x1848, 0x1850, write8_delegate(FUNC(bzone_state::analog_select_w),state));
}
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 92fd5a06ac9..1e609d6a2b6 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -61,60 +61,57 @@ static MACHINE_RESET( cabalbl )
/******************************************************************************************/
-static WRITE16_HANDLER( cabalbl_sndcmd_w )
+WRITE16_MEMBER(cabal_state::cabalbl_sndcmd_w)
{
- cabal_state *state = space->machine().driver_data<cabal_state>();
switch (offset)
{
case 0x0:
- state->m_sound_command1 = data;
+ m_sound_command1 = data;
break;
case 0x1: /* ?? */
- state->m_sound_command2 = data & 0xff;
+ m_sound_command2 = data & 0xff;
break;
}
}
-static WRITE16_HANDLER( track_reset_w )
+WRITE16_MEMBER(cabal_state::track_reset_w)
{
- cabal_state *state = space->machine().driver_data<cabal_state>();
int i;
static const char *const track_names[] = { "IN0", "IN1", "IN2", "IN3" };
for (i = 0; i < 4; i++)
- state->m_last[i] = input_port_read(space->machine(), track_names[i]);
+ m_last[i] = input_port_read(machine(), track_names[i]);
}
-static READ16_HANDLER( track_r )
+READ16_MEMBER(cabal_state::track_r)
{
- cabal_state *state = space->machine().driver_data<cabal_state>();
switch (offset)
{
default:
- case 0: return (( input_port_read(space->machine(), "IN0") - state->m_last[0]) & 0x00ff) | (((input_port_read(space->machine(), "IN2") - state->m_last[2]) & 0x00ff) << 8); /* X lo */
- case 1: return (((input_port_read(space->machine(), "IN0") - state->m_last[0]) & 0xff00) >> 8) | (( input_port_read(space->machine(), "IN2") - state->m_last[2]) & 0xff00); /* X hi */
- case 2: return (( input_port_read(space->machine(), "IN1") - state->m_last[1]) & 0x00ff) | (((input_port_read(space->machine(), "IN3") - state->m_last[3]) & 0x00ff) << 8); /* Y lo */
- case 3: return (((input_port_read(space->machine(), "IN1") - state->m_last[1]) & 0xff00) >> 8) | (( input_port_read(space->machine(), "IN3") - state->m_last[3]) & 0xff00); /* Y hi */
+ case 0: return (( input_port_read(machine(), "IN0") - m_last[0]) & 0x00ff) | (((input_port_read(machine(), "IN2") - m_last[2]) & 0x00ff) << 8); /* X lo */
+ case 1: return (((input_port_read(machine(), "IN0") - m_last[0]) & 0xff00) >> 8) | (( input_port_read(machine(), "IN2") - m_last[2]) & 0xff00); /* X hi */
+ case 2: return (( input_port_read(machine(), "IN1") - m_last[1]) & 0x00ff) | (((input_port_read(machine(), "IN3") - m_last[3]) & 0x00ff) << 8); /* Y lo */
+ case 3: return (((input_port_read(machine(), "IN1") - m_last[1]) & 0xff00) >> 8) | (( input_port_read(machine(), "IN3") - m_last[3]) & 0xff00); /* Y hi */
}
}
-static WRITE16_HANDLER( cabal_sound_irq_trigger_word_w )
+WRITE16_MEMBER(cabal_state::cabal_sound_irq_trigger_word_w)
{
- seibu_main_word_w(space,4,data,mem_mask);
+ seibu_main_word_w(&space,4,data,mem_mask);
/* spin for a while to let the Z80 read the command, otherwise coins "stick" */
- device_spin_until_time(&space->device(), attotime::from_usec(50));
+ device_spin_until_time(&space.device(), attotime::from_usec(50));
}
-static WRITE16_HANDLER( cabalbl_sound_irq_trigger_word_w )
+WRITE16_MEMBER(cabal_state::cabalbl_sound_irq_trigger_word_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
}
@@ -128,13 +125,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0x80000, 0x801ff) AM_RAM_WRITE_LEGACY(cabal_background_videoram16_w) AM_BASE(m_videoram)
AM_RANGE(0x80200, 0x803ff) AM_RAM
AM_RANGE(0xa0000, 0xa0001) AM_READ_PORT("DSW")
- AM_RANGE(0xa0008, 0xa000f) AM_READ_LEGACY(track_r)
+ AM_RANGE(0xa0008, 0xa000f) AM_READ(track_r)
AM_RANGE(0xa0010, 0xa0011) AM_READ_PORT("INPUTS")
- AM_RANGE(0xc0000, 0xc0001) AM_WRITE_LEGACY(track_reset_w)
+ AM_RANGE(0xc0000, 0xc0001) AM_WRITE(track_reset_w)
AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
AM_RANGE(0xc0080, 0xc0081) AM_WRITE_LEGACY(cabal_flipscreen_w)
AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xe8008, 0xe8009) AM_WRITE_LEGACY(cabal_sound_irq_trigger_word_w) // fix coin insertion
+ AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabal_sound_irq_trigger_word_w) // fix coin insertion
AM_RANGE(0xe8000, 0xe800d) AM_READWRITE_LEGACY(seibu_main_word_r, seibu_main_word_w)
ADDRESS_MAP_END
@@ -152,32 +149,30 @@ static ADDRESS_MAP_START( cabalbl_main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
AM_RANGE(0xc0080, 0xc0081) AM_WRITE_LEGACY(cabal_flipscreen_w)
AM_RANGE(0xe0000, 0xe07ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xe8000, 0xe8003) AM_WRITE_LEGACY(cabalbl_sndcmd_w)
+ AM_RANGE(0xe8000, 0xe8003) AM_WRITE(cabalbl_sndcmd_w)
AM_RANGE(0xe8004, 0xe8005) AM_READ_LEGACY(soundlatch2_word_r)
- AM_RANGE(0xe8008, 0xe8009) AM_WRITE_LEGACY(cabalbl_sound_irq_trigger_word_w)
+ AM_RANGE(0xe8008, 0xe8009) AM_WRITE(cabalbl_sound_irq_trigger_word_w)
ADDRESS_MAP_END
/*********************************************************************/
-static READ8_HANDLER( cabalbl_snd2_r )
+READ8_MEMBER(cabal_state::cabalbl_snd2_r)
{
- cabal_state *state = space->machine().driver_data<cabal_state>();
- return BITSWAP8(state->m_sound_command2, 7,2,4,5,3,6,1,0);
+ return BITSWAP8(m_sound_command2, 7,2,4,5,3,6,1,0);
}
-static READ8_HANDLER( cabalbl_snd1_r )
+READ8_MEMBER(cabal_state::cabalbl_snd1_r)
{
- cabal_state *state = space->machine().driver_data<cabal_state>();
- return BITSWAP8(state->m_sound_command1, 7,2,4,5,3,6,1,0);
+ return BITSWAP8(m_sound_command1, 7,2,4,5,3,6,1,0);
}
-static WRITE8_HANDLER( cabalbl_coin_w )
+WRITE8_MEMBER(cabal_state::cabalbl_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
//data & 0x40? video enable?
}
@@ -206,10 +201,10 @@ static ADDRESS_MAP_START( cabalbl_sound_map, AS_PROGRAM, 8, cabal_state )
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE_LEGACY(soundlatch4_w)
- AM_RANGE(0x4004, 0x4004) AM_WRITE_LEGACY(cabalbl_coin_w)
+ AM_RANGE(0x4004, 0x4004) AM_WRITE(cabalbl_coin_w)
AM_RANGE(0x4006, 0x4006) AM_READ_PORT("COIN")
- AM_RANGE(0x4008, 0x4008) AM_READ_LEGACY(cabalbl_snd2_r)
- AM_RANGE(0x400a, 0x400a) AM_READ_LEGACY(cabalbl_snd1_r)
+ AM_RANGE(0x4008, 0x4008) AM_READ(cabalbl_snd2_r)
+ AM_RANGE(0x400a, 0x400a) AM_READ(cabalbl_snd1_r)
AM_RANGE(0x400c, 0x400c) AM_WRITE_LEGACY(soundlatch2_w)
AM_RANGE(0x400e, 0x400f) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x6000, 0x6000) AM_WRITENOP /* ??? */
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index a4fdb83b594..a617289d8e9 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -63,23 +63,23 @@ static PALETTE_INIT( canyon )
*
*************************************/
-static READ8_HANDLER( canyon_switches_r )
+READ8_MEMBER(canyon_state::canyon_switches_r)
{
UINT8 val = 0;
- if ((input_port_read(space->machine(), "IN2") >> (offset & 7)) & 1)
+ if ((input_port_read(machine(), "IN2") >> (offset & 7)) & 1)
val |= 0x80;
- if ((input_port_read(space->machine(), "IN1") >> (offset & 3)) & 1)
+ if ((input_port_read(machine(), "IN1") >> (offset & 3)) & 1)
val |= 0x01;
return val;
}
-static READ8_HANDLER( canyon_options_r )
+READ8_MEMBER(canyon_state::canyon_options_r)
{
- return (input_port_read(space->machine(), "DSW") >> (2 * (~offset & 3))) & 3;
+ return (input_port_read(machine(), "DSW") >> (2 * (~offset & 3))) & 3;
}
@@ -91,9 +91,9 @@ static READ8_HANDLER( canyon_options_r )
*
*************************************/
-static WRITE8_HANDLER( canyon_led_w )
+WRITE8_MEMBER(canyon_state::canyon_led_w)
{
- set_led_status(space->machine(), offset & 0x01, offset & 0x02);
+ set_led_status(machine(), offset & 0x01, offset & 0x02);
}
@@ -112,11 +112,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, canyon_state )
AM_RANGE(0x0500, 0x0500) AM_DEVWRITE_LEGACY("discrete", canyon_explode_w)
AM_RANGE(0x0501, 0x0501) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog, disabled in service mode */
AM_RANGE(0x0600, 0x0603) AM_DEVWRITE_LEGACY("discrete", canyon_whistle_w)
- AM_RANGE(0x0680, 0x0683) AM_WRITE_LEGACY(canyon_led_w)
+ AM_RANGE(0x0680, 0x0683) AM_WRITE(canyon_led_w)
AM_RANGE(0x0700, 0x0703) AM_DEVWRITE_LEGACY("discrete", canyon_attract_w)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE_LEGACY(canyon_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0x1000, 0x17ff) AM_READ_LEGACY(canyon_switches_r) AM_WRITENOP /* sloppy code writes here */
- AM_RANGE(0x1800, 0x1fff) AM_READ_LEGACY(canyon_options_r)
+ AM_RANGE(0x1000, 0x17ff) AM_READ(canyon_switches_r) AM_WRITENOP /* sloppy code writes here */
+ AM_RANGE(0x1800, 0x1fff) AM_READ(canyon_options_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c
index 2c2f4dbcbed..21be9bddd85 100644
--- a/src/mame/drivers/capbowl.c
+++ b/src/mame/drivers/capbowl.c
@@ -136,10 +136,10 @@ static TIMER_CALLBACK( capbowl_update )
*
*************************************/
-static WRITE8_HANDLER( capbowl_rom_select_w )
+WRITE8_MEMBER(capbowl_state::capbowl_rom_select_w)
{
// 2009-11 FP: shall we add a check to be sure that bank < 6?
- memory_set_bank(space->machine(), "bank1", ((data & 0x0c) >> 1) + (data & 0x01));
+ memory_set_bank(machine(), "bank1", ((data & 0x0c) >> 1) + (data & 0x01));
}
@@ -150,27 +150,24 @@ static WRITE8_HANDLER( capbowl_rom_select_w )
*
*************************************/
-static READ8_HANDLER( track_0_r )
+READ8_MEMBER(capbowl_state::track_0_r)
{
- capbowl_state *state = space->machine().driver_data<capbowl_state>();
- return (input_port_read(space->machine(), "IN0") & 0xf0) | ((input_port_read(space->machine(), "TRACKY") - state->m_last_trackball_val[0]) & 0x0f);
+ return (input_port_read(machine(), "IN0") & 0xf0) | ((input_port_read(machine(), "TRACKY") - m_last_trackball_val[0]) & 0x0f);
}
-static READ8_HANDLER( track_1_r )
+READ8_MEMBER(capbowl_state::track_1_r)
{
- capbowl_state *state = space->machine().driver_data<capbowl_state>();
- return (input_port_read(space->machine(), "IN1") & 0xf0) | ((input_port_read(space->machine(), "TRACKX") - state->m_last_trackball_val[1]) & 0x0f);
+ return (input_port_read(machine(), "IN1") & 0xf0) | ((input_port_read(machine(), "TRACKX") - m_last_trackball_val[1]) & 0x0f);
}
-static WRITE8_HANDLER( track_reset_w )
+WRITE8_MEMBER(capbowl_state::track_reset_w)
{
- capbowl_state *state = space->machine().driver_data<capbowl_state>();
/* reset the trackball counters */
- state->m_last_trackball_val[0] = input_port_read(space->machine(), "TRACKY");
- state->m_last_trackball_val[1] = input_port_read(space->machine(), "TRACKX");
+ m_last_trackball_val[0] = input_port_read(machine(), "TRACKY");
+ m_last_trackball_val[1] = input_port_read(machine(), "TRACKX");
watchdog_reset_w(space, offset, data);
}
@@ -183,10 +180,9 @@ static WRITE8_HANDLER( track_reset_w )
*
*************************************/
-static WRITE8_HANDLER( capbowl_sndcmd_w )
+WRITE8_MEMBER(capbowl_state::capbowl_sndcmd_w)
{
- capbowl_state *state = space->machine().driver_data<capbowl_state>();
- device_set_input_line(state->m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
soundlatch_w(space, offset, data);
}
@@ -232,13 +228,13 @@ void capbowl_state::init_nvram(nvram_device &nvram, void *base, size_t size)
static ADDRESS_MAP_START( capbowl_map, AS_PROGRAM, 8, capbowl_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x4000) AM_WRITEONLY AM_BASE(m_rowaddress)
- AM_RANGE(0x4800, 0x4800) AM_WRITE_LEGACY(capbowl_rom_select_w)
+ AM_RANGE(0x4800, 0x4800) AM_WRITE(capbowl_rom_select_w)
AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x5800, 0x5fff) AM_READWRITE_LEGACY(capbowl_tms34061_r, capbowl_tms34061_w)
- AM_RANGE(0x6000, 0x6000) AM_WRITE_LEGACY(capbowl_sndcmd_w)
- AM_RANGE(0x6800, 0x6800) AM_WRITE_LEGACY(track_reset_w) /* + watchdog */
- AM_RANGE(0x7000, 0x7000) AM_READ_LEGACY(track_0_r) /* + other inputs */
- AM_RANGE(0x7800, 0x7800) AM_READ_LEGACY(track_1_r) /* + other inputs */
+ AM_RANGE(0x6000, 0x6000) AM_WRITE(capbowl_sndcmd_w)
+ AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) /* + watchdog */
+ AM_RANGE(0x7000, 0x7000) AM_READ(track_0_r) /* + other inputs */
+ AM_RANGE(0x7800, 0x7800) AM_READ(track_1_r) /* + other inputs */
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -248,10 +244,10 @@ static ADDRESS_MAP_START( bowlrama_map, AS_PROGRAM, 8, capbowl_state )
AM_RANGE(0x4000, 0x4000) AM_WRITEONLY AM_BASE(m_rowaddress)
AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x5800, 0x5fff) AM_READWRITE_LEGACY(capbowl_tms34061_r, capbowl_tms34061_w)
- AM_RANGE(0x6000, 0x6000) AM_WRITE_LEGACY(capbowl_sndcmd_w)
- AM_RANGE(0x6800, 0x6800) AM_WRITE_LEGACY(track_reset_w) /* + watchdog */
- AM_RANGE(0x7000, 0x7000) AM_READ_LEGACY(track_0_r) /* + other inputs */
- AM_RANGE(0x7800, 0x7800) AM_READ_LEGACY(track_1_r) /* + other inputs */
+ AM_RANGE(0x6000, 0x6000) AM_WRITE(capbowl_sndcmd_w)
+ AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) /* + watchdog */
+ AM_RANGE(0x7000, 0x7000) AM_READ(track_0_r) /* + other inputs */
+ AM_RANGE(0x7800, 0x7800) AM_READ(track_1_r) /* + other inputs */
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index e41475a147f..15bffba11bf 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -50,11 +50,10 @@ Notes:
*
*************************************/
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(carjmbre_state::nmi_mask_w)
{
- carjmbre_state *state = space->machine().driver_data<carjmbre_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
@@ -62,7 +61,7 @@ static ADDRESS_MAP_START( carjmbre_map, AS_PROGRAM, 8, carjmbre_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
// AM_RANGE(0x8800, 0x8800) AM_READNOP // watchdog?
- AM_RANGE(0x8803, 0x8803) AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0x8803, 0x8803) AM_WRITE(nmi_mask_w)
AM_RANGE(0x8805, 0x8805) AM_WRITE_LEGACY(carjmbre_bgcolor_w) // guessed
AM_RANGE(0x8806, 0x8806) AM_WRITE_LEGACY(carjmbre_8806_w) // video related?
AM_RANGE(0x8807, 0x8807) AM_WRITE_LEGACY(carjmbre_flipscreen_w)
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 495d7c9442d..385f11b7eaf 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -166,22 +166,21 @@ static void sound_irq_gen( device_t *device, int state )
/* Reads the cause of the interrupt and clears the state */
-static READ16_HANDLER( cave_irq_cause_r )
+READ16_MEMBER(cave_state::cave_irq_cause_r)
{
- cave_state *state = space->machine().driver_data<cave_state>();
int result = 0x0003;
- if (state->m_vblank_irq)
+ if (m_vblank_irq)
result ^= 0x01;
- if (state->m_unknown_irq)
+ if (m_unknown_irq)
result ^= 0x02;
if (offset == 4/2)
- state->m_vblank_irq = 0;
+ m_vblank_irq = 0;
if (offset == 6/2)
- state->m_unknown_irq = 0;
+ m_unknown_irq = 0;
- update_irq_state(space->machine());
+ update_irq_state(machine());
/*
sailormn and agallet wait for bit 2 of $b80001 to go 1 -> 0.
@@ -191,7 +190,7 @@ static READ16_HANDLER( cave_irq_cause_r )
if (offset == 0)
{
result &= ~4;
- result |= (state->m_agallet_vblank_irq ? 0 : 4);
+ result |= (m_agallet_vblank_irq ? 0 : 4);
}
return result;
@@ -209,82 +208,75 @@ static READ16_HANDLER( cave_irq_cause_r )
/* We need a FIFO buffer for sailormn, where the inter-CPUs
communication is *really* tight */
-static READ8_HANDLER( soundflags_r )
+READ8_MEMBER(cave_state::soundflags_r)
{
// bit 2 is low: can read command (lo)
// bit 3 is low: can read command (hi)
-// cave_state *state = space->machine().driver_data<cave_state>();
-// return (state->m_sound_flag1 ? 0 : 4) |
-// (state->m_sound_flag2 ? 0 : 8) ;
+// return (m_sound_flag1 ? 0 : 4) |
+// (m_sound_flag2 ? 0 : 8) ;
return 0;
}
-static READ16_HANDLER( soundflags_ack_r )
+READ16_MEMBER(cave_state::soundflags_ack_r)
{
// bit 0 is low: can write command
// bit 1 is low: can read answer
- cave_state *state = space->machine().driver_data<cave_state>();
-// return ((state->m_sound_flag1 | state->m_sound_flag2) ? 1 : 0) |
-// ((state->m_soundbuf_len > 0) ? 0 : 2) ;
+// return ((m_sound_flag1 | m_sound_flag2) ? 1 : 0) |
+// ((m_soundbuf_len > 0) ? 0 : 2) ;
- return ((state->m_soundbuf_len > 0) ? 0 : 2) ;
+ return ((m_soundbuf_len > 0) ? 0 : 2) ;
}
/* Main CPU: write a 16 bit sound latch and generate a NMI on the sound CPU */
-static WRITE16_HANDLER( sound_cmd_w )
+WRITE16_MEMBER(cave_state::sound_cmd_w)
{
- cave_state *state = space->machine().driver_data<cave_state>();
-// state->m_sound_flag1 = 1;
-// state->m_sound_flag2 = 1;
+// m_sound_flag1 = 1;
+// m_sound_flag2 = 1;
soundlatch_word_w(space, offset, data, mem_mask);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- device_spin_until_time(&space->device(), attotime::from_usec(50)); // Allow the other cpu to reply
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_spin_until_time(&space.device(), attotime::from_usec(50)); // Allow the other cpu to reply
}
/* Sound CPU: read the low 8 bits of the 16 bit sound latch */
-static READ8_HANDLER( soundlatch_lo_r )
+READ8_MEMBER(cave_state::soundlatch_lo_r)
{
-// cave_state *state = space->machine().driver_data<cave_state>();
-// state->m_sound_flag1 = 0;
+// m_sound_flag1 = 0;
return soundlatch_word_r(space, offset, 0x00ff) & 0xff;
}
/* Sound CPU: read the high 8 bits of the 16 bit sound latch */
-static READ8_HANDLER( soundlatch_hi_r )
+READ8_MEMBER(cave_state::soundlatch_hi_r)
{
-// cave_state *state = space->machine().driver_data<cave_state>();
-// state->m_sound_flag2 = 0;
+// m_sound_flag2 = 0;
return soundlatch_word_r(space, offset, 0xff00) >> 8;
}
/* Main CPU: read the latch written by the sound CPU (acknowledge) */
-static READ16_HANDLER( soundlatch_ack_r )
+READ16_MEMBER(cave_state::soundlatch_ack_r)
{
- cave_state *state = space->machine().driver_data<cave_state>();
- if (state->m_soundbuf_len > 0)
+ if (m_soundbuf_len > 0)
{
- UINT8 data = state->m_soundbuf_data[0];
- memmove(state->m_soundbuf_data, state->m_soundbuf_data + 1, (32 - 1) * sizeof(state->m_soundbuf_data[0]));
- state->m_soundbuf_len--;
+ UINT8 data = m_soundbuf_data[0];
+ memmove(m_soundbuf_data, m_soundbuf_data + 1, (32 - 1) * sizeof(m_soundbuf_data[0]));
+ m_soundbuf_len--;
return data;
}
else
{
- logerror("CPU #1 - PC %04X: Sound Buffer 2 Underflow Error\n", cpu_get_pc(&space->device()));
+ logerror("CPU #1 - PC %04X: Sound Buffer 2 Underflow Error\n", cpu_get_pc(&space.device()));
return 0xff;
}
}
/* Sound CPU: write latch for the main CPU (acknowledge) */
-static WRITE8_HANDLER( soundlatch_ack_w )
+WRITE8_MEMBER(cave_state::soundlatch_ack_w)
{
- cave_state *state = space->machine().driver_data<cave_state>();
- state->m_soundbuf_data[state->m_soundbuf_len] = data;
- if (state->m_soundbuf_len < 32)
- state->m_soundbuf_len++;
+ m_soundbuf_data[m_soundbuf_len] = data;
+ if (m_soundbuf_len < 32)
+ m_soundbuf_len++;
else
- logerror("CPU #1 - PC %04X: Sound Buffer 2 Overflow Error\n", cpu_get_pc(&space->device()));
+ logerror("CPU #1 - PC %04X: Sound Buffer 2 Overflow Error\n", cpu_get_pc(&space.device()));
}
@@ -368,12 +360,12 @@ static WRITE16_DEVICE_HANDLER( cave_eeprom_lsb_w )
}
/* - No eeprom or lockouts */
-static WRITE16_HANDLER( gaia_coin_lsb_w )
+WRITE16_MEMBER(cave_state::gaia_coin_lsb_w)
{
if (ACCESSING_BITS_0_7) // odd address
{
- coin_counter_w(space->machine(), 1, data & 0x0002);
- coin_counter_w(space->machine(), 0, data & 0x0001);
+ coin_counter_w(machine(), 1, data & 0x0002);
+ coin_counter_w(machine(), 0, data & 0x0001);
}
}
@@ -447,7 +439,7 @@ static ADDRESS_MAP_START( dfeveron_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x708000, 0x708fff) AM_RAM AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
/**/AM_RANGE(0x710000, 0x710bff) AM_READONLY // ?
AM_RANGE(0x710c00, 0x710fff) AM_RAM // ?
- AM_RANGE(0x800000, 0x800007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x800000, 0x80007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
@@ -470,7 +462,7 @@ static ADDRESS_MAP_START( ddonpach_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x500000, 0x507fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
/**/AM_RANGE(0x600000, 0x607fff) AM_RAM_WRITE_LEGACY(cave_vram_1_w) AM_BASE(m_vram[1]) // Layer 1
/**/AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(cave_vram_2_8x8_w) AM_BASE(m_vram[2]) // Layer 2
- AM_RANGE(0x800000, 0x800007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x800000, 0x80007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
@@ -486,7 +478,7 @@ ADDRESS_MAP_END
Donpachi
***************************************************************************/
-static READ16_HANDLER( donpachi_videoregs_r )
+READ16_MEMBER(cave_state::donpachi_videoregs_r)
{
switch (offset)
{
@@ -523,7 +515,7 @@ static ADDRESS_MAP_START( donpachi_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x600000, 0x600005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
/**/AM_RANGE(0x700000, 0x700005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0x800000, 0x800005) AM_RAM AM_BASE(m_vctrl[2]) // Layer 2 Control
- AM_RANGE(0x900000, 0x90007f) AM_RAM_READ_LEGACY(donpachi_videoregs_r) AM_BASE(m_videoregs) // Video Regs
+ AM_RANGE(0x900000, 0x90007f) AM_RAM_READ(donpachi_videoregs_r) AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0xa08000, 0xa08fff) AM_RAM AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
AM_RANGE(0xb00000, 0xb00003) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // M6295
AM_RANGE(0xb00010, 0xb00013) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) //
@@ -547,7 +539,7 @@ static ADDRESS_MAP_START( esprade_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x500000, 0x507fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
/**/AM_RANGE(0x600000, 0x607fff) AM_RAM_WRITE_LEGACY(cave_vram_1_w) AM_BASE(m_vram[1]) // Layer 1
/**/AM_RANGE(0x700000, 0x707fff) AM_RAM_WRITE_LEGACY(cave_vram_2_w) AM_BASE(m_vram[2]) // Layer 2
- AM_RANGE(0x800000, 0x800007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x800000, 0x80007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
@@ -575,14 +567,14 @@ static ADDRESS_MAP_START( gaia_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x608000, 0x60ffff) AM_RAM // More Layer 1, Tested but not used?
AM_RANGE(0x700000, 0x707fff) AM_RAM_WRITE_LEGACY(cave_vram_2_w) AM_BASE(m_vram[2]) // Layer 2
AM_RANGE(0x708000, 0x70ffff) AM_RAM // More Layer 2, Tested but not used?
- AM_RANGE(0x800000, 0x800007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x800000, 0x800007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x800000, 0x80007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0x900000, 0x900005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_BASE(m_vctrl[2]) // Layer 2 Control
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
AM_RANGE(0xd00010, 0xd00011) AM_READ_PORT("IN0") // Inputs
- AM_RANGE(0xd00010, 0xd00011) AM_WRITE_LEGACY(gaia_coin_lsb_w) // Coin counter only
+ AM_RANGE(0xd00010, 0xd00011) AM_WRITE(gaia_coin_lsb_w) // Coin counter only
AM_RANGE(0xd00012, 0xd00013) AM_READ_PORT("IN1") // Inputs
AM_RANGE(0xd00014, 0xd00015) AM_READ_PORT("DSW") // Dips
AM_RANGE(0xd00014, 0xd00015) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog?
@@ -596,7 +588,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( guwange_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM
- AM_RANGE(0x300000, 0x300007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x300000, 0x30007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0x400000, 0x407fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
/**/AM_RANGE(0x408000, 0x40ffff) AM_RAM AM_BASE(m_spriteram_2) // Sprites?
@@ -627,9 +619,9 @@ static ADDRESS_MAP_START( hotdogst_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x880000, 0x887fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
/**/AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE_LEGACY(cave_vram_1_w) AM_BASE(m_vram[1]) // Layer 1
/**/AM_RANGE(0x980000, 0x987fff) AM_RAM_WRITE_LEGACY(cave_vram_2_w) AM_BASE(m_vram[2]) // Layer 2
- AM_RANGE(0xa80000, 0xa80007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
-// AM_RANGE(0xa8006e, 0xa8006f) AM_READ_LEGACY(soundlatch_ack_r) // From Sound CPU
- AM_RANGE(0xa8006e, 0xa8006f) AM_WRITE_LEGACY(sound_cmd_w) // To Sound CPU
+ AM_RANGE(0xa80000, 0xa80007) AM_READ(cave_irq_cause_r) // IRQ Cause
+// AM_RANGE(0xa8006e, 0xa8006f) AM_READ(soundlatch_ack_r) // From Sound CPU
+ AM_RANGE(0xa8006e, 0xa8006f) AM_WRITE(sound_cmd_w) // To Sound CPU
AM_RANGE(0xa80000, 0xa8007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0xb80000, 0xb80005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
@@ -655,28 +647,27 @@ static void show_leds(running_machine &machine)
#endif
}
-static WRITE16_HANDLER( korokoro_leds_w )
+WRITE16_MEMBER(cave_state::korokoro_leds_w)
{
- cave_state *state = space->machine().driver_data<cave_state>();
- COMBINE_DATA(&state->m_leds[0]);
+ COMBINE_DATA(&m_leds[0]);
- set_led_status(space->machine(), 0, data & 0x8000);
- set_led_status(space->machine(), 1, data & 0x4000);
- set_led_status(space->machine(), 2, data & 0x1000); // square button
- set_led_status(space->machine(), 3, data & 0x0800); // round button
-// coin_lockout_w(space->machine(), 1, ~data & 0x0200); // coin lockouts?
-// coin_lockout_w(space->machine(), 0, ~data & 0x0100);
+ set_led_status(machine(), 0, data & 0x8000);
+ set_led_status(machine(), 1, data & 0x4000);
+ set_led_status(machine(), 2, data & 0x1000); // square button
+ set_led_status(machine(), 3, data & 0x0800); // round button
+// coin_lockout_w(machine(), 1, ~data & 0x0200); // coin lockouts?
+// coin_lockout_w(machine(), 0, ~data & 0x0100);
-// coin_counter_w(space->machine(), 2, data & 0x0080);
-// coin_counter_w(space->machine(), 1, data & 0x0020);
- coin_counter_w(space->machine(), 0, data & 0x0010);
+// coin_counter_w(machine(), 2, data & 0x0080);
+// coin_counter_w(machine(), 1, data & 0x0020);
+ coin_counter_w(machine(), 0, data & 0x0010);
- set_led_status(space->machine(), 5, data & 0x0008);
- set_led_status(space->machine(), 6, data & 0x0004);
- set_led_status(space->machine(), 7, data & 0x0002);
- set_led_status(space->machine(), 8, data & 0x0001);
+ set_led_status(machine(), 5, data & 0x0008);
+ set_led_status(machine(), 6, data & 0x0004);
+ set_led_status(machine(), 7, data & 0x0002);
+ set_led_status(machine(), 8, data & 0x0001);
- show_leds(space->machine());
+ show_leds(machine());
}
@@ -718,14 +709,14 @@ static ADDRESS_MAP_START( korokoro_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x100000, 0x107fff) AM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
AM_RANGE(0x140000, 0x140005) AM_WRITEONLY AM_BASE(m_vctrl[0]) // Layer 0 Control
AM_RANGE(0x180000, 0x187fff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x1c0000, 0x1c0007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x1c0000, 0x1c0007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x1c0000, 0x1c007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
AM_RANGE(0x200000, 0x207fff) AM_WRITEONLY AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
// AM_RANGE(0x240000, 0x240003) AM_DEVREAD8_LEGACY("ymz", ymz280b_r, 0x00ff) // YMZ280
AM_RANGE(0x240000, 0x240003) AM_DEVWRITE8_LEGACY("ymz", ymz280b_w, 0x00ff) // YMZ280
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_LEGACY(korokoro_leds_w) // Leds
+ 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(0x28000c, 0x28000d) AM_WRITENOP // 0 (watchdog?)
AM_RANGE(0x300000, 0x30ffff) AM_RAM // RAM
@@ -740,10 +731,10 @@ static ADDRESS_MAP_START( crusherm_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x240000, 0x240003) AM_DEVWRITE8_LEGACY("ymz", ymz280b_w, 0x00ff) // YMZ280
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_LEGACY(korokoro_leds_w) // Leds
+ 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(0x28000c, 0x28000d) AM_WRITENOP // 0 (watchdog?)
- AM_RANGE(0x300000, 0x300007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x300000, 0x30007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
AM_RANGE(0x340000, 0x34ffff) AM_RAM // RAM
ADDRESS_MAP_END
@@ -757,9 +748,9 @@ static ADDRESS_MAP_START( mazinger_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
/**/AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
/**/AM_RANGE(0x208000, 0x20ffff) AM_RAM AM_BASE(m_spriteram_2) // Sprites?
- AM_RANGE(0x300000, 0x300007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x300000, 0x300007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x300068, 0x300069) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
- AM_RANGE(0x30006e, 0x30006f) AM_READWRITE_LEGACY(soundlatch_ack_r, sound_cmd_w) // From Sound CPU
+ AM_RANGE(0x30006e, 0x30006f) AM_READWRITE(soundlatch_ack_r, sound_cmd_w) // From Sound CPU
AM_RANGE(0x300000, 0x30007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
AM_RANGE(0x400000, 0x407fff) AM_RAM_WRITE_LEGACY(cave_vram_1_8x8_w) AM_BASE(m_vram[1]) // Layer 1
/**/AM_RANGE(0x500000, 0x507fff) AM_RAM_WRITE_LEGACY(cave_vram_0_8x8_w) AM_BASE(m_vram[0]) // Layer 0
@@ -789,10 +780,10 @@ static ADDRESS_MAP_START( metmqstr_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x908000, 0x90ffff) AM_RAM //
AM_RANGE(0x980000, 0x987fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
AM_RANGE(0x988000, 0x98ffff) AM_RAM //
- AM_RANGE(0xa80000, 0xa80007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0xa80000, 0xa80007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0xa80068, 0xa80069) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog?
- AM_RANGE(0xa8006c, 0xa8006d) AM_READ_LEGACY(soundflags_ack_r) AM_WRITENOP // Communication
- AM_RANGE(0xa8006e, 0xa8006f) AM_READWRITE_LEGACY(soundlatch_ack_r, sound_cmd_w) // From Sound CPU
+ AM_RANGE(0xa8006c, 0xa8006d) AM_READ(soundflags_ack_r) AM_WRITENOP // Communication
+ AM_RANGE(0xa8006e, 0xa8006f) AM_READWRITE(soundlatch_ack_r, sound_cmd_w) // From Sound CPU
AM_RANGE(0xa80000, 0xa8007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_BASE(m_vctrl[2]) // Layer 2 Control
/**/AM_RANGE(0xb80000, 0xb80005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
@@ -832,10 +823,10 @@ INLINE void vctrl_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem
}
COMBINE_DATA(&VCTRL[offset]);
}
-static WRITE16_HANDLER( pwrinst2_vctrl_0_w ) { vctrl_w(space, offset, data, mem_mask, 0); }
-static WRITE16_HANDLER( pwrinst2_vctrl_1_w ) { vctrl_w(space, offset, data, mem_mask, 1); }
-static WRITE16_HANDLER( pwrinst2_vctrl_2_w ) { vctrl_w(space, offset, data, mem_mask, 2); }
-static WRITE16_HANDLER( pwrinst2_vctrl_3_w ) { vctrl_w(space, offset, data, mem_mask, 3); }
+WRITE16_MEMBER(cave_state::pwrinst2_vctrl_0_w){ vctrl_w(&space, offset, data, mem_mask, 0); }
+WRITE16_MEMBER(cave_state::pwrinst2_vctrl_1_w){ vctrl_w(&space, offset, data, mem_mask, 1); }
+WRITE16_MEMBER(cave_state::pwrinst2_vctrl_2_w){ vctrl_w(&space, offset, data, mem_mask, 2); }
+WRITE16_MEMBER(cave_state::pwrinst2_vctrl_3_w){ vctrl_w(&space, offset, data, mem_mask, 3); }
static ADDRESS_MAP_START( pwrinst2_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
@@ -851,13 +842,13 @@ static ADDRESS_MAP_START( pwrinst2_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xa08000, 0xa0ffff) AM_RAM AM_BASE(m_spriteram_2) // Sprites?
AM_RANGE(0xa10000, 0xa1ffff) AM_RAM // Sprites?
- AM_RANGE(0xa80000, 0xa8007f) AM_RAM_READ_LEGACY(donpachi_videoregs_r) AM_BASE(m_videoregs) // Video Regs
-/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM_WRITE_LEGACY(pwrinst2_vctrl_2_w) AM_BASE(m_vctrl[2]) // Layer 2 Control
-/**/AM_RANGE(0xb80000, 0xb80005) AM_RAM_WRITE_LEGACY(pwrinst2_vctrl_0_w) AM_BASE(m_vctrl[0]) // Layer 0 Control
-/**/AM_RANGE(0xc00000, 0xc00005) AM_RAM_WRITE_LEGACY(pwrinst2_vctrl_1_w) AM_BASE(m_vctrl[1]) // Layer 1 Control
-/**/AM_RANGE(0xc80000, 0xc80005) AM_RAM_WRITE_LEGACY(pwrinst2_vctrl_3_w) AM_BASE(m_vctrl[3]) // Layer 3 Control
- AM_RANGE(0xd80000, 0xd80001) AM_READ_LEGACY(soundlatch_ack_r) // ? From Sound CPU
- AM_RANGE(0xe00000, 0xe00001) AM_WRITE_LEGACY(sound_cmd_w) // To Sound CPU
+ AM_RANGE(0xa80000, 0xa8007f) AM_RAM_READ(donpachi_videoregs_r) AM_BASE(m_videoregs) // Video Regs
+/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM_WRITE(pwrinst2_vctrl_2_w) AM_BASE(m_vctrl[2]) // Layer 2 Control
+/**/AM_RANGE(0xb80000, 0xb80005) AM_RAM_WRITE(pwrinst2_vctrl_0_w) AM_BASE(m_vctrl[0]) // Layer 0 Control
+/**/AM_RANGE(0xc00000, 0xc00005) AM_RAM_WRITE(pwrinst2_vctrl_1_w) AM_BASE(m_vctrl[1]) // Layer 1 Control
+/**/AM_RANGE(0xc80000, 0xc80005) AM_RAM_WRITE(pwrinst2_vctrl_3_w) AM_BASE(m_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(0xf00000, 0xf04fff) AM_RAM AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
ADDRESS_MAP_END
@@ -867,10 +858,10 @@ ADDRESS_MAP_END
Sailor Moon
***************************************************************************/
-static READ16_HANDLER( sailormn_input0_r )
+READ16_MEMBER(cave_state::sailormn_input0_r)
{
// watchdog_reset16_r(0, 0); // written too rarely for mame.
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
}
static ADDRESS_MAP_START( sailormn_map, AS_PROGRAM, 16, cave_state )
@@ -885,7 +876,7 @@ static ADDRESS_MAP_START( sailormn_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x500000, 0x507fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x508000, 0x50ffff) AM_RAM AM_BASE(m_spriteram_2) // Sprites?
AM_RANGE(0x510000, 0x510001) AM_RAM // (agallet)
- AM_RANGE(0x600000, 0x600001) AM_READ_LEGACY(sailormn_input0_r) // Inputs + Watchdog!
+ 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(0x800000, 0x807fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
@@ -895,10 +886,10 @@ static ADDRESS_MAP_START( sailormn_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0xa00000, 0xa00005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0xa80000, 0xa80005) AM_RAM AM_BASE(m_vctrl[1]) // Layer 1 Control
/**/AM_RANGE(0xb00000, 0xb00005) AM_RAM AM_BASE(m_vctrl[2]) // Layer 2 Control
- AM_RANGE(0xb80000, 0xb80007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause (bit 2 tested!)
- AM_RANGE(0xb8006c, 0xb8006d) AM_READ_LEGACY(soundflags_ack_r) // Communication
- AM_RANGE(0xb8006e, 0xb8006f) AM_READ_LEGACY(soundlatch_ack_r) // From Sound CPU
- AM_RANGE(0xb8006e, 0xb8006f) AM_WRITE_LEGACY(sound_cmd_w) // To Sound CPU
+ AM_RANGE(0xb80000, 0xb80007) AM_READ(cave_irq_cause_r) // IRQ Cause (bit 2 tested!)
+ AM_RANGE(0xb8006c, 0xb8006d) AM_READ(soundflags_ack_r) // Communication
+ AM_RANGE(0xb8006e, 0xb8006f) AM_READ(soundlatch_ack_r) // From Sound CPU
+ AM_RANGE(0xb8006e, 0xb8006f) AM_WRITE(sound_cmd_w) // To Sound CPU
AM_RANGE(0xb80000, 0xb8007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
ADDRESS_MAP_END
@@ -926,19 +917,18 @@ static WRITE16_DEVICE_HANDLER( tjumpman_eeprom_lsb_w )
}
}
-static WRITE16_HANDLER( tjumpman_leds_w )
+WRITE16_MEMBER(cave_state::tjumpman_leds_w)
{
- cave_state *state = space->machine().driver_data<cave_state>();
if (ACCESSING_BITS_0_7)
{
- set_led_status(space->machine(), 0, data & 0x0001); // suru
- set_led_status(space->machine(), 1, data & 0x0002); // shinai
- set_led_status(space->machine(), 2, data & 0x0004); // payout
- set_led_status(space->machine(), 3, data & 0x0008); // go
- set_led_status(space->machine(), 4, data & 0x0010); // 1 bet
- set_led_status(space->machine(), 5, data & 0x0020); // medal
- state->m_hopper = data & 0x0040; // hopper
- set_led_status(space->machine(), 6, data & 0x0080); // 3 bet
+ set_led_status(machine(), 0, data & 0x0001); // suru
+ set_led_status(machine(), 1, data & 0x0002); // shinai
+ set_led_status(machine(), 2, data & 0x0004); // payout
+ set_led_status(machine(), 3, data & 0x0008); // go
+ set_led_status(machine(), 4, data & 0x0010); // 1 bet
+ set_led_status(machine(), 5, data & 0x0020); // medal
+ m_hopper = data & 0x0040; // hopper
+ set_led_status(machine(), 6, data & 0x0080); // 3 bet
}
// popmessage("led %04X", data);
@@ -961,11 +951,11 @@ static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x500000, 0x50ffff) AM_RAM AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
AM_RANGE(0x600000, 0x600001) AM_READ_PORT("IN0") // Inputs + EEPROM + Hopper
AM_RANGE(0x600002, 0x600003) AM_READ_PORT("IN1") // Inputs
- AM_RANGE(0x700000, 0x700007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x700000, 0x700007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x700068, 0x700069) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
AM_RANGE(0x700000, 0x70007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // M6295
- AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(tjumpman_leds_w) // Leds + Hopper
+ AM_RANGE(0xc00000, 0xc00001) AM_WRITE(tjumpman_leds_w) // Leds + Hopper
AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("eeprom", tjumpman_eeprom_lsb_w) // EEPROM
ADDRESS_MAP_END
@@ -974,18 +964,17 @@ ADDRESS_MAP_END
Pac-Slot
***************************************************************************/
-static WRITE16_HANDLER( pacslot_leds_w )
+WRITE16_MEMBER(cave_state::pacslot_leds_w)
{
- cave_state *state = space->machine().driver_data<cave_state>();
if (ACCESSING_BITS_0_7)
{
- set_led_status(space->machine(), 0, data & 0x0001); // pac-man
- set_led_status(space->machine(), 1, data & 0x0002); // ms. pac-man
- set_led_status(space->machine(), 2, data & 0x0004); // payout
- set_led_status(space->machine(), 3, data & 0x0008); // start
- set_led_status(space->machine(), 4, data & 0x0010); // bet
- set_led_status(space->machine(), 5, data & 0x0020); // medal
- state->m_hopper = data & 0x0040; // hopper
+ set_led_status(machine(), 0, data & 0x0001); // pac-man
+ set_led_status(machine(), 1, data & 0x0002); // ms. pac-man
+ set_led_status(machine(), 2, data & 0x0004); // payout
+ set_led_status(machine(), 3, data & 0x0008); // start
+ set_led_status(machine(), 4, data & 0x0010); // bet
+ set_led_status(machine(), 5, data & 0x0020); // medal
+ m_hopper = data & 0x0040; // hopper
}
// popmessage("led %04X", data);
@@ -997,7 +986,7 @@ static ADDRESS_MAP_START( pacslot_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x200000, 0x207fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x208000, 0x20ffff) AM_RAM AM_BASE(m_spriteram_2) // Sprite bank 2
AM_RANGE(0x300000, 0x307fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
- AM_RANGE(0x400000, 0x400007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x400000, 0x400007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x400068, 0x400069) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
AM_RANGE(0x400000, 0x40007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
AM_RANGE(0x500000, 0x500005) AM_WRITEONLY AM_BASE(m_vctrl[0]) // Layer 0 Control
@@ -1005,7 +994,7 @@ static ADDRESS_MAP_START( pacslot_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("IN0") // Inputs + EEPROM + Hopper
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_LEGACY(pacslot_leds_w) // Leds + Hopper
+ AM_RANGE(0xc00000, 0xc00001) AM_WRITE(pacslot_leds_w) // Leds + Hopper
AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("eeprom", tjumpman_eeprom_lsb_w) // EEPROM
ADDRESS_MAP_END
@@ -1021,7 +1010,7 @@ static ADDRESS_MAP_START( uopoko_map, AS_PROGRAM, 16, cave_state )
/**/AM_RANGE(0x400000, 0x407fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
/**/AM_RANGE(0x408000, 0x40ffff) AM_RAM AM_BASE(m_spriteram_2) // Sprites?
/**/AM_RANGE(0x500000, 0x507fff) AM_RAM_WRITE_LEGACY(cave_vram_0_w) AM_BASE(m_vram[0]) // Layer 0
- AM_RANGE(0x600000, 0x600007) AM_READ_LEGACY(cave_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x600000, 0x600007) AM_READ(cave_irq_cause_r) // IRQ Cause
AM_RANGE(0x600000, 0x60007f) AM_WRITEONLY AM_BASE(m_videoregs) // Video Regs
/**/AM_RANGE(0x700000, 0x700005) AM_RAM AM_BASE(m_vctrl[0]) // Layer 0 Control
/**/AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE_SIZE(m_paletteram, m_paletteram_size) // Palette
@@ -1056,20 +1045,20 @@ ADDRESS_MAP_END
Hotdog Storm
***************************************************************************/
-static WRITE8_HANDLER( hotdogst_rombank_w )
+WRITE8_MEMBER(cave_state::hotdogst_rombank_w)
{
if (data & ~0x0f)
- logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data);
- memory_set_bank(space->machine(), "bank2", data & 0x0f);
+ memory_set_bank(machine(), "bank2", data & 0x0f);
}
-static WRITE8_HANDLER( hotdogst_okibank_w )
+WRITE8_MEMBER(cave_state::hotdogst_okibank_w)
{
int bank1 = (data >> 0) & 0x3;
int bank2 = (data >> 4) & 0x3;
- memory_set_bank(space->machine(), "bank3", bank1);
- memory_set_bank(space->machine(), "bank4", bank2);
+ memory_set_bank(machine(), "bank3", bank1);
+ memory_set_bank(machine(), "bank4", bank2);
}
static ADDRESS_MAP_START( hotdogst_sound_map, AS_PROGRAM, 8, cave_state )
@@ -1080,12 +1069,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hotdogst_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(hotdogst_rombank_w) // ROM bank
- AM_RANGE(0x30, 0x30) AM_READ_LEGACY(soundlatch_lo_r) // From Main CPU
- AM_RANGE(0x40, 0x40) AM_READ_LEGACY(soundlatch_hi_r) //
+ AM_RANGE(0x00, 0x00) AM_WRITE(hotdogst_rombank_w) // ROM bank
+ AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r) // From Main CPU
+ AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r) //
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) //
AM_RANGE(0x60, 0x60) AM_DEVREADWRITE("oki", okim6295_device, read, write) // M6295
- AM_RANGE(0x70, 0x70) AM_WRITE_LEGACY(hotdogst_okibank_w) // Samples bank
+ AM_RANGE(0x70, 0x70) AM_WRITE(hotdogst_okibank_w) // Samples bank
ADDRESS_MAP_END
@@ -1093,12 +1082,12 @@ ADDRESS_MAP_END
Mazinger Z
***************************************************************************/
-static WRITE8_HANDLER( mazinger_rombank_w )
+WRITE8_MEMBER(cave_state::mazinger_rombank_w)
{
if (data & ~0x07)
- logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data);
- memory_set_bank(space->machine(), "bank2", data & 0x07);
+ memory_set_bank(machine(), "bank2", data & 0x07);
}
static ADDRESS_MAP_START( mazinger_sound_map, AS_PROGRAM, 8, cave_state )
@@ -1110,13 +1099,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mazinger_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(mazinger_rombank_w) // ROM bank
- AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(soundlatch_ack_w) // To Main CPU
- AM_RANGE(0x30, 0x30) AM_READ_LEGACY(soundlatch_lo_r) // From Main CPU
+ AM_RANGE(0x00, 0x00) AM_WRITE(mazinger_rombank_w) // ROM bank
+ AM_RANGE(0x10, 0x10) AM_WRITE(soundlatch_ack_w) // To Main CPU
+ AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r) // From Main CPU
AM_RANGE(0x50, 0x51) AM_DEVWRITE_LEGACY("ymsnd", ym2203_w) // YM2203
AM_RANGE(0x52, 0x53) AM_DEVREAD_LEGACY("ymsnd", ym2203_r) // YM2203
AM_RANGE(0x70, 0x70) AM_DEVWRITE("oki", okim6295_device, write) // M6295
- AM_RANGE(0x74, 0x74) AM_WRITE_LEGACY(hotdogst_okibank_w) // Samples bank
+ AM_RANGE(0x74, 0x74) AM_WRITE(hotdogst_okibank_w) // Samples bank
ADDRESS_MAP_END
@@ -1124,28 +1113,28 @@ ADDRESS_MAP_END
Metamoqester
***************************************************************************/
-static WRITE8_HANDLER( metmqstr_rombank_w )
+WRITE8_MEMBER(cave_state::metmqstr_rombank_w)
{
if (data & ~0x0f)
- logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data);
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static WRITE8_HANDLER( metmqstr_okibank0_w )
+WRITE8_MEMBER(cave_state::metmqstr_okibank0_w)
{
int bank1 = (data >> 0) & 0x7;
int bank2 = (data >> 4) & 0x7;
- memory_set_bank(space->machine(), "bank3", bank1);
- memory_set_bank(space->machine(), "bank4", bank2);
+ memory_set_bank(machine(), "bank3", bank1);
+ memory_set_bank(machine(), "bank4", bank2);
}
-static WRITE8_HANDLER( metmqstr_okibank1_w )
+WRITE8_MEMBER(cave_state::metmqstr_okibank1_w)
{
int bank1 = (data >> 0) & 0x7;
int bank2 = (data >> 4) & 0x7;
- memory_set_bank(space->machine(), "bank5", bank1);
- memory_set_bank(space->machine(), "bank6", bank2);
+ memory_set_bank(machine(), "bank5", bank1);
+ memory_set_bank(machine(), "bank6", bank2);
}
static ADDRESS_MAP_START( metmqstr_sound_map, AS_PROGRAM, 8, cave_state )
@@ -1156,15 +1145,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( metmqstr_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(metmqstr_rombank_w) // Rom Bank
- AM_RANGE(0x20, 0x20) AM_READ_LEGACY(soundflags_r) // Communication
- AM_RANGE(0x30, 0x30) AM_READ_LEGACY(soundlatch_lo_r) // From Main CPU
- AM_RANGE(0x40, 0x40) AM_READ_LEGACY(soundlatch_hi_r) //
+ AM_RANGE(0x00, 0x00) AM_WRITE(metmqstr_rombank_w) // Rom Bank
+ AM_RANGE(0x20, 0x20) AM_READ(soundflags_r) // Communication
+ AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r) // From Main CPU
+ AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r) //
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) // YM2151
AM_RANGE(0x60, 0x60) AM_DEVWRITE("oki1", okim6295_device, write) // M6295 #0
- AM_RANGE(0x70, 0x70) AM_WRITE_LEGACY(metmqstr_okibank0_w) // Samples Bank #0
+ AM_RANGE(0x70, 0x70) AM_WRITE(metmqstr_okibank0_w) // Samples Bank #0
AM_RANGE(0x80, 0x80) AM_DEVWRITE("oki2", okim6295_device, write) // M6295 #1
- AM_RANGE(0x90, 0x90) AM_WRITE_LEGACY(metmqstr_okibank1_w) // Samples Bank #1
+ AM_RANGE(0x90, 0x90) AM_WRITE(metmqstr_okibank1_w) // Samples Bank #1
ADDRESS_MAP_END
@@ -1172,12 +1161,12 @@ ADDRESS_MAP_END
Power Instinct 2
***************************************************************************/
-static WRITE8_HANDLER( pwrinst2_rombank_w )
+WRITE8_MEMBER(cave_state::pwrinst2_rombank_w)
{
if (data & ~0x07)
- logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data);
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
}
static ADDRESS_MAP_START( pwrinst2_sound_map, AS_PROGRAM, 8, cave_state )
@@ -1192,11 +1181,11 @@ static ADDRESS_MAP_START( pwrinst2_sound_portmap, AS_IO, 8, cave_state )
AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("oki2", okim6295_device, read, write) //
AM_RANGE(0x10, 0x17) AM_DEVWRITE_LEGACY("nmk112", nmk112_okibank_w) // Samples bank
AM_RANGE(0x40, 0x41) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) //
- AM_RANGE(0x50, 0x50) AM_WRITE_LEGACY(soundlatch_ack_w) // To Main CPU
+ AM_RANGE(0x50, 0x50) AM_WRITE(soundlatch_ack_w) // To Main CPU
// AM_RANGE(0x51, 0x51) AM_WRITENOP // ?? volume
- AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(pwrinst2_rombank_w) // ROM bank
- AM_RANGE(0x60, 0x60) AM_READ_LEGACY(soundlatch_hi_r) // From Main CPU
- AM_RANGE(0x70, 0x70) AM_READ_LEGACY(soundlatch_lo_r) //
+ AM_RANGE(0x80, 0x80) AM_WRITE(pwrinst2_rombank_w) // ROM bank
+ AM_RANGE(0x60, 0x60) AM_READ(soundlatch_hi_r) // From Main CPU
+ AM_RANGE(0x70, 0x70) AM_READ(soundlatch_lo_r) //
ADDRESS_MAP_END
@@ -1204,61 +1193,59 @@ ADDRESS_MAP_END
Sailor Moon
***************************************************************************/
-static READ8_HANDLER( mirror_ram_r )
+READ8_MEMBER(cave_state::mirror_ram_r)
{
- cave_state *state = space->machine().driver_data<cave_state>();
- return state->m_mirror_ram[offset];
+ return m_mirror_ram[offset];
}
-static WRITE8_HANDLER( mirror_ram_w )
+WRITE8_MEMBER(cave_state::mirror_ram_w)
{
- cave_state *state = space->machine().driver_data<cave_state>();
- state->m_mirror_ram[offset] = data;
+ m_mirror_ram[offset] = data;
}
-static WRITE8_HANDLER( sailormn_rombank_w )
+WRITE8_MEMBER(cave_state::sailormn_rombank_w)
{
if (data & ~0x1f)
- logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #1 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data);
- memory_set_bank(space->machine(), "bank1", data & 0x1f);
+ memory_set_bank(machine(), "bank1", data & 0x1f);
}
-static WRITE8_HANDLER( sailormn_okibank0_w )
+WRITE8_MEMBER(cave_state::sailormn_okibank0_w)
{
int bank1 = (data >> 0) & 0xf;
int bank2 = (data >> 4) & 0xf;
- memory_set_bank(space->machine(), "bank3", bank1);
- memory_set_bank(space->machine(), "bank4", bank2);
+ memory_set_bank(machine(), "bank3", bank1);
+ memory_set_bank(machine(), "bank4", bank2);
}
-static WRITE8_HANDLER( sailormn_okibank1_w )
+WRITE8_MEMBER(cave_state::sailormn_okibank1_w)
{
int bank1 = (data >> 0) & 0xf;
int bank2 = (data >> 4) & 0xf;
- memory_set_bank(space->machine(), "bank5", bank1);
- memory_set_bank(space->machine(), "bank6", bank2);
+ memory_set_bank(machine(), "bank5", bank1);
+ memory_set_bank(machine(), "bank6", bank2);
}
static ADDRESS_MAP_START( sailormn_sound_map, AS_PROGRAM, 8, cave_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") // ROM (Banked)
- AM_RANGE(0xc000, 0xdfff) AM_READWRITE_LEGACY(mirror_ram_r, mirror_ram_w) AM_BASE(m_mirror_ram) // RAM
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(mirror_ram_r, mirror_ram_w) // Mirrored RAM (agallet)
+ AM_RANGE(0xc000, 0xdfff) AM_READWRITE(mirror_ram_r, mirror_ram_w) AM_BASE(m_mirror_ram) // RAM
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(mirror_ram_r, mirror_ram_w) // Mirrored RAM (agallet)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sailormn_sound_portmap, AS_IO, 8, cave_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(sailormn_rombank_w) // Rom Bank
- AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(soundlatch_ack_w) // To Main CPU
- AM_RANGE(0x20, 0x20) AM_READ_LEGACY(soundflags_r) // Communication
- AM_RANGE(0x30, 0x30) AM_READ_LEGACY(soundlatch_lo_r) // From Main CPU
- AM_RANGE(0x40, 0x40) AM_READ_LEGACY(soundlatch_hi_r) //
+ AM_RANGE(0x00, 0x00) AM_WRITE(sailormn_rombank_w) // Rom Bank
+ AM_RANGE(0x10, 0x10) AM_WRITE(soundlatch_ack_w) // To Main CPU
+ AM_RANGE(0x20, 0x20) AM_READ(soundflags_r) // Communication
+ AM_RANGE(0x30, 0x30) AM_READ(soundlatch_lo_r) // From Main CPU
+ AM_RANGE(0x40, 0x40) AM_READ(soundlatch_hi_r) //
AM_RANGE(0x50, 0x51) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) // YM2151
AM_RANGE(0x60, 0x60) AM_DEVREADWRITE("oki1", okim6295_device, read, write) // M6295 #0
- AM_RANGE(0x70, 0x70) AM_WRITE_LEGACY(sailormn_okibank0_w) // Samples Bank #0
+ AM_RANGE(0x70, 0x70) AM_WRITE(sailormn_okibank0_w) // Samples Bank #0
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki2", okim6295_device, read, write) // M6295 #1
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(sailormn_okibank1_w) // Samples Bank #1
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(sailormn_okibank1_w) // Samples Bank #1
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index d30305b1b7b..6baa5ea4742 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -27,65 +27,62 @@
*
*************************************/
-static WRITE8_HANDLER( cbasebal_bankswitch_w )
+WRITE8_MEMBER(cbasebal_state::cbasebal_bankswitch_w)
{
- cbasebal_state *state = space->machine().driver_data<cbasebal_state>();
/* bits 0-4 select ROM bank */
- //logerror("%04x: bankswitch %02x\n", cpu_get_pc(&space->device()), data);
- memory_set_bank(space->machine(), "bank1", data & 0x1f);
+ //logerror("%04x: bankswitch %02x\n", cpu_get_pc(&space.device()), data);
+ memory_set_bank(machine(), "bank1", data & 0x1f);
/* bit 5 used but unknown */
/* bits 6-7 select RAM bank */
- state->m_rambank = (data & 0xc0) >> 6;
+ m_rambank = (data & 0xc0) >> 6;
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(cbasebal_state::bankedram_r)
{
- cbasebal_state *state = space->machine().driver_data<cbasebal_state>();
- switch (state->m_rambank)
+ switch (m_rambank)
{
case 2:
- return cbasebal_textram_r(space, offset); /* VRAM */
+ return cbasebal_textram_r(&space, offset); /* VRAM */
case 1:
if (offset < 0x800)
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
else
return 0;
break;
default:
- return cbasebal_scrollram_r(space, offset); /* SCROLL */
+ return cbasebal_scrollram_r(&space, offset); /* SCROLL */
}
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(cbasebal_state::bankedram_w)
{
- cbasebal_state *state = space->machine().driver_data<cbasebal_state>();
- switch (state->m_rambank)
+ switch (m_rambank)
{
case 2:
- cbasebal_textram_w(space, offset, data);
+ cbasebal_textram_w(&space, offset, data);
break;
case 1:
if (offset < 0x800)
paletteram_xxxxBBBBRRRRGGGG_le_w(space, offset, data);
break;
default:
- cbasebal_scrollram_w(space, offset, data);
+ cbasebal_scrollram_w(&space, offset, data);
break;
}
}
-static WRITE8_HANDLER( cbasebal_coinctrl_w )
+WRITE8_MEMBER(cbasebal_state::cbasebal_coinctrl_w)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x04);
- coin_lockout_w(space->machine(), 1, ~data & 0x08);
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_lockout_w(machine(), 0, ~data & 0x04);
+ coin_lockout_w(machine(), 1, ~data & 0x08);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
@@ -114,14 +111,14 @@ static const eeprom_interface cbasebal_eeprom_intf =
static ADDRESS_MAP_START( cbasebal_map, AS_PROGRAM, 8, cbasebal_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
- AM_RANGE(0xc000, 0xcfff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE_GENERIC(paletteram) /* palette + vram + scrollram */
+ AM_RANGE(0xc000, 0xcfff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE_GENERIC(paletteram) /* palette + vram + scrollram */
AM_RANGE(0xe000, 0xfdff) AM_RAM /* work RAM */
AM_RANGE(0xfe00, 0xffff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cbasebal_portmap, AS_IO, 8, cbasebal_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(cbasebal_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(cbasebal_bankswitch_w)
AM_RANGE(0x01, 0x01) AM_WRITE_PORT("IO_01")
AM_RANGE(0x02, 0x02) AM_WRITE_PORT("IO_02")
AM_RANGE(0x03, 0x03) AM_WRITE_PORT("IO_03")
@@ -133,7 +130,7 @@ static ADDRESS_MAP_START( cbasebal_portmap, AS_IO, 8, cbasebal_state )
AM_RANGE(0x11, 0x11) AM_READ_PORT("P2")
AM_RANGE(0x12, 0x12) AM_READ_PORT("SYSTEM")
AM_RANGE(0x13, 0x13) AM_WRITE_LEGACY(cbasebal_gfxctrl_w)
- AM_RANGE(0x14, 0x14) AM_WRITE_LEGACY(cbasebal_coinctrl_w)
+ AM_RANGE(0x14, 0x14) AM_WRITE(cbasebal_coinctrl_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index 00921e29318..469fa0fd707 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -26,14 +26,13 @@
#include "video/deco16ic.h"
#include "video/decospr.h"
-static WRITE16_HANDLER( twocrude_control_w )
+WRITE16_MEMBER(cbuster_state::twocrude_control_w)
{
- cbuster_state *state = space->machine().driver_data<cbuster_state>();
switch (offset << 1)
{
case 0: /* DMA flag */
- memcpy(state->m_spriteram16_buffer, state->m_spriteram16, 0x800);
+ memcpy(m_spriteram16_buffer, m_spriteram16, 0x800);
return;
case 6: /* IRQ ack */
@@ -41,7 +40,7 @@ static WRITE16_HANDLER( twocrude_control_w )
case 2: /* Sound CPU write */
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
return;
case 4: /* Protection, maybe this is a PAL on the board?
@@ -61,42 +60,41 @@ static WRITE16_HANDLER( twocrude_control_w )
protection?!
*/
- if ((data & 0xffff) == 0x9a00) state->m_prot = 0;
- if ((data & 0xffff) == 0xaa) state->m_prot = 0x74;
- if ((data & 0xffff) == 0x0200) state->m_prot = 0x63 << 8;
- if ((data & 0xffff) == 0x9a) state->m_prot = 0xe;
- if ((data & 0xffff) == 0x55) state->m_prot = 0x1e;
- if ((data & 0xffff) == 0x0e) {state->m_prot = 0x0e; state->m_pri = 0;} /* start */
- if ((data & 0xffff) == 0x00) {state->m_prot = 0x0e; state->m_pri = 0;} /* level 0 */
- if ((data & 0xffff) == 0xf1) {state->m_prot = 0x36; state->m_pri = 1;} /* level 1 */
- if ((data & 0xffff) == 0x80) {state->m_prot = 0x2e; state->m_pri = 1;} /* level 2 */
- if ((data & 0xffff) == 0x40) {state->m_prot = 0x1e; state->m_pri = 1;} /* level 3 */
- if ((data & 0xffff) == 0xc0) {state->m_prot = 0x3e; state->m_pri = 0;} /* level 4 */
- if ((data & 0xffff) == 0xff) {state->m_prot = 0x76; state->m_pri = 1;} /* level 5 */
+ if ((data & 0xffff) == 0x9a00) m_prot = 0;
+ if ((data & 0xffff) == 0xaa) m_prot = 0x74;
+ if ((data & 0xffff) == 0x0200) m_prot = 0x63 << 8;
+ if ((data & 0xffff) == 0x9a) m_prot = 0xe;
+ if ((data & 0xffff) == 0x55) m_prot = 0x1e;
+ if ((data & 0xffff) == 0x0e) {m_prot = 0x0e; m_pri = 0;} /* start */
+ if ((data & 0xffff) == 0x00) {m_prot = 0x0e; m_pri = 0;} /* level 0 */
+ if ((data & 0xffff) == 0xf1) {m_prot = 0x36; m_pri = 1;} /* level 1 */
+ if ((data & 0xffff) == 0x80) {m_prot = 0x2e; m_pri = 1;} /* level 2 */
+ if ((data & 0xffff) == 0x40) {m_prot = 0x1e; m_pri = 1;} /* level 3 */
+ if ((data & 0xffff) == 0xc0) {m_prot = 0x3e; m_pri = 0;} /* level 4 */
+ if ((data & 0xffff) == 0xff) {m_prot = 0x76; m_pri = 1;} /* level 5 */
break;
}
- logerror("Warning %04x- %02x written to control %02x\n", cpu_get_pc(&space->device()), data, offset);
+ logerror("Warning %04x- %02x written to control %02x\n", cpu_get_pc(&space.device()), data, offset);
}
-static READ16_HANDLER( twocrude_control_r )
+READ16_MEMBER(cbuster_state::twocrude_control_r)
{
- cbuster_state *state = space->machine().driver_data<cbuster_state>();
switch (offset << 1)
{
case 0: /* Player 1 & Player 2 joysticks & fire buttons */
- return input_port_read(space->machine(), "P1_P2");
+ return input_port_read(machine(), "P1_P2");
case 2: /* Dip Switches */
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 4: /* Protection */
- logerror("%04x : protection control read at 30c000 %d\n", cpu_get_pc(&space->device()), offset);
- return state->m_prot;
+ logerror("%04x : protection control read at 30c000 %d\n", cpu_get_pc(&space.device()), offset);
+ return m_prot;
case 6: /* Credits, VBL in byte 7 */
- return input_port_read(space->machine(), "COINS");
+ return input_port_read(machine(), "COINS");
}
return ~0;
@@ -124,7 +122,7 @@ static ADDRESS_MAP_START( twocrude_map, AS_PROGRAM, 16, cbuster_state )
AM_RANGE(0x0b6000, 0x0b600f) AM_DEVWRITE_LEGACY("tilegen2", deco16ic_pf_control_w)
AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM_WRITE_LEGACY(twocrude_palette_24bit_rg_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0b9000, 0x0b9fff) AM_RAM_WRITE_LEGACY(twocrude_palette_24bit_b_w) AM_BASE_GENERIC(paletteram2)
- AM_RANGE(0x0bc000, 0x0bc00f) AM_READWRITE_LEGACY(twocrude_control_r, twocrude_control_w)
+ AM_RANGE(0x0bc000, 0x0bc00f) AM_READWRITE(twocrude_control_r, twocrude_control_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c
index eb84444d959..2260fd661c3 100644
--- a/src/mame/drivers/ccastles.c
+++ b/src/mame/drivers/ccastles.c
@@ -242,40 +242,39 @@ static MACHINE_RESET( ccastles )
*
*************************************/
-static WRITE8_HANDLER( irq_ack_w )
+WRITE8_MEMBER(ccastles_state::irq_ack_w)
{
- ccastles_state *state = space->machine().driver_data<ccastles_state>();
- if (state->m_irq_state)
+ if (m_irq_state)
{
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
- state->m_irq_state = 0;
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
+ m_irq_state = 0;
}
}
-static WRITE8_HANDLER( led_w )
+WRITE8_MEMBER(ccastles_state::led_w)
{
- set_led_status(space->machine(), offset, ~data & 1);
+ set_led_status(machine(), offset, ~data & 1);
}
-static WRITE8_HANDLER( ccounter_w )
+WRITE8_MEMBER(ccastles_state::ccounter_w)
{
- coin_counter_w(space->machine(), offset, data & 1);
+ coin_counter_w(machine(), offset, data & 1);
}
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(ccastles_state::bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 1);
+ memory_set_bank(machine(), "bank1", data & 1);
}
-static READ8_HANDLER( leta_r )
+READ8_MEMBER(ccastles_state::leta_r)
{
static const char *const letanames[] = { "LETA0", "LETA1", "LETA2", "LETA3" };
- return input_port_read(space->machine(), letanames[offset]);
+ return input_port_read(machine(), letanames[offset]);
}
@@ -286,39 +285,35 @@ static READ8_HANDLER( leta_r )
*
*************************************/
-static WRITE8_HANDLER( nvram_recall_w )
+WRITE8_MEMBER(ccastles_state::nvram_recall_w)
{
- ccastles_state *state = space->machine().driver_data<ccastles_state>();
- state->m_nvram_4b->recall(0);
- state->m_nvram_4b->recall(1);
- state->m_nvram_4b->recall(0);
- state->m_nvram_4a->recall(0);
- state->m_nvram_4a->recall(1);
- state->m_nvram_4a->recall(0);
+ m_nvram_4b->recall(0);
+ m_nvram_4b->recall(1);
+ m_nvram_4b->recall(0);
+ m_nvram_4a->recall(0);
+ m_nvram_4a->recall(1);
+ m_nvram_4a->recall(0);
}
-static WRITE8_HANDLER( nvram_store_w )
+WRITE8_MEMBER(ccastles_state::nvram_store_w)
{
- ccastles_state *state = space->machine().driver_data<ccastles_state>();
- state->m_nvram_store[offset] = data & 1;
- state->m_nvram_4b->store(~state->m_nvram_store[0] & state->m_nvram_store[1]);
- state->m_nvram_4a->store(~state->m_nvram_store[0] & state->m_nvram_store[1]);
+ m_nvram_store[offset] = data & 1;
+ m_nvram_4b->store(~m_nvram_store[0] & m_nvram_store[1]);
+ m_nvram_4a->store(~m_nvram_store[0] & m_nvram_store[1]);
}
-static READ8_HANDLER( nvram_r )
+READ8_MEMBER(ccastles_state::nvram_r)
{
- ccastles_state *state = space->machine().driver_data<ccastles_state>();
- return (state->m_nvram_4b->read(*space, offset) & 0x0f) | (state->m_nvram_4a->read(*space, offset) << 4);
+ return (m_nvram_4b->read(*&space, offset) & 0x0f) | (m_nvram_4a->read(*&space, offset) << 4);
}
-static WRITE8_HANDLER( nvram_w )
+WRITE8_MEMBER(ccastles_state::nvram_w)
{
- ccastles_state *state = space->machine().driver_data<ccastles_state>();
- state->m_nvram_4b->write(*space, offset, data);
- state->m_nvram_4a->write(*space, offset, data >> 4);
+ m_nvram_4b->write(*&space, offset, data);
+ m_nvram_4a->write(*&space, offset, data >> 4);
}
@@ -336,20 +331,20 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ccastles_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM_WRITE_LEGACY(ccastles_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x8e00, 0x8fff) AM_BASE(m_spriteram)
- AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0300) AM_READWRITE_LEGACY(nvram_r, nvram_w)
- AM_RANGE(0x9400, 0x9403) AM_MIRROR(0x01fc) AM_READ_LEGACY(leta_r)
+ AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0300) AM_READWRITE(nvram_r, nvram_w)
+ AM_RANGE(0x9400, 0x9403) AM_MIRROR(0x01fc) AM_READ(leta_r)
AM_RANGE(0x9600, 0x97ff) AM_READ_PORT("IN0")
AM_RANGE(0x9800, 0x980f) AM_MIRROR(0x01f0) AM_DEVREADWRITE_LEGACY("pokey1", pokey_r, pokey_w)
AM_RANGE(0x9a00, 0x9a0f) AM_MIRROR(0x01f0) AM_DEVREADWRITE_LEGACY("pokey2", pokey_r, pokey_w)
- AM_RANGE(0x9c00, 0x9c7f) AM_WRITE_LEGACY(nvram_recall_w)
+ AM_RANGE(0x9c00, 0x9c7f) AM_WRITE(nvram_recall_w)
AM_RANGE(0x9c80, 0x9cff) AM_WRITE_LEGACY(ccastles_hscroll_w)
AM_RANGE(0x9d00, 0x9d7f) AM_WRITE_LEGACY(ccastles_vscroll_w)
- AM_RANGE(0x9d80, 0x9dff) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0x9d80, 0x9dff) AM_WRITE(irq_ack_w)
AM_RANGE(0x9e00, 0x9e7f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x9e80, 0x9e81) AM_MIRROR(0x0078) AM_WRITE_LEGACY(led_w)
- AM_RANGE(0x9e82, 0x9e83) AM_MIRROR(0x0078) AM_WRITE_LEGACY(nvram_store_w)
- AM_RANGE(0x9e85, 0x9e86) AM_MIRROR(0x0078) AM_WRITE_LEGACY(ccounter_w)
- AM_RANGE(0x9e87, 0x9e87) AM_MIRROR(0x0078) AM_WRITE_LEGACY(bankswitch_w)
+ AM_RANGE(0x9e80, 0x9e81) AM_MIRROR(0x0078) AM_WRITE(led_w)
+ AM_RANGE(0x9e82, 0x9e83) AM_MIRROR(0x0078) AM_WRITE(nvram_store_w)
+ AM_RANGE(0x9e85, 0x9e86) AM_MIRROR(0x0078) AM_WRITE(ccounter_w)
+ AM_RANGE(0x9e87, 0x9e87) AM_MIRROR(0x0078) AM_WRITE(bankswitch_w)
AM_RANGE(0x9f00, 0x9f07) AM_MIRROR(0x0078) AM_WRITE_LEGACY(ccastles_video_control_w)
AM_RANGE(0x9f80, 0x9fbf) AM_MIRROR(0x0040) AM_WRITE_LEGACY(ccastles_paletteram_w)
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank1")
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index 9fc08bd99a5..38810ccb7da 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -214,46 +214,41 @@ Dip location verified from manual for: cclimber, guzzler, swimmer
#define MASTER_CLOCK XTAL_18_432MHz
-static WRITE8_HANDLER( swimmer_sh_soundlatch_w )
+WRITE8_MEMBER(cclimber_state::swimmer_sh_soundlatch_w)
{
soundlatch_w(space,offset,data);
- cputag_set_input_line_and_vector(space->machine(), "audiocpu", 0, HOLD_LINE, 0xff);
+ cputag_set_input_line_and_vector(machine(), "audiocpu", 0, HOLD_LINE, 0xff);
}
-static WRITE8_HANDLER( yamato_p0_w )
+WRITE8_MEMBER(cclimber_state::yamato_p0_w)
{
- cclimber_state *state = space->machine().driver_data<cclimber_state>();
- state->m_yamato_p0 = data;
+ m_yamato_p0 = data;
}
-static WRITE8_HANDLER( yamato_p1_w )
+WRITE8_MEMBER(cclimber_state::yamato_p1_w)
{
- cclimber_state *state = space->machine().driver_data<cclimber_state>();
- state->m_yamato_p1 = data;
+ m_yamato_p1 = data;
}
-static READ8_HANDLER( yamato_p0_r )
+READ8_MEMBER(cclimber_state::yamato_p0_r)
{
- cclimber_state *state = space->machine().driver_data<cclimber_state>();
- return state->m_yamato_p0;
+ return m_yamato_p0;
}
-static READ8_HANDLER( yamato_p1_r )
+READ8_MEMBER(cclimber_state::yamato_p1_r)
{
- cclimber_state *state = space->machine().driver_data<cclimber_state>();
- return state->m_yamato_p1;
+ return m_yamato_p1;
}
-static WRITE8_HANDLER(toprollr_rombank_w)
+WRITE8_MEMBER(cclimber_state::toprollr_rombank_w)
{
- cclimber_state *state = space->machine().driver_data<cclimber_state>();
- state->m_toprollr_rombank &= ~(1 << offset);
- state->m_toprollr_rombank |= (data & 1) << offset;
+ m_toprollr_rombank &= ~(1 << offset);
+ m_toprollr_rombank |= (data & 1) << offset;
- if (state->m_toprollr_rombank < 3)
- memory_set_bank(space->machine(), "bank1", state->m_toprollr_rombank);
+ if (m_toprollr_rombank < 3)
+ memory_set_bank(machine(), "bank1", m_toprollr_rombank);
}
static MACHINE_RESET( cclimber )
@@ -267,11 +262,10 @@ static MACHINE_RESET( cclimber )
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(cclimber_state::nmi_mask_w)
{
- cclimber_state *state = space->machine().driver_data<cclimber_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
@@ -292,9 +286,9 @@ static ADDRESS_MAP_START( cclimber_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_BASE(m_bigsprite_control)
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE_LEGACY(cclimber_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITEONLY AM_BASE(m_flip_screen)
- AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(nmi_mask_w) //used by Crazy Kong Bootleg with alt levels and speed up
+ AM_RANGE(0xa003, 0xa003) AM_WRITE(nmi_mask_w) //used by Crazy Kong Bootleg with alt levels and speed up
AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(cclimber_sample_trigger_w)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2") AM_WRITE_LEGACY(cclimber_sample_rate_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(cclimber_sample_volume_w)
@@ -316,7 +310,7 @@ static ADDRESS_MAP_START( cannonb_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_BASE(m_bigsprite_control)
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE_LEGACY(cclimber_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITE_LEGACY(cannonb_flip_screen_w) AM_BASE(m_flip_screen)
AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(cclimber_sample_trigger_w)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2") AM_WRITE_LEGACY(cclimber_sample_rate_w)
@@ -333,11 +327,11 @@ static ADDRESS_MAP_START( swimmer_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x9880, 0x989f) AM_WRITEONLY AM_BASE(m_spriteram)
AM_RANGE(0x98fc, 0x98ff) AM_WRITEONLY AM_BASE(m_bigsprite_control)
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE_LEGACY(cclimber_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P2") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P2") AM_WRITE(nmi_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITEONLY AM_BASE(m_flip_screen)
AM_RANGE(0xa003, 0xa003) AM_WRITEONLY AM_BASE(m_swimmer_side_background_enabled)
AM_RANGE(0xa004, 0xa004) AM_WRITEONLY AM_BASE(m_swimmer_palettebank)
- AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P1") AM_WRITE_LEGACY(swimmer_sh_soundlatch_w)
+ AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P1") AM_WRITE(swimmer_sh_soundlatch_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW1")
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE(m_swimmer_background_color)
AM_RANGE(0xb880, 0xb880) AM_READ_PORT("SYSTEM")
@@ -359,7 +353,7 @@ static ADDRESS_MAP_START( yamato_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_BASE(m_bigsprite_control)
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE_LEGACY(cclimber_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITEONLY AM_BASE(m_flip_screen)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW")
@@ -378,10 +372,10 @@ static ADDRESS_MAP_START( toprollr_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x9880, 0x995f) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x99dc, 0x99df) AM_RAM AM_BASE(m_bigsprite_control)
AM_RANGE(0x9c00, 0x9fff) AM_RAM AM_BASE(m_colorram)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
AM_RANGE(0xa001, 0xa002) AM_WRITEONLY AM_BASE(m_flip_screen)
AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(cclimber_sample_trigger_w)
- AM_RANGE(0xa005, 0xa006) AM_WRITE_LEGACY(toprollr_rombank_w)
+ AM_RANGE(0xa005, 0xa006) AM_WRITE(toprollr_rombank_w)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P2") AM_WRITE_LEGACY(cclimber_sample_rate_w)
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(cclimber_sample_volume_w)
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("SYSTEM")
@@ -397,8 +391,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( yamato_portmap, AS_IO, 8, cclimber_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(yamato_p0_w) /* ??? */
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(yamato_p1_w) /* ??? */
+ AM_RANGE(0x00, 0x00) AM_WRITE(yamato_p0_w) /* ??? */
+ AM_RANGE(0x01, 0x01) AM_WRITE(yamato_p1_w) /* ??? */
ADDRESS_MAP_END
@@ -425,8 +419,8 @@ static ADDRESS_MAP_START( yamato_audio_portmap, AS_IO, 8, cclimber_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(yamato_p0_r) /* ??? */
- AM_RANGE(0x08, 0x08) AM_READ_LEGACY(yamato_p1_r) /* ??? */
+ AM_RANGE(0x04, 0x04) AM_READ(yamato_p0_r) /* ??? */
+ AM_RANGE(0x08, 0x08) AM_READ(yamato_p1_r) /* ??? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index 5e47fc9e234..29d943a5ad5 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -484,9 +484,9 @@ static MACHINE_RESET( magworm )
}
-static WRITE8_HANDLER( irq_ack_w )
+WRITE8_MEMBER(centiped_state::irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -543,27 +543,26 @@ INLINE int read_trackball(running_machine &machine, int idx, int switch_port)
}
-static READ8_HANDLER( centiped_IN0_r )
+READ8_MEMBER(centiped_state::centiped_IN0_r)
{
- return read_trackball(space->machine(), 0, 0);
+ return read_trackball(machine(), 0, 0);
}
-static READ8_HANDLER( centiped_IN2_r )
+READ8_MEMBER(centiped_state::centiped_IN2_r)
{
- return read_trackball(space->machine(), 1, 2);
+ return read_trackball(machine(), 1, 2);
}
-static READ8_HANDLER( milliped_IN1_r )
+READ8_MEMBER(centiped_state::milliped_IN1_r)
{
- return read_trackball(space->machine(), 1, 1);
+ return read_trackball(machine(), 1, 1);
}
-static READ8_HANDLER( milliped_IN2_r )
+READ8_MEMBER(centiped_state::milliped_IN2_r)
{
- centiped_state *state = space->machine().driver_data<centiped_state>();
- UINT8 data = input_port_read(space->machine(), "IN2");
+ UINT8 data = input_port_read(machine(), "IN2");
/* MSH - 15 Feb, 2007
* The P2 X Joystick inputs are not properly handled in
@@ -572,9 +571,9 @@ static READ8_HANDLER( milliped_IN2_r )
* the inputs, and has the good side effect of disabling
* the actual Joy1 inputs while control_select is no zero.
*/
- if (0 != state->m_control_select) {
+ if (0 != m_control_select) {
/* Bottom 4 bits is our joystick inputs */
- UINT8 joy2data = input_port_read(space->machine(), "IN3") & 0x0f;
+ UINT8 joy2data = input_port_read(machine(), "IN3") & 0x0f;
data = data & 0xf0; /* Keep the top 4 bits */
data |= (joy2data & 0x0a) >> 1; /* flip left and up */
data |= (joy2data & 0x05) << 1; /* flip right and down */
@@ -582,41 +581,37 @@ static READ8_HANDLER( milliped_IN2_r )
return data;
}
-static WRITE8_HANDLER( input_select_w )
+WRITE8_MEMBER(centiped_state::input_select_w)
{
- centiped_state *state = space->machine().driver_data<centiped_state>();
- state->m_dsw_select = (~data >> 7) & 1;
+ m_dsw_select = (~data >> 7) & 1;
}
/* used P2 controls if 1, P1 controls if 0 */
-static WRITE8_HANDLER( control_select_w )
+WRITE8_MEMBER(centiped_state::control_select_w)
{
- centiped_state *state = space->machine().driver_data<centiped_state>();
- state->m_control_select = (data >> 7) & 1;
+ m_control_select = (data >> 7) & 1;
}
-static READ8_HANDLER( mazeinv_input_r )
+READ8_MEMBER(centiped_state::mazeinv_input_r)
{
- centiped_state *state = space->machine().driver_data<centiped_state>();
static const char *const sticknames[] = { "STICK0", "STICK1", "STICK2", "STICK3" };
- return input_port_read(space->machine(), sticknames[state->m_control_select]);
+ return input_port_read(machine(), sticknames[m_control_select]);
}
-static WRITE8_HANDLER( mazeinv_input_select_w )
+WRITE8_MEMBER(centiped_state::mazeinv_input_select_w)
{
- centiped_state *state = space->machine().driver_data<centiped_state>();
- state->m_control_select = offset & 3;
+ m_control_select = offset & 3;
}
-static READ8_HANDLER( bullsdrt_data_port_r )
+READ8_MEMBER(centiped_state::bullsdrt_data_port_r)
{
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x0033:
case 0x6b19:
@@ -634,9 +629,9 @@ static READ8_HANDLER( bullsdrt_data_port_r )
*
*************************************/
-static WRITE8_HANDLER( led_w )
+WRITE8_MEMBER(centiped_state::led_w)
{
- set_led_status(space->machine(), offset, ~data & 0x80);
+ set_led_status(machine(), offset, ~data & 0x80);
}
@@ -646,15 +641,15 @@ static READ8_DEVICE_HANDLER( caterplr_rand_r )
}
-static WRITE8_HANDLER( coin_count_w )
+WRITE8_MEMBER(centiped_state::coin_count_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
-static WRITE8_HANDLER( bullsdrt_coin_count_w )
+WRITE8_MEMBER(centiped_state::bullsdrt_coin_count_w)
{
- coin_counter_w(space->machine(), 0, data);
+ coin_counter_w(machine(), 0, data);
}
@@ -693,18 +688,18 @@ static ADDRESS_MAP_START( centiped_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("DSW2") /* DSW2 */
- AM_RANGE(0x0c00, 0x0c00) AM_READ_LEGACY(centiped_IN0_r) /* IN0 */
+ AM_RANGE(0x0c00, 0x0c00) AM_READ(centiped_IN0_r) /* IN0 */
AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("IN1") /* IN1 */
- AM_RANGE(0x0c02, 0x0c02) AM_READ_LEGACY(centiped_IN2_r) /* IN2 */
+ AM_RANGE(0x0c02, 0x0c02) AM_READ(centiped_IN2_r) /* IN2 */
AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("IN3") /* IN3 */
AM_RANGE(0x1000, 0x100f) AM_DEVREADWRITE_LEGACY("pokey", pokey_r, pokey_w)
AM_RANGE(0x1400, 0x140f) AM_WRITE_LEGACY(centiped_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1600, 0x163f) AM_DEVWRITE("earom",atari_vg_earom_device, write)
AM_RANGE(0x1680, 0x1680) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x1700, 0x173f) AM_DEVREAD("earom", atari_vg_earom_device, read)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0x1c00, 0x1c02) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0x1c03, 0x1c04) AM_WRITE_LEGACY(led_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(irq_ack_w)
+ AM_RANGE(0x1c00, 0x1c02) AM_WRITE(coin_count_w)
+ AM_RANGE(0x1c03, 0x1c04) AM_WRITE(led_w)
AM_RANGE(0x1c07, 0x1c07) AM_WRITE_LEGACY(centiped_flip_screen_w)
AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x2000, 0x3fff) AM_ROM
@@ -718,9 +713,9 @@ static ADDRESS_MAP_START( centipdb_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x07c0, 0x07ff) AM_MIRROR(0x4000) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x4000) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x0801, 0x0801) AM_MIRROR(0x4000) AM_READ_PORT("DSW2") /* DSW2 */
- AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x4000) AM_READ_LEGACY(centiped_IN0_r) /* IN0 */
+ AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x4000) AM_READ(centiped_IN0_r) /* IN0 */
AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x4000) AM_READ_PORT("IN1") /* IN1 */
- AM_RANGE(0x0c02, 0x0c02) AM_MIRROR(0x4000) AM_READ_LEGACY(centiped_IN2_r) /* IN2 */
+ AM_RANGE(0x0c02, 0x0c02) AM_MIRROR(0x4000) AM_READ(centiped_IN2_r) /* IN2 */
AM_RANGE(0x0c03, 0x0c03) AM_MIRROR(0x4000) AM_READ_PORT("IN3") /* IN3 */
AM_RANGE(0x1000, 0x1001) AM_MIRROR(0x4000) AM_DEVWRITE_LEGACY("pokey", ay8910_data_address_w)
AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x4000) AM_DEVREAD_LEGACY("pokey", ay8910_r)
@@ -728,9 +723,9 @@ static ADDRESS_MAP_START( centipdb_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x1600, 0x163f) AM_MIRROR(0x4000) AM_DEVWRITE("earom", atari_vg_earom_device, write)
AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x4000) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x1700, 0x173f) AM_MIRROR(0x4000) AM_DEVREAD("earom", atari_vg_earom_device, read)
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x4000) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0x1c00, 0x1c02) AM_MIRROR(0x4000) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0x1c03, 0x1c04) AM_MIRROR(0x4000) AM_WRITE_LEGACY(led_w)
+ AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x4000) AM_WRITE(irq_ack_w)
+ AM_RANGE(0x1c00, 0x1c02) AM_MIRROR(0x4000) AM_WRITE(coin_count_w)
+ AM_RANGE(0x1c03, 0x1c04) AM_MIRROR(0x4000) AM_WRITE(led_w)
AM_RANGE(0x1c07, 0x1c07) AM_MIRROR(0x4000) AM_WRITE_LEGACY(centiped_flip_screen_w)
AM_RANGE(0x2000, 0x27ff) AM_ROM
AM_RANGE(0x2800, 0x3fff) AM_MIRROR(0x4000) AM_ROM
@@ -752,18 +747,18 @@ static ADDRESS_MAP_START( milliped_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE_LEGACY("pokey2", pokey_r, pokey_w)
AM_RANGE(0x1000, 0x13bf) AM_RAM_WRITE_LEGACY(centiped_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x13c0, 0x13ff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0x2000, 0x2000) AM_READ_LEGACY(centiped_IN0_r)
- AM_RANGE(0x2001, 0x2001) AM_READ_LEGACY(milliped_IN1_r)
- AM_RANGE(0x2010, 0x2010) AM_READ_LEGACY(milliped_IN2_r)
+ AM_RANGE(0x2000, 0x2000) AM_READ(centiped_IN0_r)
+ AM_RANGE(0x2001, 0x2001) AM_READ(milliped_IN1_r)
+ AM_RANGE(0x2010, 0x2010) AM_READ(milliped_IN2_r)
AM_RANGE(0x2011, 0x2011) AM_READ_PORT("IN3")
AM_RANGE(0x2030, 0x2030) AM_DEVREAD("earom", atari_vg_earom_device, read)
AM_RANGE(0x2480, 0x249f) AM_WRITE_LEGACY(milliped_paletteram_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x2500, 0x2502) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0x2503, 0x2504) AM_WRITE_LEGACY(led_w)
- AM_RANGE(0x2505, 0x2505) AM_WRITE_LEGACY(input_select_w) /* TBEN */
+ AM_RANGE(0x2500, 0x2502) AM_WRITE(coin_count_w)
+ AM_RANGE(0x2503, 0x2504) AM_WRITE(led_w)
+ AM_RANGE(0x2505, 0x2505) AM_WRITE(input_select_w) /* TBEN */
AM_RANGE(0x2506, 0x2506) AM_WRITE_LEGACY(centiped_flip_screen_w)
- AM_RANGE(0x2507, 0x2507) AM_WRITE_LEGACY(control_select_w) /* CNTRLSEL */
- AM_RANGE(0x2600, 0x2600) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0x2507, 0x2507) AM_WRITE(control_select_w) /* CNTRLSEL */
+ AM_RANGE(0x2600, 0x2600) AM_WRITE(irq_ack_w)
AM_RANGE(0x2680, 0x2680) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x2700, 0x2700) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x2780, 0x27bf) AM_DEVWRITE("earom", atari_vg_earom_device, write)
@@ -788,9 +783,9 @@ static ADDRESS_MAP_START( warlords_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("IN0") /* IN0 */
AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x1000, 0x100f) AM_DEVREADWRITE_LEGACY("pokey", pokey_r, pokey_w)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0x1c00, 0x1c02) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0x1c03, 0x1c06) AM_WRITE_LEGACY(led_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(irq_ack_w)
+ AM_RANGE(0x1c00, 0x1c02) AM_WRITE(coin_count_w)
+ AM_RANGE(0x1c03, 0x1c06) AM_WRITE(led_w)
AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x5000, 0x7fff) AM_ROM
ADDRESS_MAP_END
@@ -814,15 +809,15 @@ static ADDRESS_MAP_START( mazeinv_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("IN1")
AM_RANGE(0x2010, 0x2010) AM_READ_PORT("IN2")
AM_RANGE(0x2011, 0x2011) AM_READ_PORT("IN3")
- AM_RANGE(0x2020, 0x2020) AM_READ_LEGACY(mazeinv_input_r)
+ AM_RANGE(0x2020, 0x2020) AM_READ(mazeinv_input_r)
AM_RANGE(0x2030, 0x2030) AM_DEVREAD("earom", atari_vg_earom_device, read)
AM_RANGE(0x2480, 0x249f) AM_WRITE_LEGACY(mazeinv_paletteram_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x2500, 0x2502) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0x2503, 0x2504) AM_WRITE_LEGACY(led_w)
- AM_RANGE(0x2505, 0x2505) AM_WRITE_LEGACY(input_select_w)
+ AM_RANGE(0x2500, 0x2502) AM_WRITE(coin_count_w)
+ AM_RANGE(0x2503, 0x2504) AM_WRITE(led_w)
+ AM_RANGE(0x2505, 0x2505) AM_WRITE(input_select_w)
AM_RANGE(0x2506, 0x2506) AM_WRITE_LEGACY(centiped_flip_screen_w)
- AM_RANGE(0x2580, 0x2583) AM_WRITE_LEGACY(mazeinv_input_select_w)
- AM_RANGE(0x2600, 0x2600) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0x2580, 0x2583) AM_WRITE(mazeinv_input_select_w)
+ AM_RANGE(0x2600, 0x2600) AM_WRITE(irq_ack_w)
AM_RANGE(0x2680, 0x2680) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x2700, 0x2700) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x2780, 0x27bf) AM_DEVWRITE("earom", atari_vg_earom_device, write)
@@ -840,15 +835,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bullsdrt_map, AS_PROGRAM, 8, centiped_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x6000) AM_READ_PORT("DSW1")
- AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x6000) AM_READ_LEGACY(centiped_IN0_r)
+ AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x6000) AM_READ(centiped_IN0_r)
AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
- AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x6000) AM_READ_LEGACY(centiped_IN2_r)
+ AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x6000) AM_READ(centiped_IN2_r)
AM_RANGE(0x1200, 0x123f) AM_MIRROR(0x6000) AM_DEVREADWRITE("earom",atari_vg_earom_device, read, write)
AM_RANGE(0x1280, 0x1280) AM_MIRROR(0x6000) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x1300, 0x1300) AM_MIRROR(0x6000) AM_READ_PORT("DSW2")
AM_RANGE(0x1400, 0x140f) AM_MIRROR(0x6000) AM_WRITE_LEGACY(centiped_paletteram_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x1481, 0x1481) AM_MIRROR(0x6000) AM_WRITE_LEGACY(bullsdrt_coin_count_w)
- AM_RANGE(0x1483, 0x1484) AM_MIRROR(0x6000) AM_WRITE_LEGACY(led_w)
+ AM_RANGE(0x1481, 0x1481) AM_MIRROR(0x6000) AM_WRITE(bullsdrt_coin_count_w)
+ AM_RANGE(0x1483, 0x1484) AM_MIRROR(0x6000) AM_WRITE(led_w)
AM_RANGE(0x1487, 0x1487) AM_MIRROR(0x6000) AM_WRITE_LEGACY(centiped_flip_screen_w)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x6000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_NOP
@@ -863,7 +858,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bullsdrt_port_map, AS_IO, 8, centiped_state )
AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(bullsdrt_sprites_bank_w)
AM_RANGE(0x20, 0x3f) AM_WRITE_LEGACY(bullsdrt_tilesbank_w) AM_BASE(m_bullsdrt_tiles_bankram)
- AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_LEGACY(bullsdrt_data_port_r) AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
+ AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(bullsdrt_data_port_r) AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index edaef1ff3bf..62a4630efc6 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -128,9 +128,9 @@ static WRITE8_DEVICE_HANDLER ( unknown_port_2_w )
//logerror("%s: write to unknow port 2: 0x%02x\n", device->machine().describe_context(), data);
}
-static WRITE8_HANDLER ( coinlock_w )
+WRITE8_MEMBER(chaknpop_state::coinlock_w)
{
- logerror("%04x: coin lock %sable\n", cpu_get_pc(&space->device()), data ? "dis" : "en");
+ logerror("%04x: coin lock %sable\n", cpu_get_pc(&space.device()), data ? "dis" : "en");
}
@@ -153,7 +153,7 @@ static ADDRESS_MAP_START( chaknpop_map, AS_PROGRAM, 8, chaknpop_state )
AM_RANGE(0x880a, 0x880a) AM_READ_PORT("SYSTEM")
AM_RANGE(0x880b, 0x880b) AM_READ_PORT("P2")
AM_RANGE(0x880c, 0x880c) AM_READWRITE_LEGACY(chaknpop_gfxmode_r, chaknpop_gfxmode_w)
- AM_RANGE(0x880d, 0x880d) AM_WRITE_LEGACY(coinlock_w) // coin lock out
+ AM_RANGE(0x880d, 0x880d) AM_WRITE(coinlock_w) // coin lock out
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE_LEGACY(chaknpop_txram_w) AM_BASE(m_tx_ram) // TX tilemap
AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE_LEGACY(chaknpop_attrram_w) AM_BASE(m_attr_ram) // Color attribute
AM_RANGE(0x9840, 0x98ff) AM_RAM AM_BASE_SIZE(m_spr_ram, m_spr_ram_size) // sprite
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index 6eec62fca6b..6f194a06fed 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -115,10 +115,9 @@ static SCREEN_VBLANK( champbas )
*
*************************************/
-static WRITE8_HANDLER( champbas_watchdog_reset_w )
+WRITE8_MEMBER(champbas_state::champbas_watchdog_reset_w)
{
- champbas_state *state = space->machine().driver_data<champbas_state>();
- state->m_watchdog_count = 0;
+ m_watchdog_count = 0;
}
static CUSTOM_INPUT( champbas_watchdog_bit2 )
@@ -128,14 +127,13 @@ static CUSTOM_INPUT( champbas_watchdog_bit2 )
}
-static WRITE8_HANDLER( irq_enable_w )
+WRITE8_MEMBER(champbas_state::irq_enable_w)
{
- champbas_state *state = space->machine().driver_data<champbas_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
- if (!state->m_irq_mask)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ if (!m_irq_mask)
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
}
static TIMER_CALLBACK( exctsccr_fm_callback )
@@ -157,27 +155,26 @@ static WRITE8_DEVICE_HANDLER( champbas_dac_w )
*
*************************************/
-static WRITE8_HANDLER( champbas_mcu_switch_w )
+WRITE8_MEMBER(champbas_state::champbas_mcu_switch_w)
{
// switch shared RAM between CPU and MCU bus
// FIXME not implemented
}
-static WRITE8_HANDLER( champbas_mcu_halt_w )
+WRITE8_MEMBER(champbas_state::champbas_mcu_halt_w)
{
- champbas_state *state = space->machine().driver_data<champbas_state>();
// MCU not present/not used in champbas
- if (state->m_mcu == NULL)
+ if (m_mcu == NULL)
return;
data &= 1;
- device_set_input_line(state->m_mcu, INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE);
+ device_set_input_line(m_mcu, INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE);
}
/* champbja another protection */
-static READ8_HANDLER( champbja_alt_protection_r )
+READ8_MEMBER(champbas_state::champbja_alt_protection_r)
{
UINT8 data = 0;
/*
@@ -230,17 +227,17 @@ static ADDRESS_MAP_START( talbot_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("DSW")
AM_RANGE(0xa0c0, 0xa0c0) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(irq_enable_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_enable_w)
AM_RANGE(0xa001, 0xa001) AM_WRITENOP // !WORK board output (no use?)
AM_RANGE(0xa002, 0xa002) AM_WRITENOP
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(champbas_flipscreen_w)
AM_RANGE(0xa004, 0xa004) AM_WRITENOP
AM_RANGE(0xa005, 0xa005) AM_WRITENOP
- AM_RANGE(0xa006, 0xa006) AM_WRITE_LEGACY(champbas_mcu_halt_w)
- AM_RANGE(0xa007, 0xa007) AM_WRITE_LEGACY(champbas_mcu_switch_w)
+ AM_RANGE(0xa006, 0xa006) AM_WRITE(champbas_mcu_halt_w)
+ AM_RANGE(0xa007, 0xa007) AM_WRITE(champbas_mcu_switch_w)
AM_RANGE(0xa060, 0xa06f) AM_WRITEONLY AM_BASE(m_spriteram_2)
- AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE_LEGACY(champbas_watchdog_reset_w)
+ AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(champbas_watchdog_reset_w)
ADDRESS_MAP_END
@@ -258,22 +255,22 @@ static ADDRESS_MAP_START( champbas_main_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("DSW")
AM_RANGE(0xa0c0, 0xa0c0) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(irq_enable_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_enable_w)
AM_RANGE(0xa001, 0xa001) AM_WRITENOP // !WORK board output (no use?)
AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(champbas_gfxbank_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(champbas_flipscreen_w)
AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(champbas_palette_bank_w)
AM_RANGE(0xa005, 0xa005) AM_WRITENOP // n.c.
- AM_RANGE(0xa006, 0xa006) AM_WRITE_LEGACY(champbas_mcu_halt_w) // MCU not present/not used in champbas
- AM_RANGE(0xa007, 0xa007) AM_WRITE_LEGACY(champbas_mcu_switch_w) // MCU not present/not used in champbas
+ AM_RANGE(0xa006, 0xa006) AM_WRITE(champbas_mcu_halt_w) // MCU not present/not used in champbas
+ AM_RANGE(0xa007, 0xa007) AM_WRITE(champbas_mcu_switch_w) // MCU not present/not used in champbas
AM_RANGE(0xa060, 0xa06f) AM_RAM AM_BASE(m_spriteram_2)
AM_RANGE(0xa080, 0xa080) AM_WRITE_LEGACY(soundlatch_w)
/* AM_RANGE(0xa0a0, 0xa0a0) ???? */
- AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE_LEGACY(champbas_watchdog_reset_w)
+ AM_RANGE(0xa0c0, 0xa0c0) AM_WRITE(champbas_watchdog_reset_w)
/* champbja only */
- AM_RANGE(0x6800, 0x68ff) AM_READ_LEGACY(champbja_alt_protection_r)
+ AM_RANGE(0x6800, 0x68ff) AM_READ(champbja_alt_protection_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( exctsccrb_main_map, AS_PROGRAM, 8, champbas_state )
@@ -289,7 +286,7 @@ static ADDRESS_MAP_START( exctsccrb_main_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("DSW")
AM_RANGE(0xa0c0, 0xa0c0) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(irq_enable_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_enable_w)
AM_RANGE(0xa001, 0xa001) AM_WRITENOP /* ??? */
AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(champbas_gfxbank_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(champbas_flipscreen_w)
@@ -314,11 +311,11 @@ static ADDRESS_MAP_START( exctsccr_main_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("DSW")
AM_RANGE(0xa0c0, 0xa0c0) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(irq_enable_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(irq_enable_w)
// AM_RANGE(0xa001, 0xa001) AM_WRITENOP /* ??? */
AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(champbas_gfxbank_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(champbas_flipscreen_w)
- AM_RANGE(0xa006, 0xa006) AM_WRITE_LEGACY(champbas_mcu_halt_w)
+ AM_RANGE(0xa006, 0xa006) AM_WRITE(champbas_mcu_halt_w)
AM_RANGE(0xa007, 0xa007) AM_WRITENOP /* This is also MCU control, but i dont need it */
AM_RANGE(0xa040, 0xa06f) AM_WRITEONLY AM_BASE(m_spriteram) /* Sprite pos */
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index 484d707bb95..35569fbdb77 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -17,19 +17,17 @@ Tomasz Slanina
#include "changela.lh"
-static READ8_HANDLER( mcu_r )
+READ8_MEMBER(changela_state::mcu_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- //mame_printf_debug("Z80 MCU R = %x\n", state->m_mcu_out);
- return state->m_mcu_out;
+ //mame_printf_debug("Z80 MCU R = %x\n", m_mcu_out);
+ return m_mcu_out;
}
/* latch LS374 at U39 */
-static WRITE8_HANDLER( mcu_w )
+WRITE8_MEMBER(changela_state::mcu_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_mcu_in = data;
+ m_mcu_in = data;
}
@@ -37,81 +35,72 @@ static WRITE8_HANDLER( mcu_w )
MCU
*********************************/
-static READ8_HANDLER( changela_68705_port_a_r )
+READ8_MEMBER(changela_state::changela_68705_port_a_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- return (state->m_port_a_out & state->m_ddr_a) | (state->m_port_a_in & ~state->m_ddr_a);
+ return (m_port_a_out & m_ddr_a) | (m_port_a_in & ~m_ddr_a);
}
-static WRITE8_HANDLER( changela_68705_port_a_w )
+WRITE8_MEMBER(changela_state::changela_68705_port_a_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_port_a_out = data;
+ m_port_a_out = data;
}
-static WRITE8_HANDLER( changela_68705_ddr_a_w )
+WRITE8_MEMBER(changela_state::changela_68705_ddr_a_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_ddr_a = data;
+ m_ddr_a = data;
}
-static READ8_HANDLER( changela_68705_port_b_r )
+READ8_MEMBER(changela_state::changela_68705_port_b_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- return (state->m_port_b_out & state->m_ddr_b) | (input_port_read(space->machine(), "MCU") & ~state->m_ddr_b);
+ return (m_port_b_out & m_ddr_b) | (input_port_read(machine(), "MCU") & ~m_ddr_b);
}
-static WRITE8_HANDLER( changela_68705_port_b_w )
+WRITE8_MEMBER(changela_state::changela_68705_port_b_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_port_b_out = data;
+ m_port_b_out = data;
}
-static WRITE8_HANDLER( changela_68705_ddr_b_w )
+WRITE8_MEMBER(changela_state::changela_68705_ddr_b_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_ddr_b = data;
+ m_ddr_b = data;
}
-static READ8_HANDLER( changela_68705_port_c_r )
+READ8_MEMBER(changela_state::changela_68705_port_c_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- return (state->m_port_c_out & state->m_ddr_c) | (state->m_port_c_in & ~state->m_ddr_c);
+ return (m_port_c_out & m_ddr_c) | (m_port_c_in & ~m_ddr_c);
}
-static WRITE8_HANDLER( changela_68705_port_c_w )
+WRITE8_MEMBER(changela_state::changela_68705_port_c_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
/* PC3 is connected to the CLOCK input of the LS374,
so we latch the data on positive going edge of the clock */
/* this is strange because if we do this corectly - it just doesn't work */
- if ((data & 8) /*& (!(state->m_port_c_out & 8))*/ )
- state->m_mcu_out = state->m_port_a_out;
+ if ((data & 8) /*& (!(m_port_c_out & 8))*/ )
+ m_mcu_out = m_port_a_out;
/* PC2 is connected to the /OE input of the LS374 */
if (!(data & 4))
- state->m_port_a_in = state->m_mcu_in;
+ m_port_a_in = m_mcu_in;
- state->m_port_c_out = data;
+ m_port_c_out = data;
}
-static WRITE8_HANDLER( changela_68705_ddr_c_w )
+WRITE8_MEMBER(changela_state::changela_68705_ddr_c_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_ddr_c = data;
+ m_ddr_c = data;
}
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, changela_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
- AM_RANGE(0x0000, 0x0000) AM_READWRITE_LEGACY(changela_68705_port_a_r, changela_68705_port_a_w)
- AM_RANGE(0x0001, 0x0001) AM_READWRITE_LEGACY(changela_68705_port_b_r, changela_68705_port_b_w)
- AM_RANGE(0x0002, 0x0002) AM_READWRITE_LEGACY(changela_68705_port_c_r, changela_68705_port_c_w)
+ AM_RANGE(0x0000, 0x0000) AM_READWRITE(changela_68705_port_a_r, changela_68705_port_a_w)
+ AM_RANGE(0x0001, 0x0001) AM_READWRITE(changela_68705_port_b_r, changela_68705_port_b_w)
+ AM_RANGE(0x0002, 0x0002) AM_READWRITE(changela_68705_port_c_r, changela_68705_port_c_w)
- AM_RANGE(0x0004, 0x0004) AM_WRITE_LEGACY(changela_68705_ddr_a_w)
- AM_RANGE(0x0005, 0x0005) AM_WRITE_LEGACY(changela_68705_ddr_b_w)
- AM_RANGE(0x0006, 0x0006) AM_WRITE_LEGACY(changela_68705_ddr_c_w)
+ AM_RANGE(0x0004, 0x0004) AM_WRITE(changela_68705_ddr_a_w)
+ AM_RANGE(0x0005, 0x0005) AM_WRITE(changela_68705_ddr_b_w)
+ AM_RANGE(0x0006, 0x0006) AM_WRITE(changela_68705_ddr_c_w)
AM_RANGE(0x0000, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x07ff) AM_ROM
@@ -120,65 +109,62 @@ ADDRESS_MAP_END
/* U30 */
-static READ8_HANDLER( changela_24_r )
+READ8_MEMBER(changela_state::changela_24_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- return ((state->m_port_c_out & 2) << 2) | 7; /* bits 2,1,0-N/C inputs */
+ return ((m_port_c_out & 2) << 2) | 7; /* bits 2,1,0-N/C inputs */
}
-static READ8_HANDLER( changela_25_r )
+READ8_MEMBER(changela_state::changela_25_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
//collisions on bits 3,2, bits 1,0-N/C inputs
- return (state->m_tree1_col << 3) | (state->m_tree0_col << 2) | 0x03;
+ return (m_tree1_col << 3) | (m_tree0_col << 2) | 0x03;
}
-static READ8_HANDLER( changela_30_r )
+READ8_MEMBER(changela_state::changela_30_r)
{
- return input_port_read(space->machine(), "WHEEL") & 0x0f; //wheel control (clocked input) signal on bits 3,2,1,0
+ return input_port_read(machine(), "WHEEL") & 0x0f; //wheel control (clocked input) signal on bits 3,2,1,0
}
-static READ8_HANDLER( changela_31_r )
+READ8_MEMBER(changela_state::changela_31_r)
{
- changela_state *state = space->machine().driver_data<changela_state>();
/* If the new value is less than the old value, and it did not wrap around,
or if the new value is greater than the old value, and it did wrap around,
then we are moving LEFT. */
- UINT8 curr_value = input_port_read(space->machine(), "WHEEL");
+ UINT8 curr_value = input_port_read(machine(), "WHEEL");
- if ((curr_value < state->m_prev_value_31 && (state->m_prev_value_31 - curr_value) < 0x80)
- || (curr_value > state->m_prev_value_31 && (curr_value - state->m_prev_value_31) > 0x80))
- state->m_dir_31 = 1;
- if ((state->m_prev_value_31 < curr_value && (curr_value - state->m_prev_value_31) < 0x80)
- || (state->m_prev_value_31 > curr_value && (state->m_prev_value_31 - curr_value) > 0x80))
- state->m_dir_31 = 0;
+ if ((curr_value < m_prev_value_31 && (m_prev_value_31 - curr_value) < 0x80)
+ || (curr_value > m_prev_value_31 && (curr_value - m_prev_value_31) > 0x80))
+ m_dir_31 = 1;
+ if ((m_prev_value_31 < curr_value && (curr_value - m_prev_value_31) < 0x80)
+ || (m_prev_value_31 > curr_value && (m_prev_value_31 - curr_value) > 0x80))
+ m_dir_31 = 0;
- state->m_prev_value_31 = curr_value;
+ m_prev_value_31 = curr_value;
//wheel UP/DOWN control signal on bit 3, collisions on bits:2,1,0
- return (state->m_dir_31 << 3) | (state->m_left_bank_col << 2) | (state->m_right_bank_col << 1) | state->m_boat_shore_col;
+ return (m_dir_31 << 3) | (m_left_bank_col << 2) | (m_right_bank_col << 1) | m_boat_shore_col;
}
-static READ8_HANDLER( changela_2c_r )
+READ8_MEMBER(changela_state::changela_2c_r)
{
- int val = input_port_read(space->machine(), "IN0");
+ int val = input_port_read(machine(), "IN0");
val = (val & 0x30) | ((val & 1) << 7) | (((val & 1) ^ 1) << 6);
return val;
}
-static READ8_HANDLER( changela_2d_r )
+READ8_MEMBER(changela_state::changela_2d_r)
{
/* the schems are unreadable - i'm not sure it is V8 (page 74, SOUND I/O BOARD SCHEMATIC 1 OF 2, FIGURE 24 - in the middle on the right side) */
int v8 = 0;
int gas;
- if ((space->machine().primary_screen->vpos() & 0xf8) == 0xf8)
+ if ((machine().primary_screen->vpos() & 0xf8) == 0xf8)
v8 = 1;
/* Gas pedal is made up of 2 switches, 1 active low, 1 active high */
- switch (input_port_read(space->machine(), "IN1") & 0x03)
+ switch (input_port_read(machine(), "IN1") & 0x03)
{
case 0x02:
gas = 0x80;
@@ -191,30 +177,27 @@ static READ8_HANDLER( changela_2d_r )
break;
}
- return (input_port_read(space->machine(), "IN1") & 0x20) | gas | (v8 << 4);
+ return (input_port_read(machine(), "IN1") & 0x20) | gas | (v8 << 4);
}
-static WRITE8_HANDLER( mcu_pc_0_w )
+WRITE8_MEMBER(changela_state::mcu_pc_0_w)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_port_c_in = (state->m_port_c_in & 0xfe) | (data & 1);
+ m_port_c_in = (m_port_c_in & 0xfe) | (data & 1);
}
-static WRITE8_HANDLER( changela_collision_reset_0 )
+WRITE8_MEMBER(changela_state::changela_collision_reset_0)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_collision_reset = data & 0x01;
+ m_collision_reset = data & 0x01;
}
-static WRITE8_HANDLER( changela_collision_reset_1 )
+WRITE8_MEMBER(changela_state::changela_collision_reset_1)
{
- changela_state *state = space->machine().driver_data<changela_state>();
- state->m_tree_collision_reset = data & 0x01;
+ m_tree_collision_reset = data & 0x01;
}
-static WRITE8_HANDLER( changela_coin_counter_w )
+WRITE8_MEMBER(changela_state::changela_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
@@ -237,20 +220,20 @@ static ADDRESS_MAP_START( changela_map, AS_PROGRAM, 8, changela_state )
AM_RANGE(0xd010, 0xd011) AM_DEVREADWRITE_LEGACY("ay2", ay8910_r, ay8910_address_data_w)
/* LS259 - U44 */
- AM_RANGE(0xd020, 0xd020) AM_WRITE_LEGACY(changela_collision_reset_0)
- AM_RANGE(0xd021, 0xd022) AM_WRITE_LEGACY(changela_coin_counter_w)
+ AM_RANGE(0xd020, 0xd020) AM_WRITE(changela_collision_reset_0)
+ AM_RANGE(0xd021, 0xd022) AM_WRITE(changela_coin_counter_w)
//AM_RANGE(0xd023, 0xd023) AM_WRITENOP
/* LS139 - U24 */
- AM_RANGE(0xd024, 0xd024) AM_READWRITE_LEGACY(changela_24_r, mcu_pc_0_w)
- AM_RANGE(0xd025, 0xd025) AM_READWRITE_LEGACY(changela_25_r, changela_collision_reset_1)
+ AM_RANGE(0xd024, 0xd024) AM_READWRITE(changela_24_r, mcu_pc_0_w)
+ AM_RANGE(0xd025, 0xd025) AM_READWRITE(changela_25_r, changela_collision_reset_1)
AM_RANGE(0xd026, 0xd026) AM_WRITENOP
- AM_RANGE(0xd028, 0xd028) AM_READ_LEGACY(mcu_r)
- AM_RANGE(0xd02c, 0xd02c) AM_READ_LEGACY(changela_2c_r)
- AM_RANGE(0xd02d, 0xd02d) AM_READ_LEGACY(changela_2d_r)
+ AM_RANGE(0xd028, 0xd028) AM_READ(mcu_r)
+ AM_RANGE(0xd02c, 0xd02c) AM_READ(changela_2c_r)
+ AM_RANGE(0xd02d, 0xd02d) AM_READ(changela_2d_r)
- AM_RANGE(0xd030, 0xd030) AM_READWRITE_LEGACY(changela_30_r, mcu_w)
- AM_RANGE(0xd031, 0xd031) AM_READ_LEGACY(changela_31_r)
+ AM_RANGE(0xd030, 0xd030) AM_READWRITE(changela_30_r, mcu_w)
+ AM_RANGE(0xd031, 0xd031) AM_READ(changela_31_r)
AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(watchdog_reset_w) /* Watchdog */
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index 02b32ffb5b4..c5374dbb86c 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -37,52 +37,50 @@ static TIMER_DEVICE_CALLBACK( chqflag_scanline )
cputag_set_input_line(timer.machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( chqflag_bankswitch_w )
+WRITE8_MEMBER(chqflag_state::chqflag_bankswitch_w)
{
- chqflag_state *state = space->machine().driver_data<chqflag_state>();
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
/* bits 0-4 = ROM bank # (0x00-0x11) */
bankaddress = 0x10000 + (data & 0x1f) * 0x4000;
- memory_set_bankptr(space->machine(), "bank4", &RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank4", &RAM[bankaddress]);
/* bit 5 = memory bank select */
if (data & 0x20)
{
- space->install_read_bank(0x1800, 0x1fff, "bank5");
- space->install_legacy_write_handler(0x1800, 0x1fff, FUNC(paletteram_xBBBBBGGGGGRRRRR_be_w));
- memory_set_bankptr(space->machine(), "bank5", space->machine().generic.paletteram.v);
+ space.install_read_bank(0x1800, 0x1fff, "bank5");
+ space.install_write_handler(0x1800, 0x1fff, write8_delegate(FUNC(driver_device::paletteram_xBBBBBGGGGGRRRRR_be_w),this));
+ memory_set_bankptr(machine(), "bank5", machine().generic.paletteram.v);
- if (state->m_k051316_readroms)
- space->install_legacy_readwrite_handler(*state->m_k051316_1, 0x1000, 0x17ff, FUNC(k051316_rom_r), FUNC(k051316_w)); /* 051316 #1 (ROM test) */
+ if (m_k051316_readroms)
+ space.install_legacy_readwrite_handler(*m_k051316_1, 0x1000, 0x17ff, FUNC(k051316_rom_r), FUNC(k051316_w)); /* 051316 #1 (ROM test) */
else
- space->install_legacy_readwrite_handler(*state->m_k051316_1, 0x1000, 0x17ff, FUNC(k051316_r), FUNC(k051316_w)); /* 051316 #1 */
+ space.install_legacy_readwrite_handler(*m_k051316_1, 0x1000, 0x17ff, FUNC(k051316_r), FUNC(k051316_w)); /* 051316 #1 */
}
else
{
- space->install_readwrite_bank(0x1000, 0x17ff, "bank1"); /* RAM */
- space->install_readwrite_bank(0x1800, 0x1fff, "bank2"); /* RAM */
+ space.install_readwrite_bank(0x1000, 0x17ff, "bank1"); /* RAM */
+ space.install_readwrite_bank(0x1800, 0x1fff, "bank2"); /* RAM */
}
/* other bits unknown/unused */
}
-static WRITE8_HANDLER( chqflag_vreg_w )
+WRITE8_MEMBER(chqflag_state::chqflag_vreg_w)
{
- chqflag_state *state = space->machine().driver_data<chqflag_state>();
/* bits 0 & 1 = coin counters */
- coin_counter_w(space->machine(), 1, data & 0x01);
- coin_counter_w(space->machine(), 0, data & 0x02);
+ coin_counter_w(machine(), 1, data & 0x01);
+ coin_counter_w(machine(), 0, data & 0x02);
/* bit 4 = enable rom reading through K051316 #1 & #2 */
- state->m_k051316_readroms = (data & 0x10);
+ m_k051316_readroms = (data & 0x10);
- if (state->m_k051316_readroms)
- space->install_legacy_read_handler(*state->m_k051316_2, 0x2800, 0x2fff, FUNC(k051316_rom_r)); /* 051316 (ROM test) */
+ if (m_k051316_readroms)
+ space.install_legacy_read_handler(*m_k051316_2, 0x2800, 0x2fff, FUNC(k051316_rom_r)); /* 051316 (ROM test) */
else
- space->install_legacy_read_handler(*state->m_k051316_2, 0x2800, 0x2fff, FUNC(k051316_r)); /* 051316 */
+ space.install_legacy_read_handler(*m_k051316_2, 0x2800, 0x2fff, FUNC(k051316_r)); /* 051316 */
/* Bits 3-7 probably control palette dimming in a similar way to TMNT2/Sunset Riders, */
/* however I don't have enough evidence to determine the exact behaviour. */
@@ -90,20 +88,20 @@ static WRITE8_HANDLER( chqflag_vreg_w )
/* the headlight (which have the shadow bit set) become highlights */
/* Maybe one of the bits inverts the SHAD line while the other darkens the background. */
if (data & 0x08)
- palette_set_shadow_factor(space->machine(), 1 / PALETTE_DEFAULT_SHADOW_FACTOR);
+ palette_set_shadow_factor(machine(), 1 / PALETTE_DEFAULT_SHADOW_FACTOR);
else
- palette_set_shadow_factor(space->machine(), PALETTE_DEFAULT_SHADOW_FACTOR);
+ palette_set_shadow_factor(machine(), PALETTE_DEFAULT_SHADOW_FACTOR);
- if ((data & 0x80) != state->m_last_vreg)
+ if ((data & 0x80) != m_last_vreg)
{
double brt = (data & 0x80) ? PALETTE_DEFAULT_SHADOW_FACTOR : 1.0;
int i;
- state->m_last_vreg = data & 0x80;
+ m_last_vreg = data & 0x80;
/* only affect the background */
for (i = 512; i < 1024; i++)
- palette_set_pen_contrast(space->machine(), i, brt);
+ palette_set_pen_contrast(machine(), i, brt);
}
//if ((data & 0xf8) && (data & 0xf8) != 0x88)
@@ -113,31 +111,28 @@ static WRITE8_HANDLER( chqflag_vreg_w )
/* other bits unknown. bit 5 is used. */
}
-static WRITE8_HANDLER( select_analog_ctrl_w )
+WRITE8_MEMBER(chqflag_state::select_analog_ctrl_w)
{
- chqflag_state *state = space->machine().driver_data<chqflag_state>();
- state->m_analog_ctrl = data;
+ m_analog_ctrl = data;
}
-static READ8_HANDLER( analog_read_r )
+READ8_MEMBER(chqflag_state::analog_read_r)
{
- chqflag_state *state = space->machine().driver_data<chqflag_state>();
- switch (state->m_analog_ctrl & 0x03)
+ switch (m_analog_ctrl & 0x03)
{
- case 0x00: return (state->m_accel = input_port_read(space->machine(), "IN3")); /* accelerator */
- case 0x01: return (state->m_wheel = input_port_read(space->machine(), "IN4")); /* steering */
- case 0x02: return state->m_accel; /* accelerator (previous?) */
- case 0x03: return state->m_wheel; /* steering (previous?) */
+ case 0x00: return (m_accel = input_port_read(machine(), "IN3")); /* accelerator */
+ case 0x01: return (m_wheel = input_port_read(machine(), "IN4")); /* steering */
+ case 0x02: return m_accel; /* accelerator (previous?) */
+ case 0x03: return m_wheel; /* steering (previous?) */
}
return 0xff;
}
-static WRITE8_HANDLER( chqflag_sh_irqtrigger_w )
+WRITE8_MEMBER(chqflag_state::chqflag_sh_irqtrigger_w)
{
- chqflag_state *state = space->machine().driver_data<chqflag_state>();
soundlatch2_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
@@ -151,9 +146,9 @@ static ADDRESS_MAP_START( chqflag_map, AS_PROGRAM, 8, chqflag_state )
AM_RANGE(0x2400, 0x27ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_r, k051960_w) /* Sprite RAM */
AM_RANGE(0x2800, 0x2fff) AM_READ_BANK("bank3") AM_DEVWRITE_LEGACY("k051316_2", k051316_w) /* 051316 zoom/rotation (chip 2) */
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(soundlatch_w) /* sound code # */
- AM_RANGE(0x3001, 0x3001) AM_WRITE_LEGACY(chqflag_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x3002, 0x3002) AM_WRITE_LEGACY(chqflag_bankswitch_w) /* bankswitch control */
- AM_RANGE(0x3003, 0x3003) AM_WRITE_LEGACY(chqflag_vreg_w) /* enable K051316 ROM reading */
+ AM_RANGE(0x3001, 0x3001) AM_WRITE(chqflag_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x3002, 0x3002) AM_WRITE(chqflag_bankswitch_w) /* bankswitch control */
+ AM_RANGE(0x3003, 0x3003) AM_WRITE(chqflag_vreg_w) /* enable K051316 ROM reading */
AM_RANGE(0x3100, 0x3100) AM_READ_PORT("DSW1") /* DIPSW #1 */
AM_RANGE(0x3200, 0x3200) AM_READ_PORT("IN1") /* COINSW, STARTSW, test mode */
AM_RANGE(0x3201, 0x3201) AM_READ_PORT("IN0") /* DIPSW #3, SW 4 */
@@ -162,33 +157,32 @@ static ADDRESS_MAP_START( chqflag_map, AS_PROGRAM, 8, chqflag_state )
AM_RANGE(0x3400, 0x341f) AM_DEVREADWRITE_LEGACY("k051733", k051733_r, k051733_w) /* 051733 (protection) */
AM_RANGE(0x3500, 0x350f) AM_DEVWRITE_LEGACY("k051316_1", k051316_ctrl_w) /* 051316 control registers (chip 1) */
AM_RANGE(0x3600, 0x360f) AM_DEVWRITE_LEGACY("k051316_2", k051316_ctrl_w) /* 051316 control registers (chip 2) */
- AM_RANGE(0x3700, 0x3700) AM_WRITE_LEGACY(select_analog_ctrl_w) /* select accelerator/wheel */
+ AM_RANGE(0x3700, 0x3700) AM_WRITE(select_analog_ctrl_w) /* select accelerator/wheel */
AM_RANGE(0x3701, 0x3701) AM_READ_PORT("IN2") /* Brake + Shift + ? */
- AM_RANGE(0x3702, 0x3702) AM_READWRITE_LEGACY(analog_read_r, select_analog_ctrl_w) /* accelerator/wheel */
+ AM_RANGE(0x3702, 0x3702) AM_READWRITE(analog_read_r, select_analog_ctrl_w) /* accelerator/wheel */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank4") /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static WRITE8_HANDLER( k007232_bankswitch_w )
+WRITE8_MEMBER(chqflag_state::k007232_bankswitch_w)
{
- chqflag_state *state = space->machine().driver_data<chqflag_state>();
int bank_A, bank_B;
/* banks # for the 007232 (chip 1) */
bank_A = ((data >> 4) & 0x03);
bank_B = ((data >> 6) & 0x03);
- k007232_set_bank(state->m_k007232_1, bank_A, bank_B);
+ k007232_set_bank(m_k007232_1, bank_A, bank_B);
/* banks # for the 007232 (chip 2) */
bank_A = ((data >> 0) & 0x03);
bank_B = ((data >> 2) & 0x03);
- k007232_set_bank(state->m_k007232_2, bank_A, bank_B);
+ k007232_set_bank(m_k007232_2, bank_A, bank_B);
}
static ADDRESS_MAP_START( chqflag_sound_map, AS_PROGRAM, 8, chqflag_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(k007232_bankswitch_w) /* 007232 bankswitch */
+ 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(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w) /* 007232 (chip 2) */
diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c
index 67ff9a39584..ff05f5ed12c 100644
--- a/src/mame/drivers/cinemat.c
+++ b/src/mame/drivers/cinemat.c
@@ -77,16 +77,16 @@ MACHINE_RESET( cinemat )
*
*************************************/
-static READ8_HANDLER( inputs_r )
+READ8_MEMBER(cinemat_state::inputs_r)
{
- return (input_port_read(space->machine(), "INPUTS") >> offset) & 1;
+ return (input_port_read(machine(), "INPUTS") >> offset) & 1;
}
-static READ8_HANDLER( switches_r )
+READ8_MEMBER(cinemat_state::switches_r)
{
static const UINT8 switch_shuffle[8] = { 2,5,4,3,0,1,6,7 };
- return (input_port_read(space->machine(), "SWITCHES") >> switch_shuffle[offset]) & 1;
+ return (input_port_read(machine(), "SWITCHES") >> switch_shuffle[offset]) & 1;
}
@@ -106,10 +106,9 @@ static INPUT_CHANGED( coin_inserted )
}
-static READ8_HANDLER( coin_input_r )
+READ8_MEMBER(cinemat_state::coin_input_r)
{
- cinemat_state *state = space->machine().driver_data<cinemat_state>();
- return !state->m_coin_detected;
+ return !m_coin_detected;
}
@@ -120,21 +119,19 @@ static READ8_HANDLER( coin_input_r )
*
*************************************/
-static WRITE8_HANDLER( coin_reset_w )
+WRITE8_MEMBER(cinemat_state::coin_reset_w)
{
- cinemat_state *state = space->machine().driver_data<cinemat_state>();
/* on the rising edge of a coin reset, clear the coin_detected flag */
- if (state->m_coin_last_reset != data && data != 0)
- state->m_coin_detected = 0;
- state->m_coin_last_reset = data;
+ if (m_coin_last_reset != data && data != 0)
+ m_coin_detected = 0;
+ m_coin_last_reset = data;
}
-static WRITE8_HANDLER( mux_select_w )
+WRITE8_MEMBER(cinemat_state::mux_select_w)
{
- cinemat_state *state = space->machine().driver_data<cinemat_state>();
- state->m_mux_select = data;
- cinemat_sound_control_w(space, 0x07, data);
+ m_mux_select = data;
+ cinemat_sound_control_w(&space, 0x07, data);
}
@@ -165,13 +162,13 @@ static UINT8 joystick_read(device_t *device)
*
*************************************/
-static READ8_HANDLER( speedfrk_wheel_r )
+READ8_MEMBER(cinemat_state::speedfrk_wheel_r)
{
static const UINT8 speedfrk_steer[] = {0xe, 0x6, 0x2, 0x0, 0x3, 0x7, 0xf};
int delta_wheel;
/* the shift register is cleared once per 'frame' */
- delta_wheel = (INT8)input_port_read(space->machine(), "WHEEL") / 8;
+ delta_wheel = (INT8)input_port_read(machine(), "WHEEL") / 8;
if (delta_wheel > 3)
delta_wheel = 3;
else if (delta_wheel < -3)
@@ -181,20 +178,19 @@ static READ8_HANDLER( speedfrk_wheel_r )
}
-static READ8_HANDLER( speedfrk_gear_r )
+READ8_MEMBER(cinemat_state::speedfrk_gear_r)
{
- cinemat_state *state = space->machine().driver_data<cinemat_state>();
- int gearval = input_port_read(space->machine(), "GEAR");
+ int gearval = input_port_read(machine(), "GEAR");
/* check the fake gear input port and determine the bit settings for the gear */
if ((gearval & 0x0f) != 0x0f)
- state->m_gear = gearval & 0x0f;
+ m_gear = gearval & 0x0f;
/* add the start key into the mix -- note that it overlaps 4th gear */
- if (!(input_port_read(space->machine(), "INPUTS") & 0x80))
- state->m_gear &= ~0x08;
+ if (!(input_port_read(machine(), "INPUTS") & 0x80))
+ m_gear &= ~0x08;
- return (state->m_gear >> offset) & 1;
+ return (m_gear >> offset) & 1;
}
@@ -233,13 +229,13 @@ static const struct
};
-static READ8_HANDLER( sundance_inputs_r )
+READ8_MEMBER(cinemat_state::sundance_inputs_r)
{
/* handle special keys first */
if (sundance_port_map[offset].portname)
- return (input_port_read(space->machine(), sundance_port_map[offset].portname) & sundance_port_map[offset].bitmask) ? 0 : 1;
+ return (input_port_read(machine(), sundance_port_map[offset].portname) & sundance_port_map[offset].bitmask) ? 0 : 1;
else
- return (input_port_read(space->machine(), "INPUTS") >> offset) & 1;
+ return (input_port_read(machine(), "INPUTS") >> offset) & 1;
}
@@ -250,11 +246,10 @@ static READ8_HANDLER( sundance_inputs_r )
*
*************************************/
-static READ8_HANDLER( boxingb_dial_r )
+READ8_MEMBER(cinemat_state::boxingb_dial_r)
{
- cinemat_state *state = space->machine().driver_data<cinemat_state>();
- int value = input_port_read(space->machine(), "DIAL");
- if (!state->m_mux_select) offset += 4;
+ int value = input_port_read(machine(), "DIAL");
+ if (!m_mux_select) offset += 4;
return (value >> offset) & 1;
}
@@ -266,10 +261,10 @@ static READ8_HANDLER( boxingb_dial_r )
*
*************************************/
-static READ8_HANDLER( qb3_frame_r )
+READ8_MEMBER(cinemat_state::qb3_frame_r)
{
- attotime next_update = space->machine().primary_screen->time_until_update();
- attotime frame_period = space->machine().primary_screen->frame_period();
+ attotime next_update = machine().primary_screen->time_until_update();
+ attotime frame_period = machine().primary_screen->frame_period();
int percent = next_update.attoseconds / (frame_period.attoseconds / 100);
/* note this is just an approximation... */
@@ -277,9 +272,9 @@ static READ8_HANDLER( qb3_frame_r )
}
-static WRITE8_HANDLER( qb3_ram_bank_w )
+WRITE8_MEMBER(cinemat_state::qb3_ram_bank_w)
{
- memory_set_bank(space->machine(), "bank1", cpu_get_reg(space->machine().device("maincpu"), CCPU_P) & 3);
+ memory_set_bank(machine(), "bank1", cpu_get_reg(machine().device("maincpu"), CCPU_P) & 3);
}
@@ -322,11 +317,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, cinemat_state )
- AM_RANGE(0x00, 0x0f) AM_READ_LEGACY(inputs_r)
- AM_RANGE(0x10, 0x16) AM_READ_LEGACY(switches_r)
- AM_RANGE(0x17, 0x17) AM_READ_LEGACY(coin_input_r)
+ AM_RANGE(0x00, 0x0f) AM_READ(inputs_r)
+ AM_RANGE(0x10, 0x16) AM_READ(switches_r)
+ AM_RANGE(0x17, 0x17) AM_READ(coin_input_r)
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(coin_reset_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(coin_reset_w)
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(cinemat_vector_control_w)
AM_RANGE(0x00, 0x07) AM_WRITE_LEGACY(cinemat_sound_control_w)
ADDRESS_MAP_END
@@ -1460,35 +1455,38 @@ static DRIVER_INIT( speedfrk )
{
cinemat_state *state = machine.driver_data<cinemat_state>();
state->m_gear = 0xe;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x03, FUNC(speedfrk_wheel_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x04, 0x06, FUNC(speedfrk_gear_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x00, 0x03, read8_delegate(FUNC(cinemat_state::speedfrk_wheel_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x04, 0x06, read8_delegate(FUNC(cinemat_state::speedfrk_gear_r),state));
}
static DRIVER_INIT( sundance )
{
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x0f, FUNC(sundance_inputs_r));
+ cinemat_state *state = machine.driver_data<cinemat_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x00, 0x0f, read8_delegate(FUNC(cinemat_state::sundance_inputs_r),state));
}
static DRIVER_INIT( tailg )
{
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x07, 0x07, FUNC(mux_select_w));
+ cinemat_state *state = machine.driver_data<cinemat_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x07, 0x07, write8_delegate(FUNC(cinemat_state::mux_select_w),state));
}
static DRIVER_INIT( boxingb )
{
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x0c, 0x0f, FUNC(boxingb_dial_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x07, 0x07, FUNC(mux_select_w));
+ cinemat_state *state = machine.driver_data<cinemat_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x0c, 0x0f, read8_delegate(FUNC(cinemat_state::boxingb_dial_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x07, 0x07, write8_delegate(FUNC(cinemat_state::mux_select_w),state));
}
static DRIVER_INIT( qb3 )
{
cinemat_state *state = machine.driver_data<cinemat_state>();
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x0f, 0x0f, FUNC(qb3_frame_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x00, 0x00, FUNC(qb3_ram_bank_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x0f, 0x0f, read8_delegate(FUNC(cinemat_state::qb3_frame_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x00, 0x00, write8_delegate(FUNC(cinemat_state::qb3_ram_bank_w),state));
memory_configure_bank(machine, "bank1", 0, 4, state->m_rambase, 0x100*2);
}
diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c
index f12d59cbedd..7e6e8c12537 100644
--- a/src/mame/drivers/circus.c
+++ b/src/mame/drivers/circus.c
@@ -50,11 +50,11 @@ D000 Paddle Position and Interrupt Reset (where applicable)
#include "crash.lh"
-static READ8_HANDLER( circus_paddle_r )
+READ8_MEMBER(circus_state::circus_paddle_r)
{
// also clears irq
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
- return input_port_read(space->machine(), "PADDLE");
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
+ return input_port_read(machine(), "PADDLE");
}
static ADDRESS_MAP_START( circus_map, AS_PROGRAM, 8, circus_state )
@@ -66,7 +66,7 @@ static ADDRESS_MAP_START( circus_map, AS_PROGRAM, 8, circus_state )
AM_RANGE(0x8000, 0x8000) AM_RAM_WRITE_LEGACY(circus_clown_z_w)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW")
- AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(circus_paddle_r)
+ AM_RANGE(0xd000, 0xd000) AM_READ(circus_paddle_r)
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index 6cc4c8350a2..039c69c2be9 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -76,7 +76,7 @@ static MACHINE_RESET( circusc )
state->m_sn_latch = 0;
}
-static READ8_HANDLER( circusc_sh_timer_r )
+READ8_MEMBER(circusc_state::circusc_sh_timer_r)
{
/* This port reads the output of a counter clocked from the CPU clock.
* The CPU XTAL is 14.31818MHz divided by 4. It then goes through 10
@@ -84,81 +84,77 @@ static READ8_HANDLER( circusc_sh_timer_r )
* to D1-D4.
*
* The following:
- * clock = state->m_audiocpu->total_cycles() >> 10;
+ * clock = m_audiocpu->total_cycles() >> 10;
* return (clock & 0x0f) << 1;
* Can be shortened to:
*/
- circusc_state *state = space->machine().driver_data<circusc_state>();
int clock;
- clock = state->m_audiocpu->total_cycles() >> 9;
+ clock = m_audiocpu->total_cycles() >> 9;
return clock & 0x1e;
}
-static WRITE8_HANDLER( circusc_sh_irqtrigger_w )
+WRITE8_MEMBER(circusc_state::circusc_sh_irqtrigger_w)
{
- circusc_state *state = space->machine().driver_data<circusc_state>();
- 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);
}
-static WRITE8_HANDLER( circusc_coin_counter_w )
+WRITE8_MEMBER(circusc_state::circusc_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
-static WRITE8_HANDLER(circusc_sound_w)
+WRITE8_MEMBER(circusc_state::circusc_sound_w)
{
- circusc_state *state = space->machine().driver_data<circusc_state>();
switch (offset & 7)
{
/* CS2 */
case 0:
- state->m_sn_latch = data;
+ m_sn_latch = data;
break;
/* CS3 */
case 1:
- sn76496_w(state->m_sn1, 0, state->m_sn_latch);
+ sn76496_w(m_sn1, 0, m_sn_latch);
break;
/* CS4 */
case 2:
- sn76496_w(state->m_sn2, 0, state->m_sn_latch);
+ sn76496_w(m_sn2, 0, m_sn_latch);
break;
/* CS5 */
case 3:
- dac_w(state->m_dac, 0, data);
+ dac_w(m_dac, 0, data);
break;
/* CS6 */
case 4:
- discrete_sound_w(state->m_discrete, NODE_05, (offset & 0x20) >> 5);
- discrete_sound_w(state->m_discrete, NODE_06, (offset & 0x18) >> 3);
- discrete_sound_w(state->m_discrete, NODE_07, (offset & 0x40) >> 6);
+ discrete_sound_w(m_discrete, NODE_05, (offset & 0x20) >> 5);
+ discrete_sound_w(m_discrete, NODE_06, (offset & 0x18) >> 3);
+ discrete_sound_w(m_discrete, NODE_07, (offset & 0x40) >> 6);
break;
}
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(circusc_state::irq_mask_w)
{
- circusc_state *state = space->machine().driver_data<circusc_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( circusc_map, AS_PROGRAM, 8, circusc_state )
AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x03f8) AM_WRITE_LEGACY(circusc_flipscreen_w) /* FLIP */
- AM_RANGE(0x0001, 0x0001) AM_MIRROR(0x03f8) AM_WRITE_LEGACY(irq_mask_w) /* INTST */
+ AM_RANGE(0x0001, 0x0001) AM_MIRROR(0x03f8) AM_WRITE(irq_mask_w) /* INTST */
// AM_RANGE(0x0002, 0x0002) AM_MIRROR(0x03f8) AM_WRITENOP /* MUT - not used /*
- AM_RANGE(0x0003, 0x0004) AM_MIRROR(0x03f8) AM_WRITE_LEGACY(circusc_coin_counter_w) /* COIN1, COIN2 */
+ AM_RANGE(0x0003, 0x0004) AM_MIRROR(0x03f8) AM_WRITE(circusc_coin_counter_w) /* COIN1, COIN2 */
AM_RANGE(0x0005, 0x0005) AM_MIRROR(0x03f8) AM_WRITEONLY AM_BASE(m_spritebank) /* OBJ CHENG */
AM_RANGE(0x0400, 0x0400) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(watchdog_reset_w) /* WDOG */
AM_RANGE(0x0800, 0x0800) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(soundlatch_w) /* SOUND DATA */
- AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03ff) AM_WRITE_LEGACY(circusc_sh_irqtrigger_w) /* SOUND-ON causes interrupt on audio CPU */
+ AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03ff) AM_WRITE(circusc_sh_irqtrigger_w) /* SOUND-ON causes interrupt on audio CPU */
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x03fc) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1001, 0x1001) AM_MIRROR(0x03fc) AM_READ_PORT("P1")
AM_RANGE(0x1002, 0x1002) AM_MIRROR(0x03fc) AM_READ_PORT("P2")
@@ -179,8 +175,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, circusc_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x1fff) AM_READ_LEGACY(soundlatch_r) /* CS0 */
- AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ_LEGACY(circusc_sh_timer_r) /* CS1 */
- AM_RANGE(0xa000, 0xa07f) AM_MIRROR(0x1f80) AM_WRITE_LEGACY(circusc_sound_w) /* CS2 - CS6 */
+ AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1fff) AM_READ(circusc_sh_timer_r) /* CS1 */
+ AM_RANGE(0xa000, 0xa07f) AM_MIRROR(0x1f80) AM_WRITE(circusc_sound_w) /* CS2 - CS6 */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 113e93735ee..acb3e63c06b 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -190,25 +190,25 @@ Cisco Heat.
Big Run
**************************************************************************/
-static WRITE16_HANDLER( bigrun_paletteram16_w )
+WRITE16_MEMBER(cischeat_state::bigrun_paletteram16_w)
{
- UINT16 word = COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ UINT16 word = COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
int r = pal5bit(((word >> 11) & 0x1E ) | ((word >> 3) & 0x01));
int g = pal5bit(((word >> 7 ) & 0x1E ) | ((word >> 2) & 0x01));
int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x0e00/2) && (offset <= 0x0fff/2) ) { palette_set_color(space->machine(), 0x000 + offset - 0x0e00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x0e00/2) && (offset <= 0x0fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x0e00/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 1
- if ( (offset >= 0x1600/2) && (offset <= 0x17ff/2) ) { palette_set_color(space->machine(), 0x100 + offset - 0x1600/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x1600/2) && (offset <= 0x17ff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x1600/2, MAKE_RGB(r,g,b) ); return;}
// Road 0
- if ( (offset >= 0x1800/2) && (offset <= 0x1fff/2) ) { palette_set_color(space->machine(), 0x200 + offset - 0x1800/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x1800/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x1800/2, MAKE_RGB(r,g,b) ); return;}
// Road 1
- if ( (offset >= 0x2000/2) && (offset <= 0x27ff/2) ) { palette_set_color(space->machine(), 0x600 + offset - 0x2000/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x2000/2) && (offset <= 0x27ff/2) ) { palette_set_color(machine(), 0x600 + offset - 0x2000/2, MAKE_RGB(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x2800/2) && (offset <= 0x2fff/2) ) { palette_set_color(space->machine(), 0xa00 + offset - 0x2800/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x2800/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0xa00 + offset - 0x2800/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { palette_set_color(space->machine(), 0xe00 + offset - 0x3600/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x3600/2) && (offset <= 0x37ff/2) ) { palette_set_color(machine(), 0xe00 + offset - 0x3600/2, MAKE_RGB(r,g,b) ); return;}
}
static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16, cischeat_state )
@@ -224,7 +224,7 @@ static ADDRESS_MAP_START( bigrun_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x094000, 0x097fff) AM_WRITE_LEGACY(cischeat_scrollram_1_w) AM_BASE(m_scrollram[1]) // Scroll ram 1
AM_RANGE(0x098000, 0x09bfff) AM_WRITE_LEGACY(cischeat_scrollram_2_w) AM_BASE(m_scrollram[2]) // Scroll ram 2
- AM_RANGE(0x09c000, 0x09ffff) AM_WRITE_LEGACY(bigrun_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
+ AM_RANGE(0x09c000, 0x09ffff) AM_WRITE(bigrun_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(m_ram) // RAM
AM_RANGE(0x100000, 0x13ffff) AM_ROM AM_REGION("user1",0) // ROM
ADDRESS_MAP_END
@@ -243,25 +243,25 @@ ADDRESS_MAP_END
bd000-bd3ff bd000-bdfff sprites
bec00-befff < text */
-static WRITE16_HANDLER( cischeat_paletteram16_w )
+WRITE16_MEMBER(cischeat_state::cischeat_paletteram16_w)
{
- UINT16 word = COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ UINT16 word = COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
int r = pal5bit(((word >> 11) & 0x1E ) | ((word >> 3) & 0x01));
int g = pal5bit(((word >> 7 ) & 0x1E ) | ((word >> 2) & 0x01));
int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x1c00/2) && (offset <= 0x1fff/2) ) { palette_set_color(space->machine(), 0x000 + offset - 0x1c00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x1c00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1c00/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 1
- if ( (offset >= 0x2c00/2) && (offset <= 0x2fff/2) ) { palette_set_color(space->machine(), 0x200 + offset - 0x2c00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x2c00/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x2c00/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x6c00/2) && (offset <= 0x6fff/2) ) { palette_set_color(space->machine(), 0x400 + offset - 0x6c00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x6c00/2) && (offset <= 0x6fff/2) ) { palette_set_color(machine(), 0x400 + offset - 0x6c00/2, MAKE_RGB(r,g,b) ); return;}
// Road 0
- if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(space->machine(), 0x600 + offset - 0x3800/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x600 + offset - 0x3800/2, MAKE_RGB(r,g,b) ); return;}
// Road 1
- if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(space->machine(), 0xa00 + offset - 0x4800/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0xa00 + offset - 0x4800/2, MAKE_RGB(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(space->machine(), 0xe00 + offset - 0x5000/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(machine(), 0xe00 + offset - 0x5000/2, MAKE_RGB(r,g,b) ); return;}
}
static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16, cischeat_state )
@@ -284,7 +284,7 @@ static ADDRESS_MAP_START( cischeat_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x0a8000, 0x0affff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_1_w) AM_BASE(m_scrollram[1]) // Scroll ram 1
AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_2_w) AM_BASE(m_scrollram[2]) // Scroll ram 2
- AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE_LEGACY(cischeat_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
+ AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(cischeat_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(m_ram) // RAM
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("user1",0) // ROM
@@ -295,25 +295,25 @@ ADDRESS_MAP_END
F1 GrandPrix Star
**************************************************************************/
-static WRITE16_HANDLER( f1gpstar_paletteram16_w )
+WRITE16_MEMBER(cischeat_state::f1gpstar_paletteram16_w)
{
- UINT16 word = COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ UINT16 word = COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
int r = pal5bit(((word >> 11) & 0x1E ) | ((word >> 3) & 0x01));
int g = pal5bit(((word >> 7 ) & 0x1E ) | ((word >> 2) & 0x01));
int b = pal5bit(((word >> 3 ) & 0x1E ) | ((word >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(space->machine(), 0x000 + offset - 0x1e00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1e00/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 1
- if ( (offset >= 0x2e00/2) && (offset <= 0x2fff/2) ) { palette_set_color(space->machine(), 0x100 + offset - 0x2e00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x2e00/2) && (offset <= 0x2fff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x2e00/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x6e00/2) && (offset <= 0x6fff/2) ) { palette_set_color(space->machine(), 0x200 + offset - 0x6e00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x6e00/2) && (offset <= 0x6fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x6e00/2, MAKE_RGB(r,g,b) ); return;}
// Road 0
- if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(space->machine(), 0x300 + offset - 0x3800/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x3800/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x300 + offset - 0x3800/2, MAKE_RGB(r,g,b) ); return;}
// Road 1
- if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(space->machine(), 0x700 + offset - 0x4800/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x4800/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0x700 + offset - 0x4800/2, MAKE_RGB(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(space->machine(), 0xb00 + offset - 0x5000/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x5000/2) && (offset <= 0x5fff/2) ) { palette_set_color(machine(), 0xb00 + offset - 0x5000/2, MAKE_RGB(r,g,b) ); return;}
}
/* F1 GP Star tests:
@@ -338,7 +338,7 @@ static ADDRESS_MAP_START( f1gpstar_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x0a8000, 0x0affff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_1_w) AM_BASE(m_scrollram[1]) // Scroll ram 1
AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_2_w) AM_BASE(m_scrollram[2]) // Scroll ram 2
- AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE_LEGACY(f1gpstar_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
+ AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(f1gpstar_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(m_ram) // RAM
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("user1",0) // ROM
@@ -364,7 +364,7 @@ static ADDRESS_MAP_START( f1gpstr2_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x0a8000, 0x0affff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_1_w) AM_BASE(m_scrollram[1]) // Scroll ram 1
AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_2_w) AM_BASE(m_scrollram[2]) // Scroll ram 2
- AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE_LEGACY(f1gpstar_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
+ AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(f1gpstar_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palettes
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(m_ram) // RAM
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("user1",0) // ROM
@@ -375,20 +375,20 @@ ADDRESS_MAP_END
Scud Hammer
**************************************************************************/
-static WRITE16_HANDLER( scudhamm_paletteram16_w )
+WRITE16_MEMBER(cischeat_state::scudhamm_paletteram16_w)
{
- int newword = COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ int newword = COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
int r = pal5bit(((newword >> 11) & 0x1E ) | ((newword >> 3) & 0x01));
int g = pal5bit(((newword >> 7 ) & 0x1E ) | ((newword >> 2) & 0x01));
int b = pal5bit(((newword >> 3 ) & 0x1E ) | ((newword >> 1) & 0x01));
// Scroll 0
- if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(space->machine(), 0x000 + offset - 0x1e00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x1e00/2) && (offset <= 0x1fff/2) ) { palette_set_color(machine(), 0x000 + offset - 0x1e00/2, MAKE_RGB(r,g,b) ); return;}
// Scroll 2
- if ( (offset >= 0x4e00/2) && (offset <= 0x4fff/2) ) { palette_set_color(space->machine(), 0x100 + offset - 0x4e00/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x4e00/2) && (offset <= 0x4fff/2) ) { palette_set_color(machine(), 0x100 + offset - 0x4e00/2, MAKE_RGB(r,g,b) ); return;}
// Sprites
- if ( (offset >= 0x3000/2) && (offset <= 0x3fff/2) ) { palette_set_color(space->machine(), 0x200 + offset - 0x3000/2, MAKE_RGB(r,g,b) ); return;}
+ if ( (offset >= 0x3000/2) && (offset <= 0x3fff/2) ) { palette_set_color(machine(), 0x200 + offset - 0x3000/2, MAKE_RGB(r,g,b) ); return;}
}
@@ -422,10 +422,9 @@ READ16_HANDLER( scudhamm_motor_pos_r )
Within $20 vblanks the motor must reach the target. */
-static WRITE16_HANDLER( scudhamm_motor_command_w )
+WRITE16_MEMBER(cischeat_state::scudhamm_motor_command_w)
{
- cischeat_state *state = space->machine().driver_data<cischeat_state>();
- COMBINE_DATA( &state->m_scudhamm_motor_command );
+ COMBINE_DATA( &m_scudhamm_motor_command );
}
@@ -456,19 +455,19 @@ READ16_HANDLER( scudhamm_analog_r )
port (coins, tilt, buttons, select etc.) triggers the corresponding bit
in this word. I mapped the 3 buttons to the first 3 led.
*/
-static WRITE16_HANDLER( scudhamm_leds_w )
+WRITE16_MEMBER(cischeat_state::scudhamm_leds_w)
{
if (ACCESSING_BITS_8_15)
{
- set_led_status(space->machine(), 0, data & 0x0100); // 3 buttons
- set_led_status(space->machine(), 1, data & 0x0200);
- set_led_status(space->machine(), 2, data & 0x0400);
+ set_led_status(machine(), 0, data & 0x0100); // 3 buttons
+ set_led_status(machine(), 1, data & 0x0200);
+ set_led_status(machine(), 2, data & 0x0400);
}
if (ACCESSING_BITS_0_7)
{
-// set_led_status(space->machine(), 3, data & 0x0010); // if we had more leds..
-// set_led_status(space->machine(), 4, data & 0x0020);
+// set_led_status(machine(), 3, data & 0x0010); // if we had more leds..
+// set_led_status(machine(), 4, data & 0x0020);
}
}
@@ -477,17 +476,17 @@ static WRITE16_HANDLER( scudhamm_leds_w )
$FFFC during self test, $FFFF onwards.
It could be audio(L/R) or layers(0/2) enable.
*/
-static WRITE16_HANDLER( scudhamm_enable_w )
+WRITE16_MEMBER(cischeat_state::scudhamm_enable_w)
{
}
-static WRITE16_HANDLER( scudhamm_oki_bank_w )
+WRITE16_MEMBER(cischeat_state::scudhamm_oki_bank_w)
{
if (ACCESSING_BITS_0_7)
{
- okim6295_device *oki1 = space->machine().device<okim6295_device>("oki1");
- okim6295_device *oki2 = space->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(0x40000 * ((data >> 0) & 0x3) );
oki2->set_bank_base(0x40000 * ((data >> 4) & 0x3) );
}
@@ -498,16 +497,16 @@ static ADDRESS_MAP_START( scudhamm_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE_LEGACY(scudhamm_vregs_w) AM_BASE(m_vregs) // Video Registers + RAM
AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_0_w) AM_BASE(m_scrollram[0]) // Scroll RAM 0
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_2_w) AM_BASE(m_scrollram[2]) // Scroll RAM 2
- AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE_LEGACY(scudhamm_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palette
+ AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(scudhamm_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(m_ram) // Work RAM + Spriteram
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(scudhamm_oki_bank_w) // Sound
- AM_RANGE(0x100008, 0x100009) AM_READ_PORT("IN0") AM_WRITE_LEGACY(scudhamm_leds_w) // Buttons
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(scudhamm_oki_bank_w) // Sound
+ AM_RANGE(0x100008, 0x100009) AM_READ_PORT("IN0") AM_WRITE(scudhamm_leds_w) // Buttons
AM_RANGE(0x100014, 0x100015) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0x100018, 0x100019) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff) //
- AM_RANGE(0x10001c, 0x10001d) AM_WRITE_LEGACY(scudhamm_enable_w) // ?
+ AM_RANGE(0x10001c, 0x10001d) AM_WRITE(scudhamm_enable_w) // ?
AM_RANGE(0x100040, 0x100041) AM_READ_LEGACY(scudhamm_analog_r) AM_WRITENOP // A / D
AM_RANGE(0x100044, 0x100045) AM_READ_LEGACY(scudhamm_motor_pos_r) // Motor Position
- AM_RANGE(0x100050, 0x100051) AM_READWRITE_LEGACY(scudhamm_motor_status_r, scudhamm_motor_command_w) // Motor Limit Switches
+ AM_RANGE(0x100050, 0x100051) AM_READ_LEGACY(scudhamm_motor_status_r) AM_WRITE(scudhamm_motor_command_w) // Motor Limit Switches
AM_RANGE(0x10005c, 0x10005d) AM_READ_PORT("IN2") // 2 x DSW
ADDRESS_MAP_END
@@ -516,33 +515,31 @@ ADDRESS_MAP_END
Arm Champs II
**************************************************************************/
-static READ16_HANDLER( armchmp2_motor_status_r )
+READ16_MEMBER(cischeat_state::armchmp2_motor_status_r)
{
return 0x11;
}
-static WRITE16_HANDLER( armchmp2_motor_command_w )
+WRITE16_MEMBER(cischeat_state::armchmp2_motor_command_w)
{
- cischeat_state *state = space->machine().driver_data<cischeat_state>();
- COMBINE_DATA( &state->m_scudhamm_motor_command );
+ COMBINE_DATA( &m_scudhamm_motor_command );
}
-static READ16_HANDLER( armchmp2_analog_r )
+READ16_MEMBER(cischeat_state::armchmp2_analog_r)
{
- cischeat_state *state = space->machine().driver_data<cischeat_state>();
int armdelta;
- armdelta = input_port_read(space->machine(), "IN1") - state->m_armold;
- state->m_armold = input_port_read(space->machine(), "IN1");
+ armdelta = input_port_read(machine(), "IN1") - m_armold;
+ m_armold = input_port_read(machine(), "IN1");
- return ~( state->m_scudhamm_motor_command + armdelta ); // + x : x<=0 and player loses, x>0 and player wins
+ return ~( m_scudhamm_motor_command + armdelta ); // + x : x<=0 and player loses, x>0 and player wins
}
-static READ16_HANDLER( armchmp2_buttons_r )
+READ16_MEMBER(cischeat_state::armchmp2_buttons_r)
{
- int arm_x = input_port_read(space->machine(), "IN1");
+ int arm_x = input_port_read(machine(), "IN1");
- UINT16 ret = input_port_read(space->machine(), "IN0");
+ UINT16 ret = input_port_read(machine(), "IN0");
if (arm_x < 0x40) ret &= ~1;
else if (arm_x > 0xc0) ret &= ~2;
@@ -559,20 +556,20 @@ static READ16_HANDLER( armchmp2_buttons_r )
---- ---- 76-- ---- Coin counters
---- ---- --54 3210
*/
-static WRITE16_HANDLER( armchmp2_leds_w )
+WRITE16_MEMBER(cischeat_state::armchmp2_leds_w)
{
if (ACCESSING_BITS_8_15)
{
- set_led_status(space->machine(), 0, data & 0x0100);
- set_led_status(space->machine(), 1, data & 0x1000);
- set_led_status(space->machine(), 2, data & 0x2000);
- set_led_status(space->machine(), 3, data & 0x4000);
+ set_led_status(machine(), 0, data & 0x0100);
+ set_led_status(machine(), 1, data & 0x1000);
+ set_led_status(machine(), 2, data & 0x2000);
+ set_led_status(machine(), 3, data & 0x4000);
}
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 0x0040);
- coin_counter_w(space->machine(), 1, data & 0x0080);
+ coin_counter_w(machine(), 0, data & 0x0040);
+ coin_counter_w(machine(), 1, data & 0x0080);
}
}
@@ -581,13 +578,13 @@ static ADDRESS_MAP_START( armchmp2_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE_LEGACY(scudhamm_vregs_w) AM_BASE(m_vregs) // Video Registers + RAM
AM_RANGE(0x0a0000, 0x0a3fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_0_w) AM_BASE(m_scrollram[0]) // Scroll RAM 0
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE_LEGACY(cischeat_scrollram_2_w) AM_BASE(m_scrollram[2]) // Scroll RAM 2
- AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE_LEGACY(scudhamm_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palette
+ AM_RANGE(0x0b8000, 0x0bffff) AM_RAM_WRITE(scudhamm_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x0f0000, 0x0fffff) AM_RAM AM_BASE(m_ram) // Work RAM + Spriteram
- AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN2") AM_WRITE_LEGACY(scudhamm_oki_bank_w) // DSW + Sound
+ AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN2") AM_WRITE(scudhamm_oki_bank_w) // DSW + Sound
AM_RANGE(0x100004, 0x100005) AM_READ_PORT("IN3") // DSW
- AM_RANGE(0x100008, 0x100009) AM_READWRITE_LEGACY(armchmp2_buttons_r, armchmp2_leds_w) // Leds + Coin Counters + Buttons + Sensors
- AM_RANGE(0x10000c, 0x10000d) AM_READ_LEGACY(armchmp2_analog_r) AM_WRITENOP // A / D
- AM_RANGE(0x100010, 0x100011) AM_READWRITE_LEGACY(armchmp2_motor_status_r, armchmp2_motor_command_w) // Motor Limit Switches?
+ AM_RANGE(0x100008, 0x100009) AM_READWRITE(armchmp2_buttons_r, armchmp2_leds_w) // Leds + Coin Counters + Buttons + Sensors
+ AM_RANGE(0x10000c, 0x10000d) AM_READ(armchmp2_analog_r) AM_WRITENOP // A / D
+ AM_RANGE(0x100010, 0x100011) AM_READWRITE(armchmp2_motor_status_r, armchmp2_motor_command_w) // Motor Limit Switches?
AM_RANGE(0x100014, 0x100015) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff ) // Sound
AM_RANGE(0x100018, 0x100019) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff ) //
ADDRESS_MAP_END
@@ -680,12 +677,12 @@ ADDRESS_MAP_END
Big Run
**************************************************************************/
-static WRITE16_HANDLER( bigrun_soundbank_w )
+WRITE16_MEMBER(cischeat_state::bigrun_soundbank_w)
{
if (ACCESSING_BITS_0_7)
{
- okim6295_device *oki1 = space->machine().device<okim6295_device>("oki1");
- okim6295_device *oki2 = space->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(0x40000 * ((data >> 0) & 1) );
oki2->set_bank_base(0x40000 * ((data >> 4) & 1) );
}
@@ -693,7 +690,7 @@ static WRITE16_HANDLER( bigrun_soundbank_w )
static ADDRESS_MAP_START( bigrun_sound_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
- AM_RANGE(0x040000, 0x040001) AM_READWRITE_LEGACY(soundlatch_word_r, bigrun_soundbank_w) // From Main CPU
+ AM_RANGE(0x040000, 0x040001) AM_READ_LEGACY(soundlatch_word_r) AM_WRITE(bigrun_soundbank_w) // From Main CPU
AM_RANGE(0x060000, 0x060001) AM_WRITE_LEGACY(soundlatch2_word_w) // To Main CPU
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)
@@ -765,21 +762,19 @@ ADDRESS_MAP_END
**************************************************************************/
-static READ16_HANDLER ( f1gpstr2_io_r )
+READ16_MEMBER(cischeat_state::f1gpstr2_io_r)
{
- cischeat_state *state = space->machine().driver_data<cischeat_state>();
- return state->m_vregs[offset + 0x1000/2];
+ return m_vregs[offset + 0x1000/2];
}
-static WRITE16_HANDLER( f1gpstr2_io_w )
+WRITE16_MEMBER(cischeat_state::f1gpstr2_io_w)
{
- cischeat_state *state = space->machine().driver_data<cischeat_state>();
- COMBINE_DATA(&state->m_vregs[offset + 0x1000/2]);
+ COMBINE_DATA(&m_vregs[offset + 0x1000/2]);
}
static ADDRESS_MAP_START( f1gpstr2_io_map, AS_PROGRAM, 16, cischeat_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
- AM_RANGE(0x080000, 0x080fff) AM_READWRITE_LEGACY(f1gpstr2_io_r, f1gpstr2_io_w) //
+ AM_RANGE(0x080000, 0x080fff) AM_READWRITE(f1gpstr2_io_r, f1gpstr2_io_w) //
AM_RANGE(0x100000, 0x100001) AM_WRITEONLY AM_BASE(m_f1gpstr2_ioready) //
AM_RANGE(0x180000, 0x183fff) AM_RAM // RAM
AM_RANGE(0x200000, 0x200001) AM_WRITENOP //
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 47462282ef5..31a165a8335 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -14,15 +14,14 @@ Dip locations added from dip listing at crazykong.com
#include "includes/citycon.h"
-static READ8_HANDLER( citycon_in_r )
+READ8_MEMBER(citycon_state::citycon_in_r)
{
- return input_port_read(space->machine(), flip_screen_get(space->machine()) ? "P2" : "P1");
+ return input_port_read(machine(), flip_screen_get(machine()) ? "P2" : "P1");
}
-static READ8_HANDLER( citycon_irq_ack_r )
+READ8_MEMBER(citycon_state::citycon_irq_ack_r)
{
- citycon_state *state = space->machine().driver_data<citycon_state>();
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
return 0;
}
@@ -33,11 +32,11 @@ static ADDRESS_MAP_START( citycon_map, AS_PROGRAM, 8, citycon_state )
AM_RANGE(0x2000, 0x20ff) AM_RAM_WRITE_LEGACY(citycon_linecolor_w) AM_BASE(m_linecolor)
AM_RANGE(0x2800, 0x28ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x2800, 0x2fff) AM_NOP //0x2900-0x2fff cleared at post but unused
- AM_RANGE(0x3000, 0x3000) AM_READWRITE_LEGACY(citycon_in_r, citycon_background_w) /* player 1 & 2 inputs multiplexed */
+ AM_RANGE(0x3000, 0x3000) AM_READ(citycon_in_r) AM_WRITE_LEGACY(citycon_background_w) /* player 1 & 2 inputs multiplexed */
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(soundlatch2_w)
AM_RANGE(0x3004, 0x3005) AM_READNOP AM_WRITEONLY AM_BASE(m_scroll)
- AM_RANGE(0x3007, 0x3007) AM_READ_LEGACY(citycon_irq_ack_r)
+ AM_RANGE(0x3007, 0x3007) AM_READ(citycon_irq_ack_r)
AM_RANGE(0x3800, 0x3cff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c
index 6b2eb4bfbf1..e1df551e0d9 100644
--- a/src/mame/drivers/cloak.c
+++ b/src/mame/drivers/cloak.c
@@ -126,34 +126,33 @@
*
*************************************/
-static WRITE8_HANDLER( cloak_led_w )
+WRITE8_MEMBER(cloak_state::cloak_led_w)
{
- set_led_status(space->machine(), 1 - offset, ~data & 0x80);
+ set_led_status(machine(), 1 - offset, ~data & 0x80);
}
-static WRITE8_HANDLER( cloak_coin_counter_w )
+WRITE8_MEMBER(cloak_state::cloak_coin_counter_w)
{
- coin_counter_w(space->machine(), 1 - offset, data & 0x80);
+ coin_counter_w(machine(), 1 - offset, data & 0x80);
}
-static WRITE8_HANDLER( cloak_custom_w )
+WRITE8_MEMBER(cloak_state::cloak_custom_w)
{
}
-static WRITE8_HANDLER( cloak_irq_reset_0_w )
+WRITE8_MEMBER(cloak_state::cloak_irq_reset_0_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( cloak_irq_reset_1_w )
+WRITE8_MEMBER(cloak_state::cloak_irq_reset_1_w)
{
- cputag_set_input_line(space->machine(), "slave", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "slave", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( cloak_nvram_enable_w )
+WRITE8_MEMBER(cloak_state::cloak_nvram_enable_w)
{
- cloak_state *state = space->machine().driver_data<cloak_state>();
- state->m_nvram_enabled = data & 0x01;
+ m_nvram_enabled = data & 0x01;
}
@@ -173,18 +172,18 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, cloak_state )
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("P1")
AM_RANGE(0x2200, 0x2200) AM_READ_PORT("P2")
AM_RANGE(0x2400, 0x2400) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x2600, 0x2600) AM_WRITE_LEGACY(cloak_custom_w)
+ AM_RANGE(0x2600, 0x2600) AM_WRITE(cloak_custom_w)
AM_RANGE(0x2800, 0x29ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2f00, 0x2fff) AM_NOP
AM_RANGE(0x3000, 0x30ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x3200, 0x327f) AM_WRITE_LEGACY(cloak_paletteram_w)
- AM_RANGE(0x3800, 0x3801) AM_WRITE_LEGACY(cloak_coin_counter_w)
+ AM_RANGE(0x3800, 0x3801) AM_WRITE(cloak_coin_counter_w)
AM_RANGE(0x3803, 0x3803) AM_WRITE_LEGACY(cloak_flipscreen_w)
AM_RANGE(0x3805, 0x3805) AM_WRITENOP // ???
- AM_RANGE(0x3806, 0x3807) AM_WRITE_LEGACY(cloak_led_w)
+ AM_RANGE(0x3806, 0x3807) AM_WRITE(cloak_led_w)
AM_RANGE(0x3a00, 0x3a00) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITE_LEGACY(cloak_irq_reset_0_w)
- AM_RANGE(0x3e00, 0x3e00) AM_WRITE_LEGACY(cloak_nvram_enable_w)
+ AM_RANGE(0x3c00, 0x3c00) AM_WRITE(cloak_irq_reset_0_w)
+ AM_RANGE(0x3e00, 0x3e00) AM_WRITE(cloak_nvram_enable_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -200,9 +199,9 @@ static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, cloak_state )
AM_RANGE(0x0008, 0x000f) AM_READWRITE_LEGACY(graph_processor_r, graph_processor_w)
AM_RANGE(0x0010, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1000, 0x1000) AM_WRITE_LEGACY(cloak_irq_reset_1_w)
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(cloak_irq_reset_1_w)
AM_RANGE(0x1200, 0x1200) AM_WRITE_LEGACY(cloak_clearbmp_w)
- AM_RANGE(0x1400, 0x1400) AM_WRITE_LEGACY(cloak_custom_w)
+ AM_RANGE(0x1400, 0x1400) AM_WRITE(cloak_custom_w)
AM_RANGE(0x2000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index a4783390509..d3ef912d856 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -207,32 +207,31 @@ static MACHINE_RESET( cloud9 )
*
*************************************/
-static WRITE8_HANDLER( irq_ack_w )
+WRITE8_MEMBER(cloud9_state::irq_ack_w)
{
- cloud9_state *state = space->machine().driver_data<cloud9_state>();
- if (state->m_irq_state)
+ if (m_irq_state)
{
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
- state->m_irq_state = 0;
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
+ m_irq_state = 0;
}
}
-static WRITE8_HANDLER( cloud9_led_w )
+WRITE8_MEMBER(cloud9_state::cloud9_led_w)
{
- set_led_status(space->machine(), offset, ~data & 0x80);
+ set_led_status(machine(), offset, ~data & 0x80);
}
-static WRITE8_HANDLER( cloud9_coin_counter_w )
+WRITE8_MEMBER(cloud9_state::cloud9_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data & 0x80);
+ coin_counter_w(machine(), offset, data & 0x80);
}
-static READ8_HANDLER( leta_r )
+READ8_MEMBER(cloud9_state::leta_r)
{
- return input_port_read(space->machine(), offset ? "TRACKX" : "TRACKY");
+ return input_port_read(machine(), offset ? "TRACKX" : "TRACKY");
}
@@ -243,21 +242,19 @@ static READ8_HANDLER( leta_r )
*
*************************************/
-static WRITE8_HANDLER( nvram_recall_w )
+WRITE8_MEMBER(cloud9_state::nvram_recall_w)
{
- cloud9_state *state = space->machine().driver_data<cloud9_state>();
- state->m_nvram->recall(0);
- state->m_nvram->recall(1);
- state->m_nvram->recall(0);
+ m_nvram->recall(0);
+ m_nvram->recall(1);
+ m_nvram->recall(0);
}
-static WRITE8_HANDLER( nvram_store_w )
+WRITE8_MEMBER(cloud9_state::nvram_store_w)
{
- cloud9_state *state = space->machine().driver_data<cloud9_state>();
- state->m_nvram->store(0);
- state->m_nvram->store(1);
- state->m_nvram->store(0);
+ m_nvram->store(0);
+ m_nvram->store(1);
+ m_nvram->store(0);
}
@@ -274,16 +271,16 @@ static ADDRESS_MAP_START( cloud9_map, AS_PROGRAM, 8, cloud9_state )
AM_RANGE(0x0000, 0x4fff) AM_ROMBANK("bank1") AM_WRITE_LEGACY(cloud9_videoram_w)
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x5400, 0x547f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x5480, 0x54ff) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0x5480, 0x54ff) AM_WRITE(irq_ack_w)
AM_RANGE(0x5500, 0x557f) AM_RAM_WRITE_LEGACY(cloud9_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0x5580, 0x5587) AM_MIRROR(0x0078) AM_WRITE_LEGACY(cloud9_video_control_w)
- AM_RANGE(0x5600, 0x5601) AM_MIRROR(0x0078) AM_WRITE_LEGACY(cloud9_coin_counter_w)
- AM_RANGE(0x5602, 0x5603) AM_MIRROR(0x0078) AM_WRITE_LEGACY(cloud9_led_w)
- AM_RANGE(0x5680, 0x56ff) AM_WRITE_LEGACY(nvram_store_w)
- AM_RANGE(0x5700, 0x577f) AM_WRITE_LEGACY(nvram_recall_w)
+ AM_RANGE(0x5600, 0x5601) AM_MIRROR(0x0078) AM_WRITE(cloud9_coin_counter_w)
+ AM_RANGE(0x5602, 0x5603) AM_MIRROR(0x0078) AM_WRITE(cloud9_led_w)
+ AM_RANGE(0x5680, 0x56ff) AM_WRITE(nvram_store_w)
+ AM_RANGE(0x5700, 0x577f) AM_WRITE(nvram_recall_w)
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x007e) AM_READ_PORT("IN0")
AM_RANGE(0x5801, 0x5801) AM_MIRROR(0x007e) AM_READ_PORT("IN1")
- AM_RANGE(0x5900, 0x5903) AM_MIRROR(0x007c) AM_READ_LEGACY(leta_r)
+ AM_RANGE(0x5900, 0x5903) AM_MIRROR(0x007c) AM_READ(leta_r)
AM_RANGE(0x5a00, 0x5a0f) AM_MIRROR(0x00f0) AM_DEVREADWRITE_LEGACY("pokey1", pokey_r, pokey_w)
AM_RANGE(0x5b00, 0x5b0f) AM_MIRROR(0x00f0) AM_DEVREADWRITE_LEGACY("pokey2", pokey_r, pokey_w)
AM_RANGE(0x5c00, 0x5cff) AM_MIRROR(0x0300) AM_DEVREADWRITE("nvram", x2212_device, read, write)
diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c
index 89fed08c7da..1fbd8cded7b 100644
--- a/src/mame/drivers/clshroad.c
+++ b/src/mame/drivers/clshroad.c
@@ -28,12 +28,12 @@ static MACHINE_RESET( clshroad )
}
-static READ8_HANDLER( clshroad_input_r )
+READ8_MEMBER(clshroad_state::clshroad_input_r)
{
- return ((~input_port_read(space->machine(), "P1") & (1 << offset)) ? 1 : 0) |
- ((~input_port_read(space->machine(), "P2") & (1 << offset)) ? 2 : 0) |
- ((~input_port_read(space->machine(), "DSW1") & (1 << offset)) ? 4 : 0) |
- ((~input_port_read(space->machine(), "DSW2") & (1 << offset)) ? 8 : 0) ;
+ return ((~input_port_read(machine(), "P1") & (1 << offset)) ? 1 : 0) |
+ ((~input_port_read(machine(), "P2") & (1 << offset)) ? 2 : 0) |
+ ((~input_port_read(machine(), "DSW1") & (1 << offset)) ? 4 : 0) |
+ ((~input_port_read(machine(), "DSW2") & (1 << offset)) ? 8 : 0) ;
}
@@ -45,7 +45,7 @@ static ADDRESS_MAP_START( clshroad_map, AS_PROGRAM, 8, clshroad_state )
AM_RANGE(0x9e00, 0x9fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xa001, 0xa001) AM_WRITENOP // ? Interrupt related
AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(clshroad_flipscreen_w)
- AM_RANGE(0xa100, 0xa107) AM_READ_LEGACY(clshroad_input_r)
+ AM_RANGE(0xa100, 0xa107) AM_READ(clshroad_input_r)
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE_LEGACY(clshroad_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0xb000, 0xb003) AM_WRITEONLY AM_BASE(m_vregs) // Scroll
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(clshroad_vram_0_w) AM_BASE(m_vram_0) // Layer 0
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 69190568d97..c15e3c38c38 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -54,20 +54,18 @@ Note about version levels using Mutant Fighter as the example:
#include "video/decospr.h"
#include "video/decocomn.h"
-static WRITE16_HANDLER( cninja_sound_w )
+WRITE16_MEMBER(cninja_state::cninja_sound_w)
{
- cninja_state *state = space->machine().driver_data<cninja_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static WRITE16_HANDLER( stoneage_sound_w )
+WRITE16_MEMBER(cninja_state::stoneage_sound_w)
{
- cninja_state *state = space->machine().driver_data<cninja_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
static TIMER_DEVICE_CALLBACK( interrupt_gen )
@@ -78,29 +76,27 @@ static TIMER_DEVICE_CALLBACK( interrupt_gen )
state->m_raster_irq_timer->reset();
}
-static READ16_HANDLER( cninja_irq_r )
+READ16_MEMBER(cninja_state::cninja_irq_r)
{
- cninja_state *state = space->machine().driver_data<cninja_state>();
switch (offset)
{
case 1: /* Raster IRQ scanline position */
- return state->m_scanline;
+ return m_scanline;
case 2: /* Raster IRQ ACK - value read is not used */
- device_set_input_line(state->m_maincpu, 3, CLEAR_LINE);
- device_set_input_line(state->m_maincpu, 4, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 3, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 4, CLEAR_LINE);
return 0;
}
- logerror("%08x: Unmapped IRQ read %d\n", cpu_get_pc(&space->device()), offset);
+ logerror("%08x: Unmapped IRQ read %d\n", cpu_get_pc(&space.device()), offset);
return 0;
}
-static WRITE16_HANDLER( cninja_irq_w )
+WRITE16_MEMBER(cninja_state::cninja_irq_w)
{
- cninja_state *state = space->machine().driver_data<cninja_state>();
switch (offset)
{
@@ -110,79 +106,77 @@ static WRITE16_HANDLER( cninja_irq_w )
0xc8: Raster IRQ turned on (68k IRQ level 4)
0xd8: Raster IRQ turned on (68k IRQ level 3)
*/
- logerror("%08x: IRQ write %d %08x\n", cpu_get_pc(&space->device()), offset, data);
- state->m_irq_mask = data & 0xff;
+ logerror("%08x: IRQ write %d %08x\n", cpu_get_pc(&space.device()), offset, data);
+ m_irq_mask = data & 0xff;
return;
case 1: /* Raster IRQ scanline position, only valid for values between 1 & 239 (0 and 240-256 do NOT generate IRQ's) */
- state->m_scanline = data & 0xff;
+ m_scanline = data & 0xff;
- if (!BIT(state->m_irq_mask, 1) && state->m_scanline > 0 && state->m_scanline < 240)
- state->m_raster_irq_timer->adjust(space->machine().primary_screen->time_until_pos(state->m_scanline), state->m_scanline);
+ if (!BIT(m_irq_mask, 1) && m_scanline > 0 && m_scanline < 240)
+ m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(m_scanline), m_scanline);
else
- state->m_raster_irq_timer->reset();
+ m_raster_irq_timer->reset();
return;
case 2: /* VBL irq ack */
return;
}
- logerror("%08x: Unmapped IRQ write %d %04x\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%08x: Unmapped IRQ write %d %04x\n", cpu_get_pc(&space.device()), offset, data);
}
-static READ16_HANDLER( robocop2_prot_r )
+READ16_MEMBER(cninja_state::robocop2_prot_r)
{
switch (offset << 1)
{
case 0x41a: /* Player 1 & 2 input ports */
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x320: /* Coins */
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 0x4e6: /* Dip switches */
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 0x504: /* PC: 6b6. b4, 2c, 36 written before read */
- logerror("Protection PC %06x: warning - read unmapped memory address %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("Protection PC %06x: warning - read unmapped memory address %04x\n", cpu_get_pc(&space.device()), offset);
return 0x84;
}
- logerror("Protection PC %06x: warning - read unmapped memory address %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("Protection PC %06x: warning - read unmapped memory address %04x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
/**********************************************************************************/
-static WRITE16_HANDLER( cninja_pf12_control_w )
+WRITE16_MEMBER(cninja_state::cninja_pf12_control_w)
{
- cninja_state *state = space->machine().driver_data<cninja_state>();
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
- deco16ic_pf_control_w(state->m_deco_tilegen1, offset, data, mem_mask);
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ deco16ic_pf_control_w(m_deco_tilegen1, offset, data, mem_mask);
}
-static WRITE16_HANDLER( cninja_pf34_control_w )
+WRITE16_MEMBER(cninja_state::cninja_pf34_control_w)
{
- cninja_state *state = space->machine().driver_data<cninja_state>();
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
- deco16ic_pf_control_w(state->m_deco_tilegen2, offset, data, mem_mask);
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ deco16ic_pf_control_w(m_deco_tilegen2, offset, data, mem_mask);
}
static ADDRESS_MAP_START( cninja_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
- AM_RANGE(0x140000, 0x14000f) AM_WRITE_LEGACY(cninja_pf12_control_w)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x144000, 0x144fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x146000, 0x146fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x14c000, 0x14c7ff) AM_WRITEONLY AM_BASE(m_pf1_rowscroll)
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(m_pf2_rowscroll)
- AM_RANGE(0x150000, 0x15000f) AM_WRITE_LEGACY(cninja_pf34_control_w)
+ AM_RANGE(0x150000, 0x15000f) AM_WRITE(cninja_pf34_control_w)
AM_RANGE(0x154000, 0x154fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x156000, 0x156fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(m_pf3_rowscroll)
AM_RANGE(0x15e000, 0x15e7ff) AM_RAM AM_BASE(m_pf4_rowscroll)
AM_RANGE(0x184000, 0x187fff) AM_RAM AM_BASE(m_ram)
- AM_RANGE(0x190000, 0x190007) AM_READWRITE_LEGACY(cninja_irq_r, cninja_irq_w)
+ AM_RANGE(0x190000, 0x190007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x19c000, 0x19dfff) AM_RAM_DEVWRITE_LEGACY("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1a4000, 0x1a47ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
@@ -198,13 +192,13 @@ static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x138000, 0x1387ff) AM_RAM AM_SHARE("spriteram") /* bootleg sprite-ram (sprites rewritten here in new format) */
- AM_RANGE(0x140000, 0x14000f) AM_WRITE_LEGACY(cninja_pf12_control_w)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x144000, 0x144fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x146000, 0x146fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x14c000, 0x14c7ff) AM_WRITEONLY AM_BASE(m_pf1_rowscroll)
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(m_pf2_rowscroll)
- AM_RANGE(0x150000, 0x15000f) AM_WRITE_LEGACY(cninja_pf34_control_w) // not used / incorrect on this
+ AM_RANGE(0x150000, 0x15000f) AM_WRITE(cninja_pf34_control_w) // not used / incorrect on this
AM_RANGE(0x154000, 0x154fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x156000, 0x156fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(m_pf3_rowscroll)
@@ -212,12 +206,12 @@ static ADDRESS_MAP_START( cninjabl_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x17ff22, 0x17ff23) AM_READ_PORT("DSW")
AM_RANGE(0x17ff28, 0x17ff29) AM_READ_PORT("IN1")
- AM_RANGE(0x17ff2a, 0x17ff2b) AM_WRITE_LEGACY(stoneage_sound_w)
+ AM_RANGE(0x17ff2a, 0x17ff2b) AM_WRITE(stoneage_sound_w)
AM_RANGE(0x17ff2c, 0x17ff2d) AM_READ_PORT("IN0")
AM_RANGE(0x180000, 0x187fff) AM_RAM // more ram on bootleg?
- AM_RANGE(0x190000, 0x190007) AM_READWRITE_LEGACY(cninja_irq_r, cninja_irq_w)
+ AM_RANGE(0x190000, 0x190007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x19c000, 0x19dfff) AM_RAM_DEVWRITE_LEGACY("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1b4000, 0x1b4001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) /* DMA flag */
@@ -226,13 +220,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x140000, 0x14000f) AM_WRITE_LEGACY(cninja_pf12_control_w)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x144000, 0x144fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x146000, 0x146fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x14c000, 0x14c7ff) AM_RAM AM_BASE(m_pf1_rowscroll)
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(m_pf2_rowscroll)
- AM_RANGE(0x150000, 0x15000f) AM_WRITE_LEGACY(cninja_pf34_control_w)
+ AM_RANGE(0x150000, 0x15000f) AM_WRITE(cninja_pf34_control_w)
AM_RANGE(0x154000, 0x154fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x156000, 0x156fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(m_pf3_rowscroll)
@@ -244,7 +238,7 @@ static ADDRESS_MAP_START( edrandy_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x199550, 0x199551) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
AM_RANGE(0x199750, 0x199751) AM_WRITENOP /* Looks like a bug in game code, a protection write is referenced off a5 instead of a6 and ends up here */
- AM_RANGE(0x1a4000, 0x1a4007) AM_READWRITE_LEGACY(cninja_irq_r, cninja_irq_w)
+ AM_RANGE(0x1a4000, 0x1a4007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x1ac000, 0x1ac001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) /* DMA flag */
AM_RANGE(0x1bc000, 0x1bc7ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x1bc800, 0x1bcfff) AM_WRITENOP /* Another bug in game code? Sprite list can overrun. Doesn't seem to mirror */
@@ -254,13 +248,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( robocop2_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x140000, 0x14000f) AM_WRITE_LEGACY(cninja_pf12_control_w)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x144000, 0x144fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x146000, 0x146fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x14c000, 0x14c7ff) AM_RAM AM_BASE(m_pf1_rowscroll)
AM_RANGE(0x14e000, 0x14e7ff) AM_RAM AM_BASE(m_pf2_rowscroll)
- AM_RANGE(0x150000, 0x15000f) AM_WRITE_LEGACY(cninja_pf34_control_w)
+ AM_RANGE(0x150000, 0x15000f) AM_WRITE(cninja_pf34_control_w)
AM_RANGE(0x154000, 0x154fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x156000, 0x156fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x15c000, 0x15c7ff) AM_RAM AM_BASE(m_pf3_rowscroll)
@@ -268,11 +262,11 @@ static ADDRESS_MAP_START( robocop2_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x180000, 0x1807ff) AM_RAM AM_SHARE("spriteram")
// AM_RANGE(0x18c000, 0x18c0ff) AM_WRITE_LEGACY(cninja_loopback_w) /* Protection writes */
- AM_RANGE(0x18c000, 0x18c7ff) AM_READ_LEGACY(robocop2_prot_r) /* Protection device */
- AM_RANGE(0x18c064, 0x18c065) AM_WRITE_LEGACY(cninja_sound_w)
+ AM_RANGE(0x18c000, 0x18c7ff) AM_READ(robocop2_prot_r) /* Protection device */
+ AM_RANGE(0x18c064, 0x18c065) AM_WRITE(cninja_sound_w)
AM_RANGE(0x198000, 0x198001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) /* DMA flag */
AM_RANGE(0x1a8000, 0x1a9fff) AM_RAM_DEVWRITE_LEGACY("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x1b0000, 0x1b0007) AM_READWRITE_LEGACY(cninja_irq_r, cninja_irq_w)
+ AM_RANGE(0x1b0000, 0x1b0007) AM_READWRITE(cninja_irq_r, cninja_irq_w)
AM_RANGE(0x1b8000, 0x1bbfff) AM_RAM AM_BASE(m_ram) /* Main ram */
AM_RANGE(0x1f0000, 0x1f0001) AM_DEVWRITE_LEGACY("deco_common", decocomn_priority_w)
AM_RANGE(0x1f8000, 0x1f8001) AM_READ_PORT("DSW3") /* Dipswitch #3 */
@@ -290,13 +284,13 @@ static ADDRESS_MAP_START( mutantf_map, AS_PROGRAM, 16, cninja_state )
AM_RANGE(0x1c0000, 0x1c0001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) AM_DEVREAD_LEGACY("deco_common", decocomn_71_r)
AM_RANGE(0x1e0000, 0x1e0001) AM_DEVWRITE("spriteram2", buffered_spriteram16_device, write)
- AM_RANGE(0x300000, 0x30000f) AM_WRITE_LEGACY(cninja_pf12_control_w)
+ AM_RANGE(0x300000, 0x30000f) AM_WRITE(cninja_pf12_control_w)
AM_RANGE(0x304000, 0x305fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x306000, 0x307fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x308000, 0x3087ff) AM_RAM AM_BASE(m_pf1_rowscroll)
AM_RANGE(0x30a000, 0x30a7ff) AM_RAM AM_BASE(m_pf2_rowscroll)
- AM_RANGE(0x310000, 0x31000f) AM_WRITE_LEGACY(cninja_pf34_control_w)
+ AM_RANGE(0x310000, 0x31000f) AM_WRITE(cninja_pf34_control_w)
AM_RANGE(0x314000, 0x315fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x316000, 0x317fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x318000, 0x3187ff) AM_RAM AM_BASE(m_pf3_rowscroll)
@@ -2102,13 +2096,15 @@ static void cninja_patch( running_machine &machine )
static DRIVER_INIT( cninja )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1bc0a8, 0x1bc0a9, FUNC(cninja_sound_w));
+ cninja_state *state = machine.driver_data<cninja_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x1bc0a8, 0x1bc0a9, write16_delegate(FUNC(cninja_state::cninja_sound_w),state));
cninja_patch(machine);
}
static DRIVER_INIT( stoneage )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x1bc0a8, 0x1bc0a9, FUNC(stoneage_sound_w));
+ cninja_state *state = machine.driver_data<cninja_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x1bc0a8, 0x1bc0a9, write16_delegate(FUNC(cninja_state::stoneage_sound_w),state));
}
static DRIVER_INIT( mutantf )
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index a8a366541c8..06b738c2a70 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -135,147 +135,140 @@ Dip location and recommended settings verified with the US manual
*
*************************************/
-static WRITE8_HANDLER( combatsc_vreg_w )
+WRITE8_MEMBER(combatsc_state::combatsc_vreg_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
- if (data != state->m_vreg)
+ if (data != m_vreg)
{
- state->m_textlayer->mark_all_dirty();
- if ((data & 0x0f) != (state->m_vreg & 0x0f))
- state->m_bg_tilemap[0]->mark_all_dirty();
- if ((data >> 4) != (state->m_vreg >> 4))
- state->m_bg_tilemap[1]->mark_all_dirty();
- state->m_vreg = data;
+ m_textlayer->mark_all_dirty();
+ if ((data & 0x0f) != (m_vreg & 0x0f))
+ m_bg_tilemap[0]->mark_all_dirty();
+ if ((data >> 4) != (m_vreg >> 4))
+ m_bg_tilemap[1]->mark_all_dirty();
+ m_vreg = data;
}
}
-static WRITE8_HANDLER( combatscb_sh_irqtrigger_w )
+WRITE8_MEMBER(combatsc_state::combatscb_sh_irqtrigger_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static READ8_HANDLER( combatscb_io_r )
+READ8_MEMBER(combatsc_state::combatscb_io_r)
{
static const char *const portnames[] = { "IN0", "IN1", "DSW1", "DSW2" };
- return input_port_read(space->machine(), portnames[offset]);
+ return input_port_read(machine(), portnames[offset]);
}
-static WRITE8_HANDLER( combatscb_priority_w )
+WRITE8_MEMBER(combatsc_state::combatscb_priority_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
if (data & 0x40)
{
- state->m_video_circuit = 1;
- state->m_videoram = state->m_page[1];
- state->m_scrollram = state->m_scrollram1;
+ m_video_circuit = 1;
+ m_videoram = m_page[1];
+ m_scrollram = m_scrollram1;
}
else
{
- state->m_video_circuit = 0;
- state->m_videoram = state->m_page[0];
- state->m_scrollram = state->m_scrollram0;
+ m_video_circuit = 0;
+ m_videoram = m_page[0];
+ m_scrollram = m_scrollram0;
}
- state->m_priority = data & 0x20;
+ m_priority = data & 0x20;
}
-static WRITE8_HANDLER( combatsc_bankselect_w )
+WRITE8_MEMBER(combatsc_state::combatsc_bankselect_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
- state->m_priority = data & 0x20;
+ m_priority = data & 0x20;
if (data & 0x40)
{
- state->m_video_circuit = 1;
- state->m_videoram = state->m_page[1];
- state->m_scrollram = state->m_scrollram1;
+ m_video_circuit = 1;
+ m_videoram = m_page[1];
+ m_scrollram = m_scrollram1;
}
else
{
- state->m_video_circuit = 0;
- state->m_videoram = state->m_page[0];
- state->m_scrollram = state->m_scrollram0;
+ m_video_circuit = 0;
+ m_videoram = m_page[0];
+ m_scrollram = m_scrollram0;
}
if (data & 0x10)
- memory_set_bank(space->machine(), "bank1", (data & 0x0e) >> 1);
+ memory_set_bank(machine(), "bank1", (data & 0x0e) >> 1);
else
- memory_set_bank(space->machine(), "bank1", 8 + (data & 1));
+ memory_set_bank(machine(), "bank1", 8 + (data & 1));
}
-static WRITE8_HANDLER( combatscb_io_w )
+WRITE8_MEMBER(combatsc_state::combatscb_io_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
switch (offset)
{
case 0x400: combatscb_priority_w(space, 0, data); break;
case 0x800: combatscb_sh_irqtrigger_w(space, 0, data); break;
case 0xc00: combatsc_vreg_w(space, 0, data); break;
- default: state->m_io_ram[offset] = data; break;
+ default: m_io_ram[offset] = data; break;
}
}
-static WRITE8_HANDLER( combatscb_bankselect_w )
+WRITE8_MEMBER(combatsc_state::combatscb_bankselect_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
if (data & 0x40)
{
- state->m_video_circuit = 1;
- state->m_videoram = state->m_page[1];
+ m_video_circuit = 1;
+ m_videoram = m_page[1];
}
else
{
- state->m_video_circuit = 0;
- state->m_videoram = state->m_page[0];
+ m_video_circuit = 0;
+ m_videoram = m_page[0];
}
data = data & 0x1f;
- if (data != state->m_bank_select)
+ if (data != m_bank_select)
{
- state->m_bank_select = data;
+ m_bank_select = data;
if (data & 0x10)
- memory_set_bank(space->machine(), "bank1", (data & 0x0e) >> 1);
+ memory_set_bank(machine(), "bank1", (data & 0x0e) >> 1);
else
- memory_set_bank(space->machine(), "bank1", 8 + (data & 1));
+ memory_set_bank(machine(), "bank1", 8 + (data & 1));
if (data == 0x1f)
{
- memory_set_bank(space->machine(), "bank1", 8 + (data & 1));
- space->install_legacy_write_handler(0x4000, 0x7fff, FUNC(combatscb_io_w));
- space->install_legacy_read_handler(0x4400, 0x4403, FUNC(combatscb_io_r));/* IO RAM & Video Registers */
+ memory_set_bank(machine(), "bank1", 8 + (data & 1));
+ space.install_write_handler(0x4000, 0x7fff, write8_delegate(FUNC(combatsc_state::combatscb_io_w),this));
+ space.install_read_handler(0x4400, 0x4403, read8_delegate(FUNC(combatsc_state::combatscb_io_r),this));/* IO RAM & Video Registers */
}
else
{
- space->install_read_bank(0x4000, 0x7fff, "bank1"); /* banked ROM */
- space->unmap_write(0x4000, 0x7fff); /* banked ROM */
+ space.install_read_bank(0x4000, 0x7fff, "bank1"); /* banked ROM */
+ space.unmap_write(0x4000, 0x7fff); /* banked ROM */
}
}
}
/****************************************************************************/
-static WRITE8_HANDLER( combatsc_coin_counter_w )
+WRITE8_MEMBER(combatsc_state::combatsc_coin_counter_w)
{
/* b7-b3: unused? */
/* b1: coin counter 2 */
/* b0: coin counter 1 */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
-static READ8_HANDLER( trackball_r )
+READ8_MEMBER(combatsc_state::trackball_r)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
if (offset == 0)
{
@@ -286,42 +279,40 @@ static READ8_HANDLER( trackball_r )
{
UINT8 curr;
- curr = input_port_read_safe(space->machine(), tracknames[i], 0xff);
+ curr = input_port_read_safe(machine(), tracknames[i], 0xff);
- dir[i] = curr - state->m_pos[i];
- state->m_sign[i] = dir[i] & 0x80;
- state->m_pos[i] = curr;
+ dir[i] = curr - m_pos[i];
+ m_sign[i] = dir[i] & 0x80;
+ m_pos[i] = curr;
}
/* fix sign for orthogonal movements */
if (dir[0] || dir[1])
{
- if (!dir[0]) state->m_sign[0] = state->m_sign[1] ^ 0x80;
- if (!dir[1]) state->m_sign[1] = state->m_sign[0];
+ if (!dir[0]) m_sign[0] = m_sign[1] ^ 0x80;
+ if (!dir[1]) m_sign[1] = m_sign[0];
}
if (dir[2] || dir[3])
{
- if (!dir[2]) state->m_sign[2] = state->m_sign[3] ^ 0x80;
- if (!dir[3]) state->m_sign[3] = state->m_sign[2];
+ if (!dir[2]) m_sign[2] = m_sign[3] ^ 0x80;
+ if (!dir[3]) m_sign[3] = m_sign[2];
}
}
- return state->m_sign[offset] | (state->m_pos[offset] & 0x7f);
+ return m_sign[offset] | (m_pos[offset] & 0x7f);
}
/* the protection is a simple multiply */
-static WRITE8_HANDLER( protection_w )
+WRITE8_MEMBER(combatsc_state::protection_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
- state->m_prot[offset] = data;
+ m_prot[offset] = data;
}
-static READ8_HANDLER( protection_r )
+READ8_MEMBER(combatsc_state::protection_r)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
- return ((state->m_prot[0] * state->m_prot[1]) >> (offset * 8)) & 0xff;
+ return ((m_prot[0] * m_prot[1]) >> (offset * 8)) & 0xff;
}
-static WRITE8_HANDLER( protection_clock_w )
+WRITE8_MEMBER(combatsc_state::protection_clock_w)
{
/* 0x3f is written here every time before accessing the other registers */
}
@@ -329,10 +320,9 @@ static WRITE8_HANDLER( protection_clock_w )
/****************************************************************************/
-static WRITE8_HANDLER( combatsc_sh_irqtrigger_w )
+WRITE8_MEMBER(combatsc_state::combatsc_sh_irqtrigger_w)
{
- combatsc_state *state = space->machine().driver_data<combatsc_state>();
- 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);
}
static READ8_DEVICE_HANDLER( combatsc_busy_r )
@@ -388,19 +378,19 @@ static ADDRESS_MAP_START( combatsc_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x0020, 0x005f) AM_READWRITE_LEGACY(combatsc_scrollram_r, combatsc_scrollram_w)
// AM_RANGE(0x0060, 0x00ff) AM_WRITEONLY /* RAM */
- AM_RANGE(0x0200, 0x0201) AM_READWRITE_LEGACY(protection_r, protection_w)
- AM_RANGE(0x0206, 0x0206) AM_WRITE_LEGACY(protection_clock_w)
+ AM_RANGE(0x0200, 0x0201) AM_READWRITE(protection_r, protection_w)
+ AM_RANGE(0x0206, 0x0206) AM_WRITE(protection_clock_w)
AM_RANGE(0x0400, 0x0400) AM_READ_PORT("IN0")
AM_RANGE(0x0401, 0x0401) AM_READ_PORT("DSW3") /* DSW #3 */
AM_RANGE(0x0402, 0x0402) AM_READ_PORT("DSW1") /* DSW #1 */
AM_RANGE(0x0403, 0x0403) AM_READ_PORT("DSW2") /* DSW #2 */
- AM_RANGE(0x0404, 0x0407) AM_READ_LEGACY(trackball_r) /* 1P & 2P controls / trackball */
- AM_RANGE(0x0408, 0x0408) AM_WRITE_LEGACY(combatsc_coin_counter_w) /* coin counters */
- AM_RANGE(0x040c, 0x040c) AM_WRITE_LEGACY(combatsc_vreg_w)
- AM_RANGE(0x0410, 0x0410) AM_WRITE_LEGACY(combatsc_bankselect_w)
+ AM_RANGE(0x0404, 0x0407) AM_READ(trackball_r) /* 1P & 2P controls / trackball */
+ AM_RANGE(0x0408, 0x0408) AM_WRITE(combatsc_coin_counter_w) /* coin counters */
+ AM_RANGE(0x040c, 0x040c) AM_WRITE(combatsc_vreg_w)
+ AM_RANGE(0x0410, 0x0410) AM_WRITE(combatsc_bankselect_w)
AM_RANGE(0x0414, 0x0414) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x0418, 0x0418) AM_WRITE_LEGACY(combatsc_sh_irqtrigger_w)
+ AM_RANGE(0x0418, 0x0418) AM_WRITE(combatsc_sh_irqtrigger_w)
AM_RANGE(0x041c, 0x041c) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset? */
AM_RANGE(0x0600, 0x06ff) AM_RAM AM_BASE(m_paletteram) /* palette */
@@ -412,7 +402,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( combatscb_map, AS_PROGRAM, 8, combatsc_state )
AM_RANGE(0x0000, 0x04ff) AM_RAM
- AM_RANGE(0x0500, 0x0500) AM_WRITE_LEGACY(combatscb_bankselect_w)
+ AM_RANGE(0x0500, 0x0500) AM_WRITE(combatscb_bankselect_w)
AM_RANGE(0x0600, 0x06ff) AM_RAM AM_BASE(m_paletteram) /* palette */
AM_RANGE(0x0800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(combatsc_video_r, combatsc_video_w)
@@ -747,7 +737,7 @@ static MACHINE_RESET( combatsc )
state->m_sign[i] = 0;
}
- combatsc_bankselect_w(space, 0, 0);
+ state->combatsc_bankselect_w(*space, 0, 0);
}
/* combat school (original) */
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index c25f890630c..9ffcff784f5 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -34,22 +34,21 @@ static WRITE8_DEVICE_HANDLER( compgolf_scrolly_lo_w )
state->m_scrolly_lo = data;
}
-static WRITE8_HANDLER( compgolf_ctrl_w )
+WRITE8_MEMBER(compgolf_state::compgolf_ctrl_w)
{
- compgolf_state *state = space->machine().driver_data<compgolf_state>();
/* bit 4 and 6 are always set */
int new_bank = (data & 4) >> 2;
- if (state->m_bank != new_bank)
+ if (m_bank != new_bank)
{
- state->m_bank = new_bank;
- memory_set_bank(space->machine(), "bank1", state->m_bank);
+ m_bank = new_bank;
+ memory_set_bank(machine(), "bank1", m_bank);
}
- state->m_scrollx_hi = (data & 1) << 8;
- state->m_scrolly_hi = (data & 2) << 7;
+ m_scrollx_hi = (data & 1) << 8;
+ m_scrolly_hi = (data & 2) << 7;
}
@@ -66,7 +65,7 @@ static ADDRESS_MAP_START( compgolf_map, AS_PROGRAM, 8, compgolf_state )
AM_RANGE(0x2000, 0x2060) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x2061, 0x2061) AM_WRITENOP
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("P1")
- AM_RANGE(0x3001, 0x3001) AM_READ_PORT("P2") AM_WRITE_LEGACY(compgolf_ctrl_w)
+ AM_RANGE(0x3001, 0x3001) AM_READ_PORT("P2") AM_WRITE(compgolf_ctrl_w)
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW1")
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW2")
AM_RANGE(0x3800, 0x3801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index d495fc67460..6945a7aa61b 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -32,27 +32,26 @@ static INTERRUPT_GEN( contra_interrupt )
device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( contra_bankswitch_w )
+WRITE8_MEMBER(contra_state::contra_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static WRITE8_HANDLER( contra_sh_irqtrigger_w )
+WRITE8_MEMBER(contra_state::contra_sh_irqtrigger_w)
{
- contra_state *state = space->machine().driver_data<contra_state>();
- device_set_input_line(state->m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( contra_coin_counter_w )
+WRITE8_MEMBER(contra_state::contra_coin_counter_w)
{
if (data & 0x01)
- coin_counter_w(space->machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 0, data & 0x01);
if (data & 0x02)
- coin_counter_w(space->machine(), 1, (data & 0x02) >> 1);
+ coin_counter_w(machine(), 1, (data & 0x02) >> 1);
}
-static WRITE8_HANDLER( cpu_sound_command_w )
+WRITE8_MEMBER(contra_state::cpu_sound_command_w)
{
soundlatch_w(space, offset, data);
}
@@ -69,9 +68,9 @@ static ADDRESS_MAP_START( contra_map, AS_PROGRAM, 8, contra_state )
AM_RANGE(0x0015, 0x0015) AM_READ_PORT("DSW2")
AM_RANGE(0x0016, 0x0016) AM_READ_PORT("DSW3")
- AM_RANGE(0x0018, 0x0018) AM_WRITE_LEGACY(contra_coin_counter_w)
- AM_RANGE(0x001a, 0x001a) AM_WRITE_LEGACY(contra_sh_irqtrigger_w)
- AM_RANGE(0x001c, 0x001c) AM_WRITE_LEGACY(cpu_sound_command_w)
+ AM_RANGE(0x0018, 0x0018) AM_WRITE(contra_coin_counter_w)
+ AM_RANGE(0x001a, 0x001a) AM_WRITE(contra_sh_irqtrigger_w)
+ AM_RANGE(0x001c, 0x001c) AM_WRITE(cpu_sound_command_w)
AM_RANGE(0x001e, 0x001e) AM_WRITENOP /* ? */
AM_RANGE(0x0060, 0x0067) AM_WRITE_LEGACY(contra_K007121_ctrl_1_w)
@@ -91,7 +90,7 @@ static ADDRESS_MAP_START( contra_map, AS_PROGRAM, 8, contra_state )
AM_RANGE(0x4800, 0x5fff) AM_WRITEONLY
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
- AM_RANGE(0x7000, 0x7000) AM_WRITE_LEGACY(contra_bankswitch_w)
+ AM_RANGE(0x7000, 0x7000) AM_WRITE(contra_bankswitch_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c
index c45d9eea196..92c9e8ca78c 100644
--- a/src/mame/drivers/coolpool.c
+++ b/src/mame/drivers/coolpool.c
@@ -164,38 +164,36 @@ static TIMER_DEVICE_CALLBACK( nvram_write_timeout )
}
-static WRITE16_HANDLER( nvram_thrash_w )
+WRITE16_MEMBER(coolpool_state::nvram_thrash_w)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
/* keep track of the last few writes */
- memmove(&state->m_nvram_write_seq[0], &state->m_nvram_write_seq[1], (NVRAM_UNLOCK_SEQ_LEN - 1) * sizeof(state->m_nvram_write_seq[0]));
- state->m_nvram_write_seq[NVRAM_UNLOCK_SEQ_LEN - 1] = offset & 0x3ff;
+ memmove(&m_nvram_write_seq[0], &m_nvram_write_seq[1], (NVRAM_UNLOCK_SEQ_LEN - 1) * sizeof(m_nvram_write_seq[0]));
+ m_nvram_write_seq[NVRAM_UNLOCK_SEQ_LEN - 1] = offset & 0x3ff;
/* if they match the unlock sequence, enable writes and set a timeout */
- if (!memcmp(nvram_unlock_seq, state->m_nvram_write_seq, sizeof(nvram_unlock_seq)))
+ if (!memcmp(nvram_unlock_seq, m_nvram_write_seq, sizeof(nvram_unlock_seq)))
{
- state->m_nvram_write_enable = 1;
- timer_device *nvram_timer = space->machine().device<timer_device>("nvram_timer");
+ m_nvram_write_enable = 1;
+ timer_device *nvram_timer = machine().device<timer_device>("nvram_timer");
nvram_timer->adjust(attotime::from_msec(1000));
}
}
-static WRITE16_HANDLER( nvram_data_w )
+WRITE16_MEMBER(coolpool_state::nvram_data_w)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
/* only the low 8 bits matter */
if (ACCESSING_BITS_0_7)
{
- if (state->m_nvram_write_enable)
+ if (m_nvram_write_enable)
{
- state->m_nvram[offset] = data & 0xff;
+ m_nvram[offset] = data & 0xff;
}
}
}
-static WRITE16_HANDLER( nvram_thrash_data_w )
+WRITE16_MEMBER(coolpool_state::nvram_thrash_data_w)
{
nvram_data_w(space, offset, data, mem_mask);
nvram_thrash_w(space, offset, data, mem_mask);
@@ -218,73 +216,68 @@ static TIMER_DEVICE_CALLBACK( amerdart_audio_int_gen )
}
-static WRITE16_HANDLER( amerdart_misc_w )
+WRITE16_MEMBER(coolpool_state::amerdart_misc_w)
{
- logerror("%08x:IOP_system_w %04x\n",cpu_get_pc(&space->device()),data);
+ logerror("%08x:IOP_system_w %04x\n",cpu_get_pc(&space.device()),data);
- coin_counter_w(space->machine(), 0, ~data & 0x0001);
- coin_counter_w(space->machine(), 1, ~data & 0x0002);
+ coin_counter_w(machine(), 0, ~data & 0x0001);
+ coin_counter_w(machine(), 1, ~data & 0x0002);
/* bits 10-15 are counted down over time */
- cputag_set_input_line(space->machine(), "dsp", INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "dsp", INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE);
}
-static READ16_HANDLER( amerdart_dsp_bio_line_r )
+READ16_MEMBER(coolpool_state::amerdart_dsp_bio_line_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
/* Skip idle checking */
- if (state->m_old_cmd == state->m_cmd_pending)
- state->m_same_cmd_count += 1;
+ if (m_old_cmd == m_cmd_pending)
+ m_same_cmd_count += 1;
else
- state->m_same_cmd_count = 0;
+ m_same_cmd_count = 0;
- if (state->m_same_cmd_count >= 5)
+ if (m_same_cmd_count >= 5)
{
- state->m_same_cmd_count = 5;
- device_spin(&space->device());
+ m_same_cmd_count = 5;
+ device_spin(&space.device());
}
- state->m_old_cmd = state->m_cmd_pending;
+ m_old_cmd = m_cmd_pending;
- return state->m_cmd_pending ? CLEAR_LINE : ASSERT_LINE;
+ return m_cmd_pending ? CLEAR_LINE : ASSERT_LINE;
}
-static READ16_HANDLER( amerdart_iop_r )
+READ16_MEMBER(coolpool_state::amerdart_iop_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
-// logerror("%08x:IOP read %04x\n",cpu_get_pc(&space->device()),state->m_iop_answer);
- cputag_set_input_line(space->machine(), "maincpu", 1, CLEAR_LINE);
+// logerror("%08x:IOP read %04x\n",cpu_get_pc(&space.device()),m_iop_answer);
+ cputag_set_input_line(machine(), "maincpu", 1, CLEAR_LINE);
- return state->m_iop_answer;
+ return m_iop_answer;
}
-static WRITE16_HANDLER( amerdart_iop_w )
+WRITE16_MEMBER(coolpool_state::amerdart_iop_w)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
-// logerror("%08x:IOP write %04x\n", cpu_get_pc(&space->device()), data);
- COMBINE_DATA(&state->m_iop_cmd);
- state->m_cmd_pending = 1;
+// logerror("%08x:IOP write %04x\n", cpu_get_pc(&space.device()), data);
+ COMBINE_DATA(&m_iop_cmd);
+ m_cmd_pending = 1;
}
-static READ16_HANDLER( amerdart_dsp_cmd_r )
+READ16_MEMBER(coolpool_state::amerdart_dsp_cmd_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
-// logerror("%08x:DSP cmd_r %04x\n", cpu_get_pc(&space->device()), state->m_iop_cmd);
- state->m_cmd_pending = 0;
- return state->m_iop_cmd;
+// logerror("%08x:DSP cmd_r %04x\n", cpu_get_pc(&space.device()), m_iop_cmd);
+ m_cmd_pending = 0;
+ return m_iop_cmd;
}
-static WRITE16_HANDLER( amerdart_dsp_answer_w )
+WRITE16_MEMBER(coolpool_state::amerdart_dsp_answer_w)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
-// logerror("%08x:DSP answer %04x\n", cpu_get_pc(&space->device()), data);
- state->m_iop_answer = data;
- cputag_set_input_line(space->machine(), "maincpu", 1, ASSERT_LINE);
+// logerror("%08x:DSP answer %04x\n", cpu_get_pc(&space.device()), data);
+ m_iop_answer = data;
+ cputag_set_input_line(machine(), "maincpu", 1, ASSERT_LINE);
}
@@ -372,7 +365,7 @@ static int amerdart_trackball_direction(address_space *space, int num, int data)
}
-static READ16_HANDLER( amerdart_trackball_r )
+READ16_MEMBER(coolpool_state::amerdart_trackball_r)
{
/*
Trackballs seem to be handled as though they're rotated 45 degrees anti-clockwise.
@@ -409,33 +402,32 @@ static READ16_HANDLER( amerdart_trackball_r )
*/
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- state->m_result = (state->m_lastresult | 0x00ff);
+ m_result = (m_lastresult | 0x00ff);
- state->m_newx[1] = input_port_read(space->machine(), "XAXIS1"); /* Trackball 1 Left - Right */
- state->m_newy[1] = input_port_read(space->machine(), "YAXIS1"); /* Trackball 1 Up - Down */
- state->m_newx[2] = input_port_read(space->machine(), "XAXIS2"); /* Trackball 2 Left - Right */
- state->m_newy[2] = input_port_read(space->machine(), "YAXIS2"); /* Trackball 2 Up - Down */
+ m_newx[1] = input_port_read(machine(), "XAXIS1"); /* Trackball 1 Left - Right */
+ m_newy[1] = input_port_read(machine(), "YAXIS1"); /* Trackball 1 Up - Down */
+ m_newx[2] = input_port_read(machine(), "XAXIS2"); /* Trackball 2 Left - Right */
+ m_newy[2] = input_port_read(machine(), "YAXIS2"); /* Trackball 2 Up - Down */
- state->m_dx[1] = (INT8)(state->m_newx[1] - state->m_oldx[1]);
- state->m_dy[1] = (INT8)(state->m_newy[1] - state->m_oldy[1]);
- state->m_dx[2] = (INT8)(state->m_newx[2] - state->m_oldx[2]);
- state->m_dy[2] = (INT8)(state->m_newy[2] - state->m_oldy[2]);
+ m_dx[1] = (INT8)(m_newx[1] - m_oldx[1]);
+ m_dy[1] = (INT8)(m_newy[1] - m_oldy[1]);
+ m_dx[2] = (INT8)(m_newx[2] - m_oldx[2]);
+ m_dy[2] = (INT8)(m_newy[2] - m_oldy[2]);
/* Determine Trackball 1 direction state */
- state->m_result = (state->m_result & 0xf0ff) | (amerdart_trackball_direction(space, 1, ((state->m_result >> 8) & 0xf)) << 8);
+ m_result = (m_result & 0xf0ff) | (amerdart_trackball_direction(&space, 1, ((m_result >> 8) & 0xf)) << 8);
/* Determine Trackball 2 direction state */
- state->m_result = (state->m_result & 0x0fff) | (amerdart_trackball_direction(space, 2, ((state->m_result >> 12) & 0xf)) << 12);
+ m_result = (m_result & 0x0fff) | (amerdart_trackball_direction(&space, 2, ((m_result >> 12) & 0xf)) << 12);
-// logerror("%08X:read port 6 (X=%02X Y=%02X oldX=%02X oldY=%02X oldRes=%04X Res=%04X)\n", cpu_get_pc(&space->device()), state->m_newx, state->m_newy, state->m_oldx, state->m_oldy, state->m_lastresult, state->m_result);
+// logerror("%08X:read port 6 (X=%02X Y=%02X oldX=%02X oldY=%02X oldRes=%04X Res=%04X)\n", cpu_get_pc(&space.device()), m_newx, m_newy, m_oldx, m_oldy, m_lastresult, m_result);
- state->m_lastresult = state->m_result;
+ m_lastresult = m_result;
- return state->m_result;
+ return m_result;
}
@@ -445,14 +437,14 @@ static READ16_HANDLER( amerdart_trackball_r )
*
*************************************/
-static WRITE16_HANDLER( coolpool_misc_w )
+WRITE16_MEMBER(coolpool_state::coolpool_misc_w)
{
- logerror("%08x:IOP_system_w %04x\n",cpu_get_pc(&space->device()),data);
+ logerror("%08x:IOP_system_w %04x\n",cpu_get_pc(&space.device()),data);
- coin_counter_w(space->machine(), 0, ~data & 0x0001);
- coin_counter_w(space->machine(), 1, ~data & 0x0002);
+ coin_counter_w(machine(), 0, ~data & 0x0001);
+ coin_counter_w(machine(), 1, ~data & 0x0002);
- cputag_set_input_line(space->machine(), "dsp", INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "dsp", INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE);
}
@@ -477,21 +469,20 @@ static TIMER_CALLBACK( deferred_iop_w )
}
-static WRITE16_HANDLER( coolpool_iop_w )
+WRITE16_MEMBER(coolpool_state::coolpool_iop_w)
{
- logerror("%08x:IOP write %04x\n", cpu_get_pc(&space->device()), data);
- space->machine().scheduler().synchronize(FUNC(deferred_iop_w), data);
+ logerror("%08x:IOP write %04x\n", cpu_get_pc(&space.device()), data);
+ machine().scheduler().synchronize(FUNC(deferred_iop_w), data);
}
-static READ16_HANDLER( coolpool_iop_r )
+READ16_MEMBER(coolpool_state::coolpool_iop_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- logerror("%08x:IOP read %04x\n",cpu_get_pc(&space->device()),state->m_iop_answer);
- cputag_set_input_line(space->machine(), "maincpu", 1, CLEAR_LINE);
+ logerror("%08x:IOP read %04x\n",cpu_get_pc(&space.device()),m_iop_answer);
+ cputag_set_input_line(machine(), "maincpu", 1, CLEAR_LINE);
- return state->m_iop_answer;
+ return m_iop_answer;
}
@@ -503,35 +494,32 @@ static READ16_HANDLER( coolpool_iop_r )
*
*************************************/
-static READ16_HANDLER( dsp_cmd_r )
+READ16_MEMBER(coolpool_state::dsp_cmd_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- state->m_cmd_pending = 0;
- logerror("%08x:IOP cmd_r %04x\n", cpu_get_pc(&space->device()), state->m_iop_cmd);
- return state->m_iop_cmd;
+ m_cmd_pending = 0;
+ logerror("%08x:IOP cmd_r %04x\n", cpu_get_pc(&space.device()), m_iop_cmd);
+ return m_iop_cmd;
}
-static WRITE16_HANDLER( dsp_answer_w )
+WRITE16_MEMBER(coolpool_state::dsp_answer_w)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- logerror("%08x:IOP answer %04x\n", cpu_get_pc(&space->device()), data);
- state->m_iop_answer = data;
- cputag_set_input_line(space->machine(), "maincpu", 1, ASSERT_LINE);
+ logerror("%08x:IOP answer %04x\n", cpu_get_pc(&space.device()), data);
+ m_iop_answer = data;
+ cputag_set_input_line(machine(), "maincpu", 1, ASSERT_LINE);
}
-static READ16_HANDLER( dsp_bio_line_r )
+READ16_MEMBER(coolpool_state::dsp_bio_line_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- return state->m_cmd_pending ? CLEAR_LINE : ASSERT_LINE;
+ return m_cmd_pending ? CLEAR_LINE : ASSERT_LINE;
}
-static READ16_HANDLER( dsp_hold_line_r )
+READ16_MEMBER(coolpool_state::dsp_hold_line_r)
{
return CLEAR_LINE; /* ??? */
}
@@ -544,27 +532,25 @@ static READ16_HANDLER( dsp_hold_line_r )
*
*************************************/
-static READ16_HANDLER( dsp_rom_r )
+READ16_MEMBER(coolpool_state::dsp_rom_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- UINT8 *rom = space->machine().region("user2")->base();
+ UINT8 *rom = machine().region("user2")->base();
- return rom[state->m_iop_romaddr & (space->machine().region("user2")->bytes() - 1)];
+ return rom[m_iop_romaddr & (machine().region("user2")->bytes() - 1)];
}
-static WRITE16_HANDLER( dsp_romaddr_w )
+WRITE16_MEMBER(coolpool_state::dsp_romaddr_w)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
switch (offset)
{
case 0:
- state->m_iop_romaddr = (state->m_iop_romaddr & 0xffff00) | (data >> 8);
+ m_iop_romaddr = (m_iop_romaddr & 0xffff00) | (data >> 8);
break;
case 1:
- state->m_iop_romaddr = (state->m_iop_romaddr & 0x0000ff) | (data << 8);
+ m_iop_romaddr = (m_iop_romaddr & 0x0000ff) | (data << 8);
break;
}
}
@@ -583,66 +569,65 @@ static WRITE16_DEVICE_HANDLER( dsp_dac_w )
*
*************************************/
-static READ16_HANDLER( coolpool_input_r )
+READ16_MEMBER(coolpool_state::coolpool_input_r)
{
- coolpool_state *state = space->machine().driver_data<coolpool_state>();
- state->m_result = (input_port_read(space->machine(), "IN1") & 0x00ff) | (state->m_lastresult & 0xff00);
- state->m_newx[1] = input_port_read(space->machine(), "XAXIS");
- state->m_newy[1] = input_port_read(space->machine(), "YAXIS");
- state->m_dx[1] = (INT8)(state->m_newx[1] - state->m_oldx[1]);
- state->m_dy[1] = (INT8)(state->m_newy[1] - state->m_oldy[1]);
+ m_result = (input_port_read(machine(), "IN1") & 0x00ff) | (m_lastresult & 0xff00);
+ m_newx[1] = input_port_read(machine(), "XAXIS");
+ m_newy[1] = input_port_read(machine(), "YAXIS");
+ m_dx[1] = (INT8)(m_newx[1] - m_oldx[1]);
+ m_dy[1] = (INT8)(m_newy[1] - m_oldy[1]);
- if (state->m_dx[1] < 0)
+ if (m_dx[1] < 0)
{
- state->m_oldx[1]--;
- switch (state->m_result & 0x300)
+ m_oldx[1]--;
+ switch (m_result & 0x300)
{
- case 0x000: state->m_result ^= 0x200; break;
- case 0x100: state->m_result ^= 0x100; break;
- case 0x200: state->m_result ^= 0x100; break;
- case 0x300: state->m_result ^= 0x200; break;
+ case 0x000: m_result ^= 0x200; break;
+ case 0x100: m_result ^= 0x100; break;
+ case 0x200: m_result ^= 0x100; break;
+ case 0x300: m_result ^= 0x200; break;
}
}
- if (state->m_dx[1] > 0)
+ if (m_dx[1] > 0)
{
- state->m_oldx[1]++;
- switch (state->m_result & 0x300)
+ m_oldx[1]++;
+ switch (m_result & 0x300)
{
- case 0x000: state->m_result ^= 0x100; break;
- case 0x100: state->m_result ^= 0x200; break;
- case 0x200: state->m_result ^= 0x200; break;
- case 0x300: state->m_result ^= 0x100; break;
+ case 0x000: m_result ^= 0x100; break;
+ case 0x100: m_result ^= 0x200; break;
+ case 0x200: m_result ^= 0x200; break;
+ case 0x300: m_result ^= 0x100; break;
}
}
- if (state->m_dy[1] < 0)
+ if (m_dy[1] < 0)
{
- state->m_oldy[1]--;
- switch (state->m_result & 0xc00)
+ m_oldy[1]--;
+ switch (m_result & 0xc00)
{
- case 0x000: state->m_result ^= 0x800; break;
- case 0x400: state->m_result ^= 0x400; break;
- case 0x800: state->m_result ^= 0x400; break;
- case 0xc00: state->m_result ^= 0x800; break;
+ case 0x000: m_result ^= 0x800; break;
+ case 0x400: m_result ^= 0x400; break;
+ case 0x800: m_result ^= 0x400; break;
+ case 0xc00: m_result ^= 0x800; break;
}
}
- if (state->m_dy[1] > 0)
+ if (m_dy[1] > 0)
{
- state->m_oldy[1]++;
- switch (state->m_result & 0xc00)
+ m_oldy[1]++;
+ switch (m_result & 0xc00)
{
- case 0x000: state->m_result ^= 0x400; break;
- case 0x400: state->m_result ^= 0x800; break;
- case 0x800: state->m_result ^= 0x800; break;
- case 0xc00: state->m_result ^= 0x400; break;
+ case 0x000: m_result ^= 0x400; break;
+ case 0x400: m_result ^= 0x800; break;
+ case 0x800: m_result ^= 0x800; break;
+ case 0xc00: m_result ^= 0x400; break;
}
}
-// logerror("%08X:read port 7 (X=%02X Y=%02X oldX=%02X oldY=%02X res=%04X)\n", cpu_get_pc(&space->device()),
-// state->m_newx[1], state->m_newy[1], state->m_oldx[1], state->m_oldy[1], state->m_result);
- state->m_lastresult = state->m_result;
- return state->m_result;
+// logerror("%08X:read port 7 (X=%02X Y=%02X oldX=%02X oldY=%02X res=%04X)\n", cpu_get_pc(&space.device()),
+// m_newx[1], m_newy[1], m_oldx[1], m_oldy[1], m_result);
+ m_lastresult = m_result;
+ return m_result;
}
@@ -655,9 +640,9 @@ static READ16_HANDLER( coolpool_input_r )
static ADDRESS_MAP_START( amerdart_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_BASE(m_vram_base)
- AM_RANGE(0x04000000, 0x0400000f) AM_WRITE_LEGACY(amerdart_misc_w)
- AM_RANGE(0x05000000, 0x0500000f) AM_READWRITE_LEGACY(amerdart_iop_r, amerdart_iop_w)
- AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE_LEGACY(nvram_thrash_data_w) AM_SHARE("nvram")
+ AM_RANGE(0x04000000, 0x0400000f) AM_WRITE(amerdart_misc_w)
+ AM_RANGE(0x05000000, 0x0500000f) AM_READWRITE(amerdart_iop_r, amerdart_iop_w)
+ AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE(nvram_thrash_data_w) AM_SHARE("nvram")
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0xffb00000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
@@ -666,10 +651,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( coolpool_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE(m_vram_base)
AM_RANGE(0x01000000, 0x010000ff) AM_DEVREADWRITE8_LEGACY("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) // IMSG176P-40
- AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE_LEGACY(coolpool_iop_r, coolpool_iop_w)
- AM_RANGE(0x03000000, 0x0300000f) AM_WRITE_LEGACY(coolpool_misc_w)
+ AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE(coolpool_iop_r, coolpool_iop_w)
+ AM_RANGE(0x03000000, 0x0300000f) AM_WRITE(coolpool_misc_w)
AM_RANGE(0x03000000, 0x03ffffff) AM_ROM AM_REGION("gfx1", 0)
- AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE_LEGACY(nvram_thrash_data_w) AM_SHARE("nvram")
+ AM_RANGE(0x06000000, 0x06007fff) AM_RAM_WRITE(nvram_thrash_data_w) AM_SHARE("nvram")
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
@@ -677,10 +662,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nballsht_map, AS_PROGRAM, 16, coolpool_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM AM_BASE(m_vram_base)
- AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE_LEGACY(coolpool_iop_r, coolpool_iop_w)
- AM_RANGE(0x03000000, 0x0300000f) AM_WRITE_LEGACY(coolpool_misc_w)
+ AM_RANGE(0x02000000, 0x020000ff) AM_READWRITE(coolpool_iop_r, coolpool_iop_w)
+ AM_RANGE(0x03000000, 0x0300000f) AM_WRITE(coolpool_misc_w)
AM_RANGE(0x04000000, 0x040000ff) AM_DEVREADWRITE8_LEGACY("tlc34076", tlc34076_r, tlc34076_w, 0x00ff) // IMSG176P-40
- AM_RANGE(0x06000000, 0x0601ffff) AM_MIRROR(0x00020000) AM_RAM_WRITE_LEGACY(nvram_thrash_data_w) AM_SHARE("nvram")
+ AM_RANGE(0x06000000, 0x0601ffff) AM_MIRROR(0x00020000) AM_RAM_WRITE(nvram_thrash_data_w) AM_SHARE("nvram")
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0xff000000, 0xff7fffff) AM_ROM AM_REGION("gfx1", 0)
AM_RANGE(0xffc00000, 0xffffffff) AM_ROM AM_REGION("user1", 0)
@@ -701,14 +686,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( amerdart_dsp_io_map, AS_IO, 16, coolpool_state )
- AM_RANGE(0x00, 0x01) AM_WRITE_LEGACY(dsp_romaddr_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(amerdart_dsp_answer_w)
+ 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(0x04, 0x04) AM_READ_LEGACY(dsp_rom_r)
+ AM_RANGE(0x04, 0x04) AM_READ(dsp_rom_r)
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN0")
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(amerdart_trackball_r)
- AM_RANGE(0x07, 0x07) AM_READ_LEGACY(amerdart_dsp_cmd_r)
- AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ_LEGACY(amerdart_dsp_bio_line_r)
+ AM_RANGE(0x06, 0x06) AM_READ(amerdart_trackball_r)
+ AM_RANGE(0x07, 0x07) AM_READ(amerdart_dsp_cmd_r)
+ AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(amerdart_dsp_bio_line_r)
ADDRESS_MAP_END
@@ -719,14 +704,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( coolpool_dsp_io_map, AS_IO, 16, coolpool_state )
- AM_RANGE(0x00, 0x01) AM_WRITE_LEGACY(dsp_romaddr_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(dsp_cmd_r, dsp_answer_w)
+ 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(0x04, 0x04) AM_READ_LEGACY(dsp_rom_r)
+ 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")
- AM_RANGE(TMS32025_BIO, TMS32025_BIO) AM_READ_LEGACY(dsp_bio_line_r)
- AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ_LEGACY(dsp_hold_line_r)
+ AM_RANGE(TMS32025_BIO, TMS32025_BIO) AM_READ(dsp_bio_line_r)
+ AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(dsp_hold_line_r)
// AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE_LEGACY(dsp_HOLDA_signal_w)
ADDRESS_MAP_END
@@ -1200,7 +1185,9 @@ static DRIVER_INIT( amerdart )
static DRIVER_INIT( coolpool )
{
- machine.device("dsp")->memory().space(AS_IO)->install_legacy_read_handler(0x07, 0x07, FUNC(coolpool_input_r));
+ coolpool_state *state = machine.driver_data<coolpool_state>();
+
+ machine.device("dsp")->memory().space(AS_IO)->install_read_handler(0x07, 0x07, read16_delegate(FUNC(coolpool_state::coolpool_input_r),state));
register_state_save(machine);
}
diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c
index 74f9d318fd6..cfc22cfed0a 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -70,28 +70,26 @@ Mighty Guy board layout:
*
*************************************/
-static WRITE8_HANDLER( cop01_sound_command_w )
+WRITE8_MEMBER(cop01_state::cop01_sound_command_w)
{
- cop01_state *state = space->machine().driver_data<cop01_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE );
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE );
}
-static READ8_HANDLER( cop01_sound_command_r )
+READ8_MEMBER(cop01_state::cop01_sound_command_r)
{
- cop01_state *state = space->machine().driver_data<cop01_state>();
int res = (soundlatch_r(space, offset) & 0x7f) << 1;
/* bit 0 seems to be a timer */
- if ((state->m_audiocpu->total_cycles() / TIMER_RATE) & 1)
+ if ((m_audiocpu->total_cycles() / TIMER_RATE) & 1)
{
- if (state->m_pulse == 0)
+ if (m_pulse == 0)
res |= 1;
- state->m_pulse = 1;
+ m_pulse = 1;
}
else
- state->m_pulse = 0;
+ m_pulse = 0;
return res;
}
@@ -103,18 +101,16 @@ static CUSTOM_INPUT( mightguy_area_r )
return (input_port_read(field.machine(), "FAKE") & bit_mask) ? 0x01 : 0x00;
}
-static WRITE8_HANDLER( cop01_irq_ack_w )
+WRITE8_MEMBER(cop01_state::cop01_irq_ack_w)
{
- cop01_state *state = space->machine().driver_data<cop01_state>();
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE );
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE );
}
-static READ8_HANDLER( cop01_sound_irq_ack_w )
+READ8_MEMBER(cop01_state::cop01_sound_irq_ack_w)
{
- cop01_state *state = space->machine().driver_data<cop01_state>();
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE );
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE );
return 0;
}
@@ -140,8 +136,8 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, cop01_state )
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1")
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
AM_RANGE(0x40, 0x43) AM_WRITE_LEGACY(cop01_vreg_w)
- AM_RANGE(0x44, 0x44) AM_WRITE_LEGACY(cop01_sound_command_w)
- AM_RANGE(0x45, 0x45) AM_WRITE_LEGACY(cop01_irq_ack_w) /* ? */
+ AM_RANGE(0x44, 0x44) AM_WRITE(cop01_sound_command_w)
+ AM_RANGE(0x45, 0x45) AM_WRITE(cop01_irq_ack_w) /* ? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( mightguy_io_map, AS_IO, 8, cop01_state )
@@ -152,13 +148,13 @@ static ADDRESS_MAP_START( mightguy_io_map, AS_IO, 8, cop01_state )
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1")
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
AM_RANGE(0x40, 0x43) AM_WRITE_LEGACY(cop01_vreg_w)
- AM_RANGE(0x44, 0x44) AM_WRITE_LEGACY(cop01_sound_command_w)
- AM_RANGE(0x45, 0x45) AM_WRITE_LEGACY(cop01_irq_ack_w) /* ? */
+ AM_RANGE(0x44, 0x44) AM_WRITE(cop01_sound_command_w)
+ AM_RANGE(0x45, 0x45) AM_WRITE(cop01_irq_ack_w) /* ? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cop01_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x8000) AM_READ_LEGACY(cop01_sound_irq_ack_w)
+ AM_RANGE(0x8000, 0x8000) AM_READ(cop01_sound_irq_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM
ADDRESS_MAP_END
@@ -167,15 +163,14 @@ static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, cop01_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
AM_RANGE(0x04, 0x05) AM_DEVWRITE_LEGACY("ay3", ay8910_address_data_w)
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(cop01_sound_command_r)
+ AM_RANGE(0x06, 0x06) AM_READ(cop01_sound_command_r)
ADDRESS_MAP_END
/* this just gets some garbage out of the YM3526 */
-static READ8_HANDLER( kludge )
+READ8_MEMBER(cop01_state::kludge)
{
- cop01_state *state = space->machine().driver_data<cop01_state>();
- return state->m_timer++;
+ return m_timer++;
}
static ADDRESS_MAP_START( mightguy_audio_io_map, AS_IO, 8, cop01_state )
@@ -183,8 +178,8 @@ static ADDRESS_MAP_START( mightguy_audio_io_map, AS_IO, 8, cop01_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3526_w)
AM_RANGE(0x02, 0x02) AM_WRITENOP /* 1412M2? */
AM_RANGE(0x03, 0x03) AM_WRITENOP /* 1412M2? */
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(kludge) /* 1412M2? */
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(cop01_sound_command_r)
+ AM_RANGE(0x03, 0x03) AM_READ(kludge) /* 1412M2? */
+ AM_RANGE(0x06, 0x06) AM_READ(cop01_sound_command_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index e2a0a2170d1..3e4b7c86f6a 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -79,18 +79,17 @@ static PALETTE_INIT( copsnrob )
*
*************************************/
-static READ8_HANDLER( copsnrob_misc_r )
+READ8_MEMBER(copsnrob_state::copsnrob_misc_r)
{
- return input_port_read(space->machine(), "IN0") & 0x80;
+ return input_port_read(machine(), "IN0") & 0x80;
}
-static WRITE8_HANDLER( copsnrob_misc2_w )
+WRITE8_MEMBER(copsnrob_state::copsnrob_misc2_w)
{
- copsnrob_state *state = space->machine().driver_data<copsnrob_state>();
- state->m_misc = data & 0x7f;
+ m_misc = data & 0x7f;
/* Multi Player Start */
- set_led_status(space->machine(), 1, !((data >> 6) & 0x01));
+ set_led_status(machine(), 1, !((data >> 6) & 0x01));
}
@@ -114,8 +113,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, copsnrob_state )
AM_RANGE(0x0c00, 0x0fff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
// AM_RANGE(0x1000, 0x1003) AM_WRITENOP
// AM_RANGE(0x1000, 0x1000) AM_READ_PORT("IN0")
- AM_RANGE(0x1000, 0x1000) AM_READ_LEGACY(copsnrob_misc_r)
- AM_RANGE(0x1000, 0x1000) AM_WRITE_LEGACY(copsnrob_misc2_w)
+ AM_RANGE(0x1000, 0x1000) AM_READ(copsnrob_misc_r)
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(copsnrob_misc2_w)
AM_RANGE(0x1002, 0x1002) AM_READ_PORT("CTRL1")
AM_RANGE(0x1006, 0x1006) AM_READ_PORT("CTRL2")
AM_RANGE(0x100a, 0x100a) AM_READ_PORT("CTRL3")
diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c
index 6f4ee1962db..f2fe1e3da26 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -38,9 +38,8 @@ a physical DSW B but only read when SWA:3,4 are both set to OFF. Currently,
/* Schematics show 12 triggers for discrete sound circuits */
-static WRITE8_HANDLER( panic_sound_output_w )
+WRITE8_MEMBER(cosmic_state::panic_sound_output_w)
{
- cosmic_state *state = space->machine().driver_data<cosmic_state>();
/* Sound Enable / Disable */
if (offset == 11)
@@ -48,59 +47,59 @@ static WRITE8_HANDLER( panic_sound_output_w )
int count;
if (data == 0)
for (count = 0; count < 9; count++)
- state->m_samples->stop(count);
+ m_samples->stop(count);
- state->m_sound_enabled = data;
+ m_sound_enabled = data;
}
- if (state->m_sound_enabled)
+ if (m_sound_enabled)
{
switch (offset)
{
- case 0: if (data) state->m_samples->start(0, 0); break; /* Walk */
- case 1: if (data) state->m_samples->start(0, 5); break; /* Enemy Die 1 */
+ case 0: if (data) m_samples->start(0, 0); break; /* Walk */
+ case 1: if (data) m_samples->start(0, 5); break; /* Enemy Die 1 */
case 2: if (data) /* Drop 1 */
{
- if (!state->m_samples->playing(1))
+ if (!m_samples->playing(1))
{
- state->m_samples->stop(2);
- state->m_samples->start(1, 3);
+ m_samples->stop(2);
+ m_samples->start(1, 3);
}
}
else
- state->m_samples->stop(1);
+ m_samples->stop(1);
break;
- case 3: if (data && !state->m_samples->playing(6)) /* Oxygen */
- state->m_samples->start(6, 9, true);
+ case 3: if (data && !m_samples->playing(6)) /* Oxygen */
+ m_samples->start(6, 9, true);
break;
case 4: break; /* Drop 2 */
- case 5: if (data) state->m_samples->start(0, 5); break; /* Enemy Die 2 (use same sample as 1) */
- case 6: if (data && !state->m_samples->playing(1) && !state->m_samples->playing(3)) /* Hang */
- state->m_samples->start(2, 2);
+ case 5: if (data) m_samples->start(0, 5); break; /* Enemy Die 2 (use same sample as 1) */
+ case 6: if (data && !m_samples->playing(1) && !m_samples->playing(3)) /* Hang */
+ m_samples->start(2, 2);
break;
case 7: if (data) /* Escape */
{
- state->m_samples->stop(2);
- state->m_samples->start(3, 4);
+ m_samples->stop(2);
+ m_samples->start(3, 4);
}
else
- state->m_samples->stop(3);
+ m_samples->stop(3);
break;
- case 8: if (data) state->m_samples->start(0, 1); break; /* Stairs */
+ case 8: if (data) m_samples->start(0, 1); break; /* Stairs */
case 9: if (data) /* Extend */
- state->m_samples->start(4, 8);
+ m_samples->start(4, 8);
else
- state->m_samples->stop(4);
+ m_samples->stop(4);
break;
- case 10: dac_data_w(state->m_dac, data); break;/* Bonus */
- case 15: if (data) state->m_samples->start(0, 6); break; /* Player Die */
- case 16: if (data) state->m_samples->start(5, 7); break; /* Enemy Laugh */
- case 17: if (data) state->m_samples->start(0, 10); break; /* Coin - Not triggered by software */
+ case 10: dac_data_w(m_dac, data); break;/* Bonus */
+ case 15: if (data) m_samples->start(0, 6); break; /* Player Die */
+ case 16: if (data) m_samples->start(5, 7); break; /* Enemy Laugh */
+ case 17: if (data) m_samples->start(0, 10); break; /* Coin - Not triggered by software */
}
}
@@ -109,27 +108,26 @@ static WRITE8_HANDLER( panic_sound_output_w )
#endif
}
-static WRITE8_HANDLER( panic_sound_output2_w )
+WRITE8_MEMBER(cosmic_state::panic_sound_output2_w)
{
panic_sound_output_w(space, offset + 15, data);
}
-static WRITE8_HANDLER( cosmicg_output_w )
+WRITE8_MEMBER(cosmic_state::cosmicg_output_w)
{
- cosmic_state *state = space->machine().driver_data<cosmic_state>();
/* Sound Enable / Disable */
if (offset == 12)
{
int count;
- state->m_sound_enabled = data;
+ m_sound_enabled = data;
if (data == 0)
for (count = 0; count < 9; count++)
- state->m_samples->stop(count);
+ m_samples->stop(count);
}
- if (state->m_sound_enabled)
+ if (m_sound_enabled)
{
switch (offset)
{
@@ -137,38 +135,38 @@ static WRITE8_HANDLER( cosmicg_output_w )
/* as other cosmic series games, but it never seems to */
/* be used for anything. It is implemented for sake of */
/* completness. Maybe it plays a tune if you win ? */
- case 1: dac_data_w(state->m_dac, -data); break;
- case 2: if (data) state->m_samples->start(0, state->m_march_select); break; /* March Sound */
- case 3: state->m_march_select = (state->m_march_select & 0xfe) | data; break;
- case 4: state->m_march_select = (state->m_march_select & 0xfd) | (data << 1); break;
- case 5: state->m_march_select = (state->m_march_select & 0xfb) | (data << 2); break;
+ case 1: dac_data_w(m_dac, -data); break;
+ case 2: if (data) m_samples->start(0, m_march_select); break; /* March Sound */
+ case 3: m_march_select = (m_march_select & 0xfe) | data; break;
+ case 4: m_march_select = (m_march_select & 0xfd) | (data << 1); break;
+ case 5: m_march_select = (m_march_select & 0xfb) | (data << 2); break;
case 6: if (data) /* Killer Attack (crawly thing at bottom of screen) */
- state->m_samples->start(1, 8, true);
+ m_samples->start(1, 8, true);
else
- state->m_samples->stop(1);
+ m_samples->stop(1);
break;
case 7: if (data) /* Bonus Chance & Got Bonus */
{
- state->m_samples->stop(4);
- state->m_samples->start(4, 10);
+ m_samples->stop(4);
+ m_samples->start(4, 10);
}
break;
case 8: if (data)
{
- if (!state->m_samples->playing(4)) state->m_samples->start(4, 9, true);
+ if (!m_samples->playing(4)) m_samples->start(4, 9, true);
}
else
- state->m_samples->stop(4);
+ m_samples->stop(4);
break;
- case 9: if (data) state->m_samples->start(3, 11); break; /* Got Ship */
+ case 9: if (data) m_samples->start(3, 11); break; /* Got Ship */
// case 11: watchdog_reset_w(0, 0); break; /* Watchdog */
- case 13: if (data) state->m_samples->start(8, 13 - state->m_gun_die_select); break; /* Got Monster / Gunshot */
- case 14: state->m_gun_die_select = data; break;
- case 15: if (data) state->m_samples->start(5, 14); break; /* Coin Extend (extra base) */
+ case 13: if (data) m_samples->start(8, 13 - m_gun_die_select); break; /* Got Monster / Gunshot */
+ case 14: m_gun_die_select = data; break;
+ case 15: if (data) m_samples->start(5, 14); break; /* Coin Extend (extra base) */
}
}
@@ -178,9 +176,8 @@ static WRITE8_HANDLER( cosmicg_output_w )
}
-static WRITE8_HANDLER( cosmica_sound_output_w )
+WRITE8_MEMBER(cosmic_state::cosmica_sound_output_w)
{
- cosmic_state *state = space->machine().driver_data<cosmic_state>();
/* Sound Enable / Disable */
if (offset == 11)
@@ -188,119 +185,119 @@ static WRITE8_HANDLER( cosmica_sound_output_w )
int count;
if (data == 0)
for (count = 0; count < 12; count++)
- state->m_samples->stop(count);
+ m_samples->stop(count);
else
{
- state->m_samples->start(0, 0, true); /*Background Noise*/
+ m_samples->start(0, 0, true); /*Background Noise*/
}
- state->m_sound_enabled = data;
+ m_sound_enabled = data;
}
- if (state->m_sound_enabled)
+ if (m_sound_enabled)
{
switch (offset)
{
- case 0: if (data) state->m_samples->start(1, 2); break; /*Dive Bombing Type A*/
+ case 0: if (data) m_samples->start(1, 2); break; /*Dive Bombing Type A*/
case 2: /*Dive Bombing Type B (Main Control)*/
if (data)
{
- switch (state->m_dive_bomb_b_select)
+ switch (m_dive_bomb_b_select)
{
case 2:
- if (state->m_samples->playing(2))
+ if (m_samples->playing(2))
{
- state->m_samples->stop(2);
- state->m_samples->start(2, 3); break;
+ m_samples->stop(2);
+ m_samples->start(2, 3); break;
}
else
- state->m_samples->start(2, 3); break;
+ m_samples->start(2, 3); break;
case 3:
- if (state->m_samples->playing(3))
+ if (m_samples->playing(3))
{
- state->m_samples->stop(3);
- state->m_samples->start(3, 4); break;
+ m_samples->stop(3);
+ m_samples->start(3, 4); break;
}
else
- state->m_samples->start(3, 4); break;
+ m_samples->start(3, 4); break;
case 4:
- if (state->m_samples->playing(4))
+ if (m_samples->playing(4))
{
- state->m_samples->stop(4);
- state->m_samples->start(4, 5); break;
+ m_samples->stop(4);
+ m_samples->start(4, 5); break;
}
else
- state->m_samples->start(4, 5); break;
+ m_samples->start(4, 5); break;
case 5:
- if (state->m_samples->playing(5))
+ if (m_samples->playing(5))
{
- state->m_samples->stop(5);
- state->m_samples->start(5, 6); break;
+ m_samples->stop(5);
+ m_samples->start(5, 6); break;
}
else
- state->m_samples->start(5, 6); break;
+ m_samples->start(5, 6); break;
case 6:
- if (state->m_samples->playing(6))
+ if (m_samples->playing(6))
{
- state->m_samples->stop(6);
- state->m_samples->start(6, 7); break;
+ m_samples->stop(6);
+ m_samples->start(6, 7); break;
}
else
- state->m_samples->start(6, 7); break;
+ m_samples->start(6, 7); break;
case 7:
- if (state->m_samples->playing(7))
+ if (m_samples->playing(7))
{
- state->m_samples->stop(7);
- state->m_samples->start(7, 8); break;
+ m_samples->stop(7);
+ m_samples->start(7, 8); break;
}
else
- state->m_samples->start(7, 8); break;
+ m_samples->start(7, 8); break;
}
}
case 3: /*Dive Bombing Type B (G.S.B)*/
if (data)
- state->m_dive_bomb_b_select |= 0x04;
+ m_dive_bomb_b_select |= 0x04;
else
- state->m_dive_bomb_b_select &= 0xfb;
+ m_dive_bomb_b_select &= 0xfb;
break;
case 4: /*Dive Bombing Type B (M.S.B)*/
if (data)
- state->m_dive_bomb_b_select |= 0x02;
+ m_dive_bomb_b_select |= 0x02;
else
- state->m_dive_bomb_b_select &= 0xfd;
+ m_dive_bomb_b_select &= 0xfd;
break;
case 5: /*Dive Bombing Type B (L.S.B)*/
if (data)
- state->m_dive_bomb_b_select |= 0x01;
+ m_dive_bomb_b_select |= 0x01;
else
- state->m_dive_bomb_b_select &= 0xfe;
+ m_dive_bomb_b_select &= 0xfe;
break;
- case 6: if (data) state->m_samples->start(8, 9); break; /*Fire Control*/
+ case 6: if (data) m_samples->start(8, 9); break; /*Fire Control*/
- case 7: if (data) state->m_samples->start(9, 10); break; /*Small Explosion*/
+ case 7: if (data) m_samples->start(9, 10); break; /*Small Explosion*/
- case 8: if (data) state->m_samples->start(10, 11); break; /*Loud Explosion*/
+ case 8: if (data) m_samples->start(10, 11); break; /*Loud Explosion*/
case 9:
if (data)
- state->m_samples->start(11, 1, true);
+ m_samples->start(11, 1, true);
else
- state->m_samples->stop(11);
+ m_samples->stop(11);
break; /*Extend Sound control*/
- case 12: if (data) state->m_samples->start(11,12); break; /*Insert Coin*/
+ case 12: if (data) m_samples->start(11,12); break; /*Insert Coin*/
}
}
@@ -310,29 +307,29 @@ static WRITE8_HANDLER( cosmica_sound_output_w )
}
-static READ8_HANDLER( cosmica_pixel_clock_r )
+READ8_MEMBER(cosmic_state::cosmica_pixel_clock_r)
{
- return (space->machine().primary_screen->vpos() >> 2) & 0x3f;
+ return (machine().primary_screen->vpos() >> 2) & 0x3f;
}
-static READ8_HANDLER( cosmicg_port_0_r )
+READ8_MEMBER(cosmic_state::cosmicg_port_0_r)
{
/* The top four address lines from the CRTC are bits 0-3 */
- return (input_port_read(space->machine(), "IN0") & 0xf0) | ((space->machine().primary_screen->vpos() & 0xf0) >> 4);
+ return (input_port_read(machine(), "IN0") & 0xf0) | ((machine().primary_screen->vpos() & 0xf0) >> 4);
}
-static READ8_HANDLER( magspot_coinage_dip_r )
+READ8_MEMBER(cosmic_state::magspot_coinage_dip_r)
{
- return (input_port_read_safe(space->machine(), "DSW", 0) & (1 << (7 - offset))) ? 0 : 1;
+ return (input_port_read_safe(machine(), "DSW", 0) & (1 << (7 - offset))) ? 0 : 1;
}
/* Has 8 way joystick, remap combinations to missing directions */
-static READ8_HANDLER( nomnlnd_port_0_1_r )
+READ8_MEMBER(cosmic_state::nomnlnd_port_0_1_r)
{
- int control = input_port_read(space->machine(), offset ? "IN1" : "IN0");
- int fire = input_port_read(space->machine(), "IN3");
+ int control = input_port_read(machine(), offset ? "IN1" : "IN0");
+ int fire = input_port_read(machine(), "IN3");
/* If firing - stop tank */
if ((fire & 0xc0) == 0) return 0xff;
@@ -348,9 +345,9 @@ static READ8_HANDLER( nomnlnd_port_0_1_r )
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(cosmic_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data & 0x80);
+ flip_screen_set(machine(), data & 0x80);
}
@@ -362,10 +359,10 @@ static ADDRESS_MAP_START( panic_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x6801, 0x6801) AM_READ_PORT("P2")
AM_RANGE(0x6802, 0x6802) AM_READ_PORT("DSW")
AM_RANGE(0x6803, 0x6803) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x7000, 0x700b) AM_WRITE_LEGACY(panic_sound_output_w)
+ AM_RANGE(0x7000, 0x700b) AM_WRITE(panic_sound_output_w)
AM_RANGE(0x700c, 0x700e) AM_WRITE_LEGACY(cosmic_color_register_w)
- AM_RANGE(0x700f, 0x700f) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0x7800, 0x7801) AM_WRITE_LEGACY(panic_sound_output2_w)
+ AM_RANGE(0x700f, 0x700f) AM_WRITE(flip_screen_w)
+ AM_RANGE(0x7800, 0x7801) AM_WRITE(panic_sound_output2_w)
ADDRESS_MAP_END
@@ -376,10 +373,10 @@ static ADDRESS_MAP_START( cosmica_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x6800, 0x6800) AM_READ_PORT("P1")
AM_RANGE(0x6801, 0x6801) AM_READ_PORT("P2")
AM_RANGE(0x6802, 0x6802) AM_READ_PORT("DSW")
- AM_RANGE(0x6803, 0x6803) AM_READ_LEGACY(cosmica_pixel_clock_r)
- AM_RANGE(0x7000, 0x700b) AM_WRITE_LEGACY(cosmica_sound_output_w)
+ AM_RANGE(0x6803, 0x6803) AM_READ(cosmica_pixel_clock_r)
+ AM_RANGE(0x7000, 0x700b) AM_WRITE(cosmica_sound_output_w)
AM_RANGE(0x700c, 0x700d) AM_WRITE_LEGACY(cosmic_color_register_w)
- AM_RANGE(0x700f, 0x700f) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0x700f, 0x700f) AM_WRITE(flip_screen_w)
ADDRESS_MAP_END
@@ -389,20 +386,20 @@ static ADDRESS_MAP_START( cosmicg_map, AS_PROGRAM, 8, cosmic_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( cosmicg_io_map, AS_IO, 8, cosmic_state )
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(cosmicg_port_0_r)
+ AM_RANGE(0x00, 0x00) AM_READ(cosmicg_port_0_r)
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
- AM_RANGE(0x00, 0x15) AM_WRITE_LEGACY(cosmicg_output_w)
+ AM_RANGE(0x00, 0x15) AM_WRITE(cosmicg_output_w)
AM_RANGE(0x16, 0x17) AM_WRITE_LEGACY(cosmic_color_register_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( magspot_map, AS_PROGRAM, 8, cosmic_state )
AM_RANGE(0x0000, 0x2fff) AM_ROM
- AM_RANGE(0x3800, 0x3807) AM_READ_LEGACY(magspot_coinage_dip_r)
+ AM_RANGE(0x3800, 0x3807) AM_READ(magspot_coinage_dip_r)
AM_RANGE(0x4000, 0x401f) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x4800, 0x4800) AM_DEVWRITE_LEGACY("dac", dac_w)
AM_RANGE(0x480c, 0x480d) AM_WRITE_LEGACY(cosmic_color_register_w)
- AM_RANGE(0x480f, 0x480f) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0x480f, 0x480f) AM_WRITE(flip_screen_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0")
AM_RANGE(0x5001, 0x5001) AM_READ_PORT("IN1")
AM_RANGE(0x5002, 0x5002) AM_READ_PORT("IN2")
@@ -414,7 +411,8 @@ ADDRESS_MAP_END
static INPUT_CHANGED( panic_coin_inserted )
{
- panic_sound_output_w(field.machine().device("maincpu")->memory().space(AS_PROGRAM), 17, newval == 0);
+ cosmic_state *state = field.machine().driver_data<cosmic_state>();
+ state->panic_sound_output_w(*field.machine().device("maincpu")->memory().space(AS_PROGRAM), 17, newval == 0);
}
static INPUT_PORTS_START( panic )
@@ -1551,8 +1549,9 @@ static DRIVER_INIT( devzone )
static DRIVER_INIT( nomnlnd )
{
+ cosmic_state *state = machine.driver_data<cosmic_state>();
device_t *dac = machine.device("dac");
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x5000, 0x5001, FUNC(nomnlnd_port_0_1_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x5000, 0x5001, read8_delegate(FUNC(cosmic_state::nomnlnd_port_0_1_r),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x4800, 0x4800);
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x4807, 0x4807, FUNC(cosmic_background_enable_w));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*dac, 0x480a, 0x480a, FUNC(dac_w));
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index 11fef0c9108..aac32d26dd8 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -251,41 +251,37 @@ READ16_HANDLER( cps1_dsw_r )
return (in << 8) | 0xff;
}
-static READ16_HANDLER( cps1_hack_dsw_r )
+READ16_MEMBER(cps_state::cps1_hack_dsw_r)
{
static const char *const dswname[] = { "IN0", "DSWA", "DSWB", "DSWC" };
- int in = input_port_read(space->machine(), dswname[offset]);
+ int in = input_port_read(machine(), dswname[offset]);
return (in << 8) | in;
}
-static READ16_HANDLER( forgottn_dial_0_r )
+READ16_MEMBER(cps_state::forgottn_dial_0_r)
{
- cps_state *state = space->machine().driver_data<cps_state>();
- return ((input_port_read(space->machine(), "DIAL0") - state->m_dial[0]) >> (8 * offset)) & 0xff;
+ return ((input_port_read(machine(), "DIAL0") - m_dial[0]) >> (8 * offset)) & 0xff;
}
-static READ16_HANDLER( forgottn_dial_1_r )
+READ16_MEMBER(cps_state::forgottn_dial_1_r)
{
- cps_state *state = space->machine().driver_data<cps_state>();
- return ((input_port_read(space->machine(), "DIAL1") - state->m_dial[1]) >> (8 * offset)) & 0xff;
+ return ((input_port_read(machine(), "DIAL1") - m_dial[1]) >> (8 * offset)) & 0xff;
}
-static WRITE16_HANDLER( forgottn_dial_0_reset_w )
+WRITE16_MEMBER(cps_state::forgottn_dial_0_reset_w)
{
- cps_state *state = space->machine().driver_data<cps_state>();
- state->m_dial[0] = input_port_read(space->machine(), "DIAL0");
+ m_dial[0] = input_port_read(machine(), "DIAL0");
}
-static WRITE16_HANDLER( forgottn_dial_1_reset_w )
+WRITE16_MEMBER(cps_state::forgottn_dial_1_reset_w)
{
- cps_state *state = space->machine().driver_data<cps_state>();
- state->m_dial[1] = input_port_read(space->machine(), "DIAL1");
+ m_dial[1] = input_port_read(machine(), "DIAL1");
}
-static WRITE8_HANDLER( cps1_snd_bankswitch_w )
+WRITE8_MEMBER(cps_state::cps1_snd_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
}
static WRITE8_DEVICE_HANDLER( cps1_oki_pin7_w )
@@ -293,13 +289,13 @@ static WRITE8_DEVICE_HANDLER( cps1_oki_pin7_w )
downcast<okim6295_device *>(device)->set_pin7(data & 1);
}
-static WRITE16_HANDLER( cps1_soundlatch_w )
+WRITE16_MEMBER(cps_state::cps1_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
}
-static WRITE16_HANDLER( cps1_soundlatch2_w )
+WRITE16_MEMBER(cps_state::cps1_soundlatch2_w)
{
if (ACCESSING_BITS_0_7)
soundlatch2_w(space, 0, data & 0xff);
@@ -318,14 +314,14 @@ WRITE16_HANDLER( cps1_coinctrl_w )
}
}
-static WRITE16_HANDLER( cpsq_coinctrl2_w )
+WRITE16_MEMBER(cps_state::cpsq_coinctrl2_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 2, data & 0x01);
- coin_lockout_w(space->machine(), 2, ~data & 0x02);
- coin_counter_w(space->machine(), 3, data & 0x04);
- coin_lockout_w(space->machine(), 3, ~data & 0x08);
+ coin_counter_w(machine(), 2, data & 0x01);
+ coin_lockout_w(machine(), 2, ~data & 0x02);
+ coin_counter_w(machine(), 3, data & 0x04);
+ coin_lockout_w(machine(), 3, ~data & 0x08);
}
}
@@ -350,15 +346,15 @@ static INTERRUPT_GEN( cps1_qsound_interrupt )
}
-static READ16_HANDLER( qsound_rom_r )
+READ16_MEMBER(cps_state::qsound_rom_r)
{
- UINT8 *rom = space->machine().region("user1")->base();
+ UINT8 *rom = machine().region("user1")->base();
if (rom)
return rom[offset] | 0xff00;
else
{
- popmessage("%06x: read sound ROM byte %04x", cpu_get_pc(&space->device()), offset);
+ popmessage("%06x: read sound ROM byte %04x", cpu_get_pc(&space.device()), offset);
return 0;
}
}
@@ -377,31 +373,29 @@ WRITE16_HANDLER( qsound_sharedram1_w )
state->m_qsound_sharedram1[offset] = data;
}
-static READ16_HANDLER( qsound_sharedram2_r )
+READ16_MEMBER(cps_state::qsound_sharedram2_r)
{
- cps_state *state = space->machine().driver_data<cps_state>();
- return state->m_qsound_sharedram2[offset] | 0xff00;
+ return m_qsound_sharedram2[offset] | 0xff00;
}
-static WRITE16_HANDLER( qsound_sharedram2_w )
+WRITE16_MEMBER(cps_state::qsound_sharedram2_w)
{
- cps_state *state = space->machine().driver_data<cps_state>();
if (ACCESSING_BITS_0_7)
- state->m_qsound_sharedram2[offset] = data;
+ m_qsound_sharedram2[offset] = data;
}
-static WRITE8_HANDLER( qsound_banksw_w )
+WRITE8_MEMBER(cps_state::qsound_banksw_w)
{
/* Z80 bank register for music note data. It's odd that it isn't encrypted though. */
int bank = data & 0x0f;
- if ((0x10000 + (bank * 0x4000)) >= space->machine().region("audiocpu")->bytes())
+ if ((0x10000 + (bank * 0x4000)) >= machine().region("audiocpu")->bytes())
{
logerror("WARNING: Q sound bank overflow (%02x)\n", data);
bank = 0;
}
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
}
@@ -553,8 +547,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cps_state )
/* CPS-B custom is mapped by the PAL IOB2 on the B-board. SF2 revision "E" World and USA 910228 has it a a different
address, see DRIVER_INIT */
AM_RANGE(0x800140, 0x80017f) AM_READWRITE_LEGACY(cps1_cps_b_r, cps1_cps_b_w) AM_BASE(m_cps_b_regs)
- AM_RANGE(0x800180, 0x800187) AM_WRITE_LEGACY(cps1_soundlatch_w) /* Sound command */
- AM_RANGE(0x800188, 0x80018f) AM_WRITE_LEGACY(cps1_soundlatch2_w) /* Sound timer fade */
+ AM_RANGE(0x800180, 0x800187) AM_WRITE(cps1_soundlatch_w) /* Sound command */
+ AM_RANGE(0x800188, 0x80018f) AM_WRITE(cps1_soundlatch2_w) /* Sound timer fade */
AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE_LEGACY(cps1_gfxram_w) AM_BASE_SIZE(m_gfxram, m_gfxram_size) /* SF2CE executes code from here */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -588,7 +582,7 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, cps_state )
AM_RANGE(0xd000, 0xd7ff) AM_RAM
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_LEGACY(cps1_snd_bankswitch_w)
+ 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(0xf008, 0xf008) AM_READ_LEGACY(soundlatch_r) /* Sound command */
AM_RANGE(0xf00a, 0xf00a) AM_READ_LEGACY(soundlatch2_r) /* Sound timer fade */
@@ -602,13 +596,13 @@ static ADDRESS_MAP_START( qsound_main_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x800100, 0x80013f) AM_WRITE_LEGACY(cps1_cps_a_w) AM_BASE(m_cps_a_regs) /* CPS-A custom */
AM_RANGE(0x800140, 0x80017f) AM_READWRITE_LEGACY(cps1_cps_b_r, cps1_cps_b_w) AM_BASE(m_cps_b_regs) /* CPS-B custom (mapped by LWIO/IOB1 PAL on B-board) */
AM_RANGE(0x900000, 0x92ffff) AM_RAM_WRITE_LEGACY(cps1_gfxram_w) AM_BASE_SIZE(m_gfxram, m_gfxram_size) /* SF2CE executes code from here */
- AM_RANGE(0xf00000, 0xf0ffff) AM_READ_LEGACY(qsound_rom_r) /* Slammasters protection */
+ AM_RANGE(0xf00000, 0xf0ffff) AM_READ(qsound_rom_r) /* Slammasters protection */
AM_RANGE(0xf18000, 0xf19fff) AM_READWRITE_LEGACY(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
AM_RANGE(0xf1c000, 0xf1c001) AM_READ_PORT("IN2") /* Player 3 controls (later games) */
AM_RANGE(0xf1c002, 0xf1c003) AM_READ_PORT("IN3") /* Player 4 controls ("Muscle Bombers") */
- AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE_LEGACY(cpsq_coinctrl2_w) /* Coin control2 (later games) */
+ AM_RANGE(0xf1c004, 0xf1c005) AM_WRITE(cpsq_coinctrl2_w) /* Coin control2 (later games) */
AM_RANGE(0xf1c006, 0xf1c007) AM_READ_PORT("EEPROMIN") AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE_LEGACY(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
+ AM_RANGE(0xf1e000, 0xf1ffff) AM_READWRITE(qsound_sharedram2_r, qsound_sharedram2_w) /* Q RAM */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -617,7 +611,7 @@ ADDRESS_MAP_START( qsound_sub_map, AS_PROGRAM, 8, cps_state ) // used by cps2.c
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked (contains music data) */
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(m_qsound_sharedram1)
AM_RANGE(0xd000, 0xd002) AM_DEVWRITE_LEGACY("qsound", qsound_w)
- AM_RANGE(0xd003, 0xd003) AM_WRITE_LEGACY(qsound_banksw_w)
+ AM_RANGE(0xd003, 0xd003) AM_WRITE(qsound_banksw_w)
AM_RANGE(0xd007, 0xd007) AM_DEVREAD_LEGACY("qsound", qsound_r)
AM_RANGE(0xf000, 0xffff) AM_RAM AM_BASE(m_qsound_sharedram2)
ADDRESS_MAP_END
@@ -10707,10 +10701,10 @@ static DRIVER_INIT( forgottn )
/* Forgotten Worlds has a NEC uPD4701AC on the B-board handling dial inputs from the CN-MOWS connector. */
/* The memory mapping is handled by PAL LWIO */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x800040, 0x800041, FUNC(forgottn_dial_0_reset_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x800048, 0x800049, FUNC(forgottn_dial_1_reset_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x800052, 0x800055, FUNC(forgottn_dial_0_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x80005a, 0x80005d, FUNC(forgottn_dial_1_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x800040, 0x800041, write16_delegate(FUNC(cps_state::forgottn_dial_0_reset_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x800048, 0x800049, write16_delegate(FUNC(cps_state::forgottn_dial_1_reset_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x800052, 0x800055, read16_delegate(FUNC(cps_state::forgottn_dial_0_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x80005a, 0x80005d, read16_delegate(FUNC(cps_state::forgottn_dial_1_r),state));
state->save_item(NAME(state->m_dial));
@@ -10741,7 +10735,8 @@ static DRIVER_INIT( sf2thndr )
static DRIVER_INIT( sf2hack )
{
/* some SF2 hacks have some inputs wired to the LSB instead of MSB */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x800018, 0x80001f, FUNC(cps1_hack_dsw_r));
+ cps_state *state = machine.driver_data<cps_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x800018, 0x80001f, read16_delegate(FUNC(cps_state::cps1_hack_dsw_r),state));
DRIVER_INIT_CALL(cps1);
}
@@ -10803,7 +10798,7 @@ static DRIVER_INIT( pang3 )
DRIVER_INIT_CALL(pang3b);
}
-static READ16_HANDLER( sf2mdt_r )
+READ16_MEMBER(cps_state::sf2mdt_r)
{
return 0xffff;
}
@@ -10824,11 +10819,12 @@ static DRIVER_INIT( sf2mdt )
rom[i + 3] = rom[i + 6];
rom[i + 6] = tmp;
}
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x70c01a, 0x70c01b, FUNC(sf2mdt_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x70c01c, 0x70c01d, FUNC(sf2mdt_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x70c01e, 0x70c01f, FUNC(sf2mdt_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x70c010, 0x70c011, FUNC(sf2mdt_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x70c018, 0x70c019, FUNC(sf2mdt_r));
+ cps_state *state = machine.driver_data<cps_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x70c01a, 0x70c01b, read16_delegate(FUNC(cps_state::sf2mdt_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x70c01c, 0x70c01d, read16_delegate(FUNC(cps_state::sf2mdt_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x70c01e, 0x70c01f, read16_delegate(FUNC(cps_state::sf2mdt_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x70c010, 0x70c011, read16_delegate(FUNC(cps_state::sf2mdt_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x70c018, 0x70c019, read16_delegate(FUNC(cps_state::sf2mdt_r),state));
DRIVER_INIT_CALL(cps1);
}
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index 767c373471e..4d069418296 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -1248,35 +1248,32 @@ static SCREEN_UPDATE_RGB32(cps3)
return 0;
}
-static READ32_HANDLER( cps3_ssram_r )
+READ32_MEMBER(cps3_state::cps3_ssram_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if (offset>0x8000/4)
- return LITTLE_ENDIANIZE_INT32(state->m_ss_ram[offset]);
+ return LITTLE_ENDIANIZE_INT32(m_ss_ram[offset]);
else
- return state->m_ss_ram[offset];
+ return m_ss_ram[offset];
}
-static WRITE32_HANDLER( cps3_ssram_w )
+WRITE32_MEMBER(cps3_state::cps3_ssram_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if (offset>0x8000/4)
{
// we only want to endian-flip the character data, the tilemap info is fine
data = LITTLE_ENDIANIZE_INT32(data);
mem_mask = LITTLE_ENDIANIZE_INT32(mem_mask);
- gfx_element_mark_dirty(space->machine().gfx[0], offset/16);
+ gfx_element_mark_dirty(machine().gfx[0], offset/16);
}
- COMBINE_DATA(&state->m_ss_ram[offset]);
+ COMBINE_DATA(&m_ss_ram[offset]);
}
-static WRITE32_HANDLER( cps3_0xc0000000_ram_w )
+WRITE32_MEMBER(cps3_state::cps3_0xc0000000_ram_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- COMBINE_DATA( &state->m_0xc0000000_ram[offset] );
+ COMBINE_DATA( &m_0xc0000000_ram[offset] );
// store a decrypted copy
- state->m_0xc0000000_ram_decrypted[offset] = state->m_0xc0000000_ram[offset]^cps3_mask(offset*4+0xc0000000, state->m_key1, state->m_key2);
+ m_0xc0000000_ram_decrypted[offset] = m_0xc0000000_ram[offset]^cps3_mask(offset*4+0xc0000000, m_key1, m_key2);
}
@@ -1317,15 +1314,14 @@ DIRECT_UPDATE_HANDLER( cps3_direct_handler )
}
-static WRITE32_HANDLER( cram_bank_w )
+WRITE32_MEMBER(cps3_state::cram_bank_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if (ACCESSING_BITS_0_7)
{
// this seems to be related to accesses to the 0x04100000 region
- if (state->m_cram_bank != data)
+ if (m_cram_bank != data)
{
- state->m_cram_bank = data;
+ m_cram_bank = data;
//if(data&0xfffffff0)
//bank_w 00000000, ffff0000
//bank_w 00000001, ffff0000
@@ -1347,34 +1343,31 @@ static WRITE32_HANDLER( cram_bank_w )
}
}
-static READ32_HANDLER( cram_data_r )
+READ32_MEMBER(cps3_state::cram_data_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- UINT32 fulloffset = (((state->m_cram_bank&0x7)*0x100000)/4) + offset;
+ UINT32 fulloffset = (((m_cram_bank&0x7)*0x100000)/4) + offset;
- return LITTLE_ENDIANIZE_INT32(state->m_char_ram[fulloffset]);
+ return LITTLE_ENDIANIZE_INT32(m_char_ram[fulloffset]);
}
-static WRITE32_HANDLER( cram_data_w )
+WRITE32_MEMBER(cps3_state::cram_data_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- UINT32 fulloffset = (((state->m_cram_bank&0x7)*0x100000)/4) + offset;
+ UINT32 fulloffset = (((m_cram_bank&0x7)*0x100000)/4) + offset;
mem_mask = LITTLE_ENDIANIZE_INT32(mem_mask);
data = LITTLE_ENDIANIZE_INT32(data);
- COMBINE_DATA(&state->m_char_ram[fulloffset]);
- gfx_element_mark_dirty(space->machine().gfx[1], fulloffset/0x40);
+ COMBINE_DATA(&m_char_ram[fulloffset]);
+ gfx_element_mark_dirty(machine().gfx[1], fulloffset/0x40);
}
/* FLASH ROM ACCESS */
-static READ32_HANDLER( cps3_gfxflash_r )
+READ32_MEMBER(cps3_state::cps3_gfxflash_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
UINT32 result = 0;
- if (state->m_cram_gfxflash_bank&1) offset += 0x200000/4;
+ if (m_cram_gfxflash_bank&1) offset += 0x200000/4;
- fujitsu_29f016a_device *chip0 = state->m_simm[2 + state->m_cram_gfxflash_bank/8][(state->m_cram_gfxflash_bank % 8) & ~1];
- fujitsu_29f016a_device *chip1 = state->m_simm[2 + state->m_cram_gfxflash_bank/8][(state->m_cram_gfxflash_bank % 8) | 1];
+ fujitsu_29f016a_device *chip0 = m_simm[2 + m_cram_gfxflash_bank/8][(m_cram_gfxflash_bank % 8) & ~1];
+ fujitsu_29f016a_device *chip1 = m_simm[2 + m_cram_gfxflash_bank/8][(m_cram_gfxflash_bank % 8) | 1];
if (chip0 == NULL || chip1 == NULL)
return 0xffffffff;
@@ -1401,19 +1394,18 @@ static READ32_HANDLER( cps3_gfxflash_r )
result |= chip1->read( (offset<<1)+0x1 ) << 0;
}
- //printf("read GFX flash chips addr %02x returning %08x mem_mask %08x crambank %08x gfxbank %08x\n", offset*2, result,mem_mask, state->m_cram_bank, state->m_cram_gfxflash_bank );
+ //printf("read GFX flash chips addr %02x returning %08x mem_mask %08x crambank %08x gfxbank %08x\n", offset*2, result,mem_mask, m_cram_bank, m_cram_gfxflash_bank );
return result;
}
-static WRITE32_HANDLER( cps3_gfxflash_w )
+WRITE32_MEMBER(cps3_state::cps3_gfxflash_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
int command;
- if (state->m_cram_gfxflash_bank&1) offset += 0x200000/4;
+ if (m_cram_gfxflash_bank&1) offset += 0x200000/4;
- fujitsu_29f016a_device *chip0 = state->m_simm[2 + state->m_cram_gfxflash_bank/8][(state->m_cram_gfxflash_bank % 8) & ~1];
- fujitsu_29f016a_device *chip1 = state->m_simm[2 + state->m_cram_gfxflash_bank/8][(state->m_cram_gfxflash_bank % 8) | 1];
+ fujitsu_29f016a_device *chip0 = m_simm[2 + m_cram_gfxflash_bank/8][(m_cram_gfxflash_bank % 8) & ~1];
+ fujitsu_29f016a_device *chip1 = m_simm[2 + m_cram_gfxflash_bank/8][(m_cram_gfxflash_bank % 8) | 1];
if (chip0 == NULL || chip1 == NULL)
return;
@@ -1447,11 +1439,11 @@ static WRITE32_HANDLER( cps3_gfxflash_w )
/* make a copy in the linear memory region we actually use for drawing etc. having it stored in interleaved flash roms isnt' very useful */
{
- UINT32* romdata = (UINT32*)state->m_user5region;
+ UINT32* romdata = (UINT32*)m_user5region;
int real_offset = 0;
UINT32 newdata;
- real_offset = ((state->m_cram_gfxflash_bank&0x3e) * 0x200000) + offset*4;
+ real_offset = ((m_cram_gfxflash_bank&0x3e) * 0x200000) + offset*4;
newdata =((chip0->read_raw(((offset*2)&0xfffffffe)+0)<<8) |
(chip0->read_raw(((offset*2)&0xfffffffe)+1)<<24) |
@@ -1501,25 +1493,23 @@ static UINT32 cps3_flashmain_r(address_space *space, int which, UINT32 offset, U
-static READ32_HANDLER( cps3_flash1_r )
+READ32_MEMBER(cps3_state::cps3_flash1_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- UINT32 retvalue = cps3_flashmain_r(space, 0, offset,mem_mask);
+ UINT32 retvalue = cps3_flashmain_r(&space, 0, offset,mem_mask);
- if (state->m_altEncryption) return retvalue;
+ if (m_altEncryption) return retvalue;
- retvalue = retvalue ^ cps3_mask(0x6000000+offset*4, state->m_key1, state->m_key2);
+ retvalue = retvalue ^ cps3_mask(0x6000000+offset*4, m_key1, m_key2);
return retvalue;
}
-static READ32_HANDLER( cps3_flash2_r )
+READ32_MEMBER(cps3_state::cps3_flash2_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- UINT32 retvalue = cps3_flashmain_r(space, 1, offset,mem_mask);
+ UINT32 retvalue = cps3_flashmain_r(&space, 1, offset,mem_mask);
- if (state->m_altEncryption) return retvalue;
+ if (m_altEncryption) return retvalue;
- retvalue = retvalue ^ cps3_mask(0x6800000+offset*4, state->m_key1, state->m_key2);
+ retvalue = retvalue ^ cps3_mask(0x6800000+offset*4, m_key1, m_key2);
return retvalue;
}
@@ -1584,19 +1574,18 @@ static void cps3_flashmain_w(running_machine &machine, int which, UINT32 offset,
}
}
-static WRITE32_HANDLER( cps3_flash1_w )
+WRITE32_MEMBER(cps3_state::cps3_flash1_w)
{
- cps3_flashmain_w(space->machine(),0,offset,data,mem_mask);
+ cps3_flashmain_w(machine(),0,offset,data,mem_mask);
}
-static WRITE32_HANDLER( cps3_flash2_w )
+WRITE32_MEMBER(cps3_state::cps3_flash2_w)
{
- cps3_flashmain_w(space->machine(),1,offset,data,mem_mask);
+ cps3_flashmain_w(machine(),1,offset,data,mem_mask);
}
-static WRITE32_HANDLER( cram_gfxflash_bank_w )
+WRITE32_MEMBER(cps3_state::cram_gfxflash_bank_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if (ACCESSING_BITS_24_31)
{
//printf("cram_gfxflash_bank_w MSB32 %08x\n",data);
@@ -1640,8 +1629,8 @@ static WRITE32_HANDLER( cram_gfxflash_bank_w )
SIMM 7 (Rom 70/71) ** NOT USED (would follow on in sequence tho)
*/
- state->m_cram_gfxflash_bank = (data & 0xffff0000) >> 16;
- state->m_cram_gfxflash_bank-= 0x0002;// as with sound access etc. first 4 meg is 'special' and skipped
+ m_cram_gfxflash_bank = (data & 0xffff0000) >> 16;
+ m_cram_gfxflash_bank-= 0x0002;// as with sound access etc. first 4 meg is 'special' and skipped
}
if (ACCESSING_BITS_0_7)
@@ -1652,23 +1641,23 @@ static WRITE32_HANDLER( cram_gfxflash_bank_w )
}
// this seems to be dma active flags, and maybe vblank... not if it is anything else
-static READ32_HANDLER( cps3_vbl_r )
+READ32_MEMBER(cps3_state::cps3_vbl_r)
{
return 0x00000000;
}
-static READ32_HANDLER( cps3_unk_io_r )
+READ32_MEMBER(cps3_state::cps3_unk_io_r)
{
// warzard will crash before booting if you return anything here
return 0xffffffff;
}
-static READ32_HANDLER( cps3_40C0000_r )
+READ32_MEMBER(cps3_state::cps3_40C0000_r)
{
return 0x00000000;
}
-static READ32_HANDLER( cps3_40C0004_r )
+READ32_MEMBER(cps3_state::cps3_40C0004_r)
{
return 0x00000000;
}
@@ -1676,15 +1665,14 @@ static READ32_HANDLER( cps3_40C0004_r )
/* EEPROM access is a little odd, I think it accesses eeprom through some kind of
additional interface, as these writes aren't normal for the type of eeprom we have */
-static READ32_HANDLER( cps3_eeprom_r )
+READ32_MEMBER(cps3_state::cps3_eeprom_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
int addr = offset*4;
if (addr>=0x100 && addr<=0x17f)
{
- if (ACCESSING_BITS_24_31) state->m_current_eeprom_read = (state->m_eeprom[offset-0x100/4] & 0xffff0000)>>16;
- else state->m_current_eeprom_read = (state->m_eeprom[offset-0x100/4] & 0x0000ffff)>>0;
+ if (ACCESSING_BITS_24_31) m_current_eeprom_read = (m_eeprom[offset-0x100/4] & 0xffff0000)>>16;
+ else m_current_eeprom_read = (m_eeprom[offset-0x100/4] & 0x0000ffff)>>0;
// read word to latch...
return 0x00000000;
}
@@ -1694,8 +1682,8 @@ static READ32_HANDLER( cps3_eeprom_r )
if (ACCESSING_BITS_24_31) return 0;
else
{
- //if(DEBUG_PRINTF) printf("reading %04x from eeprom\n", state->m_current_eeprom_read);
- return state->m_current_eeprom_read;
+ //if(DEBUG_PRINTF) printf("reading %04x from eeprom\n", m_current_eeprom_read);
+ return m_current_eeprom_read;
}
}
else
@@ -1706,15 +1694,14 @@ static READ32_HANDLER( cps3_eeprom_r )
return 0x00000000;
}
-static WRITE32_HANDLER( cps3_eeprom_w )
+WRITE32_MEMBER(cps3_state::cps3_eeprom_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
int addr = offset*4;
if (addr>=0x080 && addr<=0x0ff)
{
offset -= 0x80/4;
- COMBINE_DATA(&state->m_eeprom[offset]);
+ COMBINE_DATA(&m_eeprom[offset]);
// write word to storage
}
@@ -1729,54 +1716,52 @@ static WRITE32_HANDLER( cps3_eeprom_w )
}
-static READ32_HANDLER( cps3_cdrom_r )
+READ32_MEMBER(cps3_state::cps3_cdrom_r)
{
UINT32 retval = 0;
if (ACCESSING_BITS_24_31)
{
- retval |= ((UINT16)wd33c93_r(space,0))<<16;
+ retval |= ((UINT16)wd33c93_r(&space,0))<<16;
}
if (ACCESSING_BITS_0_7)
{
- retval |= (UINT16)wd33c93_r(space,1);
+ retval |= (UINT16)wd33c93_r(&space,1);
}
return retval;
}
-static WRITE32_HANDLER( cps3_cdrom_w )
+WRITE32_MEMBER(cps3_state::cps3_cdrom_w)
{
if (ACCESSING_BITS_24_31)
{
- wd33c93_w(space,0,(data & 0x00ff0000)>>16);
+ wd33c93_w(&space,0,(data & 0x00ff0000)>>16);
}
if (ACCESSING_BITS_0_7)
{
- wd33c93_w(space,1,(data & 0x000000ff)>>0);
+ wd33c93_w(&space,1,(data & 0x000000ff)>>0);
}
}
-static WRITE32_HANDLER( cps3_ss_bank_base_w )
+WRITE32_MEMBER(cps3_state::cps3_ss_bank_base_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
// might be scroll registers or something else..
// used to display bank with 'insert coin' on during sfiii2 attract intro
- COMBINE_DATA(&state->m_ss_bank_base);
+ COMBINE_DATA(&m_ss_bank_base);
// printf("cps3_ss_bank_base_w %08x %08x\n", data, mem_mask);
}
-static WRITE32_HANDLER( cps3_ss_pal_base_w )
+WRITE32_MEMBER(cps3_state::cps3_ss_pal_base_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if(DEBUG_PRINTF) printf ("cps3_ss_pal_base_w %08x %08x\n", data, mem_mask);
if(ACCESSING_BITS_24_31)
{
- state->m_ss_pal_base = (data & 0x00ff0000)>>16;
+ m_ss_pal_base = (data & 0x00ff0000)>>16;
if (data & 0xff000000) printf("ss_pal_base MSB32 upper bits used %04x \n", data);
}
@@ -1790,49 +1775,48 @@ static WRITE32_HANDLER( cps3_ss_pal_base_w )
//<ElSemi> (a word each)
-static WRITE32_HANDLER( cps3_palettedma_w )
+WRITE32_MEMBER(cps3_state::cps3_palettedma_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if (offset==0)
{
- COMBINE_DATA(&state->m_paldma_source);
- state->m_paldma_realsource = (state->m_paldma_source<<1)-0x400000;
+ COMBINE_DATA(&m_paldma_source);
+ m_paldma_realsource = (m_paldma_source<<1)-0x400000;
}
else if (offset==1)
{
- COMBINE_DATA(&state->m_paldma_dest);
+ COMBINE_DATA(&m_paldma_dest);
}
else if (offset==2)
{
- COMBINE_DATA(&state->m_paldma_fade);
+ COMBINE_DATA(&m_paldma_fade);
}
else if (offset==3)
{
- COMBINE_DATA(&state->m_paldma_other2);
+ COMBINE_DATA(&m_paldma_other2);
if (ACCESSING_BITS_24_31)
{
- state->m_paldma_length = (data & 0xffff0000)>>16;
+ m_paldma_length = (data & 0xffff0000)>>16;
}
if (ACCESSING_BITS_0_7)
{
if (data & 0x0002)
{
int i;
- UINT16* src = (UINT16*)state->m_user5region;
- // if(DEBUG_PRINTF) printf("CPS3 pal dma start %08x (real: %08x) dest %08x fade %08x other2 %08x (length %04x)\n", state->m_paldma_source, state->m_paldma_realsource, state->m_paldma_dest, state->m_paldma_fade, state->m_paldma_other2, state->m_paldma_length);
+ UINT16* src = (UINT16*)m_user5region;
+ // if(DEBUG_PRINTF) printf("CPS3 pal dma start %08x (real: %08x) dest %08x fade %08x other2 %08x (length %04x)\n", m_paldma_source, m_paldma_realsource, m_paldma_dest, m_paldma_fade, m_paldma_other2, m_paldma_length);
- for (i=0;i<state->m_paldma_length;i++)
+ for (i=0;i<m_paldma_length;i++)
{
- UINT16 coldata = src[BYTE_XOR_BE(((state->m_paldma_realsource>>1)+i))];
+ UINT16 coldata = src[BYTE_XOR_BE(((m_paldma_realsource>>1)+i))];
- //if (state->m_paldma_fade!=0) printf("%08x\n",state->m_paldma_fade);
+ //if (m_paldma_fade!=0) printf("%08x\n",m_paldma_fade);
- cps3_set_mame_colours(space->machine(), (state->m_paldma_dest+i)^1, coldata, state->m_paldma_fade);
+ cps3_set_mame_colours(machine(), (m_paldma_dest+i)^1, coldata, m_paldma_fade);
}
- cputag_set_input_line(space->machine(), "maincpu", 10, ASSERT_LINE);
+ cputag_set_input_line(machine(), "maincpu", 10, ASSERT_LINE);
}
@@ -2073,17 +2057,16 @@ static void cps3_process_character_dma(running_machine &machine, UINT32 address)
}
}
-static WRITE32_HANDLER( cps3_characterdma_w )
+WRITE32_MEMBER(cps3_state::cps3_characterdma_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
if(DEBUG_PRINTF) printf("chardma_w %08x %08x %08x\n", offset, data, mem_mask);
if (offset==0)
{
- //COMBINE_DATA(&state->m_chardma_source);
+ //COMBINE_DATA(&m_chardma_source);
if (ACCESSING_BITS_0_7)
{
- state->m_chardma_source = data & 0x0000ffff;
+ m_chardma_source = data & 0x0000ffff;
}
if (ACCESSING_BITS_24_31)
{
@@ -2092,70 +2075,67 @@ static WRITE32_HANDLER( cps3_characterdma_w )
}
else if (offset==1)
{
- COMBINE_DATA(&state->m_chardma_other);
+ COMBINE_DATA(&m_chardma_other);
if (ACCESSING_BITS_24_31)
{
if ((data>>16) & 0x0040)
{
UINT32 list_address;
- list_address = (state->m_chardma_source | ((state->m_chardma_other&0x003f0000)));
+ list_address = (m_chardma_source | ((m_chardma_other&0x003f0000)));
- //printf("chardma_w activated %08x %08x (address = cram %08x)\n", state->m_chardma_source, state->m_chardma_other, list_address*4 );
- cps3_process_character_dma(space->machine(), list_address);
+ //printf("chardma_w activated %08x %08x (address = cram %08x)\n", m_chardma_source, m_chardma_other, list_address*4 );
+ cps3_process_character_dma(machine(), list_address);
}
else
{
- if(DEBUG_PRINTF) printf("chardma_w NOT activated %08x %08x\n", state->m_chardma_source, state->m_chardma_other );
+ if(DEBUG_PRINTF) printf("chardma_w NOT activated %08x %08x\n", m_chardma_source, m_chardma_other );
}
if ((data>>16) & 0xff80)
- if(DEBUG_PRINTF) printf("chardma_w unknown bits in activate command %08x %08x\n", state->m_chardma_source, state->m_chardma_other );
+ if(DEBUG_PRINTF) printf("chardma_w unknown bits in activate command %08x %08x\n", m_chardma_source, m_chardma_other );
}
else
{
- if(DEBUG_PRINTF) printf("chardma_w LSB32 write to activate command %08x %08x\n", state->m_chardma_source, state->m_chardma_other );
+ if(DEBUG_PRINTF) printf("chardma_w LSB32 write to activate command %08x %08x\n", m_chardma_source, m_chardma_other );
}
}
}
-static WRITE32_HANDLER( cps3_irq10_ack_w )
+WRITE32_MEMBER(cps3_state::cps3_irq10_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 10, CLEAR_LINE); return;
+ cputag_set_input_line(machine(), "maincpu", 10, CLEAR_LINE); return;
}
-static WRITE32_HANDLER( cps3_irq12_ack_w )
+WRITE32_MEMBER(cps3_state::cps3_irq12_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 12, CLEAR_LINE); return;
+ cputag_set_input_line(machine(), "maincpu", 12, CLEAR_LINE); return;
}
-static WRITE32_HANDLER( cps3_unk_vidregs_w )
+WRITE32_MEMBER(cps3_state::cps3_unk_vidregs_w)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- COMBINE_DATA(&state->m_unk_vidregs[offset]);
+ COMBINE_DATA(&m_unk_vidregs[offset]);
}
-static READ32_HANDLER( cps3_colourram_r )
+READ32_MEMBER(cps3_state::cps3_colourram_r)
{
- cps3_state *state = space->machine().driver_data<cps3_state>();
- UINT16* src = (UINT16*)state->m_colourram;
+ UINT16* src = (UINT16*)m_colourram;
return src[offset*2+1] | (src[offset*2+0]<<16);
}
-static WRITE32_HANDLER( cps3_colourram_w )
+WRITE32_MEMBER(cps3_state::cps3_colourram_w)
{
- //cps3_state *state = space->machine().driver_data<cps3_state>();
-// COMBINE_DATA(&state->m_colourram[offset]);
+// COMBINE_DATA(&m_colourram[offset]);
if (ACCESSING_BITS_24_31)
{
- cps3_set_mame_colours(space->machine(), offset*2, (data & 0xffff0000) >> 16, 0);
+ cps3_set_mame_colours(machine(), offset*2, (data & 0xffff0000) >> 16, 0);
}
if (ACCESSING_BITS_0_7)
{
- cps3_set_mame_colours(space->machine(), offset*2+1, (data & 0x0000ffff) >> 0, 0);
+ cps3_set_mame_colours(machine(), offset*2+1, (data & 0x0000ffff) >> 0, 0);
}
}
@@ -2170,15 +2150,15 @@ static ADDRESS_MAP_START( cps3_map, AS_PROGRAM, 32, cps3_state )
// AM_RANGE(0x04000000, 0x0407dfff) AM_RAM AM_BASE(m_spriteram)//AM_WRITEONLY // Sprite RAM (jojoba tests this size)
AM_RANGE(0x04000000, 0x0407ffff) AM_RAM AM_BASE(m_spriteram)//AM_WRITEONLY // Sprite RAM
- AM_RANGE(0x04080000, 0x040bffff) AM_READWRITE_LEGACY(cps3_colourram_r, cps3_colourram_w) AM_BASE(m_colourram) // Colour RAM (jojoba tests this size) 0x20000 colours?!
+ AM_RANGE(0x04080000, 0x040bffff) AM_READWRITE(cps3_colourram_r, cps3_colourram_w) AM_BASE(m_colourram) // Colour RAM (jojoba tests this size) 0x20000 colours?!
// video registers of some kind probably
- AM_RANGE(0x040C0000, 0x040C0003) AM_READ_LEGACY(cps3_40C0000_r)//?? every frame
- AM_RANGE(0x040C0004, 0x040C0007) AM_READ_LEGACY(cps3_40C0004_r)//AM_READ_LEGACY(cps3_40C0004_r) // warzard reads this!
+ AM_RANGE(0x040C0000, 0x040C0003) AM_READ(cps3_40C0000_r)//?? every frame
+ AM_RANGE(0x040C0004, 0x040C0007) AM_READ(cps3_40C0004_r)//AM_READ(cps3_40C0004_r) // warzard reads this!
// AM_RANGE(0x040C0008, 0x040C000b) AM_WRITENOP//??
- AM_RANGE(0x040C000c, 0x040C000f) AM_READ_LEGACY(cps3_vbl_r)// AM_WRITENOP/
+ AM_RANGE(0x040C000c, 0x040C000f) AM_READ(cps3_vbl_r)// AM_WRITENOP/
- AM_RANGE(0x040C0000, 0x040C001f) AM_WRITE_LEGACY(cps3_unk_vidregs_w)
+ AM_RANGE(0x040C0000, 0x040C001f) AM_WRITE(cps3_unk_vidregs_w)
AM_RANGE(0x040C0020, 0x040C002b) AM_WRITEONLY AM_BASE(m_tilemap20_regs_base)
AM_RANGE(0x040C0030, 0x040C003b) AM_WRITEONLY AM_BASE(m_tilemap30_regs_base)
AM_RANGE(0x040C0040, 0x040C004b) AM_WRITEONLY AM_BASE(m_tilemap40_regs_base)
@@ -2187,43 +2167,43 @@ static ADDRESS_MAP_START( cps3_map, AS_PROGRAM, 32, cps3_state )
AM_RANGE(0x040C0060, 0x040C007f) AM_RAM AM_BASE(m_fullscreenzoom)
- AM_RANGE(0x040C0094, 0x040C009b) AM_WRITE_LEGACY(cps3_characterdma_w)
+ AM_RANGE(0x040C0094, 0x040C009b) AM_WRITE(cps3_characterdma_w)
- AM_RANGE(0x040C00a0, 0x040C00af) AM_WRITE_LEGACY(cps3_palettedma_w)
+ AM_RANGE(0x040C00a0, 0x040C00af) AM_WRITE(cps3_palettedma_w)
- AM_RANGE(0x040C0084, 0x040C0087) AM_WRITE_LEGACY(cram_bank_w)
- AM_RANGE(0x040C0088, 0x040C008b) AM_WRITE_LEGACY(cram_gfxflash_bank_w)
+ AM_RANGE(0x040C0084, 0x040C0087) AM_WRITE(cram_bank_w)
+ AM_RANGE(0x040C0088, 0x040C008b) AM_WRITE(cram_gfxflash_bank_w)
AM_RANGE(0x040e0000, 0x040e02ff) AM_DEVREADWRITE_LEGACY("cps3", cps3_sound_r, cps3_sound_w)
- AM_RANGE(0x04100000, 0x041fffff) AM_READWRITE_LEGACY(cram_data_r, cram_data_w)
- AM_RANGE(0x04200000, 0x043fffff) AM_READWRITE_LEGACY(cps3_gfxflash_r, cps3_gfxflash_w) // GFX Flash ROMS
+ AM_RANGE(0x04100000, 0x041fffff) AM_READWRITE(cram_data_r, cram_data_w)
+ AM_RANGE(0x04200000, 0x043fffff) AM_READWRITE(cps3_gfxflash_r, cps3_gfxflash_w) // GFX Flash ROMS
AM_RANGE(0x05000000, 0x05000003) AM_READ_PORT("INPUTS")
AM_RANGE(0x05000004, 0x05000007) AM_READ_PORT("EXTRA")
AM_RANGE(0x05000008, 0x0500000b) AM_WRITENOP // ?? every frame
- AM_RANGE(0x05000a00, 0x05000a1f) AM_READ_LEGACY(cps3_unk_io_r ) // ?? every frame
+ AM_RANGE(0x05000a00, 0x05000a1f) AM_READ(cps3_unk_io_r ) // ?? every frame
- AM_RANGE(0x05001000, 0x05001203) AM_READWRITE_LEGACY(cps3_eeprom_r, cps3_eeprom_w )
+ AM_RANGE(0x05001000, 0x05001203) AM_READWRITE(cps3_eeprom_r, cps3_eeprom_w )
- AM_RANGE(0x05040000, 0x0504ffff) AM_READWRITE_LEGACY(cps3_ssram_r,cps3_ssram_w) // 'SS' RAM (Score Screen) (text tilemap + toles)
+ AM_RANGE(0x05040000, 0x0504ffff) AM_READWRITE(cps3_ssram_r,cps3_ssram_w) // 'SS' RAM (Score Screen) (text tilemap + toles)
//0x25050020
- AM_RANGE(0x05050020, 0x05050023) AM_WRITE_LEGACY(cps3_ss_bank_base_w )
- AM_RANGE(0x05050024, 0x05050027) AM_WRITE_LEGACY(cps3_ss_pal_base_w )
+ AM_RANGE(0x05050020, 0x05050023) AM_WRITE(cps3_ss_bank_base_w )
+ AM_RANGE(0x05050024, 0x05050027) AM_WRITE(cps3_ss_pal_base_w )
- AM_RANGE(0x05100000, 0x05100003) AM_WRITE_LEGACY(cps3_irq12_ack_w )
- AM_RANGE(0x05110000, 0x05110003) AM_WRITE_LEGACY(cps3_irq10_ack_w )
+ AM_RANGE(0x05100000, 0x05100003) AM_WRITE(cps3_irq12_ack_w )
+ AM_RANGE(0x05110000, 0x05110003) AM_WRITE(cps3_irq10_ack_w )
- AM_RANGE(0x05140000, 0x05140003) AM_READWRITE_LEGACY(cps3_cdrom_r, cps3_cdrom_w )
+ AM_RANGE(0x05140000, 0x05140003) AM_READWRITE(cps3_cdrom_r, cps3_cdrom_w )
- AM_RANGE(0x06000000, 0x067fffff) AM_READWRITE_LEGACY(cps3_flash1_r, cps3_flash1_w ) /* Flash ROMs simm 1 */
- AM_RANGE(0x06800000, 0x06ffffff) AM_READWRITE_LEGACY(cps3_flash2_r, cps3_flash2_w ) /* Flash ROMs simm 2 */
+ AM_RANGE(0x06000000, 0x067fffff) AM_READWRITE(cps3_flash1_r, cps3_flash1_w ) /* Flash ROMs simm 1 */
+ AM_RANGE(0x06800000, 0x06ffffff) AM_READWRITE(cps3_flash2_r, cps3_flash2_w ) /* Flash ROMs simm 2 */
- AM_RANGE(0xc0000000, 0xc00003ff) AM_RAM_WRITE_LEGACY(cps3_0xc0000000_ram_w ) AM_BASE(m_0xc0000000_ram) /* Executes code from here */
+ AM_RANGE(0xc0000000, 0xc00003ff) AM_RAM_WRITE(cps3_0xc0000000_ram_w ) AM_BASE(m_0xc0000000_ram) /* Executes code from here */
ADDRESS_MAP_END
static INPUT_PORTS_START( cps3 )
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 5fe601bb535..08b40985f77 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -57,14 +57,13 @@ static void pc3092_update(running_machine &machine)
}
-static WRITE8_HANDLER( pc3092_w )
+WRITE8_MEMBER(crbaloon_state::pc3092_w)
{
- crbaloon_state *state = space->machine().driver_data<crbaloon_state>();
- state->m_pc3092_data[offset] = data & 0x0f;
+ m_pc3092_data[offset] = data & 0x0f;
- if (LOG_PC3092) logerror("%04X: write PC3092 #%d = 0x%02x\n", cpu_get_pc(&space->device()), offset, state->m_pc3092_data[offset]);
+ if (LOG_PC3092) logerror("%04X: write PC3092 #%d = 0x%02x\n", cpu_get_pc(&space.device()), offset, m_pc3092_data[offset]);
- pc3092_update(space->machine());
+ pc3092_update(machine());
}
@@ -115,12 +114,12 @@ static void pc3259_update(void)
}
-static READ8_HANDLER( pc3259_r )
+READ8_MEMBER(crbaloon_state::pc3259_r)
{
UINT8 ret = 0;
UINT8 reg = offset >> 2;
- UINT16 collision_address = crbaloon_get_collision_address(space->machine());
+ UINT16 collision_address = crbaloon_get_collision_address(machine());
int collided = (collision_address != 0xffff);
switch (reg)
@@ -143,9 +142,9 @@ static READ8_HANDLER( pc3259_r )
break;
}
- if (LOG_PC3259) logerror("%04X: read PC3259 #%d = 0x%02x\n", cpu_get_pc(&space->device()), reg, ret);
+ if (LOG_PC3259) logerror("%04X: read PC3259 #%d = 0x%02x\n", cpu_get_pc(&space.device()), reg, ret);
- return ret | (input_port_read(space->machine(), "DSW1") & 0xf0);
+ return ret | (input_port_read(machine(), "DSW1") & 0xf0);
}
@@ -156,18 +155,17 @@ static READ8_HANDLER( pc3259_r )
*
*************************************/
-static WRITE8_HANDLER( port_sound_w )
+WRITE8_MEMBER(crbaloon_state::port_sound_w)
{
- crbaloon_state *state = space->machine().driver_data<crbaloon_state>();
- device_t *discrete = space->machine().device("discrete");
- device_t *sn = space->machine().device("snsnd");
+ device_t *discrete = machine().device("discrete");
+ device_t *sn = machine().device("snsnd");
/* D0 - interrupt enable - also goes to PC3259 as /HTCTRL */
- state->m_irq_mask = data & 0x01;
- crbaloon_set_clear_collision_address(space->machine(), (data & 0x01) ? TRUE : FALSE);
+ m_irq_mask = data & 0x01;
+ crbaloon_set_clear_collision_address(machine(), (data & 0x01) ? TRUE : FALSE);
/* D1 - SOUND STOP */
- space->machine().sound().system_enable((data & 0x02) ? TRUE : FALSE);
+ machine().sound().system_enable((data & 0x02) ? TRUE : FALSE);
/* D2 - unlabeled - music enable */
crbaloon_audio_set_music_enable(discrete, 0, (data & 0x04) ? TRUE : FALSE);
@@ -218,15 +216,15 @@ static ADDRESS_MAP_START( main_io_map, AS_IO, 8, crbaloon_state )
ADDRESS_MAP_GLOBAL_MASK(0xf)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x0c) AM_READ_PORT("DSW0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x0c) AM_READ_PORT("IN0")
- AM_RANGE(0x02, 0x02) AM_MIRROR(0x0c) AM_MASK(0x0c) AM_READ_LEGACY(pc3259_r)
+ AM_RANGE(0x02, 0x02) AM_MIRROR(0x0c) AM_MASK(0x0c) AM_READ(pc3259_r)
AM_RANGE(0x03, 0x03) AM_MIRROR(0x0c) AM_READ_PORT("IN1")
AM_RANGE(0x00, 0x00) AM_WRITENOP /* not connected */
AM_RANGE(0x01, 0x01) AM_WRITENOP /* watchdog */
AM_RANGE(0x02, 0x04) AM_WRITEONLY AM_BASE(m_spriteram)
AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", crbaloon_audio_set_music_freq)
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(port_sound_w)
- AM_RANGE(0x07, 0x0b) AM_WRITE_LEGACY(pc3092_w) AM_BASE(m_pc3092_data)
+ AM_RANGE(0x06, 0x06) AM_WRITE(port_sound_w)
+ AM_RANGE(0x07, 0x0b) AM_WRITE(pc3092_w) AM_BASE(m_pc3092_data)
AM_RANGE(0x0c, 0x0c) AM_WRITENOP /* MSK - to PC3259 */
AM_RANGE(0x0d, 0x0d) AM_WRITENOP /* schematics has it in a box marked "NOT USE" */
AM_RANGE(0x0e, 0x0f) AM_WRITENOP
@@ -342,11 +340,12 @@ GFXDECODE_END
static MACHINE_RESET( crballoon )
{
+ crbaloon_state *state = machine.driver_data<crbaloon_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_IO);
device_t *discrete = machine.device("discrete");
pc3092_reset();
- port_sound_w(space, 0, 0);
+ state->port_sound_w(*space, 0, 0);
crbaloon_audio_set_music_freq(discrete, 0, 0);
}
diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c
index 7dda439e5f0..04735b188c5 100644
--- a/src/mame/drivers/crgolf.c
+++ b/src/mame/drivers/crgolf.c
@@ -42,9 +42,9 @@
*
*************************************/
-static WRITE8_HANDLER( rom_bank_select_w )
+WRITE8_MEMBER(crgolf_state::rom_bank_select_w)
{
- memory_set_bank(space->machine(), "bank1", data & 15);
+ memory_set_bank(machine(), "bank1", data & 15);
}
@@ -86,38 +86,36 @@ static MACHINE_RESET( crgolf )
*
*************************************/
-static READ8_HANDLER( switch_input_r )
+READ8_MEMBER(crgolf_state::switch_input_r)
{
static const char *const portnames[] = { "IN0", "IN1", "P1", "P2", "DSW", "UNUSED0", "UNUSED1" };
- crgolf_state *state = space->machine().driver_data<crgolf_state>();
- return input_port_read(space->machine(), portnames[state->m_port_select]);
+ return input_port_read(machine(), portnames[m_port_select]);
}
-static READ8_HANDLER( analog_input_r )
+READ8_MEMBER(crgolf_state::analog_input_r)
{
- return ((input_port_read(space->machine(), "STICK0") >> 4) | (input_port_read(space->machine(), "STICK1") & 0xf0)) ^ 0x88;
+ return ((input_port_read(machine(), "STICK0") >> 4) | (input_port_read(machine(), "STICK1") & 0xf0)) ^ 0x88;
}
-static WRITE8_HANDLER( switch_input_select_w )
+WRITE8_MEMBER(crgolf_state::switch_input_select_w)
{
- crgolf_state *state = space->machine().driver_data<crgolf_state>();
-
- if (!(data & 0x40)) state->m_port_select = 6;
- if (!(data & 0x20)) state->m_port_select = 5;
- if (!(data & 0x10)) state->m_port_select = 4;
- if (!(data & 0x08)) state->m_port_select = 3;
- if (!(data & 0x04)) state->m_port_select = 2;
- if (!(data & 0x02)) state->m_port_select = 1;
- if (!(data & 0x01)) state->m_port_select = 0;
+
+ if (!(data & 0x40)) m_port_select = 6;
+ if (!(data & 0x20)) m_port_select = 5;
+ if (!(data & 0x10)) m_port_select = 4;
+ if (!(data & 0x08)) m_port_select = 3;
+ if (!(data & 0x04)) m_port_select = 2;
+ if (!(data & 0x02)) m_port_select = 1;
+ if (!(data & 0x01)) m_port_select = 0;
}
-static WRITE8_HANDLER( unknown_w )
+WRITE8_MEMBER(crgolf_state::unknown_w)
{
- logerror("%04X:unknown_w = %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("%04X:unknown_w = %02X\n", cpu_get_pc(&space.device()), data);
}
@@ -137,18 +135,17 @@ static TIMER_CALLBACK( main_to_sound_callback )
}
-static WRITE8_HANDLER( main_to_sound_w )
+WRITE8_MEMBER(crgolf_state::main_to_sound_w)
{
- space->machine().scheduler().synchronize(FUNC(main_to_sound_callback), data);
+ machine().scheduler().synchronize(FUNC(main_to_sound_callback), data);
}
-static READ8_HANDLER( main_to_sound_r )
+READ8_MEMBER(crgolf_state::main_to_sound_r)
{
- crgolf_state *state = space->machine().driver_data<crgolf_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- return state->m_main_to_sound_data;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ return m_main_to_sound_data;
}
@@ -168,18 +165,17 @@ static TIMER_CALLBACK( sound_to_main_callback )
}
-static WRITE8_HANDLER( sound_to_main_w )
+WRITE8_MEMBER(crgolf_state::sound_to_main_w)
{
- space->machine().scheduler().synchronize(FUNC(sound_to_main_callback), data);
+ machine().scheduler().synchronize(FUNC(sound_to_main_callback), data);
}
-static READ8_HANDLER( sound_to_main_r )
+READ8_MEMBER(crgolf_state::sound_to_main_r)
{
- crgolf_state *state = space->machine().driver_data<crgolf_state>();
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
- return state->m_sound_to_main_data;
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
+ return m_sound_to_main_data;
}
@@ -261,8 +257,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, crgolf_state )
AM_RANGE(0x8005, 0x8005) AM_WRITEONLY AM_BASE(m_screen_select)
AM_RANGE(0x8006, 0x8006) AM_WRITEONLY AM_BASE(m_screenb_enable)
AM_RANGE(0x8007, 0x8007) AM_WRITEONLY AM_BASE(m_screena_enable)
- AM_RANGE(0x8800, 0x8800) AM_READWRITE_LEGACY(sound_to_main_r, main_to_sound_w)
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(rom_bank_select_w)
+ AM_RANGE(0x8800, 0x8800) AM_READWRITE(sound_to_main_r, main_to_sound_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(rom_bank_select_w)
AM_RANGE(0xa000, 0xffff) AM_READWRITE_LEGACY(crgolf_videoram_r, crgolf_videoram_w)
ADDRESS_MAP_END
@@ -279,9 +275,9 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, crgolf_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xc000, 0xc001) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0xc002, 0xc002) AM_WRITENOP
- AM_RANGE(0xe000, 0xe000) AM_READWRITE_LEGACY(switch_input_r, switch_input_select_w)
- AM_RANGE(0xe001, 0xe001) AM_READWRITE_LEGACY(analog_input_r, unknown_w)
- AM_RANGE(0xe003, 0xe003) AM_READWRITE_LEGACY(main_to_sound_r, sound_to_main_w)
+ AM_RANGE(0xe000, 0xe000) AM_READWRITE(switch_input_r, switch_input_select_w)
+ AM_RANGE(0xe001, 0xe001) AM_READWRITE(analog_input_r, unknown_w)
+ AM_RANGE(0xe003, 0xe003) AM_READWRITE(main_to_sound_r, sound_to_main_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index 84f35761a1f..7fb2b097c59 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -24,17 +24,16 @@
static KONAMI_SETLINES_CALLBACK( crimfght_banking );
-static WRITE8_HANDLER( crimfght_coin_w )
+WRITE8_MEMBER(crimfght_state::crimfght_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
-static WRITE8_HANDLER( crimfght_sh_irqtrigger_w )
+WRITE8_MEMBER(crimfght_state::crimfght_sh_irqtrigger_w)
{
- crimfght_state *state = space->machine().driver_data<crimfght_state>();
soundlatch_w(space, offset, data);
- 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);
}
static WRITE8_DEVICE_HANDLER( crimfght_snd_bankswitch_w )
@@ -49,33 +48,31 @@ static WRITE8_DEVICE_HANDLER( crimfght_snd_bankswitch_w )
k007232_set_bank(state->m_k007232, bank_A, bank_B );
}
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(crimfght_state::k052109_051960_r)
{
- crimfght_state *state = space->machine().driver_data<crimfght_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(crimfght_state::k052109_051960_w)
{
- crimfght_state *state = space->machine().driver_data<crimfght_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
/********************************************/
@@ -91,9 +88,9 @@ static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state )
AM_RANGE(0x3f85, 0x3f85) AM_READ_PORT("P3")
AM_RANGE(0x3f86, 0x3f86) AM_READ_PORT("P4")
AM_RANGE(0x3f87, 0x3f87) AM_READ_PORT("DSW1")
- AM_RANGE(0x3f88, 0x3f88) AM_READWRITE_LEGACY(watchdog_reset_r, crimfght_coin_w) /* watchdog reset */
- AM_RANGE(0x3f8c, 0x3f8c) AM_WRITE_LEGACY(crimfght_sh_irqtrigger_w) /* cause interrupt on audio CPU? */
- AM_RANGE(0x2000, 0x5fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
+ AM_RANGE(0x3f88, 0x3f88) AM_READ_LEGACY(watchdog_reset_r) AM_WRITE(crimfght_coin_w) /* watchdog reset */
+ AM_RANGE(0x3f8c, 0x3f8c) AM_WRITE(crimfght_sh_irqtrigger_w) /* cause interrupt on audio CPU? */
+ AM_RANGE(0x2000, 0x5fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2") /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index 22b498b1632..e84beba310b 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -38,7 +38,7 @@
#include "includes/crospang.h"
#include "video/decospr.h"
-static WRITE16_HANDLER ( crospang_soundlatch_w )
+WRITE16_MEMBER(crospang_state::crospang_soundlatch_w)
{
if(ACCESSING_BITS_0_7)
{
@@ -60,7 +60,7 @@ static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE_LEGACY(crospang_bg_videoram_w) AM_BASE(m_bg_videoram)
AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x270000, 0x270001) AM_WRITE_LEGACY(crospang_soundlatch_w)
+ AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w)
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2")
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("COIN")
AM_RANGE(0x280004, 0x280005) AM_READ_PORT("DSW")
@@ -80,7 +80,7 @@ static ADDRESS_MAP_START( bestri_map, AS_PROGRAM, 16, crospang_state )
AM_RANGE(0x122000, 0x1227ff) AM_RAM_WRITE_LEGACY(crospang_bg_videoram_w) AM_BASE(m_bg_videoram)
AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x210000, 0x2107ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x270000, 0x270001) AM_WRITE_LEGACY(crospang_soundlatch_w)
+ AM_RANGE(0x270000, 0x270001) AM_WRITE(crospang_soundlatch_w)
AM_RANGE(0x270004, 0x270005) AM_WRITENOP
AM_RANGE(0x280000, 0x280001) AM_READ_PORT("P1_P2")
AM_RANGE(0x280002, 0x280003) AM_READ_PORT("COIN")
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 00b6ba827b9..c1a80c6128f 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -136,38 +136,37 @@ Dip locations verified with Service Mode.
#define CRSHRACE_3P_HACK 0
-static READ16_HANDLER( extrarom1_r )
+READ16_MEMBER(crshrace_state::extrarom1_r)
{
- UINT8 *rom = space->machine().region("user1")->base();
+ UINT8 *rom = machine().region("user1")->base();
offset *= 2;
return rom[offset] | (rom[offset + 1] << 8);
}
-static READ16_HANDLER( extrarom2_r )
+READ16_MEMBER(crshrace_state::extrarom2_r)
{
- UINT8 *rom = space->machine().region("user2")->base();
+ UINT8 *rom = machine().region("user2")->base();
offset *= 2;
return rom[offset] | (rom[offset + 1] << 8);
}
-static WRITE8_HANDLER( crshrace_sh_bankswitch_w )
+WRITE8_MEMBER(crshrace_state::crshrace_sh_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(crshrace_state::sound_command_w)
{
- crshrace_state *state = space->machine().driver_data<crshrace_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
- state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
+ m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -177,19 +176,18 @@ static CUSTOM_INPUT( country_sndpending_r )
return state->m_pending_command;
}
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(crshrace_state::pending_command_clear_w)
{
- crshrace_state *state = space->machine().driver_data<crshrace_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x300000, 0x3fffff) AM_READ_LEGACY(extrarom1_r)
- AM_RANGE(0x400000, 0x4fffff) AM_READ_LEGACY(extrarom2_r)
- AM_RANGE(0x500000, 0x5fffff) AM_READ_LEGACY(extrarom2_r) /* mirror */
+ AM_RANGE(0x300000, 0x3fffff) AM_READ(extrarom1_r)
+ AM_RANGE(0x400000, 0x4fffff) AM_READ(extrarom2_r)
+ AM_RANGE(0x500000, 0x5fffff) AM_READ(extrarom2_r) /* mirror */
AM_RANGE(0xa00000, 0xa0ffff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0xd00000, 0xd01fff) AM_RAM_WRITE_LEGACY(crshrace_videoram1_w) AM_BASE(m_videoram1)
AM_RANGE(0xe00000, 0xe01fff) AM_RAM AM_SHARE("spriteram")
@@ -201,7 +199,7 @@ static ADDRESS_MAP_START( crshrace_map, AS_PROGRAM, 16, crshrace_state )
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("P2")
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW0")
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
- AM_RANGE(0xfff008, 0xfff009) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW1")
AM_RANGE(0xfff00e, 0xfff00f) AM_READ_PORT("P3")
AM_RANGE(0xfff020, 0xfff03f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w)
@@ -216,8 +214,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, crshrace_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(crshrace_sh_bankswitch_w)
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(soundlatch_r, pending_command_clear_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(crshrace_sh_bankswitch_w)
+ AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_r) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index 6f205f09774..c71c5707b41 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -260,25 +260,24 @@ static void cvs_slave_cpu_interrupt( device_t *cpu, int state )
*
*************************************/
-static READ8_HANDLER( cvs_input_r )
+READ8_MEMBER(cvs_state::cvs_input_r)
{
- cvs_state *state = space->machine().driver_data<cvs_state>();
UINT8 ret = 0;
/* the upper 4 bits of the address is used to select the character banking attributes */
- state->m_character_banking_mode = (offset >> 4) & 0x03;
- state->m_character_ram_page_start = (offset << 2) & 0x300;
+ m_character_banking_mode = (offset >> 4) & 0x03;
+ m_character_ram_page_start = (offset << 2) & 0x300;
/* the lower 4 (or 3?) bits select the port to read */
switch (offset & 0x0f) /* might be 0x07 */
{
- case 0x00: ret = input_port_read(space->machine(), "IN0"); break;
- case 0x02: ret = input_port_read(space->machine(), "IN1"); break;
- case 0x03: ret = input_port_read(space->machine(), "IN2"); break;
- case 0x04: ret = input_port_read(space->machine(), "IN3"); break;
- case 0x06: ret = input_port_read(space->machine(), "DSW3"); break;
- case 0x07: ret = input_port_read(space->machine(), "DSW2"); break;
- default: logerror("%04x : CVS: Reading unmapped input port 0x%02x\n", cpu_get_pc(&space->device()), offset & 0x0f); break;
+ case 0x00: ret = input_port_read(machine(), "IN0"); break;
+ case 0x02: ret = input_port_read(machine(), "IN1"); break;
+ case 0x03: ret = input_port_read(machine(), "IN2"); break;
+ case 0x04: ret = input_port_read(machine(), "IN3"); break;
+ case 0x06: ret = input_port_read(machine(), "DSW3"); break;
+ case 0x07: ret = input_port_read(machine(), "DSW2"); break;
+ default: logerror("%04x : CVS: Reading unmapped input port 0x%02x\n", cpu_get_pc(&space.device()), offset & 0x0f); break;
}
return ret;
@@ -292,10 +291,9 @@ static READ8_HANDLER( cvs_input_r )
*
*************************************/
#if 0
-static READ8_HANDLER( cvs_393hz_clock_r )
+READ8_MEMBER(cvs_state::cvs_393hz_clock_r)
{
- cvs_state *state = space->machine().driver_data<cvs_state>();
- return state->m_cvs_393hz_clock ? 0x80 : 0;
+ return m_cvs_393hz_clock ? 0x80 : 0;
}
#endif
@@ -383,30 +381,27 @@ static WRITE8_DEVICE_HANDLER( cvs_unknown_w )
*************************************/
-static WRITE8_HANDLER( cvs_speech_rom_address_lo_w )
+WRITE8_MEMBER(cvs_state::cvs_speech_rom_address_lo_w)
{
- cvs_state *state = space->machine().driver_data<cvs_state>();
/* assuming that d0-d2 are cleared here */
- state->m_speech_rom_bit_address = (state->m_speech_rom_bit_address & 0xf800) | (data << 3);
- LOG(("%04x : CVS: Speech Lo %02x Address = %04x\n", cpu_get_pc(&space->device()), data, state->m_speech_rom_bit_address >> 3));
+ m_speech_rom_bit_address = (m_speech_rom_bit_address & 0xf800) | (data << 3);
+ LOG(("%04x : CVS: Speech Lo %02x Address = %04x\n", cpu_get_pc(&space.device()), data, m_speech_rom_bit_address >> 3));
}
-static WRITE8_HANDLER( cvs_speech_rom_address_hi_w )
+WRITE8_MEMBER(cvs_state::cvs_speech_rom_address_hi_w)
{
- cvs_state *state = space->machine().driver_data<cvs_state>();
- state->m_speech_rom_bit_address = (state->m_speech_rom_bit_address & 0x07ff) | (data << 11);
- LOG(("%04x : CVS: Speech Hi %02x Address = %04x\n", cpu_get_pc(&space->device()), data, state->m_speech_rom_bit_address >> 3));
+ m_speech_rom_bit_address = (m_speech_rom_bit_address & 0x07ff) | (data << 11);
+ LOG(("%04x : CVS: Speech Hi %02x Address = %04x\n", cpu_get_pc(&space.device()), data, m_speech_rom_bit_address >> 3));
}
-static READ8_HANDLER( cvs_speech_command_r )
+READ8_MEMBER(cvs_state::cvs_speech_command_r)
{
- cvs_state *state = space->machine().driver_data<cvs_state>();
/* FIXME: this was by observation on board ???
* -bit 7 is TMS status (active LO) */
- return ((tms5110_ctl_r(state->m_tms, 0) ^ 1) << 7) | (soundlatch_r(space, 0) & 0x7f);
+ return ((tms5110_ctl_r(m_tms, 0) ^ 1) << 7) | (soundlatch_r(space, 0) & 0x7f);
}
@@ -469,14 +464,13 @@ static const tms5110_interface tms5100_interface =
*
*************************************/
-static WRITE8_HANDLER( audio_command_w )
+WRITE8_MEMBER(cvs_state::audio_command_w)
{
- cvs_state *state = space->machine().driver_data<cvs_state>();
LOG(("data %02x\n", data));
/* cause interrupt on audio CPU if bit 7 set */
soundlatch_w(space, 0, data);
- cvs_slave_cpu_interrupt(state->m_audiocpu, data & 0x80 ? 1 : 0);
+ cvs_slave_cpu_interrupt(m_audiocpu, data & 0x80 ? 1 : 0);
}
@@ -503,9 +497,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cvs_main_cpu_io_map, AS_IO, 8, cvs_state )
- AM_RANGE(0x00, 0xff) AM_READWRITE_LEGACY(cvs_input_r, cvs_scroll_w)
+ AM_RANGE(0x00, 0xff) AM_READ(cvs_input_r) AM_WRITE_LEGACY(cvs_scroll_w)
AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE_LEGACY(cvs_collision_clear, cvs_video_fx_w)
- AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE_LEGACY(cvs_collision_r, audio_command_w)
+ AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READ_LEGACY(cvs_collision_r) AM_WRITE(audio_command_w)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_RAM AM_BASE(m_fo_state)
ADDRESS_MAP_END
@@ -531,7 +525,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cvs_dac_cpu_io_map, AS_IO, 8, cvs_state )
/* doesn't look like it is used at all */
- //AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_LEGACY(cvs_393hz_clock_r)
+ //AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(cvs_393hz_clock_r)
ADDRESS_MAP_END
@@ -545,9 +539,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cvs_speech_cpu_map, AS_PROGRAM, 8, cvs_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x07ff) AM_ROM
- AM_RANGE(0x1d00, 0x1d00) AM_WRITE_LEGACY(cvs_speech_rom_address_lo_w)
- AM_RANGE(0x1d40, 0x1d40) AM_WRITE_LEGACY(cvs_speech_rom_address_hi_w)
- AM_RANGE(0x1d80, 0x1d80) AM_READ_LEGACY(cvs_speech_command_r)
+ 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_BASE(m_tms5110_ctl_data)
AM_RANGE(0x1ddf, 0x1ddf) AM_DEVWRITE_LEGACY("tms", cvs_tms5110_pdc_w)
ADDRESS_MAP_END
@@ -555,7 +549,7 @@ 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_LEGACY(cvs_393hz_clock_r)
+// 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)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index bd56a6c598f..40aa274425a 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -148,21 +148,20 @@ static void parse_control( running_machine &machine ) /* assumes Z80 sandwiched
device_set_input_line(state->m_cpub, INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x01) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE16_HANDLER( cpua_ctrl_w )
+WRITE16_MEMBER(darius_state::cpua_ctrl_w)
{
- darius_state *state = space->machine().driver_data<darius_state>();
if ((data & 0xff00) && ((data & 0xff) == 0))
data = data >> 8;
- state->m_cpua_ctrl = data;
+ m_cpua_ctrl = data;
- parse_control(space->machine());
+ parse_control(machine());
- logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space.device()), data);
}
-static WRITE16_HANDLER( darius_watchdog_w )
+WRITE16_MEMBER(darius_state::darius_watchdog_w)
{
watchdog_reset_w(space, 0, data);
}
@@ -172,50 +171,48 @@ static WRITE16_HANDLER( darius_watchdog_w )
GAME INPUTS
**********************************************************/
-static READ16_HANDLER( darius_ioc_r )
+READ16_MEMBER(darius_state::darius_ioc_r)
{
- darius_state *state = space->machine().driver_data<darius_state>();
switch (offset)
{
case 0x01:
- return (tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff); /* sound interface read */
+ return (tc0140syt_comm_r(m_tc0140syt, 0) & 0xff); /* sound interface read */
case 0x04:
- return input_port_read(space->machine(), "P1");
+ return input_port_read(machine(), "P1");
case 0x05:
- return input_port_read(space->machine(), "P2");
+ return input_port_read(machine(), "P2");
case 0x06:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 0x07:
- return state->m_coin_word; /* bits 3&4 coin lockouts, must return zero */
+ return m_coin_word; /* bits 3&4 coin lockouts, must return zero */
case 0x08:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
}
-logerror("CPU #0 PC %06x: warning - read unmapped ioc offset %06x\n",cpu_get_pc(&space->device()),offset);
+logerror("CPU #0 PC %06x: warning - read unmapped ioc offset %06x\n",cpu_get_pc(&space.device()),offset);
return 0xff;
}
-static WRITE16_HANDLER( darius_ioc_w )
+WRITE16_MEMBER(darius_state::darius_ioc_w)
{
- darius_state *state = space->machine().driver_data<darius_state>();
switch (offset)
{
case 0x00: /* sound interface write */
- tc0140syt_port_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
return;
case 0x01: /* sound interface write */
- tc0140syt_comm_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
return;
case 0x28: /* unknown, written by both cpus - always 0? */
@@ -225,16 +222,16 @@ static WRITE16_HANDLER( darius_ioc_w )
case 0x30: /* coin control */
/* bits 7,5,4,0 used on reset */
/* bit 4 used whenever bg is blanked ? */
- coin_lockout_w(space->machine(), 0, ~data & 0x02);
- coin_lockout_w(space->machine(), 1, ~data & 0x04);
- coin_counter_w(space->machine(), 0, data & 0x08);
- coin_counter_w(space->machine(), 1, data & 0x40);
- state->m_coin_word = data & 0xffff;
+ coin_lockout_w(machine(), 0, ~data & 0x02);
+ coin_lockout_w(machine(), 1, ~data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x08);
+ coin_counter_w(machine(), 1, data & 0x40);
+ m_coin_word = data & 0xffff;
//popmessage(" address %04x value %04x",offset,data);
return;
}
-logerror("CPU #0 PC %06x: warning - write unmapped ioc offset %06x with %04x\n",cpu_get_pc(&space->device()),offset,data);
+logerror("CPU #0 PC %06x: warning - write unmapped ioc offset %06x with %04x\n",cpu_get_pc(&space.device()),offset,data);
}
@@ -245,9 +242,9 @@ logerror("CPU #0 PC %06x: warning - write unmapped ioc offset %06x with %04x\n",
static ADDRESS_MAP_START( darius_map, AS_PROGRAM, 16, darius_state )
AM_RANGE(0x000000, 0x05ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM /* main RAM */
- AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x0b0000, 0x0b0001) AM_WRITE_LEGACY(darius_watchdog_w)
- AM_RANGE(0xc00000, 0xc0007f) AM_READWRITE_LEGACY(darius_ioc_r, darius_ioc_w) /* inputs, sound */
+ AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x0b0000, 0x0b0001) AM_WRITE(darius_watchdog_w)
+ AM_RANGE(0xc00000, 0xc0007f) AM_READWRITE(darius_ioc_r, darius_ioc_w) /* inputs, sound */
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE_LEGACY("pc080sn", pc080sn_word_r, pc080sn_word_w) /* tilemaps */
AM_RANGE(0xd20000, 0xd20003) AM_DEVWRITE_LEGACY("pc080sn", pc080sn_yscroll_word_w)
AM_RANGE(0xd40000, 0xd40003) AM_DEVWRITE_LEGACY("pc080sn", pc080sn_xscroll_word_w)
@@ -262,7 +259,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( darius_cpub_map, AS_PROGRAM, 16, darius_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x04ffff) AM_RAM /* local RAM */
- AM_RANGE(0xc00000, 0xc0007f) AM_WRITE_LEGACY(darius_ioc_w) /* only writes $c00050 (?) */
+ AM_RANGE(0xc00000, 0xc0007f) AM_WRITE(darius_ioc_w) /* only writes $c00050 (?) */
AM_RANGE(0xd80000, 0xd80fff) AM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w)
AM_RANGE(0xe00100, 0xe00fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xe01000, 0xe02fff) AM_RAM AM_SHARE("share2")
@@ -280,25 +277,23 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank1", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(darius_state::sound_bankswitch_w)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_banknum = data & 0x03;
- reset_sound_region(space->machine());
+ m_banknum = data & 0x03;
+ reset_sound_region(machine());
// banknum = data;
// reset_sound_region();
}
-static WRITE8_HANDLER( adpcm_command_w )
+WRITE8_MEMBER(darius_state::adpcm_command_w)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_adpcm_command = data;
+ m_adpcm_command = data;
/* logerror("#ADPCM command write =%2x\n",data); */
}
#if 0
-static WRITE8_HANDLER( display_value )
+WRITE8_MEMBER(darius_state::display_value)
{
popmessage("d800=%x", data);
}
@@ -391,43 +386,38 @@ static void update_da( running_machine &machine )
flt_volume_set_volume(state->m_msm5205_r, right / 100.0);
}
-static WRITE8_HANDLER( darius_fm0_pan )
+WRITE8_MEMBER(darius_state::darius_fm0_pan)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_pan[0] = data & 0xff; /* data 0x00:right 0xff:left */
- update_fm0(space->machine());
+ m_pan[0] = data & 0xff; /* data 0x00:right 0xff:left */
+ update_fm0(machine());
}
-static WRITE8_HANDLER( darius_fm1_pan )
+WRITE8_MEMBER(darius_state::darius_fm1_pan)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_pan[1] = data & 0xff;
- update_fm1(space->machine());
+ m_pan[1] = data & 0xff;
+ update_fm1(machine());
}
-static WRITE8_HANDLER( darius_psg0_pan )
+WRITE8_MEMBER(darius_state::darius_psg0_pan)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_pan[2] = data & 0xff;
- update_psg0(space->machine(), 0);
- update_psg0(space->machine(), 1);
- update_psg0(space->machine(), 2);
+ m_pan[2] = data & 0xff;
+ update_psg0(machine(), 0);
+ update_psg0(machine(), 1);
+ update_psg0(machine(), 2);
}
-static WRITE8_HANDLER( darius_psg1_pan )
+WRITE8_MEMBER(darius_state::darius_psg1_pan)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_pan[3] = data & 0xff;
- update_psg1(space->machine(), 0);
- update_psg1(space->machine(), 1);
- update_psg1(space->machine(), 2);
+ m_pan[3] = data & 0xff;
+ update_psg1(machine(), 0);
+ update_psg1(machine(), 1);
+ update_psg1(machine(), 2);
}
-static WRITE8_HANDLER( darius_da_pan )
+WRITE8_MEMBER(darius_state::darius_da_pan)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_pan[4] = data & 0xff;
- update_da(space->machine());
+ m_pan[4] = data & 0xff;
+ update_da(machine());
}
/**** Mixer Control ****/
@@ -497,14 +487,14 @@ static ADDRESS_MAP_START( darius_sound_map, AS_PROGRAM, 8, darius_state )
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r, ym2203_w)
AM_RANGE(0xb000, 0xb000) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xb001, 0xb001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
- AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(darius_fm0_pan)
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(darius_fm1_pan)
- AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(darius_psg0_pan)
- AM_RANGE(0xcc00, 0xcc00) AM_WRITE_LEGACY(darius_psg1_pan)
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(darius_da_pan)
- AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(adpcm_command_w) /* ADPCM command for second Z80 to read from port 0x00 */
-// AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(display_value) /* ??? */
- AM_RANGE(0xdc00, 0xdc00) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(darius_fm0_pan)
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(darius_fm1_pan)
+ AM_RANGE(0xc800, 0xc800) AM_WRITE(darius_psg0_pan)
+ AM_RANGE(0xcc00, 0xcc00) AM_WRITE(darius_psg1_pan)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(darius_da_pan)
+ AM_RANGE(0xd400, 0xd400) AM_WRITE(adpcm_command_w) /* ADPCM command for second Z80 to read from port 0x00 */
+// AM_RANGE(0xd800, 0xd800) AM_WRITE(display_value) /* ??? */
+ AM_RANGE(0xdc00, 0xdc00) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( darius_sound2_map, AS_PROGRAM, 8, darius_state )
@@ -527,37 +517,34 @@ static const msm5205_interface msm5205_config =
MSM5205_S48_4B /* 8KHz */
};
-static READ8_HANDLER( adpcm_command_read )
+READ8_MEMBER(darius_state::adpcm_command_read)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- /* logerror("read port 0: %02x PC=%4x\n",adpcm_command, cpu_get_pc(&space->device()) ); */
- return state->m_adpcm_command;
+ /* logerror("read port 0: %02x PC=%4x\n",adpcm_command, cpu_get_pc(&space.device()) ); */
+ return m_adpcm_command;
}
-static READ8_HANDLER( readport2 )
+READ8_MEMBER(darius_state::readport2)
{
return 0;
}
-static READ8_HANDLER( readport3 )
+READ8_MEMBER(darius_state::readport3)
{
return 0;
}
-static WRITE8_HANDLER( adpcm_nmi_disable )
+WRITE8_MEMBER(darius_state::adpcm_nmi_disable)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_nmi_enable = 0;
- /* logerror("write port 0: NMI DISABLE PC=%4x\n", data, cpu_get_pc(&space->device()) ); */
+ m_nmi_enable = 0;
+ /* logerror("write port 0: NMI DISABLE PC=%4x\n", data, cpu_get_pc(&space.device()) ); */
}
-static WRITE8_HANDLER( adpcm_nmi_enable )
+WRITE8_MEMBER(darius_state::adpcm_nmi_enable)
{
- darius_state *state = space->machine().driver_data<darius_state>();
- state->m_nmi_enable = 1;
- /* logerror("write port 1: NMI ENABLE PC=%4x\n", cpu_get_pc(&space->device()) ); */
+ m_nmi_enable = 1;
+ /* logerror("write port 1: NMI ENABLE PC=%4x\n", cpu_get_pc(&space.device()) ); */
}
static WRITE8_DEVICE_HANDLER( adpcm_data_w )
@@ -568,10 +555,10 @@ static WRITE8_DEVICE_HANDLER( adpcm_data_w )
static ADDRESS_MAP_START( darius_sound2_io_map, AS_IO, 8, darius_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(adpcm_command_read, adpcm_nmi_disable)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(adpcm_nmi_enable)
- AM_RANGE(0x02, 0x02) AM_READ_LEGACY(readport2) AM_DEVWRITE_LEGACY("msm", adpcm_data_w) /* readport2 ??? */
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(readport3) /* ??? */
+ 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(0x03, 0x03) AM_READ(readport3) /* ??? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c
index f9815e2bab4..a20427c008f 100644
--- a/src/mame/drivers/darkmist.c
+++ b/src/mame/drivers/darkmist.c
@@ -29,11 +29,10 @@ TODO:
#include "includes/darkmist.h"
-static WRITE8_HANDLER(darkmist_hw_w)
+WRITE8_MEMBER(darkmist_state::darkmist_hw_w)
{
- darkmist_state *state = space->machine().driver_data<darkmist_state>();
- state->m_hw=data;
- memory_set_bankptr(space->machine(), "bank1",&space->machine().region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]);
+ m_hw=data;
+ memory_set_bankptr(machine(), "bank1",&machine().region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]);
}
static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, darkmist_state )
@@ -42,7 +41,7 @@ static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, darkmist_state )
AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1")
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("P2")
AM_RANGE(0xc803, 0xc803) AM_READ_PORT("START")
- AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(darkmist_hw_w)
+ AM_RANGE(0xc804, 0xc804) AM_WRITE(darkmist_hw_w)
AM_RANGE(0xc805, 0xc805) AM_WRITEONLY AM_BASE(m_spritebank)
AM_RANGE(0xc806, 0xc806) AM_READ_PORT("DSW1")
AM_RANGE(0xc807, 0xc807) AM_READ_PORT("DSW2")
diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c
index d92aa3002a1..68a77a3a319 100644
--- a/src/mame/drivers/darkseal.c
+++ b/src/mame/drivers/darkseal.c
@@ -25,34 +25,33 @@
/******************************************************************************/
-static WRITE16_HANDLER( darkseal_control_w )
+WRITE16_MEMBER(darkseal_state::darkseal_control_w)
{
- darkseal_state *state = space->machine().driver_data<darkseal_state>();
switch (offset<<1) {
case 6: /* DMA flag */
- state->m_spriteram->copy();
+ m_spriteram->copy();
return;
case 8: /* Sound CPU write */
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
return;
case 0xa: /* IRQ Ack (VBL) */
return;
}
}
-static READ16_HANDLER( darkseal_control_r )
+READ16_MEMBER(darkseal_state::darkseal_control_r)
{
switch (offset<<1)
{
case 0:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 2:
- return input_port_read(space->machine(), "P1_P2");
+ return input_port_read(machine(), "P1_P2");
case 4:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
}
return ~0;
@@ -66,7 +65,7 @@ static ADDRESS_MAP_START( darkseal_map, AS_PROGRAM, 16, darkseal_state )
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE_LEGACY(darkseal_palette_24bit_rg_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x141000, 0x141fff) AM_RAM_WRITE_LEGACY(darkseal_palette_24bit_b_w) AM_BASE_GENERIC(paletteram2)
- AM_RANGE(0x180000, 0x18000f) AM_READWRITE_LEGACY(darkseal_control_r, darkseal_control_w)
+ AM_RANGE(0x180000, 0x18000f) AM_READWRITE(darkseal_control_r, darkseal_control_w)
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x202000, 0x203fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index e08f68b7c66..d58011aad7f 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -129,82 +129,77 @@ Dip locations verified with US conversion kit manual.
/**********************************************************************************/
-static READ16_HANDLER( dassault_control_r )
+READ16_MEMBER(dassault_state::dassault_control_r)
{
switch (offset << 1)
{
case 0: /* Player 1 & Player 2 joysticks & fire buttons */
- return input_port_read(space->machine(), "P1_P2");
+ return input_port_read(machine(), "P1_P2");
case 2: /* Player 3 & Player 4 joysticks & fire buttons */
- return input_port_read(space->machine(), "P3_P4");
+ return input_port_read(machine(), "P3_P4");
case 4: /* Dip 1 (stored at 0x3f8035) */
- return input_port_read(space->machine(), "DSW1");
+ return input_port_read(machine(), "DSW1");
case 6: /* Dip 2 (stored at 0x3f8034) */
- return input_port_read(space->machine(), "DSW2");
+ return input_port_read(machine(), "DSW2");
case 8: /* VBL, Credits */
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
}
return 0xffff;
}
-static WRITE16_HANDLER( dassault_control_w )
+WRITE16_MEMBER(dassault_state::dassault_control_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
if (data & 0xfffe)
logerror("Coin cointrol %04x\n", data);
}
-static READ16_HANDLER( dassault_sub_control_r )
+READ16_MEMBER(dassault_state::dassault_sub_control_r)
{
- return input_port_read(space->machine(), "VBLANK1");
+ return input_port_read(machine(), "VBLANK1");
}
-static WRITE16_HANDLER( dassault_sound_w )
+WRITE16_MEMBER(dassault_state::dassault_sound_w)
{
- dassault_state *state = space->machine().driver_data<dassault_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE); /* IRQ1 */
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE); /* IRQ1 */
}
/* The CPU-CPU irq controller is overlaid onto the end of the shared memory */
-static READ16_HANDLER( dassault_irq_r )
+READ16_MEMBER(dassault_state::dassault_irq_r)
{
- dassault_state *state = space->machine().driver_data<dassault_state>();
switch (offset)
{
- case 0: device_set_input_line(state->m_maincpu, 5, CLEAR_LINE); break;
- case 1: device_set_input_line(state->m_subcpu, 6, CLEAR_LINE); break;
+ case 0: device_set_input_line(m_maincpu, 5, CLEAR_LINE); break;
+ case 1: device_set_input_line(m_subcpu, 6, CLEAR_LINE); break;
}
- return state->m_shared_ram[(0xffc / 2) + offset]; /* The values probably don't matter */
+ return m_shared_ram[(0xffc / 2) + offset]; /* The values probably don't matter */
}
-static WRITE16_HANDLER( dassault_irq_w )
+WRITE16_MEMBER(dassault_state::dassault_irq_w)
{
- dassault_state *state = space->machine().driver_data<dassault_state>();
switch (offset)
{
- case 0: device_set_input_line(state->m_maincpu, 5, ASSERT_LINE); break;
- case 1: device_set_input_line(state->m_subcpu, 6, ASSERT_LINE); break;
+ case 0: device_set_input_line(m_maincpu, 5, ASSERT_LINE); break;
+ case 1: device_set_input_line(m_subcpu, 6, ASSERT_LINE); break;
}
- COMBINE_DATA(&state->m_shared_ram[(0xffc / 2) + offset]); /* The values probably don't matter */
+ COMBINE_DATA(&m_shared_ram[(0xffc / 2) + offset]); /* The values probably don't matter */
}
-static WRITE16_HANDLER( shared_ram_w )
+WRITE16_MEMBER(dassault_state::shared_ram_w)
{
- dassault_state *state = space->machine().driver_data<dassault_state>();
- COMBINE_DATA(&state->m_shared_ram[offset]);
+ COMBINE_DATA(&m_shared_ram[offset]);
}
-static READ16_HANDLER( shared_ram_r )
+READ16_MEMBER(dassault_state::shared_ram_r)
{
- dassault_state *state = space->machine().driver_data<dassault_state>();
- return state->m_shared_ram[offset];
+ return m_shared_ram[offset];
}
/**********************************************************************************/
@@ -215,12 +210,12 @@ static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16, dassault_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM_DEVWRITE_LEGACY("deco_common", decocomn_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140004, 0x140007) AM_WRITENOP /* ? */
- AM_RANGE(0x180000, 0x180001) AM_WRITE_LEGACY(dassault_sound_w)
+ AM_RANGE(0x180000, 0x180001) AM_WRITE(dassault_sound_w)
- AM_RANGE(0x1c0000, 0x1c000f) AM_READ_LEGACY(dassault_control_r)
+ AM_RANGE(0x1c0000, 0x1c000f) AM_READ(dassault_control_r)
AM_RANGE(0x1c000a, 0x1c000b) AM_DEVWRITE_LEGACY("deco_common", decocomn_priority_w)
AM_RANGE(0x1c000c, 0x1c000d) AM_DEVWRITE("spriteram2", buffered_spriteram16_device, write)
- AM_RANGE(0x1c000e, 0x1c000f) AM_WRITE_LEGACY(dassault_control_w)
+ AM_RANGE(0x1c000e, 0x1c000f) AM_WRITE(dassault_control_w)
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x202000, 0x203fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
@@ -234,8 +229,8 @@ static ADDRESS_MAP_START( dassault_map, AS_PROGRAM, 16, dassault_state )
AM_RANGE(0x3f8000, 0x3fbfff) AM_RAM AM_BASE(m_ram) /* Main ram */
AM_RANGE(0x3fc000, 0x3fcfff) AM_RAM AM_SHARE("spriteram2") /* Spriteram (2nd) */
- AM_RANGE(0x3feffc, 0x3fefff) AM_READWRITE_LEGACY(dassault_irq_r, dassault_irq_w)
- AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w) AM_BASE(m_shared_ram) /* Shared ram */
+ AM_RANGE(0x3feffc, 0x3fefff) AM_READWRITE(dassault_irq_r, dassault_irq_w)
+ AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE(shared_ram_r, shared_ram_w) AM_BASE(m_shared_ram) /* Shared ram */
ADDRESS_MAP_END
static ADDRESS_MAP_START( dassault_sub_map, AS_PROGRAM, 16, dassault_state )
@@ -243,12 +238,12 @@ static ADDRESS_MAP_START( dassault_sub_map, AS_PROGRAM, 16, dassault_state )
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write)
AM_RANGE(0x100002, 0x100007) AM_WRITENOP /* ? */
- AM_RANGE(0x100004, 0x100005) AM_READ_LEGACY(dassault_sub_control_r)
+ AM_RANGE(0x100004, 0x100005) AM_READ(dassault_sub_control_r)
AM_RANGE(0x3f8000, 0x3fbfff) AM_RAM AM_BASE(m_ram2) /* Sub cpu ram */
AM_RANGE(0x3fc000, 0x3fcfff) AM_RAM AM_SHARE("spriteram") /* Sprite ram */
- AM_RANGE(0x3feffc, 0x3fefff) AM_READWRITE_LEGACY(dassault_irq_r, dassault_irq_w)
- AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x3feffc, 0x3fefff) AM_READWRITE(dassault_irq_r, dassault_irq_w)
+ AM_RANGE(0x3fe000, 0x3fefff) AM_READWRITE(shared_ram_r, shared_ram_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index ac4c36057c7..5b12721c961 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -74,38 +74,35 @@ static TIMER_DEVICE_CALLBACK( dbz_scanline )
}
#if 0
-static READ16_HANDLER( dbzcontrol_r )
+READ16_MEMBER(dbz_state::dbzcontrol_r)
{
- dbz_state *state = space->machine().driver_data<dbz_state>();
- return state->m_control;
+ return m_control;
}
#endif
-static WRITE16_HANDLER( dbzcontrol_w )
+WRITE16_MEMBER(dbz_state::dbzcontrol_w)
{
- dbz_state *state = space->machine().driver_data<dbz_state>();
/* bit 10 = enable '246 readback */
- COMBINE_DATA(&state->m_control);
+ COMBINE_DATA(&m_control);
if (data & 0x400)
- k053246_set_objcha_line(state->m_k053246, ASSERT_LINE);
+ k053246_set_objcha_line(m_k053246, ASSERT_LINE);
else
- k053246_set_objcha_line(state->m_k053246, CLEAR_LINE);
+ k053246_set_objcha_line(m_k053246, CLEAR_LINE);
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
-static WRITE16_HANDLER( dbz_sound_command_w )
+WRITE16_MEMBER(dbz_state::dbz_sound_command_w)
{
soundlatch_w(space, 0, data >> 8);
}
-static WRITE16_HANDLER( dbz_sound_cause_nmi )
+WRITE16_MEMBER(dbz_state::dbz_sound_cause_nmi)
{
- dbz_state *state = space->machine().driver_data<dbz_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
static void dbz_sound_irq( device_t *device, int irq )
@@ -135,9 +132,9 @@ static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state )
AM_RANGE(0x4e0002, 0x4e0003) AM_READ_PORT("SYSTEM_DSW1")
AM_RANGE(0x4e4000, 0x4e4001) AM_READ_PORT("DSW2")
AM_RANGE(0x4e8000, 0x4e8001) AM_WRITENOP
- AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE_LEGACY(dbzcontrol_w)
- AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE_LEGACY(dbz_sound_command_w)
- AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE_LEGACY(dbz_sound_cause_nmi)
+ AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w)
+ AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w)
+ AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi)
AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0xff00) // 251 #1
AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w) // 251 #2
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index a516d2a485f..a8624e4f1c3 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -124,27 +124,26 @@ static CUSTOM_INPUT( sound_latch_state_r )
}
-static WRITE16_HANDLER( eeprom_control_w )
+WRITE16_MEMBER(dcheese_state::eeprom_control_w)
{
/* toggles bit $0100 very frequently while waiting for things */
/* bits $0080-$0010 are probably lamps */
if (ACCESSING_BITS_0_7)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
- ticket_dispenser_w(space->machine().device("ticket"), 0, (data & 1) << 7);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
+ ticket_dispenser_w(machine().device("ticket"), 0, (data & 1) << 7);
}
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(dcheese_state::sound_command_w)
{
- dcheese_state *state = space->machine().driver_data<dcheese_state>();
if (ACCESSING_BITS_0_7)
{
/* write the latch and set the IRQ */
- state->m_soundlatch_full = 1;
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE);
+ m_soundlatch_full = 1;
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
soundlatch_w(space, 0, data & 0xff);
}
}
@@ -157,53 +156,50 @@ static WRITE16_HANDLER( sound_command_w )
*
*************************************/
-static READ8_HANDLER( sound_command_r )
+READ8_MEMBER(dcheese_state::sound_command_r)
{
- dcheese_state *state = space->machine().driver_data<dcheese_state>();
/* read the latch and clear the IRQ */
- state->m_soundlatch_full = 0;
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE);
+ m_soundlatch_full = 0;
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
return soundlatch_r(space, 0);
}
-static READ8_HANDLER( sound_status_r )
+READ8_MEMBER(dcheese_state::sound_status_r)
{
/* seems to be ready signal on BSMT or latching hardware */
- bsmt2000_device *bsmt = space->machine().device<bsmt2000_device>("bsmt");
+ bsmt2000_device *bsmt = machine().device<bsmt2000_device>("bsmt");
return bsmt->read_status() << 7;
}
-static WRITE8_HANDLER( sound_control_w )
+WRITE8_MEMBER(dcheese_state::sound_control_w)
{
- dcheese_state *state = space->machine().driver_data<dcheese_state>();
- UINT8 diff = data ^ state->m_sound_control;
- state->m_sound_control = data;
+ UINT8 diff = data ^ m_sound_control;
+ m_sound_control = data;
/* bit 0x20 = LED */
/* bit 0x40 = BSMT2000 reset */
if ((diff & 0x40) && (data & 0x40))
- state->m_bsmt->reset();
+ m_bsmt->reset();
if (data != 0x40 && data != 0x60)
- logerror("%04X:sound_control_w = %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("%04X:sound_control_w = %02X\n", cpu_get_pc(&space.device()), data);
}
-static WRITE8_HANDLER( bsmt_data_w )
+WRITE8_MEMBER(dcheese_state::bsmt_data_w)
{
- dcheese_state *state = space->machine().driver_data<dcheese_state>();
- bsmt2000_device *bsmt = space->machine().device<bsmt2000_device>("bsmt");
+ bsmt2000_device *bsmt = machine().device<bsmt2000_device>("bsmt");
/* writes come in pairs; even bytes latch, odd bytes write */
if (offset % 2 == 0)
{
bsmt->write_reg(offset / 2);
- state->m_sound_msb_latch = data;
+ m_sound_msb_latch = data;
}
else
- bsmt->write_data((state->m_sound_msb_latch << 8) | data);
+ bsmt->write_data((m_sound_msb_latch << 8) | data);
}
@@ -220,11 +216,11 @@ static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 16, dcheese_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("200000") AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x220000, 0x220001) AM_READ_PORT("220000") AM_WRITE_LEGACY(madmax_blitter_color_w)
- AM_RANGE(0x240000, 0x240001) AM_READ_PORT("240000") AM_WRITE_LEGACY(eeprom_control_w)
+ AM_RANGE(0x240000, 0x240001) AM_READ_PORT("240000") AM_WRITE(eeprom_control_w)
AM_RANGE(0x260000, 0x26001f) AM_WRITE_LEGACY(madmax_blitter_xparam_w)
AM_RANGE(0x280000, 0x28001f) AM_WRITE_LEGACY(madmax_blitter_yparam_w)
AM_RANGE(0x2a0000, 0x2a003f) AM_READWRITE_LEGACY(madmax_blitter_vidparam_r, madmax_blitter_vidparam_w)
- AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(sound_command_w)
AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(madmax_blitter_unknown_w)
ADDRESS_MAP_END
@@ -238,9 +234,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_cpu_map, AS_PROGRAM, 8, dcheese_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(sound_status_r, sound_control_w)
- AM_RANGE(0x0800, 0x0fff) AM_READ_LEGACY(sound_command_r)
- AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0700) AM_WRITE_LEGACY(bsmt_data_w)
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sound_status_r, sound_control_w)
+ AM_RANGE(0x0800, 0x0fff) AM_READ(sound_command_r)
+ AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x0700) AM_WRITE(bsmt_data_w)
AM_RANGE(0x1800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index 87b5be7bf2d..a89f1c3a2b1 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -160,43 +160,42 @@ static WRITE8_DEVICE_HANDLER( oki_bankswitch_w )
oki->set_bank_base((data & 1) * 0x40000);
}
-static WRITE16_HANDLER( ddragon3_io_w )
+WRITE16_MEMBER(ddragon3_state::ddragon3_io_w)
{
- ddragon3_state *state = space->machine().driver_data<ddragon3_state>();
- COMBINE_DATA(&state->m_io_reg[offset]);
+ COMBINE_DATA(&m_io_reg[offset]);
switch (offset)
{
case 0:
- state->m_vreg = state->m_io_reg[0];
+ m_vreg = m_io_reg[0];
break;
case 1: /* soundlatch_w */
- soundlatch_w(space, 1, state->m_io_reg[1] & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
+ soundlatch_w(space, 1, m_io_reg[1] & 0xff);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
break;
case 2:
/* this gets written to on startup and at the end of IRQ6
** possibly trigger IRQ on sound CPU
*/
- device_set_input_line(state->m_maincpu, 6, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 6, CLEAR_LINE);
break;
case 3:
/* this gets written to on startup,
** and at the end of IRQ5 (input port read) */
- device_set_input_line(state->m_maincpu, 5, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 5, CLEAR_LINE);
break;
case 4:
/* this gets written to at the end of IRQ6 only */
- device_set_input_line(state->m_maincpu, 6, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 6, CLEAR_LINE);
break;
default:
- logerror("OUTPUT 1400[%02x] %08x, pc=%06x \n", offset, (unsigned)data, cpu_get_pc(&space->device()) );
+ logerror("OUTPUT 1400[%02x] %08x, pc=%06x \n", offset, (unsigned)data, cpu_get_pc(&space.device()) );
break;
}
}
@@ -216,7 +215,7 @@ static ADDRESS_MAP_START( ddragon3_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x100002, 0x100003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW")
AM_RANGE(0x100006, 0x100007) AM_READ_PORT("P3")
- AM_RANGE(0x100000, 0x10000f) AM_WRITE_LEGACY(ddragon3_io_w)
+ AM_RANGE(0x100000, 0x10000f) AM_WRITE(ddragon3_io_w)
AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette RAM */
AM_RANGE(0x180000, 0x180fff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */
@@ -229,7 +228,7 @@ static ADDRESS_MAP_START( dd3b_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x082000, 0x0827ff) AM_RAM_WRITE_LEGACY(ddragon3_bg_videoram_w) AM_BASE(m_bg_videoram) /* Background (32x32 Tiles - 2 by per tile) */
AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE_LEGACY(ddragon3_scroll_w)
AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette RAM */
- AM_RANGE(0x140000, 0x14000f) AM_WRITE_LEGACY(ddragon3_io_w)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
AM_RANGE(0x180004, 0x180005) AM_READ_PORT("IN2")
@@ -245,7 +244,7 @@ static ADDRESS_MAP_START( ctribe_map, AS_PROGRAM, 16, ddragon3_state )
AM_RANGE(0x082800, 0x082fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c000f) AM_READWRITE_LEGACY(ddragon3_scroll_r, ddragon3_scroll_w)
AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette RAM */
- AM_RANGE(0x140000, 0x14000f) AM_WRITE_LEGACY(ddragon3_io_w)
+ AM_RANGE(0x140000, 0x14000f) AM_WRITE(ddragon3_io_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
AM_RANGE(0x180004, 0x180005) AM_READ_PORT("IN2")
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index e63ba99a504..788b5584cc2 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -33,44 +33,40 @@ static INTERRUPT_GEN( ddribble_interrupt_1 )
}
-static WRITE8_HANDLER( ddribble_bankswitch_w )
+WRITE8_MEMBER(ddribble_state::ddribble_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static READ8_HANDLER( ddribble_sharedram_r )
+READ8_MEMBER(ddribble_state::ddribble_sharedram_r)
{
- ddribble_state *state = space->machine().driver_data<ddribble_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE8_HANDLER( ddribble_sharedram_w )
+WRITE8_MEMBER(ddribble_state::ddribble_sharedram_w)
{
- ddribble_state *state = space->machine().driver_data<ddribble_state>();
- state->m_sharedram[offset] = data;
+ m_sharedram[offset] = data;
}
-static READ8_HANDLER( ddribble_snd_sharedram_r )
+READ8_MEMBER(ddribble_state::ddribble_snd_sharedram_r)
{
- ddribble_state *state = space->machine().driver_data<ddribble_state>();
- return state->m_snd_sharedram[offset];
+ return m_snd_sharedram[offset];
}
-static WRITE8_HANDLER( ddribble_snd_sharedram_w )
+WRITE8_MEMBER(ddribble_state::ddribble_snd_sharedram_w)
{
- ddribble_state *state = space->machine().driver_data<ddribble_state>();
- state->m_snd_sharedram[offset] = data;
+ m_snd_sharedram[offset] = data;
}
-static WRITE8_HANDLER( ddribble_coin_counter_w )
+WRITE8_MEMBER(ddribble_state::ddribble_coin_counter_w)
{
/* b4-b7: unused */
/* b2-b3: unknown */
/* b1: coin counter 2 */
/* b0: coin counter 1 */
- coin_counter_w(space->machine(), 0,(data) & 0x01);
- coin_counter_w(space->machine(), 1,(data >> 1) & 0x01);
+ coin_counter_w(machine(), 0,(data) & 0x01);
+ coin_counter_w(machine(), 1,(data >> 1) & 0x01);
}
static READ8_DEVICE_HANDLER( ddribble_vlm5030_busy_r )
@@ -122,21 +118,21 @@ static ADDRESS_MAP_START( cpu0_map, AS_PROGRAM, 8, ddribble_state )
AM_RANGE(0x4000, 0x5fff) AM_RAM AM_BASE(m_sharedram) /* shared RAM with CPU #1 */
AM_RANGE(0x6000, 0x6fff) AM_RAM_WRITE_LEGACY(ddribble_bg_videoram_w) AM_BASE(m_bg_videoram) /* Video RAM 2 */
AM_RANGE(0x7000, 0x7fff) AM_RAM AM_BASE(m_spriteram_2) /* Object RAM 2 */
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(ddribble_bankswitch_w) /* bankswitch control */
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(ddribble_bankswitch_w) /* bankswitch control */
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, ddribble_state )
- AM_RANGE(0x0000, 0x1fff) AM_READWRITE_LEGACY(ddribble_sharedram_r, ddribble_sharedram_w) /* shared RAM with CPU #0 */
- AM_RANGE(0x2000, 0x27ff) AM_READWRITE_LEGACY(ddribble_snd_sharedram_r, ddribble_snd_sharedram_w) /* shared RAM with CPU #2 */
+ AM_RANGE(0x0000, 0x1fff) AM_READWRITE(ddribble_sharedram_r, ddribble_sharedram_w) /* shared RAM with CPU #0 */
+ AM_RANGE(0x2000, 0x27ff) AM_READWRITE(ddribble_snd_sharedram_r, ddribble_snd_sharedram_w) /* shared RAM with CPU #2 */
AM_RANGE(0x2800, 0x2800) AM_READ_PORT("DSW1")
AM_RANGE(0x2801, 0x2801) AM_READ_PORT("P1")
AM_RANGE(0x2802, 0x2802) AM_READ_PORT("P2")
AM_RANGE(0x2803, 0x2803) AM_READ_PORT("SYSTEM") /* coinsw & start */
AM_RANGE(0x2c00, 0x2c00) AM_READ_PORT("DSW2")
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW3")
- AM_RANGE(0x3400, 0x3400) AM_WRITE_LEGACY(ddribble_coin_counter_w) /* coin counters */
+ AM_RANGE(0x3400, 0x3400) AM_WRITE(ddribble_coin_counter_w) /* coin counters */
AM_RANGE(0x3c00, 0x3c00) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c
index 041a01ebf2f..fc1e0f8c66b 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -45,13 +45,13 @@ Dip locations and factory settings verified with US manual
/* Read/Write Handlers */
-static READ16_HANDLER( ghunter_trackball_low_r )
+READ16_MEMBER(deadang_state::ghunter_trackball_low_r)
{
- return (input_port_read(space->machine(), "TRACKX") & 0xff) | ((input_port_read(space->machine(), "TRACKY") & 0xff) << 8);
+ return (input_port_read(machine(), "TRACKX") & 0xff) | ((input_port_read(machine(), "TRACKY") & 0xff) << 8);
}
-static READ16_HANDLER( ghunter_trackball_high_r )
+READ16_MEMBER(deadang_state::ghunter_trackball_high_r)
{
- return ((input_port_read(space->machine(), "TRACKX") & 0x0f00) >> 4) | (input_port_read(space->machine(), "TRACKY") & 0x0f00);
+ return ((input_port_read(machine(), "TRACKX") & 0x0f00) >> 4) | (input_port_read(machine(), "TRACKY") & 0x0f00);
}
/* Memory Maps */
@@ -423,8 +423,9 @@ static DRIVER_INIT( ghunter )
seibu_adpcm_decrypt(machine, "adpcm1");
seibu_adpcm_decrypt(machine, "adpcm2");
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x80000, 0x80001, FUNC(ghunter_trackball_low_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xb0000, 0xb0001, FUNC(ghunter_trackball_high_r));
+ deadang_state *state = machine.driver_data<deadang_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x80000, 0x80001, read16_delegate(FUNC(deadang_state::ghunter_trackball_low_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xb0000, 0xb0001, read16_delegate(FUNC(deadang_state::ghunter_trackball_high_r),state));
}
/* Game Drivers */
diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c
index 54057a2fe69..4222380502f 100644
--- a/src/mame/drivers/dec0.c
+++ b/src/mame/drivers/dec0.c
@@ -173,54 +173,54 @@ Notes:
/******************************************************************************/
-static WRITE16_HANDLER( dec0_control_w )
+WRITE16_MEMBER(dec0_state::dec0_control_w)
{
switch (offset << 1)
{
case 0: /* Playfield & Sprite priority */
- dec0_priority_w(space, 0, data, mem_mask);
+ dec0_priority_w(&space, 0, data, mem_mask);
break;
case 2: /* DMA flag */
- dec0_update_sprites_w(space, 0, 0, mem_mask);
+ dec0_update_sprites_w(&space, 0, 0, mem_mask);
break;
case 4: /* 6502 sound cpu */
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
break;
case 6: /* Intel 8751 microcontroller - Bad Dudes, Heavy Barrel, Birdy Try only */
- dec0_i8751_write(space->machine(), data);
+ dec0_i8751_write(machine(), data);
break;
case 8: /* Interrupt ack (VBL - IRQ 6) */
- cputag_set_input_line(space->machine(), "maincpu", 6, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, CLEAR_LINE);
break;
case 0xa: /* Mix Psel(?). */
- logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space->device()),data,0x30c010+(offset<<1));
+ logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space.device()),data,0x30c010+(offset<<1));
break;
case 0xc: /* Cblk - coin blockout. Seems to be unused by the games */
break;
case 0xe: /* Reset Intel 8751? - not sure, all the games write here at startup */
- dec0_i8751_reset(space->machine());
- logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space->device()),data,0x30c010+(offset<<1));
+ dec0_i8751_reset(machine());
+ logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space.device()),data,0x30c010+(offset<<1));
break;
default:
- logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space->device()),data,0x30c010+(offset<<1));
+ logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space.device()),data,0x30c010+(offset<<1));
break;
}
}
-static WRITE16_HANDLER( automat_control_w )
+WRITE16_MEMBER(dec0_state::automat_control_w)
{
switch (offset << 1)
{
@@ -228,19 +228,19 @@ static WRITE16_HANDLER( automat_control_w )
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
break;
case 12: /* DMA flag */
- dec0_update_sprites_w(space, 0, 0, mem_mask);
+ dec0_update_sprites_w(&space, 0, 0, mem_mask);
break;
#if 0
case 8: /* Interrupt ack (VBL - IRQ 6) */
break;
case 0xa: /* Mix Psel(?). */
- logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space->device()),data,0x30c010+(offset<<1));
+ logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space.device()),data,0x30c010+(offset<<1));
break;
case 0xc: /* Cblk - coin blockout. Seems to be unused by the games */
@@ -248,12 +248,12 @@ static WRITE16_HANDLER( automat_control_w )
#endif
default:
- logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space->device()),data,0x30c010+(offset<<1));
+ logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space.device()),data,0x30c010+(offset<<1));
break;
}
}
-static WRITE16_HANDLER( slyspy_control_w )
+WRITE16_MEMBER(dec0_state::slyspy_control_w)
{
switch (offset << 1)
{
@@ -261,21 +261,21 @@ static WRITE16_HANDLER( slyspy_control_w )
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
break;
case 2:
- dec0_priority_w(space, 0, data, mem_mask);
+ dec0_priority_w(&space, 0, data, mem_mask);
break;
}
}
-static WRITE16_HANDLER( midres_sound_w )
+WRITE16_MEMBER(dec0_state::midres_sound_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -304,7 +304,7 @@ static ADDRESS_MAP_START( dec0_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x300000, 0x30001f) AM_READ_LEGACY(dec0_rotary_r)
AM_RANGE(0x30c000, 0x30c00b) AM_READ_LEGACY(dec0_controls_r)
- AM_RANGE(0x30c010, 0x30c01f) AM_WRITE_LEGACY(dec0_control_w) /* Priority, sound, etc. */
+ AM_RANGE(0x30c010, 0x30c01f) AM_WRITE(dec0_control_w) /* Priority, sound, etc. */
AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE_LEGACY(dec0_paletteram_rg_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x314000, 0x3147ff) AM_RAM_WRITE_LEGACY(dec0_paletteram_b_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xff8000, 0xffbfff) AM_RAM AM_BASE(m_ram) /* Main ram */
@@ -398,11 +398,10 @@ READ16_HANDLER( slyspy_protection_r )
*/
-static WRITE16_HANDLER( unmapped_w )
+WRITE16_MEMBER(dec0_state::unmapped_w)
{
// fall through for unmapped protection areas
- dec0_state *state = space->machine().driver_data<dec0_state>();
- logerror("unmapped memory write to %04x = %04x in mode %d\n", 0x240000+offset*2, data, state->m_slyspy_state);
+ logerror("unmapped memory write to %04x = %04x in mode %d\n", 0x240000+offset*2, data, m_slyspy_state);
}
void slyspy_set_protection_map(running_machine& machine, int type);
@@ -426,12 +425,13 @@ READ16_HANDLER( slyspy_state_r )
void slyspy_set_protection_map(running_machine& machine, int type)
{
+ dec0_state *state = machine.driver_data<dec0_state>();
address_space* space = machine.device("maincpu")->memory().space(AS_PROGRAM);
deco_bac06_device *tilegen1 = (deco_bac06_device*)space->machine().device<deco_bac06_device>("tilegen1");
deco_bac06_device *tilegen2 = (deco_bac06_device*)space->machine().device<deco_bac06_device>("tilegen2");
- space->install_legacy_write_handler( 0x240000, 0x24ffff, FUNC(unmapped_w));
+ space->install_write_handler( 0x240000, 0x24ffff, write16_delegate(FUNC(dec0_state::unmapped_w),state));
space->install_legacy_write_handler( 0x24a000, 0x24a001, FUNC(slyspy_state_w));
space->install_legacy_read_handler( 0x244000, 0x244001, FUNC(slyspy_state_r));
@@ -510,7 +510,7 @@ static ADDRESS_MAP_START( slyspy_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x304000, 0x307fff) AM_RAM AM_BASE(m_ram) /* Sly spy main ram */
AM_RANGE(0x308000, 0x3087ff) AM_RAM AM_BASE(m_spriteram) /* Sprites */
AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x314000, 0x314003) AM_WRITE_LEGACY(slyspy_control_w)
+ AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
AM_RANGE(0x314008, 0x31400f) AM_READ_LEGACY(slyspy_controls_r)
AM_RANGE(0x31c000, 0x31c00f) AM_READ_LEGACY(slyspy_protection_r) AM_WRITENOP
ADDRESS_MAP_END
@@ -524,7 +524,7 @@ static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x160000, 0x160001) AM_WRITE_LEGACY(dec0_priority_w)
AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(midres_controls_r)
AM_RANGE(0x180008, 0x18000f) AM_WRITENOP /* ?? watchdog ?? */
- AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE_LEGACY(midres_sound_w)
+ AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(midres_sound_w)
AM_RANGE(0x200000, 0x200007) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_0_w)
AM_RANGE(0x200010, 0x200017) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control_1_w)
@@ -600,7 +600,7 @@ static ADDRESS_MAP_START( secretab_map, AS_PROGRAM, 16, dec0_state )
// AM_RANGE(0x340400, 0x3407ff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_rowscroll_r, deco_bac06_pf_rowscroll_w)
AM_RANGE(0x314008, 0x31400f) AM_READ_LEGACY(slyspy_controls_r)
-// AM_RANGE(0x314000, 0x314003) AM_WRITE_LEGACY(slyspy_control_w)
+// AM_RANGE(0x314000, 0x314003) AM_WRITE(slyspy_control_w)
AM_RANGE(0x300000, 0x300007) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_0_w)
AM_RANGE(0x300010, 0x300017) AM_DEVWRITE_LEGACY("tilegen3", deco_bac06_pf_control_1_w)
@@ -637,7 +637,7 @@ static ADDRESS_MAP_START( automat_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0x300000, 0x30001f) AM_READ_LEGACY(dec0_rotary_r)
AM_RANGE(0x30c000, 0x30c00b) AM_READ_LEGACY(dec0_controls_r)
- AM_RANGE(0x30c000, 0x30c01f) AM_WRITE_LEGACY(automat_control_w) /* Priority, sound, etc. */
+ AM_RANGE(0x30c000, 0x30c01f) AM_WRITE(automat_control_w) /* Priority, sound, etc. */
AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x314000, 0x3147ff) AM_RAM
AM_RANGE(0x400008, 0x400009) AM_WRITE_LEGACY(dec0_priority_w) // NEW
@@ -645,10 +645,9 @@ static ADDRESS_MAP_START( automat_map, AS_PROGRAM, 16, dec0_state )
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM AM_BASE(m_spriteram) /* Sprites */
ADDRESS_MAP_END
-static WRITE8_HANDLER( automat_adpcm_w )
+WRITE8_MEMBER(dec0_state::automat_adpcm_w)
{
- dec0_state *state = space->machine().driver_data<dec0_state>();
- state->m_automat_adpcm_byte = data;
+ m_automat_adpcm_byte = data;
}
static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8, dec0_state )
@@ -658,7 +657,7 @@ static ADDRESS_MAP_START( automat_s_map, AS_PROGRAM, 8, dec0_state )
AM_RANGE(0xd800, 0xd800) AM_READ_LEGACY(soundlatch_r)
// AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(ym2203_control_port_1_w)
// AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(ym2203_write_port_1_w)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(automat_adpcm_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(automat_adpcm_w)
AM_RANGE(0x0000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -3062,10 +3061,11 @@ static DRIVER_INIT( convert_robocop_gfx4_to_automat )
static DRIVER_INIT( midresb )
{
+ dec0_state *state = machine.driver_data<dec0_state>();
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x00180000, 0x0018000f, FUNC(dec0_controls_r) );
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x001a0000, 0x001a000f, FUNC(dec0_rotary_r) );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x00180014, 0x00180015, FUNC(midres_sound_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00180014, 0x00180015, write16_delegate(FUNC(dec0_state::midres_sound_w),state));
}
/******************************************************************************/
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index 420835b7eec..02260e31af1 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -55,72 +55,69 @@ To do:
/******************************************************************************/
-static WRITE8_HANDLER( dec8_mxc06_karn_buffer_spriteram_w)
+WRITE8_MEMBER(dec8_state::dec8_mxc06_karn_buffer_spriteram_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
- UINT8* spriteram = state->m_spriteram->live();
+ UINT8* spriteram = m_spriteram->live();
// copy to a 16-bit region for the sprite chip
for (int i=0;i<0x800/2;i++)
{
- state->m_buffered_spriteram16[i] = spriteram[(i*2)+1] | (spriteram[(i*2)+0] <<8);
+ m_buffered_spriteram16[i] = spriteram[(i*2)+1] | (spriteram[(i*2)+0] <<8);
}
}
/* Only used by ghostb, gondo, garyoret, other games can control buffering */
static SCREEN_VBLANK( dec8 )
{
+ dec8_state *state = screen.machine().driver_data<dec8_state>();
// rising edge
if (vblank_on)
{
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
- dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0);
+ state->dec8_mxc06_karn_buffer_spriteram_w(*space, 0, 0);
}
}
-static READ8_HANDLER( i8751_h_r )
+READ8_MEMBER(dec8_state::i8751_h_r)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
- return state->m_i8751_return >> 8; /* MSB */
+ return m_i8751_return >> 8; /* MSB */
}
-static READ8_HANDLER( i8751_l_r )
+READ8_MEMBER(dec8_state::i8751_l_r)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
- return state->m_i8751_return & 0xff; /* LSB */
+ return m_i8751_return & 0xff; /* LSB */
}
-static WRITE8_HANDLER( i8751_reset_w )
+WRITE8_MEMBER(dec8_state::i8751_reset_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
}
/******************************************************************************/
-static READ8_HANDLER( gondo_player_1_r )
+READ8_MEMBER(dec8_state::gondo_player_1_r)
{
- int val = 1 << input_port_read(space->machine(), "AN0");
+ int val = 1 << input_port_read(machine(), "AN0");
switch (offset)
{
case 0: /* Rotary low byte */
return ~(val & 0xff);
case 1: /* Joystick = bottom 4 bits, rotary = top 4 */
- return ((~val >> 4) & 0xf0) | (input_port_read(space->machine(), "IN0") & 0xf);
+ return ((~val >> 4) & 0xf0) | (input_port_read(machine(), "IN0") & 0xf);
}
return 0xff;
}
-static READ8_HANDLER( gondo_player_2_r )
+READ8_MEMBER(dec8_state::gondo_player_2_r)
{
- int val = 1 << input_port_read(space->machine(), "AN1");
+ int val = 1 << input_port_read(machine(), "AN1");
switch (offset)
{
case 0: /* Rotary low byte */
return ~(val & 0xff);
case 1: /* Joystick = bottom 4 bits, rotary = top 4 */
- return ((~val >> 4) & 0xf0) | (input_port_read(space->machine(), "IN1") & 0xf);
+ return ((~val >> 4) & 0xf0) | (input_port_read(machine(), "IN1") & 0xf);
}
return 0xff;
}
@@ -141,19 +138,18 @@ static TIMER_CALLBACK( dec8_i8751_timer_callback )
device_set_input_line(state->m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
}
-static WRITE8_HANDLER( dec8_i8751_w )
+WRITE8_MEMBER(dec8_state::dec8_i8751_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
switch (offset)
{
case 0: /* High byte - SECIRQ is trigged on activating this latch */
- state->m_i8751_value = (state->m_i8751_value & 0xff) | (data << 8);
- device_set_input_line(state->m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
- space->machine().scheduler().timer_set(state->m_mcu->clocks_to_attotime(64), FUNC(dec8_i8751_timer_callback)); // 64 clocks not confirmed
+ m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
+ device_set_input_line(m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
+ machine().scheduler().timer_set(m_mcu->clocks_to_attotime(64), FUNC(dec8_i8751_timer_callback)); // 64 clocks not confirmed
break;
case 1: /* Low byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff00) | data;
+ m_i8751_value = (m_i8751_value & 0xff00) | data;
break;
}
}
@@ -164,9 +160,8 @@ static WRITE8_HANDLER( dec8_i8751_w )
*
********************************/
-static WRITE8_HANDLER( lastmisn_i8751_w )
+WRITE8_MEMBER(dec8_state::lastmisn_i8751_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
/* Japan coinage first, then World coinage - US coinage shall be the same as the Japan one */
int lneed1[2][4] = {{1, 1, 1, 2}, {1, 1, 1, 1}}; /* slot 1 : coins needed */
@@ -174,102 +169,100 @@ static WRITE8_HANDLER( lastmisn_i8751_w )
int lneed2[2][4] = {{1, 1, 1, 2}, {1, 2, 3, 4}}; /* slot 2 : coins needed */
int lcred2[2][4] = {{1, 2, 3, 1}, {1, 1, 1, 1}}; /* slot 2 : credits awarded */
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
switch (offset)
{
case 0: /* High byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff) | (data << 8);
- device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
+ m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
+ device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
break;
case 1: /* Low byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff00) | data;
+ m_i8751_value = (m_i8751_value & 0xff00) | data;
break;
}
/* Coins are controlled by the i8751 */
- if ((input_port_read(space->machine(), "IN2") & 3) == 3) state->m_latch = 1;
- if ((input_port_read(space->machine(), "IN2") & 1) != 1 && state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 3) == 3) m_latch = 1;
+ if ((input_port_read(machine(), "IN2") & 1) != 1 && m_latch)
{
- state->m_coin1++;
- state->m_latch = 0;
- state->m_snd = 0x400;
- state->m_i8751_return = 0x400;
- if (state->m_coin1>=state->m_need1)
+ m_coin1++;
+ m_latch = 0;
+ m_snd = 0x400;
+ m_i8751_return = 0x400;
+ if (m_coin1>=m_need1)
{
- state->m_coin1-=state->m_need1;
- state->m_credits+=state->m_cred1;
+ m_coin1-=m_need1;
+ m_credits+=m_cred1;
}
}
- if ((input_port_read(space->machine(), "IN2") & 2) != 2 && state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 2) != 2 && m_latch)
{
- state->m_coin2++;
- state->m_latch = 0;
- state->m_snd = 0x400;
- state->m_i8751_return = 0x400;
- if (state->m_coin2>=state->m_need2)
+ m_coin2++;
+ m_latch = 0;
+ m_snd = 0x400;
+ m_i8751_return = 0x400;
+ if (m_coin2>=m_need2)
{
- state->m_coin2-=state->m_need2;
- state->m_credits+=state->m_cred2;
+ m_coin2-=m_need2;
+ m_credits+=m_cred2;
}
}
- if (state->m_credits>99) state->m_credits=99; /* not handled by main CPU */
+ if (m_credits>99) m_credits=99; /* not handled by main CPU */
- if (state->m_i8751_value == 0x0401) state->m_i8751_return = 0; /* ??? */
+ if (m_i8751_value == 0x0401) m_i8751_return = 0; /* ??? */
- if (state->m_i8751_value == 0x007a) { state->m_i8751_return = 0x85; state->m_coinage_id = 0; } /* Japanese version ID */
- if (state->m_i8751_value == 0x007b) { state->m_i8751_return = 0x84; state->m_coinage_id = 0; } /* US version ID */
+ if (m_i8751_value == 0x007a) { m_i8751_return = 0x85; m_coinage_id = 0; } /* Japanese version ID */
+ if (m_i8751_value == 0x007b) { m_i8751_return = 0x84; m_coinage_id = 0; } /* US version ID */
if (offset == 0)
{
- if ((state->m_i8751_value >> 8) == 0x01) /* Coinage settings */
+ if ((m_i8751_value >> 8) == 0x01) /* Coinage settings */
{
- state->m_i8751_return = state->m_i8751_value;
- state->m_need1 = lneed1[state->m_coinage_id][(state->m_i8751_value & 0x03) >> 0];
- state->m_need2 = lneed2[state->m_coinage_id][(state->m_i8751_value & 0x0c) >> 2];
- state->m_cred1 = lcred1[state->m_coinage_id][(state->m_i8751_value & 0x03) >> 0];
- state->m_cred2 = lcred2[state->m_coinage_id][(state->m_i8751_value & 0x0c) >> 2];
+ m_i8751_return = m_i8751_value;
+ m_need1 = lneed1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
+ m_need2 = lneed2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
+ m_cred1 = lcred1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
+ m_cred2 = lcred2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
}
- if ((state->m_i8751_value >> 8) == 0x02) { state->m_i8751_return = state->m_snd | ((state->m_credits / 10) << 4) | (state->m_credits % 10); state->m_snd = 0; } /* Credits request */
- if ((state->m_i8751_value >> 8) == 0x03 && state->m_credits) { state->m_i8751_return = 0; state->m_credits--; } /* Credits clear */
+ if ((m_i8751_value >> 8) == 0x02) { m_i8751_return = m_snd | ((m_credits / 10) << 4) | (m_credits % 10); m_snd = 0; } /* Credits request */
+ if ((m_i8751_value >> 8) == 0x03 && m_credits) { m_i8751_return = 0; m_credits--; } /* Credits clear */
}
}
-static WRITE8_HANDLER( shackled_i8751_w )
+WRITE8_MEMBER(dec8_state::shackled_i8751_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
switch (offset)
{
case 0: /* High byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff) | (data << 8);
- device_set_input_line(state->m_subcpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal sub cpu */
+ m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
+ device_set_input_line(m_subcpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal sub cpu */
break;
case 1: /* Low byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff00) | data;
+ m_i8751_value = (m_i8751_value & 0xff00) | data;
break;
}
/* Coins are controlled by the i8751 */
- if (/*(input_port_read(space->machine(), "IN2") & 3) == 3*/!state->m_latch) { state->m_latch = 1; state->m_coin1 = state->m_coin2 = 0; }
- if ((input_port_read(space->machine(), "IN2") & 1) != 1 && state->m_latch) { state->m_coin1 = 1; state->m_latch = 0; }
- if ((input_port_read(space->machine(), "IN2") & 2) != 2 && state->m_latch) { state->m_coin2 = 1; state->m_latch = 0; }
+ if (/*(input_port_read(machine(), "IN2") & 3) == 3*/!m_latch) { m_latch = 1; m_coin1 = m_coin2 = 0; }
+ if ((input_port_read(machine(), "IN2") & 1) != 1 && m_latch) { m_coin1 = 1; m_latch = 0; }
+ if ((input_port_read(machine(), "IN2") & 2) != 2 && m_latch) { m_coin2 = 1; m_latch = 0; }
- if (state->m_i8751_value == 0x0102) state->m_i8751_return = 0; /* ??? */
- if (state->m_i8751_value == 0x0101) state->m_i8751_return = 0; /* ??? */
- if (state->m_i8751_value == 0x0400) state->m_i8751_return = 0; /* ??? */
+ if (m_i8751_value == 0x0102) m_i8751_return = 0; /* ??? */
+ if (m_i8751_value == 0x0101) m_i8751_return = 0; /* ??? */
+ if (m_i8751_value == 0x0400) m_i8751_return = 0; /* ??? */
- if (state->m_i8751_value == 0x0050) state->m_i8751_return = 0; /* Japanese version (Breywood) ID */
- if (state->m_i8751_value == 0x0051) state->m_i8751_return = 0; /* US version (Shackled) ID */
+ if (m_i8751_value == 0x0050) m_i8751_return = 0; /* Japanese version (Breywood) ID */
+ if (m_i8751_value == 0x0051) m_i8751_return = 0; /* US version (Shackled) ID */
- if (state->m_i8751_value == 0x8101) state->m_i8751_return = ((((state->m_coin2 / 10) << 4) | (state->m_coin2 % 10)) << 0) |
- ((((state->m_coin1 / 10) << 4) | (state->m_coin1 % 10)) << 8); /* Coins */
+ if (m_i8751_value == 0x8101) m_i8751_return = ((((m_coin2 / 10) << 4) | (m_coin2 % 10)) << 0) |
+ ((((m_coin1 / 10) << 4) | (m_coin1 % 10)) << 8); /* Coins */
}
-static WRITE8_HANDLER( csilver_i8751_w )
+WRITE8_MEMBER(dec8_state::csilver_i8751_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
/* Japan coinage first, then World coinage - US coinage shall be the same as the Japan one */
int lneed1[2][4] = {{1, 1, 1, 2}, {1, 1, 1, 1}}; /* slot 1 : coins needed */
@@ -277,68 +270,67 @@ static WRITE8_HANDLER( csilver_i8751_w )
int lneed2[2][4] = {{1, 1, 1, 2}, {1, 2, 3, 4}}; /* slot 2 : coins needed */
int lcred2[2][4] = {{1, 2, 3, 1}, {1, 1, 1, 1}}; /* slot 2 : credits awarded */
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
switch (offset)
{
case 0: /* High byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff) | (data << 8);
- device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
+ m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
+ device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
break;
case 1: /* Low byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff00) | data;
+ m_i8751_value = (m_i8751_value & 0xff00) | data;
break;
}
/* Coins are controlled by the i8751 */
- if ((input_port_read(space->machine(), "IN2") & 3) == 3) state->m_latch = 1;
- if ((input_port_read(space->machine(), "IN2") & 1) != 1 && state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 3) == 3) m_latch = 1;
+ if ((input_port_read(machine(), "IN2") & 1) != 1 && m_latch)
{
- state->m_coin1++;
- state->m_latch = 0;
- state->m_snd = 0x1200;
- state->m_i8751_return = 0x1200;
- if (state->m_coin1>=state->m_need1)
+ m_coin1++;
+ m_latch = 0;
+ m_snd = 0x1200;
+ m_i8751_return = 0x1200;
+ if (m_coin1>=m_need1)
{
- state->m_coin1-=state->m_need1;
- state->m_credits+=state->m_cred1;
+ m_coin1-=m_need1;
+ m_credits+=m_cred1;
}
}
- if ((input_port_read(space->machine(), "IN2") & 2) != 2 && state->m_latch)
+ if ((input_port_read(machine(), "IN2") & 2) != 2 && m_latch)
{
- state->m_coin2++;
- state->m_latch = 0;
- state->m_snd = 0x1200;
- state->m_i8751_return = 0x1200;
- if (state->m_coin2>=state->m_need2)
+ m_coin2++;
+ m_latch = 0;
+ m_snd = 0x1200;
+ m_i8751_return = 0x1200;
+ if (m_coin2>=m_need2)
{
- state->m_coin2-=state->m_need2;
- state->m_credits+=state->m_cred2;
+ m_coin2-=m_need2;
+ m_credits+=m_cred2;
}
}
- if (state->m_credits>99) state->m_credits=99; /* not handled by main CPU */
+ if (m_credits>99) m_credits=99; /* not handled by main CPU */
- if (state->m_i8751_value == 0x054a) { state->m_i8751_return = 0xb5; state->m_coinage_id = 0; } /* Japanese version ID */
- if (state->m_i8751_value == 0x054c) { state->m_i8751_return = 0xb3; state->m_coinage_id = 1; } /* World version ID */
+ if (m_i8751_value == 0x054a) { m_i8751_return = 0xb5; m_coinage_id = 0; } /* Japanese version ID */
+ if (m_i8751_value == 0x054c) { m_i8751_return = 0xb3; m_coinage_id = 1; } /* World version ID */
if (offset == 0)
{
- if ((state->m_i8751_value >> 8) == 0x01) /* Coinage settings */
+ if ((m_i8751_value >> 8) == 0x01) /* Coinage settings */
{
- state->m_i8751_return = state->m_i8751_value;
- state->m_need1 = lneed1[state->m_coinage_id][(state->m_i8751_value & 0x03) >> 0];
- state->m_need2 = lneed2[state->m_coinage_id][(state->m_i8751_value & 0x0c) >> 2];
- state->m_cred1 = lcred1[state->m_coinage_id][(state->m_i8751_value & 0x03) >> 0];
- state->m_cred2 = lcred2[state->m_coinage_id][(state->m_i8751_value & 0x0c) >> 2];
+ m_i8751_return = m_i8751_value;
+ m_need1 = lneed1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
+ m_need2 = lneed2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
+ m_cred1 = lcred1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
+ m_cred2 = lcred2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
}
- if ((state->m_i8751_value >> 8) == 0x02) { state->m_i8751_return = state->m_snd | state->m_credits; state->m_snd = 0; } /* Credits request */
- if ((state->m_i8751_value >> 8) == 0x03 && state->m_credits) { state->m_i8751_return = 0; state->m_credits--; } /* Credits clear */
+ if ((m_i8751_value >> 8) == 0x02) { m_i8751_return = m_snd | m_credits; m_snd = 0; } /* Credits request */
+ if ((m_i8751_value >> 8) == 0x03 && m_credits) { m_i8751_return = 0; m_credits--; } /* Credits clear */
}
}
-static WRITE8_HANDLER( srdarwin_i8751_w )
+WRITE8_MEMBER(dec8_state::srdarwin_i8751_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
/* Japan coinage first, then World coinage - US coinage shall be the same as the Japan one */
int lneed1[2][4] = {{1, 1, 1, 2}, {1, 1, 1, 1}}; /* slot 1 : coins needed */
@@ -346,57 +338,57 @@ static WRITE8_HANDLER( srdarwin_i8751_w )
int lneed2[2][4] = {{1, 1, 1, 2}, {1, 2, 3, 4}}; /* slot 2 : coins needed */
int lcred2[2][4] = {{1, 2, 3, 1}, {1, 1, 1, 1}}; /* slot 2 : credits awarded */
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
switch (offset)
{
case 0: /* High byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff) | (data << 8);
+ m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
break;
case 1: /* Low byte */
- state->m_i8751_value = (state->m_i8751_value & 0xff00) | data;
+ m_i8751_value = (m_i8751_value & 0xff00) | data;
break;
}
/* Coins are controlled by the i8751 */
- if ((input_port_read(space->machine(), "I8751") & 3) == 3) state->m_latch = 1;
- if ((input_port_read(space->machine(), "I8751") & 1) != 1 && state->m_latch)
+ if ((input_port_read(machine(), "I8751") & 3) == 3) m_latch = 1;
+ if ((input_port_read(machine(), "I8751") & 1) != 1 && m_latch)
{
- state->m_coin1++;
- state->m_latch = 0;
- if (state->m_coin1>=state->m_need1)
+ m_coin1++;
+ m_latch = 0;
+ if (m_coin1>=m_need1)
{
- state->m_coin1-=state->m_need1;
- state->m_credits+=state->m_cred1;
+ m_coin1-=m_need1;
+ m_credits+=m_cred1;
}
}
- if ((input_port_read(space->machine(), "I8751") & 2) != 2 && state->m_latch)
+ if ((input_port_read(machine(), "I8751") & 2) != 2 && m_latch)
{
- state->m_coin2++;
- state->m_latch = 0;
- if (state->m_coin2>=state->m_need2)
+ m_coin2++;
+ m_latch = 0;
+ if (m_coin2>=m_need2)
{
- state->m_coin2-=state->m_need2;
- state->m_credits+=state->m_cred2;
+ m_coin2-=m_need2;
+ m_credits+=m_cred2;
}
}
- if (state->m_credits>99) state->m_credits=99; /* not handled by main CPU */
+ if (m_credits>99) m_credits=99; /* not handled by main CPU */
- if (state->m_i8751_value == 0x0000) state->m_i8751_return = 0; /* ??? */
+ if (m_i8751_value == 0x0000) m_i8751_return = 0; /* ??? */
- if (state->m_i8751_value == 0x3063) { state->m_i8751_return = 0x9c; state->m_coinage_id = 0; } /* Japanese version ID */
- if (state->m_i8751_value == 0x306b) { state->m_i8751_return = 0x94; state->m_coinage_id = 1; } /* World version ID */
+ if (m_i8751_value == 0x3063) { m_i8751_return = 0x9c; m_coinage_id = 0; } /* Japanese version ID */
+ if (m_i8751_value == 0x306b) { m_i8751_return = 0x94; m_coinage_id = 1; } /* World version ID */
- if ((state->m_i8751_value >> 8) == 0x40) /* Coinage settings */
+ if ((m_i8751_value >> 8) == 0x40) /* Coinage settings */
{
- state->m_i8751_return = state->m_i8751_value;
- state->m_need1 = lneed1[state->m_coinage_id][(state->m_i8751_value & 0x03) >> 0];
- state->m_need2 = lneed2[state->m_coinage_id][(state->m_i8751_value & 0x0c) >> 2];
- state->m_cred1 = lcred1[state->m_coinage_id][(state->m_i8751_value & 0x03) >> 0];
- state->m_cred2 = lcred2[state->m_coinage_id][(state->m_i8751_value & 0x0c) >> 2];
+ m_i8751_return = m_i8751_value;
+ m_need1 = lneed1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
+ m_need2 = lneed2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
+ m_cred1 = lcred1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
+ m_cred2 = lcred2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
}
- if (state->m_i8751_value == 0x5000) { state->m_i8751_return = ((state->m_credits / 10) << 4) | (state->m_credits % 10); } /* Credits request */
- if (state->m_i8751_value == 0x6000 && state->m_credits) { state->m_i8751_value = -1; state->m_credits--; } /* Credits clear */
+ if (m_i8751_value == 0x5000) { m_i8751_return = ((m_credits / 10) << 4) | (m_credits % 10); } /* Credits request */
+ if (m_i8751_value == 0x6000 && m_credits) { m_i8751_value = -1; m_credits--; } /* Credits clear */
/*
This next value is the index to a series of tables,
@@ -434,30 +426,29 @@ bb63 = Square things again
The table below is hopefully correct thanks to Jose Miguel Morales Farreras,
but Boss #6 is uncomfirmed as correct.
*/
- if (state->m_i8751_value == 0x8000) state->m_i8751_return = 0xf580 + 0; /* Boss #1: Snake + Bees */
- if (state->m_i8751_value == 0x8001) state->m_i8751_return = 0xf580 + 30; /* Boss #2: 4 Corners */
- if (state->m_i8751_value == 0x8002) state->m_i8751_return = 0xf580 + 26; /* Boss #3: Clock */
- if (state->m_i8751_value == 0x8003) state->m_i8751_return = 0xf580 + 2; /* Boss #4: Pyramid */
- if (state->m_i8751_value == 0x8004) state->m_i8751_return = 0xf580 + 6; /* Boss #5: Snake + Head Combo */
- if (state->m_i8751_value == 0x8005) state->m_i8751_return = 0xf580 + 24; /* Boss #6: LED Panels */
- if (state->m_i8751_value == 0x8006) state->m_i8751_return = 0xf580 + 28; /* Boss #7: Dragon */
- if (state->m_i8751_value == 0x8007) state->m_i8751_return = 0xf580 + 32; /* Boss #8: Teleport */
- if (state->m_i8751_value == 0x8008) state->m_i8751_return = 0xf580 + 38; /* Boss #9: Octopus (Pincer) */
- if (state->m_i8751_value == 0x8009) state->m_i8751_return = 0xf580 + 40; /* Boss #10: Bird */
- if (state->m_i8751_value == 0x800a) state->m_i8751_return = 0xf580 + 42; /* End Game(bad address?) */
+ if (m_i8751_value == 0x8000) m_i8751_return = 0xf580 + 0; /* Boss #1: Snake + Bees */
+ if (m_i8751_value == 0x8001) m_i8751_return = 0xf580 + 30; /* Boss #2: 4 Corners */
+ if (m_i8751_value == 0x8002) m_i8751_return = 0xf580 + 26; /* Boss #3: Clock */
+ if (m_i8751_value == 0x8003) m_i8751_return = 0xf580 + 2; /* Boss #4: Pyramid */
+ if (m_i8751_value == 0x8004) m_i8751_return = 0xf580 + 6; /* Boss #5: Snake + Head Combo */
+ if (m_i8751_value == 0x8005) m_i8751_return = 0xf580 + 24; /* Boss #6: LED Panels */
+ if (m_i8751_value == 0x8006) m_i8751_return = 0xf580 + 28; /* Boss #7: Dragon */
+ if (m_i8751_value == 0x8007) m_i8751_return = 0xf580 + 32; /* Boss #8: Teleport */
+ if (m_i8751_value == 0x8008) m_i8751_return = 0xf580 + 38; /* Boss #9: Octopus (Pincer) */
+ if (m_i8751_value == 0x8009) m_i8751_return = 0xf580 + 40; /* Boss #10: Bird */
+ if (m_i8751_value == 0x800a) m_i8751_return = 0xf580 + 42; /* End Game(bad address?) */
}
/******************************************************************************/
-static WRITE8_HANDLER( dec8_bank_w )
+WRITE8_MEMBER(dec8_state::dec8_bank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
/* Used by Ghostbusters, Meikyuu Hunter G & Gondomania */
-static WRITE8_HANDLER( ghostb_bank_w )
+WRITE8_MEMBER(dec8_state::ghostb_bank_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
/* Bit 0: SECCLR - acknowledge interrupt from I8751
Bit 1: NMI enable/disable
@@ -466,14 +457,14 @@ static WRITE8_HANDLER( ghostb_bank_w )
Bits 4-7: Bank switch
*/
- memory_set_bank(space->machine(), "bank1", data >> 4);
+ memory_set_bank(machine(), "bank1", data >> 4);
- if ((data&1)==0) device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
- if (data & 2) state->m_nmi_enable =1; else state->m_nmi_enable = 0;
- flip_screen_set(space->machine(), data & 0x08);
+ if ((data&1)==0) device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
+ if (data & 2) m_nmi_enable =1; else m_nmi_enable = 0;
+ flip_screen_set(machine(), data & 0x08);
}
-static WRITE8_HANDLER( csilver_control_w )
+WRITE8_MEMBER(dec8_state::csilver_control_w)
{
/*
Bit 0x0f - ROM bank switch.
@@ -482,14 +473,13 @@ static WRITE8_HANDLER( csilver_control_w )
Bit 0x40 - Unused.
Bit 0x80 - Hold subcpu reset line high if clear, else low? (Not needed anyway)
*/
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static WRITE8_HANDLER( dec8_sound_w )
+WRITE8_MEMBER(dec8_state::dec8_sound_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
static void csilver_adpcm_int( device_t *device )
@@ -509,44 +499,41 @@ static READ8_DEVICE_HANDLER( csilver_adpcm_reset_r )
return 0;
}
-static WRITE8_HANDLER( csilver_adpcm_data_w )
+WRITE8_MEMBER(dec8_state::csilver_adpcm_data_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
-static WRITE8_HANDLER( csilver_sound_bank_w )
+WRITE8_MEMBER(dec8_state::csilver_sound_bank_w)
{
- memory_set_bank(space->machine(), "bank3", (data & 0x08) >> 3);
+ memory_set_bank(machine(), "bank3", (data & 0x08) >> 3);
}
/******************************************************************************/
-static WRITE8_HANDLER( oscar_int_w )
+WRITE8_MEMBER(dec8_state::oscar_int_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
/* Deal with interrupts, coins also generate NMI to CPU 0 */
switch (offset)
{
case 0: /* IRQ2 */
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
return;
case 1: /* IRC 1 */
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
return;
case 2: /* IRQ 1 */
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
return;
case 3: /* IRC 2 */
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
return;
}
}
/* Used by Shackled, Last Mission, Captain Silver */
-static WRITE8_HANDLER( shackled_int_w )
+WRITE8_MEMBER(dec8_state::shackled_int_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
#if 0
/* This is correct, but the cpus in Shackled need an interleave of about 5000!
With lower interleave CPU 0 misses an interrupt at the start of the game
@@ -554,18 +541,18 @@ static WRITE8_HANDLER( shackled_int_w )
switch (offset)
{
case 0: /* CPU 2 - IRQ acknowledge */
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
return;
case 1: /* CPU 1 - IRQ acknowledge */
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
return;
case 2: /* i8751 - FIRQ acknowledge */
return;
case 3: /* IRQ 1 */
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
return;
case 4: /* IRQ 2 */
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
return;
}
#endif
@@ -579,17 +566,17 @@ static WRITE8_HANDLER( shackled_int_w )
case 2: /* i8751 - FIRQ acknowledge */
return;
case 3: /* IRQ 1 */
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, HOLD_LINE);
return;
case 4: /* IRQ 2 */
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, HOLD_LINE);
return;
}
}
/******************************************************************************/
-static WRITE8_HANDLER( flip_screen_w ) { flip_screen_set(space->machine(), data); }
+WRITE8_MEMBER(dec8_state::flip_screen_w){ flip_screen_set(machine(), data); }
/******************************************************************************/
@@ -603,15 +590,15 @@ static ADDRESS_MAP_START( lastmisn_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1") /* Dip 2 */
- AM_RANGE(0x1800, 0x1804) AM_WRITE_LEGACY(shackled_int_w)
- AM_RANGE(0x1805, 0x1805) AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x1806, 0x1806) AM_READ_LEGACY(i8751_h_r)
- AM_RANGE(0x1807, 0x1807) AM_READWRITE_LEGACY(i8751_l_r, flip_screen_w)
+ AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
+ AM_RANGE(0x1805, 0x1805) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x1806, 0x1806) AM_READ(i8751_h_r)
+ AM_RANGE(0x1807, 0x1807) AM_READWRITE(i8751_l_r, flip_screen_w)
AM_RANGE(0x1809, 0x1809) AM_WRITE_LEGACY(lastmisn_scrollx_w) /* Scroll LSB */
AM_RANGE(0x180b, 0x180b) AM_WRITE_LEGACY(lastmisn_scrolly_w) /* Scroll LSB */
- AM_RANGE(0x180c, 0x180c) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x180d, 0x180d) AM_WRITE_LEGACY(lastmisn_control_w) /* Bank switch + Scroll MSB */
- AM_RANGE(0x180e, 0x180f) AM_WRITE_LEGACY(lastmisn_i8751_w)
+ AM_RANGE(0x180e, 0x180f) AM_WRITE(lastmisn_i8751_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(dec8_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
@@ -629,10 +616,10 @@ static ADDRESS_MAP_START( lastmisn_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1") /* Dip 2 */
- AM_RANGE(0x1800, 0x1804) AM_WRITE_LEGACY(shackled_int_w)
- AM_RANGE(0x1805, 0x1805) AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x1807, 0x1807) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0x180c, 0x180c) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
+ AM_RANGE(0x1805, 0x1805) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x1807, 0x1807) AM_WRITE(flip_screen_w)
+ AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(dec8_videoram_w)
AM_RANGE(0x2800, 0x2fff) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
@@ -649,12 +636,12 @@ static ADDRESS_MAP_START( shackled_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW0")
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1")
- AM_RANGE(0x1800, 0x1804) AM_WRITE_LEGACY(shackled_int_w)
- AM_RANGE(0x1805, 0x1805) AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x1807, 0x1807) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
+ AM_RANGE(0x1805, 0x1805) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x1807, 0x1807) AM_WRITE(flip_screen_w)
AM_RANGE(0x1809, 0x1809) AM_WRITE_LEGACY(lastmisn_scrollx_w) /* Scroll LSB */
AM_RANGE(0x180b, 0x180b) AM_WRITE_LEGACY(lastmisn_scrolly_w) /* Scroll LSB */
- AM_RANGE(0x180c, 0x180c) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x180d, 0x180d) AM_WRITE_LEGACY(shackled_control_w) /* Bank switch + Scroll MSB */
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(dec8_videoram_w)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
@@ -673,15 +660,15 @@ static ADDRESS_MAP_START( shackled_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW0")
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1")
- AM_RANGE(0x1800, 0x1804) AM_WRITE_LEGACY(shackled_int_w)
- AM_RANGE(0x1805, 0x1805) AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x1806, 0x1806) AM_READ_LEGACY(i8751_h_r)
- AM_RANGE(0x1807, 0x1807) AM_READWRITE_LEGACY(i8751_l_r, flip_screen_w)
+ AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
+ AM_RANGE(0x1805, 0x1805) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x1806, 0x1806) AM_READ(i8751_h_r)
+ AM_RANGE(0x1807, 0x1807) AM_READWRITE(i8751_l_r, flip_screen_w)
AM_RANGE(0x1809, 0x1809) AM_WRITE_LEGACY(lastmisn_scrollx_w) /* Scroll LSB */
AM_RANGE(0x180b, 0x180b) AM_WRITE_LEGACY(lastmisn_scrolly_w) /* Scroll LSB */
- AM_RANGE(0x180c, 0x180c) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x180d, 0x180d) AM_WRITE_LEGACY(shackled_control_w) /* Bank switch + Scroll MSB */
- AM_RANGE(0x180e, 0x180f) AM_WRITE_LEGACY(shackled_i8751_w)
+ AM_RANGE(0x180e, 0x180f) AM_WRITE(shackled_i8751_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(dec8_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
@@ -698,16 +685,16 @@ static ADDRESS_MAP_START( gondo_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram") /* Sprites */
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("DSW1") /* Dip 2 */
- AM_RANGE(0x380a, 0x380b) AM_READ_LEGACY(gondo_player_1_r) /* Player 1 rotary */
- AM_RANGE(0x380c, 0x380d) AM_READ_LEGACY(gondo_player_2_r) /* Player 2 rotary */
+ AM_RANGE(0x380a, 0x380b) AM_READ(gondo_player_1_r) /* Player 1 rotary */
+ AM_RANGE(0x380c, 0x380d) AM_READ(gondo_player_2_r) /* Player 2 rotary */
AM_RANGE(0x380e, 0x380e) AM_READ_PORT("IN3") /* VBL */
AM_RANGE(0x380f, 0x380f) AM_READ_PORT("IN2") /* Fire buttons */
- AM_RANGE(0x3810, 0x3810) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x3810, 0x3810) AM_WRITE(dec8_sound_w)
AM_RANGE(0x3818, 0x382f) AM_WRITE_LEGACY(gondo_scroll_w)
- AM_RANGE(0x3830, 0x3830) AM_WRITE_LEGACY(ghostb_bank_w) /* Bank + NMI enable */
- AM_RANGE(0x3838, 0x3838) AM_READ_LEGACY(i8751_h_r)
- AM_RANGE(0x3839, 0x3839) AM_READ_LEGACY(i8751_l_r)
- AM_RANGE(0x383a, 0x383b) AM_WRITE_LEGACY(dec8_i8751_w)
+ AM_RANGE(0x3830, 0x3830) AM_WRITE(ghostb_bank_w) /* Bank + NMI enable */
+ AM_RANGE(0x3838, 0x3838) AM_READ(i8751_h_r)
+ AM_RANGE(0x3839, 0x3839) AM_READ(i8751_l_r)
+ AM_RANGE(0x383a, 0x383b) AM_WRITE(dec8_i8751_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -724,12 +711,12 @@ static ADDRESS_MAP_START( garyoret_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x3808, 0x3808) AM_READNOP /* ? */
AM_RANGE(0x380a, 0x380a) AM_READ_PORT("IN1") /* Player 2 + VBL */
AM_RANGE(0x380b, 0x380b) AM_READ_PORT("IN0") /* Player 1 */
- AM_RANGE(0x3810, 0x3810) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x3810, 0x3810) AM_WRITE(dec8_sound_w)
AM_RANGE(0x3818, 0x382f) AM_WRITE_LEGACY(gondo_scroll_w)
- AM_RANGE(0x3830, 0x3830) AM_WRITE_LEGACY(ghostb_bank_w) /* Bank + NMI enable */
- AM_RANGE(0x3838, 0x3839) AM_WRITE_LEGACY(dec8_i8751_w)
- AM_RANGE(0x383a, 0x383a) AM_READ_LEGACY(i8751_h_r)
- AM_RANGE(0x383b, 0x383b) AM_READ_LEGACY(i8751_l_r)
+ AM_RANGE(0x3830, 0x3830) AM_WRITE(ghostb_bank_w) /* Bank + NMI enable */
+ AM_RANGE(0x3838, 0x3839) AM_WRITE(dec8_i8751_w)
+ AM_RANGE(0x383a, 0x383a) AM_READ(i8751_h_r)
+ AM_RANGE(0x383b, 0x383b) AM_READ(i8751_l_r)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -743,17 +730,17 @@ static ADDRESS_MAP_START( meikyuh_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x2c00, 0x2fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_rowscroll_8bit_r, deco_bac06_pf_rowscroll_8bit_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") /* Player 1 */
- AM_RANGE(0x3800, 0x3800) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x3800, 0x3800) AM_WRITE(dec8_sound_w)
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") /* Player 2 */
AM_RANGE(0x3802, 0x3802) AM_READ_PORT("IN2") /* Player 3 */
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW0") /* Start buttons + VBL */
AM_RANGE(0x3820, 0x3820) AM_READ_PORT("DSW1") /* Dip */
AM_RANGE(0x3820, 0x3827) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x3830, 0x383f) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_control1_8bit_r, deco_bac06_pf_control1_8bit_w)
- AM_RANGE(0x3840, 0x3840) AM_READ_LEGACY(i8751_h_r)
- AM_RANGE(0x3840, 0x3840) AM_WRITE_LEGACY(ghostb_bank_w)
- AM_RANGE(0x3860, 0x3860) AM_READ_LEGACY(i8751_l_r)
- AM_RANGE(0x3860, 0x3861) AM_WRITE_LEGACY(dec8_i8751_w)
+ AM_RANGE(0x3840, 0x3840) AM_READ(i8751_h_r)
+ AM_RANGE(0x3840, 0x3840) AM_WRITE(ghostb_bank_w)
+ AM_RANGE(0x3860, 0x3860) AM_READ(i8751_l_r)
+ AM_RANGE(0x3860, 0x3861) AM_WRITE(dec8_i8751_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -766,15 +753,15 @@ static ADDRESS_MAP_START( csilver_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1801, 0x1801) AM_READ_PORT("IN0")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("IN2")
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1") /* Dip 2 */
- AM_RANGE(0x1800, 0x1804) AM_WRITE_LEGACY(shackled_int_w)
- AM_RANGE(0x1805, 0x1805) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* Dip 1, DMA */
- AM_RANGE(0x1807, 0x1807) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
+ AM_RANGE(0x1805, 0x1805) AM_READ_PORT("DSW0") AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* Dip 1, DMA */
+ AM_RANGE(0x1807, 0x1807) AM_WRITE(flip_screen_w)
AM_RANGE(0x1808, 0x180b) AM_WRITE_LEGACY(dec8_scroll2_w)
- AM_RANGE(0x180c, 0x180c) AM_WRITE_LEGACY(dec8_sound_w)
- AM_RANGE(0x180d, 0x180d) AM_WRITE_LEGACY(csilver_control_w)
- AM_RANGE(0x180e, 0x180f) AM_WRITE_LEGACY(csilver_i8751_w)
- AM_RANGE(0x1c00, 0x1c00) AM_READ_LEGACY(i8751_h_r)
- AM_RANGE(0x1e00, 0x1e00) AM_READ_LEGACY(i8751_l_r)
+ AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
+ AM_RANGE(0x180d, 0x180d) AM_WRITE(csilver_control_w)
+ AM_RANGE(0x180e, 0x180f) AM_WRITE(csilver_i8751_w)
+ AM_RANGE(0x1c00, 0x1c00) AM_READ(i8751_h_r)
+ AM_RANGE(0x1e00, 0x1e00) AM_READ(i8751_l_r)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(dec8_videoram_w)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
@@ -789,9 +776,9 @@ static ADDRESS_MAP_START( csilver_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_SHARE("share4")
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("IN2")
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("DSW1")
- AM_RANGE(0x1800, 0x1804) AM_WRITE_LEGACY(shackled_int_w)
- AM_RANGE(0x1805, 0x1805) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x180c, 0x180c) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x1800, 0x1804) AM_WRITE(shackled_int_w)
+ AM_RANGE(0x1805, 0x1805) AM_READ_PORT("DSW0") AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x180c, 0x180c) AM_WRITE(dec8_sound_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(dec8_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("share2")
@@ -814,11 +801,11 @@ static ADDRESS_MAP_START( oscar_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x3c04, 0x3c04) AM_READ_PORT("DSW1")
AM_RANGE(0x3c00, 0x3c07) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x3c10, 0x3c1f) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control1_8bit_w)
- AM_RANGE(0x3c80, 0x3c80) AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x3d00, 0x3d00) AM_WRITE_LEGACY(dec8_bank_w) /* BNKS */
- AM_RANGE(0x3d80, 0x3d80) AM_WRITE_LEGACY(dec8_sound_w) /* SOUN */
+ AM_RANGE(0x3c80, 0x3c80) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x3d00, 0x3d00) AM_WRITE(dec8_bank_w) /* BNKS */
+ AM_RANGE(0x3d80, 0x3d80) AM_WRITE(dec8_sound_w) /* SOUN */
AM_RANGE(0x3e00, 0x3e00) AM_WRITENOP /* COINCL */
- AM_RANGE(0x3e80, 0x3e83) AM_WRITE_LEGACY(oscar_int_w)
+ AM_RANGE(0x3e80, 0x3e83) AM_WRITE(oscar_int_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -827,7 +814,7 @@ static ADDRESS_MAP_START( oscar_sub_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x0eff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x0f00, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1fff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x3e80, 0x3e83) AM_WRITE_LEGACY(oscar_int_w)
+ AM_RANGE(0x3e80, 0x3e83) AM_WRITE(oscar_int_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -837,13 +824,13 @@ static ADDRESS_MAP_START( srdarwin_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0800, 0x0fff) AM_RAM_WRITE_LEGACY(srdarwin_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x1000, 0x13ff) AM_RAM
AM_RANGE(0x1400, 0x17ff) AM_READWRITE_LEGACY(dec8_bg_data_r, dec8_bg_data_w) AM_BASE(m_bg_data)
- AM_RANGE(0x1800, 0x1801) AM_WRITE_LEGACY(srdarwin_i8751_w)
- AM_RANGE(0x1802, 0x1802) AM_WRITE_LEGACY(i8751_reset_w) /* Maybe.. */
+ AM_RANGE(0x1800, 0x1801) AM_WRITE(srdarwin_i8751_w)
+ AM_RANGE(0x1802, 0x1802) AM_WRITE(i8751_reset_w) /* Maybe.. */
AM_RANGE(0x1803, 0x1803) AM_WRITENOP /* NMI ack */
AM_RANGE(0x1804, 0x1804) AM_DEVWRITE("spriteram", buffered_spriteram8_device, write) /* DMA */
AM_RANGE(0x1805, 0x1806) AM_WRITE_LEGACY(srdarwin_control_w) /* Scroll & Bank */
- AM_RANGE(0x2000, 0x2000) AM_READWRITE_LEGACY(i8751_h_r, dec8_sound_w) /* Sound */
- AM_RANGE(0x2001, 0x2001) AM_READWRITE_LEGACY(i8751_l_r, flip_screen_w) /* Flipscreen */
+ AM_RANGE(0x2000, 0x2000) AM_READWRITE(i8751_h_r, dec8_sound_w) /* Sound */
+ AM_RANGE(0x2001, 0x2001) AM_READWRITE(i8751_l_r, flip_screen_w) /* Flipscreen */
AM_RANGE(0x2800, 0x288f) AM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x3000, 0x308f) AM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("DSW0") /* Dip 1 */
@@ -872,9 +859,9 @@ static ADDRESS_MAP_START( cobra_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x3a00, 0x3a00) AM_READ_PORT("IN2") /* VBL & coins */
AM_RANGE(0x3a00, 0x3a07) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x3a10, 0x3a1f) AM_DEVWRITE_LEGACY("tilegen2", deco_bac06_pf_control1_8bit_w)
- AM_RANGE(0x3c00, 0x3c00) AM_WRITE_LEGACY(dec8_bank_w)
- AM_RANGE(0x3c02, 0x3c02) AM_WRITE_LEGACY(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
- AM_RANGE(0x3e00, 0x3e00) AM_WRITE_LEGACY(dec8_sound_w)
+ AM_RANGE(0x3c00, 0x3c00) AM_WRITE(dec8_bank_w)
+ AM_RANGE(0x3c02, 0x3c02) AM_WRITE(dec8_mxc06_karn_buffer_spriteram_w) /* DMA */
+ AM_RANGE(0x3e00, 0x3e00) AM_WRITE(dec8_sound_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -913,8 +900,8 @@ static ADDRESS_MAP_START( csilver_s_map, AS_PROGRAM, 8, dec8_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3526_w)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(csilver_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(csilver_sound_bank_w)
+ 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_LEGACY(soundlatch_r)
AM_RANGE(0x3400, 0x3400) AM_DEVREAD_LEGACY("msm", csilver_adpcm_reset_r) /* ? not sure */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank3")
@@ -935,50 +922,48 @@ ADDRESS_MAP_END
*/
-static READ8_HANDLER( dec8_mcu_from_main_r )
+READ8_MEMBER(dec8_state::dec8_mcu_from_main_r)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
switch (offset)
{
case 0:
- return state->m_i8751_port0;
+ return m_i8751_port0;
case 1:
- return state->m_i8751_port1;
+ return m_i8751_port1;
case 2:
return 0xff;
case 3:
- return input_port_read(space->machine(), "I8751");
+ return input_port_read(machine(), "I8751");
}
return 0xff; //compile safe.
}
-static WRITE8_HANDLER( dec8_mcu_to_main_w )
+WRITE8_MEMBER(dec8_state::dec8_mcu_to_main_w)
{
- dec8_state *state = space->machine().driver_data<dec8_state>();
// Outputs P0 and P1 are latched
- if (offset==0) state->m_i8751_port0=data;
- else if (offset==1) state->m_i8751_port1=data;
+ if (offset==0) m_i8751_port0=data;
+ else if (offset==1) m_i8751_port1=data;
// P2 - controls latches for main CPU communication
if (offset==2 && (data&0x10)==0)
- state->m_i8751_port0 = state->m_i8751_value>>8;
+ m_i8751_port0 = m_i8751_value>>8;
if (offset==2 && (data&0x20)==0)
- state->m_i8751_port1 = state->m_i8751_value&0xff;
+ m_i8751_port1 = m_i8751_value&0xff;
if (offset==2 && (data&0x40)==0)
- state->m_i8751_return = (state->m_i8751_return & 0xff) | (state->m_i8751_port0 << 8);
+ m_i8751_return = (m_i8751_return & 0xff) | (m_i8751_port0 << 8);
if (offset==2 && (data&0x80)==0)
- state->m_i8751_return = (state->m_i8751_return & 0xff00) | state->m_i8751_port1;
+ m_i8751_return = (m_i8751_return & 0xff00) | m_i8751_port1;
// P2 - IRQ to main CPU
if (offset==2 && (data&4)==0)
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
}
static ADDRESS_MAP_START( dec8_mcu_io_map, AS_IO, 8, dec8_state )
- AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P3) AM_READWRITE_LEGACY(dec8_mcu_from_main_r, dec8_mcu_to_main_w)
+ AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P3) AM_READWRITE(dec8_mcu_from_main_r, dec8_mcu_to_main_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 90d5b83ec3c..d3fc8c857d8 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -281,15 +281,14 @@ static TIMER_DEVICE_CALLBACK( interrupt_gen )
cputag_set_input_line(timer.machine(), "maincpu", ARM_IRQ_LINE, HOLD_LINE);
}
-static READ32_HANDLER( deco32_irq_controller_r )
+READ32_MEMBER(deco32_state::deco32_irq_controller_r)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
int vblank;
switch (offset)
{
case 2: /* Raster IRQ ACK - value read is not used */
- cputag_set_input_line(space->machine(), "maincpu", ARM_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", ARM_IRQ_LINE, CLEAR_LINE);
return 0;
case 3: /* Irq controller
@@ -306,95 +305,94 @@ static READ32_HANDLER( deco32_irq_controller_r )
/* ZV03082007 - video_screen_get_vblank() doesn't work for Captain America, as it expects
that this bit is NOT set in rows 0-7. */
- vblank = space->machine().primary_screen->vpos() > space->machine().primary_screen->visible_area().max_y;
+ vblank = machine().primary_screen->vpos() > machine().primary_screen->visible_area().max_y;
if (vblank)
return 0xffffff80 | 0x1 | 0x10; /* Assume VBL takes priority over possible raster/lightgun irq */
- return 0xffffff80 | vblank | ((state->m_irq_source) ? 0x40 : 0x20);
+ return 0xffffff80 | vblank | ((m_irq_source) ? 0x40 : 0x20);
// return 0xffffff80 | vblank | (0x40); //test for lock load guns
}
- logerror("%08x: Unmapped IRQ read %08x (%08x)\n",cpu_get_pc(&space->device()),offset,mem_mask);
+ logerror("%08x: Unmapped IRQ read %08x (%08x)\n",cpu_get_pc(&space.device()),offset,mem_mask);
return 0xffffffff;
}
-static WRITE32_HANDLER( deco32_irq_controller_w )
+WRITE32_MEMBER(deco32_state::deco32_irq_controller_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
int scanline;
switch (offset) {
case 0: /* IRQ enable - probably an irq mask, but only values used are 0xc8 and 0xca */
-// logerror("%08x: IRQ write %d %08x\n",cpu_get_pc(&space->device()),offset,data);
- state->m_raster_enable=(data&0xff)==0xc8; /* 0xca seems to be off */
+// logerror("%08x: IRQ write %d %08x\n",cpu_get_pc(&space.device()),offset,data);
+ m_raster_enable=(data&0xff)==0xc8; /* 0xca seems to be off */
break;
case 1: /* Raster IRQ scanline position, only valid for values between 1 & 239 (0 and 240-256 do NOT generate IRQ's) */
scanline=(data&0xff);
- if (state->m_raster_enable && scanline>0 && scanline<240)
+ if (m_raster_enable && scanline>0 && scanline<240)
{
- state->m_raster_irq_timer->adjust(space->machine().primary_screen->time_until_pos(scanline-1, 0));
+ m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(scanline-1, 0));
}
else
- state->m_raster_irq_timer->reset();
+ m_raster_irq_timer->reset();
break;
case 2: /* VBL irq ack */
break;
}
}
-static WRITE32_HANDLER( deco32_sound_w )
+WRITE32_MEMBER(deco32_state::deco32_sound_w)
{
soundlatch_w(space,0,data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
-static READ32_HANDLER( deco32_71_r )
+READ32_MEMBER(deco32_state::deco32_71_r)
{
/* Bit 0x80 goes high when sprite DMA is complete, and low
while it's in progress, we don't bother to emulate it */
return 0xffffffff;
}
-static READ32_HANDLER( captaven_prot_r )
+READ32_MEMBER(deco32_state::captaven_prot_r)
{
/* Protection/IO chip 75, same as Lemmings & Robocop 2 */
switch (offset<<2) {
- case 0x0a0: return input_port_read(space->machine(), "IN0"); /* Player 1 & 2 controls */
- case 0x158: return input_port_read(space->machine(), "IN1"); /* Player 3 & 4 controls */
- case 0xed4: return input_port_read(space->machine(), "IN2"); /* Misc */
+ case 0x0a0: return input_port_read(machine(), "IN0"); /* Player 1 & 2 controls */
+ case 0x158: return input_port_read(machine(), "IN1"); /* Player 3 & 4 controls */
+ case 0xed4: return input_port_read(machine(), "IN2"); /* Misc */
}
- logerror("%08x: Unmapped protection read %04x\n",cpu_get_pc(&space->device()),offset<<2);
+ logerror("%08x: Unmapped protection read %04x\n",cpu_get_pc(&space.device()),offset<<2);
return 0xffffffff;
}
-static READ32_HANDLER( captaven_soundcpu_r )
+READ32_MEMBER(deco32_state::captaven_soundcpu_r)
{
/* Top byte - top bit low == sound cpu busy, bottom word is dips */
- return 0xffff0000 | input_port_read(space->machine(), "DSW");
+ return 0xffff0000 | input_port_read(machine(), "DSW");
}
-static READ32_HANDLER( fghthist_control_r )
+READ32_MEMBER(deco32_state::fghthist_control_r)
{
switch (offset) {
- case 0: return 0xffff0000 | input_port_read(space->machine(), "IN0");
- case 1: return 0xffff0000 | input_port_read(space->machine(), "IN1"); //check top bits??
- case 2: return 0xfffffffe | space->machine().device<eeprom_device>("eeprom")->read_bit();
+ case 0: return 0xffff0000 | input_port_read(machine(), "IN0");
+ case 1: return 0xffff0000 | input_port_read(machine(), "IN1"); //check top bits??
+ case 2: return 0xfffffffe | machine().device<eeprom_device>("eeprom")->read_bit();
}
return 0xffffffff;
}
-static WRITE32_HANDLER( fghthist_eeprom_w )
+WRITE32_MEMBER(deco32_state::fghthist_eeprom_w)
{
if (ACCESSING_BITS_0_7) {
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x10);
eeprom->set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
- deco32_pri_w(space,0,data&0x1,0xffffffff); /* Bit 0 - layer priority toggle */
+ deco32_pri_w(&space,0,data&0x1,0xffffffff); /* Bit 0 - layer priority toggle */
}
else if (!ACCESSING_BITS_8_15)
{
@@ -404,60 +402,57 @@ static WRITE32_HANDLER( fghthist_eeprom_w )
/**********************************************************************************/
-static READ32_HANDLER( dragngun_service_r )
+READ32_MEMBER(deco32_state::dragngun_service_r)
{
-// logerror("%08x:Read service\n",cpu_get_pc(&space->device()));
- return input_port_read(space->machine(), "IN2");
+// logerror("%08x:Read service\n",cpu_get_pc(&space.device()));
+ return input_port_read(machine(), "IN2");
}
-static READ32_HANDLER( lockload_gun_mirror_r )
+READ32_MEMBER(deco32_state::lockload_gun_mirror_r)
{
-//logerror("%08x:Read gun %d\n",cpu_get_pc(&space->device()),offset);
-//return ((space->machine().rand()%0xffff)<<16) | space->machine().rand()%0xffff;
+//logerror("%08x:Read gun %d\n",cpu_get_pc(&space.device()),offset);
+//return ((machine().rand()%0xffff)<<16) | machine().rand()%0xffff;
if (offset) /* Mirror of player 1 and player 2 fire buttons */
- return input_port_read(space->machine(), "IN4") | ((space->machine().rand()%0xff)<<16);
- return input_port_read(space->machine(), "IN3") | input_port_read(space->machine(), "LIGHT0_X") | (input_port_read(space->machine(), "LIGHT0_X")<<16) | (input_port_read(space->machine(), "LIGHT0_X")<<24); //((space->machine().rand()%0xff)<<16);
+ return input_port_read(machine(), "IN4") | ((machine().rand()%0xff)<<16);
+ return input_port_read(machine(), "IN3") | input_port_read(machine(), "LIGHT0_X") | (input_port_read(machine(), "LIGHT0_X")<<16) | (input_port_read(machine(), "LIGHT0_X")<<24); //((machine().rand()%0xff)<<16);
}
-static READ32_HANDLER( dragngun_prot_r )
+READ32_MEMBER(deco32_state::dragngun_prot_r)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
-// logerror("%08x:Read prot %08x (%08x)\n",cpu_get_pc(&space->device()),offset<<1,mem_mask);
+// logerror("%08x:Read prot %08x (%08x)\n",cpu_get_pc(&space.device()),offset<<1,mem_mask);
- if (!state->m_strobe) state->m_strobe=8;
- else state->m_strobe=0;
+ if (!m_strobe) m_strobe=8;
+ else m_strobe=0;
//definitely vblank in locked load
switch (offset<<1) {
- case 0x140/2: return 0xffff0000 | input_port_read(space->machine(), "IN0"); /* IN0 */
- case 0xadc/2: return 0xffff0000 | input_port_read(space->machine(), "IN1") | state->m_strobe; /* IN1 */
- case 0x6a0/2: return 0xffff0000 | input_port_read(space->machine(), "DSW"); /* IN2 (Dip switch) */
+ case 0x140/2: return 0xffff0000 | input_port_read(machine(), "IN0"); /* IN0 */
+ case 0xadc/2: return 0xffff0000 | input_port_read(machine(), "IN1") | m_strobe; /* IN1 */
+ case 0x6a0/2: return 0xffff0000 | input_port_read(machine(), "DSW"); /* IN2 (Dip switch) */
}
return 0xffffffff;
}
-static READ32_HANDLER( dragngun_lightgun_r )
+READ32_MEMBER(dragngun_state::dragngun_lightgun_r)
{
- dragngun_state *state = space->machine().driver_data<dragngun_state>();
/* Ports 0-3 are read, but seem unused */
- switch (state->m_dragngun_lightgun_port) {
- case 4: return input_port_read(space->machine(), "LIGHT0_X");
- case 5: return input_port_read(space->machine(), "LIGHT1_X");
- case 6: return input_port_read(space->machine(), "LIGHT0_Y");
- case 7: return input_port_read(space->machine(), "LIGHT1_Y");
+ switch (m_dragngun_lightgun_port) {
+ case 4: return input_port_read(machine(), "LIGHT0_X");
+ case 5: return input_port_read(machine(), "LIGHT1_X");
+ case 6: return input_port_read(machine(), "LIGHT0_Y");
+ case 7: return input_port_read(machine(), "LIGHT1_Y");
}
-// logerror("Illegal lightgun port %d read \n",state->m_dragngun_lightgun_port);
+// logerror("Illegal lightgun port %d read \n",m_dragngun_lightgun_port);
return 0;
}
-static WRITE32_HANDLER( dragngun_lightgun_w )
+WRITE32_MEMBER(dragngun_state::dragngun_lightgun_w)
{
- dragngun_state *state = space->machine().driver_data<dragngun_state>();
-// logerror("Lightgun port %d\n",state->m_dragngun_lightgun_port);
- state->m_dragngun_lightgun_port=offset;
+// logerror("Lightgun port %d\n",m_dragngun_lightgun_port);
+ m_dragngun_lightgun_port=offset;
}
static READ32_DEVICE_HANDLER( dragngun_eeprom_r )
@@ -481,36 +476,33 @@ static WRITE32_DEVICE_HANDLER( dragngun_eeprom_w )
/**********************************************************************************/
-static READ32_HANDLER( tattass_prot_r )
+READ32_MEMBER(deco32_state::tattass_prot_r)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
switch (offset<<1) {
- case 0x280: return input_port_read(space->machine(), "IN0") << 16;
- case 0x4c4: return input_port_read(space->machine(), "IN1") << 16;
- case 0x35a: return state->m_tattass_eprom_bit << 16;
+ case 0x280: return input_port_read(machine(), "IN0") << 16;
+ case 0x4c4: return input_port_read(machine(), "IN1") << 16;
+ case 0x35a: return m_tattass_eprom_bit << 16;
}
- logerror("%08x:Read prot %08x (%08x)\n",cpu_get_pc(&space->device()),offset<<1,mem_mask);
+ logerror("%08x:Read prot %08x (%08x)\n",cpu_get_pc(&space.device()),offset<<1,mem_mask);
return 0xffffffff;
}
-static WRITE32_HANDLER( tattass_prot_w )
+WRITE32_MEMBER(deco32_state::tattass_prot_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
/* Only sound port of chip is used - no protection */
if (offset==0x700/4) {
/* 'Swap bits 0 and 3 to correct for design error from BSMT schematic' */
int soundcommand = (data>>16)&0xff;
soundcommand = BITSWAP8(soundcommand,7,6,5,4,0,2,1,3);
- state->m_decobsmt->bsmt_comms_w(*space, 0, soundcommand);
+ m_decobsmt->bsmt_comms_w(*&space, 0, soundcommand);
}
}
-static WRITE32_HANDLER( tattass_control_w )
+WRITE32_MEMBER(deco32_state::tattass_control_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
address_space *eeprom_space = eeprom->space();
/* Eprom in low byte */
@@ -536,71 +528,71 @@ static WRITE32_HANDLER( tattass_control_w )
*/
if ((data&0x40)==0) {
- if (state->m_bufPtr) {
+ if (m_bufPtr) {
int i;
- logerror("Eprom reset (bit count %d): ",state->m_readBitCount);
- for (i=0; i<state->m_bufPtr; i++)
- logerror("%s",state->m_buffer[i] ? "1" : "0");
+ logerror("Eprom reset (bit count %d): ",m_readBitCount);
+ for (i=0; i<m_bufPtr; i++)
+ logerror("%s",m_buffer[i] ? "1" : "0");
logerror("\n");
}
- state->m_bufPtr=0;
- state->m_pendingCommand=0;
- state->m_readBitCount=0;
+ m_bufPtr=0;
+ m_pendingCommand=0;
+ m_readBitCount=0;
}
/* Eprom has been clocked */
- if (state->m_lastClock==0 && data&0x20 && data&0x40) {
- if (state->m_bufPtr>=32) {
+ if (m_lastClock==0 && data&0x20 && data&0x40) {
+ if (m_bufPtr>=32) {
logerror("Eprom overflow!");
- state->m_bufPtr=0;
+ m_bufPtr=0;
}
/* Handle pending read */
- if (state->m_pendingCommand==1) {
- int d=state->m_readBitCount/8;
- int m=7-(state->m_readBitCount%8);
- int a=(state->m_byteAddr+d)%1024;
+ if (m_pendingCommand==1) {
+ int d=m_readBitCount/8;
+ int m=7-(m_readBitCount%8);
+ int a=(m_byteAddr+d)%1024;
int b=eeprom_space->read_byte(a);
- state->m_tattass_eprom_bit=(b>>m)&1;
+ m_tattass_eprom_bit=(b>>m)&1;
- state->m_readBitCount++;
- state->m_lastClock=data&0x20;
+ m_readBitCount++;
+ m_lastClock=data&0x20;
return;
}
/* Handle pending write */
- if (state->m_pendingCommand==2) {
- state->m_buffer[state->m_bufPtr++]=(data&0x10)>>4;
+ if (m_pendingCommand==2) {
+ m_buffer[m_bufPtr++]=(data&0x10)>>4;
- if (state->m_bufPtr==32) {
- int b=(state->m_buffer[24]<<7)|(state->m_buffer[25]<<6)|(state->m_buffer[26]<<5)|(state->m_buffer[27]<<4)
- |(state->m_buffer[28]<<3)|(state->m_buffer[29]<<2)|(state->m_buffer[30]<<1)|(state->m_buffer[31]<<0);
+ if (m_bufPtr==32) {
+ int b=(m_buffer[24]<<7)|(m_buffer[25]<<6)|(m_buffer[26]<<5)|(m_buffer[27]<<4)
+ |(m_buffer[28]<<3)|(m_buffer[29]<<2)|(m_buffer[30]<<1)|(m_buffer[31]<<0);
- eeprom_space->write_byte(state->m_byteAddr, b);
+ eeprom_space->write_byte(m_byteAddr, b);
}
- state->m_lastClock=data&0x20;
+ m_lastClock=data&0x20;
return;
}
- state->m_buffer[state->m_bufPtr++]=(data&0x10)>>4;
- if (state->m_bufPtr==24) {
+ m_buffer[m_bufPtr++]=(data&0x10)>>4;
+ if (m_bufPtr==24) {
/* Decode addr */
- state->m_byteAddr=(state->m_buffer[3]<<9)|(state->m_buffer[4]<<8)
- |(state->m_buffer[16]<<7)|(state->m_buffer[17]<<6)|(state->m_buffer[18]<<5)|(state->m_buffer[19]<<4)
- |(state->m_buffer[20]<<3)|(state->m_buffer[21]<<2)|(state->m_buffer[22]<<1)|(state->m_buffer[23]<<0);
+ m_byteAddr=(m_buffer[3]<<9)|(m_buffer[4]<<8)
+ |(m_buffer[16]<<7)|(m_buffer[17]<<6)|(m_buffer[18]<<5)|(m_buffer[19]<<4)
+ |(m_buffer[20]<<3)|(m_buffer[21]<<2)|(m_buffer[22]<<1)|(m_buffer[23]<<0);
/* Check for read command */
- if (state->m_buffer[0] && state->m_buffer[1]) {
- state->m_tattass_eprom_bit=(eeprom_space->read_byte(state->m_byteAddr)>>7)&1;
- state->m_readBitCount=1;
- state->m_pendingCommand=1;
+ if (m_buffer[0] && m_buffer[1]) {
+ m_tattass_eprom_bit=(eeprom_space->read_byte(m_byteAddr)>>7)&1;
+ m_readBitCount=1;
+ m_pendingCommand=1;
}
/* Check for write command */
- else if (state->m_buffer[0]==0x0 && state->m_buffer[1]==0x0) {
- state->m_pendingCommand=2;
+ else if (m_buffer[0]==0x0 && m_buffer[1]==0x0) {
+ m_pendingCommand=2;
}
else {
logerror("Detected unknown eprom command\n");
@@ -610,11 +602,11 @@ static WRITE32_HANDLER( tattass_control_w )
} else {
if (!(data&0x40)) {
logerror("Cs set low\n");
- state->m_bufPtr=0;
+ m_bufPtr=0;
}
}
- state->m_lastClock=data&0x20;
+ m_lastClock=data&0x20;
return;
}
@@ -625,13 +617,13 @@ static WRITE32_HANDLER( tattass_control_w )
}
/* Playfield control - Only written in full word memory accesses */
- deco32_pri_w(space,0,data&0x3,0xffffffff); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */
+ deco32_pri_w(&space,0,data&0x3,0xffffffff); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */
/* Sound board reset control */
if (data&0x80)
- state->m_decobsmt->bsmt_reset_line(CLEAR_LINE);
+ m_decobsmt->bsmt_reset_line(CLEAR_LINE);
else
- state->m_decobsmt->bsmt_reset_line(ASSERT_LINE);
+ m_decobsmt->bsmt_reset_line(ASSERT_LINE);
/* bit 0x4 fade cancel? */
/* bit 0x8 ?? */
@@ -641,114 +633,107 @@ static WRITE32_HANDLER( tattass_control_w )
/**********************************************************************************/
-static READ32_HANDLER( nslasher_prot_r )
+READ32_MEMBER(deco32_state::nslasher_prot_r)
{
switch (offset<<1) {
- case 0x280: return input_port_read(space->machine(), "IN0") << 16| 0xffff; /* IN0 */
- case 0x4c4: return input_port_read(space->machine(), "IN1") << 16| 0xffff; /* IN1 */
- case 0x35a: return (space->machine().device<eeprom_device>("eeprom")->read_bit()<< 16) | 0xffff; // Debug switch in low word??
+ case 0x280: return input_port_read(machine(), "IN0") << 16| 0xffff; /* IN0 */
+ case 0x4c4: return input_port_read(machine(), "IN1") << 16| 0xffff; /* IN1 */
+ case 0x35a: return (machine().device<eeprom_device>("eeprom")->read_bit()<< 16) | 0xffff; // Debug switch in low word??
}
- //logerror("%08x: Read unmapped prot %08x (%08x)\n",cpu_get_pc(&space->device()),offset<<1,mem_mask);
+ //logerror("%08x: Read unmapped prot %08x (%08x)\n",cpu_get_pc(&space.device()),offset<<1,mem_mask);
return 0xffffffff;
}
-static WRITE32_HANDLER( nslasher_eeprom_w )
+WRITE32_MEMBER(deco32_state::nslasher_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x10);
eeprom->set_cs_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
- deco32_pri_w(space,0,data&0x3,0xffffffff); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */
+ deco32_pri_w(&space,0,data&0x3,0xffffffff); /* Bit 0 - layer priority toggle, Bit 1 - BG2/3 Joint mode (8bpp) */
}
}
-static WRITE32_HANDLER( nslasher_prot_w )
+WRITE32_MEMBER(deco32_state::nslasher_prot_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
- //logerror("%08x:write prot %08x (%08x) %08x\n",cpu_get_pc(&space->device()),offset<<1,mem_mask,data);
+ //logerror("%08x:write prot %08x (%08x) %08x\n",cpu_get_pc(&space.device()),offset<<1,mem_mask,data);
/* Only sound port of chip is used - no protection */
if (offset==0x700/4) {
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
soundlatch_w(space,0,(data>>16)&0xff);
- state->m_nslasher_sound_irq |= 0x02;
- cputag_set_input_line(space->machine(), "audiocpu", 0, (state->m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
+ m_nslasher_sound_irq |= 0x02;
+ cputag_set_input_line(machine(), "audiocpu", 0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
}
}
/**********************************************************************************/
-static READ32_HANDLER( deco32_spriteram_r )
+READ32_MEMBER(deco32_state::deco32_spriteram_r)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
- return state->m_spriteram16[offset] ^ 0xffff0000;
+ return m_spriteram16[offset] ^ 0xffff0000;
}
-static WRITE32_HANDLER( deco32_spriteram_w )
+WRITE32_MEMBER(deco32_state::deco32_spriteram_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&state->m_spriteram16[offset]);
+ COMBINE_DATA(&m_spriteram16[offset]);
}
-static WRITE32_HANDLER( deco32_buffer_spriteram_w )
+WRITE32_MEMBER(deco32_state::deco32_buffer_spriteram_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
- memcpy(state->m_spriteram16_buffered, state->m_spriteram16, 0x1000);
+ memcpy(m_spriteram16_buffered, m_spriteram16, 0x1000);
}
-static READ32_HANDLER( deco32_spriteram2_r )
+READ32_MEMBER(deco32_state::deco32_spriteram2_r)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
- return state->m_spriteram16_2[offset] ^ 0xffff0000;
+ return m_spriteram16_2[offset] ^ 0xffff0000;
}
-static WRITE32_HANDLER( deco32_spriteram2_w )
+WRITE32_MEMBER(deco32_state::deco32_spriteram2_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&state->m_spriteram16_2[offset]);
+ COMBINE_DATA(&m_spriteram16_2[offset]);
}
-static WRITE32_HANDLER( deco32_buffer_spriteram2_w )
+WRITE32_MEMBER(deco32_state::deco32_buffer_spriteram2_w)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
- memcpy(state->m_spriteram16_2_buffered, state->m_spriteram16_2, 0x1000);
+ memcpy(m_spriteram16_2_buffered, m_spriteram16_2, 0x1000);
}
// tattass tests these as 32-bit ram, even if only 16-bits are hooked up to the tilemap chip - does it mirror parts of the dword?
-static WRITE32_HANDLER( deco32_pf1_rowscroll_w ) { deco32_state *state = space->machine().driver_data<deco32_state>(); COMBINE_DATA(&state->m_pf1_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->m_pf1_rowscroll[offset]); }
-static WRITE32_HANDLER( deco32_pf2_rowscroll_w ) { deco32_state *state = space->machine().driver_data<deco32_state>(); COMBINE_DATA(&state->m_pf2_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->m_pf2_rowscroll[offset]); }
-static WRITE32_HANDLER( deco32_pf3_rowscroll_w ) { deco32_state *state = space->machine().driver_data<deco32_state>(); COMBINE_DATA(&state->m_pf3_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->m_pf3_rowscroll[offset]); }
-static WRITE32_HANDLER( deco32_pf4_rowscroll_w ) { deco32_state *state = space->machine().driver_data<deco32_state>(); COMBINE_DATA(&state->m_pf4_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&state->m_pf4_rowscroll[offset]); }
+WRITE32_MEMBER(deco32_state::deco32_pf1_rowscroll_w){ COMBINE_DATA(&m_pf1_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&m_pf1_rowscroll[offset]); }
+WRITE32_MEMBER(deco32_state::deco32_pf2_rowscroll_w){ COMBINE_DATA(&m_pf2_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&m_pf2_rowscroll[offset]); }
+WRITE32_MEMBER(deco32_state::deco32_pf3_rowscroll_w){ COMBINE_DATA(&m_pf3_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&m_pf3_rowscroll[offset]); }
+WRITE32_MEMBER(deco32_state::deco32_pf4_rowscroll_w){ COMBINE_DATA(&m_pf4_rowscroll32[offset]); data &= 0x0000ffff; mem_mask &= 0x0000ffff; COMBINE_DATA(&m_pf4_rowscroll[offset]); }
static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x100000, 0x100007) AM_READ_LEGACY(deco32_71_r)
- AM_RANGE(0x100000, 0x100003) AM_WRITE_LEGACY(deco32_buffer_spriteram_w)
+ AM_RANGE(0x100000, 0x100007) AM_READ(deco32_71_r)
+ AM_RANGE(0x100000, 0x100003) AM_WRITE(deco32_buffer_spriteram_w)
AM_RANGE(0x108000, 0x108003) AM_WRITENOP /* ? */
- AM_RANGE(0x110000, 0x111fff) AM_READWRITE_LEGACY(deco32_spriteram_r, deco32_spriteram_w)
+ AM_RANGE(0x110000, 0x111fff) AM_READWRITE(deco32_spriteram_r, deco32_spriteram_w)
AM_RANGE(0x120000, 0x127fff) AM_RAM AM_BASE(m_ram) /* Main RAM */
- AM_RANGE(0x128000, 0x128fff) AM_READ_LEGACY(captaven_prot_r)
- AM_RANGE(0x1280c8, 0x1280cb) AM_WRITE_LEGACY(deco32_sound_w)
+ AM_RANGE(0x128000, 0x128fff) AM_READ(captaven_prot_r)
+ AM_RANGE(0x1280c8, 0x1280cb) AM_WRITE(deco32_sound_w)
AM_RANGE(0x130000, 0x131fff) AM_RAM_WRITE_LEGACY(deco32_nonbuffered_palette_w) AM_BASE_GENERIC(paletteram) /* Palette RAM */
- AM_RANGE(0x148000, 0x14800f) AM_READWRITE_LEGACY(deco32_irq_controller_r, deco32_irq_controller_w)
+ AM_RANGE(0x148000, 0x14800f) AM_READWRITE(deco32_irq_controller_r, deco32_irq_controller_w)
AM_RANGE(0x160000, 0x167fff) AM_RAM /* Extra work RAM */
- AM_RANGE(0x168000, 0x168003) AM_READ_LEGACY(captaven_soundcpu_r)
+ AM_RANGE(0x168000, 0x168003) AM_READ(captaven_soundcpu_r)
AM_RANGE(0x178000, 0x178003) AM_WRITE_LEGACY(deco32_pri_w)
@@ -756,14 +741,14 @@ static ADDRESS_MAP_START( captaven_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x190000, 0x191fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x192000, 0x193fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w) /* Mirror address - bug in program code */
AM_RANGE(0x194000, 0x195fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1d0000, 0x1d1fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1d4000, 0x1d5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w) // unused
- AM_RANGE(0x1e0000, 0x1e3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32) // unused
+ AM_RANGE(0x1e0000, 0x1e3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32) // unused
ADDRESS_MAP_END
@@ -771,28 +756,28 @@ static ADDRESS_MAP_START( fghthist_map, AS_PROGRAM, 32, deco32_state )
// AM_RANGE(0x000000, 0x001fff) AM_ROM AM_WRITE_LEGACY(deco32_pf1_data_w) // wtf??
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(m_ram)
- AM_RANGE(0x120020, 0x12002f) AM_READ_LEGACY(fghthist_control_r)
- AM_RANGE(0x12002c, 0x12002f) AM_WRITE_LEGACY(fghthist_eeprom_w)
- AM_RANGE(0x1201fc, 0x1201ff) AM_WRITE_LEGACY(deco32_sound_w)
+ AM_RANGE(0x120020, 0x12002f) AM_READ(fghthist_control_r)
+ AM_RANGE(0x12002c, 0x12002f) AM_WRITE(fghthist_eeprom_w)
+ AM_RANGE(0x1201fc, 0x1201ff) AM_WRITE(deco32_sound_w)
AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* VBL irq ack */
AM_RANGE(0x168000, 0x169fff) AM_RAM_WRITE_LEGACY(deco32_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x16c008, 0x16c00b) AM_WRITE_LEGACY(deco32_palette_dma_w)
//
- AM_RANGE(0x178000, 0x179fff) AM_READWRITE_LEGACY(deco32_spriteram_r, deco32_spriteram_w)
- AM_RANGE(0x17c010, 0x17c013) AM_WRITE_LEGACY(deco32_buffer_spriteram_w)
+ AM_RANGE(0x178000, 0x179fff) AM_READWRITE(deco32_spriteram_r, deco32_spriteram_w)
+ AM_RANGE(0x17c010, 0x17c013) AM_WRITE(deco32_buffer_spriteram_w)
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x184000, 0x185fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1a0000, 0x1a001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1c2000, 0x1c3fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1c4000, 0x1c5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
+ AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x16c000, 0x16c01f) AM_READNOP
@@ -806,26 +791,26 @@ static ADDRESS_MAP_START( fghthsta_memmap, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(m_ram)
AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* VBL irq ack */
- AM_RANGE(0x150000, 0x150003) AM_WRITE_LEGACY(fghthist_eeprom_w) /* Volume port/Eprom */
+ AM_RANGE(0x150000, 0x150003) AM_WRITE(fghthist_eeprom_w) /* Volume port/Eprom */
AM_RANGE(0x168000, 0x169fff) AM_RAM_WRITE_LEGACY(deco32_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x16c008, 0x16c00b) AM_WRITE_LEGACY(deco32_palette_dma_w)
AM_RANGE(0x16c010, 0x16c013) AM_READNOP
- AM_RANGE(0x178000, 0x179fff) AM_READWRITE_LEGACY(deco32_spriteram_r, deco32_spriteram_w)
- AM_RANGE(0x17c010, 0x17c013) AM_WRITE_LEGACY(deco32_buffer_spriteram_w)
+ AM_RANGE(0x178000, 0x179fff) AM_READWRITE(deco32_spriteram_r, deco32_spriteram_w)
+ AM_RANGE(0x17c010, 0x17c013) AM_WRITE(deco32_buffer_spriteram_w)
AM_RANGE(0x17c020, 0x17c023) AM_READNOP
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x184000, 0x185fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1a0000, 0x1a001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1c2000, 0x1c3fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1c4000, 0x1c5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
+ AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x200000, 0x200fff) AM_READWRITE_LEGACY(deco16_146_fghthist_prot_r, deco16_146_fghthist_prot_w) AM_BASE_LEGACY(&deco32_prot_ram)
@@ -836,9 +821,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32, dragngun_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(m_ram)
- AM_RANGE(0x120000, 0x120fff) AM_READ_LEGACY(dragngun_prot_r)
- AM_RANGE(0x1204c0, 0x1204c3) AM_WRITE_LEGACY(deco32_sound_w)
- AM_RANGE(0x128000, 0x12800f) AM_READWRITE_LEGACY(deco32_irq_controller_r, deco32_irq_controller_w)
+ AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r)
+ AM_RANGE(0x1204c0, 0x1204c3) AM_WRITE(deco32_sound_w)
+ AM_RANGE(0x128000, 0x12800f) AM_READWRITE(deco32_irq_controller_r, deco32_irq_controller_w)
AM_RANGE(0x130000, 0x131fff) AM_RAM_WRITE_LEGACY(deco32_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x138000, 0x138003) AM_NOP /* Palette dma complete in bit 0x8? ack? return 0 else tight loop */
AM_RANGE(0x138008, 0x13800b) AM_WRITE_LEGACY(deco32_palette_dma_w)
@@ -846,14 +831,14 @@ static ADDRESS_MAP_START( dragngun_map, AS_PROGRAM, 32, dragngun_state )
AM_RANGE(0x180000, 0x18001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x190000, 0x191fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x194000, 0x195fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1d0000, 0x1d1fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1d4000, 0x1d5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w) // unused
- AM_RANGE(0x1e0000, 0x1e3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32) // unused
+ AM_RANGE(0x1e0000, 0x1e3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32) // unused
AM_RANGE(0x204800, 0x204fff) AM_RAM // ace? 0x10 byte increments only // 13f ff stuff
@@ -873,9 +858,9 @@ 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(0x438000, 0x438003) AM_READ_LEGACY(dragngun_lightgun_r)
- AM_RANGE(0x430000, 0x43001f) AM_WRITE_LEGACY(dragngun_lightgun_w)
- AM_RANGE(0x440000, 0x440003) AM_READ_LEGACY(dragngun_service_r)
+ 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)
AM_RANGE(0x500000, 0x500003) AM_WRITE_LEGACY(dragngun_sprite_control_w)
ADDRESS_MAP_END
@@ -883,28 +868,28 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32, dragngun_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(m_ram)
- AM_RANGE(0x120000, 0x120fff) AM_READ_LEGACY(dragngun_prot_r)
- AM_RANGE(0x1204c0, 0x1204c3) AM_WRITE_LEGACY(deco32_sound_w)
- AM_RANGE(0x128000, 0x12800f) AM_READWRITE_LEGACY(deco32_irq_controller_r, deco32_irq_controller_w)
+ AM_RANGE(0x120000, 0x120fff) AM_READ(dragngun_prot_r)
+ AM_RANGE(0x1204c0, 0x1204c3) AM_WRITE(deco32_sound_w)
+ AM_RANGE(0x128000, 0x12800f) AM_READWRITE(deco32_irq_controller_r, deco32_irq_controller_w)
AM_RANGE(0x130000, 0x131fff) AM_RAM_WRITE_LEGACY(deco32_buffered_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x138000, 0x138003) AM_READONLY AM_WRITENOP //palette dma complete in bit 0x8? ack? return 0 else tight loop
AM_RANGE(0x138008, 0x13800b) AM_WRITE_LEGACY(deco32_palette_dma_w)
- AM_RANGE(0x170000, 0x170007) AM_READ_LEGACY(lockload_gun_mirror_r) /* Not on Dragongun */
+ AM_RANGE(0x170000, 0x170007) AM_READ(lockload_gun_mirror_r) /* Not on Dragongun */
AM_RANGE(0x178008, 0x17800f) AM_WRITENOP /* Gun read ACK's */
AM_RANGE(0x180000, 0x18001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x190000, 0x191fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x194000, 0x195fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x1a4000, 0x1a5fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1d0000, 0x1d1fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1d4000, 0x1d5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w) // unused
- AM_RANGE(0x1e0000, 0x1e3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32) // unused
+ AM_RANGE(0x1e0000, 0x1e3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1e4000, 0x1e5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32) // unused
AM_RANGE(0x204800, 0x204fff) AM_RAM //0x10 byte increments only
AM_RANGE(0x208000, 0x208fff) AM_RAM AM_BASE(m_dragngun_sprite_layout_0_ram)
@@ -920,9 +905,9 @@ static ADDRESS_MAP_START( lockload_map, AS_PROGRAM, 32, dragngun_state )
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(0x430000, 0x43001f) AM_WRITE_LEGACY(dragngun_lightgun_w)
-// AM_RANGE(0x438000, 0x438003) AM_READ_LEGACY(dragngun_lightgun_r)
- AM_RANGE(0x440000, 0x440003) AM_READ_LEGACY(dragngun_service_r)
+// 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)
AM_RANGE(0x500000, 0x500003) AM_WRITE_LEGACY(dragngun_sprite_control_w)
ADDRESS_MAP_END
@@ -934,7 +919,7 @@ static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x120000, 0x120003) AM_NOP /* ACIA (unused) */
AM_RANGE(0x130000, 0x130003) AM_WRITENOP /* Coin port (unused?) */
AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* Vblank ack */
- AM_RANGE(0x150000, 0x150003) AM_WRITE_LEGACY(tattass_control_w) /* Volume port/Eprom/Priority */
+ AM_RANGE(0x150000, 0x150003) AM_WRITE(tattass_control_w) /* Volume port/Eprom/Priority */
AM_RANGE(0x162000, 0x162fff) AM_RAM /* 'Jack' RAM!? */
AM_RANGE(0x163000, 0x16309f) AM_RAM_WRITE_LEGACY(deco32_ace_ram_w) AM_BASE(m_ace_ram)
@@ -946,29 +931,29 @@ static ADDRESS_MAP_START( tattass_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x16c000, 0x16c003) AM_WRITENOP
AM_RANGE(0x16c008, 0x16c00b) AM_WRITE_LEGACY(deco32_palette_dma_w)
- AM_RANGE(0x170000, 0x171fff) AM_READWRITE_LEGACY(deco32_spriteram_r, deco32_spriteram_w)
+ AM_RANGE(0x170000, 0x171fff) AM_READWRITE(deco32_spriteram_r, deco32_spriteram_w)
AM_RANGE(0x174000, 0x174003) AM_WRITENOP /* Sprite DMA mode (2) */
- AM_RANGE(0x174010, 0x174013) AM_WRITE_LEGACY(deco32_buffer_spriteram_w)
+ AM_RANGE(0x174010, 0x174013) AM_WRITE(deco32_buffer_spriteram_w)
AM_RANGE(0x174018, 0x17401b) AM_WRITENOP /* Sprite 'CPU' (unused) */
- AM_RANGE(0x178000, 0x179fff) AM_READWRITE_LEGACY(deco32_spriteram2_r, deco32_spriteram2_w)
+ AM_RANGE(0x178000, 0x179fff) AM_READWRITE(deco32_spriteram2_r, deco32_spriteram2_w)
AM_RANGE(0x17c000, 0x17c003) AM_WRITENOP /* Sprite DMA mode (2) */
- AM_RANGE(0x17c010, 0x17c013) AM_WRITE_LEGACY(deco32_buffer_spriteram2_w)
+ AM_RANGE(0x17c010, 0x17c013) AM_WRITE(deco32_buffer_spriteram2_w)
AM_RANGE(0x17c018, 0x17c01b) AM_WRITENOP /* Sprite 'CPU' (unused) */
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x184000, 0x185fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1a0000, 0x1a001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1c2000, 0x1c3fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1c4000, 0x1c5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
+ AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
- AM_RANGE(0x200000, 0x200fff) AM_READWRITE_LEGACY(tattass_prot_r, tattass_prot_w) AM_BASE_LEGACY(&deco32_prot_ram)
+ AM_RANGE(0x200000, 0x200fff) AM_READWRITE(tattass_prot_r, tattass_prot_w) AM_BASE_LEGACY(&deco32_prot_ram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
@@ -976,7 +961,7 @@ static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x100000, 0x11ffff) AM_RAM AM_BASE(m_ram)
AM_RANGE(0x120000, 0x1200ff) AM_NOP /* ACIA (unused) */
AM_RANGE(0x140000, 0x140003) AM_WRITENOP /* Vblank ack */
- AM_RANGE(0x150000, 0x150003) AM_WRITE_LEGACY(nslasher_eeprom_w) /* Volume port/Eprom/Priority */
+ AM_RANGE(0x150000, 0x150003) AM_WRITE(nslasher_eeprom_w) /* Volume port/Eprom/Priority */
AM_RANGE(0x163000, 0x16309f) AM_RAM_WRITE_LEGACY(deco32_ace_ram_w) AM_BASE(m_ace_ram) /* 'Ace' RAM!? */
AM_RANGE(0x164000, 0x164003) AM_WRITENOP /* Palette control BG2/3 ($1a constant) */
@@ -987,29 +972,29 @@ static ADDRESS_MAP_START( nslasher_map, AS_PROGRAM, 32, deco32_state )
AM_RANGE(0x16c000, 0x16c003) AM_WRITENOP
AM_RANGE(0x16c008, 0x16c00b) AM_WRITE_LEGACY(deco32_palette_dma_w)
- AM_RANGE(0x170000, 0x171fff) AM_READWRITE_LEGACY(deco32_spriteram_r, deco32_spriteram_w)
+ AM_RANGE(0x170000, 0x171fff) AM_READWRITE(deco32_spriteram_r, deco32_spriteram_w)
AM_RANGE(0x174000, 0x174003) AM_WRITENOP /* Sprite DMA mode (2) */
- AM_RANGE(0x174010, 0x174013) AM_WRITE_LEGACY(deco32_buffer_spriteram_w)
+ AM_RANGE(0x174010, 0x174013) AM_WRITE(deco32_buffer_spriteram_w)
AM_RANGE(0x174018, 0x17401b) AM_WRITENOP /* Sprite 'CPU' (unused) */
- AM_RANGE(0x178000, 0x179fff) AM_READWRITE_LEGACY(deco32_spriteram2_r, deco32_spriteram2_w)
+ AM_RANGE(0x178000, 0x179fff) AM_READWRITE(deco32_spriteram2_r, deco32_spriteram2_w)
AM_RANGE(0x17c000, 0x17c003) AM_WRITENOP /* Sprite DMA mode (2) */
- AM_RANGE(0x17c010, 0x17c013) AM_WRITE_LEGACY(deco32_buffer_spriteram2_w)
+ AM_RANGE(0x17c010, 0x17c013) AM_WRITE(deco32_buffer_spriteram2_w)
AM_RANGE(0x17c018, 0x17c01b) AM_WRITENOP /* Sprite 'CPU' (unused) */
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x184000, 0x185fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE_LEGACY(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
- AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE_LEGACY(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
+ AM_RANGE(0x192000, 0x193fff) AM_RAM_WRITE(deco32_pf1_rowscroll_w) AM_BASE(m_pf1_rowscroll32)
+ AM_RANGE(0x194000, 0x195fff) AM_RAM_WRITE(deco32_pf2_rowscroll_w) AM_BASE(m_pf2_rowscroll32)
AM_RANGE(0x1a0000, 0x1a001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1c2000, 0x1c3fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1c4000, 0x1c5fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE_LEGACY(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
- AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE_LEGACY(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
+ AM_RANGE(0x1d2000, 0x1d3fff) AM_RAM_WRITE(deco32_pf3_rowscroll_w) AM_BASE(m_pf3_rowscroll32)
+ AM_RANGE(0x1d4000, 0x1d5fff) AM_RAM_WRITE(deco32_pf4_rowscroll_w) AM_BASE(m_pf4_rowscroll32)
AM_RANGE(0x1e0000, 0x1e001f) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
- AM_RANGE(0x200000, 0x200fff) AM_READWRITE_LEGACY(nslasher_prot_r, nslasher_prot_w) AM_BASE_LEGACY(&deco32_prot_ram)
+ AM_RANGE(0x200000, 0x200fff) AM_READWRITE(nslasher_prot_r, nslasher_prot_w) AM_BASE_LEGACY(&deco32_prot_ram)
ADDRESS_MAP_END
/******************************************************************************/
@@ -1025,12 +1010,11 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, deco32_state )
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
ADDRESS_MAP_END
-static READ8_HANDLER(latch_r)
+READ8_MEMBER(deco32_state::latch_r)
{
- deco32_state *state = space->machine().driver_data<deco32_state>();
/* bit 1 of nslasher_sound_irq specifies IRQ command writes */
- state->m_nslasher_sound_irq &= ~0x02;
- cputag_set_input_line(space->machine(), "audiocpu", 0, (state->m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
+ m_nslasher_sound_irq &= ~0x02;
+ cputag_set_input_line(machine(), "audiocpu", 0, (m_nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
return soundlatch_r(space,0);
}
@@ -1040,7 +1024,7 @@ static ADDRESS_MAP_START( nslasher_sound, AS_PROGRAM, 8, deco32_state )
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xb000, 0xb000) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xc000, 0xc000) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
- AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(latch_r)
+ AM_RANGE(0xd000, 0xd000) AM_READ(latch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nslasher_io_sound, AS_IO, 8, deco32_state )
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index 5e8b364eded..3132e680f70 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -107,23 +107,23 @@
/***************************************************************************/
-static READ32_HANDLER(test2_r)
+READ32_MEMBER(deco_mlc_state::test2_r)
{
// if (offset==0)
-// return input_port_read(space->machine(), "IN0"); //0xffffffff;
-// logerror("%08x: Test2_r %d\n",cpu_get_pc(&space->device()),offset);
- return space->machine().rand(); //0xffffffff;
+// return input_port_read(machine(), "IN0"); //0xffffffff;
+// logerror("%08x: Test2_r %d\n",cpu_get_pc(&space.device()),offset);
+ return machine().rand(); //0xffffffff;
}
-static READ32_HANDLER(test3_r)
+READ32_MEMBER(deco_mlc_state::test3_r)
{
/*
test3 7 - vbl loop on 0x10 0000 at end of IRQ
*/
//if (offset==0)
-// return space->machine().rand()|(space->machine().rand()<<16);
-// logerror("%08x: Test3_r %d\n",cpu_get_pc(&space->device()),offset);
+// return machine().rand()|(machine().rand()<<16);
+// logerror("%08x: Test3_r %d\n",cpu_get_pc(&space.device()),offset);
return 0xffffffff;
}
@@ -145,26 +145,25 @@ static WRITE32_DEVICE_HANDLER( avengrs_eprom_w )
logerror("%s: eprom_w %08x mask %08x\n",device->machine().describe_context(),data,mem_mask);
}
-static WRITE32_HANDLER( avengrs_palette_w )
+WRITE32_MEMBER(deco_mlc_state::avengrs_palette_w)
{
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
/* x bbbbb ggggg rrrrr */
- palette_set_color_rgb(space->machine(),offset,pal5bit(space->machine().generic.paletteram.u32[offset] >> 0),pal5bit(space->machine().generic.paletteram.u32[offset] >> 5),pal5bit(space->machine().generic.paletteram.u32[offset] >> 10));
+ palette_set_color_rgb(machine(),offset,pal5bit(machine().generic.paletteram.u32[offset] >> 0),pal5bit(machine().generic.paletteram.u32[offset] >> 5),pal5bit(machine().generic.paletteram.u32[offset] >> 10));
}
-static READ32_HANDLER( decomlc_vbl_r )
+READ32_MEMBER(deco_mlc_state::decomlc_vbl_r)
{
- deco_mlc_state *state = space->machine().driver_data<deco_mlc_state>();
- state->m_vbl_i ^=0xffffffff;
-//logerror("vbl r %08x\n", cpu_get_pc(&space->device()));
+ m_vbl_i ^=0xffffffff;
+//logerror("vbl r %08x\n", cpu_get_pc(&space.device()));
// Todo: Vblank probably in $10
- return state->m_vbl_i;
+ return m_vbl_i;
}
-static READ32_HANDLER( mlc_scanline_r )
+READ32_MEMBER(deco_mlc_state::mlc_scanline_r)
{
-// logerror("read scanline counter (%d)\n", space->machine().primary_screen->vpos());
- return space->machine().primary_screen->vpos();
+// logerror("read scanline counter (%d)\n", machine().primary_screen->vpos());
+ return machine().primary_screen->vpos();
}
static TIMER_DEVICE_CALLBACK( interrupt_gen )
@@ -174,20 +173,19 @@ static TIMER_DEVICE_CALLBACK( interrupt_gen )
cputag_set_input_line(timer.machine(), "maincpu", state->m_mainCpuIsArm ? ARM_IRQ_LINE : 1, HOLD_LINE);
}
-static WRITE32_HANDLER( mlc_irq_w )
+WRITE32_MEMBER(deco_mlc_state::mlc_irq_w)
{
- deco_mlc_state *state = space->machine().driver_data<deco_mlc_state>();
- int scanline=space->machine().primary_screen->vpos();
- state->m_irq_ram[offset]=data&0xffff;
+ int scanline=machine().primary_screen->vpos();
+ m_irq_ram[offset]=data&0xffff;
switch (offset*4)
{
case 0x10: /* IRQ ack. Value written doesn't matter */
- cputag_set_input_line(space->machine(), "maincpu", state->m_mainCpuIsArm ? ARM_IRQ_LINE : 1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", m_mainCpuIsArm ? ARM_IRQ_LINE : 1, CLEAR_LINE);
return;
case 0x14: /* Prepare scanline interrupt */
- state->m_raster_irq_timer->adjust(space->machine().primary_screen->time_until_pos(state->m_irq_ram[0x14/4]));
- //logerror("prepare scanline to fire at %d (currently on %d)\n", state->m_irq_ram[0x14/4], space->machine().primary_screen->vpos());
+ m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(m_irq_ram[0x14/4]));
+ //logerror("prepare scanline to fire at %d (currently on %d)\n", m_irq_ram[0x14/4], machine().primary_screen->vpos());
return;
case 0x18:
case 0x1c:
@@ -201,17 +199,17 @@ static WRITE32_HANDLER( mlc_irq_w )
if (scanline > 255)
scanline = 255;
/* Update scanlines up to present line */
- while (state->m_lastScanline[offset-6]<scanline)
+ while (m_lastScanline[offset-6]<scanline)
{
- state->m_mlc_raster_table[offset-6][state->m_lastScanline[offset-6]+1]=state->m_mlc_raster_table[offset-6][state->m_lastScanline[offset-6]];
- state->m_lastScanline[offset-6]++;
+ m_mlc_raster_table[offset-6][m_lastScanline[offset-6]+1]=m_mlc_raster_table[offset-6][m_lastScanline[offset-6]];
+ m_lastScanline[offset-6]++;
}
- if (state->m_lastScanline[offset-6] > scanline)
- state->m_lastScanline[offset-6]=0;
+ if (m_lastScanline[offset-6] > scanline)
+ m_lastScanline[offset-6]=0;
/* Set current scanline value */
- state->m_mlc_raster_table[offset-6][scanline]=data&0xffff;
+ m_mlc_raster_table[offset-6][scanline]=data&0xffff;
break;
default:
@@ -221,19 +219,17 @@ static WRITE32_HANDLER( mlc_irq_w )
// logerror("irqw %04x %04x (%d)\n", offset * 4, data&0xffff, scanline);
}
-static READ32_HANDLER(mlc_spriteram_r)
+READ32_MEMBER(deco_mlc_state::mlc_spriteram_r)
{
- deco_mlc_state *state = space->machine().driver_data<deco_mlc_state>();
- return state->m_spriteram[offset]&0xffff;
+ return m_spriteram[offset]&0xffff;
}
-static READ32_HANDLER(mlc_vram_r)
+READ32_MEMBER(deco_mlc_state::mlc_vram_r)
{
- deco_mlc_state *state = space->machine().driver_data<deco_mlc_state>();
- return state->m_mlc_vram[offset]&0xffff;
+ return m_mlc_vram[offset]&0xffff;
}
-static READ32_HANDLER(stadhr96_prot_146_r)
+READ32_MEMBER(deco_mlc_state::stadhr96_prot_146_r)
{
/*
cpu #0 (PC=00041BD0): unmapped program memory dword write to 00708004 = 000F0000 & FFFFFFFF
@@ -244,7 +240,7 @@ static READ32_HANDLER(stadhr96_prot_146_r)
*/
offset<<=1;
- logerror("%08x: Read prot %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%08x: Read prot %04x\n", cpu_get_pc(&space.device()), offset);
if (offset==0x5c4)
return 0xaa55 << 16;
@@ -264,20 +260,20 @@ static ADDRESS_MAP_START( decomlc_map, AS_PROGRAM, 32, deco_mlc_state )
AM_RANGE(0x0000000, 0x00fffff) AM_ROM AM_MIRROR(0xff000000)
AM_RANGE(0x0100000, 0x011ffff) AM_RAM AM_BASE(m_mlc_ram) AM_MIRROR(0xff000000)
AM_RANGE(0x0200000, 0x020000f) AM_READNOP AM_MIRROR(0xff000000)/* IRQ control? */
- AM_RANGE(0x0200070, 0x0200073) AM_READ_LEGACY(decomlc_vbl_r) AM_MIRROR(0xff000000)
- AM_RANGE(0x0200074, 0x0200077) AM_READ_LEGACY(mlc_scanline_r) AM_MIRROR(0xff000000)
- AM_RANGE(0x0200078, 0x020007f) AM_READ_LEGACY(test2_r) AM_MIRROR(0xff000000)
- AM_RANGE(0x0200000, 0x020007f) AM_WRITE_LEGACY(mlc_irq_w) AM_BASE(m_irq_ram) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0200070, 0x0200073) AM_READ(decomlc_vbl_r) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0200074, 0x0200077) AM_READ(mlc_scanline_r) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0200078, 0x020007f) AM_READ(test2_r) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0200000, 0x020007f) AM_WRITE(mlc_irq_w) AM_BASE(m_irq_ram) AM_MIRROR(0xff000000)
AM_RANGE(0x0200080, 0x02000ff) AM_RAM AM_BASE(m_mlc_clip_ram) AM_MIRROR(0xff000000)
- AM_RANGE(0x0204000, 0x0206fff) AM_RAM_READ_LEGACY(mlc_spriteram_r) AM_BASE_SIZE(m_spriteram, m_spriteram_size) AM_MIRROR(0xff000000)
- AM_RANGE(0x0280000, 0x029ffff) AM_RAM_READ_LEGACY(mlc_vram_r) AM_BASE(m_mlc_vram) AM_MIRROR(0xff000000)
- AM_RANGE(0x0300000, 0x0307fff) AM_RAM_WRITE_LEGACY(avengrs_palette_w) AM_BASE_GENERIC(paletteram) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0204000, 0x0206fff) AM_RAM_READ(mlc_spriteram_r) AM_BASE_SIZE(m_spriteram, m_spriteram_size) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0280000, 0x029ffff) AM_RAM_READ(mlc_vram_r) AM_BASE(m_mlc_vram) AM_MIRROR(0xff000000)
+ AM_RANGE(0x0300000, 0x0307fff) AM_RAM_WRITE(avengrs_palette_w) AM_BASE_GENERIC(paletteram) AM_MIRROR(0xff000000)
AM_RANGE(0x0400000, 0x0400003) AM_READ_PORT("INPUTS") AM_MIRROR(0xff000000)
- AM_RANGE(0x0440000, 0x044001f) AM_READ_LEGACY(test3_r) 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(0x0600000, 0x0600007) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0xff000000) AM_MIRROR(0xff000000)
- AM_RANGE(0x070f000, 0x070ffff) AM_READ_LEGACY(stadhr96_prot_146_r) 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)
ADDRESS_MAP_END
@@ -722,13 +718,12 @@ static void descramble_sound( running_machine &machine )
auto_free (machine, buf1);
}
-static READ32_HANDLER( avengrgs_speedup_r )
+READ32_MEMBER(deco_mlc_state::avengrgs_speedup_r)
{
- deco_mlc_state *state = space->machine().driver_data<deco_mlc_state>();
- UINT32 a=state->m_mlc_ram[0x89a0/4];
- UINT32 p=cpu_get_pc(&space->device());
+ UINT32 a=m_mlc_ram[0x89a0/4];
+ UINT32 p=cpu_get_pc(&space.device());
- if ((p==0x3234 || p==0x32dc) && (a&1)) device_spin_until_interrupt(&space->device());
+ if ((p==0x3234 || p==0x32dc) && (a&1)) device_spin_until_interrupt(&space.device());
return a;
}
@@ -744,7 +739,7 @@ static DRIVER_INIT( avengrgs )
sh2drc_add_pcflush(machine.device("maincpu"), 0x32dc);
state->m_mainCpuIsArm = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x01089a0, 0x01089a3, FUNC(avengrgs_speedup_r) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x01089a0, 0x01089a3, read32_delegate(FUNC(deco_mlc_state::avengrgs_speedup_r),state));
descramble_sound(machine);
}
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index 4631e30e8df..b7c798c57c7 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -48,13 +48,12 @@ Notes:
#include "includes/deniam.h"
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(deniam_state::sound_command_w)
{
- deniam_state *state = space->machine().driver_data<deniam_state>();
if (ACCESSING_BITS_8_15)
{
soundlatch_w(space,offset, (data >> 8) & 0xff);
- device_set_input_line(state->m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -73,9 +72,9 @@ static WRITE16_DEVICE_HANDLER( deniam16c_oki_rom_bank_w )
}
}
-static WRITE16_HANDLER( deniam_irq_ack_w )
+WRITE16_MEMBER(deniam_state::deniam_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 4, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, CLEAR_LINE);
}
static ADDRESS_MAP_START( deniam16b_map, AS_PROGRAM, 16, deniam_state )
@@ -84,9 +83,9 @@ static ADDRESS_MAP_START( deniam16b_map, AS_PROGRAM, 16, deniam_state )
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(deniam_textram_w) AM_BASE(m_textram)
AM_RANGE(0x440000, 0x4407ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x840000, 0x840fff) AM_WRITE_LEGACY(deniam_palette_w) AM_BASE(m_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_w)
AM_RANGE(0xc40002, 0xc40003) AM_READWRITE_LEGACY(deniam_coinctrl_r, deniam_coinctrl_w)
- AM_RANGE(0xc40004, 0xc40005) AM_WRITE_LEGACY(deniam_irq_ack_w)
+ AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w)
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
@@ -117,7 +116,7 @@ static ADDRESS_MAP_START( deniam16c_map, AS_PROGRAM, 16, deniam_state )
AM_RANGE(0x840000, 0x840fff) AM_WRITE_LEGACY(deniam_palette_w) AM_BASE(m_paletteram)
AM_RANGE(0xc40000, 0xc40001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0xc40002, 0xc40003) AM_READWRITE_LEGACY(deniam_coinctrl_r, deniam_coinctrl_w)
- AM_RANGE(0xc40004, 0xc40005) AM_WRITE_LEGACY(deniam_irq_ack_w)
+ AM_RANGE(0xc40004, 0xc40005) AM_WRITE(deniam_irq_ack_w)
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
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index f953e634cae..13c90bc4cc8 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -147,45 +147,40 @@ Notes:
/* KANEKO BEAST state */
-static WRITE8_HANDLER( beast_data_w )
+WRITE8_MEMBER(djboy_state::beast_data_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- state->m_data_to_beast = data;
- state->m_z80_to_beast_full = 1;
- state->m_beast_int0_l = 0;
- device_set_input_line(state->m_beast, INPUT_LINE_IRQ0, ASSERT_LINE);
+ m_data_to_beast = data;
+ m_z80_to_beast_full = 1;
+ m_beast_int0_l = 0;
+ device_set_input_line(m_beast, INPUT_LINE_IRQ0, ASSERT_LINE);
}
-static READ8_HANDLER( beast_data_r )
+READ8_MEMBER(djboy_state::beast_data_r)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- state->m_beast_to_z80_full = 0;
- return state->m_data_to_z80;
+ m_beast_to_z80_full = 0;
+ return m_data_to_z80;
}
-static READ8_HANDLER( beast_status_r )
+READ8_MEMBER(djboy_state::beast_status_r)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- return (!state->m_beast_to_z80_full << 2) | (state->m_z80_to_beast_full << 3);
+ return (!m_beast_to_z80_full << 2) | (m_z80_to_beast_full << 3);
}
/******************************************************************************/
-static WRITE8_HANDLER( trigger_nmi_on_cpu0 )
+WRITE8_MEMBER(djboy_state::trigger_nmi_on_cpu0)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( cpu0_bankswitch_w )
+WRITE8_MEMBER(djboy_state::cpu0_bankswitch_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- data ^= state->m_bankxor;
- memory_set_bank(space->machine(), "bank1", data);
- memory_set_bank(space->machine(), "bank4", 0); /* unsure if/how this area is banked */
+ data ^= m_bankxor;
+ memory_set_bank(machine(), "bank1", data);
+ memory_set_bank(machine(), "bank4", 0); /* unsure if/how this area is banked */
}
/******************************************************************************/
@@ -196,10 +191,9 @@ static WRITE8_HANDLER( cpu0_bankswitch_w )
* ---x---- screen flip
* ----xxxx bank
*/
-static WRITE8_HANDLER( cpu1_bankswitch_w )
+WRITE8_MEMBER(djboy_state::cpu1_bankswitch_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- state->m_videoreg = data;
+ m_videoreg = data;
switch (data & 0xf)
{
@@ -208,7 +202,7 @@ static WRITE8_HANDLER( cpu1_bankswitch_w )
case 0x01:
case 0x02:
case 0x03:
- memory_set_bank(space->machine(), "bank2", (data & 0xf));
+ memory_set_bank(machine(), "bank2", (data & 0xf));
break;
/* bs101.6w */
@@ -220,7 +214,7 @@ static WRITE8_HANDLER( cpu1_bankswitch_w )
case 0x0d:
case 0x0e:
case 0x0f:
- memory_set_bank(space->machine(), "bank2", (data & 0xf) - 4);
+ memory_set_bank(machine(), "bank2", (data & 0xf) - 4);
break;
default:
@@ -228,24 +222,23 @@ static WRITE8_HANDLER( cpu1_bankswitch_w )
}
}
-static WRITE8_HANDLER( coin_count_w )
+WRITE8_MEMBER(djboy_state::coin_count_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
/******************************************************************************/
-static WRITE8_HANDLER( trigger_nmi_on_sound_cpu2 )
+WRITE8_MEMBER(djboy_state::trigger_nmi_on_sound_cpu2)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_cpu2, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_cpu2, INPUT_LINE_NMI, PULSE_LINE);
} /* trigger_nmi_on_sound_cpu2 */
-static WRITE8_HANDLER( cpu2_bankswitch_w )
+WRITE8_MEMBER(djboy_state::cpu2_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank3", data); // shall we check data<0x07?
+ memory_set_bank(machine(), "bank3", data); // shall we check data<0x07?
}
/******************************************************************************/
@@ -262,7 +255,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu0_port_am, AS_IO, 8, djboy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(cpu0_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(cpu0_bankswitch_w)
ADDRESS_MAP_END
/******************************************************************************/
@@ -278,14 +271,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu1_port_am, AS_IO, 8, djboy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(cpu1_bankswitch_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(trigger_nmi_on_sound_cpu2)
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(beast_data_r, beast_data_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(cpu1_bankswitch_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(trigger_nmi_on_sound_cpu2)
+ AM_RANGE(0x04, 0x04) AM_READWRITE(beast_data_r, beast_data_w)
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(djboy_scrolly_w)
AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(djboy_scrollx_w)
- AM_RANGE(0x0a, 0x0a) AM_WRITE_LEGACY(trigger_nmi_on_cpu0)
- AM_RANGE(0x0c, 0x0c) AM_READ_LEGACY(beast_status_r)
- AM_RANGE(0x0e, 0x0e) AM_WRITE_LEGACY(coin_count_w)
+ AM_RANGE(0x0a, 0x0a) AM_WRITE(trigger_nmi_on_cpu0)
+ AM_RANGE(0x0c, 0x0c) AM_READ(beast_status_r)
+ AM_RANGE(0x0e, 0x0e) AM_WRITE(coin_count_w)
ADDRESS_MAP_END
/******************************************************************************/
@@ -298,7 +291,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_port_am, AS_IO, 8, djboy_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(cpu2_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(cpu2_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x06, 0x06) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
@@ -307,102 +300,95 @@ ADDRESS_MAP_END
/******************************************************************************/
-static READ8_HANDLER( beast_p0_r )
+READ8_MEMBER(djboy_state::beast_p0_r)
{
// ?
return 0;
}
-static WRITE8_HANDLER( beast_p0_w )
+WRITE8_MEMBER(djboy_state::beast_p0_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- if (!BIT(state->m_beast_p0, 1) && BIT(data, 1))
+ if (!BIT(m_beast_p0, 1) && BIT(data, 1))
{
- state->m_beast_to_z80_full = 1;
- state->m_data_to_z80 = state->m_beast_p1;
+ m_beast_to_z80_full = 1;
+ m_data_to_z80 = m_beast_p1;
}
if (BIT(data, 0) == 1)
- state->m_z80_to_beast_full = 0;
+ m_z80_to_beast_full = 0;
- state->m_beast_p0 = data;
+ m_beast_p0 = data;
}
-static READ8_HANDLER( beast_p1_r )
+READ8_MEMBER(djboy_state::beast_p1_r)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- if (BIT(state->m_beast_p0, 0) == 0)
- return state->m_data_to_beast;
+ if (BIT(m_beast_p0, 0) == 0)
+ return m_data_to_beast;
else
return 0; // ?
}
-static WRITE8_HANDLER( beast_p1_w )
+WRITE8_MEMBER(djboy_state::beast_p1_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
if (data == 0xff)
{
- state->m_beast_int0_l = 1;
- device_set_input_line(state->m_beast, INPUT_LINE_IRQ0, CLEAR_LINE);
+ m_beast_int0_l = 1;
+ device_set_input_line(m_beast, INPUT_LINE_IRQ0, CLEAR_LINE);
}
- state->m_beast_p1 = data;
+ m_beast_p1 = data;
}
-static READ8_HANDLER( beast_p2_r )
+READ8_MEMBER(djboy_state::beast_p2_r)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- switch ((state->m_beast_p0 >> 2) & 3)
+ switch ((m_beast_p0 >> 2) & 3)
{
- case 0: return input_port_read(space->machine(), "IN1");
- case 1: return input_port_read(space->machine(), "IN2");
- case 2: return input_port_read(space->machine(), "IN0");
+ case 0: return input_port_read(machine(), "IN1");
+ case 1: return input_port_read(machine(), "IN2");
+ case 2: return input_port_read(machine(), "IN0");
default: return 0xff;
}
}
-static WRITE8_HANDLER( beast_p2_w )
+WRITE8_MEMBER(djboy_state::beast_p2_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- state->m_beast_p2 = data;
+ m_beast_p2 = data;
}
-static READ8_HANDLER( beast_p3_r )
+READ8_MEMBER(djboy_state::beast_p3_r)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
UINT8 dsw = 0;
- UINT8 dsw1 = ~input_port_read(space->machine(), "DSW1");
- UINT8 dsw2 = ~input_port_read(space->machine(), "DSW2");
+ UINT8 dsw1 = ~input_port_read(machine(), "DSW1");
+ UINT8 dsw2 = ~input_port_read(machine(), "DSW2");
- switch ((state->m_beast_p0 >> 5) & 3)
+ switch ((m_beast_p0 >> 5) & 3)
{
case 0: dsw = (BIT(dsw2, 4) << 3) | (BIT(dsw2, 0) << 2) | (BIT(dsw1, 4) << 1) | BIT(dsw1, 0); break;
case 1: dsw = (BIT(dsw2, 5) << 3) | (BIT(dsw2, 1) << 2) | (BIT(dsw1, 5) << 1) | BIT(dsw1, 1); break;
case 2: dsw = (BIT(dsw2, 6) << 3) | (BIT(dsw2, 2) << 2) | (BIT(dsw1, 6) << 1) | BIT(dsw1, 2); break;
case 3: dsw = (BIT(dsw2, 7) << 3) | (BIT(dsw2, 3) << 2) | (BIT(dsw1, 7) << 1) | BIT(dsw1, 3); break;
}
- return (dsw << 4) | (state->m_beast_int0_l << 2) | (state->m_beast_to_z80_full << 3);
+ return (dsw << 4) | (m_beast_int0_l << 2) | (m_beast_to_z80_full << 3);
}
-static WRITE8_HANDLER( beast_p3_w )
+WRITE8_MEMBER(djboy_state::beast_p3_w)
{
- djboy_state *state = space->machine().driver_data<djboy_state>();
- state->m_beast_p3 = data;
- device_set_input_line(state->m_cpu1, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
+ m_beast_p3 = data;
+ device_set_input_line(m_cpu1, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
}
/* Program/data maps are defined in the 8051 core */
static ADDRESS_MAP_START( djboy_mcu_io_map, AS_IO, 8, djboy_state )
- AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READWRITE_LEGACY(beast_p0_r, beast_p0_w)
- AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READWRITE_LEGACY(beast_p1_r, beast_p1_w)
- AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_READWRITE_LEGACY(beast_p2_r, beast_p2_w)
- AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE_LEGACY(beast_p3_r, beast_p3_w)
+ AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READWRITE(beast_p0_r, beast_p0_w)
+ AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READWRITE(beast_p1_r, beast_p1_w)
+ AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_READWRITE(beast_p2_r, beast_p2_w)
+ AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(beast_p3_r, beast_p3_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index 0d67ef03288..8b63ce99db8 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -84,18 +84,18 @@ hard drive 3.5 adapter long 3.5 IDE cable 3.5 adapter PCB
*
*************************************/
-static WRITE32_HANDLER( paletteram32_w )
+WRITE32_MEMBER(djmain_state::paletteram32_w)
{
int r,g,b;
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
- data = space->machine().generic.paletteram.u32[offset];
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
+ data = machine().generic.paletteram.u32[offset];
r = (data >> 0) & 0xff;
g = (data >> 8) & 0xff;
b = (data >> 16) & 0xff;
- palette_set_color(space->machine(), offset, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), offset, MAKE_RGB(r, g, b));
}
@@ -107,77 +107,71 @@ static void sndram_set_bank(running_machine &machine)
state->m_sndram = machine.region("shared")->base() + 0x80000 * state->m_sndram_bank;
}
-static WRITE32_HANDLER( sndram_bank_w )
+WRITE32_MEMBER(djmain_state::sndram_bank_w)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
if (ACCESSING_BITS_16_31)
{
- state->m_sndram_bank = (data >> 16) & 0x1f;
- sndram_set_bank(space->machine());
+ m_sndram_bank = (data >> 16) & 0x1f;
+ sndram_set_bank(machine());
}
}
-static READ32_HANDLER( sndram_r )
+READ32_MEMBER(djmain_state::sndram_r)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
UINT32 data = 0;
if (ACCESSING_BITS_24_31)
- data |= state->m_sndram[offset * 4] << 24;
+ data |= m_sndram[offset * 4] << 24;
if (ACCESSING_BITS_16_23)
- data |= state->m_sndram[offset * 4 + 1] << 16;
+ data |= m_sndram[offset * 4 + 1] << 16;
if (ACCESSING_BITS_8_15)
- data |= state->m_sndram[offset * 4 + 2] << 8;
+ data |= m_sndram[offset * 4 + 2] << 8;
if (ACCESSING_BITS_0_7)
- data |= state->m_sndram[offset * 4 + 3];
+ data |= m_sndram[offset * 4 + 3];
return data;
}
-static WRITE32_HANDLER( sndram_w )
+WRITE32_MEMBER(djmain_state::sndram_w)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
if (ACCESSING_BITS_24_31)
- state->m_sndram[offset * 4] = data >> 24;
+ m_sndram[offset * 4] = data >> 24;
if (ACCESSING_BITS_16_23)
- state->m_sndram[offset * 4 + 1] = data >> 16;
+ m_sndram[offset * 4 + 1] = data >> 16;
if (ACCESSING_BITS_8_15)
- state->m_sndram[offset * 4 + 2] = data >> 8;
+ m_sndram[offset * 4 + 2] = data >> 8;
if (ACCESSING_BITS_0_7)
- state->m_sndram[offset * 4 + 3] = data;
+ m_sndram[offset * 4 + 3] = data;
}
//---------
-static READ32_HANDLER( obj_ctrl_r )
+READ32_MEMBER(djmain_state::obj_ctrl_r)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
- // read state->m_obj_regs[0x0c/4]: unknown
- // read state->m_obj_regs[0x24/4]: unknown
+ // read m_obj_regs[0x0c/4]: unknown
+ // read m_obj_regs[0x24/4]: unknown
- return state->m_obj_regs[offset];
+ return m_obj_regs[offset];
}
-static WRITE32_HANDLER( obj_ctrl_w )
+WRITE32_MEMBER(djmain_state::obj_ctrl_w)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
- // write state->m_obj_regs[0x28/4]: bank for rom readthrough
+ // write m_obj_regs[0x28/4]: bank for rom readthrough
- COMBINE_DATA(&state->m_obj_regs[offset]);
+ COMBINE_DATA(&m_obj_regs[offset]);
}
-static READ32_HANDLER( obj_rom_r )
+READ32_MEMBER(djmain_state::obj_rom_r)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
- UINT8 *mem8 = space->machine().region("gfx1")->base();
- int bank = state->m_obj_regs[0x28/4] >> 16;
+ UINT8 *mem8 = machine().region("gfx1")->base();
+ int bank = m_obj_regs[0x28/4] >> 16;
offset += bank * 0x200;
offset *= 4;
@@ -194,28 +188,26 @@ static READ32_HANDLER( obj_rom_r )
//---------
-static WRITE32_HANDLER( v_ctrl_w )
+WRITE32_MEMBER(djmain_state::v_ctrl_w)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
if (ACCESSING_BITS_16_31)
{
data >>= 16;
mem_mask >>= 16;
- COMBINE_DATA(&state->m_v_ctrl);
+ COMBINE_DATA(&m_v_ctrl);
- if (state->m_pending_vb_int && !DISABLE_VB_INT)
+ if (m_pending_vb_int && !(!(m_v_ctrl & 0x8000))) // #define DISABLE_VB_INT (!(state->m_v_ctrl & 0x8000))
{
- state->m_pending_vb_int = 0;
- cputag_set_input_line(space->machine(), "maincpu", M68K_IRQ_4, HOLD_LINE);
+ m_pending_vb_int = 0;
+ cputag_set_input_line(machine(), "maincpu", M68K_IRQ_4, HOLD_LINE);
}
}
}
-static READ32_HANDLER( v_rom_r )
+READ32_MEMBER(djmain_state::v_rom_r)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
- device_t *k056832 = space->machine().device("k056832");
- UINT8 *mem8 = space->machine().region("gfx2")->base();
+ device_t *k056832 = machine().device("k056832");
+ UINT8 *mem8 = machine().region("gfx2")->base();
int bank = k056832_word_r(k056832, 0x34/2, 0xffff);
offset *= 2;
@@ -225,7 +217,7 @@ static READ32_HANDLER( v_rom_r )
offset += bank * 0x800 * 4;
- if (state->m_v_ctrl & 0x020)
+ if (m_v_ctrl & 0x020)
offset += 0x800 * 2;
return mem8[offset] * 0x01010000;
@@ -234,21 +226,20 @@ static READ32_HANDLER( v_rom_r )
//---------
-static READ8_HANDLER( inp1_r )
+READ8_MEMBER(djmain_state::inp1_r)
{
static const char *const portnames[] = { "DSW3", "BTN3", "BTN2", "BTN1" };
- return input_port_read(space->machine(), portnames[ offset & 0x03 ]);
+ return input_port_read(machine(), portnames[ offset & 0x03 ]);
}
-static READ8_HANDLER( inp2_r )
+READ8_MEMBER(djmain_state::inp2_r)
{
static const char *const portnames[] = { "DSW1", "DSW2", "UNK2", "UNK1" };
- return input_port_read(space->machine(), portnames[ offset & 0x03 ]);
+ return input_port_read(machine(), portnames[ offset & 0x03 ]);
}
-static READ32_HANDLER( turntable_r )
+READ32_MEMBER(djmain_state::turntable_r)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
UINT32 result = 0;
static const char *const ttnames[] = { "TT1", "TT2" };
@@ -257,27 +248,26 @@ static READ32_HANDLER( turntable_r )
UINT8 pos;
int delta;
- pos = input_port_read_safe(space->machine(), ttnames[state->m_turntable_select], 0);
- delta = pos - state->m_turntable_last_pos[state->m_turntable_select];
+ pos = input_port_read_safe(machine(), ttnames[m_turntable_select], 0);
+ delta = pos - m_turntable_last_pos[m_turntable_select];
if (delta < -128)
delta += 256;
if (delta > 128)
delta -= 256;
- state->m_turntable_pos[state->m_turntable_select] += delta * 70;
- state->m_turntable_last_pos[state->m_turntable_select] = pos;
+ m_turntable_pos[m_turntable_select] += delta * 70;
+ m_turntable_last_pos[m_turntable_select] = pos;
- result |= state->m_turntable_pos[state->m_turntable_select] & 0xff00;
+ result |= m_turntable_pos[m_turntable_select] & 0xff00;
}
return result;
}
-static WRITE32_HANDLER( turntable_select_w )
+WRITE32_MEMBER(djmain_state::turntable_select_w)
{
- djmain_state *state = space->machine().driver_data<djmain_state>();
if (ACCESSING_BITS_16_23)
- state->m_turntable_select = (data >> 19) & 1;
+ m_turntable_select = (data >> 19) & 1;
}
@@ -351,7 +341,7 @@ static WRITE32_DEVICE_HANDLER( ide_alt_w )
15: not used? (always low)
*/
-static WRITE32_HANDLER( light_ctrl_1_w )
+WRITE32_MEMBER(djmain_state::light_ctrl_1_w)
{
if (ACCESSING_BITS_16_31)
{
@@ -362,15 +352,15 @@ static WRITE32_HANDLER( light_ctrl_1_w )
}
}
-static WRITE32_HANDLER( light_ctrl_2_w )
+WRITE32_MEMBER(djmain_state::light_ctrl_2_w)
{
if (ACCESSING_BITS_16_31)
{
output_set_value("left-ssr", !!(data & 0x08000000)); // SSR
output_set_value("right-ssr", !!(data & 0x08000000)); // SSR
- set_led_status(space->machine(), 0, data & 0x00010000); // 1P START
- set_led_status(space->machine(), 1, data & 0x00020000); // 2P START
- set_led_status(space->machine(), 2, data & 0x00040000); // EFFECT
+ set_led_status(machine(), 0, data & 0x00010000); // 1P START
+ set_led_status(machine(), 1, data & 0x00020000); // 2P START
+ set_led_status(machine(), 2, data & 0x00040000); // EFFECT
}
}
@@ -379,19 +369,19 @@ static WRITE32_HANDLER( light_ctrl_2_w )
// unknown ports :-(
-static WRITE32_HANDLER( unknown590000_w )
+WRITE32_MEMBER(djmain_state::unknown590000_w)
{
- //logerror("%08X: unknown 590000 write %08X: %08X & %08X\n", cpu_get_previouspc(&space->device()), offset, data, mem_mask);
+ //logerror("%08X: unknown 590000 write %08X: %08X & %08X\n", cpu_get_previouspc(&space.device()), offset, data, mem_mask);
}
-static WRITE32_HANDLER( unknown802000_w )
+WRITE32_MEMBER(djmain_state::unknown802000_w)
{
- //logerror("%08X: unknown 802000 write %08X: %08X & %08X\n", cpu_get_previouspc(&space->device()), offset, data, mem_mask);
+ //logerror("%08X: unknown 802000 write %08X: %08X & %08X\n", cpu_get_previouspc(&space.device()), offset, data, mem_mask);
}
-static WRITE32_HANDLER( unknownc02000_w )
+WRITE32_MEMBER(djmain_state::unknownc02000_w)
{
- //logerror("%08X: unknown c02000 write %08X: %08X & %08X\n", cpu_get_previouspc(&space->device()), offset, data, mem_mask);
+ //logerror("%08X: unknown c02000 write %08X: %08X & %08X\n", cpu_get_previouspc(&space.device()), offset, data, mem_mask);
}
@@ -444,28 +434,28 @@ static void ide_interrupt(device_t *device, int state)
static ADDRESS_MAP_START( memory_map, AS_PROGRAM, 32, djmain_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // PRG ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM // WORK RAM
- AM_RANGE(0x480000, 0x48443f) AM_RAM_WRITE_LEGACY(paletteram32_w) // COLOR RAM
+ AM_RANGE(0x480000, 0x48443f) AM_RAM_WRITE(paletteram32_w) // COLOR RAM
AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x500000, 0x57ffff) AM_READWRITE_LEGACY(sndram_r, sndram_w) // SOUND RAM
+ AM_RANGE(0x500000, 0x57ffff) AM_READWRITE(sndram_r, sndram_w) // SOUND RAM
AM_RANGE(0x580000, 0x58003f) AM_DEVREADWRITE_LEGACY("k056832", k056832_long_r, k056832_long_w) // VIDEO REG (tilemap)
- AM_RANGE(0x590000, 0x590007) AM_WRITE_LEGACY(unknown590000_w) // ??
+ AM_RANGE(0x590000, 0x590007) AM_WRITE(unknown590000_w) // ??
AM_RANGE(0x5a0000, 0x5a005f) AM_DEVWRITE_LEGACY("k055555", k055555_long_w) // 055555: priority encoder
AM_RANGE(0x5b0000, 0x5b04ff) AM_DEVREADWRITE8("konami1", k054539_device, read, write, 0xff00ff00)
AM_RANGE(0x5b0000, 0x5b04ff) AM_DEVREADWRITE8("konami2", k054539_device, read, write, 0x00ff00ff)
- AM_RANGE(0x5c0000, 0x5c0003) AM_READ8_LEGACY(inp1_r, 0xffffffff) // DSW3,BTN3,BTN2,BTN1 // input port control (buttons and DIP switches)
- AM_RANGE(0x5c8000, 0x5c8003) AM_READ8_LEGACY(inp2_r, 0xffffffff) // DSW1,DSW2,UNK2,UNK1 // input port control (DIP switches)
- AM_RANGE(0x5d0000, 0x5d0003) AM_WRITE_LEGACY(light_ctrl_1_w) // light/coin blocker control
- AM_RANGE(0x5d2000, 0x5d2003) AM_WRITE_LEGACY(light_ctrl_2_w) // light/coin blocker control
- AM_RANGE(0x5d4000, 0x5d4003) AM_WRITE_LEGACY(v_ctrl_w) // VIDEO control
- AM_RANGE(0x5d6000, 0x5d6003) AM_WRITE_LEGACY(sndram_bank_w) // SOUND RAM bank
- AM_RANGE(0x5e0000, 0x5e0003) AM_READWRITE_LEGACY(turntable_r, turntable_select_w) // input port control (turn tables)
- AM_RANGE(0x600000, 0x601fff) AM_READ_LEGACY(v_rom_r) // VIDEO ROM readthrough (for POST)
+ AM_RANGE(0x5c0000, 0x5c0003) AM_READ8(inp1_r, 0xffffffff) // DSW3,BTN3,BTN2,BTN1 // input port control (buttons and DIP switches)
+ AM_RANGE(0x5c8000, 0x5c8003) AM_READ8(inp2_r, 0xffffffff) // DSW1,DSW2,UNK2,UNK1 // input port control (DIP switches)
+ AM_RANGE(0x5d0000, 0x5d0003) AM_WRITE(light_ctrl_1_w) // light/coin blocker control
+ AM_RANGE(0x5d2000, 0x5d2003) AM_WRITE(light_ctrl_2_w) // light/coin blocker control
+ AM_RANGE(0x5d4000, 0x5d4003) AM_WRITE(v_ctrl_w) // VIDEO control
+ AM_RANGE(0x5d6000, 0x5d6003) AM_WRITE(sndram_bank_w) // SOUND RAM bank
+ AM_RANGE(0x5e0000, 0x5e0003) AM_READWRITE(turntable_r, turntable_select_w) // input port control (turn tables)
+ AM_RANGE(0x600000, 0x601fff) AM_READ(v_rom_r) // VIDEO ROM readthrough (for POST)
AM_RANGE(0x801000, 0x8017ff) AM_RAM AM_BASE(m_obj_ram) // OBJECT RAM
- AM_RANGE(0x802000, 0x802fff) AM_WRITE_LEGACY(unknown802000_w) // ??
- AM_RANGE(0x803000, 0x80309f) AM_READWRITE_LEGACY(obj_ctrl_r, obj_ctrl_w) // OBJECT REGS
- AM_RANGE(0x803800, 0x803fff) AM_READ_LEGACY(obj_rom_r) // OBJECT ROM readthrough (for POST)
+ AM_RANGE(0x802000, 0x802fff) AM_WRITE(unknown802000_w) // ??
+ AM_RANGE(0x803000, 0x80309f) AM_READWRITE(obj_ctrl_r, obj_ctrl_w) // OBJECT REGS
+ 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_LEGACY(unknownc02000_w) // ??
+ 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(0xe00000, 0xe01fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_long_r, k056832_ram_long_w) // VIDEO RAM (tilemap) (hiphopmania)
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index e73562e0e44..f938fced703 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -336,8 +336,8 @@ Donkey Kong Junior Notes
*
*************************************/
-static READ8_HANDLER( hb_dma_read_byte );
-static WRITE8_HANDLER( hb_dma_write_byte );
+
+
static READ8_DEVICE_HANDLER( p8257_ctl_r );
static WRITE8_DEVICE_HANDLER( p8257_ctl_w );
@@ -377,8 +377,8 @@ static I8257_INTERFACE( hb_dma )
DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_HALT),
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, hb_dma_read_byte),
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, hb_dma_write_byte),
+ 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 }
};
@@ -517,10 +517,9 @@ static MACHINE_RESET( drakton )
*
*************************************/
-static READ8_HANDLER( hb_dma_read_byte )
+READ8_MEMBER(dkong_state::hb_dma_read_byte)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
- int bucket = state->m_rev_map[(offset>>10) & 0x1ff];
+ int bucket = m_rev_map[(offset>>10) & 0x1ff];
int addr;
if (bucket < 0)
@@ -528,13 +527,12 @@ static READ8_HANDLER( hb_dma_read_byte )
addr = ((bucket << 7) & 0x7c00) | (offset & 0x3ff);
- return space->read_byte(addr);
+ return space.read_byte(addr);
}
-static WRITE8_HANDLER( hb_dma_write_byte )
+WRITE8_MEMBER(dkong_state::hb_dma_write_byte)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
- int bucket = state->m_rev_map[(offset>>10) & 0x1ff];
+ int bucket = m_rev_map[(offset>>10) & 0x1ff];
int addr;
if (bucket < 0)
@@ -542,7 +540,7 @@ static WRITE8_HANDLER( hb_dma_write_byte )
addr = ((bucket << 7) & 0x7c00) | (offset & 0x3ff);
- space->write_byte(addr, data);
+ space.write_byte(addr, data);
}
static READ8_DEVICE_HANDLER( p8257_ctl_r )
@@ -564,9 +562,9 @@ static WRITE8_DEVICE_HANDLER( p8257_ctl_w )
*
*************************************/
-static WRITE8_HANDLER( dkong3_coin_counter_w )
+WRITE8_MEMBER(dkong_state::dkong3_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data & 0x01);
+ coin_counter_w(machine(), offset, data & 0x01);
}
static WRITE8_DEVICE_HANDLER( p8257_drq_w )
@@ -575,68 +573,66 @@ static WRITE8_DEVICE_HANDLER( p8257_drq_w )
i8257_drq1_w(device, data & 0x01);
}
-static READ8_HANDLER( dkong_in2_r )
+READ8_MEMBER(dkong_state::dkong_in2_r)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
/* mcu status (sound feedback) is inverted bit4 from port B (8039) */
- UINT8 mcustatus = latch8_bit4_q_r(state->m_dev_vp2, 0);
+ UINT8 mcustatus = latch8_bit4_q_r(m_dev_vp2, 0);
UINT8 r;
- r = (input_port_read(space->machine(), "IN2") & 0xBF) | (mcustatus << 6);
- coin_counter_w(space->machine(), offset, r >> 7);
+ r = (input_port_read(machine(), "IN2") & 0xBF) | (mcustatus << 6);
+ coin_counter_w(machine(), offset, r >> 7);
if (r & 0x10)
r = (r & ~0x10) | 0x80; /* service ==> coin */
return r;
}
-static READ8_HANDLER( dkongjr_in2_r )
+READ8_MEMBER(dkong_state::dkongjr_in2_r)
{
/* dkongjr does not have the mcu line connected */
UINT8 r;
- r = (input_port_read(space->machine(), "IN2") & 0xBF) | 0x40;
- coin_counter_w(space->machine(), offset, r >> 7);
+ r = (input_port_read(machine(), "IN2") & 0xBF) | 0x40;
+ coin_counter_w(machine(), offset, r >> 7);
if (r & 0x10)
r = (r & ~0x10) | 0x80; /* service ==> coin */
return r;
}
-static READ8_HANDLER( s2650_mirror_r )
+READ8_MEMBER(dkong_state::s2650_mirror_r)
{
- return space->read_byte(0x1000 + offset);
+ return space.read_byte(0x1000 + offset);
}
-static WRITE8_HANDLER( s2650_mirror_w )
+WRITE8_MEMBER(dkong_state::s2650_mirror_w)
{
- space->write_byte(0x1000 + offset, data);
+ space.write_byte(0x1000 + offset, data);
}
-static READ8_HANDLER( epos_decrypt_rom )
+READ8_MEMBER(dkong_state::epos_decrypt_rom)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
if (offset & 0x01)
{
- state->m_decrypt_counter = state->m_decrypt_counter - 1;
- if (state->m_decrypt_counter < 0)
- state->m_decrypt_counter = 0x0F;
+ m_decrypt_counter = m_decrypt_counter - 1;
+ if (m_decrypt_counter < 0)
+ m_decrypt_counter = 0x0F;
}
else
{
- state->m_decrypt_counter = (state->m_decrypt_counter + 1) & 0x0F;
+ m_decrypt_counter = (m_decrypt_counter + 1) & 0x0F;
}
- switch(state->m_decrypt_counter)
+ switch(m_decrypt_counter)
{
- case 0x08: memory_set_bank(space->machine(), "bank1", 0); break;
- case 0x09: memory_set_bank(space->machine(), "bank1", 1); break;
- case 0x0A: memory_set_bank(space->machine(), "bank1", 2); break;
- case 0x0B: memory_set_bank(space->machine(), "bank1", 3); break;
+ case 0x08: memory_set_bank(machine(), "bank1", 0); break;
+ case 0x09: memory_set_bank(machine(), "bank1", 1); break;
+ case 0x0A: memory_set_bank(machine(), "bank1", 2); break;
+ case 0x0B: memory_set_bank(machine(), "bank1", 3); break;
default:
- logerror("Invalid counter = %02X\n",state->m_decrypt_counter);
+ logerror("Invalid counter = %02X\n",m_decrypt_counter);
break;
}
@@ -644,119 +640,114 @@ static READ8_HANDLER( epos_decrypt_rom )
}
-static WRITE8_HANDLER( s2650_data_w )
+WRITE8_MEMBER(dkong_state::s2650_data_w)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
#if DEBUG_PROTECTION
- logerror("write : pc = %04x, loopback = %02x\n",cpu_get_pc(&space->device()), data);
+ logerror("write : pc = %04x, loopback = %02x\n",cpu_get_pc(&space.device()), data);
#endif
- state->m_hunchloopback = data;
+ m_hunchloopback = data;
}
-static WRITE8_HANDLER( s2650_fo_w )
+WRITE8_MEMBER(dkong_state::s2650_fo_w)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
#if DEBUG_PROTECTION
- logerror("write : pc = %04x, FO = %02x\n",cpu_get_pc(&space->device()), data);
+ logerror("write : pc = %04x, FO = %02x\n",cpu_get_pc(&space.device()), data);
#endif
- state->m_main_fo = data;
+ m_main_fo = data;
- if (state->m_main_fo)
- state->m_hunchloopback = 0xfb;
+ if (m_main_fo)
+ m_hunchloopback = 0xfb;
}
-static READ8_HANDLER( s2650_port0_r )
+READ8_MEMBER(dkong_state::s2650_port0_r)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
#if DEBUG_PROTECTION
- logerror("port 0 : pc = %04x, loopback = %02x fo=%d\n",cpu_get_pc(&space->device()), state->m_hunchloopback, state->m_main_fo);
+ logerror("port 0 : pc = %04x, loopback = %02x fo=%d\n",cpu_get_pc(&space.device()), m_hunchloopback, m_main_fo);
#endif
- switch (state->m_protect_type)
+ switch (m_protect_type)
{
case DK2650_SHOOTGAL:
case DK2650_HUNCHBKD:
- if (state->m_main_fo)
- return state->m_hunchloopback;
+ if (m_main_fo)
+ return m_hunchloopback;
else
- return state->m_hunchloopback--;
+ return m_hunchloopback--;
case DK2650_SPCLFORC:
- if (!state->m_main_fo)
- return state->m_hunchloopback;
+ if (!m_main_fo)
+ return m_hunchloopback;
else
- return state->m_hunchloopback--;
+ return m_hunchloopback--;
}
- fatalerror("Unhandled read from port 0 : pc = %4x\n",cpu_get_pc(&space->device()));
+ fatalerror("Unhandled read from port 0 : pc = %4x\n",cpu_get_pc(&space.device()));
}
-static READ8_HANDLER( s2650_port1_r )
+READ8_MEMBER(dkong_state::s2650_port1_r)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
#if DEBUG_PROTECTION
- logerror("port 1 : pc = %04x, loopback = %02x fo=%d\n",cpu_get_pc(&space->device()), state->m_hunchloopback, state->m_main_fo);
+ logerror("port 1 : pc = %04x, loopback = %02x fo=%d\n",cpu_get_pc(&space.device()), m_hunchloopback, m_main_fo);
#endif
- switch (state->m_protect_type)
+ switch (m_protect_type)
{
case DK2650_HUNCHBKD:
- return state->m_hunchloopback--;
+ return m_hunchloopback--;
case DK2650_EIGHTACT:
case DK2650_HERBIEDK:
- if (state->m_hunchloopback & 0x80)
- return state->m_prot_cnt;
+ if (m_hunchloopback & 0x80)
+ return m_prot_cnt;
else
- return ++state->m_prot_cnt;
+ return ++m_prot_cnt;
}
- fatalerror("Unhandled read from port 1 : pc = %4x\n",cpu_get_pc(&space->device()));
+ fatalerror("Unhandled read from port 1 : pc = %4x\n",cpu_get_pc(&space.device()));
}
-static WRITE8_HANDLER( dkong3_2a03_reset_w )
+WRITE8_MEMBER(dkong_state::dkong3_2a03_reset_w)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
if (data & 1)
{
- device_set_input_line(state->m_dev_n2a03a, INPUT_LINE_RESET, CLEAR_LINE);
- device_set_input_line(state->m_dev_n2a03b, INPUT_LINE_RESET, CLEAR_LINE);
+ device_set_input_line(m_dev_n2a03a, INPUT_LINE_RESET, CLEAR_LINE);
+ device_set_input_line(m_dev_n2a03b, INPUT_LINE_RESET, CLEAR_LINE);
}
else
{
- device_set_input_line(state->m_dev_n2a03a, INPUT_LINE_RESET, ASSERT_LINE);
- device_set_input_line(state->m_dev_n2a03b, INPUT_LINE_RESET, ASSERT_LINE);
+ device_set_input_line(m_dev_n2a03a, INPUT_LINE_RESET, ASSERT_LINE);
+ device_set_input_line(m_dev_n2a03b, INPUT_LINE_RESET, ASSERT_LINE);
}
}
-static READ8_HANDLER( strtheat_inputport_0_r )
+READ8_MEMBER(dkong_state::strtheat_inputport_0_r)
{
- if(input_port_read(space->machine(), "DSW0") & 0x40)
+ if(input_port_read(machine(), "DSW0") & 0x40)
{
/* Joystick inputs */
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
}
else
{
/* Steering Wheel inputs */
- return (input_port_read(space->machine(), "IN0") & ~3) | (input_port_read(space->machine(), "IN4") & 3);
+ return (input_port_read(machine(), "IN0") & ~3) | (input_port_read(machine(), "IN4") & 3);
}
}
-static READ8_HANDLER( strtheat_inputport_1_r )
+READ8_MEMBER(dkong_state::strtheat_inputport_1_r)
{
- if(input_port_read(space->machine(), "DSW0") & 0x40)
+ if(input_port_read(machine(), "DSW0") & 0x40)
{
/* Joystick inputs */
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
}
else
{
/* Steering Wheel inputs */
- return (input_port_read(space->machine(), "IN1") & ~3) | (input_port_read(space->machine(), "IN5") & 3);
+ return (input_port_read(machine(), "IN1") & ~3) | (input_port_read(machine(), "IN5") & 3);
}
}
@@ -765,11 +756,10 @@ static WRITE8_DEVICE_HANDLER( dkong_z80dma_rdy_w )
z80dma_rdy_w(device, data & 0x01);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(dkong_state::nmi_mask_w)
{
- dkong_state *state = space->machine().driver_data<dkong_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
/*************************************
@@ -787,14 +777,14 @@ static ADDRESS_MAP_START( dkong_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_LATCH8_WRITE("ls175.3d") /* IN0, sound CPU intf */
AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE_LEGACY(radarscp_grid_color_w)/* IN1 */
- AM_RANGE(0x7d00, 0x7d00) AM_READ_LEGACY(dkong_in2_r) /* IN2 */
+ AM_RANGE(0x7d00, 0x7d00) AM_READ(dkong_in2_r) /* IN2 */
AM_RANGE(0x7d00, 0x7d07) AM_DEVWRITE_LEGACY("ls259.6h", latch8_bit0_w) /* Sound signals */
AM_RANGE(0x7d80, 0x7d80) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(dkong_audio_irq_w) /* DSW0 */
AM_RANGE(0x7d81, 0x7d81) AM_WRITE_LEGACY(radarscp_grid_enable_w)
AM_RANGE(0x7d82, 0x7d82) AM_WRITE_LEGACY(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE_LEGACY(dkong_spritebank_w) /* 2 PSL Signal */
- AM_RANGE(0x7d84, 0x7d84) AM_WRITE_LEGACY(nmi_mask_w)
+ 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(0x7d86, 0x7d87) AM_WRITE_LEGACY(dkong_palettebank_w)
ADDRESS_MAP_END
@@ -812,13 +802,13 @@ static ADDRESS_MAP_START( dkongjr_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE_LEGACY(dkongjr_gfxbank_w)
AM_RANGE(0x7c80, 0x7c87) AM_DEVWRITE_LEGACY("ls259.4h", latch8_bit0_w) /* latch for sound and signals above */
- AM_RANGE(0x7d00, 0x7d00) AM_READ_LEGACY(dkongjr_in2_r) /* IN2 */
+ AM_RANGE(0x7d00, 0x7d00) AM_READ(dkongjr_in2_r) /* IN2 */
AM_RANGE(0x7d00, 0x7d07) AM_DEVWRITE_LEGACY("ls259.6h",latch8_bit0_w) /* Sound addrs */
AM_RANGE(0x7d80, 0x7d80) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(dkong_audio_irq_w) /* DSW0 */
AM_RANGE(0x7d82, 0x7d82) AM_WRITE_LEGACY(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE_LEGACY(dkong_spritebank_w) /* 2 PSL Signal */
- AM_RANGE(0x7d84, 0x7d84) AM_WRITE_LEGACY(nmi_mask_w)
+ 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(0x7d86, 0x7d87) AM_WRITE_LEGACY(dkong_palettebank_w)
AM_RANGE(0x7d80, 0x7d87) AM_DEVWRITE_LEGACY("ls259.5h", latch8_bit0_w) /* latch for sound and signals above*/
@@ -837,12 +827,12 @@ static ADDRESS_MAP_START( dkong3_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_LATCH8_WRITE("latch1")
AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_LATCH8_WRITE("latch2")
AM_RANGE(0x7d00, 0x7d00) AM_READ_PORT("DSW0") AM_LATCH8_WRITE("latch3")
- AM_RANGE(0x7d80, 0x7d80) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(dkong3_2a03_reset_w)
- AM_RANGE(0x7e80, 0x7e80) AM_WRITE_LEGACY(dkong3_coin_counter_w)
+ AM_RANGE(0x7d80, 0x7d80) AM_READ_PORT("DSW1") AM_WRITE(dkong3_2a03_reset_w)
+ AM_RANGE(0x7e80, 0x7e80) AM_WRITE(dkong3_coin_counter_w)
AM_RANGE(0x7e81, 0x7e81) AM_WRITE_LEGACY(dkong3_gfxbank_w)
AM_RANGE(0x7e82, 0x7e82) AM_WRITE_LEGACY(dkong_flipscreen_w)
AM_RANGE(0x7e83, 0x7e83) AM_WRITE_LEGACY(dkong_spritebank_w) /* 2 PSL Signal */
- AM_RANGE(0x7e84, 0x7e84) AM_WRITE_LEGACY(nmi_mask_w)
+ 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(0x7e86, 0x7e87) AM_WRITE_LEGACY(dkong_palettebank_w)
AM_RANGE(0x8000, 0x9fff) AM_ROM /* DK3 and bootleg DKjr only */
@@ -857,7 +847,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( epos_readport, AS_IO, 8, dkong_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0xff) AM_READ_LEGACY(epos_decrypt_rom) /* Switch protection logic */
+ AM_RANGE(0x00, 0xff) AM_READ(epos_decrypt_rom) /* Switch protection logic */
ADDRESS_MAP_END
/* S2650 conversions */
@@ -867,7 +857,7 @@ static ADDRESS_MAP_START( s2650_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x1000, 0x13ff) AM_RAM AM_BASE_SIZE(m_sprite_ram, m_sprite_ram_size) /* 0x7000 */
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x007f) AM_READ_PORT("IN0") AM_DEVWRITE_LEGACY("ls175.3d", latch8_w)
AM_RANGE(0x1480, 0x1480) AM_READ_PORT("IN1")
- AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x007f) AM_READ_LEGACY(dkong_in2_r) /* IN2 */
+ AM_RANGE(0x1500, 0x1500) AM_MIRROR(0x007f) AM_READ(dkong_in2_r) /* IN2 */
AM_RANGE(0x1500, 0x1507) AM_DEVWRITE_LEGACY("ls259.6h", latch8_bit0_w) /* Sound signals */
AM_RANGE(0x1580, 0x1580) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(dkong_audio_irq_w) /* DSW0 */
AM_RANGE(0x1582, 0x1582) AM_WRITE_LEGACY(dkong_flipscreen_w)
@@ -881,19 +871,19 @@ static ADDRESS_MAP_START( s2650_map, AS_PROGRAM, 8, dkong_state )
AM_RANGE(0x1f80, 0x1f8f) AM_DEVREADWRITE_LEGACY("dma8257", i8257_r, i8257_w) /* P8257 control registers */
/* 0x6800 not remapped */
AM_RANGE(0x2000, 0x2fff) AM_ROM
- AM_RANGE(0x3000, 0x3fff) AM_READWRITE_LEGACY(s2650_mirror_r, s2650_mirror_w)
+ AM_RANGE(0x3000, 0x3fff) AM_READWRITE(s2650_mirror_r, s2650_mirror_w)
AM_RANGE(0x4000, 0x4fff) AM_ROM
- AM_RANGE(0x5000, 0x5fff) AM_READWRITE_LEGACY(s2650_mirror_r, s2650_mirror_w)
+ AM_RANGE(0x5000, 0x5fff) AM_READWRITE(s2650_mirror_r, s2650_mirror_w)
AM_RANGE(0x6000, 0x6fff) AM_ROM
- AM_RANGE(0x7000, 0x7fff) AM_READWRITE_LEGACY(s2650_mirror_r, s2650_mirror_w)
+ AM_RANGE(0x7000, 0x7fff) AM_READWRITE(s2650_mirror_r, s2650_mirror_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( s2650_io_map, AS_IO, 8, dkong_state )
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(s2650_port0_r)
- AM_RANGE(0x01, 0x01) AM_READ_LEGACY(s2650_port1_r)
+ AM_RANGE(0x00, 0x00) AM_READ(s2650_port0_r)
+ AM_RANGE(0x01, 0x01) AM_READ(s2650_port1_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
- AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_WRITE_LEGACY(s2650_fo_w)
- AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_WRITE_LEGACY(s2650_data_w)
+ AM_RANGE(S2650_FO_PORT, S2650_FO_PORT) AM_WRITE(s2650_fo_w)
+ AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_WRITE(s2650_data_w)
ADDRESS_MAP_END
@@ -1626,10 +1616,10 @@ static READ8_DEVICE_HANDLER( braze_eeprom_r )
return eeprom->read_bit();
}
-static WRITE8_HANDLER( braze_a15_w )
+WRITE8_MEMBER(dkong_state::braze_a15_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x01);
- memory_set_bank(space->machine(), "bank2", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank2", data & 0x01);
}
static WRITE8_DEVICE_HANDLER( braze_eeprom_w )
@@ -3159,8 +3149,9 @@ static DRIVER_INIT( strtheat )
drakton_decrypt_rom(machine, 0x88, 0x1c000, bs[3]);
/* custom handlers supporting Joystick or Steering Wheel */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x7c00, 0x7c00, FUNC(strtheat_inputport_0_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x7c80, 0x7c80, FUNC(strtheat_inputport_1_r));
+ dkong_state *state = machine.driver_data<dkong_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x7c00, 0x7c00, read8_delegate(FUNC(dkong_state::strtheat_inputport_0_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x7c80, 0x7c80, read8_delegate(FUNC(dkong_state::strtheat_inputport_1_r),state));
}
@@ -3175,7 +3166,8 @@ static DRIVER_INIT( dkongx )
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x5fff, "bank1" );
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0xffff, "bank2" );
- space->install_legacy_write_handler(0xe000, 0xe000, FUNC(braze_a15_w));
+ 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));
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index b2a790c8979..00a96c6ad7b 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -13,70 +13,64 @@ driver by Nicola Salmoria
#include "sound/ay8910.h"
-static READ8_HANDLER( sharedram_r )
+READ8_MEMBER(dogfgt_state::sharedram_r)
{
- dogfgt_state *state = space->machine().driver_data<dogfgt_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE8_HANDLER( sharedram_w )
+WRITE8_MEMBER(dogfgt_state::sharedram_w)
{
- dogfgt_state *state = space->machine().driver_data<dogfgt_state>();
- state->m_sharedram[offset] = data;
+ m_sharedram[offset] = data;
}
-static WRITE8_HANDLER( subirqtrigger_w )
+WRITE8_MEMBER(dogfgt_state::subirqtrigger_w)
{
- dogfgt_state *state = space->machine().driver_data<dogfgt_state>();
/* bit 0 used but unknown */
if (data & 0x04)
- device_set_input_line(state->m_subcpu, 0, ASSERT_LINE);
+ device_set_input_line(m_subcpu, 0, ASSERT_LINE);
}
-static WRITE8_HANDLER( sub_irqack_w )
+WRITE8_MEMBER(dogfgt_state::sub_irqack_w)
{
- dogfgt_state *state = space->machine().driver_data<dogfgt_state>();
- device_set_input_line(state->m_subcpu, 0, CLEAR_LINE);
+ device_set_input_line(m_subcpu, 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( dogfgt_soundlatch_w )
+WRITE8_MEMBER(dogfgt_state::dogfgt_soundlatch_w)
{
- dogfgt_state *state = space->machine().driver_data<dogfgt_state>();
- state->m_soundlatch = data;
+ m_soundlatch = data;
}
-static WRITE8_HANDLER( dogfgt_soundcontrol_w )
+WRITE8_MEMBER(dogfgt_state::dogfgt_soundcontrol_w)
{
- dogfgt_state *state = space->machine().driver_data<dogfgt_state>();
/* bit 5 goes to 8910 #0 BDIR pin */
- if ((state->m_last_snd_ctrl & 0x20) == 0x20 && (data & 0x20) == 0x00)
- ay8910_data_address_w(space->machine().device("ay1"), state->m_last_snd_ctrl >> 4, state->m_soundlatch);
+ if ((m_last_snd_ctrl & 0x20) == 0x20 && (data & 0x20) == 0x00)
+ ay8910_data_address_w(machine().device("ay1"), m_last_snd_ctrl >> 4, m_soundlatch);
/* bit 7 goes to 8910 #1 BDIR pin */
- if ((state->m_last_snd_ctrl & 0x80) == 0x80 && (data & 0x80) == 0x00)
- ay8910_data_address_w(space->machine().device("ay2"), state->m_last_snd_ctrl >> 6, state->m_soundlatch);
+ if ((m_last_snd_ctrl & 0x80) == 0x80 && (data & 0x80) == 0x00)
+ ay8910_data_address_w(machine().device("ay2"), m_last_snd_ctrl >> 6, m_soundlatch);
- state->m_last_snd_ctrl = data;
+ m_last_snd_ctrl = data;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dogfgt_state )
- AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x0f80, 0x0fdf) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x1000, 0x17ff) AM_WRITE_LEGACY(dogfgt_bgvideoram_w) AM_BASE(m_bgvideoram)
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("P1")
AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(dogfgt_1800_w) /* text color, flip screen & coin counters */
AM_RANGE(0x1810, 0x1810) AM_READ_PORT("P2")
- AM_RANGE(0x1810, 0x1810) AM_WRITE_LEGACY(subirqtrigger_w)
+ AM_RANGE(0x1810, 0x1810) AM_WRITE(subirqtrigger_w)
AM_RANGE(0x1820, 0x1820) AM_READ_PORT("DSW1")
AM_RANGE(0x1820, 0x1823) AM_WRITE_LEGACY(dogfgt_scroll_w)
AM_RANGE(0x1824, 0x1824) AM_WRITE_LEGACY(dogfgt_plane_select_w)
AM_RANGE(0x1830, 0x1830) AM_READ_PORT("DSW2")
- AM_RANGE(0x1830, 0x1830) AM_WRITE_LEGACY(dogfgt_soundlatch_w)
- AM_RANGE(0x1840, 0x1840) AM_WRITE_LEGACY(dogfgt_soundcontrol_w)
+ AM_RANGE(0x1830, 0x1830) AM_WRITE(dogfgt_soundlatch_w)
+ AM_RANGE(0x1840, 0x1840) AM_WRITE(dogfgt_soundcontrol_w)
AM_RANGE(0x1870, 0x187f) AM_WRITE_LEGACY(paletteram_BBGGGRRR_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(dogfgt_bitmapram_r, dogfgt_bitmapram_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -84,8 +78,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, dogfgt_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x2000, 0x27ff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w)
- AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(sub_irqack_w)
+ AM_RANGE(0x2000, 0x27ff) AM_READWRITE(sharedram_r, sharedram_w)
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_irqack_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index e3dfbe55893..dcf9ea77c05 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -84,9 +84,9 @@ be verified on real PCB.
#include "sound/okim6295.h"
#include "includes/dooyong.h"
-static WRITE8_HANDLER( lastday_bankswitch_w )
+WRITE8_MEMBER(dooyong_state::lastday_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
if (data & 0xf8) popmessage("bankswitch %02x",data);
}
@@ -96,9 +96,9 @@ static MACHINE_START( lastday )
memory_configure_bank(machine, "bank1", 0, 8, machine.region("maincpu")->base() + 0x10000, 0x4000);
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(dooyong_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
static MACHINE_RESET( sound_ym2203 )
@@ -123,7 +123,7 @@ static ADDRESS_MAP_START( lastday_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xc010, 0xc010) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc010, 0xc010) AM_WRITE_LEGACY(lastday_ctrl_w) /* coin counter, flip screen */
AM_RANGE(0xc011, 0xc011) AM_READ_PORT("P1")
- AM_RANGE(0xc011, 0xc011) AM_WRITE_LEGACY(lastday_bankswitch_w)
+ AM_RANGE(0xc011, 0xc011) AM_WRITE(lastday_bankswitch_w)
AM_RANGE(0xc012, 0xc012) AM_READ_PORT("P2")
AM_RANGE(0xc012, 0xc012) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc013, 0xc013) AM_READ_PORT("DSWA")
@@ -140,7 +140,7 @@ static ADDRESS_MAP_START( pollux_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE_LEGACY(dooyong_txvideoram8_w) AM_BASE(m_txvideoram)
- AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA") AM_WRITE_LEGACY(lastday_bankswitch_w)
+ AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA") AM_WRITE(lastday_bankswitch_w)
AM_RANGE(0xf001, 0xf001) AM_READ_PORT("DSWB")
AM_RANGE(0xf002, 0xf002) AM_READ_PORT("P1")
AM_RANGE(0xf003, 0xf003) AM_READ_PORT("P2")
@@ -159,7 +159,7 @@ static ADDRESS_MAP_START( gulfstrm_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE_LEGACY(dooyong_txvideoram8_w) AM_BASE(m_txvideoram)
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSWA")
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(lastday_bankswitch_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(lastday_bankswitch_w)
AM_RANGE(0xf001, 0xf001) AM_READ_PORT("DSWB")
AM_RANGE(0xf002, 0xf002) AM_READ_PORT("P2")
AM_RANGE(0xf003, 0xf003) AM_READ_PORT("P1")
@@ -175,12 +175,12 @@ static ADDRESS_MAP_START( bluehawk_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSWA")
- AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(flip_screen_w)
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("DSWB")
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P1")
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("P2")
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc008, 0xc008) AM_WRITE_LEGACY(lastday_bankswitch_w)
+ AM_RANGE(0xc008, 0xc008) AM_WRITE(lastday_bankswitch_w)
AM_RANGE(0xc010, 0xc010) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc018, 0xc01f) AM_WRITE_LEGACY(dooyong_fg2scroll8_w)
AM_RANGE(0xc040, 0xc047) AM_WRITE_LEGACY(dooyong_bgscroll8_w)
@@ -197,7 +197,7 @@ static ADDRESS_MAP_START( flytiger_map, AS_PROGRAM, 8, dooyong_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("P1")
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(lastday_bankswitch_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(lastday_bankswitch_w)
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P2")
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe006, 0xe006) AM_READ_PORT("DSWA")
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index 5c89d640b99..d61e0c219b1 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -87,35 +87,32 @@ static void dragrace_update_misc_flags( running_machine &machine )
discrete_sound_w(state->m_discrete, DRAGRACE_HITONE_EN, (state->m_misc_flags & 0x20000000) ? 1: 0); // HiTone enable
}
-static WRITE8_HANDLER( dragrace_misc_w )
+WRITE8_MEMBER(dragrace_state::dragrace_misc_w)
{
- dragrace_state *state = space->machine().driver_data<dragrace_state>();
/* Set/clear individual bit */
UINT32 mask = 1 << offset;
if (data & 0x01)
- state->m_misc_flags |= mask;
+ m_misc_flags |= mask;
else
- state->m_misc_flags &= (~mask);
- logerror("Set %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0900 + offset, mask, state->m_misc_flags, data & 0x01);
- dragrace_update_misc_flags(space->machine());
+ m_misc_flags &= (~mask);
+ logerror("Set %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0900 + offset, mask, m_misc_flags, data & 0x01);
+ dragrace_update_misc_flags(machine());
}
-static WRITE8_HANDLER( dragrace_misc_clear_w )
+WRITE8_MEMBER(dragrace_state::dragrace_misc_clear_w)
{
- dragrace_state *state = space->machine().driver_data<dragrace_state>();
/* Clear 8 bits */
UINT32 mask = 0xff << (((offset >> 3) & 0x03) * 8);
- state->m_misc_flags &= (~mask);
- logerror("Clear %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0920 + offset, mask, state->m_misc_flags, data & 0x01);
- dragrace_update_misc_flags(space->machine());
+ m_misc_flags &= (~mask);
+ logerror("Clear %#6x, Mask=%#10x, Flag=%#10x, Data=%x\n", 0x0920 + offset, mask, m_misc_flags, data & 0x01);
+ dragrace_update_misc_flags(machine());
}
-static READ8_HANDLER( dragrace_input_r )
+READ8_MEMBER(dragrace_state::dragrace_input_r)
{
- dragrace_state *state = space->machine().driver_data<dragrace_state>();
- int val = input_port_read(space->machine(), "IN2");
+ int val = input_port_read(machine(), "IN2");
static const char *const portnames[] = { "IN0", "IN1" };
UINT8 maskA = 1 << (offset % 8);
@@ -125,10 +122,10 @@ static READ8_HANDLER( dragrace_input_r )
for (i = 0; i < 2; i++)
{
- int in = input_port_read(space->machine(), portnames[i]);
+ int in = input_port_read(machine(), portnames[i]);
- if (state->m_gear[i] != 0)
- in &= ~(1 << state->m_gear[i]);
+ if (m_gear[i] != 0)
+ in &= ~(1 << m_gear[i]);
if (in & maskA)
val |= 1 << i;
@@ -138,7 +135,7 @@ static READ8_HANDLER( dragrace_input_r )
}
-static READ8_HANDLER( dragrace_steering_r )
+READ8_MEMBER(dragrace_state::dragrace_steering_r)
{
int bitA[2];
int bitB[2];
@@ -148,7 +145,7 @@ static READ8_HANDLER( dragrace_steering_r )
for (i = 0; i < 2; i++)
{
- int dial = input_port_read(space->machine(), dialnames[i]);
+ int dial = input_port_read(machine(), dialnames[i]);
bitA[i] = ((dial + 1) / 2) & 1;
bitB[i] = ((dial + 0) / 2) & 1;
@@ -160,21 +157,21 @@ static READ8_HANDLER( dragrace_steering_r )
}
-static READ8_HANDLER( dragrace_scanline_r )
+READ8_MEMBER(dragrace_state::dragrace_scanline_r)
{
- return (space->machine().primary_screen->vpos() ^ 0xf0) | 0x0f;
+ return (machine().primary_screen->vpos() ^ 0xf0) | 0x0f;
}
static ADDRESS_MAP_START( dragrace_map, AS_PROGRAM, 8, dragrace_state )
AM_RANGE(0x0080, 0x00ff) AM_RAM
- AM_RANGE(0x0800, 0x083f) AM_READ_LEGACY(dragrace_input_r)
- AM_RANGE(0x0900, 0x091f) AM_WRITE_LEGACY(dragrace_misc_w)
- AM_RANGE(0x0920, 0x093f) AM_WRITE_LEGACY(dragrace_misc_clear_w)
+ AM_RANGE(0x0800, 0x083f) AM_READ(dragrace_input_r)
+ AM_RANGE(0x0900, 0x091f) AM_WRITE(dragrace_misc_w)
+ AM_RANGE(0x0920, 0x093f) AM_WRITE(dragrace_misc_clear_w)
AM_RANGE(0x0a00, 0x0aff) AM_WRITEONLY AM_BASE(m_playfield_ram)
AM_RANGE(0x0b00, 0x0bff) AM_WRITEONLY AM_BASE(m_position_ram)
- AM_RANGE(0x0c00, 0x0c00) AM_READ_LEGACY(dragrace_steering_r)
- AM_RANGE(0x0d00, 0x0d00) AM_READ_LEGACY(dragrace_scanline_r)
+ AM_RANGE(0x0c00, 0x0c00) AM_READ(dragrace_steering_r)
+ AM_RANGE(0x0d00, 0x0d00) AM_READ(dragrace_scanline_r)
AM_RANGE(0x0e00, 0x0eff) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1000, 0x1fff) AM_ROM /* program */
AM_RANGE(0xf800, 0xffff) AM_ROM /* program mirror */
diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c
index 39bcc430910..04f09399d02 100644
--- a/src/mame/drivers/drgnmst.c
+++ b/src/mame/drivers/drgnmst.c
@@ -41,87 +41,80 @@ Notes:
#include "includes/drgnmst.h"
-static WRITE16_HANDLER( drgnmst_coin_w )
+WRITE16_MEMBER(drgnmst_state::drgnmst_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 0x100);
- coin_lockout_w(space->machine(), 0, ~data & 0x400);
- coin_lockout_w(space->machine(), 1, ~data & 0x800);
+ coin_counter_w(machine(), 0, data & 0x100);
+ coin_lockout_w(machine(), 0, ~data & 0x400);
+ coin_lockout_w(machine(), 1, ~data & 0x800);
}
-static WRITE16_HANDLER( drgnmst_snd_command_w )
+WRITE16_MEMBER(drgnmst_state::drgnmst_snd_command_w)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_snd_command = (data & 0xff);
- device_yield(&space->device());
+ m_snd_command = (data & 0xff);
+ device_yield(&space.device());
}
}
-static WRITE16_HANDLER( drgnmst_snd_flag_w )
+WRITE16_MEMBER(drgnmst_state::drgnmst_snd_flag_w)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
/* Enables the following 68K write operation to latch through to the PIC */
if (ACCESSING_BITS_0_7)
- state->m_snd_flag = 1;
+ m_snd_flag = 1;
}
-static READ8_HANDLER( pic16c5x_port0_r )
+READ8_MEMBER(drgnmst_state::pic16c5x_port0_r)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
- return state->m_pic16c5x_port0;
+ return m_pic16c5x_port0;
}
-static READ8_HANDLER( drgnmst_snd_command_r )
+READ8_MEMBER(drgnmst_state::drgnmst_snd_command_r)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
int data = 0;
- switch (state->m_oki_control & 0x1f)
+ switch (m_oki_control & 0x1f)
{
- case 0x12: data = (state->m_oki_2->read(*space, 0) & 0x0f); break;
- case 0x16: data = (state->m_oki_1->read(*space, 0) & 0x0f); break;
+ case 0x12: data = (m_oki_2->read(*&space, 0) & 0x0f); break;
+ case 0x16: data = (m_oki_1->read(*&space, 0) & 0x0f); break;
case 0x0b:
- case 0x0f: data = state->m_snd_command; break;
+ case 0x0f: data = m_snd_command; break;
default: break;
}
return data;
}
-static READ8_HANDLER( drgnmst_snd_flag_r )
+READ8_MEMBER(drgnmst_state::drgnmst_snd_flag_r)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
- if (state->m_snd_flag)
+ if (m_snd_flag)
{
- state->m_snd_flag = 0;
+ m_snd_flag = 0;
return 0x40;
}
return 0x00;
}
-static WRITE8_HANDLER( drgnmst_pcm_banksel_w )
+WRITE8_MEMBER(drgnmst_state::drgnmst_pcm_banksel_w)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
/* This is a 4 bit port.
Each pair of bits is used in part of the OKI PCM ROM bank selectors.
See the Port 2 write handler below (drgnmst_snd_control_w) for details.
*/
- state->m_pic16c5x_port0 = data;
+ m_pic16c5x_port0 = data;
}
-static WRITE8_HANDLER( drgnmst_oki_w )
+WRITE8_MEMBER(drgnmst_state::drgnmst_oki_w)
{
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
- state->m_oki_command = data;
+ m_oki_command = data;
}
-static WRITE8_HANDLER( drgnmst_snd_control_w )
+WRITE8_MEMBER(drgnmst_state::drgnmst_snd_control_w)
{
/* This port controls communications to and from the 68K, both OKI
devices, and part of the OKI PCM ROM bank selection.
@@ -146,45 +139,44 @@ static WRITE8_HANDLER( drgnmst_snd_control_w )
The OKI0 banks are pre-configured below in the driver init.
*/
- drgnmst_state *state = space->machine().driver_data<drgnmst_state>();
int oki_new_bank;
- state->m_oki_control = data;
+ m_oki_control = data;
- oki_new_bank = ((state->m_pic16c5x_port0 & 0xc) >> 2) | ((state->m_oki_control & 0x80) >> 5);
- if (oki_new_bank != state->m_oki0_bank)
+ oki_new_bank = ((m_pic16c5x_port0 & 0xc) >> 2) | ((m_oki_control & 0x80) >> 5);
+ if (oki_new_bank != m_oki0_bank)
{
- state->m_oki0_bank = oki_new_bank;
- if (state->m_oki0_bank)
+ m_oki0_bank = oki_new_bank;
+ if (m_oki0_bank)
oki_new_bank--;
- state->m_oki_1->set_bank_base(oki_new_bank * 0x40000);
+ m_oki_1->set_bank_base(oki_new_bank * 0x40000);
}
- oki_new_bank = ((state->m_pic16c5x_port0 & 0x3) >> 0) | ((state->m_oki_control & 0x20) >> 3);
- if (oki_new_bank != state->m_oki1_bank)
+ oki_new_bank = ((m_pic16c5x_port0 & 0x3) >> 0) | ((m_oki_control & 0x20) >> 3);
+ if (oki_new_bank != m_oki1_bank)
{
- state->m_oki1_bank = oki_new_bank;
- state->m_oki_2->set_bank_base(oki_new_bank * 0x40000);
+ m_oki1_bank = oki_new_bank;
+ m_oki_2->set_bank_base(oki_new_bank * 0x40000);
}
- switch (state->m_oki_control & 0x1f)
+ switch (m_oki_control & 0x1f)
{
case 0x11:
-// logerror("Writing %02x to OKI1", state->m_oki_command);
-// logerror(", PortC=%02x, Code=%02x, Bank0=%01x, Bank1=%01x\n", state->m_oki_control, state->m_snd_command, state->m_oki0_bank, state->m_oki1_bank);
- state->m_oki_2->write(*space, 0, state->m_oki_command);
+// logerror("Writing %02x to OKI1", m_oki_command);
+// logerror(", PortC=%02x, Code=%02x, Bank0=%01x, Bank1=%01x\n", m_oki_control, m_snd_command, m_oki0_bank, m_oki1_bank);
+ m_oki_2->write(*&space, 0, m_oki_command);
break;
case 0x15:
-// logerror("Writing %02x to OKI0", state->m_oki_command);
-// logerror(", PortC=%02x, Code=%02x, Bank0=%01x, Bank1=%01x\n", state->m_oki_control, state->m_snd_command, state->m_oki0_bank, state->m_oki1_bank);
- state->m_oki_1->write(*space, 0, state->m_oki_command);
+// logerror("Writing %02x to OKI0", m_oki_command);
+// logerror(", PortC=%02x, Code=%02x, Bank0=%01x, Bank1=%01x\n", m_oki_control, m_snd_command, m_oki0_bank, m_oki1_bank);
+ m_oki_1->write(*&space, 0, m_oki_command);
break;
default: break;
}
}
-static READ8_HANDLER( PIC16C5X_T0_clk_r )
+READ8_MEMBER(drgnmst_state::PIC16C5X_T0_clk_r)
{
return 0;
}
@@ -198,14 +190,14 @@ static ADDRESS_MAP_START( drgnmst_main_map, AS_PROGRAM, 16, drgnmst_state )
AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM")
AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x800030, 0x800031) AM_WRITE_LEGACY(drgnmst_coin_w)
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(drgnmst_coin_w)
AM_RANGE(0x800100, 0x80011f) AM_WRITEONLY AM_BASE(m_vidregs)
AM_RANGE(0x800120, 0x800121) AM_WRITENOP
AM_RANGE(0x80014a, 0x80014b) AM_WRITENOP
AM_RANGE(0x800154, 0x800155) AM_WRITEONLY AM_BASE(m_vidregs2) // seems to be priority control
AM_RANGE(0x800176, 0x800177) AM_READ_PORT("EXTRA")
- AM_RANGE(0x800180, 0x800181) AM_WRITE_LEGACY(drgnmst_snd_command_w)
- AM_RANGE(0x800188, 0x800189) AM_WRITE_LEGACY(drgnmst_snd_flag_w)
+ AM_RANGE(0x800180, 0x800181) AM_WRITE(drgnmst_snd_command_w)
+ AM_RANGE(0x800188, 0x800189) AM_WRITE(drgnmst_snd_flag_w)
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x904000, 0x907fff) AM_RAM_WRITE_LEGACY(drgnmst_md_videoram_w) AM_BASE(m_md_videoram)
@@ -224,10 +216,10 @@ ADDRESS_MAP_END
/* $000 - 01F PIC16C55 Internal Data RAM */
static ADDRESS_MAP_START( drgnmst_sound_io_map, AS_IO, 8, drgnmst_state )
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(pic16c5x_port0_r, drgnmst_pcm_banksel_w) /* 4 bit port */
- AM_RANGE(0x01, 0x01) AM_READWRITE_LEGACY(drgnmst_snd_command_r, drgnmst_oki_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(drgnmst_snd_flag_r, drgnmst_snd_control_w)
- AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ_LEGACY(PIC16C5X_T0_clk_r)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(pic16c5x_port0_r, drgnmst_pcm_banksel_w) /* 4 bit port */
+ AM_RANGE(0x01, 0x01) AM_READWRITE(drgnmst_snd_command_r, drgnmst_oki_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(drgnmst_snd_flag_r, drgnmst_snd_control_w)
+ AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ(PIC16C5X_T0_clk_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index 5dff93ece0c..57472b8a3db 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -150,30 +150,28 @@ static WRITE8_DEVICE_HANDLER( shr_w )
*
*************************************/
-static READ8_HANDLER( ioread )
+READ8_MEMBER(dribling_state::ioread)
{
- dribling_state *state = space->machine().driver_data<dribling_state>();
if (offset & 0x08)
- return ppi8255_r(state->m_ppi_0, offset & 3);
+ return ppi8255_r(m_ppi_0, offset & 3);
else if (offset & 0x10)
- return ppi8255_r(state->m_ppi_1, offset & 3);
+ return ppi8255_r(m_ppi_1, offset & 3);
return 0xff;
}
-static WRITE8_HANDLER( iowrite )
+WRITE8_MEMBER(dribling_state::iowrite)
{
- dribling_state *state = space->machine().driver_data<dribling_state>();
if (offset & 0x08)
- ppi8255_w(state->m_ppi_0, offset & 3, data);
+ ppi8255_w(m_ppi_0, offset & 3, data);
else if (offset & 0x10)
- ppi8255_w(state->m_ppi_1, offset & 3, data);
+ ppi8255_w(m_ppi_1, offset & 3, data);
else if (offset & 0x40)
{
- state->m_dr = state->m_ds;
- state->m_ds = data;
+ m_dr = m_ds;
+ m_ds = data;
}
}
@@ -223,7 +221,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, dribling_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0xff) AM_READWRITE_LEGACY(ioread, iowrite)
+ AM_RANGE(0x00, 0xff) AM_READWRITE(ioread, iowrite)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index b129d57cd27..287630e9cf8 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -31,13 +31,12 @@ static INTERRUPT_GEN( drmicro_interrupt )
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(drmicro_state::nmi_enable_w)
{
- drmicro_state *state = space->machine().driver_data<drmicro_state>();
- state->m_nmi_enable = data & 1;
- state->m_flipscreen = (data & 2) ? 1 : 0;
- flip_screen_set(space->machine(), data & 2);
+ m_nmi_enable = data & 1;
+ m_flipscreen = (data & 2) ? 1 : 0;
+ flip_screen_set(machine(), data & 2);
// bit2,3 unknown
}
@@ -64,11 +63,10 @@ static void pcm_w(device_t *device)
msm5205_reset_w(device, 1);
}
-static WRITE8_HANDLER( pcm_set_w )
+WRITE8_MEMBER(drmicro_state::pcm_set_w)
{
- drmicro_state *state = space->machine().driver_data<drmicro_state>();
- state->m_pcm_adr = ((data & 0x3f) << 9);
- pcm_w(state->m_msm);
+ m_pcm_adr = ((data & 0x3f) << 9);
+ pcm_w(m_msm);
}
/*************************************
@@ -89,8 +87,8 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, drmicro_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P2") AM_DEVWRITE_LEGACY("sn2", sn76496_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(pcm_set_w)
- AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1") AM_WRITE(pcm_set_w)
+ AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2") AM_WRITE(nmi_enable_w)
AM_RANGE(0x05, 0x05) AM_NOP // unused? / watchdog?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index b243903f6de..a90858e93c7 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -105,18 +105,16 @@ void sprtmtch_update_irq( running_machine &machine )
device_set_input_line_and_vector(state->m_maincpu, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
}
-static WRITE8_HANDLER( dynax_vblank_ack_w )
+WRITE8_MEMBER(dynax_state::dynax_vblank_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_vblank_irq = 0;
- sprtmtch_update_irq(space->machine());
+ m_vblank_irq = 0;
+ sprtmtch_update_irq(machine());
}
-static WRITE8_HANDLER( dynax_blitter_ack_w )
+WRITE8_MEMBER(dynax_state::dynax_blitter_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_blitter_irq = 0;
- sprtmtch_update_irq(space->machine());
+ m_blitter_irq = 0;
+ sprtmtch_update_irq(machine());
}
static INTERRUPT_GEN( sprtmtch_vblank_interrupt )
@@ -146,25 +144,22 @@ void jantouki_update_irq(running_machine &machine)
device_set_input_line_and_vector(state->m_maincpu, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
}
-static WRITE8_HANDLER( jantouki_vblank_ack_w )
+WRITE8_MEMBER(dynax_state::jantouki_vblank_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_vblank_irq = 0;
- jantouki_update_irq(space->machine());
+ m_vblank_irq = 0;
+ jantouki_update_irq(machine());
}
-static WRITE8_HANDLER( jantouki_blitter_ack_w )
+WRITE8_MEMBER(dynax_state::jantouki_blitter_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_blitter_irq = data;
- jantouki_update_irq(space->machine());
+ m_blitter_irq = data;
+ jantouki_update_irq(machine());
}
-static WRITE8_HANDLER( jantouki_blitter2_ack_w )
+WRITE8_MEMBER(dynax_state::jantouki_blitter2_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_blitter2_irq = data;
- jantouki_update_irq(space->machine());
+ m_blitter2_irq = data;
+ jantouki_update_irq(machine());
}
static INTERRUPT_GEN( jantouki_vblank_interrupt )
@@ -193,11 +188,10 @@ static INTERRUPT_GEN( jantouki_sound_vblank_interrupt )
jantouki_sound_update_irq(device->machine());
}
-static WRITE8_HANDLER( jantouki_sound_vblank_ack_w )
+WRITE8_MEMBER(dynax_state::jantouki_sound_vblank_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_sound_vblank_irq = 0;
- jantouki_sound_update_irq(space->machine());
+ m_sound_vblank_irq = 0;
+ jantouki_sound_update_irq(machine());
}
static void jantouki_sound_callback(device_t *device, int state)
@@ -220,192 +214,184 @@ static void jantouki_sound_callback(device_t *device, int state)
Sports Match
***************************************************************************/
-static WRITE8_HANDLER( dynax_coincounter_0_w )
+WRITE8_MEMBER(dynax_state::dynax_coincounter_0_w)
{
- coin_counter_w(space->machine(), 0, data);
+ coin_counter_w(machine(), 0, data);
}
-static WRITE8_HANDLER( dynax_coincounter_1_w )
+WRITE8_MEMBER(dynax_state::dynax_coincounter_1_w)
{
- coin_counter_w(space->machine(), 1, data);
+ coin_counter_w(machine(), 1, data);
}
-static READ8_HANDLER( ret_ff )
+READ8_MEMBER(dynax_state::ret_ff)
{
return 0xff;
}
-static READ8_HANDLER( hanamai_keyboard_0_r )
+READ8_MEMBER(dynax_state::hanamai_keyboard_0_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
int res = 0x3f;
/* the game reads all rows at once (keyb = 0) to check if a key is pressed */
- if (!BIT(state->m_keyb, 0)) res &= input_port_read(space->machine(), "KEY0");
- if (!BIT(state->m_keyb, 1)) res &= input_port_read(space->machine(), "KEY1");
- if (!BIT(state->m_keyb, 2)) res &= input_port_read(space->machine(), "KEY2");
- if (!BIT(state->m_keyb, 3)) res &= input_port_read(space->machine(), "KEY3");
- if (!BIT(state->m_keyb, 4)) res &= input_port_read(space->machine(), "KEY4");
+ if (!BIT(m_keyb, 0)) res &= input_port_read(machine(), "KEY0");
+ if (!BIT(m_keyb, 1)) res &= input_port_read(machine(), "KEY1");
+ if (!BIT(m_keyb, 2)) res &= input_port_read(machine(), "KEY2");
+ if (!BIT(m_keyb, 3)) res &= input_port_read(machine(), "KEY3");
+ if (!BIT(m_keyb, 4)) res &= input_port_read(machine(), "KEY4");
return res;
}
-static READ8_HANDLER( hanamai_keyboard_1_r )
+READ8_MEMBER(dynax_state::hanamai_keyboard_1_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
int res = 0x3f;
/* the game reads all rows at once (keyb = 0) to check if a key is pressed */
- if (!BIT(state->m_keyb, 0)) res &= input_port_read(space->machine(), "KEY5");
- if (!BIT(state->m_keyb, 1)) res &= input_port_read(space->machine(), "KEY6");
- if (!BIT(state->m_keyb, 2)) res &= input_port_read(space->machine(), "KEY7");
- if (!BIT(state->m_keyb, 3)) res &= input_port_read(space->machine(), "KEY8");
- if (!BIT(state->m_keyb, 4)) res &= input_port_read(space->machine(), "KEY9");
+ if (!BIT(m_keyb, 0)) res &= input_port_read(machine(), "KEY5");
+ if (!BIT(m_keyb, 1)) res &= input_port_read(machine(), "KEY6");
+ if (!BIT(m_keyb, 2)) res &= input_port_read(machine(), "KEY7");
+ if (!BIT(m_keyb, 3)) res &= input_port_read(machine(), "KEY8");
+ if (!BIT(m_keyb, 4)) res &= input_port_read(machine(), "KEY9");
return res;
}
-static WRITE8_HANDLER( hanamai_keyboard_w )
+WRITE8_MEMBER(dynax_state::hanamai_keyboard_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_keyb = data;
+ m_keyb = data;
}
-static WRITE8_HANDLER( dynax_rombank_w )
+WRITE8_MEMBER(dynax_state::dynax_rombank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static WRITE8_HANDLER( jantouki_sound_rombank_w )
+WRITE8_MEMBER(dynax_state::jantouki_sound_rombank_w)
{
- memory_set_bank(space->machine(), "bank2", data);
+ memory_set_bank(machine(), "bank2", data);
}
-static WRITE8_HANDLER( hnoridur_rombank_w )
+WRITE8_MEMBER(dynax_state::hnoridur_rombank_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- int bank_n = (space->machine().region("maincpu")->bytes() - 0x10000) / 0x8000;
+ int bank_n = (machine().region("maincpu")->bytes() - 0x10000) / 0x8000;
- //logerror("%04x: rom bank = %02x\n", cpu_get_pc(&space->device()), data);
+ //logerror("%04x: rom bank = %02x\n", cpu_get_pc(&space.device()), data);
if (data < bank_n)
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
else
logerror("rom_bank = %02x (larger than the maximum bank %02x)\n", data, bank_n);
- state->m_hnoridur_bank = data;
+ m_hnoridur_bank = data;
}
-static WRITE8_HANDLER( hnoridur_palbank_w )
+WRITE8_MEMBER(dynax_state::hnoridur_palbank_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_palbank = data & 0x0f;
- dynax_blit_palbank_w(space, 0, data);
+ m_palbank = data & 0x0f;
+ dynax_blit_palbank_w(&space, 0, data);
}
-static WRITE8_HANDLER( hnoridur_palette_w )
+WRITE8_MEMBER(dynax_state::hnoridur_palette_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- switch (state->m_hnoridur_bank)
+ switch (m_hnoridur_bank)
{
case 0x10:
if (offset >= 0x100)
return;
- state->m_palette_ram[256 * state->m_palbank + offset + 16 * 256] = data;
+ m_palette_ram[256 * m_palbank + offset + 16 * 256] = data;
break;
case 0x14:
if (offset >= 0x100)
return;
- state->m_palette_ram[256 * state->m_palbank + offset] = data;
+ m_palette_ram[256 * m_palbank + offset] = data;
break;
// hnoridur: R/W RAM
case 0x18:
{
- UINT8 *RAM = space->machine().region("maincpu")->base() + 0x10000 + state->m_hnoridur_bank * 0x8000;
+ UINT8 *RAM = machine().region("maincpu")->base() + 0x10000 + m_hnoridur_bank * 0x8000;
RAM[offset] = data;
return;
}
default:
- popmessage("palette_w with bank = %02x", state->m_hnoridur_bank);
+ popmessage("palette_w with bank = %02x", m_hnoridur_bank);
break;
}
{
- int x = (state->m_palette_ram[256 * state->m_palbank + offset] << 8) + state->m_palette_ram[256 * state->m_palbank + offset + 16 * 256];
+ int x = (m_palette_ram[256 * m_palbank + offset] << 8) + m_palette_ram[256 * m_palbank + offset + 16 * 256];
/* The bits are in reverse order! */
int r = BITSWAP8((x >> 0) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
int g = BITSWAP8((x >> 5) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
int b = BITSWAP8((x >> 10) & 0x1f, 7, 6, 5, 0, 1, 2, 3, 4);
- palette_set_color_rgb(space->machine(), 256 * state->m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), 256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
-static WRITE8_HANDLER( yarunara_palette_w )
+WRITE8_MEMBER(dynax_state::yarunara_palette_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- int addr = 512 * state->m_palbank + offset;
+ int addr = 512 * m_palbank + offset;
- switch (state->m_hnoridur_bank)
+ switch (m_hnoridur_bank)
{
case 0x10:
- state->m_palette_ram[addr] = data;
+ m_palette_ram[addr] = data;
break;
case 0x1c: // RTC
{
- msm6242_device *rtc = space->machine().device<msm6242_device>("rtc");
+ msm6242_device *rtc = machine().device<msm6242_device>("rtc");
- rtc->write(*space, offset,data);
+ rtc->write(*&space, offset,data);
}
return;
default:
- popmessage("palette_w with bank = %02x", state->m_hnoridur_bank);
+ popmessage("palette_w with bank = %02x", m_hnoridur_bank);
return;
}
{
- int br = state->m_palette_ram[addr & ~0x10]; // bbbrrrrr
- int bg = state->m_palette_ram[addr | 0x10]; // bb0ggggg
+ int br = m_palette_ram[addr & ~0x10]; // bbbrrrrr
+ int bg = m_palette_ram[addr | 0x10]; // bb0ggggg
int r = br & 0x1f;
int g = bg & 0x1f;
int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5);
- palette_set_color_rgb(space->machine(), 256 * state->m_palbank + ((offset & 0x0f) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), 256 * m_palbank + ((offset & 0x0f) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
}
}
-static WRITE8_HANDLER( nanajign_palette_w )
+WRITE8_MEMBER(dynax_state::nanajign_palette_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- switch (state->m_hnoridur_bank)
+ switch (m_hnoridur_bank)
{
case 0x10:
- state->m_palette_ram[256 * state->m_palbank + offset + 16 * 256] = data;
+ m_palette_ram[256 * m_palbank + offset + 16 * 256] = data;
break;
case 0x14:
- state->m_palette_ram[256 * state->m_palbank + offset] = data;
+ m_palette_ram[256 * m_palbank + offset] = data;
break;
default:
- popmessage("palette_w with bank = %02x", state->m_hnoridur_bank);
+ popmessage("palette_w with bank = %02x", m_hnoridur_bank);
break;
}
{
- int bg = state->m_palette_ram[256 * state->m_palbank + offset];
- int br = state->m_palette_ram[256 * state->m_palbank + offset + 16 * 256];
+ int bg = m_palette_ram[256 * m_palbank + offset];
+ int br = m_palette_ram[256 * m_palbank + offset + 16 * 256];
int r = br & 0x1f;
int g = bg & 0x1f;
int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5);
- palette_set_color_rgb(space->machine(), 256 * state->m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), 256 * m_palbank + offset, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -440,10 +426,9 @@ static void adpcm_int_cpu1( device_t *device )
}
-static WRITE8_HANDLER( adpcm_data_w )
+WRITE8_MEMBER(dynax_state::adpcm_data_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
static WRITE8_DEVICE_HANDLER( adpcm_reset_w )
@@ -461,14 +446,14 @@ static MACHINE_RESET( adpcm )
msm5205_reset_w(machine.device("msm"), 1);
}
-static WRITE8_HANDLER( yarunara_layer_half_w )
+WRITE8_MEMBER(dynax_state::yarunara_layer_half_w)
{
- hanamai_layer_half_w(space, 0, data >> 1);
+ hanamai_layer_half_w(&space, 0, data >> 1);
}
-static WRITE8_HANDLER( yarunara_layer_half2_w )
+WRITE8_MEMBER(dynax_state::yarunara_layer_half2_w)
{
- hnoridur_layer_half2_w(space, 0, data >> 1);
+ hnoridur_layer_half2_w(&space, 0, data >> 1);
}
static ADDRESS_MAP_START( sprtmtch_mem_map, AS_PROGRAM, 8, dynax_state )
@@ -480,21 +465,21 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hnoridur_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE_LEGACY(hnoridur_palette_w)
+ AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcnpshnt_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE_LEGACY(hnoridur_palette_w)
+ AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nanajign_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0x80ff ) AM_WRITE_LEGACY(nanajign_palette_w)
+ AM_RANGE( 0x8000, 0x80ff ) AM_WRITE(nanajign_palette_w)
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END
@@ -510,7 +495,7 @@ static ADDRESS_MAP_START( yarunara_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
- AM_RANGE( 0x8000, 0x81ff ) AM_WRITE_LEGACY(yarunara_palette_w) // Palette or RTC
+ AM_RANGE( 0x8000, 0x81ff ) AM_WRITE(yarunara_palette_w) // Palette or RTC
ADDRESS_MAP_END
static ADDRESS_MAP_START( jantouki_mem_map, AS_PROGRAM, 8, dynax_state )
@@ -533,15 +518,15 @@ static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x00, 0x00 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x20, 0x20 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
AM_RANGE( 0x41, 0x47 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
- AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(dynax_rombank_w) // BANK ROM Select hnkochou only
- AM_RANGE( 0x60, 0x60 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
- AM_RANGE( 0x61, 0x61 ) AM_READ_LEGACY(hanamai_keyboard_1_r) // P2
+ AM_RANGE( 0x50, 0x50 ) AM_WRITE(dynax_rombank_w) // BANK ROM Select hnkochou only
+ AM_RANGE( 0x60, 0x60 ) AM_READ(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x61, 0x61 ) AM_READ(hanamai_keyboard_1_r) // P2
AM_RANGE( 0x62, 0x62 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x63, 0x63 ) AM_READ_LEGACY(ret_ff) // ?
- AM_RANGE( 0x64, 0x64 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
- AM_RANGE( 0x65, 0x65 ) AM_WRITE_LEGACY(dynax_rombank_w) // BANK ROM Select hanamai only
- AM_RANGE( 0x66, 0x66 ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
- AM_RANGE( 0x67, 0x67 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ AM_RANGE( 0x63, 0x63 ) AM_READ(ret_ff) // ?
+ AM_RANGE( 0x64, 0x64 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x65, 0x65 ) AM_WRITE(dynax_rombank_w) // BANK ROM Select hanamai only
+ AM_RANGE( 0x66, 0x66 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x67, 0x67 ) AM_WRITE(adpcm_data_w) // MSM5205 data
AM_RANGE( 0x68, 0x68 ) AM_WRITE_LEGACY(dynax_layer_enable_w) // Layers Enable
AM_RANGE( 0x69, 0x69 ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority
AM_RANGE( 0x6a, 0x6a ) AM_WRITE_LEGACY(dynax_blit_dest_w) // Destination Layer
@@ -551,9 +536,9 @@ static ADDRESS_MAP_START( hanamai_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x6e, 0x6e ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
AM_RANGE( 0x70, 0x70 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
AM_RANGE( 0x71, 0x71 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
- AM_RANGE( 0x72, 0x72 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x73, 0x73 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
- AM_RANGE( 0x74, 0x74 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x72, 0x72 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x73, 0x73 ) AM_WRITE(dynax_coincounter_1_w) //
+ AM_RANGE( 0x74, 0x74 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
AM_RANGE( 0x76, 0x76 ) AM_WRITE_LEGACY(dynax_blit_palbank_w) // Layers Palettes (High Bit)
AM_RANGE( 0x77, 0x77 ) AM_WRITE_LEGACY(hanamai_layer_half_w) // half of the interleaved layer to write to
AM_RANGE( 0x78, 0x79 ) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w) // 2 x DSW
@@ -569,15 +554,15 @@ static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x01, 0x07 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x11, 0x11 ) AM_WRITENOP // CRT Controller
- AM_RANGE( 0x20, 0x20 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x20, 0x20 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x22, 0x22 ) AM_READ_LEGACY(hanamai_keyboard_1_r) // P2
- AM_RANGE( 0x23, 0x23 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x22, 0x22 ) AM_READ(hanamai_keyboard_1_r) // P2
+ AM_RANGE( 0x23, 0x23 ) AM_READ(hanamai_keyboard_0_r) // P1
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( 0x32, 0x32 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ 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
AM_RANGE( 0x38, 0x38 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) // AY8910
@@ -589,40 +574,38 @@ static ADDRESS_MAP_START( hnoridur_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x44, 0x44 ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority and enable
AM_RANGE( 0x45, 0x45 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
AM_RANGE( 0x46, 0x46 ) AM_WRITE_LEGACY(dynax_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0x47, 0x47 ) AM_WRITE_LEGACY(hnoridur_palbank_w)
+ AM_RANGE( 0x47, 0x47 ) AM_WRITE(hnoridur_palbank_w)
AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x51, 0x51 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0x54, 0x54 ) AM_WRITE_LEGACY(hnoridur_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x54, 0x54 ) AM_WRITE(hnoridur_rombank_w) // BANK ROM Select
AM_RANGE( 0x55, 0x55 ) AM_WRITENOP // ? VBlank IRQ Ack
- AM_RANGE( 0x56, 0x56 ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
- AM_RANGE( 0x57, 0x57 ) AM_READ_LEGACY(ret_ff) // ?
+ AM_RANGE( 0x56, 0x56 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x57, 0x57 ) AM_READ(ret_ff) // ?
AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0x61, 0x61 ) AM_WRITE_LEGACY(hanamai_layer_half_w) // half of the interleaved layer to write to
AM_RANGE( 0x62, 0x62 ) AM_WRITE_LEGACY(hnoridur_layer_half2_w) //
- AM_RANGE( 0x67, 0x67 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
- AM_RANGE( 0x70, 0x70 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x71, 0x71 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
+ AM_RANGE( 0x67, 0x67 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x70, 0x70 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x71, 0x71 ) AM_WRITE(dynax_coincounter_1_w) //
ADDRESS_MAP_END
/***************************************************************************
Hana Jingi
***************************************************************************/
-static WRITE8_HANDLER( hjingi_bank_w )
+WRITE8_MEMBER(dynax_state::hjingi_bank_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_hnoridur_bank = data;
+ m_hnoridur_bank = data;
}
-static WRITE8_HANDLER( hjingi_lockout_w )
+WRITE8_MEMBER(dynax_state::hjingi_lockout_w)
{
- coin_lockout_w(space->machine(), 0, (~data) & 0x01);
+ coin_lockout_w(machine(), 0, (~data) & 0x01);
}
-static WRITE8_HANDLER( hjingi_hopper_w )
+WRITE8_MEMBER(dynax_state::hjingi_hopper_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_hopper = data & 0x01;
+ m_hopper = data & 0x01;
}
static UINT8 hjingi_hopper_bit( running_machine &machine )
@@ -631,21 +614,21 @@ static UINT8 hjingi_hopper_bit( running_machine &machine )
return (state->m_hopper && !(machine.primary_screen->frame_number() % 10)) ? 0 : (1 << 6);
}
-static READ8_HANDLER( hjingi_keyboard_0_r )
+READ8_MEMBER(dynax_state::hjingi_keyboard_0_r)
{
- return hanamai_keyboard_0_r(space, 0) | hjingi_hopper_bit(space->machine());
+ return hanamai_keyboard_0_r(space, 0) | hjingi_hopper_bit(machine());
}
-static READ8_HANDLER( hjingi_keyboard_1_r )
+READ8_MEMBER(dynax_state::hjingi_keyboard_1_r)
{
- return hanamai_keyboard_1_r(space, 0) | input_port_read(space->machine(), "BET");
+ return hanamai_keyboard_1_r(space, 0) | input_port_read(machine(), "BET");
}
static ADDRESS_MAP_START( hjingi_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x01ff ) AM_ROM
AM_RANGE( 0x0200, 0x1fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x2000, 0x7fff ) AM_ROM
- AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE_LEGACY(hnoridur_palette_w)
+ AM_RANGE( 0x8000, 0xffff ) AM_READ_BANK("bank1") AM_WRITE(hnoridur_palette_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
@@ -655,16 +638,16 @@ static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x11, 0x11 ) AM_WRITENOP // CRT Controller
- AM_RANGE( 0x20, 0x20 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x20, 0x20 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x22, 0x22 ) AM_READ_LEGACY(hjingi_keyboard_1_r) // P2 + Hopper
- AM_RANGE( 0x23, 0x23 ) AM_READ_LEGACY(hjingi_keyboard_0_r) // P1 + Hopper
+ AM_RANGE( 0x22, 0x22 ) AM_READ(hjingi_keyboard_1_r) // P2 + Hopper
+ AM_RANGE( 0x23, 0x23 ) AM_READ(hjingi_keyboard_0_r) // P1 + Hopper
AM_RANGE( 0x24, 0x24 ) AM_READ_PORT("DSW1") // DSW1
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( 0x32, 0x32 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ 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
@@ -678,27 +661,27 @@ static ADDRESS_MAP_START( hjingi_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x44, 0x44 ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority and enable
AM_RANGE( 0x45, 0x45 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
AM_RANGE( 0x46, 0x46 ) AM_WRITE_LEGACY(dynax_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0x47, 0x47 ) AM_WRITE_LEGACY(hnoridur_palbank_w)
+ AM_RANGE( 0x47, 0x47 ) AM_WRITE(hnoridur_palbank_w)
AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x51, 0x51 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0x54, 0x54 ) AM_WRITE_LEGACY(hjingi_bank_w) //
+ AM_RANGE( 0x54, 0x54 ) AM_WRITE(hjingi_bank_w) //
- AM_RANGE( 0x56, 0x56 ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
- AM_RANGE( 0x57, 0x57 ) AM_READ_LEGACY(ret_ff) // Blitter Busy
- AM_RANGE( 0x67, 0x67 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x56, 0x56 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x57, 0x57 ) AM_READ(ret_ff) // Blitter Busy
+ AM_RANGE( 0x67, 0x67 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0x61, 0x61 ) AM_WRITE_LEGACY(hanamai_layer_half_w) // half of the interleaved layer to write to
AM_RANGE( 0x62, 0x62 ) AM_WRITE_LEGACY(hnoridur_layer_half2_w) //
- AM_RANGE( 0x70, 0x70 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x71, 0x71 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
- AM_RANGE( 0x72, 0x72 ) AM_WRITE_LEGACY(hjingi_hopper_w) // Hopper
- AM_RANGE( 0x73, 0x73 ) AM_WRITE_LEGACY(hjingi_lockout_w) // Coin Lockout
+ AM_RANGE( 0x70, 0x70 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x71, 0x71 ) AM_WRITE(dynax_coincounter_1_w) //
+ AM_RANGE( 0x72, 0x72 ) AM_WRITE(hjingi_hopper_w) // Hopper
+ AM_RANGE( 0x73, 0x73 ) AM_WRITE(hjingi_lockout_w) // Coin Lockout
- AM_RANGE( 0x80, 0x80 ) AM_WRITE_LEGACY(hnoridur_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x80, 0x80 ) AM_WRITE(hnoridur_rombank_w) // BANK ROM Select
ADDRESS_MAP_END
@@ -706,14 +689,13 @@ ADDRESS_MAP_END
Yarunara / Quiz TV Q&Q / Mahjong Angels
***************************************************************************/
-static WRITE8_HANDLER( yarunara_input_w )
+WRITE8_MEMBER(dynax_state::yarunara_input_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
switch (offset)
{
- case 0: state->m_input_sel = data;
- state->m_keyb = 0;
+ case 0: m_input_sel = data;
+ m_keyb = 0;
break;
case 1: break;
@@ -721,9 +703,8 @@ static WRITE8_HANDLER( yarunara_input_w )
}
-static READ8_HANDLER( yarunara_input_r )
+READ8_MEMBER(dynax_state::yarunara_input_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
static const char *const keynames0[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4" };
static const char *const keynames1[] = { "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" };
@@ -731,10 +712,10 @@ static READ8_HANDLER( yarunara_input_r )
{
case 0:
{
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
case 0x00:
- return input_port_read(space->machine(), "COINS"); // coins
+ return input_port_read(machine(), "COINS"); // coins
case 0x02:
return 0xff; // bit 7 must be 1. Bit 2?
@@ -746,17 +727,17 @@ static READ8_HANDLER( yarunara_input_r )
case 1:
{
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
// player 2
case 0x01: //quiztvqq
case 0x81:
- return input_port_read(space->machine(), keynames1[state->m_keyb++]);
+ return input_port_read(machine(), keynames1[m_keyb++]);
// player 1
case 0x02: //quiztvqq
case 0x82:
- return input_port_read(space->machine(), keynames0[state->m_keyb++]);
+ return input_port_read(machine(), keynames0[m_keyb++]);
default:
return 0xff;
@@ -766,71 +747,70 @@ static READ8_HANDLER( yarunara_input_r )
return 0xff;
}
-static WRITE8_HANDLER( yarunara_rombank_w )
+WRITE8_MEMBER(dynax_state::yarunara_rombank_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- int bank_n = (space->machine().region("maincpu")->bytes() - 0x10000) / 0x8000;
+ int bank_n = (machine().region("maincpu")->bytes() - 0x10000) / 0x8000;
- //logerror("%04x: rom bank = %02x\n", cpu_get_pc(&space->device()), data);
+ //logerror("%04x: rom bank = %02x\n", cpu_get_pc(&space.device()), data);
if (data < bank_n)
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
else
logerror("rom_bank = %02x (larger than the maximum bank %02x)\n",data, bank_n);
- state->m_hnoridur_bank = data;
+ m_hnoridur_bank = data;
}
-static WRITE8_HANDLER( yarunara_flipscreen_w )
+WRITE8_MEMBER(dynax_state::yarunara_flipscreen_w)
{
- dynax_flipscreen_w(space, 0, BIT(data, 1));
+ dynax_flipscreen_w(&space, 0, BIT(data, 1));
}
-static WRITE8_HANDLER( yarunara_flipscreen_inv_w )
+WRITE8_MEMBER(dynax_state::yarunara_flipscreen_inv_w)
{
- dynax_flipscreen_w(space, 0, !BIT(data, 1));
+ dynax_flipscreen_w(&space, 0, !BIT(data, 1));
}
-static WRITE8_HANDLER( yarunara_blit_romregion_w )
+WRITE8_MEMBER(dynax_state::yarunara_blit_romregion_w)
{
switch(data)
{
- case 0x00: dynax_blit_romregion_w(space, 0, 0); return;
- case 0x01: dynax_blit_romregion_w(space, 0, 1); return;
- case 0x80: dynax_blit_romregion_w(space, 0, 2); return;
- case 0x81: dynax_blit_romregion_w(space, 0, 3); return;
- case 0x82: dynax_blit_romregion_w(space, 0, 4); return; // mjcomv1
+ case 0x00: dynax_blit_romregion_w(&space, 0, 0); return;
+ case 0x01: dynax_blit_romregion_w(&space, 0, 1); return;
+ case 0x80: dynax_blit_romregion_w(&space, 0, 2); return;
+ case 0x81: dynax_blit_romregion_w(&space, 0, 3); return;
+ case 0x82: dynax_blit_romregion_w(&space, 0, 4); return; // mjcomv1
}
- logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space->device()), data);
+ logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space.device()), data);
}
static ADDRESS_MAP_START( yarunara_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x01 ) AM_WRITE_LEGACY(yarunara_input_w) // Controls
- AM_RANGE( 0x02, 0x03 ) AM_READ_LEGACY(yarunara_input_r) //
+ 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_LEGACY(dynax_blitter_rev2_w) // Blitter
AM_RANGE( 0x20, 0x20 ) AM_DEVWRITE_LEGACY("msm", adpcm_reset_w) // MSM5205 reset
- AM_RANGE( 0x22, 0x22 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ 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
AM_RANGE( 0x2a, 0x2a ) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) //
AM_RANGE( 0x48, 0x48 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x49, 0x49 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0x4a, 0x4a ) AM_WRITE_LEGACY(yarunara_rombank_w) // BANK ROM Select
- AM_RANGE( 0x4b, 0x4b ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x4a, 0x4a ) AM_WRITE(yarunara_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x4b, 0x4b ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
AM_RANGE( 0x4c, 0x4c ) AM_READ_PORT("DSW0") // DSW 1
AM_RANGE( 0x4f, 0x4f ) AM_READ_PORT("DSW1") // DSW 2
- AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(yarunara_flipscreen_w)
- AM_RANGE( 0x51, 0x51 ) AM_WRITE_LEGACY(yarunara_layer_half_w) // half of the interleaved layer to write to
- AM_RANGE( 0x52, 0x52 ) AM_WRITE_LEGACY(yarunara_layer_half2_w) //
+ AM_RANGE( 0x50, 0x50 ) AM_WRITE(yarunara_flipscreen_w)
+ AM_RANGE( 0x51, 0x51 ) AM_WRITE(yarunara_layer_half_w) // half of the interleaved layer to write to
+ AM_RANGE( 0x52, 0x52 ) AM_WRITE(yarunara_layer_half2_w) //
// 53 ?
// 54 ?
- AM_RANGE( 0x57, 0x57 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x57, 0x57 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
AM_RANGE( 0x68, 0x68 ) AM_WRITE_LEGACY(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0x69, 0x69 ) AM_WRITE_LEGACY(dynax_blit_dest_w) // Destination Layer
AM_RANGE( 0x6a, 0x6a ) AM_WRITE_LEGACY(dynax_blit_palette01_w) // Layers Palettes
AM_RANGE( 0x6b, 0x6b ) AM_WRITE_LEGACY(dynax_blit_palette23_w) //
AM_RANGE( 0x6c, 0x6c ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority and enable
AM_RANGE( 0x6d, 0x6d ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0x6e, 0x6e ) AM_WRITE_LEGACY(yarunara_blit_romregion_w) // Blitter ROM bank
+ AM_RANGE( 0x6e, 0x6e ) AM_WRITE(yarunara_blit_romregion_w) // Blitter ROM bank
ADDRESS_MAP_END
@@ -840,14 +820,14 @@ static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x01, 0x07 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
// AM_RANGE( 0x10, 0x10 ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x11, 0x11 ) AM_WRITENOP // CRT Controller
- AM_RANGE( 0x20, 0x20 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x20, 0x20 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x22, 0x22 ) AM_READ_LEGACY(hanamai_keyboard_1_r) // P2
- AM_RANGE( 0x23, 0x23 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x22, 0x22 ) AM_READ(hanamai_keyboard_1_r) // P2
+ 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( 0x32, 0x32 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ 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
AM_RANGE( 0x3a, 0x3a ) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) //
@@ -857,19 +837,19 @@ static ADDRESS_MAP_START( mcnpshnt_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x43, 0x43 ) AM_WRITE_LEGACY(dynax_blit_palette23_w) //
AM_RANGE( 0x44, 0x44 ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority and enable
AM_RANGE( 0x45, 0x45 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0x46, 0x46 ) AM_WRITE_LEGACY(yarunara_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0x47, 0x47 ) AM_WRITE_LEGACY(hnoridur_palbank_w)
+ AM_RANGE( 0x46, 0x46 ) AM_WRITE(yarunara_blit_romregion_w) // Blitter ROM bank
+ AM_RANGE( 0x47, 0x47 ) AM_WRITE(hnoridur_palbank_w)
AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x51, 0x51 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0x54, 0x54 ) AM_WRITE_LEGACY(hnoridur_rombank_w) // BANK ROM Select
- AM_RANGE( 0x56, 0x56 ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
- AM_RANGE( 0x57, 0x57 ) AM_READ_LEGACY(ret_ff) // ?
+ AM_RANGE( 0x54, 0x54 ) AM_WRITE(hnoridur_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x56, 0x56 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x57, 0x57 ) AM_READ(ret_ff) // ?
AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0x61, 0x61 ) AM_WRITE_LEGACY(hanamai_layer_half_w) // half of the interleaved layer to write to
AM_RANGE( 0x62, 0x62 ) AM_WRITE_LEGACY(hnoridur_layer_half2_w) //
- AM_RANGE( 0x67, 0x67 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
- AM_RANGE( 0x70, 0x70 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x71, 0x71 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
+ AM_RANGE( 0x67, 0x67 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x70, 0x70 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x71, 0x71 ) AM_WRITE(dynax_coincounter_1_w) //
ADDRESS_MAP_END
@@ -882,20 +862,20 @@ static ADDRESS_MAP_START( sprtmtch_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x20, 0x20 ) AM_READ_PORT("P1") // P1
AM_RANGE( 0x21, 0x21 ) AM_READ_PORT("P2") // P2
AM_RANGE( 0x22, 0x22 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x23, 0x23 ) AM_READ_LEGACY(ret_ff) // ?
+ AM_RANGE( 0x23, 0x23 ) AM_READ(ret_ff) // ?
AM_RANGE( 0x30, 0x30 ) AM_WRITE_LEGACY(dynax_layer_enable_w) // Layers Enable
- AM_RANGE( 0x31, 0x31 ) AM_WRITE_LEGACY(dynax_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x31, 0x31 ) AM_WRITE(dynax_rombank_w) // BANK ROM Select
AM_RANGE( 0x32, 0x32 ) AM_WRITE_LEGACY(dynax_blit_dest_w) // Destination Layer
AM_RANGE( 0x33, 0x33 ) AM_WRITE_LEGACY(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0x34, 0x34 ) AM_WRITE_LEGACY(dynax_blit_palette01_w) // Layers Palettes (Low Bits)
AM_RANGE( 0x35, 0x35 ) AM_WRITE_LEGACY(dynax_blit_palette23_w) //
AM_RANGE( 0x36, 0x36 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0x37, 0x37 ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
+ 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( 0x41, 0x41 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
- AM_RANGE( 0x42, 0x42 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x43, 0x43 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
- AM_RANGE( 0x44, 0x44 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x42, 0x42 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x43, 0x43 ) AM_WRITE(dynax_coincounter_1_w) //
+ AM_RANGE( 0x44, 0x44 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
AM_RANGE( 0x45, 0x45 ) AM_WRITE_LEGACY(dynax_blit_palbank_w) // Layers Palettes (High Bit)
ADDRESS_MAP_END
@@ -905,21 +885,21 @@ static ADDRESS_MAP_START( mjfriday_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0x00 ) AM_WRITE_LEGACY(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0x01, 0x01 ) AM_WRITE_LEGACY(dynax_blit_palette01_w) // Layers Palettes (Low Bits)
- AM_RANGE( 0x02, 0x02 ) AM_WRITE_LEGACY(dynax_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x02, 0x02 ) AM_WRITE(dynax_rombank_w) // BANK ROM Select
AM_RANGE( 0x03, 0x03 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
AM_RANGE( 0x10, 0x11 ) AM_WRITE_LEGACY(mjdialq2_blit_dest_w) // Destination Layer
AM_RANGE( 0x12, 0x12 ) AM_WRITE_LEGACY(dynax_blit_palbank_w) // Layers Palettes (High Bit)
AM_RANGE( 0x13, 0x13 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
- AM_RANGE( 0x14, 0x14 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x15, 0x15 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
+ AM_RANGE( 0x14, 0x14 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x15, 0x15 ) AM_WRITE(dynax_coincounter_1_w) //
AM_RANGE( 0x16, 0x17 ) AM_WRITE_LEGACY(mjdialq2_layer_enable_w) // Layers Enable
AM_RANGE( 0x41, 0x47 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
// AM_RANGE( 0x50, 0x50 ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x51, 0x51 ) AM_WRITENOP // CRT Controller
- AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x60, 0x60 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
AM_RANGE( 0x61, 0x61 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x62, 0x62 ) AM_READ_LEGACY(hanamai_keyboard_1_r) // P2
- AM_RANGE( 0x63, 0x63 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x62, 0x62 ) AM_READ(hanamai_keyboard_1_r) // P2
+ AM_RANGE( 0x63, 0x63 ) AM_READ(hanamai_keyboard_0_r) // P1
AM_RANGE( 0x64, 0x64 ) AM_READ_PORT("DSW0") // DSW
AM_RANGE( 0x67, 0x67 ) AM_READ_PORT("DSW1") // DSW
AM_RANGE( 0x70, 0x71 ) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) //
@@ -930,36 +910,36 @@ 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( 0x02, 0x02 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ 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
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) //
- AM_RANGE( 0x10, 0x10 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x10, 0x10 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x12, 0x12 ) AM_READ_LEGACY(hanamai_keyboard_1_r) // P2
- AM_RANGE( 0x13, 0x13 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x12, 0x12 ) AM_READ(hanamai_keyboard_1_r) // P2
+ AM_RANGE( 0x13, 0x13 ) AM_READ(hanamai_keyboard_0_r) // P1
AM_RANGE( 0x14, 0x14 ) AM_READ_PORT("DSW0") // DSW1
AM_RANGE( 0x15, 0x15 ) AM_READ_PORT("DSW1") // DSW2
AM_RANGE( 0x16, 0x16 ) AM_READ_PORT("DSW2") // DSW3
// AM_RANGE( 0x20, 0x21 ) AM_WRITENOP // CRT Controller
AM_RANGE( 0x31, 0x37 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
- AM_RANGE( 0x40, 0x40 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counter
+ AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counter
AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0x51, 0x51 ) AM_WRITE_LEGACY(hanamai_layer_half_w) // half of the interleaved layer to write to
AM_RANGE( 0x52, 0x52 ) AM_WRITE_LEGACY(hnoridur_layer_half2_w) //
- AM_RANGE( 0x57, 0x57 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x57, 0x57 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x62, 0x62 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0x6a, 0x6a ) AM_WRITE_LEGACY(hnoridur_rombank_w) // BANK ROM Select
- AM_RANGE( 0x6c, 0x6c ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x6a, 0x6a ) AM_WRITE(hnoridur_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x6c, 0x6c ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
AM_RANGE( 0x70, 0x70 ) AM_WRITE_LEGACY(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0x71, 0x71 ) AM_WRITE_LEGACY(dynax_blit_dest_w) // Destination Layer
AM_RANGE( 0x72, 0x72 ) AM_WRITE_LEGACY(dynax_blit_palette01_w) // Layers Palettes
AM_RANGE( 0x73, 0x73 ) AM_WRITE_LEGACY(dynax_blit_palette23_w) //
AM_RANGE( 0x74, 0x74 ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority and enable
AM_RANGE( 0x75, 0x75 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0x76, 0x76 ) AM_WRITE_LEGACY(yarunara_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0x77, 0x77 ) AM_WRITE_LEGACY(hnoridur_palbank_w)
+ AM_RANGE( 0x76, 0x76 ) AM_WRITE(yarunara_blit_romregion_w) // Blitter ROM bank
+ AM_RANGE( 0x77, 0x77 ) AM_WRITE(hnoridur_palbank_w)
ADDRESS_MAP_END
@@ -967,54 +947,52 @@ ADDRESS_MAP_END
Jantouki - Main CPU
***************************************************************************/
-static READ8_HANDLER( jantouki_soundlatch_ack_r )
+READ8_MEMBER(dynax_state::jantouki_soundlatch_ack_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- return (state->m_soundlatch_ack) ? 0x80 : 0;
+ return (m_soundlatch_ack) ? 0x80 : 0;
}
-static WRITE8_HANDLER( jantouki_soundlatch_w )
+WRITE8_MEMBER(dynax_state::jantouki_soundlatch_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_soundlatch_ack = 1;
- state->m_soundlatch_full = 1;
- state->m_soundlatch_irq = 1;
- state->m_latch = data;
- jantouki_sound_update_irq(space->machine());
+ m_soundlatch_ack = 1;
+ m_soundlatch_full = 1;
+ m_soundlatch_irq = 1;
+ m_latch = data;
+ jantouki_sound_update_irq(machine());
}
-static READ8_HANDLER( jantouki_blitter_busy_r )
+READ8_MEMBER(dynax_state::jantouki_blitter_busy_r)
{
return 0; // bit 0 & 1
}
-static WRITE8_HANDLER( jantouki_rombank_w )
+WRITE8_MEMBER(dynax_state::jantouki_rombank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
- set_led_status(space->machine(), 0, data & 0x10); // maybe
+ memory_set_bank(machine(), "bank1", data & 0x0f);
+ set_led_status(machine(), 0, data & 0x10); // maybe
}
static ADDRESS_MAP_START( jantouki_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE( 0x40, 0x41 ) AM_WRITENOP // CRT Controller
- AM_RANGE( 0x48, 0x48 ) AM_WRITE_LEGACY(jantouki_rombank_w) // BANK ROM Select
- AM_RANGE( 0x49, 0x49 ) AM_WRITE_LEGACY(jantouki_soundlatch_w) // To Sound CPU
- AM_RANGE( 0x4a, 0x4a ) AM_READ_LEGACY(jantouki_soundlatch_ack_r) // Soundlatch status
+ AM_RANGE( 0x48, 0x48 ) AM_WRITE(jantouki_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x49, 0x49 ) AM_WRITE(jantouki_soundlatch_w) // To Sound CPU
+ AM_RANGE( 0x4a, 0x4a ) AM_READ(jantouki_soundlatch_ack_r) // Soundlatch status
AM_RANGE( 0x4b, 0x4b ) AM_WRITE_LEGACY(dynax_blit2_dest_w) // Destination Layer 2
AM_RANGE( 0x4d, 0x4d ) AM_WRITE_LEGACY(dynax_blit_dest_w) // Destination Layer
AM_RANGE( 0x4f, 0x4f ) AM_WRITE_LEGACY(dynax_blit2_romregion_w) // Blitter 2 ROM bank
- AM_RANGE( 0x50, 0x50 ) AM_WRITE_LEGACY(jantouki_vblank_ack_w) // VBlank IRQ Ack
- AM_RANGE( 0x51, 0x51 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
- AM_RANGE( 0x52, 0x52 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x50, 0x50 ) AM_WRITE(jantouki_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x51, 0x51 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x52, 0x52 ) AM_READ(hanamai_keyboard_0_r) // P1
AM_RANGE( 0x54, 0x54 ) AM_READ_PORT("COINS") // Coins
AM_RANGE( 0x55, 0x55 ) AM_READ_PORT("DSW0") // DSW1
AM_RANGE( 0x56, 0x56 ) AM_READ_PORT("DSW1") // DSW2
- AM_RANGE( 0x58, 0x58 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counter
+ AM_RANGE( 0x58, 0x58 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counter
AM_RANGE( 0x5b, 0x5b ) AM_WRITE_LEGACY(dynax_blit2_palbank_w) // Layers Palettes (High Bit)
AM_RANGE( 0x5d, 0x5d ) AM_WRITE_LEGACY(dynax_blit_palbank_w) //
- AM_RANGE( 0x5e, 0x5e ) AM_WRITE_LEGACY(jantouki_blitter_ack_w) // Blitter IRQ Ack
- AM_RANGE( 0x5f, 0x5f ) AM_WRITE_LEGACY(jantouki_blitter2_ack_w) // Blitter 2 IRQ Ack
+ AM_RANGE( 0x5e, 0x5e ) AM_WRITE(jantouki_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0x5f, 0x5f ) AM_WRITE(jantouki_blitter2_ack_w) // Blitter 2 IRQ Ack
AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(dynax_blit_palette67_w) // Layers Palettes (Low Bits)
AM_RANGE( 0x61, 0x61 ) AM_WRITE_LEGACY(dynax_blit_palette45_w) //
AM_RANGE( 0x62, 0x62 ) AM_WRITE_LEGACY(dynax_blit_palette23_w) //
@@ -1022,7 +1000,7 @@ static ADDRESS_MAP_START( jantouki_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0x64, 0x64 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
AM_RANGE( 0x65, 0x65 ) AM_WRITE_LEGACY(dynax_blit2_pen_w) // Destination Pen 2
AM_RANGE( 0x66, 0x66 ) AM_WRITE_LEGACY(dynax_blit_pen_w) // Destination Pen
- AM_RANGE( 0x67, 0x67 ) AM_READ_LEGACY(jantouki_blitter_busy_r) //
+ AM_RANGE( 0x67, 0x67 ) AM_READ(jantouki_blitter_busy_r) //
AM_RANGE( 0x69, 0x6f ) AM_WRITE_LEGACY(jantouki_blitter2_rev2_w) // Blitter 2
AM_RANGE( 0x71, 0x77 ) AM_WRITE_LEGACY(jantouki_blitter_rev2_w) // Blitter
AM_RANGE( 0x78, 0x7e ) AM_WRITE_LEGACY(jantouki_layer_enable_w) // Layers Enable
@@ -1032,39 +1010,36 @@ ADDRESS_MAP_END
Jantouki - Sound CPU
***************************************************************************/
-static WRITE8_HANDLER( jantouki_soundlatch_ack_w )
+WRITE8_MEMBER(dynax_state::jantouki_soundlatch_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_soundlatch_ack = data;
- state->m_soundlatch_irq = 0;
- jantouki_sound_update_irq(space->machine());
+ m_soundlatch_ack = data;
+ m_soundlatch_irq = 0;
+ jantouki_sound_update_irq(machine());
}
-static READ8_HANDLER( jantouki_soundlatch_r )
+READ8_MEMBER(dynax_state::jantouki_soundlatch_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_soundlatch_full = 0;
- return state->m_latch;
+ m_soundlatch_full = 0;
+ return m_latch;
}
-static READ8_HANDLER( jantouki_soundlatch_status_r )
+READ8_MEMBER(dynax_state::jantouki_soundlatch_status_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- return (state->m_soundlatch_full) ? 0 : 0x80;
+ return (m_soundlatch_full) ? 0 : 0x80;
}
static ADDRESS_MAP_START( jantouki_sound_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x00 ) AM_WRITE_LEGACY(jantouki_sound_rombank_w) // BANK ROM Select
- AM_RANGE( 0x10, 0x10 ) AM_WRITE_LEGACY(jantouki_sound_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0x00, 0x00 ) AM_WRITE(jantouki_sound_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x10, 0x10 ) AM_WRITE(jantouki_sound_vblank_ack_w) // VBlank IRQ Ack
AM_RANGE( 0x21, 0x21 ) AM_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( 0x40, 0x40 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
- AM_RANGE( 0x50, 0x50 ) AM_READ_LEGACY(jantouki_soundlatch_status_r) // Soundlatch status
- AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(jantouki_soundlatch_ack_w) // Soundlatch status
- AM_RANGE( 0x70, 0x70 ) AM_READ_LEGACY(jantouki_soundlatch_r) // From Main CPU
+ 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
+ AM_RANGE( 0x70, 0x70 ) AM_READ(jantouki_soundlatch_r) // From Main CPU
ADDRESS_MAP_END
@@ -1073,49 +1048,47 @@ ADDRESS_MAP_END
Mahjong Electron Base
***************************************************************************/
-static READ8_HANDLER( mjelctrn_keyboard_1_r )
+READ8_MEMBER(dynax_state::mjelctrn_keyboard_1_r)
{
- return (hanamai_keyboard_1_r(space, 0) & 0x3f) | (input_port_read(space->machine(), "FAKE") ? 0x40 : 0);
+ return (hanamai_keyboard_1_r(space, 0) & 0x3f) | (input_port_read(machine(), "FAKE") ? 0x40 : 0);
}
-static READ8_HANDLER( mjelctrn_dsw_r )
+READ8_MEMBER(dynax_state::mjelctrn_dsw_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- int dsw = (state->m_keyb & 0xc0) >> 6;
+ int dsw = (m_keyb & 0xc0) >> 6;
static const char *const dswnames[] = { "DSW0", "DSW1", "DSW3", "DSW4" };
- return input_port_read(space->machine(), dswnames[dsw]);
+ return input_port_read(machine(), dswnames[dsw]);
}
-static WRITE8_HANDLER( mjelctrn_blitter_ack_w )
+WRITE8_MEMBER(dynax_state::mjelctrn_blitter_ack_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_blitter_irq = 0;
+ m_blitter_irq = 0;
}
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( 0x02, 0x02 ) AM_WRITE_LEGACY(adpcm_data_w) // MSM5205 data
+ 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
AM_RANGE( 0x0a, 0x0a ) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) //
- AM_RANGE( 0x11, 0x12 ) AM_WRITE_LEGACY(mjelctrn_blitter_ack_w) //?
+ AM_RANGE( 0x11, 0x12 ) AM_WRITE(mjelctrn_blitter_ack_w) //?
// AM_RANGE( 0x20, 0x20 ) AM_WRITENOP // CRT Controller
// AM_RANGE( 0x21, 0x21 ) AM_WRITENOP // CRT Controller
- AM_RANGE( 0x40, 0x40 ) AM_WRITE_LEGACY(dynax_coincounter_0_w) // Coin Counters
- AM_RANGE( 0x41, 0x41 ) AM_WRITE_LEGACY(dynax_coincounter_1_w) //
+ AM_RANGE( 0x40, 0x40 ) AM_WRITE(dynax_coincounter_0_w) // Coin Counters
+ AM_RANGE( 0x41, 0x41 ) AM_WRITE(dynax_coincounter_1_w) //
AM_RANGE( 0x60, 0x60 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0x62, 0x62 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
// AM_RANGE( 0x64, 0x64 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
// AM_RANGE( 0x66, 0x66 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0x6a, 0x6a ) AM_WRITE_LEGACY(hnoridur_rombank_w) // BANK ROM Select
- AM_RANGE( 0x80, 0x80 ) AM_WRITE_LEGACY(hanamai_keyboard_w) // keyboard row select
+ AM_RANGE( 0x6a, 0x6a ) AM_WRITE(hnoridur_rombank_w) // BANK ROM Select
+ AM_RANGE( 0x80, 0x80 ) AM_WRITE(hanamai_keyboard_w) // keyboard row select
AM_RANGE( 0x81, 0x81 ) AM_READ_PORT("COINS") // Coins
- AM_RANGE( 0x82, 0x82 ) AM_READ_LEGACY(mjelctrn_keyboard_1_r) // P2
- AM_RANGE( 0x83, 0x83 ) AM_READ_LEGACY(hanamai_keyboard_0_r) // P1
- AM_RANGE( 0x84, 0x84 ) AM_READ_LEGACY(mjelctrn_dsw_r) // DSW x 4
- AM_RANGE( 0x85, 0x85 ) AM_READ_LEGACY(ret_ff) // ?
+ AM_RANGE( 0x82, 0x82 ) AM_READ(mjelctrn_keyboard_1_r) // P2
+ AM_RANGE( 0x83, 0x83 ) AM_READ(hanamai_keyboard_0_r) // P1
+ AM_RANGE( 0x84, 0x84 ) AM_READ(mjelctrn_dsw_r) // DSW x 4
+ AM_RANGE( 0x85, 0x85 ) AM_READ(ret_ff) // ?
AM_RANGE( 0xa1, 0xa7 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
AM_RANGE( 0xc0, 0xc0 ) AM_WRITE_LEGACY(dynax_flipscreen_w) // Flip Screen
AM_RANGE( 0xc1, 0xc1 ) AM_WRITE_LEGACY(hanamai_layer_half_w) // half of the interleaved layer to write to
@@ -1127,8 +1100,8 @@ static ADDRESS_MAP_START( mjelctrn_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0xe3, 0xe3 ) AM_WRITE_LEGACY(dynax_blit_palette23_w) //
AM_RANGE( 0xe4, 0xe4 ) AM_WRITE_LEGACY(hanamai_priority_w) // layer priority and enable
AM_RANGE( 0xe5, 0xe5 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0xe6, 0xe6 ) AM_WRITE_LEGACY(yarunara_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0xe7, 0xe7 ) AM_WRITE_LEGACY(hnoridur_palbank_w)
+ AM_RANGE( 0xe6, 0xe6 ) AM_WRITE(yarunara_blit_romregion_w) // Blitter ROM bank
+ AM_RANGE( 0xe7, 0xe7 ) AM_WRITE(hnoridur_palbank_w)
ADDRESS_MAP_END
@@ -1136,11 +1109,10 @@ ADDRESS_MAP_END
Hanafuda Hana Tengoku
***************************************************************************/
-static WRITE8_HANDLER( htengoku_select_w )
+WRITE8_MEMBER(dynax_state::htengoku_select_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_input_sel = data;
- state->m_keyb = 0;
+ m_input_sel = data;
+ m_keyb = 0;
}
static WRITE8_DEVICE_HANDLER( htengoku_dsw_w )
@@ -1162,82 +1134,78 @@ static READ8_DEVICE_HANDLER( htengoku_dsw_r )
return 0xff;
}
-static WRITE8_HANDLER( htengoku_coin_w )
+WRITE8_MEMBER(dynax_state::htengoku_coin_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
case 0x0c:
// bit 0 = coin counter
// bit 1 = out counter
// bit 2 = hopper
- coin_counter_w(space->machine(), 0, data & 1);
- state->m_hopper = data & 0x04;
+ coin_counter_w(machine(), 0, data & 1);
+ m_hopper = data & 0x04;
#ifdef MAME_DEBUG
// popmessage("COINS %02x",data);
#endif
- state->m_coins = data;
+ m_coins = data;
case 0x0d: break; // ff resets input port sequence?
case 0xff: break; // CRT controller?
default:
- logerror("%04x: coins_w with select = %02x, data = %02x\n", cpu_get_pc(&space->device()), state->m_input_sel, data);
+ logerror("%04x: coins_w with select = %02x, data = %02x\n", cpu_get_pc(&space.device()), m_input_sel, data);
}
}
-static READ8_HANDLER( htengoku_input_r )
+READ8_MEMBER(dynax_state::htengoku_input_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
static const char *const keynames0[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4" };
static const char *const keynames1[] = { "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" };
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
- case 0x81: return input_port_read(space->machine(), keynames1[state->m_keyb++]);
- case 0x82: return input_port_read(space->machine(), keynames0[state->m_keyb++]);
+ case 0x81: return input_port_read(machine(), keynames1[m_keyb++]);
+ case 0x82: return input_port_read(machine(), keynames0[m_keyb++]);
case 0x0d: return 0xff; // unused
}
- logerror("%04x: input_r with select = %02x\n", cpu_get_pc(&space->device()), state->m_input_sel);
+ logerror("%04x: input_r with select = %02x\n", cpu_get_pc(&space.device()), m_input_sel);
return 0xff;
}
-static READ8_HANDLER( htengoku_coin_r )
+READ8_MEMBER(dynax_state::htengoku_coin_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
- case 0x00: return input_port_read(space->machine(), "COINS");
+ case 0x00: return input_port_read(machine(), "COINS");
case 0x01: return 0xff; //?
- case 0x02: return 0xbf | ((state->m_hopper && !(space->machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); // bit 7 = blitter busy, bit 6 = hopper
- case 0x03: return state->m_coins;
+ case 0x02: return 0xbf | ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); // bit 7 = blitter busy, bit 6 = hopper
+ case 0x03: return m_coins;
}
- logerror("%04x: coin_r with select = %02x\n", cpu_get_pc(&space->device()), state->m_input_sel);
+ logerror("%04x: coin_r with select = %02x\n", cpu_get_pc(&space.device()), m_input_sel);
return 0xff;
}
-static WRITE8_HANDLER( htengoku_rombank_w )
+WRITE8_MEMBER(dynax_state::htengoku_rombank_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- memory_set_bank(space->machine(), "bank1", data & 0x07);
- state->m_hnoridur_bank = data;
+ memory_set_bank(machine(), "bank1", data & 0x07);
+ m_hnoridur_bank = data;
}
-static WRITE8_HANDLER( htengoku_blit_romregion_w )
+WRITE8_MEMBER(dynax_state::htengoku_blit_romregion_w)
{
switch (data)
{
- case 0x80: dynax_blit_romregion_w(space, 0, 0); return;
- case 0x81: dynax_blit_romregion_w(space, 0, 1); return;
- case 0x00: dynax_blit_romregion_w(space, 0, 2); return;
+ case 0x80: dynax_blit_romregion_w(&space, 0, 0); return;
+ case 0x81: dynax_blit_romregion_w(&space, 0, 1); return;
+ case 0x00: dynax_blit_romregion_w(&space, 0, 2); return;
}
- logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space->device()), data);
+ logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space.device()), data);
}
-static READ8_HANDLER( unk_r )
+READ8_MEMBER(dynax_state::unk_r)
{
return 0x78;
}
@@ -1245,10 +1213,10 @@ static READ8_HANDLER( unk_r )
static ADDRESS_MAP_START( htengoku_io_map, AS_IO, 8, dynax_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x01, 0x07 ) AM_WRITE_LEGACY(dynax_blitter_rev2_w) // Blitter
- AM_RANGE( 0x20, 0x20 ) AM_WRITE_LEGACY(htengoku_select_w) // Controls
- AM_RANGE( 0x21, 0x21 ) AM_WRITE_LEGACY(htengoku_coin_w) //
- AM_RANGE( 0x22, 0x22 ) AM_READ_LEGACY(htengoku_coin_r) //
- AM_RANGE( 0x23, 0x23 ) AM_READ_LEGACY(htengoku_input_r) //
+ AM_RANGE( 0x20, 0x20 ) AM_WRITE(htengoku_select_w) // Controls
+ AM_RANGE( 0x21, 0x21 ) AM_WRITE(htengoku_coin_w) //
+ AM_RANGE( 0x22, 0x22 ) AM_READ(htengoku_coin_r) //
+ AM_RANGE( 0x23, 0x23 ) AM_READ(htengoku_input_r) //
AM_RANGE( 0x40, 0x40 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) // AY8910
AM_RANGE( 0x42, 0x42 ) AM_DEVREAD_LEGACY("aysnd", ay8910_r) //
AM_RANGE( 0x44, 0x44 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) //
@@ -1262,18 +1230,18 @@ static ADDRESS_MAP_START( htengoku_io_map, AS_IO, 8, dynax_state )
AM_RANGE( 0xb4, 0xb4 ) AM_WRITE_LEGACY(ddenlovr_bgcolor_w)
AM_RANGE( 0xb5, 0xb5 ) AM_WRITE_LEGACY(ddenlovr_priority_w)
AM_RANGE( 0xb6, 0xb6 ) AM_WRITE_LEGACY(ddenlovr_layer_enable_w)
- AM_RANGE( 0xb8, 0xb8 ) AM_READ_LEGACY(unk_r) // ? must be 78 on startup
- AM_RANGE( 0xc2, 0xc2 ) AM_WRITE_LEGACY(htengoku_rombank_w) // BANK ROM Select
+ AM_RANGE( 0xb8, 0xb8 ) AM_READ(unk_r) // ? must be 78 on startup
+ AM_RANGE( 0xc2, 0xc2 ) AM_WRITE(htengoku_rombank_w) // BANK ROM Select
AM_RANGE( 0xc0, 0xc0 ) AM_WRITE_LEGACY(dynax_extra_scrollx_w) // screen scroll X
AM_RANGE( 0xc1, 0xc1 ) AM_WRITE_LEGACY(dynax_extra_scrolly_w) // screen scroll Y
- AM_RANGE( 0xc3, 0xc3 ) AM_WRITE_LEGACY(dynax_vblank_ack_w) // VBlank IRQ Ack
+ AM_RANGE( 0xc3, 0xc3 ) AM_WRITE(dynax_vblank_ack_w) // VBlank IRQ Ack
AM_RANGE( 0xc4, 0xc4 ) AM_WRITE_LEGACY(dynax_blit_pen_w) // Destination Pen
AM_RANGE( 0xc5, 0xc5 ) AM_WRITE_LEGACY(dynax_blit_dest_w) // Destination Layer
- AM_RANGE( 0xc6, 0xc6 ) AM_WRITE_LEGACY(htengoku_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0xe0, 0xe0 ) AM_WRITE_LEGACY(yarunara_flipscreen_w)
- AM_RANGE( 0xe1, 0xe1 ) AM_WRITE_LEGACY(yarunara_layer_half_w) // half of the interleaved layer to write to
- AM_RANGE( 0xe2, 0xe2 ) AM_WRITE_LEGACY(yarunara_layer_half2_w) //
- AM_RANGE( 0xe5, 0xe5 ) AM_WRITE_LEGACY(dynax_blitter_ack_w) // Blitter IRQ Ack
+ AM_RANGE( 0xc6, 0xc6 ) AM_WRITE(htengoku_blit_romregion_w) // Blitter ROM bank
+ AM_RANGE( 0xe0, 0xe0 ) AM_WRITE(yarunara_flipscreen_w)
+ AM_RANGE( 0xe1, 0xe1 ) AM_WRITE(yarunara_layer_half_w) // half of the interleaved layer to write to
+ AM_RANGE( 0xe2, 0xe2 ) AM_WRITE(yarunara_layer_half2_w) //
+ AM_RANGE( 0xe5, 0xe5 ) AM_WRITE(dynax_blitter_ack_w) // Blitter IRQ Ack
ADDRESS_MAP_END
@@ -1281,13 +1249,12 @@ ADDRESS_MAP_END
Mahjong Tenkaigen
***************************************************************************/
-static WRITE8_HANDLER( tenkai_ipsel_w )
+WRITE8_MEMBER(dynax_state::tenkai_ipsel_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
switch (offset)
{
- case 0: state->m_input_sel = data;
- state->m_keyb = 0;
+ case 0: m_input_sel = data;
+ m_keyb = 0;
break;
case 1: break;
@@ -1295,15 +1262,14 @@ static WRITE8_HANDLER( tenkai_ipsel_w )
}
-static WRITE8_HANDLER( tenkai_ip_w )
+WRITE8_MEMBER(dynax_state::tenkai_ip_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
case 0x0c:
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
// bit 2?
// bit 3?
// popmessage("%02x", data);
@@ -1314,12 +1280,11 @@ static WRITE8_HANDLER( tenkai_ip_w )
break;
return;
}
- logerror("%04x: unmapped ip_sel=%02x written with %02x\n", cpu_get_pc(&space->device()), state->m_input_sel, data);
+ logerror("%04x: unmapped ip_sel=%02x written with %02x\n", cpu_get_pc(&space.device()), m_input_sel, data);
}
-static READ8_HANDLER( tenkai_ip_r )
+READ8_MEMBER(dynax_state::tenkai_ip_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
static const char *const keynames0[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4" };
//static const char *const keynames1[] = { "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" };
@@ -1327,38 +1292,38 @@ static READ8_HANDLER( tenkai_ip_r )
{
case 0:
{
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
case 0x00:
- return input_port_read(space->machine(), "COINS"); // coins
+ return input_port_read(machine(), "COINS"); // coins
default:
- logerror("%04x: unmapped ip_sel=%02x read from offs %x\n", cpu_get_pc(&space->device()), state->m_input_sel, offset);
+ logerror("%04x: unmapped ip_sel=%02x read from offs %x\n", cpu_get_pc(&space.device()), m_input_sel, offset);
return 0xff;
}
}
case 1:
{
- switch (state->m_input_sel)
+ switch (m_input_sel)
{
case 0x0d:
return 0xff;
// player 2
case 0x81:
- if (state->m_keyb >= 5)
- logerror("%04x: unmapped keyb=%02x read\n", cpu_get_pc(&space->device()), state->m_keyb);
- return 0xff;//input_port_read(space->machine(), keynames1[state->m_keyb++]);
+ if (m_keyb >= 5)
+ logerror("%04x: unmapped keyb=%02x read\n", cpu_get_pc(&space.device()), m_keyb);
+ return 0xff;//input_port_read(machine(), keynames1[m_keyb++]);
// player 1
case 0x82:
- if (state->m_keyb >= 5)
- logerror("%04x: unmapped keyb=%02x read\n", cpu_get_pc(&space->device()), state->m_keyb);
- return input_port_read(space->machine(), keynames0[state->m_keyb++]);
+ if (m_keyb >= 5)
+ logerror("%04x: unmapped keyb=%02x read\n", cpu_get_pc(&space.device()), m_keyb);
+ return input_port_read(machine(), keynames0[m_keyb++]);
default:
- logerror("%04x: unmapped ip_sel=%02x read from offs %x\n", cpu_get_pc(&space->device()), state->m_input_sel, offset);
+ logerror("%04x: unmapped ip_sel=%02x read from offs %x\n", cpu_get_pc(&space.device()), m_input_sel, offset);
return 0xff;
}
}
@@ -1387,25 +1352,23 @@ static READ8_DEVICE_HANDLER( tenkai_dsw_r )
return 0xff;
}
-static READ8_HANDLER( tenkai_palette_r )
+READ8_MEMBER(dynax_state::tenkai_palette_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- return state->m_palette_ram[512 * state->m_palbank + offset];
+ return m_palette_ram[512 * m_palbank + offset];
}
-static WRITE8_HANDLER( tenkai_palette_w )
+WRITE8_MEMBER(dynax_state::tenkai_palette_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- int addr = 512 * state->m_palbank + offset;
- state->m_palette_ram[addr] = data;
+ int addr = 512 * m_palbank + offset;
+ m_palette_ram[addr] = data;
{
- int br = state->m_palette_ram[addr & ~0x10]; // bbbrrrrr
- int bg = state->m_palette_ram[addr | 0x10]; // bb0ggggg
+ int br = m_palette_ram[addr & ~0x10]; // bbbrrrrr
+ int bg = m_palette_ram[addr | 0x10]; // bb0ggggg
int r = br & 0x1f;
int g = bg & 0x1f;
int b = ((bg & 0xc0) >> 3) | ((br & 0xe0) >> 5);
- palette_set_color_rgb(space->machine(), 256 * state->m_palbank + ((offset & 0xf) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), 256 * m_palbank + ((offset & 0xf) | ((offset & 0x1e0) >> 1)), pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -1416,97 +1379,89 @@ static void tenkai_update_rombank( running_machine &machine )
// logerror("rombank = %02x\n", state->m_rombank);
}
-static READ8_HANDLER( tenkai_p3_r )
+READ8_MEMBER(dynax_state::tenkai_p3_r)
{
return 0x00;
}
-static WRITE8_HANDLER( tenkai_p3_w )
+WRITE8_MEMBER(dynax_state::tenkai_p3_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_rombank = ((data & 0x04) << 1) | (state->m_rombank & 0x07);
- tenkai_update_rombank(space->machine());
+ m_rombank = ((data & 0x04) << 1) | (m_rombank & 0x07);
+ tenkai_update_rombank(machine());
}
-static WRITE8_HANDLER( tenkai_p4_w )
+WRITE8_MEMBER(dynax_state::tenkai_p4_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_rombank = (state->m_rombank & 0x08) | ((data & 0x0e) >> 1);
- tenkai_update_rombank(space->machine());
+ m_rombank = (m_rombank & 0x08) | ((data & 0x0e) >> 1);
+ tenkai_update_rombank(machine());
}
-static READ8_HANDLER( tenkai_p5_r )
+READ8_MEMBER(dynax_state::tenkai_p5_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- return state->m_tenkai_p5_val;
+ return m_tenkai_p5_val;
}
-static WRITE8_HANDLER( tenkai_p6_w )
+WRITE8_MEMBER(dynax_state::tenkai_p6_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_tenkai_p5_val &= 0x0f;
+ m_tenkai_p5_val &= 0x0f;
if (data & 0x0f)
- state->m_tenkai_p5_val |= (1 << 4);
+ m_tenkai_p5_val |= (1 << 4);
}
-static WRITE8_HANDLER( tenkai_p7_w )
+WRITE8_MEMBER(dynax_state::tenkai_p7_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_tenkai_p5_val &= 0xf0;
+ m_tenkai_p5_val &= 0xf0;
if (data & 0x03)
- state->m_tenkai_p5_val |= (1 << 3);
+ m_tenkai_p5_val |= (1 << 3);
}
-static WRITE8_HANDLER( tenkai_p8_w )
+WRITE8_MEMBER(dynax_state::tenkai_p8_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_rombank = ((data & 0x08) << 1) | (state->m_rombank & 0x0f);
- tenkai_update_rombank(space->machine());
+ m_rombank = ((data & 0x08) << 1) | (m_rombank & 0x0f);
+ tenkai_update_rombank(machine());
}
-static READ8_HANDLER( tenkai_p8_r )
+READ8_MEMBER(dynax_state::tenkai_p8_r)
{
return 0x00;
}
-static READ8_HANDLER( tenkai_8000_r )
+READ8_MEMBER(dynax_state::tenkai_8000_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- if (state->m_rombank < 0x10)
- return state->m_romptr[offset];
- else if ((state->m_rombank == 0x10) && (offset < 0x10))
+ if (m_rombank < 0x10)
+ return m_romptr[offset];
+ else if ((m_rombank == 0x10) && (offset < 0x10))
{
- msm6242_device *rtc = space->machine().device<msm6242_device>("rtc");
+ msm6242_device *rtc = machine().device<msm6242_device>("rtc");
- return rtc->read(*space, offset);
+ return rtc->read(*&space, offset);
}
- else if (state->m_rombank == 0x12)
+ else if (m_rombank == 0x12)
return tenkai_palette_r(space, offset);
- logerror("%04x: unmapped offset %04X read with rombank=%02X\n", cpu_get_pc(&space->device()), offset, state->m_rombank);
+ logerror("%04x: unmapped offset %04X read with rombank=%02X\n", cpu_get_pc(&space.device()), offset, m_rombank);
return 0x00;
}
-static WRITE8_HANDLER( tenkai_8000_w )
+WRITE8_MEMBER(dynax_state::tenkai_8000_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- if ((state->m_rombank == 0x10) && (offset < 0x10))
+ if ((m_rombank == 0x10) && (offset < 0x10))
{
- msm6242_device *rtc = space->machine().device<msm6242_device>("rtc");
+ msm6242_device *rtc = machine().device<msm6242_device>("rtc");
- rtc->write(*space, offset, data);
+ rtc->write(*&space, offset, data);
return;
}
- else if (state->m_rombank == 0x12)
+ else if (m_rombank == 0x12)
{
tenkai_palette_w(space, offset, data);
return;
}
- logerror("%04x: unmapped offset %04X=%02X written with rombank=%02X\n", cpu_get_pc(&space->device()), offset, data, state->m_rombank);
+ logerror("%04x: unmapped offset %04X=%02X written with rombank=%02X\n", cpu_get_pc(&space.device()), offset, data, m_rombank);
}
static void tenkai_show_6c( running_machine &machine )
@@ -1515,36 +1470,34 @@ static void tenkai_show_6c( running_machine &machine )
// popmessage("%02x %02x", state->m_tenkai_6c, state->m_tenkai_70);
}
-static WRITE8_HANDLER( tenkai_6c_w )
+WRITE8_MEMBER(dynax_state::tenkai_6c_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_tenkai_6c = data;
- tenkai_show_6c(space->machine());
+ m_tenkai_6c = data;
+ tenkai_show_6c(machine());
}
-static WRITE8_HANDLER( tenkai_70_w )
+WRITE8_MEMBER(dynax_state::tenkai_70_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_tenkai_70 = data;
- tenkai_show_6c(space->machine());
+ m_tenkai_70 = data;
+ tenkai_show_6c(machine());
}
-static WRITE8_HANDLER( tenkai_blit_romregion_w )
+WRITE8_MEMBER(dynax_state::tenkai_blit_romregion_w)
{
switch (data)
{
- case 0x00: dynax_blit_romregion_w(space, 0, 0); return;
- case 0x83: dynax_blit_romregion_w(space, 0, 1); return;
- case 0x80: dynax_blit_romregion_w(space, 0, 2); return;
+ case 0x00: dynax_blit_romregion_w(&space, 0, 0); return;
+ case 0x83: dynax_blit_romregion_w(&space, 0, 1); return;
+ case 0x80: dynax_blit_romregion_w(&space, 0, 2); return;
}
- logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space->device()), data);
+ logerror("%04x: unmapped romregion=%02X\n", cpu_get_pc(&space.device()), data);
}
static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_READWRITE_LEGACY(tenkai_8000_r, tenkai_8000_w)
+ AM_RANGE( 0x8000, 0xffff ) AM_READWRITE(tenkai_8000_r, tenkai_8000_w)
AM_RANGE( 0x10000, 0x10000 ) AM_DEVREAD_LEGACY("aysnd", ay8910_r) // AY8910
AM_RANGE( 0x10008, 0x10008 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) //
AM_RANGE( 0x10010, 0x10010 ) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) //
@@ -1555,68 +1508,65 @@ static ADDRESS_MAP_START( tenkai_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x1004c, 0x1004c ) AM_WRITE_LEGACY(tenkai_blit_palette01_w) //
AM_RANGE( 0x10050, 0x10050 ) AM_WRITE_LEGACY(tenkai_priority_w) // layer priority and enable
AM_RANGE( 0x10054, 0x10054 ) AM_WRITE_LEGACY(dynax_blit_backpen_w) // Background Color
- AM_RANGE( 0x10058, 0x10058 ) AM_WRITE_LEGACY(tenkai_blit_romregion_w) // Blitter ROM bank
- AM_RANGE( 0x10060, 0x10060 ) AM_WRITE_LEGACY(yarunara_flipscreen_inv_w) // Flip Screen
- AM_RANGE( 0x10064, 0x10064 ) AM_WRITE_LEGACY(yarunara_layer_half_w) // half of the interleaved layer to write to
- AM_RANGE( 0x10068, 0x10068 ) AM_WRITE_LEGACY(yarunara_layer_half2_w) //
- AM_RANGE( 0x1006c, 0x1006c ) AM_WRITE_LEGACY(tenkai_6c_w) // ?
- AM_RANGE( 0x10070, 0x10070 ) AM_WRITE_LEGACY(tenkai_70_w) // ?
+ AM_RANGE( 0x10058, 0x10058 ) AM_WRITE(tenkai_blit_romregion_w) // Blitter ROM bank
+ AM_RANGE( 0x10060, 0x10060 ) AM_WRITE(yarunara_flipscreen_inv_w) // Flip Screen
+ AM_RANGE( 0x10064, 0x10064 ) AM_WRITE(yarunara_layer_half_w) // half of the interleaved layer to write to
+ AM_RANGE( 0x10068, 0x10068 ) AM_WRITE(yarunara_layer_half2_w) //
+ AM_RANGE( 0x1006c, 0x1006c ) AM_WRITE(tenkai_6c_w) // ?
+ AM_RANGE( 0x10070, 0x10070 ) AM_WRITE(tenkai_70_w) // ?
AM_RANGE( 0x1007c, 0x1007c ) AM_WRITENOP // IRQ Ack? (0,2)
- AM_RANGE( 0x100c0, 0x100c0 ) AM_WRITE_LEGACY(tenkai_ipsel_w)
- AM_RANGE( 0x100c1, 0x100c1 ) AM_WRITE_LEGACY(tenkai_ip_w)
- AM_RANGE( 0x100c2, 0x100c3 ) AM_READ_LEGACY(tenkai_ip_r)
+ AM_RANGE( 0x100c0, 0x100c0 ) AM_WRITE(tenkai_ipsel_w)
+ AM_RANGE( 0x100c1, 0x100c1 ) AM_WRITE(tenkai_ip_w)
+ AM_RANGE( 0x100c2, 0x100c3 ) AM_READ(tenkai_ip_r)
AM_RANGE( 0x100e1, 0x100e7 ) AM_WRITE_LEGACY(tenkai_blitter_rev2_w) // Blitter (inverted scroll values)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tenkai_io_map, AS_IO, 8, dynax_state )
- AM_RANGE( T90_P3, T90_P3 ) AM_READWRITE_LEGACY(tenkai_p3_r, tenkai_p3_w)
- AM_RANGE( T90_P4, T90_P4 ) AM_WRITE_LEGACY(tenkai_p4_w)
- AM_RANGE( T90_P5, T90_P5 ) AM_READ_LEGACY(tenkai_p5_r)
- AM_RANGE( T90_P6, T90_P6 ) AM_WRITE_LEGACY(tenkai_p6_w)
- AM_RANGE( T90_P7, T90_P7 ) AM_WRITE_LEGACY(tenkai_p7_w)
- AM_RANGE( T90_P8, T90_P8 ) AM_READWRITE_LEGACY(tenkai_p8_r, tenkai_p8_w)
+ AM_RANGE( T90_P3, T90_P3 ) AM_READWRITE(tenkai_p3_r, tenkai_p3_w)
+ AM_RANGE( T90_P4, T90_P4 ) AM_WRITE(tenkai_p4_w)
+ AM_RANGE( T90_P5, T90_P5 ) AM_READ(tenkai_p5_r)
+ AM_RANGE( T90_P6, T90_P6 ) AM_WRITE(tenkai_p6_w)
+ AM_RANGE( T90_P7, T90_P7 ) AM_WRITE(tenkai_p7_w)
+ AM_RANGE( T90_P8, T90_P8 ) AM_READWRITE(tenkai_p8_r, tenkai_p8_w)
ADDRESS_MAP_END
/***************************************************************************
Mahjong Gekisha
***************************************************************************/
-static READ8_HANDLER( gekisha_keyboard_0_r )
+READ8_MEMBER(dynax_state::gekisha_keyboard_0_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
int res = 0x3f;
- if (!BIT(state->m_keyb, 0)) res &= input_port_read(space->machine(), "KEY0");
- if (!BIT(state->m_keyb, 1)) res &= input_port_read(space->machine(), "KEY1");
- if (!BIT(state->m_keyb, 2)) res &= input_port_read(space->machine(), "KEY2");
- if (!BIT(state->m_keyb, 3)) res &= input_port_read(space->machine(), "KEY3");
- if (!BIT(state->m_keyb, 4)) res &= input_port_read(space->machine(), "KEY4");
+ if (!BIT(m_keyb, 0)) res &= input_port_read(machine(), "KEY0");
+ if (!BIT(m_keyb, 1)) res &= input_port_read(machine(), "KEY1");
+ if (!BIT(m_keyb, 2)) res &= input_port_read(machine(), "KEY2");
+ if (!BIT(m_keyb, 3)) res &= input_port_read(machine(), "KEY3");
+ if (!BIT(m_keyb, 4)) res &= input_port_read(machine(), "KEY4");
return res;
}
-static READ8_HANDLER( gekisha_keyboard_1_r )
+READ8_MEMBER(dynax_state::gekisha_keyboard_1_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
int res = 0x3f;
- if (!BIT(state->m_keyb, 0)) res &= input_port_read(space->machine(), "KEY5");
- if (!BIT(state->m_keyb, 1)) res &= input_port_read(space->machine(), "KEY6");
- if (!BIT(state->m_keyb, 2)) res &= input_port_read(space->machine(), "KEY7");
- if (!BIT(state->m_keyb, 3)) res &= input_port_read(space->machine(), "KEY8");
- if (!BIT(state->m_keyb, 4)) res &= input_port_read(space->machine(), "KEY9");
+ if (!BIT(m_keyb, 0)) res &= input_port_read(machine(), "KEY5");
+ if (!BIT(m_keyb, 1)) res &= input_port_read(machine(), "KEY6");
+ if (!BIT(m_keyb, 2)) res &= input_port_read(machine(), "KEY7");
+ if (!BIT(m_keyb, 3)) res &= input_port_read(machine(), "KEY8");
+ if (!BIT(m_keyb, 4)) res &= input_port_read(machine(), "KEY9");
// bit 6
- res |= input_port_read(space->machine(), "BET");
+ res |= input_port_read(machine(), "BET");
// bit 7 = blitter busy
return res;
}
-static WRITE8_HANDLER( gekisha_hopper_w )
+WRITE8_MEMBER(dynax_state::gekisha_hopper_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_gekisha_val[offset] = data;
+ m_gekisha_val[offset] = data;
// popmessage("%02x %02x", gekisha_val[0], gekisha_val[1]);
}
@@ -1627,63 +1577,60 @@ static void gekisha_set_rombank( running_machine &machine, UINT8 data )
state->m_romptr = machine.region("maincpu")->base() + 0x8000 + state->m_rombank * 0x8000;
}
-static WRITE8_HANDLER( gekisha_p4_w )
+WRITE8_MEMBER(dynax_state::gekisha_p4_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- state->m_gekisha_rom_enable = !BIT(data, 3);
- gekisha_set_rombank(space->machine(), BIT(data, 2));
+ m_gekisha_rom_enable = !BIT(data, 3);
+ gekisha_set_rombank(machine(), BIT(data, 2));
}
-static READ8_HANDLER( gekisha_8000_r )
+READ8_MEMBER(dynax_state::gekisha_8000_r)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- if (state->m_gekisha_rom_enable)
- return state->m_romptr[offset];
+ if (m_gekisha_rom_enable)
+ return m_romptr[offset];
switch (offset + 0x8000)
{
- case 0x8061: return input_port_read(space->machine(), "COINS");
+ case 0x8061: return input_port_read(machine(), "COINS");
case 0x8062: return gekisha_keyboard_1_r(space, 0);
case 0x8063: return gekisha_keyboard_0_r(space, 0);
- case 0x8064: return input_port_read(space->machine(), "DSW1");
- case 0x8065: return input_port_read(space->machine(), "DSW3");
- case 0x8066: return input_port_read(space->machine(), "DSW4");
- case 0x8067: return input_port_read(space->machine(), "DSW2");
+ case 0x8064: return input_port_read(machine(), "DSW1");
+ case 0x8065: return input_port_read(machine(), "DSW3");
+ case 0x8066: return input_port_read(machine(), "DSW4");
+ case 0x8067: return input_port_read(machine(), "DSW2");
}
- logerror("%04x: unmapped offset %04X read with rombank=%02X\n",cpu_get_pc(&space->device()), offset, state->m_rombank);
+ logerror("%04x: unmapped offset %04X read with rombank=%02X\n",cpu_get_pc(&space.device()), offset, m_rombank);
return 0x00;
}
-static WRITE8_HANDLER( gekisha_8000_w )
+WRITE8_MEMBER(dynax_state::gekisha_8000_w)
{
- dynax_state *state = space->machine().driver_data<dynax_state>();
- if (!state->m_gekisha_rom_enable)
+ if (!m_gekisha_rom_enable)
{
switch (offset + 0x8000)
{
// same offsets as mjfriday
- case 0x8001: dynax_blit_palette01_w(space, offset - 0x01, data); return;
+ case 0x8001: dynax_blit_palette01_w(&space, offset - 0x01, data); return;
// case 0x8002: // ? 1
- case 0x8003: dynax_blit_backpen_w(space, offset - 0x03, data); return;
+ case 0x8003: dynax_blit_backpen_w(&space, offset - 0x03, data); return;
case 0x8010:
- case 0x8011: mjdialq2_blit_dest_w(space, offset - 0x10, data); return;
+ case 0x8011: mjdialq2_blit_dest_w(&space, offset - 0x10, data); return;
- case 0x8012: dynax_blit_palbank_w(space, offset - 0x12, data); return;
+ case 0x8012: dynax_blit_palbank_w(&space, offset - 0x12, data); return;
- case 0x8013: dynax_flipscreen_w(space, offset - 0x13, data); return;
+ case 0x8013: dynax_flipscreen_w(&space, offset - 0x13, data); return;
case 0x8014: dynax_coincounter_0_w(space, offset - 0x14, data); return;
case 0x8015: dynax_coincounter_1_w(space, offset - 0x15, data); return;
case 0x8016:
- case 0x8017: mjdialq2_layer_enable_w(space, offset - 0x16, data); return;
+ case 0x8017: mjdialq2_layer_enable_w(&space, offset - 0x16, data); return;
case 0x8020:
case 0x8021: gekisha_hopper_w(space, offset - 0x20, data); return;
@@ -1694,33 +1641,33 @@ static WRITE8_HANDLER( gekisha_8000_w )
case 0x8044:
case 0x8045:
case 0x8046:
- case 0x8047: dynax_blitter_rev2_w(space, offset - 0x41, data); return;
+ case 0x8047: dynax_blitter_rev2_w(&space, offset - 0x41, data); return;
case 0x8050: // CRT controller
case 0x8051: return;
- case 0x8070: ym2413_register_port_w(state->m_ymsnd, 0, data); return;
- case 0x8071: ym2413_data_port_w(state->m_ymsnd, 0, data); return;
+ case 0x8070: ym2413_register_port_w(m_ymsnd, 0, data); return;
+ case 0x8071: ym2413_data_port_w(m_ymsnd, 0, data); return;
- case 0x8060: state->m_keyb = data; return;
+ case 0x8060: m_keyb = data; return;
// case 0x8080: // ? 0,1,6 (bit 0 = screen disable?)
// popmessage("80 = %02x", data);
// break;
}
}
- logerror("%04x: unmapped offset %04X=%02X written with rombank=%02X\n", cpu_get_pc(&space->device()), offset, data, state->m_rombank);
+ logerror("%04x: unmapped offset %04X=%02X written with rombank=%02X\n", cpu_get_pc(&space.device()), offset, data, m_rombank);
}
static ADDRESS_MAP_START( gekisha_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x6fff ) AM_ROM
AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_READWRITE_LEGACY(gekisha_8000_r, gekisha_8000_w)
+ AM_RANGE( 0x8000, 0xffff ) AM_READWRITE(gekisha_8000_r, gekisha_8000_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gekisha_io_map, AS_IO, 8, dynax_state )
- AM_RANGE( T90_P4, T90_P4 ) AM_WRITE_LEGACY(gekisha_p4_w)
+ AM_RANGE( T90_P4, T90_P4 ) AM_WRITE(gekisha_p4_w)
ADDRESS_MAP_END
@@ -6550,7 +6497,8 @@ ROM_END
static DRIVER_INIT( mjreach )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x10060, 0x10060, FUNC(yarunara_flipscreen_w));
+ dynax_state *state = machine.driver_data<dynax_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x10060, 0x10060, write8_delegate(FUNC(dynax_state::yarunara_flipscreen_w),state));
}
/***************************************************************************
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index 3e1f7fc925b..20311eb3f17 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -100,7 +100,7 @@ static const eeprom_interface eeprom_interface_93C66 =
-static READ32_HANDLER( eolith_custom_r )
+READ32_MEMBER(eolith_state::eolith_custom_r)
{
/*
bit 3 = eeprom bit
@@ -110,37 +110,36 @@ static READ32_HANDLER( eolith_custom_r )
bit 8 = ???
bit 9 = ???
*/
- eolith_speedup_read(space);
+ eolith_speedup_read(&space);
- return (input_port_read(space->machine(), "IN0") & ~0x300) | (space->machine().rand() & 0x300);
+ return (input_port_read(machine(), "IN0") & ~0x300) | (machine().rand() & 0x300);
}
-static WRITE32_HANDLER( systemcontrol_w )
+WRITE32_MEMBER(eolith_state::systemcontrol_w)
{
- eolith_state *state = space->machine().driver_data<eolith_state>();
- state->m_buffer = (data & 0x80) >> 7;
- coin_counter_w(space->machine(), 0, data & state->m_coin_counter_bit);
- set_led_status(space->machine(), 0, data & 1);
+ m_buffer = (data & 0x80) >> 7;
+ coin_counter_w(machine(), 0, data & m_coin_counter_bit);
+ set_led_status(machine(), 0, data & 1);
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
// bit 0x100 and 0x040 ?
}
-static READ32_HANDLER( hidctch3_pen1_r )
+READ32_MEMBER(eolith_state::hidctch3_pen1_r)
{
//320 x 240
- int xpos = input_port_read(space->machine(), "PEN_X_P1");
- int ypos = input_port_read(space->machine(), "PEN_Y_P1");
+ int xpos = input_port_read(machine(), "PEN_X_P1");
+ int ypos = input_port_read(machine(), "PEN_Y_P1");
return xpos + (ypos*168*2);
}
-static READ32_HANDLER( hidctch3_pen2_r )
+READ32_MEMBER(eolith_state::hidctch3_pen2_r)
{
//320 x 240
- int xpos = input_port_read(space->machine(), "PEN_X_P2");
- int ypos = input_port_read(space->machine(), "PEN_Y_P2");
+ int xpos = input_port_read(machine(), "PEN_X_P2");
+ int ypos = input_port_read(machine(), "PEN_Y_P2");
return xpos + (ypos*168*2);
}
@@ -149,8 +148,8 @@ static ADDRESS_MAP_START( eolith_map, AS_PROGRAM, 32, eolith_state )
AM_RANGE(0x00000000, 0x001fffff) AM_RAM // fort2b wants ram here
AM_RANGE(0x40000000, 0x401fffff) AM_RAM
AM_RANGE(0x90000000, 0x9003ffff) AM_READWRITE_LEGACY(eolith_vram_r, eolith_vram_w)
- AM_RANGE(0xfc000000, 0xfc000003) AM_READ_LEGACY(eolith_custom_r)
- AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE_LEGACY(systemcontrol_w)
+ AM_RANGE(0xfc000000, 0xfc000003) AM_READ(eolith_custom_r)
+ AM_RANGE(0xfc400000, 0xfc400003) AM_WRITE(systemcontrol_w)
AM_RANGE(0xfc800000, 0xfc800003) AM_WRITENOP // sound latch
AM_RANGE(0xfca00000, 0xfca00003) AM_READ_PORT("DSW1")
AM_RANGE(0xfcc00000, 0xfcc0005b) AM_WRITENOP // crt registers ?
@@ -1331,11 +1330,12 @@ static DRIVER_INIT( hidctch3 )
// It is not clear why the first reads are needed too
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xfce00000, 0xfce00003, FUNC(hidctch3_pen1_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xfce80000, 0xfce80003, FUNC(hidctch3_pen1_r));
+ eolith_state *state = machine.driver_data<eolith_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfce00000, 0xfce00003, read32_delegate(FUNC(eolith_state::hidctch3_pen1_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfce80000, 0xfce80003, read32_delegate(FUNC(eolith_state::hidctch3_pen1_r),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xfcf00000, 0xfcf00003, FUNC(hidctch3_pen2_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xfcf80000, 0xfcf80003, FUNC(hidctch3_pen2_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfcf00000, 0xfcf00003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xfcf80000, 0xfcf80003, read32_delegate(FUNC(eolith_state::hidctch3_pen2_r),state));
init_eolith_speedup(machine);
}
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index ba8aa6c9bee..8f530436959 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -34,18 +34,17 @@
#include "sound/ay8910.h"
#include "includes/epos.h"
-static WRITE8_HANDLER( dealer_decrypt_rom )
+WRITE8_MEMBER(epos_state::dealer_decrypt_rom)
{
- epos_state *state = space->machine().driver_data<epos_state>();
if (offset & 0x04)
- state->m_counter = (state->m_counter + 1) & 0x03;
+ m_counter = (m_counter + 1) & 0x03;
else
- state->m_counter = (state->m_counter - 1) & 0x03;
+ m_counter = (m_counter - 1) & 0x03;
-// logerror("PC %08x: ctr=%04x\n",cpu_get_pc(&space->device()), state->m_counter);
+// logerror("PC %08x: ctr=%04x\n",cpu_get_pc(&space.device()), m_counter);
- memory_set_bank(space->machine(), "bank1", state->m_counter);
+ memory_set_bank(machine(), "bank1", m_counter);
// is the 2nd bank changed by the counter or it always uses the 1st key?
}
@@ -89,7 +88,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dealer_io_map, AS_IO, 8, epos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w)
- AM_RANGE(0x20, 0x24) AM_WRITE_LEGACY(dealer_decrypt_rom)
+ AM_RANGE(0x20, 0x24) AM_WRITE(dealer_decrypt_rom)
AM_RANGE(0x38, 0x38) AM_READ_PORT("DSW")
// AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(watchdog_reset_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index fec10e6d46a..1a2d59d9499 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -424,24 +424,23 @@ static SOUND_START(equites)
state->m_adjuster_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60));
}
-static WRITE8_HANDLER(equites_c0f8_w)
+WRITE8_MEMBER(equites_state::equites_c0f8_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
switch (offset)
{
case 0: // c0f8: NMI ack (written by NMI handler)
- device_set_input_line(state->m_audio_cpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, CLEAR_LINE);
break;
case 1: // c0f9: RST75 trigger (written by NMI handler)
// Note: solder pad CP3 on the pcb would allow to disable this
- generic_pulse_irq_line(state->m_audio_cpu, I8085_RST75_LINE, 1);
+ generic_pulse_irq_line(m_audio_cpu, I8085_RST75_LINE, 1);
break;
case 2: // c0fa: INTR trigger (written by NMI handler)
// verified on PCB:
- device_set_input_line(state->m_audio_cpu, I8085_INTR_LINE, HOLD_LINE);
+ device_set_input_line(m_audio_cpu, I8085_INTR_LINE, HOLD_LINE);
break;
case 3: // c0fb: n.c.
@@ -449,7 +448,7 @@ static WRITE8_HANDLER(equites_c0f8_w)
break;
case 4: // c0fc: increment PROM address (written by NMI handler)
- state->m_sound_prom_address = (state->m_sound_prom_address + 1) & 0x1f;
+ m_sound_prom_address = (m_sound_prom_address + 1) & 0x1f;
// at this point, the 5-bit value
// goes to an op-amp and to the base of a transistor. The transistor is part
// of a resonator that is used to generate the M5232 clock. The PROM doesn't
@@ -532,10 +531,9 @@ popmessage("HH %d(%d) CYM %d(%d)",state->m_hihat,BIT(state->m_ay_port_b,6),state
#endif
}
-static WRITE8_HANDLER(equites_cymbal_ctrl_w)
+WRITE8_MEMBER(equites_state::equites_cymbal_ctrl_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- state->m_eq_cymbal_ctrl++;
+ m_eq_cymbal_ctrl++;
}
@@ -556,18 +554,16 @@ static void equites_update_dac( running_machine &machine )
dac_signed_data_w(state->m_dac_2, state->m_dac_latch);
}
-static WRITE8_HANDLER( equites_dac_latch_w )
+WRITE8_MEMBER(equites_state::equites_dac_latch_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- state->m_dac_latch = data << 2;
- equites_update_dac(space->machine());
+ m_dac_latch = data << 2;
+ equites_update_dac(machine());
}
-static WRITE8_HANDLER( equites_8155_portb_w )
+WRITE8_MEMBER(equites_state::equites_8155_portb_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- state->m_eq8155_port_b = data;
- equites_update_dac(space->machine());
+ m_eq8155_port_b = data;
+ equites_update_dac(machine());
}
static void equites_msm5232_gate( device_t *device, int state )
@@ -603,45 +599,44 @@ static TIMER_DEVICE_CALLBACK( splndrbt_scanline )
cputag_set_input_line(timer.machine(), "maincpu", 2, HOLD_LINE);
}
-static WRITE8_HANDLER(equites_8155_w)
+WRITE8_MEMBER(equites_state::equites_8155_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
// FIXME proper 8155 emulation must be implemented
switch( offset )
{
case 0: //logerror( "8155 Command register write %x, timer command = %x, interrupt enable = %x, ports = %x\n", data, (data >> 6) & 3, (data >> 4) & 3, data & 0xf );
if (((data >> 6) & 3) == 3)
- state->m_nmi_timer->adjust(attotime::from_hz(XTAL_6_144MHz/2 / state->m_timer_count), 0, attotime::from_hz(XTAL_6_144MHz/2 / state->m_timer_count));
+ m_nmi_timer->adjust(attotime::from_hz(XTAL_6_144MHz/2 / m_timer_count), 0, attotime::from_hz(XTAL_6_144MHz/2 / m_timer_count));
break;
case 1: //logerror( "8155 I/O Port A write %x\n", data );
- state->m_eq8155_port_a = data;
- state->m_msm->set_output_gain(0, (data >> 4) / 15.0); /* group1 from msm5232 */
- state->m_msm->set_output_gain(1, (data >> 4) / 15.0); /* group1 from msm5232 */
- state->m_msm->set_output_gain(2, (data >> 4) / 15.0); /* group1 from msm5232 */
- state->m_msm->set_output_gain(3, (data >> 4) / 15.0); /* group1 from msm5232 */
- state->m_msm->set_output_gain(4, (data & 0x0f) / 15.0); /* group2 from msm5232 */
- state->m_msm->set_output_gain(5, (data & 0x0f) / 15.0); /* group2 from msm5232 */
- state->m_msm->set_output_gain(6, (data & 0x0f) / 15.0); /* group2 from msm5232 */
- state->m_msm->set_output_gain(7, (data & 0x0f) / 15.0); /* group2 from msm5232 */
+ m_eq8155_port_a = data;
+ m_msm->set_output_gain(0, (data >> 4) / 15.0); /* group1 from msm5232 */
+ m_msm->set_output_gain(1, (data >> 4) / 15.0); /* group1 from msm5232 */
+ m_msm->set_output_gain(2, (data >> 4) / 15.0); /* group1 from msm5232 */
+ m_msm->set_output_gain(3, (data >> 4) / 15.0); /* group1 from msm5232 */
+ m_msm->set_output_gain(4, (data & 0x0f) / 15.0); /* group2 from msm5232 */
+ m_msm->set_output_gain(5, (data & 0x0f) / 15.0); /* group2 from msm5232 */
+ m_msm->set_output_gain(6, (data & 0x0f) / 15.0); /* group2 from msm5232 */
+ m_msm->set_output_gain(7, (data & 0x0f) / 15.0); /* group2 from msm5232 */
break;
case 2: //logerror( "8155 I/O Port B write %x\n", data );
equites_8155_portb_w(space, 0, data);
break;
case 3: //logerror( "8155 I/O Port C (or control) write %x\n", data );
- state->m_eq8155_port_c = data;
- state->m_msm->set_output_gain(8, (data & 0x0f) / 15.0); /* SOLO 8' from msm5232 */
+ m_eq8155_port_c = data;
+ m_msm->set_output_gain(8, (data & 0x0f) / 15.0); /* SOLO 8' from msm5232 */
if (data & 0x20)
- state->m_msm->set_output_gain(9, (data & 0x0f) / 15.0); /* SOLO 16' from msm5232 */
+ m_msm->set_output_gain(9, (data & 0x0f) / 15.0); /* SOLO 16' from msm5232 */
else
- state->m_msm->set_output_gain(9, 0); /* SOLO 16' from msm5232 */
+ m_msm->set_output_gain(9, 0); /* SOLO 16' from msm5232 */
break;
case 4: //logerror( "8155 Timer low 8 bits write %x\n", data );
- state->m_timer_count = (state->m_timer_count & 0xff00) | data;
+ m_timer_count = (m_timer_count & 0xff00) | data;
break;
case 5: //logerror( "8155 Timer high 6 bits write %x, timer mode %x\n", data & 0x3f, (data >> 6) & 3);
- state->m_timer_count = (state->m_timer_count & 0x00ff) | ((data & 0x3f) << 8);
+ m_timer_count = (m_timer_count & 0x00ff) | ((data & 0x3f) << 8);
break;
}
}
@@ -650,9 +645,9 @@ static WRITE8_HANDLER(equites_8155_w)
// Main CPU Handlers
#if HVOLTAGE_DEBUG
-static READ16_HANDLER(hvoltage_debug_r)
+READ16_MEMBER(equites_state::hvoltage_debug_r)
{
- return(input_port_read(space->machine(), "FAKE"));
+ return(input_port_read(machine(), "FAKE"));
}
#endif
@@ -663,54 +658,47 @@ static CUSTOM_INPUT( gekisou_unknown_status )
return state->m_unknown_bit;
}
-static WRITE16_HANDLER( gekisou_unknown_0_w )
+WRITE16_MEMBER(equites_state::gekisou_unknown_0_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- state->m_unknown_bit = 0;
+ m_unknown_bit = 0;
}
-static WRITE16_HANDLER( gekisou_unknown_1_w )
+WRITE16_MEMBER(equites_state::gekisou_unknown_1_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- state->m_unknown_bit = 1;
+ m_unknown_bit = 1;
}
/******************************************************************************/
// Main CPU Memory Map
-static READ16_HANDLER(equites_spriteram_kludge_r)
+READ16_MEMBER(equites_state::equites_spriteram_kludge_r)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- if (state->m_spriteram[0] == 0x5555)
+ if (m_spriteram[0] == 0x5555)
return 0;
else
- return state->m_spriteram[0];
+ return m_spriteram[0];
}
-static READ16_HANDLER(mcu_r)
+READ16_MEMBER(equites_state::mcu_r)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- return 0xff00 | state->m_mcu_ram[offset];
+ return 0xff00 | m_mcu_ram[offset];
}
-static WRITE16_HANDLER(mcu_w)
+WRITE16_MEMBER(equites_state::mcu_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
if (ACCESSING_BITS_0_7)
- state->m_mcu_ram[offset] = data & 0xff;
+ m_mcu_ram[offset] = data & 0xff;
}
-static WRITE16_HANDLER( mcu_halt_assert_w )
+WRITE16_MEMBER(equites_state::mcu_halt_assert_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- device_set_input_line(state->m_mcu, INPUT_LINE_HALT, ASSERT_LINE);
+ device_set_input_line(m_mcu, INPUT_LINE_HALT, ASSERT_LINE);
}
-static WRITE16_HANDLER( mcu_halt_clear_w )
+WRITE16_MEMBER(equites_state::mcu_halt_clear_w)
{
- equites_state *state = space->machine().driver_data<equites_state>();
- device_set_input_line(state->m_mcu, INPUT_LINE_HALT, CLEAR_LINE);
+ device_set_input_line(m_mcu, INPUT_LINE_HALT, CLEAR_LINE);
}
@@ -721,15 +709,15 @@ static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16, equites_state )
AM_RANGE(0x080000, 0x080fff) AM_READWRITE_LEGACY(equites_fg_videoram_r, equites_fg_videoram_w) // 8-bit
AM_RANGE(0x0c0000, 0x0c01ff) AM_RAM_WRITE_LEGACY(equites_bg_videoram_w) AM_BASE(m_bg_videoram)
AM_RANGE(0x0c0200, 0x0c0fff) AM_RAM
- AM_RANGE(0x100000, 0x100001) AM_READ_LEGACY(equites_spriteram_kludge_r)
+ AM_RANGE(0x100000, 0x100001) AM_READ(equites_spriteram_kludge_r)
AM_RANGE(0x100000, 0x1001ff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0x140000, 0x1407ff) AM_READWRITE_LEGACY(mcu_r, mcu_w) // 8-bit
+ AM_RANGE(0x140000, 0x1407ff) AM_READWRITE(mcu_r, mcu_w) // 8-bit
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN1") AM_WRITE_LEGACY(soundlatch_word_w) // LSB: sound latch
AM_RANGE(0x184000, 0x184001) AM_WRITE_LEGACY(equites_flip0_w)
- AM_RANGE(0x188000, 0x188001) AM_WRITE_LEGACY(mcu_halt_clear_w) // 8404 control port1
+ AM_RANGE(0x188000, 0x188001) AM_WRITE(mcu_halt_clear_w) // 8404 control port1
AM_RANGE(0x18c000, 0x18c001) AM_WRITENOP // 8404 control port2
AM_RANGE(0x1a4000, 0x1a4001) AM_WRITE_LEGACY(equites_flip1_w)
- AM_RANGE(0x1a8000, 0x1a8001) AM_WRITE_LEGACY(mcu_halt_assert_w) // 8404 control port3
+ AM_RANGE(0x1a8000, 0x1a8001) AM_WRITE(mcu_halt_assert_w) // 8404 control port3
AM_RANGE(0x1ac000, 0x1ac001) AM_WRITENOP // 8404 control port4
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(equites_scrollreg_w) // scroll register[XXYY]
AM_RANGE(0x380000, 0x380001) AM_WRITE_LEGACY(equites_bgcolor_w) // bg color register[CC--]
@@ -743,17 +731,17 @@ static ADDRESS_MAP_START( splndrbt_map, AS_PROGRAM, 16, equites_state )
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_BASE(m_workram) // work RAM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") // joyport [2211]
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN1") AM_WRITE_LEGACY(splndrbt_flip0_w) // [MMLL] MM: bg color register, LL: normal screen
- AM_RANGE(0x0c4000, 0x0c4001) AM_WRITE_LEGACY(mcu_halt_clear_w) // 8404 control port1
+ AM_RANGE(0x0c4000, 0x0c4001) AM_WRITE(mcu_halt_clear_w) // 8404 control port1
AM_RANGE(0x0c8000, 0x0c8001) AM_WRITENOP // 8404 control port2
AM_RANGE(0x0cc000, 0x0cc001) AM_WRITE_LEGACY(splndrbt_selchar0_w) // select active char map
AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE_LEGACY(splndrbt_flip1_w) // [MMLL] MM: not used, LL: flip screen
- AM_RANGE(0x0e4000, 0x0e4001) AM_WRITE_LEGACY(mcu_halt_assert_w) // 8404 control port3
+ AM_RANGE(0x0e4000, 0x0e4001) AM_WRITE(mcu_halt_assert_w) // 8404 control port3
AM_RANGE(0x0e8000, 0x0e8001) AM_WRITENOP // 8404 control port4
AM_RANGE(0x0ec000, 0x0ec001) AM_WRITE_LEGACY(splndrbt_selchar1_w) // select active char map
AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(splndrbt_bg_scrollx_w)
AM_RANGE(0x140000, 0x140001) AM_WRITE_LEGACY(soundlatch_word_w) // LSB: sound command
AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE_LEGACY(splndrbt_bg_scrolly_w)
- AM_RANGE(0x180000, 0x1807ff) AM_READWRITE_LEGACY(mcu_r, mcu_w) // 8-bit
+ AM_RANGE(0x180000, 0x1807ff) AM_READWRITE(mcu_r, mcu_w) // 8-bit
AM_RANGE(0x200000, 0x200fff) AM_MIRROR(0x1000) AM_READWRITE_LEGACY(equites_fg_videoram_r, equites_fg_videoram_w) // 8-bit
AM_RANGE(0x400000, 0x4007ff) AM_RAM_WRITE_LEGACY(equites_bg_videoram_w) AM_BASE(m_bg_videoram)
AM_RANGE(0x400800, 0x400fff) AM_RAM
@@ -767,15 +755,15 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, equites_state )
AM_RANGE(0xc080, 0xc08d) AM_DEVWRITE_LEGACY("msm", msm5232_w)
AM_RANGE(0xc0a0, 0xc0a1) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
AM_RANGE(0xc0b0, 0xc0b0) AM_WRITENOP // n.c.
- AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE_LEGACY(equites_cymbal_ctrl_w)
- AM_RANGE(0xc0d0, 0xc0d0) AM_WRITE_LEGACY(equites_dac_latch_w) // followed by 1 (and usually 0) on 8155 port B
- AM_RANGE(0xc0e0, 0xc0e0) AM_WRITE_LEGACY(equites_dac_latch_w) // followed by 2 (and usually 0) on 8155 port B
- AM_RANGE(0xc0f8, 0xc0ff) AM_WRITE_LEGACY(equites_c0f8_w)
+ AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE(equites_cymbal_ctrl_w)
+ AM_RANGE(0xc0d0, 0xc0d0) AM_WRITE(equites_dac_latch_w) // followed by 1 (and usually 0) on 8155 port B
+ AM_RANGE(0xc0e0, 0xc0e0) AM_WRITE(equites_dac_latch_w) // followed by 2 (and usually 0) on 8155 port B
+ AM_RANGE(0xc0f8, 0xc0ff) AM_WRITE(equites_c0f8_w)
AM_RANGE(0xe000, 0xe0ff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, equites_state )
- AM_RANGE(0x00e0, 0x00e5) AM_WRITE_LEGACY(equites_8155_w)
+ AM_RANGE(0x00e0, 0x00e5) AM_WRITE(equites_8155_w)
ADDRESS_MAP_END
@@ -1911,8 +1899,9 @@ static DRIVER_INIT( gekisou )
unpack_region(machine, "gfx3");
// install special handlers for unknown device (protection?)
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x580000, 0x580001, FUNC(gekisou_unknown_0_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x5a0000, 0x5a0001, FUNC(gekisou_unknown_1_w));
+ equites_state *state = machine.driver_data<equites_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x580000, 0x580001, write16_delegate(FUNC(equites_state::gekisou_unknown_0_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x5a0000, 0x5a0001, write16_delegate(FUNC(equites_state::gekisou_unknown_1_w),state));
}
static DRIVER_INIT( splndrbt )
@@ -1925,7 +1914,7 @@ static DRIVER_INIT( hvoltage )
unpack_region(machine, "gfx3");
#if HVOLTAGE_DEBUG
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x000038, 0x000039, FUNC(hvoltage_debug_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x000038, 0x000039, read16_delegate(FUNC(equites_state::hvoltage_debug_r),state));
#endif
}
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index e0b459445a1..93ff00780b9 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -58,20 +58,18 @@ Head Panic
***************************************************************************/
-static WRITE16_HANDLER( esd16_spriteram_w )
+WRITE16_MEMBER(esd16_state::esd16_spriteram_w)
{
- esd16_state *state = space->machine().driver_data<esd16_state>();
- COMBINE_DATA(&state->m_spriteram[offset]);
+ COMBINE_DATA(&m_spriteram[offset]);
}
-static WRITE16_HANDLER( esd16_sound_command_w )
+WRITE16_MEMBER(esd16_state::esd16_sound_command_w)
{
- esd16_state *state = space->machine().driver_data<esd16_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audio_cpu, 0, ASSERT_LINE); // Generate an IRQ
- device_spin_until_time(&space->device(), attotime::from_usec(50)); // Allow the other CPU to reply
+ device_set_input_line(m_audio_cpu, 0, ASSERT_LINE); // Generate an IRQ
+ device_spin_until_time(&space.device(), attotime::from_usec(50)); // Allow the other CPU to reply
}
}
@@ -86,7 +84,7 @@ static ADDRESS_MAP_START( multchmp_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x200000, 0x2005ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
/**/AM_RANGE(0x300000, 0x3007ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x300800, 0x300807) AM_WRITE_LEGACY(esd16_spriteram_w) // Sprites (Mirrored)
+ AM_RANGE(0x300800, 0x300807) AM_WRITE(esd16_spriteram_w) // Sprites (Mirrored)
/**/AM_RANGE(0x400000, 0x403fff) AM_RAM_WRITE_LEGACY(esd16_vram_0_w) AM_BASE(m_vram_0) // Layers
/**/AM_RANGE(0x420000, 0x423fff) AM_RAM_WRITE_LEGACY(esd16_vram_1_w) AM_BASE(m_vram_1) //
/**/AM_RANGE(0x500000, 0x500003) AM_RAM AM_BASE(m_scroll_0) // Scroll
@@ -100,38 +98,36 @@ static ADDRESS_MAP_START( multchmp_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x600006, 0x600007) AM_READ_PORT("DSW")
AM_RANGE(0x600008, 0x600009) AM_WRITE_LEGACY(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking
AM_RANGE(0x60000a, 0x60000b) AM_WRITENOP // ? 2
- AM_RANGE(0x60000c, 0x60000d) AM_WRITE_LEGACY(esd16_sound_command_w) // To Sound CPU
+ AM_RANGE(0x60000c, 0x60000d) AM_WRITE(esd16_sound_command_w) // To Sound CPU
AM_RANGE(0x700008, 0x70000b) AM_READNOP // ? Only read once
ADDRESS_MAP_END
-static WRITE16_HANDLER(hedpanic_platform_w)
+WRITE16_MEMBER(esd16_state::hedpanic_platform_w)
{
- esd16_state *state = space->machine().driver_data<esd16_state>();
- int offsets = state->m_headpanic_platform_x[0] + 0x40 * state->m_headpanic_platform_y[0];
+ int offsets = m_headpanic_platform_x[0] + 0x40 * m_headpanic_platform_y[0];
- state->m_vram_1[offsets] = data;
- state->m_tilemap_1_16x16->mark_tile_dirty(offsets);
+ m_vram_1[offsets] = data;
+ m_tilemap_1_16x16->mark_tile_dirty(offsets);
}
-static READ16_HANDLER( esd_eeprom_r )
+READ16_MEMBER(esd16_state::esd_eeprom_r)
{
- esd16_state *state = space->machine().driver_data<esd16_state>();
if (ACCESSING_BITS_8_15)
{
- return ((state->m_eeprom->read_bit() & 0x01) << 15);
+ return ((m_eeprom->read_bit() & 0x01) << 15);
}
-// logerror("(0x%06x) unk EEPROM read: %04x\n", cpu_get_pc(&space->device()), mem_mask);
+// logerror("(0x%06x) unk EEPROM read: %04x\n", cpu_get_pc(&space.device()), mem_mask);
return 0;
}
-static WRITE16_HANDLER( esd_eeprom_w )
+WRITE16_MEMBER(esd16_state::esd_eeprom_w)
{
if (ACCESSING_BITS_8_15)
- input_port_write(space->machine(), "EEPROMOUT", data, 0xffff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xffff);
-// logerror("(0x%06x) Unk EEPROM write: %04x %04x\n", cpu_get_pc(&space->device()), data, mem_mask);
+// logerror("(0x%06x) Unk EEPROM write: %04x %04x\n", cpu_get_pc(&space.device()), data, mem_mask);
}
static ADDRESS_MAP_START( hedpanic_map, AS_PROGRAM, 16, esd16_state )
@@ -139,7 +135,7 @@ static ADDRESS_MAP_START( hedpanic_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM // RAM
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x900000, 0x9007ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x900800, 0x900807) AM_WRITE_LEGACY(esd16_spriteram_w) // Sprites (Mirrored)
+ AM_RANGE(0x900800, 0x900807) AM_WRITE(esd16_spriteram_w) // Sprites (Mirrored)
AM_RANGE(0xa00000, 0xa03fff) AM_WRITE_LEGACY(esd16_vram_0_w) AM_BASE(m_vram_0) // Layers
AM_RANGE(0xa20000, 0xa23fff) AM_WRITE_LEGACY(esd16_vram_1_w) AM_BASE(m_vram_1) //
AM_RANGE(0xa24000, 0xa27fff) AM_WRITE_LEGACY(esd16_vram_1_w) AM_BASE(m_vram_1) // mirror?
@@ -152,12 +148,12 @@ static ADDRESS_MAP_START( hedpanic_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP // IRQ Ack
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1_P2")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc00006, 0xc00007) AM_READ_LEGACY(esd_eeprom_r)
+ AM_RANGE(0xc00006, 0xc00007) AM_READ(esd_eeprom_r)
AM_RANGE(0xc00008, 0xc00009) AM_WRITE_LEGACY(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking
AM_RANGE(0xc0000a, 0xc0000b) AM_WRITENOP // ? 2 not checked
- AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE_LEGACY(esd16_sound_command_w) // To Sound CPU // ok
- AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE_LEGACY(esd_eeprom_w)
- AM_RANGE(0xd00008, 0xd00009) AM_WRITE_LEGACY(hedpanic_platform_w)
+ AM_RANGE(0xc0000c, 0xc0000d) AM_WRITE(esd16_sound_command_w) // To Sound CPU // ok
+ AM_RANGE(0xc0000e, 0xc0000f) AM_WRITE(esd_eeprom_w)
+ AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w)
ADDRESS_MAP_END
/* Multi Champ Deluxe, like Head Panic but different addresses */
@@ -172,20 +168,20 @@ static ADDRESS_MAP_START( mchampdx_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x500000, 0x500001) AM_WRITENOP // IRQ Ack
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P1_P2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x500006, 0x500007) AM_READ_LEGACY(esd_eeprom_r)
+ AM_RANGE(0x500006, 0x500007) AM_READ(esd_eeprom_r)
AM_RANGE(0x500008, 0x500009) AM_WRITE_LEGACY(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking
AM_RANGE(0x50000a, 0x50000b) AM_WRITENOP // ? 2 not checked
- AM_RANGE(0x50000c, 0x50000d) AM_WRITE_LEGACY(esd16_sound_command_w) // To Sound CPU // ok
- AM_RANGE(0x50000e, 0x50000f) AM_WRITE_LEGACY(esd_eeprom_w)
+ AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w) // To Sound CPU // ok
+ AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w)
AM_RANGE(0x600000, 0x6007ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x600800, 0x600807) AM_WRITE_LEGACY(esd16_spriteram_w) // Sprites (Mirrored)
+ AM_RANGE(0x600800, 0x600807) AM_WRITE(esd16_spriteram_w) // Sprites (Mirrored)
AM_RANGE(0x700000, 0x700003) AM_WRITEONLY AM_BASE(m_scroll_0) // Scroll
AM_RANGE(0x700004, 0x700007) AM_WRITEONLY AM_BASE(m_scroll_1) //
AM_RANGE(0x700008, 0x700009) AM_WRITEONLY AM_BASE(m_headpanic_platform_x) // not used in mchampdx?
AM_RANGE(0x70000a, 0x70000b) AM_WRITEONLY AM_BASE(m_headpanic_platform_y) // not used in mchampdx?
AM_RANGE(0x70000c, 0x70000d) AM_WRITENOP // ??
AM_RANGE(0x70000e, 0x70000f) AM_WRITEONLY AM_BASE(m_head_layersize) // ??
- AM_RANGE(0xd00008, 0xd00009) AM_WRITE_LEGACY(hedpanic_platform_w) // not used in mchampdx?
+ AM_RANGE(0xd00008, 0xd00009) AM_WRITE(hedpanic_platform_w) // not used in mchampdx?
ADDRESS_MAP_END
/* Tang Tang & Deluxe 5 - like the others but again with different addresses */
@@ -194,7 +190,7 @@ static ADDRESS_MAP_START( tangtang_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // RAM
AM_RANGE(0x200000, 0x2007ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x200800, 0x200807) AM_WRITE_LEGACY(esd16_spriteram_w) // Sprites (Mirrored)
+ AM_RANGE(0x200800, 0x200807) AM_WRITE(esd16_spriteram_w) // Sprites (Mirrored)
AM_RANGE(0x300000, 0x303fff) AM_WRITE_LEGACY(esd16_vram_0_w) AM_BASE(m_vram_0) // Layers
AM_RANGE(0x320000, 0x323fff) AM_WRITE_LEGACY(esd16_vram_1_w) AM_BASE(m_vram_1) //
AM_RANGE(0x324000, 0x327fff) AM_WRITE_LEGACY(esd16_vram_1_w) AM_BASE(m_vram_1) // mirror?
@@ -207,12 +203,12 @@ static ADDRESS_MAP_START( tangtang_map, AS_PROGRAM, 16, esd16_state )
AM_RANGE(0x500000, 0x500001) AM_WRITENOP // IRQ Ack
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P1_P2")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x500006, 0x500007) AM_READ_LEGACY(esd_eeprom_r)
+ AM_RANGE(0x500006, 0x500007) AM_READ(esd_eeprom_r)
AM_RANGE(0x500008, 0x500009) AM_WRITE_LEGACY(esd16_tilemap0_color_w) // Flip Screen + Tileamp0 palette banking
AM_RANGE(0x50000a, 0x50000b) AM_WRITENOP // ? 2 not checked
- AM_RANGE(0x50000c, 0x50000d) AM_WRITE_LEGACY(esd16_sound_command_w) // To Sound CPU // ok
- AM_RANGE(0x50000e, 0x50000f) AM_WRITE_LEGACY(esd_eeprom_w)
- AM_RANGE(0x600008, 0x600009) AM_WRITE_LEGACY(hedpanic_platform_w)
+ AM_RANGE(0x50000c, 0x50000d) AM_WRITE(esd16_sound_command_w) // To Sound CPU // ok
+ AM_RANGE(0x50000e, 0x50000f) AM_WRITE(esd_eeprom_w)
+ AM_RANGE(0x600008, 0x600009) AM_WRITE(hedpanic_platform_w)
AM_RANGE(0x700000, 0x70ffff) AM_RAM // main ram
ADDRESS_MAP_END
@@ -225,12 +221,12 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE8_HANDLER( esd16_sound_rombank_w )
+WRITE8_MEMBER(esd16_state::esd16_sound_rombank_w)
{
int bank = data & 0xf;
- if (data != bank) logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space->device()), data);
+ if (data != bank) logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space.device()), data);
if (bank >= 3) bank += 1;
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
}
static ADDRESS_MAP_START( multchmp_sound_map, AS_PROGRAM, 8, esd16_state )
@@ -239,12 +235,11 @@ static ADDRESS_MAP_START( multchmp_sound_map, AS_PROGRAM, 8, esd16_state )
AM_RANGE(0xf800, 0xffff) AM_RAM // RAM
ADDRESS_MAP_END
-static READ8_HANDLER( esd16_sound_command_r )
+READ8_MEMBER(esd16_state::esd16_sound_command_r)
{
- esd16_state *state = space->machine().driver_data<esd16_state>();
/* Clear IRQ only after reading the command, or some get lost */
- device_set_input_line(state->m_audio_cpu, 0, CLEAR_LINE);
+ device_set_input_line(m_audio_cpu, 0, CLEAR_LINE);
return soundlatch_r(space, 0);
}
@@ -252,9 +247,9 @@ static ADDRESS_MAP_START( multchmp_sound_io_map, AS_IO, 8, esd16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w) // YM3812
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE("oki", okim6295_device, read, write) // M6295
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(esd16_sound_command_r) // From Main CPU
+ AM_RANGE(0x03, 0x03) AM_READ(esd16_sound_command_r) // From Main CPU
AM_RANGE(0x04, 0x04) AM_WRITENOP // ? $00, $30
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(esd16_sound_rombank_w) // ROM Bank
+ AM_RANGE(0x05, 0x05) AM_WRITE(esd16_sound_rombank_w) // ROM Bank
AM_RANGE(0x06, 0x06) AM_NOP // ? At the start / ? 1 (End of NMI routine)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index bc03f0ec9b1..c3fc82f31a7 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -66,10 +66,9 @@ static MACHINE_START( espial )
}
-static WRITE8_HANDLER( espial_master_interrupt_mask_w )
+WRITE8_MEMBER(espial_state::espial_master_interrupt_mask_w)
{
- espial_state *state = space->machine().driver_data<espial_state>();
- state->m_main_nmi_enabled = ~(data & 1);
+ m_main_nmi_enabled = ~(data & 1);
}
@@ -101,11 +100,10 @@ INTERRUPT_GEN( espial_sound_nmi_gen )
}
-static WRITE8_HANDLER( espial_master_soundlatch_w )
+WRITE8_MEMBER(espial_state::espial_master_soundlatch_w)
{
- espial_state *state = space->machine().driver_data<espial_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
@@ -116,9 +114,9 @@ static ADDRESS_MAP_START( espial_map, AS_PROGRAM, 8, espial_state )
AM_RANGE(0x6082, 0x6082) AM_READ_PORT("DSW1")
AM_RANGE(0x6083, 0x6083) AM_READ_PORT("IN1")
AM_RANGE(0x6084, 0x6084) AM_READ_PORT("IN2")
- AM_RANGE(0x6090, 0x6090) AM_READWRITE_LEGACY(soundlatch2_r, espial_master_soundlatch_w)
+ AM_RANGE(0x6090, 0x6090) AM_READ_LEGACY(soundlatch2_r) AM_WRITE(espial_master_soundlatch_w)
AM_RANGE(0x7000, 0x7000) AM_READWRITE_LEGACY(watchdog_reset_r, watchdog_reset_w)
- AM_RANGE(0x7100, 0x7100) AM_WRITE_LEGACY(espial_master_interrupt_mask_w)
+ AM_RANGE(0x7100, 0x7100) AM_WRITE(espial_master_interrupt_mask_w)
AM_RANGE(0x7200, 0x7200) AM_WRITE_LEGACY(espial_flipscreen_w)
AM_RANGE(0x8000, 0x801f) AM_RAM AM_BASE(m_spriteram_1)
AM_RANGE(0x8020, 0x803f) AM_READONLY
@@ -141,9 +139,9 @@ static ADDRESS_MAP_START( netwars_map, AS_PROGRAM, 8, espial_state )
AM_RANGE(0x6082, 0x6082) AM_READ_PORT("DSW1")
AM_RANGE(0x6083, 0x6083) AM_READ_PORT("IN1")
AM_RANGE(0x6084, 0x6084) AM_READ_PORT("IN2")
- AM_RANGE(0x6090, 0x6090) AM_READWRITE_LEGACY(soundlatch2_r, espial_master_soundlatch_w)
+ AM_RANGE(0x6090, 0x6090) AM_READ_LEGACY(soundlatch2_r) AM_WRITE(espial_master_soundlatch_w)
AM_RANGE(0x7000, 0x7000) AM_READWRITE_LEGACY(watchdog_reset_r, watchdog_reset_w)
- AM_RANGE(0x7100, 0x7100) AM_WRITE_LEGACY(espial_master_interrupt_mask_w)
+ AM_RANGE(0x7100, 0x7100) AM_WRITE(espial_master_interrupt_mask_w)
AM_RANGE(0x7200, 0x7200) AM_WRITE_LEGACY(espial_flipscreen_w)
AM_RANGE(0x8000, 0x801f) AM_RAM AM_BASE(m_spriteram_1)
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE_LEGACY(espial_videoram_w) AM_BASE(m_videoram)
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index b233d398e94..c33f8391e28 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -62,13 +62,13 @@ static const ptm6840_interface ptm_intf =
*************************************/
/* Note: Game CPU /FIRQ is connected to RXRDY */
-static WRITE8_HANDLER( uart_w )
+WRITE8_MEMBER(esripsys_state::uart_w)
{
if ((offset & 1) == 0)
mame_printf_debug("%c",data);
}
-static READ8_HANDLER( uart_r )
+READ8_MEMBER(esripsys_state::uart_r)
{
return 0;
}
@@ -93,34 +93,32 @@ static READ8_HANDLER( uart_r )
7: Frame CPU /NMI 7: /VBLANK
*/
-static READ8_HANDLER( g_status_r )
+READ8_MEMBER(esripsys_state::g_status_r)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- int bank4 = BIT(get_rip_status(space->machine().device("video_cpu")), 2);
- int vblank = space->machine().primary_screen->vblank();
+ int bank4 = BIT(get_rip_status(machine().device("video_cpu")), 2);
+ int vblank = machine().primary_screen->vblank();
- return (!vblank << 7) | (bank4 << 6) | (state->m_f_status & 0x2f);
+ return (!vblank << 7) | (bank4 << 6) | (m_f_status & 0x2f);
}
-static WRITE8_HANDLER( g_status_w )
+WRITE8_MEMBER(esripsys_state::g_status_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
int bankaddress;
- UINT8 *rom = space->machine().region("game_cpu")->base();
+ UINT8 *rom = machine().region("game_cpu")->base();
- state->m_g_status = data;
+ m_g_status = data;
bankaddress = 0x10000 + (data & 0x03) * 0x10000;
- memory_set_bankptr(space->machine(), "bank1", &rom[bankaddress]);
+ memory_set_bankptr(machine(), "bank1", &rom[bankaddress]);
- cputag_set_input_line(space->machine(), "frame_cpu", M6809_FIRQ_LINE, data & 0x10 ? CLEAR_LINE : ASSERT_LINE);
- cputag_set_input_line(space->machine(), "frame_cpu", INPUT_LINE_NMI, data & 0x80 ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "frame_cpu", M6809_FIRQ_LINE, data & 0x10 ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "frame_cpu", INPUT_LINE_NMI, data & 0x80 ? CLEAR_LINE : ASSERT_LINE);
- cputag_set_input_line(space->machine(), "video_cpu", INPUT_LINE_RESET, data & 0x40 ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "video_cpu", INPUT_LINE_RESET, data & 0x40 ? CLEAR_LINE : ASSERT_LINE);
/* /VBLANK IRQ acknowledge */
if (!(data & 0x20))
- cputag_set_input_line(space->machine(), "game_cpu", M6809_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "game_cpu", M6809_IRQ_LINE, CLEAR_LINE);
}
@@ -143,21 +141,19 @@ static WRITE8_HANDLER( g_status_w )
7: /FRDONE 7: /VBLANK
*/
-static READ8_HANDLER( f_status_r )
+READ8_MEMBER(esripsys_state::f_status_r)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- int vblank = space->machine().primary_screen->vblank();
- UINT8 rip_status = get_rip_status(space->machine().device("video_cpu"));
+ int vblank = machine().primary_screen->vblank();
+ UINT8 rip_status = get_rip_status(machine().device("video_cpu"));
rip_status = (rip_status & 0x18) | (BIT(rip_status, 6) << 1) | BIT(rip_status, 7);
- return (!vblank << 7) | (state->m_fbsel << 6) | (state->m_frame_vbl << 5) | rip_status;
+ return (!vblank << 7) | (m_fbsel << 6) | (m_frame_vbl << 5) | rip_status;
}
-static WRITE8_HANDLER( f_status_w )
+WRITE8_MEMBER(esripsys_state::f_status_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- state->m_f_status = data;
+ m_f_status = data;
}
@@ -174,29 +170,26 @@ static TIMER_CALLBACK( delayed_bank_swap )
state->m_fbsel ^= 1;
}
-static WRITE8_HANDLER( frame_w )
+WRITE8_MEMBER(esripsys_state::frame_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- space->machine().scheduler().synchronize(FUNC(delayed_bank_swap));
- state->m_frame_vbl = 1;
+ machine().scheduler().synchronize(FUNC(delayed_bank_swap));
+ m_frame_vbl = 1;
}
-static READ8_HANDLER( fdt_r )
+READ8_MEMBER(esripsys_state::fdt_r)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- if (!state->m_fasel)
- return state->m_fdt_b[offset];
+ if (!m_fasel)
+ return m_fdt_b[offset];
else
- return state->m_fdt_a[offset];
+ return m_fdt_a[offset];
}
-static WRITE8_HANDLER( fdt_w )
+WRITE8_MEMBER(esripsys_state::fdt_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- if (!state->m_fasel)
- state->m_fdt_b[offset] = data;
+ if (!m_fasel)
+ m_fdt_b[offset] = data;
else
- state->m_fdt_a[offset] = data;
+ m_fdt_a[offset] = data;
}
@@ -266,51 +259,49 @@ static UINT8 rip_status_in(running_machine &machine)
*
*************************************/
-static WRITE8_HANDLER( g_iobus_w )
+WRITE8_MEMBER(esripsys_state::g_iobus_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- state->m_g_iodata = data;
+ m_g_iodata = data;
}
-static READ8_HANDLER( g_iobus_r )
+READ8_MEMBER(esripsys_state::g_iobus_r)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- switch (state->m_g_ioaddr & 0x7f)
+ switch (m_g_ioaddr & 0x7f)
{
case 0:
- return state->m_s_to_g_latch2 & 0x3f;
+ return m_s_to_g_latch2 & 0x3f;
case 3:
- return state->m_s_to_g_latch1;
+ return m_s_to_g_latch1;
case 5:
- return state->m_cmos_ram[(state->m_cmos_ram_a10_3 << 3) | (state->m_cmos_ram_a2_0 & 3)];
+ return m_cmos_ram[(m_cmos_ram_a10_3 << 3) | (m_cmos_ram_a2_0 & 3)];
case 8:
{
- int keypad = input_port_read(space->machine(), "KEYPAD_B") | state->m_keypad_status;
- state->m_keypad_status = 0;
- state->m_io_firq_status = 0;
+ int keypad = input_port_read(machine(), "KEYPAD_B") | m_keypad_status;
+ m_keypad_status = 0;
+ m_io_firq_status = 0;
return keypad;
}
case 9:
{
- return input_port_read(space->machine(), "KEYPAD_A");
+ return input_port_read(machine(), "KEYPAD_A");
}
case 0xa:
{
- int coins = state->m_coin_latch | (input_port_read(space->machine(), "COINS") & 0x30);
- state->m_coin_latch = 0;
- state->m_io_firq_status = 0;
+ int coins = m_coin_latch | (input_port_read(machine(), "COINS") & 0x30);
+ m_coin_latch = 0;
+ m_io_firq_status = 0;
return coins;
}
case 0x10:
- return input_port_read(space->machine(), "IO_1");
+ return input_port_read(machine(), "IO_1");
case 0x11:
- return input_port_read(space->machine(), "JOYSTICK_X");
+ return input_port_read(machine(), "JOYSTICK_X");
case 0x12:
- return input_port_read(space->machine(), "JOYSTICK_Y");
+ return input_port_read(machine(), "JOYSTICK_Y");
case 0x16:
- return state->m_io_firq_status;
+ return m_io_firq_status;
case 0x18:
- return input_port_read(space->machine(), "IO_2");
+ return input_port_read(machine(), "IO_2");
/* Unused I/O */
case 0x19:
case 0x1a:
@@ -334,60 +325,59 @@ static READ8_HANDLER( g_iobus_r )
return 0xff;
default:
{
- logerror("Unknown I/O read (%x)\n", state->m_g_ioaddr & 0x7f);
+ logerror("Unknown I/O read (%x)\n", m_g_ioaddr & 0x7f);
return 0xff;
}
}
}
-static WRITE8_HANDLER( g_ioadd_w )
+WRITE8_MEMBER(esripsys_state::g_ioadd_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- state->m_g_ioaddr = data;
+ m_g_ioaddr = data;
/* Bit 7 is connected to /OE of LS374 containing I/O data */
if ((data & 0x80) == 0)
{
- switch (state->m_g_ioaddr & 0x7f)
+ switch (m_g_ioaddr & 0x7f)
{
case 0x00:
{
- state->m_g_to_s_latch1 = state->m_g_iodata;
+ m_g_to_s_latch1 = m_g_iodata;
break;
}
case 0x02:
{
- cputag_set_input_line(space->machine(), "sound_cpu", INPUT_LINE_NMI, state->m_g_iodata & 4 ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sound_cpu", INPUT_LINE_NMI, m_g_iodata & 4 ? CLEAR_LINE : ASSERT_LINE);
- if (!(state->m_g_to_s_latch2 & 1) && (state->m_g_iodata & 1))
+ if (!(m_g_to_s_latch2 & 1) && (m_g_iodata & 1))
{
/* Rising D0 will clock in 1 to FF1... */
- state->m_u56a = 1;
+ m_u56a = 1;
/*...causing a sound CPU /IRQ */
- cputag_set_input_line(space->machine(), "sound_cpu", M6809_IRQ_LINE, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sound_cpu", M6809_IRQ_LINE, ASSERT_LINE);
}
- if (state->m_g_iodata & 2)
- state->m_u56b = 0;
+ if (m_g_iodata & 2)
+ m_u56b = 0;
- state->m_g_to_s_latch2 = state->m_g_iodata;
+ m_g_to_s_latch2 = m_g_iodata;
break;
}
case 0x04:
{
- state->m_cmos_ram[(state->m_cmos_ram_a10_3 << 3) | (state->m_cmos_ram_a2_0 & 3)] = state->m_g_iodata;
+ m_cmos_ram[(m_cmos_ram_a10_3 << 3) | (m_cmos_ram_a2_0 & 3)] = m_g_iodata;
break;
}
case 0x06:
{
- state->m_cmos_ram_a10_3 = state->m_g_iodata;
+ m_cmos_ram_a10_3 = m_g_iodata;
break;
}
case 0x07:
{
- state->m_cmos_ram_a2_0 = state->m_g_iodata;
+ m_cmos_ram_a2_0 = m_g_iodata;
break;
}
case 0x0b:
@@ -401,12 +391,12 @@ static WRITE8_HANDLER( g_ioadd_w )
}
case 0x15:
{
- state->m_video_firq_en = state->m_g_iodata & 1;
+ m_video_firq_en = m_g_iodata & 1;
break;
}
default:
{
- logerror("Unknown I/O write to %x with %x\n", state->m_g_ioaddr, state->m_g_iodata);
+ logerror("Unknown I/O write to %x with %x\n", m_g_ioaddr, m_g_iodata);
}
}
}
@@ -491,55 +481,51 @@ INPUT_PORTS_END
*************************************/
/* Game/Sound CPU communications */
-static READ8_HANDLER( s_200e_r )
+READ8_MEMBER(esripsys_state::s_200e_r)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- return state->m_g_to_s_latch1;
+ return m_g_to_s_latch1;
}
-static WRITE8_HANDLER( s_200e_w )
+WRITE8_MEMBER(esripsys_state::s_200e_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- state->m_s_to_g_latch1 = data;
+ m_s_to_g_latch1 = data;
}
-static WRITE8_HANDLER( s_200f_w )
+WRITE8_MEMBER(esripsys_state::s_200f_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- UINT8 *rom = space->machine().region("sound_data")->base();
+ UINT8 *rom = machine().region("sound_data")->base();
int rombank = data & 0x20 ? 0x2000 : 0;
/* Bit 6 -> Reset latch U56A */
/* Bit 7 -> Clock latch U56B */
- if (state->m_s_to_g_latch2 & 0x40)
+ if (m_s_to_g_latch2 & 0x40)
{
- state->m_u56a = 0;
- cputag_set_input_line(space->machine(), "sound_cpu", M6809_IRQ_LINE, CLEAR_LINE);
+ m_u56a = 0;
+ cputag_set_input_line(machine(), "sound_cpu", M6809_IRQ_LINE, CLEAR_LINE);
}
- if (!(state->m_s_to_g_latch2 & 0x80) && (data & 0x80))
- state->m_u56b = 1;
+ if (!(m_s_to_g_latch2 & 0x80) && (data & 0x80))
+ m_u56b = 1;
/* Speech data resides in the upper 8kB of the ROMs */
- memory_set_bankptr(space->machine(), "bank2", &rom[0x0000 + rombank]);
- memory_set_bankptr(space->machine(), "bank3", &rom[0x4000 + rombank]);
- memory_set_bankptr(space->machine(), "bank4", &rom[0x8000 + rombank]);
+ memory_set_bankptr(machine(), "bank2", &rom[0x0000 + rombank]);
+ memory_set_bankptr(machine(), "bank3", &rom[0x4000 + rombank]);
+ memory_set_bankptr(machine(), "bank4", &rom[0x8000 + rombank]);
- state->m_s_to_g_latch2 = data;
+ m_s_to_g_latch2 = data;
}
-static READ8_HANDLER( s_200f_r )
+READ8_MEMBER(esripsys_state::s_200f_r)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- return (state->m_g_to_s_latch2 & 0xfc) | (state->m_u56b << 1) | state->m_u56a;
+ return (m_g_to_s_latch2 & 0xfc) | (m_u56b << 1) | m_u56a;
}
-static READ8_HANDLER( tms5220_r )
+READ8_MEMBER(esripsys_state::tms5220_r)
{
if (offset == 0)
{
/* TMS5220 core returns status bits in D7-D6 */
- device_t *tms = space->machine().device("tms5220nl");
+ device_t *tms = machine().device("tms5220nl");
UINT8 status = tms5220_status_r(tms, 0);
status = ((status & 0x80) >> 5) | ((status & 0x40) >> 5) | ((status & 0x20) >> 5);
@@ -550,27 +536,26 @@ static READ8_HANDLER( tms5220_r )
}
/* TODO: Implement correctly using the state PROM */
-static WRITE8_HANDLER( tms5220_w )
+WRITE8_MEMBER(esripsys_state::tms5220_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- device_t *tms = space->machine().device("tms5220nl");
+ device_t *tms = machine().device("tms5220nl");
if (offset == 0)
{
- state->m_tms_data = data;
- tms5220_data_w(tms, 0, state->m_tms_data);
+ m_tms_data = data;
+ tms5220_data_w(tms, 0, m_tms_data);
}
#if 0
if (offset == 1)
{
- tms5220_data_w(tms, 0, state->m_tms_data);
+ tms5220_data_w(tms, 0, m_tms_data);
}
#endif
}
/* Not used in later revisions */
-static WRITE8_HANDLER( control_w )
+WRITE8_MEMBER(esripsys_state::control_w)
{
- logerror("Sound control write: %.2x (PC:0x%.4x)\n", data, cpu_get_previouspc(&space->device()));
+ logerror("Sound control write: %.2x (PC:0x%.4x)\n", data, cpu_get_previouspc(&space.device()));
}
@@ -595,10 +580,9 @@ static WRITE8_DEVICE_HANDLER( esripsys_dac_w )
}
/* 8-bit MC3408 DAC */
-static WRITE8_HANDLER( volume_dac_w )
+WRITE8_MEMBER(esripsys_state::volume_dac_w)
{
- esripsys_state *state = space->machine().driver_data<esripsys_state>();
- state->m_dac_vol = data;
+ m_dac_vol = data;
}
@@ -613,11 +597,11 @@ static ADDRESS_MAP_START( game_cpu_map, AS_PROGRAM, 8, esripsys_state )
AM_RANGE(0x4000, 0x42ff) AM_RAM AM_BASE(m_pal_ram)
AM_RANGE(0x4300, 0x4300) AM_WRITE_LEGACY(esripsys_bg_intensity_w)
AM_RANGE(0x4400, 0x47ff) AM_NOP /* Collision detection RAM */
- AM_RANGE(0x4800, 0x4bff) AM_READWRITE_LEGACY(g_status_r, g_status_w)
- AM_RANGE(0x4c00, 0x4fff) AM_READWRITE_LEGACY(g_iobus_r, g_iobus_w)
- AM_RANGE(0x5000, 0x53ff) AM_WRITE_LEGACY(g_ioadd_w)
+ AM_RANGE(0x4800, 0x4bff) AM_READWRITE(g_status_r, g_status_w)
+ AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(g_iobus_r, g_iobus_w)
+ AM_RANGE(0x5000, 0x53ff) AM_WRITE(g_ioadd_w)
AM_RANGE(0x5400, 0x57ff) AM_NOP
- AM_RANGE(0x5c00, 0x5fff) AM_READWRITE_LEGACY(uart_r, uart_w)
+ AM_RANGE(0x5c00, 0x5fff) AM_READWRITE(uart_r, uart_w)
AM_RANGE(0x6000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -625,9 +609,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( frame_cpu_map, AS_PROGRAM, 8, esripsys_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x4000, 0x4fff) AM_READWRITE_LEGACY(fdt_r, fdt_w)
- AM_RANGE(0x6000, 0x6000) AM_READWRITE_LEGACY(f_status_r, f_status_w)
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(frame_w)
+ AM_RANGE(0x4000, 0x4fff) AM_READWRITE(fdt_r, fdt_w)
+ AM_RANGE(0x6000, 0x6000) AM_READWRITE(f_status_r, f_status_w)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(frame_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -635,12 +619,12 @@ ADDRESS_MAP_END
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_LEGACY(tms5220_r, tms5220_w)
+ AM_RANGE(0x2008, 0x2009) AM_READWRITE(tms5220_r, tms5220_w)
AM_RANGE(0x200a, 0x200b) AM_DEVWRITE_LEGACY("dac", esripsys_dac_w)
- AM_RANGE(0x200c, 0x200c) AM_WRITE_LEGACY(volume_dac_w)
- AM_RANGE(0x200d, 0x200d) AM_WRITE_LEGACY(control_w)
- AM_RANGE(0x200e, 0x200e) AM_READWRITE_LEGACY(s_200e_r, s_200e_w)
- AM_RANGE(0x200f, 0x200f) AM_READWRITE_LEGACY(s_200f_r, s_200f_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)
+ AM_RANGE(0x200f, 0x200f) AM_READWRITE(s_200f_r, s_200f_w)
AM_RANGE(0x2020, 0x2027) AM_DEVREADWRITE("6840ptm", ptm6840_device, read, write)
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank3")
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index d5b1f9fb92e..59f314e72ed 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -174,13 +174,12 @@ static WRITE8_DEVICE_HANDLER( exerion_portb_w )
}
-static READ8_HANDLER( exerion_protection_r )
+READ8_MEMBER(exerion_state::exerion_protection_r)
{
- exerion_state *state = space->machine().driver_data<exerion_state>();
- if (cpu_get_pc(&space->device()) == 0x4143)
- return space->machine().region("maincpu")->base()[0x33c0 + (state->m_main_ram[0xd] << 2) + offset];
+ if (cpu_get_pc(&space.device()) == 0x4143)
+ return machine().region("maincpu")->base()[0x33c0 + (m_main_ram[0xd] << 2) + offset];
else
- return state->m_main_ram[0x8 + offset];
+ return m_main_ram[0x8 + offset];
}
@@ -193,7 +192,7 @@ static READ8_HANDLER( exerion_protection_r )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, exerion_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6008, 0x600b) AM_READ_LEGACY(exerion_protection_r)
+ AM_RANGE(0x6008, 0x600b) AM_READ(exerion_protection_r)
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_BASE(m_main_ram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x8800, 0x887f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index c8e5083b502..e0484dab6b0 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -184,11 +184,11 @@ static CUSTOM_INPUT( teetert_input_r )
*
*************************************/
-static WRITE8_HANDLER( fax_bank_select_w )
+WRITE8_MEMBER(exidy_state::fax_bank_select_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
- memory_set_bankptr(space->machine(), "bank1", &RAM[0x10000 + (0x2000 * (data & 0x1f))]);
+ memory_set_bankptr(machine(), "bank1", &RAM[0x10000 + (0x2000 * (data & 0x1f))]);
if ((data & 0x1f) > 0x17)
logerror("Banking to unpopulated ROM bank %02X!\n",data & 0x1f);
}
@@ -291,7 +291,7 @@ static ADDRESS_MAP_START( fax_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x0400, 0x07ff) AM_RAM
AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("IN4")
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("IN3")
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(fax_bank_select_w)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(fax_bank_select_w)
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE("pia0", pia6821_device, read, write)
AM_RANGE(0x5213, 0x5217) AM_WRITENOP /* empty control lines on color/sound board */
@@ -1502,11 +1502,12 @@ static DRIVER_INIT( pepper2 )
static DRIVER_INIT( fax )
{
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ exidy_state *state = machine.driver_data<exidy_state>();
exidy_video_config(machine, 0x04, 0x04, TRUE);
/* reset the ROM bank */
- fax_bank_select_w(space,0,0);
+ state->fax_bank_select_w(*space,0,0);
}
diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c
index 20ea40bea23..c665373fed2 100644
--- a/src/mame/drivers/exidy440.c
+++ b/src/mame/drivers/exidy440.c
@@ -242,7 +242,7 @@ Who Dunnit 1988 6809
#define MAIN_CPU_CLOCK (EXIDY440_MASTER_CLOCK / 8)
-static READ8_HANDLER( showdown_bank0_r );
+
@@ -303,7 +303,7 @@ void exidy440_bank_select(running_machine &machine, UINT8 bank)
if (state->m_showdown_bank_data[0] != NULL)
{
if (bank == 0 && state->m_bank != 0)
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x4000, 0x7fff, FUNC(showdown_bank0_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x4000, 0x7fff, read8_delegate(FUNC(exidy440_state::showdown_bank0_r),state));
else if (bank != 0 && state->m_bank == 0)
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x4000, 0x7fff, "bank1");
}
@@ -314,13 +314,12 @@ void exidy440_bank_select(running_machine &machine, UINT8 bank)
}
-static WRITE8_HANDLER( bankram_w )
+WRITE8_MEMBER(exidy440_state::bankram_w)
{
- exidy440_state *state = space->machine().driver_data<exidy440_state>();
/* EEROM lives in the upper 8k of bank 15 */
- if (state->m_bank == 15 && offset >= 0x2000)
+ if (m_bank == 15 && offset >= 0x2000)
{
- space->machine().region("maincpu")->base()[0x10000 + 15 * 0x4000 + offset] = data;
+ machine().region("maincpu")->base()[0x10000 + 15 * 0x4000 + offset] = data;
logerror("W EEROM[%04X] = %02X\n", offset - 0x2000, data);
}
@@ -335,19 +334,18 @@ static WRITE8_HANDLER( bankram_w )
*
*************************************/
-static READ8_HANDLER( exidy440_input_port_3_r )
+READ8_MEMBER(exidy440_state::exidy440_input_port_3_r)
{
/* I/O1 accesses clear the CIRQ flip/flop */
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
- return input_port_read(space->machine(), "IN3");
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
+ return input_port_read(machine(), "IN3");
}
-static READ8_HANDLER( sound_command_ack_r )
+READ8_MEMBER(exidy440_state::sound_command_ack_r)
{
- exidy440_state *state = space->machine().driver_data<exidy440_state>();
/* sound command acknowledgements come on bit 3 here */
- return exidy440_sound_command_ack(state->m_custom) ? 0xf7 : 0xff;
+ return exidy440_sound_command_ack(m_custom) ? 0xf7 : 0xff;
}
@@ -365,22 +363,22 @@ static TIMER_CALLBACK( delayed_sound_command_w )
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(exidy440_state::sound_command_w)
{
- space->machine().scheduler().synchronize(FUNC(delayed_sound_command_w), data);
+ machine().scheduler().synchronize(FUNC(delayed_sound_command_w), data);
}
-static WRITE8_HANDLER( exidy440_input_port_3_w )
+WRITE8_MEMBER(exidy440_state::exidy440_input_port_3_w)
{
/* I/O1 accesses clear the CIRQ flip/flop */
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( exidy440_coin_counter_w )
+WRITE8_MEMBER(exidy440_state::exidy440_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
@@ -391,52 +389,50 @@ static WRITE8_HANDLER( exidy440_coin_counter_w )
*
*************************************/
-static READ8_HANDLER( showdown_bank0_r )
+READ8_MEMBER(exidy440_state::showdown_bank0_r)
{
- exidy440_state *state = space->machine().driver_data<exidy440_state>();
/* showdown relies on different values from different memory locations */
/* yukon relies on multiple reads from the same location returning different values */
UINT8 result = 0xff;
/* fetch the special data if a bank is selected */
- if (state->m_showdown_bank_select >= 0)
+ if (m_showdown_bank_select >= 0)
{
- result = state->m_showdown_bank_data[state->m_showdown_bank_select][state->m_showdown_bank_offset++];
+ result = m_showdown_bank_data[m_showdown_bank_select][m_showdown_bank_offset++];
/* after 24 bytes, stop and revert back to the beginning */
- if (state->m_showdown_bank_offset == 0x18)
- state->m_showdown_bank_offset = 0;
+ if (m_showdown_bank_offset == 0x18)
+ m_showdown_bank_offset = 0;
}
/* look for special offsets to adjust our behavior */
if (offset == 0x0055)
- state->m_showdown_bank_select = -1;
- else if (state->m_showdown_bank_select == -1)
+ m_showdown_bank_select = -1;
+ else if (m_showdown_bank_select == -1)
{
- state->m_showdown_bank_select = (offset == 0x00ed) ? 0 : (offset == 0x1243) ? 1 : 0;
- state->m_showdown_bank_offset = 0;
+ m_showdown_bank_select = (offset == 0x00ed) ? 0 : (offset == 0x1243) ? 1 : 0;
+ m_showdown_bank_offset = 0;
}
return result;
}
-static READ8_HANDLER( claypign_protection_r )
+READ8_MEMBER(exidy440_state::claypign_protection_r)
{
return 0x76;
}
-static READ8_HANDLER( topsecex_input_port_5_r )
+READ8_MEMBER(exidy440_state::topsecex_input_port_5_r)
{
- return (input_port_read(space->machine(), "AN1") & 1) ? 0x01 : 0x02;
+ return (input_port_read(machine(), "AN1") & 1) ? 0x01 : 0x02;
}
-static WRITE8_HANDLER( topsecex_yscroll_w )
+WRITE8_MEMBER(exidy440_state::topsecex_yscroll_w)
{
- exidy440_state *state = space->machine().driver_data<exidy440_state>();
- *state->m_topsecex_yscroll = data;
+ *m_topsecex_yscroll = data;
}
@@ -482,15 +478,15 @@ static ADDRESS_MAP_START( exidy440_map, AS_PROGRAM, 8, exidy440_state )
AM_RANGE(0x2b02, 0x2b02) AM_RAM AM_BASE(m_scanline)
AM_RANGE(0x2b03, 0x2b03) AM_READ_PORT("IN0") AM_WRITE_LEGACY(exidy440_control_w)
AM_RANGE(0x2c00, 0x2dff) AM_READWRITE_LEGACY(exidy440_paletteram_r, exidy440_paletteram_w)
- AM_RANGE(0x2e00, 0x2e1f) AM_RAM_WRITE_LEGACY(sound_command_w)
- AM_RANGE(0x2e20, 0x2e3f) AM_READWRITE_LEGACY(exidy440_input_port_3_r, exidy440_input_port_3_w)
- AM_RANGE(0x2e40, 0x2e5f) AM_READNOP AM_WRITE_LEGACY(exidy440_coin_counter_w) /* read: clear coin counters I/O2 */
+ AM_RANGE(0x2e00, 0x2e1f) AM_RAM_WRITE(sound_command_w)
+ AM_RANGE(0x2e20, 0x2e3f) AM_READWRITE(exidy440_input_port_3_r, exidy440_input_port_3_w)
+ AM_RANGE(0x2e40, 0x2e5f) AM_READNOP AM_WRITE(exidy440_coin_counter_w) /* read: clear coin counters I/O2 */
AM_RANGE(0x2e60, 0x2e7f) AM_READ_PORT("IN1") AM_WRITENOP
AM_RANGE(0x2e80, 0x2e9f) AM_READ_PORT("IN2") AM_WRITENOP
- AM_RANGE(0x2ea0, 0x2ebf) AM_READ_LEGACY(sound_command_ack_r) AM_WRITENOP
+ AM_RANGE(0x2ea0, 0x2ebf) AM_READ(sound_command_ack_r) AM_WRITENOP
AM_RANGE(0x2ec0, 0x2eff) AM_NOP
AM_RANGE(0x3000, 0x3fff) AM_RAM
- AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank1") AM_WRITE_LEGACY(bankram_w)
+ AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank1") AM_WRITE(bankram_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -1942,8 +1938,8 @@ static DRIVER_INIT( exidy440 )
static DRIVER_INIT( claypign )
{
DRIVER_INIT_CALL(exidy440);
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x2ec0, 0x2ec3, FUNC(claypign_protection_r));
+ exidy440_state *state = machine.driver_data<exidy440_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x2ec0, 0x2ec3, read8_delegate(FUNC(exidy440_state::claypign_protection_r),state));
}
@@ -1953,11 +1949,11 @@ static DRIVER_INIT( topsecex )
DRIVER_INIT_CALL(exidy440);
/* extra input ports and scrolling */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x2ec5, 0x2ec5, FUNC(topsecex_input_port_5_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x2ec5, 0x2ec5, read8_delegate(FUNC(exidy440_state::topsecex_input_port_5_r),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_port(0x2ec6, 0x2ec6, "AN0");
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_port(0x2ec7, 0x2ec7, "IN4");
- state->m_topsecex_yscroll = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x2ec1, 0x2ec1, FUNC(topsecex_yscroll_w));
+ state->m_topsecex_yscroll = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x2ec1, 0x2ec1, write8_delegate(FUNC(exidy440_state::topsecex_yscroll_w),state));
}
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index ee2cf1073fe..e7072dae9d6 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -217,13 +217,12 @@ Stephh's notes (based on the games M6502 code and some tests) :
/* Emulate Protection ( only for original express raider, code is cracked on the bootleg */
/*****************************************************************************************/
-static READ8_HANDLER( exprraid_protection_r )
+READ8_MEMBER(exprraid_state::exprraid_protection_r)
{
- exprraid_state *state = space->machine().driver_data<exprraid_state>();
switch (offset)
{
case 0:
- return state->m_main_ram[0x02a9];
+ return m_main_ram[0x02a9];
case 1:
return 0x02;
}
@@ -231,16 +230,15 @@ static READ8_HANDLER( exprraid_protection_r )
return 0;
}
-static WRITE8_HANDLER( sound_cpu_command_w )
+WRITE8_MEMBER(exprraid_state::sound_cpu_command_w)
{
- exprraid_state *state = space->machine().driver_data<exprraid_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_slave, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
}
-static READ8_HANDLER( vblank_r )
+READ8_MEMBER(exprraid_state::vblank_r)
{
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
}
static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, exprraid_state )
@@ -255,10 +253,10 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, exprraid_state )
AM_RANGE(0x1802, 0x1802) AM_READ_PORT("IN2") /* Coins */
AM_RANGE(0x1803, 0x1803) AM_READ_PORT("DSW1") /* DSW 1 */
AM_RANGE(0x2000, 0x2000) AM_WRITENOP // ???
- AM_RANGE(0x2001, 0x2001) AM_WRITE_LEGACY(sound_cpu_command_w)
+ AM_RANGE(0x2001, 0x2001) AM_WRITE(sound_cpu_command_w)
AM_RANGE(0x2002, 0x2002) AM_WRITE_LEGACY(exprraid_flipscreen_w)
AM_RANGE(0x2003, 0x2003) AM_WRITENOP // ???
- AM_RANGE(0x2800, 0x2801) AM_READ_LEGACY(exprraid_protection_r)
+ AM_RANGE(0x2800, 0x2801) AM_READ(exprraid_protection_r)
AM_RANGE(0x2800, 0x2803) AM_WRITE_LEGACY(exprraid_bgselect_w)
AM_RANGE(0x2804, 0x2804) AM_WRITE_LEGACY(exprraid_scrolly_w)
AM_RANGE(0x2805, 0x2806) AM_WRITE_LEGACY(exprraid_scrollx_w)
@@ -777,13 +775,15 @@ static DRIVER_INIT( exprraid )
static DRIVER_INIT( wexpressb )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x3800, 0x3800, FUNC(vblank_r));
+ exprraid_state *state = machine.driver_data<exprraid_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x3800, 0x3800, read8_delegate(FUNC(exprraid_state::vblank_r),state));
exprraid_gfx_expand(machine);
}
static DRIVER_INIT( wexpressb2 )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xFFC0, 0xFFC0, FUNC(vblank_r));
+ exprraid_state *state = machine.driver_data<exprraid_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xFFC0, 0xFFC0, read8_delegate(FUNC(exprraid_state::vblank_r),state));
exprraid_gfx_expand(machine);
}
diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c
index ea4c57a439a..cb24b0589cc 100644
--- a/src/mame/drivers/exterm.c
+++ b/src/mame/drivers/exterm.c
@@ -76,15 +76,15 @@
*
*************************************/
-static WRITE16_HANDLER( exterm_host_data_w )
+WRITE16_MEMBER(exterm_state::exterm_host_data_w)
{
- tms34010_host_w(space->machine().device("slave"), offset / TOWORD(0x00100000), data);
+ tms34010_host_w(machine().device("slave"), offset / TOWORD(0x00100000), data);
}
-static READ16_HANDLER( exterm_host_data_r )
+READ16_MEMBER(exterm_state::exterm_host_data_r)
{
- return tms34010_host_r(space->machine().device("slave"), offset / TOWORD(0x00100000));
+ return tms34010_host_r(machine().device("slave"), offset / TOWORD(0x00100000));
}
@@ -123,15 +123,15 @@ static UINT16 exterm_trackball_port_r(address_space *space, int which, UINT16 me
}
-static READ16_HANDLER( exterm_input_port_0_r )
+READ16_MEMBER(exterm_state::exterm_input_port_0_r)
{
- return exterm_trackball_port_r(space, 0, mem_mask);
+ return exterm_trackball_port_r(&space, 0, mem_mask);
}
-static READ16_HANDLER( exterm_input_port_1_r )
+READ16_MEMBER(exterm_state::exterm_input_port_1_r)
{
- return exterm_trackball_port_r(space, 1, mem_mask);
+ return exterm_trackball_port_r(&space, 1, mem_mask);
}
@@ -142,32 +142,31 @@ static READ16_HANDLER( exterm_input_port_1_r )
*
*************************************/
-static WRITE16_HANDLER( exterm_output_port_0_w )
+WRITE16_MEMBER(exterm_state::exterm_output_port_0_w)
{
- exterm_state *state = space->machine().driver_data<exterm_state>();
/* All the outputs are activated on the rising edge */
if (ACCESSING_BITS_0_7)
{
/* Bit 0-1= Resets analog controls */
- if ((data & 0x0001) && !(state->m_last & 0x0001))
- state->m_aimpos[0] = 0;
- if ((data & 0x0002) && !(state->m_last & 0x0002))
- state->m_aimpos[1] = 0;
+ if ((data & 0x0001) && !(m_last & 0x0001))
+ m_aimpos[0] = 0;
+ if ((data & 0x0002) && !(m_last & 0x0002))
+ m_aimpos[1] = 0;
}
if (ACCESSING_BITS_8_15)
{
/* Bit 13 = Resets the slave CPU */
- if ((data & 0x2000) && !(state->m_last & 0x2000))
- cputag_set_input_line(space->machine(), "slave", INPUT_LINE_RESET, PULSE_LINE);
+ if ((data & 0x2000) && !(m_last & 0x2000))
+ cputag_set_input_line(machine(), "slave", INPUT_LINE_RESET, PULSE_LINE);
/* Bits 14-15 = Coin counters */
- coin_counter_w(space->machine(), 0, data & 0x8000);
- coin_counter_w(space->machine(), 1, data & 0x4000);
+ coin_counter_w(machine(), 0, data & 0x8000);
+ coin_counter_w(machine(), 1, data & 0x4000);
}
- COMBINE_DATA(&state->m_last);
+ COMBINE_DATA(&m_last);
}
@@ -181,10 +180,10 @@ static TIMER_CALLBACK( sound_delayed_w )
}
-static WRITE16_HANDLER( sound_latch_w )
+WRITE16_MEMBER(exterm_state::sound_latch_w)
{
if (ACCESSING_BITS_0_7)
- space->machine().scheduler().synchronize(FUNC(sound_delayed_w), data & 0xff);
+ machine().scheduler().synchronize(FUNC(sound_delayed_w), data & 0xff);
}
@@ -212,32 +211,30 @@ static WRITE8_DEVICE_HANDLER( ym2151_data_latch_w )
}
-static WRITE8_HANDLER( sound_nmi_rate_w )
+WRITE8_MEMBER(exterm_state::sound_nmi_rate_w)
{
/* rate is controlled by the value written here */
/* this value is latched into up-counters, which are clocked at the */
/* input clock / 256 */
attotime nmi_rate = attotime::from_hz(4000000) * (4096 * (256 - data));
- timer_device *nmi_timer = space->machine().device<timer_device>("snd_nmi_timer");
+ timer_device *nmi_timer = machine().device<timer_device>("snd_nmi_timer");
nmi_timer->adjust(nmi_rate, 0, nmi_rate);
}
-static READ8_HANDLER( sound_master_latch_r )
+READ8_MEMBER(exterm_state::sound_master_latch_r)
{
- exterm_state *state = space->machine().driver_data<exterm_state>();
/* read latch and clear interrupt */
- cputag_set_input_line(space->machine(), "audiocpu", M6502_IRQ_LINE, CLEAR_LINE);
- return state->m_master_sound_latch;
+ cputag_set_input_line(machine(), "audiocpu", M6502_IRQ_LINE, CLEAR_LINE);
+ return m_master_sound_latch;
}
-static READ8_HANDLER( sound_slave_latch_r )
+READ8_MEMBER(exterm_state::sound_slave_latch_r)
{
- exterm_state *state = space->machine().driver_data<exterm_state>();
/* read latch and clear interrupt */
- cputag_set_input_line(space->machine(), "audioslave", M6502_IRQ_LINE, CLEAR_LINE);
- return state->m_slave_sound_latch;
+ cputag_set_input_line(machine(), "audioslave", M6502_IRQ_LINE, CLEAR_LINE);
+ return m_slave_sound_latch;
}
@@ -250,17 +247,16 @@ static WRITE8_DEVICE_HANDLER( sound_slave_dac_w )
}
-static READ8_HANDLER( sound_nmi_to_slave_r )
+READ8_MEMBER(exterm_state::sound_nmi_to_slave_r)
{
/* a read from here triggers an NMI pulse to the slave */
- cputag_set_input_line(space->machine(), "audioslave", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audioslave", INPUT_LINE_NMI, PULSE_LINE);
return 0xff;
}
-static WRITE8_HANDLER( sound_control_w )
+WRITE8_MEMBER(exterm_state::sound_control_w)
{
- exterm_state *state = space->machine().driver_data<exterm_state>();
/*
D7 = to S4-15
D6 = to S4-12
@@ -268,7 +264,7 @@ static WRITE8_HANDLER( sound_control_w )
D1 = to LED
D0 = enable NMI timer
*/
- state->m_sound_control = data;
+ m_sound_control = data;
}
@@ -283,12 +279,12 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16, exterm_state )
AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, tms34010_io_register_w)
AM_RANGE(0x00000000, 0x000fffff) AM_MIRROR(0xfc700000) AM_RAM AM_BASE(m_master_videoram)
AM_RANGE(0x00800000, 0x00bfffff) AM_MIRROR(0xfc400000) AM_RAM
- AM_RANGE(0x01000000, 0x013fffff) AM_MIRROR(0xfc000000) AM_READWRITE_LEGACY(exterm_host_data_r, exterm_host_data_w)
- AM_RANGE(0x01400000, 0x0143ffff) AM_MIRROR(0xfc000000) AM_READ_LEGACY(exterm_input_port_0_r)
- AM_RANGE(0x01440000, 0x0147ffff) AM_MIRROR(0xfc000000) AM_READ_LEGACY(exterm_input_port_1_r)
+ AM_RANGE(0x01000000, 0x013fffff) AM_MIRROR(0xfc000000) AM_READWRITE(exterm_host_data_r, exterm_host_data_w)
+ AM_RANGE(0x01400000, 0x0143ffff) AM_MIRROR(0xfc000000) AM_READ(exterm_input_port_0_r)
+ AM_RANGE(0x01440000, 0x0147ffff) AM_MIRROR(0xfc000000) AM_READ(exterm_input_port_1_r)
AM_RANGE(0x01480000, 0x014bffff) AM_MIRROR(0xfc000000) AM_READ_PORT("DSW")
- AM_RANGE(0x01500000, 0x0153ffff) AM_MIRROR(0xfc000000) AM_WRITE_LEGACY(exterm_output_port_0_w)
- AM_RANGE(0x01580000, 0x015bffff) AM_MIRROR(0xfc000000) AM_WRITE_LEGACY(sound_latch_w)
+ AM_RANGE(0x01500000, 0x0153ffff) AM_MIRROR(0xfc000000) AM_WRITE(exterm_output_port_0_w)
+ AM_RANGE(0x01580000, 0x015bffff) AM_MIRROR(0xfc000000) AM_WRITE(sound_latch_w)
AM_RANGE(0x015c0000, 0x015fffff) AM_MIRROR(0xfc000000) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x01800000, 0x01807fff) AM_MIRROR(0xfc7f8000) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x02800000, 0x02807fff) AM_MIRROR(0xfc7f8000) AM_RAM AM_SHARE("nvram")
@@ -313,18 +309,18 @@ 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(0x6000, 0x67ff) AM_WRITE_LEGACY(sound_nmi_rate_w)
- AM_RANGE(0x6800, 0x6fff) AM_READ_LEGACY(sound_master_latch_r)
- AM_RANGE(0x7000, 0x77ff) AM_READ_LEGACY(sound_nmi_to_slave_r)
+ 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)
/* AM_RANGE(0x7800, 0x7fff) unknown - to S4-13 */
- AM_RANGE(0xa000, 0xbfff) AM_WRITE_LEGACY(sound_control_w)
+ AM_RANGE(0xa000, 0xbfff) AM_WRITE(sound_control_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
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_LEGACY(sound_slave_latch_r)
+ 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, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c
index 76dcdb500d1..f1660c95118 100644
--- a/src/mame/drivers/exzisus.c
+++ b/src/mame/drivers/exzisus.c
@@ -46,76 +46,70 @@ TODO:
***************************************************************************/
-static WRITE8_HANDLER( exzisus_cpua_bankswitch_w )
+WRITE8_MEMBER(exzisus_state::exzisus_cpua_bankswitch_w)
{
- exzisus_state *state = space->machine().driver_data<exzisus_state>();
- UINT8 *RAM = space->machine().region("cpua")->base();
+ UINT8 *RAM = machine().region("cpua")->base();
- if ( (data & 0x0f) != state->m_cpua_bank )
+ if ( (data & 0x0f) != m_cpua_bank )
{
- state->m_cpua_bank = data & 0x0f;
- if (state->m_cpua_bank >= 2)
+ m_cpua_bank = data & 0x0f;
+ if (m_cpua_bank >= 2)
{
- memory_set_bankptr(space->machine(), "bank2", &RAM[ 0x10000 + ( (state->m_cpua_bank - 2) * 0x4000 ) ] );
+ memory_set_bankptr(machine(), "bank2", &RAM[ 0x10000 + ( (m_cpua_bank - 2) * 0x4000 ) ] );
}
}
- flip_screen_set(space->machine(), data & 0x40);
+ flip_screen_set(machine(), data & 0x40);
}
-static WRITE8_HANDLER( exzisus_cpub_bankswitch_w )
+WRITE8_MEMBER(exzisus_state::exzisus_cpub_bankswitch_w)
{
- exzisus_state *state = space->machine().driver_data<exzisus_state>();
- UINT8 *RAM = space->machine().region("cpub")->base();
+ UINT8 *RAM = machine().region("cpub")->base();
- if ( (data & 0x0f) != state->m_cpub_bank )
+ if ( (data & 0x0f) != m_cpub_bank )
{
- state->m_cpub_bank = data & 0x0f;
- if (state->m_cpub_bank >= 2)
+ m_cpub_bank = data & 0x0f;
+ if (m_cpub_bank >= 2)
{
- memory_set_bankptr(space->machine(), "bank1", &RAM[ 0x10000 + ( (state->m_cpub_bank - 2) * 0x4000 ) ] );
+ memory_set_bankptr(machine(), "bank1", &RAM[ 0x10000 + ( (m_cpub_bank - 2) * 0x4000 ) ] );
}
}
- flip_screen_set(space->machine(), data & 0x40);
+ flip_screen_set(machine(), data & 0x40);
}
-static WRITE8_HANDLER( exzisus_coincounter_w )
+WRITE8_MEMBER(exzisus_state::exzisus_coincounter_w)
{
- coin_lockout_w(space->machine(), 0,~data & 0x01);
- coin_lockout_w(space->machine(), 1,~data & 0x02);
- coin_counter_w(space->machine(), 0,data & 0x04);
- coin_counter_w(space->machine(), 1,data & 0x08);
+ coin_lockout_w(machine(), 0,~data & 0x01);
+ coin_lockout_w(machine(), 1,~data & 0x02);
+ coin_counter_w(machine(), 0,data & 0x04);
+ coin_counter_w(machine(), 1,data & 0x08);
}
-static READ8_HANDLER( exzisus_sharedram_ab_r )
+READ8_MEMBER(exzisus_state::exzisus_sharedram_ab_r)
{
- exzisus_state *state = space->machine().driver_data<exzisus_state>();
- return state->m_sharedram_ab[offset];
+ return m_sharedram_ab[offset];
}
-static READ8_HANDLER( exzisus_sharedram_ac_r )
+READ8_MEMBER(exzisus_state::exzisus_sharedram_ac_r)
{
- exzisus_state *state = space->machine().driver_data<exzisus_state>();
- return state->m_sharedram_ac[offset];
+ return m_sharedram_ac[offset];
}
-static WRITE8_HANDLER( exzisus_sharedram_ab_w )
+WRITE8_MEMBER(exzisus_state::exzisus_sharedram_ab_w)
{
- exzisus_state *state = space->machine().driver_data<exzisus_state>();
- state->m_sharedram_ab[offset] = data;
+ m_sharedram_ab[offset] = data;
}
-static WRITE8_HANDLER( exzisus_sharedram_ac_w )
+WRITE8_MEMBER(exzisus_state::exzisus_sharedram_ac_w)
{
- exzisus_state *state = space->machine().driver_data<exzisus_state>();
- state->m_sharedram_ac[offset] = data;
+ m_sharedram_ac[offset] = data;
}
// is it ok that cpub_reset refers to cpuc?
-static WRITE8_HANDLER( exzisus_cpub_reset_w )
+WRITE8_MEMBER(exzisus_state::exzisus_cpub_reset_w)
{
- cputag_set_input_line(space->machine(), "cpuc", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "cpuc", INPUT_LINE_RESET, PULSE_LINE);
}
#if 0
@@ -145,10 +139,10 @@ static ADDRESS_MAP_START( cpua_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xc000, 0xc5ff) AM_READWRITE_LEGACY(exzisus_objectram_1_r, exzisus_objectram_1_w) AM_BASE(m_objectram1) AM_SIZE(m_objectram_size1)
AM_RANGE(0xc600, 0xdfff) AM_READWRITE_LEGACY(exzisus_videoram_1_r, exzisus_videoram_1_w) AM_BASE(m_videoram1)
- AM_RANGE(0xe000, 0xefff) AM_READWRITE_LEGACY(exzisus_sharedram_ac_r, exzisus_sharedram_ac_w) AM_BASE(m_sharedram_ac)
- AM_RANGE(0xf400, 0xf400) AM_WRITE_LEGACY(exzisus_cpua_bankswitch_w)
- AM_RANGE(0xf404, 0xf404) AM_WRITE_LEGACY(exzisus_cpub_reset_w) // ??
- AM_RANGE(0xf800, 0xffff) AM_READWRITE_LEGACY(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w) AM_BASE(m_sharedram_ab)
+ AM_RANGE(0xe000, 0xefff) AM_READWRITE(exzisus_sharedram_ac_r, exzisus_sharedram_ac_w) AM_BASE(m_sharedram_ac)
+ AM_RANGE(0xf400, 0xf400) AM_WRITE(exzisus_cpua_bankswitch_w)
+ AM_RANGE(0xf404, 0xf404) AM_WRITE(exzisus_cpub_reset_w) // ??
+ AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w) AM_BASE(m_sharedram_ab)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8, exzisus_state )
@@ -160,21 +154,21 @@ static ADDRESS_MAP_START( cpub_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0xf000, 0xf000) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_port_w)
AM_RANGE(0xf001, 0xf001) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w)
AM_RANGE(0xf400, 0xf400) AM_READ_PORT("P1")
- AM_RANGE(0xf400, 0xf400) AM_WRITE_LEGACY(exzisus_cpub_bankswitch_w)
+ AM_RANGE(0xf400, 0xf400) AM_WRITE(exzisus_cpub_bankswitch_w)
AM_RANGE(0xf401, 0xf401) AM_READ_PORT("P2")
AM_RANGE(0xf402, 0xf402) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xf402, 0xf402) AM_WRITE_LEGACY(exzisus_coincounter_w)
+ AM_RANGE(0xf402, 0xf402) AM_WRITE(exzisus_coincounter_w)
AM_RANGE(0xf404, 0xf404) AM_READ_PORT("DSWA")
AM_RANGE(0xf404, 0xf404) AM_WRITENOP // ??
AM_RANGE(0xf405, 0xf405) AM_READ_PORT("DSWB")
- AM_RANGE(0xf800, 0xffff) AM_READWRITE_LEGACY(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w)
+ AM_RANGE(0xf800, 0xffff) AM_READWRITE(exzisus_sharedram_ab_r, exzisus_sharedram_ab_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpuc_map, AS_PROGRAM, 8, exzisus_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x85ff) AM_READWRITE_LEGACY(exzisus_objectram_1_r, exzisus_objectram_1_w)
AM_RANGE(0x8600, 0x9fff) AM_READWRITE_LEGACY(exzisus_videoram_1_r, exzisus_videoram_1_w)
- AM_RANGE(0xa000, 0xafff) AM_READWRITE_LEGACY(exzisus_sharedram_ac_r, exzisus_sharedram_ac_w)
+ AM_RANGE(0xa000, 0xafff) AM_READWRITE(exzisus_sharedram_ac_r, exzisus_sharedram_ac_w)
AM_RANGE(0xb000, 0xbfff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index c47fb802244..7963b623a6c 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -31,71 +31,66 @@
#include "includes/f1gp.h"
-static READ16_HANDLER( sharedram_r )
+READ16_MEMBER(f1gp_state::sharedram_r)
{
- f1gp_state *state = space->machine().driver_data<f1gp_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE16_HANDLER( sharedram_w )
+WRITE16_MEMBER(f1gp_state::sharedram_w)
{
- f1gp_state *state = space->machine().driver_data<f1gp_state>();
- COMBINE_DATA(&state->m_sharedram[offset]);
+ COMBINE_DATA(&m_sharedram[offset]);
}
-static READ16_HANDLER( extrarom_r )
+READ16_MEMBER(f1gp_state::extrarom_r)
{
- UINT8 *rom = space->machine().region("user1")->base();
+ UINT8 *rom = machine().region("user1")->base();
offset *= 2;
return rom[offset] | (rom[offset + 1] << 8);
}
-static READ16_HANDLER( extrarom2_r )
+READ16_MEMBER(f1gp_state::extrarom2_r)
{
- UINT8 *rom = space->machine().region("user2")->base();
+ UINT8 *rom = machine().region("user2")->base();
offset *= 2;
return rom[offset] | (rom[offset + 1] << 8);
}
-static WRITE8_HANDLER( f1gp_sh_bankswitch_w )
+WRITE8_MEMBER(f1gp_state::f1gp_sh_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(f1gp_state::sound_command_w)
{
- f1gp_state *state = space->machine().driver_data<f1gp_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
-static READ16_HANDLER( command_pending_r )
+READ16_MEMBER(f1gp_state::command_pending_r)
{
- f1gp_state *state = space->machine().driver_data<f1gp_state>();
- return (state->m_pending_command ? 0xff : 0);
+ return (m_pending_command ? 0xff : 0);
}
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(f1gp_state::pending_command_clear_w)
{
- f1gp_state *state = space->machine().driver_data<f1gp_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x2fffff) AM_READ_LEGACY(extrarom_r)
- AM_RANGE(0xa00000, 0xbfffff) AM_READ_LEGACY(extrarom2_r)
+ AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
+ AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r)
AM_RANGE(0xc00000, 0xc3ffff) AM_READWRITE_LEGACY(f1gp_zoomdata_r, f1gp_zoomdata_w)
AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(m_rozvideoram)
AM_RANGE(0xd02000, 0xd03fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) /* mirror */
@@ -106,7 +101,7 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xf00000, 0xf003ff) AM_RAM AM_BASE(m_spr1vram) // SPR-1 VRAM
AM_RANGE(0xf10000, 0xf103ff) AM_RAM AM_BASE(m_spr2vram) // SPR-2 VRAM
AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1
- AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE_LEGACY(f1gp_fgvideoram_w) AM_BASE(m_fgvideoram) // CHARACTER
AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // PALETTE
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS")
@@ -115,27 +110,27 @@ static ADDRESS_MAP_START( f1gp_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1")
AM_RANGE(0xfff002, 0xfff005) AM_WRITE_LEGACY(f1gp_fgscroll_w)
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
- AM_RANGE(0xfff008, 0xfff009) AM_READ_LEGACY(command_pending_r)
- AM_RANGE(0xfff008, 0xfff009) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r)
+ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
AM_RANGE(0xfff040, 0xfff05f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w)
AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3")
ADDRESS_MAP_END
static ADDRESS_MAP_START( f1gp2_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x2fffff) AM_READ_LEGACY(extrarom_r)
+ AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE(m_sprcgram) // SPR-1 CG RAM + SPR-2 CG RAM
AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(m_rozvideoram) // BACK VRAM
AM_RANGE(0xe00000, 0xe00fff) AM_RAM AM_BASE(m_spritelist) // not checked + SPR-1 VRAM + SPR-2 VRAM
AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1
- AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram) // DUAL RAM
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE_LEGACY(f1gp_fgvideoram_w) AM_BASE(m_fgvideoram) // CHARACTER
AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // PALETTE
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(f1gp2_gfxctrl_w)
// AM_RANGE(0xfff002, 0xfff003) analog wheel?
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1")
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
- AM_RANGE(0xfff008, 0xfff009) AM_READWRITE_LEGACY(command_pending_r, sound_command_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_READWRITE(command_pending_r, sound_command_w)
AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW3")
AM_RANGE(0xfff020, 0xfff03f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w)
AM_RANGE(0xfff044, 0xfff047) AM_WRITE_LEGACY(f1gp_fgscroll_w)
@@ -144,7 +139,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( f1gp_cpu2_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0xff8000, 0xffbfff) AM_RAM
- AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w)
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, f1gp_state )
@@ -155,13 +150,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, f1gp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(f1gp_sh_bankswitch_w) // f1gp
- AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(f1gp_sh_bankswitch_w) // f1gp2
- AM_RANGE(0x14, 0x14) AM_READWRITE_LEGACY(soundlatch_r, pending_command_clear_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp
+ AM_RANGE(0x0c, 0x0c) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp2
+ AM_RANGE(0x14, 0x14) AM_READ_LEGACY(soundlatch_r) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
ADDRESS_MAP_END
-static WRITE16_HANDLER( f1gpb_misc_w )
+WRITE16_MEMBER(f1gp_state::f1gpb_misc_w)
{
/*
static int old=-1;
@@ -171,8 +166,8 @@ static WRITE16_HANDLER( f1gpb_misc_w )
if(old_bank != new_bank && new_bank < 5)
{
// oki banking
- UINT8 *src = space->machine().region("oki")->base() + 0x40000 + 0x10000 * new_bank;
- UINT8 *dst = space->machine().region("oki")->base() + 0x30000;
+ UINT8 *src = machine().region("oki")->base() + 0x40000 + 0x10000 * new_bank;
+ UINT8 *dst = machine().region("oki")->base() + 0x30000;
memcpy(dst, src, 0x10000);
old_bank = new_bank;
@@ -188,8 +183,8 @@ static WRITE16_HANDLER( f1gpb_misc_w )
static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x2fffff) AM_READ_LEGACY(extrarom_r)
- AM_RANGE(0xa00000, 0xbfffff) AM_READ_LEGACY(extrarom2_r)
+ AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
+ AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r)
AM_RANGE(0x800000, 0x801fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xc00000, 0xc3ffff) AM_READWRITE_LEGACY(f1gp_zoomdata_r, f1gp_zoomdata_w)
AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(m_rozvideoram)
@@ -201,7 +196,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xf00000, 0xf003ff) AM_RAM //unused
AM_RANGE(0xf10000, 0xf103ff) AM_RAM //unused
AM_RANGE(0xff8000, 0xffbfff) AM_RAM
- AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE_LEGACY(f1gp_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS")
@@ -211,7 +206,7 @@ static ADDRESS_MAP_START( f1gpb_cpu1_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0xfff006, 0xfff007) AM_WRITENOP
AM_RANGE(0xfff00a, 0xfff00b) AM_RAM AM_BASE(m_fgregs)
AM_RANGE(0xfff00e, 0xfff00f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE_LEGACY(f1gpb_misc_w)
+ AM_RANGE(0xfff00c, 0xfff00d) AM_WRITE(f1gpb_misc_w)
AM_RANGE(0xfff010, 0xfff011) AM_WRITENOP
AM_RANGE(0xfff020, 0xfff023) AM_RAM //?
AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3")
@@ -221,7 +216,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( f1gpb_cpu2_map, AS_PROGRAM, 16, f1gp_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0xff8000, 0xffbfff) AM_RAM
- AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w)
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w)
AM_RANGE(0xfff030, 0xfff031) AM_NOP //?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index 04eb9866cd5..dddb2600333 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -59,29 +59,27 @@ Year + Game Main CPU Sound CPU Sound Video
***************************************************************************/
-static WRITE8_HANDLER( fantland_nmi_enable_w )
+WRITE8_MEMBER(fantland_state::fantland_nmi_enable_w)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
- if ((state->m_nmi_enable != 0) && (state->m_nmi_enable != 8))
- logerror("CPU #0 PC = %04X: nmi_enable = %02x\n", cpu_get_pc(&space->device()), data);
+ if ((m_nmi_enable != 0) && (m_nmi_enable != 8))
+ logerror("CPU #0 PC = %04X: nmi_enable = %02x\n", cpu_get_pc(&space.device()), data);
}
-static WRITE16_HANDLER( fantland_nmi_enable_16_w )
+WRITE16_MEMBER(fantland_state::fantland_nmi_enable_16_w)
{
if (ACCESSING_BITS_0_7)
fantland_nmi_enable_w(space, offset * 2, data);
}
-static WRITE8_HANDLER( fantland_soundlatch_w )
+WRITE8_MEMBER(fantland_state::fantland_soundlatch_w)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE16_HANDLER( fantland_soundlatch_16_w )
+WRITE16_MEMBER(fantland_state::fantland_soundlatch_16_w)
{
if (ACCESSING_BITS_0_7)
fantland_soundlatch_w(space, offset * 2, data);
@@ -91,34 +89,30 @@ static WRITE16_HANDLER( fantland_soundlatch_16_w )
Fantasy Land
***************************************************************************/
-static READ16_HANDLER( spriteram_16_r )
+READ16_MEMBER(fantland_state::spriteram_16_r)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
return spriteram[2 * offset + 0] | (spriteram[2 * offset + 1] << 8);
}
-static READ16_HANDLER( spriteram2_16_r )
+READ16_MEMBER(fantland_state::spriteram2_16_r)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
- UINT8 *spriteram_2 = state->m_spriteram2;
+ UINT8 *spriteram_2 = m_spriteram2;
return spriteram_2[2 * offset + 0] | (spriteram_2[2 * offset + 1] << 8);
}
-static WRITE16_HANDLER( spriteram_16_w )
+WRITE16_MEMBER(fantland_state::spriteram_16_w)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
if (ACCESSING_BITS_0_7)
spriteram[2 * offset + 0] = data;
if (ACCESSING_BITS_8_15)
spriteram[2 * offset + 1] = data >> 8;
}
-static WRITE16_HANDLER( spriteram2_16_w )
+WRITE16_MEMBER(fantland_state::spriteram2_16_w)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
- UINT8 *spriteram_2 = state->m_spriteram2;
+ UINT8 *spriteram_2 = m_spriteram2;
if (ACCESSING_BITS_0_7)
spriteram_2[2 * offset + 0] = data;
if (ACCESSING_BITS_8_15)
@@ -131,11 +125,11 @@ static ADDRESS_MAP_START( fantland_map, AS_PROGRAM, 16, fantland_state )
AM_RANGE( 0xa2000, 0xa21ff ) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w ) AM_BASE_GENERIC( paletteram )
- AM_RANGE( 0xa3000, 0xa3001 ) AM_READ_PORT("a3000") AM_WRITE_LEGACY(fantland_nmi_enable_16_w )
- AM_RANGE( 0xa3002, 0xa3003 ) AM_READ_PORT("a3002") AM_WRITE_LEGACY(fantland_soundlatch_16_w )
+ AM_RANGE( 0xa3000, 0xa3001 ) AM_READ_PORT("a3000") AM_WRITE(fantland_nmi_enable_16_w )
+ AM_RANGE( 0xa3002, 0xa3003 ) AM_READ_PORT("a3002") AM_WRITE(fantland_soundlatch_16_w )
- AM_RANGE( 0xa4000, 0xa67ff ) AM_READWRITE_LEGACY(spriteram_16_r, spriteram_16_w ) AM_BASE(m_spriteram)
- AM_RANGE( 0xc0000, 0xcffff ) AM_READWRITE_LEGACY(spriteram2_16_r, spriteram2_16_w ) AM_BASE(m_spriteram2)
+ AM_RANGE( 0xa4000, 0xa67ff ) AM_READWRITE(spriteram_16_r, spriteram_16_w ) AM_BASE(m_spriteram)
+ AM_RANGE( 0xc0000, 0xcffff ) AM_READWRITE(spriteram2_16_r, spriteram2_16_w ) AM_BASE(m_spriteram2)
AM_RANGE( 0xe0000, 0xfffff ) AM_ROM
ADDRESS_MAP_END
@@ -151,9 +145,9 @@ static ADDRESS_MAP_START( galaxygn_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE_LEGACY(paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
- AM_RANGE( 0x53000, 0x53000 ) AM_READ_PORT("P1") AM_WRITE_LEGACY(fantland_nmi_enable_w )
+ AM_RANGE( 0x53000, 0x53000 ) AM_READ_PORT("P1") AM_WRITE(fantland_nmi_enable_w )
AM_RANGE( 0x53001, 0x53001 ) AM_READ_PORT("P2")
- AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(fantland_soundlatch_w )
+ AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT("DSW1") AM_WRITE(fantland_soundlatch_w )
AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT("P2")
AM_RANGE( 0x54000, 0x567ff ) AM_RAM AM_BASE(m_spriteram)
@@ -168,75 +162,73 @@ ADDRESS_MAP_END
Born To Fight
***************************************************************************/
-static WRITE8_HANDLER( borntofi_nmi_enable_w )
+WRITE8_MEMBER(fantland_state::borntofi_nmi_enable_w)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
// data & 0x31 changes when lightgun fires
- if ((state->m_nmi_enable != 0) && (state->m_nmi_enable != 8))
- logerror("CPU #0 PC = %04X: nmi_enable = %02x\n", cpu_get_pc(&space->device()), data);
+ if ((m_nmi_enable != 0) && (m_nmi_enable != 8))
+ logerror("CPU #0 PC = %04X: nmi_enable = %02x\n", cpu_get_pc(&space.device()), data);
// popmessage("%02X", data);
}
// Trackball doesn't work correctly
-static READ8_HANDLER( borntofi_inputs_r )
+READ8_MEMBER(fantland_state::borntofi_inputs_r)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
int x, y, f;
- switch (input_port_read(space->machine(), "Controls") & 0x03)
+ switch (input_port_read(machine(), "Controls") & 0x03)
{
case 3:
- case 1: return input_port_read(space->machine(), offset ? "P2_GUN" : "P1_GUN"); // Lightgun buttons
- case 2: return input_port_read(space->machine(), offset ? "P2_JOY" : "P1_JOY"); // Joystick
+ case 1: return input_port_read(machine(), offset ? "P2_GUN" : "P1_GUN"); // Lightgun buttons
+ case 2: return input_port_read(machine(), offset ? "P2_JOY" : "P1_JOY"); // Joystick
}
// Trackball
- x = input_port_read(space->machine(), offset ? "P2 Trackball X" : "P1 Trackball X");
- y = input_port_read(space->machine(), offset ? "P2 Trackball Y" : "P1 Trackball Y");
- f = space->machine().primary_screen->frame_number();
+ x = input_port_read(machine(), offset ? "P2 Trackball X" : "P1 Trackball X");
+ y = input_port_read(machine(), offset ? "P2 Trackball Y" : "P1 Trackball Y");
+ f = machine().primary_screen->frame_number();
- state->m_input_ret[offset] = (state->m_input_ret[offset] & 0x14) | (input_port_read(space->machine(), offset ? "P2_TRACK" : "P1_TRACK") & 0xc3);
+ m_input_ret[offset] = (m_input_ret[offset] & 0x14) | (input_port_read(machine(), offset ? "P2_TRACK" : "P1_TRACK") & 0xc3);
x = (x & 0x7f) - (x & 0x80);
y = (y & 0x7f) - (y & 0x80);
- if (state->m_old_x[offset] > 0)
+ if (m_old_x[offset] > 0)
{
- state->m_input_ret[offset] = (state->m_input_ret[offset] ^ 0x04) | ((state->m_input_ret[offset] & 0x04) << 1);
- state->m_old_x[offset]--;
+ m_input_ret[offset] = (m_input_ret[offset] ^ 0x04) | ((m_input_ret[offset] & 0x04) << 1);
+ m_old_x[offset]--;
}
- else if (state->m_old_x[offset] < 0)
+ else if (m_old_x[offset] < 0)
{
- state->m_input_ret[offset] = (state->m_input_ret[offset] ^ 0x04) | (((~state->m_input_ret[offset]) & 0x04) << 1);
- state->m_old_x[offset]++;
+ m_input_ret[offset] = (m_input_ret[offset] ^ 0x04) | (((~m_input_ret[offset]) & 0x04) << 1);
+ m_old_x[offset]++;
}
- if (state->m_old_y[offset] > 0)
+ if (m_old_y[offset] > 0)
{
- state->m_input_ret[offset] = (state->m_input_ret[offset] ^ 0x10) | ((state->m_input_ret[offset] & 0x10) << 1);
- state->m_old_y[offset]--;
+ m_input_ret[offset] = (m_input_ret[offset] ^ 0x10) | ((m_input_ret[offset] & 0x10) << 1);
+ m_old_y[offset]--;
}
- else if (state->m_old_y[offset] < 0)
+ else if (m_old_y[offset] < 0)
{
- state->m_input_ret[offset] = (state->m_input_ret[offset] ^ 0x10) | (((~state->m_input_ret[offset]) & 0x10) << 1);
- state->m_old_y[offset]++;
+ m_input_ret[offset] = (m_input_ret[offset] ^ 0x10) | (((~m_input_ret[offset]) & 0x10) << 1);
+ m_old_y[offset]++;
}
-// if (offset == 0) popmessage("x %02d y %02d", state->m_old_x[offset], state->m_old_y[offset]);
+// if (offset == 0) popmessage("x %02d y %02d", m_old_x[offset], m_old_y[offset]);
- if ((f - state->m_old_f[offset]) > 0)
+ if ((f - m_old_f[offset]) > 0)
{
- state->m_old_x[offset] = x;
- state->m_old_y[offset] = y;
- state->m_old_f[offset] = f;
+ m_old_x[offset] = x;
+ m_old_y[offset] = y;
+ m_old_f[offset] = f;
}
- return state->m_input_ret[offset];
+ return m_input_ret[offset];
}
static ADDRESS_MAP_START( borntofi_map, AS_PROGRAM, 8, fantland_state )
@@ -244,8 +236,8 @@ static ADDRESS_MAP_START( borntofi_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x10000, 0x2ffff ) AM_ROM
AM_RANGE( 0x52000, 0x521ff ) AM_RAM_WRITE_LEGACY(paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
- AM_RANGE( 0x53000, 0x53001 ) AM_READWRITE_LEGACY(borntofi_inputs_r, borntofi_nmi_enable_w )
- AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT( "DSW" ) AM_WRITE_LEGACY(fantland_soundlatch_w )
+ AM_RANGE( 0x53000, 0x53001 ) AM_READWRITE(borntofi_inputs_r, borntofi_nmi_enable_w )
+ AM_RANGE( 0x53002, 0x53002 ) AM_READ_PORT( "DSW" ) AM_WRITE(fantland_soundlatch_w )
AM_RANGE( 0x53003, 0x53003 ) AM_READ_PORT( "Controls" )
AM_RANGE( 0x54000, 0x567ff ) AM_RAM AM_BASE(m_spriteram)
@@ -274,9 +266,9 @@ static ADDRESS_MAP_START( wheelrun_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE(0x52000, 0x521ff) AM_RAM_WRITE_LEGACY(paletteram_xRRRRRGGGGGBBBBB_le_w ) AM_BASE_GENERIC( paletteram )
- AM_RANGE(0x53000, 0x53000) AM_READ_PORT( "53000" ) AM_WRITE_LEGACY(borntofi_nmi_enable_w )
+ AM_RANGE(0x53000, 0x53000) AM_READ_PORT( "53000" ) AM_WRITE(borntofi_nmi_enable_w )
AM_RANGE(0x53001, 0x53001) AM_READ_PORT( "53001" )
- AM_RANGE(0x53002, 0x53002) AM_READ_PORT( "53002" ) AM_WRITE_LEGACY(fantland_soundlatch_w )
+ AM_RANGE(0x53002, 0x53002) AM_READ_PORT( "53002" ) AM_WRITE(fantland_soundlatch_w )
AM_RANGE(0x53003, 0x53003) AM_READ_PORT( "53003" ) AM_WRITENOP
AM_RANGE(0x54000, 0x567ff) AM_RAM AM_BASE(m_spriteram)
@@ -331,9 +323,8 @@ static void borntofi_adpcm_stop( device_t *device, int voice )
state->m_adpcm_playing[voice] = 0;
}
-static WRITE8_HANDLER( borntofi_msm5205_w )
+WRITE8_MEMBER(fantland_state::borntofi_msm5205_w)
{
- fantland_state *state = space->machine().driver_data<fantland_state>();
int voice = offset / 8;
int reg = offset % 8;
device_t *msm;
@@ -341,10 +332,10 @@ static WRITE8_HANDLER( borntofi_msm5205_w )
switch (voice)
{
default:
- case 0: msm = state->m_msm1; break;
- case 1: msm = state->m_msm2; break;
- case 2: msm = state->m_msm3; break;
- case 3: msm = state->m_msm4; break;
+ case 0: msm = m_msm1; break;
+ case 1: msm = m_msm2; break;
+ case 2: msm = m_msm3; break;
+ case 3: msm = m_msm4; break;
}
if (reg == 0)
@@ -354,7 +345,7 @@ static WRITE8_HANDLER( borntofi_msm5205_w )
{
case 0x00: borntofi_adpcm_stop(msm, voice); break;
case 0x03: borntofi_adpcm_start(msm, voice); break;
- default: logerror("CPU #0 PC = %04X: adpcm reg %d <- %02x\n", cpu_get_pc(&space->device()), reg, data);
+ default: logerror("CPU #0 PC = %04X: adpcm reg %d <- %02x\n", cpu_get_pc(&space.device()), reg, data);
}
}
else
@@ -362,8 +353,8 @@ static WRITE8_HANDLER( borntofi_msm5205_w )
int shift = (reg - 1) * 4;
int mask = ~(0xf << shift);
- state->m_adpcm_addr[0][voice] = (state->m_adpcm_addr[0][voice] & mask) | (((data & 0xf0) >> 4) << shift);
- state->m_adpcm_addr[1][voice] = (state->m_adpcm_addr[1][voice] & mask) | (((data & 0x0f) >> 0) << shift);
+ m_adpcm_addr[0][voice] = (m_adpcm_addr[0][voice] & mask) | (((data & 0xf0) >> 4) << shift);
+ m_adpcm_addr[1][voice] = (m_adpcm_addr[1][voice] & mask) | (((data & 0x0f) >> 0) << shift);
}
}
@@ -410,7 +401,7 @@ static void borntofi_adpcm_int_3(device_t *device) { borntofi_adpcm_int(device,
static ADDRESS_MAP_START( borntofi_sound_map, AS_PROGRAM, 8, fantland_state )
AM_RANGE( 0x00000, 0x003ff ) AM_RAM
AM_RANGE( 0x04000, 0x04000 ) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE( 0x04000, 0x0401f ) AM_WRITE_LEGACY(borntofi_msm5205_w)
+ AM_RANGE( 0x04000, 0x0401f ) AM_WRITE(borntofi_msm5205_w)
AM_RANGE( 0x08000, 0x0ffff ) AM_ROM
AM_RANGE( 0xf8000, 0xfffff ) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index 7c70b0d6e71..e28a51b30bb 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -28,29 +28,27 @@ static TIMER_DEVICE_CALLBACK( fastlane_scanline )
}
-static WRITE8_HANDLER( k007121_registers_w )
+WRITE8_MEMBER(fastlane_state::k007121_registers_w)
{
- fastlane_state *state = space->machine().driver_data<fastlane_state>();
if (offset < 8)
- k007121_ctrl_w(state->m_k007121, offset, data);
+ k007121_ctrl_w(m_k007121, offset, data);
else /* scroll registers */
- state->m_k007121_regs[offset] = data;
+ m_k007121_regs[offset] = data;
}
-static WRITE8_HANDLER( fastlane_bankswitch_w )
+WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w)
{
- fastlane_state *state = space->machine().driver_data<fastlane_state>();
/* bits 0 & 1 coin counters */
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
/* bits 2 & 3 = bank number */
- memory_set_bank(space->machine(), "bank1", (data & 0x0c) >> 2);
+ memory_set_bank(machine(), "bank1", (data & 0x0c) >> 2);
/* bit 4: bank # for the 007232 (chip 2) */
- k007232_set_bank(state->m_konami2, 0 + ((data & 0x10) >> 4), 2 + ((data & 0x10) >> 4));
+ k007232_set_bank(m_konami2, 0 + ((data & 0x10) >> 4), 2 + ((data & 0x10) >> 4));
/* other bits seems to be unused */
}
@@ -70,7 +68,7 @@ static WRITE8_DEVICE_HANDLER( fastlane_k007232_w )
static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state )
- AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE_LEGACY(k007121_registers_w) AM_BASE(m_k007121_regs) /* 007121 registers */
+ AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_BASE(m_k007121_regs) /* 007121 registers */
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW3")
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("P2")
AM_RANGE(0x0802, 0x0802) AM_READ_PORT("P1")
@@ -78,7 +76,7 @@ static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state )
AM_RANGE(0x0900, 0x0900) AM_READ_PORT("DSW1")
AM_RANGE(0x0901, 0x0901) AM_READ_PORT("DSW2")
AM_RANGE(0x0b00, 0x0b00) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
- AM_RANGE(0x0c00, 0x0c00) AM_WRITE_LEGACY(fastlane_bankswitch_w) /* bankswitch control */
+ 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(0x0f00, 0x0f1f) AM_DEVREADWRITE_LEGACY("k051733", k051733_r, k051733_w) /* 051733 (protection) */
diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c
index 77fa85727bb..68587b1db22 100644
--- a/src/mame/drivers/fcombat.c
+++ b/src/mame/drivers/fcombat.c
@@ -45,7 +45,7 @@ static INPUT_CHANGED( coin_inserted )
/* is it protection? */
-static READ8_HANDLER( fcombat_protection_r )
+READ8_MEMBER(fcombat_state::fcombat_protection_r)
{
/* Must match ONE of these values after a "and $3E" intruction :
@@ -59,59 +59,52 @@ static READ8_HANDLER( fcombat_protection_r )
/* same as exerion again */
-static READ8_HANDLER( fcombat_port01_r )
+READ8_MEMBER(fcombat_state::fcombat_port01_r)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
/* the cocktail flip bit muxes between ports 0 and 1 */
- return state->m_cocktail_flip ? input_port_read(space->machine(), "IN1") : input_port_read(space->machine(), "IN0");
+ return m_cocktail_flip ? input_port_read(machine(), "IN1") : input_port_read(machine(), "IN0");
}
//bg scrolls
-static WRITE8_HANDLER(e900_w)
+WRITE8_MEMBER(fcombat_state::e900_w)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
- state->m_fcombat_sh = data;
+ m_fcombat_sh = data;
}
-static WRITE8_HANDLER(ea00_w)
+WRITE8_MEMBER(fcombat_state::ea00_w)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
- state->m_fcombat_sv = (state->m_fcombat_sv & 0xff00) | data;
+ m_fcombat_sv = (m_fcombat_sv & 0xff00) | data;
}
-static WRITE8_HANDLER(eb00_w)
+WRITE8_MEMBER(fcombat_state::eb00_w)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
- state->m_fcombat_sv = (state->m_fcombat_sv & 0xff) | (data << 8);
+ m_fcombat_sv = (m_fcombat_sv & 0xff) | (data << 8);
}
// terrain info (ec00=x, ed00=y, return val in e300
-static WRITE8_HANDLER(ec00_w)
+WRITE8_MEMBER(fcombat_state::ec00_w)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
- state->m_tx = data;
+ m_tx = data;
}
-static WRITE8_HANDLER(ed00_w)
+WRITE8_MEMBER(fcombat_state::ed00_w)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
- state->m_ty = data;
+ m_ty = data;
}
-static READ8_HANDLER(e300_r)
+READ8_MEMBER(fcombat_state::e300_r)
{
- fcombat_state *state = space->machine().driver_data<fcombat_state>();
- int wx = (state->m_tx + state->m_fcombat_sh) / 16;
- int wy = (state->m_ty * 2 + state->m_fcombat_sv) / 16;
+ int wx = (m_tx + m_fcombat_sh) / 16;
+ int wy = (m_ty * 2 + m_fcombat_sv) / 16;
- return space->machine().region("user2")->base()[wx * 32 * 16 + wy];
+ return machine().region("user2")->base()[wx * 32 * 16 + wy];
}
-static WRITE8_HANDLER(ee00_w)
+WRITE8_MEMBER(fcombat_state::ee00_w)
{
}
@@ -121,18 +114,18 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, fcombat_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(fcombat_port01_r)
+ AM_RANGE(0xe000, 0xe000) AM_READ(fcombat_port01_r)
AM_RANGE(0xe100, 0xe100) AM_READ_PORT("DSW0")
AM_RANGE(0xe200, 0xe200) AM_READ_PORT("DSW1")
- AM_RANGE(0xe300, 0xe300) AM_READ_LEGACY(e300_r)
- AM_RANGE(0xe400, 0xe400) AM_READ_LEGACY(fcombat_protection_r) // protection?
+ AM_RANGE(0xe300, 0xe300) AM_READ(e300_r)
+ AM_RANGE(0xe400, 0xe400) AM_READ(fcombat_protection_r) // protection?
AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(fcombat_videoreg_w) // at least bit 0 for flip screen and joystick input multiplexor
- AM_RANGE(0xe900, 0xe900) AM_WRITE_LEGACY(e900_w)
- AM_RANGE(0xea00, 0xea00) AM_WRITE_LEGACY(ea00_w)
- AM_RANGE(0xeb00, 0xeb00) AM_WRITE_LEGACY(eb00_w)
- AM_RANGE(0xec00, 0xec00) AM_WRITE_LEGACY(ec00_w)
- AM_RANGE(0xed00, 0xed00) AM_WRITE_LEGACY(ed00_w)
- AM_RANGE(0xee00, 0xee00) AM_WRITE_LEGACY(ee00_w) // related to protection ? - doesn't seem to have any effect
+ AM_RANGE(0xe900, 0xe900) AM_WRITE(e900_w)
+ AM_RANGE(0xea00, 0xea00) AM_WRITE(ea00_w)
+ AM_RANGE(0xeb00, 0xeb00) AM_WRITE(eb00_w)
+ AM_RANGE(0xec00, 0xec00) AM_WRITE(ec00_w)
+ AM_RANGE(0xed00, 0xed00) AM_WRITE(ed00_w)
+ AM_RANGE(0xee00, 0xee00) AM_WRITE(ee00_w) // related to protection ? - doesn't seem to have any effect
AM_RANGE(0xef00, 0xef00) AM_WRITE_LEGACY(soundlatch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index 0b0bd2571f4..63c9c785d60 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -97,10 +97,9 @@ static unsigned video_ram_address( running_machine &machine )
}
-static READ8_HANDLER( fgoal_analog_r )
+READ8_MEMBER(fgoal_state::fgoal_analog_r)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- return input_port_read(space->machine(), state->m_fgoal_player ? "PADDLE1" : "PADDLE0"); /* PCB can be jumpered to use a single dial */
+ return input_port_read(machine(), m_fgoal_player ? "PADDLE1" : "PADDLE0"); /* PCB can be jumpered to use a single dial */
}
@@ -111,75 +110,68 @@ static CUSTOM_INPUT( fgoal_80_r )
return ret;
}
-static READ8_HANDLER( fgoal_nmi_reset_r )
+READ8_MEMBER(fgoal_state::fgoal_nmi_reset_r)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
return 0;
}
-static READ8_HANDLER( fgoal_irq_reset_r )
+READ8_MEMBER(fgoal_state::fgoal_irq_reset_r)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
return 0;
}
-static READ8_HANDLER( fgoal_row_r )
+READ8_MEMBER(fgoal_state::fgoal_row_r)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- return state->m_row;
+ return m_row;
}
-static WRITE8_HANDLER( fgoal_row_w )
+WRITE8_MEMBER(fgoal_state::fgoal_row_w)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- state->m_row = data;
- mb14241_shift_data_w(state->m_mb14241, 0, 0);
+ m_row = data;
+ mb14241_shift_data_w(m_mb14241, 0, 0);
}
-static WRITE8_HANDLER( fgoal_col_w )
+WRITE8_MEMBER(fgoal_state::fgoal_col_w)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- state->m_col = data;
- mb14241_shift_count_w(state->m_mb14241, 0, data);
+ m_col = data;
+ mb14241_shift_count_w(m_mb14241, 0, data);
}
-static READ8_HANDLER( fgoal_address_hi_r )
+READ8_MEMBER(fgoal_state::fgoal_address_hi_r)
{
- return video_ram_address(space->machine()) >> 8;
+ return video_ram_address(machine()) >> 8;
}
-static READ8_HANDLER( fgoal_address_lo_r )
+READ8_MEMBER(fgoal_state::fgoal_address_lo_r)
{
- return video_ram_address(space->machine()) & 0xff;
+ return video_ram_address(machine()) & 0xff;
}
-static READ8_HANDLER( fgoal_shifter_r )
+READ8_MEMBER(fgoal_state::fgoal_shifter_r)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- UINT8 v = mb14241_shift_result_r(state->m_mb14241, 0);
+ UINT8 v = mb14241_shift_result_r(m_mb14241, 0);
return BITSWAP8(v, 7, 6, 5, 4, 3, 2, 1, 0);
}
-static READ8_HANDLER( fgoal_shifter_reverse_r )
+READ8_MEMBER(fgoal_state::fgoal_shifter_reverse_r)
{
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- UINT8 v = mb14241_shift_result_r(state->m_mb14241, 0);
+ UINT8 v = mb14241_shift_result_r(m_mb14241, 0);
return BITSWAP8(v, 0, 1, 2, 3, 4, 5, 6, 7);
}
-static WRITE8_HANDLER( fgoal_sound1_w )
+WRITE8_MEMBER(fgoal_state::fgoal_sound1_w)
{
/* BIT0 => SX2 */
/* BIT1 => SX1 */
@@ -192,7 +184,7 @@ static WRITE8_HANDLER( fgoal_sound1_w )
}
-static WRITE8_HANDLER( fgoal_sound2_w )
+WRITE8_MEMBER(fgoal_state::fgoal_sound2_w)
{
/* BIT0 => CX0 */
/* BIT1 => SX6 */
@@ -200,8 +192,7 @@ static WRITE8_HANDLER( fgoal_sound2_w )
/* BIT3 => SX5 */
/* BIT4 => SX4 */
/* BIT5 => SX3 */
- fgoal_state *state = space->machine().driver_data<fgoal_state>();
- state->m_fgoal_player = data & 1;
+ m_fgoal_player = data & 1;
}
@@ -209,24 +200,24 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 8, fgoal_state )
AM_RANGE(0x0000, 0x00ef) AM_RAM
- AM_RANGE(0x00f0, 0x00f0) AM_READ_LEGACY(fgoal_row_r)
- AM_RANGE(0x00f1, 0x00f1) AM_READ_LEGACY(fgoal_analog_r)
+ AM_RANGE(0x00f0, 0x00f0) AM_READ(fgoal_row_r)
+ AM_RANGE(0x00f1, 0x00f1) AM_READ(fgoal_analog_r)
AM_RANGE(0x00f2, 0x00f2) AM_READ_PORT("IN0")
AM_RANGE(0x00f3, 0x00f3) AM_READ_PORT("IN1")
- AM_RANGE(0x00f4, 0x00f4) AM_READ_LEGACY(fgoal_address_hi_r)
- AM_RANGE(0x00f5, 0x00f5) AM_READ_LEGACY(fgoal_address_lo_r)
- AM_RANGE(0x00f6, 0x00f6) AM_READ_LEGACY(fgoal_shifter_r)
- AM_RANGE(0x00f7, 0x00f7) AM_READ_LEGACY(fgoal_shifter_reverse_r)
- AM_RANGE(0x00f8, 0x00fb) AM_READ_LEGACY(fgoal_nmi_reset_r)
- AM_RANGE(0x00fc, 0x00ff) AM_READ_LEGACY(fgoal_irq_reset_r)
-
- AM_RANGE(0x00f0, 0x00f0) AM_WRITE_LEGACY(fgoal_row_w)
- AM_RANGE(0x00f1, 0x00f1) AM_WRITE_LEGACY(fgoal_col_w)
- AM_RANGE(0x00f2, 0x00f2) AM_WRITE_LEGACY(fgoal_row_w)
- AM_RANGE(0x00f3, 0x00f3) AM_WRITE_LEGACY(fgoal_col_w)
+ AM_RANGE(0x00f4, 0x00f4) AM_READ(fgoal_address_hi_r)
+ AM_RANGE(0x00f5, 0x00f5) AM_READ(fgoal_address_lo_r)
+ AM_RANGE(0x00f6, 0x00f6) AM_READ(fgoal_shifter_r)
+ AM_RANGE(0x00f7, 0x00f7) AM_READ(fgoal_shifter_reverse_r)
+ AM_RANGE(0x00f8, 0x00fb) AM_READ(fgoal_nmi_reset_r)
+ AM_RANGE(0x00fc, 0x00ff) AM_READ(fgoal_irq_reset_r)
+
+ AM_RANGE(0x00f0, 0x00f0) AM_WRITE(fgoal_row_w)
+ AM_RANGE(0x00f1, 0x00f1) AM_WRITE(fgoal_col_w)
+ AM_RANGE(0x00f2, 0x00f2) AM_WRITE(fgoal_row_w)
+ AM_RANGE(0x00f3, 0x00f3) AM_WRITE(fgoal_col_w)
AM_RANGE(0x00f4, 0x00f7) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
- AM_RANGE(0x00f8, 0x00fb) AM_WRITE_LEGACY(fgoal_sound1_w)
- AM_RANGE(0x00fc, 0x00ff) AM_WRITE_LEGACY(fgoal_sound2_w)
+ AM_RANGE(0x00f8, 0x00fb) AM_WRITE(fgoal_sound1_w)
+ AM_RANGE(0x00fc, 0x00ff) AM_WRITE(fgoal_sound2_w)
AM_RANGE(0x0100, 0x03ff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_BASE(m_video_ram)
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index 93d5d2c42d7..6db218559fc 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -34,30 +34,27 @@ static TIMER_DEVICE_CALLBACK( finalizr_scanline )
}
-static WRITE8_HANDLER( finalizr_coin_w )
+WRITE8_MEMBER(finalizr_state::finalizr_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
-static WRITE8_HANDLER( finalizr_flipscreen_w )
+WRITE8_MEMBER(finalizr_state::finalizr_flipscreen_w)
{
- finalizr_state *state = space->machine().driver_data<finalizr_state>();
- state->m_nmi_enable = data & 0x01;
- state->m_irq_enable = data & 0x02;
+ m_nmi_enable = data & 0x01;
+ m_irq_enable = data & 0x02;
- flip_screen_set(space->machine(), ~data & 0x08);
+ flip_screen_set(machine(), ~data & 0x08);
}
-static WRITE8_HANDLER( finalizr_i8039_irq_w )
+WRITE8_MEMBER(finalizr_state::finalizr_i8039_irq_w)
{
- finalizr_state *state = space->machine().driver_data<finalizr_state>();
- device_set_input_line(state->m_audio_cpu, 0, ASSERT_LINE);
+ device_set_input_line(m_audio_cpu, 0, ASSERT_LINE);
}
-static WRITE8_HANDLER( i8039_irqen_w )
+WRITE8_MEMBER(finalizr_state::i8039_irqen_w)
{
- finalizr_state *state = space->machine().driver_data<finalizr_state>();
/* bit 0x80 goes active low, indicating that the
external IRQ being serviced is complete
@@ -65,12 +62,11 @@ static WRITE8_HANDLER( i8039_irqen_w )
*/
if ((data & 0x80) == 0)
- device_set_input_line(state->m_audio_cpu, 0, CLEAR_LINE);
+ device_set_input_line(m_audio_cpu, 0, CLEAR_LINE);
}
-static READ8_HANDLER( i8039_T1_r )
+READ8_MEMBER(finalizr_state::i8039_T1_r)
{
- finalizr_state *state = space->machine().driver_data<finalizr_state>();
/* I suspect the clock-out from the I8039 T0 line should be connected
here (See the i8039_T0_w handler below).
@@ -82,12 +78,12 @@ static READ8_HANDLER( i8039_T1_r )
based on the I8039 main xtal clock input frequency of 9.216MHz
*/
- state->m_T1_line++;
- state->m_T1_line %= 16;
- return (!(state->m_T1_line % 3) && (state->m_T1_line > 0));
+ m_T1_line++;
+ m_T1_line %= 16;
+ return (!(m_T1_line % 3) && (m_T1_line > 0));
}
-static WRITE8_HANDLER( i8039_T0_w )
+WRITE8_MEMBER(finalizr_state::i8039_T0_w)
{
/* This becomes a clock output at a frequency of 3.072MHz (derived
by internally dividing the main xtal clock input by a factor of 3).
@@ -100,7 +96,7 @@ static WRITE8_HANDLER( i8039_T0_w )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, finalizr_state )
AM_RANGE(0x0001, 0x0001) AM_WRITEONLY AM_BASE(m_scroll)
AM_RANGE(0x0003, 0x0003) AM_WRITE_LEGACY(finalizr_videoctrl_w)
- AM_RANGE(0x0004, 0x0004) AM_WRITE_LEGACY(finalizr_flipscreen_w)
+ AM_RANGE(0x0004, 0x0004) AM_WRITE(finalizr_flipscreen_w)
// AM_RANGE(0x0020, 0x003f) AM_WRITEONLY AM_BASE(m_scroll)
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW3")
AM_RANGE(0x0808, 0x0808) AM_READ_PORT("DSW2")
@@ -109,10 +105,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, finalizr_state )
AM_RANGE(0x0812, 0x0812) AM_READ_PORT("P2")
AM_RANGE(0x0813, 0x0813) AM_READ_PORT("DSW1")
AM_RANGE(0x0818, 0x0818) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x0819, 0x0819) AM_WRITE_LEGACY(finalizr_coin_w)
+ AM_RANGE(0x0819, 0x0819) AM_WRITE(finalizr_coin_w)
AM_RANGE(0x081a, 0x081a) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* This address triggers the SN chip to read the data port. */
AM_RANGE(0x081b, 0x081b) AM_WRITENOP /* Loads the snd command into the snd latch */
- AM_RANGE(0x081c, 0x081c) AM_WRITE_LEGACY(finalizr_i8039_irq_w) /* custom sound chip */
+ AM_RANGE(0x081c, 0x081c) AM_WRITE(finalizr_i8039_irq_w) /* custom sound chip */
AM_RANGE(0x081d, 0x081d) AM_WRITE_LEGACY(soundlatch_w) /* custom sound chip */
AM_RANGE(0x2000, 0x23ff) AM_RAM AM_BASE(m_colorram)
AM_RANGE(0x2400, 0x27ff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
@@ -132,9 +128,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, finalizr_state )
AM_RANGE(0x00, 0xff) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE_LEGACY(i8039_irqen_w)
- AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_WRITE_LEGACY(i8039_T0_w)
- AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ_LEGACY(i8039_T1_r)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_w)
+ AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_WRITE(i8039_T0_w)
+ AM_RANGE(MCS48_PORT_T1, MCS48_PORT_T1) AM_READ(i8039_T1_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index 8408a3347b7..7a054c32094 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -176,28 +176,26 @@ Stephh's notes (based on the games Z80 code and some tests) :
#define FIRETRAP_XTAL XTAL_12MHz
-static WRITE8_HANDLER( firetrap_nmi_disable_w )
+WRITE8_MEMBER(firetrap_state::firetrap_nmi_disable_w)
{
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
- state->m_nmi_enable = ~data & 1;
+ m_nmi_enable = ~data & 1;
}
-static WRITE8_HANDLER( firetrap_bankselect_w )
+WRITE8_MEMBER(firetrap_state::firetrap_bankselect_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
-static READ8_HANDLER( firetrap_8751_bootleg_r )
+READ8_MEMBER(firetrap_state::firetrap_8751_bootleg_r)
{
/* Check for coin insertion */
/* the following only works in the bootleg version, which doesn't have an */
/* 8751 - the real thing is much more complicated than that. */
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
UINT8 coin = 0;
- UINT8 port = input_port_read(space->machine(), "IN2") & 0x70;
+ UINT8 port = input_port_read(machine(), "IN2") & 0x70;
- if (cpu_get_pc(&space->device()) == 0x1188)
- return ~state->m_coin_command_pending;
+ if (cpu_get_pc(&space.device()) == 0x1188)
+ return ~m_coin_command_pending;
if (port != 0x70)
{
@@ -207,21 +205,20 @@ static READ8_HANDLER( firetrap_8751_bootleg_r )
coin = 2;
if (!(port & 0x10)) /* SERVICE1 */
coin = 3;
- state->m_coin_command_pending = coin;
+ m_coin_command_pending = coin;
return 0xff;
}
return 0;
}
-static READ8_HANDLER( firetrap_8751_r )
+READ8_MEMBER(firetrap_state::firetrap_8751_r)
{
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
- //logerror("PC:%04x read from 8751\n",cpu_get_pc(&space->device()));
- return state->m_i8751_return;
+ //logerror("PC:%04x read from 8751\n",cpu_get_pc(&space.device()));
+ return m_i8751_return;
}
-static WRITE8_HANDLER( firetrap_8751_w )
+WRITE8_MEMBER(firetrap_state::firetrap_8751_w)
{
static const UINT8 i8751_init_data[]={
0xf5,0xd5,0xdd,0x21,0x05,0xc1,0x87,0x5f,0x87,0x83,0x5f,0x16,0x00,0xdd,0x19,0xd1,
@@ -243,85 +240,82 @@ static WRITE8_HANDLER( firetrap_8751_w )
};
static const int i8751_coin_data[]={ 0x00, 0xb7 };
static const int i8751_36_data[]={ 0x00, 0xbc };
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
/* End of command - important to note, as coin input is supressed while commands are pending */
if (data == 0x26)
{
- state->m_i8751_current_command = 0;
- state->m_i8751_return = 0xff; /* This value is XOR'd and must equal 0 */
- device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xff);
+ m_i8751_current_command = 0;
+ m_i8751_return = 0xff; /* This value is XOR'd and must equal 0 */
+ device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, 0xff);
return;
}
/* Init sequence command (0x13 : US - 0xf5 : Japan) */
else if ((data == 0x13) || (data == 0xf5))
{
- if (!state->m_i8751_current_command)
- state->m_i8751_init_ptr = 0;
- state->m_i8751_return = i8751_init_data[state->m_i8751_init_ptr++];
+ if (!m_i8751_current_command)
+ m_i8751_init_ptr = 0;
+ m_i8751_return = i8751_init_data[m_i8751_init_ptr++];
}
/* Used to calculate a jump address when coins are inserted */
else if (data == 0xbd)
{
- if (!state->m_i8751_current_command)
- state->m_i8751_init_ptr = 0;
- state->m_i8751_return = i8751_coin_data[state->m_i8751_init_ptr++];
+ if (!m_i8751_current_command)
+ m_i8751_init_ptr = 0;
+ m_i8751_return = i8751_coin_data[m_i8751_init_ptr++];
}
else if (data == 0x36)
{
- if (!state->m_i8751_current_command)
- state->m_i8751_init_ptr = 0;
- state->m_i8751_return = i8751_36_data[state->m_i8751_init_ptr++];
+ if (!m_i8751_current_command)
+ m_i8751_init_ptr = 0;
+ m_i8751_return = i8751_36_data[m_i8751_init_ptr++];
}
/* Static value commands */
else if (data == 0x14)
- state->m_i8751_return = 1;
+ m_i8751_return = 1;
else if (data == 0x02)
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
else if (data == 0x72)
- state->m_i8751_return = 3;
+ m_i8751_return = 3;
else if (data == 0x69)
- state->m_i8751_return = 2;
+ m_i8751_return = 2;
else if (data == 0xcb)
- state->m_i8751_return = 0;
+ m_i8751_return = 0;
else if (data == 0x49)
- state->m_i8751_return = 1;
+ m_i8751_return = 1;
else if (data == 0x17)
- state->m_i8751_return = 2;
+ m_i8751_return = 2;
else if (data == 0x88)
- state->m_i8751_return = 3;
+ m_i8751_return = 3;
else
{
- state->m_i8751_return = 0xff;
- logerror("%04x: Unknown i8751 command %02x!\n",cpu_get_pc(&space->device()),data);
+ m_i8751_return = 0xff;
+ logerror("%04x: Unknown i8751 command %02x!\n",cpu_get_pc(&space.device()),data);
}
/* Signal main cpu task is complete */
- device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xff);
- state->m_i8751_current_command=data;
+ device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, 0xff);
+ m_i8751_current_command=data;
}
-static WRITE8_HANDLER( firetrap_sound_command_w )
+WRITE8_MEMBER(firetrap_state::firetrap_sound_command_w)
{
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( firetrap_sound_2400_w )
+WRITE8_MEMBER(firetrap_state::firetrap_sound_2400_w)
{
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
- msm5205_reset_w(state->m_msm, ~data & 0x01);
- state->m_sound_irq_enable = data & 0x02;
+ msm5205_reset_w(m_msm, ~data & 0x01);
+ m_sound_irq_enable = data & 0x02;
}
-static WRITE8_HANDLER( firetrap_sound_bankselect_w )
+WRITE8_MEMBER(firetrap_state::firetrap_sound_bankselect_w)
{
- memory_set_bank(space->machine(), "bank2", data & 0x01);
+ memory_set_bank(machine(), "bank2", data & 0x01);
}
static void firetrap_adpcm_int( device_t *device )
@@ -336,15 +330,14 @@ static void firetrap_adpcm_int( device_t *device )
device_set_input_line(state->m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( firetrap_adpcm_data_w )
+WRITE8_MEMBER(firetrap_state::firetrap_adpcm_data_w)
{
- firetrap_state *state = space->machine().driver_data<firetrap_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(firetrap_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
@@ -357,11 +350,11 @@ static ADDRESS_MAP_START( firetrap_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE_LEGACY(firetrap_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0xe800, 0xe97f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* IRQ acknowledge */
- AM_RANGE(0xf001, 0xf001) AM_WRITE_LEGACY(firetrap_sound_command_w)
- AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(firetrap_bankselect_w)
- AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(firetrap_nmi_disable_w)
- AM_RANGE(0xf005, 0xf005) AM_WRITE_LEGACY(firetrap_8751_w)
+ AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w)
+ AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w)
+ AM_RANGE(0xf003, 0xf003) AM_WRITE(flip_screen_w)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(firetrap_nmi_disable_w)
+ AM_RANGE(0xf005, 0xf005) AM_WRITE(firetrap_8751_w)
AM_RANGE(0xf008, 0xf009) AM_WRITE_LEGACY(firetrap_bg1_scrollx_w)
AM_RANGE(0xf00a, 0xf00b) AM_WRITE_LEGACY(firetrap_bg1_scrolly_w)
AM_RANGE(0xf00c, 0xf00d) AM_WRITE_LEGACY(firetrap_bg2_scrollx_w)
@@ -371,7 +364,7 @@ static ADDRESS_MAP_START( firetrap_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0xf012, 0xf012) AM_READ_PORT("IN2")
AM_RANGE(0xf013, 0xf013) AM_READ_PORT("DSW0")
AM_RANGE(0xf014, 0xf014) AM_READ_PORT("DSW1")
- AM_RANGE(0xf016, 0xf016) AM_READ_LEGACY(firetrap_8751_r)
+ AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( firetrap_bootleg_map, AS_PROGRAM, 8, firetrap_state )
@@ -383,10 +376,10 @@ static ADDRESS_MAP_START( firetrap_bootleg_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE_LEGACY(firetrap_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0xe800, 0xe97f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* IRQ acknowledge */
- AM_RANGE(0xf001, 0xf001) AM_WRITE_LEGACY(firetrap_sound_command_w)
- AM_RANGE(0xf002, 0xf002) AM_WRITE_LEGACY(firetrap_bankselect_w)
- AM_RANGE(0xf003, 0xf003) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(firetrap_nmi_disable_w)
+ AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w)
+ AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w)
+ AM_RANGE(0xf003, 0xf003) AM_WRITE(flip_screen_w)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(firetrap_nmi_disable_w)
AM_RANGE(0xf005, 0xf005) AM_WRITENOP
AM_RANGE(0xf008, 0xf009) AM_WRITE_LEGACY(firetrap_bg1_scrollx_w)
AM_RANGE(0xf00a, 0xf00b) AM_WRITE_LEGACY(firetrap_bg1_scrolly_w)
@@ -397,16 +390,16 @@ static ADDRESS_MAP_START( firetrap_bootleg_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0xf012, 0xf012) AM_READ_PORT("IN2")
AM_RANGE(0xf013, 0xf013) AM_READ_PORT("DSW0")
AM_RANGE(0xf014, 0xf014) AM_READ_PORT("DSW1")
- AM_RANGE(0xf016, 0xf016) AM_READ_LEGACY(firetrap_8751_bootleg_r)
+ AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_bootleg_r)
AM_RANGE(0xf800, 0xf8ff) AM_ROM /* extra ROM in the bootleg with unprotection code */
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, firetrap_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ymsnd", ym3526_w)
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(firetrap_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
- AM_RANGE(0x2400, 0x2400) AM_WRITE_LEGACY(firetrap_sound_2400_w)
- AM_RANGE(0x2800, 0x2800) AM_WRITE_LEGACY(firetrap_sound_bankselect_w)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(firetrap_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
+ AM_RANGE(0x2400, 0x2400) AM_WRITE(firetrap_sound_2400_w)
+ AM_RANGE(0x2800, 0x2800) AM_WRITE(firetrap_sound_bankselect_w)
AM_RANGE(0x3400, 0x3400) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 2e9a87ea4a2..9e5d7fd7cd4 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -74,30 +74,29 @@ static TIMER_CALLBACK( periodic_callback )
}
-static WRITE8_HANDLER( firetrk_output_w )
+WRITE8_MEMBER(firetrk_state::firetrk_output_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
/* BIT0 => START1 LAMP */
- set_led_status(space->machine(), 0, !(data & 0x01));
+ set_led_status(machine(), 0, !(data & 0x01));
/* BIT1 => START2 LAMP */
- set_led_status(space->machine(), 1, !(data & 0x02));
+ set_led_status(machine(), 1, !(data & 0x02));
/* BIT2 => FLASH */
- state->m_flash = data & 0x04;
+ m_flash = data & 0x04;
/* BIT3 => TRACK LAMP */
- set_led_status(space->machine(), 3, !(data & 0x08));
+ set_led_status(machine(), 3, !(data & 0x08));
/* BIT4 => ATTRACT */
discrete_sound_w(discrete, FIRETRUCK_ATTRACT_EN, data & 0x10);
- coin_lockout_w(space->machine(), 0, !(data & 0x10));
- coin_lockout_w(space->machine(), 1, !(data & 0x10));
+ coin_lockout_w(machine(), 0, !(data & 0x10));
+ coin_lockout_w(machine(), 1, !(data & 0x10));
/* BIT5 => START3 LAMP */
- set_led_status(space->machine(), 2, !(data & 0x20));
+ set_led_status(machine(), 2, !(data & 0x20));
/* BIT6 => UNUSED */
@@ -106,36 +105,35 @@ static WRITE8_HANDLER( firetrk_output_w )
}
-static WRITE8_HANDLER( superbug_output_w )
+WRITE8_MEMBER(firetrk_state::superbug_output_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
/* BIT0 => START LAMP */
- set_led_status(space->machine(), 0, offset & 0x01);
+ set_led_status(machine(), 0, offset & 0x01);
/* BIT1 => ATTRACT */
discrete_sound_w(discrete, SUPERBUG_ATTRACT_EN, offset & 0x02);
- coin_lockout_w(space->machine(), 0, !(offset & 0x02));
- coin_lockout_w(space->machine(), 1, !(offset & 0x02));
+ coin_lockout_w(machine(), 0, !(offset & 0x02));
+ coin_lockout_w(machine(), 1, !(offset & 0x02));
/* BIT2 => FLASH */
- state->m_flash = offset & 0x04;
+ m_flash = offset & 0x04;
/* BIT3 => TRACK LAMP */
- set_led_status(space->machine(), 1, offset & 0x08);
+ set_led_status(machine(), 1, offset & 0x08);
}
-static WRITE8_HANDLER( montecar_output_1_w )
+WRITE8_MEMBER(firetrk_state::montecar_output_1_w)
{
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
/* BIT0 => START LAMP */
- set_led_status(space->machine(), 0, !(data & 0x01));
+ set_led_status(machine(), 0, !(data & 0x01));
/* BIT1 => TRACK LAMP */
- set_led_status(space->machine(), 1, !(data & 0x02));
+ set_led_status(machine(), 1, !(data & 0x02));
/* BIT2 => ATTRACT */
discrete_sound_w(discrete, MONTECAR_ATTRACT_INV, data & 0x04);
@@ -144,22 +142,21 @@ static WRITE8_HANDLER( montecar_output_1_w )
/* BIT4 => UNUSED */
/* BIT5 => COIN3 COUNTER */
- coin_counter_w(space->machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 0, data & 0x80);
/* BIT6 => COIN2 COUNTER */
- coin_counter_w(space->machine(), 1, data & 0x40);
+ coin_counter_w(machine(), 1, data & 0x40);
/* BIT7 => COIN1 COUNTER */
- coin_counter_w(space->machine(), 2, data & 0x20);
+ coin_counter_w(machine(), 2, data & 0x20);
}
-static WRITE8_HANDLER( montecar_output_2_w )
+WRITE8_MEMBER(firetrk_state::montecar_output_2_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
- state->m_flash = data & 0x80;
+ m_flash = data & 0x80;
discrete_sound_w(discrete, MONTECAR_BEEPER_EN, data & 0x10);
discrete_sound_w(discrete, MONTECAR_DRONE_LOUD_DATA, data & 0x0f);
@@ -174,10 +171,10 @@ static MACHINE_RESET( firetrk )
}
-static READ8_HANDLER( firetrk_dip_r )
+READ8_MEMBER(firetrk_state::firetrk_dip_r)
{
- UINT8 val0 = input_port_read(space->machine(), "DIP_0");
- UINT8 val1 = input_port_read(space->machine(), "DIP_1");
+ UINT8 val0 = input_port_read(machine(), "DIP_0");
+ UINT8 val1 = input_port_read(machine(), "DIP_1");
if (val1 & (1 << (2 * offset + 0))) val0 |= 1;
if (val1 & (1 << (2 * offset + 1))) val0 |= 2;
@@ -186,10 +183,10 @@ static READ8_HANDLER( firetrk_dip_r )
}
-static READ8_HANDLER( montecar_dip_r )
+READ8_MEMBER(firetrk_state::montecar_dip_r)
{
- UINT8 val0 = input_port_read(space->machine(), "DIP_0");
- UINT8 val1 = input_port_read(space->machine(), "DIP_1");
+ UINT8 val0 = input_port_read(machine(), "DIP_0");
+ UINT8 val1 = input_port_read(machine(), "DIP_1");
if (val1 & (1 << (3 - offset))) val0 |= 1;
if (val1 & (1 << (7 - offset))) val0 |= 2;
@@ -249,84 +246,77 @@ static CUSTOM_INPUT( gear_r )
}
-static READ8_HANDLER( firetrk_input_r )
+READ8_MEMBER(firetrk_state::firetrk_input_r)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
int i;
/* update steering wheels */
for (i = 0; i < 2; i++)
{
- UINT32 new_dial = input_port_read_safe(space->machine(), (i ? "STEER_2" : "STEER_1"), 0);
- INT32 delta = new_dial - state->m_dial[i];
+ UINT32 new_dial = input_port_read_safe(machine(), (i ? "STEER_2" : "STEER_1"), 0);
+ INT32 delta = new_dial - m_dial[i];
if (delta != 0)
{
- state->m_steer_flag[i] = 0;
- state->m_steer_dir[i] = (delta < 0) ? 1 : 0;
+ m_steer_flag[i] = 0;
+ m_steer_dir[i] = (delta < 0) ? 1 : 0;
- state->m_dial[i] = state->m_dial[i] + delta;
+ m_dial[i] = m_dial[i] + delta;
}
}
- return ((input_port_read_safe(space->machine(), "BIT_0", 0) & (1 << offset)) ? 0x01 : 0) |
- ((input_port_read_safe(space->machine(), "BIT_6", 0) & (1 << offset)) ? 0x40 : 0) |
- ((input_port_read_safe(space->machine(), "BIT_7", 0) & (1 << offset)) ? 0x80 : 0);
+ return ((input_port_read_safe(machine(), "BIT_0", 0) & (1 << offset)) ? 0x01 : 0) |
+ ((input_port_read_safe(machine(), "BIT_6", 0) & (1 << offset)) ? 0x40 : 0) |
+ ((input_port_read_safe(machine(), "BIT_7", 0) & (1 << offset)) ? 0x80 : 0);
}
-static READ8_HANDLER( montecar_input_r )
+READ8_MEMBER(firetrk_state::montecar_input_r)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
UINT8 ret = firetrk_input_r(space, offset);
- if (state->m_crash[0])
+ if (m_crash[0])
ret |= 0x02;
/* can this be right, bit 0 again ???? */
- if (state->m_crash[1])
+ if (m_crash[1])
ret |= 0x01;
return ret;
}
-static WRITE8_HANDLER( blink_on_w )
+WRITE8_MEMBER(firetrk_state::blink_on_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- *state->m_blink = TRUE;
+ *m_blink = TRUE;
}
-static WRITE8_HANDLER( montecar_car_reset_w )
+WRITE8_MEMBER(firetrk_state::montecar_car_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_crash[0] = 0;
- state->m_skid[0] = 0;
+ m_crash[0] = 0;
+ m_skid[0] = 0;
}
-static WRITE8_HANDLER( montecar_drone_reset_w )
+WRITE8_MEMBER(firetrk_state::montecar_drone_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_crash[1] = 0;
- state->m_skid[1] = 0;
+ m_crash[1] = 0;
+ m_skid[1] = 0;
}
-static WRITE8_HANDLER( steer_reset_w )
+WRITE8_MEMBER(firetrk_state::steer_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_steer_flag[0] = 1;
- state->m_steer_flag[1] = 1;
+ m_steer_flag[0] = 1;
+ m_steer_flag[1] = 1;
}
-static WRITE8_HANDLER( crash_reset_w )
+WRITE8_MEMBER(firetrk_state::crash_reset_w)
{
- firetrk_state *state = space->machine().driver_data<firetrk_state>();
- state->m_crash[0] = 0;
- state->m_crash[1] = 0;
+ m_crash[0] = 0;
+ m_crash[1] = 0;
}
@@ -336,22 +326,22 @@ static ADDRESS_MAP_START( firetrk_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(m_playfield_ram)
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_y)
AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_x)
- AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE_LEGACY(crash_reset_w)
+ AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w)
AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_reset_w)
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_car_rot)
- AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(steer_reset_w)
+ AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(blink_on_w) AM_BASE(m_blink)
+ AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_BASE(m_blink)
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_motor_snd_w)
AM_RANGE(0x1420, 0x1420) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w)
AM_RANGE(0x1440, 0x1440) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w)
AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_x)
AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_y)
AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_rot)
- AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(firetrk_output_w)
+ AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(firetrk_output_w)
AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_xtndply_w)
- AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ_LEGACY(firetrk_input_r) AM_WRITENOP
- AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ_LEGACY(firetrk_dip_r)
+ AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(firetrk_input_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(firetrk_dip_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
@@ -361,16 +351,16 @@ static ADDRESS_MAP_START( superbug_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x0100, 0x0100) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_y)
AM_RANGE(0x0120, 0x0120) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_x)
- AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x001f) AM_WRITE_LEGACY(crash_reset_w)
+ AM_RANGE(0x0140, 0x0140) AM_MIRROR(0x001f) AM_WRITE(crash_reset_w)
AM_RANGE(0x0160, 0x0160) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_reset_w)
AM_RANGE(0x0180, 0x0180) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_car_rot)
- AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(steer_reset_w)
+ AM_RANGE(0x01a0, 0x01a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x01c0, 0x01c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(blink_on_w) AM_BASE(m_blink)
- AM_RANGE(0x0200, 0x0207) AM_MIRROR(0x0018) AM_READ_LEGACY(firetrk_input_r)
+ AM_RANGE(0x01e0, 0x01e0) AM_MIRROR(0x001f) AM_WRITE(blink_on_w) AM_BASE(m_blink)
+ AM_RANGE(0x0200, 0x0207) AM_MIRROR(0x0018) AM_READ(firetrk_input_r)
AM_RANGE(0x0220, 0x0220) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_xtndply_w)
- AM_RANGE(0x0240, 0x0243) AM_MIRROR(0x001c) AM_READ_LEGACY(firetrk_dip_r)
- AM_RANGE(0x0260, 0x026f) AM_MIRROR(0x0010) AM_WRITE_LEGACY(superbug_output_w)
+ AM_RANGE(0x0240, 0x0243) AM_MIRROR(0x001c) AM_READ(firetrk_dip_r)
+ AM_RANGE(0x0260, 0x026f) AM_MIRROR(0x0010) AM_WRITE(superbug_output_w)
AM_RANGE(0x0280, 0x0280) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", superbug_motor_snd_w)
AM_RANGE(0x02a0, 0x02a0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_crash_snd_w)
AM_RANGE(0x02c0, 0x02c0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_skid_snd_w)
@@ -386,10 +376,10 @@ static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_BASE(m_playfield_ram)
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_y)
AM_RANGE(0x1020, 0x1020) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_scroll_x)
- AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_drone_reset_w)
- AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_car_reset_w)
+ AM_RANGE(0x1040, 0x1040) AM_MIRROR(0x001f) AM_WRITE(montecar_drone_reset_w)
+ AM_RANGE(0x1060, 0x1060) AM_MIRROR(0x001f) AM_WRITE(montecar_car_reset_w)
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_car_rot)
- AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(steer_reset_w)
+ AM_RANGE(0x10a0, 0x10a0) AM_MIRROR(0x001f) AM_WRITE(steer_reset_w)
AM_RANGE(0x10c0, 0x10c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x10e0, 0x10e0) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", montecar_skid_reset_w)
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x001f) AM_DEVWRITE_LEGACY("discrete", firetrk_motor_snd_w)
@@ -398,10 +388,10 @@ static ADDRESS_MAP_START( montecar_map, AS_PROGRAM, 8, firetrk_state )
AM_RANGE(0x1460, 0x1460) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_x)
AM_RANGE(0x1480, 0x1480) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_y)
AM_RANGE(0x14a0, 0x14a0) AM_MIRROR(0x001f) AM_WRITEONLY AM_BASE(m_drone_rot)
- AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_output_1_w)
- AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_WRITE_LEGACY(montecar_output_2_w)
- AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ_LEGACY(montecar_input_r) AM_WRITENOP
- AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ_LEGACY(montecar_dip_r)
+ AM_RANGE(0x14c0, 0x14c0) AM_MIRROR(0x001f) AM_WRITE(montecar_output_1_w)
+ AM_RANGE(0x14e0, 0x14e0) AM_MIRROR(0x001f) AM_WRITE(montecar_output_2_w)
+ AM_RANGE(0x1800, 0x1807) AM_MIRROR(0x03f8) AM_READ(montecar_input_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c03) AM_MIRROR(0x03fc) AM_READ(montecar_dip_r)
AM_RANGE(0x2000, 0x3fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index efdfdf6ce44..b4a590356db 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -88,39 +88,35 @@ Stephh's notes :
#include "includes/fitfight.h"
-static READ16_HANDLER(fitfight_700000_r)
+READ16_MEMBER(fitfight_state::fitfight_700000_r)
{
- fitfight_state *state = space->machine().driver_data<fitfight_state>();
- UINT16 data = state->m_fof_700000_data;
+ UINT16 data = m_fof_700000_data;
return (data << 2);
}
-static READ16_HANDLER(histryma_700000_r)
+READ16_MEMBER(fitfight_state::histryma_700000_r)
{
- fitfight_state *state = space->machine().driver_data<fitfight_state>();
- UINT16 data = (state->m_fof_700000_data & 0x00AA);
- data |= ((state->m_fof_700000_data & 0x0055) >> 2);
+ UINT16 data = (m_fof_700000_data & 0x00AA);
+ data |= ((m_fof_700000_data & 0x0055) >> 2);
return (data);
}
-static READ16_HANDLER(bbprot_700000_r)
+READ16_MEMBER(fitfight_state::bbprot_700000_r)
{
- fitfight_state *state = space->machine().driver_data<fitfight_state>();
UINT16 data = 0;
- data = (state->m_fof_700000_data & 0x000b);
- data |= ((state->m_fof_700000_data & 0x01d0) >> 2);
- data |= ((state->m_fof_700000_data & 0x0004) << 6);
- data |= ((state->m_fof_700000_data & 0x0020) << 2);
+ data = (m_fof_700000_data & 0x000b);
+ data |= ((m_fof_700000_data & 0x01d0) >> 2);
+ data |= ((m_fof_700000_data & 0x0004) << 6);
+ data |= ((m_fof_700000_data & 0x0020) << 2);
return (data);
}
-static WRITE16_HANDLER(fitfight_700000_w)
+WRITE16_MEMBER(fitfight_state::fitfight_700000_w)
{
- fitfight_state *state = space->machine().driver_data<fitfight_state>();
- COMBINE_DATA(&state->m_fof_700000[offset]); // needed for scrolling
+ COMBINE_DATA(&m_fof_700000[offset]); // needed for scrolling
if (data < 0x0200) // to avoid considering writes of 0x0200
- state->m_fof_700000_data = data;
+ m_fof_700000_data = data;
}
static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16, fitfight_state )
@@ -145,7 +141,7 @@ static ADDRESS_MAP_START( fitfight_main_map, AS_PROGRAM, 16, fitfight_state )
// @0x000037a6/0x000030e6: 0x??dd byte from 0xe08c05, 0xF101 then 0xF001/0xF157 then 0xF057
// AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(xxxx) /* see init */
- AM_RANGE(0x700000, 0x700001) AM_WRITE_LEGACY(fitfight_700000_w) AM_BASE(m_fof_700000)
+ AM_RANGE(0x700000, 0x700001) AM_WRITE(fitfight_700000_w) AM_BASE(m_fof_700000)
// kept at 0xe07900/0xe04c56
AM_RANGE(0x800000, 0x800001) AM_WRITEONLY AM_BASE(m_fof_800000)
@@ -187,7 +183,7 @@ static ADDRESS_MAP_START( bbprot_main_map, AS_PROGRAM, 16, fitfight_state )
AM_RANGE(0x600000, 0x600001) AM_WRITEONLY AM_BASE(m_fof_600000)
- AM_RANGE(0x700000, 0x700001) AM_READWRITE_LEGACY(bbprot_700000_r, fitfight_700000_w) AM_BASE(m_fof_700000)
+ AM_RANGE(0x700000, 0x700001) AM_READWRITE(bbprot_700000_r, fitfight_700000_w) AM_BASE(m_fof_700000)
AM_RANGE(0x800000, 0x800001) AM_WRITEONLY AM_BASE(m_fof_800000)
AM_RANGE(0x900000, 0x900001) AM_WRITEONLY AM_BASE(m_fof_900000)
@@ -216,43 +212,43 @@ static ADDRESS_MAP_START( snd_mem, AS_PROGRAM, 8, fitfight_state )
AM_RANGE(0xff00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static READ8_HANDLER(snd_porta_r)
+READ8_MEMBER(fitfight_state::snd_porta_r)
{
- //mame_printf_debug("PA R @%x\n",cpu_get_pc(&space->device()));
- return space->machine().rand();
+ //mame_printf_debug("PA R @%x\n",cpu_get_pc(&space.device()));
+ return machine().rand();
}
-static READ8_HANDLER(snd_portb_r)
+READ8_MEMBER(fitfight_state::snd_portb_r)
{
- //mame_printf_debug("PB R @%x\n",cpu_get_pc(&space->device()));
- return space->machine().rand();
+ //mame_printf_debug("PB R @%x\n",cpu_get_pc(&space.device()));
+ return machine().rand();
}
-static READ8_HANDLER(snd_portc_r)
+READ8_MEMBER(fitfight_state::snd_portc_r)
{
- //mame_printf_debug("PC R @%x\n",cpu_get_pc(&space->device()));
- return space->machine().rand();
+ //mame_printf_debug("PC R @%x\n",cpu_get_pc(&space.device()));
+ return machine().rand();
}
-static WRITE8_HANDLER(snd_porta_w)
+WRITE8_MEMBER(fitfight_state::snd_porta_w)
{
- //mame_printf_debug("PA W %x @%x\n",data,cpu_get_pc(&space->device()));
+ //mame_printf_debug("PA W %x @%x\n",data,cpu_get_pc(&space.device()));
}
-static WRITE8_HANDLER(snd_portb_w)
+WRITE8_MEMBER(fitfight_state::snd_portb_w)
{
- //mame_printf_debug("PB W %x @%x\n",data,cpu_get_pc(&space->device()));
+ //mame_printf_debug("PB W %x @%x\n",data,cpu_get_pc(&space.device()));
}
-static WRITE8_HANDLER(snd_portc_w)
+WRITE8_MEMBER(fitfight_state::snd_portc_w)
{
- //mame_printf_debug("PC W %x @%x\n",data,cpu_get_pc(&space->device()));
+ //mame_printf_debug("PC W %x @%x\n",data,cpu_get_pc(&space.device()));
}
static ADDRESS_MAP_START( snd_io, AS_IO, 8, fitfight_state )
- AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ_LEGACY(snd_porta_r) AM_WRITE_LEGACY(snd_porta_w)
- AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_READ_LEGACY(snd_portb_r) AM_WRITE_LEGACY(snd_portb_w)
- AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_READ_LEGACY(snd_portc_r) AM_WRITE_LEGACY(snd_portc_w)
+ AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READ(snd_porta_r) AM_WRITE(snd_porta_w)
+ AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_READ(snd_portb_r) AM_WRITE(snd_portb_w)
+ AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_READ(snd_portc_r) AM_WRITE(snd_portc_w)
ADDRESS_MAP_END
static INTERRUPT_GEN( snd_irq )
@@ -976,7 +972,7 @@ static DRIVER_INIT( fitfight )
// UINT16 *mem16 = (UINT16 *)machine.region("maincpu")->base();
// mem16[0x0165B2/2] = 0x4e71; // for now so it boots
fitfight_state *state = machine.driver_data<fitfight_state>();
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x700000, 0x700001, FUNC(fitfight_700000_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::fitfight_700000_r),state));
state->m_bbprot_kludge = 0;
}
@@ -985,7 +981,7 @@ static DRIVER_INIT( histryma )
// UINT16 *mem16 = (UINT16 *)machine.region("maincpu")->base();
// mem16[0x017FDC/2] = 0x4e71; // for now so it boots
fitfight_state *state = machine.driver_data<fitfight_state>();
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x700000, 0x700001, FUNC(histryma_700000_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::histryma_700000_r),state));
state->m_bbprot_kludge = 0;
}
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index 152c5501a9c..204c0b62fef 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -28,18 +28,18 @@ static INTERRUPT_GEN( flkatck_interrupt )
device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( flkatck_bankswitch_w )
+WRITE8_MEMBER(flkatck_state::flkatck_bankswitch_w)
{
/* bits 3-4: coin counters */
- coin_counter_w(space->machine(), 0, data & 0x08);
- coin_counter_w(space->machine(), 1, data & 0x10);
+ coin_counter_w(machine(), 0, data & 0x08);
+ coin_counter_w(machine(), 1, data & 0x10);
/* bits 0-1: bank # */
if ((data & 0x03) != 0x03) /* for safety */
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
-static READ8_HANDLER( flkatck_ls138_r )
+READ8_MEMBER(flkatck_state::flkatck_ls138_r)
{
int data = 0;
@@ -47,22 +47,21 @@ static READ8_HANDLER( flkatck_ls138_r )
{
case 0x00:
if (offset & 0x02)
- data = input_port_read(space->machine(), (offset & 0x01) ? "COIN" : "DSW3");
+ data = input_port_read(machine(), (offset & 0x01) ? "COIN" : "DSW3");
else
- data = input_port_read(space->machine(), (offset & 0x01) ? "P2" : "P1");
+ data = input_port_read(machine(), (offset & 0x01) ? "P2" : "P1");
break;
case 0x01:
if (offset & 0x02)
- data = input_port_read(space->machine(), (offset & 0x01) ? "DSW1" : "DSW2");
+ data = input_port_read(machine(), (offset & 0x01) ? "DSW1" : "DSW2");
break;
}
return data;
}
-static WRITE8_HANDLER( flkatck_ls138_w )
+WRITE8_MEMBER(flkatck_state::flkatck_ls138_w)
{
- flkatck_state *state = space->machine().driver_data<flkatck_state>();
switch ((offset & 0x1c) >> 2)
{
@@ -73,7 +72,7 @@ static WRITE8_HANDLER( flkatck_ls138_w )
soundlatch_w(space, 0, data);
break;
case 0x06: /* Cause interrupt on audio CPU */
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
break;
case 0x07: /* watchdog reset */
watchdog_reset_w(space, 0, data);
@@ -82,23 +81,21 @@ static WRITE8_HANDLER( flkatck_ls138_w )
}
/* Protection - an external multiplyer connected to the sound CPU */
-static READ8_HANDLER( multiply_r )
+READ8_MEMBER(flkatck_state::multiply_r)
{
- flkatck_state *state = space->machine().driver_data<flkatck_state>();
- return (state->m_multiply_reg[0] * state->m_multiply_reg[1]) & 0xff;
+ return (m_multiply_reg[0] * m_multiply_reg[1]) & 0xff;
}
-static WRITE8_HANDLER( multiply_w )
+WRITE8_MEMBER(flkatck_state::multiply_w)
{
- flkatck_state *state = space->machine().driver_data<flkatck_state>();
- state->m_multiply_reg[offset] = data;
+ m_multiply_reg[offset] = data;
}
static ADDRESS_MAP_START( flkatck_map, AS_PROGRAM, 8, flkatck_state )
AM_RANGE(0x0000, 0x0007) AM_RAM_WRITE_LEGACY(flkatck_k007121_regs_w) /* 007121 registers */
AM_RANGE(0x0008, 0x03ff) AM_RAM /* RAM */
- AM_RANGE(0x0400, 0x041f) AM_READWRITE_LEGACY(flkatck_ls138_r, flkatck_ls138_w) /* inputs, DIPS, bankswitch, counters, sound command */
+ AM_RANGE(0x0400, 0x041f) AM_READWRITE(flkatck_ls138_r, flkatck_ls138_w) /* inputs, DIPS, bankswitch, counters, sound command */
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE_LEGACY(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE_GENERIC(paletteram) /* palette */
AM_RANGE(0x1000, 0x1fff) AM_RAM /* RAM */
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE_LEGACY(flkatck_k007121_w) AM_BASE(m_k007121_ram) /* Video RAM (007121) */
@@ -109,7 +106,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( flkatck_sound_map, AS_PROGRAM, 8, flkatck_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
- AM_RANGE(0x9000, 0x9000) AM_READWRITE_LEGACY(multiply_r, multiply_w) /* ??? */
+ AM_RANGE(0x9000, 0x9000) AM_READWRITE(multiply_r, multiply_w) /* ??? */
// AM_RANGE(0x9001, 0x9001) AM_RAM /* ??? */
AM_RANGE(0x9004, 0x9004) AM_READNOP /* ??? */
AM_RANGE(0x9006, 0x9006) AM_WRITENOP /* ??? */
diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c
index 3d69497d4c6..033cf2c75af 100644
--- a/src/mame/drivers/flower.c
+++ b/src/mame/drivers/flower.c
@@ -75,53 +75,52 @@ CHIP # POSITION TYPE
#include "includes/flower.h"
-static WRITE8_HANDLER( flower_maincpu_irq_ack )
+WRITE8_MEMBER(flower_state::flower_maincpu_irq_ack)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( flower_subcpu_irq_ack )
+WRITE8_MEMBER(flower_state::flower_subcpu_irq_ack)
{
- cputag_set_input_line(space->machine(), "subcpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "subcpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( flower_soundcpu_irq_ack )
+WRITE8_MEMBER(flower_state::flower_soundcpu_irq_ack)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( flower_coin_counter_w )
+WRITE8_MEMBER(flower_state::flower_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
-static WRITE8_HANDLER( flower_coin_lockout_w )
+WRITE8_MEMBER(flower_state::flower_coin_lockout_w)
{
- coin_lockout_global_w(space->machine(), ~data & 1);
+ coin_lockout_global_w(machine(), ~data & 1);
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(flower_state::sound_command_w)
{
- flower_state *state = space->machine().driver_data<flower_state>();
soundlatch_w(space, 0, data);
- if (*state->m_sn_nmi_enable & 1)
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ if (*m_sn_nmi_enable & 1)
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( flower_cpu1_2, AS_PROGRAM, 8, flower_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(flower_coin_lockout_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(flower_coin_lockout_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE_LEGACY(flower_flipscreen_w)
- AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(flower_maincpu_irq_ack)
- AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(flower_subcpu_irq_ack)
- AM_RANGE(0xa004, 0xa004) AM_WRITE_LEGACY(flower_coin_counter_w)
+ AM_RANGE(0xa002, 0xa002) AM_WRITE(flower_maincpu_irq_ack)
+ AM_RANGE(0xa003, 0xa003) AM_WRITE(flower_subcpu_irq_ack)
+ AM_RANGE(0xa004, 0xa004) AM_WRITE(flower_coin_counter_w)
AM_RANGE(0xa005, 0xa005) AM_WRITENOP // subcpu nmi (unused)
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN0CPU1")
AM_RANGE(0xa101, 0xa101) AM_READ_PORT("IN1CPU1")
AM_RANGE(0xa102, 0xa102) AM_READ_PORT("IN0CPU0")
AM_RANGE(0xa103, 0xa103) AM_READ_PORT("IN1CPU0")
- AM_RANGE(0xa400, 0xa400) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xa400, 0xa400) AM_WRITE(sound_command_w)
AM_RANGE(0xc000, 0xddff) AM_SHARE("share1") AM_RAM
AM_RANGE(0xde00, 0xdfff) AM_SHARE("share2") AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0xe000, 0xe7ff) AM_SHARE("share3") AM_RAM_WRITE_LEGACY(flower_textram_w) AM_BASE(m_textram)
@@ -134,7 +133,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( flower_sound_cpu, AS_PROGRAM, 8, flower_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(flower_soundcpu_irq_ack)
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(flower_soundcpu_irq_ack)
AM_RANGE(0x4001, 0x4001) AM_WRITEONLY AM_BASE(m_sn_nmi_enable)
AM_RANGE(0x6000, 0x6000) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x8000, 0x803f) AM_DEVWRITE_LEGACY("flower", flower_sound1_w)
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index c286e9d579e..5d313011716 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -17,24 +17,21 @@
#include "sound/dac.h"
#include "includes/flstory.h"
-static READ8_HANDLER( from_snd_r )
+READ8_MEMBER(flstory_state::from_snd_r)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- state->m_snd_flag = 0;
- return state->m_snd_data;
+ m_snd_flag = 0;
+ return m_snd_data;
}
-static READ8_HANDLER( snd_flag_r )
+READ8_MEMBER(flstory_state::snd_flag_r)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- return state->m_snd_flag | 0xfd;
+ return m_snd_flag | 0xfd;
}
-static WRITE8_HANDLER( to_main_w )
+WRITE8_MEMBER(flstory_state::to_main_w)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- state->m_snd_data = data;
- state->m_snd_flag = 2;
+ m_snd_data = data;
+ m_snd_flag = 2;
}
static TIMER_CALLBACK( nmi_callback )
@@ -46,27 +43,25 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(flstory_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(flstory_state::nmi_disable_w)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(flstory_state::nmi_enable_w)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
@@ -77,8 +72,8 @@ static ADDRESS_MAP_START( flstory_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(flstory_mcu_r, flstory_mcu_w)
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */
AM_RANGE(0xd002, 0xd002) AM_WRITENOP /* coin lock out? */
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd401, 0xd401) AM_READ_LEGACY(snd_flag_r)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
AM_RANGE(0xd403, 0xd403) AM_NOP /* unknown */
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
@@ -103,8 +98,8 @@ static ADDRESS_MAP_START( onna34ro_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(onna34ro_mcu_r, onna34ro_mcu_w)
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */
AM_RANGE(0xd002, 0xd002) AM_WRITENOP /* coin lock out? */
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd401, 0xd401) AM_READ_LEGACY(snd_flag_r)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
AM_RANGE(0xd403, 0xd403) AM_NOP /* unknown */
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
@@ -137,8 +132,8 @@ static ADDRESS_MAP_START( victnine_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(victnine_mcu_r, victnine_mcu_w)
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */
AM_RANGE(0xd002, 0xd002) AM_NOP /* unknown read & coin lock out? */
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd401, 0xd401) AM_READ_LEGACY(snd_flag_r)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
AM_RANGE(0xd403, 0xd403) AM_READNOP /* unknown */
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
@@ -158,26 +153,25 @@ static ADDRESS_MAP_START( victnine_map, AS_PROGRAM, 8, flstory_state )
ADDRESS_MAP_END
-static READ8_HANDLER( rumba_mcu_r )
+READ8_MEMBER(flstory_state::rumba_mcu_r)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- //printf("PC=%04x R %02x\n",cpu_get_pc(&space->device()),state->m_mcu_cmd);
+ //printf("PC=%04x R %02x\n",cpu_get_pc(&space.device()),m_mcu_cmd);
- if((state->m_mcu_cmd & 0xf0) == 0x00) // end packet cmd, value returned is meaningless (probably used for main <-> mcu comms syncronization)
+ if((m_mcu_cmd & 0xf0) == 0x00) // end packet cmd, value returned is meaningless (probably used for main <-> mcu comms syncronization)
return 0;
- switch(state->m_mcu_cmd)
+ switch(m_mcu_cmd)
{
case 0x73: return 0xa4; //initial MCU check
- case 0x33: return state->m_mcu_b2_res; //0xb2 result
- case 0x31: return state->m_mcu_b1_res; //0xb1 result
+ case 0x33: return m_mcu_b2_res; //0xb2 result
+ case 0x31: return m_mcu_b1_res; //0xb1 result
- case 0x35: state->m_mcu_b5_res = 1; state->m_mcu_b6_res = 1; return 0;
- case 0x36: return state->m_mcu_b4_cmd; //0xb4 command, extra protection for lives (first play only), otherwise game gives one extra life at start-up (!)
- case 0x37: return state->m_mcu_b5_res; //0xb4 / 0xb5 / 0xb6 result y value
- case 0x38: return state->m_mcu_b6_res; //x value
+ case 0x35: m_mcu_b5_res = 1; m_mcu_b6_res = 1; return 0;
+ case 0x36: return m_mcu_b4_cmd; //0xb4 command, extra protection for lives (first play only), otherwise game gives one extra life at start-up (!)
+ case 0x37: return m_mcu_b5_res; //0xb4 / 0xb5 / 0xb6 result y value
+ case 0x38: return m_mcu_b6_res; //x value
- case 0x3b: return state->m_mcu_bb_res; //0xbb result
+ case 0x3b: return m_mcu_bb_res; //0xbb result
case 0x40: return 0;
case 0x41: return 0;
case 0x42:
@@ -194,7 +188,7 @@ static READ8_HANDLER( rumba_mcu_r )
*/
//static UINT8 level_val;
- //level_val = space->read_byte(0xe247);
+ //level_val = read_byte(0xe247);
//popmessage("%02x",level_val);
@@ -204,28 +198,27 @@ static READ8_HANDLER( rumba_mcu_r )
return 0;
}
//case 0x42: return 0x06;
- //default: printf("PC=%04x R %02x\n",cpu_get_pc(&space->device()),state->m_mcu_cmd); break;
+ //default: printf("PC=%04x R %02x\n",cpu_get_pc(&space.device()),m_mcu_cmd); break;
}
return 0;
}
-static WRITE8_HANDLER( rumba_mcu_w )
+WRITE8_MEMBER(flstory_state::rumba_mcu_w)
{
- flstory_state *state = space->machine().driver_data<flstory_state>();
- //if((state->m_mcu_cmd & 0xf0) == 0xc0)
+ //if((m_mcu_cmd & 0xf0) == 0xc0)
// printf("%02x ",data);
- //if(state->m_mcu_cmd == 0x42)
+ //if(m_mcu_cmd == 0x42)
// printf("\n");
- if(state->m_mcu_param)
+ if(m_mcu_param)
{
- state->m_mcu_param = 0; // clear param
+ m_mcu_param = 0; // clear param
- //printf("%02x %02x\n",state->m_mcu_cmd,data);
+ //printf("%02x %02x\n",m_mcu_cmd,data);
- switch(state->m_mcu_cmd)
+ switch(m_mcu_cmd)
{
case 0xb0: // counter, used by command 0xb1 (and something else?
{
@@ -233,21 +226,21 @@ static WRITE8_HANDLER( rumba_mcu_w )
sends 0xb0 -> param then 0xb1 -> param -> 0x01 (end of cmd packet?) finally 0x31 for reply
*/
- state->m_mcu_counter = data;
+ m_mcu_counter = data;
break;
}
case 0xb1: // player death sequence, controls X position
{
- state->m_mcu_b1_res = data;
+ m_mcu_b1_res = data;
/* TODO: this is pretty hard to simulate ... */
- if(state->m_mcu_counter >= 0x10)
- state->m_mcu_b1_res++; // left
- else if(state->m_mcu_counter >= 0x08)
- state->m_mcu_b1_res--; // right
+ if(m_mcu_counter >= 0x10)
+ m_mcu_b1_res++; // left
+ else if(m_mcu_counter >= 0x08)
+ m_mcu_b1_res--; // right
else
- state->m_mcu_b1_res++; // left again
+ m_mcu_b1_res++; // left again
break;
}
@@ -259,10 +252,10 @@ static WRITE8_HANDLER( rumba_mcu_w )
switch(data)
{
- case 1: state->m_mcu_b2_res = 0xaa; break; //left
- case 2: state->m_mcu_b2_res = 0xaa; break; //right
- case 4: state->m_mcu_b2_res = 0xab; break; //down
- case 8: state->m_mcu_b2_res = 0xa9; break; //up
+ case 1: m_mcu_b2_res = 0xaa; break; //left
+ case 2: m_mcu_b2_res = 0xaa; break; //right
+ case 4: m_mcu_b2_res = 0xab; break; //down
+ case 8: m_mcu_b2_res = 0xa9; break; //up
}
break;
}
@@ -272,15 +265,15 @@ static WRITE8_HANDLER( rumba_mcu_w )
sends 0xbb -> param -> 0x04 (end of cmd packet?) then 0x3b for reply
*/
- state->m_mcu_bb_res = data;
- //printf("PC=%04x W %02x -> %02x\n",cpu_get_pc(&space->device()),state->m_mcu_cmd,data);
+ m_mcu_bb_res = data;
+ //printf("PC=%04x W %02x -> %02x\n",cpu_get_pc(&space.device()),m_mcu_cmd,data);
break;
}
case 0xb4: // when the bird touches the top / bottom / left / right of the screen, for correct repositioning
{
- state->m_mcu_b4_cmd = data;
+ m_mcu_b4_cmd = data;
- //popmessage("%02x",state->m_mcu_b4_cmd);
+ //popmessage("%02x",m_mcu_b4_cmd);
/*
sends 0xb4 -> param -> 0xb5 -> param (bird X coord) -> 0xb6 -> param (bird Y coord) ->
@@ -300,54 +293,54 @@ static WRITE8_HANDLER( rumba_mcu_w )
case 0xb5: // bird X coord
{
/* TODO: values might be off by one */
- state->m_mcu_b5_res = data;
+ m_mcu_b5_res = data;
- if(state->m_mcu_b4_cmd == 3) // from right to left
- state->m_mcu_b5_res = 0x0d;
+ if(m_mcu_b4_cmd == 3) // from right to left
+ m_mcu_b5_res = 0x0d;
- if(state->m_mcu_b4_cmd == 2) // from left to right
- state->m_mcu_b5_res = 0xe4;
+ if(m_mcu_b4_cmd == 2) // from left to right
+ m_mcu_b5_res = 0xe4;
break;
}
case 0xb6: // bird Y coord
{
- state->m_mcu_b6_res = data;
+ m_mcu_b6_res = data;
- if(state->m_mcu_b4_cmd == 1) // from up to down
- state->m_mcu_b6_res = 0x04;
+ if(m_mcu_b4_cmd == 1) // from up to down
+ m_mcu_b6_res = 0x04;
- if(state->m_mcu_b4_cmd == 4) // from down to up
- state->m_mcu_b6_res = 0xdc;
+ if(m_mcu_b4_cmd == 4) // from down to up
+ m_mcu_b6_res = 0xdc;
break;
}
}
- //if((state->m_mcu_cmd & 0xf0) == 0xc0)
+ //if((m_mcu_cmd & 0xf0) == 0xc0)
// printf("%02x ",data);
- //if(state->m_mcu_cmd == 0xc7)
+ //if(m_mcu_cmd == 0xc7)
// printf("\n");
return;
}
- state->m_mcu_cmd = data;
+ m_mcu_cmd = data;
- if(((data & 0xf0) == 0xb0 || (data & 0xf0) == 0xc0) && state->m_mcu_param == 0)
- state->m_mcu_param = 1;
+ if(((data & 0xf0) == 0xb0 || (data & 0xf0) == 0xc0) && m_mcu_param == 0)
+ m_mcu_param = 1;
}
static ADDRESS_MAP_START( rumba_map, AS_PROGRAM, 8, flstory_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(flstory_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
// AM_RANGE(0xc800, 0xcfff) AM_RAM /* unknown */
- AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(rumba_mcu_r, rumba_mcu_w)
+ AM_RANGE(0xd000, 0xd000) AM_READWRITE(rumba_mcu_r, rumba_mcu_w)
AM_RANGE(0xd001, 0xd001) AM_WRITENOP /* watchdog? */
// AM_RANGE(0xd002, 0xd002) AM_NOP /* unknown read & coin lock out? */
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd401, 0xd401) AM_READ_LEGACY(snd_flag_r)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
// AM_RANGE(0xd403, 0xd403) AM_READNOP /* unknown */
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW0")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
@@ -452,9 +445,9 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, flstory_state )
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(0xd800, 0xd800) AM_READWRITE_LEGACY(soundlatch_r, to_main_w)
- AM_RANGE(0xda00, 0xda00) AM_READNOP AM_WRITE_LEGACY(nmi_enable_w) /* unknown read*/
- AM_RANGE(0xdc00, 0xdc00) AM_WRITE_LEGACY(nmi_disable_w)
+ AM_RANGE(0xd800, 0xd800) AM_READ_LEGACY(soundlatch_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)
AM_RANGE(0xde00, 0xde00) AM_READNOP AM_DEVWRITE_LEGACY("dac", dac_w) /* signed 8-bit DAC & unknown read */
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostics ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 63cf05572bb..cf906a98062 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -42,41 +42,38 @@ TODO:
*
*************************************/
-static WRITE8_HANDLER( flipscreen_w )
+WRITE8_MEMBER(freekick_state::flipscreen_w)
{
/* flip Y/X could be the other way round... */
if (offset)
- flip_screen_y_set(space->machine(), ~data & 1);
+ flip_screen_y_set(machine(), ~data & 1);
else
- flip_screen_x_set(space->machine(), ~data & 1);
+ flip_screen_x_set(machine(), ~data & 1);
}
-static WRITE8_HANDLER( coin_w )
+WRITE8_MEMBER(freekick_state::coin_w)
{
- coin_counter_w(space->machine(), offset, ~data & 1);
+ coin_counter_w(machine(), offset, ~data & 1);
}
-static WRITE8_HANDLER( spinner_select_w )
+WRITE8_MEMBER(freekick_state::spinner_select_w)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
- state->m_spinner = data & 1;
+ m_spinner = data & 1;
}
-static READ8_HANDLER( spinner_r )
+READ8_MEMBER(freekick_state::spinner_r)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
- return input_port_read(space->machine(), state->m_spinner ? "IN3" : "IN2");
+ return input_port_read(machine(), m_spinner ? "IN3" : "IN2");
}
-static WRITE8_HANDLER( pbillrd_bankswitch_w )
+WRITE8_MEMBER(freekick_state::pbillrd_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 1);
+ memory_set_bank(machine(), "bank1", data & 1);
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(freekick_state::nmi_enable_w)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
- state->m_nmi_en = data & 1;
+ m_nmi_en = data & 1;
}
static INTERRUPT_GEN( freekick_irqgen )
@@ -86,72 +83,68 @@ static INTERRUPT_GEN( freekick_irqgen )
device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( oigas_5_w )
+WRITE8_MEMBER(freekick_state::oigas_5_w)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
if (data > 0xc0 && data < 0xe0)
- state->m_cnt = 1;
+ m_cnt = 1;
- switch (state->m_cnt)
+ switch (m_cnt)
{
- case 1: state->m_inval = data << 8 ; break;
- case 2: state->m_inval |= data ; break;
+ case 1: m_inval = data << 8 ; break;
+ case 2: m_inval |= data ; break;
}
}
-static READ8_HANDLER( oigas_3_r )
+READ8_MEMBER(freekick_state::oigas_3_r)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
- switch (++state->m_cnt)
+ switch (++m_cnt)
{
- case 2: return ~(state->m_inval >> 8);
- case 3: return ~(state->m_inval & 0xff);
+ case 2: return ~(m_inval >> 8);
+ case 3: return ~(m_inval & 0xff);
case 4:
- switch (state->m_inval)
+ switch (m_inval)
{
- case 0xc500: state->m_outval = 0x17ef; break;
+ case 0xc500: m_outval = 0x17ef; break;
case 0xc520:
- case 0xc540: state->m_outval = 0x19c1; break;
- case 0xc560: state->m_outval = 0x1afc; break;
+ case 0xc540: m_outval = 0x19c1; break;
+ case 0xc560: m_outval = 0x1afc; break;
case 0xc580:
case 0xc5a0:
- case 0xc5c0: state->m_outval = 0x1f28; break;
- case 0xc680: state->m_outval = 0x2e8a; break;
+ case 0xc5c0: m_outval = 0x1f28; break;
+ case 0xc680: m_outval = 0x2e8a; break;
case 0xc5e0:
case 0xc600:
case 0xc620:
case 0xc640:
- case 0xc660: state->m_outval = 0x25cc; break;
+ case 0xc660: m_outval = 0x25cc; break;
case 0xc6c0:
- case 0xc6e0: state->m_outval = 0x09d7; break;
- case 0xc6a0: state->m_outval = 0x3168; break;
- case 0xc720: state->m_outval = 0x2207; break;
- case 0xc700: state->m_outval = 0x0e34; break;
- case 0xc710: state->m_outval = 0x0fdd; break;
- case 0xc4f0: state->m_outval = 0x05b6; break;
- case 0xc4e0: state->m_outval = 0xae1e; break;
+ case 0xc6e0: m_outval = 0x09d7; break;
+ case 0xc6a0: m_outval = 0x3168; break;
+ case 0xc720: m_outval = 0x2207; break;
+ case 0xc700: m_outval = 0x0e34; break;
+ case 0xc710: m_outval = 0x0fdd; break;
+ case 0xc4f0: m_outval = 0x05b6; break;
+ case 0xc4e0: m_outval = 0xae1e; break;
}
- return state->m_outval>>8;
- case 5: state->m_cnt=0;return state->m_outval&0xff;
+ return m_outval>>8;
+ case 5: m_cnt=0;return m_outval&0xff;
}
return 0;
}
-static READ8_HANDLER( oigas_2_r )
+READ8_MEMBER(freekick_state::oigas_2_r)
{
return 1;
}
-static READ8_HANDLER( freekick_ff_r )
+READ8_MEMBER(freekick_state::freekick_ff_r)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
- return state->m_ff_data;
+ return m_ff_data;
}
-static WRITE8_HANDLER( freekick_ff_w )
+WRITE8_MEMBER(freekick_state::freekick_ff_w)
{
- freekick_state *state = space->machine().driver_data<freekick_state>();
- state->m_ff_data = data;
+ m_ff_data = data;
}
@@ -170,11 +163,11 @@ static ADDRESS_MAP_START( pbillrd_map, AS_PROGRAM, 8, freekick_state )
AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd900, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("IN0")
- AM_RANGE(0xe000, 0xe001) AM_WRITE_LEGACY(flipscreen_w)
- AM_RANGE(0xe002, 0xe003) AM_WRITE_LEGACY(coin_w)
- AM_RANGE(0xe004, 0xe004) AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0xe000, 0xe001) AM_WRITE(flipscreen_w)
+ AM_RANGE(0xe002, 0xe003) AM_WRITE(coin_w)
+ AM_RANGE(0xe004, 0xe004) AM_WRITE(nmi_enable_w)
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("IN1")
- AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(pbillrd_bankswitch_w)
+ AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1") AM_WRITE(pbillrd_bankswitch_w)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW2")
AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0xfc01, 0xfc01) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
@@ -189,13 +182,13 @@ static ADDRESS_MAP_START( freekickb_map, AS_PROGRAM, 8, freekick_state )
AM_RANGE(0xe800, 0xe8ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // sprites
AM_RANGE(0xec00, 0xec03) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xf000, 0xf003) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w)
- AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0") AM_WRITE_LEGACY(flipscreen_w)
+ AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0") AM_WRITE(flipscreen_w)
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
AM_RANGE(0xf802, 0xf802) AM_READNOP //MUST return bit 0 = 0, otherwise game resets
- AM_RANGE(0xf803, 0xf803) AM_READ_LEGACY(spinner_r)
- AM_RANGE(0xf802, 0xf803) AM_WRITE_LEGACY(coin_w)
- AM_RANGE(0xf804, 0xf804) AM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0xf806, 0xf806) AM_WRITE_LEGACY(spinner_select_w)
+ AM_RANGE(0xf803, 0xf803) AM_READ(spinner_r)
+ AM_RANGE(0xf802, 0xf803) AM_WRITE(coin_w)
+ AM_RANGE(0xf804, 0xf804) AM_WRITE(nmi_enable_w)
+ AM_RANGE(0xf806, 0xf806) AM_WRITE(spinner_select_w)
AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0xfc01, 0xfc01) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
AM_RANGE(0xfc02, 0xfc02) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
@@ -209,8 +202,8 @@ static ADDRESS_MAP_START( gigas_map, AS_PROGRAM, 8, freekick_state )
AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd900, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("IN0") AM_WRITENOP // probably not flipscreen
- AM_RANGE(0xe002, 0xe003) AM_WRITE_LEGACY(coin_w)
- AM_RANGE(0xe004, 0xe004) AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0xe002, 0xe003) AM_WRITE(coin_w)
+ AM_RANGE(0xe004, 0xe004) AM_WRITE(nmi_enable_w)
AM_RANGE(0xe005, 0xe005) AM_WRITENOP
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("IN1")
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1") AM_WRITENOP //bankswitch ?
@@ -223,22 +216,22 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gigas_io_map, AS_IO, 8, freekick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(spinner_r, spinner_select_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w)
AM_RANGE(0x01, 0x01) AM_READNOP //unused dip 3
ADDRESS_MAP_END
static ADDRESS_MAP_START( oigas_io_map, AS_IO, 8, freekick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(spinner_r, spinner_select_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(spinner_r, spinner_select_w)
AM_RANGE(0x01, 0x01) AM_READNOP //unused dip 3
- AM_RANGE(0x02, 0x02) AM_READ_LEGACY(oigas_2_r)
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(oigas_3_r)
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(oigas_5_w)
+ AM_RANGE(0x02, 0x02) AM_READ(oigas_2_r)
+ AM_RANGE(0x03, 0x03) AM_READ(oigas_3_r)
+ AM_RANGE(0x05, 0x05) AM_WRITE(oigas_5_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( freekickb_io_map, AS_IO, 8, freekick_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0xff, 0xff) AM_READWRITE_LEGACY(freekick_ff_r, freekick_ff_w)
+ AM_RANGE(0xff, 0xff) AM_READWRITE(freekick_ff_r, freekick_ff_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index de971bee01a..902f6ce4e09 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -37,36 +37,33 @@ static INTERRUPT_GEN( fromanc2_interrupt )
}
-static WRITE16_HANDLER( fromanc2_sndcmd_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_sndcmd_w)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
soundlatch_w(space, offset, (data >> 8) & 0xff); // 1P (LEFT)
soundlatch2_w(space, offset, data & 0xff); // 2P (RIGHT)
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_sndcpu_nmi_flag = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_sndcpu_nmi_flag = 0;
}
-static WRITE16_HANDLER( fromanc2_portselect_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_portselect_w)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_portselect = data;
+ m_portselect = data;
}
-static READ16_HANDLER( fromanc2_keymatrix_r )
+READ16_MEMBER(fromanc2_state::fromanc2_keymatrix_r)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
UINT16 ret;
- switch (state->m_portselect)
+ switch (m_portselect)
{
- case 0x01: ret = input_port_read(space->machine(), "KEY0"); break;
- case 0x02: ret = input_port_read(space->machine(), "KEY1"); break;
- case 0x04: ret = input_port_read(space->machine(), "KEY2"); break;
- case 0x08: ret = input_port_read(space->machine(), "KEY3"); break;
+ case 0x01: ret = input_port_read(machine(), "KEY0"); break;
+ case 0x02: ret = input_port_read(machine(), "KEY1"); break;
+ case 0x04: ret = input_port_read(machine(), "KEY2"); break;
+ case 0x08: ret = input_port_read(machine(), "KEY3"); break;
default: ret = 0xffff;
- logerror("PC:%08X unknown %02X\n", cpu_get_pc(&space->device()), state->m_portselect);
+ logerror("PC:%08X unknown %02X\n", cpu_get_pc(&space.device()), m_portselect);
break;
}
@@ -91,92 +88,84 @@ static CUSTOM_INPUT( subcpu_nmi_r )
return state->m_subcpu_nmi_flag & 0x01;
}
-static WRITE16_HANDLER( fromanc2_eeprom_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_eeprom_w)
{
if (ACCESSING_BITS_8_15)
- input_port_write(space->machine(), "EEPROMOUT", data, 0xffff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xffff);
}
-static WRITE16_HANDLER( fromancr_eeprom_w )
+WRITE16_MEMBER(fromanc2_state::fromancr_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
- fromancr_gfxbank_w(space->machine(), data & 0xfff8);
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ fromancr_gfxbank_w(machine(), data & 0xfff8);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
}
-static WRITE16_HANDLER( fromanc4_eeprom_w )
+WRITE16_MEMBER(fromanc2_state::fromanc4_eeprom_w)
{
if (ACCESSING_BITS_0_7)
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
-static WRITE16_HANDLER( fromanc2_subcpu_w )
+WRITE16_MEMBER(fromanc2_state::fromanc2_subcpu_w)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_datalatch1 = data;
+ m_datalatch1 = data;
- device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
- state->m_subcpu_int_flag = 0;
+ device_set_input_line(m_subcpu, 0, HOLD_LINE);
+ m_subcpu_int_flag = 0;
}
-static READ16_HANDLER( fromanc2_subcpu_r )
+READ16_MEMBER(fromanc2_state::fromanc2_subcpu_r)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_subcpu_nmi_flag = 0;
+ device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_subcpu_nmi_flag = 0;
- return (state->m_datalatch_2h << 8) | state->m_datalatch_2l;
+ return (m_datalatch_2h << 8) | m_datalatch_2l;
}
-static READ8_HANDLER( fromanc2_maincpu_r_l )
+READ8_MEMBER(fromanc2_state::fromanc2_maincpu_r_l)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- return state->m_datalatch1 & 0x00ff;
+ return m_datalatch1 & 0x00ff;
}
-static READ8_HANDLER( fromanc2_maincpu_r_h )
+READ8_MEMBER(fromanc2_state::fromanc2_maincpu_r_h)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_subcpu_int_flag = 1;
+ m_subcpu_int_flag = 1;
- return (state->m_datalatch1 & 0xff00) >> 8;
+ return (m_datalatch1 & 0xff00) >> 8;
}
-static WRITE8_HANDLER( fromanc2_maincpu_w_l )
+WRITE8_MEMBER(fromanc2_state::fromanc2_maincpu_w_l)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_datalatch_2l = data;
+ m_datalatch_2l = data;
}
-static WRITE8_HANDLER( fromanc2_maincpu_w_h )
+WRITE8_MEMBER(fromanc2_state::fromanc2_maincpu_w_h)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_datalatch_2h = data;
+ m_datalatch_2h = data;
}
-static WRITE8_HANDLER( fromanc2_subcpu_nmi_clr )
+WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_nmi_clr)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_subcpu_nmi_flag = 1;
+ m_subcpu_nmi_flag = 1;
}
-static READ8_HANDLER( fromanc2_sndcpu_nmi_clr )
+READ8_MEMBER(fromanc2_state::fromanc2_sndcpu_nmi_clr)
{
- fromanc2_state *state = space->machine().driver_data<fromanc2_state>();
- state->m_sndcpu_nmi_flag = 1;
+ m_sndcpu_nmi_flag = 1;
return 0xff;
}
-static WRITE8_HANDLER( fromanc2_subcpu_rombank_w )
+WRITE8_MEMBER(fromanc2_state::fromanc2_subcpu_rombank_w)
{
// Change ROM BANK
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
// Change RAM BANK
- memory_set_bank(space->machine(), "bank2", (data & 0x0c) >> 2);
+ memory_set_bank(machine(), "bank2", (data & 0x0c) >> 2);
}
@@ -206,15 +195,15 @@ static ADDRESS_MAP_START( fromanc2_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE_LEGACY(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE_LEGACY(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01300, 0xd01301) AM_READ_LEGACY(fromanc2_subcpu_r ) // SUB CPU READ
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r ) // SUB CPU READ
AM_RANGE(0xd01400, 0xd01401) AM_WRITE_LEGACY(fromanc2_gfxbank_0_w) // GFXBANK (1P)
AM_RANGE(0xd01500, 0xd01501) AM_WRITE_LEGACY(fromanc2_gfxbank_1_w) // GFXBANK (2P)
- AM_RANGE(0xd01600, 0xd01601) AM_WRITE_LEGACY(fromanc2_eeprom_w) // EEPROM DATA
- AM_RANGE(0xd01800, 0xd01801) AM_READ_LEGACY(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE_LEGACY(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromanc2_eeprom_w) // EEPROM DATA
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
@@ -234,15 +223,15 @@ static ADDRESS_MAP_START( fromancr_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0xd00200, 0xd002ff) AM_WRITENOP // ?
AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE_LEGACY(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd00100, 0xd00123) AM_WRITE_LEGACY(fromancr_gfxreg_0_w) // SCROLL REG (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE_LEGACY(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01300, 0xd01301) AM_READ_LEGACY(fromanc2_subcpu_r) // SUB CPU READ
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r) // SUB CPU READ
AM_RANGE(0xd01400, 0xd01401) AM_WRITENOP // COIN COUNTER ?
- AM_RANGE(0xd01600, 0xd01601) AM_WRITE_LEGACY(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
- AM_RANGE(0xd01800, 0xd01801) AM_READ_LEGACY(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE_LEGACY(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
@@ -253,13 +242,13 @@ static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM // WORK RAM
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
AM_RANGE(0xd10000, 0xd10001) AM_WRITENOP // ?
AM_RANGE(0xd30000, 0xd30001) AM_WRITENOP // ?
- AM_RANGE(0xd50000, 0xd50001) AM_WRITE_LEGACY(fromanc4_eeprom_w) // EEPROM DATA
+ AM_RANGE(0xd50000, 0xd50001) AM_WRITE(fromanc4_eeprom_w) // EEPROM DATA
- AM_RANGE(0xd70000, 0xd70001) AM_WRITE_LEGACY(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd70000, 0xd70001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd80000, 0xd8ffff) AM_WRITE_LEGACY(fromanc4_videoram_0_w) // VRAM FG (1P/2P)
AM_RANGE(0xd90000, 0xd9ffff) AM_WRITE_LEGACY(fromanc4_videoram_1_w) // VRAM BG (1P/2P)
@@ -268,7 +257,7 @@ static ADDRESS_MAP_START( fromanc4_main_map, AS_PROGRAM, 16, fromanc2_state )
AM_RANGE(0xdb0000, 0xdb0fff) AM_READWRITE_LEGACY(fromanc4_paletteram_0_r, fromanc4_paletteram_0_w) // PALETTE (1P)
AM_RANGE(0xdc0000, 0xdc0fff) AM_READWRITE_LEGACY(fromanc4_paletteram_1_r, fromanc4_paletteram_1_w) // PALETTE (2P)
- AM_RANGE(0xd10000, 0xd10001) AM_READ_LEGACY(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe00000, 0xe0001d) AM_WRITE_LEGACY(fromanc4_gfxreg_0_w) // SCROLL, GFXBANK (1P/2P)
@@ -292,10 +281,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_sub_io_map, AS_IO, 8, fromanc2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(fromanc2_subcpu_rombank_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(fromanc2_maincpu_r_l, fromanc2_maincpu_w_l) // to/from MAIN CPU
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(fromanc2_maincpu_r_h, fromanc2_maincpu_w_h) // to/from MAIN CPU
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(fromanc2_subcpu_nmi_clr)
+ AM_RANGE(0x00, 0x00) AM_WRITE(fromanc2_subcpu_rombank_w)
+ AM_RANGE(0x02, 0x02) AM_READWRITE(fromanc2_maincpu_r_l, fromanc2_maincpu_w_l) // to/from MAIN CPU
+ AM_RANGE(0x04, 0x04) AM_READWRITE(fromanc2_maincpu_r_h, fromanc2_maincpu_w_h) // to/from MAIN CPU
+ AM_RANGE(0x06, 0x06) AM_WRITE(fromanc2_subcpu_nmi_clr)
ADDRESS_MAP_END
@@ -309,7 +298,7 @@ static ADDRESS_MAP_START( fromanc2_sound_io_map, AS_IO, 8, fromanc2_state )
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch_r) AM_WRITENOP // snd cmd (1P) / ?
AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch2_r) // snd cmd (2P)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x0c, 0x0c) AM_READ_LEGACY(fromanc2_sndcpu_nmi_clr)
+ AM_RANGE(0x0c, 0x0c) AM_READ(fromanc2_sndcpu_nmi_clr)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index fa1570462ee..c6e88c4d0f9 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -53,10 +53,9 @@ Memo:
*
*************************************/
-static READ8_HANDLER( fromance_commanddata_r )
+READ8_MEMBER(fromance_state::fromance_commanddata_r)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
- return state->m_commanddata;
+ return m_commanddata;
}
@@ -68,42 +67,39 @@ static TIMER_CALLBACK( deferred_commanddata_w )
}
-static WRITE8_HANDLER( fromance_commanddata_w )
+WRITE8_MEMBER(fromance_state::fromance_commanddata_w)
{
/* do this on a timer to let the slave CPU synchronize */
- space->machine().scheduler().synchronize(FUNC(deferred_commanddata_w), data);
+ machine().scheduler().synchronize(FUNC(deferred_commanddata_w), data);
}
-static READ8_HANDLER( fromance_busycheck_main_r )
+READ8_MEMBER(fromance_state::fromance_busycheck_main_r)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
/* set a timer to force synchronization after the read */
- space->machine().scheduler().synchronize();
+ machine().scheduler().synchronize();
- if (!state->m_directionflag)
+ if (!m_directionflag)
return 0x00; // standby
else
return 0xff; // busy
}
-static READ8_HANDLER( fromance_busycheck_sub_r )
+READ8_MEMBER(fromance_state::fromance_busycheck_sub_r)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
- if (state->m_directionflag)
+ if (m_directionflag)
return 0xff; // standby
else
return 0x00; // busy
}
-static WRITE8_HANDLER( fromance_busycheck_sub_w )
+WRITE8_MEMBER(fromance_state::fromance_busycheck_sub_w)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
- state->m_directionflag = 0;
+ m_directionflag = 0;
}
@@ -114,9 +110,9 @@ static WRITE8_HANDLER( fromance_busycheck_sub_w )
*
*************************************/
-static WRITE8_HANDLER( fromance_rombank_w )
+WRITE8_MEMBER(fromance_state::fromance_rombank_w)
{
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
}
@@ -137,11 +133,10 @@ static WRITE8_DEVICE_HANDLER( fromance_adpcm_reset_w )
}
-static WRITE8_HANDLER( fromance_adpcm_w )
+WRITE8_MEMBER(fromance_state::fromance_adpcm_w)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
- state->m_adpcm_data = data;
- state->m_vclk_left = 2;
+ m_adpcm_data = data;
+ m_vclk_left = 2;
}
@@ -174,28 +169,26 @@ static void fromance_adpcm_int( device_t *device )
*
*************************************/
-static WRITE8_HANDLER( fromance_portselect_w )
+WRITE8_MEMBER(fromance_state::fromance_portselect_w)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
- state->m_portselect = data;
+ m_portselect = data;
}
-static READ8_HANDLER( fromance_keymatrix_r )
+READ8_MEMBER(fromance_state::fromance_keymatrix_r)
{
- fromance_state *state = space->machine().driver_data<fromance_state>();
int ret = 0xff;
- if (state->m_portselect & 0x01)
- ret &= input_port_read(space->machine(), "KEY1");
- if (state->m_portselect & 0x02)
- ret &= input_port_read(space->machine(), "KEY2");
- if (state->m_portselect & 0x04)
- ret &= input_port_read(space->machine(), "KEY3");
- if (state->m_portselect & 0x08)
- ret &= input_port_read(space->machine(), "KEY4");
- if (state->m_portselect & 0x10)
- ret &= input_port_read(space->machine(), "KEY5");
+ if (m_portselect & 0x01)
+ ret &= input_port_read(machine(), "KEY1");
+ if (m_portselect & 0x02)
+ ret &= input_port_read(machine(), "KEY2");
+ if (m_portselect & 0x04)
+ ret &= input_port_read(machine(), "KEY3");
+ if (m_portselect & 0x08)
+ ret &= input_port_read(machine(), "KEY4");
+ if (m_portselect & 0x10)
+ ret &= input_port_read(machine(), "KEY5");
return ret;
}
@@ -208,7 +201,7 @@ static READ8_HANDLER( fromance_keymatrix_r )
*
*************************************/
-static WRITE8_HANDLER( fromance_coinctr_w )
+WRITE8_MEMBER(fromance_state::fromance_coinctr_w)
{
//
}
@@ -224,10 +217,10 @@ static WRITE8_HANDLER( fromance_coinctr_w )
static ADDRESS_MAP_START( nekkyoku_main_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xf000, 0xf000) AM_READ_PORT("SERVICE") AM_WRITE_LEGACY(fromance_portselect_w)
- AM_RANGE(0xf001, 0xf001) AM_READ_LEGACY(fromance_keymatrix_r) AM_WRITENOP
- AM_RANGE(0xf002, 0xf002) AM_READ_PORT("COIN") AM_WRITE_LEGACY(fromance_coinctr_w)
- AM_RANGE(0xf003, 0xf003) AM_READWRITE_LEGACY(fromance_busycheck_main_r, fromance_commanddata_w)
+ AM_RANGE(0xf000, 0xf000) AM_READ_PORT("SERVICE") AM_WRITE(fromance_portselect_w)
+ AM_RANGE(0xf001, 0xf001) AM_READ(fromance_keymatrix_r) AM_WRITENOP
+ AM_RANGE(0xf002, 0xf002) AM_READ_PORT("COIN") AM_WRITE(fromance_coinctr_w)
+ AM_RANGE(0xf003, 0xf003) AM_READWRITE(fromance_busycheck_main_r, fromance_commanddata_w)
AM_RANGE(0xf004, 0xf004) AM_READ_PORT("DSW2")
AM_RANGE(0xf005, 0xf005) AM_READ_PORT("DSW1")
ADDRESS_MAP_END
@@ -236,10 +229,10 @@ static ADDRESS_MAP_START( fromance_main_map, AS_PROGRAM, 8, fromance_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0x9e89, 0x9e89) AM_READNOP // unknown (idolmj)
- AM_RANGE(0xe000, 0xe000) AM_READ_PORT("SERVICE") AM_WRITE_LEGACY(fromance_portselect_w)
- AM_RANGE(0xe001, 0xe001) AM_READ_LEGACY(fromance_keymatrix_r)
- AM_RANGE(0xe002, 0xe002) AM_READ_PORT("COIN") AM_WRITE_LEGACY(fromance_coinctr_w)
- AM_RANGE(0xe003, 0xe003) AM_READWRITE_LEGACY(fromance_busycheck_main_r, fromance_commanddata_w)
+ AM_RANGE(0xe000, 0xe000) AM_READ_PORT("SERVICE") AM_WRITE(fromance_portselect_w)
+ AM_RANGE(0xe001, 0xe001) AM_READ(fromance_keymatrix_r)
+ AM_RANGE(0xe002, 0xe002) AM_READ_PORT("COIN") AM_WRITE(fromance_coinctr_w)
+ AM_RANGE(0xe003, 0xe003) AM_READWRITE(fromance_busycheck_main_r, fromance_commanddata_w)
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("DSW2")
AM_RANGE(0xe005, 0xe005) AM_READ_PORT("DSW1")
ADDRESS_MAP_END
@@ -281,12 +274,12 @@ static ADDRESS_MAP_START( nekkyoku_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE_LEGACY(fromance_crtc_register_w)
AM_RANGE(0x12, 0x12) AM_READNOP // unknown
- AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(fromance_rombank_w)
- AM_RANGE(0xe1, 0xe1) AM_READWRITE_LEGACY(fromance_busycheck_sub_r, fromance_gfxreg_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(fromance_rombank_w)
+ AM_RANGE(0xe1, 0xe1) AM_READ(fromance_busycheck_sub_r) AM_WRITE_LEGACY(fromance_gfxreg_w)
AM_RANGE(0xe2, 0xe5) AM_WRITE_LEGACY(fromance_scroll_w)
- AM_RANGE(0xe6, 0xe6) AM_READWRITE_LEGACY(fromance_commanddata_r, fromance_busycheck_sub_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(0xe8, 0xe8) AM_WRITE_LEGACY(fromance_adpcm_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
@@ -295,12 +288,12 @@ static ADDRESS_MAP_START( idolmj_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE_LEGACY(fromance_crtc_register_w)
AM_RANGE(0x12, 0x12) AM_READNOP // unknown
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(fromance_rombank_w)
- AM_RANGE(0x21, 0x21) AM_READWRITE_LEGACY(fromance_busycheck_sub_r, fromance_gfxreg_w)
+ AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w)
+ AM_RANGE(0x21, 0x21) AM_READ(fromance_busycheck_sub_r) AM_WRITE_LEGACY(fromance_gfxreg_w)
AM_RANGE(0x22, 0x25) AM_WRITE_LEGACY(fromance_scroll_w)
- AM_RANGE(0x26, 0x26) AM_READWRITE_LEGACY(fromance_commanddata_r, fromance_busycheck_sub_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(0x28, 0x28) AM_WRITE_LEGACY(fromance_adpcm_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
@@ -309,12 +302,12 @@ static ADDRESS_MAP_START( fromance_sub_io_map, AS_IO, 8, fromance_state )
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(fromance_crtc_data_w)
AM_RANGE(0x11, 0x11) AM_WRITE_LEGACY(fromance_crtc_register_w)
AM_RANGE(0x12, 0x12) AM_READNOP // unknown
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(fromance_rombank_w)
- AM_RANGE(0x21, 0x21) AM_READWRITE_LEGACY(fromance_busycheck_sub_r, fromance_gfxreg_w)
+ AM_RANGE(0x20, 0x20) AM_WRITE(fromance_rombank_w)
+ AM_RANGE(0x21, 0x21) AM_READ(fromance_busycheck_sub_r) AM_WRITE_LEGACY(fromance_gfxreg_w)
AM_RANGE(0x22, 0x25) AM_WRITE_LEGACY(fromance_scroll_w)
- AM_RANGE(0x26, 0x26) AM_READWRITE_LEGACY(fromance_commanddata_r, fromance_busycheck_sub_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(0x28, 0x28) AM_WRITE_LEGACY(fromance_adpcm_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/funkybee.c b/src/mame/drivers/funkybee.c
index da3fa032f05..b488dedacba 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -77,15 +77,15 @@ Stephh's notes (based on the games Z80 code and some tests) :
#include "includes/funkybee.h"
-static READ8_HANDLER( funkybee_input_port_0_r )
+READ8_MEMBER(funkybee_state::funkybee_input_port_0_r)
{
watchdog_reset_r(space, 0);
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
}
-static WRITE8_HANDLER( funkybee_coin_counter_w )
+WRITE8_MEMBER(funkybee_state::funkybee_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
static ADDRESS_MAP_START( funkybee_map, AS_PROGRAM, 8, funkybee_state )
@@ -95,10 +95,10 @@ static ADDRESS_MAP_START( funkybee_map, AS_PROGRAM, 8, funkybee_state )
AM_RANGE(0xc000, 0xdfff) AM_RAM_WRITE_LEGACY(funkybee_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(funkybee_scroll_w)
AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(funkybee_flipscreen_w)
- AM_RANGE(0xe802, 0xe803) AM_WRITE_LEGACY(funkybee_coin_counter_w)
+ AM_RANGE(0xe802, 0xe803) AM_WRITE(funkybee_coin_counter_w)
AM_RANGE(0xe805, 0xe805) AM_WRITE_LEGACY(funkybee_gfx_bank_w)
AM_RANGE(0xf000, 0xf000) AM_READNOP /* IRQ Ack */
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(funkybee_input_port_0_r, watchdog_reset_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(funkybee_input_port_0_r, watchdog_reset_w)
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("IN2")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index 1a5107e4047..ac3e17c43cb 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -865,9 +865,9 @@ ADDRESS_MAP_END
static UINT8 funquiz_question_bank = 0x80;
-static READ8_HANDLER( questions_r )
+READ8_MEMBER(funworld_state::questions_r)
{
- UINT8* quiz = space->machine().region("questions")->base();
+ UINT8* quiz = machine().region("questions")->base();
int extraoffset = ((funquiz_question_bank & 0x1f) * 0x8000);
// if 0x80 is set, read the 2nd half of the question rom (contains header info)
@@ -876,7 +876,7 @@ static READ8_HANDLER( questions_r )
return quiz[offset + extraoffset];
}
-static WRITE8_HANDLER( question_bank_w )
+WRITE8_MEMBER(funworld_state::question_bank_w)
{
// printf("question bank write %02x\n", data);
funquiz_question_bank = data;
@@ -891,11 +891,11 @@ static ADDRESS_MAP_START( funquiz_map, AS_PROGRAM, 8, funworld_state )
AM_RANGE(0x0e00, 0x0e00) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x0e01, 0x0e01) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(question_bank_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(question_bank_w)
AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE_LEGACY(funworld_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x3000, 0x3fff) AM_RAM_WRITE_LEGACY(funworld_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4000, 0x7fff) AM_READ_LEGACY(questions_r)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(questions_r)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 3c7470783dd..0efdf552e77 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -54,22 +54,21 @@ Note: SW2, SW3 & SW4 not populated
#include "includes/funybubl.h"
-static WRITE8_HANDLER ( funybubl_vidram_bank_w )
+WRITE8_MEMBER(funybubl_state::funybubl_vidram_bank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 1);
+ memory_set_bank(machine(), "bank1", data & 1);
}
-static WRITE8_HANDLER ( funybubl_cpurombank_w )
+WRITE8_MEMBER(funybubl_state::funybubl_cpurombank_w)
{
- memory_set_bank(space->machine(), "bank2", data & 0x3f); // should we add a check that (data&0x3f) < #banks?
+ memory_set_bank(machine(), "bank2", data & 0x3f); // should we add a check that (data&0x3f) < #banks?
}
-static WRITE8_HANDLER( funybubl_soundcommand_w )
+WRITE8_MEMBER(funybubl_state::funybubl_soundcommand_w)
{
- funybubl_state *state = space->machine().driver_data<funybubl_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
static WRITE8_DEVICE_HANDLER( funybubl_oki_bank_sw )
@@ -89,10 +88,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, funybubl_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(funybubl_vidram_bank_w) // vidram bank
- AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE_LEGACY(funybubl_cpurombank_w) // rom bank?
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE(funybubl_vidram_bank_w) // vidram bank
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(funybubl_cpurombank_w) // rom bank?
AM_RANGE(0x02, 0x02) AM_READ_PORT("P2")
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW") AM_WRITE_LEGACY(funybubl_soundcommand_w)
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW") AM_WRITE(funybubl_soundcommand_w)
AM_RANGE(0x06, 0x06) AM_READNOP /* Nothing is done with the data read */
AM_RANGE(0x06, 0x06) AM_WRITENOP /* Written directly after IO port 0 */
AM_RANGE(0x07, 0x07) AM_WRITENOP /* Reset something on startup - Sound CPU ?? */
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 62c31b8fc8e..2788f4ea087 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -62,28 +62,26 @@ To Do:
***************************************************************************/
-static WRITE16_HANDLER( fuuki16_vregs_w )
+WRITE16_MEMBER(fuuki16_state::fuuki16_vregs_w)
{
- fuuki16_state *state = space->machine().driver_data<fuuki16_state>();
- UINT16 old_data = state->m_vregs[offset];
- UINT16 new_data = COMBINE_DATA(&state->m_vregs[offset]);
+ UINT16 old_data = m_vregs[offset];
+ UINT16 new_data = COMBINE_DATA(&m_vregs[offset]);
if ((offset == 0x1c/2) && old_data != new_data)
{
- const rectangle &visarea = space->machine().primary_screen->visible_area();
- attotime period = space->machine().primary_screen->frame_period();
- state->m_raster_interrupt_timer->adjust(space->machine().primary_screen->time_until_pos(new_data, visarea.max_x + 1), 0, period);
+ const rectangle &visarea = machine().primary_screen->visible_area();
+ attotime period = machine().primary_screen->frame_period();
+ m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(new_data, visarea.max_x + 1), 0, period);
}
}
-static WRITE16_HANDLER( fuuki16_sound_command_w )
+WRITE16_MEMBER(fuuki16_state::fuuki16_sound_command_w)
{
- fuuki16_state *state = space->machine().driver_data<fuuki16_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space,0,data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
-// device_spin_until_time(&space->device(), attotime::from_usec(50)); // Allow the other CPU to reply
- space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); // Fixes glitching in rasters
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+// device_spin_until_time(&space.device(), attotime::from_usec(50)); // Allow the other CPU to reply
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); // Fixes glitching in rasters
}
}
@@ -99,8 +97,8 @@ static ADDRESS_MAP_START( fuuki16_map, AS_PROGRAM, 16, fuuki16_state )
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x810000, 0x810001) AM_READ_PORT("P1_P2")
AM_RANGE(0x880000, 0x880001) AM_READ_PORT("DSW")
- AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE_LEGACY(fuuki16_sound_command_w) // To Sound CPU
- AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE_LEGACY(fuuki16_vregs_w) AM_BASE(m_vregs ) // Video Registers
+ AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(fuuki16_sound_command_w) // To Sound CPU
+ AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(fuuki16_vregs_w) AM_BASE(m_vregs ) // Video Registers
AM_RANGE(0x8d0000, 0x8d0003) AM_RAM AM_BASE(m_unknown) //
AM_RANGE(0x8e0000, 0x8e0001) AM_RAM AM_BASE(m_priority) //
ADDRESS_MAP_END
@@ -114,12 +112,12 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE8_HANDLER( fuuki16_sound_rombank_w )
+WRITE8_MEMBER(fuuki16_state::fuuki16_sound_rombank_w)
{
if (data <= 2)
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
else
- logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #1 - PC %04X: unknown bank bits: %02X\n", cpu_get_pc(&space.device()), data);
}
static WRITE8_DEVICE_HANDLER( fuuki16_oki_banking_w )
@@ -141,7 +139,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki16_sound_io_map, AS_IO, 8, fuuki16_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(fuuki16_sound_rombank_w) // ROM Bank
+ AM_RANGE(0x00, 0x00) AM_WRITE(fuuki16_sound_rombank_w) // ROM Bank
AM_RANGE(0x11, 0x11) AM_READ_LEGACY(soundlatch_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(0x30, 0x30) AM_WRITENOP // ? In the NMI routine
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 033d9b9a11d..81470792b49 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -164,31 +164,30 @@ FG-3J ROM-J 507KA0301P04 Rev:1.3
#include "includes/fuukifg3.h"
-static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
+WRITE32_MEMBER(fuuki32_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
{
- fuuki32_state *state = space->machine().driver_data<fuuki32_state>();
if(ACCESSING_BITS_16_31)
{
int r,g,b;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- r = (state->m_paletteram[offset] & 0x7c000000) >> (10 + 16);
- g = (state->m_paletteram[offset] & 0x03e00000) >> (5 + 16);
- b = (state->m_paletteram[offset] & 0x001f0000) >> (0 + 16);
+ r = (m_paletteram[offset] & 0x7c000000) >> (10 + 16);
+ g = (m_paletteram[offset] & 0x03e00000) >> (5 + 16);
+ b = (m_paletteram[offset] & 0x001f0000) >> (0 + 16);
- palette_set_color_rgb(space->machine(), offset * 2, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), offset * 2, pal5bit(r), pal5bit(g), pal5bit(b));
}
if(ACCESSING_BITS_0_15)
{
int r,g,b;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- r = (state->m_paletteram[offset] & 0x00007c00) >> (10);
- g = (state->m_paletteram[offset] & 0x000003e0) >> (5);
- b = (state->m_paletteram[offset] & 0x0000001f) >> (0);
+ r = (m_paletteram[offset] & 0x00007c00) >> (10);
+ g = (m_paletteram[offset] & 0x000003e0) >> (5);
+ b = (m_paletteram[offset] & 0x0000001f) >> (0);
- palette_set_color_rgb(space->machine(), offset * 2 + 1, pal5bit(r), pal5bit(g), pal5bit(b));
+ palette_set_color_rgb(machine(), offset * 2 + 1, pal5bit(r), pal5bit(g), pal5bit(b));
}
}
@@ -201,38 +200,35 @@ static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
***************************************************************************/
/* Sound comms */
-static READ32_HANDLER( snd_020_r )
+READ32_MEMBER(fuuki32_state::snd_020_r)
{
- fuuki32_state *state = space->machine().driver_data<fuuki32_state>();
- space->machine().scheduler().synchronize();
- UINT32 retdata = state->m_shared_ram[offset * 2] << 16 | state->m_shared_ram[(offset * 2) + 1];
+ machine().scheduler().synchronize();
+ UINT32 retdata = m_shared_ram[offset * 2] << 16 | m_shared_ram[(offset * 2) + 1];
return retdata;
}
-static WRITE32_HANDLER( snd_020_w )
+WRITE32_MEMBER(fuuki32_state::snd_020_w)
{
- fuuki32_state *state = space->machine().driver_data<fuuki32_state>();
- space->machine().scheduler().synchronize();
+ machine().scheduler().synchronize();
if (ACCESSING_BITS_16_23)
- state->m_shared_ram[offset * 2] = data >> 16;
+ m_shared_ram[offset * 2] = data >> 16;
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[(offset * 2) + 1] = data & 0xff;
+ m_shared_ram[(offset * 2) + 1] = data & 0xff;
}
-static WRITE32_HANDLER( fuuki32_vregs_w )
+WRITE32_MEMBER(fuuki32_state::fuuki32_vregs_w)
{
- fuuki32_state *state = space->machine().driver_data<fuuki32_state>();
- if (state->m_vregs[offset] != data)
+ if (m_vregs[offset] != data)
{
- COMBINE_DATA(&state->m_vregs[offset]);
+ COMBINE_DATA(&m_vregs[offset]);
if (offset == 0x1c / 4)
{
- const rectangle &visarea = space->machine().primary_screen->visible_area();
- attotime period = space->machine().primary_screen->frame_period();
- state->m_raster_interrupt_timer->adjust(space->machine().primary_screen->time_until_pos(state->m_vregs[0x1c / 4] >> 16, visarea.max_x + 1), 0, period);
+ const rectangle &visarea = machine().primary_screen->visible_area();
+ attotime period = machine().primary_screen->frame_period();
+ m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(m_vregs[0x1c / 4] >> 16, visarea.max_x + 1), 0, period);
}
}
}
@@ -248,17 +244,17 @@ static ADDRESS_MAP_START( fuuki32_map, AS_PROGRAM, 32, fuuki32_state )
AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE_LEGACY(fuuki32_vram_3_w) AM_BASE(m_vram[3]) // Tilemap bg2
AM_RANGE(0x508000, 0x517fff) AM_RAM // More tilemap, or linescroll? Seems to be empty all of the time
AM_RANGE(0x600000, 0x601fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE_LEGACY(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(m_paletteram) // Palette
+ AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(m_paletteram) // Palette
AM_RANGE(0x800000, 0x800003) AM_READ_PORT("800000") AM_WRITENOP // Coin
AM_RANGE(0x810000, 0x810003) AM_READ_PORT("810000") AM_WRITENOP // Player Inputs
AM_RANGE(0x880000, 0x880003) AM_READ_PORT("880000") // Service + DIPS
AM_RANGE(0x890000, 0x890003) AM_READ_PORT("890000") // More DIPS
- AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE_LEGACY(fuuki32_vregs_w) AM_BASE(m_vregs) // Video Registers
+ AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(fuuki32_vregs_w) AM_BASE(m_vregs) // Video Registers
AM_RANGE(0x8d0000, 0x8d0003) AM_RAM // Flipscreen Related
AM_RANGE(0x8e0000, 0x8e0003) AM_RAM AM_BASE(m_priority) // Controls layer order
- AM_RANGE(0x903fe0, 0x903fff) AM_READWRITE_LEGACY(snd_020_r, snd_020_w) // Shared with Z80
+ AM_RANGE(0x903fe0, 0x903fff) AM_READWRITE(snd_020_r, snd_020_w) // Shared with Z80
AM_RANGE(0xa00000, 0xa00003) AM_WRITEONLY AM_BASE(m_tilebank) // Tilebank
ADDRESS_MAP_END
@@ -269,45 +265,43 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE8_HANDLER ( fuuki32_sound_bw_w )
+WRITE8_MEMBER(fuuki32_state::fuuki32_sound_bw_w)
{
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
}
-static READ8_HANDLER( snd_z80_r )
+READ8_MEMBER(fuuki32_state::snd_z80_r)
{
- fuuki32_state *state = space->machine().driver_data<fuuki32_state>();
- UINT8 retdata = state->m_shared_ram[offset];
+ UINT8 retdata = m_shared_ram[offset];
return retdata;
}
-static WRITE8_HANDLER( snd_z80_w )
+WRITE8_MEMBER(fuuki32_state::snd_z80_w)
{
- fuuki32_state *state = space->machine().driver_data<fuuki32_state>();
- state->m_shared_ram[offset] = data;
+ m_shared_ram[offset] = data;
}
-static WRITE8_HANDLER( snd_ymf278b_w )
+WRITE8_MEMBER(fuuki32_state::snd_ymf278b_w)
{
- ymf278b_w(space->machine().device("ymf1"), offset, data);
+ ymf278b_w(machine().device("ymf1"), offset, data);
// also write to ymf262
if (offset < 4)
- ymf262_w(space->machine().device("ymf2"), offset, data);
+ ymf262_w(machine().device("ymf2"), offset, data);
}
static ADDRESS_MAP_START( fuuki32_sound_map, AS_PROGRAM, 8, fuuki32_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
- AM_RANGE(0x7ff0, 0x7fff) AM_READWRITE_LEGACY(snd_z80_r, snd_z80_w)
+ AM_RANGE(0x7ff0, 0x7fff) AM_READWRITE(snd_z80_r, snd_z80_w)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki32_sound_io_map, AS_IO, 8, fuuki32_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(fuuki32_sound_bw_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(fuuki32_sound_bw_w)
AM_RANGE(0x30, 0x30) AM_WRITENOP // leftover/unused nmi handler related
- AM_RANGE(0x40, 0x45) AM_DEVREAD_LEGACY("ymf1", ymf278b_r) AM_WRITE_LEGACY(snd_ymf278b_w)
+ AM_RANGE(0x40, 0x45) AM_DEVREAD_LEGACY("ymf1", ymf278b_r) AM_WRITE(snd_ymf278b_w)
ADDRESS_MAP_END
/***************************************************************************
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 03a84acebbb..0a730c84939 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -31,18 +31,17 @@ Year Game PCB NOTES
*
*************************************/
-static WRITE16_HANDLER( bigkarnk_sound_command_w )
+WRITE16_MEMBER(gaelco_state::bigkarnk_sound_command_w)
{
- gaelco_state *state = space->machine().driver_data<gaelco_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, M6809_FIRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_FIRQ_LINE, HOLD_LINE);
}
}
-static WRITE16_HANDLER( bigkarnk_coin_w )
+WRITE16_MEMBER(gaelco_state::bigkarnk_coin_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -50,19 +49,19 @@ static WRITE16_HANDLER( bigkarnk_coin_w )
{
case 0x00: /* Coin Lockouts */
case 0x01:
- coin_lockout_w(space->machine(), (offset >> 3) & 0x01, ~data & 0x01);
+ coin_lockout_w(machine(), (offset >> 3) & 0x01, ~data & 0x01);
break;
case 0x02: /* Coin Counters */
case 0x03:
- coin_counter_w(space->machine(), (offset >> 3) & 0x01, data & 0x01);
+ coin_counter_w(machine(), (offset >> 3) & 0x01, data & 0x01);
break;
}
}
}
-static WRITE16_HANDLER( OKIM6295_bankswitch_w )
+WRITE16_MEMBER(gaelco_state::OKIM6295_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("oki")->base();
+ UINT8 *RAM = machine().region("oki")->base();
if (ACCESSING_BITS_0_7)
{
@@ -72,47 +71,43 @@ static WRITE16_HANDLER( OKIM6295_bankswitch_w )
/*********** Squash Encryption Related Code ******************/
-static WRITE16_HANDLER( gaelco_vram_encrypted_w )
+WRITE16_MEMBER(gaelco_state::gaelco_vram_encrypted_w)
{
- gaelco_state *state = space->machine().driver_data<gaelco_state>();
// mame_printf_debug("gaelco_vram_encrypted_w!!\n");
- data = gaelco_decrypt(space, offset, data, 0x0f, 0x4228);
- COMBINE_DATA(&state->m_videoram[offset]);
+ data = gaelco_decrypt(&space, offset, data, 0x0f, 0x4228);
+ COMBINE_DATA(&m_videoram[offset]);
- state->m_tilemap[offset >> 11]->mark_tile_dirty(((offset << 1) & 0x0fff) >> 2);
+ m_tilemap[offset >> 11]->mark_tile_dirty(((offset << 1) & 0x0fff) >> 2);
}
-static WRITE16_HANDLER(gaelco_encrypted_w)
+WRITE16_MEMBER(gaelco_state::gaelco_encrypted_w)
{
- gaelco_state *state = space->machine().driver_data<gaelco_state>();
// mame_printf_debug("gaelco_encrypted_w!!\n");
- data = gaelco_decrypt(space, offset, data, 0x0f, 0x4228);
- COMBINE_DATA(&state->m_screen[offset]);
+ data = gaelco_decrypt(&space, offset, data, 0x0f, 0x4228);
+ COMBINE_DATA(&m_screen[offset]);
}
/*********** Thunder Hoop Encryption Related Code ******************/
-static WRITE16_HANDLER( thoop_vram_encrypted_w )
+WRITE16_MEMBER(gaelco_state::thoop_vram_encrypted_w)
{
- gaelco_state *state = space->machine().driver_data<gaelco_state>();
// mame_printf_debug("gaelco_vram_encrypted_w!!\n");
- data = gaelco_decrypt(space, offset, data, 0x0e, 0x4228);
- COMBINE_DATA(&state->m_videoram[offset]);
+ data = gaelco_decrypt(&space, offset, data, 0x0e, 0x4228);
+ COMBINE_DATA(&m_videoram[offset]);
- state->m_tilemap[offset >> 11]->mark_tile_dirty(((offset << 1) & 0x0fff) >> 2);
+ m_tilemap[offset >> 11]->mark_tile_dirty(((offset << 1) & 0x0fff) >> 2);
}
-static WRITE16_HANDLER(thoop_encrypted_w)
+WRITE16_MEMBER(gaelco_state::thoop_encrypted_w)
{
- gaelco_state *state = space->machine().driver_data<gaelco_state>();
// mame_printf_debug("gaelco_encrypted_w!!\n");
- data = gaelco_decrypt(space, offset, data, 0x0e, 0x4228);
- COMBINE_DATA(&state->m_screen[offset]);
+ data = gaelco_decrypt(&space, offset, data, 0x0e, 0x4228);
+ COMBINE_DATA(&m_screen[offset]);
}
/*************************************
@@ -134,8 +129,8 @@ static ADDRESS_MAP_START( bigkarnk_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SERVICE")
- AM_RANGE(0x70000e, 0x70000f) AM_WRITE_LEGACY(bigkarnk_sound_command_w) /* Triggers a FIRQ on the sound CPU */
- AM_RANGE(0x70000a, 0x70003b) AM_WRITE_LEGACY(bigkarnk_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x70000e, 0x70000f) AM_WRITE(bigkarnk_sound_command_w) /* Triggers a FIRQ on the sound CPU */
+ AM_RANGE(0x70000a, 0x70003b) AM_WRITE(bigkarnk_coin_w) /* Coin Counters + Coin Lockout */
AM_RANGE(0xff8000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
@@ -160,15 +155,15 @@ static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) /* OKI6295 status register */
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
- AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE_LEGACY(gaelco_vram_encrypted_w) AM_BASE(m_videoram) /* Video RAM */
- AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE_LEGACY(gaelco_encrypted_w) AM_BASE(m_screen) /* Screen RAM */
+ AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(gaelco_vram_encrypted_w) AM_BASE(m_videoram) /* Video RAM */
+ AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(gaelco_encrypted_w) AM_BASE(m_screen) /* Screen RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(m_vregs) /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE_LEGACY(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
@@ -177,15 +172,15 @@ static ADDRESS_MAP_START( squash_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) /* OKI6295 status register */
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( thoop_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
- AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE_LEGACY(thoop_vram_encrypted_w) AM_BASE(m_videoram) /* Video RAM */
- AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE_LEGACY(thoop_encrypted_w) AM_BASE(m_screen) /* Screen RAM */
+ AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(thoop_vram_encrypted_w) AM_BASE(m_videoram) /* Video RAM */
+ AM_RANGE(0x102000, 0x103fff) AM_RAM_WRITE(thoop_encrypted_w) AM_BASE(m_screen) /* Screen RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(m_vregs) /* Video Registers */
// AM_RANGE(0x10800c, 0x10800d) AM_WRITE_LEGACY(watchdog_reset_w) /* INT 6 ACK/Watchdog timer */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
@@ -194,7 +189,7 @@ static ADDRESS_MAP_START( thoop_map, AS_PROGRAM, 16, gaelco_state )
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) /* OKI6295 status register */
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index 1f7d63837f2..5ac239d685e 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -206,10 +206,10 @@ ROM_END
BANG
============================================================================*/
-static READ16_HANDLER(p1_gun_x) {return (input_port_read(space->machine(), "LIGHT0_X") * 320 / 0x100) + 1;}
-static READ16_HANDLER(p1_gun_y) {return (input_port_read(space->machine(), "LIGHT0_Y") * 240 / 0x100) - 4;}
-static READ16_HANDLER(p2_gun_x) {return (input_port_read(space->machine(), "LIGHT1_X") * 320 / 0x100) + 1;}
-static READ16_HANDLER(p2_gun_y) {return (input_port_read(space->machine(), "LIGHT1_Y") * 240 / 0x100) - 4;}
+READ16_MEMBER(gaelco2_state::p1_gun_x){return (input_port_read(machine(), "LIGHT0_X") * 320 / 0x100) + 1;}
+READ16_MEMBER(gaelco2_state::p1_gun_y){return (input_port_read(machine(), "LIGHT0_Y") * 240 / 0x100) - 4;}
+READ16_MEMBER(gaelco2_state::p2_gun_x){return (input_port_read(machine(), "LIGHT1_X") * 320 / 0x100) + 1;}
+READ16_MEMBER(gaelco2_state::p2_gun_y){return (input_port_read(machine(), "LIGHT1_Y") * 240 / 0x100) - 4;}
static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
@@ -227,10 +227,10 @@ static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x30000c, 0x30000d) AM_DEVWRITE_LEGACY("eeprom", gaelco2_eeprom_cs_w) /* EEPROM chip select */
AM_RANGE(0x300010, 0x300011) AM_READ_PORT("P2")
AM_RANGE(0x300020, 0x300021) AM_READ_PORT("COIN")
- AM_RANGE(0x310000, 0x310001) AM_READ_LEGACY(p1_gun_x) AM_WRITE_LEGACY(bang_clr_gun_int_w) /* Gun 1P X */ /* CLR INT Gun */
- AM_RANGE(0x310002, 0x310003) AM_READ_LEGACY(p2_gun_x) /* Gun 2P X */
- AM_RANGE(0x310004, 0x310005) AM_READ_LEGACY(p1_gun_y) /* Gun 1P Y */
- AM_RANGE(0x310006, 0x310007) AM_READ_LEGACY(p2_gun_y) /* Gun 2P Y */
+ AM_RANGE(0x310000, 0x310001) AM_READ(p1_gun_x) AM_WRITE_LEGACY(bang_clr_gun_int_w) /* Gun 1P X */ /* CLR INT Gun */
+ AM_RANGE(0x310002, 0x310003) AM_READ(p2_gun_x) /* Gun 2P X */
+ AM_RANGE(0x310004, 0x310005) AM_READ(p1_gun_y) /* Gun 1P Y */
+ AM_RANGE(0x310006, 0x310007) AM_READ(p2_gun_y) /* Gun 2P Y */
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
@@ -635,7 +635,7 @@ ROM_END
============================================================================*/
/* the game expects this value each frame to know that the DS5002FP is alive */
-static READ16_HANDLER ( dallas_kludge_r )
+READ16_MEMBER(gaelco2_state::dallas_kludge_r)
{
return 0x0200;
}
@@ -651,7 +651,7 @@ static ADDRESS_MAP_START( touchgo_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x300004, 0x300005) AM_READ_PORT("IN2") /* COINSW + Input 3P */
AM_RANGE(0x300006, 0x300007) AM_READ_PORT("IN3") /* SERVICESW + Input 4P */
AM_RANGE(0x500000, 0x50001f) AM_WRITE_LEGACY(touchgo_coin_w) /* Coin counters */
- AM_RANGE(0xfefffa, 0xfefffb) AM_RAM_READ_LEGACY(dallas_kludge_r) /* DS5002FP related patch */
+ AM_RANGE(0xfefffa, 0xfefffb) AM_RAM_READ(dallas_kludge_r) /* DS5002FP related patch */
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index abbd698d487..6ea1f2888e9 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -261,19 +261,19 @@ static INTERRUPT_GEN( vblank_gen )
}
-static WRITE16_HANDLER( irq_ack_w )
+WRITE16_MEMBER(gaelco3d_state::irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
}
-static WRITE32_HANDLER( irq_ack32_w )
+WRITE32_MEMBER(gaelco3d_state::irq_ack32_w)
{
if (mem_mask == 0xffff0000)
irq_ack_w(space, offset, data, mem_mask >> 16);
else if (ACCESSING_BITS_0_7)
- gaelco_serial_tr_w(space->machine().device("serial"), 0, data & 0x01);
+ gaelco_serial_tr_w(machine().device("serial"), 0, data & 0x01);
else
- logerror("%06X:irq_ack_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:irq_ack_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
@@ -371,42 +371,39 @@ static TIMER_CALLBACK( delayed_sound_w )
}
-static WRITE16_HANDLER( sound_data_w )
+WRITE16_MEMBER(gaelco3d_state::sound_data_w)
{
if (LOG)
- logerror("%06X:sound_data_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:sound_data_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
if (ACCESSING_BITS_0_7)
- space->machine().scheduler().synchronize(FUNC(delayed_sound_w), data & 0xff);
+ machine().scheduler().synchronize(FUNC(delayed_sound_w), data & 0xff);
}
-static READ16_HANDLER( sound_data_r )
+READ16_MEMBER(gaelco3d_state::sound_data_r)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
if (LOG)
- logerror("sound_data_r(%02X)\n", state->m_sound_data);
- cputag_set_input_line(space->machine(), "adsp", ADSP2115_IRQ2, CLEAR_LINE);
- return state->m_sound_data;
+ logerror("sound_data_r(%02X)\n", m_sound_data);
+ cputag_set_input_line(machine(), "adsp", ADSP2115_IRQ2, CLEAR_LINE);
+ return m_sound_data;
}
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(gaelco3d_state::sound_status_r)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
if (LOG)
- logerror("%06X:sound_status_r(%02X) = %02X\n", cpu_get_pc(&space->device()), offset, state->m_sound_status);
+ logerror("%06X:sound_status_r(%02X) = %02X\n", cpu_get_pc(&space.device()), offset, m_sound_status);
if (ACCESSING_BITS_0_7)
- return state->m_sound_status;
+ return m_sound_status;
return 0xffff;
}
-static WRITE16_HANDLER( sound_status_w )
+WRITE16_MEMBER(gaelco3d_state::sound_status_w)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
if (LOG)
- logerror("sound_status_w(%02X)\n", state->m_sound_data);
- state->m_sound_status = data;
+ logerror("sound_status_w(%02X)\n", m_sound_data);
+ m_sound_status = data;
}
@@ -425,46 +422,44 @@ static CUSTOM_INPUT( analog_bit_r )
}
-static WRITE16_HANDLER( analog_port_clock_w )
+WRITE16_MEMBER(gaelco3d_state::analog_port_clock_w)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
/* a zero/one combo is written here to clock the next analog port bit */
if (ACCESSING_BITS_0_7)
{
if (!(data & 0xff))
{
- state->m_analog_ports[0] <<= 1;
- state->m_analog_ports[1] <<= 1;
- state->m_analog_ports[2] <<= 1;
- state->m_analog_ports[3] <<= 1;
+ m_analog_ports[0] <<= 1;
+ m_analog_ports[1] <<= 1;
+ m_analog_ports[2] <<= 1;
+ m_analog_ports[3] <<= 1;
}
}
else
{
if (LOG)
- logerror("%06X:analog_port_clock_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:analog_port_clock_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
}
-static WRITE16_HANDLER( analog_port_latch_w )
+WRITE16_MEMBER(gaelco3d_state::analog_port_latch_w)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
/* a zero is written here to read the analog ports, and a one is written when finished */
if (ACCESSING_BITS_0_7)
{
if (!(data & 0xff))
{
- state->m_analog_ports[0] = input_port_read_safe(space->machine(), "ANALOG0", 0);
- state->m_analog_ports[1] = input_port_read_safe(space->machine(), "ANALOG1", 0);
- state->m_analog_ports[2] = input_port_read_safe(space->machine(), "ANALOG2", 0);
- state->m_analog_ports[3] = input_port_read_safe(space->machine(), "ANALOG3", 0);
+ m_analog_ports[0] = input_port_read_safe(machine(), "ANALOG0", 0);
+ m_analog_ports[1] = input_port_read_safe(machine(), "ANALOG1", 0);
+ m_analog_ports[2] = input_port_read_safe(machine(), "ANALOG2", 0);
+ m_analog_ports[3] = input_port_read_safe(machine(), "ANALOG3", 0);
}
}
else
{
if (LOG)
- logerror("%06X:analog_port_latch_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:analog_port_latch_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
}
@@ -477,18 +472,16 @@ static WRITE16_HANDLER( analog_port_latch_w )
*
*************************************/
-static READ32_HANDLER( tms_m68k_ram_r )
+READ32_MEMBER(gaelco3d_state::tms_m68k_ram_r)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
-// logerror("%06X:tms_m68k_ram_r(%04X) = %08X\n", cpu_get_pc(&space->device()), offset, !(offset & 1) ? ((INT32)state->m_m68k_ram_base[offset/2] >> 16) : (int)(INT16)state->m_m68k_ram_base[offset/2]);
- return (INT32)(INT16)state->m_m68k_ram_base[offset ^ state->m_tms_offset_xor];
+// logerror("%06X:tms_m68k_ram_r(%04X) = %08X\n", cpu_get_pc(&space.device()), offset, !(offset & 1) ? ((INT32)m_m68k_ram_base[offset/2] >> 16) : (int)(INT16)m_m68k_ram_base[offset/2]);
+ return (INT32)(INT16)m_m68k_ram_base[offset ^ m_tms_offset_xor];
}
-static WRITE32_HANDLER( tms_m68k_ram_w )
+WRITE32_MEMBER(gaelco3d_state::tms_m68k_ram_w)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
- state->m_m68k_ram_base[offset ^ state->m_tms_offset_xor] = data;
+ m_m68k_ram_base[offset ^ m_tms_offset_xor] = data;
}
@@ -507,40 +500,39 @@ static void iack_w(tms3203x_device &device, UINT8 state, offs_t addr)
*
*************************************/
-static WRITE16_HANDLER( tms_reset_w )
+WRITE16_MEMBER(gaelco3d_state::tms_reset_w)
{
/* this is set to 0 while data is uploaded, then set to $ffff after it is done */
/* it does not ever appear to be touched after that */
if (LOG)
- logerror("%06X:tms_reset_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
- cputag_set_input_line(space->machine(), "tms", INPUT_LINE_RESET, (data == 0xffff) ? CLEAR_LINE : ASSERT_LINE);
+ logerror("%06X:tms_reset_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
+ cputag_set_input_line(machine(), "tms", INPUT_LINE_RESET, (data == 0xffff) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE16_HANDLER( tms_irq_w )
+WRITE16_MEMBER(gaelco3d_state::tms_irq_w)
{
/* this is written twice, 0,1, in quick succession */
/* done after uploading, and after modifying the comm area */
if (LOG)
- logerror("%06X:tms_irq_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:tms_irq_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
if (ACCESSING_BITS_0_7)
- cputag_set_input_line(space->machine(), "tms", 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "tms", 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE16_HANDLER( tms_control3_w )
+WRITE16_MEMBER(gaelco3d_state::tms_control3_w)
{
if (LOG)
- logerror("%06X:tms_control3_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:tms_control3_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
-static WRITE16_HANDLER( tms_comm_w )
+WRITE16_MEMBER(gaelco3d_state::tms_comm_w)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
- COMBINE_DATA(&state->m_tms_comm_base[offset ^ state->m_tms_offset_xor]);
+ COMBINE_DATA(&m_tms_comm_base[offset ^ m_tms_offset_xor]);
if (LOG)
- logerror("%06X:tms_comm_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset*2, data, mem_mask);
+ logerror("%06X:tms_comm_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset*2, data, mem_mask);
}
@@ -582,21 +574,20 @@ ADSP control 3FF2 W = 4A0F (S1_CONTROL_REG)
ADSP control 3FFF W = 0C08 (SYSCONTROL_REG)
*/
-static WRITE16_HANDLER( adsp_control_w )
+WRITE16_MEMBER(gaelco3d_state::adsp_control_w)
{
- gaelco3d_state *state = space->machine().driver_data<gaelco3d_state>();
if (LOG)
logerror("ADSP control %04X W = %04X\n", 0x3fe0 + offset, data);
- state->m_adsp_control_regs[offset] = data;
+ m_adsp_control_regs[offset] = data;
switch (offset)
{
case SYSCONTROL_REG:
/* see if SPORT1 got disabled */
if ((data & 0x0800) == 0)
{
- dmadac_enable(&state->m_dmadac[0], SOUND_CHANNELS, 0);
- state->m_adsp_autobuffer_timer->reset();
+ dmadac_enable(&m_dmadac[0], SOUND_CHANNELS, 0);
+ m_adsp_autobuffer_timer->reset();
}
break;
@@ -604,8 +595,8 @@ static WRITE16_HANDLER( adsp_control_w )
/* autobuffer off: nuke the timer, and disable the DAC */
if ((data & 0x0002) == 0)
{
- dmadac_enable(&state->m_dmadac[0], SOUND_CHANNELS, 0);
- state->m_adsp_autobuffer_timer->reset();
+ dmadac_enable(&m_dmadac[0], SOUND_CHANNELS, 0);
+ m_adsp_autobuffer_timer->reset();
}
break;
@@ -619,11 +610,11 @@ static WRITE16_HANDLER( adsp_control_w )
}
-static WRITE16_HANDLER( adsp_rombank_w )
+WRITE16_MEMBER(gaelco3d_state::adsp_rombank_w)
{
if (LOG)
logerror("adsp_rombank_w(%d) = %04X\n", offset, data);
- memory_set_bank(space->machine(), "bank1", (offset & 1) * 0x80 + (data & 0x7f));
+ memory_set_bank(machine(), "bank1", (offset & 1) * 0x80 + (data & 0x7f));
}
@@ -741,31 +732,31 @@ static void adsp_tx_callback(adsp21xx_device &device, int port, INT32 data)
*************************************/
-static WRITE32_HANDLER( radikalb_lamp_w )
+WRITE32_MEMBER(gaelco3d_state::radikalb_lamp_w)
{
/* arbitrary data written */
if (ACCESSING_BITS_0_7)
- logerror("%06X:unknown_127_w = %02X\n", cpu_get_pc(&space->device()), data & 0xff);
+ logerror("%06X:unknown_127_w = %02X\n", cpu_get_pc(&space.device()), data & 0xff);
else
- logerror("%06X:unknown_127_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:unknown_127_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
-static WRITE32_HANDLER( unknown_137_w )
+WRITE32_MEMBER(gaelco3d_state::unknown_137_w)
{
/* only written $00 or $ff */
if (ACCESSING_BITS_0_7)
- logerror("%06X:unknown_137_w = %02X\n", cpu_get_pc(&space->device()), data & 0xff);
+ logerror("%06X:unknown_137_w = %02X\n", cpu_get_pc(&space.device()), data & 0xff);
else
- logerror("%06X:unknown_137_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:unknown_137_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
-static WRITE32_HANDLER( unknown_13a_w )
+WRITE32_MEMBER(gaelco3d_state::unknown_13a_w)
{
/* only written $0000 or $0001 */
if (ACCESSING_BITS_0_15)
- logerror("%06X:unknown_13a_w = %04X\n", cpu_get_pc(&space->device()), data & 0xffff);
+ logerror("%06X:unknown_13a_w = %04X\n", cpu_get_pc(&space.device()), data & 0xffff);
else
- logerror("%06X:unknown_13a_w(%02X) = %08X & %08X\n", cpu_get_pc(&space->device()), offset, data, mem_mask);
+ logerror("%06X:unknown_13a_w(%02X) = %08X & %08X\n", cpu_get_pc(&space.device()), offset, data, mem_mask);
}
@@ -784,25 +775,25 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gaelco3d_state )
AM_RANGE(0x51001c, 0x51001d) AM_READ_PORT("IN1")
AM_RANGE(0x51002c, 0x51002d) AM_READ_PORT("IN2")
AM_RANGE(0x51003c, 0x51003d) AM_READ_PORT("IN3")
- AM_RANGE(0x510040, 0x510041) AM_WRITE_LEGACY(sound_data_w)
- AM_RANGE(0x510042, 0x510043) AM_READ_LEGACY(sound_status_r)
+ 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_WRITE_LEGACY(irq_ack_w)
+ 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(0x510116, 0x510117) AM_WRITE_LEGACY(tms_control3_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(0x51012a, 0x51012b) AM_WRITE_LEGACY(tms_reset_w)
- AM_RANGE(0x510132, 0x510133) AM_WRITE_LEGACY(tms_irq_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)
- AM_RANGE(0x510156, 0x510157) AM_WRITE_LEGACY(analog_port_clock_w)
- AM_RANGE(0x510166, 0x510167) AM_WRITE_LEGACY(analog_port_latch_w)
+ AM_RANGE(0x510156, 0x510157) AM_WRITE(analog_port_clock_w)
+ AM_RANGE(0x510166, 0x510167) AM_WRITE(analog_port_latch_w)
AM_RANGE(0x510176, 0x510177) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_unknown_w, 0x00ff)
- AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE_LEGACY(tms_comm_w) AM_BASE(m_tms_comm_base)
+ AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE(tms_comm_w) AM_BASE(m_tms_comm_base)
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_BASE(m_m68k_ram_base)
ADDRESS_MAP_END
@@ -814,31 +805,31 @@ static ADDRESS_MAP_START( main020_map, AS_PROGRAM, 32, gaelco3d_state )
AM_RANGE(0x51001c, 0x51001f) AM_READ_PORT("IN1")
AM_RANGE(0x51002c, 0x51002f) AM_READ_PORT("IN2")
AM_RANGE(0x51003c, 0x51003f) AM_READ_PORT("IN3")
- AM_RANGE(0x510040, 0x510043) AM_READ16_LEGACY(sound_status_r, 0x0000ffff)
- AM_RANGE(0x510040, 0x510043) AM_WRITE16_LEGACY(sound_data_w, 0xffff0000)
+ 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_WRITE_LEGACY(irq_ack32_w)
+ 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(0x510114, 0x510117) AM_WRITE16_LEGACY(tms_control3_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(0x510124, 0x510127) AM_WRITE_LEGACY(radikalb_lamp_w)
- AM_RANGE(0x510128, 0x51012b) AM_WRITE16_LEGACY(tms_reset_w, 0x0000ffff)
- AM_RANGE(0x510130, 0x510133) AM_WRITE16_LEGACY(tms_irq_w, 0x0000ffff)
- AM_RANGE(0x510134, 0x510137) AM_WRITE_LEGACY(unknown_137_w)
- AM_RANGE(0x510138, 0x51013b) AM_WRITE_LEGACY(unknown_13a_w)
+ 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)
+ AM_RANGE(0x510134, 0x510137) AM_WRITE(unknown_137_w)
+ AM_RANGE(0x510138, 0x51013b) AM_WRITE(unknown_13a_w)
AM_RANGE(0x510144, 0x510147) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_irq_enable, 0x000000ff)
- AM_RANGE(0x510154, 0x510157) AM_WRITE16_LEGACY(analog_port_clock_w, 0x0000ffff)
- AM_RANGE(0x510164, 0x510167) AM_WRITE16_LEGACY(analog_port_latch_w, 0x0000ffff)
+ AM_RANGE(0x510154, 0x510157) AM_WRITE16(analog_port_clock_w, 0x0000ffff)
+ AM_RANGE(0x510164, 0x510167) AM_WRITE16(analog_port_latch_w, 0x0000ffff)
AM_RANGE(0x510174, 0x510177) AM_DEVWRITE8_LEGACY("serial", gaelco_serial_unknown_w, 0x000000ff)
- AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE16_LEGACY(tms_comm_w, 0xffffffff) AM_BASE(m_tms_comm_base)
+ AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE16(tms_comm_w, 0xffffffff) AM_BASE(m_tms_comm_base)
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_BASE(m_m68k_ram_base)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 32, gaelco3d_state )
- AM_RANGE(0x000000, 0x007fff) AM_READWRITE_LEGACY(tms_m68k_ram_r, tms_m68k_ram_w)
+ AM_RANGE(0x000000, 0x007fff) AM_READWRITE(tms_m68k_ram_r, tms_m68k_ram_w)
AM_RANGE(0x400000, 0x5fffff) AM_ROM AM_REGION("user2", 0)
AM_RANGE(0xc00000, 0xc00007) AM_WRITE_LEGACY(gaelco3d_render_w)
ADDRESS_MAP_END
@@ -850,11 +841,11 @@ static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32, gaelco3d_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16, gaelco3d_state )
- AM_RANGE(0x0000, 0x0001) AM_WRITE_LEGACY(adsp_rombank_w)
+ AM_RANGE(0x0000, 0x0001) AM_WRITE(adsp_rombank_w)
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1")
- AM_RANGE(0x2000, 0x2000) AM_READWRITE_LEGACY(sound_data_r, sound_status_w)
+ AM_RANGE(0x2000, 0x2000) AM_READWRITE(sound_data_r, sound_status_w)
AM_RANGE(0x3800, 0x39ff) AM_RAM AM_BASE(m_adsp_fastram_base) /* 512 words internal RAM */
- AM_RANGE(0x3fe0, 0x3fff) AM_WRITE_LEGACY(adsp_control_w) AM_BASE(m_adsp_control_regs)
+ AM_RANGE(0x3fe0, 0x3fff) AM_WRITE(adsp_control_w) AM_BASE(m_adsp_control_regs)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index e458a8e25ec..35877e27889 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -136,25 +136,23 @@ Notes:
#include "sound/okim6295.h"
#include "includes/gaiden.h"
-static WRITE16_HANDLER( gaiden_sound_command_w )
+WRITE16_MEMBER(gaiden_state::gaiden_sound_command_w)
{
- gaiden_state *state = space->machine().driver_data<gaiden_state>();
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff); /* Ninja Gaiden */
if (ACCESSING_BITS_8_15)
soundlatch_w(space, 0, data >> 8); /* Tecmo Knight */
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE16_HANDLER( drgnbowl_sound_command_w )
+WRITE16_MEMBER(gaiden_state::drgnbowl_sound_command_w)
{
- gaiden_state *state = space->machine().driver_data<gaiden_state>();
if (ACCESSING_BITS_8_15)
{
soundlatch_w(space, 0, data >> 8);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
}
@@ -164,9 +162,8 @@ static WRITE16_HANDLER( drgnbowl_sound_command_w )
/* and reads the answer from 0x07a007. The returned values contain the address of */
/* a function to jump to. */
-static WRITE16_HANDLER( wildfang_protection_w )
+WRITE16_MEMBER(gaiden_state::wildfang_protection_w)
{
- gaiden_state *state = space->machine().driver_data<gaiden_state>();
if (ACCESSING_BITS_8_15)
{
@@ -179,47 +176,46 @@ static WRITE16_HANDLER( wildfang_protection_w )
data >>= 8;
-// logerror("PC %06x: prot = %02x\n",cpu_get_pc(&space->device()),data);
+// logerror("PC %06x: prot = %02x\n",cpu_get_pc(&space.device()),data);
switch (data & 0xf0)
{
case 0x00: /* init */
- state->m_prot = 0x00;
+ m_prot = 0x00;
break;
case 0x10: /* high 4 bits of jump code */
- state->m_jumpcode = (data & 0x0f) << 4;
- state->m_prot = 0x10;
+ m_jumpcode = (data & 0x0f) << 4;
+ m_prot = 0x10;
break;
case 0x20: /* low 4 bits of jump code */
- state->m_jumpcode |= data & 0x0f;
- if (state->m_jumpcode >= ARRAY_LENGTH(jumppoints))
+ m_jumpcode |= data & 0x0f;
+ if (m_jumpcode >= ARRAY_LENGTH(jumppoints))
{
- logerror("unknown jumpcode %02x\n", state->m_jumpcode);
- state->m_jumpcode = 0;
+ logerror("unknown jumpcode %02x\n", m_jumpcode);
+ m_jumpcode = 0;
}
- state->m_prot = 0x20;
+ m_prot = 0x20;
break;
case 0x30: /* ask for bits 12-15 of function address */
- state->m_prot = 0x40 | ((jumppoints[state->m_jumpcode] >> 12) & 0x0f);
+ m_prot = 0x40 | ((jumppoints[m_jumpcode] >> 12) & 0x0f);
break;
case 0x40: /* ask for bits 8-11 of function address */
- state->m_prot = 0x50 | ((jumppoints[state->m_jumpcode] >> 8) & 0x0f);
+ m_prot = 0x50 | ((jumppoints[m_jumpcode] >> 8) & 0x0f);
break;
case 0x50: /* ask for bits 4-7 of function address */
- state->m_prot = 0x60 | ((jumppoints[state->m_jumpcode] >> 4) & 0x0f);
+ m_prot = 0x60 | ((jumppoints[m_jumpcode] >> 4) & 0x0f);
break;
case 0x60: /* ask for bits 0-3 of function address */
- state->m_prot = 0x70 | ((jumppoints[state->m_jumpcode] >> 0) & 0x0f);
+ m_prot = 0x70 | ((jumppoints[m_jumpcode] >> 0) & 0x0f);
break;
}
}
}
-static READ16_HANDLER( wildfang_protection_r )
+READ16_MEMBER(gaiden_state::wildfang_protection_r)
{
- gaiden_state *state = space->machine().driver_data<gaiden_state>();
-// logerror("PC %06x: read prot %02x\n", cpu_get_pc(&space->device()), state->m_prot);
- return state->m_prot;
+// logerror("PC %06x: read prot %02x\n", cpu_get_pc(&space.device()), m_prot);
+ return m_prot;
}
@@ -334,63 +330,61 @@ static MACHINE_START( raiga )
state->save_item(NAME(state->m_spr_offset_y));
}
-static WRITE16_HANDLER( raiga_protection_w )
+WRITE16_MEMBER(gaiden_state::raiga_protection_w)
{
- gaiden_state *state = space->machine().driver_data<gaiden_state>();
if (ACCESSING_BITS_8_15)
{
data >>= 8;
-// logerror("PC %06x: prot = %02x\n", cpu_get_pc(&space->device()), data);
+// logerror("PC %06x: prot = %02x\n", cpu_get_pc(&space.device()), data);
switch (data & 0xf0)
{
case 0x00: /* init */
- state->m_prot = 0x00;
+ m_prot = 0x00;
break;
case 0x10: /* high 4 bits of jump code */
- state->m_jumpcode = (data & 0x0f) << 4;
- state->m_prot = 0x10;
+ m_jumpcode = (data & 0x0f) << 4;
+ m_prot = 0x10;
break;
case 0x20: /* low 4 bits of jump code */
- state->m_jumpcode |= data & 0x0f;
- logerror("requested protection jumpcode %02x\n", state->m_jumpcode);
-// state->m_jumpcode = 0;
- if (state->m_raiga_jumppoints[state->m_jumpcode] == -2)
+ m_jumpcode |= data & 0x0f;
+ logerror("requested protection jumpcode %02x\n", m_jumpcode);
+// m_jumpcode = 0;
+ if (m_raiga_jumppoints[m_jumpcode] == -2)
{
- state->m_raiga_jumppoints = jumppoints_other;
+ m_raiga_jumppoints = jumppoints_other;
}
- if (state->m_raiga_jumppoints[state->m_jumpcode] == -1)
+ if (m_raiga_jumppoints[m_jumpcode] == -1)
{
- logerror("unknown jumpcode %02x\n", state->m_jumpcode);
- popmessage("unknown jumpcode %02x", state->m_jumpcode);
- state->m_jumpcode = 0;
+ logerror("unknown jumpcode %02x\n", m_jumpcode);
+ popmessage("unknown jumpcode %02x", m_jumpcode);
+ m_jumpcode = 0;
}
- state->m_prot = 0x20;
+ m_prot = 0x20;
break;
case 0x30: /* ask for bits 12-15 of function address */
- state->m_prot = 0x40 | ((state->m_raiga_jumppoints[state->m_jumpcode] >> 12) & 0x0f);
+ m_prot = 0x40 | ((m_raiga_jumppoints[m_jumpcode] >> 12) & 0x0f);
break;
case 0x40: /* ask for bits 8-11 of function address */
- state->m_prot = 0x50 | ((state->m_raiga_jumppoints[state->m_jumpcode] >> 8) & 0x0f);
+ m_prot = 0x50 | ((m_raiga_jumppoints[m_jumpcode] >> 8) & 0x0f);
break;
case 0x50: /* ask for bits 4-7 of function address */
- state->m_prot = 0x60 | ((state->m_raiga_jumppoints[state->m_jumpcode] >> 4) & 0x0f);
+ m_prot = 0x60 | ((m_raiga_jumppoints[m_jumpcode] >> 4) & 0x0f);
break;
case 0x60: /* ask for bits 0-3 of function address */
- state->m_prot = 0x70 | ((state->m_raiga_jumppoints[state->m_jumpcode] >> 0) & 0x0f);
+ m_prot = 0x70 | ((m_raiga_jumppoints[m_jumpcode] >> 0) & 0x0f);
break;
}
}
}
-static READ16_HANDLER( raiga_protection_r )
+READ16_MEMBER(gaiden_state::raiga_protection_r)
{
- gaiden_state *state = space->machine().driver_data<gaiden_state>();
-// logerror("PC %06x: read prot %02x\n", cpu_get_pc(&space->device()), state->m_prot);
- return state->m_prot;
+// logerror("PC %06x: read prot %02x\n", cpu_get_pc(&space.device()), m_prot);
+ return m_prot;
}
static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16, gaiden_state )
@@ -414,7 +408,7 @@ static ADDRESS_MAP_START( gaiden_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x07a308, 0x07a309) AM_WRITE_LEGACY(gaiden_bgoffsety_w)
AM_RANGE(0x07a30c, 0x07a30d) AM_WRITE_LEGACY(gaiden_bgscrollx_w)
AM_RANGE(0x07a800, 0x07a801) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x07a802, 0x07a803) AM_WRITE_LEGACY(gaiden_sound_command_w)
+ AM_RANGE(0x07a802, 0x07a803) AM_WRITE(gaiden_sound_command_w)
AM_RANGE(0x07a806, 0x07a807) AM_WRITENOP
AM_RANGE(0x07a808, 0x07a809) AM_WRITE_LEGACY(gaiden_flip_w)
ADDRESS_MAP_END
@@ -430,7 +424,7 @@ static ADDRESS_MAP_START( drgnbowl_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x07a000, 0x07a001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x07a002, 0x07a003) AM_READ_PORT("P1_P2")
AM_RANGE(0x07a004, 0x07a005) AM_READ_PORT("DSW")
- AM_RANGE(0x07a00e, 0x07a00f) AM_WRITE_LEGACY(drgnbowl_sound_command_w)
+ AM_RANGE(0x07a00e, 0x07a00f) AM_WRITE(drgnbowl_sound_command_w)
AM_RANGE(0x07e000, 0x07e001) AM_WRITENOP
AM_RANGE(0x07f000, 0x07f001) AM_WRITE_LEGACY(gaiden_bgscrolly_w)
AM_RANGE(0x07f002, 0x07f003) AM_WRITE_LEGACY(gaiden_bgscrollx_w)
@@ -934,7 +928,7 @@ static ADDRESS_MAP_START( mastninj_map, AS_PROGRAM, 16, gaiden_state )
AM_RANGE(0x07f004, 0x07f005) AM_WRITE_LEGACY(gaiden_fgscrolly_w)
AM_RANGE(0x07f006, 0x07f007) AM_WRITE_LEGACY(gaiden_fgscrollx_w)
AM_RANGE(0x07a800, 0x07a801) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x07e000, 0x07e001) AM_WRITE_LEGACY(gaiden_sound_command_w)
+ AM_RANGE(0x07e000, 0x07e001) AM_WRITE(gaiden_sound_command_w)
// AM_RANGE(0x07a806, 0x07a807) AM_WRITENOP
// AM_RANGE(0x07a808, 0x07a809) AM_WRITE_LEGACY(gaiden_flip_w)
ADDRESS_MAP_END
@@ -1505,8 +1499,8 @@ static DRIVER_INIT( wildfang )
state->m_prot = 0;
state->m_jumpcode = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x07a006, 0x07a007, FUNC(wildfang_protection_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07a804, 0x07a805, FUNC(wildfang_protection_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x07a006, 0x07a007, read16_delegate(FUNC(gaiden_state::wildfang_protection_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07a804, 0x07a805, write16_delegate(FUNC(gaiden_state::wildfang_protection_w),state));
}
static DRIVER_INIT( raiga )
@@ -1518,8 +1512,8 @@ static DRIVER_INIT( raiga )
state->m_prot = 0;
state->m_jumpcode = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x07a006, 0x07a007, FUNC(raiga_protection_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x07a804, 0x07a805, FUNC(raiga_protection_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x07a006, 0x07a007, read16_delegate(FUNC(gaiden_state::raiga_protection_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x07a804, 0x07a805, write16_delegate(FUNC(gaiden_state::raiga_protection_w),state));
}
static void descramble_drgnbowl_gfx(running_machine &machine)
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index 1c0bbbb4a9d..12a458fddf6 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -713,67 +713,66 @@ TODO:
-static READ8_HANDLER( bosco_dsw_r )
+READ8_MEMBER(galaga_state::bosco_dsw_r)
{
int bit0,bit1;
- bit0 = (input_port_read(space->machine(), "DSWB") >> offset) & 1;
- bit1 = (input_port_read(space->machine(), "DSWA") >> offset) & 1;
+ bit0 = (input_port_read(machine(), "DSWB") >> offset) & 1;
+ bit1 = (input_port_read(machine(), "DSWA") >> offset) & 1;
return bit0 | (bit1 << 1);
}
-static WRITE8_HANDLER( galaga_flip_screen_w )
+WRITE8_MEMBER(galaga_state::galaga_flip_screen_w)
{
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
}
-static WRITE8_HANDLER( bosco_flip_screen_w )
+WRITE8_MEMBER(bosco_state::bosco_flip_screen_w)
{
- flip_screen_set(space->machine(), ~data & 1);
+ flip_screen_set(machine(), ~data & 1);
}
-static WRITE8_HANDLER( bosco_latch_w )
+WRITE8_MEMBER(galaga_state::bosco_latch_w)
{
- galaga_state *state = space->machine().driver_data<galaga_state>();
switch (offset)
{
case 0x00: /* IRQ1 */
- state->m_main_irq_mask = data & 1;
- if (!state->m_main_irq_mask)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ m_main_irq_mask = data & 1;
+ if (!m_main_irq_mask)
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 0x01: /* IRQ2 */
- state->m_sub_irq_mask = data & 1;
- if (!state->m_sub_irq_mask)
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ m_sub_irq_mask = data & 1;
+ if (!m_sub_irq_mask)
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
break;
case 0x02: /* NMION */
- state->m_sub2_nmi_mask = !(data & 1);
+ m_sub2_nmi_mask = !(data & 1);
break;
case 0x03: /* RESET */
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
- cputag_set_input_line(space->machine(), "sub2", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub2", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x04: /* n.c. */
break;
case 0x05: /* MOD 0 (xevious: n.c.) */
- state->m_custom_mod = (state->m_custom_mod & ~0x01) | ((data & 1) << 0);
+ m_custom_mod = (m_custom_mod & ~0x01) | ((data & 1) << 0);
break;
case 0x06: /* MOD 1 (xevious: n.c.) */
- state->m_custom_mod = (state->m_custom_mod & ~0x02) | ((data & 1) << 1);
+ m_custom_mod = (m_custom_mod & ~0x02) | ((data & 1) << 1);
break;
case 0x07: /* MOD 2 (xevious: n.c.) */
- state->m_custom_mod = (state->m_custom_mod & ~0x04) | ((data & 1) << 2);
+ m_custom_mod = (m_custom_mod & ~0x04) | ((data & 1) << 2);
break;
}
}
@@ -891,12 +890,13 @@ static MACHINE_START( galaga )
static void bosco_latch_reset(running_machine &machine)
{
+ bosco_state *state = machine.driver_data<bosco_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0;i < 8;i++)
- bosco_latch_w(space,i,0);
+ state->bosco_latch_w(*space,i,0);
}
static MACHINE_RESET( galaga )
@@ -919,9 +919,9 @@ static MACHINE_RESET( battles )
/* the same memory map is used by all three CPUs; all RAM areas are shared */
static ADDRESS_MAP_START( bosco_map, AS_PROGRAM, 8, bosco_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
- AM_RANGE(0x6800, 0x6807) AM_READ_LEGACY(bosco_dsw_r)
+ AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
- AM_RANGE(0x6820, 0x6827) AM_WRITE_LEGACY(bosco_latch_w) /* misc latches */
+ AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */
AM_RANGE(0x6830, 0x6830) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x7000, 0x70ff) AM_DEVREADWRITE_LEGACY("06xx_0", namco_06xx_data_r, namco_06xx_data_w)
AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE_LEGACY("06xx_0", namco_06xx_ctrl_r, namco_06xx_ctrl_w)
@@ -934,16 +934,16 @@ static ADDRESS_MAP_START( bosco_map, AS_PROGRAM, 8, bosco_state )
AM_RANGE(0x9820, 0x9820) AM_WRITE_LEGACY(bosco_scrolly_w)
AM_RANGE(0x9830, 0x9830) AM_WRITEONLY AM_BASE(m_bosco_starcontrol) AM_SHARE("bsc")
AM_RANGE(0x9840, 0x9840) AM_WRITE_LEGACY(bosco_starclr_w)
- AM_RANGE(0x9870, 0x9870) AM_WRITE_LEGACY(bosco_flip_screen_w)
+ AM_RANGE(0x9870, 0x9870) AM_WRITE(bosco_flip_screen_w)
AM_RANGE(0x9874, 0x9875) AM_WRITEONLY AM_BASE(m_bosco_starblink) AM_SHARE("bsb")
ADDRESS_MAP_END
static ADDRESS_MAP_START( galaga_map, AS_PROGRAM, 8, galaga_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
- AM_RANGE(0x6800, 0x6807) AM_READ_LEGACY(bosco_dsw_r)
+ AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
- AM_RANGE(0x6820, 0x6827) AM_WRITE_LEGACY(bosco_latch_w) /* misc latches */
+ AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */
AM_RANGE(0x6830, 0x6830) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x7000, 0x70ff) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_data_r, namco_06xx_data_w)
AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_ctrl_r, namco_06xx_ctrl_w)
@@ -952,15 +952,15 @@ static ADDRESS_MAP_START( galaga_map, AS_PROGRAM, 8, galaga_state )
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("share2") AM_BASE(m_galaga_ram2)
AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("share3") AM_BASE(m_galaga_ram3)
AM_RANGE(0xa000, 0xa005) AM_WRITEONLY AM_BASE(m_galaga_starcontrol) AM_SHARE("gsc")
- AM_RANGE(0xa007, 0xa007) AM_WRITE_LEGACY(galaga_flip_screen_w)
+ AM_RANGE(0xa007, 0xa007) AM_WRITE(galaga_flip_screen_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( xevious_map, AS_PROGRAM, 8, xevious_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
- AM_RANGE(0x6800, 0x6807) AM_READ_LEGACY(bosco_dsw_r)
+ AM_RANGE(0x6800, 0x6807) AM_READ(bosco_dsw_r)
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
- AM_RANGE(0x6820, 0x6827) AM_WRITE_LEGACY(bosco_latch_w) /* misc latches */
+ AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */
AM_RANGE(0x6830, 0x6830) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x7000, 0x70ff) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_data_r, namco_06xx_data_w)
AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_ctrl_r, namco_06xx_ctrl_w)
@@ -980,7 +980,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( digdug_map, AS_PROGRAM, 8, digdug_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_WRITENOP /* the only area different for each CPU */
AM_RANGE(0x6800, 0x681f) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
- AM_RANGE(0x6820, 0x6827) AM_WRITE_LEGACY(bosco_latch_w) /* misc latches */
+ AM_RANGE(0x6820, 0x6827) AM_WRITE(bosco_latch_w) /* misc latches */
AM_RANGE(0x6830, 0x6830) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x7000, 0x70ff) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_data_r, namco_06xx_data_w)
AM_RANGE(0x7100, 0x7100) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_ctrl_r, namco_06xx_ctrl_w)
diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c
index e46bd3e96bf..66dd4016ee7 100644
--- a/src/mame/drivers/galastrm.c
+++ b/src/mame/drivers/galastrm.c
@@ -62,31 +62,28 @@ static TIMER_CALLBACK( galastrm_interrupt6 )
-static WRITE32_HANDLER( galastrm_palette_w )
+WRITE32_MEMBER(galastrm_state::galastrm_palette_w)
{
- galastrm_state *state = space->machine().driver_data<galastrm_state>();
if (ACCESSING_BITS_16_31)
- state->m_tc0110pcr_addr = data >> 16;
- if ((ACCESSING_BITS_0_15) && (state->m_tc0110pcr_addr < 4096))
- palette_set_color_rgb(space->machine(), state->m_tc0110pcr_addr, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
+ m_tc0110pcr_addr = data >> 16;
+ if ((ACCESSING_BITS_0_15) && (m_tc0110pcr_addr < 4096))
+ palette_set_color_rgb(machine(), m_tc0110pcr_addr, pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
}
-static WRITE32_HANDLER( galastrm_tc0610_0_w )
+WRITE32_MEMBER(galastrm_state::galastrm_tc0610_0_w)
{
- galastrm_state *state = space->machine().driver_data<galastrm_state>();
if (ACCESSING_BITS_16_31)
- state->m_tc0610_0_addr = data >> 16;
- if ((ACCESSING_BITS_0_15) && (state->m_tc0610_0_addr < 8))
- state->m_tc0610_ctrl_reg[0][state->m_tc0610_0_addr] = data;
+ m_tc0610_0_addr = data >> 16;
+ if ((ACCESSING_BITS_0_15) && (m_tc0610_0_addr < 8))
+ m_tc0610_ctrl_reg[0][m_tc0610_0_addr] = data;
}
-static WRITE32_HANDLER( galastrm_tc0610_1_w )
+WRITE32_MEMBER(galastrm_state::galastrm_tc0610_1_w)
{
- galastrm_state *state = space->machine().driver_data<galastrm_state>();
if (ACCESSING_BITS_16_31)
- state->m_tc0610_1_addr = data >> 16;
- if ((ACCESSING_BITS_0_15) && (state->m_tc0610_1_addr < 8))
- state->m_tc0610_ctrl_reg[1][state->m_tc0610_1_addr] = data;
+ m_tc0610_1_addr = data >> 16;
+ if ((ACCESSING_BITS_0_15) && (m_tc0610_1_addr < 8))
+ m_tc0610_ctrl_reg[1][m_tc0610_1_addr] = data;
}
@@ -102,16 +99,15 @@ static CUSTOM_INPUT( coin_word_r )
return state->m_coin_word;
}
-static WRITE32_HANDLER( galastrm_input_w )
+WRITE32_MEMBER(galastrm_state::galastrm_input_w)
{
- galastrm_state *state = space->machine().driver_data<galastrm_state>();
#if 0
{
char t[64];
-COMBINE_DATA(&state->m_mem[offset]);
+COMBINE_DATA(&m_mem[offset]);
-sprintf(t,"%08x %08x",state->m_mem[0],state->m_mem[1]);
+sprintf(t,"%08x %08x",m_mem[0],m_mem[1]);
popmessage(t);
}
#endif
@@ -122,12 +118,12 @@ popmessage(t);
{
if (ACCESSING_BITS_24_31) /* $400000 is watchdog */
{
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
}
if (ACCESSING_BITS_0_7)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x40);
eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
@@ -140,32 +136,32 @@ popmessage(t);
{
if (ACCESSING_BITS_24_31)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x01000000);
- coin_lockout_w(space->machine(), 1, ~data & 0x02000000);
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x04000000);
- state->m_coin_word = (data >> 16) &0xffff;
+ coin_lockout_w(machine(), 0, ~data & 0x01000000);
+ coin_lockout_w(machine(), 1, ~data & 0x02000000);
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x04000000);
+ m_coin_word = (data >> 16) &0xffff;
}
-//logerror("CPU #0 PC %06x: write input %06x\n",cpu_get_pc(&space->device()),offset);
+//logerror("CPU #0 PC %06x: write input %06x\n",cpu_get_pc(&device()),offset);
}
}
}
-static READ32_HANDLER( galastrm_adstick_ctrl_r )
+READ32_MEMBER(galastrm_state::galastrm_adstick_ctrl_r)
{
if (offset == 0x00)
{
if (ACCESSING_BITS_24_31)
- return input_port_read(space->machine(), "STICKX") << 24;
+ return input_port_read(machine(), "STICKX") << 24;
if (ACCESSING_BITS_16_23)
- return input_port_read(space->machine(), "STICKY") << 16;
+ return input_port_read(machine(), "STICKY") << 16;
}
return 0;
}
-static WRITE32_HANDLER( galastrm_adstick_ctrl_w )
+WRITE32_MEMBER(galastrm_state::galastrm_adstick_ctrl_w)
{
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(1000), FUNC(galastrm_interrupt6));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(1000), FUNC(galastrm_interrupt6));
}
/***********************************************************
@@ -178,15 +174,15 @@ static ADDRESS_MAP_START( galastrm_map, AS_PROGRAM, 32, galastrm_state )
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x400000, 0x400003) AM_READ_PORT("IN0")
AM_RANGE(0x400004, 0x400007) AM_READ_PORT("IN1")
- AM_RANGE(0x400000, 0x400007) AM_WRITE_LEGACY(galastrm_input_w) /* eerom etc. */
+ AM_RANGE(0x400000, 0x400007) AM_WRITE(galastrm_input_w) /* eerom etc. */
AM_RANGE(0x40fff0, 0x40fff3) AM_WRITENOP
- AM_RANGE(0x500000, 0x500007) AM_READWRITE_LEGACY(galastrm_adstick_ctrl_r, galastrm_adstick_ctrl_w)
+ AM_RANGE(0x500000, 0x500007) AM_READWRITE(galastrm_adstick_ctrl_r, galastrm_adstick_ctrl_w)
AM_RANGE(0x600000, 0x6007ff) AM_RAM AM_SHARE("f3_shared") /* Sound shared ram */
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_long_r, tc0480scp_long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w)
- AM_RANGE(0x900000, 0x900003) AM_WRITE_LEGACY(galastrm_palette_w) /* TC0110PCR */
- AM_RANGE(0xb00000, 0xb00003) AM_WRITE_LEGACY(galastrm_tc0610_0_w) /* TC0610 */
- AM_RANGE(0xc00000, 0xc00003) AM_WRITE_LEGACY(galastrm_tc0610_1_w)
+ AM_RANGE(0x900000, 0x900003) AM_WRITE(galastrm_palette_w) /* TC0110PCR */
+ AM_RANGE(0xb00000, 0xb00003) AM_WRITE(galastrm_tc0610_0_w) /* TC0610 */
+ AM_RANGE(0xc00000, 0xc00003) AM_WRITE(galastrm_tc0610_1_w)
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_long_r, tc0100scn_long_w) /* piv tilemaps */
AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_long_r, tc0100scn_ctrl_long_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index 0116e432106..5883081d8d9 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -395,9 +395,9 @@ Stephh's notes (based on the games Z80 code and some tests) for other games :
/* Send sound data to the sound cpu and cause an nmi */
-static READ8_HANDLER( drivfrcg_port0_r )
+READ8_MEMBER(galaxold_state::drivfrcg_port0_r)
{
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x002e:
case 0x0297:
@@ -579,10 +579,10 @@ static ADDRESS_MAP_START( scramblb_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x8202, 0x8202) AM_READ_LEGACY(scramblb_protection_2_r)
ADDRESS_MAP_END
-static READ8_HANDLER( scramb2_protection_r ) { return 0x25; }
-static READ8_HANDLER( scramb2_port0_r ) { return (input_port_read(space->machine(), "IN0") >> offset) & 0x1; }
-static READ8_HANDLER( scramb2_port1_r ) { return (input_port_read(space->machine(), "IN1") >> offset) & 0x1; }
-static READ8_HANDLER( scramb2_port2_r ) { return (input_port_read(space->machine(), "IN2") >> offset) & 0x1; }
+READ8_MEMBER(galaxold_state::scramb2_protection_r){ return 0x25; }
+READ8_MEMBER(galaxold_state::scramb2_port0_r){ return (input_port_read(machine(), "IN0") >> offset) & 0x1; }
+READ8_MEMBER(galaxold_state::scramb2_port1_r){ return (input_port_read(machine(), "IN1") >> offset) & 0x1; }
+READ8_MEMBER(galaxold_state::scramb2_port2_r){ return (input_port_read(machine(), "IN2") >> offset) & 0x1; }
static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
@@ -593,9 +593,9 @@ static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x5040, 0x505f) AM_RAM AM_BASE(m_spriteram) AM_SIZE(m_spriteram_size)
AM_RANGE(0x5060, 0x507f) AM_RAM AM_BASE(m_bulletsram) AM_SIZE(m_bulletsram_size)
AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x5800, 0x5fff) AM_READ_LEGACY(scramb2_protection_r) // must return 0x25
- AM_RANGE(0x6000, 0x6007) AM_READ_LEGACY(scramb2_port0_r) // reads from 8 addresses, 1 bit per address
- AM_RANGE(0x6800, 0x6807) AM_READ_LEGACY(scramb2_port1_r) // reads from 8 addresses, 1 bit per address
+ AM_RANGE(0x5800, 0x5fff) AM_READ(scramb2_protection_r) // must return 0x25
+ AM_RANGE(0x6000, 0x6007) AM_READ(scramb2_port0_r) // reads from 8 addresses, 1 bit per address
+ AM_RANGE(0x6800, 0x6807) AM_READ(scramb2_port1_r) // reads from 8 addresses, 1 bit per address
AM_RANGE(0x6801, 0x6801) AM_WRITE_LEGACY(galaxold_nmi_enable_w)
AM_RANGE(0x6802, 0x6802) AM_WRITE_LEGACY(galaxold_coin_counter_w)
AM_RANGE(0x6804, 0x6804) AM_WRITE_LEGACY(galaxold_stars_enable_w)
@@ -604,7 +604,7 @@ static ADDRESS_MAP_START( scramb2_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x7000, 0x7007) AM_READ_LEGACY(watchdog_reset_r)
AM_RANGE(0x7006, 0x7006) AM_WRITENOP
AM_RANGE(0x7007, 0x7007) AM_WRITENOP
- AM_RANGE(0x7800, 0x7807) AM_READ_LEGACY(scramb2_port2_r) // reads from 8 addresses, 1 bit per address
+ AM_RANGE(0x7800, 0x7807) AM_READ(scramb2_port2_r) // reads from 8 addresses, 1 bit per address
AM_RANGE(0x7800, 0x7800) AM_DEVWRITE_LEGACY(GAL_AUDIO, galaxian_pitch_w)
ADDRESS_MAP_END
@@ -762,11 +762,10 @@ static ADDRESS_MAP_START( ozon1_io_map, AS_IO, 8, galaxold_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( harem_nmi_mask_w )
+WRITE8_MEMBER(galaxold_state::harem_nmi_mask_w)
{
- galaxold_state *state = space->machine().driver_data<galaxold_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( harem_cpu1, AS_PROGRAM, 8, galaxold_state )
@@ -775,7 +774,7 @@ static ADDRESS_MAP_START( harem_cpu1, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x4800, 0x4fff) AM_READWRITE_LEGACY(galaxold_videoram_r, galaxold_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x5000, 0x5000) AM_WRITENOP
- AM_RANGE(0x5800, 0x5800) AM_READNOP AM_WRITE_LEGACY(harem_nmi_mask_w)
+ AM_RANGE(0x5800, 0x5800) AM_READNOP AM_WRITE(harem_nmi_mask_w)
AM_RANGE(0x5801, 0x5807) AM_WRITENOP
AM_RANGE(0x6101, 0x6101) AM_READ_PORT("IN0")
AM_RANGE(0x6102, 0x6102) AM_READ_PORT("IN1")
@@ -860,7 +859,7 @@ static ADDRESS_MAP_START( drivfrcg, AS_PROGRAM, 8, galaxold_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( drivfrcg_io, AS_IO, 8, galaxold_state )
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(drivfrcg_port0_r)
+ AM_RANGE(0x00, 0x00) AM_READ(drivfrcg_port0_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE") AM_WRITENOP
ADDRESS_MAP_END
@@ -894,9 +893,9 @@ static ADDRESS_MAP_START( racknrol_io, AS_IO, 8, galaxold_state )
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
-static READ8_HANDLER( hexpoola_data_port_r )
+READ8_MEMBER(galaxold_state::hexpoola_data_port_r)
{
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x0022:
return 0;
@@ -911,7 +910,7 @@ static READ8_HANDLER( hexpoola_data_port_r )
static ADDRESS_MAP_START( hexpoola_io, AS_IO, 8, galaxold_state )
AM_RANGE(0x00, 0x00) AM_READNOP
AM_RANGE(0x20, 0x3f) AM_WRITE_LEGACY(racknrol_tiles_bank_w) AM_BASE(m_racknrol_tiles_bank)
- AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_LEGACY(hexpoola_data_port_r) AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
+ AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(hexpoola_data_port_r) AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index 7f28ef47b35..e6be9e0d042 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -35,18 +35,18 @@ Takahiro Nogi (nogi@kt.rim.or.jp) 1999/12/17 -
#include "includes/nb1414m4.h"
-static WRITE8_HANDLER( galivan_sound_command_w )
+WRITE8_MEMBER(galivan_state::galivan_sound_command_w)
{
soundlatch_w(space,0,((data & 0x7f) << 1) | 1);
}
-static READ8_HANDLER( soundlatch_clear_r )
+READ8_MEMBER(galivan_state::soundlatch_clear_r)
{
soundlatch_clear_w(space, 0, 0);
return 0;
}
-static READ8_HANDLER( IO_port_c0_r )
+READ8_MEMBER(galivan_state::IO_port_c0_r)
{
return (0x58); /* To Avoid Reset on Ufo Robot dangar */
}
@@ -83,17 +83,16 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, galivan_state )
AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(galivan_gfxbank_w)
AM_RANGE(0x41, 0x42) AM_WRITE_LEGACY(galivan_scrollx_w)
AM_RANGE(0x43, 0x44) AM_WRITE_LEGACY(galivan_scrolly_w)
- AM_RANGE(0x45, 0x45) AM_WRITE_LEGACY(galivan_sound_command_w)
+ AM_RANGE(0x45, 0x45) AM_WRITE(galivan_sound_command_w)
/* AM_RANGE(0x46, 0x46) AM_WRITENOP */
/* AM_RANGE(0x47, 0x47) AM_WRITENOP */
- AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(IO_port_c0_r) /* dangar needs to return 0x58 */
+ AM_RANGE(0xc0, 0xc0) AM_READ(IO_port_c0_r) /* dangar needs to return 0x58 */
ADDRESS_MAP_END
-static WRITE8_HANDLER( blit_trigger_w )
+WRITE8_MEMBER(galivan_state::blit_trigger_w)
{
- galivan_state *state = space->machine().driver_data<galivan_state>();
- nb_1414m4_exec(space,(state->m_videoram[0] << 8) | (state->m_videoram[1] & 0xff),state->m_videoram,state->m_scrollx,state->m_scrolly,state->m_tx_tilemap);
+ nb_1414m4_exec(&space,(m_videoram[0] << 8) | (m_videoram[1] & 0xff),m_videoram,m_scrollx,m_scrolly,m_tx_tilemap);
}
static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8, galivan_state )
@@ -103,8 +102,8 @@ static ADDRESS_MAP_START( ninjemak_io_map, AS_IO, 8, galivan_state )
AM_RANGE(0x82, 0x82) AM_READ_PORT("SYSTEM")
AM_RANGE(0x83, 0x83) AM_READ_PORT("SERVICE")
AM_RANGE(0x84, 0x84) AM_READ_PORT("DSW1")
- AM_RANGE(0x85, 0x85) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(galivan_sound_command_w)
- AM_RANGE(0x86, 0x86) AM_WRITE_LEGACY(blit_trigger_w) // ??
+ AM_RANGE(0x85, 0x85) AM_READ_PORT("DSW2") AM_WRITE(galivan_sound_command_w)
+ AM_RANGE(0x86, 0x86) AM_WRITE(blit_trigger_w) // ??
// AM_RANGE(0x87, 0x87) AM_WRITENOP // ??
ADDRESS_MAP_END
@@ -118,7 +117,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, galivan_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3526_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("dac1", dac_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("dac2", dac_w)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_clear_r)
+ AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r)
AM_RANGE(0x06, 0x06) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -1032,60 +1031,59 @@ ROM_START( youmab2 )
ROM_END
-static WRITE8_HANDLER( youmab_extra_bank_w )
+WRITE8_MEMBER(galivan_state::youmab_extra_bank_w)
{
if (data == 0xff)
- memory_set_bank(space->machine(), "bank2", 1);
+ memory_set_bank(machine(), "bank2", 1);
else if (data == 0x00)
- memory_set_bank(space->machine(), "bank2", 0);
+ memory_set_bank(machine(), "bank2", 0);
else
printf("data %03x\n", data);
}
-static READ8_HANDLER( youmab_8a_r )
+READ8_MEMBER(galivan_state::youmab_8a_r)
{
- return space->machine().rand();
+ return machine().rand();
}
-static WRITE8_HANDLER( youmab_81_w )
+WRITE8_MEMBER(galivan_state::youmab_81_w)
{
// ??
}
/* scrolling is tied to a serial port, reads from 0xe43d-0xe43e-0xe43f-0xe440 */
-static WRITE8_HANDLER( youmab_84_w )
+WRITE8_MEMBER(galivan_state::youmab_84_w)
{
- galivan_state *state = space->machine().driver_data<galivan_state>();
- state->m_shift_val &= ~((0x80 >> 7) << state->m_shift_scroll);
- state->m_shift_val |= (((data & 0x80) >> 7) << state->m_shift_scroll);
+ m_shift_val &= ~((0x80 >> 7) << m_shift_scroll);
+ m_shift_val |= (((data & 0x80) >> 7) << m_shift_scroll);
- state->m_shift_scroll++;
+ m_shift_scroll++;
- //popmessage("%08x",state->m_shift_val);
+ //popmessage("%08x",m_shift_val);
- //if(state->m_shift_scroll == 25)
+ //if(m_shift_scroll == 25)
}
-static WRITE8_HANDLER( youmab_86_w )
+WRITE8_MEMBER(galivan_state::youmab_86_w)
{
- galivan_state *state = space->machine().driver_data<galivan_state>();
/* latch values */
{
- state->m_scrolly = (state->m_shift_val & 0x0003ff);
- state->m_scrollx = (state->m_shift_val & 0x7ffc00) >> 10;
+ m_scrolly = (m_shift_val & 0x0003ff);
+ m_scrollx = (m_shift_val & 0x7ffc00) >> 10;
- //popmessage("%08x %08x %08x",state->m_scrollx,state->m_scrolly,state->m_shift_val);
+ //popmessage("%08x %08x %08x",m_scrollx,m_scrolly,m_shift_val);
}
- state->m_shift_val = 0;
- state->m_shift_scroll = 0;
+ m_shift_val = 0;
+ m_shift_scroll = 0;
}
static DRIVER_INIT( youmab )
{
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x82, 0x82, FUNC(youmab_extra_bank_w)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there
+ galivan_state *state = machine.driver_data<galivan_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x82, 0x82, write8_delegate(FUNC(galivan_state::youmab_extra_bank_w),state)); // banks rom at 0x8000? writes 0xff and 0x00 before executing code there
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x0000, 0x7fff, "bank3");
memory_set_bankptr(machine, "bank3", machine.region("maincpu")->base());
@@ -1093,14 +1091,14 @@ static DRIVER_INIT( youmab )
memory_configure_bank(machine, "bank2", 0, 2, machine.region("user2")->base(), 0x4000);
memory_set_bank(machine, "bank2", 0);
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x81, 0x81, FUNC(youmab_81_w)); // ?? often, alternating values
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x84, 0x84, FUNC(youmab_84_w)); // ?? often, sequence..
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x81, 0x81, write8_delegate(FUNC(galivan_state::youmab_81_w),state)); // ?? often, alternating values
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x84, 0x84, write8_delegate(FUNC(galivan_state::youmab_84_w),state)); // ?? often, sequence..
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0xd800, 0xd81f); // scrolling isn't here..
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x8a, 0x8a, FUNC(youmab_8a_r)); // ???
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x8a, 0x8a, read8_delegate(FUNC(galivan_state::youmab_8a_r),state)); // ???
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x86, 0x86, FUNC(youmab_86_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x86, 0x86, write8_delegate(FUNC(galivan_state::youmab_86_w),state));
}
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index e64eea90f39..78ada89ecb5 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -26,14 +26,13 @@ TODO:
#include "includes/galspnbl.h"
-static WRITE16_HANDLER( soundcommand_w )
+WRITE16_MEMBER(galspnbl_state::soundcommand_w)
{
- galspnbl_state *state = space->machine().driver_data<galspnbl_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space,offset,data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -55,7 +54,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, galspnbl_state )
AM_RANGE(0xa01000, 0xa017ff) AM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xa01800, 0xa027ff) AM_WRITENOP /* more palette ? */
AM_RANGE(0xa80000, 0xa80001) AM_READ_PORT("IN0")
- AM_RANGE(0xa80010, 0xa80011) AM_READ_PORT("IN1") AM_WRITE_LEGACY(soundcommand_w)
+ AM_RANGE(0xa80010, 0xa80011) AM_READ_PORT("IN1") AM_WRITE(soundcommand_w)
AM_RANGE(0xa80020, 0xa80021) AM_READ_PORT("SYSTEM") AM_WRITENOP /* w - could be watchdog, but causes resets when picture is shown */
AM_RANGE(0xa80030, 0xa80031) AM_READ_PORT("DSW1") AM_WRITENOP /* w - irq ack? */
AM_RANGE(0xa80040, 0xa80041) AM_READ_PORT("DSW2")
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index b471146c030..9f3d930ab66 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -158,60 +158,55 @@ TODO:
#include "includes/gaplus.h"
-static READ8_HANDLER( gaplus_spriteram_r )
+READ8_MEMBER(gaplus_state::gaplus_spriteram_r)
{
- gaplus_state *state = space->machine().driver_data<gaplus_state>();
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
}
-static WRITE8_HANDLER( gaplus_spriteram_w )
+WRITE8_MEMBER(gaplus_state::gaplus_spriteram_w)
{
- gaplus_state *state = space->machine().driver_data<gaplus_state>();
- state->m_spriteram[offset] = data;
+ m_spriteram[offset] = data;
}
-static WRITE8_HANDLER( gaplus_irq_1_ctrl_w )
+WRITE8_MEMBER(gaplus_state::gaplus_irq_1_ctrl_w)
{
- gaplus_state *state = space->machine().driver_data<gaplus_state>();
int bit = !BIT(offset, 11);
- state->m_main_irq_mask = bit & 1;
+ m_main_irq_mask = bit & 1;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( gaplus_irq_2_ctrl_w )
+WRITE8_MEMBER(gaplus_state::gaplus_irq_2_ctrl_w)
{
- gaplus_state *state = space->machine().driver_data<gaplus_state>();
int bit = offset & 1;
- state->m_sub_irq_mask = bit & 1;
+ m_sub_irq_mask = bit & 1;
if (!bit)
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( gaplus_irq_3_ctrl_w )
+WRITE8_MEMBER(gaplus_state::gaplus_irq_3_ctrl_w)
{
- gaplus_state *state = space->machine().driver_data<gaplus_state>();
int bit = !BIT(offset, 13);
- state->m_sub2_irq_mask = bit & 1;
+ m_sub2_irq_mask = bit & 1;
if (!bit)
- cputag_set_input_line(space->machine(), "sub2", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub2", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( gaplus_sreset_w )
+WRITE8_MEMBER(gaplus_state::gaplus_sreset_w)
{
int bit = !BIT(offset, 11);
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
- cputag_set_input_line(space->machine(), "sub2", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
- mappy_sound_enable(space->machine().device("namco"), bit);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub2", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ mappy_sound_enable(machine().device("namco"), bit);
}
-static WRITE8_HANDLER( gaplus_freset_w )
+WRITE8_MEMBER(gaplus_state::gaplus_freset_w)
{
- device_t *io58xx = space->machine().device("58xx");
- device_t *io56xx = space->machine().device("56xx");
+ device_t *io58xx = machine().device("58xx");
+ device_t *io56xx = machine().device("56xx");
int bit = !BIT(offset, 11);
- logerror("%04x: freset %d\n",cpu_get_pc(&space->device()), bit);
+ logerror("%04x: freset %d\n",cpu_get_pc(&space.device()), bit);
namcoio_set_reset_line(io58xx, bit ? CLEAR_LINE : ASSERT_LINE);
namcoio_set_reset_line(io56xx, bit ? CLEAR_LINE : ASSERT_LINE);
@@ -292,46 +287,46 @@ static INTERRUPT_GEN( gaplus_vblank_sub2_irq )
static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(gaplus_videoram_r, gaplus_videoram_w) AM_BASE(m_videoram) /* tilemap RAM (shared with CPU #2) */
- AM_RANGE(0x0800, 0x1fff) AM_READWRITE_LEGACY(gaplus_spriteram_r, gaplus_spriteram_w) AM_BASE(m_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */
+ AM_RANGE(0x0800, 0x1fff) AM_READWRITE(gaplus_spriteram_r, gaplus_spriteram_w) AM_BASE(m_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with CPU #3 */
AM_RANGE(0x6800, 0x680f) AM_DEVREADWRITE_LEGACY("56xx", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x6810, 0x681f) AM_DEVREADWRITE_LEGACY("58xx", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x6820, 0x682f) AM_READWRITE_LEGACY(gaplus_customio_3_r, gaplus_customio_3_w) AM_BASE(m_customio_3) /* custom I/O chip #3 interface */
- AM_RANGE(0x7000, 0x7fff) AM_WRITE_LEGACY(gaplus_irq_1_ctrl_w) /* main CPU irq control */
+ AM_RANGE(0x7000, 0x7fff) AM_WRITE(gaplus_irq_1_ctrl_w) /* main CPU irq control */
AM_RANGE(0x7800, 0x7fff) AM_READ_LEGACY(watchdog_reset_r) /* watchdog */
- AM_RANGE(0x8000, 0x8fff) AM_WRITE_LEGACY(gaplus_sreset_w) /* reset CPU #2 & #3, enable sound */
- AM_RANGE(0x9000, 0x9fff) AM_WRITE_LEGACY(gaplus_freset_w) /* reset I/O chips */
+ AM_RANGE(0x8000, 0x8fff) AM_WRITE(gaplus_sreset_w) /* reset CPU #2 & #3, enable sound */
+ AM_RANGE(0x9000, 0x9fff) AM_WRITE(gaplus_freset_w) /* reset I/O chips */
AM_RANGE(0xa000, 0xa7ff) AM_WRITE_LEGACY(gaplus_starfield_control_w) /* starfield control */
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( gaplusa_cpu1_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(gaplus_videoram_r, gaplus_videoram_w) AM_BASE(m_videoram) /* tilemap RAM (shared with CPU #2) */
- AM_RANGE(0x0800, 0x1fff) AM_READWRITE_LEGACY(gaplus_spriteram_r, gaplus_spriteram_w) AM_BASE(m_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */
+ AM_RANGE(0x0800, 0x1fff) AM_READWRITE(gaplus_spriteram_r, gaplus_spriteram_w) AM_BASE(m_spriteram) /* shared RAM with CPU #2 (includes sprite RAM) */
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with CPU #3 */
AM_RANGE(0x6800, 0x680f) AM_DEVREADWRITE_LEGACY("58xx", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x6810, 0x681f) AM_DEVREADWRITE_LEGACY("56xx", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x6820, 0x682f) AM_READWRITE_LEGACY(gaplus_customio_3_r, gaplus_customio_3_w) AM_BASE(m_customio_3) /* custom I/O chip #3 interface */
- AM_RANGE(0x7000, 0x7fff) AM_WRITE_LEGACY(gaplus_irq_1_ctrl_w) /* main CPU irq control */
+ AM_RANGE(0x7000, 0x7fff) AM_WRITE(gaplus_irq_1_ctrl_w) /* main CPU irq control */
AM_RANGE(0x7800, 0x7fff) AM_READ_LEGACY(watchdog_reset_r) /* watchdog */
- AM_RANGE(0x8000, 0x8fff) AM_WRITE_LEGACY(gaplus_sreset_w) /* reset CPU #2 & #3, enable sound */
- AM_RANGE(0x9000, 0x9fff) AM_WRITE_LEGACY(gaplus_freset_w) /* reset I/O chips */
+ AM_RANGE(0x8000, 0x8fff) AM_WRITE(gaplus_sreset_w) /* reset CPU #2 & #3, enable sound */
+ AM_RANGE(0x9000, 0x9fff) AM_WRITE(gaplus_freset_w) /* reset I/O chips */
AM_RANGE(0xa000, 0xa7ff) AM_WRITE_LEGACY(gaplus_starfield_control_w) /* starfield control */
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(gaplus_videoram_r, gaplus_videoram_w) /* tilemap RAM (shared with CPU #1) */
- AM_RANGE(0x0800, 0x1fff) AM_READWRITE_LEGACY(gaplus_spriteram_r, gaplus_spriteram_w) /* shared RAM with CPU #1 */
+ AM_RANGE(0x0800, 0x1fff) AM_READWRITE(gaplus_spriteram_r, gaplus_spriteram_w) /* shared RAM with CPU #1 */
// AM_RANGE(0x500f, 0x500f) AM_WRITENOP /* ??? written 256 times on startup */
- AM_RANGE(0x6000, 0x6fff) AM_WRITE_LEGACY(gaplus_irq_2_ctrl_w) /* IRQ 2 control */
+ AM_RANGE(0x6000, 0x6fff) AM_WRITE(gaplus_irq_2_ctrl_w) /* IRQ 2 control */
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu3_map, AS_PROGRAM, 8, gaplus_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU + sound registers */
AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(watchdog_reset_r, watchdog_reset_w) /* watchdog? */
- AM_RANGE(0x4000, 0x7fff) AM_WRITE_LEGACY(gaplus_irq_3_ctrl_w) /* interrupt enable/disable */
+ AM_RANGE(0x4000, 0x7fff) AM_WRITE(gaplus_irq_3_ctrl_w) /* interrupt enable/disable */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c
index 63e1504cde5..e5b8d6e644b 100644
--- a/src/mame/drivers/gatron.c
+++ b/src/mame/drivers/gatron.c
@@ -240,7 +240,7 @@
* Read/Write Handlers *
****************************/
-static WRITE8_HANDLER( output_port_0_w )
+WRITE8_MEMBER(gatron_state::output_port_0_w)
{
/* ---------------
Pull Tabs lamps
@@ -342,7 +342,7 @@ static ADDRESS_MAP_START( gat_map, AS_PROGRAM, 8, gatron_state )
AM_RANGE(0x6000, 0x63ff) AM_RAM_WRITE_LEGACY(gat_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram") /* battery backed RAM */
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* PSG */
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(output_port_0_w) /* lamps */
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(output_port_0_w) /* lamps */
ADDRESS_MAP_END
static ADDRESS_MAP_START( gat_portmap, AS_IO, 8, gatron_state )
diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c
index 2403e7c72c6..f708de61fdc 100644
--- a/src/mame/drivers/gberet.c
+++ b/src/mame/drivers/gberet.c
@@ -108,46 +108,44 @@ static TIMER_DEVICE_CALLBACK( gberet_interrupt_tick )
*
*************************************/
-static WRITE8_HANDLER( gberet_coin_counter_w )
+WRITE8_MEMBER(gberet_state::gberet_coin_counter_w)
{
/* bits 0/1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
-static WRITE8_HANDLER( mrgoemon_coin_counter_w )
+WRITE8_MEMBER(gberet_state::mrgoemon_coin_counter_w)
{
/* bits 0/1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
/* bits 5-7 = ROM bank select */
- memory_set_bank(space->machine(), "bank1", ((data & 0xe0) >> 5));
+ memory_set_bank(machine(), "bank1", ((data & 0xe0) >> 5));
}
-static WRITE8_HANDLER( gberet_flipscreen_w )
+WRITE8_MEMBER(gberet_state::gberet_flipscreen_w)
{
- gberet_state *state = space->machine().driver_data<gberet_state>();
/* bits 0/1/2 = interrupt enable */
- UINT8 ack_mask = ~data & state->m_interrupt_mask; // 1->0
+ UINT8 ack_mask = ~data & m_interrupt_mask; // 1->0
if (ack_mask & 1)
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
if (ack_mask & 6)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
- state->m_interrupt_mask = data & 7;
+ m_interrupt_mask = data & 7;
/* bit 3 = flip screen */
- flip_screen_set(space->machine(), data & 8);
+ flip_screen_set(machine(), data & 8);
}
-static WRITE8_HANDLER( gberet_sound_w )
+WRITE8_MEMBER(gberet_state::gberet_sound_w)
{
- gberet_state *state = space->machine().driver_data<gberet_state>();
- sn76496_w(space->machine().device("snsnd"), 0, *state->m_soundlatch);
+ sn76496_w(machine().device("snsnd"), 0, *m_soundlatch);
}
static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8, gberet_state )
@@ -160,10 +158,10 @@ static ADDRESS_MAP_START( gberet_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0xe000, 0xe03f) AM_RAM_WRITE_LEGACY(gberet_scroll_w) AM_BASE(m_scrollram)
AM_RANGE(0xe040, 0xe042) AM_WRITENOP // ???
AM_RANGE(0xe043, 0xe043) AM_WRITE_LEGACY(gberet_sprite_bank_w)
- AM_RANGE(0xe044, 0xe044) AM_WRITE_LEGACY(gberet_flipscreen_w)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(gberet_coin_counter_w)
+ AM_RANGE(0xe044, 0xe044) AM_WRITE(gberet_flipscreen_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(gberet_coin_counter_w)
AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE(m_soundlatch)
- AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW3") AM_WRITE_LEGACY(gberet_sound_w)
+ AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW3") AM_WRITE(gberet_sound_w)
AM_RANGE(0xf600, 0xf600) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xf601, 0xf601) AM_READ_PORT("P2")
AM_RANGE(0xf602, 0xf602) AM_READ_PORT("P1")
@@ -180,10 +178,10 @@ static ADDRESS_MAP_START( mrgoemon_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0xe000, 0xe03f) AM_RAM_WRITE_LEGACY(gberet_scroll_w) AM_BASE(m_scrollram)
AM_RANGE(0xe040, 0xe042) AM_WRITENOP // ???
AM_RANGE(0xe043, 0xe043) AM_WRITE_LEGACY(gberet_sprite_bank_w)
- AM_RANGE(0xe044, 0xe044) AM_WRITE_LEGACY(gberet_flipscreen_w)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(mrgoemon_coin_counter_w)
+ AM_RANGE(0xe044, 0xe044) AM_WRITE(gberet_flipscreen_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(mrgoemon_coin_counter_w)
AM_RANGE(0xf200, 0xf200) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE(m_soundlatch)
- AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW3") AM_WRITE_LEGACY(gberet_sound_w)
+ AM_RANGE(0xf400, 0xf400) AM_READ_PORT("DSW3") AM_WRITE(gberet_sound_w)
AM_RANGE(0xf600, 0xf600) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xf601, 0xf601) AM_READ_PORT("P2")
AM_RANGE(0xf602, 0xf602) AM_READ_PORT("P1")
@@ -192,20 +190,20 @@ static ADDRESS_MAP_START( mrgoemon_map, AS_PROGRAM, 8, gberet_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( gberetb_flipscreen_w )
+WRITE8_MEMBER(gberet_state::gberetb_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 8);
+ flip_screen_set(machine(), data & 8);
}
-static READ8_HANDLER( gberetb_irq_ack_r )
+READ8_MEMBER(gberet_state::gberetb_irq_ack_r)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
return 0xff;
}
-static WRITE8_HANDLER( gberetb_nmi_ack_w )
+WRITE8_MEMBER(gberet_state::gberetb_nmi_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
}
static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8, gberet_state )
@@ -215,7 +213,7 @@ static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe03f) AM_RAM
AM_RANGE(0xe040, 0xe043) AM_WRITENOP // ???
- AM_RANGE(0xe044, 0xe044) AM_WRITE_LEGACY(gberetb_flipscreen_w) // did hw even support flipscreen?
+ AM_RANGE(0xe044, 0xe044) AM_WRITE(gberetb_flipscreen_w) // did hw even support flipscreen?
AM_RANGE(0xe800, 0xe8ff) AM_RAM
AM_RANGE(0xe900, 0xe9ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xf000, 0xf000) AM_WRITENOP // coin counter not supported
@@ -225,7 +223,7 @@ static ADDRESS_MAP_START( gberetb_map, AS_PROGRAM, 8, gberet_state )
AM_RANGE(0xf601, 0xf601) AM_READ_PORT("DSW1")
AM_RANGE(0xf602, 0xf602) AM_READ_PORT("P1")
AM_RANGE(0xf603, 0xf603) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(gberetb_irq_ack_r, gberetb_nmi_ack_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(gberetb_irq_ack_r, gberetb_nmi_ack_w)
AM_RANGE(0xf900, 0xf901) AM_WRITE_LEGACY(gberetb_scroll_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index f49d1a6f58f..9317932b7f6 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -27,56 +27,52 @@ static INTERRUPT_GEN( gbusters_interrupt )
device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(gbusters_state::bankedram_r)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
- if (state->m_palette_selected)
- return space->machine().generic.paletteram.u8[offset];
+ if (m_palette_selected)
+ return machine().generic.paletteram.u8[offset];
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(gbusters_state::bankedram_w)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
- if (state->m_palette_selected)
+ if (m_palette_selected)
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
-static WRITE8_HANDLER( gbusters_1f98_w )
+WRITE8_MEMBER(gbusters_state::gbusters_1f98_w)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
/* bit 0 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
/* bit 7 used (during gfx rom tests), but unknown */
/* other bits unused/unknown */
if (data & 0xfe)
{
- //logerror("%04x: (1f98) write %02x\n",cpu_get_pc(&space->device()), data);
+ //logerror("%04x: (1f98) write %02x\n",cpu_get_pc(&space.device()), data);
//popmessage("$1f98 = %02x", data);
}
}
-static WRITE8_HANDLER( gbusters_coin_counter_w )
+WRITE8_MEMBER(gbusters_state::gbusters_coin_counter_w)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
/* bit 0 select palette RAM or work RAM at 5800-5fff */
- state->m_palette_selected = ~data & 0x01;
+ m_palette_selected = ~data & 0x01;
/* bits 1 & 2 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x02);
- coin_counter_w(space->machine(), 1, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x02);
+ coin_counter_w(machine(), 1, data & 0x04);
/* bits 3 selects tilemap priority */
- state->m_priority = data & 0x08;
+ m_priority = data & 0x08;
/* bit 7 is used but unknown */
@@ -88,13 +84,13 @@ static WRITE8_HANDLER( gbusters_coin_counter_w )
sprintf(baf, "ccnt = %02x", data);
popmessage(baf);
#endif
- logerror("%04x: (ccount) write %02x\n", cpu_get_pc(&space->device()), data);
+ logerror("%04x: (ccount) write %02x\n", cpu_get_pc(&space.device()), data);
}
}
-static WRITE8_HANDLER( gbusters_unknown_w )
+WRITE8_MEMBER(gbusters_state::gbusters_unknown_w)
{
- logerror("%04x: write %02x to 0x1f9c\n",cpu_get_pc(&space->device()), data);
+ logerror("%04x: write %02x to 0x1f9c\n",cpu_get_pc(&space.device()), data);
{
char baf[40];
@@ -103,10 +99,9 @@ char baf[40];
}
}
-static WRITE8_HANDLER( gbusters_sh_irqtrigger_w )
+WRITE8_MEMBER(gbusters_state::gbusters_sh_irqtrigger_w)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
- 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);
}
static WRITE8_DEVICE_HANDLER( gbusters_snd_bankswitch_w )
@@ -125,40 +120,38 @@ static WRITE8_DEVICE_HANDLER( gbusters_snd_bankswitch_w )
}
/* special handlers to combine 052109 & 051960 */
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(gbusters_state::k052109_051960_r)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(gbusters_state::k052109_051960_w)
{
- gbusters_state *state = space->machine().driver_data<gbusters_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( gbusters_map, AS_PROGRAM, 8, gbusters_state )
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE_LEGACY(gbusters_coin_counter_w) /* coin counters */
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITE(gbusters_coin_counter_w) /* coin counters */
AM_RANGE(0x1f84, 0x1f84) AM_WRITE_LEGACY(soundlatch_w) /* sound code # */
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE_LEGACY(gbusters_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(gbusters_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1")
@@ -166,11 +159,11 @@ static ADDRESS_MAP_START( gbusters_map, AS_PROGRAM, 8, gbusters_state )
AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3")
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2")
- AM_RANGE(0x1f98, 0x1f98) AM_WRITE_LEGACY(gbusters_1f98_w) /* enable gfx ROM read through VRAM */
- AM_RANGE(0x1f9c, 0x1f9c) AM_WRITE_LEGACY(gbusters_unknown_w) /* ??? */
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w) /* tiles + sprites (RAM H21, G21 & H6) */
+ AM_RANGE(0x1f98, 0x1f98) AM_WRITE(gbusters_1f98_w) /* enable gfx ROM read through VRAM */
+ AM_RANGE(0x1f9c, 0x1f9c) AM_WRITE(gbusters_unknown_w) /* ??? */
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* tiles + sprites (RAM H21, G21 & H6) */
AM_RANGE(0x4000, 0x57ff) AM_RAM /* RAM I12 */
- AM_RANGE(0x5800, 0x5fff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE(m_ram) /* palette + work RAM (RAM D16 & C16) */
+ AM_RANGE(0x5800, 0x5fff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram) /* palette + work RAM (RAM D16 & C16) */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM 878n02.rom */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c
index 0ada8ed916a..06b1a80bfcf 100644
--- a/src/mame/drivers/gcpinbal.c
+++ b/src/mame/drivers/gcpinbal.c
@@ -74,39 +74,37 @@ static INTERRUPT_GEN( gcpinbal_interrupt )
IOC
***********************************************************/
-static READ16_HANDLER( ioc_r )
+READ16_MEMBER(gcpinbal_state::ioc_r)
{
- gcpinbal_state *state = space->machine().driver_data<gcpinbal_state>();
/* 20 (only once), 76, a0 are read in log */
switch (offset)
{
case 0x80/2:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 0x84/2:
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x86/2:
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 0x50:
case 0x51:
- return state->m_oki->read(*space, 0) << 8;
+ return m_oki->read(*&space, 0) << 8;
}
-//logerror("CPU #0 PC %06x: warning - read unmapped ioc offset %06x\n",cpu_get_pc(&space->device()),offset);
+//logerror("CPU #0 PC %06x: warning - read unmapped ioc offset %06x\n",cpu_get_pc(&space.device()),offset);
- return state->m_ioc_ram[offset];
+ return m_ioc_ram[offset];
}
-static WRITE16_HANDLER( ioc_w )
+WRITE16_MEMBER(gcpinbal_state::ioc_w)
{
- gcpinbal_state *state = space->machine().driver_data<gcpinbal_state>();
- COMBINE_DATA(&state->m_ioc_ram[offset]);
+ COMBINE_DATA(&m_ioc_ram[offset]);
// switch (offset)
// {
@@ -114,8 +112,8 @@ static WRITE16_HANDLER( ioc_w )
// return;
//
// case 0x88/2: /* coin control (+ others) ??? */
-// coin_lockout_w(space->machine(), 0, ~data & 0x01);
-// coin_lockout_w(space->machine(), 1, ~data & 0x02);
+// coin_lockout_w(machine(), 0, ~data & 0x01);
+// coin_lockout_w(machine(), 1, ~data & 0x02);
//popmessage(" address %04x value %04x", offset, data);
// }
@@ -135,61 +133,61 @@ static WRITE16_HANDLER( ioc_w )
// MSM6585 bank, coin LEDs, maybe others?
case 0x44:
- state->m_msm_bank = data & 0x1000 ? 0x100000 : 0;
- state->m_oki->set_bank_base(0x40000 * ((data & 0x800 )>> 11));
+ m_msm_bank = data & 0x1000 ? 0x100000 : 0;
+ m_oki->set_bank_base(0x40000 * ((data & 0x800 )>> 11));
break;
case 0x45:
- //state->m_adpcm_idle = 1;
+ //m_adpcm_idle = 1;
break;
// OKIM6295
case 0x50:
case 0x51:
- state->m_oki->write(*space, 0, data >> 8);
+ m_oki->write(*&space, 0, data >> 8);
break;
// MSM6585 ADPCM - mini emulation
case 0x60:
- state->m_msm_start &= 0xffff00;
- state->m_msm_start |= (data >> 8);
+ m_msm_start &= 0xffff00;
+ m_msm_start |= (data >> 8);
break;
case 0x61:
- state->m_msm_start &= 0xff00ff;
- state->m_msm_start |= data;
+ m_msm_start &= 0xff00ff;
+ m_msm_start |= data;
break;
case 0x62:
- state->m_msm_start &= 0x00ffff;
- state->m_msm_start |= (data << 8);
+ m_msm_start &= 0x00ffff;
+ m_msm_start |= (data << 8);
break;
case 0x63:
- state->m_msm_end &= 0xffff00;
- state->m_msm_end |= (data >> 8);
+ m_msm_end &= 0xffff00;
+ m_msm_end |= (data >> 8);
break;
case 0x64:
- state->m_msm_end &= 0xff00ff;
- state->m_msm_end |= data;
+ m_msm_end &= 0xff00ff;
+ m_msm_end |= data;
break;
case 0x65:
- state->m_msm_end &= 0x00ffff;
- state->m_msm_end |= (data << 8);
+ m_msm_end &= 0x00ffff;
+ m_msm_end |= (data << 8);
break;
case 0x66:
- if (state->m_msm_start < state->m_msm_end)
+ if (m_msm_start < m_msm_end)
{
/* data written here is adpcm param? */
- //popmessage("%08x %08x", state->m_msm_start + state->m_msm_bank, state->m_msm_end);
- state->m_adpcm_idle = 0;
- msm5205_reset_w(state->m_msm, 0);
- state->m_adpcm_start = state->m_msm_start + state->m_msm_bank;
- state->m_adpcm_end = state->m_msm_end;
+ //popmessage("%08x %08x", m_msm_start + m_msm_bank, m_msm_end);
+ m_adpcm_idle = 0;
+ msm5205_reset_w(m_msm, 0);
+ m_adpcm_start = m_msm_start + m_msm_bank;
+ m_adpcm_end = m_msm_end;
// ADPCM_stop(0);
// ADPCM_play(0, start+bank, end-start);
}
break;
default:
- logerror("CPU #0 PC %06x: warning - write ioc offset %06x with %04x\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("CPU #0 PC %06x: warning - write ioc offset %06x with %04x\n", cpu_get_pc(&space.device()), offset, data);
break;
}
@@ -236,7 +234,7 @@ static ADDRESS_MAP_START( gcpinbal_map, AS_PROGRAM, 16, gcpinbal_state )
AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(gcpinbal_tilemaps_word_r, gcpinbal_tilemaps_word_w) AM_BASE(m_tilemapram)
AM_RANGE(0xc80000, 0xc80fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* sprite ram */
AM_RANGE(0xd00000, 0xd00fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xd80000, 0xd800ff) AM_READWRITE_LEGACY(ioc_r, ioc_w) AM_BASE(m_ioc_ram)
+ AM_RANGE(0xd80000, 0xd800ff) AM_READWRITE(ioc_r, ioc_w) AM_BASE(m_ioc_ram)
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c
index fd86c6363e0..eb509a993ba 100644
--- a/src/mame/drivers/gijoe.c
+++ b/src/mame/drivers/gijoe.c
@@ -58,15 +58,13 @@ static const eeprom_interface eeprom_intf =
};
-static READ16_HANDLER( control2_r )
+READ16_MEMBER(gijoe_state::control2_r)
{
- gijoe_state *state = space->machine().driver_data<gijoe_state>();
- return state->m_cur_control2;
+ return m_cur_control2;
}
-static WRITE16_HANDLER( control2_w )
+WRITE16_MEMBER(gijoe_state::control2_w)
{
- gijoe_state *state = space->machine().driver_data<gijoe_state>();
if (ACCESSING_BITS_0_7)
{
@@ -76,12 +74,12 @@ static WRITE16_HANDLER( control2_w )
/* bit 3 (unknown: coin) */
/* bit 5 is enable irq 6 */
/* bit 7 (unknown: enable irq 5?) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
- state->m_cur_control2 = data;
+ m_cur_control2 = data;
/* bit 6 = enable sprite ROM reading */
- k053246_set_objcha_line(state->m_k053246, (data & 0x0040) ? ASSERT_LINE : CLEAR_LINE);
+ k053246_set_objcha_line(m_k053246, (data & 0x0040) ? ASSERT_LINE : CLEAR_LINE);
}
}
@@ -139,7 +137,7 @@ static INTERRUPT_GEN( gijoe_interrupt )
device_set_input_line(device, 5, HOLD_LINE);
}
-static WRITE16_HANDLER( sound_cmd_w )
+WRITE16_MEMBER(gijoe_state::sound_cmd_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -148,13 +146,12 @@ static WRITE16_HANDLER( sound_cmd_w )
}
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(gijoe_state::sound_irq_w)
{
- gijoe_state *state = space->machine().driver_data<gijoe_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(gijoe_state::sound_status_r)
{
return soundlatch2_r(space, 0);
}
@@ -178,15 +175,15 @@ static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16, gijoe_state )
AM_RANGE(0x190000, 0x190fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1a0000, 0x1a001f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x1b0000, 0x1b003f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)
- AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE_LEGACY(sound_cmd_w)
- AM_RANGE(0x1c0014, 0x1c0015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x1c000c, 0x1c000d) AM_WRITE(sound_cmd_w)
+ AM_RANGE(0x1c0014, 0x1c0015) AM_READ(sound_status_r)
AM_RANGE(0x1c0000, 0x1c001f) AM_RAM
- AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(sound_irq_w)
AM_RANGE(0x1e0000, 0x1e0001) AM_READ_PORT("P1_P2")
AM_RANGE(0x1e0002, 0x1e0003) AM_READ_PORT("P3_P4")
AM_RANGE(0x1e4000, 0x1e4001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1e4002, 0x1e4003) AM_READ_PORT("START")
- AM_RANGE(0x1e8000, 0x1e8001) AM_READWRITE_LEGACY(control2_r, control2_w)
+ AM_RANGE(0x1e8000, 0x1e8001) AM_READWRITE(control2_r, control2_w)
AM_RANGE(0x1f0000, 0x1f0001) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
#if JOE_DEBUG
AM_RANGE(0x110000, 0x110007) AM_DEVREAD_LEGACY("k053246", k053246_reg_word_r)
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index d875026f6b7..d9492dadf01 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -13,10 +13,9 @@ The DS5002FP has up to 128KB undumped gameplay code making the game unplayable :
#include "sound/okim6295.h"
#include "includes/glass.h"
-static WRITE16_HANDLER( clr_int_w )
+WRITE16_MEMBER(glass_state::clr_int_w)
{
- glass_state *state = space->machine().driver_data<glass_state>();
- state->m_cause_interrupt = 1;
+ m_cause_interrupt = 1;
}
static INTERRUPT_GEN( glass_interrupt )
@@ -53,25 +52,25 @@ static GFXDECODE_START( glass )
GFXDECODE_END
-static WRITE16_HANDLER( OKIM6295_bankswitch_w )
+WRITE16_MEMBER(glass_state::OKIM6295_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("oki")->base();
+ UINT8 *RAM = machine().region("oki")->base();
if (ACCESSING_BITS_0_7)
memcpy(&RAM[0x30000], &RAM[0x40000 + (data & 0x0f) * 0x10000], 0x10000);
}
-static WRITE16_HANDLER( glass_coin_w )
+WRITE16_MEMBER(glass_state::glass_coin_w)
{
switch (offset >> 3)
{
case 0x00: /* Coin Lockouts */
case 0x01:
- coin_lockout_w(space->machine(), (offset >> 3) & 0x01, ~data & 0x01);
+ coin_lockout_w(machine(), (offset >> 3) & 0x01, ~data & 0x01);
break;
case 0x02: /* Coin Counters */
case 0x03:
- coin_counter_w(space->machine(), (offset >> 3) & 0x01, data & 0x01);
+ coin_counter_w(machine(), (offset >> 3) & 0x01, data & 0x01);
break;
case 0x04: /* Sound Muting (if bit 0 == 1, sound output stream = 0) */
break;
@@ -83,7 +82,7 @@ static ADDRESS_MAP_START( glass_map, AS_PROGRAM, 16, glass_state )
AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE_LEGACY(glass_vram_w) AM_BASE(m_videoram) /* Video RAM */
AM_RANGE(0x102000, 0x102fff) AM_RAM /* Extra Video RAM */
AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_BASE(m_vregs) /* Video Registers */
- AM_RANGE(0x108008, 0x108009) AM_WRITE_LEGACY(clr_int_w) /* CLR INT Video */
+ AM_RANGE(0x108008, 0x108009) AM_WRITE(clr_int_w) /* CLR INT Video */
AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram) /* Palette */
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(m_spriteram) /* Sprite RAM */
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
@@ -91,9 +90,9 @@ static ADDRESS_MAP_START( glass_map, AS_PROGRAM, 16, glass_state )
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
AM_RANGE(0x700008, 0x700009) AM_WRITE_LEGACY(glass_blitter_w) /* serial blitter */
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) /* OKI6295 status register */
- AM_RANGE(0x70000a, 0x70004b) AM_WRITE_LEGACY(glass_coin_w) /* Coin Counters/Lockout */
+ AM_RANGE(0x70000a, 0x70004b) AM_WRITE(glass_coin_w) /* Coin Counters/Lockout */
AM_RANGE(0xfec000, 0xfeffff) AM_RAM /* Work RAM (partially shared with DS5002FP) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c
index 34ec8188a94..284e9ad661c 100644
--- a/src/mame/drivers/gng.c
+++ b/src/mame/drivers/gng.c
@@ -27,17 +27,17 @@ Notes:
#include "includes/gng.h"
-static WRITE8_HANDLER( gng_bankswitch_w )
+WRITE8_MEMBER(gng_state::gng_bankswitch_w)
{
if (data == 4)
- memory_set_bank(space->machine(), "bank1", 4);
+ memory_set_bank(machine(), "bank1", 4);
else
- memory_set_bank(space->machine(), "bank1", (data & 0x03));
+ memory_set_bank(machine(), "bank1", (data & 0x03));
}
-static WRITE8_HANDLER( gng_coin_counter_w )
+WRITE8_MEMBER(gng_state::gng_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state )
@@ -58,8 +58,8 @@ static ADDRESS_MAP_START( gng_map, AS_PROGRAM, 8, gng_state )
AM_RANGE(0x3c00, 0x3c00) AM_NOP /* watchdog? */
AM_RANGE(0x3d00, 0x3d00) AM_WRITE_LEGACY(gng_flipscreen_w)
// { 0x3d01, 0x3d01, reset sound cpu?
- AM_RANGE(0x3d02, 0x3d03) AM_WRITE_LEGACY(gng_coin_counter_w)
- AM_RANGE(0x3e00, 0x3e00) AM_WRITE_LEGACY(gng_bankswitch_w)
+ AM_RANGE(0x3d02, 0x3d03) AM_WRITE(gng_coin_counter_w)
+ AM_RANGE(0x3e00, 0x3e00) AM_WRITE(gng_bankswitch_w)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -730,14 +730,15 @@ ROM_END
-static READ8_HANDLER( diamond_hack_r )
+READ8_MEMBER(gng_state::diamond_hack_r)
{
return 0;
}
static DRIVER_INIT( diamond )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000, 0x6000, FUNC(diamond_hack_r));
+ gng_state *state = machine.driver_data<gng_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000, 0x6000, read8_delegate(FUNC(gng_state::diamond_hack_r),state));
}
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index 579500e8d57..9d74759b7dd 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -15,33 +15,32 @@
#include "sound/msm5205.h"
#include "includes/goal92.h"
-static WRITE16_HANDLER( goal92_sound_command_w )
+WRITE16_MEMBER(goal92_state::goal92_sound_command_w)
{
- goal92_state *state = space->machine().driver_data<goal92_state>();
if (ACCESSING_BITS_8_15)
{
soundlatch_w(space, 0, (data >> 8) & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
}
-static READ16_HANDLER( goal92_inputs_r )
+READ16_MEMBER(goal92_state::goal92_inputs_r)
{
switch(offset)
{
case 0:
- return input_port_read(space->machine(), "DSW1");
+ return input_port_read(machine(), "DSW1");
case 1:
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 2:
- return input_port_read(space->machine(), "IN2");
+ return input_port_read(machine(), "IN2");
case 3:
- return input_port_read(space->machine(), "IN3");
+ return input_port_read(machine(), "IN3");
case 7:
- return input_port_read(space->machine(), "DSW2");
+ return input_port_read(machine(), "DSW2");
default:
- logerror("reading unhandled goal92 inputs %04X %04X @ PC = %04X\n", offset, mem_mask,cpu_get_pc(&space->device()));
+ logerror("reading unhandled goal92 inputs %04X %04X @ PC = %04X\n", offset, mem_mask,cpu_get_pc(&space.device()));
}
return 0;
@@ -59,8 +58,8 @@ static ADDRESS_MAP_START( goal92_map, AS_PROGRAM, 16, goal92_state )
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x140800, 0x140801) AM_WRITENOP
AM_RANGE(0x140802, 0x140803) AM_WRITENOP
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(goal92_inputs_r)
- AM_RANGE(0x180008, 0x180009) AM_WRITE_LEGACY(goal92_sound_command_w)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(goal92_inputs_r)
+ AM_RANGE(0x180008, 0x180009) AM_WRITE(goal92_sound_command_w)
AM_RANGE(0x18000a, 0x18000b) AM_WRITENOP
AM_RANGE(0x180010, 0x180017) AM_WRITEONLY AM_BASE(m_scrollram)
AM_RANGE(0x18001c, 0x18001d) AM_READWRITE_LEGACY(goal92_fg_bank_r, goal92_fg_bank_w)
@@ -75,17 +74,16 @@ static WRITE8_DEVICE_HANDLER( adpcm_control_w )
msm5205_reset_w(device, data & 0x08);
}
-static WRITE8_HANDLER( adpcm_data_w )
+WRITE8_MEMBER(goal92_state::adpcm_data_w)
{
- goal92_state *state = space->machine().driver_data<goal92_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
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(0xe400, 0xe400) AM_WRITE_LEGACY(adpcm_data_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)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index 899810aaa49..2299f707343 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -23,66 +23,60 @@ Notes:
#include "includes/goindol.h"
-static WRITE8_HANDLER( goindol_bankswitch_w )
+WRITE8_MEMBER(goindol_state::goindol_bankswitch_w)
{
- goindol_state *state = space->machine().driver_data<goindol_state>();
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
- if (state->m_char_bank != ((data & 0x10) >> 4))
+ if (m_char_bank != ((data & 0x10) >> 4))
{
- state->m_char_bank = (data & 0x10) >> 4;
- space->machine().tilemap().mark_all_dirty();
+ m_char_bank = (data & 0x10) >> 4;
+ machine().tilemap().mark_all_dirty();
}
- flip_screen_set(space->machine(), data & 0x20);
+ flip_screen_set(machine(), data & 0x20);
}
-static READ8_HANDLER( prot_f422_r )
+READ8_MEMBER(goindol_state::prot_f422_r)
{
- goindol_state *state = space->machine().driver_data<goindol_state>();
/* bit 7 = vblank? */
- state->m_prot_toggle ^= 0x80;
+ m_prot_toggle ^= 0x80;
- return state->m_prot_toggle;
+ return m_prot_toggle;
}
-static WRITE8_HANDLER( prot_fc44_w )
+WRITE8_MEMBER(goindol_state::prot_fc44_w)
{
- goindol_state *state = space->machine().driver_data<goindol_state>();
- logerror("%04x: prot_fc44_w(%02x)\n", cpu_get_pc(&space->device()), data);
- state->m_ram[0x0419] = 0x5b;
- state->m_ram[0x041a] = 0x3f;
- state->m_ram[0x041b] = 0x6d;
+ logerror("%04x: prot_fc44_w(%02x)\n", cpu_get_pc(&space.device()), data);
+ m_ram[0x0419] = 0x5b;
+ m_ram[0x041a] = 0x3f;
+ m_ram[0x041b] = 0x6d;
}
-static WRITE8_HANDLER( prot_fd99_w )
+WRITE8_MEMBER(goindol_state::prot_fd99_w)
{
- goindol_state *state = space->machine().driver_data<goindol_state>();
- logerror("%04x: prot_fd99_w(%02x)\n", cpu_get_pc(&space->device()), data);
- state->m_ram[0x0421] = 0x3f;
+ logerror("%04x: prot_fd99_w(%02x)\n", cpu_get_pc(&space.device()), data);
+ m_ram[0x0421] = 0x3f;
}
-static WRITE8_HANDLER( prot_fc66_w )
+WRITE8_MEMBER(goindol_state::prot_fc66_w)
{
- goindol_state *state = space->machine().driver_data<goindol_state>();
- logerror("%04x: prot_fc66_w(%02x)\n", cpu_get_pc(&space->device()), data);
- state->m_ram[0x0423] = 0x06;
+ logerror("%04x: prot_fc66_w(%02x)\n", cpu_get_pc(&space.device()), data);
+ m_ram[0x0423] = 0x06;
}
-static WRITE8_HANDLER( prot_fcb0_w )
+WRITE8_MEMBER(goindol_state::prot_fcb0_w)
{
- goindol_state *state = space->machine().driver_data<goindol_state>();
- logerror("%04x: prot_fcb0_w(%02x)\n", cpu_get_pc(&space->device()), data);
- state->m_ram[0x0425] = 0x06;
+ logerror("%04x: prot_fcb0_w(%02x)\n", cpu_get_pc(&space.device()), data);
+ m_ram[0x0425] = 0x06;
}
@@ -92,7 +86,7 @@ static ADDRESS_MAP_START( goindol_map, AS_PROGRAM, 8, goindol_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(m_ram)
AM_RANGE(0xc800, 0xc800) AM_READNOP AM_WRITE_LEGACY(soundlatch_w) // watchdog?
- AM_RANGE(0xc810, 0xc810) AM_WRITE_LEGACY(goindol_bankswitch_w)
+ AM_RANGE(0xc810, 0xc810) AM_WRITE(goindol_bankswitch_w)
AM_RANGE(0xc820, 0xc820) AM_READ_PORT("DIAL")
AM_RANGE(0xc820, 0xd820) AM_WRITEONLY AM_BASE(m_fg_scrolly)
AM_RANGE(0xc830, 0xc830) AM_READ_PORT("P1")
@@ -105,12 +99,12 @@ static ADDRESS_MAP_START( goindol_map, AS_PROGRAM, 8, goindol_state )
AM_RANGE(0xe040, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE_LEGACY(goindol_fg_videoram_w) AM_BASE_SIZE(m_fg_videoram, m_fg_videoram_size)
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1")
- AM_RANGE(0xf422, 0xf422) AM_READ_LEGACY(prot_f422_r)
+ AM_RANGE(0xf422, 0xf422) AM_READ(prot_f422_r)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW2")
- AM_RANGE(0xfc44, 0xfc44) AM_WRITE_LEGACY(prot_fc44_w)
- AM_RANGE(0xfc66, 0xfc66) AM_WRITE_LEGACY(prot_fc66_w)
- AM_RANGE(0xfcb0, 0xfcb0) AM_WRITE_LEGACY(prot_fcb0_w)
- AM_RANGE(0xfd99, 0xfd99) AM_WRITE_LEGACY(prot_fd99_w)
+ AM_RANGE(0xfc44, 0xfc44) AM_WRITE(prot_fc44_w)
+ AM_RANGE(0xfc66, 0xfc66) AM_WRITE(prot_fc66_w)
+ AM_RANGE(0xfcb0, 0xfcb0) AM_WRITE(prot_fcb0_w)
+ AM_RANGE(0xfd99, 0xfd99) AM_WRITE(prot_fd99_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, goindol_state )
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index 4e2c35cf7e9..c84fef37472 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -121,21 +121,19 @@
#include "bingowng.lh"
-static WRITE8_HANDLER( protection_w )
+WRITE8_MEMBER(goldstar_state::protection_w)
{
- goldstar_state *state = space->machine().driver_data<goldstar_state>();
if (data == 0x2a)
- state->m_dataoffset = 0;
+ m_dataoffset = 0;
}
-static READ8_HANDLER( protection_r )
+READ8_MEMBER(goldstar_state::protection_r)
{
- goldstar_state *state = space->machine().driver_data<goldstar_state>();
static const int data[4] = { 0x47, 0x4f, 0x4c, 0x44 };
- state->m_dataoffset %= 4;
- return data[state->m_dataoffset++];
+ m_dataoffset %= 4;
+ return data[m_dataoffset++];
}
static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8, goldstar_state )
@@ -166,7 +164,7 @@ static ADDRESS_MAP_START( goldstar_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(goldstar_fa00_w)
AM_RANGE(0xfb00, 0xfb00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xfd00, 0xfdff) AM_RAM_WRITE_LEGACY(paletteram_BBGGGRRR_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xfe00, 0xfe00) AM_READWRITE_LEGACY(protection_r,protection_w)
+ AM_RANGE(0xfe00, 0xfe00) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( goldstar_readport, AS_IO, 8, goldstar_state )
@@ -174,7 +172,7 @@ static ADDRESS_MAP_START( goldstar_readport, AS_IO, 8, goldstar_state )
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW6")
ADDRESS_MAP_END
-static WRITE8_HANDLER( ncb3_port81_w )
+WRITE8_MEMBER(goldstar_state::ncb3_port81_w)
{
// if (data!=0x00)
// popmessage("ncb3_port81_w %02x\n",data);
@@ -213,7 +211,7 @@ static ADDRESS_MAP_START( ncb3_readwriteport, AS_IO, 8, goldstar_state )
// AM_RANGE(0x06, 0x06) AM_READ_LEGACY(ncb3_unkread_r) // unknown...
// AM_RANGE(0x08, 0x08) AM_READ_LEGACY(ncb3_unkread_r) // unknown...
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW5") /* confirmed for ncb3 */
- AM_RANGE(0x81, 0x81) AM_WRITE_LEGACY(ncb3_port81_w) // ---> large writes.
+ AM_RANGE(0x81, 0x81) AM_WRITE(ncb3_port81_w) // ---> large writes.
ADDRESS_MAP_END
@@ -248,7 +246,7 @@ ADDRESS_MAP_END
-static WRITE8_HANDLER( cm_outport1_w )
+WRITE8_MEMBER(goldstar_state::cm_outport1_w)
{
/* lamps? */
}
@@ -307,7 +305,7 @@ static ADDRESS_MAP_START( cm_portmap, AS_IO, 8, goldstar_state )
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(cm_outport0_w) /* output port */
AM_RANGE(0x11, 0x11) AM_WRITENOP
- AM_RANGE(0x12, 0x12) AM_WRITE_LEGACY(cm_outport1_w) /* output port */
+ AM_RANGE(0x12, 0x12) AM_WRITE(cm_outport1_w) /* output port */
AM_RANGE(0x13, 0x13) AM_WRITE_LEGACY(cm_background_col_w)
AM_RANGE(0x14, 0x14) AM_WRITE_LEGACY(cm_girl_scroll_w)
ADDRESS_MAP_END
@@ -330,7 +328,7 @@ static ADDRESS_MAP_START( amcoe1_portmap, AS_IO, 8, goldstar_state )
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(cm_outport0_w) /* output port */
AM_RANGE(0x11, 0x11) AM_WRITENOP
- AM_RANGE(0x12, 0x12) AM_WRITE_LEGACY(cm_outport1_w) /* output port */
+ AM_RANGE(0x12, 0x12) AM_WRITE(cm_outport1_w) /* output port */
AM_RANGE(0x13, 0x13) AM_WRITE_LEGACY(cm_background_col_w)
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("oki", okim6295_device, read, write)
ADDRESS_MAP_END
@@ -343,12 +341,12 @@ static ADDRESS_MAP_START( amcoe2_portmap, AS_IO, 8, goldstar_state )
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(cm_outport0_w) /* output port */
AM_RANGE(0x11, 0x11) AM_WRITENOP
- AM_RANGE(0x12, 0x12) AM_WRITE_LEGACY(cm_outport1_w) /* output port */
+ AM_RANGE(0x12, 0x12) AM_WRITE(cm_outport1_w) /* output port */
AM_RANGE(0x13, 0x13) AM_WRITE_LEGACY(cm_background_col_w)
ADDRESS_MAP_END
-static WRITE8_HANDLER( lucky8_outport_w )
+WRITE8_MEMBER(goldstar_state::lucky8_outport_w)
{
/* lamps */
output_set_lamp_value(0, (data >> 1) & 1); /* D-UP Lamp */
@@ -378,29 +376,28 @@ static ADDRESS_MAP_START( lucky8_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xb820, 0xb823) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* Input/Output Ports */
AM_RANGE(0xb830, 0xb830) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_data_w)
AM_RANGE(0xb840, 0xb840) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) /* no sound... only use both ports for DSWs */
- AM_RANGE(0xb850, 0xb850) AM_WRITE_LEGACY(lucky8_outport_w)
+ AM_RANGE(0xb850, 0xb850) AM_WRITE(lucky8_outport_w)
AM_RANGE(0xb870, 0xb870) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* sound */
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static WRITE8_HANDLER( magodds_outb850_w )
+WRITE8_MEMBER(goldstar_state::magodds_outb850_w)
{
// guess, could be wrong, this might just be lights
- goldstar_state *state = space->machine().driver_data<goldstar_state>();
if (data&0x20)
- state->m_tile_bank = 1;
+ m_tile_bank = 1;
else
- state->m_tile_bank = 0;
+ m_tile_bank = 0;
//popmessage("magodds_outb850_w %02x\n", data);
- state->m_fg_tilemap->mark_all_dirty();
+ m_fg_tilemap->mark_all_dirty();
}
-static WRITE8_HANDLER( magodds_outb860_w )
+WRITE8_MEMBER(goldstar_state::magodds_outb860_w)
{
// popmessage("magodds_outb860_w %02x\n", data);
}
@@ -423,8 +420,8 @@ static ADDRESS_MAP_START(magodds_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xb820, 0xb823) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* Input/Output Ports */
AM_RANGE(0xb830, 0xb830) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_data_w)
AM_RANGE(0xb840, 0xb840) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) /* no sound... only use both ports for DSWs */
- AM_RANGE(0xb850, 0xb850) AM_WRITE_LEGACY(magodds_outb850_w) //lamps
- AM_RANGE(0xb860, 0xb860) AM_WRITE_LEGACY(magodds_outb860_w) //watchdog
+ AM_RANGE(0xb850, 0xb850) AM_WRITE(magodds_outb850_w) //lamps
+ AM_RANGE(0xb860, 0xb860) AM_WRITE(magodds_outb860_w) //watchdog
AM_RANGE(0xb870, 0xb870) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* sound */
AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("maincpu",0xc000)
ADDRESS_MAP_END
@@ -446,13 +443,13 @@ static ADDRESS_MAP_START( kkotnoli_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xb820, 0xb823) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* Input Port */
AM_RANGE(0xb830, 0xb830) AM_WRITENOP /* no ay8910 */
AM_RANGE(0xb840, 0xb840) AM_WRITENOP /* no ay8910 */
- AM_RANGE(0xb850, 0xb850) AM_WRITE_LEGACY(lucky8_outport_w)
+ AM_RANGE(0xb850, 0xb850) AM_WRITE(lucky8_outport_w)
AM_RANGE(0xb870, 0xb870) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* sound */
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-//static WRITE8_HANDLER( ladylinr_outport_w )
+//WRITE8_MEMBER(goldstar_state::ladylinr_outport_w)
//{
/* LAMPS (b840)...
@@ -506,7 +503,7 @@ static ADDRESS_MAP_START( wcat3_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xb820, 0xb823) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* Input/Output Ports */
AM_RANGE(0xb830, 0xb830) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_data_w)
AM_RANGE(0xb840, 0xb840) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) /* no sound... only use both ports for DSWs */
- AM_RANGE(0xb850, 0xb850) AM_WRITE_LEGACY(lucky8_outport_w)
+ AM_RANGE(0xb850, 0xb850) AM_WRITE(lucky8_outport_w)
AM_RANGE(0xb870, 0xb870) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* sound */
// AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE_LEGACY("ppi8255_3", ppi8255_r, ppi8255_w) /* Other PPI initialized? */
AM_RANGE(0xd000, 0xefff) AM_ROM
@@ -515,7 +512,7 @@ ADDRESS_MAP_END
/*
-static READ8_HANDLER( unkch_unk_r )
+READ8_MEMBER(goldstar_state::unkch_unk_r)
{
return 0xff;
}
@@ -548,28 +545,27 @@ static ADDRESS_MAP_START( unkch_map, AS_PROGRAM, 8, goldstar_state )
AM_RANGE(0xfe00, 0xffff) AM_RAM
ADDRESS_MAP_END
-static WRITE8_HANDLER( unkcm_0x02_w )
+WRITE8_MEMBER(goldstar_state::unkcm_0x02_w)
{
//popmessage("unkcm_0x02_w %02x", data);
}
-static WRITE8_HANDLER( unkcm_0x03_w )
+WRITE8_MEMBER(goldstar_state::unkcm_0x03_w)
{
//popmessage("unkcm_0x03_w %02x", data);
- goldstar_state *state = space->machine().driver_data<goldstar_state>();
- state->m_unkch_vidreg = data;
+ m_unkch_vidreg = data;
// -x-- ---- seems to toggle when a 'normal' tilemap should be displayed instead of the reels?
}
-static WRITE8_HANDLER( unkcm_0x11_w )
+WRITE8_MEMBER(goldstar_state::unkcm_0x11_w)
{
//popmessage("unkcm_0x11_w %02x", data);
}
-static WRITE8_HANDLER( unkcm_0x12_w )
+WRITE8_MEMBER(goldstar_state::unkcm_0x12_w)
{
// popmessage("unkcm_0x12_w %02x", data);
}
@@ -578,10 +574,10 @@ static WRITE8_HANDLER( unkcm_0x12_w )
static ADDRESS_MAP_START( unkch_portmap, AS_IO, 8, goldstar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// AM_RANGE(0x01, 0x01) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(unkcm_0x02_w)
- AM_RANGE(0x03, 0x03) AM_WRITE_LEGACY(unkcm_0x03_w)
- AM_RANGE(0x11, 0x11) AM_WRITE_LEGACY(unkcm_0x11_w)
- AM_RANGE(0x12, 0x12) AM_WRITE_LEGACY(unkcm_0x12_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(unkcm_0x02_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(unkcm_0x03_w)
+ AM_RANGE(0x11, 0x11) AM_WRITE(unkcm_0x11_w)
+ AM_RANGE(0x12, 0x12) AM_WRITE(unkcm_0x12_w)
// AM_RANGE(0x04, 0x07) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
// AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
@@ -10269,11 +10265,11 @@ static DRIVER_INIT( nfb96sea )
}
-static READ8_HANDLER( fixedvalb4_r )
+READ8_MEMBER(goldstar_state::fixedvalb4_r)
{
return 0xb4;
}
-static READ8_HANDLER( fixedvala8_r )
+READ8_MEMBER(goldstar_state::fixedvala8_r)
{
return 0xa8;
}
@@ -10294,13 +10290,13 @@ static DRIVER_INIT( schery97 )
ROM[i] = x;
}
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x1d, 0x1d, FUNC(fixedvala8_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x2a, 0x2a, FUNC(fixedvalb4_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x1d, 0x1d, read8_delegate(FUNC(goldstar_state::fixedvala8_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x2a, 0x2a, read8_delegate(FUNC(goldstar_state::fixedvalb4_r),state));
/* Oki 6295 at 0x20 */
}
-static READ8_HANDLER( fixedval38_r )
+READ8_MEMBER(goldstar_state::fixedval38_r)
{
return 0x38;
}
@@ -10324,12 +10320,12 @@ static DRIVER_INIT( schery97a )
}
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x16, 0x16, FUNC(fixedval38_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x16, 0x16, read8_delegate(FUNC(goldstar_state::fixedval38_r),state));
/* Oki 6295 at 0x20 */
}
-static READ8_HANDLER( fixedvalea_r )
+READ8_MEMBER(goldstar_state::fixedvalea_r)
{
return 0xea;
}
@@ -10351,12 +10347,12 @@ static DRIVER_INIT( skill98 )
ROM[i] = x;
}
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x1e, 0x1e, FUNC(fixedvalea_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x1e, 0x1e, read8_delegate(FUNC(goldstar_state::fixedvalea_r),state));
/* Oki 6295 at 0x20 */
}
-static READ8_HANDLER( fixedval68_r )
+READ8_MEMBER(goldstar_state::fixedval68_r)
{
return 0x68;
}
@@ -10378,12 +10374,12 @@ static DRIVER_INIT( nfb96_c1 )
}
ROM[i] = x;
}
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x31, 0x31, FUNC(fixedval68_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x31, 0x31, read8_delegate(FUNC(goldstar_state::fixedval68_r),state));
}
-static READ8_HANDLER( fixedval58_r )
+READ8_MEMBER(goldstar_state::fixedval58_r)
{
return 0x58;
}
@@ -10406,21 +10402,21 @@ static DRIVER_INIT( nfb96_c2 )
ROM[i] = x;
}
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x21, 0x21, FUNC(fixedval58_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x21, 0x21, read8_delegate(FUNC(goldstar_state::fixedval58_r),state));
}
-static READ8_HANDLER( fixedval80_r )
+READ8_MEMBER(goldstar_state::fixedval80_r)
{
return 0x80;
}
-static READ8_HANDLER( fixedval96_r )
+READ8_MEMBER(goldstar_state::fixedval96_r)
{
return 0x96;
}
-static READ8_HANDLER( fixedvalaa_r )
+READ8_MEMBER(goldstar_state::fixedvalaa_r)
{
return 0xaa;
}
@@ -10442,16 +10438,17 @@ static DRIVER_INIT( nfb96_d )
}
ROM[i] = x;
}
+ goldstar_state *state = machine.driver_data<goldstar_state>();
// nfb96b needs both of these
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x23, 0x23, FUNC(fixedval80_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x5a, 0x5a, FUNC(fixedvalaa_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x23, 0x23, read8_delegate(FUNC(goldstar_state::fixedval80_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x5a, 0x5a, read8_delegate(FUNC(goldstar_state::fixedvalaa_r),state));
// csel96b
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x6e, 0x6e, FUNC(fixedval96_r));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x6e, 0x6e, read8_delegate(FUNC(goldstar_state::fixedval96_r),state));
}
-static READ8_HANDLER( fixedvalbe_r )
+READ8_MEMBER(goldstar_state::fixedvalbe_r)
{
return 0xbe;
}
@@ -10474,17 +10471,17 @@ static DRIVER_INIT( nfb96_dk )
}
ROM[i] = x;
}
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x2e, 0x2e, FUNC(fixedvalbe_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x2e, 0x2e, read8_delegate(FUNC(goldstar_state::fixedvalbe_r),state));
}
-static READ8_HANDLER( fixedval90_r )
+READ8_MEMBER(goldstar_state::fixedval90_r)
{
return 0x90;
}
-static READ8_HANDLER( fixedval84_r )
+READ8_MEMBER(goldstar_state::fixedval84_r)
{
return 0x84;
}
@@ -10507,11 +10504,12 @@ static DRIVER_INIT( rp35 )
ROM[i] = x;
}
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x5e, 0x5e, FUNC(fixedval84_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x36, 0x36, FUNC(fixedval90_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x5e, 0x5e, read8_delegate(FUNC(goldstar_state::fixedval84_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x36, 0x36, read8_delegate(FUNC(goldstar_state::fixedval90_r),state));
}
-static READ8_HANDLER( fixedvalb2_r )
+READ8_MEMBER(goldstar_state::fixedvalb2_r)
{
return 0xb2;
}
@@ -10535,10 +10533,11 @@ static DRIVER_INIT( rp36 )
ROM[i] = x;
}
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x34, 0x34, FUNC(fixedvalb2_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x34, 0x34, read8_delegate(FUNC(goldstar_state::fixedvalb2_r),state));
}
-static READ8_HANDLER( fixedval48_r )
+READ8_MEMBER(goldstar_state::fixedval48_r)
{
return 0x48;
}
@@ -10562,15 +10561,16 @@ static DRIVER_INIT( rp36c3 )
ROM[i] = x;
}
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x17, 0x17, FUNC(fixedval48_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x17, 0x17, read8_delegate(FUNC(goldstar_state::fixedval48_r),state));
}
-static READ8_HANDLER( fixedval09_r )
+READ8_MEMBER(goldstar_state::fixedval09_r)
{
return 0x09;
}
-static READ8_HANDLER( fixedval74_r )
+READ8_MEMBER(goldstar_state::fixedval74_r)
{
return 0x74;
}
@@ -10594,17 +10594,18 @@ static DRIVER_INIT( po33 )
ROM[i] = x;
}
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x32, 0x32, FUNC(fixedval74_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x12, 0x12, FUNC(fixedval09_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x32, 0x32, read8_delegate(FUNC(goldstar_state::fixedval74_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x12, 0x12, read8_delegate(FUNC(goldstar_state::fixedval09_r),state));
/* oki6295 at 0x20 */
}
-static READ8_HANDLER( fixedvale4_r )
+READ8_MEMBER(goldstar_state::fixedvale4_r)
{
return 0xe4;
}
-static READ8_HANDLER( fixedvalc7_r )
+READ8_MEMBER(goldstar_state::fixedvalc7_r)
{
return 0xc7;
}
@@ -10628,8 +10629,9 @@ static DRIVER_INIT( match133 )
ROM[i] = x;
}
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x16, 0x16, FUNC(fixedvalc7_r));
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x1a, 0x1a, FUNC(fixedvale4_r));
+ goldstar_state *state = machine.driver_data<goldstar_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x16, 0x16, read8_delegate(FUNC(goldstar_state::fixedvalc7_r),state));
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x1a, 0x1a, read8_delegate(FUNC(goldstar_state::fixedvale4_r),state));
}
static DRIVER_INIT(cherrys)
diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c
index 6544404c560..2ae9f6c94e6 100644
--- a/src/mame/drivers/gomoku.c
+++ b/src/mame/drivers/gomoku.c
@@ -25,14 +25,14 @@ todo:
/* input ports are rotated 90 degrees */
-static READ8_HANDLER( input_port_r )
+READ8_MEMBER(gomoku_state::input_port_r)
{
int i, res;
static const char *const portnames[] = { "IN0", "IN1", "DSW", "UNUSED0", "UNUSED1", "UNUSED2", "UNUSED3", "UNUSED4" };
res = 0;
for (i = 0; i < 8; i++)
- res |= ((input_port_read_safe(space->machine(), portnames[i], 0xff) >> offset) & 1) << i;
+ res |= ((input_port_read_safe(machine(), portnames[i], 0xff) >> offset) & 1) << i;
return res;
}
@@ -50,7 +50,7 @@ static ADDRESS_MAP_START( gomoku_map, AS_PROGRAM, 8, gomoku_state )
AM_RANGE(0x7001, 0x7001) AM_WRITE_LEGACY(gomoku_flipscreen_w)
AM_RANGE(0x7002, 0x7002) AM_WRITE_LEGACY(gomoku_bg_dispsw_w)
AM_RANGE(0x7003, 0x7007) AM_WRITENOP
- AM_RANGE(0x7800, 0x7807) AM_READ_LEGACY(input_port_r)
+ AM_RANGE(0x7800, 0x7807) AM_READ(input_port_r)
AM_RANGE(0x7800, 0x7800) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index 5b443c5f07c..1345c9012c6 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -65,7 +65,7 @@ Notes:
#include "includes/gotcha.h"
-static WRITE16_HANDLER( gotcha_lamps_w )
+WRITE16_MEMBER(gotcha_state::gotcha_lamps_w)
{
#if 0
popmessage("%c%c%c%c %c%c%c%c %c%c%c%c",
@@ -98,7 +98,7 @@ static WRITE16_DEVICE_HANDLER( gotcha_oki_bank_w )
static ADDRESS_MAP_START( gotcha_map, AS_PROGRAM, 16, gotcha_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(soundlatch_word_w)
- AM_RANGE(0x100002, 0x100003) AM_WRITE_LEGACY(gotcha_lamps_w)
+ AM_RANGE(0x100002, 0x100003) AM_WRITE(gotcha_lamps_w)
AM_RANGE(0x100004, 0x100005) AM_DEVWRITE_LEGACY("oki", gotcha_oki_bank_w)
AM_RANGE(0x120000, 0x12ffff) AM_RAM
AM_RANGE(0x140000, 0x1405ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index ae100f72e41..76fd535f0d2 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -222,9 +222,9 @@ VBlank duration: 1/VSYNC * (16/256) = 1017.6 us
static TIMER_CALLBACK( laserdisc_bit_callback );
static TIMER_CALLBACK( laserdisc_philips_callback );
-static READ8_HANDLER( laserdisc_status_r );
-static WRITE8_HANDLER( laserdisc_select_w );
-static WRITE8_HANDLER( laserdisc_command_w );
+
+
+
@@ -245,9 +245,9 @@ static MACHINE_START( gottlieb )
if (state->m_laserdisc != NULL)
{
/* attach to the I/O ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x05805, 0x05807, 0, 0x07f8, FUNC(laserdisc_status_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x05805, 0x05805, 0, 0x07f8, FUNC(laserdisc_command_w)); /* command for the player */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x05806, 0x05806, 0, 0x07f8, FUNC(laserdisc_select_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x05805, 0x05807, 0, 0x07f8, read8_delegate(FUNC(gottlieb_state::laserdisc_status_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05805, 0x05805, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::laserdisc_command_w),state)); /* command for the player */
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05806, 0x05806, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::laserdisc_select_w),state));
/* allocate a timer for serial transmission, and one for philips code processing */
state->m_laserdisc_bit_timer = machine.scheduler().timer_alloc(FUNC(laserdisc_bit_callback));
@@ -300,12 +300,11 @@ static CUSTOM_INPUT( analog_delta_r )
}
-static WRITE8_HANDLER( gottlieb_analog_reset_w )
+WRITE8_MEMBER(gottlieb_state::gottlieb_analog_reset_w)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
/* reset the trackball counters */
- state->m_track[0] = input_port_read_safe(space->machine(), "TRACKX", 0);
- state->m_track[1] = input_port_read_safe(space->machine(), "TRACKY", 0);
+ m_track[0] = input_port_read_safe(machine(), "TRACKX", 0);
+ m_track[1] = input_port_read_safe(machine(), "TRACKY", 0);
}
@@ -324,17 +323,16 @@ static CUSTOM_INPUT( stooges_joystick_r )
*
*************************************/
-static WRITE8_HANDLER( general_output_w )
+WRITE8_MEMBER(gottlieb_state::general_output_w)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
/* bits 0-3 control video features, and are different for laserdisc games */
- if (state->m_laserdisc == NULL)
- gottlieb_video_control_w(space, offset, data);
+ if (m_laserdisc == NULL)
+ gottlieb_video_control_w(&space, offset, data);
else
- gottlieb_laserdisc_video_control_w(space, offset, data);
+ gottlieb_laserdisc_video_control_w(&space, offset, data);
/* bit 4 controls the coin meter */
- coin_counter_w(space->machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 0, data & 0x10);
/* bit 5 controls the knocker */
output_set_value("knocker0", (data >> 5) & 1);
@@ -345,20 +343,19 @@ static WRITE8_HANDLER( general_output_w )
}
-static WRITE8_HANDLER( reactor_output_w )
+WRITE8_MEMBER(gottlieb_state::reactor_output_w)
{
general_output_w(space, offset, data & ~0xe0);
- set_led_status(space->machine(), 0, data & 0x20);
- set_led_status(space->machine(), 1, data & 0x40);
- set_led_status(space->machine(), 2, data & 0x80);
+ set_led_status(machine(), 0, data & 0x20);
+ set_led_status(machine(), 1, data & 0x40);
+ set_led_status(machine(), 2, data & 0x80);
}
-static WRITE8_HANDLER( stooges_output_w )
+WRITE8_MEMBER(gottlieb_state::stooges_output_w)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
general_output_w(space, offset, data & ~0x60);
- state->m_joystick_select = (data >> 5) & 0x03;
+ m_joystick_select = (data >> 5) & 0x03;
}
@@ -369,19 +366,18 @@ static WRITE8_HANDLER( stooges_output_w )
*
*************************************/
-static READ8_HANDLER( laserdisc_status_r )
+READ8_MEMBER(gottlieb_state::laserdisc_status_r)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
/* IP5 reads low 8 bits of philips code */
if (offset == 0)
- return state->m_laserdisc_philips_code;
+ return m_laserdisc_philips_code;
/* IP6 reads middle 8 bits of philips code */
if (offset == 1)
- return state->m_laserdisc_philips_code >> 8;
+ return m_laserdisc_philips_code >> 8;
/* IP7 reads either status or audio detect, depending on the select */
- if (state->m_laserdisc_select)
+ if (m_laserdisc_select)
{
/* bits 0-2 frame number MSN */
/* bit 3 audio buffer ready */
@@ -389,37 +385,35 @@ static READ8_HANDLER( laserdisc_status_r )
/* bit 5 disc ready */
/* bit 6 break in audio trasmission */
/* bit 7 missing audio clock */
- return state->m_laserdisc_status;
+ return m_laserdisc_status;
}
else
{
- UINT8 result = state->m_laserdisc_audio_buffer[state->m_laserdisc_audio_address++];
- state->m_laserdisc_audio_address %= AUDIORAM_SIZE;
+ UINT8 result = m_laserdisc_audio_buffer[m_laserdisc_audio_address++];
+ m_laserdisc_audio_address %= AUDIORAM_SIZE;
return result;
}
return 0;
}
-static WRITE8_HANDLER( laserdisc_select_w )
+WRITE8_MEMBER(gottlieb_state::laserdisc_select_w)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
/* selects between reading audio data and reading status */
- state->m_laserdisc_select = data & 1;
+ m_laserdisc_select = data & 1;
}
-static WRITE8_HANDLER( laserdisc_command_w )
+WRITE8_MEMBER(gottlieb_state::laserdisc_command_w)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
/* a write here latches data into a 8-bit register and starts
a sequence of events that sends serial data to the player */
/* set a timer to clock the bits through; a total of 12 bits are clocked */
- state->m_laserdisc_bit_timer->adjust(LASERDISC_CLOCK * 10, (12 << 16) | data);
+ m_laserdisc_bit_timer->adjust(LASERDISC_CLOCK * 10, (12 << 16) | data);
/* it also clears bit 4 of the status (will be set when transmission is complete) */
- state->m_laserdisc_status &= ~0x10;
+ m_laserdisc_status &= ~0x10;
}
@@ -693,13 +687,12 @@ static INTERRUPT_GEN( gottlieb_interrupt )
*
*************************************/
-static WRITE8_HANDLER( gottlieb_sh_w )
+WRITE8_MEMBER(gottlieb_state::gottlieb_sh_w)
{
- gottlieb_state *state = space->machine().driver_data<gottlieb_state>();
- if (state->m_r1_sound != NULL)
- state->m_r1_sound->write(*space, offset, data);
- if (state->m_r2_sound != NULL)
- state->m_r2_sound->write(*space, offset, data);
+ if (m_r1_sound != NULL)
+ m_r1_sound->write(*&space, offset, data);
+ if (m_r2_sound != NULL)
+ m_r2_sound->write(*&space, offset, data);
}
static ADDRESS_MAP_START( reactor_map, AS_PROGRAM, 8, gottlieb_state )
@@ -711,9 +704,9 @@ static ADDRESS_MAP_START( reactor_map, AS_PROGRAM, 8, gottlieb_state )
/* AM_RANGE(0x5000, 0x5fff) AM_WRITE_LEGACY() */ /* BOJRSEL2 */
AM_RANGE(0x6000, 0x601f) AM_MIRROR(0x0fe0) AM_WRITE_LEGACY(gottlieb_paletteram_w) AM_BASE_GENERIC(paletteram) /* COLSEL */
AM_RANGE(0x7000, 0x7000) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x7001, 0x7001) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(gottlieb_analog_reset_w) /* A1J2 interface */
- AM_RANGE(0x7002, 0x7002) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(gottlieb_sh_w) /* trackball H */
- AM_RANGE(0x7003, 0x7003) AM_MIRROR(0x0ff8) AM_WRITE_LEGACY(reactor_output_w) /* trackball V */
+ AM_RANGE(0x7001, 0x7001) AM_MIRROR(0x0ff8) AM_WRITE(gottlieb_analog_reset_w) /* A1J2 interface */
+ AM_RANGE(0x7002, 0x7002) AM_MIRROR(0x0ff8) AM_WRITE(gottlieb_sh_w) /* trackball H */
+ AM_RANGE(0x7003, 0x7003) AM_MIRROR(0x0ff8) AM_WRITE(reactor_output_w) /* trackball V */
AM_RANGE(0x7000, 0x7000) AM_MIRROR(0x0ff8) AM_READ_PORT("DSW")
AM_RANGE(0x7001, 0x7001) AM_MIRROR(0x0ff8) AM_READ_PORT("IN1") /* buttons */
AM_RANGE(0x7002, 0x7002) AM_MIRROR(0x0ff8) AM_READ_PORT("IN2") /* trackball H */
@@ -733,9 +726,9 @@ static ADDRESS_MAP_START( gottlieb_map, AS_PROGRAM, 8, gottlieb_state )
AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE_LEGACY(gottlieb_charram_w) AM_BASE(m_charram) /* BOJRSEL1 */
AM_RANGE(0x5000, 0x501f) AM_MIRROR(0x07e0) AM_WRITE_LEGACY(gottlieb_paletteram_w) AM_BASE_GENERIC(paletteram) /* COLSEL */
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x07f8) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x5801, 0x5801) AM_MIRROR(0x07f8) AM_WRITE_LEGACY(gottlieb_analog_reset_w) /* A1J2 interface */
- AM_RANGE(0x5802, 0x5802) AM_MIRROR(0x07f8) AM_WRITE_LEGACY(gottlieb_sh_w) /* OP20-27 */
- AM_RANGE(0x5803, 0x5803) AM_MIRROR(0x07f8) AM_WRITE_LEGACY(general_output_w) /* OP30-37 */
+ AM_RANGE(0x5801, 0x5801) AM_MIRROR(0x07f8) AM_WRITE(gottlieb_analog_reset_w) /* A1J2 interface */
+ AM_RANGE(0x5802, 0x5802) AM_MIRROR(0x07f8) AM_WRITE(gottlieb_sh_w) /* OP20-27 */
+ AM_RANGE(0x5803, 0x5803) AM_MIRROR(0x07f8) AM_WRITE(general_output_w) /* OP30-37 */
/* AM_RANGE(0x5804, 0x5804) AM_MIRROR(0x07f8) AM_WRITE_LEGACY()*/ /* OP40-47 */
AM_RANGE(0x5800, 0x5800) AM_MIRROR(0x07f8) AM_READ_PORT("DSW")
AM_RANGE(0x5801, 0x5801) AM_MIRROR(0x07f8) AM_READ_PORT("IN1") /* IP10-17 */
@@ -2468,7 +2461,8 @@ static DRIVER_INIT( romtiles )
static DRIVER_INIT( stooges )
{
DRIVER_INIT_CALL(ramtiles);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x05803, 0x05803, 0, 0x07f8, FUNC(stooges_output_w));
+ gottlieb_state *state = machine.driver_data<gottlieb_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x05803, 0x05803, 0, 0x07f8, write8_delegate(FUNC(gottlieb_state::stooges_output_w),state));
}
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index 1f76925714e..44aed71f1aa 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -27,84 +27,76 @@
#include "includes/konamipt.h"
#include "includes/gradius3.h"
-static READ16_HANDLER( k052109_halfword_r )
+READ16_MEMBER(gradius3_state::k052109_halfword_r)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE16_HANDLER( k052109_halfword_w )
+WRITE16_MEMBER(gradius3_state::k052109_halfword_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
if (ACCESSING_BITS_0_7)
- k052109_w(state->m_k052109, offset, data & 0xff);
+ k052109_w(m_k052109, offset, data & 0xff);
/* is this a bug in the game or something else? */
if (!ACCESSING_BITS_0_7)
- k052109_w(state->m_k052109, offset, (data >> 8) & 0xff);
-// logerror("%06x half %04x = %04x\n",cpu_get_pc(&space->device()),offset,data);
+ k052109_w(m_k052109, offset, (data >> 8) & 0xff);
+// logerror("%06x half %04x = %04x\n",cpu_get_pc(&space.device()),offset,data);
}
-static READ16_HANDLER( k051937_halfword_r )
+READ16_MEMBER(gradius3_state::k051937_halfword_r)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
- return k051937_r(state->m_k051960, offset);
+ return k051937_r(m_k051960, offset);
}
-static WRITE16_HANDLER( k051937_halfword_w )
+WRITE16_MEMBER(gradius3_state::k051937_halfword_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
if (ACCESSING_BITS_0_7)
- k051937_w(state->m_k051960, offset, data & 0xff);
+ k051937_w(m_k051960, offset, data & 0xff);
}
-static READ16_HANDLER( k051960_halfword_r )
+READ16_MEMBER(gradius3_state::k051960_halfword_r)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
- return k051960_r(state->m_k051960, offset);
+ return k051960_r(m_k051960, offset);
}
-static WRITE16_HANDLER( k051960_halfword_w )
+WRITE16_MEMBER(gradius3_state::k051960_halfword_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
if (ACCESSING_BITS_0_7)
- k051960_w(state->m_k051960, offset, data & 0xff);
+ k051960_w(m_k051960, offset, data & 0xff);
}
-static WRITE16_HANDLER( cpuA_ctrl_w )
+WRITE16_MEMBER(gradius3_state::cpuA_ctrl_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
if (ACCESSING_BITS_8_15)
{
data >>= 8;
/* bits 0-1 are coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 2 selects layer priority */
- state->m_priority = data & 0x04;
+ m_priority = data & 0x04;
/* bit 3 enables cpu B */
- device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
/* bit 5 enables irq */
- state->m_irqAen = data & 0x20;
+ m_irqAen = data & 0x20;
/* other bits unknown */
- //logerror("%06x: write %04x to c0000\n",cpu_get_pc(&space->device()),data);
+ //logerror("%06x: write %04x to c0000\n",cpu_get_pc(&space.device()),data);
}
}
-static WRITE16_HANDLER( cpuB_irqenable_w )
+WRITE16_MEMBER(gradius3_state::cpuB_irqenable_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
if (ACCESSING_BITS_8_15)
- state->m_irqBmask = (data >> 8) & 0x07;
+ m_irqBmask = (data >> 8) & 0x07;
}
static INTERRUPT_GEN( cpuA_interrupt )
@@ -127,29 +119,27 @@ static TIMER_DEVICE_CALLBACK( gradius3_sub_scanline )
cputag_set_input_line(timer.machine(), "sub", 2, HOLD_LINE);
}
-static WRITE16_HANDLER( cpuB_irqtrigger_w )
+WRITE16_MEMBER(gradius3_state::cpuB_irqtrigger_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
- if (state->m_irqBmask & 4)
+ if (m_irqBmask & 4)
{
- logerror("%04x trigger cpu B irq 4 %02x\n",cpu_get_pc(&space->device()),data);
- device_set_input_line(state->m_subcpu, 4, HOLD_LINE);
+ logerror("%04x trigger cpu B irq 4 %02x\n",cpu_get_pc(&space.device()),data);
+ device_set_input_line(m_subcpu, 4, HOLD_LINE);
}
else
- logerror("%04x MISSED cpu B irq 4 %02x\n",cpu_get_pc(&space->device()),data);
+ logerror("%04x MISSED cpu B irq 4 %02x\n",cpu_get_pc(&space.device()),data);
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(gradius3_state::sound_command_w)
{
if (ACCESSING_BITS_8_15)
soundlatch_w(space, 0, (data >> 8) & 0xff);
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(gradius3_state::sound_irq_w)
{
- gradius3_state *state = space->machine().driver_data<gradius3_state>();
- 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);
}
static WRITE8_DEVICE_HANDLER( sound_bank_w )
@@ -168,19 +158,19 @@ static ADDRESS_MAP_START( gradius3_map, AS_PROGRAM, 16, gradius3_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(cpuA_ctrl_w) /* halt cpu B, irq enable, priority, coin counters, other? */
+ AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, irq enable, priority, coin counters, other? */
AM_RANGE(0x0c8000, 0x0c8001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0c8002, 0x0c8003) AM_READ_PORT("P1")
AM_RANGE(0x0c8004, 0x0c8005) AM_READ_PORT("P2")
AM_RANGE(0x0c8006, 0x0c8007) AM_READ_PORT("DSW3")
AM_RANGE(0x0d0000, 0x0d0001) AM_READ_PORT("DSW1")
AM_RANGE(0x0d0002, 0x0d0003) AM_READ_PORT("DSW2")
- AM_RANGE(0x0d8000, 0x0d8001) AM_WRITE_LEGACY(cpuB_irqtrigger_w)
+ AM_RANGE(0x0d8000, 0x0d8001) AM_WRITE(cpuB_irqtrigger_w)
AM_RANGE(0x0e0000, 0x0e0001) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x0e8000, 0x0e8001) AM_WRITE_LEGACY(sound_command_w)
- AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x0e8000, 0x0e8001) AM_WRITE(sound_command_w)
+ AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE(sound_irq_w)
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x14c000, 0x153fff) AM_READWRITE_LEGACY(k052109_halfword_r, k052109_halfword_w)
+ AM_RANGE(0x14c000, 0x153fff) AM_READWRITE(k052109_halfword_r, k052109_halfword_w)
AM_RANGE(0x180000, 0x19ffff) AM_RAM_WRITE_LEGACY(gradius3_gfxram_w) AM_BASE(m_gfxram) AM_SHARE("share2")
ADDRESS_MAP_END
@@ -188,12 +178,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gradius3_map2, AS_PROGRAM, 16, gradius3_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
- AM_RANGE(0x140000, 0x140001) AM_WRITE_LEGACY(cpuB_irqenable_w)
+ AM_RANGE(0x140000, 0x140001) AM_WRITE(cpuB_irqenable_w)
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x24c000, 0x253fff) AM_READWRITE_LEGACY(k052109_halfword_r, k052109_halfword_w)
+ AM_RANGE(0x24c000, 0x253fff) AM_READWRITE(k052109_halfword_r, k052109_halfword_w)
AM_RANGE(0x280000, 0x29ffff) AM_RAM_WRITE_LEGACY(gradius3_gfxram_w) AM_SHARE("share2")
- AM_RANGE(0x2c0000, 0x2c000f) AM_READWRITE_LEGACY(k051937_halfword_r, k051937_halfword_w)
- AM_RANGE(0x2c0800, 0x2c0fff) AM_READWRITE_LEGACY(k051960_halfword_r, k051960_halfword_w)
+ AM_RANGE(0x2c0000, 0x2c000f) AM_READWRITE(k051937_halfword_r, k051937_halfword_w)
+ AM_RANGE(0x2c0800, 0x2c0fff) AM_READWRITE(k051960_halfword_r, k051960_halfword_w)
AM_RANGE(0x400000, 0x5fffff) AM_READ_LEGACY(gradius3_gfxrom_r) /* gfx ROMs are mapped here, and copied to RAM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 924c82a1414..b1f5aaee7c2 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -115,11 +115,10 @@ static INTERRUPT_GEN( grchamp_cpu1_interrupt )
*
*************************************/
-static WRITE8_HANDLER( cpu0_outputs_w )
+WRITE8_MEMBER(grchamp_state::cpu0_outputs_w)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- UINT8 diff = data ^ state->m_cpu0_out[offset];
- state->m_cpu0_out[offset] = data;
+ UINT8 diff = data ^ m_cpu0_out[offset];
+ m_cpu0_out[offset] = data;
switch (offset)
{
@@ -132,14 +131,14 @@ static WRITE8_HANDLER( cpu0_outputs_w )
/* bit 6: FOG OUT */
/* bit 7: RADARON */
if ((diff & 0x01) && !(data & 0x01))
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
if ((diff & 0x02) && !(data & 0x02))
- state->m_collide = state->m_collmode = 0;
+ m_collide = m_collmode = 0;
break;
case 0x01: /* OUT1 */
/* connects to pc3259, pin 23 (read collision data?) */
- state->m_collmode++;
+ m_collmode++;
break;
case 0x02: /* OUT2 */
@@ -168,7 +167,7 @@ static WRITE8_HANDLER( cpu0_outputs_w )
/* bit 4: coin lockout */
/* bit 5: Game Over lamp */
/* bit 6-7: n/c */
- coin_lockout_global_w(space->machine(), (data >> 4) & 1);
+ coin_lockout_global_w(machine(), (data >> 4) & 1);
output_set_value("led0", (~data >> 5) & 1);
break;
@@ -185,41 +184,40 @@ static WRITE8_HANDLER( cpu0_outputs_w )
break;
case 0x0d: /* OUT13 */
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
break;
case 0x0e: /* OUT14 */
/* O-21 connector */
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
break;
}
}
-static WRITE8_HANDLER( led_board_w )
+WRITE8_MEMBER(grchamp_state::led_board_w)
{
static const UINT8 ls247_map[16] =
{ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58,0x4c,0x62,0x69,0x78,0x00 };
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
switch (offset)
{
case 0x00:
- state->m_ledlatch = (state->m_ledlatch & 0xff00) | (data << 0);
+ m_ledlatch = (m_ledlatch & 0xff00) | (data << 0);
break;
case 0x04:
- state->m_ledlatch = (state->m_ledlatch & 0x00ff) | (data << 8);
+ m_ledlatch = (m_ledlatch & 0x00ff) | (data << 8);
break;
case 0x08:
- state->m_ledaddr = data & 0x0f;
+ m_ledaddr = data & 0x0f;
break;
case 0x0c:
- state->m_ledram[state->m_ledaddr & 0x07] = state->m_ledlatch;
- output_set_digit_value(state->m_ledaddr & 0x07, ls247_map[state->m_ledram[state->m_ledaddr & 0x07] & 0x0f]);
+ m_ledram[m_ledaddr & 0x07] = m_ledlatch;
+ output_set_digit_value(m_ledaddr & 0x07, ls247_map[m_ledram[m_ledaddr & 0x07] & 0x0f]);
/*
ledram[0] & 0x0f = score LSD
ledram[1] & 0x0f = score
@@ -242,12 +240,11 @@ static WRITE8_HANDLER( led_board_w )
*
*************************************/
-static WRITE8_HANDLER( cpu1_outputs_w )
+WRITE8_MEMBER(grchamp_state::cpu1_outputs_w)
{
- device_t *discrete = space->machine().device("discrete");
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- UINT8 diff = data ^ state->m_cpu1_out[offset];
- state->m_cpu1_out[offset] = data;
+ device_t *discrete = machine().device("discrete");
+ UINT8 diff = data ^ m_cpu1_out[offset];
+ m_cpu1_out[offset] = data;
switch (offset)
{
@@ -272,7 +269,7 @@ static WRITE8_HANDLER( cpu1_outputs_w )
case 0x04: /* OUT4 */
/* bit 0: interrupt enable for CPU 1 */
if ((diff & 0x01) && !(data & 0x01))
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
break;
case 0x05: /* OUT5 - unused */
@@ -287,7 +284,7 @@ static WRITE8_HANDLER( cpu1_outputs_w )
case 0x08: /* OUT8 */
/* bit 0-7: latches data to main CPU input port 2 */
- state->m_comm_latch = data;
+ m_comm_latch = data;
break;
case 0x09: /* OUT9 */
@@ -337,46 +334,42 @@ static WRITE8_HANDLER( cpu1_outputs_w )
*
*************************************/
-INLINE UINT8 get_pc3259_bits(running_machine &machine, grchamp_state *state, int offs)
+UINT8 grchamp_state::get_pc3259_bits(int offs)
{
int bits;
/* force a partial update to the current position */
- machine.primary_screen->update_partial(machine.primary_screen->vpos());
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
/* get the relevant 4 bits */
- bits = (state->m_collide >> (offs*4)) & 0x0f;
+ bits = (m_collide >> (offs*4)) & 0x0f;
/* replicate to both nibbles */
return bits | (bits << 4);
}
-static READ8_HANDLER( pc3259_0_r )
+READ8_MEMBER(grchamp_state::pc3259_0_r)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- return get_pc3259_bits(space->machine(), state, 0);
+ return get_pc3259_bits(0);
}
-static READ8_HANDLER( pc3259_1_r )
+READ8_MEMBER(grchamp_state::pc3259_1_r)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- return get_pc3259_bits(space->machine(), state, 1);
+ return get_pc3259_bits(1);
}
-static READ8_HANDLER( pc3259_2_r )
+READ8_MEMBER(grchamp_state::pc3259_2_r)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- return get_pc3259_bits(space->machine(), state, 2);
+ return get_pc3259_bits(2);
}
-static READ8_HANDLER( pc3259_3_r )
+READ8_MEMBER(grchamp_state::pc3259_3_r)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- return get_pc3259_bits(space->machine(), state, 3);
+ return get_pc3259_bits(3);
}
@@ -387,10 +380,9 @@ static READ8_HANDLER( pc3259_3_r )
*
*************************************/
-static READ8_HANDLER( sub_to_main_comm_r )
+READ8_MEMBER(grchamp_state::sub_to_main_comm_r)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- return state->m_comm_latch;
+ return m_comm_latch;
}
@@ -402,16 +394,15 @@ static TIMER_CALLBACK( main_to_sub_comm_sync_w )
}
-static WRITE8_HANDLER( main_to_sub_comm_w )
+WRITE8_MEMBER(grchamp_state::main_to_sub_comm_w)
{
- space->machine().scheduler().synchronize(FUNC(main_to_sub_comm_sync_w), data | (offset << 8));
+ machine().scheduler().synchronize(FUNC(main_to_sub_comm_sync_w), data | (offset << 8));
}
-static READ8_HANDLER( main_to_sub_comm_r )
+READ8_MEMBER(grchamp_state::main_to_sub_comm_r)
{
- grchamp_state *state = space->machine().driver_data<grchamp_state>();
- return state->m_comm_latch2[offset];
+ return m_comm_latch2[offset];
}
@@ -529,18 +520,18 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, grchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_MIRROR(0x78) AM_READ_PORT("ACCEL")
- AM_RANGE(0x02, 0x02) AM_MIRROR(0x78) AM_READ_LEGACY(sub_to_main_comm_r)
+ AM_RANGE(0x02, 0x02) AM_MIRROR(0x78) AM_READ(sub_to_main_comm_r)
AM_RANGE(0x03, 0x03) AM_MIRROR(0x78) AM_READ_PORT("WHEEL")
AM_RANGE(0x04, 0x04) AM_MIRROR(0x78) AM_READ_PORT("DSWA")
AM_RANGE(0x05, 0x05) AM_MIRROR(0x78) AM_READ_PORT("DSWB")
AM_RANGE(0x06, 0x06) AM_MIRROR(0x78) AM_READ_PORT("TILT")
- AM_RANGE(0x01, 0x01) AM_MIRROR(0x60) AM_READ_LEGACY(pc3259_0_r)
- AM_RANGE(0x09, 0x09) AM_MIRROR(0x60) AM_READ_LEGACY(pc3259_1_r)
- AM_RANGE(0x11, 0x11) AM_MIRROR(0x60) AM_READ_LEGACY(pc3259_2_r)
- AM_RANGE(0x19, 0x19) AM_MIRROR(0x60) AM_READ_LEGACY(pc3259_3_r)
- AM_RANGE(0x00, 0x0f) AM_MIRROR(0x40) AM_WRITE_LEGACY(cpu0_outputs_w)
- AM_RANGE(0x10, 0x13) AM_MIRROR(0x40) AM_WRITE_LEGACY(main_to_sub_comm_w)
- AM_RANGE(0x20, 0x2f) AM_MIRROR(0x53) AM_WRITE_LEGACY(led_board_w)
+ AM_RANGE(0x01, 0x01) AM_MIRROR(0x60) AM_READ(pc3259_0_r)
+ AM_RANGE(0x09, 0x09) AM_MIRROR(0x60) AM_READ(pc3259_1_r)
+ AM_RANGE(0x11, 0x11) AM_MIRROR(0x60) AM_READ(pc3259_2_r)
+ AM_RANGE(0x19, 0x19) AM_MIRROR(0x60) AM_READ(pc3259_3_r)
+ AM_RANGE(0x00, 0x0f) AM_MIRROR(0x40) AM_WRITE(cpu0_outputs_w)
+ AM_RANGE(0x10, 0x13) AM_MIRROR(0x40) AM_WRITE(main_to_sub_comm_w)
+ AM_RANGE(0x20, 0x2f) AM_MIRROR(0x53) AM_WRITE(led_board_w)
ADDRESS_MAP_END
@@ -557,8 +548,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_portmap, AS_IO, 8, grchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_READ_LEGACY(main_to_sub_comm_r)
- AM_RANGE(0x00, 0x0f) AM_MIRROR(0x70) AM_WRITE_LEGACY(cpu1_outputs_w)
+ AM_RANGE(0x00, 0x03) AM_READ(main_to_sub_comm_r)
+ AM_RANGE(0x00, 0x0f) AM_MIRROR(0x70) AM_WRITE(cpu1_outputs_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c
index d77123d22ce..015d0ca77c9 100644
--- a/src/mame/drivers/gridlee.c
+++ b/src/mame/drivers/gridlee.c
@@ -173,16 +173,15 @@ static MACHINE_RESET( gridlee )
*
*************************************/
-static READ8_HANDLER( analog_port_r )
+READ8_MEMBER(gridlee_state::analog_port_r)
{
- gridlee_state *state = space->machine().driver_data<gridlee_state>();
int delta, sign, magnitude;
UINT8 newval;
static const char *const portnames[] = { "TRACK0_Y", "TRACK0_X", "TRACK1_Y", "TRACK1_X" };
/* first read the new trackball value and compute the signed delta */
- newval = input_port_read(space->machine(), portnames[offset + 2 * state->m_cocktail_flip]);
- delta = (int)newval - (int)state->m_last_analog_input[offset];
+ newval = input_port_read(machine(), portnames[offset + 2 * m_cocktail_flip]);
+ delta = (int)newval - (int)m_last_analog_input[offset];
/* handle the case where we wrap around from 0x00 to 0xff, or vice versa */
if (delta >= 0x80)
@@ -192,18 +191,18 @@ static READ8_HANDLER( analog_port_r )
/* just return the previous value for deltas less than 2, which are ignored */
if (delta >= -1 && delta <= 1)
- return state->m_last_analog_output[offset];
- state->m_last_analog_input[offset] = newval;
+ return m_last_analog_output[offset];
+ m_last_analog_input[offset] = newval;
/* compute the sign and the magnitude */
sign = (delta < 0) ? 0x10 : 0x00;
magnitude = (delta < 0) ? -delta : delta;
/* add the magnitude to the running total */
- state->m_last_analog_output[offset] += magnitude;
+ m_last_analog_output[offset] += magnitude;
/* or in the sign bit and return that */
- return (state->m_last_analog_output[offset] & 15) | sign;
+ return (m_last_analog_output[offset] & 15) | sign;
}
@@ -256,17 +255,16 @@ static void poly17_init(running_machine &machine)
*
*************************************/
-static READ8_HANDLER( random_num_r )
+READ8_MEMBER(gridlee_state::random_num_r)
{
- gridlee_state *state = space->machine().driver_data<gridlee_state>();
UINT32 cc;
/* CPU runs at 1.25MHz, noise source at 100kHz --> multiply by 12.5 */
- cc = state->m_maincpu->total_cycles();
+ cc = m_maincpu->total_cycles();
/* 12.5 = 8 + 4 + 0.5 */
cc = (cc << 3) + (cc << 2) + (cc >> 1);
- return state->m_rand17[cc & POLY17_SIZE];
+ return m_rand17[cc & POLY17_SIZE];
}
@@ -277,23 +275,23 @@ static READ8_HANDLER( random_num_r )
*
*************************************/
-static WRITE8_HANDLER( led_0_w )
+WRITE8_MEMBER(gridlee_state::led_0_w)
{
- set_led_status(space->machine(), 0, data & 1);
+ set_led_status(machine(), 0, data & 1);
logerror("LED 0 %s\n", (data & 1) ? "on" : "off");
}
-static WRITE8_HANDLER( led_1_w )
+WRITE8_MEMBER(gridlee_state::led_1_w)
{
- set_led_status(space->machine(), 1, data & 1);
+ set_led_status(machine(), 1, data & 1);
logerror("LED 1 %s\n", (data & 1) ? "on" : "off");
}
-static WRITE8_HANDLER( gridlee_coin_counter_w )
+WRITE8_MEMBER(gridlee_state::gridlee_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
logerror("coin counter %s\n", (data & 1) ? "on" : "off");
}
@@ -309,19 +307,19 @@ static WRITE8_HANDLER( gridlee_coin_counter_w )
static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, gridlee_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x0800, 0x7fff) AM_RAM_WRITE_LEGACY(gridlee_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(led_0_w)
- AM_RANGE(0x9010, 0x9010) AM_WRITE_LEGACY(led_1_w)
- AM_RANGE(0x9020, 0x9020) AM_WRITE_LEGACY(gridlee_coin_counter_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(led_0_w)
+ AM_RANGE(0x9010, 0x9010) AM_WRITE(led_1_w)
+ AM_RANGE(0x9020, 0x9020) AM_WRITE(gridlee_coin_counter_w)
/* { 0x9060, 0x9060, unknown - only written to at startup */
AM_RANGE(0x9070, 0x9070) AM_WRITE_LEGACY(gridlee_cocktail_flip_w)
AM_RANGE(0x9200, 0x9200) AM_WRITE_LEGACY(gridlee_palette_select_w)
AM_RANGE(0x9380, 0x9380) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x9500, 0x9501) AM_READ_LEGACY(analog_port_r)
+ AM_RANGE(0x9500, 0x9501) AM_READ(analog_port_r)
AM_RANGE(0x9502, 0x9502) AM_READ_PORT("IN0")
AM_RANGE(0x9503, 0x9503) AM_READ_PORT("IN1")
AM_RANGE(0x9600, 0x9600) AM_READ_PORT("DSW")
AM_RANGE(0x9700, 0x9700) AM_READ_PORT("IN2") AM_WRITENOP
- AM_RANGE(0x9820, 0x9820) AM_READ_LEGACY(random_num_r)
+ AM_RANGE(0x9820, 0x9820) AM_READ(random_num_r)
AM_RANGE(0x9828, 0x993f) AM_DEVWRITE_LEGACY("gridlee", gridlee_sound_w)
AM_RANGE(0x9c00, 0x9cff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xa000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c
index a650135c666..e204061e129 100644
--- a/src/mame/drivers/groundfx.c
+++ b/src/mame/drivers/groundfx.c
@@ -78,18 +78,18 @@ Extract a standard version of this
("taito_8bpg_palette_word_w"?) to Taitoic.c ?
***********************************************************/
-static WRITE32_HANDLER( color_ram_w )
+WRITE32_MEMBER(groundfx_state::color_ram_w)
{
int a,r,g,b;
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
{
- a = space->machine().generic.paletteram.u32[offset];
+ a = machine().generic.paletteram.u32[offset];
r = (a &0xff0000) >> 16;
g = (a &0xff00) >> 8;
b = (a &0xff);
- palette_set_color(space->machine(),offset,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),offset,MAKE_RGB(r,g,b));
}
}
@@ -136,20 +136,19 @@ static CUSTOM_INPUT( coin_word_r )
return state->m_coin_word;
}
-static WRITE32_HANDLER( groundfx_input_w )
+WRITE32_MEMBER(groundfx_state::groundfx_input_w)
{
- groundfx_state *state = space->machine().driver_data<groundfx_state>();
switch (offset)
{
case 0x00:
if (ACCESSING_BITS_24_31) /* $500000 is watchdog */
{
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
}
if (ACCESSING_BITS_0_7)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
break;
@@ -157,45 +156,44 @@ static WRITE32_HANDLER( groundfx_input_w )
case 0x01:
if (ACCESSING_BITS_24_31)
{
- coin_lockout_w(space->machine(), 0,~data & 0x01000000);
- coin_lockout_w(space->machine(), 1,~data & 0x02000000);
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x08000000);
- state->m_coin_word = (data >> 16) &0xffff;
+ coin_lockout_w(machine(), 0,~data & 0x01000000);
+ coin_lockout_w(machine(), 1,~data & 0x02000000);
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x08000000);
+ m_coin_word = (data >> 16) &0xffff;
}
break;
}
}
-static READ32_HANDLER( groundfx_adc_r )
+READ32_MEMBER(groundfx_state::groundfx_adc_r)
{
- return (input_port_read(space->machine(), "AN0") << 8) | input_port_read(space->machine(), "AN1");
+ return (input_port_read(machine(), "AN0") << 8) | input_port_read(machine(), "AN1");
}
-static WRITE32_HANDLER( groundfx_adc_w )
+WRITE32_MEMBER(groundfx_state::groundfx_adc_w)
{
/* One interrupt per input port (4 per frame, though only 2 used).
1000 cycle delay is arbitrary */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(1000), FUNC(groundfx_interrupt5));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(1000), FUNC(groundfx_interrupt5));
}
-static WRITE32_HANDLER( rotate_control_w ) /* only a guess that it's rotation */
+WRITE32_MEMBER(groundfx_state::rotate_control_w)/* only a guess that it's rotation */
{
- groundfx_state *state = space->machine().driver_data<groundfx_state>();
if (ACCESSING_BITS_0_15)
{
- state->m_rotate_ctrl[state->m_port_sel] = data;
+ m_rotate_ctrl[m_port_sel] = data;
return;
}
if (ACCESSING_BITS_16_31)
{
- state->m_port_sel = (data &0x70000) >> 16;
+ m_port_sel = (data &0x70000) >> 16;
}
}
-static WRITE32_HANDLER( motor_control_w )
+WRITE32_MEMBER(groundfx_state::motor_control_w)
{
/*
Standard value poked is 0x00910200 (we ignore lsb and msb
@@ -219,20 +217,20 @@ static ADDRESS_MAP_START( groundfx_map, AS_PROGRAM, 32, groundfx_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE(m_ram) /* main CPUA ram */
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* sprite ram */
- AM_RANGE(0x400000, 0x400003) AM_WRITE_LEGACY(motor_control_w) /* gun vibration */
+ AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
AM_RANGE(0x500000, 0x500003) AM_READ_PORT("BUTTONS")
AM_RANGE(0x500004, 0x500007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x500000, 0x500007) AM_WRITE_LEGACY(groundfx_input_w) /* eeprom etc. */
- AM_RANGE(0x600000, 0x600003) AM_READWRITE_LEGACY(groundfx_adc_r,groundfx_adc_w)
+ AM_RANGE(0x500000, 0x500007) AM_WRITE(groundfx_input_w) /* eeprom etc. */
+ AM_RANGE(0x600000, 0x600003) AM_READWRITE(groundfx_adc_r,groundfx_adc_w)
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("f3_shared")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_long_r, tc0480scp_long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w) // debugging
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_long_r, tc0100scn_long_w) /* piv tilemaps */
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_long_r, tc0100scn_ctrl_long_w)
- AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE_LEGACY(color_ram_w) AM_BASE_GENERIC(paletteram) /* palette ram */
+ AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE(color_ram_w) AM_BASE_GENERIC(paletteram) /* palette ram */
AM_RANGE(0xb00000, 0xb003ff) AM_RAM // ?? single bytes, blending ??
AM_RANGE(0xc00000, 0xc00007) AM_READNOP /* Network? */
- AM_RANGE(0xd00000, 0xd00003) AM_WRITE_LEGACY(rotate_control_w) /* perhaps port based rotate control? */
+ AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */
/* f00000 is seat control? */
ADDRESS_MAP_END
@@ -438,20 +436,19 @@ ROM_START( groundfx )
ROM_END
-static READ32_HANDLER( irq_speedup_r_groundfx )
+READ32_MEMBER(groundfx_state::irq_speedup_r_groundfx)
{
- groundfx_state *state = space->machine().driver_data<groundfx_state>();
- cpu_device *cpu = downcast<cpu_device *>(&space->device());
+ cpu_device *cpu = downcast<cpu_device *>(&space.device());
int ptr;
offs_t sp = cpu->sp();
- if ((sp&2)==0) ptr=state->m_ram[(sp&0x1ffff)/4];
- else ptr=(((state->m_ram[(sp&0x1ffff)/4])&0x1ffff)<<16) |
- (state->m_ram[((sp&0x1ffff)/4)+1]>>16);
+ if ((sp&2)==0) ptr=m_ram[(sp&0x1ffff)/4];
+ else ptr=(((m_ram[(sp&0x1ffff)/4])&0x1ffff)<<16) |
+ (m_ram[((sp&0x1ffff)/4)+1]>>16);
if (cpu->pc()==0x1ece && ptr==0x1b9a)
cpu->spin_until_interrupt();
- return state->m_ram[0xb574/4];
+ return m_ram[0xb574/4];
}
@@ -463,7 +460,8 @@ static DRIVER_INIT( groundfx )
int data;
/* Speedup handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x20b574, 0x20b577, FUNC(irq_speedup_r_groundfx));
+ groundfx_state *state = machine.driver_data<groundfx_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x20b574, 0x20b577, read32_delegate(FUNC(groundfx_state::irq_speedup_r_groundfx),state));
/* make piv tile GFX format suitable for gfxdecode */
offset = size/2;
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index eb4f4eea815..f4738d7d8ef 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -180,48 +180,44 @@ Frequencies: 68k is XTAL_32MHZ/2
/*** MISC READ / WRITE HANDLERS **********************************************/
-static READ16_HANDLER(dmmy_8f)
+READ16_MEMBER(gstriker_state::dmmy_8f)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
- state->m_dmmy_8f_ret = ~state->m_dmmy_8f_ret;
- return state->m_dmmy_8f_ret;
+ m_dmmy_8f_ret = ~m_dmmy_8f_ret;
+ return m_dmmy_8f_ret;
}
/*** SOUND RELATED ***********************************************************/
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(gstriker_state::sound_command_w)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
#if 0
-static READ16_HANDLER( pending_command_r )
+READ16_MEMBER(gstriker_state::pending_command_r)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
- return state->m_pending_command;
+ return m_pending_command;
}
#endif
-static WRITE8_HANDLER( gs_sh_pending_command_clear_w )
+WRITE8_MEMBER(gstriker_state::gs_sh_pending_command_clear_w)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
-static WRITE8_HANDLER( gs_sh_bankswitch_w )
+WRITE8_MEMBER(gstriker_state::gs_sh_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("audiocpu")->base();
+ UINT8 *RAM = machine().region("audiocpu")->base();
int bankaddress;
bankaddress = 0x10000 + (data & 0x03) * 0x8000;
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]);
}
/*** GFX DECODE **************************************************************/
@@ -296,8 +292,8 @@ static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x200084, 0x200085) AM_READ_PORT("SYSTEM")
AM_RANGE(0x200086, 0x200087) AM_READ_PORT("DSW1")
AM_RANGE(0x200088, 0x200089) AM_READ_PORT("DSW2")
- AM_RANGE(0x20008e, 0x20008f) AM_READ_LEGACY(dmmy_8f)
- AM_RANGE(0x2000a0, 0x2000a1) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x20008e, 0x20008f) AM_READ(dmmy_8f)
+ AM_RANGE(0x2000a0, 0x2000a1) AM_WRITE(sound_command_w)
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_BASE(m_work_ram)
ADDRESS_MAP_END
@@ -311,8 +307,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, gstriker_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(gs_sh_bankswitch_w)
- AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(gs_sh_pending_command_clear_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(gs_sh_bankswitch_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(gs_sh_pending_command_clear_w)
AM_RANGE(0x0c, 0x0c) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -332,9 +328,9 @@ static ADDRESS_MAP_START( vgoal_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x200084, 0x200085) AM_READ_PORT("SYSTEM")
AM_RANGE(0x200086, 0x200087) AM_READ_PORT("DSW1")
AM_RANGE(0x200088, 0x200089) AM_READ_PORT("DSW2")
- AM_RANGE(0x20008e, 0x20008f) AM_READ_LEGACY(dmmy_8f)
+ AM_RANGE(0x20008e, 0x20008f) AM_READ(dmmy_8f)
- AM_RANGE(0x2000a0, 0x2000a1) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x2000a0, 0x2000a1) AM_WRITE(sound_command_w)
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_BASE(m_work_ram)
ADDRESS_MAP_END
@@ -829,30 +825,28 @@ state->m_work_ram[0x000/2] = (_num_ & 0xffff0000) >> 16;\
state->m_work_ram[0x002/2] = (_num_ & 0x0000ffff) >> 0;
-static WRITE16_HANDLER( twrldc94_mcu_w )
+WRITE16_MEMBER(gstriker_state::twrldc94_mcu_w)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
- state->m_mcu_data = data;
+ m_mcu_data = data;
}
-static READ16_HANDLER( twrldc94_mcu_r )
+READ16_MEMBER(gstriker_state::twrldc94_mcu_r)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
- return state->m_mcu_data;
+ return m_mcu_data;
}
-static WRITE16_HANDLER( twrldc94_prot_reg_w )
+WRITE16_MEMBER(gstriker_state::twrldc94_prot_reg_w)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
- state->m_prot_reg[1] = state->m_prot_reg[0];
- state->m_prot_reg[0] = data;
+ gstriker_state *state = machine().driver_data<gstriker_state>();
+ m_prot_reg[1] = m_prot_reg[0];
+ m_prot_reg[0] = data;
- if( ((state->m_prot_reg[1] & 2) == 2) && ((state->m_prot_reg[0] & 2) == 0) )
+ if( ((m_prot_reg[1] & 2) == 2) && ((m_prot_reg[0] & 2) == 0) )
{
- switch( state->m_gametype )
+ switch( m_gametype )
{
case 1:
- switch(state->m_mcu_data)
+ switch(m_mcu_data)
{
#define NULL_SUB 0x0000828E
case 0x53: PC(0x0000a4c); break; // boot -> main loop
@@ -912,19 +906,19 @@ static WRITE16_HANDLER( twrldc94_prot_reg_w )
case 0x6f: PC(NULL_SUB); break;
default:
- popmessage("Unknown MCU CMD %04x",state->m_mcu_data);
+ popmessage("Unknown MCU CMD %04x",m_mcu_data);
PC(NULL_SUB);
break;
}
break;
case 2:
- switch(state->m_mcu_data)
+ switch(m_mcu_data)
{
case 0x53: PC(0x00000a5c); break; // POST
default:
- popmessage("Unknown MCU CMD %04x",state->m_mcu_data);
+ popmessage("Unknown MCU CMD %04x",m_mcu_data);
PC(NULL_SUB);
break;
}
@@ -932,7 +926,7 @@ static WRITE16_HANDLER( twrldc94_prot_reg_w )
case 3:
- switch(state->m_mcu_data)
+ switch(m_mcu_data)
{
case 0x33: PC(0x00063416); break; // *after game over, is this right?
case 0x3d: PC(0x0006275C); break; // after sprite ram init, team select
@@ -945,7 +939,7 @@ static WRITE16_HANDLER( twrldc94_prot_reg_w )
case 0x79: PC(0x0006072E); break; // after select, start match
default:
- popmessage("Unknown MCU CMD %04x",state->m_mcu_data);
+ popmessage("Unknown MCU CMD %04x",m_mcu_data);
PC(0x00000586); // rts
break;
}
@@ -954,14 +948,13 @@ static WRITE16_HANDLER( twrldc94_prot_reg_w )
}
}
-static READ16_HANDLER( twrldc94_prot_reg_r )
+READ16_MEMBER(gstriker_state::twrldc94_prot_reg_r)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
// bit 0 is for debugging vgoalsoc?
// Setting it results in a hang with a digit displayed on screen
// For twrldc94, it just disables sound.
- return state->m_prot_reg[0];
+ return m_prot_reg[0];
}
/*
@@ -984,14 +977,14 @@ static READ16_HANDLER( twrldc94_prot_reg_r )
#define TICKCOUNT_3 state->m_work_ram[0x290e/2]
#define COUNTER_1 state->m_work_ram[0x2928/2]
#define COUNTER_2 state->m_work_ram[0x292a/2]
-static READ16_HANDLER( vbl_toggle_r )
+READ16_MEMBER(gstriker_state::vbl_toggle_r)
{
return 0xff;
}
-static WRITE16_HANDLER( vbl_toggle_w )
+WRITE16_MEMBER(gstriker_state::vbl_toggle_w)
{
- gstriker_state *state = space->machine().driver_data<gstriker_state>();
+ gstriker_state *state = machine().driver_data<gstriker_state>();
if( COUNTER1_ENABLE == 1 )
{
TICK_1 = (TICK_1 - 1) & 0xff; // 8bit
@@ -1020,11 +1013,11 @@ static void mcu_init( running_machine &machine )
state->m_pending_command = 0;
state->m_mcu_data = 0;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x20008a, 0x20008b, FUNC(twrldc94_mcu_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x20008a, 0x20008b, FUNC(twrldc94_mcu_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x20008a, 0x20008b, write16_delegate(FUNC(gstriker_state::twrldc94_mcu_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x20008a, 0x20008b, read16_delegate(FUNC(gstriker_state::twrldc94_mcu_r),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x20008e, 0x20008f, FUNC(twrldc94_prot_reg_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x20008e, 0x20008f, FUNC(twrldc94_prot_reg_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x20008e, 0x20008f, write16_delegate(FUNC(gstriker_state::twrldc94_prot_reg_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x20008e, 0x20008f, read16_delegate(FUNC(gstriker_state::twrldc94_prot_reg_r),state));
}
static DRIVER_INIT( twrldc94 )
@@ -1047,8 +1040,8 @@ static DRIVER_INIT( vgoalsoc )
state->m_gametype = 3;
mcu_init( machine );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x200090, 0x200091, FUNC(vbl_toggle_w)); // vblank toggle
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200090, 0x200091, FUNC(vbl_toggle_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x200090, 0x200091, write16_delegate(FUNC(gstriker_state::vbl_toggle_w),state)); // vblank toggle
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200090, 0x200091, read16_delegate(FUNC(gstriker_state::vbl_toggle_r),state));
}
/*** GAME DRIVERS ************************************************************/
diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c
index 78f8d2301b8..ad58168e77b 100644
--- a/src/mame/drivers/gunbustr.c
+++ b/src/mame/drivers/gunbustr.c
@@ -66,16 +66,16 @@ static INTERRUPT_GEN( gunbustr_interrupt )
device_set_input_line(device, 4, HOLD_LINE);
}
-static WRITE32_HANDLER( gunbustr_palette_w )
+WRITE32_MEMBER(gunbustr_state::gunbustr_palette_w)
{
int a;
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
- a = space->machine().generic.paletteram.u32[offset] >> 16;
- palette_set_color_rgb(space->machine(),offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
+ a = machine().generic.paletteram.u32[offset] >> 16;
+ palette_set_color_rgb(machine(),offset*2,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
- a = space->machine().generic.paletteram.u32[offset] &0xffff;
- palette_set_color_rgb(space->machine(),offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
+ a = machine().generic.paletteram.u32[offset] &0xffff;
+ palette_set_color_rgb(machine(),offset*2+1,pal5bit(a >> 10),pal5bit(a >> 5),pal5bit(a >> 0));
}
static CUSTOM_INPUT( coin_word_r )
@@ -84,16 +84,15 @@ static CUSTOM_INPUT( coin_word_r )
return state->m_coin_word;
}
-static WRITE32_HANDLER( gunbustr_input_w )
+WRITE32_MEMBER(gunbustr_state::gunbustr_input_w)
{
- gunbustr_state *state = space->machine().driver_data<gunbustr_state>();
#if 0
{
char t[64];
-COMBINE_DATA(&state->m_mem[offset]);
+COMBINE_DATA(&m_mem[offset]);
-sprintf(t,"%08x %08x",state->m_mem[0],state->m_mem[1]);
+sprintf(t,"%08x %08x",m_mem[0],m_mem[1]);
popmessage(t);
}
#endif
@@ -104,12 +103,12 @@ popmessage(t);
{
if (ACCESSING_BITS_24_31) /* $400000 is watchdog */
{
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
}
if (ACCESSING_BITS_0_7)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x40);
eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
@@ -125,18 +124,18 @@ popmessage(t);
/* game does not write a separate counter for coin 2!
It should disable both coins when 9 credits reached
see code $1d8a-f6... but for some reason it's not */
- coin_lockout_w(space->machine(), 0, data & 0x01000000);
- coin_lockout_w(space->machine(), 1, data & 0x02000000);
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x04000000);
- state->m_coin_word = (data >> 16) &0xffff;
+ coin_lockout_w(machine(), 0, data & 0x01000000);
+ coin_lockout_w(machine(), 1, data & 0x02000000);
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x04000000);
+ m_coin_word = (data >> 16) &0xffff;
}
-//logerror("CPU #0 PC %06x: write input %06x\n",cpu_get_pc(&space->device()),offset);
+//logerror("CPU #0 PC %06x: write input %06x\n",cpu_get_pc(&device()),offset);
}
}
}
-static WRITE32_HANDLER( motor_control_w )
+WRITE32_MEMBER(gunbustr_state::motor_control_w)
{
/*
Standard value poked into MSW is 0x3c00
@@ -174,16 +173,16 @@ static WRITE32_HANDLER( motor_control_w )
-static READ32_HANDLER( gunbustr_gun_r )
+READ32_MEMBER(gunbustr_state::gunbustr_gun_r)
{
- return ( input_port_read(space->machine(), "LIGHT0_X") << 24) | (input_port_read(space->machine(), "LIGHT0_Y") << 16) |
- ( input_port_read(space->machine(), "LIGHT1_X") << 8) | input_port_read(space->machine(), "LIGHT1_Y");
+ return ( input_port_read(machine(), "LIGHT0_X") << 24) | (input_port_read(machine(), "LIGHT0_Y") << 16) |
+ ( input_port_read(machine(), "LIGHT1_X") << 8) | input_port_read(machine(), "LIGHT1_Y");
}
-static WRITE32_HANDLER( gunbustr_gun_w )
+WRITE32_MEMBER(gunbustr_state::gunbustr_gun_w)
{
/* 10000 cycle delay is arbitrary */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(10000), FUNC(gunbustr_interrupt5));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(10000), FUNC(gunbustr_interrupt5));
}
@@ -195,15 +194,15 @@ static ADDRESS_MAP_START( gunbustr_map, AS_PROGRAM, 32, gunbustr_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_BASE(m_ram) /* main CPUA ram */
AM_RANGE(0x300000, 0x301fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Sprite ram */
- AM_RANGE(0x380000, 0x380003) AM_WRITE_LEGACY(motor_control_w) /* motor, lamps etc. */
+ AM_RANGE(0x380000, 0x380003) AM_WRITE(motor_control_w) /* motor, lamps etc. */
AM_RANGE(0x390000, 0x3907ff) AM_RAM AM_SHARE("f3_shared") /* Sound shared ram */
AM_RANGE(0x400000, 0x400003) AM_READ_PORT("P1_P2")
AM_RANGE(0x400004, 0x400007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x400000, 0x400007) AM_WRITE_LEGACY(gunbustr_input_w) /* eerom etc. */
- AM_RANGE(0x500000, 0x500003) AM_READWRITE_LEGACY(gunbustr_gun_r, gunbustr_gun_w) /* gun coord read */
+ AM_RANGE(0x400000, 0x400007) AM_WRITE(gunbustr_input_w) /* eerom etc. */
+ AM_RANGE(0x500000, 0x500003) AM_READWRITE(gunbustr_gun_r, gunbustr_gun_w) /* gun coord read */
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_long_r, tc0480scp_long_w)
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w)
- AM_RANGE(0x900000, 0x901fff) AM_RAM_WRITE_LEGACY(gunbustr_palette_w) AM_BASE_GENERIC(paletteram) /* Palette ram */
+ AM_RANGE(0x900000, 0x901fff) AM_RAM_WRITE(gunbustr_palette_w) AM_BASE_GENERIC(paletteram) /* Palette ram */
AM_RANGE(0xc00000, 0xc03fff) AM_RAM /* network ram ?? */
ADDRESS_MAP_END
@@ -472,19 +471,19 @@ ROM_START( gunbustrj )
ROM_LOAD16_WORD( "eeprom-gunbustr.bin", 0x0000, 0x0080, CRC(af7dc017) SHA1(5ff106cccd2679025cdd81fbc133d32148e2818c) )
ROM_END
-static READ32_HANDLER( main_cycle_r )
+READ32_MEMBER(gunbustr_state::main_cycle_r)
{
- gunbustr_state *state = space->machine().driver_data<gunbustr_state>();
- if (cpu_get_pc(&space->device())==0x55a && (state->m_ram[0x3acc/4]&0xff000000)==0)
- device_spin_until_interrupt(&space->device());
+ if (cpu_get_pc(&space.device())==0x55a && (m_ram[0x3acc/4]&0xff000000)==0)
+ device_spin_until_interrupt(&space.device());
- return state->m_ram[0x3acc/4];
+ return m_ram[0x3acc/4];
}
static DRIVER_INIT( gunbustr )
{
/* Speedup handler */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x203acc, 0x203acf, FUNC(main_cycle_r));
+ gunbustr_state *state = machine.driver_data<gunbustr_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x203acc, 0x203acf, read32_delegate(FUNC(gunbustr_state::main_cycle_r),state));
}
GAME( 1992, gunbustr, 0, gunbustr, gunbustr, gunbustr, ORIENTATION_FLIP_X, "Taito Corporation Japan", "Gunbuster (World)", 0 )
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index 735e22418fb..a805a1adc3e 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -51,9 +51,9 @@ Runs in interrupt mode 0, the interrupt vectors are 0xcf (RST 08h) and
#include "sound/2203intf.h"
#include "includes/gundealr.h"
-static WRITE8_HANDLER( yamyam_bankswitch_w )
+WRITE8_MEMBER(gundealr_state::yamyam_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
}
@@ -68,7 +68,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, gundealr_state )
AM_RANGE(0xc006, 0xc006) AM_READ_PORT("IN2")
AM_RANGE(0xc010, 0xc013) AM_WRITE_LEGACY(yamyam_fg_scroll_w) /* Yam Yam only */
AM_RANGE(0xc014, 0xc014) AM_WRITE_LEGACY(gundealr_flipscreen_w)
- AM_RANGE(0xc016, 0xc016) AM_WRITE_LEGACY(yamyam_bankswitch_w)
+ AM_RANGE(0xc016, 0xc016) AM_WRITE(yamyam_bankswitch_w)
AM_RANGE(0xc020, 0xc023) AM_WRITE_LEGACY(gundealr_fg_scroll_w) /* Gun Dealer only */
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE_LEGACY(gundealr_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(gundealr_bg_videoram_w) AM_BASE(m_bg_videoram)
diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c
index 7917128c229..8d7417bde09 100644
--- a/src/mame/drivers/gunsmoke.c
+++ b/src/mame/drivers/gunsmoke.c
@@ -74,7 +74,7 @@ Stephh's notes (based on the games Z80 code and some tests) :
/* Read/Write Handlers */
-static READ8_HANDLER( gunsmoke_protection_r )
+READ8_MEMBER(gunsmoke_state::gunsmoke_protection_r)
{
/*
The routine at 0x0e69 tries to read data starting at 0xc4c9.
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( gunsmoke_map, AS_PROGRAM, 8, gunsmoke_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P2")
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW1")
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DSW2")
- AM_RANGE(0xc4c9, 0xc4cb) AM_READ_LEGACY(gunsmoke_protection_r)
+ AM_RANGE(0xc4c9, 0xc4cb) AM_READ(gunsmoke_protection_r)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(gunsmoke_c804_w) // ROM bank switch, screen flip
AM_RANGE(0xc806, 0xc806) AM_WRITE_LEGACY(watchdog_reset_w)
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index b00fc47755c..01a7f254f36 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -100,10 +100,9 @@ static WRITE8_DEVICE_HANDLER( gyruss_dac_w )
discrete_sound_w(device, NODE(16), data);
}
-static WRITE8_HANDLER( gyruss_irq_clear_w )
+WRITE8_MEMBER(gyruss_state::gyruss_irq_clear_w)
{
- gyruss_state *state = space->machine().driver_data<gyruss_state>();
- device_set_input_line(state->m_audiocpu_2, 0, CLEAR_LINE);
+ device_set_input_line(m_audiocpu_2, 0, CLEAR_LINE);
}
static void filter_w( device_t *device, int chip, int data )
@@ -131,31 +130,27 @@ static WRITE8_DEVICE_HANDLER( gyruss_filter1_w )
}
-static WRITE8_HANDLER( gyruss_sh_irqtrigger_w )
+WRITE8_MEMBER(gyruss_state::gyruss_sh_irqtrigger_w)
{
- gyruss_state *state = space->machine().driver_data<gyruss_state>();
/* writing to this register triggers IRQ on the sound CPU */
- 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);
}
-static WRITE8_HANDLER( gyruss_i8039_irq_w )
+WRITE8_MEMBER(gyruss_state::gyruss_i8039_irq_w)
{
- gyruss_state *state = space->machine().driver_data<gyruss_state>();
- device_set_input_line(state->m_audiocpu_2, 0, ASSERT_LINE);
+ device_set_input_line(m_audiocpu_2, 0, ASSERT_LINE);
}
-static WRITE8_HANDLER( master_nmi_mask_w )
+WRITE8_MEMBER(gyruss_state::master_nmi_mask_w)
{
- gyruss_state *state = space->machine().driver_data<gyruss_state>();
- state->m_master_nmi_mask = data & 1;
+ m_master_nmi_mask = data & 1;
}
-static WRITE8_HANDLER( slave_irq_mask_w )
+WRITE8_MEMBER(gyruss_state::slave_irq_mask_w)
{
- gyruss_state *state = space->machine().driver_data<gyruss_state>();
- state->m_slave_irq_mask = data & 1;
+ m_slave_irq_mask = data & 1;
}
static ADDRESS_MAP_START( main_cpu1_map, AS_PROGRAM, 8, gyruss_state )
@@ -165,18 +160,18 @@ static ADDRESS_MAP_START( main_cpu1_map, AS_PROGRAM, 8, gyruss_state )
AM_RANGE(0x9000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW2") AM_WRITENOP /* watchdog reset */
- AM_RANGE(0xc080, 0xc080) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(gyruss_sh_irqtrigger_w)
+ AM_RANGE(0xc080, 0xc080) AM_READ_PORT("SYSTEM") AM_WRITE(gyruss_sh_irqtrigger_w)
AM_RANGE(0xc0a0, 0xc0a0) AM_READ_PORT("P1")
AM_RANGE(0xc0c0, 0xc0c0) AM_READ_PORT("P2")
AM_RANGE(0xc0e0, 0xc0e0) AM_READ_PORT("DSW1")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("DSW3") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xc180, 0xc180) AM_WRITE_LEGACY(master_nmi_mask_w)
+ AM_RANGE(0xc180, 0xc180) AM_WRITE(master_nmi_mask_w)
AM_RANGE(0xc185, 0xc185) AM_WRITEONLY AM_BASE(m_flipscreen)
ADDRESS_MAP_END
static ADDRESS_MAP_START( main_cpu2_map, AS_PROGRAM, 8, gyruss_state )
AM_RANGE(0x0000, 0x0000) AM_READ_LEGACY(gyruss_scanline_r)
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(slave_irq_mask_w)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(slave_irq_mask_w)
AM_RANGE(0x4000, 0x403f) AM_RAM
AM_RANGE(0x4040, 0x40ff) AM_RAM_WRITE_LEGACY(gyruss_spriteram_w) AM_BASE(m_spriteram)
AM_RANGE(0x4100, 0x47ff) AM_RAM
@@ -207,7 +202,7 @@ static ADDRESS_MAP_START( audio_cpu1_io_map, AS_IO, 8, gyruss_state )
AM_RANGE(0x10, 0x10) AM_DEVWRITE_LEGACY("ay5", ay8910_address_w)
AM_RANGE(0x11, 0x11) AM_DEVREAD_LEGACY("ay5", ay8910_r)
AM_RANGE(0x12, 0x12) AM_DEVWRITE_LEGACY("ay5", ay8910_data_w)
- AM_RANGE(0x14, 0x14) AM_WRITE_LEGACY(gyruss_i8039_irq_w)
+ AM_RANGE(0x14, 0x14) AM_WRITE(gyruss_i8039_irq_w)
AM_RANGE(0x18, 0x18) AM_WRITE_LEGACY(soundlatch2_w)
ADDRESS_MAP_END
@@ -218,7 +213,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_cpu2_io_map, AS_IO, 8, gyruss_state )
AM_RANGE(0x00, 0xff) AM_READ_LEGACY(soundlatch2_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("discrete", gyruss_dac_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE_LEGACY(gyruss_irq_clear_w)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(gyruss_irq_clear_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index 94d072e613b..4d655148ddc 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -30,22 +30,21 @@
#include "sound/ay8910.h"
#include "includes/hanaawas.h"
-static READ8_HANDLER( hanaawas_input_port_0_r )
+READ8_MEMBER(hanaawas_state::hanaawas_input_port_0_r)
{
- hanaawas_state *state = space->machine().driver_data<hanaawas_state>();
int i, ordinal = 0;
UINT16 buttons = 0;
- switch (state->m_mux)
+ switch (m_mux)
{
case 1: /* start buttons */
- buttons = input_port_read(space->machine(), "START");
+ buttons = input_port_read(machine(), "START");
break;
case 2: /* player 1 buttons */
- buttons = input_port_read(space->machine(), "P1");
+ buttons = input_port_read(machine(), "P1");
break;
case 4: /* player 2 buttons */
- buttons = input_port_read(space->machine(), "P2");
+ buttons = input_port_read(machine(), "P2");
break;
}
@@ -61,13 +60,12 @@ static READ8_HANDLER( hanaawas_input_port_0_r )
}
}
- return (input_port_read(space->machine(), "IN0") & 0xf0) | ordinal;
+ return (input_port_read(machine(), "IN0") & 0xf0) | ordinal;
}
-static WRITE8_HANDLER( hanaawas_inputs_mux_w )
+WRITE8_MEMBER(hanaawas_state::hanaawas_inputs_mux_w)
{
- hanaawas_state *state = space->machine().driver_data<hanaawas_state>();
- state->m_mux = data;
+ m_mux = data;
}
static ADDRESS_MAP_START( hanaawas_map, AS_PROGRAM, 8, hanaawas_state )
@@ -82,7 +80,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, hanaawas_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(hanaawas_input_port_0_r, hanaawas_inputs_mux_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(hanaawas_input_port_0_r, hanaawas_inputs_mux_w)
AM_RANGE(0x01, 0x01) AM_READNOP /* it must return 0 */
AM_RANGE(0x10, 0x10) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
AM_RANGE(0x10, 0x11) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 28763d68314..0fb9b8f5ffa 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -17,21 +17,20 @@
#include "includes/hcastle.h"
-static WRITE8_HANDLER( hcastle_bankswitch_w )
+WRITE8_MEMBER(hcastle_state::hcastle_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x1f);
+ memory_set_bank(machine(), "bank1", data & 0x1f);
}
-static WRITE8_HANDLER( hcastle_soundirq_w )
+WRITE8_MEMBER(hcastle_state::hcastle_soundirq_w)
{
- hcastle_state *state = space->machine().driver_data<hcastle_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static WRITE8_HANDLER( hcastle_coin_w )
+WRITE8_MEMBER(hcastle_state::hcastle_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 0x40);
- coin_counter_w(space->machine(), 1, data & 0x80);
+ coin_counter_w(machine(), 0, data & 0x40);
+ coin_counter_w(machine(), 1, data & 0x80);
}
@@ -41,11 +40,11 @@ static ADDRESS_MAP_START( hcastle_map, AS_PROGRAM, 8, hcastle_state )
AM_RANGE(0x0020, 0x003f) AM_RAM /* rowscroll? */
AM_RANGE(0x0200, 0x0207) AM_WRITE_LEGACY(hcastle_pf2_control_w)
AM_RANGE(0x0220, 0x023f) AM_RAM /* rowscroll? */
- AM_RANGE(0x0400, 0x0400) AM_WRITE_LEGACY(hcastle_bankswitch_w)
+ AM_RANGE(0x0400, 0x0400) AM_WRITE(hcastle_bankswitch_w)
AM_RANGE(0x0404, 0x0404) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x0408, 0x0408) AM_WRITE_LEGACY(hcastle_soundirq_w)
+ AM_RANGE(0x0408, 0x0408) AM_WRITE(hcastle_soundirq_w)
AM_RANGE(0x040c, 0x040c) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x0410, 0x0410) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(hcastle_coin_w)
+ AM_RANGE(0x0410, 0x0410) AM_READ_PORT("SYSTEM") AM_WRITE(hcastle_coin_w)
AM_RANGE(0x0411, 0x0411) AM_READ_PORT("P1")
AM_RANGE(0x0412, 0x0412) AM_READ_PORT("P2")
AM_RANGE(0x0413, 0x0413) AM_READ_PORT("DSW3")
diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c
index f6ba4781c23..aca45c258fc 100644
--- a/src/mame/drivers/hexion.c
+++ b/src/mame/drivers/hexion.c
@@ -87,16 +87,16 @@ Notes:
#include "machine/k053252.h"
-static WRITE8_HANDLER( coincntr_w )
+WRITE8_MEMBER(hexion_state::coincntr_w)
{
-//logerror("%04x: coincntr_w %02x\n",cpu_get_pc(&space->device()),data);
+//logerror("%04x: coincntr_w %02x\n",cpu_get_pc(&space.device()),data);
/* bits 0/1 = coin counters */
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
/* bit 5 = flip screen */
- flip_screen_set(space->machine(), data & 0x20);
+ flip_screen_set(machine(), data & 0x20);
/* other bit unknown */
if ((data & 0xdc) != 0x10) popmessage("coincntr %02x",data);
@@ -132,7 +132,7 @@ static ADDRESS_MAP_START( hexion_map, AS_PROGRAM, 8, hexion_state )
AM_RANGE(0xf440, 0xf440) AM_READ_PORT("DSW3")
AM_RANGE(0xf441, 0xf441) AM_READ_PORT("SYSTEM")
AM_RANGE(0xf480, 0xf480) AM_WRITE_LEGACY(hexion_bankswitch_w)
- AM_RANGE(0xf4c0, 0xf4c0) AM_WRITE_LEGACY(coincntr_w)
+ AM_RANGE(0xf4c0, 0xf4c0) AM_WRITE(coincntr_w)
AM_RANGE(0xf500, 0xf500) AM_WRITE_LEGACY(hexion_gfxrom_select_w)
AM_RANGE(0xf540, 0xf540) AM_READ_LEGACY(watchdog_reset_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index 872c407982e..b16eb5d5c2b 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -89,19 +89,18 @@ A 12.000MHz
#define MCLK XTAL_12MHz
-static WRITE8_HANDLER( himesiki_rombank_w )
+WRITE8_MEMBER(himesiki_state::himesiki_rombank_w)
{
- memory_set_bank(space->machine(), "bank1", ((data & 0x08) >> 3));
+ memory_set_bank(machine(), "bank1", ((data & 0x08) >> 3));
if (data & 0xf7)
logerror("p06_w %02x\n", data);
}
-static WRITE8_HANDLER( himesiki_sound_w )
+WRITE8_MEMBER(himesiki_state::himesiki_sound_w)
{
- himesiki_state *state = space->machine().driver_data<himesiki_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
}
/****************************************************************************/
@@ -123,11 +122,11 @@ static ADDRESS_MAP_START( himesiki_iom0, AS_IO, 8, himesiki_state )
AM_RANGE(0x03, 0x03) AM_WRITENOP // 8255 cw
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1")
AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW2")
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(himesiki_rombank_w)
+ AM_RANGE(0x06, 0x06) AM_WRITE(himesiki_rombank_w)
AM_RANGE(0x07, 0x07) AM_WRITENOP // 8255 cw
AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(himesiki_flip_w)
AM_RANGE(0x09, 0x0a) AM_WRITE_LEGACY(himesiki_scrollx_w)
- AM_RANGE(0x0b, 0x0b) AM_WRITE_LEGACY(himesiki_sound_w)
+ AM_RANGE(0x0b, 0x0b) AM_WRITE(himesiki_sound_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( himesiki_prm1, AS_PROGRAM, 8, himesiki_state )
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 1e525aba699..6d6c731c99c 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -38,13 +38,12 @@ static TILE_GET_INFO( get_hitme_tile_info )
}
-static WRITE8_HANDLER( hitme_vidram_w )
+WRITE8_MEMBER(hitme_state::hitme_vidram_w)
{
- hitme_state *state = space->machine().driver_data<hitme_state>();
/* mark this tile dirty */
- state->m_videoram[offset] = data;
- state->m_tilemap->mark_tile_dirty(offset);
+ m_videoram[offset] = data;
+ m_tilemap->mark_tile_dirty(offset);
}
@@ -153,27 +152,27 @@ static UINT8 read_port_and_t0_and_hblank( running_machine &machine, int port )
}
-static READ8_HANDLER( hitme_port_0_r )
+READ8_MEMBER(hitme_state::hitme_port_0_r)
{
- return read_port_and_t0_and_hblank(space->machine(), 0);
+ return read_port_and_t0_and_hblank(machine(), 0);
}
-static READ8_HANDLER( hitme_port_1_r )
+READ8_MEMBER(hitme_state::hitme_port_1_r)
{
- return read_port_and_t0(space->machine(), 1);
+ return read_port_and_t0(machine(), 1);
}
-static READ8_HANDLER( hitme_port_2_r )
+READ8_MEMBER(hitme_state::hitme_port_2_r)
{
- return read_port_and_t0_and_hblank(space->machine(), 2);
+ return read_port_and_t0_and_hblank(machine(), 2);
}
-static READ8_HANDLER( hitme_port_3_r )
+READ8_MEMBER(hitme_state::hitme_port_3_r)
{
- return read_port_and_t0(space->machine(), 3);
+ return read_port_and_t0(machine(), 3);
}
@@ -227,12 +226,12 @@ static WRITE8_DEVICE_HANDLER( output_port_1_w )
static ADDRESS_MAP_START( hitme_map, AS_PROGRAM, 8, hitme_state )
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
AM_RANGE(0x0000, 0x09ff) AM_ROM
- AM_RANGE(0x0c00, 0x0eff) AM_RAM_WRITE_LEGACY(hitme_vidram_w) AM_BASE(m_videoram)
+ AM_RANGE(0x0c00, 0x0eff) AM_RAM_WRITE(hitme_vidram_w) AM_BASE(m_videoram)
AM_RANGE(0x1000, 0x10ff) AM_MIRROR(0x300) AM_RAM
- AM_RANGE(0x1400, 0x14ff) AM_READ_LEGACY(hitme_port_0_r)
- AM_RANGE(0x1500, 0x15ff) AM_READ_LEGACY(hitme_port_1_r)
- AM_RANGE(0x1600, 0x16ff) AM_READ_LEGACY(hitme_port_2_r)
- AM_RANGE(0x1700, 0x17ff) AM_READ_LEGACY(hitme_port_3_r)
+ AM_RANGE(0x1400, 0x14ff) AM_READ(hitme_port_0_r)
+ AM_RANGE(0x1500, 0x15ff) AM_READ(hitme_port_1_r)
+ AM_RANGE(0x1600, 0x16ff) AM_READ(hitme_port_2_r)
+ 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)
@@ -241,10 +240,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hitme_portmap, AS_IO, 8, hitme_state )
- AM_RANGE(0x14, 0x14) AM_READ_LEGACY(hitme_port_0_r)
- AM_RANGE(0x15, 0x15) AM_READ_LEGACY(hitme_port_1_r)
- AM_RANGE(0x16, 0x16) AM_READ_LEGACY(hitme_port_2_r)
- AM_RANGE(0x17, 0x17) AM_READ_LEGACY(hitme_port_3_r)
+ AM_RANGE(0x14, 0x14) AM_READ(hitme_port_0_r)
+ AM_RANGE(0x15, 0x15) AM_READ(hitme_port_1_r)
+ AM_RANGE(0x16, 0x16) AM_READ(hitme_port_2_r)
+ 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)
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index 0a04a4944bd..d3dd2689934 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -40,32 +40,30 @@ TODO:
#include "includes/hnayayoi.h"
-static READ8_HANDLER( keyboard_0_r )
+READ8_MEMBER(hnayayoi_state::keyboard_0_r)
{
- hnayayoi_state *state = space->machine().driver_data<hnayayoi_state>();
int res = 0x3f;
int i;
static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4" };
for (i = 0; i < 5; i++)
{
- if (~state->m_keyb & (1 << i))
- res &= input_port_read(space->machine(), keynames[i]);
+ if (~m_keyb & (1 << i))
+ res &= input_port_read(machine(), keynames[i]);
}
return res;
}
-static READ8_HANDLER( keyboard_1_r )
+READ8_MEMBER(hnayayoi_state::keyboard_1_r)
{
/* Player 2 not supported */
return 0x3f;
}
-static WRITE8_HANDLER( keyboard_w )
+WRITE8_MEMBER(hnayayoi_state::keyboard_w)
{
- hnayayoi_state *state = space->machine().driver_data<hnayayoi_state>();
- state->m_keyb = data;
+ m_keyb = data;
}
@@ -108,9 +106,9 @@ static ADDRESS_MAP_START( hnayayoi_io_map, AS_IO, 8, hnayayoi_state )
AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(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(0x40, 0x40) AM_WRITE_LEGACY(keyboard_w)
- AM_RANGE(0x41, 0x41) AM_READ_LEGACY(keyboard_0_r)
- AM_RANGE(0x42, 0x42) AM_READ_LEGACY(keyboard_1_r)
+ 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)
AM_RANGE(0x43, 0x43) AM_READ_PORT("COIN")
AM_RANGE(0x60, 0x61) AM_WRITE_LEGACY(hnayayoi_palbank_w)
AM_RANGE(0x62, 0x67) AM_WRITE_LEGACY(dynax_blitter_rev1_param_w)
@@ -130,9 +128,9 @@ static ADDRESS_MAP_START( hnfubuki_map, AS_PROGRAM, 8, hnayayoi_state )
AM_RANGE(0xff0c, 0xff0c) AM_WRITE_LEGACY(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(0xff40, 0xff40) AM_WRITE_LEGACY(keyboard_w)
- AM_RANGE(0xff41, 0xff41) AM_READ_LEGACY(keyboard_0_r)
- AM_RANGE(0xff42, 0xff42) AM_READ_LEGACY(keyboard_1_r)
+ 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)
AM_RANGE(0xff43, 0xff43) AM_READ_PORT("COIN")
AM_RANGE(0xff60, 0xff61) AM_WRITE_LEGACY(hnayayoi_palbank_w)
AM_RANGE(0xff62, 0xff67) AM_WRITE_LEGACY(dynax_blitter_rev1_param_w)
@@ -151,9 +149,9 @@ static ADDRESS_MAP_START( untoucha_io_map, AS_IO, 8, hnayayoi_state )
// AM_RANGE(0x12, 0x12) AM_WRITENOP // CRT Controller
AM_RANGE(0x13, 0x13) AM_DEVWRITE_LEGACY("msm", adpcm_data_w)
AM_RANGE(0x14, 0x14) AM_READ_PORT("COIN")
- AM_RANGE(0x15, 0x15) AM_READ_LEGACY(keyboard_1_r)
- AM_RANGE(0x16, 0x16) AM_READ_LEGACY(keyboard_0_r) // bit 7 = blitter busy flag
- AM_RANGE(0x17, 0x17) AM_WRITE_LEGACY(keyboard_w)
+ AM_RANGE(0x15, 0x15) AM_READ(keyboard_1_r)
+ AM_RANGE(0x16, 0x16) AM_READ(keyboard_0_r) // bit 7 = blitter busy flag
+ AM_RANGE(0x17, 0x17) AM_WRITE(keyboard_w)
AM_RANGE(0x18, 0x19) AM_WRITE_LEGACY(hnayayoi_palbank_w)
AM_RANGE(0x1a, 0x1f) AM_WRITE_LEGACY(dynax_blitter_rev1_param_w)
AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(dynax_blitter_rev1_clear_w)
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index 26058990fe0..24bf0f226eb 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -465,44 +465,41 @@ WRITE32_HANDLER( trap_write )
logerror("Remapped write... %08x %08x\n",offset,data);
}
-static READ32_HANDLER( hng64_random_read )
+READ32_MEMBER(hng64_state::hng64_random_read)
{
- return space->machine().rand()&0xffffffff;
+ return machine().rand()&0xffffffff;
}
#endif
-static READ32_HANDLER( hng64_com_r )
+READ32_MEMBER(hng64_state::hng64_com_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- logerror("com read (PC=%08x): %08x %08x = %08x\n", cpu_get_pc(&space->device()), (offset*4)+0xc0000000, mem_mask, state->m_com_ram[offset]);
- return state->m_com_ram[offset];
+ logerror("com read (PC=%08x): %08x %08x = %08x\n", cpu_get_pc(&space.device()), (offset*4)+0xc0000000, mem_mask, m_com_ram[offset]);
+ return m_com_ram[offset];
}
-static WRITE32_HANDLER( hng64_com_w )
+WRITE32_MEMBER(hng64_state::hng64_com_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- logerror("com write (PC=%08x): %08x %08x = %08x\n", cpu_get_pc(&space->device()), (offset*4)+0xc0000000, mem_mask, data);
- COMBINE_DATA(&state->m_com_ram[offset]);
+ logerror("com write (PC=%08x): %08x %08x = %08x\n", cpu_get_pc(&space.device()), (offset*4)+0xc0000000, mem_mask, data);
+ COMBINE_DATA(&m_com_ram[offset]);
}
-static WRITE32_HANDLER( hng64_com_share_w )
+WRITE32_MEMBER(hng64_state::hng64_com_share_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- logerror("commw (PC=%08x): %08x %08x %08x\n", cpu_get_pc(&space->device()), data, (offset*4)+0xc0001000, mem_mask);
+ logerror("commw (PC=%08x): %08x %08x %08x\n", cpu_get_pc(&space.device()), data, (offset*4)+0xc0001000, mem_mask);
- if (offset == 0x0) COMBINE_DATA(&state->m_com_shared_a);
- if (offset == 0x1) COMBINE_DATA(&state->m_com_shared_b);
+ if (offset == 0x0) COMBINE_DATA(&m_com_shared_a);
+ if (offset == 0x1) COMBINE_DATA(&m_com_shared_b);
}
-static READ32_HANDLER( hng64_com_share_r )
+READ32_MEMBER(hng64_state::hng64_com_share_r)
{
- logerror("commr (PC=%08x): %08x %08x\n", cpu_get_pc(&space->device()), (offset*4)+0xc0001000, mem_mask);
+ logerror("commr (PC=%08x): %08x %08x\n", cpu_get_pc(&space.device()), (offset*4)+0xc0001000, mem_mask);
- //if(offset == 0x0) return state->m_com_shared_a;
- //if(offset == 0x1) return state->m_com_shared_b;
+ //if(offset == 0x0) return m_com_shared_a;
+ //if(offset == 0x1) return m_com_shared_b;
if(offset==0x0) return 0x0000aaaa;
if(offset==0x1) return 0x00030000; // fatfurwa : at bfc06624 it wants a 01 : at bfc06650 it wants a 02
@@ -510,9 +507,9 @@ static READ32_HANDLER( hng64_com_share_r )
return 0x00;
}
-static WRITE32_HANDLER( hng64_pal_w )
+WRITE32_MEMBER(hng64_state::hng64_pal_w)
{
- UINT32 *paletteram = space->machine().generic.paletteram.u32;
+ UINT32 *paletteram = machine().generic.paletteram.u32;
int r, g, b/*, a*/;
COMBINE_DATA(&paletteram[offset]);
@@ -521,29 +518,28 @@ static WRITE32_HANDLER( hng64_pal_w )
g = ((paletteram[offset] & 0x0000ff00) >>8);
r = ((paletteram[offset] & 0x00ff0000) >>16);
//a = ((paletteram[offset] & 0xff000000) >>24);
- palette_set_color(space->machine(),offset,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),offset,MAKE_RGB(r,g,b));
}
-static READ32_HANDLER( hng64_sysregs_r )
+READ32_MEMBER(hng64_state::hng64_sysregs_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
system_time systime;
- space->machine().base_datetime(systime);
+ machine().base_datetime(systime);
#if 0
if((offset*4) != 0x1084)
- printf("HNG64 port read (PC=%08x) 0x%08x\n", cpu_get_pc(&space->device()), offset*4);
+ printf("HNG64 port read (PC=%08x) 0x%08x\n", cpu_get_pc(&space.device()), offset*4);
#endif
switch(offset*4)
{
- case 0x001c: return space->machine().rand(); // hng64 hangs on start-up if zero.
+ case 0x001c: return machine().rand(); // hng64 hangs on start-up if zero.
//case 0x106c:
//case 0x107c:
case 0x1084: return 0x00000002; //MCU->MIPS latch port
//case 0x108c:
- case 0x1104: return state->m_interrupt_level_request;
+ case 0x1104: return m_interrupt_level_request;
case 0x1254: return 0x00000000; //dma status, 0x800
/* 4-bit RTC */
case 0x2104: return (systime.local_time.second % 10);
@@ -567,8 +563,8 @@ static READ32_HANDLER( hng64_sysregs_r )
// printf("%08x\n",offset*4);
-// return space->machine().rand()&0xffffffff;
- return state->m_sysregs[offset];
+// return machine().rand()&0xffffffff;
+ return m_sysregs[offset];
}
/* preliminary dma code, dma is used to copy program code -> ram */
@@ -602,15 +598,14 @@ static void hng64_do_dma(address_space *space)
// AM_RANGE(0x1F7021C4, 0x1F7021C7) AM_WRITENOP // ?? often
*/
-static WRITE32_HANDLER( hng64_sysregs_w )
+WRITE32_MEMBER(hng64_state::hng64_sysregs_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- COMBINE_DATA (&state->m_sysregs[offset]);
+ COMBINE_DATA (&m_sysregs[offset]);
#if 0
if(((offset*4) & 0x1200) == 0x1200)
- printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, state->m_sysregs[offset], cpu_get_pc(&space->device()));
+ printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, m_sysregs[offset], cpu_get_pc(&space.device()));
#endif
switch(offset*4)
@@ -618,18 +613,18 @@ static WRITE32_HANDLER( hng64_sysregs_w )
//case 0x100c: *DOCUMENT*
case 0x1084: //MIPS->MCU latch port
- state->m_mcu_en = (data & 0xff); //command-based, i.e. doesn't control halt line and such?
- //printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, state->m_sysregs[offset], cpu_get_pc(&space->device()));
+ m_mcu_en = (data & 0xff); //command-based, i.e. doesn't control halt line and such?
+ //printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, m_sysregs[offset], cpu_get_pc(&space.device()));
break;
case 0x111c: /*irq ack */ break;
- case 0x1204: state->m_dma_start = state->m_sysregs[offset]; break;
- case 0x1214: state->m_dma_dst = state->m_sysregs[offset]; break;
+ case 0x1204: m_dma_start = m_sysregs[offset]; break;
+ case 0x1214: m_dma_dst = m_sysregs[offset]; break;
case 0x1224:
- state->m_dma_len = state->m_sysregs[offset];
- hng64_do_dma(space);
+ m_dma_len = m_sysregs[offset];
+ hng64_do_dma(&space);
break;
//default:
- //printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, state->m_sysregs[offset], cpu_get_pc(&space->device()));
+ //printf("HNG64 writing to SYSTEM Registers 0x%08x == 0x%08x. (PC=%08x)\n", offset*4, m_sysregs[offset], cpu_get_pc(&space.device()));
}
}
@@ -638,64 +633,61 @@ static WRITE32_HANDLER( hng64_sysregs_w )
**************************************/
/* Fatal Fury Wild Ambition / Buriki One */
-static READ32_HANDLER( fight_io_r )
+READ32_MEMBER(hng64_state::fight_io_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
switch (offset*4)
{
case 0x000: return 0x00000400;
- case 0x004: return input_port_read(space->machine(), "SYSTEM");
- case 0x008: return input_port_read(space->machine(), "P1_P2");
- case 0x600: return state->m_no_machine_error_code;
+ case 0x004: return input_port_read(machine(), "SYSTEM");
+ case 0x008: return input_port_read(machine(), "P1_P2");
+ case 0x600: return m_no_machine_error_code;
}
- return state->m_dualport[offset];
+ return m_dualport[offset];
}
/* Samurai Shodown 64 / Samurai Shodown 64 2 */
-static READ32_HANDLER( samsho_io_r )
+READ32_MEMBER(hng64_state::samsho_io_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
switch (offset*4)
{
case 0x000:
{
/* this is used on post by the io mcu to signal that a init task is complete, zeroed otherwise. */
- //popmessage("%04x", state->m_mcu_fake_time);
+ //popmessage("%04x", m_mcu_fake_time);
- if(state->m_mcu_fake_time < 0x100)
- state->m_mcu_fake_time++;
+ if(m_mcu_fake_time < 0x100)
+ m_mcu_fake_time++;
- if(state->m_mcu_fake_time < 0x80) //i/o init 1
+ if(m_mcu_fake_time < 0x80) //i/o init 1
return 0x300;
- else if(state->m_mcu_fake_time < 0x100)//i/o init 2
+ else if(m_mcu_fake_time < 0x100)//i/o init 2
return 0x400;
else
return 0x000;
}
- case 0x004: return input_port_read(space->machine(), "SYSTEM");
- case 0x008: return input_port_read(space->machine(), "P1_P2");
- case 0x600: return state->m_no_machine_error_code;
+ case 0x004: return input_port_read(machine(), "SYSTEM");
+ case 0x008: return input_port_read(machine(), "P1_P2");
+ case 0x600: return m_no_machine_error_code;
}
- return state->m_dualport[offset];
+ return m_dualport[offset];
}
/* Beast Busters 2 */
/* FIXME: trigger input doesn't work? */
-static READ32_HANDLER( shoot_io_r )
+READ32_MEMBER(hng64_state::shoot_io_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
switch (offset*4)
{
case 0x000:
{
- if(state->m_mcu_fake_time < 0x100)//i/o init
+ if(m_mcu_fake_time < 0x100)//i/o init
{
- state->m_mcu_fake_time++;
+ m_mcu_fake_time++;
return 0x400;
}
else
@@ -704,65 +696,63 @@ static READ32_HANDLER( shoot_io_r )
case 0x010:
{
/* Quick kludge for use the input test items */
- if(input_port_read(space->machine(), "D_IN") & 0x01000000)
- state->m_p1_trig = space->machine().rand() & 0x01000000;
+ if(input_port_read(machine(), "D_IN") & 0x01000000)
+ m_p1_trig = machine().rand() & 0x01000000;
- return (input_port_read(space->machine(), "D_IN") & ~0x01000000) | (state->m_p1_trig);
+ return (input_port_read(machine(), "D_IN") & ~0x01000000) | (m_p1_trig);
}
case 0x018:
{
UINT8 p1_x, p1_y, p2_x, p2_y;
- p1_x = input_port_read(space->machine(), "LIGHT_P1_X") & 0xff;
- p1_y = input_port_read(space->machine(), "LIGHT_P1_Y") & 0xff;
- p2_x = input_port_read(space->machine(), "LIGHT_P2_X") & 0xff;
- p2_y = input_port_read(space->machine(), "LIGHT_P2_Y") & 0xff;
+ p1_x = input_port_read(machine(), "LIGHT_P1_X") & 0xff;
+ p1_y = input_port_read(machine(), "LIGHT_P1_Y") & 0xff;
+ p2_x = input_port_read(machine(), "LIGHT_P2_X") & 0xff;
+ p2_y = input_port_read(machine(), "LIGHT_P2_Y") & 0xff;
return p1_x<<24 | p1_y<<16 | p2_x<<8 | p2_y;
}
case 0x01c:
{
UINT8 p3_x, p3_y;
- p3_x = input_port_read(space->machine(), "LIGHT_P3_X") & 0xff;
- p3_y = input_port_read(space->machine(), "LIGHT_P3_Y") & 0xff;
+ p3_x = input_port_read(machine(), "LIGHT_P3_X") & 0xff;
+ p3_y = input_port_read(machine(), "LIGHT_P3_Y") & 0xff;
return p3_x<<24 | p3_y<<16 | p3_x<<8 | p3_y; //FIXME: see what's the right bank here when the trigger works
}
- case 0x600: return state->m_no_machine_error_code;
+ case 0x600: return m_no_machine_error_code;
}
- return state->m_dualport[offset];
+ return m_dualport[offset];
}
/* Roads Edge / Xtreme Rally */
-static READ32_HANDLER( racing_io_r )
+READ32_MEMBER(hng64_state::racing_io_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
switch (offset*4)
{
case 0x000:
{
- if(state->m_mcu_fake_time < 0x100)//i/o init
+ if(m_mcu_fake_time < 0x100)//i/o init
{
- state->m_mcu_fake_time++;
+ m_mcu_fake_time++;
return 0x400;
}
else
return 0x000;
}
- case 0x004: return input_port_read(space->machine(), "SYSTEM");
- case 0x008: return input_port_read(space->machine(), "P1_P2");
- case 0x600: return state->m_no_machine_error_code;
+ case 0x004: return input_port_read(machine(), "SYSTEM");
+ case 0x008: return input_port_read(machine(), "P1_P2");
+ case 0x600: return m_no_machine_error_code;
}
- return state->m_dualport[offset];
+ return m_dualport[offset];
}
-static READ32_HANDLER( hng64_dualport_r )
+READ32_MEMBER(hng64_state::hng64_dualport_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- //printf("dualport R %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(&space->device()));
+ //printf("dualport R %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(&space.device()));
/*
command table:
@@ -773,10 +763,10 @@ static READ32_HANDLER( hng64_dualport_r )
(*) 0x11 is followed by 0x0b if the latter is used, JVS-esque indirect/direct mode?
*/
- if (state->m_mcu_en == 0x0c)
- return state->m_dualport[offset];
+ if (m_mcu_en == 0x0c)
+ return m_dualport[offset];
- switch (state->m_mcu_type)
+ switch (m_mcu_type)
{
case FIGHT_MCU: return fight_io_r(space, offset,0xffffffff);
case SHOOT_MCU: return shoot_io_r(space, offset,0xffffffff);
@@ -784,7 +774,7 @@ static READ32_HANDLER( hng64_dualport_r )
case SAMSHO_MCU: return samsho_io_r(space, offset,0xffffffff);
}
- return state->m_dualport[offset];
+ return m_dualport[offset];
}
/*
@@ -797,12 +787,11 @@ Beast Busters 2 outputs (all at offset == 0x1c):
0x00004000 gun #3
*/
-static WRITE32_HANDLER( hng64_dualport_w )
+WRITE32_MEMBER(hng64_state::hng64_dualport_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- //printf("dualport WRITE %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(&space->device()));
- COMBINE_DATA (&state->m_dualport[offset]);
+ //printf("dualport WRITE %08x %08x (PC=%08x)\n", offset*4, hng64_dualport[offset], cpu_get_pc(&space.device()));
+ COMBINE_DATA (&m_dualport[offset]);
}
@@ -812,11 +801,10 @@ static WRITE32_HANDLER( hng64_dualport_w )
// <ElSemi> 30100000-3011ffff is framebuffer A0
// <ElSemi> 30120000-3013ffff is framebuffer A1
// <ElSemi> 30140000-3015ffff is ZBuffer A
-static READ32_HANDLER( hng64_3d_1_r )
+READ32_MEMBER(hng64_state::hng64_3d_1_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- return state->m_3d_1[offset];
+ return m_3d_1[offset];
}
#ifdef UNUSED_FUNCTION
@@ -826,26 +814,23 @@ WRITE32_HANDLER( hng64_3d_1_w )
}
#endif
-static READ32_HANDLER( hng64_3d_2_r )
+READ32_MEMBER(hng64_state::hng64_3d_2_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- return state->m_3d_2[offset];
+ return m_3d_2[offset];
}
-static WRITE32_HANDLER( hng64_3d_2_w )
+WRITE32_MEMBER(hng64_state::hng64_3d_2_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- COMBINE_DATA (&state->m_3d_1[offset]);
- COMBINE_DATA (&state->m_3d_2[offset]);
+ COMBINE_DATA (&m_3d_1[offset]);
+ COMBINE_DATA (&m_3d_2[offset]);
}
// The 3d 'display list'
-static WRITE32_HANDLER( dl_w )
+WRITE32_MEMBER(hng64_state::dl_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- UINT32 *hng64_dl = state->m_dl;
+ UINT32 *hng64_dl = m_dl;
int i;
UINT16 packet3d[16];
@@ -871,21 +856,21 @@ static WRITE32_HANDLER( dl_w )
}
// Send it off to the 3d subsystem.
- hng64_command3d(space->machine(), packet3d);
+ hng64_command3d(machine(), packet3d);
}
}
#if 0
-static READ32_HANDLER( dl_r )
+READ32_MEMBER(hng64_state::dl_r)
{
- //mame_printf_debug("dl R (%08x) : %x %x\n", cpu_get_pc(&space->device()), offset, hng64_dl[offset]);
- //usrintf_showmessage("dl R (%08x) : %x %x", cpu_get_pc(&space->device()), offset, hng64_dl[offset]);
+ //mame_printf_debug("dl R (%08x) : %x %x\n", cpu_get_pc(&space.device()), offset, hng64_dl[offset]);
+ //usrintf_showmessage("dl R (%08x) : %x %x", cpu_get_pc(&space.device()), offset, hng64_dl[offset]);
return hng64_dl[offset];
}
#endif
// Some kind of buffering of the display lists, or 'render current buffer' write?
-static WRITE32_HANDLER( dl_control_w )
+WRITE32_MEMBER(hng64_state::dl_control_w)
{
// printf("\n"); // Debug - ajg
// TODO: put this back in.
@@ -910,17 +895,16 @@ WRITE32_HANDLER( activate_3d_buffer )
#endif
// Transition Control memory.
-static WRITE32_HANDLER( tcram_w )
+WRITE32_MEMBER(hng64_state::tcram_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- UINT32 *hng64_tcram = state->m_tcram;
+ UINT32 *hng64_tcram = m_tcram;
COMBINE_DATA (&hng64_tcram[offset]);
if(offset == 0x02)
{
UINT16 min_x, min_y, max_x, max_y;
- rectangle visarea = space->machine().primary_screen->visible_area();
+ rectangle visarea = machine().primary_screen->visible_area();
min_x = (hng64_tcram[1] & 0xffff0000) >> 16;
min_y = (hng64_tcram[1] & 0x0000ffff) >> 0;
@@ -929,41 +913,38 @@ static WRITE32_HANDLER( tcram_w )
if(max_x == 0 || max_y == 0) // bail out if values are invalid, Fatal Fury WA sets this to disable the screen.
{
- state->m_screen_dis = 1;
+ m_screen_dis = 1;
return;
}
- state->m_screen_dis = 0;
+ m_screen_dis = 0;
visarea.set(min_x, min_x + max_x - 1, min_y, min_y + max_y - 1);
- space->machine().primary_screen->configure(HTOTAL, VTOTAL, visarea, space->machine().primary_screen->frame_period().attoseconds );
+ machine().primary_screen->configure(HTOTAL, VTOTAL, visarea, machine().primary_screen->frame_period().attoseconds );
}
}
-static READ32_HANDLER( tcram_r )
+READ32_MEMBER(hng64_state::tcram_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
//printf("Q1 R : %.8x %.8x\n", offset, hng64_tcram[offset]);
if(offset == 0x12)
- return input_port_read(space->machine(), "VBLANK");
+ return input_port_read(machine(), "VBLANK");
- return state->m_tcram[offset];
+ return m_tcram[offset];
}
/* Some games (namely sams64 after the title screen) tests bit 15 of this to be high,
unknown purpose (vblank? related to the display list?). */
-static READ32_HANDLER( unk_vreg_r )
+READ32_MEMBER(hng64_state::unk_vreg_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- return ++state->m_unk_vreg_toggle;
+ return ++m_unk_vreg_toggle;
}
-static WRITE32_HANDLER( hng64_soundram_w )
+WRITE32_MEMBER(hng64_state::hng64_soundram_w)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
UINT32 mem_mask32 = mem_mask;
UINT32 data32 = data;
@@ -972,26 +953,25 @@ static WRITE32_HANDLER( hng64_soundram_w )
data = FLIPENDIAN_INT16(data);
mem_mask = mem_mask32 >> 16;
mem_mask = FLIPENDIAN_INT16(mem_mask);
- COMBINE_DATA(&state->m_soundram[offset * 2 + 0]);
+ COMBINE_DATA(&m_soundram[offset * 2 + 0]);
data = data32 & 0xffff;
data = FLIPENDIAN_INT16(data);
mem_mask = mem_mask32 & 0xffff;
mem_mask = FLIPENDIAN_INT16(mem_mask);
- COMBINE_DATA(&state->m_soundram[offset * 2 + 1]);
+ COMBINE_DATA(&m_soundram[offset * 2 + 1]);
}
-static READ32_HANDLER( hng64_soundram_r )
+READ32_MEMBER(hng64_state::hng64_soundram_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- UINT16 datalo = state->m_soundram[offset * 2 + 0];
- UINT16 datahi = state->m_soundram[offset * 2 + 1];
+ UINT16 datalo = m_soundram[offset * 2 + 0];
+ UINT16 datahi = m_soundram[offset * 2 + 1];
return FLIPENDIAN_INT16(datahi) | (FLIPENDIAN_INT16(datalo) << 16);
}
/* The following is guesswork, needs confirmation with a test on the real board. */
-static WRITE32_HANDLER( hng64_sprite_clear_even_w )
+WRITE32_MEMBER(hng64_state::hng64_sprite_clear_even_w)
{
UINT32 spr_offs;
@@ -999,21 +979,21 @@ static WRITE32_HANDLER( hng64_sprite_clear_even_w )
if(ACCESSING_BITS_16_31)
{
- space->write_dword(0x20000000+0x00+0x00+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x08+0x00+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x10+0x00+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x18+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x00+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x08+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x10+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x18+0x00+spr_offs, 0x00000000);
}
if(ACCESSING_BITS_8_15)
{
- space->write_dword(0x20000000+0x00+0x20+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x08+0x20+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x10+0x20+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x18+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x00+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x08+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x10+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x18+0x20+spr_offs, 0x00000000);
}
}
-static WRITE32_HANDLER( hng64_sprite_clear_odd_w )
+WRITE32_MEMBER(hng64_state::hng64_sprite_clear_odd_w)
{
UINT32 spr_offs;
@@ -1021,17 +1001,17 @@ static WRITE32_HANDLER( hng64_sprite_clear_odd_w )
if(ACCESSING_BITS_16_31)
{
- space->write_dword(0x20000000+0x04+0x00+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x0c+0x00+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x14+0x00+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x1c+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x04+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x0c+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x14+0x00+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x1c+0x00+spr_offs, 0x00000000);
}
if(ACCESSING_BITS_0_15)
{
- space->write_dword(0x20000000+0x04+0x20+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x0c+0x20+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x14+0x20+spr_offs, 0x00000000);
- space->write_dword(0x20000000+0x1c+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x04+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x0c+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x14+0x20+spr_offs, 0x00000000);
+ space.write_dword(0x20000000+0x1c+0x20+spr_offs, 0x00000000);
}
}
@@ -1052,39 +1032,39 @@ static ADDRESS_MAP_START( hng_map, AS_PROGRAM, 32, hng64_state )
AM_RANGE(0x04000000, 0x05ffffff) AM_WRITENOP AM_ROM AM_REGION("user3", 0) AM_BASE(m_cart)
// Ports
- AM_RANGE(0x1f700000, 0x1f702fff) AM_READWRITE_LEGACY(hng64_sysregs_r, hng64_sysregs_w) AM_BASE(m_sysregs)
+ AM_RANGE(0x1f700000, 0x1f702fff) AM_READWRITE(hng64_sysregs_r, hng64_sysregs_w) AM_BASE(m_sysregs)
// SRAM. Coin data, Player Statistics, etc.
AM_RANGE(0x1F800000, 0x1F803fff) AM_RAM AM_SHARE("nvram")
// Dualport RAM
- AM_RANGE(0x1F808000, 0x1F8087ff) AM_READWRITE_LEGACY(hng64_dualport_r, hng64_dualport_w) AM_BASE(m_dualport)
+ AM_RANGE(0x1F808000, 0x1F8087ff) AM_READWRITE(hng64_dualport_r, hng64_dualport_w) AM_BASE(m_dualport)
// BIOS
AM_RANGE(0x1fc00000, 0x1fc7ffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0) AM_BASE(m_rombase)
// Video
AM_RANGE(0x20000000, 0x2000bfff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0x2000d800, 0x2000e3ff) AM_WRITE_LEGACY(hng64_sprite_clear_even_w)
- AM_RANGE(0x2000e400, 0x2000efff) AM_WRITE_LEGACY(hng64_sprite_clear_odd_w)
+ AM_RANGE(0x2000d800, 0x2000e3ff) AM_WRITE(hng64_sprite_clear_even_w)
+ AM_RANGE(0x2000e400, 0x2000efff) AM_WRITE(hng64_sprite_clear_odd_w)
AM_RANGE(0x20010000, 0x20010013) AM_RAM AM_BASE(m_spriteregs)
AM_RANGE(0x20100000, 0x2017ffff) AM_RAM_WRITE_LEGACY(hng64_videoram_w) AM_BASE(m_videoram) // Tilemap
AM_RANGE(0x20190000, 0x20190037) AM_RAM AM_BASE(m_videoregs)
- AM_RANGE(0x20200000, 0x20203fff) AM_RAM_WRITE_LEGACY(hng64_pal_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x20208000, 0x2020805f) AM_READWRITE_LEGACY(tcram_r, tcram_w) AM_BASE(m_tcram) // Transition Control
- AM_RANGE(0x20300000, 0x203001ff) AM_RAM_WRITE_LEGACY(dl_w) AM_BASE(m_dl) // 3d Display List
+ AM_RANGE(0x20200000, 0x20203fff) AM_RAM_WRITE(hng64_pal_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x20208000, 0x2020805f) AM_READWRITE(tcram_r, tcram_w) AM_BASE(m_tcram) // Transition Control
+ AM_RANGE(0x20300000, 0x203001ff) AM_RAM_WRITE(dl_w) AM_BASE(m_dl) // 3d Display List
// AM_RANGE(0x20300200, 0x20300213) AM_RAM_WRITE_LEGACY(xxxx) AM_BASE(m_xxxxxxxx) // 3d Display List Upload?
- AM_RANGE(0x20300214, 0x20300217) AM_WRITE_LEGACY(dl_control_w)
- AM_RANGE(0x20300218, 0x2030021b) AM_READ_LEGACY(unk_vreg_r)
+ AM_RANGE(0x20300214, 0x20300217) AM_WRITE(dl_control_w)
+ AM_RANGE(0x20300218, 0x2030021b) AM_READ(unk_vreg_r)
// 3d?
AM_RANGE(0x30000000, 0x3000002f) AM_RAM AM_BASE(m_3dregs)
- AM_RANGE(0x30100000, 0x3015ffff) AM_READWRITE_LEGACY(hng64_3d_1_r, hng64_3d_2_w) AM_BASE(m_3d_1) // 3D Display Buffer A
- AM_RANGE(0x30200000, 0x3025ffff) AM_READWRITE_LEGACY(hng64_3d_2_r, hng64_3d_2_w) AM_BASE(m_3d_2) // 3D Display Buffer B
+ AM_RANGE(0x30100000, 0x3015ffff) AM_READWRITE(hng64_3d_1_r, hng64_3d_2_w) AM_BASE(m_3d_1) // 3D Display Buffer A
+ AM_RANGE(0x30200000, 0x3025ffff) AM_READWRITE(hng64_3d_2_r, hng64_3d_2_w) AM_BASE(m_3d_2) // 3D Display Buffer B
// Sound
AM_RANGE(0x60000000, 0x601fffff) AM_RAM // Sound ??
- AM_RANGE(0x60200000, 0x603fffff) AM_READWRITE_LEGACY(hng64_soundram_r, hng64_soundram_w) // uploads the v53 sound program here, elsewhere on ss64-2
+ AM_RANGE(0x60200000, 0x603fffff) AM_READWRITE(hng64_soundram_r, hng64_soundram_w) // uploads the v53 sound program here, elsewhere on ss64-2
// These are sound ports of some sort
// AM_RANGE(0x68000000, 0x68000003) AM_WRITENOP // ??
@@ -1093,8 +1073,8 @@ static ADDRESS_MAP_START( hng_map, AS_PROGRAM, 32, hng64_state )
// AM_RANGE(0x6f000000, 0x6f000003) AM_WRITENOP // halt / reset line for the sound CPU
// Communications
- AM_RANGE(0xc0000000, 0xc0000fff) AM_READWRITE_LEGACY(hng64_com_r, hng64_com_w) AM_BASE(m_com_ram)
- AM_RANGE(0xc0001000, 0xc0001007) AM_READWRITE_LEGACY(hng64_com_share_r, hng64_com_share_w)
+ AM_RANGE(0xc0000000, 0xc0000fff) AM_READWRITE(hng64_com_r, hng64_com_w) AM_BASE(m_com_ram)
+ AM_RANGE(0xc0001000, 0xc0001007) AM_READWRITE(hng64_com_share_r, hng64_com_share_w)
/* 6e000000-6fffffff */
/* 80000000-81ffffff */
@@ -1189,11 +1169,11 @@ static void KL5C80_init(hng64_state *state)
hng64_com_mmu_mem[7] = 0xf0;
}
-static READ8_HANDLER( hng64_comm_memory_r )
+READ8_MEMBER(hng64_state::hng64_comm_memory_r)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
+ hng64_state *state = machine().driver_data<hng64_state>();
UINT32 physical_address = KL5C80_translate_address(state, offset);
- logerror("READING 0x%02x from 0x%04x (0x%05x)\n", state->m_com_virtual_mem[physical_address], offset, physical_address);
+ logerror("READING 0x%02x from 0x%04x (0x%05x)\n", m_com_virtual_mem[physical_address], offset, physical_address);
/* Custom "virtual" memory map */
if (physical_address >= 0x26000 && physical_address <= 0x28000)
@@ -1202,10 +1182,10 @@ static READ8_HANDLER( hng64_comm_memory_r )
}
- return state->m_com_virtual_mem[physical_address];
+ return m_com_virtual_mem[physical_address];
}
-static WRITE8_HANDLER( hng64_comm_memory_w )
+WRITE8_MEMBER(hng64_state::hng64_comm_memory_w)
{
// Write to both virtual and physical memory
// UINT32 physical_address = KL5C80_translate_address(offset);
@@ -1213,16 +1193,16 @@ static WRITE8_HANDLER( hng64_comm_memory_w )
}
/* KL5C80 I/O handlers */
-static WRITE8_HANDLER( hng64_comm_io_mmu )
+WRITE8_MEMBER(hng64_state::hng64_comm_io_mmu)
{
- hng64_state *state = space->machine().driver_data<hng64_state>();
- state->m_com_mmu_mem[offset] = data;
+ m_com_mmu_mem[offset] = data;
/* Debugging - you can't change A4 - the hardware doesn't let you */
- if (state->m_com_mmu_mem[7] != 0xf0 || ((state->m_com_mmu_mem[6] & 0xc0) != 0x00))
+ if (m_com_mmu_mem[7] != 0xf0 || ((m_com_mmu_mem[6] & 0xc0) != 0x00))
logerror("KL5C MMU error !!! Code is trying to change A4!\n");
+ hng64_state *state = machine().driver_data<hng64_state>();
logerror("COMM CPU MMU WRITE : ");
logerror("B : %02x %02x %02x %02x A : %03x %03x %03x %03x\n", KL5C_MMU_B(1), KL5C_MMU_B(2), KL5C_MMU_B(3), KL5C_MMU_B(4),
KL5C_MMU_A(1), KL5C_MMU_A(2), KL5C_MMU_A(3), KL5C_MMU_A(4));
@@ -1259,13 +1239,13 @@ WRITE8_HANDLER( hng64_comm_shared_w )
#endif
static ADDRESS_MAP_START( hng_comm_map, AS_PROGRAM, 8, hng64_state )
- AM_RANGE(0x0000,0xffff) AM_READWRITE_LEGACY(hng64_comm_memory_r, hng64_comm_memory_w )
+ AM_RANGE(0x0000,0xffff) AM_READWRITE(hng64_comm_memory_r, hng64_comm_memory_w )
ADDRESS_MAP_END
static ADDRESS_MAP_START( hng_comm_io_map, AS_IO, 8, hng64_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
/* Reserved for the KL5C80 internal hardware */
- AM_RANGE(0x00, 0x07) AM_WRITE_LEGACY(hng64_comm_io_mmu ) AM_BASE(m_com_mmu_mem)
+ AM_RANGE(0x00, 0x07) AM_WRITE(hng64_comm_io_mmu ) AM_BASE(m_com_mmu_mem)
// AM_RANGE(0x08,0x1f) AM_NOP /* Reserved */
// AM_RANGE(0x20,0x25) AM_READWRITE /* Timer/Counter B */ /* hng64 writes here */
// AM_RANGE(0x27,0x27) AM_NOP /* Reserved */
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 3c24e81716a..604e6fce3b4 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -245,9 +245,8 @@ static INTERRUPT_GEN( upd7807_irq )
********************************************************************************/
-static READ8_HANDLER( mrokumei_keyboard_r )
+READ8_MEMBER(homedata_state::mrokumei_keyboard_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
int res = 0x3f,i;
static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4" };
@@ -256,9 +255,9 @@ static READ8_HANDLER( mrokumei_keyboard_r )
{
for (i = 0; i < 5; i++)
{
- if (state->m_keyb & (1 << i))
+ if (m_keyb & (1 << i))
{
- res = input_port_read(space->machine(), keynames[i]) & 0x3f;
+ res = input_port_read(machine(), keynames[i]) & 0x3f;
break;
}
}
@@ -270,61 +269,56 @@ static READ8_HANDLER( mrokumei_keyboard_r )
* bit 6: vblank
* other bits are inputs
*/
- res |= state->m_visible_page << 7;
+ res |= m_visible_page << 7;
- if (state->m_vblank)
+ if (m_vblank)
res |= 0x40;
- state->m_vblank = 0;
+ m_vblank = 0;
}
return res;
}
-static WRITE8_HANDLER( mrokumei_keyboard_select_w )
+WRITE8_MEMBER(homedata_state::mrokumei_keyboard_select_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_keyb = data;
+ m_keyb = data;
}
-static READ8_HANDLER( mrokumei_sound_io_r )
+READ8_MEMBER(homedata_state::mrokumei_sound_io_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- if (state->m_sndbank & 4)
+ if (m_sndbank & 4)
return(soundlatch_r(space, 0));
else
- return space->machine().region("audiocpu")->base()[0x10000 + offset + (state->m_sndbank & 1) * 0x10000];
+ return machine().region("audiocpu")->base()[0x10000 + offset + (m_sndbank & 1) * 0x10000];
}
-static WRITE8_HANDLER( mrokumei_sound_bank_w )
+WRITE8_MEMBER(homedata_state::mrokumei_sound_bank_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
/* bit 0 = ROM bank
bit 2 = ROM or soundlatch
*/
- state->m_sndbank = data;
+ m_sndbank = data;
}
-static WRITE8_HANDLER( mrokumei_sound_io_w )
+WRITE8_MEMBER(homedata_state::mrokumei_sound_io_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
switch (offset & 0xff)
{
case 0x40:
- dac_signed_data_w(state->m_dac, data);
+ dac_signed_data_w(m_dac, data);
break;
default:
- logerror("%04x: I/O write to port %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: I/O write to port %04x\n", cpu_get_pc(&space.device()), offset);
break;
}
}
-static WRITE8_HANDLER( mrokumei_sound_cmd_w )
+WRITE8_MEMBER(homedata_state::mrokumei_sound_cmd_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
@@ -336,21 +330,18 @@ static WRITE8_HANDLER( mrokumei_sound_cmd_w )
********************************************************************************/
-static READ8_HANDLER( reikaids_upd7807_porta_r )
+READ8_MEMBER(homedata_state::reikaids_upd7807_porta_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- return state->m_upd7807_porta;
+ return m_upd7807_porta;
}
-static WRITE8_HANDLER( reikaids_upd7807_porta_w )
+WRITE8_MEMBER(homedata_state::reikaids_upd7807_porta_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_upd7807_porta = data;
+ m_upd7807_porta = data;
}
-static WRITE8_HANDLER( reikaids_upd7807_portc_w )
+WRITE8_MEMBER(homedata_state::reikaids_upd7807_portc_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
/* port C layout:
7 coin counter
@@ -362,51 +353,48 @@ static WRITE8_HANDLER( reikaids_upd7807_portc_w )
1 \ ROM bank
0 /
*/
-// logerror("%04x: port C wr %02x (STATUS %d DATA %d)\n", cpu_get_pc(&space->device()), data, BIT(data, 2), BIT(data, 6));
+// logerror("%04x: port C wr %02x (STATUS %d DATA %d)\n", cpu_get_pc(&space.device()), data, BIT(data, 2), BIT(data, 6));
- memory_set_bank(space->machine(), "bank2", data & 0x03);
+ memory_set_bank(machine(), "bank2", data & 0x03);
- coin_counter_w(space->machine(), 0, ~data & 0x80);
+ coin_counter_w(machine(), 0, ~data & 0x80);
- if (BIT(state->m_upd7807_portc, 5) && !BIT(data, 5)) /* write clock 1->0 */
- ym2203_w(state->m_ym, BIT(data, 3), state->m_upd7807_porta);
+ if (BIT(m_upd7807_portc, 5) && !BIT(data, 5)) /* write clock 1->0 */
+ ym2203_w(m_ym, BIT(data, 3), m_upd7807_porta);
- if (BIT(state->m_upd7807_portc, 4) && !BIT(data, 4)) /* read clock 1->0 */
- state->m_upd7807_porta = ym2203_r(state->m_ym, BIT(data, 3));
+ if (BIT(m_upd7807_portc, 4) && !BIT(data, 4)) /* read clock 1->0 */
+ m_upd7807_porta = ym2203_r(m_ym, BIT(data, 3));
- state->m_upd7807_portc = data;
+ m_upd7807_portc = data;
}
-static READ8_HANDLER( reikaids_io_r )
+READ8_MEMBER(homedata_state::reikaids_io_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- int res = input_port_read(space->machine(), "IN2"); // bit 4 = coin, bit 5 = service
+ int res = input_port_read(machine(), "IN2"); // bit 4 = coin, bit 5 = service
- res |= BIT(state->m_upd7807_portc, 2) * 0x01; // bit 0 = upd7807 status
- res |= BIT(state->m_upd7807_portc, 6) * 0x02; // bit 1 = upd7807 data
- if (state->m_vblank)
+ res |= BIT(m_upd7807_portc, 2) * 0x01; // bit 0 = upd7807 status
+ res |= BIT(m_upd7807_portc, 6) * 0x02; // bit 1 = upd7807 data
+ if (m_vblank)
res |= 0x04; // bit 2 = vblank
- res |= state->m_visible_page * 0x08; // bit 3 = visible page
+ res |= m_visible_page * 0x08; // bit 3 = visible page
- state->m_vblank = 0;
+ m_vblank = 0;
- //logerror("%04x: io_r %02x\n", cpu_get_pc(&space->device()), res);
+ //logerror("%04x: io_r %02x\n", cpu_get_pc(&space.device()), res);
return res;
}
-static READ8_HANDLER( reikaids_snd_command_r )
+READ8_MEMBER(homedata_state::reikaids_snd_command_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- //logerror("%04x: sndmcd_r (%02x)\n", cpu_get_pc(&space->device()), state->m_snd_command);
- return state->m_snd_command;
+ //logerror("%04x: sndmcd_r (%02x)\n", cpu_get_pc(&space.device()), m_snd_command);
+ return m_snd_command;
}
-static WRITE8_HANDLER( reikaids_snd_command_w )
+WRITE8_MEMBER(homedata_state::reikaids_snd_command_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_snd_command = data;
- //logerror("%04x: coprocessor_command_w %02x\n", cpu_get_pc(&space->device()), data);
+ m_snd_command = data;
+ //logerror("%04x: coprocessor_command_w %02x\n", cpu_get_pc(&space.device()), data);
}
@@ -418,89 +406,81 @@ static WRITE8_HANDLER( reikaids_snd_command_w )
********************************************************************************/
-static WRITE8_HANDLER( pteacher_snd_command_w )
+WRITE8_MEMBER(homedata_state::pteacher_snd_command_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- //logerror("%04x: snd_command_w %02x\n", cpu_get_pc(&space->device()), data);
- state->m_from_cpu = data;
+ //logerror("%04x: snd_command_w %02x\n", cpu_get_pc(&space.device()), data);
+ m_from_cpu = data;
}
-static READ8_HANDLER( pteacher_snd_r )
+READ8_MEMBER(homedata_state::pteacher_snd_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- //logerror("%04x: pteacher_snd_r %02x\n",cpu_get_pc(&space->device()),to_cpu);
- return state->m_to_cpu;
+ //logerror("%04x: pteacher_snd_r %02x\n",cpu_get_pc(&space.device()),to_cpu);
+ return m_to_cpu;
}
-static READ8_HANDLER( pteacher_io_r )
+READ8_MEMBER(homedata_state::pteacher_io_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
/* bit 6: !vblank
* bit 7: visible page
* other bits seem unused
*/
- int res = (state->m_visible_page ^ 1) << 7;
+ int res = (m_visible_page ^ 1) << 7;
- if (!state->m_vblank)
+ if (!m_vblank)
res |= 0x40;
- state->m_vblank = 0;
+ m_vblank = 0;
return res;
}
-static READ8_HANDLER( pteacher_keyboard_r )
+READ8_MEMBER(homedata_state::pteacher_keyboard_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5" };
- int dips = input_port_read(space->machine(), "DSW");
+ int dips = input_port_read(machine(), "DSW");
- // logerror("%04x: keyboard_r with port A = %02x\n",cpu_get_pc(&space->device()),upd7807_porta);
+ // logerror("%04x: keyboard_r with port A = %02x\n",cpu_get_pc(&space.device()),upd7807_porta);
- if (state->m_upd7807_porta & 0x80)
+ if (m_upd7807_porta & 0x80)
{
/* player 1 + dip switches */
- int row = (state->m_upd7807_porta & 0x07);
- return input_port_read(space->machine(), keynames[row]) | (((dips >> row) & 1) << 5); // 0-5
+ int row = (m_upd7807_porta & 0x07);
+ return input_port_read(machine(), keynames[row]) | (((dips >> row) & 1) << 5); // 0-5
}
- if (state->m_upd7807_porta & 0x08)
+ if (m_upd7807_porta & 0x08)
{
/* player 2 (not supported) + dip switches */
- int row = ((state->m_upd7807_porta >> 4) & 0x07);
+ int row = ((m_upd7807_porta >> 4) & 0x07);
return 0xdf | (((dips >> (row + 5)) & 1) << 5); // 6-11
}
return 0xff;
}
-static READ8_HANDLER( pteacher_upd7807_porta_r )
+READ8_MEMBER(homedata_state::pteacher_upd7807_porta_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- if (!BIT(state->m_upd7807_portc, 6))
- state->m_upd7807_porta = state->m_from_cpu;
+ if (!BIT(m_upd7807_portc, 6))
+ m_upd7807_porta = m_from_cpu;
else
- logerror("%04x: read PA with PC *not* clear\n", cpu_get_pc(&space->device()));
+ logerror("%04x: read PA with PC *not* clear\n", cpu_get_pc(&space.device()));
- return state->m_upd7807_porta;
+ return m_upd7807_porta;
}
-static WRITE8_HANDLER( pteacher_snd_answer_w )
+WRITE8_MEMBER(homedata_state::pteacher_snd_answer_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_to_cpu = data;
- //logerror("%04x: to_cpu = %02x\n", cpu_get_pc(&space->device()), state->m_to_cpu);
+ m_to_cpu = data;
+ //logerror("%04x: to_cpu = %02x\n", cpu_get_pc(&space.device()), m_to_cpu);
}
-static WRITE8_HANDLER( pteacher_upd7807_porta_w )
+WRITE8_MEMBER(homedata_state::pteacher_upd7807_porta_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_upd7807_porta = data;
+ m_upd7807_porta = data;
}
-static WRITE8_HANDLER( pteacher_upd7807_portc_w )
+WRITE8_MEMBER(homedata_state::pteacher_upd7807_portc_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
/* port C layout:
7 coin counter
6 enable message from main CPU on port A
@@ -512,30 +492,30 @@ static WRITE8_HANDLER( pteacher_upd7807_portc_w )
0 input (coin)
*/
- // logerror("%04x: port C wr %02x\n", cpu_get_pc(&space->device()), data);
+ // logerror("%04x: port C wr %02x\n", cpu_get_pc(&space.device()), data);
- memory_set_bank(space->machine(), "bank2", (data & 0x0c) >> 2);
+ memory_set_bank(machine(), "bank2", (data & 0x0c) >> 2);
- coin_counter_w(space->machine(), 0, ~data & 0x80);
+ coin_counter_w(machine(), 0, ~data & 0x80);
- if (BIT(state->m_upd7807_portc, 5) && !BIT(data, 5)) /* clock 1->0 */
- sn76496_w(state->m_sn, 0, state->m_upd7807_porta);
+ if (BIT(m_upd7807_portc, 5) && !BIT(data, 5)) /* clock 1->0 */
+ sn76496_w(m_sn, 0, m_upd7807_porta);
- state->m_upd7807_portc = data;
+ m_upd7807_portc = data;
}
/********************************************************************************/
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(homedata_state::bankswitch_w)
{
- int last_bank = (space->machine().region("maincpu")->bytes() - 0x10000) / 0x4000;
+ int last_bank = (machine().region("maincpu")->bytes() - 0x10000) / 0x4000;
/* last bank is fixed and is #0 for us, other banks start from #1 (hence data+1 below)*/
if (data < last_bank)
- memory_set_bank(space->machine(), "bank1", data + 1);
+ memory_set_bank(machine(), "bank1", data + 1);
else
- memory_set_bank(space->machine(), "bank1", 0);
+ memory_set_bank(machine(), "bank1", 0);
}
@@ -548,15 +528,15 @@ static ADDRESS_MAP_START( mrokumei_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work ram */
AM_RANGE(0x7000, 0x77ff) AM_RAM /* hourouki expects this to act as RAM */
AM_RANGE(0x7800, 0x7800) AM_RAM /* only used to store the result of the ROM check */
- AM_RANGE(0x7801, 0x7802) AM_READ_LEGACY(mrokumei_keyboard_r) // also vblank and active page
+ AM_RANGE(0x7801, 0x7802) AM_READ(mrokumei_keyboard_r) // also vblank and active page
AM_RANGE(0x7803, 0x7803) AM_READ_PORT("IN0") // coin, service
AM_RANGE(0x7804, 0x7804) AM_READ_PORT("DSW1") // DSW1
AM_RANGE(0x7805, 0x7805) AM_READ_PORT("DSW2") // DSW2
AM_RANGE(0x7ff0, 0x7ffd) AM_WRITEONLY AM_BASE(m_vreg)
AM_RANGE(0x7ffe, 0x7ffe) AM_READNOP // ??? read every vblank, value discarded
AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(mrokumei_blitter_start_w) // in some games also ROM bank switch to access service ROM
- AM_RANGE(0x8001, 0x8001) AM_WRITE_LEGACY(mrokumei_keyboard_select_w)
- AM_RANGE(0x8002, 0x8002) AM_WRITE_LEGACY(mrokumei_sound_cmd_w)
+ AM_RANGE(0x8001, 0x8001) AM_WRITE(mrokumei_keyboard_select_w)
+ AM_RANGE(0x8002, 0x8002) AM_WRITE(mrokumei_sound_cmd_w)
AM_RANGE(0x8003, 0x8003) AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
AM_RANGE(0x8006, 0x8006) AM_WRITE_LEGACY(homedata_blitter_param_w)
AM_RANGE(0x8007, 0x8007) AM_WRITE_LEGACY(mrokumei_blitter_bank_w)
@@ -566,12 +546,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mrokumei_sound_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xfffc, 0xfffd) AM_WRITENOP /* stack writes happen here, but there's no RAM */
- AM_RANGE(0x8080, 0x8080) AM_WRITE_LEGACY(mrokumei_sound_bank_w)
+ AM_RANGE(0x8080, 0x8080) AM_WRITE(mrokumei_sound_bank_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mrokumei_sound_io_map, AS_IO, 8, homedata_state )
- AM_RANGE(0x0000, 0xffff) AM_READWRITE_LEGACY(mrokumei_sound_io_r, mrokumei_sound_io_w) /* read address is 16-bit, write address is only 8-bit */
+ AM_RANGE(0x0000, 0xffff) AM_READWRITE(mrokumei_sound_io_r, mrokumei_sound_io_w) /* read address is 16-bit, write address is only 8-bit */
ADDRESS_MAP_END
/********************************************************************************/
@@ -583,12 +563,12 @@ static ADDRESS_MAP_START( reikaids_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x7800, 0x7800) AM_RAM /* behaves as normal RAM */
AM_RANGE(0x7801, 0x7801) AM_READ_PORT("IN0")
AM_RANGE(0x7802, 0x7802) AM_READ_PORT("IN1")
- AM_RANGE(0x7803, 0x7803) AM_READ_LEGACY(reikaids_io_r) // coin, blitter, upd7807
+ AM_RANGE(0x7803, 0x7803) AM_READ(reikaids_io_r) // coin, blitter, upd7807
AM_RANGE(0x7ff0, 0x7ffd) AM_WRITEONLY AM_BASE(m_vreg)
AM_RANGE(0x7ffe, 0x7ffe) AM_WRITE_LEGACY(reikaids_blitter_bank_w)
AM_RANGE(0x7fff, 0x7fff) AM_WRITE_LEGACY(reikaids_blitter_start_w)
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(bankswitch_w)
- AM_RANGE(0x8002, 0x8002) AM_WRITE_LEGACY(reikaids_snd_command_w)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(bankswitch_w)
+ AM_RANGE(0x8002, 0x8002) AM_WRITE(reikaids_snd_command_w)
AM_RANGE(0x8005, 0x8005) AM_WRITE_LEGACY(reikaids_gfx_bank_w)
AM_RANGE(0x8006, 0x8006) AM_WRITE_LEGACY(homedata_blitter_param_w)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@@ -601,10 +581,10 @@ static ADDRESS_MAP_START( reikaids_upd7807_map, AS_PROGRAM, 8, homedata_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( reikaids_upd7807_io_map, AS_IO, 8, homedata_state )
- AM_RANGE(UPD7807_PORTA, UPD7807_PORTA) AM_READWRITE_LEGACY(reikaids_upd7807_porta_r, reikaids_upd7807_porta_w)
+ AM_RANGE(UPD7807_PORTA, UPD7807_PORTA) AM_READWRITE(reikaids_upd7807_porta_r, reikaids_upd7807_porta_w)
AM_RANGE(UPD7807_PORTB, UPD7807_PORTB) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
- AM_RANGE(UPD7807_PORTC, UPD7807_PORTC) AM_WRITE_LEGACY(reikaids_upd7807_portc_w)
- AM_RANGE(UPD7807_PORTT, UPD7807_PORTT) AM_READ_LEGACY(reikaids_snd_command_r)
+ AM_RANGE(UPD7807_PORTC, UPD7807_PORTC) AM_WRITE(reikaids_upd7807_portc_w)
+ AM_RANGE(UPD7807_PORTT, UPD7807_PORTT) AM_READ(reikaids_snd_command_r)
ADDRESS_MAP_END
/**************************************************************************/
@@ -616,12 +596,12 @@ static ADDRESS_MAP_START( pteacher_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x5f00, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work ram */
AM_RANGE(0x7800, 0x7800) AM_RAM /* behaves as normal RAM */
- AM_RANGE(0x7801, 0x7801) AM_READ_LEGACY(pteacher_io_r) // vblank, visible page
- AM_RANGE(0x7ff2, 0x7ff2) AM_READ_LEGACY(pteacher_snd_r)
+ AM_RANGE(0x7801, 0x7801) AM_READ(pteacher_io_r) // vblank, visible page
+ AM_RANGE(0x7ff2, 0x7ff2) AM_READ(pteacher_snd_r)
AM_RANGE(0x7ff0, 0x7ffd) AM_WRITEONLY AM_BASE(m_vreg)
AM_RANGE(0x7fff, 0x7fff) AM_WRITE_LEGACY(pteacher_blitter_start_w)
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(bankswitch_w)
- AM_RANGE(0x8002, 0x8002) AM_WRITE_LEGACY(pteacher_snd_command_w)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(bankswitch_w)
+ AM_RANGE(0x8002, 0x8002) AM_WRITE(pteacher_snd_command_w)
AM_RANGE(0x8005, 0x8005) AM_WRITE_LEGACY(pteacher_blitter_bank_w)
AM_RANGE(0x8006, 0x8006) AM_WRITE_LEGACY(homedata_blitter_param_w)
AM_RANGE(0x8007, 0x8007) AM_WRITE_LEGACY(pteacher_gfx_bank_w)
@@ -630,16 +610,16 @@ static ADDRESS_MAP_START( pteacher_map, AS_PROGRAM, 8, homedata_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( pteacher_upd7807_map, AS_PROGRAM, 8, homedata_state )
- AM_RANGE(0x0000, 0x0000) AM_WRITE_LEGACY(pteacher_snd_answer_w)
+ AM_RANGE(0x0000, 0x0000) AM_WRITE(pteacher_snd_answer_w)
AM_RANGE(0x0000, 0xfeff) AM_ROMBANK("bank2") /* External ROM (Banked) */
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
ADDRESS_MAP_END
static ADDRESS_MAP_START( pteacher_upd7807_io_map, AS_IO, 8, homedata_state )
- AM_RANGE(UPD7807_PORTA, UPD7807_PORTA) AM_READWRITE_LEGACY(pteacher_upd7807_porta_r, pteacher_upd7807_porta_w)
+ AM_RANGE(UPD7807_PORTA, UPD7807_PORTA) AM_READWRITE(pteacher_upd7807_porta_r, pteacher_upd7807_porta_w)
AM_RANGE(UPD7807_PORTB, UPD7807_PORTB) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
- AM_RANGE(UPD7807_PORTC, UPD7807_PORTC) AM_READ_PORT("COIN") AM_WRITE_LEGACY(pteacher_upd7807_portc_w)
- AM_RANGE(UPD7807_PORTT, UPD7807_PORTT) AM_READ_LEGACY(pteacher_keyboard_r)
+ AM_RANGE(UPD7807_PORTC, UPD7807_PORTC) AM_READ_PORT("COIN") AM_WRITE(pteacher_upd7807_portc_w)
+ AM_RANGE(UPD7807_PORTT, UPD7807_PORTT) AM_READ(pteacher_keyboard_r)
ADDRESS_MAP_END
/**************************************************************************/
@@ -1225,7 +1205,7 @@ static MACHINE_RESET( pteacher )
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
/* on reset, ports are set as input (high impedance), therefore 0xff output */
- pteacher_upd7807_portc_w(space, 0, 0xff);
+ state->pteacher_upd7807_portc_w(*space, 0, 0xff);
MACHINE_RESET_CALL(homedata);
@@ -1242,7 +1222,7 @@ static MACHINE_RESET( reikaids )
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
/* on reset, ports are set as input (high impedance), therefore 0xff output */
- reikaids_upd7807_portc_w(space, 0, 0xff);
+ state->reikaids_upd7807_portc_w(*space, 0, 0xff);
MACHINE_RESET_CALL(homedata);
@@ -1444,17 +1424,15 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, homedata_state )
ADDRESS_MAP_END
-static READ8_HANDLER( mirderby_prot_r )
+READ8_MEMBER(homedata_state::mirderby_prot_r)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_prot_data&=0x7f;
- return state->m_prot_data++;
+ m_prot_data&=0x7f;
+ return m_prot_data++;
}
-static WRITE8_HANDLER( mirderby_prot_w )
+WRITE8_MEMBER(homedata_state::mirderby_prot_w)
{
- homedata_state *state = space->machine().driver_data<homedata_state>();
- state->m_prot_data = data;
+ m_prot_data = data;
}
@@ -1463,7 +1441,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, homedata_state )
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x6fff) AM_RAM /* work ram */
AM_RANGE(0x7000, 0x77ff) AM_RAM
- AM_RANGE(0x7800, 0x7800) AM_READWRITE_LEGACY(mirderby_prot_r, mirderby_prot_w) // protection check? (or sound comms?)
+ AM_RANGE(0x7800, 0x7800) AM_READWRITE(mirderby_prot_r, mirderby_prot_w) // protection check? (or sound comms?)
AM_RANGE(0x7ffe, 0x7ffe) AM_READNOP //watchdog
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -2035,8 +2013,9 @@ static DRIVER_INIT( jogakuen )
static DRIVER_INIT( mjikaga )
{
/* Mahjong Ikagadesuka is different as well. */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x7802, 0x7802, FUNC(pteacher_snd_r));
- machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0123, 0x0123, FUNC(pteacher_snd_answer_w));
+ homedata_state *state = machine.driver_data<homedata_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x7802, 0x7802, read8_delegate(FUNC(homedata_state::pteacher_snd_r),state));
+ machine.device("audiocpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0123, 0x0123, write8_delegate(FUNC(homedata_state::pteacher_snd_answer_w),state));
}
static DRIVER_INIT( reikaids )
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index 5f6057e6130..268aa9d5e8b 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -21,16 +21,15 @@ Based on drivers from Juno First emulator by Chris Hardy (chrish@kcbbs.gen.nz)
#include "includes/hyperspt.h"
-static WRITE8_HANDLER( hyperspt_coin_counter_w )
+WRITE8_MEMBER(hyperspt_state::hyperspt_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(hyperspt_state::irq_mask_w)
{
- hyperspt_state *state = space->machine().driver_data<hyperspt_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( hyperspt_map, AS_PROGRAM, 8, hyperspt_state )
@@ -39,8 +38,8 @@ static ADDRESS_MAP_START( hyperspt_map, AS_PROGRAM, 8, hyperspt_state )
AM_RANGE(0x1400, 0x1400) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1480, 0x1480) AM_WRITE_LEGACY(hyperspt_flipscreen_w)
AM_RANGE(0x1481, 0x1481) AM_WRITE_LEGACY(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x1483, 0x1484) AM_WRITE_LEGACY(hyperspt_coin_counter_w)
- AM_RANGE(0x1487, 0x1487) AM_WRITE_LEGACY(irq_mask_w) /* Interrupt enable */
+ AM_RANGE(0x1483, 0x1484) AM_WRITE(hyperspt_coin_counter_w)
+ AM_RANGE(0x1487, 0x1487) AM_WRITE(irq_mask_w) /* Interrupt enable */
AM_RANGE(0x1500, 0x1500) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x1600, 0x1600) AM_READ_PORT("DSW2")
AM_RANGE(0x1680, 0x1680) AM_READ_PORT("SYSTEM")
@@ -60,8 +59,8 @@ static ADDRESS_MAP_START( roadf_map, AS_PROGRAM, 8, hyperspt_state )
AM_RANGE(0x1400, 0x1400) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1480, 0x1480) AM_WRITE_LEGACY(hyperspt_flipscreen_w)
AM_RANGE(0x1481, 0x1481) AM_WRITE_LEGACY(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x1483, 0x1484) AM_WRITE_LEGACY(hyperspt_coin_counter_w)
- AM_RANGE(0x1487, 0x1487) AM_WRITE_LEGACY(irq_mask_w) /* Interrupt enable */
+ AM_RANGE(0x1483, 0x1484) AM_WRITE(hyperspt_coin_counter_w)
+ AM_RANGE(0x1487, 0x1487) AM_WRITE(irq_mask_w) /* Interrupt enable */
AM_RANGE(0x1500, 0x1500) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x1600, 0x1600) AM_READ_PORT("DSW2")
AM_RANGE(0x1680, 0x1680) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index 52dd904b33a..d864ee9c4a0 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -78,111 +78,104 @@ static TIMER_DEVICE_CALLBACK( hyprduel_interrupt )
update_irq_state(timer.machine());
}
-static READ16_HANDLER( hyprduel_irq_cause_r )
+READ16_MEMBER(hyprduel_state::hyprduel_irq_cause_r)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- return state->m_requested_int;
+ return m_requested_int;
}
-static WRITE16_HANDLER( hyprduel_irq_cause_w )
+WRITE16_MEMBER(hyprduel_state::hyprduel_irq_cause_w)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
if (ACCESSING_BITS_0_7)
{
- if (data == state->m_int_num)
- state->m_requested_int &= ~(state->m_int_num & ~*state->m_irq_enable);
+ if (data == m_int_num)
+ m_requested_int &= ~(m_int_num & ~*m_irq_enable);
else
- state->m_requested_int &= ~(data & *state->m_irq_enable);
+ m_requested_int &= ~(data & *m_irq_enable);
- update_irq_state(space->machine());
+ update_irq_state(machine());
}
}
-static WRITE16_HANDLER( hyprduel_subcpu_control_w )
+WRITE16_MEMBER(hyprduel_state::hyprduel_subcpu_control_w)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
switch (data)
{
case 0x0d:
case 0x0f:
case 0x01:
- if (!state->m_subcpu_resetline)
+ if (!m_subcpu_resetline)
{
- device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, ASSERT_LINE);
- state->m_subcpu_resetline = 1;
+ device_set_input_line(m_subcpu, INPUT_LINE_RESET, ASSERT_LINE);
+ m_subcpu_resetline = 1;
}
break;
case 0x00:
- if (state->m_subcpu_resetline)
+ if (m_subcpu_resetline)
{
- device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, CLEAR_LINE);
- state->m_subcpu_resetline = 0;
+ device_set_input_line(m_subcpu, INPUT_LINE_RESET, CLEAR_LINE);
+ m_subcpu_resetline = 0;
}
- device_spin_until_interrupt(&space->device());
+ device_spin_until_interrupt(&space.device());
break;
case 0x0c:
case 0x80:
- device_set_input_line(state->m_subcpu, 2, HOLD_LINE);
+ device_set_input_line(m_subcpu, 2, HOLD_LINE);
break;
}
}
-static READ16_HANDLER( hyprduel_cpusync_trigger1_r )
+READ16_MEMBER(hyprduel_state::hyprduel_cpusync_trigger1_r)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- if (state->m_cpu_trigger == 1001)
+ if (m_cpu_trigger == 1001)
{
- space->machine().scheduler().trigger(1001);
- state->m_cpu_trigger = 0;
+ machine().scheduler().trigger(1001);
+ m_cpu_trigger = 0;
}
- return state->m_sharedram1[0x000408 / 2 + offset];
+ return m_sharedram1[0x000408 / 2 + offset];
}
-static WRITE16_HANDLER( hyprduel_cpusync_trigger1_w )
+WRITE16_MEMBER(hyprduel_state::hyprduel_cpusync_trigger1_w)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- COMBINE_DATA(&state->m_sharedram1[0x00040e / 2 + offset]);
+ COMBINE_DATA(&m_sharedram1[0x00040e / 2 + offset]);
- if (((state->m_sharedram1[0x00040e / 2] << 16) + state->m_sharedram1[0x000410 / 2]) != 0x00)
+ if (((m_sharedram1[0x00040e / 2] << 16) + m_sharedram1[0x000410 / 2]) != 0x00)
{
- if (!state->m_cpu_trigger && !state->m_subcpu_resetline)
+ if (!m_cpu_trigger && !m_subcpu_resetline)
{
- device_spin_until_trigger(&space->device(), 1001);
- state->m_cpu_trigger = 1001;
+ device_spin_until_trigger(&space.device(), 1001);
+ m_cpu_trigger = 1001;
}
}
}
-static READ16_HANDLER( hyprduel_cpusync_trigger2_r )
+READ16_MEMBER(hyprduel_state::hyprduel_cpusync_trigger2_r)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- if (state->m_cpu_trigger == 1002)
+ if (m_cpu_trigger == 1002)
{
- space->machine().scheduler().trigger(1002);
- state->m_cpu_trigger = 0;
+ machine().scheduler().trigger(1002);
+ m_cpu_trigger = 0;
}
- return state->m_sharedram3[(0xfff34c - 0xfe4000) / 2 + offset];
+ return m_sharedram3[(0xfff34c - 0xfe4000) / 2 + offset];
}
-static WRITE16_HANDLER( hyprduel_cpusync_trigger2_w )
+WRITE16_MEMBER(hyprduel_state::hyprduel_cpusync_trigger2_w)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- COMBINE_DATA(&state->m_sharedram1[0x000408 / 2 + offset]);
+ COMBINE_DATA(&m_sharedram1[0x000408 / 2 + offset]);
if (ACCESSING_BITS_8_15)
{
- if (!state->m_cpu_trigger && !state->m_subcpu_resetline)
+ if (!m_cpu_trigger && !m_subcpu_resetline)
{
- device_spin_until_trigger(&space->device(), 1002);
- state->m_cpu_trigger = 1002;
+ device_spin_until_trigger(&space.device(), 1002);
+ m_cpu_trigger = 1002;
}
}
}
@@ -206,13 +199,12 @@ static TIMER_CALLBACK( magerror_irq_callback )
that the blitter can readily use (which is a form of compression)
*/
-static READ16_HANDLER( hyprduel_bankedrom_r )
+READ16_MEMBER(hyprduel_state::hyprduel_bankedrom_r)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- UINT8 *ROM = space->machine().region("gfx1")->base();
- size_t len = space->machine().region("gfx1")->bytes();
+ UINT8 *ROM = machine().region("gfx1")->base();
+ size_t len = machine().region("gfx1")->bytes();
- offset = offset * 2 + 0x10000 * (*state->m_rombank);
+ offset = offset * 2 + 0x10000 * (*m_rombank);
if (offset < len)
return ((ROM[offset + 0] << 8) + ROM[offset + 1]);
@@ -288,24 +280,23 @@ INLINE void blt_write( address_space *space, const int tmap, const offs_t offs,
}
-static WRITE16_HANDLER( hyprduel_blitter_w )
+WRITE16_MEMBER(hyprduel_state::hyprduel_blitter_w)
{
- hyprduel_state *state = space->machine().driver_data<hyprduel_state>();
- COMBINE_DATA(&state->m_blitter_regs[offset]);
+ COMBINE_DATA(&m_blitter_regs[offset]);
if (offset == 0xc / 2)
{
- UINT8 *src = space->machine().region("gfx1")->base();
- size_t src_len = space->machine().region("gfx1")->bytes();
+ UINT8 *src = machine().region("gfx1")->base();
+ size_t src_len = machine().region("gfx1")->bytes();
- UINT32 tmap = (state->m_blitter_regs[0x00 / 2] << 16) + state->m_blitter_regs[0x02 / 2];
- UINT32 src_offs = (state->m_blitter_regs[0x04 / 2] << 16) + state->m_blitter_regs[0x06 / 2];
- UINT32 dst_offs = (state->m_blitter_regs[0x08 / 2] << 16) + state->m_blitter_regs[0x0a / 2];
+ UINT32 tmap = (m_blitter_regs[0x00 / 2] << 16) + m_blitter_regs[0x02 / 2];
+ UINT32 src_offs = (m_blitter_regs[0x04 / 2] << 16) + m_blitter_regs[0x06 / 2];
+ UINT32 dst_offs = (m_blitter_regs[0x08 / 2] << 16) + m_blitter_regs[0x0a / 2];
int shift = (dst_offs & 0x80) ? 0 : 8;
UINT16 mask = (dst_offs & 0x80) ? 0x00ff : 0xff00;
-// logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n", cpu_get_pc(&space->device()), tmap, src_offs, dst_offs);
+// logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n", cpu_get_pc(&space.device()), tmap, src_offs, dst_offs);
dst_offs >>= 7 + 1;
switch (tmap)
@@ -315,7 +306,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
case 3:
break;
default:
- logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n", cpu_get_pc(&space->device()), tmap);
+ logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n", cpu_get_pc(&space.device()), tmap);
return;
}
@@ -325,7 +316,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
src_offs %= src_len;
b1 = blt_read(src, src_offs);
-// logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n", cpu_get_pc(&space->device()), b1, src_offs);
+// logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n", cpu_get_pc(&space.device()), b1, src_offs);
src_offs++;
count = ((~b1) & 0x3f) + 1;
@@ -341,7 +332,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
another blit. */
if (b1 == 0)
{
- space->machine().scheduler().timer_set(attotime::from_usec(500), FUNC(hyprduel_blit_done));
+ machine().scheduler().timer_set(attotime::from_usec(500), FUNC(hyprduel_blit_done));
return;
}
@@ -353,7 +344,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
src_offs++;
dst_offs &= 0xffff;
- blt_write(space, tmap, dst_offs, b2, mask);
+ blt_write(&space, tmap, dst_offs, b2, mask);
dst_offs = ((dst_offs + 1) & (0x100 - 1)) | (dst_offs & (~(0x100 - 1)));
}
break;
@@ -369,7 +360,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
while (count--)
{
dst_offs &= 0xffff;
- blt_write(space, tmap, dst_offs, b2 << shift, mask);
+ blt_write(&space, tmap, dst_offs, b2 << shift, mask);
dst_offs = ((dst_offs + 1) & (0x100 - 1)) | (dst_offs & (~(0x100 - 1)));
b2++;
}
@@ -386,7 +377,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
while (count--)
{
dst_offs &= 0xffff;
- blt_write(space, tmap, dst_offs, b2, mask);
+ blt_write(&space, tmap, dst_offs, b2, mask);
dst_offs = ((dst_offs + 1) & (0x100 - 1)) | (dst_offs & (~(0x100 - 1)));
}
break;
@@ -399,7 +390,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
{
dst_offs += 0x100;
dst_offs &= ~(0x100 - 1);
- dst_offs |= (0x100 - 1) & (state->m_blitter_regs[0x0a / 2] >> (7 + 1));
+ dst_offs |= (0x100 - 1) & (m_blitter_regs[0x0a / 2] >> (7 + 1));
}
else
{
@@ -409,7 +400,7 @@ static WRITE16_HANDLER( hyprduel_blitter_w )
default:
- logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n", cpu_get_pc(&space->device()), b1, src_offs - 1);
+ logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n", cpu_get_pc(&space.device()), b1, src_offs - 1);
return;
}
@@ -427,24 +418,24 @@ static ADDRESS_MAP_START( hyprduel_map, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE_LEGACY(hyprduel_vram_0_w) AM_BASE(m_vram_0) /* Layer 0 */
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE_LEGACY(hyprduel_vram_1_w) AM_BASE(m_vram_1) /* Layer 1 */
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE_LEGACY(hyprduel_vram_2_w) AM_BASE(m_vram_2) /* Layer 2 */
- AM_RANGE(0x460000, 0x46ffff) AM_READ_LEGACY(hyprduel_bankedrom_r) /* Banked ROM */
+ AM_RANGE(0x460000, 0x46ffff) AM_READ(hyprduel_bankedrom_r) /* Banked ROM */
AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE_LEGACY(hyprduel_paletteram_w) AM_BASE(m_paletteram) /* Palette */
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Sprites */
AM_RANGE(0x475000, 0x477fff) AM_RAM /* only used memory test */
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) /* Tiles Set */
- AM_RANGE(0x478840, 0x47884d) AM_WRITE_LEGACY(hyprduel_blitter_w) AM_BASE(m_blitter_regs) /* Tiles Blitter */
+ AM_RANGE(0x478840, 0x47884d) AM_WRITE(hyprduel_blitter_w) AM_BASE(m_blitter_regs) /* Tiles Blitter */
AM_RANGE(0x478860, 0x47886b) AM_WRITE_LEGACY(hyprduel_window_w) AM_BASE(m_window) /* Tilemap Window */
AM_RANGE(0x478870, 0x47887b) AM_RAM_WRITE_LEGACY(hyprduel_scrollreg_w) AM_BASE(m_scroll) /* Scroll Regs */
AM_RANGE(0x47887c, 0x47887d) AM_WRITE_LEGACY(hyprduel_scrollreg_init_w)
AM_RANGE(0x478880, 0x478881) AM_WRITENOP
AM_RANGE(0x478890, 0x478891) AM_WRITENOP
AM_RANGE(0x4788a0, 0x4788a1) AM_WRITENOP
- AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE_LEGACY(hyprduel_irq_cause_r, hyprduel_irq_cause_w) /* IRQ Cause,Acknowledge */
+ AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(hyprduel_irq_cause_r, hyprduel_irq_cause_w) /* IRQ Cause,Acknowledge */
AM_RANGE(0x4788a4, 0x4788a5) AM_RAM AM_BASE(m_irq_enable) /* IRQ Enable */
AM_RANGE(0x4788aa, 0x4788ab) AM_RAM AM_BASE(m_rombank) /* Rom Bank */
AM_RANGE(0x4788ac, 0x4788ad) AM_RAM AM_BASE(m_screenctrl) /* Screen Control */
AM_RANGE(0x479700, 0x479713) AM_RAM AM_BASE(m_videoregs) /* Video Registers */
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(hyprduel_subcpu_control_w)
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(hyprduel_subcpu_control_w)
AM_RANGE(0xc00000, 0xc07fff) AM_RAM AM_SHARE("share1") AM_BASE(m_sharedram1)
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("SERVICE") AM_WRITENOP
AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW")
@@ -470,23 +461,23 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( magerror_map, AS_PROGRAM, 16, hyprduel_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(hyprduel_subcpu_control_w)
+ AM_RANGE(0x400000, 0x400001) AM_WRITE(hyprduel_subcpu_control_w)
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE_LEGACY(hyprduel_vram_0_w) AM_BASE(m_vram_0) /* Layer 0 */
AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE_LEGACY(hyprduel_vram_1_w) AM_BASE(m_vram_1) /* Layer 1 */
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE_LEGACY(hyprduel_vram_2_w) AM_BASE(m_vram_2) /* Layer 2 */
- AM_RANGE(0x860000, 0x86ffff) AM_READ_LEGACY(hyprduel_bankedrom_r) /* Banked ROM */
+ AM_RANGE(0x860000, 0x86ffff) AM_READ(hyprduel_bankedrom_r) /* Banked ROM */
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE_LEGACY(hyprduel_paletteram_w) AM_BASE(m_paletteram) /* Palette */
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Sprites */
AM_RANGE(0x875000, 0x877fff) AM_RAM /* only used memory test */
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) /* Tiles Set */
- AM_RANGE(0x878840, 0x87884d) AM_WRITE_LEGACY(hyprduel_blitter_w) AM_BASE(m_blitter_regs) /* Tiles Blitter */
+ AM_RANGE(0x878840, 0x87884d) AM_WRITE(hyprduel_blitter_w) AM_BASE(m_blitter_regs) /* Tiles Blitter */
AM_RANGE(0x878860, 0x87886b) AM_WRITE_LEGACY(hyprduel_window_w) AM_BASE(m_window) /* Tilemap Window */
AM_RANGE(0x878870, 0x87887b) AM_RAM_WRITE_LEGACY(hyprduel_scrollreg_w) AM_BASE(m_scroll) /* Scroll Regs */
AM_RANGE(0x87887c, 0x87887d) AM_WRITE_LEGACY(hyprduel_scrollreg_init_w)
AM_RANGE(0x878880, 0x878881) AM_WRITENOP
AM_RANGE(0x878890, 0x878891) AM_WRITENOP
AM_RANGE(0x8788a0, 0x8788a1) AM_WRITENOP
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE_LEGACY(hyprduel_irq_cause_r, hyprduel_irq_cause_w) /* IRQ Cause, Acknowledge */
+ AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(hyprduel_irq_cause_r, hyprduel_irq_cause_w) /* IRQ Cause, Acknowledge */
AM_RANGE(0x8788a4, 0x8788a5) AM_RAM AM_BASE(m_irq_enable) /* IRQ Enable */
AM_RANGE(0x8788aa, 0x8788ab) AM_RAM AM_BASE(m_rombank) /* Rom Bank */
AM_RANGE(0x8788ac, 0x8788ad) AM_RAM AM_BASE(m_screenctrl) /* Screen Control */
@@ -818,10 +809,10 @@ static DRIVER_INIT( hyprduel )
state->m_int_num = 0x02;
/* cpu synchronization (severe timings) */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc0040e, 0xc00411, FUNC(hyprduel_cpusync_trigger1_w));
- machine.device("sub")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00408, 0xc00409, FUNC(hyprduel_cpusync_trigger1_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00408, 0xc00409, FUNC(hyprduel_cpusync_trigger2_w));
- machine.device("sub")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xfff34c, 0xfff34d, FUNC(hyprduel_cpusync_trigger2_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc0040e, 0xc00411, write16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger1_w),state));
+ machine.device("sub")->memory().space(AS_PROGRAM)->install_read_handler(0xc00408, 0xc00409, read16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger1_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00408, 0xc00409, write16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger2_w),state));
+ machine.device("sub")->memory().space(AS_PROGRAM)->install_read_handler(0xfff34c, 0xfff34d, read16_delegate(FUNC(hyprduel_state::hyprduel_cpusync_trigger2_r),state));
}
static DRIVER_INIT( magerror )
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index 5d2a147efd6..2bbd24e647e 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -24,19 +24,18 @@ TODO:
*
*************************************/
-static READ8_HANDLER( ikki_e000_r )
+READ8_MEMBER(ikki_state::ikki_e000_r)
{
- ikki_state *state = space->machine().driver_data<ikki_state>();
/* bit1: interrupt type?, bit0: CPU2 busack? */
- return (state->m_irq_source << 1);
+ return (m_irq_source << 1);
}
-static WRITE8_HANDLER( ikki_coin_counters )
+WRITE8_MEMBER(ikki_state::ikki_coin_counters)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
/*************************************
@@ -50,14 +49,14 @@ static ADDRESS_MAP_START( ikki_cpu1, AS_PROGRAM, 8, ikki_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
- AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(ikki_e000_r)
+ AM_RANGE(0xe000, 0xe000) AM_READ(ikki_e000_r)
AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW1")
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("DSW2")
AM_RANGE(0xe003, 0xe003) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("P1")
AM_RANGE(0xe005, 0xe005) AM_READ_PORT("P2")
AM_RANGE(0xe008, 0xe008) AM_WRITE_LEGACY(ikki_scrn_ctrl_w)
- AM_RANGE(0xe009, 0xe009) AM_WRITE_LEGACY(ikki_coin_counters)
+ AM_RANGE(0xe009, 0xe009) AM_WRITE(ikki_coin_counters)
AM_RANGE(0xe00a, 0xe00b) AM_WRITEONLY AM_BASE(m_scroll)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index cde83a4a46d..1418a18ea16 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -81,30 +81,28 @@ TODO:
******************************************************************************/
-static WRITE16_HANDLER( inufuku_soundcommand_w )
+WRITE16_MEMBER(inufuku_state::inufuku_soundcommand_w)
{
- inufuku_state *state = space->machine().driver_data<inufuku_state>();
if (ACCESSING_BITS_0_7)
{
/* hack... sound doesn't work otherwise */
if (data == 0x08)
return;
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(inufuku_state::pending_command_clear_w)
{
- inufuku_state *state = space->machine().driver_data<inufuku_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
-static WRITE8_HANDLER( inufuku_soundrombank_w )
+WRITE8_MEMBER(inufuku_state::inufuku_soundrombank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
/******************************************************************************
@@ -140,7 +138,7 @@ static ADDRESS_MAP_START( inufuku_map, AS_PROGRAM, 16, inufuku_state )
AM_RANGE(0x18000a, 0x18000b) AM_READ_PORT("P3")
AM_RANGE(0x200000, 0x200001) AM_WRITE_PORT("EEPROMOUT")
- AM_RANGE(0x280000, 0x280001) AM_WRITE_LEGACY(inufuku_soundcommand_w) // sound command
+ AM_RANGE(0x280000, 0x280001) AM_WRITE(inufuku_soundcommand_w) // sound command
AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE_LEGACY(paletteram16_xGGGGGBBBBBRRRRR_word_w) AM_BASE_GENERIC(paletteram) // palette ram
AM_RANGE(0x380000, 0x3801ff) AM_WRITEONLY AM_BASE(m_bg_rasterram) // bg raster ram
@@ -172,8 +170,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( inufuku_sound_io_map, AS_IO, 8, inufuku_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(inufuku_soundrombank_w)
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(soundlatch_r, pending_command_clear_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(inufuku_soundrombank_w)
+ AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_r) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index a65dc26b906..76154e5941e 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -57,20 +57,18 @@ Grndtour:
#include "sound/2413intf.h"
-static WRITE8_HANDLER( iqblock_prot_w )
+WRITE8_MEMBER(iqblock_state::iqblock_prot_w)
{
- iqblock_state *state = space->machine().driver_data<iqblock_state>();
- state->m_rambase[0xe26] = data;
- state->m_rambase[0xe27] = data;
- state->m_rambase[0xe1c] = data;
+ m_rambase[0xe26] = data;
+ m_rambase[0xe27] = data;
+ m_rambase[0xe1c] = data;
}
-static WRITE8_HANDLER( grndtour_prot_w )
+WRITE8_MEMBER(iqblock_state::grndtour_prot_w)
{
- iqblock_state *state = space->machine().driver_data<iqblock_state>();
- state->m_rambase[0xe39] = data;
- state->m_rambase[0xe3a] = data;
- state->m_rambase[0xe2f] = data;
+ m_rambase[0xe39] = data;
+ m_rambase[0xe3a] = data;
+ m_rambase[0xe2f] = data;
}
@@ -90,14 +88,14 @@ static TIMER_DEVICE_CALLBACK( iqblock_irq )
}
-static WRITE8_HANDLER( iqblock_irqack_w )
+WRITE8_MEMBER(iqblock_state::iqblock_irqack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static READ8_HANDLER( extrarom_r )
+READ8_MEMBER(iqblock_state::extrarom_r)
{
- return space->machine().region("user1")->base()[offset];
+ return machine().region("user1")->base()[offset];
}
@@ -143,9 +141,9 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, iqblock_state )
AM_RANGE(0x5090, 0x5090) AM_READ_PORT("SW0")
AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("SW1")
AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) // UM3567_data_port_0_w
- AM_RANGE(0x50c0, 0x50c0) AM_WRITE_LEGACY(iqblock_irqack_w)
+ AM_RANGE(0x50c0, 0x50c0) AM_WRITE(iqblock_irqack_w)
AM_RANGE(0x7000, 0x7fff) AM_READ_LEGACY(iqblock_bgvideoram_r)
- AM_RANGE(0x8000, 0xffff) AM_READ_LEGACY(extrarom_r)
+ AM_RANGE(0x8000, 0xffff) AM_READ(extrarom_r)
ADDRESS_MAP_END
static INPUT_PORTS_START( iqblock )
@@ -449,7 +447,7 @@ static DRIVER_INIT( iqblock )
machine.generic.paletteram2.u8 = rom + 0x12800;
state->m_fgvideoram = rom + 0x16800;
state->m_bgvideoram = rom + 0x17000;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xfe26, 0xfe26, FUNC(iqblock_prot_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xfe26, 0xfe26, write8_delegate(FUNC(iqblock_state::iqblock_prot_w),state));
state->m_video_type=1;
}
@@ -472,7 +470,7 @@ static DRIVER_INIT( grndtour )
machine.generic.paletteram2.u8 = rom + 0x12800;
state->m_fgvideoram = rom + 0x16800;
state->m_bgvideoram = rom + 0x17000;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xfe39, 0xfe39, FUNC(grndtour_prot_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xfe39, 0xfe39, write8_delegate(FUNC(iqblock_state::grndtour_prot_w),state));
state->m_video_type=0;
}
diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c
index 62b09d2291d..0ed64422712 100644
--- a/src/mame/drivers/irobot.c
+++ b/src/mame/drivers/irobot.c
@@ -92,10 +92,9 @@
*
*************************************/
-static WRITE8_HANDLER( irobot_nvram_w )
+WRITE8_MEMBER(irobot_state::irobot_nvram_w)
{
- irobot_state *state = space->machine().driver_data<irobot_state>();
- state->m_nvram[offset] = data & 0x0f;
+ m_nvram[offset] = data & 0x0f;
}
@@ -106,15 +105,15 @@ static WRITE8_HANDLER( irobot_nvram_w )
*
*************************************/
-static WRITE8_HANDLER( irobot_clearirq_w )
+WRITE8_MEMBER(irobot_state::irobot_clearirq_w)
{
- cputag_set_input_line(space->machine(), "maincpu", M6809_IRQ_LINE ,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_IRQ_LINE ,CLEAR_LINE);
}
-static WRITE8_HANDLER( irobot_clearfirq_w )
+WRITE8_MEMBER(irobot_state::irobot_clearfirq_w)
{
- cputag_set_input_line(space->machine(), "maincpu", M6809_FIRQ_LINE ,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_FIRQ_LINE ,CLEAR_LINE);
}
@@ -132,16 +131,16 @@ static ADDRESS_MAP_START( irobot_map, AS_PROGRAM, 8, irobot_state )
AM_RANGE(0x1040, 0x1040) AM_READ_PORT("IN1")
AM_RANGE(0x1080, 0x1080) AM_READ_LEGACY(irobot_status_r)
AM_RANGE(0x10c0, 0x10c0) AM_READ_PORT("DSW1")
- AM_RANGE(0x1100, 0x1100) AM_WRITE_LEGACY(irobot_clearirq_w)
+ AM_RANGE(0x1100, 0x1100) AM_WRITE(irobot_clearirq_w)
AM_RANGE(0x1140, 0x1140) AM_WRITE_LEGACY(irobot_statwr_w)
AM_RANGE(0x1180, 0x1180) AM_WRITE_LEGACY(irobot_out0_w)
AM_RANGE(0x11c0, 0x11c0) AM_WRITE_LEGACY(irobot_rom_banksel_w)
- AM_RANGE(0x1200, 0x12ff) AM_RAM_WRITE_LEGACY(irobot_nvram_w) AM_SHARE("nvram")
+ AM_RANGE(0x1200, 0x12ff) AM_RAM_WRITE(irobot_nvram_w) AM_SHARE("nvram")
AM_RANGE(0x1300, 0x13ff) AM_READ_LEGACY(irobot_control_r)
AM_RANGE(0x1400, 0x143f) AM_READWRITE_LEGACY(quad_pokey_r, quad_pokey_w)
AM_RANGE(0x1800, 0x18ff) AM_WRITE_LEGACY(irobot_paletteram_w)
AM_RANGE(0x1900, 0x19ff) AM_WRITEONLY /* Watchdog reset */
- AM_RANGE(0x1a00, 0x1a00) AM_WRITE_LEGACY(irobot_clearfirq_w)
+ AM_RANGE(0x1a00, 0x1a00) AM_WRITE(irobot_clearfirq_w)
AM_RANGE(0x1b00, 0x1bff) AM_WRITE_LEGACY(irobot_control_w)
AM_RANGE(0x1c00, 0x1fff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(irobot_sharedmem_r, irobot_sharedmem_w)
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index a182820ee67..13e7bdabed7 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -37,11 +37,10 @@ static TIMER_DEVICE_CALLBACK( ironhors_irq )
}
}
-static WRITE8_HANDLER( ironhors_sh_irqtrigger_w )
+WRITE8_MEMBER(ironhors_state::ironhors_sh_irqtrigger_w)
{
- ironhors_state *state = space->machine().driver_data<ironhors_state>();
- device_set_input_line_and_vector(state->m_soundcpu, 0, HOLD_LINE, 0xff);
+ device_set_input_line_and_vector(m_soundcpu, 0, HOLD_LINE, 0xff);
}
static WRITE8_DEVICE_HANDLER( ironhors_filter_w )
@@ -66,7 +65,7 @@ static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0040, 0x005f) AM_RAM
AM_RANGE(0x0060, 0x00df) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x0900, 0x0900) AM_READ_PORT("DSW3") AM_WRITE_LEGACY(ironhors_sh_irqtrigger_w)
+ AM_RANGE(0x0900, 0x0900) AM_READ_PORT("DSW3") AM_WRITE(ironhors_sh_irqtrigger_w)
AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(ironhors_palettebank_w)
AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(ironhors_flipscreen_w)
AM_RANGE(0x0b01, 0x0b01) AM_READ_PORT("P2")
@@ -105,7 +104,7 @@ static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0040, 0x005f) AM_RAM
AM_RANGE(0x0060, 0x00ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x0900, 0x0900) /*AM_READ_PORT("DSW3") */AM_WRITE_LEGACY(ironhors_sh_irqtrigger_w)
+ AM_RANGE(0x0900, 0x0900) /*AM_READ_PORT("DSW3") */AM_WRITE(ironhors_sh_irqtrigger_w)
AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("DSW2") //AM_WRITE_LEGACY(ironhors_palettebank_w)
AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(ironhors_flipscreen_w)
AM_RANGE(0x0b01, 0x0b01) AM_READ_PORT("DSW2") //AM_WRITE_LEGACY(ironhors_palettebank_w)
@@ -114,7 +113,7 @@ static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8, ironhors_state )
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(ironhors_sh_irqtrigger_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(ironhors_sh_irqtrigger_w)
AM_RANGE(0x1a00, 0x1a00) AM_RAM AM_BASE(m_interrupt_enable)
AM_RANGE(0x1a01, 0x1a01) AM_RAM_WRITE_LEGACY(ironhors_charbank_w)
AM_RANGE(0x1a02, 0x1a02) AM_WRITE_LEGACY(ironhors_palettebank_w)
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index 043e089b0d3..f5ce06551db 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -363,7 +363,7 @@ Notes:
-#define START_TMS_SPINNING(n) do { device_spin_until_trigger(&space->device(), 7351 + n); space->machine().driver_data<itech32_state>()->m_tms_spinning[n] = 1; } while (0)
+#define START_TMS_SPINNING(n) do { device_spin_until_trigger(&space.device(), 7351 + n); m_tms_spinning[n] = 1; } while (0)
#define STOP_TMS_SPINNING(machine, n) do { (machine).scheduler().trigger(7351 + n); (machine).driver_data<itech32_state>()->m_tms_spinning[n] = 0; } while (0)
@@ -422,9 +422,9 @@ static INTERRUPT_GEN( generate_int1 )
}
-static WRITE16_HANDLER( int1_ack_w )
+WRITE16_MEMBER(itech32_state::int1_ack_w)
{
- itech32_update_interrupts(space->machine(), 0, -1, -1);
+ itech32_update_interrupts(machine(), 0, -1, -1);
}
@@ -473,116 +473,114 @@ static CUSTOM_INPUT( special_port_r )
return state->m_special_result;
}
-static READ16_HANDLER( trackball_r )
+READ16_MEMBER(itech32_state::trackball_r)
{
- int lower = input_port_read(space->machine(), "TRACKX1");
- int upper = input_port_read(space->machine(), "TRACKY1");
+ int lower = input_port_read(machine(), "TRACKX1");
+ int upper = input_port_read(machine(), "TRACKY1");
return (lower & 15) | ((upper & 15) << 4);
}
-static READ32_HANDLER( trackball32_8bit_r )
+READ32_MEMBER(itech32_state::trackball32_8bit_r)
{
- int lower = input_port_read(space->machine(), "TRACKX1");
- int upper = input_port_read(space->machine(), "TRACKY1");
+ int lower = input_port_read(machine(), "TRACKX1");
+ int upper = input_port_read(machine(), "TRACKY1");
return (lower & 255) | ((upper & 255) << 8);
}
-static READ32_HANDLER( trackball32_4bit_p1_r )
+READ32_MEMBER(itech32_state::trackball32_4bit_p1_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- attotime curtime = space->machine().time();
+ attotime curtime = machine().time();
- if ((curtime - state->m_p1_lasttime) > space->machine().primary_screen->scan_period())
+ if ((curtime - m_p1_lasttime) > machine().primary_screen->scan_period())
{
int upper, lower;
int dx, dy;
- int curx = input_port_read(space->machine(), "TRACKX1");
- int cury = input_port_read(space->machine(), "TRACKY1");
+ int curx = input_port_read(machine(), "TRACKX1");
+ int cury = input_port_read(machine(), "TRACKY1");
- dx = curx - state->m_p1_effx;
+ dx = curx - m_p1_effx;
if (dx < -0x80) dx += 0x100;
else if (dx > 0x80) dx -= 0x100;
if (dx > 7) dx = 7;
else if (dx < -7) dx = -7;
- state->m_p1_effx = (state->m_p1_effx + dx) & 0xff;
- lower = state->m_p1_effx & 15;
+ m_p1_effx = (m_p1_effx + dx) & 0xff;
+ lower = m_p1_effx & 15;
- dy = cury - state->m_p1_effy;
+ dy = cury - m_p1_effy;
if (dy < -0x80) dy += 0x100;
else if (dy > 0x80) dy -= 0x100;
if (dy > 7) dy = 7;
else if (dy < -7) dy = -7;
- state->m_p1_effy = (state->m_p1_effy + dy) & 0xff;
- upper = state->m_p1_effy & 15;
+ m_p1_effy = (m_p1_effy + dy) & 0xff;
+ upper = m_p1_effy & 15;
- state->m_p1_lastresult = lower | (upper << 4);
+ m_p1_lastresult = lower | (upper << 4);
}
- state->m_p1_lasttime = curtime;
- return state->m_p1_lastresult | (state->m_p1_lastresult << 16);
+ m_p1_lasttime = curtime;
+ return m_p1_lastresult | (m_p1_lastresult << 16);
}
-static READ32_HANDLER( trackball32_4bit_p2_r )
+READ32_MEMBER(itech32_state::trackball32_4bit_p2_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- attotime curtime = space->machine().time();
+ attotime curtime = machine().time();
- if ((curtime - state->m_p2_lasttime) > space->machine().primary_screen->scan_period())
+ if ((curtime - m_p2_lasttime) > machine().primary_screen->scan_period())
{
int upper, lower;
int dx, dy;
- int curx = input_port_read(space->machine(), "TRACKX2");
- int cury = input_port_read(space->machine(), "TRACKY2");
+ int curx = input_port_read(machine(), "TRACKX2");
+ int cury = input_port_read(machine(), "TRACKY2");
- dx = curx - state->m_p2_effx;
+ dx = curx - m_p2_effx;
if (dx < -0x80) dx += 0x100;
else if (dx > 0x80) dx -= 0x100;
if (dx > 7) dx = 7;
else if (dx < -7) dx = -7;
- state->m_p2_effx = (state->m_p2_effx + dx) & 0xff;
- lower = state->m_p2_effx & 15;
+ m_p2_effx = (m_p2_effx + dx) & 0xff;
+ lower = m_p2_effx & 15;
- dy = cury - state->m_p2_effy;
+ dy = cury - m_p2_effy;
if (dy < -0x80) dy += 0x100;
else if (dy > 0x80) dy -= 0x100;
if (dy > 7) dy = 7;
else if (dy < -7) dy = -7;
- state->m_p2_effy = (state->m_p2_effy + dy) & 0xff;
- upper = state->m_p2_effy & 15;
+ m_p2_effy = (m_p2_effy + dy) & 0xff;
+ upper = m_p2_effy & 15;
- state->m_p2_lastresult = lower | (upper << 4);
+ m_p2_lastresult = lower | (upper << 4);
}
- state->m_p2_lasttime = curtime;
- return state->m_p2_lastresult | (state->m_p2_lastresult << 16);
+ m_p2_lasttime = curtime;
+ return m_p2_lastresult | (m_p2_lastresult << 16);
}
-static READ32_HANDLER( trackball32_4bit_combined_r )
+READ32_MEMBER(itech32_state::trackball32_4bit_combined_r)
{
return trackball32_4bit_p1_r(space, offset, mem_mask) |
(trackball32_4bit_p2_r(space, offset, mem_mask) << 8);
}
-static READ32_HANDLER( drivedge_steering_r )
+READ32_MEMBER(itech32_state::drivedge_steering_r)
{
- int val = input_port_read(space->machine(), "STEER") * 2 - 0x100;
+ int val = input_port_read(machine(), "STEER") * 2 - 0x100;
if (val < 0) val = 0x100 | (-val);
return val << 16;
}
-static READ32_HANDLER( drivedge_gas_r )
+READ32_MEMBER(itech32_state::drivedge_gas_r)
{
- int val = input_port_read(space->machine(), "GAS");
+ int val = input_port_read(machine(), "GAS");
return val << 16;
}
@@ -593,29 +591,27 @@ static READ32_HANDLER( drivedge_gas_r )
*
*************************************/
-static READ16_HANDLER( wcbowl_prot_result_r )
+READ16_MEMBER(itech32_state::wcbowl_prot_result_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- return state->m_main_ram[0x111d/2];
+ return m_main_ram[0x111d/2];
}
-static READ32_HANDLER( itech020_prot_result_r )
+READ32_MEMBER(itech32_state::itech020_prot_result_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- UINT32 result = ((UINT32 *)state->m_main_ram)[state->m_itech020_prot_address >> 2];
- result >>= (~state->m_itech020_prot_address & 3) * 8;
+ UINT32 result = ((UINT32 *)m_main_ram)[m_itech020_prot_address >> 2];
+ result >>= (~m_itech020_prot_address & 3) * 8;
return (result & 0xff) << 8;
}
-static READ32_HANDLER( gt2kp_prot_result_r )
+READ32_MEMBER(itech32_state::gt2kp_prot_result_r)
{
return 0x00010000; /* 32 bit value at 680000 to 680003 will return the needed value of 0x01 */
}
-static READ32_HANDLER( gtclass_prot_result_r )
+READ32_MEMBER(itech32_state::gtclass_prot_result_r)
{
return 0x00008000; /* 32 bit value at 680000 to 680003 will return the needed value of 0x80 */
}
@@ -628,9 +624,9 @@ static READ32_HANDLER( gtclass_prot_result_r )
*
*************************************/
-static WRITE8_HANDLER( sound_bank_w )
+WRITE8_MEMBER(itech32_state::sound_bank_w)
{
- memory_set_bankptr(space->machine(), "bank1", &space->machine().region("soundcpu")->base()[0x10000 + data * 0x4000]);
+ memory_set_bankptr(machine(), "bank1", &machine().region("soundcpu")->base()[0x10000 + data * 0x4000]);
}
@@ -650,44 +646,41 @@ static TIMER_CALLBACK( delayed_sound_data_w )
}
-static WRITE16_HANDLER( sound_data_w )
+WRITE16_MEMBER(itech32_state::sound_data_w)
{
if (ACCESSING_BITS_0_7)
- space->machine().scheduler().synchronize(FUNC(delayed_sound_data_w), data & 0xff);
+ machine().scheduler().synchronize(FUNC(delayed_sound_data_w), data & 0xff);
}
-static READ32_HANDLER( sound_data32_r )
+READ32_MEMBER(itech32_state::sound_data32_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- return state->m_sound_return << 16;
+ return m_sound_return << 16;
}
-static WRITE32_HANDLER( sound_data32_w )
+WRITE32_MEMBER(itech32_state::sound_data32_w)
{
if (ACCESSING_BITS_16_23)
- space->machine().scheduler().synchronize(FUNC(delayed_sound_data_w), (data >> 16) & 0xff);
+ machine().scheduler().synchronize(FUNC(delayed_sound_data_w), (data >> 16) & 0xff);
}
-static READ8_HANDLER( sound_data_r )
+READ8_MEMBER(itech32_state::sound_data_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- cputag_set_input_line(space->machine(), "soundcpu", M6809_IRQ_LINE, CLEAR_LINE);
- state->m_sound_int_state = 0;
- return state->m_sound_data;
+ cputag_set_input_line(machine(), "soundcpu", M6809_IRQ_LINE, CLEAR_LINE);
+ m_sound_int_state = 0;
+ return m_sound_data;
}
-static WRITE8_HANDLER( sound_return_w )
+WRITE8_MEMBER(itech32_state::sound_return_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- state->m_sound_return = data;
+ m_sound_return = data;
}
-static READ8_HANDLER( sound_data_buffer_r )
+READ8_MEMBER(itech32_state::sound_data_buffer_r)
{
return 0;
}
@@ -772,9 +765,9 @@ static const via6522_interface drivedge_via_interface =
*
*************************************/
-static WRITE8_HANDLER( firq_clear_w )
+WRITE8_MEMBER(itech32_state::firq_clear_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", M6809_FIRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", M6809_FIRQ_LINE, CLEAR_LINE);
}
@@ -785,80 +778,73 @@ static WRITE8_HANDLER( firq_clear_w )
*
*************************************/
-static WRITE32_HANDLER( tms_reset_assert_w )
+WRITE32_MEMBER(itech32_state::tms_reset_assert_w)
{
- cputag_set_input_line(space->machine(), "dsp1", INPUT_LINE_RESET, ASSERT_LINE);
- cputag_set_input_line(space->machine(), "dsp2", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "dsp1", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "dsp2", INPUT_LINE_RESET, ASSERT_LINE);
}
-static WRITE32_HANDLER( tms_reset_clear_w )
+WRITE32_MEMBER(itech32_state::tms_reset_clear_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
/* kludge to prevent crash on first boot */
- if ((state->m_tms1_ram[0] & 0xff000000) == 0)
+ if ((m_tms1_ram[0] & 0xff000000) == 0)
{
- cputag_set_input_line(space->machine(), "dsp1", INPUT_LINE_RESET, CLEAR_LINE);
- STOP_TMS_SPINNING(space->machine(), 0);
+ cputag_set_input_line(machine(), "dsp1", INPUT_LINE_RESET, CLEAR_LINE);
+ STOP_TMS_SPINNING(machine(), 0);
}
- if ((state->m_tms2_ram[0] & 0xff000000) == 0)
+ if ((m_tms2_ram[0] & 0xff000000) == 0)
{
- cputag_set_input_line(space->machine(), "dsp2", INPUT_LINE_RESET, CLEAR_LINE);
- STOP_TMS_SPINNING(space->machine(), 1);
+ cputag_set_input_line(machine(), "dsp2", INPUT_LINE_RESET, CLEAR_LINE);
+ STOP_TMS_SPINNING(machine(), 1);
}
}
-static WRITE32_HANDLER( tms1_68k_ram_w )
+WRITE32_MEMBER(itech32_state::tms1_68k_ram_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- COMBINE_DATA(&state->m_tms1_ram[offset]);
- if (offset == 0) COMBINE_DATA(state->m_tms1_boot);
- if (offset == 0x382 && state->m_tms_spinning[0]) STOP_TMS_SPINNING(space->machine(), 0);
- if (!state->m_tms_spinning[0])
- space->machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
+ COMBINE_DATA(&m_tms1_ram[offset]);
+ if (offset == 0) COMBINE_DATA(m_tms1_boot);
+ if (offset == 0x382 && m_tms_spinning[0]) STOP_TMS_SPINNING(machine(), 0);
+ if (!m_tms_spinning[0])
+ machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
}
-static WRITE32_HANDLER( tms2_68k_ram_w )
+WRITE32_MEMBER(itech32_state::tms2_68k_ram_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- COMBINE_DATA(&state->m_tms2_ram[offset]);
- if (offset == 0x382 && state->m_tms_spinning[1]) STOP_TMS_SPINNING(space->machine(), 1);
- if (!state->m_tms_spinning[1])
- space->machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
+ COMBINE_DATA(&m_tms2_ram[offset]);
+ if (offset == 0x382 && m_tms_spinning[1]) STOP_TMS_SPINNING(machine(), 1);
+ if (!m_tms_spinning[1])
+ machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
}
-static WRITE32_HANDLER( tms1_trigger_w )
+WRITE32_MEMBER(itech32_state::tms1_trigger_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- COMBINE_DATA(&state->m_tms1_ram[offset]);
- space->machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
+ COMBINE_DATA(&m_tms1_ram[offset]);
+ machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
}
-static WRITE32_HANDLER( tms2_trigger_w )
+WRITE32_MEMBER(itech32_state::tms2_trigger_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- COMBINE_DATA(&state->m_tms2_ram[offset]);
- space->machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
+ COMBINE_DATA(&m_tms2_ram[offset]);
+ machine().scheduler().boost_interleave(attotime::from_hz(CPU020_CLOCK/256), attotime::from_usec(20));
}
-static READ32_HANDLER( drivedge_tms1_speedup_r )
+READ32_MEMBER(itech32_state::drivedge_tms1_speedup_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- if (state->m_tms1_ram[0x382] == 0 && cpu_get_pc(&space->device()) == 0xee) START_TMS_SPINNING(0);
- return state->m_tms1_ram[0x382];
+ if (m_tms1_ram[0x382] == 0 && cpu_get_pc(&space.device()) == 0xee) START_TMS_SPINNING(0);
+ return m_tms1_ram[0x382];
}
-static READ32_HANDLER( drivedge_tms2_speedup_r )
+READ32_MEMBER(itech32_state::drivedge_tms2_speedup_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- if (state->m_tms2_ram[0x382] == 0 && cpu_get_pc(&space->device()) == 0x809808) START_TMS_SPINNING(1);
- return state->m_tms2_ram[0x382];
+ if (m_tms2_ram[0x382] == 0 && cpu_get_pc(&space.device()) == 0x809808) START_TMS_SPINNING(1);
+ return m_tms2_ram[0x382];
}
@@ -869,7 +855,7 @@ static READ32_HANDLER( drivedge_tms2_speedup_r )
*
*************************************/
-static WRITE32_HANDLER( int1_ack32_w )
+WRITE32_MEMBER(itech32_state::int1_ack32_w)
{
int1_ack_w(space, offset, data, mem_mask);
}
@@ -922,9 +908,9 @@ static ADDRESS_MAP_START( timekill_map, AS_PROGRAM, 16, itech32_state )
AM_RANGE(0x060000, 0x060001) AM_WRITE_LEGACY(timekill_colora_w)
AM_RANGE(0x068000, 0x068001) AM_WRITE_LEGACY(timekill_colorbc_w)
AM_RANGE(0x070000, 0x070001) AM_WRITENOP /* noisy */
- AM_RANGE(0x078000, 0x078001) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0x078000, 0x078001) AM_WRITE(sound_data_w)
AM_RANGE(0x080000, 0x08007f) AM_READWRITE_LEGACY(itech32_video_r, itech32_video_w) AM_BASE(m_video)
- AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(int1_ack_w)
+ AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(int1_ack_w)
AM_RANGE(0x0c0000, 0x0c7fff) AM_RAM_WRITE_LEGACY(timekill_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_REGION("user1", 0) AM_BASE(m_main_rom)
ADDRESS_MAP_END
@@ -933,7 +919,7 @@ ADDRESS_MAP_END
/*------ BloodStorm and later games memory layout ------*/
static ADDRESS_MAP_START( bloodstm_map, AS_PROGRAM, 16, itech32_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(m_main_ram) AM_SHARE("nvram")
- AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1") AM_WRITE_LEGACY(int1_ack_w)
+ AM_RANGE(0x080000, 0x080001) AM_READ_PORT("P1") AM_WRITE(int1_ack_w)
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("P2")
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("P3")
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("P4") AM_WRITE_LEGACY(watchdog_reset16_w)
@@ -941,7 +927,7 @@ static ADDRESS_MAP_START( bloodstm_map, AS_PROGRAM, 16, itech32_state )
AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(bloodstm_color1_w)
AM_RANGE(0x380000, 0x380001) AM_WRITE_LEGACY(bloodstm_color2_w)
AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x480000, 0x480001) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0x480000, 0x480001) AM_WRITE(sound_data_w)
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE_LEGACY(bloodstm_video_r, bloodstm_video_w) AM_BASE(m_video)
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE_LEGACY(bloodstm_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x700000, 0x700001) AM_WRITE_LEGACY(bloodstm_plane_w)
@@ -954,59 +940,55 @@ ADDRESS_MAP_END
#if LOG_DRIVEDGE_UNINIT_RAM
-static READ32_HANDLER( test1_r )
+READ32_MEMBER(itech32_state::test1_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- if (ACCESSING_BITS_24_31 && !state->m_written[0x100 + offset*4+0]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0x100 + offset*4+0);
- if (ACCESSING_BITS_16_23 && !state->m_written[0x100 + offset*4+1]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0x100 + offset*4+1);
- if (ACCESSING_BITS_8_15 && !state->m_written[0x100 + offset*4+2]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0x100 + offset*4+2);
- if (ACCESSING_BITS_0_7 && !state->m_written[0x100 + offset*4+3]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0x100 + offset*4+3);
- return ((UINT32 *)state->m_main_ram)[0x100/4 + offset];
+ if (ACCESSING_BITS_24_31 && !m_written[0x100 + offset*4+0]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0x100 + offset*4+0);
+ if (ACCESSING_BITS_16_23 && !m_written[0x100 + offset*4+1]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0x100 + offset*4+1);
+ if (ACCESSING_BITS_8_15 && !m_written[0x100 + offset*4+2]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0x100 + offset*4+2);
+ if (ACCESSING_BITS_0_7 && !m_written[0x100 + offset*4+3]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0x100 + offset*4+3);
+ return ((UINT32 *)m_main_ram)[0x100/4 + offset];
}
-static WRITE32_HANDLER( test1_w )
+WRITE32_MEMBER(itech32_state::test1_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- if (ACCESSING_BITS_24_31) state->m_written[0x100 + offset*4+0] = 1;
- if (ACCESSING_BITS_16_23) state->m_written[0x100 + offset*4+1] = 1;
- if (ACCESSING_BITS_8_15) state->m_written[0x100 + offset*4+2] = 1;
- if (ACCESSING_BITS_0_7) state->m_written[0x100 + offset*4+3] = 1;
- COMBINE_DATA(&((UINT32 *)state->m_main_ram)[0x100/4 + offset]);
+ if (ACCESSING_BITS_24_31) m_written[0x100 + offset*4+0] = 1;
+ if (ACCESSING_BITS_16_23) m_written[0x100 + offset*4+1] = 1;
+ if (ACCESSING_BITS_8_15) m_written[0x100 + offset*4+2] = 1;
+ if (ACCESSING_BITS_0_7) m_written[0x100 + offset*4+3] = 1;
+ COMBINE_DATA(&((UINT32 *)m_main_ram)[0x100/4 + offset]);
}
-static READ32_HANDLER( test2_r )
+READ32_MEMBER(itech32_state::test2_r)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- if (ACCESSING_BITS_24_31 && !state->m_written[0xc00 + offset*4+0]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0xc00 + offset*4+0);
- if (ACCESSING_BITS_16_23 && !state->m_written[0xc00 + offset*4+1]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0xc00 + offset*4+1);
- if (ACCESSING_BITS_8_15 && !state->m_written[0xc00 + offset*4+2]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0xc00 + offset*4+2);
- if (ACCESSING_BITS_0_7 && !state->m_written[0xc00 + offset*4+3]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space->device()), 0xc00 + offset*4+3);
- return ((UINT32 *)state->m_main_ram)[0xc00/4 + offset];
+ if (ACCESSING_BITS_24_31 && !m_written[0xc00 + offset*4+0]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0xc00 + offset*4+0);
+ if (ACCESSING_BITS_16_23 && !m_written[0xc00 + offset*4+1]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0xc00 + offset*4+1);
+ if (ACCESSING_BITS_8_15 && !m_written[0xc00 + offset*4+2]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0xc00 + offset*4+2);
+ if (ACCESSING_BITS_0_7 && !m_written[0xc00 + offset*4+3]) logerror("%06X:read from uninitialized memory %04X\n", cpu_get_pc(&space.device()), 0xc00 + offset*4+3);
+ return ((UINT32 *)m_main_ram)[0xc00/4 + offset];
}
-static WRITE32_HANDLER( test2_w )
+WRITE32_MEMBER(itech32_state::test2_w)
{
- itech32_state *state = space->machine().driver_data<itech32_state>();
- if (ACCESSING_BITS_24_31) state->m_written[0xc00 + offset*4+0] = 1;
- if (ACCESSING_BITS_16_23) state->m_written[0xc00 + offset*4+1] = 1;
- if (ACCESSING_BITS_8_15) state->m_written[0xc00 + offset*4+2] = 1;
- if (ACCESSING_BITS_0_7) state->m_written[0xc00 + offset*4+3] = 1;
- COMBINE_DATA(&((UINT32 *)state->m_main_ram)[0xc00/4 + offset]);
+ if (ACCESSING_BITS_24_31) m_written[0xc00 + offset*4+0] = 1;
+ if (ACCESSING_BITS_16_23) m_written[0xc00 + offset*4+1] = 1;
+ if (ACCESSING_BITS_8_15) m_written[0xc00 + offset*4+2] = 1;
+ if (ACCESSING_BITS_0_7) m_written[0xc00 + offset*4+3] = 1;
+ COMBINE_DATA(&((UINT32 *)m_main_ram)[0xc00/4 + offset]);
}
#endif
static ADDRESS_MAP_START( drivedge_map, AS_PROGRAM, 32, itech32_state )
#if LOG_DRIVEDGE_UNINIT_RAM
-AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE_LEGACY(test1_r, test1_w)
-AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE_LEGACY(test2_r, test2_w)
+AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE(test1_r, test1_w)
+AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
#endif
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_BASE(m_main_ram) AM_SHARE("nvram")
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("80000")
AM_RANGE(0x082000, 0x082003) AM_READ_PORT("82000")
- AM_RANGE(0x084000, 0x084003) AM_READWRITE_LEGACY(sound_data32_r, sound_data32_w)
+ AM_RANGE(0x084000, 0x084003) AM_READWRITE(sound_data32_r, sound_data32_w)
// AM_RANGE(0x086000, 0x08623f) AM_RAM -- networking -- first 0x40 bytes = our data, next 0x40*8 bytes = their data, r/w on IRQ2
- AM_RANGE(0x088000, 0x088003) AM_READ_LEGACY(drivedge_steering_r)
- AM_RANGE(0x08a000, 0x08a003) AM_READ_LEGACY(drivedge_gas_r) AM_WRITENOP
+ AM_RANGE(0x088000, 0x088003) AM_READ(drivedge_steering_r)
+ AM_RANGE(0x08a000, 0x08a003) AM_READ(drivedge_gas_r) AM_WRITENOP
AM_RANGE(0x08c000, 0x08c003) AM_READ_PORT("8c000")
AM_RANGE(0x08e000, 0x08e003) AM_READ_PORT("8e000") AM_WRITENOP
AM_RANGE(0x100000, 0x10000f) AM_WRITE_LEGACY(drivedge_zbuf_control_w) AM_BASE(m_drivedge_zbuf_control)
@@ -1014,23 +996,23 @@ AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE_LEGACY(test2_r, tes
AM_RANGE(0x1a0000, 0x1bffff) AM_RAM_WRITE_LEGACY(drivedge_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1c0000, 0x1c0003) AM_WRITENOP
AM_RANGE(0x1e0000, 0x1e0113) AM_READWRITE_LEGACY(itech020_video_r, itech020_video_w) AM_BASE(m_video)
- AM_RANGE(0x1e4000, 0x1e4003) AM_WRITE_LEGACY(tms_reset_assert_w)
- AM_RANGE(0x1ec000, 0x1ec003) AM_WRITE_LEGACY(tms_reset_clear_w)
+ AM_RANGE(0x1e4000, 0x1e4003) AM_WRITE(tms_reset_assert_w)
+ AM_RANGE(0x1ec000, 0x1ec003) AM_WRITE(tms_reset_clear_w)
AM_RANGE(0x200000, 0x200003) AM_READ_PORT("200000")
- AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE_LEGACY(tms1_68k_ram_w) AM_SHARE("share1")
- AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE_LEGACY(tms2_68k_ram_w) AM_SHARE("share2")
+ AM_RANGE(0x280000, 0x280fff) AM_RAM_WRITE(tms1_68k_ram_w) AM_SHARE("share1")
+ AM_RANGE(0x300000, 0x300fff) AM_RAM_WRITE(tms2_68k_ram_w) AM_SHARE("share2")
AM_RANGE(0x380000, 0x380003) AM_WRITENOP // AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x600000, 0x607fff) AM_ROM AM_REGION("user1", 0) AM_BASE(m_main_rom)
ADDRESS_MAP_END
static ADDRESS_MAP_START( drivedge_tms1_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x000000, 0x001fff) AM_RAM AM_BASE(m_tms1_boot)
- AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(tms1_trigger_w) AM_SHARE("share1") AM_BASE(m_tms1_ram)
+ AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x400) AM_RAM_WRITE(tms1_trigger_w) AM_SHARE("share1") AM_BASE(m_tms1_ram)
AM_RANGE(0x080000, 0x0bffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( drivedge_tms2_map, AS_PROGRAM, 32, itech32_state )
- AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x8400) AM_RAM_WRITE_LEGACY(tms2_trigger_w) AM_SHARE("share2") AM_BASE(m_tms2_ram)
+ AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x8400) AM_RAM_WRITE(tms2_trigger_w) AM_SHARE("share2") AM_BASE(m_tms2_ram)
AM_RANGE(0x080000, 0x08ffff) AM_RAM
ADDRESS_MAP_END
@@ -1038,7 +1020,7 @@ ADDRESS_MAP_END
/*------ 68EC020-based memory layout ------*/
static ADDRESS_MAP_START( itech020_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x000000, 0x007fff) AM_RAM AM_BASE(m_main_ram)
- AM_RANGE(0x080000, 0x080003) AM_READ_PORT("P1") AM_WRITE_LEGACY(int1_ack32_w)
+ AM_RANGE(0x080000, 0x080003) AM_READ_PORT("P1") AM_WRITE(int1_ack32_w)
AM_RANGE(0x100000, 0x100003) AM_READ_PORT("P2")
AM_RANGE(0x180000, 0x180003) AM_READ_PORT("P3")
AM_RANGE(0x200000, 0x200003) AM_READ_PORT("P4")
@@ -1046,13 +1028,13 @@ static ADDRESS_MAP_START( itech020_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x300000, 0x300003) AM_WRITE_LEGACY(itech020_color1_w)
AM_RANGE(0x380000, 0x380003) AM_WRITE_LEGACY(itech020_color2_w)
AM_RANGE(0x400000, 0x400003) AM_WRITE_LEGACY(watchdog_reset32_w)
- AM_RANGE(0x480000, 0x480003) AM_WRITE_LEGACY(sound_data32_w)
+ AM_RANGE(0x480000, 0x480003) AM_WRITE(sound_data32_w)
AM_RANGE(0x500000, 0x5000ff) AM_READWRITE_LEGACY(itech020_video_r, itech020_video_w) AM_BASE(m_video)
AM_RANGE(0x578000, 0x57ffff) AM_READNOP /* touched by protection */
AM_RANGE(0x580000, 0x59ffff) AM_RAM_WRITE_LEGACY(itech020_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x600000, 0x603fff) AM_RAM AM_SHARE("nvram")
/* ? */ AM_RANGE(0x61ff00, 0x61ffff) AM_WRITENOP /* Unknown Writes */
- AM_RANGE(0x680000, 0x680003) AM_READ_LEGACY(itech020_prot_result_r) AM_WRITENOP
+ AM_RANGE(0x680000, 0x680003) AM_READ(itech020_prot_result_r) AM_WRITENOP
/* ! */ AM_RANGE(0x680800, 0x68083f) AM_READONLY AM_WRITENOP /* Serial DUART Channel A/B & Top LED sign - To Do! */
AM_RANGE(0x700000, 0x700003) AM_WRITE_LEGACY(itech020_plane_w)
AM_RANGE(0x800000, 0xbfffff) AM_ROM AM_REGION("user1", 0) AM_BASE(m_main_rom)
@@ -1068,10 +1050,10 @@ ADDRESS_MAP_END
/*------ Rev 1 sound board memory layout ------*/
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, itech32_state )
- AM_RANGE(0x0000, 0x0000) AM_WRITE_LEGACY(sound_return_w)
- AM_RANGE(0x0400, 0x0400) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0x0000, 0x0000) AM_WRITE(sound_return_w)
+ AM_RANGE(0x0400, 0x0400) AM_READ(sound_data_r)
AM_RANGE(0x0800, 0x083f) AM_MIRROR(0x80) AM_DEVREADWRITE_LEGACY("ensoniq", es5506_r, es5506_w)
- AM_RANGE(0x0c00, 0x0c00) AM_WRITE_LEGACY(sound_bank_w)
+ AM_RANGE(0x0c00, 0x0c00) AM_WRITE(sound_bank_w)
AM_RANGE(0x1000, 0x1000) AM_WRITENOP /* noisy */
AM_RANGE(0x1400, 0x140f) AM_DEVREADWRITE("via6522_0", via6522_device, read, write)
AM_RANGE(0x2000, 0x3fff) AM_RAM
@@ -1082,11 +1064,11 @@ ADDRESS_MAP_END
/*------ Rev 2 sound board memory layout ------*/
static ADDRESS_MAP_START( sound_020_map, AS_PROGRAM, 8, itech32_state )
- AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x400) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0x0000, 0x0000) AM_MIRROR(0x400) AM_READ(sound_data_r)
AM_RANGE(0x0800, 0x083f) AM_MIRROR(0x80) AM_DEVREADWRITE_LEGACY("ensoniq", es5506_r, es5506_w)
- AM_RANGE(0x0c00, 0x0c00) AM_WRITE_LEGACY(sound_bank_w)
- AM_RANGE(0x1400, 0x1400) AM_WRITE_LEGACY(firq_clear_w)
- AM_RANGE(0x1800, 0x1800) AM_READ_LEGACY(sound_data_buffer_r) AM_WRITENOP
+ AM_RANGE(0x0c00, 0x0c00) AM_WRITE(sound_bank_w)
+ AM_RANGE(0x1400, 0x1400) AM_WRITE(firq_clear_w)
+ AM_RANGE(0x1800, 0x1800) AM_READ(sound_data_buffer_r) AM_WRITENOP
AM_RANGE(0x2000, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -4012,8 +3994,8 @@ static DRIVER_INIT( drivedge )
state->m_planes = 1;
state->m_is_drivedge = 1;
- machine.device("dsp1")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x8382, 0x8382, FUNC(drivedge_tms1_speedup_r));
- machine.device("dsp2")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x8382, 0x8382, FUNC(drivedge_tms2_speedup_r));
+ machine.device("dsp1")->memory().space(AS_PROGRAM)->install_read_handler(0x8382, 0x8382, read32_delegate(FUNC(itech32_state::drivedge_tms1_speedup_r),state));
+ machine.device("dsp2")->memory().space(AS_PROGRAM)->install_read_handler(0x8382, 0x8382, read32_delegate(FUNC(itech32_state::drivedge_tms2_speedup_r),state));
}
@@ -4030,10 +4012,10 @@ static DRIVER_INIT( wcbowl )
state->m_vram_height = 1024;
state->m_planes = 1;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x680000, 0x680001, FUNC(trackball_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x680000, 0x680001, read16_delegate(FUNC(itech32_state::trackball_r),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_read(0x578000, 0x57ffff);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x680080, 0x680081, FUNC(wcbowl_prot_result_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x680080, 0x680081, read16_delegate(FUNC(itech32_state::wcbowl_prot_result_r),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x680080, 0x680081);
}
@@ -4082,8 +4064,8 @@ static void init_shuffle_bowl_common(running_machine &machine, int prot_addr)
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x300000, 0x300003, FUNC(itech020_color2_w));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x380000, 0x380003, FUNC(itech020_color1_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x180800, 0x180803, FUNC(trackball32_4bit_p1_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x181000, 0x181003, FUNC(trackball32_4bit_p2_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x180800, 0x180803, read32_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x181000, 0x181003, read32_delegate(FUNC(itech32_state::trackball32_4bit_p2_r),state));
}
@@ -4134,7 +4116,8 @@ static DRIVER_INIT( gt3d )
Hacked versions of this PCB have been found with GT97
through GTClassic. This is _NOT_ a factory modification
*/
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200000, 0x200003, FUNC(trackball32_8bit_r));
+ itech32_state *state = machine.driver_data<itech32_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200000, 0x200003, read32_delegate(FUNC(itech32_state::trackball32_8bit_r),state));
init_gt_common(machine);
}
@@ -4147,8 +4130,9 @@ static DRIVER_INIT( aama )
board share the same sound CPU code and sample ROMs.
This board has all versions of GT for it, GT3D through GTClassic
*/
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x180800, 0x180803, FUNC(trackball32_4bit_p1_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x181000, 0x181003, FUNC(trackball32_4bit_p2_r));
+ itech32_state *state = machine.driver_data<itech32_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x180800, 0x180803, read32_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x181000, 0x181003, read32_delegate(FUNC(itech32_state::trackball32_4bit_p2_r),state));
init_gt_common(machine);
}
@@ -4172,7 +4156,8 @@ static DRIVER_INIT( s_ver )
board: GT97 v1.21S, GT98, GT99, GT2K & GT Classic Versions 1.00S
Trackball info is read through 200202 (actually 200203).
*/
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200200, 0x200203, FUNC(trackball32_4bit_p1_r));
+ itech32_state *state = machine.driver_data<itech32_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200200, 0x200203, read32_delegate(FUNC(itech32_state::trackball32_4bit_p1_r),state));
init_gt_common(machine);
}
@@ -4186,7 +4171,8 @@ static DRIVER_INIT( gt3dl )
Player 1 trackball read through 200003
Player 2 trackball read through 200002
*/
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200000, 0x200003, FUNC(trackball32_4bit_combined_r));
+ itech32_state *state = machine.driver_data<itech32_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200000, 0x200003, read32_delegate(FUNC(itech32_state::trackball32_4bit_combined_r),state));
init_gt_common(machine);
}
@@ -4194,7 +4180,8 @@ static DRIVER_INIT( gt3dl )
static DRIVER_INIT( gt2kp )
{
/* a little extra protection */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x680000, 0x680003, FUNC(gt2kp_prot_result_r));
+ itech32_state *state = machine.driver_data<itech32_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x680000, 0x680003, read32_delegate(FUNC(itech32_state::gt2kp_prot_result_r),state));
DRIVER_INIT_CALL(aama);
/* The protection code is:
@@ -4215,7 +4202,8 @@ Label1 bne.s Label1 ; Infinite loop if result isn't 0x01
static DRIVER_INIT( gtclasscp )
{
/* a little extra protection */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x680000, 0x680003, FUNC(gtclass_prot_result_r));
+ itech32_state *state = machine.driver_data<itech32_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x680000, 0x680003, read32_delegate(FUNC(itech32_state::gtclass_prot_result_r),state));
DRIVER_INIT_CALL(aama);
/* The protection code is:
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index 7739d3b8da5..baa2d267556 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -526,7 +526,7 @@
*************************************/
static WRITE8_DEVICE_HANDLER( pia_porta_out );
-static WRITE8_HANDLER( pia_portb_out );
+
static const pia6821_interface pia_interface =
{
@@ -537,7 +537,7 @@ static const pia6821_interface pia_interface =
DEVCB_NULL, /* line CA2 in */
DEVCB_NULL, /* line CB2 in */
DEVCB_HANDLER(pia_porta_out), /* port A out */
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, pia_portb_out), /* port B out */
+ DEVCB_DRIVER_MEMBER(itech8_state, pia_portb_out), /* port B out */
DEVCB_NULL, /* line CA2 out */
DEVCB_NULL, /* port CB2 out */
DEVCB_NULL, /* IRQA */
@@ -556,7 +556,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_MEMORY_HANDLER("maincpu", PROGRAM, pia_portb_out),
+ /*outputs: A/B */ DEVCB_NULL, DEVCB_DRIVER_MEMBER(itech8_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)
};
@@ -620,10 +620,10 @@ static INTERRUPT_GEN( generate_nmi )
}
-static WRITE8_HANDLER( itech8_nmi_ack_w )
+WRITE8_MEMBER(itech8_state::itech8_nmi_ack_w)
{
/* doesn't seem to hold for every game (e.g., hstennis) */
-/* cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);*/
+/* cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);*/
}
@@ -701,21 +701,21 @@ static TIMER_CALLBACK( behind_the_beam_update )
*
*************************************/
-static WRITE8_HANDLER( blitter_w )
+WRITE8_MEMBER(itech8_state::blitter_w)
{
/* bit 0x20 on address 7 controls CPU banking */
if (offset / 2 == 7)
- memory_set_bankptr(space->machine(), "bank1", &space->machine().region("maincpu")->base()[0x4000 + 0xc000 * ((data >> 5) & 1)]);
+ memory_set_bankptr(machine(), "bank1", &machine().region("maincpu")->base()[0x4000 + 0xc000 * ((data >> 5) & 1)]);
/* the rest is handled by the video hardware */
- itech8_blitter_w(space, offset, data);
+ itech8_blitter_w(&space, offset, data);
}
-static WRITE8_HANDLER( rimrockn_bank_w )
+WRITE8_MEMBER(itech8_state::rimrockn_bank_w)
{
/* banking is controlled here instead of by the blitter output */
- memory_set_bankptr(space->machine(), "bank1", &space->machine().region("maincpu")->base()[0x4000 + 0xc000 * (data & 3)]);
+ memory_set_bankptr(machine(), "bank1", &machine().region("maincpu")->base()[0x4000 + 0xc000 * (data & 3)]);
}
@@ -747,18 +747,17 @@ static WRITE8_DEVICE_HANDLER( pia_porta_out )
}
-static WRITE8_HANDLER( pia_portb_out )
+WRITE8_MEMBER(itech8_state::pia_portb_out)
{
- itech8_state *state = space->machine().driver_data<itech8_state>();
logerror("PIA port B write = %02x\n", data);
/* bit 0 provides feedback to the main CPU */
/* bit 4 controls the ticket dispenser */
/* bit 5 controls the coin counter */
/* bit 6 controls the diagnostic sound LED */
- state->m_pia_portb_data = data;
- ticket_dispenser_w(space->machine().device("ticket"), 0, (data & 0x10) << 3);
- coin_counter_w(space->machine(), 0, (data & 0x20) >> 5);
+ m_pia_portb_data = data;
+ ticket_dispenser_w(machine().device("ticket"), 0, (data & 0x10) << 3);
+ coin_counter_w(machine(), 0, (data & 0x20) >> 5);
}
@@ -792,28 +791,27 @@ static TIMER_CALLBACK( delayed_sound_data_w )
}
-static WRITE8_HANDLER( sound_data_w )
+WRITE8_MEMBER(itech8_state::sound_data_w)
{
- space->machine().scheduler().synchronize(FUNC(delayed_sound_data_w), data);
+ machine().scheduler().synchronize(FUNC(delayed_sound_data_w), data);
}
-static WRITE8_HANDLER( gtg2_sound_data_w )
+WRITE8_MEMBER(itech8_state::gtg2_sound_data_w)
{
/* on the later GTG2 board, they swizzle the data lines */
data = ((data & 0x80) >> 7) |
((data & 0x5d) << 1) |
((data & 0x20) >> 3) |
((data & 0x02) << 5);
- space->machine().scheduler().synchronize(FUNC(delayed_sound_data_w), data);
+ machine().scheduler().synchronize(FUNC(delayed_sound_data_w), data);
}
-static READ8_HANDLER( sound_data_r )
+READ8_MEMBER(itech8_state::sound_data_r)
{
- itech8_state *state = space->machine().driver_data<itech8_state>();
- cputag_set_input_line(space->machine(), "soundcpu", M6809_IRQ_LINE, CLEAR_LINE);
- return state->m_sound_data;
+ cputag_set_input_line(machine(), "soundcpu", M6809_IRQ_LINE, CLEAR_LINE);
+ return m_sound_data;
}
@@ -824,25 +822,24 @@ static READ8_HANDLER( sound_data_r )
*
*************************************/
-static WRITE16_HANDLER( grom_bank16_w )
+WRITE16_MEMBER(itech8_state::grom_bank16_w)
{
- itech8_state *state = space->machine().driver_data<itech8_state>();
if (ACCESSING_BITS_8_15)
- *state->m_grom_bank = data >> 8;
+ *m_grom_bank = data >> 8;
}
-static WRITE16_HANDLER( display_page16_w )
+WRITE16_MEMBER(itech8_state::display_page16_w)
{
if (ACCESSING_BITS_8_15)
- itech8_page_w(space, 0, ~data >> 8);
+ itech8_page_w(&space, 0, ~data >> 8);
}
-static WRITE16_HANDLER( palette16_w )
+WRITE16_MEMBER(itech8_state::palette16_w)
{
if (ACCESSING_BITS_8_15)
- itech8_palette_w(space, offset / 8, data >> 8);
+ itech8_palette_w(&space, offset / 8, data >> 8);
}
@@ -857,12 +854,12 @@ static WRITE16_HANDLER( palette16_w )
static ADDRESS_MAP_START( tmslo_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0fff) AM_READWRITE_LEGACY(itech8_tms34061_r, itech8_tms34061_w)
AM_RANGE(0x1100, 0x1100) AM_WRITENOP
- AM_RANGE(0x1120, 0x1120) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0x1120, 0x1120) AM_WRITE(sound_data_w)
AM_RANGE(0x1140, 0x1140) AM_READ_PORT("40") AM_WRITEONLY AM_BASE(m_grom_bank)
AM_RANGE(0x1160, 0x1160) AM_READ_PORT("60") AM_WRITE_LEGACY(itech8_page_w)
AM_RANGE(0x1180, 0x1180) AM_READ_PORT("80") AM_WRITE_LEGACY(tms34061_latch_w)
- AM_RANGE(0x11a0, 0x11a0) AM_WRITE_LEGACY(itech8_nmi_ack_w)
- AM_RANGE(0x11c0, 0x11df) AM_READWRITE_LEGACY(itech8_blitter_r, blitter_w)
+ AM_RANGE(0x11a0, 0x11a0) AM_WRITE(itech8_nmi_ack_w)
+ AM_RANGE(0x11c0, 0x11df) AM_READ_LEGACY(itech8_blitter_r) AM_WRITE(blitter_w)
AM_RANGE(0x11e0, 0x11ff) AM_WRITE_LEGACY(itech8_palette_w)
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
@@ -873,12 +870,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tmshi_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x1000, 0x1fff) AM_READWRITE_LEGACY(itech8_tms34061_r, itech8_tms34061_w)
AM_RANGE(0x0100, 0x0100) AM_WRITENOP
- AM_RANGE(0x0120, 0x0120) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0x0120, 0x0120) AM_WRITE(sound_data_w)
AM_RANGE(0x0140, 0x0140) AM_READ_PORT("40") AM_WRITEONLY AM_BASE(m_grom_bank)
AM_RANGE(0x0160, 0x0160) AM_READ_PORT("60") AM_WRITE_LEGACY(itech8_page_w)
AM_RANGE(0x0180, 0x0180) AM_READ_PORT("80") AM_WRITE_LEGACY(tms34061_latch_w)
- AM_RANGE(0x01a0, 0x01a0) AM_WRITE_LEGACY(itech8_nmi_ack_w)
- AM_RANGE(0x01c0, 0x01df) AM_READWRITE_LEGACY(itech8_blitter_r, blitter_w)
+ AM_RANGE(0x01a0, 0x01a0) AM_WRITE(itech8_nmi_ack_w)
+ AM_RANGE(0x01c0, 0x01df) AM_READ_LEGACY(itech8_blitter_r) AM_WRITE(blitter_w)
AM_RANGE(0x01e0, 0x01ff) AM_WRITE_LEGACY(itech8_palette_w)
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4000, 0xffff) AM_ROMBANK("bank1")
@@ -887,13 +884,13 @@ ADDRESS_MAP_END
/*------ Golden Tee Golf II 1992 layout ------*/
static ADDRESS_MAP_START( gtg2_map, AS_PROGRAM, 8, itech8_state )
- AM_RANGE(0x0100, 0x0100) AM_READ_PORT("40") AM_WRITE_LEGACY(itech8_nmi_ack_w)
+ AM_RANGE(0x0100, 0x0100) AM_READ_PORT("40") AM_WRITE(itech8_nmi_ack_w)
AM_RANGE(0x0120, 0x0120) AM_READ_PORT("60") AM_WRITE_LEGACY(itech8_page_w)
AM_RANGE(0x0140, 0x015f) AM_WRITE_LEGACY(itech8_palette_w)
AM_RANGE(0x0140, 0x0140) AM_READ_PORT("80")
AM_RANGE(0x0160, 0x0160) AM_WRITEONLY AM_BASE(m_grom_bank)
- AM_RANGE(0x0180, 0x019f) AM_READWRITE_LEGACY(itech8_blitter_r, blitter_w)
- AM_RANGE(0x01c0, 0x01c0) AM_WRITE_LEGACY(gtg2_sound_data_w)
+ AM_RANGE(0x0180, 0x019f) AM_READ_LEGACY(itech8_blitter_r) AM_WRITE(blitter_w)
+ AM_RANGE(0x01c0, 0x01c0) AM_WRITE(gtg2_sound_data_w)
AM_RANGE(0x01e0, 0x01e0) AM_WRITE_LEGACY(tms34061_latch_w)
AM_RANGE(0x1000, 0x1fff) AM_READWRITE_LEGACY(itech8_tms34061_r, itech8_tms34061_w)
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("nvram")
@@ -906,13 +903,13 @@ static ADDRESS_MAP_START( ninclown_map, AS_PROGRAM, 16, itech8_state )
AM_RANGE(0x000000, 0x00007f) AM_RAM AM_REGION("maincpu", 0)
AM_RANGE(0x000080, 0x003fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x004000, 0x07ffff) AM_ROM
- AM_RANGE(0x100080, 0x100081) AM_WRITE8_LEGACY(sound_data_w, 0xff00)
- AM_RANGE(0x100100, 0x100101) AM_READ_PORT("40") AM_WRITE_LEGACY(grom_bank16_w) AM_BASE(m_grom_bank)
- AM_RANGE(0x100180, 0x100181) AM_READ_PORT("60") AM_WRITE_LEGACY(display_page16_w)
+ AM_RANGE(0x100080, 0x100081) AM_WRITE8(sound_data_w, 0xff00)
+ AM_RANGE(0x100100, 0x100101) AM_READ_PORT("40") AM_WRITE(grom_bank16_w) AM_BASE(m_grom_bank)
+ AM_RANGE(0x100180, 0x100181) AM_READ_PORT("60") AM_WRITE(display_page16_w)
AM_RANGE(0x100240, 0x100241) AM_WRITE8_LEGACY(tms34061_latch_w, 0xff00)
AM_RANGE(0x100280, 0x100281) AM_READ_PORT("80") AM_WRITENOP
AM_RANGE(0x100300, 0x10031f) AM_READWRITE8_LEGACY(itech8_blitter_r, itech8_blitter_w, 0xffff)
- AM_RANGE(0x100380, 0x1003ff) AM_WRITE_LEGACY(palette16_w)
+ AM_RANGE(0x100380, 0x1003ff) AM_WRITE(palette16_w)
AM_RANGE(0x110000, 0x110fff) AM_READWRITE8_LEGACY(itech8_tms34061_r, itech8_tms34061_w, 0xffff)
ADDRESS_MAP_END
@@ -927,7 +924,7 @@ ADDRESS_MAP_END
/*------ YM2203-based sound ------*/
static ADDRESS_MAP_START( sound2203_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
- AM_RANGE(0x1000, 0x1000) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x0002) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -938,7 +935,7 @@ ADDRESS_MAP_END
/*------ YM2608B-based sound ------*/
static ADDRESS_MAP_START( sound2608b_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x1000, 0x1000) AM_WRITENOP
- AM_RANGE(0x2000, 0x2000) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0x2000, 0x2000) AM_READ(sound_data_r)
AM_RANGE(0x4000, 0x4003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2608_r, ym2608_w)
AM_RANGE(0x6000, 0x67ff) AM_RAM
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -948,7 +945,7 @@ ADDRESS_MAP_END
/*------ YM3812-based sound ------*/
static ADDRESS_MAP_START( sound3812_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
- AM_RANGE(0x1000, 0x1000) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -960,7 +957,7 @@ ADDRESS_MAP_END
/*------ external YM3812-based sound board ------*/
static ADDRESS_MAP_START( sound3812_external_map, AS_PROGRAM, 8, itech8_state )
AM_RANGE(0x0000, 0x0000) AM_WRITENOP
- AM_RANGE(0x1000, 0x1000) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0x1000, 0x1000) AM_READ(sound_data_r)
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r, ym3812_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -2685,6 +2682,7 @@ static DRIVER_INIT( neckneck )
static DRIVER_INIT( rimrockn )
{
+ itech8_state *state = machine.driver_data<itech8_state>();
/* additional input ports */
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_port (0x0161, 0x0161, "161");
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_port (0x0162, 0x0162, "162");
@@ -2693,7 +2691,7 @@ static DRIVER_INIT( rimrockn )
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_port (0x0165, 0x0165, "165");
/* different banking mechanism (disable the old one) */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x01a0, 0x01a0, FUNC(rimrockn_bank_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x01a0, 0x01a0, write8_delegate(FUNC(itech8_state::rimrockn_bank_w),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x01c0, 0x01df, FUNC(itech8_blitter_w));
}
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 46ebb000146..95b3aa787fa 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -63,21 +63,19 @@ static READ8_DEVICE_HANDLER( timer_r )
}
-static WRITE8_HANDLER( jack_sh_command_w )
+WRITE8_MEMBER(jack_state::jack_sh_command_w)
{
- jack_state *state = space->machine().driver_data<jack_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
/* these handlers are guessed, because otherwise you can't enter test mode */
-static WRITE8_HANDLER( joinem_misc_w )
+WRITE8_MEMBER(jack_state::joinem_misc_w)
{
- jack_state *state = space->machine().driver_data<jack_state>();
- flip_screen_set(space->machine(), data & 0x80);
- state->m_joinem_snd_bit = data & 1;
+ flip_screen_set(machine(), data & 0x80);
+ m_joinem_snd_bit = data & 1;
}
static CUSTOM_INPUT( sound_check_r )
@@ -95,34 +93,33 @@ static CUSTOM_INPUT( sound_check_r )
Super Triv questions read handler
*/
-static READ8_HANDLER( striv_question_r )
+READ8_MEMBER(jack_state::striv_question_r)
{
- jack_state *state = space->machine().driver_data<jack_state>();
// Set-up the remap table for every 16 bytes
if ((offset & 0xc00) == 0x800)
{
- state->m_remap_address[offset & 0x0f] = (offset & 0xf0) >> 4;
+ m_remap_address[offset & 0x0f] = (offset & 0xf0) >> 4;
}
// Select which rom to read and the high 5 bits of address
else if ((offset & 0xc00) == 0xc00)
{
- state->m_question_rom = offset & 7;
- state->m_question_address = (offset & 0xf8) << 7;
+ m_question_rom = offset & 7;
+ m_question_address = (offset & 0xf8) << 7;
}
// Read the actual byte from question roms
else
{
- UINT8 *ROM = space->machine().region("user1")->base();
+ UINT8 *ROM = machine().region("user1")->base();
int real_address;
- real_address = state->m_question_address | (offset & 0x3f0) | state->m_remap_address[offset & 0x0f];
+ real_address = m_question_address | (offset & 0x3f0) | m_remap_address[offset & 0x0f];
// Check if it wants to read from the upper 8 roms or not
if (offset & 0x400)
- real_address |= 0x8000 * (state->m_question_rom + 8);
+ real_address |= 0x8000 * (m_question_rom + 8);
else
- real_address |= 0x8000 * state->m_question_rom;
+ real_address |= 0x8000 * m_question_rom;
return ROM[real_address];
}
@@ -140,7 +137,7 @@ static ADDRESS_MAP_START( jack_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0xb000, 0xb07f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xb400, 0xb400) AM_WRITE_LEGACY(jack_sh_command_w)
+ AM_RANGE(0xb400, 0xb400) AM_WRITE(jack_sh_command_w)
AM_RANGE(0xb500, 0xb500) AM_READ_PORT("DSW1")
AM_RANGE(0xb501, 0xb501) AM_READ_PORT("DSW2")
AM_RANGE(0xb502, 0xb502) AM_READ_PORT("IN0")
@@ -158,14 +155,14 @@ static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xb000, 0xb0ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xb400, 0xb400) AM_WRITE_LEGACY(jack_sh_command_w)
+ AM_RANGE(0xb400, 0xb400) AM_WRITE(jack_sh_command_w)
AM_RANGE(0xb500, 0xb500) AM_READ_PORT("DSW1")
AM_RANGE(0xb501, 0xb501) AM_READ_PORT("DSW2")
AM_RANGE(0xb502, 0xb502) AM_READ_PORT("IN0")
AM_RANGE(0xb503, 0xb503) AM_READ_PORT("IN1")
AM_RANGE(0xb504, 0xb504) AM_READ_PORT("IN2")
AM_RANGE(0xb506, 0xb507) AM_READWRITE_LEGACY(jack_flipscreen_r, jack_flipscreen_w)
- AM_RANGE(0xb700, 0xb700) AM_WRITE_LEGACY(joinem_misc_w)
+ AM_RANGE(0xb700, 0xb700) AM_WRITE(joinem_misc_w)
AM_RANGE(0xb800, 0xbbff) AM_RAM_WRITE_LEGACY(jack_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE_LEGACY(jack_colorram_w) AM_BASE(m_colorram)
ADDRESS_MAP_END
@@ -1415,7 +1412,7 @@ static DRIVER_INIT( striv )
}
// Set-up the weirdest questions read ever done
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc000, 0xcfff, FUNC(striv_question_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc000, 0xcfff, read8_delegate(FUNC(jack_state::striv_question_r),state));
// Nop out unused sprites writes
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0xb000, 0xb0ff);
diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c
index 719d6a73d91..2ce8aeb88c7 100644
--- a/src/mame/drivers/jackal.c
+++ b/src/mame/drivers/jackal.c
@@ -83,78 +83,70 @@ Address Dir Data Description
*
*************************************/
-static READ8_HANDLER( topgunbl_rotary_r )
+READ8_MEMBER(jackal_state::topgunbl_rotary_r)
{
- return (1 << input_port_read_safe(space->machine(), offset ? "DIAL1" : "DIAL0", 0x00)) ^ 0xff;
+ return (1 << input_port_read_safe(machine(), offset ? "DIAL1" : "DIAL0", 0x00)) ^ 0xff;
}
-static WRITE8_HANDLER( jackal_flipscreen_w )
+WRITE8_MEMBER(jackal_state::jackal_flipscreen_w)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- state->m_irq_enable = data & 0x02;
- flip_screen_set(space->machine(), data & 0x08);
+ m_irq_enable = data & 0x02;
+ flip_screen_set(machine(), data & 0x08);
}
-static READ8_HANDLER( jackal_zram_r )
+READ8_MEMBER(jackal_state::jackal_zram_r)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- return state->m_rambank[0x0020 + offset];
+ return m_rambank[0x0020 + offset];
}
-static READ8_HANDLER( jackal_voram_r )
+READ8_MEMBER(jackal_state::jackal_voram_r)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- return state->m_rambank[0x2000 + offset];
+ return m_rambank[0x2000 + offset];
}
-static READ8_HANDLER( jackal_spriteram_r )
+READ8_MEMBER(jackal_state::jackal_spriteram_r)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- return state->m_spritebank[0x3000 + offset];
+ return m_spritebank[0x3000 + offset];
}
-static WRITE8_HANDLER( jackal_rambank_w )
+WRITE8_MEMBER(jackal_state::jackal_rambank_w)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- UINT8 *rgn = space->machine().region("master")->base();
+ UINT8 *rgn = machine().region("master")->base();
if (data & 0x04)
popmessage("jackal_rambank_w %02x", data);
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
- state->m_spritebank = &rgn[((data & 0x08) << 13)];
- state->m_rambank = &rgn[((data & 0x10) << 12)];
- memory_set_bank(space->machine(), "bank1", (data & 0x20) ? 1 : 0);
+ m_spritebank = &rgn[((data & 0x08) << 13)];
+ m_rambank = &rgn[((data & 0x10) << 12)];
+ memory_set_bank(machine(), "bank1", (data & 0x20) ? 1 : 0);
}
-static WRITE8_HANDLER( jackal_zram_w )
+WRITE8_MEMBER(jackal_state::jackal_zram_w)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- state->m_rambank[0x0020 + offset] = data;
+ m_rambank[0x0020 + offset] = data;
}
-static WRITE8_HANDLER( jackal_voram_w )
+WRITE8_MEMBER(jackal_state::jackal_voram_w)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
if ((offset & 0xf800) == 0)
- jackal_mark_tile_dirty(space->machine(), offset & 0x3ff);
+ jackal_mark_tile_dirty(machine(), offset & 0x3ff);
- state->m_rambank[0x2000 + offset] = data;
+ m_rambank[0x2000 + offset] = data;
}
-static WRITE8_HANDLER( jackal_spriteram_w )
+WRITE8_MEMBER(jackal_state::jackal_spriteram_w)
{
- jackal_state *state = space->machine().driver_data<jackal_state>();
- state->m_spritebank[0x3000 + offset] = data;
+ m_spritebank[0x3000 + offset] = data;
}
/*************************************
@@ -165,19 +157,19 @@ static WRITE8_HANDLER( jackal_spriteram_w )
static ADDRESS_MAP_START( master_map, AS_PROGRAM, 8, jackal_state )
AM_RANGE(0x0000, 0x0003) AM_RAM AM_BASE(m_videoctrl) // scroll + other things
- AM_RANGE(0x0004, 0x0004) AM_WRITE_LEGACY(jackal_flipscreen_w)
+ AM_RANGE(0x0004, 0x0004) AM_WRITE(jackal_flipscreen_w)
AM_RANGE(0x0010, 0x0010) AM_READ_PORT("DSW1")
AM_RANGE(0x0011, 0x0011) AM_READ_PORT("IN1")
AM_RANGE(0x0012, 0x0012) AM_READ_PORT("IN2")
AM_RANGE(0x0013, 0x0013) AM_READ_PORT("IN0")
- AM_RANGE(0x0014, 0x0015) AM_READ_LEGACY(topgunbl_rotary_r)
+ AM_RANGE(0x0014, 0x0015) AM_READ(topgunbl_rotary_r)
AM_RANGE(0x0018, 0x0018) AM_READ_PORT("DSW2")
AM_RANGE(0x0019, 0x0019) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x001c, 0x001c) AM_WRITE_LEGACY(jackal_rambank_w)
- AM_RANGE(0x0020, 0x005f) AM_READWRITE_LEGACY(jackal_zram_r, jackal_zram_w) // MAIN Z RAM,SUB Z RAM
+ AM_RANGE(0x001c, 0x001c) AM_WRITE(jackal_rambank_w)
+ AM_RANGE(0x0020, 0x005f) AM_READWRITE(jackal_zram_r, jackal_zram_w) // MAIN Z RAM,SUB Z RAM
AM_RANGE(0x0060, 0x1fff) AM_RAM AM_SHARE("share1") // M COMMON RAM,S COMMON RAM
- AM_RANGE(0x2000, 0x2fff) AM_READWRITE_LEGACY(jackal_voram_r, jackal_voram_w) // MAIN V O RAM,SUB V O RAM
- AM_RANGE(0x3000, 0x3fff) AM_READWRITE_LEGACY(jackal_spriteram_r, jackal_spriteram_w) // MAIN V O RAM,SUB V O RAM
+ AM_RANGE(0x2000, 0x2fff) AM_READWRITE(jackal_voram_r, jackal_voram_w) // MAIN V O RAM,SUB V O RAM
+ AM_RANGE(0x3000, 0x3fff) AM_READWRITE(jackal_spriteram_r, jackal_spriteram_w) // MAIN V O RAM,SUB V O RAM
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 36256c64a1c..6e2be1a32c3 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -92,13 +92,12 @@ Notes:
#include "includes/jailbrek.h"
-static WRITE8_HANDLER( ctrl_w )
+WRITE8_MEMBER(jailbrek_state::ctrl_w)
{
- jailbrek_state *state = space->machine().driver_data<jailbrek_state>();
- state->m_nmi_enable = data & 0x01;
- state->m_irq_enable = data & 0x02;
- flip_screen_set(space->machine(), data & 0x08);
+ m_nmi_enable = data & 0x01;
+ m_irq_enable = data & 0x02;
+ flip_screen_set(machine(), data & 0x08);
}
static INTERRUPT_GEN( jb_interrupt )
@@ -141,7 +140,7 @@ static ADDRESS_MAP_START( jailbrek_map, AS_PROGRAM, 8, jailbrek_state )
AM_RANGE(0x2041, 0x2041) AM_WRITENOP /* ??? */
AM_RANGE(0x2042, 0x2042) AM_RAM AM_BASE(m_scroll_dir) /* bit 2 = scroll direction */
AM_RANGE(0x2043, 0x2043) AM_WRITENOP /* ??? */
- AM_RANGE(0x2044, 0x2044) AM_WRITE_LEGACY(ctrl_w) /* irq, nmi enable, screen flip */
+ AM_RANGE(0x2044, 0x2044) AM_WRITE(ctrl_w) /* irq, nmi enable, screen flip */
AM_RANGE(0x3000, 0x307f) AM_RAM /* related to sprites? */
AM_RANGE(0x3100, 0x3100) AM_READ_PORT("DSW2") AM_DEVWRITE_LEGACY("snsnd", sn76496_w)
AM_RANGE(0x3200, 0x3200) AM_READ_PORT("DSW3") AM_WRITENOP /* mirror of the previous? */
diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c
index 0c7454a0a86..f3ebcc547d5 100644
--- a/src/mame/drivers/jedi.c
+++ b/src/mame/drivers/jedi.c
@@ -140,9 +140,9 @@ static TIMER_CALLBACK( generate_interrupt )
}
-static WRITE8_HANDLER( main_irq_ack_w )
+WRITE8_MEMBER(jedi_state::main_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
}
@@ -193,11 +193,11 @@ static MACHINE_RESET( jedi )
*
*************************************/
-static WRITE8_HANDLER( rom_banksel_w )
+WRITE8_MEMBER(jedi_state::rom_banksel_w)
{
- if (data & 0x01) memory_set_bank(space->machine(), "bank1", 0);
- if (data & 0x02) memory_set_bank(space->machine(), "bank1", 1);
- if (data & 0x04) memory_set_bank(space->machine(), "bank1", 2);
+ if (data & 0x01) memory_set_bank(machine(), "bank1", 0);
+ if (data & 0x02) memory_set_bank(machine(), "bank1", 1);
+ if (data & 0x04) memory_set_bank(machine(), "bank1", 2);
}
@@ -208,32 +208,30 @@ static WRITE8_HANDLER( rom_banksel_w )
*
*************************************/
-static READ8_HANDLER( a2d_data_r )
+READ8_MEMBER(jedi_state::a2d_data_r)
{
- jedi_state *state = space->machine().driver_data<jedi_state>();
UINT8 ret = 0;
- switch (state->m_a2d_select)
+ switch (m_a2d_select)
{
- case 0: ret = input_port_read(space->machine(), "STICKY"); break;
- case 2: ret = input_port_read(space->machine(), "STICKX"); break;
+ case 0: ret = input_port_read(machine(), "STICKY"); break;
+ case 2: ret = input_port_read(machine(), "STICKX"); break;
}
return ret;
}
-static WRITE8_HANDLER( a2d_select_w )
+WRITE8_MEMBER(jedi_state::a2d_select_w)
{
- jedi_state *state = space->machine().driver_data<jedi_state>();
- state->m_a2d_select = offset;
+ m_a2d_select = offset;
}
-static WRITE8_HANDLER( jedi_coin_counter_w )
+WRITE8_MEMBER(jedi_state::jedi_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
@@ -244,20 +242,18 @@ static WRITE8_HANDLER( jedi_coin_counter_w )
*
*************************************/
-static WRITE8_HANDLER( nvram_data_w )
+WRITE8_MEMBER(jedi_state::nvram_data_w)
{
- jedi_state *state = space->machine().driver_data<jedi_state>();
- if (state->m_nvram_enabled)
- state->m_nvram[offset] = data;
+ if (m_nvram_enabled)
+ m_nvram[offset] = data;
}
-static WRITE8_HANDLER( nvram_enable_w )
+WRITE8_MEMBER(jedi_state::nvram_enable_w)
{
- jedi_state *state = space->machine().driver_data<jedi_state>();
- state->m_nvram_enabled = ~offset & 1;
+ m_nvram_enabled = ~offset & 1;
}
@@ -270,26 +266,26 @@ static WRITE8_HANDLER( nvram_enable_w )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jedi_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
- AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0300) AM_RAM_WRITE_LEGACY(nvram_data_w) AM_SHARE("nvram")
+ AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0300) AM_RAM_WRITE(nvram_data_w) AM_SHARE("nvram")
AM_RANGE(0x0c00, 0x0c00) AM_MIRROR(0x03fe) AM_READ_PORT("0c00") AM_WRITENOP
AM_RANGE(0x0c01, 0x0c01) AM_MIRROR(0x03fe) AM_READ_PORT("0c01") AM_WRITENOP
AM_RANGE(0x1000, 0x13ff) AM_NOP
AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READ_LEGACY(jedi_audio_ack_latch_r) AM_WRITENOP
- AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READ_LEGACY(a2d_data_r) AM_WRITENOP
- AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x007f) AM_READNOP AM_WRITE_LEGACY(nvram_enable_w)
- AM_RANGE(0x1c80, 0x1c82) AM_MIRROR(0x0078) AM_READNOP AM_WRITE_LEGACY(a2d_select_w)
+ AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READ(a2d_data_r) AM_WRITENOP
+ AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(nvram_enable_w)
+ AM_RANGE(0x1c80, 0x1c82) AM_MIRROR(0x0078) AM_READNOP AM_WRITE(a2d_select_w)
AM_RANGE(0x1c83, 0x1c87) AM_MIRROR(0x0078) AM_NOP
AM_RANGE(0x1d00, 0x1d00) AM_MIRROR(0x007f) AM_NOP /* write: NVRAM store */
AM_RANGE(0x1d80, 0x1d80) AM_MIRROR(0x007f) AM_READNOP AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x1e00, 0x1e00) AM_MIRROR(0x007f) AM_READNOP AM_WRITE_LEGACY(main_irq_ack_w)
- AM_RANGE(0x1e80, 0x1e81) AM_MIRROR(0x0078) AM_READNOP AM_WRITE_LEGACY(jedi_coin_counter_w)
+ AM_RANGE(0x1e00, 0x1e00) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(main_irq_ack_w)
+ AM_RANGE(0x1e80, 0x1e81) AM_MIRROR(0x0078) AM_READNOP AM_WRITE(jedi_coin_counter_w)
AM_RANGE(0x1e82, 0x1e83) AM_MIRROR(0x0078) AM_NOP /* write: LED control - not used */
AM_RANGE(0x1e84, 0x1e84) AM_MIRROR(0x0078) AM_READNOP AM_WRITEONLY AM_BASE(m_foreground_bank)
AM_RANGE(0x1e85, 0x1e85) AM_MIRROR(0x0078) AM_NOP
AM_RANGE(0x1e86, 0x1e86) AM_MIRROR(0x0078) AM_READNOP AM_WRITE_LEGACY(jedi_audio_reset_w)
AM_RANGE(0x1e87, 0x1e87) AM_MIRROR(0x0078) AM_READNOP AM_WRITEONLY AM_BASE(m_video_off)
AM_RANGE(0x1f00, 0x1f00) AM_MIRROR(0x007f) AM_READNOP AM_WRITE_LEGACY(jedi_audio_latch_w)
- AM_RANGE(0x1f80, 0x1f80) AM_MIRROR(0x007f) AM_READNOP AM_WRITE_LEGACY(rom_banksel_w)
+ AM_RANGE(0x1f80, 0x1f80) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(rom_banksel_w)
AM_RANGE(0x2000, 0x27ff) AM_RAM AM_BASE(m_backgroundram)
AM_RANGE(0x2800, 0x2fff) AM_RAM AM_BASE(m_paletteram)
AM_RANGE(0x3000, 0x37bf) AM_RAM AM_BASE(m_foregroundram)
diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c
index 1895ac530af..627a4b54ce6 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -158,14 +158,14 @@ static MACHINE_RESET( jpmimpct )
*
*************************************/
-static WRITE16_HANDLER( m68k_tms_w )
+WRITE16_MEMBER(jpmimpct_state::m68k_tms_w)
{
- tms34010_host_w(space->machine().device("dsp"), offset, data);
+ tms34010_host_w(machine().device("dsp"), offset, data);
}
-static READ16_HANDLER( m68k_tms_r )
+READ16_MEMBER(jpmimpct_state::m68k_tms_r)
{
- return tms34010_host_r(space->machine().device("dsp"), offset);
+ return tms34010_host_r(machine().device("dsp"), offset);
}
@@ -207,10 +207,9 @@ static TIMER_DEVICE_CALLBACK( duart_1_timer_event )
update_irqs(timer.machine());
}
-static READ16_HANDLER( duart_1_r )
+READ16_MEMBER(jpmimpct_state::duart_1_r)
{
- jpmimpct_state *state = space->machine().driver_data<jpmimpct_state>();
- struct duart_t &duart_1 = state->m_duart_1;
+ struct duart_t &duart_1 = m_duart_1;
UINT16 val = 0xffff;
switch (offset)
{
@@ -251,20 +250,20 @@ static READ16_HANDLER( duart_1_r )
}
case 0xd:
{
- val = input_port_read(space->machine(), "TEST/DEMO");
+ val = input_port_read(machine(), "TEST/DEMO");
break;
}
case 0xe:
{
attotime rate = attotime::from_hz(MC68681_1_CLOCK) * (16 * duart_1.CT);
- timer_device *duart_timer = space->machine().device<timer_device>("duart_1_timer");
+ timer_device *duart_timer = machine().device<timer_device>("duart_1_timer");
duart_timer->adjust(rate, 0, rate);
break;
}
case 0xf:
{
- state->m_duart_1_irq = 0;
- update_irqs(space->machine());
+ m_duart_1_irq = 0;
+ update_irqs(machine());
duart_1.ISR |= ~0x8;
break;
}
@@ -273,10 +272,9 @@ static READ16_HANDLER( duart_1_r )
return val;
}
-static WRITE16_HANDLER( duart_1_w )
+WRITE16_MEMBER(jpmimpct_state::duart_1_w)
{
- jpmimpct_state *state = space->machine().driver_data<jpmimpct_state>();
- struct duart_t &duart_1 = state->m_duart_1;
+ struct duart_t &duart_1 = m_duart_1;
//int old_val;
switch (offset)
{
@@ -360,20 +358,19 @@ static WRITE16_HANDLER( duart_1_w )
Communication with a touchscreen interface PCB
is handled via UART B.
*/
-static READ16_HANDLER( duart_2_r )
+READ16_MEMBER(jpmimpct_state::duart_2_r)
{
- jpmimpct_state *state = space->machine().driver_data<jpmimpct_state>();
switch (offset)
{
case 0x9:
{
- if (state->m_touch_cnt == 0)
+ if (m_touch_cnt == 0)
{
- if ( input_port_read(space->machine(), "TOUCH") & 0x1 )
+ if ( input_port_read(machine(), "TOUCH") & 0x1 )
{
- state->m_touch_data[0] = 0x2a;
- state->m_touch_data[1] = 0x7 - (input_port_read(space->machine(), "TOUCH_Y") >> 5) + 0x30;
- state->m_touch_data[2] = (input_port_read(space->machine(), "TOUCH_X") >> 5) + 0x30;
+ m_touch_data[0] = 0x2a;
+ m_touch_data[1] = 0x7 - (input_port_read(machine(), "TOUCH_Y") >> 5) + 0x30;
+ m_touch_data[2] = (input_port_read(machine(), "TOUCH_X") >> 5) + 0x30;
/* Return RXRDY */
return 0x1;
@@ -387,10 +384,10 @@ static READ16_HANDLER( duart_2_r )
}
case 0xb:
{
- UINT16 val = state->m_touch_data[state->m_touch_cnt];
+ UINT16 val = m_touch_data[m_touch_cnt];
- if (state->m_touch_cnt++ == 3)
- state->m_touch_cnt = 0;
+ if (m_touch_cnt++ == 3)
+ m_touch_cnt = 0;
return val;
}
@@ -402,7 +399,7 @@ static READ16_HANDLER( duart_2_r )
/*
Nothing important here?
*/
-static WRITE16_HANDLER( duart_2_w )
+WRITE16_MEMBER(jpmimpct_state::duart_2_w)
{
}
@@ -429,7 +426,7 @@ static WRITE16_HANDLER( duart_2_w )
* 9: Coin mechanism
*/
-static READ16_HANDLER( inputs1_r )
+READ16_MEMBER(jpmimpct_state::inputs1_r)
{
UINT16 val = 0x00ff;
@@ -437,22 +434,22 @@ static READ16_HANDLER( inputs1_r )
{
case 0:
{
- val = input_port_read(space->machine(), "DSW");
+ val = input_port_read(machine(), "DSW");
break;
}
case 2:
{
- val = input_port_read(space->machine(), "SW2");
+ val = input_port_read(machine(), "SW2");
break;
}
case 4:
{
- val = input_port_read(space->machine(), "SW1");
+ val = input_port_read(machine(), "SW1");
break;
}
case 9:
{
- val = input_port_read(space->machine(), "COINS");
+ val = input_port_read(machine(), "COINS");
break;
}
}
@@ -501,34 +498,33 @@ static READ16_DEVICE_HANDLER( upd7759_r )
*
*************************************/
-static READ16_HANDLER( unk_r )
+READ16_MEMBER(jpmimpct_state::unk_r)
{
return 0xffff;
}
-static WRITE16_HANDLER( unk_w )
+WRITE16_MEMBER(jpmimpct_state::unk_w)
{
}
-static void jpm_draw_lamps(jpmimpct_state *state, int data, int lamp_strobe)
+void jpmimpct_state::jpm_draw_lamps(int data, int lamp_strobe)
{
int i;
for (i=0; i<16; i++)
{
- state->m_Lamps[16*(state->m_lamp_strobe+i)] = data & 1;
- output_set_lamp_value((16*lamp_strobe)+i, (state->m_Lamps[(16*lamp_strobe)+i]));
+ m_Lamps[16*(m_lamp_strobe+i)] = data & 1;
+ output_set_lamp_value((16*lamp_strobe)+i, (m_Lamps[(16*lamp_strobe)+i]));
data = data >> 1;
}
}
-static READ16_HANDLER( jpmio_r )
+READ16_MEMBER(jpmimpct_state::jpmio_r)
{
return 0xffff;
}
-static WRITE16_HANDLER( jpmio_w )
+WRITE16_MEMBER(jpmimpct_state::jpmio_w)
{
- jpmimpct_state *state = space->machine().driver_data<jpmimpct_state>();
switch (offset)
{
case 0x02:
@@ -557,26 +553,26 @@ static WRITE16_HANDLER( jpmio_w )
else
// slide = 0;
MechMtr_update(0, data >> 10);
- state->m_duart_1.IP &= ~0x10;
+ m_duart_1.IP &= ~0x10;
break;
}
case 0x08:
{
- jpm_draw_lamps(state, data, state->m_lamp_strobe);
+ jpm_draw_lamps(data, m_lamp_strobe);
break;
}
case 0x0b:
{
- output_set_digit_value(state->m_lamp_strobe,data);
+ output_set_digit_value(m_lamp_strobe,data);
break;
}
case 0x0f:
{
if (data & 0x10)
{
- state->m_lamp_strobe = (data +1) & 0x0f;
+ m_lamp_strobe = (data +1) & 0x0f;
}
break;
}
@@ -592,19 +588,19 @@ static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
AM_RANGE(0x00100000, 0x001fffff) AM_ROM
AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x00480000, 0x0048001f) AM_READWRITE_LEGACY(duart_1_r, duart_1_w)
- AM_RANGE(0x00480020, 0x00480033) AM_READ_LEGACY(inputs1_r)
- AM_RANGE(0x00480034, 0x00480035) AM_READ_LEGACY(unk_r)
- AM_RANGE(0x00480060, 0x00480067) AM_READWRITE_LEGACY(unk_r, unk_w)//PPI
- AM_RANGE(0x004800a0, 0x004800af) AM_READWRITE_LEGACY(jpmio_r, jpmio_w)
- AM_RANGE(0x004800e0, 0x004800e1) AM_WRITE_LEGACY(unk_w)
- AM_RANGE(0x004801dc, 0x004801dd) AM_READ_LEGACY(unk_r)
- AM_RANGE(0x004801de, 0x004801df) AM_READ_LEGACY(unk_r)
+ AM_RANGE(0x00480000, 0x0048001f) AM_READWRITE(duart_1_r, duart_1_w)
+ AM_RANGE(0x00480020, 0x00480033) AM_READ(inputs1_r)
+ AM_RANGE(0x00480034, 0x00480035) AM_READ(unk_r)
+ AM_RANGE(0x00480060, 0x00480067) AM_READWRITE(unk_r, unk_w)//PPI
+ AM_RANGE(0x004800a0, 0x004800af) AM_READWRITE(jpmio_r, jpmio_w)
+ 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(0x004801e0, 0x004801ff) AM_READWRITE_LEGACY(duart_2_r, duart_2_w)
- AM_RANGE(0x00800000, 0x00800007) AM_READWRITE_LEGACY(m68k_tms_r, m68k_tms_w)
+ 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
AM_RANGE(0x00d00000, 0x00dfffff) AM_ROM
AM_RANGE(0x00e00000, 0x00efffff) AM_ROM
@@ -1033,7 +1029,7 @@ static MACHINE_RESET( impctawp )
* 8: Payslides
* 9: Coin mechanism
*/
-static READ16_HANDLER( inputs1awp_r )
+READ16_MEMBER(jpmimpct_state::inputs1awp_r)
{
UINT16 val = 0x00;
@@ -1042,47 +1038,47 @@ static READ16_HANDLER( inputs1awp_r )
{
case 0:
{
- val = input_port_read(space->machine(), "DSW");
+ val = input_port_read(machine(), "DSW");
break;
}
case 1:
{
- val = input_port_read(space->machine(), "PERCENT");
+ val = input_port_read(machine(), "PERCENT");
break;
}
case 2:
{
- val = input_port_read(space->machine(), "KEYS");
+ val = input_port_read(machine(), "KEYS");
break;
}
case 3:
{
- val = input_port_read(space->machine(), "SW2");
+ val = input_port_read(machine(), "SW2");
break;
}
case 4:
{
- val = input_port_read(space->machine(), "SW1");
+ val = input_port_read(machine(), "SW1");
break;
}
case 5:
{
- val = (input_port_read(space->machine(), "SW3") );
+ val = (input_port_read(machine(), "SW3") );
break;
}
case 6:
{
- val = (input_port_read(space->machine(), "SW4") );
+ val = (input_port_read(machine(), "SW4") );
break;
}
case 7://5
{
- val = (input_port_read(space->machine(), "SW5") );
+ val = (input_port_read(machine(), "SW5") );
break;
}
case 9:
{
- val = input_port_read(space->machine(), "COINS");
+ val = input_port_read(machine(), "COINS");
break;
}
}
@@ -1090,32 +1086,30 @@ static READ16_HANDLER( inputs1awp_r )
}
}
-static READ16_HANDLER( optos_r )
+READ16_MEMBER(jpmimpct_state::optos_r)
{
- jpmimpct_state *state = space->machine().driver_data<jpmimpct_state>();
int i;
for (i=0; i<6; i++)
{
- if ( stepper_optic_state(i) ) state->m_optic_pattern |= (1 << i);
- else state->m_optic_pattern &= ~(1 << i);
+ if ( stepper_optic_state(i) ) m_optic_pattern |= (1 << i);
+ else m_optic_pattern &= ~(1 << i);
}
- return state->m_optic_pattern;
+ return m_optic_pattern;
}
-static READ16_HANDLER( prot_1_r )
+READ16_MEMBER(jpmimpct_state::prot_1_r)
{
return 0x01;
}
-static READ16_HANDLER( prot_0_r )
+READ16_MEMBER(jpmimpct_state::prot_0_r)
{
return 0x00;
}
-static WRITE16_HANDLER( jpmioawp_w )
+WRITE16_MEMBER(jpmimpct_state::jpmioawp_w)
{
- jpmimpct_state *state = space->machine().driver_data<jpmimpct_state>();
int i,metno;
switch (offset)
{
@@ -1150,11 +1144,11 @@ static WRITE16_HANDLER( jpmioawp_w )
//Slides
if ((data & 0xff)!=0x00)
{
- state->m_slidesout=2;
+ m_slidesout=2;
}
- if (((data & 0xff)==0x00) && (state->m_slidesout==2))
+ if (((data & 0xff)==0x00) && (m_slidesout==2))
{
- state->m_slidesout=1;
+ m_slidesout=1;
}
// Meters
metno=(data >>8) & 0xff;
@@ -1182,38 +1176,38 @@ static WRITE16_HANDLER( jpmioawp_w )
if(combined_meter)
{
- state->m_duart_1.IP &= ~0x10;
+ m_duart_1.IP &= ~0x10;
}
else
{
- state->m_duart_1.IP |= 0x10;
+ m_duart_1.IP |= 0x10;
}
break;
}
case 0x08:
{
- jpm_draw_lamps(state, data, state->m_lamp_strobe);
+ jpm_draw_lamps(data, m_lamp_strobe);
break;
}
case 0x0b:
{
- output_set_digit_value(state->m_lamp_strobe,data);
+ output_set_digit_value(m_lamp_strobe,data);
break;
}
case 0x0f:
{
if (data & 0x10)
{
- state->m_lamp_strobe = (data & 0x0f);
+ m_lamp_strobe = (data & 0x0f);
}
break;
}
}
}
-static READ16_HANDLER( ump_r )
+READ16_MEMBER(jpmimpct_state::ump_r)
{
return 0xff;//0xffff;
}
@@ -1227,28 +1221,28 @@ static ADDRESS_MAP_START( awp68k_program_map, AS_PROGRAM, 16, jpmimpct_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
AM_RANGE(0x00100000, 0x001fffff) AM_ROM
AM_RANGE(0x00400000, 0x00403fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x00480000, 0x0048001f) AM_READWRITE_LEGACY(duart_1_r, duart_1_w)
- AM_RANGE(0x00480020, 0x00480033) AM_READ_LEGACY(inputs1awp_r)
- AM_RANGE(0x00480034, 0x00480035) AM_READ_LEGACY(ump_r)
- AM_RANGE(0x00480040, 0x00480041) AM_READ_LEGACY(optos_r)
+ AM_RANGE(0x00480000, 0x0048001f) AM_READWRITE(duart_1_r, duart_1_w)
+ AM_RANGE(0x00480020, 0x00480033) AM_READ(inputs1awp_r)
+ 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(0x00480086, 0x0048009f) AM_READ_LEGACY(prot_1_r)
- AM_RANGE(0x004800a0, 0x004800af) AM_READWRITE_LEGACY(jpmio_r, jpmioawp_w)
-// AM_RANGE(0x004800b0, 0x004800df) AM_READ_LEGACY(prot_1_r)
-// AM_RANGE(0x004800e0, 0x004800e1) AM_WRITE_LEGACY(unk_w)
-// AM_RANGE(0x00480086, 0x006576ff) AM_READ_LEGACY(prot_1_r)
- AM_RANGE(0x004801dc, 0x004801dd) AM_READ_LEGACY(prot_1_r)
- AM_RANGE(0x004801de, 0x006575ff) AM_READ_LEGACY(prot_1_r)
- AM_RANGE(0x00657600, 0x00657601) AM_READ_LEGACY(prot_0_r)
- AM_RANGE(0x00657602, 0x00ffffff) AM_READ_LEGACY(prot_1_r)
-
-// AM_RANGE(0x004801dc, 0x004801dd) AM_READ_LEGACY(unk_r)
-// AM_RANGE(0x004801de, 0x004801df) AM_READ_LEGACY(unk_r)
- //AM_RANGE(0x00657602, 0x00bfffff) AM_READ_LEGACY(prot_1_r)
-// AM_RANGE(0x004801e0, 0x004801ff) AM_READWRITE_LEGACY(duart_2_r, duart_2_w)
+ 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)
+// AM_RANGE(0x004800e0, 0x004800e1) AM_WRITE(unk_w)
+// AM_RANGE(0x00480086, 0x006576ff) AM_READ(prot_1_r)
+ AM_RANGE(0x004801dc, 0x004801dd) AM_READ(prot_1_r)
+ AM_RANGE(0x004801de, 0x006575ff) AM_READ(prot_1_r)
+ AM_RANGE(0x00657600, 0x00657601) AM_READ(prot_0_r)
+ AM_RANGE(0x00657602, 0x00ffffff) AM_READ(prot_1_r)
+
+// AM_RANGE(0x004801dc, 0x004801dd) AM_READ(unk_r)
+// AM_RANGE(0x004801de, 0x004801df) AM_READ(unk_r)
+ //AM_RANGE(0x00657602, 0x00bfffff) AM_READ(prot_1_r)
+// AM_RANGE(0x004801e0, 0x004801ff) AM_READWRITE(duart_2_r, duart_2_w)
// AM_RANGE(0x00c00000, 0x00cfffff) AM_ROM
// AM_RANGE(0x00d00000, 0x00dfffff) AM_ROM
// AM_RANGE(0x00e00000, 0x00efffff) AM_ROM
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 8c4761b7643..613d86c77bd 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -276,19 +276,19 @@ static MACHINE_RESET( shogwarr )
***************************************************************************/
-static READ16_HANDLER( kaneko16_rnd_r )
+READ16_MEMBER(kaneko16_state::kaneko16_rnd_r)
{
- return space->machine().rand() & 0xffff;
+ return machine().rand() & 0xffff;
}
-static WRITE16_HANDLER( kaneko16_coin_lockout_w )
+WRITE16_MEMBER(kaneko16_state::kaneko16_coin_lockout_w)
{
if (ACCESSING_BITS_8_15)
{
- coin_counter_w(space->machine(), 0, data & 0x0100);
- coin_counter_w(space->machine(), 1, data & 0x0200);
- coin_lockout_w(space->machine(), 0, (~data) & 0x0400 );
- coin_lockout_w(space->machine(), 1, (~data) & 0x0800 );
+ coin_counter_w(machine(), 0, data & 0x0100);
+ coin_counter_w(machine(), 1, data & 0x0200);
+ coin_lockout_w(machine(), 0, (~data) & 0x0400 );
+ coin_lockout_w(machine(), 1, (~data) & 0x0800 );
}
}
@@ -303,12 +303,12 @@ static WRITE16_HANDLER( kaneko16_coin_lockout_w )
***************************************************************************/
-static WRITE16_HANDLER( kaneko16_soundlatch_w )
+WRITE16_MEMBER(kaneko16_state::kaneko16_soundlatch_w)
{
if (ACCESSING_BITS_8_15)
{
soundlatch_w(space, 0, (data & 0xff00) >> 8 );
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -339,19 +339,19 @@ static WRITE16_DEVICE_HANDLER( kaneko16_YM2149_w )
***************************************************************************/
-static WRITE16_HANDLER( kaneko16_eeprom_w )
+WRITE16_MEMBER(kaneko16_state::kaneko16_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
if (ACCESSING_BITS_8_15)
{
- coin_counter_w(space->machine(), 0, data & 0x0100);
- coin_counter_w(space->machine(), 1, data & 0x0200);
- coin_lockout_w(space->machine(), 0, data & 0x8000);
- coin_lockout_w(space->machine(), 1, data & 0x8000);
+ coin_counter_w(machine(), 0, data & 0x0100);
+ coin_counter_w(machine(), 1, data & 0x0200);
+ coin_lockout_w(machine(), 0, data & 0x8000);
+ coin_lockout_w(machine(), 1, data & 0x8000);
}
}
@@ -381,7 +381,7 @@ static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x680002, 0x680003) AM_READ_PORT("P2")
AM_RANGE(0x680004, 0x680005) AM_READ_PORT("SYSTEM")
// AM_RANGE(0x680006, 0x680007) AM_READ_PORT("UNK")
- AM_RANGE(0x700000, 0x700001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout
+ AM_RANGE(0x700000, 0x700001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0x780000, 0x780001) AM_READ_LEGACY(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)
@@ -434,7 +434,7 @@ static ADDRESS_MAP_START( bakubrkr, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x900000, 0x90001f) AM_RAM_WRITE_LEGACY(kaneko16_sprites_regs_w) AM_BASE(m_sprites_regs ) // Sprites Regs
AM_RANGE(0xa80000, 0xa80001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
AM_RANGE(0xb00000, 0xb0001f) AM_RAM_WRITE_LEGACY(kaneko16_layers_1_regs_w) AM_BASE(m_layers_1_regs) // Layers 1 Regs
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(kaneko16_eeprom_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("P1")
AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("P2")
AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("SYSTEM")
@@ -462,8 +462,8 @@ static ADDRESS_MAP_START( blazeon, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("DSW1_P2")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("UNK")
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout
- AM_RANGE(0xe00000, 0xe00001) AM_READNOP AM_WRITE_LEGACY(kaneko16_soundlatch_w) // Read = IRQ Ack ?
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
+ AM_RANGE(0xe00000, 0xe00001) AM_READNOP AM_WRITE(kaneko16_soundlatch_w) // Read = IRQ Ack ?
AM_RANGE(0xe40000, 0xe40001) AM_READNOP // IRQ Ack ?
// AM_RANGE(0xe80000, 0xe80001) AM_READNOP // IRQ Ack ?
AM_RANGE(0xec0000, 0xec0001) AM_READNOP // Lev 4 IRQ Ack ?
@@ -494,14 +494,14 @@ static WRITE16_DEVICE_HANDLER( bloodwar_oki_1_bank_w )
}
}
-static WRITE16_HANDLER( bloodwar_coin_lockout_w )
+WRITE16_MEMBER(kaneko16_state::bloodwar_coin_lockout_w)
{
if (ACCESSING_BITS_8_15)
{
- coin_counter_w(space->machine(), 0, data & 0x0100);
- coin_counter_w(space->machine(), 1, data & 0x0200);
- coin_lockout_w(space->machine(), 0, data & 0x8000);
- coin_lockout_w(space->machine(), 1, data & 0x8000);
+ coin_counter_w(machine(), 0, data & 0x0100);
+ coin_counter_w(machine(), 1, data & 0x0200);
+ coin_lockout_w(machine(), 0, data & 0x8000);
+ coin_lockout_w(machine(), 1, data & 0x8000);
}
}
@@ -534,7 +534,7 @@ static ADDRESS_MAP_START( bloodwar, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2")
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("EXTRA")
- AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(bloodwar_coin_lockout_w) // Coin Lockout
+ AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", bloodwar_oki_0_bank_w)
@@ -596,7 +596,7 @@ static ADDRESS_MAP_START( bonkadv, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2")
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("UNK")
- AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(bloodwar_coin_lockout_w) // Coin Lockout
+ AM_RANGE(0xb80000, 0xb80001) AM_WRITE(bloodwar_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable)
AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_DEVWRITE_LEGACY("oki1", bonkadv_oki_0_bank_w)
@@ -609,15 +609,15 @@ ADDRESS_MAP_END
***************************************************************************/
-static READ16_HANDLER( gtmr_wheel_r )
+READ16_MEMBER(kaneko16_state::gtmr_wheel_r)
{
// check 'Controls' dip switch
- switch (input_port_read(space->machine(), "DSW1") & 0x1000)
+ switch (input_port_read(machine(), "DSW1") & 0x1000)
{
case 0x0000: // 'Both Sides' = 270deg Wheel
- return (input_port_read(space->machine(), "WHEEL0"));
+ return (input_port_read(machine(), "WHEEL0"));
case 0x1000: // '1P Side' = 360' Wheel
- return (input_port_read(space->machine(), "WHEEL1"));
+ return (input_port_read(machine(), "WHEEL1"));
default:
return (0);
}
@@ -645,7 +645,7 @@ static WRITE16_DEVICE_HANDLER( gtmr_oki_1_bank_w )
static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
- AM_RANGE(0x0ffffe, 0x0fffff) AM_READ_LEGACY(gtmr_wheel_r) // Wheel Value
+ AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr_wheel_r) // Wheel Value
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_mcu_ram) // Shared With MCU
@@ -677,14 +677,14 @@ static ADDRESS_MAP_START( gtmr_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Samples
AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x900014, 0x900015) AM_READ_LEGACY(kaneko16_rnd_r) // Random Number ?
+ AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r) // Random Number ?
AM_RANGE(0xa00000, 0xa00001) AM_READWRITE_LEGACY(watchdog_reset16_r, watchdog_reset16_w) // Watchdog
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2")
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("UNK")
- AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout
+ AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable) // might do more than that
AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r)
@@ -698,30 +698,30 @@ ADDRESS_MAP_END
***************************************************************************/
-static READ16_HANDLER( gtmr2_wheel_r )
+READ16_MEMBER(kaneko16_state::gtmr2_wheel_r)
{
- switch (input_port_read(space->machine(), "DSW1") & 0x1800)
+ switch (input_port_read(machine(), "DSW1") & 0x1800)
{
case 0x0000: // 270' A. Wheel
- return (input_port_read(space->machine(), "WHEEL0"));
+ return (input_port_read(machine(), "WHEEL0"));
case 0x1000: // 270' D. Wheel
- return (input_port_read(space->machine(), "WHEEL1") << 8);
+ return (input_port_read(machine(), "WHEEL1") << 8);
case 0x0800: // 360' Wheel
- return (input_port_read(space->machine(), "WHEEL2") << 8);
+ return (input_port_read(machine(), "WHEEL2") << 8);
default:
- logerror("gtmr2_wheel_r : read at %06x with joystick\n", cpu_get_pc(&space->device()));
+ logerror("gtmr2_wheel_r : read at %06x with joystick\n", cpu_get_pc(&space.device()));
return (~0);
}
}
-static READ16_HANDLER( gtmr2_IN1_r )
+READ16_MEMBER(kaneko16_state::gtmr2_IN1_r)
{
- return (input_port_read(space->machine(), "P2") & (input_port_read(space->machine(), "FAKE") | ~0x7100));
+ return (input_port_read(machine(), "P2") & (input_port_read(machine(), "FAKE") | ~0x7100));
}
static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x000000, 0x0ffffd) AM_ROM // ROM
- AM_RANGE(0x0ffffe, 0x0fffff) AM_READ_LEGACY(gtmr2_wheel_r) // Wheel Value
+ AM_RANGE(0x0ffffe, 0x0fffff) AM_READ(gtmr2_wheel_r) // Wheel Value
AM_RANGE(0x100000, 0x10ffff) AM_RAM // Work RAM
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_mcu_ram) // Shared With MCU
@@ -751,15 +751,15 @@ static ADDRESS_MAP_START( gtmr2_map, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0x800000, 0x800001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // Samples
AM_RANGE(0x880000, 0x880001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x900014, 0x900015) AM_READ_LEGACY(kaneko16_rnd_r) // Random Number ?
+ AM_RANGE(0x900014, 0x900015) AM_READ(kaneko16_rnd_r) // Random Number ?
AM_RANGE(0xa00000, 0xa00001) AM_READWRITE_LEGACY(watchdog_reset16_r, watchdog_reset16_w) // Watchdog
AM_RANGE(0xb00000, 0xb00001) AM_READ_PORT("P1")
// AM_RANGE(0xb00002, 0xb00003) AM_READ_PORT("P2")
- AM_RANGE(0xb00002, 0xb00003) AM_READ_LEGACY(gtmr2_IN1_r)
+ AM_RANGE(0xb00002, 0xb00003) AM_READ(gtmr2_IN1_r)
AM_RANGE(0xb00004, 0xb00005) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb00006, 0xb00007) AM_READ_PORT("EXTRA")
- AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(kaneko16_coin_lockout_w) // Coin Lockout
+ AM_RANGE(0xb80000, 0xb80001) AM_WRITE(kaneko16_coin_lockout_w) // Coin Lockout
AM_RANGE(0xc00000, 0xc00001) AM_WRITE_LEGACY(kaneko16_display_enable) // might do more than that
AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(toybox_mcu_status_r)
@@ -795,7 +795,7 @@ static ADDRESS_MAP_START( mgcrystl, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW_P1")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P2")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE_LEGACY(kaneko16_eeprom_w) // EEPROM
+ AM_RANGE(0xd00000, 0xd00001) AM_WRITE(kaneko16_eeprom_w) // EEPROM
ADDRESS_MAP_END
@@ -818,21 +818,21 @@ static void kaneko16_common_oki_bank_w( running_machine& machine, const char *ba
}
}
-static WRITE16_HANDLER( shogwarr_oki_bank_w )
+WRITE16_MEMBER(kaneko16_state::shogwarr_oki_bank_w)
{
if (ACCESSING_BITS_0_7)
{
- kaneko16_common_oki_bank_w(space->machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000);
- kaneko16_common_oki_bank_w(space->machine(), "bank11", "oki2", (data & 0xf) , 0x00000, 0x40000);
+ kaneko16_common_oki_bank_w(machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000);
+ kaneko16_common_oki_bank_w(machine(), "bank11", "oki2", (data & 0xf) , 0x00000, 0x40000);
}
}
-static WRITE16_HANDLER( brapboys_oki_bank_w )
+WRITE16_MEMBER(kaneko16_state::brapboys_oki_bank_w)
{
if (ACCESSING_BITS_0_7)
{
- kaneko16_common_oki_bank_w(space->machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000);
- kaneko16_common_oki_bank_w(space->machine(), "bank11", "oki2", (data & 0xf) , 0x20000, 0x20000);
+ kaneko16_common_oki_bank_w(machine(), "bank10", "oki1", (data >> 4) & 0xf, 0x30000, 0x10000);
+ kaneko16_common_oki_bank_w(machine(), "bank11", "oki2", (data & 0xf) , 0x20000, 0x20000);
}
}
@@ -863,7 +863,7 @@ static ADDRESS_MAP_START( shogwarr, AS_PROGRAM, 16, kaneko16_state )
AM_RANGE(0xb80004, 0xb80005) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb80006, 0xb80007) AM_READ_PORT("UNK")
AM_RANGE(0xd00000, 0xd00001) AM_NOP // ? (bit 0)
- AM_RANGE(0xe00000, 0xe00001) AM_WRITE_LEGACY(shogwarr_oki_bank_w) // Samples Bankswitching
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(shogwarr_oki_bank_w) // Samples Bankswitching
ADDRESS_MAP_END
@@ -3931,8 +3931,9 @@ static DRIVER_INIT( shogwarr )
static DRIVER_INIT( brapboys )
{
+ kaneko16_state *state = machine.driver_data<kaneko16_state>();
// sample banking is different on brap boys for the music, why? GALs / PALs ?
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xe00000, 0xe00001, FUNC(brapboys_oki_bank_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xe00000, 0xe00001, write16_delegate(FUNC(kaneko16_state::brapboys_oki_bank_w),state));
// default sample banks
kaneko16_common_oki_bank_w(machine, "bank10", "oki1", 0, 0x30000, 0x10000);
diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c
index 45999482deb..4a5bc333637 100644
--- a/src/mame/drivers/kangaroo.c
+++ b/src/mame/drivers/kangaroo.c
@@ -163,8 +163,8 @@
#define MASTER_CLOCK XTAL_10MHz
-static READ8_HANDLER(mcu_sim_r);
-static WRITE8_HANDLER(mcu_sim_w);
+
+
/*************************************
*
@@ -183,7 +183,7 @@ static MACHINE_START( kangaroo_mcu )
kangaroo_state *state = machine.driver_data<kangaroo_state>();
MACHINE_START_CALL(kangaroo);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xef00, 0xefff, FUNC(mcu_sim_r), FUNC(mcu_sim_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xef00, 0xefff, read8_delegate(FUNC(kangaroo_state::mcu_sim_r),state), write8_delegate(FUNC(kangaroo_state::mcu_sim_w),state));
state->save_item(NAME(state->m_clock));
}
@@ -220,13 +220,12 @@ static MACHINE_RESET( kangaroo )
this just seems to do the trick -V-
*/
-static READ8_HANDLER( mcu_sim_r )
+READ8_MEMBER(kangaroo_state::mcu_sim_r)
{
- kangaroo_state *state = space->machine().driver_data<kangaroo_state>();
- return ++state->m_clock & 0x0f;
+ return ++m_clock & 0x0f;
}
-static WRITE8_HANDLER( mcu_sim_w )
+WRITE8_MEMBER(kangaroo_state::mcu_sim_w)
{
}
@@ -238,10 +237,10 @@ static WRITE8_HANDLER( mcu_sim_w )
*
*************************************/
-static WRITE8_HANDLER( kangaroo_coin_counter_w )
+WRITE8_MEMBER(kangaroo_state::kangaroo_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
@@ -260,7 +259,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, kangaroo_state )
AM_RANGE(0xe400, 0xe400) AM_MIRROR(0x03ff) AM_READ_PORT("DSW0")
AM_RANGE(0xe800, 0xe80a) AM_MIRROR(0x03f0) AM_WRITE_LEGACY(kangaroo_video_control_w) AM_BASE(m_video_control)
AM_RANGE(0xec00, 0xec00) AM_MIRROR(0x00ff) AM_READ_PORT("IN0") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xed00, 0xed00) AM_MIRROR(0x00ff) AM_READ_PORT("IN1") AM_WRITE_LEGACY(kangaroo_coin_counter_w)
+ AM_RANGE(0xed00, 0xed00) AM_MIRROR(0x00ff) AM_READ_PORT("IN1") AM_WRITE(kangaroo_coin_counter_w)
AM_RANGE(0xee00, 0xee00) AM_MIRROR(0x00ff) AM_READ_PORT("IN2")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c
index 355edfca837..ae7b67bc3ac 100644
--- a/src/mame/drivers/karnov.c
+++ b/src/mame/drivers/karnov.c
@@ -328,94 +328,92 @@ static void chelnov_i8751_w( running_machine &machine, int data )
*
*************************************/
-static WRITE16_HANDLER( karnov_control_w )
+WRITE16_MEMBER(karnov_state::karnov_control_w)
{
- karnov_state *state = space->machine().driver_data<karnov_state>();
/* Mnemonics filled in from the schematics, brackets are my comments */
switch (offset << 1)
{
case 0: /* SECLR (Interrupt ack for Level 6 i8751 interrupt) */
- device_set_input_line(state->m_maincpu, 6, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 6, CLEAR_LINE);
- if (state->m_i8751_needs_ack)
+ if (m_i8751_needs_ack)
{
/* If a command and coin insert happen at once, then the i8751 will queue the coin command until the previous command is ACK'd */
- if (state->m_i8751_coin_pending)
+ if (m_i8751_coin_pending)
{
- state->m_i8751_return = state->m_i8751_coin_pending;
- device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
- state->m_i8751_coin_pending = 0;
+ m_i8751_return = m_i8751_coin_pending;
+ device_set_input_line(m_maincpu, 6, HOLD_LINE);
+ m_i8751_coin_pending = 0;
}
- else if (state->m_i8751_command_queue)
+ else if (m_i8751_command_queue)
{
/* Pending control command - just write it back as SECREQ */
- state->m_i8751_needs_ack = 0;
- karnov_control_w(space, 3, state->m_i8751_command_queue, 0xffff);
- state->m_i8751_command_queue = 0;
+ m_i8751_needs_ack = 0;
+ karnov_control_w(space, 3, m_i8751_command_queue, 0xffff);
+ m_i8751_command_queue = 0;
}
else
{
- state->m_i8751_needs_ack = 0;
+ m_i8751_needs_ack = 0;
}
}
return;
case 2: /* SONREQ (Sound CPU byte) */
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
break;
case 4: /* DM (DMA to buffer spriteram) */
- state->m_spriteram->copy();
+ m_spriteram->copy();
break;
case 6: /* SECREQ (Interrupt & Data to i8751) */
- if (state->m_microcontroller_id == KARNOV || state->m_microcontroller_id == KARNOVJ)
- karnov_i8751_w(space->machine(), data);
- if (state->m_microcontroller_id == CHELNOV || state->m_microcontroller_id == CHELNOVU || state->m_microcontroller_id == CHELNOVJ)
- chelnov_i8751_w(space->machine(), data);
- if (state->m_microcontroller_id == WNDRPLNT)
- wndrplnt_i8751_w(space->machine(), data);
+ if (m_microcontroller_id == KARNOV || m_microcontroller_id == KARNOVJ)
+ karnov_i8751_w(machine(), data);
+ if (m_microcontroller_id == CHELNOV || m_microcontroller_id == CHELNOVU || m_microcontroller_id == CHELNOVJ)
+ chelnov_i8751_w(machine(), data);
+ if (m_microcontroller_id == WNDRPLNT)
+ wndrplnt_i8751_w(machine(), data);
break;
case 8: /* HSHIFT (9 bits) - Top bit indicates video flip */
- COMBINE_DATA(&state->m_scroll[0]);
- karnov_flipscreen_w(space->machine(), data >> 15);
+ COMBINE_DATA(&m_scroll[0]);
+ karnov_flipscreen_w(machine(), data >> 15);
break;
case 0xa: /* VSHIFT */
- COMBINE_DATA(&state->m_scroll[1]);
+ COMBINE_DATA(&m_scroll[1]);
break;
case 0xc: /* SECR (Reset i8751) */
logerror("Reset i8751\n");
- state->m_i8751_needs_ack = 0;
- state->m_i8751_coin_pending = 0;
- state->m_i8751_command_queue = 0;
- state->m_i8751_return = 0;
+ m_i8751_needs_ack = 0;
+ m_i8751_coin_pending = 0;
+ m_i8751_command_queue = 0;
+ m_i8751_return = 0;
break;
case 0xe: /* INTCLR (Interrupt ack for Level 7 vbl interrupt) */
- device_set_input_line(state->m_maincpu, 7, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 7, CLEAR_LINE);
break;
}
}
-static READ16_HANDLER( karnov_control_r )
+READ16_MEMBER(karnov_state::karnov_control_r)
{
- karnov_state *state = space->machine().driver_data<karnov_state>();
switch (offset << 1)
{
case 0:
- return input_port_read(space->machine(), "P1_P2");
+ return input_port_read(machine(), "P1_P2");
case 2: /* Start buttons & VBL */
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 4:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 6: /* i8751 return values */
- return state->m_i8751_return;
+ return m_i8751_return;
}
return ~0;
@@ -435,8 +433,8 @@ static ADDRESS_MAP_START( karnov_map, AS_PROGRAM, 16, karnov_state )
AM_RANGE(0x0a0800, 0x0a0fff) AM_WRITE_LEGACY(karnov_videoram_w) /* Wndrplnt Mirror */
AM_RANGE(0x0a1000, 0x0a17ff) AM_WRITEONLY AM_BASE(m_pf_data)
AM_RANGE(0x0a1800, 0x0a1fff) AM_WRITE_LEGACY(karnov_playfield_swap_w)
- AM_RANGE(0x0c0000, 0x0c0007) AM_READ_LEGACY(karnov_control_r)
- AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE_LEGACY(karnov_control_w)
+ AM_RANGE(0x0c0000, 0x0c0007) AM_READ(karnov_control_r)
+ AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE(karnov_control_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index 52ea3b640f8..22141a584b6 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -74,17 +74,15 @@ IO ports and memory map changes. Dip switches differ too.
* VS Version *
********************/
-static WRITE8_HANDLER( control_w )
+WRITE8_MEMBER(kchamp_state::control_w)
{
- kchamp_state *state = space->machine().driver_data<kchamp_state>();
- state->m_nmi_enable = data & 1;
+ m_nmi_enable = data & 1;
}
-static WRITE8_HANDLER( sound_reset_w )
+WRITE8_MEMBER(kchamp_state::sound_reset_w)
{
- kchamp_state *state = space->machine().driver_data<kchamp_state>();
if (!(data & 1))
- device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
}
static WRITE8_DEVICE_HANDLER( sound_control_w )
@@ -94,18 +92,16 @@ static WRITE8_DEVICE_HANDLER( sound_control_w )
state->m_sound_nmi_enable = ((data >> 1) & 1);
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(kchamp_state::sound_command_w)
{
- kchamp_state *state = space->machine().driver_data<kchamp_state>();
soundlatch_w(space, 0, data);
- 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);
}
-static WRITE8_HANDLER( sound_msm_w )
+WRITE8_MEMBER(kchamp_state::sound_msm_w)
{
- kchamp_state *state = space->machine().driver_data<kchamp_state>();
- state->m_msm_data = data;
- state->m_msm_play_lo_nibble = 1;
+ m_msm_data = data;
+ m_msm_play_lo_nibble = 1;
}
static ADDRESS_MAP_START( kchampvs_map, AS_PROGRAM, 8, kchamp_state )
@@ -121,9 +117,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kchampvs_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("P1") AM_WRITE_LEGACY(kchamp_flipscreen_w)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(control_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(sound_reset_w)
- AM_RANGE(0x40, 0x40) AM_READ_PORT("P2") AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(control_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(sound_reset_w)
+ AM_RANGE(0x40, 0x40) AM_READ_PORT("P2") AM_WRITE(sound_command_w)
AM_RANGE(0x80, 0x80) AM_READ_PORT("SYSTEM")
AM_RANGE(0xc0, 0xc0) AM_READ_PORT("DSW")
ADDRESS_MAP_END
@@ -138,7 +134,7 @@ static ADDRESS_MAP_START( kchampvs_sound_io_map, AS_IO, 8, kchamp_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0x01, 0x01) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(sound_msm_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(sound_msm_w)
AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("msm", sound_control_w)
ADDRESS_MAP_END
@@ -146,19 +142,17 @@ ADDRESS_MAP_END
/********************
* 1 Player Version *
********************/
-static READ8_HANDLER( sound_reset_r )
+READ8_MEMBER(kchamp_state::sound_reset_r)
{
- kchamp_state *state = space->machine().driver_data<kchamp_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
return 0;
}
-static WRITE8_HANDLER( kc_sound_control_w )
+WRITE8_MEMBER(kchamp_state::kc_sound_control_w)
{
- kchamp_state *state = space->machine().driver_data<kchamp_state>();
if (offset == 0)
- state->m_sound_nmi_enable = ((data >> 7) & 1);
+ m_sound_nmi_enable = ((data >> 7) & 1);
// else
// DAC_set_volume(0, (data == 1) ? 255 : 0, 0);
}
@@ -175,11 +169,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kchamp_io_map, AS_IO, 8, kchamp_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW") AM_WRITE_LEGACY(kchamp_flipscreen_w)
- AM_RANGE(0x81, 0x81) AM_WRITE_LEGACY(control_w)
+ AM_RANGE(0x81, 0x81) AM_WRITE(control_w)
AM_RANGE(0x90, 0x90) AM_READ_PORT("P1")
AM_RANGE(0x98, 0x98) AM_READ_PORT("P2")
AM_RANGE(0xa0, 0xa0) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xa8, 0xa8) AM_READWRITE_LEGACY(sound_reset_r, sound_command_w)
+ AM_RANGE(0xa8, 0xa8) AM_READWRITE(sound_reset_r, sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kchamp_sound_map, AS_PROGRAM, 8, kchamp_state )
@@ -192,7 +186,7 @@ static ADDRESS_MAP_START( kchamp_sound_io_map, AS_IO, 8, kchamp_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(kc_sound_control_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(kc_sound_control_w)
AM_RANGE(0x06, 0x06) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index 53bcf943302..88cce3ad142 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -446,32 +446,30 @@ static const UINT16 kickgoal_default_eeprom_type1[64] = {
-static READ16_HANDLER( kickgoal_eeprom_r )
+READ16_MEMBER(kickgoal_state::kickgoal_eeprom_r)
{
- kickgoal_state *state = space->machine().driver_data<kickgoal_state>();
if (ACCESSING_BITS_0_7)
{
- return state->m_eeprom->read_bit();
+ return m_eeprom->read_bit();
}
return 0;
}
-static WRITE16_HANDLER( kickgoal_eeprom_w )
+WRITE16_MEMBER(kickgoal_state::kickgoal_eeprom_w)
{
- kickgoal_state *state = space->machine().driver_data<kickgoal_state>();
if (ACCESSING_BITS_0_7)
{
switch (offset)
{
case 0:
- state->m_eeprom->set_cs_line((data & 0x0001) ? CLEAR_LINE : ASSERT_LINE);
+ m_eeprom->set_cs_line((data & 0x0001) ? CLEAR_LINE : ASSERT_LINE);
break;
case 1:
- state->m_eeprom->set_clock_line((data & 0x0001) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->set_clock_line((data & 0x0001) ? ASSERT_LINE : CLEAR_LINE);
break;
case 2:
- state->m_eeprom->write_bit(data & 0x0001);
+ m_eeprom->write_bit(data & 0x0001);
break;
}
}
@@ -487,8 +485,8 @@ static ADDRESS_MAP_START( kickgoal_program_map, AS_PROGRAM, 16, kickgoal_state )
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("SYSTEM")
/// AM_RANGE(0x800004, 0x800005) AM_WRITE_LEGACY(soundlatch_word_w)
AM_RANGE(0x800004, 0x800005) AM_DEVWRITE_LEGACY("oki", actionhw_snd_w)
- AM_RANGE(0x900000, 0x900005) AM_WRITE_LEGACY(kickgoal_eeprom_w)
- AM_RANGE(0x900006, 0x900007) AM_READ_LEGACY(kickgoal_eeprom_r)
+ 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_LEGACY(kickgoal_fgram_w) AM_BASE(m_fgram) /* FG Layer */
AM_RANGE(0xa04000, 0xa07fff) AM_RAM_WRITE_LEGACY(kickgoal_bgram_w) AM_BASE(m_bgram) /* Higher BG Layer */
AM_RANGE(0xa08000, 0xa0bfff) AM_RAM_WRITE_LEGACY(kickgoal_bg2ram_w) AM_BASE(m_bg2ram) /* Lower BG Layer */
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index a09f46b39d6..359e6fe694b 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -21,30 +21,26 @@ Main CPU:
#include "sound/dac.h"
#include "includes/kingobox.h"
-static WRITE8_HANDLER( video_interrupt_w )
+WRITE8_MEMBER(kingofb_state::video_interrupt_w)
{
- kingofb_state *state = space->machine().driver_data<kingofb_state>();
- device_set_input_line_and_vector(state->m_video_cpu, 0, HOLD_LINE, 0xff);
+ device_set_input_line_and_vector(m_video_cpu, 0, HOLD_LINE, 0xff);
}
-static WRITE8_HANDLER( sprite_interrupt_w )
+WRITE8_MEMBER(kingofb_state::sprite_interrupt_w)
{
- kingofb_state *state = space->machine().driver_data<kingofb_state>();
- device_set_input_line_and_vector(state->m_sprite_cpu, 0, HOLD_LINE, 0xff);
+ device_set_input_line_and_vector(m_sprite_cpu, 0, HOLD_LINE, 0xff);
}
-static WRITE8_HANDLER( scroll_interrupt_w )
+WRITE8_MEMBER(kingofb_state::scroll_interrupt_w)
{
- kingofb_state *state = space->machine().driver_data<kingofb_state>();
sprite_interrupt_w(space, offset, data);
- *state->m_scroll_y = data;
+ *m_scroll_y = data;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(kingofb_state::sound_command_w)
{
- kingofb_state *state = space->machine().driver_data<kingofb_state>();
soundlatch_w(space, 0, data);
- device_set_input_line_and_vector(state->m_audio_cpu, 0, HOLD_LINE, 0xff);
+ device_set_input_line_and_vector(m_audio_cpu, 0, HOLD_LINE, 0xff);
}
@@ -57,9 +53,9 @@ static ADDRESS_MAP_START( kingobox_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(kingofb_f800_w) /* NMI enable, palette bank */
AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* ???? */
AM_RANGE(0xf802, 0xf802) AM_WRITEONLY AM_BASE(m_scroll_y)
- AM_RANGE(0xf803, 0xf803) AM_WRITE_LEGACY(scroll_interrupt_w)
- AM_RANGE(0xf804, 0xf804) AM_WRITE_LEGACY(video_interrupt_w)
- AM_RANGE(0xf807, 0xf807) AM_WRITE_LEGACY(sound_command_w) /* sound latch */
+ AM_RANGE(0xf803, 0xf803) AM_WRITE(scroll_interrupt_w)
+ AM_RANGE(0xf804, 0xf804) AM_WRITE(video_interrupt_w)
+ AM_RANGE(0xf807, 0xf807) AM_WRITE(sound_command_w) /* sound latch */
AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("DSW1")
AM_RANGE(0xfc01, 0xfc01) AM_READ_PORT("DSW2")
AM_RANGE(0xfc02, 0xfc02) AM_READ_PORT("P1")
@@ -106,9 +102,9 @@ static ADDRESS_MAP_START( ringking_map, AS_PROGRAM, 8, kingofb_state )
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("share1") /* shared with video cpu */
AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(kingofb_f800_w)
- AM_RANGE(0xd801, 0xd801) AM_WRITE_LEGACY(sprite_interrupt_w)
- AM_RANGE(0xd802, 0xd802) AM_WRITE_LEGACY(video_interrupt_w)
- AM_RANGE(0xd803, 0xd803) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xd801, 0xd801) AM_WRITE(sprite_interrupt_w)
+ AM_RANGE(0xd802, 0xd802) AM_WRITE(video_interrupt_w)
+ AM_RANGE(0xd803, 0xd803) AM_WRITE(sound_command_w)
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW1")
AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW2")
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 6beed28ba2d..0e6399821c4 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -33,14 +33,13 @@ Updates:
#include "includes/kncljoe.h"
-static WRITE8_HANDLER( sound_cmd_w )
+WRITE8_MEMBER(kncljoe_state::sound_cmd_w)
{
- kncljoe_state *state = space->machine().driver_data<kncljoe_state>();
if ((data & 0x80) == 0)
soundlatch_w(space, 0, data & 0x7f);
else
- device_set_input_line(state->m_soundcpu, 0, ASSERT_LINE);
+ device_set_input_line(m_soundcpu, 0, ASSERT_LINE);
}
@@ -53,7 +52,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, kncljoe_state )
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("P2")
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("DSWA")
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("DSWB")
- AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(sound_cmd_w)
+ AM_RANGE(0xd800, 0xd800) AM_WRITE(sound_cmd_w)
AM_RANGE(0xd801, 0xd801) AM_WRITE_LEGACY(kncljoe_control_w)
AM_RANGE(0xd802, 0xd802) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0xd803, 0xd803) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
@@ -97,10 +96,9 @@ static READ8_DEVICE_HANDLER( m6803_port2_r )
return 0;
}
-static WRITE8_HANDLER( sound_irq_ack_w )
+WRITE8_MEMBER(kncljoe_state::sound_irq_ack_w)
{
- kncljoe_state *state = space->machine().driver_data<kncljoe_state>();
- device_set_input_line(state->m_soundcpu, 0, CLEAR_LINE);
+ device_set_input_line(m_soundcpu, 0, CLEAR_LINE);
}
static WRITE8_DEVICE_HANDLER(unused_w)
@@ -111,7 +109,7 @@ static WRITE8_DEVICE_HANDLER(unused_w)
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, kncljoe_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x0fff) AM_WRITENOP
- AM_RANGE(0x1000, 0x1fff) AM_WRITE_LEGACY(sound_irq_ack_w)
+ AM_RANGE(0x1000, 0x1fff) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x2000, 0x7fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c
index 054565cb4b7..fc2511438ab 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -355,7 +355,7 @@ static void daiskiss_esc(address_space *space, UINT32 p1, UINT32 p2, UINT32 p3,
static UINT8 esc_program[4096];
static void (*esc_cb)(address_space *space, UINT32 p1, UINT32 p2, UINT32 p3, UINT32 p4);
-static WRITE32_HANDLER( esc_w )
+WRITE32_MEMBER(konamigx_state::esc_w)
{
UINT32 opcode;
UINT32 params;
@@ -373,7 +373,7 @@ static WRITE32_HANDLER( esc_w )
}
/* the master opcode can be at an unaligned address, so get it "safely" */
- opcode = (space->read_word(data+2))|(space->read_word(data)<<16);
+ opcode = (space.read_word(data+2))|(space.read_word(data)<<16);
/* if there's an OBJECT_MAGIC_ID, that means
there is a valid ESC command packet. */
@@ -381,15 +381,15 @@ static WRITE32_HANDLER( esc_w )
{
int i;
/* get the subop now */
- opcode = space->read_byte(data+8);
- params = (space->read_word(data+12) << 16) | space->read_word(data+14);
+ opcode = space.read_byte(data+8);
+ params = (space.read_word(data+12) << 16) | space.read_word(data+14);
switch(opcode) {
case 5: // Reset
break;
case 2: // Load program
for(i=0; i<4096; i++)
- esc_program[i] = space->read_byte(params+i);
+ esc_program[i] = space.read_byte(params+i);
/*
{
FILE *f;
@@ -404,23 +404,23 @@ static WRITE32_HANDLER( esc_w )
break;
case 1: // Run program
if(esc_cb) {
- UINT32 p1 = (space->read_word(params+0)<<16) | space->read_word(params+2);
- UINT32 p2 = (space->read_word(params+4)<<16) | space->read_word(params+6);
- UINT32 p3 = (space->read_word(params+8)<<16) | space->read_word(params+10);
- UINT32 p4 = (space->read_word(params+12)<<16) | space->read_word(params+14);
- esc_cb(space, p1, p2, p3, p4);
+ UINT32 p1 = (space.read_word(params+0)<<16) | space.read_word(params+2);
+ UINT32 p2 = (space.read_word(params+4)<<16) | space.read_word(params+6);
+ UINT32 p3 = (space.read_word(params+8)<<16) | space.read_word(params+10);
+ UINT32 p4 = (space.read_word(params+12)<<16) | space.read_word(params+14);
+ esc_cb(&space, p1, p2, p3, p4);
}
break;
default:
// logerror("Unknown ESC opcode %d\n", opcode);
break;
}
- space->write_byte(data+9, ESTATE_END);
+ space.write_byte(data+9, ESTATE_END);
if (konamigx_wrport1_1 & 0x10)
{
gx_rdport1_3 &= ~8;
- cputag_set_input_line(space->machine(), "maincpu", 4, HOLD_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, HOLD_LINE);
}
}
else
@@ -445,7 +445,7 @@ static CUSTOM_INPUT( gx_rdport1_3_r )
return (gx_rdport1_3 >> 1);
}
-static WRITE32_HANDLER( eeprom_w )
+WRITE32_MEMBER(konamigx_state::eeprom_w)
{
UINT32 odata;
@@ -463,7 +463,7 @@ static WRITE32_HANDLER( eeprom_w )
bit 0: eeprom data
*/
- input_port_write(space->machine(), "EEPROMOUT", odata, 0xff);
+ input_port_write(machine(), "EEPROMOUT", odata, 0xff);
konamigx_wrport1_0 = odata;
}
@@ -482,14 +482,14 @@ static WRITE32_HANDLER( eeprom_w )
*/
konamigx_wrport1_1 = (data>>16)&0xff;
-// logerror("write %x to IRQ register (PC=%x)\n", konamigx_wrport1_1, cpu_get_pc(&space->device()));
+// logerror("write %x to IRQ register (PC=%x)\n", konamigx_wrport1_1, cpu_get_pc(&space.device()));
// gx_syncen is to ensure each IRQ is trigger at least once after being enabled
if (konamigx_wrport1_1 & 0x80) gx_syncen |= konamigx_wrport1_1 & 0x1f;
}
}
-static WRITE32_HANDLER( control_w )
+WRITE32_MEMBER(konamigx_state::control_w)
{
//logerror("write %x to control register (mask=%x)\n", data, mem_mask);
@@ -510,13 +510,13 @@ static WRITE32_HANDLER( control_w )
{
// enable 68k
// clear the halt condition and reset the 68000
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_HALT, CLEAR_LINE);
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_HALT, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_RESET, PULSE_LINE);
}
else
{
// disable 68k
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_HALT, ASSERT_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_HALT, ASSERT_LINE);
}
K053246_set_OBJCHA_line((data&0x100000) ? ASSERT_LINE : CLEAR_LINE);
@@ -542,13 +542,13 @@ static int suspension_active, resume_trigger;
#ifdef UNUSED_FUNCTION
static struct { UINT32 offs, pc, mask, data; } waitskip;
-static READ32_HANDLER(waitskip_r)
+READ32_MEMBER(konamigx_state::waitskip_r)
{
UINT32 data = gx_workram[waitskip.offs+offset];
- if (cpu_get_pc(&space->device()) == waitskip.pc && (data & mem_mask) == (waitskip.data & mem_mask))
+ if (cpu_get_pc(&space.device()) == waitskip.pc && (data & mem_mask) == (waitskip.data & mem_mask))
{
- device_spin_until_trigger(&space->device(), resume_trigger);
+ device_spin_until_trigger(&space.device(), resume_trigger);
suspension_active = 1;
}
@@ -557,7 +557,7 @@ static READ32_HANDLER(waitskip_r)
#endif
-static READ32_HANDLER( ccu_r )
+READ32_MEMBER(konamigx_state::ccu_r)
{
// the routine at 204abe in opengolf polls to see if we're in vblank (it wants values between 0x111 and 0x1df)
if (offset == 0x1c/4)
@@ -572,21 +572,21 @@ static READ32_HANDLER( ccu_r )
return 0;
}
-static WRITE32_HANDLER( ccu_w )
+WRITE32_MEMBER(konamigx_state::ccu_w)
{
if (offset == 0x1c/4)
{
// vblank interrupt ACK
if (ACCESSING_BITS_24_31)
{
- cputag_set_input_line(space->machine(), "maincpu", 1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 1, CLEAR_LINE);
gx_syncen |= 0x20;
}
// hblank interrupt ACK
if (ACCESSING_BITS_8_15)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
gx_syncen |= 0x40;
}
}
@@ -711,7 +711,7 @@ static TIMER_DEVICE_CALLBACK(konamigx_hbinterrupt)
static UINT8 sndto000[16], sndto020[16]; /* read/write split mapping */
static int snd020_hack;
-static READ32_HANDLER( sound020_r )
+READ32_MEMBER(konamigx_state::sound020_r)
{
UINT32 reg, MSW, LSW, rv = 0;
@@ -730,7 +730,7 @@ static READ32_HANDLER( sound020_r )
rv |= LSW<<8;
}
-// mame_printf_debug("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space->device()));
+// mame_printf_debug("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space.device()));
// we clearly have some problem because some games require these hacks
// perhaps 68000/68020 timing is skewed?
@@ -740,43 +740,43 @@ static READ32_HANDLER( sound020_r )
if (reg == 0) rv |= 0xff00;
break;
case 2: // Winning Spike
- if (cpu_get_pc(&space->device()) == 0x2026fe) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x2026fe) rv = 0xc0c0c0c0;
break;
case 3: // Run'n Gun 2
- if (cpu_get_pc(&space->device()) == 0x24f0b6) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24f122) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24f0b6) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24f122) rv = 0xc0c0c0c0;
break;
case 4: // Rushing Heroes
- if (cpu_get_pc(&space->device()) == 0x20eda6) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x20eda6) rv = 0xc0c0c0c0;
break;
case 5: // Vs. Net Soccer ver. UAB
- if (cpu_get_pc(&space->device()) == 0x24c5d2) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24c63e) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24c5d2) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24c63e) rv = 0xc0c0c0c0;
break;
case 6: // Slam Dunk 2
- if (cpu_get_pc(&space->device()) == 0x24f1b0) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24f21c) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24f1b0) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24f21c) rv = 0xc0c0c0c0;
break;
case 7: // Vs. Net Soccer ver. AAA
- if (cpu_get_pc(&space->device()) == 0x24c6b6) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24c722) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24c6b6) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24c722) rv = 0xc0c0c0c0;
break;
case 8: // Vs. Net Soccer ver. EAD
- if (cpu_get_pc(&space->device()) == 0x24c416) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24c482) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24c416) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24c482) rv = 0xc0c0c0c0;
break;
case 9: // Vs. Net Soccer ver. EAB
- if (cpu_get_pc(&space->device()) == 0x24c400) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24c46c) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24c400) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24c46c) rv = 0xc0c0c0c0;
break;
case 10: // Vs. Net Soccer ver. JAB
- if (cpu_get_pc(&space->device()) == 0x24c584) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x24c5f0) rv = 0xc0c0c0c0;
+ if (cpu_get_pc(&space.device()) == 0x24c584) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x24c5f0) rv = 0xc0c0c0c0;
break;
case 11: // Racin' Force
if (reg == 0)
{
- if (cpu_get_pc(&space->device()) == 0x0202190)
+ if (cpu_get_pc(&space.device()) == 0x0202190)
rv |= 0x4000;
}
break;
@@ -784,33 +784,33 @@ static READ32_HANDLER( sound020_r )
case 12: // Open Golf / Golfing Greats 2
if (reg == 0)
{
- if ((cpu_get_pc(&space->device()) == 0x0245e80) || (cpu_get_pc(&space->device()) == 0x02459d6) || (cpu_get_pc(&space->device()) == 0x0245e40) )
+ if ((cpu_get_pc(&space.device()) == 0x0245e80) || (cpu_get_pc(&space.device()) == 0x02459d6) || (cpu_get_pc(&space.device()) == 0x0245e40) )
rv |= 0x4000;
}
break;
case 13: // Soccer Superstars
- //if(cpu_get_pc(&space->device()) != 0x236dce && cpu_get_pc(&space->device()) != 0x236d8a && cpu_get_pc(&space->device()) != 0x236d8a)
- // printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space->device()));
- if (cpu_get_pc(&space->device()) == 0x0236e04) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x0236e12) rv = 0xffffffff;
+ //if(cpu_get_pc(&space.device()) != 0x236dce && cpu_get_pc(&space.device()) != 0x236d8a && cpu_get_pc(&space.device()) != 0x236d8a)
+ // printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space.device()));
+ if (cpu_get_pc(&space.device()) == 0x0236e04) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x0236e12) rv = 0xffffffff;
break;
case 14: // Soccer Superstars ver. JAC
- //if(cpu_get_pc(&space->device()) != 0x2367b4)
- // printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space->device()));
- if (cpu_get_pc(&space->device()) == 0x02367ea) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x02367f8) rv = 0xffffffff;
+ //if(cpu_get_pc(&space.device()) != 0x2367b4)
+ // printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space.device()));
+ if (cpu_get_pc(&space.device()) == 0x02367ea) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x02367f8) rv = 0xffffffff;
break;
case 15: // Soccer Superstars ver. JAA
- //if(cpu_get_pc(&space->device()) != 0x23670a)
- // printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space->device()));
- if (cpu_get_pc(&space->device()) == 0x0236740) rv = 0xffffffff;
- if (cpu_get_pc(&space->device()) == 0x023674e) rv = 0xffffffff;
+ //if(cpu_get_pc(&space.device()) != 0x23670a)
+ // printf("Read 68k @ %x (PC=%x)\n", reg, cpu_get_pc(&space.device()));
+ if (cpu_get_pc(&space.device()) == 0x0236740) rv = 0xffffffff;
+ if (cpu_get_pc(&space.device()) == 0x023674e) rv = 0xffffffff;
break;
case 16: // Dragoon Might ver. JAA
{
UINT32 cur_pc;
- cur_pc = cpu_get_pc(&space->device());
+ cur_pc = cpu_get_pc(&space.device());
switch(cur_pc)
{
@@ -844,7 +844,7 @@ INLINE void write_snd_020(running_machine &machine, int reg, int val)
}
}
-static WRITE32_HANDLER( sound020_w )
+WRITE32_MEMBER(konamigx_state::sound020_w)
{
int reg=0, val=0;
@@ -852,14 +852,14 @@ static WRITE32_HANDLER( sound020_w )
{
reg = offset<<1;
val = data>>24;
- write_snd_020(space->machine(), reg, val);
+ write_snd_020(machine(), reg, val);
}
if (ACCESSING_BITS_8_15)
{
reg = (offset<<1)+1;
val = (data>>8)&0xff;
- write_snd_020(space->machine(), reg, val);
+ write_snd_020(machine(), reg, val);
}
}
@@ -888,18 +888,18 @@ static const adc083x_interface konamigx_adc_interface = {
};
-static READ32_HANDLER( le2_gun_H_r )
+READ32_MEMBER(konamigx_state::le2_gun_H_r)
{
- int p1x = input_port_read(space->machine(), "LIGHT0_X")*290/0xff+20;
- int p2x = input_port_read(space->machine(), "LIGHT1_X")*290/0xff+20;
+ int p1x = input_port_read(machine(), "LIGHT0_X")*290/0xff+20;
+ int p2x = input_port_read(machine(), "LIGHT1_X")*290/0xff+20;
return (p1x<<16)|p2x;
}
-static READ32_HANDLER( le2_gun_V_r )
+READ32_MEMBER(konamigx_state::le2_gun_V_r)
{
- int p1y = input_port_read(space->machine(), "LIGHT0_Y")*224/0xff;
- int p2y = input_port_read(space->machine(), "LIGHT1_Y")*224/0xff;
+ int p1y = input_port_read(machine(), "LIGHT0_Y")*224/0xff;
+ int p2y = input_port_read(machine(), "LIGHT1_Y")*224/0xff;
// make "off the bottom" reload too
if (p1y >= 0xdf) p1y = 0;
@@ -911,26 +911,26 @@ static READ32_HANDLER( le2_gun_V_r )
/**********************************************************************************/
/* system or game dependent handlers */
-static READ32_HANDLER( gx5bppspr_r )
+READ32_MEMBER(konamigx_state::gx5bppspr_r)
{
- return (K055673_rom_word_r(space, offset*2+1, 0xffff) | K055673_rom_word_r(space, offset*2, 0xffff)<<16);
+ return (K055673_rom_word_r(&space, offset*2+1, 0xffff) | K055673_rom_word_r(&space, offset*2, 0xffff)<<16);
}
-static READ32_HANDLER( gx6bppspr_r )
+READ32_MEMBER(konamigx_state::gx6bppspr_r)
{
- return (K055673_GX6bpp_rom_word_r(space, offset*2+1, 0xffff) | K055673_GX6bpp_rom_word_r(space, offset*2, 0xffff)<<16);
+ return (K055673_GX6bpp_rom_word_r(&space, offset*2+1, 0xffff) | K055673_GX6bpp_rom_word_r(&space, offset*2, 0xffff)<<16);
}
-static READ32_HANDLER( type1_roz_r1 )
+READ32_MEMBER(konamigx_state::type1_roz_r1)
{
- UINT32 *ROM = (UINT32 *)space->machine().region("gfx3")->base();
+ UINT32 *ROM = (UINT32 *)machine().region("gfx3")->base();
return ROM[offset];
}
-static READ32_HANDLER( type1_roz_r2 )
+READ32_MEMBER(konamigx_state::type1_roz_r2)
{
- UINT32 *ROM = (UINT32 *)space->machine().region("gfx3")->base();
+ UINT32 *ROM = (UINT32 *)machine().region("gfx3")->base();
ROM += (0x600000/2);
@@ -939,7 +939,7 @@ static READ32_HANDLER( type1_roz_r2 )
//static int sync_frame = 0;
-static READ32_HANDLER( type3_sync_r )
+READ32_MEMBER(konamigx_state::type3_sync_r)
{
if(konamigx_current_frame==0)
return -1; // return 0xfffffffe | 1;
@@ -1024,7 +1024,7 @@ static int last_prot_op, last_prot_clk;
//static int cc=0;
-static WRITE32_HANDLER( type4_prot_w )
+WRITE32_MEMBER(konamigx_state::type4_prot_w)
{
int clk;
int i;
@@ -1058,20 +1058,20 @@ static WRITE32_HANDLER( type4_prot_w )
// memcpy from c01000 to c01400 for 0x400 bytes (startup check for type 4 games)
for (i = 0; i < 0x400; i += 2)
{
- space->write_word(0xc01400+i, space->read_word(0xc01000+i));
+ space.write_word(0xc01400+i, space.read_word(0xc01000+i));
}
}
else if(last_prot_op == 0x57a) // winspike
{
/* player 1 input buffer protection */
- space->write_dword(0xc10f00, space->read_dword(0xc00f10));
- space->write_dword(0xc10f04, space->read_dword(0xc00f14));
+ space.write_dword(0xc10f00, space.read_dword(0xc00f10));
+ space.write_dword(0xc10f04, space.read_dword(0xc00f14));
/* player 2 input buffer protection */
- space->write_dword(0xc10f20, space->read_dword(0xc00f20));
- space->write_dword(0xc10f24, space->read_dword(0xc00f24));
+ space.write_dword(0xc10f20, space.read_dword(0xc00f20));
+ space.write_dword(0xc10f24, space.read_dword(0xc00f24));
/* ... */
- space->write_dword(0xc0fe00, space->read_dword(0xc00f30));
- space->write_dword(0xc0fe04, space->read_dword(0xc00f34));
+ space.write_dword(0xc0fe00, space.read_dword(0xc00f30));
+ space.write_dword(0xc0fe04, space.read_dword(0xc00f34));
}
else if(last_prot_op == 0xd97) // rushhero
{
@@ -1083,7 +1083,7 @@ static WRITE32_HANDLER( type4_prot_w )
{
for (i = 0; i <= 0x10; i += 4)
{
- space->write_dword(dst + i, space->read_dword(src+i));
+ space.write_dword(dst + i, space.read_dword(src+i));
}
src -= 0x10;
@@ -1091,10 +1091,10 @@ static WRITE32_HANDLER( type4_prot_w )
}
/* Input buffer copiers, only this command is executed so it's safe to assume that's polled here */
- space->write_byte(0xc01cc0, ~space->read_byte(0xc00507));
- space->write_byte(0xc01cc1, ~space->read_byte(0xc00527));
- space->write_byte(0xc01cc4, ~space->read_byte(0xc00547));
- space->write_byte(0xc01cc5, ~space->read_byte(0xc00567));
+ space.write_byte(0xc01cc0, ~space.read_byte(0xc00507));
+ space.write_byte(0xc01cc1, ~space.read_byte(0xc00527));
+ space.write_byte(0xc01cc4, ~space.read_byte(0xc00547));
+ space.write_byte(0xc01cc5, ~space.read_byte(0xc00567));
}
else if(last_prot_op == 0xb16) // slamdnk2
{
@@ -1104,7 +1104,7 @@ static WRITE32_HANDLER( type4_prot_w )
for (spr = 0; spr < 0x100; spr++)
{
- space->write_word(dst, space->read_word(src));
+ space.write_word(dst, space.read_word(src));
src += 4;
dst += 2;
}
@@ -1114,26 +1114,26 @@ static WRITE32_HANDLER( type4_prot_w )
else if(last_prot_op == 0x515) // vsnetscr screen 1
{
int adr;
- //printf("GXT4: command %x %d (PC=%x)\n", last_prot_op, cc++, cpu_get_pc(&space->device()));
+ //printf("GXT4: command %x %d (PC=%x)\n", last_prot_op, cc++, cpu_get_pc(&space.device()));
for (adr = 0; adr < 0x400; adr += 2)
- space->write_word(0xc01c00+adr, space->read_word(0xc01800+adr));
+ space.write_word(0xc01c00+adr, space.read_word(0xc01800+adr));
}
else if(last_prot_op == 0x115d) // vsnetscr screen 2
{
int adr;
- //printf("GXT4: command %x %d (PC=%x)\n", last_prot_op, cc++, cpu_get_pc(&space->device()));
+ //printf("GXT4: command %x %d (PC=%x)\n", last_prot_op, cc++, cpu_get_pc(&space.device()));
for (adr = 0; adr < 0x400; adr += 2)
- space->write_word(0xc18c00+adr, space->read_word(0xc18800+adr));
+ space.write_word(0xc18c00+adr, space.read_word(0xc18800+adr));
}
else
{
- printf("GXT4: unknown protection command %x (PC=%x)\n", last_prot_op, cpu_get_pc(&space->device()));
+ printf("GXT4: unknown protection command %x (PC=%x)\n", last_prot_op, cpu_get_pc(&space.device()));
}
if (konamigx_wrport1_1 & 0x10)
{
gx_rdport1_3 &= ~8;
- cputag_set_input_line(space->machine(), "maincpu", 4, HOLD_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, HOLD_LINE);
}
// don't accidentally do a phony command
@@ -1145,9 +1145,9 @@ static WRITE32_HANDLER( type4_prot_w )
}
// cabinet lamps for type 1 games
-static WRITE32_HANDLER( type1_cablamps_w )
+WRITE32_MEMBER(konamigx_state::type1_cablamps_w)
{
- set_led_status(space->machine(), 0, (data>>24)&1);
+ set_led_status(machine(), 0, (data>>24)&1);
}
/**********************************************************************************/
@@ -1166,13 +1166,13 @@ static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xd44000, 0xd4400f) AM_WRITE_LEGACY(konamigx_tilebank_w)
AM_RANGE(0xd48000, 0xd48007) AM_WRITE_LEGACY(K053246_long_w)
AM_RANGE(0xd4a010, 0xd4a01f) AM_WRITE_LEGACY(K053247_reg_long_w)
- AM_RANGE(0xd4c000, 0xd4c01f) AM_READWRITE_LEGACY(ccu_r, ccu_w)
+ AM_RANGE(0xd4c000, 0xd4c01f) AM_READWRITE(ccu_r, ccu_w)
AM_RANGE(0xd4e000, 0xd4e01f) AM_WRITENOP
AM_RANGE(0xd50000, 0xd500ff) AM_WRITE_LEGACY(K055555_long_w)
- AM_RANGE(0xd52000, 0xd5200f) AM_WRITE_LEGACY(sound020_w)
- AM_RANGE(0xd52010, 0xd5201f) AM_READ_LEGACY(sound020_r)
- AM_RANGE(0xd56000, 0xd56003) AM_WRITE_LEGACY(eeprom_w)
- AM_RANGE(0xd58000, 0xd58003) AM_WRITE_LEGACY(control_w)
+ AM_RANGE(0xd52000, 0xd5200f) AM_WRITE(sound020_w)
+ AM_RANGE(0xd52010, 0xd5201f) AM_READ(sound020_r)
+ AM_RANGE(0xd56000, 0xd56003) AM_WRITE(eeprom_w)
+ AM_RANGE(0xd58000, 0xd58003) AM_WRITE(control_w)
AM_RANGE(0xd5a000, 0xd5a003) AM_READ_PORT("SYSTEM_DSW")
AM_RANGE(0xd5c000, 0xd5c003) AM_READ_PORT("INPUTS")
AM_RANGE(0xd5e000, 0xd5e003) AM_READ_PORT("SERVICE")
@@ -1187,47 +1187,47 @@ static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32, konamigx_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32, konamigx_state )
- AM_RANGE(0xd4a000, 0xd4a01f) AM_READ_LEGACY(gx6bppspr_r) // sprite ROM readback
+ AM_RANGE(0xd4a000, 0xd4a01f) AM_READ(gx6bppspr_r) // sprite ROM readback
AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE_LEGACY(konamigx_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xdc0000, 0xdc1fff) AM_RAM // LAN RAM? (Racin' Force has, Open Golf doesn't)
AM_RANGE(0xdd0000, 0xdd00ff) AM_READNOP AM_WRITENOP // LAN board
AM_RANGE(0xdda000, 0xddafff) AM_WRITE_PORT("ADC-WRPORT")
AM_RANGE(0xddc000, 0xddcfff) AM_READ_PORT("ADC-RDPORT")
- AM_RANGE(0xdde000, 0xdde003) AM_WRITE_LEGACY(type1_cablamps_w)
+ AM_RANGE(0xdde000, 0xdde003) AM_WRITE(type1_cablamps_w)
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE_LEGACY((UINT32**)&K053936_0_ctrl)
AM_RANGE(0xe20000, 0xe2000f) AM_WRITENOP
AM_RANGE(0xe40000, 0xe40003) AM_WRITENOP
AM_RANGE(0xe80000, 0xe81fff) AM_RAM AM_BASE_LEGACY((UINT32**)&K053936_0_linectrl) // chips 21L+19L / S
AM_RANGE(0xec0000, 0xedffff) AM_RAM_WRITE_LEGACY(konamigx_t1_psacmap_w) AM_BASE_LEGACY(&gx_psacram) // chips 20J+23J+18J / S
- AM_RANGE(0xf00000, 0xf3ffff) AM_READ_LEGACY(type1_roz_r1) // ROM readback
- AM_RANGE(0xf40000, 0xf7ffff) AM_READ_LEGACY(type1_roz_r2) // ROM readback
+ AM_RANGE(0xf00000, 0xf3ffff) AM_READ(type1_roz_r1) // ROM readback
+ AM_RANGE(0xf40000, 0xf7ffff) AM_READ(type1_roz_r2) // ROM readback
AM_RANGE(0xf80000, 0xf80fff) AM_RAM // chip 21Q / S
AM_RANGE(0xfc0000, 0xfc00ff) AM_RAM // chip 22N / S
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gx_type2_map, AS_PROGRAM, 32, konamigx_state )
- AM_RANGE(0xcc0000, 0xcc0003) AM_WRITE_LEGACY(esc_w)
+ AM_RANGE(0xcc0000, 0xcc0003) AM_WRITE(esc_w)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE_LEGACY(konamigx_palette_w) AM_BASE_GENERIC(paletteram)
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gx_type3_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xd90000, 0xd97fff) AM_RAM
- //AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE_LEGACY(type4_prot_w)
+ //AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE_LEGACY((UINT32**)&K053936_0_ctrl)
//AM_RANGE(0xe20000, 0xe20003) AM_WRITENOP
AM_RANGE(0xe40000, 0xe40003) AM_WRITE_LEGACY(konamigx_type3_psac2_bank_w) AM_BASE_LEGACY(&konamigx_type3_psac2_bank)
AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE_LEGACY((UINT32**)&K053936_0_linectrl)
AM_RANGE(0xe80000, 0xe83fff) AM_RAM AM_BASE_GENERIC(paletteram) // main monitor palette
AM_RANGE(0xea0000, 0xea3fff) AM_RAM AM_BASE_LEGACY(&gx_subpaletteram32)
- AM_RANGE(0xec0000, 0xec0003) AM_READ_LEGACY(type3_sync_r)
+ AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r)
//AM_RANGE(0xf00000, 0xf07fff) AM_RAM
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gx_type4_map, AS_PROGRAM, 32, konamigx_state )
- AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE_LEGACY(type4_prot_w)
+ AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_BASE_LEGACY((UINT32**)&K053936_0_ctrl)
AM_RANGE(0xe20000, 0xe20003) AM_WRITENOP
@@ -1235,7 +1235,7 @@ static ADDRESS_MAP_START( gx_type4_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xe60000, 0xe60fff) AM_RAM AM_BASE_LEGACY((UINT32**)&K053936_0_linectrl) // 29C & 29G (PSAC2 line control)
AM_RANGE(0xe80000, 0xe87fff) AM_RAM AM_BASE_GENERIC(paletteram) // 11G/13G/15G (main screen palette RAM)
AM_RANGE(0xea0000, 0xea7fff) AM_RAM AM_BASE_LEGACY(&gx_subpaletteram32) // 5G/7G/9G (sub screen palette RAM)
- AM_RANGE(0xec0000, 0xec0003) AM_READ_LEGACY(type3_sync_r) // type 4 polls this too
+ AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r) // type 4 polls this too
AM_RANGE(0xf00000, 0xf07fff) AM_RAM_WRITE_LEGACY(konamigx_t4_psacmap_w) AM_BASE_LEGACY(&gx_psacram) // PSAC2 tilemap
// AM_RANGE(0xf00000, 0xf07fff) AM_RAM
AM_IMPORT_FROM(gx_base_memmap)
@@ -1244,12 +1244,12 @@ ADDRESS_MAP_END
/**********************************************************************************/
/* Sound handling */
-static READ16_HANDLER( sndcomm68k_r )
+READ16_MEMBER(konamigx_state::sndcomm68k_r)
{
return sndto000[offset];
}
-static WRITE16_HANDLER( sndcomm68k_w )
+WRITE16_MEMBER(konamigx_state::sndcomm68k_w)
{
// logerror("68K: write %x to %x\n", data, offset);
sndto020[offset] = data;
@@ -1260,30 +1260,30 @@ static INTERRUPT_GEN(tms_sync)
downcast<tms57002_device *>(device)->sync();
}
-static READ16_HANDLER(tms57002_data_word_r)
+READ16_MEMBER(konamigx_state::tms57002_data_word_r)
{
- return space->machine().device<tms57002_device>("dasp")->data_r(*space, 0);
+ return machine().device<tms57002_device>("dasp")->data_r(*&space, 0);
}
-static WRITE16_HANDLER(tms57002_data_word_w)
+WRITE16_MEMBER(konamigx_state::tms57002_data_word_w)
{
if (ACCESSING_BITS_0_7)
- space->machine().device<tms57002_device>("dasp")->data_w(*space, 0, data);
+ machine().device<tms57002_device>("dasp")->data_w(*&space, 0, data);
}
-static READ16_HANDLER(tms57002_status_word_r)
+READ16_MEMBER(konamigx_state::tms57002_status_word_r)
{
- return (space->machine().device<tms57002_device>("dasp")->dready_r(*space, 0) ? 4 : 0) |
- (space->machine().device<tms57002_device>("dasp")->empty_r(*space, 0) ? 1 : 0);
+ return (machine().device<tms57002_device>("dasp")->dready_r(*&space, 0) ? 4 : 0) |
+ (machine().device<tms57002_device>("dasp")->empty_r(*&space, 0) ? 1 : 0);
}
-static WRITE16_HANDLER(tms57002_control_word_w)
+WRITE16_MEMBER(konamigx_state::tms57002_control_word_w)
{
if (ACCESSING_BITS_0_7)
{
- space->machine().device<tms57002_device>("dasp")->pload_w(*space, 0, data & 4);
- space->machine().device<tms57002_device>("dasp")->cload_w(*space, 0, data & 8);
- cputag_set_input_line(space->machine(), "dasp", INPUT_LINE_RESET, !(data & 16) ? ASSERT_LINE : CLEAR_LINE);
+ machine().device<tms57002_device>("dasp")->pload_w(*&space, 0, data & 4);
+ machine().device<tms57002_device>("dasp")->cload_w(*&space, 0, data & 8);
+ cputag_set_input_line(machine(), "dasp", INPUT_LINE_RESET, !(data & 16) ? ASSERT_LINE : CLEAR_LINE);
}
}
@@ -1293,10 +1293,10 @@ static ADDRESS_MAP_START( gxsndmap, AS_PROGRAM, 16, konamigx_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE_LEGACY(&gx_sndram)
AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8("konami1", k054539_device, read, write, 0xff00)
AM_RANGE(0x200000, 0x2004ff) AM_DEVREADWRITE8("konami2", k054539_device, read, write, 0x00ff)
- AM_RANGE(0x300000, 0x300001) AM_READWRITE_LEGACY(tms57002_data_word_r, tms57002_data_word_w)
- AM_RANGE(0x400000, 0x40000f) AM_WRITE_LEGACY(sndcomm68k_w)
- AM_RANGE(0x400010, 0x40001f) AM_READ_LEGACY(sndcomm68k_r)
- AM_RANGE(0x500000, 0x500001) AM_READWRITE_LEGACY(tms57002_status_word_r, tms57002_control_word_w)
+ AM_RANGE(0x300000, 0x300001) AM_READWRITE(tms57002_data_word_r, tms57002_data_word_w)
+ AM_RANGE(0x400000, 0x40000f) AM_WRITE(sndcomm68k_w)
+ AM_RANGE(0x400010, 0x40001f) AM_READ(sndcomm68k_r)
+ AM_RANGE(0x500000, 0x500001) AM_READWRITE(tms57002_status_word_r, tms57002_control_word_w)
AM_RANGE(0x580000, 0x580001) AM_WRITENOP
ADDRESS_MAP_END
@@ -3734,7 +3734,7 @@ static DRIVER_INIT(konamigx)
resume_trigger = 0;
dmadelay_timer = machine.scheduler().timer_alloc(FUNC(dmaend_callback));
-
+ konamigx_state *state = machine.driver_data<konamigx_state>();
i = match = 0;
while ((gameDefs[i].cfgport != -1) && (!match))
{
@@ -3748,8 +3748,8 @@ static DRIVER_INIT(konamigx)
switch (gameDefs[i].special)
{
case 1: // LE2 guns
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd44000, 0xd44003, FUNC(le2_gun_H_r) );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd44004, 0xd44007, FUNC(le2_gun_V_r) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd44000, 0xd44003, read32_delegate(FUNC(konamigx_state::le2_gun_H_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd44004, 0xd44007, read32_delegate(FUNC(konamigx_state::le2_gun_V_r),state));
break;
case 2: // tkmmpzdm hack
@@ -3785,7 +3785,7 @@ static DRIVER_INIT(konamigx)
break;
case 7: // install type 4 Xilinx protection for non-type 3/4 games
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xcc0000, 0xcc0007, FUNC(type4_prot_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xcc0000, 0xcc0007, write32_delegate(FUNC(konamigx_state::type4_prot_w),state));
break;
case 8: // tbyahhoo
@@ -3805,14 +3805,14 @@ static DRIVER_INIT(konamigx)
switch (readback)
{
case BPP5:
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd4a000, 0xd4a00f, FUNC(gx5bppspr_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd4a000, 0xd4a00f, read32_delegate(FUNC(konamigx_state::gx5bppspr_r),state));
break;
case BPP66:
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd00000, 0xd01fff, FUNC(K056832_6bpp_rom_long_r));
case BPP6:
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd4a000, 0xd4a00f, FUNC(gx6bppspr_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd4a000, 0xd4a00f, read32_delegate(FUNC(konamigx_state::gx6bppspr_r),state));
break;
}
diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c
index fbffe4900da..b8a2d3a1634 100644
--- a/src/mame/drivers/kopunch.c
+++ b/src/mame/drivers/kopunch.c
@@ -14,27 +14,27 @@ static INTERRUPT_GEN( kopunch_interrupt )
device_set_input_line(device, I8085_RST75_LINE, CLEAR_LINE);
}
-static READ8_HANDLER( kopunch_in_r )
+READ8_MEMBER(kopunch_state::kopunch_in_r)
{
/* port 31 + low 3 bits of port 32 contain the punch strength */
if (offset == 0)
- return space->machine().rand();
+ return machine().rand();
else
- return (space->machine().rand() & 0x07) | input_port_read(space->machine(), "SYSTEM");
+ return (machine().rand() & 0x07) | input_port_read(machine(), "SYSTEM");
}
-static WRITE8_HANDLER( kopunch_lamp_w )
+WRITE8_MEMBER(kopunch_state::kopunch_lamp_w)
{
- set_led_status(space->machine(), 0, ~data & 0x80);
+ set_led_status(machine(), 0, ~data & 0x80);
// if ((data & 0x7f) != 0x7f)
// popmessage("port 38 = %02x",data);
}
-static WRITE8_HANDLER( kopunch_coin_w )
+WRITE8_MEMBER(kopunch_state::kopunch_coin_w)
{
- coin_counter_w(space->machine(), 0, ~data & 0x80);
- coin_counter_w(space->machine(), 1, ~data & 0x40);
+ coin_counter_w(machine(), 0, ~data & 0x80);
+ coin_counter_w(machine(), 1, ~data & 0x40);
// if ((data & 0x3f) != 0x3f)
// popmessage("port 34 = %02x",data);
@@ -52,13 +52,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kopunch_io_map, AS_IO, 8, kopunch_state )
AM_RANGE(0x30, 0x30) AM_READ_PORT("P1")
- AM_RANGE(0x31, 0x32) AM_READ_LEGACY(kopunch_in_r)
+ AM_RANGE(0x31, 0x32) AM_READ(kopunch_in_r)
AM_RANGE(0x33, 0x33) AM_WRITENOP
- AM_RANGE(0x34, 0x34) AM_WRITE_LEGACY(kopunch_coin_w)
+ AM_RANGE(0x34, 0x34) AM_WRITE(kopunch_coin_w)
AM_RANGE(0x35, 0x35) AM_WRITENOP
AM_RANGE(0x36, 0x36) AM_WRITENOP
AM_RANGE(0x37, 0x37) AM_WRITENOP
- AM_RANGE(0x38, 0x38) AM_WRITE_LEGACY(kopunch_lamp_w)
+ AM_RANGE(0x38, 0x38) AM_WRITE(kopunch_lamp_w)
AM_RANGE(0x39, 0x39) AM_WRITENOP
AM_RANGE(0x3a, 0x3a) AM_READ_PORT("DSW")
AM_RANGE(0x3b, 0x3b) AM_WRITENOP
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index 762942e090f..6d7a3e56bd2 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -72,7 +72,7 @@ SRAM:
#define MAIN_CLOCK XTAL_18_432MHz
-static WRITE8_HANDLER( bank_select_w )
+WRITE8_MEMBER(ksayakyu_state::bank_select_w)
{
/*
bits:
@@ -81,26 +81,23 @@ static WRITE8_HANDLER( bank_select_w )
xxxxxxx - unused ?
*/
- memory_set_bank(space->machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
}
-static WRITE8_HANDLER( latch_w )
+WRITE8_MEMBER(ksayakyu_state::latch_w)
{
- ksayakyu_state *state = space->machine().driver_data<ksayakyu_state>();
- state->m_sound_status &= ~0x80;
+ m_sound_status &= ~0x80;
soundlatch_w(space, 0, data | 0x80);
}
-static READ8_HANDLER (sound_status_r)
+READ8_MEMBER(ksayakyu_state::sound_status_r)
{
- ksayakyu_state *state = space->machine().driver_data<ksayakyu_state>();
- return state->m_sound_status | 4;
+ return m_sound_status | 4;
}
-static WRITE8_HANDLER(tomaincpu_w)
+WRITE8_MEMBER(ksayakyu_state::tomaincpu_w)
{
- ksayakyu_state *state = space->machine().driver_data<ksayakyu_state>();
- state->m_sound_status |= 0x80;
+ m_sound_status |= 0x80;
soundlatch_w(space, 0, data);
}
@@ -114,10 +111,10 @@ static ADDRESS_MAP_START( maincpu_map, AS_PROGRAM, 8, ksayakyu_state )
AM_RANGE(0xa802, 0xa802) AM_READ_PORT("DSW")
AM_RANGE(0xa803, 0xa803) AM_READNOP /* watchdog ? */
AM_RANGE(0xa804, 0xa804) AM_WRITE_LEGACY(ksayakyu_videoctrl_w)
- AM_RANGE(0xa805, 0xa805) AM_WRITE_LEGACY(latch_w)
- AM_RANGE(0xa806, 0xa806) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0xa805, 0xa805) AM_WRITE(latch_w)
+ AM_RANGE(0xa806, 0xa806) AM_READ(sound_status_r)
AM_RANGE(0xa807, 0xa807) AM_READNOP /* watchdog ? */
- AM_RANGE(0xa808, 0xa808) AM_WRITE_LEGACY(bank_select_w)
+ AM_RANGE(0xa808, 0xa808) AM_WRITE(bank_select_w)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE_LEGACY(ksayakyu_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xb800, 0xbfff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
ADDRESS_MAP_END
@@ -129,7 +126,7 @@ static ADDRESS_MAP_START( soundcpu_map, AS_PROGRAM, 8, ksayakyu_state )
AM_RANGE(0xa002, 0xa003) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0xa006, 0xa007) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
AM_RANGE(0xa008, 0xa008) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(0xa00c, 0xa00c) AM_WRITE_LEGACY(tomaincpu_w)
+ AM_RANGE(0xa00c, 0xa00c) AM_WRITE(tomaincpu_w)
AM_RANGE(0xa010, 0xa010) AM_WRITENOP //a timer of some sort?
ADDRESS_MAP_END
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index b9646d612ac..3dc88d4baee 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -54,24 +54,22 @@ ADDRESS_MAP_END
*
*************************************/
-static WRITE8_HANDLER( kyugo_nmi_mask_w )
+WRITE8_MEMBER(kyugo_state::kyugo_nmi_mask_w)
{
- kyugo_state *state = space->machine().driver_data<kyugo_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
-static WRITE8_HANDLER( kyugo_sub_cpu_control_w )
+WRITE8_MEMBER(kyugo_state::kyugo_sub_cpu_control_w)
{
- kyugo_state *state = space->machine().driver_data<kyugo_state>();
- device_set_input_line(state->m_subcpu, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
}
static ADDRESS_MAP_START( kyugo_main_portmap, AS_IO, 8, kyugo_state )
ADDRESS_MAP_GLOBAL_MASK(0x07)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(kyugo_nmi_mask_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(kyugo_nmi_mask_w)
AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(kyugo_flipscreen_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(kyugo_sub_cpu_control_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(kyugo_sub_cpu_control_w)
ADDRESS_MAP_END
@@ -134,9 +132,9 @@ ADDRESS_MAP_END
*
*************************************/
-static WRITE8_HANDLER( kyugo_coin_counter_w )
+WRITE8_MEMBER(kyugo_state::kyugo_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data & 1);
+ coin_counter_w(machine(), offset, data & 1);
}
static ADDRESS_MAP_START( gyrodine_sub_portmap, AS_IO, 8, kyugo_state )
@@ -152,7 +150,7 @@ static ADDRESS_MAP_START( repulse_sub_portmap, AS_IO, 8, kyugo_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x02) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
- AM_RANGE(0xc0, 0xc1) AM_WRITE_LEGACY(kyugo_coin_counter_w)
+ AM_RANGE(0xc0, 0xc1) AM_WRITE(kyugo_coin_counter_w)
ADDRESS_MAP_END
@@ -161,7 +159,7 @@ static ADDRESS_MAP_START( flashgala_sub_portmap, AS_IO, 8, kyugo_state )
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x42, 0x42) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
- AM_RANGE(0xc0, 0xc1) AM_WRITE_LEGACY(kyugo_coin_counter_w)
+ AM_RANGE(0xc0, 0xc1) AM_WRITE(kyugo_coin_counter_w)
ADDRESS_MAP_END
@@ -170,7 +168,7 @@ static ADDRESS_MAP_START( srdmissn_sub_portmap, AS_IO, 8, kyugo_state )
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x82, 0x82) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0x84, 0x85) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
- AM_RANGE(0x90, 0x91) AM_WRITE_LEGACY(kyugo_coin_counter_w)
+ AM_RANGE(0x90, 0x91) AM_WRITE(kyugo_coin_counter_w)
ADDRESS_MAP_END
@@ -517,7 +515,7 @@ static MACHINE_RESET( kyugo )
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
// must start with interrupts and sub CPU disabled
state->m_nmi_mask = 0;
- kyugo_sub_cpu_control_w(space, 0, 0);
+ state->kyugo_sub_cpu_control_w(*space, 0, 0);
state->m_scroll_x_lo = 0;
state->m_scroll_x_hi = 0;
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index bc136446400..de0b47f8d87 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -27,16 +27,16 @@ static TIMER_DEVICE_CALLBACK( labyrunr_scanline )
device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( labyrunr_bankswitch_w )
+WRITE8_MEMBER(labyrunr_state::labyrunr_bankswitch_w)
{
if (data & 0xe0) popmessage("bankswitch %02x", data);
/* bits 0-2 = bank number */
- memory_set_bank(space->machine(), "bank1", data & 0x07); // shall we check if data&7 > #banks?
+ memory_set_bank(machine(), "bank1", data & 0x07); // shall we check if data&7 > #banks?
/* bits 3 and 4 are coin counters */
- coin_counter_w(space->machine(), 0, data & 0x08);
- coin_counter_w(space->machine(), 1, data & 0x10);
+ coin_counter_w(machine(), 0, data & 0x08);
+ coin_counter_w(machine(), 1, data & 0x10);
}
static ADDRESS_MAP_START( labyrunr_map, AS_PROGRAM, 8, labyrunr_state )
@@ -49,7 +49,7 @@ static ADDRESS_MAP_START( labyrunr_map, AS_PROGRAM, 8, labyrunr_state )
AM_RANGE(0x0a00, 0x0a00) AM_READ_PORT("P2")
AM_RANGE(0x0a01, 0x0a01) AM_READ_PORT("P1")
AM_RANGE(0x0b00, 0x0b00) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x0c00, 0x0c00) AM_WRITE_LEGACY(labyrunr_bankswitch_w)
+ AM_RANGE(0x0c00, 0x0c00) AM_WRITE(labyrunr_bankswitch_w)
AM_RANGE(0x0d00, 0x0d1f) AM_DEVREADWRITE_LEGACY("k051733", k051733_r, k051733_w)
AM_RANGE(0x0e00, 0x0e00) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE(m_paletteram)
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index ef637302206..10d8654e02a 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -65,32 +65,28 @@ TODO:
/* Sound comm between CPU's */
-static READ8_HANDLER( sraider_sound_low_r )
+READ8_MEMBER(ladybug_state::sraider_sound_low_r)
{
- ladybug_state *state = space->machine().driver_data<ladybug_state>();
- return state->m_sound_low;
+ return m_sound_low;
}
-static READ8_HANDLER( sraider_sound_high_r )
+READ8_MEMBER(ladybug_state::sraider_sound_high_r)
{
- ladybug_state *state = space->machine().driver_data<ladybug_state>();
- return state->m_sound_high;
+ return m_sound_high;
}
-static WRITE8_HANDLER( sraider_sound_low_w )
+WRITE8_MEMBER(ladybug_state::sraider_sound_low_w)
{
- ladybug_state *state = space->machine().driver_data<ladybug_state>();
- state->m_sound_low = data;
+ m_sound_low = data;
}
-static WRITE8_HANDLER( sraider_sound_high_w )
+WRITE8_MEMBER(ladybug_state::sraider_sound_high_w)
{
- ladybug_state *state = space->machine().driver_data<ladybug_state>();
- state->m_sound_high = data;
+ m_sound_high = data;
}
/* Protection? */
-static READ8_HANDLER( sraider_8005_r )
+READ8_MEMBER(ladybug_state::sraider_8005_r)
{
/* This must return X011111X or cpu #1 will hang */
/* see code at rst $10 */
@@ -98,9 +94,8 @@ static READ8_HANDLER( sraider_8005_r )
}
/* Unknown IO */
-static WRITE8_HANDLER( sraider_misc_w )
+WRITE8_MEMBER(ladybug_state::sraider_misc_w)
{
- ladybug_state *state = space->machine().driver_data<ladybug_state>();
switch(offset)
{
@@ -113,18 +108,18 @@ static WRITE8_HANDLER( sraider_misc_w )
case 0x05:
case 0x06:
case 0x07:
- state->m_weird_value[offset & 7] = data & 1;
+ m_weird_value[offset & 7] = data & 1;
break;
/* These 6 bits are stored in the latch at N7 */
case 0x08:
- state->m_sraider_0x30 = data&0x3f;
+ m_sraider_0x30 = data&0x3f;
break;
/* These 6 bits are stored in the latch at N8 */
case 0x10:
- state->m_sraider_0x38 = data&0x3f;
+ m_sraider_0x38 = data&0x3f;
break;
default:
- mame_printf_debug("(%04X) write to %02X\n", cpu_get_pc(&space->device()), offset);
+ mame_printf_debug("(%04X) write to %02X\n", cpu_get_pc(&space.device()), offset);
break;
}
}
@@ -151,9 +146,9 @@ static ADDRESS_MAP_START( sraider_cpu1_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x8005, 0x8005) AM_READ_LEGACY(sraider_8005_r) // protection check?
- AM_RANGE(0x8006, 0x8006) AM_WRITE_LEGACY(sraider_sound_low_w)
- AM_RANGE(0x8007, 0x8007) AM_WRITE_LEGACY(sraider_sound_high_w)
+ AM_RANGE(0x8005, 0x8005) AM_READ(sraider_8005_r) // protection check?
+ AM_RANGE(0x8006, 0x8006) AM_WRITE(sraider_sound_low_w)
+ AM_RANGE(0x8007, 0x8007) AM_WRITE(sraider_sound_high_w)
AM_RANGE(0x9000, 0x9000) AM_READ_PORT("IN0")
AM_RANGE(0x9001, 0x9001) AM_READ_PORT("IN1")
AM_RANGE(0x9002, 0x9002) AM_READ_PORT("DSW0")
@@ -167,8 +162,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sraider_cpu2_map, AS_PROGRAM, 8, ladybug_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM
- AM_RANGE(0x8000, 0x8000) AM_READ_LEGACY(sraider_sound_low_r)
- AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(sraider_sound_high_r)
+ AM_RANGE(0x8000, 0x8000) AM_READ(sraider_sound_low_r)
+ AM_RANGE(0xa000, 0xa000) AM_READ(sraider_sound_high_r)
AM_RANGE(0xc000, 0xc000) AM_READNOP //some kind of sync
AM_RANGE(0xe000, 0xe0ff) AM_WRITEONLY AM_BASE(m_grid_data)
AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(sraider_io_w)
@@ -182,7 +177,7 @@ static ADDRESS_MAP_START( sraider_cpu2_io_map, AS_IO, 8, ladybug_state )
AM_RANGE(0x10, 0x10) AM_DEVWRITE_LEGACY("sn3", sn76496_w)
AM_RANGE(0x18, 0x18) AM_DEVWRITE_LEGACY("sn4", sn76496_w)
AM_RANGE(0x20, 0x20) AM_DEVWRITE_LEGACY("sn5", sn76496_w)
- AM_RANGE(0x28, 0x3f) AM_WRITE_LEGACY(sraider_misc_w) // lots unknown
+ AM_RANGE(0x28, 0x3f) AM_WRITE(sraider_misc_w) // lots unknown
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 6245f4a6f0a..51088608457 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -53,24 +53,21 @@ Notes:
#include "includes/ladyfrog.h"
-static READ8_HANDLER( from_snd_r )
+READ8_MEMBER(ladyfrog_state::from_snd_r)
{
- ladyfrog_state *state = space->machine().driver_data<ladyfrog_state>();
- state->m_snd_flag = 0;
- return state->m_snd_data;
+ m_snd_flag = 0;
+ return m_snd_data;
}
-static WRITE8_HANDLER( to_main_w )
+WRITE8_MEMBER(ladyfrog_state::to_main_w)
{
- ladyfrog_state *state = space->machine().driver_data<ladyfrog_state>();
- state->m_snd_data = data;
- state->m_snd_flag = 2;
+ m_snd_data = data;
+ m_snd_flag = 2;
}
-static WRITE8_HANDLER( sound_cpu_reset_w )
+WRITE8_MEMBER(ladyfrog_state::sound_cpu_reset_w)
{
- ladyfrog_state *state = space->machine().driver_data<ladyfrog_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, (data & 1 ) ? ASSERT_LINE : CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 1 ) ? ASSERT_LINE : CLEAR_LINE);
}
static TIMER_CALLBACK( nmi_callback )
@@ -83,27 +80,25 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(ladyfrog_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(ladyfrog_state::nmi_disable_w)
{
- ladyfrog_state *state = space->machine().driver_data<ladyfrog_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(ladyfrog_state::nmi_enable_w)
{
- ladyfrog_state *state = space->machine().driver_data<ladyfrog_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
@@ -127,10 +122,9 @@ static const msm5232_interface msm5232_config =
{ 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }
};
-static READ8_HANDLER( snd_flag_r )
+READ8_MEMBER(ladyfrog_state::snd_flag_r)
{
- ladyfrog_state *state = space->machine().driver_data<ladyfrog_state>();
- return state->m_snd_flag | 0xfd;
+ return m_snd_flag | 0xfd;
}
static ADDRESS_MAP_START( ladyfrog_map, AS_PROGRAM, 8, ladyfrog_state )
@@ -138,9 +132,9 @@ static ADDRESS_MAP_START( ladyfrog_map, AS_PROGRAM, 8, ladyfrog_state )
AM_RANGE(0xc000, 0xc07f) AM_RAM
AM_RANGE(0xc080, 0xc87f) AM_READWRITE_LEGACY(ladyfrog_videoram_r, ladyfrog_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(ladyfrog_gfxctrl2_w)
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd401, 0xd401) AM_READ_LEGACY(snd_flag_r)
- AM_RANGE(0xd403, 0xd403) AM_WRITE_LEGACY(sound_cpu_reset_w)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd401, 0xd401) AM_READ(snd_flag_r)
+ AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSW1")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW2")
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("INPUTS")
@@ -163,9 +157,9 @@ static ADDRESS_MAP_START( ladyfrog_sound_map, AS_PROGRAM, 8, ladyfrog_state )
AM_RANGE(0xca00, 0xca00) AM_WRITENOP
AM_RANGE(0xcb00, 0xcb00) AM_WRITENOP
AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP
- AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(soundlatch_r,to_main_w)
- AM_RANGE(0xd200, 0xd200) AM_READNOP AM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(nmi_disable_w)
+ AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(to_main_w)
+ AM_RANGE(0xd200, 0xd200) AM_READNOP AM_WRITE(nmi_enable_w)
+ AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w)
AM_RANGE(0xd600, 0xd600) AM_WRITENOP
AM_RANGE(0xe000, 0xefff) AM_NOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index b98287b6054..d0905024124 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -27,65 +27,60 @@ TODO:
#include "includes/laserbat.h"
-static WRITE8_HANDLER( laserbat_videoram_w )
+WRITE8_MEMBER(laserbat_state::laserbat_videoram_w)
{
- laserbat_state *state = space->machine().driver_data<laserbat_state>();
- if (state->m_video_page == 0)
+ if (m_video_page == 0)
{
- state->m_videoram[offset] = data;
- state->m_bg_tilemap->mark_tile_dirty(offset);
+ m_videoram[offset] = data;
+ m_bg_tilemap->mark_tile_dirty(offset);
}
- else if (state->m_video_page == 1)
+ else if (m_video_page == 1)
{
- state->m_colorram[offset] = data;
- state->m_bg_tilemap->mark_tile_dirty(offset); // wrong!
+ m_colorram[offset] = data;
+ m_bg_tilemap->mark_tile_dirty(offset); // wrong!
}
}
-static WRITE8_HANDLER( video_extra_w )
+WRITE8_MEMBER(laserbat_state::video_extra_w)
{
- laserbat_state *state = space->machine().driver_data<laserbat_state>();
- state->m_video_page = (data & 0x10) >> 4;
- state->m_sprite_enable = (data & 1) ^ 1;
- state->m_sprite_code = (data & 0xe0) >> 5;
- state->m_sprite_color = (data & 0x0e) >> 1;
+ m_video_page = (data & 0x10) >> 4;
+ m_sprite_enable = (data & 1) ^ 1;
+ m_sprite_code = (data & 0xe0) >> 5;
+ m_sprite_color = (data & 0x0e) >> 1;
}
-static WRITE8_HANDLER( sprite_x_y_w )
+WRITE8_MEMBER(laserbat_state::sprite_x_y_w)
{
- laserbat_state *state = space->machine().driver_data<laserbat_state>();
if (offset == 0)
- state->m_sprite_x = 256 - data;
+ m_sprite_x = 256 - data;
else
- state->m_sprite_y = 256 - data;
+ m_sprite_y = 256 - data;
}
-static WRITE8_HANDLER( laserbat_input_mux_w )
+WRITE8_MEMBER(laserbat_state::laserbat_input_mux_w)
{
- laserbat_state *state = space->machine().driver_data<laserbat_state>();
- state->m_input_mux = (data & 0x30) >> 4;
+ m_input_mux = (data & 0x30) >> 4;
- flip_screen_set_no_update(space->machine(), data & 0x08);
+ flip_screen_set_no_update(machine(), data & 0x08);
- coin_counter_w(space->machine(), 0,data & 1);
+ coin_counter_w(machine(), 0,data & 1);
//data & 0x02 ?
//data & 0x04 ?
}
-static READ8_HANDLER( laserbat_input_r )
+READ8_MEMBER(laserbat_state::laserbat_input_r)
{
- laserbat_state *state = space->machine().driver_data<laserbat_state>();
static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" };
- return input_port_read(space->machine(), portnames[state->m_input_mux]);
+ return input_port_read(machine(), portnames[m_input_mux]);
}
-static WRITE8_HANDLER( laserbat_cnteff_w )
+WRITE8_MEMBER(laserbat_state::laserbat_cnteff_w)
{
// 0x01 = _ABEFF1
// 0x02 = _ABEFF2
@@ -98,7 +93,7 @@ static WRITE8_HANDLER( laserbat_cnteff_w )
}
#ifdef UNUSED_FUNCTION
-static WRITE8_HANDLER( laserbat_cntmov_w )
+WRITE8_MEMBER(laserbat_state::laserbat_cntmov_w)
{
// 0x01 = AB MOVE
// 0x02 = CLH0
@@ -178,16 +173,16 @@ static ADDRESS_MAP_START( laserbat_map, AS_PROGRAM, 8, laserbat_state )
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_1", s2636_work_ram_r, s2636_work_ram_w)
AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_2", s2636_work_ram_r, s2636_work_ram_w)
AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_3", s2636_work_ram_r, s2636_work_ram_w)
- AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE_LEGACY(laserbat_videoram_w)
+ AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_WRITE(laserbat_videoram_w)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( laserbat_io_map, AS_IO, 8, laserbat_state )
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(laserbat_cnteff_w)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(video_extra_w)
- AM_RANGE(0x02, 0x02) AM_READ_LEGACY(laserbat_input_r) AM_WRITE_LEGACY(laserbat_csound1_w)
- AM_RANGE(0x04, 0x05) AM_WRITE_LEGACY(sprite_x_y_w)
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(laserbat_input_mux_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(laserbat_cnteff_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(video_extra_w)
+ AM_RANGE(0x02, 0x02) AM_READ(laserbat_input_r) AM_WRITE_LEGACY(laserbat_csound1_w)
+ AM_RANGE(0x04, 0x05) AM_WRITE(sprite_x_y_w)
+ AM_RANGE(0x06, 0x06) AM_WRITE(laserbat_input_mux_w)
AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(laserbat_csound2_w)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
@@ -195,11 +190,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( catnmous_io_map, AS_IO, 8, laserbat_state )
AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(soundlatch_w) // soundlatch ?
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(video_extra_w)
- AM_RANGE(0x02, 0x02) AM_READ_LEGACY(laserbat_input_r)
+ AM_RANGE(0x01, 0x01) AM_WRITE(video_extra_w)
+ AM_RANGE(0x02, 0x02) AM_READ(laserbat_input_r)
AM_RANGE(0x02, 0x02) AM_WRITENOP // unknown
- AM_RANGE(0x04, 0x05) AM_WRITE_LEGACY(sprite_x_y_w)
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(laserbat_input_mux_w)
+ AM_RANGE(0x04, 0x05) AM_WRITE(sprite_x_y_w)
+ AM_RANGE(0x06, 0x06) AM_WRITE(laserbat_input_mux_w)
AM_RANGE(0x07, 0x07) AM_WRITENOP // unknown
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index cb65084a459..db4aded1c98 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -47,36 +47,33 @@ static INPUT_CHANGED( coin_inserted )
/* Write to the sound latch and generate an IRQ on the sound CPU */
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(lasso_state::sound_command_w)
{
- lasso_state *state = space->machine().driver_data<lasso_state>();
soundlatch_w(space, offset, data);
- generic_pulse_irq_line(state->m_audiocpu, 0, 1);
+ generic_pulse_irq_line(m_audiocpu, 0, 1);
}
-static WRITE8_HANDLER( pinbo_sound_command_w )
+WRITE8_MEMBER(lasso_state::pinbo_sound_command_w)
{
- lasso_state *state = space->machine().driver_data<lasso_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static READ8_HANDLER( sound_status_r )
+READ8_MEMBER(lasso_state::sound_status_r)
{
/* 0x01: chip#0 ready; 0x02: chip#1 ready */
return 0x03;
}
-static WRITE8_HANDLER( sound_select_w )
+WRITE8_MEMBER(lasso_state::sound_select_w)
{
- lasso_state *state = space->machine().driver_data<lasso_state>();
- UINT8 to_write = BITSWAP8(*state->m_chip_data, 0, 1, 2, 3, 4, 5, 6, 7);
+ UINT8 to_write = BITSWAP8(*m_chip_data, 0, 1, 2, 3, 4, 5, 6, 7);
if (~data & 0x01) /* chip #0 */
- sn76496_w(state->m_sn_1, 0, to_write);
+ sn76496_w(m_sn_1, 0, to_write);
if (~data & 0x02) /* chip #1 */
- sn76496_w(state->m_sn_2, 0, to_write);
+ sn76496_w(m_sn_2, 0, to_write);
}
@@ -86,7 +83,7 @@ static ADDRESS_MAP_START( lasso_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE_LEGACY(lasso_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x0c00, 0x0c7f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(m_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE_LEGACY(lasso_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
@@ -101,8 +98,8 @@ static ADDRESS_MAP_START( lasso_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x5000, 0x7fff) AM_ROM
AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE(m_chip_data)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(sound_select_w)
- AM_RANGE(0xb004, 0xb004) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
+ AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
AM_RANGE(0xb005, 0xb005) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("audiocpu", 0x7000)
ADDRESS_MAP_END
@@ -122,7 +119,7 @@ static ADDRESS_MAP_START( chameleo_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0c00, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x107f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x1080, 0x10ff) AM_RAM
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(m_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE_LEGACY(lasso_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
@@ -139,8 +136,8 @@ static ADDRESS_MAP_START( chameleo_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x1000, 0x1fff) AM_ROM
AM_RANGE(0x6000, 0x7fff) AM_ROM
AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE(m_chip_data)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(sound_select_w)
- AM_RANGE(0xb004, 0xb004) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
+ AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
AM_RANGE(0xb005, 0xb005) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("audiocpu", 0x7000)
ADDRESS_MAP_END
@@ -151,7 +148,7 @@ static ADDRESS_MAP_START( wwjgtin_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE_LEGACY(lasso_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x0c00, 0x0fff) AM_RAM_WRITE_LEGACY(lasso_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_command_w)
AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(m_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE_LEGACY(wwjgtin_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
@@ -169,9 +166,9 @@ static ADDRESS_MAP_START( wwjgtin_audio_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM
AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0xb000, 0xb000) AM_WRITEONLY AM_BASE(m_chip_data)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(sound_select_w)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(sound_select_w)
AM_RANGE(0xb003, 0xb003) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(0xb004, 0xb004) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0xb004, 0xb004) AM_READ(sound_status_r)
AM_RANGE(0xb005, 0xb005) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -181,7 +178,7 @@ static ADDRESS_MAP_START( pinbo_main_map, AS_PROGRAM, 8, lasso_state )
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE_LEGACY(lasso_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE_LEGACY(lasso_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x1000, 0x10ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(pinbo_sound_command_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(pinbo_sound_command_w)
AM_RANGE(0x1801, 0x1801) AM_WRITEONLY AM_BASE(m_back_color)
AM_RANGE(0x1802, 0x1802) AM_WRITE_LEGACY(pinbo_video_control_w)
AM_RANGE(0x1804, 0x1804) AM_READ_PORT("1804")
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index 22008be3f4f..779bc01d19b 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -124,7 +124,7 @@ Notes:
/******************************************************************************/
-static WRITE16_HANDLER( lastduel_sound_w )
+WRITE16_MEMBER(lastduel_state::lastduel_sound_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
@@ -137,7 +137,7 @@ static ADDRESS_MAP_START( lastduel_map, AS_PROGRAM, 16, lastduel_state )
AM_RANGE(0xfc0000, 0xfc0003) AM_WRITENOP /* Written rarely */
AM_RANGE(0xfc0800, 0xfc0fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("P1_P2") AM_WRITE_LEGACY(lastduel_flip_w)
- AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(lastduel_sound_w)
+ AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("SYSTEM") AM_WRITE(lastduel_sound_w)
AM_RANGE(0xfc4004, 0xfc4005) AM_READ_PORT("DSW1")
AM_RANGE(0xfc4006, 0xfc4007) AM_READ_PORT("DSW2")
AM_RANGE(0xfc8000, 0xfc800f) AM_WRITE_LEGACY(lastduel_scroll_w)
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( madgear_map, AS_PROGRAM, 16, lastduel_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0xfc1800, 0xfc1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xfc4000, 0xfc4001) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(lastduel_flip_w)
- AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(lastduel_sound_w)
+ AM_RANGE(0xfc4002, 0xfc4003) AM_READ_PORT("DSW2") AM_WRITE(lastduel_sound_w)
AM_RANGE(0xfc4004, 0xfc4005) AM_READ_PORT("P1_P2")
AM_RANGE(0xfc4006, 0xfc4007) AM_READ_PORT("SYSTEM")
AM_RANGE(0xfc8000, 0xfc9fff) AM_RAM_WRITE_LEGACY(lastduel_vram_w) AM_BASE(m_vram)
@@ -173,9 +173,9 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, lastduel_state )
AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
-static WRITE8_HANDLER( mg_bankswitch_w )
+WRITE8_MEMBER(lastduel_state::mg_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
}
static ADDRESS_MAP_START( madgear_sound_map, AS_PROGRAM, 8, lastduel_state )
@@ -186,7 +186,7 @@ static ADDRESS_MAP_START( madgear_sound_map, AS_PROGRAM, 8, lastduel_state )
AM_RANGE(0xf002, 0xf003) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r,ym2203_w)
AM_RANGE(0xf004, 0xf004) AM_DEVWRITE("oki", okim6295_device, write)
AM_RANGE(0xf006, 0xf006) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf00a, 0xf00a) AM_WRITE_LEGACY(mg_bankswitch_w)
+ AM_RANGE(0xf00a, 0xf00a) AM_WRITE(mg_bankswitch_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c
index 555c479a6ce..6570d6ace3f 100644
--- a/src/mame/drivers/lazercmd.c
+++ b/src/mame/drivers/lazercmd.c
@@ -271,56 +271,54 @@ static TIMER_DEVICE_CALLBACK( bbonk_timer )
*************************************************************/
/* triggered by WRTC,r opcode */
-static WRITE8_HANDLER( lazercmd_ctrl_port_w )
+WRITE8_MEMBER(lazercmd_state::lazercmd_ctrl_port_w)
{
}
/* triggered by REDC,r opcode */
-static READ8_HANDLER( lazercmd_ctrl_port_r )
+READ8_MEMBER(lazercmd_state::lazercmd_ctrl_port_r)
{
UINT8 data = 0;
return data;
}
/* triggered by WRTD,r opcode */
-static WRITE8_HANDLER( lazercmd_data_port_w )
+WRITE8_MEMBER(lazercmd_state::lazercmd_data_port_w)
{
}
/* triggered by REDD,r opcode */
-static READ8_HANDLER( lazercmd_data_port_r )
+READ8_MEMBER(lazercmd_state::lazercmd_data_port_r)
{
- UINT8 data = input_port_read(space->machine(), "DSW") & 0x0f;
+ UINT8 data = input_port_read(machine(), "DSW") & 0x0f;
return data;
}
-static WRITE8_HANDLER( lazercmd_hardware_w )
+WRITE8_MEMBER(lazercmd_state::lazercmd_hardware_w)
{
- lazercmd_state *state = space->machine().driver_data<lazercmd_state>();
switch (offset)
{
case 0: /* audio channels */
- state->m_dac_data = (data & 0x80) ^ ((data & 0x40) << 1) ^ ((data & 0x20) << 2) ^ ((data & 0x10) << 3);
- if (state->m_dac_data)
- dac_data_w(state->m_dac, 0xff);
+ m_dac_data = (data & 0x80) ^ ((data & 0x40) << 1) ^ ((data & 0x20) << 2) ^ ((data & 0x10) << 3);
+ if (m_dac_data)
+ dac_data_w(m_dac, 0xff);
else
- dac_data_w(state->m_dac, 0);
+ dac_data_w(m_dac, 0);
break;
case 1: /* marker Y position */
- state->m_marker_y = data;
+ m_marker_y = data;
break;
case 2: /* marker X position */
- state->m_marker_x = data;
+ m_marker_x = data;
break;
case 3: /* D4 clears coin detected and D0 toggles on attract mode */
break;
}
}
-static WRITE8_HANDLER( medlanes_hardware_w )
+WRITE8_MEMBER(lazercmd_state::medlanes_hardware_w)
{
- lazercmd_state *state = space->machine().driver_data<lazercmd_state>();
switch (offset)
{
@@ -328,26 +326,25 @@ static WRITE8_HANDLER( medlanes_hardware_w )
/* bits 4 and 5 are used to control a sound board */
/* these could be used to control sound samples */
/* at the moment they are routed through the dac */
- state->m_dac_data = ((data & 0x20) << 2) ^ ((data & 0x10) << 3);
- if (state->m_dac_data)
- dac_data_w(state->m_dac, 0xff);
+ m_dac_data = ((data & 0x20) << 2) ^ ((data & 0x10) << 3);
+ if (m_dac_data)
+ dac_data_w(m_dac, 0xff);
else
- dac_data_w(state->m_dac, 0);
+ dac_data_w(m_dac, 0);
break;
case 1: /* marker Y position */
- state->m_marker_y = data;
+ m_marker_y = data;
break;
case 2: /* marker X position */
- state->m_marker_x = data;
+ m_marker_x = data;
break;
case 3: /* D4 clears coin detected and D0 toggles on attract mode */
break;
}
}
-static WRITE8_HANDLER( bbonk_hardware_w )
+WRITE8_MEMBER(lazercmd_state::bbonk_hardware_w)
{
- lazercmd_state *state = space->machine().driver_data<lazercmd_state>();
switch (offset)
{
@@ -355,48 +352,47 @@ static WRITE8_HANDLER( bbonk_hardware_w )
/* bits 4 and 5 are used to control a sound board */
/* these could be used to control sound samples */
/* at the moment they are routed through the dac */
- state->m_dac_data = ((data & 0x20) << 2) ^ ((data & 0x10) << 3);
- if (state->m_dac_data)
- dac_data_w(state->m_dac, 0xff);
+ m_dac_data = ((data & 0x20) << 2) ^ ((data & 0x10) << 3);
+ if (m_dac_data)
+ dac_data_w(m_dac, 0xff);
else
- dac_data_w(state->m_dac, 0);
+ dac_data_w(m_dac, 0);
break;
case 3: /* D4 clears coin detected and D0 toggles on attract mode */
break;
}
}
-static READ8_HANDLER( lazercmd_hardware_r )
+READ8_MEMBER(lazercmd_state::lazercmd_hardware_r)
{
- lazercmd_state *state = space->machine().driver_data<lazercmd_state>();
UINT8 data = 0;
switch (offset)
{
case 0: /* player 1 joysticks */
- data = input_port_read(space->machine(), "IN0");
+ data = input_port_read(machine(), "IN0");
break;
case 1: /* player 2 joysticks */
- data = input_port_read(space->machine(), "IN1");
+ data = input_port_read(machine(), "IN1");
break;
case 2: /* player 1 + 2 buttons */
- data = input_port_read(space->machine(), "IN3");
+ data = input_port_read(machine(), "IN3");
break;
case 3: /* coin slot + start buttons */
- data = input_port_read(space->machine(), "IN2");
+ data = input_port_read(machine(), "IN2");
break;
case 4: /* vertical scan counter */
- data = ((state->m_timer_count & 0x10) >> 1) | ((state->m_timer_count & 0x20) >> 3)
- | ((state->m_timer_count & 0x40) >> 5) | ((state->m_timer_count & 0x80) >> 7);
+ data = ((m_timer_count & 0x10) >> 1) | ((m_timer_count & 0x20) >> 3)
+ | ((m_timer_count & 0x40) >> 5) | ((m_timer_count & 0x80) >> 7);
break;
case 5: /* vertical scan counter */
- data = state->m_timer_count & 0x0f;
+ data = m_timer_count & 0x0f;
break;
case 6: /* 1f02 readback */
- data = state->m_marker_x;
+ data = m_marker_x;
break;
case 7: /* 1f01 readback */
- data = state->m_marker_y;
+ data = m_marker_y;
break;
}
return data;
@@ -413,8 +409,8 @@ static ADDRESS_MAP_START( lazercmd_map, AS_PROGRAM, 8, lazercmd_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1c00, 0x1c1f) AM_RAM
AM_RANGE(0x1c20, 0x1eff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
- AM_RANGE(0x1f00, 0x1f03) AM_WRITE_LEGACY(lazercmd_hardware_w)
- AM_RANGE(0x1f00, 0x1f07) AM_READ_LEGACY(lazercmd_hardware_r)
+ AM_RANGE(0x1f00, 0x1f03) AM_WRITE(lazercmd_hardware_w)
+ AM_RANGE(0x1f00, 0x1f07) AM_READ(lazercmd_hardware_r)
ADDRESS_MAP_END
@@ -423,8 +419,8 @@ static ADDRESS_MAP_START( medlanes_map, AS_PROGRAM, 8, lazercmd_state )
AM_RANGE(0x1000, 0x17ff) AM_ROM
AM_RANGE(0x1c00, 0x1c1f) AM_RAM
AM_RANGE(0x1c20, 0x1eff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
- AM_RANGE(0x1f00, 0x1f03) AM_WRITE_LEGACY(medlanes_hardware_w)
- AM_RANGE(0x1f00, 0x1f07) AM_READ_LEGACY(lazercmd_hardware_r)
+ AM_RANGE(0x1f00, 0x1f03) AM_WRITE(medlanes_hardware_w)
+ AM_RANGE(0x1f00, 0x1f07) AM_READ(lazercmd_hardware_r)
ADDRESS_MAP_END
@@ -432,14 +428,14 @@ static ADDRESS_MAP_START( bbonk_map, AS_PROGRAM, 8, lazercmd_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x1c00, 0x1c1f) AM_RAM
AM_RANGE(0x1c20, 0x1eff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
- AM_RANGE(0x1f00, 0x1f03) AM_WRITE_LEGACY(bbonk_hardware_w)
- AM_RANGE(0x1f00, 0x1f07) AM_READ_LEGACY(lazercmd_hardware_r)
+ AM_RANGE(0x1f00, 0x1f03) AM_WRITE(bbonk_hardware_w)
+ AM_RANGE(0x1f00, 0x1f07) AM_READ(lazercmd_hardware_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( lazercmd_portmap, AS_IO, 8, lazercmd_state )
- AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE_LEGACY(lazercmd_ctrl_port_r, lazercmd_ctrl_port_w)
- AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE_LEGACY(lazercmd_data_port_r, lazercmd_data_port_w)
+ AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(lazercmd_ctrl_port_r, lazercmd_ctrl_port_w)
+ AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(lazercmd_data_port_r, lazercmd_data_port_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index 9347f56b91b..7fdf5fc2ad3 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -125,10 +125,10 @@ static ADDRESS_MAP_START( godzilla_map, AS_PROGRAM, 16, legionna_state )
ADDRESS_MAP_END
/* did they swap the lines, or does the protection device swap the words during the DMA?? */
-static WRITE16_HANDLER( denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w )
+WRITE16_MEMBER(legionna_state::denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w)
{
offset^=1;
- COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
paletteram16_xBBBBBGGGGGRRRRR_word_w(space,offset,data,mem_mask);
}
@@ -141,7 +141,7 @@ static ADDRESS_MAP_START( denjinmk_map, AS_PROGRAM, 16, legionna_state )
AM_RANGE(0x101800, 0x101fff) AM_RAM_WRITE_LEGACY(legionna_foreground_w) AM_BASE(m_fore_data)
AM_RANGE(0x102000, 0x1027ff) AM_RAM_WRITE_LEGACY(legionna_midground_w) AM_BASE(m_mid_data)
AM_RANGE(0x102800, 0x103fff) AM_RAM_WRITE_LEGACY(legionna_text_w) AM_BASE(m_textram)
- AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE_LEGACY(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x105000, 0x105fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x106000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x11dfff) AM_RAM
diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c
index 6460e7725f8..f1de31275d3 100644
--- a/src/mame/drivers/lemmings.c
+++ b/src/mame/drivers/lemmings.c
@@ -23,73 +23,69 @@
#include "includes/lemmings.h"
#include "video/decospr.h"
-static WRITE16_HANDLER( lemmings_control_w )
+WRITE16_MEMBER(lemmings_state::lemmings_control_w)
{
- lemmings_state *state = space->machine().driver_data<lemmings_state>();
/* Offset==0 Pixel layer X scroll */
if (offset == 4)
return; /* Watchdog or IRQ ack */
- COMBINE_DATA(&state->m_control_data[offset]);
+ COMBINE_DATA(&m_control_data[offset]);
}
-static READ16_HANDLER( lemmings_trackball_r )
+READ16_MEMBER(lemmings_state::lemmings_trackball_r)
{
switch (offset)
{
- case 0: return input_port_read(space->machine(), "AN0");
- case 1: return input_port_read(space->machine(), "AN1");
- case 4: return input_port_read(space->machine(), "AN2");
- case 5: return input_port_read(space->machine(), "AN3");
+ case 0: return input_port_read(machine(), "AN0");
+ case 1: return input_port_read(machine(), "AN1");
+ case 4: return input_port_read(machine(), "AN2");
+ case 5: return input_port_read(machine(), "AN3");
}
return 0;
}
/* Same as Robocop 2 protection chip */
-static READ16_HANDLER( lemmings_prot_r )
+READ16_MEMBER(lemmings_state::lemmings_prot_r)
{
switch (offset << 1)
{
case 0x41a:
- return input_port_read(space->machine(), "BUTTONS");
+ return input_port_read(machine(), "BUTTONS");
case 0x320:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 0x4e6:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
}
return 0;
}
-static WRITE16_HANDLER( lemmings_palette_24bit_w )
+WRITE16_MEMBER(lemmings_state::lemmings_palette_24bit_w)
{
- lemmings_state *state = space->machine().driver_data<lemmings_state>();
int r, g, b;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
if (offset & 1)
offset--;
- b = (state->m_paletteram[offset] >> 0) & 0xff;
- g = (state->m_paletteram[offset + 1] >> 8) & 0xff;
- r = (state->m_paletteram[offset + 1] >> 0) & 0xff;
+ b = (m_paletteram[offset] >> 0) & 0xff;
+ g = (m_paletteram[offset + 1] >> 8) & 0xff;
+ r = (m_paletteram[offset + 1] >> 0) & 0xff;
- palette_set_color(space->machine(), offset / 2, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), offset / 2, MAKE_RGB(r, g, b));
}
-static WRITE16_HANDLER( lemmings_sound_w )
+WRITE16_MEMBER(lemmings_state::lemmings_sound_w)
{
- lemmings_state *state = space->machine().driver_data<lemmings_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 1, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 1, HOLD_LINE);
}
-static WRITE8_HANDLER( lemmings_sound_ack_w )
+WRITE8_MEMBER(lemmings_state::lemmings_sound_ack_w)
{
- lemmings_state *state = space->machine().driver_data<lemmings_state>();
- device_set_input_line(state->m_audiocpu, 1, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, 1, CLEAR_LINE);
}
/******************************************************************************/
@@ -99,11 +95,11 @@ static ADDRESS_MAP_START( lemmings_map, AS_PROGRAM, 16, lemmings_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_SHARE("spriteram2")
- AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE_LEGACY(lemmings_palette_24bit_w) AM_BASE(m_paletteram)
- AM_RANGE(0x170000, 0x17000f) AM_RAM_WRITE_LEGACY(lemmings_control_w) AM_BASE(m_control_data)
- AM_RANGE(0x190000, 0x19000f) AM_READ_LEGACY(lemmings_trackball_r)
- AM_RANGE(0x1a0000, 0x1a07ff) AM_READ_LEGACY(lemmings_prot_r)
- AM_RANGE(0x1a0064, 0x1a0065) AM_WRITE_LEGACY(lemmings_sound_w)
+ AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE(lemmings_palette_24bit_w) AM_BASE(m_paletteram)
+ AM_RANGE(0x170000, 0x17000f) AM_RAM_WRITE(lemmings_control_w) AM_BASE(m_control_data)
+ AM_RANGE(0x190000, 0x19000f) AM_READ(lemmings_trackball_r)
+ AM_RANGE(0x1a0000, 0x1a07ff) AM_READ(lemmings_prot_r)
+ AM_RANGE(0x1a0064, 0x1a0065) AM_WRITE(lemmings_sound_w)
AM_RANGE(0x1c0000, 0x1c0001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) /* 1 written once a frame */
AM_RANGE(0x1e0000, 0x1e0001) AM_DEVWRITE("spriteram2", buffered_spriteram16_device, write) /* 1 written once a frame */
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE_LEGACY(lemmings_vram_w) AM_BASE(m_vram_data)
@@ -118,7 +114,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, lemmings_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0x1000, 0x1000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x1800, 0x1800) AM_READWRITE_LEGACY(soundlatch_r,lemmings_sound_ack_w)
+ AM_RANGE(0x1800, 0x1800) AM_READ_LEGACY(soundlatch_r) AM_WRITE(lemmings_sound_ack_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index 42dfb12c8e8..546677b2ae0 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -174,8 +174,8 @@ maybe some sprite placement issues
static const char *const gunnames[] = { "LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIGHT1_Y" };
/* a = 1, 2 = player # */
-#define GUNX( a ) (( ( input_port_read(space->machine(), gunnames[2 * (a - 1)]) * 287 ) / 0xff ) + 16)
-#define GUNY( a ) (( ( input_port_read(space->machine(), gunnames[2 * (a - 1) + 1]) * 223 ) / 0xff ) + 10)
+#define GUNX( a ) (( ( input_port_read(machine(), gunnames[2 * (a - 1)]) * 287 ) / 0xff ) + 16)
+#define GUNY( a ) (( ( input_port_read(machine(), gunnames[2 * (a - 1) + 1]) * 223 ) / 0xff ) + 10)
static const eeprom_interface eeprom_intf =
{
@@ -188,7 +188,7 @@ static const eeprom_interface eeprom_intf =
"0100110000000" /* unlock command */
};
-static WRITE8_HANDLER( control2_w )
+WRITE8_MEMBER(lethal_state::control2_w)
{
/* bit 0 is data */
/* bit 1 is cs (active low) */
@@ -197,11 +197,10 @@ static WRITE8_HANDLER( control2_w )
/* bit 4 bankswitches the 4800-4fff region: 0 = registers, 1 = RAM ("CBNK" on schematics) */
/* bit 6 is "SHD0" (some kind of shadow control) */
/* bit 7 is "SHD1" (ditto) */
- lethal_state *state = space->machine().driver_data<lethal_state>();
- state->m_cur_control2 = data;
+ m_cur_control2 = data;
- input_port_write(space->machine(), "EEPROMOUT", state->m_cur_control2, 0xff);
+ input_port_write(machine(), "EEPROMOUT", m_cur_control2, 0xff);
}
static INTERRUPT_GEN(lethalen_interrupt)
@@ -212,18 +211,17 @@ static INTERRUPT_GEN(lethalen_interrupt)
device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( sound_cmd_w )
+WRITE8_MEMBER(lethal_state::sound_cmd_w)
{
soundlatch_w(space, 0, data);
}
-static WRITE8_HANDLER( sound_irq_w )
+WRITE8_MEMBER(lethal_state::sound_irq_w)
{
- lethal_state *state = space->machine().driver_data<lethal_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static READ8_HANDLER( sound_status_r )
+READ8_MEMBER(lethal_state::sound_status_r)
{
return 0xf;
}
@@ -234,18 +232,17 @@ static void sound_nmi( device_t *device )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( le_bankswitch_w )
+WRITE8_MEMBER(lethal_state::le_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
}
-static READ8_HANDLER( le_4800_r )
+READ8_MEMBER(lethal_state::le_4800_r)
{
- lethal_state *state = space->machine().driver_data<lethal_state>();
- if (state->m_cur_control2 & 0x10) // RAM enable
+ if (m_cur_control2 & 0x10) // RAM enable
{
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
}
else
{
@@ -269,7 +266,7 @@ static READ8_HANDLER( le_4800_r )
case 0x4d:
case 0x4e:
case 0x4f:
- return k053244_r(state->m_k053244, offset - 0x40);
+ return k053244_r(m_k053244, offset - 0x40);
case 0x80:
case 0x81:
@@ -303,32 +300,31 @@ static READ8_HANDLER( le_4800_r )
case 0x9d:
case 0x9e:
case 0x9f:
- return k054000_r(state->m_k054000, offset - 0x80);
+ return k054000_r(m_k054000, offset - 0x80);
case 0xca:
return sound_status_r(space, 0);
}
}
else if (offset < 0x1800)
- return k053245_r(state->m_k053244, (offset - 0x0800) & 0x07ff);
+ return k053245_r(m_k053244, (offset - 0x0800) & 0x07ff);
else if (offset < 0x2000)
- return k056832_ram_code_lo_r(state->m_k056832, offset - 0x1800);
+ return k056832_ram_code_lo_r(m_k056832, offset - 0x1800);
else if (offset < 0x2800)
- return k056832_ram_code_hi_r(state->m_k056832, offset - 0x2000);
+ return k056832_ram_code_hi_r(m_k056832, offset - 0x2000);
else if (offset < 0x3000)
- return k056832_ram_attr_lo_r(state->m_k056832, offset - 0x2800);
+ return k056832_ram_attr_lo_r(m_k056832, offset - 0x2800);
else // (offset < 0x3800)
- return k056832_ram_attr_hi_r(state->m_k056832, offset - 0x3000);
+ return k056832_ram_attr_hi_r(m_k056832, offset - 0x3000);
}
return 0;
}
-static WRITE8_HANDLER( le_4800_w )
+WRITE8_MEMBER(lethal_state::le_4800_w)
{
- lethal_state *state = space->machine().driver_data<lethal_state>();
- if (state->m_cur_control2 & 0x10) // RAM enable
+ if (m_cur_control2 & 0x10) // RAM enable
{
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
}
@@ -362,7 +358,7 @@ static WRITE8_HANDLER( le_4800_w )
case 0x4d:
case 0x4e:
case 0x4f:
- k053244_w(state->m_k053244, offset - 0x40, data);
+ k053244_w(m_k053244, offset - 0x40, data);
break;
case 0x80:
@@ -397,34 +393,34 @@ static WRITE8_HANDLER( le_4800_w )
case 0x9d:
case 0x9e:
case 0x9f:
- k054000_w(state->m_k054000, offset - 0x80, data);
+ k054000_w(m_k054000, offset - 0x80, data);
break;
default:
- logerror("Unknown LE 48xx register write: %x to %x (PC=%x)\n", data, offset, cpu_get_pc(&space->device()));
+ logerror("Unknown LE 48xx register write: %x to %x (PC=%x)\n", data, offset, cpu_get_pc(&space.device()));
break;
}
}
else if (offset < 0x1800)
- k053245_w(state->m_k053244, (offset - 0x0800) & 0x07ff, data);
+ k053245_w(m_k053244, (offset - 0x0800) & 0x07ff, data);
else if (offset < 0x2000)
- k056832_ram_code_lo_w(state->m_k056832, offset - 0x1800, data);
+ k056832_ram_code_lo_w(m_k056832, offset - 0x1800, data);
else if (offset < 0x2800)
- k056832_ram_code_hi_w(state->m_k056832, offset - 0x2000, data);
+ k056832_ram_code_hi_w(m_k056832, offset - 0x2000, data);
else if (offset < 0x3000)
- k056832_ram_attr_lo_w(state->m_k056832, offset - 0x2800, data);
+ k056832_ram_attr_lo_w(m_k056832, offset - 0x2800, data);
else // (offset < 0x3800)
- k056832_ram_attr_hi_w(state->m_k056832, offset - 0x3000, data);
+ k056832_ram_attr_hi_w(m_k056832, offset - 0x3000, data);
}
}
// use one more palette entry for the BG color
-static WRITE8_HANDLER( le_bgcolor_w )
+WRITE8_MEMBER(lethal_state::le_bgcolor_w)
{
paletteram_xBBBBBGGGGGRRRRR_be_w(space, 0x3800 + offset, data);
}
-static READ8_HANDLER( guns_r )
+READ8_MEMBER(lethal_state::guns_r)
{
switch (offset)
{
@@ -449,7 +445,7 @@ static READ8_HANDLER( guns_r )
return 0;
}
-static READ8_HANDLER( gunsaux_r )
+READ8_MEMBER(lethal_state::gunsaux_r)
{
int res = 0;
@@ -467,15 +463,15 @@ static ADDRESS_MAP_START( le_main, AS_PROGRAM, 8, lethal_state )
AM_RANGE(0x4080, 0x4080) AM_READNOP // watchdog
AM_RANGE(0x4090, 0x4090) AM_READNOP
AM_RANGE(0x40a0, 0x40a0) AM_READNOP
- AM_RANGE(0x40c4, 0x40c4) AM_WRITE_LEGACY(control2_w)
+ AM_RANGE(0x40c4, 0x40c4) AM_WRITE(control2_w)
AM_RANGE(0x40c8, 0x40d0) AM_WRITE_LEGACY(lethalen_palette_control) // PCU1-PCU3 on the schematics
- AM_RANGE(0x40d4, 0x40d7) AM_READ_LEGACY(guns_r)
+ AM_RANGE(0x40d4, 0x40d7) AM_READ(guns_r)
AM_RANGE(0x40d8, 0x40d8) AM_READ_PORT("DSW")
AM_RANGE(0x40d9, 0x40d9) AM_READ_PORT("INPUTS")
- AM_RANGE(0x40db, 0x40db) AM_READ_LEGACY(gunsaux_r) // top X bit of guns
- AM_RANGE(0x40dc, 0x40dc) AM_WRITE_LEGACY(le_bankswitch_w)
- AM_RANGE(0x47fe, 0x47ff) AM_WRITE_LEGACY(le_bgcolor_w) // BG color
- AM_RANGE(0x4800, 0x7fff) AM_READWRITE_LEGACY(le_4800_r, le_4800_w) // bankswitched: RAM and registers
+ AM_RANGE(0x40db, 0x40db) AM_READ(gunsaux_r) // top X bit of guns
+ AM_RANGE(0x40dc, 0x40dc) AM_WRITE(le_bankswitch_w)
+ AM_RANGE(0x47fe, 0x47ff) AM_WRITE(le_bgcolor_w) // BG color
+ AM_RANGE(0x4800, 0x7fff) AM_READWRITE(le_4800_r, le_4800_w) // bankswitched: RAM and registers
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lethalj.c b/src/mame/drivers/lethalj.c
index 42b030e05ba..9ef4420b0e9 100644
--- a/src/mame/drivers/lethalj.c
+++ b/src/mame/drivers/lethalj.c
@@ -173,31 +173,31 @@ static CUSTOM_INPUT( cclownz_paddle )
*
*************************************/
-static WRITE16_HANDLER( ripribit_control_w )
+WRITE16_MEMBER(lethalj_state::ripribit_control_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- ticket_dispenser_w(space->machine().device("ticket"), 0, ((data >> 1) & 1) << 7);
+ coin_counter_w(machine(), 0, data & 1);
+ ticket_dispenser_w(machine().device("ticket"), 0, ((data >> 1) & 1) << 7);
output_set_lamp_value(0, (data >> 2) & 1);
}
-static WRITE16_HANDLER( cfarm_control_w )
+WRITE16_MEMBER(lethalj_state::cfarm_control_w)
{
- ticket_dispenser_w(space->machine().device("ticket"), 0, ((data >> 0) & 1) << 7);
+ ticket_dispenser_w(machine().device("ticket"), 0, ((data >> 0) & 1) << 7);
output_set_lamp_value(0, (data >> 2) & 1);
output_set_lamp_value(1, (data >> 3) & 1);
output_set_lamp_value(2, (data >> 4) & 1);
- coin_counter_w(space->machine(), 0, (data >> 7) & 1);
+ coin_counter_w(machine(), 0, (data >> 7) & 1);
}
-static WRITE16_HANDLER( cclownz_control_w )
+WRITE16_MEMBER(lethalj_state::cclownz_control_w)
{
- ticket_dispenser_w(space->machine().device("ticket"), 0, ((data >> 0) & 1) << 7);
+ ticket_dispenser_w(machine().device("ticket"), 0, ((data >> 0) & 1) << 7);
output_set_lamp_value(0, (data >> 2) & 1);
output_set_lamp_value(1, (data >> 4) & 1);
output_set_lamp_value(2, (data >> 5) & 1);
- coin_counter_w(space->machine(), 0, (data >> 6) & 1);
+ coin_counter_w(machine(), 0, (data >> 6) & 1);
}
@@ -896,19 +896,22 @@ ROM_END
static DRIVER_INIT( ripribit )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x04100010, 0x0410001f, FUNC(ripribit_control_w));
+ lethalj_state *state = machine.driver_data<lethalj_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::ripribit_control_w),state));
}
static DRIVER_INIT( cfarm )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x04100010, 0x0410001f, FUNC(cfarm_control_w));
+ lethalj_state *state = machine.driver_data<lethalj_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::cfarm_control_w),state));
}
static DRIVER_INIT( cclownz )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x04100010, 0x0410001f, FUNC(cclownz_control_w));
+ lethalj_state *state = machine.driver_data<lethalj_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x04100010, 0x0410001f, write16_delegate(FUNC(lethalj_state::cclownz_control_w),state));
}
diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c
index 8ed23957000..76faaa84f72 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -25,93 +25,89 @@
*
*************************************/
-static READ8_HANDLER( deco16_bank_r )
+READ8_MEMBER(liberate_state::deco16_bank_r)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- const UINT8 *ROM = space->machine().region("user1")->base();
+ const UINT8 *ROM = machine().region("user1")->base();
/* The tilemap bank can be swapped into main memory */
- if (state->m_bank)
+ if (m_bank)
return ROM[offset];
/* Else the handler falls through to read the usual address */
if (offset < 0x400)
- return state->m_colorram[offset];
+ return m_colorram[offset];
if (offset < 0x800)
- return state->m_videoram[offset - 0x400];
+ return m_videoram[offset - 0x400];
if (offset < 0x1000)
- return state->m_spriteram[offset - 0x800];
+ return m_spriteram[offset - 0x800];
if (offset < 0x2200)
{
- logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
if (offset < 0x2800)
- return state->m_scratchram[offset - 0x2200];
+ return m_scratchram[offset - 0x2200];
- logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
-static READ8_HANDLER( deco16_io_r )
+READ8_MEMBER(liberate_state::deco16_io_r)
{
- if (offset == 0) return input_port_read(space->machine(), "IN1"); /* Player 1 controls */
- if (offset == 1) return input_port_read(space->machine(), "IN2"); /* Player 2 controls */
- if (offset == 2) return input_port_read(space->machine(), "IN3"); /* Vblank, coins */
- if (offset == 3) return input_port_read(space->machine(), "DSW1"); /* Dip 1 */
- if (offset == 4) return input_port_read(space->machine(), "DSW2"); /* Dip 2 */
+ if (offset == 0) return input_port_read(machine(), "IN1"); /* Player 1 controls */
+ if (offset == 1) return input_port_read(machine(), "IN2"); /* Player 2 controls */
+ if (offset == 2) return input_port_read(machine(), "IN3"); /* Vblank, coins */
+ if (offset == 3) return input_port_read(machine(), "DSW1"); /* Dip 1 */
+ if (offset == 4) return input_port_read(machine(), "DSW2"); /* Dip 2 */
- logerror("%04x: Read input %d\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Read input %d\n", cpu_get_pc(&space.device()), offset);
return 0xff;
}
-static WRITE8_HANDLER( deco16_bank_w )
+WRITE8_MEMBER(liberate_state::deco16_bank_w)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- state->m_bank = data;
+ m_bank = data;
- if (state->m_bank)
- state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x8000, 0x800f, FUNC(deco16_io_r));
+ if (m_bank)
+ m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
else
- state->m_maincpu->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0x800f, "bank1");
+ m_maincpu->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0x800f, "bank1");
}
-static READ8_HANDLER( prosoccr_bank_r )
+READ8_MEMBER(liberate_state::prosoccr_bank_r)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- const UINT8 *ROM = space->machine().region("user1")->base();
+ const UINT8 *ROM = machine().region("user1")->base();
/* The tilemap bank can be swapped into main memory */
- if (state->m_bank)
+ if (m_bank)
return ROM[offset];
/* Else the handler falls through to read the usual address */
if (offset < 0x400)
- return state->m_colorram[offset];
+ return m_colorram[offset];
if (offset < 0x800)
- return state->m_videoram[offset - 0x400];
+ return m_videoram[offset - 0x400];
if (offset < 0xc00)
- return state->m_colorram[offset - 0x800];
+ return m_colorram[offset - 0x800];
if (offset < 0x1000)
- return state->m_spriteram[offset - 0xc00];
+ return m_spriteram[offset - 0xc00];
if (offset < 0x2200)
{
- logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
if (offset < 0x2800)
- return state->m_scratchram[offset - 0x2200];
+ return m_scratchram[offset - 0x2200];
- logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("%04x: Unmapped bank read %04x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
-static READ8_HANDLER( prosoccr_charram_r )
+READ8_MEMBER(liberate_state::prosoccr_charram_r)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- UINT8 *SRC_GFX = space->machine().region("shared_gfx")->base();
+ UINT8 *SRC_GFX = machine().region("shared_gfx")->base();
- if (state->m_gfx_rom_readback)
+ if (m_gfx_rom_readback)
{
switch (offset & 0x1800)
{
@@ -125,22 +121,21 @@ static READ8_HANDLER( prosoccr_charram_r )
}
/* note: gfx_rom_readback == 1 never happens. */
- return state->m_charram[offset + state->m_gfx_rom_readback * 0x1800];
+ return m_charram[offset + m_gfx_rom_readback * 0x1800];
}
-static WRITE8_HANDLER( prosoccr_charram_w )
+WRITE8_MEMBER(liberate_state::prosoccr_charram_w)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- UINT8 *FG_GFX = space->machine().region("fg_gfx")->base();
+ UINT8 *FG_GFX = machine().region("fg_gfx")->base();
- if (state->m_bank)
+ if (m_bank)
{
- prosoccr_io_w(space, offset & 0x0f, data);
+ prosoccr_io_w(&space, offset & 0x0f, data);
}
else
{
/* note: gfx_rom_readback == 1 never happens. */
- state->m_charram[offset + state->m_gfx_rom_readback * 0x1800] = data;
+ m_charram[offset + m_gfx_rom_readback * 0x1800] = data;
switch (offset & 0x1800)
{
@@ -162,34 +157,32 @@ static WRITE8_HANDLER( prosoccr_charram_w )
offset &= 0x7ff;
/* dirty char */
- gfx_element_mark_dirty(space->machine().gfx[0], offset >> 3);
-// gfx_element_mark_dirty(space->machine().gfx[0], (offset | 0x1800) >> 3);
+ gfx_element_mark_dirty(machine().gfx[0], offset >> 3);
+// gfx_element_mark_dirty(machine().gfx[0], (offset | 0x1800) >> 3);
}
-static WRITE8_HANDLER( prosoccr_char_bank_w )
+WRITE8_MEMBER(liberate_state::prosoccr_char_bank_w)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- state->m_gfx_rom_readback = data & 1; //enable GFX rom read-back
+ m_gfx_rom_readback = data & 1; //enable GFX rom read-back
if (data & 0xfe)
printf("%02x\n", data);
}
-static WRITE8_HANDLER( prosoccr_io_bank_w )
+WRITE8_MEMBER(liberate_state::prosoccr_io_bank_w)
{
- liberate_state *state = space->machine().driver_data<liberate_state>();
- state->m_bank = data & 1;
+ m_bank = data & 1;
- if (state->m_bank)
- state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x8000, 0x800f, FUNC(deco16_io_r));
+ if (m_bank)
+ m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
else
- state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x8000, 0x800f, FUNC(prosoccr_charram_r));
+ m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::prosoccr_charram_r),this));
}
-static READ8_HANDLER( prosport_charram_r )
+READ8_MEMBER(liberate_state::prosport_charram_r)
{
- UINT8 *FG_GFX = space->machine().region("progolf_fg_gfx")->base();
+ UINT8 *FG_GFX = machine().region("progolf_fg_gfx")->base();
switch (offset & 0x1800)
{
@@ -207,9 +200,9 @@ static READ8_HANDLER( prosport_charram_r )
return 0;
}
-static WRITE8_HANDLER( prosport_charram_w )
+WRITE8_MEMBER(liberate_state::prosport_charram_w)
{
- UINT8 *FG_GFX = space->machine().region("progolf_fg_gfx")->base();
+ UINT8 *FG_GFX = machine().region("progolf_fg_gfx")->base();
switch (offset & 0x1800)
{
@@ -230,8 +223,8 @@ static WRITE8_HANDLER( prosport_charram_w )
offset &= 0x7ff;
/* dirty char */
- gfx_element_mark_dirty(space->machine().gfx[3], (offset + 0x800) >> 3);
- gfx_element_mark_dirty(space->machine().gfx[3 + 4], (offset + 0x800) >> 5);
+ gfx_element_mark_dirty(machine().gfx[3], (offset + 0x800) >> 3);
+ gfx_element_mark_dirty(machine().gfx[3 + 4], (offset + 0x800) >> 5);
}
@@ -245,7 +238,7 @@ static ADDRESS_MAP_START( prosport_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0200, 0x021f) AM_RAM_WRITE_LEGACY(prosport_paletteram_w) AM_BASE(m_paletteram)
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x2000) AM_RAM
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE_LEGACY(prosport_bg_vram_w) AM_BASE(m_bg_vram)
- AM_RANGE(0x0800, 0x1fff) AM_READWRITE_LEGACY(prosport_charram_r,prosport_charram_w) //0x1e00-0x1fff isn't charram!
+ AM_RANGE(0x0800, 0x1fff) AM_READWRITE(prosport_charram_r,prosport_charram_w) //0x1e00-0x1fff isn't charram!
AM_RANGE(0x2400, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x33ff) AM_RAM_WRITE_LEGACY(liberate_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x3400, 0x37ff) AM_RAM_WRITE_LEGACY(liberate_videoram_w) AM_BASE(m_videoram)
@@ -258,7 +251,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( liberate_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
- AM_RANGE(0x4000, 0x7fff) AM_READ_LEGACY(deco16_bank_r)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(deco16_bank_r)
AM_RANGE(0x4000, 0x43ff) AM_WRITE_LEGACY(liberate_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4400, 0x47ff) AM_WRITE_LEGACY(liberate_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4800, 0x4fff) AM_WRITEONLY AM_BASE(m_spriteram)
@@ -271,23 +264,23 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( prosoccr_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
- AM_RANGE(0x4000, 0x7fff) AM_READ_LEGACY(prosoccr_bank_r)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(prosoccr_bank_r)
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0x800) AM_WRITE_LEGACY(liberate_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4400, 0x47ff) AM_WRITE_LEGACY(liberate_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITEONLY AM_BASE(m_spriteram)
AM_RANGE(0x6200, 0x67ff) AM_RAM AM_BASE(m_scratchram)
- AM_RANGE(0x8000, 0x97ff) AM_READWRITE_LEGACY(prosoccr_charram_r, prosoccr_charram_w)
- AM_RANGE(0x9800, 0x9800) AM_WRITE_LEGACY(prosoccr_char_bank_w)
+ AM_RANGE(0x8000, 0x97ff) AM_READWRITE(prosoccr_charram_r, prosoccr_charram_w)
+ AM_RANGE(0x9800, 0x9800) AM_WRITE(prosoccr_char_bank_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( deco16_io_map, AS_IO, 8, liberate_state )
- AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(deco16_bank_w)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(deco16_bank_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("TILT")
ADDRESS_MAP_END
static ADDRESS_MAP_START( prosoccr_io_map, AS_IO, 8, liberate_state )
- AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(prosoccr_io_bank_w)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(prosoccr_io_bank_w)
//AM_RANGE(0x01, 0x01) AM_READ_PORT("TILT")
ADDRESS_MAP_END
@@ -295,7 +288,7 @@ static ADDRESS_MAP_START( liberatb_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x00fe, 0x00fe) AM_READ_PORT("IN0")
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
- AM_RANGE(0x4000, 0x7fff) AM_READ_LEGACY(deco16_bank_r)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(deco16_bank_r)
AM_RANGE(0x4000, 0x43ff) AM_WRITE_LEGACY(liberate_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4400, 0x47ff) AM_WRITE_LEGACY(liberate_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4800, 0x4fff) AM_WRITEONLY AM_BASE(m_spriteram)
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index 9cdb1ebd7e0..220c85e016b 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -104,32 +104,30 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( lkage_sound_command_w )
+WRITE8_MEMBER(lkage_state::lkage_sound_command_w)
{
soundlatch_w(space, offset, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( lkage_sh_nmi_disable_w )
+WRITE8_MEMBER(lkage_state::lkage_sh_nmi_disable_w)
{
- lkage_state *state = space->machine().driver_data<lkage_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( lkage_sh_nmi_enable_w )
+WRITE8_MEMBER(lkage_state::lkage_sh_nmi_enable_w)
{
- lkage_state *state = space->machine().driver_data<lkage_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
/* probably wrong but commands may go lost otherwise */
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
-static READ8_HANDLER(sound_status_r)
+READ8_MEMBER(lkage_state::sound_status_r)
{
return 0xff;
}
@@ -139,8 +137,8 @@ static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* work ram */
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE_LEGACY(paletteram_xxxxRRRRGGGGBBBB_le_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf000, 0xf003) AM_RAM AM_BASE(m_vreg) /* video registers */
- AM_RANGE(0xf060, 0xf060) AM_WRITE_LEGACY(lkage_sound_command_w)
- AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0xf060, 0xf060) AM_WRITE(lkage_sound_command_w)
+ AM_RANGE(0xf061, 0xf061) AM_WRITENOP AM_READ(sound_status_r)
AM_RANGE(0xf062, 0xf062) AM_READWRITE_LEGACY(lkage_mcu_r,lkage_mcu_w)
AM_RANGE(0xf063, 0xf063) AM_WRITENOP /* pulsed; nmi on sound cpu? */
AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1")
@@ -159,13 +157,13 @@ static ADDRESS_MAP_START( lkage_map, AS_PROGRAM, 8, lkage_state )
ADDRESS_MAP_END
-static READ8_HANDLER( port_fetch_r )
+READ8_MEMBER(lkage_state::port_fetch_r)
{
- return space->machine().region("user1")->base()[offset];
+ return machine().region("user1")->base()[offset];
}
static ADDRESS_MAP_START( lkage_io_map, AS_IO, 8, lkage_state )
- AM_RANGE(0x4000, 0x7fff) AM_READ_LEGACY(port_fetch_r)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(port_fetch_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( lkage_m68705_map, AS_PROGRAM, 8, lkage_state )
@@ -190,8 +188,8 @@ static ADDRESS_MAP_START( lkage_sound_map, AS_PROGRAM, 8, lkage_state )
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r,ym2203_w)
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r,ym2203_w)
AM_RANGE(0xb000, 0xb000) AM_READ_LEGACY(soundlatch_r) AM_WRITENOP /* ??? */
- AM_RANGE(0xb001, 0xb001) AM_READNOP /* ??? */ AM_WRITE_LEGACY(lkage_sh_nmi_enable_w)
- AM_RANGE(0xb002, 0xb002) AM_WRITE_LEGACY(lkage_sh_nmi_disable_w)
+ AM_RANGE(0xb001, 0xb001) AM_READNOP /* ??? */ AM_WRITE(lkage_sh_nmi_enable_w)
+ AM_RANGE(0xb002, 0xb002) AM_WRITE(lkage_sh_nmi_disable_w)
AM_RANGE(0xb003, 0xb003) AM_WRITENOP
AM_RANGE(0xe000, 0xefff) AM_ROM /* space for diagnostic ROM? */
ADDRESS_MAP_END
@@ -918,52 +916,49 @@ ROM_END
/*Note: This probably uses another MCU dump,which is undumped.*/
-static READ8_HANDLER( fake_mcu_r )
+READ8_MEMBER(lkage_state::fake_mcu_r)
{
- lkage_state *state = space->machine().driver_data<lkage_state>();
int result = 0;
- switch (state->m_mcu_val)
+ switch (m_mcu_val)
{
/*These are for the attract mode*/
case 0x01:
- result = state->m_mcu_val - 1;
+ result = m_mcu_val - 1;
break;
case 0x90:
- result = state->m_mcu_val + 0x43;
+ result = m_mcu_val + 0x43;
break;
/*Gameplay Protection,checked in this order at a start of a play*/
case 0xa6:
- result = state->m_mcu_val + 0x27;
+ result = m_mcu_val + 0x27;
break;
case 0x34:
- result = state->m_mcu_val + 0x7f;
+ result = m_mcu_val + 0x7f;
break;
case 0x48:
- result = state->m_mcu_val + 0xb7;
+ result = m_mcu_val + 0xb7;
break;
default:
- result = state->m_mcu_val;
+ result = m_mcu_val;
break;
}
return result;
}
-static WRITE8_HANDLER( fake_mcu_w )
+WRITE8_MEMBER(lkage_state::fake_mcu_w)
{
- lkage_state *state = space->machine().driver_data<lkage_state>();
- state->m_mcu_val = data;
+ m_mcu_val = data;
}
-static READ8_HANDLER( fake_status_r )
+READ8_MEMBER(lkage_state::fake_status_r)
{
- lkage_state *state = space->machine().driver_data<lkage_state>();
- return state->m_mcu_ready;
+ return m_mcu_ready;
}
static DRIVER_INIT( lkage )
@@ -975,9 +970,9 @@ static DRIVER_INIT( lkage )
static DRIVER_INIT( lkageb )
{
lkage_state *state = machine.driver_data<lkage_state>();
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xf062, 0xf062, FUNC(fake_mcu_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xf087, 0xf087, FUNC(fake_status_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xf062, 0xf062, FUNC(fake_mcu_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xf062, 0xf062, read8_delegate(FUNC(lkage_state::fake_mcu_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xf087, 0xf087, read8_delegate(FUNC(lkage_state::fake_status_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xf062, 0xf062, write8_delegate(FUNC(lkage_state::fake_mcu_w),state));
state->m_sprite_dx=0;
}
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index fa866039ac8..4504212e82a 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -226,45 +226,40 @@ static WRITE8_DEVICE_HANDLER( aliencha_dip_w )
// Unknown, always equal to 7 in lordgun, aliencha.
-static WRITE16_HANDLER( lordgun_priority_w )
+WRITE16_MEMBER(lordgun_state::lordgun_priority_w)
{
- lordgun_state *state = space->machine().driver_data<lordgun_state>();
- COMBINE_DATA(&state->m_priority);
+ COMBINE_DATA(&m_priority);
// popmessage("PR: %04x", data);
}
-static READ16_HANDLER( lordgun_gun_0_x_r )
+READ16_MEMBER(lordgun_state::lordgun_gun_0_x_r)
{
- lordgun_state *state = space->machine().driver_data<lordgun_state>();
- return state->m_gun[0].hw_x;
+ return m_gun[0].hw_x;
}
-static READ16_HANDLER( lordgun_gun_0_y_r )
+READ16_MEMBER(lordgun_state::lordgun_gun_0_y_r)
{
- lordgun_state *state = space->machine().driver_data<lordgun_state>();
- return state->m_gun[0].hw_y;
+ return m_gun[0].hw_y;
}
-static READ16_HANDLER( lordgun_gun_1_x_r )
+READ16_MEMBER(lordgun_state::lordgun_gun_1_x_r)
{
- lordgun_state *state = space->machine().driver_data<lordgun_state>();
- return state->m_gun[1].hw_x;
+ return m_gun[1].hw_x;
}
-static READ16_HANDLER( lordgun_gun_1_y_r )
+READ16_MEMBER(lordgun_state::lordgun_gun_1_y_r)
{
- lordgun_state *state = space->machine().driver_data<lordgun_state>();
- return state->m_gun[1].hw_y;
+ return m_gun[1].hw_y;
}
-static WRITE16_HANDLER( lordgun_soundlatch_w )
+WRITE16_MEMBER(lordgun_state::lordgun_soundlatch_w)
{
if (ACCESSING_BITS_0_7) soundlatch_w (space, 0, (data >> 0) & 0xff);
if (ACCESSING_BITS_8_15) soundlatch2_w(space, 0, (data >> 8) & 0xff);
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( lordgun_map, AS_PROGRAM, 16, lordgun_state )
@@ -287,12 +282,12 @@ static ADDRESS_MAP_START( lordgun_map, AS_PROGRAM, 16, lordgun_state )
AM_RANGE(0x502a00, 0x502a01) AM_WRITEONLY AM_BASE(m_scroll_y[1])
AM_RANGE(0x502c00, 0x502c01) AM_WRITEONLY AM_BASE(m_scroll_y[2])
AM_RANGE(0x502e00, 0x502e01) AM_WRITEONLY AM_BASE(m_scroll_y[3])
- AM_RANGE(0x503000, 0x503001) AM_WRITE_LEGACY(lordgun_priority_w)
- AM_RANGE(0x503800, 0x503801) AM_READ_LEGACY(lordgun_gun_0_x_r)
- AM_RANGE(0x503a00, 0x503a01) AM_READ_LEGACY(lordgun_gun_1_x_r)
- AM_RANGE(0x503c00, 0x503c01) AM_READ_LEGACY(lordgun_gun_0_y_r)
- AM_RANGE(0x503e00, 0x503e01) AM_READ_LEGACY(lordgun_gun_1_y_r)
- AM_RANGE(0x504000, 0x504001) AM_WRITE_LEGACY(lordgun_soundlatch_w)
+ AM_RANGE(0x503000, 0x503001) AM_WRITE(lordgun_priority_w)
+ AM_RANGE(0x503800, 0x503801) AM_READ(lordgun_gun_0_x_r)
+ AM_RANGE(0x503a00, 0x503a01) AM_READ(lordgun_gun_1_x_r)
+ AM_RANGE(0x503c00, 0x503c01) AM_READ(lordgun_gun_0_y_r)
+ AM_RANGE(0x503e00, 0x503e01) AM_READ(lordgun_gun_1_y_r)
+ AM_RANGE(0x504000, 0x504001) AM_WRITE(lordgun_soundlatch_w)
AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE8_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w, 0x00ff)
AM_RANGE(0x508000, 0x508007) AM_DEVREADWRITE8_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w, 0x00ff)
AM_RANGE(0x50a900, 0x50a9ff) AM_RAM // protection
@@ -319,8 +314,8 @@ static ADDRESS_MAP_START( aliencha_map, AS_PROGRAM, 16, lordgun_state )
AM_RANGE(0x502a00, 0x502a01) AM_WRITEONLY AM_BASE(m_scroll_y[1])
AM_RANGE(0x502c00, 0x502c01) AM_WRITEONLY AM_BASE(m_scroll_y[2])
AM_RANGE(0x502e00, 0x502e01) AM_WRITEONLY AM_BASE(m_scroll_y[3])
- AM_RANGE(0x503000, 0x503001) AM_WRITE_LEGACY(lordgun_priority_w)
- AM_RANGE(0x504000, 0x504001) AM_WRITE_LEGACY(lordgun_soundlatch_w)
+ AM_RANGE(0x503000, 0x503001) AM_WRITE(lordgun_priority_w)
+ AM_RANGE(0x504000, 0x504001) AM_WRITE(lordgun_soundlatch_w)
AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE8_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w, 0x00ff)
AM_RANGE(0x508000, 0x508007) AM_DEVREADWRITE8_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w, 0x00ff)
AM_RANGE(0x50b900, 0x50b9ff) AM_RAM // protection
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index d6bb0591fb4..fc071984253 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -152,15 +152,15 @@ Notes:
#define MASTER_CLOCK XTAL_24MHz
-static WRITE8_HANDLER( lsasquad_bankswitch_w )
+WRITE8_MEMBER(lsasquad_state::lsasquad_bankswitch_w)
{
/* bits 0-2 select ROM bank */
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
/* bit 3 is zeroed on startup, maybe reset sound CPU */
/* bit 4 flips screen */
- flip_screen_set(space->machine(), data & 0x10);
+ flip_screen_set(machine(), data & 0x10);
/* other bits unknown */
}
@@ -180,7 +180,7 @@ static ADDRESS_MAP_START( lsasquad_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0xe805, 0xe805) AM_READ_PORT("P2")
AM_RANGE(0xe806, 0xe806) AM_READ_PORT("START")
AM_RANGE(0xe807, 0xe807) AM_READ_PORT("SERVICE")
- AM_RANGE(0xea00, 0xea00) AM_WRITE_LEGACY(lsasquad_bankswitch_w)
+ AM_RANGE(0xea00, 0xea00) AM_WRITE(lsasquad_bankswitch_w)
AM_RANGE(0xec00, 0xec00) AM_READWRITE_LEGACY(lsasquad_sound_result_r,lsasquad_sound_command_w)
AM_RANGE(0xec01, 0xec01) AM_READ_LEGACY(lsasquad_sound_status_r)
AM_RANGE(0xee00, 0xee00) AM_READWRITE_LEGACY(lsasquad_mcu_r,lsasquad_mcu_w)
@@ -225,7 +225,7 @@ static ADDRESS_MAP_START( storming_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0xe805, 0xe805) AM_READ_PORT("P2")
AM_RANGE(0xe806, 0xe806) AM_READ_PORT("START")
AM_RANGE(0xe807, 0xe807) AM_READ_PORT("SERVICE")
- AM_RANGE(0xea00, 0xea00) AM_WRITE_LEGACY(lsasquad_bankswitch_w)
+ AM_RANGE(0xea00, 0xea00) AM_WRITE(lsasquad_bankswitch_w)
AM_RANGE(0xec00, 0xec00) AM_READWRITE_LEGACY(lsasquad_sound_result_r,lsasquad_sound_command_w)
AM_RANGE(0xec01, 0xec01) AM_READ_LEGACY(lsasquad_sound_status_r)
ADDRESS_MAP_END
@@ -387,7 +387,7 @@ static ADDRESS_MAP_START( daikaiju_map, AS_PROGRAM, 8, lsasquad_state )
AM_RANGE(0xe805, 0xe805) AM_READ_PORT("P2")
AM_RANGE(0xe806, 0xe806) AM_READ_PORT("START")
AM_RANGE(0xe807, 0xe807) AM_READ_PORT("SERVICE")
- AM_RANGE(0xea00, 0xea00) AM_WRITE_LEGACY(lsasquad_bankswitch_w)
+ AM_RANGE(0xea00, 0xea00) AM_WRITE(lsasquad_bankswitch_w)
AM_RANGE(0xec00, 0xec00) AM_WRITE_LEGACY(lsasquad_sound_command_w)
AM_RANGE(0xec01, 0xec01) AM_READ_LEGACY(lsasquad_sound_status_r)
AM_RANGE(0xee00, 0xee00) AM_READWRITE_LEGACY(lsasquad_mcu_r, lsasquad_mcu_w)
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index ff082ee863f..d644847d79c 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -681,23 +681,21 @@
* Read/Write Handlers *
*****************************/
-static READ8_HANDLER( custom_09R81P_port_r )
+READ8_MEMBER(lucky74_state::custom_09R81P_port_r)
{
- lucky74_state *state = space->machine().driver_data<lucky74_state>();
if (offset != 0x00)
{
- return state->m_adpcm_reg[offset];
+ return m_adpcm_reg[offset];
}
else
{
- return state->m_adpcm_busy_line;
+ return m_adpcm_busy_line;
}
}
-static WRITE8_HANDLER( custom_09R81P_port_w )
+WRITE8_MEMBER(lucky74_state::custom_09R81P_port_w)
{
- lucky74_state *state = space->machine().driver_data<lucky74_state>();
- state->m_adpcm_reg[offset] = data;
+ m_adpcm_reg[offset] = data;
}
static WRITE8_DEVICE_HANDLER( ym2149_portb_w )
@@ -713,34 +711,32 @@ static WRITE8_DEVICE_HANDLER( ym2149_portb_w )
flip_screen_set(device->machine(), data & 0x01);
}
-static READ8_HANDLER( usart_8251_r )
+READ8_MEMBER(lucky74_state::usart_8251_r)
{
/* reads to USART 8251 port */
logerror("read from USART port.\n");
return 0xff;
}
-static WRITE8_HANDLER( usart_8251_w )
+WRITE8_MEMBER(lucky74_state::usart_8251_w)
{
- lucky74_state *state = space->machine().driver_data<lucky74_state>();
/* writes to USART 8251 port */
- state->m_usart_8251 = data;
- logerror("write to USART port: %02x \n", state->m_usart_8251);
+ m_usart_8251 = data;
+ logerror("write to USART port: %02x \n", m_usart_8251);
}
-static READ8_HANDLER( copro_sm7831_r )
+READ8_MEMBER(lucky74_state::copro_sm7831_r)
{
/* read from SM7831 co-processor */
logerror("read from co-processor.\n");
return 0xff;
}
-static WRITE8_HANDLER( copro_sm7831_w )
+WRITE8_MEMBER(lucky74_state::copro_sm7831_w)
{
- lucky74_state *state = space->machine().driver_data<lucky74_state>();
/* write to SM7831 co-processor */
- state->m_copro_sm7831 = data;
- logerror("write to co-processor: %2X\n", state->m_copro_sm7831);
+ m_copro_sm7831 = data;
+ logerror("write to co-processor: %2X\n", m_copro_sm7831);
}
@@ -822,13 +818,13 @@ static ADDRESS_MAP_START( lucky74_map, AS_PROGRAM, 8, lucky74_state )
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) /* YM2149 control */
AM_RANGE(0xf500, 0xf500) AM_DEVWRITE_LEGACY("sn3", sn76496_w) /* SN76489 #3 */
AM_RANGE(0xf600, 0xf600) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_data_w) /* YM2149 (Input Port 1) */
- AM_RANGE(0xf700, 0xf701) AM_READWRITE_LEGACY(usart_8251_r, usart_8251_w) /* USART 8251 port */
- AM_RANGE(0xf800, 0xf803) AM_READWRITE_LEGACY(copro_sm7831_r, copro_sm7831_w) /* SM7831 Co-Processor */
+ AM_RANGE(0xf700, 0xf701) AM_READWRITE(usart_8251_r, usart_8251_w) /* USART 8251 port */
+ AM_RANGE(0xf800, 0xf803) AM_READWRITE(copro_sm7831_r, copro_sm7831_w) /* SM7831 Co-Processor */
ADDRESS_MAP_END
static ADDRESS_MAP_START( lucky74_portmap, AS_IO, 8, lucky74_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x05) AM_READWRITE_LEGACY(custom_09R81P_port_r, custom_09R81P_port_w) /* custom 09R81P (samples system) */
+ AM_RANGE(0x00, 0x05) AM_READWRITE(custom_09R81P_port_r, custom_09R81P_port_w) /* custom 09R81P (samples system) */
// AM_RANGE(0xff, 0xff) AM_READWRITE_LEGACY(???)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index ac43a269f7a..8d911f63189 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -96,58 +96,55 @@ static MACHINE_RESET( lvpoker )
state->m_result = 0;
}
-static WRITE8_HANDLER(control_port_2_w)
+WRITE8_MEMBER(lvcards_state::control_port_2_w)
{
- lvcards_state *state = space->machine().driver_data<lvcards_state>();
switch (data)
{
case 0x60:
- state->m_payout = 1;
+ m_payout = 1;
break;
case 0xc0:
- state->m_payout = 1;
+ m_payout = 1;
break;
default:
- state->m_payout = 0;
+ m_payout = 0;
break;
}
}
-static WRITE8_HANDLER(control_port_2a_w)
+WRITE8_MEMBER(lvcards_state::control_port_2a_w)
{
- lvcards_state *state = space->machine().driver_data<lvcards_state>();
switch (data)
{
case 0x60:
- state->m_payout = 1;
+ m_payout = 1;
break;
case 0x80:
- state->m_payout = 1;
+ m_payout = 1;
break;
default:
- state->m_payout = 0;
+ m_payout = 0;
break;
}
}
-static READ8_HANDLER( payout_r )
+READ8_MEMBER(lvcards_state::payout_r)
{
- lvcards_state *state = space->machine().driver_data<lvcards_state>();
- state->m_result = input_port_read(space->machine(), "IN2");
+ m_result = input_port_read(machine(), "IN2");
- if (state->m_payout)
+ if (m_payout)
{
- if ( state->m_pulse < 3 )
+ if ( m_pulse < 3 )
{
- state->m_result = state->m_result | 0x40;
- state->m_pulse++;
+ m_result = m_result | 0x40;
+ m_pulse++;
}
else
{
- state->m_pulse = 0;
+ m_pulse = 0;
}
}
- return state->m_result;
+ return m_result;
}
static ADDRESS_MAP_START( ponttehk_map, AS_PROGRAM, 8, lvcards_state )
@@ -157,7 +154,7 @@ static ADDRESS_MAP_START( ponttehk_map, AS_PROGRAM, 8, lvcards_state )
AM_RANGE(0x8400, 0x87ff) AM_RAM_WRITE_LEGACY(lvcards_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("IN1") AM_WRITENOP // lamps
- AM_RANGE(0xa002, 0xa002) AM_READ_LEGACY(payout_r) AM_WRITE_LEGACY(control_port_2a_w)//AM_WRITENOP // ???
+ AM_RANGE(0xa002, 0xa002) AM_READ(payout_r) AM_WRITE(control_port_2a_w)//AM_WRITENOP // ???
ADDRESS_MAP_END
static ADDRESS_MAP_START( lvcards_map, AS_PROGRAM, 8, lvcards_state )
@@ -184,7 +181,7 @@ static ADDRESS_MAP_START( lvpoker_map, AS_PROGRAM, 8, lvcards_state )
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE_LEGACY(lvcards_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("IN1") AM_WRITENOP // lamps
- AM_RANGE(0xa002, 0xa002) AM_READ_LEGACY(payout_r) AM_WRITE_LEGACY(control_port_2_w)
+ AM_RANGE(0xa002, 0xa002) AM_READ(payout_r) AM_WRITE(control_port_2_w)
AM_RANGE(0xc000, 0xdfff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index b45b6a70bda..6f49719e409 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -60,34 +60,31 @@ Notes:
* a code reflecting the direction (8 angles) from one point to the other.
*/
-static WRITE8_HANDLER( avengers_adpcm_w )
+WRITE8_MEMBER(lwings_state::avengers_adpcm_w)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
- state->m_adpcm = data;
+ m_adpcm = data;
}
-static READ8_HANDLER( avengers_adpcm_r )
+READ8_MEMBER(lwings_state::avengers_adpcm_r)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
- return state->m_adpcm;
+ return m_adpcm;
}
-static WRITE8_HANDLER( lwings_bankswitch_w )
+WRITE8_MEMBER(lwings_state::lwings_bankswitch_w)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
/* bit 0 is flip screen */
- flip_screen_set(space->machine(), ~data & 0x01);
+ flip_screen_set(machine(), ~data & 0x01);
/* bits 1 and 2 select ROM bank */
- memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
+ memory_set_bank(machine(), "bank1", (data & 0x06) >> 1);
/* bit 3 enables NMI */
- state->m_nmi_mask = data & 8;
+ m_nmi_mask = data & 8;
/* bits 6 and 7 are coin counters */
- coin_counter_w(space->machine(), 1, data & 0x40);
- coin_counter_w(space->machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 1, data & 0x40);
+ coin_counter_w(machine(), 0, data & 0x80);
}
static INTERRUPT_GEN( lwings_interrupt )
@@ -107,38 +104,36 @@ static INTERRUPT_GEN( avengers_interrupt )
}
-static WRITE8_HANDLER( avengers_protection_w )
+WRITE8_MEMBER(lwings_state::avengers_protection_w)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
- int pc = cpu_get_pc(&space->device());
+ int pc = cpu_get_pc(&space.device());
if (pc == 0x2eeb)
{
- state->m_param[0] = data;
+ m_param[0] = data;
}
else if (pc == 0x2f09)
{
- state->m_param[1] = data;
+ m_param[1] = data;
}
else if(pc == 0x2f26)
{
- state->m_param[2] = data;
+ m_param[2] = data;
}
else if (pc == 0x2f43)
{
- state->m_param[3] = data;
+ m_param[3] = data;
}
else if (pc == 0x0445)
{
- state->m_soundstate = 0x80;
+ m_soundstate = 0x80;
soundlatch_w(space, 0, data);
}
}
-static WRITE8_HANDLER( avengers_prot_bank_w )
+WRITE8_MEMBER(lwings_state::avengers_prot_bank_w)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
- state->m_palette_pen = data * 64;
+ m_palette_pen = data * 64;
}
static int avengers_fetch_paldata( running_machine &machine )
@@ -234,9 +229,8 @@ static int avengers_fetch_paldata( running_machine &machine )
return result;
}
-static READ8_HANDLER( avengers_protection_r )
+READ8_MEMBER(lwings_state::avengers_protection_r)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
static const int xpos[8] = { 10, 7, 0, -7, -10, -7, 0, 7 };
static const int ypos[8] = { 0, 7, 10, 7, 0, -7, -10, -7 };
int best_dist = 0;
@@ -244,10 +238,10 @@ static READ8_HANDLER( avengers_protection_r )
int x, y;
int dx, dy, dist, dir;
- if (cpu_get_pc(&space->device()) == 0x7c7)
+ if (cpu_get_pc(&space.device()) == 0x7c7)
{
/* palette data */
- return avengers_fetch_paldata(space->machine());
+ return avengers_fetch_paldata(machine());
}
/* Point to Angle Function
@@ -255,8 +249,8 @@ static READ8_HANDLER( avengers_protection_r )
Input: two cartesian points
Output: direction code (north,northeast,east,...)
*/
- x = state->m_param[0] - state->m_param[2];
- y = state->m_param[1] - state->m_param[3];
+ x = m_param[0] - m_param[2];
+ y = m_param[1] - m_param[3];
for (dir = 0; dir < 8; dir++)
{
dx = xpos[dir] - x;
@@ -271,11 +265,10 @@ static READ8_HANDLER( avengers_protection_r )
return best_dir << 5;
}
-static READ8_HANDLER( avengers_soundlatch2_r )
+READ8_MEMBER(lwings_state::avengers_soundlatch2_r)
{
- lwings_state *state = space->machine().driver_data<lwings_state>();
- UINT8 data = *state->m_soundlatch2 | state->m_soundstate;
- state->m_soundstate = 0;
+ UINT8 data = *m_soundlatch2 | m_soundstate;
+ m_soundstate = 0;
return(data);
}
@@ -303,12 +296,12 @@ static ADDRESS_MAP_START( avengers_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xf805, 0xf805) AM_WRITE_LEGACY(trojan_bg2_image_w)
AM_RANGE(0xf808, 0xf808) AM_READ_PORT("SERVICE") AM_WRITENOP /* ? */
- AM_RANGE(0xf809, 0xf809) AM_READ_PORT("P1") AM_WRITE_LEGACY(avengers_protection_w)
+ AM_RANGE(0xf809, 0xf809) AM_READ_PORT("P1") AM_WRITE(avengers_protection_w)
AM_RANGE(0xf80a, 0xf80a) AM_READ_PORT("P2")
AM_RANGE(0xf80b, 0xf80b) AM_READ_PORT("DSWB")
- AM_RANGE(0xf80c, 0xf80c) AM_READ_PORT("DSWA") AM_WRITE_LEGACY(avengers_prot_bank_w)
- AM_RANGE(0xf80d, 0xf80d) AM_READWRITE_LEGACY(avengers_protection_r,avengers_adpcm_w)
- AM_RANGE(0xf80e, 0xf80e) AM_WRITE_LEGACY(lwings_bankswitch_w)
+ AM_RANGE(0xf80c, 0xf80c) AM_READ_PORT("DSWA") AM_WRITE(avengers_prot_bank_w)
+ AM_RANGE(0xf80d, 0xf80d) AM_READWRITE(avengers_protection_r,avengers_adpcm_w)
+ AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8, lwings_state )
@@ -329,7 +322,7 @@ static ADDRESS_MAP_START( lwings_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xf80a, 0xf80b) AM_WRITE_LEGACY(lwings_bg1_scrolly_w)
AM_RANGE(0xf80c, 0xf80c) AM_READ_PORT("DSWB") AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xf80d, 0xf80d) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0xf80e, 0xf80e) AM_WRITE_LEGACY(lwings_bankswitch_w)
+ AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8, lwings_state )
@@ -353,7 +346,7 @@ static ADDRESS_MAP_START( trojan_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xf80b, 0xf80b) AM_READ_PORT("DSWA")
AM_RANGE(0xf80c, 0xf80c) AM_READ_PORT("DSWB") AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xf80d, 0xf80d) AM_WRITE_LEGACY(soundlatch2_w)
- AM_RANGE(0xf80e, 0xf80e) AM_WRITE_LEGACY(lwings_bankswitch_w)
+ AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( lwings_sound_map, AS_PROGRAM, 8, lwings_state )
@@ -362,7 +355,7 @@ static ADDRESS_MAP_START( lwings_sound_map, AS_PROGRAM, 8, lwings_state )
AM_RANGE(0xc800, 0xc800) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xe000, 0xe001) AM_DEVWRITE_LEGACY("2203a", ym2203_w)
AM_RANGE(0xe002, 0xe003) AM_DEVWRITE_LEGACY("2203b", ym2203_w)
- AM_RANGE(0xe006, 0xe006) AM_READ_LEGACY(avengers_soundlatch2_r) //AT: (avengers061gre)
+ AM_RANGE(0xe006, 0xe006) AM_READ(avengers_soundlatch2_r) //AT: (avengers061gre)
AM_RANGE(0xe006, 0xe006) AM_WRITEONLY AM_BASE(m_soundlatch2)
ADDRESS_MAP_END
@@ -373,7 +366,7 @@ 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_LEGACY(avengers_adpcm_r)
+ AM_RANGE(0x00, 0x00) AM_READ(avengers_adpcm_r)
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("5205", msm5205_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index 64c6c873675..5d5fce22c0b 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -240,9 +240,8 @@ static MACHINE_RESET( m10 )
* 0x06: SAUCER HIT
*/
-static WRITE8_HANDLER( m10_ctrl_w )
+WRITE8_MEMBER(m10_state::m10_ctrl_w)
{
- m10_state *state = space->machine().driver_data<m10_state>();
#if DEBUG
if (data & 0x40)
@@ -250,13 +249,13 @@ static WRITE8_HANDLER( m10_ctrl_w )
#endif
/* I have NO IDEA if this is correct or not */
- state->m_bottomline = ~data & 0x20;
+ m_bottomline = ~data & 0x20;
- if (input_port_read(space->machine(), "CAB") & 0x01)
- state->m_flip = ~data & 0x10;
+ if (input_port_read(machine(), "CAB") & 0x01)
+ m_flip = ~data & 0x10;
- if (!(input_port_read(space->machine(), "CAB") & 0x02))
- space->machine().sound().system_mute(data & 0x80);
+ if (!(input_port_read(machine(), "CAB") & 0x02))
+ machine().sound().system_mute(data & 0x80);
/* sound command in lower 4 bytes */
switch (data & 0x07)
@@ -266,27 +265,27 @@ static WRITE8_HANDLER( m10_ctrl_w )
break;
case 0x01:
/* MISSILE sound */
- state->m_samples->start(0, 0);
+ m_samples->start(0, 0);
break;
case 0x02:
/* EXPLOSION sound */
- state->m_samples->start(1, 1);
+ m_samples->start(1, 1);
break;
case 0x03:
/* INVADER HIT sound */
- state->m_samples->start(2, 2);
+ m_samples->start(2, 2);
break;
case 0x04:
/* BONUS BASE sound */
- state->m_samples->start(3, 8);
+ m_samples->start(3, 8);
break;
case 0x05:
/* FLEET MOVE sound */
- state->m_samples->start(3, 3);
+ m_samples->start(3, 3);
break;
case 0x06:
/* SAUCER HIT SOUND */
- state->m_samples->start(2, 7);
+ m_samples->start(2, 7);
break;
default:
popmessage("Unknown sound M10: %02x\n", data & 0x07);
@@ -294,9 +293,9 @@ static WRITE8_HANDLER( m10_ctrl_w )
}
/* UFO SOUND */
if (data & 0x08)
- state->m_samples->stop(4);
+ m_samples->stop(4);
else
- state->m_samples->start(4, 9, true);
+ m_samples->start(4, 9, true);
}
@@ -317,22 +316,21 @@ static WRITE8_HANDLER( m10_ctrl_w )
* Will be updated only in attract mode
*/
-static WRITE8_HANDLER( m11_ctrl_w )
+WRITE8_MEMBER(m10_state::m11_ctrl_w)
{
- m10_state *state = space->machine().driver_data<m10_state>();
#if DEBUG
if (data & 0x4c)
popmessage("M11 ctrl: %02x",data);
#endif
- state->m_bottomline = ~data & 0x20;
+ m_bottomline = ~data & 0x20;
- if (input_port_read(space->machine(), "CAB") & 0x01)
- state->m_flip = ~data & 0x10;
+ if (input_port_read(machine(), "CAB") & 0x01)
+ m_flip = ~data & 0x10;
- if (!(input_port_read(space->machine(), "CAB") & 0x02))
- space->machine().sound().system_mute(data & 0x80);
+ if (!(input_port_read(machine(), "CAB") & 0x02))
+ machine().sound().system_mute(data & 0x80);
}
/*
@@ -350,18 +348,17 @@ static WRITE8_HANDLER( m11_ctrl_w )
* Will be updated only in attract mode
*/
-static WRITE8_HANDLER( m15_ctrl_w )
+WRITE8_MEMBER(m10_state::m15_ctrl_w)
{
- m10_state *state = space->machine().driver_data<m10_state>();
#if DEBUG
if (data & 0xf0)
popmessage("M15 ctrl: %02x",data);
#endif
- if (input_port_read(space->machine(), "CAB") & 0x01)
- state->m_flip = ~data & 0x04;
- if (!(input_port_read(space->machine(), "CAB") & 0x02))
- space->machine().sound().system_mute(data & 0x08);
+ if (input_port_read(machine(), "CAB") & 0x01)
+ m_flip = ~data & 0x04;
+ if (!(input_port_read(machine(), "CAB") & 0x02))
+ machine().sound().system_mute(data & 0x08);
}
@@ -378,7 +375,7 @@ static WRITE8_HANDLER( m15_ctrl_w )
* Will be updated only in attract mode
*/
-static WRITE8_HANDLER( m10_a500_w )
+WRITE8_MEMBER(m10_state::m10_a500_w)
{
#if DEBUG
if (data & 0xfc)
@@ -386,46 +383,44 @@ static WRITE8_HANDLER( m10_a500_w )
#endif
}
-static WRITE8_HANDLER( m11_a100_w )
+WRITE8_MEMBER(m10_state::m11_a100_w)
{
- m10_state *state = space->machine().driver_data<m10_state>();
- int raising_bits = data & ~state->m_last;
- //int falling_bits = ~data & state->m_last;
+ int raising_bits = data & ~m_last;
+ //int falling_bits = ~data & m_last;
// should a falling bit stop a sample?
// This port is written to about 20x per vblank
#if DEBUG
- if ((state->m_last & 0xe8) != (data & 0xe8))
+ if ((m_last & 0xe8) != (data & 0xe8))
popmessage("A100: %02x\n", data);
#endif
- state->m_last = data;
+ m_last = data;
// audio control!
/* MISSILE sound */
if (raising_bits & 0x01)
- state->m_samples->start(0, 0);
+ m_samples->start(0, 0);
/* EXPLOSION sound */
if (raising_bits & 0x02)
- state->m_samples->start(1, 1);
+ m_samples->start(1, 1);
/* Rapidly falling parachute */
if (raising_bits & 0x04)
- state->m_samples->start(3, 8);
+ m_samples->start(3, 8);
/* Background sound ? */
if (data & 0x10)
- state->m_samples->start(4, 9, true);
+ m_samples->start(4, 9, true);
else
- state->m_samples->stop(4);
+ m_samples->stop(4);
}
-static WRITE8_HANDLER( m15_a100_w )
+WRITE8_MEMBER(m10_state::m15_a100_w)
{
- m10_state *state = space->machine().driver_data<m10_state>();
- //int raising_bits = data & ~state->m_last;
- int falling_bits = ~data & state->m_last;
+ //int raising_bits = data & ~m_last;
+ int falling_bits = ~data & m_last;
// should a falling bit stop a sample?
// Bit 4 is used
@@ -441,62 +436,60 @@ static WRITE8_HANDLER( m15_a100_w )
// 0x40: dot
#if DEBUG
- if ((state->m_last & 0x82) != (data & 0x82))
+ if ((m_last & 0x82) != (data & 0x82))
popmessage("A100: %02x\n", data);
#endif
/* DOT sound */
if (falling_bits & 0x40)
- state->m_samples->start(0, 0);
+ m_samples->start(0, 0);
#if 0
if (raising_bits & 0x40)
- state->m_samples->stop(0);
+ m_samples->stop(0);
#endif
/* EXPLOSION sound */
if (falling_bits & 0x08)
- state->m_samples->start(1, 1);
+ m_samples->start(1, 1);
#if 0
if (raising_bits & 0x08)
- state->m_samples->stop(1);
+ m_samples->stop(1);
#endif
/* player changes lane */
if (falling_bits & 0x10)
- state->m_samples->start(3, 3);
+ m_samples->start(3, 3);
#if 0
if (raising_bits & 0x10)
- state->m_samples->stop(3);
+ m_samples->stop(3);
#endif
/* computer car changes lane */
if (falling_bits & 0x20)
- state->m_samples->start(4, 4);
+ m_samples->start(4, 4);
#if 0
if (raising_bits & 0x20)
- state->m_samples->stop(4);
+ m_samples->stop(4);
#endif
- state->m_last = data;
+ m_last = data;
}
-static READ8_HANDLER( m10_a700_r )
+READ8_MEMBER(m10_state::m10_a700_r)
{
- m10_state *state = space->machine().driver_data<m10_state>();
- //LOG(("rd:%d\n",space->machine().primary_screen->vpos()));
+ //LOG(("rd:%d\n",machine().primary_screen->vpos()));
LOG(("clear\n"));
- ttl74123_clear_w(state->m_ic8j1, 0, 0);
- ttl74123_clear_w(state->m_ic8j1, 0, 1);
+ ttl74123_clear_w(m_ic8j1, 0, 0);
+ ttl74123_clear_w(m_ic8j1, 0, 1);
return 0x00;
}
-static READ8_HANDLER( m11_a700_r )
+READ8_MEMBER(m10_state::m11_a700_r)
{
- m10_state *state = space->machine().driver_data<m10_state>();
- //LOG(("rd:%d\n",space->machine().primary_screen->vpos()));
- //device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ //LOG(("rd:%d\n",machine().primary_screen->vpos()));
+ //device_set_input_line(m_maincpu, 0, CLEAR_LINE);
LOG(("clear\n"));
- ttl74123_clear_w(state->m_ic8j1, 0, 0);
- ttl74123_clear_w(state->m_ic8j1, 0, 1);
+ ttl74123_clear_w(m_ic8j1, 0, 0);
+ ttl74123_clear_w(m_ic8j1, 0, 1);
return 0x00;
}
@@ -565,9 +558,9 @@ static ADDRESS_MAP_START( m10_main, AS_PROGRAM, 8, m10_state )
AM_RANGE(0x5000, 0x53ff) AM_RAM_WRITE_LEGACY(m10_chargen_w) AM_BASE(m_chargen) /* background ????? */
AM_RANGE(0xa200, 0xa200) AM_READ_PORT("DSW")
AM_RANGE(0xa300, 0xa300) AM_READ_PORT("INPUTS")
- AM_RANGE(0xa400, 0xa400) AM_WRITE_LEGACY(m10_ctrl_w) /* line at bottom of screen?, sound, flip screen */
- AM_RANGE(0xa500, 0xa500) AM_WRITE_LEGACY(m10_a500_w) /* ??? */
- AM_RANGE(0xa700, 0xa700) AM_READ_LEGACY(m10_a700_r)
+ AM_RANGE(0xa400, 0xa400) AM_WRITE(m10_ctrl_w) /* line at bottom of screen?, sound, flip screen */
+ AM_RANGE(0xa500, 0xa500) AM_WRITE(m10_a500_w) /* ??? */
+ AM_RANGE(0xa700, 0xa700) AM_READ(m10_a700_r)
AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
@@ -577,11 +570,11 @@ static ADDRESS_MAP_START( m11_main, AS_PROGRAM, 8, m10_state )
AM_RANGE(0x4000, 0x43ff) AM_RAM AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE_LEGACY(m10_colorram_w) AM_BASE(m_colorram) /* foreground colour */
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_BASE(m_chargen) /* background ????? */
- AM_RANGE(0xa100, 0xa100) AM_WRITE_LEGACY(m11_a100_w) /* sound writes ???? */
+ AM_RANGE(0xa100, 0xa100) AM_WRITE(m11_a100_w) /* sound writes ???? */
AM_RANGE(0xa200, 0xa200) AM_READ_PORT("DSW")
AM_RANGE(0xa300, 0xa300) AM_READ_PORT("INPUTS")
- AM_RANGE(0xa400, 0xa400) AM_WRITE_LEGACY(m11_ctrl_w) /* line at bottom of screen?, sound, flip screen */
- AM_RANGE(0xa700, 0xa700) AM_READ_LEGACY(m11_a700_r)
+ AM_RANGE(0xa400, 0xa400) AM_WRITE(m11_ctrl_w) /* line at bottom of screen?, sound, flip screen */
+ AM_RANGE(0xa700, 0xa700) AM_READ(m11_a700_r)
AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
@@ -592,10 +585,10 @@ static ADDRESS_MAP_START( m15_main, AS_PROGRAM, 8, m10_state )
AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE_LEGACY(m10_colorram_w) AM_BASE(m_colorram) /* foreground colour */
AM_RANGE(0x5000, 0x57ff) AM_RAM_WRITE_LEGACY(m15_chargen_w) AM_BASE(m_chargen) /* background ????? */
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P2")
- AM_RANGE(0xa100, 0xa100) AM_WRITE_LEGACY(m15_a100_w) /* sound writes ???? */
+ AM_RANGE(0xa100, 0xa100) AM_WRITE(m15_a100_w) /* sound writes ???? */
AM_RANGE(0xa200, 0xa200) AM_READ_PORT("DSW")
AM_RANGE(0xa300, 0xa300) AM_READ_PORT("P1")
- AM_RANGE(0xa400, 0xa400) AM_WRITE_LEGACY(m15_ctrl_w) /* sound, flip screen */
+ AM_RANGE(0xa400, 0xa400) AM_WRITE(m15_ctrl_w) /* sound, flip screen */
AM_RANGE(0xfc00, 0xffff) AM_ROM /* for the reset / interrupt vectors */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index 8a0e791f581..2f934886d0c 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -35,7 +35,7 @@ confirmed for m107 games as well.
#define M107_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt */
#define M107_IRQ_1 ((state->m_irq_vectorbase+4)/4) /* ??? */
#define M107_IRQ_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */
-#define M107_IRQ_3 ((state->m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
+#define M107_IRQ_3 ((m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
/*****************************************************************************/
@@ -70,59 +70,57 @@ static TIMER_DEVICE_CALLBACK( m107_scanline_interrupt )
/*****************************************************************************/
-static WRITE16_HANDLER( m107_coincounter_w )
+WRITE16_MEMBER(m107_state::m107_coincounter_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
}
}
-static WRITE16_HANDLER( m107_bankswitch_w )
+WRITE16_MEMBER(m107_state::m107_bankswitch_w)
{
if (ACCESSING_BITS_0_7)
{
- memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
+ memory_set_bank(machine(), "bank1", (data & 0x06) >> 1);
if (data & 0xf9)
- logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space->device()), data);
+ logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space.device()), data);
}
}
-static WRITE16_HANDLER( m107_soundlatch_w )
+WRITE16_MEMBER(m107_state::m107_soundlatch_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, ASSERT_LINE);
+ cputag_set_input_line(machine(), "soundcpu", NEC_INPUT_LINE_INTP1, ASSERT_LINE);
soundlatch_w(space, 0, data & 0xff);
// logerror("soundlatch_w %02x\n",data);
}
-static READ16_HANDLER( m107_sound_status_r )
+READ16_MEMBER(m107_state::m107_sound_status_r)
{
- m107_state *state = space->machine().driver_data<m107_state>();
- return state->m_sound_status;
+ return m_sound_status;
}
-static READ16_HANDLER( m107_soundlatch_r )
+READ16_MEMBER(m107_state::m107_soundlatch_r)
{
- cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
return soundlatch_r(space, offset) | 0xff00;
}
-static WRITE16_HANDLER( m107_sound_irq_ack_w )
+WRITE16_MEMBER(m107_state::m107_sound_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
}
-static WRITE16_HANDLER( m107_sound_status_w )
+WRITE16_MEMBER(m107_state::m107_sound_status_w)
{
- m107_state *state = space->machine().driver_data<m107_state>();
- COMBINE_DATA(&state->m_sound_status);
- cputag_set_input_line_and_vector(space->machine(), "maincpu", 0, HOLD_LINE, M107_IRQ_3);
+ COMBINE_DATA(&m_sound_status);
+ cputag_set_input_line_and_vector(machine(), "maincpu", 0, HOLD_LINE, M107_IRQ_3);
}
-static WRITE16_HANDLER( m107_sound_reset_w )
+WRITE16_MEMBER(m107_state::m107_sound_reset_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
}
/*****************************************************************************/
@@ -142,19 +140,19 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 16, m107_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
- AM_RANGE(0x08, 0x09) AM_READ_LEGACY(m107_sound_status_r) /* answer from sound CPU */
- AM_RANGE(0x00, 0x01) AM_WRITE_LEGACY(m107_soundlatch_w)
- AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(m107_coincounter_w)
+ AM_RANGE(0x08, 0x09) AM_READ(m107_sound_status_r) /* answer from sound CPU */
+ AM_RANGE(0x00, 0x01) AM_WRITE(m107_soundlatch_w)
+ AM_RANGE(0x02, 0x03) AM_WRITE(m107_coincounter_w)
AM_RANGE(0x04, 0x05) AM_WRITENOP /* ??? 0008 */
AM_RANGE(0x80, 0x9f) AM_WRITE_LEGACY(m107_control_w)
AM_RANGE(0xa0, 0xaf) AM_WRITENOP /* Written with 0's in interrupt */
AM_RANGE(0xb0, 0xb1) AM_WRITE_LEGACY(m107_spritebuffer_w)
AM_RANGE(0xc0, 0xc3) AM_READNOP /* Only wpksoc: ticket related? */
- AM_RANGE(0xc0, 0xc1) AM_WRITE_LEGACY(m107_sound_reset_w)
+ AM_RANGE(0xc0, 0xc1) AM_WRITE(m107_sound_reset_w)
ADDRESS_MAP_END
/* same as M107 but with an extra i/o board */
-static WRITE16_HANDLER( wpksoc_output_w )
+WRITE16_MEMBER(m107_state::wpksoc_output_w)
{
/*
x--- ---- ?
@@ -172,7 +170,7 @@ static ADDRESS_MAP_START( wpksoc_map, AS_PROGRAM, 16, m107_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( wpksoc_io_map, AS_IO, 16, m107_state )
- AM_RANGE(0x22, 0x23) AM_WRITE_LEGACY(wpksoc_output_w)
+ AM_RANGE(0x22, 0x23) AM_WRITE(wpksoc_output_w)
AM_RANGE(0xc0, 0xc1) AM_READ_PORT("WPK_IN0")
AM_RANGE(0xc2, 0xc3) AM_READ_PORT("WPK_IN1")
AM_IMPORT_FROM(main_portmap)
@@ -185,8 +183,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, m107_state )
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8_LEGACY("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff)
- AM_RANGE(0xa8044, 0xa8045) AM_READWRITE_LEGACY(m107_soundlatch_r, m107_sound_irq_ack_w)
- AM_RANGE(0xa8046, 0xa8047) AM_WRITE_LEGACY(m107_sound_status_w)
+ AM_RANGE(0xa8044, 0xa8045) AM_READWRITE(m107_soundlatch_r, m107_sound_irq_ack_w)
+ AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m107_sound_status_w)
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("soundcpu", 0x1fff0)
ADDRESS_MAP_END
@@ -980,7 +978,7 @@ static DRIVER_INIT( dsoccr94 )
UINT8 *ROM = machine.region("maincpu")->base();
memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x06, 0x07, FUNC(m107_bankswitch_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x06, 0x07, write16_delegate(FUNC(m107_state::m107_bankswitch_w),state));
state->m_irq_vectorbase = 0x80;
state->m_spritesystem = 0;
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index 41183f11d1e..77e2d6ea46b 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -82,23 +82,21 @@ other supported games as well.
/* that to select the ROM. The only exception I make is a special case used in */
/* service mode to test the ROMs. */
-static READ8_HANDLER( ldrun2_bankswitch_r )
+READ8_MEMBER(m62_state::ldrun2_bankswitch_r)
{
- m62_state *state = space->machine().driver_data<m62_state>();
- if (state->m_ldrun2_bankswap)
+ if (m_ldrun2_bankswap)
{
- state->m_ldrun2_bankswap--;
+ m_ldrun2_bankswap--;
/* swap to bank #1 on second read */
- if (state->m_ldrun2_bankswap == 0)
- memory_set_bank(space->machine(), "bank1", 1);
+ if (m_ldrun2_bankswap == 0)
+ memory_set_bank(machine(), "bank1", 1);
}
return 0;
}
-static WRITE8_HANDLER( ldrun2_bankswitch_w )
+WRITE8_MEMBER(m62_state::ldrun2_bankswitch_w)
{
- m62_state *state = space->machine().driver_data<m62_state>();
static const int banks[30] =
{
0,0,0,0,0,1,0,1,0,0,
@@ -107,7 +105,7 @@ static WRITE8_HANDLER( ldrun2_bankswitch_w )
};
- state->m_bankcontrol[offset] = data;
+ m_bankcontrol[offset] = data;
if (offset == 0)
{
@@ -116,15 +114,15 @@ static WRITE8_HANDLER( ldrun2_bankswitch_w )
logerror("unknown bank select %02x\n",data);
return;
}
- memory_set_bank(space->machine(), "bank1", banks[data - 1]);
+ memory_set_bank(machine(), "bank1", banks[data - 1]);
}
else
{
- if (state->m_bankcontrol[0] == 0x01 && data == 0x0d)
+ if (m_bankcontrol[0] == 0x01 && data == 0x0d)
/* special case for service mode */
- state->m_ldrun2_bankswap = 2;
+ m_ldrun2_bankswap = 2;
else
- state->m_ldrun2_bankswap = 0;
+ m_ldrun2_bankswap = 0;
}
}
@@ -132,43 +130,43 @@ static WRITE8_HANDLER( ldrun2_bankswitch_w )
/* Lode Runner 3 has, it seems, a poor man's protection consisting of a PAL */
/* (I think; it's included in the ROM set) which is read at certain times, */
/* and the game crashes if it doesn't match the expected values. */
-static READ8_HANDLER( ldrun3_prot_5_r )
+READ8_MEMBER(m62_state::ldrun3_prot_5_r)
{
return 5;
}
-static READ8_HANDLER( ldrun3_prot_7_r )
+READ8_MEMBER(m62_state::ldrun3_prot_7_r)
{
return 7;
}
-static WRITE8_HANDLER( ldrun4_bankswitch_w )
+WRITE8_MEMBER(m62_state::ldrun4_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
}
-static WRITE8_HANDLER( kidniki_bankswitch_w )
+WRITE8_MEMBER(m62_state::kidniki_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
#define battroad_bankswitch_w kidniki_bankswitch_w
-static WRITE8_HANDLER( spelunkr_bankswitch_w )
+WRITE8_MEMBER(m62_state::spelunkr_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
-static WRITE8_HANDLER( spelunk2_bankswitch_w )
+WRITE8_MEMBER(m62_state::spelunk2_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", (data & 0xc0) >> 6);
- memory_set_bank(space->machine(), "bank2", (data & 0x3c) >> 2);
+ memory_set_bank(machine(), "bank1", (data & 0xc0) >> 6);
+ memory_set_bank(machine(), "bank2", (data & 0x3c) >> 2);
}
-static WRITE8_HANDLER( youjyudn_bankswitch_w )
+WRITE8_MEMBER(m62_state::youjyudn_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x01);
+ memory_set_bank(machine(), "bank1", data & 0x01);
}
@@ -211,7 +209,7 @@ static ADDRESS_MAP_START( battroad_io_map, AS_IO, 8, m62_state )
AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(m62_vscroll_low_w)
AM_RANGE(0x81, 0x81) AM_WRITE_LEGACY(m62_hscroll_high_w)
AM_RANGE(0x82, 0x82) AM_WRITE_LEGACY(m62_hscroll_low_w)
- AM_RANGE(0x83, 0x83) AM_WRITE_LEGACY(battroad_bankswitch_w)
+ AM_RANGE(0x83, 0x83) AM_WRITE(battroad_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ldrun_map, AS_PROGRAM, 8, m62_state )
@@ -236,15 +234,15 @@ static ADDRESS_MAP_START( ldrun2_io_map, AS_IO, 8, m62_state )
AM_RANGE(0x02, 0x02) AM_READ_PORT("P2")
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1")
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
- AM_RANGE(0x80, 0x80) AM_READ_LEGACY(ldrun2_bankswitch_r)
- AM_RANGE(0x80, 0x81) AM_WRITE_LEGACY(ldrun2_bankswitch_w)
+ AM_RANGE(0x80, 0x80) AM_READ(ldrun2_bankswitch_r)
+ AM_RANGE(0x80, 0x81) AM_WRITE(ldrun2_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ldrun3_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc800, 0xc800) AM_READ_LEGACY(ldrun3_prot_5_r)
- AM_RANGE(0xcc00, 0xcc00) AM_READ_LEGACY(ldrun3_prot_7_r)
- AM_RANGE(0xcfff, 0xcfff) AM_READ_LEGACY(ldrun3_prot_7_r)
+ AM_RANGE(0xc800, 0xc800) AM_READ(ldrun3_prot_5_r)
+ AM_RANGE(0xcc00, 0xcc00) AM_READ(ldrun3_prot_7_r)
+ AM_RANGE(0xcfff, 0xcfff) AM_READ(ldrun3_prot_7_r)
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE_LEGACY(m62_tileram_w) AM_BASE(m_m62_tileram)
AM_RANGE(0xd000, 0xefff) AM_RAM
@@ -265,7 +263,7 @@ static ADDRESS_MAP_START( ldrun4_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(ldrun4_bankswitch_w)
+ AM_RANGE(0xc800, 0xc800) AM_WRITE(ldrun4_bankswitch_w)
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE_LEGACY(m62_tileram_w) AM_BASE(m_m62_tileram)
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
@@ -310,7 +308,7 @@ static ADDRESS_MAP_START( kidniki_io_map, AS_IO, 8, m62_state )
AM_RANGE(0x82, 0x82) AM_WRITE_LEGACY(kidniki_text_vscroll_low_w)
AM_RANGE(0x83, 0x83) AM_WRITE_LEGACY(kidniki_text_vscroll_high_w)
AM_RANGE(0x84, 0x84) AM_WRITE_LEGACY(kidniki_background_bank_w)
- AM_RANGE(0x85, 0x85) AM_WRITE_LEGACY(kidniki_bankswitch_w)
+ AM_RANGE(0x85, 0x85) AM_WRITE(kidniki_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( spelunkr_map, AS_PROGRAM, 8, m62_state )
@@ -323,7 +321,7 @@ static ADDRESS_MAP_START( spelunkr_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(m62_vscroll_high_w)
AM_RANGE(0xd002, 0xd002) AM_WRITE_LEGACY(m62_hscroll_low_w)
AM_RANGE(0xd003, 0xd003) AM_WRITE_LEGACY(m62_hscroll_high_w)
- AM_RANGE(0xd004, 0xd004) AM_WRITE_LEGACY(spelunkr_bankswitch_w)
+ AM_RANGE(0xd004, 0xd004) AM_WRITE(spelunkr_bankswitch_w)
AM_RANGE(0xd005, 0xd005) AM_WRITE_LEGACY(spelunkr_palbank_w)
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
@@ -338,7 +336,7 @@ static ADDRESS_MAP_START( spelunk2_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(m62_vscroll_low_w)
AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(m62_hscroll_low_w)
AM_RANGE(0xd002, 0xd002) AM_WRITE_LEGACY(spelunk2_gfxport_w)
- AM_RANGE(0xd003, 0xd003) AM_WRITE_LEGACY(spelunk2_bankswitch_w)
+ AM_RANGE(0xd003, 0xd003) AM_WRITE(spelunk2_bankswitch_w)
AM_RANGE(0xe000, 0xefff) AM_RAM
ADDRESS_MAP_END
@@ -360,7 +358,7 @@ static ADDRESS_MAP_START( youjyudn_io_map, AS_IO, 8, m62_state )
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(m62_hscroll_high_w)
AM_RANGE(0x81, 0x81) AM_WRITE_LEGACY(m62_hscroll_low_w)
- AM_RANGE(0x83, 0x83) AM_WRITE_LEGACY(youjyudn_bankswitch_w)
+ AM_RANGE(0x83, 0x83) AM_WRITE(youjyudn_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( horizon_map, AS_PROGRAM, 8, m62_state )
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index e0be156e241..54d278fbbfe 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -230,23 +230,21 @@ static TIMER_CALLBACK( delayed_ram16_w )
}
-static WRITE16_HANDLER( m72_main_mcu_sound_w )
+WRITE16_MEMBER(m72_state::m72_main_mcu_sound_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
if (data & 0xfff0)
logerror("sound_w: %04x %04x\n", mem_mask, data);
if (ACCESSING_BITS_0_7)
{
- state->m_mcu_snd_cmd_latch = data;
- cputag_set_input_line(space->machine(), "mcu", 1, ASSERT_LINE);
+ m_mcu_snd_cmd_latch = data;
+ cputag_set_input_line(machine(), "mcu", 1, ASSERT_LINE);
}
}
-static WRITE16_HANDLER( m72_main_mcu_w)
+WRITE16_MEMBER(m72_state::m72_main_mcu_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- UINT16 val = state->m_protection_ram[offset];
+ UINT16 val = m_protection_ram[offset];
COMBINE_DATA(&val);
@@ -256,38 +254,36 @@ static WRITE16_HANDLER( m72_main_mcu_w)
if (offset == 0x0fff/2 && ACCESSING_BITS_8_15)
{
- state->m_protection_ram[offset] = val;
- cputag_set_input_line(space->machine(), "mcu", 0, ASSERT_LINE);
+ m_protection_ram[offset] = val;
+ cputag_set_input_line(machine(), "mcu", 0, ASSERT_LINE);
/* Line driven, most likely by write line */
- //space->machine().scheduler().timer_set(space->machine().device<cpu_device>("mcu")->cycles_to_attotime(2), FUNC(mcu_irq0_clear));
- //space->machine().scheduler().timer_set(space->machine().device<cpu_device>("mcu")->cycles_to_attotime(0), FUNC(mcu_irq0_raise));
+ //machine().scheduler().timer_set(machine().device<cpu_device>("mcu")->cycles_to_attotime(2), FUNC(mcu_irq0_clear));
+ //machine().scheduler().timer_set(machine().device<cpu_device>("mcu")->cycles_to_attotime(0), FUNC(mcu_irq0_raise));
}
else
- space->machine().scheduler().synchronize( FUNC(delayed_ram16_w), (offset<<16) | val, state->m_protection_ram);
+ machine().scheduler().synchronize( FUNC(delayed_ram16_w), (offset<<16) | val, m_protection_ram);
}
-static WRITE8_HANDLER( m72_mcu_data_w )
+WRITE8_MEMBER(m72_state::m72_mcu_data_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
UINT16 val;
- if (offset&1) val = (state->m_protection_ram[offset/2] & 0x00ff) | (data << 8);
- else val = (state->m_protection_ram[offset/2] & 0xff00) | (data&0xff);
+ if (offset&1) val = (m_protection_ram[offset/2] & 0x00ff) | (data << 8);
+ else val = (m_protection_ram[offset/2] & 0xff00) | (data&0xff);
- space->machine().scheduler().synchronize( FUNC(delayed_ram16_w), ((offset >>1 ) << 16) | val, state->m_protection_ram);
+ machine().scheduler().synchronize( FUNC(delayed_ram16_w), ((offset >>1 ) << 16) | val, m_protection_ram);
}
-static READ8_HANDLER(m72_mcu_data_r )
+READ8_MEMBER(m72_state::m72_mcu_data_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
UINT8 ret;
if (offset == 0x0fff || offset == 0x0ffe)
{
- cputag_set_input_line(space->machine(), "mcu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "mcu", 0, CLEAR_LINE);
}
- if (offset&1) ret = (state->m_protection_ram[offset/2] & 0xff00)>>8;
- else ret = (state->m_protection_ram[offset/2] & 0x00ff);
+ if (offset&1) ret = (m_protection_ram[offset/2] & 0xff00)>>8;
+ else ret = (m_protection_ram[offset/2] & 0x00ff);
return ret;
}
@@ -300,58 +296,52 @@ static INTERRUPT_GEN( m72_mcu_int )
device_set_input_line(device, 1, ASSERT_LINE);
}
-static READ8_HANDLER(m72_mcu_sample_r )
+READ8_MEMBER(m72_state::m72_mcu_sample_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
UINT8 sample;
- sample = space->machine().region("samples")->base()[state->m_mcu_sample_addr++];
+ sample = machine().region("samples")->base()[m_mcu_sample_addr++];
return sample;
}
-static WRITE8_HANDLER(m72_mcu_ack_w )
+WRITE8_MEMBER(m72_state::m72_mcu_ack_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- cputag_set_input_line(space->machine(), "mcu", 1, CLEAR_LINE);
- state->m_mcu_snd_cmd_latch = 0;
+ cputag_set_input_line(machine(), "mcu", 1, CLEAR_LINE);
+ m_mcu_snd_cmd_latch = 0;
}
-static READ8_HANDLER(m72_mcu_snd_r )
+READ8_MEMBER(m72_state::m72_mcu_snd_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- return state->m_mcu_snd_cmd_latch;
+ return m_mcu_snd_cmd_latch;
}
-static READ8_HANDLER(m72_mcu_port_r )
+READ8_MEMBER(m72_state::m72_mcu_port_r)
{
logerror("port read: %02x\n", offset);
return 0;
}
-static WRITE8_HANDLER(m72_mcu_port_w )
+WRITE8_MEMBER(m72_state::m72_mcu_port_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
if (offset == 1)
{
- state->m_mcu_sample_latch = data;
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ m_mcu_sample_latch = data;
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
else
logerror("port: %02x %02x\n", offset, data);
}
-static WRITE8_HANDLER( m72_mcu_low_w )
+WRITE8_MEMBER(m72_state::m72_mcu_low_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- state->m_mcu_sample_addr = (state->m_mcu_sample_addr & 0xffe000) | (data<<5);
- logerror("low: %02x %02x %08x\n", offset, data, state->m_mcu_sample_addr);
+ m_mcu_sample_addr = (m_mcu_sample_addr & 0xffe000) | (data<<5);
+ logerror("low: %02x %02x %08x\n", offset, data, m_mcu_sample_addr);
}
-static WRITE8_HANDLER( m72_mcu_high_w )
+WRITE8_MEMBER(m72_state::m72_mcu_high_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- state->m_mcu_sample_addr = (state->m_mcu_sample_addr & 0x1fff) | (data<<(8+5));
- logerror("high: %02x %02x %08x\n", offset, data, state->m_mcu_sample_addr);
+ m_mcu_sample_addr = (m_mcu_sample_addr & 0x1fff) | (data<<(8+5));
+ logerror("high: %02x %02x %08x\n", offset, data, m_mcu_sample_addr);
}
static WRITE8_DEVICE_HANDLER( m72_snd_cpu_sample_w )
@@ -360,10 +350,9 @@ static WRITE8_DEVICE_HANDLER( m72_snd_cpu_sample_w )
dac_data_w(device, data);
}
-static READ8_HANDLER( m72_snd_cpu_sample_r )
+READ8_MEMBER(m72_state::m72_snd_cpu_sample_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- return state->m_mcu_sample_latch;
+ return m_mcu_sample_latch;
}
INLINE DRIVER_INIT( m72_8751 )
@@ -376,15 +365,15 @@ INLINE DRIVER_INIT( m72_8751 )
state->m_protection_ram = auto_alloc_array(machine, UINT16, 0x10000/2);
program->install_read_bank(0xb0000, 0xbffff, "bank1");
- program->install_legacy_write_handler(0xb0000, 0xb0fff, FUNC(m72_main_mcu_w));
+ program->install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::m72_main_mcu_w),state));
memory_set_bankptr(machine, "bank1", state->m_protection_ram);
//io->install_legacy_write_handler(0xc0, 0xc1, FUNC(loht_sample_trigger_w));
- io->install_legacy_write_handler(0xc0, 0xc1, FUNC(m72_main_mcu_sound_w));
+ 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_legacy_read_handler (0x84, 0x84, 0xff, 0, FUNC(m72_snd_cpu_sample_r));
+ sndio->install_read_handler (0x84, 0x84, 0xff, 0, read8_delegate(FUNC(m72_state::m72_snd_cpu_sample_r),state));
/* lohtb2 */
#if 0
@@ -460,79 +449,70 @@ static INTERRUPT_GEN(fake_nmi)
}
-static WRITE16_HANDLER( bchopper_sample_trigger_w )
+WRITE16_MEMBER(m72_state::bchopper_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[6] = { 0x0000, 0x0010, 0x2510, 0x6510, 0x8510, 0x9310 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 6) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 6) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( nspirit_sample_trigger_w )
+WRITE16_MEMBER(m72_state::nspirit_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[9] = { 0x0000, 0x0020, 0x2020, 0, 0x5720, 0, 0x7b60, 0x9b60, 0xc360 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 9) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 9) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( imgfight_sample_trigger_w )
+WRITE16_MEMBER(m72_state::imgfight_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[7] = { 0x0000, 0x0020, 0x44e0, 0x98a0, 0xc820, 0xf7a0, 0x108c0 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 7) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 7) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( loht_sample_trigger_w )
+WRITE16_MEMBER(m72_state::loht_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[7] = { 0x0000, 0x0020, 0, 0x2c40, 0x4320, 0x7120, 0xb200 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 7) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 7) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( xmultiplm72_sample_trigger_w )
+WRITE16_MEMBER(m72_state::xmultiplm72_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[3] = { 0x0000, 0x0020, 0x1a40 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 3) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 3) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( dbreedm72_sample_trigger_w )
+WRITE16_MEMBER(m72_state::dbreedm72_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[9] = { 0x00000, 0x00020, 0x02c40, 0x08160, 0x0c8c0, 0x0ffe0, 0x13000, 0x15820, 0x15f40 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 9) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 9) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( airduel_sample_trigger_w )
+WRITE16_MEMBER(m72_state::airduel_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[16] = {
0x00000, 0x00020, 0x03ec0, 0x05640, 0x06dc0, 0x083a0, 0x0c000, 0x0eb60,
0x112e0, 0x13dc0, 0x16520, 0x16d60, 0x18ae0, 0x1a5a0, 0x1bf00, 0x1c340 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 16) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 16) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( dkgenm72_sample_trigger_w )
+WRITE16_MEMBER(m72_state::dkgenm72_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[28] = {
0x00000, 0x00020, 0x01800, 0x02da0, 0x03be0, 0x05ae0, 0x06100, 0x06de0,
0x07260, 0x07a60, 0x08720, 0x0a5c0, 0x0c3c0, 0x0c7a0, 0x0e140, 0x0fb00,
0x10fa0, 0x10fc0, 0x10fe0, 0x11f40, 0x12b20, 0x130a0, 0x13c60, 0x14740,
0x153c0, 0x197e0, 0x1af40, 0x1c080 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 28) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 28) m72_set_sample_start(m_audio, a[data & 0xff]);
}
-static WRITE16_HANDLER( gallop_sample_trigger_w )
+WRITE16_MEMBER(m72_state::gallop_sample_trigger_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const int a[31] = {
0x00000, 0x00020, 0x00040, 0x01360, 0x02580, 0x04f20, 0x06240, 0x076e0,
0x08660, 0x092a0, 0x09ba0, 0x0a560, 0x0cee0, 0x0de20, 0x0e620, 0x0f1c0,
0x10200, 0x10220, 0x10240, 0x11380, 0x12760, 0x12780, 0x127a0, 0x13c40,
0x140a0, 0x16760, 0x17e40, 0x18ee0, 0x19f60, 0x1bbc0, 0x1cee0 };
- if (ACCESSING_BITS_0_7 && (data & 0xff) < 31) m72_set_sample_start(state->m_audio, a[data & 0xff]);
+ if (ACCESSING_BITS_0_7 && (data & 0xff) < 31) m72_set_sample_start(m_audio, a[data & 0xff]);
}
@@ -734,23 +714,21 @@ static void copy_le(UINT16 *dest, const UINT8 *src, UINT8 bytes)
dest[i/2] = src[i+0] | (src[i+1] << 8);
}
-static READ16_HANDLER( protection_r )
+READ16_MEMBER(m72_state::protection_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
if (ACCESSING_BITS_8_15)
- copy_le(state->m_protection_ram,state->m_protection_code,CODE_LEN);
- return state->m_protection_ram[0xffa/2+offset];
+ copy_le(m_protection_ram,m_protection_code,CODE_LEN);
+ return m_protection_ram[0xffa/2+offset];
}
-static WRITE16_HANDLER( protection_w )
+WRITE16_MEMBER(m72_state::protection_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
data ^= 0xffff;
- COMBINE_DATA(&state->m_protection_ram[offset]);
+ COMBINE_DATA(&m_protection_ram[offset]);
data ^= 0xffff;
if (offset == 0x0fff/2 && ACCESSING_BITS_8_15 && (data >> 8) == 0)
- copy_le(&state->m_protection_ram[0x0fe0],state->m_protection_crc,CRC_LEN);
+ copy_le(&m_protection_ram[0x0fe0],m_protection_crc,CRC_LEN);
}
static void install_protection_handler(running_machine &machine, const UINT8 *code,const UINT8 *crc)
@@ -760,37 +738,37 @@ static void install_protection_handler(running_machine &machine, const UINT8 *co
state->m_protection_code = code;
state->m_protection_crc = crc;
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xb0000, 0xb0fff, "bank1");
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xb0ffa, 0xb0ffb, FUNC(protection_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xb0000, 0xb0fff, FUNC(protection_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xb0ffa, 0xb0ffb, read16_delegate(FUNC(m72_state::protection_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xb0000, 0xb0fff, write16_delegate(FUNC(m72_state::protection_w),state));
memory_set_bankptr(machine, "bank1", state->m_protection_ram);
}
static DRIVER_INIT( bchopper )
{
install_protection_handler(machine, bchopper_code,bchopper_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(bchopper_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::bchopper_sample_trigger_w),state));
}
static DRIVER_INIT( mrheli )
{
install_protection_handler(machine, bchopper_code,mrheli_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(bchopper_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::bchopper_sample_trigger_w),state));
}
static DRIVER_INIT( nspirit )
{
install_protection_handler(machine, nspirit_code,nspirit_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(nspirit_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::nspirit_sample_trigger_w),state));
}
static DRIVER_INIT( imgfight )
{
install_protection_handler(machine, imgfight_code,imgfight_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(imgfight_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::imgfight_sample_trigger_w),state));
}
static DRIVER_INIT( loht )
@@ -798,7 +776,7 @@ static DRIVER_INIT( loht )
m72_state *state = machine.driver_data<m72_state>();
install_protection_handler(machine, loht_code,loht_crc);
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(loht_sample_trigger_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::loht_sample_trigger_w),state));
/* since we skip the startup tests, clear video RAM to prevent garbage on title screen */
memset(state->m_videoram2,0,0x4000);
@@ -807,34 +785,35 @@ static DRIVER_INIT( loht )
static DRIVER_INIT( xmultiplm72 )
{
install_protection_handler(machine, xmultiplm72_code,xmultiplm72_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(xmultiplm72_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::xmultiplm72_sample_trigger_w),state));
}
static DRIVER_INIT( dbreedm72 )
{
install_protection_handler(machine, dbreedm72_code,dbreedm72_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(dbreedm72_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dbreedm72_sample_trigger_w),state));
}
static DRIVER_INIT( airduel )
{
install_protection_handler(machine, airduel_code,airduel_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(airduel_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::airduel_sample_trigger_w),state));
}
static DRIVER_INIT( dkgenm72 )
{
install_protection_handler(machine, dkgenm72_code,dkgenm72_crc);
-
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(dkgenm72_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::dkgenm72_sample_trigger_w),state));
}
static DRIVER_INIT( gallop )
{
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0xc0, 0xc1, FUNC(gallop_sample_trigger_w));
+ m72_state *state = machine.driver_data<m72_state>();
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::gallop_sample_trigger_w),state));
}
@@ -842,25 +821,22 @@ static DRIVER_INIT( gallop )
-static READ16_HANDLER( soundram_r )
+READ16_MEMBER(m72_state::soundram_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
- return state->m_soundram[offset * 2 + 0] | (state->m_soundram[offset * 2 + 1] << 8);
+ return m_soundram[offset * 2 + 0] | (m_soundram[offset * 2 + 1] << 8);
}
-static WRITE16_HANDLER( soundram_w )
+WRITE16_MEMBER(m72_state::soundram_w)
{
- m72_state *state = space->machine().driver_data<m72_state>();
if (ACCESSING_BITS_0_7)
- state->m_soundram[offset * 2 + 0] = data;
+ m_soundram[offset * 2 + 0] = data;
if (ACCESSING_BITS_8_15)
- state->m_soundram[offset * 2 + 1] = data >> 8;
+ m_soundram[offset * 2 + 1] = data >> 8;
}
-static READ16_HANDLER( poundfor_trackball_r )
+READ16_MEMBER(m72_state::poundfor_trackball_r)
{
- m72_state *state = space->machine().driver_data<m72_state>();
static const char *const axisnames[] = { "TRACK0_X", "TRACK0_Y", "TRACK1_X", "TRACK1_Y" };
if (offset == 0)
@@ -869,9 +845,9 @@ static READ16_HANDLER( poundfor_trackball_r )
for (i = 0;i < 4;i++)
{
- curr = input_port_read(space->machine(), axisnames[i]);
- state->m_diff[i] = (curr - state->m_prev[i]);
- state->m_prev[i] = curr;
+ curr = input_port_read(machine(), axisnames[i]);
+ m_diff[i] = (curr - m_prev[i]);
+ m_prev[i] = curr;
}
}
@@ -879,13 +855,13 @@ static READ16_HANDLER( poundfor_trackball_r )
{
default:
case 0:
- return (state->m_diff[0] & 0xff) | ((state->m_diff[2] & 0xff) << 8);
+ return (m_diff[0] & 0xff) | ((m_diff[2] & 0xff) << 8);
case 1:
- return ((state->m_diff[0] >> 8) & 0x1f) | (state->m_diff[2] & 0x1f00) | (input_port_read(space->machine(), "IN0") & 0xe0e0);
+ return ((m_diff[0] >> 8) & 0x1f) | (m_diff[2] & 0x1f00) | (input_port_read(machine(), "IN0") & 0xe0e0);
case 2:
- return (state->m_diff[1] & 0xff) | ((state->m_diff[3] & 0xff) << 8);
+ return (m_diff[1] & 0xff) | ((m_diff[3] & 0xff) << 8);
case 3:
- return ((state->m_diff[1] >> 8) & 0x1f) | (state->m_diff[3] & 0x1f00);
+ return ((m_diff[1] >> 8) & 0x1f) | (m_diff[3] & 0x1f00);
}
}
@@ -899,7 +875,7 @@ static ADDRESS_MAP_START( NAME##_map, AS_PROGRAM, 16 , m72_state ) \
AM_RANGE(0xcc000, 0xccbff) AM_READWRITE_LEGACY(m72_palette2_r, m72_palette2_w) AM_BASE_GENERIC(paletteram2) \
AM_RANGE(0xd0000, 0xd3fff) AM_RAM_WRITE_LEGACY(m72_videoram1_w) AM_BASE(m_videoram1) \
AM_RANGE(0xd8000, 0xdbfff) AM_RAM_WRITE_LEGACY(m72_videoram2_w) AM_BASE(m_videoram2) \
- AM_RANGE(0xe0000, 0xeffff) AM_READWRITE_LEGACY(soundram_r, soundram_w) \
+ AM_RANGE(0xe0000, 0xeffff) AM_READWRITE(soundram_r, soundram_w) \
AM_RANGE(0xffff0, 0xfffff) AM_ROM \
ADDRESS_MAP_END
@@ -1035,7 +1011,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( poundfor_portmap, AS_IO, 16, m72_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("IN1")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
- AM_RANGE(0x08, 0x0f) AM_READ_LEGACY(poundfor_trackball_r)
+ AM_RANGE(0x08, 0x0f) AM_READ(poundfor_trackball_r)
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("m72", m72_sound_command_w)
AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(rtype2_port02_w)
AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
@@ -1135,14 +1111,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, m72_state )
/* External access */
- AM_RANGE(0x0000, 0x0000) AM_READWRITE_LEGACY(m72_mcu_sample_r, m72_mcu_low_w)
- AM_RANGE(0x0001, 0x0001) AM_WRITE_LEGACY(m72_mcu_high_w)
- AM_RANGE(0x0002, 0x0002) AM_READWRITE_LEGACY(m72_mcu_snd_r, m72_mcu_ack_w)
+ AM_RANGE(0x0000, 0x0000) AM_READWRITE(m72_mcu_sample_r, m72_mcu_low_w)
+ AM_RANGE(0x0001, 0x0001) AM_WRITE(m72_mcu_high_w)
+ AM_RANGE(0x0002, 0x0002) AM_READWRITE(m72_mcu_snd_r, m72_mcu_ack_w)
/* shared at b0000 - b0fff on the main cpu */
- AM_RANGE(0xc000, 0xcfff) AM_READWRITE_LEGACY(m72_mcu_data_r,m72_mcu_data_w )
+ AM_RANGE(0xc000, 0xcfff) AM_READWRITE(m72_mcu_data_r,m72_mcu_data_w )
/* Ports */
- AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE_LEGACY(m72_mcu_port_r, m72_mcu_port_w)
+ AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(m72_mcu_port_r, m72_mcu_port_w)
ADDRESS_MAP_END
#define COIN_MODE_1 \
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index ed63359725a..a2334ffc4d1 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -37,34 +37,34 @@ static MACHINE_START( m90 )
/***************************************************************************/
-static WRITE16_HANDLER( m90_coincounter_w )
+WRITE16_MEMBER(m90_state::m90_coincounter_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
if (data & 0xfc) logerror("Coin counter %02x\n",data);
}
}
-static WRITE16_HANDLER( quizf1_bankswitch_w )
+WRITE16_MEMBER(m90_state::quizf1_bankswitch_w)
{
if (ACCESSING_BITS_0_7)
- memory_set_bank(space->machine(), "bank1", data & 0xf);
+ memory_set_bank(machine(), "bank1", data & 0xf);
}
-static WRITE16_HANDLER( dynablsb_sound_command_w )
+WRITE16_MEMBER(m90_state::dynablsb_sound_command_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
#ifdef UNUSED_FUNCTION
-static WRITE16_HANDLER( unknown_w )
+WRITE16_MEMBER(m90_state::unknown_w)
{
printf("%04x ",data);
}
@@ -102,7 +102,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( m90_main_cpu_io_map, AS_IO, 16, m90_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("m72", m72_sound_command_w)
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
- AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(m90_coincounter_w)
+ AM_RANGE(0x02, 0x03) AM_WRITE(m90_coincounter_w)
AM_RANGE(0x02, 0x03) AM_READ_PORT("SYSTEM")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
@@ -110,15 +110,15 @@ static ADDRESS_MAP_START( m90_main_cpu_io_map, AS_IO, 16, m90_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dynablsb_main_cpu_io_map, AS_IO, 16, m90_state )
- AM_RANGE(0x00, 0x01) AM_WRITE_LEGACY(dynablsb_sound_command_w)
+ AM_RANGE(0x00, 0x01) AM_WRITE(dynablsb_sound_command_w)
AM_RANGE(0x00, 0x01) AM_READ_PORT("P1_P2")
- AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(m90_coincounter_w)
+ AM_RANGE(0x02, 0x03) AM_WRITE(m90_coincounter_w)
AM_RANGE(0x02, 0x03) AM_READ_PORT("SYSTEM")
-// AM_RANGE(0x04, 0x05) AM_WRITE_LEGACY(unknown_w) /* dynablsb: write continuously 0x6000 */
+// AM_RANGE(0x04, 0x05) AM_WRITE(unknown_w) /* dynablsb: write continuously 0x6000 */
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(m90_video_control_w)
-// AM_RANGE(0x90, 0x91) AM_WRITE_LEGACY(unknown_w)
+// AM_RANGE(0x90, 0x91) AM_WRITE(unknown_w)
ADDRESS_MAP_END
/*****************************************************************************/
@@ -1185,8 +1185,9 @@ ROM_END
static DRIVER_INIT( quizf1 )
{
+ m90_state *state = machine.driver_data<m90_state>();
memory_configure_bank(machine, "bank1", 0, 16, machine.region("user1")->base(), 0x10000);
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x04, 0x05, FUNC(quizf1_bankswitch_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x04, 0x05, write16_delegate(FUNC(m90_state::quizf1_bankswitch_w),state));
}
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index 9894f1325f4..cec72909fc7 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -207,7 +207,7 @@ psoldier dip locations still need verification.
#define M92_IRQ_0 ((state->m_irq_vectorbase+0)/4) /* VBL interrupt */
#define M92_IRQ_1 ((state->m_irq_vectorbase+4)/4) /* Sprite buffer complete interrupt */
#define M92_IRQ_2 ((state->m_irq_vectorbase+8)/4) /* Raster interrupt */
-#define M92_IRQ_3 ((state->m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
+#define M92_IRQ_3 ((m_irq_vectorbase+12)/4) /* Sound cpu interrupt */
/*****************************************************************************/
@@ -250,40 +250,40 @@ static TIMER_DEVICE_CALLBACK( m92_scanline_interrupt )
/*****************************************************************************/
-static READ16_HANDLER( m92_eeprom_r )
+READ16_MEMBER(m92_state::m92_eeprom_r)
{
- UINT8 *RAM = space->machine().region("eeprom")->base();
-// logerror("%05x: EEPROM RE %04x\n",cpu_get_pc(&space->device()),offset);
+ UINT8 *RAM = machine().region("eeprom")->base();
+// logerror("%05x: EEPROM RE %04x\n",cpu_get_pc(&space.device()),offset);
return RAM[offset] | 0xff00;
}
-static WRITE16_HANDLER( m92_eeprom_w )
+WRITE16_MEMBER(m92_state::m92_eeprom_w)
{
- UINT8 *RAM = space->machine().region("eeprom")->base();
-// logerror("%05x: EEPROM WR %04x\n",cpu_get_pc(&space->device()),offset);
+ UINT8 *RAM = machine().region("eeprom")->base();
+// logerror("%05x: EEPROM WR %04x\n",cpu_get_pc(&space.device()),offset);
if (ACCESSING_BITS_0_7)
RAM[offset] = data;
}
-static WRITE16_HANDLER( m92_coincounter_w )
+WRITE16_MEMBER(m92_state::m92_coincounter_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* Bit 0x8 is Motor(?!), used in Hook, In The Hunt, UCops */
/* Bit 0x8 is Memcard related in RTypeLeo */
/* Bit 0x40 set in Blade Master test mode input check */
}
}
-static WRITE16_HANDLER( m92_bankswitch_w )
+WRITE16_MEMBER(m92_state::m92_bankswitch_w)
{
if (ACCESSING_BITS_0_7)
{
- memory_set_bank(space->machine(), "bank1", (data & 0x06) >> 1);
+ memory_set_bank(machine(), "bank1", (data & 0x06) >> 1);
if (data & 0xf9)
- logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space->device()), data);
+ logerror("%05x: bankswitch %04x\n", cpu_get_pc(&space.device()), data);
}
}
@@ -295,40 +295,38 @@ static CUSTOM_INPUT( m92_sprite_busy_r )
/*****************************************************************************/
-static WRITE16_HANDLER( m92_soundlatch_w )
+WRITE16_MEMBER(m92_state::m92_soundlatch_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, ASSERT_LINE);
+ cputag_set_input_line(machine(), "soundcpu", NEC_INPUT_LINE_INTP1, ASSERT_LINE);
soundlatch_w(space, 0, data & 0xff);
}
-static READ16_HANDLER( m92_sound_status_r )
+READ16_MEMBER(m92_state::m92_sound_status_r)
{
- m92_state *state = space->machine().driver_data<m92_state>();
-//logerror("%06x: read sound status\n",cpu_get_pc(&space->device()));
- return state->m_sound_status;
+//logerror("%06x: read sound status\n",cpu_get_pc(&space.device()));
+ return m_sound_status;
}
-static READ16_HANDLER( m92_soundlatch_r )
+READ16_MEMBER(m92_state::m92_soundlatch_r)
{
- cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
return soundlatch_r(space, offset) | 0xff00;
}
-static WRITE16_HANDLER( m92_sound_irq_ack_w )
+WRITE16_MEMBER(m92_state::m92_sound_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", NEC_INPUT_LINE_INTP1, CLEAR_LINE);
}
-static WRITE16_HANDLER( m92_sound_status_w )
+WRITE16_MEMBER(m92_state::m92_sound_status_w)
{
- m92_state *state = space->machine().driver_data<m92_state>();
- COMBINE_DATA(&state->m_sound_status);
- cputag_set_input_line_and_vector(space->machine(), "maincpu", 0, HOLD_LINE, M92_IRQ_3);
+ COMBINE_DATA(&m_sound_status);
+ cputag_set_input_line_and_vector(machine(), "maincpu", 0, HOLD_LINE, M92_IRQ_3);
}
-static WRITE16_HANDLER( m92_sound_reset_w )
+WRITE16_MEMBER(m92_state::m92_sound_reset_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
}
/*****************************************************************************/
@@ -363,15 +361,15 @@ static ADDRESS_MAP_START( m92_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
- AM_RANGE(0x08, 0x09) AM_READ_LEGACY(m92_sound_status_r) /* answer from sound CPU */
- AM_RANGE(0x00, 0x01) AM_WRITE_LEGACY(m92_soundlatch_w)
- AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(m92_coincounter_w)
+ AM_RANGE(0x08, 0x09) AM_READ(m92_sound_status_r) /* answer from sound CPU */
+ AM_RANGE(0x00, 0x01) AM_WRITE(m92_soundlatch_w)
+ AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
AM_RANGE(0x80, 0x87) AM_WRITE_LEGACY(m92_pf1_control_w)
AM_RANGE(0x88, 0x8f) AM_WRITE_LEGACY(m92_pf2_control_w)
AM_RANGE(0x90, 0x97) AM_WRITE_LEGACY(m92_pf3_control_w)
AM_RANGE(0x98, 0x9f) AM_WRITE_LEGACY(m92_master_control_w)
- AM_RANGE(0xc0, 0xc1) AM_WRITE_LEGACY(m92_sound_reset_w)
+ AM_RANGE(0xc0, 0xc1) AM_WRITE(m92_sound_reset_w)
ADDRESS_MAP_END
static WRITE16_DEVICE_HANDLER( oki_bank_w )
@@ -384,10 +382,10 @@ static ADDRESS_MAP_START( ppan_portmap, AS_IO, 16, m92_state )
AM_RANGE(0x02, 0x03) AM_READ_PORT("COINS_DSW3")
AM_RANGE(0x04, 0x05) AM_READ_PORT("DSW")
AM_RANGE(0x06, 0x07) AM_READ_PORT("P3_P4")
- AM_RANGE(0x08, 0x09) AM_READ_LEGACY(m92_sound_status_r) /* answer from sound CPU */
+ 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(0x18, 0x19) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(m92_coincounter_w)
+ AM_RANGE(0x02, 0x03) AM_WRITE(m92_coincounter_w)
AM_RANGE(0x40, 0x43) AM_WRITENOP /* Interrupt controller, only written to at bootup */
AM_RANGE(0x80, 0x87) AM_WRITE_LEGACY(m92_pf1_control_w)
AM_RANGE(0x88, 0x8f) AM_WRITE_LEGACY(m92_pf2_control_w)
@@ -403,8 +401,8 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, m92_state )
AM_RANGE(0xa0000, 0xa3fff) AM_RAM
AM_RANGE(0xa8000, 0xa803f) AM_DEVREADWRITE8_LEGACY("irem", irem_ga20_r, irem_ga20_w, 0x00ff)
AM_RANGE(0xa8040, 0xa8043) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff)
- AM_RANGE(0xa8044, 0xa8045) AM_READWRITE_LEGACY(m92_soundlatch_r, m92_sound_irq_ack_w)
- AM_RANGE(0xa8046, 0xa8047) AM_WRITE_LEGACY(m92_sound_status_w)
+ AM_RANGE(0xa8044, 0xa8045) AM_READWRITE(m92_soundlatch_r, m92_sound_irq_ack_w)
+ AM_RANGE(0xa8046, 0xa8047) AM_WRITE(m92_sound_status_w)
AM_RANGE(0xffff0, 0xfffff) AM_ROM AM_REGION("soundcpu", 0x1fff0)
ADDRESS_MAP_END
@@ -2099,7 +2097,7 @@ static DRIVER_INIT( m92_bank )
UINT8 *ROM = machine.region("maincpu")->base();
memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x21, FUNC(m92_bankswitch_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x20, 0x21, write16_delegate(FUNC(m92_state::m92_bankswitch_w),state));
state->m_game_kludge = 0;
state->m_irq_vectorbase = 0x80;
@@ -2112,10 +2110,10 @@ static DRIVER_INIT( majtitl2 )
UINT8 *ROM = machine.region("maincpu")->base();
memory_configure_bank(machine, "bank1", 0, 4, &ROM[0x80000], 0x20000);
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x20, 0x21, FUNC(m92_bankswitch_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x20, 0x21, write16_delegate(FUNC(m92_state::m92_bankswitch_w),state));
/* This game has an eeprom on the game board */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xf0000, 0xf3fff, FUNC(m92_eeprom_r), FUNC(m92_eeprom_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xf0000, 0xf3fff, read16_delegate(FUNC(m92_state::m92_eeprom_r),state), write16_delegate(FUNC(m92_state::m92_eeprom_w),state));
state->m_game_kludge = 2;
state->m_irq_vectorbase = 0x80;
diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c
index 91141eb0987..cc8da10a4ca 100644
--- a/src/mame/drivers/macrossp.c
+++ b/src/mame/drivers/macrossp.c
@@ -304,55 +304,51 @@ Notes:
/*** VARIOUS READ / WRITE HANDLERS *******************************************/
-static WRITE32_HANDLER( paletteram32_macrossp_w )
+WRITE32_MEMBER(macrossp_state::paletteram32_macrossp_w)
{
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
int r,g,b;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- b = ((state->m_paletteram[offset] & 0x0000ff00) >>8);
- g = ((state->m_paletteram[offset] & 0x00ff0000) >>16);
- r = ((state->m_paletteram[offset] & 0xff000000) >>24);
+ b = ((m_paletteram[offset] & 0x0000ff00) >>8);
+ g = ((m_paletteram[offset] & 0x00ff0000) >>16);
+ r = ((m_paletteram[offset] & 0xff000000) >>24);
- palette_set_color(space->machine(), offset, MAKE_RGB(r,g,b));
+ palette_set_color(machine(), offset, MAKE_RGB(r,g,b));
}
-static READ32_HANDLER ( macrossp_soundstatus_r )
+READ32_MEMBER(macrossp_state::macrossp_soundstatus_r)
{
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
- // logerror("%08x read soundstatus\n", cpu_get_pc(&space->device()));
+ // logerror("%08x read soundstatus\n", cpu_get_pc(&space.device()));
/* bit 1 is sound status */
/* bit 0 unknown - it is expected to toggle, vblank? */
- state->m_snd_toggle ^= 1;
+ m_snd_toggle ^= 1;
- return (state->m_sndpending << 1) | state->m_snd_toggle;
+ return (m_sndpending << 1) | m_snd_toggle;
}
-static WRITE32_HANDLER( macrossp_soundcmd_w )
+WRITE32_MEMBER(macrossp_state::macrossp_soundcmd_w)
{
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
if (ACCESSING_BITS_16_31)
{
- //logerror("%08x write soundcmd %08x (%08x)\n",cpu_get_pc(&space->device()),data,mem_mask);
+ //logerror("%08x write soundcmd %08x (%08x)\n",cpu_get_pc(&space.device()),data,mem_mask);
soundlatch_word_w(space, 0, data >> 16, 0xffff);
- state->m_sndpending = 1;
- device_set_input_line(state->m_audiocpu, 2, HOLD_LINE);
+ m_sndpending = 1;
+ device_set_input_line(m_audiocpu, 2, HOLD_LINE);
/* spin for a while to let the sound CPU read the command */
- device_spin_until_time(&space->device(), attotime::from_usec(50));
+ device_spin_until_time(&space.device(), attotime::from_usec(50));
}
}
-static READ16_HANDLER( macrossp_soundcmd_r )
+READ16_MEMBER(macrossp_state::macrossp_soundcmd_r)
{
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
- // logerror("%06x read soundcmd\n",cpu_get_pc(&space->device()));
- state->m_sndpending = 0;
+ // logerror("%06x read soundcmd\n",cpu_get_pc(&space.device()));
+ m_sndpending = 0;
return soundlatch_word_r(space, offset, mem_mask);
}
@@ -386,17 +382,16 @@ static void update_colors( running_machine &machine )
}
}
-static WRITE32_HANDLER( macrossp_palette_fade_w )
+WRITE32_MEMBER(macrossp_state::macrossp_palette_fade_w)
{
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
- state->m_fade_effect = ((data & 0xff00) >> 8) - 0x28; //it writes two times, first with a -0x28 then with the proper data
+ m_fade_effect = ((data & 0xff00) >> 8) - 0x28; //it writes two times, first with a -0x28 then with the proper data
// popmessage("%02x",fade_effect);
- if (state->m_old_fade != state->m_fade_effect)
+ if (m_old_fade != m_fade_effect)
{
- state->m_old_fade = state->m_fade_effect;
- update_colors(space->machine());
+ m_old_fade = m_fade_effect;
+ update_colors(machine());
}
}
@@ -422,16 +417,16 @@ static ADDRESS_MAP_START( macrossp_map, AS_PROGRAM, 32, macrossp_state )
AM_RANGE(0x91c200, 0x91c3ff) AM_WRITEONLY /* W/O? */
AM_RANGE(0x91d000, 0x91d00b) AM_WRITEONLY AM_BASE(m_text_videoregs) /* W/O? */
- AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE_LEGACY(paletteram32_macrossp_w) AM_BASE(m_paletteram)
+ AM_RANGE(0xa00000, 0xa03fff) AM_RAM_WRITE(paletteram32_macrossp_w) AM_BASE(m_paletteram)
AM_RANGE(0xb00000, 0xb00003) AM_READ_PORT("INPUTS")
- AM_RANGE(0xb00004, 0xb00007) AM_READ_LEGACY(macrossp_soundstatus_r) AM_WRITENOP // irq related?
+ AM_RANGE(0xb00004, 0xb00007) AM_READ(macrossp_soundstatus_r) AM_WRITENOP // irq related?
AM_RANGE(0xb00008, 0xb0000b) AM_WRITENOP // irq related?
AM_RANGE(0xb0000c, 0xb0000f) AM_READ_PORT("DSW") AM_WRITENOP
- AM_RANGE(0xb00010, 0xb00013) AM_WRITE_LEGACY(macrossp_palette_fade_w) // macrossp palette fade
+ AM_RANGE(0xb00010, 0xb00013) AM_WRITE(macrossp_palette_fade_w) // macrossp palette fade
AM_RANGE(0xb00020, 0xb00023) AM_WRITENOP
- AM_RANGE(0xc00000, 0xc00003) AM_WRITE_LEGACY(macrossp_soundcmd_w)
+ AM_RANGE(0xc00000, 0xc00003) AM_WRITE(macrossp_soundcmd_w)
AM_RANGE(0xf00000, 0xf1ffff) AM_RAM AM_BASE(m_mainram) /* Main Ram */
// AM_RANGE(0xfe0000, 0xfe0003) AM_NOP
@@ -441,7 +436,7 @@ static ADDRESS_MAP_START( macrossp_sound_map, AS_PROGRAM, 16, macrossp_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x207fff) AM_RAM
AM_RANGE(0x400000, 0x40007f) AM_DEVREADWRITE8_LEGACY("ensoniq", es5506_r, es5506_w, 0x00ff)
- AM_RANGE(0x600000, 0x600001) AM_READ_LEGACY(macrossp_soundcmd_r)
+ AM_RANGE(0x600000, 0x600001) AM_READ(macrossp_soundcmd_r)
ADDRESS_MAP_END
/*** INPUT PORTS *************************************************************/
@@ -766,38 +761,38 @@ ROM_END
-static WRITE32_HANDLER( macrossp_speedup_w )
+WRITE32_MEMBER(macrossp_state::macrossp_speedup_w)
{
/*
PC :00018104 018104: addq.w #1, $f1015a.l
PC :0001810A 01810A: cmp.w $f10140.l, D0
PC :00018110 018110: beq 18104
*/
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
- COMBINE_DATA(&state->m_mainram[0x10158 / 4]);
- if (cpu_get_pc(&space->device()) == 0x001810A) device_spin_until_interrupt(&space->device());
+ COMBINE_DATA(&m_mainram[0x10158 / 4]);
+ if (cpu_get_pc(&space.device()) == 0x001810A) device_spin_until_interrupt(&space.device());
}
#ifdef UNUSED_FUNCTION
-static WRITE32_HANDLER( quizmoon_speedup_w )
+WRITE32_MEMBER(macrossp_state::quizmoon_speedup_w)
{
- macrossp_state *state = space->machine().driver_data<macrossp_state>();
- COMBINE_DATA(&state->m_mainram[0x00020 / 4]);
- if (cpu_get_pc(&space->device()) == 0x1cc) device_spin_until_interrupt(&space->device());
+ COMBINE_DATA(&m_mainram[0x00020 / 4]);
+ if (cpu_get_pc(&space.device()) == 0x1cc) device_spin_until_interrupt(&space.device());
}
#endif
static DRIVER_INIT( macrossp )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xf10158, 0xf1015b, FUNC(macrossp_speedup_w) );
+ macrossp_state *state = machine.driver_data<macrossp_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xf10158, 0xf1015b, write32_delegate(FUNC(macrossp_state::macrossp_speedup_w),state));
}
static DRIVER_INIT( quizmoon )
{
#ifdef UNUSED_FUNCTION
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xf00020, 0xf00023, FUNC(quizmoon_speedup_w) );
+ macrossp_state *state = machine.driver_data<macrossp_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xf00020, 0xf00023, write32_delegate(FUNC(macrossp_state::quizmoon_speedup_w),state));
#endif
}
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 6790f6ec366..be2168df367 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -30,40 +30,38 @@ INLINE UINT8 shift_common(running_machine &machine, UINT8 hi, UINT8 lo)
return table[((hi & 0x07) << 8) | lo];
}
-static READ8_HANDLER( shift_r )
+READ8_MEMBER(madalien_state::shift_r)
{
- madalien_state *state = space->machine().driver_data<madalien_state>();
- return shift_common(space->machine(), *state->m_shift_hi, *state->m_shift_lo);
+ return shift_common(machine(), *m_shift_hi, *m_shift_lo);
}
-static READ8_HANDLER( shift_rev_r )
+READ8_MEMBER(madalien_state::shift_rev_r)
{
- madalien_state *state = space->machine().driver_data<madalien_state>();
- UINT8 hi = *state->m_shift_hi ^ 0x07;
- UINT8 lo = BITSWAP8(*state->m_shift_lo,0,1,2,3,4,5,6,7);
+ UINT8 hi = *m_shift_hi ^ 0x07;
+ UINT8 lo = BITSWAP8(*m_shift_lo,0,1,2,3,4,5,6,7);
- UINT8 ret = shift_common(space->machine(), hi, lo);
+ UINT8 ret = shift_common(machine(), hi, lo);
return BITSWAP8(ret,7,0,1,2,3,4,5,6) & 0x7f;
}
-static WRITE8_HANDLER( madalien_output_w )
+WRITE8_MEMBER(madalien_state::madalien_output_w)
{
/* output latch, eight output bits, none connected */
}
-static WRITE8_HANDLER( madalien_sound_command_w )
+WRITE8_MEMBER(madalien_state::madalien_sound_command_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, ASSERT_LINE);
soundlatch_w(space, offset, data);
}
-static READ8_HANDLER(madalien_sound_command_r )
+READ8_MEMBER(madalien_state::madalien_sound_command_r)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
return soundlatch_r(space, offset);
}
@@ -88,10 +86,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, madalien_state )
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0ff0) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x8001, 0x8001) AM_MIRROR(0x0ff0) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
AM_RANGE(0x8004, 0x8004) AM_MIRROR(0x0ff0) AM_WRITEONLY AM_BASE(m_video_control)
- AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x0ff0) AM_WRITE_LEGACY(madalien_output_w)
- AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x0ff0) AM_READWRITE_LEGACY(soundlatch2_r, madalien_sound_command_w)
- AM_RANGE(0x8008, 0x8008) AM_MIRROR(0x07f0) AM_RAM_READ_LEGACY(shift_r) AM_BASE(m_shift_hi)
- AM_RANGE(0x8009, 0x8009) AM_MIRROR(0x07f0) AM_RAM_READ_LEGACY(shift_rev_r) AM_BASE(m_shift_lo)
+ AM_RANGE(0x8005, 0x8005) AM_MIRROR(0x0ff0) AM_WRITE(madalien_output_w)
+ AM_RANGE(0x8006, 0x8006) AM_MIRROR(0x0ff0) AM_READ_LEGACY(soundlatch2_r) AM_WRITE(madalien_sound_command_w)
+ AM_RANGE(0x8008, 0x8008) AM_MIRROR(0x07f0) AM_RAM_READ(shift_r) AM_BASE(m_shift_hi)
+ AM_RANGE(0x8009, 0x8009) AM_MIRROR(0x07f0) AM_RAM_READ(shift_rev_r) AM_BASE(m_shift_lo)
AM_RANGE(0x800b, 0x800b) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(m_video_flags)
AM_RANGE(0x800c, 0x800c) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(m_headlight_pos)
AM_RANGE(0x800d, 0x800d) AM_MIRROR(0x07f0) AM_WRITEONLY AM_BASE(m_edge1_pos)
@@ -109,7 +107,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, madalien_state )
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x1c00) AM_RAM
AM_RANGE(0x6000, 0x6003) AM_MIRROR(0x1ffc) AM_RAM /* unknown device in an epoxy block, might be tilt detection */
- AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1ffc) AM_READ_LEGACY(madalien_sound_command_r)
+ AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x1ffc) AM_READ(madalien_sound_command_r)
AM_RANGE(0x8000, 0x8001) AM_MIRROR(0x1ffc) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0x8002, 0x8002) AM_MIRROR(0x1ffc) AM_WRITE_LEGACY(soundlatch2_w)
AM_RANGE(0xf800, 0xffff) AM_ROM
diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c
index e3760f945ee..21dfc3d3fb0 100644
--- a/src/mame/drivers/madmotor.c
+++ b/src/mame/drivers/madmotor.c
@@ -24,14 +24,13 @@
/******************************************************************************/
-static WRITE16_HANDLER( madmotor_sound_w )
+WRITE16_MEMBER(madmotor_state::madmotor_sound_w)
{
- madmotor_state *state = space->machine().driver_data<madmotor_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
}
@@ -61,7 +60,7 @@ static ADDRESS_MAP_START( madmotor_map, AS_PROGRAM, 16, madmotor_state )
AM_RANGE(0x3f8002, 0x3f8003) AM_READ_PORT("P1_P2")
AM_RANGE(0x3f8004, 0x3f8005) AM_READ_PORT("DSW")
AM_RANGE(0x3f8006, 0x3f8007) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x3fc004, 0x3fc005) AM_WRITE_LEGACY(madmotor_sound_w)
+ AM_RANGE(0x3fc004, 0x3fc005) AM_WRITE(madmotor_sound_w)
ADDRESS_MAP_END
/******************************************************************************/
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 291f28c2ba8..3750f0eb8b2 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -30,26 +30,24 @@ Stephh's notes (based on the game M68000 code and some tests) :
#include "includes/magmax.h"
-static WRITE16_HANDLER( magmax_sound_w )
+WRITE16_MEMBER(magmax_state::magmax_sound_w)
{
- magmax_state *state = space->machine().driver_data<magmax_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_sound_latch = (data & 0xff) << 1;
- cputag_set_input_line(space->machine(), "audiocpu", 0, ASSERT_LINE);
+ m_sound_latch = (data & 0xff) << 1;
+ cputag_set_input_line(machine(), "audiocpu", 0, ASSERT_LINE);
}
}
-static READ8_HANDLER( magmax_sound_irq_ack )
+READ8_MEMBER(magmax_state::magmax_sound_irq_ack)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
return 0;
}
-static READ8_HANDLER( magmax_sound_r )
+READ8_MEMBER(magmax_state::magmax_sound_r)
{
- magmax_state *state = space->machine().driver_data<magmax_state>();
- return (state->m_sound_latch | state->m_LS74_q);
+ return (m_sound_latch | m_LS74_q);
}
static WRITE8_DEVICE_HANDLER( ay8910_portB_0_w )
@@ -188,9 +186,8 @@ bit3 - SOUND Chan#8 name=AY-3-8910 #2 Ch C
ay3->set_output_gain(2, percent);
}
-static WRITE16_HANDLER( magmax_vreg_w )
+WRITE16_MEMBER(magmax_state::magmax_vreg_w)
{
- magmax_state *state = space->machine().driver_data<magmax_state>();
/* VRAM CONTROL REGISTER */
/* bit0 - coin counter 1 */
/* bit1 - coin counter 2 */
@@ -199,7 +196,7 @@ static WRITE16_HANDLER( magmax_vreg_w )
/* bit4 - sprite bank LSB (DP0) */
/* bit5 - sprite bank MSB (DP1) */
/* bit6 - BG display enable (BE)*/
- COMBINE_DATA(state->m_vreg);
+ COMBINE_DATA(m_vreg);
}
@@ -213,16 +210,16 @@ static ADDRESS_MAP_START( magmax_map, AS_PROGRAM, 16, magmax_state )
AM_RANGE(0x030002, 0x030003) AM_READ_PORT("P2")
AM_RANGE(0x030004, 0x030005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x030006, 0x030007) AM_READ_PORT("DSW")
- AM_RANGE(0x030010, 0x030011) AM_WRITE_LEGACY(magmax_vreg_w) AM_BASE(m_vreg)
+ AM_RANGE(0x030010, 0x030011) AM_WRITE(magmax_vreg_w) AM_BASE(m_vreg)
AM_RANGE(0x030012, 0x030013) AM_WRITEONLY AM_BASE(m_scroll_x)
AM_RANGE(0x030014, 0x030015) AM_WRITEONLY AM_BASE(m_scroll_y)
- AM_RANGE(0x03001c, 0x03001d) AM_WRITE_LEGACY(magmax_sound_w)
+ AM_RANGE(0x03001c, 0x03001d) AM_WRITE(magmax_sound_w)
AM_RANGE(0x03001e, 0x03001f) AM_WRITENOP /* IRQ ack */
ADDRESS_MAP_END
static ADDRESS_MAP_START( magmax_sound_map, AS_PROGRAM, 8, magmax_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4000) AM_READ_LEGACY(magmax_sound_irq_ack)
+ AM_RANGE(0x4000, 0x4000) AM_READ(magmax_sound_irq_ack)
AM_RANGE(0x6000, 0x67ff) AM_RAM
ADDRESS_MAP_END
@@ -231,7 +228,7 @@ static ADDRESS_MAP_START( magmax_sound_io_map, AS_IO, 8, magmax_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
AM_RANGE(0x04, 0x05) AM_DEVWRITE_LEGACY("ay3", ay8910_address_data_w)
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(magmax_sound_r)
+ AM_RANGE(0x06, 0x06) AM_READ(magmax_sound_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 39a6d75b595..1fb905836f9 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -39,10 +39,9 @@ static INTERRUPT_GEN( mainevt_interrupt )
irq0_line_hold(device);
}
-static WRITE8_HANDLER( dv_nmienable_w )
+WRITE8_MEMBER(mainevt_state::dv_nmienable_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
}
static INTERRUPT_GEN( dv_interrupt )
@@ -54,38 +53,36 @@ static INTERRUPT_GEN( dv_interrupt )
}
-static WRITE8_HANDLER( mainevt_bankswitch_w )
+WRITE8_MEMBER(mainevt_state::mainevt_bankswitch_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
/* bit 0-1 ROM bank select */
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
/* TODO: bit 5 = select work RAM or palette? */
//palette_selected = data & 0x20;
/* bit 6 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
/* bit 7 = NINITSET (unknown) */
/* other bits unused */
}
-static WRITE8_HANDLER( mainevt_coin_w )
+WRITE8_MEMBER(mainevt_state::mainevt_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 0x10);
- coin_counter_w(space->machine(), 1, data & 0x20);
- set_led_status(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 1, data & 0x02);
- set_led_status(space->machine(), 2, data & 0x04);
- set_led_status(space->machine(), 3, data & 0x08);
+ coin_counter_w(machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 1, data & 0x20);
+ set_led_status(machine(), 0, data & 0x01);
+ set_led_status(machine(), 1, data & 0x02);
+ set_led_status(machine(), 2, data & 0x04);
+ set_led_status(machine(), 3, data & 0x08);
}
-static WRITE8_HANDLER( mainevt_sh_irqtrigger_w )
+WRITE8_MEMBER(mainevt_state::mainevt_sh_irqtrigger_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
- 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);
}
static READ8_DEVICE_HANDLER( mainevt_sh_busy_r )
@@ -93,37 +90,34 @@ static READ8_DEVICE_HANDLER( mainevt_sh_busy_r )
return upd7759_busy_r(device);
}
-static WRITE8_HANDLER( mainevt_sh_irqcontrol_w )
+WRITE8_MEMBER(mainevt_state::mainevt_sh_irqcontrol_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
- upd7759_reset_w(state->m_upd, data & 2);
- upd7759_start_w(state->m_upd, data & 1);
+ upd7759_reset_w(m_upd, data & 2);
+ upd7759_start_w(m_upd, data & 1);
- state->m_sound_irq_mask = data & 4;
+ m_sound_irq_mask = data & 4;
}
-static WRITE8_HANDLER( devstor_sh_irqcontrol_w )
+WRITE8_MEMBER(mainevt_state::devstor_sh_irqcontrol_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
- state->m_sound_irq_mask = data & 4;
+ m_sound_irq_mask = data & 4;
}
-static WRITE8_HANDLER( mainevt_sh_bankswitch_w )
+WRITE8_MEMBER(mainevt_state::mainevt_sh_bankswitch_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
int bank_A, bank_B;
-//logerror("CPU #1 PC: %04x bank switch = %02x\n",cpu_get_pc(&space->device()),data);
+//logerror("CPU #1 PC: %04x bank switch = %02x\n",cpu_get_pc(&space.device()),data);
/* bits 0-3 select the 007232 banks */
bank_A = (data & 0x3);
bank_B = ((data >> 2) & 0x3);
- k007232_set_bank(state->m_k007232, bank_A, bank_B);
+ k007232_set_bank(m_k007232, bank_A, bank_B);
/* bits 4-5 select the UPD7759 bank */
- upd7759_set_bank_base(state->m_upd, ((data >> 4) & 0x03) * 0x20000);
+ upd7759_set_bank_base(m_upd, ((data >> 4) & 0x03) * 0x20000);
}
static WRITE8_DEVICE_HANDLER( dv_sh_bankswitch_w )
@@ -138,42 +132,40 @@ static WRITE8_DEVICE_HANDLER( dv_sh_bankswitch_w )
k007232_set_bank(device, bank_A, bank_B);
}
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(mainevt_state::k052109_051960_r)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(mainevt_state::k052109_051960_w)
{
- mainevt_state *state = space->machine().driver_data<mainevt_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE_LEGACY(mainevt_bankswitch_w)
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
AM_RANGE(0x1f84, 0x1f84) AM_WRITE_LEGACY(soundlatch_w) /* probably */
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE_LEGACY(mainevt_sh_irqtrigger_w) /* probably */
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */
AM_RANGE(0x1f8c, 0x1f8d) AM_WRITENOP /* ??? */
- AM_RANGE(0x1f90, 0x1f90) AM_WRITE_LEGACY(mainevt_coin_w) /* coin counters + lamps */
+ AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w) /* coin counters + lamps */
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("P1")
@@ -184,7 +176,7 @@ static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x1f9a, 0x1f9a) AM_READ_PORT("P4")
AM_RANGE(0x1f9b, 0x1f9b) AM_READ_PORT("DSW2")
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE_LEGACY(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE_GENERIC(paletteram)
@@ -194,11 +186,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE_LEGACY(mainevt_bankswitch_w)
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
AM_RANGE(0x1f84, 0x1f84) AM_WRITE_LEGACY(soundlatch_w) /* probably */
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE_LEGACY(mainevt_sh_irqtrigger_w) /* probably */
- AM_RANGE(0x1f90, 0x1f90) AM_WRITE_LEGACY(mainevt_coin_w) /* coin counters + lamps */
- AM_RANGE(0x1fb2, 0x1fb2) AM_WRITE_LEGACY(dv_nmienable_w)
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */
+ AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w) /* coin counters + lamps */
+ AM_RANGE(0x1fb2, 0x1fb2) AM_WRITE(dv_nmienable_w)
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("P1")
@@ -208,7 +200,7 @@ static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x1f9b, 0x1f9b) AM_READ_PORT("DSW2")
AM_RANGE(0x1fa0, 0x1fbf) AM_DEVREADWRITE_LEGACY("k051733", k051733_r, k051733_w)
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_WRITE_LEGACY(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE_GENERIC(paletteram)
@@ -224,8 +216,8 @@ static ADDRESS_MAP_START( mainevt_sound_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_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(0xe000, 0xe000) AM_WRITE_LEGACY(mainevt_sh_irqcontrol_w)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(mainevt_sh_bankswitch_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(mainevt_sh_irqcontrol_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(mainevt_sh_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( devstors_sound_map, AS_PROGRAM, 8, mainevt_state )
@@ -234,7 +226,7 @@ static ADDRESS_MAP_START( devstors_sound_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
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_LEGACY(devstor_sh_irqcontrol_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(devstor_sh_irqcontrol_w)
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("k007232", dv_sh_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index 0f1f946aaef..949931a1500 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -112,25 +112,23 @@ cc_p14.j2 8192 0xedc6a1eb M5L2764k
#include "sound/ay8910.h"
#include "includes/mainsnk.h"
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(mainsnk_state::sound_command_w)
{
- mainsnk_state *state = space->machine().driver_data<mainsnk_state>();
- state->m_sound_cpu_busy = 1;
+ m_sound_cpu_busy = 1;
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static READ8_HANDLER( sound_command_r )
+READ8_MEMBER(mainsnk_state::sound_command_r)
{
return soundlatch_r(space, 0);
}
-static READ8_HANDLER( sound_ack_r )
+READ8_MEMBER(mainsnk_state::sound_ack_r)
{
- mainsnk_state *state = space->machine().driver_data<mainsnk_state>();
- state->m_sound_cpu_busy = 0;
+ m_sound_cpu_busy = 0;
return 0xff;
}
@@ -152,7 +150,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mainsnk_state )
AM_RANGE(0xc400, 0xc400) AM_READ_PORT("DSW1")
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW2")
AM_RANGE(0xc600, 0xc600) AM_WRITE_LEGACY(mainsnk_c600_w)
- AM_RANGE(0xc700, 0xc700) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc700, 0xc700) AM_WRITE(sound_command_w)
AM_RANGE(0xd800, 0xdbff) AM_RAM_WRITE_LEGACY(mainsnk_bgram_w) AM_BASE(m_bgram)
AM_RANGE(0xdc00, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE(m_spriteram)
@@ -162,8 +160,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, mainsnk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(sound_command_r)
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(sound_ack_r)
+ AM_RANGE(0xa000, 0xa000) AM_READ(sound_command_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(sound_ack_r)
AM_RANGE(0xe000, 0xe001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0xe002, 0xe003) AM_WRITENOP // ? always FFFF, snkwave leftover?
AM_RANGE(0xe008, 0xe009) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index aac755ad364..9ba934fdcc6 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -72,18 +72,17 @@
#include "includes/malzak.h"
-static READ8_HANDLER( fake_VRLE_r )
+READ8_MEMBER(malzak_state::fake_VRLE_r)
{
- malzak_state *state = space->machine().driver_data<malzak_state>();
- return (s2636_work_ram_r(state->m_s2636_0, 0xcb) & 0x3f) + (space->machine().primary_screen->vblank() * 0x40);
+ return (s2636_work_ram_r(m_s2636_0, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40);
}
-static READ8_HANDLER( s2636_portA_r )
+READ8_MEMBER(malzak_state::s2636_portA_r)
{
// POT switch position, read from port A of the first S2636
// Not sure of the correct values to return, but these should
// do based on the game code.
- switch (input_port_read(space->machine(), "POT"))
+ switch (input_port_read(machine(), "POT"))
{
case 0: // Normal play
return 0xf0;
@@ -106,7 +105,7 @@ static ADDRESS_MAP_START( malzak_map, AS_PROGRAM, 8, malzak_state )
AM_RANGE(0x1100, 0x11ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1300, 0x13ff) AM_MIRROR(0x6000) AM_RAM
- AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ_LEGACY(fake_VRLE_r)
+ AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ(fake_VRLE_r)
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_0", s2636_work_ram_r, s2636_work_ram_w)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_1", s2636_work_ram_r, s2636_work_ram_w)
AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM_WRITE_LEGACY(malzak_playfield_w)
@@ -126,8 +125,8 @@ static ADDRESS_MAP_START( malzak2_map, AS_PROGRAM, 8, malzak_state )
AM_RANGE(0x1100, 0x11ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1300, 0x13ff) AM_MIRROR(0x6000) AM_RAM
- AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ_LEGACY(fake_VRLE_r)
- AM_RANGE(0x14cc, 0x14cc) AM_MIRROR(0x6000) AM_READ_LEGACY(s2636_portA_r)
+ AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ(fake_VRLE_r)
+ AM_RANGE(0x14cc, 0x14cc) AM_MIRROR(0x6000) AM_READ(s2636_portA_r)
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_0", s2636_work_ram_r, s2636_work_ram_w)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE_LEGACY("s2636_1", s2636_work_ram_r, s2636_work_ram_w)
AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM_WRITE_LEGACY(malzak_playfield_w)
@@ -139,13 +138,13 @@ static ADDRESS_MAP_START( malzak2_map, AS_PROGRAM, 8, malzak_state )
ADDRESS_MAP_END
-static READ8_HANDLER( s2650_data_r )
+READ8_MEMBER(malzak_state::s2650_data_r)
{
popmessage("S2650 data port read");
return 0xff;
}
-static WRITE8_HANDLER( port40_w )
+WRITE8_MEMBER(malzak_state::port40_w)
{
// Bit 0 is constantly set high during gameplay
// Bit 4 is set high, then low, upon death
@@ -153,44 +152,41 @@ static WRITE8_HANDLER( port40_w )
// Bits 1-3 are all set high upon death, until the game continues
// Bit 6 is used only in Malzak II, and is set high after checking
// the selected version
-// logerror("S2650 [0x%04x]: port 0x40 write: 0x%02x\n", cpu_get_pc(space->machine().device("maincpu")), data);
- memory_set_bank(space->machine(), "bank1", (data & 0x40) >> 6);
+// logerror("S2650 [0x%04x]: port 0x40 write: 0x%02x\n", cpu_get_pc(machine().device("maincpu")), data);
+ memory_set_bank(machine(), "bank1", (data & 0x40) >> 6);
}
-static WRITE8_HANDLER( port60_w )
+WRITE8_MEMBER(malzak_state::port60_w)
{
- malzak_state *state = space->machine().driver_data<malzak_state>();
- state->m_malzak_x = data;
+ m_malzak_x = data;
// logerror("I/O: port 0x60 write 0x%02x\n", data);
}
-static WRITE8_HANDLER( portc0_w )
+WRITE8_MEMBER(malzak_state::portc0_w)
{
- malzak_state *state = space->machine().driver_data<malzak_state>();
- state->m_malzak_y = data;
+ m_malzak_y = data;
// logerror("I/O: port 0xc0 write 0x%02x\n", data);
}
-static READ8_HANDLER( collision_r )
+READ8_MEMBER(malzak_state::collision_r)
{
- malzak_state *state = space->machine().driver_data<malzak_state>();
// High 4 bits seem to refer to the row affected.
- if(++state->m_collision_counter > 15)
- state->m_collision_counter = 0;
+ if(++m_collision_counter > 15)
+ m_collision_counter = 0;
// logerror("I/O port 0x00 read\n");
- return 0xd0 + state->m_collision_counter;
+ return 0xd0 + m_collision_counter;
}
static ADDRESS_MAP_START( malzak_io_map, AS_IO, 8, malzak_state )
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(collision_r) // returns where a collision can occur.
- AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(port40_w) // possibly sound codes for dual SN76477s
- AM_RANGE(0x60, 0x60) AM_WRITE_LEGACY(port60_w) // possibly playfield scroll X offset
+ AM_RANGE(0x00, 0x00) AM_READ(collision_r) // returns where a collision can occur.
+ AM_RANGE(0x40, 0x40) AM_WRITE(port40_w) // possibly sound codes for dual SN76477s
+ AM_RANGE(0x60, 0x60) AM_WRITE(port60_w) // possibly playfield scroll X offset
AM_RANGE(0x80, 0x80) AM_READ_PORT("IN0") //controls
AM_RANGE(0xa0, 0xa0) AM_WRITENOP // echoes I/O port read from port 0x80
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(portc0_w) // possibly playfield row selection for writing and/or collisions
- AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ_LEGACY(s2650_data_r) // read upon death
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(portc0_w) // possibly playfield row selection for writing and/or collisions
+ AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READ(s2650_data_r) // read upon death
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("SENSE")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index 7be79c16d8c..2379c46fbc8 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -577,32 +577,31 @@ TODO:
/***************************************************************************/
-static WRITE8_HANDLER( superpac_latch_w )
+WRITE8_MEMBER(mappy_state::superpac_latch_w)
{
- mappy_state *state = space->machine().driver_data<mappy_state>();
- device_t *namcoio_1 = space->machine().device("namcoio_1");
- device_t *namcoio_2 = space->machine().device("namcoio_2");
+ device_t *namcoio_1 = machine().device("namcoio_1");
+ device_t *namcoio_2 = machine().device("namcoio_2");
int bit = offset & 1;
switch (offset & 0x0e)
{
case 0x00: /* INT ON 2 */
- state->m_sub_irq_mask = bit;
+ m_sub_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
break;
case 0x02: /* INT ON */
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 0x04: /* n.c. */
break;
case 0x06: /* SOUND ON */
- mappy_sound_enable(space->machine().device("namco"), bit);
+ mappy_sound_enable(machine().device("namco"), bit);
break;
case 0x08: /* 4 RESET */
@@ -611,7 +610,7 @@ static WRITE8_HANDLER( superpac_latch_w )
break;
case 0x0a: /* SUB RESET */
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x0c: /* n.c. */
@@ -622,35 +621,34 @@ static WRITE8_HANDLER( superpac_latch_w )
}
}
-static WRITE8_HANDLER( phozon_latch_w )
+WRITE8_MEMBER(mappy_state::phozon_latch_w)
{
- mappy_state *state = space->machine().driver_data<mappy_state>();
- device_t *namcoio_1 = space->machine().device("namcoio_1");
- device_t *namcoio_2 = space->machine().device("namcoio_2");
+ device_t *namcoio_1 = machine().device("namcoio_1");
+ device_t *namcoio_2 = machine().device("namcoio_2");
int bit = offset & 1;
switch (offset & 0x0e)
{
case 0x00:
- state->m_sub_irq_mask = bit;
+ m_sub_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
break;
case 0x02:
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 0x04:
- state->m_sub2_irq_mask = bit;
+ m_sub2_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "sub2", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub2", 0, CLEAR_LINE);
break;
case 0x06:
- mappy_sound_enable(space->machine().device("namco"), bit);
+ mappy_sound_enable(machine().device("namco"), bit);
break;
case 0x08:
@@ -659,11 +657,11 @@ static WRITE8_HANDLER( phozon_latch_w )
break;
case 0x0a:
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x0c:
- cputag_set_input_line(space->machine(), "sub2", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub2", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x0e:
@@ -671,33 +669,32 @@ static WRITE8_HANDLER( phozon_latch_w )
}
}
-static WRITE8_HANDLER( mappy_latch_w )
+WRITE8_MEMBER(mappy_state::mappy_latch_w)
{
- mappy_state *state = space->machine().driver_data<mappy_state>();
- device_t *namcoio_1 = space->machine().device("namcoio_1");
- device_t *namcoio_2 = space->machine().device("namcoio_2");
+ device_t *namcoio_1 = machine().device("namcoio_1");
+ device_t *namcoio_2 = machine().device("namcoio_2");
int bit = offset & 1;
switch (offset & 0x0e)
{
case 0x00: /* INT ON 2 */
- state->m_sub_irq_mask = bit;
+ m_sub_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
break;
case 0x02: /* INT ON */
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 0x04: /* FLIP */
- flip_screen_set(space->machine(), bit);
+ flip_screen_set(machine(), bit);
break;
case 0x06: /* SOUND ON */
- mappy_sound_enable(space->machine().device("namco"), bit);
+ mappy_sound_enable(machine().device("namco"), bit);
break;
case 0x08: /* 4 RESET */
@@ -706,7 +703,7 @@ static WRITE8_HANDLER( mappy_latch_w )
break;
case 0x0a: /* SUB RESET */
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x0c: /* n.c. */
@@ -720,32 +717,35 @@ static WRITE8_HANDLER( mappy_latch_w )
static MACHINE_RESET( superpac )
{
+ mappy_state *state = machine.driver_data<mappy_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 0x10; i += 2)
- superpac_latch_w(space,i,0);
+ state->superpac_latch_w(*space,i,0);
}
static MACHINE_RESET( phozon )
{
+ mappy_state *state = machine.driver_data<mappy_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 0x10; i += 2)
- phozon_latch_w(space, i, 0);
+ state->phozon_latch_w(*space, i, 0);
}
static MACHINE_RESET( mappy )
{
+ mappy_state *state = machine.driver_data<mappy_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 0x10; i += 2)
- mappy_latch_w(space, i, 0);
+ state->mappy_latch_w(*space, i, 0);
}
/* different games need different interrupt generators & timers because they use different Namco I/O devices */
@@ -901,7 +901,7 @@ static ADDRESS_MAP_START( superpac_cpu1_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the sound CPU */
AM_RANGE(0x4800, 0x480f) AM_DEVREADWRITE_LEGACY("namcoio_1", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x4810, 0x481f) AM_DEVREADWRITE_LEGACY("namcoio_2", namcoio_r, namcoio_w) /* custom I/O chips interface */
- AM_RANGE(0x5000, 0x500f) AM_WRITE_LEGACY(superpac_latch_w) /* various control bits */
+ AM_RANGE(0x5000, 0x500f) AM_WRITE(superpac_latch_w) /* various control bits */
AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xa000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -912,7 +912,7 @@ static ADDRESS_MAP_START( phozon_cpu1_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the sound CPU */
AM_RANGE(0x4800, 0x480f) AM_DEVREADWRITE_LEGACY("namcoio_1", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x4810, 0x481f) AM_DEVREADWRITE_LEGACY("namcoio_2", namcoio_r, namcoio_w) /* custom I/O chips interface */
- AM_RANGE(0x5000, 0x500f) AM_WRITE_LEGACY(phozon_latch_w) /* various control bits */
+ AM_RANGE(0x5000, 0x500f) AM_WRITE(phozon_latch_w) /* various control bits */
AM_RANGE(0x7000, 0x7000) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
@@ -924,7 +924,7 @@ static ADDRESS_MAP_START( mappy_cpu1_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the sound CPU */
AM_RANGE(0x4800, 0x480f) AM_DEVREADWRITE_LEGACY("namcoio_1", namcoio_r, namcoio_w) /* custom I/O chips interface */
AM_RANGE(0x4810, 0x481f) AM_DEVREADWRITE_LEGACY("namcoio_2", namcoio_r, namcoio_w) /* custom I/O chips interface */
- AM_RANGE(0x5000, 0x500f) AM_WRITE_LEGACY(mappy_latch_w) /* various control bits */
+ AM_RANGE(0x5000, 0x500f) AM_WRITE(mappy_latch_w) /* various control bits */
AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM code (only a000-ffff in Mappy) */
ADDRESS_MAP_END
@@ -932,7 +932,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( superpac_cpu2_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU (also sound registers) */
- AM_RANGE(0x2000, 0x200f) AM_WRITE_LEGACY(superpac_latch_w) /* various control bits */
+ AM_RANGE(0x2000, 0x200f) AM_WRITE(superpac_latch_w) /* various control bits */
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -943,7 +943,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mappy_cpu2_map, AS_PROGRAM, 8, mappy_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU (also sound registers) */
- AM_RANGE(0x2000, 0x200f) AM_WRITE_LEGACY(mappy_latch_w) /* various control bits */
+ AM_RANGE(0x2000, 0x200f) AM_WRITE(mappy_latch_w) /* various control bits */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM code */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c
index c677fda553f..7f30c70dda3 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -71,11 +71,10 @@ static MACHINE_START( marineb )
state->save_item(NAME(state->m_marineb_active_low_flipscreen));
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(marineb_state::irq_mask_w)
{
- marineb_state *state = space->machine().driver_data<marineb_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( marineb_map, AS_PROGRAM, 8, marineb_state )
@@ -87,7 +86,7 @@ static ADDRESS_MAP_START( marineb_map, AS_PROGRAM, 8, marineb_state )
AM_RANGE(0x9800, 0x9800) AM_WRITE_LEGACY(marineb_column_scroll_w)
AM_RANGE(0x9a00, 0x9a00) AM_WRITE_LEGACY(marineb_palette_bank_0_w)
AM_RANGE(0x9c00, 0x9c00) AM_WRITE_LEGACY(marineb_palette_bank_1_w)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P2") AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P2") AM_WRITE(irq_mask_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE_LEGACY(marineb_flipscreen_y_w)
AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(marineb_flipscreen_x_w)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 35195e2c3c0..1f4c3581e83 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -120,11 +120,10 @@ static WRITE8_DEVICE_HANDLER( mario_z80dma_rdy_w )
z80dma_rdy_w(device, data & 0x01);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(mario_state::nmi_mask_w)
{
- mario_state *state = space->machine().driver_data<mario_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
/*************************************
@@ -144,7 +143,7 @@ static ADDRESS_MAP_START( mario_map, AS_PROGRAM, 8, mario_state )
AM_RANGE(0x7e80, 0x7e80) AM_WRITE_LEGACY(mario_gfxbank_w)
AM_RANGE(0x7e82, 0x7e82) AM_WRITE_LEGACY(mario_flip_w)
AM_RANGE(0x7e83, 0x7e83) AM_WRITE_LEGACY(mario_palettebank_w)
- AM_RANGE(0x7e84, 0x7e84) AM_WRITE_LEGACY(nmi_mask_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(0x7f00, 0x7f07) AM_WRITE_LEGACY(mario_sh3_w) /* Sound port */
AM_RANGE(0x7f80, 0x7f80) AM_READ_PORT("DSW") /* DSW */
@@ -164,7 +163,7 @@ static ADDRESS_MAP_START( masao_map, AS_PROGRAM, 8, mario_state )
AM_RANGE(0x7e80, 0x7e80) AM_WRITE_LEGACY(mario_gfxbank_w)
AM_RANGE(0x7e82, 0x7e82) AM_WRITE_LEGACY(mario_flip_w)
AM_RANGE(0x7e83, 0x7e83) AM_WRITE_LEGACY(mario_palettebank_w)
- AM_RANGE(0x7e84, 0x7e84) AM_WRITE_LEGACY(nmi_mask_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(0x7f00, 0x7f00) AM_WRITE_LEGACY(masao_sh_irqtrigger_w)
AM_RANGE(0x7f80, 0x7f80) AM_READ_PORT("DSW") /* DSW */
diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c
index f4e66019bbe..687c558b231 100644
--- a/src/mame/drivers/markham.c
+++ b/src/mame/drivers/markham.c
@@ -14,7 +14,7 @@
#include "includes/markham.h"
-static READ8_HANDLER( markham_e004_r )
+READ8_MEMBER(markham_state::markham_e004_r)
{
return 0;
}
@@ -34,7 +34,7 @@ static ADDRESS_MAP_START( markham_master_map, AS_PROGRAM, 8, markham_state )
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P1")
AM_RANGE(0xe003, 0xe003) AM_READ_PORT("P2")
- AM_RANGE(0xe004, 0xe004) AM_READ_LEGACY(markham_e004_r) /* from CPU2 busack */
+ AM_RANGE(0xe004, 0xe004) AM_READ(markham_e004_r) /* from CPU2 busack */
AM_RANGE(0xe005, 0xe005) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index 49d85b26afb..f1825143bc7 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -44,18 +44,16 @@ The driver has been updated accordingly.
*
*************************************/
-static WRITE8_HANDLER( matmania_sh_command_w )
+WRITE8_MEMBER(matmania_state::matmania_sh_command_w)
{
- matmania_state *state = space->machine().driver_data<matmania_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( maniach_sh_command_w )
+WRITE8_MEMBER(matmania_state::maniach_sh_command_w)
{
- matmania_state *state = space->machine().driver_data<matmania_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
}
@@ -75,7 +73,7 @@ static ADDRESS_MAP_START( matmania_map, AS_PROGRAM, 8, matmania_state )
AM_RANGE(0x2400, 0x25ff) AM_RAM AM_BASE_SIZE(m_videoram3, m_videoram3_size)
AM_RANGE(0x2600, 0x27ff) AM_RAM AM_BASE(m_colorram3)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("IN0") AM_WRITEONLY AM_BASE(m_pageselect)
- AM_RANGE(0x3010, 0x3010) AM_READ_PORT("IN1") AM_WRITE_LEGACY(matmania_sh_command_w)
+ AM_RANGE(0x3010, 0x3010) AM_READ_PORT("IN1") AM_WRITE(matmania_sh_command_w)
AM_RANGE(0x3020, 0x3020) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE(m_scroll)
AM_RANGE(0x3030, 0x3030) AM_READ_PORT("DSW1") AM_WRITENOP /* ?? */
AM_RANGE(0x3050, 0x307f) AM_WRITE_LEGACY(matmania_paletteram_w) AM_BASE(m_paletteram)
@@ -92,7 +90,7 @@ static ADDRESS_MAP_START( maniach_map, AS_PROGRAM, 8, matmania_state )
AM_RANGE(0x2400, 0x25ff) AM_RAM AM_BASE_SIZE(m_videoram3, m_videoram3_size)
AM_RANGE(0x2600, 0x27ff) AM_RAM AM_BASE(m_colorram3)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("IN0") AM_WRITEONLY AM_BASE(m_pageselect)
- AM_RANGE(0x3010, 0x3010) AM_READ_PORT("IN1") AM_WRITE_LEGACY(maniach_sh_command_w)
+ AM_RANGE(0x3010, 0x3010) AM_READ_PORT("IN1") AM_WRITE(maniach_sh_command_w)
AM_RANGE(0x3020, 0x3020) AM_READ_PORT("DSW2") AM_WRITEONLY AM_BASE(m_scroll)
AM_RANGE(0x3030, 0x3030) AM_READ_PORT("DSW1") AM_WRITENOP /* ?? */
AM_RANGE(0x3040, 0x3040) AM_READWRITE_LEGACY(maniach_mcu_r,maniach_mcu_w)
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index d741a087151..239f9a93d2b 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -144,28 +144,27 @@ Stephh's notes (based on the games M68000 code and some tests) :
/*** Main CPU ***/
-static WRITE16_HANDLER( mcat_soundlatch_w )
+WRITE16_MEMBER(mcatadv_state::mcat_soundlatch_w)
{
- mcatadv_state *state = space->machine().driver_data<mcatadv_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
}
#if 0 // mcat only.. install read handler?
-static WRITE16_HANDLER( mcat_coin_w )
+WRITE16_MEMBER(mcatadv_state::mcat_coin_w)
{
if(ACCESSING_BITS_8_15)
{
- coin_counter_w(space->machine(), 0, data & 0x1000);
- coin_counter_w(space->machine(), 1, data & 0x2000);
- coin_lockout_w(space->machine(), 0, ~data & 0x4000);
- coin_lockout_w(space->machine(), 1, ~data & 0x8000);
+ coin_counter_w(machine(), 0, data & 0x1000);
+ coin_counter_w(machine(), 1, data & 0x2000);
+ coin_lockout_w(machine(), 0, ~data & 0x4000);
+ coin_lockout_w(machine(), 1, ~data & 0x8000);
}
}
#endif
-static READ16_HANDLER( mcat_wd_r )
+READ16_MEMBER(mcatadv_state::mcat_wd_r)
{
watchdog_reset_r(space, 0);
return 0xc00;
@@ -192,22 +191,22 @@ static ADDRESS_MAP_START( mcatadv_map, AS_PROGRAM, 16, mcatadv_state )
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("P1")
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("P2")
-// AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(mcat_coin_w) // Lockout / Counter MCAT Only
+// AM_RANGE(0x900000, 0x900001) AM_WRITE(mcat_coin_w) // Lockout / Counter MCAT Only
AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("DSW1")
AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW2")
AM_RANGE(0xb00000, 0xb0000f) AM_RAM AM_BASE(m_vidregs)
AM_RANGE(0xb00018, 0xb00019) AM_WRITE_LEGACY(watchdog_reset16_w) // NOST Only
- AM_RANGE(0xb0001e, 0xb0001f) AM_READ_LEGACY(mcat_wd_r) // MCAT Only
- AM_RANGE(0xc00000, 0xc00001) AM_READWRITE_LEGACY(soundlatch2_word_r, mcat_soundlatch_w)
+ AM_RANGE(0xb0001e, 0xb0001f) AM_READ(mcat_wd_r) // MCAT Only
+ AM_RANGE(0xc00000, 0xc00001) AM_READ_LEGACY(soundlatch2_word_r) AM_WRITE(mcat_soundlatch_w)
ADDRESS_MAP_END
/*** Sound ***/
-static WRITE8_HANDLER ( mcatadv_sound_bw_w )
+WRITE8_MEMBER(mcatadv_state::mcatadv_sound_bw_w)
{
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
}
@@ -216,7 +215,7 @@ static ADDRESS_MAP_START( mcatadv_sound_map, AS_PROGRAM, 8, mcatadv_state )
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1") // ROM
AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(mcatadv_sound_bw_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(mcatadv_sound_bw_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcatadv_sound_io_map, AS_IO, 8, mcatadv_state )
@@ -235,7 +234,7 @@ static ADDRESS_MAP_START( nost_sound_io_map, AS_IO, 8, mcatadv_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2610_w)
AM_RANGE(0x04, 0x07) AM_DEVREAD_LEGACY("ymsnd", ym2610_r)
- AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(mcatadv_sound_bw_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(mcatadv_sound_bw_w)
AM_RANGE(0x80, 0x80) AM_READWRITE_LEGACY(soundlatch_r, soundlatch2_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index 8708efd4912..3e350d9a620 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -77,7 +77,7 @@ READ8_DEVICE_HANDLER( zwackery_port_2_r )
}
-static READ16_HANDLER( zwackery_6840_r )
+READ16_MEMBER(mcr68_state::zwackery_6840_r)
{
/* Zwackery does a timer test: */
/* It loads $1388 into one of the timers clocked by E */
@@ -87,8 +87,8 @@ static READ16_HANDLER( zwackery_6840_r )
/* It expects D1 to end up between 0 and 5; in order to */
/* make this happen, we must assume that reads from the */
/* 6840 take 14 additional cycles */
- device_adjust_icount(&space->device(), -14);
- return mcr68_6840_upper_r(space,offset,0xffff);
+ device_adjust_icount(&space.device(), -14);
+ return mcr68_6840_upper_r(&space,offset,0xffff);
}
@@ -99,12 +99,11 @@ static READ16_HANDLER( zwackery_6840_r )
*
*************************************/
-static WRITE16_HANDLER( xenophobe_control_w )
+WRITE16_MEMBER(mcr68_state::xenophobe_control_w)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
- COMBINE_DATA(&state->m_control_word);
-/* soundsgood_reset_w(~state->m_control_word & 0x0020);*/
- soundsgood_data_w(space, offset, ((state->m_control_word & 0x000f) << 1) | ((state->m_control_word & 0x0010) >> 4));
+ COMBINE_DATA(&m_control_word);
+/* soundsgood_reset_w(~m_control_word & 0x0020);*/
+ soundsgood_data_w(&space, offset, ((m_control_word & 0x000f) << 1) | ((m_control_word & 0x0010) >> 4));
}
@@ -115,12 +114,11 @@ static WRITE16_HANDLER( xenophobe_control_w )
*
*************************************/
-static WRITE16_HANDLER( blasted_control_w )
+WRITE16_MEMBER(mcr68_state::blasted_control_w)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
- COMBINE_DATA(&state->m_control_word);
-/* soundsgood_reset_w(~state->m_control_word & 0x0020);*/
- soundsgood_data_w(space, offset, (state->m_control_word >> 8) & 0x1f);
+ COMBINE_DATA(&m_control_word);
+/* soundsgood_reset_w(~m_control_word & 0x0020);*/
+ soundsgood_data_w(&space, offset, (m_control_word >> 8) & 0x1f);
}
@@ -131,35 +129,33 @@ static WRITE16_HANDLER( blasted_control_w )
*
*************************************/
-static READ16_HANDLER( spyhunt2_port_0_r )
+READ16_MEMBER(mcr68_state::spyhunt2_port_0_r)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
static const char *const portnames[] = { "AN1", "AN2", "AN3", "AN4" };
- int result = input_port_read(space->machine(), "IN0");
- int which = (state->m_control_word >> 3) & 3;
- int analog = input_port_read(space->machine(), portnames[which]);
+ int result = input_port_read(machine(), "IN0");
+ int which = (m_control_word >> 3) & 3;
+ int analog = input_port_read(machine(), portnames[which]);
- return result | ((soundsgood_status_r(space, 0) & 1) << 5) | (analog << 8);
+ return result | ((soundsgood_status_r(&space, 0) & 1) << 5) | (analog << 8);
}
-static READ16_HANDLER( spyhunt2_port_1_r )
+READ16_MEMBER(mcr68_state::spyhunt2_port_1_r)
{
- int result = input_port_read(space->machine(), "IN1");
- return result | ((turbocs_status_r(space, 0) & 1) << 7);
+ int result = input_port_read(machine(), "IN1");
+ return result | ((turbocs_status_r(&space, 0) & 1) << 7);
}
-static WRITE16_HANDLER( spyhunt2_control_w )
+WRITE16_MEMBER(mcr68_state::spyhunt2_control_w)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
- COMBINE_DATA(&state->m_control_word);
+ COMBINE_DATA(&m_control_word);
-/* turbocs_reset_w(~state->m_control_word & 0x0080);*/
- turbocs_data_w(space, offset, (state->m_control_word >> 8) & 0x001f);
+/* turbocs_reset_w(~m_control_word & 0x0080);*/
+ turbocs_data_w(&space, offset, (m_control_word >> 8) & 0x001f);
- soundsgood_reset_w(space->machine(), ~state->m_control_word & 0x2000);
- soundsgood_data_w(space, offset, (state->m_control_word >> 8) & 0x001f);
+ soundsgood_reset_w(machine(), ~m_control_word & 0x2000);
+ soundsgood_data_w(&space, offset, (m_control_word >> 8) & 0x001f);
}
@@ -197,21 +193,20 @@ static WRITE16_HANDLER( spyhunt2_control_w )
static const UINT8 translate49[7] = { 0x7, 0x3, 0x1, 0x0, 0xc, 0xe, 0xf };
-static READ16_HANDLER( archrivl_port_1_r )
+READ16_MEMBER(mcr68_state::archrivl_port_1_r)
{
- return (translate49[input_port_read(space->machine(), "49WAYY2") >> 4] << 12) |
- (translate49[input_port_read(space->machine(), "49WAYX2") >> 4] << 8) |
- (translate49[input_port_read(space->machine(), "49WAYY1") >> 4] << 4) |
- (translate49[input_port_read(space->machine(), "49WAYX1") >> 4] << 0);
+ return (translate49[input_port_read(machine(), "49WAYY2") >> 4] << 12) |
+ (translate49[input_port_read(machine(), "49WAYX2") >> 4] << 8) |
+ (translate49[input_port_read(machine(), "49WAYY1") >> 4] << 4) |
+ (translate49[input_port_read(machine(), "49WAYX1") >> 4] << 0);
}
-static WRITE16_HANDLER( archrivl_control_w )
+WRITE16_MEMBER(mcr68_state::archrivl_control_w)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
- COMBINE_DATA(&state->m_control_word);
- williams_cvsd_reset_w(space->machine(), ~state->m_control_word & 0x0400);
- williams_cvsd_data_w(space->machine(), state->m_control_word & 0x3ff);
+ COMBINE_DATA(&m_control_word);
+ williams_cvsd_reset_w(machine(), ~m_control_word & 0x0400);
+ williams_cvsd_data_w(machine(), m_control_word & 0x3ff);
}
@@ -222,60 +217,58 @@ static WRITE16_HANDLER( archrivl_control_w )
*
*************************************/
-static WRITE16_HANDLER( pigskin_protection_w )
+WRITE16_MEMBER(mcr68_state::pigskin_protection_w)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
/* ignore upper-byte only */
if (ACCESSING_BITS_0_7)
{
/* track the last 5 bytes */
- state->m_protection_data[0] = state->m_protection_data[1];
- state->m_protection_data[1] = state->m_protection_data[2];
- state->m_protection_data[2] = state->m_protection_data[3];
- state->m_protection_data[3] = state->m_protection_data[4];
- state->m_protection_data[4] = data & 0xff;
+ m_protection_data[0] = m_protection_data[1];
+ m_protection_data[1] = m_protection_data[2];
+ m_protection_data[2] = m_protection_data[3];
+ m_protection_data[3] = m_protection_data[4];
+ m_protection_data[4] = data & 0xff;
- logerror("%06X:protection_w=%02X\n", cpu_get_previouspc(&space->device()), data & 0xff);
+ logerror("%06X:protection_w=%02X\n", cpu_get_previouspc(&space.device()), data & 0xff);
}
}
-static READ16_HANDLER( pigskin_protection_r )
+READ16_MEMBER(mcr68_state::pigskin_protection_r)
{
- mcr68_state *state = space->machine().driver_data<mcr68_state>();
/* based on the last 5 bytes return a value */
- if (state->m_protection_data[4] == 0xe3 && state->m_protection_data[3] == 0x94)
+ if (m_protection_data[4] == 0xe3 && m_protection_data[3] == 0x94)
return 0x00; /* must be <= 1 */
- if (state->m_protection_data[4] == 0xc7 && state->m_protection_data[3] == 0x7b && state->m_protection_data[2] == 0x36)
+ if (m_protection_data[4] == 0xc7 && m_protection_data[3] == 0x7b && m_protection_data[2] == 0x36)
return 0x00; /* must be <= 1 */
- if (state->m_protection_data[4] == 0xc7 && state->m_protection_data[3] == 0x7b)
+ if (m_protection_data[4] == 0xc7 && m_protection_data[3] == 0x7b)
return 0x07; /* must be > 5 */
- if (state->m_protection_data[4] == 0xc7 && state->m_protection_data[3] == 0x1f && state->m_protection_data[2] == 0x03 &&
- state->m_protection_data[1] == 0x25 && state->m_protection_data[0] == 0x36)
+ if (m_protection_data[4] == 0xc7 && m_protection_data[3] == 0x1f && m_protection_data[2] == 0x03 &&
+ m_protection_data[1] == 0x25 && m_protection_data[0] == 0x36)
return 0x00; /* must be < 3 */
logerror("Protection read after unrecognized sequence: %02X %02X %02X %02X %02X\n",
- state->m_protection_data[0], state->m_protection_data[1], state->m_protection_data[2], state->m_protection_data[3], state->m_protection_data[4]);
+ m_protection_data[0], m_protection_data[1], m_protection_data[2], m_protection_data[3], m_protection_data[4]);
return 0x00;
}
-static READ16_HANDLER( pigskin_port_1_r )
+READ16_MEMBER(mcr68_state::pigskin_port_1_r)
{
/* see archrivl_port_1_r for 49-way joystick description */
- return input_port_read(space->machine(), "IN1") |
- (translate49[input_port_read(space->machine(), "49WAYX1") >> 4] << 12) |
- (translate49[input_port_read(space->machine(), "49WAYY1") >> 4] << 8);
+ return input_port_read(machine(), "IN1") |
+ (translate49[input_port_read(machine(), "49WAYX1") >> 4] << 12) |
+ (translate49[input_port_read(machine(), "49WAYY1") >> 4] << 8);
}
-static READ16_HANDLER( pigskin_port_2_r )
+READ16_MEMBER(mcr68_state::pigskin_port_2_r)
{
/* see archrivl_port_1_r for 49-way joystick description */
- return input_port_read(space->machine(), "DSW") |
- (translate49[input_port_read(space->machine(), "49WAYX2") >> 4] << 12) |
- (translate49[input_port_read(space->machine(), "49WAYY2") >> 4] << 8);
+ return input_port_read(machine(), "DSW") |
+ (translate49[input_port_read(machine(), "49WAYX2") >> 4] << 12) |
+ (translate49[input_port_read(machine(), "49WAYY2") >> 4] << 8);
}
@@ -286,11 +279,11 @@ static READ16_HANDLER( pigskin_port_2_r )
*
*************************************/
-static READ16_HANDLER( trisport_port_1_r )
+READ16_MEMBER(mcr68_state::trisport_port_1_r)
{
- int xaxis = (INT8)input_port_read(space->machine(), "AN1");
- int yaxis = (INT8)input_port_read(space->machine(), "AN2");
- int result = input_port_read(space->machine(), "IN1");
+ int xaxis = (INT8)input_port_read(machine(), "AN1");
+ int yaxis = (INT8)input_port_read(machine(), "AN2");
+ int result = input_port_read(machine(), "IN1");
result |= (xaxis & 0x3c) << 6;
result |= (yaxis & 0x3c) << 10;
@@ -335,7 +328,7 @@ static ADDRESS_MAP_START( zwackery_map, AS_PROGRAM, 16, mcr68_state )
AM_RANGE(0x000000, 0x037fff) AM_ROM
AM_RANGE(0x080000, 0x080fff) AM_RAM
AM_RANGE(0x084000, 0x084fff) AM_RAM
- AM_RANGE(0x100000, 0x10000f) AM_READWRITE_LEGACY(zwackery_6840_r, mcr68_6840_upper_w)
+ AM_RANGE(0x100000, 0x10000f) AM_READ(zwackery_6840_r) AM_WRITE_LEGACY(mcr68_6840_upper_w)
AM_RANGE(0x104000, 0x104007) AM_DEVREADWRITE8("pia0", pia6821_device, read, write, 0xff00)
AM_RANGE(0x108000, 0x108007) AM_DEVREADWRITE8("pia1", pia6821_device, read, write, 0x00ff)
AM_RANGE(0x10c000, 0x10c007) AM_DEVREADWRITE8("pia2", pia6821_device, read, write, 0x00ff)
@@ -356,16 +349,16 @@ static ADDRESS_MAP_START( pigskin_map, AS_PROGRAM, 16, mcr68_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x080000, 0x08ffff) AM_READ_LEGACY(pigskin_port_1_r)
- AM_RANGE(0x0a0000, 0x0affff) AM_READ_LEGACY(pigskin_port_2_r)
+ AM_RANGE(0x080000, 0x08ffff) AM_READ(pigskin_port_1_r)
+ AM_RANGE(0x0a0000, 0x0affff) AM_READ(pigskin_port_2_r)
AM_RANGE(0x0c0000, 0x0c007f) AM_WRITE_LEGACY(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0e0000, 0x0effff) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE_LEGACY(mcr68_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0x120000, 0x120001) AM_READWRITE_LEGACY(pigskin_protection_r, pigskin_protection_w)
+ AM_RANGE(0x120000, 0x120001) AM_READWRITE(pigskin_protection_r, pigskin_protection_w)
AM_RANGE(0x140000, 0x143fff) AM_RAM
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x180000, 0x18000f) AM_READWRITE_LEGACY(mcr68_6840_upper_r, mcr68_6840_upper_w)
- AM_RANGE(0x1a0000, 0x1affff) AM_WRITE_LEGACY(archrivl_control_w)
+ AM_RANGE(0x1a0000, 0x1affff) AM_WRITE(archrivl_control_w)
AM_RANGE(0x1e0000, 0x1effff) AM_READ_PORT("IN0")
ADDRESS_MAP_END
@@ -381,14 +374,14 @@ static ADDRESS_MAP_START( trisport_map, AS_PROGRAM, 16, mcr68_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x080000, 0x08ffff) AM_READ_LEGACY(trisport_port_1_r)
+ AM_RANGE(0x080000, 0x08ffff) AM_READ(trisport_port_1_r)
AM_RANGE(0x0a0000, 0x0affff) AM_READ_PORT("DSW")
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x120000, 0x12007f) AM_WRITE_LEGACY(mcr68_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x160000, 0x160fff) AM_RAM_WRITE_LEGACY(mcr68_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x180000, 0x18000f) AM_READWRITE_LEGACY(mcr68_6840_upper_r, mcr68_6840_upper_w)
- AM_RANGE(0x1a0000, 0x1affff) AM_WRITE_LEGACY(archrivl_control_w)
+ AM_RANGE(0x1a0000, 0x1affff) AM_WRITE(archrivl_control_w)
AM_RANGE(0x1c0000, 0x1cffff) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x1e0000, 0x1effff) AM_READ_PORT("IN0")
ADDRESS_MAP_END
@@ -1573,7 +1566,7 @@ static DRIVER_INIT( xenophob )
state->m_timing_factor = attotime::from_hz(machine.device("maincpu")->unscaled_clock() / 10) * (256 + 16);
/* install control port handler */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0c0000, 0x0cffff, FUNC(xenophobe_control_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::xenophobe_control_w),state));
}
@@ -1586,9 +1579,9 @@ static DRIVER_INIT( spyhunt2 )
state->m_timing_factor = attotime::from_hz(machine.device("maincpu")->unscaled_clock() / 10) * (256 + 16);
/* analog port handling is a bit tricky */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0c0000, 0x0cffff, FUNC(spyhunt2_control_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0d0000, 0x0dffff, FUNC(spyhunt2_port_0_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0e0000, 0x0effff, FUNC(spyhunt2_port_1_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::spyhunt2_control_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0d0000, 0x0dffff, read16_delegate(FUNC(mcr68_state::spyhunt2_port_0_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::spyhunt2_port_1_r),state));
}
@@ -1603,7 +1596,7 @@ static DRIVER_INIT( blasted )
state->m_timing_factor = attotime::from_hz(machine.device("maincpu")->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0c0000, 0x0cffff, FUNC(blasted_control_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::blasted_control_w),state));
/* 6840 is mapped to the lower 8 bits */
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x0a0000, 0x0a000f, FUNC(mcr68_6840_lower_r), FUNC(mcr68_6840_lower_w));
@@ -1618,7 +1611,7 @@ static DRIVER_INIT( intlaser )
state->m_timing_factor = attotime::from_hz(machine.device("maincpu")->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0c0000, 0x0cffff, FUNC(blasted_control_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::blasted_control_w),state));
}
@@ -1633,10 +1626,10 @@ static DRIVER_INIT( archrivl )
state->m_timing_factor = attotime::from_hz(machine.device("maincpu")->unscaled_clock() / 10) * (256 + 16);
/* handle control writes */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x0c0000, 0x0cffff, FUNC(archrivl_control_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0c0000, 0x0cffff, write16_delegate(FUNC(mcr68_state::archrivl_control_w),state));
/* 49-way joystick handling is a bit tricky */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0e0000, 0x0effff, FUNC(archrivl_port_1_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0e0000, 0x0effff, read16_delegate(FUNC(mcr68_state::archrivl_port_1_r),state));
/* 6840 is mapped to the lower 8 bits */
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x0a0000, 0x0a000f, FUNC(mcr68_6840_lower_r), FUNC(mcr68_6840_lower_w));
diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c
index f6b93b707f0..863a1489d1b 100644
--- a/src/mame/drivers/meadows.c
+++ b/src/mame/drivers/meadows.c
@@ -135,23 +135,23 @@
*
*************************************/
-static READ8_HANDLER( hsync_chain_r )
+READ8_MEMBER(meadows_state::hsync_chain_r)
{
- UINT8 val = space->machine().primary_screen->hpos();
+ UINT8 val = machine().primary_screen->hpos();
return BITSWAP8(val,0,1,2,3,4,5,6,7);
}
-static READ8_HANDLER( vsync_chain_hi_r )
+READ8_MEMBER(meadows_state::vsync_chain_hi_r)
{
- UINT8 val = space->machine().primary_screen->vpos();
+ UINT8 val = machine().primary_screen->vpos();
return ((val >> 1) & 0x08) | ((val >> 3) & 0x04) | ((val >> 5) & 0x02) | (val >> 7);
}
-static READ8_HANDLER( vsync_chain_lo_r )
+READ8_MEMBER(meadows_state::vsync_chain_lo_r)
{
- UINT8 val = space->machine().primary_screen->vpos();
+ UINT8 val = machine().primary_screen->vpos();
return val & 0x0f;
}
@@ -163,16 +163,15 @@ static READ8_HANDLER( vsync_chain_lo_r )
*
*************************************/
-static WRITE8_HANDLER( meadows_audio_w )
+WRITE8_MEMBER(meadows_state::meadows_audio_w)
{
- meadows_state *state = space->machine().driver_data<meadows_state>();
switch (offset)
{
case 0:
- if (state->m_0c00 == data)
+ if (m_0c00 == data)
break;
logerror("meadows_audio_w %d $%02x\n", offset, data);
- state->m_0c00 = data;
+ m_0c00 = data;
break;
case 1:
@@ -241,37 +240,36 @@ static INTERRUPT_GEN( minferno_interrupt )
*
*************************************/
-static WRITE8_HANDLER( audio_hardware_w )
+WRITE8_MEMBER(meadows_state::audio_hardware_w)
{
- meadows_state *state = space->machine().driver_data<meadows_state>();
switch (offset & 3)
{
case 0: /* DAC */
- meadows_sh_dac_w(space->machine(), data ^ 0xff);
+ meadows_sh_dac_w(machine(), data ^ 0xff);
break;
case 1: /* counter clk 5 MHz / 256 */
- if (data == state->m_0c01)
+ if (data == m_0c01)
break;
logerror("audio_w ctr1 preset $%x amp %d\n", data & 15, data >> 4);
- state->m_0c01 = data;
- meadows_sh_update(space->machine());
+ m_0c01 = data;
+ meadows_sh_update(machine());
break;
case 2: /* counter clk 5 MHz / 32 (/ 2 or / 4) */
- if (data == state->m_0c02)
+ if (data == m_0c02)
break;
logerror("audio_w ctr2 preset $%02x\n", data);
- state->m_0c02 = data;
- meadows_sh_update(space->machine());
+ m_0c02 = data;
+ meadows_sh_update(machine());
break;
case 3: /* audio enable */
- if (data == state->m_0c03)
+ if (data == m_0c03)
break;
logerror("audio_w enable ctr2/2:%d ctr2:%d dac:%d ctr1:%d\n", data&1, (data>>1)&1, (data>>2)&1, (data>>3)&1);
- state->m_0c03 = data;
- meadows_sh_update(space->machine());
+ m_0c03 = data;
+ meadows_sh_update(machine());
break;
}
}
@@ -284,15 +282,14 @@ static WRITE8_HANDLER( audio_hardware_w )
*
*************************************/
-static READ8_HANDLER( audio_hardware_r )
+READ8_MEMBER(meadows_state::audio_hardware_r)
{
- meadows_state *state = space->machine().driver_data<meadows_state>();
int data = 0;
switch (offset)
{
case 0:
- data = state->m_0c00;
+ data = m_0c00;
break;
case 1: break;
@@ -343,9 +340,9 @@ static ADDRESS_MAP_START( meadows_main_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("INPUTS")
AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("STICK")
- AM_RANGE(0x0c02, 0x0c02) AM_READ_LEGACY(hsync_chain_r)
+ AM_RANGE(0x0c02, 0x0c02) AM_READ(hsync_chain_r)
AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("DSW")
- AM_RANGE(0x0c00, 0x0c03) AM_WRITE_LEGACY(meadows_audio_w)
+ AM_RANGE(0x0c00, 0x0c03) AM_WRITE(meadows_audio_w)
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE_LEGACY(meadows_spriteram_w) AM_BASE(m_spriteram)
AM_RANGE(0x0e00, 0x0eff) AM_RAM
AM_RANGE(0x1000, 0x1bff) AM_ROM
@@ -356,9 +353,9 @@ static ADDRESS_MAP_START( bowl3d_main_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
AM_RANGE(0x0c00, 0x0c00) AM_READ_PORT("INPUTS1")
AM_RANGE(0x0c01, 0x0c01) AM_READ_PORT("INPUTS2")
- AM_RANGE(0x0c02, 0x0c02) AM_READ_LEGACY(hsync_chain_r)
+ AM_RANGE(0x0c02, 0x0c02) AM_READ(hsync_chain_r)
AM_RANGE(0x0c03, 0x0c03) AM_READ_PORT("DSW")
- AM_RANGE(0x0c00, 0x0c03) AM_WRITE_LEGACY(meadows_audio_w)
+ AM_RANGE(0x0c00, 0x0c03) AM_WRITE(meadows_audio_w)
AM_RANGE(0x0d00, 0x0d0f) AM_WRITE_LEGACY(meadows_spriteram_w) AM_BASE(m_spriteram)
AM_RANGE(0x0e00, 0x0eff) AM_RAM
AM_RANGE(0x1000, 0x1bff) AM_ROM
@@ -372,9 +369,9 @@ static ADDRESS_MAP_START( minferno_main_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x1f01, 0x1f01) AM_READ_PORT("JOY2")
AM_RANGE(0x1f02, 0x1f02) AM_READ_PORT("BUTTONS")
AM_RANGE(0x1f03, 0x1f03) AM_READ_PORT("DSW1")
- AM_RANGE(0x1f00, 0x1f03) AM_WRITE_LEGACY(meadows_audio_w)
- AM_RANGE(0x1f04, 0x1f04) AM_READ_LEGACY(vsync_chain_hi_r)
- AM_RANGE(0x1f05, 0x1f05) AM_READ_LEGACY(vsync_chain_lo_r)
+ AM_RANGE(0x1f00, 0x1f03) AM_WRITE(meadows_audio_w)
+ AM_RANGE(0x1f04, 0x1f04) AM_READ(vsync_chain_hi_r)
+ AM_RANGE(0x1f05, 0x1f05) AM_READ(vsync_chain_lo_r)
ADDRESS_MAP_END
@@ -392,7 +389,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, meadows_state )
AM_RANGE(0x0000, 0x0bff) AM_ROM
- AM_RANGE(0x0c00, 0x0c03) AM_READWRITE_LEGACY(audio_hardware_r, audio_hardware_w)
+ AM_RANGE(0x0c00, 0x0c03) AM_READWRITE(audio_hardware_r, audio_hardware_w)
AM_RANGE(0x0e00, 0x0eff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index d521af401e4..322ff4ebfb1 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -217,9 +217,8 @@ static TIMER_DEVICE_CALLBACK( megasys1B_scanline )
in that order. */
-static READ16_HANDLER( ip_select_r )
+READ16_MEMBER(megasys1_state::ip_select_r)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
int i;
// Coins P1 P2 DSW1 DSW2
@@ -232,26 +231,25 @@ static READ16_HANDLER( ip_select_r )
/* f(x) = ((x*x)>>4)&0xFF ; f(f($D)) == 6 */
- if ((state->m_ip_select & 0xF0) == 0xF0) return 0x000D;
+ if ((m_ip_select & 0xF0) == 0xF0) return 0x000D;
- for (i = 0; i < 5; i++) if (state->m_ip_select == state->m_ip_select_values[i]) break;
+ for (i = 0; i < 5; i++) if (m_ip_select == m_ip_select_values[i]) break;
switch (i)
{
- case 0 : return input_port_read(space->machine(), "SYSTEM");
- case 1 : return input_port_read(space->machine(), "P1");
- case 2 : return input_port_read(space->machine(), "P2");
- case 3 : return input_port_read(space->machine(), "DSW1");
- case 4 : return input_port_read(space->machine(), "DSW2");
+ case 0 : return input_port_read(machine(), "SYSTEM");
+ case 1 : return input_port_read(machine(), "P1");
+ case 2 : return input_port_read(machine(), "P2");
+ case 3 : return input_port_read(machine(), "DSW1");
+ case 4 : return input_port_read(machine(), "DSW2");
default : return 0x0006;
}
}
-static WRITE16_HANDLER( ip_select_w )
+WRITE16_MEMBER(megasys1_state::ip_select_w)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
- COMBINE_DATA(&state->m_ip_select);
- cputag_set_input_line(space->machine(), "maincpu", 2, HOLD_LINE);
+ COMBINE_DATA(&m_ip_select);
+ cputag_set_input_line(machine(), "maincpu", 2, HOLD_LINE);
}
@@ -266,7 +264,7 @@ static ADDRESS_MAP_START( megasys1B_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x058000, 0x05bfff) AM_RAM_WRITE_LEGACY(megasys1_scrollram_2_w) AM_BASE(m_scrollram[2])
AM_RANGE(0x060000, 0x07ffff) AM_RAM AM_BASE(m_ram)
AM_RANGE(0x080000, 0x0bffff) AM_ROM
- AM_RANGE(0x0e0000, 0x0e0001) AM_READWRITE_LEGACY(ip_select_r,ip_select_w)
+ AM_RANGE(0x0e0000, 0x0e0001) AM_READWRITE(ip_select_r,ip_select_w)
ADDRESS_MAP_END
@@ -287,7 +285,7 @@ static ADDRESS_MAP_START( megasys1C_map, AS_PROGRAM, 16, megasys1_state )
AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE_LEGACY(megasys1_scrollram_1_w) AM_BASE(m_scrollram[1])
AM_RANGE(0x0f0000, 0x0f3fff) AM_RAM_WRITE_LEGACY(megasys1_scrollram_2_w) AM_BASE(m_scrollram[2])
AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x0d8000, 0x0d8001) AM_READWRITE_LEGACY(ip_select_r,ip_select_w)
+ AM_RANGE(0x0d8000, 0x0d8001) AM_READWRITE(ip_select_r,ip_select_w)
AM_RANGE(0x1c0000, 0x1cffff) AM_MIRROR(0x30000) AM_RAM AM_BASE(m_ram) //0x1f****, Cybattler reads attract mode inputs at 0x1d****
ADDRESS_MAP_END
@@ -1364,37 +1362,35 @@ INPUT_PORTS_END
/* Read the input ports, through a protection device */
-static READ16_HANDLER( protection_peekaboo_r )
+READ16_MEMBER(megasys1_state::protection_peekaboo_r)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
- switch (state->m_protection_val)
+ switch (m_protection_val)
{
case 0x02: return 0x03;
- case 0x51: return input_port_read(space->machine(), "P1");
- case 0x52: return input_port_read(space->machine(), "P2");
- default: return state->m_protection_val;
+ case 0x51: return input_port_read(machine(), "P1");
+ case 0x52: return input_port_read(machine(), "P2");
+ default: return m_protection_val;
}
}
-static WRITE16_HANDLER( protection_peekaboo_w )
+WRITE16_MEMBER(megasys1_state::protection_peekaboo_w)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
- COMBINE_DATA(&state->m_protection_val);
+ COMBINE_DATA(&m_protection_val);
- if ((state->m_protection_val & 0x90) == 0x90)
+ if ((m_protection_val & 0x90) == 0x90)
{
- UINT8 *RAM = space->machine().region("oki1")->base();
- int new_bank = (state->m_protection_val & 0x7) % 7;
+ UINT8 *RAM = machine().region("oki1")->base();
+ int new_bank = (m_protection_val & 0x7) % 7;
- if (state->m_bank != new_bank)
+ if (m_bank != new_bank)
{
memcpy(&RAM[0x20000],&RAM[0x40000 + 0x20000*new_bank],0x20000);
- state->m_bank = new_bank;
+ m_bank = new_bank;
}
}
- cputag_set_input_line(space->machine(), "maincpu", 4, HOLD_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, HOLD_LINE);
}
/*************************************
@@ -3669,10 +3665,10 @@ static void stdragona_gfx_unmangle(running_machine &machine, const char *region)
#define MCU_HS_LOG 0
#define MCU_HS_SEQ(_1_,_2_,_3_,_4_) \
- (state->m_mcu_hs_ram[0/2] == _1_ && \
- state->m_mcu_hs_ram[2/2] == _2_ && \
- state->m_mcu_hs_ram[4/2] == _3_ && \
- state->m_mcu_hs_ram[6/2] == _4_)
+ (m_mcu_hs_ram[0/2] == _1_ && \
+ m_mcu_hs_ram[2/2] == _2_ && \
+ m_mcu_hs_ram[4/2] == _3_ && \
+ m_mcu_hs_ram[6/2] == _4_)
static DRIVER_INIT( 64street )
{
@@ -3688,14 +3684,13 @@ static DRIVER_INIT( 64street )
state->m_ip_select_values[4] = 0x56;
}
-static READ16_HANDLER( megasys1A_mcu_hs_r )
+READ16_MEMBER(megasys1_state::megasys1A_mcu_hs_r)
{
- UINT16 *ROM = (UINT16 *) space->machine().region("maincpu")->base();
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
+ UINT16 *ROM = (UINT16 *) machine().region("maincpu")->base();
- if(state->m_mcu_hs && ((state->m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
+ if(m_mcu_hs && ((m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
{
- if(MCU_HS_LOG && !space->debugger_access())
+ if(MCU_HS_LOG && !space.debugger_access())
printf("MCU HS R (%04x) <- [%02x]\n",mem_mask,offset*2);
return 0x889e;
@@ -3704,9 +3699,8 @@ static READ16_HANDLER( megasys1A_mcu_hs_r )
return ROM[offset];
}
-static WRITE16_HANDLER( megasys1A_mcu_hs_w )
+WRITE16_MEMBER(megasys1_state::megasys1A_mcu_hs_w)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
// following is hachoo, other games differs slightly
// R 0x5f0, if bit 0 == 0 then skips hs seq (debug?)
@@ -3718,23 +3712,23 @@ static WRITE16_HANDLER( megasys1A_mcu_hs_w )
// R 0x5f0, if bit 1 == 0 then goes further (debug again?)
// R 0x3ffc0, compares with seed 0x889e
- COMBINE_DATA(&state->m_mcu_hs_ram[offset]);
+ COMBINE_DATA(&m_mcu_hs_ram[offset]);
if(MCU_HS_SEQ(0x00ff,0x0055,0x00aa,0x0000) && offset == 0x8/2)
- state->m_mcu_hs = 1;
+ m_mcu_hs = 1;
else
- state->m_mcu_hs = 0;
+ m_mcu_hs = 0;
- if(MCU_HS_LOG && !space->debugger_access())
+ if(MCU_HS_LOG && !space.debugger_access())
printf("MCU HS W %04x (%04x) -> [%02x]\n",data,mem_mask,offset*2);
}
static DRIVER_INIT( astyanax )
{
astyanax_rom_decode(machine, "maincpu");
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x00000, 0x3ffff, FUNC(megasys1A_mcu_hs_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x20000, 0x20009, FUNC(megasys1A_mcu_hs_w));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x20000, 0x20009, write16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_w),state));
}
static DRIVER_INIT( avspirit )
@@ -3793,7 +3787,7 @@ static DRIVER_INIT( edf )
state->m_ip_select_values[4] = 0x24;
}
-static READ16_HANDLER( edfbl_input_r )
+READ16_MEMBER(megasys1_state::edfbl_input_r)
{
const char *const in_names[] = { "SYSTEM", "P1", "P2", "DSW1", "DSW2" };
UINT16 res;
@@ -3806,7 +3800,7 @@ static READ16_HANDLER( edfbl_input_r )
case 0x04/2:
case 0x06/2:
case 0x08/2:
- case 0x0a/2: res = input_port_read(space->machine(), in_names[offset-1]); break;
+ case 0x0a/2: res = input_port_read(machine(), in_names[offset-1]); break;
}
return res;
@@ -3815,8 +3809,8 @@ static READ16_HANDLER( edfbl_input_r )
static DRIVER_INIT( edfbl )
{
//device_t *oki1 = machine.device("oki1");
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xe0000, 0xe000f, FUNC(edfbl_input_r));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xe0000, 0xe000f, read16_delegate(FUNC(megasys1_state::edfbl_input_r),state));
//machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(*oki1, 0xe000e, 0xe000f, FUNC(soundlatch_w));
}
@@ -3830,14 +3824,13 @@ static DRIVER_INIT( hayaosi1 )
state->m_ip_select_values[4] = 0x55;
}
-static READ16_HANDLER( iganinju_mcu_hs_r )
+READ16_MEMBER(megasys1_state::iganinju_mcu_hs_r)
{
- UINT16 *ROM = (UINT16 *) space->machine().region("maincpu")->base();
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
+ UINT16 *ROM = (UINT16 *) machine().region("maincpu")->base();
- if(state->m_mcu_hs && ((state->m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
+ if(m_mcu_hs && ((m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
{
- if(MCU_HS_LOG && !space->debugger_access())
+ if(MCU_HS_LOG && !space.debugger_access())
printf("MCU HS R (%04x) <- [%02x]\n",mem_mask,offset*2);
return 0x835d;
@@ -3846,9 +3839,8 @@ static READ16_HANDLER( iganinju_mcu_hs_r )
return ROM[offset];
}
-static WRITE16_HANDLER( iganinju_mcu_hs_w )
+WRITE16_MEMBER(megasys1_state::iganinju_mcu_hs_w)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
// [0/2]: 0x0000
// [2/2]: 0x0055
@@ -3857,14 +3849,14 @@ static WRITE16_HANDLER( iganinju_mcu_hs_w )
// [8/2]: 0x0bc0
// expects 0x835d to be read at 0x2f000, does hs sequence until that happens
- COMBINE_DATA(&state->m_mcu_hs_ram[offset]);
+ COMBINE_DATA(&m_mcu_hs_ram[offset]);
if(MCU_HS_SEQ(0x0000,0x0055,0x00aa,0x00ff) && offset == 0x8/2)
- state->m_mcu_hs = 1;
+ m_mcu_hs = 1;
else
- state->m_mcu_hs = 0;
+ m_mcu_hs = 0;
- if(MCU_HS_LOG && !space->debugger_access())
+ if(MCU_HS_LOG && !space.debugger_access())
printf("MCU HS W %04x (%04x) -> [%02x]\n",data,mem_mask,offset*2);
}
@@ -3875,9 +3867,9 @@ static DRIVER_INIT( iganinju )
phantasm_rom_decode(machine, "maincpu");
//RAM = (UINT16 *) machine.region("maincpu")->base();
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x00000, 0x3ffff, FUNC(iganinju_mcu_hs_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x2f000, 0x2f009, FUNC(iganinju_mcu_hs_w));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x2f000, 0x2f009, write16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_w),state));
//RAM[0x00006e/2] = 0x0420; // the only game that does
// not like lev 3 interrupts
@@ -3900,9 +3892,9 @@ static DRIVER_INIT( jitsupro )
jitsupro_gfx_unmangle(machine, "gfx1"); // Gfx
jitsupro_gfx_unmangle(machine, "gfx4");
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x00000, 0x3ffff, FUNC(megasys1A_mcu_hs_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x20000, 0x20009, FUNC(megasys1A_mcu_hs_w));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::megasys1A_mcu_hs_r),state));
+ 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));
@@ -3911,7 +3903,8 @@ static DRIVER_INIT( jitsupro )
static DRIVER_INIT( peekaboo )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x100000, 0x100001, FUNC(protection_peekaboo_r), FUNC(protection_peekaboo_w));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x100000, 0x100001, read16_delegate(FUNC(megasys1_state::protection_peekaboo_r),state), write16_delegate(FUNC(megasys1_state::protection_peekaboo_w),state));
}
static DRIVER_INIT( phantasm )
@@ -3932,43 +3925,40 @@ static DRIVER_INIT( rodlandj )
astyanax_rom_decode(machine, "maincpu");
}
-static READ16_HANDLER( soldamj_spriteram16_r )
+READ16_MEMBER(megasys1_state::soldamj_spriteram16_r)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
}
-static WRITE16_HANDLER( soldamj_spriteram16_w )
+WRITE16_MEMBER(megasys1_state::soldamj_spriteram16_w)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
- if (offset < 0x800/2) COMBINE_DATA(&state->m_spriteram[offset]);
+ if (offset < 0x800/2) COMBINE_DATA(&m_spriteram[offset]);
}
static DRIVER_INIT( soldamj )
{
astyanax_rom_decode(machine, "maincpu");
-
+ megasys1_state *state = machine.driver_data<megasys1_state>();
/* Sprite RAM is mirrored */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x8c000, 0x8cfff, FUNC(soldamj_spriteram16_r), FUNC(soldamj_spriteram16_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),state), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),state));
}
static DRIVER_INIT( soldam )
{
phantasm_rom_decode(machine, "maincpu");
-
+ megasys1_state *state = machine.driver_data<megasys1_state>();
/* Sprite RAM is mirrored */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x8c000, 0x8cfff, FUNC(soldamj_spriteram16_r), FUNC(soldamj_spriteram16_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x8c000, 0x8cfff, read16_delegate(FUNC(megasys1_state::soldamj_spriteram16_r),state), write16_delegate(FUNC(megasys1_state::soldamj_spriteram16_w),state));
}
-static READ16_HANDLER( stdragon_mcu_hs_r )
+READ16_MEMBER(megasys1_state::stdragon_mcu_hs_r)
{
- UINT16 *ROM = (UINT16 *) space->machine().region("maincpu")->base();
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
+ UINT16 *ROM = (UINT16 *) machine().region("maincpu")->base();
- if(state->m_mcu_hs && ((state->m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
+ if(m_mcu_hs && ((m_mcu_hs_ram[8/2] << 6) & 0x3ffc0) == ((offset*2) & 0x3ffc0))
{
- if(MCU_HS_LOG && !space->debugger_access())
+ if(MCU_HS_LOG && !space.debugger_access())
printf("MCU HS R (%04x) <- [%02x]\n",mem_mask,offset*2);
return 0x835d;
@@ -3977,18 +3967,17 @@ static READ16_HANDLER( stdragon_mcu_hs_r )
return ROM[offset];
}
-static WRITE16_HANDLER( stdragon_mcu_hs_w )
+WRITE16_MEMBER(megasys1_state::stdragon_mcu_hs_w)
{
- megasys1_state *state = space->machine().driver_data<megasys1_state>();
- COMBINE_DATA(&state->m_mcu_hs_ram[offset]);
+ COMBINE_DATA(&m_mcu_hs_ram[offset]);
if(MCU_HS_SEQ(0x0000,0x0055,0x00aa,0x00ff) && offset == 0x8/2)
- state->m_mcu_hs = 1;
+ m_mcu_hs = 1;
else
- state->m_mcu_hs = 0;
+ m_mcu_hs = 0;
- if(MCU_HS_LOG && !space->debugger_access())
+ if(MCU_HS_LOG && !space.debugger_access())
printf("MCU HS W %04x (%04x) -> [%02x]\n",data,mem_mask,offset*2);
}
@@ -3996,9 +3985,9 @@ static WRITE16_HANDLER( stdragon_mcu_hs_w )
static DRIVER_INIT( stdragon )
{
phantasm_rom_decode(machine, "maincpu");
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x00000, 0x3ffff, FUNC(stdragon_mcu_hs_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x23ff0, 0x23ff9, FUNC(stdragon_mcu_hs_w));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),state));
}
static DRIVER_INIT( stdragona )
@@ -4009,12 +3998,12 @@ static DRIVER_INIT( stdragona )
stdragona_gfx_unmangle(machine, "gfx1");
stdragona_gfx_unmangle(machine, "gfx4");
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x00000, 0x3ffff, FUNC(stdragon_mcu_hs_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x23ff0, 0x23ff9, FUNC(stdragon_mcu_hs_w));
+ megasys1_state *state = machine.driver_data<megasys1_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x23ff0, 0x23ff9, write16_delegate(FUNC(megasys1_state::stdragon_mcu_hs_w),state));
}
-static READ16_HANDLER( monkelf_input_r )
+READ16_MEMBER(megasys1_state::monkelf_input_r)
{
const char *const in_names[] = { "P1", "P2", "DSW1", "DSW2", "SYSTEM" };
UINT16 res;
@@ -4027,7 +4016,7 @@ static READ16_HANDLER( monkelf_input_r )
case 0x04/2:
case 0x06/2:
case 0x08/2:
- case 0x0a/2: res = input_port_read(space->machine(), in_names[offset-1]); break;
+ case 0x0a/2: res = input_port_read(machine(), in_names[offset-1]); break;
}
return res;
@@ -4039,7 +4028,7 @@ static DRIVER_INIT( monkelf )
UINT16 *ROM = (UINT16*)machine.region("maincpu")->base();
ROM[0x00744/2] = 0x4e71; // weird check, 0xe000e R is a port-based trap?
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xe0000, 0xe000f, FUNC(monkelf_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xe0000, 0xe000f, read16_delegate(FUNC(megasys1_state::monkelf_input_r),state));
state->m_ram += 0x10000/2;
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index d85adb2cfb2..e7c188d584f 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -56,38 +56,35 @@ static WRITE8_DEVICE_HANDLER( megazone_port_b_w )
}
}
-static WRITE8_HANDLER( megazone_i8039_irq_w )
+WRITE8_MEMBER(megazone_state::megazone_i8039_irq_w)
{
- megazone_state *state = space->machine().driver_data<megazone_state>();
- device_set_input_line(state->m_daccpu, 0, ASSERT_LINE);
+ device_set_input_line(m_daccpu, 0, ASSERT_LINE);
}
-static WRITE8_HANDLER( i8039_irqen_and_status_w )
+WRITE8_MEMBER(megazone_state::i8039_irqen_and_status_w)
{
- megazone_state *state = space->machine().driver_data<megazone_state>();
if ((data & 0x80) == 0)
- device_set_input_line(state->m_daccpu, 0, CLEAR_LINE);
- state->m_i8039_status = (data & 0x70) >> 4;
+ device_set_input_line(m_daccpu, 0, CLEAR_LINE);
+ m_i8039_status = (data & 0x70) >> 4;
}
-static WRITE8_HANDLER( megazone_coin_counter_w )
+WRITE8_MEMBER(megazone_state::megazone_coin_counter_w)
{
- coin_counter_w(space->machine(), 1 - offset, data); /* 1-offset, because coin counters are in reversed order */
+ coin_counter_w(machine(), 1 - offset, data); /* 1-offset, because coin counters are in reversed order */
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(megazone_state::irq_mask_w)
{
- megazone_state *state = space->machine().driver_data<megazone_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( megazone_map, AS_PROGRAM, 8, megazone_state )
- AM_RANGE(0x0000, 0x0001) AM_WRITE_LEGACY(megazone_coin_counter_w) /* coin counter 2, coin counter 1 */
+ AM_RANGE(0x0000, 0x0001) AM_WRITE(megazone_coin_counter_w) /* coin counter 2, coin counter 1 */
AM_RANGE(0x0005, 0x0005) AM_WRITE_LEGACY(megazone_flipscreen_w)
- AM_RANGE(0x0007, 0x0007) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x0007, 0x0007) AM_WRITE(irq_mask_w)
AM_RANGE(0x0800, 0x0800) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1000, 0x1000) AM_WRITEONLY AM_BASE(m_scrolly)
AM_RANGE(0x1800, 0x1800) AM_WRITEONLY AM_BASE(m_scrollx)
@@ -102,7 +99,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( megazone_sound_map, AS_PROGRAM, 8, megazone_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(megazone_i8039_irq_w) /* START line. Interrupts 8039 */
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(megazone_i8039_irq_w) /* START line. Interrupts 8039 */
AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(soundlatch_w) /* CODE line. Command Interrupts 8039 */
AM_RANGE(0x6000, 0x6000) AM_READ_PORT("IN0") /* IO Coin */
AM_RANGE(0x6001, 0x6001) AM_READ_PORT("IN1") /* P1 IO */
@@ -129,7 +126,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( megazone_i8039_io_map, AS_IO, 8, megazone_state )
AM_RANGE(0x00, 0xff) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE_LEGACY(i8039_irqen_and_status_w)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_and_status_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( megazone )
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index 018c504722d..dbcf2e4d5b7 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -122,26 +122,23 @@ Stephh's notes (based on the games Z80 code and some tests) :
/* Read/Write Handlers */
-static WRITE8_HANDLER( mermaid_ay8910_write_port_w )
+WRITE8_MEMBER(mermaid_state::mermaid_ay8910_write_port_w)
{
- mermaid_state *state = space->machine().driver_data<mermaid_state>();
- if (state->m_ay8910_enable[0]) ay8910_data_w(state->m_ay1, offset, data);
- if (state->m_ay8910_enable[1]) ay8910_data_w(state->m_ay2, offset, data);
+ if (m_ay8910_enable[0]) ay8910_data_w(m_ay1, offset, data);
+ if (m_ay8910_enable[1]) ay8910_data_w(m_ay2, offset, data);
}
-static WRITE8_HANDLER( mermaid_ay8910_control_port_w )
+WRITE8_MEMBER(mermaid_state::mermaid_ay8910_control_port_w)
{
- mermaid_state *state = space->machine().driver_data<mermaid_state>();
- if (state->m_ay8910_enable[0]) ay8910_address_w(state->m_ay1, offset, data);
- if (state->m_ay8910_enable[1]) ay8910_address_w(state->m_ay2, offset, data);
+ if (m_ay8910_enable[0]) ay8910_address_w(m_ay1, offset, data);
+ if (m_ay8910_enable[1]) ay8910_address_w(m_ay2, offset, data);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(mermaid_state::nmi_mask_w)
{
- mermaid_state *state = space->machine().driver_data<mermaid_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
/* Memory Map */
@@ -160,7 +157,7 @@ static ADDRESS_MAP_START( mermaid_map, AS_PROGRAM, 8, mermaid_state )
AM_RANGE(0xe002, 0xe004) AM_WRITENOP // ???
AM_RANGE(0xe005, 0xe005) AM_WRITE_LEGACY(mermaid_flip_screen_x_w)
AM_RANGE(0xe006, 0xe006) AM_WRITE_LEGACY(mermaid_flip_screen_y_w)
- AM_RANGE(0xe007, 0xe007) AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xe007, 0xe007) AM_WRITE(nmi_mask_w)
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("P1") AM_WRITENOP // ???
AM_RANGE(0xe801, 0xe801) AM_WRITENOP // ???
AM_RANGE(0xe802, 0xe802) AM_WRITENOP // ???
@@ -171,43 +168,40 @@ static ADDRESS_MAP_START( mermaid_map, AS_PROGRAM, 8, mermaid_state )
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("P2")
AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(mermaid_collision_r)
AM_RANGE(0xf802, 0xf802) AM_WRITENOP // ???
- AM_RANGE(0xf806, 0xf806) AM_WRITE_LEGACY(mermaid_ay8910_write_port_w)
- AM_RANGE(0xf807, 0xf807) AM_WRITE_LEGACY(mermaid_ay8910_control_port_w)
+ AM_RANGE(0xf806, 0xf806) AM_WRITE(mermaid_ay8910_write_port_w)
+ AM_RANGE(0xf807, 0xf807) AM_WRITE(mermaid_ay8910_control_port_w)
ADDRESS_MAP_END
-static WRITE8_HANDLER( rougien_sample_rom_lo_w )
+WRITE8_MEMBER(mermaid_state::rougien_sample_rom_lo_w)
{
- mermaid_state *state = space->machine().driver_data<mermaid_state>();
- state->m_adpcm_rom_sel = (data & 1) | (state->m_adpcm_rom_sel & 2);
+ m_adpcm_rom_sel = (data & 1) | (m_adpcm_rom_sel & 2);
}
-static WRITE8_HANDLER( rougien_sample_rom_hi_w )
+WRITE8_MEMBER(mermaid_state::rougien_sample_rom_hi_w)
{
- mermaid_state *state = space->machine().driver_data<mermaid_state>();
- state->m_adpcm_rom_sel = ((data & 1)<<1) | (state->m_adpcm_rom_sel & 1);
+ m_adpcm_rom_sel = ((data & 1)<<1) | (m_adpcm_rom_sel & 1);
}
-static WRITE8_HANDLER( rougien_sample_playback_w )
+WRITE8_MEMBER(mermaid_state::rougien_sample_playback_w)
{
- mermaid_state *state = space->machine().driver_data<mermaid_state>();
- if((state->m_adpcm_play_reg & 1) && ((data & 1) == 0))
+ if((m_adpcm_play_reg & 1) && ((data & 1) == 0))
{
- state->m_adpcm_pos = state->m_adpcm_rom_sel*0x1000;
- state->m_adpcm_end = state->m_adpcm_pos+0x1000;
- state->m_adpcm_idle = 0;
- msm5205_reset_w(space->machine().device("adpcm"), 0);
+ m_adpcm_pos = m_adpcm_rom_sel*0x1000;
+ m_adpcm_end = m_adpcm_pos+0x1000;
+ m_adpcm_idle = 0;
+ msm5205_reset_w(machine().device("adpcm"), 0);
}
- state->m_adpcm_play_reg = data & 1;
+ m_adpcm_play_reg = data & 1;
}
static ADDRESS_MAP_START( rougien_map, AS_PROGRAM, 8, mermaid_state )
- AM_RANGE(0xe002, 0xe002) AM_WRITE_LEGACY(rougien_sample_playback_w)
- AM_RANGE(0xe802, 0xe802) AM_WRITE_LEGACY(rougien_sample_rom_hi_w)
- AM_RANGE(0xe803, 0xe803) AM_WRITE_LEGACY(rougien_sample_rom_lo_w)
+ AM_RANGE(0xe002, 0xe002) AM_WRITE(rougien_sample_playback_w)
+ AM_RANGE(0xe802, 0xe802) AM_WRITE(rougien_sample_rom_hi_w)
+ AM_RANGE(0xe803, 0xe803) AM_WRITE(rougien_sample_rom_lo_w)
AM_IMPORT_FROM( mermaid_map )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c
index 3f852924302..3b42ad4efb1 100644
--- a/src/mame/drivers/metalmx.c
+++ b/src/mame/drivers/metalmx.c
@@ -307,35 +307,34 @@ static SCREEN_UPDATE_IND16( metalmx )
*
*************************************/
-static READ32_HANDLER( unk_r )
+READ32_MEMBER(metalmx_state::unk_r)
{
- return 0;//space->machine().rand();
+ return 0;//machine().rand();
}
-static READ32_HANDLER( watchdog_r )
+READ32_MEMBER(metalmx_state::watchdog_r)
{
return 0xffffffff;
}
-static WRITE32_HANDLER( shifter_w )
+WRITE32_MEMBER(metalmx_state::shifter_w)
{
}
-static WRITE32_HANDLER( motor_w )
+WRITE32_MEMBER(metalmx_state::motor_w)
{
}
-static WRITE32_HANDLER( reset_w )
+WRITE32_MEMBER(metalmx_state::reset_w)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
if (ACCESSING_BITS_16_31)
{
data >>= 16;
- device_set_input_line(state->m_dsp32c_1, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
- device_set_input_line(state->m_dsp32c_2, INPUT_LINE_RESET, data & 1 ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_dsp32c_1, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_dsp32c_2, INPUT_LINE_RESET, data & 1 ? CLEAR_LINE : ASSERT_LINE);
}
}
@@ -346,23 +345,23 @@ static WRITE32_HANDLER( reset_w )
*
*************************************/
-static READ32_HANDLER( sound_data_r )
+READ32_MEMBER(metalmx_state::sound_data_r)
{
UINT32 result = 0;
if (ACCESSING_BITS_0_15)
- result |= cage_control_r(space->machine());
+ result |= cage_control_r(machine());
if (ACCESSING_BITS_16_31)
- result |= cage_main_r(space) << 16;
+ result |= cage_main_r(&space) << 16;
return result;
}
-static WRITE32_HANDLER( sound_data_w )
+WRITE32_MEMBER(metalmx_state::sound_data_w)
{
if (ACCESSING_BITS_0_15)
- cage_control_w(space->machine(), data);
+ cage_control_w(machine(), data);
if (ACCESSING_BITS_16_31)
- cage_main_w(space, data >> 16);
+ cage_main_w(&space, data >> 16);
}
static void cage_irq_callback(running_machine &machine, int reason)
@@ -376,9 +375,8 @@ static void cage_irq_callback(running_machine &machine, int reason)
*
*************************************/
-static WRITE32_HANDLER( dsp32c_1_w )
+WRITE32_MEMBER(metalmx_state::dsp32c_1_w)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
offset <<= 1;
@@ -387,12 +385,11 @@ static WRITE32_HANDLER( dsp32c_1_w )
else if (ACCESSING_BITS_16_31)
data >>= 16;
- state->m_dsp32c_1->pio_w(offset, data);
+ m_dsp32c_1->pio_w(offset, data);
}
-static READ32_HANDLER( dsp32c_1_r )
+READ32_MEMBER(metalmx_state::dsp32c_1_r)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
UINT32 data;
offset <<= 1;
@@ -400,7 +397,7 @@ static READ32_HANDLER( dsp32c_1_r )
if (ACCESSING_BITS_0_15)
offset += 1;
- data = state->m_dsp32c_1->pio_r(offset);
+ data = m_dsp32c_1->pio_r(offset);
if (ACCESSING_BITS_16_31)
data <<= 16;
@@ -408,9 +405,8 @@ static READ32_HANDLER( dsp32c_1_r )
return data;
}
-static WRITE32_HANDLER( dsp32c_2_w )
+WRITE32_MEMBER(metalmx_state::dsp32c_2_w)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
offset <<= 1;
@@ -419,12 +415,11 @@ static WRITE32_HANDLER( dsp32c_2_w )
else if (ACCESSING_BITS_16_31)
data >>= 16;
- state->m_dsp32c_2->pio_w(offset, data);
+ m_dsp32c_2->pio_w(offset, data);
}
-static READ32_HANDLER( dsp32c_2_r )
+READ32_MEMBER(metalmx_state::dsp32c_2_r)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
UINT32 data;
offset <<= 1;
@@ -432,7 +427,7 @@ static READ32_HANDLER( dsp32c_2_r )
if (ACCESSING_BITS_0_15)
offset += 1;
- data = state->m_dsp32c_2->pio_r(offset);
+ data = m_dsp32c_2->pio_r(offset);
if (ACCESSING_BITS_16_31)
data <<= 16;
@@ -447,17 +442,17 @@ static READ32_HANDLER( dsp32c_2_r )
*
*************************************/
-static WRITE32_HANDLER( host_gsp_w )
+WRITE32_MEMBER(metalmx_state::host_gsp_w)
{
- address_space *gsp_space = space->machine().device("gsp")->memory().space(AS_PROGRAM);
+ address_space *gsp_space = machine().device("gsp")->memory().space(AS_PROGRAM);
gsp_space->write_word((0xc0000000 + (offset << 5) + 0x10) / 8, data);
gsp_space->write_word((0xc0000000 + (offset << 5))/ 8 , data >> 16);
}
-static READ32_HANDLER( host_gsp_r )
+READ32_MEMBER(metalmx_state::host_gsp_r)
{
- address_space *gsp_space = space->machine().device("gsp")->memory().space(AS_PROGRAM);
+ address_space *gsp_space = machine().device("gsp")->memory().space(AS_PROGRAM);
UINT32 val;
val = gsp_space->read_word((0xc0000000 + (offset << 5) + 0x10) / 8);
@@ -466,38 +461,34 @@ static READ32_HANDLER( host_gsp_r )
}
-static READ32_HANDLER( host_dram_r )
+READ32_MEMBER(metalmx_state::host_dram_r)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
- return (state->m_gsp_dram[offset * 2] << 16) | state->m_gsp_dram[offset * 2 + 1];
+ return (m_gsp_dram[offset * 2] << 16) | m_gsp_dram[offset * 2 + 1];
}
-static WRITE32_HANDLER( host_dram_w )
+WRITE32_MEMBER(metalmx_state::host_dram_w)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
- COMBINE_DATA(state->m_gsp_dram + offset * 2 + 1);
+ COMBINE_DATA(m_gsp_dram + offset * 2 + 1);
data >>= 16;
mem_mask >>= 16;
- COMBINE_DATA(state->m_gsp_dram + offset * 2);
+ COMBINE_DATA(m_gsp_dram + offset * 2);
}
-static READ32_HANDLER( host_vram_r )
+READ32_MEMBER(metalmx_state::host_vram_r)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
- return (state->m_gsp_vram[offset * 2] << 16) | state->m_gsp_vram[offset * 2 + 1];
+ return (m_gsp_vram[offset * 2] << 16) | m_gsp_vram[offset * 2 + 1];
}
-static WRITE32_HANDLER( host_vram_w )
+WRITE32_MEMBER(metalmx_state::host_vram_w)
{
- metalmx_state *state = space->machine().driver_data<metalmx_state>();
- COMBINE_DATA(state->m_gsp_vram + offset * 2 + 1);
+ COMBINE_DATA(m_gsp_vram + offset * 2 + 1);
data >>= 16;
mem_mask >>= 16;
- COMBINE_DATA(state->m_gsp_vram + offset * 2);
+ COMBINE_DATA(m_gsp_vram + offset * 2);
}
static void tms_interrupt(device_t *device, int state)
@@ -506,7 +497,7 @@ static void tms_interrupt(device_t *device, int state)
}
-static WRITE32_HANDLER( timer_w )
+WRITE32_MEMBER(metalmx_state::timer_w)
{
// Offsets
// 9000 with 1 changes to external clock source
@@ -530,24 +521,24 @@ static WRITE32_HANDLER( timer_w )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, metalmx_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x3fffff) AM_ROM
- AM_RANGE(0x400000, 0x4000ff) AM_READWRITE_LEGACY(host_gsp_r, host_gsp_w)
- AM_RANGE(0x600000, 0x6fffff) AM_READWRITE_LEGACY(host_dram_r, host_dram_w)
- AM_RANGE(0x700000, 0x7fffff) AM_READWRITE_LEGACY(host_vram_r, host_vram_w)
- AM_RANGE(0x800000, 0x80001f) AM_READWRITE_LEGACY(dsp32c_2_r, dsp32c_2_w)
+ AM_RANGE(0x400000, 0x4000ff) AM_READWRITE(host_gsp_r, host_gsp_w)
+ AM_RANGE(0x600000, 0x6fffff) AM_READWRITE(host_dram_r, host_dram_w)
+ AM_RANGE(0x700000, 0x7fffff) AM_READWRITE(host_vram_r, host_vram_w)
+ AM_RANGE(0x800000, 0x80001f) AM_READWRITE(dsp32c_2_r, dsp32c_2_w)
AM_RANGE(0x800000, 0x85ffff) AM_NOP /* Unknown */
- AM_RANGE(0x880000, 0x88001f) AM_READWRITE_LEGACY(dsp32c_1_r, dsp32c_1_w)
- AM_RANGE(0x980000, 0x9800ff) AM_WRITE_LEGACY(reset_w)
- AM_RANGE(0xb40000, 0xb40003) AM_READWRITE_LEGACY(sound_data_r, sound_data_w)
+ AM_RANGE(0x880000, 0x88001f) AM_READWRITE(dsp32c_1_r, dsp32c_1_w)
+ AM_RANGE(0x980000, 0x9800ff) AM_WRITE(reset_w)
+ AM_RANGE(0xb40000, 0xb40003) AM_READWRITE(sound_data_r, sound_data_w)
AM_RANGE(0xf00000, 0xf00003) AM_RAM /* Network message port */
- AM_RANGE(0xf02000, 0xf02003) AM_READWRITE_LEGACY(watchdog_r, shifter_w)
- AM_RANGE(0xf03000, 0xf03003) AM_READ_PORT("P1") AM_WRITE_LEGACY(motor_w)
+ AM_RANGE(0xf02000, 0xf02003) AM_READWRITE(watchdog_r, shifter_w)
+ AM_RANGE(0xf03000, 0xf03003) AM_READ_PORT("P1") AM_WRITE(motor_w)
AM_RANGE(0xf04000, 0xf04003) AM_READ_PORT("P2")
AM_RANGE(0xf05000, 0xf05fff) AM_WRITENOP /* Lamps */ // f06000 = ADC // f01xxx = ADC
AM_RANGE(0xf19000, 0xf19003) AM_WRITENOP /* Network */
AM_RANGE(0xf1a000, 0xf1a003) AM_WRITENOP
AM_RANGE(0xf1b000, 0xf1b003) AM_WRITENOP
AM_RANGE(0xf1e000, 0xf1e003) AM_RAM /* Network status flags : 1000 = LIRQ 4000 = SFLAG 8000 = 68FLAG */
- AM_RANGE(0xf20000, 0xf2ffff) AM_WRITE_LEGACY(timer_w)
+ AM_RANGE(0xf20000, 0xf2ffff) AM_WRITE(timer_w)
AM_RANGE(0xfc0000, 0xfc1fff) AM_RAM /* Zero power RAM */
AM_RANGE(0xfd0000, 0xffffff) AM_RAM /* Scratch RAM */
ADDRESS_MAP_END
@@ -596,8 +587,8 @@ static ADDRESS_MAP_START( dsp32c_1_map, AS_PROGRAM, 32, metalmx_state )
AM_RANGE(0x000000, 0x03ffff) AM_RAM
AM_RANGE(0x600000, 0x67ffff) AM_RAM
AM_RANGE(0x700000, 0x700003) AM_WRITENOP /* LEDs? */
- AM_RANGE(0xa00000, 0xa00003) AM_READ_LEGACY(unk_r)
- AM_RANGE(0xb00000, 0xb00003) AM_READ_LEGACY(unk_r)
+ AM_RANGE(0xa00000, 0xa00003) AM_READ(unk_r)
+ AM_RANGE(0xb00000, 0xb00003) AM_READ(unk_r)
AM_RANGE(0xc00000, 0xc00003) AM_RAM /* FIFO? */
AM_RANGE(0xf00000, 0xffffff) AM_RAM /* 3D registers */
ADDRESS_MAP_END
@@ -613,8 +604,8 @@ static ADDRESS_MAP_START( dsp32c_2_map, AS_PROGRAM, 32, metalmx_state )
AM_RANGE(0x000000, 0x03ffff) AM_RAM
AM_RANGE(0x600000, 0x67ffff) AM_RAM
AM_RANGE(0x700000, 0x700003) AM_WRITENOP /* LEDs? */
- AM_RANGE(0xa00000, 0xa00003) AM_READ_LEGACY(unk_r)
- AM_RANGE(0xb00000, 0xb00003) AM_READ_LEGACY(unk_r)
+ AM_RANGE(0xa00000, 0xa00003) AM_READ(unk_r)
+ AM_RANGE(0xb00000, 0xb00003) AM_READ(unk_r)
AM_RANGE(0xc00000, 0xc00003) AM_RAM /* FIFO? */
AM_RANGE(0xf00000, 0xffffff) AM_RAM /* 3D registers */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c
index bb6b5f93fb8..cce32d9819f 100644
--- a/src/mame/drivers/metlclsh.c
+++ b/src/mame/drivers/metlclsh.c
@@ -44,16 +44,14 @@ metlclsh:
***************************************************************************/
-static WRITE8_HANDLER( metlclsh_cause_irq )
+WRITE8_MEMBER(metlclsh_state::metlclsh_cause_irq)
{
- metlclsh_state *state = space->machine().driver_data<metlclsh_state>();
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
}
-static WRITE8_HANDLER( metlclsh_ack_nmi )
+WRITE8_MEMBER(metlclsh_state::metlclsh_ack_nmi)
{
- metlclsh_state *state = space->machine().driver_data<metlclsh_state>();
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
}
static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8, metlclsh_state )
@@ -65,8 +63,8 @@ static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8, metlclsh_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW")
AM_RANGE(0xc080, 0xc080) AM_WRITENOP // ? 0
- AM_RANGE(0xc0c2, 0xc0c2) AM_WRITE_LEGACY(metlclsh_cause_irq) // cause irq on cpu #2
- AM_RANGE(0xc0c3, 0xc0c3) AM_WRITE_LEGACY(metlclsh_ack_nmi) // nmi ack
+ AM_RANGE(0xc0c2, 0xc0c2) AM_WRITE(metlclsh_cause_irq) // cause irq on cpu #2
+ AM_RANGE(0xc0c3, 0xc0c3) AM_WRITE(metlclsh_ack_nmi) // nmi ack
/**/AM_RANGE(0xc800, 0xc82f) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
/**/AM_RANGE(0xcc00, 0xcc2f) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xd000, 0xd001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r,ym2203_w)
@@ -83,27 +81,24 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE8_HANDLER( metlclsh_cause_nmi2 )
+WRITE8_MEMBER(metlclsh_state::metlclsh_cause_nmi2)
{
- metlclsh_state *state = space->machine().driver_data<metlclsh_state>();
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( metlclsh_ack_irq2 )
+WRITE8_MEMBER(metlclsh_state::metlclsh_ack_irq2)
{
- metlclsh_state *state = space->machine().driver_data<metlclsh_state>();
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
}
-static WRITE8_HANDLER( metlclsh_ack_nmi2 )
+WRITE8_MEMBER(metlclsh_state::metlclsh_ack_nmi2)
{
- metlclsh_state *state = space->machine().driver_data<metlclsh_state>();
- device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_NMI, CLEAR_LINE);
}
-static WRITE8_HANDLER( metlclsh_flipscreen_w )
+WRITE8_MEMBER(metlclsh_state::metlclsh_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
}
static ADDRESS_MAP_START( metlclsh_slave_map, AS_PROGRAM, 8, metlclsh_state )
@@ -113,15 +108,15 @@ static ADDRESS_MAP_START( metlclsh_slave_map, AS_PROGRAM, 8, metlclsh_state )
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1")
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW")
- AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE_LEGACY(metlclsh_cause_nmi2) // cause nmi on cpu #1
- AM_RANGE(0xc0c1, 0xc0c1) AM_WRITE_LEGACY(metlclsh_ack_irq2) // irq ack
+ AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE(metlclsh_cause_nmi2) // cause nmi on cpu #1
+ AM_RANGE(0xc0c1, 0xc0c1) AM_WRITE(metlclsh_ack_irq2) // irq ack
AM_RANGE(0xd000, 0xd7ff) AM_ROMBANK("bank1") AM_WRITE_LEGACY(metlclsh_bgram_w) AM_BASE(m_bgram) // this is banked
- AM_RANGE(0xe301, 0xe301) AM_WRITE_LEGACY(metlclsh_flipscreen_w) // 0/1
+ AM_RANGE(0xe301, 0xe301) AM_WRITE(metlclsh_flipscreen_w) // 0/1
AM_RANGE(0xe401, 0xe401) AM_WRITE_LEGACY(metlclsh_rambank_w)
AM_RANGE(0xe402, 0xe403) AM_WRITEONLY AM_BASE(m_scrollx)
// AM_RANGE(0xe404, 0xe404) AM_WRITENOP // ? 0
// AM_RANGE(0xe410, 0xe410) AM_WRITENOP // ? 0 on startup only
- AM_RANGE(0xe417, 0xe417) AM_WRITE_LEGACY(metlclsh_ack_nmi2) // nmi ack
+ AM_RANGE(0xe417, 0xe417) AM_WRITE(metlclsh_ack_nmi2) // nmi ack
AM_RANGE(0xfff0, 0xffff) AM_ROM // Reset/IRQ vectors
ADDRESS_MAP_END
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 42df4dfd7fe..6a0bde3891f 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -117,26 +117,25 @@ driver modified by Eisuke Watanabe
***************************************************************************/
-static READ16_HANDLER( metro_irq_cause_r )
+READ16_MEMBER(metro_state::metro_irq_cause_r)
{
- metro_state *state = space->machine().driver_data<metro_state>();
int res,i;
res = 0;
for(i=0;i<8;i++)
- res |= (state->m_requested_int[i] << i);
+ res |= (m_requested_int[i] << i);
return res;
#if 0
- return state->m_requested_int[0] * 0x01 + // vblank
- state->m_requested_int[1] * 0x02 +
- state->m_requested_int[2] * 0x04 + // blitter
- state->m_requested_int[3] * 0x08 +
- state->m_requested_int[4] * 0x10 +
- state->m_requested_int[5] * 0x20 +
- state->m_requested_int[6] * 0x40 + // unused
- state->m_requested_int[7] * 0x80 ; // unused
+ return m_requested_int[0] * 0x01 + // vblank
+ m_requested_int[1] * 0x02 +
+ m_requested_int[2] * 0x04 + // blitter
+ m_requested_int[3] * 0x08 +
+ m_requested_int[4] * 0x10 +
+ m_requested_int[5] * 0x20 +
+ m_requested_int[6] * 0x40 + // unused
+ m_requested_int[7] * 0x80 ; // unused
#endif
}
@@ -148,7 +147,7 @@ static void update_irq_state( running_machine &machine )
address_space *space = state->m_maincpu->memory().space(AS_PROGRAM);
/* Get the pending IRQs (only the enabled ones, e.g. where irq_enable is *0*) */
- UINT16 irq = metro_irq_cause_r(space, 0, 0xffff) & ~*state->m_irq_enable;
+ UINT16 irq = state->metro_irq_cause_r(*space, 0, 0xffff) & ~*state->m_irq_enable;
if (state->m_irq_line == -1) /* mouja, gakusai, gakusai2, dokyusei, dokyusp */
{
@@ -184,33 +183,32 @@ static IRQ_CALLBACK( metro_irq_callback )
}
-static WRITE16_HANDLER( metro_irq_cause_w )
+WRITE16_MEMBER(metro_state::metro_irq_cause_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
int i;
- //if (data & ~0x15) logerror("CPU #0 PC %06X : unknown bits of irqcause written: %04X\n", cpu_get_pc(&space->device()), data);
+ //if (data & ~0x15) logerror("CPU #0 PC %06X : unknown bits of irqcause written: %04X\n", cpu_get_pc(&space.device()), data);
if (ACCESSING_BITS_0_7)
{
- data &= ~*state->m_irq_enable;
+ data &= ~*m_irq_enable;
for(i=0;i<8;i++)
- if (BIT(data, i)) state->m_requested_int[i] = 0;
+ if (BIT(data, i)) m_requested_int[i] = 0;
#if 0
- if (BIT(data, 0)) state->m_requested_int[0] = 0;
- if (BIT(data, 1)) state->m_requested_int[1] = 0; // DAITORIDE, BALCUBE, KARATOUR, MOUJA
- if (BIT(data, 2)) state->m_requested_int[2] = 0;
- if (BIT(data, 3)) state->m_requested_int[3] = 0; // KARATOUR
- if (BIT(data, 4)) state->m_requested_int[4] = 0;
- if (BIT(data, 5)) state->m_requested_int[5] = 0; // KARATOUR, BLZNTRND
- if (BIT(data, 6)) state->m_requested_int[6] = 0;
- if (BIT(data, 7)) state->m_requested_int[7] = 0;
+ if (BIT(data, 0)) m_requested_int[0] = 0;
+ if (BIT(data, 1)) m_requested_int[1] = 0; // DAITORIDE, BALCUBE, KARATOUR, MOUJA
+ if (BIT(data, 2)) m_requested_int[2] = 0;
+ if (BIT(data, 3)) m_requested_int[3] = 0; // KARATOUR
+ if (BIT(data, 4)) m_requested_int[4] = 0;
+ if (BIT(data, 5)) m_requested_int[5] = 0; // KARATOUR, BLZNTRND
+ if (BIT(data, 6)) m_requested_int[6] = 0;
+ if (BIT(data, 7)) m_requested_int[7] = 0;
#endif
}
- update_irq_state(space->machine());
+ update_irq_state(machine());
}
static TIMER_DEVICE_CALLBACK( metro_interrupt )
@@ -289,12 +287,11 @@ static TIMER_CALLBACK( mouja_irq_callback )
update_irq_state(machine);
}
-static WRITE16_HANDLER( mouja_irq_timer_ctrl_w )
+WRITE16_MEMBER(metro_state::mouja_irq_timer_ctrl_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
double freq = 58.0 + (0xff - (data & 0xff)) / 2.2; /* 0xff=58Hz, 0x80=116Hz? */
- state->m_mouja_irq_timer->adjust(attotime::zero, 0, attotime::from_hz(freq));
+ m_mouja_irq_timer->adjust(attotime::zero, 0, attotime::from_hz(freq));
}
static INTERRUPT_GEN( mouja_interrupt )
@@ -366,24 +363,22 @@ static int metro_io_callback( device_t *device, int ioline, int state )
return state;
}
-static WRITE16_HANDLER( metro_soundlatch_w )
+WRITE16_MEMBER(metro_state::metro_soundlatch_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- device_spin_until_interrupt(&space->device());
- state->m_busy_sndcpu = 1;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_spin_until_interrupt(&space.device());
+ m_busy_sndcpu = 1;
}
}
-static READ16_HANDLER( metro_soundstatus_r )
+READ16_MEMBER(metro_state::metro_soundstatus_r)
{
- metro_state *state = space->machine().driver_data<metro_state>();
- return (state->m_busy_sndcpu ? 0x00 : 0x01);
+ return (m_busy_sndcpu ? 0x00 : 0x01);
}
static CUSTOM_INPUT( custom_soundstatus_r )
@@ -392,51 +387,48 @@ static CUSTOM_INPUT( custom_soundstatus_r )
return (state->m_busy_sndcpu ? 0x01 : 0x00);
}
-static WRITE16_HANDLER( metro_soundstatus_w )
+WRITE16_MEMBER(metro_state::metro_soundstatus_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
if (ACCESSING_BITS_0_7)
- state->m_soundstatus = data & 0x01;
+ m_soundstatus = data & 0x01;
}
-static WRITE8_HANDLER( metro_sound_rombank_w )
+WRITE8_MEMBER(metro_state::metro_sound_rombank_w)
{
int bankaddress;
- UINT8 *ROM = space->machine().region("audiocpu")->base();
+ UINT8 *ROM = machine().region("audiocpu")->base();
bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x03) * 0x4000;
if (bankaddress < 0x10000) bankaddress = 0x0000;
- memory_set_bankptr(space->machine(), "bank1", &ROM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]);
}
-static WRITE8_HANDLER( daitorid_sound_rombank_w )
+WRITE8_MEMBER(metro_state::daitorid_sound_rombank_w)
{
int bankaddress;
- UINT8 *ROM = space->machine().region("audiocpu")->base();
+ UINT8 *ROM = machine().region("audiocpu")->base();
bankaddress = 0x10000-0x4000 + ((data >> 4) & 0x07) * 0x4000;
if (bankaddress < 0x10000) bankaddress = 0x10000;
- memory_set_bankptr(space->machine(), "bank1", &ROM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1", &ROM[bankaddress]);
}
-static READ8_HANDLER( metro_porta_r )
+READ8_MEMBER(metro_state::metro_porta_r)
{
- metro_state *state = space->machine().driver_data<metro_state>();
- return state->m_porta;
+ return m_porta;
}
-static WRITE8_HANDLER( metro_porta_w )
+WRITE8_MEMBER(metro_state::metro_porta_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
- state->m_porta = data;
+ m_porta = data;
}
-static WRITE8_HANDLER( metro_portb_w )
+WRITE8_MEMBER(metro_state::metro_portb_w)
{
/* port B layout:
7 !clock latch for message to main CPU
@@ -449,37 +441,36 @@ static WRITE8_HANDLER( metro_portb_w )
0
*/
- metro_state *state = space->machine().driver_data<metro_state>();
- if (BIT(state->m_portb, 7) && !BIT(data, 7)) /* clock 1->0 */
+ if (BIT(m_portb, 7) && !BIT(data, 7)) /* clock 1->0 */
{
- state->m_busy_sndcpu = 0;
- state->m_portb = data;
+ m_busy_sndcpu = 0;
+ m_portb = data;
return;
}
- if (BIT(state->m_portb, 5) && !BIT(data, 5)) /* clock 1->0 */
+ if (BIT(m_portb, 5) && !BIT(data, 5)) /* clock 1->0 */
{
if (!BIT(data, 2))
{
- ym2413_w(state->m_ymsnd, BIT(data, 1), state->m_porta);
+ ym2413_w(m_ymsnd, BIT(data, 1), m_porta);
}
- state->m_portb = data;
+ m_portb = data;
return;
}
- if (BIT(state->m_portb, 2) && !BIT(data, 2)) /* clock 1->0 */
+ if (BIT(m_portb, 2) && !BIT(data, 2)) /* clock 1->0 */
{
/* write */
if (!BIT(data, 4))
- state->m_oki->write(*space, 0, state->m_porta);
+ m_oki->write(*&space, 0, m_porta);
}
- state->m_portb = data;
+ m_portb = data;
}
-static WRITE8_HANDLER( daitorid_portb_w )
+WRITE8_MEMBER(metro_state::daitorid_portb_w)
{
/* port B layout:
7 !clock latch for message to main CPU
@@ -491,48 +482,47 @@ static WRITE8_HANDLER( daitorid_portb_w )
1 select YM2151 register or data port
0
*/
- metro_state *state = space->machine().driver_data<metro_state>();
- if (BIT(state->m_portb, 7) && !BIT(data, 7)) /* clock 1->0 */
+ if (BIT(m_portb, 7) && !BIT(data, 7)) /* clock 1->0 */
{
- state->m_busy_sndcpu = 0;
- state->m_portb = data;
+ m_busy_sndcpu = 0;
+ m_portb = data;
return;
}
- if (BIT(state->m_portb, 6) && !BIT(data, 6)) /* clock 1->0 */
+ if (BIT(m_portb, 6) && !BIT(data, 6)) /* clock 1->0 */
{
if (!BIT(data, 2))
{
/* write */
- ym2151_w(state->m_ymsnd, BIT(data, 1), state->m_porta);
+ ym2151_w(m_ymsnd, BIT(data, 1), m_porta);
}
if (!BIT(data, 3))
{
/* read */
- state->m_porta = ym2151_r(state->m_ymsnd, BIT(data, 1));
+ m_porta = ym2151_r(m_ymsnd, BIT(data, 1));
}
- state->m_portb = data;
+ m_portb = data;
return;
}
- if (BIT(state->m_portb, 2) && !BIT(data, 2)) /* clock 1->0 */
+ if (BIT(m_portb, 2) && !BIT(data, 2)) /* clock 1->0 */
{
/* write */
if (!BIT(data, 4))
- state->m_oki->write(*space, 0, state->m_porta);
+ m_oki->write(*&space, 0, m_porta);
}
- if (BIT(state->m_portb, 3) && !BIT(data, 3)) /* clock 1->0 */
+ if (BIT(m_portb, 3) && !BIT(data, 3)) /* clock 1->0 */
{
/* read */
if (!BIT(data, 4))
- state->m_porta = state->m_oki->read(*space, 0);
+ m_porta = m_oki->read(*&space, 0);
}
- state->m_portb = data;
+ m_portb = data;
}
static void metro_sound_irq_handler( device_t *device, int state )
@@ -563,21 +553,21 @@ static const ymf278b_interface ymf278b_config =
/* IT DOESN'T WORK PROPERLY */
-static WRITE16_HANDLER( metro_coin_lockout_1word_w )
+WRITE16_MEMBER(metro_state::metro_coin_lockout_1word_w)
{
if (ACCESSING_BITS_0_7)
{
-// coin_lockout_w(space->machine(), 0, data & 1);
-// coin_lockout_w(space->machine(), 1, data & 2);
+// coin_lockout_w(machine(), 0, data & 1);
+// coin_lockout_w(machine(), 1, data & 2);
}
- if (data & ~3) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", cpu_get_pc(&space->device()), data);
+ if (data & ~3) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", cpu_get_pc(&space.device()), data);
}
-static WRITE16_HANDLER( metro_coin_lockout_4words_w )
+WRITE16_MEMBER(metro_state::metro_coin_lockout_4words_w)
{
-// coin_lockout_w(space->machine(), (offset >> 1) & 1, offset & 1);
- if (data & ~1) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", cpu_get_pc(&space->device()), data);
+// coin_lockout_w(machine(), (offset >> 1) & 1, offset & 1);
+ if (data & ~1) logerror("CPU #0 PC %06X : unknown bits of coin lockout written: %04X\n", cpu_get_pc(&space.device()), data);
}
@@ -599,13 +589,12 @@ static WRITE16_HANDLER( metro_coin_lockout_4words_w )
that the blitter can readily use (which is a form of compression)
*/
-static READ16_HANDLER( metro_bankedrom_r )
+READ16_MEMBER(metro_state::metro_bankedrom_r)
{
- metro_state *state = space->machine().driver_data<metro_state>();
- UINT8 *ROM = space->machine().region("gfx1")->base();
- size_t len = space->machine().region("gfx1")->bytes();
+ UINT8 *ROM = machine().region("gfx1")->base();
+ size_t len = machine().region("gfx1")->bytes();
- offset = offset * 2 + 0x10000 * (*state->m_rombank);
+ offset = offset * 2 + 0x10000 * (*m_rombank);
if (offset < len)
return ((ROM[offset + 0] << 8) + ROM[offset + 1]);
@@ -686,24 +675,23 @@ INLINE void blt_write( address_space *space, const int tmap, const offs_t offs,
}
-static WRITE16_HANDLER( metro_blitter_w )
+WRITE16_MEMBER(metro_state::metro_blitter_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
- COMBINE_DATA(&state->m_blitter_regs[offset]);
+ COMBINE_DATA(&m_blitter_regs[offset]);
if (offset == 0x0c / 2)
{
- UINT8 *src = space->machine().region("gfx1")->base();
- size_t src_len = space->machine().region("gfx1")->bytes();
+ UINT8 *src = machine().region("gfx1")->base();
+ size_t src_len = machine().region("gfx1")->bytes();
- UINT32 tmap = (state->m_blitter_regs[0x00 / 2] << 16) + state->m_blitter_regs[0x02 / 2];
- UINT32 src_offs = (state->m_blitter_regs[0x04 / 2] << 16) + state->m_blitter_regs[0x06 / 2];
- UINT32 dst_offs = (state->m_blitter_regs[0x08 / 2] << 16) + state->m_blitter_regs[0x0a / 2];
+ UINT32 tmap = (m_blitter_regs[0x00 / 2] << 16) + m_blitter_regs[0x02 / 2];
+ UINT32 src_offs = (m_blitter_regs[0x04 / 2] << 16) + m_blitter_regs[0x06 / 2];
+ UINT32 dst_offs = (m_blitter_regs[0x08 / 2] << 16) + m_blitter_regs[0x0a / 2];
int shift = (dst_offs & 0x80) ? 0 : 8;
UINT16 mask = (dst_offs & 0x80) ? 0x00ff : 0xff00;
-// logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n", cpu_get_pc(&space->device()), tmap, src_offs, dst_offs);
+// logerror("CPU #0 PC %06X : Blitter regs %08X, %08X, %08X\n", cpu_get_pc(&space.device()), tmap, src_offs, dst_offs);
dst_offs >>= 7 + 1;
switch (tmap)
@@ -713,7 +701,7 @@ static WRITE16_HANDLER( metro_blitter_w )
case 3:
break;
default:
- logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n", cpu_get_pc(&space->device()), tmap);
+ logerror("CPU #0 PC %06X : Blitter unknown destination: %08X\n", cpu_get_pc(&space.device()), tmap);
return;
}
@@ -723,7 +711,7 @@ static WRITE16_HANDLER( metro_blitter_w )
src_offs %= src_len;
b1 = blt_read(src, src_offs);
-// logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n", cpu_get_pc(&space->device()), b1, src_offs);
+// logerror("CPU #0 PC %06X : Blitter opcode %02X at %06X\n", cpu_get_pc(&space.device()), b1, src_offs);
src_offs++;
count = ((~b1) & 0x3f) + 1;
@@ -738,7 +726,7 @@ static WRITE16_HANDLER( metro_blitter_w )
another blit. */
if (b1 == 0)
{
- space->machine().scheduler().timer_set(attotime::from_usec(500), FUNC(metro_blit_done));
+ machine().scheduler().timer_set(attotime::from_usec(500), FUNC(metro_blit_done));
return;
}
@@ -750,7 +738,7 @@ static WRITE16_HANDLER( metro_blitter_w )
src_offs++;
dst_offs &= 0xffff;
- blt_write(space, tmap, dst_offs, b2, mask);
+ blt_write(&space, tmap, dst_offs, b2, mask);
dst_offs = ((dst_offs + 1) & (0x100 - 1)) | (dst_offs & (~(0x100 - 1)));
}
break;
@@ -764,7 +752,7 @@ static WRITE16_HANDLER( metro_blitter_w )
while (count--)
{
dst_offs &= 0xffff;
- blt_write(space, tmap, dst_offs, b2 << shift, mask);
+ blt_write(&space, tmap, dst_offs, b2 << shift, mask);
dst_offs = ((dst_offs + 1) & (0x100 - 1)) | (dst_offs & (~(0x100 - 1)));
b2++;
}
@@ -779,7 +767,7 @@ static WRITE16_HANDLER( metro_blitter_w )
while (count--)
{
dst_offs &= 0xffff;
- blt_write(space, tmap, dst_offs, b2, mask);
+ blt_write(&space, tmap, dst_offs, b2, mask);
dst_offs = ((dst_offs + 1) & (0x100 - 1)) | (dst_offs & (~(0x100 - 1)));
}
break;
@@ -790,7 +778,7 @@ static WRITE16_HANDLER( metro_blitter_w )
{
dst_offs += 0x100;
dst_offs &= ~(0x100 - 1);
- dst_offs |= (0x100 - 1) & (state->m_blitter_regs[0x0a / 2] >> (7 + 1));
+ dst_offs |= (0x100 - 1) & (m_blitter_regs[0x0a / 2] >> (7 + 1));
}
else
{
@@ -799,7 +787,7 @@ static WRITE16_HANDLER( metro_blitter_w )
break;
default:
- logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n",cpu_get_pc(&space->device()),b1,src_offs-1);
+ logerror("CPU #0 PC %06X : Blitter unknown opcode %02X at %06X\n",cpu_get_pc(&space.device()),b1,src_offs-1);
return;
}
@@ -831,18 +819,18 @@ static ADDRESS_MAP_START( metro_sound_map, AS_PROGRAM, 8, metro_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( metro_sound_io_map, AS_IO, 8, metro_state )
- AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READWRITE_LEGACY(metro_porta_r, metro_porta_w)
- AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE_LEGACY(metro_portb_w)
- AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE_LEGACY(metro_sound_rombank_w)
+ AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READWRITE(metro_porta_r, metro_porta_w)
+ AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(metro_portb_w)
+ AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(metro_sound_rombank_w)
ADDRESS_MAP_END
/*****************/
static ADDRESS_MAP_START( daitorid_sound_io_map, AS_IO, 8, metro_state )
- AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READWRITE_LEGACY(metro_porta_r, metro_porta_w)
- AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE_LEGACY(daitorid_portb_w)
- AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE_LEGACY(daitorid_sound_rombank_w)
+ AM_RANGE(UPD7810_PORTA, UPD7810_PORTA) AM_READWRITE(metro_porta_r, metro_porta_w)
+ AM_RANGE(UPD7810_PORTB, UPD7810_PORTB) AM_WRITE(daitorid_portb_w)
+ AM_RANGE(UPD7810_PORTC, UPD7810_PORTC) AM_WRITE(daitorid_sound_rombank_w)
ADDRESS_MAP_END
/***************************************************************************
@@ -850,11 +838,11 @@ ADDRESS_MAP_END
***************************************************************************/
/* Really weird way of mapping 3 DSWs */
-static READ16_HANDLER( balcube_dsw_r )
+READ16_MEMBER(metro_state::balcube_dsw_r)
{
- UINT16 dsw1 = input_port_read(space->machine(), "DSW0") >> 0;
- UINT16 dsw2 = input_port_read(space->machine(), "DSW0") >> 8;
- UINT16 dsw3 = input_port_read(space->machine(), "IN2");
+ UINT16 dsw1 = input_port_read(machine(), "DSW0") >> 0;
+ UINT16 dsw2 = input_port_read(machine(), "DSW0") >> 8;
+ UINT16 dsw3 = input_port_read(machine(), "IN2");
switch (offset * 2)
{
@@ -876,7 +864,7 @@ static READ16_HANDLER( balcube_dsw_r )
case 0x17FFE: return BIT(dsw2, 6) ? 0x40 : 0;
case 0x0FFFE: return BIT(dsw2, 7) ? 0x40 : 0;
}
- logerror("CPU #0 PC %06X : unknown dsw address read: %04X\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06X : unknown dsw address read: %04X\n", cpu_get_pc(&space.device()), offset);
return 0xffff;
}
@@ -886,24 +874,24 @@ static ADDRESS_MAP_START( balcube_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x300000, 0x300001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound
AM_RANGE(0x300000, 0x30000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound
- AM_RANGE(0x400000, 0x41ffff) AM_READ_LEGACY(balcube_dsw_r) // DSW x 3
+ AM_RANGE(0x400000, 0x41ffff) AM_READ(balcube_dsw_r) // DSW x 3
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("IN1") //
AM_RANGE(0x500006, 0x500007) AM_READNOP //
- AM_RANGE(0x500002, 0x500009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x500002, 0x500009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
AM_RANGE(0x600000, 0x61ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x620000, 0x63ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x660000, 0x66ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x670000, 0x673fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x674000, 0x674fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x678000, 0x6787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x678840, 0x67884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x678860, 0x67886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x678870, 0x67887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x678880, 0x678881) AM_WRITENOP // ? increasing
AM_RANGE(0x678890, 0x678891) AM_WRITENOP // ? increasing
- AM_RANGE(0x6788a2, 0x6788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x6788a2, 0x6788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x6788a4, 0x6788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0x6788aa, 0x6788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x6788ac, 0x6788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -921,20 +909,20 @@ static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound
AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound
- AM_RANGE(0x300000, 0x31ffff) AM_READ_LEGACY(balcube_dsw_r) // DSW x 3
+ AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // DSW x 3
AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x160000, 0x16ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x178840, 0x17884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x178860, 0x17886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x178880, 0x178881) AM_WRITENOP // ? increasing
AM_RANGE(0x178890, 0x178891) AM_WRITENOP // ? increasing
- AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -942,7 +930,7 @@ static ADDRESS_MAP_START( daitoa_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("IN1") //
AM_RANGE(0x200006, 0x200007) AM_READNOP //
- AM_RANGE(0x200002, 0x200009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END
@@ -956,24 +944,24 @@ static ADDRESS_MAP_START( bangball_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xf10000, 0xf10fff) AM_RAM // RAM (bug in the ram test routine)
AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound
AM_RANGE(0xb00000, 0xb0000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) // Sound
- AM_RANGE(0xc00000, 0xc1ffff) AM_READ_LEGACY(balcube_dsw_r) // DSW x 3
+ AM_RANGE(0xc00000, 0xc1ffff) AM_READ(balcube_dsw_r) // DSW x 3
AM_RANGE(0xd00000, 0xd00001) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xd00002, 0xd00003) AM_READ_PORT("IN1") //
AM_RANGE(0xd00006, 0xd00007) AM_READNOP //
- AM_RANGE(0xd00002, 0xd00009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0xd00002, 0xd00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
AM_RANGE(0xe00000, 0xe1ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0xe20000, 0xe3ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0xe40000, 0xe5ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0xe60000, 0xe6ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0xe60000, 0xe6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xe70000, 0xe73fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0xe74000, 0xe74fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xe78000, 0xe787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0xe78840, 0xe7884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0xe78840, 0xe7884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0xe78860, 0xe7886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0xe78870, 0xe7887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0xe78880, 0xe78881) AM_WRITENOP // ? increasing
AM_RANGE(0xe78890, 0xe78891) AM_WRITENOP // ? increasing
- AM_RANGE(0xe788a2, 0xe788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0xe788a2, 0xe788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0xe788a4, 0xe788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0xe788aa, 0xe788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0xe788ac, 0xe788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -990,16 +978,16 @@ static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x160000, 0x16ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x178840, 0x17884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x178860, 0x17886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x178880, 0x178881) AM_WRITENOP // ? increasing
AM_RANGE(0x178890, 0x178891) AM_WRITENOP // ? increasing
- AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -1008,8 +996,8 @@ static ADDRESS_MAP_START( batlbubl_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("DSW0")
AM_RANGE(0x200004, 0x200005) AM_READ_PORT("IN0")
AM_RANGE(0x200006, 0x200007) AM_READ_PORT("IN2")
- AM_RANGE(0x200002, 0x200009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
- AM_RANGE(0x300000, 0x31ffff) AM_READ_LEGACY(balcube_dsw_r) // read but ignored?
+ AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // read but ignored?
AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound
AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) //
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
@@ -1026,16 +1014,16 @@ static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x100000, 0x11ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x120000, 0x13ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x140000, 0x15ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x160000, 0x16ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x160000, 0x16ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x170000, 0x173fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x174000, 0x174fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x178000, 0x1787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x178840, 0x17884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x178840, 0x17884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x178860, 0x17886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x178870, 0x17887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x178880, 0x178881) AM_WRITENOP // ? increasing
AM_RANGE(0x178890, 0x178891) AM_WRITENOP // ? increasing
- AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x1788a2, 0x1788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x1788a4, 0x1788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0x1788aa, 0x1788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x1788ac, 0x1788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -1043,8 +1031,8 @@ static ADDRESS_MAP_START( msgogo_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x200000, 0x200001) AM_READ_PORT("COINS") // Inputs
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("JOYS") //
AM_RANGE(0x200006, 0x200007) AM_READNOP //
- AM_RANGE(0x200002, 0x200009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
- AM_RANGE(0x300000, 0x31ffff) AM_READ_LEGACY(balcube_dsw_r) // 3 x DSW
+ AM_RANGE(0x200002, 0x200009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x300000, 0x31ffff) AM_READ(balcube_dsw_r) // 3 x DSW
AM_RANGE(0x400000, 0x400001) AM_DEVREAD8_LEGACY("ymf", ymf278b_r, 0x00ff) // Sound
AM_RANGE(0x400000, 0x40000b) AM_DEVWRITE8_LEGACY("ymf", ymf278b_w, 0x00ff) //
AM_RANGE(0xf00000, 0xf0ffff) AM_RAM // RAM
@@ -1060,26 +1048,26 @@ static ADDRESS_MAP_START( daitorid_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x460000, 0x46ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x478840, 0x47884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x478860, 0x47886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x478870, 0x47887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x478880, 0x478881) AM_WRITENOP // ? increasing
AM_RANGE(0x478890, 0x478891) AM_WRITENOP // ? increasing
- AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x4788a4, 0x4788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x4788aa, 0x4788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x4788ac, 0x4788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(metro_soundstatus_w) // To Sound CPU
+ AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0")
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2")
- AM_RANGE(0xc00002, 0xc00009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END
@@ -1093,26 +1081,26 @@ static ADDRESS_MAP_START( dharma_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x860000, 0x86ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x878840, 0x87884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x878860, 0x87886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing
AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing
AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x879700, 0x879713) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(metro_soundstatus_w) // To Sound CPU
+ AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0")
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN2")
- AM_RANGE(0xc00002, 0xc00009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END
@@ -1126,40 +1114,40 @@ ADDRESS_MAP_END
#define KARATOUR_OFFS( _x_ ) ((_x_) & (0x3f)) + (((_x_) & ~(0x3f)) * (0x100 / 0x40))
-static READ16_HANDLER( karatour_vram_0_r ) { return space->machine().driver_data<metro_state>()->m_vram_0[KARATOUR_OFFS(offset)]; }
-static READ16_HANDLER( karatour_vram_1_r ) { return space->machine().driver_data<metro_state>()->m_vram_1[KARATOUR_OFFS(offset)]; }
-static READ16_HANDLER( karatour_vram_2_r ) { return space->machine().driver_data<metro_state>()->m_vram_2[KARATOUR_OFFS(offset)]; }
+READ16_MEMBER(metro_state::karatour_vram_0_r){ return m_vram_0[KARATOUR_OFFS(offset)]; }
+READ16_MEMBER(metro_state::karatour_vram_1_r){ return m_vram_1[KARATOUR_OFFS(offset)]; }
+READ16_MEMBER(metro_state::karatour_vram_2_r){ return m_vram_2[KARATOUR_OFFS(offset)]; }
-static WRITE16_HANDLER( karatour_vram_0_w ) { metro_vram_0_w(space, KARATOUR_OFFS(offset), data, mem_mask); }
-static WRITE16_HANDLER( karatour_vram_1_w ) { metro_vram_1_w(space, KARATOUR_OFFS(offset), data, mem_mask); }
-static WRITE16_HANDLER( karatour_vram_2_w ) { metro_vram_2_w(space, KARATOUR_OFFS(offset), data, mem_mask); }
+WRITE16_MEMBER(metro_state::karatour_vram_0_w){ metro_vram_0_w(&space, KARATOUR_OFFS(offset), data, mem_mask); }
+WRITE16_MEMBER(metro_state::karatour_vram_1_w){ metro_vram_1_w(&space, KARATOUR_OFFS(offset), data, mem_mask); }
+WRITE16_MEMBER(metro_state::karatour_vram_2_w){ metro_vram_2_w(&space, KARATOUR_OFFS(offset), data, mem_mask); }
static ADDRESS_MAP_START( karatour_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0xffc000, 0xffffff) AM_RAM // RAM
- AM_RANGE(0x400000, 0x400001) AM_READWRITE_LEGACY(metro_soundstatus_r, metro_soundstatus_w) // From Sound CPU
+ AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From Sound CPU
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0") // Inputs
- AM_RANGE(0x400002, 0x400003) AM_WRITE_LEGACY(metro_coin_lockout_1word_w) // Coin Lockout
+ AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN1") //
AM_RANGE(0x400006, 0x400007) AM_READ_PORT("DSW0") //
AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW1") //
AM_RANGE(0x40000c, 0x40000d) AM_READ_PORT("IN2") //
- AM_RANGE(0x860000, 0x86ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x875000, 0x875fff) AM_READWRITE_LEGACY(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of)
- AM_RANGE(0x876000, 0x876fff) AM_READWRITE_LEGACY(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of)
- AM_RANGE(0x877000, 0x877fff) AM_READWRITE_LEGACY(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of)
+ AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of)
+ AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of)
+ AM_RANGE(0x877000, 0x877fff) AM_READWRITE(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of)
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x878840, 0x87884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x878860, 0x87886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing
AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
ADDRESS_MAP_END
@@ -1174,28 +1162,28 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kokushi_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // ROM
AM_RANGE(0x7fc000, 0x7fffff) AM_RAM // RAM
- AM_RANGE(0x860000, 0x86ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
- AM_RANGE(0x875000, 0x875fff) AM_READWRITE_LEGACY(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of)
- AM_RANGE(0x876000, 0x876fff) AM_READWRITE_LEGACY(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of)
- AM_RANGE(0x877000, 0x877fff) AM_READWRITE_LEGACY(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of)
+ AM_RANGE(0x875000, 0x875fff) AM_READWRITE(karatour_vram_0_r, karatour_vram_0_w) // Layer 0 (Part of)
+ AM_RANGE(0x876000, 0x876fff) AM_READWRITE(karatour_vram_1_r, karatour_vram_1_w) // Layer 1 (Part of)
+ AM_RANGE(0x877000, 0x877fff) AM_READWRITE(karatour_vram_2_r, karatour_vram_2_w) // Layer 2 (Part of)
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0x878840, 0x87884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x878860, 0x87886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs - WRONG
// AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing
AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
AM_RANGE(0x879700, 0x879713) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(metro_soundstatus_w) // To Sound CPU
+ AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Inputs
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("DSW0")
- AM_RANGE(0xc00002, 0xc00009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w ) // Coin Lockout
+ AM_RANGE(0xc00002, 0xc00009) AM_WRITE(metro_coin_lockout_4words_w ) // Coin Lockout
ADDRESS_MAP_END
@@ -1209,23 +1197,23 @@ static ADDRESS_MAP_START( lastfort_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x860000, 0x86ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x878840, 0x87884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x878860, 0x87886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing
AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
- AM_RANGE(0xc00000, 0xc00001) AM_READWRITE_LEGACY(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU
- AM_RANGE(0xc00002, 0xc00003) AM_WRITE_LEGACY(metro_coin_lockout_1word_w) // Coin Lockout
+ AM_RANGE(0xc00000, 0xc00001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU
+ AM_RANGE(0xc00002, 0xc00003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("IN1") //
AM_RANGE(0xc00008, 0xc00009) AM_READ_PORT("IN2") //
@@ -1239,9 +1227,9 @@ ADDRESS_MAP_END
/* todo: clean up input reads etc. */
static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM
- AM_RANGE(0x400000, 0x400001) AM_READWRITE_LEGACY(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU
+ AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r, metro_soundstatus_w) // From / To Sound CPU
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN0") // Inputs
- AM_RANGE(0x400002, 0x400003) AM_WRITE_LEGACY(metro_coin_lockout_1word_w) // Coin Lockout
+ AM_RANGE(0x400002, 0x400003) AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN1") //
AM_RANGE(0x400006, 0x400007) AM_READ_PORT("DSW0") //
AM_RANGE(0x40000a, 0x40000b) AM_READ_PORT("DSW1") //
@@ -1249,19 +1237,19 @@ static ADDRESS_MAP_START( lastforg_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x880000, 0x89ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x8a0000, 0x8bffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x8c0000, 0x8dffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x8e0000, 0x8effff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x8e0000, 0x8effff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x8f0000, 0x8f3fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x8f4000, 0x8f4fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x8f8000, 0x8f87ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x8f8800, 0x8f8813) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x8f8840, 0x8f884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x8f8840, 0x8f884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x8f8860, 0x8f886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x8f8870, 0x8f887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x8f8880, 0x8f8881) AM_WRITENOP // ? increasing
AM_RANGE(0x8f8890, 0x8f8891) AM_WRITENOP // ? increasing
- AM_RANGE(0x8f88a2, 0x8f88a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x8f88a2, 0x8f88a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x8f88a4, 0x8f88a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x8f88a8, 0x8f88a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x8f88a8, 0x8f88a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x8f88aa, 0x8f88ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x8f88ac, 0x8f88ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
AM_RANGE(0xc00000, 0xc0ffff) AM_RAM // RAM
@@ -1302,16 +1290,15 @@ static WRITE16_DEVICE_HANDLER( gakusai_oki_bank_lo_w )
}
-static READ16_HANDLER( gakusai_input_r )
+READ16_MEMBER(metro_state::gakusai_input_r)
{
- metro_state *state = space->machine().driver_data<metro_state>();
- UINT16 input_sel = (*state->m_input_sel) ^ 0x3e;
+ UINT16 input_sel = (*m_input_sel) ^ 0x3e;
// Bit 0 ??
- if (input_sel & 0x0002) return input_port_read(space->machine(), "KEY0");
- if (input_sel & 0x0004) return input_port_read(space->machine(), "KEY1");
- if (input_sel & 0x0008) return input_port_read(space->machine(), "KEY2");
- if (input_sel & 0x0010) return input_port_read(space->machine(), "KEY3");
- if (input_sel & 0x0020) return input_port_read(space->machine(), "KEY4");
+ if (input_sel & 0x0002) return input_port_read(machine(), "KEY0");
+ if (input_sel & 0x0004) return input_port_read(machine(), "KEY1");
+ if (input_sel & 0x0008) return input_port_read(machine(), "KEY2");
+ if (input_sel & 0x0010) return input_port_read(machine(), "KEY3");
+ if (input_sel & 0x0020) return input_port_read(machine(), "KEY4");
return 0xffff;
}
@@ -1344,7 +1331,7 @@ static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x220000, 0x23ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x260000, 0x26ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x270000, 0x273fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x274000, 0x274fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
@@ -1352,11 +1339,11 @@ static ADDRESS_MAP_START( gakusai_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_BASE(m_irq_levels) // IRQ Levels
AM_RANGE(0x278820, 0x27882f) AM_WRITEONLY AM_BASE(m_irq_vectors) // IRQ Vectors
AM_RANGE(0x278830, 0x278831) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x278832, 0x278833) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
- AM_RANGE(0x278880, 0x278881) AM_READ_LEGACY(gakusai_input_r) // Inputs
+ AM_RANGE(0x278832, 0x278833) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r) // Inputs
AM_RANGE(0x278882, 0x278883) AM_READ_PORT("IN0") //
AM_RANGE(0x278836, 0x278837) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
- AM_RANGE(0x278840, 0x27884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x278860, 0x27886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x278850, 0x27885b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x278870, 0x278871) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
@@ -1381,7 +1368,7 @@ static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x600000, 0x61ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x620000, 0x63ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x640000, 0x65ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x660000, 0x66ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x660000, 0x66ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x670000, 0x673fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x674000, 0x674fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x675000, 0x675fff) AM_RAM // Sprites?
@@ -1390,11 +1377,11 @@ static ADDRESS_MAP_START( gakusai2_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x678810, 0x67881f) AM_WRITEONLY AM_BASE(m_irq_levels) // IRQ Levels
AM_RANGE(0x678820, 0x67882f) AM_WRITEONLY AM_BASE(m_irq_vectors) // IRQ Vectors
AM_RANGE(0x678830, 0x678831) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x678832, 0x678833) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x678832, 0x678833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x678836, 0x678837) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
- AM_RANGE(0x678840, 0x67884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x678840, 0x67884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x678860, 0x67886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
- AM_RANGE(0x678880, 0x678881) AM_READ_LEGACY(gakusai_input_r) // Inputs
+ AM_RANGE(0x678880, 0x678881) AM_READ(gakusai_input_r) // Inputs
AM_RANGE(0x678882, 0x678883) AM_READ_PORT("IN0") //
AM_RANGE(0x678850, 0x67885b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x678870, 0x678871) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
@@ -1453,20 +1440,20 @@ static ADDRESS_MAP_START( dokyusp_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x220000, 0x23ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x260000, 0x26ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x270000, 0x273fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x274000, 0x274fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x278000, 0x2787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x278810, 0x27881f) AM_WRITEONLY AM_BASE(m_irq_levels) // IRQ Levels
AM_RANGE(0x278820, 0x27882f) AM_WRITEONLY AM_BASE(m_irq_vectors) // IRQ Vectors
AM_RANGE(0x278830, 0x278831) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x278832, 0x278833) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x278832, 0x278833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x278836, 0x278837) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
- AM_RANGE(0x278840, 0x27884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x278840, 0x27884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x278860, 0x27886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x278850, 0x27885b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x278870, 0x278871) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
- AM_RANGE(0x278880, 0x278881) AM_READ_LEGACY(gakusai_input_r) // Inputs
+ AM_RANGE(0x278880, 0x278881) AM_READ(gakusai_input_r) // Inputs
AM_RANGE(0x278882, 0x278883) AM_READ_PORT("IN0") //
AM_RANGE(0x278888, 0x278889) AM_WRITEONLY AM_BASE(m_input_sel) // Inputs
AM_RANGE(0x27880e, 0x27880f) AM_RAM AM_BASE(m_screenctrl) // Screen Control
@@ -1490,7 +1477,7 @@ static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x460000, 0x46ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x460000, 0x46ffff) AM_WRITENOP // DSW Selection
AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
@@ -1499,16 +1486,16 @@ static ADDRESS_MAP_START( dokyusei_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x478810, 0x47881f) AM_WRITEONLY AM_BASE(m_irq_levels) // IRQ Levels
AM_RANGE(0x478820, 0x47882f) AM_WRITEONLY AM_BASE(m_irq_vectors) // IRQ Vectors
AM_RANGE(0x478830, 0x478831) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
-// AM_RANGE(0x478832, 0x478833) AM_READ_LEGACY(metro_irq_cause_r) // IRQ Cause
- AM_RANGE(0x478832, 0x478833) AM_WRITE_LEGACY(metro_irq_cause_w) // IRQ Acknowledge
+// AM_RANGE(0x478832, 0x478833) AM_READ(metro_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x478832, 0x478833) AM_WRITE(metro_irq_cause_w) // IRQ Acknowledge
AM_RANGE(0x478836, 0x478837) AM_WRITENOP // ? watchdog ?
- AM_RANGE(0x478840, 0x47884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x478850, 0x47885b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x478860, 0x47886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x478870, 0x478871) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x479700, 0x479713) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
AM_RANGE(0x478888, 0x478889) AM_WRITEONLY AM_BASE(m_input_sel) // Inputs
- AM_RANGE(0x478880, 0x478881) AM_READ_LEGACY(gakusai_input_r) // Inputs
+ AM_RANGE(0x478880, 0x478881) AM_READ(gakusai_input_r) // Inputs
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") //
@@ -1530,23 +1517,23 @@ static ADDRESS_MAP_START( pangpoms_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x400000, 0x41ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x420000, 0x43ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x440000, 0x45ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x460000, 0x46ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x470000, 0x473fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x474000, 0x474fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x478000, 0x4787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x478800, 0x478813) AM_RAM AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x478840, 0x47884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x478860, 0x47886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x478870, 0x47887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x478880, 0x478881) AM_WRITENOP // ? increasing
AM_RANGE(0x478890, 0x478891) AM_WRITENOP // ? increasing
- AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x4788a2, 0x4788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x4788a4, 0x4788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x4788a8, 0x4788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x4788aa, 0x4788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x4788ac, 0x4788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
- AM_RANGE(0x800000, 0x800001) AM_READWRITE_LEGACY(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU
- AM_RANGE(0x800002, 0x800003) AM_READNOP AM_WRITE_LEGACY(metro_coin_lockout_1word_w) // Coin Lockout
+ AM_RANGE(0x800000, 0x800001) AM_READWRITE(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU
+ AM_RANGE(0x800002, 0x800003) AM_READNOP AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout
AM_RANGE(0x800004, 0x800005) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN1") //
AM_RANGE(0x800008, 0x800009) AM_READ_PORT("IN2") //
@@ -1566,26 +1553,26 @@ static ADDRESS_MAP_START( poitto_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0xc20000, 0xc3ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0xc60000, 0xc6ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xc70000, 0xc73fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0xc78800, 0xc78813) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0xc78840, 0xc7884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0xc78860, 0xc7886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing
AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing
- AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(metro_soundstatus_w) // To Sound CPU
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1")
AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW0")
AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN2")
- AM_RANGE(0x800002, 0x800009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END
@@ -1599,23 +1586,23 @@ static ADDRESS_MAP_START( skyalert_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x820000, 0x83ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x840000, 0x85ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x860000, 0x86ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x860000, 0x86ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x870000, 0x873fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x874000, 0x874fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0x878000, 0x8787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x878800, 0x878813) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x878840, 0x87884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x878840, 0x87884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x878860, 0x87886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x878870, 0x87887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x878880, 0x878881) AM_WRITENOP // ? increasing
AM_RANGE(0x878890, 0x878891) AM_WRITENOP // ? increasing
- AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x8788a2, 0x8788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x8788a4, 0x8788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x8788a8, 0x8788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0x8788aa, 0x8788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x8788ac, 0x8788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
- AM_RANGE(0x400000, 0x400001) AM_READWRITE_LEGACY(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU
- AM_RANGE(0x400002, 0x400003) AM_READNOP AM_WRITE_LEGACY(metro_coin_lockout_1word_w) // Coin Lockout
+ AM_RANGE(0x400000, 0x400001) AM_READWRITE(metro_soundstatus_r,metro_soundstatus_w) // From / To Sound CPU
+ AM_RANGE(0x400002, 0x400003) AM_READNOP AM_WRITE(metro_coin_lockout_1word_w) // Coin Lockout
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("IN0") // Inputs
AM_RANGE(0x400006, 0x400007) AM_READ_PORT("IN1") //
AM_RANGE(0x400008, 0x400009) AM_READ_PORT("IN2") //
@@ -1635,26 +1622,26 @@ static ADDRESS_MAP_START( pururun_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0xc20000, 0xc3ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0xc60000, 0xc6ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xc70000, 0xc73fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0xc78840, 0xc7884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0xc78860, 0xc7886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing
AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing
- AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
AM_RANGE(0xc79700, 0xc79713) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x400000, 0x400001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(metro_soundstatus_w) // To Sound CPU
+ AM_RANGE(0x400000, 0x400001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0x400002, 0x400003) AM_READ_PORT("IN1")
AM_RANGE(0x400004, 0x400005) AM_READ_PORT("DSW0")
AM_RANGE(0x400006, 0x400007) AM_READ_PORT("IN2")
- AM_RANGE(0x400002, 0x400009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x400002, 0x400009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END
@@ -1668,27 +1655,27 @@ static ADDRESS_MAP_START( toride2g_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0xc00000, 0xc1ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0xc20000, 0xc3ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0xc40000, 0xc5ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0xc60000, 0xc6ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0xc60000, 0xc6ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0xc70000, 0xc73fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0xc74000, 0xc74fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xc78000, 0xc787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
- AM_RANGE(0xc78840, 0xc7884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0xc78840, 0xc7884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0xc78860, 0xc7886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0xc78870, 0xc7887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0xc78880, 0xc78881) AM_WRITENOP // ? increasing
AM_RANGE(0xc78890, 0xc78891) AM_WRITENOP // ? increasing
- AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE_LEGACY(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0xc788a2, 0xc788a3) AM_READWRITE(metro_irq_cause_r, metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0xc788a4, 0xc788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE_LEGACY(metro_soundlatch_w) // To Sound CPU
+ AM_RANGE(0xc788a8, 0xc788a9) AM_WRITE(metro_soundlatch_w) // To Sound CPU
AM_RANGE(0xc788aa, 0xc788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0xc788ac, 0xc788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
AM_RANGE(0xc79700, 0xc79713) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE_LEGACY(metro_soundstatus_w) // To Sound CPU
+ AM_RANGE(0x800000, 0x800001) AM_READ_PORT("IN0") AM_WRITE(metro_soundstatus_w) // To Sound CPU
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("IN1")
AM_RANGE(0x800004, 0x800005) AM_READ_PORT("DSW0")
AM_RANGE(0x800006, 0x800007) AM_READ_PORT("IN2")
- AM_RANGE(0x800002, 0x800009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
ADDRESS_MAP_END
@@ -1697,21 +1684,20 @@ ADDRESS_MAP_END
Blazing Tornado
***************************************************************************/
-static WRITE16_HANDLER( blzntrnd_sound_w )
+WRITE16_MEMBER(metro_state::blzntrnd_sound_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
soundlatch_w(space, offset, data >> 8);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( blzntrnd_sh_bankswitch_w )
+WRITE8_MEMBER(metro_state::blzntrnd_sh_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("audiocpu")->base();
+ UINT8 *RAM = machine().region("audiocpu")->base();
int bankaddress;
bankaddress = 0x10000 + (data & 0x03) * 0x4000;
- memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]);
}
static void blzntrnd_irqhandler(device_t *device, int irq)
@@ -1733,7 +1719,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( blzntrnd_sound_io_map, AS_IO, 8, metro_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(blzntrnd_sh_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w)
AM_RANGE(0x40, 0x40) AM_READ_LEGACY(soundlatch_r) AM_WRITENOP
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w)
ADDRESS_MAP_END
@@ -1745,7 +1731,7 @@ static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE_LEGACY(metro_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x220000, 0x23ffff) AM_RAM_WRITE_LEGACY(metro_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x240000, 0x25ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
- AM_RANGE(0x260000, 0x26ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x260000, 0x26ffff) AM_READ(metro_bankedrom_r) // Banked ROM
AM_RANGE(0x260000, 0x26ffff) AM_WRITENOP // ??????
AM_RANGE(0x270000, 0x273fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x274000, 0x274fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
@@ -1753,7 +1739,7 @@ static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x278860, 0x27886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x278870, 0x27887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x278890, 0x278891) AM_WRITENOP // ? increasing
- AM_RANGE(0x2788a2, 0x2788a3) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x2788a2, 0x2788a3) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
AM_RANGE(0x2788a4, 0x2788a5) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0x2788aa, 0x2788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x2788ac, 0x2788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -1764,7 +1750,7 @@ static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x600000, 0x60001f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w) // 053936 control
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("DSW0") AM_WRITENOP // Inputs
- AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(blzntrnd_sound_w) //
+ AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("DSW1") AM_WRITE(blzntrnd_sound_w) //
AM_RANGE(0xe00004, 0xe00005) AM_READ_PORT("IN0") //
AM_RANGE(0xe00006, 0xe00007) AM_READ_PORT("IN1") //
AM_RANGE(0xe00008, 0xe00009) AM_READ_PORT("IN2") //
@@ -1796,8 +1782,8 @@ static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x478810, 0x47881f) AM_WRITEONLY AM_BASE(m_irq_levels) // IRQ Levels
AM_RANGE(0x478820, 0x47882f) AM_WRITEONLY AM_BASE(m_irq_vectors) // IRQ Vectors
AM_RANGE(0x478830, 0x478831) AM_WRITEONLY AM_BASE(m_irq_enable) // IRQ Enable
- AM_RANGE(0x478832, 0x478833) AM_READWRITE_LEGACY(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
- AM_RANGE(0x478834, 0x478835) AM_WRITE_LEGACY(mouja_irq_timer_ctrl_w) // IRQ set timer count
+ AM_RANGE(0x478832, 0x478833) AM_READWRITE(metro_irq_cause_r,metro_irq_cause_w) // IRQ Cause / IRQ Acknowledge
+ AM_RANGE(0x478834, 0x478835) AM_WRITE(mouja_irq_timer_ctrl_w) // IRQ set timer count
AM_RANGE(0x478836, 0x478837) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
AM_RANGE(0x478850, 0x47885b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll Regs
AM_RANGE(0x478860, 0x47886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
@@ -1811,10 +1797,10 @@ static ADDRESS_MAP_START( mouja_map, AS_PROGRAM, 16, metro_state )
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
- AM_RANGE(0x460000, 0x46ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
- AM_RANGE(0x478840, 0x47884d) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x460000, 0x46ffff) AM_READ(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x478840, 0x47884d) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x47883a, 0x47883b) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
- AM_RANGE(0x800002, 0x800009) AM_WRITE_LEGACY(metro_coin_lockout_4words_w) // Coin Lockout
+ AM_RANGE(0x800002, 0x800009) AM_WRITE(metro_coin_lockout_4words_w) // Coin Lockout
#endif
ADDRESS_MAP_END
@@ -1823,43 +1809,39 @@ ADDRESS_MAP_END
Puzzlet
***************************************************************************/
-static WRITE16_HANDLER( puzzlet_irq_enable_w )
+WRITE16_MEMBER(metro_state::puzzlet_irq_enable_w)
{
- metro_state *state = space->machine().driver_data<metro_state>();
if (ACCESSING_BITS_0_7)
- *state->m_irq_enable = data ^ 0xffff;
+ *m_irq_enable = data ^ 0xffff;
}
/* FIXME: algorithm not yet understood. */
-static WRITE16_HANDLER( vram_0_clr_w )
+WRITE16_MEMBER(metro_state::vram_0_clr_w)
{
static int i;
- metro_state *state = space->machine().driver_data<metro_state>();
// printf("0 %04x %04x\n",offset,data);
for(i=0;i<0x20/2;i++)
- state->m_vram_0[(offset*0x10+i)/2] = 0xffff;
+ m_vram_0[(offset*0x10+i)/2] = 0xffff;
}
-static WRITE16_HANDLER( vram_1_clr_w )
+WRITE16_MEMBER(metro_state::vram_1_clr_w)
{
static int i;
- metro_state *state = space->machine().driver_data<metro_state>();
// printf("0 %04x %04x\n",offset,data);
for(i=0;i<0x20/2;i++)
- state->m_vram_1[(offset*0x10+i)/2] = 0xffff;
+ m_vram_1[(offset*0x10+i)/2] = 0xffff;
}
-static WRITE16_HANDLER( vram_2_clr_w )
+WRITE16_MEMBER(metro_state::vram_2_clr_w)
{
static int i;
- metro_state *state = space->machine().driver_data<metro_state>();
// printf("0 %04x %04x\n",offset,data);
for(i=0;i<0x20/2;i++)
- state->m_vram_2[(offset*0x10+i)/2] = 0xffff;
+ m_vram_2[(offset*0x10+i)/2] = 0xffff;
}
@@ -1877,23 +1859,23 @@ static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x740000, 0x75ffff) AM_RAM_WRITE_LEGACY(metro_vram_2_w) AM_BASE(m_vram_2) // Layer 2
AM_RANGE(0x774000, 0x774fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x760000, 0x76ffff) AM_READ_LEGACY(metro_bankedrom_r) // Banked ROM
+ AM_RANGE(0x760000, 0x76ffff) AM_READ(metro_bankedrom_r) // Banked ROM
// AM_RANGE(0x772000, 0x773fff) AM_RAM
AM_RANGE(0x770000, 0x773fff) AM_RAM_WRITE_LEGACY(paletteram16_GGGGGRRRRRBBBBBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
- AM_RANGE(0x775000, 0x775fff) AM_RAM_WRITE_LEGACY(vram_0_clr_w)
- AM_RANGE(0x776000, 0x776fff) AM_RAM_WRITE_LEGACY(vram_1_clr_w)
- AM_RANGE(0x777000, 0x777fff) AM_RAM_WRITE_LEGACY(vram_2_clr_w)
+ AM_RANGE(0x775000, 0x775fff) AM_RAM_WRITE(vram_0_clr_w)
+ AM_RANGE(0x776000, 0x776fff) AM_RAM_WRITE(vram_1_clr_w)
+ AM_RANGE(0x777000, 0x777fff) AM_RAM_WRITE(vram_2_clr_w)
AM_RANGE(0x778000, 0x7787ff) AM_RAM AM_BASE_SIZE(m_tiletable, m_tiletable_size) // Tiles Set
AM_RANGE(0x778800, 0x778813) AM_WRITEONLY AM_BASE(m_videoregs) // Video Registers
- AM_RANGE(0x778840, 0x77884f) AM_WRITE_LEGACY(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
+ AM_RANGE(0x778840, 0x77884f) AM_WRITE(metro_blitter_w) AM_BASE(m_blitter_regs) // Tiles Blitter
AM_RANGE(0x778860, 0x77886b) AM_WRITE_LEGACY(metro_window_w) AM_BASE(m_window) // Tilemap Window
AM_RANGE(0x778870, 0x77887b) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0x778890, 0x778891) AM_WRITENOP // ? increasing
- AM_RANGE(0x7788a2, 0x7788a3) AM_WRITE_LEGACY(metro_irq_cause_w) // IRQ Cause
- AM_RANGE(0x7788a4, 0x7788a5) AM_WRITE_LEGACY(puzzlet_irq_enable_w) AM_BASE(m_irq_enable) // IRQ Enable
+ AM_RANGE(0x7788a2, 0x7788a3) AM_WRITE(metro_irq_cause_w) // IRQ Cause
+ AM_RANGE(0x7788a4, 0x7788a5) AM_WRITE(puzzlet_irq_enable_w) AM_BASE(m_irq_enable) // IRQ Enable
AM_RANGE(0x7788aa, 0x7788ab) AM_WRITEONLY AM_BASE(m_rombank) // Rom Bank
AM_RANGE(0x7788ac, 0x7788ad) AM_WRITEONLY AM_BASE(m_screenctrl) // Screen Control
@@ -1904,11 +1886,11 @@ static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x7f8884, 0x7f8885) AM_READ_PORT("DSW0")
AM_RANGE(0x7f8886, 0x7f8887) AM_READ_PORT("DSW0")
- AM_RANGE(0x7f88a2, 0x7f88a3) AM_READ_LEGACY(metro_irq_cause_r) // IRQ Cause
+ AM_RANGE(0x7f88a2, 0x7f88a3) AM_READ(metro_irq_cause_r) // IRQ Cause
ADDRESS_MAP_END
-static WRITE8_HANDLER( puzzlet_portb_w )
+WRITE8_MEMBER(metro_state::puzzlet_portb_w)
{
// popmessage("PORTB %02x", data);
}
@@ -1916,7 +1898,7 @@ static WRITE8_HANDLER( puzzlet_portb_w )
static ADDRESS_MAP_START( puzzlet_io_map, AS_IO, 8, metro_state )
AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_PORT("IN2")
AM_RANGE(H8_SERIAL_1, H8_SERIAL_1) AM_READ_PORT("IN0") // coin
- AM_RANGE(H8_PORT_B, H8_PORT_B) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(puzzlet_portb_w)
+ AM_RANGE(H8_PORT_B, H8_PORT_B) AM_READ_PORT("DSW0") AM_WRITE(puzzlet_portb_w)
ADDRESS_MAP_END
@@ -5978,7 +5960,7 @@ static DRIVER_INIT( metro )
state->m_porta = 0x00;
state->m_portb = 0x00;
state->m_busy_sndcpu = 0;
- metro_sound_rombank_w(space, 0, 0x00);
+ state->metro_sound_rombank_w(*space, 0, 0x00);
}
static DRIVER_INIT( karatour )
@@ -6011,7 +5993,7 @@ static DRIVER_INIT( daitorid )
state->m_porta = 0x00;
state->m_portb = 0x00;
state->m_busy_sndcpu = 0;
- daitorid_sound_rombank_w(space, 0, 0x00);
+ state->daitorid_sound_rombank_w(*space, 0, 0x00);
}
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index c9c468108fc..edda98e66be 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -115,7 +115,7 @@ static ADDRESS_MAP_START( mexico86_m68705_map, AS_PROGRAM, 8, mexico86_state )
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static WRITE8_HANDLER( mexico86_sub_output_w )
+WRITE8_MEMBER(mexico86_state::mexico86_sub_output_w)
{
/*--x- ---- coin lockout 2*/
/*---x ---- coin lockout 1*/
@@ -131,7 +131,7 @@ static ADDRESS_MAP_START( mexico86_sub_cpu_map, AS_PROGRAM, 8, mexico86_state )
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN5")
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN6")
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("IN7")
- AM_RANGE(0xc004, 0xc004) AM_WRITE_LEGACY(mexico86_sub_output_w)
+ AM_RANGE(0xc004, 0xc004) AM_WRITE(mexico86_sub_output_w)
ADDRESS_MAP_END
/*************************************
diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c
index 4d29ed1f7e1..b53ade102ad 100644
--- a/src/mame/drivers/mhavoc.c
+++ b/src/mame/drivers/mhavoc.c
@@ -199,29 +199,29 @@
*
*************************************/
-static READ8_HANDLER( dual_pokey_r )
+READ8_MEMBER(mhavoc_state::dual_pokey_r)
{
int pokey_num = (offset >> 3) & 0x01;
int control = (offset & 0x10) >> 1;
int pokey_reg = (offset % 8) | control;
if (pokey_num == 0)
- return pokey_r(space->machine().device("pokey1"), pokey_reg);
+ return pokey_r(machine().device("pokey1"), pokey_reg);
else
- return pokey_r(space->machine().device("pokey2"), pokey_reg);
+ return pokey_r(machine().device("pokey2"), pokey_reg);
}
-static WRITE8_HANDLER( dual_pokey_w )
+WRITE8_MEMBER(mhavoc_state::dual_pokey_w)
{
int pokey_num = (offset >> 3) & 0x01;
int control = (offset & 0x10) >> 1;
int pokey_reg = (offset % 8) | control;
if (pokey_num == 0)
- pokey_w(space->machine().device("pokey1"), pokey_reg, data);
+ pokey_w(machine().device("pokey1"), pokey_reg, data);
else
- pokey_w(space->machine().device("pokey2"), pokey_reg, data);
+ pokey_w(machine().device("pokey2"), pokey_reg, data);
}
@@ -290,7 +290,7 @@ static ADDRESS_MAP_START( alphaone_map, AS_PROGRAM, 8, mhavoc_state )
AM_RANGE(0x0200, 0x07ff) AM_RAMBANK("bank1") AM_BASE(m_zram0)
AM_RANGE(0x0800, 0x09ff) AM_RAM
AM_RANGE(0x0a00, 0x0fff) AM_RAMBANK("bank1") AM_BASE(m_zram1)
- AM_RANGE(0x1020, 0x103f) AM_READWRITE_LEGACY(dual_pokey_r, dual_pokey_w)
+ AM_RANGE(0x1020, 0x103f) AM_READWRITE(dual_pokey_r, dual_pokey_w)
AM_RANGE(0x1040, 0x1040) AM_READ_PORT("IN0") AM_WRITENOP /* Alpha Input Port 0 */
AM_RANGE(0x1060, 0x1060) AM_READ_PORT("IN1") /* Gamma Input Port */
AM_RANGE(0x1080, 0x1080) AM_READ_PORT("DIAL") /* Roller Controller Input*/
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index 59f22c0a9f2..a49b034bcb3 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -126,25 +126,23 @@ static INTERRUPT_GEN( display_irq )
*
*************************************/
-static WRITE32_HANDLER( cmos_w )
+WRITE32_MEMBER(midzeus_state::cmos_w)
{
- midzeus_state *state = space->machine().driver_data<midzeus_state>();
if (bitlatch[2] && !cmos_protected)
- COMBINE_DATA(&state->m_nvram[offset]);
+ COMBINE_DATA(&m_nvram[offset]);
else
- logerror("%06X:timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", cpu_get_pc(&space->device()), bitlatch[2], cmos_protected);
+ logerror("%06X:timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", cpu_get_pc(&space.device()), bitlatch[2], cmos_protected);
cmos_protected = TRUE;
}
-static READ32_HANDLER( cmos_r )
+READ32_MEMBER(midzeus_state::cmos_r)
{
- midzeus_state *state = space->machine().driver_data<midzeus_state>();
- return state->m_nvram[offset] | 0xffffff00;
+ return m_nvram[offset] | 0xffffff00;
}
-static WRITE32_HANDLER( cmos_protect_w )
+WRITE32_MEMBER(midzeus_state::cmos_protect_w)
{
cmos_protected = FALSE;
}
@@ -174,20 +172,18 @@ static WRITE32_DEVICE_HANDLER( zeus2_timekeeper_w )
}
-static READ32_HANDLER( zpram_r )
+READ32_MEMBER(midzeus_state::zpram_r)
{
- midzeus_state *state = space->machine().driver_data<midzeus_state>();
- return state->m_nvram[offset] | 0xffffff00;
+ return m_nvram[offset] | 0xffffff00;
}
-static WRITE32_HANDLER( zpram_w )
+WRITE32_MEMBER(midzeus_state::zpram_w)
{
- midzeus_state *state = space->machine().driver_data<midzeus_state>();
if (bitlatch[2])
- COMBINE_DATA(&state->m_nvram[offset]);
+ COMBINE_DATA(&m_nvram[offset]);
else
- logerror("%06X:zpram_w with bitlatch[2] = %d\n", cpu_get_pc(&space->device()), bitlatch[2]);
+ logerror("%06X:zpram_w with bitlatch[2] = %d\n", cpu_get_pc(&space.device()), bitlatch[2]);
}
@@ -198,7 +194,7 @@ static WRITE32_HANDLER( zpram_w )
*
*************************************/
-static READ32_HANDLER( bitlatches_r )
+READ32_MEMBER(midzeus_state::bitlatches_r)
{
switch (offset)
{
@@ -228,14 +224,14 @@ static READ32_HANDLER( bitlatches_r )
/* unknown purpose */
default:
- logerror("%06X:bitlatches_r(%X)\n", cpu_get_pc(&space->device()), offset);
+ logerror("%06X:bitlatches_r(%X)\n", cpu_get_pc(&space.device()), offset);
break;
}
return ~0;
}
-static WRITE32_HANDLER( bitlatches_w )
+WRITE32_MEMBER(midzeus_state::bitlatches_w)
{
UINT32 oldval = bitlatch[offset];
bitlatch[offset] = data;
@@ -245,19 +241,19 @@ static WRITE32_HANDLER( bitlatches_w )
/* unknown purpose */
default:
if (oldval ^ data)
- logerror("%06X:bitlatches_w(%X) = %X\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X\n", cpu_get_pc(&space.device()), offset, data);
break;
/* unknown purpose; crusnexo toggles this between 0 and 1 every 20 frames; thegrid writes 1 */
case 0:
if (data != 0 && data != 1)
- logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space.device()), offset, data);
break;
/* unknown purpose; mk4/invasn write 1 here at initialization; crusnexo/thegrid write 3 */
case 1:
if (data != 1 && data != 3)
- logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space.device()), offset, data);
break;
/* CMOS/ZPRAM extra enable latch; only low bit is used */
@@ -267,30 +263,30 @@ static WRITE32_HANDLER( bitlatches_w )
/* unknown purpose; invasn writes 2 here at startup */
case 4:
if (data != 2)
- logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space.device()), offset, data);
break;
/* ROM bank selection on Zeus 2 */
case 5:
- memory_set_bank(space->machine(), "bank1", bitlatch[offset] & 3);
+ memory_set_bank(machine(), "bank1", bitlatch[offset] & 3);
break;
/* unknown purpose; crusnexo/thegrid write 1 at startup */
case 7:
if (data != 1)
- logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space.device()), offset, data);
break;
/* unknown purpose; crusnexo writes 4 at startup; thegrid writes 6 */
case 8:
if (data != 4 && data != 6)
- logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space.device()), offset, data);
break;
/* unknown purpose; thegrid writes 1 at startup */
case 9:
if (data != 1)
- logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:bitlatches_w(%X) = %X (unexpected)\n", cpu_get_pc(&space.device()), offset, data);
break;
}
}
@@ -303,14 +299,14 @@ static WRITE32_HANDLER( bitlatches_w )
*
*************************************/
-static READ32_HANDLER( crusnexo_leds_r )
+READ32_MEMBER(midzeus_state::crusnexo_leds_r)
{
/* reads appear to just be for synchronization */
return ~0;
}
-static WRITE32_HANDLER( crusnexo_leds_w )
+WRITE32_MEMBER(midzeus_state::crusnexo_leds_w)
{
int bit, led;
@@ -354,9 +350,9 @@ static WRITE32_HANDLER( crusnexo_leds_w )
// read 8d0003, check bit 1, skip some stuff if 0
// write junk to 9e0000
-static READ32_HANDLER( linkram_r )
+READ32_MEMBER(midzeus_state::linkram_r)
{
- logerror("%06X:unknown_8a000_r(%02X)\n", cpu_get_pc(&space->device()), offset);
+ logerror("%06X:unknown_8a000_r(%02X)\n", cpu_get_pc(&space.device()), offset);
if (offset == 0)
return 0x30313042;
else if (offset == 0x3c)
@@ -364,9 +360,9 @@ static READ32_HANDLER( linkram_r )
return linkram[offset];
}
-static WRITE32_HANDLER( linkram_w )
+WRITE32_MEMBER(midzeus_state::linkram_w)
{
- logerror("%06X:unknown_8a000_w(%02X) = %08X\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:unknown_8a000_w(%02X) = %08X\n", cpu_get_pc(&space.device()), offset, data);
COMBINE_DATA(&linkram[offset]);
}
@@ -378,7 +374,7 @@ static WRITE32_HANDLER( linkram_w )
*
*************************************/
-static READ32_HANDLER( tms32031_control_r )
+READ32_MEMBER(midzeus_state::tms32031_control_r)
{
/* watch for accesses to the timers */
if (offset == 0x24 || offset == 0x34)
@@ -391,13 +387,13 @@ static READ32_HANDLER( tms32031_control_r )
/* log anything else except the memory control register */
if (offset != 0x64)
- logerror("%06X:tms32031_control_r(%02X)\n", cpu_get_pc(&space->device()), offset);
+ logerror("%06X:tms32031_control_r(%02X)\n", cpu_get_pc(&space.device()), offset);
return tms32031_control[offset];
}
-static WRITE32_HANDLER( tms32031_control_w )
+WRITE32_MEMBER(midzeus_state::tms32031_control_w)
{
COMBINE_DATA(&tms32031_control[offset]);
@@ -413,7 +409,7 @@ static WRITE32_HANDLER( tms32031_control_w )
timer[which]->adjust(attotime::never);
}
else
- logerror("%06X:tms32031_control_w(%02X) = %08X\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%06X:tms32031_control_w(%02X) = %08X\n", cpu_get_pc(&space.device()), offset, data);
}
@@ -433,7 +429,7 @@ static CUSTOM_INPUT( custom_49way_r )
}
-static WRITE32_HANDLER( keypad_select_w )
+WRITE32_MEMBER(midzeus_state::keypad_select_w)
{
if (offset == 1)
keypad_select = data;
@@ -460,16 +456,16 @@ static CUSTOM_INPUT( keypad_r )
*
*************************************/
-static READ32_HANDLER( analog_r )
+READ32_MEMBER(midzeus_state::analog_r)
{
static const char * const tags[] = { "ANALOG0", "ANALOG1", "ANALOG2", "ANALOG3" };
if (offset < 8 || offset > 11)
- logerror("%06X:analog_r(%X)\n", cpu_get_pc(&space->device()), offset);
- return input_port_read(space->machine(), tags[offset & 3]);
+ logerror("%06X:analog_r(%X)\n", cpu_get_pc(&space.device()), offset);
+ return input_port_read(machine(), tags[offset & 3]);
}
-static WRITE32_HANDLER( analog_w )
+WRITE32_MEMBER(midzeus_state::analog_w)
{
/* 16 writes to the location before a read */
}
@@ -508,7 +504,7 @@ static TIMER_CALLBACK( invasn_gun_callback )
}
-static WRITE32_HANDLER( invasn_gun_w )
+WRITE32_MEMBER(midzeus_state::invasn_gun_w)
{
UINT32 old_control = gun_control;
int player;
@@ -518,31 +514,31 @@ static WRITE32_HANDLER( invasn_gun_w )
/* bits 0-1 enable IRQs (?) */
/* bits 2-3 reset IRQ states */
gun_irq_state &= ~((gun_control >> 2) & 3);
- update_gun_irq(space->machine());
+ update_gun_irq(machine());
for (player = 0; player < 2; player++)
{
UINT8 pmask = 0x04 << player;
if (((old_control ^ gun_control) & pmask) != 0 && (gun_control & pmask) == 0)
{
- const rectangle &visarea = space->machine().primary_screen->visible_area();
+ const rectangle &visarea = machine().primary_screen->visible_area();
static const char *const names[2][2] =
{
{ "GUNX1", "GUNY1" },
{ "GUNX2", "GUNY2" }
};
- gun_x[player] = input_port_read(space->machine(), names[player][0]) * visarea.width() / 255 + visarea.min_x + BEAM_XOFFS;
- gun_y[player] = input_port_read(space->machine(), names[player][1]) * visarea.height() / 255 + visarea.min_y;
- gun_timer[player]->adjust(space->machine().primary_screen->time_until_pos(MAX(0, gun_y[player] - BEAM_DY), MAX(0, gun_x[player] - BEAM_DX)), player);
+ gun_x[player] = input_port_read(machine(), names[player][0]) * visarea.width() / 255 + visarea.min_x + BEAM_XOFFS;
+ gun_y[player] = input_port_read(machine(), names[player][1]) * visarea.height() / 255 + visarea.min_y;
+ gun_timer[player]->adjust(machine().primary_screen->time_until_pos(MAX(0, gun_y[player] - BEAM_DY), MAX(0, gun_x[player] - BEAM_DX)), player);
}
}
}
-static READ32_HANDLER( invasn_gun_r )
+READ32_MEMBER(midzeus_state::invasn_gun_r)
{
- int beamx = space->machine().primary_screen->hpos();
- int beamy = space->machine().primary_screen->vpos();
+ int beamx = machine().primary_screen->hpos();
+ int beamy = machine().primary_screen->vpos();
UINT32 result = 0xffff;
int player;
@@ -568,13 +564,13 @@ static ADDRESS_MAP_START( zeus_map, AS_PROGRAM, 32, midzeus_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE_LEGACY(&ram_base)
AM_RANGE(0x400000, 0x41ffff) AM_RAM
- AM_RANGE(0x808000, 0x80807f) AM_READWRITE_LEGACY(tms32031_control_r, tms32031_control_w) AM_BASE_LEGACY(&tms32031_control)
+ AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE_LEGACY(&tms32031_control)
AM_RANGE(0x880000, 0x8803ff) AM_READWRITE_LEGACY(zeus_r, zeus_w) AM_BASE_LEGACY(&zeusbase)
- AM_RANGE(0x8d0000, 0x8d0004) AM_READWRITE_LEGACY(bitlatches_r, bitlatches_w)
+ AM_RANGE(0x8d0000, 0x8d0004) AM_READWRITE(bitlatches_r, bitlatches_w)
AM_RANGE(0x990000, 0x99000f) AM_READWRITE_LEGACY(midway_ioasic_r, midway_ioasic_w)
AM_RANGE(0x9e0000, 0x9e0000) AM_WRITENOP // watchdog?
- AM_RANGE(0x9f0000, 0x9f7fff) AM_READWRITE_LEGACY(cmos_r, cmos_w) AM_SHARE("nvram")
- AM_RANGE(0x9f8000, 0x9f8000) AM_WRITE_LEGACY(cmos_protect_w)
+ AM_RANGE(0x9f0000, 0x9f7fff) AM_READWRITE(cmos_r, cmos_w) AM_SHARE("nvram")
+ AM_RANGE(0x9f8000, 0x9f8000) AM_WRITE(cmos_protect_w)
AM_RANGE(0xa00000, 0xffffff) AM_ROM AM_REGION("user1", 0)
ADDRESS_MAP_END
@@ -583,16 +579,16 @@ static ADDRESS_MAP_START( zeus2_map, AS_PROGRAM, 32, midzeus_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x03ffff) AM_RAM AM_BASE_LEGACY(&ram_base)
AM_RANGE(0x400000, 0x43ffff) AM_RAM
- AM_RANGE(0x808000, 0x80807f) AM_READWRITE_LEGACY(tms32031_control_r, tms32031_control_w) AM_BASE_LEGACY(&tms32031_control)
+ AM_RANGE(0x808000, 0x80807f) AM_READWRITE(tms32031_control_r, tms32031_control_w) AM_BASE_LEGACY(&tms32031_control)
AM_RANGE(0x880000, 0x88007f) AM_READWRITE_LEGACY(zeus2_r, zeus2_w) AM_BASE_LEGACY(&zeusbase)
- AM_RANGE(0x8a0000, 0x8a003f) AM_READWRITE_LEGACY(linkram_r, linkram_w) AM_BASE_LEGACY(&linkram)
- AM_RANGE(0x8d0000, 0x8d000a) AM_READWRITE_LEGACY(bitlatches_r, bitlatches_w)
- AM_RANGE(0x900000, 0x91ffff) AM_READWRITE_LEGACY(zpram_r, zpram_w) AM_SHARE("nvram") AM_MIRROR(0x020000)
+ AM_RANGE(0x8a0000, 0x8a003f) AM_READWRITE(linkram_r, linkram_w) AM_BASE_LEGACY(&linkram)
+ AM_RANGE(0x8d0000, 0x8d000a) AM_READWRITE(bitlatches_r, bitlatches_w)
+ AM_RANGE(0x900000, 0x91ffff) AM_READWRITE(zpram_r, zpram_w) AM_SHARE("nvram") AM_MIRROR(0x020000)
AM_RANGE(0x990000, 0x99000f) AM_READWRITE_LEGACY(midway_ioasic_r, midway_ioasic_w)
- AM_RANGE(0x9c0000, 0x9c000f) AM_READWRITE_LEGACY(analog_r, analog_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(0x9f8000, 0x9f8000) AM_WRITE_LEGACY(cmos_protect_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)
ADDRESS_MAP_END
@@ -1113,13 +1109,13 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state )
MCFG_FRAGMENT_ADD(dcs2_audio_2104)
MACHINE_CONFIG_END
-static READ8_HANDLER( PIC16C5X_T0_clk_r )
+READ8_MEMBER(midzeus_state::PIC16C5X_T0_clk_r)
{
return 0;
}
static ADDRESS_MAP_START( pic_io_map, AS_IO, 8, midzeus_state )
- AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ_LEGACY(PIC16C5X_T0_clk_r)
+ AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ(PIC16C5X_T0_clk_r)
ADDRESS_MAP_END
@@ -1436,7 +1432,8 @@ static DRIVER_INIT( invasn )
{
dcs2_init(machine, 0, 0);
midway_ioasic_init(machine, MIDWAY_IOASIC_STANDARD, 468/* or 488 */, 94, NULL);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x9c0000, 0x9c0000, FUNC(invasn_gun_r), FUNC(invasn_gun_w));
+ midzeus_state *state = machine.driver_data<midzeus_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x9c0000, 0x9c0000, read32_delegate(FUNC(midzeus_state::invasn_gun_r),state), write32_delegate(FUNC(midzeus_state::invasn_gun_w),state));
}
@@ -1445,9 +1442,9 @@ static DRIVER_INIT( crusnexo )
dcs2_init(machine, 0, 0);
midway_ioasic_init(machine, MIDWAY_IOASIC_STANDARD, 472/* or 476,477,478,110 */, 99, NULL);
memory_configure_bank(machine, "bank1", 0, 3, machine.region("user2")->base(), 0x400000*4);
-
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x9b0004, 0x9b0007, FUNC(crusnexo_leds_r), FUNC(crusnexo_leds_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler (0x8d0009, 0x8d000a, FUNC(keypad_select_w));
+ midzeus_state *state = machine.driver_data<midzeus_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(FUNC(midzeus_state::crusnexo_leds_r),state), write32_delegate(FUNC(midzeus_state::crusnexo_leds_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler (0x8d0009, 0x8d000a, write32_delegate(FUNC(midzeus_state::keypad_select_w),state));
}
diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c
index 8ff81638978..6ee7ee82a4b 100644
--- a/src/mame/drivers/mikie.c
+++ b/src/mame/drivers/mikie.c
@@ -57,37 +57,34 @@ Stephh's notes (based on the games M6809 code and some tests) :
*
*************************************/
-static READ8_HANDLER( mikie_sh_timer_r )
+READ8_MEMBER(mikie_state::mikie_sh_timer_r)
{
- mikie_state *state = space->machine().driver_data<mikie_state>();
- int clock = state->m_audiocpu->total_cycles() / MIKIE_TIMER_RATE;
+ int clock = m_audiocpu->total_cycles() / MIKIE_TIMER_RATE;
return clock;
}
-static WRITE8_HANDLER( mikie_sh_irqtrigger_w )
+WRITE8_MEMBER(mikie_state::mikie_sh_irqtrigger_w)
{
- mikie_state *state = space->machine().driver_data<mikie_state>();
- if (state->m_last_irq == 0 && data == 1)
+ if (m_last_irq == 0 && data == 1)
{
// setting bit 0 low then high triggers IRQ on the sound CPU
- 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);
}
- state->m_last_irq = data;
+ m_last_irq = data;
}
-static WRITE8_HANDLER( mikie_coin_counter_w )
+WRITE8_MEMBER(mikie_state::mikie_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(mikie_state::irq_mask_w)
{
- mikie_state *state = space->machine().driver_data<mikie_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
/*************************************
@@ -98,10 +95,10 @@ static WRITE8_HANDLER( irq_mask_w )
static ADDRESS_MAP_START( mikie_map, AS_PROGRAM, 8, mikie_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
- AM_RANGE(0x2000, 0x2001) AM_WRITE_LEGACY(mikie_coin_counter_w)
- AM_RANGE(0x2002, 0x2002) AM_WRITE_LEGACY(mikie_sh_irqtrigger_w)
+ AM_RANGE(0x2000, 0x2001) AM_WRITE(mikie_coin_counter_w)
+ AM_RANGE(0x2002, 0x2002) AM_WRITE(mikie_sh_irqtrigger_w)
AM_RANGE(0x2006, 0x2006) AM_WRITE_LEGACY(mikie_flipscreen_w)
- AM_RANGE(0x2007, 0x2007) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x2007, 0x2007) AM_WRITE(irq_mask_w)
AM_RANGE(0x2100, 0x2100) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x2200, 0x2200) AM_WRITE_LEGACY(mikie_palettebank_w)
AM_RANGE(0x2300, 0x2300) AM_WRITENOP // ???
@@ -127,7 +124,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, mikie_state )
AM_RANGE(0x8002, 0x8002) AM_DEVWRITE_LEGACY("sn1", sn76496_w) // trigger read of latch
AM_RANGE(0x8003, 0x8003) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x8004, 0x8004) AM_DEVWRITE_LEGACY("sn2", sn76496_w) // trigger read of latch
- AM_RANGE(0x8005, 0x8005) AM_READ_LEGACY(mikie_sh_timer_r)
+ AM_RANGE(0x8005, 0x8005) AM_READ(mikie_sh_timer_r)
AM_RANGE(0x8079, 0x8079) AM_WRITENOP // ???
AM_RANGE(0xa003, 0xa003) AM_WRITENOP // ???
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 5c25ca4df42..4d1798a4e17 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -110,9 +110,8 @@ static NVRAM_HANDLER( mitchell )
}
}
-static READ8_HANDLER( pang_port5_r )
+READ8_MEMBER(mitchell_state::pang_port5_r)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
/* bits 0 and (sometimes) 3 are checked in the interrupt handler.
bit 3 is checked before updating the palette so it really seems to be vblank.
@@ -121,7 +120,7 @@ static READ8_HANDLER( pang_port5_r )
otherwise music doesn't work.
*/
- return (input_port_read(space->machine(), "SYS0") & 0xfe) | (state->m_irq_source & 1);
+ return (input_port_read(machine(), "SYS0") & 0xfe) | (m_irq_source & 1);
}
static WRITE8_DEVICE_HANDLER( eeprom_cs_w )
@@ -149,9 +148,9 @@ static WRITE8_DEVICE_HANDLER( eeprom_serial_w )
*
*************************************/
-static WRITE8_HANDLER( pang_bankswitch_w )
+WRITE8_MEMBER(mitchell_state::pang_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
/*************************************
@@ -160,32 +159,31 @@ static WRITE8_HANDLER( pang_bankswitch_w )
*
*************************************/
-static READ8_HANDLER( block_input_r )
+READ8_MEMBER(mitchell_state::block_input_r)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
static const char *const dialnames[] = { "DIAL1", "DIAL2" };
static const char *const portnames[] = { "IN1", "IN2" };
- if (state->m_dial_selected)
+ if (m_dial_selected)
{
- int delta = (input_port_read(space->machine(), dialnames[offset]) - state->m_dial[offset]) & 0xff;
+ int delta = (input_port_read(machine(), dialnames[offset]) - m_dial[offset]) & 0xff;
if (delta & 0x80)
{
delta = (-delta) & 0xff;
- if (state->m_dir[offset])
+ if (m_dir[offset])
{
/* don't report movement on a direction change, otherwise it will stutter */
- state->m_dir[offset] = 0;
+ m_dir[offset] = 0;
delta = 0;
}
}
else if (delta > 0)
{
- if (!state->m_dir[offset])
+ if (!m_dir[offset])
{
/* don't report movement on a direction change, otherwise it will stutter */
- state->m_dir[offset] = 1;
+ m_dir[offset] = 1;
delta = 0;
}
}
@@ -196,35 +194,33 @@ static READ8_HANDLER( block_input_r )
}
else
{
- int res = input_port_read(space->machine(), portnames[offset]) & 0xf7;
+ int res = input_port_read(machine(), portnames[offset]) & 0xf7;
- if (state->m_dir[offset])
+ if (m_dir[offset])
res |= 0x08;
return res;
}
}
-static WRITE8_HANDLER( block_dial_control_w )
+WRITE8_MEMBER(mitchell_state::block_dial_control_w)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
if (data == 0x08)
{
/* reset the dial counters */
- state->m_dial[0] = input_port_read(space->machine(), "DIAL1");
- state->m_dial[1] = input_port_read(space->machine(), "DIAL2");
+ m_dial[0] = input_port_read(machine(), "DIAL1");
+ m_dial[1] = input_port_read(machine(), "DIAL2");
}
else if (data == 0x80)
- state->m_dial_selected = 0;
+ m_dial_selected = 0;
else
- state->m_dial_selected = 1;
+ m_dial_selected = 1;
}
-static READ8_HANDLER( mahjong_input_r )
+READ8_MEMBER(mitchell_state::mahjong_input_r)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
int i;
static const char *const keynames[2][5] =
{
@@ -234,57 +230,54 @@ static READ8_HANDLER( mahjong_input_r )
for (i = 0; i < 5; i++)
{
- if (state->m_keymatrix & (0x80 >> i))
- return input_port_read(space->machine(), keynames[offset][i]);
+ if (m_keymatrix & (0x80 >> i))
+ return input_port_read(machine(), keynames[offset][i]);
}
return 0xff;
}
-static WRITE8_HANDLER( mahjong_input_select_w )
+WRITE8_MEMBER(mitchell_state::mahjong_input_select_w)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
- state->m_keymatrix = data;
+ m_keymatrix = data;
}
-static READ8_HANDLER( input_r )
+READ8_MEMBER(mitchell_state::input_r)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
static const char *const portnames[] = { "IN0", "IN1", "IN2" };
- switch (state->m_input_type)
+ switch (m_input_type)
{
case 0:
default:
- return input_port_read(space->machine(), portnames[offset]);
+ return input_port_read(machine(), portnames[offset]);
case 1: /* Mahjong games */
if (offset)
return mahjong_input_r(space, offset - 1);
else
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
break;
case 2: /* Block Block - dial control */
if (offset)
return block_input_r(space, offset - 1);
else
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
break;
case 3: /* Super Pang - simulate START 1 press to initialize EEPROM */
- return input_port_read(space->machine(), portnames[offset]);
+ return input_port_read(machine(), portnames[offset]);
}
}
-static WRITE8_HANDLER( input_w )
+WRITE8_MEMBER(mitchell_state::input_w)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
- switch (state->m_input_type)
+ switch (m_input_type)
{
case 0:
default:
- logerror("PC %04x: write %02x to port 01\n", cpu_get_pc(&space->device()), data);
+ logerror("PC %04x: write %02x to port 01\n", cpu_get_pc(&space.device()), data);
break;
case 1:
mahjong_input_select_w(space, offset, data);
@@ -324,12 +317,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mitchell_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(pang_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
- AM_RANGE(0x00, 0x02) AM_READ_LEGACY(input_r) /* The Mahjong games and Block Block need special input treatment */
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(input_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(pang_bankswitch_w) /* Code bank register */
+ AM_RANGE(0x00, 0x02) AM_READ(input_r) /* The Mahjong games and Block Block need special input treatment */
+ AM_RANGE(0x01, 0x01) AM_WRITE(input_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2413_data_port_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("ymsnd", ym2413_register_port_w)
- AM_RANGE(0x05, 0x05) AM_READ_LEGACY(pang_port5_r) AM_DEVWRITE("oki", okim6295_device, write)
+ 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_LEGACY(pang_video_bank_w) /* Video RAM bank register */
AM_RANGE(0x08, 0x08) AM_DEVWRITE_LEGACY("eeprom", eeprom_cs_w)
@@ -349,9 +342,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spangbl_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x02) AM_READ_LEGACY(input_r)
+ AM_RANGE(0x00, 0x02) AM_READ(input_r)
AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(pangbl_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(pang_bankswitch_w) /* Code bank register */
+ AM_RANGE(0x02, 0x02) AM_WRITE(pang_bankswitch_w) /* Code bank register */
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2413_data_port_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("ymsnd", ym2413_register_port_w)
AM_RANGE(0x05, 0x05) AM_READ_PORT("SYS0")
@@ -364,16 +357,15 @@ ADDRESS_MAP_END
#ifdef UNUSED_FUNCTION
-static WRITE8_HANDLER( spangbl_msm5205_data_w )
+WRITE8_MEMBER(mitchell_state::spangbl_msm5205_data_w)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
- state->m_sample_buffer = data;
+ m_sample_buffer = data;
}
#endif
static ADDRESS_MAP_START( spangbl_sound_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
-// AM_RANGE(0xec00, 0xec00) AM_WRITE_LEGACY(spangbl_msm5205_data_w )
+// AM_RANGE(0xec00, 0xec00) AM_WRITE(spangbl_msm5205_data_w )
AM_RANGE(0xf000, 0xf3ff) AM_RAM
ADDRESS_MAP_END
@@ -397,19 +389,18 @@ static ADDRESS_MAP_START( mstworld_sound_map, AS_PROGRAM, 8, mitchell_state )
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
-static WRITE8_HANDLER(mstworld_sound_w)
+WRITE8_MEMBER(mitchell_state::mstworld_sound_w)
{
- mitchell_state *state = space->machine().driver_data<mitchell_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
static ADDRESS_MAP_START( mstworld_io_map, AS_IO, 8, mitchell_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(mstworld_gfxctrl_w) /* Palette bank, layer enable, coin counters, more */
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
- AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE_LEGACY(pang_bankswitch_w) /* Code bank register */
- AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(mstworld_sound_w) /* write to sound cpu */
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_WRITE(pang_bankswitch_w) /* Code bank register */
+ AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW0") AM_WRITE(mstworld_sound_w) /* write to sound cpu */
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1") /* dips? */
AM_RANGE(0x05, 0x05) AM_READ_PORT("SYS0") /* special? */
AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2") /* dips? */
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index f24268c0769..3d8e4dc2b91 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -113,44 +113,42 @@ static WRITE8_DEVICE_HANDLER( adpcm_w )
/* End of ADPCM custom chip code */
-static READ8_HANDLER( keyboard_r )
+READ8_MEMBER(mjkjidai_state::keyboard_r)
{
- mjkjidai_state *state = space->machine().driver_data<mjkjidai_state>();
int res = 0x3f,i;
static const char *const keynames[] = { "PL2_1", "PL2_2", "PL2_3", "PL2_4", "PL2_5", "PL2_6", "PL1_1", "PL1_2", "PL1_3", "PL1_4", "PL1_5", "PL1_6" };
-// logerror("%04x: keyboard_r\n", cpu_get_pc(&space->device()));
+// logerror("%04x: keyboard_r\n", cpu_get_pc(&space.device()));
for (i = 0; i < 12; i++)
{
- if (~state->m_keyb & (1 << i))
+ if (~m_keyb & (1 << i))
{
- res = input_port_read(space->machine(), keynames[i]) & 0x3f;
+ res = input_port_read(machine(), keynames[i]) & 0x3f;
break;
}
}
- res |= (input_port_read(space->machine(), "IN3") & 0xc0);
+ res |= (input_port_read(machine(), "IN3") & 0xc0);
- if (state->m_nvram_init_count)
+ if (m_nvram_init_count)
{
- state->m_nvram_init_count--;
+ m_nvram_init_count--;
res &= 0xbf;
}
return res;
}
-static WRITE8_HANDLER( keyboard_select_w )
+WRITE8_MEMBER(mjkjidai_state::keyboard_select_w)
{
- mjkjidai_state *state = space->machine().driver_data<mjkjidai_state>();
-// logerror("%04x: keyboard_select %d = %02x\n",cpu_get_pc(&space->device()),offset,data);
+// logerror("%04x: keyboard_select %d = %02x\n",cpu_get_pc(&space.device()),offset,data);
switch (offset)
{
- case 0: state->m_keyb = (state->m_keyb & 0xff00) | (data); break;
- case 1: state->m_keyb = (state->m_keyb & 0x00ff) | (data << 8); break;
+ case 0: m_keyb = (m_keyb & 0xff00) | (data); break;
+ case 1: m_keyb = (m_keyb & 0x00ff) | (data << 8); break;
}
}
@@ -183,10 +181,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mjkjidai_io_map, AS_IO, 8, mjkjidai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(keyboard_r)
+ AM_RANGE(0x00, 0x00) AM_READ(keyboard_r)
AM_RANGE(0x01, 0x01) AM_READNOP // ???
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
- AM_RANGE(0x01, 0x02) AM_WRITE_LEGACY(keyboard_select_w)
+ AM_RANGE(0x01, 0x02) AM_WRITE(keyboard_select_w)
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(mjkjidai_ctrl_w) // rom bank, coin counter, flip screen etc
AM_RANGE(0x11, 0x11) AM_READ_PORT("IN0")
AM_RANGE(0x12, 0x12) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index fc6aabc56e9..caced910163 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -634,19 +634,19 @@ Notes:
#include "machine/nvram.h"
#include "includes/model1.h"
-static READ16_HANDLER( io_r )
+READ16_MEMBER(model1_state::io_r)
{
static const char *const analognames[] = { "AN0", "AN1", "AN2", "AN3", "AN4", "AN5", "AN6", "AN7" };
static const char *const inputnames[] = { "IN0", "IN1", "IN2" };
if(offset < 0x8)
- return input_port_read_safe(space->machine(), analognames[offset], 0x00);
+ return input_port_read_safe(machine(), analognames[offset], 0x00);
if(offset < 0x10)
{
offset -= 0x8;
if(offset < 3)
- return input_port_read(space->machine(), inputnames[offset]);
+ return input_port_read(machine(), inputnames[offset]);
return 0xff;
}
@@ -654,17 +654,17 @@ static READ16_HANDLER( io_r )
return 0xffff;
}
-static READ16_HANDLER( fifoin_status_r )
+READ16_MEMBER(model1_state::fifoin_status_r)
{
return 0xffff;
}
-static WRITE16_HANDLER( bank_w )
+WRITE16_MEMBER(model1_state::bank_w)
{
if(ACCESSING_BITS_0_7) {
switch(data & 0xf) {
case 0x1: // 100000-1fffff data roms banking
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() + 0x1000000 + 0x100000*((data >> 4) & 0xf));
+ memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x1000000 + 0x100000*((data >> 4) & 0xf));
logerror("BANK %x\n", 0x1000000 + 0x100000*((data >> 4) & 0xf));
break;
case 0x2: // 200000-2fffff data roms banking (unused, all known games have only one bank)
@@ -765,7 +765,7 @@ static MACHINE_RESET(model1_vr)
memset(state->m_to_68k, 0, sizeof(state->m_to_68k));
}
-static READ16_HANDLER( network_ctl_r )
+READ16_MEMBER(model1_state::network_ctl_r)
{
if(offset)
return 0x40;
@@ -773,100 +773,95 @@ static READ16_HANDLER( network_ctl_r )
return 0x00;
}
-static WRITE16_HANDLER( network_ctl_w )
+WRITE16_MEMBER(model1_state::network_ctl_w)
{
}
-static WRITE16_HANDLER(md1_w)
+WRITE16_MEMBER(model1_state::md1_w)
{
- model1_state *state = space->machine().driver_data<model1_state>();
- COMBINE_DATA(state->m_display_list1+offset);
+ COMBINE_DATA(m_display_list1+offset);
if(0 && offset)
return;
- if(1 && state->m_dump)
- logerror("TGP: md1_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, cpu_get_pc(&space->device()));
+ if(1 && m_dump)
+ logerror("TGP: md1_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, cpu_get_pc(&space.device()));
}
-static WRITE16_HANDLER(md0_w)
+WRITE16_MEMBER(model1_state::md0_w)
{
- model1_state *state = space->machine().driver_data<model1_state>();
- COMBINE_DATA(state->m_display_list0+offset);
+ COMBINE_DATA(m_display_list0+offset);
if(0 && offset)
return;
- if(1 && state->m_dump)
- logerror("TGP: md0_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, cpu_get_pc(&space->device()));
+ if(1 && m_dump)
+ logerror("TGP: md0_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, cpu_get_pc(&space.device()));
}
-static WRITE16_HANDLER(p_w)
+WRITE16_MEMBER(model1_state::p_w)
{
- UINT16 old = space->machine().generic.paletteram.u16[offset];
+ UINT16 old = machine().generic.paletteram.u16[offset];
paletteram16_xBBBBBGGGGGRRRRR_word_w(space, offset, data, mem_mask);
- if(0 && space->machine().generic.paletteram.u16[offset] != old)
- logerror("XVIDEO: p_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, cpu_get_pc(&space->device()));
+ if(0 && machine().generic.paletteram.u16[offset] != old)
+ logerror("XVIDEO: p_w %x, %04x @ %04x (%x)\n", offset, data, mem_mask, cpu_get_pc(&space.device()));
}
-static WRITE16_HANDLER(mr_w)
+WRITE16_MEMBER(model1_state::mr_w)
{
- model1_state *state = space->machine().driver_data<model1_state>();
- COMBINE_DATA(state->m_mr+offset);
+ COMBINE_DATA(m_mr+offset);
if(0 && offset == 0x1138/2)
- logerror("MR.w %x, %04x @ %04x (%x)\n", offset*2+0x500000, data, mem_mask, cpu_get_pc(&space->device()));
+ logerror("MR.w %x, %04x @ %04x (%x)\n", offset*2+0x500000, data, mem_mask, cpu_get_pc(&space.device()));
}
-static WRITE16_HANDLER(mr2_w)
+WRITE16_MEMBER(model1_state::mr2_w)
{
- model1_state *state = space->machine().driver_data<model1_state>();
- COMBINE_DATA(state->m_mr2+offset);
+ COMBINE_DATA(m_mr2+offset);
#if 0
if(0 && offset == 0x6e8/2) {
- logerror("MR.w %x, %04x @ %04x (%x)\n", offset*2+0x400000, data, mem_mask, cpu_get_pc(&space->device()));
+ logerror("MR.w %x, %04x @ %04x (%x)\n", offset*2+0x400000, data, mem_mask, cpu_get_pc(&space.device()));
}
if(offset/2 == 0x3680/4)
- logerror("MW f80[r25], %04x%04x (%x)\n", state->m_mr2[0x3680/2+1], state->m_mr2[0x3680/2], cpu_get_pc(&space->device()));
+ logerror("MW f80[r25], %04x%04x (%x)\n", m_mr2[0x3680/2+1], m_mr2[0x3680/2], cpu_get_pc(&space.device()));
if(offset/2 == 0x06ca/4)
- logerror("MW fca[r19], %04x%04x (%x)\n", state->m_mr2[0x06ca/2+1], state->m_mr2[0x06ca/2], cpu_get_pc(&space->device()));
+ logerror("MW fca[r19], %04x%04x (%x)\n", m_mr2[0x06ca/2+1], m_mr2[0x06ca/2], cpu_get_pc(&space.device()));
if(offset/2 == 0x1eca/4)
- logerror("MW fca[r22], %04x%04x (%x)\n", state->m_mr2[0x1eca/2+1], state->m_mr2[0x1eca/2], cpu_get_pc(&space->device()));
+ logerror("MW fca[r22], %04x%04x (%x)\n", m_mr2[0x1eca/2+1], m_mr2[0x1eca/2], cpu_get_pc(&space.device()));
#endif
// wingwar scene position, pc=e1ce -> d735
if(offset/2 == 0x1f08/4)
- logerror("MW 8[r10], %f (%x)\n", *(float *)(state->m_mr2+0x1f08/2), cpu_get_pc(&space->device()));
+ logerror("MW 8[r10], %f (%x)\n", *(float *)(m_mr2+0x1f08/2), cpu_get_pc(&space.device()));
if(offset/2 == 0x1f0c/4)
- logerror("MW c[r10], %f (%x)\n", *(float *)(state->m_mr2+0x1f0c/2), cpu_get_pc(&space->device()));
+ logerror("MW c[r10], %f (%x)\n", *(float *)(m_mr2+0x1f0c/2), cpu_get_pc(&space.device()));
if(offset/2 == 0x1f10/4)
- logerror("MW 10[r10], %f (%x)\n", *(float *)(state->m_mr2+0x1f10/2), cpu_get_pc(&space->device()));
+ logerror("MW 10[r10], %f (%x)\n", *(float *)(m_mr2+0x1f10/2), cpu_get_pc(&space.device()));
}
-static READ16_HANDLER( snd_68k_ready_r )
+READ16_MEMBER(model1_state::snd_68k_ready_r)
{
- int sr = cpu_get_reg(space->machine().device("audiocpu"), M68K_SR);
+ int sr = cpu_get_reg(machine().device("audiocpu"), M68K_SR);
if ((sr & 0x0700) > 0x0100)
{
- device_spin_until_time(&space->device(), attotime::from_usec(40));
+ device_spin_until_time(&space.device(), attotime::from_usec(40));
return 0; // not ready yet, interrupts disabled
}
return 0xff;
}
-static WRITE16_HANDLER( snd_latch_to_68k_w )
+WRITE16_MEMBER(model1_state::snd_latch_to_68k_w)
{
- model1_state *state = space->machine().driver_data<model1_state>();
- state->m_to_68k[state->m_fifo_wptr] = data;
- state->m_fifo_wptr++;
- if (state->m_fifo_wptr >= ARRAY_LENGTH(state->m_to_68k)) state->m_fifo_wptr = 0;
+ m_to_68k[m_fifo_wptr] = data;
+ m_fifo_wptr++;
+ if (m_fifo_wptr >= ARRAY_LENGTH(m_to_68k)) m_fifo_wptr = 0;
- if (state->m_dsbz80 != NULL)
+ if (m_dsbz80 != NULL)
{
- state->m_dsbz80->latch_w(*space, 0, data);
+ m_dsbz80->latch_w(*&space, 0, data);
}
// signal the 68000 that there's data waiting
- cputag_set_input_line(space->machine(), "audiocpu", 2, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 2, HOLD_LINE);
// give the 68k time to reply
- device_spin_until_time(&space->device(), attotime::from_usec(40));
+ device_spin_until_time(&space.device(), attotime::from_usec(40));
}
static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state )
@@ -874,11 +869,11 @@ static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK("bank1")
AM_RANGE(0x200000, 0x2fffff) AM_ROM
- AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(mr2_w) AM_BASE(m_mr2)
- AM_RANGE(0x500000, 0x53ffff) AM_RAM_WRITE_LEGACY(mr_w) AM_BASE(m_mr)
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(mr2_w) AM_BASE(m_mr2)
+ AM_RANGE(0x500000, 0x53ffff) AM_RAM_WRITE(mr_w) AM_BASE(m_mr)
- AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE_LEGACY(md0_w) AM_BASE(m_display_list0)
- AM_RANGE(0x610000, 0x61ffff) AM_RAM_WRITE_LEGACY(md1_w) AM_BASE(m_display_list1)
+ AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE(md0_w) AM_BASE(m_display_list0)
+ AM_RANGE(0x610000, 0x61ffff) AM_RAM_WRITE(md1_w) AM_BASE(m_display_list1)
AM_RANGE(0x680000, 0x680003) AM_READWRITE_LEGACY(model1_listctl_r, model1_listctl_w)
AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tile", segas24_tile, tile_r, tile_w)
@@ -888,25 +883,25 @@ static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch
AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w)
- AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE_LEGACY(p_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_BASE(m_color_xlat)
- AM_RANGE(0xc00000, 0xc0003f) AM_READ_LEGACY(io_r) AM_WRITENOP
+ AM_RANGE(0xc00000, 0xc0003f) AM_READ(io_r) AM_WRITENOP
- AM_RANGE(0xc00040, 0xc00043) AM_READWRITE_LEGACY(network_ctl_r, network_ctl_w)
+ AM_RANGE(0xc00040, 0xc00043) AM_READWRITE(network_ctl_r, network_ctl_w)
AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(snd_latch_to_68k_w)
- AM_RANGE(0xc40002, 0xc40003) AM_READ_LEGACY(snd_68k_ready_r)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(snd_latch_to_68k_w)
+ AM_RANGE(0xc40002, 0xc40003) AM_READ(snd_68k_ready_r)
AM_RANGE(0xd00000, 0xd00001) AM_READWRITE_LEGACY(model1_tgp_copro_adr_r, model1_tgp_copro_adr_w)
AM_RANGE(0xd20000, 0xd20003) AM_WRITE_LEGACY(model1_tgp_copro_ram_w )
AM_RANGE(0xd80000, 0xd80003) AM_WRITE_LEGACY(model1_tgp_copro_w) AM_MIRROR(0x10)
- AM_RANGE(0xdc0000, 0xdc0003) AM_READ_LEGACY(fifoin_status_r)
+ AM_RANGE(0xdc0000, 0xdc0003) AM_READ(fifoin_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // Watchdog? IRQ ack? Always 0x20, usually on irq
- AM_RANGE(0xe00004, 0xe00005) AM_WRITE_LEGACY(bank_w)
+ AM_RANGE(0xe00004, 0xe00005) AM_WRITE(bank_w)
AM_RANGE(0xe0000c, 0xe0000f) AM_WRITENOP
AM_RANGE(0xfc0000, 0xffffff) AM_ROM
@@ -922,11 +917,11 @@ static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x100000, 0x1fffff) AM_ROMBANK("bank1")
AM_RANGE(0x200000, 0x2fffff) AM_ROM
- AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(mr2_w) AM_BASE(m_mr2)
- AM_RANGE(0x500000, 0x53ffff) AM_RAM_WRITE_LEGACY(mr_w) AM_BASE(m_mr)
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE(mr2_w) AM_BASE(m_mr2)
+ AM_RANGE(0x500000, 0x53ffff) AM_RAM_WRITE(mr_w) AM_BASE(m_mr)
- AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE_LEGACY(md0_w) AM_BASE(m_display_list0)
- AM_RANGE(0x610000, 0x61ffff) AM_RAM_WRITE_LEGACY(md1_w) AM_BASE(m_display_list1)
+ AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE(md0_w) AM_BASE(m_display_list0)
+ AM_RANGE(0x610000, 0x61ffff) AM_RAM_WRITE(md1_w) AM_BASE(m_display_list1)
AM_RANGE(0x680000, 0x680003) AM_READWRITE_LEGACY(model1_listctl_r, model1_listctl_w)
AM_RANGE(0x700000, 0x70ffff) AM_DEVREADWRITE("tile", segas24_tile, tile_r, tile_w)
@@ -936,25 +931,25 @@ static ADDRESS_MAP_START( model1_vr_mem, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x770000, 0x770001) AM_WRITENOP // Video synchronization switch
AM_RANGE(0x780000, 0x7fffff) AM_DEVREADWRITE("tile", segas24_tile, char_r, char_w)
- AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE_LEGACY(p_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE(p_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x910000, 0x91bfff) AM_RAM AM_BASE(m_color_xlat)
- AM_RANGE(0xc00000, 0xc0003f) AM_READ_LEGACY(io_r) AM_WRITENOP
+ AM_RANGE(0xc00000, 0xc0003f) AM_READ(io_r) AM_WRITENOP
- AM_RANGE(0xc00040, 0xc00043) AM_READWRITE_LEGACY(network_ctl_r, network_ctl_w)
+ AM_RANGE(0xc00040, 0xc00043) AM_READWRITE(network_ctl_r, network_ctl_w)
AM_RANGE(0xc00200, 0xc002ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(snd_latch_to_68k_w)
- AM_RANGE(0xc40002, 0xc40003) AM_READ_LEGACY(snd_68k_ready_r)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(snd_latch_to_68k_w)
+ AM_RANGE(0xc40002, 0xc40003) AM_READ(snd_68k_ready_r)
AM_RANGE(0xd00000, 0xd00001) AM_READWRITE_LEGACY(model1_tgp_vr_adr_r, model1_tgp_vr_adr_w)
AM_RANGE(0xd20000, 0xd20003) AM_WRITE_LEGACY(model1_vr_tgp_ram_w )
AM_RANGE(0xd80000, 0xd80003) AM_WRITE_LEGACY(model1_vr_tgp_w) AM_MIRROR(0x10)
- AM_RANGE(0xdc0000, 0xdc0003) AM_READ_LEGACY(fifoin_status_r)
+ AM_RANGE(0xdc0000, 0xdc0003) AM_READ(fifoin_status_r)
AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // Watchdog? IRQ ack? Always 0x20, usually on irq
- AM_RANGE(0xe00004, 0xe00005) AM_WRITE_LEGACY(bank_w)
+ AM_RANGE(0xe00004, 0xe00005) AM_WRITE(bank_w)
AM_RANGE(0xe0000c, 0xe0000f) AM_WRITENOP
AM_RANGE(0xfc0000, 0xffffff) AM_ROM
@@ -965,20 +960,19 @@ static ADDRESS_MAP_START( model1_vr_io, AS_IO, 16, model1_state )
AM_RANGE(0xd80000, 0xd80003) AM_READ_LEGACY(model1_vr_tgp_r)
ADDRESS_MAP_END
-static READ16_HANDLER( m1_snd_68k_latch_r )
+READ16_MEMBER(model1_state::m1_snd_68k_latch_r)
{
- model1_state *state = space->machine().driver_data<model1_state>();
UINT16 retval;
- retval = state->m_to_68k[state->m_fifo_rptr];
+ retval = m_to_68k[m_fifo_rptr];
- state->m_fifo_rptr++;
- if (state->m_fifo_rptr >= ARRAY_LENGTH(state->m_to_68k)) state->m_fifo_rptr = 0;
+ m_fifo_rptr++;
+ if (m_fifo_rptr >= ARRAY_LENGTH(m_to_68k)) m_fifo_rptr = 0;
return retval;
}
-static READ16_HANDLER( m1_snd_v60_ready_r )
+READ16_MEMBER(model1_state::m1_snd_v60_ready_r)
{
return 1;
}
@@ -988,18 +982,18 @@ static WRITE16_DEVICE_HANDLER( m1_snd_mpcm_bnk_w )
multipcm_set_bank(device, 0x100000 * (data & 3), 0x100000 * (data & 3));
}
-static WRITE16_HANDLER( m1_snd_68k_latch1_w )
+WRITE16_MEMBER(model1_state::m1_snd_68k_latch1_w)
{
}
-static WRITE16_HANDLER( m1_snd_68k_latch2_w )
+WRITE16_MEMBER(model1_state::m1_snd_68k_latch2_w)
{
}
static ADDRESS_MAP_START( model1_snd, AS_PROGRAM, 16, model1_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
- AM_RANGE(0xc20000, 0xc20001) AM_READWRITE_LEGACY(m1_snd_68k_latch_r, m1_snd_68k_latch1_w )
- AM_RANGE(0xc20002, 0xc20003) AM_READWRITE_LEGACY(m1_snd_v60_ready_r, m1_snd_68k_latch2_w )
+ AM_RANGE(0xc20000, 0xc20001) AM_READWRITE(m1_snd_68k_latch_r, m1_snd_68k_latch1_w )
+ AM_RANGE(0xc20002, 0xc20003) AM_READWRITE(m1_snd_v60_ready_r, m1_snd_68k_latch2_w )
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 )
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index 79b2f3c5871..32b3afc74b7 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -47,9 +47,9 @@ Stephh's notes (based on the game Z80 code and some tests) :
#include "includes/momoko.h"
-static WRITE8_HANDLER( momoko_bg_read_bank_w )
+WRITE8_MEMBER(momoko_state::momoko_bg_read_bank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x1f);
+ memory_set_bank(machine(), "bank1", data & 0x1f);
}
/****************************************************************************/
@@ -73,7 +73,7 @@ static ADDRESS_MAP_START( momoko_map, AS_PROGRAM, 8, momoko_state )
AM_RANGE(0xf000, 0xffff) AM_ROMBANK("bank1")
AM_RANGE(0xf000, 0xf001) AM_WRITE_LEGACY(momoko_bg_scrolly_w) AM_BASE(m_bg_scrolly)
AM_RANGE(0xf002, 0xf003) AM_WRITE_LEGACY(momoko_bg_scrollx_w) AM_BASE(m_bg_scrollx)
- AM_RANGE(0xf004, 0xf004) AM_WRITE_LEGACY(momoko_bg_read_bank_w)
+ AM_RANGE(0xf004, 0xf004) AM_WRITE(momoko_bg_read_bank_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(momoko_bg_select_w)
AM_RANGE(0xf007, 0xf007) AM_WRITE_LEGACY(momoko_bg_priority_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index ac44cb87e81..f0a9a0db094 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -65,13 +65,12 @@ static const eeprom_interface eeprom_intf =
"0100110000000" /* unlock command */
};
-static READ16_HANDLER( control2_r )
+READ16_MEMBER(moo_state::control2_r)
{
- moo_state *state = space->machine().driver_data<moo_state>();
- return state->m_cur_control2;
+ return m_cur_control2;
}
-static WRITE16_HANDLER( control2_w )
+WRITE16_MEMBER(moo_state::control2_w)
{
/* bit 0 is data */
/* bit 1 is cs (active low) */
@@ -81,15 +80,14 @@ static WRITE16_HANDLER( control2_w )
/* bit 10 is watchdog */
/* bit 11 is enable irq 4 (unconfirmed) */
- moo_state *state = space->machine().driver_data<moo_state>();
- COMBINE_DATA(&state->m_cur_control2);
+ COMBINE_DATA(&m_cur_control2);
- input_port_write(space->machine(), "EEPROMOUT", state->m_cur_control2, 0xff);
+ input_port_write(machine(), "EEPROMOUT", m_cur_control2, 0xff);
if (data & 0x100)
- k053246_set_objcha_line(state->m_k053246, ASSERT_LINE);
+ k053246_set_objcha_line(m_k053246, ASSERT_LINE);
else
- k053246_set_objcha_line(state->m_k053246, CLEAR_LINE);
+ k053246_set_objcha_line(m_k053246, CLEAR_LINE);
}
@@ -155,7 +153,7 @@ static INTERRUPT_GEN( moobl_interrupt )
device_set_input_line(device, 5, HOLD_LINE);
}
-static WRITE16_HANDLER( sound_cmd1_w )
+WRITE16_MEMBER(moo_state::sound_cmd1_w)
{
if ((data & 0x00ff0000) == 0)
{
@@ -164,26 +162,25 @@ static WRITE16_HANDLER( sound_cmd1_w )
}
}
-static WRITE16_HANDLER( sound_cmd2_w )
+WRITE16_MEMBER(moo_state::sound_cmd2_w)
{
if ((data & 0x00ff0000) == 0)
soundlatch2_w(space, 0, data & 0xff);
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(moo_state::sound_irq_w)
{
- moo_state *state = space->machine().driver_data<moo_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(moo_state::sound_status_r)
{
return soundlatch3_r(space, 0);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(moo_state::sound_bankswitch_w)
{
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("soundcpu")->base() + 0x10000 + (data&0xf)*0x4000);
+ memory_set_bankptr(machine(), "bank1", machine().region("soundcpu")->base() + 0x10000 + (data&0xf)*0x4000);
}
@@ -191,57 +188,54 @@ static WRITE8_HANDLER( sound_bankswitch_w )
/* the interface with the 053247 is weird. The chip can address only 0x1000 bytes */
/* of RAM, but they put 0x10000 there. The CPU can access them all. */
-static READ16_HANDLER( K053247_scattered_word_r )
+READ16_MEMBER(moo_state::K053247_scattered_word_r)
{
- moo_state *state = space->machine().driver_data<moo_state>();
if (offset & 0x0078)
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
else
{
offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4);
- return k053247_word_r(state->m_k053246, offset, mem_mask);
+ return k053247_word_r(m_k053246, offset, mem_mask);
}
}
-static WRITE16_HANDLER( K053247_scattered_word_w )
+WRITE16_MEMBER(moo_state::K053247_scattered_word_w)
{
- moo_state *state = space->machine().driver_data<moo_state>();
if (offset & 0x0078)
- COMBINE_DATA(state->m_spriteram + offset);
+ COMBINE_DATA(m_spriteram + offset);
else
{
offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4);
- k053247_word_w(state->m_k053246, offset, data, mem_mask);
+ k053247_word_w(m_k053246, offset, data, mem_mask);
}
}
#endif
-static WRITE16_HANDLER( moo_prot_w )
+WRITE16_MEMBER(moo_state::moo_prot_w)
{
- moo_state *state = space->machine().driver_data<moo_state>();
UINT32 src1, src2, dst, length, a, b, res;
- COMBINE_DATA(&state->m_protram[offset]);
+ COMBINE_DATA(&m_protram[offset]);
if (offset == 0xc) // trigger operation
{
- src1 = (state->m_protram[1] & 0xff) << 16 | state->m_protram[0];
- src2 = (state->m_protram[3] & 0xff) << 16 | state->m_protram[2];
- dst = (state->m_protram[5] & 0xff) << 16 | state->m_protram[4];
- length = state->m_protram[0xf];
+ src1 = (m_protram[1] & 0xff) << 16 | m_protram[0];
+ src2 = (m_protram[3] & 0xff) << 16 | m_protram[2];
+ dst = (m_protram[5] & 0xff) << 16 | m_protram[4];
+ length = m_protram[0xf];
while (length)
{
- a = space->read_word(src1);
- b = space->read_word(src2);
+ a = space.read_word(src1);
+ b = space.read_word(src2);
res = a + 2 * b;
- space->write_word(dst, res);
+ space.write_word(dst, res);
src1 += 2;
src2 += 2;
@@ -267,19 +261,19 @@ static ADDRESS_MAP_START( moo_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x0c4000, 0x0c4001) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
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(0x0ce000, 0x0ce01f) AM_WRITE_LEGACY(moo_prot_w)
+ AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff) /* CCU regs (ignored) */
- AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x0d6014, 0x0d6015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
AM_RANGE(0x0d6000, 0x0d601f) AM_RAM /* sound regs fall through */
AM_RANGE(0x0d8000, 0x0d8007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w) /* VSCCS regs */
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
AM_RANGE(0x0dc002, 0x0dc003) AM_READ_PORT("IN1")
- AM_RANGE(0x0de000, 0x0de001) AM_READWRITE_LEGACY(control2_r, control2_w)
+ AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r, control2_w)
AM_RANGE(0x100000, 0x17ffff) AM_ROM
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE(m_workram) /* Work RAM */
AM_RANGE(0x190000, 0x19ffff) AM_RAM AM_BASE(m_spriteram) /* Sprite RAM */
@@ -312,7 +306,7 @@ static ADDRESS_MAP_START( moobl_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
AM_RANGE(0x0dc002, 0x0dc003) AM_READ_PORT("IN1")
- AM_RANGE(0x0de000, 0x0de001) AM_READWRITE_LEGACY(control2_r, control2_w)
+ AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r, control2_w)
AM_RANGE(0x100000, 0x17ffff) AM_ROM
AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_BASE(m_workram) /* Work RAM */
AM_RANGE(0x190000, 0x19ffff) AM_RAM AM_BASE(m_spriteram) /* Sprite RAM */
@@ -332,20 +326,20 @@ static ADDRESS_MAP_START( bucky_map, AS_PROGRAM, 16, moo_state )
AM_RANGE(0x0c4000, 0x0c4001) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
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(0x0ce000, 0x0ce01f) AM_WRITE_LEGACY(moo_prot_w)
+ AM_RANGE(0x0ce000, 0x0ce01f) AM_WRITE(moo_prot_w)
AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff) /* CCU regs (ignored) */
AM_RANGE(0x0d2000, 0x0d20ff) AM_DEVREADWRITE_LEGACY("k054000", k054000_lsb_r, k054000_lsb_w)
- AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x0d6014, 0x0d6015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
AM_RANGE(0x0d6000, 0x0d601f) AM_RAM /* sound regs fall through */
AM_RANGE(0x0d8000, 0x0d8007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w) /* VSCCS regs */
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1_P3")
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2_P4")
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("IN0")
AM_RANGE(0x0dc002, 0x0dc003) AM_READ_PORT("IN1")
- AM_RANGE(0x0de000, 0x0de001) AM_READWRITE_LEGACY(control2_r, control2_w)
+ AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r, control2_w)
AM_RANGE(0x180000, 0x181fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) /* Graphic planes */
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w) /* Graphic planes mirror */
AM_RANGE(0x184000, 0x187fff) AM_RAM /* extra tile RAM? */
@@ -370,7 +364,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, moo_state )
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ_LEGACY(soundlatch2_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( moo )
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index d0d12c8c483..7fd2b919839 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -12,14 +12,13 @@
#include "sound/2203intf.h"
#include "includes/mosaic.h"
-static WRITE8_HANDLER( protection_w )
+WRITE8_MEMBER(mosaic_state::protection_w)
{
- mosaic_state *state = space->machine().driver_data<mosaic_state>();
if (!BIT(data, 7))
{
/* simply increment given value */
- state->m_prot_val = (data + 1) << 8;
+ m_prot_val = (data + 1) << 8;
}
else
{
@@ -34,27 +33,25 @@ static WRITE8_HANDLER( protection_w )
0x411f, 0x473f
};
- state->m_prot_val = jumptable[data & 0x7f];
+ m_prot_val = jumptable[data & 0x7f];
}
}
-static READ8_HANDLER( protection_r )
+READ8_MEMBER(mosaic_state::protection_r)
{
- mosaic_state *state = space->machine().driver_data<mosaic_state>();
- int res = (state->m_prot_val >> 8) & 0xff;
+ int res = (m_prot_val >> 8) & 0xff;
- logerror("%06x: protection_r %02x\n", cpu_get_pc(&space->device()), res);
+ logerror("%06x: protection_r %02x\n", cpu_get_pc(&space.device()), res);
- state->m_prot_val <<= 8;
+ m_prot_val <<= 8;
return res;
}
-static WRITE8_HANDLER( gfire2_protection_w )
+WRITE8_MEMBER(mosaic_state::gfire2_protection_w)
{
- mosaic_state *state = space->machine().driver_data<mosaic_state>();
- logerror("%06x: protection_w %02x\n", cpu_get_pc(&space->device()), data);
+ logerror("%06x: protection_w %02x\n", cpu_get_pc(&space.device()), data);
switch(data)
{
@@ -62,29 +59,28 @@ static WRITE8_HANDLER( gfire2_protection_w )
/* written repeatedly; no effect?? */
break;
case 0x02:
- state->m_prot_val = 0x0a10;
+ m_prot_val = 0x0a10;
break;
case 0x04:
- state->m_prot_val = 0x0a15;
+ m_prot_val = 0x0a15;
break;
case 0x06:
- state->m_prot_val = 0x80e3;
+ m_prot_val = 0x80e3;
break;
case 0x08:
- state->m_prot_val = 0x0965;
+ m_prot_val = 0x0965;
break;
case 0x0a:
- state->m_prot_val = 0x04b4;
+ m_prot_val = 0x04b4;
break;
}
}
-static READ8_HANDLER( gfire2_protection_r )
+READ8_MEMBER(mosaic_state::gfire2_protection_r)
{
- mosaic_state *state = space->machine().driver_data<mosaic_state>();
- int res = state->m_prot_val & 0xff;
+ int res = m_prot_val & 0xff;
- state->m_prot_val >>= 8;
+ m_prot_val >>= 8;
return res;
}
@@ -112,7 +108,7 @@ static ADDRESS_MAP_START( mosaic_io_map, AS_IO, 8, mosaic_state )
AM_RANGE(0x00, 0x3f) AM_WRITENOP /* Z180 internal registers */
AM_RANGE(0x30, 0x30) AM_READNOP /* Z180 internal registers */
AM_RANGE(0x70, 0x71) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
- AM_RANGE(0x72, 0x72) AM_READWRITE_LEGACY(protection_r, protection_w)
+ AM_RANGE(0x72, 0x72) AM_READWRITE(protection_r, protection_w)
AM_RANGE(0x74, 0x74) AM_READ_PORT("P1")
AM_RANGE(0x76, 0x76) AM_READ_PORT("P2")
ADDRESS_MAP_END
@@ -122,7 +118,7 @@ static ADDRESS_MAP_START( gfire2_io_map, AS_IO, 8, mosaic_state )
AM_RANGE(0x00, 0x3f) AM_WRITENOP /* Z180 internal registers */
AM_RANGE(0x30, 0x30) AM_READNOP /* Z180 internal registers */
AM_RANGE(0x70, 0x71) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
- AM_RANGE(0x72, 0x72) AM_READWRITE_LEGACY(gfire2_protection_r, gfire2_protection_w)
+ AM_RANGE(0x72, 0x72) AM_READWRITE(gfire2_protection_r, gfire2_protection_w)
AM_RANGE(0x74, 0x74) AM_READ_PORT("P1")
AM_RANGE(0x76, 0x76) AM_READ_PORT("P2")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index dc7fbabadf4..f7c2e3912f3 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -19,11 +19,10 @@
/* Mouser has external masking circuitry around
* the NMI input on the main CPU */
-static WRITE8_HANDLER( mouser_nmi_enable_w )
+WRITE8_MEMBER(mouser_state::mouser_nmi_enable_w)
{
- mouser_state *state = space->machine().driver_data<mouser_state>();
//logerror("nmi_enable %02x\n", data);
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
}
static INTERRUPT_GEN( mouser_nmi_interrupt )
@@ -36,26 +35,23 @@ static INTERRUPT_GEN( mouser_nmi_interrupt )
/* Sound CPU interrupted on write */
-static WRITE8_HANDLER( mouser_sound_interrupt_w )
+WRITE8_MEMBER(mouser_state::mouser_sound_interrupt_w)
{
- mouser_state *state = space->machine().driver_data<mouser_state>();
//logerror("int %02x\n", data);
- state->m_sound_byte = data;
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE);
+ m_sound_byte = data;
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
}
-static READ8_HANDLER( mouser_sound_byte_r )
+READ8_MEMBER(mouser_state::mouser_sound_byte_r)
{
- mouser_state *state = space->machine().driver_data<mouser_state>();
//logerror("sound r\n");
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE);
- return state->m_sound_byte;
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
+ return m_sound_byte;
}
-static WRITE8_HANDLER( mouser_sound_nmi_clear_w )
+WRITE8_MEMBER(mouser_state::mouser_sound_nmi_clear_w)
{
- mouser_state *state = space->machine().driver_data<mouser_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
}
static INTERRUPT_GEN( mouser_sound_nmi_assert )
@@ -72,20 +68,20 @@ static ADDRESS_MAP_START( mouser_map, AS_PROGRAM, 8, mouser_state )
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0x9800, 0x9cff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x9c00, 0x9fff) AM_RAM AM_BASE(m_colorram)
- AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE_LEGACY(mouser_nmi_enable_w) /* bit 0 = NMI Enable */
+ AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1") AM_WRITE(mouser_nmi_enable_w) /* bit 0 = NMI Enable */
AM_RANGE(0xa001, 0xa001) AM_WRITE_LEGACY(mouser_flip_screen_x_w)
AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(mouser_flip_screen_y_w)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW")
- AM_RANGE(0xb800, 0xb800) AM_READ_PORT("P2") AM_WRITE_LEGACY(mouser_sound_interrupt_w) /* byte to sound cpu */
+ AM_RANGE(0xb800, 0xb800) AM_READ_PORT("P2") AM_WRITE(mouser_sound_interrupt_w) /* byte to sound cpu */
ADDRESS_MAP_END
static ADDRESS_MAP_START( mouser_sound_map, AS_PROGRAM, 8, mouser_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
- AM_RANGE(0x3000, 0x3000) AM_READ_LEGACY(mouser_sound_byte_r)
- AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(mouser_sound_nmi_clear_w)
+ AM_RANGE(0x3000, 0x3000) AM_READ(mouser_sound_byte_r)
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(mouser_sound_nmi_clear_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mouser_sound_io_map, AS_IO, 8, mouser_state )
diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c
index 8f2b9649fb5..9e87e578039 100644
--- a/src/mame/drivers/mpu4.c
+++ b/src/mame/drivers/mpu4.c
@@ -517,27 +517,25 @@ However, there is no evidence to suggest this was ever implemented.
The controls for it exist however, in the form of the Soundboard PIA CB2 pin, which is
used in some cabinets instead of the main control.
*/
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(mpu4_state::bankswitch_w)
{
- mpu4_state *state = space->machine().driver_data<mpu4_state>();
// printf("bank %02x\n", data);
- state->m_pageval = (data & 0x03);
- memory_set_bank(space->machine(), "bank1", (state->m_pageval + (state->m_pageset ? 4 : 0)) & 0x07);
+ m_pageval = (data & 0x03);
+ memory_set_bank(machine(), "bank1", (m_pageval + (m_pageset ? 4 : 0)) & 0x07);
}
-static READ8_HANDLER( bankswitch_r )
+READ8_MEMBER(mpu4_state::bankswitch_r)
{
- return memory_get_bank(space->machine(), "bank1");
+ return memory_get_bank(machine(), "bank1");
}
-static WRITE8_HANDLER( bankset_w )
+WRITE8_MEMBER(mpu4_state::bankset_w)
{
- mpu4_state *state = space->machine().driver_data<mpu4_state>();
- state->m_pageval = (data - 2);//writes 2 and 3, to represent 0 and 1 - a hangover from the half page design?
- memory_set_bank(space->machine(), "bank1", (state->m_pageval + (state->m_pageset ? 4 : 0)) & 0x07);
+ m_pageval = (data - 2);//writes 2 and 3, to represent 0 and 1 - a hangover from the half page design?
+ memory_set_bank(machine(), "bank1", (m_pageval + (m_pageset ? 4 : 0)) & 0x07);
}
@@ -2357,15 +2355,14 @@ there are again fixed call values.
*/
-static WRITE8_HANDLER( characteriser_w )
+WRITE8_MEMBER(mpu4_state::characteriser_w)
{
- mpu4_state *state = space->machine().driver_data<mpu4_state>();
int x;
int call=data;
- LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X", cpu_get_previouspc(&space->device()),offset,data));
- if (!state->m_current_chr_table)
+ LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X", cpu_get_previouspc(&space.device()),offset,data));
+ if (!m_current_chr_table)
{
- logerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(&space->device()));
+ logerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(&space.device()));
return;
}
@@ -2376,16 +2373,16 @@ static WRITE8_HANDLER( characteriser_w )
{
if (call == 0)
{
- state->m_prot_col = 0;
+ m_prot_col = 0;
}
else
{
- for (x = state->m_prot_col; x < 64; x++)
+ for (x = m_prot_col; x < 64; x++)
{
- if (state->m_current_chr_table[(x)].call == call)
+ if (m_current_chr_table[(x)].call == call)
{
- state->m_prot_col = x;
- LOG_CHR(("Characteriser find column %02X\n",state->m_prot_col));
+ m_prot_col = x;
+ LOG_CHR(("Characteriser find column %02X\n",m_prot_col));
break;
}
}
@@ -2399,47 +2396,46 @@ static WRITE8_HANDLER( characteriser_w )
// Rather than the search strategy, we can map the calls directly here. Note that they are hex versions of the square number series
{
case 0x00:
- state->m_lamp_col = 0;
+ m_lamp_col = 0;
break;
case 0x01:
- state->m_lamp_col = 1;
+ m_lamp_col = 1;
break;
case 0x04:
- state->m_lamp_col = 2;
+ m_lamp_col = 2;
break;
case 0x09:
- state->m_lamp_col = 3;
+ m_lamp_col = 3;
break;
case 0x10:
- state->m_lamp_col = 4;
+ m_lamp_col = 4;
break;
case 0x19:
- state->m_lamp_col = 5;
+ m_lamp_col = 5;
break;
case 0x24:
- state->m_lamp_col = 6;
+ m_lamp_col = 6;
break;
case 0x31:
- state->m_lamp_col = 7;
+ m_lamp_col = 7;
break;
}
- LOG_CHR(("Characteriser find 2 column %02X\n",state->m_lamp_col));
+ LOG_CHR(("Characteriser find 2 column %02X\n",m_lamp_col));
}
}
-static READ8_HANDLER( characteriser_r )
+READ8_MEMBER(mpu4_state::characteriser_r)
{
- mpu4_state *state = space->machine().driver_data<mpu4_state>();
- if (!state->m_current_chr_table)
+ if (!m_current_chr_table)
{
- logerror("No Characteriser Table @ %04x", cpu_get_previouspc(&space->device()));
+ logerror("No Characteriser Table @ %04x", cpu_get_previouspc(&space.device()));
/* a cheat ... many early games use a standard check */
- int addr = cpu_get_reg(&space->device(), M6809_X);
+ int addr = cpu_get_reg(&space.device(), M6809_X);
if ((addr>=0x800) && (addr<=0xfff)) return 0x00; // prevent recursion, only care about ram/rom areas for this cheat.
- UINT8 ret = space->read_byte(addr);
+ UINT8 ret = space.read_byte(addr);
logerror(" (returning %02x)",ret);
logerror("\n");
@@ -2450,13 +2446,13 @@ static READ8_HANDLER( characteriser_r )
LOG_CHR(("Characteriser read offset %02X \n",offset));
if (offset == 0)
{
- LOG_CHR(("Characteriser read data %02X \n",state->m_current_chr_table[state->m_prot_col].response));
- return state->m_current_chr_table[state->m_prot_col].response;
+ LOG_CHR(("Characteriser read data %02X \n",m_current_chr_table[m_prot_col].response));
+ return m_current_chr_table[m_prot_col].response;
}
if (offset == 3)
{
- LOG_CHR(("Characteriser read data off 3 %02X \n",state->m_current_chr_table[state->m_lamp_col+64].response));
- return state->m_current_chr_table[state->m_lamp_col+64].response;
+ LOG_CHR(("Characteriser read data off 3 %02X \n",m_current_chr_table[m_lamp_col+64].response));
+ return m_current_chr_table[m_lamp_col+64].response;
}
return 0;
}
@@ -2499,58 +2495,56 @@ and two holding the appropriate call and response pairs for the two stages of op
*/
-static WRITE8_HANDLER( bwb_characteriser_w )
+WRITE8_MEMBER(mpu4_state::bwb_characteriser_w)
{
- mpu4_state *state = space->machine().driver_data<mpu4_state>();
int x;
int call=data;
- LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X \n", cpu_get_previouspc(&space->device()),offset,data));
- if (!state->m_current_chr_table)
- fatalerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(&space->device()));
+ LOG_CHR_FULL(("%04x Characteriser write offset %02X data %02X \n", cpu_get_previouspc(&space.device()),offset,data));
+ if (!m_current_chr_table)
+ fatalerror("No Characteriser Table @ %04x\n", cpu_get_previouspc(&space.device()));
if ((offset & 0x3f)== 0)//initialisation is always at 0x800
{
- if (!state->m_chr_state)
+ if (!m_chr_state)
{
- state->m_chr_state=1;
- state->m_chr_counter=0;
+ m_chr_state=1;
+ m_chr_counter=0;
}
if (call == 0)
{
- state->m_init_col ++;
+ m_init_col ++;
}
else
{
- state->m_init_col =0;
+ m_init_col =0;
}
}
- state->m_chr_value = space->machine().rand();
+ m_chr_value = machine().rand();
for (x = 0; x < 4; x++)
{
- if (state->m_current_chr_table[(x)].call == call)
+ if (m_current_chr_table[(x)].call == call)
{
if (x == 0) // reinit
{
- state->m_bwb_return = 0;
+ m_bwb_return = 0;
}
- state->m_chr_value = bwb_chr_table_common[(state->m_bwb_return)];
- state->m_bwb_return++;
+ m_chr_value = bwb_chr_table_common[(m_bwb_return)];
+ m_bwb_return++;
break;
}
}
}
-static READ8_HANDLER( bwb_characteriser_r )
+READ8_MEMBER(mpu4_state::bwb_characteriser_r)
{
- mpu4_state *state = space->machine().driver_data<mpu4_state>();
LOG_CHR(("Characteriser read offset %02X \n",offset));
if (offset ==0)
{
- switch (state->m_chr_counter)
+ switch (m_chr_counter)
{
case 6:
case 13:
@@ -2558,38 +2552,38 @@ static READ8_HANDLER( bwb_characteriser_r )
case 27:
case 34:
{
- return state->m_bwb_chr_table1[(((state->m_chr_counter + 1) / 7) - 1)].response;
+ return m_bwb_chr_table1[(((m_chr_counter + 1) / 7) - 1)].response;
break;
}
default:
{
- if (state->m_chr_counter > 34)
+ if (m_chr_counter > 34)
{
- state->m_chr_counter = 35;
- state->m_chr_state = 2;
+ m_chr_counter = 35;
+ m_chr_state = 2;
}
- state->m_chr_counter ++;
- return state->m_chr_value;
+ m_chr_counter ++;
+ return m_chr_value;
}
}
}
else
{
- return state->m_chr_value;
+ return m_chr_value;
}
}
/* Common configurations */
-static WRITE8_HANDLER( mpu4_ym2413_w )
+WRITE8_MEMBER(mpu4_state::mpu4_ym2413_w)
{
- device_t *ym = space->machine().device("ym2413");
+ device_t *ym = machine().device("ym2413");
if (ym) ym2413_w(ym,offset,data);
}
-static READ8_HANDLER( mpu4_ym2413_r )
+READ8_MEMBER(mpu4_state::mpu4_ym2413_r)
{
-// device_t *ym = space->machine().device("ym2413");
+// device_t *ym = machine().device("ym2413");
// return ym2413_read(ym,offset);
return 0xff;
}
@@ -2597,8 +2591,9 @@ static READ8_HANDLER( mpu4_ym2413_r )
void mpu4_install_mod4yam_space(address_space *space)
{
- space->install_legacy_read_handler(0x0880, 0x0882, FUNC(mpu4_ym2413_r));
- space->install_legacy_write_handler(0x0880, 0x0881, FUNC(mpu4_ym2413_w));
+ mpu4_state *state = space->machine().driver_data<mpu4_state>();
+ space->install_read_handler(0x0880, 0x0882, read8_delegate(FUNC(mpu4_state::mpu4_ym2413_r),state));
+ space->install_write_handler(0x0880, 0x0881, write8_delegate(FUNC(mpu4_state::mpu4_ym2413_w),state));
}
void mpu4_install_mod4oki_space(address_space *space)
@@ -2613,7 +2608,8 @@ void mpu4_install_mod4oki_space(address_space *space)
void mpu4_install_mod4bwb_space(address_space *space)
{
- space->install_legacy_readwrite_handler(0x0810, 0x0810, 0, 0, FUNC(bwb_characteriser_r),FUNC(bwb_characteriser_w));
+ mpu4_state *state = space->machine().driver_data<mpu4_state>();
+ space->install_readwrite_handler(0x0810, 0x0810, 0, 0, read8_delegate(FUNC(mpu4_state::bwb_characteriser_r),state),write8_delegate(FUNC(mpu4_state::bwb_characteriser_w),state));
mpu4_install_mod4oki_space(space);
}
@@ -2872,16 +2868,16 @@ static DRIVER_INIT( m4default_bigbank )
mpu4_state *state = machine.driver_data<mpu4_state>();
DRIVER_INIT_CALL(m4default);
state->m_bwb_bank=1;
- space->install_legacy_write_handler(0x0858, 0x0858, 0, 0, FUNC(bankswitch_w));
- space->install_legacy_write_handler(0x0878, 0x0878, 0, 0, FUNC(bankset_w));
+ space->install_write_handler(0x0858, 0x0858, 0, 0, write8_delegate(FUNC(mpu4_state::bankswitch_w),state));
+ space->install_write_handler(0x0878, 0x0878, 0, 0, write8_delegate(FUNC(mpu4_state::bankset_w),state));
}
-static READ8_HANDLER( crystal_sound_r )
+READ8_MEMBER(mpu4_state::crystal_sound_r)
{
- return space->machine().rand();
+ return machine().rand();
}
-static WRITE8_HANDLER( crystal_sound_w )
+WRITE8_MEMBER(mpu4_state::crystal_sound_w)
{
printf("crystal_sound_w %02x\n",data);
}
@@ -2889,10 +2885,10 @@ static WRITE8_HANDLER( crystal_sound_w )
static DRIVER_INIT (m_frkstn)
{
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
-
+ mpu4_state *state = machine.driver_data<mpu4_state>();
DRIVER_INIT_CALL(m4default_bigbank);
- space->install_legacy_read_handler(0x0880, 0x0880, 0, 0, FUNC(crystal_sound_r));
- space->install_legacy_write_handler(0x0881, 0x0881, 0, 0, FUNC(crystal_sound_w));
+ space->install_read_handler(0x0880, 0x0880, 0, 0, read8_delegate(FUNC(mpu4_state::crystal_sound_r),state));
+ space->install_write_handler(0x0881, 0x0881, 0, 0, write8_delegate(FUNC(mpu4_state::crystal_sound_w),state));
}
/* generate a 50 Hz signal (based on an RC time) */
@@ -2910,8 +2906,8 @@ TIMER_DEVICE_CALLBACK( gen_50hz )
static ADDRESS_MAP_START( mpu4_memmap, AS_PROGRAM, 8, mpu4_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x0800, 0x0810) AM_READWRITE_LEGACY(characteriser_r,characteriser_w)
- AM_RANGE(0x0850, 0x0850) AM_READWRITE_LEGACY(bankswitch_r,bankswitch_w) /* write bank (rom page select) */
+ AM_RANGE(0x0800, 0x0810) AM_READWRITE(characteriser_r,characteriser_w)
+ AM_RANGE(0x0850, 0x0850) AM_READWRITE(bankswitch_r,bankswitch_w) /* write bank (rom page select) */
/* AM_RANGE(0x08e0, 0x08e7) AM_READWRITE_LEGACY(68681_duart_r,68681_duart_w) */ //Runs hoppers
AM_RANGE(0x0900, 0x0907) AM_DEVREADWRITE("ptm_ic2", ptm6840_device, read, write)/* PTM6840 IC2 */
AM_RANGE(0x0a00, 0x0a03) AM_DEVREADWRITE("pia_ic3", pia6821_device, read, write) /* PIA6821 IC3 */
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index f8474ffb21f..ecf28b03f44 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -32,10 +32,10 @@ There's a chance that certain bootlegs might have the different 8/20 MHz XTALS.
/* this looks like some kind of protection. The game doesn't clear the screen */
/* if a read from this address doesn't return the value it expects. */
-static READ8_HANDLER( mrdo_SECRE_r )
+READ8_MEMBER(mrdo_state::mrdo_SECRE_r)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
- return RAM[cpu_get_reg(&space->device(), Z80_HL)];
+ UINT8 *RAM = machine().region("maincpu")->base();
+ return RAM[cpu_get_reg(&space.device(), Z80_HL)];
}
@@ -48,7 +48,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mrdo_state )
AM_RANGE(0x9800, 0x9800) AM_WRITE_LEGACY(mrdo_flipscreen_w) /* screen flip + playfield priority */
AM_RANGE(0x9801, 0x9801) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0x9802, 0x9802) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
- AM_RANGE(0x9803, 0x9803) AM_READ_LEGACY(mrdo_SECRE_r)
+ AM_RANGE(0x9803, 0x9803) AM_READ(mrdo_SECRE_r)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("P2")
AM_RANGE(0xa002, 0xa002) AM_READ_PORT("DSW1")
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 44963f8bfed..fbd31d1e86c 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -75,51 +75,45 @@ Stephh's notes (based on the games Z80 code and some tests) :
*
*************************************/
-static WRITE8_HANDLER( mrflea_main_w )
+WRITE8_MEMBER(mrflea_state::mrflea_main_w)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
- state->m_status |= 0x01; // pending command to main CPU
- state->m_main = data;
+ m_status |= 0x01; // pending command to main CPU
+ m_main = data;
}
-static WRITE8_HANDLER( mrflea_io_w )
+WRITE8_MEMBER(mrflea_state::mrflea_io_w)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
- state->m_status |= 0x08; // pending command to IO CPU
- state->m_io = data;
- device_set_input_line(state->m_subcpu, 0, HOLD_LINE );
+ m_status |= 0x08; // pending command to IO CPU
+ m_io = data;
+ device_set_input_line(m_subcpu, 0, HOLD_LINE );
}
-static READ8_HANDLER( mrflea_main_r )
+READ8_MEMBER(mrflea_state::mrflea_main_r)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
- state->m_status &= ~0x01; // main CPU command read
- return state->m_main;
+ m_status &= ~0x01; // main CPU command read
+ return m_main;
}
-static READ8_HANDLER( mrflea_io_r )
+READ8_MEMBER(mrflea_state::mrflea_io_r)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
- state->m_status &= ~0x08; // IO CPU command read
- return state->m_io;
+ m_status &= ~0x08; // IO CPU command read
+ return m_io;
}
-static READ8_HANDLER( mrflea_main_status_r )
+READ8_MEMBER(mrflea_state::mrflea_main_status_r)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
/* 0x01: main CPU command pending
0x08: io cpu ready */
- return state->m_status ^ 0x08;
+ return m_status ^ 0x08;
}
-static READ8_HANDLER( mrflea_io_status_r )
+READ8_MEMBER(mrflea_state::mrflea_io_status_r)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
/* 0x08: IO CPU command pending
0x01: main cpu ready */
- return state->m_status ^ 0x01;
+ return m_status ^ 0x01;
}
static TIMER_DEVICE_CALLBACK( mrflea_slave_interrupt )
@@ -131,32 +125,30 @@ static TIMER_DEVICE_CALLBACK( mrflea_slave_interrupt )
device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
}
-static READ8_HANDLER( mrflea_interrupt_type_r )
+READ8_MEMBER(mrflea_state::mrflea_interrupt_type_r)
{
/* there are two interrupt types:
1. triggered (in response to sound command)
2. heartbeat (for music timing)
*/
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
- if (state->m_status & 0x08 )
+ if (m_status & 0x08 )
return 0x00; /* process command */
return 0x01; /* music/sound update? */
}
-static WRITE8_HANDLER( mrflea_select1_w )
+WRITE8_MEMBER(mrflea_state::mrflea_select1_w)
{
- mrflea_state *state = space->machine().driver_data<mrflea_state>();
- state->m_select1 = data;
+ m_select1 = data;
}
-static READ8_HANDLER( mrflea_input1_r )
+READ8_MEMBER(mrflea_state::mrflea_input1_r)
{
return 0x00;
}
-static WRITE8_HANDLER( mrflea_data1_w )
+WRITE8_MEMBER(mrflea_state::mrflea_data1_w)
{
}
@@ -177,9 +169,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mrflea_master_io_map, AS_IO, 8, mrflea_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog? */
- AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(mrflea_io_w)
- AM_RANGE(0x41, 0x41) AM_READ_LEGACY(mrflea_main_r)
- AM_RANGE(0x42, 0x42) AM_READ_LEGACY(mrflea_main_status_r)
+ AM_RANGE(0x40, 0x40) AM_WRITE(mrflea_io_w)
+ AM_RANGE(0x41, 0x41) AM_READ(mrflea_main_r)
+ AM_RANGE(0x42, 0x42) AM_READ(mrflea_main_status_r)
AM_RANGE(0x43, 0x43) AM_WRITENOP /* 0xa6,0x0d,0x05 */
AM_RANGE(0x60, 0x60) AM_WRITE_LEGACY(mrflea_gfx_bank_w)
ADDRESS_MAP_END
@@ -195,16 +187,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mrflea_slave_io_map, AS_IO, 8, mrflea_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
- AM_RANGE(0x10, 0x10) AM_READ_LEGACY(mrflea_interrupt_type_r) AM_WRITENOP /* ? / irq ACK */
+ AM_RANGE(0x10, 0x10) AM_READ(mrflea_interrupt_type_r) AM_WRITENOP /* ? / irq ACK */
AM_RANGE(0x11, 0x11) AM_WRITENOP /* 0x83,0x00,0xfc */
- AM_RANGE(0x20, 0x20) AM_READ_LEGACY(mrflea_io_r)
- AM_RANGE(0x21, 0x21) AM_WRITE_LEGACY(mrflea_main_w)
- AM_RANGE(0x22, 0x22) AM_READ_LEGACY(mrflea_io_status_r)
+ AM_RANGE(0x20, 0x20) AM_READ(mrflea_io_r)
+ AM_RANGE(0x21, 0x21) AM_WRITE(mrflea_main_w)
+ AM_RANGE(0x22, 0x22) AM_READ(mrflea_io_status_r)
AM_RANGE(0x23, 0x23) AM_WRITENOP /* 0xb4,0x09,0x05 */
AM_RANGE(0x40, 0x40) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0x40, 0x41) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
- AM_RANGE(0x42, 0x42) AM_READWRITE_LEGACY(mrflea_input1_r, mrflea_data1_w)
- AM_RANGE(0x43, 0x43) AM_WRITE_LEGACY(mrflea_select1_w)
+ AM_RANGE(0x42, 0x42) AM_READWRITE(mrflea_input1_r, mrflea_data1_w)
+ AM_RANGE(0x43, 0x43) AM_WRITE(mrflea_select1_w)
AM_RANGE(0x44, 0x44) AM_DEVREAD_LEGACY("ay2", ay8910_r)
AM_RANGE(0x44, 0x45) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
AM_RANGE(0x46, 0x46) AM_DEVREAD_LEGACY("ay3", ay8910_r)
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index 6e1b58b7756..86ba540f660 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -55,7 +55,7 @@ ROMs 6A, 7A, 8A, 9A: 2764
*
*************************************/
-static READ8_HANDLER( io_0x03_r )
+READ8_MEMBER(mrjong_state::io_0x03_r)
{
return 0x00;
}
@@ -80,7 +80,7 @@ static ADDRESS_MAP_START( mrjong_io_map, AS_IO, 8, mrjong_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("P2") AM_WRITE_LEGACY(mrjong_flipscreen_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW") AM_DEVWRITE_LEGACY("sn2", sn76496_w)
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(io_0x03_r) // Unknown
+ AM_RANGE(0x03, 0x03) AM_READ(io_0x03_r) // Unknown
ADDRESS_MAP_END
/*************************************
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index 70882d23174..48ed38db7d2 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -207,35 +207,34 @@ static CUSTOM_INPUT( mahjong_ctrl_r )
}
-static READ32_HANDLER( ms32_read_inputs3 )
+READ32_MEMBER(ms32_state::ms32_read_inputs3)
{
int a,b,c,d;
- a = input_port_read(space->machine(), "AN2?"); // unused?
- b = input_port_read(space->machine(), "AN2?"); // unused?
- c = input_port_read(space->machine(), "AN1");
- d = (input_port_read(space->machine(), "AN0") - 0xb0) & 0xff;
+ a = input_port_read(machine(), "AN2?"); // unused?
+ b = input_port_read(machine(), "AN2?"); // unused?
+ c = input_port_read(machine(), "AN1");
+ d = (input_port_read(machine(), "AN0") - 0xb0) & 0xff;
return a << 24 | b << 16 | c << 8 | d << 0;
}
-static WRITE32_HANDLER( ms32_sound_w )
+WRITE32_MEMBER(ms32_state::ms32_sound_w)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, ASSERT_LINE);
// give the Z80 time to respond
- device_spin_until_time(&space->device(), attotime::from_usec(40));
+ device_spin_until_time(&space.device(), attotime::from_usec(40));
}
-static READ32_HANDLER( ms32_sound_r )
+READ32_MEMBER(ms32_state::ms32_sound_r)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_to_main^0xff;
+ return m_to_main^0xff;
}
-static WRITE32_HANDLER( reset_sub_w )
+WRITE32_MEMBER(ms32_state::reset_sub_w)
{
- if(data) cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, PULSE_LINE); // 0 too ?
+ if(data) cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, PULSE_LINE); // 0 too ?
}
@@ -244,110 +243,93 @@ static WRITE32_HANDLER( reset_sub_w )
/********** MEMORY MAP **********/
-static READ8_HANDLER( ms32_nvram_r8 )
+READ8_MEMBER(ms32_state::ms32_nvram_r8)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_nvram_8[offset];
+ return m_nvram_8[offset];
}
-static WRITE8_HANDLER( ms32_nvram_w8 )
+WRITE8_MEMBER(ms32_state::ms32_nvram_w8)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- state->m_nvram_8[offset] = data;
+ m_nvram_8[offset] = data;
}
-static READ8_HANDLER( ms32_priram_r8 )
+READ8_MEMBER(ms32_state::ms32_priram_r8)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_priram_8[offset];
+ return m_priram_8[offset];
}
-static WRITE8_HANDLER( ms32_priram_w8 )
+WRITE8_MEMBER(ms32_state::ms32_priram_w8)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- state->m_priram_8[offset] = data;
+ m_priram_8[offset] = data;
}
-static READ16_HANDLER( ms32_palram_r16 )
+READ16_MEMBER(ms32_state::ms32_palram_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_palram_16[offset];
+ return m_palram_16[offset];
}
-static WRITE16_HANDLER( ms32_palram_w16 )
+WRITE16_MEMBER(ms32_state::ms32_palram_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_palram_16[offset]);
+ COMBINE_DATA(&m_palram_16[offset]);
}
-static READ16_HANDLER( ms32_rozram_r16 )
+READ16_MEMBER(ms32_state::ms32_rozram_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_rozram_16[offset];
+ return m_rozram_16[offset];
}
-static WRITE16_HANDLER( ms32_rozram_w16 )
+WRITE16_MEMBER(ms32_state::ms32_rozram_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_rozram_16[offset]);
- state->m_roz_tilemap->mark_tile_dirty(offset/2);
+ COMBINE_DATA(&m_rozram_16[offset]);
+ m_roz_tilemap->mark_tile_dirty(offset/2);
}
-static READ16_HANDLER( ms32_lineram_r16 )
+READ16_MEMBER(ms32_state::ms32_lineram_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_lineram_16[offset];
+ return m_lineram_16[offset];
}
-static WRITE16_HANDLER( ms32_lineram_w16 )
+WRITE16_MEMBER(ms32_state::ms32_lineram_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_lineram_16[offset]);
+ COMBINE_DATA(&m_lineram_16[offset]);
}
-static READ16_HANDLER( ms32_sprram_r16 )
+READ16_MEMBER(ms32_state::ms32_sprram_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_sprram_16[offset];
+ return m_sprram_16[offset];
}
-static WRITE16_HANDLER( ms32_sprram_w16 )
+WRITE16_MEMBER(ms32_state::ms32_sprram_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_sprram_16[offset]);
+ COMBINE_DATA(&m_sprram_16[offset]);
}
-static READ16_HANDLER( ms32_txram_r16 )
+READ16_MEMBER(ms32_state::ms32_txram_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_txram_16[offset];
+ return m_txram_16[offset];
}
-static WRITE16_HANDLER( ms32_txram_w16 )
+WRITE16_MEMBER(ms32_state::ms32_txram_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_txram_16[offset]);
- state->m_tx_tilemap->mark_tile_dirty(offset/2);
+ COMBINE_DATA(&m_txram_16[offset]);
+ m_tx_tilemap->mark_tile_dirty(offset/2);
}
-static READ16_HANDLER( ms32_bgram_r16 )
+READ16_MEMBER(ms32_state::ms32_bgram_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_bgram_16[offset];
+ return m_bgram_16[offset];
}
-static WRITE16_HANDLER( ms32_bgram_w16 )
+WRITE16_MEMBER(ms32_state::ms32_bgram_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_bgram_16[offset]);
- state->m_bg_tilemap->mark_tile_dirty(offset/2);
- state->m_bg_tilemap_alt->mark_tile_dirty(offset/2);
+ COMBINE_DATA(&m_bgram_16[offset]);
+ m_bg_tilemap->mark_tile_dirty(offset/2);
+ m_bg_tilemap_alt->mark_tile_dirty(offset/2);
}
-static WRITE32_HANDLER( pip_w )
+WRITE32_MEMBER(ms32_state::pip_w)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- state->m_tilemaplayoutcontrol = data;
+ m_tilemaplayoutcontrol = data;
if ((data) && (data != 1))
popmessage("fce00a7c = %02x",data);
@@ -356,31 +338,31 @@ static WRITE32_HANDLER( pip_w )
static ADDRESS_MAP_START( ms32_map, AS_PROGRAM, 32, ms32_state )
/* RAM areas verified by testing on real hw - usually accessed at the 0xfc000000 + mirror */
- AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8_LEGACY(ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */
+ AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8(ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */
/* AM_RANGE(0xc0008000, 0xc01fffff) // mirrors of nvramram, handled above */
- AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8_LEGACY(ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) /* priram is 8-bit wide, 0x2000 in size */
+ AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8(ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) /* priram is 8-bit wide, 0x2000 in size */
/* AM_RANGE(0xc1188000, 0xc11bffff) // mirrors of priram, handled above */
- AM_RANGE(0xc1400000, 0xc143ffff) AM_READWRITE16_LEGACY(ms32_palram_r16, ms32_palram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* palram is 16-bit wide, 0x20000 in size */
+ AM_RANGE(0xc1400000, 0xc143ffff) AM_READWRITE16(ms32_palram_r16, ms32_palram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* palram is 16-bit wide, 0x20000 in size */
/* AM_RANGE(0xc1440000, 0xc145ffff) // mirrors of palram, handled above */
- AM_RANGE(0xc2000000, 0xc201ffff) AM_READWRITE16_LEGACY(ms32_rozram_r16, ms32_rozram_w16, 0x0000ffff) AM_MIRROR(0x3c1e0000) /* rozram is 16-bit wide, 0x10000 in size */
+ AM_RANGE(0xc2000000, 0xc201ffff) AM_READWRITE16(ms32_rozram_r16, ms32_rozram_w16, 0x0000ffff) AM_MIRROR(0x3c1e0000) /* rozram is 16-bit wide, 0x10000 in size */
/* AM_RANGE(0xc2020000, 0xc21fffff) // mirrors of rozram, handled above */
- AM_RANGE(0xc2200000, 0xc2201fff) AM_READWRITE16_LEGACY(ms32_lineram_r16,ms32_lineram_w16,0x0000ffff) AM_MIRROR(0x3c1fe000) /* lineram is 16-bit wide, 0x1000 in size */
+ AM_RANGE(0xc2200000, 0xc2201fff) AM_READWRITE16(ms32_lineram_r16,ms32_lineram_w16,0x0000ffff) AM_MIRROR(0x3c1fe000) /* lineram is 16-bit wide, 0x1000 in size */
/* AM_RANGE(0xc2202000, 0xc23fffff) // mirrors of lineram, handled above */
- AM_RANGE(0xc2800000, 0xc283ffff) AM_READWRITE16_LEGACY(ms32_sprram_r16, ms32_sprram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* spriteram is 16-bit wide, 0x20000 in size */
+ AM_RANGE(0xc2800000, 0xc283ffff) AM_READWRITE16(ms32_sprram_r16, ms32_sprram_w16, 0x0000ffff) AM_MIRROR(0x3c1c0000) /* spriteram is 16-bit wide, 0x20000 in size */
/* AM_RANGE(0xc2840000, 0xc29fffff) // mirrors of sprram, handled above */
- AM_RANGE(0xc2c00000, 0xc2c07fff) AM_READWRITE16_LEGACY(ms32_txram_r16, ms32_txram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* txram is 16-bit wide, 0x4000 in size */
- AM_RANGE(0xc2c08000, 0xc2c0ffff) AM_READWRITE16_LEGACY(ms32_bgram_r16, ms32_bgram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* bgram is 16-bit wide, 0x4000 in size */
+ AM_RANGE(0xc2c00000, 0xc2c07fff) AM_READWRITE16(ms32_txram_r16, ms32_txram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* txram is 16-bit wide, 0x4000 in size */
+ AM_RANGE(0xc2c08000, 0xc2c0ffff) AM_READWRITE16(ms32_bgram_r16, ms32_bgram_w16, 0x0000ffff) AM_MIRROR(0x3c1f0000) /* bgram is 16-bit wide, 0x4000 in size */
/* AM_RANGE(0xc2c10000, 0xc2dfffff) // mirrors of txram / bg, handled above */
AM_RANGE(0xc2e00000, 0xc2e1ffff) AM_RAM AM_BASE(m_mainram) AM_MIRROR(0x3c0e0000) /* mainram is 32-bit wide, 0x20000 in size */
AM_RANGE(0xc3e00000, 0xc3ffffff) AM_ROMBANK("bank1") AM_MIRROR(0x3c000000) // ROM is 32-bit wide, 0x200000 in size */
/* todo: clean up the mapping of these */
AM_RANGE(0xfc800000, 0xfc800003) AM_READNOP /* sound? */
- AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE_LEGACY(ms32_sound_w) /* sound? */
+ AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w) /* sound? */
AM_RANGE(0xfcc00004, 0xfcc00007) AM_READ_PORT("INPUTS")
AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ_PORT("DSW")
AM_RANGE(0xfce00034, 0xfce00037) AM_WRITENOP // irq ack?
- AM_RANGE(0xfce00038, 0xfce0003b) AM_WRITE_LEGACY(reset_sub_w)
+ AM_RANGE(0xfce00038, 0xfce0003b) AM_WRITE(reset_sub_w)
AM_RANGE(0xfce00050, 0xfce0005f) AM_WRITENOP // watchdog? I haven't investigated
// AM_RANGE(0xfce00000, 0xfce0007f) AM_WRITEONLY AM_BASE_LEGACY(&ms32_fce00000) /* registers not ram? */
AM_RANGE(0xfce00000, 0xfce00003) AM_WRITE_LEGACY(ms32_gfxctrl_w) /* flip screen + other unknown bits */
@@ -388,9 +370,9 @@ static ADDRESS_MAP_START( ms32_map, AS_PROGRAM, 32, ms32_state )
/**/AM_RANGE(0xfce00600, 0xfce0065f) AM_RAM AM_BASE(m_roz_ctrl) /* roz control registers */
/**/AM_RANGE(0xfce00a00, 0xfce00a17) AM_RAM AM_BASE(m_tx_scroll) /* tx layer scroll */
/**/AM_RANGE(0xfce00a20, 0xfce00a37) AM_RAM AM_BASE(m_bg_scroll) /* bg layer scroll */
- AM_RANGE(0xfce00a7c, 0xfce00a7f) AM_WRITE_LEGACY(pip_w) // ??? layer related? seems to be always 0
+ AM_RANGE(0xfce00a7c, 0xfce00a7f) AM_WRITE(pip_w) // ??? layer related? seems to be always 0
// AM_RANGE(0xfce00e00, 0xfce00e03) coin counters + something else
- AM_RANGE(0xfd000000, 0xfd000003) AM_READ_LEGACY(ms32_sound_r)
+ AM_RANGE(0xfd000000, 0xfd000003) AM_READ(ms32_sound_r)
AM_RANGE(0xfd1c0000, 0xfd1c0003) AM_WRITEONLY AM_BASE(m_mahjong_input_select)
ADDRESS_MAP_END
@@ -398,32 +380,30 @@ ADDRESS_MAP_END
/* F1 Super Battle has an extra linemap for the road, and am unknown maths chip (mcu?) handling perspective calculations for the road / corners etc. */
/* it should use it's own memory map */
-static WRITE16_HANDLER( ms32_extra_w16 )
+WRITE16_MEMBER(ms32_state::ms32_extra_w16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- COMBINE_DATA(&state->m_f1superb_extraram_16[offset]);
- state->m_extra_tilemap->mark_tile_dirty(offset/2);
+ COMBINE_DATA(&m_f1superb_extraram_16[offset]);
+ m_extra_tilemap->mark_tile_dirty(offset/2);
}
-static READ16_HANDLER( ms32_extra_r16 )
+READ16_MEMBER(ms32_state::ms32_extra_r16)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- return state->m_f1superb_extraram_16[offset];
+ return m_f1superb_extraram_16[offset];
}
static void irq_raise(running_machine &machine, int level);
-static WRITE32_HANDLER( ms32_irq2_guess_w )
+WRITE32_MEMBER(ms32_state::ms32_irq2_guess_w)
{
- irq_raise(space->machine(), 2);
+ irq_raise(machine(), 2);
}
-static WRITE32_HANDLER( ms32_irq5_guess_w )
+WRITE32_MEMBER(ms32_state::ms32_irq5_guess_w)
{
- irq_raise(space->machine(), 5);
+ irq_raise(machine(), 5);
}
static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )
- AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ_LEGACY(ms32_read_inputs3)
+ AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3)
AM_RANGE(0xfce00004, 0xfce00023) AM_RAM // regs?
AM_RANGE(0xfce00200, 0xfce0021f) AM_RAM // regs?
@@ -431,8 +411,8 @@ static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )
/* these two are almost certainly wrong, they just let you see what
happens if you generate the FPU ints without breaking other games */
- AM_RANGE(0xfce00e00, 0xfce00e03) AM_WRITE_LEGACY(ms32_irq5_guess_w)
- AM_RANGE(0xfd0f0000, 0xfd0f0003) AM_WRITE_LEGACY(ms32_irq2_guess_w)
+ AM_RANGE(0xfce00e00, 0xfce00e03) AM_WRITE(ms32_irq5_guess_w)
+ AM_RANGE(0xfd0f0000, 0xfd0f0003) AM_WRITE(ms32_irq2_guess_w)
AM_RANGE(0xfd100000, 0xfd103fff) AM_RAM // used when you start enabling fpu ints
AM_RANGE(0xfd104000, 0xfd105fff) AM_RAM // uploads data here
@@ -440,7 +420,7 @@ static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )
AM_RANGE(0xfd140000, 0xfd143fff) AM_RAM // used when you start enabling fpu ints
AM_RANGE(0xfd144000, 0xfd145fff) AM_RAM // same data here
- AM_RANGE(0xfdc00000, 0xfdc007ff) AM_READWRITE16_LEGACY(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) // definitely line ram
+ AM_RANGE(0xfdc00000, 0xfdc007ff) AM_READWRITE16(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) // definitely line ram
AM_RANGE(0xfde00000, 0xfde01fff) AM_RAM // scroll info for lineram?
AM_IMPORT_FROM(ms32_map)
@@ -553,7 +533,7 @@ what the operations might be, my maths isn't up to much though...
///**/AM_RANGE(0xfdc00000, 0xfdc006ff) AM_RAM /* f1superb */
///**/AM_RANGE(0xfde00000, 0xfde01fff) AM_RAM /* f1superb lineram #2? */
///**/AM_RANGE(0xfe202000, 0xfe2fffff) AM_RAM /* f1superb vram */
-// AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ_LEGACY(ms32_read_inputs3) /* analog controls in f1superb? */
+// AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3) /* analog controls in f1superb? */
/*************************************
*
@@ -1365,34 +1345,33 @@ static TIMER_DEVICE_CALLBACK(ms32_interrupt)
code at $38 reads the 2nd command latch ??
*/
-static READ8_HANDLER( latch_r )
+READ8_MEMBER(ms32_state::latch_r)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, CLEAR_LINE);
return soundlatch_r(space,0)^0xff;
}
-static WRITE8_HANDLER( ms32_snd_bank_w )
+WRITE8_MEMBER(ms32_state::ms32_snd_bank_w)
{
- memory_set_bank(space->machine(), "bank4", (data >> 0) & 0x0F);
- memory_set_bank(space->machine(), "bank5", (data >> 4) & 0x0F);
+ memory_set_bank(machine(), "bank4", (data >> 0) & 0x0F);
+ memory_set_bank(machine(), "bank5", (data >> 4) & 0x0F);
}
-static WRITE8_HANDLER( to_main_w )
+WRITE8_MEMBER(ms32_state::to_main_w)
{
- ms32_state *state = space->machine().driver_data<ms32_state>();
- state->m_to_main=data;
- irq_raise(space->machine(), 1);
+ m_to_main=data;
+ irq_raise(machine(), 1);
}
static ADDRESS_MAP_START( ms32_sound_map, AS_PROGRAM, 8, ms32_state )
AM_RANGE(0x0000, 0x3eff) AM_ROM
AM_RANGE(0x3f00, 0x3f0f) AM_DEVREADWRITE_LEGACY("ymf", ymf271_r,ymf271_w)
- AM_RANGE(0x3f10, 0x3f10) AM_READWRITE_LEGACY(latch_r,to_main_w)
+ AM_RANGE(0x3f10, 0x3f10) AM_READWRITE(latch_r,to_main_w)
AM_RANGE(0x3f20, 0x3f20) AM_READNOP /* 2nd latch ? */
AM_RANGE(0x3f20, 0x3f20) AM_WRITENOP /* to_main2_w ? */
AM_RANGE(0x3f40, 0x3f40) AM_WRITENOP /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */
AM_RANGE(0x3f70, 0x3f70) AM_WRITENOP // watchdog? banking? very noisy
- AM_RANGE(0x3f80, 0x3f80) AM_WRITE_LEGACY(ms32_snd_bank_w)
+ AM_RANGE(0x3f80, 0x3f80) AM_WRITE(ms32_snd_bank_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank4")
AM_RANGE(0xc000, 0xffff) AM_ROMBANK("bank5")
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index abf34de58be..860655b68f1 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -31,42 +31,40 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(msisaac_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(msisaac_state::nmi_disable_w)
{
- msisaac_state *state = space->machine().driver_data<msisaac_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(msisaac_state::nmi_enable_w)
{
- msisaac_state *state = space->machine().driver_data<msisaac_state>();
- state->m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ m_sound_nmi_enable = 1;
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
#if 0
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(msisaac_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
-static WRITE8_HANDLER( msisaac_coin_counter_w )
+WRITE8_MEMBER(msisaac_state::msisaac_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
#endif
-static WRITE8_HANDLER( ms_unknown_w )
+WRITE8_MEMBER(msisaac_state::ms_unknown_w)
{
if (data != 0x08)
popmessage("CPU #0 write to 0xf0a3 data=%2x", data);
@@ -81,7 +79,7 @@ static WRITE8_HANDLER( ms_unknown_w )
-static READ8_HANDLER( msisaac_mcu_r )
+READ8_MEMBER(msisaac_state::msisaac_mcu_r)
{
#ifdef USE_MCU
return buggychl_mcu_r(offset);
@@ -92,12 +90,11 @@ MCU simulation TODO:
\-Fix some graphics imperfections(*not* confirmed if they are caused by unhandled
commands or imperfect video emulation).
*/
- msisaac_state *state = space->machine().driver_data<msisaac_state>();
- switch (state->m_mcu_val)
+ switch (m_mcu_val)
{
/*Start-up check*/
- case 0x5f: return (state->m_mcu_val + 0x6b);
+ case 0x5f: return (m_mcu_val + 0x6b);
/*These interferes with RAM operations(setting them to non-zero you *
* will have unexpected results,such as infinite lives or score not *
* incremented properly).*/
@@ -119,7 +116,7 @@ MCU simulation TODO:
//6-down
//7-leftdwn
- UINT8 val= (input_port_read(space->machine(), "IN1") >> 2) & 0x0f;
+ UINT8 val= (input_port_read(machine(), "IN1") >> 2) & 0x0f;
/* bit0 = left
bit1 = right
bit2 = down
@@ -138,9 +135,9 @@ MCU simulation TODO:
static const INT8 table[16] = { -1, 2, 6, -1, 0, 1, 7, 0, 4, 3, 5, 4, -1, 2, 6, -1 };
if (table[val] >= 0)
- state->m_direction = table[val];
+ m_direction = table[val];
- return state->m_direction;
+ return m_direction;
}
/*This controls the arms when they return to the player. */
@@ -148,13 +145,13 @@ MCU simulation TODO:
return 0x45;
default:
- logerror("CPU#0 read from MCU pc=%4x, mcu_val=%2x\n", cpu_get_pc(&space->device()), state->m_mcu_val);
- return state->m_mcu_val;
+ logerror("CPU#0 read from MCU pc=%4x, mcu_val=%2x\n", cpu_get_pc(&space.device()), m_mcu_val);
+ return m_mcu_val;
}
#endif
}
-static READ8_HANDLER( msisaac_mcu_status_r )
+READ8_MEMBER(msisaac_state::msisaac_mcu_status_r)
{
#ifdef USE_MCU
return buggychl_mcu_status_r(offset);
@@ -163,15 +160,14 @@ static READ8_HANDLER( msisaac_mcu_status_r )
#endif
}
-static WRITE8_HANDLER( msisaac_mcu_w )
+WRITE8_MEMBER(msisaac_state::msisaac_mcu_w)
{
#ifdef USE_MCU
buggychl_mcu_w(offset,data);
#else
- msisaac_state *state = space->machine().driver_data<msisaac_state>();
//if(data != 0x0a && data != 0x42 && data != 0x02)
- // popmessage("PC = %04x %02x", cpu_get_pc(&space->device()), data);
- state->m_mcu_val = data;
+ // popmessage("PC = %04x %02x", cpu_get_pc(&space.device()), data);
+ m_mcu_val = data;
#endif
}
@@ -183,10 +179,10 @@ static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0xf001, 0xf001) AM_WRITENOP //???
AM_RANGE(0xf002, 0xf002) AM_WRITENOP //???
- AM_RANGE(0xf060, 0xf060) AM_WRITE_LEGACY(sound_command_w) //sound command
+ AM_RANGE(0xf060, 0xf060) AM_WRITE(sound_command_w) //sound command
AM_RANGE(0xf061, 0xf061) AM_WRITENOP /*sound_reset*/ //????
- AM_RANGE(0xf0a3, 0xf0a3) AM_WRITE_LEGACY(ms_unknown_w) //???? written in interrupt routine
+ AM_RANGE(0xf0a3, 0xf0a3) AM_WRITE(ms_unknown_w) //???? written in interrupt routine
AM_RANGE(0xf0c0, 0xf0c0) AM_WRITE_LEGACY(msisaac_fg_scrollx_w)
AM_RANGE(0xf0c1, 0xf0c1) AM_WRITE_LEGACY(msisaac_fg_scrolly_w)
@@ -195,8 +191,8 @@ static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0xf0c4, 0xf0c4) AM_WRITE_LEGACY(msisaac_bg_scrollx_w)
AM_RANGE(0xf0c5, 0xf0c5) AM_WRITE_LEGACY(msisaac_bg_scrolly_w)
- AM_RANGE(0xf0e0, 0xf0e0) AM_READWRITE_LEGACY(msisaac_mcu_r, msisaac_mcu_w)
- AM_RANGE(0xf0e1, 0xf0e1) AM_READ_LEGACY(msisaac_mcu_status_r)
+ AM_RANGE(0xf0e0, 0xf0e0) AM_READWRITE(msisaac_mcu_r, msisaac_mcu_w)
+ AM_RANGE(0xf0e1, 0xf0e1) AM_READ(msisaac_mcu_status_r)
AM_RANGE(0xf080, 0xf080) AM_READ_PORT("DSW1")
AM_RANGE(0xf081, 0xf081) AM_READ_PORT("DSW2")
@@ -210,8 +206,8 @@ static ADDRESS_MAP_START( msisaac_map, AS_PROGRAM, 8, msisaac_state )
AM_RANGE(0xf800, 0xfbff) AM_RAM_WRITE_LEGACY(msisaac_bg2_videoram_w) AM_BASE(m_videoram3)
AM_RANGE(0xfc00, 0xffff) AM_RAM_WRITE_LEGACY(msisaac_bg_videoram_w) AM_BASE(m_videoram2)
// AM_RANGE(0xf801, 0xf801) AM_WRITE_LEGACY(msisaac_bgcolor_w)
-// AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(flip_screen_w)
-// AM_RANGE(0xfc03, 0xfc04) AM_WRITE_LEGACY(msisaac_coin_counter_w)
+// AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w)
+// AM_RANGE(0xfc03, 0xfc04) AM_WRITE(msisaac_coin_counter_w)
ADDRESS_MAP_END
static MACHINE_RESET( ta7630 )
@@ -257,11 +253,10 @@ static WRITE8_DEVICE_HANDLER( sound_control_0_w )
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 */
}
-static WRITE8_HANDLER( sound_control_1_w )
+WRITE8_MEMBER(msisaac_state::sound_control_1_w)
{
- msisaac_state *state = space->machine().driver_data<msisaac_state>();
- state->m_snd_ctrl1 = data & 0xff;
- //popmessage("SND1 0=%2x 1=%2x", state->m_snd_ctrl0, state->m_snd_ctrl1);
+ m_snd_ctrl1 = data & 0xff;
+ //popmessage("SND1 0=%2x 1=%2x", m_snd_ctrl0, m_snd_ctrl1);
}
static ADDRESS_MAP_START( msisaac_sound_map, AS_PROGRAM, 8, msisaac_state )
@@ -271,10 +266,10 @@ static ADDRESS_MAP_START( msisaac_sound_map, AS_PROGRAM, 8, msisaac_state )
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(0x8030, 0x8030) AM_WRITE_LEGACY(sound_control_1_w)
+ AM_RANGE(0x8030, 0x8030) AM_WRITE(sound_control_1_w)
AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xc001, 0xc001) AM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0xc002, 0xc002) AM_WRITE_LEGACY(nmi_disable_w)
+ AM_RANGE(0xc001, 0xc001) AM_WRITE(nmi_enable_w)
+ AM_RANGE(0xc002, 0xc002) AM_WRITE(nmi_disable_w)
AM_RANGE(0xc003, 0xc003) AM_WRITENOP /*???*/ /* this is NOT mixer_enable */
AM_RANGE(0xe000, 0xffff) AM_READNOP /*space for diagnostic ROM (not dumped, not reachable) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c
index dc14c2677ec..879b9926dbf 100644
--- a/src/mame/drivers/mugsmash.c
+++ b/src/mame/drivers/mugsmash.c
@@ -46,18 +46,17 @@ behavior we use .
#include "sound/okim6295.h"
#include "includes/mugsmash.h"
-static WRITE16_HANDLER( mugsmash_reg2_w )
+WRITE16_MEMBER(mugsmash_state::mugsmash_reg2_w)
{
- mugsmash_state *state = space->machine().driver_data<mugsmash_state>();
- state->m_regs2[offset] = data;
- //popmessage ("Regs2 %04x, %04x, %04x, %04x", state->m_regs2[0], state->m_regs2[1], state->m_regs2[2], state->m_regs2[3]);
+ m_regs2[offset] = data;
+ //popmessage ("Regs2 %04x, %04x, %04x, %04x", m_regs2[0], m_regs2[1], m_regs2[2], m_regs2[3]);
switch (offset)
{
case 1:
soundlatch_w(space, 1, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
break;
default:
@@ -148,23 +147,23 @@ static WRITE16_HANDLER( mugsmash_reg2_w )
#define USE_FAKE_INPUT_PORTS 0
#if USE_FAKE_INPUT_PORTS
-static READ16_HANDLER ( mugsmash_input_ports_r )
+READ16_MEMBER(mugsmash_state::mugsmash_input_ports_r)
{
UINT16 data = 0xffff;
switch (offset)
{
case 0 :
- data = (input_port_read(space->machine(), "P1") & 0xff) | ((input_port_read(space->machine(), "DSW1") & 0xc0) << 6) | ((input_port_read(space->machine(), "IN0") & 0x03) << 8);
+ data = (input_port_read(machine(), "P1") & 0xff) | ((input_port_read(machine(), "DSW1") & 0xc0) << 6) | ((input_port_read(machine(), "IN0") & 0x03) << 8);
break;
case 1 :
- data = (input_port_read(space->machine(), "P2") & 0xff) | ((input_port_read(space->machine(), "DSW1") & 0x3f) << 8);
+ data = (input_port_read(machine(), "P2") & 0xff) | ((input_port_read(machine(), "DSW1") & 0x3f) << 8);
break;
case 2 :
- data = ((input_port_read(space->machine(), "DSW2") & 0x3f) << 8);
+ data = ((input_port_read(machine(), "DSW2") & 0x3f) << 8);
break;
case 3 :
- data = ((input_port_read(space->machine(), "DSW2") & 0xc0) << 2);
+ data = ((input_port_read(machine(), "DSW2") & 0xc0) << 2);
break;
}
@@ -178,12 +177,12 @@ static ADDRESS_MAP_START( mugsmash_map, AS_PROGRAM, 16, mugsmash_state )
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE_LEGACY(mugsmash_videoram2_w) AM_BASE(m_videoram2)
AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE_LEGACY(mugsmash_reg_w) AM_BASE(m_regs1) /* video registers*/
AM_RANGE(0x100000, 0x1005ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x140000, 0x140007) AM_WRITE_LEGACY(mugsmash_reg2_w) AM_BASE(m_regs2) /* sound + ? */
+ AM_RANGE(0x140000, 0x140007) AM_WRITE(mugsmash_reg2_w) AM_BASE(m_regs2) /* sound + ? */
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* main ram? */
AM_RANGE(0x1c4000, 0x1cffff) AM_RAM
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_BASE(m_spriteram) /* sprite ram */
#if USE_FAKE_INPUT_PORTS
- AM_RANGE(0x180000, 0x180007) AM_READ_LEGACY(mugsmash_input_ports_r)
+ AM_RANGE(0x180000, 0x180007) AM_READ(mugsmash_input_ports_r)
#else
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN0")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index 1d841340500..ee762556589 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -35,10 +35,9 @@ Stephh's notes (based on the game Z80 code and some tests) :
*
*************************************/
-static WRITE8_HANDLER( mnchmobl_nmi_enable_w )
+WRITE8_MEMBER(munchmo_state::mnchmobl_nmi_enable_w)
{
- munchmo_state *state = space->machine().driver_data<munchmo_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
}
/* trusted thru schematics, NMI and IRQ triggers at vblank, at the same time (!) */
@@ -59,19 +58,17 @@ static INTERRUPT_GEN( mnchmobl_sound_irq )
device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( mnchmobl_soundlatch_w )
+WRITE8_MEMBER(munchmo_state::mnchmobl_soundlatch_w)
{
- munchmo_state *state = space->machine().driver_data<munchmo_state>();
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE );
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE );
}
-static WRITE8_HANDLER( sound_nmi_ack_w )
+WRITE8_MEMBER(munchmo_state::sound_nmi_ack_w)
{
- munchmo_state *state = space->machine().driver_data<munchmo_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
}
static READ8_DEVICE_HANDLER( munchmo_ayreset_r )
@@ -95,7 +92,7 @@ static ADDRESS_MAP_START( mnchmobl_map, AS_PROGRAM, 8, munchmo_state )
AM_RANGE(0xb800, 0xb8ff) AM_MIRROR(0x0100) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0xbaba, 0xbaba) AM_WRITENOP /* ? */
AM_RANGE(0xbc00, 0xbc7f) AM_RAM AM_BASE(m_status_vram)
- AM_RANGE(0xbe00, 0xbe00) AM_WRITE_LEGACY(mnchmobl_soundlatch_w)
+ AM_RANGE(0xbe00, 0xbe00) AM_WRITE(mnchmobl_soundlatch_w)
AM_RANGE(0xbe01, 0xbe01) AM_WRITE_LEGACY(mnchmobl_palette_bank_w)
AM_RANGE(0xbe02, 0xbe02) AM_READ_PORT("DSW1")
AM_RANGE(0xbe03, 0xbe03) AM_READ_PORT("DSW2")
@@ -103,7 +100,7 @@ static ADDRESS_MAP_START( mnchmobl_map, AS_PROGRAM, 8, munchmo_state )
AM_RANGE(0xbe21, 0xbe21) AM_WRITENOP /* ? */
AM_RANGE(0xbe31, 0xbe31) AM_WRITENOP /* ? */
AM_RANGE(0xbe41, 0xbe41) AM_WRITE_LEGACY(mnchmobl_flipscreen_w)
- AM_RANGE(0xbe61, 0xbe61) AM_WRITE_LEGACY(mnchmobl_nmi_enable_w) /* ENI 1-10C */
+ AM_RANGE(0xbe61, 0xbe61) AM_WRITE(mnchmobl_nmi_enable_w) /* ENI 1-10C */
AM_RANGE(0xbf00, 0xbf07) AM_WRITEONLY AM_BASE(m_vreg) /* MY0 1-8C */
AM_RANGE(0xbf01, 0xbf01) AM_READ_PORT("SYSTEM")
AM_RANGE(0xbf02, 0xbf02) AM_READ_PORT("P1")
@@ -120,7 +117,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, munchmo_state )
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(0xc000, 0xdfff) AM_WRITE_LEGACY(sound_nmi_ack_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/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index 3b79a89a1de..6a730a7711f 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -165,38 +165,35 @@
*
*************************************/
-static READ8_HANDLER( mw8080bw_shift_result_rev_r )
+READ8_MEMBER(mw8080bw_state::mw8080bw_shift_result_rev_r)
{
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
- UINT8 ret = mb14241_shift_result_r(state->m_mb14241, 0);
+ UINT8 ret = mb14241_shift_result_r(m_mb14241, 0);
return BITSWAP8(ret,0,1,2,3,4,5,6,7);
}
-static READ8_HANDLER( mw8080bw_reversable_shift_result_r )
+READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r)
{
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
UINT8 ret;
- if (state->m_rev_shift_res)
+ if (m_rev_shift_res)
{
ret = mw8080bw_shift_result_rev_r(space, 0);
}
else
{
- ret = mb14241_shift_result_r(state->m_mb14241, 0);
+ ret = mb14241_shift_result_r(m_mb14241, 0);
}
return ret;
}
-static WRITE8_HANDLER( mw8080bw_reversable_shift_count_w)
+WRITE8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_count_w)
{
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
- mb14241_shift_count_w(state->m_mb14241, offset, data);
+ mb14241_shift_count_w(m_mb14241, offset, data);
- state->m_rev_shift_res = data & 0x08;
+ m_rev_shift_res = data & 0x08;
}
@@ -248,7 +245,7 @@ MACHINE_CONFIG_END
#define SEAWOLF_ERASE_DIP_PORT_TAG ("ERASEDIP")
-static WRITE8_HANDLER( seawolf_explosion_lamp_w )
+WRITE8_MEMBER(mw8080bw_state::seawolf_explosion_lamp_w)
{
/* D0-D3 are column drivers and D4-D7 are row drivers.
The following table shows values that light up individual lamps.
@@ -300,7 +297,7 @@ static WRITE8_HANDLER( seawolf_explosion_lamp_w )
}
-static WRITE8_HANDLER( seawolf_periscope_lamp_w )
+WRITE8_MEMBER(mw8080bw_state::seawolf_periscope_lamp_w)
{
/* the schematics and the connecting diagrams show the
torpedo light order differently, but this order is
@@ -325,13 +322,13 @@ static CUSTOM_INPUT( seawolf_erase_input_r )
static ADDRESS_MAP_START( seawolf_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_shift_result_rev_r)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(seawolf_explosion_lamp_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(seawolf_periscope_lamp_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(seawolf_explosion_lamp_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(seawolf_periscope_lamp_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(seawolf_audio_w)
@@ -421,17 +418,16 @@ MACHINE_CONFIG_END
*
*************************************/
-static WRITE8_HANDLER( gunfight_io_w )
+WRITE8_MEMBER(mw8080bw_state::gunfight_io_w)
{
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
if (offset & 0x01)
- gunfight_audio_w(space, 0, data);
+ gunfight_audio_w(&space, 0, data);
if (offset & 0x02)
- mb14241_shift_count_w(state->m_mb14241, 0, data);
+ mb14241_shift_count_w(m_mb14241, 0, data);
if (offset & 0x04)
- mb14241_shift_data_w(state->m_mb14241, 0, data);
+ mb14241_shift_data_w(m_mb14241, 0, data);
}
@@ -444,7 +440,7 @@ static ADDRESS_MAP_START( gunfight_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
/* no decoder, just 3 AND gates */
- AM_RANGE(0x00, 0x07) AM_WRITE_LEGACY(gunfight_io_w)
+ AM_RANGE(0x00, 0x07) AM_WRITE(gunfight_io_w)
ADDRESS_MAP_END
@@ -617,18 +613,17 @@ static CUSTOM_INPUT( tornbase_score_input_r )
}
-static WRITE8_HANDLER( tornbase_io_w )
+WRITE8_MEMBER(mw8080bw_state::tornbase_io_w)
{
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
if (offset & 0x01)
- tornbase_audio_w(space->machine().device("discrete"), 0, data);
+ tornbase_audio_w(machine().device("discrete"), 0, data);
if (offset & 0x02)
- mb14241_shift_count_w(state->m_mb14241, 0, data);
+ mb14241_shift_count_w(m_mb14241, 0, data);
if (offset & 0x04)
- mb14241_shift_data_w(state->m_mb14241, 0, data);
+ mb14241_shift_data_w(m_mb14241, 0, data);
}
@@ -640,7 +635,7 @@ static ADDRESS_MAP_START( tornbase_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
/* no decoder, just 3 AND gates */
- AM_RANGE(0x00, 0x07) AM_WRITE_LEGACY(tornbase_io_w)
+ AM_RANGE(0x00, 0x07) AM_WRITE(tornbase_io_w)
ADDRESS_MAP_END
@@ -903,15 +898,15 @@ static MACHINE_START( maze )
}
-static WRITE8_HANDLER( maze_coin_counter_w )
+WRITE8_MEMBER(mw8080bw_state::maze_coin_counter_w)
{
/* the data is not used, just pulse the counter */
- coin_counter_w(space->machine(), 0, 0);
- coin_counter_w(space->machine(), 0, 1);
+ coin_counter_w(machine(), 0, 0);
+ coin_counter_w(machine(), 0, 1);
}
-static WRITE8_HANDLER( maze_io_w )
+WRITE8_MEMBER(mw8080bw_state::maze_io_w)
{
if (offset & 0x01) maze_coin_counter_w(space, 0, data);
@@ -925,7 +920,7 @@ static ADDRESS_MAP_START( maze_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
/* no decoder, just a couple of AND gates */
- AM_RANGE(0x00, 0x03) AM_WRITE_LEGACY(maze_io_w)
+ AM_RANGE(0x00, 0x03) AM_WRITE(maze_io_w)
ADDRESS_MAP_END
@@ -994,9 +989,9 @@ static ADDRESS_MAP_START( boothill_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
- AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_reversable_shift_result_r)
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(mw8080bw_reversable_shift_count_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("discrete", boothill_audio_w)
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(watchdog_reset_w)
@@ -1073,11 +1068,10 @@ MACHINE_CONFIG_END
*
*************************************/
-static WRITE8_HANDLER( checkmat_io_w )
+WRITE8_MEMBER(mw8080bw_state::checkmat_io_w)
{
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
- if (offset & 0x01) checkmat_audio_w(state->m_discrete, 0, data);
+ if (offset & 0x01) checkmat_audio_w(m_discrete, 0, data);
if (offset & 0x02) watchdog_reset_w(space, 0, data);
}
@@ -1091,7 +1085,7 @@ static ADDRESS_MAP_START( checkmat_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x03, 0x03) AM_READ_PORT("IN3")
/* no decoder, just a couple of AND gates */
- AM_RANGE(0x00, 0x03) AM_WRITE_LEGACY(checkmat_io_w)
+ AM_RANGE(0x00, 0x03) AM_WRITE(checkmat_io_w)
ADDRESS_MAP_END
@@ -1221,7 +1215,7 @@ static CUSTOM_INPUT( desertgu_dip_sw_0_1_r )
static ADDRESS_MAP_START( desertgu_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_shift_result_rev_r)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
@@ -1524,9 +1518,9 @@ static ADDRESS_MAP_START( gmissile_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
- AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_reversable_shift_result_r)
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(mw8080bw_reversable_shift_count_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
AM_RANGE(0x03, 0x03) AM_WRITE_LEGACY(gmissile_audio_1_w)
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(watchdog_reset_w)
@@ -1620,9 +1614,9 @@ static ADDRESS_MAP_START( m4_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN2")
- AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_reversable_shift_result_r)
+ AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_READ(mw8080bw_reversable_shift_result_r)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(mw8080bw_reversable_shift_count_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(mw8080bw_reversable_shift_count_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
AM_RANGE(0x03, 0x03) AM_WRITE_LEGACY(m4_audio_1_w)
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(watchdog_reset_w)
@@ -1966,7 +1960,7 @@ static ADDRESS_MAP_START( shuffle_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0xf) /* yes, 4, and no mirroring on the read handlers */
AM_RANGE(0x01, 0x01) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(mw8080bw_shift_result_rev_r)
+ AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN1")
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN2")
AM_RANGE(0x06, 0x06) AM_READ_PORT("IN3")
@@ -2173,35 +2167,34 @@ UINT8 spcenctr_get_trench_slope( *running_machine &machine , UINT8 addr )
}
#endif
-static WRITE8_HANDLER( spcenctr_io_w )
+WRITE8_MEMBER(mw8080bw_state::spcenctr_io_w)
{ /* A7 A6 A5 A4 A3 A2 A1 A0 */
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
if ((offset & 0x07) == 0x02)
watchdog_reset_w(space, 0, data); /* - - - - - 0 1 0 */
else if ((offset & 0x5f) == 0x01)
- spcenctr_audio_1_w(state->m_discrete, 0, data); /* - 0 - 0 0 0 0 1 */
+ spcenctr_audio_1_w(m_discrete, 0, data); /* - 0 - 0 0 0 0 1 */
else if ((offset & 0x5f) == 0x09)
- spcenctr_audio_2_w(state->m_discrete, 0, data); /* - 0 - 0 1 0 0 1 */
+ spcenctr_audio_2_w(m_discrete, 0, data); /* - 0 - 0 1 0 0 1 */
else if ((offset & 0x5f) == 0x11)
- spcenctr_audio_3_w(state->m_discrete, 0, data); /* - 0 - 1 0 0 0 1 */
+ spcenctr_audio_3_w(m_discrete, 0, data); /* - 0 - 1 0 0 0 1 */
else if ((offset & 0x07) == 0x03)
{ /* - - - - - 0 1 1 */
UINT8 addr = ((offset & 0xc0) >> 4) | ((offset & 0x18) >> 3);
- state->m_spcenctr_trench_slope[addr] = data;
+ m_spcenctr_trench_slope[addr] = data;
}
else if ((offset & 0x07) == 0x04)
- state->m_spcenctr_trench_center = data; /* - - - - - 1 0 0 */
+ m_spcenctr_trench_center = data; /* - - - - - 1 0 0 */
else if ((offset & 0x07) == 0x07)
- state->m_spcenctr_trench_width = data; /* - - - - - 1 1 1 */
+ m_spcenctr_trench_width = data; /* - - - - - 1 1 1 */
else
- logerror("%04x: Unmapped I/O port write to %02x = %02x\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("%04x: Unmapped I/O port write to %02x = %02x\n", cpu_get_pc(&space.device()), offset, data);
}
@@ -2213,7 +2206,7 @@ static ADDRESS_MAP_START( spcenctr_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x03, 0x03) AM_MIRROR(0xfc) AM_READNOP
/* complicated addressing logic */
- AM_RANGE(0x00, 0xff) AM_WRITE_LEGACY(spcenctr_io_w)
+ AM_RANGE(0x00, 0xff) AM_WRITE(spcenctr_io_w)
ADDRESS_MAP_END
@@ -2314,7 +2307,7 @@ static MACHINE_START( phantom2 )
static ADDRESS_MAP_START( phantom2_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_shift_result_rev_r)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
@@ -2392,17 +2385,16 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( bowler_shift_result_r )
+READ8_MEMBER(mw8080bw_state::bowler_shift_result_r)
{
/* ZV - not too sure why this is needed, I don't see
anything unusual on the schematics that would cause
the bits to flip */
- mw8080bw_state *state = space->machine().driver_data<mw8080bw_state>();
- return ~mb14241_shift_result_r(state->m_mb14241, 0);
+ return ~mb14241_shift_result_r(m_mb14241, 0);
}
-static WRITE8_HANDLER( bowler_lights_1_w )
+WRITE8_MEMBER(mw8080bw_state::bowler_lights_1_w)
{
output_set_value("200_LEFT_LIGHT", (data >> 0) & 0x01);
@@ -2423,7 +2415,7 @@ static WRITE8_HANDLER( bowler_lights_1_w )
}
-static WRITE8_HANDLER( bowler_lights_2_w )
+WRITE8_MEMBER(mw8080bw_state::bowler_lights_2_w)
{
output_set_value("REGULATION_GAME_LIGHT", ( data >> 0) & 0x01);
output_set_value("FLASH_GAME_LIGHT", (~data >> 0) & 0x01);
@@ -2440,9 +2432,9 @@ static WRITE8_HANDLER( bowler_lights_2_w )
static ADDRESS_MAP_START( bowler_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0xf) /* no masking on the reads, all 4 bits are decoded */
- AM_RANGE(0x01, 0x01) AM_READ_LEGACY(bowler_shift_result_r)
+ AM_RANGE(0x01, 0x01) AM_READ(bowler_shift_result_r)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(mw8080bw_shift_result_rev_r)
+ AM_RANGE(0x03, 0x03) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN1")
AM_RANGE(0x05, 0x05) AM_READ_PORT("IN2")
AM_RANGE(0x06, 0x06) AM_READ_PORT("IN3")
@@ -2452,11 +2444,11 @@ static ADDRESS_MAP_START( bowler_io_map, AS_IO, 8, mw8080bw_state )
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("discrete", bowler_audio_1_w)
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(bowler_audio_2_w)
- AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(bowler_lights_1_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(bowler_lights_1_w)
AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(bowler_audio_3_w)
AM_RANGE(0x09, 0x09) AM_WRITE_LEGACY(bowler_audio_4_w)
AM_RANGE(0x0a, 0x0a) AM_WRITE_LEGACY(bowler_audio_5_w)
- AM_RANGE(0x0e, 0x0e) AM_WRITE_LEGACY(bowler_lights_2_w)
+ AM_RANGE(0x0e, 0x0e) AM_WRITE(bowler_lights_2_w)
AM_RANGE(0x0f, 0x0f) AM_WRITE_LEGACY(bowler_audio_6_w)
ADDRESS_MAP_END
@@ -2762,7 +2754,7 @@ static CUSTOM_INPUT( blueshrk_coin_input_r )
static ADDRESS_MAP_START( blueshrk_io_map, AS_IO, 8, mw8080bw_state )
ADDRESS_MAP_GLOBAL_MASK(0x7)
- AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ_LEGACY(mw8080bw_shift_result_rev_r)
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0x04) AM_READ(mw8080bw_shift_result_rev_r)
AM_RANGE(0x01, 0x01) AM_MIRROR(0x04) AM_READ_PORT("IN0")
AM_RANGE(0x02, 0x02) AM_MIRROR(0x04) AM_READ_PORT("IN1")
AM_RANGE(0x03, 0x03) AM_MIRROR(0x04) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r)
diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c
index 535c213dd38..35c53a14bae 100644
--- a/src/mame/drivers/mystston.c
+++ b/src/mame/drivers/mystston.c
@@ -43,9 +43,9 @@ void mystston_on_scanline_interrupt(running_machine &machine)
}
-static WRITE8_HANDLER( irq_clear_w )
+WRITE8_MEMBER(mystston_state::irq_clear_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -70,25 +70,24 @@ static INPUT_CHANGED( coin_inserted )
*
*************************************/
-static WRITE8_HANDLER( mystston_ay8910_select_w )
+WRITE8_MEMBER(mystston_state::mystston_ay8910_select_w)
{
- mystston_state *state = space->machine().driver_data<mystston_state>();
/* bit 5 goes to 8910 #0 BDIR pin */
- if (((*state->m_ay8910_select & 0x20) == 0x20) && ((data & 0x20) == 0x00))
+ if (((*m_ay8910_select & 0x20) == 0x20) && ((data & 0x20) == 0x00))
{
/* bit 4 goes to the 8910 #0 BC1 pin */
- ay8910_data_address_w(space->machine().device("ay1"), *state->m_ay8910_select >> 4, *state->m_ay8910_data);
+ ay8910_data_address_w(machine().device("ay1"), *m_ay8910_select >> 4, *m_ay8910_data);
}
/* bit 7 goes to 8910 #1 BDIR pin */
- if (((*state->m_ay8910_select & 0x80) == 0x80) && ((data & 0x80) == 0x00))
+ if (((*m_ay8910_select & 0x80) == 0x80) && ((data & 0x80) == 0x00))
{
/* bit 6 goes to the 8910 #1 BC1 pin */
- ay8910_data_address_w(space->machine().device("ay2"), *state->m_ay8910_select >> 6, *state->m_ay8910_data);
+ ay8910_data_address_w(machine().device("ay2"), *m_ay8910_select >> 6, *m_ay8910_data);
}
- *state->m_ay8910_select = data;
+ *m_ay8910_select = data;
}
@@ -106,10 +105,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, mystston_state )
AM_RANGE(0x1000, 0x17ff) AM_RAM AM_BASE(m_fg_videoram)
AM_RANGE(0x1800, 0x1fff) AM_RAM AM_BASE(m_bg_videoram)
AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x1f8f) AM_READ_PORT("IN0") AM_WRITE_LEGACY(mystston_video_control_w) AM_BASE(m_video_control)
- AM_RANGE(0x2010, 0x2010) AM_MIRROR(0x1f8f) AM_READ_PORT("IN1") AM_WRITE_LEGACY(irq_clear_w)
+ AM_RANGE(0x2010, 0x2010) AM_MIRROR(0x1f8f) AM_READ_PORT("IN1") AM_WRITE(irq_clear_w)
AM_RANGE(0x2020, 0x2020) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW0") AM_WRITEONLY AM_BASE(m_scroll)
AM_RANGE(0x2030, 0x2030) AM_MIRROR(0x1f8f) AM_READ_PORT("DSW1") AM_WRITEONLY AM_BASE(m_ay8910_data)
- AM_RANGE(0x2040, 0x2040) AM_MIRROR(0x1f8f) AM_READNOP AM_WRITE_LEGACY(mystston_ay8910_select_w) AM_BASE(m_ay8910_select)
+ AM_RANGE(0x2040, 0x2040) AM_MIRROR(0x1f8f) AM_READNOP AM_WRITE(mystston_ay8910_select_w) AM_BASE(m_ay8910_select)
AM_RANGE(0x2050, 0x2050) AM_MIRROR(0x1f8f) AM_NOP
AM_RANGE(0x2060, 0x207f) AM_MIRROR(0x1f80) AM_RAM AM_BASE(m_paletteram)
AM_RANGE(0x4000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c
index cf8008f64f6..5e9aaa1111a 100644
--- a/src/mame/drivers/mystwarr.c
+++ b/src/mame/drivers/mystwarr.c
@@ -59,11 +59,11 @@ static const eeprom_interface gaia_eeprom_intf =
"0100110000000" /* unlock command */
};
-static READ16_HANDLER( eeprom_r )
+READ16_MEMBER(mystwarr_state::eeprom_r)
{
if (ACCESSING_BITS_0_7)
{
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
}
// logerror("msb access to eeprom port\n");
@@ -71,32 +71,32 @@ static READ16_HANDLER( eeprom_r )
return 0;
}
-static WRITE16_HANDLER( mweeprom_w )
+WRITE16_MEMBER(mystwarr_state::mweeprom_w)
{
if (ACCESSING_BITS_8_15)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xffff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xffff);
}
// logerror("unknown LSB write %x to eeprom\n", data);
}
-static READ16_HANDLER( dddeeprom_r )
+READ16_MEMBER(mystwarr_state::dddeeprom_r)
{
if (ACCESSING_BITS_8_15)
{
- return input_port_read(space->machine(), "IN1") << 8;
+ return input_port_read(machine(), "IN1") << 8;
}
- return input_port_read(space->machine(), "P2");
+ return input_port_read(machine(), "P2");
}
-static WRITE16_HANDLER( mmeeprom_w )
+WRITE16_MEMBER(mystwarr_state::mmeeprom_w)
{
if (ACCESSING_BITS_0_7)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
}
@@ -160,34 +160,34 @@ static INTERRUPT_GEN(ddd_interrupt)
/**********************************************************************************/
-static WRITE16_HANDLER( sound_cmd1_w )
+WRITE16_MEMBER(mystwarr_state::sound_cmd1_w)
{
soundlatch_w(space, 0, data&0xff);
}
-static WRITE16_HANDLER( sound_cmd1_msb_w )
+WRITE16_MEMBER(mystwarr_state::sound_cmd1_msb_w)
{
soundlatch_w(space, 0, data>>8);
}
-static WRITE16_HANDLER( sound_cmd2_w )
+WRITE16_MEMBER(mystwarr_state::sound_cmd2_w)
{
soundlatch2_w(space, 0, data&0xff);
return;
}
-static WRITE16_HANDLER( sound_cmd2_msb_w )
+WRITE16_MEMBER(mystwarr_state::sound_cmd2_msb_w)
{
soundlatch2_w(space, 0, data>>8);
return;
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(mystwarr_state::sound_irq_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "soundcpu", 0, HOLD_LINE);
}
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(mystwarr_state::sound_status_r)
{
int latch = soundlatch3_r(space,0);
@@ -196,7 +196,7 @@ static READ16_HANDLER( sound_status_r )
return latch;
}
-static READ16_HANDLER( sound_status_msb_r )
+READ16_MEMBER(mystwarr_state::sound_status_msb_r)
{
int latch = soundlatch3_r(space,0);
@@ -205,14 +205,13 @@ static READ16_HANDLER( sound_status_msb_r )
return latch<<8;
}
-static WRITE16_HANDLER( irq_ack_w )
+WRITE16_MEMBER(mystwarr_state::irq_ack_w)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
- K056832_b_word_w(space, offset, data, mem_mask);
+ K056832_b_word_w(&space, offset, data, mem_mask);
if (offset == 3 && ACCESSING_BITS_0_7)
{
- state->m_mw_irq_control = data&0xff;
+ m_mw_irq_control = data&0xff;
// if ((data &0xf0) != 0xd0) logerror("Unknown write to IRQ reg: %x\n", data);
@@ -221,31 +220,29 @@ static WRITE16_HANDLER( irq_ack_w )
/* the interface with the 053247 is weird. The chip can address only 0x1000 bytes */
/* of RAM, but they put 0x10000 there. The CPU can access them all. */
-static READ16_HANDLER( K053247_scattered_word_r )
+READ16_MEMBER(mystwarr_state::K053247_scattered_word_r)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
if (offset & 0x0078)
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
else
{
offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4);
- return K053247_word_r(space,offset,mem_mask);
+ return K053247_word_r(&space,offset,mem_mask);
}
}
-static WRITE16_HANDLER( K053247_scattered_word_w )
+WRITE16_MEMBER(mystwarr_state::K053247_scattered_word_w)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
if (offset & 0x0078)
{
-// mame_printf_debug("spr write %x to %x (PC=%x)\n", data, offset, cpu_get_pc(&space->device()));
- COMBINE_DATA(state->m_spriteram+offset);
+// mame_printf_debug("spr write %x to %x (PC=%x)\n", data, offset, cpu_get_pc(&space.device()));
+ COMBINE_DATA(m_spriteram+offset);
}
else
{
offset = (offset & 0x0007) | ((offset & 0x7f80) >> 4);
- K053247_word_w(space,offset,data,mem_mask);
+ K053247_word_w(&space,offset,data,mem_mask);
}
}
@@ -254,26 +251,26 @@ static WRITE16_HANDLER( K053247_scattered_word_w )
static ADDRESS_MAP_START( mystwarr_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_gx_workram)
- AM_RANGE(0x400000, 0x40ffff) AM_READWRITE_LEGACY(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x480000, 0x4800ff) AM_WRITE_LEGACY(K055555_word_w)
AM_RANGE(0x482000, 0x48200f) AM_READ_LEGACY(K055673_rom_word_r)
AM_RANGE(0x482010, 0x48201f) AM_WRITE_LEGACY(K053247_reg_word_w)
AM_RANGE(0x484000, 0x484007) AM_WRITE_LEGACY(K053246_word_w)
AM_RANGE(0x48a000, 0x48a01f) AM_WRITE_LEGACY(K054338_word_w)
AM_RANGE(0x48c000, 0x48c03f) AM_WRITE_LEGACY(K056832_word_w)
- AM_RANGE(0x490000, 0x490001) AM_WRITE_LEGACY(mweeprom_w)
+ AM_RANGE(0x490000, 0x490001) AM_WRITE(mweeprom_w)
AM_RANGE(0x492000, 0x492001) AM_WRITENOP // watchdog
AM_RANGE(0x494000, 0x494001) AM_READ_PORT("P1_P2")
AM_RANGE(0x494002, 0x494003) AM_READ_PORT("P3_P4")
AM_RANGE(0x496000, 0x496001) AM_READ_PORT("IN0")
- AM_RANGE(0x496002, 0x496003) AM_READ_LEGACY(eeprom_r)
- AM_RANGE(0x49800c, 0x49800d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x49800e, 0x49800f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x498014, 0x498015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x496002, 0x496003) AM_READ(eeprom_r)
+ AM_RANGE(0x49800c, 0x49800d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x49800e, 0x49800f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x498014, 0x498015) AM_READ(sound_status_r)
AM_RANGE(0x498000, 0x49801f) AM_RAM
- AM_RANGE(0x49a000, 0x49a001) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x49a000, 0x49a001) AM_WRITE(sound_irq_w)
AM_RANGE(0x49c000, 0x49c01f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
- AM_RANGE(0x49e000, 0x49e007) AM_WRITE_LEGACY(irq_ack_w) // VSCCS (custom)
+ AM_RANGE(0x49e000, 0x49e007) AM_WRITE(irq_ack_w) // VSCCS (custom)
AM_RANGE(0x600000, 0x601fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w)
AM_RANGE(0x602000, 0x603fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read(essential)
AM_RANGE(0x680000, 0x683fff) AM_READ_LEGACY(K056832_mw_rom_word_r)
@@ -301,19 +298,19 @@ static ADDRESS_MAP_START( metamrph_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x254000, 0x25401f) AM_WRITE_LEGACY(K054338_word_w)
AM_RANGE(0x258000, 0x2580ff) AM_WRITE_LEGACY(K055555_word_w)
AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
- AM_RANGE(0x264000, 0x264001) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x26800c, 0x26800d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x26800e, 0x26800f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x268014, 0x268015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r)
AM_RANGE(0x268000, 0x26801f) AM_RAM
AM_RANGE(0x26c000, 0x26c007) AM_WRITE_LEGACY(K056832_b_word_w)
AM_RANGE(0x270000, 0x27003f) AM_WRITE_LEGACY(K056832_word_w)
AM_RANGE(0x274000, 0x274001) AM_READ_PORT("P1_P3")
AM_RANGE(0x274002, 0x274003) AM_READ_PORT("P2_P4")
AM_RANGE(0x278000, 0x278001) AM_READ_PORT("IN0")
- AM_RANGE(0x278002, 0x278003) AM_READ_LEGACY(eeprom_r)
+ AM_RANGE(0x278002, 0x278003) AM_READ(eeprom_r)
AM_RANGE(0x27c000, 0x27c001) AM_READNOP // watchdog lives here
- AM_RANGE(0x27c000, 0x27c001) AM_WRITE_LEGACY(mmeeprom_w)
+ AM_RANGE(0x27c000, 0x27c001) AM_WRITE(mmeeprom_w)
AM_RANGE(0x300000, 0x301fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w)
AM_RANGE(0x302000, 0x303fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read/write (essential)
AM_RANGE(0x310000, 0x311fff) AM_READ_LEGACY(K056832_mw_rom_word_r)
@@ -344,19 +341,19 @@ static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x258000, 0x2580ff) AM_WRITE_LEGACY(K055555_word_w)
AM_RANGE(0x25c000, 0x25c03f) AM_READWRITE_LEGACY(K055550_word_r,K055550_word_w)
AM_RANGE(0x260000, 0x26001f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
- AM_RANGE(0x264000, 0x264001) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x26800c, 0x26800d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x26800e, 0x26800f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x268014, 0x268015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x264000, 0x264001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x26800c, 0x26800d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x26800e, 0x26800f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x268014, 0x268015) AM_READ(sound_status_r)
AM_RANGE(0x268000, 0x26801f) AM_RAM
AM_RANGE(0x26c000, 0x26c007) AM_WRITE_LEGACY(K056832_b_word_w)
AM_RANGE(0x270000, 0x27003f) AM_WRITE_LEGACY(K056832_word_w)
AM_RANGE(0x274000, 0x274001) AM_READ_PORT("P1_P3")
AM_RANGE(0x274002, 0x274003) AM_READ_PORT("P2_P4")
AM_RANGE(0x278000, 0x278001) AM_READ_PORT("IN0")
- AM_RANGE(0x278002, 0x278003) AM_READ_LEGACY(eeprom_r)
+ AM_RANGE(0x278002, 0x278003) AM_READ(eeprom_r)
AM_RANGE(0x27c000, 0x27c001) AM_READNOP // watchdog lives here
- AM_RANGE(0x27c000, 0x27c001) AM_WRITE_LEGACY(mmeeprom_w)
+ AM_RANGE(0x27c000, 0x27c001) AM_WRITE(mmeeprom_w)
AM_RANGE(0x300000, 0x301fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w)
AM_RANGE(0x302000, 0x303fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read(essential)
AM_RANGE(0x304000, 0x3041ff) AM_RAM
@@ -373,45 +370,41 @@ static ADDRESS_MAP_START( viostorm_map, AS_PROGRAM, 16, mystwarr_state )
ADDRESS_MAP_END
// Martial Champion specific interfaces
-static READ16_HANDLER( K053247_martchmp_word_r )
+READ16_MEMBER(mystwarr_state::K053247_martchmp_word_r)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
if (offset & 0x0018)
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
else
{
offset = (offset & 0x0007) | ((offset & 0x1fe0) >> 2);
- return K053247_word_r(space,offset,mem_mask);
+ return K053247_word_r(&space,offset,mem_mask);
}
}
-static WRITE16_HANDLER( K053247_martchmp_word_w )
+WRITE16_MEMBER(mystwarr_state::K053247_martchmp_word_w)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
if (offset & 0x0018)
{
- COMBINE_DATA(state->m_spriteram+offset);
+ COMBINE_DATA(m_spriteram+offset);
}
else
{
offset = (offset & 0x0007) | ((offset & 0x1fe0) >> 2);
- K053247_word_w(space,offset,data,mem_mask);
+ K053247_word_w(&space,offset,data,mem_mask);
}
}
-static READ16_HANDLER( mccontrol_r )
+READ16_MEMBER(mystwarr_state::mccontrol_r)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
- return state->m_mw_irq_control<<8;
+ return m_mw_irq_control<<8;
}
-static WRITE16_HANDLER( mccontrol_w )
+WRITE16_MEMBER(mystwarr_state::mccontrol_w)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
if (ACCESSING_BITS_8_15)
{
- state->m_mw_irq_control = data>>8;
+ m_mw_irq_control = data>>8;
// bit 0 = watchdog
// bit 1 = IRQ enable
// bit 2 = OBJCHA
@@ -438,20 +431,20 @@ static ADDRESS_MAP_START( martchmp_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x40a000, 0x40a01f) AM_WRITE_LEGACY(K054338_word_w) // CLTC
AM_RANGE(0x40c000, 0x40c03f) AM_WRITE_LEGACY(K056832_word_w) // VACSET
AM_RANGE(0x40e000, 0x40e03f) AM_WRITE_LEGACY(K053990_martchmp_word_w) // protection
- AM_RANGE(0x410000, 0x410001) AM_WRITE_LEGACY(mweeprom_w)
- AM_RANGE(0x412000, 0x412001) AM_READWRITE_LEGACY(mccontrol_r,mccontrol_w)
+ AM_RANGE(0x410000, 0x410001) AM_WRITE(mweeprom_w)
+ AM_RANGE(0x412000, 0x412001) AM_READWRITE(mccontrol_r,mccontrol_w)
AM_RANGE(0x414000, 0x414001) AM_READ_PORT("P1_P2")
AM_RANGE(0x414002, 0x414003) AM_READ_PORT("P3_P4")
AM_RANGE(0x416000, 0x416001) AM_READ_PORT("IN0")
- AM_RANGE(0x416002, 0x416003) AM_READ_LEGACY(eeprom_r) // eeprom read
- AM_RANGE(0x418014, 0x418015) AM_READ_LEGACY(sound_status_r) // z80 status
- AM_RANGE(0x41800c, 0x41800d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x41800e, 0x41800f) AM_WRITE_LEGACY(sound_cmd2_w)
+ AM_RANGE(0x416002, 0x416003) AM_READ(eeprom_r) // eeprom read
+ AM_RANGE(0x418014, 0x418015) AM_READ(sound_status_r) // z80 status
+ AM_RANGE(0x41800c, 0x41800d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x41800e, 0x41800f) AM_WRITE(sound_cmd2_w)
AM_RANGE(0x418000, 0x41801f) AM_RAM // sound regs fall through
- AM_RANGE(0x41a000, 0x41a001) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x41a000, 0x41a001) AM_WRITE(sound_irq_w)
AM_RANGE(0x41c000, 0x41c01f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff) // CCU
AM_RANGE(0x41e000, 0x41e007) AM_WRITE_LEGACY(K056832_b_word_w) // VSCCS
- AM_RANGE(0x480000, 0x483fff) AM_READWRITE_LEGACY(K053247_martchmp_word_r,K053247_martchmp_word_w) AM_BASE(m_spriteram) // sprite RAM
+ AM_RANGE(0x480000, 0x483fff) AM_READWRITE(K053247_martchmp_word_r,K053247_martchmp_word_w) AM_BASE(m_spriteram) // sprite RAM
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE_LEGACY(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram) // palette RAM
AM_RANGE(0x680000, 0x681fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
AM_RANGE(0x682000, 0x683fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read/write (essential)
@@ -470,7 +463,7 @@ ADDRESS_MAP_END
/* Ultimate Battler Dadandarn */
static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM // main program and data ROM
- AM_RANGE(0x400000, 0x40ffff) AM_READWRITE_LEGACY(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x410000, 0x411fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
AM_RANGE(0x412000, 0x413fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read/write (essential)
AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE_LEGACY(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram)
@@ -485,18 +478,18 @@ static ADDRESS_MAP_START( dadandrn_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x484000, 0x484003) AM_WRITE_LEGACY(ddd_053936_clip_w)
AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
AM_RANGE(0x488000, 0x4880ff) AM_WRITE_LEGACY(K055555_word_w)
- AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE_LEGACY(sound_cmd1_msb_w)
- AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE_LEGACY(sound_cmd2_msb_w)
- AM_RANGE(0x48a014, 0x48a015) AM_READ_LEGACY(sound_status_msb_r)
+ AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w)
+ AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w)
+ AM_RANGE(0x48a014, 0x48a015) AM_READ(sound_status_msb_r)
AM_RANGE(0x48a000, 0x48a01f) AM_RAM // sound regs fall-through
AM_RANGE(0x48c000, 0x48c01f) AM_WRITE_LEGACY(K054338_word_w)
AM_RANGE(0x48e000, 0x48e001) AM_READ_PORT("IN0_P1") // bit 3 (0x8) is test switch
- AM_RANGE(0x48e020, 0x48e021) AM_READ_LEGACY(dddeeprom_r)
+ AM_RANGE(0x48e020, 0x48e021) AM_READ(dddeeprom_r)
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE(m_gx_workram)
AM_RANGE(0x680000, 0x68003f) AM_READWRITE_LEGACY(K055550_word_r,K055550_word_w)
- AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE_LEGACY(mmeeprom_w)
+ AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w)
AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE_LEGACY(ddd_053936_enable_w)
- AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w)
AM_RANGE(0x800000, 0x87ffff) AM_READ_LEGACY(ddd_053936_tilerom_0_r) // 256k tilemap readback
AM_RANGE(0xa00000, 0xa7ffff) AM_READ_LEGACY(ddd_053936_tilerom_1_r) // 128k tilemap readback
AM_RANGE(0xc00000, 0xdfffff) AM_READ_LEGACY(ddd_053936_tilerom_2_r) // tile character readback
@@ -517,7 +510,7 @@ ADDRESS_MAP_END
// c00000 = 936 tiles (7fffff window)
static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x000000, 0x2fffff) AM_ROM // main program
- AM_RANGE(0x400000, 0x40ffff) AM_READWRITE_LEGACY(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(K053247_scattered_word_r,K053247_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x410000, 0x411fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM
AM_RANGE(0x412000, 0x413fff) AM_READWRITE_LEGACY(K056832_ram_word_r,K056832_ram_word_w) // tilemap RAM mirror read / write (essential)
AM_RANGE(0x420000, 0x421fff) AM_RAM_WRITE_LEGACY(paletteram16_xrgb_word_be_w) AM_BASE_GENERIC(paletteram)
@@ -532,18 +525,18 @@ static ADDRESS_MAP_START( gaiapols_map, AS_PROGRAM, 16, mystwarr_state )
AM_RANGE(0x484000, 0x484003) AM_WRITE_LEGACY(ddd_053936_clip_w)
AM_RANGE(0x486000, 0x48601f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0x00ff)
AM_RANGE(0x488000, 0x4880ff) AM_WRITE_LEGACY(K055555_word_w)
- AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE_LEGACY(sound_cmd1_msb_w)
- AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE_LEGACY(sound_cmd2_msb_w)
- AM_RANGE(0x48a014, 0x48a015) AM_READ_LEGACY(sound_status_msb_r)
+ AM_RANGE(0x48a00c, 0x48a00d) AM_WRITE(sound_cmd1_msb_w)
+ AM_RANGE(0x48a00e, 0x48a00f) AM_WRITE(sound_cmd2_msb_w)
+ AM_RANGE(0x48a014, 0x48a015) AM_READ(sound_status_msb_r)
AM_RANGE(0x48a000, 0x48a01f) AM_RAM // sound regs fall-through
AM_RANGE(0x48c000, 0x48c01f) AM_WRITE_LEGACY(K054338_word_w)
AM_RANGE(0x48e000, 0x48e001) AM_READ_PORT("IN0_P1") // bit 3 (0x8) is test switch
- AM_RANGE(0x48e020, 0x48e021) AM_READ_LEGACY(dddeeprom_r)
+ AM_RANGE(0x48e020, 0x48e021) AM_READ(dddeeprom_r)
AM_RANGE(0x600000, 0x60ffff) AM_RAM AM_BASE(m_gx_workram)
AM_RANGE(0x660000, 0x6600ff) AM_READWRITE_LEGACY(K054000_lsb_r,K054000_lsb_w)
- AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE_LEGACY(mmeeprom_w)
+ AM_RANGE(0x6a0000, 0x6a0001) AM_WRITE(mmeeprom_w)
AM_RANGE(0x6c0000, 0x6c0001) AM_WRITE_LEGACY(ddd_053936_enable_w)
- AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x6e0000, 0x6e0001) AM_WRITE(sound_irq_w)
AM_RANGE(0x800000, 0x87ffff) AM_READ_LEGACY(gai_053936_tilerom_0_r) // 256k tilemap readback
AM_RANGE(0xa00000, 0xa7ffff) AM_READ_LEGACY(ddd_053936_tilerom_1_r) // 128k tilemap readback
AM_RANGE(0xc00000, 0xdfffff) AM_READ_LEGACY(gai_053936_tilerom_2_r) // tile character readback
@@ -567,11 +560,10 @@ static void reset_sound_region(running_machine &machine)
memory_set_bankptr(machine, "bank2", machine.region("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(mystwarr_state::sound_bankswitch_w)
{
- mystwarr_state *state = space->machine().driver_data<mystwarr_state>();
- state->m_cur_sound_region = (data & 0xf);
- reset_sound_region(space->machine());
+ m_cur_sound_region = (data & 0xf);
+ reset_sound_region(machine());
}
/* sound memory maps
@@ -594,7 +586,7 @@ static ADDRESS_MAP_START( mystwarr_sound_map, AS_PROGRAM, 8, mystwarr_state )
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ_LEGACY(soundlatch2_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0xfff0, 0xfff3) AM_WRITENOP // unknown write
ADDRESS_MAP_END
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index 5460eac4327..c9e8a74f9f8 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -17,22 +17,19 @@
#define MASTER_CLOCK XTAL_20_16MHz
-static WRITE8_HANDLER( n8080_shift_bits_w )
+WRITE8_MEMBER(n8080_state::n8080_shift_bits_w)
{
- n8080_state *state = space->machine().driver_data<n8080_state>();
- state->m_shift_bits = data & 7;
+ m_shift_bits = data & 7;
}
-static WRITE8_HANDLER( n8080_shift_data_w )
+WRITE8_MEMBER(n8080_state::n8080_shift_data_w)
{
- n8080_state *state = space->machine().driver_data<n8080_state>();
- state->m_shift_data = (state->m_shift_data >> 8) | (data << 8);
+ m_shift_data = (m_shift_data >> 8) | (data << 8);
}
-static READ8_HANDLER( n8080_shift_r )
+READ8_MEMBER(n8080_state::n8080_shift_r)
{
- n8080_state *state = space->machine().driver_data<n8080_state>();
- return state->m_shift_data >> (8 - state->m_shift_bits);
+ return m_shift_data >> (8 - m_shift_bits);
}
static ADDRESS_MAP_START( main_cpu_map, AS_PROGRAM, 8, n8080_state )
@@ -53,11 +50,11 @@ static ADDRESS_MAP_START( main_io_map, AS_IO, 8, n8080_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(n8080_shift_r)
+ AM_RANGE(0x03, 0x03) AM_READ(n8080_shift_r)
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN3")
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(n8080_shift_bits_w)
- AM_RANGE(0x03, 0x03) AM_WRITE_LEGACY(n8080_shift_data_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(n8080_shift_bits_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(n8080_shift_data_w)
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(n8080_sound_1_w)
AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(n8080_sound_2_w)
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(n8080_video_control_w)
diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c
index bdd5aa86716..a81f8b8a26f 100644
--- a/src/mame/drivers/namcofl.c
+++ b/src/mame/drivers/namcofl.c
@@ -166,66 +166,62 @@ OSC3: 48.384MHz
#include "includes/namcofl.h"
-static READ32_HANDLER( fl_unk1_r )
+READ32_MEMBER(namcofl_state::fl_unk1_r)
{
return 0xffffffff;
}
-static READ32_HANDLER( fl_network_r )
+READ32_MEMBER(namcofl_state::fl_network_r)
{
return 0xffffffff;
}
-static READ32_HANDLER( namcofl_sysreg_r )
+READ32_MEMBER(namcofl_state::namcofl_sysreg_r)
{
return 0;
}
-static WRITE32_HANDLER( namcofl_sysreg_w )
+WRITE32_MEMBER(namcofl_state::namcofl_sysreg_w)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- if ((offset == 2) && ACCESSING_BITS_0_7) // address space configuration
+ if ((offset == 2) && ACCESSING_BITS_0_7) // address &space configuration
{
if (data == 0) // RAM at 00000000, ROM at 10000000
{
- memory_set_bankptr(space->machine(), "bank1", state->m_workram );
- memory_set_bankptr(space->machine(), "bank2", space->machine().region("maincpu")->base() );
+ memory_set_bankptr(machine(), "bank1", m_workram );
+ memory_set_bankptr(machine(), "bank2", machine().region("maincpu")->base() );
}
else // ROM at 00000000, RAM at 10000000
{
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() );
- memory_set_bankptr(space->machine(), "bank2", state->m_workram );
+ memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() );
+ memory_set_bankptr(machine(), "bank2", m_workram );
}
}
}
-static WRITE32_HANDLER( namcofl_paletteram_w )
+WRITE32_MEMBER(namcofl_state::namcofl_paletteram_w)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
if ((offset == 0x1808/4) && ACCESSING_BITS_16_31)
{
- UINT16 v = space->machine().generic.paletteram.u32[offset] >> 16;
+ UINT16 v = machine().generic.paletteram.u32[offset] >> 16;
UINT16 triggerscanline=(((v>>8)&0xff)|((v&0xff)<<8))-(32+1);
- state->m_raster_interrupt_timer->adjust(space->machine().primary_screen->time_until_pos(triggerscanline));
+ m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(triggerscanline));
}
}
-static READ32_HANDLER( namcofl_share_r )
+READ32_MEMBER(namcofl_state::namcofl_share_r)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- return (state->m_shareram[offset*2+1] << 16) | state->m_shareram[offset*2];
+ return (m_shareram[offset*2+1] << 16) | m_shareram[offset*2];
}
-static WRITE32_HANDLER( namcofl_share_w )
+WRITE32_MEMBER(namcofl_state::namcofl_share_w)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- COMBINE_DATA(state->m_shareram+offset*2);
+ COMBINE_DATA(m_shareram+offset*2);
data >>= 16;
mem_mask >>= 16;
- COMBINE_DATA(state->m_shareram+offset*2+1);
+ COMBINE_DATA(m_shareram+offset*2+1);
}
static ADDRESS_MAP_START( namcofl_mem, AS_PROGRAM, 32, namcofl_state )
@@ -234,24 +230,23 @@ static ADDRESS_MAP_START( namcofl_mem, AS_PROGRAM, 32, namcofl_state )
AM_RANGE(0x20000000, 0x201fffff) AM_ROM AM_REGION("user1", 0) /* data */
AM_RANGE(0x30000000, 0x30001fff) AM_RAM AM_SHARE("nvram") /* nvram */
AM_RANGE(0x30100000, 0x30100003) AM_WRITE_LEGACY(namcofl_spritebank_w)
- AM_RANGE(0x30284000, 0x3028bfff) AM_READWRITE_LEGACY(namcofl_share_r, namcofl_share_w)
+ AM_RANGE(0x30284000, 0x3028bfff) AM_READWRITE(namcofl_share_r, namcofl_share_w)
AM_RANGE(0x30300000, 0x30303fff) AM_RAM /* COMRAM */
- AM_RANGE(0x30380000, 0x303800ff) AM_READ_LEGACY(fl_network_r ) /* network registers */
- AM_RANGE(0x30400000, 0x3040ffff) AM_RAM_WRITE_LEGACY(namcofl_paletteram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x30380000, 0x303800ff) AM_READ(fl_network_r ) /* network registers */
+ AM_RANGE(0x30400000, 0x3040ffff) AM_RAM_WRITE(namcofl_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x30800000, 0x3080ffff) AM_READWRITE_LEGACY(namco_tilemapvideoram32_le_r, namco_tilemapvideoram32_le_w )
AM_RANGE(0x30a00000, 0x30a0003f) AM_READWRITE_LEGACY(namco_tilemapcontrol32_le_r, namco_tilemapcontrol32_le_w )
AM_RANGE(0x30c00000, 0x30c1ffff) AM_READWRITE_LEGACY(namco_rozvideoram32_le_r,namco_rozvideoram32_le_w)
AM_RANGE(0x30d00000, 0x30d0001f) AM_READWRITE_LEGACY(namco_rozcontrol32_le_r,namco_rozcontrol32_le_w)
AM_RANGE(0x30e00000, 0x30e1ffff) AM_READWRITE_LEGACY(namco_obj32_le_r, namco_obj32_le_w)
AM_RANGE(0x30f00000, 0x30f0000f) AM_RAM /* NebulaM2 code says this is int enable at 0000, int request at 0004, but doesn't do much about it */
- AM_RANGE(0x40000000, 0x4000005f) AM_READWRITE_LEGACY(namcofl_sysreg_r, namcofl_sysreg_w )
- AM_RANGE(0xfffffffc, 0xffffffff) AM_READ_LEGACY(fl_unk1_r )
+ AM_RANGE(0x40000000, 0x4000005f) AM_READWRITE(namcofl_sysreg_r, namcofl_sysreg_w )
+ AM_RANGE(0xfffffffc, 0xffffffff) AM_READ(fl_unk1_r )
ADDRESS_MAP_END
-static WRITE16_HANDLER( mcu_shared_w )
+WRITE16_MEMBER(namcofl_state::mcu_shared_w)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
// HACK! Many games data ROM routines redirect the vector from the sound command read to an RTS.
// This needs more investigation. nebulray and vshoot do NOT do this.
// Timers A2 and A3 are set up in "external input counter" mode, this may be related.
@@ -262,44 +257,41 @@ static WRITE16_HANDLER( mcu_shared_w )
}
#endif
- COMBINE_DATA(&state->m_shareram[offset]);
+ COMBINE_DATA(&m_shareram[offset]);
// C75 BIOS has a very short window on the CPU sync signal, so immediately let the i960 at it
if ((offset == 0x6000/2) && (data & 0x80))
{
- device_yield(&space->device());
+ device_yield(&space.device());
}
}
-static READ8_HANDLER( port6_r )
+READ8_MEMBER(namcofl_state::port6_r)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- return state->m_mcu_port6;
+ return m_mcu_port6;
}
-static WRITE8_HANDLER( port6_w )
+WRITE8_MEMBER(namcofl_state::port6_w)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- state->m_mcu_port6 = data;
+ m_mcu_port6 = data;
}
-static READ8_HANDLER( port7_r )
+READ8_MEMBER(namcofl_state::port7_r)
{
- namcofl_state *state = space->machine().driver_data<namcofl_state>();
- switch (state->m_mcu_port6 & 0xf0)
+ switch (m_mcu_port6 & 0xf0)
{
case 0x00:
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x20:
- return input_port_read(space->machine(), "MISC");
+ return input_port_read(machine(), "MISC");
case 0x40:
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 0x60:
- return input_port_read(space->machine(), "IN2");
+ return input_port_read(machine(), "IN2");
default:
break;
@@ -308,45 +300,45 @@ static READ8_HANDLER( port7_r )
return 0xff;
}
-static READ8_HANDLER(dac7_r)
+READ8_MEMBER(namcofl_state::dac7_r)
{
- return input_port_read_safe(space->machine(), "ACCEL", 0xff);
+ return input_port_read_safe(machine(), "ACCEL", 0xff);
}
-static READ8_HANDLER(dac6_r)
+READ8_MEMBER(namcofl_state::dac6_r)
{
- return input_port_read_safe(space->machine(), "BRAKE", 0xff);
+ return input_port_read_safe(machine(), "BRAKE", 0xff);
}
-static READ8_HANDLER(dac5_r)
+READ8_MEMBER(namcofl_state::dac5_r)
{
- return input_port_read_safe(space->machine(), "WHEEL", 0xff);
+ return input_port_read_safe(machine(), "WHEEL", 0xff);
}
-static READ8_HANDLER(dac4_r) { return 0xff; }
-static READ8_HANDLER(dac3_r) { return 0xff; }
-static READ8_HANDLER(dac2_r) { return 0xff; }
-static READ8_HANDLER(dac1_r) { return 0xff; }
-static READ8_HANDLER(dac0_r) { return 0xff; }
+READ8_MEMBER(namcofl_state::dac4_r){ return 0xff; }
+READ8_MEMBER(namcofl_state::dac3_r){ return 0xff; }
+READ8_MEMBER(namcofl_state::dac2_r){ return 0xff; }
+READ8_MEMBER(namcofl_state::dac1_r){ return 0xff; }
+READ8_MEMBER(namcofl_state::dac0_r){ return 0xff; }
static ADDRESS_MAP_START( namcoc75_am, AS_PROGRAM, 16, namcofl_state )
AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE("c352", c352_device, read, write)
- AM_RANGE(0x004000, 0x00bfff) AM_RAM_WRITE_LEGACY(mcu_shared_w) AM_BASE(m_shareram)
+ AM_RANGE(0x004000, 0x00bfff) AM_RAM_WRITE(mcu_shared_w) AM_BASE(m_shareram)
AM_RANGE(0x00c000, 0x00ffff) AM_ROM AM_REGION("c75", 0)
AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("c75data", 0)
ADDRESS_MAP_END
static ADDRESS_MAP_START( namcoc75_io, AS_IO, 8, namcofl_state )
- AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE_LEGACY(port6_r, port6_w)
- AM_RANGE(M37710_PORT7, M37710_PORT7) AM_READ_LEGACY(port7_r)
- AM_RANGE(M37710_ADC7_L, M37710_ADC7_L) AM_READ_LEGACY(dac7_r)
- AM_RANGE(M37710_ADC6_L, M37710_ADC6_L) AM_READ_LEGACY(dac6_r)
- AM_RANGE(M37710_ADC5_L, M37710_ADC5_L) AM_READ_LEGACY(dac5_r)
- AM_RANGE(M37710_ADC4_L, M37710_ADC4_L) AM_READ_LEGACY(dac4_r)
- AM_RANGE(M37710_ADC3_L, M37710_ADC3_L) AM_READ_LEGACY(dac3_r)
- AM_RANGE(M37710_ADC2_L, M37710_ADC2_L) AM_READ_LEGACY(dac2_r)
- AM_RANGE(M37710_ADC1_L, M37710_ADC1_L) AM_READ_LEGACY(dac1_r)
- AM_RANGE(M37710_ADC0_L, M37710_ADC0_L) AM_READ_LEGACY(dac0_r)
+ AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE(port6_r, port6_w)
+ AM_RANGE(M37710_PORT7, M37710_PORT7) AM_READ(port7_r)
+ AM_RANGE(M37710_ADC7_L, M37710_ADC7_L) AM_READ(dac7_r)
+ AM_RANGE(M37710_ADC6_L, M37710_ADC6_L) AM_READ(dac6_r)
+ AM_RANGE(M37710_ADC5_L, M37710_ADC5_L) AM_READ(dac5_r)
+ AM_RANGE(M37710_ADC4_L, M37710_ADC4_L) AM_READ(dac4_r)
+ AM_RANGE(M37710_ADC3_L, M37710_ADC3_L) AM_READ(dac3_r)
+ AM_RANGE(M37710_ADC2_L, M37710_ADC2_L) AM_READ(dac2_r)
+ AM_RANGE(M37710_ADC1_L, M37710_ADC1_L) AM_READ(dac1_r)
+ AM_RANGE(M37710_ADC0_L, M37710_ADC0_L) AM_READ(dac0_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index aa059a161be..6fe3672bce4 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -235,18 +235,16 @@ static NVRAM_HANDLER( namcosna1 )
}
} /* namcosna1_nvram_handler */
-static READ16_HANDLER( namcona1_nvram_r )
+READ16_MEMBER(namcona1_state::namcona1_nvram_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- return state->m_nvmem[offset];
+ return m_nvmem[offset];
} /* namcona1_nvram_r */
-static WRITE16_HANDLER( namcona1_nvram_w )
+WRITE16_MEMBER(namcona1_state::namcona1_nvram_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
if( ACCESSING_BITS_0_7 )
{
- state->m_nvmem[offset] = data&0xff;
+ m_nvmem[offset] = data&0xff;
}
} /* namcona1_nvram_w */
@@ -378,7 +376,7 @@ static void simulate_mcu( running_machine &machine )
/* NA2 hardware sends a special command to the MCU, then tests to
* see if the proper BIOS version string appears in shared memory.
*/
-static void write_version_info( namcona1_state *state )
+void namcona1_state::write_version_info()
{
static const UINT16 source[0x8] =
{ /* "NSA-BIOS ver"... */
@@ -387,7 +385,7 @@ static void write_version_info( namcona1_state *state )
int i;
for( i=0; i<8; i++ )
{
- state->m_workram[0x1000/2+i] = source[i];
+ m_workram[0x1000/2+i] = source[i];
}
}
@@ -400,18 +398,17 @@ static void write_version_info( namcona1_state *state )
* The secondary purpose of the custom key chip is to act as a random number
* generator in some games.
*/
-static READ16_HANDLER( custom_key_r )
+READ16_MEMBER(namcona1_state::custom_key_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
int old_count;
- old_count = state->m_count;
+ old_count = m_count;
do
{
- state->m_count = space->machine().rand();
- } while( old_count == state->m_count );
+ m_count = machine().rand();
+ } while( old_count == m_count );
- switch( state->m_gametype )
+ switch( m_gametype )
{
case NAMCO_BKRTMAQ:
if( offset==2 ) return 0x015c;
@@ -419,7 +416,7 @@ static READ16_HANDLER( custom_key_r )
case NAMCO_FA:
if( offset==2 ) return 0x015d;
- if( offset==4 ) return state->m_count;
+ if( offset==4 ) return m_count;
break;
case NAMCO_EXBANIA:
@@ -428,27 +425,27 @@ static READ16_HANDLER( custom_key_r )
case NAMCO_CGANGPZL:
if( offset==1 ) return 0x0164;
- if( offset==2 ) return state->m_count;
+ if( offset==2 ) return m_count;
break;
case NAMCO_SWCOURT:
if( offset==1 ) return 0x0165;
- if( offset==2 ) return state->m_count;
+ if( offset==2 ) return m_count;
break;
case NAMCO_EMERALDA:
if( offset==1 ) return 0x0166;
- if( offset==2 ) return state->m_count;
+ if( offset==2 ) return m_count;
break;
case NAMCO_NUMANATH:
if( offset==1 ) return 0x0167;
- if( offset==2 ) return state->m_count;
+ if( offset==2 ) return m_count;
break;
case NAMCO_KNCKHEAD:
if( offset==1 ) return 0x0168;
- if( offset==2 ) return state->m_count;
+ if( offset==2 ) return m_count;
break;
case NAMCO_QUIZTOU:
@@ -457,16 +454,16 @@ static READ16_HANDLER( custom_key_r )
case NAMCO_TINKLPIT:
if( offset==7 ) return 0x016f;
- if( offset==4 ) state->m_keyval = 0;
+ if( offset==4 ) m_keyval = 0;
if( offset==3 )
{
UINT16 res;
- res = BITSWAP16(state->m_keyval, 22,26,31,23,18,20,16,30,24,21,25,19,17,29,28,27);
+ res = BITSWAP16(m_keyval, 22,26,31,23,18,20,16,30,24,21,25,19,17,29,28,27);
- state->m_keyval >>= 1;
-// printf("popcount(%08X) = %d\n", state->m_keyval & 0x58000c00, popcount(state->m_keyval & 0x58000c00));
- if((!state->m_keyval) || (popcount(state->m_keyval & 0x58000c00) & 1))
- state->m_keyval ^= 0x80000000;
+ m_keyval >>= 1;
+// printf("popcount(%08X) = %d\n", m_keyval & 0x58000c00, popcount(m_keyval & 0x58000c00));
+ if((!m_keyval) || (popcount(m_keyval & 0x58000c00) & 1))
+ m_keyval ^= 0x80000000;
return res;
}
@@ -474,25 +471,24 @@ static READ16_HANDLER( custom_key_r )
case NAMCO_XDAY2:
if( offset==2 ) return 0x018a;
- if( offset==3 ) return state->m_count;
+ if( offset==3 ) return m_count;
break;
default:
return 0;
}
- return space->machine().rand()&0xffff;
+ return machine().rand()&0xffff;
} /* custom_key_r */
-static WRITE16_HANDLER( custom_key_w )
+WRITE16_MEMBER(namcona1_state::custom_key_w)
{
} /* custom_key_w */
/***************************************************************/
-static READ16_HANDLER( namcona1_vreg_r )
+READ16_MEMBER(namcona1_state::namcona1_vreg_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- return state->m_vreg[offset];
+ return m_vreg[offset];
} /* namcona1_vreg_r */
static int transfer_dword( running_machine &machine, UINT32 dest, UINT32 source )
@@ -691,20 +687,19 @@ static void namcona1_blit( running_machine &machine )
}
} /* namcona1_blit */
-static WRITE16_HANDLER( namcona1_vreg_w )
+WRITE16_MEMBER(namcona1_state::namcona1_vreg_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- COMBINE_DATA( &state->m_vreg[offset] );
+ COMBINE_DATA( &m_vreg[offset] );
switch( offset )
{
case 0x18/2:
- namcona1_blit(space->machine());
+ namcona1_blit(machine());
/* see also 0x1e */
break;
case 0x1a/2:
- state->m_mEnableInterrupts = 1;
+ m_mEnableInterrupts = 1;
/* interrupt enable mask; 0 enables INT level */
break;
}
@@ -714,45 +709,42 @@ static WRITE16_HANDLER( namcona1_vreg_w )
// MCU "mailslot" handler - has 8 16-bit slots mirrored
-static READ16_HANDLER( mcu_mailbox_r )
+READ16_MEMBER(namcona1_state::mcu_mailbox_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- return state->m_mcu_mailbox[offset%8];
+ return m_mcu_mailbox[offset%8];
}
-static WRITE16_HANDLER( mcu_mailbox_w_68k )
+WRITE16_MEMBER(namcona1_state::mcu_mailbox_w_68k)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
// logerror("mailbox_w_68k: %x @ %x\n", data, offset);
if (offset == 4)
- cputag_set_input_line(space->machine(), "mcu", M37710_LINE_IRQ0, HOLD_LINE);
+ cputag_set_input_line(machine(), "mcu", M37710_LINE_IRQ0, HOLD_LINE);
- COMBINE_DATA(&state->m_mcu_mailbox[offset%8]);
+ COMBINE_DATA(&m_mcu_mailbox[offset%8]);
/* FIXME: This shouldn't be necessary now that the C70 BIOS is implemented,
but for some reason the MCU never responds to the version string command */
- if ( (state->m_gametype == NAMCO_NUMANATH) || (state->m_gametype == NAMCO_KNCKHEAD) )
+ if ( (m_gametype == NAMCO_NUMANATH) || (m_gametype == NAMCO_KNCKHEAD) )
{
- if ((state->m_workram[0xf72/2] >> 8) == 7)
- write_version_info(state);
+ if ((m_workram[0xf72/2] >> 8) == 7)
+ write_version_info();
}
}
-static WRITE16_HANDLER( mcu_mailbox_w_mcu )
+WRITE16_MEMBER(namcona1_state::mcu_mailbox_w_mcu)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- COMBINE_DATA(&state->m_mcu_mailbox[offset%8]);
+ COMBINE_DATA(&m_mcu_mailbox[offset%8]);
}
static ADDRESS_MAP_START( namcona1_main_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE(m_workram)
- AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE_LEGACY(mcu_mailbox_r, mcu_mailbox_w_68k)
+ AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_68k)
AM_RANGE(0x400000, 0xbfffff) AM_ROM AM_REGION("maincpu", 0x280000) /* data */
AM_RANGE(0xc00000, 0xdfffff) AM_ROM AM_REGION("maincpu", 0x080000) /* code */
- AM_RANGE(0xe00000, 0xe00fff) AM_READWRITE_LEGACY(namcona1_nvram_r, namcona1_nvram_w)
- AM_RANGE(0xe40000, 0xe4000f) AM_READWRITE_LEGACY(custom_key_r, custom_key_w)
- AM_RANGE(0xefff00, 0xefffff) AM_READWRITE_LEGACY(namcona1_vreg_r, namcona1_vreg_w) AM_BASE(m_vreg)
+ AM_RANGE(0xe00000, 0xe00fff) AM_READWRITE(namcona1_nvram_r, namcona1_nvram_w)
+ AM_RANGE(0xe40000, 0xe4000f) AM_READWRITE(custom_key_r, custom_key_w)
+ AM_RANGE(0xefff00, 0xefffff) AM_READWRITE(namcona1_vreg_r, namcona1_vreg_w) AM_BASE(m_vreg)
AM_RANGE(0xf00000, 0xf01fff) AM_READWRITE_LEGACY(namcona1_paletteram_r, namcona1_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE_LEGACY(namcona1_gfxram_r, namcona1_gfxram_w)
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE_LEGACY(namcona1_videoram_r, namcona1_videoram_w) AM_BASE(m_videoram)
@@ -764,17 +756,17 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( namcona2_main_map, AS_PROGRAM, 16, namcona1_state )
AM_RANGE(0x000000, 0x07ffff) AM_RAM AM_BASE(m_workram)
- AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE_LEGACY(mcu_mailbox_r, mcu_mailbox_w_68k)
+ AM_RANGE(0x3f8000, 0x3fffff) AM_READWRITE(mcu_mailbox_r, mcu_mailbox_w_68k)
AM_RANGE(0x400000, 0xbfffff) AM_ROM AM_REGION("maincpu", 0x280000) /* data */
AM_RANGE(0xd00000, 0xd00001) AM_WRITENOP /* xday: serial out? */
AM_RANGE(0xd40000, 0xd40001) AM_WRITENOP /* xday: serial out? */
AM_RANGE(0xd80000, 0xd80001) AM_WRITENOP /* xday: serial out? */
AM_RANGE(0xdc0000, 0xdc001f) AM_WRITENOP /* xday: serial config? */
AM_RANGE(0xc00000, 0xdfffff) AM_ROM AM_REGION("maincpu", 0x080000) /* code */
- AM_RANGE(0xe00000, 0xe00fff) AM_READWRITE_LEGACY(namcona1_nvram_r, namcona1_nvram_w)
+ AM_RANGE(0xe00000, 0xe00fff) AM_READWRITE(namcona1_nvram_r, namcona1_nvram_w)
/* xday: additional battery-backed ram at 00E024FA? */
- AM_RANGE(0xe40000, 0xe4000f) AM_READWRITE_LEGACY(custom_key_r, custom_key_w)
- AM_RANGE(0xefff00, 0xefffff) AM_READWRITE_LEGACY(namcona1_vreg_r, namcona1_vreg_w) AM_BASE(m_vreg)
+ AM_RANGE(0xe40000, 0xe4000f) AM_READWRITE(custom_key_r, custom_key_w)
+ AM_RANGE(0xefff00, 0xefffff) AM_READWRITE(namcona1_vreg_r, namcona1_vreg_w) AM_BASE(m_vreg)
AM_RANGE(0xf00000, 0xf01fff) AM_READWRITE_LEGACY(namcona1_paletteram_r, namcona1_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf40000, 0xf7ffff) AM_READWRITE_LEGACY(namcona1_gfxram_r, namcona1_gfxram_w)
AM_RANGE(0xff0000, 0xffbfff) AM_READWRITE_LEGACY(namcona1_videoram_r, namcona1_videoram_w) AM_BASE(m_videoram)
@@ -786,30 +778,28 @@ ADDRESS_MAP_END
/* ----- NA-1 MCU handling ----------------------------------- */
-static READ16_HANDLER( na1mcu_shared_r )
+READ16_MEMBER(namcona1_state::na1mcu_shared_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
UINT16 data;
- data = state->m_workram[offset];
+ data = m_workram[offset];
#if 0
if (offset >= 0x70000/2)
{
- logerror("MD: %04x @ %x PC %x\n", ((data>>8)&0xff) | ((data<<8)&0xff00), offset*2, cpu_get_pc(&space->device()));
+ logerror("MD: %04x @ %x PC %x\n", ((data>>8)&0xff) | ((data<<8)&0xff00), offset*2, cpu_get_pc(&space.device()));
}
#endif
return ((data>>8)&0xff) | ((data<<8)&0xff00);
}
-static WRITE16_HANDLER( na1mcu_shared_w )
+WRITE16_MEMBER(namcona1_state::na1mcu_shared_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
mem_mask = FLIPENDIAN_INT16(mem_mask);
data = FLIPENDIAN_INT16(data);
- COMBINE_DATA(&state->m_workram[offset]);
+ COMBINE_DATA(&m_workram[offset]);
}
static READ16_DEVICE_HANDLER(snd_r)
@@ -833,100 +823,92 @@ static WRITE16_DEVICE_HANDLER(snd_w)
}
static ADDRESS_MAP_START( namcona1_mcu_map, AS_PROGRAM, 16, namcona1_state )
- AM_RANGE(0x000800, 0x000fff) AM_READWRITE_LEGACY(mcu_mailbox_r, mcu_mailbox_w_mcu) // "Mailslot" communications ports
+ 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(0x002000, 0x002fff) AM_READWRITE_LEGACY(na1mcu_shared_r, na1mcu_shared_w) // mirror of first page of shared work RAM
+ 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
- AM_RANGE(0x200000, 0x27ffff) AM_READWRITE_LEGACY(na1mcu_shared_r, na1mcu_shared_w) // shared work RAM
+ AM_RANGE(0x200000, 0x27ffff) AM_READWRITE(na1mcu_shared_r, na1mcu_shared_w) // shared work RAM
ADDRESS_MAP_END
// port 4: bit 3 (0x08) enables the 68000 (see the 68k launch code at c604 in swcourt's BIOS)
-static READ8_HANDLER( port4_r )
+READ8_MEMBER(namcona1_state::port4_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- return state->m_mcu_port4;
+ return m_mcu_port4;
}
-static WRITE8_HANDLER( port4_w )
+WRITE8_MEMBER(namcona1_state::port4_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- if ((data & 0x08) && !(state->m_mcu_port4 & 0x08))
+ if ((data & 0x08) && !(m_mcu_port4 & 0x08))
{
- logerror("launching 68k, PC=%x\n", cpu_get_pc(&space->device()));
+ logerror("launching 68k, PC=%x\n", cpu_get_pc(&space.device()));
// reset and launch the 68k
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_RESET, CLEAR_LINE);
}
- state->m_mcu_port4 = data;
+ m_mcu_port4 = data;
}
// port 5: not sure yet, but MCU code requires this interaction at least
-static READ8_HANDLER( port5_r )
+READ8_MEMBER(namcona1_state::port5_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- return state->m_mcu_port5;
+ return m_mcu_port5;
}
-static WRITE8_HANDLER( port5_w )
+WRITE8_MEMBER(namcona1_state::port5_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- state->m_mcu_port5 = data;
+ m_mcu_port5 = data;
// bit 0 must mirror bit 1 - this is checked at CCD3 in the C69 BIOS
- state->m_mcu_port5 &= 0xfe;
- state->m_mcu_port5 |= ((state->m_mcu_port5 & 0x2)>>1);
+ m_mcu_port5 &= 0xfe;
+ m_mcu_port5 |= ((m_mcu_port5 & 0x2)>>1);
}
-static READ8_HANDLER( port6_r )
+READ8_MEMBER(namcona1_state::port6_r)
{
return 0;
}
-static WRITE8_HANDLER( port6_w )
+WRITE8_MEMBER(namcona1_state::port6_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- state->m_mcu_port6 = data;
+ m_mcu_port6 = data;
}
-static READ8_HANDLER( port7_r )
+READ8_MEMBER(namcona1_state::port7_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- switch (state->m_mcu_port6 & 0xe0)
+ switch (m_mcu_port6 & 0xe0)
{
case 0x40:
- return input_port_read(space->machine(), "P1");
+ return input_port_read(machine(), "P1");
case 0x60:
- return input_port_read(space->machine(), "P2");
+ return input_port_read(machine(), "P2");
case 0x20:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 0x00:
- return input_port_read(space->machine(), "P4");
+ return input_port_read(machine(), "P4");
}
return 0xff;
}
-static WRITE8_HANDLER( port7_w )
+WRITE8_MEMBER(namcona1_state::port7_w)
{
}
// port 8: bit 5 (0x20) toggles, watchdog?
-static READ8_HANDLER( port8_r )
+READ8_MEMBER(namcona1_state::port8_r)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- return state->m_mcu_port8;
+ return m_mcu_port8;
}
-static WRITE8_HANDLER( port8_w )
+WRITE8_MEMBER(namcona1_state::port8_w)
{
- namcona1_state *state = space->machine().driver_data<namcona1_state>();
- state->m_mcu_port8 = data;
+ m_mcu_port8 = data;
}
@@ -955,21 +937,21 @@ static MACHINE_RESET( namcona1_mcu )
// bit 2 => port 5
// bit 3 => port 6
// bit 7 => port 7
-static READ8_HANDLER( portana_r )
+READ8_MEMBER(namcona1_state::portana_r)
{
static const UINT8 bitnum[8] = { 0x40, 0x20, 0x10, 0x01, 0x02, 0x04, 0x08, 0x80 };
- UINT8 port = input_port_read(space->machine(), "P3");
+ UINT8 port = input_port_read(machine(), "P3");
return (port & bitnum[offset>>1]) ? 0xff : 0x00;
}
static ADDRESS_MAP_START( namcona1_mcu_io_map, AS_IO, 8, namcona1_state )
- AM_RANGE(M37710_PORT4, M37710_PORT4) AM_READWRITE_LEGACY(port4_r, port4_w )
- AM_RANGE(M37710_PORT5, M37710_PORT5) AM_READWRITE_LEGACY(port5_r, port5_w )
- AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE_LEGACY(port6_r, port6_w )
- AM_RANGE(M37710_PORT7, M37710_PORT7) AM_READWRITE_LEGACY(port7_r, port7_w )
- AM_RANGE(M37710_PORT8, M37710_PORT8) AM_READWRITE_LEGACY(port8_r, port8_w )
- AM_RANGE(0x10, 0x1f) AM_READ_LEGACY(portana_r )
+ AM_RANGE(M37710_PORT4, M37710_PORT4) AM_READWRITE(port4_r, port4_w )
+ AM_RANGE(M37710_PORT5, M37710_PORT5) AM_READWRITE(port5_r, port5_w )
+ AM_RANGE(M37710_PORT6, M37710_PORT6) AM_READWRITE(port6_r, port6_w )
+ AM_RANGE(M37710_PORT7, M37710_PORT7) AM_READWRITE(port7_r, port7_w )
+ AM_RANGE(M37710_PORT8, M37710_PORT8) AM_READWRITE(port8_r, port8_w )
+ AM_RANGE(0x10, 0x1f) AM_READ(portana_r )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c
index cfb5cfa62b7..0cfc6323d31 100644
--- a/src/mame/drivers/namcond1.c
+++ b/src/mame/drivers/namcond1.c
@@ -221,39 +221,36 @@ static GFXDECODE_START( namcond1 )
GFXDECODE_ENTRY( "gfx1", 0x00000000, pts_16x16_8bits_layout, 0, 256 )
GFXDECODE_END
-static WRITE16_HANDLER( sharedram_sub_w )
+WRITE16_MEMBER(namcond1_state::sharedram_sub_w)
{
- namcond1_state *state = space->machine().driver_data<namcond1_state>();
- COMBINE_DATA(&state->m_shared_ram[offset]);
+ COMBINE_DATA(&m_shared_ram[offset]);
}
-static READ16_HANDLER( sharedram_sub_r )
+READ16_MEMBER(namcond1_state::sharedram_sub_r)
{
- namcond1_state *state = space->machine().driver_data<namcond1_state>();
- return state->m_shared_ram[offset];
+ return m_shared_ram[offset];
}
-static READ8_HANDLER( mcu_p7_read )
+READ8_MEMBER(namcond1_state::mcu_p7_read)
{
return 0xff;
}
-static READ8_HANDLER( mcu_pa_read )
+READ8_MEMBER(namcond1_state::mcu_pa_read)
{
return 0xff;
}
-static WRITE8_HANDLER( mcu_pa_write )
+WRITE8_MEMBER(namcond1_state::mcu_pa_write)
{
- namcond1_state *state = space->machine().driver_data<namcond1_state>();
- state->m_p8 = data;
+ m_p8 = data;
}
/* H8/3002 MCU stuff */
static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16, namcond1_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x200000, 0x20ffff) AM_READWRITE_LEGACY(sharedram_sub_r, sharedram_sub_w )
+ AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(sharedram_sub_r, sharedram_sub_w )
AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE("c352", c352_device, read, write)
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1_P2")
@@ -263,8 +260,8 @@ static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16, namcond1_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( nd1h8iomap, AS_IO, 8, namcond1_state )
- AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ_LEGACY(mcu_p7_read )
- AM_RANGE(H8_PORT_A, H8_PORT_A) AM_READWRITE_LEGACY(mcu_pa_read, mcu_pa_write )
+ AM_RANGE(H8_PORT_7, H8_PORT_7) AM_READ(mcu_p7_read )
+ AM_RANGE(H8_PORT_A, H8_PORT_A) AM_READWRITE(mcu_pa_read, mcu_pa_write )
AM_RANGE(H8_ADC_0_L, H8_ADC_3_H) AM_NOP // MCU reads these, but the games have no analog controls
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index fa7efafc147..a3eadf747ac 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -350,35 +350,35 @@ C - uses sub board with support for player 3 and 4 controls
/**********************************************************************/
-static WRITE8_HANDLER( namcos1_sub_firq_w )
+WRITE8_MEMBER(namcos1_state::namcos1_sub_firq_w)
{
- cputag_set_input_line(space->machine(), "sub", M6809_FIRQ_LINE, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", M6809_FIRQ_LINE, ASSERT_LINE);
}
-static WRITE8_HANDLER( irq_ack_w )
+WRITE8_MEMBER(namcos1_state::irq_ack_w)
{
- device_set_input_line(&space->device(), 0, CLEAR_LINE);
+ device_set_input_line(&space.device(), 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( firq_ack_w )
+WRITE8_MEMBER(namcos1_state::firq_ack_w)
{
- device_set_input_line(&space->device(), M6809_FIRQ_LINE, CLEAR_LINE);
+ device_set_input_line(&space.device(), M6809_FIRQ_LINE, CLEAR_LINE);
}
-static READ8_HANDLER( dsw_r )
+READ8_MEMBER(namcos1_state::dsw_r)
{
- int ret = input_port_read(space->machine(), "DIPSW");
+ int ret = input_port_read(machine(), "DIPSW");
if (!(offset & 2)) ret >>= 4;
return 0xf0 | ret;
}
-static WRITE8_HANDLER( namcos1_coin_w )
+WRITE8_MEMBER(namcos1_state::namcos1_coin_w)
{
- coin_lockout_global_w(space->machine(), ~data & 1);
- coin_counter_w(space->machine(), 0,data & 2);
- coin_counter_w(space->machine(), 1,data & 4);
+ coin_lockout_global_w(machine(), ~data & 1);
+ coin_counter_w(machine(), 0,data & 2);
+ coin_counter_w(machine(), 1,data & 4);
}
static void namcos1_update_DACs(running_machine &machine)
@@ -396,34 +396,31 @@ void namcos1_init_DACs(running_machine &machine)
state->m_dac1_gain=0x80;
}
-static WRITE8_HANDLER( namcos1_dac_gain_w )
+WRITE8_MEMBER(namcos1_state::namcos1_dac_gain_w)
{
- namcos1_state *state = space->machine().driver_data<namcos1_state>();
int value;
/* DAC0 (bits 0,2) */
value = (data & 1) | ((data >> 1) & 2); /* GAIN0,GAIN1 */
- state->m_dac0_gain = 0x20 * (value+1);
+ m_dac0_gain = 0x20 * (value+1);
/* DAC1 (bits 3,4) */
value = (data >> 3) & 3; /* GAIN2,GAIN3 */
- state->m_dac1_gain = 0x20 * (value+1);
+ m_dac1_gain = 0x20 * (value+1);
- namcos1_update_DACs(space->machine());
+ namcos1_update_DACs(machine());
}
-static WRITE8_HANDLER( namcos1_dac0_w )
+WRITE8_MEMBER(namcos1_state::namcos1_dac0_w)
{
- namcos1_state *state = space->machine().driver_data<namcos1_state>();
- state->m_dac0_value = data - 0x80; /* shift zero point */
- namcos1_update_DACs(space->machine());
+ m_dac0_value = data - 0x80; /* shift zero point */
+ namcos1_update_DACs(machine());
}
-static WRITE8_HANDLER( namcos1_dac1_w )
+WRITE8_MEMBER(namcos1_state::namcos1_dac1_w)
{
- namcos1_state *state = space->machine().driver_data<namcos1_state>();
- state->m_dac1_value = data - 0x80; /* shift zero point */
- namcos1_update_DACs(space->machine());
+ m_dac1_value = data - 0x80; /* shift zero point */
+ namcos1_update_DACs(machine());
}
@@ -440,9 +437,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(namcos1_cpu_control_w)
AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(namcos1_watchdog_w)
// AM_RANGE(0xf400, 0xf400) AM_WRITENOP // unknown
- AM_RANGE(0xf600, 0xf600) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(firq_ack_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(namcos1_sub_firq_w) // asserts FIRQ on CPU1
+ AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(namcos1_sub_firq_w) // asserts FIRQ on CPU1
AM_RANGE(0xfc00, 0xfc01) AM_WRITE_LEGACY(namcos1_subcpu_bank_w)
AM_RANGE(0xe000, 0xffff) AM_ROMBANK("bank8")
ADDRESS_MAP_END
@@ -460,8 +457,8 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, namcos1_state )
// AM_RANGE(0xf000, 0xf000) AM_WRITENOP // IO Chip
AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(namcos1_watchdog_w)
// AM_RANGE(0xf400, 0xf400) AM_WRITENOP // ?
- AM_RANGE(0xf600, 0xf600) AM_WRITE_LEGACY(irq_ack_w)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(firq_ack_w)
+ AM_RANGE(0xf600, 0xf600) AM_WRITE(irq_ack_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(firq_ack_w)
AM_RANGE(0xe000, 0xffff) AM_ROMBANK("bank16")
ADDRESS_MAP_END
@@ -475,7 +472,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x8000, 0x9fff) AM_RAM /* Sound RAM 3 */
AM_RANGE(0xc000, 0xc001) AM_WRITE_LEGACY(namcos1_sound_bankswitch_w) /* ROM bank selector */
AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(namcos1_watchdog_w)
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(irq_ack_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -483,23 +480,23 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, namcos1_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE_LEGACY(m6801_io_r, m6801_io_w)
AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */
- AM_RANGE(0x1000, 0x1003) AM_READ_LEGACY(dsw_r)
+ AM_RANGE(0x1000, 0x1003) AM_READ(dsw_r)
AM_RANGE(0x1400, 0x1400) AM_READ_PORT("CONTROL0")
AM_RANGE(0x1401, 0x1401) AM_READ_PORT("CONTROL1")
AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank20") /* banked ROM */
AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(namcos1_mcu_patch_w) /* kludge! see notes */
AM_RANGE(0xc000, 0xc7ff) AM_RAMBANK("bank19") /* TRIRAM (shared) */
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("nvram") /* EEPROM */
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(namcos1_dac0_w)
- AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(namcos1_dac1_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(namcos1_dac0_w)
+ AM_RANGE(0xd400, 0xd400) AM_WRITE(namcos1_dac1_w)
AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(namcos1_mcu_bankswitch_w) /* ROM bank selector */
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(irq_ack_w)
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, namcos1_state )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE_LEGACY(namcos1_coin_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE_LEGACY(namcos1_dac_gain_w)
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(namcos1_coin_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(namcos1_dac_gain_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index 6060e70691b..13c96c8fdc6 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -318,47 +318,45 @@ ReadPointROMData( running_machine &machine, unsigned offset )
return result;
}
-static READ16_HANDLER(namcos21_video_enable_r)
+READ16_MEMBER(namcos21_state::namcos21_video_enable_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_video_enable;
+ return m_video_enable;
}
-static WRITE16_HANDLER(namcos21_video_enable_w)
+WRITE16_MEMBER(namcos21_state::namcos21_video_enable_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- COMBINE_DATA( &state->m_video_enable ); /* 0x40 = enable */
- if( state->m_video_enable!=0 && state->m_video_enable!=0x40 )
+ COMBINE_DATA( &m_video_enable ); /* 0x40 = enable */
+ if( m_video_enable!=0 && m_video_enable!=0x40 )
{
- logerror( "unexpected namcos21_video_enable_w=0x%x\n", state->m_video_enable );
+ logerror( "unexpected namcos21_video_enable_w=0x%x\n", m_video_enable );
}
}
/***********************************************************/
-static WRITE16_HANDLER(dspcuskey_w)
+WRITE16_MEMBER(namcos21_state::dspcuskey_w)
{ /* TODO: proper cuskey emulation */
}
-static READ16_HANDLER(dspcuskey_r)
+READ16_MEMBER(namcos21_state::dspcuskey_r)
{
UINT16 result = 0;
if( namcos2_gametype == NAMCOS21_SOLVALOU )
{
- switch( cpu_get_pc(&space->device()) )
+ switch( cpu_get_pc(&space.device()) )
{
case 0x805e: result = 0x0000; break;
case 0x805f: result = 0xfeba; break;
case 0x8067: result = 0xffff; break;
case 0x806e: result = 0x0145; break;
default:
- logerror( "unk cuskey_r; pc=0x%x\n", cpu_get_pc(&space->device()) );
+ logerror( "unk cuskey_r; pc=0x%x\n", cpu_get_pc(&space.device()) );
break;
}
}
else if( namcos2_gametype == NAMCOS21_CYBERSLED )
{
- switch( cpu_get_pc(&space->device()) )
+ switch( cpu_get_pc(&space.device()) )
{
case 0x8061: result = 0xfe95; break;
case 0x8069: result = 0xffff; break;
@@ -369,7 +367,7 @@ static READ16_HANDLER(dspcuskey_r)
}
else if( namcos2_gametype == NAMCOS21_AIRCOMBAT )
{
- switch( cpu_get_pc(&space->device()) )
+ switch( cpu_get_pc(&space.device()) )
{
case 0x8062: result = 0xfeb9; break;
case 0x806a: result = 0xffff; break;
@@ -560,30 +558,28 @@ GetInputBytesAdvertisedForSlave( running_machine &machine )
return state->m_mpDspState->slaveBytesAdvertised;
} /* GetInputBytesAdvertisedForSlave */
-static READ16_HANDLER( dspram16_r )
+READ16_MEMBER(namcos21_state::dspram16_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_dspram16[offset];
+ return m_dspram16[offset];
} /* dspram16_r */
-static WRITE16_HANDLER( dspram16_w )
+WRITE16_MEMBER(namcos21_state::dspram16_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- COMBINE_DATA( &state->m_dspram16[offset] );
+ COMBINE_DATA( &m_dspram16[offset] );
if( namcos2_gametype != NAMCOS21_WINRUN91 )
{
- if( state->m_mpDspState->masterSourceAddr &&
- offset == 1+(state->m_mpDspState->masterSourceAddr&0x7fff) )
+ if( m_mpDspState->masterSourceAddr &&
+ offset == 1+(m_mpDspState->masterSourceAddr&0x7fff) )
{
if (ENABLE_LOGGING) logerror( "IDC-CONTINUE\n" );
- TransferDspData(space->machine());
+ TransferDspData(machine());
}
else if (namcos2_gametype == NAMCOS21_SOLVALOU &&
offset == 0x103 &&
- &space->device() == space->machine().device("maincpu"))
+ &space.device() == machine().device("maincpu"))
{ /* hack; synchronization for solvalou */
- device_yield(&space->device());
+ device_yield(&space.device());
}
}
} /* dspram16_w */
@@ -612,93 +608,88 @@ InitDSP( running_machine &machine )
-static READ16_HANDLER( dsp_port0_r )
+READ16_MEMBER(namcos21_state::dsp_port0_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- INT32 data = ReadPointROMData(space->machine(), state->m_pointrom_idx++);
- state->m_mPointRomMSB = (UINT8)(data>>16);
- state->m_mbPointRomDataAvailable = 1;
+ INT32 data = ReadPointROMData(machine(), m_pointrom_idx++);
+ m_mPointRomMSB = (UINT8)(data>>16);
+ m_mbPointRomDataAvailable = 1;
return (UINT16)data;
} /* dsp_port0_r */
-static WRITE16_HANDLER( dsp_port0_w )
+WRITE16_MEMBER(namcos21_state::dsp_port0_w)
{ /* unused? */
if (ENABLE_LOGGING) logerror( "PTRAM_LO(0x%04x)\n", data );
} /* dsp_port0_w */
-static READ16_HANDLER( dsp_port1_r )
+READ16_MEMBER(namcos21_state::dsp_port1_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- if( state->m_mbPointRomDataAvailable )
+ if( m_mbPointRomDataAvailable )
{
- state->m_mbPointRomDataAvailable = 0;
- return state->m_mPointRomMSB;
+ m_mbPointRomDataAvailable = 0;
+ return m_mPointRomMSB;
}
return 0x8000; /* IDC ack? */
} /* dsp_port1_r */
-static WRITE16_HANDLER( dsp_port1_w )
+WRITE16_MEMBER(namcos21_state::dsp_port1_w)
{ /* unused? */
if (ENABLE_LOGGING) logerror( "PTRAM_HI(0x%04x)\n", data );
} /* dsp_port1_w */
-static READ16_HANDLER( dsp_port2_r )
+READ16_MEMBER(namcos21_state::dsp_port2_r)
{ /* IDC TRANSMIT ENABLE? */
return 0;
} /* dsp_port2_r */
-static WRITE16_HANDLER( dsp_port2_w )
+WRITE16_MEMBER(namcos21_state::dsp_port2_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
if (ENABLE_LOGGING) logerror( "IDC ADDR INIT(0x%04x)\n", data );
- state->m_mpDspState->masterSourceAddr = data;
- TransferDspData(space->machine());
+ m_mpDspState->masterSourceAddr = data;
+ TransferDspData(machine());
} /* dsp_port2_w */
-static READ16_HANDLER( dsp_port3_idc_rcv_enable_r )
+READ16_MEMBER(namcos21_state::dsp_port3_idc_rcv_enable_r)
{ /* IDC RECEIVE ENABLE? */
return 0;
} /* dsp_port3_idc_rcv_enable_r */
-static WRITE16_HANDLER( dsp_port3_w )
+WRITE16_MEMBER(namcos21_state::dsp_port3_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* same address space as state->m_pointram? */
- state->m_pointrom_idx<<=16;
- state->m_pointrom_idx|=data;
+ m_pointrom_idx<<=16;
+ m_pointrom_idx|=data;
} /* dsp_port3_w */
-static WRITE16_HANDLER( dsp_port4_w )
+WRITE16_MEMBER(namcos21_state::dsp_port4_w)
{ /* receives $0B<<4 prior to IDC setup */
} /* dsp_port4_w */
-static READ16_HANDLER( dsp_port8_r )
+READ16_MEMBER(namcos21_state::dsp_port8_r)
{ /* SMU status */
return 1;
} /* dsp_port8_r */
-static WRITE16_HANDLER( dsp_port8_w )
+WRITE16_MEMBER(namcos21_state::dsp_port8_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* IRQ-enable? */
if (ENABLE_LOGGING) logerror( "port8_w(%d)\n", data );
if( data )
{
- state->m_mpDspState->masterFinished = 1;
+ m_mpDspState->masterFinished = 1;
}
- state->m_irq_enable = data;
+ m_irq_enable = data;
} /* dsp_port8_w */
-static READ16_HANDLER( dsp_port9_r )
+READ16_MEMBER(namcos21_state::dsp_port9_r)
{ /* render-device-busy; used for direct-draw */
return 0;
} /* dsp_port9_r */
-static READ16_HANDLER(dsp_porta_r)
+READ16_MEMBER(namcos21_state::dsp_porta_r)
{ /* config */
return 0;
} /* dsp_porta_r */
-static WRITE16_HANDLER(dsp_porta_w)
+WRITE16_MEMBER(namcos21_state::dsp_porta_w)
{
/* boot: 1 */
/* IRQ0 end: 0 */
@@ -708,51 +699,49 @@ static WRITE16_HANDLER(dsp_porta_w)
// if (ENABLE_LOGGING) logerror( "dsp_porta_w(0x%04x)\n", data );
} /* dsp_porta_w */
-static READ16_HANDLER(dsp_portb_r)
+READ16_MEMBER(namcos21_state::dsp_portb_r)
{ /* config */
return 1;
} /* dsp_portb_r */
-static WRITE16_HANDLER(dsp_portb_w)
+WRITE16_MEMBER(namcos21_state::dsp_portb_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* render-device trigger */
if( data==0 )
{ /* only 0->1 transition triggers */
return;
}
- if( state->m_mpDspState->masterDirectDrawSize == 13 )
+ if( m_mpDspState->masterDirectDrawSize == 13 )
{
int i;
int sx[4], sy[4], zcode[4];
- int color = state->m_mpDspState->masterDirectDrawBuffer[0];
+ int color = m_mpDspState->masterDirectDrawBuffer[0];
for( i=0; i<4; i++ )
{
- sx[i] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)state->m_mpDspState->masterDirectDrawBuffer[i*3+1];
- sy[i] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)state->m_mpDspState->masterDirectDrawBuffer[i*3+2];
- zcode[i] = state->m_mpDspState->masterDirectDrawBuffer[i*3+3];
+ sx[i] = NAMCOS21_POLY_FRAME_WIDTH/2 + (INT16)m_mpDspState->masterDirectDrawBuffer[i*3+1];
+ sy[i] = NAMCOS21_POLY_FRAME_HEIGHT/2 + (INT16)m_mpDspState->masterDirectDrawBuffer[i*3+2];
+ zcode[i] = m_mpDspState->masterDirectDrawBuffer[i*3+3];
}
if( color&0x8000 )
{
- namcos21_DrawQuad( space->machine(), sx, sy, zcode, color );
+ namcos21_DrawQuad( machine(), sx, sy, zcode, color );
}
else
{
logerror( "indirection used w/ direct draw?\n" );
}
}
- else if( state->m_mpDspState->masterDirectDrawSize )
+ else if( m_mpDspState->masterDirectDrawSize )
{
- logerror( "unexpected masterDirectDrawSize=%d!\n",state->m_mpDspState->masterDirectDrawSize );
+ logerror( "unexpected masterDirectDrawSize=%d!\n",m_mpDspState->masterDirectDrawSize );
}
- state->m_mpDspState->masterDirectDrawSize = 0;
+ m_mpDspState->masterDirectDrawSize = 0;
} /* dsp_portb_w */
-static WRITE16_HANDLER(dsp_portc_w)
+WRITE16_MEMBER(namcos21_state::dsp_portc_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>(); /* enqueue data for direct-drawn poly */
- if( state->m_mpDspState->masterDirectDrawSize < DSP_BUF_MAX )
+ if( m_mpDspState->masterDirectDrawSize < DSP_BUF_MAX )
{
- state->m_mpDspState->masterDirectDrawBuffer[state->m_mpDspState->masterDirectDrawSize++] = data;
+ m_mpDspState->masterDirectDrawBuffer[m_mpDspState->masterDirectDrawSize++] = data;
}
else
{
@@ -760,12 +749,12 @@ static WRITE16_HANDLER(dsp_portc_w)
}
} /* dsp_portc_w */
-static READ16_HANDLER( dsp_portf_r )
+READ16_MEMBER(namcos21_state::dsp_portf_r)
{ /* informs BIOS that this is Master DSP */
return 0;
} /* dsp_portf_r */
-static WRITE16_HANDLER( dsp_xf_w )
+WRITE16_MEMBER(namcos21_state::dsp_xf_w)
{
if (ENABLE_LOGGING) logerror("xf(%d)\n",data);
}
@@ -776,25 +765,25 @@ static ADDRESS_MAP_START( master_dsp_program, AS_PROGRAM, 16, namcos21_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( master_dsp_data, AS_DATA, 16, namcos21_state )
- AM_RANGE(0x2000, 0x200f) AM_READWRITE_LEGACY(dspcuskey_r,dspcuskey_w)
- AM_RANGE(0x8000, 0xffff) AM_READWRITE_LEGACY(dspram16_r,dspram16_w) /* 0x8000 words */
+ AM_RANGE(0x2000, 0x200f) AM_READWRITE(dspcuskey_r,dspcuskey_w)
+ AM_RANGE(0x8000, 0xffff) AM_READWRITE(dspram16_r,dspram16_w) /* 0x8000 words */
ADDRESS_MAP_END
static ADDRESS_MAP_START( master_dsp_io, AS_IO, 16, namcos21_state )
- AM_RANGE(0x00,0x00) AM_READWRITE_LEGACY(dsp_port0_r,dsp_port0_w)
- AM_RANGE(0x01,0x01) AM_READWRITE_LEGACY(dsp_port1_r,dsp_port1_w)
- AM_RANGE(0x02,0x02) AM_READWRITE_LEGACY(dsp_port2_r,dsp_port2_w)
- AM_RANGE(0x03,0x03) AM_READWRITE_LEGACY(dsp_port3_idc_rcv_enable_r,dsp_port3_w)
- AM_RANGE(0x04,0x04) AM_WRITE_LEGACY(dsp_port4_w)
- AM_RANGE(0x08,0x08) AM_READWRITE_LEGACY(dsp_port8_r,dsp_port8_w)
- AM_RANGE(0x09,0x09) AM_READ_LEGACY(dsp_port9_r)
- AM_RANGE(0x0a,0x0a) AM_READWRITE_LEGACY(dsp_porta_r,dsp_porta_w)
- AM_RANGE(0x0b,0x0b) AM_READWRITE_LEGACY(dsp_portb_r,dsp_portb_w)
- AM_RANGE(0x0c,0x0c) AM_WRITE_LEGACY(dsp_portc_w)
- AM_RANGE(0x0f,0x0f) AM_READ_LEGACY(dsp_portf_r)
+ AM_RANGE(0x00,0x00) AM_READWRITE(dsp_port0_r,dsp_port0_w)
+ AM_RANGE(0x01,0x01) AM_READWRITE(dsp_port1_r,dsp_port1_w)
+ AM_RANGE(0x02,0x02) AM_READWRITE(dsp_port2_r,dsp_port2_w)
+ AM_RANGE(0x03,0x03) AM_READWRITE(dsp_port3_idc_rcv_enable_r,dsp_port3_w)
+ AM_RANGE(0x04,0x04) AM_WRITE(dsp_port4_w)
+ AM_RANGE(0x08,0x08) AM_READWRITE(dsp_port8_r,dsp_port8_w)
+ AM_RANGE(0x09,0x09) AM_READ(dsp_port9_r)
+ AM_RANGE(0x0a,0x0a) AM_READWRITE(dsp_porta_r,dsp_porta_w)
+ AM_RANGE(0x0b,0x0b) AM_READWRITE(dsp_portb_r,dsp_portb_w)
+ AM_RANGE(0x0c,0x0c) AM_WRITE(dsp_portc_w)
+ AM_RANGE(0x0f,0x0f) AM_READ(dsp_portf_r)
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
- AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE_LEGACY(dsp_xf_w )
+ AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE(dsp_xf_w )
ADDRESS_MAP_END
/************************************************************************************/
@@ -863,39 +852,39 @@ RenderSlaveOutput( running_machine &machine, UINT16 data )
}
} /* RenderSlaveOutput */
-static READ16_HANDLER(slave_port0_r)
+READ16_MEMBER(namcos21_state::slave_port0_r)
{
- return ReadWordFromSlaveInput(space);
+ return ReadWordFromSlaveInput(&space);
} /* slave_port0_r */
-static WRITE16_HANDLER(slave_port0_w)
+WRITE16_MEMBER(namcos21_state::slave_port0_w)
{
- RenderSlaveOutput( space->machine(), data );
+ RenderSlaveOutput( machine(), data );
}
-static READ16_HANDLER(slave_port2_r)
+READ16_MEMBER(namcos21_state::slave_port2_r)
{
- return GetInputBytesAdvertisedForSlave(space->machine());
+ return GetInputBytesAdvertisedForSlave(machine());
} /* slave_port2_r */
-static READ16_HANDLER(slave_port3_r)
+READ16_MEMBER(namcos21_state::slave_port3_r)
{ /* render-device queue size */
/* up to 0x1fe bytes?
- * slave blocks until free space exists
+ * slave blocks until free &space exists
*/
return 0;
}
-static WRITE16_HANDLER(slave_port3_w)
+WRITE16_MEMBER(namcos21_state::slave_port3_w)
{ /* 0=busy, 1=ready? */
} /* slave_port3_w */
-static WRITE16_HANDLER( slave_XF_output_w )
+WRITE16_MEMBER(namcos21_state::slave_XF_output_w)
{
- if (ENABLE_LOGGING) logerror( "0x%x:slaveXF(%d)\n", cpu_get_pc(&space->device()), data );
+ if (ENABLE_LOGGING) logerror( "0x%x:slaveXF(%d)\n", cpu_get_pc(&space.device()), data );
} /* slave_XF_output_w */
-static READ16_HANDLER( slave_portf_r )
+READ16_MEMBER(namcos21_state::slave_portf_r)
{ /* informs BIOS that this is Slave DSP */
return 1;
}
@@ -910,13 +899,13 @@ static ADDRESS_MAP_START( slave_dsp_data, AS_DATA, 16, namcos21_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( slave_dsp_io, AS_IO, 16, namcos21_state )
- AM_RANGE(0x00,0x00) AM_READWRITE_LEGACY(slave_port0_r,slave_port0_w)
- AM_RANGE(0x02,0x02) AM_READ_LEGACY(slave_port2_r)
- AM_RANGE(0x03,0x03) AM_READWRITE_LEGACY(slave_port3_r,slave_port3_w)
- AM_RANGE(0x0f,0x0f) AM_READ_LEGACY(slave_portf_r)
+ AM_RANGE(0x00,0x00) AM_READWRITE(slave_port0_r,slave_port0_w)
+ AM_RANGE(0x02,0x02) AM_READ(slave_port2_r)
+ AM_RANGE(0x03,0x03) AM_READWRITE(slave_port3_r,slave_port3_w)
+ AM_RANGE(0x0f,0x0f) AM_READ(slave_portf_r)
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
- AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE_LEGACY(slave_XF_output_w)
+ AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITE(slave_XF_output_w)
ADDRESS_MAP_END
/************************************************************************************/
@@ -938,74 +927,69 @@ ADDRESS_MAP_END
* 0001 0007 0000000A
* 0002 001A 03FFF1A0
*/
-static WRITE16_HANDLER( pointram_control_w )
+WRITE16_MEMBER(namcos21_state::pointram_control_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
-// UINT16 prev = state->m_pointram_control;
- COMBINE_DATA( &state->m_pointram_control );
+// UINT16 prev = m_pointram_control;
+ COMBINE_DATA( &m_pointram_control );
- /* state->m_pointram_control&0x20 : bank for depthcue data */
+ /* m_pointram_control&0x20 : bank for depthcue data */
#if 0
logerror( "dsp_control_w:'%s':%x[%x]:=%04x ",
- space->cpu->tag,
- cpu_get_pc(space->cpu),
+ cpu->tag,
+ cpu_get_pc(cpu),
offset,
- state->m_pointram_control );
+ m_pointram_control );
- UINT16 delta = (prev^state->m_pointram_control)&state->m_pointram_control;
+ UINT16 delta = (prev^m_pointram_control)&m_pointram_control;
if( delta&0x10 )
{
logerror( " [reset]" );
}
if( delta&2 )
{
- logerror( " send(A)%x", state->m_pointram_control&1 );
+ logerror( " send(A)%x", m_pointram_control&1 );
}
if( delta&4 )
{
- logerror( " send(B)%x", state->m_pointram_control&1 );
+ logerror( " send(B)%x", m_pointram_control&1 );
}
if( delta&8 )
{
- logerror( " send(C)%x", state->m_pointram_control&1 );
+ logerror( " send(C)%x", m_pointram_control&1 );
}
logerror( "\n" );
#endif
- state->m_pointram_idx = 0; /* HACK */
+ m_pointram_idx = 0; /* HACK */
} /* pointram_control_w */
-static READ16_HANDLER( pointram_data_r )
+READ16_MEMBER(namcos21_state::pointram_data_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_pointram[state->m_pointram_idx];
+ return m_pointram[m_pointram_idx];
} /* pointram_data_r */
-static WRITE16_HANDLER( pointram_data_w )
+WRITE16_MEMBER(namcos21_state::pointram_data_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
if( ACCESSING_BITS_0_7 )
{
-// if( (state->m_pointram_idx%6)==0 ) logerror("\n" );
+// if( (m_pointram_idx%6)==0 ) logerror("\n" );
// logerror( " %02x", data );
- state->m_pointram[state->m_pointram_idx++] = data;
- state->m_pointram_idx &= (PTRAM_SIZE-1);
+ m_pointram[m_pointram_idx++] = data;
+ m_pointram_idx &= (PTRAM_SIZE-1);
}
} /* pointram_data_w */
-static READ16_HANDLER( namcos21_depthcue_r )
+READ16_MEMBER(namcos21_state::namcos21_depthcue_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- int bank = (state->m_pointram_control&0x20)?1:0;
- return state->m_depthcue[bank][offset];
+ int bank = (m_pointram_control&0x20)?1:0;
+ return m_depthcue[bank][offset];
}
-static WRITE16_HANDLER( namcos21_depthcue_w )
+WRITE16_MEMBER(namcos21_state::namcos21_depthcue_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
if( ACCESSING_BITS_0_7 )
{
- int bank = (state->m_pointram_control&0x20)?1:0;
- state->m_depthcue[bank][offset] = data;
+ int bank = (m_pointram_control&0x20)?1:0;
+ m_depthcue[bank][offset] = data;
// if( (offset&0xf)==0 ) logerror( "\n depthcue: " );
// logerror( " %02x", data );
}
@@ -1013,79 +997,71 @@ static WRITE16_HANDLER( namcos21_depthcue_w )
/* dual port ram memory handlers */
-static READ16_HANDLER( namcos2_68k_dualportram_word_r )
+READ16_MEMBER(namcos21_state::namcos2_68k_dualportram_word_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_mpDualPortRAM[offset];
+ return m_mpDualPortRAM[offset];
}
-static WRITE16_HANDLER( namcos2_68k_dualportram_word_w )
+WRITE16_MEMBER(namcos21_state::namcos2_68k_dualportram_word_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
if( ACCESSING_BITS_0_7 )
{
- state->m_mpDualPortRAM[offset] = data&0xff;
+ m_mpDualPortRAM[offset] = data&0xff;
}
}
-static READ8_HANDLER( namcos2_dualportram_byte_r )
+READ8_MEMBER(namcos21_state::namcos2_dualportram_byte_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_mpDualPortRAM[offset];
+ return m_mpDualPortRAM[offset];
}
-static WRITE8_HANDLER( namcos2_dualportram_byte_w )
+WRITE8_MEMBER(namcos21_state::namcos2_dualportram_byte_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- state->m_mpDualPortRAM[offset] = data;
+ m_mpDualPortRAM[offset] = data;
}
/* shared RAM memory handlers */
-static READ16_HANDLER( shareram1_r )
+READ16_MEMBER(namcos21_state::shareram1_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_mpSharedRAM1[offset];
+ return m_mpSharedRAM1[offset];
}
-static WRITE16_HANDLER( shareram1_w )
+WRITE16_MEMBER(namcos21_state::shareram1_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- COMBINE_DATA( &state->m_mpSharedRAM1[offset] );
+ COMBINE_DATA( &m_mpSharedRAM1[offset] );
}
/* some games have read-only areas where more ROMs are mapped */
-static READ16_HANDLER( datarom_r )
+READ16_MEMBER(namcos21_state::datarom_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_mpDataROM[offset];
+ return m_mpDataROM[offset];
}
-static READ16_HANDLER( data2_r )
+READ16_MEMBER(namcos21_state::data2_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_mpDataROM[0x100000/2+offset];
+ return m_mpDataROM[0x100000/2+offset];
}
/* palette memory handlers */
-static READ16_HANDLER( paletteram16_r )
+READ16_MEMBER(namcos21_state::paletteram16_r)
{
- return space->machine().generic.paletteram.u16[offset];
+ return machine().generic.paletteram.u16[offset];
}
-static WRITE16_HANDLER( paletteram16_w )
+WRITE16_MEMBER(namcos21_state::paletteram16_w)
{
- COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
}
/******************************************************************************/
-static WRITE16_HANDLER( NAMCO_C139_SCI_buffer_w ){}
-static READ16_HANDLER( NAMCO_C139_SCI_buffer_r ){ return 0; }
+WRITE16_MEMBER(namcos21_state::NAMCO_C139_SCI_buffer_w){}
+READ16_MEMBER(namcos21_state::NAMCO_C139_SCI_buffer_r){ return 0; }
-static WRITE16_HANDLER( NAMCO_C139_SCI_register_w ){}
-static READ16_HANDLER( NAMCO_C139_SCI_register_r ){ return 0; }
+WRITE16_MEMBER(namcos21_state::NAMCO_C139_SCI_register_w){}
+READ16_MEMBER(namcos21_state::NAMCO_C139_SCI_register_r){ return 0; }
/******************************************************************************/
/*************************************************************/
@@ -1093,23 +1069,23 @@ static READ16_HANDLER( NAMCO_C139_SCI_register_r ){ return 0; }
/*************************************************************/
#define NAMCO21_68K_COMMON \
- AM_RANGE(0x200000, 0x20ffff) AM_READWRITE_LEGACY(dspram16_r,dspram16_w) AM_BASE(m_dspram16) \
+ AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(dspram16_r,dspram16_w) AM_BASE(m_dspram16) \
AM_RANGE(0x280000, 0x280001) AM_WRITENOP /* written once on startup */ \
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(pointram_control_w) \
- AM_RANGE(0x440000, 0x440001) AM_READWRITE_LEGACY(pointram_data_r,pointram_data_w) \
+ AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w) \
+ AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w) \
AM_RANGE(0x440002, 0x47ffff) AM_WRITENOP /* (?) Air Combat */ \
- AM_RANGE(0x480000, 0x4807ff) AM_READWRITE_LEGACY(namcos21_depthcue_r,namcos21_depthcue_w) /* Air Combat */ \
+ AM_RANGE(0x480000, 0x4807ff) AM_READWRITE(namcos21_depthcue_r,namcos21_depthcue_w) /* Air Combat */ \
AM_RANGE(0x700000, 0x71ffff) AM_READWRITE_LEGACY(namco_obj16_r,namco_obj16_w) \
AM_RANGE(0x720000, 0x720007) AM_READWRITE_LEGACY(namco_spritepos16_r,namco_spritepos16_w) \
- AM_RANGE(0x740000, 0x75ffff) AM_READWRITE_LEGACY(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram) \
- AM_RANGE(0x760000, 0x760001) AM_READWRITE_LEGACY(namcos21_video_enable_r,namcos21_video_enable_w) \
- AM_RANGE(0x800000, 0x8fffff) AM_READ_LEGACY(datarom_r) \
- AM_RANGE(0x900000, 0x90ffff) AM_READWRITE_LEGACY(shareram1_r,shareram1_w) AM_BASE(m_mpSharedRAM1) \
- AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE_LEGACY(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w) \
- AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE_LEGACY(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w) \
- AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE_LEGACY(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
- AM_RANGE(0xc00000, 0xcfffff) AM_READ_LEGACY(data2_r) /* Cyber Sled */ \
- AM_RANGE(0xd00000, 0xdfffff) AM_READ_LEGACY(data2_r) \
+ AM_RANGE(0x740000, 0x75ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram) \
+ AM_RANGE(0x760000, 0x760001) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w) \
+ AM_RANGE(0x800000, 0x8fffff) AM_READ(datarom_r) \
+ AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_BASE(m_mpSharedRAM1) \
+ AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w) \
+ AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w) \
+ AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
+ AM_RANGE(0xc00000, 0xcfffff) AM_READ(data2_r) /* Cyber Sled */ \
+ AM_RANGE(0xd00000, 0xdfffff) AM_READ(data2_r) \
static ADDRESS_MAP_START( namcos21_68k_master, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
@@ -1130,24 +1106,22 @@ ADDRESS_MAP_END
/*************************************************************
* Winning Run is prototype "System21" hardware.
*************************************************************/
-static READ16_HANDLER( winrun_dspcomram_r )
+READ16_MEMBER(namcos21_state::winrun_dspcomram_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- int bank = 1-(state->m_winrun_dspcomram_control[0x4/2]&1);
- UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
+ int bank = 1-(m_winrun_dspcomram_control[0x4/2]&1);
+ UINT16 *mem = &m_winrun_dspcomram[0x1000*bank];
return mem[offset];
}
-static WRITE16_HANDLER( winrun_dspcomram_w )
+WRITE16_MEMBER(namcos21_state::winrun_dspcomram_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- int bank = 1-(state->m_winrun_dspcomram_control[0x4/2]&1);
- UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
+ int bank = 1-(m_winrun_dspcomram_control[0x4/2]&1);
+ UINT16 *mem = &m_winrun_dspcomram[0x1000*bank];
COMBINE_DATA( &mem[offset] );
}
-static READ16_HANDLER( winrun_cuskey_r )
+READ16_MEMBER(namcos21_state::winrun_cuskey_r)
{
- int pc = cpu_get_pc(&space->device());
+ int pc = cpu_get_pc(&space.device());
switch( pc )
{
case 0x0064: /* winrun91 */
@@ -1166,7 +1140,7 @@ static READ16_HANDLER( winrun_cuskey_r )
return 0;
} /* winrun_cuskey_r */
-static WRITE16_HANDLER( winrun_cuskey_w )
+WRITE16_MEMBER(namcos21_state::winrun_cuskey_w)
{
} /* winrun_cuskey_w */
@@ -1216,18 +1190,17 @@ winrun_flushpoly( running_machine &machine )
}
} /* winrun_flushpoly */
-static READ16_HANDLER( winrun_poly_reset_r )
+READ16_MEMBER(namcos21_state::winrun_poly_reset_r)
{
- winrun_flushpoly(space->machine());
+ winrun_flushpoly(machine());
return 0;
}
-static WRITE16_HANDLER( winrun_dsp_render_w )
+WRITE16_MEMBER(namcos21_state::winrun_dsp_render_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- if( state->m_winrun_poly_index<WINRUN_MAX_POLY_PARAM )
+ if( m_winrun_poly_index<WINRUN_MAX_POLY_PARAM )
{
- state->m_winrun_poly_buf[state->m_winrun_poly_index++] = data;
+ m_winrun_poly_buf[m_winrun_poly_index++] = data;
}
else
{
@@ -1235,40 +1208,37 @@ static WRITE16_HANDLER( winrun_dsp_render_w )
}
} /* winrun_dsp_render_w */
-static WRITE16_HANDLER( winrun_dsp_pointrom_addr_w )
+WRITE16_MEMBER(namcos21_state::winrun_dsp_pointrom_addr_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
if( offset==0 )
{ /* port 8 */
- state->m_winrun_pointrom_addr = data;
+ m_winrun_pointrom_addr = data;
}
else
{ /* port 9 */
- state->m_winrun_pointrom_addr |= (data<<16);
+ m_winrun_pointrom_addr |= (data<<16);
}
}
-static READ16_HANDLER( winrun_dsp_pointrom_data_r )
+READ16_MEMBER(namcos21_state::winrun_dsp_pointrom_data_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- UINT16 *ptrom = (UINT16 *)space->machine().region("user2")->base();
- return ptrom[state->m_winrun_pointrom_addr++];
+ UINT16 *ptrom = (UINT16 *)machine().region("user2")->base();
+ return ptrom[m_winrun_pointrom_addr++];
} /* winrun_dsp_pointrom_data_r */
-static WRITE16_HANDLER( winrun_dsp_complete_w )
+WRITE16_MEMBER(namcos21_state::winrun_dsp_complete_w)
{
if( data )
{
- winrun_flushpoly(space->machine());
- cputag_set_input_line(space->machine(), "dsp", INPUT_LINE_RESET, PULSE_LINE);
- namcos21_ClearPolyFrameBuffer(space->machine());
+ winrun_flushpoly(machine());
+ cputag_set_input_line(machine(), "dsp", INPUT_LINE_RESET, PULSE_LINE);
+ namcos21_ClearPolyFrameBuffer(machine());
}
}
-static READ16_HANDLER( winrun_table_r )
+READ16_MEMBER(namcos21_state::winrun_table_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_winrun_polydata[offset];
+ return m_winrun_polydata[offset];
}
static ADDRESS_MAP_START( winrun_dsp_program, AS_PROGRAM, 16, namcos21_state )
@@ -1276,48 +1246,45 @@ static ADDRESS_MAP_START( winrun_dsp_program, AS_PROGRAM, 16, namcos21_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( winrun_dsp_data, AS_DATA, 16, namcos21_state )
- AM_RANGE( 0x2000, 0x200f ) AM_READWRITE_LEGACY(winrun_cuskey_r,winrun_cuskey_w)
- AM_RANGE( 0x4000, 0x4fff ) AM_READWRITE_LEGACY(winrun_dspcomram_r,winrun_dspcomram_w)
- AM_RANGE( 0x8000, 0xffff ) AM_READ_LEGACY(winrun_table_r )
+ AM_RANGE( 0x2000, 0x200f ) AM_READWRITE(winrun_cuskey_r,winrun_cuskey_w)
+ AM_RANGE( 0x4000, 0x4fff ) AM_READWRITE(winrun_dspcomram_r,winrun_dspcomram_w)
+ AM_RANGE( 0x8000, 0xffff ) AM_READ(winrun_table_r )
ADDRESS_MAP_END
static ADDRESS_MAP_START( winrun_dsp_io, AS_IO, 16, namcos21_state )
- AM_RANGE(0x08,0x09) AM_READWRITE_LEGACY(winrun_dsp_pointrom_data_r,winrun_dsp_pointrom_addr_w)
- AM_RANGE(0x0a,0x0a) AM_WRITE_LEGACY(winrun_dsp_render_w)
+ AM_RANGE(0x08,0x09) AM_READWRITE(winrun_dsp_pointrom_data_r,winrun_dsp_pointrom_addr_w)
+ AM_RANGE(0x0a,0x0a) AM_WRITE(winrun_dsp_render_w)
AM_RANGE(0x0b,0x0b) AM_WRITENOP
- AM_RANGE(0x0c,0x0c) AM_WRITE_LEGACY(winrun_dsp_complete_w)
- AM_RANGE(TMS32025_BIO, TMS32025_BIO) AM_READ_LEGACY(winrun_poly_reset_r )
+ AM_RANGE(0x0c,0x0c) AM_WRITE(winrun_dsp_complete_w)
+ AM_RANGE(TMS32025_BIO, TMS32025_BIO) AM_READ(winrun_poly_reset_r )
AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READNOP
AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITENOP
AM_RANGE(TMS32025_XF, TMS32025_XF) AM_WRITENOP
ADDRESS_MAP_END
-static READ16_HANDLER( gpu_data_r )
+READ16_MEMBER(namcos21_state::gpu_data_r)
{
- const UINT16 *pSrc = (UINT16 *)space->machine().region( "user3" )->base();
+ const UINT16 *pSrc = (UINT16 *)machine().region( "user3" )->base();
return pSrc[offset];
}
-static READ16_HANDLER( winrun_gpucomram_r )
+READ16_MEMBER(namcos21_state::winrun_gpucomram_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_winrun_gpucomram[offset];
+ return m_winrun_gpucomram[offset];
}
-static WRITE16_HANDLER( winrun_gpucomram_w )
+WRITE16_MEMBER(namcos21_state::winrun_gpucomram_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- COMBINE_DATA( &state->m_winrun_gpucomram[offset] );
+ COMBINE_DATA( &m_winrun_gpucomram[offset] );
}
-static WRITE16_HANDLER( winrun_dspbios_w )
+WRITE16_MEMBER(namcos21_state::winrun_dspbios_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- COMBINE_DATA( &state->m_winrun_dspbios[offset] );
+ COMBINE_DATA( &m_winrun_dspbios[offset] );
if( offset==0xfff )
{
- UINT16 *mem = (UINT16 *)space->machine().region("dsp")->base();
- memcpy( mem, state->m_winrun_dspbios, 0x2000 );
- state->m_winrun_dsp_alive = 1;
+ UINT16 *mem = (UINT16 *)machine().region("dsp")->base();
+ memcpy( mem, m_winrun_dspbios, 0x2000 );
+ m_winrun_dsp_alive = 1;
}
} /* winrun_dspbios_w */
@@ -1326,32 +1293,28 @@ static WRITE16_HANDLER( winrun_dspbios_w )
//380004 : dspcomram bank, as seen by 68k
//380008 : read : state?
-static READ16_HANDLER( winrun_68k_dspcomram_r )
+READ16_MEMBER(namcos21_state::winrun_68k_dspcomram_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- int bank = state->m_winrun_dspcomram_control[0x4/2]&1;
- UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
+ int bank = m_winrun_dspcomram_control[0x4/2]&1;
+ UINT16 *mem = &m_winrun_dspcomram[0x1000*bank];
return mem[offset];
}
-static WRITE16_HANDLER( winrun_68k_dspcomram_w )
+WRITE16_MEMBER(namcos21_state::winrun_68k_dspcomram_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- int bank = state->m_winrun_dspcomram_control[0x4/2]&1;
- UINT16 *mem = &state->m_winrun_dspcomram[0x1000*bank];
+ int bank = m_winrun_dspcomram_control[0x4/2]&1;
+ UINT16 *mem = &m_winrun_dspcomram[0x1000*bank];
COMBINE_DATA( &mem[offset] );
}
-static READ16_HANDLER( winrun_dspcomram_control_r )
+READ16_MEMBER(namcos21_state::winrun_dspcomram_control_r)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- return state->m_winrun_dspcomram_control[offset];
+ return m_winrun_dspcomram_control[offset];
}
-static WRITE16_HANDLER( winrun_dspcomram_control_w )
+WRITE16_MEMBER(namcos21_state::winrun_dspcomram_control_w)
{
- namcos21_state *state = space->machine().driver_data<namcos21_state>();
- COMBINE_DATA( &state->m_winrun_dspcomram_control[offset] );
+ COMBINE_DATA( &m_winrun_dspcomram_control[offset] );
}
static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16, namcos21_state )
@@ -1361,29 +1324,29 @@ static ADDRESS_MAP_START( am_master_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_BASE(m_winrun_polydata )
AM_RANGE(0x260000, 0x26ffff) AM_RAM /* unused? */
- AM_RANGE(0x280000, 0x281fff) AM_WRITE_LEGACY(winrun_dspbios_w) AM_BASE(m_winrun_dspbios)
- AM_RANGE(0x380000, 0x38000f) AM_READWRITE_LEGACY(winrun_dspcomram_control_r,winrun_dspcomram_control_w)
- AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE_LEGACY(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(pointram_control_w)
- AM_RANGE(0x440000, 0x440001) AM_READWRITE_LEGACY(pointram_data_r,pointram_data_w)
- AM_RANGE(0x600000, 0x60ffff) AM_READWRITE_LEGACY(winrun_gpucomram_r,winrun_gpucomram_w)
- AM_RANGE(0x800000, 0x87ffff) AM_READ_LEGACY(datarom_r)
- AM_RANGE(0x900000, 0x90ffff) AM_READWRITE_LEGACY(shareram1_r,shareram1_w) AM_BASE(m_mpSharedRAM1)
- AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE_LEGACY(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w)
- AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE_LEGACY(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w)
- AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE_LEGACY(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
+ AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_BASE(m_winrun_dspbios)
+ AM_RANGE(0x380000, 0x38000f) AM_READWRITE(winrun_dspcomram_control_r,winrun_dspcomram_control_w)
+ AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
+ AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w)
+ AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w)
+ AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(winrun_gpucomram_r,winrun_gpucomram_w)
+ AM_RANGE(0x800000, 0x87ffff) AM_READ(datarom_r)
+ AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_BASE(m_mpSharedRAM1)
+ AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w)
+ AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w)
+ AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( am_slave_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_slave_C148_r,namcos2_68k_slave_C148_w)
- AM_RANGE(0x600000, 0x60ffff) AM_READWRITE_LEGACY(winrun_gpucomram_r,winrun_gpucomram_w)
- AM_RANGE(0x800000, 0x87ffff) AM_READ_LEGACY(datarom_r)
- AM_RANGE(0x900000, 0x90ffff) AM_READWRITE_LEGACY(shareram1_r,shareram1_w)
- AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE_LEGACY(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w)
- AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE_LEGACY(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w)
- AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE_LEGACY(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
+ AM_RANGE(0x600000, 0x60ffff) AM_READWRITE(winrun_gpucomram_r,winrun_gpucomram_w)
+ AM_RANGE(0x800000, 0x87ffff) AM_READ(datarom_r)
+ AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w)
+ AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w)
+ AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w)
+ AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( am_gpu_winrun, AS_PROGRAM, 16, namcos21_state )
@@ -1392,8 +1355,8 @@ static ADDRESS_MAP_START( am_gpu_winrun, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x180000, 0x19ffff) AM_RAM /* work RAM */
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_gpu_C148_r,namcos2_68k_gpu_C148_w)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_winrun_gpucomram )
- AM_RANGE(0x400000, 0x41ffff) AM_READWRITE_LEGACY(paletteram16_r,paletteram16_w) AM_BASE_GENERIC( paletteram )
- AM_RANGE(0x600000, 0x6fffff) AM_READ_LEGACY(gpu_data_r)
+ AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC( paletteram )
+ AM_RANGE(0x600000, 0x6fffff) AM_READ(gpu_data_r)
AM_RANGE(0xc00000, 0xcfffff) AM_READWRITE_LEGACY(winrun_gpu_videoram_r,winrun_gpu_videoram_w)
AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE_LEGACY(winrun_gpu_register_r,winrun_gpu_register_w)
// AM_RANGE(0xe0000c, 0xe0000d) POSIRQ
@@ -1409,8 +1372,8 @@ static ADDRESS_MAP_START( am_sound_winrun, AS_PROGRAM, 8, namcos21_state )
AM_RANGE(0x3000, 0x3003) AM_WRITENOP /* ? */
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w)
AM_RANGE(0x5000, 0x6fff) AM_DEVREADWRITE_LEGACY("c140", c140_r,c140_w)
- AM_RANGE(0x7000, 0x77ff) AM_READWRITE_LEGACY(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) AM_BASE(m_mpDualPortRAM)
- AM_RANGE(0x7800, 0x7fff) AM_READWRITE_LEGACY(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) /* mirror */
+ AM_RANGE(0x7000, 0x77ff) AM_READWRITE(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) AM_BASE(m_mpDualPortRAM)
+ AM_RANGE(0x7800, 0x7fff) AM_READWRITE(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) /* mirror */
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xbfff) AM_WRITENOP /* amplifier enable on 1st write */
AM_RANGE(0xc000, 0xc001) AM_WRITE_LEGACY(namcos2_sound_bankselect_w)
@@ -1440,7 +1403,7 @@ static ADDRESS_MAP_START( am_mcu_winrun, AS_PROGRAM, 8, namcos21_state )
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DIAL1")
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DIAL2")
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DIAL3")
- AM_RANGE(0x5000, 0x57ff) AM_READWRITE_LEGACY(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) AM_BASE(m_mpDualPortRAM)
+ AM_RANGE(0x5000, 0x57ff) AM_READWRITE(namcos2_dualportram_byte_r,namcos2_dualportram_byte_w) AM_BASE(m_mpDualPortRAM)
AM_RANGE(0x6000, 0x6fff) AM_READNOP /* watchdog */
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -1454,13 +1417,13 @@ ADDRESS_MAP_END
#define DRIVEYES_68K_COMMON \
AM_RANGE(0x700000, 0x71ffff) AM_READWRITE_LEGACY(namco_obj16_r,namco_obj16_w) \
AM_RANGE(0x720000, 0x720007) AM_READWRITE_LEGACY(namco_spritepos16_r,namco_spritepos16_w) \
- AM_RANGE(0x740000, 0x75ffff) AM_READWRITE_LEGACY(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram) \
- AM_RANGE(0x760000, 0x760001) AM_READWRITE_LEGACY(namcos21_video_enable_r,namcos21_video_enable_w) \
- AM_RANGE(0x800000, 0x8fffff) AM_READ_LEGACY(datarom_r) \
- AM_RANGE(0x900000, 0x90ffff) AM_READWRITE_LEGACY(shareram1_r,shareram1_w) AM_BASE(m_mpSharedRAM1) \
- AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE_LEGACY(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w) \
- AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE_LEGACY(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w) \
- AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE_LEGACY(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
+ AM_RANGE(0x740000, 0x75ffff) AM_READWRITE(paletteram16_r,paletteram16_w) AM_BASE_GENERIC(paletteram) \
+ AM_RANGE(0x760000, 0x760001) AM_READWRITE(namcos21_video_enable_r,namcos21_video_enable_w) \
+ AM_RANGE(0x800000, 0x8fffff) AM_READ(datarom_r) \
+ AM_RANGE(0x900000, 0x90ffff) AM_READWRITE(shareram1_r,shareram1_w) AM_BASE(m_mpSharedRAM1) \
+ AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(namcos2_68k_dualportram_word_r,namcos2_68k_dualportram_word_w) \
+ AM_RANGE(0xb00000, 0xb03fff) AM_READWRITE(NAMCO_C139_SCI_buffer_r,NAMCO_C139_SCI_buffer_w) \
+ AM_RANGE(0xb80000, 0xb8000f) AM_READWRITE(NAMCO_C139_SCI_register_r,NAMCO_C139_SCI_register_w) \
static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16, namcos21_state )
@@ -1469,11 +1432,11 @@ static ADDRESS_MAP_START( driveyes_68k_master, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(NAMCOS2_68K_eeprom_R,NAMCOS2_68K_eeprom_W)// AM_BASE_LEGACY(&namcos2_eeprom) AM_SIZE_LEGACY(&namcos2_eeprom_size)
AM_RANGE(0x1c0000, 0x1fffff) AM_READWRITE_LEGACY(namcos2_68k_master_C148_r,namcos2_68k_master_C148_w)
AM_RANGE(0x250000, 0x25ffff) AM_RAM AM_BASE(m_winrun_polydata )
- AM_RANGE(0x280000, 0x281fff) AM_WRITE_LEGACY(winrun_dspbios_w) AM_BASE(m_winrun_dspbios)
- AM_RANGE(0x380000, 0x38000f) AM_READWRITE_LEGACY(winrun_dspcomram_control_r,winrun_dspcomram_control_w)
- AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE_LEGACY(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(pointram_control_w)
- AM_RANGE(0x440000, 0x440001) AM_READWRITE_LEGACY(pointram_data_r,pointram_data_w)
+ AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_BASE(m_winrun_dspbios)
+ AM_RANGE(0x380000, 0x38000f) AM_READWRITE(winrun_dspcomram_control_r,winrun_dspcomram_control_w)
+ AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
+ AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w)
+ AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w)
DRIVEYES_68K_COMMON
ADDRESS_MAP_END
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index deddb361cc3..a6add889cfe 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -182,121 +182,119 @@ TODO:
#include "sound/n63701x.h"
#include "includes/namcos86.h"
-static WRITE8_HANDLER( bankswitch1_w )
+WRITE8_MEMBER(namcos86_state::bankswitch1_w)
{
- UINT8 *base = space->machine().region("cpu1")->base() + 0x10000;
+ UINT8 *base = machine().region("cpu1")->base() + 0x10000;
/* if the ROM expansion module is available, don't do anything. This avoids conflict */
/* with bankswitch1_ext_w() in wndrmomo */
- if (space->machine().region("user1")->base()) return;
+ if (machine().region("user1")->base()) return;
- memory_set_bankptr(space->machine(), "bank1",base + ((data & 0x03) * 0x2000));
+ memory_set_bankptr(machine(), "bank1",base + ((data & 0x03) * 0x2000));
}
-static WRITE8_HANDLER( bankswitch1_ext_w )
+WRITE8_MEMBER(namcos86_state::bankswitch1_ext_w)
{
- UINT8 *base = space->machine().region("user1")->base();
+ UINT8 *base = machine().region("user1")->base();
if (base == 0) return;
- memory_set_bankptr(space->machine(), "bank1",base + ((data & 0x1f) * 0x2000));
+ memory_set_bankptr(machine(), "bank1",base + ((data & 0x1f) * 0x2000));
}
-static WRITE8_HANDLER( bankswitch2_w )
+WRITE8_MEMBER(namcos86_state::bankswitch2_w)
{
- UINT8 *base = space->machine().region("cpu2")->base() + 0x10000;
+ UINT8 *base = machine().region("cpu2")->base() + 0x10000;
- memory_set_bankptr(space->machine(), "bank2",base + ((data & 0x03) * 0x2000));
+ memory_set_bankptr(machine(), "bank2",base + ((data & 0x03) * 0x2000));
}
/* Stubs to pass the correct Dip Switch setup to the MCU */
-static READ8_HANDLER( dsw0_r )
+READ8_MEMBER(namcos86_state::dsw0_r)
{
int rhi, rlo;
- rhi = ( input_port_read(space->machine(), "DSWA") & 0x01 ) << 4;
- rhi |= ( input_port_read(space->machine(), "DSWA") & 0x04 ) << 3;
- rhi |= ( input_port_read(space->machine(), "DSWA") & 0x10 ) << 2;
- rhi |= ( input_port_read(space->machine(), "DSWA") & 0x40 ) << 1;
+ rhi = ( input_port_read(machine(), "DSWA") & 0x01 ) << 4;
+ rhi |= ( input_port_read(machine(), "DSWA") & 0x04 ) << 3;
+ rhi |= ( input_port_read(machine(), "DSWA") & 0x10 ) << 2;
+ rhi |= ( input_port_read(machine(), "DSWA") & 0x40 ) << 1;
- rlo = ( input_port_read(space->machine(), "DSWB") & 0x01 );
- rlo |= ( input_port_read(space->machine(), "DSWB") & 0x04 ) >> 1;
- rlo |= ( input_port_read(space->machine(), "DSWB") & 0x10 ) >> 2;
- rlo |= ( input_port_read(space->machine(), "DSWB") & 0x40 ) >> 3;
+ rlo = ( input_port_read(machine(), "DSWB") & 0x01 );
+ rlo |= ( input_port_read(machine(), "DSWB") & 0x04 ) >> 1;
+ rlo |= ( input_port_read(machine(), "DSWB") & 0x10 ) >> 2;
+ rlo |= ( input_port_read(machine(), "DSWB") & 0x40 ) >> 3;
return rhi | rlo;
}
-static READ8_HANDLER( dsw1_r )
+READ8_MEMBER(namcos86_state::dsw1_r)
{
int rhi, rlo;
- rhi = ( input_port_read(space->machine(), "DSWA") & 0x02 ) << 3;
- rhi |= ( input_port_read(space->machine(), "DSWA") & 0x08 ) << 2;
- rhi |= ( input_port_read(space->machine(), "DSWA") & 0x20 ) << 1;
- rhi |= ( input_port_read(space->machine(), "DSWA") & 0x80 );
+ rhi = ( input_port_read(machine(), "DSWA") & 0x02 ) << 3;
+ rhi |= ( input_port_read(machine(), "DSWA") & 0x08 ) << 2;
+ rhi |= ( input_port_read(machine(), "DSWA") & 0x20 ) << 1;
+ rhi |= ( input_port_read(machine(), "DSWA") & 0x80 );
- rlo = ( input_port_read(space->machine(), "DSWB") & 0x02 ) >> 1;
- rlo |= ( input_port_read(space->machine(), "DSWB") & 0x08 ) >> 2;
- rlo |= ( input_port_read(space->machine(), "DSWB") & 0x20 ) >> 3;
- rlo |= ( input_port_read(space->machine(), "DSWB") & 0x80 ) >> 4;
+ rlo = ( input_port_read(machine(), "DSWB") & 0x02 ) >> 1;
+ rlo |= ( input_port_read(machine(), "DSWB") & 0x08 ) >> 2;
+ rlo |= ( input_port_read(machine(), "DSWB") & 0x20 ) >> 3;
+ rlo |= ( input_port_read(machine(), "DSWB") & 0x80 ) >> 4;
return rhi | rlo;
}
-static WRITE8_HANDLER( int_ack1_w )
+WRITE8_MEMBER(namcos86_state::int_ack1_w)
{
- cputag_set_input_line(space->machine(), "cpu1", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "cpu1", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( int_ack2_w )
+WRITE8_MEMBER(namcos86_state::int_ack2_w)
{
- cputag_set_input_line(space->machine(), "cpu2", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "cpu2", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( watchdog1_w )
+WRITE8_MEMBER(namcos86_state::watchdog1_w)
{
- namcos86_state *state = space->machine().driver_data<namcos86_state>();
- state->m_wdog |= 1;
- if (state->m_wdog == 3)
+ m_wdog |= 1;
+ if (m_wdog == 3)
{
- state->m_wdog = 0;
+ m_wdog = 0;
watchdog_reset_w(space,0,0);
}
}
-static WRITE8_HANDLER( watchdog2_w )
+WRITE8_MEMBER(namcos86_state::watchdog2_w)
{
- namcos86_state *state = space->machine().driver_data<namcos86_state>();
- state->m_wdog |= 2;
- if (state->m_wdog == 3)
+ m_wdog |= 2;
+ if (m_wdog == 3)
{
- state->m_wdog = 0;
+ m_wdog = 0;
watchdog_reset_w(space,0,0);
}
}
-static WRITE8_HANDLER( namcos86_coin_w )
+WRITE8_MEMBER(namcos86_state::namcos86_coin_w)
{
- coin_lockout_global_w(space->machine(), data & 1);
- coin_counter_w(space->machine(), 0,~data & 2);
- coin_counter_w(space->machine(), 1,~data & 4);
+ coin_lockout_global_w(machine(), data & 1);
+ coin_counter_w(machine(), 0,~data & 2);
+ coin_counter_w(machine(), 1,~data & 4);
}
-static WRITE8_HANDLER( namcos86_led_w )
+WRITE8_MEMBER(namcos86_state::namcos86_led_w)
{
- set_led_status(space->machine(), 0,data & 0x08);
- set_led_status(space->machine(), 1,data & 0x10);
+ set_led_status(machine(), 0,data & 0x08);
+ set_led_status(machine(), 1,data & 0x10);
}
-static WRITE8_HANDLER( cus115_w )
+WRITE8_MEMBER(namcos86_state::cus115_w)
{
/* make sure the expansion board is present */
- if (!space->machine().region("user1")->base())
+ if (!machine().region("user1")->base())
{
popmessage("expansion board not present");
return;
@@ -308,7 +306,7 @@ static WRITE8_HANDLER( cus115_w )
case 1:
case 2:
case 3:
- namco_63701x_w(space->machine().device("namco2"), (offset & 0x1e00) >> 9,data);
+ namco_63701x_w(machine().device("namco2"), (offset & 0x1e00) >> 9,data);
break;
case 4:
@@ -345,14 +343,14 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, namcos86_state )
AM_RANGE(0x8000, 0xffff) AM_ROM
/* ROM & Voice expansion board - only some games have it */
- AM_RANGE(0x6000, 0x7fff) AM_WRITE_LEGACY(cus115_w) /* ROM bank select and 63701X sample player control */
+ AM_RANGE(0x6000, 0x7fff) AM_WRITE(cus115_w) /* ROM bank select and 63701X sample player control */
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(watchdog1_w)
- AM_RANGE(0x8400, 0x8400) AM_WRITE_LEGACY(int_ack1_w) /* IRQ acknowledge */
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(watchdog1_w)
+ AM_RANGE(0x8400, 0x8400) AM_WRITE(int_ack1_w) /* IRQ acknowledge */
AM_RANGE(0x8800, 0x8fff) AM_WRITE_LEGACY(rthunder_tilebank_select_w)
AM_RANGE(0x9000, 0x9002) AM_WRITE_LEGACY(rthunder_scroll0_w) /* scroll + priority */
- AM_RANGE(0x9003, 0x9003) AM_WRITE_LEGACY(bankswitch1_w)
+ AM_RANGE(0x9003, 0x9003) AM_WRITE(bankswitch1_w)
AM_RANGE(0x9004, 0x9006) AM_WRITE_LEGACY(rthunder_scroll1_w) /* scroll + priority */
AM_RANGE(0x9400, 0x9402) AM_WRITE_LEGACY(rthunder_scroll2_w) /* scroll + priority */
@@ -371,10 +369,10 @@ static ADDRESS_MAP_START( NAME##_cpu2_map, AS_PROGRAM, 8, namcos86_state )
AM_RANGE(ADDR_ROM+0x0000, ADDR_ROM+0x1fff) AM_ROMBANK("bank2") \
AM_RANGE(0x8000, 0xffff) AM_ROM \
/* { ADDR_BANK+0x00, ADDR_BANK+0x02 } layer 2 scroll registers would be here */ \
- AM_RANGE(ADDR_BANK+0x03, ADDR_BANK+0x03) AM_WRITE_LEGACY(bankswitch2_w) \
+ AM_RANGE(ADDR_BANK+0x03, ADDR_BANK+0x03) AM_WRITE(bankswitch2_w) \
/* { ADDR_BANK+0x04, ADDR_BANK+0x06 } layer 3 scroll registers would be here */ \
- AM_RANGE(ADDR_WDOG, ADDR_WDOG) AM_WRITE_LEGACY(watchdog2_w) \
- AM_RANGE(ADDR_INT, ADDR_INT) AM_WRITE_LEGACY(int_ack2_w) /* IRQ acknowledge */ \
+ AM_RANGE(ADDR_WDOG, ADDR_WDOG) AM_WRITE(watchdog2_w) \
+ AM_RANGE(ADDR_INT, ADDR_INT) AM_WRITE(int_ack2_w) /* IRQ acknowledge */ \
ADDRESS_MAP_END
#define UNUSED 0x4000
@@ -397,8 +395,8 @@ static ADDRESS_MAP_START( NAME##_mcu_map, AS_PROGRAM, 8, namcos86_state ) \
AM_RANGE(ADDR_INPUT+0x00, ADDR_INPUT+0x01) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w) \
AM_RANGE(ADDR_INPUT+0x20, ADDR_INPUT+0x20) AM_READ_PORT("IN0") \
AM_RANGE(ADDR_INPUT+0x21, ADDR_INPUT+0x21) AM_READ_PORT("IN1") \
- AM_RANGE(ADDR_INPUT+0x30, ADDR_INPUT+0x30) AM_READ_LEGACY(dsw0_r) \
- AM_RANGE(ADDR_INPUT+0x31, ADDR_INPUT+0x31) AM_READ_LEGACY(dsw1_r) \
+ AM_RANGE(ADDR_INPUT+0x30, ADDR_INPUT+0x30) AM_READ(dsw0_r) \
+ AM_RANGE(ADDR_INPUT+0x31, ADDR_INPUT+0x31) AM_READ(dsw1_r) \
AM_RANGE(ADDR_LOWROM, ADDR_LOWROM+0x3fff) AM_ROM \
AM_RANGE(0x8000, 0xbfff) AM_ROM \
AM_RANGE(0xf000, 0xffff) AM_ROM \
@@ -417,16 +415,16 @@ MCU_MEMORY( wndrmomo, 0x4000, 0x3800, 0xc000, 0xc800 )
#undef UNUSED
-static READ8_HANDLER( readFF )
+READ8_MEMBER(namcos86_state::readFF)
{
return 0xff;
}
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, namcos86_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("IN2")
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ_LEGACY(readFF) /* leds won't work otherwise */
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE_LEGACY(namcos86_coin_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE_LEGACY(namcos86_led_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(namcos86_coin_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE(namcos86_led_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c
index f38e7eba61b..f7c799c458f 100644
--- a/src/mame/drivers/naughtyb.c
+++ b/src/mame/drivers/naughtyb.c
@@ -110,28 +110,27 @@ TODO:
#define CLOCK_XTAL 12000000
-static READ8_HANDLER( in0_port_r )
+READ8_MEMBER(naughtyb_state::in0_port_r)
{
- naughtyb_state *state = space->machine().driver_data<naughtyb_state>();
- int in0 = input_port_read(space->machine(), "IN0");
+ int in0 = input_port_read(machine(), "IN0");
- if ( state->m_cocktail )
+ if ( m_cocktail )
{
// cabinet == cocktail -AND- handling player 2
in0 = ( in0 & 0x03 ) | // start buttons
- ( input_port_read(space->machine(), "IN0_COCKTAIL") & 0xFC ); // cocktail inputs
+ ( input_port_read(machine(), "IN0_COCKTAIL") & 0xFC ); // cocktail inputs
}
return in0;
}
-static READ8_HANDLER( dsw0_port_r )
+READ8_MEMBER(naughtyb_state::dsw0_port_r)
{
// vblank replaces the cabinet dip
- return ( ( input_port_read(space->machine(), "DSW0") & 0x7F ) | // dsw0
- ( input_port_read(space->machine(), "FAKE") & 0x80 ) ); // vblank
+ return ( ( input_port_read(machine(), "DSW0") & 0x7F ) | // dsw0
+ ( input_port_read(machine(), "FAKE") & 0x80 ) ); // vblank
}
/* Pop Flamer
@@ -142,32 +141,31 @@ static READ8_HANDLER( dsw0_port_r )
Paul Priest: tourniquet@mameworld.net */
-static READ8_HANDLER( popflame_protection_r ) /* Not used by bootleg/hack */
+READ8_MEMBER(naughtyb_state::popflame_protection_r)/* Not used by bootleg/hack */
{
- naughtyb_state *state = space->machine().driver_data<naughtyb_state>();
static const int seed00[4] = { 0x78, 0x68, 0x48, 0x38|0x80 };
static const int seed10[4] = { 0x68, 0x60, 0x68, 0x60|0x80 };
UINT8 seedxx;
- seedxx = (state->m_r_index < 0x89) ? 1 : 0;
+ seedxx = (m_r_index < 0x89) ? 1 : 0;
- state->m_prot_count = (state->m_prot_count + 1) % 4;
- if(state->m_popflame_prot_seed == 0x10)
- return seed10[state->m_prot_count] | seedxx;
+ m_prot_count = (m_prot_count + 1) % 4;
+ if(m_popflame_prot_seed == 0x10)
+ return seed10[m_prot_count] | seedxx;
else
- return seed00[state->m_prot_count] | seedxx;
+ return seed00[m_prot_count] | seedxx;
#if 0
- if ( cpu_get_pc(&space->device()) == (0x26F2 + 0x03) )
+ if ( cpu_get_pc(&space.device()) == (0x26F2 + 0x03) )
{
popflame_prot_count = 0;
return 0x01;
} /* Must not carry when rotated left */
- if ( cpu_get_pc(&space->device()) == (0x26F9 + 0x03) )
+ if ( cpu_get_pc(&space.device()) == (0x26F9 + 0x03) )
return 0x80; /* Must carry when rotated left */
- if ( cpu_get_pc(&space->device()) == (0x270F + 0x03) )
+ if ( cpu_get_pc(&space.device()) == (0x270F + 0x03) )
{
switch( popflame_prot_count++ )
{
@@ -177,14 +175,13 @@ static READ8_HANDLER( popflame_protection_r ) /* Not used by bootleg/hack */
case 3: return 0x38; /* x011 1xxx, matches 0x07 at $2693, stored in $400D */
}
}
- logerror("CPU #0 PC %06x: unmapped protection read\n", cpu_get_pc(&space->device()));
+ logerror("CPU #0 PC %06x: unmapped protection read\n", cpu_get_pc(&space.device()));
return 0x00;
#endif
}
-static WRITE8_HANDLER( popflame_protection_w )
+WRITE8_MEMBER(naughtyb_state::popflame_protection_w)
{
- naughtyb_state *state = space->machine().driver_data<naughtyb_state>();
/*
Alternative protection check is executed at the end of stage 3, it seems some kind of pseudo "EEPROM" device:
2720: 21 98 B0 ld hl,$B098
@@ -235,12 +232,12 @@ static WRITE8_HANDLER( popflame_protection_w )
---- --x- puts a bit into the write buffer
---- ---x reset write index buffer
*/
- if(data & 1 && ((state->m_popflame_prot_seed & 1) == 0)) //Note: we use the write buffer index
- state->m_r_index = 0;
- if(data & 8 && ((state->m_popflame_prot_seed & 8) == 0))
- state->m_r_index++;
+ if(data & 1 && ((m_popflame_prot_seed & 1) == 0)) //Note: we use the write buffer index
+ m_r_index = 0;
+ if(data & 8 && ((m_popflame_prot_seed & 8) == 0))
+ m_r_index++;
- state->m_popflame_prot_seed = data & 0x10;
+ m_popflame_prot_seed = data & 0x10;
}
@@ -255,8 +252,8 @@ static ADDRESS_MAP_START( naughtyb_map, AS_PROGRAM, 8, naughtyb_state )
AM_RANGE(0x9800, 0x9fff) AM_RAM AM_BASE(m_scrollreg)
AM_RANGE(0xa000, 0xa7ff) AM_DEVWRITE_LEGACY("cust", pleiads_sound_control_a_w)
AM_RANGE(0xa800, 0xafff) AM_DEVWRITE_LEGACY("cust", pleiads_sound_control_b_w)
- AM_RANGE(0xb000, 0xb7ff) AM_READ_LEGACY(in0_port_r) // IN0
- AM_RANGE(0xb800, 0xbfff) AM_READ_LEGACY(dsw0_port_r) // DSW0
+ AM_RANGE(0xb000, 0xb7ff) AM_READ(in0_port_r) // IN0
+ AM_RANGE(0xb800, 0xbfff) AM_READ(dsw0_port_r) // DSW0
ADDRESS_MAP_END
static ADDRESS_MAP_START( popflame_map, AS_PROGRAM, 8, naughtyb_state )
@@ -268,8 +265,8 @@ static ADDRESS_MAP_START( popflame_map, AS_PROGRAM, 8, naughtyb_state )
AM_RANGE(0x9800, 0x9fff) AM_RAM AM_BASE(m_scrollreg)
AM_RANGE(0xa000, 0xa7ff) AM_DEVWRITE_LEGACY("cust", pleiads_sound_control_a_w)
AM_RANGE(0xa800, 0xafff) AM_DEVWRITE_LEGACY("cust", pleiads_sound_control_b_w)
- AM_RANGE(0xb000, 0xb7ff) AM_READ_LEGACY(in0_port_r) // IN0
- AM_RANGE(0xb800, 0xbfff) AM_READ_LEGACY(dsw0_port_r) // DSW0
+ AM_RANGE(0xb000, 0xb7ff) AM_READ(in0_port_r) // IN0
+ AM_RANGE(0xb800, 0xbfff) AM_READ(dsw0_port_r) // DSW0
ADDRESS_MAP_END
@@ -839,32 +836,31 @@ ROM_END
static DRIVER_INIT( popflame )
{
/* install a handler to catch protection checks */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x9000, 0x9000, FUNC(popflame_protection_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x9090, 0x9090, FUNC(popflame_protection_r));
+ naughtyb_state *state = machine.driver_data<naughtyb_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x9000, 0x9000, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x9090, 0x9090, read8_delegate(FUNC(naughtyb_state::popflame_protection_r),state));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xb000, 0xb0ff, FUNC(popflame_protection_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xb000, 0xb0ff, write8_delegate(FUNC(naughtyb_state::popflame_protection_w),state));
}
-static READ8_HANDLER( trvmstr_questions_r )
+READ8_MEMBER(naughtyb_state::trvmstr_questions_r)
{
- naughtyb_state *state = space->machine().driver_data<naughtyb_state>();
- return space->machine().region("user1")->base()[state->m_question_offset];
+ return machine().region("user1")->base()[m_question_offset];
}
-static WRITE8_HANDLER( trvmstr_questions_w )
+WRITE8_MEMBER(naughtyb_state::trvmstr_questions_w)
{
- naughtyb_state *state = space->machine().driver_data<naughtyb_state>();
switch(offset)
{
case 0:
- state->m_question_offset = (state->m_question_offset & 0xffff00) | data;
+ m_question_offset = (m_question_offset & 0xffff00) | data;
break;
case 1:
- state->m_question_offset = (state->m_question_offset & 0xff00ff) | (data << 8);
+ m_question_offset = (m_question_offset & 0xff00ff) | (data << 8);
break;
case 2:
- state->m_question_offset = (state->m_question_offset & 0x00ffff) | (data << 16);
+ m_question_offset = (m_question_offset & 0x00ffff) | (data << 16);
break;
}
}
@@ -872,7 +868,8 @@ static WRITE8_HANDLER( trvmstr_questions_w )
static DRIVER_INIT( trvmstr )
{
/* install questions' handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xc000, 0xc002, FUNC(trvmstr_questions_r), FUNC(trvmstr_questions_w));
+ naughtyb_state *state = machine.driver_data<naughtyb_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0xc000, 0xc002, read8_delegate(FUNC(naughtyb_state::trvmstr_questions_r),state), write8_delegate(FUNC(naughtyb_state::trvmstr_questions_w),state));
}
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index 5cab97ac82c..103e03b902a 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -297,7 +297,7 @@ static ADDRESS_MAP_START( ojousan_map, AS_PROGRAM, 8, nbmj8688_state )
ADDRESS_MAP_END
-static READ8_HANDLER( ff_r )
+READ8_MEMBER(nbmj8688_state::ff_r)
{
/* possibly because of a bug, reads from port 0xd0 must return 0xff
otherwise apparel doesn't clear the background when you insert a coin */
@@ -315,7 +315,7 @@ static ADDRESS_MAP_START( secolove_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj8688_clut_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(secolove_romsel_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -323,10 +323,10 @@ static ADDRESS_MAP_START( secolove_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0xf0, 0xf0) AM_WRITE_LEGACY(mjsikaku_scrolly_w)
ADDRESS_MAP_END
-static WRITE8_HANDLER( barline_output_w )
+WRITE8_MEMBER(nbmj8688_state::barline_output_w)
{
- coin_lockout_w(space->machine(), 0,~data & 0x80);
- coin_counter_w(space->machine(), 0,data & 0x02);
+ coin_lockout_w(machine(), 0,~data & 0x80);
+ coin_counter_w(machine(), 0,data & 0x02);
}
static ADDRESS_MAP_START( barline_io_map, AS_IO, 8, nbmj8688_state )
@@ -338,9 +338,9 @@ static ADDRESS_MAP_START( barline_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0x90, 0x97) AM_WRITE_LEGACY(nbmj8688_blitter_w)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
- AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,barline_output_w)
+ AM_RANGE(0xb0, 0xb0) AM_READ_LEGACY(nb1413m3_inputport2_r) AM_WRITE(barline_output_w)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj8688_clut_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
// AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE) //not used
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(secolove_romsel_w)
AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r) AM_WRITE_LEGACY(mjsikaku_scrolly_w)
@@ -358,7 +358,7 @@ static ADDRESS_MAP_START( crystalg_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj8688_clut_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(crystalg_romsel_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -378,7 +378,7 @@ static ADDRESS_MAP_START( otonano_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,mjsikaku_scrolly_w)
@@ -398,7 +398,7 @@ static ADDRESS_MAP_START( kaguya_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
AM_RANGE(0xf0, 0xf0) AM_READWRITE_LEGACY(nb1413m3_dipsw1_r,mjsikaku_scrolly_w)
@@ -419,7 +419,7 @@ static ADDRESS_MAP_START( iemoto_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -441,7 +441,7 @@ static ADDRESS_MAP_START( seiha_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x97) AM_WRITE_LEGACY(nbmj8688_blitter_w)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -461,7 +461,7 @@ static ADDRESS_MAP_START( mjgaiden_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x97) AM_WRITE_LEGACY(nbmj8688_blitter_w)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -486,7 +486,7 @@ static ADDRESS_MAP_START( p16bit_LCD_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj8688_clut_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(secolove_romsel_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -507,7 +507,7 @@ static ADDRESS_MAP_START( mjsikaku_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
@@ -529,7 +529,7 @@ static ADDRESS_MAP_START( mmsikaku_io_map, AS_IO, 8, nbmj8688_state )
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_sndrombank1_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(ff_r) // irq ack? watchdog?
+ AM_RANGE(0xd0, 0xd0) AM_READ(ff_r) // irq ack? watchdog?
AM_RANGE(0xd0, 0xd0) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(mjsikaku_gfxflag2_w)
// AM_RANGE(0xf0, 0xf0) AM_READ_LEGACY(nb1413m3_dipsw1_r)
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index 3499bac0406..af5087c01e5 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -411,7 +411,7 @@ static ADDRESS_MAP_START( hanaoji_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0xf800, 0xffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static READ8_HANDLER( taiwanmb_unk_r )
+READ8_MEMBER(nbmj8891_state::taiwanmb_unk_r)
{
return 0x00; // MCU or 1413M3 STATUS?
}
@@ -421,7 +421,7 @@ static ADDRESS_MAP_START( taiwanmb_map, AS_PROGRAM, 8, nbmj8891_state )
AM_RANGE(0xec00, 0xedff) AM_READWRITE_LEGACY(nbmj8891_palette_type3_r,nbmj8891_palette_type3_w)
AM_RANGE(0xf800, 0xfeff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xff00, 0xff1f) AM_NOP // ?
- AM_RANGE(0xff20, 0xff20) AM_READ_LEGACY(taiwanmb_unk_r) // MCU or 1413M3 STATUS? (return != 0x00 then loop)
+ AM_RANGE(0xff20, 0xff20) AM_READ(taiwanmb_unk_r) // MCU or 1413M3 STATUS? (return != 0x00 then loop)
AM_RANGE(0xff20, 0xff20) AM_WRITE_LEGACY(nbmj8891_taiwanmb_mcu_w) // MCU PARAMETER?
AM_RANGE(0xff21, 0xff2f) AM_READNOP // ?
AM_RANGE(0xff21, 0xff21) AM_WRITENOP // blitter parameter set end (write 0x01 only)
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index 23b88711852..c083a6b1cb7 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -46,18 +46,18 @@ Notes:
#endif
-static WRITE8_HANDLER( nbmj8991_soundbank_w )
+WRITE8_MEMBER(nbmj8991_state::nbmj8991_soundbank_w)
{
if (!(data & 0x80)) soundlatch_clear_w(space, 0, 0);
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
-static WRITE8_HANDLER( nbmj8991_sound_w )
+WRITE8_MEMBER(nbmj8991_state::nbmj8991_sound_w)
{
soundlatch_w(space, 0, data);
}
-static READ8_HANDLER( nbmj8991_sound_r )
+READ8_MEMBER(nbmj8991_state::nbmj8991_sound_r)
{
int data;
@@ -285,7 +285,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pstadium_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(nbmj8991_blitter_w)
- AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(nbmj8991_sound_w)
+ AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READ_LEGACY(nb1413m3_inputport2_r) //AM_WRITENOP
@@ -298,7 +298,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( av2mj1bb_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(nbmj8991_blitter_w)
- AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(nbmj8991_sound_w)
+ AM_RANGE(0x80, 0x80) AM_WRITE(nbmj8991_sound_w)
AM_RANGE(0x90, 0x90) AM_READ_LEGACY(nb1413m3_inputport0_r)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r,nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r,nb1413m3_vcrctrl_w)
@@ -318,9 +318,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( nbmj8991_sound_io_map, AS_IO, 8, nbmj8991_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(nbmj8991_sound_r) AM_DEVWRITE_LEGACY("dac1", DAC_WRITE)
+ AM_RANGE(0x00, 0x00) AM_READ(nbmj8991_sound_r) AM_DEVWRITE_LEGACY("dac1", DAC_WRITE)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("dac2", DAC_WRITE)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(nbmj8991_soundbank_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(nbmj8991_soundbank_w)
AM_RANGE(0x06, 0x06) AM_WRITENOP
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("fmsnd", ym3812_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 6fb1abfcd20..5b84a6dbdb0 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -38,24 +38,24 @@ Notes:
#endif
-static WRITE8_HANDLER( nbmj9195_soundbank_w )
+WRITE8_MEMBER(nbmj9195_state::nbmj9195_soundbank_w)
{
- UINT8 *SNDROM = space->machine().region("audiocpu")->base();
+ UINT8 *SNDROM = machine().region("audiocpu")->base();
- memory_set_bankptr(space->machine(), "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]);
+ memory_set_bankptr(machine(), "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]);
}
-static READ8_HANDLER( nbmj9195_sound_r )
+READ8_MEMBER(nbmj9195_state::nbmj9195_sound_r)
{
return soundlatch_r(space, 0);
}
-static WRITE8_HANDLER( nbmj9195_sound_w )
+WRITE8_MEMBER(nbmj9195_state::nbmj9195_sound_w)
{
soundlatch_w(space, 0, data);
}
-static WRITE8_HANDLER( nbmj9195_soundclr_w )
+WRITE8_MEMBER(nbmj9195_state::nbmj9195_soundclr_w)
{
soundlatch_clear_w(space, 0, 0);
}
@@ -72,10 +72,9 @@ static void nbmj9195_outcoin_flag_w(address_space *space, int data)
else state->m_outcoin_flag = 1;
}
-static WRITE8_HANDLER( nbmj9195_inputportsel_w )
+WRITE8_MEMBER(nbmj9195_state::nbmj9195_inputportsel_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_inputport = (data ^ 0xff);
+ m_inputport = (data ^ 0xff);
}
static int nbmj9195_dipsw_r(running_machine &machine)
@@ -110,91 +109,90 @@ static void mscoutm_inputportsel_w(address_space *space, int data)
state->m_mscoutm_inputport = (data ^ 0xff);
}
-static READ8_HANDLER( mscoutm_dipsw_0_r )
+READ8_MEMBER(nbmj9195_state::mscoutm_dipsw_0_r)
{
// DIPSW A
- return (((input_port_read(space->machine(), "DSWA") & 0x01) << 7) | ((input_port_read(space->machine(), "DSWA") & 0x02) << 5) |
- ((input_port_read(space->machine(), "DSWA") & 0x04) << 3) | ((input_port_read(space->machine(), "DSWA") & 0x08) << 1) |
- ((input_port_read(space->machine(), "DSWA") & 0x10) >> 1) | ((input_port_read(space->machine(), "DSWA") & 0x20) >> 3) |
- ((input_port_read(space->machine(), "DSWA") & 0x40) >> 5) | ((input_port_read(space->machine(), "DSWA") & 0x80) >> 7));
+ return (((input_port_read(machine(), "DSWA") & 0x01) << 7) | ((input_port_read(machine(), "DSWA") & 0x02) << 5) |
+ ((input_port_read(machine(), "DSWA") & 0x04) << 3) | ((input_port_read(machine(), "DSWA") & 0x08) << 1) |
+ ((input_port_read(machine(), "DSWA") & 0x10) >> 1) | ((input_port_read(machine(), "DSWA") & 0x20) >> 3) |
+ ((input_port_read(machine(), "DSWA") & 0x40) >> 5) | ((input_port_read(machine(), "DSWA") & 0x80) >> 7));
}
-static READ8_HANDLER( mscoutm_dipsw_1_r )
+READ8_MEMBER(nbmj9195_state::mscoutm_dipsw_1_r)
{
// DIPSW B
- return (((input_port_read(space->machine(), "DSWB") & 0x01) << 7) | ((input_port_read(space->machine(), "DSWB") & 0x02) << 5) |
- ((input_port_read(space->machine(), "DSWB") & 0x04) << 3) | ((input_port_read(space->machine(), "DSWB") & 0x08) << 1) |
- ((input_port_read(space->machine(), "DSWB") & 0x10) >> 1) | ((input_port_read(space->machine(), "DSWB") & 0x20) >> 3) |
- ((input_port_read(space->machine(), "DSWB") & 0x40) >> 5) | ((input_port_read(space->machine(), "DSWB") & 0x80) >> 7));
+ return (((input_port_read(machine(), "DSWB") & 0x01) << 7) | ((input_port_read(machine(), "DSWB") & 0x02) << 5) |
+ ((input_port_read(machine(), "DSWB") & 0x04) << 3) | ((input_port_read(machine(), "DSWB") & 0x08) << 1) |
+ ((input_port_read(machine(), "DSWB") & 0x10) >> 1) | ((input_port_read(machine(), "DSWB") & 0x20) >> 3) |
+ ((input_port_read(machine(), "DSWB") & 0x40) >> 5) | ((input_port_read(machine(), "DSWB") & 0x80) >> 7));
}
/* TMPZ84C011 PIO emulation */
-static READ8_HANDLER( tmpz84c011_pio_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_pio_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
int portdata;
- if ((!strcmp(space->machine().system().name, "mscoutm")) ||
- (!strcmp(space->machine().system().name, "imekura")) ||
- (!strcmp(space->machine().system().name, "mjegolf")))
+ if ((!strcmp(machine().system().name, "mscoutm")) ||
+ (!strcmp(machine().system().name, "imekura")) ||
+ (!strcmp(machine().system().name, "mjegolf")))
{
switch (offset)
{
case 0: /* PA_0 */
// COIN IN, ETC...
- portdata = input_port_read(space->machine(), "SYSTEM");
+ portdata = input_port_read(machine(), "SYSTEM");
break;
case 1: /* PB_0 */
// PLAYER1 KEY, DIPSW A/B
- switch (state->m_mscoutm_inputport)
+ switch (m_mscoutm_inputport)
{
case 0x01:
- portdata = input_port_read(space->machine(), "KEY0");
+ portdata = input_port_read(machine(), "KEY0");
break;
case 0x02:
- portdata = input_port_read(space->machine(), "KEY1");
+ portdata = input_port_read(machine(), "KEY1");
break;
case 0x04:
- portdata = input_port_read(space->machine(), "KEY2");
+ portdata = input_port_read(machine(), "KEY2");
break;
case 0x08:
- portdata = input_port_read(space->machine(), "KEY3");
+ portdata = input_port_read(machine(), "KEY3");
break;
case 0x10:
- portdata = input_port_read(space->machine(), "KEY4");
+ portdata = input_port_read(machine(), "KEY4");
break;
default:
- portdata = (input_port_read(space->machine(), "KEY0") & input_port_read(space->machine(), "KEY1") & input_port_read(space->machine(), "KEY2")
- & input_port_read(space->machine(), "KEY3") & input_port_read(space->machine(), "KEY4"));
+ portdata = (input_port_read(machine(), "KEY0") & input_port_read(machine(), "KEY1") & input_port_read(machine(), "KEY2")
+ & input_port_read(machine(), "KEY3") & input_port_read(machine(), "KEY4"));
break;
}
break;
case 2: /* PC_0 */
// PLAYER2 KEY
- switch (state->m_mscoutm_inputport)
+ switch (m_mscoutm_inputport)
{
case 0x01:
- portdata = input_port_read(space->machine(), "KEY5");
+ portdata = input_port_read(machine(), "KEY5");
break;
case 0x02:
- portdata = input_port_read(space->machine(), "KEY6");
+ portdata = input_port_read(machine(), "KEY6");
break;
case 0x04:
- portdata = input_port_read(space->machine(), "KEY7");
+ portdata = input_port_read(machine(), "KEY7");
break;
case 0x08:
- portdata = input_port_read(space->machine(), "KEY8");
+ portdata = input_port_read(machine(), "KEY8");
break;
case 0x10:
- portdata = input_port_read(space->machine(), "KEY9");
+ portdata = input_port_read(machine(), "KEY9");
break;
default:
- portdata = (input_port_read(space->machine(), "KEY5") & input_port_read(space->machine(), "KEY6") & input_port_read(space->machine(), "KEY7")
- & input_port_read(space->machine(), "KEY8") & input_port_read(space->machine(), "KEY9"));
+ portdata = (input_port_read(machine(), "KEY5") & input_port_read(machine(), "KEY6") & input_port_read(machine(), "KEY7")
+ & input_port_read(machine(), "KEY8") & input_port_read(machine(), "KEY9"));
break;
}
break;
@@ -222,7 +220,7 @@ static READ8_HANDLER( tmpz84c011_pio_r )
break;
default:
- logerror("%s: TMPZ84C011_PIO Unknown Port Read %02X\n", space->machine().describe_context(), offset);
+ logerror("%s: TMPZ84C011_PIO Unknown Port Read %02X\n", machine().describe_context(), offset);
portdata = 0xff;
break;
}
@@ -233,53 +231,53 @@ static READ8_HANDLER( tmpz84c011_pio_r )
{
case 0: /* PA_0 */
// COIN IN, ETC...
- portdata = ((input_port_read(space->machine(), "SYSTEM") & 0xfe) | state->m_outcoin_flag);
+ portdata = ((input_port_read(machine(), "SYSTEM") & 0xfe) | m_outcoin_flag);
break;
case 1: /* PB_0 */
// PLAYER1 KEY, DIPSW A/B
- switch (state->m_inputport)
+ switch (m_inputport)
{
case 0x01:
- portdata = input_port_read(space->machine(), "KEY0");
+ portdata = input_port_read(machine(), "KEY0");
break;
case 0x02:
- portdata = input_port_read(space->machine(), "KEY1");
+ portdata = input_port_read(machine(), "KEY1");
break;
case 0x04:
- portdata = input_port_read(space->machine(), "KEY2");
+ portdata = input_port_read(machine(), "KEY2");
break;
case 0x08:
- portdata = input_port_read(space->machine(), "KEY3");
+ portdata = input_port_read(machine(), "KEY3");
break;
case 0x10:
- portdata = ((input_port_read(space->machine(), "KEY4") & 0x7f) | (nbmj9195_dipsw_r(space->machine()) << 7));
+ portdata = ((input_port_read(machine(), "KEY4") & 0x7f) | (nbmj9195_dipsw_r(machine()) << 7));
break;
default:
- portdata = (input_port_read(space->machine(), "KEY0") & input_port_read(space->machine(), "KEY1") & input_port_read(space->machine(), "KEY2") & input_port_read(space->machine(), "KEY3") & (input_port_read(space->machine(), "KEY4") & 0x7f));
+ portdata = (input_port_read(machine(), "KEY0") & input_port_read(machine(), "KEY1") & input_port_read(machine(), "KEY2") & input_port_read(machine(), "KEY3") & (input_port_read(machine(), "KEY4") & 0x7f));
break;
}
break;
case 2: /* PC_0 */
// PLAYER2 KEY
- switch (state->m_inputport)
+ switch (m_inputport)
{
case 0x01:
- portdata = input_port_read(space->machine(), "KEY5");
+ portdata = input_port_read(machine(), "KEY5");
break;
case 0x02:
- portdata = input_port_read(space->machine(), "KEY6");
+ portdata = input_port_read(machine(), "KEY6");
break;
case 0x04:
- portdata = input_port_read(space->machine(), "KEY7");
+ portdata = input_port_read(machine(), "KEY7");
break;
case 0x08:
- portdata = input_port_read(space->machine(), "KEY8");
+ portdata = input_port_read(machine(), "KEY8");
break;
case 0x10:
- portdata = input_port_read(space->machine(), "KEY9") & 0x7f;
+ portdata = input_port_read(machine(), "KEY9") & 0x7f;
break;
default:
- portdata = (input_port_read(space->machine(), "KEY5") & input_port_read(space->machine(), "KEY6") & input_port_read(space->machine(), "KEY7") & input_port_read(space->machine(), "KEY8") & (input_port_read(space->machine(), "KEY9") & 0x7f));
+ portdata = (input_port_read(machine(), "KEY5") & input_port_read(machine(), "KEY6") & input_port_read(machine(), "KEY7") & input_port_read(machine(), "KEY8") & (input_port_read(machine(), "KEY9") & 0x7f));
break;
}
break;
@@ -307,7 +305,7 @@ static READ8_HANDLER( tmpz84c011_pio_r )
break;
default:
- logerror("%s: TMPZ84C011_PIO Unknown Port Read %02X\n", space->machine().describe_context(), offset);
+ logerror("%s: TMPZ84C011_PIO Unknown Port Read %02X\n", machine().describe_context(), offset);
portdata = 0xff;
break;
}
@@ -316,37 +314,37 @@ static READ8_HANDLER( tmpz84c011_pio_r )
return portdata;
}
-static WRITE8_HANDLER( tmpz84c011_pio_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_pio_w)
{
- if ((!strcmp(space->machine().system().name, "imekura")) ||
- (!strcmp(space->machine().system().name, "mscoutm")) ||
- (!strcmp(space->machine().system().name, "mjegolf")))
+ if ((!strcmp(machine().system().name, "imekura")) ||
+ (!strcmp(machine().system().name, "mscoutm")) ||
+ (!strcmp(machine().system().name, "mjegolf")))
{
switch (offset)
{
case 0: /* PA_0 */
- mscoutm_inputportsel_w(space, data); // NB22090
+ mscoutm_inputportsel_w(&space, data); // NB22090
break;
case 1: /* PB_0 */
break;
case 2: /* PC_0 */
break;
case 3: /* PD_0 */
- nbmj9195_clutsel_w(space, data);
+ nbmj9195_clutsel_w(&space, data);
break;
case 4: /* PE_0 */
- nbmj9195_gfxflag2_w(space, data); // NB22090
+ nbmj9195_gfxflag2_w(&space, data); // NB22090
break;
case 5: /* PA_1 */
nbmj9195_soundbank_w(space, 0, data);
break;
case 6: /* PB_1 */
- DAC_WRITE(space->machine().device("dac2"), 0, data);
+ DAC_WRITE(machine().device("dac2"), 0, data);
break;
case 7: /* PC_1 */
- DAC_WRITE(space->machine().device("dac1"), 0, data);
+ DAC_WRITE(machine().device("dac1"), 0, data);
break;
case 8: /* PD_1 */
break;
@@ -355,7 +353,7 @@ static WRITE8_HANDLER( tmpz84c011_pio_w )
break;
default:
- logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", space->machine().describe_context(), offset, data);
+ logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", machine().describe_context(), offset, data);
break;
}
}
@@ -368,23 +366,23 @@ static WRITE8_HANDLER( tmpz84c011_pio_w )
case 1: /* PB_0 */
break;
case 2: /* PC_0 */
- nbmj9195_dipswbitsel_w(space, data);
+ nbmj9195_dipswbitsel_w(&space, data);
break;
case 3: /* PD_0 */
- nbmj9195_clutsel_w(space, data);
+ nbmj9195_clutsel_w(&space, data);
break;
case 4: /* PE_0 */
- nbmj9195_outcoin_flag_w(space, data);
+ nbmj9195_outcoin_flag_w(&space, data);
break;
case 5: /* PA_1 */
nbmj9195_soundbank_w(space, 0, data);
break;
case 6: /* PB_1 */
- DAC_WRITE(space->machine().device("dac2"), 0, data);
+ DAC_WRITE(machine().device("dac2"), 0, data);
break;
case 7: /* PC_1 */
- DAC_WRITE(space->machine().device("dac1"), 0, data);
+ DAC_WRITE(machine().device("dac1"), 0, data);
break;
case 8: /* PD_1 */
break;
@@ -393,7 +391,7 @@ static WRITE8_HANDLER( tmpz84c011_pio_w )
break;
default:
- logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", space->machine().describe_context(), offset, data);
+ logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", machine().describe_context(), offset, data);
break;
}
}
@@ -403,241 +401,221 @@ static WRITE8_HANDLER( tmpz84c011_pio_w )
/* CPU interface */
/* device 0 */
-static READ8_HANDLER( tmpz84c011_0_pa_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_pa_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,0) & ~state->m_pio_dir[0]) | (state->m_pio_latch[0] & state->m_pio_dir[0]);
+ return (tmpz84c011_pio_r(space,0) & ~m_pio_dir[0]) | (m_pio_latch[0] & m_pio_dir[0]);
}
-static READ8_HANDLER( tmpz84c011_0_pb_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_pb_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,1) & ~state->m_pio_dir[1]) | (state->m_pio_latch[1] & state->m_pio_dir[1]);
+ return (tmpz84c011_pio_r(space,1) & ~m_pio_dir[1]) | (m_pio_latch[1] & m_pio_dir[1]);
}
-static READ8_HANDLER( tmpz84c011_0_pc_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_pc_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,2) & ~state->m_pio_dir[2]) | (state->m_pio_latch[2] & state->m_pio_dir[2]);
+ return (tmpz84c011_pio_r(space,2) & ~m_pio_dir[2]) | (m_pio_latch[2] & m_pio_dir[2]);
}
-static READ8_HANDLER( tmpz84c011_0_pd_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_pd_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,3) & ~state->m_pio_dir[3]) | (state->m_pio_latch[3] & state->m_pio_dir[3]);
+ return (tmpz84c011_pio_r(space,3) & ~m_pio_dir[3]) | (m_pio_latch[3] & m_pio_dir[3]);
}
-static READ8_HANDLER( tmpz84c011_0_pe_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_pe_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,4) & ~state->m_pio_dir[4]) | (state->m_pio_latch[4] & state->m_pio_dir[4]);
+ return (tmpz84c011_pio_r(space,4) & ~m_pio_dir[4]) | (m_pio_latch[4] & m_pio_dir[4]);
}
-static WRITE8_HANDLER( tmpz84c011_0_pa_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_pa_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[0] = data;
+ m_pio_latch[0] = data;
tmpz84c011_pio_w(space, 0, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pb_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_pb_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[1] = data;
+ m_pio_latch[1] = data;
tmpz84c011_pio_w(space, 1, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pc_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_pc_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[2] = data;
+ m_pio_latch[2] = data;
tmpz84c011_pio_w(space, 2, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pd_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_pd_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[3] = data;
+ m_pio_latch[3] = data;
tmpz84c011_pio_w(space, 3, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pe_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_pe_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[4] = data;
+ m_pio_latch[4] = data;
tmpz84c011_pio_w(space, 4, data);
}
-static READ8_HANDLER( tmpz84c011_0_dir_pa_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pa_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[0];
+ return m_pio_dir[0];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pb_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pb_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[1];
+ return m_pio_dir[1];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pc_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pc_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[2];
+ return m_pio_dir[2];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pd_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pd_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[3];
+ return m_pio_dir[3];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pe_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pe_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[4];
+ return m_pio_dir[4];
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pa_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pa_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[0] = data;
+ m_pio_dir[0] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pb_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pb_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[1] = data;
+ m_pio_dir[1] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pc_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pc_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[2] = data;
+ m_pio_dir[2] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pd_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pd_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[3] = data;
+ m_pio_dir[3] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pe_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_0_dir_pe_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[4] = data;
+ m_pio_dir[4] = data;
}
/* device 1 */
-static READ8_HANDLER( tmpz84c011_1_pa_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_pa_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,5) & ~state->m_pio_dir[5]) | (state->m_pio_latch[5] & state->m_pio_dir[5]);
+ return (tmpz84c011_pio_r(space,5) & ~m_pio_dir[5]) | (m_pio_latch[5] & m_pio_dir[5]);
}
-static READ8_HANDLER( tmpz84c011_1_pb_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_pb_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,6) & ~state->m_pio_dir[6]) | (state->m_pio_latch[6] & state->m_pio_dir[6]);
+ return (tmpz84c011_pio_r(space,6) & ~m_pio_dir[6]) | (m_pio_latch[6] & m_pio_dir[6]);
}
-static READ8_HANDLER( tmpz84c011_1_pc_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_pc_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,7) & ~state->m_pio_dir[7]) | (state->m_pio_latch[7] & state->m_pio_dir[7]);
+ return (tmpz84c011_pio_r(space,7) & ~m_pio_dir[7]) | (m_pio_latch[7] & m_pio_dir[7]);
}
-static READ8_HANDLER( tmpz84c011_1_pd_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_pd_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,8) & ~state->m_pio_dir[8]) | (state->m_pio_latch[8] & state->m_pio_dir[8]);
+ return (tmpz84c011_pio_r(space,8) & ~m_pio_dir[8]) | (m_pio_latch[8] & m_pio_dir[8]);
}
-static READ8_HANDLER( tmpz84c011_1_pe_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_pe_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return (tmpz84c011_pio_r(space,9) & ~state->m_pio_dir[9]) | (state->m_pio_latch[9] & state->m_pio_dir[9]);
+ return (tmpz84c011_pio_r(space,9) & ~m_pio_dir[9]) | (m_pio_latch[9] & m_pio_dir[9]);
}
-static WRITE8_HANDLER( tmpz84c011_1_pa_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_pa_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[5] = data;
+ m_pio_latch[5] = data;
tmpz84c011_pio_w(space, 5, data);
}
-static WRITE8_HANDLER( tmpz84c011_1_pb_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_pb_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[6] = data;
+ m_pio_latch[6] = data;
tmpz84c011_pio_w(space, 6, data);
}
-static WRITE8_HANDLER( tmpz84c011_1_pc_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_pc_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[7] = data;
+ m_pio_latch[7] = data;
tmpz84c011_pio_w(space, 7, data);
}
-static WRITE8_HANDLER( tmpz84c011_1_pd_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_pd_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[8] = data;
+ m_pio_latch[8] = data;
tmpz84c011_pio_w(space, 8, data);
}
-static WRITE8_HANDLER( tmpz84c011_1_pe_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_pe_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_latch[9] = data;
+ m_pio_latch[9] = data;
tmpz84c011_pio_w(space, 9, data);
}
-static READ8_HANDLER( tmpz84c011_1_dir_pa_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pa_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[5];
+ return m_pio_dir[5];
}
-static READ8_HANDLER( tmpz84c011_1_dir_pb_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pb_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[6];
+ return m_pio_dir[6];
}
-static READ8_HANDLER( tmpz84c011_1_dir_pc_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pc_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[7];
+ return m_pio_dir[7];
}
-static READ8_HANDLER( tmpz84c011_1_dir_pd_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pd_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[8];
+ return m_pio_dir[8];
}
-static READ8_HANDLER( tmpz84c011_1_dir_pe_r )
+READ8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pe_r)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>(); return state->m_pio_dir[9];
+ return m_pio_dir[9];
}
-static WRITE8_HANDLER( tmpz84c011_1_dir_pa_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pa_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[5] = data;
+ m_pio_dir[5] = data;
}
-static WRITE8_HANDLER( tmpz84c011_1_dir_pb_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pb_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[6] = data;
+ m_pio_dir[6] = data;
}
-static WRITE8_HANDLER( tmpz84c011_1_dir_pc_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pc_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[7] = data;
+ m_pio_dir[7] = data;
}
-static WRITE8_HANDLER( tmpz84c011_1_dir_pd_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pd_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[8] = data;
+ m_pio_dir[8] = data;
}
-static WRITE8_HANDLER( tmpz84c011_1_dir_pe_w )
+WRITE8_MEMBER(nbmj9195_state::tmpz84c011_1_dir_pe_w)
{
- nbmj9195_state *state = space->machine().driver_data<nbmj9195_state>();
- state->m_pio_dir[9] = data;
+ m_pio_dir[9] = data;
}
/* CTC of main cpu, ch0 trigger is vblank */
@@ -676,12 +654,13 @@ static MACHINE_RESET( sailorws )
for (i = 0; i < (5 * 2); i++)
{
state->m_pio_dir[i] = state->m_pio_latch[i] = 0;
- tmpz84c011_pio_w(space, i, 0);
+ state->tmpz84c011_pio_w(*space, i, 0);
}
}
static DRIVER_INIT( nbmj9195 )
{
+ nbmj9195_state *state = machine.driver_data<nbmj9195_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
UINT8 *ROM = machine.region("audiocpu")->base();
@@ -689,21 +668,21 @@ static DRIVER_INIT( nbmj9195 )
ROM[0x0213] = 0x00; // DI -> NOP
// initialize sound rom bank
- nbmj9195_soundbank_w(space, 0, 0);
+ state->nbmj9195_soundbank_w(*space, 0, 0);
}
static ADDRESS_MAP_START( tmpz84c011_regs, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("main_ctc", z80ctc_r,z80ctc_w)
- AM_RANGE(0x50, 0x50) AM_READWRITE_LEGACY(tmpz84c011_0_pa_r,tmpz84c011_0_pa_w)
- AM_RANGE(0x51, 0x51) AM_READWRITE_LEGACY(tmpz84c011_0_pb_r,tmpz84c011_0_pb_w)
- AM_RANGE(0x52, 0x52) AM_READWRITE_LEGACY(tmpz84c011_0_pc_r,tmpz84c011_0_pc_w)
- AM_RANGE(0x30, 0x30) AM_READWRITE_LEGACY(tmpz84c011_0_pd_r,tmpz84c011_0_pd_w)
- AM_RANGE(0x40, 0x40) AM_READWRITE_LEGACY(tmpz84c011_0_pe_r,tmpz84c011_0_pe_w)
- AM_RANGE(0x54, 0x54) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pa_r,tmpz84c011_0_dir_pa_w)
- AM_RANGE(0x55, 0x55) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pb_r,tmpz84c011_0_dir_pb_w)
- AM_RANGE(0x56, 0x56) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pc_r,tmpz84c011_0_dir_pc_w)
- AM_RANGE(0x34, 0x34) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pd_r,tmpz84c011_0_dir_pd_w)
- AM_RANGE(0x44, 0x44) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pe_r,tmpz84c011_0_dir_pe_w)
+ AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r,tmpz84c011_0_pa_w)
+ AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_0_pb_r,tmpz84c011_0_pb_w)
+ AM_RANGE(0x52, 0x52) AM_READWRITE(tmpz84c011_0_pc_r,tmpz84c011_0_pc_w)
+ AM_RANGE(0x30, 0x30) AM_READWRITE(tmpz84c011_0_pd_r,tmpz84c011_0_pd_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(tmpz84c011_0_pe_r,tmpz84c011_0_pe_w)
+ AM_RANGE(0x54, 0x54) AM_READWRITE(tmpz84c011_0_dir_pa_r,tmpz84c011_0_dir_pa_w)
+ AM_RANGE(0x55, 0x55) AM_READWRITE(tmpz84c011_0_dir_pb_r,tmpz84c011_0_dir_pb_w)
+ AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_0_dir_pc_r,tmpz84c011_0_dir_pc_w)
+ AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_0_dir_pd_r,tmpz84c011_0_dir_pd_w)
+ AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_0_dir_pe_r,tmpz84c011_0_dir_pe_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sailorws_map, AS_PROGRAM, 8, nbmj9195_state )
@@ -754,10 +733,10 @@ static ADDRESS_MAP_START( mjuraden_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_0_w)
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xb2, 0xb2) AM_WRITENOP
AM_RANGE(0xb4, 0xb4) AM_WRITENOP
- AM_RANGE(0xb6, 0xb6) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb6, 0xb6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
@@ -773,10 +752,10 @@ static ADDRESS_MAP_START( koinomp_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xa0, 0xaf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xb0, 0xbf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xc2, 0xc2) AM_WRITENOP
AM_RANGE(0xc4, 0xc4) AM_WRITENOP
- AM_RANGE(0xc6, 0xc6) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xc6, 0xc6) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0xcf, 0xcf) AM_WRITENOP
ADDRESS_MAP_END
@@ -789,10 +768,10 @@ static ADDRESS_MAP_START( patimono_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_0_w)
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa4, 0xa4) AM_WRITENOP
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb8) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb8) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0xc0, 0xc1) AM_READ_LEGACY(nbmj9195_blitter_0_r)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
@@ -807,10 +786,10 @@ static ADDRESS_MAP_START( mmehyou_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_0_w)
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa4, 0xa4) AM_WRITENOP
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gal10ren_io_map, AS_IO, 8, nbmj9195_state )
@@ -825,20 +804,20 @@ static ADDRESS_MAP_START( gal10ren_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xa0, 0xaf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xb0, 0xbf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xc8, 0xc8) AM_WRITENOP
AM_RANGE(0xd0, 0xd0) AM_WRITENOP
- AM_RANGE(0xd8, 0xd8) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( renaiclb_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0x20, 0x20) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0x24, 0x24) AM_WRITENOP
AM_RANGE(0x28, 0x28) AM_WRITENOP
- AM_RANGE(0x2c, 0x2c) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0x2c, 0x2c) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0x60, 0x61) AM_READ_LEGACY(nbmj9195_blitter_0_r)
AM_RANGE(0x60, 0x6f) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
@@ -853,10 +832,10 @@ static ADDRESS_MAP_START( mjlaman_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0x20, 0x20) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0x22, 0x22) AM_WRITENOP
AM_RANGE(0x24, 0x24) AM_WRITENOP
- AM_RANGE(0x26, 0x26) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0x26, 0x26) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0x80, 0x81) AM_READ_LEGACY(nbmj9195_blitter_0_r)
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
@@ -880,10 +859,10 @@ static ADDRESS_MAP_START( mkeibaou_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xa0, 0xaf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xb0, 0xbf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xd8, 0xd8) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xd8, 0xd8) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xda, 0xda) AM_WRITENOP
AM_RANGE(0xdc, 0xdc) AM_WRITENOP
- AM_RANGE(0xde, 0xde) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xde, 0xde) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
@@ -899,10 +878,10 @@ static ADDRESS_MAP_START( pachiten_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xa0, 0xaf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xb0, 0xbf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xe2, 0xe2) AM_WRITENOP
AM_RANGE(0xe4, 0xe4) AM_WRITENOP
- AM_RANGE(0xe6, 0xe6) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xe6, 0xe6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sailorws_io_map, AS_IO, 8, nbmj9195_state )
@@ -917,10 +896,10 @@ static ADDRESS_MAP_START( sailorws_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xf0, 0xf0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xf0, 0xf0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xf2, 0xf2) AM_WRITENOP
AM_RANGE(0xf4, 0xf4) AM_WRITENOP
- AM_RANGE(0xf6, 0xf6) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sailorwr_io_map, AS_IO, 8, nbmj9195_state )
@@ -935,10 +914,10 @@ static ADDRESS_MAP_START( sailorwr_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xf8, 0xf8) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xfa, 0xfa) AM_WRITENOP
AM_RANGE(0xfc, 0xfc) AM_WRITENOP
- AM_RANGE(0xfe, 0xfe) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xfe, 0xfe) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
@@ -954,10 +933,10 @@ static ADDRESS_MAP_START( psailor1_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xd0, 0xdf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xf0, 0xf0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xf0, 0xf0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xf2, 0xf2) AM_WRITENOP
AM_RANGE(0xf4, 0xf4) AM_WRITENOP
- AM_RANGE(0xf6, 0xf6) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( psailor2_io_map, AS_IO, 8, nbmj9195_state )
@@ -972,10 +951,10 @@ static ADDRESS_MAP_START( psailor2_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xa0, 0xaf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xb0, 0xbf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xe2, 0xe2) AM_WRITENOP
AM_RANGE(0xe4, 0xe4) AM_WRITENOP
- AM_RANGE(0xf6, 0xf6) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xf6, 0xf6) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( otatidai_io_map, AS_IO, 8, nbmj9195_state )
@@ -990,10 +969,10 @@ static ADDRESS_MAP_START( otatidai_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
AM_RANGE(0xb0, 0xb0) AM_WRITENOP
- AM_RANGE(0xb8, 0xb8) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb8, 0xb8) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( yosimoto_io_map, AS_IO, 8, nbmj9195_state )
@@ -1004,10 +983,10 @@ static ADDRESS_MAP_START( yosimoto_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x60, 0x6f) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
AM_RANGE(0x70, 0x7f) AM_WRITE_LEGACY(nbmj9195_clut_0_w)
- AM_RANGE(0x90, 0x90) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0x90, 0x90) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0x94, 0x94) AM_WRITENOP
AM_RANGE(0x98, 0x98) AM_WRITENOP
- AM_RANGE(0x9c, 0x9c) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0x9c, 0x9c) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0xc0, 0xc1) AM_READ_LEGACY(nbmj9195_blitter_1_r)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
@@ -1026,20 +1005,20 @@ static ADDRESS_MAP_START( jituroku_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj9195_blitter_1_w)
AM_RANGE(0xd0, 0xdf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xe8, 0xe8) AM_WRITENOP
AM_RANGE(0xf0, 0xf0) AM_WRITENOP
- AM_RANGE(0xf8, 0xf8) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xf8, 0xf8) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ngpgal_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa4, 0xa4) AM_WRITENOP
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0xc0, 0xc1) AM_READ_LEGACY(nbmj9195_blitter_0_r)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
@@ -1054,19 +1033,19 @@ static ADDRESS_MAP_START( mjgottsu_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_0_w)
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa4, 0xa4) AM_WRITENOP
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cmehyou_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0xb4, 0xb4) AM_WRITENOP
AM_RANGE(0xc0, 0xc1) AM_READ_LEGACY(nbmj9195_blitter_0_r)
@@ -1082,20 +1061,20 @@ static ADDRESS_MAP_START( mjkoiura_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0x80, 0x8f) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
AM_RANGE(0x90, 0x9f) AM_WRITE_LEGACY(nbmj9195_clut_0_w)
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa4, 0xa4) AM_WRITENOP
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mkoiuraa_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa4, 0xa4) AM_WRITENOP
AM_RANGE(0xa8, 0xa8) AM_WRITENOP
- AM_RANGE(0xb0, 0xb0) AM_WRITE_LEGACY(nbmj9195_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_WRITE(nbmj9195_inputportsel_w)
AM_RANGE(0xc0, 0xc1) AM_READ_LEGACY(nbmj9195_blitter_0_r)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(nbmj9195_blitter_0_w)
@@ -1106,9 +1085,9 @@ static ADDRESS_MAP_START( mscoutm_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0x80, 0x80) AM_READ_LEGACY(mscoutm_dipsw_1_r)
- AM_RANGE(0x82, 0x82) AM_READ_LEGACY(mscoutm_dipsw_0_r)
- AM_RANGE(0x84, 0x84) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0x80, 0x80) AM_READ(mscoutm_dipsw_1_r)
+ AM_RANGE(0x82, 0x82) AM_READ(mscoutm_dipsw_0_r)
+ AM_RANGE(0x84, 0x84) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xa0, 0xa6) AM_WRITENOP // nb22090 param ?
@@ -1126,9 +1105,9 @@ static ADDRESS_MAP_START( imekura_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM( tmpz84c011_regs )
- AM_RANGE(0x80, 0x80) AM_READ_LEGACY(mscoutm_dipsw_1_r)
- AM_RANGE(0x82, 0x82) AM_READ_LEGACY(mscoutm_dipsw_0_r)
- AM_RANGE(0x84, 0x84) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0x80, 0x80) AM_READ(mscoutm_dipsw_1_r)
+ AM_RANGE(0x82, 0x82) AM_READ(mscoutm_dipsw_0_r)
+ AM_RANGE(0x84, 0x84) AM_WRITE(nbmj9195_sound_w)
AM_RANGE(0xb0, 0xb6) AM_WRITENOP // nb22090 param ?
@@ -1157,9 +1136,9 @@ static ADDRESS_MAP_START( mjegolf_io_map, AS_IO, 8, nbmj9195_state )
AM_RANGE(0xd0, 0xdf) AM_WRITE_LEGACY(nbmj9195_clut_1_w)
- AM_RANGE(0xe0, 0xe0) AM_READ_LEGACY(mscoutm_dipsw_1_r)
- AM_RANGE(0xe2, 0xe2) AM_READ_LEGACY(mscoutm_dipsw_0_r)
- AM_RANGE(0xe4, 0xe4) AM_WRITE_LEGACY(nbmj9195_sound_w)
+ AM_RANGE(0xe0, 0xe0) AM_READ(mscoutm_dipsw_1_r)
+ AM_RANGE(0xe2, 0xe2) AM_READ(mscoutm_dipsw_0_r)
+ AM_RANGE(0xe4, 0xe4) AM_WRITE(nbmj9195_sound_w)
ADDRESS_MAP_END
@@ -1173,16 +1152,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sailorws_sound_io_map, AS_IO, 8, nbmj9195_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("audio_ctc", z80ctc_r,z80ctc_w)
- AM_RANGE(0x50, 0x50) AM_READWRITE_LEGACY(tmpz84c011_1_pa_r,tmpz84c011_1_pa_w)
- AM_RANGE(0x51, 0x51) AM_READWRITE_LEGACY(tmpz84c011_1_pb_r,tmpz84c011_1_pb_w)
- AM_RANGE(0x52, 0x52) AM_READWRITE_LEGACY(tmpz84c011_1_pc_r,tmpz84c011_1_pc_w)
- AM_RANGE(0x30, 0x30) AM_READWRITE_LEGACY(tmpz84c011_1_pd_r,tmpz84c011_1_pd_w)
- AM_RANGE(0x40, 0x40) AM_READWRITE_LEGACY(tmpz84c011_1_pe_r,tmpz84c011_1_pe_w)
- AM_RANGE(0x54, 0x54) AM_READWRITE_LEGACY(tmpz84c011_1_dir_pa_r,tmpz84c011_1_dir_pa_w)
- AM_RANGE(0x55, 0x55) AM_READWRITE_LEGACY(tmpz84c011_1_dir_pb_r,tmpz84c011_1_dir_pb_w)
- AM_RANGE(0x56, 0x56) AM_READWRITE_LEGACY(tmpz84c011_1_dir_pc_r,tmpz84c011_1_dir_pc_w)
- AM_RANGE(0x34, 0x34) AM_READWRITE_LEGACY(tmpz84c011_1_dir_pd_r,tmpz84c011_1_dir_pd_w)
- AM_RANGE(0x44, 0x44) AM_READWRITE_LEGACY(tmpz84c011_1_dir_pe_r,tmpz84c011_1_dir_pe_w)
+ AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_1_pa_r,tmpz84c011_1_pa_w)
+ AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_1_pb_r,tmpz84c011_1_pb_w)
+ AM_RANGE(0x52, 0x52) AM_READWRITE(tmpz84c011_1_pc_r,tmpz84c011_1_pc_w)
+ AM_RANGE(0x30, 0x30) AM_READWRITE(tmpz84c011_1_pd_r,tmpz84c011_1_pd_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(tmpz84c011_1_pe_r,tmpz84c011_1_pe_w)
+ AM_RANGE(0x54, 0x54) AM_READWRITE(tmpz84c011_1_dir_pa_r,tmpz84c011_1_dir_pa_w)
+ AM_RANGE(0x55, 0x55) AM_READWRITE(tmpz84c011_1_dir_pb_r,tmpz84c011_1_dir_pb_w)
+ AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_1_dir_pc_r,tmpz84c011_1_dir_pc_w)
+ AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_1_dir_pd_r,tmpz84c011_1_dir_pd_w)
+ AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_1_dir_pe_r,tmpz84c011_1_dir_pe_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index aeeaeee68cf..ce623873299 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -118,86 +118,78 @@ static INTERRUPT_GEN( blkpnthr_interrupt )
}
-static WRITE16_HANDLER( gx400_irq1_enable_word_w )
+WRITE16_MEMBER(nemesis_state::gx400_irq1_enable_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_irq1_on = data & 0x0001;
+ m_irq1_on = data & 0x0001;
if (ACCESSING_BITS_8_15)
- coin_lockout_w(space->machine(), 1, data & 0x0100);
+ coin_lockout_w(machine(), 1, data & 0x0100);
}
-static WRITE16_HANDLER( gx400_irq2_enable_word_w )
+WRITE16_MEMBER(nemesis_state::gx400_irq2_enable_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_irq2_on = data & 0x0001;
+ m_irq2_on = data & 0x0001;
if (ACCESSING_BITS_8_15)
- coin_lockout_w(space->machine(), 0, data & 0x0100);
+ coin_lockout_w(machine(), 0, data & 0x0100);
}
-static WRITE16_HANDLER( gx400_irq4_enable_word_w )
+WRITE16_MEMBER(nemesis_state::gx400_irq4_enable_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_8_15)
- state->m_irq4_on = data & 0x0100;
+ m_irq4_on = data & 0x0100;
}
-static WRITE16_HANDLER( nemesis_irq_enable_word_w )
+WRITE16_MEMBER(nemesis_state::nemesis_irq_enable_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_irq_on = data & 0xff;
+ m_irq_on = data & 0xff;
if (ACCESSING_BITS_8_15)
- coin_lockout_global_w(space->machine(), data & 0x0100);
+ coin_lockout_global_w(machine(), data & 0x0100);
}
-static WRITE16_HANDLER( konamigt_irq_enable_word_w )
+WRITE16_MEMBER(nemesis_state::konamigt_irq_enable_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_irq_on = data & 0xff;
+ m_irq_on = data & 0xff;
if (ACCESSING_BITS_8_15)
- coin_lockout_w(space->machine(), 1, data & 0x0100);
+ coin_lockout_w(machine(), 1, data & 0x0100);
}
-static WRITE16_HANDLER( konamigt_irq2_enable_word_w )
+WRITE16_MEMBER(nemesis_state::konamigt_irq2_enable_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_irq2_on = data & 0xff;
+ m_irq2_on = data & 0xff;
if (ACCESSING_BITS_8_15)
- coin_lockout_w(space->machine(), 0, data & 0x0100);
+ coin_lockout_w(machine(), 0, data & 0x0100);
}
-static READ16_HANDLER( gx400_sharedram_word_r )
+READ16_MEMBER(nemesis_state::gx400_sharedram_word_r)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
- return state->m_gx400_shared_ram[offset];
+ return m_gx400_shared_ram[offset];
}
-static WRITE16_HANDLER( gx400_sharedram_word_w )
+WRITE16_MEMBER(nemesis_state::gx400_sharedram_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_gx400_shared_ram[offset] = data;
+ m_gx400_shared_ram[offset] = data;
}
-static READ16_HANDLER( konamigt_input_word_r )
+READ16_MEMBER(nemesis_state::konamigt_input_word_r)
{
/*
bit 0-7: steering
@@ -206,8 +198,8 @@ static READ16_HANDLER( konamigt_input_word_r )
bit 12-15: accel
*/
- int data = input_port_read(space->machine(), "IN3");
- int data2 = input_port_read(space->machine(), "PADDLE");
+ int data = input_port_read(machine(), "IN3");
+ int data2 = input_port_read(machine(), "PADDLE");
int ret=0x0000;
@@ -224,31 +216,29 @@ static READ16_HANDLER( konamigt_input_word_r )
return ret;
}
-static WRITE16_HANDLER( selected_ip_word_w )
+WRITE16_MEMBER(nemesis_state::selected_ip_word_w)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
if (ACCESSING_BITS_0_7)
- state->m_selected_ip = data & 0xff; // latch the value
+ m_selected_ip = data & 0xff; // latch the value
}
-static READ16_HANDLER( selected_ip_word_r )
+READ16_MEMBER(nemesis_state::selected_ip_word_r)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
- switch (state->m_selected_ip & 0xf)
+ switch (m_selected_ip & 0xf)
{ // From WEC Le Mans Schems:
- case 0xc: return input_port_read(space->machine(), "ACCEL"); // Accel - Schems: Accelevr
- case 0: return input_port_read(space->machine(), "ACCEL");
- case 0xd: return input_port_read(space->machine(), "WHEEL"); // Wheel - Schems: Handlevr
- case 1: return input_port_read(space->machine(), "WHEEL");
+ case 0xc: return input_port_read(machine(), "ACCEL"); // Accel - Schems: Accelevr
+ case 0: return input_port_read(machine(), "ACCEL");
+ case 0xd: return input_port_read(machine(), "WHEEL"); // Wheel - Schems: Handlevr
+ case 1: return input_port_read(machine(), "WHEEL");
default: return ~0;
}
}
-static WRITE16_HANDLER( nemesis_soundlatch_word_w )
+WRITE16_MEMBER(nemesis_state::nemesis_soundlatch_word_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, offset, data & 0xff);
@@ -311,7 +301,7 @@ static ADDRESS_MAP_START( nemesis_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x055000, 0x055fff) AM_RAM_WRITE_LEGACY(nemesis_colorram2_word_w) AM_BASE(m_colorram2)
AM_RANGE(0x056000, 0x056fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x05a000, 0x05afff) AM_RAM_WRITE_LEGACY(nemesis_palette_word_w) AM_BASE(m_paletteram)
- AM_RANGE(0x05c000, 0x05c001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x05c400, 0x05c401) AM_READ_PORT("DSW0")
AM_RANGE(0x05c402, 0x05c403) AM_READ_PORT("DSW1")
AM_RANGE(0x05c800, 0x05c801) AM_WRITE_LEGACY(watchdog_reset16_w) /* probably */
@@ -319,7 +309,7 @@ static ADDRESS_MAP_START( nemesis_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x05cc02, 0x05cc03) AM_READ_PORT("IN1")
AM_RANGE(0x05cc04, 0x05cc05) AM_READ_PORT("IN2")
AM_RANGE(0x05cc06, 0x05cc07) AM_READ_PORT("TEST")
- AM_RANGE(0x05e000, 0x05e001) AM_WRITE_LEGACY(&nemesis_irq_enable_word_w)
+ AM_RANGE(0x05e000, 0x05e001) AM_WRITE(nemesis_irq_enable_word_w)
AM_RANGE(0x05e002, 0x05e003) AM_WRITENOP /* not used irq */
AM_RANGE(0x05e004, 0x05e005) AM_WRITE_LEGACY(nemesis_gfx_flipx_word_w)
AM_RANGE(0x05e006, 0x05e007) AM_WRITE_LEGACY(nemesis_gfx_flipy_word_w)
@@ -331,7 +321,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* ROM BIOS */
AM_RANGE(0x010000, 0x01ffff) AM_RAM
- AM_RANGE(0x020000, 0x0287ff) AM_READWRITE_LEGACY(gx400_sharedram_word_r, gx400_sharedram_word_w)
+ AM_RANGE(0x020000, 0x0287ff) AM_READWRITE(gx400_sharedram_word_r, gx400_sharedram_word_w)
AM_RANGE(0x030000, 0x03ffff) AM_RAM_WRITE_LEGACY(nemesis_charram_word_w) AM_BASE_SIZE(m_charram, m_charram_size)
AM_RANGE(0x050000, 0x051fff) AM_RAM
AM_RANGE(0x050000, 0x0503ff) AM_BASE(m_xscroll1)
@@ -345,7 +335,7 @@ static ADDRESS_MAP_START( gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x056000, 0x056fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x057000, 0x057fff) AM_RAM /* needed for twinbee */
AM_RANGE(0x05a000, 0x05afff) AM_RAM_WRITE_LEGACY(nemesis_palette_word_w) AM_BASE(m_paletteram)
- AM_RANGE(0x05c000, 0x05c001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x05c402, 0x05c403) AM_READ_PORT("DSW0")
AM_RANGE(0x05c404, 0x05c405) AM_READ_PORT("DSW1")
AM_RANGE(0x05c406, 0x05c407) AM_READ_PORT("TEST")
@@ -353,12 +343,12 @@ static ADDRESS_MAP_START( gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x05cc00, 0x05cc01) AM_READ_PORT("IN0")
AM_RANGE(0x05cc02, 0x05cc03) AM_READ_PORT("IN1")
AM_RANGE(0x05cc04, 0x05cc05) AM_READ_PORT("IN2")
- AM_RANGE(0x05e000, 0x05e001) AM_WRITE_LEGACY(&gx400_irq2_enable_word_w) /* ?? */
- AM_RANGE(0x05e002, 0x05e003) AM_WRITE_LEGACY(&gx400_irq1_enable_word_w) /* ?? */
+ AM_RANGE(0x05e000, 0x05e001) AM_WRITE(gx400_irq2_enable_word_w) /* ?? */
+ AM_RANGE(0x05e002, 0x05e003) AM_WRITE(gx400_irq1_enable_word_w) /* ?? */
AM_RANGE(0x05e004, 0x05e005) AM_WRITE_LEGACY(nemesis_gfx_flipx_word_w)
AM_RANGE(0x05e006, 0x05e007) AM_WRITE_LEGACY(nemesis_gfx_flipy_word_w)
AM_RANGE(0x05e008, 0x05e009) AM_WRITENOP /* IRQ acknowledge??? */
- AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE_LEGACY(&gx400_irq4_enable_word_w) /* ?? */
+ AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE(gx400_irq4_enable_word_w) /* ?? */
AM_RANGE(0x060000, 0x07ffff) AM_RAM /* WORK RAM */
AM_RANGE(0x080000, 0x0bffff) AM_ROM
ADDRESS_MAP_END
@@ -377,7 +367,7 @@ static ADDRESS_MAP_START( konamigt_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x055000, 0x055fff) AM_RAM_WRITE_LEGACY(nemesis_colorram2_word_w) AM_BASE(m_colorram2)
AM_RANGE(0x056000, 0x056fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x05a000, 0x05afff) AM_RAM_WRITE_LEGACY(nemesis_palette_word_w) AM_BASE(m_paletteram)
- AM_RANGE(0x05c000, 0x05c001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x05c400, 0x05c401) AM_READ_PORT("DSW0")
AM_RANGE(0x05c402, 0x05c403) AM_READ_PORT("DSW1")
AM_RANGE(0x05c800, 0x05c801) AM_WRITE_LEGACY(watchdog_reset16_w) /* probably */
@@ -385,20 +375,20 @@ static ADDRESS_MAP_START( konamigt_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x05cc02, 0x05cc03) AM_READ_PORT("IN1")
AM_RANGE(0x05cc04, 0x05cc05) AM_READ_PORT("IN2")
AM_RANGE(0x05cc06, 0x05cc07) AM_READ_PORT("TEST")
- AM_RANGE(0x05e000, 0x05e001) AM_WRITE_LEGACY(&konamigt_irq2_enable_word_w)
- AM_RANGE(0x05e002, 0x05e003) AM_WRITE_LEGACY(&konamigt_irq_enable_word_w)
+ AM_RANGE(0x05e000, 0x05e001) AM_WRITE(konamigt_irq2_enable_word_w)
+ AM_RANGE(0x05e002, 0x05e003) AM_WRITE(konamigt_irq_enable_word_w)
AM_RANGE(0x05e004, 0x05e005) AM_WRITE_LEGACY(nemesis_gfx_flipx_word_w)
AM_RANGE(0x05e006, 0x05e007) AM_WRITE_LEGACY(nemesis_gfx_flipy_word_w)
AM_RANGE(0x05e008, 0x05e009) AM_WRITENOP /* not used irq */
AM_RANGE(0x05e00e, 0x05e00f) AM_WRITENOP /* not used irq */
AM_RANGE(0x060000, 0x067fff) AM_RAM /* WORK RAM */
- AM_RANGE(0x070000, 0x070001) AM_READ_LEGACY(konamigt_input_word_r)
+ AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( rf2_gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* ROM BIOS */
AM_RANGE(0x010000, 0x01ffff) AM_RAM
- AM_RANGE(0x020000, 0x0287ff) AM_READWRITE_LEGACY(gx400_sharedram_word_r, gx400_sharedram_word_w)
+ AM_RANGE(0x020000, 0x0287ff) AM_READWRITE(gx400_sharedram_word_r, gx400_sharedram_word_w)
AM_RANGE(0x030000, 0x03ffff) AM_RAM_WRITE_LEGACY(nemesis_charram_word_w) AM_BASE_SIZE(m_charram, m_charram_size)
AM_RANGE(0x050000, 0x051fff) AM_RAM
AM_RANGE(0x050000, 0x0503ff) AM_BASE(m_xscroll1)
@@ -411,7 +401,7 @@ static ADDRESS_MAP_START( rf2_gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x055000, 0x055fff) AM_RAM_WRITE_LEGACY(nemesis_colorram2_word_w) AM_BASE(m_colorram2)
AM_RANGE(0x056000, 0x056fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x05a000, 0x05afff) AM_RAM_WRITE_LEGACY(nemesis_palette_word_w) AM_BASE(m_paletteram)
- AM_RANGE(0x05c000, 0x05c001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x05c000, 0x05c001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x05c402, 0x05c403) AM_READ_PORT("DSW0")
AM_RANGE(0x05c404, 0x05c405) AM_READ_PORT("DSW1")
AM_RANGE(0x05c406, 0x05c407) AM_READ_PORT("TEST")
@@ -419,14 +409,14 @@ static ADDRESS_MAP_START( rf2_gx400_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x05cc00, 0x05cc01) AM_READ_PORT("IN0")
AM_RANGE(0x05cc02, 0x05cc03) AM_READ_PORT("IN1")
AM_RANGE(0x05cc04, 0x05cc05) AM_READ_PORT("IN2")
- AM_RANGE(0x05e000, 0x05e001) AM_WRITE_LEGACY(&gx400_irq2_enable_word_w) /* ?? */
- AM_RANGE(0x05e002, 0x05e003) AM_WRITE_LEGACY(&gx400_irq1_enable_word_w) /* ?? */
+ AM_RANGE(0x05e000, 0x05e001) AM_WRITE(gx400_irq2_enable_word_w) /* ?? */
+ AM_RANGE(0x05e002, 0x05e003) AM_WRITE(gx400_irq1_enable_word_w) /* ?? */
AM_RANGE(0x05e004, 0x05e005) AM_WRITE_LEGACY(nemesis_gfx_flipx_word_w)
AM_RANGE(0x05e006, 0x05e007) AM_WRITE_LEGACY(nemesis_gfx_flipy_word_w)
AM_RANGE(0x05e008, 0x05e009) AM_WRITENOP /* IRQ acknowledge??? */
- AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE_LEGACY(&gx400_irq4_enable_word_w) /* ?? */
+ AM_RANGE(0x05e00e, 0x05e00f) AM_WRITE(gx400_irq4_enable_word_w) /* ?? */
AM_RANGE(0x060000, 0x067fff) AM_RAM /* WORK RAM */
- AM_RANGE(0x070000, 0x070001) AM_READ_LEGACY(konamigt_input_word_r)
+ AM_RANGE(0x070000, 0x070001) AM_READ(konamigt_input_word_r)
AM_RANGE(0x080000, 0x0bffff) AM_ROM
ADDRESS_MAP_END
@@ -472,7 +462,7 @@ static ADDRESS_MAP_START( salamand_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x080000, 0x087fff) AM_RAM
AM_RANGE(0x090000, 0x091fff) AM_RAM_WRITE_LEGACY(salamander_palette_word_w) AM_BASE(m_paletteram)
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW0")
AM_RANGE(0x0c0004, 0x0c0005) AM_WRITE_LEGACY(watchdog_reset16_w) /* probably */
AM_RANGE(0x0c2000, 0x0c2001) AM_READ_PORT("IN0") /* Coins, start buttons, test mode */
@@ -497,7 +487,7 @@ static ADDRESS_MAP_START( blkpnthr_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x080000, 0x081fff) AM_RAM_WRITE_LEGACY(salamander_palette_word_w) AM_BASE(m_paletteram)
AM_RANGE(0x090000, 0x097fff) AM_RAM
AM_RANGE(0x0a0000, 0x0a0001) AM_RAM_WRITE_LEGACY(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW0")
AM_RANGE(0x0c0004, 0x0c0005) AM_WRITE_LEGACY(watchdog_reset16_w) /* probably */
AM_RANGE(0x0c2000, 0x0c2001) AM_READ_PORT("IN0") /* Coins, start buttons, test mode */
@@ -526,9 +516,9 @@ static ADDRESS_MAP_START( citybomb_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x0f0004, 0x0f0005) AM_READ_PORT("IN1")
AM_RANGE(0x0f0006, 0x0f0007) AM_READ_PORT("IN0") /* Coins, start buttons, test mode */
AM_RANGE(0x0f0008, 0x0f0009) AM_READ_PORT("DSW0")
- AM_RANGE(0x0f0010, 0x0f0011) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x0f0010, 0x0f0011) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE_LEGACY(watchdog_reset16_w) /* probably */
- AM_RANGE(0x0f0020, 0x0f0021) AM_READ_LEGACY(selected_ip_word_r) AM_WRITENOP /* WEC Le Mans 24 control? */
+ AM_RANGE(0x0f0020, 0x0f0021) AM_READ(selected_ip_word_r) AM_WRITENOP /* WEC Le Mans 24 control? */
AM_RANGE(0x0f8000, 0x0f8001) AM_WRITE_LEGACY(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
AM_RANGE(0x100000, 0x1bffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE_LEGACY(nemesis_charram_word_w) AM_BASE_SIZE(m_charram, m_charram_size)
@@ -554,7 +544,7 @@ static ADDRESS_MAP_START( nyanpani_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x070004, 0x070005) AM_READ_PORT("IN1")
AM_RANGE(0x070006, 0x070007) AM_READ_PORT("IN0") /* Coins, start buttons, test mode */
AM_RANGE(0x070008, 0x070009) AM_READ_PORT("DSW0")
- AM_RANGE(0x070010, 0x070011) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x070010, 0x070011) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x070018, 0x070019) AM_WRITE_LEGACY(watchdog_reset16_w) /* probably */
AM_RANGE(0x078000, 0x078001) AM_WRITE_LEGACY(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE_LEGACY(nemesis_videoram1_word_w) AM_BASE(m_videoram1) /* VRAM */
@@ -570,11 +560,10 @@ static ADDRESS_MAP_START( nyanpani_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x310f80, 0x310fff) AM_BASE(m_yscroll1)
ADDRESS_MAP_END
-static READ8_HANDLER( wd_r )
+READ8_MEMBER(nemesis_state::wd_r)
{
- nemesis_state *state = space->machine().driver_data<nemesis_state>();
- state->m_frame_counter ^= 1;
- return state->m_frame_counter;
+ m_frame_counter ^= 1;
+ return m_frame_counter;
}
static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8, nemesis_state )
@@ -584,7 +573,7 @@ static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8, nemesis_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("vlm", vlm5030_data_w)
- AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(wd_r) /* watchdog?? */
+ AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */
AM_RANGE(0xf000, 0xf000) AM_DEVWRITE_LEGACY("vlm", salamand_speech_start_w)
ADDRESS_MAP_END
@@ -594,7 +583,7 @@ static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8, nemesis_state )
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
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_READ_LEGACY(wd_r) /* watchdog?? */
+ AM_RANGE(0xe000, 0xe000) AM_READ(wd_r) /* watchdog?? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( city_sound_map, AS_PROGRAM, 8, nemesis_state )
@@ -619,18 +608,18 @@ static ADDRESS_MAP_START( hcrash_map, AS_PROGRAM, 16, nemesis_state )
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x090000, 0x091fff) AM_RAM_WRITE_LEGACY(salamander_palette_word_w) AM_BASE(m_paletteram)
AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(salamand_control_port_word_w) /* irq enable, flipscreen, etc. */
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(nemesis_soundlatch_word_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(nemesis_soundlatch_word_w)
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("DSW0")
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("DSW1")
AM_RANGE(0x0c0006, 0x0c0007) AM_READ_PORT("TEST")
AM_RANGE(0x0c0008, 0x0c0009) AM_WRITE_LEGACY(watchdog_reset16_w) /* watchdog probably */
AM_RANGE(0x0c000a, 0x0c000b) AM_READ_PORT("IN0")
- AM_RANGE(0x0c2000, 0x0c2001) AM_READ_LEGACY(konamigt_input_word_r) /* Konami GT control */
+ AM_RANGE(0x0c2000, 0x0c2001) AM_READ(konamigt_input_word_r) /* Konami GT control */
AM_RANGE(0x0c2800, 0x0c2801) AM_WRITENOP
- AM_RANGE(0x0c2802, 0x0c2803) AM_WRITE_LEGACY(gx400_irq2_enable_word_w) // or at 0x0c2804 ?
+ AM_RANGE(0x0c2802, 0x0c2803) AM_WRITE(gx400_irq2_enable_word_w) // or at 0x0c2804 ?
AM_RANGE(0x0c2804, 0x0c2805) AM_WRITENOP
- AM_RANGE(0x0c4000, 0x0c4001) AM_READ_PORT("IN1") AM_WRITE_LEGACY(selected_ip_word_w)
- AM_RANGE(0x0c4002, 0x0c4003) AM_READ_LEGACY(selected_ip_word_r) AM_WRITENOP /* WEC Le Mans 24 control. latches the value read previously */
+ AM_RANGE(0x0c4000, 0x0c4001) AM_READ_PORT("IN1") AM_WRITE(selected_ip_word_w)
+ AM_RANGE(0x0c4002, 0x0c4003) AM_READ(selected_ip_word_r) AM_WRITENOP /* WEC Le Mans 24 control. latches the value read previously */
AM_RANGE(0x100000, 0x100fff) AM_RAM_WRITE_LEGACY(nemesis_videoram2_word_w) AM_BASE(m_videoram2) /* VRAM */
AM_RANGE(0x101000, 0x101fff) AM_RAM_WRITE_LEGACY(nemesis_videoram1_word_w) AM_BASE(m_videoram1)
AM_RANGE(0x102000, 0x102fff) AM_RAM_WRITE_LEGACY(nemesis_colorram2_word_w) AM_BASE(m_colorram2)
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index 3c833269ab6..ee30c22ffc6 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -357,10 +357,9 @@ static void audio_cpu_assert_nmi(running_machine &machine)
}
-static WRITE8_HANDLER( audio_cpu_clear_nmi_w )
+WRITE8_MEMBER(neogeo_state::audio_cpu_clear_nmi_w)
{
- neogeo_state *state = space->machine().driver_data<neogeo_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
}
@@ -418,22 +417,21 @@ cpu #0 (PC=00C18C40): unmapped memory word write to 00380000 = 0000 & 00FF
}
#endif
-static WRITE16_HANDLER( io_control_w )
+WRITE16_MEMBER(neogeo_state::io_control_w)
{
- neogeo_state *state = space->machine().driver_data<neogeo_state>();
switch (offset)
{
- case 0x00: select_controller(space->machine(), data & 0x00ff); break;
- case 0x18: set_output_latch(space->machine(), data & 0x00ff); break;
- case 0x20: set_output_data(space->machine(), data & 0x00ff); break;
- case 0x28: upd4990a_control_16_w(state->m_upd4990a, 0, data, mem_mask); break;
+ case 0x00: select_controller(machine(), data & 0x00ff); break;
+ case 0x18: set_output_latch(machine(), data & 0x00ff); break;
+ case 0x20: set_output_data(machine(), data & 0x00ff); break;
+ case 0x28: upd4990a_control_16_w(m_upd4990a, 0, data, mem_mask); break;
// case 0x30: break; // coin counters
// case 0x31: break; // coin counters
// case 0x32: break; // coin lockout
// case 0x33: break; // coui lockout
default:
- logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("PC: %x Unmapped I/O control write. Offset: %x Data: %x\n", cpu_get_pc(&space.device()), offset, data);
break;
}
}
@@ -496,11 +494,10 @@ static void set_save_ram_unlock( running_machine &machine, UINT8 data )
}
-static WRITE16_HANDLER( save_ram_w )
+WRITE16_MEMBER(neogeo_state::save_ram_w)
{
- neogeo_state *state = space->machine().driver_data<neogeo_state>();
- if (state->m_save_ram_unlocked)
+ if (m_save_ram_unlocked)
COMBINE_DATA(&save_ram[offset]);
}
@@ -523,11 +520,11 @@ static CUSTOM_INPUT( get_memcard_status )
}
-static READ16_HANDLER( memcard_r )
+READ16_MEMBER(neogeo_state::memcard_r)
{
UINT16 ret;
- if (memcard_present(space->machine()) != -1)
+ if (memcard_present(machine()) != -1)
ret = memcard_data[offset] | 0xff00;
else
ret = 0xffff;
@@ -536,11 +533,11 @@ static READ16_HANDLER( memcard_r )
}
-static WRITE16_HANDLER( memcard_w )
+WRITE16_MEMBER(neogeo_state::memcard_w)
{
if (ACCESSING_BITS_0_7)
{
- if (memcard_present(space->machine()) != -1)
+ if (memcard_present(machine()) != -1)
memcard_data[offset] = data;
}
}
@@ -573,28 +570,28 @@ static MEMCARD_HANDLER( neogeo )
*
*************************************/
-static WRITE16_HANDLER( audio_command_w )
+WRITE16_MEMBER(neogeo_state::audio_command_w)
{
/* accessing the LSB only is not mapped */
if (mem_mask != 0x00ff)
{
soundlatch_w(space, 0, data >> 8);
- audio_cpu_assert_nmi(space->machine());
+ audio_cpu_assert_nmi(machine());
/* boost the interleave to let the audio CPU read the command */
- space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50));
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50));
- if (LOG_CPU_COMM) logerror("MAIN CPU PC %06x: audio_command_w %04x - %04x\n", cpu_get_pc(&space->device()), data, mem_mask);
+ if (LOG_CPU_COMM) logerror("MAIN CPU PC %06x: audio_command_w %04x - %04x\n", cpu_get_pc(&space.device()), data, mem_mask);
}
}
-static READ8_HANDLER( audio_command_r )
+READ8_MEMBER(neogeo_state::audio_command_r)
{
UINT8 ret = soundlatch_r(space, 0);
- if (LOG_CPU_COMM) logerror(" AUD CPU PC %04x: audio_command_r %02x\n", cpu_get_pc(&space->device()), ret);
+ if (LOG_CPU_COMM) logerror(" AUD CPU PC %04x: audio_command_r %02x\n", cpu_get_pc(&space.device()), ret);
/* this is a guess */
audio_cpu_clear_nmi_w(space, 0, 0);
@@ -603,13 +600,12 @@ static READ8_HANDLER( audio_command_r )
}
-static WRITE8_HANDLER( audio_result_w )
+WRITE8_MEMBER(neogeo_state::audio_result_w)
{
- neogeo_state *state = space->machine().driver_data<neogeo_state>();
- if (LOG_CPU_COMM && (state->m_audio_result != data)) logerror(" AUD CPU PC %04x: audio_result_w %02x\n", cpu_get_pc(&space->device()), data);
+ if (LOG_CPU_COMM && (m_audio_result != data)) logerror(" AUD CPU PC %04x: audio_result_w %02x\n", cpu_get_pc(&space.device()), data);
- state->m_audio_result = data;
+ m_audio_result = data;
}
@@ -666,24 +662,24 @@ void neogeo_set_main_cpu_bank_address( address_space *space, UINT32 bank_address
}
-static WRITE16_HANDLER( main_cpu_bank_select_w )
+WRITE16_MEMBER(neogeo_state::main_cpu_bank_select_w)
{
UINT32 bank_address;
- UINT32 len = space->machine().region("maincpu")->bytes();
+ UINT32 len = machine().region("maincpu")->bytes();
if ((len <= 0x100000) && (data & 0x07))
- logerror("PC %06x: warning: bankswitch to %02x but no banks available\n", cpu_get_pc(&space->device()), data);
+ logerror("PC %06x: warning: bankswitch to %02x but no banks available\n", cpu_get_pc(&space.device()), data);
else
{
bank_address = ((data & 0x07) + 1) * 0x100000;
if (bank_address >= len)
{
- logerror("PC %06x: warning: bankswitch to empty bank %02x\n", cpu_get_pc(&space->device()), data);
+ logerror("PC %06x: warning: bankswitch to empty bank %02x\n", cpu_get_pc(&space.device()), data);
bank_address = 0x100000;
}
- neogeo_set_main_cpu_bank_address(space, bank_address);
+ neogeo_set_main_cpu_bank_address(&space, bank_address);
}
}
@@ -733,33 +729,33 @@ static void audio_cpu_bank_select( address_space *space, int region, UINT8 bank
}
-static READ8_HANDLER( audio_cpu_bank_select_f000_f7ff_r )
+READ8_MEMBER(neogeo_state::audio_cpu_bank_select_f000_f7ff_r)
{
- audio_cpu_bank_select(space, 0, offset >> 8);
+ audio_cpu_bank_select(&space, 0, offset >> 8);
return 0;
}
-static READ8_HANDLER( audio_cpu_bank_select_e000_efff_r )
+READ8_MEMBER(neogeo_state::audio_cpu_bank_select_e000_efff_r)
{
- audio_cpu_bank_select(space, 1, offset >> 8);
+ audio_cpu_bank_select(&space, 1, offset >> 8);
return 0;
}
-static READ8_HANDLER( audio_cpu_bank_select_c000_dfff_r )
+READ8_MEMBER(neogeo_state::audio_cpu_bank_select_c000_dfff_r)
{
- audio_cpu_bank_select(space, 2, offset >> 8);
+ audio_cpu_bank_select(&space, 2, offset >> 8);
return 0;
}
-static READ8_HANDLER( audio_cpu_bank_select_8000_bfff_r )
+READ8_MEMBER(neogeo_state::audio_cpu_bank_select_8000_bfff_r)
{
- audio_cpu_bank_select(space, 3, offset >> 8);
+ audio_cpu_bank_select(&space, 3, offset >> 8);
return 0;
}
@@ -842,7 +838,7 @@ static void audio_cpu_banking_init( running_machine &machine )
*
*************************************/
-static WRITE16_HANDLER( system_control_w )
+WRITE16_MEMBER(neogeo_state::system_control_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -851,22 +847,22 @@ static WRITE16_HANDLER( system_control_w )
switch (offset & 0x07)
{
default:
- case 0x00: neogeo_set_screen_dark(space->machine(), bit); break;
- case 0x01: set_main_cpu_vector_table_source(space->machine(), bit);
- set_audio_cpu_rom_source(space, bit); /* this is a guess */
+ case 0x00: neogeo_set_screen_dark(machine(), bit); break;
+ case 0x01: set_main_cpu_vector_table_source(machine(), bit);
+ set_audio_cpu_rom_source(&space, bit); /* this is a guess */
break;
- case 0x05: neogeo_set_fixed_layer_source(space->machine(), bit); break;
- case 0x06: set_save_ram_unlock(space->machine(), bit); break;
- case 0x07: neogeo_set_palette_bank(space->machine(), bit); break;
+ case 0x05: neogeo_set_fixed_layer_source(machine(), bit); break;
+ case 0x06: set_save_ram_unlock(machine(), bit); break;
+ case 0x07: neogeo_set_palette_bank(machine(), bit); break;
case 0x02: /* unknown - HC32 middle pin 1 */
case 0x03: /* unknown - uPD4990 pin ? */
case 0x04: /* unknown - HC32 middle pin 10 */
- logerror("PC: %x Unmapped system control write. Offset: %x Data: %x\n", cpu_get_pc(&space->device()), offset & 0x07, bit);
+ logerror("PC: %x Unmapped system control write. Offset: %x Data: %x\n", cpu_get_pc(&space.device()), offset & 0x07, bit);
break;
}
- if (LOG_VIDEO_SYSTEM && ((offset & 0x07) != 0x06)) logerror("PC: %x System control write. Offset: %x Data: %x\n", cpu_get_pc(&space->device()), offset & 0x07, bit);
+ if (LOG_VIDEO_SYSTEM && ((offset & 0x07) != 0x06)) logerror("PC: %x System control write. Offset: %x Data: %x\n", cpu_get_pc(&space.device()), offset & 0x07, bit);
}
}
@@ -906,7 +902,7 @@ static WRITE16_HANDLER( system_control_w )
*
*************************************/
-static WRITE16_HANDLER( watchdog_w )
+WRITE16_MEMBER(neogeo_state::watchdog_w)
{
/* only an LSB write resets the watchdog */
if (ACCESSING_BITS_0_7)
@@ -1061,7 +1057,7 @@ static MACHINE_RESET( neogeo )
/* reset system control registers */
for (offs = 0; offs < 8; offs++)
- system_control_w(space, offs, 0, 0x00ff);
+ state->system_control_w(*space, offs, 0, 0x00ff);
machine.device("maincpu")->reset();
@@ -1093,23 +1089,23 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, neogeo_state )
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x0f0000) AM_RAM
/* some games have protection devices in the 0x200000 region, it appears to map to cart space, not surprising, the ROM is read here too */
AM_RANGE(0x200000, 0x2fffff) AM_ROMBANK(NEOGEO_BANK_CARTRIDGE)
- AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE_LEGACY(main_cpu_bank_select_w)
+ AM_RANGE(0x2ffff0, 0x2fffff) AM_WRITE(main_cpu_bank_select_w)
AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ff7e) AM_READ_PORT("IN0")
AM_RANGE(0x300080, 0x300081) AM_MIRROR(0x01ff7e) AM_READ_PORT("IN4")
- AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ffe0) AM_READWRITE_LEGACY(neogeo_unmapped_r, watchdog_w)
- AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN3") AM_WRITE_LEGACY(audio_command_w)
+ AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01ffe0) AM_READ_LEGACY(neogeo_unmapped_r) AM_WRITE(watchdog_w)
+ AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN3") AM_WRITE(audio_command_w)
AM_RANGE(0x340000, 0x340001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN1")
AM_RANGE(0x360000, 0x37ffff) AM_READ_LEGACY(neogeo_unmapped_r)
AM_RANGE(0x380000, 0x380001) AM_MIRROR(0x01fffe) AM_READ_PORT("IN2")
- AM_RANGE(0x380000, 0x38007f) AM_MIRROR(0x01ff80) AM_WRITE_LEGACY(io_control_w)
- AM_RANGE(0x3a0000, 0x3a001f) AM_MIRROR(0x01ffe0) AM_READWRITE_LEGACY(neogeo_unmapped_r, system_control_w)
+ AM_RANGE(0x380000, 0x38007f) AM_MIRROR(0x01ff80) AM_WRITE(io_control_w)
+ AM_RANGE(0x3a0000, 0x3a001f) AM_MIRROR(0x01ffe0) AM_READ_LEGACY(neogeo_unmapped_r) AM_WRITE(system_control_w)
AM_RANGE(0x3c0000, 0x3c0007) AM_MIRROR(0x01fff8) AM_READ_LEGACY(neogeo_video_register_r)
AM_RANGE(0x3c0000, 0x3c000f) AM_MIRROR(0x01fff0) AM_WRITE_LEGACY(neogeo_video_register_w)
AM_RANGE(0x3e0000, 0x3fffff) AM_READ_LEGACY(neogeo_unmapped_r)
AM_RANGE(0x400000, 0x401fff) AM_MIRROR(0x3fe000) AM_READWRITE_LEGACY(neogeo_paletteram_r, neogeo_paletteram_w)
- AM_RANGE(0x800000, 0x800fff) AM_READWRITE_LEGACY(memcard_r, memcard_w)
+ AM_RANGE(0x800000, 0x800fff) AM_READWRITE(memcard_r, memcard_w)
AM_RANGE(0xc00000, 0xc1ffff) AM_MIRROR(0x0e0000) AM_ROMBANK(NEOGEO_BANK_BIOS)
- AM_RANGE(0xd00000, 0xd0ffff) AM_MIRROR(0x0f0000) AM_RAM_WRITE_LEGACY(save_ram_w) AM_BASE_LEGACY(&save_ram)
+ AM_RANGE(0xd00000, 0xd0ffff) AM_MIRROR(0x0f0000) AM_RAM_WRITE(save_ram_w) AM_BASE_LEGACY(&save_ram)
AM_RANGE(0xe00000, 0xffffff) AM_READ_LEGACY(neogeo_unmapped_r)
ADDRESS_MAP_END
@@ -1139,15 +1135,15 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, neogeo_state )
- /*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE_LEGACY(audio_command_r, audio_cpu_clear_nmi_w);*/ /* may not and NMI clear */
- AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ_LEGACY(audio_command_r)
+ /*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, audio_cpu_clear_nmi_w);*/ /* may not and NMI clear */
+ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r)
AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) /* write - NMI enable / acknowledge? (the data written doesn't matter) */
- AM_RANGE(0x08, 0x08) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ_LEGACY(audio_cpu_bank_select_f000_f7ff_r)
- AM_RANGE(0x09, 0x09) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ_LEGACY(audio_cpu_bank_select_e000_efff_r)
- AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ_LEGACY(audio_cpu_bank_select_c000_dfff_r)
- AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ_LEGACY(audio_cpu_bank_select_8000_bfff_r)
- AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE_LEGACY(audio_result_w)
+ AM_RANGE(0x08, 0x08) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_f000_f7ff_r)
+ AM_RANGE(0x09, 0x09) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_e000_efff_r)
+ AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_c000_dfff_r)
+ AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_8000_bfff_r)
+ AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff00) AM_WRITE(audio_result_w)
AM_RANGE(0x18, 0x18) AM_MIRROR(0xff00) /* write - NMI disable? (the data written doesn't matter) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index 051e2900925..01d48f11f8e 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -200,24 +200,24 @@ static MACHINE_RESET( omegaf )
}
-static WRITE8_HANDLER( ninjakd2_bankselect_w )
+WRITE8_MEMBER(ninjakd2_state::ninjakd2_bankselect_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x7);
+ memory_set_bank(machine(), "bank1", data & 0x7);
}
-static WRITE8_HANDLER( robokid_bankselect_w )
+WRITE8_MEMBER(ninjakd2_state::robokid_bankselect_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0xf);
+ memory_set_bank(machine(), "bank1", data & 0xf);
}
-static WRITE8_HANDLER( ninjakd2_soundreset_w )
+WRITE8_MEMBER(ninjakd2_state::ninjakd2_soundreset_w)
{
// bit 4 resets sound CPU
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
// bit 7 flips screen
- flip_screen_set(space->machine(), data & 0x80);
+ flip_screen_set(machine(), data & 0x80);
// other bits unused
}
@@ -241,16 +241,15 @@ static SAMPLES_START( ninjakd2_init_samples )
state->m_sampledata = sampledata;
}
-static WRITE8_HANDLER( ninjakd2_pcm_play_w )
+WRITE8_MEMBER(ninjakd2_state::ninjakd2_pcm_play_w)
{
- ninjakd2_state *state = space->machine().driver_data<ninjakd2_state>();
- samples_device *samples = space->machine().device<samples_device>("pcm");
- const UINT8* const rom = space->machine().region("pcm")->base();
+ samples_device *samples = machine().device<samples_device>("pcm");
+ const UINT8* const rom = machine().region("pcm")->base();
// only Ninja Kid II uses this
if (rom)
{
- const int length = space->machine().region("pcm")->bytes();
+ const int length = machine().region("pcm")->bytes();
const int start = data << 8;
@@ -262,7 +261,7 @@ static WRITE8_HANDLER( ninjakd2_pcm_play_w )
++end;
if (end - start)
- samples->start_raw(0, &state->m_sampledata[start], end - start, NE555_FREQUENCY);
+ samples->start_raw(0, &m_sampledata[start], end - start, NE555_FREQUENCY);
else
samples->stop(0);
}
@@ -287,27 +286,26 @@ static void omegaf_io_protection_reset(running_machine &machine)
state->m_omegaf_io_protection_tic = 0;
}
-static READ8_HANDLER( omegaf_io_protection_r )
+READ8_MEMBER(ninjakd2_state::omegaf_io_protection_r)
{
- ninjakd2_state *state = space->machine().driver_data<ninjakd2_state>();
UINT8 result = 0xff;
- switch (state->m_omegaf_io_protection[1] & 3)
+ switch (m_omegaf_io_protection[1] & 3)
{
case 0:
switch (offset)
{
case 1:
- switch (state->m_omegaf_io_protection[0] & 0xe0)
+ switch (m_omegaf_io_protection[0] & 0xe0)
{
case 0x00:
- if (++state->m_omegaf_io_protection_tic & 1)
+ if (++m_omegaf_io_protection_tic & 1)
{
result = 0x00;
}
else
{
- switch (state->m_omegaf_io_protection_input)
+ switch (m_omegaf_io_protection_input)
{
// first interrogation
// this happens just after setting mode 0.
@@ -338,11 +336,11 @@ static READ8_HANDLER( omegaf_io_protection_r )
break;
case 0x80:
- result = 0x20 | (state->m_omegaf_io_protection_input & 0x1f);
+ result = 0x20 | (m_omegaf_io_protection_input & 0x1f);
break;
case 0xc0:
- result = 0x60 | (state->m_omegaf_io_protection_input & 0x1f);
+ result = 0x60 | (m_omegaf_io_protection_input & 0x1f);
break;
}
break;
@@ -352,8 +350,8 @@ static READ8_HANDLER( omegaf_io_protection_r )
case 1: // dip switches
switch (offset)
{
- case 0: result = input_port_read(space->machine(), "DIPSW1"); break;
- case 1: result = input_port_read(space->machine(), "DIPSW2"); break;
+ case 0: result = input_port_read(machine(), "DIPSW1"); break;
+ case 1: result = input_port_read(machine(), "DIPSW2"); break;
case 2: result = 0x02; break;
}
break;
@@ -361,8 +359,8 @@ static READ8_HANDLER( omegaf_io_protection_r )
case 2: // player inputs
switch (offset)
{
- case 0: result = input_port_read(space->machine(), "PAD1"); break;
- case 1: result = input_port_read(space->machine(), "PAD2"); break;
+ case 0: result = input_port_read(machine(), "PAD1"); break;
+ case 1: result = input_port_read(machine(), "PAD2"); break;
case 2: result = 0x01; break;
}
break;
@@ -371,17 +369,16 @@ static READ8_HANDLER( omegaf_io_protection_r )
return result;
}
-static WRITE8_HANDLER( omegaf_io_protection_w )
+WRITE8_MEMBER(ninjakd2_state::omegaf_io_protection_w)
{
- ninjakd2_state *state = space->machine().driver_data<ninjakd2_state>();
// load parameter on c006 bit 0 rise transition
- if (offset == 2 && (data & 1) && !(state->m_omegaf_io_protection[2] & 1))
+ if (offset == 2 && (data & 1) && !(m_omegaf_io_protection[2] & 1))
{
- logerror("loading protection input %02x\n", state->m_omegaf_io_protection[0]);
- state->m_omegaf_io_protection_input = state->m_omegaf_io_protection[0];
+ logerror("loading protection input %02x\n", m_omegaf_io_protection[0]);
+ m_omegaf_io_protection_input = m_omegaf_io_protection[0];
}
- state->m_omegaf_io_protection[offset] = data;
+ m_omegaf_io_protection[offset] = data;
}
@@ -401,8 +398,8 @@ static ADDRESS_MAP_START( ninjakd2_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DIPSW1")
AM_RANGE(0xc004, 0xc004) AM_READ_PORT("DIPSW2")
AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xc201, 0xc201) AM_WRITE_LEGACY(ninjakd2_soundreset_w) // sound reset + flip screen
- AM_RANGE(0xc202, 0xc202) AM_WRITE_LEGACY(ninjakd2_bankselect_w)
+ AM_RANGE(0xc201, 0xc201) AM_WRITE(ninjakd2_soundreset_w) // sound reset + flip screen
+ AM_RANGE(0xc202, 0xc202) AM_WRITE(ninjakd2_bankselect_w)
AM_RANGE(0xc203, 0xc203) AM_WRITE_LEGACY(ninjakd2_sprite_overdraw_w)
AM_RANGE(0xc208, 0xc20c) AM_WRITE_LEGACY(ninjakd2_bg_ctrl_w) // scroll + enable
AM_RANGE(0xc800, 0xcdff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram)
@@ -427,8 +424,8 @@ static ADDRESS_MAP_START( mnight_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0xf803, 0xf803) AM_READ_PORT("DIPSW1")
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DIPSW2")
AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xfa01, 0xfa01) AM_WRITE_LEGACY(ninjakd2_soundreset_w)
- AM_RANGE(0xfa02, 0xfa02) AM_WRITE_LEGACY(ninjakd2_bankselect_w)
+ AM_RANGE(0xfa01, 0xfa01) AM_WRITE(ninjakd2_soundreset_w)
+ AM_RANGE(0xfa02, 0xfa02) AM_WRITE(ninjakd2_bankselect_w)
AM_RANGE(0xfa03, 0xfa03) AM_WRITE_LEGACY(ninjakd2_sprite_overdraw_w)
AM_RANGE(0xfa08, 0xfa0c) AM_WRITE_LEGACY(ninjakd2_bg_ctrl_w) // scroll + enable
ADDRESS_MAP_END
@@ -448,8 +445,8 @@ static ADDRESS_MAP_START( robokid_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0xdc03, 0xdc03) AM_READ_PORT("DIPSW1")
AM_RANGE(0xdc04, 0xdc04) AM_READ_PORT("DIPSW2")
AM_RANGE(0xdc00, 0xdc00) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xdc01, 0xdc01) AM_WRITE_LEGACY(ninjakd2_soundreset_w) // sound reset + flip screen
- AM_RANGE(0xdc02, 0xdc02) AM_WRITE_LEGACY(robokid_bankselect_w)
+ AM_RANGE(0xdc01, 0xdc01) AM_WRITE(ninjakd2_soundreset_w) // sound reset + flip screen
+ AM_RANGE(0xdc02, 0xdc02) AM_WRITE(robokid_bankselect_w)
AM_RANGE(0xdc03, 0xdc03) AM_WRITE_LEGACY(ninjakd2_sprite_overdraw_w)
AM_RANGE(0xdd00, 0xdd04) AM_WRITE_LEGACY(robokid_bg0_ctrl_w) // scroll + enable
AM_RANGE(0xdd05, 0xdd05) AM_WRITE_LEGACY(robokid_bg0_bank_w)
@@ -466,12 +463,12 @@ static ADDRESS_MAP_START( omegaf_main_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("KEYCOIN")
- AM_RANGE(0xc001, 0xc003) AM_READ_LEGACY(omegaf_io_protection_r)
+ AM_RANGE(0xc001, 0xc003) AM_READ(omegaf_io_protection_r)
AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xc001, 0xc001) AM_WRITE_LEGACY(ninjakd2_soundreset_w) // sound reset + flip screen
- AM_RANGE(0xc002, 0xc002) AM_WRITE_LEGACY(robokid_bankselect_w)
+ AM_RANGE(0xc001, 0xc001) AM_WRITE(ninjakd2_soundreset_w) // sound reset + flip screen
+ AM_RANGE(0xc002, 0xc002) AM_WRITE(robokid_bankselect_w)
AM_RANGE(0xc003, 0xc003) AM_WRITE_LEGACY(ninjakd2_sprite_overdraw_w)
- AM_RANGE(0xc004, 0xc006) AM_WRITE_LEGACY(omegaf_io_protection_w)
+ AM_RANGE(0xc004, 0xc006) AM_WRITE(omegaf_io_protection_w)
AM_RANGE(0xc100, 0xc104) AM_WRITE_LEGACY(robokid_bg0_ctrl_w) // scroll + enable
AM_RANGE(0xc105, 0xc105) AM_WRITE_LEGACY(robokid_bg0_bank_w)
AM_RANGE(0xc1e7, 0xc1e7) AM_READNOP // see notes
@@ -494,7 +491,7 @@ static ADDRESS_MAP_START( ninjakd2_sound_cpu, AS_PROGRAM, 8, ninjakd2_state )
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(ninjakd2_pcm_play_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(ninjakd2_pcm_play_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ninjakd2_sound_io, AS_IO, 8, ninjakd2_state )
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index c338aaa1236..3d27a00a642 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -335,17 +335,16 @@ static void parse_control( running_machine &machine ) /* assumes Z80 sandwiched
}
-static WRITE16_HANDLER( cpua_ctrl_w )
+WRITE16_MEMBER(ninjaw_state::cpua_ctrl_w)
{
- ninjaw_state *state = space->machine().driver_data<ninjaw_state>();
if ((data &0xff00) && ((data &0xff) == 0))
data = data >> 8;
- state->m_cpua_ctrl = data;
+ m_cpua_ctrl = data;
- parse_control(space->machine());
+ parse_control(machine());
- logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space.device()), data);
}
@@ -359,22 +358,20 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank10", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(ninjaw_state::sound_bankswitch_w)
{
- ninjaw_state *state = space->machine().driver_data<ninjaw_state>();
- state->m_banknum = data & 7;
- reset_sound_region(space->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
-static WRITE16_HANDLER( ninjaw_sound_w )
+WRITE16_MEMBER(ninjaw_state::ninjaw_sound_w)
{
- ninjaw_state *state = space->machine().driver_data<ninjaw_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
#ifdef MAME_DEBUG
if (data & 0xff00)
@@ -382,12 +379,11 @@ static WRITE16_HANDLER( ninjaw_sound_w )
#endif
}
-static READ16_HANDLER( ninjaw_sound_r )
+READ16_MEMBER(ninjaw_state::ninjaw_sound_r)
{
- ninjaw_state *state = space->machine().driver_data<ninjaw_state>();
if (offset == 1)
- return ((tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
else
return 0;
}
@@ -395,33 +391,31 @@ static READ16_HANDLER( ninjaw_sound_r )
/**** sound pan control ****/
-static WRITE8_HANDLER( ninjaw_pancontrol )
+WRITE8_MEMBER(ninjaw_state::ninjaw_pancontrol)
{
- ninjaw_state *state = space->machine().driver_data<ninjaw_state>();
device_t *flt = NULL;
offset &= 3;
switch (offset)
{
- case 0: flt = state->m_2610_1l; break;
- case 1: flt = state->m_2610_1r; break;
- case 2: flt = state->m_2610_2l; break;
- case 3: flt = state->m_2610_2r; break;
+ case 0: flt = m_2610_1l; break;
+ case 1: flt = m_2610_1r; break;
+ case 2: flt = m_2610_2l; break;
+ case 3: flt = m_2610_2r; break;
}
- state->m_pandata[offset] = (float)data * (100.f / 255.0f);
- //popmessage(" pan %02x %02x %02x %02x", state->m_pandata[0], state->m_pandata[1], state->m_pandata[2], state->m_pandata[3] );
- flt_volume_set_volume(flt, state->m_pandata[offset] / 100.0);
+ m_pandata[offset] = (float)data * (100.f / 255.0f);
+ //popmessage(" pan %02x %02x %02x %02x", m_pandata[0], m_pandata[1], m_pandata[2], m_pandata[3] );
+ flt_volume_set_volume(flt, m_pandata[offset] / 100.0);
}
-static WRITE16_HANDLER( tc0100scn_triple_screen_w )
+WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w)
{
- ninjaw_state *state = space->machine().driver_data<ninjaw_state>();
- tc0100scn_word_w(state->m_tc0100scn_1, offset, data, mem_mask);
- tc0100scn_word_w(state->m_tc0100scn_2, offset, data, mem_mask);
- tc0100scn_word_w(state->m_tc0100scn_3, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_1, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_2, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_3, offset, data, mem_mask);
}
/***********************************************************
@@ -433,11 +427,11 @@ static ADDRESS_MAP_START( ninjaw_master_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
- AM_RANGE(0x210000, 0x210001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x220000, 0x220003) AM_READWRITE_LEGACY(ninjaw_sound_r,ninjaw_sound_w)
+ AM_RANGE(0x210000, 0x210001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x220000, 0x220003) AM_READWRITE(ninjaw_sound_r,ninjaw_sound_w)
AM_RANGE(0x240000, 0x24ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x260000, 0x263fff) AM_RAM AM_SHARE("share2") AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE_LEGACY(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
+ AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
AM_RANGE(0x2a0000, 0x2a000f) AM_DEVREADWRITE_LEGACY("tc0100scn_1", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0x2c0000, 0x2d3fff) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps (2nd screen) */
AM_RANGE(0x2e0000, 0x2e000f) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
@@ -458,7 +452,7 @@ static ADDRESS_MAP_START( ninjaw_slave_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
AM_RANGE(0x240000, 0x24ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x260000, 0x263fff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE_LEGACY(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
+ AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
AM_RANGE(0x340000, 0x340007) AM_DEVREADWRITE_LEGACY("tc0110pcr_1", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette (1st screen) */
AM_RANGE(0x350000, 0x350007) AM_DEVREADWRITE_LEGACY("tc0110pcr_2", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette (2nd screen) */
AM_RANGE(0x360000, 0x360007) AM_DEVREADWRITE_LEGACY("tc0110pcr_3", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette (3rd screen) */
@@ -469,11 +463,11 @@ static ADDRESS_MAP_START( darius2_master_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM /* main ram */
AM_RANGE(0x200000, 0x200001) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
- AM_RANGE(0x210000, 0x210001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x220000, 0x220003) AM_READWRITE_LEGACY(ninjaw_sound_r,ninjaw_sound_w)
+ AM_RANGE(0x210000, 0x210001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x220000, 0x220003) AM_READWRITE(ninjaw_sound_r,ninjaw_sound_w)
AM_RANGE(0x240000, 0x24ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x260000, 0x263fff) AM_RAM AM_SHARE("share2") AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE_LEGACY(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
+ AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
AM_RANGE(0x2a0000, 0x2a000f) AM_DEVREADWRITE_LEGACY("tc0100scn_1", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0x2c0000, 0x2d3fff) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps (2nd screen) */
AM_RANGE(0x2e0000, 0x2e000f) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
@@ -491,7 +485,7 @@ static ADDRESS_MAP_START( darius2_slave_map, AS_PROGRAM, 16, ninjaw_state )
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
AM_RANGE(0x240000, 0x24ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x260000, 0x263fff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE_LEGACY(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
+ AM_RANGE(0x280000, 0x293fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_triple_screen_w) /* tilemaps (1st screen/all screens) */
ADDRESS_MAP_END
@@ -504,11 +498,11 @@ static ADDRESS_MAP_START( ninjaw_sound_map, AS_PROGRAM, 8, ninjaw_state )
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w)
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r,tc0140syt_slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITE_LEGACY(ninjaw_pancontrol) /* pan */
+ AM_RANGE(0xe400, 0xe403) AM_WRITE(ninjaw_pancontrol) /* pan */
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index 6b437ab9e7f..171d960aeac 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -60,17 +60,17 @@ static void niyanpai_soundbank_w(running_machine &machine, int data)
memory_set_bankptr(machine, "bank1", &SNDROM[0x08000 + (0x8000 * (data & 0x03))]);
}
-static READ8_HANDLER( niyanpai_sound_r )
+READ8_MEMBER(niyanpai_state::niyanpai_sound_r)
{
return soundlatch_r(space, 0);
}
-static WRITE16_HANDLER( niyanpai_sound_w )
+WRITE16_MEMBER(niyanpai_state::niyanpai_sound_w)
{
soundlatch_w(space, 0, ((data >> 8) & 0xff));
}
-static WRITE8_HANDLER( niyanpai_soundclr_w )
+WRITE8_MEMBER(niyanpai_state::niyanpai_soundclr_w)
{
soundlatch_clear_w(space, 0, 0);
}
@@ -78,7 +78,7 @@ static WRITE8_HANDLER( niyanpai_soundclr_w )
/* TMPZ84C011 PIO emulation */
-static READ8_HANDLER( tmpz84c011_pio_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_pio_r)
{
int portdata;
@@ -101,7 +101,7 @@ static READ8_HANDLER( tmpz84c011_pio_r )
break;
default:
- logerror("%s: TMPZ84C011_PIO Unknown Port Read %02X\n", space->machine().describe_context(), offset);
+ logerror("%s: TMPZ84C011_PIO Unknown Port Read %02X\n", machine().describe_context(), offset);
portdata = 0xff;
break;
}
@@ -109,18 +109,18 @@ static READ8_HANDLER( tmpz84c011_pio_r )
return portdata;
}
-static WRITE8_HANDLER( tmpz84c011_pio_w)
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_pio_w)
{
switch (offset)
{
case 0: /* PA_0 */
- niyanpai_soundbank_w(space->machine(), data & 0x03);
+ niyanpai_soundbank_w(machine(), data & 0x03);
break;
case 1: /* PB_0 */
- DAC_WRITE(space->machine().device("dac2"), 0, data);
+ DAC_WRITE(machine().device("dac2"), 0, data);
break;
case 2: /* PC_0 */
- DAC_WRITE(space->machine().device("dac1"), 0, data);
+ DAC_WRITE(machine().device("dac1"), 0, data);
break;
case 3: /* PD_0 */
break;
@@ -129,134 +129,114 @@ static WRITE8_HANDLER( tmpz84c011_pio_w)
break;
default:
- logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", space->machine().describe_context(), offset, data);
+ logerror("%s: TMPZ84C011_PIO Unknown Port Write %02X, %02X\n", machine().describe_context(), offset, data);
break;
}
}
/* CPU interface */
-static READ8_HANDLER( tmpz84c011_0_pa_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_pa_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return (tmpz84c011_pio_r(space,0) & ~state->m_pio_dir[0]) | (state->m_pio_latch[0] & state->m_pio_dir[0]);
+ return (tmpz84c011_pio_r(space,0) & ~m_pio_dir[0]) | (m_pio_latch[0] & m_pio_dir[0]);
}
-static READ8_HANDLER( tmpz84c011_0_pb_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_pb_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return (tmpz84c011_pio_r(space,1) & ~state->m_pio_dir[1]) | (state->m_pio_latch[1] & state->m_pio_dir[1]);
+ return (tmpz84c011_pio_r(space,1) & ~m_pio_dir[1]) | (m_pio_latch[1] & m_pio_dir[1]);
}
-static READ8_HANDLER( tmpz84c011_0_pc_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_pc_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return (tmpz84c011_pio_r(space,2) & ~state->m_pio_dir[2]) | (state->m_pio_latch[2] & state->m_pio_dir[2]);
+ return (tmpz84c011_pio_r(space,2) & ~m_pio_dir[2]) | (m_pio_latch[2] & m_pio_dir[2]);
}
-static READ8_HANDLER( tmpz84c011_0_pd_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_pd_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return (tmpz84c011_pio_r(space,3) & ~state->m_pio_dir[3]) | (state->m_pio_latch[3] & state->m_pio_dir[3]);
+ return (tmpz84c011_pio_r(space,3) & ~m_pio_dir[3]) | (m_pio_latch[3] & m_pio_dir[3]);
}
-static READ8_HANDLER( tmpz84c011_0_pe_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_pe_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return (tmpz84c011_pio_r(space,4) & ~state->m_pio_dir[4]) | (state->m_pio_latch[4] & state->m_pio_dir[4]);
+ return (tmpz84c011_pio_r(space,4) & ~m_pio_dir[4]) | (m_pio_latch[4] & m_pio_dir[4]);
}
-static WRITE8_HANDLER( tmpz84c011_0_pa_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pa_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_latch[0] = data;
+ m_pio_latch[0] = data;
tmpz84c011_pio_w(space, 0, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pb_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pb_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_latch[1] = data;
+ m_pio_latch[1] = data;
tmpz84c011_pio_w(space, 1, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pc_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pc_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_latch[2] = data;
+ m_pio_latch[2] = data;
tmpz84c011_pio_w(space, 2, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pd_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pd_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_latch[3] = data;
+ m_pio_latch[3] = data;
tmpz84c011_pio_w(space, 3, data);
}
-static WRITE8_HANDLER( tmpz84c011_0_pe_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_pe_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_latch[4] = data;
+ m_pio_latch[4] = data;
tmpz84c011_pio_w(space, 4, data);
}
-static READ8_HANDLER( tmpz84c011_0_dir_pa_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pa_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return state->m_pio_dir[0];
+ return m_pio_dir[0];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pb_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pb_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return state->m_pio_dir[1];
+ return m_pio_dir[1];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pc_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pc_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return state->m_pio_dir[2];
+ return m_pio_dir[2];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pd_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pd_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return state->m_pio_dir[3];
+ return m_pio_dir[3];
}
-static READ8_HANDLER( tmpz84c011_0_dir_pe_r )
+READ8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pe_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- return state->m_pio_dir[4];
+ return m_pio_dir[4];
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pa_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pa_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_dir[0] = data;
+ m_pio_dir[0] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pb_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pb_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_dir[1] = data;
+ m_pio_dir[1] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pc_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pc_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_dir[2] = data;
+ m_pio_dir[2] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pd_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pd_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_dir[3] = data;
+ m_pio_dir[3] = data;
}
-static WRITE8_HANDLER( tmpz84c011_0_dir_pe_w )
+WRITE8_MEMBER(niyanpai_state::tmpz84c011_0_dir_pe_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_pio_dir[4] = data;
+ m_pio_dir[4] = data;
}
@@ -279,7 +259,7 @@ static MACHINE_RESET( niyanpai )
for (i = 0; i < 5; i++)
{
state->m_pio_dir[i] = state->m_pio_latch[i] = 0;
- tmpz84c011_pio_w(space, i, 0);
+ state->tmpz84c011_pio_w(*space, i, 0);
}
}
@@ -299,37 +279,36 @@ static DRIVER_INIT( niyanpai )
}
-static READ16_HANDLER( niyanpai_dipsw_r )
+READ16_MEMBER(niyanpai_state::niyanpai_dipsw_r)
{
UINT8 dipsw_a, dipsw_b;
- dipsw_a = (((input_port_read(space->machine(), "DSWA") & 0x01) << 7) | ((input_port_read(space->machine(), "DSWA") & 0x02) << 5) |
- ((input_port_read(space->machine(), "DSWA") & 0x04) << 3) | ((input_port_read(space->machine(), "DSWA") & 0x08) << 1) |
- ((input_port_read(space->machine(), "DSWA") & 0x10) >> 1) | ((input_port_read(space->machine(), "DSWA") & 0x20) >> 3) |
- ((input_port_read(space->machine(), "DSWA") & 0x40) >> 5) | ((input_port_read(space->machine(), "DSWA") & 0x80) >> 7));
+ dipsw_a = (((input_port_read(machine(), "DSWA") & 0x01) << 7) | ((input_port_read(machine(), "DSWA") & 0x02) << 5) |
+ ((input_port_read(machine(), "DSWA") & 0x04) << 3) | ((input_port_read(machine(), "DSWA") & 0x08) << 1) |
+ ((input_port_read(machine(), "DSWA") & 0x10) >> 1) | ((input_port_read(machine(), "DSWA") & 0x20) >> 3) |
+ ((input_port_read(machine(), "DSWA") & 0x40) >> 5) | ((input_port_read(machine(), "DSWA") & 0x80) >> 7));
- dipsw_b = (((input_port_read(space->machine(), "DSWB") & 0x01) << 7) | ((input_port_read(space->machine(), "DSWB") & 0x02) << 5) |
- ((input_port_read(space->machine(), "DSWB") & 0x04) << 3) | ((input_port_read(space->machine(), "DSWB") & 0x08) << 1) |
- ((input_port_read(space->machine(), "DSWB") & 0x10) >> 1) | ((input_port_read(space->machine(), "DSWB") & 0x20) >> 3) |
- ((input_port_read(space->machine(), "DSWB") & 0x40) >> 5) | ((input_port_read(space->machine(), "DSWB") & 0x80) >> 7));
+ dipsw_b = (((input_port_read(machine(), "DSWB") & 0x01) << 7) | ((input_port_read(machine(), "DSWB") & 0x02) << 5) |
+ ((input_port_read(machine(), "DSWB") & 0x04) << 3) | ((input_port_read(machine(), "DSWB") & 0x08) << 1) |
+ ((input_port_read(machine(), "DSWB") & 0x10) >> 1) | ((input_port_read(machine(), "DSWB") & 0x20) >> 3) |
+ ((input_port_read(machine(), "DSWB") & 0x40) >> 5) | ((input_port_read(machine(), "DSWB") & 0x80) >> 7));
return ((dipsw_a << 8) | dipsw_b);
}
-static READ16_HANDLER( musobana_inputport_0_r )
+READ16_MEMBER(niyanpai_state::musobana_inputport_0_r)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
int portdata;
- switch ((state->m_musobana_inputport ^ 0xff00) >> 8)
+ switch ((m_musobana_inputport ^ 0xff00) >> 8)
{
- case 0x01: portdata = input_port_read(space->machine(), "KEY0"); break;
- case 0x02: portdata = input_port_read(space->machine(), "KEY1"); break;
- case 0x04: portdata = input_port_read(space->machine(), "KEY2"); break;
- case 0x08: portdata = input_port_read(space->machine(), "KEY3"); break;
- case 0x10: portdata = input_port_read(space->machine(), "KEY4"); break;
- default: portdata = input_port_read(space->machine(), "KEY0") & input_port_read(space->machine(), "KEY1") & input_port_read(space->machine(), "KEY2")
- & input_port_read(space->machine(), "KEY3") & input_port_read(space->machine(), "KEY4"); break;
+ case 0x01: portdata = input_port_read(machine(), "KEY0"); break;
+ case 0x02: portdata = input_port_read(machine(), "KEY1"); break;
+ case 0x04: portdata = input_port_read(machine(), "KEY2"); break;
+ case 0x08: portdata = input_port_read(machine(), "KEY3"); break;
+ case 0x10: portdata = input_port_read(machine(), "KEY4"); break;
+ default: portdata = input_port_read(machine(), "KEY0") & input_port_read(machine(), "KEY1") & input_port_read(machine(), "KEY2")
+ & input_port_read(machine(), "KEY3") & input_port_read(machine(), "KEY4"); break;
}
return (portdata);
@@ -350,10 +329,9 @@ static CUSTOM_INPUT( musobana_outcoin_flag_r )
return state->m_musobana_outcoin_flag & 0x01;
}
-static WRITE16_HANDLER ( musobana_inputport_w )
+WRITE16_MEMBER(niyanpai_state::musobana_inputport_w)
{
- niyanpai_state *state = space->machine().driver_data<niyanpai_state>();
- state->m_musobana_inputport = data;
+ m_musobana_inputport = data;
}
static ADDRESS_MAP_START( tmp68301_regs, AS_PROGRAM, 16, niyanpai_state )
@@ -373,7 +351,7 @@ static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x0bf800, 0x0bffff) AM_RAM
- AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(niyanpai_sound_w)
+ AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
AM_RANGE(0x200200, 0x200201) AM_WRITENOP // unknown
AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown
@@ -388,7 +366,7 @@ static ADDRESS_MAP_START( niyanpai_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x240800, 0x240803) AM_READ_LEGACY(niyanpai_blitter_2_r)
AM_RANGE(0x240800, 0x24081f) AM_WRITE_LEGACY(niyanpai_blitter_2_w)
AM_RANGE(0x240820, 0x24083f) AM_WRITE_LEGACY(niyanpai_clut_2_w)
- AM_RANGE(0x280000, 0x280001) AM_READ_LEGACY(niyanpai_dipsw_r)
+ AM_RANGE(0x280000, 0x280001) AM_READ(niyanpai_dipsw_r)
AM_RANGE(0x280200, 0x280201) AM_READ_PORT("P1_P2")
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
@@ -409,9 +387,9 @@ static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0bf800, 0x0bffff) AM_RAM
- AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(niyanpai_sound_w)
+ AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
- AM_RANGE(0x200200, 0x200201) AM_WRITE_LEGACY(musobana_inputport_w) // inputport select
+ AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select
AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown
AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP // unknown
@@ -430,8 +408,8 @@ static ADDRESS_MAP_START( musobana_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x240c00, 0x240c01) AM_WRITE_LEGACY(niyanpai_clutsel_1_w)
AM_RANGE(0x240e00, 0x240e01) AM_WRITE_LEGACY(niyanpai_clutsel_2_w)
- AM_RANGE(0x280000, 0x280001) AM_READ_LEGACY(niyanpai_dipsw_r)
- AM_RANGE(0x280200, 0x280201) AM_READ_LEGACY(musobana_inputport_0_r)
+ AM_RANGE(0x280000, 0x280001) AM_READ(niyanpai_dipsw_r)
+ AM_RANGE(0x280200, 0x280201) AM_READ(musobana_inputport_0_r)
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
AM_IMPORT_FROM( tmp68301_regs )
@@ -448,9 +426,9 @@ static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x0a8000, 0x0a87ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x0bf000, 0x0bffff) AM_RAM
- AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(niyanpai_sound_w)
+ AM_RANGE(0x200000, 0x200001) AM_WRITE(niyanpai_sound_w)
- AM_RANGE(0x200200, 0x200201) AM_WRITE_LEGACY(musobana_inputport_w) // inputport select
+ AM_RANGE(0x200200, 0x200201) AM_WRITE(musobana_inputport_w) // inputport select
AM_RANGE(0x240000, 0x240009) AM_WRITENOP // unknown
AM_RANGE(0x240200, 0x2403ff) AM_WRITENOP // unknown
@@ -470,8 +448,8 @@ static ADDRESS_MAP_START( mhhonban_map, AS_PROGRAM, 16, niyanpai_state )
AM_RANGE(0x240c00, 0x240c01) AM_WRITE_LEGACY(niyanpai_clutsel_1_w)
AM_RANGE(0x240e00, 0x240e01) AM_WRITE_LEGACY(niyanpai_clutsel_2_w)
- AM_RANGE(0x280000, 0x280001) AM_READ_LEGACY(niyanpai_dipsw_r)
- AM_RANGE(0x280200, 0x280201) AM_READ_LEGACY(musobana_inputport_0_r)
+ AM_RANGE(0x280000, 0x280001) AM_READ(niyanpai_dipsw_r)
+ AM_RANGE(0x280200, 0x280201) AM_READ(musobana_inputport_0_r)
AM_RANGE(0x280400, 0x280401) AM_READ_PORT("SYSTEM")
AM_IMPORT_FROM( tmp68301_regs )
@@ -487,16 +465,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( niyanpai_sound_io_map, AS_IO, 8, niyanpai_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("ctc", z80ctc_r, z80ctc_w)
- AM_RANGE(0x50, 0x50) AM_READWRITE_LEGACY(tmpz84c011_0_pa_r, tmpz84c011_0_pa_w)
- AM_RANGE(0x51, 0x51) AM_READWRITE_LEGACY(tmpz84c011_0_pb_r, tmpz84c011_0_pb_w)
- AM_RANGE(0x52, 0x52) AM_READWRITE_LEGACY(tmpz84c011_0_pc_r, tmpz84c011_0_pc_w)
- AM_RANGE(0x30, 0x30) AM_READWRITE_LEGACY(tmpz84c011_0_pd_r, tmpz84c011_0_pd_w)
- AM_RANGE(0x40, 0x40) AM_READWRITE_LEGACY(tmpz84c011_0_pe_r, tmpz84c011_0_pe_w)
- AM_RANGE(0x54, 0x54) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pa_r, tmpz84c011_0_dir_pa_w)
- AM_RANGE(0x55, 0x55) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pb_r, tmpz84c011_0_dir_pb_w)
- AM_RANGE(0x56, 0x56) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pc_r, tmpz84c011_0_dir_pc_w)
- AM_RANGE(0x34, 0x34) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pd_r, tmpz84c011_0_dir_pd_w)
- AM_RANGE(0x44, 0x44) AM_READWRITE_LEGACY(tmpz84c011_0_dir_pe_r, tmpz84c011_0_dir_pe_w)
+ AM_RANGE(0x50, 0x50) AM_READWRITE(tmpz84c011_0_pa_r, tmpz84c011_0_pa_w)
+ AM_RANGE(0x51, 0x51) AM_READWRITE(tmpz84c011_0_pb_r, tmpz84c011_0_pb_w)
+ AM_RANGE(0x52, 0x52) AM_READWRITE(tmpz84c011_0_pc_r, tmpz84c011_0_pc_w)
+ AM_RANGE(0x30, 0x30) AM_READWRITE(tmpz84c011_0_pd_r, tmpz84c011_0_pd_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(tmpz84c011_0_pe_r, tmpz84c011_0_pe_w)
+ AM_RANGE(0x54, 0x54) AM_READWRITE(tmpz84c011_0_dir_pa_r, tmpz84c011_0_dir_pa_w)
+ AM_RANGE(0x55, 0x55) AM_READWRITE(tmpz84c011_0_dir_pb_r, tmpz84c011_0_dir_pb_w)
+ AM_RANGE(0x56, 0x56) AM_READWRITE(tmpz84c011_0_dir_pc_r, tmpz84c011_0_dir_pc_w)
+ AM_RANGE(0x34, 0x34) AM_READWRITE(tmpz84c011_0_dir_pd_r, tmpz84c011_0_dir_pd_w)
+ AM_RANGE(0x44, 0x44) AM_READWRITE(tmpz84c011_0_dir_pe_r, tmpz84c011_0_dir_pe_w)
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index c03cb084b04..3a09dc59818 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -170,12 +170,11 @@ Afega stands for "Art-Fiction Electronic Game"
**********************************************************/
-static WRITE16_HANDLER( nmk16_mainram_strange_w )
+WRITE16_MEMBER(nmk16_state::nmk16_mainram_strange_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
UINT16* dstram;
- dstram = state->m_mainram;
+ dstram = m_mainram;
if (!ACCESSING_BITS_8_15)
{
@@ -202,20 +201,20 @@ static MACHINE_RESET( mustang_sound )
MACHINE_RESET_CALL(seibu_sound);
}
-static WRITE16_HANDLER ( ssmissin_sound_w )
+WRITE16_MEMBER(nmk16_state::ssmissin_sound_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
}
-static WRITE8_HANDLER ( ssmissin_soundbank_w )
+WRITE8_MEMBER(nmk16_state::ssmissin_soundbank_w)
{
- UINT8 *rom = space->machine().region("oki1")->base();
+ UINT8 *rom = machine().region("oki1")->base();
int bank;
bank = data & 0x3;
@@ -228,14 +227,13 @@ static WRITE8_HANDLER ( ssmissin_soundbank_w )
-static WRITE16_HANDLER( tharrier_mcu_control_w )
+WRITE16_MEMBER(nmk16_state::tharrier_mcu_control_w)
{
-// logerror("%04x: mcu_control_w %02x\n",cpu_get_pc(&space->device()),data);
+// logerror("%04x: mcu_control_w %02x\n",cpu_get_pc(&space.device()),data);
}
-static READ16_HANDLER( tharrier_mcu_r )
+READ16_MEMBER(nmk16_state::tharrier_mcu_r)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
/* The MCU is mapped as the top byte for byte accesses only,
all word accesses are to the input port */
if (ACCESSING_BITS_8_15 && !ACCESSING_BITS_0_7)
@@ -247,65 +245,65 @@ static READ16_HANDLER( tharrier_mcu_r )
int res;
- if (cpu_get_pc(&space->device())==0x8aa) res = (state->m_mainram[0x9064/2])|0x20; /* Task Force Harrier */
- else if (cpu_get_pc(&space->device())==0x8ce) res = (state->m_mainram[0x9064/2])|0x60; /* Task Force Harrier */
+ if (cpu_get_pc(&space.device())==0x8aa) res = (m_mainram[0x9064/2])|0x20; /* Task Force Harrier */
+ else if (cpu_get_pc(&space.device())==0x8ce) res = (m_mainram[0x9064/2])|0x60; /* Task Force Harrier */
else
{
- res = to_main[state->m_prot_count++];
- if (state->m_prot_count > sizeof(to_main))
- state->m_prot_count = 0;
+ res = to_main[m_prot_count++];
+ if (m_prot_count > sizeof(to_main))
+ m_prot_count = 0;
}
return res << 8;
}
else
- return ~input_port_read(space->machine(), "IN1");
+ return ~input_port_read(machine(), "IN1");
}
-static WRITE16_HANDLER( macross2_sound_reset_w )
+WRITE16_MEMBER(nmk16_state::macross2_sound_reset_w)
{
/* PCB behaviour verified by Corrado Tomaselli at MAME Italia Forum:
every time music changes Z80 is resetted */
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE16_HANDLER( macross2_sound_command_w )
+WRITE16_MEMBER(nmk16_state::macross2_sound_command_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space,0,data & 0xff);
}
-static WRITE8_HANDLER( macross2_sound_bank_w )
+WRITE8_MEMBER(nmk16_state::macross2_sound_bank_w)
{
- UINT8 *rom = space->machine().region("audiocpu")->base() + 0x10000;
+ UINT8 *rom = machine().region("audiocpu")->base() + 0x10000;
- memory_set_bankptr(space->machine(), "bank1",rom + (data & 0x07) * 0x4000);
+ memory_set_bankptr(machine(), "bank1",rom + (data & 0x07) * 0x4000);
}
-static WRITE8_HANDLER( tharrier_oki6295_bankswitch_0_w )
+WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_0_w)
{
- UINT8 *rom = space->machine().region("oki1")->base();
+ UINT8 *rom = machine().region("oki1")->base();
data &= 3;
if (data != 3)
memcpy(rom + 0x20000,rom + 0x40000 + data * 0x20000,0x20000);
}
-static WRITE8_HANDLER( tharrier_oki6295_bankswitch_1_w )
+WRITE8_MEMBER(nmk16_state::tharrier_oki6295_bankswitch_1_w)
{
- UINT8 *rom = space->machine().region("oki2")->base();
+ UINT8 *rom = machine().region("oki2")->base();
data &= 3;
if (data != 3)
memcpy(rom + 0x20000,rom + 0x40000 + data * 0x20000,0x20000);
}
-static WRITE16_HANDLER( afega_soundlatch_w )
+WRITE16_MEMBER(nmk16_state::afega_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data&0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
}
@@ -368,10 +366,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0")
- AM_RANGE(0x080002, 0x080003) AM_READ_LEGACY(tharrier_mcu_r) // AM_READ_PORT("IN1")
+ AM_RANGE(0x080002, 0x080003) AM_READ(tharrier_mcu_r) // AM_READ_PORT("IN1")
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1")
AM_RANGE(0x08000e, 0x08000f) AM_READ_LEGACY(soundlatch2_word_r) /* from Z80 */
- AM_RANGE(0x080010, 0x080011) AM_WRITE_LEGACY(tharrier_mcu_control_w)
+ AM_RANGE(0x080010, 0x080011) AM_WRITE(tharrier_mcu_control_w)
AM_RANGE(0x080012, 0x080013) AM_WRITENOP
// AM_RANGE(0x080014, 0x080015) AM_WRITE_LEGACY(nmk_flipscreen_w)
// AM_RANGE(0x080018, 0x080019) AM_WRITE_LEGACY(nmk_tilebank_w)
@@ -382,7 +380,7 @@ static ADDRESS_MAP_START( tharrier_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM /* Unused txvideoram area? */
AM_RANGE(0x09d000, 0x09d7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram)
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_BASE(m_mainram)
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(m_mainram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tharrier_sound_map, AS_PROGRAM, 8, nmk16_state )
@@ -391,8 +389,8 @@ static ADDRESS_MAP_START( tharrier_sound_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0xf000, 0xf000) AM_READWRITE_LEGACY(soundlatch_r,soundlatch2_w)
AM_RANGE(0xf400, 0xf400) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xf500, 0xf500) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
- AM_RANGE(0xf600, 0xf600) AM_WRITE_LEGACY(tharrier_oki6295_bankswitch_0_w)
- AM_RANGE(0xf700, 0xf700) AM_WRITE_LEGACY(tharrier_oki6295_bankswitch_1_w)
+ AM_RANGE(0xf600, 0xf600) AM_WRITE(tharrier_oki6295_bankswitch_0_w)
+ AM_RANGE(0xf700, 0xf700) AM_WRITE(tharrier_oki6295_bankswitch_1_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tharrier_sound_io_map, AS_IO, 8, nmk16_state )
@@ -417,7 +415,7 @@ static ADDRESS_MAP_START( mustang_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram)
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_BASE(m_mainram)
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(m_mainram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16, nmk16_state )
@@ -434,7 +432,7 @@ static ADDRESS_MAP_START( mustangb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram)
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_BASE(m_mainram)
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(m_mainram)
ADDRESS_MAP_END
@@ -446,13 +444,13 @@ static ADDRESS_MAP_START( twinactn_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x08000e, 0x08000f) AM_NOP
AM_RANGE(0x080014, 0x080015) AM_WRITE_LEGACY(nmk_flipscreen_w)
AM_RANGE(0x080016, 0x080017) AM_WRITENOP // frame number?
- AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(afega_soundlatch_w)
+ AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w)
AM_RANGE(0x088000, 0x0887ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x08c000, 0x08c001) AM_WRITE_LEGACY(mustang_scroll_w)
AM_RANGE(0x08c002, 0x08c087) AM_WRITENOP // ??
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram)
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_BASE(m_mainram)
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(m_mainram)
ADDRESS_MAP_END
@@ -511,23 +509,23 @@ life,but the game looks pretty much hard without it.
#define PROT_JSR(_offs_,_protvalue_,_pc_) \
- if(state->m_mainram[(_offs_)/2] == _protvalue_) \
+ if(m_mainram[(_offs_)/2] == _protvalue_) \
{ \
- state->m_mainram[(_offs_)/2] = 0xffff; /*(MCU job done)*/ \
- state->m_mainram[(_offs_+2-0x10)/2] = 0x4ef9;/*JMP*/\
- state->m_mainram[(_offs_+4-0x10)/2] = 0x0000;/*HI-DWORD*/\
- state->m_mainram[(_offs_+6-0x10)/2] = _pc_; /*LO-DWORD*/\
+ m_mainram[(_offs_)/2] = 0xffff; /*(MCU job done)*/ \
+ m_mainram[(_offs_+2-0x10)/2] = 0x4ef9;/*JMP*/\
+ m_mainram[(_offs_+4-0x10)/2] = 0x0000;/*HI-DWORD*/\
+ m_mainram[(_offs_+6-0x10)/2] = _pc_; /*LO-DWORD*/\
} \
#define PROT_INPUT(_offs_,_protvalue_,_protinput_,_input_) \
- if(state->m_mainram[_offs_] == _protvalue_) \
+ if(m_mainram[_offs_] == _protvalue_) \
{ \
- state->m_mainram[_protinput_] = ((_input_ & 0xffff0000)>>16);\
- state->m_mainram[_protinput_+1] = (_input_ & 0x0000ffff);\
+ m_mainram[_protinput_] = ((_input_ & 0xffff0000)>>16);\
+ m_mainram[_protinput_+1] = (_input_ & 0x0000ffff);\
}
#ifdef UNUSED_FUNCTION
-static READ16_HANDLER( mcu_shared_r )
+READ16_MEMBER(nmk16_state::mcu_shared_r)
{
return nmk16_mcu_shared_ram[offset];
}
@@ -597,10 +595,9 @@ f0 - player bombs (8c36)
*/
-static WRITE16_HANDLER( hachamf_mainram_w )
+WRITE16_MEMBER(nmk16_state::hachamf_mainram_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
- COMBINE_DATA(&state->m_mainram[offset]);
+ COMBINE_DATA(&m_mainram[offset]);
switch(offset)
{
@@ -641,13 +638,13 @@ static WRITE16_HANDLER( hachamf_mainram_w )
case 0xe1fe/2: PROT_JSR(0xe1fe,0x8026,0x8c36);//8c36
PROT_JSR(0xe1fe,0x8016,0xd620); break; //unused
case 0xef00/2:
- if(state->m_mainram[0xef00/2] == 0x60fe)
+ if(m_mainram[0xef00/2] == 0x60fe)
{
- state->m_mainram[0xef00/2] = 0x0000; //this is the coin counter
- state->m_mainram[0xef02/2] = 0x0000;
- state->m_mainram[0xef04/2] = 0x4ef9;
- state->m_mainram[0xef06/2] = 0x0000;
- state->m_mainram[0xef08/2] = 0x7dc2;
+ m_mainram[0xef00/2] = 0x0000; //this is the coin counter
+ m_mainram[0xef02/2] = 0x0000;
+ m_mainram[0xef04/2] = 0x4ef9;
+ m_mainram[0xef06/2] = 0x0000;
+ m_mainram[0xef08/2] = 0x7dc2;
}
break;
}
@@ -670,15 +667,14 @@ static ADDRESS_MAP_START( hachamf_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram)
/* Main RAM, inc sprites, shared with MCU */
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(hachamf_mainram_w) AM_BASE(m_mainram) // ram is shared with MCU
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(hachamf_mainram_w) AM_BASE(m_mainram) // ram is shared with MCU
ADDRESS_MAP_END
-static WRITE16_HANDLER( tdragon_mainram_w )
+WRITE16_MEMBER(nmk16_state::tdragon_mainram_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
- COMBINE_DATA(&state->m_mainram[offset]);
+ COMBINE_DATA(&m_mainram[offset]);
switch(offset)
{
@@ -719,13 +715,13 @@ static WRITE16_HANDLER( tdragon_mainram_w )
case 0xe7fe/2: PROT_JSR(0xe7fe,0x8026,0xa57a);
PROT_JSR(0xe7fe,0x8016,0xa57a); break;
case 0xef00/2:
- if(state->m_mainram[0xef00/2] == 0x60fe)
+ if(m_mainram[0xef00/2] == 0x60fe)
{
- state->m_mainram[0xef00/2] = 0x0000; //this is the coin counter
- state->m_mainram[0xef02/2] = 0x0000;
- state->m_mainram[0xef04/2] = 0x4ef9;
- state->m_mainram[0xef06/2] = 0x0000;
- state->m_mainram[0xef08/2] = 0x92f4;
+ m_mainram[0xef00/2] = 0x0000; //this is the coin counter
+ m_mainram[0xef02/2] = 0x0000;
+ m_mainram[0xef04/2] = 0x4ef9;
+ m_mainram[0xef06/2] = 0x0000;
+ m_mainram[0xef08/2] = 0x92f4;
}
break;
}
@@ -887,9 +883,9 @@ static ADDRESS_MAP_START( tdragon_map, AS_PROGRAM, 16, nmk16_state )
// AM_RANGE(0x0b0000, 0x0b7fff) AM_RAM /* Work RAM */
// AM_RANGE(0x0b8000, 0x0b8fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Sprite RAM */
// AM_RANGE(0x0b9000, 0x0bdfff) AM_RAM AM_BASE_LEGACY(&nmk16_mcu_work_ram) /* Work RAM */
-// AM_RANGE(0x0be000, 0x0befff) AM_READWRITE_LEGACY(mcu_shared_r,tdragon_mcu_shared_w) AM_BASE_LEGACY(&nmk16_mcu_shared_ram) /* Work RAM */
+// AM_RANGE(0x0be000, 0x0befff) AM_READWRITE(mcu_shared_r,tdragon_mcu_shared_w) AM_BASE_LEGACY(&nmk16_mcu_shared_ram) /* Work RAM */
// AM_RANGE(0x0bf000, 0x0bffff) AM_RAM /* Work RAM */
- AM_RANGE(0x0b0000, 0x0bffff) AM_RAM_WRITE_LEGACY(tdragon_mainram_w ) AM_BASE(m_mainram)
+ AM_RANGE(0x0b0000, 0x0bffff) AM_RAM_WRITE(tdragon_mainram_w ) AM_BASE(m_mainram)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("IN0")
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("IN1")
AM_RANGE(0x0c0008, 0x0c0009) AM_READ_PORT("DSW1")
@@ -930,7 +926,7 @@ static ADDRESS_MAP_START( ssmissin_map, AS_PROGRAM, 16, nmk16_state )
// AM_RANGE(0x0c000e, 0x0c000f) AM_READ_LEGACY(??)
AM_RANGE(0x0c0014, 0x0c0015) AM_WRITE_LEGACY(nmk_flipscreen_w) /* Maybe */
AM_RANGE(0x0c0018, 0x0c0019) AM_WRITE_LEGACY(nmk_tilebank_w) /* Tile Bank ? */
- AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE_LEGACY(ssmissin_sound_w)
+ AM_RANGE(0x0c001e, 0x0c001f) AM_WRITE(ssmissin_sound_w)
AM_RANGE(0x0c4000, 0x0c4007) AM_RAM_WRITE_LEGACY(nmk_scroll_w)
AM_RANGE(0x0c8000, 0x0c87ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0cc000, 0x0cffff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
@@ -940,7 +936,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ssmissin_sound_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(ssmissin_soundbank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(ssmissin_soundbank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -979,7 +975,7 @@ static ADDRESS_MAP_START( macross_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x08c000, 0x08c007) AM_RAM_WRITE_LEGACY(nmk_scroll_w)
AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0)
AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram)
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_BASE(m_mainram)
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_BASE(m_mainram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( gunnail_map, AS_PROGRAM, 16, nmk16_state )
@@ -1010,9 +1006,9 @@ static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x10000a, 0x10000b) AM_READ_PORT("DSW2")
AM_RANGE(0x10000e, 0x10000f) AM_READ_LEGACY(soundlatch2_word_r) /* from Z80 */
AM_RANGE(0x100014, 0x100015) AM_WRITE_LEGACY(nmk_flipscreen_w)
- AM_RANGE(0x100016, 0x100017) AM_WRITE_LEGACY(macross2_sound_reset_w) /* Z80 reset */
+ AM_RANGE(0x100016, 0x100017) AM_WRITE(macross2_sound_reset_w) /* Z80 reset */
AM_RANGE(0x100018, 0x100019) AM_WRITE_LEGACY(nmk_tilebank_w)
- AM_RANGE(0x10001e, 0x10001f) AM_WRITE_LEGACY(macross2_sound_command_w) /* to Z80 */
+ AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */
AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_BASE(m_gunnail_scrollram)
@@ -1038,7 +1034,7 @@ static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x100014, 0x100015) AM_WRITE_LEGACY(nmk_flipscreen_w)
AM_RANGE(0x100016, 0x100017) AM_WRITENOP /* IRQ enable or z80 sound reset like in Macross 2? */
AM_RANGE(0x100018, 0x100019) AM_WRITE_LEGACY(nmk_tilebank_w)
- AM_RANGE(0x10001e, 0x10001f) AM_WRITE_LEGACY(macross2_sound_command_w) /* to Z80 */
+ AM_RANGE(0x10001e, 0x10001f) AM_WRITE(macross2_sound_command_w) /* to Z80 */
AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x130000, 0x1301ff) AM_RAM AM_BASE(m_gunnail_scrollram)
@@ -1062,17 +1058,16 @@ ADDRESS_MAP_END
ff,ff,ff,ff 20,00,f8,02 20,00,f8,04 00,04,d8,09
0f,00,00,ff 00,00,18,03 a0,13,fe,05 40,1e,1b,09
*/
-static WRITE8_HANDLER( okibank_w )
+WRITE8_MEMBER(nmk16_state::okibank_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
- state->m_mask[offset] |= 1 << (data & 0x1f);
- popmessage("%x %x %x %x - %x %x %x %x",state->m_mask[0],state->m_mask[1],state->m_mask[2],state->m_mask[3],state->m_mask[4],state->m_mask[5],state->m_mask[6],state->m_mask[7]);
+ m_mask[offset] |= 1 << (data & 0x1f);
+ popmessage("%x %x %x %x - %x %x %x %x",m_mask[0],m_mask[1],m_mask[2],m_mask[3],m_mask[4],m_mask[5],m_mask[6],m_mask[7]);
}
#endif
-static WRITE8_HANDLER( raphero_sound_rombank_w )
+WRITE8_MEMBER(nmk16_state::raphero_sound_rombank_w)
{
- memory_set_bankptr(space->machine(), "bank1",space->machine().region("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000);
+ memory_set_bankptr(machine(), "bank1",machine().region("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000);
}
static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8, nmk16_state )
@@ -1082,8 +1077,8 @@ static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0xc800, 0xc800) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xc808, 0xc808) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
AM_RANGE(0xc810, 0xc817) AM_DEVWRITE_LEGACY("nmk112", nmk112_okibank_w)
-// AM_RANGE(0xc810, 0xc817) AM_WRITE_LEGACY(okibank_w)
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(raphero_sound_rombank_w)
+// AM_RANGE(0xc810, 0xc817) AM_WRITE(okibank_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(raphero_sound_rombank_w)
AM_RANGE(0xd800, 0xd800) AM_READWRITE_LEGACY(soundlatch_r, soundlatch2_w) // main cpu
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -1093,7 +1088,7 @@ static ADDRESS_MAP_START( macross2_sound_map, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0xa000, 0xa000) AM_READNOP /* IRQ ack? watchdog? */
AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xe001, 0xe001) AM_WRITE_LEGACY(macross2_sound_bank_w)
+ AM_RANGE(0xe001, 0xe001) AM_WRITE(macross2_sound_bank_w)
AM_RANGE(0xf000, 0xf000) AM_READWRITE_LEGACY(soundlatch_r,soundlatch2_w) /* from 68000 */
ADDRESS_MAP_END
@@ -4575,10 +4570,11 @@ static DRIVER_INIT( bjtwin )
}
/* NO NMK004, it has a PIC instead */
-static READ16_HANDLER( vandykeb_r ) { return 0x0000; }
+READ16_MEMBER(nmk16_state::vandykeb_r){ return 0x0000; }
static DRIVER_INIT (vandykeb)
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x08000e, 0x08000f, FUNC(vandykeb_r) );
+ nmk16_state *state = machine.driver_data<nmk16_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x08000e, 0x08000f, read16_delegate(FUNC(nmk16_state::vandykeb_r),state));
machine.device("maincpu")->memory().space(AS_PROGRAM)->nop_write(0x08001e, 0x08001f);
}
@@ -4591,7 +4587,7 @@ static DRIVER_INIT (vandykeb)
***************************************************************************/
-static READ16_HANDLER( afega_unknown_r )
+READ16_MEMBER(nmk16_state::afega_unknown_r)
{
/* This fixes the text in Service Mode. */
return 0x0100;
@@ -4599,16 +4595,14 @@ static READ16_HANDLER( afega_unknown_r )
-static WRITE16_HANDLER( afega_scroll0_w )
+WRITE16_MEMBER(nmk16_state::afega_scroll0_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
- COMBINE_DATA(&state->m_afega_scroll_0[offset]);
+ COMBINE_DATA(&m_afega_scroll_0[offset]);
}
-static WRITE16_HANDLER( afega_scroll1_w )
+WRITE16_MEMBER(nmk16_state::afega_scroll1_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
- COMBINE_DATA(&state->m_afega_scroll_1[offset]);
+ COMBINE_DATA(&m_afega_scroll_1[offset]);
}
/*
@@ -4624,22 +4618,22 @@ static ADDRESS_MAP_START( afega, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080000, 0x080001) AM_READ_PORT("IN0") // Buttons
AM_RANGE(0x080002, 0x080003) AM_READ_PORT("IN1") // P1 + P2
AM_RANGE(0x080004, 0x080005) AM_READ_PORT("DSW1") // 2 x DSW
- AM_RANGE(0x080012, 0x080013) AM_READ_LEGACY(afega_unknown_r)
+ AM_RANGE(0x080012, 0x080013) AM_READ(afega_unknown_r)
AM_RANGE(0x080000, 0x08001d) AM_WRITEONLY //
- AM_RANGE(0x08001e, 0x08001f) AM_WRITE_LEGACY(afega_soundlatch_w) // To Sound CPU
-/**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE_LEGACY(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
-/**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE_LEGACY(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
+ AM_RANGE(0x08001e, 0x08001f) AM_WRITE(afega_soundlatch_w) // To Sound CPU
+/**/AM_RANGE(0x084000, 0x084003) AM_RAM_WRITE(afega_scroll0_w) // Scroll on redhawkb (mirror or changed?..)
+/**/AM_RANGE(0x084004, 0x084007) AM_RAM_WRITE(afega_scroll1_w) // Scroll on redhawkb (mirror or changed?..)
AM_RANGE(0x080020, 0x087fff) AM_WRITEONLY //
/**/AM_RANGE(0x088000, 0x0885ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x088600, 0x08bfff) AM_WRITEONLY //
-/**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE_LEGACY(afega_scroll0_w) AM_BASE(m_afega_scroll_0) // Scroll
-/**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE_LEGACY(afega_scroll1_w) AM_BASE(m_afega_scroll_1) //
+/**/AM_RANGE(0x08c000, 0x08c003) AM_RAM_WRITE(afega_scroll0_w) AM_BASE(m_afega_scroll_0) // Scroll
+/**/AM_RANGE(0x08c004, 0x08c007) AM_RAM_WRITE(afega_scroll1_w) AM_BASE(m_afega_scroll_1) //
AM_RANGE(0x08c008, 0x08ffff) AM_WRITEONLY //
/**/AM_RANGE(0x090000, 0x093fff) AM_RAM_WRITE_LEGACY(nmk_bgvideoram0_w) AM_BASE(m_nmk_bgvideoram0) // Layer 0 // ?
/**/AM_RANGE(0x09c000, 0x09c7ff) AM_RAM_WRITE_LEGACY(nmk_txvideoram_w) AM_BASE(m_nmk_txvideoram) // Layer 1
- AM_RANGE(0x0c0000, 0x0cffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_SHARE("share1") AM_BASE(m_mainram)
- AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE_LEGACY(nmk16_mainram_strange_w) AM_SHARE("share1")
+ AM_RANGE(0x0c0000, 0x0cffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("share1") AM_BASE(m_mainram)
+ AM_RANGE(0x0f0000, 0x0fffff) AM_RAM_WRITE(nmk16_mainram_strange_w) AM_SHARE("share1")
ADDRESS_MAP_END
@@ -4647,28 +4641,26 @@ ADDRESS_MAP_END
#if 0
// The high byte of the word written is the address to write to (byte offset), the low byte is data
-static WRITE16_HANDLER( twinactn_scroll0_w )
+WRITE16_MEMBER(nmk16_state::twinactn_scroll0_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
int byte = ((data >> 8) & 3) ^ 2;
int bit = ((byte & 1) ? 0 : 8);
- state->m_afega_scroll_0[byte / 2] = (state->m_afega_scroll_0[byte / 2] & (0xff << (8-bit))) | ((data & 0xff) << bit);
+ m_afega_scroll_0[byte / 2] = (m_afega_scroll_0[byte / 2] & (0xff << (8-bit))) | ((data & 0xff) << bit);
}
-static WRITE16_HANDLER( twinactn_scroll1_w )
+WRITE16_MEMBER(nmk16_state::twinactn_scroll1_w)
{
- nmk16_state *state = space->machine().driver_data<nmk16_state>();
int byte = ((data >> 8) & 3) ^ 2;
int bit = ((byte & 1) ? 0 : 8);
- state->m_afega_scroll_1[byte / 2] = (state->m_afega_scroll_1[byte / 2] & (0xff << (8-bit))) | ((data & 0xff) << bit);
+ m_afega_scroll_1[byte / 2] = (m_afega_scroll_1[byte / 2] & (0xff << (8-bit))) | ((data & 0xff) << bit);
}
-static WRITE16_HANDLER( twinactn_flipscreen_w )
+WRITE16_MEMBER(nmk16_state::twinactn_flipscreen_w)
{
if (ACCESSING_BITS_0_7)
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
if (data & (~1))
- logerror("%06x: unknown flip screen bit written %04x\n", cpu_get_pc(&space->device()), data);
+ logerror("%06x: unknown flip screen bit written %04x\n", cpu_get_pc(&space.device()), data);
}
#endif
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index 2d6f417aec5..0d7ae6d5d07 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -717,23 +717,21 @@ static WRITE8_DEVICE_HANDLER( counterlamps_w )
/*game waits for /OBF signal (bit 7) to be set.*/
-static READ8_HANDLER( test_r )
+READ8_MEMBER(norautp_state::test_r)
{
return 0xff;
}
-static READ8_HANDLER( vram_data_r )
+READ8_MEMBER(norautp_state::vram_data_r)
//static READ8_DEVICE_HANDLER( vram_data_r )
{
- norautp_state *state = space->machine().driver_data<norautp_state>();
- return state->m_np_vram[state->m_np_addr];
+ return m_np_vram[m_np_addr];
}
-static WRITE8_HANDLER( vram_data_w )
+WRITE8_MEMBER(norautp_state::vram_data_w)
//static WRITE8_DEVICE_HANDLER( vram_data_w )
{
- norautp_state *state = space->machine().driver_data<norautp_state>();
- state->m_np_vram[state->m_np_addr] = data & 0xff;
+ m_np_vram[m_np_addr] = data & 0xff;
/* trigger 8255-2 port C bit 7 (/OBF) */
// i8255a_pc7_w(device->machine().device("ppi8255_2"), 0);
@@ -741,15 +739,14 @@ static WRITE8_HANDLER( vram_data_w )
}
-static WRITE8_HANDLER( vram_addr_w )
+WRITE8_MEMBER(norautp_state::vram_addr_w)
//static WRITE8_DEVICE_HANDLER( vram_addr_w )
{
- norautp_state *state = space->machine().driver_data<norautp_state>();
- state->m_np_addr = data;
+ m_np_addr = data;
}
/* game waits for bit 4 (0x10) to be reset.*/
-static READ8_HANDLER( test2_r )
+READ8_MEMBER(norautp_state::test2_r)
{
return 0x00;
}
@@ -820,10 +817,10 @@ static ADDRESS_MAP_START( norautp_portmap, AS_IO, 8, norautp_state )
AM_RANGE(0x60, 0x63) AM_MIRROR(0x1c) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
AM_RANGE(0xa0, 0xa3) AM_MIRROR(0x1c) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
// AM_RANGE(0xc0, 0xc3) AM_MIRROR(0x3c) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write)
- AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3c) AM_READWRITE_LEGACY(vram_data_r, vram_data_w)
- AM_RANGE(0xc1, 0xc1) AM_MIRROR(0x3c) AM_WRITE_LEGACY(vram_addr_w)
- AM_RANGE(0xc2, 0xc2) AM_MIRROR(0x3c) AM_READ_LEGACY(test_r)
- AM_RANGE(0xef, 0xef) AM_READ_LEGACY(test2_r)
+ AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x3c) AM_READWRITE(vram_data_r, vram_data_w)
+ AM_RANGE(0xc1, 0xc1) AM_MIRROR(0x3c) AM_WRITE(vram_addr_w)
+ AM_RANGE(0xc2, 0xc2) AM_MIRROR(0x3c) AM_READ(test_r)
+ AM_RANGE(0xef, 0xef) AM_READ(test2_r)
ADDRESS_MAP_END
/*
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index 0a556ce6b2f..d49a151b1f4 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -138,18 +138,16 @@ static CUSTOM_INPUT( ninjakun_io_A002_ctrl_r )
return state->m_ninjakun_io_a002_ctrl;
}
-static WRITE8_HANDLER( ninjakun_cpu1_io_A002_w )
+WRITE8_MEMBER(nova2001_state::ninjakun_cpu1_io_A002_w)
{
- nova2001_state *state = space->machine().driver_data<nova2001_state>();
- if( data == 0x80 ) state->m_ninjakun_io_a002_ctrl |= 0x01;
- if( data == 0x40 ) state->m_ninjakun_io_a002_ctrl &= ~0x02;
+ if( data == 0x80 ) m_ninjakun_io_a002_ctrl |= 0x01;
+ if( data == 0x40 ) m_ninjakun_io_a002_ctrl &= ~0x02;
}
-static WRITE8_HANDLER( ninjakun_cpu2_io_A002_w )
+WRITE8_MEMBER(nova2001_state::ninjakun_cpu2_io_A002_w)
{
- nova2001_state *state = space->machine().driver_data<nova2001_state>();
- if( data == 0x40 ) state->m_ninjakun_io_a002_ctrl |= 0x02;
- if( data == 0x80 ) state->m_ninjakun_io_a002_ctrl &= ~0x01;
+ if( data == 0x40 ) m_ninjakun_io_a002_ctrl |= 0x02;
+ if( data == 0x80 ) m_ninjakun_io_a002_ctrl &= ~0x01;
}
@@ -202,7 +200,7 @@ static ADDRESS_MAP_START( ninjakun_cpu1_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x8003, 0x8003) AM_DEVREAD_LEGACY("ay2", ay8910_r)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("IN1")
- AM_RANGE(0xa002, 0xa002) AM_READ_PORT("IN2") AM_WRITE_LEGACY(ninjakun_cpu1_io_A002_w)
+ AM_RANGE(0xa002, 0xa002) AM_READ_PORT("IN2") AM_WRITE(ninjakun_cpu1_io_A002_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(pkunwar_flipscreen_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(nova2001_fg_videoram_w) AM_BASE(m_fg_videoram) AM_SHARE("share1")
AM_RANGE(0xc800, 0xcfff) AM_READWRITE_LEGACY(ninjakun_bg_videoram_r, ninjakun_bg_videoram_w) AM_BASE(m_bg_videoram) AM_SHARE("share2")
@@ -221,7 +219,7 @@ static ADDRESS_MAP_START( ninjakun_cpu2_map, AS_PROGRAM, 8, nova2001_state )
AM_RANGE(0x8003, 0x8003) AM_DEVREAD_LEGACY("ay2", ay8910_r)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("IN1")
- AM_RANGE(0xa002, 0xa002) AM_READ_PORT("IN2") AM_WRITE_LEGACY(ninjakun_cpu2_io_A002_w)
+ AM_RANGE(0xa002, 0xa002) AM_READ_PORT("IN2") AM_WRITE(ninjakun_cpu2_io_A002_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(nova2001_flipscreen_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(nova2001_fg_videoram_w) AM_SHARE("share1")
AM_RANGE(0xc800, 0xcfff) AM_READWRITE_LEGACY(ninjakun_bg_videoram_r, ninjakun_bg_videoram_w) AM_SHARE("share2")
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index 484adab3222..ff79cadd601 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -200,63 +200,56 @@ Stephh's additional notes (based on the game Z80 code and some tests) :
#include "includes/nycaptor.h"
-static WRITE8_HANDLER( sub_cpu_halt_w )
+WRITE8_MEMBER(nycaptor_state::sub_cpu_halt_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- device_set_input_line(state->m_subcpu, INPUT_LINE_HALT, (data) ? ASSERT_LINE : CLEAR_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_HALT, (data) ? ASSERT_LINE : CLEAR_LINE);
}
-static READ8_HANDLER( from_snd_r )
+READ8_MEMBER(nycaptor_state::from_snd_r)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- return state->m_snd_data;
+ return m_snd_data;
}
-static WRITE8_HANDLER( to_main_w )
+WRITE8_MEMBER(nycaptor_state::to_main_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- state->m_snd_data = data;
+ m_snd_data = data;
}
-static READ8_HANDLER(nycaptor_sharedram_r)
+READ8_MEMBER(nycaptor_state::nycaptor_sharedram_r)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE8_HANDLER(nycaptor_sharedram_w)
+WRITE8_MEMBER(nycaptor_state::nycaptor_sharedram_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- state->m_sharedram[offset] = data;
+ m_sharedram[offset] = data;
}
-static READ8_HANDLER( nycaptor_b_r )
+READ8_MEMBER(nycaptor_state::nycaptor_b_r)
{
return 1;
}
-static READ8_HANDLER( nycaptor_by_r )
+READ8_MEMBER(nycaptor_state::nycaptor_by_r)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- int port = input_port_read(space->machine(), "LIGHTY");
+ int port = input_port_read(machine(), "LIGHTY");
- if (state->m_gametype == 1)
+ if (m_gametype == 1)
port = 255 - port;
return port - 8;
}
-static READ8_HANDLER( nycaptor_bx_r )
+READ8_MEMBER(nycaptor_state::nycaptor_bx_r)
{
- return (input_port_read(space->machine(), "LIGHTX") + 0x27) | 1;
+ return (input_port_read(machine(), "LIGHTX") + 0x27) | 1;
}
-static WRITE8_HANDLER( sound_cpu_reset_w )
+WRITE8_MEMBER(nycaptor_state::sound_cpu_reset_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE);
}
@@ -287,27 +280,25 @@ static TIMER_CALLBACK( nmi_callback )
state->m_pending_nmi = 1;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(nycaptor_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- space->machine().scheduler().synchronize(FUNC(nmi_callback), data);
+ machine().scheduler().synchronize(FUNC(nmi_callback), data);
}
-static WRITE8_HANDLER( nmi_disable_w )
+WRITE8_MEMBER(nycaptor_state::nmi_disable_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- state->m_sound_nmi_enable = 0;
+ m_sound_nmi_enable = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(nycaptor_state::nmi_enable_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- state->m_sound_nmi_enable = 1;
+ m_sound_nmi_enable = 1;
- if (state->m_pending_nmi)
+ if (m_pending_nmi)
{
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
- state->m_pending_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ m_pending_nmi = 0;
}
}
@@ -332,17 +323,15 @@ static const msm5232_interface msm5232_config =
};
-static READ8_HANDLER ( nycaptor_generic_control_r )
+READ8_MEMBER(nycaptor_state::nycaptor_generic_control_r)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- return state->m_generic_control_reg;
+ return m_generic_control_reg;
}
-static WRITE8_HANDLER( nycaptor_generic_control_w )
+WRITE8_MEMBER(nycaptor_state::nycaptor_generic_control_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
- state->m_generic_control_reg = data;
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() + 0x10000 + ((data&0x08)>>3)*0x4000 );
+ m_generic_control_reg = data;
+ memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + ((data&0x08)>>3)*0x4000 );
}
static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state )
@@ -350,11 +339,11 @@ static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xc7ff) AM_READWRITE_LEGACY(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(nycaptor_mcu_r, nycaptor_mcu_w)
- AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(sub_cpu_halt_w)
- AM_RANGE(0xd002, 0xd002) AM_READWRITE_LEGACY(nycaptor_generic_control_r, nycaptor_generic_control_w) /* bit 3 - memory bank at 0x8000-0xbfff */
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
+ AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w)
+ AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, nycaptor_generic_control_w) /* bit 3 - memory bank at 0x8000-0xbfff */
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
AM_RANGE(0xd401, 0xd401) AM_READNOP
- AM_RANGE(0xd403, 0xd403) AM_WRITE_LEGACY(sound_cpu_reset_w)
+ AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
@@ -368,7 +357,7 @@ static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE_LEGACY(nycaptor_palette_r, nycaptor_palette_w)
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE_LEGACY(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE(m_sharedram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state )
@@ -383,11 +372,11 @@ static ADDRESS_MAP_START( nycaptor_slave_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0xdca0, 0xdcbf) AM_WRITE_LEGACY(nycaptor_scrlram_w) AM_BASE(m_scrlram)
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE_LEGACY(nycaptor_palette_r, nycaptor_palette_w)
- AM_RANGE(0xdf00, 0xdf00) AM_READ_LEGACY(nycaptor_bx_r)
- AM_RANGE(0xdf01, 0xdf01) AM_READ_LEGACY(nycaptor_by_r)
- AM_RANGE(0xdf02, 0xdf02) AM_READ_LEGACY(nycaptor_b_r)
+ AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r)
+ AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r)
+ AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r)
AM_RANGE(0xdf03, 0xdf03) AM_READ_LEGACY(nycaptor_gfxctrl_r) AM_WRITENOP/* ? gfx control ? */
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(nycaptor_sharedram_r, nycaptor_sharedram_w)
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8, nycaptor_state )
@@ -399,9 +388,9 @@ static ADDRESS_MAP_START( nycaptor_sound_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0xca00, 0xca00) AM_WRITENOP
AM_RANGE(0xcb00, 0xcb00) AM_WRITENOP
AM_RANGE(0xcc00, 0xcc00) AM_WRITENOP
- AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(soundlatch_r, to_main_w)
- AM_RANGE(0xd200, 0xd200) AM_READNOP AM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(nmi_disable_w)
+ AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(to_main_w)
+ AM_RANGE(0xd200, 0xd200) AM_READNOP AM_WRITE(nmi_enable_w)
+ AM_RANGE(0xd400, 0xd400) AM_WRITE(nmi_disable_w)
AM_RANGE(0xd600, 0xd600) AM_WRITENOP
AM_RANGE(0xe000, 0xefff) AM_NOP
ADDRESS_MAP_END
@@ -422,33 +411,32 @@ ADDRESS_MAP_END
/* Cycle Shooting */
-static READ8_HANDLER(cyclshtg_mcu_status_r)
+READ8_MEMBER(nycaptor_state::cyclshtg_mcu_status_r)
{
return 0xff;
}
-static READ8_HANDLER(cyclshtg_mcu_r)
+READ8_MEMBER(nycaptor_state::cyclshtg_mcu_r)
{
return 7;
}
-static WRITE8_HANDLER(cyclshtg_mcu_w)
+WRITE8_MEMBER(nycaptor_state::cyclshtg_mcu_w)
{
}
-static READ8_HANDLER(cyclshtg_mcu_status_r1)
+READ8_MEMBER(nycaptor_state::cyclshtg_mcu_status_r1)
{
- return space->machine().rand();
+ return machine().rand();
}
-static WRITE8_HANDLER( cyclshtg_generic_control_w )
+WRITE8_MEMBER(nycaptor_state::cyclshtg_generic_control_w)
{
- nycaptor_state *state = space->machine().driver_data<nycaptor_state>();
int bank = (data >> 2) & 3;
- state->m_generic_control_reg = data;
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() + 0x10000 + bank*0x4000 );
+ m_generic_control_reg = data;
+ memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + bank*0x4000 );
}
@@ -456,25 +444,25 @@ static ADDRESS_MAP_START( cyclshtg_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE_LEGACY(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
- AM_RANGE(0xd000, 0xd000) AM_READWRITE_LEGACY(cyclshtg_mcu_r, cyclshtg_mcu_w)
- AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(sub_cpu_halt_w)
- AM_RANGE(0xd002, 0xd002) AM_READWRITE_LEGACY(nycaptor_generic_control_r, cyclshtg_generic_control_w)
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd403, 0xd403) AM_WRITE_LEGACY(sound_cpu_reset_w)
+ AM_RANGE(0xd000, 0xd000) AM_READWRITE(cyclshtg_mcu_r, cyclshtg_mcu_w)
+ AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w)
+ AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, cyclshtg_generic_control_w)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
- AM_RANGE(0xd805, 0xd805) AM_READ_LEGACY(cyclshtg_mcu_status_r)
+ AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r)
AM_RANGE(0xd806, 0xd806) AM_READNOP
- AM_RANGE(0xd807, 0xd807) AM_READ_LEGACY(cyclshtg_mcu_status_r)
+ AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE_LEGACY(nycaptor_spriteram_r, nycaptor_spriteram_w)
AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE_LEGACY(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_BASE(m_scrlram)
AM_RANGE(0xdce1, 0xdce1) AM_WRITENOP
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE_LEGACY(nycaptor_palette_r, nycaptor_palette_w)
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE_LEGACY(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE(m_sharedram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state )
@@ -488,42 +476,42 @@ static ADDRESS_MAP_START( cyclshtg_slave_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE_LEGACY(nycaptor_spriteram_r, nycaptor_spriteram_w)
AM_RANGE(0xdca0, 0xdcbf) AM_WRITE_LEGACY(nycaptor_scrlram_w) AM_BASE(m_scrlram)
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE_LEGACY(nycaptor_palette_r, nycaptor_palette_w)
- AM_RANGE(0xdf00, 0xdf00) AM_READ_LEGACY(nycaptor_bx_r)
- AM_RANGE(0xdf01, 0xdf01) AM_READ_LEGACY(nycaptor_by_r)
- AM_RANGE(0xdf02, 0xdf02) AM_READ_LEGACY(nycaptor_b_r)
+ AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r)
+ AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r)
+ AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r)
AM_RANGE(0xdf03, 0xdf03) AM_READ_LEGACY(nycaptor_gfxctrl_r)
AM_RANGE(0xdf03, 0xdf03) AM_WRITENOP
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(nycaptor_sharedram_r, nycaptor_sharedram_w)
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
ADDRESS_MAP_END
-static READ8_HANDLER( unk_r )
+READ8_MEMBER(nycaptor_state::unk_r)
{
- return space->machine().rand();
+ return machine().rand();
}
static ADDRESS_MAP_START( bronx_master_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xcfff) AM_READWRITE_LEGACY(nycaptor_videoram_r, nycaptor_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
- AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(cyclshtg_mcu_r) AM_WRITENOP
- AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(sub_cpu_halt_w)
- AM_RANGE(0xd002, 0xd002) AM_READWRITE_LEGACY(nycaptor_generic_control_r, cyclshtg_generic_control_w)
- AM_RANGE(0xd400, 0xd400) AM_READWRITE_LEGACY(from_snd_r, sound_command_w)
- AM_RANGE(0xd401, 0xd401) AM_READ_LEGACY(unk_r)
- AM_RANGE(0xd403, 0xd403) AM_WRITE_LEGACY(sound_cpu_reset_w)
+ AM_RANGE(0xd000, 0xd000) AM_READ(cyclshtg_mcu_r) AM_WRITENOP
+ AM_RANGE(0xd001, 0xd001) AM_WRITE(sub_cpu_halt_w)
+ AM_RANGE(0xd002, 0xd002) AM_READWRITE(nycaptor_generic_control_r, cyclshtg_generic_control_w)
+ AM_RANGE(0xd400, 0xd400) AM_READWRITE(from_snd_r, sound_command_w)
+ AM_RANGE(0xd401, 0xd401) AM_READ(unk_r)
+ AM_RANGE(0xd403, 0xd403) AM_WRITE(sound_cpu_reset_w)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("DSWA")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSWB")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
- AM_RANGE(0xd805, 0xd805) AM_READ_LEGACY(cyclshtg_mcu_status_r)
+ AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r)
AM_RANGE(0xd806, 0xd806) AM_READNOP
- AM_RANGE(0xd807, 0xd807) AM_READ_LEGACY(cyclshtg_mcu_status_r)
+ AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE_LEGACY(nycaptor_spriteram_r, nycaptor_spriteram_w)
AM_RANGE(0xdca0, 0xdcbf) AM_READWRITE_LEGACY(nycaptor_scrlram_r, nycaptor_scrlram_w) AM_BASE(m_scrlram)
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE_LEGACY(nycaptor_palette_r, nycaptor_palette_w)
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE_LEGACY(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w) AM_BASE(m_sharedram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state )
@@ -534,16 +522,16 @@ static ADDRESS_MAP_START( bronx_slave_map, AS_PROGRAM, 8, nycaptor_state )
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSWC")
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("IN0")
AM_RANGE(0xd804, 0xd804) AM_READ_PORT("IN1")
- AM_RANGE(0xd805, 0xd805) AM_READ_LEGACY(cyclshtg_mcu_status_r1)
- AM_RANGE(0xd807, 0xd807) AM_READ_LEGACY(cyclshtg_mcu_status_r)
+ AM_RANGE(0xd805, 0xd805) AM_READ(cyclshtg_mcu_status_r1)
+ AM_RANGE(0xd807, 0xd807) AM_READ(cyclshtg_mcu_status_r)
AM_RANGE(0xdc00, 0xdc9f) AM_READWRITE_LEGACY(nycaptor_spriteram_r, nycaptor_spriteram_w)
AM_RANGE(0xdca0, 0xdcbf) AM_WRITE_LEGACY(nycaptor_scrlram_w) AM_BASE(m_scrlram)
AM_RANGE(0xdd00, 0xdeff) AM_READWRITE_LEGACY(nycaptor_palette_r, nycaptor_palette_w)
- AM_RANGE(0xdf00, 0xdf00) AM_READ_LEGACY(nycaptor_bx_r)
- AM_RANGE(0xdf01, 0xdf01) AM_READ_LEGACY(nycaptor_by_r)
- AM_RANGE(0xdf02, 0xdf02) AM_READ_LEGACY(nycaptor_b_r)
+ AM_RANGE(0xdf00, 0xdf00) AM_READ(nycaptor_bx_r)
+ AM_RANGE(0xdf01, 0xdf01) AM_READ(nycaptor_by_r)
+ AM_RANGE(0xdf02, 0xdf02) AM_READ(nycaptor_b_r)
AM_RANGE(0xdf03, 0xdf03) AM_READWRITE_LEGACY(nycaptor_gfxctrl_r, nycaptor_gfxctrl_w)
- AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(nycaptor_sharedram_r, nycaptor_sharedram_w)
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(nycaptor_sharedram_r, nycaptor_sharedram_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bronx_slave_io_map, AS_IO, 8, nycaptor_state )
diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c
index c76edb5944f..eb062f79318 100644
--- a/src/mame/drivers/ohmygod.c
+++ b/src/mame/drivers/ohmygod.c
@@ -17,25 +17,24 @@ Notes:
#include "includes/ohmygod.h"
-static WRITE16_HANDLER( ohmygod_ctrl_w )
+WRITE16_MEMBER(ohmygod_state::ohmygod_ctrl_w)
{
- ohmygod_state *state = space->machine().driver_data<ohmygod_state>();
if (ACCESSING_BITS_0_7)
{
- UINT8 *rom = space->machine().region("oki")->base();
+ UINT8 *rom = machine().region("oki")->base();
/* ADPCM bank switch */
- if (state->m_sndbank != ((data >> state->m_adpcm_bank_shift) & 0x0f))
+ if (m_sndbank != ((data >> m_adpcm_bank_shift) & 0x0f))
{
- state->m_sndbank = (data >> state->m_adpcm_bank_shift) & 0x0f;
- memcpy(rom + 0x20000, rom + 0x40000 + 0x20000 * state->m_sndbank, 0x20000);
+ m_sndbank = (data >> m_adpcm_bank_shift) & 0x0f;
+ memcpy(rom + 0x20000, rom + 0x40000 + 0x20000 * m_sndbank, 0x20000);
}
}
if (ACCESSING_BITS_8_15)
{
- coin_counter_w(space->machine(), 0, data & 0x1000);
- coin_counter_w(space->machine(), 1, data & 0x2000);
+ coin_counter_w(machine(), 0, data & 0x1000);
+ coin_counter_w(machine(), 1, data & 0x2000);
}
}
@@ -52,7 +51,7 @@ static ADDRESS_MAP_START( ohmygod_map, AS_PROGRAM, 16, ohmygod_state )
AM_RANGE(0x708000, 0x70ffff) AM_RAM /* Work RAM */
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("P1")
AM_RANGE(0x800002, 0x800003) AM_READ_PORT("P2")
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(ohmygod_ctrl_w)
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(ohmygod_ctrl_w)
AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("DSW1")
AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW2")
AM_RANGE(0xb00000, 0xb00001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index d9aa52fc908..736206ca956 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -39,22 +39,21 @@ Memo:
#include "machine/nvram.h"
-static WRITE8_HANDLER( ojankohs_rombank_w )
+WRITE8_MEMBER(ojankohs_state::ojankohs_rombank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x3f);
+ memory_set_bank(machine(), "bank1", data & 0x3f);
}
-static WRITE8_HANDLER( ojankoy_rombank_w )
+WRITE8_MEMBER(ojankohs_state::ojankoy_rombank_w)
{
- ojankohs_state *state = space->machine().driver_data<ojankohs_state>();
- memory_set_bank(space->machine(), "bank1", data & 0x1f);
+ memory_set_bank(machine(), "bank1", data & 0x1f);
- state->m_adpcm_reset = BIT(data, 5);
- if (!state->m_adpcm_reset)
- state->m_vclk_left = 0;
+ m_adpcm_reset = BIT(data, 5);
+ if (!m_adpcm_reset)
+ m_vclk_left = 0;
- msm5205_reset_w(state->m_msm, !state->m_adpcm_reset);
+ msm5205_reset_w(m_msm, !m_adpcm_reset);
}
static WRITE8_DEVICE_HANDLER( ojankohs_adpcm_reset_w )
@@ -66,11 +65,10 @@ static WRITE8_DEVICE_HANDLER( ojankohs_adpcm_reset_w )
msm5205_reset_w(device, !state->m_adpcm_reset);
}
-static WRITE8_HANDLER( ojankohs_msm5205_w )
+WRITE8_MEMBER(ojankohs_state::ojankohs_msm5205_w)
{
- ojankohs_state *state = space->machine().driver_data<ojankohs_state>();
- state->m_adpcm_data = data;
- state->m_vclk_left = 2;
+ m_adpcm_data = data;
+ m_vclk_left = 2;
}
static void ojankohs_adpcm_int( device_t *device )
@@ -94,54 +92,50 @@ static void ojankohs_adpcm_int( device_t *device )
device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( ojankoc_ctrl_w )
+WRITE8_MEMBER(ojankohs_state::ojankoc_ctrl_w)
{
- ojankohs_state *state = space->machine().driver_data<ojankohs_state>();
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
- state->m_adpcm_reset = BIT(data, 4);
- msm5205_reset_w(state->m_msm, !BIT(data, 4));
- ojankoc_flipscreen(space, data);
+ m_adpcm_reset = BIT(data, 4);
+ msm5205_reset_w(m_msm, !BIT(data, 4));
+ ojankoc_flipscreen(&space, data);
}
-static WRITE8_HANDLER( ojankohs_portselect_w )
+WRITE8_MEMBER(ojankohs_state::ojankohs_portselect_w)
{
- ojankohs_state *state = space->machine().driver_data<ojankohs_state>();
- state->m_portselect = data;
+ m_portselect = data;
}
-static READ8_HANDLER( ojankohs_keymatrix_r )
+READ8_MEMBER(ojankohs_state::ojankohs_keymatrix_r)
{
- ojankohs_state *state = space->machine().driver_data<ojankohs_state>();
int ret;
- switch (state->m_portselect)
+ switch (m_portselect)
{
- case 0x01: ret = input_port_read(space->machine(), "KEY0"); break;
- case 0x02: ret = input_port_read(space->machine(), "KEY1"); break;
- case 0x04: ret = input_port_read(space->machine(), "KEY2"); break;
- case 0x08: ret = input_port_read(space->machine(), "KEY3"); break;
- case 0x10: ret = input_port_read(space->machine(), "KEY4"); break;
+ case 0x01: ret = input_port_read(machine(), "KEY0"); break;
+ case 0x02: ret = input_port_read(machine(), "KEY1"); break;
+ case 0x04: ret = input_port_read(machine(), "KEY2"); break;
+ case 0x08: ret = input_port_read(machine(), "KEY3"); break;
+ case 0x10: ret = input_port_read(machine(), "KEY4"); break;
case 0x20: ret = 0xff; break;
case 0x3f: ret = 0xff;
- ret &= input_port_read(space->machine(), "KEY0");
- ret &= input_port_read(space->machine(), "KEY1");
- ret &= input_port_read(space->machine(), "KEY2");
- ret &= input_port_read(space->machine(), "KEY3");
- ret &= input_port_read(space->machine(), "KEY4");
+ ret &= input_port_read(machine(), "KEY0");
+ ret &= input_port_read(machine(), "KEY1");
+ ret &= input_port_read(machine(), "KEY2");
+ ret &= input_port_read(machine(), "KEY3");
+ ret &= input_port_read(machine(), "KEY4");
break;
default: ret = 0xff;
- logerror("PC:%04X unknown %02X\n", cpu_get_pc(&space->device()), state->m_portselect);
+ logerror("PC:%04X unknown %02X\n", cpu_get_pc(&space.device()), m_portselect);
break;
}
return ret;
}
-static READ8_HANDLER( ojankoc_keymatrix_r )
+READ8_MEMBER(ojankohs_state::ojankoc_keymatrix_r)
{
- ojankohs_state *state = space->machine().driver_data<ojankohs_state>();
int i;
int ret = 0;
static const char *const keynames[2][5] =
@@ -152,11 +146,11 @@ static READ8_HANDLER( ojankoc_keymatrix_r )
for (i = 0; i < 5; i++)
{
- if (!BIT(state->m_portselect, i))
- ret |= input_port_read(space->machine(), keynames[offset][i]);
+ if (!BIT(m_portselect, i))
+ ret |= input_port_read(machine(), keynames[offset][i]);
}
- return (ret & 0x3f) | (input_port_read(space->machine(), offset ? "IN1" : "IN0") & 0xc0);
+ return (ret & 0x3f) | (input_port_read(machine(), offset ? "IN1" : "IN0") & 0xc0);
}
static READ8_DEVICE_HANDLER( ojankohs_ay8910_0_r )
@@ -177,24 +171,24 @@ static READ8_DEVICE_HANDLER( ojankohs_ay8910_1_r )
((input_port_read(device->machine(), "DSW2") & 0x40) >> 5) | ((input_port_read(device->machine(), "DSW2") & 0x80) >> 7));
}
-static READ8_HANDLER( ccasino_dipsw3_r )
+READ8_MEMBER(ojankohs_state::ccasino_dipsw3_r)
{
- return (input_port_read(space->machine(), "DSW3") ^ 0xff); // DIPSW 3
+ return (input_port_read(machine(), "DSW3") ^ 0xff); // DIPSW 3
}
-static READ8_HANDLER( ccasino_dipsw4_r )
+READ8_MEMBER(ojankohs_state::ccasino_dipsw4_r)
{
- return (input_port_read(space->machine(), "DSW4") ^ 0xff); // DIPSW 4
+ return (input_port_read(machine(), "DSW4") ^ 0xff); // DIPSW 4
}
-static WRITE8_HANDLER( ojankoy_coinctr_w )
+WRITE8_MEMBER(ojankohs_state::ojankoy_coinctr_w)
{
- coin_counter_w(space->machine(), 0, BIT(data, 0));
+ coin_counter_w(machine(), 0, BIT(data, 0));
}
-static WRITE8_HANDLER( ccasino_coinctr_w )
+WRITE8_MEMBER(ojankohs_state::ccasino_coinctr_w)
{
- coin_counter_w(space->machine(), 0, BIT(data, 1));
+ coin_counter_w(machine(), 0, BIT(data, 1));
}
@@ -226,12 +220,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ojankohs_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(ojankohs_portselect_w)
- AM_RANGE(0x01, 0x01) AM_READWRITE_LEGACY(ojankohs_keymatrix_r, ojankohs_rombank_w)
+ 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_LEGACY(ojankohs_gfxreg_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("msm", ojankohs_adpcm_reset_w)
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(ojankohs_flipscreen_w)
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(ojankohs_msm5205_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
AM_RANGE(0x06, 0x07) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
AM_RANGE(0x10, 0x10) AM_WRITENOP // unknown
@@ -240,23 +234,23 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ojankoy_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(ojankohs_portselect_w)
- AM_RANGE(0x01, 0x01) AM_READWRITE_LEGACY(ojankohs_keymatrix_r, ojankoy_rombank_w)
- AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") AM_WRITE_LEGACY(ojankoy_coinctr_w)
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE(ojankohs_portselect_w)
+ AM_RANGE(0x01, 0x01) AM_READWRITE(ojankohs_keymatrix_r, ojankoy_rombank_w)
+ AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") AM_WRITE(ojankoy_coinctr_w)
AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(ojankohs_flipscreen_w)
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(ojankohs_msm5205_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
AM_RANGE(0x06, 0x07) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ccasino_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_WRITE_LEGACY(ojankohs_portselect_w)
- AM_RANGE(0x01, 0x01) AM_READWRITE_LEGACY(ojankohs_keymatrix_r, ojankohs_rombank_w)
- AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") AM_WRITE_LEGACY(ccasino_coinctr_w)
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(ccasino_dipsw3_r) AM_DEVWRITE_LEGACY("msm", ojankohs_adpcm_reset_w)
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(ccasino_dipsw4_r, ojankohs_flipscreen_w)
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(ojankohs_msm5205_w)
+ 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(0x04, 0x04) AM_READ(ccasino_dipsw4_r) AM_WRITE_LEGACY(ojankohs_flipscreen_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(ojankohs_msm5205_w)
AM_RANGE(0x06, 0x06) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
AM_RANGE(0x06, 0x07) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
AM_RANGE(0x08, 0x0f) AM_WRITE_LEGACY(ccasino_palette_w) AM_BASE(m_paletteram) // 16bit address access
@@ -267,10 +261,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ojankoc_io_map, AS_IO, 8, ojankohs_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x1f) AM_WRITE_LEGACY(ojankoc_palette_w)
- AM_RANGE(0xf9, 0xf9) AM_WRITE_LEGACY(ojankohs_msm5205_w)
- AM_RANGE(0xfb, 0xfb) AM_WRITE_LEGACY(ojankoc_ctrl_w)
- AM_RANGE(0xfc, 0xfd) AM_READ_LEGACY(ojankoc_keymatrix_r)
- AM_RANGE(0xfd, 0xfd) AM_WRITE_LEGACY(ojankohs_portselect_w)
+ AM_RANGE(0xf9, 0xf9) AM_WRITE(ojankohs_msm5205_w)
+ AM_RANGE(0xfb, 0xfb) AM_WRITE(ojankoc_ctrl_w)
+ AM_RANGE(0xfc, 0xfd) AM_READ(ojankoc_keymatrix_r)
+ AM_RANGE(0xfd, 0xfd) AM_WRITE(ojankohs_portselect_w)
AM_RANGE(0xfe, 0xff) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
AM_RANGE(0xff, 0xff) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index 0bf2e3736ca..4557117eb5b 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -39,60 +39,55 @@ NOTE: An eBay auction of the PCB shows "1996.9.16 PROMAT" on the JAMMA+ adapter
#include "sound/okim6295.h"
#include "sound/3812intf.h"
-static READ16_HANDLER( oneshot_in0_word_r )
+READ16_MEMBER(oneshot_state::oneshot_in0_word_r)
{
- oneshot_state *state = space->machine().driver_data<oneshot_state>();
- int data = input_port_read(space->machine(), "DSW1");
+ int data = input_port_read(machine(), "DSW1");
switch (data & 0x0c)
{
case 0x00 :
- state->m_gun_x_shift = 35;
+ m_gun_x_shift = 35;
break;
case 0x04 :
- state->m_gun_x_shift = 30;
+ m_gun_x_shift = 30;
break;
case 0x08 :
- state->m_gun_x_shift = 40;
+ m_gun_x_shift = 40;
break;
case 0x0c :
- state->m_gun_x_shift = 50;
+ m_gun_x_shift = 50;
break;
}
return data;
}
-static READ16_HANDLER( oneshot_gun_x_p1_r )
+READ16_MEMBER(oneshot_state::oneshot_gun_x_p1_r)
{
- oneshot_state *state = space->machine().driver_data<oneshot_state>();
/* shots must be in a different location to register */
- state->m_p1_wobble ^= 1;
+ m_p1_wobble ^= 1;
- return state->m_gun_x_p1 ^ state->m_p1_wobble;
+ return m_gun_x_p1 ^ m_p1_wobble;
}
-static READ16_HANDLER( oneshot_gun_y_p1_r )
+READ16_MEMBER(oneshot_state::oneshot_gun_y_p1_r)
{
- oneshot_state *state = space->machine().driver_data<oneshot_state>();
- return state->m_gun_y_p1;
+ return m_gun_y_p1;
}
-static READ16_HANDLER( oneshot_gun_x_p2_r )
+READ16_MEMBER(oneshot_state::oneshot_gun_x_p2_r)
{
- oneshot_state *state = space->machine().driver_data<oneshot_state>();
/* shots must be in a different location to register */
- state->m_p2_wobble ^= 1;
+ m_p2_wobble ^= 1;
- return state->m_gun_x_p2 ^ state->m_p2_wobble;
+ return m_gun_x_p2 ^ m_p2_wobble;
}
-static READ16_HANDLER( oneshot_gun_y_p2_r )
+READ16_MEMBER(oneshot_state::oneshot_gun_y_p2_r)
{
- oneshot_state *state = space->machine().driver_data<oneshot_state>();
- return state->m_gun_y_p2;
+ return m_gun_y_p2;
}
static WRITE16_DEVICE_HANDLER( soundbank_w )
@@ -117,11 +112,11 @@ static ADDRESS_MAP_START( oneshot_map, AS_PROGRAM, 16, oneshot_state )
AM_RANGE(0x190002, 0x190003) AM_READ_LEGACY(soundlatch_word_r)
AM_RANGE(0x190010, 0x190011) AM_WRITE_LEGACY(soundlatch_word_w)
AM_RANGE(0x190018, 0x190019) AM_DEVWRITE_LEGACY("oki", soundbank_w)
- AM_RANGE(0x190026, 0x190027) AM_READ_LEGACY(oneshot_gun_x_p1_r)
- AM_RANGE(0x19002e, 0x19002f) AM_READ_LEGACY(oneshot_gun_x_p2_r)
- AM_RANGE(0x190036, 0x190037) AM_READ_LEGACY(oneshot_gun_y_p1_r)
- AM_RANGE(0x19003e, 0x19003f) AM_READ_LEGACY(oneshot_gun_y_p2_r)
- AM_RANGE(0x19c020, 0x19c021) AM_READ_LEGACY(oneshot_in0_word_r)
+ 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)
+ AM_RANGE(0x19003e, 0x19003f) AM_READ(oneshot_gun_y_p2_r)
+ AM_RANGE(0x19c020, 0x19c021) AM_READ(oneshot_in0_word_r)
AM_RANGE(0x19c024, 0x19c025) AM_READ_PORT("DSW2")
AM_RANGE(0x19c02c, 0x19c02d) AM_READ_PORT("CREDITS")
AM_RANGE(0x19c030, 0x19c031) AM_READ_PORT("P1")
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index a7b6d8a66dc..c50d4c2ff1f 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -284,16 +284,14 @@ register. So what is controlling priority.
#include "sound/msm5205.h"
#include "includes/opwolf.h"
-static READ16_HANDLER( cchip_r )
+READ16_MEMBER(opwolf_state::cchip_r)
{
- opwolf_state *state = space->machine().driver_data<opwolf_state>();
- return state->m_cchip_ram[offset];
+ return m_cchip_ram[offset];
}
-static WRITE16_HANDLER( cchip_w )
+WRITE16_MEMBER(opwolf_state::cchip_w)
{
- opwolf_state *state = space->machine().driver_data<opwolf_state>();
- state->m_cchip_ram[offset] = data &0xff;
+ m_cchip_ram[offset] = data &0xff;
}
/**********************************************************
@@ -303,43 +301,42 @@ static WRITE16_HANDLER( cchip_w )
#define P1X_PORT_TAG "P1X"
#define P1Y_PORT_TAG "P1Y"
-static READ16_HANDLER( opwolf_in_r )
+READ16_MEMBER(opwolf_state::opwolf_in_r)
{
static const char *const inname[2] = { "IN0", "IN1" };
- return input_port_read(space->machine(), inname[offset]);
+ return input_port_read(machine(), inname[offset]);
}
-static READ16_HANDLER( opwolf_dsw_r )
+READ16_MEMBER(opwolf_state::opwolf_dsw_r)
{
static const char *const dswname[2] = { "DSWA", "DSWB" };
- return input_port_read(space->machine(), dswname[offset]);
+ return input_port_read(machine(), dswname[offset]);
}
-static READ16_HANDLER( opwolf_lightgun_r )
+READ16_MEMBER(opwolf_state::opwolf_lightgun_r)
{
- opwolf_state *state = space->machine().driver_data<opwolf_state>();
int scaled;
switch (offset)
{
case 0x00: /* P1X - Have to remap 8 bit input value, into 0-319 visible range */
- scaled = (input_port_read(space->machine(), P1X_PORT_TAG) * 320 ) / 256;
- return (scaled + 0x15 + state->m_opwolf_gun_xoffs);
+ scaled = (input_port_read(machine(), P1X_PORT_TAG) * 320 ) / 256;
+ return (scaled + 0x15 + m_opwolf_gun_xoffs);
case 0x01: /* P1Y */
- return (input_port_read(space->machine(), P1Y_PORT_TAG) - 0x24 + state->m_opwolf_gun_yoffs);
+ return (input_port_read(machine(), P1Y_PORT_TAG) - 0x24 + m_opwolf_gun_yoffs);
}
return 0xff;
}
-static READ8_HANDLER( z80_input1_r )
+READ8_MEMBER(opwolf_state::z80_input1_r)
{
- return input_port_read(space->machine(), "IN0"); /* irrelevant mirror ? */
+ return input_port_read(machine(), "IN0"); /* irrelevant mirror ? */
}
-static READ8_HANDLER( z80_input2_r )
+READ8_MEMBER(opwolf_state::z80_input2_r)
{
- return input_port_read(space->machine(), "IN0"); /* needed for coins */
+ return input_port_read(machine(), "IN0"); /* needed for coins */
}
@@ -366,9 +363,9 @@ static ADDRESS_MAP_START( opwolf_map, AS_PROGRAM, 16, opwolf_state )
AM_RANGE(0x0ffc00, 0x0ffc01) AM_WRITE_LEGACY(opwolf_cchip_bank_w)
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x380000, 0x380003) AM_READ_LEGACY(opwolf_dsw_r) /* dip switches */
+ AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */
AM_RANGE(0x380000, 0x380003) AM_WRITE_LEGACY(opwolf_spritectrl_w) // usually 0x4, changes when you fire
- AM_RANGE(0x3a0000, 0x3a0003) AM_READ_LEGACY(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */
+ AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog ?? */
AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -383,13 +380,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( opwolfb_map, AS_PROGRAM, 16, opwolf_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x0f0008, 0x0f000b) AM_READ_LEGACY(opwolf_in_r) /* coins and buttons */
- AM_RANGE(0x0ff000, 0x0fffff) AM_READWRITE_LEGACY(cchip_r,cchip_w)
+ AM_RANGE(0x0f0008, 0x0f000b) AM_READ(opwolf_in_r) /* coins and buttons */
+ AM_RANGE(0x0ff000, 0x0fffff) AM_READWRITE(cchip_r,cchip_w)
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x380000, 0x380003) AM_READ_LEGACY(opwolf_dsw_r) /* dip switches */
+ AM_RANGE(0x380000, 0x380003) AM_READ(opwolf_dsw_r) /* dip switches */
AM_RANGE(0x380000, 0x380003) AM_WRITE_LEGACY(opwolf_spritectrl_w) // usually 0x4, changes when you fire
- AM_RANGE(0x3a0000, 0x3a0003) AM_READ_LEGACY(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */
+ AM_RANGE(0x3a0000, 0x3a0003) AM_READ(opwolf_lightgun_r) /* lightgun, read at $11e0/6 */
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog ?? */
AM_RANGE(0x3e0000, 0x3e0001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x3e0002, 0x3e0003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -408,9 +405,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( opwolfb_sub_z80_map, AS_PROGRAM, 8, opwolf_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8800, 0x8800) AM_READ_LEGACY(z80_input1_r) /* read at PC=$637: poked to $c004 */
+ AM_RANGE(0x8800, 0x8800) AM_READ(z80_input1_r) /* read at PC=$637: poked to $c004 */
AM_RANGE(0x9000, 0x9000) AM_WRITENOP /* unknown write, 0 then 1 each interrupt */
- AM_RANGE(0x9800, 0x9800) AM_READ_LEGACY(z80_input2_r) /* read at PC=$631: poked to $c005 */
+ AM_RANGE(0x9800, 0x9800) AM_READ(z80_input2_r) /* read at PC=$631: poked to $c005 */
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* IRQ acknowledge (unimplemented) */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(m_cchip_ram)
ADDRESS_MAP_END
@@ -531,14 +528,14 @@ static WRITE8_DEVICE_HANDLER( opwolf_adpcm_c_w )
}
-static WRITE8_HANDLER( opwolf_adpcm_d_w )
+WRITE8_MEMBER(opwolf_state::opwolf_adpcm_d_w)
{
-// logerror("CPU #1 d00%i-data=%2x pc=%4x\n",offset,data,cpu_get_pc(&space->device()) );
+// logerror("CPU #1 d00%i-data=%2x pc=%4x\n",offset,data,cpu_get_pc(&space.device()) );
}
-static WRITE8_HANDLER( opwolf_adpcm_e_w )
+WRITE8_MEMBER(opwolf_state::opwolf_adpcm_e_w)
{
-// logerror("CPU #1 e00%i-data=%2x pc=%4x\n",offset,data,cpu_get_pc(&space->device()) );
+// logerror("CPU #1 e00%i-data=%2x pc=%4x\n",offset,data,cpu_get_pc(&space.device()) );
}
static ADDRESS_MAP_START( opwolf_sound_z80_map, AS_PROGRAM, 8, opwolf_state )
@@ -551,8 +548,8 @@ static ADDRESS_MAP_START( opwolf_sound_z80_map, AS_PROGRAM, 8, opwolf_state )
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(0xd000, 0xd000) AM_WRITE_LEGACY(opwolf_adpcm_d_w)
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(opwolf_adpcm_e_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(opwolf_adpcm_d_w)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(opwolf_adpcm_e_w)
ADDRESS_MAP_END
/***********************************************************
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index f0a080b47d4..0624e3cc3fa 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -86,15 +86,14 @@ static void update_misc_flags(running_machine &machine, UINT8 val)
}
-static WRITE8_HANDLER( orbit_misc_w )
+WRITE8_MEMBER(orbit_state::orbit_misc_w)
{
- orbit_state *state = space->machine().driver_data<orbit_state>();
UINT8 bit = offset >> 1;
if (offset & 1)
- update_misc_flags(space->machine(), state->m_misc_flags | (1 << bit));
+ update_misc_flags(machine(), m_misc_flags | (1 << bit));
else
- update_misc_flags(space->machine(), state->m_misc_flags & ~(1 << bit));
+ update_misc_flags(machine(), m_misc_flags & ~(1 << bit));
}
@@ -118,7 +117,7 @@ static ADDRESS_MAP_START( orbit_map, AS_PROGRAM, 8, orbit_state )
AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_note_w)
AM_RANGE(0x3900, 0x3900) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_noise_amp_w)
AM_RANGE(0x3a00, 0x3a00) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_note_amp_w)
- AM_RANGE(0x3c00, 0x3c0f) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(orbit_misc_w)
+ AM_RANGE(0x3c00, 0x3c0f) AM_MIRROR(0x00f0) AM_WRITE(orbit_misc_w)
AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00ff) AM_DEVWRITE_LEGACY("discrete", orbit_noise_rst_w)
AM_RANGE(0x3f00, 0x3f00) AM_MIRROR(0x00ff) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x6000, 0x7fff) AM_ROM
diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c
index 0025c532fce..4ae637c6a5f 100644
--- a/src/mame/drivers/othldrby.c
+++ b/src/mame/drivers/othldrby.c
@@ -24,9 +24,9 @@ Notes:
/* Guess: reads when doing r/w to video device */
-static READ16_HANDLER( othldrby_scanline_r )
+READ16_MEMBER(othldrby_state::othldrby_scanline_r)
{
- return space->machine().primary_screen->vpos();
+ return machine().primary_screen->vpos();
}
@@ -36,26 +36,26 @@ static WRITE16_DEVICE_HANDLER( oki_bankswitch_w )
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
-static WRITE16_HANDLER( coinctrl_w )
+WRITE16_MEMBER(othldrby_state::coinctrl_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
- coin_lockout_w(space->machine(), 0, ~data & 4);
- coin_lockout_w(space->machine(), 1, ~data & 8);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
+ coin_lockout_w(machine(), 0, ~data & 4);
+ coin_lockout_w(machine(), 1, ~data & 8);
}
}
-static WRITE16_HANDLER( calendar_w )
+WRITE16_MEMBER(othldrby_state::calendar_w)
{
}
-static READ16_HANDLER( calendar_r )
+READ16_MEMBER(othldrby_state::calendar_r)
{
system_time systime;
- space->machine().base_datetime(systime);
+ machine().base_datetime(systime);
switch (offset)
{
@@ -83,7 +83,7 @@ static READ16_HANDLER( calendar_r )
static ADDRESS_MAP_START( othldrby_map, AS_PROGRAM, 16, othldrby_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x200000, 0x20000f) AM_READWRITE_LEGACY(calendar_r, calendar_w)
+ AM_RANGE(0x200000, 0x20000f) AM_READWRITE(calendar_r, calendar_w)
AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(othldrby_videoram_addr_w)
AM_RANGE(0x300004, 0x300007) AM_READWRITE_LEGACY(othldrby_videoram_r, othldrby_videoram_w)
AM_RANGE(0x300008, 0x300009) AM_WRITE_LEGACY(othldrby_vreg_addr_w)
@@ -91,14 +91,14 @@ static ADDRESS_MAP_START( othldrby_map, AS_PROGRAM, 16, othldrby_state )
AM_RANGE(0x30000c, 0x30000f) AM_WRITE_LEGACY(othldrby_vreg_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
- AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(othldrby_scanline_r)
+ AM_RANGE(0x700000, 0x700001) AM_READ(othldrby_scanline_r)
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("DSW1")
AM_RANGE(0x700008, 0x700009) AM_READ_PORT("DSW2")
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(0x700034, 0x700035) AM_WRITE_LEGACY(coinctrl_w)
+ AM_RANGE(0x700034, 0x700035) AM_WRITE(coinctrl_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 24af36facf1..6d6d96b366f 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -256,22 +256,21 @@ static void update_irq( running_machine &machine )
device_set_input_line(state->m_maincpu, 5, state->m_vblank_irq ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE16_HANDLER( irq_ack_w )
+WRITE16_MEMBER(othunder_state::irq_ack_w)
{
- othunder_state *state = space->machine().driver_data<othunder_state>();
switch (offset)
{
case 0:
- state->m_vblank_irq = 0;
+ m_vblank_irq = 0;
break;
case 1:
- state->m_ad_irq = 0;
+ m_ad_irq = 0;
break;
}
- update_irq(space->machine());
+ update_irq(machine());
}
static INTERRUPT_GEN( vblank_interrupt )
@@ -310,9 +309,8 @@ static const eeprom_interface eeprom_intf =
"0100111111" /* unlock command */
};
-static WRITE16_HANDLER( othunder_tc0220ioc_w )
+WRITE16_MEMBER(othunder_state::othunder_tc0220ioc_w)
{
- othunder_state *state = space->machine().driver_data<othunder_state>();
if (ACCESSING_BITS_0_7)
{
@@ -336,13 +334,13 @@ static WRITE16_HANDLER( othunder_tc0220ioc_w )
if (data & 4)
popmessage("OBPRI SET!");
- state->m_eeprom->write_bit(data & 0x40);
- state->m_eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
- state->m_eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
+ m_eeprom->write_bit(data & 0x40);
+ m_eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
break;
default:
- tc0220ioc_w(state->m_tc0220ioc, offset, data & 0xff);
+ tc0220ioc_w(m_tc0220ioc, offset, data & 0xff);
}
}
}
@@ -352,17 +350,16 @@ static WRITE16_HANDLER( othunder_tc0220ioc_w )
GAME INPUTS
**********************************************************/
-static READ16_HANDLER( othunder_tc0220ioc_r )
+READ16_MEMBER(othunder_state::othunder_tc0220ioc_r)
{
- othunder_state *state = space->machine().driver_data<othunder_state>();
switch (offset)
{
case 0x03:
- return (state->m_eeprom->read_bit() & 1) << 7;
+ return (m_eeprom->read_bit() & 1) << 7;
default:
- return tc0220ioc_r(state->m_tc0220ioc, offset);
+ return tc0220ioc_r(m_tc0220ioc, offset);
}
}
@@ -372,20 +369,20 @@ static READ16_HANDLER( othunder_tc0220ioc_r )
#define P2Y_PORT_TAG "P2Y"
#define ROTARY_PORT_TAG "ROTARY"
-static READ16_HANDLER( othunder_lightgun_r )
+READ16_MEMBER(othunder_state::othunder_lightgun_r)
{
static const char *const portname[4] = { P1X_PORT_TAG, P1Y_PORT_TAG, P2X_PORT_TAG, P2Y_PORT_TAG };
- return input_port_read(space->machine(), portname[offset]);
+ return input_port_read(machine(), portname[offset]);
}
-static WRITE16_HANDLER( othunder_lightgun_w )
+WRITE16_MEMBER(othunder_state::othunder_lightgun_w)
{
/* A write starts the A/D conversion. An interrupt will be triggered when
the conversion is complete.
The ADC60808 clock is 512kHz. Conversion takes between 0 and 8 clock
cycles, so would end in a maximum of 15.625us. We'll use 10. */
- space->machine().scheduler().timer_set(attotime::from_usec(10), FUNC(ad_interrupt));
+ machine().scheduler().timer_set(attotime::from_usec(10), FUNC(ad_interrupt));
}
@@ -400,58 +397,54 @@ static void reset_sound_region( running_machine &machine )
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(othunder_state::sound_bankswitch_w)
{
- othunder_state *state = space->machine().driver_data<othunder_state>();
- state->m_banknum = data & 7;
- reset_sound_region(space->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
-static WRITE16_HANDLER( othunder_sound_w )
+WRITE16_MEMBER(othunder_state::othunder_sound_w)
{
- othunder_state *state = space->machine().driver_data<othunder_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
}
-static READ16_HANDLER( othunder_sound_r )
+READ16_MEMBER(othunder_state::othunder_sound_r)
{
- othunder_state *state = space->machine().driver_data<othunder_state>();
if (offset == 1)
- return ((tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
else
return 0;
}
-static WRITE8_HANDLER( othunder_TC0310FAM_w )
+WRITE8_MEMBER(othunder_state::othunder_TC0310FAM_w)
{
/* there are two TC0310FAM, one for CH1 and one for CH2 from the YM2610. The
PSG output is routed to both chips. */
- othunder_state *state = space->machine().driver_data<othunder_state>();
int voll, volr;
- state->m_pan[offset] = data & 0x1f;
+ m_pan[offset] = data & 0x1f;
/* PSG output (single ANALOG OUT pin on the YM2610, but we have three channels
because we are using the AY-3-8910 emulation. */
- volr = (state->m_pan[0] + state->m_pan[2]) * 100 / (2 * 0x1f);
- voll = (state->m_pan[1] + state->m_pan[3]) * 100 / (2 * 0x1f);
- flt_volume_set_volume(state->m_2610_0l, voll / 100.0);
- flt_volume_set_volume(state->m_2610_0r, volr / 100.0);
+ volr = (m_pan[0] + m_pan[2]) * 100 / (2 * 0x1f);
+ voll = (m_pan[1] + m_pan[3]) * 100 / (2 * 0x1f);
+ flt_volume_set_volume(m_2610_0l, voll / 100.0);
+ flt_volume_set_volume(m_2610_0r, volr / 100.0);
/* CH1 */
- volr = state->m_pan[0] * 100 / 0x1f;
- voll = state->m_pan[1] * 100 / 0x1f;
- flt_volume_set_volume(state->m_2610_1l, voll / 100.0);
- flt_volume_set_volume(state->m_2610_1r, volr / 100.0);
+ volr = m_pan[0] * 100 / 0x1f;
+ voll = m_pan[1] * 100 / 0x1f;
+ flt_volume_set_volume(m_2610_1l, voll / 100.0);
+ flt_volume_set_volume(m_2610_1r, volr / 100.0);
/* CH2 */
- volr = state->m_pan[2] * 100 / 0x1f;
- voll = state->m_pan[3] * 100 / 0x1f;
- flt_volume_set_volume(state->m_2610_2l, voll / 100.0);
- flt_volume_set_volume(state->m_2610_2r, volr / 100.0);
+ volr = m_pan[2] * 100 / 0x1f;
+ voll = m_pan[3] * 100 / 0x1f;
+ flt_volume_set_volume(m_2610_2l, voll / 100.0);
+ flt_volume_set_volume(m_2610_2r, volr / 100.0);
}
@@ -462,16 +455,16 @@ static WRITE8_HANDLER( othunder_TC0310FAM_w )
static ADDRESS_MAP_START( othunder_map, AS_PROGRAM, 16, othunder_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x080000, 0x08ffff) AM_RAM
- AM_RANGE(0x090000, 0x09000f) AM_READWRITE_LEGACY(othunder_tc0220ioc_r, othunder_tc0220ioc_w)
+ AM_RANGE(0x090000, 0x09000f) AM_READWRITE(othunder_tc0220ioc_r, othunder_tc0220ioc_w)
// AM_RANGE(0x090006, 0x090007) AM_WRITE_LEGACY(eeprom_w)
// AM_RANGE(0x09000c, 0x09000d) AM_WRITENOP /* ?? (keeps writing 0x77) */
AM_RANGE(0x100000, 0x100007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_rbswap_word_w) /* palette */
AM_RANGE(0x200000, 0x20ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
AM_RANGE(0x220000, 0x22000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
- AM_RANGE(0x300000, 0x300003) AM_READWRITE_LEGACY(othunder_sound_r, othunder_sound_w)
+ AM_RANGE(0x300000, 0x300003) AM_READWRITE(othunder_sound_r, othunder_sound_w)
AM_RANGE(0x400000, 0x4005ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x500000, 0x500007) AM_READWRITE_LEGACY(othunder_lightgun_r, othunder_lightgun_w)
- AM_RANGE(0x600000, 0x600003) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0x500000, 0x500007) AM_READWRITE(othunder_lightgun_r, othunder_lightgun_w)
+ AM_RANGE(0x600000, 0x600003) AM_WRITE(irq_ack_w)
ADDRESS_MAP_END
@@ -484,12 +477,12 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, othunder_state )
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITE_LEGACY(othunder_TC0310FAM_w) /* pan */
+ AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */
AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
AM_RANGE(0xea00, 0xea00) AM_READ_PORT(ROTARY_PORT_TAG) /* rotary input */
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index 42eaca7175e..03721d6d954 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -62,15 +62,15 @@ static const eeprom_interface eeprom_intf =
"010011000000" /* unlock command */
};
-static WRITE16_HANDLER( eeprom_w )
+WRITE16_MEMBER(overdriv_state::eeprom_w)
{
-//logerror("%06x: write %04x to eeprom_w\n",cpu_get_pc(&space->device()),data);
+//logerror("%06x: write %04x to eeprom_w\n",cpu_get_pc(&space.device()),data);
if (ACCESSING_BITS_0_7)
{
/* bit 0 is data */
/* bit 1 is clock (active high) */
/* bit 2 is cs (active low) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
}
@@ -95,40 +95,37 @@ static INTERRUPT_GEN( cpuB_interrupt )
}
-static WRITE16_HANDLER( cpuA_ctrl_w )
+WRITE16_MEMBER(overdriv_state::cpuA_ctrl_w)
{
- overdriv_state *state = space->machine().driver_data<overdriv_state>();
if (ACCESSING_BITS_0_7)
{
/* bit 0 probably enables the second 68000 */
- device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_subcpu, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
/* bit 1 is clear during service mode - function unknown */
- set_led_status(space->machine(), 0, data & 0x08);
- coin_counter_w(space->machine(), 0, data & 0x10);
- coin_counter_w(space->machine(), 1, data & 0x20);
+ set_led_status(machine(), 0, data & 0x08);
+ coin_counter_w(machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 1, data & 0x20);
-//logerror("%06x: write %04x to cpuA_ctrl_w\n",cpu_get_pc(&space->device()),data);
+//logerror("%06x: write %04x to cpuA_ctrl_w\n",cpu_get_pc(&space.device()),data);
}
}
-static READ16_HANDLER( cpuB_ctrl_r )
+READ16_MEMBER(overdriv_state::cpuB_ctrl_r)
{
- overdriv_state *state = space->machine().driver_data<overdriv_state>();
- return state->m_cpuB_ctrl;
+ return m_cpuB_ctrl;
}
-static WRITE16_HANDLER( cpuB_ctrl_w )
+WRITE16_MEMBER(overdriv_state::cpuB_ctrl_w)
{
- overdriv_state *state = space->machine().driver_data<overdriv_state>();
- COMBINE_DATA(&state->m_cpuB_ctrl);
+ COMBINE_DATA(&m_cpuB_ctrl);
if (ACCESSING_BITS_0_7)
{
/* bit 0 = enable sprite ROM reading */
- k053246_set_objcha_line(state->m_k053246, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
+ k053246_set_objcha_line(m_k053246, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
/* bit 1 used but unknown (irq enable?) */
@@ -142,22 +139,19 @@ static READ8_DEVICE_HANDLER( overdriv_sound_r )
return k053260_r(device, 2 + offset);
}
-static WRITE16_HANDLER( overdriv_soundirq_w )
+WRITE16_MEMBER(overdriv_state::overdriv_soundirq_w)
{
- overdriv_state *state = space->machine().driver_data<overdriv_state>();
- device_set_input_line(state->m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
}
-static WRITE16_HANDLER( overdriv_cpuB_irq5_w )
+WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq5_w)
{
- overdriv_state *state = space->machine().driver_data<overdriv_state>();
- device_set_input_line(state->m_subcpu, 5, HOLD_LINE);
+ device_set_input_line(m_subcpu, 5, HOLD_LINE);
}
-static WRITE16_HANDLER( overdriv_cpuB_irq6_w )
+WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq6_w)
{
- overdriv_state *state = space->machine().driver_data<overdriv_state>();
- device_set_input_line(state->m_subcpu, 6, HOLD_LINE);
+ device_set_input_line(m_subcpu, 6, HOLD_LINE);
}
static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state )
@@ -175,16 +169,16 @@ static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state )
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(0x1e8000, 0x1e8001) AM_WRITE_LEGACY(overdriv_soundirq_w)
- AM_RANGE(0x1f0000, 0x1f0001) AM_WRITE_LEGACY(cpuA_ctrl_w) /* halt cpu B, coin counter, start lamp, other? */
- AM_RANGE(0x1f8000, 0x1f8001) AM_WRITE_LEGACY(eeprom_w)
+ 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)
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x210000, 0x210fff) AM_DEVREADWRITE8_LEGACY("k051316_1", k051316_r, k051316_w, 0xff00)
AM_RANGE(0x218000, 0x218fff) AM_DEVREADWRITE8_LEGACY("k051316_2", k051316_r, k051316_w, 0xff00)
AM_RANGE(0x220000, 0x220fff) AM_DEVREAD8_LEGACY("k051316_1", k051316_rom_r, 0xff00)
AM_RANGE(0x228000, 0x228fff) AM_DEVREAD8_LEGACY("k051316_2", k051316_rom_r, 0xff00)
- AM_RANGE(0x230000, 0x230001) AM_WRITE_LEGACY(overdriv_cpuB_irq6_w)
- AM_RANGE(0x238000, 0x238001) AM_WRITE_LEGACY(overdriv_cpuB_irq5_w)
+ AM_RANGE(0x230000, 0x230001) AM_WRITE(overdriv_cpuB_irq6_w)
+ AM_RANGE(0x238000, 0x238001) AM_WRITE(overdriv_cpuB_irq5_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16, overdriv_state )
@@ -195,7 +189,7 @@ static ADDRESS_MAP_START( overdriv_slave_map, AS_PROGRAM, 16, overdriv_state )
AM_RANGE(0x108000, 0x10800f) AM_DEVREADWRITE("k053250_2", k053250_t, reg_r, reg_w)
AM_RANGE(0x118000, 0x118fff) AM_DEVREADWRITE_LEGACY("k053246", k053247_word_r, k053247_word_w)
AM_RANGE(0x120000, 0x120001) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
- AM_RANGE(0x128000, 0x128001) AM_READWRITE_LEGACY(cpuB_ctrl_r, cpuB_ctrl_w) /* enable K053247 ROM reading, plus something else */
+ AM_RANGE(0x128000, 0x128001) AM_READWRITE(cpuB_ctrl_r, cpuB_ctrl_w) /* enable K053247 ROM reading, plus something else */
AM_RANGE(0x130000, 0x130007) AM_DEVWRITE_LEGACY("k053246", k053246_word_w)
AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x208000, 0x20bfff) AM_RAM
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index 2ccfb58f897..f03001a41eb 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -178,61 +178,59 @@ Notes:
#include "sound/namco.h"
#include "includes/pacland.h"
-static WRITE8_HANDLER( pacland_subreset_w )
+WRITE8_MEMBER(pacland_state::pacland_subreset_w)
{
int bit = !BIT(offset,11);
- cputag_set_input_line(space->machine(), "mcu", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "mcu", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( pacland_flipscreen_w )
+WRITE8_MEMBER(pacland_state::pacland_flipscreen_w)
{
int bit = !BIT(offset,11);
- /* can't use flip_screen_set(space->machine(), ) because the visible area is asymmetrical */
- flip_screen_set_no_update(space->machine(), bit);
- space->machine().tilemap().set_flip_all(flip_screen_get(space->machine()) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
+ /* can't use flip_screen_set(machine(), ) because the visible area is asymmetrical */
+ flip_screen_set_no_update(machine(), bit);
+ machine().tilemap().set_flip_all(flip_screen_get(machine()) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
}
-static READ8_HANDLER( pacland_input_r )
+READ8_MEMBER(pacland_state::pacland_input_r)
{
int shift = 4 * (offset & 1);
int port = offset & 2;
static const char *const portnames[] = { "DSWA", "DSWB", "IN0", "IN1" };
- int r = (input_port_read(space->machine(), portnames[port]) << shift) & 0xf0;
- r |= (input_port_read(space->machine(), portnames[port+1]) >> (4 - shift)) & 0x0f;
+ int r = (input_port_read(machine(), portnames[port]) << shift) & 0xf0;
+ r |= (input_port_read(machine(), portnames[port+1]) >> (4 - shift)) & 0x0f;
return r;
}
-static WRITE8_HANDLER( pacland_coin_w )
+WRITE8_MEMBER(pacland_state::pacland_coin_w)
{
- coin_lockout_global_w(space->machine(), data & 1);
- coin_counter_w(space->machine(), 0, ~data & 2);
- coin_counter_w(space->machine(), 1, ~data & 4);
+ coin_lockout_global_w(machine(), data & 1);
+ coin_counter_w(machine(), 0, ~data & 2);
+ coin_counter_w(machine(), 1, ~data & 4);
}
-static WRITE8_HANDLER( pacland_led_w )
+WRITE8_MEMBER(pacland_state::pacland_led_w)
{
- set_led_status(space->machine(), 0, data & 0x08);
- set_led_status(space->machine(), 1, data & 0x10);
+ set_led_status(machine(), 0, data & 0x08);
+ set_led_status(machine(), 1, data & 0x10);
}
-static WRITE8_HANDLER( pacland_irq_1_ctrl_w )
+WRITE8_MEMBER(pacland_state::pacland_irq_1_ctrl_w)
{
- pacland_state *state = space->machine().driver_data<pacland_state>();
int bit = !BIT(offset, 11);
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( pacland_irq_2_ctrl_w )
+WRITE8_MEMBER(pacland_state::pacland_irq_2_ctrl_w)
{
- pacland_state *state = space->machine().driver_data<pacland_state>();
int bit = !BIT(offset, 13);
- state->m_mcu_irq_mask = bit;
+ m_mcu_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "mcu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "mcu", 0, CLEAR_LINE);
}
@@ -246,11 +244,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pacland_state )
AM_RANGE(0x3c00, 0x3c00) AM_WRITE_LEGACY(pacland_bankswitch_w)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE_LEGACY("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
- AM_RANGE(0x7000, 0x7fff) AM_WRITE_LEGACY(pacland_irq_1_ctrl_w)
+ AM_RANGE(0x7000, 0x7fff) AM_WRITE(pacland_irq_1_ctrl_w)
AM_RANGE(0x7800, 0x7fff) AM_READ_LEGACY(watchdog_reset_r)
AM_RANGE(0x8000, 0xffff) AM_ROM
- AM_RANGE(0x8000, 0x8fff) AM_WRITE_LEGACY(pacland_subreset_w)
- AM_RANGE(0x9000, 0x9fff) AM_WRITE_LEGACY(pacland_flipscreen_w)
+ AM_RANGE(0x8000, 0x8fff) AM_WRITE(pacland_subreset_w)
+ AM_RANGE(0x9000, 0x9fff) AM_WRITE(pacland_flipscreen_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, pacland_state )
@@ -258,24 +256,24 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, pacland_state )
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE_LEGACY("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
AM_RANGE(0x2000, 0x3fff) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog? */
- AM_RANGE(0x4000, 0x7fff) AM_WRITE_LEGACY(pacland_irq_2_ctrl_w)
+ AM_RANGE(0x4000, 0x7fff) AM_WRITE(pacland_irq_2_ctrl_w)
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
- AM_RANGE(0xd000, 0xd003) AM_READ_LEGACY(pacland_input_r)
+ AM_RANGE(0xd000, 0xd003) AM_READ(pacland_input_r)
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static READ8_HANDLER( readFF )
+READ8_MEMBER(pacland_state::readFF)
{
return 0xff;
}
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, pacland_state )
AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("IN2")
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE_LEGACY(pacland_coin_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ_LEGACY(readFF) /* leds won't work otherwise */
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE_LEGACY(pacland_led_w)
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(pacland_coin_w)
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE(pacland_led_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index 9a8304307da..bcf27f5dc3d 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -391,10 +391,10 @@ static MACHINE_RESET( mschamp )
*
*************************************/
-static WRITE8_HANDLER( pacman_interrupt_vector_w )
+WRITE8_MEMBER(pacman_state::pacman_interrupt_vector_w)
{
- device_set_input_line_vector(space->machine().device("maincpu"), 0, data);
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ device_set_input_line_vector(machine().device("maincpu"), 0, data);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -454,20 +454,20 @@ did look at(sprite buffer), was copied from Pacman. The addresses for the varia
to be the same as well.
*/
-static WRITE8_HANDLER( piranha_interrupt_vector_w)
+WRITE8_MEMBER(pacman_state::piranha_interrupt_vector_w)
{
if (data == 0xfa) data = 0x78;
if (data == 0xfc) data = 0xfc;
- device_set_input_line_vector(space->machine().device("maincpu"), 0, data );
+ device_set_input_line_vector(machine().device("maincpu"), 0, data );
}
-static WRITE8_HANDLER( nmouse_interrupt_vector_w)
+WRITE8_MEMBER(pacman_state::nmouse_interrupt_vector_w)
{
if (data == 0xbf) data = 0x3c;
if (data == 0xc6) data = 0x40;
if (data == 0xfc) data = 0xfc;
- device_set_input_line_vector(space->machine().device("maincpu"), 0, data );
+ device_set_input_line_vector(machine().device("maincpu"), 0, data );
}
@@ -477,21 +477,21 @@ static WRITE8_HANDLER( nmouse_interrupt_vector_w)
*
*************************************/
-static WRITE8_HANDLER( pacman_leds_w )
+WRITE8_MEMBER(pacman_state::pacman_leds_w)
{
- set_led_status(space->machine(), offset,data & 1);
+ set_led_status(machine(), offset,data & 1);
}
-static WRITE8_HANDLER( pacman_coin_counter_w )
+WRITE8_MEMBER(pacman_state::pacman_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data & 1);
+ coin_counter_w(machine(), offset,data & 1);
}
-static WRITE8_HANDLER( pacman_coin_lockout_global_w )
+WRITE8_MEMBER(pacman_state::pacman_coin_lockout_global_w)
{
- coin_lockout_global_w(space->machine(), ~data & 0x01);
+ coin_lockout_global_w(machine(), ~data & 0x01);
}
@@ -502,35 +502,33 @@ static WRITE8_HANDLER( pacman_coin_lockout_global_w )
*
*************************************/
-static WRITE8_HANDLER( alibaba_sound_w )
+WRITE8_MEMBER(pacman_state::alibaba_sound_w)
{
/* since the sound region in Ali Baba is not contiguous, translate the
offset into the 0-0x1f range */
- pacman_state *state = space->machine().driver_data<pacman_state>();
if (offset < 0x10)
- pacman_sound_w(space->machine().device("namco"), offset, data);
+ pacman_sound_w(machine().device("namco"), offset, data);
else if (offset < 0x20)
- state->m_spriteram2[offset - 0x10] = data;
+ m_spriteram2[offset - 0x10] = data;
else
- pacman_sound_w(space->machine().device("namco"), offset - 0x10, data);
+ pacman_sound_w(machine().device("namco"), offset - 0x10, data);
}
-static READ8_HANDLER( alibaba_mystery_1_r )
+READ8_MEMBER(pacman_state::alibaba_mystery_1_r)
{
/* The return value determines what the mystery item is. Each bit corresponds
to a question mark */
- return space->machine().rand() & 0x0f;
+ return machine().rand() & 0x0f;
}
-static READ8_HANDLER( alibaba_mystery_2_r )
+READ8_MEMBER(pacman_state::alibaba_mystery_2_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
/* The single bit return value determines when the mystery is lit up.
This is certainly wrong */
- state->m_mystery++;
- return (state->m_mystery >> 10) & 1;
+ m_mystery++;
+ return (m_mystery >> 10) & 1;
}
@@ -541,10 +539,10 @@ static READ8_HANDLER( alibaba_mystery_2_r )
*
*************************************/
-static READ8_HANDLER( maketrax_special_port2_r )
+READ8_MEMBER(pacman_state::maketrax_special_port2_r)
{
- int data = input_port_read(space->machine(), "DSW1");
- int pc = cpu_get_previouspc(&space->device());
+ int data = input_port_read(machine(), "DSW1");
+ int pc = cpu_get_previouspc(&space.device());
if ((pc == 0x1973) || (pc == 0x2389)) return data | 0x40;
@@ -563,9 +561,9 @@ static READ8_HANDLER( maketrax_special_port2_r )
}
-static READ8_HANDLER( maketrax_special_port3_r )
+READ8_MEMBER(pacman_state::maketrax_special_port3_r)
{
- int pc = cpu_get_previouspc(&space->device());
+ int pc = cpu_get_previouspc(&space.device());
if (pc == 0x040e) return 0x20;
@@ -584,10 +582,10 @@ static READ8_HANDLER( maketrax_special_port3_r )
}
}
-static READ8_HANDLER( korosuke_special_port2_r )
+READ8_MEMBER(pacman_state::korosuke_special_port2_r)
{
- int data = input_port_read(space->machine(), "DSW1");
- int pc = cpu_get_previouspc(&space->device());
+ int data = input_port_read(machine(), "DSW1");
+ int pc = cpu_get_previouspc(&space.device());
if ((pc == 0x196e) || (pc == 0x2387)) return data | 0x40;
@@ -605,9 +603,9 @@ static READ8_HANDLER( korosuke_special_port2_r )
return data;
}
-static READ8_HANDLER( korosuke_special_port3_r )
+READ8_MEMBER(pacman_state::korosuke_special_port3_r)
{
- int pc = cpu_get_previouspc(&space->device());
+ int pc = cpu_get_previouspc(&space.device());
if (pc == 0x0445) return 0x20;
@@ -632,10 +630,9 @@ static READ8_HANDLER( korosuke_special_port3_r )
*
*************************************/
-static READ8_HANDLER( mschamp_kludge_r )
+READ8_MEMBER(pacman_state::mschamp_kludge_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- return state->m_counter++;
+ return m_counter++;
}
/************************************
@@ -645,20 +642,18 @@ static READ8_HANDLER( mschamp_kludge_r )
************************************/
-static WRITE8_HANDLER( bigbucks_bank_w )
+WRITE8_MEMBER(pacman_state::bigbucks_bank_w)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- state->m_bigbucks_bank = data;
+ m_bigbucks_bank = data;
}
-static READ8_HANDLER( bigbucks_question_r )
+READ8_MEMBER(pacman_state::bigbucks_question_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- UINT8 *question = space->machine().region("user1")->base();
+ UINT8 *question = machine().region("user1")->base();
UINT8 ret;
- ret = question[(state->m_bigbucks_bank << 16) | (offset ^ 0xffff)];
+ ret = question[(m_bigbucks_bank << 16) | (offset ^ 0xffff)];
return ret;
}
@@ -674,17 +669,17 @@ static INTERRUPT_GEN( s2650_interrupt )
device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03);
}
-static WRITE8_HANDLER( porky_banking_w )
+WRITE8_MEMBER(pacman_state::porky_banking_w)
{
- memory_set_bank(space->machine(), "bank1", data & 1);
- memory_set_bank(space->machine(), "bank2", data & 1);
- memory_set_bank(space->machine(), "bank3", data & 1);
- memory_set_bank(space->machine(), "bank4", data & 1);
+ memory_set_bank(machine(), "bank1", data & 1);
+ memory_set_bank(machine(), "bank2", data & 1);
+ memory_set_bank(machine(), "bank3", data & 1);
+ memory_set_bank(machine(), "bank4", data & 1);
}
-static READ8_HANDLER( drivfrcp_port1_r )
+READ8_MEMBER(pacman_state::drivfrcp_port1_r)
{
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x0030:
case 0x0291:
@@ -694,9 +689,9 @@ static READ8_HANDLER( drivfrcp_port1_r )
return 0;
}
-static READ8_HANDLER( _8bpm_port1_r )
+READ8_MEMBER(pacman_state::_8bpm_port1_r)
{
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x0030:
case 0x0466:
@@ -706,9 +701,9 @@ static READ8_HANDLER( _8bpm_port1_r )
return 0;
}
-static READ8_HANDLER( porky_port1_r )
+READ8_MEMBER(pacman_state::porky_port1_r)
{
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x0034:
return 0x01;
@@ -727,52 +722,45 @@ static READ8_HANDLER( porky_port1_r )
************************************/
-static READ8_HANDLER( rocktrv2_prot1_data_r )
+READ8_MEMBER(pacman_state::rocktrv2_prot1_data_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- return state->m_rocktrv2_prot_data[0] >> 4;
+ return m_rocktrv2_prot_data[0] >> 4;
}
-static READ8_HANDLER( rocktrv2_prot2_data_r )
+READ8_MEMBER(pacman_state::rocktrv2_prot2_data_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- return state->m_rocktrv2_prot_data[1] >> 4;
+ return m_rocktrv2_prot_data[1] >> 4;
}
-static READ8_HANDLER( rocktrv2_prot3_data_r )
+READ8_MEMBER(pacman_state::rocktrv2_prot3_data_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- return state->m_rocktrv2_prot_data[2] >> 4;
+ return m_rocktrv2_prot_data[2] >> 4;
}
-static READ8_HANDLER( rocktrv2_prot4_data_r )
+READ8_MEMBER(pacman_state::rocktrv2_prot4_data_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- return state->m_rocktrv2_prot_data[3] >> 4;
+ return m_rocktrv2_prot_data[3] >> 4;
}
-static WRITE8_HANDLER( rocktrv2_prot_data_w )
+WRITE8_MEMBER(pacman_state::rocktrv2_prot_data_w)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- state->m_rocktrv2_prot_data[offset] = data;
+ m_rocktrv2_prot_data[offset] = data;
}
-static WRITE8_HANDLER( rocktrv2_question_bank_w )
+WRITE8_MEMBER(pacman_state::rocktrv2_question_bank_w)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- state->m_rocktrv2_question_bank = data;
+ m_rocktrv2_question_bank = data;
}
-static READ8_HANDLER( rocktrv2_question_r )
+READ8_MEMBER(pacman_state::rocktrv2_question_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- UINT8 *question = space->machine().region("user1")->base();
+ UINT8 *question = machine().region("user1")->base();
- return question[offset | (state->m_rocktrv2_question_bank * 0x8000)];
+ return question[offset | (m_rocktrv2_question_bank * 0x8000)];
}
-static READ8_HANDLER( pacman_read_nop )
+READ8_MEMBER(pacman_state::pacman_read_nop)
{
// Return value of reading the bus with no devices enabled.
// This seems to be common but more tests are needed. Ms Pacman reads bytes in sequence
@@ -855,18 +843,18 @@ static READ8_HANDLER( pacman_read_nop )
#define mspacman_disable_decode_latch(m) memory_set_bank(m, "bank1", 0)
// any access to these ROM addresses disables the decoder, and all you see is the original Pac-Man code
-static READ8_HANDLER( mspacman_disable_decode_r_0x0038 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x0038]; }
-static READ8_HANDLER( mspacman_disable_decode_r_0x03b0 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x03b0]; }
-static READ8_HANDLER( mspacman_disable_decode_r_0x1600 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x1600]; }
-static READ8_HANDLER( mspacman_disable_decode_r_0x2120 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x2120]; }
-static READ8_HANDLER( mspacman_disable_decode_r_0x3ff0 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x3ff0]; }
-static READ8_HANDLER( mspacman_disable_decode_r_0x8000 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x8000]; }
-static READ8_HANDLER( mspacman_disable_decode_r_0x97f0 ) { mspacman_disable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x97f0]; }
-static WRITE8_HANDLER( mspacman_disable_decode_w ) { mspacman_disable_decode_latch(space->machine()); }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x0038){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x0038]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x03b0){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x03b0]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x1600){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x1600]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x2120){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x2120]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x3ff0){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x3ff0]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x8000){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x8000]; }
+READ8_MEMBER(pacman_state::mspacman_disable_decode_r_0x97f0){ mspacman_disable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x97f0]; }
+WRITE8_MEMBER(pacman_state::mspacman_disable_decode_w){ mspacman_disable_decode_latch(machine()); }
// any access to these ROM addresses enables the decoder, and you'll see the Ms. Pac-Man code
-static READ8_HANDLER( mspacman_enable_decode_r_0x3ff8 ) { mspacman_enable_decode_latch(space->machine()); return space->machine().region("maincpu")->base()[offset+0x3ff8+0x10000]; }
-static WRITE8_HANDLER( mspacman_enable_decode_w ) { mspacman_enable_decode_latch(space->machine()); }
+READ8_MEMBER(pacman_state::mspacman_enable_decode_r_0x3ff8){ mspacman_enable_decode_latch(machine()); return machine().region("maincpu")->base()[offset+0x3ff8+0x10000]; }
+WRITE8_MEMBER(pacman_state::mspacman_enable_decode_w){ mspacman_enable_decode_latch(machine()); }
@@ -876,11 +864,10 @@ static WRITE8_HANDLER( mspacman_enable_decode_w ) { mspacman_enable_deco
*
*************************************/
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(pacman_state::irq_mask_w)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8, pacman_state )
@@ -888,16 +875,16 @@ static ADDRESS_MAP_START( pacman_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -915,16 +902,16 @@ static ADDRESS_MAP_START( birdiy_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
-// AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+// AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
// AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
// AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
-// AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
-// AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+// AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+// AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5080, 0x509f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x50a0, 0x50af) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
// AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -939,16 +926,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -960,14 +947,14 @@ static ADDRESS_MAP_START( mspacman_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW2") /* DSW2 */
/* overlay decode enable/disable on top */
- AM_RANGE(0x0038, 0x003f) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x0038,mspacman_disable_decode_w)
- AM_RANGE(0x03b0, 0x03b7) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x03b0,mspacman_disable_decode_w)
- AM_RANGE(0x1600, 0x1607) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x1600,mspacman_disable_decode_w)
- AM_RANGE(0x2120, 0x2127) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x2120,mspacman_disable_decode_w)
- AM_RANGE(0x3ff0, 0x3ff7) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x3ff0,mspacman_disable_decode_w)
- AM_RANGE(0x3ff8, 0x3fff) AM_READWRITE_LEGACY(mspacman_enable_decode_r_0x3ff8,mspacman_enable_decode_w)
- AM_RANGE(0x8000, 0x8007) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x8000,mspacman_disable_decode_w)
- AM_RANGE(0x97f0, 0x97f7) AM_READWRITE_LEGACY(mspacman_disable_decode_r_0x97f0,mspacman_disable_decode_w)
+ AM_RANGE(0x0038, 0x003f) AM_READWRITE(mspacman_disable_decode_r_0x0038,mspacman_disable_decode_w)
+ AM_RANGE(0x03b0, 0x03b7) AM_READWRITE(mspacman_disable_decode_r_0x03b0,mspacman_disable_decode_w)
+ AM_RANGE(0x1600, 0x1607) AM_READWRITE(mspacman_disable_decode_r_0x1600,mspacman_disable_decode_w)
+ AM_RANGE(0x2120, 0x2127) AM_READWRITE(mspacman_disable_decode_r_0x2120,mspacman_disable_decode_w)
+ AM_RANGE(0x3ff0, 0x3ff7) AM_READWRITE(mspacman_disable_decode_r_0x3ff0,mspacman_disable_decode_w)
+ AM_RANGE(0x3ff8, 0x3fff) AM_READWRITE(mspacman_enable_decode_r_0x3ff8,mspacman_enable_decode_w)
+ AM_RANGE(0x8000, 0x8007) AM_READWRITE(mspacman_disable_decode_r_0x8000,mspacman_disable_decode_w)
+ AM_RANGE(0x97f0, 0x97f7) AM_READWRITE(mspacman_disable_decode_r_0x97f0,mspacman_disable_decode_w)
/* start with 0000-3fff and 8000-bfff mapped to the ROMs */
AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_UNMAP
@@ -979,16 +966,16 @@ static ADDRESS_MAP_START( woodpek_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -1006,28 +993,28 @@ static ADDRESS_MAP_START( alibaba_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4eef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ef0, 0x4eff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x4f00, 0x4fff) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
- AM_RANGE(0x5040, 0x506f) AM_MIRROR(0xaf00) AM_WRITE_LEGACY(alibaba_sound_w) /* the sound region is not contiguous */
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
+ AM_RANGE(0x5040, 0x506f) AM_MIRROR(0xaf00) AM_WRITE(alibaba_sound_w) /* the sound region is not contiguous */
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2") /* actually at 5050-505f, here to point to free RAM */
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_WRITENOP
AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x50c1, 0x50c1) AM_MIRROR(0xaf00) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x50c2, 0x50c2) AM_MIRROR(0xaf00) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x50c2, 0x50c2) AM_MIRROR(0xaf00) AM_WRITE(irq_mask_w)
AM_RANGE(0x50c3, 0x50ff) AM_MIRROR(0xaf00) AM_WRITENOP
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf3f) AM_READ_PORT("IN0") /* IN0 */
AM_RANGE(0x5040, 0x5040) AM_MIRROR(0xaf3f) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x5080, 0x5080) AM_MIRROR(0xaf3f) AM_READ_PORT("DSW1") /* DSW1 */
- AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_READ_LEGACY(alibaba_mystery_1_r)
- AM_RANGE(0x50c1, 0x50c1) AM_MIRROR(0xaf00) AM_READ_LEGACY(alibaba_mystery_2_r)
- AM_RANGE(0x50c2, 0x50ff) AM_MIRROR(0xaf00) AM_READ_LEGACY(pacman_read_nop)
+ AM_RANGE(0x50c0, 0x50c0) AM_MIRROR(0xaf00) AM_READ(alibaba_mystery_1_r)
+ AM_RANGE(0x50c1, 0x50c1) AM_MIRROR(0xaf00) AM_READ(alibaba_mystery_2_r)
+ AM_RANGE(0x50c2, 0x50ff) AM_MIRROR(0xaf00) AM_READ(pacman_read_nop)
AM_RANGE(0x8000, 0x8fff) AM_ROM
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0c00) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_MIRROR(0x1800) AM_ROM
@@ -1040,13 +1027,13 @@ static ADDRESS_MAP_START( dremshpr_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4800, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
// AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP /* unknown */
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
// AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -1068,16 +1055,16 @@ static ADDRESS_MAP_START( epos_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -1101,13 +1088,13 @@ static ADDRESS_MAP_START( s2650games_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x1500, 0x1502) AM_MIRROR(0xe000) AM_WRITENOP
AM_RANGE(0x1503, 0x1503) AM_MIRROR(0xe000) AM_WRITE_LEGACY(pacman_flipscreen_w)
AM_RANGE(0x1504, 0x1506) AM_MIRROR(0xe000) AM_WRITENOP
- AM_RANGE(0x1507, 0x1507) AM_MIRROR(0xe000) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x1507, 0x1507) AM_MIRROR(0xe000) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x1508, 0x155f) AM_MIRROR(0xe000) AM_WRITEONLY
AM_RANGE(0x1560, 0x156f) AM_MIRROR(0xe000) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x1570, 0x157f) AM_MIRROR(0xe000) AM_WRITEONLY
AM_RANGE(0x1586, 0x1587) AM_MIRROR(0xe000) AM_WRITENOP
AM_RANGE(0x15c0, 0x15c0) AM_MIRROR(0xe000) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x15c7, 0x15c7) AM_MIRROR(0xe000) AM_WRITE_LEGACY(porky_banking_w)
+ AM_RANGE(0x15c7, 0x15c7) AM_MIRROR(0xe000) AM_WRITE(porky_banking_w)
AM_RANGE(0x1500, 0x1500) AM_MIRROR(0xe000) AM_READ_PORT("IN0")
AM_RANGE(0x1540, 0x1540) AM_MIRROR(0xe000) AM_READ_PORT("IN1")
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0xe000) AM_READ_PORT("DSW0")
@@ -1125,25 +1112,25 @@ static ADDRESS_MAP_START( rocktrv2_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM
- AM_RANGE(0x5000, 0x5000) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5003, 0x5003) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5007, 0x5007) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5007, 0x5007) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x50c0, 0x50c0) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x5fe0, 0x5fe3) AM_WRITE_LEGACY(rocktrv2_prot_data_w) AM_BASE(m_rocktrv2_prot_data)
- AM_RANGE(0x5ff0, 0x5ff0) AM_WRITE_LEGACY(rocktrv2_question_bank_w)
+ AM_RANGE(0x5fe0, 0x5fe3) AM_WRITE(rocktrv2_prot_data_w) AM_BASE(m_rocktrv2_prot_data)
+ AM_RANGE(0x5ff0, 0x5ff0) AM_WRITE(rocktrv2_question_bank_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") /* IN0 */
AM_RANGE(0x5040, 0x507f) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x5080, 0x5080) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x50c0, 0x50c0) AM_READ_PORT("DSW2") /* DSW2 */
- AM_RANGE(0x5fe0, 0x5fe0) AM_READ_LEGACY(rocktrv2_prot1_data_r)
- AM_RANGE(0x5fe4, 0x5fe4) AM_READ_LEGACY(rocktrv2_prot2_data_r)
- AM_RANGE(0x5fe8, 0x5fe8) AM_READ_LEGACY(rocktrv2_prot3_data_r)
- AM_RANGE(0x5fec, 0x5fec) AM_READ_LEGACY(rocktrv2_prot4_data_r)
+ AM_RANGE(0x5fe0, 0x5fe0) AM_READ(rocktrv2_prot1_data_r)
+ AM_RANGE(0x5fe4, 0x5fe4) AM_READ(rocktrv2_prot2_data_r)
+ AM_RANGE(0x5fe8, 0x5fe8) AM_READ(rocktrv2_prot3_data_r)
+ AM_RANGE(0x5fec, 0x5fec) AM_READ(rocktrv2_prot4_data_r)
AM_RANGE(0x5fff, 0x5fff) AM_READ_PORT("DSW2") /* DSW2 mirrored */
AM_RANGE(0x6000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xffff) AM_READ_LEGACY(rocktrv2_question_r)
+ AM_RANGE(0x8000, 0xffff) AM_READ(rocktrv2_question_r)
ADDRESS_MAP_END
@@ -1152,7 +1139,7 @@ static ADDRESS_MAP_START( bigbucks_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM
- AM_RANGE(0x5000, 0x5000) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5003, 0x5003) AM_WRITE_LEGACY(pacman_flipscreen_w)
AM_RANGE(0x5007, 0x5007) AM_WRITENOP /*?*/
@@ -1163,7 +1150,7 @@ static ADDRESS_MAP_START( bigbucks_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x5080, 0x50bf) AM_READ_PORT("DSW1") /* DSW1 */
AM_RANGE(0x50c0, 0x50ff) AM_READ_PORT("DSW2") /* DSW2 */
AM_RANGE(0x5100, 0x5100) AM_WRITENOP /*?*/
- AM_RANGE(0x6000, 0x6000) AM_WRITE_LEGACY(bigbucks_bank_w)
+ AM_RANGE(0x6000, 0x6000) AM_WRITE(bigbucks_bank_w)
AM_RANGE(0x8000, 0x9fff) AM_ROM
ADDRESS_MAP_END
@@ -1172,16 +1159,16 @@ static ADDRESS_MAP_START( mschamp_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_DEVWRITE_LEGACY("namco", pacman_sound_w)
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -1199,16 +1186,16 @@ static ADDRESS_MAP_START( crushs_map, AS_PROGRAM, 8, pacman_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x8000) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_MIRROR(0xa000) AM_RAM_WRITE_LEGACY(pacman_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ_LEGACY(pacman_read_nop) AM_WRITENOP
+ AM_RANGE(0x4800, 0x4bff) AM_MIRROR(0xa000) AM_READ(pacman_read_nop) AM_WRITENOP
AM_RANGE(0x4c00, 0x4fef) AM_MIRROR(0xa000) AM_RAM
AM_RANGE(0x4ff0, 0x4fff) AM_MIRROR(0xa000) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x5000, 0x5000) AM_MIRROR(0xaf38) AM_WRITE(irq_mask_w)
AM_RANGE(0x5001, 0x5001) AM_MIRROR(0xaf38) AM_DEVWRITE_LEGACY("namco", pacman_sound_enable_w)
AM_RANGE(0x5002, 0x5002) AM_MIRROR(0xaf38) AM_WRITENOP
AM_RANGE(0x5003, 0x5003) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_flipscreen_w)
- AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_leds_w)
- AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE_LEGACY(pacman_coin_lockout_global_w)
- AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE_LEGACY(pacman_coin_counter_w)
+ AM_RANGE(0x5004, 0x5005) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_leds_w)
+ AM_RANGE(0x5006, 0x5006) AM_MIRROR(0xaf38) AM_WRITENOP // AM_WRITE(pacman_coin_lockout_global_w)
+ AM_RANGE(0x5007, 0x5007) AM_MIRROR(0xaf38) AM_WRITE(pacman_coin_counter_w)
AM_RANGE(0x5040, 0x505f) AM_MIRROR(0xaf00) AM_WRITENOP // doesn't use pacman sound hw
AM_RANGE(0x5060, 0x506f) AM_MIRROR(0xaf00) AM_WRITEONLY AM_SHARE("spriteram2")
AM_RANGE(0x5070, 0x507f) AM_MIRROR(0xaf00) AM_WRITENOP
@@ -1228,7 +1215,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( writeport, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(pacman_interrupt_vector_w) /* Pac-Man only */
+ AM_RANGE(0x00, 0x00) AM_WRITE(pacman_interrupt_vector_w) /* Pac-Man only */
ADDRESS_MAP_END
static ADDRESS_MAP_START( vanvan_portmap, AS_IO, 8, pacman_state )
@@ -1244,12 +1231,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( piranha_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(piranha_interrupt_vector_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(piranha_interrupt_vector_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nmouse_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nmouse_interrupt_vector_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(nmouse_interrupt_vector_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( theglobp_portmap, AS_IO, 8, pacman_state )
@@ -1263,12 +1250,12 @@ static ADDRESS_MAP_START( acitya_portmap, AS_IO, 8, pacman_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mschamp_portmap, AS_IO, 8, pacman_state )
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(mschamp_kludge_r)
+ AM_RANGE(0x00, 0x00) AM_READ(mschamp_kludge_r)
AM_IMPORT_FROM(writeport)
ADDRESS_MAP_END
static ADDRESS_MAP_START( bigbucks_portmap, AS_IO, 8, pacman_state )
- AM_RANGE(0x0000, 0xffff) AM_READ_LEGACY(bigbucks_question_r)
+ AM_RANGE(0x0000, 0xffff) AM_READ(bigbucks_question_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( s2650games_writeport, AS_IO, 8, pacman_state )
@@ -1277,21 +1264,21 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( drivfrcp_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0x00) AM_READNOP
- AM_RANGE(0x01, 0x01) AM_READ_LEGACY(drivfrcp_port1_r)
+ AM_RANGE(0x01, 0x01) AM_READ(drivfrcp_port1_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
AM_IMPORT_FROM(s2650games_writeport)
ADDRESS_MAP_END
static ADDRESS_MAP_START( _8bpm_portmap, AS_IO, 8, pacman_state )
AM_RANGE(0x00, 0x00) AM_READNOP
- AM_RANGE(0x01, 0x01) AM_READ_LEGACY(_8bpm_port1_r)
+ AM_RANGE(0x01, 0x01) AM_READ(_8bpm_port1_r)
AM_RANGE(0xe0, 0xe0) AM_READNOP
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
AM_IMPORT_FROM(s2650games_writeport)
ADDRESS_MAP_END
static ADDRESS_MAP_START( porky_portmap, AS_IO, 8, pacman_state )
- AM_RANGE(0x01, 0x01) AM_READ_LEGACY(porky_port1_r)
+ AM_RANGE(0x01, 0x01) AM_READ(porky_port1_r)
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ_PORT("Sense")
AM_IMPORT_FROM(s2650games_writeport)
ADDRESS_MAP_END
@@ -5501,8 +5488,9 @@ static void maketrax_rom_decode(running_machine &machine)
static DRIVER_INIT( maketrax )
{
/* set up protection handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x5080, 0x50bf, FUNC(maketrax_special_port2_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x50c0, 0x50ff, FUNC(maketrax_special_port3_r));
+ pacman_state *state = machine.driver_data<pacman_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x5080, 0x50bf, read8_delegate(FUNC(pacman_state::maketrax_special_port2_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::maketrax_special_port3_r),state));
maketrax_rom_decode(machine);
}
@@ -5533,8 +5521,9 @@ static void korosuke_rom_decode(running_machine &machine)
static DRIVER_INIT( korosuke )
{
/* set up protection handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x5080, 0x5080, FUNC(korosuke_special_port2_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x50c0, 0x50ff, FUNC(korosuke_special_port3_r));
+ pacman_state *state = machine.driver_data<pacman_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x5080, 0x5080, read8_delegate(FUNC(pacman_state::korosuke_special_port2_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x50c0, 0x50ff, read8_delegate(FUNC(pacman_state::korosuke_special_port3_r),state));
korosuke_rom_decode(machine);
}
@@ -5827,16 +5816,15 @@ static DRIVER_INIT( mspacmbe )
}
}
-static READ8_HANDLER( cannonbp_protection_r )
+READ8_MEMBER(pacman_state::cannonbp_protection_r)
{
- pacman_state *state = space->machine().driver_data<pacman_state>();
/* At 6p where a rom would usually be there is an epoxy resin chip with 'Novomatic Industrie' Cannon Ball tm 1984 label. */
/* As I have no clue about what shall be in this chip, what follows is only a simulation which is enough to play the game. */
switch (offset)
{
default:
- logerror("CPU0 %04x: Unhandled protection read, offset %04x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU0 %04x: Unhandled protection read, offset %04x\n", cpu_get_pc(&space.device()), offset);
return 0x00;
case 0x0000: // unknown
@@ -5856,11 +5844,11 @@ static READ8_HANDLER( cannonbp_protection_r )
2BA3: 00 nop
*/
case 0x0004:
- state->m_cannonb_bit_to_read = 7;
+ m_cannonb_bit_to_read = 7;
return 0x00;
case 0x0001: // affects the ball hitting the blocks as well as jump address after bonus round
- if (cpu_get_pc(&space->device()) == 0x2b97)
- return (BIT(0x46, state->m_cannonb_bit_to_read--) << 7);
+ if (cpu_get_pc(&space.device()) == 0x2b97)
+ return (BIT(0x46, m_cannonb_bit_to_read--) << 7);
else
return 0xff; /* value taken from the bootlegs */
@@ -5879,7 +5867,8 @@ static DRIVER_INIT( cannonbp )
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_ram(0x4800, 0x4bff);
/* protection? */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x3000, 0x3fff, FUNC(cannonbp_protection_r));
+ pacman_state *state = machine.driver_data<pacman_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x3000, 0x3fff, read8_delegate(FUNC(pacman_state::cannonbp_protection_r),state));
}
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index 806b666d180..a2dd66d086b 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -51,7 +51,7 @@ static INTERRUPT_GEN( pandoras_slave_interrupt )
device_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( pandoras_int_control_w )
+WRITE8_MEMBER(pandoras_state::pandoras_int_control_w)
{
/* byte 0: irq enable (CPU A)
byte 2: coin counter 1
@@ -62,74 +62,68 @@ static WRITE8_HANDLER( pandoras_int_control_w )
other bytes unknown */
- pandoras_state *state = space->machine().driver_data<pandoras_state>();
switch (offset)
{
case 0x00: if (!data)
- device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
- state->m_irq_enable_a = data;
+ device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
+ m_irq_enable_a = data;
break;
- case 0x02: coin_counter_w(space->machine(), 0,data & 0x01);
+ case 0x02: coin_counter_w(machine(), 0,data & 0x01);
break;
- case 0x03: coin_counter_w(space->machine(), 1,data & 0x01);
+ case 0x03: coin_counter_w(machine(), 1,data & 0x01);
break;
- case 0x05: pandoras_flipscreen_w(space, 0, data);
+ case 0x05: pandoras_flipscreen_w(&space, 0, data);
break;
case 0x06: if (!data)
- device_set_input_line(state->m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
- state->m_irq_enable_b = data;
+ device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
+ m_irq_enable_b = data;
break;
- case 0x07: device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
+ case 0x07: device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
break;
- default: logerror("%04x: (irq_ctrl) write %02x to %02x\n",cpu_get_pc(&space->device()), data, offset);
+ default: logerror("%04x: (irq_ctrl) write %02x to %02x\n",cpu_get_pc(&space.device()), data, offset);
break;
}
}
-static WRITE8_HANDLER( pandoras_cpua_irqtrigger_w )
+WRITE8_MEMBER(pandoras_state::pandoras_cpua_irqtrigger_w)
{
- pandoras_state *state = space->machine().driver_data<pandoras_state>();
- if (!state->m_firq_old_data_a && data)
- device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
+ if (!m_firq_old_data_a && data)
+ device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
- state->m_firq_old_data_a = data;
+ m_firq_old_data_a = data;
}
-static WRITE8_HANDLER( pandoras_cpub_irqtrigger_w )
+WRITE8_MEMBER(pandoras_state::pandoras_cpub_irqtrigger_w)
{
- pandoras_state *state = space->machine().driver_data<pandoras_state>();
- if (!state->m_firq_old_data_b && data)
- device_set_input_line(state->m_subcpu, M6809_FIRQ_LINE, HOLD_LINE);
+ if (!m_firq_old_data_b && data)
+ device_set_input_line(m_subcpu, M6809_FIRQ_LINE, HOLD_LINE);
- state->m_firq_old_data_b = data;
+ m_firq_old_data_b = data;
}
-static WRITE8_HANDLER( pandoras_i8039_irqtrigger_w )
+WRITE8_MEMBER(pandoras_state::pandoras_i8039_irqtrigger_w)
{
- pandoras_state *state = space->machine().driver_data<pandoras_state>();
- device_set_input_line(state->m_mcu, 0, ASSERT_LINE);
+ device_set_input_line(m_mcu, 0, ASSERT_LINE);
}
-static WRITE8_HANDLER( i8039_irqen_and_status_w )
+WRITE8_MEMBER(pandoras_state::i8039_irqen_and_status_w)
{
- pandoras_state *state = space->machine().driver_data<pandoras_state>();
/* bit 7 enables IRQ */
if ((data & 0x80) == 0)
- device_set_input_line(state->m_mcu, 0, CLEAR_LINE);
+ device_set_input_line(m_mcu, 0, CLEAR_LINE);
/* bit 5 goes to 8910 port A */
- state->m_i8039_status = (data & 0x20) >> 5;
+ m_i8039_status = (data & 0x20) >> 5;
}
-static WRITE8_HANDLER( pandoras_z80_irqtrigger_w )
+WRITE8_MEMBER(pandoras_state::pandoras_z80_irqtrigger_w)
{
- pandoras_state *state = space->machine().driver_data<pandoras_state>();
- 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);
}
@@ -138,11 +132,11 @@ static ADDRESS_MAP_START( pandoras_master_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM AM_SHARE("share1") AM_BASE(m_spriteram) /* Work RAM (Shared with CPU B) */
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE_LEGACY(pandoras_cram_w) AM_SHARE("share2") AM_BASE(m_colorram) /* Color RAM (shared with CPU B) */
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE_LEGACY(pandoras_vram_w) AM_SHARE("share3") AM_BASE(m_videoram) /* Video RAM (shared with CPU B) */
- AM_RANGE(0x1800, 0x1807) AM_WRITE_LEGACY(pandoras_int_control_w) /* INT control */
+ AM_RANGE(0x1800, 0x1807) AM_WRITE(pandoras_int_control_w) /* INT control */
AM_RANGE(0x1a00, 0x1a00) AM_WRITE_LEGACY(pandoras_scrolly_w) /* bg scroll */
- AM_RANGE(0x1c00, 0x1c00) AM_WRITE_LEGACY(pandoras_z80_irqtrigger_w) /* cause INT on the Z80 */
+ AM_RANGE(0x1c00, 0x1c00) AM_WRITE(pandoras_z80_irqtrigger_w) /* cause INT on the Z80 */
AM_RANGE(0x1e00, 0x1e00) AM_WRITE_LEGACY(soundlatch_w) /* sound command to the Z80 */
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(pandoras_cpub_irqtrigger_w) /* cause FIRQ on CPU B */
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(pandoras_cpub_irqtrigger_w) /* cause FIRQ on CPU B */
AM_RANGE(0x2001, 0x2001) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x4000, 0x5fff) AM_ROM /* space for diagnostic ROM */
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("share4") /* Shared RAM with CPU B */
@@ -154,7 +148,7 @@ static ADDRESS_MAP_START( pandoras_slave_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE_LEGACY(pandoras_cram_w) AM_SHARE("share2") /* Color RAM (shared with CPU A) */
AM_RANGE(0x1400, 0x17ff) AM_RAM_WRITE_LEGACY(pandoras_vram_w) AM_SHARE("share3") /* Video RAM (shared with CPU A) */
AM_RANGE(0x1800, 0x1800) AM_READ_PORT("DSW1")
- AM_RANGE(0x1800, 0x1807) AM_WRITE_LEGACY(pandoras_int_control_w) /* INT control */
+ AM_RANGE(0x1800, 0x1807) AM_WRITE(pandoras_int_control_w) /* INT control */
AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1a01, 0x1a01) AM_READ_PORT("P1")
AM_RANGE(0x1a02, 0x1a02) AM_READ_PORT("P2")
@@ -162,7 +156,7 @@ static ADDRESS_MAP_START( pandoras_slave_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2")
// AM_RANGE(0x1e00, 0x1e00) AM_READNOP /* ??? seems to be important */
AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(pandoras_cpua_irqtrigger_w) /* cause FIRQ on CPU A */
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(pandoras_cpua_irqtrigger_w) /* cause FIRQ on CPU A */
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share4") /* Shared RAM with the CPU A */
AM_RANGE(0xe000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
@@ -174,7 +168,7 @@ static ADDRESS_MAP_START( pandoras_sound_map, AS_PROGRAM, 8, pandoras_state )
AM_RANGE(0x6000, 0x6000) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) /* AY-8910 */
AM_RANGE(0x6001, 0x6001) AM_DEVREAD_LEGACY("aysnd", ay8910_r) /* AY-8910 */
AM_RANGE(0x6002, 0x6002) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_w) /* AY-8910 */
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(pandoras_i8039_irqtrigger_w) /* cause INT on the 8039 */
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(pandoras_i8039_irqtrigger_w) /* cause INT on the 8039 */
AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(soundlatch2_w) /* sound command to the 8039 */
ADDRESS_MAP_END
@@ -185,7 +179,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pandoras_i8039_io_map, AS_IO, 8, pandoras_state )
AM_RANGE(0x00, 0xff) AM_READ_LEGACY(soundlatch2_r)
AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE_LEGACY(i8039_irqen_and_status_w)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_WRITE(i8039_irqen_and_status_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 6d64c4e252b..f0602540de9 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -44,18 +44,18 @@ penky: we need to delay the irqs at startup or it won't boot. Either one of
***************************************************************************/
-static WRITE8_HANDLER( paradise_rombank_w )
+WRITE8_MEMBER(paradise_state::paradise_rombank_w)
{
int bank = data;
- int bank_n = space->machine().region("maincpu")->bytes() / 0x4000 - 1;
+ int bank_n = machine().region("maincpu")->bytes() / 0x4000 - 1;
if (bank >= bank_n)
{
- logerror("PC %04X - invalid rom bank %x\n", cpu_get_pc(&space->device()), bank);
+ logerror("PC %04X - invalid rom bank %x\n", cpu_get_pc(&space.device()), bank);
bank %= bank_n;
}
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
}
static WRITE8_DEVICE_HANDLER( paradise_okibank_w )
@@ -66,9 +66,9 @@ static WRITE8_DEVICE_HANDLER( paradise_okibank_w )
downcast<okim6295_device *>(device)->set_bank_base((data & 0x02) ? 0x40000 : 0);
}
-static WRITE8_HANDLER( torus_coin_counter_w )
+WRITE8_MEMBER(paradise_state::torus_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data ^ 0xff);
+ coin_counter_w(machine(), 0, data ^ 0xff);
}
#define STANDARD_MAP \
@@ -104,7 +104,7 @@ static ADDRESS_MAP_START( paradise_io_map, AS_IO, 8, paradise_state )
AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(paradise_priority_w) // Layers priority
AM_RANGE(0x2001, 0x2001) AM_WRITE_LEGACY(paradise_flipscreen_w) // Flip Screen
AM_RANGE(0x2004, 0x2004) AM_WRITE_LEGACY(paradise_palbank_w) // Layers palette bank
- AM_RANGE(0x2006, 0x2006) AM_WRITE_LEGACY(paradise_rombank_w) // ROM 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(0x2010, 0x2010) AM_DEVREADWRITE("oki1", okim6295_device, read, write) // OKI 0
AM_RANGE(0x2020, 0x2020) AM_READ_PORT("DSW1")
@@ -121,7 +121,7 @@ static ADDRESS_MAP_START( torus_io_map, AS_IO, 8, paradise_state )
AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(paradise_priority_w) // Layers priority
AM_RANGE(0x2001, 0x2001) AM_WRITE_LEGACY(paradise_flipscreen_w) // Flip Screen
AM_RANGE(0x2004, 0x2004) AM_WRITE_LEGACY(paradise_palbank_w) // Layers palette bank
- AM_RANGE(0x2006, 0x2006) AM_WRITE_LEGACY(paradise_rombank_w) // ROM bank
+ AM_RANGE(0x2006, 0x2006) AM_WRITE(paradise_rombank_w) // ROM 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")
@@ -1231,7 +1231,7 @@ static DRIVER_INIT (torus)
{
paradise_state *state = machine.driver_data<paradise_state>();
state->m_sprite_inc = 4;
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_write_handler(0x2070, 0x2070, FUNC(torus_coin_counter_w));
+ machine.device("maincpu")->memory().space(AS_IO)->install_write_handler(0x2070, 0x2070, write8_delegate(FUNC(paradise_state::torus_coin_counter_w),state));
}
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index 64bac13690a..3aeec28bd53 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -26,82 +26,76 @@ static INTERRUPT_GEN( parodius_interrupt )
device_set_input_line(device, 0, HOLD_LINE);
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(parodius_state::bankedram_r)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- if (state->m_videobank & 0x01)
+ if (m_videobank & 0x01)
{
- if (state->m_videobank & 0x04)
- return space->machine().generic.paletteram.u8[offset + 0x0800];
+ if (m_videobank & 0x04)
+ return machine().generic.paletteram.u8[offset + 0x0800];
else
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
}
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(parodius_state::bankedram_w)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- if (state->m_videobank & 0x01)
+ if (m_videobank & 0x01)
{
- if (state->m_videobank & 0x04)
+ if (m_videobank & 0x04)
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset + 0x0800, data);
else
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
}
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
-static READ8_HANDLER( parodius_052109_053245_r )
+READ8_MEMBER(parodius_state::parodius_052109_053245_r)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- if (state->m_videobank & 0x02)
- return k053245_r(state->m_k053245, offset);
+ if (m_videobank & 0x02)
+ return k053245_r(m_k053245, offset);
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( parodius_052109_053245_w )
+WRITE8_MEMBER(parodius_state::parodius_052109_053245_w)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- if (state->m_videobank & 0x02)
- k053245_w(state->m_k053245, offset, data);
+ if (m_videobank & 0x02)
+ k053245_w(m_k053245, offset, data);
else
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
}
-static WRITE8_HANDLER( parodius_videobank_w )
+WRITE8_MEMBER(parodius_state::parodius_videobank_w)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- if (state->m_videobank & 0xf8)
- logerror("%04x: videobank = %02x\n",cpu_get_pc(&space->device()),data);
+ if (m_videobank & 0xf8)
+ logerror("%04x: videobank = %02x\n",cpu_get_pc(&space.device()),data);
/* bit 0 = select palette or work RAM at 0000-07ff */
/* bit 1 = select 052109 or 053245 at 2000-27ff */
/* bit 2 = select palette bank 0 or 1 */
- state->m_videobank = data;
+ m_videobank = data;
}
-static WRITE8_HANDLER( parodius_3fc0_w )
+WRITE8_MEMBER(parodius_state::parodius_3fc0_w)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
if ((data & 0xf4) != 0x10)
- logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(&space->device()),data);
+ logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(&space.device()),data);
/* bit 0/1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 3 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
/* other bits unknown */
}
@@ -111,10 +105,9 @@ static READ8_DEVICE_HANDLER( parodius_sound_r )
return k053260_r(device, 2 + offset);
}
-static WRITE8_HANDLER( parodius_sh_irqtrigger_w )
+WRITE8_MEMBER(parodius_state::parodius_sh_irqtrigger_w)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- 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);
}
#if 0
@@ -134,18 +127,17 @@ static TIMER_CALLBACK( nmi_callback )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( sound_arm_nmi_w )
+WRITE8_MEMBER(parodius_state::sound_arm_nmi_w)
{
- parodius_state *state = space->machine().driver_data<parodius_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- space->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
}
/********************************************/
static ADDRESS_MAP_START( parodius_map, AS_PROGRAM, 8, parodius_state )
- AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE(m_ram)
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram)
AM_RANGE(0x0800, 0x1fff) AM_RAM
AM_RANGE(0x3f8c, 0x3f8c) AM_READ_PORT("P1")
AM_RANGE(0x3f8d, 0x3f8d) AM_READ_PORT("P2")
@@ -154,11 +146,11 @@ static ADDRESS_MAP_START( parodius_map, AS_PROGRAM, 8, parodius_state )
AM_RANGE(0x3f90, 0x3f90) AM_READ_PORT("DSW2")
AM_RANGE(0x3fa0, 0x3faf) AM_DEVREADWRITE_LEGACY("k053245", k053244_r, k053244_w)
AM_RANGE(0x3fb0, 0x3fbf) AM_DEVWRITE_LEGACY("k053251", k053251_w)
- AM_RANGE(0x3fc0, 0x3fc0) AM_READWRITE_LEGACY(watchdog_reset_r,parodius_3fc0_w)
- AM_RANGE(0x3fc4, 0x3fc4) AM_WRITE_LEGACY(parodius_videobank_w)
- AM_RANGE(0x3fc8, 0x3fc8) AM_WRITE_LEGACY(parodius_sh_irqtrigger_w)
+ AM_RANGE(0x3fc0, 0x3fc0) AM_READ_LEGACY(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(0x2000, 0x27ff) AM_READWRITE_LEGACY(parodius_052109_053245_r, parodius_052109_053245_w)
+ 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 */
AM_RANGE(0xa000, 0xffff) AM_ROM /* ROM */
@@ -168,7 +160,7 @@ static ADDRESS_MAP_START( parodius_sound_map, AS_PROGRAM, 8, parodius_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r,ym2151_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r,k053260_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index c5e770ed274..3102d54c075 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -43,11 +43,11 @@ static DRIVER_INIT( pastelg )
nb1413m3_type = NB1413M3_PASTELG;
}
-static READ8_HANDLER( pastelg_sndrom_r )
+READ8_MEMBER(pastelg_state::pastelg_sndrom_r)
{
- UINT8 *ROM = space->machine().region("voice")->base();
+ UINT8 *ROM = machine().region("voice")->base();
- return ROM[pastelg_blitter_src_addr_r(space) & 0x7fff];
+ return ROM[pastelg_blitter_src_addr_r(&space) & 0x7fff];
}
static ADDRESS_MAP_START( pastelg_map, AS_PROGRAM, 8, pastelg_state )
@@ -55,9 +55,9 @@ static ADDRESS_MAP_START( pastelg_map, AS_PROGRAM, 8, pastelg_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static READ8_HANDLER( pastelg_irq_ack_r )
+READ8_MEMBER(pastelg_state::pastelg_irq_ack_r)
{
- device_set_input_line(&space->device(), 0, CLEAR_LINE);
+ device_set_input_line(&space.device(), 0, CLEAR_LINE);
return 0;
}
@@ -71,47 +71,44 @@ static ADDRESS_MAP_START( pastelg_io_map, AS_IO, 8, pastelg_state )
AM_RANGE(0x90, 0x96) AM_WRITE_LEGACY(pastelg_blitter_w)
AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(nb1413m3_inputport1_r, nb1413m3_inputportsel_w)
AM_RANGE(0xb0, 0xb0) AM_READWRITE_LEGACY(nb1413m3_inputport2_r, pastelg_romsel_w)
- AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(pastelg_sndrom_r)
+ AM_RANGE(0xc0, 0xc0) AM_READ(pastelg_sndrom_r)
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(pastelg_clut_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(pastelg_irq_ack_r) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
+ AM_RANGE(0xd0, 0xd0) AM_READ(pastelg_irq_ack_r) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
AM_RANGE(0xe0, 0xe0) AM_READ_PORT("DSWC")
ADDRESS_MAP_END
-static READ8_HANDLER( threeds_inputport1_r )
+READ8_MEMBER(pastelg_state::threeds_inputport1_r)
{
- pastelg_state *state = space->machine().driver_data<pastelg_state>();
- switch(state->m_mux_data)
+ switch(m_mux_data)
{
- case 0x01: return input_port_read(space->machine(),"KEY0_PL1");
- case 0x02: return input_port_read(space->machine(),"KEY1_PL1");
- case 0x04: return input_port_read(space->machine(),"KEY2_PL1");
- case 0x08: return input_port_read(space->machine(),"KEY3_PL1");
- case 0x10: return input_port_read(space->machine(),"KEY4_PL1");
+ case 0x01: return input_port_read(machine(),"KEY0_PL1");
+ case 0x02: return input_port_read(machine(),"KEY1_PL1");
+ case 0x04: return input_port_read(machine(),"KEY2_PL1");
+ case 0x08: return input_port_read(machine(),"KEY3_PL1");
+ case 0x10: return input_port_read(machine(),"KEY4_PL1");
}
return 0xff;
}
-static READ8_HANDLER( threeds_inputport2_r )
+READ8_MEMBER(pastelg_state::threeds_inputport2_r)
{
- pastelg_state *state = space->machine().driver_data<pastelg_state>();
- switch(state->m_mux_data)
+ switch(m_mux_data)
{
- case 0x01: return input_port_read(space->machine(),"KEY0_PL2");
- case 0x02: return input_port_read(space->machine(),"KEY1_PL2");
- case 0x04: return input_port_read(space->machine(),"KEY2_PL2");
- case 0x08: return input_port_read(space->machine(),"KEY3_PL2");
- case 0x10: return input_port_read(space->machine(),"KEY4_PL2");
+ case 0x01: return input_port_read(machine(),"KEY0_PL2");
+ case 0x02: return input_port_read(machine(),"KEY1_PL2");
+ case 0x04: return input_port_read(machine(),"KEY2_PL2");
+ case 0x08: return input_port_read(machine(),"KEY3_PL2");
+ case 0x10: return input_port_read(machine(),"KEY4_PL2");
}
return 0xff;
}
-static WRITE8_HANDLER( threeds_inputportsel_w )
+WRITE8_MEMBER(pastelg_state::threeds_inputportsel_w)
{
- pastelg_state *state = space->machine().driver_data<pastelg_state>();
- state->m_mux_data = ~data;
+ m_mux_data = ~data;
}
static ADDRESS_MAP_START( threeds_io_map, AS_IO, 8, pastelg_state )
@@ -120,11 +117,11 @@ static ADDRESS_MAP_START( threeds_io_map, AS_IO, 8, pastelg_state )
AM_RANGE(0x82, 0x83) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(threeds_romsel_w )
AM_RANGE(0xf0, 0xf6) AM_WRITE_LEGACY(pastelg_blitter_w)
- AM_RANGE(0xa0, 0xa0) AM_READWRITE_LEGACY(threeds_inputport1_r, threeds_inputportsel_w)
- AM_RANGE(0xb0, 0xb0) AM_READ_LEGACY(threeds_inputport2_r) AM_WRITE_LEGACY(threeds_output_w)//writes: bit 3 is coin lockout, bit 1 is coin counter
+ AM_RANGE(0xa0, 0xa0) AM_READWRITE(threeds_inputport1_r, threeds_inputportsel_w)
+ AM_RANGE(0xb0, 0xb0) AM_READ(threeds_inputport2_r) AM_WRITE_LEGACY(threeds_output_w)//writes: bit 3 is coin lockout, bit 1 is coin counter
AM_RANGE(0xc0, 0xcf) AM_WRITE_LEGACY(pastelg_clut_w)
AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(threeds_rom_readback_r)
- AM_RANGE(0xd0, 0xd0) AM_READ_LEGACY(pastelg_irq_ack_r) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
+ AM_RANGE(0xd0, 0xd0) AM_READ(pastelg_irq_ack_r) AM_DEVWRITE_LEGACY("dac", DAC_WRITE)
ADDRESS_MAP_END
static INPUT_PORTS_START( pastelg )
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 667c6c26a2b..a842bc2ea5d 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -70,18 +70,16 @@ Stephh's notes (based on the game Z80 code and some tests) :
#include "includes/pbaction.h"
-static WRITE8_HANDLER( pbaction_sh_command_w )
+WRITE8_MEMBER(pbaction_state::pbaction_sh_command_w)
{
- pbaction_state *state = space->machine().driver_data<pbaction_state>();
soundlatch_w(space, offset, data);
- device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0x00);
+ device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0x00);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(pbaction_state::nmi_mask_w)
{
- pbaction_state *state = space->machine().driver_data<pbaction_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8, pbaction_state )
@@ -94,13 +92,13 @@ static ADDRESS_MAP_START( pbaction_map, AS_PROGRAM, 8, pbaction_state )
AM_RANGE(0xdc00, 0xdfff) AM_RAM_WRITE_LEGACY(pbaction_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xe000, 0xe07f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xe400, 0xe5ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_le_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1") AM_WRITE(nmi_mask_w)
AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2")
AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe604, 0xe604) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(pbaction_flipscreen_w)
AM_RANGE(0xe605, 0xe605) AM_READ_PORT("DSW2")
AM_RANGE(0xe606, 0xe606) AM_READNOP /* ??? */ AM_WRITE_LEGACY(pbaction_scroll_w)
- AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(pbaction_sh_command_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(pbaction_sh_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( pbaction_sound_map, AS_PROGRAM, 8, pbaction_state )
@@ -470,15 +468,14 @@ ROM_START( pbaction5 )
ROM_LOAD( "p13.bin", 0x04000, 0x2000, CRC(af6e9817) SHA1(56f47d25761b3850c49a3a81b5ea35f12bd77b14) )
ROM_END
-static READ8_HANDLER( pbactio3_prot_kludge_r )
+READ8_MEMBER(pbaction_state::pbactio3_prot_kludge_r)
{
- pbaction_state *state = space->machine().driver_data<pbaction_state>();
/* on startup, the game expect this location to NOT act as RAM */
- if (cpu_get_pc(&space->device()) == 0xab80)
+ if (cpu_get_pc(&space.device()) == 0xab80)
return 0;
- return state->m_work_ram[0];
+ return m_work_ram[0];
}
static DRIVER_INIT( pbactio3 )
@@ -496,7 +493,8 @@ static DRIVER_INIT( pbactio3 )
pbaction_decode(machine, "maincpu");
/* install a protection (?) workaround */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc000, 0xc000, FUNC(pbactio3_prot_kludge_r) );
+ pbaction_state *state = machine.driver_data<pbaction_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc000, 0xc000, read8_delegate(FUNC(pbaction_state::pbactio3_prot_kludge_r),state) );
}
static DRIVER_INIT( pbactio4 )
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 61d3b3be687..63f7ef71e47 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -22,26 +22,26 @@
/***************************************************************************/
-static WRITE8_HANDLER( pcktgal_bank_w )
+WRITE8_MEMBER(pcktgal_state::pcktgal_bank_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
- if (data & 1) { memory_set_bankptr(space->machine(), "bank1", &RAM[0x4000]); }
- else { memory_set_bankptr(space->machine(), "bank1", &RAM[0x10000]); }
+ if (data & 1) { memory_set_bankptr(machine(), "bank1", &RAM[0x4000]); }
+ else { memory_set_bankptr(machine(), "bank1", &RAM[0x10000]); }
- if (data & 2) { memory_set_bankptr(space->machine(), "bank2", &RAM[0x6000]); }
- else { memory_set_bankptr(space->machine(), "bank2", &RAM[0x12000]); }
+ if (data & 2) { memory_set_bankptr(machine(), "bank2", &RAM[0x6000]); }
+ else { memory_set_bankptr(machine(), "bank2", &RAM[0x12000]); }
}
-static WRITE8_HANDLER( pcktgal_sound_bank_w )
+WRITE8_MEMBER(pcktgal_state::pcktgal_sound_bank_w)
{
- memory_set_bank(space->machine(), "bank3", (data >> 2) & 1);
+ memory_set_bank(machine(), "bank3", (data >> 2) & 1);
}
-static WRITE8_HANDLER( pcktgal_sound_w )
+WRITE8_MEMBER(pcktgal_state::pcktgal_sound_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -57,10 +57,9 @@ static void pcktgal_adpcm_int(device_t *device)
cputag_set_input_line(device->machine(), "audiocpu", M6502_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( pcktgal_adpcm_data_w )
+WRITE8_MEMBER(pcktgal_state::pcktgal_adpcm_data_w)
{
- pcktgal_state *state = space->machine().driver_data<pcktgal_state>();
- state->m_msm5205next=data;
+ m_msm5205next=data;
}
static READ8_DEVICE_HANDLER( pcktgal_adpcm_reset_r )
@@ -79,8 +78,8 @@ static ADDRESS_MAP_START( pcktgal_map, AS_PROGRAM, 8, pcktgal_state )
AM_RANGE(0x1800, 0x1807) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control0_8bit_w)
AM_RANGE(0x1810, 0x181f) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_control1_8bit_r, deco_bac06_pf_control1_8bit_w)
- AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("P2") AM_WRITE_LEGACY(pcktgal_sound_w)
- AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW") AM_WRITE_LEGACY(pcktgal_bank_w)
+ AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("P2") AM_WRITE(pcktgal_sound_w)
+ AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW") AM_WRITE(pcktgal_bank_w)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -93,8 +92,8 @@ static ADDRESS_MAP_START( pcktgal_sound_map, AS_PROGRAM, 8, pcktgal_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(pcktgal_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(pcktgal_sound_bank_w)
+ 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_LEGACY(soundlatch_r)
AM_RANGE(0x3400, 0x3400) AM_DEVREAD_LEGACY("msm", pcktgal_adpcm_reset_r) /* ? not sure */
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank3")
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index e2ada5dad87..4389d7178b6 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -194,69 +194,64 @@ Notes:
UINT16 *pgm_mainram;
-static READ16_HANDLER( pgm_videoram_r )
+READ16_MEMBER(pgm_state::pgm_videoram_r)
{
- pgm_state *state = space->machine().driver_data<pgm_state>();
if (offset < 0x4000 / 2)
- return state->m_bg_videoram[offset&0x7ff];
+ return m_bg_videoram[offset&0x7ff];
else if (offset < 0x7000 / 2)
- return state->m_tx_videoram[offset&0xfff];
+ return m_tx_videoram[offset&0xfff];
else
- return state->m_videoram[offset];
+ return m_videoram[offset];
}
-static WRITE16_HANDLER( pgm_videoram_w )
+WRITE16_MEMBER(pgm_state::pgm_videoram_w)
{
- pgm_state *state = space->machine().driver_data<pgm_state>();
if (offset < 0x4000 / 2)
- pgm_bg_videoram_w(space, offset&0x7ff, data, mem_mask);
+ pgm_bg_videoram_w(&space, offset&0x7ff, data, mem_mask);
else if (offset < 0x7000 / 2)
- pgm_tx_videoram_w(space, offset&0xfff, data, mem_mask);
+ pgm_tx_videoram_w(&space, offset&0xfff, data, mem_mask);
else
- COMBINE_DATA(&state->m_videoram[offset]);
+ COMBINE_DATA(&m_videoram[offset]);
}
-static READ16_HANDLER ( z80_ram_r )
+READ16_MEMBER(pgm_state::z80_ram_r)
{
- pgm_state *state = space->machine().driver_data<pgm_state>();
- return (state->m_z80_mainram[offset * 2] << 8) | state->m_z80_mainram[offset * 2 + 1];
+ return (m_z80_mainram[offset * 2] << 8) | m_z80_mainram[offset * 2 + 1];
}
-static WRITE16_HANDLER ( z80_ram_w )
+WRITE16_MEMBER(pgm_state::z80_ram_w)
{
- pgm_state *state = space->machine().driver_data<pgm_state>();
- int pc = cpu_get_pc(&space->device());
+ int pc = cpu_get_pc(&space.device());
if (ACCESSING_BITS_8_15)
- state->m_z80_mainram[offset * 2] = data >> 8;
+ m_z80_mainram[offset * 2] = data >> 8;
if (ACCESSING_BITS_0_7)
- state->m_z80_mainram[offset * 2 + 1] = data;
+ m_z80_mainram[offset * 2 + 1] = data;
if (pc != 0xf12 && pc != 0xde2 && pc != 0x100c50 && pc != 0x100b20)
if (PGMLOGERROR)
- logerror("Z80: write %04x, %04x @ %04x (%06x)\n", offset * 2, data, mem_mask, cpu_get_pc(&space->device()));
+ logerror("Z80: write %04x, %04x @ %04x (%06x)\n", offset * 2, data, mem_mask, cpu_get_pc(&space.device()));
}
-static WRITE16_HANDLER ( z80_reset_w )
+WRITE16_MEMBER(pgm_state::z80_reset_w)
{
- pgm_state *state = space->machine().driver_data<pgm_state>();
if (PGMLOGERROR)
- logerror("Z80: reset %04x @ %04x (%06x)\n", data, mem_mask, cpu_get_pc(&space->device()));
+ logerror("Z80: reset %04x @ %04x (%06x)\n", data, mem_mask, cpu_get_pc(&space.device()));
if (data == 0x5050)
{
- state->m_ics->reset();
- device_set_input_line(state->m_soundcpu, INPUT_LINE_HALT, CLEAR_LINE);
- device_set_input_line(state->m_soundcpu, INPUT_LINE_RESET, PULSE_LINE);
+ m_ics->reset();
+ device_set_input_line(m_soundcpu, INPUT_LINE_HALT, CLEAR_LINE);
+ device_set_input_line(m_soundcpu, INPUT_LINE_RESET, PULSE_LINE);
if(0)
{
FILE *out;
out = fopen("z80ram.bin", "wb");
- fwrite(state->m_z80_mainram, 1, 65536, out);
+ fwrite(m_z80_mainram, 1, 65536, out);
fclose(out);
}
}
@@ -264,33 +259,32 @@ static WRITE16_HANDLER ( z80_reset_w )
{
/* this might not be 100% correct, but several of the games (ddp2, puzzli2 etc. expect the z80 to be turned
off during data uploads, they write here before the upload */
- device_set_input_line(state->m_soundcpu, INPUT_LINE_HALT, ASSERT_LINE);
+ device_set_input_line(m_soundcpu, INPUT_LINE_HALT, ASSERT_LINE);
}
}
-static WRITE16_HANDLER ( z80_ctrl_w )
+WRITE16_MEMBER(pgm_state::z80_ctrl_w)
{
if (PGMLOGERROR)
- logerror("Z80: ctrl %04x @ %04x (%06x)\n", data, mem_mask, cpu_get_pc(&space->device()));
+ logerror("Z80: ctrl %04x @ %04x (%06x)\n", data, mem_mask, cpu_get_pc(&space.device()));
}
-static WRITE16_HANDLER ( m68k_l1_w )
+WRITE16_MEMBER(pgm_state::m68k_l1_w)
{
- pgm_state *state = space->machine().driver_data<pgm_state>();
if(ACCESSING_BITS_0_7)
{
if (PGMLOGERROR)
- logerror("SL 1 m68.w %02x (%06x) IRQ\n", data & 0xff, cpu_get_pc(&space->device()));
+ logerror("SL 1 m68.w %02x (%06x) IRQ\n", data & 0xff, cpu_get_pc(&space.device()));
soundlatch_w(space, 0, data);
- device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE );
+ device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE );
}
}
-static WRITE8_HANDLER( z80_l3_w )
+WRITE8_MEMBER(pgm_state::z80_l3_w)
{
if (PGMLOGERROR)
- logerror("SL 3 z80.w %02x (%04x)\n", data, cpu_get_pc(&space->device()));
+ logerror("SL 3 z80.w %02x (%04x)\n", data, cpu_get_pc(&space.device()));
soundlatch3_w(space, 0, data);
}
@@ -316,7 +310,7 @@ ADDRESS_MAP_END
ADDRESS_MAP_START( pgm_z80_io, AS_IO, 8, pgm_state )
AM_RANGE(0x8000, 0x8003) AM_DEVREADWRITE_LEGACY("ics", ics2115_device::read, ics2115_device::write)
- AM_RANGE(0x8100, 0x81ff) AM_READWRITE_LEGACY(soundlatch3_r, z80_l3_w)
+ AM_RANGE(0x8100, 0x81ff) AM_READ_LEGACY(soundlatch3_r) AM_WRITE(z80_l3_w)
AM_RANGE(0x8200, 0x82ff) AM_READWRITE_LEGACY(soundlatch_r, soundlatch_w)
AM_RANGE(0x8400, 0x84ff) AM_READWRITE_LEGACY(soundlatch2_r, soundlatch2_w)
ADDRESS_MAP_END
@@ -328,15 +322,15 @@ ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16, pgm_state )
AM_RANGE(0x800000, 0x81ffff) AM_RAM AM_MIRROR(0x0e0000) AM_BASE_LEGACY(&pgm_mainram) AM_SHARE("sram") /* Main Ram */
- AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_READWRITE_LEGACY(pgm_videoram_r, pgm_videoram_w) AM_BASE(m_videoram) /* IGS023 VIDEO CHIP */
+ AM_RANGE(0x900000, 0x907fff) AM_MIRROR(0x0f8000) AM_READWRITE(pgm_videoram_r, pgm_videoram_w) AM_BASE(m_videoram) /* IGS023 VIDEO CHIP */
AM_RANGE(0xa00000, 0xa011ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xb00000, 0xb0ffff) AM_RAM AM_BASE(m_videoregs) /* Video Regs inc. Zoom Table */
- AM_RANGE(0xc00002, 0xc00003) AM_READWRITE_LEGACY(soundlatch_word_r, m68k_l1_w)
+ AM_RANGE(0xc00002, 0xc00003) AM_READ_LEGACY(soundlatch_word_r) AM_WRITE(m68k_l1_w)
AM_RANGE(0xc00004, 0xc00005) AM_READWRITE_LEGACY(soundlatch2_word_r, soundlatch2_word_w)
AM_RANGE(0xc00006, 0xc00007) AM_DEVREADWRITE8("rtc", v3021_device, read, write, 0x00ff)
- AM_RANGE(0xc00008, 0xc00009) AM_WRITE_LEGACY(z80_reset_w)
- AM_RANGE(0xc0000a, 0xc0000b) AM_WRITE_LEGACY(z80_ctrl_w)
+ AM_RANGE(0xc00008, 0xc00009) AM_WRITE(z80_reset_w)
+ AM_RANGE(0xc0000a, 0xc0000b) AM_WRITE(z80_ctrl_w)
AM_RANGE(0xc0000c, 0xc0000d) AM_READWRITE_LEGACY(soundlatch3_word_r, soundlatch3_word_w)
AM_RANGE(0xc08000, 0xc08001) AM_READ_PORT("P1P2")
@@ -344,7 +338,7 @@ ADDRESS_MAP_START( pgm_base_mem, AS_PROGRAM, 16, pgm_state )
AM_RANGE(0xc08004, 0xc08005) AM_READ_PORT("Service")
AM_RANGE(0xc08006, 0xc08007) AM_READ_PORT("DSW")
- AM_RANGE(0xc10000, 0xc1ffff) AM_READWRITE_LEGACY(z80_ram_r, z80_ram_w) /* Z80 Program */
+ AM_RANGE(0xc10000, 0xc1ffff) AM_READWRITE(z80_ram_r, z80_ram_w) /* Z80 Program */
ADDRESS_MAP_END
ADDRESS_MAP_START( pgm_mem, AS_PROGRAM, 16, pgm_state )
diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c
index 581128f8e5b..dea2110c380 100644
--- a/src/mame/drivers/pingpong.c
+++ b/src/mame/drivers/pingpong.c
@@ -12,9 +12,8 @@ Ping Pong (c) 1985 Konami
-static WRITE8_HANDLER( cashquiz_question_bank_high_w )
+WRITE8_MEMBER(pingpong_state::cashquiz_question_bank_high_w)
{
- pingpong_state *state = space->machine().driver_data<pingpong_state>();
if( data != 0xff )
{
int i;
@@ -23,37 +22,35 @@ static WRITE8_HANDLER( cashquiz_question_bank_high_w )
{
if((~data & 0xff) == 1 << i)
{
- state->m_question_addr_high = i*0x8000;
+ m_question_addr_high = i*0x8000;
return;
}
}
}
}
-static WRITE8_HANDLER( cashquiz_question_bank_low_w )
+WRITE8_MEMBER(pingpong_state::cashquiz_question_bank_low_w)
{
- pingpong_state *state = space->machine().driver_data<pingpong_state>();
if(data >= 0x60 && data <= 0xdf)
{
static const char * const bankname[] = { "bank1", "bank2", "bank3", "bank4", "bank5", "bank6", "bank7", "bank8" };
const char *bank = bankname[data & 7];
- int bankaddr = state->m_question_addr_high | ((data - 0x60) * 0x100);
- UINT8 *questions = space->machine().region("user1")->base() + bankaddr;
- memory_set_bankptr(space->machine(), bank,questions);
+ int bankaddr = m_question_addr_high | ((data - 0x60) * 0x100);
+ UINT8 *questions = machine().region("user1")->base() + bankaddr;
+ memory_set_bankptr(machine(), bank,questions);
}
}
-static WRITE8_HANDLER( coin_w )
+WRITE8_MEMBER(pingpong_state::coin_w)
{
- pingpong_state *state = space->machine().driver_data<pingpong_state>();
/* bit 2 = irq enable, bit 3 = nmi enable */
- state->m_intenable = data & 0x0c;
+ m_intenable = data & 0x0c;
/* bit 0/1 = coin counters */
- coin_counter_w(space->machine(), 0,data & 1);
- coin_counter_w(space->machine(), 1,data & 2);
+ coin_counter_w(machine(), 0,data & 1);
+ coin_counter_w(machine(), 1,data & 2);
/* other bits unknown */
}
@@ -99,7 +96,7 @@ static ADDRESS_MAP_START( pingpong_map, AS_PROGRAM, 8, pingpong_state )
AM_RANGE(0xa880, 0xa880) AM_READ_PORT("INPUTS")
AM_RANGE(0xa900, 0xa900) AM_READ_PORT("DSW1")
AM_RANGE(0xa980, 0xa980) AM_READ_PORT("DSW2")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(coin_w) /* coin counters + irq enables */
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* coin counters + irq enables */
AM_RANGE(0xa200, 0xa200) AM_WRITENOP /* SN76496 data latch */
AM_RANGE(0xa400, 0xa400) AM_DEVWRITE_LEGACY("snsnd", sn76496_w) /* trigger read */
AM_RANGE(0xa600, 0xa600) AM_WRITE_LEGACY(watchdog_reset_w)
@@ -116,7 +113,7 @@ static ADDRESS_MAP_START( merlinmm_map, AS_PROGRAM, 8, pingpong_state )
AM_RANGE(0x9000, 0x9002) AM_RAM
AM_RANGE(0x9003, 0x9052) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x9053, 0x97ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(coin_w) /* irq enables */
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(coin_w) /* irq enables */
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa080, 0xa080) AM_READ_PORT("IN1")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN2")
@@ -586,8 +583,9 @@ static DRIVER_INIT( cashquiz )
ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7);
/* questions banking handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x4000, 0x4000, FUNC(cashquiz_question_bank_high_w));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x4001, 0x4001, FUNC(cashquiz_question_bank_low_w));
+ pingpong_state *state = machine.driver_data<pingpong_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x4000, 0x4000, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_high_w),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x4001, 0x4001, write8_delegate(FUNC(pingpong_state::cashquiz_question_bank_low_w),state));
// 8 independents banks for questions
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0x5000, 0x50ff, "bank1");
diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c
index 0fa760a491b..e2ed063a121 100644
--- a/src/mame/drivers/pirates.c
+++ b/src/mame/drivers/pirates.c
@@ -105,11 +105,11 @@ static const eeprom_interface eeprom_intf =
"*10011xxxx" /* unlock command */
};
-static WRITE16_HANDLER( pirates_out_w )
+WRITE16_MEMBER(pirates_state::pirates_out_w)
{
if (ACCESSING_BITS_0_7)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
/* bits 0-2 control EEPROM */
eeprom->write_bit(data & 0x04);
@@ -117,13 +117,13 @@ static WRITE16_HANDLER( pirates_out_w )
eeprom->set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
/* bit 6 selects oki bank */
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
oki->set_bank_base((data & 0x40) ? 0x40000 : 0x00000);
/* bit 7 used (function unknown) */
}
-// logerror("%06x: out_w %04x\n",cpu_get_pc(&space->device()),data);
+// logerror("%06x: out_w %04x\n",cpu_get_pc(&space.device()),data);
}
static CUSTOM_INPUT( prot_r )
@@ -170,7 +170,7 @@ static ADDRESS_MAP_START( pirates_map, AS_PROGRAM, 16, pirates_state )
// AM_RANGE(0x500000, 0x5007ff) AM_RAM
AM_RANGE(0x500000, 0x5007ff) AM_WRITEONLY AM_BASE(m_spriteram)
// AM_RANGE(0x500800, 0x50080f) AM_WRITENOP
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(pirates_out_w)
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(pirates_out_w)
AM_RANGE(0x700000, 0x700001) AM_WRITEONLY AM_BASE(m_scroll) // scroll reg
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x900000, 0x90017f) AM_RAM // more of tilemaps ?
@@ -449,7 +449,7 @@ static DRIVER_INIT( pirates )
rom[0x62c0/2] = 0x6006; // beq -> bra
}
-static READ16_HANDLER( genix_prot_r ) { if(!offset) return 0x0004; else return 0x0000; }
+READ16_MEMBER(pirates_state::genix_prot_r){ if(!offset) return 0x0004; else return 0x0000; }
static DRIVER_INIT( genix )
{
@@ -460,7 +460,8 @@ static DRIVER_INIT( genix )
/* If this value is increased then something has gone wrong and the protection failed */
/* Write-protect it for now */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x109e98, 0x109e9b, FUNC(genix_prot_r) );
+ pirates_state *state = machine.driver_data<pirates_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x109e98, 0x109e9b, read16_delegate(FUNC(pirates_state::genix_prot_r),state));
}
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index 6c449f99bbf..b643d5ffcba 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -76,20 +76,19 @@ static INTERRUPT_GEN( pitnrun_nmi_source )
if(state->m_nmi) device_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE);
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(pitnrun_state::nmi_enable_w)
{
- pitnrun_state *state = space->machine().driver_data<pitnrun_state>();
- state->m_nmi = data & 1;
+ m_nmi = data & 1;
}
-static WRITE8_HANDLER(pitnrun_hflip_w)
+WRITE8_MEMBER(pitnrun_state::pitnrun_hflip_w)
{
- flip_screen_x_set(space->machine(), data);
+ flip_screen_x_set(machine(), data);
}
-static WRITE8_HANDLER(pitnrun_vflip_w)
+WRITE8_MEMBER(pitnrun_state::pitnrun_vflip_w)
{
- flip_screen_y_set(space->machine(), data);
+ flip_screen_y_set(machine(), data);
}
static ADDRESS_MAP_START( pitnrun_map, AS_PROGRAM, 8, pitnrun_state )
@@ -100,12 +99,12 @@ static ADDRESS_MAP_START( pitnrun_map, AS_PROGRAM, 8, pitnrun_state )
AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
AM_RANGE(0xa800, 0xa807) AM_WRITENOP /* Analog Sound */
- AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(nmi_enable_w)
AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(pitnrun_color_select_w)
AM_RANGE(0xb004, 0xb004) AM_WRITENOP/* COLOR SEL 2 - not used ?*/
AM_RANGE(0xb005, 0xb005) AM_WRITE_LEGACY(pitnrun_char_bank_select)
- AM_RANGE(0xb006, 0xb006) AM_WRITE_LEGACY(pitnrun_hflip_w)
- AM_RANGE(0xb007, 0xb007) AM_WRITE_LEGACY(pitnrun_vflip_w)
+ AM_RANGE(0xb006, 0xb006) AM_WRITE(pitnrun_hflip_w)
+ AM_RANGE(0xb007, 0xb007) AM_WRITE(pitnrun_vflip_w)
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc800, 0xc801) AM_WRITE_LEGACY(pitnrun_scroll_w)
AM_RANGE(0xc802, 0xc802) AM_WRITENOP/* VP(VF?)MCV - not used ?*/
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 4fc25ed3dcf..ebdeadee3d7 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -96,14 +96,14 @@ ADDRESS_MAP_END
/* Pocket Gal Deluxe (bootleg!) */
-static READ16_HANDLER( pckgaldx_unknown_r )
+READ16_MEMBER(pktgaldx_state::pckgaldx_unknown_r)
{
return 0xffff;
}
-static READ16_HANDLER( pckgaldx_protection_r )
+READ16_MEMBER(pktgaldx_state::pckgaldx_protection_r)
{
- logerror("pckgaldx_protection_r address %06x\n",cpu_get_pc(&space->device()));
+ logerror("pckgaldx_protection_r address %06x\n",cpu_get_pc(&space.device()));
return -1;
}
@@ -136,7 +136,7 @@ static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16, pktgaldx_state )
// AM_RANGE(0x160000, 0x167fff) AM_RAM
AM_RANGE(0x164800, 0x164801) AM_DEVWRITE_LEGACY("oki2", pktgaldx_oki_bank_w)
AM_RANGE(0x160000, 0x167fff) AM_WRITENOP
- AM_RANGE(0x16500a, 0x16500b) AM_READ_LEGACY(pckgaldx_unknown_r)
+ AM_RANGE(0x16500a, 0x16500b) AM_READ(pckgaldx_unknown_r)
/* should we really be using these to read the i/o in the BOOTLEG?
these look like i/o through protection ... */
@@ -144,8 +144,8 @@ static ADDRESS_MAP_START( pktgaldb_map, AS_PROGRAM, 16, pktgaldx_state )
AM_RANGE(0x167c4c, 0x167c4d) AM_READ_PORT("DSW")
AM_RANGE(0x167db2, 0x167db3) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x167d10, 0x167d11) AM_READ_LEGACY(pckgaldx_protection_r) // check code at 6ea
- AM_RANGE(0x167d1a, 0x167d1b) AM_READ_LEGACY(pckgaldx_protection_r) // check code at 7C4
+ AM_RANGE(0x167d10, 0x167d11) AM_READ(pckgaldx_protection_r) // check code at 6ea
+ AM_RANGE(0x167d1a, 0x167d1b) AM_READ(pckgaldx_protection_r) // check code at 7C4
AM_RANGE(0x170000, 0x17ffff) AM_RAM
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index 51ef295d757..5a5c7ab10a3 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -307,48 +307,44 @@ Notes & Todo:
/******************************************************************************/
-static WRITE8_HANDLER( up8w_w )
+WRITE8_MEMBER(playch10_state::up8w_w)
{
- playch10_state *state = space->machine().driver_data<playch10_state>();
- state->m_up_8w = data & 1;
+ m_up_8w = data & 1;
}
-static READ8_HANDLER( ram_8w_r )
+READ8_MEMBER(playch10_state::ram_8w_r)
{
- playch10_state *state = space->machine().driver_data<playch10_state>();
- if ( offset >= 0x400 && state->m_up_8w )
- return state->m_ram_8w[offset];
+ if ( offset >= 0x400 && m_up_8w )
+ return m_ram_8w[offset];
- return state->m_ram_8w[offset & 0x3ff];
+ return m_ram_8w[offset & 0x3ff];
}
-static WRITE8_HANDLER( ram_8w_w )
+WRITE8_MEMBER(playch10_state::ram_8w_w)
{
- playch10_state *state = space->machine().driver_data<playch10_state>();
- if ( offset >= 0x400 && state->m_up_8w )
- state->m_ram_8w[offset] = data;
+ if ( offset >= 0x400 && m_up_8w )
+ m_ram_8w[offset] = data;
else
- state->m_ram_8w[offset & 0x3ff] = data;
+ m_ram_8w[offset & 0x3ff] = data;
}
-static WRITE8_HANDLER( sprite_dma_w )
+WRITE8_MEMBER(playch10_state::sprite_dma_w)
{
int source = ( data & 7 );
- ppu2c0x_device *ppu = space->machine().device<ppu2c0x_device>("ppu");
- ppu->spriteram_dma(space, source);
+ ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu");
+ ppu->spriteram_dma(&space, source);
}
/* Only used in single monitor bios */
-static WRITE8_HANDLER( time_w )
+WRITE8_MEMBER(playch10_state::time_w)
{
- playch10_state *state = space->machine().driver_data<playch10_state>();
if(data == 0xf)
data = 0;
- state->m_timedata[offset] = data;
+ m_timedata[offset] = data;
- popmessage("Time: %d%d%d%d",state->m_timedata[3],state->m_timedata[2],state->m_timedata[1],state->m_timedata[0]);
+ 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 )
@@ -372,7 +368,7 @@ static WRITE8_DEVICE_HANDLER( psg_4017_w )
static ADDRESS_MAP_START( bios_map, AS_PROGRAM, 8, playch10_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM // 8V
- AM_RANGE(0x8800, 0x8fff) AM_READWRITE_LEGACY(ram_8w_r, ram_8w_w) AM_BASE(m_ram_8w) // 8W
+ AM_RANGE(0x8800, 0x8fff) AM_READWRITE(ram_8w_r, ram_8w_w) AM_BASE(m_ram_8w) // 8W
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE_LEGACY(playch10_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xc000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(pc10_prot_r, pc10_prot_w)
@@ -391,8 +387,8 @@ static ADDRESS_MAP_START( bios_io_map, AS_IO, 8, playch10_state )
AM_RANGE(0x09, 0x09) AM_WRITE_LEGACY(pc10_DOGDI_w)
AM_RANGE(0x0a, 0x0a) AM_WRITE_LEGACY(pc10_PPURES_w)
AM_RANGE(0x0b, 0x0e) AM_WRITE_LEGACY(pc10_CARTSEL_w)
- AM_RANGE(0x0f, 0x0f) AM_WRITE_LEGACY(up8w_w)
- AM_RANGE(0x10, 0x13) AM_WRITE_LEGACY(time_w) AM_BASE(m_timedata)
+ AM_RANGE(0x0f, 0x0f) AM_WRITE(up8w_w)
+ AM_RANGE(0x10, 0x13) AM_WRITE(time_w) AM_BASE(m_timedata)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cart_map, AS_PROGRAM, 8, playch10_state )
@@ -400,7 +396,7 @@ static ADDRESS_MAP_START( cart_map, AS_PROGRAM, 8, playch10_state )
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE("ppu", ppu2c0x_device, read, write)
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_LEGACY(sprite_dma_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(0x4016, 0x4016) AM_READWRITE_LEGACY(pc10_in0_r, pc10_in0_w)
AM_RANGE(0x4017, 0x4017) AM_READ_LEGACY(pc10_in1_r) AM_DEVWRITE_LEGACY("nes", psg_4017_w) /* IN1 - input port 2 / PSG second control register */
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index e7ae409b444..2dec5a8ee81 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -49,12 +49,12 @@ TODO:
#include "includes/playmark.h"
-static WRITE16_HANDLER( coinctrl_w )
+WRITE16_MEMBER(playmark_state::coinctrl_w)
{
if (ACCESSING_BITS_8_15)
{
- coin_counter_w(space->machine(), 0, data & 0x0100);
- coin_counter_w(space->machine(), 1, data & 0x0200);
+ coin_counter_w(machine(), 0, data & 0x0100);
+ coin_counter_w(machine(), 1, data & 0x0200);
}
if (data & 0xfcff)
logerror("Writing %04x to unknown coin control bits\n", data);
@@ -80,83 +80,78 @@ static const eeprom_interface eeprom_intf =
5 /* reset_delay (otherwise wbeachvl will hang when saving settings) */
};
-static WRITE16_HANDLER( wbeachvl_coin_eeprom_w )
+WRITE16_MEMBER(playmark_state::wbeachvl_coin_eeprom_w)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
if (ACCESSING_BITS_0_7)
{
/* bits 0-3 are coin counters? (only 0 used?) */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
- coin_counter_w(space->machine(), 2, data & 0x04);
- coin_counter_w(space->machine(), 3, data & 0x08);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 2, data & 0x04);
+ coin_counter_w(machine(), 3, data & 0x08);
/* bits 5-7 control EEPROM */
- state->m_eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
- state->m_eeprom->write_bit(data & 0x80);
- state->m_eeprom->set_clock_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
+ m_eeprom->set_cs_line((data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
+ m_eeprom->write_bit(data & 0x80);
+ m_eeprom->set_clock_line((data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
}
}
-static WRITE16_HANDLER( hotmind_coin_eeprom_w )
+WRITE16_MEMBER(playmark_state::hotmind_coin_eeprom_w)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0,data & 0x20);
+ coin_counter_w(machine(), 0,data & 0x20);
- state->m_eeprom->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE);
- state->m_eeprom->write_bit(data & 4);
- state->m_eeprom->set_clock_line((data & 2) ? ASSERT_LINE : CLEAR_LINE );
+ m_eeprom->set_cs_line((data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ m_eeprom->write_bit(data & 4);
+ m_eeprom->set_clock_line((data & 2) ? ASSERT_LINE : CLEAR_LINE );
}
}
-static WRITE16_HANDLER( hrdtimes_coin_w )
+WRITE16_MEMBER(playmark_state::hrdtimes_coin_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
}
-static WRITE16_HANDLER( playmark_snd_command_w )
+WRITE16_MEMBER(playmark_state::playmark_snd_command_w)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_snd_command = (data & 0xff);
- state->m_snd_flag = 1;
- device_yield(&space->device());
+ m_snd_command = (data & 0xff);
+ m_snd_flag = 1;
+ device_yield(&space.device());
}
}
-static READ8_HANDLER( playmark_snd_command_r )
+READ8_MEMBER(playmark_state::playmark_snd_command_r)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
int data = 0;
- if ((state->m_oki_control & 0x38) == 0x30)
+ if ((m_oki_control & 0x38) == 0x30)
{
- data = state->m_snd_command;
- // logerror("PC$%03x PortB reading %02x from the 68K\n", cpu_get_previouspc(&space->device()), data);
+ data = m_snd_command;
+ // logerror("PC$%03x PortB reading %02x from the 68K\n", cpu_get_previouspc(&space.device()), data);
}
- else if ((state->m_oki_control & 0x38) == 0x28)
+ else if ((m_oki_control & 0x38) == 0x28)
{
- data = (state->m_oki->read(*space, 0) & 0x0f);
- // logerror("PC$%03x PortB reading %02x from the OKI status port\n", cpu_get_previouspc(&space->device()), data);
+ data = (m_oki->read(*&space, 0) & 0x0f);
+ // logerror("PC$%03x PortB reading %02x from the OKI status port\n", cpu_get_previouspc(&space.device()), data);
}
return data;
}
-static READ8_HANDLER( playmark_snd_flag_r )
+READ8_MEMBER(playmark_state::playmark_snd_flag_r)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
- if (state->m_snd_flag)
+ if (m_snd_flag)
{
- state->m_snd_flag = 0;
+ m_snd_flag = 0;
return 0x00;
}
@@ -179,16 +174,14 @@ static WRITE8_DEVICE_HANDLER( playmark_oki_banking_w )
}
}
-static WRITE8_HANDLER( playmark_oki_w )
+WRITE8_MEMBER(playmark_state::playmark_oki_w)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
- state->m_oki_command = data;
+ m_oki_command = data;
}
-static WRITE8_HANDLER( playmark_snd_control_w )
+WRITE8_MEMBER(playmark_state::playmark_snd_control_w)
{
- playmark_state *state = space->machine().driver_data<playmark_state>();
-// address_space *space = device->machine().device("audiocpu")->memory().space(AS_PROGRAM);
+// address_&space *&space = device->machine().device("audiocpu")->memory().&space(AS_PROGRAM);
/* This port controls communications to and from the 68K, and the OKI
device.
@@ -203,18 +196,18 @@ static WRITE8_HANDLER( playmark_snd_control_w )
1 Not used
0 Not used
*/
- state->m_oki_control = data;
+ m_oki_control = data;
if ((data & 0x38) == 0x18)
{
- // logerror("PC$%03x Writing %02x to OKI1, PortC=%02x, Code=%02x\n",cpu_get_previouspc(&space->device()),playmark_oki_command,playmark_oki_control,playmark_snd_command);
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
- oki->write(*space, 0, state->m_oki_command);
+ // logerror("PC$%03x Writing %02x to OKI1, PortC=%02x, Code=%02x\n",cpu_get_previouspc(&space.device()),playmark_oki_command,playmark_oki_control,playmark_snd_command);
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
+ oki->write(*&space, 0, m_oki_command);
}
}
-static READ8_HANDLER( PIC16C5X_T0_clk_r )
+READ8_MEMBER(playmark_state::PIC16C5X_T0_clk_r)
{
return 0;
}
@@ -236,10 +229,10 @@ static ADDRESS_MAP_START( bigtwin_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x700010, 0x700011) AM_READ_PORT("SYSTEM")
AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1")
AM_RANGE(0x700014, 0x700015) AM_READ_PORT("P2")
- AM_RANGE(0x700016, 0x700017) AM_WRITE_LEGACY(coinctrl_w)
+ AM_RANGE(0x700016, 0x700017) AM_WRITE(coinctrl_w)
AM_RANGE(0x70001a, 0x70001b) AM_READ_PORT("DSW1")
AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x70001e, 0x70001f) AM_WRITE_LEGACY(playmark_snd_command_w)
+ AM_RANGE(0x70001e, 0x70001f) AM_WRITE(playmark_snd_command_w)
AM_RANGE(0x780000, 0x7807ff) AM_WRITE_LEGACY(bigtwin_paletteram_w) AM_BASE_GENERIC(paletteram)
// AM_RANGE(0xe00000, 0xe00001) ?? written on startup
AM_RANGE(0xff0000, 0xffffff) AM_RAM
@@ -259,7 +252,7 @@ static ADDRESS_MAP_START( bigtwinb_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x300014, 0x300015) AM_READ_PORT("P2")
AM_RANGE(0x30001a, 0x30001b) AM_READ_PORT("DSW1")
AM_RANGE(0x30001c, 0x30001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x30001e, 0x30001f) AM_WRITE_LEGACY(playmark_snd_command_w)
+ AM_RANGE(0x30001e, 0x30001f) AM_WRITE(playmark_snd_command_w)
AM_RANGE(0x304000, 0x304001) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -278,7 +271,7 @@ static ADDRESS_MAP_START( wbeachvl_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x710010, 0x710011) AM_READ_PORT("SYSTEM")
AM_RANGE(0x710012, 0x710013) AM_READ_PORT("P1")
AM_RANGE(0x710014, 0x710015) AM_READ_PORT("P2")
- AM_RANGE(0x710016, 0x710017) AM_WRITE_LEGACY(wbeachvl_coin_eeprom_w)
+ AM_RANGE(0x710016, 0x710017) AM_WRITE(wbeachvl_coin_eeprom_w)
AM_RANGE(0x710018, 0x710019) AM_READ_PORT("P3")
AM_RANGE(0x71001a, 0x71001b) AM_READ_PORT("P4")
// AM_RANGE(0x71001c, 0x71001d) AM_READ_LEGACY(playmark_snd_status???)
@@ -299,10 +292,10 @@ static ADDRESS_MAP_START( excelsr_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x700010, 0x700011) AM_READ_PORT("SYSTEM")
AM_RANGE(0x700012, 0x700013) AM_READ_PORT("P1")
AM_RANGE(0x700014, 0x700015) AM_READ_PORT("P2")
- AM_RANGE(0x700016, 0x700017) AM_WRITE_LEGACY(coinctrl_w)
+ AM_RANGE(0x700016, 0x700017) AM_WRITE(coinctrl_w)
AM_RANGE(0x70001a, 0x70001b) AM_READ_PORT("DSW1")
AM_RANGE(0x70001c, 0x70001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x70001e, 0x70001f) AM_WRITE_LEGACY(playmark_snd_command_w)
+ AM_RANGE(0x70001e, 0x70001f) AM_WRITE(playmark_snd_command_w)
AM_RANGE(0x780000, 0x7807ff) AM_RAM_WRITE_LEGACY(bigtwin_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -317,10 +310,10 @@ static ADDRESS_MAP_START( hotmind_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x280000, 0x2807ff) AM_RAM_WRITE_LEGACY(bigtwin_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x300010, 0x300011) AM_READ_PORT("SYSTEM")
AM_RANGE(0x300012, 0x300013) AM_READ_PORT("P1")
- AM_RANGE(0x300014, 0x300015) AM_READ_PORT("P2") AM_WRITE_LEGACY(hotmind_coin_eeprom_w)
+ AM_RANGE(0x300014, 0x300015) AM_READ_PORT("P2") AM_WRITE(hotmind_coin_eeprom_w)
AM_RANGE(0x30001a, 0x30001b) AM_READ_PORT("DSW1")
AM_RANGE(0x30001c, 0x30001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x30001e, 0x30001f) AM_WRITE_LEGACY(playmark_snd_command_w)
+ AM_RANGE(0x30001e, 0x30001f) AM_WRITE(playmark_snd_command_w)
AM_RANGE(0x304000, 0x304001) AM_WRITENOP /* watchdog? irq ack? */
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -339,7 +332,7 @@ static ADDRESS_MAP_START( hrdtimes_main_map, AS_PROGRAM, 16, playmark_state )
AM_RANGE(0x300010, 0x300011) AM_READ_PORT("SYSTEM")
AM_RANGE(0x300012, 0x300013) AM_READ_PORT("P1")
AM_RANGE(0x300014, 0x300015) AM_READ_PORT("P2")
- AM_RANGE(0x300016, 0x300017) AM_WRITE_LEGACY(hrdtimes_coin_w)
+ AM_RANGE(0x300016, 0x300017) AM_WRITE(hrdtimes_coin_w)
AM_RANGE(0x30001a, 0x30001b) AM_READ_PORT("DSW1")
AM_RANGE(0x30001c, 0x30001d) AM_READ_PORT("DSW2")
AM_RANGE(0x30001e, 0x30001f) AM_WRITENOP //(playmark_snd_command_w)
@@ -355,9 +348,9 @@ ADDRESS_MAP_END
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(0x01, 0x01) AM_READWRITE_LEGACY(playmark_snd_command_r, playmark_oki_w)
- AM_RANGE(0x02, 0x02) AM_READWRITE_LEGACY(playmark_snd_flag_r, playmark_snd_control_w)
- AM_RANGE(PIC16C5x_T0, PIC16C5x_T0) AM_READ_LEGACY(PIC16C5X_T0_clk_r)
+ 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)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index 8fd5de5918c..ff606356195 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -120,11 +120,11 @@ static READ32_DEVICE_HANDLER( polygonet_eeprom_r )
}
-static WRITE32_HANDLER( polygonet_eeprom_w )
+WRITE32_MEMBER(polygonet_state::polygonet_eeprom_w)
{
if (ACCESSING_BITS_24_31)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xffffffff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xffffffff);
return;
}
@@ -132,19 +132,19 @@ static WRITE32_HANDLER( polygonet_eeprom_w )
}
/* TTL tile readback for ROM test */
-static READ32_HANDLER( ttl_rom_r )
+READ32_MEMBER(polygonet_state::ttl_rom_r)
{
UINT32 *ROM;
- ROM = (UINT32 *)space->machine().region("gfx1")->base();
+ ROM = (UINT32 *)machine().region("gfx1")->base();
return ROM[offset];
}
/* PSAC2 tile readback for ROM test */
-static READ32_HANDLER( psac_rom_r )
+READ32_MEMBER(polygonet_state::psac_rom_r)
{
UINT32 *ROM;
- ROM = (UINT32 *)space->machine().region("gfx2")->base();
+ ROM = (UINT32 *)machine().region("gfx2")->base();
return ROM[offset];
}
@@ -159,7 +159,7 @@ static INTERRUPT_GEN(polygonet_interrupt)
}
/* sound CPU communications */
-static READ32_HANDLER( sound_r )
+READ32_MEMBER(polygonet_state::sound_r)
{
int latch = soundlatch3_r(space, 0);
@@ -168,7 +168,7 @@ static READ32_HANDLER( sound_r )
return latch<<8;
}
-static WRITE32_HANDLER( sound_w )
+WRITE32_MEMBER(polygonet_state::sound_w)
{
if (ACCESSING_BITS_8_15)
{
@@ -180,13 +180,13 @@ static WRITE32_HANDLER( sound_w )
}
}
-static WRITE32_HANDLER( sound_irq_w )
+WRITE32_MEMBER(polygonet_state::sound_irq_w)
{
- cputag_set_input_line(space->machine(), "soundcpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "soundcpu", 0, HOLD_LINE);
}
/* DSP communications */
-static READ32_HANDLER( dsp_host_interface_r )
+READ32_MEMBER(polygonet_state::dsp_host_interface_r)
{
UINT32 value;
UINT8 hi_addr = offset << 1;
@@ -194,58 +194,57 @@ static READ32_HANDLER( dsp_host_interface_r )
if (mem_mask == 0x0000ff00) { hi_addr++; } /* Low byte */
if (mem_mask == 0xff000000) {} /* High byte */
- value = dsp56k_host_interface_read(space->machine().device("dsp"), hi_addr);
+ value = dsp56k_host_interface_read(machine().device("dsp"), hi_addr);
if (mem_mask == 0x0000ff00) { value <<= 8; }
if (mem_mask == 0xff000000) { value <<= 24; }
- logerror("Dsp HI Read (host-side) %08x (HI %04x) = %08x (@%x)\n", mem_mask, hi_addr, value, cpu_get_pc(&space->device()));
+ logerror("Dsp HI Read (host-side) %08x (HI %04x) = %08x (@%x)\n", mem_mask, hi_addr, value, cpu_get_pc(&space.device()));
return value;
}
-static WRITE32_HANDLER( shared_ram_write )
+WRITE32_MEMBER(polygonet_state::shared_ram_write)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- COMBINE_DATA(&state->m_shared_ram[offset]) ;
+ COMBINE_DATA(&m_shared_ram[offset]) ;
if (mem_mask == 0xffff0000)
{
- logerror("68k WRITING %04x to shared ram %x (@%x)\n", (state->m_shared_ram[offset] & 0xffff0000) >> 16,
+ logerror("68k WRITING %04x to shared ram %x (@%x)\n", (m_shared_ram[offset] & 0xffff0000) >> 16,
0xc000 + (offset<<1),
- cpu_get_pc(&space->device()));
+ cpu_get_pc(&space.device()));
}
else if (mem_mask == 0x0000ffff)
{
- logerror("68k WRITING %04x to shared ram %x (@%x)\n", (state->m_shared_ram[offset] & 0x0000ffff),
+ logerror("68k WRITING %04x to shared ram %x (@%x)\n", (m_shared_ram[offset] & 0x0000ffff),
0xc000 +((offset<<1)+1),
- cpu_get_pc(&space->device()));
+ cpu_get_pc(&space.device()));
}
else
{
- logerror("68k WRITING %04x & %04x to shared ram %x & %x [%08x] (@%x)\n", (state->m_shared_ram[offset] & 0xffff0000) >> 16,
- (state->m_shared_ram[offset] & 0x0000ffff),
+ logerror("68k WRITING %04x & %04x to shared ram %x & %x [%08x] (@%x)\n", (m_shared_ram[offset] & 0xffff0000) >> 16,
+ (m_shared_ram[offset] & 0x0000ffff),
0xc000 + (offset<<1),
0xc000 +((offset<<1)+1),
mem_mask,
- cpu_get_pc(&space->device()));
+ cpu_get_pc(&space.device()));
}
/* write to the current dsp56k word */
if (mem_mask | (0xffff0000))
{
- state->m_dsp56k_shared_ram_16[(offset<<1)] = (state->m_shared_ram[offset] & 0xffff0000) >> 16 ;
+ m_dsp56k_shared_ram_16[(offset<<1)] = (m_shared_ram[offset] & 0xffff0000) >> 16 ;
}
/* write to the next dsp56k word */
if (mem_mask | (0x0000ffff))
{
- state->m_dsp56k_shared_ram_16[(offset<<1)+1] = (state->m_shared_ram[offset] & 0x0000ffff) ;
+ m_dsp56k_shared_ram_16[(offset<<1)+1] = (m_shared_ram[offset] & 0x0000ffff) ;
}
}
-static WRITE32_HANDLER( dsp_w_lines )
+WRITE32_MEMBER(polygonet_state::dsp_w_lines)
{
logerror("2w %08x %08x %08x\n", offset, mem_mask, data);
@@ -253,22 +252,22 @@ static WRITE32_HANDLER( dsp_w_lines )
if ((data >> 24) & 0x01)
{
// logerror("RESET CLEARED\n");
- cputag_set_input_line(space->machine(), "dsp", DSP56K_IRQ_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "dsp", DSP56K_IRQ_RESET, CLEAR_LINE);
}
else
{
// logerror("RESET ASSERTED\n");
- cputag_set_input_line(space->machine(), "dsp", DSP56K_IRQ_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "dsp", DSP56K_IRQ_RESET, ASSERT_LINE);
/* A little hacky - I can't seem to set these lines anywhere else where reset is asserted, so i do it here */
- cputag_set_input_line(space->machine(), "dsp", DSP56K_IRQ_MODA, ASSERT_LINE);
- cputag_set_input_line(space->machine(), "dsp", DSP56K_IRQ_MODB, CLEAR_LINE);
+ cputag_set_input_line(machine(), "dsp", DSP56K_IRQ_MODA, ASSERT_LINE);
+ cputag_set_input_line(machine(), "dsp", DSP56K_IRQ_MODB, CLEAR_LINE);
}
/* 0x04000000 is the COMBNK line - it switches who has access to the shared RAM - the dsp or the 68020 */
}
-static WRITE32_HANDLER( dsp_host_interface_w )
+WRITE32_MEMBER(polygonet_state::dsp_host_interface_w)
{
UINT8 hi_data = 0x00;
UINT8 hi_addr = offset << 1;
@@ -280,27 +279,27 @@ static WRITE32_HANDLER( dsp_host_interface_w )
if (mem_mask == 0xff000000) { hi_data = (data & 0xff000000) >> 24; }
logerror("write (host-side) %08x %08x %08x (HI %04x)\n", offset, mem_mask, data, hi_addr);
- dsp56k_host_interface_write(space->machine().device("dsp"), hi_addr, hi_data);
+ dsp56k_host_interface_write(machine().device("dsp"), hi_addr, hi_data);
}
-static READ32_HANDLER( network_r )
+READ32_MEMBER(polygonet_state::network_r)
{
return 0x08000000;
}
-static WRITE32_HANDLER( plygonet_palette_w )
+WRITE32_MEMBER(polygonet_state::plygonet_palette_w)
{
int r,g,b;
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
- r = (space->machine().generic.paletteram.u32[offset] >>16) & 0xff;
- g = (space->machine().generic.paletteram.u32[offset] >> 8) & 0xff;
- b = (space->machine().generic.paletteram.u32[offset] >> 0) & 0xff;
+ r = (machine().generic.paletteram.u32[offset] >>16) & 0xff;
+ g = (machine().generic.paletteram.u32[offset] >> 8) & 0xff;
+ b = (machine().generic.paletteram.u32[offset] >> 0) & 0xff;
- palette_set_color(space->machine(),offset,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),offset,MAKE_RGB(r,g,b));
}
@@ -309,7 +308,7 @@ static WRITE32_HANDLER( plygonet_palette_w )
/**********************************************************************************/
/* It's believed this is hard-wired to return (at least) bit 15 as 0 - causes a host interface bootup */
-static READ16_HANDLER( dsp56k_bootload_r )
+READ16_MEMBER(polygonet_state::dsp56k_bootload_r)
{
return 0x7fff;
}
@@ -394,120 +393,110 @@ static UINT8 dsp56k_bank_num(device_t* cpu, UINT8 bank_group)
/* BANK HANDLERS */
-static READ16_HANDLER( dsp56k_ram_bank00_read )
+READ16_MEMBER(polygonet_state::dsp56k_ram_bank00_read)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank00_size * 8) + (bank_num * dsp56k_bank00_size);
- return state->m_dsp56k_bank00_ram[driver_bank_offset + offset];
+ return m_dsp56k_bank00_ram[driver_bank_offset + offset];
}
-static WRITE16_HANDLER( dsp56k_ram_bank00_write )
+WRITE16_MEMBER(polygonet_state::dsp56k_ram_bank00_write)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank00_size * 8) + (bank_num * dsp56k_bank00_size);
- COMBINE_DATA(&state->m_dsp56k_bank00_ram[driver_bank_offset + offset]);
+ COMBINE_DATA(&m_dsp56k_bank00_ram[driver_bank_offset + offset]);
}
-static READ16_HANDLER( dsp56k_ram_bank01_read )
+READ16_MEMBER(polygonet_state::dsp56k_ram_bank01_read)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank01_size * 8) + (bank_num * dsp56k_bank01_size);
- return state->m_dsp56k_bank01_ram[driver_bank_offset + offset];
+ return m_dsp56k_bank01_ram[driver_bank_offset + offset];
}
-static WRITE16_HANDLER( dsp56k_ram_bank01_write )
+WRITE16_MEMBER(polygonet_state::dsp56k_ram_bank01_write)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank01_size * 8) + (bank_num * dsp56k_bank01_size);
- COMBINE_DATA(&state->m_dsp56k_bank01_ram[driver_bank_offset + offset]);
+ COMBINE_DATA(&m_dsp56k_bank01_ram[driver_bank_offset + offset]);
/* For now, *always* combine P:0x7000-0x7fff with bank01 with no regard to the banking hardware. */
- state->m_dsp56k_p_mirror[offset] = data;
+ m_dsp56k_p_mirror[offset] = data;
}
-static READ16_HANDLER( dsp56k_ram_bank02_read )
+READ16_MEMBER(polygonet_state::dsp56k_ram_bank02_read)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank02_size * 8) + (bank_num * dsp56k_bank02_size);
- return state->m_dsp56k_bank02_ram[driver_bank_offset + offset];
+ return m_dsp56k_bank02_ram[driver_bank_offset + offset];
}
-static WRITE16_HANDLER( dsp56k_ram_bank02_write )
+WRITE16_MEMBER(polygonet_state::dsp56k_ram_bank02_write)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank02_size * 8) + (bank_num * dsp56k_bank02_size);
- COMBINE_DATA(&state->m_dsp56k_bank02_ram[driver_bank_offset + offset]);
+ COMBINE_DATA(&m_dsp56k_bank02_ram[driver_bank_offset + offset]);
}
-static READ16_HANDLER( dsp56k_shared_ram_read )
+READ16_MEMBER(polygonet_state::dsp56k_shared_ram_read)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_shared_ram_16_size * 8) + (bank_num * dsp56k_shared_ram_16_size);
- return state->m_dsp56k_shared_ram_16[driver_bank_offset + offset];
+ return m_dsp56k_shared_ram_16[driver_bank_offset + offset];
}
-static WRITE16_HANDLER( dsp56k_shared_ram_write )
+WRITE16_MEMBER(polygonet_state::dsp56k_shared_ram_write)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_shared_ram_16_size * 8) + (bank_num * dsp56k_shared_ram_16_size);
- COMBINE_DATA(&state->m_dsp56k_shared_ram_16[driver_bank_offset + offset]);
+ COMBINE_DATA(&m_dsp56k_shared_ram_16[driver_bank_offset + offset]);
/* Bank group A with offset 0 is believed to be the shared region */
if (en_group == BANK_GROUP_A && bank_num == 0)
{
if (offset % 2)
- state->m_shared_ram[offset>>1] = ((state->m_dsp56k_shared_ram_16[offset-1]) << 16) | state->m_dsp56k_shared_ram_16[offset];
+ m_shared_ram[offset>>1] = ((m_dsp56k_shared_ram_16[offset-1]) << 16) | m_dsp56k_shared_ram_16[offset];
else
- state->m_shared_ram[offset>>1] = ((state->m_dsp56k_shared_ram_16[offset]) << 16) | state->m_dsp56k_shared_ram_16[offset+1];
+ m_shared_ram[offset>>1] = ((m_dsp56k_shared_ram_16[offset]) << 16) | m_dsp56k_shared_ram_16[offset+1];
}
}
-static READ16_HANDLER( dsp56k_ram_bank04_read )
+READ16_MEMBER(polygonet_state::dsp56k_ram_bank04_read)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank04_size * 8) + (bank_num * dsp56k_bank04_size);
- return state->m_dsp56k_bank04_ram[driver_bank_offset + offset];
+ return m_dsp56k_bank04_ram[driver_bank_offset + offset];
}
-static WRITE16_HANDLER( dsp56k_ram_bank04_write )
+WRITE16_MEMBER(polygonet_state::dsp56k_ram_bank04_write)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- UINT8 en_group = dsp56k_bank_group(&space->device());
- UINT8 bank_num = dsp56k_bank_num(&space->device(), en_group);
+ UINT8 en_group = dsp56k_bank_group(&space.device());
+ UINT8 bank_num = dsp56k_bank_num(&space.device(), en_group);
UINT32 driver_bank_offset = (en_group * dsp56k_bank04_size * 8) + (bank_num * dsp56k_bank04_size);
- COMBINE_DATA(&state->m_dsp56k_bank04_ram[driver_bank_offset + offset]);
+ COMBINE_DATA(&m_dsp56k_bank04_ram[driver_bank_offset + offset]);
}
@@ -515,24 +504,24 @@ static WRITE16_HANDLER( dsp56k_ram_bank04_write )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, polygonet_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
- AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE_LEGACY(plygonet_palette_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x200000, 0x21ffff) AM_RAM_WRITE(plygonet_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE16_LEGACY("k053936", k053936_ctrl_r, k053936_ctrl_w, 0xffffffff)
AM_RANGE(0x440000, 0x440fff) AM_READWRITE_LEGACY(polygonet_roz_ram_r, polygonet_roz_ram_w)
AM_RANGE(0x480000, 0x4bffff) AM_DEVREAD_LEGACY("eeprom", polygonet_eeprom_r)
- AM_RANGE(0x4C0000, 0x4fffff) AM_WRITE_LEGACY(polygonet_eeprom_w)
- AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE_LEGACY(shared_ram_write) AM_BASE(m_shared_ram)
- AM_RANGE(0x504000, 0x504003) AM_WRITE_LEGACY(dsp_w_lines)
- AM_RANGE(0x506000, 0x50600f) AM_READWRITE_LEGACY(dsp_host_interface_r, dsp_host_interface_w)
+ AM_RANGE(0x4C0000, 0x4fffff) AM_WRITE(polygonet_eeprom_w)
+ AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE(shared_ram_write) AM_BASE(m_shared_ram)
+ AM_RANGE(0x504000, 0x504003) AM_WRITE(dsp_w_lines)
+ AM_RANGE(0x506000, 0x50600f) AM_READWRITE(dsp_host_interface_r, dsp_host_interface_w)
AM_RANGE(0x540000, 0x540fff) AM_READWRITE_LEGACY(polygonet_ttl_ram_r, polygonet_ttl_ram_w)
AM_RANGE(0x541000, 0x54101f) AM_RAM
AM_RANGE(0x580000, 0x5807ff) AM_RAM
- AM_RANGE(0x580800, 0x580803) AM_READ_LEGACY(network_r) AM_WRITENOP /* network RAM | registers? */
- AM_RANGE(0x600004, 0x600007) AM_WRITE_LEGACY(sound_w)
- AM_RANGE(0x600008, 0x60000b) AM_READ_LEGACY(sound_r)
- AM_RANGE(0x640000, 0x640003) AM_WRITE_LEGACY(sound_irq_w)
+ AM_RANGE(0x580800, 0x580803) AM_READ(network_r) AM_WRITENOP /* network RAM | registers? */
+ AM_RANGE(0x600004, 0x600007) AM_WRITE(sound_w)
+ AM_RANGE(0x600008, 0x60000b) AM_READ(sound_r)
+ AM_RANGE(0x640000, 0x640003) AM_WRITE(sound_irq_w)
AM_RANGE(0x680000, 0x680003) AM_WRITE_LEGACY(watchdog_reset32_w)
- AM_RANGE(0x700000, 0x73ffff) AM_READ_LEGACY(psac_rom_r)
- AM_RANGE(0x780000, 0x79ffff) AM_READ_LEGACY(ttl_rom_r)
+ AM_RANGE(0x700000, 0x73ffff) AM_READ(psac_rom_r)
+ AM_RANGE(0x780000, 0x79ffff) AM_READ(ttl_rom_r)
AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -541,16 +530,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dsp_program_map, AS_PROGRAM, 16, polygonet_state )
AM_RANGE(0x7000, 0x7fff) AM_RAM AM_BASE(m_dsp56k_p_mirror) /* Unsure of size, but 0x1000 matches bank01 */
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_BASE(m_dsp56k_p_8000)
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(dsp56k_bootload_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(dsp56k_bootload_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16, polygonet_state )
AM_RANGE(0x0800, 0x5fff) AM_RAM /* Appears to not be affected by banking? */
- AM_RANGE(0x6000, 0x6fff) AM_READWRITE_LEGACY(dsp56k_ram_bank00_read, dsp56k_ram_bank00_write)
- AM_RANGE(0x7000, 0x7fff) AM_READWRITE_LEGACY(dsp56k_ram_bank01_read, dsp56k_ram_bank01_write) /* Mirrored in program space @ 0x7000 */
- AM_RANGE(0x8000, 0xbfff) AM_READWRITE_LEGACY(dsp56k_ram_bank02_read, dsp56k_ram_bank02_write)
- AM_RANGE(0xc000, 0xdfff) AM_READWRITE_LEGACY(dsp56k_shared_ram_read, dsp56k_shared_ram_write)
- AM_RANGE(0xe000, 0xffbf) AM_READWRITE_LEGACY(dsp56k_ram_bank04_read, dsp56k_ram_bank04_write)
+ AM_RANGE(0x6000, 0x6fff) AM_READWRITE(dsp56k_ram_bank00_read, dsp56k_ram_bank00_write)
+ AM_RANGE(0x7000, 0x7fff) AM_READWRITE(dsp56k_ram_bank01_read, dsp56k_ram_bank01_write) /* Mirrored in program space @ 0x7000 */
+ AM_RANGE(0x8000, 0xbfff) AM_READWRITE(dsp56k_ram_bank02_read, dsp56k_ram_bank02_write)
+ AM_RANGE(0xc000, 0xdfff) AM_READWRITE(dsp56k_shared_ram_read, dsp56k_shared_ram_write)
+ AM_RANGE(0xe000, 0xffbf) AM_READWRITE(dsp56k_ram_bank04_read, dsp56k_ram_bank04_write)
ADDRESS_MAP_END
/**********************************************************************************/
@@ -561,11 +550,10 @@ static void reset_sound_region(running_machine &machine)
memory_set_bankptr(machine, "bank2", machine.region("soundcpu")->base() + 0x10000 + state->m_cur_sound_region*0x4000);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(polygonet_state::sound_bankswitch_w)
{
- polygonet_state *state = space->machine().driver_data<polygonet_state>();
- state->m_cur_sound_region = (data & 0x1f);
- reset_sound_region(space->machine());
+ m_cur_sound_region = (data & 0x1f);
+ reset_sound_region(machine());
}
static INTERRUPT_GEN(audio_interrupt)
@@ -585,7 +573,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, polygonet_state )
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ_LEGACY(soundlatch2_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
AM_RANGE(0xfff1, 0xfff3) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c
index 9aa7d41086f..e0249eb47ca 100644
--- a/src/mame/drivers/pokechmp.c
+++ b/src/mame/drivers/pokechmp.c
@@ -51,44 +51,44 @@ ClawGrip, Jul 2006
#include "sound/okim6295.h"
#include "includes/pokechmp.h"
-static WRITE8_HANDLER( pokechmp_bank_w )
+WRITE8_MEMBER(pokechmp_state::pokechmp_bank_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
if (data == 0x00)
{
- memory_set_bankptr(space->machine(), "bank1",&RAM[0x10000]);
- memory_set_bankptr(space->machine(), "bank2",&RAM[0x12000]);
+ memory_set_bankptr(machine(), "bank1",&RAM[0x10000]);
+ memory_set_bankptr(machine(), "bank2",&RAM[0x12000]);
}
if (data == 0x01)
{
- memory_set_bankptr(space->machine(), "bank1",&RAM[0x14000]);
- memory_set_bankptr(space->machine(), "bank2",&RAM[0x16000]);
+ memory_set_bankptr(machine(), "bank1",&RAM[0x14000]);
+ memory_set_bankptr(machine(), "bank2",&RAM[0x16000]);
}
if (data == 0x02)
{
- memory_set_bankptr(space->machine(), "bank1",&RAM[0x20000]);
- memory_set_bankptr(space->machine(), "bank2",&RAM[0x22000]);
+ memory_set_bankptr(machine(), "bank1",&RAM[0x20000]);
+ memory_set_bankptr(machine(), "bank2",&RAM[0x22000]);
}
if (data == 0x03)
{
- memory_set_bankptr(space->machine(), "bank1",&RAM[0x04000]);
- memory_set_bankptr(space->machine(), "bank2",&RAM[0x06000]);
+ memory_set_bankptr(machine(), "bank1",&RAM[0x04000]);
+ memory_set_bankptr(machine(), "bank2",&RAM[0x06000]);
}
}
#ifdef UNUSED_FUNCTION
-static WRITE8_HANDLER( pokechmp_sound_bank_w )
+WRITE8_MEMBER(pokechmp_state::pokechmp_sound_bank_w)
{
- memory_set_bank(space->machine(), "bank3", (data >> 2) & 1);
+ memory_set_bank(machine(), "bank3", (data >> 2) & 1);
}
#endif
-static WRITE8_HANDLER( pokechmp_sound_w )
+WRITE8_MEMBER(pokechmp_state::pokechmp_sound_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -98,10 +98,10 @@ INLINE void pokechmp_set_color(running_machine &machine, pen_t color, int rshift
}
-static WRITE8_HANDLER( pokechmp_paletteram_w )
+WRITE8_MEMBER(pokechmp_state::pokechmp_paletteram_w)
{
- space->machine().generic.paletteram.u8[offset] = data;
- pokechmp_set_color(space->machine(), offset &0x3ff, 0, 5, 10, (space->machine().generic.paletteram.u8[offset&0x3ff]<<8) | ( space->machine().generic.paletteram.u8[ (offset&0x3ff)+0x400 ] ) );
+ machine().generic.paletteram.u8[offset] = data;
+ pokechmp_set_color(machine(), offset &0x3ff, 0, 5, 10, (machine().generic.paletteram.u8[offset&0x3ff]<<8) | ( machine().generic.paletteram.u8[ (offset&0x3ff)+0x400 ] ) );
}
@@ -115,11 +115,11 @@ static ADDRESS_MAP_START( pokechmp_map, AS_PROGRAM, 8, pokechmp_state )
/* 1800 - 0x181f are unused BAC-06 registers, see video/dec0.c */
AM_RANGE(0x1802, 0x181f) AM_WRITENOP
- AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("P2") AM_WRITE_LEGACY(pokechmp_sound_w)
- AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW") AM_WRITE_LEGACY(pokechmp_bank_w)
+ AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("P2") AM_WRITE(pokechmp_sound_w)
+ AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW") AM_WRITE(pokechmp_bank_w)
/* Extra on Poke Champ (not on Pocket Gal) */
- AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(pokechmp_paletteram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(pokechmp_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank2")
@@ -134,7 +134,7 @@ static ADDRESS_MAP_START( pokechmp_sound_map, AS_PROGRAM, 8, pokechmp_state )
AM_RANGE(0x0800, 0x0801) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
AM_RANGE(0x1800, 0x1800) AM_WRITENOP /* MSM5205 chip on Pocket Gal, not connected here? */
-// AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(pokechmp_sound_bank_w)/ * might still be sound bank */
+// AM_RANGE(0x2000, 0x2000) AM_WRITE(pokechmp_sound_bank_w)/ * might still be sound bank */
AM_RANGE(0x2800, 0x2800) AM_DEVREADWRITE("oki", okim6295_device, read, write) // extra
AM_RANGE(0x3000, 0x3000) AM_READ_LEGACY(soundlatch_r)
// AM_RANGE(0x3400, 0x3400) AM_READ_LEGACY(pokechmp_adpcm_reset_r) /* ? not sure */
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index 8dda3d41ae3..d5d257bf1be 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -241,42 +241,40 @@ Todo:
/* Pole Position II protection */
/*************************************************************************************/
-static READ16_HANDLER( polepos2_ic25_r )
+READ16_MEMBER(polepos_state::polepos2_ic25_r)
{
- polepos_state *state = space->machine().driver_data<polepos_state>();
int result;
/* protection states */
offset = offset & 0x1ff;
if (offset < 0x100)
{
- state->m_last_signed = offset & 0xff;
- result = state->m_last_result & 0xff;
+ m_last_signed = offset & 0xff;
+ result = m_last_result & 0xff;
}
else
{
- state->m_last_unsigned = offset & 0xff;
- result = (state->m_last_result >> 8) & 0xff;
- state->m_last_result = (INT8)state->m_last_signed * (UINT8)state->m_last_unsigned;
+ m_last_unsigned = offset & 0xff;
+ result = (m_last_result >> 8) & 0xff;
+ m_last_result = (INT8)m_last_signed * (UINT8)m_last_unsigned;
}
-// logerror("%04X: read IC25 @ %04X = %02X\n", cpu_get_pc(&space->device()), offset, result);
+// logerror("%04X: read IC25 @ %04X = %02X\n", cpu_get_pc(&space.device()), offset, result);
return result | (result << 8);
}
-static READ8_HANDLER( polepos_adc_r )
+READ8_MEMBER(polepos_state::polepos_adc_r)
{
- polepos_state *state = space->machine().driver_data<polepos_state>();
- return input_port_read(space->machine(), state->m_adc_input ? "ACCEL" : "BRAKE");
+ return input_port_read(machine(), m_adc_input ? "ACCEL" : "BRAKE");
}
-static READ8_HANDLER( polepos_ready_r )
+READ8_MEMBER(polepos_state::polepos_ready_r)
{
int ret = 0xff;
- if (space->machine().primary_screen->vpos() >= 128)
+ if (machine().primary_screen->vpos() >= 128)
ret ^= 0x02;
ret ^= 0x08; /* ADC End Flag */
@@ -285,17 +283,16 @@ static READ8_HANDLER( polepos_ready_r )
}
-static WRITE8_HANDLER( polepos_latch_w )
+WRITE8_MEMBER(polepos_state::polepos_latch_w)
{
- polepos_state *state = space->machine().driver_data<polepos_state>();
int bit = data & 1;
switch (offset)
{
case 0x00: /* IRQON */
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 0x01: /* IOSEL */
@@ -303,44 +300,43 @@ static WRITE8_HANDLER( polepos_latch_w )
break;
case 0x02: /* CLSON */
- polepos_sound_enable(space->machine().device("namco"),bit);
+ polepos_sound_enable(machine().device("namco"),bit);
if (!bit)
{
- polepos_engine_sound_lsb_w(space->machine().device("polepos"), 0, 0);
- polepos_engine_sound_msb_w(space->machine().device("polepos"), 0, 0);
+ polepos_engine_sound_lsb_w(machine().device("polepos"), 0, 0);
+ polepos_engine_sound_msb_w(machine().device("polepos"), 0, 0);
}
break;
case 0x03: /* GASEL */
- state->m_adc_input = bit;
+ m_adc_input = bit;
break;
case 0x04: /* RESB */
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x05: /* RESA */
- cputag_set_input_line(space->machine(), "sub2", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub2", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
break;
case 0x06: /* SB0 */
- state->m_auto_start_mask = !bit;
+ m_auto_start_mask = !bit;
break;
case 0x07: /* CHACL */
- polepos_chacl_w(space,offset,data);
+ polepos_chacl_w(&space,offset,data);
break;
}
}
-static WRITE16_HANDLER( polepos_z8002_nvi_enable_w )
+WRITE16_MEMBER(polepos_state::polepos_z8002_nvi_enable_w)
{
- polepos_state *state = space->machine().driver_data<polepos_state>();
data &= 1;
- state->m_sub_irq_mask = data;
+ m_sub_irq_mask = data;
if (!data)
- device_set_input_line(&space->device(), 0, CLEAR_LINE);
+ device_set_input_line(&space.device(), 0, CLEAR_LINE);
}
@@ -470,12 +466,13 @@ static TIMER_DEVICE_CALLBACK( polepos_scanline )
static MACHINE_RESET( polepos )
{
+ polepos_state *state = machine.driver_data<polepos_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
int i;
/* Reset all latches */
for (i = 0; i < 8; i++)
- polepos_latch_w(space, i, 0);
+ state->polepos_latch_w(*space, i, 0);
/* set the interrupt vectors (this shouldn't be needed) */
device_set_input_line_vector(machine.device("sub"), 0, Z8000_NVI);
@@ -501,8 +498,8 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, polepos_state )
AM_RANGE(0x9000, 0x9000) AM_MIRROR(0x0eff) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_data_r, namco_06xx_data_w)
AM_RANGE(0x9100, 0x9100) AM_MIRROR(0x0eff) AM_DEVREADWRITE_LEGACY("06xx", namco_06xx_ctrl_r, namco_06xx_ctrl_w)
- AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x0cff) AM_READ_LEGACY(polepos_ready_r) /* READY */
- AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x0cf8) AM_WRITE_LEGACY(polepos_latch_w) /* misc latches */
+ AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x0cff) AM_READ(polepos_ready_r) /* READY */
+ AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x0cf8) AM_WRITE(polepos_latch_w) /* misc latches */
AM_RANGE(0xa100, 0xa100) AM_MIRROR(0x0cff) AM_WRITE_LEGACY(watchdog_reset_w) /* Watchdog */
AM_RANGE(0xa200, 0xa200) AM_MIRROR(0x0cff) AM_DEVWRITE_LEGACY("polepos", polepos_engine_sound_lsb_w) /* Car Sound ( Lower Nibble ) */
AM_RANGE(0xa300, 0xa300) AM_MIRROR(0x0cff) AM_DEVWRITE_LEGACY("polepos", polepos_engine_sound_msb_w) /* Car Sound ( Upper Nibble ) */
@@ -510,14 +507,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( z80_io, AS_IO, 8, polepos_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(polepos_adc_r) AM_WRITENOP
+ AM_RANGE(0x00, 0x00) AM_READ(polepos_adc_r) AM_WRITENOP
ADDRESS_MAP_END
/* the same memory map is used by both Z8002 CPUs; all RAM areas are shared */
static ADDRESS_MAP_START( z8002_map, AS_PROGRAM, 16, polepos_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0ffe) AM_WRITE_LEGACY(polepos_z8002_nvi_enable_w) /* NVI enable - *NOT* shared by the two CPUs */
+ AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0ffe) AM_WRITE(polepos_z8002_nvi_enable_w) /* NVI enable - *NOT* shared by the two CPUs */
AM_RANGE(0x8000, 0x8fff) AM_READWRITE_LEGACY(polepos_sprite16_r, polepos_sprite16_w) AM_BASE(m_sprite16_memory) /* Motion Object */
AM_RANGE(0x9000, 0x97ff) AM_READWRITE_LEGACY(polepos_road16_r, polepos_road16_w) AM_BASE(m_road16_memory) /* Road Memory */
AM_RANGE(0x9800, 0x9fff) AM_READWRITE_LEGACY(polepos_alpha16_r, polepos_alpha16_w) AM_BASE(m_alpha16_memory) /* Alphanumeric (char ram) */
@@ -1991,8 +1988,9 @@ static DRIVER_INIT( topracern )
static DRIVER_INIT( polepos2 )
{
+ polepos_state *state = machine.driver_data<polepos_state>();
/* note that the bootleg version doesn't need this custom IC; it has a hacked ROM in its place */
- machine.device("sub")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x4000, 0x5fff, FUNC(polepos2_ic25_r));
+ machine.device("sub")->memory().space(AS_PROGRAM)->install_read_handler(0x4000, 0x5fff, read16_delegate(FUNC(polepos_state::polepos2_ic25_r),state));
}
diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c
index 257219c27b5..3e059498a06 100644
--- a/src/mame/drivers/policetr.c
+++ b/src/mame/drivers/policetr.c
@@ -120,10 +120,9 @@ static INTERRUPT_GEN( irq4_gen )
*
*************************************/
-static WRITE32_HANDLER( control_w )
+WRITE32_MEMBER(policetr_state::control_w)
{
- policetr_state *state = space->machine().driver_data<policetr_state>();
- UINT32 old = state->m_control_data;
+ UINT32 old = m_control_data;
// bit $80000000 = BSMT access/ROM read
// bit $20000000 = toggled every 64 IRQ4's
@@ -132,27 +131,27 @@ static WRITE32_HANDLER( control_w )
// bit $00400000 = EEPROM clock
// bit $00200000 = EEPROM enable (on 1)
- COMBINE_DATA(&state->m_control_data);
+ COMBINE_DATA(&m_control_data);
/* handle EEPROM I/O */
if (ACCESSING_BITS_16_23)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->write_bit(data & 0x00800000);
eeprom->set_cs_line((data & 0x00200000) ? CLEAR_LINE : ASSERT_LINE);
eeprom->set_clock_line((data & 0x00400000) ? ASSERT_LINE : CLEAR_LINE);
}
/* toggling BSMT off then on causes a reset */
- if (!(old & 0x80000000) && (state->m_control_data & 0x80000000))
+ if (!(old & 0x80000000) && (m_control_data & 0x80000000))
{
- bsmt2000_device *bsmt = space->machine().device<bsmt2000_device>("bsmt");
+ bsmt2000_device *bsmt = machine().device<bsmt2000_device>("bsmt");
bsmt->reset();
}
/* log any unknown bits */
if (data & 0x4f1fffff)
- logerror("%08X: control_w = %08X & %08X\n", cpu_get_previouspc(&space->device()), data, mem_mask);
+ logerror("%08X: control_w = %08X & %08X\n", cpu_get_previouspc(&space.device()), data, mem_mask);
}
@@ -163,21 +162,19 @@ static WRITE32_HANDLER( control_w )
*
*************************************/
-static WRITE32_HANDLER( policetr_bsmt2000_reg_w )
+WRITE32_MEMBER(policetr_state::policetr_bsmt2000_reg_w)
{
- policetr_state *state = space->machine().driver_data<policetr_state>();
- if (state->m_control_data & 0x80000000)
- space->machine().device<bsmt2000_device>("bsmt")->write_data(data);
+ if (m_control_data & 0x80000000)
+ machine().device<bsmt2000_device>("bsmt")->write_data(data);
else
- COMBINE_DATA(&state->m_bsmt_data_offset);
+ COMBINE_DATA(&m_bsmt_data_offset);
}
-static WRITE32_HANDLER( policetr_bsmt2000_data_w )
+WRITE32_MEMBER(policetr_state::policetr_bsmt2000_data_w)
{
- policetr_state *state = space->machine().driver_data<policetr_state>();
- space->machine().device<bsmt2000_device>("bsmt")->write_reg(data);
- COMBINE_DATA(&state->m_bsmt_data_bank);
+ machine().device<bsmt2000_device>("bsmt")->write_reg(data);
+ COMBINE_DATA(&m_bsmt_data_bank);
}
@@ -187,10 +184,9 @@ static CUSTOM_INPUT( bsmt_status_r )
}
-static READ32_HANDLER( bsmt2000_data_r )
+READ32_MEMBER(policetr_state::bsmt2000_data_r)
{
- policetr_state *state = space->machine().driver_data<policetr_state>();
- return space->machine().region("bsmt")->base()[state->m_bsmt_data_bank * 0x10000 + state->m_bsmt_data_offset] << 8;
+ return machine().region("bsmt")->base()[m_bsmt_data_bank * 0x10000 + m_bsmt_data_offset] << 8;
}
@@ -201,29 +197,28 @@ static READ32_HANDLER( bsmt2000_data_r )
*
*************************************/
-static WRITE32_HANDLER( speedup_w )
+WRITE32_MEMBER(policetr_state::speedup_w)
{
- policetr_state *state = space->machine().driver_data<policetr_state>();
- COMBINE_DATA(state->m_speedup_data);
+ COMBINE_DATA(m_speedup_data);
/* see if the PC matches */
- if ((cpu_get_previouspc(&space->device()) & 0x1fffffff) == state->m_speedup_pc)
+ if ((cpu_get_previouspc(&space.device()) & 0x1fffffff) == m_speedup_pc)
{
- UINT64 curr_cycles = space->machine().firstcpu->total_cycles();
+ UINT64 curr_cycles = machine().firstcpu->total_cycles();
/* if less than 50 cycles from the last time, count it */
- if (curr_cycles - state->m_last_cycles < 50)
+ if (curr_cycles - m_last_cycles < 50)
{
- state->m_loop_count++;
+ m_loop_count++;
/* more than 2 in a row and we spin */
- if (state->m_loop_count > 2)
- device_spin_until_interrupt(&space->device());
+ if (m_loop_count > 2)
+ device_spin_until_interrupt(&space.device());
}
else
- state->m_loop_count = 0;
+ m_loop_count = 0;
- state->m_last_cycles = curr_cycles;
+ m_last_cycles = curr_cycles;
}
}
@@ -259,12 +254,12 @@ static ADDRESS_MAP_START( policetr_map, AS_PROGRAM, 32, policetr_state )
AM_RANGE(0x00200000, 0x0020000f) AM_WRITE_LEGACY(policetr_video_w)
AM_RANGE(0x00400000, 0x00400003) AM_READ_LEGACY(policetr_video_r)
AM_RANGE(0x00500000, 0x00500003) AM_WRITENOP // copies ROM here at startup, plus checksum
- AM_RANGE(0x00600000, 0x00600003) AM_READ_LEGACY(bsmt2000_data_r)
- AM_RANGE(0x00700000, 0x00700003) AM_WRITE_LEGACY(policetr_bsmt2000_reg_w)
- AM_RANGE(0x00800000, 0x00800003) AM_WRITE_LEGACY(policetr_bsmt2000_data_w)
+ AM_RANGE(0x00600000, 0x00600003) AM_READ(bsmt2000_data_r)
+ AM_RANGE(0x00700000, 0x00700003) AM_WRITE(policetr_bsmt2000_reg_w)
+ AM_RANGE(0x00800000, 0x00800003) AM_WRITE(policetr_bsmt2000_data_w)
AM_RANGE(0x00900000, 0x00900003) AM_WRITE_LEGACY(policetr_palette_offset_w)
AM_RANGE(0x00920000, 0x00920003) AM_WRITE_LEGACY(policetr_palette_data_w)
- AM_RANGE(0x00a00000, 0x00a00003) AM_WRITE_LEGACY(control_w)
+ AM_RANGE(0x00a00000, 0x00a00003) AM_WRITE(control_w)
AM_RANGE(0x00a00000, 0x00a00003) AM_READ_PORT("IN0")
AM_RANGE(0x00a20000, 0x00a20003) AM_READ_PORT("IN1")
AM_RANGE(0x00a40000, 0x00a40003) AM_READ_PORT("DSW")
@@ -275,15 +270,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sshooter_map, AS_PROGRAM, 32, policetr_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_BASE(m_rambase)
- AM_RANGE(0x00200000, 0x00200003) AM_WRITE_LEGACY(policetr_bsmt2000_data_w)
+ AM_RANGE(0x00200000, 0x00200003) AM_WRITE(policetr_bsmt2000_data_w)
AM_RANGE(0x00300000, 0x00300003) AM_WRITE_LEGACY(policetr_palette_offset_w)
AM_RANGE(0x00320000, 0x00320003) AM_WRITE_LEGACY(policetr_palette_data_w)
AM_RANGE(0x00400000, 0x00400003) AM_READ_LEGACY(policetr_video_r)
AM_RANGE(0x00500000, 0x00500003) AM_WRITENOP // copies ROM here at startup, plus checksum
- AM_RANGE(0x00600000, 0x00600003) AM_READ_LEGACY(bsmt2000_data_r)
- AM_RANGE(0x00700000, 0x00700003) AM_WRITE_LEGACY(policetr_bsmt2000_reg_w)
+ AM_RANGE(0x00600000, 0x00600003) AM_READ(bsmt2000_data_r)
+ AM_RANGE(0x00700000, 0x00700003) AM_WRITE(policetr_bsmt2000_reg_w)
AM_RANGE(0x00800000, 0x0080000f) AM_WRITE_LEGACY(policetr_video_w)
- AM_RANGE(0x00a00000, 0x00a00003) AM_WRITE_LEGACY(control_w)
+ AM_RANGE(0x00a00000, 0x00a00003) AM_WRITE(control_w)
AM_RANGE(0x00a00000, 0x00a00003) AM_READ_PORT("IN0")
AM_RANGE(0x00a20000, 0x00a20003) AM_READ_PORT("IN1")
AM_RANGE(0x00a40000, 0x00a40003) AM_READ_PORT("DSW")
@@ -678,14 +673,14 @@ ROM_END
static DRIVER_INIT( policetr )
{
policetr_state *state = machine.driver_data<policetr_state>();
- state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x00000fc8, 0x00000fcb, FUNC(speedup_w));
+ state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00000fc8, 0x00000fcb, write32_delegate(FUNC(policetr_state::speedup_w),state));
state->m_speedup_pc = 0x1fc028ac;
}
static DRIVER_INIT( plctr13b )
{
policetr_state *state = machine.driver_data<policetr_state>();
- state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x00000fc8, 0x00000fcb, FUNC(speedup_w));
+ state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00000fc8, 0x00000fcb, write32_delegate(FUNC(policetr_state::speedup_w),state));
state->m_speedup_pc = 0x1fc028bc;
}
@@ -693,14 +688,14 @@ static DRIVER_INIT( plctr13b )
static DRIVER_INIT( sshooter )
{
policetr_state *state = machine.driver_data<policetr_state>();
- state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x00018fd8, 0x00018fdb, FUNC(speedup_w));
+ state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00018fd8, 0x00018fdb, write32_delegate(FUNC(policetr_state::speedup_w),state));
state->m_speedup_pc = 0x1fc03470;
}
static DRIVER_INIT( sshoot12 )
{
policetr_state *state = machine.driver_data<policetr_state>();
- state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x00018fd8, 0x00018fdb, FUNC(speedup_w));
+ state->m_speedup_data = machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00018fd8, 0x00018fdb, write32_delegate(FUNC(policetr_state::speedup_w),state));
state->m_speedup_pc = 0x1fc033e0;
}
diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c
index 9047a97e364..36371f03d26 100644
--- a/src/mame/drivers/polyplay.c
+++ b/src/mame/drivers/polyplay.c
@@ -85,12 +85,12 @@ emulated now. ;)
/* I/O Port handling */
-static READ8_HANDLER( polyplay_random_read );
+
/* timer handling */
static TIMER_DEVICE_CALLBACK( polyplay_timer_callback );
-static WRITE8_HANDLER( polyplay_start_timer2 );
-static WRITE8_HANDLER( polyplay_sound_channel );
+
+
/* Polyplay Sound Interface */
@@ -155,9 +155,9 @@ ADDRESS_MAP_END
/* port mapping */
static ADDRESS_MAP_START( polyplay_io_map, AS_IO, 8, polyplay_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x80, 0x81) AM_WRITE_LEGACY(polyplay_sound_channel)
- AM_RANGE(0x82, 0x82) AM_WRITE_LEGACY(polyplay_start_timer2)
- AM_RANGE(0x83, 0x83) AM_READ_LEGACY(polyplay_random_read)
+ AM_RANGE(0x80, 0x81) AM_WRITE(polyplay_sound_channel)
+ AM_RANGE(0x82, 0x82) AM_WRITE(polyplay_start_timer2)
+ AM_RANGE(0x83, 0x83) AM_READ(polyplay_random_read)
AM_RANGE(0x84, 0x84) AM_READ_PORT("INPUT")
ADDRESS_MAP_END
@@ -175,68 +175,66 @@ static INPUT_PORTS_START( polyplay )
INPUT_PORTS_END
-static WRITE8_HANDLER( polyplay_sound_channel )
+WRITE8_MEMBER(polyplay_state::polyplay_sound_channel)
{
- polyplay_state *state = space->machine().driver_data<polyplay_state>();
switch(offset) {
case 0x00:
- if (state->m_channel1_const) {
+ if (m_channel1_const) {
if (data <= 1) {
- polyplay_set_channel1(space->machine(), 0);
+ polyplay_set_channel1(machine(), 0);
}
- state->m_channel1_const = 0;
- polyplay_play_channel1(space->machine(), data*state->m_prescale1);
+ m_channel1_const = 0;
+ polyplay_play_channel1(machine(), data*m_prescale1);
}
else {
- state->m_prescale1 = (data & 0x20) ? 16 : 1;
+ m_prescale1 = (data & 0x20) ? 16 : 1;
if (data & 0x04) {
- polyplay_set_channel1(space->machine(), 1);
- state->m_channel1_const = 1;
+ polyplay_set_channel1(machine(), 1);
+ m_channel1_const = 1;
}
if ((data == 0x41) || (data == 0x65) || (data == 0x45)) {
- polyplay_set_channel1(space->machine(), 0);
- polyplay_play_channel1(space->machine(), 0);
+ polyplay_set_channel1(machine(), 0);
+ polyplay_play_channel1(machine(), 0);
}
}
break;
case 0x01:
- if (state->m_channel2_const) {
+ if (m_channel2_const) {
if (data <= 1) {
- polyplay_set_channel2(space->machine(), 0);
+ polyplay_set_channel2(machine(), 0);
}
- state->m_channel2_const = 0;
- polyplay_play_channel2(space->machine(), data*state->m_prescale2);
+ m_channel2_const = 0;
+ polyplay_play_channel2(machine(), data*m_prescale2);
}
else {
- state->m_prescale2 = (data & 0x20) ? 16 : 1;
+ m_prescale2 = (data & 0x20) ? 16 : 1;
if (data & 0x04) {
- polyplay_set_channel2(space->machine(), 1);
- state->m_channel2_const = 1;
+ polyplay_set_channel2(machine(), 1);
+ m_channel2_const = 1;
}
if ((data == 0x41) || (data == 0x65) || (data == 0x45)) {
- polyplay_set_channel2(space->machine(), 0);
- polyplay_play_channel2(space->machine(), 0);
+ polyplay_set_channel2(machine(), 0);
+ polyplay_play_channel2(machine(), 0);
}
}
break;
}
}
-static WRITE8_HANDLER( polyplay_start_timer2 )
+WRITE8_MEMBER(polyplay_state::polyplay_start_timer2)
{
- polyplay_state *state = space->machine().driver_data<polyplay_state>();
if (data == 0x03)
- state->m_timer->reset();
+ m_timer->reset();
if (data == 0xb5)
- state->m_timer->adjust(attotime::from_hz(40), 0, attotime::from_hz(40));
+ m_timer->adjust(attotime::from_hz(40), 0, attotime::from_hz(40));
}
-static READ8_HANDLER( polyplay_random_read )
+READ8_MEMBER(polyplay_state::polyplay_random_read)
{
- return space->machine().rand() & 0xff;
+ return machine().rand() & 0xff;
}
/* graphic structures */
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index ed9cfe029ee..c6e487e752b 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -45,23 +45,22 @@ static DRIVER_INIT( poolshrk )
}
-static WRITE8_HANDLER( poolshrk_da_latch_w )
+WRITE8_MEMBER(poolshrk_state::poolshrk_da_latch_w)
{
- poolshrk_state *state = space->machine().driver_data<poolshrk_state>();
- state->m_da_latch = data & 15;
+ m_da_latch = data & 15;
}
-static WRITE8_HANDLER( poolshrk_led_w )
+WRITE8_MEMBER(poolshrk_state::poolshrk_led_w)
{
if (offset & 2)
- set_led_status(space->machine(), 0, offset & 1);
+ set_led_status(machine(), 0, offset & 1);
if (offset & 4)
- set_led_status(space->machine(), 1, offset & 1);
+ set_led_status(machine(), 1, offset & 1);
}
-static WRITE8_HANDLER( poolshrk_watchdog_w )
+WRITE8_MEMBER(poolshrk_state::poolshrk_watchdog_w)
{
if ((offset & 3) == 3)
{
@@ -70,17 +69,16 @@ static WRITE8_HANDLER( poolshrk_watchdog_w )
}
-static READ8_HANDLER( poolshrk_input_r )
+READ8_MEMBER(poolshrk_state::poolshrk_input_r)
{
- poolshrk_state *state = space->machine().driver_data<poolshrk_state>();
static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" };
- UINT8 val = input_port_read(space->machine(), portnames[offset & 3]);
+ UINT8 val = input_port_read(machine(), portnames[offset & 3]);
- int x = input_port_read(space->machine(), (offset & 1) ? "AN1" : "AN0");
- int y = input_port_read(space->machine(), (offset & 1) ? "AN3" : "AN2");
+ int x = input_port_read(machine(), (offset & 1) ? "AN1" : "AN0");
+ int y = input_port_read(machine(), (offset & 1) ? "AN3" : "AN2");
- if (x >= state->m_da_latch) val |= 8;
- if (y >= state->m_da_latch) val |= 4;
+ if (x >= m_da_latch) val |= 8;
+ if (y >= m_da_latch) val |= 4;
if ((offset & 3) == 3)
{
@@ -91,9 +89,9 @@ static READ8_HANDLER( poolshrk_input_r )
}
-static READ8_HANDLER( poolshrk_irq_reset_r )
+READ8_MEMBER(poolshrk_state::poolshrk_irq_reset_r)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
return 0;
}
@@ -105,15 +103,15 @@ static ADDRESS_MAP_START( poolshrk_cpu_map, AS_PROGRAM, 8, poolshrk_state )
AM_RANGE(0x0400, 0x07ff) AM_MIRROR(0x2000) AM_WRITEONLY AM_BASE(m_playfield_ram)
AM_RANGE(0x0800, 0x080f) AM_MIRROR(0x23f0) AM_WRITEONLY AM_BASE(m_hpos_ram)
AM_RANGE(0x0c00, 0x0c0f) AM_MIRROR(0x23f0) AM_WRITEONLY AM_BASE(m_vpos_ram)
- AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x2000) AM_READWRITE_LEGACY(poolshrk_input_r, poolshrk_watchdog_w)
+ AM_RANGE(0x1000, 0x13ff) AM_MIRROR(0x2000) AM_READWRITE(poolshrk_input_r, poolshrk_watchdog_w)
AM_RANGE(0x1400, 0x17ff) AM_MIRROR(0x2000) AM_DEVWRITE_LEGACY("discrete", poolshrk_scratch_sound_w)
AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x2000) AM_DEVWRITE_LEGACY("discrete", poolshrk_score_sound_w)
AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x2000) AM_DEVWRITE_LEGACY("discrete", poolshrk_click_sound_w)
AM_RANGE(0x4000, 0x4000) AM_NOP /* diagnostic ROM location */
- AM_RANGE(0x6000, 0x63ff) AM_WRITE_LEGACY(poolshrk_da_latch_w)
+ AM_RANGE(0x6000, 0x63ff) AM_WRITE(poolshrk_da_latch_w)
AM_RANGE(0x6400, 0x67ff) AM_DEVWRITE_LEGACY("discrete", poolshrk_bump_sound_w)
- AM_RANGE(0x6800, 0x6bff) AM_READ_LEGACY(poolshrk_irq_reset_r)
- AM_RANGE(0x6c00, 0x6fff) AM_WRITE_LEGACY(poolshrk_led_w)
+ AM_RANGE(0x6800, 0x6bff) AM_READ(poolshrk_irq_reset_r)
+ AM_RANGE(0x6c00, 0x6fff) AM_WRITE(poolshrk_led_w)
AM_RANGE(0x7000, 0x7fff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c
index 148a7a652d0..a77bf82cebd 100644
--- a/src/mame/drivers/pooyan.c
+++ b/src/mame/drivers/pooyan.c
@@ -33,13 +33,12 @@ static INTERRUPT_GEN( pooyan_interrupt )
}
-static WRITE8_HANDLER( irq_enable_w )
+WRITE8_MEMBER(pooyan_state::irq_enable_w)
{
- pooyan_state *state = space->machine().driver_data<pooyan_state>();
- state->m_irq_enable = data & 1;
- if (!state->m_irq_enable)
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
+ m_irq_enable = data & 1;
+ if (!m_irq_enable)
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
}
@@ -63,7 +62,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, pooyan_state )
AM_RANGE(0xa0e0, 0xa0e0) AM_MIRROR(0x5e1f) AM_READ_PORT("DSW0")
AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x5e7f) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xa100, 0xa100) AM_MIRROR(0x5e7f) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xa180, 0xa180) AM_MIRROR(0x5e78) AM_WRITE_LEGACY(irq_enable_w)
+ AM_RANGE(0xa180, 0xa180) AM_MIRROR(0x5e78) AM_WRITE(irq_enable_w)
AM_RANGE(0xa181, 0xa181) AM_MIRROR(0x5e78) AM_WRITE_LEGACY(timeplt_sh_irqtrigger_w)
AM_RANGE(0xa183, 0xa183) AM_MIRROR(0x5e78) AM_WRITENOP // ???
AM_RANGE(0xa187, 0xa187) AM_MIRROR(0x5e78) AM_WRITE_LEGACY(pooyan_flipscreen_w)
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 8095623a0bb..dbc3703bc16 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -32,12 +32,11 @@ static INTERRUPT_GEN( popeye_interrupt )
/* the protection device simply returns the last two values written shifted left */
/* by a variable amount. */
-static READ8_HANDLER( protection_r )
+READ8_MEMBER(popeye_state::protection_r)
{
- popeye_state *state = space->machine().driver_data<popeye_state>();
if (offset == 0)
{
- return ((state->m_prot1 << state->m_prot_shift) | (state->m_prot0 >> (8-state->m_prot_shift))) & 0xff;
+ return ((m_prot1 << m_prot_shift) | (m_prot0 >> (8-m_prot_shift))) & 0xff;
}
else /* offset == 1 */
{
@@ -46,18 +45,17 @@ static READ8_HANDLER( protection_r )
}
}
-static WRITE8_HANDLER( protection_w )
+WRITE8_MEMBER(popeye_state::protection_w)
{
- popeye_state *state = space->machine().driver_data<popeye_state>();
if (offset == 0)
{
/* this is the same as the level number (1-3) */
- state->m_prot_shift = data & 0x07;
+ m_prot_shift = data & 0x07;
}
else /* offset == 1 */
{
- state->m_prot0 = state->m_prot1;
- state->m_prot1 = data;
+ m_prot0 = m_prot1;
+ m_prot1 = data;
}
}
@@ -74,7 +72,7 @@ static ADDRESS_MAP_START( skyskipr_map, AS_PROGRAM, 8, popeye_state )
AM_RANGE(0xa000, 0xa3ff) AM_WRITE_LEGACY(popeye_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xa400, 0xa7ff) AM_WRITE_LEGACY(popeye_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xc000, 0xcfff) AM_WRITE_LEGACY(skyskipr_bitmap_w)
- AM_RANGE(0xe000, 0xe001) AM_READWRITE_LEGACY(protection_r,protection_w)
+ AM_RANGE(0xe000, 0xe001) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( popeye_map, AS_PROGRAM, 8, popeye_state )
@@ -88,7 +86,7 @@ static ADDRESS_MAP_START( popeye_map, AS_PROGRAM, 8, popeye_state )
AM_RANGE(0xa000, 0xa3ff) AM_WRITE_LEGACY(popeye_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xa400, 0xa7ff) AM_WRITE_LEGACY(popeye_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xc000, 0xdfff) AM_WRITE_LEGACY(popeye_bitmap_w)
- AM_RANGE(0xe000, 0xe001) AM_READWRITE_LEGACY(protection_r,protection_w)
+ AM_RANGE(0xe000, 0xe001) AM_READWRITE(protection_r,protection_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( popeyebl_map, AS_PROGRAM, 8, popeye_state )
diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c
index dc27993dcbb..d8c762a325e 100644
--- a/src/mame/drivers/popper.c
+++ b/src/mame/drivers/popper.c
@@ -120,36 +120,34 @@ Notes:
// -----x-- free play
// ------x- continue
// -------x sound
-static READ8_HANDLER( popper_input_ports_r )
+READ8_MEMBER(popper_state::popper_input_ports_r)
{
UINT8 data = 0;
switch (offset)
{
// player inputs dsw1 dsw2
- case 0: data = input_port_read(space->machine(), "IN0") | ((input_port_read(space->machine(), "DSW1") & 0x02) << 5) | ((input_port_read(space->machine(), "DSW2") & 0x01) << 4); break;
- case 1: data = input_port_read(space->machine(), "IN1") | ((input_port_read(space->machine(), "DSW1") & 0x01) << 6) | ((input_port_read(space->machine(), "DSW2") & 0x02) << 3); break;
- case 2: data = input_port_read(space->machine(), "IN2") | ((input_port_read(space->machine(), "DSW1") & 0x08) << 3) | ((input_port_read(space->machine(), "DSW2") & 0x04) << 2); break;
- case 3: data = input_port_read(space->machine(), "IN3") | ((input_port_read(space->machine(), "DSW1") & 0x04) << 4) | ((input_port_read(space->machine(), "DSW2") & 0x08) << 1); break;
- case 4: data = ((input_port_read(space->machine(), "DSW1") & 0x20) << 2) | ((input_port_read(space->machine(), "DSW2") & 0x10) << 1); break;
- case 5: data = ((input_port_read(space->machine(), "DSW1") & 0x10) << 3) | ((input_port_read(space->machine(), "DSW2") & 0x20) << 0); break;
- case 6: data = ((input_port_read(space->machine(), "DSW1") & 0x80) << 0) | ((input_port_read(space->machine(), "DSW2") & 0x40) >> 1); break;
- case 7: data = ((input_port_read(space->machine(), "DSW1") & 0x40) << 1) | ((input_port_read(space->machine(), "DSW2") & 0x80) >> 2); break;
+ case 0: data = input_port_read(machine(), "IN0") | ((input_port_read(machine(), "DSW1") & 0x02) << 5) | ((input_port_read(machine(), "DSW2") & 0x01) << 4); break;
+ case 1: data = input_port_read(machine(), "IN1") | ((input_port_read(machine(), "DSW1") & 0x01) << 6) | ((input_port_read(machine(), "DSW2") & 0x02) << 3); break;
+ case 2: data = input_port_read(machine(), "IN2") | ((input_port_read(machine(), "DSW1") & 0x08) << 3) | ((input_port_read(machine(), "DSW2") & 0x04) << 2); break;
+ case 3: data = input_port_read(machine(), "IN3") | ((input_port_read(machine(), "DSW1") & 0x04) << 4) | ((input_port_read(machine(), "DSW2") & 0x08) << 1); break;
+ case 4: data = ((input_port_read(machine(), "DSW1") & 0x20) << 2) | ((input_port_read(machine(), "DSW2") & 0x10) << 1); break;
+ case 5: data = ((input_port_read(machine(), "DSW1") & 0x10) << 3) | ((input_port_read(machine(), "DSW2") & 0x20) << 0); break;
+ case 6: data = ((input_port_read(machine(), "DSW1") & 0x80) << 0) | ((input_port_read(machine(), "DSW2") & 0x40) >> 1); break;
+ case 7: data = ((input_port_read(machine(), "DSW1") & 0x40) << 1) | ((input_port_read(machine(), "DSW2") & 0x80) >> 2); break;
}
return data;
}
-static READ8_HANDLER( popper_soundcpu_nmi_r )
+READ8_MEMBER(popper_state::popper_soundcpu_nmi_r)
{
- popper_state *state = space->machine().driver_data<popper_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
return 0;
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(popper_state::nmi_mask_w)
{
- popper_state *state = space->machine().driver_data<popper_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
@@ -170,13 +168,13 @@ static ADDRESS_MAP_START( popper_map, AS_PROGRAM, 8, popper_state )
AM_RANGE(0xce20, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xe000, 0xe007) AM_READ_LEGACY(popper_input_ports_r)
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xe000, 0xe007) AM_READ(popper_input_ports_r)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(nmi_mask_w)
AM_RANGE(0xe001, 0xe001) AM_WRITE_LEGACY(popper_flipscreen_w)
AM_RANGE(0xe002, 0xe002) AM_WRITE_LEGACY(popper_e002_w) //?? seems to be graphic related
AM_RANGE(0xe003, 0xe003) AM_WRITE_LEGACY(popper_gfx_bank_w)
AM_RANGE(0xe004, 0xe007) AM_WRITENOP //?? range cleared once when the SP is set
- AM_RANGE(0xe400, 0xe400) AM_READ_LEGACY(popper_soundcpu_nmi_r)
+ AM_RANGE(0xe400, 0xe400) AM_READ(popper_soundcpu_nmi_r)
AM_RANGE(0xf800, 0xf800) AM_READNOP //?? read once at startup
AM_RANGE(0xfc00, 0xfc00) AM_READNOP //?? possibly watchdog
AM_RANGE(0xffff, 0xffff) AM_READNOP
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index b30698d72c5..9d4f1f9a3cd 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -90,32 +90,30 @@ DM81LS95 = TriState buffer
#include "machine/nvram.h"
#include "includes/portrait.h"
-static WRITE8_HANDLER( portrait_ctrl_w )
+WRITE8_MEMBER(portrait_state::portrait_ctrl_w)
{
/* bits 4 and 5 are unknown */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
- coin_counter_w(space->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);
/* the 2 lamps near the camera */
- set_led_status(space->machine(), 0, data & 0x08);
- set_led_status(space->machine(), 1, data & 0x40);
+ set_led_status(machine(), 0, data & 0x08);
+ set_led_status(machine(), 1, data & 0x40);
/* shows the black and white photo from the camera */
output_set_value("photo", (data >> 7) & 1);
}
-static WRITE8_HANDLER( portrait_positive_scroll_w )
+WRITE8_MEMBER(portrait_state::portrait_positive_scroll_w)
{
- portrait_state *state = space->machine().driver_data<portrait_state>();
- state->m_scroll = data;
+ m_scroll = data;
}
-static WRITE8_HANDLER( portrait_negative_scroll_w )
+WRITE8_MEMBER(portrait_state::portrait_negative_scroll_w)
{
- portrait_state *state = space->machine().driver_data<portrait_state>();
- state->m_scroll = - (data ^ 0xff);
+ m_scroll = - (data ^ 0xff);
}
static ADDRESS_MAP_START( portrait_map, AS_PROGRAM, 8, portrait_state )
@@ -128,10 +126,10 @@ static ADDRESS_MAP_START( portrait_map, AS_PROGRAM, 8, portrait_state )
AM_RANGE(0xa010, 0xa010) AM_WRITENOP // ?
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("DSW1")
AM_RANGE(0xa004, 0xa004) AM_READ_PORT("DSW2")
- AM_RANGE(0xa008, 0xa008) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(portrait_ctrl_w)
+ AM_RANGE(0xa008, 0xa008) AM_READ_PORT("SYSTEM") AM_WRITE(portrait_ctrl_w)
AM_RANGE(0xa010, 0xa010) AM_READ_PORT("INPUTS")
- AM_RANGE(0xa018, 0xa018) AM_READNOP AM_WRITE_LEGACY(portrait_positive_scroll_w)
- AM_RANGE(0xa019, 0xa019) AM_WRITE_LEGACY(portrait_negative_scroll_w)
+ AM_RANGE(0xa018, 0xa018) AM_READNOP AM_WRITE(portrait_positive_scroll_w)
+ AM_RANGE(0xa019, 0xa019) AM_WRITE(portrait_negative_scroll_w)
AM_RANGE(0xa800, 0xa83f) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xffff, 0xffff) AM_READNOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 2d3c0555a65..b684f8aba8d 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -44,29 +44,28 @@ TODO:
***************************************************************************/
-static WRITE16_HANDLER( powerins_okibank_w )
+WRITE16_MEMBER(powerins_state::powerins_okibank_w)
{
- powerins_state *state = space->machine().driver_data<powerins_state>();
if (ACCESSING_BITS_0_7)
{
- UINT8 *RAM = space->machine().region("oki1")->base();
+ UINT8 *RAM = machine().region("oki1")->base();
int new_bank = data & 0x7;
- if (new_bank != state->m_oki_bank)
+ if (new_bank != m_oki_bank)
{
- state->m_oki_bank = new_bank;
+ m_oki_bank = new_bank;
memcpy(&RAM[0x30000],&RAM[0x40000 + 0x10000*new_bank],0x10000);
}
}
}
-static WRITE16_HANDLER( powerins_soundlatch_w )
+WRITE16_MEMBER(powerins_state::powerins_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
}
-static READ8_HANDLER( powerinb_fake_ym2203_r )
+READ8_MEMBER(powerins_state::powerinb_fake_ym2203_r)
{
return 0x01;
}
@@ -81,8 +80,8 @@ static ADDRESS_MAP_START( powerins_map, AS_PROGRAM, 16, powerins_state )
AM_RANGE(0x100014, 0x100015) AM_WRITE_LEGACY(powerins_flipscreen_w) // Flip Screen
AM_RANGE(0x100016, 0x100017) AM_WRITENOP // ? always 1
AM_RANGE(0x100018, 0x100019) AM_WRITE_LEGACY(powerins_tilebank_w) // Tiles Banking (VRAM 0)
- AM_RANGE(0x10001e, 0x10001f) AM_WRITE_LEGACY(powerins_soundlatch_w) // Sound Latch
- AM_RANGE(0x100030, 0x100031) AM_WRITE_LEGACY(powerins_okibank_w) // Sound
+ AM_RANGE(0x10001e, 0x10001f) AM_WRITE(powerins_soundlatch_w) // Sound Latch
+ AM_RANGE(0x100030, 0x100031) AM_WRITE(powerins_okibank_w) // Sound
AM_RANGE(0x120000, 0x120fff) AM_RAM_WRITE_LEGACY(powerins_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x130000, 0x130007) AM_RAM AM_BASE(m_vctrl_0) // VRAM 0 Control
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE_LEGACY(powerins_vram_0_w) AM_BASE(m_vram_0) // VRAM 0
@@ -102,7 +101,7 @@ static ADDRESS_MAP_START( powerina_map, AS_PROGRAM, 16, powerins_state )
AM_RANGE(0x100016, 0x100017) AM_WRITENOP // ? always 1
AM_RANGE(0x100018, 0x100019) AM_WRITE_LEGACY(powerins_tilebank_w) // Tiles Banking (VRAM 0)
AM_RANGE(0x10001e, 0x10001f) AM_WRITENOP // Sound Latch, NOPed since there is no sound cpu
- AM_RANGE(0x100030, 0x100031) AM_WRITE_LEGACY(powerins_okibank_w) // Sound
+ AM_RANGE(0x100030, 0x100031) AM_WRITE(powerins_okibank_w) // Sound
AM_RANGE(0x10003e, 0x10003f) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff) // (used by powerina)
AM_RANGE(0x120000, 0x120fff) AM_RAM_WRITE_LEGACY(powerins_paletteram16_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x130000, 0x130007) AM_RAM AM_BASE(m_vctrl_0) // VRAM 0 Control
@@ -130,7 +129,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( powerinb_sound_io_map, AS_IO, 8, powerins_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(powerinb_fake_ym2203_r) AM_WRITENOP
+ AM_RANGE(0x00, 0x00) AM_READ(powerinb_fake_ym2203_r) AM_WRITENOP
AM_RANGE(0x01, 0x01) AM_NOP
AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x88, 0x88) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index 31b5a2d241c..453042e65b5 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -17,10 +17,10 @@
/******************************************************************************/
-static WRITE16_HANDLER( prehisle_sound16_w )
+WRITE16_MEMBER(prehisle_state::prehisle_sound16_w)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
/*******************************************************************************/
@@ -33,7 +33,7 @@ static ADDRESS_MAP_START( prehisle_map, AS_PROGRAM, 16, prehisle_state )
AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE_LEGACY(prehisle_bg_videoram16_w) AM_BASE(m_bg_videoram16)
AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0e0000, 0x0e00ff) AM_READ_LEGACY(prehisle_control16_r)
- AM_RANGE(0x0f0070, 0x0ff071) AM_WRITE_LEGACY(prehisle_sound16_w)
+ AM_RANGE(0x0f0070, 0x0ff071) AM_WRITE(prehisle_sound16_w)
AM_RANGE(0x0f0000, 0x0ff0ff) AM_WRITE_LEGACY(prehisle_control16_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 8e725a6402f..cb870dd3e02 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -122,25 +122,25 @@ static CUSTOM_INPUT( mcu_status_r )
return ret;
}
-static READ32_HANDLER( sngkace_input_r )
+READ32_MEMBER(psikyo_state::sngkace_input_r)
{
switch (offset)
{
- case 0x0: return input_port_read(space->machine(), "P1_P2");
- case 0x1: return input_port_read(space->machine(), "DSW");
- case 0x2: return input_port_read(space->machine(), "COIN");
- default: logerror("PC %06X - Read input %02X !\n", cpu_get_pc(&space->device()), offset * 2);
+ case 0x0: return input_port_read(machine(), "P1_P2");
+ case 0x1: return input_port_read(machine(), "DSW");
+ case 0x2: return input_port_read(machine(), "COIN");
+ default: logerror("PC %06X - Read input %02X !\n", cpu_get_pc(&space.device()), offset * 2);
return 0;
}
}
-static READ32_HANDLER( gunbird_input_r )
+READ32_MEMBER(psikyo_state::gunbird_input_r)
{
switch (offset)
{
- case 0x0: return input_port_read(space->machine(), "P1_P2");
- case 0x1: return input_port_read(space->machine(), "DSW");
- default: logerror("PC %06X - Read input %02X !\n", cpu_get_pc(&space->device()), offset * 2);
+ case 0x0: return input_port_read(machine(), "P1_P2");
+ case 0x1: return input_port_read(machine(), "DSW");
+ default: logerror("PC %06X - Read input %02X !\n", cpu_get_pc(&space.device()), offset * 2);
return 0;
}
}
@@ -154,20 +154,20 @@ static TIMER_CALLBACK( psikyo_soundlatch_callback )
state->m_z80_nmi = 1;
}
-static WRITE32_HANDLER( psikyo_soundlatch_w )
+WRITE32_MEMBER(psikyo_state::psikyo_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
- space->machine().scheduler().synchronize(FUNC(psikyo_soundlatch_callback), data & 0xff);
+ machine().scheduler().synchronize(FUNC(psikyo_soundlatch_callback), data & 0xff);
}
/***************************************************************************
Strikers 1945 / Tengai
***************************************************************************/
-static WRITE32_HANDLER( s1945_soundlatch_w )
+WRITE32_MEMBER(psikyo_state::s1945_soundlatch_w)
{
if (ACCESSING_BITS_16_23)
- space->machine().scheduler().synchronize(FUNC(psikyo_soundlatch_callback), (data >> 16) & 0xff);
+ machine().scheduler().synchronize(FUNC(psikyo_soundlatch_callback), (data >> 16) & 0xff);
}
static const UINT8 s1945_table[256] = {
@@ -188,9 +188,8 @@ static const UINT8 s1945j_table[256] = {
0x00, 0x00, 0x32, 0x90, 0x00, 0x00, 0xac, 0x64, 0x00, 0x00, 0x2b, 0xc0
};
-static WRITE32_HANDLER( s1945_mcu_w )
+WRITE32_MEMBER(psikyo_state::s1945_mcu_w)
{
- psikyo_state *state = space->machine().driver_data<psikyo_state>();
// Accesses are always bytes, so resolve it
int suboff;
@@ -204,98 +203,97 @@ static WRITE32_HANDLER( s1945_mcu_w )
switch (offset)
{
case 0x06:
- state->m_s1945_mcu_inlatch = data;
+ m_s1945_mcu_inlatch = data;
break;
case 0x08:
- state->m_s1945_mcu_control = data;
+ m_s1945_mcu_control = data;
break;
case 0x09:
- state->m_s1945_mcu_direction = data;
+ m_s1945_mcu_direction = data;
break;
case 0x07:
- psikyo_switch_banks(space->machine(), 1, (data >> 6) & 3);
- psikyo_switch_banks(space->machine(), 0, (data >> 4) & 3);
- state->m_s1945_mcu_bctrl = data;
+ psikyo_switch_banks(machine(), 1, (data >> 6) & 3);
+ psikyo_switch_banks(machine(), 0, (data >> 4) & 3);
+ m_s1945_mcu_bctrl = data;
break;
case 0x0b:
- switch (data | (state->m_s1945_mcu_direction ? 0x100 : 0))
+ switch (data | (m_s1945_mcu_direction ? 0x100 : 0))
{
case 0x11c:
- state->m_s1945_mcu_latching = 5;
- state->m_s1945_mcu_index = state->m_s1945_mcu_inlatch;
+ m_s1945_mcu_latching = 5;
+ m_s1945_mcu_index = m_s1945_mcu_inlatch;
break;
case 0x013:
-// logerror("MCU: Table read index %02x\n", state->m_s1945_mcu_index);
- state->m_s1945_mcu_latching = 1;
- state->m_s1945_mcu_latch1 = state->m_s1945_mcu_table[state->m_s1945_mcu_index];
+// logerror("MCU: Table read index %02x\n", m_s1945_mcu_index);
+ m_s1945_mcu_latching = 1;
+ m_s1945_mcu_latch1 = m_s1945_mcu_table[m_s1945_mcu_index];
break;
case 0x113:
- state->m_s1945_mcu_mode = state->m_s1945_mcu_inlatch;
- if (state->m_s1945_mcu_mode == 1)
+ m_s1945_mcu_mode = m_s1945_mcu_inlatch;
+ if (m_s1945_mcu_mode == 1)
{
- state->m_s1945_mcu_latching &= ~1;
- state->m_s1945_mcu_latch2 = 0x55;
+ m_s1945_mcu_latching &= ~1;
+ m_s1945_mcu_latch2 = 0x55;
}
else
{
// Go figure.
- state->m_s1945_mcu_latching &= ~1;
- state->m_s1945_mcu_latching |= 2;
+ m_s1945_mcu_latching &= ~1;
+ m_s1945_mcu_latching |= 2;
}
- state->m_s1945_mcu_latching &= ~4;
- state->m_s1945_mcu_latch1 = state->m_s1945_mcu_inlatch;
+ m_s1945_mcu_latching &= ~4;
+ m_s1945_mcu_latch1 = m_s1945_mcu_inlatch;
break;
case 0x010:
case 0x110:
- state->m_s1945_mcu_latching |= 4;
+ m_s1945_mcu_latching |= 4;
break;
default:
-// logerror("MCU: function %02x, direction %02x, latch1 %02x, latch2 %02x (%x)\n", data, state->m_s1945_mcu_direction, state->m_s1945_mcu_latch1, state->m_s1945_mcu_latch2, cpu_get_pc(&space->device()));
+// logerror("MCU: function %02x, direction %02x, latch1 %02x, latch2 %02x (%x)\n", data, m_s1945_mcu_direction, m_s1945_mcu_latch1, m_s1945_mcu_latch2, cpu_get_pc(&space.device()));
break;
}
break;
default:
-// logerror("MCU.w %x, %02x (%x)\n", offset, data, cpu_get_pc(&space->device()));
+// logerror("MCU.w %x, %02x (%x)\n", offset, data, cpu_get_pc(&space.device()));
;
}
}
-static READ32_HANDLER( s1945_mcu_r )
+READ32_MEMBER(psikyo_state::s1945_mcu_r)
{
- psikyo_state *state = space->machine().driver_data<psikyo_state>();
switch (offset)
{
case 0:
{
UINT32 res;
- if (state->m_s1945_mcu_control & 16)
+ if (m_s1945_mcu_control & 16)
{
- res = state->m_s1945_mcu_latching & 4 ? 0x0000ff00 : state->m_s1945_mcu_latch1 << 8;
- state->m_s1945_mcu_latching |= 4;
+ res = m_s1945_mcu_latching & 4 ? 0x0000ff00 : m_s1945_mcu_latch1 << 8;
+ m_s1945_mcu_latching |= 4;
}
else
{
- res = state->m_s1945_mcu_latching & 1 ? 0x0000ff00 : state->m_s1945_mcu_latch2 << 8;
- state->m_s1945_mcu_latching |= 1;
+ res = m_s1945_mcu_latching & 1 ? 0x0000ff00 : m_s1945_mcu_latch2 << 8;
+ m_s1945_mcu_latching |= 1;
}
- res |= state->m_s1945_mcu_bctrl & 0xf0;
+ res |= m_s1945_mcu_bctrl & 0xf0;
return res;
}
case 1:
- return (state->m_s1945_mcu_latching << 24) | 0x08000000;
+ return (m_s1945_mcu_latching << 24) | 0x08000000;
}
return 0;
}
-static READ32_HANDLER( s1945_input_r )
+READ32_MEMBER(psikyo_state::s1945_input_r)
{
switch (offset)
{
- case 0x0: return input_port_read(space->machine(), "P1_P2");
- case 0x1: return (input_port_read(space->machine(), "DSW") & 0xffff000f) | s1945_mcu_r(space, offset - 1, mem_mask);
+ case 0x0: return input_port_read(machine(), "P1_P2");
+ case 0x1: return (input_port_read(machine(), "DSW") & 0xffff000f) | s1945_mcu_r(space, offset - 1, mem_mask);
case 0x2: return s1945_mcu_r(space, offset - 1, mem_mask);
- default: logerror("PC %06X - Read input %02X !\n", cpu_get_pc(&space->device()), offset * 2);
+ default: logerror("PC %06X - Read input %02X !\n", cpu_get_pc(&space.device()), offset * 2);
return 0;
}
}
@@ -309,7 +307,7 @@ static READ32_HANDLER( s1945_input_r )
***************************************************************************/
-static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
+WRITE32_MEMBER(psikyo_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
{
if (ACCESSING_BITS_16_31)
paletteram16_xRRRRRGGGGGBBBBB_word_w(space, offset * 2, data >> 16, mem_mask >> 16);
@@ -320,28 +318,28 @@ static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
static ADDRESS_MAP_START( psikyo_map, AS_PROGRAM, 32, psikyo_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM (not all used)
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites, buffered by two frames (list buffered + fb buffered)
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE_LEGACY(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(psikyo_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE_LEGACY(psikyo_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x804000, 0x807fff) AM_RAM AM_BASE(m_vregs) // RAM + Vregs
// AM_RANGE(0xc00000, 0xc0000b) AM_READ_LEGACY(psikyo_input_r) // Depends on board, see DRIVER_INIT
-// AM_RANGE(0xc00004, 0xc0000b) AM_WRITE_LEGACY(s1945_mcu_w) // MCU on sh404, see DRIVER_INIT
-// AM_RANGE(0xc00010, 0xc00013) AM_WRITE_LEGACY(psikyo_soundlatch_w) // Depends on board, see DRIVER_INIT
+// AM_RANGE(0xc00004, 0xc0000b) AM_WRITE(s1945_mcu_w) // MCU on sh404, see DRIVER_INIT
+// AM_RANGE(0xc00010, 0xc00013) AM_WRITE(psikyo_soundlatch_w) // Depends on board, see DRIVER_INIT
AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM
ADDRESS_MAP_END
-static READ32_HANDLER( s1945bl_oki_r )
+READ32_MEMBER(psikyo_state::s1945bl_oki_r)
{
- UINT8 dat = space->machine().device<okim6295_device>("oki")->read(*space, 0);
+ UINT8 dat = machine().device<okim6295_device>("oki")->read(*&space, 0);
return dat << 24;
}
-static WRITE32_HANDLER( s1945bl_oki_w )
+WRITE32_MEMBER(psikyo_state::s1945bl_oki_w)
{
if (ACCESSING_BITS_24_31)
{
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
- oki->write(*space, 0, data >> 24);
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
+ oki->write(*&space, 0, data >> 24);
}
if (ACCESSING_BITS_16_23)
@@ -349,7 +347,7 @@ static WRITE32_HANDLER( s1945bl_oki_w )
// not at all sure about this, it seems to write 0 too often
UINT8 bank = (data & 0x00ff0000) >> 16;
if (bank < 4)
- memory_set_bank(space->machine(), "okibank", bank);
+ memory_set_bank(machine(), "okibank", bank);
}
if (ACCESSING_BITS_8_15)
@@ -369,15 +367,15 @@ static ADDRESS_MAP_START( psikyo_bootleg_map, AS_PROGRAM, 32, psikyo_state )
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE(m_bootleg_spritebuffer) // RAM (it copies the spritelist here, the HW probably doesn't have automatic buffering like the originals?
AM_RANGE(0x400000, 0x401fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites, buffered by two frames (list buffered + fb buffered)
- AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE_LEGACY(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
+ AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // Palette
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(psikyo_vram_0_w) AM_BASE(m_vram_0) // Layer 0
AM_RANGE(0x802000, 0x803fff) AM_RAM_WRITE_LEGACY(psikyo_vram_1_w) AM_BASE(m_vram_1) // Layer 1
AM_RANGE(0x804000, 0x807fff) AM_RAM AM_BASE(m_vregs) // RAM + Vregs
// AM_RANGE(0xc00000, 0xc0000b) AM_READ_LEGACY(psikyo_input_r) // Depends on board, see DRIVER_INIT
-// AM_RANGE(0xc00004, 0xc0000b) AM_WRITE_LEGACY(s1945_mcu_w) // MCU on sh404, see DRIVER_INIT
-// AM_RANGE(0xc00010, 0xc00013) AM_WRITE_LEGACY(psikyo_soundlatch_w) // Depends on board, see DRIVER_INIT
+// AM_RANGE(0xc00004, 0xc0000b) AM_WRITE(s1945_mcu_w) // MCU on sh404, see DRIVER_INIT
+// AM_RANGE(0xc00010, 0xc00013) AM_WRITE(psikyo_soundlatch_w) // Depends on board, see DRIVER_INIT
- AM_RANGE(0xC00018, 0xC0001b) AM_READWRITE_LEGACY(s1945bl_oki_r, s1945bl_oki_w)
+ AM_RANGE(0xC00018, 0xC0001b) AM_READWRITE(s1945bl_oki_r, s1945bl_oki_w)
AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM
@@ -397,17 +395,15 @@ static void sound_irq( device_t *device, int irq )
device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
}
-static READ8_HANDLER( psikyo_soundlatch_r )
+READ8_MEMBER(psikyo_state::psikyo_soundlatch_r)
{
- psikyo_state *state = space->machine().driver_data<psikyo_state>();
- return state->m_soundlatch;
+ return m_soundlatch;
}
-static WRITE8_HANDLER( psikyo_clear_nmi_w )
+WRITE8_MEMBER(psikyo_state::psikyo_clear_nmi_w)
{
- psikyo_state *state = space->machine().driver_data<psikyo_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- state->m_z80_nmi = 0;
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ m_z80_nmi = 0;
}
@@ -415,9 +411,9 @@ static WRITE8_HANDLER( psikyo_clear_nmi_w )
Sengoku Ace / Samurai Aces
***************************************************************************/
-static WRITE8_HANDLER( sngkace_sound_bankswitch_w )
+WRITE8_MEMBER(psikyo_state::sngkace_sound_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x03);
+ memory_set_bank(machine(), "bank1", data & 0x03);
}
static ADDRESS_MAP_START( sngkace_sound_map, AS_PROGRAM, 8, psikyo_state )
@@ -429,9 +425,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sngkace_sound_io_map, AS_IO, 8, psikyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(sngkace_sound_bankswitch_w)
- AM_RANGE(0x08, 0x08) AM_READ_LEGACY(psikyo_soundlatch_r)
- AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(psikyo_clear_nmi_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(sngkace_sound_bankswitch_w)
+ AM_RANGE(0x08, 0x08) AM_READ(psikyo_soundlatch_r)
+ AM_RANGE(0x0c, 0x0c) AM_WRITE(psikyo_clear_nmi_w)
ADDRESS_MAP_END
@@ -439,9 +435,9 @@ ADDRESS_MAP_END
Gun Bird
***************************************************************************/
-static WRITE8_HANDLER( gunbird_sound_bankswitch_w )
+WRITE8_MEMBER(psikyo_state::gunbird_sound_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", (data >> 4) & 0x03);
+ memory_set_bank(machine(), "bank1", (data >> 4) & 0x03);
}
static ADDRESS_MAP_START( gunbird_sound_map, AS_PROGRAM, 8, psikyo_state )
@@ -452,10 +448,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gunbird_sound_io_map, AS_IO, 8, psikyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(gunbird_sound_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w)
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x08, 0x08) AM_READ_LEGACY(psikyo_soundlatch_r)
- AM_RANGE(0x0c, 0x0c) AM_WRITE_LEGACY(psikyo_clear_nmi_w)
+ AM_RANGE(0x08, 0x08) AM_READ(psikyo_soundlatch_r)
+ AM_RANGE(0x0c, 0x0c) AM_WRITE(psikyo_clear_nmi_w)
ADDRESS_MAP_END
/***************************************************************************
@@ -464,11 +460,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( s1945_sound_io_map, AS_IO, 8, psikyo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(gunbird_sound_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w)
AM_RANGE(0x02, 0x03) AM_WRITENOP
AM_RANGE(0x08, 0x0d) AM_DEVREADWRITE_LEGACY("ymf", ymf278b_r, ymf278b_w)
- AM_RANGE(0x10, 0x10) AM_READ_LEGACY(psikyo_soundlatch_r)
- AM_RANGE(0x18, 0x18) AM_WRITE_LEGACY(psikyo_clear_nmi_w)
+ AM_RANGE(0x10, 0x10) AM_READ(psikyo_soundlatch_r)
+ AM_RANGE(0x18, 0x18) AM_WRITE(psikyo_clear_nmi_w)
ADDRESS_MAP_END
/***************************************************************************
@@ -1838,10 +1834,10 @@ static DRIVER_INIT( sngkace )
}
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(sngkace_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::sngkace_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(psikyo_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::psikyo_soundlatch_w),state));
state->m_ka302c_banking = 0; // SH201B doesn't have any gfx banking
@@ -1891,13 +1887,13 @@ static DRIVER_INIT( tengai )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(s1945_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::s1945_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(s1945_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::s1945_soundlatch_w),state));
/* protection */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00004, 0xc0000b, FUNC(s1945_mcu_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00004, 0xc0000b, write32_delegate(FUNC(psikyo_state::psikyo_state::s1945_mcu_w),state));
s1945_mcu_init(machine);
state->m_s1945_mcu_table = 0;
@@ -1914,10 +1910,10 @@ static DRIVER_INIT( gunbird )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(gunbird_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::gunbird_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(psikyo_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::psikyo_state::psikyo_soundlatch_w),state));
state->m_ka302c_banking = 1;
@@ -1932,13 +1928,13 @@ static DRIVER_INIT( s1945 )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(s1945_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::s1945_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(s1945_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::s1945_soundlatch_w),state));
/* protection and tile bank switching */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00004, 0xc0000b, FUNC(s1945_mcu_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00004, 0xc0000b, write32_delegate(FUNC(psikyo_state::s1945_mcu_w),state));
s1945_mcu_init(machine);
state->m_s1945_mcu_table = s1945_table;
@@ -1955,13 +1951,13 @@ static DRIVER_INIT( s1945a )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(s1945_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::s1945_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(s1945_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::s1945_soundlatch_w),state));
/* protection and tile bank switching */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00004, 0xc0000b, FUNC(s1945_mcu_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00004, 0xc0000b, write32_delegate(FUNC(psikyo_state::s1945_mcu_w),state));
s1945_mcu_init(machine);
state->m_s1945_mcu_table = s1945a_table;
@@ -1978,13 +1974,13 @@ static DRIVER_INIT( s1945j )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports*/
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(s1945_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::s1945_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(s1945_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::s1945_soundlatch_w),state));
/* protection and tile bank switching */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00004, 0xc0000b, FUNC(s1945_mcu_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00004, 0xc0000b, write32_delegate(FUNC(psikyo_state::s1945_mcu_w),state));
s1945_mcu_init(machine);
state->m_s1945_mcu_table = s1945j_table;
@@ -2001,10 +1997,10 @@ static DRIVER_INIT( s1945jn )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(gunbird_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::gunbird_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(s1945_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::s1945_soundlatch_w),state));
state->m_ka302c_banking = 1;
@@ -2018,10 +2014,10 @@ static DRIVER_INIT( s1945bl )
psikyo_state *state = machine.driver_data<psikyo_state>();
/* input ports */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xc00000, 0xc0000b, FUNC(gunbird_input_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xc00000, 0xc0000b, read32_delegate(FUNC(psikyo_state::gunbird_input_r),state));
/* sound latch */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc00010, 0xc00013, FUNC(s1945_soundlatch_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc00010, 0xc00013, write32_delegate(FUNC(psikyo_state::s1945_soundlatch_w),state));
state->m_ka302c_banking = 1;
diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c
index a5ef1b32d99..67b7025dd56 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -215,49 +215,45 @@ static CUSTOM_INPUT( mahjong_ctrl_r ) /* used by hotgmck/hgkairak */
return ret;
}
-static WRITE32_HANDLER( ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w )
+WRITE32_MEMBER(psikyo4_state::ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
int r, g, b;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- b = ((state->m_paletteram[offset] & 0x0000ff00) >> 8);
- g = ((state->m_paletteram[offset] & 0x00ff0000) >> 16);
- r = ((state->m_paletteram[offset] & 0xff000000) >> 24);
+ b = ((m_paletteram[offset] & 0x0000ff00) >> 8);
+ g = ((m_paletteram[offset] & 0x00ff0000) >> 16);
+ r = ((m_paletteram[offset] & 0xff000000) >> 24);
- palette_set_color(space->machine(), offset, MAKE_RGB(r, g, b));
- palette_set_color(space->machine(), offset + 0x800, MAKE_RGB(r, g, b)); // For screen 2
+ palette_set_color(machine(), offset, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), offset + 0x800, MAKE_RGB(r, g, b)); // For screen 2
}
-static WRITE32_HANDLER( ps4_bgpen_1_dword_w )
+WRITE32_MEMBER(psikyo4_state::ps4_bgpen_1_dword_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
int r, g, b;
- COMBINE_DATA(&state->m_bgpen_1[0]);
+ COMBINE_DATA(&m_bgpen_1[0]);
- b = ((state->m_bgpen_1[0] & 0x0000ff00) >>8);
- g = ((state->m_bgpen_1[0] & 0x00ff0000) >>16);
- r = ((state->m_bgpen_1[0] & 0xff000000) >>24);
+ b = ((m_bgpen_1[0] & 0x0000ff00) >>8);
+ g = ((m_bgpen_1[0] & 0x00ff0000) >>16);
+ r = ((m_bgpen_1[0] & 0xff000000) >>24);
- palette_set_color(space->machine(), 0x1000, MAKE_RGB(r, g, b)); // Clear colour for screen 1
+ palette_set_color(machine(), 0x1000, MAKE_RGB(r, g, b)); // Clear colour for screen 1
}
-static WRITE32_HANDLER( ps4_bgpen_2_dword_w )
+WRITE32_MEMBER(psikyo4_state::ps4_bgpen_2_dword_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
int r, g, b;
- COMBINE_DATA(&state->m_bgpen_2[0]);
+ COMBINE_DATA(&m_bgpen_2[0]);
- b = ((state->m_bgpen_2[0] & 0x0000ff00) >>8);
- g = ((state->m_bgpen_2[0] & 0x00ff0000) >>16);
- r = ((state->m_bgpen_2[0] & 0xff000000) >>24);
+ b = ((m_bgpen_2[0] & 0x0000ff00) >>8);
+ g = ((m_bgpen_2[0] & 0x00ff0000) >>16);
+ r = ((m_bgpen_2[0] & 0xff000000) >>24);
- palette_set_color(space->machine(), 0x1001, MAKE_RGB(r, g, b)); // Clear colour for screen 2
+ palette_set_color(machine(), 0x1001, MAKE_RGB(r, g, b)); // Clear colour for screen 2
}
-static WRITE32_HANDLER( ps4_screen1_brt_w )
+WRITE32_MEMBER(psikyo4_state::ps4_screen1_brt_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
if (ACCESSING_BITS_0_7)
{
@@ -268,14 +264,14 @@ static WRITE32_HANDLER( ps4_screen1_brt_w )
brt1 = 0x7f; /* I reckon values must be clamped to 0x7f */
brt1 = (0x7f - brt1) / 127.0;
- if (state->m_oldbrt1 != brt1)
+ if (m_oldbrt1 != brt1)
{
int i;
for (i = 0; i < 0x800; i++)
- palette_set_pen_contrast(space->machine(), i, brt1);
+ palette_set_pen_contrast(machine(), i, brt1);
- state->m_oldbrt1 = brt1;
+ m_oldbrt1 = brt1;
}
}
else
@@ -286,9 +282,8 @@ static WRITE32_HANDLER( ps4_screen1_brt_w )
}
}
-static WRITE32_HANDLER( ps4_screen2_brt_w )
+WRITE32_MEMBER(psikyo4_state::ps4_screen2_brt_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
if (ACCESSING_BITS_0_7)
{
@@ -300,14 +295,14 @@ static WRITE32_HANDLER( ps4_screen2_brt_w )
brt2 = (0x7f - brt2) / 127.0;
- if (state->m_oldbrt2 != brt2)
+ if (m_oldbrt2 != brt2)
{
int i;
for (i = 0x800; i < 0x1000; i++)
- palette_set_pen_contrast(space->machine(), i, brt2);
+ palette_set_pen_contrast(machine(), i, brt2);
- state->m_oldbrt2 = brt2;
+ m_oldbrt2 = brt2;
}
}
else
@@ -318,19 +313,18 @@ static WRITE32_HANDLER( ps4_screen2_brt_w )
}
}
-static WRITE32_HANDLER( ps4_vidregs_w )
+WRITE32_MEMBER(psikyo4_state::ps4_vidregs_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
- COMBINE_DATA(&state->m_vidregs[offset]);
+ COMBINE_DATA(&m_vidregs[offset]);
if (offset == 2) /* Configure bank for gfx test */
{
if (ACCESSING_BITS_0_15) // Bank
- memory_set_bankptr(space->machine(), "bank2", space->machine().region("gfx1")->base() + 0x2000 * (state->m_vidregs[offset] & 0x1fff)); /* Bank comes from vidregs */
+ memory_set_bankptr(machine(), "bank2", machine().region("gfx1")->base() + 0x2000 * (m_vidregs[offset] & 0x1fff)); /* Bank comes from vidregs */
}
}
-#define PCM_BANK_NO(n) ((state->m_io_select[0] >> (n * 4 + 24)) & 0x07)
+#define PCM_BANK_NO_LEGACY(n) ((state->m_io_select[0] >> (n * 4 + 24)) & 0x07)
static void set_hotgmck_pcm_bank( running_machine &machine, int n )
{
@@ -338,26 +332,25 @@ static void set_hotgmck_pcm_bank( running_machine &machine, int n )
UINT8 *ymf_pcmbank = machine.region("ymf")->base() + 0x200000;
UINT8 *pcm_rom = machine.region("ymfsource")->base();
- memcpy(ymf_pcmbank + n * 0x100000, pcm_rom + PCM_BANK_NO(n) * 0x100000, 0x100000);
+ memcpy(ymf_pcmbank + n * 0x100000, pcm_rom + PCM_BANK_NO_LEGACY(n) * 0x100000, 0x100000);
}
-
-static WRITE32_HANDLER( hotgmck_pcm_bank_w )
+#define PCM_BANK_NO(n) ((m_io_select[0] >> (n * 4 + 24)) & 0x07)
+WRITE32_MEMBER(psikyo4_state::hotgmck_pcm_bank_w)
{
- psikyo4_state *state = space->machine().driver_data<psikyo4_state>();
int old_bank0 = PCM_BANK_NO(0);
int old_bank1 = PCM_BANK_NO(1);
int new_bank0, new_bank1;
- COMBINE_DATA(&state->m_io_select[0]);
+ COMBINE_DATA(&m_io_select[0]);
new_bank0 = PCM_BANK_NO(0);
new_bank1 = PCM_BANK_NO(1);
if (old_bank0 != new_bank0)
- set_hotgmck_pcm_bank(space->machine(), 0);
+ set_hotgmck_pcm_bank(machine(), 0);
if (old_bank1 != new_bank1)
- set_hotgmck_pcm_bank(space->machine(), 1);
+ set_hotgmck_pcm_bank(machine(), 1);
}
static ADDRESS_MAP_START( ps4_map, AS_PROGRAM, 32, psikyo4_state )
@@ -367,12 +360,12 @@ static ADDRESS_MAP_START( ps4_map, AS_PROGRAM, 32, psikyo4_state )
AM_RANGE(0x03003fe0, 0x03003fe3) AM_DEVREADWRITE_LEGACY("eeprom", 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_LEGACY(ps4_vidregs_w) AM_BASE(m_vidregs) // vid regs?
- AM_RANGE(0x03003ff0, 0x03003ff3) AM_WRITE_LEGACY(ps4_screen1_brt_w) // screen 1 brightness
- AM_RANGE(0x03003ff4, 0x03003ff7) AM_WRITE_LEGACY(ps4_bgpen_1_dword_w) AM_BASE(m_bgpen_1) // screen 1 clear colour
- AM_RANGE(0x03003ff8, 0x03003ffb) AM_WRITE_LEGACY(ps4_screen2_brt_w) // screen 2 brightness
- AM_RANGE(0x03003ffc, 0x03003fff) AM_WRITE_LEGACY(ps4_bgpen_2_dword_w) AM_BASE(m_bgpen_2) // screen 2 clear colour
- AM_RANGE(0x03004000, 0x03005fff) AM_RAM_WRITE_LEGACY(ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(m_paletteram) // palette
+ AM_RANGE(0x03003fe4, 0x03003fef) AM_RAM_WRITE(ps4_vidregs_w) AM_BASE(m_vidregs) // vid regs?
+ AM_RANGE(0x03003ff0, 0x03003ff3) AM_WRITE(ps4_screen1_brt_w) // screen 1 brightness
+ AM_RANGE(0x03003ff4, 0x03003ff7) AM_WRITE(ps4_bgpen_1_dword_w) AM_BASE(m_bgpen_1) // screen 1 clear colour
+ AM_RANGE(0x03003ff8, 0x03003ffb) AM_WRITE(ps4_screen2_brt_w) // screen 2 brightness
+ AM_RANGE(0x03003ffc, 0x03003fff) AM_WRITE(ps4_bgpen_2_dword_w) AM_BASE(m_bgpen_2) // screen 2 clear colour
+ AM_RANGE(0x03004000, 0x03005fff) AM_RAM_WRITE(ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(m_paletteram) // palette
AM_RANGE(0x03006000, 0x03007fff) AM_ROMBANK("bank2") // data for rom tests (gfx), data is controlled by vidreg
AM_RANGE(0x05000000, 0x05000007) AM_DEVREADWRITE8_LEGACY("ymf", ymf278b_r, ymf278b_w, 0xffffffff)
AM_RANGE(0x05800000, 0x05800003) AM_READ_PORT("P1_P2")
@@ -972,7 +965,7 @@ static void install_hotgmck_pcm_bank(running_machine &machine)
set_hotgmck_pcm_bank(machine, 0);
set_hotgmck_pcm_bank(machine, 1);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x5800008, 0x580000b, FUNC(hotgmck_pcm_bank_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x5800008, 0x580000b, write32_delegate(FUNC(psikyo4_state::hotgmck_pcm_bank_w),state));
machine.save().register_postload(save_prepost_delegate(FUNC(hotgmck_pcm_bank_postload), &machine));
}
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index 227d2cbb480..a29880c7c0a 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -353,42 +353,39 @@ static INTERRUPT_GEN(psikyosh_interrupt)
// VBL handler writes 0x00 on entry, 0xc0 on exit
// bit 0 controls game speed on readback, mechanism is a little weird
-static WRITE32_HANDLER( psikyosh_irqctrl_w )
+WRITE32_MEMBER(psikyosh_state::psikyosh_irqctrl_w)
{
- psikyosh_state *state = space->machine().driver_data<psikyosh_state>();
if (!(data & 0x00c00000))
{
- device_set_input_line(state->m_maincpu, 4, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 4, CLEAR_LINE);
}
}
-static WRITE32_HANDLER( paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w )
+WRITE32_MEMBER(psikyosh_state::paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w)
{
- psikyosh_state *state = space->machine().driver_data<psikyosh_state>();
int r, g, b;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- b = ((state->m_paletteram[offset] & 0x0000ff00) >>8);
- g = ((state->m_paletteram[offset] & 0x00ff0000) >>16);
- r = ((state->m_paletteram[offset] & 0xff000000) >>24);
+ b = ((m_paletteram[offset] & 0x0000ff00) >>8);
+ g = ((m_paletteram[offset] & 0x00ff0000) >>16);
+ r = ((m_paletteram[offset] & 0xff000000) >>24);
- palette_set_color(space->machine(), offset, MAKE_RGB(r, g, b));
+ palette_set_color(machine(), offset, MAKE_RGB(r, g, b));
}
-static WRITE32_HANDLER( psikyosh_vidregs_w )
+WRITE32_MEMBER(psikyosh_state::psikyosh_vidregs_w)
{
- psikyosh_state *state = space->machine().driver_data<psikyosh_state>();
- COMBINE_DATA(&state->m_vidregs[offset]);
+ COMBINE_DATA(&m_vidregs[offset]);
if (offset == 4) /* Configure bank for gfx test */
{
if (ACCESSING_BITS_0_15) // Bank
- memory_set_bank(space->machine(), "bank2", state->m_vidregs[offset] & 0xfff);
+ memory_set_bank(machine(), "bank2", m_vidregs[offset] & 0xfff);
}
}
/* Mahjong Panel */
-static READ32_HANDLER( mjgtaste_input_r )
+READ32_MEMBER(psikyosh_state::mjgtaste_input_r)
{
/*
Mahjong keyboard encoder -> JAMMA adapter (SK-G001). Created to allow the use of a Mahjong panel with the existing, recycled Dragon Blaze boards.
@@ -440,8 +437,8 @@ P1KEY11 29|30 P2KEY11
GND 55|56 GND
*/
- UINT32 controls = input_port_read(space->machine(), "CONTROLLER");
- UINT32 value = input_port_read(space->machine(), "INPUTS");
+ UINT32 controls = input_port_read(machine(), "CONTROLLER");
+ UINT32 value = input_port_read(machine(), "INPUTS");
if(controls) {
// Clearly has ghosting, game will only recognise one key depressed at once, and keyboard can only represent keys with distinct rows and columns
@@ -486,7 +483,7 @@ P1KEY11 29|30 P2KEY11
KEY11 | KEY6, // Ron
KEY1 | KEY3 // Start
}; // generic Mahjong keyboard encoder, corresponds to ordering in input port
- UINT32 keys = input_port_read(space->machine(), "MAHJONG");
+ UINT32 keys = input_port_read(machine(), "MAHJONG");
UINT32 which_key = 0x1;
int count = 0;
@@ -518,10 +515,10 @@ static ADDRESS_MAP_START( ps3v1_map, AS_PROGRAM, 32, psikyosh_state )
// video chip
AM_RANGE(0x03000000, 0x03003fff) AM_RAM AM_SHARE("spriteram") // video banks0-7 (sprites and sprite list)
AM_RANGE(0x03004000, 0x0300ffff) AM_RAM AM_BASE(m_bgram) // video banks 7-0x1f (backgrounds and other effects)
- AM_RANGE(0x03040000, 0x03044fff) AM_RAM_WRITE_LEGACY(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(m_paletteram) // palette..
+ AM_RANGE(0x03040000, 0x03044fff) AM_RAM_WRITE(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(m_paletteram) // palette..
AM_RANGE(0x03050000, 0x030501ff) AM_RAM AM_BASE(m_zoomram) // sprite zoom lookup table
- AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READNOP AM_WRITE_LEGACY(psikyosh_irqctrl_w) // also writes to this address - might be vblank reads?
- AM_RANGE(0x0305ffe0, 0x0305ffff) AM_RAM_WRITE_LEGACY(psikyosh_vidregs_w) AM_BASE(m_vidregs) // video registers
+ AM_RANGE(0x0305ffdc, 0x0305ffdf) AM_READNOP AM_WRITE(psikyosh_irqctrl_w) // also writes to this address - might be vblank reads?
+ AM_RANGE(0x0305ffe0, 0x0305ffff) AM_RAM_WRITE(psikyosh_vidregs_w) AM_BASE(m_vidregs) // video registers
AM_RANGE(0x03060000, 0x0307ffff) AM_ROMBANK("bank2") // data for rom tests (gfx), data is controlled by vidreg
// rom mapping
AM_RANGE(0x04060000, 0x0407ffff) AM_ROMBANK("bank2") // data for rom tests (gfx) (Mirrored?)
@@ -546,10 +543,10 @@ static ADDRESS_MAP_START( ps5_map, AS_PROGRAM, 32, psikyosh_state )
// video chip
AM_RANGE(0x04000000, 0x04003fff) AM_RAM AM_SHARE("spriteram") // video banks0-7 (sprites and sprite list)
AM_RANGE(0x04004000, 0x0400ffff) AM_RAM AM_BASE(m_bgram) // video banks 7-0x1f (backgrounds and other effects)
- AM_RANGE(0x04040000, 0x04044fff) AM_RAM_WRITE_LEGACY(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(m_paletteram)
+ AM_RANGE(0x04040000, 0x04044fff) AM_RAM_WRITE(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w) AM_BASE(m_paletteram)
AM_RANGE(0x04050000, 0x040501ff) AM_RAM AM_BASE(m_zoomram) // sprite zoom lookup table
- AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READNOP AM_WRITE_LEGACY(psikyosh_irqctrl_w) // also writes to this address - might be vblank reads?
- AM_RANGE(0x0405ffe0, 0x0405ffff) AM_RAM_WRITE_LEGACY(psikyosh_vidregs_w) AM_BASE(m_vidregs) // video registers
+ AM_RANGE(0x0405ffdc, 0x0405ffdf) AM_READNOP AM_WRITE(psikyosh_irqctrl_w) // also writes to this address - might be vblank reads?
+ AM_RANGE(0x0405ffe0, 0x0405ffff) AM_RAM_WRITE(psikyosh_vidregs_w) AM_BASE(m_vidregs) // video registers
AM_RANGE(0x04060000, 0x0407ffff) AM_ROMBANK("bank2") // data for rom tests (gfx), data is controlled by vidreg
// rom mapping
AM_RANGE(0x05000000, 0x0507ffff) AM_ROMBANK("bank1") // data ROM
@@ -1264,7 +1261,8 @@ static DRIVER_INIT( mjgtaste )
{
sh2drc_set_options(machine.device("maincpu"), SH2DRC_FASTEST_OPTIONS);
/* needs to install mahjong controls too (can select joystick in test mode tho) */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x03000000, 0x03000003, FUNC(mjgtaste_input_r));
+ psikyosh_state *state = machine.driver_data<psikyosh_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x03000000, 0x03000003, read32_delegate(FUNC(psikyosh_state::mjgtaste_input_r),state));
}
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index 131521fe9eb..826d950a614 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -347,58 +347,55 @@ static TIMER_DEVICE_CALLBACK( psychic5_scanline )
***************************************************************************/
-static READ8_HANDLER( psychic5_bankselect_r )
+READ8_MEMBER(psychic5_state::psychic5_bankselect_r)
{
- psychic5_state *state = space->machine().driver_data<psychic5_state>();
- return state->m_bank_latch;
+ return m_bank_latch;
}
-static WRITE8_HANDLER( psychic5_bankselect_w )
+WRITE8_MEMBER(psychic5_state::psychic5_bankselect_w)
{
- psychic5_state *state = space->machine().driver_data<psychic5_state>();
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
int bankaddress;
- if (state->m_bank_latch != data)
+ if (m_bank_latch != data)
{
- state->m_bank_latch = data;
+ m_bank_latch = data;
bankaddress = 0x10000 + ((data & 3) * 0x4000);
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]); /* Select 4 banks of 16k */
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]); /* Select 4 banks of 16k */
}
}
-static WRITE8_HANDLER( bombsa_bankselect_w )
+WRITE8_MEMBER(psychic5_state::bombsa_bankselect_w)
{
- psychic5_state *state = space->machine().driver_data<psychic5_state>();
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
int bankaddress;
- if (state->m_bank_latch != data)
+ if (m_bank_latch != data)
{
- state->m_bank_latch = data;
+ m_bank_latch = data;
bankaddress = 0x10000 + ((data & 7) * 0x4000);
- memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress]); /* Select 8 banks of 16k */
+ memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]); /* Select 8 banks of 16k */
}
}
-static WRITE8_HANDLER( psychic5_coin_counter_w )
+WRITE8_MEMBER(psychic5_state::psychic5_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
// bit 7 toggles flip screen
if (data & 0x80)
{
- flip_screen_set(space->machine(), !flip_screen_get(space->machine()));
+ flip_screen_set(machine(), !flip_screen_get(machine()));
}
}
-static WRITE8_HANDLER( bombsa_flipscreen_w )
+WRITE8_MEMBER(psychic5_state::bombsa_flipscreen_w)
{
// bit 7 toggles flip screen
if (data & 0x80)
{
- flip_screen_set(space->machine(), !flip_screen_get(space->machine()));
+ flip_screen_set(machine(), !flip_screen_get(machine()));
}
}
@@ -415,8 +412,8 @@ static ADDRESS_MAP_START( psychic5_main_map, AS_PROGRAM, 8, psychic5_state )
AM_RANGE(0xc000, 0xdfff) AM_READWRITE_LEGACY(psychic5_paged_ram_r, psychic5_paged_ram_w)
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_RAM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xf001, 0xf001) AM_READNOP AM_WRITE_LEGACY(psychic5_coin_counter_w)
- AM_RANGE(0xf002, 0xf002) AM_READWRITE_LEGACY(psychic5_bankselect_r, psychic5_bankselect_w)
+ AM_RANGE(0xf001, 0xf001) AM_READNOP AM_WRITE(psychic5_coin_counter_w)
+ AM_RANGE(0xf002, 0xf002) AM_READWRITE(psychic5_bankselect_r, psychic5_bankselect_w)
AM_RANGE(0xf003, 0xf003) AM_READWRITE_LEGACY(psychic5_vram_page_select_r, psychic5_vram_page_select_w)
AM_RANGE(0xf004, 0xf004) AM_NOP // ???
AM_RANGE(0xf005, 0xf005) AM_READNOP AM_WRITE_LEGACY(psychic5_title_screen_w)
@@ -445,8 +442,8 @@ static ADDRESS_MAP_START( bombsa_main_map, AS_PROGRAM, 8, psychic5_state )
/* ports look like the other games */
AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(soundlatch_w) // confirmed
- AM_RANGE(0xd001, 0xd001) AM_WRITE_LEGACY(bombsa_flipscreen_w)
- AM_RANGE(0xd002, 0xd002) AM_READWRITE_LEGACY(psychic5_bankselect_r, bombsa_bankselect_w)
+ AM_RANGE(0xd001, 0xd001) AM_WRITE(bombsa_flipscreen_w)
+ AM_RANGE(0xd002, 0xd002) AM_READWRITE(psychic5_bankselect_r, bombsa_bankselect_w)
AM_RANGE(0xd003, 0xd003) AM_READWRITE_LEGACY(psychic5_vram_page_select_r, psychic5_vram_page_select_w)
AM_RANGE(0xd005, 0xd005) AM_WRITE_LEGACY(bombsa_unknown_w) // ?
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index 6fb105ef00c..f2505bb3945 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -140,65 +140,64 @@ static WRITE8_DEVICE_HANDLER( punchout_speech_vcu_w )
vlm5030_vcu( device, data & 0x01 );
}
-static WRITE8_HANDLER( punchout_2a03_reset_w )
+WRITE8_MEMBER(punchout_state::punchout_2a03_reset_w)
{
if (data & 1)
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
else
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
}
-static READ8_HANDLER( spunchout_rp5c01_r )
+READ8_MEMBER(punchout_state::spunchout_rp5c01_r)
{
- punchout_state *state = space->machine().driver_data<punchout_state>();
- logerror("%04x: prot_r %x\n", cpu_get_previouspc(&space->device()), offset);
+ logerror("%04x: prot_r %x\n", cpu_get_previouspc(&space.device()), offset);
if (offset <= 0x0c)
{
- switch (state->m_rp5c01_mode_sel & 3)
+ switch (m_rp5c01_mode_sel & 3)
{
case 0: // time
switch ( offset )
{
case 0x00: // 1-second counter
- return state->m_rp5c01_mem[0x00];
+ return m_rp5c01_mem[0x00];
case 0x01: // 10-second counter
- return state->m_rp5c01_mem[0x01] & 0x7;
+ return m_rp5c01_mem[0x01] & 0x7;
case 0x02: // 1-minute counter
- return state->m_rp5c01_mem[0x02];
+ return m_rp5c01_mem[0x02];
case 0x03: // 10-minute counter
- return state->m_rp5c01_mem[0x03] & 0x07;
+ return m_rp5c01_mem[0x03] & 0x07;
case 0x04: // 1-hour counter
- return state->m_rp5c01_mem[0x04];
+ return m_rp5c01_mem[0x04];
case 0x05: // 10-hour counter
- return state->m_rp5c01_mem[0x05] & 0x03;
+ return m_rp5c01_mem[0x05] & 0x03;
case 0x06: // day-of-the-week counter
- return state->m_rp5c01_mem[0x06] & 0x07;
+ return m_rp5c01_mem[0x06] & 0x07;
case 0x07: // 1-day counter
- return state->m_rp5c01_mem[0x07];
+ return m_rp5c01_mem[0x07];
case 0x08: // 10-day counter
- return state->m_rp5c01_mem[0x08] & 0x03;
+ return m_rp5c01_mem[0x08] & 0x03;
case 0x09: // 1-month counter
- return state->m_rp5c01_mem[0x09];
+ return m_rp5c01_mem[0x09];
case 0x0a: // 10-month counter
- return state->m_rp5c01_mem[0x0a] & 0x01;
+ return m_rp5c01_mem[0x0a] & 0x01;
case 0x0b: // 1-year counter
- return state->m_rp5c01_mem[0x0b];
+ return m_rp5c01_mem[0x0b];
case 0x0c: // 10-year counter
- return state->m_rp5c01_mem[0x0c];
+ return m_rp5c01_mem[0x0c];
}
break;
@@ -212,34 +211,34 @@ static READ8_HANDLER( spunchout_rp5c01_r )
return 0x00;
case 0x02: // 1-minute alarm register
- return state->m_rp5c01_mem[0x12];
+ return m_rp5c01_mem[0x12];
case 0x03: // 10-minute alarm register
- return state->m_rp5c01_mem[0x13] & 0x07;
+ return m_rp5c01_mem[0x13] & 0x07;
case 0x04: // 1-hour alarm register
- return state->m_rp5c01_mem[0x14];
+ return m_rp5c01_mem[0x14];
case 0x05: // 10-hour alarm register
- return state->m_rp5c01_mem[0x15] & 0x03;
+ return m_rp5c01_mem[0x15] & 0x03;
case 0x06: // day-of-the-week alarm register
- return state->m_rp5c01_mem[0x16] & 0x07;
+ return m_rp5c01_mem[0x16] & 0x07;
case 0x07: // 1-day alarm register
- return state->m_rp5c01_mem[0x17];
+ return m_rp5c01_mem[0x17];
case 0x08: // 10-day alarm register
- return state->m_rp5c01_mem[0x18] & 0x03;
+ return m_rp5c01_mem[0x18] & 0x03;
case 0x09: // n/a
return 0x00;
case 0x0a: // /12/24 select register
- return state->m_rp5c01_mem[0x1a] & 0x01;
+ return m_rp5c01_mem[0x1a] & 0x01;
case 0x0b: // leap year count
- return state->m_rp5c01_mem[0x1b] & 0x03;
+ return m_rp5c01_mem[0x1b] & 0x03;
case 0x0c: // n/a
return 0x00;
@@ -248,32 +247,31 @@ static READ8_HANDLER( spunchout_rp5c01_r )
case 2: // RAM BLOCK 10
case 3: // RAM BLOCK 11
- return state->m_rp5c01_mem[0x10 * (state->m_rp5c01_mode_sel & 3) + offset];
+ return m_rp5c01_mem[0x10 * (m_rp5c01_mode_sel & 3) + offset];
}
}
else if (offset == 0x0d)
{
- return state->m_rp5c01_mode_sel;
+ return m_rp5c01_mode_sel;
}
- logerror("Read from unknown protection? port %02x ( selector = %02x )\n", offset, state->m_rp5c01_mode_sel );
+ logerror("Read from unknown protection? port %02x ( selector = %02x )\n", offset, m_rp5c01_mode_sel );
return 0;
}
-static WRITE8_HANDLER( spunchout_rp5c01_w )
+WRITE8_MEMBER(punchout_state::spunchout_rp5c01_w)
{
- punchout_state *state = space->machine().driver_data<punchout_state>();
data &= 0x0f;
- logerror("%04x: prot_w %x = %02x\n",cpu_get_previouspc(&space->device()),offset,data);
+ logerror("%04x: prot_w %x = %02x\n",cpu_get_previouspc(&space.device()),offset,data);
if (offset <= 0x0c)
{
- state->m_rp5c01_mem[0x10 * (state->m_rp5c01_mode_sel & 3) + offset] = data;
+ m_rp5c01_mem[0x10 * (m_rp5c01_mode_sel & 3) + offset] = data;
}
else if (offset == 0x0d)
{
- state->m_rp5c01_mode_sel = data;
+ m_rp5c01_mode_sel = data;
logerror("MODE: Timer EN = %d Alarm EN = %d MODE %d\n",BIT(data,3),BIT(data,2),data&3);
}
else if (offset == 0x0e)
@@ -286,7 +284,7 @@ static WRITE8_HANDLER( spunchout_rp5c01_w )
}
}
-static READ8_HANDLER( spunchout_exp_r )
+READ8_MEMBER(punchout_state::spunchout_exp_r)
{
// bit 7 = DATA OUT from RP5H01
// bit 6 = COUNTER OUT from RP5H01
@@ -300,13 +298,13 @@ static READ8_HANDLER( spunchout_exp_r )
/* PC = 0x0313 */
/* (ret or 0x10) -> (D7DF),(D7A0) - (D7DF),(D7A0) = 0d0h(ret nc) */
- if (cpu_get_previouspc(&space->device()) == 0x0313)
+ if (cpu_get_previouspc(&space.device()) == 0x0313)
ret |= 0xc0;
return ret;
}
-static WRITE8_HANDLER( spunchout_exp_w )
+WRITE8_MEMBER(punchout_state::spunchout_exp_w)
{
spunchout_rp5c01_w( space, offset >> 4, data );
}
@@ -341,11 +339,10 @@ static ADDRESS_MAP_START( armwrest_map, AS_PROGRAM, 8, punchout_state )
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE_LEGACY(punchout_bg_top_videoram_w) AM_BASE(m_bg_top_videoram)
ADDRESS_MAP_END
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(punchout_state::nmi_mask_w)
{
- punchout_state *state = space->machine().driver_data<punchout_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8, punchout_state )
@@ -358,17 +355,17 @@ static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8, punchout_state )
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("vlm", vlm5030_data_w) /* VLM5030 */
// AM_RANGE(0x05, 0x05) AM_WRITENOP /* unused */
// AM_RANGE(0x06, 0x06) AM_WRITENOP
- AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(nmi_mask_w)
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_LEGACY(punchout_2a03_reset_w)
+ 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(0x0f, 0x0f) AM_WRITENOP /* enable NVRAM ? */
/* protection ports - Super Punchout only (move to install handler?) */
- AM_RANGE(0x07, 0x07) AM_MIRROR(0xf0) AM_MASK(0xf0) AM_READWRITE_LEGACY(spunchout_exp_r, spunchout_exp_w)
+ AM_RANGE(0x07, 0x07) AM_MIRROR(0xf0) AM_MASK(0xf0) AM_READWRITE(spunchout_exp_r, spunchout_exp_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( punchout_sound_map, AS_PROGRAM, 8, punchout_state )
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index c006c3322bb..b5554d13815 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -31,130 +31,124 @@
#include "includes/pushman.h"
#include "sound/2203intf.h"
-static WRITE16_HANDLER( pushman_flipscreen_w )
+WRITE16_MEMBER(pushman_state::pushman_flipscreen_w)
{
if (ACCESSING_BITS_8_15)
{
- flip_screen_set(space->machine(), data & 0x0200);
- coin_counter_w(space->machine(), 0, data & 0x4000);
- coin_counter_w(space->machine(), 1, data & 0x8000);
+ flip_screen_set(machine(), data & 0x0200);
+ coin_counter_w(machine(), 0, data & 0x4000);
+ coin_counter_w(machine(), 1, data & 0x8000);
}
}
-static WRITE16_HANDLER( pushman_control_w )
+WRITE16_MEMBER(pushman_state::pushman_control_w)
{
if (ACCESSING_BITS_8_15)
soundlatch_w(space, 0, (data >> 8) & 0xff);
}
-static READ16_HANDLER( pushman_68705_r )
+READ16_MEMBER(pushman_state::pushman_68705_r)
{
- pushman_state *state = space->machine().driver_data<pushman_state>();
if (offset == 0)
- return state->m_latch;
+ return m_latch;
- if (offset == 3 && state->m_new_latch)
+ if (offset == 3 && m_new_latch)
{
- state->m_new_latch = 0;
+ m_new_latch = 0;
return 0;
}
- if (offset == 3 && !state->m_new_latch)
+ if (offset == 3 && !m_new_latch)
return 0xff;
- return (state->m_shared_ram[2 * offset + 1] << 8) + state->m_shared_ram[2 * offset];
+ return (m_shared_ram[2 * offset + 1] << 8) + m_shared_ram[2 * offset];
}
-static WRITE16_HANDLER( pushman_68705_w )
+WRITE16_MEMBER(pushman_state::pushman_68705_w)
{
- pushman_state *state = space->machine().driver_data<pushman_state>();
if (ACCESSING_BITS_8_15)
- state->m_shared_ram[2 * offset] = data >> 8;
+ m_shared_ram[2 * offset] = data >> 8;
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[2 * offset + 1] = data & 0xff;
+ m_shared_ram[2 * offset + 1] = data & 0xff;
if (offset == 1)
{
- device_set_input_line(state->m_mcu, M68705_IRQ_LINE, HOLD_LINE);
- device_spin(&space->device());
- state->m_new_latch = 0;
+ device_set_input_line(m_mcu, M68705_IRQ_LINE, HOLD_LINE);
+ device_spin(&space.device());
+ m_new_latch = 0;
}
}
/* ElSemi - Bouncing balls protection. */
-static READ16_HANDLER( bballs_68705_r )
+READ16_MEMBER(pushman_state::bballs_68705_r)
{
- pushman_state *state = space->machine().driver_data<pushman_state>();
if (offset == 0)
- return state->m_latch;
- if (offset == 3 && state->m_new_latch)
+ return m_latch;
+ if (offset == 3 && m_new_latch)
{
- state->m_new_latch = 0;
+ m_new_latch = 0;
return 0;
}
- if (offset == 3 && !state->m_new_latch)
+ if (offset == 3 && !m_new_latch)
return 0xff;
- return (state->m_shared_ram[2 * offset + 1] << 8) + state->m_shared_ram[2 * offset];
+ return (m_shared_ram[2 * offset + 1] << 8) + m_shared_ram[2 * offset];
}
-static WRITE16_HANDLER( bballs_68705_w )
+WRITE16_MEMBER(pushman_state::bballs_68705_w)
{
- pushman_state *state = space->machine().driver_data<pushman_state>();
if (ACCESSING_BITS_8_15)
- state->m_shared_ram[2 * offset] = data >> 8;
+ m_shared_ram[2 * offset] = data >> 8;
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[2 * offset + 1] = data & 0xff;
+ m_shared_ram[2 * offset + 1] = data & 0xff;
if (offset == 0)
{
- state->m_latch = 0;
- if (state->m_shared_ram[0] <= 0xf)
+ m_latch = 0;
+ if (m_shared_ram[0] <= 0xf)
{
- state->m_latch = state->m_shared_ram[0] << 2;
- if (state->m_shared_ram[1])
- state->m_latch |= 2;
- state->m_new_latch = 1;
+ m_latch = m_shared_ram[0] << 2;
+ if (m_shared_ram[1])
+ m_latch |= 2;
+ m_new_latch = 1;
}
- else if (state->m_shared_ram[0])
+ else if (m_shared_ram[0])
{
- if (state->m_shared_ram[1])
- state->m_latch |= 2;
- state->m_new_latch = 1;
+ if (m_shared_ram[1])
+ m_latch |= 2;
+ m_new_latch = 1;
}
}
}
-static READ8_HANDLER( pushman_68000_r )
+READ8_MEMBER(pushman_state::pushman_68000_r)
{
- pushman_state *state = space->machine().driver_data<pushman_state>();
- return state->m_shared_ram[offset];
+ return m_shared_ram[offset];
}
-static WRITE8_HANDLER( pushman_68000_w )
+WRITE8_MEMBER(pushman_state::pushman_68000_w)
{
- pushman_state *state = space->machine().driver_data<pushman_state>();
- if (offset == 2 && (state->m_shared_ram[2] & 2) == 0 && data & 2)
+ if (offset == 2 && (m_shared_ram[2] & 2) == 0 && data & 2)
{
- state->m_latch = (state->m_shared_ram[1] << 8) | state->m_shared_ram[0];
- state->m_new_latch = 1;
+ m_latch = (m_shared_ram[1] << 8) | m_shared_ram[0];
+ m_new_latch = 1;
}
- state->m_shared_ram[offset] = data;
+ m_shared_ram[offset] = data;
}
/******************************************************************************/
static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16, pushman_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x060000, 0x060007) AM_READWRITE_LEGACY(pushman_68705_r, pushman_68705_w)
+ AM_RANGE(0x060000, 0x060007) AM_READWRITE(pushman_68705_r, pushman_68705_w)
AM_RANGE(0xfe0800, 0xfe17ff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(pushman_flipscreen_w)
- AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(pushman_control_w)
+ AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("INPUTS") AM_WRITE(pushman_flipscreen_w)
+ AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("SYSTEM") AM_WRITE(pushman_control_w)
AM_RANGE(0xfe4004, 0xfe4005) AM_READ_PORT("DSW")
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE_LEGACY(pushman_scroll_w)
AM_RANGE(0xfe800e, 0xfe800f) AM_WRITENOP /* ? */
@@ -164,7 +158,7 @@ static ADDRESS_MAP_START( pushman_map, AS_PROGRAM, 16, pushman_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, pushman_state )
- AM_RANGE(0x0000, 0x0007) AM_READWRITE_LEGACY(pushman_68000_r, pushman_68000_w)
+ AM_RANGE(0x0000, 0x0007) AM_READWRITE(pushman_68000_r, pushman_68000_w)
AM_RANGE(0x0010, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x0fff) AM_ROM
ADDRESS_MAP_END
@@ -184,10 +178,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bballs_map, AS_PROGRAM, 16, pushman_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_RANGE(0x00000, 0x1ffff) AM_ROM
- AM_RANGE(0x60000, 0x60007) AM_READWRITE_LEGACY(bballs_68705_r, bballs_68705_w)
+ AM_RANGE(0x60000, 0x60007) AM_READWRITE(bballs_68705_r, bballs_68705_w)
AM_RANGE(0xe0800, 0xe17ff) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0xe4000, 0xe4001) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(pushman_flipscreen_w)
- AM_RANGE(0xe4002, 0xe4003) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(pushman_control_w)
+ AM_RANGE(0xe4000, 0xe4001) AM_READ_PORT("INPUTS") AM_WRITE(pushman_flipscreen_w)
+ AM_RANGE(0xe4002, 0xe4003) AM_READ_PORT("SYSTEM") AM_WRITE(pushman_control_w)
AM_RANGE(0xe4004, 0xe4005) AM_READ_PORT("DSW")
AM_RANGE(0xe8000, 0xe8003) AM_WRITE_LEGACY(pushman_scroll_w)
AM_RANGE(0xe800e, 0xe800f) AM_WRITENOP /* ? */
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index 6acc3c21818..3372a775672 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -52,9 +52,8 @@ static CUSTOM_INPUT( battery_sensor_r )
}
-static WRITE16_HANDLER( gp_control_w )
+WRITE16_MEMBER(qdrmfgp_state::gp_control_w)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
/* bit 0 enable irq 1 (sound) */
/* bit 1 enable irq 2 (not used) */
@@ -68,16 +67,15 @@ static WRITE16_HANDLER( gp_control_w )
/* bit 11 headphone volume: 1=up, 0=down */
/* bit 15 gfxrom bankswitch */
- COMBINE_DATA(&state->m_control);
- state->m_pal = state->m_control & 0x70;
+ COMBINE_DATA(&m_control);
+ m_pal = m_control & 0x70;
- if (state->m_control & 0x0100)
+ if (m_control & 0x0100)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
- int vol = state->m_nvram[0x10] & 0xff;
+ int vol = m_nvram[0x10] & 0xff;
if (vol)
{
- k054539_device *k054539 = space->machine().device<k054539_device>("konami");
+ k054539_device *k054539 = machine().device<k054539_device>("konami");
int i;
double gain = vol / 90.0;
@@ -87,9 +85,8 @@ static WRITE16_HANDLER( gp_control_w )
}
}
-static WRITE16_HANDLER( gp2_control_w )
+WRITE16_MEMBER(qdrmfgp_state::gp2_control_w)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
/* bit 2 enable irq 3 (sound) */
/* bit 3 enable irq 4 (vblank) */
@@ -101,16 +98,15 @@ static WRITE16_HANDLER( gp2_control_w )
/* bit 11 headphone volume: 1=up, 0=down */
/* bit 15 gfxrom bankswitch */
- COMBINE_DATA(&state->m_control);
- state->m_pal = 0;
+ COMBINE_DATA(&m_control);
+ m_pal = 0;
- if (state->m_control & 0x0100)
+ if (m_control & 0x0100)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
- int vol = state->m_nvram[0x8] & 0xff;
+ int vol = m_nvram[0x8] & 0xff;
if (vol)
{
- k054539_device *k054539 = space->machine().device<k054539_device>("konami");
+ k054539_device *k054539 = machine().device<k054539_device>("konami");
int i;
double gain = vol / 90.0;
@@ -121,25 +117,24 @@ static WRITE16_HANDLER( gp2_control_w )
}
-static READ16_HANDLER( v_rom_r )
+READ16_MEMBER(qdrmfgp_state::v_rom_r)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
- device_t *k056832 = space->machine().device("k056832");
- UINT8 *mem8 = space->machine().region("gfx1")->base();
+ device_t *k056832 = machine().device("k056832");
+ UINT8 *mem8 = machine().region("gfx1")->base();
int bank = k056832_word_r(k056832, 0x34/2, 0xffff);
offset += bank * 0x800 * 4;
- if (state->m_control & 0x8000)
+ if (m_control & 0x8000)
offset += 0x800 * 2;
return (mem8[offset + 1] << 8) + mem8[offset];
}
-static READ16_HANDLER( gp2_vram_r )
+READ16_MEMBER(qdrmfgp_state::gp2_vram_r)
{
- device_t *k056832 = space->machine().device("k056832");
+ device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
return k056832_ram_word_r(k056832, offset * 2 + 1, mem_mask);
@@ -147,9 +142,9 @@ static READ16_HANDLER( gp2_vram_r )
return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2, mem_mask);
}
-static READ16_HANDLER( gp2_vram_mirror_r )
+READ16_MEMBER(qdrmfgp_state::gp2_vram_mirror_r)
{
- device_t *k056832 = space->machine().device("k056832");
+ device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
return k056832_ram_word_r(k056832, offset * 2, mem_mask);
@@ -157,9 +152,9 @@ static READ16_HANDLER( gp2_vram_mirror_r )
return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2 + 1, mem_mask);
}
-static WRITE16_HANDLER( gp2_vram_w )
+WRITE16_MEMBER(qdrmfgp_state::gp2_vram_w)
{
- device_t *k056832 = space->machine().device("k056832");
+ device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
k056832_ram_word_w(k056832, offset * 2 + 1, data, mem_mask);
@@ -167,9 +162,9 @@ static WRITE16_HANDLER( gp2_vram_w )
k056832_ram_word_w(k056832, (offset - 0x1000 / 2) * 2, data, mem_mask);
}
-static WRITE16_HANDLER( gp2_vram_mirror_w )
+WRITE16_MEMBER(qdrmfgp_state::gp2_vram_mirror_w)
{
- device_t *k056832 = space->machine().device("k056832");
+ device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
k056832_ram_word_w(k056832, offset * 2, data, mem_mask);
@@ -180,23 +175,21 @@ static WRITE16_HANDLER( gp2_vram_mirror_w )
/*************/
-static READ16_HANDLER( sndram_r )
+READ16_MEMBER(qdrmfgp_state::sndram_r)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
if (ACCESSING_BITS_0_7)
- return state->m_sndram[offset];
+ return m_sndram[offset];
return 0;
}
-static WRITE16_HANDLER( sndram_w )
+WRITE16_MEMBER(qdrmfgp_state::sndram_w)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_sndram[offset] = data & 0xff;
+ m_sndram[offset] = data & 0xff;
if (offset >= 0x40000)
- state->m_sndram[offset+0xc00000-0x900000] = data & 0xff;
+ m_sndram[offset+0xc00000-0x900000] = data & 0xff;
}
}
@@ -236,22 +229,21 @@ static WRITE16_DEVICE_HANDLER( ide_alt_w )
}
-static READ16_HANDLER( gp2_ide_std_r )
+READ16_MEMBER(qdrmfgp_state::gp2_ide_std_r)
{
- qdrmfgp_state *state = space->machine().driver_data<qdrmfgp_state>();
- device_t *device = space->machine().device("ide");
+ device_t *device = machine().device("ide");
if (offset & 0x01)
{
if (offset == 0x07)
{
- switch (cpu_get_previouspc(&space->device()))
+ switch (cpu_get_previouspc(&space.device()))
{
case 0xdb4c:
- if ((state->m_workram[0x5fa4/2] - cpu_get_reg(&space->device(), M68K_D0)) <= 0x10)
- state->m_gp2_irq_control = 1;
+ if ((m_workram[0x5fa4/2] - cpu_get_reg(&space.device(), M68K_D0)) <= 0x10)
+ m_gp2_irq_control = 1;
break;
case 0xdec2:
- state->m_gp2_irq_control = 1;
+ m_gp2_irq_control = 1;
default:
break;
}
@@ -350,15 +342,15 @@ static ADDRESS_MAP_START( qdrmfgp_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */
AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */
- AM_RANGE(0x370000, 0x370001) AM_WRITE_LEGACY(gp_control_w) /* control reg */
+ AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */
AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */
AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("konami", k054539_device, read, write, 0x00ff) /* sound regs */
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_LEGACY(v_rom_r) /* gfxrom through */
+ 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(0xc00000, 0xcbffff) AM_READWRITE_LEGACY(sndram_r, sndram_w) /* sound ram */
+ AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r, sndram_w) /* sound ram */
ADDRESS_MAP_END
@@ -373,15 +365,15 @@ static ADDRESS_MAP_START( qdrmfgp2_map, AS_PROGRAM, 16, qdrmfgp_state )
AM_RANGE(0x340000, 0x340001) AM_READ_PORT("340000") /* inputport */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */
AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */
- AM_RANGE(0x370000, 0x370001) AM_WRITE_LEGACY(gp2_control_w) /* control reg */
+ AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */
AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */
AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("konami", k054539_device, read, write, 0x00ff) /* sound regs */
- AM_RANGE(0x880000, 0x881fff) AM_READWRITE_LEGACY(gp2_vram_r, gp2_vram_w) /* vram */
- AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE_LEGACY(gp2_vram_mirror_r, gp2_vram_mirror_w) /* vram (mirror) */
- AM_RANGE(0x900000, 0x901fff) AM_READ_LEGACY(v_rom_r) /* gfxrom through */
- AM_RANGE(0xa00000, 0xa0000f) AM_READ_LEGACY(gp2_ide_std_r) AM_DEVWRITE_LEGACY("ide", ide_std_w) /* IDE control regs */
+ 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(0xc00000, 0xcbffff) AM_READWRITE_LEGACY(sndram_r,sndram_w) /* sound ram */
+ AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index 019fad7d905..47f3ebb4704 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -16,16 +16,16 @@ Quiz Gekiretsu Scramble (Gakuen Paradise 2) (c) 1993 Face
#define MCLK 16000000
-static WRITE8_HANDLER( quizdna_rombank_w )
+WRITE8_MEMBER(quizdna_state::quizdna_rombank_w)
{
- UINT8 *ROM = space->machine().region("maincpu")->base();
- memory_set_bankptr(space->machine(), "bank1",&ROM[0x10000+0x4000*(data & 0x3f)]);
+ UINT8 *ROM = machine().region("maincpu")->base();
+ memory_set_bankptr(machine(), "bank1",&ROM[0x10000+0x4000*(data & 0x3f)]);
}
-static WRITE8_HANDLER( gekiretu_rombank_w )
+WRITE8_MEMBER(quizdna_state::gekiretu_rombank_w)
{
- UINT8 *ROM = space->machine().region("maincpu")->base();
- memory_set_bankptr(space->machine(), "bank1",&ROM[0x10000+0x4000*((data & 0x3f) ^ 0x0a)]);
+ UINT8 *ROM = machine().region("maincpu")->base();
+ memory_set_bankptr(machine(), "bank1",&ROM[0x10000+0x4000*((data & 0x3f) ^ 0x0a)]);
}
/****************************************************************************/
@@ -61,7 +61,7 @@ static ADDRESS_MAP_START( quizdna_io_map, AS_IO, 8, quizdna_state )
AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
AM_RANGE(0x91, 0x91) AM_READ_PORT("SERVICE")
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(quizdna_rombank_w)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(quizdna_rombank_w)
AM_RANGE(0xd0, 0xd0) AM_WRITE_LEGACY(quizdna_screen_ctrl_w)
AM_RANGE(0xe0, 0xe1) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -76,7 +76,7 @@ static ADDRESS_MAP_START( gakupara_io_map, AS_IO, 8, quizdna_state )
AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
AM_RANGE(0x91, 0x91) AM_READ_PORT("SERVICE")
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(quizdna_rombank_w)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(quizdna_rombank_w)
AM_RANGE(0xd0, 0xd0) AM_WRITE_LEGACY(quizdna_screen_ctrl_w)
AM_RANGE(0xe0, 0xe1) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -91,7 +91,7 @@ static ADDRESS_MAP_START( gekiretu_io_map, AS_IO, 8, quizdna_state )
AM_RANGE(0x81, 0x81) AM_READ_PORT("P2")
AM_RANGE(0x90, 0x90) AM_READ_PORT("SYSTEM")
AM_RANGE(0x91, 0x91) AM_READ_PORT("SERVICE")
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(gekiretu_rombank_w)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(gekiretu_rombank_w)
AM_RANGE(0xd0, 0xd0) AM_WRITE_LEGACY(quizdna_screen_ctrl_w)
AM_RANGE(0xe0, 0xe1) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xf0, 0xf0) AM_DEVREADWRITE("oki", okim6295_device, read, write)
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index 229b0a73f88..0e5912a42ba 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -512,19 +512,18 @@ ROM_END
//#define SYNC_HACK
#ifdef SYNC_HACK
-static READ16_HANDLER( sub_cpu_spin_r )
+READ16_MEMBER(raiden_state::sub_cpu_spin_r)
{
- raiden_state *state = space->machine().driver_data<raiden_state>();
- int pc=cpu_get_pc(&space->device());
- int ret=state->m_shared_ram[0x4];
+ int pc=cpu_get_pc(&space.device());
+ int ret=m_shared_ram[0x4];
// main set
if (pc==0xfcde6 && ret!=0x40)
- device_spin(&space->device());
+ device_spin(&space.device());
// alt sets
if (pc==0xfcde8 && ret!=0x40)
- device_spin(&space->device());
+ device_spin(&space.device());
return ret;
}
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index 2552af9ad0f..5e962fdae32 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -329,14 +329,13 @@ Stephh's notes (based on the game M68000 code and some tests) :
-static WRITE16_HANDLER( jumping_sound_w )
+WRITE16_MEMBER(rbisland_state::jumping_sound_w)
{
- rbisland_state *state = space->machine().driver_data<rbisland_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ m_jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
}
@@ -377,7 +376,7 @@ static ADDRESS_MAP_START( jumping_map, AS_PROGRAM, 16, rbisland_state )
AM_RANGE(0x401002, 0x401003) AM_READ_PORT("401003")
AM_RANGE(0x3a0000, 0x3a0001) AM_WRITE_LEGACY(jumping_spritectrl_w)
AM_RANGE(0x3c0000, 0x3c0001) AM_WRITENOP /* watchdog? */
- AM_RANGE(0x400006, 0x400007) AM_WRITE_LEGACY(jumping_sound_w)
+ AM_RANGE(0x400006, 0x400007) AM_WRITE(jumping_sound_w)
AM_RANGE(0x420000, 0x420001) AM_READNOP /* read, but result not used */
AM_RANGE(0x430000, 0x430003) AM_DEVWRITE_LEGACY("pc080sn", pc080sn_yscroll_word_w)
AM_RANGE(0x440000, 0x4407ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
@@ -401,10 +400,9 @@ static WRITE8_DEVICE_HANDLER( bankswitch_w )
memory_set_bank(device->machine(), "bank1", data & 3);
}
-static READ8_HANDLER( jumping_latch_r )
+READ8_MEMBER(rbisland_state::jumping_latch_r)
{
- rbisland_state *state = space->machine().driver_data<rbisland_state>();
- return state->m_jumping_latch;
+ return m_jumping_latch;
}
@@ -423,7 +421,7 @@ static ADDRESS_MAP_START( jumping_sound_map, AS_PROGRAM, 8, rbisland_state )
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r,ym2203_w)
AM_RANGE(0xb400, 0xb401) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r,ym2203_w)
- AM_RANGE(0xb800, 0xb800) AM_READ_LEGACY(jumping_latch_r)
+ AM_RANGE(0xb800, 0xb800) AM_READ(jumping_latch_r)
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP /* looks like a bankswitch, but sound works with or without it */
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index ee893a66c86..f8202893e90 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -204,28 +204,25 @@ TODO:
*
*************************************/
-static WRITE8_HANDLER( rallyx_interrupt_vector_w )
+WRITE8_MEMBER(rallyx_state::rallyx_interrupt_vector_w)
{
- rallyx_state *state = space->machine().driver_data<rallyx_state>();
- device_set_input_line_vector(state->m_maincpu, 0, data);
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line_vector(m_maincpu, 0, data);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( rallyx_bang_w )
+WRITE8_MEMBER(rallyx_state::rallyx_bang_w)
{
- rallyx_state *state = space->machine().driver_data<rallyx_state>();
- if (data == 0 && state->m_last_bang != 0)
- state->m_samples->start(0, 0);
+ if (data == 0 && m_last_bang != 0)
+ m_samples->start(0, 0);
- state->m_last_bang = data;
+ m_last_bang = data;
}
-static WRITE8_HANDLER( rallyx_latch_w )
+WRITE8_MEMBER(rallyx_state::rallyx_latch_w)
{
- rallyx_state *state = space->machine().driver_data<rallyx_state>();
int bit = data & 1;
switch (offset)
@@ -235,53 +232,52 @@ static WRITE8_HANDLER( rallyx_latch_w )
break;
case 0x01: /* INT ON */
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
break;
case 0x02: /* SOUND ON */
/* this doesn't work in New Rally X so I'm not supporting it */
-// pacman_sound_enable_w(space->machine().device("namco"), bit);
+// pacman_sound_enable_w(machine().device("namco"), bit);
break;
case 0x03: /* FLIP */
- flip_screen_set_no_update(space->machine(), bit);
- space->machine().tilemap().set_flip_all(bit * (TILEMAP_FLIPX | TILEMAP_FLIPY));
+ flip_screen_set_no_update(machine(), bit);
+ machine().tilemap().set_flip_all(bit * (TILEMAP_FLIPX | TILEMAP_FLIPY));
break;
case 0x04:
- set_led_status(space->machine(), 0, bit);
+ set_led_status(machine(), 0, bit);
break;
case 0x05:
- set_led_status(space->machine(), 1, bit);
+ set_led_status(machine(), 1, bit);
break;
case 0x06:
- coin_lockout_w(space->machine(), 0, !bit);
+ coin_lockout_w(machine(), 0, !bit);
break;
case 0x07:
- coin_counter_w(space->machine(), 0, bit);
+ coin_counter_w(machine(), 0, bit);
break;
}
}
-static WRITE8_HANDLER( locomotn_latch_w )
+WRITE8_MEMBER(rallyx_state::locomotn_latch_w)
{
- rallyx_state *state = space->machine().driver_data<rallyx_state>();
int bit = data & 1;
switch (offset)
{
case 0x00: /* SOUNDON */
- timeplt_sh_irqtrigger_w(space,0,bit);
+ timeplt_sh_irqtrigger_w(&space,0,bit);
break;
case 0x01: /* INTST */
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
break;
case 0x02: /* MUT */
@@ -289,23 +285,23 @@ static WRITE8_HANDLER( locomotn_latch_w )
break;
case 0x03: /* FLIP */
- flip_screen_set_no_update(space->machine(), bit);
- space->machine().tilemap().set_flip_all(bit * (TILEMAP_FLIPX | TILEMAP_FLIPY));
+ flip_screen_set_no_update(machine(), bit);
+ machine().tilemap().set_flip_all(bit * (TILEMAP_FLIPX | TILEMAP_FLIPY));
break;
case 0x04: /* OUT1 */
- coin_counter_w(space->machine(), 0, bit);
+ coin_counter_w(machine(), 0, bit);
break;
case 0x05: /* OUT2 */
break;
case 0x06: /* OUT3 */
- coin_counter_w(space->machine(), 1,bit);
+ coin_counter_w(machine(), 1,bit);
break;
case 0x07: /* STARSON */
- tactcian_starson_w(space, offset, bit);
+ tactcian_starson_w(&space, offset, bit);
break;
}
}
@@ -330,12 +326,12 @@ static ADDRESS_MAP_START( rallyx_map, AS_PROGRAM, 8, rallyx_state )
AM_RANGE(0xa130, 0xa130) AM_WRITE_LEGACY(rallyx_scrollx_w)
AM_RANGE(0xa140, 0xa140) AM_WRITE_LEGACY(rallyx_scrolly_w)
AM_RANGE(0xa170, 0xa170) AM_WRITENOP /* ? */
- AM_RANGE(0xa180, 0xa187) AM_WRITE_LEGACY(rallyx_latch_w)
+ AM_RANGE(0xa180, 0xa187) AM_WRITE(rallyx_latch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, AS_IO, 8, rallyx_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0, 0) AM_WRITE_LEGACY(rallyx_interrupt_vector_w)
+ AM_RANGE(0, 0) AM_WRITE(rallyx_interrupt_vector_w)
ADDRESS_MAP_END
@@ -352,7 +348,7 @@ static ADDRESS_MAP_START( jungler_map, AS_PROGRAM, 8, rallyx_state )
AM_RANGE(0xa100, 0xa100) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xa130, 0xa130) AM_WRITE_LEGACY(rallyx_scrollx_w) /* only jungler and tactcian */
AM_RANGE(0xa140, 0xa140) AM_WRITE_LEGACY(rallyx_scrolly_w) /* only jungler and tactcian */
- AM_RANGE(0xa180, 0xa187) AM_WRITE_LEGACY(locomotn_latch_w)
+ AM_RANGE(0xa180, 0xa187) AM_WRITE(locomotn_latch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index cfe09235224..ab8683cf702 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -183,10 +183,9 @@ static void rastan_msm5205_vck( device_t *device )
}
}
-static WRITE8_HANDLER( rastan_msm5205_address_w )
+WRITE8_MEMBER(rastan_state::rastan_msm5205_address_w)
{
- rastan_state *state = space->machine().driver_data<rastan_state>();
- state->m_adpcm_pos = (state->m_adpcm_pos & 0x00ff) | (data << 8);
+ m_adpcm_pos = (m_adpcm_pos & 0x00ff) | (data << 8);
}
static WRITE8_DEVICE_HANDLER( rastan_msm5205_start_w )
@@ -233,7 +232,7 @@ static ADDRESS_MAP_START( rastan_s_map, AS_PROGRAM, 8, rastan_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_WRITE_LEGACY(rastan_msm5205_address_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)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index 1f71aba10cd..cfc2104d8a4 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -50,66 +50,64 @@ To Do:
/* Read 4 ten bit dip switches */
-static READ16_HANDLER( realbrk_dsw_r )
+READ16_MEMBER(realbrk_state::realbrk_dsw_r)
{
- realbrk_state *state = space->machine().driver_data<realbrk_state>();
- UINT16 sel = ~state->m_dsw_select[0];
- if (sel & 0x01) return (input_port_read(space->machine(), "SW1") & 0x00ff) << 8; // DSW1 low bits
- if (sel & 0x02) return (input_port_read(space->machine(), "SW2") & 0x00ff) << 8; // DSW2 low bits
- if (sel & 0x04) return (input_port_read(space->machine(), "SW3") & 0x00ff) << 8; // DSW3 low bits
- if (sel & 0x08) return (input_port_read(space->machine(), "SW4") & 0x00ff) << 8; // DSW4 low bits
-
- if (sel & 0x10) return ((input_port_read(space->machine(), "SW1") & 0x0300) << 0) | // DSWs high 2 bits
- ((input_port_read(space->machine(), "SW2") & 0x0300) << 2) |
- ((input_port_read(space->machine(), "SW3") & 0x0300) << 4) |
- ((input_port_read(space->machine(), "SW4") & 0x0300) << 6) ;
-
- logerror("CPU #0 PC %06X: read with unknown dsw_select = %02x\n",cpu_get_pc(&space->device()),state->m_dsw_select[0]);
+ UINT16 sel = ~m_dsw_select[0];
+ if (sel & 0x01) return (input_port_read(machine(), "SW1") & 0x00ff) << 8; // DSW1 low bits
+ if (sel & 0x02) return (input_port_read(machine(), "SW2") & 0x00ff) << 8; // DSW2 low bits
+ if (sel & 0x04) return (input_port_read(machine(), "SW3") & 0x00ff) << 8; // DSW3 low bits
+ if (sel & 0x08) return (input_port_read(machine(), "SW4") & 0x00ff) << 8; // DSW4 low bits
+
+ if (sel & 0x10) return ((input_port_read(machine(), "SW1") & 0x0300) << 0) | // DSWs high 2 bits
+ ((input_port_read(machine(), "SW2") & 0x0300) << 2) |
+ ((input_port_read(machine(), "SW3") & 0x0300) << 4) |
+ ((input_port_read(machine(), "SW4") & 0x0300) << 6) ;
+
+ logerror("CPU #0 PC %06X: read with unknown dsw_select = %02x\n",cpu_get_pc(&space.device()),m_dsw_select[0]);
return 0xffff;
}
-static READ16_HANDLER( pkgnsh_input_r )
+READ16_MEMBER(realbrk_state::pkgnsh_input_r)
{
switch(offset)
{
case 0x00/2: return 0xffff;
case 0x02/2: return 0xffff;
- case 0x04/2: return input_port_read(space->machine(), "IN0"); /*Service buttons*/
- case 0x06/2: return input_port_read(space->machine(), "SW1"); /*DIP 2*/
- case 0x08/2: return input_port_read(space->machine(), "SW2"); /*DIP 1*/
- case 0x0a/2: return input_port_read(space->machine(), "SW3"); /*DIP 1+2 Hi-Bits*/
- case 0x0c/2: return input_port_read(space->machine(), "PADDLE1"); /*Handle 1p*/
- case 0x0e/2: return input_port_read(space->machine(), "P1"); /*Buttons 1p*/
- case 0x10/2: return input_port_read(space->machine(), "PADDLE2"); /*Handle 2p*/
- case 0x12/2: return input_port_read(space->machine(), "P2"); /*Buttons 2p*/
+ case 0x04/2: return input_port_read(machine(), "IN0"); /*Service buttons*/
+ case 0x06/2: return input_port_read(machine(), "SW1"); /*DIP 2*/
+ case 0x08/2: return input_port_read(machine(), "SW2"); /*DIP 1*/
+ case 0x0a/2: return input_port_read(machine(), "SW3"); /*DIP 1+2 Hi-Bits*/
+ case 0x0c/2: return input_port_read(machine(), "PADDLE1"); /*Handle 1p*/
+ case 0x0e/2: return input_port_read(machine(), "P1"); /*Buttons 1p*/
+ case 0x10/2: return input_port_read(machine(), "PADDLE2"); /*Handle 2p*/
+ case 0x12/2: return input_port_read(machine(), "P2"); /*Buttons 2p*/
}
return 0xffff;
}
-static READ16_HANDLER( pkgnshdx_input_r )
+READ16_MEMBER(realbrk_state::pkgnshdx_input_r)
{
- realbrk_state *state = space->machine().driver_data<realbrk_state>();
- UINT16 sel = ~state->m_dsw_select[0];
+ UINT16 sel = ~m_dsw_select[0];
switch(offset)
{
case 0x00/2: return 0xffff;
- case 0x02/2: return input_port_read(space->machine(), "IN0"); /*Service buttons*/
+ case 0x02/2: return input_port_read(machine(), "IN0"); /*Service buttons*/
/*DSW,same handling as realbrk*/
case 0x04/2:
- if (sel & 0x01) return (input_port_read(space->machine(), "SW1") & 0x00ff) << 8; // DSW1 low bits
- if (sel & 0x02) return (input_port_read(space->machine(), "SW2") & 0x00ff) << 8; // DSW2 low bits
- if (sel & 0x04) return (input_port_read(space->machine(), "SW3") & 0x00ff) << 8; // DSW3 low bits
- if (sel & 0x08) return (input_port_read(space->machine(), "SW4") & 0x00ff) << 8; // DSW4 low bits
+ if (sel & 0x01) return (input_port_read(machine(), "SW1") & 0x00ff) << 8; // DSW1 low bits
+ if (sel & 0x02) return (input_port_read(machine(), "SW2") & 0x00ff) << 8; // DSW2 low bits
+ if (sel & 0x04) return (input_port_read(machine(), "SW3") & 0x00ff) << 8; // DSW3 low bits
+ if (sel & 0x08) return (input_port_read(machine(), "SW4") & 0x00ff) << 8; // DSW4 low bits
- if (sel & 0x10) return ((input_port_read(space->machine(), "SW1") & 0x0300) << 0) | // DSWs high 2 bits
- ((input_port_read(space->machine(), "SW2") & 0x0300) << 2) |
- ((input_port_read(space->machine(), "SW3") & 0x0300) << 4) |
- ((input_port_read(space->machine(), "SW4") & 0x0300) << 6) ;
+ if (sel & 0x10) return ((input_port_read(machine(), "SW1") & 0x0300) << 0) | // DSWs high 2 bits
+ ((input_port_read(machine(), "SW2") & 0x0300) << 2) |
+ ((input_port_read(machine(), "SW3") & 0x0300) << 4) |
+ ((input_port_read(machine(), "SW4") & 0x0300) << 6) ;
return 0xffff;
- case 0x06/2: return input_port_read(space->machine(), "P2");/*Buttons+Handle 2p*/
- case 0x08/2: return input_port_read(space->machine(), "P1");/*Buttons+Handle 1p*/
+ case 0x06/2: return input_port_read(machine(), "P2");/*Buttons+Handle 2p*/
+ case 0x08/2: return input_port_read(machine(), "P1");/*Buttons+Handle 1p*/
case 0x0a/2: return 0xffff;
case 0x0c/2: return 0xffff;
case 0x0e/2: return 0xffff;
@@ -121,33 +119,30 @@ static READ16_HANDLER( pkgnshdx_input_r )
}
-static READ16_HANDLER( backup_ram_r )
+READ16_MEMBER(realbrk_state::backup_ram_r)
{
- realbrk_state *state = space->machine().driver_data<realbrk_state>();
/*TODO: understand the format & cmds of the backup-ram,maybe it's an
unemulated tmp68301 feature?*/
- if(cpu_get_previouspc(&space->device()) == 0x02c08e)
+ if(cpu_get_previouspc(&space.device()) == 0x02c08e)
return 0xffff;
else
- return state->m_backup_ram[offset];
+ return m_backup_ram[offset];
}
-static READ16_HANDLER( backup_ram_dx_r )
+READ16_MEMBER(realbrk_state::backup_ram_dx_r)
{
- realbrk_state *state = space->machine().driver_data<realbrk_state>();
/*TODO: understand the format & cmds of the backup-ram,maybe it's an
unemulated tmp68301 feature?*/
- if(cpu_get_previouspc(&space->device()) == 0x02f046)
+ if(cpu_get_previouspc(&space.device()) == 0x02f046)
return 0xffff;
else
- return state->m_backup_ram[offset];
+ return m_backup_ram[offset];
}
-static WRITE16_HANDLER( backup_ram_w )
+WRITE16_MEMBER(realbrk_state::backup_ram_w)
{
- realbrk_state *state = space->machine().driver_data<realbrk_state>();
- COMBINE_DATA(&state->m_backup_ram[offset]);
+ COMBINE_DATA(&m_backup_ram[offset]);
}
/***************************************************************************
@@ -177,7 +172,7 @@ static ADDRESS_MAP_START( realbrk_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
- AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ_LEGACY(realbrk_dsw_r) AM_BASE(m_dsw_select) // DSW select
+ AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_BASE(m_dsw_select) // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM
AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE_LEGACY(realbrk_flipscreen_w ) // Hack! Parallel port data register
ADDRESS_MAP_END
@@ -185,17 +180,17 @@ ADDRESS_MAP_END
/*pkgnsh specific memory map*/
static ADDRESS_MAP_START( pkgnsh_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0xff00 ) // YM2413
- AM_RANGE(0xc00000, 0xc00013) AM_READ_LEGACY(pkgnsh_input_r ) // P1 & P2 (Inputs)
- AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE_LEGACY(backup_ram_r,backup_ram_w) AM_BASE(m_backup_ram) // RAM
+ AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnsh_input_r ) // P1 & P2 (Inputs)
+ AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_r,backup_ram_w) AM_BASE(m_backup_ram) // RAM
AM_IMPORT_FROM(base_mem)
ADDRESS_MAP_END
/*pkgnshdx specific memory map*/
static ADDRESS_MAP_START( pkgnshdx_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
- AM_RANGE(0xc00000, 0xc00013) AM_READ_LEGACY(pkgnshdx_input_r ) // P1 & P2 (Inputs)
+ AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnshdx_input_r ) // P1 & P2 (Inputs)
AM_RANGE(0xc00004, 0xc00005) AM_WRITEONLY AM_BASE(m_dsw_select) // DSW select
- AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE_LEGACY(backup_ram_dx_r,backup_ram_w) AM_BASE(m_backup_ram) // RAM
+ AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_dx_r,backup_ram_w) AM_BASE(m_backup_ram) // RAM
AM_IMPORT_FROM(base_mem)
ADDRESS_MAP_END
@@ -206,7 +201,7 @@ static ADDRESS_MAP_START( dai2kaku_mem, AS_PROGRAM, 16, realbrk_state )
AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0x00ff) //
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs)
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins
- AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ_LEGACY(realbrk_dsw_r) AM_BASE(m_dsw_select) // DSW select
+ AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_BASE(m_dsw_select) // DSW select
AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM
AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE_LEGACY(dai2kaku_flipscreen_w ) // Hack! Parallel port data register
AM_IMPORT_FROM(base_mem)
diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c
index e1b2dc430d9..2f18383234f 100644
--- a/src/mame/drivers/redalert.c
+++ b/src/mame/drivers/redalert.c
@@ -117,31 +117,31 @@ static INTERRUPT_GEN( redalert_vblank_interrupt )
}
-static READ8_HANDLER( redalert_interrupt_clear_r )
+READ8_MEMBER(redalert_state::redalert_interrupt_clear_r)
{
- cputag_set_input_line(space->machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
/* the result never seems to be actually used */
- return space->machine().primary_screen->vpos();
+ return machine().primary_screen->vpos();
}
-static WRITE8_HANDLER( redalert_interrupt_clear_w )
+WRITE8_MEMBER(redalert_state::redalert_interrupt_clear_w)
{
redalert_interrupt_clear_r(space, 0);
}
-static READ8_HANDLER( panther_interrupt_clear_r )
+READ8_MEMBER(redalert_state::panther_interrupt_clear_r)
{
- cputag_set_input_line(space->machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
- return input_port_read(space->machine(), "STICK0");
+ return input_port_read(machine(), "STICK0");
}
-static READ8_HANDLER( panther_unk_r )
+READ8_MEMBER(redalert_state::panther_unk_r)
{
- return ((space->machine().rand() & 0x01) | (input_port_read(space->machine(), "C020") & 0xfe));
+ return ((machine().rand() & 0x01) | (input_port_read(machine(), "C020") & 0xfe));
}
/*************************************
@@ -162,7 +162,7 @@ static ADDRESS_MAP_START( redalert_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(m_video_control)
AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(m_bitmap_color)
AM_RANGE(0xc060, 0xc060) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE_LEGACY(redalert_voice_command_w)
- AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE_LEGACY(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
+ AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -177,7 +177,7 @@ static ADDRESS_MAP_START( ww3_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE_LEGACY(redalert_audio_command_w)
AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(m_video_control)
AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(m_bitmap_color)
- AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE_LEGACY(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
+ AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -188,11 +188,11 @@ static ADDRESS_MAP_START( panther_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0x5000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0f8f) AM_READ_PORT("C000") AM_WRITENOP
AM_RANGE(0xc010, 0xc010) AM_MIRROR(0x0f8f) AM_READ_PORT("C010") AM_WRITENOP
- AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ_LEGACY(panther_unk_r) /* vblank? */
+ AM_RANGE(0xc020, 0xc020) AM_MIRROR(0x0f8f) AM_READ(panther_unk_r) /* vblank? */
AM_RANGE(0xc030, 0xc030) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITE_LEGACY(redalert_audio_command_w)
AM_RANGE(0xc040, 0xc040) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(m_video_control)
AM_RANGE(0xc050, 0xc050) AM_MIRROR(0x0f8f) AM_READNOP AM_WRITEONLY AM_BASE(m_bitmap_color)
- AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE_LEGACY(panther_interrupt_clear_r, redalert_interrupt_clear_w)
+ AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(panther_interrupt_clear_r, redalert_interrupt_clear_w)
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
@@ -210,7 +210,7 @@ static ADDRESS_MAP_START( demoneye_main_map, AS_PROGRAM, 8, redalert_state )
AM_RANGE(0xc060, 0xc060) AM_MIRROR(0x0f80) AM_NOP /* unknown */
AM_RANGE(0xc061, 0xc061) AM_MIRROR(0x0f80) AM_NOP /* unknown */
AM_RANGE(0xc062, 0xc062) AM_MIRROR(0x0f80) AM_NOP /* unknown */
- AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE_LEGACY(redalert_interrupt_clear_r, redalert_interrupt_clear_w) /* probably not correct */
+ AM_RANGE(0xc070, 0xc070) AM_MIRROR(0x0f8f) AM_READWRITE(redalert_interrupt_clear_r, redalert_interrupt_clear_w) /* probably not correct */
AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("maincpu", 0x8000)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index 9ad133382c8..90812ee4f33 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -212,10 +212,10 @@ static WRITE8_DEVICE_HANDLER( adpcm_play_w )
logerror("out of range adpcm command: 0x%02x\n", data);
}
-static WRITE8_HANDLER( sound_w )
+WRITE8_MEMBER(renegade_state::sound_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
}
/********************************************************************************************/
@@ -372,68 +372,66 @@ WRITE8_HANDLER( renegade_68705_ddr_c_w )
***************************************************************************/
-static READ8_HANDLER( mcu_reset_r )
+READ8_MEMBER(renegade_state::mcu_reset_r)
{
- renegade_state *state = space->machine().driver_data<renegade_state>();
- if (state->m_mcu_sim == TRUE)
+ if (m_mcu_sim == TRUE)
{
- state->m_mcu_key = -1;
- state->m_mcu_input_size = 0;
- state->m_mcu_output_byte = 0;
+ m_mcu_key = -1;
+ m_mcu_input_size = 0;
+ m_mcu_output_byte = 0;
}
else
{
- cputag_set_input_line(space->machine(), "mcu", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "mcu", INPUT_LINE_RESET, PULSE_LINE);
}
return 0;
}
-static WRITE8_HANDLER( mcu_w )
+WRITE8_MEMBER(renegade_state::mcu_w)
{
- renegade_state *state = space->machine().driver_data<renegade_state>();
- if (state->m_mcu_sim == TRUE)
+ if (m_mcu_sim == TRUE)
{
- state->m_mcu_output_byte = 0;
+ m_mcu_output_byte = 0;
- if (state->m_mcu_key < 0)
+ if (m_mcu_key < 0)
{
- state->m_mcu_key = 0;
- state->m_mcu_input_size = 1;
- state->m_mcu_buffer[0] = data;
+ m_mcu_key = 0;
+ m_mcu_input_size = 1;
+ m_mcu_buffer[0] = data;
}
else
{
- data ^= state->m_mcu_encrypt_table[state->m_mcu_key++];
- if (state->m_mcu_key == state->m_mcu_encrypt_table_len)
- state->m_mcu_key = 0;
- if (state->m_mcu_input_size < MCU_BUFFER_MAX)
- state->m_mcu_buffer[state->m_mcu_input_size++] = data;
+ data ^= m_mcu_encrypt_table[m_mcu_key++];
+ if (m_mcu_key == m_mcu_encrypt_table_len)
+ m_mcu_key = 0;
+ if (m_mcu_input_size < MCU_BUFFER_MAX)
+ m_mcu_buffer[m_mcu_input_size++] = data;
}
}
else
{
- state->m_from_main = data;
- state->m_main_sent = 1;
- cputag_set_input_line(space->machine(), "mcu", 0, ASSERT_LINE);
+ m_from_main = data;
+ m_main_sent = 1;
+ cputag_set_input_line(machine(), "mcu", 0, ASSERT_LINE);
}
}
-static void mcu_process_command(renegade_state *state)
+void renegade_state::mcu_process_command()
{
- state->m_mcu_input_size = 0;
- state->m_mcu_output_byte = 0;
+ m_mcu_input_size = 0;
+ m_mcu_output_byte = 0;
- switch (state->m_mcu_buffer[0])
+ switch (m_mcu_buffer[0])
{
/* 0x0d: stop MCU when ROM check fails */
case 0x10:
- state->m_mcu_buffer[0] = state->m_mcu_checksum;
+ m_mcu_buffer[0] = m_mcu_checksum;
break;
case 0x26: /* sound code -> sound command */
{
- int sound_code = state->m_mcu_buffer[1];
+ int sound_code = m_mcu_buffer[1];
static const UINT8 sound_command_table[256] =
{
0xa0, 0xa1, 0xa2, 0x80, 0x81, 0x82, 0x83, 0x84,
@@ -469,27 +467,27 @@ static void mcu_process_command(renegade_state *state)
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff,
0xef, 0xef, 0xcf, 0x8f, 0x8f, 0x0f, 0x0f, 0x0f
};
- state->m_mcu_buffer[0] = 1;
- state->m_mcu_buffer[1] = sound_command_table[sound_code];
+ m_mcu_buffer[0] = 1;
+ m_mcu_buffer[1] = sound_command_table[sound_code];
}
break;
case 0x33: /* joy bits -> joy dir */
{
- int joy_bits = state->m_mcu_buffer[2];
+ int joy_bits = m_mcu_buffer[2];
static const UINT8 joy_table[0x10] =
{
0, 3, 7, 0, 1, 2, 8, 0, 5, 4, 6, 0, 0, 0, 0, 0
};
- state->m_mcu_buffer[0] = 1;
- state->m_mcu_buffer[1] = joy_table[joy_bits & 0xf];
+ m_mcu_buffer[0] = 1;
+ m_mcu_buffer[1] = joy_table[joy_bits & 0xf];
}
break;
case 0x44: /* 0x44, 0xff, DSW2, stage# -> difficulty */
{
- int difficulty = state->m_mcu_buffer[2] & 0x3;
- int stage = state->m_mcu_buffer[3];
+ int difficulty = m_mcu_buffer[2] & 0x3;
+ int stage = m_mcu_buffer[3];
static const UINT8 difficulty_table[4] = { 5, 3, 1, 2 };
int result = difficulty_table[difficulty];
@@ -499,38 +497,38 @@ static void mcu_process_command(renegade_state *state)
if (result > 0x21)
result += 0xc0;
- state->m_mcu_buffer[0] = 1;
- state->m_mcu_buffer[1] = result;
+ m_mcu_buffer[0] = 1;
+ m_mcu_buffer[1] = result;
}
break;
case 0x55: /* 0x55, 0x00, 0x00, 0x00, DSW2 -> timer */
{
- int difficulty = state->m_mcu_buffer[4] & 0x3;
+ int difficulty = m_mcu_buffer[4] & 0x3;
static const UINT16 table[4] =
{
0x4001, 0x5001, 0x1502, 0x0002
};
- state->m_mcu_buffer[0] = 3;
- state->m_mcu_buffer[2] = table[difficulty] >> 8;
- state->m_mcu_buffer[3] = table[difficulty] & 0xff;
+ m_mcu_buffer[0] = 3;
+ m_mcu_buffer[2] = table[difficulty] >> 8;
+ m_mcu_buffer[3] = table[difficulty] & 0xff;
}
break;
case 0x41: /* 0x41, 0x00, 0x00, stage# -> ? */
{
-// int stage = state->m_mcu_buffer[3];
- state->m_mcu_buffer[0] = 2;
- state->m_mcu_buffer[1] = 0x20;
- state->m_mcu_buffer[2] = 0x78;
+// int stage = m_mcu_buffer[3];
+ m_mcu_buffer[0] = 2;
+ m_mcu_buffer[1] = 0x20;
+ m_mcu_buffer[2] = 0x78;
}
break;
case 0x40: /* 0x40, 0x00, difficulty, enemy_type -> enemy health */
{
- int difficulty = state->m_mcu_buffer[2];
- int enemy_type = state->m_mcu_buffer[3];
+ int difficulty = m_mcu_buffer[2];
+ int enemy_type = m_mcu_buffer[3];
int health;
if (enemy_type <= 4)
@@ -546,15 +544,15 @@ static void mcu_process_command(renegade_state *state)
health = 0x20; /* max 0x20 */
}
logerror("e_type:0x%02x diff:0x%02x -> 0x%02x\n", enemy_type, difficulty, health);
- state->m_mcu_buffer[0] = 1;
- state->m_mcu_buffer[1] = health;
+ m_mcu_buffer[0] = 1;
+ m_mcu_buffer[1] = health;
}
break;
case 0x42: /* 0x42, 0x00, stage#, character# -> enemy_type */
{
- int stage = state->m_mcu_buffer[2] & 0x3;
- int indx = state->m_mcu_buffer[3];
+ int stage = m_mcu_buffer[2] & 0x3;
+ int indx = m_mcu_buffer[3];
int enemy_type=0;
static const int table[] =
@@ -572,36 +570,35 @@ static void mcu_process_command(renegade_state *state)
enemy_type = table[offset];
- state->m_mcu_buffer[0] = 1;
- state->m_mcu_buffer[1] = enemy_type;
+ m_mcu_buffer[0] = 1;
+ m_mcu_buffer[1] = enemy_type;
}
break;
default:
- logerror("unknown MCU command: %02x\n", state->m_mcu_buffer[0]);
+ logerror("unknown MCU command: %02x\n", m_mcu_buffer[0]);
break;
}
}
-static READ8_HANDLER( mcu_r )
+READ8_MEMBER(renegade_state::mcu_r)
{
- renegade_state *state = space->machine().driver_data<renegade_state>();
- if (state->m_mcu_sim == TRUE)
+ if (m_mcu_sim == TRUE)
{
int result = 1;
- if (state->m_mcu_input_size)
- mcu_process_command(state);
+ if (m_mcu_input_size)
+ mcu_process_command();
- if (state->m_mcu_output_byte < MCU_BUFFER_MAX)
- result = state->m_mcu_buffer[state->m_mcu_output_byte++];
+ if (m_mcu_output_byte < MCU_BUFFER_MAX)
+ result = m_mcu_buffer[m_mcu_output_byte++];
return result;
}
else
{
- state->m_mcu_sent = 0;
- return state->m_from_mcu;
+ m_mcu_sent = 0;
+ return m_from_mcu;
}
}
@@ -627,13 +624,12 @@ static CUSTOM_INPUT( mcu_status_r )
/********************************************************************************************/
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(renegade_state::bankswitch_w)
{
- renegade_state *state = space->machine().driver_data<renegade_state>();
- if ((data & 1) != state->m_bank)
+ if ((data & 1) != m_bank)
{
- state->m_bank = data & 1;
- setbank(space->machine());
+ m_bank = data & 1;
+ setbank(machine());
}
}
@@ -648,7 +644,7 @@ static TIMER_DEVICE_CALLBACK( renegade_interrupt )
device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
}
-static WRITE8_HANDLER( renegade_coin_counter_w )
+WRITE8_MEMBER(renegade_state::renegade_coin_counter_w)
{
//coin_counter_w(offset, data);
}
@@ -665,12 +661,12 @@ static ADDRESS_MAP_START( renegade_map, AS_PROGRAM, 8, renegade_state )
AM_RANGE(0x3100, 0x31ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x3800, 0x3800) AM_READ_PORT("IN0") AM_WRITE_LEGACY(renegade_scroll0_w) /* Player#1 controls, P1,P2 start */
AM_RANGE(0x3801, 0x3801) AM_READ_PORT("IN1") AM_WRITE_LEGACY(renegade_scroll1_w) /* Player#2 controls, coin triggers */
- AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(sound_w) /* DIP2 various IO ports */
+ AM_RANGE(0x3802, 0x3802) AM_READ_PORT("DSW2") AM_WRITE(sound_w) /* DIP2 various IO ports */
AM_RANGE(0x3803, 0x3803) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(renegade_flipscreen_w) /* DIP1 */
- AM_RANGE(0x3804, 0x3804) AM_READWRITE_LEGACY(mcu_r, mcu_w)
- AM_RANGE(0x3805, 0x3805) AM_READWRITE_LEGACY(mcu_reset_r, bankswitch_w)
+ AM_RANGE(0x3804, 0x3804) AM_READWRITE(mcu_r, mcu_w)
+ AM_RANGE(0x3805, 0x3805) AM_READWRITE(mcu_reset_r, bankswitch_w)
AM_RANGE(0x3806, 0x3806) AM_WRITENOP // ?? watchdog
- AM_RANGE(0x3807, 0x3807) AM_WRITE_LEGACY(renegade_coin_counter_w)
+ AM_RANGE(0x3807, 0x3807) AM_WRITE(renegade_coin_counter_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index c6246088d8d..251d577cda9 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -36,71 +36,67 @@ Notes:
-static WRITE8_HANDLER( cpu1_reset_w )
+WRITE8_MEMBER(retofinv_state::cpu1_reset_w)
{
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( cpu2_reset_w )
+WRITE8_MEMBER(retofinv_state::cpu2_reset_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( mcu_reset_w )
+WRITE8_MEMBER(retofinv_state::mcu_reset_w)
{
/* the bootlegs don't have a MCU, so make sure it's there before trying to reset it */
- if (space->machine().device("68705") != NULL)
- cputag_set_input_line(space->machine(), "68705", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
+ if (machine().device("68705") != NULL)
+ cputag_set_input_line(machine(), "68705", INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( cpu2_m6000_w )
+WRITE8_MEMBER(retofinv_state::cpu2_m6000_w)
{
- retofinv_state *state = space->machine().driver_data<retofinv_state>();
- state->m_cpu2_m6000 = data;
+ m_cpu2_m6000 = data;
}
-static READ8_HANDLER( cpu0_mf800_r )
+READ8_MEMBER(retofinv_state::cpu0_mf800_r)
{
- retofinv_state *state = space->machine().driver_data<retofinv_state>();
- return state->m_cpu2_m6000;
+ return m_cpu2_m6000;
}
-static WRITE8_HANDLER( soundcommand_w )
+WRITE8_MEMBER(retofinv_state::soundcommand_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
-static WRITE8_HANDLER( irq0_ack_w )
+WRITE8_MEMBER(retofinv_state::irq0_ack_w)
{
- retofinv_state *state = space->machine().driver_data<retofinv_state>();
- state->m_main_irq_mask = data & 1;
- if (!state->m_main_irq_mask)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ m_main_irq_mask = data & 1;
+ if (!m_main_irq_mask)
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( irq1_ack_w )
+WRITE8_MEMBER(retofinv_state::irq1_ack_w)
{
- retofinv_state *state = space->machine().driver_data<retofinv_state>();
- state->m_sub_irq_mask = data & 1;
- if (!state->m_sub_irq_mask)
- cputag_set_input_line(space->machine(), "sub", 0, CLEAR_LINE);
+ m_sub_irq_mask = data & 1;
+ if (!m_sub_irq_mask)
+ cputag_set_input_line(machine(), "sub", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( coincounter_w )
+WRITE8_MEMBER(retofinv_state::coincounter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
-static WRITE8_HANDLER( coinlockout_w )
+WRITE8_MEMBER(retofinv_state::coinlockout_w)
{
- coin_lockout_w(space->machine(), 0,~data & 1);
+ coin_lockout_w(machine(), 0,~data & 1);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x7fff, 0x7fff) AM_WRITE_LEGACY(coincounter_w)
+ AM_RANGE(0x7fff, 0x7fff) AM_WRITE(coincounter_w)
AM_RANGE(0x7b00, 0x7bff) AM_ROM /* space for diagnostic ROM? The code looks */
/* for a string here, and jumps if it's present */
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE_LEGACY(retofinv_fg_videoram_w) AM_SHARE("share2") AM_BASE(m_fg_videoram)
@@ -115,17 +111,17 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0xc005, 0xc005) AM_READ_PORT("DSW1")
AM_RANGE(0xc006, 0xc006) AM_READ_PORT("DSW2")
AM_RANGE(0xc007, 0xc007) AM_READ_PORT("DSW3")
- AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(irq0_ack_w)
- AM_RANGE(0xc801, 0xc801) AM_WRITE_LEGACY(coinlockout_w)
- AM_RANGE(0xc802, 0xc802) AM_WRITE_LEGACY(cpu2_reset_w)
- AM_RANGE(0xc803, 0xc803) AM_WRITE_LEGACY(mcu_reset_w)
-// AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(irq1_ack_w) // presumably (meaning memory map is shared with cpu 1)
- AM_RANGE(0xc805, 0xc805) AM_WRITE_LEGACY(cpu1_reset_w)
+ AM_RANGE(0xc800, 0xc800) AM_WRITE(irq0_ack_w)
+ AM_RANGE(0xc801, 0xc801) AM_WRITE(coinlockout_w)
+ AM_RANGE(0xc802, 0xc802) AM_WRITE(cpu2_reset_w)
+ AM_RANGE(0xc803, 0xc803) AM_WRITE(mcu_reset_w)
+// AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w) // presumably (meaning memory map is shared with cpu 1)
+ AM_RANGE(0xc805, 0xc805) AM_WRITE(cpu1_reset_w)
AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(soundcommand_w)
+ AM_RANGE(0xd800, 0xd800) AM_WRITE(soundcommand_w)
AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(retofinv_mcu_r)
AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(retofinv_mcu_w)
- AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(cpu0_mf800_r)
+ AM_RANGE(0xf800, 0xf800) AM_READ(cpu0_mf800_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, retofinv_state )
@@ -133,14 +129,14 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE_LEGACY(retofinv_fg_videoram_w) AM_SHARE("share2")
AM_RANGE(0x8800, 0x9fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE_LEGACY(retofinv_bg_videoram_w) AM_SHARE("share3")
- AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(irq1_ack_w)
+ AM_RANGE(0xc804, 0xc804) AM_WRITE(irq1_ack_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, retofinv_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x6000, 0x6000) AM_WRITE_LEGACY(cpu2_m6000_w)
+ AM_RANGE(0x6000, 0x6000) AM_WRITE(cpu2_m6000_w)
AM_RANGE(0x8000, 0x8000) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
AM_RANGE(0xe000, 0xffff) AM_ROM /* space for diagnostic ROM */
diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c
index 7779f23d099..053a7c96fa2 100644
--- a/src/mame/drivers/rltennis.c
+++ b/src/mame/drivers/rltennis.c
@@ -69,23 +69,20 @@ player - when there's nothing to play - first, empty 2k of ROMs are selected.
#define RLT_TIMER_FREQ (RLT_REFRESH_RATE*256)
#define RLT_XTAL XTAL_12MHz
-static READ16_HANDLER( rlt_io_r )
+READ16_MEMBER(rltennis_state::rlt_io_r)
{
- rltennis_state *state = space->machine().driver_data<rltennis_state>();
- return (input_port_read(space->machine(), "P1" )&0x1fff) | (state->m_unk_counter<<13); /* top 3 bits controls smaple address update */
+ return (input_port_read(machine(), "P1" )&0x1fff) | (m_unk_counter<<13); /* top 3 bits controls smaple address update */
}
-static WRITE16_HANDLER(rlt_snd1_w)
+WRITE16_MEMBER(rltennis_state::rlt_snd1_w)
{
- rltennis_state *state = space->machine().driver_data<rltennis_state>();
- COMBINE_DATA(&state->m_data760000);
+ COMBINE_DATA(&m_data760000);
}
-static WRITE16_HANDLER(rlt_snd2_w)
+WRITE16_MEMBER(rltennis_state::rlt_snd2_w)
{
- rltennis_state *state = space->machine().driver_data<rltennis_state>();
- COMBINE_DATA(&state->m_data740000);
+ COMBINE_DATA(&m_data740000);
}
static ADDRESS_MAP_START( rltennis_main, AS_PROGRAM, 16, rltennis_state )
@@ -96,11 +93,11 @@ static ADDRESS_MAP_START( rltennis_main, AS_PROGRAM, 16, rltennis_state )
AM_RANGE(0x720000, 0x720001) AM_DEVWRITE8("ramdac",ramdac_device,index_w,0x00ff)
AM_RANGE(0x720002, 0x720003) AM_DEVREADWRITE8("ramdac",ramdac_device,pal_r,pal_w,0x00ff)
AM_RANGE(0x720006, 0x720007) AM_DEVWRITE8("ramdac",ramdac_device,index_r_w,0x00ff)
- AM_RANGE(0x740000, 0x740001) AM_WRITE_LEGACY(rlt_snd1_w)
- AM_RANGE(0x760000, 0x760001) AM_WRITE_LEGACY(rlt_snd2_w)
+ AM_RANGE(0x740000, 0x740001) AM_WRITE(rlt_snd1_w)
+ AM_RANGE(0x760000, 0x760001) AM_WRITE(rlt_snd2_w)
AM_RANGE(0x780000, 0x780001) AM_WRITENOP /* sound control, unknown, usually = 0x0044 */
AM_RANGE(0x7a0000, 0x7a0003) AM_READNOP /* unknown, read only at boot time*/
- AM_RANGE(0x7e0000, 0x7e0001) AM_READ_LEGACY(rlt_io_r)
+ AM_RANGE(0x7e0000, 0x7e0001) AM_READ(rlt_io_r)
AM_RANGE(0x7e0002, 0x7e0003) AM_READ_PORT("P2")
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index 7c29106bac6..3ace50582db 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -64,23 +64,22 @@ static INTERRUPT_GEN( rockrage_interrupt )
device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( rockrage_bankswitch_w )
+WRITE8_MEMBER(rockrage_state::rockrage_bankswitch_w)
{
/* bits 4-6 = bank number */
- memory_set_bank(space->machine(), "bank1", (data & 0x70) >> 4);
+ memory_set_bank(machine(), "bank1", (data & 0x70) >> 4);
/* bits 0 & 1 = coin counters */
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
/* other bits unknown */
}
-static WRITE8_HANDLER( rockrage_sh_irqtrigger_w )
+WRITE8_MEMBER(rockrage_state::rockrage_sh_irqtrigger_w)
{
- rockrage_state *state = space->machine().driver_data<rockrage_state>();
soundlatch_w(space, offset, data);
- device_set_input_line(state->m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
}
static READ8_DEVICE_HANDLER( rockrage_VLM5030_busy_r )
@@ -106,10 +105,10 @@ static ADDRESS_MAP_START( rockrage_map, AS_PROGRAM, 8, rockrage_state )
AM_RANGE(0x2e02, 0x2e02) AM_READ_PORT("P2")
AM_RANGE(0x2e03, 0x2e03) AM_READ_PORT("DSW2")
AM_RANGE(0x2e40, 0x2e40) AM_READ_PORT("DSW1")
- AM_RANGE(0x2e80, 0x2e80) AM_WRITE_LEGACY(rockrage_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x2e80, 0x2e80) AM_WRITE(rockrage_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog reset */
AM_RANGE(0x2f00, 0x2f00) AM_WRITE_LEGACY(rockrage_vreg_w) /* ??? */
- AM_RANGE(0x2f40, 0x2f40) AM_WRITE_LEGACY(rockrage_bankswitch_w) /* bankswitch control */
+ AM_RANGE(0x2f40, 0x2f40) AM_WRITE(rockrage_bankswitch_w) /* bankswitch control */
AM_RANGE(0x4000, 0x5fff) AM_RAM /* RAM */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c
index ece9f36139c..08ebdaaf6a6 100644
--- a/src/mame/drivers/rocnrope.c
+++ b/src/mame/drivers/rocnrope.c
@@ -23,18 +23,17 @@
*************************************/
/* Roc'n'Rope has the IRQ vectors in RAM. The rom contains $FFFF at this address! */
-static WRITE8_HANDLER( rocnrope_interrupt_vector_w )
+WRITE8_MEMBER(rocnrope_state::rocnrope_interrupt_vector_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
RAM[0xfff2 + offset] = data;
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(rocnrope_state::irq_mask_w)
{
- rocnrope_state *state = space->machine().driver_data<rocnrope_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
/*************************************
@@ -62,9 +61,9 @@ static ADDRESS_MAP_START( rocnrope_map, AS_PROGRAM, 8, rocnrope_state )
AM_RANGE(0x8082, 0x8082) AM_WRITENOP /* interrupt acknowledge??? */
AM_RANGE(0x8083, 0x8083) AM_WRITENOP /* Coin counter 1 */
AM_RANGE(0x8084, 0x8084) AM_WRITENOP /* Coin counter 2 */
- AM_RANGE(0x8087, 0x8087) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x8087, 0x8087) AM_WRITE(irq_mask_w)
AM_RANGE(0x8100, 0x8100) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x8182, 0x818d) AM_WRITE_LEGACY(rocnrope_interrupt_vector_w)
+ AM_RANGE(0x8182, 0x818d) AM_WRITE(rocnrope_interrupt_vector_w)
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index ab851ed46ec..8d685dfee6f 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -115,21 +115,19 @@
#include "video/decocomn.h"
#include "video/decospr.h"
-static READ16_HANDLER( rohga_irq_ack_r )
+READ16_MEMBER(rohga_state::rohga_irq_ack_r)
{
- rohga_state *state = space->machine().driver_data<rohga_state>();
- device_set_input_line(state->m_maincpu, 6, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 6, CLEAR_LINE);
return 0;
}
-static WRITE16_HANDLER( wizdfire_irq_ack_w )
+WRITE16_MEMBER(rohga_state::wizdfire_irq_ack_w)
{
/* This might actually do more, nitrobal for example sets 0xca->0xffff->0x80 at startup then writes 7 all the time
except when a credit is inserted (writes 6 twice).
Wizard Fire / Dark Seal 2 just writes 1 all the time, so I just don't trust it much for now... -AS */
- rohga_state *state = space->machine().driver_data<rohga_state>();
- device_set_input_line(state->m_maincpu, 6, CLEAR_LINE);
+ device_set_input_line(m_maincpu, 6, CLEAR_LINE);
}
/**********************************************************************************/
@@ -149,7 +147,7 @@ static ADDRESS_MAP_START( rohga_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x31000a, 0x31000b) AM_DEVWRITE_LEGACY("deco_common", decocomn_palette_dma_w) /* Write 1111 for dma? (Or any value?) */
AM_RANGE(0x320000, 0x320001) AM_WRITENOP /* ? */
AM_RANGE(0x322000, 0x322001) AM_DEVWRITE_LEGACY("deco_common", decocomn_priority_w)
- AM_RANGE(0x321100, 0x321101) AM_READ_LEGACY(rohga_irq_ack_r) /* Irq ack? Value not used */
+ AM_RANGE(0x321100, 0x321101) AM_READ(rohga_irq_ack_r) /* Irq ack? Value not used */
AM_RANGE(0x3c0000, 0x3c1fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x3c2000, 0x3c2fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
@@ -183,7 +181,7 @@ static ADDRESS_MAP_START( wizdfire_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE_LEGACY("deco_common", decocomn_priority_w) /* Priority */
AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */
- AM_RANGE(0x320004, 0x320005) AM_WRITE_LEGACY(wizdfire_irq_ack_w) /* VBL IRQ ack */
+ AM_RANGE(0x320004, 0x320005) AM_WRITE(wizdfire_irq_ack_w) /* VBL IRQ ack */
AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x350000, 0x350001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) /* Triggers DMA for spriteram */
@@ -215,7 +213,7 @@ static ADDRESS_MAP_START( nitrobal_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x320000, 0x320001) AM_READ_PORT("DSW3") AM_DEVWRITE_LEGACY("deco_common", decocomn_priority_w) /* Priority */
AM_RANGE(0x320002, 0x320003) AM_WRITENOP /* ? */
- AM_RANGE(0x320004, 0x320005) AM_WRITE_LEGACY(wizdfire_irq_ack_w) /* VBL IRQ ack */
+ AM_RANGE(0x320004, 0x320005) AM_WRITE(wizdfire_irq_ack_w) /* VBL IRQ ack */
AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x350000, 0x350001) AM_DEVWRITE("spriteram", buffered_spriteram16_device, write) /* Triggers DMA for spriteram */
@@ -243,7 +241,7 @@ static ADDRESS_MAP_START( schmeisr_map, AS_PROGRAM, 16, rohga_state )
AM_RANGE(0x31000a, 0x31000b) AM_DEVWRITE_LEGACY("deco_common", decocomn_palette_dma_w) /* Write 1111 for dma? (Or any value?) */
AM_RANGE(0x320000, 0x320001) AM_WRITENOP /* ? */
AM_RANGE(0x322000, 0x322001) AM_DEVWRITE_LEGACY("deco_common", decocomn_priority_w)
- AM_RANGE(0x321100, 0x321101) AM_WRITE_LEGACY(wizdfire_irq_ack_w) /* Irq ack? Value not used */
+ AM_RANGE(0x321100, 0x321101) AM_WRITE(wizdfire_irq_ack_w) /* Irq ack? Value not used */
AM_RANGE(0x3c0000, 0x3c1fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x3c2000, 0x3c2fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 01998c99db5..734c39b633f 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -22,32 +22,30 @@
/* prototypes */
static KONAMI_SETLINES_CALLBACK( rollerg_banking );
-static WRITE8_HANDLER( rollerg_0010_w )
+WRITE8_MEMBER(rollerg_state::rollerg_0010_w)
{
- rollerg_state *state = space->machine().driver_data<rollerg_state>();
- logerror("%04x: write %02x to 0010\n",cpu_get_pc(&space->device()), data);
+ logerror("%04x: write %02x to 0010\n",cpu_get_pc(&space.device()), data);
/* bits 0/1 are coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 2 enables 051316 ROM reading */
- state->m_readzoomroms = data & 0x04;
+ m_readzoomroms = data & 0x04;
/* bit 5 enables 051316 wraparound */
- k051316_wraparound_enable(state->m_k051316, data & 0x20);
+ k051316_wraparound_enable(m_k051316, data & 0x20);
/* other bits unknown */
}
-static READ8_HANDLER( rollerg_k051316_r )
+READ8_MEMBER(rollerg_state::rollerg_k051316_r)
{
- rollerg_state *state = space->machine().driver_data<rollerg_state>();
- if (state->m_readzoomroms)
- return k051316_rom_r(state->m_k051316, offset);
+ if (m_readzoomroms)
+ return k051316_rom_r(m_k051316, offset);
else
- return k051316_r(state->m_k051316, offset);
+ return k051316_r(m_k051316, offset);
}
static READ8_DEVICE_HANDLER( rollerg_sound_r )
@@ -57,10 +55,9 @@ static READ8_DEVICE_HANDLER( rollerg_sound_r )
return k053260_r(device, 2 + offset);
}
-static WRITE8_HANDLER( soundirq_w )
+WRITE8_MEMBER(rollerg_state::soundirq_w)
{
- rollerg_state *state = space->machine().driver_data<rollerg_state>();
- 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);
}
static TIMER_CALLBACK( nmi_callback )
@@ -69,33 +66,32 @@ static TIMER_CALLBACK( nmi_callback )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( sound_arm_nmi_w )
+WRITE8_MEMBER(rollerg_state::sound_arm_nmi_w)
{
- rollerg_state *state = space->machine().driver_data<rollerg_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- space->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
}
-static READ8_HANDLER( pip_r )
+READ8_MEMBER(rollerg_state::pip_r)
{
return 0x7f;
}
static ADDRESS_MAP_START( rollerg_map, AS_PROGRAM, 8, rollerg_state )
- AM_RANGE(0x0010, 0x0010) AM_WRITE_LEGACY(rollerg_0010_w)
+ AM_RANGE(0x0010, 0x0010) AM_WRITE(rollerg_0010_w)
AM_RANGE(0x0020, 0x0020) AM_READWRITE_LEGACY(watchdog_reset_r,watchdog_reset_w)
AM_RANGE(0x0030, 0x0031) AM_DEVREADWRITE_LEGACY("k053260", rollerg_sound_r, k053260_w) /* K053260 */
- AM_RANGE(0x0040, 0x0040) AM_WRITE_LEGACY(soundirq_w)
+ AM_RANGE(0x0040, 0x0040) AM_WRITE(soundirq_w)
AM_RANGE(0x0050, 0x0050) AM_READ_PORT("P1")
AM_RANGE(0x0051, 0x0051) AM_READ_PORT("P2")
AM_RANGE(0x0052, 0x0052) AM_READ_PORT("DSW3")
AM_RANGE(0x0053, 0x0053) AM_READ_PORT("DSW1")
AM_RANGE(0x0060, 0x0060) AM_READ_PORT("DSW2")
- AM_RANGE(0x0061, 0x0061) AM_READ_LEGACY(pip_r) /* ????? */
+ AM_RANGE(0x0061, 0x0061) AM_READ(pip_r) /* ????? */
AM_RANGE(0x0100, 0x010f) AM_DEVREADWRITE_LEGACY("k053252",k053252_r,k053252_w) /* 053252? */
AM_RANGE(0x0200, 0x020f) AM_DEVWRITE_LEGACY("k051316", k051316_ctrl_w)
AM_RANGE(0x0300, 0x030f) AM_DEVREADWRITE_LEGACY("k053244", k053244_r, k053244_w)
- AM_RANGE(0x0800, 0x0fff) AM_READ_LEGACY(rollerg_k051316_r) AM_DEVWRITE_LEGACY("k051316", k051316_w)
+ AM_RANGE(0x0800, 0x0fff) AM_READ(rollerg_k051316_r) AM_DEVWRITE_LEGACY("k051316", k051316_w)
AM_RANGE(0x1000, 0x17ff) AM_DEVREADWRITE_LEGACY("k053244", k053245_r, k053245_w)
AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE_LEGACY(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2000, 0x3aff) AM_RAM
@@ -108,7 +104,7 @@ static ADDRESS_MAP_START( rollerg_sound_map, AS_PROGRAM, 8, rollerg_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa02f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r,k053260_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index 2ab7cc716da..1e19a359d0c 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -12,28 +12,26 @@ Issues:
#include "sound/ay8910.h"
#include "includes/rollrace.h"
-static READ8_HANDLER( ra_fake_d800_r )
+READ8_MEMBER(rollrace_state::ra_fake_d800_r)
{
return 0x51;
}
-static WRITE8_HANDLER( ra_fake_d800_w )
+WRITE8_MEMBER(rollrace_state::ra_fake_d800_w)
{
/* logerror("d900: %02X\n",data);*/
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(rollrace_state::nmi_mask_w)
{
- rollrace_state *state = space->machine().driver_data<rollrace_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
-static WRITE8_HANDLER( sound_nmi_mask_w )
+WRITE8_MEMBER(rollrace_state::sound_nmi_mask_w)
{
- rollrace_state *state = space->machine().driver_data<rollrace_state>();
- state->m_sound_nmi_mask = data & 1;
+ m_sound_nmi_mask = data & 1;
}
@@ -42,7 +40,7 @@ static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0x8000, 0x9fff) AM_ROM /* only rollace2 */
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd806, 0xd806) AM_READNOP /* looks like a watchdog, bit4 checked*/
- AM_RANGE(0xd900, 0xd900) AM_READWRITE_LEGACY(ra_fake_d800_r,ra_fake_d800_w) /* protection ??*/
+ AM_RANGE(0xd900, 0xd900) AM_READWRITE(ra_fake_d800_r,ra_fake_d800_w) /* protection ??*/
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0xe400, 0xe47f) AM_RAM AM_BASE(m_colorram)
AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(soundlatch_w)
@@ -56,7 +54,7 @@ static ADDRESS_MAP_START( rollrace_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(rollrace_flipx_w)
- AM_RANGE(0xfc01, 0xfc01) AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_mask_w)
AM_RANGE(0xfc02, 0xfc03) AM_WRITENOP /* coin counters */
AM_RANGE(0xfc04, 0xfc05) AM_WRITE_LEGACY(rollrace_charbank_w)
AM_RANGE(0xfc06, 0xfc06) AM_WRITE_LEGACY(rollrace_spritebank_w)
@@ -66,7 +64,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rollrace_sound_map, AS_PROGRAM, 8, rollrace_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x2fff) AM_RAM
- AM_RANGE(0x3000, 0x3000) AM_READWRITE_LEGACY(soundlatch_r,sound_nmi_mask_w)
+ AM_RANGE(0x3000, 0x3000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(sound_nmi_mask_w)
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x5000, 0x5001) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE_LEGACY("ay3", ay8910_address_data_w)
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 304b7385e81..1d81fc44d10 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -75,7 +75,7 @@
#include "includes/route16.h"
-static READ8_HANDLER( routex_prot_read );
+
@@ -87,30 +87,27 @@ static READ8_HANDLER( routex_prot_read );
-static READ8_HANDLER( sharedram_r )
+READ8_MEMBER(route16_state::sharedram_r)
{
- route16_state *state = space->machine().driver_data<route16_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE8_HANDLER( sharedram_w )
+WRITE8_MEMBER(route16_state::sharedram_w)
{
- route16_state *state = space->machine().driver_data<route16_state>();
- state->m_sharedram[offset] = data;
+ m_sharedram[offset] = data;
}
-static WRITE8_HANDLER( route16_sharedram_w )
+WRITE8_MEMBER(route16_state::route16_sharedram_w)
{
- route16_state *state = space->machine().driver_data<route16_state>();
- state->m_sharedram[offset] = data;
+ m_sharedram[offset] = data;
// 4313-4319 are used in Route 16 as triggers to wake the other CPU
if (offset >= 0x0313 && offset <= 0x0319 && data == 0xff)
{
// Let the other CPU run
- device_yield(&space->device());
+ device_yield(&space.device());
}
}
@@ -154,24 +151,22 @@ static WRITE8_DEVICE_HANDLER( stratvox_sn76477_w )
-static WRITE8_HANDLER( ttmahjng_input_port_matrix_w )
+WRITE8_MEMBER(route16_state::ttmahjng_input_port_matrix_w)
{
- route16_state *state = space->machine().driver_data<route16_state>();
- state->m_ttmahjng_port_select = data;
+ m_ttmahjng_port_select = data;
}
-static READ8_HANDLER( ttmahjng_input_port_matrix_r )
+READ8_MEMBER(route16_state::ttmahjng_input_port_matrix_r)
{
- route16_state *state = space->machine().driver_data<route16_state>();
UINT8 ret = 0;
- switch (state->m_ttmahjng_port_select)
+ switch (m_ttmahjng_port_select)
{
- case 1: ret = input_port_read(space->machine(), "KEY0"); break;
- case 2: ret = input_port_read(space->machine(), "KEY1"); break;
- case 4: ret = input_port_read(space->machine(), "KEY2"); break;
- case 8: ret = input_port_read(space->machine(), "KEY3"); break;
+ case 1: ret = input_port_read(machine(), "KEY0"); break;
+ case 2: ret = input_port_read(machine(), "KEY1"); break;
+ case 4: ret = input_port_read(machine(), "KEY2"); break;
+ case 8: ret = input_port_read(machine(), "KEY3"); break;
default: break;
}
@@ -189,26 +184,24 @@ static READ8_HANDLER( ttmahjng_input_port_matrix_r )
this would then be checking that the sounds are mixed correctly.
***************************************************************************/
-static READ8_HANDLER ( speakres_in3_r )
+READ8_MEMBER(route16_state::speakres_in3_r)
{
- route16_state *state = space->machine().driver_data<route16_state>();
int bit2=4, bit1=2, bit0=1;
/* just using a counter, the constants are the number of reads
before going low, each read is 40 cycles apart. the constants
were chosen based on the startup tests and for vr0=vr2 */
- state->m_speakres_vrx++;
- if(state->m_speakres_vrx>0x300) bit0=0; /* VR0 100k ohm - speech */
- if(state->m_speakres_vrx>0x200) bit1=0; /* VR1 50k ohm - main volume */
- if(state->m_speakres_vrx>0x300) bit2=0; /* VR2 100k ohm - explosion */
+ m_speakres_vrx++;
+ if(m_speakres_vrx>0x300) bit0=0; /* VR0 100k ohm - speech */
+ if(m_speakres_vrx>0x200) bit1=0; /* VR1 50k ohm - main volume */
+ if(m_speakres_vrx>0x300) bit2=0; /* VR2 100k ohm - explosion */
return 0xf8|bit2|bit1|bit0;
}
-static WRITE8_HANDLER ( speakres_out2_w )
+WRITE8_MEMBER(route16_state::speakres_out2_w)
{
- route16_state *state = space->machine().driver_data<route16_state>();
- state->m_speakres_vrx=0;
+ m_speakres_vrx=0;
}
@@ -222,7 +215,7 @@ static WRITE8_HANDLER ( speakres_out2_w )
static ADDRESS_MAP_START( route16_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
/*AM_RANGE(0x3000, 0x3001) AM_NOP protection device */
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, route16_sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE_LEGACY(route16_out0_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("P1") AM_WRITE_LEGACY(route16_out1_w)
AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2")
@@ -232,18 +225,18 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( routex_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, route16_sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE_LEGACY(route16_out0_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("P1") AM_WRITE_LEGACY(route16_out1_w)
AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2")
- AM_RANGE(0x6400, 0x6400) AM_READ_LEGACY(routex_prot_read)
+ AM_RANGE(0x6400, 0x6400) AM_READ(routex_prot_read)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE(m_videoram1) AM_SIZE(m_videoram_size)
ADDRESS_MAP_END
static ADDRESS_MAP_START( stratvox_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE_LEGACY(route16_out0_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("P1") AM_WRITE_LEGACY(route16_out1_w)
AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2")
@@ -253,21 +246,21 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( speakres_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE_LEGACY(route16_out0_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("P1") AM_WRITE_LEGACY(route16_out1_w)
- AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2") AM_WRITE_LEGACY(speakres_out2_w)
- AM_RANGE(0x6000, 0x6000) AM_READ_LEGACY(speakres_in3_r)
+ AM_RANGE(0x5800, 0x5800) AM_READ_PORT("P2") AM_WRITE(speakres_out2_w)
+ AM_RANGE(0x6000, 0x6000) AM_READ(speakres_in3_r)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE(m_videoram1) AM_SIZE(m_videoram_size)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ttmahjng_cpu1_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0x4800, 0x4800) AM_READ_PORT("DSW") AM_WRITE_LEGACY(route16_out0_w)
AM_RANGE(0x5000, 0x5000) AM_READ_PORT("IN0") AM_WRITE_LEGACY(route16_out1_w)
- AM_RANGE(0x5800, 0x5800) AM_READWRITE_LEGACY(ttmahjng_input_port_matrix_r, ttmahjng_input_port_matrix_w)
+ AM_RANGE(0x5800, 0x5800) AM_READWRITE(ttmahjng_input_port_matrix_r, ttmahjng_input_port_matrix_w)
AM_RANGE(0x6800, 0x6800) AM_DEVWRITE_LEGACY("ay8910", ay8910_data_w)
AM_RANGE(0x6900, 0x6900) AM_DEVWRITE_LEGACY("ay8910", ay8910_address_w)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE(m_videoram1) AM_SIZE(m_videoram_size)
@@ -276,7 +269,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( route16_cpu2_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, route16_sharedram_w)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, route16_sharedram_w)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE(m_videoram2)
ADDRESS_MAP_END
@@ -284,7 +277,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( stratvox_cpu2_map, AS_PROGRAM, 8, route16_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2800, 0x2800) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w)
+ AM_RANGE(0x4000, 0x43ff) AM_READWRITE(sharedram_r, sharedram_w)
AM_RANGE(0x8000, 0xbfff) AM_RAM AM_BASE(m_videoram2)
ADDRESS_MAP_END
@@ -946,11 +939,11 @@ ROM_END
*
*************************************/
-static READ8_HANDLER( routex_prot_read )
+READ8_MEMBER(route16_state::routex_prot_read)
{
- if (cpu_get_pc(&space->device()) == 0x2f) return 0xfb;
+ if (cpu_get_pc(&space.device()) == 0x2f) return 0xfb;
- logerror ("cpu '%s' (PC=%08X): unmapped prot read\n", space->device().tag(), cpu_get_pc(&space->device()));
+ logerror ("cpu '%s' (PC=%08X): unmapped prot read\n", space.device().tag(), cpu_get_pc(&space.device()));
return 0x00;
}
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index b8e902750f9..1c7a656e7fd 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -165,26 +165,24 @@ static TIMER_CALLBACK( sound_command_w_callback )
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(rpunch_state::sound_command_w)
{
if (ACCESSING_BITS_0_7)
- space->machine().scheduler().synchronize(FUNC(sound_command_w_callback), data & 0xff);
+ machine().scheduler().synchronize(FUNC(sound_command_w_callback), data & 0xff);
}
-static READ8_HANDLER( sound_command_r )
+READ8_MEMBER(rpunch_state::sound_command_r)
{
- rpunch_state *state = space->machine().driver_data<rpunch_state>();
- state->m_sound_busy = 0;
- cputag_set_input_line(space->machine(), "audiocpu", 0, (state->m_ym2151_irq | state->m_sound_busy) ? ASSERT_LINE : CLEAR_LINE);
- return state->m_sound_data;
+ m_sound_busy = 0;
+ cputag_set_input_line(machine(), "audiocpu", 0, (m_ym2151_irq | m_sound_busy) ? ASSERT_LINE : CLEAR_LINE);
+ return m_sound_data;
}
-static READ16_HANDLER( sound_busy_r )
+READ16_MEMBER(rpunch_state::sound_busy_r)
{
- rpunch_state *state = space->machine().driver_data<rpunch_state>();
- return state->m_sound_busy;
+ return m_sound_busy;
}
@@ -233,12 +231,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, rpunch_state )
AM_RANGE(0x0c0000, 0x0c0007) AM_WRITE_LEGACY(rpunch_scrollreg_w)
AM_RANGE(0x0c0008, 0x0c0009) AM_WRITE_LEGACY(rpunch_crtc_data_w)
AM_RANGE(0x0c000c, 0x0c000d) AM_WRITE_LEGACY(rpunch_videoreg_w)
- AM_RANGE(0x0c000e, 0x0c000f) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x0c000e, 0x0c000f) AM_WRITE(sound_command_w)
AM_RANGE(0x0c0010, 0x0c0013) AM_WRITE_LEGACY(rpunch_ins_w)
AM_RANGE(0x0c0018, 0x0c0019) AM_READ_PORT("P1")
AM_RANGE(0x0c001a, 0x0c001b) AM_READ_PORT("P2")
AM_RANGE(0x0c001c, 0x0c001d) AM_READ_PORT("DSW")
- AM_RANGE(0x0c001e, 0x0c001f) AM_READ_LEGACY(sound_busy_r)
+ AM_RANGE(0x0c001e, 0x0c001f) AM_READ(sound_busy_r)
AM_RANGE(0x0c0028, 0x0c0029) AM_WRITE_LEGACY(rpunch_crtc_register_w)
AM_RANGE(0x0fc000, 0x0fffff) AM_RAM
ADDRESS_MAP_END
@@ -254,7 +252,7 @@ ADDRESS_MAP_END
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_LEGACY(sound_command_r)
+ 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(0xf800, 0xffff) AM_RAM
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index 05a867b01bb..468b1101a9d 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -46,15 +46,15 @@ static MACHINE_RESET( runaway )
}
-static READ8_HANDLER( runaway_input_r )
+READ8_MEMBER(runaway_state::runaway_input_r)
{
UINT8 val = 0;
- if (input_port_read(space->machine(), "3000D7") & (1 << offset))
+ if (input_port_read(machine(), "3000D7") & (1 << offset))
{
val |= 0x80;
}
- if (input_port_read(space->machine(), "3000D6") & (1 << offset))
+ if (input_port_read(machine(), "3000D6") & (1 << offset))
{
val |= 0x40;
}
@@ -69,15 +69,15 @@ static READ8_DEVICE_HANDLER( runaway_pot_r )
}
-static WRITE8_HANDLER( runaway_led_w )
+WRITE8_MEMBER(runaway_state::runaway_led_w)
{
- set_led_status(space->machine(), offset, ~data & 1);
+ set_led_status(machine(), offset, ~data & 1);
}
-static WRITE8_HANDLER( runaway_irq_ack_w )
+WRITE8_MEMBER(runaway_state::runaway_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -85,16 +85,16 @@ static ADDRESS_MAP_START( runaway_map, AS_PROGRAM, 8, runaway_state )
AM_RANGE(0x0000, 0x03ff) AM_RAM
AM_RANGE(0x0400, 0x07bf) AM_RAM_WRITE_LEGACY(runaway_video_ram_w) AM_BASE(m_video_ram)
AM_RANGE(0x07c0, 0x07ff) AM_RAM AM_BASE(m_sprite_ram)
- AM_RANGE(0x1000, 0x1000) AM_WRITE_LEGACY(runaway_irq_ack_w)
+ AM_RANGE(0x1000, 0x1000) AM_WRITE(runaway_irq_ack_w)
AM_RANGE(0x1400, 0x143f) AM_DEVWRITE("earom", atari_vg_earom_device, write)
AM_RANGE(0x1800, 0x1800) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w)
AM_RANGE(0x1c00, 0x1c0f) AM_WRITE_LEGACY(runaway_paletteram_w)
AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* coin counter? */
AM_RANGE(0x2001, 0x2001) AM_WRITENOP /* coin counter? */
- AM_RANGE(0x2003, 0x2004) AM_WRITE_LEGACY(runaway_led_w)
+ AM_RANGE(0x2003, 0x2004) AM_WRITE(runaway_led_w)
AM_RANGE(0x2005, 0x2005) AM_WRITE_LEGACY(runaway_tile_bank_w)
- AM_RANGE(0x3000, 0x3007) AM_READ_LEGACY(runaway_input_r)
+ AM_RANGE(0x3000, 0x3007) AM_READ(runaway_input_r)
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("4000")
AM_RANGE(0x5000, 0x5000) AM_DEVREAD("earom", atari_vg_earom_device, read)
AM_RANGE(0x6000, 0x600f) AM_DEVREADWRITE_LEGACY("pokey1", pokey_r,pokey_w)
diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c
index 5d764a74688..82dfb44aac7 100644
--- a/src/mame/drivers/rungun.c
+++ b/src/mame/drivers/rungun.c
@@ -65,28 +65,27 @@ static const eeprom_interface eeprom_intf =
"0100110000000" /* unlock command */
};
-static READ16_HANDLER( rng_sysregs_r )
+READ16_MEMBER(rungun_state::rng_sysregs_r)
{
- rungun_state *state = space->machine().driver_data<rungun_state>();
UINT16 data = 0;
switch (offset)
{
case 0x00/2:
- if (input_port_read(space->machine(), "DSW") & 0x20)
- return (input_port_read(space->machine(), "P1") | input_port_read(space->machine(), "P3") << 8);
+ if (input_port_read(machine(), "DSW") & 0x20)
+ return (input_port_read(machine(), "P1") | input_port_read(machine(), "P3") << 8);
else
{
- data = input_port_read(space->machine(), "P1") & input_port_read(space->machine(), "P3");
+ data = input_port_read(machine(), "P1") & input_port_read(machine(), "P3");
return (data << 8 | data);
}
case 0x02/2:
- if (input_port_read(space->machine(), "DSW") & 0x20)
- return (input_port_read(space->machine(), "P2") | input_port_read(space->machine(), "P4") << 8);
+ if (input_port_read(machine(), "DSW") & 0x20)
+ return (input_port_read(machine(), "P2") | input_port_read(machine(), "P4") << 8);
else
{
- data = input_port_read(space->machine(), "P2") & input_port_read(space->machine(), "P4");
+ data = input_port_read(machine(), "P2") & input_port_read(machine(), "P4");
return (data << 8 | data);
}
@@ -96,24 +95,23 @@ static READ16_HANDLER( rng_sysregs_r )
bit8 : freeze
bit9 : joysticks layout(auto detect???)
*/
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 0x06/2:
if (ACCESSING_BITS_0_7)
{
- data = input_port_read(space->machine(), "DSW");
+ data = input_port_read(machine(), "DSW");
}
- return ((state->m_sysreg[0x06 / 2] & 0xff00) | data);
+ return ((m_sysreg[0x06 / 2] & 0xff00) | data);
}
- return state->m_sysreg[offset];
+ return m_sysreg[offset];
}
-static WRITE16_HANDLER( rng_sysregs_w )
+WRITE16_MEMBER(rungun_state::rng_sysregs_w)
{
- rungun_state *state = space->machine().driver_data<rungun_state>();
- COMBINE_DATA(state->m_sysreg + offset);
+ COMBINE_DATA(m_sysreg + offset);
switch (offset)
{
@@ -127,10 +125,10 @@ static WRITE16_HANDLER( rng_sysregs_w )
bit10 : IRQ5 ACK
*/
if (ACCESSING_BITS_0_7)
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
if (!(data & 0x40))
- device_set_input_line(state->m_maincpu, M68K_IRQ_5, CLEAR_LINE);
+ device_set_input_line(m_maincpu, M68K_IRQ_5, CLEAR_LINE);
break;
case 0x0c/2:
@@ -140,37 +138,35 @@ static WRITE16_HANDLER( rng_sysregs_w )
bit 2 : OBJCHA
bit 3 : enable IRQ 5
*/
- k053246_set_objcha_line(state->m_k055673, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
+ k053246_set_objcha_line(m_k055673, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
break;
}
}
-static WRITE16_HANDLER( sound_cmd1_w )
+WRITE16_MEMBER(rungun_state::sound_cmd1_w)
{
if (ACCESSING_BITS_8_15)
soundlatch_w(space, 0, data >> 8);
}
-static WRITE16_HANDLER( sound_cmd2_w )
+WRITE16_MEMBER(rungun_state::sound_cmd2_w)
{
if (ACCESSING_BITS_8_15)
soundlatch2_w(space, 0, data >> 8);
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(rungun_state::sound_irq_w)
{
- rungun_state *state = space->machine().driver_data<rungun_state>();
if (ACCESSING_BITS_8_15)
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static READ16_HANDLER( sound_status_msb_r )
+READ16_MEMBER(rungun_state::sound_status_msb_r)
{
- rungun_state *state = space->machine().driver_data<rungun_state>();
if (ACCESSING_BITS_8_15)
- return(state->m_sound_status << 8);
+ return(m_sound_status << 8);
return 0;
}
@@ -188,12 +184,12 @@ static ADDRESS_MAP_START( rungun_map, AS_PROGRAM, 16, rungun_state )
AM_RANGE(0x300000, 0x3007ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x380000, 0x39ffff) AM_RAM // work RAM
AM_RANGE(0x400000, 0x43ffff) AM_READNOP // AM_READ_LEGACY(K053936_0_rom_r ) // '936 ROM readback window
- AM_RANGE(0x480000, 0x48001f) AM_READWRITE_LEGACY(rng_sysregs_r, rng_sysregs_w) AM_BASE(m_sysreg)
+ AM_RANGE(0x480000, 0x48001f) AM_READWRITE(rng_sysregs_r, rng_sysregs_w) AM_BASE(m_sysreg)
AM_RANGE(0x4c0000, 0x4c001f) AM_DEVREADWRITE8_LEGACY("k053252", k053252_r, k053252_w,0x00ff) // CCU (for scanline and vblank polling)
- AM_RANGE(0x540000, 0x540001) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x58000c, 0x58000d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x58000e, 0x58000f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x580014, 0x580015) AM_READ_LEGACY(sound_status_msb_r)
+ AM_RANGE(0x540000, 0x540001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x58000c, 0x58000d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x58000e, 0x58000f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x580014, 0x580015) AM_READ(sound_status_msb_r)
AM_RANGE(0x580000, 0x58001f) AM_RAM // sound regs read/write fall-through
AM_RANGE(0x5c0000, 0x5c000d) AM_DEVREAD_LEGACY("k055673", k053246_word_r) // 246A ROM readback window
AM_RANGE(0x5c0010, 0x5c001f) AM_DEVWRITE_LEGACY("k055673", k053247_reg_word_w)
@@ -214,22 +210,20 @@ ADDRESS_MAP_END
/**********************************************************************************/
-static WRITE8_HANDLER( sound_status_w )
+WRITE8_MEMBER(rungun_state::sound_status_w)
{
- rungun_state *state = space->machine().driver_data<rungun_state>();
- state->m_sound_status = data;
+ m_sound_status = data;
}
-static WRITE8_HANDLER( z80ctrl_w )
+WRITE8_MEMBER(rungun_state::z80ctrl_w)
{
- rungun_state *state = space->machine().driver_data<rungun_state>();
- state->m_z80_control = data;
+ m_z80_control = data;
- memory_set_bank(space->machine(), "bank2", data & 0x07);
+ memory_set_bank(machine(), "bank2", data & 0x07);
if (data & 0x10)
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
}
static INTERRUPT_GEN(audio_interrupt)
@@ -252,10 +246,10 @@ static ADDRESS_MAP_START( rungun_sound_map, AS_PROGRAM, 8, rungun_state )
AM_RANGE(0xe230, 0xe3ff) AM_RAM
AM_RANGE(0xe400, 0xe62f) AM_DEVREADWRITE("k054539_1", k054539_device, read, write)
AM_RANGE(0xe630, 0xe7ff) AM_RAM
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(sound_status_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_status_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ_LEGACY(soundlatch2_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(z80ctrl_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(z80ctrl_w)
AM_RANGE(0xfff0, 0xfff3) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index 185797703d8..046b4d7591f 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -128,34 +128,34 @@ Stephh's notes (based on the games Z80 code and some tests) :
#include "machine/nvram.h"
-static WRITE8_HANDLER( sauro_sound_command_w )
+WRITE8_MEMBER(sauro_state::sauro_sound_command_w)
{
data |= 0x80;
soundlatch_w(space, offset, data);
}
-static READ8_HANDLER( sauro_sound_command_r )
+READ8_MEMBER(sauro_state::sauro_sound_command_r)
{
int ret = soundlatch_r(space, offset);
soundlatch_clear_w(space, offset, 0);
return ret;
}
-static WRITE8_HANDLER( sauro_coin1_w )
+WRITE8_MEMBER(sauro_state::sauro_coin1_w)
{
- coin_counter_w(space->machine(), 0, data);
- coin_counter_w(space->machine(), 0, 0); // to get the coin counter working in sauro, as it doesn't write 0
+ coin_counter_w(machine(), 0, data);
+ coin_counter_w(machine(), 0, 0); // to get the coin counter working in sauro, as it doesn't write 0
}
-static WRITE8_HANDLER( sauro_coin2_w )
+WRITE8_MEMBER(sauro_state::sauro_coin2_w)
{
- coin_counter_w(space->machine(), 1, data);
- coin_counter_w(space->machine(), 1, 0); // to get the coin counter working in sauro, as it doesn't write 0
+ coin_counter_w(machine(), 1, data);
+ coin_counter_w(machine(), 1, 0); // to get the coin counter working in sauro, as it doesn't write 0
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(sauro_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
static WRITE8_DEVICE_HANDLER( adpcm_w )
@@ -179,14 +179,14 @@ static ADDRESS_MAP_START( sauro_io_map, AS_IO, 8, sauro_state )
AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW2")
AM_RANGE(0x40, 0x40) AM_READ_PORT("P1")
AM_RANGE(0x60, 0x60) AM_READ_PORT("P2")
- AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(sauro_sound_command_w)
+ AM_RANGE(0x80, 0x80) AM_WRITE(sauro_sound_command_w)
AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(tecfri_scroll_bg_w)
AM_RANGE(0xa1, 0xa1) AM_WRITE_LEGACY(sauro_scroll_fg_w)
- AM_RANGE(0xc0, 0xc0) AM_WRITE_LEGACY(flip_screen_w)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(flip_screen_w)
AM_RANGE(0xc2, 0xc2) AM_WRITENOP /* coin reset */
- AM_RANGE(0xc3, 0xc3) AM_WRITE_LEGACY(sauro_coin1_w)
+ AM_RANGE(0xc3, 0xc3) AM_WRITE(sauro_coin1_w)
AM_RANGE(0xc4, 0xc4) AM_WRITENOP /* coin reset */
- AM_RANGE(0xc5, 0xc5) AM_WRITE_LEGACY(sauro_coin2_w)
+ AM_RANGE(0xc5, 0xc5) AM_WRITE(sauro_coin2_w)
AM_RANGE(0xc6, 0xc7) AM_WRITENOP /* same as 0x80 - verified with debugger */
AM_RANGE(0xc8, 0xc8) AM_WRITENOP /* written every int: 0 written at end of isr */
AM_RANGE(0xc9, 0xc9) AM_WRITENOP /* written every int: 1 written at start of isr */
@@ -203,7 +203,7 @@ static ADDRESS_MAP_START( sauro_sound_map, AS_PROGRAM, 8, sauro_state )
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(0xe000, 0xe000) AM_READ_LEGACY(sauro_sound_command_r)
+ 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
ADDRESS_MAP_END
@@ -223,9 +223,9 @@ static ADDRESS_MAP_START( trckydoc_map, AS_PROGRAM, 8, sauro_state )
AM_RANGE(0xf828, 0xf828) AM_READ_LEGACY(watchdog_reset_r)
AM_RANGE(0xf830, 0xf830) AM_WRITE_LEGACY(tecfri_scroll_bg_w)
AM_RANGE(0xf838, 0xf838) AM_WRITENOP /* only written at startup */
- AM_RANGE(0xf839, 0xf839) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0xf83a, 0xf83a) AM_WRITE_LEGACY(sauro_coin1_w)
- AM_RANGE(0xf83b, 0xf83b) AM_WRITE_LEGACY(sauro_coin2_w)
+ AM_RANGE(0xf839, 0xf839) AM_WRITE(flip_screen_w)
+ AM_RANGE(0xf83a, 0xf83a) AM_WRITE(sauro_coin1_w)
+ AM_RANGE(0xf83b, 0xf83b) AM_WRITE(sauro_coin2_w)
AM_RANGE(0xf83c, 0xf83c) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xf83f, 0xf83f) AM_WRITENOP /* only written at startup */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index e08162c9be0..bae627ce152 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -50,21 +50,20 @@ CPU/Video Board Parts:
#include "includes/sbasketb.h"
-static WRITE8_HANDLER( sbasketb_sh_irqtrigger_w )
+WRITE8_MEMBER(sbasketb_state::sbasketb_sh_irqtrigger_w)
{
- device_set_input_line_and_vector(space->machine().device<cpu_device>("audiocpu"), 0, HOLD_LINE, 0xff);
+ device_set_input_line_and_vector(machine().device<cpu_device>("audiocpu"), 0, HOLD_LINE, 0xff);
}
-static WRITE8_HANDLER( sbasketb_coin_counter_w )
+WRITE8_MEMBER(sbasketb_state::sbasketb_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data);
+ coin_counter_w(machine(), offset, data);
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(sbasketb_state::irq_mask_w)
{
- sbasketb_state *state = space->machine().driver_data<sbasketb_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( sbasketb_map, AS_PROGRAM, 8, sbasketb_state )
@@ -77,11 +76,11 @@ static ADDRESS_MAP_START( sbasketb_map, AS_PROGRAM, 8, sbasketb_state )
AM_RANGE(0x3c10, 0x3c10) AM_READNOP /* ???? */
AM_RANGE(0x3c20, 0x3c20) AM_WRITEONLY AM_BASE(m_palettebank)
AM_RANGE(0x3c80, 0x3c80) AM_WRITE_LEGACY(sbasketb_flipscreen_w)
- AM_RANGE(0x3c81, 0x3c81) AM_WRITE_LEGACY(irq_mask_w)
- AM_RANGE(0x3c83, 0x3c84) AM_WRITE_LEGACY(sbasketb_coin_counter_w)
+ AM_RANGE(0x3c81, 0x3c81) AM_WRITE(irq_mask_w)
+ AM_RANGE(0x3c83, 0x3c84) AM_WRITE(sbasketb_coin_counter_w)
AM_RANGE(0x3c85, 0x3c85) AM_WRITEONLY AM_BASE(m_spriteram_select)
AM_RANGE(0x3d00, 0x3d00) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x3d80, 0x3d80) AM_WRITE_LEGACY(sbasketb_sh_irqtrigger_w)
+ AM_RANGE(0x3d80, 0x3d80) AM_WRITE(sbasketb_sh_irqtrigger_w)
AM_RANGE(0x3e00, 0x3e00) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3e01, 0x3e01) AM_READ_PORT("P1")
AM_RANGE(0x3e02, 0x3e02) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index d50c2cab26a..6ef12fd50b5 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -39,12 +39,11 @@ Stephh's notes (based on the game M6502 code and some tests) :
#include "includes/konamipt.h"
#include "includes/scotrsht.h"
-static WRITE8_HANDLER( ctrl_w )
+WRITE8_MEMBER(scotrsht_state::ctrl_w)
{
- scotrsht_state *state = space->machine().driver_data<scotrsht_state>();
- state->m_irq_enable = data & 0x02;
- flip_screen_set(space->machine(), data & 0x08);
+ m_irq_enable = data & 0x02;
+ flip_screen_set(machine(), data & 0x08);
}
static INTERRUPT_GEN( scotrsht_interrupt )
@@ -55,10 +54,10 @@ static INTERRUPT_GEN( scotrsht_interrupt )
device_set_input_line(device, 0, HOLD_LINE);
}
-static WRITE8_HANDLER( scotrsht_soundlatch_w )
+WRITE8_MEMBER(scotrsht_state::scotrsht_soundlatch_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
static ADDRESS_MAP_START( scotrsht_map, AS_PROGRAM, 8, scotrsht_state )
@@ -71,9 +70,9 @@ static ADDRESS_MAP_START( scotrsht_map, AS_PROGRAM, 8, scotrsht_state )
AM_RANGE(0x2041, 0x2041) AM_WRITENOP
AM_RANGE(0x2042, 0x2042) AM_WRITENOP /* it should be -> bit 2 = scroll direction like in jailbrek, but it's not used */
AM_RANGE(0x2043, 0x2043) AM_WRITE_LEGACY(scotrsht_charbank_w)
- AM_RANGE(0x2044, 0x2044) AM_WRITE_LEGACY(ctrl_w)
+ AM_RANGE(0x2044, 0x2044) AM_WRITE(ctrl_w)
AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(scotrsht_palettebank_w)
- AM_RANGE(0x3100, 0x3100) AM_WRITE_LEGACY(scotrsht_soundlatch_w)
+ AM_RANGE(0x3100, 0x3100) AM_WRITE(scotrsht_soundlatch_w)
AM_RANGE(0x3200, 0x3200) AM_WRITENOP /* it writes 0, 1 */
AM_RANGE(0x3100, 0x3100) AM_READ_PORT("DSW2")
AM_RANGE(0x3200, 0x3200) AM_READ_PORT("DSW3")
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index 27233e96ea7..91baf3d4fe2 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -72,31 +72,31 @@
* R/W Handlers *
***************************/
-static READ16_HANDLER ( sderby_input_r )
+READ16_MEMBER(sderby_state::sderby_input_r)
{
switch (offset)
{
case 0x00 >> 1:
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x02 >> 1:
return 0xffff; // to avoid game to reset (needs more work)
}
- logerror("sderby_input_r : offset = %x - PC = %06x\n",offset*2,cpu_get_pc(&space->device()));
+ logerror("sderby_input_r : offset = %x - PC = %06x\n",offset*2,cpu_get_pc(&space.device()));
return 0xffff;
}
-static READ16_HANDLER( roulette_input_r )
+READ16_MEMBER(sderby_state::roulette_input_r)
{
switch (offset)
{
case 0x00 >> 1:
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x02 >> 1:
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 0x04 >> 1:
- return input_port_read(space->machine(), "IN2");
+ return input_port_read(machine(), "IN2");
}
return 0xffff;
@@ -124,9 +124,9 @@ static READ16_HANDLER( roulette_input_r )
****************************************************************/
-static READ16_HANDLER( rprot_r )
+READ16_MEMBER(sderby_state::rprot_r)
{
- logerror("rprot_r : offset = %02x\n",cpu_get_pc(&space->device()));
+ logerror("rprot_r : offset = %02x\n",cpu_get_pc(&space.device()));
/* This is the only mask I found that allow a normal play.
Using other values, the game hangs waiting for response,
@@ -135,10 +135,10 @@ static READ16_HANDLER( rprot_r )
If someone more skilled in 68K code can help to trace it,
searching for an accurated response, I'll appreciate.
*/
- return space->machine().rand() & 0x1f;
+ return machine().rand() & 0x1f;
}
-static WRITE16_HANDLER( rprot_w )
+WRITE16_MEMBER(sderby_state::rprot_w)
{
logerror("rprot_w %02x\n", data);
}
@@ -148,7 +148,7 @@ static WRITE16_HANDLER( rprot_w )
* Outputs / Lamps *
******************************/
-static WRITE16_HANDLER( sderby_out_w )
+WRITE16_MEMBER(sderby_state::sderby_out_w)
{
/*
---------------------------
@@ -188,11 +188,11 @@ static WRITE16_HANDLER( sderby_out_w )
output_set_lamp_value(2, (data >> 1) & 1); /* Lamp 2 - BET */
output_set_lamp_value(3, (data >> 15) & 1); /* Lamp 3 - END OF RACE */
- coin_counter_w(space->machine(), 0, data & 0x2000);
+ coin_counter_w(machine(), 0, data & 0x2000);
}
-static WRITE16_HANDLER( scmatto_out_w )
+WRITE16_MEMBER(sderby_state::scmatto_out_w)
{
/*
----------------------------------------
@@ -237,11 +237,11 @@ static WRITE16_HANDLER( scmatto_out_w )
output_set_lamp_value(6, (data >> 5) & 1); /* Lamp 6 - START */
output_set_lamp_value(7, (data >> 6) & 1); /* Lamp 7 - BET */
- coin_counter_w(space->machine(), 0, data & 0x2000);
+ coin_counter_w(machine(), 0, data & 0x2000);
}
-static WRITE16_HANDLER( roulette_out_w )
+WRITE16_MEMBER(sderby_state::roulette_out_w)
{
/*
-----------------------------------
@@ -283,8 +283,8 @@ static ADDRESS_MAP_START( sderby_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* ??? - check code at 0x000456 (executed once at startup) */
AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* ??? - check code at 0x000524 (executed once at startup) */
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE(m_spriteram) AM_SIZE(m_spriteram_size)
- AM_RANGE(0x308000, 0x30800d) AM_READ_LEGACY(sderby_input_r)
- AM_RANGE(0x308008, 0x308009) AM_WRITE_LEGACY(sderby_out_w) /* output port */
+ AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
+ AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x380000, 0x380fff) AM_WRITE_LEGACY(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */
@@ -302,8 +302,8 @@ static ADDRESS_MAP_START( luckboom_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x10400c, 0x10400d) AM_WRITENOP /* ??? - check code at 0x000456 (executed once at startup) */
AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* ??? - check code at 0x000524 (executed once at startup) */
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE(m_spriteram) AM_SIZE(m_spriteram_size)
- AM_RANGE(0x308000, 0x30800d) AM_READ_LEGACY(sderby_input_r)
- AM_RANGE(0x308008, 0x308009) AM_WRITE_LEGACY(sderby_out_w) /* output port */
+ AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
+ AM_RANGE(0x308008, 0x308009) AM_WRITE(sderby_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x380000, 0x380fff) AM_WRITE_LEGACY(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x500001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */
@@ -321,8 +321,8 @@ static ADDRESS_MAP_START( spacewin_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x10400e, 0x10400f) AM_WRITENOP /* seems another video register. constantly used */
AM_RANGE(0x104010, 0x105fff) AM_WRITENOP /* unknown */
AM_RANGE(0x300000, 0x300001) AM_WRITENOP /* unknown... write 0x01 in game, and 0x00 on reset */
- AM_RANGE(0x308000, 0x30800d) AM_READ_LEGACY(sderby_input_r)
- AM_RANGE(0x308008, 0x308009) AM_WRITE_LEGACY(scmatto_out_w) /* output port */
+ AM_RANGE(0x308000, 0x30800d) AM_READ(sderby_input_r)
+ AM_RANGE(0x308008, 0x308009) AM_WRITE(scmatto_out_w) /* output port */
AM_RANGE(0x30800e, 0x30800f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x380000, 0x380fff) AM_WRITE_LEGACY(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd00000, 0xd001ff) AM_RAM
@@ -341,11 +341,11 @@ static ADDRESS_MAP_START( roulette_map, AS_PROGRAM, 16, sderby_state )
AM_RANGE(0x504000, 0x50400b) AM_RAM_WRITE_LEGACY(sderby_scroll_w)
AM_RANGE(0x50400e, 0x50400f) AM_WRITENOP
- AM_RANGE(0x708000, 0x708009) AM_READ_LEGACY(roulette_input_r)
- AM_RANGE(0x708006, 0x708007) AM_WRITE_LEGACY(roulette_out_w)
+ AM_RANGE(0x708000, 0x708009) AM_READ(roulette_input_r)
+ AM_RANGE(0x708006, 0x708007) AM_WRITE(roulette_out_w)
AM_RANGE(0x70800a, 0x70800b) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x70800c, 0x70800d) AM_WRITENOP /* watchdog?? (0x0003) */
- AM_RANGE(0x70800e, 0x70800f) AM_READWRITE_LEGACY(rprot_r, rprot_w) /* MCU communication */
+ AM_RANGE(0x70800e, 0x70800f) AM_READWRITE(rprot_r, rprot_w) /* MCU communication */
AM_RANGE(0x780000, 0x780fff) AM_WRITE_LEGACY(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xff0000, 0xff07ff) AM_RAM AM_SHARE("nvram")
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index 843e2f05276..5915959791b 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -179,16 +179,15 @@ static offs_t decrypt_offset(address_space *space, offs_t offset)
return (offset & 0xff00) | (*state->m_decrypt)(pc, space->read_byte(pc + 1));
}
-static WRITE8_HANDLER( mainram_w )
+WRITE8_MEMBER(segag80r_state::mainram_w)
{
- segag80r_state *state = space->machine().driver_data<segag80r_state>();
- state->m_mainram[decrypt_offset(space, offset)] = data;
+ m_mainram[decrypt_offset(&space, offset)] = data;
}
-static WRITE8_HANDLER( vidram_w ) { segag80r_videoram_w(space, decrypt_offset(space, offset), data); }
-static WRITE8_HANDLER( monsterb_vidram_w ) { monsterb_videoram_w(space, decrypt_offset(space, offset), data); }
-static WRITE8_HANDLER( pignewt_vidram_w ) { pignewt_videoram_w(space, decrypt_offset(space, offset), data); }
-static WRITE8_HANDLER( sindbadm_vidram_w ) { sindbadm_videoram_w(space, decrypt_offset(space, offset), data); }
+WRITE8_MEMBER(segag80r_state::vidram_w){ segag80r_videoram_w(&space, decrypt_offset(&space, offset), data); }
+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); }
@@ -208,39 +207,39 @@ INLINE UINT8 demangle(UINT8 d7d6, UINT8 d5d4, UINT8 d3d2, UINT8 d1d0)
}
-static READ8_HANDLER( mangled_ports_r )
+READ8_MEMBER(segag80r_state::mangled_ports_r)
{
/* The input ports are odd. Neighboring lines are read via a mux chip */
/* one bit at a time. This means that one bank of DIP switches will be */
/* read as two bits from each of 4 ports. For this reason, the input */
/* ports have been organized logically, and are demangled at runtime. */
/* 4 input ports each provide 8 bits of information. */
- UINT8 d7d6 = input_port_read(space->machine(), "D7D6");
- UINT8 d5d4 = input_port_read(space->machine(), "D5D4");
- UINT8 d3d2 = input_port_read(space->machine(), "D3D2");
- UINT8 d1d0 = input_port_read(space->machine(), "D1D0");
+ UINT8 d7d6 = input_port_read(machine(), "D7D6");
+ UINT8 d5d4 = input_port_read(machine(), "D5D4");
+ UINT8 d3d2 = input_port_read(machine(), "D3D2");
+ UINT8 d1d0 = input_port_read(machine(), "D1D0");
int shift = offset & 3;
return demangle(d7d6 >> shift, d5d4 >> shift, d3d2 >> shift, d1d0 >> shift);
}
-static READ8_HANDLER( spaceod_mangled_ports_r )
+READ8_MEMBER(segag80r_state::spaceod_mangled_ports_r)
{
/* Space Odyssey has different (and conflicting) wiring for upright */
/* versus cocktail cabinets; we fix this here. The input ports are */
/* coded for cocktail mode; for upright mode, we manually shuffle the */
/* bits around. */
- UINT8 d7d6 = input_port_read(space->machine(), "D7D6");
- UINT8 d5d4 = input_port_read(space->machine(), "D5D4");
- UINT8 d3d2 = input_port_read(space->machine(), "D3D2");
- UINT8 d1d0 = input_port_read(space->machine(), "D1D0");
+ UINT8 d7d6 = input_port_read(machine(), "D7D6");
+ UINT8 d5d4 = input_port_read(machine(), "D5D4");
+ UINT8 d3d2 = input_port_read(machine(), "D3D2");
+ UINT8 d1d0 = input_port_read(machine(), "D1D0");
int shift = offset & 3;
/* tweak bits for the upright case */
UINT8 upright = d3d2 & 0x04;
if (upright)
{
- UINT8 fc = input_port_read(space->machine(), "FC");
+ UINT8 fc = input_port_read(machine(), "FC");
d7d6 |= 0x60;
d5d4 = (d5d4 & ~0x1c) |
((~fc & 0x20) >> 3) | /* IPT_BUTTON2 */
@@ -252,10 +251,10 @@ static READ8_HANDLER( spaceod_mangled_ports_r )
}
-static READ8_HANDLER( spaceod_port_fc_r )
+READ8_MEMBER(segag80r_state::spaceod_port_fc_r)
{
- UINT8 upright = input_port_read(space->machine(), "D3D2") & 0x04;
- UINT8 fc = input_port_read(space->machine(), "FC");
+ UINT8 upright = input_port_read(machine(), "D3D2") & 0x04;
+ UINT8 fc = input_port_read(machine(), "FC");
/* tweak bits for the upright case */
if (upright)
@@ -269,10 +268,10 @@ static READ8_HANDLER( spaceod_port_fc_r )
}
-static WRITE8_HANDLER( coin_count_w )
+WRITE8_MEMBER(segag80r_state::coin_count_w)
{
- coin_counter_w(space->machine(), 0, (data >> 7) & 1);
- coin_counter_w(space->machine(), 1, (data >> 6) & 1);
+ coin_counter_w(machine(), 0, (data >> 7) & 1);
+ coin_counter_w(machine(), 1, (data >> 6) & 1);
}
@@ -337,8 +336,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, segag80r_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM /* CPU board ROM */
AM_RANGE(0x0800, 0x7fff) AM_ROM /* PROM board ROM area */
AM_RANGE(0x8000, 0xbfff) AM_ROM /* PROM board ROM area */
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(mainram_w) AM_BASE(m_mainram)
- AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE_LEGACY(vidram_w) AM_BASE(m_videoram)
+ AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(mainram_w) AM_BASE(m_mainram)
+ AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE(vidram_w) AM_BASE(m_videoram)
ADDRESS_MAP_END
@@ -346,8 +345,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, segag80r_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xbe, 0xbf) AM_READWRITE_LEGACY(segag80r_video_port_r, segag80r_video_port_w)
- AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0xf8, 0xfb) AM_READ_LEGACY(mangled_ports_r)
+ AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE(coin_count_w)
+ AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r)
AM_RANGE(0xfc, 0xfc) AM_READ_PORT("FC")
ADDRESS_MAP_END
@@ -356,8 +355,8 @@ static ADDRESS_MAP_START( main_ppi8255_portmap, AS_IO, 8, segag80r_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w)
AM_RANGE(0xbe, 0xbf) AM_READWRITE_LEGACY(segag80r_video_port_r, segag80r_video_port_w)
- AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0xf8, 0xfb) AM_READ_LEGACY(mangled_ports_r)
+ AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE(coin_count_w)
+ AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r)
AM_RANGE(0xfc, 0xfc) AM_READ_PORT("FC")
ADDRESS_MAP_END
@@ -366,7 +365,7 @@ static ADDRESS_MAP_START( sindbadm_portmap, AS_IO, 8, segag80r_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x42, 0x43) AM_READWRITE_LEGACY(segag80r_video_port_r, segag80r_video_port_w)
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w)
- AM_RANGE(0xf8, 0xfb) AM_READ_LEGACY(mangled_ports_r)
+ AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r)
ADDRESS_MAP_END
@@ -1477,8 +1476,8 @@ static DRIVER_INIT( spaceod )
iospace->install_legacy_write_handler(0x0e, 0x0f, FUNC(spaceod_sound_w));
/* install our wacky mangled ports */
- iospace->install_legacy_read_handler(0xf8, 0xfb, FUNC(spaceod_mangled_ports_r));
- iospace->install_legacy_read_handler(0xfc, 0xfc, FUNC(spaceod_port_fc_r));
+ iospace->install_read_handler(0xf8, 0xfb, read8_delegate(FUNC(segag80r_state::spaceod_mangled_ports_r),state));
+ iospace->install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80r_state::spaceod_port_fc_r),state));
}
@@ -1497,7 +1496,7 @@ static DRIVER_INIT( monsterb )
/* install background board handlers */
iospace->install_legacy_write_handler(0xb8, 0xbd, FUNC(monsterb_back_port_w));
- pgmspace->install_legacy_write_handler(0xe000, 0xffff, FUNC(monsterb_vidram_w));
+ pgmspace->install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::monsterb_vidram_w),state));
}
@@ -1518,7 +1517,7 @@ static DRIVER_INIT( monster2 )
/* install background board handlers */
iospace->install_legacy_write_handler(0xb4, 0xb5, FUNC(pignewt_back_color_w));
iospace->install_legacy_write_handler(0xb8, 0xbd, FUNC(pignewt_back_port_w));
- pgmspace->install_legacy_write_handler(0xe000, 0xffff, FUNC(pignewt_vidram_w));
+ pgmspace->install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),state));
}
@@ -1539,7 +1538,7 @@ static DRIVER_INIT( pignewt )
/* install background board handlers */
iospace->install_legacy_write_handler(0xb4, 0xb5, FUNC(pignewt_back_color_w));
iospace->install_legacy_write_handler(0xb8, 0xbd, FUNC(pignewt_back_port_w));
- pgmspace->install_legacy_write_handler(0xe000, 0xffff, FUNC(pignewt_vidram_w));
+ pgmspace->install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::pignewt_vidram_w),state));
/* install Universal sound board */
iospace->install_legacy_readwrite_handler(*usbsnd, 0x3f, 0x3f, FUNC(sega_usb_status_r), FUNC(sega_usb_data_w));
@@ -1562,7 +1561,7 @@ static DRIVER_INIT( sindbadm )
/* install background board handlers */
iospace->install_legacy_write_handler(0x40, 0x41, FUNC(sindbadm_back_port_w));
- pgmspace->install_legacy_write_handler(0xe000, 0xffff, FUNC(sindbadm_vidram_w));
+ pgmspace->install_write_handler(0xe000, 0xffff, write8_delegate(FUNC(segag80r_state::sindbadm_vidram_w),state));
}
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index f1b877ab8b2..db8dec825b2 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -198,17 +198,15 @@ static offs_t decrypt_offset(address_space *space, offs_t offset)
return (offset & 0xff00) | (*state->m_decrypt)(pc, space->read_byte(pc + 1));
}
-static WRITE8_HANDLER( mainram_w )
+WRITE8_MEMBER(segag80v_state::mainram_w)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
- state->m_mainram[decrypt_offset(space, offset)] = data;
+ 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); }
-static WRITE8_HANDLER( vectorram_w )
+WRITE8_MEMBER(segag80v_state::vectorram_w)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
- state->m_vectorram[decrypt_offset(space, offset)] = data;
+ m_vectorram[decrypt_offset(&space, offset)] = data;
}
@@ -228,17 +226,17 @@ INLINE UINT8 demangle(UINT8 d7d6, UINT8 d5d4, UINT8 d3d2, UINT8 d1d0)
}
-static READ8_HANDLER( mangled_ports_r )
+READ8_MEMBER(segag80v_state::mangled_ports_r)
{
/* The input ports are odd. Neighboring lines are read via a mux chip */
/* one bit at a time. This means that one bank of DIP switches will be */
/* read as two bits from each of 4 ports. For this reason, the input */
/* ports have been organized logically, and are demangled at runtime. */
/* 4 input ports each provide 8 bits of information. */
- UINT8 d7d6 = input_port_read(space->machine(), "D7D6");
- UINT8 d5d4 = input_port_read(space->machine(), "D5D4");
- UINT8 d3d2 = input_port_read(space->machine(), "D3D2");
- UINT8 d1d0 = input_port_read(space->machine(), "D1D0");
+ UINT8 d7d6 = input_port_read(machine(), "D7D6");
+ UINT8 d5d4 = input_port_read(machine(), "D5D4");
+ UINT8 d3d2 = input_port_read(machine(), "D3D2");
+ UINT8 d1d0 = input_port_read(machine(), "D1D0");
int shift = offset & 3;
return demangle(d7d6 >> shift, d5d4 >> shift, d3d2 >> shift, d1d0 >> shift);
}
@@ -251,20 +249,18 @@ static READ8_HANDLER( mangled_ports_r )
*
*************************************/
-static WRITE8_HANDLER( spinner_select_w )
+WRITE8_MEMBER(segag80v_state::spinner_select_w)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
- state->m_spinner_select = data;
+ m_spinner_select = data;
}
-static READ8_HANDLER( spinner_input_r )
+READ8_MEMBER(segag80v_state::spinner_input_r)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
INT8 delta;
- if (state->m_spinner_select & 1)
- return input_port_read(space->machine(), "FC");
+ if (m_spinner_select & 1)
+ return input_port_read(machine(), "FC");
/*
* The values returned are always increasing. That is, regardless of whether
@@ -274,13 +270,13 @@ static READ8_HANDLER( spinner_input_r )
*/
/* I'm sure this can be further simplified ;-) BW */
- delta = input_port_read(space->machine(), "SPINNER");
+ delta = input_port_read(machine(), "SPINNER");
if (delta != 0)
{
- state->m_spinner_sign = (delta >> 7) & 1;
- state->m_spinner_count += abs(delta);
+ m_spinner_sign = (delta >> 7) & 1;
+ m_spinner_count += abs(delta);
}
- return ~((state->m_spinner_count << 1) | state->m_spinner_sign);
+ return ~((m_spinner_count << 1) | m_spinner_sign);
}
@@ -297,24 +293,23 @@ static CUSTOM_INPUT( elim4_joint_coin_r )
}
-static READ8_HANDLER( elim4_input_r )
+READ8_MEMBER(segag80v_state::elim4_input_r)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
UINT8 result = 0;
/* bit 3 enables demux */
- if (state->m_spinner_select & 8)
+ if (m_spinner_select & 8)
{
/* Demux bit 0-2. Only 6 and 7 are connected */
- switch (state->m_spinner_select & 7)
+ switch (m_spinner_select & 7)
{
case 6:
/* player 3 & 4 controls */
- result = input_port_read(space->machine(), "FC");
+ result = input_port_read(machine(), "FC");
break;
case 7:
/* the 4 coin inputs */
- result = input_port_read(space->machine(), "COINS");
+ result = input_port_read(machine(), "COINS");
break;
}
}
@@ -331,20 +326,18 @@ static READ8_HANDLER( elim4_input_r )
*
*************************************/
-static WRITE8_HANDLER( multiply_w )
+WRITE8_MEMBER(segag80v_state::multiply_w)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
- state->m_mult_data[offset] = data;
+ m_mult_data[offset] = data;
if (offset == 1)
- state->m_mult_result = state->m_mult_data[0] * state->m_mult_data[1];
+ m_mult_result = m_mult_data[0] * m_mult_data[1];
}
-static READ8_HANDLER( multiply_r )
+READ8_MEMBER(segag80v_state::multiply_r)
{
- segag80v_state *state = space->machine().driver_data<segag80v_state>();
- UINT8 result = state->m_mult_result;
- state->m_mult_result >>= 8;
+ UINT8 result = m_mult_result;
+ m_mult_result >>= 8;
return result;
}
@@ -356,19 +349,19 @@ static READ8_HANDLER( multiply_r )
*
*************************************/
-static WRITE8_HANDLER( coin_count_w )
+WRITE8_MEMBER(segag80v_state::coin_count_w)
{
- coin_counter_w(space->machine(), 0, (data >> 7) & 1);
- coin_counter_w(space->machine(), 1, (data >> 6) & 1);
+ coin_counter_w(machine(), 0, (data >> 7) & 1);
+ coin_counter_w(machine(), 1, (data >> 6) & 1);
}
-static WRITE8_HANDLER( unknown_w )
+WRITE8_MEMBER(segag80v_state::unknown_w)
{
/* writing an 0x04 here enables interrupts */
/* some games write 0x00/0x01 here as well */
if (data != 0x00 && data != 0x01 && data != 0x04)
- mame_printf_debug("%04X:unknown_w = %02X\n", cpu_get_pc(&space->device()), data);
+ mame_printf_debug("%04X:unknown_w = %02X\n", cpu_get_pc(&space.device()), data);
}
@@ -383,8 +376,8 @@ static WRITE8_HANDLER( unknown_w )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, segag80v_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM /* CPU board ROM */
AM_RANGE(0x0800, 0xbfff) AM_ROM /* PROM board ROM area */
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(mainram_w) AM_BASE(m_mainram)
- AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE_LEGACY(vectorram_w) AM_BASE(m_vectorram) AM_SIZE(m_vectorram_size)
+ AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(mainram_w) AM_BASE(m_mainram)
+ AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE(vectorram_w) AM_BASE(m_vectorram) AM_SIZE(m_vectorram_size)
ADDRESS_MAP_END
@@ -392,12 +385,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_portmap, AS_IO, 8, segag80v_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xbc, 0xbc) /* AM_READ ??? */
- AM_RANGE(0xbd, 0xbe) AM_WRITE_LEGACY(multiply_w)
- AM_RANGE(0xbe, 0xbe) AM_READ_LEGACY(multiply_r)
- AM_RANGE(0xbf, 0xbf) AM_WRITE_LEGACY(unknown_w)
+ AM_RANGE(0xbd, 0xbe) AM_WRITE(multiply_w)
+ AM_RANGE(0xbe, 0xbe) AM_READ(multiply_r)
+ AM_RANGE(0xbf, 0xbf) AM_WRITE(unknown_w)
- AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE_LEGACY(coin_count_w)
- AM_RANGE(0xf8, 0xfb) AM_READ_LEGACY(mangled_ports_r)
+ AM_RANGE(0xf9, 0xf9) AM_MIRROR(0x04) AM_WRITE(coin_count_w)
+ AM_RANGE(0xf8, 0xfb) AM_READ(mangled_ports_r)
AM_RANGE(0xfc, 0xfc) AM_READ_PORT("FC")
ADDRESS_MAP_END
@@ -1324,8 +1317,8 @@ static DRIVER_INIT( elim4 )
iospace->install_legacy_write_handler(0x3f, 0x3f, FUNC(elim2_sh_w));
/* configure inputs */
- iospace->install_legacy_write_handler(0xf8, 0xf8, FUNC(spinner_select_w));
- iospace->install_legacy_read_handler(0xfc, 0xfc, FUNC(elim4_input_r));
+ iospace->install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),state));
+ iospace->install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::elim4_input_r),state));
}
@@ -1364,8 +1357,8 @@ static DRIVER_INIT( zektor )
iospace->install_legacy_write_handler(0x3f, 0x3f, FUNC(zektor2_sh_w));
/* configure inputs */
- iospace->install_legacy_write_handler(0xf8, 0xf8, FUNC(spinner_select_w));
- iospace->install_legacy_read_handler(0xfc, 0xfc, FUNC(spinner_input_r));
+ iospace->install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),state));
+ iospace->install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),state));
}
@@ -1384,8 +1377,8 @@ static DRIVER_INIT( tacscan )
pgmspace->install_legacy_readwrite_handler(*state->m_usb, 0xd000, 0xdfff, FUNC(sega_usb_ram_r), FUNC(usb_ram_w));
/* configure inputs */
- iospace->install_legacy_write_handler(0xf8, 0xf8, FUNC(spinner_select_w));
- iospace->install_legacy_read_handler(0xfc, 0xfc, FUNC(spinner_input_r));
+ iospace->install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),state));
+ iospace->install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),state));
}
@@ -1407,8 +1400,8 @@ static DRIVER_INIT( startrek )
pgmspace->install_legacy_readwrite_handler(*state->m_usb, 0xd000, 0xdfff, FUNC(sega_usb_ram_r), FUNC(usb_ram_w));
/* configure inputs */
- iospace->install_legacy_write_handler(0xf8, 0xf8, FUNC(spinner_select_w));
- iospace->install_legacy_read_handler(0xfc, 0xfc, FUNC(spinner_input_r));
+ iospace->install_write_handler(0xf8, 0xf8, write8_delegate(FUNC(segag80v_state::spinner_select_w),state));
+ iospace->install_read_handler(0xfc, 0xfc, read8_delegate(FUNC(segag80v_state::spinner_input_r),state));
}
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index 9994bbc39c4..2df5db39155 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -97,9 +97,9 @@ static INTERRUPT_GEN( senjyo_interrupt )
else state->m_int_delay_kludge--;
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(senjyo_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
static WRITE8_DEVICE_HANDLER( sound_cmd_w )
@@ -112,7 +112,7 @@ static WRITE8_DEVICE_HANDLER( sound_cmd_w )
z80pio_astb_w(device, 1);
}
-static WRITE8_HANDLER( senjyo_paletteram_w )
+WRITE8_MEMBER(senjyo_state::senjyo_paletteram_w)
{
int r = (data << 2) & 0xC;
int g = (data ) & 0xC;
@@ -123,8 +123,8 @@ static WRITE8_HANDLER( senjyo_paletteram_w )
int gg = g|((g!=0)?i:0);
int bb = b|((b!=0)?i:0);
- space->machine().generic.paletteram.u8[offset] = data;
- palette_set_color_rgb(space->machine(), offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) );
+ machine().generic.paletteram.u8[offset] = data;
+ palette_set_color_rgb(machine(), offset, pal4bit(rr), pal4bit(gg), pal4bit(bb) );
}
static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
@@ -133,7 +133,7 @@ static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE_LEGACY(senjyo_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE_LEGACY(senjyo_fgcolorram_w) AM_BASE(m_fgcolorram)
AM_RANGE(0x9800, 0x987f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE_LEGACY(senjyo_paletteram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE(senjyo_paletteram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x9e00, 0x9e1f) AM_RAM AM_BASE(m_fgscroll)
AM_RANGE(0x9e20, 0x9e21) AM_RAM AM_BASE(m_scrolly3)
/* AM_RANGE(0x9e22, 0x9e23) height of the layer (Senjyo only, fixed at 0x380) */
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( senjyo_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE_LEGACY(senjyo_bg2videoram_w) AM_BASE(m_bg2videoram)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE_LEGACY(senjyo_bg1videoram_w) AM_BASE(m_bg1videoram)
AM_RANGE(0xb800, 0xbbff) AM_RAM AM_BASE(m_radarram)
- AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") AM_WRITE_LEGACY(flip_screen_w)
+ 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)
@@ -181,20 +181,18 @@ ADDRESS_MAP_END
/* For the bootleg */
/* are scroll registers 1+2 linked on the bootleg?, only one copy is written */
-static WRITE8_HANDLER(starforb_scrolly2)
+WRITE8_MEMBER(senjyo_state::starforb_scrolly2)
{
- senjyo_state *state = space->machine().driver_data<senjyo_state>();
- state->m_scrolly2[offset] = data;
- state->m_scrolly1[offset] = data;
+ m_scrolly2[offset] = data;
+ m_scrolly1[offset] = data;
}
-static WRITE8_HANDLER(starforb_scrollx2)
+WRITE8_MEMBER(senjyo_state::starforb_scrollx2)
{
- senjyo_state *state = space->machine().driver_data<senjyo_state>();
- state->m_scrollx2[offset] = data;
- state->m_scrollx1[offset] = data;
+ m_scrollx2[offset] = data;
+ m_scrollx1[offset] = data;
}
static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8, senjyo_state )
@@ -203,19 +201,19 @@ static ADDRESS_MAP_START( starforb_map, AS_PROGRAM, 8, senjyo_state )
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE_LEGACY(senjyo_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE_LEGACY(senjyo_fgcolorram_w) AM_BASE(m_fgcolorram)
AM_RANGE(0x9800, 0x987f) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE_LEGACY(senjyo_paletteram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x9c00, 0x9dff) AM_RAM_WRITE(senjyo_paletteram_w) AM_BASE_GENERIC(paletteram)
/* The format / use of the ram here is different on the bootleg */
AM_RANGE(0x9e20, 0x9e21) AM_RAM AM_BASE(m_scrolly3)
AM_RANGE(0x9e25, 0x9e25) AM_RAM AM_BASE(m_scrollx3)
- AM_RANGE(0x9e30, 0x9e31) AM_RAM_WRITE_LEGACY(starforb_scrolly2) AM_BASE(m_scrolly2) // ok
- AM_RANGE(0x9e35, 0x9e35) AM_RAM_WRITE_LEGACY(starforb_scrollx2) AM_BASE(m_scrollx2) // ok
+ AM_RANGE(0x9e30, 0x9e31) AM_RAM_WRITE(starforb_scrolly2) AM_BASE(m_scrolly2) // ok
+ AM_RANGE(0x9e35, 0x9e35) AM_RAM_WRITE(starforb_scrollx2) AM_BASE(m_scrollx2) // ok
AM_RANGE(0x9e00, 0x9e3f) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM_WRITE_LEGACY(senjyo_bg3videoram_w) AM_BASE(m_bg3videoram)
AM_RANGE(0xa800, 0xafff) AM_RAM_WRITE_LEGACY(senjyo_bg2videoram_w) AM_BASE(m_bg2videoram)
AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE_LEGACY(senjyo_bg1videoram_w) AM_BASE(m_bg1videoram)
AM_RANGE(0xb800, 0xbbff) AM_RAM AM_BASE(m_radarram)
- AM_RANGE(0xd000, 0xd000) AM_READ_PORT("P1") AM_WRITE_LEGACY(flip_screen_w)
+ 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)
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index 8145df02a54..61c29fc235c 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -20,33 +20,32 @@
#include "sound/msm5205.h"
#include "includes/sf.h"
-static READ16_HANDLER( dummy_r )
+READ16_MEMBER(sf_state::dummy_r)
{
return 0xffff;
}
-static WRITE16_HANDLER( sf_coin_w )
+WRITE16_MEMBER(sf_state::sf_coin_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
- coin_lockout_w(space->machine(), 0, ~data & 0x10);
- coin_lockout_w(space->machine(), 1, ~data & 0x20);
- coin_lockout_w(space->machine(), 2, ~data & 0x40); /* is there a third coin input? */
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
+ coin_lockout_w(machine(), 0, ~data & 0x10);
+ coin_lockout_w(machine(), 1, ~data & 0x20);
+ coin_lockout_w(machine(), 2, ~data & 0x40); /* is there a third coin input? */
}
}
-static WRITE16_HANDLER( soundcmd_w )
+WRITE16_MEMBER(sf_state::soundcmd_w)
{
- sf_state *state = space->machine().driver_data<sf_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -60,7 +59,7 @@ static void write_dword( address_space *space, offs_t offset, UINT32 data )
space->write_word(offset + 2, data);
}
-static WRITE16_HANDLER( protection_w )
+WRITE16_MEMBER(sf_state::protection_w)
{
static const int maplist[4][10] = {
{ 1, 0, 3, 2, 4, 5, 6, 7, 8, 9 },
@@ -71,10 +70,10 @@ static WRITE16_HANDLER( protection_w )
int map;
map = maplist
- [space->read_byte(0xffc006)]
- [(space->read_byte(0xffc003) << 1) + (space->read_word(0xffc004) >> 8)];
+ [space.read_byte(0xffc006)]
+ [(space.read_byte(0xffc003) << 1) + (space.read_word(0xffc004) >> 8)];
- switch (space->read_byte(0xffc684))
+ switch (space.read_byte(0xffc684))
{
case 1:
{
@@ -82,21 +81,21 @@ static WRITE16_HANDLER( protection_w )
base = 0x1b6e8 + 0x300e * map;
- write_dword(space, 0xffc01c, 0x16bfc + 0x270 * map);
- write_dword(space, 0xffc020, base + 0x80);
- write_dword(space, 0xffc024, base);
- write_dword(space, 0xffc028, base + 0x86);
- write_dword(space, 0xffc02c, base + 0x8e);
- write_dword(space, 0xffc030, base + 0x20e);
- write_dword(space, 0xffc034, base + 0x30e);
- write_dword(space, 0xffc038, base + 0x38e);
- write_dword(space, 0xffc03c, base + 0x40e);
- write_dword(space, 0xffc040, base + 0x80e);
- write_dword(space, 0xffc044, base + 0xc0e);
- write_dword(space, 0xffc048, base + 0x180e);
- write_dword(space, 0xffc04c, base + 0x240e);
- write_dword(space, 0xffc050, 0x19548 + 0x60 * map);
- write_dword(space, 0xffc054, 0x19578 + 0x60 * map);
+ write_dword(&space, 0xffc01c, 0x16bfc + 0x270 * map);
+ write_dword(&space, 0xffc020, base + 0x80);
+ write_dword(&space, 0xffc024, base);
+ write_dword(&space, 0xffc028, base + 0x86);
+ write_dword(&space, 0xffc02c, base + 0x8e);
+ write_dword(&space, 0xffc030, base + 0x20e);
+ write_dword(&space, 0xffc034, base + 0x30e);
+ write_dword(&space, 0xffc038, base + 0x38e);
+ write_dword(&space, 0xffc03c, base + 0x40e);
+ write_dword(&space, 0xffc040, base + 0x80e);
+ write_dword(&space, 0xffc044, base + 0xc0e);
+ write_dword(&space, 0xffc048, base + 0x180e);
+ write_dword(&space, 0xffc04c, base + 0x240e);
+ write_dword(&space, 0xffc050, 0x19548 + 0x60 * map);
+ write_dword(&space, 0xffc054, 0x19578 + 0x60 * map);
break;
}
case 2:
@@ -111,24 +110,24 @@ static WRITE16_HANDLER( protection_w )
int d1 = delta1[map] + 0xc0;
int d2 = delta2[map];
- space->write_word(0xffc680, d1);
- space->write_word(0xffc682, d2);
- space->write_word(0xffc00c, 0xc0);
- space->write_word(0xffc00e, 0);
+ space.write_word(0xffc680, d1);
+ space.write_word(0xffc682, d2);
+ space.write_word(0xffc00c, 0xc0);
+ space.write_word(0xffc00e, 0);
- sf_fg_scroll_w(space, 0, d1, 0xffff);
- sf_bg_scroll_w(space, 0, d2, 0xffff);
+ sf_fg_scroll_w(&space, 0, d1, 0xffff);
+ sf_bg_scroll_w(&space, 0, d2, 0xffff);
break;
}
case 4:
{
- int pos = space->read_byte(0xffc010);
+ int pos = space.read_byte(0xffc010);
pos = (pos + 1) & 3;
- space->write_byte(0xffc010, pos);
+ space.write_byte(0xffc010, pos);
if(!pos)
{
- int d1 = space->read_word(0xffc682);
- int off = space->read_word(0xffc00e);
+ int d1 = space.read_word(0xffc682);
+ int off = space.read_word(0xffc00e);
if (off!=512)
{
off++;
@@ -139,16 +138,16 @@ static WRITE16_HANDLER( protection_w )
off = 0;
d1 -= 512;
}
- space->write_word(0xffc682, d1);
- space->write_word(0xffc00e, off);
- sf_bg_scroll_w(space, 0, d1, 0xffff);
+ space.write_word(0xffc682, d1);
+ space.write_word(0xffc00e, off);
+ sf_bg_scroll_w(&space, 0, d1, 0xffff);
}
break;
}
default:
{
- logerror("Write protection at %06x (%04x)\n", cpu_get_pc(&space->device()), data & 0xffff);
- logerror("*** Unknown protection %d\n", space->read_byte(0xffc684));
+ logerror("Write protection at %06x (%04x)\n", cpu_get_pc(&space.device()), data & 0xffff);
+ logerror("*** Unknown protection %d\n", space.read_byte(0xffc684));
break;
}
}
@@ -161,20 +160,20 @@ static WRITE16_HANDLER( protection_w )
static const int scale[8] = { 0x00, 0x40, 0xe0, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe };
-static READ16_HANDLER( button1_r )
+READ16_MEMBER(sf_state::button1_r)
{
- return (scale[input_port_read(space->machine(), "IN3")] << 8) | scale[input_port_read(space->machine(), "IN1")];
+ return (scale[input_port_read(machine(), "IN3")] << 8) | scale[input_port_read(machine(), "IN1")];
}
-static READ16_HANDLER( button2_r )
+READ16_MEMBER(sf_state::button2_r)
{
- return (scale[input_port_read(space->machine(), "IN4")] << 8) | scale[input_port_read(space->machine(), "IN2")];
+ return (scale[input_port_read(machine(), "IN4")] << 8) | scale[input_port_read(machine(), "IN2")];
}
-static WRITE8_HANDLER( sound2_bank_w )
+WRITE8_MEMBER(sf_state::sound2_bank_w)
{
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("audio2")->base() + 0x8000 * (data + 1));
+ memory_set_bankptr(machine(), "bank1", machine().region("audio2")->base() + 0x8000 * (data + 1));
}
@@ -195,18 +194,18 @@ static ADDRESS_MAP_START( sf_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("COINS")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN0")
- AM_RANGE(0xc00004, 0xc00005) AM_READ_LEGACY(button1_r)
- AM_RANGE(0xc00006, 0xc00007) AM_READ_LEGACY(button2_r)
+ AM_RANGE(0xc00004, 0xc00005) AM_READ(button1_r)
+ AM_RANGE(0xc00006, 0xc00007) AM_READ(button2_r)
AM_RANGE(0xc00008, 0xc00009) AM_READ_PORT("DSW1")
AM_RANGE(0xc0000a, 0xc0000b) AM_READ_PORT("DSW2")
AM_RANGE(0xc0000c, 0xc0000d) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc0000e, 0xc0000f) AM_READ_LEGACY(dummy_r)
- AM_RANGE(0xc00010, 0xc00011) AM_WRITE_LEGACY(sf_coin_w)
+ AM_RANGE(0xc0000e, 0xc0000f) AM_READ(dummy_r)
+ AM_RANGE(0xc00010, 0xc00011) AM_WRITE(sf_coin_w)
AM_RANGE(0xc00014, 0xc00015) AM_WRITE_LEGACY(sf_fg_scroll_w)
AM_RANGE(0xc00018, 0xc00019) AM_WRITE_LEGACY(sf_bg_scroll_w)
AM_RANGE(0xc0001a, 0xc0001b) AM_WRITE_LEGACY(sf_gfxctrl_w)
- AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE_LEGACY(soundcmd_w)
-// AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE_LEGACY(protection_w)
+ AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE(soundcmd_w)
+// AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w)
AM_RANGE(0xff8000, 0xffdfff) AM_RAM
AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE(m_objectram)
ADDRESS_MAP_END
@@ -217,18 +216,18 @@ static ADDRESS_MAP_START( sfus_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1")
- AM_RANGE(0xc00004, 0xc00005) AM_READ_LEGACY(dummy_r)
- AM_RANGE(0xc00006, 0xc00007) AM_READ_LEGACY(dummy_r)
+ AM_RANGE(0xc00004, 0xc00005) AM_READ(dummy_r)
+ AM_RANGE(0xc00006, 0xc00007) AM_READ(dummy_r)
AM_RANGE(0xc00008, 0xc00009) AM_READ_PORT("DSW1")
AM_RANGE(0xc0000a, 0xc0000b) AM_READ_PORT("DSW2")
AM_RANGE(0xc0000c, 0xc0000d) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc0000e, 0xc0000f) AM_READ_LEGACY(dummy_r)
- AM_RANGE(0xc00010, 0xc00011) AM_WRITE_LEGACY(sf_coin_w)
+ AM_RANGE(0xc0000e, 0xc0000f) AM_READ(dummy_r)
+ AM_RANGE(0xc00010, 0xc00011) AM_WRITE(sf_coin_w)
AM_RANGE(0xc00014, 0xc00015) AM_WRITE_LEGACY(sf_fg_scroll_w)
AM_RANGE(0xc00018, 0xc00019) AM_WRITE_LEGACY(sf_bg_scroll_w)
AM_RANGE(0xc0001a, 0xc0001b) AM_WRITE_LEGACY(sf_gfxctrl_w)
- AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE_LEGACY(soundcmd_w)
-// AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE_LEGACY(protection_w)
+ AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE(soundcmd_w)
+// AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w)
AM_RANGE(0xff8000, 0xffdfff) AM_RAM
AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE(m_objectram)
ADDRESS_MAP_END
@@ -240,17 +239,17 @@ static ADDRESS_MAP_START( sfjp_map, AS_PROGRAM, 16, sf_state )
AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("COINS")
AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1")
AM_RANGE(0xc00004, 0xc00005) AM_READ_PORT("P2")
- AM_RANGE(0xc00006, 0xc00007) AM_READ_LEGACY(dummy_r)
+ AM_RANGE(0xc00006, 0xc00007) AM_READ(dummy_r)
AM_RANGE(0xc00008, 0xc00009) AM_READ_PORT("DSW1")
AM_RANGE(0xc0000a, 0xc0000b) AM_READ_PORT("DSW2")
AM_RANGE(0xc0000c, 0xc0000d) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xc0000e, 0xc0000f) AM_READ_LEGACY(dummy_r)
- AM_RANGE(0xc00010, 0xc00011) AM_WRITE_LEGACY(sf_coin_w)
+ AM_RANGE(0xc0000e, 0xc0000f) AM_READ(dummy_r)
+ AM_RANGE(0xc00010, 0xc00011) AM_WRITE(sf_coin_w)
AM_RANGE(0xc00014, 0xc00015) AM_WRITE_LEGACY(sf_fg_scroll_w)
AM_RANGE(0xc00018, 0xc00019) AM_WRITE_LEGACY(sf_bg_scroll_w)
AM_RANGE(0xc0001a, 0xc0001b) AM_WRITE_LEGACY(sf_gfxctrl_w)
- AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE_LEGACY(soundcmd_w)
- AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE_LEGACY(protection_w)
+ AM_RANGE(0xc0001c, 0xc0001d) AM_WRITE(soundcmd_w)
+ AM_RANGE(0xc0001e, 0xc0001f) AM_WRITE(protection_w)
AM_RANGE(0xff8000, 0xffdfff) AM_RAM
AM_RANGE(0xffe000, 0xffffff) AM_RAM AM_BASE(m_objectram)
ADDRESS_MAP_END
@@ -274,7 +273,7 @@ static ADDRESS_MAP_START( sound2_io_map, AS_IO, 8, sf_state )
AM_RANGE(0x00, 0x00) AM_DEVWRITE_LEGACY("msm1", msm5205_w)
AM_RANGE(0x01, 0x01) AM_DEVWRITE_LEGACY("msm2", msm5205_w)
AM_RANGE(0x01, 0x01) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(sound2_bank_w)
+ 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 80810929311..96907a595b8 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -149,9 +149,9 @@ lev 7 : 0x7c : 0000 11d0 - just rte
#define CPU_CLOCK MASTER_CLOCK / 2
#define PIXEL_CLOCK MASTER_CLOCK / 4
-static WRITE16_HANDLER( shadfrce_flip_screen )
+WRITE16_MEMBER(shadfrce_state::shadfrce_flip_screen)
{
- flip_screen_set(space->machine(), data & 0x01);
+ flip_screen_set(machine(), data & 0x01);
}
@@ -234,24 +234,23 @@ static WRITE16_HANDLER( shadfrce_flip_screen )
*/
-static READ16_HANDLER( shadfrce_input_ports_r )
+READ16_MEMBER(shadfrce_state::shadfrce_input_ports_r)
{
- shadfrce_state *state = space->machine().driver_data<shadfrce_state>();
UINT16 data = 0xffff;
switch (offset)
{
case 0 :
- data = (input_port_read(space->machine(), "P1") & 0xff) | ((input_port_read(space->machine(), "DSW2") & 0xc0) << 6) | ((input_port_read(space->machine(), "SYSTEM") & 0x0f) << 8);
+ data = (input_port_read(machine(), "P1") & 0xff) | ((input_port_read(machine(), "DSW2") & 0xc0) << 6) | ((input_port_read(machine(), "SYSTEM") & 0x0f) << 8);
break;
case 1 :
- data = (input_port_read(space->machine(), "P2") & 0xff) | ((input_port_read(space->machine(), "DSW2") & 0x3f) << 8);
+ data = (input_port_read(machine(), "P2") & 0xff) | ((input_port_read(machine(), "DSW2") & 0x3f) << 8);
break;
case 2 :
- data = (input_port_read(space->machine(), "EXTRA") & 0xff) | ((input_port_read(space->machine(), "DSW1") & 0x3f) << 8);
+ data = (input_port_read(machine(), "EXTRA") & 0xff) | ((input_port_read(machine(), "DSW1") & 0x3f) << 8);
break;
case 3 :
- data = (input_port_read(space->machine(), "OTHER") & 0xff) | ((input_port_read(space->machine(), "DSW1") & 0xc0) << 2) | ((input_port_read(space->machine(), "MISC") & 0x38) << 8) | (state->m_vblank << 8);
+ data = (input_port_read(machine(), "OTHER") & 0xff) | ((input_port_read(machine(), "DSW1") & 0xc0) << 2) | ((input_port_read(machine(), "MISC") & 0x38) << 8) | (m_vblank << 8);
break;
}
@@ -259,12 +258,12 @@ static READ16_HANDLER( shadfrce_input_ports_r )
}
-static WRITE16_HANDLER ( shadfrce_sound_brt_w )
+WRITE16_MEMBER(shadfrce_state::shadfrce_sound_brt_w)
{
if (ACCESSING_BITS_8_15)
{
soundlatch_w(space, 1, data >> 8);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
}
else
{
@@ -272,42 +271,40 @@ static WRITE16_HANDLER ( shadfrce_sound_brt_w )
double brt = (data & 0xff) / 255.0;
for (i = 0; i < 0x4000; i++)
- palette_set_pen_contrast(space->machine(), i, brt);
+ palette_set_pen_contrast(machine(), i, brt);
}
}
-static WRITE16_HANDLER( shadfrce_irq_ack_w )
+WRITE16_MEMBER(shadfrce_state::shadfrce_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", offset ^ 3, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", offset ^ 3, CLEAR_LINE);
}
-static WRITE16_HANDLER( shadfrce_irq_w )
+WRITE16_MEMBER(shadfrce_state::shadfrce_irq_w)
{
- shadfrce_state *state = space->machine().driver_data<shadfrce_state>();
- state->m_irqs_enable = data & 1; /* maybe, it's set/unset inside every trap instruction which is executed */
- state->m_video_enable = data & 8; /* probably */
+ m_irqs_enable = data & 1; /* maybe, it's set/unset inside every trap instruction which is executed */
+ m_video_enable = data & 8; /* probably */
/* check if there's a high transition to enable the raster IRQ */
- if((~state->m_prev_value & 4) && (data & 4))
+ if((~m_prev_value & 4) && (data & 4))
{
- state->m_raster_irq_enable = 1;
+ m_raster_irq_enable = 1;
}
/* check if there's a low transition to disable the raster IRQ */
- if((state->m_prev_value & 4) && (~data & 4))
+ if((m_prev_value & 4) && (~data & 4))
{
- state->m_raster_irq_enable = 0;
+ m_raster_irq_enable = 0;
}
- state->m_prev_value = data;
+ m_prev_value = data;
}
-static WRITE16_HANDLER( shadfrce_scanline_w )
+WRITE16_MEMBER(shadfrce_state::shadfrce_scanline_w)
{
- shadfrce_state *state = space->machine().driver_data<shadfrce_state>();
- state->m_raster_scanline = data; /* guess, 0 is always written */
+ m_raster_scanline = data; /* guess, 0 is always written */
}
static TIMER_DEVICE_CALLBACK( shadfrce_scanline )
@@ -378,17 +375,17 @@ static ADDRESS_MAP_START( shadfrce_map, AS_PROGRAM, 16, shadfrce_state )
AM_RANGE(0x1c0004, 0x1c0005) AM_WRITE_LEGACY(shadfrce_bg1scrollx_w) /* SCROLL X */
AM_RANGE(0x1c0006, 0x1c0007) AM_WRITE_LEGACY(shadfrce_bg1scrolly_w) /* SCROLL Y */
AM_RANGE(0x1c0008, 0x1c0009) AM_WRITENOP /* ?? */
- AM_RANGE(0x1c000a, 0x1c000b) AM_READNOP AM_WRITE_LEGACY(shadfrce_flip_screen)
+ AM_RANGE(0x1c000a, 0x1c000b) AM_READNOP AM_WRITE(shadfrce_flip_screen)
AM_RANGE(0x1c000c, 0x1c000d) AM_WRITENOP /* ?? */
- AM_RANGE(0x1d0000, 0x1d0005) AM_WRITE_LEGACY(shadfrce_irq_ack_w)
- AM_RANGE(0x1d0006, 0x1d0007) AM_WRITE_LEGACY(shadfrce_irq_w)
- AM_RANGE(0x1d0008, 0x1d0009) AM_WRITE_LEGACY(shadfrce_scanline_w)
- AM_RANGE(0x1d000c, 0x1d000d) AM_READNOP AM_WRITE_LEGACY(shadfrce_sound_brt_w) /* sound command + screen brightness */
+ AM_RANGE(0x1d0000, 0x1d0005) AM_WRITE(shadfrce_irq_ack_w)
+ AM_RANGE(0x1d0006, 0x1d0007) AM_WRITE(shadfrce_irq_w)
+ AM_RANGE(0x1d0008, 0x1d0009) AM_WRITE(shadfrce_scanline_w)
+ AM_RANGE(0x1d000c, 0x1d000d) AM_READNOP AM_WRITE(shadfrce_sound_brt_w) /* sound command + screen brightness */
AM_RANGE(0x1d0010, 0x1d0011) AM_WRITENOP /* ?? */
AM_RANGE(0x1d0012, 0x1d0013) AM_WRITENOP /* ?? */
AM_RANGE(0x1d0014, 0x1d0015) AM_WRITENOP /* ?? */
AM_RANGE(0x1d0016, 0x1d0017) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x1d0020, 0x1d0027) AM_READ_LEGACY(shadfrce_input_ports_r)
+ AM_RANGE(0x1d0020, 0x1d0027) AM_READ(shadfrce_input_ports_r)
AM_RANGE(0x1f0000, 0x1fffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index a62cec569fd..666a19bef5a 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -42,76 +42,75 @@ write read
20 -> 8
40 -> 0
*/
-static READ16_HANDLER( shangha3_prot_r )
+READ16_MEMBER(shangha3_state::shangha3_prot_r)
{
- shangha3_state *state = space->machine().driver_data<shangha3_state>();
static const int result[] = { 0x0,0x1,0x3,0x7,0xf,0xe,0xc,0x8,0x0};
- logerror("PC %04x: read 20004e\n",cpu_get_pc(&space->device()));
+ logerror("PC %04x: read 20004e\n",cpu_get_pc(&space.device()));
- return result[state->m_prot_count++ % 9];
+ return result[m_prot_count++ % 9];
}
-static WRITE16_HANDLER( shangha3_prot_w )
+WRITE16_MEMBER(shangha3_state::shangha3_prot_w)
{
- logerror("PC %04x: write %02x to 20004e\n",cpu_get_pc(&space->device()),data);
+ logerror("PC %04x: write %02x to 20004e\n",cpu_get_pc(&space.device()),data);
}
-static READ16_HANDLER( heberpop_gfxrom_r )
+READ16_MEMBER(shangha3_state::heberpop_gfxrom_r)
{
- UINT8 *ROM = space->machine().region("gfx1")->base();
+ UINT8 *ROM = machine().region("gfx1")->base();
return ROM[2*offset] | (ROM[2*offset+1] << 8);
}
-static WRITE16_HANDLER( shangha3_coinctrl_w )
+WRITE16_MEMBER(shangha3_state::shangha3_coinctrl_w)
{
if (ACCESSING_BITS_8_15)
{
- coin_lockout_w(space->machine(), 0,~data & 0x0400);
- coin_lockout_w(space->machine(), 1,~data & 0x0400);
- coin_counter_w(space->machine(), 0,data & 0x0100);
- coin_counter_w(space->machine(), 1,data & 0x0200);
+ coin_lockout_w(machine(), 0,~data & 0x0400);
+ coin_lockout_w(machine(), 1,~data & 0x0400);
+ coin_counter_w(machine(), 0,data & 0x0100);
+ coin_counter_w(machine(), 1,data & 0x0200);
}
}
-static WRITE16_HANDLER( heberpop_coinctrl_w )
+WRITE16_MEMBER(shangha3_state::heberpop_coinctrl_w)
{
if (ACCESSING_BITS_0_7)
{
/* the sound ROM bank is selected by the main CPU! */
- space->machine().device<okim6295_device>("oki")->set_bank_base((data & 0x08) ? 0x40000 : 0x00000);
+ machine().device<okim6295_device>("oki")->set_bank_base((data & 0x08) ? 0x40000 : 0x00000);
- coin_lockout_w(space->machine(), 0,~data & 0x04);
- coin_lockout_w(space->machine(), 1,~data & 0x04);
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_lockout_w(machine(), 0,~data & 0x04);
+ coin_lockout_w(machine(), 1,~data & 0x04);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
}
}
-static WRITE16_HANDLER( blocken_coinctrl_w )
+WRITE16_MEMBER(shangha3_state::blocken_coinctrl_w)
{
if (ACCESSING_BITS_0_7)
{
/* the sound ROM bank is selected by the main CPU! */
- space->machine().device<okim6295_device>("oki")->set_bank_base(((data >> 4) & 3) * 0x40000);
+ machine().device<okim6295_device>("oki")->set_bank_base(((data >> 4) & 3) * 0x40000);
- coin_lockout_w(space->machine(), 0,~data & 0x04);
- coin_lockout_w(space->machine(), 1,~data & 0x04);
- coin_counter_w(space->machine(), 0,data & 0x01);
- coin_counter_w(space->machine(), 1,data & 0x02);
+ coin_lockout_w(machine(), 0,~data & 0x04);
+ coin_lockout_w(machine(), 1,~data & 0x04);
+ coin_counter_w(machine(), 0,data & 0x01);
+ coin_counter_w(machine(), 1,data & 0x02);
}
}
-static WRITE16_HANDLER( heberpop_sound_command_w )
+WRITE16_MEMBER(shangha3_state::heberpop_sound_command_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line_and_vector(space->machine(), "audiocpu", 0, HOLD_LINE, 0xff); /* RST 38h */
+ cputag_set_input_line_and_vector(machine(), "audiocpu", 0, HOLD_LINE, 0xff); /* RST 38h */
}
}
@@ -124,11 +123,11 @@ static ADDRESS_MAP_START( shangha3_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x200002, 0x200003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x200008, 0x200009) AM_WRITE_LEGACY(shangha3_blitter_go_w)
AM_RANGE(0x20000a, 0x20000b) AM_WRITENOP /* irq ack? */
- AM_RANGE(0x20000c, 0x20000d) AM_WRITE_LEGACY(shangha3_coinctrl_w)
+ AM_RANGE(0x20000c, 0x20000d) AM_WRITE(shangha3_coinctrl_w)
AM_RANGE(0x20001e, 0x20001f) AM_DEVREAD8_LEGACY("aysnd", ay8910_r, 0x00ff)
AM_RANGE(0x20002e, 0x20002f) AM_DEVWRITE8_LEGACY("aysnd", ay8910_data_w, 0x00ff)
AM_RANGE(0x20003e, 0x20003f) AM_DEVWRITE8_LEGACY("aysnd", ay8910_address_w, 0x00ff)
- AM_RANGE(0x20004e, 0x20004f) AM_READWRITE_LEGACY(shangha3_prot_r,shangha3_prot_w)
+ AM_RANGE(0x20004e, 0x20004f) AM_READWRITE(shangha3_prot_r,shangha3_prot_w)
AM_RANGE(0x20006e, 0x20006f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE_SIZE(m_ram, m_ram_size) /* gfx & work ram */
AM_RANGE(0x340000, 0x340001) AM_WRITE_LEGACY(shangha3_flipscreen_w)
@@ -143,12 +142,12 @@ static ADDRESS_MAP_START( heberpop_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x200004, 0x200005) AM_READ_PORT("DSW")
AM_RANGE(0x200008, 0x200009) AM_WRITE_LEGACY(shangha3_blitter_go_w)
AM_RANGE(0x20000a, 0x20000b) AM_WRITENOP /* irq ack? */
- AM_RANGE(0x20000c, 0x20000d) AM_WRITE_LEGACY(heberpop_coinctrl_w)
- AM_RANGE(0x20000e, 0x20000f) AM_WRITE_LEGACY(heberpop_sound_command_w)
+ AM_RANGE(0x20000c, 0x20000d) AM_WRITE(heberpop_coinctrl_w)
+ AM_RANGE(0x20000e, 0x20000f) AM_WRITE(heberpop_sound_command_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE_SIZE(m_ram, m_ram_size) /* gfx & work ram */
AM_RANGE(0x340000, 0x340001) AM_WRITE_LEGACY(shangha3_flipscreen_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(shangha3_gfxlist_addr_w)
- AM_RANGE(0x800000, 0xb7ffff) AM_READ_LEGACY(heberpop_gfxrom_r)
+ AM_RANGE(0x800000, 0xb7ffff) AM_READ(heberpop_gfxrom_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16, shangha3_state )
@@ -158,13 +157,13 @@ static ADDRESS_MAP_START( blocken_map, AS_PROGRAM, 16, shangha3_state )
AM_RANGE(0x100004, 0x100005) AM_READ_PORT("DSW")
AM_RANGE(0x100008, 0x100009) AM_WRITE_LEGACY(shangha3_blitter_go_w)
AM_RANGE(0x10000a, 0x10000b) AM_WRITENOP /* irq ack? */
- AM_RANGE(0x10000c, 0x10000d) AM_WRITE_LEGACY(blocken_coinctrl_w)
- AM_RANGE(0x10000e, 0x10000f) AM_WRITE_LEGACY(heberpop_sound_command_w)
+ AM_RANGE(0x10000c, 0x10000d) AM_WRITE(blocken_coinctrl_w)
+ AM_RANGE(0x10000e, 0x10000f) AM_WRITE(heberpop_sound_command_w)
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRRGGGGGBBBBBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x300000, 0x30ffff) AM_RAM AM_BASE_SIZE(m_ram, m_ram_size) /* gfx & work ram */
AM_RANGE(0x340000, 0x340001) AM_WRITE_LEGACY(shangha3_flipscreen_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(shangha3_gfxlist_addr_w)
- AM_RANGE(0x800000, 0xb7ffff) AM_READ_LEGACY(heberpop_gfxrom_r)
+ AM_RANGE(0x800000, 0xb7ffff) AM_READ(heberpop_gfxrom_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index 9ddb775ac17..e25d528adcc 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -56,32 +56,31 @@ Games by Nihon Game/Culture Brain:
/***************************************************************************************/
-static WRITE8_HANDLER( shangkid_maincpu_bank_w )
+WRITE8_MEMBER(shangkid_state::shangkid_maincpu_bank_w)
{
- memory_set_bank(space->machine(), "bank1", data & 1);
+ memory_set_bank(machine(), "bank1", data & 1);
}
-static WRITE8_HANDLER( shangkid_bbx_enable_w )
+WRITE8_MEMBER(shangkid_state::shangkid_bbx_enable_w)
{
- cputag_set_input_line(space->machine(), "bbx", INPUT_LINE_HALT, data?0:1 );
+ cputag_set_input_line(machine(), "bbx", INPUT_LINE_HALT, data?0:1 );
}
-static WRITE8_HANDLER( shangkid_cpu_reset_w )
+WRITE8_MEMBER(shangkid_state::shangkid_cpu_reset_w)
{
if( data == 0 )
{
- cputag_set_input_line(space->machine(), "bbx", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "bbx", INPUT_LINE_RESET, PULSE_LINE);
}
else if( data == 1 )
{
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_RESET, PULSE_LINE);
}
}
-static WRITE8_HANDLER( shangkid_sound_enable_w )
+WRITE8_MEMBER(shangkid_state::shangkid_sound_enable_w)
{
- shangkid_state *state = space->machine().driver_data<shangkid_state>();
- state->m_bbx_sound_enable = data;
+ m_bbx_sound_enable = data;
}
static WRITE8_DEVICE_HANDLER( chinhero_ay8910_porta_w )
@@ -116,10 +115,9 @@ static WRITE8_DEVICE_HANDLER( ay8910_portb_w )
/***************************************************************************************/
-static READ8_HANDLER( shangkid_soundlatch_r )
+READ8_MEMBER(shangkid_state::shangkid_soundlatch_r)
{
- shangkid_state *state = space->machine().driver_data<shangkid_state>();
- return state->m_sound_latch;
+ return m_sound_latch;
}
/***************************************************************************************/
@@ -238,11 +236,11 @@ GFXDECODE_END
static ADDRESS_MAP_START( chinhero_main_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
- AM_RANGE(0xb000, 0xb000) AM_WRITE_LEGACY(shangkid_bbx_enable_w)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(shangkid_sound_enable_w)
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */
AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */
- AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(shangkid_cpu_reset_w)
+ AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
@@ -258,13 +256,13 @@ static ADDRESS_MAP_START( shangkid_main_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1")
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
- AM_RANGE(0xb000, 0xb000) AM_WRITE_LEGACY(shangkid_bbx_enable_w)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(shangkid_sound_enable_w)
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */
AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */
- AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(shangkid_cpu_reset_w)
+ AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */
- AM_RANGE(0xb007, 0xb007) AM_WRITE_LEGACY(shangkid_maincpu_bank_w)
+ AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w)
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
@@ -280,11 +278,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( chinhero_bbx_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
- AM_RANGE(0xb000, 0xb000) AM_WRITE_LEGACY(shangkid_bbx_enable_w)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(shangkid_sound_enable_w)
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */
AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */
- AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(shangkid_cpu_reset_w)
+ AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
@@ -298,13 +296,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( shangkid_bbx_map, AS_PROGRAM, 8, shangkid_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xa000) AM_WRITENOP /* ? */
- AM_RANGE(0xb000, 0xb000) AM_WRITE_LEGACY(shangkid_bbx_enable_w)
- AM_RANGE(0xb001, 0xb001) AM_WRITE_LEGACY(shangkid_sound_enable_w)
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(shangkid_bbx_enable_w)
+ AM_RANGE(0xb001, 0xb001) AM_WRITE(shangkid_sound_enable_w)
AM_RANGE(0xb002, 0xb002) AM_WRITENOP /* main CPU interrupt-related */
AM_RANGE(0xb003, 0xb003) AM_WRITENOP /* BBX interrupt-related */
- AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(shangkid_cpu_reset_w)
+ AM_RANGE(0xb004, 0xb004) AM_WRITE(shangkid_cpu_reset_w)
AM_RANGE(0xb006, 0xb006) AM_WRITENOP /* coin counter */
- AM_RANGE(0xb007, 0xb007) AM_WRITE_LEGACY(shangkid_maincpu_bank_w)
+ AM_RANGE(0xb007, 0xb007) AM_WRITE(shangkid_maincpu_bank_w)
AM_RANGE(0xb800, 0xb800) AM_READ_PORT("DSW")
AM_RANGE(0xb801, 0xb801) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb802, 0xb802) AM_READ_PORT("P2")
@@ -338,7 +336,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, shangkid_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(shangkid_soundlatch_r) AM_DEVWRITE_LEGACY("dac", dac_w)
+ AM_RANGE(0x00, 0x00) AM_READ(shangkid_soundlatch_r) AM_DEVWRITE_LEGACY("dac", dac_w)
ADDRESS_MAP_END
/***************************************************************************************/
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index c62c77e5281..6af87d36433 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -13,31 +13,31 @@ driver by Nicola Salmoria
#include "sound/2151intf.h"
#include "includes/shisen.h"
-static READ8_HANDLER( sichuan2_dsw1_r )
+READ8_MEMBER(shisen_state::sichuan2_dsw1_r)
{
- int ret = input_port_read(space->machine(), "DSW1");
+ int ret = input_port_read(machine(), "DSW1");
/* Based on the coin mode fill in the upper bits */
- if (input_port_read(space->machine(), "DSW2") & 0x04)
+ if (input_port_read(machine(), "DSW2") & 0x04)
{
/* Mode 1 */
- ret |= (input_port_read(space->machine(), "DSW1") << 4);
+ ret |= (input_port_read(machine(), "DSW1") << 4);
}
else
{
/* Mode 2 */
- ret |= (input_port_read(space->machine(), "DSW1") & 0xf0);
+ ret |= (input_port_read(machine(), "DSW1") & 0xf0);
}
return ret;
}
-static WRITE8_HANDLER( sichuan2_coin_w )
+WRITE8_MEMBER(shisen_state::sichuan2_coin_w)
{
if ((data & 0xf9) != 0x01) logerror("coin ctrl = %02x\n",data);
- coin_counter_w(space->machine(), 0, data & 0x02);
- coin_counter_w(space->machine(), 1, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x02);
+ coin_counter_w(machine(), 1, data & 0x04);
}
@@ -52,7 +52,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( shisen_io_map, AS_IO, 8, shisen_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(sichuan2_dsw1_r, sichuan2_coin_w)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(sichuan2_dsw1_r, sichuan2_coin_w)
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2") AM_DEVWRITE_LEGACY("m72", m72_sound_command_byte_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("P1") AM_WRITE_LEGACY(sichuan2_bankswitch_w)
AM_RANGE(0x03, 0x03) AM_READ_PORT("P2")
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index 8cf59be46dd..359fea6c0a8 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -41,35 +41,35 @@
/*******************************************************************************/
-static WRITE8_HANDLER( shootout_bankswitch_w )
+WRITE8_MEMBER(shootout_state::shootout_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
-static WRITE8_HANDLER( sound_cpu_command_w )
+WRITE8_MEMBER(shootout_state::sound_cpu_command_w)
{
soundlatch_w( space, offset, data );
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
}
-static WRITE8_HANDLER( shootout_flipscreen_w )
+WRITE8_MEMBER(shootout_state::shootout_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x01);
+ flip_screen_set(machine(), data & 0x01);
}
-static WRITE8_HANDLER( shootout_coin_counter_w )
+WRITE8_MEMBER(shootout_state::shootout_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data);
+ coin_counter_w(machine(), 0, data);
}
/*******************************************************************************/
static ADDRESS_MAP_START( shootout_map, AS_PROGRAM, 8, shootout_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
- AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(shootout_bankswitch_w)
- AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P1") AM_WRITE_LEGACY(shootout_flipscreen_w)
- AM_RANGE(0x1002, 0x1002) AM_READ_PORT("P2") AM_WRITE_LEGACY(shootout_coin_counter_w)
- AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(sound_cpu_command_w)
+ AM_RANGE(0x1000, 0x1000) AM_READ_PORT("DSW1") AM_WRITE(shootout_bankswitch_w)
+ AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P1") AM_WRITE(shootout_flipscreen_w)
+ AM_RANGE(0x1002, 0x1002) AM_READ_PORT("P2") AM_WRITE(shootout_coin_counter_w)
+ AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW2") AM_WRITE(sound_cpu_command_w)
AM_RANGE(0x1004, 0x17ff) AM_RAM
AM_RANGE(0x1800, 0x19ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE_LEGACY(shootout_textram_w) AM_BASE(m_textram)
@@ -84,7 +84,7 @@ static ADDRESS_MAP_START( shootouj_map, AS_PROGRAM, 8, shootout_state )
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("P1")
AM_RANGE(0x1002, 0x1002) AM_READ_PORT("P2")
AM_RANGE(0x1003, 0x1003) AM_READ_PORT("DSW2")
- AM_RANGE(0x1800, 0x1800) AM_WRITE_LEGACY(shootout_coin_counter_w)
+ AM_RANGE(0x1800, 0x1800) AM_WRITE(shootout_coin_counter_w)
AM_RANGE(0x2000, 0x21ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0x2800, 0x2801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r,ym2203_w)
AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE_LEGACY(shootout_textram_w) AM_BASE(m_textram)
@@ -255,8 +255,8 @@ static const ym2203_interface ym2203_interface2 =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, shootout_bankswitch_w),
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, shootout_flipscreen_w)
+ DEVCB_DRIVER_MEMBER(shootout_state, shootout_bankswitch_w),
+ DEVCB_DRIVER_MEMBER(shootout_state, shootout_flipscreen_w)
},
shootout_snd2_irq
};
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index f20748b0a05..d2b993a89bf 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -41,29 +41,29 @@ Notes:
#include "sound/2151intf.h"
#include "includes/sidearms.h"
-static WRITE8_HANDLER( sidearms_bankswitch_w )
+WRITE8_MEMBER(sidearms_state::sidearms_bankswitch_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
/* bits 0 and 1 select the ROM bank */
bankaddress = 0x10000 + (data & 0x0f) * 0x4000;
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]);
}
/* Turtle Ship input ports are rotated 90 degrees */
-static READ8_HANDLER( turtship_ports_r )
+READ8_MEMBER(sidearms_state::turtship_ports_r)
{
int i,res;
static const char *const portnames[] = { "SYSTEM", "P1", "P2", "DSW0", "DSW1", "NOT_PRESENT", "NOT_PRESENT", "NOT_PRESENT" }; // only inputs 0-4 are present
res = 0;
for (i = 0;i < 8;i++)
- res |= ((input_port_read_safe(space->machine(), portnames[i], 0) >> offset) & 1) << i;
+ res |= ((input_port_read_safe(machine(), portnames[i], 0) >> offset) & 1) << i;
return res;
}
@@ -75,7 +75,7 @@ static ADDRESS_MAP_START( sidearms_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1") AM_WRITE_LEGACY(sidearms_bankswitch_w)
+ AM_RANGE(0xc801, 0xc801) AM_READ_PORT("P1") AM_WRITE(sidearms_bankswitch_w)
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("P2") AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xc803, 0xc803) AM_READ_PORT("DSW0")
AM_RANGE(0xc804, 0xc804) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(sidearms_c804_w)
@@ -97,9 +97,9 @@ static ADDRESS_MAP_START( turtship_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xe400, 0xe7ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE_GENERIC(paletteram2)
- AM_RANGE(0xe800, 0xe807) AM_READ_LEGACY(turtship_ports_r)
+ AM_RANGE(0xe800, 0xe807) AM_READ(turtship_ports_r)
AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xe801, 0xe801) AM_WRITE_LEGACY(sidearms_bankswitch_w)
+ AM_RANGE(0xe801, 0xe801) AM_WRITE(sidearms_bankswitch_w)
AM_RANGE(0xe802, 0xe802) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xe804, 0xe804) AM_WRITE_LEGACY(sidearms_c804_w)
AM_RANGE(0xe805, 0xe805) AM_WRITE_LEGACY(sidearms_star_scrollx_w)
@@ -121,10 +121,10 @@ ADDRESS_MAP_END
/* Whizz */
-static WRITE8_HANDLER( whizz_bankswitch_w )
+WRITE8_MEMBER(sidearms_state::whizz_bankswitch_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
int bank = 0;
switch (data & 0xC0)
@@ -136,7 +136,7 @@ static WRITE8_HANDLER( whizz_bankswitch_w )
}
bankaddress = 0x10000 + bank * 0x4000;
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]);
}
static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state )
@@ -145,7 +145,7 @@ static ADDRESS_MAP_START( whizz_map, AS_PROGRAM, 8, sidearms_state )
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0xc800, 0xc800) AM_READ_PORT("DSW0") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0xc801, 0xc801) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(whizz_bankswitch_w)
+ AM_RANGE(0xc801, 0xc801) AM_READ_PORT("DSW1") AM_WRITE(whizz_bankswitch_w)
AM_RANGE(0xc802, 0xc802) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xc803, 0xc803) AM_READ_PORT("IN0") AM_WRITENOP
AM_RANGE(0xc804, 0xc804) AM_READ_PORT("IN1") AM_WRITE_LEGACY(sidearms_c804_w)
diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c
index 2a72d2ae342..3e477d515c6 100644
--- a/src/mame/drivers/sidepckt.c
+++ b/src/mame/drivers/sidepckt.c
@@ -131,96 +131,93 @@ Stephh's notes (based on the games M6809 code and some tests) :
#include "includes/sidepckt.h"
-static WRITE8_HANDLER( sound_cpu_command_w )
+WRITE8_MEMBER(sidepckt_state::sound_cpu_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
-static READ8_HANDLER( sidepckt_i8751_r )
+READ8_MEMBER(sidepckt_state::sidepckt_i8751_r)
{
- sidepckt_state *state = space->machine().driver_data<sidepckt_state>();
- return state->m_i8751_return;
+ return m_i8751_return;
}
-static WRITE8_HANDLER( sidepckt_i8751_w )
+WRITE8_MEMBER(sidepckt_state::sidepckt_i8751_w)
{
- sidepckt_state *state = space->machine().driver_data<sidepckt_state>();
static const int table_1[]={5,3,2};
static const int table_2[]={0x8e,0x42,0xad,0x58,0xec,0x85,0xdd,0x4c,0xad,0x9f,0x00,0x4c,0x7e,0x42,0xa2,0xff};
static const int table_3[]={0xbd,0x73,0x80,0xbd,0x73,0xa7,0xbd,0x73,0xe0,0x7e,0x72,0x56,0xff,0xff,0xff,0xff};
- cputag_set_input_line(space->machine(), "maincpu", M6809_FIRQ_LINE, HOLD_LINE); /* i8751 triggers FIRQ on main cpu */
+ cputag_set_input_line(machine(), "maincpu", M6809_FIRQ_LINE, HOLD_LINE); /* i8751 triggers FIRQ on main cpu */
/* This function takes multiple parameters */
- if (state->m_in_math==1) {
- state->m_in_math=2;
- state->m_i8751_return=state->m_math_param=data;
+ if (m_in_math==1) {
+ m_in_math=2;
+ m_i8751_return=m_math_param=data;
}
- else if (state->m_in_math==2) {
- state->m_in_math=0;
- state->m_i8751_return=state->m_math_param/data;
+ else if (m_in_math==2) {
+ m_in_math=0;
+ m_i8751_return=m_math_param/data;
}
else switch (data) {
case 1: /* ID Check */
- state->m_current_table=1; state->m_current_ptr=0; state->m_i8751_return=table_1[state->m_current_ptr++]; break;
+ m_current_table=1; m_current_ptr=0; m_i8751_return=table_1[m_current_ptr++]; break;
case 2: /* Protection data (executable code) */
- state->m_current_table=2; state->m_current_ptr=0; state->m_i8751_return=table_2[state->m_current_ptr++]; break;
+ m_current_table=2; m_current_ptr=0; m_i8751_return=table_2[m_current_ptr++]; break;
case 3: /* Protection data (executable code) */
- state->m_current_table=3; state->m_current_ptr=0; state->m_i8751_return=table_3[state->m_current_ptr++]; break;
+ m_current_table=3; m_current_ptr=0; m_i8751_return=table_3[m_current_ptr++]; break;
case 4: /* Divide function - multiple parameters */
- state->m_in_math=1;
- state->m_i8751_return=4;
+ m_in_math=1;
+ m_i8751_return=4;
break;
case 6: /* Read table data */
- if (state->m_current_table==1) state->m_i8751_return=table_1[state->m_current_ptr++];
- if (state->m_current_table==2) state->m_i8751_return=table_2[state->m_current_ptr++];
- if (state->m_current_table==3) state->m_i8751_return=table_3[state->m_current_ptr++];
+ if (m_current_table==1) m_i8751_return=table_1[m_current_ptr++];
+ if (m_current_table==2) m_i8751_return=table_2[m_current_ptr++];
+ if (m_current_table==3) m_i8751_return=table_3[m_current_ptr++];
break;
}
}
-static WRITE8_HANDLER( sidepctj_i8751_w )
+WRITE8_MEMBER(sidepckt_state::sidepctj_i8751_w)
{
- sidepckt_state *state = space->machine().driver_data<sidepckt_state>();
static const int table_1[]={5,3,0};
static const int table_2[]={0x8e,0x42,0xb2,0x58,0xec,0x85,0xdd,0x4c,0xad,0x9f,0x00,0x4c,0x7e,0x42,0xa7,0xff};
static const int table_3[]={0xbd,0x71,0xc8,0xbd,0x71,0xef,0xbd,0x72,0x28,0x7e,0x70,0x9e,0xff,0xff,0xff,0xff};
- cputag_set_input_line(space->machine(), "maincpu", M6809_FIRQ_LINE, HOLD_LINE); /* i8751 triggers FIRQ on main cpu */
+ cputag_set_input_line(machine(), "maincpu", M6809_FIRQ_LINE, HOLD_LINE); /* i8751 triggers FIRQ on main cpu */
/* This function takes multiple parameters */
- if (state->m_in_math==1) {
- state->m_in_math=2;
- state->m_i8751_return=state->m_math_param=data;
+ if (m_in_math==1) {
+ m_in_math=2;
+ m_i8751_return=m_math_param=data;
}
- else if (state->m_in_math==2) {
- state->m_in_math=0;
- state->m_i8751_return=state->m_math_param/data;
+ else if (m_in_math==2) {
+ m_in_math=0;
+ m_i8751_return=m_math_param/data;
}
else switch (data) {
case 1: /* ID Check */
- state->m_current_table=1; state->m_current_ptr=0; state->m_i8751_return=table_1[state->m_current_ptr++]; break;
+ m_current_table=1; m_current_ptr=0; m_i8751_return=table_1[m_current_ptr++]; break;
case 2: /* Protection data (executable code) */
- state->m_current_table=2; state->m_current_ptr=0; state->m_i8751_return=table_2[state->m_current_ptr++]; break;
+ m_current_table=2; m_current_ptr=0; m_i8751_return=table_2[m_current_ptr++]; break;
case 3: /* Protection data (executable code) */
- state->m_current_table=3; state->m_current_ptr=0; state->m_i8751_return=table_3[state->m_current_ptr++]; break;
+ m_current_table=3; m_current_ptr=0; m_i8751_return=table_3[m_current_ptr++]; break;
case 4: /* Divide function - multiple parameters */
- state->m_in_math=1;
- state->m_i8751_return=4;
+ m_in_math=1;
+ m_i8751_return=4;
break;
case 6: /* Read table data */
- if (state->m_current_table==1) state->m_i8751_return=table_1[state->m_current_ptr++];
- if (state->m_current_table==2) state->m_i8751_return=table_2[state->m_current_ptr++];
- if (state->m_current_table==3) state->m_i8751_return=table_3[state->m_current_ptr++];
+ if (m_current_table==1) m_i8751_return=table_1[m_current_ptr++];
+ if (m_current_table==2) m_i8751_return=table_2[m_current_ptr++];
+ if (m_current_table==3) m_i8751_return=table_3[m_current_ptr++];
break;
}
}
@@ -239,7 +236,7 @@ static ADDRESS_MAP_START( sidepckt_map, AS_PROGRAM, 8, sidepckt_state )
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("P2")
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("DSW1")
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("DSW2")
- AM_RANGE(0x3004, 0x3004) AM_WRITE_LEGACY(sound_cpu_command_w)
+ AM_RANGE(0x3004, 0x3004) AM_WRITE(sound_cpu_command_w)
AM_RANGE(0x300c, 0x300c) AM_READNOP AM_WRITE_LEGACY(sidepckt_flipscreen_w)
// AM_RANGE(0x3014, 0x3014) //i8751 read
// AM_RANGE(0x3018, 0x3018) //i8751 write
@@ -507,14 +504,16 @@ ROM_END
static DRIVER_INIT( sidepckt )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x3014, 0x3014, FUNC(sidepckt_i8751_r) );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x3018, 0x3018, FUNC(sidepckt_i8751_w) );
+ sidepckt_state *state = machine.driver_data<sidepckt_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x3014, 0x3014, read8_delegate(FUNC(sidepckt_state::sidepckt_i8751_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x3018, 0x3018, write8_delegate(FUNC(sidepckt_state::sidepckt_i8751_w),state));
}
static DRIVER_INIT( sidepctj )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x3014, 0x3014, FUNC(sidepckt_i8751_r) );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x3018, 0x3018, FUNC(sidepctj_i8751_w) );
+ sidepckt_state *state = machine.driver_data<sidepckt_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x3014, 0x3014, read8_delegate(FUNC(sidepckt_state::sidepckt_i8751_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x3018, 0x3018, write8_delegate(FUNC(sidepckt_state::sidepctj_i8751_w),state));
}
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index a53e09ec0d9..b71cbc1d937 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -127,10 +127,10 @@ ROM15.BIN MX29F1610, SOP44 Surface Mounted Mask ROM /
*/
-static WRITE32_HANDLER( paletteram32_xRRRRRGGGGGBBBBB_dword_w )
+WRITE32_MEMBER(silkroad_state::paletteram32_xRRRRRGGGGGBBBBB_dword_w)
{
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
- palette_set_color_rgb(space->machine(),offset,pal5bit(space->machine().generic.paletteram.u32[offset] >> (10+16)),pal5bit(space->machine().generic.paletteram.u32[offset] >> (5+16)),pal5bit(space->machine().generic.paletteram.u32[offset] >> (0+16)));
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
+ palette_set_color_rgb(machine(),offset,pal5bit(machine().generic.paletteram.u32[offset] >> (10+16)),pal5bit(machine().generic.paletteram.u32[offset] >> (5+16)),pal5bit(machine().generic.paletteram.u32[offset] >> (0+16)));
}
static WRITE32_DEVICE_HANDLER(silk_6295_bank_w)
@@ -143,19 +143,19 @@ static WRITE32_DEVICE_HANDLER(silk_6295_bank_w)
}
}
-static WRITE32_HANDLER(silk_coin_counter_w)
+WRITE32_MEMBER(silkroad_state::silk_coin_counter_w)
{
if (ACCESSING_BITS_16_23)
{
- coin_counter_w(space->machine(), 0, data & 0x10000);
- coin_counter_w(space->machine(), 1, data & 0x80000);
+ coin_counter_w(machine(), 0, data & 0x10000);
+ coin_counter_w(machine(), 1, data & 0x80000);
}
}
static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32, silkroad_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x40c000, 0x40cfff) AM_RAM AM_BASE(m_sprram) // sprites
- AM_RANGE(0x600000, 0x603fff) AM_RAM_WRITE_LEGACY(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // palette
+ AM_RANGE(0x600000, 0x603fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE_GENERIC(paletteram) // palette
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE_LEGACY(silkroad_fgram_w) AM_BASE(m_vidram) // lower Layer
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE_LEGACY(silkroad_fgram2_w) AM_BASE(m_vidram2) // mid layer
AM_RANGE(0x808000, 0x80bfff) AM_RAM_WRITE_LEGACY(silkroad_fgram3_w) AM_BASE(m_vidram3) // higher layer
@@ -165,7 +165,7 @@ static ADDRESS_MAP_START( cpu_map, AS_PROGRAM, 32, silkroad_state )
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(0xc00038, 0xc0003b) AM_WRITE_LEGACY(silk_coin_counter_w)
+ AM_RANGE(0xc00038, 0xc0003b) AM_WRITE(silk_coin_counter_w)
AM_RANGE(0xc0010c, 0xc00123) AM_WRITEONLY AM_BASE(m_regs)
AM_RANGE(0xfe0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index f7795045a28..9b424d76cc3 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -127,22 +127,21 @@ static INPUT_PORTS_START( simpl156 )
INPUT_PORTS_END
-static READ32_HANDLER( simpl156_inputs_read )
+READ32_MEMBER(simpl156_state::simpl156_inputs_read)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- int eep = state->m_eeprom->read_bit();
- UINT32 returndata = input_port_read(space->machine(), "IN0") ^ 0xffff0000;
+ int eep = m_eeprom->read_bit();
+ UINT32 returndata = input_port_read(machine(), "IN0") ^ 0xffff0000;
returndata ^= ((eep << 8));
return returndata;
}
-static READ32_HANDLER( simpl156_palette_r )
+READ32_MEMBER(simpl156_state::simpl156_palette_r)
{
- return space->machine().generic.paletteram.u16[offset]^0xffff0000;
+ return machine().generic.paletteram.u16[offset]^0xffff0000;
}
-static WRITE32_HANDLER( simpl156_palette_w )
+WRITE32_MEMBER(simpl156_state::simpl156_palette_w)
{
UINT16 dat;
int color;
@@ -150,99 +149,90 @@ static WRITE32_HANDLER( simpl156_palette_w )
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&space->machine().generic.paletteram.u16[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u16[offset]);
color = offset;
- dat = space->machine().generic.paletteram.u16[offset] & 0xffff;
- palette_set_color_rgb(space->machine(),color,pal5bit(dat >> 0),pal5bit(dat >> 5),pal5bit(dat >> 10));
+ dat = machine().generic.paletteram.u16[offset] & 0xffff;
+ palette_set_color_rgb(machine(),color,pal5bit(dat >> 0),pal5bit(dat >> 5),pal5bit(dat >> 10));
}
-static READ32_HANDLER( simpl156_system_r )
+READ32_MEMBER(simpl156_state::simpl156_system_r)
{
UINT32 returndata;
- returndata = input_port_read(space->machine(), "IN1");
+ returndata = input_port_read(machine(), "IN1");
return returndata;
}
-static WRITE32_HANDLER( simpl156_eeprom_w )
+WRITE32_MEMBER(simpl156_state::simpl156_eeprom_w)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
//int okibank;
//okibank = data & 0x07;
- state->m_okimusic->set_bank_base(0x40000 * (data & 0x7));
+ m_okimusic->set_bank_base(0x40000 * (data & 0x7));
- state->m_eeprom->set_clock_line(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE);
- state->m_eeprom->write_bit(BIT(data, 4));
- state->m_eeprom->set_cs_line(BIT(data, 6) ? CLEAR_LINE : ASSERT_LINE);
+ m_eeprom->set_clock_line(BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->write_bit(BIT(data, 4));
+ m_eeprom->set_cs_line(BIT(data, 6) ? CLEAR_LINE : ASSERT_LINE);
}
/* we need to throw away bits for all ram accesses as the devices are connected as 16-bit */
-static READ32_HANDLER( simpl156_spriteram_r )
+READ32_MEMBER(simpl156_state::simpl156_spriteram_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- return state->m_spriteram[offset] ^ 0xffff0000;
+ return m_spriteram[offset] ^ 0xffff0000;
}
-static WRITE32_HANDLER( simpl156_spriteram_w )
+WRITE32_MEMBER(simpl156_state::simpl156_spriteram_w)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&state->m_spriteram[offset]);
+ COMBINE_DATA(&m_spriteram[offset]);
}
-static READ32_HANDLER( simpl156_mainram_r )
+READ32_MEMBER(simpl156_state::simpl156_mainram_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- return state->m_mainram[offset]^0xffff0000;
+ return m_mainram[offset]^0xffff0000;
}
-static WRITE32_HANDLER( simpl156_mainram_w )
+WRITE32_MEMBER(simpl156_state::simpl156_mainram_w)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&state->m_mainram[offset]);
+ COMBINE_DATA(&m_mainram[offset]);
}
-static READ32_HANDLER( simpl156_pf1_rowscroll_r )
+READ32_MEMBER(simpl156_state::simpl156_pf1_rowscroll_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- return state->m_pf1_rowscroll[offset] ^ 0xffff0000;
+ return m_pf1_rowscroll[offset] ^ 0xffff0000;
}
-static WRITE32_HANDLER( simpl156_pf1_rowscroll_w )
+WRITE32_MEMBER(simpl156_state::simpl156_pf1_rowscroll_w)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&state->m_pf1_rowscroll[offset]);
+ COMBINE_DATA(&m_pf1_rowscroll[offset]);
}
-static READ32_HANDLER( simpl156_pf2_rowscroll_r )
+READ32_MEMBER(simpl156_state::simpl156_pf2_rowscroll_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- return state->m_pf2_rowscroll[offset] ^ 0xffff0000;
+ return m_pf2_rowscroll[offset] ^ 0xffff0000;
}
-static WRITE32_HANDLER( simpl156_pf2_rowscroll_w )
+WRITE32_MEMBER(simpl156_state::simpl156_pf2_rowscroll_w)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
data &= 0x0000ffff;
mem_mask &= 0x0000ffff;
- COMBINE_DATA(&state->m_pf2_rowscroll[offset]);
+ COMBINE_DATA(&m_pf2_rowscroll[offset]);
}
/* Memory Map controled by PALs */
@@ -250,20 +240,20 @@ static WRITE32_HANDLER( simpl156_pf2_rowscroll_w )
/* Joe and Mac Returns */
static ADDRESS_MAP_START( joemacr_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram
- AM_RANGE(0x110000, 0x111fff) AM_READWRITE_LEGACY(simpl156_spriteram_r, simpl156_spriteram_w)
- AM_RANGE(0x120000, 0x120fff) AM_READWRITE_LEGACY(simpl156_palette_r, simpl156_palette_w)
- AM_RANGE(0x130000, 0x130003) AM_READWRITE_LEGACY(simpl156_system_r, simpl156_eeprom_w)
+ AM_RANGE(0x100000, 0x107fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram
+ AM_RANGE(0x110000, 0x111fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
+ AM_RANGE(0x120000, 0x120fff) AM_READWRITE(simpl156_palette_r, simpl156_palette_w)
+ AM_RANGE(0x130000, 0x130003) AM_READWRITE(simpl156_system_r, simpl156_eeprom_w)
AM_RANGE(0x140000, 0x14001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x150000, 0x151fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x152000, 0x153fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x154000, 0x155fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x160000, 0x161fff) AM_READWRITE_LEGACY(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
- AM_RANGE(0x164000, 0x165fff) AM_READWRITE_LEGACY(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
+ AM_RANGE(0x160000, 0x161fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
+ AM_RANGE(0x164000, 0x165fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
AM_RANGE(0x170000, 0x170003) AM_READONLY AM_WRITENOP // ?
AM_RANGE(0x180000, 0x180003) AM_DEVREADWRITE8("okisfx", okim6295_device, read, write, 0x000000ff)
AM_RANGE(0x1c0000, 0x1c0003) AM_DEVREADWRITE8("okimusic", okim6295_device, read, write, 0x000000ff)
- AM_RANGE(0x200000, 0x200003) AM_READ_LEGACY(simpl156_inputs_read)
+ AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE(m_systemram) // work ram (32-bit)
ADDRESS_MAP_END
@@ -271,19 +261,19 @@ ADDRESS_MAP_END
/* Chain Reaction */
static ADDRESS_MAP_START( chainrec_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM // rom (32-bit)
- AM_RANGE(0x200000, 0x200003) AM_READ_LEGACY(simpl156_inputs_read)
+ AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE(m_systemram) // work ram (32-bit)
AM_RANGE(0x3c0000, 0x3c0003) AM_DEVREADWRITE8("okimusic", okim6295_device, read, write, 0x000000ff)
- AM_RANGE(0x400000, 0x407fff) AM_READWRITE_LEGACY(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram?
- AM_RANGE(0x410000, 0x411fff) AM_READWRITE_LEGACY(simpl156_spriteram_r, simpl156_spriteram_w)
- AM_RANGE(0x420000, 0x420fff) AM_READWRITE_LEGACY(simpl156_palette_r,simpl156_palette_w)
- AM_RANGE(0x430000, 0x430003) AM_READWRITE_LEGACY(simpl156_system_r,simpl156_eeprom_w)
+ AM_RANGE(0x400000, 0x407fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram?
+ AM_RANGE(0x410000, 0x411fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
+ AM_RANGE(0x420000, 0x420fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
+ AM_RANGE(0x430000, 0x430003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
AM_RANGE(0x440000, 0x44001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x450000, 0x451fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x452000, 0x453fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x454000, 0x455fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x460000, 0x461fff) AM_READWRITE_LEGACY(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
- AM_RANGE(0x464000, 0x465fff) AM_READWRITE_LEGACY(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
+ AM_RANGE(0x460000, 0x461fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
+ AM_RANGE(0x464000, 0x465fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
AM_RANGE(0x470000, 0x470003) AM_READONLY AM_WRITENOP // ??
AM_RANGE(0x480000, 0x480003) AM_DEVREADWRITE8("okisfx", okim6295_device, read, write, 0x000000ff)
ADDRESS_MAP_END
@@ -292,19 +282,19 @@ ADDRESS_MAP_END
/* Magical Drop */
static ADDRESS_MAP_START( magdrop_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x200000, 0x200003) AM_READ_LEGACY(simpl156_inputs_read)
+ AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE(m_systemram) // work ram (32-bit)
AM_RANGE(0x340000, 0x340003) AM_DEVREADWRITE8("okimusic", okim6295_device, read, write, 0x000000ff)
- AM_RANGE(0x380000, 0x387fff) AM_READWRITE_LEGACY(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram?
- AM_RANGE(0x390000, 0x391fff) AM_READWRITE_LEGACY(simpl156_spriteram_r, simpl156_spriteram_w)
- AM_RANGE(0x3a0000, 0x3a0fff) AM_READWRITE_LEGACY(simpl156_palette_r,simpl156_palette_w)
- AM_RANGE(0x3b0000, 0x3b0003) AM_READWRITE_LEGACY(simpl156_system_r,simpl156_eeprom_w)
+ AM_RANGE(0x380000, 0x387fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram?
+ AM_RANGE(0x390000, 0x391fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
+ AM_RANGE(0x3a0000, 0x3a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
+ AM_RANGE(0x3b0000, 0x3b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
AM_RANGE(0x3c0000, 0x3c001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x3d0000, 0x3d1fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x3d2000, 0x3d3fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x3d4000, 0x3d5fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x3e0000, 0x3e1fff) AM_READWRITE_LEGACY(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
- AM_RANGE(0x3e4000, 0x3e5fff) AM_READWRITE_LEGACY(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
+ AM_RANGE(0x3e0000, 0x3e1fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
+ AM_RANGE(0x3e4000, 0x3e5fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
AM_RANGE(0x3f0000, 0x3f0003) AM_READONLY AM_WRITENOP //?
AM_RANGE(0x400000, 0x400003) AM_DEVREADWRITE8("okisfx", okim6295_device, read, write, 0x000000ff)
ADDRESS_MAP_END
@@ -313,19 +303,19 @@ ADDRESS_MAP_END
/* Magical Drop Plus 1 */
static ADDRESS_MAP_START( magdropp_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x200000, 0x200003) AM_READ_LEGACY(simpl156_inputs_read)
+ AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE(m_systemram) // work ram (32-bit)
AM_RANGE(0x4c0000, 0x4c0003) AM_DEVREADWRITE8("okimusic", okim6295_device, read, write, 0x000000ff)
- AM_RANGE(0x680000, 0x687fff) AM_READWRITE_LEGACY(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram?
- AM_RANGE(0x690000, 0x691fff) AM_READWRITE_LEGACY(simpl156_spriteram_r, simpl156_spriteram_w)
- AM_RANGE(0x6a0000, 0x6a0fff) AM_READWRITE_LEGACY(simpl156_palette_r,simpl156_palette_w)
- AM_RANGE(0x6b0000, 0x6b0003) AM_READWRITE_LEGACY(simpl156_system_r,simpl156_eeprom_w)
+ AM_RANGE(0x680000, 0x687fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram?
+ AM_RANGE(0x690000, 0x691fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
+ AM_RANGE(0x6a0000, 0x6a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
+ AM_RANGE(0x6b0000, 0x6b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
AM_RANGE(0x6c0000, 0x6c001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x6d0000, 0x6d1fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x6d2000, 0x6d3fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x6d4000, 0x6d5fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x6e0000, 0x6e1fff) AM_READWRITE_LEGACY(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
- AM_RANGE(0x6e4000, 0x6e5fff) AM_READWRITE_LEGACY(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
+ AM_RANGE(0x6e0000, 0x6e1fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
+ AM_RANGE(0x6e4000, 0x6e5fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
AM_RANGE(0x6f0000, 0x6f0003) AM_READONLY AM_WRITENOP // ?
AM_RANGE(0x780000, 0x780003) AM_DEVREADWRITE8("okisfx", okim6295_device, read, write, 0x000000ff)
ADDRESS_MAP_END
@@ -336,18 +326,18 @@ static ADDRESS_MAP_START( mitchell156_map, AS_PROGRAM, 32, simpl156_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100003) AM_DEVREADWRITE8("okisfx", okim6295_device, read, write, 0x000000ff)
AM_RANGE(0x140000, 0x140003) AM_DEVREADWRITE8("okimusic", okim6295_device, read, write, 0x000000ff)
- AM_RANGE(0x180000, 0x187fff) AM_READWRITE_LEGACY(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram
- AM_RANGE(0x190000, 0x191fff) AM_READWRITE_LEGACY(simpl156_spriteram_r, simpl156_spriteram_w)
- AM_RANGE(0x1a0000, 0x1a0fff) AM_READWRITE_LEGACY(simpl156_palette_r,simpl156_palette_w)
- AM_RANGE(0x1b0000, 0x1b0003) AM_READWRITE_LEGACY(simpl156_system_r,simpl156_eeprom_w)
+ AM_RANGE(0x180000, 0x187fff) AM_READWRITE(simpl156_mainram_r, simpl156_mainram_w) AM_BASE(m_mainram) // main ram
+ AM_RANGE(0x190000, 0x191fff) AM_READWRITE(simpl156_spriteram_r, simpl156_spriteram_w)
+ AM_RANGE(0x1a0000, 0x1a0fff) AM_READWRITE(simpl156_palette_r,simpl156_palette_w)
+ AM_RANGE(0x1b0000, 0x1b0003) AM_READWRITE(simpl156_system_r,simpl156_eeprom_w)
AM_RANGE(0x1c0000, 0x1c001f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_dword_r, deco16ic_pf_control_dword_w)
AM_RANGE(0x1d0000, 0x1d1fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1d2000, 0x1d3fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_dword_r, deco16ic_pf1_data_dword_w)
AM_RANGE(0x1d4000, 0x1d5fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_dword_r, deco16ic_pf2_data_dword_w)
- AM_RANGE(0x1e0000, 0x1e1fff) AM_READWRITE_LEGACY(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
- AM_RANGE(0x1e4000, 0x1e5fff) AM_READWRITE_LEGACY(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
+ AM_RANGE(0x1e0000, 0x1e1fff) AM_READWRITE(simpl156_pf1_rowscroll_r, simpl156_pf1_rowscroll_w)
+ AM_RANGE(0x1e4000, 0x1e5fff) AM_READWRITE(simpl156_pf2_rowscroll_r, simpl156_pf2_rowscroll_w)
AM_RANGE(0x1f0000, 0x1f0003) AM_READONLY AM_WRITENOP // ?
- AM_RANGE(0x200000, 0x200003) AM_READ_LEGACY(simpl156_inputs_read)
+ AM_RANGE(0x200000, 0x200003) AM_READ(simpl156_inputs_read)
AM_RANGE(0x201000, 0x201fff) AM_RAM AM_BASE(m_systemram) // work ram (32-bit)
ADDRESS_MAP_END
@@ -1062,75 +1052,75 @@ static DRIVER_INIT( simpl156 )
}
/* Everything seems more stable if we run the CPU speed x4 and use Idle skips.. maybe it has an internal multipler? */
-static READ32_HANDLER( joemacr_speedup_r )
+READ32_MEMBER(simpl156_state::joemacr_speedup_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- if (cpu_get_pc(&space->device()) == 0x284)
- device_spin_until_time(&space->device(), attotime::from_usec(400));
- return state->m_systemram[0x18/4];
+ if (cpu_get_pc(&space.device()) == 0x284)
+ device_spin_until_time(&space.device(), attotime::from_usec(400));
+ return m_systemram[0x18/4];
}
static DRIVER_INIT( joemacr )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0201018, 0x020101b, FUNC(joemacr_speedup_r) );
+ simpl156_state *state = machine.driver_data<simpl156_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0201018, 0x020101b, read32_delegate(FUNC(simpl156_state::joemacr_speedup_r),state));
DRIVER_INIT_CALL(simpl156);
}
-static READ32_HANDLER( chainrec_speedup_r )
+READ32_MEMBER(simpl156_state::chainrec_speedup_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- if (cpu_get_pc(&space->device()) == 0x2d4)
- device_spin_until_time(&space->device(), attotime::from_usec(400));
- return state->m_systemram[0x18/4];
+ if (cpu_get_pc(&space.device()) == 0x2d4)
+ device_spin_until_time(&space.device(), attotime::from_usec(400));
+ return m_systemram[0x18/4];
}
static DRIVER_INIT( chainrec )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0201018, 0x020101b, FUNC(chainrec_speedup_r) );
+ simpl156_state *state = machine.driver_data<simpl156_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0201018, 0x020101b, read32_delegate(FUNC(simpl156_state::chainrec_speedup_r),state));
DRIVER_INIT_CALL(simpl156);
}
-static READ32_HANDLER( prtytime_speedup_r )
+READ32_MEMBER(simpl156_state::prtytime_speedup_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- if (cpu_get_pc(&space->device()) == 0x4f0)
- device_spin_until_time(&space->device(), attotime::from_usec(400));
- return state->m_systemram[0xae0/4];
+ if (cpu_get_pc(&space.device()) == 0x4f0)
+ device_spin_until_time(&space.device(), attotime::from_usec(400));
+ return m_systemram[0xae0/4];
}
static DRIVER_INIT( prtytime )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0201ae0, 0x0201ae3, FUNC(prtytime_speedup_r) );
+ simpl156_state *state = machine.driver_data<simpl156_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0201ae0, 0x0201ae3, read32_delegate(FUNC(simpl156_state::prtytime_speedup_r),state));
DRIVER_INIT_CALL(simpl156);
}
-static READ32_HANDLER( charlien_speedup_r )
+READ32_MEMBER(simpl156_state::charlien_speedup_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- if (cpu_get_pc(&space->device()) == 0xc8c8)
- device_spin_until_time(&space->device(), attotime::from_usec(400));
- return state->m_systemram[0x10/4];
+ if (cpu_get_pc(&space.device()) == 0xc8c8)
+ device_spin_until_time(&space.device(), attotime::from_usec(400));
+ return m_systemram[0x10/4];
}
static DRIVER_INIT( charlien )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0201010, 0x0201013, FUNC(charlien_speedup_r) );
+ simpl156_state *state = machine.driver_data<simpl156_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0201010, 0x0201013, read32_delegate(FUNC(simpl156_state::charlien_speedup_r),state));
DRIVER_INIT_CALL(simpl156);
}
-static READ32_HANDLER( osman_speedup_r )
+READ32_MEMBER(simpl156_state::osman_speedup_r)
{
- simpl156_state *state = space->machine().driver_data<simpl156_state>();
- if (cpu_get_pc(&space->device()) == 0x5974)
- device_spin_until_time(&space->device(), attotime::from_usec(400));
- return state->m_systemram[0x10/4];
+ if (cpu_get_pc(&space.device()) == 0x5974)
+ device_spin_until_time(&space.device(), attotime::from_usec(400));
+ return m_systemram[0x10/4];
}
static DRIVER_INIT( osman )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x0201010, 0x0201013, FUNC(osman_speedup_r) );
+ simpl156_state *state = machine.driver_data<simpl156_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x0201010, 0x0201013, read32_delegate(FUNC(simpl156_state::osman_speedup_r),state));
DRIVER_INIT_CALL(simpl156);
}
diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c
index ac91ec3db8f..586f5b7dbe6 100644
--- a/src/mame/drivers/simpsons.c
+++ b/src/mame/drivers/simpsons.c
@@ -106,9 +106,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, simpsons_state )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static WRITE8_HANDLER( z80_bankswitch_w )
+WRITE8_MEMBER(simpsons_state::z80_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank2", data & 7);
+ memory_set_bank(machine(), "bank2", data & 7);
}
#if 0
@@ -126,11 +126,10 @@ static TIMER_CALLBACK( nmi_callback )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( z80_arm_nmi_w )
+WRITE8_MEMBER(simpsons_state::z80_arm_nmi_w)
{
- simpsons_state *state = space->machine().driver_data<simpsons_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- space->machine().scheduler().timer_set(attotime::from_usec(25), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ machine().scheduler().timer_set(attotime::from_usec(25), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
}
static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, simpsons_state )
@@ -138,9 +137,9 @@ static ADDRESS_MAP_START( z80_map, AS_PROGRAM, 8, simpsons_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank2")
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(z80_arm_nmi_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(z80_arm_nmi_w)
AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
- AM_RANGE(0xfe00, 0xfe00) AM_WRITE_LEGACY(z80_bankswitch_w)
+ AM_RANGE(0xfe00, 0xfe00) AM_WRITE(z80_bankswitch_w)
ADDRESS_MAP_END
/***************************************************************************
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index 265311e7782..b63f90dc392 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -137,10 +137,9 @@ static PALETTE_INIT( skydiver )
*
*************************************/
-static WRITE8_HANDLER( skydiver_nmion_w )
+WRITE8_MEMBER(skydiver_state::skydiver_nmion_w)
{
- skydiver_state *state = space->machine().driver_data<skydiver_state>();
- state->m_nmion = offset;
+ m_nmion = offset;
}
@@ -202,7 +201,7 @@ static ADDRESS_MAP_START( skydiver_map, AS_PROGRAM, 8, skydiver_state )
AM_RANGE(0x1002, 0x1003) AM_MIRROR(0x47f0) AM_WRITE_LEGACY(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(0x100c, 0x100d) AM_MIRROR(0x47f0) AM_WRITE_LEGACY(skydiver_nmion_w)
+ AM_RANGE(0x100c, 0x100d) AM_MIRROR(0x47f0) AM_WRITE(skydiver_nmion_w)
AM_RANGE(0x100e, 0x100f) AM_MIRROR(0x47f0) AM_WRITE_LEGACY(skydiver_width_w)
AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x47e0) AM_READ_PORT("IN0")
AM_RANGE(0x1801, 0x1801) AM_MIRROR(0x47e0) AM_READ_PORT("IN1")
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 85c5a6a30fd..7922b521a81 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -20,76 +20,72 @@ Notes:
#include "includes/skykid.h"
-static WRITE8_HANDLER( inputport_select_w )
+WRITE8_MEMBER(skykid_state::inputport_select_w)
{
- skykid_state *state = space->machine().driver_data<skykid_state>();
if ((data & 0xe0) == 0x60)
- state->m_inputport_selected = data & 0x07;
+ m_inputport_selected = data & 0x07;
else if ((data & 0xe0) == 0xc0)
{
- coin_lockout_global_w(space->machine(), ~data & 1);
- coin_counter_w(space->machine(), 0,data & 2);
- coin_counter_w(space->machine(), 1,data & 4);
+ coin_lockout_global_w(machine(), ~data & 1);
+ coin_counter_w(machine(), 0,data & 2);
+ coin_counter_w(machine(), 1,data & 4);
}
}
-static READ8_HANDLER( inputport_r )
+READ8_MEMBER(skykid_state::inputport_r)
{
- skykid_state *state = space->machine().driver_data<skykid_state>();
- switch (state->m_inputport_selected)
+ switch (m_inputport_selected)
{
case 0x00: /* DSW B (bits 0-4) */
- return (input_port_read(space->machine(), "DSWB") & 0xf8) >> 3;
+ return (input_port_read(machine(), "DSWB") & 0xf8) >> 3;
case 0x01: /* DSW B (bits 5-7), DSW A (bits 0-1) */
- return ((input_port_read(space->machine(), "DSWB") & 0x07) << 2) | ((input_port_read(space->machine(), "DSWA") & 0xc0) >> 6);
+ return ((input_port_read(machine(), "DSWB") & 0x07) << 2) | ((input_port_read(machine(), "DSWA") & 0xc0) >> 6);
case 0x02: /* DSW A (bits 2-6) */
- return (input_port_read(space->machine(), "DSWA") & 0x3e) >> 1;
+ return (input_port_read(machine(), "DSWA") & 0x3e) >> 1;
case 0x03: /* DSW A (bit 7), DSW C (bits 0-3) */
- return ((input_port_read(space->machine(), "DSWA") & 0x01) << 4) | (input_port_read(space->machine(), "BUTTON2") & 0x0f);
+ return ((input_port_read(machine(), "DSWA") & 0x01) << 4) | (input_port_read(machine(), "BUTTON2") & 0x0f);
case 0x04: /* coins, start */
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 0x05: /* 2P controls */
- return input_port_read(space->machine(), "P2");
+ return input_port_read(machine(), "P2");
case 0x06: /* 1P controls */
- return input_port_read(space->machine(), "P1");
+ return input_port_read(machine(), "P1");
default:
return 0xff;
}
}
-static WRITE8_HANDLER( skykid_led_w )
+WRITE8_MEMBER(skykid_state::skykid_led_w)
{
- set_led_status(space->machine(), 0,data & 0x08);
- set_led_status(space->machine(), 1,data & 0x10);
+ set_led_status(machine(), 0,data & 0x08);
+ set_led_status(machine(), 1,data & 0x10);
}
-static WRITE8_HANDLER( skykid_subreset_w )
+WRITE8_MEMBER(skykid_state::skykid_subreset_w)
{
int bit = !BIT(offset,11);
- cputag_set_input_line(space->machine(), "mcu", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "mcu", INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( skykid_bankswitch_w )
+WRITE8_MEMBER(skykid_state::skykid_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", !BIT(offset,11));
+ memory_set_bank(machine(), "bank1", !BIT(offset,11));
}
-static WRITE8_HANDLER( skykid_irq_1_ctrl_w )
+WRITE8_MEMBER(skykid_state::skykid_irq_1_ctrl_w)
{
- skykid_state *state = space->machine().driver_data<skykid_state>();
int bit = !BIT(offset,11);
- state->m_main_irq_mask = bit;
+ m_main_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( skykid_irq_2_ctrl_w )
+WRITE8_MEMBER(skykid_state::skykid_irq_2_ctrl_w)
{
- skykid_state *state = space->machine().driver_data<skykid_state>();
int bit = !BIT(offset,13);
- state->m_mcu_irq_mask = bit;
+ m_mcu_irq_mask = bit;
if (!bit)
- cputag_set_input_line(space->machine(), "mcu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "mcu", 0, CLEAR_LINE);
}
static MACHINE_START( skykid )
@@ -111,11 +107,11 @@ static ADDRESS_MAP_START( skykid_map, AS_PROGRAM, 8, skykid_state )
AM_RANGE(0x6000, 0x60ff) AM_WRITE_LEGACY(skykid_scroll_y_w) /* Y scroll register map */
AM_RANGE(0x6200, 0x63ff) AM_WRITE_LEGACY(skykid_scroll_x_w) /* X scroll register map */
AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE_LEGACY("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
- AM_RANGE(0x7000, 0x7fff) AM_WRITE_LEGACY(skykid_irq_1_ctrl_w) /* IRQ control */
+ AM_RANGE(0x7000, 0x7fff) AM_WRITE(skykid_irq_1_ctrl_w) /* IRQ control */
AM_RANGE(0x7800, 0x7fff) AM_READ_LEGACY(watchdog_reset_r) /* watchdog reset */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
- AM_RANGE(0x8000, 0x8fff) AM_WRITE_LEGACY(skykid_subreset_w) /* MCU control */
- AM_RANGE(0x9000, 0x9fff) AM_WRITE_LEGACY(skykid_bankswitch_w) /* Bankswitch control */
+ AM_RANGE(0x8000, 0x8fff) AM_WRITE(skykid_subreset_w) /* MCU control */
+ AM_RANGE(0x9000, 0x9fff) AM_WRITE(skykid_bankswitch_w) /* Bankswitch control */
AM_RANGE(0xa000, 0xa001) AM_WRITE_LEGACY(skykid_flipscreen_priority_w) /* flip screen & priority */
ADDRESS_MAP_END
@@ -124,23 +120,23 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, skykid_state )
AM_RANGE(0x0080, 0x00ff) AM_RAM
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE_LEGACY("namco", namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
AM_RANGE(0x2000, 0x3fff) AM_WRITE_LEGACY(watchdog_reset_w) /* watchdog? */
- AM_RANGE(0x4000, 0x7fff) AM_WRITE_LEGACY(skykid_irq_2_ctrl_w)
+ AM_RANGE(0x4000, 0x7fff) AM_WRITE(skykid_irq_2_ctrl_w)
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static READ8_HANDLER( readFF )
+READ8_MEMBER(skykid_state::readFF)
{
return 0xff;
}
static ADDRESS_MAP_START( mcu_port_map, AS_IO, 8, skykid_state )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_LEGACY(inputport_r) /* input ports read */
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE_LEGACY(inputport_select_w) /* input port select */
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ_LEGACY(readFF) /* leds won't work otherwise */
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE_LEGACY(skykid_led_w) /* lamps */
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(inputport_r) /* input ports read */
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(inputport_select_w) /* input port select */
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE(skykid_led_w) /* lamps */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c
index 8b18e06eaa8..5491c8a914f 100644
--- a/src/mame/drivers/skyraid.c
+++ b/src/mame/drivers/skyraid.c
@@ -34,41 +34,37 @@ static PALETTE_INIT( skyraid )
palette_set_color(machine, 19, MAKE_RGB(0xE0, 0xE0, 0xE0));
}
-static READ8_HANDLER( skyraid_port_0_r )
+READ8_MEMBER(skyraid_state::skyraid_port_0_r)
{
- skyraid_state *state = space->machine().driver_data<skyraid_state>();
- UINT8 val = input_port_read(space->machine(), "LANGUAGE");
+ UINT8 val = input_port_read(machine(), "LANGUAGE");
- if (input_port_read(space->machine(), "STICKY") > state->m_analog_range)
+ if (input_port_read(machine(), "STICKY") > m_analog_range)
val |= 0x40;
- if (input_port_read(space->machine(), "STICKX") > state->m_analog_range)
+ if (input_port_read(machine(), "STICKX") > m_analog_range)
val |= 0x80;
return val;
}
-static WRITE8_HANDLER( skyraid_range_w )
+WRITE8_MEMBER(skyraid_state::skyraid_range_w)
{
- skyraid_state *state = space->machine().driver_data<skyraid_state>();
- state->m_analog_range = data & 0x3f;
+ m_analog_range = data & 0x3f;
}
-static WRITE8_HANDLER( skyraid_offset_w )
+WRITE8_MEMBER(skyraid_state::skyraid_offset_w)
{
- skyraid_state *state = space->machine().driver_data<skyraid_state>();
- state->m_analog_offset = data & 0x3f;
+ m_analog_offset = data & 0x3f;
}
-static WRITE8_HANDLER( skyraid_scroll_w )
+WRITE8_MEMBER(skyraid_state::skyraid_scroll_w)
{
- skyraid_state *state = space->machine().driver_data<skyraid_state>();
- state->m_scroll = data;
+ m_scroll = data;
}
@@ -76,16 +72,16 @@ static ADDRESS_MAP_START( skyraid_map, AS_PROGRAM, 8, skyraid_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x300)
AM_RANGE(0x0400, 0x040f) AM_WRITEONLY AM_BASE(m_pos_ram)
AM_RANGE(0x0800, 0x087f) AM_RAM AM_MIRROR(0x480) AM_BASE(m_alpha_num_ram)
- AM_RANGE(0x1000, 0x1000) AM_READ_LEGACY(skyraid_port_0_r)
+ AM_RANGE(0x1000, 0x1000) AM_READ(skyraid_port_0_r)
AM_RANGE(0x1001, 0x1001) AM_READ_PORT("DSW")
AM_RANGE(0x1400, 0x1400) AM_READ_PORT("COIN")
AM_RANGE(0x1400, 0x1401) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_BASE(m_obj_ram)
- AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(skyraid_scroll_w)
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(skyraid_scroll_w)
AM_RANGE(0x4400, 0x4400) AM_DEVWRITE_LEGACY("discrete", skyraid_sound_w)
- AM_RANGE(0x4800, 0x4800) AM_WRITE_LEGACY(skyraid_range_w)
+ AM_RANGE(0x4800, 0x4800) AM_WRITE(skyraid_range_w)
AM_RANGE(0x5000, 0x5000) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x5800, 0x5800) AM_WRITE_LEGACY(skyraid_offset_w)
+ AM_RANGE(0x5800, 0x5800) AM_WRITE(skyraid_offset_w)
AM_RANGE(0x7000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index afd90f3ffdd..36d4eaa3a65 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -353,14 +353,14 @@ static ADDRESS_MAP_START( slapfight_m68705_map, AS_PROGRAM, 8, slapfght_state )
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
-static READ8_HANDLER(tigerh_status_r)
+READ8_MEMBER(slapfght_state::tigerh_status_r)
{
- return (slapfight_port_00_r(space, 0) & 0xf9)| ((tigerh_mcu_status_r(space, 0)));
+ return (slapfight_port_00_r(&space, 0) & 0xf9)| ((tigerh_mcu_status_r(&space, 0)));
}
static ADDRESS_MAP_START( tigerh_io_map, AS_IO, 8, slapfght_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READWRITE_LEGACY(tigerh_status_r, slapfight_port_00_w) /* status register */
+ AM_RANGE(0x00, 0x00) AM_READ(tigerh_status_r) AM_WRITE_LEGACY(slapfight_port_00_w) /* status register */
AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(slapfight_port_01_w)
AM_RANGE(0x02, 0x03) AM_WRITE_LEGACY(slapfight_flipscreen_w)
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(slapfight_port_06_w)
@@ -1749,7 +1749,7 @@ static DRIVER_INIT( tigerhb )
}
-static READ8_HANDLER( gtstarb1_port_0_read )
+READ8_MEMBER(slapfght_state::gtstarb1_port_0_read)
{
/* The bootleg has it's own 'protection' on startup ?
6D1A: 06 04 ld b,$04
@@ -1770,10 +1770,10 @@ static READ8_HANDLER( gtstarb1_port_0_read )
6D38: 20 F8 jr nz,$6D32
6D3A: 10 E0 djnz $6D1C
*/
- if (cpu_get_pc(&space->device()) == 0x6d1e) return 0;
- if (cpu_get_pc(&space->device()) == 0x6d24) return 6;
- if (cpu_get_pc(&space->device()) == 0x6d2c) return 2;
- if (cpu_get_pc(&space->device()) == 0x6d34) return 4;
+ if (cpu_get_pc(&space.device()) == 0x6d1e) return 0;
+ if (cpu_get_pc(&space.device()) == 0x6d24) return 6;
+ if (cpu_get_pc(&space.device()) == 0x6d2c) return 2;
+ if (cpu_get_pc(&space.device()) == 0x6d34) return 4;
/* The bootleg hangs in the "test mode" before diplaying (wrong) lives settings :
6AD4: DB 00 in a,($00)
@@ -1794,11 +1794,11 @@ static READ8_HANDLER( gtstarb1_port_0_read )
6AF7: 20 FA jr nz,$6AF3
This seems to be what used to be the MCU status.
*/
- if (cpu_get_pc(&space->device()) == 0x6ad6) return 2; /* bit 1 must be ON */
- if (cpu_get_pc(&space->device()) == 0x6ae4) return 2; /* bit 1 must be ON */
- if (cpu_get_pc(&space->device()) == 0x6af5) return 0; /* bit 2 must be OFF */
+ if (cpu_get_pc(&space.device()) == 0x6ad6) return 2; /* bit 1 must be ON */
+ if (cpu_get_pc(&space.device()) == 0x6ae4) return 2; /* bit 1 must be ON */
+ if (cpu_get_pc(&space.device()) == 0x6af5) return 0; /* bit 2 must be OFF */
- logerror("Port Read PC=%04x\n",cpu_get_pc(&space->device()));
+ logerror("Port Read PC=%04x\n",cpu_get_pc(&space.device()));
return 0;
}
@@ -1832,7 +1832,7 @@ static DRIVER_INIT( gtstarb1 )
getstar_init(machine);
/* specific handlers for this bootleg */
- machine.device("maincpu")->memory().space(AS_IO)->install_legacy_read_handler(0x0, 0x0, FUNC(gtstarb1_port_0_read) );
+ machine.device("maincpu")->memory().space(AS_IO)->install_read_handler(0x0, 0x0, read8_delegate(FUNC(slapfght_state::gtstarb1_port_0_read),state));
/* requires this or it gets stuck with 'rom test' on screen */
/* it is possible the program roms are slighly corrupt like the gfx roms, or
that the bootleg simply shouldn't execute the code due to the modified roms */
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index bd519be7ecb..a9df7ce0aa5 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -146,25 +146,23 @@ Region byte at offset 0x031:
COLOR
******************************************************/
-static READ16_HANDLER( color_ram_word_r )
+READ16_MEMBER(slapshot_state::color_ram_word_r)
{
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
- return state->m_color_ram[offset];
+ return m_color_ram[offset];
}
-static WRITE16_HANDLER( color_ram_word_w )
+WRITE16_MEMBER(slapshot_state::color_ram_word_w)
{
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
int r,g,b;
- COMBINE_DATA(&state->m_color_ram[offset]);
+ COMBINE_DATA(&m_color_ram[offset]);
if ((offset % 2) == 1) /* assume words written sequentially */
{
- r = (state->m_color_ram[offset- 1 ] & 0xff);
- g = (state->m_color_ram[offset] & 0xff00) >> 8;
- b = (state->m_color_ram[offset] & 0xff);
+ r = (m_color_ram[offset- 1 ] & 0xff);
+ g = (m_color_ram[offset] & 0xff00) >> 8;
+ b = (m_color_ram[offset] & 0xff);
- palette_set_color(space->machine(), offset / 2, MAKE_RGB(r,g,b));
+ palette_set_color(machine(), offset / 2, MAKE_RGB(r,g,b));
}
}
@@ -191,29 +189,28 @@ static INTERRUPT_GEN( slapshot_interrupt )
GAME INPUTS
**********************************************************/
-static READ16_HANDLER( slapshot_service_input_r )
+READ16_MEMBER(slapshot_state::slapshot_service_input_r)
{
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
switch (offset)
{
case 0x03:
- return ((input_port_read(space->machine(), "SYSTEM") & 0xef) |
- (input_port_read(space->machine(), "SERVICE") & 0x10)) << 8; /* IN3 + service switch */
+ return ((input_port_read(machine(), "SYSTEM") & 0xef) |
+ (input_port_read(machine(), "SERVICE") & 0x10)) << 8; /* IN3 + service switch */
default:
- return tc0640fio_r(state->m_tc0640fio, offset) << 8;
+ return tc0640fio_r(m_tc0640fio, offset) << 8;
}
}
-static READ16_HANDLER( opwolf3_adc_r )
+READ16_MEMBER(slapshot_state::opwolf3_adc_r)
{
static const char *const adcnames[] = { "GUN1X", "GUN1Y", "GUN2X", "GUN2Y" };
- return input_port_read(space->machine(), adcnames[offset]) << 8;
+ return input_port_read(machine(), adcnames[offset]) << 8;
}
-static WRITE16_HANDLER( opwolf3_adc_req_w )
+WRITE16_MEMBER(slapshot_state::opwolf3_adc_req_w)
{
switch (offset)
{
@@ -233,10 +230,9 @@ static WRITE16_HANDLER( opwolf3_adc_req_w )
output_set_value("Player2_Gun_Recoil",0);
break;
}
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
/* 4 writes a frame - one for each analogue port */
- device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
+ device_set_input_line(m_maincpu, 3, HOLD_LINE);
}
/*****************************************************
@@ -249,11 +245,10 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank10", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(slapshot_state::sound_bankswitch_w)
{
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
- state->m_banknum = data & 7;
- reset_sound_region(space->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
@@ -261,13 +256,12 @@ static WRITE8_HANDLER( sound_bankswitch_w )
-static WRITE16_HANDLER( slapshot_msb_sound_w )
+WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w)
{
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, (data >> 8) & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, (data >> 8) & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, (data >> 8) & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, (data >> 8) & 0xff);
#ifdef MAME_DEBUG
if (data & 0xff)
@@ -275,11 +269,10 @@ static WRITE16_HANDLER( slapshot_msb_sound_w )
#endif
}
-static READ16_HANDLER( slapshot_msb_sound_r )
+READ16_MEMBER(slapshot_state::slapshot_msb_sound_r)
{
- slapshot_state *state = space->machine().driver_data<slapshot_state>();
if (offset == 1)
- return ((tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff) << 8);
+ return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff) << 8);
else
return 0;
}
@@ -296,12 +289,12 @@ static ADDRESS_MAP_START( slapshot_map, AS_PROGRAM, 16, slapshot_state )
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE(m_spriteext, m_spriteext_size) /* debugging */
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_word_r, tc0480scp_ctrl_word_w)
- AM_RANGE(0x900000, 0x907fff) AM_READWRITE_LEGACY(color_ram_word_r, color_ram_word_w) AM_BASE(m_color_ram) /* 8bpg palette */
+ AM_RANGE(0x900000, 0x907fff) AM_READWRITE(color_ram_word_r, color_ram_word_w) AM_BASE(m_color_ram) /* 8bpg palette */
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8_LEGACY("mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8_LEGACY("tc0360pri", tc0360pri_w, 0xff00) /* priority chip */
AM_RANGE(0xc00000, 0xc0000f) AM_DEVREADWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_r, tc0640fio_halfword_byteswap_w)
- AM_RANGE(0xc00020, 0xc0002f) AM_READ_LEGACY(slapshot_service_input_r) /* service mirror */
- AM_RANGE(0xd00000, 0xd00003) AM_READWRITE_LEGACY(slapshot_msb_sound_r, slapshot_msb_sound_w)
+ AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
+ AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16, slapshot_state )
@@ -311,13 +304,13 @@ static ADDRESS_MAP_START( opwolf3_map, AS_PROGRAM, 16, slapshot_state )
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE(m_spriteext, m_spriteext_size) /* debugging */
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_word_r, tc0480scp_ctrl_word_w)
- AM_RANGE(0x900000, 0x907fff) AM_READWRITE_LEGACY(color_ram_word_r, color_ram_word_w) AM_BASE(m_color_ram) /* 8bpg palette */
+ AM_RANGE(0x900000, 0x907fff) AM_READWRITE(color_ram_word_r, color_ram_word_w) AM_BASE(m_color_ram) /* 8bpg palette */
AM_RANGE(0xa00000, 0xa03fff) AM_DEVREADWRITE8_LEGACY("mk48t08", timekeeper_r, timekeeper_w, 0xff00) /* nvram (only low bytes used) */
AM_RANGE(0xb00000, 0xb0001f) AM_DEVWRITE8_LEGACY("tc0360pri", tc0360pri_w, 0xff00) /* priority chip */
AM_RANGE(0xc00000, 0xc0000f) AM_DEVREADWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_r, tc0640fio_halfword_byteswap_w)
- AM_RANGE(0xc00020, 0xc0002f) AM_READ_LEGACY(slapshot_service_input_r) /* service mirror */
- AM_RANGE(0xd00000, 0xd00003) AM_READWRITE_LEGACY(slapshot_msb_sound_r, slapshot_msb_sound_w)
- AM_RANGE(0xe00000, 0xe00007) AM_READWRITE_LEGACY(opwolf3_adc_r, opwolf3_adc_req_w)
+ AM_RANGE(0xc00020, 0xc0002f) AM_READ(slapshot_service_input_r) /* service mirror */
+ AM_RANGE(0xd00000, 0xd00003) AM_READWRITE(slapshot_msb_sound_r, slapshot_msb_sound_w)
+ AM_RANGE(0xe00000, 0xe00007) AM_READWRITE(opwolf3_adc_r, opwolf3_adc_req_w)
ADDRESS_MAP_END
@@ -334,7 +327,7 @@ static ADDRESS_MAP_START( opwolf3_z80_sound_map, AS_PROGRAM, 8, slapshot_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c
index 575621698d0..ae99523f101 100644
--- a/src/mame/drivers/snk.c
+++ b/src/mame/drivers/snk.c
@@ -271,32 +271,32 @@ TODO:
/*********************************************************************/
// Interrupt handlers common to all SNK triple Z80 games
-static READ8_HANDLER ( snk_cpuA_nmi_trigger_r )
+READ8_MEMBER(snk_state::snk_cpuA_nmi_trigger_r)
{
- if(!space->debugger_access())
+ if(!space.debugger_access())
{
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, ASSERT_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, ASSERT_LINE);
}
return 0xff;
}
-static WRITE8_HANDLER( snk_cpuA_nmi_ack_w )
+WRITE8_MEMBER(snk_state::snk_cpuA_nmi_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
}
-static READ8_HANDLER ( snk_cpuB_nmi_trigger_r )
+READ8_MEMBER(snk_state::snk_cpuB_nmi_trigger_r)
{
- if(!space->debugger_access())
+ if(!space.debugger_access())
{
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_NMI, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_NMI, ASSERT_LINE);
}
return 0xff;
}
-static WRITE8_HANDLER( snk_cpuB_nmi_ack_w )
+WRITE8_MEMBER(snk_state::snk_cpuB_nmi_ack_w)
{
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_NMI, CLEAR_LINE);
}
/*********************************************************************/
@@ -314,20 +314,18 @@ enum
/*********************************************************************/
-static WRITE8_HANDLER( marvins_soundlatch_w )
+WRITE8_MEMBER(snk_state::marvins_soundlatch_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_marvins_sound_busy_flag = 1;
+ m_marvins_sound_busy_flag = 1;
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
-static READ8_HANDLER( marvins_soundlatch_r )
+READ8_MEMBER(snk_state::marvins_soundlatch_r)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_marvins_sound_busy_flag = 0;
+ m_marvins_sound_busy_flag = 0;
return soundlatch_r(space, 0);
}
@@ -338,9 +336,9 @@ static CUSTOM_INPUT( marvins_sound_busy )
return state->m_marvins_sound_busy_flag;
}
-static READ8_HANDLER( marvins_sound_nmi_ack_r )
+READ8_MEMBER(snk_state::marvins_sound_nmi_ack_r)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, CLEAR_LINE);
return 0xff;
}
@@ -369,27 +367,27 @@ static TIMER_CALLBACK( sgladiat_sndirq_update_callback )
}
-static WRITE8_HANDLER( sgladiat_soundlatch_w )
+WRITE8_MEMBER(snk_state::sgladiat_soundlatch_w)
{
soundlatch_w(space, offset, data);
- space->machine().scheduler().synchronize(FUNC(sgladiat_sndirq_update_callback), CMDIRQ_BUSY_ASSERT);
+ machine().scheduler().synchronize(FUNC(sgladiat_sndirq_update_callback), CMDIRQ_BUSY_ASSERT);
}
-static READ8_HANDLER( sgladiat_soundlatch_r )
+READ8_MEMBER(snk_state::sgladiat_soundlatch_r)
{
- space->machine().scheduler().synchronize(FUNC(sgladiat_sndirq_update_callback), BUSY_CLEAR);
+ machine().scheduler().synchronize(FUNC(sgladiat_sndirq_update_callback), BUSY_CLEAR);
return soundlatch_r(space,0);
}
-static READ8_HANDLER( sgladiat_sound_nmi_ack_r )
+READ8_MEMBER(snk_state::sgladiat_sound_nmi_ack_r)
{
- space->machine().scheduler().synchronize(FUNC(sgladiat_sndirq_update_callback), CMDIRQ_CLEAR);
+ machine().scheduler().synchronize(FUNC(sgladiat_sndirq_update_callback), CMDIRQ_CLEAR);
return 0xff;
}
-static READ8_HANDLER( sgladiat_sound_irq_ack_r )
+READ8_MEMBER(snk_state::sgladiat_sound_irq_ack_r)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
return 0xff;
}
@@ -492,10 +490,10 @@ static const y8950_interface y8950_config_2 =
-static WRITE8_HANDLER( snk_soundlatch_w )
+WRITE8_MEMBER(snk_state::snk_soundlatch_w)
{
soundlatch_w(space, offset, data);
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_BUSY_ASSERT);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_BUSY_ASSERT);
}
static CUSTOM_INPUT( snk_sound_busy )
@@ -507,47 +505,46 @@ static CUSTOM_INPUT( snk_sound_busy )
-static READ8_HANDLER( snk_sound_status_r )
+READ8_MEMBER(snk_state::snk_sound_status_r)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- return state->m_sound_status;
+ return m_sound_status;
}
-static WRITE8_HANDLER( snk_sound_status_w )
+WRITE8_MEMBER(snk_state::snk_sound_status_w)
{
if (~data & 0x10) // ack YM1 irq
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), YM1IRQ_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), YM1IRQ_CLEAR);
if (~data & 0x20) // ack YM2 irq
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), YM2IRQ_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), YM2IRQ_CLEAR);
if (~data & 0x40) // clear busy flag
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), BUSY_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), BUSY_CLEAR);
if (~data & 0x80) // ack command from main cpu
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_CLEAR);
}
-static READ8_HANDLER( tnk3_cmdirq_ack_r )
+READ8_MEMBER(snk_state::tnk3_cmdirq_ack_r)
{
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), CMDIRQ_CLEAR);
return 0xff;
}
-static READ8_HANDLER( tnk3_ymirq_ack_r )
+READ8_MEMBER(snk_state::tnk3_ymirq_ack_r)
{
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), YM1IRQ_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), YM1IRQ_CLEAR);
return 0xff;
}
-static READ8_HANDLER( tnk3_busy_clear_r )
+READ8_MEMBER(snk_state::tnk3_busy_clear_r)
{
// it's uncertain whether the latch should be cleared here or when it's read
soundlatch_clear_w(space, 0, 0);
- space->machine().scheduler().synchronize(FUNC(sndirq_update_callback), BUSY_CLEAR);
+ machine().scheduler().synchronize(FUNC(sndirq_update_callback), BUSY_CLEAR);
return 0xff;
}
@@ -571,23 +568,20 @@ A trojan could be used on the board to verify the exact behaviour.
*****************************************************************************/
-static WRITE8_HANDLER( hardflags_scrollx_w )
+WRITE8_MEMBER(snk_state::hardflags_scrollx_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_hf_posx = (state->m_hf_posx & ~0xff) | data;
+ m_hf_posx = (m_hf_posx & ~0xff) | data;
}
-static WRITE8_HANDLER( hardflags_scrolly_w )
+WRITE8_MEMBER(snk_state::hardflags_scrolly_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_hf_posy = (state->m_hf_posy & ~0xff) | data;
+ m_hf_posy = (m_hf_posy & ~0xff) | data;
}
-static WRITE8_HANDLER( hardflags_scroll_msb_w )
+WRITE8_MEMBER(snk_state::hardflags_scroll_msb_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_hf_posx = (state->m_hf_posx & 0xff) | ((data & 0x80) << 1);
- state->m_hf_posy = (state->m_hf_posy & 0xff) | ((data & 0x40) << 2);
+ m_hf_posx = (m_hf_posx & 0xff) | ((data & 0x80) << 1);
+ m_hf_posy = (m_hf_posy & 0xff) | ((data & 0x40) << 2);
// low 6 bits might indicate radius, but it's not clear
}
@@ -621,20 +615,20 @@ static int hardflags_check8(running_machine &machine, int num)
(hardflags_check(machine, num + 7) << 7);
}
-static READ8_HANDLER( hardflags1_r ) { return hardflags_check8(space->machine(), 0*8); }
-static READ8_HANDLER( hardflags2_r ) { return hardflags_check8(space->machine(), 1*8); }
-static READ8_HANDLER( hardflags3_r ) { return hardflags_check8(space->machine(), 2*8); }
-static READ8_HANDLER( hardflags4_r ) { return hardflags_check8(space->machine(), 3*8); }
-static READ8_HANDLER( hardflags5_r ) { return hardflags_check8(space->machine(), 4*8); }
-static READ8_HANDLER( hardflags6_r ) { return hardflags_check8(space->machine(), 5*8); }
-static READ8_HANDLER( hardflags7_r )
+READ8_MEMBER(snk_state::hardflags1_r){ return hardflags_check8(machine(), 0*8); }
+READ8_MEMBER(snk_state::hardflags2_r){ return hardflags_check8(machine(), 1*8); }
+READ8_MEMBER(snk_state::hardflags3_r){ return hardflags_check8(machine(), 2*8); }
+READ8_MEMBER(snk_state::hardflags4_r){ return hardflags_check8(machine(), 3*8); }
+READ8_MEMBER(snk_state::hardflags5_r){ return hardflags_check8(machine(), 4*8); }
+READ8_MEMBER(snk_state::hardflags6_r){ return hardflags_check8(machine(), 5*8); }
+READ8_MEMBER(snk_state::hardflags7_r)
{
// apparently the startup tests use bits 0&1 while the game uses bits 4&5
return
- (hardflags_check(space->machine(), 6*8 + 0) << 0) |
- (hardflags_check(space->machine(), 6*8 + 1) << 1) |
- (hardflags_check(space->machine(), 6*8 + 0) << 4) |
- (hardflags_check(space->machine(), 6*8 + 1) << 5);
+ (hardflags_check(machine(), 6*8 + 0) << 0) |
+ (hardflags_check(machine(), 6*8 + 1) << 1) |
+ (hardflags_check(machine(), 6*8 + 0) << 4) |
+ (hardflags_check(machine(), 6*8 + 1) << 5);
}
@@ -655,37 +649,32 @@ A trojan could be used on the board to verify the exact behaviour.
*****************************************************************************/
-static WRITE8_HANDLER( turbocheck16_1_w )
+WRITE8_MEMBER(snk_state::turbocheck16_1_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_tc16_posy = (state->m_tc16_posy & ~0xff) | data;
+ m_tc16_posy = (m_tc16_posy & ~0xff) | data;
}
-static WRITE8_HANDLER( turbocheck16_2_w )
+WRITE8_MEMBER(snk_state::turbocheck16_2_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_tc16_posx = (state->m_tc16_posx & ~0xff) | data;
+ m_tc16_posx = (m_tc16_posx & ~0xff) | data;
}
-static WRITE8_HANDLER( turbocheck32_1_w )
+WRITE8_MEMBER(snk_state::turbocheck32_1_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_tc32_posy = (state->m_tc32_posy & ~0xff) | data;
+ m_tc32_posy = (m_tc32_posy & ~0xff) | data;
}
-static WRITE8_HANDLER( turbocheck32_2_w )
+WRITE8_MEMBER(snk_state::turbocheck32_2_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_tc32_posx = (state->m_tc32_posx & ~0xff) | data;
+ m_tc32_posx = (m_tc32_posx & ~0xff) | data;
}
-static WRITE8_HANDLER( turbocheck_msb_w )
+WRITE8_MEMBER(snk_state::turbocheck_msb_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_tc16_posx = (state->m_tc16_posx & 0xff) | ((data & 0x80) << 1);
- state->m_tc16_posy = (state->m_tc16_posy & 0xff) | ((data & 0x40) << 2);
- state->m_tc32_posx = (state->m_tc32_posx & 0xff) | ((data & 0x80) << 1);
- state->m_tc32_posy = (state->m_tc32_posy & 0xff) | ((data & 0x40) << 2);
+ m_tc16_posx = (m_tc16_posx & 0xff) | ((data & 0x80) << 1);
+ m_tc16_posy = (m_tc16_posy & 0xff) | ((data & 0x40) << 2);
+ m_tc32_posx = (m_tc32_posx & 0xff) | ((data & 0x80) << 1);
+ m_tc32_posy = (m_tc32_posy & 0xff) | ((data & 0x40) << 2);
// low 6 bits might indicate radius, but it's not clear
}
@@ -719,18 +708,18 @@ static int turbofront_check8(running_machine &machine, int small, int num)
(turbofront_check(machine, small, num + 7) << 7);
}
-static READ8_HANDLER( turbocheck16_1_r ) { return turbofront_check8(space->machine(), 1, 0*8); }
-static READ8_HANDLER( turbocheck16_2_r ) { return turbofront_check8(space->machine(), 1, 1*8); }
-static READ8_HANDLER( turbocheck16_3_r ) { return turbofront_check8(space->machine(), 1, 2*8); }
-static READ8_HANDLER( turbocheck16_4_r ) { return turbofront_check8(space->machine(), 1, 3*8); }
-static READ8_HANDLER( turbocheck16_5_r ) { return turbofront_check8(space->machine(), 1, 4*8); }
-static READ8_HANDLER( turbocheck16_6_r ) { return turbofront_check8(space->machine(), 1, 5*8); }
-static READ8_HANDLER( turbocheck16_7_r ) { return turbofront_check8(space->machine(), 1, 6*8); }
-static READ8_HANDLER( turbocheck16_8_r ) { return turbofront_check8(space->machine(), 1, 7*8); }
-static READ8_HANDLER( turbocheck32_1_r ) { return turbofront_check8(space->machine(), 0, 0*8); }
-static READ8_HANDLER( turbocheck32_2_r ) { return turbofront_check8(space->machine(), 0, 1*8); }
-static READ8_HANDLER( turbocheck32_3_r ) { return turbofront_check8(space->machine(), 0, 2*8); }
-static READ8_HANDLER( turbocheck32_4_r ) { return turbofront_check8(space->machine(), 0, 3*8); }
+READ8_MEMBER(snk_state::turbocheck16_1_r){ return turbofront_check8(machine(), 1, 0*8); }
+READ8_MEMBER(snk_state::turbocheck16_2_r){ return turbofront_check8(machine(), 1, 1*8); }
+READ8_MEMBER(snk_state::turbocheck16_3_r){ return turbofront_check8(machine(), 1, 2*8); }
+READ8_MEMBER(snk_state::turbocheck16_4_r){ return turbofront_check8(machine(), 1, 3*8); }
+READ8_MEMBER(snk_state::turbocheck16_5_r){ return turbofront_check8(machine(), 1, 4*8); }
+READ8_MEMBER(snk_state::turbocheck16_6_r){ return turbofront_check8(machine(), 1, 5*8); }
+READ8_MEMBER(snk_state::turbocheck16_7_r){ return turbofront_check8(machine(), 1, 6*8); }
+READ8_MEMBER(snk_state::turbocheck16_8_r){ return turbofront_check8(machine(), 1, 7*8); }
+READ8_MEMBER(snk_state::turbocheck32_1_r){ return turbofront_check8(machine(), 0, 0*8); }
+READ8_MEMBER(snk_state::turbocheck32_2_r){ return turbofront_check8(machine(), 0, 1*8); }
+READ8_MEMBER(snk_state::turbocheck32_3_r){ return turbofront_check8(machine(), 0, 2*8); }
+READ8_MEMBER(snk_state::turbocheck32_4_r){ return turbofront_check8(machine(), 0, 3*8); }
@@ -783,38 +772,37 @@ static CUSTOM_INPUT( gwarb_rotary )
/************************************************************************/
-static WRITE8_HANDLER( athena_coin_counter_w )
+WRITE8_MEMBER(snk_state::athena_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, ~data & 2);
- coin_counter_w(space->machine(), 1, ~data & 1);
+ coin_counter_w(machine(), 0, ~data & 2);
+ coin_counter_w(machine(), 1, ~data & 1);
}
-static WRITE8_HANDLER( ikari_coin_counter_w )
+WRITE8_MEMBER(snk_state::ikari_coin_counter_w)
{
if (~data & 0x80)
{
- coin_counter_w(space->machine(), 0, 1);
- coin_counter_w(space->machine(), 0, 0);
+ coin_counter_w(machine(), 0, 1);
+ coin_counter_w(machine(), 0, 0);
}
if (~data & 0x40)
{
- coin_counter_w(space->machine(), 1, 1);
- coin_counter_w(space->machine(), 1, 0);
+ coin_counter_w(machine(), 1, 1);
+ coin_counter_w(machine(), 1, 0);
}
}
-static WRITE8_HANDLER( tdfever_coin_counter_w )
+WRITE8_MEMBER(snk_state::tdfever_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
- coin_counter_w(space->machine(), 1, data & 2);
+ coin_counter_w(machine(), 0, data & 1);
+ coin_counter_w(machine(), 1, data & 2);
}
-static WRITE8_HANDLER( countryc_trackball_w )
+WRITE8_MEMBER(snk_state::countryc_trackball_w)
{
- snk_state *state = space->machine().driver_data<snk_state>();
- state->m_countryc_trackball = data & 1;
+ m_countryc_trackball = data & 1;
}
static CUSTOM_INPUT( countryc_trackball_x )
@@ -864,11 +852,11 @@ static ADDRESS_MAP_START( marvins_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1")
AM_RANGE(0x8200, 0x8200) AM_READ_PORT("IN2")
- AM_RANGE(0x8300, 0x8300) AM_WRITE_LEGACY(marvins_soundlatch_w)
+ AM_RANGE(0x8300, 0x8300) AM_WRITE(marvins_soundlatch_w)
AM_RANGE(0x8400, 0x8400) AM_READ_PORT("DSW1")
AM_RANGE(0x8500, 0x8500) AM_READ_PORT("DSW2")
AM_RANGE(0x8600, 0x8600) AM_WRITE_LEGACY(marvins_flipscreen_w)
- AM_RANGE(0x8700, 0x8700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_BASE(m_spriteram) AM_SHARE("share1") // + work ram
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(marvins_fg_videoram_w) AM_SHARE("share2") AM_BASE(m_fg_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share3")
@@ -887,7 +875,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( marvins_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x8700, 0x8700) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(marvins_fg_videoram_w) AM_SHARE("share2")
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share3")
@@ -911,11 +899,11 @@ static ADDRESS_MAP_START( madcrash_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1")
AM_RANGE(0x8200, 0x8200) AM_READ_PORT("IN2")
- AM_RANGE(0x8300, 0x8300) AM_WRITE_LEGACY(marvins_soundlatch_w)
+ AM_RANGE(0x8300, 0x8300) AM_WRITE(marvins_soundlatch_w)
AM_RANGE(0x8400, 0x8400) AM_READ_PORT("DSW1")
AM_RANGE(0x8500, 0x8500) AM_READ_PORT("DSW2")
AM_RANGE(0x8600, 0x8600) AM_MIRROR(0xff) AM_WRITE_LEGACY(marvins_flipscreen_w)
- AM_RANGE(0x8700, 0x8700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(m_spriteram) AM_SHARE("share1") // + work ram
AM_RANGE(0xc800, 0xc800) AM_MIRROR(0xff) AM_WRITE_LEGACY(marvins_palette_bank_w)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(marvins_bg_videoram_w) AM_SHARE("share2") AM_BASE(m_bg_videoram)
@@ -934,9 +922,9 @@ static ADDRESS_MAP_START( madcrash_cpuA_map, AS_PROGRAM, 8, snk_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( madcrash_cpuB_map, AS_PROGRAM, 8, snk_state )
- AM_RANGE(0x8700, 0x8700) AM_WRITE_LEGACY(snk_cpuB_nmi_ack_w) // vangrd2
+ AM_RANGE(0x8700, 0x8700) AM_WRITE(snk_cpuB_nmi_ack_w) // vangrd2
AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(snk_cpuB_nmi_ack_w) // madcrash
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w) // madcrash
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(marvins_fg_videoram_w) AM_SHARE("share4")
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share5")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_tx_videoram_w) AM_SHARE("share6")
@@ -958,11 +946,11 @@ static ADDRESS_MAP_START( madcrush_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
AM_RANGE(0x8100, 0x8100) AM_READ_PORT("IN1")
AM_RANGE(0x8200, 0x8200) AM_READ_PORT("IN2")
- AM_RANGE(0x8300, 0x8300) AM_WRITE_LEGACY(marvins_soundlatch_w)
+ AM_RANGE(0x8300, 0x8300) AM_WRITE(marvins_soundlatch_w)
AM_RANGE(0x8400, 0x8400) AM_READ_PORT("DSW1")
AM_RANGE(0x8500, 0x8500) AM_READ_PORT("DSW2")
AM_RANGE(0x8600, 0x8600) AM_MIRROR(0xff) AM_WRITE_LEGACY(marvins_flipscreen_w)
- AM_RANGE(0x8700, 0x8700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0x8700, 0x8700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(m_spriteram) AM_SHARE("share1") // + work ram
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(marvins_fg_videoram_w) AM_SHARE("share4") AM_BASE(m_fg_videoram)
AM_RANGE(0xc800, 0xc800) AM_MIRROR(0xff) AM_WRITE_LEGACY(marvins_palette_bank_w)
@@ -982,7 +970,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( madcrush_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") // + work ram
AM_RANGE(0xc800, 0xc800) AM_MIRROR(0xff) AM_WRITE_LEGACY(marvins_palette_bank_w)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(marvins_fg_videoram_w) AM_SHARE("share4")
@@ -1006,11 +994,11 @@ static ADDRESS_MAP_START( jcross_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN1")
AM_RANGE(0xa200, 0xa200) AM_READ_PORT("IN2")
- AM_RANGE(0xa300, 0xa300) AM_WRITE_LEGACY(sgladiat_soundlatch_w)
+ AM_RANGE(0xa300, 0xa300) AM_WRITE(sgladiat_soundlatch_w)
AM_RANGE(0xa400, 0xa400) AM_READ_PORT("DSW1")
AM_RANGE(0xa500, 0xa500) AM_READ_PORT("DSW2")
AM_RANGE(0xa600, 0xa600) AM_WRITE_LEGACY(sgladiat_flipscreen_w) // flip screen, bg palette bank
- AM_RANGE(0xa700, 0xa700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xa700, 0xa700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xd300, 0xd300) AM_WRITE_LEGACY(jcross_scroll_msb_w)
AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(snk_sp16_scrolly_w)
AM_RANGE(0xd500, 0xd500) AM_WRITE_LEGACY(snk_sp16_scrollx_w)
@@ -1024,7 +1012,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jcross_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xa700, 0xa700) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xa700, 0xa700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xc800, 0xd7ff) AM_RAM_WRITE_LEGACY(marvins_bg_videoram_w) AM_SHARE("share2")
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE_LEGACY(snk_tx_videoram_w) AM_SHARE("share3")
@@ -1036,11 +1024,11 @@ static ADDRESS_MAP_START( sgladiat_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa100, 0xa100) AM_READ_PORT("IN1")
AM_RANGE(0xa200, 0xa200) AM_READ_PORT("IN2")
- AM_RANGE(0xa300, 0xa300) AM_WRITE_LEGACY(sgladiat_soundlatch_w)
+ AM_RANGE(0xa300, 0xa300) AM_WRITE(sgladiat_soundlatch_w)
AM_RANGE(0xa400, 0xa400) AM_READ_PORT("DSW1")
AM_RANGE(0xa500, 0xa500) AM_READ_PORT("DSW2")
AM_RANGE(0xa600, 0xa600) AM_WRITE_LEGACY(sgladiat_flipscreen_w) // flip screen, bg palette bank
- AM_RANGE(0xa700, 0xa700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xa700, 0xa700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xd200, 0xd200) AM_WRITENOP // unknown
AM_RANGE(0xd300, 0xd300) AM_WRITE_LEGACY(sgladiat_scroll_msb_w)
AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(snk_sp16_scrolly_w)
@@ -1055,7 +1043,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sgladiat_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xa000, 0xa000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xa000, 0xa000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xa600, 0xa600) AM_WRITE_LEGACY(sgladiat_flipscreen_w) // flip screen, bg palette bank
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(marvins_bg_videoram_w) AM_SHARE("share2")
@@ -1074,11 +1062,11 @@ static ADDRESS_MAP_START( hal21_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(sgladiat_soundlatch_w)
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(sgladiat_soundlatch_w)
AM_RANGE(0xc400, 0xc400) AM_READ_PORT("DSW1")
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW2")
AM_RANGE(0xc600, 0xc600) AM_WRITE_LEGACY(hal21_flipscreen_w) // flip screen, bg tile and palette bank
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xd300, 0xd300) AM_WRITE_LEGACY(jcross_scroll_msb_w)
AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(snk_sp16_scrolly_w)
AM_RANGE(0xd500, 0xd500) AM_WRITE_LEGACY(snk_sp16_scrollx_w)
@@ -1091,7 +1079,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hal21_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(snk_cpuB_nmi_ack_w)
AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE_LEGACY(marvins_bg_videoram_w) AM_SHARE("share2")
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE_LEGACY(snk_tx_videoram_w) AM_SHARE("share3")
@@ -1103,10 +1091,10 @@ static ADDRESS_MAP_START( aso_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(aso_videoattrs_w) // flip screen, scroll msb
AM_RANGE(0xc900, 0xc900) AM_WRITE_LEGACY(snk_sp16_scrolly_w)
AM_RANGE(0xca00, 0xca00) AM_WRITE_LEGACY(snk_sp16_scrollx_w)
@@ -1122,7 +1110,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( aso_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("share2")
AM_RANGE(0xd800, 0xe7ff) AM_RAM_WRITE_LEGACY(marvins_bg_videoram_w) AM_SHARE("share3")
@@ -1137,11 +1125,11 @@ static ADDRESS_MAP_START( tnk3_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
// c300 is an input in tnk3, output in athena/fitegolf (coin counter)
// and in countryc (trackball select) (see DRIVER_INIT).
- AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE_LEGACY(athena_coin_counter_w)
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE(athena_coin_counter_w)
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(tnk3_videoattrs_w) // flip screen, char bank, scroll msb
AM_RANGE(0xc900, 0xc900) AM_WRITE_LEGACY(snk_sp16_scrolly_w)
AM_RANGE(0xca00, 0xca00) AM_WRITE_LEGACY(snk_sp16_scrollx_w)
@@ -1155,8 +1143,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tnk3_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // tnk3, athena
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // fitegolf
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // tnk3, athena
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // fitegolf
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xefff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_SHARE("share2")
AM_RANGE(0xf000, 0xf7ff) AM_RAM
@@ -1169,11 +1157,11 @@ static ADDRESS_MAP_START( ikari_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
- AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE_LEGACY(ikari_coin_counter_w) // ikarijp doesn't use the coin counter
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE(ikari_coin_counter_w) // ikarijp doesn't use the coin counter
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(snk_bg_scrolly_w)
AM_RANGE(0xc880, 0xc880) AM_WRITE_LEGACY(snk_bg_scrollx_w)
AM_RANGE(0xc900, 0xc900) AM_WRITE_LEGACY(ikari_bg_scroll_msb_w)
@@ -1182,17 +1170,17 @@ static ADDRESS_MAP_START( ikari_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xca80, 0xca80) AM_WRITE_LEGACY(snk_sp16_scrollx_w)
AM_RANGE(0xcb00, 0xcb00) AM_WRITE_LEGACY(snk_sp32_scrolly_w)
AM_RANGE(0xcb80, 0xcb80) AM_WRITE_LEGACY(snk_sp32_scrollx_w)
- AM_RANGE(0xcc00, 0xcc00) AM_WRITE_LEGACY(hardflags_scrolly_w)
- AM_RANGE(0xcc80, 0xcc80) AM_WRITE_LEGACY(hardflags_scrollx_w)
+ AM_RANGE(0xcc00, 0xcc00) AM_WRITE(hardflags_scrolly_w)
+ AM_RANGE(0xcc80, 0xcc80) AM_WRITE(hardflags_scrollx_w)
AM_RANGE(0xcd00, 0xcd00) AM_WRITE_LEGACY(ikari_sp_scroll_msb_w)
- AM_RANGE(0xcd80, 0xcd80) AM_WRITE_LEGACY(hardflags_scroll_msb_w)
- AM_RANGE(0xce00, 0xce00) AM_READ_LEGACY(hardflags1_r)
- AM_RANGE(0xce20, 0xce20) AM_READ_LEGACY(hardflags2_r)
- AM_RANGE(0xce40, 0xce40) AM_READ_LEGACY(hardflags3_r)
- AM_RANGE(0xce60, 0xce60) AM_READ_LEGACY(hardflags4_r)
- AM_RANGE(0xce80, 0xce80) AM_READ_LEGACY(hardflags5_r)
- AM_RANGE(0xcea0, 0xcea0) AM_READ_LEGACY(hardflags6_r)
- AM_RANGE(0xcee0, 0xcee0) AM_READ_LEGACY(hardflags7_r)
+ AM_RANGE(0xcd80, 0xcd80) AM_WRITE(hardflags_scroll_msb_w)
+ AM_RANGE(0xce00, 0xce00) AM_READ(hardflags1_r)
+ AM_RANGE(0xce20, 0xce20) AM_READ(hardflags2_r)
+ AM_RANGE(0xce40, 0xce40) AM_READ(hardflags3_r)
+ AM_RANGE(0xce60, 0xce60) AM_READ(hardflags4_r)
+ AM_RANGE(0xce80, 0xce80) AM_READ(hardflags5_r)
+ AM_RANGE(0xcea0, 0xcea0) AM_READ(hardflags6_r)
+ AM_RANGE(0xcee0, 0xcee0) AM_READ(hardflags7_r)
// note the mirror. ikari and victroad use d800, ikarijp uses d000
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_MIRROR(0x0800) AM_SHARE("share2") AM_BASE(m_bg_videoram)
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share3") AM_BASE(m_spriteram) // + work ram
@@ -1201,18 +1189,18 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ikari_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc980, 0xc980) AM_WRITE_LEGACY(ikari_unknown_video_w)
- AM_RANGE(0xcc00, 0xcc00) AM_WRITE_LEGACY(hardflags_scrolly_w)
- AM_RANGE(0xcc80, 0xcc80) AM_WRITE_LEGACY(hardflags_scrollx_w)
- AM_RANGE(0xcd80, 0xcd80) AM_WRITE_LEGACY(hardflags_scroll_msb_w)
- AM_RANGE(0xce00, 0xce00) AM_READ_LEGACY(hardflags1_r)
- AM_RANGE(0xce20, 0xce20) AM_READ_LEGACY(hardflags2_r)
- AM_RANGE(0xce40, 0xce40) AM_READ_LEGACY(hardflags3_r)
- AM_RANGE(0xce60, 0xce60) AM_READ_LEGACY(hardflags4_r)
- AM_RANGE(0xce80, 0xce80) AM_READ_LEGACY(hardflags5_r)
- AM_RANGE(0xcea0, 0xcea0) AM_READ_LEGACY(hardflags6_r)
- AM_RANGE(0xcee0, 0xcee0) AM_READ_LEGACY(hardflags7_r)
+ AM_RANGE(0xcc00, 0xcc00) AM_WRITE(hardflags_scrolly_w)
+ AM_RANGE(0xcc80, 0xcc80) AM_WRITE(hardflags_scrollx_w)
+ AM_RANGE(0xcd80, 0xcd80) AM_WRITE(hardflags_scroll_msb_w)
+ AM_RANGE(0xce00, 0xce00) AM_READ(hardflags1_r)
+ AM_RANGE(0xce20, 0xce20) AM_READ(hardflags2_r)
+ AM_RANGE(0xce40, 0xce40) AM_READ(hardflags3_r)
+ AM_RANGE(0xce60, 0xce60) AM_READ(hardflags4_r)
+ AM_RANGE(0xce80, 0xce80) AM_READ(hardflags5_r)
+ AM_RANGE(0xcea0, 0xcea0) AM_READ(hardflags6_r)
+ AM_RANGE(0xcee0, 0xcee0) AM_READ(hardflags7_r)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_MIRROR(0x0800) AM_SHARE("share2")
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share3")
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE_LEGACY(snk_tx_videoram_w) AM_SHARE("share4")
@@ -1224,11 +1212,11 @@ static ADDRESS_MAP_START( bermudat_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
- AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE_LEGACY(ikari_coin_counter_w)
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE(ikari_coin_counter_w)
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(snk_bg_scrolly_w)
AM_RANGE(0xc840, 0xc840) AM_WRITE_LEGACY(snk_bg_scrollx_w)
AM_RANGE(0xc880, 0xc880) AM_WRITE_LEGACY(gwara_videoattrs_w) // flip screen, scroll msb
@@ -1238,25 +1226,25 @@ static ADDRESS_MAP_START( bermudat_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc980, 0xc980) AM_WRITE_LEGACY(snk_sp32_scrolly_w)
AM_RANGE(0xc9c0, 0xc9c0) AM_WRITE_LEGACY(snk_sp32_scrollx_w)
// the "turbo check" addresses are only used by bermudat/bermudaj, not bermudaa/worldwar or the other games
- AM_RANGE(0xca00, 0xca00) AM_WRITE_LEGACY(turbocheck16_1_w)
- AM_RANGE(0xca40, 0xca40) AM_WRITE_LEGACY(turbocheck16_2_w)
+ AM_RANGE(0xca00, 0xca00) AM_WRITE(turbocheck16_1_w)
+ AM_RANGE(0xca40, 0xca40) AM_WRITE(turbocheck16_2_w)
AM_RANGE(0xca80, 0xca80) AM_WRITE_LEGACY(gwara_sp_scroll_msb_w)
AM_RANGE(0xcac0, 0xcac0) AM_WRITE_LEGACY(snk_sprite_split_point_w)
- AM_RANGE(0xcb00, 0xcb00) AM_READ_LEGACY(turbocheck16_1_r)
- AM_RANGE(0xcb10, 0xcb10) AM_READ_LEGACY(turbocheck16_2_r)
- AM_RANGE(0xcb20, 0xcb20) AM_READ_LEGACY(turbocheck16_3_r)
- AM_RANGE(0xcb30, 0xcb30) AM_READ_LEGACY(turbocheck16_4_r)
- AM_RANGE(0xcb40, 0xcb40) AM_READ_LEGACY(turbocheck16_5_r)
- AM_RANGE(0xcb50, 0xcb50) AM_READ_LEGACY(turbocheck16_6_r)
- AM_RANGE(0xcb60, 0xcb60) AM_READ_LEGACY(turbocheck16_7_r)
- AM_RANGE(0xcb70, 0xcb70) AM_READ_LEGACY(turbocheck16_8_r)
- AM_RANGE(0xcc00, 0xcc00) AM_WRITE_LEGACY(turbocheck32_1_w)
- AM_RANGE(0xcc40, 0xcc40) AM_WRITE_LEGACY(turbocheck32_2_w)
- AM_RANGE(0xcc80, 0xcc80) AM_WRITE_LEGACY(turbocheck_msb_w)
- AM_RANGE(0xccc0, 0xccc0) AM_READ_LEGACY(turbocheck32_1_r)
- AM_RANGE(0xccd0, 0xccd0) AM_READ_LEGACY(turbocheck32_2_r)
- AM_RANGE(0xcce0, 0xcce0) AM_READ_LEGACY(turbocheck32_3_r)
- AM_RANGE(0xccf0, 0xccf0) AM_READ_LEGACY(turbocheck32_4_r)
+ AM_RANGE(0xcb00, 0xcb00) AM_READ(turbocheck16_1_r)
+ AM_RANGE(0xcb10, 0xcb10) AM_READ(turbocheck16_2_r)
+ AM_RANGE(0xcb20, 0xcb20) AM_READ(turbocheck16_3_r)
+ AM_RANGE(0xcb30, 0xcb30) AM_READ(turbocheck16_4_r)
+ AM_RANGE(0xcb40, 0xcb40) AM_READ(turbocheck16_5_r)
+ AM_RANGE(0xcb50, 0xcb50) AM_READ(turbocheck16_6_r)
+ AM_RANGE(0xcb60, 0xcb60) AM_READ(turbocheck16_7_r)
+ AM_RANGE(0xcb70, 0xcb70) AM_READ(turbocheck16_8_r)
+ AM_RANGE(0xcc00, 0xcc00) AM_WRITE(turbocheck32_1_w)
+ AM_RANGE(0xcc40, 0xcc40) AM_WRITE(turbocheck32_2_w)
+ AM_RANGE(0xcc80, 0xcc80) AM_WRITE(turbocheck_msb_w)
+ AM_RANGE(0xccc0, 0xccc0) AM_READ(turbocheck32_1_r)
+ AM_RANGE(0xccd0, 0xccd0) AM_READ(turbocheck32_2_r)
+ AM_RANGE(0xcce0, 0xcce0) AM_READ(turbocheck32_3_r)
+ AM_RANGE(0xccf0, 0xccf0) AM_READ(turbocheck32_4_r)
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_SHARE("share1") AM_BASE(m_bg_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share2")
AM_RANGE(0xe000, 0xf7ff) AM_RAM AM_SHARE("share3") AM_BASE(m_spriteram) // + work ram
@@ -1265,7 +1253,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bermudat_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(snk_bg_scrolly_w)
AM_RANGE(0xc840, 0xc840) AM_WRITE_LEGACY(snk_bg_scrollx_w)
AM_RANGE(0xc880, 0xc880) AM_WRITE_LEGACY(gwara_videoattrs_w) // flip screen, scroll msb
@@ -1287,11 +1275,11 @@ static ADDRESS_MAP_START( gwar_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
- AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE_LEGACY(ikari_coin_counter_w)
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE(ikari_coin_counter_w)
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(snk_bg_scrolly_w)
AM_RANGE(0xc840, 0xc840) AM_WRITE_LEGACY(snk_bg_scrollx_w)
AM_RANGE(0xc880, 0xc880) AM_WRITE_LEGACY(gwar_videoattrs_w) // flip screen, scroll msb
@@ -1311,7 +1299,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gwar_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc8c0, 0xc8c0) AM_WRITE_LEGACY(gwar_tx_bank_w) // char and palette bank
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_SHARE("share1")
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share2")
@@ -1325,11 +1313,11 @@ static ADDRESS_MAP_START( gwara_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("IN1")
AM_RANGE(0xc200, 0xc200) AM_READ_PORT("IN2")
- AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE_LEGACY(ikari_coin_counter_w)
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc300, 0xc300) AM_READ_PORT("IN3") AM_WRITE(ikari_coin_counter_w)
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc500, 0xc500) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(snk_tx_videoram_w) AM_SHARE("share1") AM_BASE(m_tx_videoram) // + work RAM
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_SHARE("share2") AM_BASE(m_bg_videoram)
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share3")
@@ -1348,7 +1336,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( gwara_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w)
AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(snk_tx_videoram_w) AM_SHARE("share1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_SHARE("share2")
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share3")
@@ -1369,11 +1357,11 @@ static ADDRESS_MAP_START( tdfever_cpuA_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xc380, 0xc380) AM_READ_PORT("IN7")
AM_RANGE(0xc400, 0xc400) AM_READ_PORT("IN8")
AM_RANGE(0xc480, 0xc480) AM_READ_PORT("IN9")
- AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(snk_soundlatch_w)
+ AM_RANGE(0xc500, 0xc500) AM_WRITE(snk_soundlatch_w)
AM_RANGE(0xc580, 0xc580) AM_READ_PORT("DSW1")
AM_RANGE(0xc600, 0xc600) AM_READ_PORT("DSW2")
- AM_RANGE(0xc680, 0xc680) AM_WRITE_LEGACY(tdfever_coin_counter_w)
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
+ AM_RANGE(0xc680, 0xc680) AM_WRITE(tdfever_coin_counter_w)
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuB_nmi_trigger_r, snk_cpuA_nmi_ack_w)
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(snk_bg_scrolly_w)
AM_RANGE(0xc840, 0xc840) AM_WRITE_LEGACY(snk_bg_scrollx_w)
AM_RANGE(0xc880, 0xc880) AM_WRITE_LEGACY(gwara_videoattrs_w) // flip screen, scroll msb
@@ -1389,8 +1377,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tdfever_cpuB_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // tdfever, tdfever2
- AM_RANGE(0xc700, 0xc700) AM_READWRITE_LEGACY(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // fsoccer
+ AM_RANGE(0xc000, 0xc000) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // tdfever, tdfever2
+ AM_RANGE(0xc700, 0xc700) AM_READWRITE(snk_cpuA_nmi_trigger_r, snk_cpuB_nmi_ack_w) // fsoccer
AM_RANGE(0xc8c0, 0xc8c0) AM_WRITE_LEGACY(gwar_tx_bank_w) // char and palette bank
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(snk_bg_videoram_w) AM_SHARE("share1")
AM_RANGE(0xd800, 0xdfff) AM_RAM AM_SHARE("share2")
@@ -1402,11 +1390,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( marvins_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4000) AM_READ_LEGACY(marvins_soundlatch_r)
+ AM_RANGE(0x4000, 0x4000) AM_READ(marvins_soundlatch_r)
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x8002, 0x8007) AM_DEVWRITE_LEGACY("wave", snkwave_w)
AM_RANGE(0x8008, 0x8009) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
- AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(marvins_sound_nmi_ack_r)
+ AM_RANGE(0xa000, 0xa000) AM_READ(marvins_sound_nmi_ack_r)
AM_RANGE(0xe000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
@@ -1419,8 +1407,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jcross_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(sgladiat_soundlatch_r)
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(sgladiat_sound_nmi_ack_r)
+ AM_RANGE(0xa000, 0xa000) AM_READ(sgladiat_soundlatch_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(sgladiat_sound_nmi_ack_r)
AM_RANGE(0xe000, 0xe001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0xe002, 0xe003) AM_WRITENOP // ? always FFFF, snkwave leftover?
AM_RANGE(0xe004, 0xe005) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
@@ -1428,15 +1416,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jcross_sound_portmap, AS_IO, 8, snk_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_LEGACY(sgladiat_sound_irq_ack_r)
+ AM_RANGE(0x00, 0x00) AM_READ(sgladiat_sound_irq_ack_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( hal21_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(sgladiat_soundlatch_r)
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(sgladiat_sound_nmi_ack_r)
+ AM_RANGE(0xa000, 0xa000) AM_READ(sgladiat_soundlatch_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(sgladiat_sound_nmi_ack_r)
AM_RANGE(0xe000, 0xe001) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
// AM_RANGE(0xe002, 0xe002) AM_WRITENOP // bitfielded(0-5) details unknown. Filter enable?
AM_RANGE(0xe008, 0xe009) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
@@ -1452,21 +1440,21 @@ static ADDRESS_MAP_START( tnk3_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(tnk3_busy_clear_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(tnk3_busy_clear_r)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ym1", ym3526_r, ym3526_w)
- AM_RANGE(0xe004, 0xe004) AM_READ_LEGACY(tnk3_cmdirq_ack_r)
- AM_RANGE(0xe006, 0xe006) AM_READ_LEGACY(tnk3_ymirq_ack_r)
+ AM_RANGE(0xe004, 0xe004) AM_READ(tnk3_cmdirq_ack_r)
+ AM_RANGE(0xe006, 0xe006) AM_READ(tnk3_ymirq_ack_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( aso_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(tnk3_busy_clear_r)
+ AM_RANGE(0xe000, 0xe000) AM_READ(tnk3_busy_clear_r)
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE_LEGACY("ym1", ym3526_r, ym3526_w)
// AM_RANGE(0xf002, 0xf002) AM_READNOP unknown
- AM_RANGE(0xf004, 0xf004) AM_READ_LEGACY(tnk3_cmdirq_ack_r)
- AM_RANGE(0xf006, 0xf006) AM_READ_LEGACY(tnk3_ymirq_ack_r)
+ AM_RANGE(0xf004, 0xf004) AM_READ(tnk3_cmdirq_ack_r)
+ AM_RANGE(0xf006, 0xf006) AM_READ(tnk3_ymirq_ack_r)
ADDRESS_MAP_END
static ADDRESS_MAP_START( YM3526_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
@@ -1477,7 +1465,7 @@ static ADDRESS_MAP_START( YM3526_YM3526_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3526_write_port_w)
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE_LEGACY("ym2", ym3526_status_port_r, ym3526_control_port_w)
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("ym2", ym3526_write_port_w)
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(snk_sound_status_r, snk_sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( YM3812_sound_map, AS_PROGRAM, 8, snk_state )
@@ -1486,7 +1474,7 @@ static ADDRESS_MAP_START( YM3812_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xe800, 0xe800) AM_DEVREADWRITE_LEGACY("ym1", ym3812_status_port_r, ym3812_control_port_w)
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3812_write_port_w)
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(snk_sound_status_r, snk_sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( YM3526_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
@@ -1497,7 +1485,7 @@ static ADDRESS_MAP_START( YM3526_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3526_write_port_w)
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE_LEGACY("ym2", y8950_status_port_r, y8950_control_port_w)
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("ym2", y8950_write_port_w)
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(snk_sound_status_r, snk_sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( YM3812_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
@@ -1508,7 +1496,7 @@ static ADDRESS_MAP_START( YM3812_Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xec00, 0xec00) AM_DEVWRITE_LEGACY("ym1", ym3812_write_port_w)
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE_LEGACY("ym2", y8950_status_port_r, y8950_control_port_w)
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("ym2", y8950_write_port_w)
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(snk_sound_status_r, snk_sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( Y8950_sound_map, AS_PROGRAM, 8, snk_state )
@@ -1517,7 +1505,7 @@ static ADDRESS_MAP_START( Y8950_sound_map, AS_PROGRAM, 8, snk_state )
AM_RANGE(0xe000, 0xe000) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf000, 0xf000) AM_DEVREADWRITE_LEGACY("ym2", y8950_status_port_r, y8950_control_port_w)
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("ym2", y8950_write_port_w)
- AM_RANGE(0xf800, 0xf800) AM_READWRITE_LEGACY(snk_sound_status_r, snk_sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(snk_sound_status_r, snk_sound_status_w)
ADDRESS_MAP_END
/*********************************************************************/
@@ -6283,7 +6271,8 @@ ROM_END
static DRIVER_INIT( countryc )
{
// replace coin counter with trackball select
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xc300, 0xc300, FUNC(countryc_trackball_w));
+ snk_state *state = machine.driver_data<snk_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xc300, 0xc300, write8_delegate(FUNC(snk_state::countryc_trackball_w),state));
}
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index c2bd1d225b2..43a0e9ea029 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -49,71 +49,67 @@ Notes:
/******************************************************************************/
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(snk68_state::sound_status_r)
{
- snk68_state *state = space->machine().driver_data<snk68_state>();
- return (state->m_sound_status << 8);
+ return (m_sound_status << 8);
}
-static WRITE8_HANDLER( sound_status_w )
+WRITE8_MEMBER(snk68_state::sound_status_w)
{
- snk68_state *state = space->machine().driver_data<snk68_state>();
- state->m_sound_status = data;
+ m_sound_status = data;
}
-static READ16_HANDLER( control_1_r )
+READ16_MEMBER(snk68_state::control_1_r)
{
- return (input_port_read(space->machine(), "P1") + (input_port_read(space->machine(), "P2") << 8));
+ return (input_port_read(machine(), "P1") + (input_port_read(machine(), "P2") << 8));
}
-static READ16_HANDLER( control_2_r )
+READ16_MEMBER(snk68_state::control_2_r)
{
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
}
-static READ16_HANDLER( rotary_1_r )
+READ16_MEMBER(snk68_state::rotary_1_r)
{
- return (( ~(1 << input_port_read(space->machine(), "ROT1")) )<<8)&0xff00;
+ return (( ~(1 << input_port_read(machine(), "ROT1")) )<<8)&0xff00;
}
-static READ16_HANDLER( rotary_2_r )
+READ16_MEMBER(snk68_state::rotary_2_r)
{
- return (( ~(1 << input_port_read(space->machine(), "ROT2")) )<<8)&0xff00;
+ return (( ~(1 << input_port_read(machine(), "ROT2")) )<<8)&0xff00;
}
-static READ16_HANDLER( rotary_lsb_r )
+READ16_MEMBER(snk68_state::rotary_lsb_r)
{
- return ((( ~(1 << input_port_read(space->machine(), "ROT2")) ) <<4)&0xf000)
- + ((( ~(1 << input_port_read(space->machine(), "ROT1")) ) )&0x0f00);
+ return ((( ~(1 << input_port_read(machine(), "ROT2")) ) <<4)&0xf000)
+ + ((( ~(1 << input_port_read(machine(), "ROT1")) ) )&0x0f00);
}
-static READ16_HANDLER( protcontrols_r )
+READ16_MEMBER(snk68_state::protcontrols_r)
{
- snk68_state *state = space->machine().driver_data<snk68_state>();
static const char *const portnames[] = { "P1", "P2", "SYSTEM" };
- return input_port_read(space->machine(), portnames[offset]) ^ state->m_invert_controls;
+ return input_port_read(machine(), portnames[offset]) ^ m_invert_controls;
}
-static WRITE16_HANDLER( protection_w )
+WRITE16_MEMBER(snk68_state::protection_w)
{
/* top byte is used, meaning unknown */
/* bottom byte is protection in ikari 3 and streetsm */
if (ACCESSING_BITS_0_7)
{
- snk68_state *state = space->machine().driver_data<snk68_state>();
- state->m_invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00;
+ m_invert_controls = ((data & 0xff) == 0x07) ? 0xff : 0x00;
}
}
-static WRITE16_HANDLER( sound_w )
+WRITE16_MEMBER(snk68_state::sound_w)
{
if (ACCESSING_BITS_8_15)
{
soundlatch_w(space, 0, data >> 8);
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -122,9 +118,9 @@ static WRITE16_HANDLER( sound_w )
static ADDRESS_MAP_START( pow_map, AS_PROGRAM, 16, snk68_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
- AM_RANGE(0x080000, 0x080001) AM_READ_LEGACY(control_1_r)
- AM_RANGE(0x080000, 0x080001) AM_WRITE_LEGACY(sound_w)
- AM_RANGE(0x0c0000, 0x0c0001) AM_READ_LEGACY(control_2_r)
+ AM_RANGE(0x080000, 0x080001) AM_READ(control_1_r)
+ AM_RANGE(0x080000, 0x080001) AM_WRITE(sound_w)
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ(control_2_r)
AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(pow_flipscreen16_w) // + char bank
AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* Watchdog or IRQ ack */
AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* Watchdog or IRQ ack */
@@ -139,19 +135,19 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( searchar_map, AS_PROGRAM, 16, snk68_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x043fff) AM_RAM
- AM_RANGE(0x080000, 0x080005) AM_READ_LEGACY(protcontrols_r) /* Player 1 & 2 */
- AM_RANGE(0x080000, 0x080001) AM_WRITE_LEGACY(sound_w)
- AM_RANGE(0x080006, 0x080007) AM_WRITE_LEGACY(protection_w) /* top byte unknown, bottom is protection in ikari3 and streetsm */
+ AM_RANGE(0x080000, 0x080005) AM_READ(protcontrols_r) /* Player 1 & 2 */
+ AM_RANGE(0x080000, 0x080001) AM_WRITE(sound_w)
+ AM_RANGE(0x080006, 0x080007) AM_WRITE(protection_w) /* top byte unknown, bottom is protection in ikari3 and streetsm */
AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(searchar_flipscreen16_w)
- AM_RANGE(0x0c0000, 0x0c0001) AM_READ_LEGACY(rotary_1_r) /* Player 1 rotary */
- AM_RANGE(0x0c8000, 0x0c8001) AM_READ_LEGACY(rotary_2_r) /* Player 2 rotary */
- AM_RANGE(0x0d0000, 0x0d0001) AM_READ_LEGACY(rotary_lsb_r) /* Extra rotary bits */
+ AM_RANGE(0x0c0000, 0x0c0001) AM_READ(rotary_1_r) /* Player 1 rotary */
+ AM_RANGE(0x0c8000, 0x0c8001) AM_READ(rotary_2_r) /* Player 2 rotary */
+ AM_RANGE(0x0d0000, 0x0d0001) AM_READ(rotary_lsb_r) /* Extra rotary bits */
AM_RANGE(0x0e0000, 0x0e0001) AM_READNOP /* Watchdog or IRQ ack */
AM_RANGE(0x0e8000, 0x0e8001) AM_READNOP /* Watchdog or IRQ ack */
// AM_RANGE(0x0f0000, 0x0f0001) AM_WRITENOP /* ?? */
AM_RANGE(0x0f0000, 0x0f0001) AM_READ_PORT("DSW1")
AM_RANGE(0x0f0008, 0x0f0009) AM_READ_PORT("DSW2")
- AM_RANGE(0x0f8000, 0x0f8001) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x0f8000, 0x0f8001) AM_READ(sound_status_r)
AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(pow_spriteram_r, pow_spriteram_w) AM_BASE(m_spriteram) // only partially populated
AM_RANGE(0x200000, 0x200fff) AM_RAM_WRITE_LEGACY(searchar_fg_videoram_w) AM_MIRROR(0x1000) AM_BASE(m_pow_fg_videoram) /* Mirror is used by Ikari 3 */
AM_RANGE(0x300000, 0x33ffff) AM_ROMBANK("bank1") /* Extra code bank */
@@ -163,7 +159,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, snk68_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r) AM_WRITE_LEGACY(sound_status_w)
+ AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r) AM_WRITE(sound_status_w)
ADDRESS_MAP_END
static WRITE8_DEVICE_HANDLER( D7759_write_port_0_w )
diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c
index 9b577b91d33..03b7c937a24 100644
--- a/src/mame/drivers/snookr10.c
+++ b/src/mame/drivers/snookr10.c
@@ -374,7 +374,7 @@
* - Input Ports - *
**********************/
-static READ8_HANDLER( dsw_port_1_r )
+READ8_MEMBER(snookr10_state::dsw_port_1_r)
{
/*
--------------------------------
@@ -390,7 +390,7 @@ static READ8_HANDLER( dsw_port_1_r )
BIT 7 = Complement of DS1, bit 7
---------------------------------
*/
-return input_port_read(space->machine(), "SW1");
+return input_port_read(machine(), "SW1");
}
@@ -414,57 +414,55 @@ return input_port_read(space->machine(), "SW1");
STOP5 = bit4
*/
-static WRITE8_HANDLER( output_port_0_w )
+WRITE8_MEMBER(snookr10_state::output_port_0_w)
{
- snookr10_state *state = space->machine().driver_data<snookr10_state>();
/*
----------------------------
PORT 0x5000 ;OUTPUT PORT A
----------------------------
BIT 0 = Coin counter.
- BIT 1 = Lamps matrix, state->m_bit0.
+ BIT 1 = Lamps matrix, m_bit0.
BIT 2 = Payout x10.
- BIT 3 = Lamps matrix, state->m_bit1.
+ BIT 3 = Lamps matrix, m_bit1.
BIT 4 = Key in.
- BIT 5 = Lamps matrix, state->m_bit2.
+ BIT 5 = Lamps matrix, m_bit2.
BIT 6 =
- BIT 7 = Lamps matrix, state->m_bit3.
+ BIT 7 = Lamps matrix, m_bit3.
----------------------------
*/
- state->m_outportl = data;
-
- state->m_bit0 = (data >> 1) & 1;
- state->m_bit1 = (data >> 3) & 1;
- state->m_bit2 = (data >> 5) & 1;
- state->m_bit3 = (data >> 7) & 1;
- state->m_bit4 = state->m_outporth & 1;
- state->m_bit5 = (state->m_outporth >> 1) & 1;
-
- output_set_lamp_value(0, state->m_bit5); /* Lamp 0 - START */
- output_set_lamp_value(1, state->m_bit2); /* Lamp 1 - CANCEL */
- output_set_lamp_value(2, state->m_bit0); /* Lamp 2 - STOP1 */
- output_set_lamp_value(3, state->m_bit1); /* Lamp 3 - STOP2 */
- output_set_lamp_value(4, state->m_bit0); /* Lamp 4 - STOP3 */
- output_set_lamp_value(5, state->m_bit3); /* Lamp 5 - STOP4 */
- output_set_lamp_value(6, state->m_bit4); /* Lamp 6 - STOP5 */
-
- coin_counter_w(space->machine(), 0, data & 0x01); /* Coin in */
- coin_counter_w(space->machine(), 1, data & 0x10); /* Key in */
- coin_counter_w(space->machine(), 2, data & 0x04); /* Payout x10 */
-
-// logerror("high: %04x - low: %X \n", state->m_outporth, state->m_outportl);
+ m_outportl = data;
+
+ m_bit0 = (data >> 1) & 1;
+ m_bit1 = (data >> 3) & 1;
+ m_bit2 = (data >> 5) & 1;
+ m_bit3 = (data >> 7) & 1;
+ m_bit4 = m_outporth & 1;
+ m_bit5 = (m_outporth >> 1) & 1;
+
+ output_set_lamp_value(0, m_bit5); /* Lamp 0 - START */
+ output_set_lamp_value(1, m_bit2); /* Lamp 1 - CANCEL */
+ output_set_lamp_value(2, m_bit0); /* Lamp 2 - STOP1 */
+ output_set_lamp_value(3, m_bit1); /* Lamp 3 - STOP2 */
+ output_set_lamp_value(4, m_bit0); /* Lamp 4 - STOP3 */
+ output_set_lamp_value(5, m_bit3); /* Lamp 5 - STOP4 */
+ output_set_lamp_value(6, m_bit4); /* Lamp 6 - STOP5 */
+
+ coin_counter_w(machine(), 0, data & 0x01); /* Coin in */
+ coin_counter_w(machine(), 1, data & 0x10); /* Key in */
+ coin_counter_w(machine(), 2, data & 0x04); /* Payout x10 */
+
+// logerror("high: %04x - low: %X \n", m_outporth, m_outportl);
// popmessage("written : %02X", data);
}
-static WRITE8_HANDLER( output_port_1_w )
+WRITE8_MEMBER(snookr10_state::output_port_1_w)
{
- snookr10_state *state = space->machine().driver_data<snookr10_state>();
/*
----------------------------
PORT 0x5001 ;OUTPUT PORT B
----------------------------
- BIT 0 = Lamps matrix, state->m_bit4
- BIT 1 = Lamps matrix, state->m_bit5
+ BIT 0 = Lamps matrix, m_bit4
+ BIT 1 = Lamps matrix, m_bit5
BIT 2 =
BIT 3 =
BIT 4 =
@@ -473,22 +471,22 @@ static WRITE8_HANDLER( output_port_1_w )
BIT 7 =
----------------------------
*/
- state->m_outporth = data << 8;
-
- state->m_bit0 = (state->m_outportl >> 1) & 1;
- state->m_bit1 = (state->m_outportl >> 3) & 1;
- state->m_bit2 = (state->m_outportl >> 5) & 1;
- state->m_bit3 = (state->m_outportl >> 7) & 1;
- state->m_bit4 = data & 1;
- state->m_bit5 = (data >> 1) & 1;
-
- output_set_lamp_value(0, state->m_bit5); /* Lamp 0 - START */
- output_set_lamp_value(1, state->m_bit2); /* Lamp 1 - CANCEL */
- output_set_lamp_value(2, state->m_bit0); /* Lamp 2 - STOP1 */
- output_set_lamp_value(3, state->m_bit1); /* Lamp 3 - STOP2 */
- output_set_lamp_value(4, state->m_bit0); /* Lamp 4 - STOP3 */
- output_set_lamp_value(5, state->m_bit3); /* Lamp 5 - STOP4 */
- output_set_lamp_value(6, state->m_bit4); /* Lamp 6 - STOP5 */
+ m_outporth = data << 8;
+
+ m_bit0 = (m_outportl >> 1) & 1;
+ m_bit1 = (m_outportl >> 3) & 1;
+ m_bit2 = (m_outportl >> 5) & 1;
+ m_bit3 = (m_outportl >> 7) & 1;
+ m_bit4 = data & 1;
+ m_bit5 = (data >> 1) & 1;
+
+ output_set_lamp_value(0, m_bit5); /* Lamp 0 - START */
+ output_set_lamp_value(1, m_bit2); /* Lamp 1 - CANCEL */
+ output_set_lamp_value(2, m_bit0); /* Lamp 2 - STOP1 */
+ output_set_lamp_value(3, m_bit1); /* Lamp 3 - STOP2 */
+ output_set_lamp_value(4, m_bit0); /* Lamp 4 - STOP3 */
+ output_set_lamp_value(5, m_bit3); /* Lamp 5 - STOP4 */
+ output_set_lamp_value(6, m_bit4); /* Lamp 6 - STOP5 */
}
@@ -503,9 +501,9 @@ static ADDRESS_MAP_START( snookr10_map, AS_PROGRAM, 8, snookr10_state )
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x3002, 0x3002) AM_READ_PORT("IN2") /* IN2 */
AM_RANGE(0x3003, 0x3003) AM_READ_PORT("SW1") /* DS1 */
- AM_RANGE(0x3004, 0x3004) AM_READ_LEGACY(dsw_port_1_r) /* complement of DS1, bit 7 */
- AM_RANGE(0x5000, 0x5000) AM_WRITE_LEGACY(output_port_0_w) /* OUT0 */
- AM_RANGE(0x5001, 0x5001) AM_WRITE_LEGACY(output_port_1_w) /* OUT1 */
+ AM_RANGE(0x3004, 0x3004) AM_READ(dsw_port_1_r) /* complement of DS1, bit 7 */
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(output_port_0_w) /* OUT0 */
+ AM_RANGE(0x5001, 0x5001) AM_WRITE(output_port_1_w) /* OUT1 */
AM_RANGE(0x6000, 0x6fff) AM_RAM_WRITE_LEGACY(snookr10_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x7000, 0x7fff) AM_RAM_WRITE_LEGACY(snookr10_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -518,8 +516,8 @@ static ADDRESS_MAP_START( tenballs_map, AS_PROGRAM, 8, snookr10_state )
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("IN1") /* IN1 */
AM_RANGE(0x4002, 0x4002) AM_READ_PORT("IN2") /* IN2 */
AM_RANGE(0x4003, 0x4003) AM_READ_PORT("SW1") /* DS1 */
- AM_RANGE(0x5000, 0x5000) AM_WRITE_LEGACY(output_port_0_w) /* OUT0 */
- AM_RANGE(0x5001, 0x5001) AM_WRITE_LEGACY(output_port_1_w) /* OUT1 */
+ AM_RANGE(0x5000, 0x5000) AM_WRITE(output_port_0_w) /* OUT0 */
+ AM_RANGE(0x5001, 0x5001) AM_WRITE(output_port_1_w) /* OUT1 */
AM_RANGE(0x6000, 0x6fff) AM_RAM_WRITE_LEGACY(snookr10_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x7000, 0x7fff) AM_RAM_WRITE_LEGACY(snookr10_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x8000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index 7ee9700dbc4..0bfe4510846 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -75,10 +75,10 @@ out of the sprite list at that point.. (verify on real hw)
#include "cpu/mcs51/mcs51.h" // for semicom mcu
-static WRITE16_HANDLER( snowbros_flipscreen_w )
+WRITE16_MEMBER(snowbros_state::snowbros_flipscreen_w)
{
if (ACCESSING_BITS_8_15)
- flip_screen_set(space->machine(), ~data & 0x8000);
+ flip_screen_set(machine(), ~data & 0x8000);
}
@@ -105,19 +105,19 @@ static SCREEN_VBLANK( snowbros )
-static WRITE16_HANDLER( snowbros_irq4_ack_w )
+WRITE16_MEMBER(snowbros_state::snowbros_irq4_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 4, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, CLEAR_LINE);
}
-static WRITE16_HANDLER( snowbros_irq3_ack_w )
+WRITE16_MEMBER(snowbros_state::snowbros_irq3_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 3, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 3, CLEAR_LINE);
}
-static WRITE16_HANDLER( snowbros_irq2_ack_w )
+WRITE16_MEMBER(snowbros_state::snowbros_irq2_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
}
static TIMER_DEVICE_CALLBACK( snowbros_irq )
@@ -173,22 +173,22 @@ static TIMER_DEVICE_CALLBACK( snowbros3_irq )
/* Sound Routines */
-static READ16_HANDLER( snowbros_68000_sound_r )
+READ16_MEMBER(snowbros_state::snowbros_68000_sound_r)
{
return soundlatch_r(space,offset);
}
-static WRITE16_HANDLER( snowbros_68000_sound_w )
+WRITE16_MEMBER(snowbros_state::snowbros_68000_sound_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data & 0xff);
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
-static WRITE16_HANDLER( semicom_soundcmd_w )
+WRITE16_MEMBER(snowbros_state::semicom_soundcmd_w)
{
if (ACCESSING_BITS_0_7) soundlatch_w(space,0,data & 0xff);
}
@@ -199,16 +199,16 @@ static ADDRESS_MAP_START( snowbros_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x300000, 0x300001) AM_READWRITE_LEGACY(snowbros_68000_sound_r,snowbros_68000_sound_w)
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(snowbros_flipscreen_w)
+ AM_RANGE(0x300000, 0x300001) AM_READWRITE(snowbros_68000_sound_r,snowbros_68000_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")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE_LEGACY("pandora", pandora_spriteram_LSB_r, pandora_spriteram_LSB_w)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, snowbros_state )
@@ -224,7 +224,7 @@ ADDRESS_MAP_END
-static READ8_HANDLER( prot_io_r )
+READ8_MEMBER(snowbros_state::prot_io_r)
{
// never read?
return 0x00;
@@ -232,30 +232,29 @@ static READ8_HANDLER( prot_io_r )
// probably not endian safe
-static WRITE8_HANDLER( prot_io_w )
+WRITE8_MEMBER(snowbros_state::prot_io_w)
{
- snowbros_state *state = space->machine().driver_data<snowbros_state>();
switch (offset)
{
case 0x00:
{
- UINT16 word = state->m_hyperpac_ram[(0xe000/2)+state->m_semicom_prot_offset];
+ UINT16 word = m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset];
word = (word & 0xff00) | (data << 0);
- state->m_hyperpac_ram[(0xe000/2)+state->m_semicom_prot_offset] = word;
+ m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset] = word;
break;
}
case 0x01:
{
- UINT16 word = state->m_hyperpac_ram[(0xe000/2)+state->m_semicom_prot_offset];
+ UINT16 word = m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset];
word = (word & 0x00ff) | (data << 8);
- state->m_hyperpac_ram[(0xe000/2)+state->m_semicom_prot_offset] = word;
+ m_hyperpac_ram[(0xe000/2)+m_semicom_prot_offset] = word;
break;
}
case 0x02: // offset
{
- state->m_semicom_prot_offset = data;
+ m_semicom_prot_offset = data;
break;
}
@@ -273,7 +272,7 @@ static ADDRESS_MAP_START( protection_map, AS_PROGRAM, 8, snowbros_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( protection_iomap, AS_IO, 8, snowbros_state )
- AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE_LEGACY(prot_io_r,prot_io_w)
+ AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(prot_io_r,prot_io_w)
ADDRESS_MAP_END
/* Winter Bobble - bootleg GFX chip */
@@ -282,16 +281,16 @@ static ADDRESS_MAP_START( wintbob_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x300000, 0x300001) AM_READWRITE_LEGACY(snowbros_68000_sound_r,snowbros_68000_sound_w)
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(snowbros_flipscreen_w)
+ AM_RANGE(0x300000, 0x300001) AM_READWRITE(snowbros_68000_sound_r,snowbros_68000_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")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE(m_bootleg_spriteram16, m_spriteram_size)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
/* Honey Dolls */
@@ -300,10 +299,10 @@ static ADDRESS_MAP_START( honeydol_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(m_hyperpac_ram)
AM_RANGE(0x200000, 0x200001) AM_WRITENOP /* ? */
- AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(snowbros_68000_sound_w) /* ? */
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x500000, 0x500001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x300000, 0x300001) AM_WRITE(snowbros_68000_sound_w) /* ? */
+ AM_RANGE(0x400000, 0x400001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x500000, 0x500001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
AM_RANGE(0x800000, 0x800001) AM_WRITENOP /* ? */
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW1")
AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2")
@@ -326,12 +325,12 @@ ADDRESS_MAP_END
/* Twin Adventure */
-static WRITE16_HANDLER( twinadv_68000_sound_w )
+WRITE16_MEMBER(snowbros_state::twinadv_68000_sound_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data & 0xff);
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -339,17 +338,17 @@ static ADDRESS_MAP_START( twinadv_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x300000, 0x300001) AM_READWRITE_LEGACY(snowbros_68000_sound_r,twinadv_68000_sound_w)
- AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(snowbros_flipscreen_w)
+ AM_RANGE(0x300000, 0x300001) AM_READWRITE(snowbros_68000_sound_r,twinadv_68000_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")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x700000, 0x701fff) AM_RAM AM_BASE_SIZE(m_bootleg_spriteram16, m_spriteram_size)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
static WRITE8_DEVICE_HANDLER( twinadv_oki_bank_w )
@@ -379,7 +378,7 @@ sound hardware is also different
static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_BASE(m_hyperpac_ram)
- AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(semicom_soundcmd_w)
+ AM_RANGE(0x300000, 0x300001) AM_WRITE(semicom_soundcmd_w)
// AM_RANGE(0x400000, 0x400001) ???
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("DSW2")
@@ -387,9 +386,9 @@ static ADDRESS_MAP_START( hyperpac_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE_LEGACY("pandora", pandora_spriteram_LSB_r,pandora_spriteram_LSB_w)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
static ADDRESS_MAP_START( hyperpac_sound_map, AS_PROGRAM, 8, snowbros_state )
@@ -402,7 +401,7 @@ ADDRESS_MAP_END
/* Same volume used for all samples at the Moment, could be right, we have no
way of knowing .. */
-static READ16_HANDLER( sb3_sound_r )
+READ16_MEMBER(snowbros_state::sb3_sound_r)
{
return 0x0003;
}
@@ -514,17 +513,17 @@ static ADDRESS_MAP_START( snowbros3_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE( 0x000000, 0x03ffff) AM_ROM
AM_RANGE( 0x100000, 0x103fff) AM_RAM
AM_RANGE( 0x200000, 0x200001) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE( 0x300000, 0x300001) AM_READ_LEGACY(sb3_sound_r) // ?
+ AM_RANGE( 0x300000, 0x300001) AM_READ(sb3_sound_r) // ?
AM_RANGE( 0x300000, 0x300001) AM_DEVWRITE_LEGACY("oki", sb3_sound_w) // ?
- AM_RANGE( 0x400000, 0x400001) AM_WRITE_LEGACY(snowbros_flipscreen_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")
AM_RANGE( 0x500004, 0x500005) AM_READ_PORT("SYSTEM")
AM_RANGE( 0x600000, 0x6003ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC (paletteram)
AM_RANGE( 0x700000, 0x7021ff) AM_RAM AM_BASE_SIZE(m_bootleg_spriteram16, m_spriteram_size)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
/* Final Tetris */
@@ -532,7 +531,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( finalttr_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM AM_BASE(m_hyperpac_ram)
- AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(semicom_soundcmd_w)
+ AM_RANGE(0x300000, 0x300001) AM_WRITE(semicom_soundcmd_w)
// AM_RANGE(0x400000, 0x400001) ???
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW1")
@@ -541,9 +540,9 @@ static ADDRESS_MAP_START( finalttr_map, AS_PROGRAM, 16, snowbros_state )
AM_RANGE(0x600000, 0x6001ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x700000, 0x701fff) AM_DEVREADWRITE_LEGACY("pandora", pandora_spriteram_LSB_r, pandora_spriteram_LSB_w)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(snowbros_irq4_ack_w) /* IRQ 4 acknowledge */
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(snowbros_irq3_ack_w) /* IRQ 3 acknowledge */
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(snowbros_irq2_ack_w) /* IRQ 2 acknowledge */
ADDRESS_MAP_END
static INPUT_PORTS_START( snowbros )
@@ -2330,7 +2329,7 @@ ROM_START( finalttr )
ROM_LOAD( "9.1h", 0xc0000, 0x40000, CRC(2ebd316d) SHA1(2f1249ebd2a0bb0cc15259f7187201576a365fa6) )
ROM_END
-static READ16_HANDLER ( moremorp_0a_read )
+READ16_MEMBER(snowbros_state::moremorp_0a_read)
{
return 0x000a;
}
@@ -2345,7 +2344,8 @@ static DRIVER_INIT( moremorp )
// state->m_hyperpac_ram[0xf000/2 + i] = PROTDATA[i];
/* explicit check in the code */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200000, 0x200001, FUNC(moremorp_0a_read) );
+ snowbros_state *state = machine.driver_data<snowbros_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::moremorp_0a_read),state));
}
@@ -2711,7 +2711,7 @@ static DRIVER_INIT( hyperpac )
}
#endif
-static READ16_HANDLER ( _4in1_02_read )
+READ16_MEMBER(snowbros_state::_4in1_02_read)
{
return 0x0202;
}
@@ -2746,7 +2746,8 @@ static DRIVER_INIT(4in1boot)
memcpy(src,buffer,len);
auto_free(machine, buffer);
}
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200000, 0x200001, FUNC(_4in1_02_read) );
+ snowbros_state *state = machine.driver_data<snowbros_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::_4in1_02_read),state));
}
static DRIVER_INIT(snowbro3)
@@ -2766,24 +2767,26 @@ static DRIVER_INIT(snowbro3)
}
}
-static READ16_HANDLER( _3in1_read )
+READ16_MEMBER(snowbros_state::_3in1_read)
{
return 0x0a0a;
}
static DRIVER_INIT( 3in1semi )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200000, 0x200001, FUNC(_3in1_read) );
+ snowbros_state *state = machine.driver_data<snowbros_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::_3in1_read),state));
}
-static READ16_HANDLER( cookbib3_read )
+READ16_MEMBER(snowbros_state::cookbib3_read)
{
return 0x2a2a;
}
static DRIVER_INIT( cookbib3 )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x200000, 0x200001, FUNC(cookbib3_read) );
+ snowbros_state *state = machine.driver_data<snowbros_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x200000, 0x200001, read16_delegate(FUNC(snowbros_state::cookbib3_read),state));
}
static DRIVER_INIT( pzlbreak )
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index 0a7814a0cab..a2c7f28765b 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -11,38 +11,37 @@ driver by Mirko Buffoni
#include "sound/ay8910.h"
#include "includes/solomon.h"
-static WRITE8_HANDLER( solomon_sh_command_w )
+WRITE8_MEMBER(solomon_state::solomon_sh_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
/* this is checked on the title screen and when you reach certain scores in the game
it could be a form of protection. the real board needs to be analysed to find out
what really lives here */
-static READ8_HANDLER( solomon_0xe603_r )
+READ8_MEMBER(solomon_state::solomon_0xe603_r)
{
- if (cpu_get_pc(&space->device()) == 0x161) // all the time .. return 0 to act as before for coin / startup etc.
+ if (cpu_get_pc(&space.device()) == 0x161) // all the time .. return 0 to act as before for coin / startup etc.
{
return 0;
}
- else if (cpu_get_pc(&space->device()) == 0x4cf0) // stop it clearing the screen at certain scores
+ else if (cpu_get_pc(&space.device()) == 0x4cf0) // stop it clearing the screen at certain scores
{
- return (cpu_get_reg(&space->device(), Z80_BC) & 0x08);
+ return (cpu_get_reg(&space.device(), Z80_BC) & 0x08);
}
else
{
- mame_printf_debug("unhandled solomon_0xe603_r %04x\n", cpu_get_pc(&space->device()));
+ mame_printf_debug("unhandled solomon_0xe603_r %04x\n", cpu_get_pc(&space.device()));
return 0;
}
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(solomon_state::nmi_mask_w)
{
- solomon_state *state = space->machine().driver_data<solomon_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, solomon_state )
@@ -57,13 +56,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, solomon_state )
AM_RANGE(0xe600, 0xe600) AM_READ_PORT("P1")
AM_RANGE(0xe601, 0xe601) AM_READ_PORT("P2")
AM_RANGE(0xe602, 0xe602) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xe603, 0xe603) AM_READ_LEGACY(solomon_0xe603_r)
+ AM_RANGE(0xe603, 0xe603) AM_READ(solomon_0xe603_r)
AM_RANGE(0xe604, 0xe604) AM_READ_PORT("DSW1")
AM_RANGE(0xe605, 0xe605) AM_READ_PORT("DSW2")
AM_RANGE(0xe606, 0xe606) AM_READNOP /* watchdog? */
- AM_RANGE(0xe600, 0xe600) AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xe600, 0xe600) AM_WRITE(nmi_mask_w)
AM_RANGE(0xe604, 0xe604) AM_WRITE_LEGACY(solomon_flipscreen_w)
- AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(solomon_sh_command_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(solomon_sh_command_w)
AM_RANGE(0xf000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c
index 1a5290e4120..e0c31a66c32 100644
--- a/src/mame/drivers/sonson.c
+++ b/src/mame/drivers/sonson.c
@@ -54,28 +54,27 @@ TODO:
#include "includes/sonson.h"
-static WRITE8_HANDLER( sonson_sh_irqtrigger_w )
+WRITE8_MEMBER(sonson_state::sonson_sh_irqtrigger_w)
{
- sonson_state *state = space->machine().driver_data<sonson_state>();
data &= 1;
- if (state->m_last_irq == 0 && data == 1)
+ if (m_last_irq == 0 && data == 1)
{
/* setting bit 0 low then high triggers IRQ on the sound CPU */
- device_set_input_line(state->m_audiocpu, M6809_FIRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_audiocpu, M6809_FIRQ_LINE, HOLD_LINE);
}
- state->m_last_irq = data;
+ m_last_irq = data;
}
-static WRITE8_HANDLER( sonson_coin1_counter_w )
+WRITE8_MEMBER(sonson_state::sonson_coin1_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
-static WRITE8_HANDLER( sonson_coin2_counter_w )
+WRITE8_MEMBER(sonson_state::sonson_coin2_counter_w)
{
- coin_counter_w(space->machine(), 1, data & 1);
+ coin_counter_w(machine(), 1, data & 1);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, sonson_state )
@@ -92,9 +91,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, sonson_state )
AM_RANGE(0x3008, 0x3008) AM_WRITENOP // might be Y scroll, but the game always sets it to 0
AM_RANGE(0x3010, 0x3010) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x3018, 0x3018) AM_WRITE_LEGACY(sonson_flipscreen_w)
- AM_RANGE(0x3019, 0x3019) AM_WRITE_LEGACY(sonson_sh_irqtrigger_w)
- AM_RANGE(0x301e, 0x301e) AM_WRITE_LEGACY(sonson_coin2_counter_w)
- AM_RANGE(0x301f, 0x301f) AM_WRITE_LEGACY(sonson_coin1_counter_w)
+ AM_RANGE(0x3019, 0x3019) AM_WRITE(sonson_sh_irqtrigger_w)
+ AM_RANGE(0x301e, 0x301e) AM_WRITE(sonson_coin2_counter_w)
+ AM_RANGE(0x301f, 0x301f) AM_WRITE(sonson_coin1_counter_w)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c
index c77eab0a07f..6b7c9d9d88f 100644
--- a/src/mame/drivers/spbactn.c
+++ b/src/mame/drivers/spbactn.c
@@ -131,12 +131,12 @@ cpu #0 (PC=00001A1A): unmapped memory word write to 00090030 = 00F7 & 00FF
#include "includes/spbactn.h"
-static WRITE16_HANDLER( soundcommand_w )
+WRITE16_MEMBER(spbactn_state::soundcommand_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -155,8 +155,8 @@ static ADDRESS_MAP_START( spbactn_map, AS_PROGRAM, 16, spbactn_state )
/* this is an awful lot of unknowns */
AM_RANGE(0x90000, 0x90001) AM_WRITENOP
- AM_RANGE(0x90010, 0x90011) AM_WRITE_LEGACY(soundcommand_w)
-// AM_RANGE(0x90020, 0x90021) AM_WRITE_LEGACY(soundcommand_w)
+ AM_RANGE(0x90010, 0x90011) AM_WRITE(soundcommand_w)
+// AM_RANGE(0x90020, 0x90021) AM_WRITE(soundcommand_w)
AM_RANGE(0x90030, 0x90031) AM_WRITENOP
AM_RANGE(0x90080, 0x90081) AM_WRITENOP
diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c
index 0b82a616f7f..e6913b5e273 100644
--- a/src/mame/drivers/spcforce.c
+++ b/src/mame/drivers/spcforce.c
@@ -40,62 +40,58 @@ TODO:
#include "includes/spcforce.h"
-static WRITE8_HANDLER( spcforce_SN76496_latch_w )
+WRITE8_MEMBER(spcforce_state::spcforce_SN76496_latch_w)
{
- spcforce_state *state = space->machine().driver_data<spcforce_state>();
- state->m_sn76496_latch = data;
+ m_sn76496_latch = data;
}
-static READ8_HANDLER( spcforce_SN76496_select_r )
+READ8_MEMBER(spcforce_state::spcforce_SN76496_select_r)
{
- spcforce_state *state = space->machine().driver_data<spcforce_state>();
- if (~state->m_sn76496_select & 0x40) return sn76496_ready_r(space->machine().device("sn1"));
- if (~state->m_sn76496_select & 0x20) return sn76496_ready_r(space->machine().device("sn2"));
- if (~state->m_sn76496_select & 0x10) return sn76496_ready_r(space->machine().device("sn3"));
+ if (~m_sn76496_select & 0x40) return sn76496_ready_r(machine().device("sn1"));
+ if (~m_sn76496_select & 0x20) return sn76496_ready_r(machine().device("sn2"));
+ if (~m_sn76496_select & 0x10) return sn76496_ready_r(machine().device("sn3"));
return 0;
}
-static WRITE8_HANDLER( spcforce_SN76496_select_w )
+WRITE8_MEMBER(spcforce_state::spcforce_SN76496_select_w)
{
- spcforce_state *state = space->machine().driver_data<spcforce_state>();
- state->m_sn76496_select = data;
+ m_sn76496_select = data;
- if (~data & 0x40) sn76496_w(space->machine().device("sn1"), 0, state->m_sn76496_latch);
- if (~data & 0x20) sn76496_w(space->machine().device("sn2"), 0, state->m_sn76496_latch);
- if (~data & 0x10) sn76496_w(space->machine().device("sn3"), 0, state->m_sn76496_latch);
+ if (~data & 0x40) sn76496_w(machine().device("sn1"), 0, m_sn76496_latch);
+ if (~data & 0x20) sn76496_w(machine().device("sn2"), 0, m_sn76496_latch);
+ if (~data & 0x10) sn76496_w(machine().device("sn3"), 0, m_sn76496_latch);
}
-static READ8_HANDLER( spcforce_t0_r )
+READ8_MEMBER(spcforce_state::spcforce_t0_r)
{
/* SN76496 status according to Al - not supported by MAME?? */
- return space->machine().rand() & 1;
+ return machine().rand() & 1;
}
-static WRITE8_HANDLER( spcforce_soundtrigger_w )
+WRITE8_MEMBER(spcforce_state::spcforce_soundtrigger_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, (~data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, (~data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(spcforce_state::irq_mask_w)
{
- spcforce_state *state = space->machine().driver_data<spcforce_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( spcforce_map, AS_PROGRAM, 8, spcforce_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x7000, 0x7000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x7001, 0x7001) AM_READ_PORT("P1") AM_WRITE_LEGACY(spcforce_soundtrigger_w)
+ AM_RANGE(0x7001, 0x7001) AM_READ_PORT("P1") AM_WRITE(spcforce_soundtrigger_w)
AM_RANGE(0x7002, 0x7002) AM_READ_PORT("P2")
AM_RANGE(0x700b, 0x700b) AM_WRITE_LEGACY(spcforce_flip_screen_w)
- AM_RANGE(0x700e, 0x700e) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x700e, 0x700e) AM_WRITE(irq_mask_w)
AM_RANGE(0x700f, 0x700f) AM_WRITENOP
AM_RANGE(0x8000, 0x83ff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_BASE(m_colorram)
@@ -108,9 +104,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spcforce_sound_io_map, AS_IO, 8, spcforce_state )
AM_RANGE(MCS48_PORT_BUS, MCS48_PORT_BUS) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE_LEGACY(spcforce_SN76496_latch_w)
- AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE_LEGACY(spcforce_SN76496_select_r, spcforce_SN76496_select_w)
- AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ_LEGACY(spcforce_t0_r)
+ AM_RANGE(MCS48_PORT_P1, MCS48_PORT_P1) AM_WRITE(spcforce_SN76496_latch_w)
+ AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_READWRITE(spcforce_SN76496_select_r, spcforce_SN76496_select_w)
+ AM_RANGE(MCS48_PORT_T0, MCS48_PORT_T0) AM_READ(spcforce_t0_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c
index 8a35ab55de5..b7ac17c543f 100644
--- a/src/mame/drivers/spdodgeb.c
+++ b/src/mame/drivers/spdodgeb.c
@@ -29,35 +29,34 @@ Notes:
#include "includes/spdodgeb.h"
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(spdodgeb_state::sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( spd_adpcm_w )
+WRITE8_MEMBER(spdodgeb_state::spd_adpcm_w)
{
- spdodgeb_state *state = space->machine().driver_data<spdodgeb_state>();
int chip = offset & 1;
- device_t *adpcm = space->machine().device((chip == 0) ? "msm1" : "msm2");
+ device_t *adpcm = machine().device((chip == 0) ? "msm1" : "msm2");
switch (offset/2)
{
case 3:
- state->m_adpcm_idle[chip] = 1;
+ m_adpcm_idle[chip] = 1;
msm5205_reset_w(adpcm,1);
break;
case 2:
- state->m_adpcm_pos[chip] = (data & 0x7f) * 0x200;
+ m_adpcm_pos[chip] = (data & 0x7f) * 0x200;
break;
case 1:
- state->m_adpcm_end[chip] = (data & 0x7f) * 0x200;
+ m_adpcm_end[chip] = (data & 0x7f) * 0x200;
break;
case 0:
- state->m_adpcm_idle[chip] = 0;
+ m_adpcm_idle[chip] = 0;
msm5205_reset_w(adpcm,0);
break;
}
@@ -210,40 +209,37 @@ static void mcu63705_update_inputs(running_machine &machine)
}
#endif
-static READ8_HANDLER( mcu63701_r )
+READ8_MEMBER(spdodgeb_state::mcu63701_r)
{
- spdodgeb_state *state = space->machine().driver_data<spdodgeb_state>();
-// logerror("CPU #0 PC %04x: read from port %02x of 63701 data address 3801\n",cpu_get_pc(&space->device()),offset);
+// logerror("CPU #0 PC %04x: read from port %02x of 63701 data address 3801\n",cpu_get_pc(&space.device()),offset);
- if (state->m_mcu63701_command == 0) return 0x6a;
+ if (m_mcu63701_command == 0) return 0x6a;
else switch (offset)
{
default:
- case 0: return state->m_inputs[0];
- case 1: return state->m_inputs[1];
- case 2: return state->m_inputs[2];
- case 3: return state->m_inputs[3];
- case 4: return input_port_read(space->machine(), "IN1");
+ case 0: return m_inputs[0];
+ case 1: return m_inputs[1];
+ case 2: return m_inputs[2];
+ case 3: return m_inputs[3];
+ case 4: return input_port_read(machine(), "IN1");
}
}
-static WRITE8_HANDLER( mcu63701_w )
+WRITE8_MEMBER(spdodgeb_state::mcu63701_w)
{
- spdodgeb_state *state = space->machine().driver_data<spdodgeb_state>();
-// logerror("CPU #0 PC %04x: write %02x to 63701 control address 3800\n",cpu_get_pc(&space->device()),data);
- state->m_mcu63701_command = data;
- mcu63705_update_inputs(space->machine());
+// logerror("CPU #0 PC %04x: write %02x to 63701 control address 3800\n",cpu_get_pc(&space.device()),data);
+ m_mcu63701_command = data;
+ mcu63705_update_inputs(machine());
}
-static READ8_HANDLER( port_0_r )
+READ8_MEMBER(spdodgeb_state::port_0_r)
{
- spdodgeb_state *state = space->machine().driver_data<spdodgeb_state>();
- int port = input_port_read(space->machine(), "IN0");
+ int port = input_port_read(machine(), "IN0");
- state->m_toggle^=0x02; /* mcu63701_busy flag */
+ m_toggle^=0x02; /* mcu63701_busy flag */
- return (port | state->m_toggle);
+ return (port | m_toggle);
}
@@ -252,15 +248,15 @@ static ADDRESS_MAP_START( spdodgeb_map, AS_PROGRAM, 8, spdodgeb_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE_LEGACY(spdodgeb_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0x3000, 0x3000) AM_READ_LEGACY(port_0_r) //AM_WRITENOP
+ AM_RANGE(0x3000, 0x3000) AM_READ(port_0_r) //AM_WRITENOP
AM_RANGE(0x3001, 0x3001) AM_READ_PORT("DSW") //AM_WRITENOP
- AM_RANGE(0x3002, 0x3002) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x3002, 0x3002) AM_WRITE(sound_command_w)
// AM_RANGE(0x3003, 0x3003) AM_WRITENOP
AM_RANGE(0x3004, 0x3004) AM_WRITE_LEGACY(spdodgeb_scrollx_lo_w)
// AM_RANGE(0x3005, 0x3005) AM_WRITENOP /* mcu63701_output_w */
AM_RANGE(0x3006, 0x3006) AM_WRITE_LEGACY(spdodgeb_ctrl_w) /* scroll hi, flip screen, bank switch, palette select */
- AM_RANGE(0x3800, 0x3800) AM_WRITE_LEGACY(mcu63701_w)
- AM_RANGE(0x3801, 0x3805) AM_READ_LEGACY(mcu63701_r)
+ AM_RANGE(0x3800, 0x3800) AM_WRITE(mcu63701_w)
+ AM_RANGE(0x3801, 0x3805) AM_READ(mcu63701_r)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -269,7 +265,7 @@ static ADDRESS_MAP_START( spdodgeb_sound_map, AS_PROGRAM, 8, spdodgeb_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x2800, 0x2801) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
- AM_RANGE(0x3800, 0x3807) AM_WRITE_LEGACY(spd_adpcm_w)
+ AM_RANGE(0x3800, 0x3807) AM_WRITE(spd_adpcm_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index a840ecc4eb2..b36d79d65b1 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -104,31 +104,30 @@ static UINT8 iox_key_matrix_calc(running_machine &machine, UINT8 p_side)
return 0;
}
-static READ8_HANDLER( key_matrix_r )
+READ8_MEMBER(speedatk_state::key_matrix_r)
{
- speedatk_state *state = space->machine().driver_data<speedatk_state>();
- if(state->m_coin_impulse > 0)
+ if(m_coin_impulse > 0)
{
- state->m_coin_impulse--;
+ m_coin_impulse--;
return 0x80;
}
- if((input_port_read(space->machine(),"COINS") & 1) || (input_port_read(space->machine(),"COINS") & 2))
+ if((input_port_read(machine(),"COINS") & 1) || (input_port_read(machine(),"COINS") & 2))
{
- state->m_coin_impulse = state->m_coin_settings;
- state->m_coin_impulse--;
+ m_coin_impulse = m_coin_settings;
+ m_coin_impulse--;
return 0x80;
}
- if(state->m_mux_data != 1 && state->m_mux_data != 2 && state->m_mux_data != 4)
+ if(m_mux_data != 1 && m_mux_data != 2 && m_mux_data != 4)
return 0xff; //unknown command
/* both side checks */
- if(state->m_mux_data == 1)
+ if(m_mux_data == 1)
{
- UINT8 p1_side = iox_key_matrix_calc(space->machine(),0);
- UINT8 p2_side = iox_key_matrix_calc(space->machine(),2);
+ UINT8 p1_side = iox_key_matrix_calc(machine(),0);
+ UINT8 p2_side = iox_key_matrix_calc(machine(),2);
if(p1_side != 0)
return p1_side;
@@ -137,23 +136,21 @@ static READ8_HANDLER( key_matrix_r )
}
/* check individual input side */
- return iox_key_matrix_calc(space->machine(),(state->m_mux_data == 2) ? 0 : 2);
+ return iox_key_matrix_calc(machine(),(m_mux_data == 2) ? 0 : 2);
}
-static WRITE8_HANDLER( key_matrix_w )
+WRITE8_MEMBER(speedatk_state::key_matrix_w)
{
- speedatk_state *state = space->machine().driver_data<speedatk_state>();
- state->m_mux_data = data;
+ m_mux_data = data;
}
/* Key matrix status,used for coin settings and I don't know what else... */
-static READ8_HANDLER( key_matrix_status_r )
+READ8_MEMBER(speedatk_state::key_matrix_status_r)
{
- speedatk_state *state = space->machine().driver_data<speedatk_state>();
/* bit 0: busy flag,active low */
- return (state->m_km_status & 0xfe) | 1;
+ return (m_km_status & 0xfe) | 1;
}
/*
@@ -167,19 +164,18 @@ My guess is that the other commands configs the key matrix, it probably needs so
8x coinage setting command
a1
*/
-static WRITE8_HANDLER( key_matrix_status_w )
+WRITE8_MEMBER(speedatk_state::key_matrix_status_w)
{
- speedatk_state *state = space->machine().driver_data<speedatk_state>();
- state->m_km_status = data;
- if((state->m_km_status & 0xf0) == 0x80) //coinage setting command
- state->m_coin_settings = state->m_km_status & 0xf;
+ m_km_status = data;
+ if((m_km_status & 0xf0) == 0x80) //coinage setting command
+ m_coin_settings = m_km_status & 0xf;
}
static ADDRESS_MAP_START( speedatk_mem, AS_PROGRAM, 8, speedatk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x8000) AM_READWRITE_LEGACY(key_matrix_r,key_matrix_w)
- AM_RANGE(0x8001, 0x8001) AM_READWRITE_LEGACY(key_matrix_status_r,key_matrix_status_w)
+ AM_RANGE(0x8000, 0x8000) AM_READWRITE(key_matrix_r,key_matrix_w)
+ AM_RANGE(0x8001, 0x8001) AM_READWRITE(key_matrix_status_r,key_matrix_status_w)
AM_RANGE(0x8800, 0x8fff) AM_RAM
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE_LEGACY(speedatk_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xb000, 0xb3ff) AM_RAM_WRITE_LEGACY(speedatk_colorram_w) AM_BASE(m_colorram)
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index 52d10cecd1a..62fcc0a36df 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -56,11 +56,11 @@ c1 ??
#include "includes/speedbal.h"
#include "machine/nvram.h"
-static WRITE8_HANDLER( speedbal_coincounter_w )
+WRITE8_MEMBER(speedbal_state::speedbal_coincounter_w)
{
- coin_counter_w(space->machine(), 0, data & 0x80);
- coin_counter_w(space->machine(), 1, data & 0x40);
- flip_screen_set(space->machine(), data & 8); // also changes data & 0x10 at the same time too (flipx and flipy?)
+ coin_counter_w(machine(), 0, data & 0x80);
+ coin_counter_w(machine(), 1, data & 0x40);
+ flip_screen_set(machine(), data & 8); // also changes data & 0x10 at the same time too (flipx and flipy?)
/* unknown: (data & 0x10) and (data & 4) */
}
@@ -80,7 +80,7 @@ static ADDRESS_MAP_START( main_cpu_io_map, AS_IO, 8, speedbal_state )
AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW1")
AM_RANGE(0x20, 0x20) AM_READ_PORT("P1")
AM_RANGE(0x30, 0x30) AM_READ_PORT("P2")
- AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(speedbal_coincounter_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(speedbal_coincounter_w)
AM_RANGE(0x50, 0x50) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index 6d087d98146..e51c7acec37 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -54,18 +54,18 @@ TCH-SS9.u34 " / AB2Bh
******************************************************************************/
-static READ8_HANDLER(speedspn_irq_ack_r)
+READ8_MEMBER(speedspn_state::speedspn_irq_ack_r)
{
// I think this simply acknowledges the IRQ #0, it's read within the handler and the
// value is discarded
return 0;
}
-static WRITE8_HANDLER(speedspn_banked_rom_change)
+WRITE8_MEMBER(speedspn_state::speedspn_banked_rom_change)
{
/* is this weird banking some form of protection? */
- UINT8 *rom = space->machine().region("maincpu")->base();
+ UINT8 *rom = machine().region("maincpu")->base();
int addr;
switch (data)
@@ -85,15 +85,15 @@ static WRITE8_HANDLER(speedspn_banked_rom_change)
break;
}
- memory_set_bankptr(space->machine(), "bank1",&rom[addr + 0x8000]);
+ memory_set_bankptr(machine(), "bank1",&rom[addr + 0x8000]);
}
/*** SOUND RELATED ***********************************************************/
-static WRITE8_HANDLER(speedspn_sound_w)
+WRITE8_MEMBER(speedspn_state::speedspn_sound_w)
{
soundlatch_w(space, 1, data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
static WRITE8_DEVICE_HANDLER( oki_banking_w )
@@ -121,10 +121,10 @@ static ADDRESS_MAP_START( speedspn_io_map, AS_IO, 8, speedspn_state )
AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(speedspn_global_display_w)
AM_RANGE(0x10, 0x10) AM_READ_PORT("SYSTEM")
AM_RANGE(0x11, 0x11) AM_READ_PORT("P1")
- AM_RANGE(0x12, 0x12) AM_READ_PORT("P2") AM_WRITE_LEGACY(speedspn_banked_rom_change)
- AM_RANGE(0x13, 0x13) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(speedspn_sound_w)
+ AM_RANGE(0x12, 0x12) AM_READ_PORT("P2") AM_WRITE(speedspn_banked_rom_change)
+ AM_RANGE(0x13, 0x13) AM_READ_PORT("DSW1") AM_WRITE(speedspn_sound_w)
AM_RANGE(0x14, 0x14) AM_READ_PORT("DSW2")
- AM_RANGE(0x16, 0x16) AM_READ_LEGACY(speedspn_irq_ack_r) // @@@ could be watchdog, value is discarded
+ AM_RANGE(0x16, 0x16) AM_READ(speedspn_irq_ack_r) // @@@ could be watchdog, value is discarded
AM_RANGE(0x17, 0x17) AM_WRITE_LEGACY(speedspn_banked_vidram_change)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index 05b0027aecd..eb4444d9fd9 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -49,28 +49,28 @@ More notes about Funny Strip protection issus at the boottom of source file (DRI
#include "sound/msm5205.h"
#include "includes/splash.h"
-static WRITE16_HANDLER( splash_sh_irqtrigger_w )
+WRITE16_MEMBER(splash_state::splash_sh_irqtrigger_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
}
-static WRITE16_HANDLER( roldf_sh_irqtrigger_w )
+WRITE16_MEMBER(splash_state::roldf_sh_irqtrigger_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
// give the z80 time to see it
- device_spin_until_time(&space->device(), attotime::from_usec(40));
+ device_spin_until_time(&space.device(), attotime::from_usec(40));
}
-static WRITE16_HANDLER( splash_coin_w )
+WRITE16_MEMBER(splash_state::splash_coin_w)
{
if (ACCESSING_BITS_8_15)
{
@@ -78,11 +78,11 @@ static WRITE16_HANDLER( splash_coin_w )
{
case 0x00: /* Coin Lockouts */
case 0x01:
- coin_lockout_w( space->machine(), (offset >> 3) & 0x01, (data & 0x0400) >> 8);
+ coin_lockout_w( machine(), (offset >> 3) & 0x01, (data & 0x0400) >> 8);
break;
case 0x02: /* Coin Counters */
case 0x03:
- coin_counter_w( space->machine(), (offset >> 3) & 0x01, (data & 0x0100) >> 8);
+ coin_counter_w( machine(), (offset >> 3) & 0x01, (data & 0x0100) >> 8);
break;
}
}
@@ -95,8 +95,8 @@ static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
- AM_RANGE(0x84000e, 0x84000f) AM_WRITE_LEGACY(splash_sh_irqtrigger_w) /* Sound command */
- AM_RANGE(0x84000a, 0x84003b) AM_WRITE_LEGACY(splash_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x84000e, 0x84000f) AM_WRITE(splash_sh_irqtrigger_w) /* Sound command */
+ AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE_LEGACY(splash_vram_w) AM_BASE(m_videoram) /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(m_vregs) /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
@@ -105,11 +105,10 @@ static ADDRESS_MAP_START( splash_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
ADDRESS_MAP_END
-static WRITE8_HANDLER( splash_adpcm_data_w )
+WRITE8_MEMBER(splash_state::splash_adpcm_data_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_adpcm_data = data;
+ m_adpcm_data = data;
}
static void splash_msm5205_int(device_t *device)
@@ -122,7 +121,7 @@ static void splash_msm5205_int(device_t *device)
static ADDRESS_MAP_START( splash_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x0000, 0xd7ff) AM_ROM /* ROM */
- AM_RANGE(0xd800, 0xd800) AM_WRITE_LEGACY(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
+ AM_RANGE(0xd800, 0xd800) AM_WRITE(splash_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
// AM_RANGE(0xe000, 0xe000) AM_WRITENOP /* ??? */
AM_RANGE(0xe800, 0xe800) AM_READ_LEGACY(soundlatch_r) /* Sound latch */
AM_RANGE(0xf000, 0xf001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w) /* YM3812 */
@@ -132,17 +131,16 @@ ADDRESS_MAP_END
/* Return of Lady Frog Maps */
/* note, sprite ram has moved, extra protection ram, and extra write for the pixel layer */
-static READ16_HANDLER( roldfrog_bombs_r )
+READ16_MEMBER(splash_state::roldfrog_bombs_r)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_ret ^= 0x100;
- return state->m_ret;
+ m_ret ^= 0x100;
+ return m_ret;
}
-static WRITE8_HANDLER(sound_bank_w)
+WRITE8_MEMBER(splash_state::sound_bank_w)
{
- memory_set_bank(space->machine(), "sound_bank", data & 0xf);
+ memory_set_bank(machine(), "sound_bank", data & 0xf);
}
@@ -153,11 +151,10 @@ static void roldfrog_update_irq( running_machine &machine )
device_set_input_line_and_vector(machine.device("audiocpu"), 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq);
}
-static WRITE8_HANDLER( roldfrog_vblank_ack_w )
+WRITE8_MEMBER(splash_state::roldfrog_vblank_ack_w)
{
- splash_state * driver_state = space->machine().driver_data<splash_state>();
- driver_state->m_vblank_irq = 0;
- roldfrog_update_irq(space->machine());
+ m_vblank_irq = 0;
+ roldfrog_update_irq(machine());
}
@@ -177,13 +174,13 @@ static ADDRESS_MAP_START( roldfrog_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
AM_RANGE(0x840006, 0x840007) AM_READ_PORT("P2")
- AM_RANGE(0x84000e, 0x84000f) AM_WRITE_LEGACY(roldf_sh_irqtrigger_w) /* Sound command */
- AM_RANGE(0x84000a, 0x84003b) AM_WRITE_LEGACY(splash_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x84000e, 0x84000f) AM_WRITE(roldf_sh_irqtrigger_w) /* Sound command */
+ AM_RANGE(0x84000a, 0x84003b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
AM_RANGE(0x880000, 0x8817ff) AM_RAM_WRITE_LEGACY(splash_vram_w) AM_BASE(m_videoram) /* Video RAM */
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(m_vregs) /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_RAM /* Work RAM */
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)/* Palette is xRRRRxGGGGxBBBBx */
- AM_RANGE(0xa00000, 0xa00001) AM_READ_LEGACY(roldfrog_bombs_r)
+ AM_RANGE(0xa00000, 0xa00001) AM_READ(roldfrog_bombs_r)
AM_RANGE(0xd00000, 0xd00fff) AM_RAM AM_BASE(m_spriteram) /* Sprite RAM */
AM_RANGE(0xe00000, 0xe00001) AM_WRITEONLY AM_BASE(m_bitmap_mode) /* Bitmap Mode? */
AM_RANGE(0xffc000, 0xffffff) AM_RAM /* Work RAM */
@@ -195,7 +192,7 @@ static ADDRESS_MAP_START( roldfrog_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_ROMBANK("sound_bank")
ADDRESS_MAP_END
-static READ8_HANDLER(roldfrog_unk_r)
+READ8_MEMBER(splash_state::roldfrog_unk_r)
{
// dragon punch leftovers
return 0xff;
@@ -205,38 +202,36 @@ static ADDRESS_MAP_START( roldfrog_sound_io_map, AS_IO, 8, splash_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x10, 0x11) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0x40, 0x40) AM_NOP
- AM_RANGE(0x31, 0x31) AM_WRITE_LEGACY(sound_bank_w)
- AM_RANGE(0x37, 0x37) AM_WRITE_LEGACY(roldfrog_vblank_ack_w )
+ AM_RANGE(0x31, 0x31) AM_WRITE(sound_bank_w)
+ AM_RANGE(0x37, 0x37) AM_WRITE(roldfrog_vblank_ack_w )
AM_RANGE(0x70, 0x70) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x0, 0xff) AM_READ_LEGACY(roldfrog_unk_r)
+ AM_RANGE(0x0, 0xff) AM_READ(roldfrog_unk_r)
ADDRESS_MAP_END
-static READ16_HANDLER(spr_read)
+READ16_MEMBER(splash_state::spr_read)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- return state->m_spriteram[offset]|0xff00;
+ return m_spriteram[offset]|0xff00;
}
-static WRITE16_HANDLER(spr_write)
+WRITE16_MEMBER(splash_state::spr_write)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- COMBINE_DATA(&state->m_spriteram[offset]);
- state->m_spriteram[offset]|=0xff00; /* 8 bit, expected 0xffnn when read as 16 bit */
+ COMBINE_DATA(&m_spriteram[offset]);
+ m_spriteram[offset]|=0xff00; /* 8 bit, expected 0xffnn when read as 16 bit */
}
-static WRITE16_HANDLER( funystrp_sh_irqtrigger_w )
+WRITE16_MEMBER(splash_state::funystrp_sh_irqtrigger_w)
{
soundlatch_w(space, 0, data>>8);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x1fffff) AM_RAM /* protection? RAM */
AM_RANGE(0x800000, 0x83ffff) AM_RAM AM_BASE(m_pixelram) /* Pixel Layer */
- AM_RANGE(0x84000a, 0x84000b) AM_WRITE_LEGACY(splash_coin_w) /* Coin Counters + Coin Lockout */
- AM_RANGE(0x84000e, 0x84000f) AM_WRITE_LEGACY(funystrp_sh_irqtrigger_w) /* Sound command */
+ AM_RANGE(0x84000a, 0x84000b) AM_WRITE(splash_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0x84000e, 0x84000f) AM_WRITE(funystrp_sh_irqtrigger_w) /* Sound command */
AM_RANGE(0x840000, 0x840001) AM_READ_PORT("DSW1")
AM_RANGE(0x840002, 0x840003) AM_READ_PORT("DSW2")
AM_RANGE(0x840004, 0x840005) AM_READ_PORT("P1")
@@ -246,7 +241,7 @@ static ADDRESS_MAP_START( funystrp_map, AS_PROGRAM, 16, splash_state )
AM_RANGE(0x881800, 0x881803) AM_RAM AM_BASE(m_vregs) /* Scroll registers */
AM_RANGE(0x881804, 0x881fff) AM_WRITENOP
AM_RANGE(0x8c0000, 0x8c0fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)/* Palette is xRRRRxGGGGxBBBBx */
- AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE_LEGACY(spr_read, spr_write) AM_BASE(m_spriteram) /* Sprite RAM */
+ AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE(spr_read, spr_write) AM_BASE(m_spriteram) /* Sprite RAM */
AM_RANGE(0xfe0000, 0xffffff) AM_RAM AM_MASK(0xffff) /* there's fe0000 <-> ff0000 compare */ /* Work RAM */
ADDRESS_MAP_END
@@ -256,49 +251,44 @@ static ADDRESS_MAP_START( funystrp_sound_map, AS_PROGRAM, 8, splash_state )
AM_RANGE(0x8000, 0xffff) AM_ROM AM_ROMBANK("sound_bank")
ADDRESS_MAP_END
-static READ8_HANDLER(int_source_r)
+READ8_MEMBER(splash_state::int_source_r)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- return ~state->m_msm_source;
+ return ~m_msm_source;
}
-static WRITE8_HANDLER(msm1_data_w)
+WRITE8_MEMBER(splash_state::msm1_data_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_msm_data1=data;
- state->m_msm_source&=~1;
- state->m_msm_toggle1=0;
+ m_msm_data1=data;
+ m_msm_source&=~1;
+ m_msm_toggle1=0;
}
-static WRITE8_HANDLER(msm1_interrupt_w)
+WRITE8_MEMBER(splash_state::msm1_interrupt_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_snd_interrupt_enable1=~data;
+ m_snd_interrupt_enable1=~data;
}
-static WRITE8_HANDLER(msm2_interrupt_w)
+WRITE8_MEMBER(splash_state::msm2_interrupt_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_snd_interrupt_enable2=~data;
+ m_snd_interrupt_enable2=~data;
}
-static WRITE8_HANDLER(msm2_data_w)
+WRITE8_MEMBER(splash_state::msm2_data_w)
{
- splash_state *state = space->machine().driver_data<splash_state>();
- state->m_msm_data2=data;
- state->m_msm_source&=~2;
- state->m_msm_toggle2=0;
+ m_msm_data2=data;
+ m_msm_source&=~2;
+ m_msm_toggle2=0;
}
static ADDRESS_MAP_START( funystrp_sound_io_map, AS_IO, 8, splash_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(msm1_data_w)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(msm2_data_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(sound_bank_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(msm1_data_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(msm2_data_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(sound_bank_w)
AM_RANGE(0x03, 0x03) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(int_source_r)
- AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(msm1_interrupt_w)
- AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(msm2_interrupt_w)
+ AM_RANGE(0x04, 0x04) AM_READ(int_source_r)
+ AM_RANGE(0x06, 0x06) AM_WRITE(msm1_interrupt_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(msm2_interrupt_w)
ADDRESS_MAP_END
static MACHINE_RESET( funystrp )
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index e2a4e002b7b..c6dd2a0073a 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -62,10 +62,9 @@ Notes:
-static WRITE8_HANDLER( sprcros2_m_port7_w )
+WRITE8_MEMBER(sprcros2_state::sprcros2_m_port7_w)
{
- sprcros2_state *state = space->machine().driver_data<sprcros2_state>();
- UINT8 *RAM = space->machine().region("master")->base();
+ UINT8 *RAM = machine().region("master")->base();
//76543210
//x------- unused
@@ -76,18 +75,17 @@ static WRITE8_HANDLER( sprcros2_m_port7_w )
//------x- flip screen
//-------x nmi enable
- if((state->m_port7^data)&0x40)
- memory_set_bankptr(space->machine(), "bank1",&RAM[0x10000+((data&0x40)<<7)]);
+ if((m_port7^data)&0x40)
+ memory_set_bankptr(machine(), "bank1",&RAM[0x10000+((data&0x40)<<7)]);
- space->machine().tilemap().set_flip_all(data&0x02?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 );
+ machine().tilemap().set_flip_all(data&0x02?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 );
- state->m_port7 = data;
+ m_port7 = data;
}
-static WRITE8_HANDLER( sprcros2_s_port3_w )
+WRITE8_MEMBER(sprcros2_state::sprcros2_s_port3_w)
{
- sprcros2_state *state = space->machine().driver_data<sprcros2_state>();
- UINT8 *RAM = space->machine().region("slave")->base();
+ UINT8 *RAM = machine().region("slave")->base();
//76543210
//xxxx---- unused
@@ -95,10 +93,10 @@ static WRITE8_HANDLER( sprcros2_s_port3_w )
//-----xx- unused
//-------x nmi enable
- if((state->m_s_port3^data)&0x08)
- memory_set_bankptr(space->machine(), "bank2",&RAM[0x10000+((data&0x08)<<10)]);
+ if((m_s_port3^data)&0x08)
+ memory_set_bankptr(machine(), "bank2",&RAM[0x10000+((data&0x08)<<10)]);
- state->m_s_port3 = data;
+ m_s_port3 = data;
}
static ADDRESS_MAP_START( sprcros2_master_map, AS_PROGRAM, 8, sprcros2_state )
@@ -119,7 +117,7 @@ static ADDRESS_MAP_START( sprcros2_master_io_map, AS_IO, 8, sprcros2_state )
AM_RANGE(0x02, 0x02) AM_READ_PORT("EXTRA") AM_DEVWRITE_LEGACY("sn3", sn76496_w)
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW1")
AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW2")
- AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(sprcros2_m_port7_w)
+ AM_RANGE(0x07, 0x07) AM_WRITE(sprcros2_m_port7_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sprcros2_slave_map, AS_PROGRAM, 8, sprcros2_state )
@@ -135,7 +133,7 @@ static ADDRESS_MAP_START( sprcros2_slave_io_map, AS_IO, 8, sprcros2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(sprcros2_bgscrollx_w)
AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(sprcros2_bgscrolly_w)
- AM_RANGE(0x03, 0x03) AM_WRITE_LEGACY(sprcros2_s_port3_w)
+ AM_RANGE(0x03, 0x03) AM_WRITE(sprcros2_s_port3_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( sprcros2 )
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index f5a94736f31..70a7d449dbd 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -118,103 +118,94 @@ static INTERRUPT_GEN( sprint2 )
}
-static READ8_HANDLER( sprint2_wram_r )
+READ8_MEMBER(sprint2_state::sprint2_wram_r)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- return state->m_video_ram[0x380 + offset % 0x80];
+ return m_video_ram[0x380 + offset % 0x80];
}
-static READ8_HANDLER( sprint2_dip_r )
+READ8_MEMBER(sprint2_state::sprint2_dip_r)
{
- return (input_port_read(space->machine(), "DSW") << (2 * ((offset & 3) ^ 3))) & 0xc0;
+ return (input_port_read(machine(), "DSW") << (2 * ((offset & 3) ^ 3))) & 0xc0;
}
-static READ8_HANDLER( sprint2_input_A_r )
+READ8_MEMBER(sprint2_state::sprint2_input_A_r)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- UINT8 val = input_port_read(space->machine(), "INA");
+ UINT8 val = input_port_read(machine(), "INA");
- if (GAME_IS_SPRINT2)
+ if (m_game == 2)// (GAME_IS_SPRINT2)
{
- if (state->m_gear[0] == 1) val &= ~0x01;
- if (state->m_gear[1] == 1) val &= ~0x02;
- if (state->m_gear[0] == 2) val &= ~0x04;
- if (state->m_gear[1] == 2) val &= ~0x08;
- if (state->m_gear[0] == 3) val &= ~0x10;
- if (state->m_gear[1] == 3) val &= ~0x20;
+ if (m_gear[0] == 1) val &= ~0x01;
+ if (m_gear[1] == 1) val &= ~0x02;
+ if (m_gear[0] == 2) val &= ~0x04;
+ if (m_gear[1] == 2) val &= ~0x08;
+ if (m_gear[0] == 3) val &= ~0x10;
+ if (m_gear[1] == 3) val &= ~0x20;
}
return (val << (offset ^ 7)) & 0x80;
}
-static READ8_HANDLER( sprint2_input_B_r )
+READ8_MEMBER(sprint2_state::sprint2_input_B_r)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- UINT8 val = input_port_read(space->machine(), "INB");
+ UINT8 val = input_port_read(machine(), "INB");
- if (GAME_IS_SPRINT1)
+ if (m_game == 1) // (GAME_IS_SPRINT1)
{
- if (state->m_gear[0] == 1) val &= ~0x01;
- if (state->m_gear[0] == 2) val &= ~0x02;
- if (state->m_gear[0] == 3) val &= ~0x04;
+ if (m_gear[0] == 1) val &= ~0x01;
+ if (m_gear[0] == 2) val &= ~0x02;
+ if (m_gear[0] == 3) val &= ~0x04;
}
return (val << (offset ^ 7)) & 0x80;
}
-static READ8_HANDLER( sprint2_sync_r )
+READ8_MEMBER(sprint2_state::sprint2_sync_r)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
UINT8 val = 0;
- if (state->m_attract != 0)
+ if (m_attract != 0)
val |= 0x10;
- if (space->machine().primary_screen->vpos() == 261)
+ if (machine().primary_screen->vpos() == 261)
val |= 0x20; /* VRESET */
- if (space->machine().primary_screen->vpos() >= 224)
+ if (machine().primary_screen->vpos() >= 224)
val |= 0x40; /* VBLANK */
- if (space->machine().primary_screen->vpos() >= 131)
+ if (machine().primary_screen->vpos() >= 131)
val |= 0x80; /* 60 Hz? */
return val;
}
-static READ8_HANDLER( sprint2_steering1_r )
+READ8_MEMBER(sprint2_state::sprint2_steering1_r)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- return state->m_steering[0];
+ return m_steering[0];
}
-static READ8_HANDLER( sprint2_steering2_r )
+READ8_MEMBER(sprint2_state::sprint2_steering2_r)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- return state->m_steering[1];
+ return m_steering[1];
}
-static WRITE8_HANDLER( sprint2_steering_reset1_w )
+WRITE8_MEMBER(sprint2_state::sprint2_steering_reset1_w)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- state->m_steering[0] |= 0x80;
+ m_steering[0] |= 0x80;
}
-static WRITE8_HANDLER( sprint2_steering_reset2_w )
+WRITE8_MEMBER(sprint2_state::sprint2_steering_reset2_w)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- state->m_steering[1] |= 0x80;
+ m_steering[1] |= 0x80;
}
-static WRITE8_HANDLER( sprint2_wram_w )
+WRITE8_MEMBER(sprint2_state::sprint2_wram_w)
{
- sprint2_state *state = space->machine().driver_data<sprint2_state>();
- state->m_video_ram[0x380 + offset % 0x80] = data;
+ m_video_ram[0x380 + offset % 0x80] = data;
}
@@ -246,37 +237,37 @@ static WRITE8_DEVICE_HANDLER( sprint2_skid2_w )
}
-static WRITE8_HANDLER( sprint2_lamp1_w )
+WRITE8_MEMBER(sprint2_state::sprint2_lamp1_w)
{
- set_led_status(space->machine(), 0, offset & 1);
+ set_led_status(machine(), 0, offset & 1);
}
-static WRITE8_HANDLER( sprint2_lamp2_w )
+WRITE8_MEMBER(sprint2_state::sprint2_lamp2_w)
{
- set_led_status(space->machine(), 1, offset & 1);
+ set_led_status(machine(), 1, offset & 1);
}
static ADDRESS_MAP_START( sprint2_map, AS_PROGRAM, 8, sprint2_state )
- AM_RANGE(0x0000, 0x03ff) AM_READWRITE_LEGACY(sprint2_wram_r,sprint2_wram_w)
+ AM_RANGE(0x0000, 0x03ff) AM_READWRITE(sprint2_wram_r,sprint2_wram_w)
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE_LEGACY(sprint2_video_ram_w) AM_BASE(m_video_ram)
- AM_RANGE(0x0818, 0x081f) AM_READ_LEGACY(sprint2_input_A_r)
- AM_RANGE(0x0828, 0x082f) AM_READ_LEGACY(sprint2_input_B_r)
- AM_RANGE(0x0830, 0x0837) AM_READ_LEGACY(sprint2_dip_r)
+ AM_RANGE(0x0818, 0x081f) AM_READ(sprint2_input_A_r)
+ AM_RANGE(0x0828, 0x082f) AM_READ(sprint2_input_B_r)
+ AM_RANGE(0x0830, 0x0837) AM_READ(sprint2_dip_r)
AM_RANGE(0x0840, 0x087f) AM_READ_PORT("COIN")
- AM_RANGE(0x0880, 0x08bf) AM_READ_LEGACY(sprint2_steering1_r)
- AM_RANGE(0x08c0, 0x08ff) AM_READ_LEGACY(sprint2_steering2_r)
- AM_RANGE(0x0c00, 0x0fff) AM_READ_LEGACY(sprint2_sync_r)
+ 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(0x0c30, 0x0c3f) AM_WRITE_LEGACY(sprint2_lamp1_w)
- AM_RANGE(0x0c40, 0x0c4f) AM_WRITE_LEGACY(sprint2_lamp2_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 */
AM_RANGE(0x0c80, 0x0cff) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x0d00, 0x0d7f) AM_WRITE_LEGACY(sprint2_collision_reset1_w)
AM_RANGE(0x0d80, 0x0dff) AM_WRITE_LEGACY(sprint2_collision_reset2_w)
- AM_RANGE(0x0e00, 0x0e7f) AM_WRITE_LEGACY(sprint2_steering_reset1_w)
- AM_RANGE(0x0e80, 0x0eff) AM_WRITE_LEGACY(sprint2_steering_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(0x1000, 0x13ff) AM_READ_LEGACY(sprint2_collision1_r)
AM_RANGE(0x1400, 0x17ff) AM_READ_LEGACY(sprint2_collision2_r)
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index d6b75682503..f9c97c59777 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -128,66 +128,62 @@ static MACHINE_RESET( sprint4 )
}
-static READ8_HANDLER( sprint4_wram_r )
+READ8_MEMBER(sprint4_state::sprint4_wram_r)
{
- sprint4_state *state = space->machine().driver_data<sprint4_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
return videoram[0x380 + offset];
}
-static READ8_HANDLER( sprint4_analog_r )
+READ8_MEMBER(sprint4_state::sprint4_analog_r)
{
- return (input_port_read(space->machine(), "ANALOG") << (~offset & 7)) & 0x80;
+ return (input_port_read(machine(), "ANALOG") << (~offset & 7)) & 0x80;
}
-static READ8_HANDLER( sprint4_coin_r )
+READ8_MEMBER(sprint4_state::sprint4_coin_r)
{
- return (input_port_read(space->machine(), "COIN") << (~offset & 7)) & 0x80;
+ return (input_port_read(machine(), "COIN") << (~offset & 7)) & 0x80;
}
-static READ8_HANDLER( sprint4_collision_r )
+READ8_MEMBER(sprint4_state::sprint4_collision_r)
{
- return (input_port_read(space->machine(), "COLLISION") << (~offset & 7)) & 0x80;
+ return (input_port_read(machine(), "COLLISION") << (~offset & 7)) & 0x80;
}
-static READ8_HANDLER( sprint4_options_r )
+READ8_MEMBER(sprint4_state::sprint4_options_r)
{
- return (input_port_read(space->machine(), "DIP") >> (2 * (offset & 3))) & 3;
+ return (input_port_read(machine(), "DIP") >> (2 * (offset & 3))) & 3;
}
-static WRITE8_HANDLER( sprint4_wram_w )
+WRITE8_MEMBER(sprint4_state::sprint4_wram_w)
{
- sprint4_state *state = space->machine().driver_data<sprint4_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
videoram[0x380 + offset] = data;
}
-static WRITE8_HANDLER( sprint4_collision_reset_w )
+WRITE8_MEMBER(sprint4_state::sprint4_collision_reset_w)
{
- sprint4_state *state = space->machine().driver_data<sprint4_state>();
- state->m_collision[(offset >> 1) & 3] = 0;
+ m_collision[(offset >> 1) & 3] = 0;
}
-static WRITE8_HANDLER( sprint4_da_latch_w )
+WRITE8_MEMBER(sprint4_state::sprint4_da_latch_w)
{
- sprint4_state *state = space->machine().driver_data<sprint4_state>();
- state->m_da_latch = data & 15;
+ m_da_latch = data & 15;
}
-static WRITE8_HANDLER( sprint4_lamp_w )
+WRITE8_MEMBER(sprint4_state::sprint4_lamp_w)
{
- set_led_status(space->machine(), (offset >> 1) & 3, offset & 1);
+ set_led_status(machine(), (offset >> 1) & 3, offset & 1);
}
#ifdef UNUSED_FUNCTION
-static WRITE8_HANDLER( sprint4_lockout_w )
+WRITE8_MEMBER(sprint4_state::sprint4_lockout_w)
{
- coin_lockout_global_w(space->machine(), ~offset & 1);
+ coin_lockout_global_w(machine(), ~offset & 1);
}
#endif
@@ -234,23 +230,23 @@ static ADDRESS_MAP_START( sprint4_cpu_map, AS_PROGRAM, 8, sprint4_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE_LEGACY(sprint4_wram_r, sprint4_wram_w)
+ AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(sprint4_wram_r, sprint4_wram_w)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(sprint4_video_ram_w) AM_BASE(m_videoram)
- AM_RANGE(0x0000, 0x0007) AM_MIRROR(0x718) AM_READ_LEGACY(sprint4_analog_r)
- AM_RANGE(0x0020, 0x0027) AM_MIRROR(0x718) AM_READ_LEGACY(sprint4_coin_r)
- AM_RANGE(0x0040, 0x0047) AM_MIRROR(0x718) AM_READ_LEGACY(sprint4_collision_r)
- AM_RANGE(0x0060, 0x0063) AM_MIRROR(0x71c) AM_READ_LEGACY(sprint4_options_r)
+ AM_RANGE(0x0000, 0x0007) AM_MIRROR(0x718) AM_READ(sprint4_analog_r)
+ AM_RANGE(0x0020, 0x0027) AM_MIRROR(0x718) AM_READ(sprint4_coin_r)
+ AM_RANGE(0x0040, 0x0047) AM_MIRROR(0x718) AM_READ(sprint4_collision_r)
+ AM_RANGE(0x0060, 0x0063) AM_MIRROR(0x71c) AM_READ(sprint4_options_r)
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(0x0020, 0x0027) AM_MIRROR(0x718) AM_WRITE_LEGACY(sprint4_collision_reset_w)
- AM_RANGE(0x0040, 0x0041) AM_MIRROR(0x718) AM_WRITE_LEGACY(sprint4_da_latch_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(0x0044, 0x0045) AM_MIRROR(0x718) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x0060, 0x0067) AM_MIRROR(0x710) AM_WRITE_LEGACY(sprint4_lamp_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)
diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c
index 64282371ebe..fc3c3b0bf4b 100644
--- a/src/mame/drivers/sprint8.c
+++ b/src/mame/drivers/sprint8.c
@@ -60,24 +60,22 @@ static MACHINE_RESET( sprint8 )
}
-static READ8_HANDLER( sprint8_collision_r )
+READ8_MEMBER(sprint8_state::sprint8_collision_r)
{
- sprint8_state *state = space->machine().driver_data<sprint8_state>();
- return state->m_collision_index;
+ return m_collision_index;
}
-static READ8_HANDLER( sprint8_input_r )
+READ8_MEMBER(sprint8_state::sprint8_input_r)
{
- sprint8_state *state = space->machine().driver_data<sprint8_state>();
static const char *const portnames[] = { "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8" };
- UINT8 val = input_port_read(space->machine(), portnames[offset]);
+ UINT8 val = input_port_read(machine(), portnames[offset]);
- if (state->m_steer_dir[offset])
+ if (m_steer_dir[offset])
{
val |= 0x02;
}
- if (state->m_steer_flag[offset])
+ if (m_steer_flag[offset])
{
val |= 0x04;
}
@@ -86,35 +84,34 @@ static READ8_HANDLER( sprint8_input_r )
}
-static WRITE8_HANDLER( sprint8_lockout_w )
+WRITE8_MEMBER(sprint8_state::sprint8_lockout_w)
{
- coin_lockout_w(space->machine(), offset, !(data & 1));
+ coin_lockout_w(machine(), offset, !(data & 1));
}
-static WRITE8_HANDLER( sprint8_int_reset_w )
+WRITE8_MEMBER(sprint8_state::sprint8_int_reset_w)
{
- sprint8_state *state = space->machine().driver_data<sprint8_state>();
- state->m_collision_reset = !(data & 1);
+ m_collision_reset = !(data & 1);
- if (state->m_collision_reset)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ if (m_collision_reset)
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
static ADDRESS_MAP_START( sprint8_map, AS_PROGRAM, 8, sprint8_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE_LEGACY(sprint8_video_ram_w) AM_BASE(m_video_ram)
- AM_RANGE(0x1c00, 0x1c00) AM_READ_LEGACY(sprint8_collision_r)
- AM_RANGE(0x1c01, 0x1c08) AM_READ_LEGACY(sprint8_input_r)
+ AM_RANGE(0x1c00, 0x1c00) AM_READ(sprint8_collision_r)
+ AM_RANGE(0x1c01, 0x1c08) AM_READ(sprint8_input_r)
AM_RANGE(0x1c09, 0x1c09) AM_READ_PORT("IN0")
AM_RANGE(0x1c0a, 0x1c0a) AM_READ_PORT("IN1")
AM_RANGE(0x1c0f, 0x1c0f) AM_READ_PORT("VBLANK")
AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_BASE(m_pos_h_ram)
AM_RANGE(0x1c10, 0x1c1f) AM_WRITEONLY AM_BASE(m_pos_v_ram)
AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_BASE(m_pos_d_ram)
- AM_RANGE(0x1c30, 0x1c37) AM_WRITE_LEGACY(sprint8_lockout_w)
- AM_RANGE(0x1d00, 0x1d00) AM_WRITE_LEGACY(sprint8_int_reset_w)
+ AM_RANGE(0x1c30, 0x1c37) AM_WRITE(sprint8_lockout_w)
+ AM_RANGE(0x1d00, 0x1d00) AM_WRITE(sprint8_int_reset_w)
AM_RANGE(0x1d01, 0x1d01) AM_DEVWRITE_LEGACY("discrete", sprint8_crash_w)
AM_RANGE(0x1d02, 0x1d02) AM_DEVWRITE_LEGACY("discrete", sprint8_screech_w)
AM_RANGE(0x1d03, 0x1d03) AM_WRITENOP
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index f54871ed88c..8bdd6ffc1fd 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -34,51 +34,49 @@ static INTERRUPT_GEN( spy_interrupt )
device_set_input_line(device, 0, HOLD_LINE);
}
-static READ8_HANDLER( spy_bankedram1_r )
+READ8_MEMBER(spy_state::spy_bankedram1_r)
{
- spy_state *state = space->machine().driver_data<spy_state>();
- if (state->m_rambank & 1)
+ if (m_rambank & 1)
{
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
}
- else if (state->m_rambank & 2)
+ else if (m_rambank & 2)
{
- if (state->m_pmcbank)
+ if (m_pmcbank)
{
- //logerror("%04x read pmcram %04x\n", cpu_get_pc(&space->device()), offset);
- return state->m_pmcram[offset];
+ //logerror("%04x read pmcram %04x\n", cpu_get_pc(&space.device()), offset);
+ return m_pmcram[offset];
}
else
{
- //logerror("%04x read pmc internal ram %04x\n", cpu_get_pc(&space->device()), offset);
+ //logerror("%04x read pmc internal ram %04x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
}
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( spy_bankedram1_w )
+WRITE8_MEMBER(spy_state::spy_bankedram1_w)
{
- spy_state *state = space->machine().driver_data<spy_state>();
- if (state->m_rambank & 1)
+ if (m_rambank & 1)
{
paletteram_xBBBBBGGGGGRRRRR_be_w(space,offset,data);
}
- else if (state->m_rambank & 2)
+ else if (m_rambank & 2)
{
- if (state->m_pmcbank)
+ if (m_pmcbank)
{
- //logerror("%04x pmcram %04x = %02x\n", cpu_get_pc(&space->device()), offset, data);
- state->m_pmcram[offset] = data;
+ //logerror("%04x pmcram %04x = %02x\n", cpu_get_pc(&space.device()), offset, data);
+ m_pmcram[offset] = data;
}
//else
- //logerror("%04x pmc internal ram %04x = %02x\n", cpu_get_pc(&space->device()), offset, data);
+ //logerror("%04x pmc internal ram %04x = %02x\n", cpu_get_pc(&space.device()), offset, data);
}
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
/*
@@ -149,7 +147,7 @@ this is the data written to internal ram on startup:
3f: 5f 7e 00 ce 08
*/
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(spy_state::bankswitch_w)
{
int bank;
@@ -163,7 +161,7 @@ static WRITE8_HANDLER( bankswitch_w )
else
bank = ((data & 0x0e) >> 1);
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
}
static void spy_collision( running_machine &machine )
@@ -249,9 +247,8 @@ static void spy_collision( running_machine &machine )
}
-static WRITE8_HANDLER( spy_3f90_w )
+WRITE8_MEMBER(spy_state::spy_3f90_w)
{
- spy_state *state = space->machine().driver_data<spy_state>();
/*********************************************************************
*
@@ -292,24 +289,24 @@ static WRITE8_HANDLER( spy_3f90_w )
********************************************************************/
/* bits 0/1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 2 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE);
/* bit 3 = disable video */
- state->m_video_enable = ~(data & 0x08);
+ m_video_enable = ~(data & 0x08);
/* bit 4 = read RAM at 0000 (if set) else read color palette RAM */
/* bit 5 = PMCBK */
- state->m_rambank = (data & 0x30) >> 4;
+ m_rambank = (data & 0x30) >> 4;
/* bit 7 = PMC-BK */
- state->m_pmcbank = (data & 0x80) >> 7;
+ m_pmcbank = (data & 0x80) >> 7;
-//logerror("%04x: 3f90_w %02x\n", cpu_get_pc(&space->device()), data);
+//logerror("%04x: 3f90_w %02x\n", cpu_get_pc(&space.device()), data);
/* bit 6 = PMC-START */
- if ((data & 0x40) && !(state->m_old_3f90 & 0x40))
+ if ((data & 0x40) && !(m_old_3f90 & 0x40))
{
/* we should handle collision here */
//AT
@@ -320,84 +317,80 @@ static WRITE8_HANDLER( spy_3f90_w )
logerror("collision test:\n");
for (i = 0; i < 0xfe; i++)
{
- logerror("%02x ", state->m_pmcram[i]);
+ logerror("%02x ", m_pmcram[i]);
if (i == 0x0f || (i > 0x10 && (i - 0x10) % 14 == 13))
logerror("\n");
}
}
- spy_collision(space->machine());
+ spy_collision(machine());
//ZT
- device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
+ device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
}
- state->m_old_3f90 = data;
+ m_old_3f90 = data;
}
-static WRITE8_HANDLER( spy_sh_irqtrigger_w )
+WRITE8_MEMBER(spy_state::spy_sh_irqtrigger_w)
{
- spy_state *state = space->machine().driver_data<spy_state>();
- 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);
}
-static WRITE8_HANDLER( sound_bank_w )
+WRITE8_MEMBER(spy_state::sound_bank_w)
{
- spy_state *state = space->machine().driver_data<spy_state>();
int bank_A, bank_B;
bank_A = (data >> 0) & 0x03;
bank_B = (data >> 2) & 0x03;
- k007232_set_bank(state->m_k007232_1, bank_A, bank_B);
+ k007232_set_bank(m_k007232_1, bank_A, bank_B);
bank_A = (data >> 4) & 0x03;
bank_B = (data >> 6) & 0x03;
- k007232_set_bank(state->m_k007232_2, bank_A, bank_B);
+ k007232_set_bank(m_k007232_2, bank_A, bank_B);
}
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(spy_state::k052109_051960_r)
{
- spy_state *state = space->machine().driver_data<spy_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(spy_state::k052109_051960_w)
{
- spy_state *state = space->machine().driver_data<spy_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( spy_map, AS_PROGRAM, 8, spy_state )
- AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(spy_bankedram1_r, spy_bankedram1_w) AM_BASE(m_ram)
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(spy_bankedram1_r, spy_bankedram1_w) AM_BASE(m_ram)
AM_RANGE(0x0800, 0x1aff) AM_RAM
- AM_RANGE(0x3f80, 0x3f80) AM_WRITE_LEGACY(bankswitch_w)
- AM_RANGE(0x3f90, 0x3f90) AM_WRITE_LEGACY(spy_3f90_w)
+ AM_RANGE(0x3f80, 0x3f80) AM_WRITE(bankswitch_w)
+ AM_RANGE(0x3f90, 0x3f90) AM_WRITE(spy_3f90_w)
AM_RANGE(0x3fa0, 0x3fa0) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x3fb0, 0x3fb0) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x3fc0, 0x3fc0) AM_WRITE_LEGACY(spy_sh_irqtrigger_w)
+ AM_RANGE(0x3fc0, 0x3fc0) AM_WRITE(spy_sh_irqtrigger_w)
AM_RANGE(0x3fd0, 0x3fd0) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3fd1, 0x3fd1) AM_READ_PORT("P1")
AM_RANGE(0x3fd2, 0x3fd2) AM_READ_PORT("P2")
AM_RANGE(0x3fd3, 0x3fd3) AM_READ_PORT("DSW1")
AM_RANGE(0x3fe0, 0x3fe0) AM_READ_PORT("DSW2")
- AM_RANGE(0x2000, 0x5fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x2000, 0x5fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -405,7 +398,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spy_sound_map, AS_PROGRAM, 8, spy_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(sound_bank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(sound_bank_w)
AM_RANGE(0xa000, 0xa00d) AM_DEVREADWRITE_LEGACY("k007232_1", k007232_r, k007232_w)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232_2", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym3812_r,ym3812_w)
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index fe980f66795..bf288e6d0b3 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -119,7 +119,7 @@ static MACHINE_START( rmgoldyh )
***************************************************************************/
-static WRITE16_HANDLER( srmp2_flags_w )
+WRITE16_MEMBER(srmp2_state::srmp2_flags_w)
{
/*
---- ---x : Coin Counter
@@ -128,38 +128,36 @@ static WRITE16_HANDLER( srmp2_flags_w )
x--- ---- : Palette Bank
*/
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- coin_counter_w( space->machine(), 0, ((data & 0x01) >> 0) );
- coin_lockout_w( space->machine(), 0, (((~data) & 0x10) >> 4) );
- state->m_adpcm_bank = ( (data & 0x20) >> 5 );
- state->m_color_bank = ( (data & 0x80) >> 7 );
+ coin_counter_w( machine(), 0, ((data & 0x01) >> 0) );
+ coin_lockout_w( machine(), 0, (((~data) & 0x10) >> 4) );
+ m_adpcm_bank = ( (data & 0x20) >> 5 );
+ m_color_bank = ( (data & 0x80) >> 7 );
}
-static WRITE16_HANDLER( mjyuugi_flags_w )
+WRITE16_MEMBER(srmp2_state::mjyuugi_flags_w)
{
/*
---- ---x : Coin Counter
---x ---- : Coin Lock Out
*/
- coin_counter_w( space->machine(), 0, ((data & 0x01) >> 0) );
- coin_lockout_w( space->machine(), 0, (((~data) & 0x10) >> 4) );
+ coin_counter_w( machine(), 0, ((data & 0x01) >> 0) );
+ coin_lockout_w( machine(), 0, (((~data) & 0x10) >> 4) );
}
-static WRITE16_HANDLER( mjyuugi_adpcm_bank_w )
+WRITE16_MEMBER(srmp2_state::mjyuugi_adpcm_bank_w)
{
/*
---- xxxx : ADPCM Bank
--xx ---- : GFX Bank
*/
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- state->m_adpcm_bank = (data & 0x0f);
- state->m_gfx_bank = ((data >> 4) & 0x03);
+ m_adpcm_bank = (data & 0x0f);
+ m_gfx_bank = ((data >> 4) & 0x03);
}
@@ -246,7 +244,7 @@ static void srmp2_adpcm_int(device_t *device)
}
}
-static READ8_HANDLER( vox_status_r )
+READ8_MEMBER(srmp2_state::vox_status_r)
{
return 1;
}
@@ -273,10 +271,9 @@ static UINT8 iox_key_matrix_calc(running_machine &machine,UINT8 p_side)
return 0;
}
-static READ8_HANDLER( iox_mux_r )
+READ8_MEMBER(srmp2_state::iox_mux_r)
{
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- iox_t &iox = state->m_iox;
+ iox_t &iox = m_iox;
/* first off check any pending protection value */
{
@@ -303,8 +300,8 @@ static READ8_HANDLER( iox_mux_r )
/* both side checks */
if(iox.mux == 1)
{
- UINT8 p1_side = iox_key_matrix_calc(space->machine(),0);
- UINT8 p2_side = iox_key_matrix_calc(space->machine(),4);
+ UINT8 p1_side = iox_key_matrix_calc(machine(),0);
+ UINT8 p2_side = iox_key_matrix_calc(machine(),4);
if(p1_side != 0)
return p1_side;
@@ -313,21 +310,20 @@ static READ8_HANDLER( iox_mux_r )
}
/* check individual input side */
- return iox_key_matrix_calc(space->machine(),(iox.mux == 2) ? 0 : 4);
+ return iox_key_matrix_calc(machine(),(iox.mux == 2) ? 0 : 4);
}
- return input_port_read(space->machine(),"SERVICE") & 0xff;
+ return input_port_read(machine(),"SERVICE") & 0xff;
}
-static READ8_HANDLER( iox_status_r )
+READ8_MEMBER(srmp2_state::iox_status_r)
{
return 1;
}
-static WRITE8_HANDLER( iox_command_w )
+WRITE8_MEMBER(srmp2_state::iox_command_w)
{
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- iox_t &iox = state->m_iox;
+ iox_t &iox = m_iox;
/*
bit wise command port apparently
0x01: selects both sides
@@ -339,10 +335,9 @@ static WRITE8_HANDLER( iox_command_w )
iox.ff = 0; // this also set flip flop back to 0
}
-static WRITE8_HANDLER( iox_data_w )
+WRITE8_MEMBER(srmp2_state::iox_data_w)
{
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- iox_t &iox = state->m_iox;
+ iox_t &iox = m_iox;
iox.data = data;
if(data == iox.reset && iox.reset != -1) //resets device
@@ -355,23 +350,22 @@ static WRITE8_HANDLER( iox_data_w )
iox.ff = 1;
}
-static WRITE8_HANDLER( srmp3_rombank_w )
+WRITE8_MEMBER(srmp2_state::srmp3_rombank_w)
{
/*
---x xxxx : MAIN ROM bank
xxx- ---- : ADPCM ROM bank
*/
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- UINT8 *ROM = space->machine().region("maincpu")->base();
+ UINT8 *ROM = machine().region("maincpu")->base();
int addr;
- state->m_adpcm_bank = ((data & 0xe0) >> 5);
+ m_adpcm_bank = ((data & 0xe0) >> 5);
if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x0f))) - 0x8000);
else addr = 0x10000;
- memory_set_bankptr(space->machine(), "bank1", &ROM[addr]);
+ memory_set_bankptr(machine(), "bank1", &ROM[addr]);
}
/**************************************************************************
@@ -380,14 +374,14 @@ static WRITE8_HANDLER( srmp3_rombank_w )
**************************************************************************/
-static WRITE8_HANDLER( srmp2_irq2_ack_w )
+WRITE8_MEMBER(srmp2_state::srmp2_irq2_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
}
-static WRITE8_HANDLER( srmp2_irq4_ack_w )
+WRITE8_MEMBER(srmp2_state::srmp2_irq4_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 4, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, CLEAR_LINE);
}
@@ -398,48 +392,48 @@ static ADDRESS_MAP_START( srmp2_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x180000, 0x1805ff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spriteylow_r16, spriteylow_w16) /* Sprites Y */
AM_RANGE(0x180600, 0x180607) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritectrl_r16, spritectrl_w16)
AM_RANGE(0x1c0000, 0x1c0001) AM_WRITENOP /* ??? */
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(srmp2_flags_w) /* ADPCM bank, Color bank, etc. */
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(srmp2_flags_w) /* ADPCM bank, Color bank, etc. */
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("SYSTEM") /* Coinage */
AM_RANGE(0x900000, 0x900001) AM_WRITENOP /* ??? */
- AM_RANGE(0xa00000, 0xa00001) AM_READWRITE8_LEGACY(iox_mux_r, iox_command_w,0x00ff) /* key matrix | I/O */
- AM_RANGE(0xa00002, 0xa00003) AM_READWRITE8_LEGACY(iox_status_r,iox_data_w,0x00ff)
+ 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(0xb00002, 0xb00003) AM_READ8_LEGACY(vox_status_r,0x00ff) /* ADPCM voice status */
- AM_RANGE(0xc00000, 0xc00001) AM_WRITE8_LEGACY(srmp2_irq2_ack_w,0x00ff) /* irq ack lv 2 */
- AM_RANGE(0xd00000, 0xd00001) AM_WRITE8_LEGACY(srmp2_irq4_ack_w,0x00ff) /* irq ack lv 4 */
+ 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 */
AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP /* watchdog */
AM_RANGE(0xf00000, 0xf00001) AM_DEVREAD8_LEGACY("aysnd", ay8910_r, 0x00ff)
AM_RANGE(0xf00000, 0xf00003) AM_DEVWRITE8_LEGACY("aysnd", ay8910_address_data_w, 0x00ff)
ADDRESS_MAP_END
-static READ8_HANDLER( mjyuugi_irq2_ack_r )
+READ8_MEMBER(srmp2_state::mjyuugi_irq2_ack_r)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
return 0xff; // value returned doesn't matter
}
-static READ8_HANDLER( mjyuugi_irq4_ack_r )
+READ8_MEMBER(srmp2_state::mjyuugi_irq4_ack_r)
{
- cputag_set_input_line(space->machine(), "maincpu", 4, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 4, CLEAR_LINE);
return 0xff; // value returned doesn't matter
}
static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("SYSTEM") /* Coinage */
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(mjyuugi_flags_w) /* Coin Counter */
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(mjyuugi_flags_w) /* Coin Counter */
AM_RANGE(0x100010, 0x100011) AM_READNOP /* ??? */
- AM_RANGE(0x100010, 0x100011) AM_WRITE_LEGACY(mjyuugi_adpcm_bank_w) /* ADPCM bank, GFX bank */
- AM_RANGE(0x200000, 0x200001) AM_READ8_LEGACY(mjyuugi_irq2_ack_r,0x00ff) /* irq ack lv 2? */
- AM_RANGE(0x300000, 0x300001) AM_READ8_LEGACY(mjyuugi_irq4_ack_r,0x00ff) /* irq ack lv 4? */
+ AM_RANGE(0x100010, 0x100011) AM_WRITE(mjyuugi_adpcm_bank_w) /* ADPCM bank, GFX bank */
+ AM_RANGE(0x200000, 0x200001) AM_READ8(mjyuugi_irq2_ack_r,0x00ff) /* irq ack lv 2? */
+ AM_RANGE(0x300000, 0x300001) AM_READ8(mjyuugi_irq4_ack_r,0x00ff) /* irq ack lv 4? */
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSW3-1") /* DSW 3-1 */
AM_RANGE(0x500010, 0x500011) AM_READ_PORT("DSW3-2") /* DSW 3-2 */
AM_RANGE(0x700000, 0x7003ff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x800000, 0x800001) AM_READNOP /* ??? */
- AM_RANGE(0x900000, 0x900001) AM_READWRITE8_LEGACY(iox_mux_r, iox_command_w,0x00ff) /* key matrix | I/O */
- AM_RANGE(0x900002, 0x900003) AM_READWRITE8_LEGACY(iox_status_r,iox_data_w,0x00ff)
+ 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(0xb00002, 0xb00003) AM_READ8_LEGACY(vox_status_r,0x00ff) /* ADPCM voice status */
+ 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)
AM_RANGE(0xc00000, 0xc00001) AM_WRITENOP /* ??? */
@@ -451,7 +445,7 @@ static ADDRESS_MAP_START( mjyuugi_map, AS_PROGRAM, 16, srmp2_state )
AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
-static WRITE8_HANDLER( srmp3_flags_w )
+WRITE8_MEMBER(srmp2_state::srmp3_flags_w)
{
/*
---- ---x : Coin Counter
@@ -459,16 +453,15 @@ static WRITE8_HANDLER( srmp3_flags_w )
xx-- ---- : GFX Bank
*/
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- coin_counter_w( space->machine(), 0, ((data & 0x01) >> 0) );
- coin_lockout_w( space->machine(), 0, (((~data) & 0x10) >> 4) );
- state->m_gfx_bank = (data >> 6) & 0x03;
+ coin_counter_w( machine(), 0, ((data & 0x01) >> 0) );
+ coin_lockout_w( machine(), 0, (((~data) & 0x10) >> 4) );
+ m_gfx_bank = (data >> 6) & 0x03;
}
-static WRITE8_HANDLER( srmp3_irq_ack_w )
+WRITE8_MEMBER(srmp2_state::srmp3_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
static ADDRESS_MAP_START( srmp3_map, AS_PROGRAM, 8, srmp2_state )
@@ -485,13 +478,13 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( srmp3_io_map, AS_IO, 8, srmp2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(srmp3_irq_ack_w) /* interrupt acknowledge */
- AM_RANGE(0x40, 0x40) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(srmp3_flags_w) /* coin, service | GFX bank, counter, lockout */
- AM_RANGE(0x60, 0x60) AM_WRITE_LEGACY(srmp3_rombank_w) /* ROM bank select */
+ 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(0xa1, 0xa1) AM_READ_LEGACY(vox_status_r) /* ADPCM voice status */
- AM_RANGE(0xc0, 0xc0) AM_READWRITE_LEGACY(iox_mux_r, iox_command_w) /* key matrix | I/O */
- AM_RANGE(0xc1, 0xc1) AM_READWRITE_LEGACY(iox_status_r,iox_data_w)
+ 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)
AM_RANGE(0xe0, 0xe1) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0xe2, 0xe2) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
ADDRESS_MAP_END
@@ -507,29 +500,28 @@ static ADDRESS_MAP_START( rmgoldyh_map, AS_PROGRAM, 8, srmp2_state )
AM_RANGE(0xe000, 0xffff) AM_RAM AM_DEVREADWRITE_LEGACY("spritegen", spritecodehigh_r8, spritecodehigh_w8)
ADDRESS_MAP_END
-static WRITE8_HANDLER( rmgoldyh_rombank_w )
+WRITE8_MEMBER(srmp2_state::rmgoldyh_rombank_w)
{
/*
---x xxxx : MAIN ROM bank
xxx- ---- : ADPCM ROM bank
*/
- srmp2_state *state = space->machine().driver_data<srmp2_state>();
- UINT8 *ROM = space->machine().region("maincpu")->base();
+ UINT8 *ROM = machine().region("maincpu")->base();
int addr;
- state->m_adpcm_bank = ((data & 0xe0) >> 5);
+ m_adpcm_bank = ((data & 0xe0) >> 5);
if (data & 0x1f) addr = ((0x10000 + (0x2000 * (data & 0x1f))) - 0x8000);
else addr = 0x10000;
- memory_set_bankptr(space->machine(), "bank1", &ROM[addr]);
+ memory_set_bankptr(machine(), "bank1", &ROM[addr]);
}
static ADDRESS_MAP_START( rmgoldyh_io_map, AS_IO, 8, srmp2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
- AM_RANGE(0x60, 0x60) AM_WRITE_LEGACY(rmgoldyh_rombank_w) /* ROM bank select */
+ AM_RANGE(0x60, 0x60) AM_WRITE(rmgoldyh_rombank_w) /* ROM bank select */
AM_RANGE(0x80, 0x80) AM_READ_PORT("DSW4")
AM_RANGE(0x81, 0x81) AM_READ_PORT("DSW3")
AM_IMPORT_FROM(srmp3_io_map)
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index 16dc7b42f0b..2ae33855684 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -17,7 +17,7 @@
#include "includes/srumbler.h"
-static WRITE8_HANDLER( srumbler_bankswitch_w )
+WRITE8_MEMBER(srumbler_state::srumbler_bankswitch_w)
{
/*
banking is controlled by two PROMs. 0000-4fff is mapped to the same
@@ -28,9 +28,9 @@ static WRITE8_HANDLER( srumbler_bankswitch_w )
that as well to be 100% accurate.
*/
int i;
- UINT8 *ROM = space->machine().region("user1")->base();
- UINT8 *prom1 = space->machine().region("proms")->base() + (data & 0xf0);
- UINT8 *prom2 = space->machine().region("proms")->base() + 0x100 + ((data & 0x0f) << 4);
+ UINT8 *ROM = machine().region("user1")->base();
+ UINT8 *prom1 = machine().region("proms")->base() + (data & 0xf0);
+ UINT8 *prom2 = machine().region("proms")->base() + 0x100 + ((data & 0x0f) << 4);
for (i = 0x05;i < 0x10;i++)
{
@@ -39,7 +39,7 @@ static WRITE8_HANDLER( srumbler_bankswitch_w )
/* bit 2 of prom1 selects ROM or RAM - not supported */
sprintf(bankname, "%04x", i*0x1000);
- memory_set_bankptr(space->machine(), bankname,&ROM[bank*0x1000]);
+ memory_set_bankptr(machine(), bankname,&ROM[bank*0x1000]);
}
}
@@ -47,7 +47,8 @@ static MACHINE_START( srumbler )
{
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
/* initialize banked ROM pointers */
- srumbler_bankswitch_w(space,0,0);
+ srumbler_state *state = machine.driver_data<srumbler_state>();
+ state->srumbler_bankswitch_w(*space,0,0);
}
static TIMER_DEVICE_CALLBACK( srumbler_interrupt )
@@ -76,7 +77,7 @@ static ADDRESS_MAP_START( srumbler_map, AS_PROGRAM, 8, srumbler_state )
AM_RANGE(0x0000, 0x1dff) AM_RAM /* RAM (of 1 sort or another) */
AM_RANGE(0x1e00, 0x1fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE_LEGACY(srumbler_background_w) AM_BASE(m_backgroundram)
- AM_RANGE(0x4008, 0x4008) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(srumbler_bankswitch_w)
+ AM_RANGE(0x4008, 0x4008) AM_READ_PORT("SYSTEM") AM_WRITE(srumbler_bankswitch_w)
AM_RANGE(0x4009, 0x4009) AM_READ_PORT("P1") AM_WRITE_LEGACY(srumbler_4009_w)
AM_RANGE(0x400a, 0x400a) AM_READ_PORT("P2")
AM_RANGE(0x400b, 0x400b) AM_READ_PORT("DSW1")
diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c
index 6bea6aa6a65..ebba7e4603b 100644
--- a/src/mame/drivers/sshangha.c
+++ b/src/mame/drivers/sshangha.c
@@ -60,52 +60,49 @@ Stephh's notes (based on the games M68000 code and some tests) :
/******************************************************************************/
-static WRITE16_HANDLER( sshangha_protection16_w )
+WRITE16_MEMBER(sshangha_state::sshangha_protection16_w)
{
- sshangha_state *state = space->machine().driver_data<sshangha_state>();
- COMBINE_DATA(&state->m_prot_data[offset]);
+ COMBINE_DATA(&m_prot_data[offset]);
- logerror("CPU #0 PC %06x: warning - write unmapped control address %06x %04x\n",cpu_get_pc(&space->device()),offset<<1,data);
+ logerror("CPU #0 PC %06x: warning - write unmapped control address %06x %04x\n",cpu_get_pc(&space.device()),offset<<1,data);
}
/* Protection/IO chip 146 */
-static READ16_HANDLER( sshangha_protection16_r )
+READ16_MEMBER(sshangha_state::sshangha_protection16_r)
{
- sshangha_state *state = space->machine().driver_data<sshangha_state>();
switch (offset)
{
case 0x050 >> 1:
- return input_port_read(space->machine(), "INPUTS");
+ return input_port_read(machine(), "INPUTS");
case 0x76a >> 1:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 0x0ac >> 1:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
// Protection TODO
}
- logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n",cpu_get_pc(&space->device()),offset<<1);
- return state->m_prot_data[offset];
+ logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n",cpu_get_pc(&space.device()),offset<<1);
+ return m_prot_data[offset];
}
-static READ16_HANDLER( sshanghb_protection16_r )
+READ16_MEMBER(sshangha_state::sshanghb_protection16_r)
{
- sshangha_state *state = space->machine().driver_data<sshangha_state>();
switch (offset)
{
case 0x050 >> 1:
- return input_port_read(space->machine(), "INPUTS");
+ return input_port_read(machine(), "INPUTS");
case 0x76a >> 1:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 0x0ac >> 1:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
}
- return state->m_prot_data[offset];
+ return m_prot_data[offset];
}
/* Probably returns 0xffff when sprite DMA is complete, the game waits on it */
-static READ16_HANDLER( deco_71_r )
+READ16_MEMBER(sshangha_state::deco_71_r)
{
return 0xffff;
}
@@ -174,10 +171,10 @@ static ADDRESS_MAP_START( sshangha_map, AS_PROGRAM, 16, sshangha_state )
AM_RANGE(0x320006, 0x320007) AM_READNOP //irq ack
AM_RANGE(0x340000, 0x340fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x350000, 0x350001) AM_READ_LEGACY(deco_71_r)
+ AM_RANGE(0x350000, 0x350001) AM_READ(deco_71_r)
AM_RANGE(0x350000, 0x350007) AM_WRITENOP
AM_RANGE(0x360000, 0x360fff) AM_RAM AM_SHARE("spriteram2")
- AM_RANGE(0x370000, 0x370001) AM_READ_LEGACY(deco_71_r)
+ AM_RANGE(0x370000, 0x370001) AM_READ(deco_71_r)
AM_RANGE(0x370000, 0x370007) AM_WRITENOP
AM_RANGE(0x380000, 0x3803ff) AM_RAM_WRITE_LEGACY(paletteram16_xbgr_word_be_sprites_w) AM_BASE(m_sprite_paletteram)
@@ -187,12 +184,12 @@ static ADDRESS_MAP_START( sshangha_map, AS_PROGRAM, 16, sshangha_state )
AM_RANGE(0x381000, 0x383fff) AM_RAM // unused palette area
AM_RANGE(0xfec000, 0xff3fff) AM_RAM
- AM_RANGE(0xff4000, 0xff47ff) AM_READWRITE_LEGACY(sshangha_protection16_r,sshangha_protection16_w) AM_BASE(m_prot_data)
+ AM_RANGE(0xff4000, 0xff47ff) AM_READWRITE(sshangha_protection16_r,sshangha_protection16_w) AM_BASE(m_prot_data)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sshanghb_map, AS_PROGRAM, 16, sshangha_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x084000, 0x0847ff) AM_READ_LEGACY(sshanghb_protection16_r)
+ AM_RANGE(0x084000, 0x0847ff) AM_READ(sshanghb_protection16_r)
AM_RANGE(0x101000, 0x10100f) AM_RAM AM_BASE(m_sound_shared_ram) /* the bootleg writes here */
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
@@ -222,16 +219,14 @@ ADDRESS_MAP_END
/* 8 "sound latches" shared between main and sound cpus. */
-static READ8_HANDLER(sshangha_sound_shared_r)
+READ8_MEMBER(sshangha_state::sshangha_sound_shared_r)
{
- sshangha_state *state = space->machine().driver_data<sshangha_state>();
- return state->m_sound_shared_ram[offset] & 0xff;
+ return m_sound_shared_ram[offset] & 0xff;
}
-static WRITE8_HANDLER(sshangha_sound_shared_w)
+WRITE8_MEMBER(sshangha_state::sshangha_sound_shared_w)
{
- sshangha_state *state = space->machine().driver_data<sshangha_state>();
- state->m_sound_shared_ram[offset] = data & 0xff;
+ m_sound_shared_ram[offset] = data & 0xff;
}
/* Note: there's rom data after 0x8000 but the game never seem to call a rom bank, left-over? */
@@ -239,7 +234,7 @@ static ADDRESS_MAP_START( sshangha_sound_map, AS_PROGRAM, 8, sshangha_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r,ym2203_w)
AM_RANGE(0xc200, 0xc201) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xf800, 0xf807) AM_READWRITE_LEGACY(sshangha_sound_shared_r,sshangha_sound_shared_w)
+ AM_RANGE(0xf800, 0xf807) AM_READWRITE(sshangha_sound_shared_r,sshangha_sound_shared_w)
AM_RANGE(0xf808, 0xffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index 1fdd455ca16..f46a07af0b2 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -371,10 +371,10 @@ static WRITE16_DEVICE_HANDLER( sslam_snd_w )
-static WRITE16_HANDLER( powerbls_sound_w )
+WRITE16_MEMBER(sslam_state::powerbls_sound_w)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", MCS51_INT1_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", MCS51_INT1_LINE, HOLD_LINE);
}
/* Memory Maps */
@@ -417,7 +417,7 @@ static ADDRESS_MAP_START( powerbls_map, AS_PROGRAM, 16, sslam_state )
AM_RANGE(0x300014, 0x300015) AM_READ_PORT("IN2")
AM_RANGE(0x30001a, 0x30001b) AM_READ_PORT("DSW1")
AM_RANGE(0x30001c, 0x30001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x30001e, 0x30001f) AM_WRITE_LEGACY(powerbls_sound_w)
+ AM_RANGE(0x30001e, 0x30001f) AM_WRITE(powerbls_sound_w)
AM_RANGE(0x304000, 0x304001) AM_WRITENOP
AM_RANGE(0xff0000, 0xffffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -427,46 +427,43 @@ ADDRESS_MAP_END
Sound MCU mapping
*/
-static READ8_HANDLER( playmark_snd_command_r )
+READ8_MEMBER(sslam_state::playmark_snd_command_r)
{
- sslam_state *state = space->machine().driver_data<sslam_state>();
UINT8 data = 0;
- if ((state->m_oki_control & 0x38) == 0x30) {
+ if ((m_oki_control & 0x38) == 0x30) {
data = soundlatch_r(space,0);
}
- else if ((state->m_oki_control & 0x38) == 0x28) {
- data = (space->machine().device<okim6295_device>("oki")->read(*space,0) & 0x0f);
+ else if ((m_oki_control & 0x38) == 0x28) {
+ data = (machine().device<okim6295_device>("oki")->read(*&space,0) & 0x0f);
}
return data;
}
-static WRITE8_HANDLER( playmark_oki_w )
+WRITE8_MEMBER(sslam_state::playmark_oki_w)
{
- sslam_state *state = space->machine().driver_data<sslam_state>();
- state->m_oki_command = data;
+ m_oki_command = data;
}
-static WRITE8_HANDLER( playmark_snd_control_w )
+WRITE8_MEMBER(sslam_state::playmark_snd_control_w)
{
- sslam_state *state = space->machine().driver_data<sslam_state>();
- state->m_oki_control = data;
+ m_oki_control = data;
if (data & 3)
{
- if (state->m_oki_bank != ((data & 3) - 1))
+ if (m_oki_bank != ((data & 3) - 1))
{
- state->m_oki_bank = (data & 3) - 1;
- space->machine().device<okim6295_device>("oki")->set_bank_base(0x40000 * state->m_oki_bank);
+ m_oki_bank = (data & 3) - 1;
+ machine().device<okim6295_device>("oki")->set_bank_base(0x40000 * m_oki_bank);
}
}
if ((data & 0x38) == 0x18)
{
- space->machine().device<okim6295_device>("oki")->write(*space, 0, state->m_oki_command);
+ machine().device<okim6295_device>("oki")->write(*&space, 0, m_oki_command);
}
// !(data & 0x80) -> sound enable
@@ -474,8 +471,8 @@ static WRITE8_HANDLER( playmark_snd_control_w )
}
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, sslam_state )
- AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE_LEGACY(playmark_snd_control_w)
- AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE_LEGACY(playmark_snd_command_r, playmark_oki_w)
+ AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(playmark_snd_control_w)
+ AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(playmark_snd_command_r, playmark_oki_w)
ADDRESS_MAP_END
/* Input Ports */
diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c
index 7ed36729b1e..40c1baacc5c 100644
--- a/src/mame/drivers/ssozumo.c
+++ b/src/mame/drivers/ssozumo.c
@@ -14,10 +14,10 @@ Driver by Takahiro Nogi (nogi@kt.rim.or.jp) 1999/10/04
#include "sound/dac.h"
#include "includes/ssozumo.h"
-static WRITE8_HANDLER( ssozumo_sh_command_w )
+WRITE8_MEMBER(ssozumo_state::ssozumo_sh_command_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", M6502_IRQ_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6502_IRQ_LINE, HOLD_LINE);
}
@@ -31,7 +31,7 @@ static ADDRESS_MAP_START( ssozumo_map, AS_PROGRAM, 8, ssozumo_state )
AM_RANGE(0x3400, 0x35ff) AM_RAM
AM_RANGE(0x3600, 0x37ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("P1") AM_WRITE_LEGACY(ssozumo_flipscreen_w)
- AM_RANGE(0x4010, 0x4010) AM_READ_PORT("P2") AM_WRITE_LEGACY(ssozumo_sh_command_w)
+ AM_RANGE(0x4010, 0x4010) AM_READ_PORT("P2") AM_WRITE(ssozumo_sh_command_w)
AM_RANGE(0x4020, 0x4020) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(ssozumo_scroll_w)
AM_RANGE(0x4030, 0x4030) AM_READ_PORT("DSW1")
// AM_RANGE(0x4030, 0x4030) AM_WRITEONLY
@@ -40,11 +40,10 @@ static ADDRESS_MAP_START( ssozumo_map, AS_PROGRAM, 8, ssozumo_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( sound_nmi_mask_w )
+WRITE8_MEMBER(ssozumo_state::sound_nmi_mask_w)
{
- ssozumo_state *state = space->machine().driver_data<ssozumo_state>();
- state->m_sound_nmi_mask = data & 1;
+ m_sound_nmi_mask = data & 1;
}
/* Same as Tag Team */
@@ -53,7 +52,7 @@ static ADDRESS_MAP_START( ssozumo_sound_map, AS_PROGRAM, 8, ssozumo_state )
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0x2002, 0x2003) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
AM_RANGE(0x2004, 0x2004) AM_DEVWRITE_LEGACY("dac", dac_signed_w)
- AM_RANGE(0x2005, 0x2005) AM_WRITE_LEGACY(sound_nmi_mask_w)
+ AM_RANGE(0x2005, 0x2005) AM_WRITE(sound_nmi_mask_w)
AM_RANGE(0x2007, 0x2007) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index 8878ae05749..431cc65ef8b 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -33,17 +33,17 @@ static PALETTE_INIT( sspeedr )
}
-static WRITE8_HANDLER( sspeedr_int_ack_w )
+WRITE8_MEMBER(sspeedr_state::sspeedr_int_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( sspeedr_lamp_w )
+WRITE8_MEMBER(sspeedr_state::sspeedr_lamp_w)
{
output_set_value("lampGO", (data >> 0) & 1);
output_set_value("lampEP", (data >> 1) & 1);
- coin_counter_w(space->machine(), 0, data & 8);
+ coin_counter_w(machine(), 0, data & 8);
}
@@ -51,27 +51,25 @@ static WRITE8_HANDLER( sspeedr_lamp_w )
static const UINT8 ls48_map[16] =
{ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67,0x58,0x4c,0x62,0x69,0x78,0x00 };
-static WRITE8_HANDLER( sspeedr_time_w )
+WRITE8_MEMBER(sspeedr_state::sspeedr_time_w)
{
- sspeedr_state *state = space->machine().driver_data<sspeedr_state>();
data = data & 15;
output_set_digit_value(0x18 + offset, ls48_map[data]);
- state->m_led_TIME[offset] = data;
+ m_led_TIME[offset] = data;
}
-static WRITE8_HANDLER( sspeedr_score_w )
+WRITE8_MEMBER(sspeedr_state::sspeedr_score_w)
{
- sspeedr_state *state = space->machine().driver_data<sspeedr_state>();
char buf[20];
sprintf(buf, "LED%02d", offset);
data = ~data & 15;
output_set_digit_value(offset, ls48_map[data]);
- state->m_led_SCORE[offset] = data;
+ m_led_SCORE[offset] = data;
}
-static WRITE8_HANDLER( sspeedr_sound_w )
+WRITE8_MEMBER(sspeedr_state::sspeedr_sound_w)
{
/* not implemented */
}
@@ -80,7 +78,7 @@ static WRITE8_HANDLER( sspeedr_sound_w )
static ADDRESS_MAP_START( sspeedr_map, AS_PROGRAM, 8, sspeedr_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x2000, 0x21ff) AM_RAM
- AM_RANGE(0x7f00, 0x7f17) AM_WRITE_LEGACY(sspeedr_score_w)
+ AM_RANGE(0x7f00, 0x7f17) AM_WRITE(sspeedr_score_w)
ADDRESS_MAP_END
@@ -88,11 +86,11 @@ static ADDRESS_MAP_START( sspeedr_io_map, AS_IO, 8, sspeedr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
- AM_RANGE(0x00, 0x01) AM_WRITE_LEGACY(sspeedr_sound_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(sspeedr_lamp_w)
+ AM_RANGE(0x00, 0x01) AM_WRITE(sspeedr_sound_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(sspeedr_lamp_w)
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW")
AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2")
- AM_RANGE(0x04, 0x05) AM_WRITE_LEGACY(sspeedr_time_w)
+ AM_RANGE(0x04, 0x05) AM_WRITE(sspeedr_time_w)
AM_RANGE(0x06, 0x06) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(sspeedr_driver_horz_w)
AM_RANGE(0x11, 0x11) AM_WRITE_LEGACY(sspeedr_driver_pic_w)
@@ -106,7 +104,7 @@ static ADDRESS_MAP_START( sspeedr_io_map, AS_IO, 8, sspeedr_state )
AM_RANGE(0x1a, 0x1a) AM_WRITE_LEGACY(sspeedr_track_horz_2_w)
AM_RANGE(0x1b, 0x1b) AM_WRITE_LEGACY(sspeedr_track_ice_w)
AM_RANGE(0x1c, 0x1e) AM_WRITE_LEGACY(sspeedr_drones_vert_w)
- AM_RANGE(0x1f, 0x1f) AM_WRITE_LEGACY(sspeedr_int_ack_w)
+ AM_RANGE(0x1f, 0x1f) AM_WRITE(sspeedr_int_ack_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index d3f55a1d2f5..87f7423c5c9 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -43,13 +43,12 @@ static MACHINE_RESET(ssrj)
state->m_oldport = 0x80;
}
-static READ8_HANDLER(ssrj_wheel_r)
+READ8_MEMBER(ssrj_state::ssrj_wheel_r)
{
- ssrj_state *state = space->machine().driver_data<ssrj_state>();
- int port = input_port_read(space->machine(), "IN1") - 0x80;
- int retval = port - state->m_oldport;
+ int port = input_port_read(machine(), "IN1") - 0x80;
+ int retval = port - m_oldport;
- state->m_oldport = port;
+ m_oldport = port;
return retval;
}
@@ -62,7 +61,7 @@ static ADDRESS_MAP_START( ssrj_map, AS_PROGRAM, 8, ssrj_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xefff) AM_RAM AM_BASE(m_scrollram)
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("IN0")
- AM_RANGE(0xf001, 0xf001) AM_READ_LEGACY(ssrj_wheel_r)
+ AM_RANGE(0xf001, 0xf001) AM_READ(ssrj_wheel_r)
AM_RANGE(0xf002, 0xf002) AM_READ_PORT("IN2")
AM_RANGE(0xf003, 0xf003) AM_WRITENOP /* unknown */
AM_RANGE(0xf401, 0xf401) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index 8f75824342f..b7964fd3002 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -199,14 +199,13 @@ static IRQ_CALLBACK(ssv_irq_callback)
return 0;
}
-static WRITE16_HANDLER( ssv_irq_ack_w )
+WRITE16_MEMBER(ssv_state::ssv_irq_ack_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
int level = ((offset * 2) & 0x70) >> 4;
- state->m_requested_int &= ~(1 << level);
+ m_requested_int &= ~(1 << level);
- update_irq_state(space->machine());
+ update_irq_state(machine());
}
/*
@@ -227,11 +226,10 @@ static WRITE16_HANDLER( ssv_irq_ack_w )
ultrax: 40,00 at the start then 42,4a
twineag2: 40,00 at the start then 42,4a
*/
-static WRITE16_HANDLER( ssv_irq_enable_w )
+WRITE16_MEMBER(ssv_state::ssv_irq_enable_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- COMBINE_DATA(&state->m_irq_enable);
+ COMBINE_DATA(&m_irq_enable);
}
static TIMER_DEVICE_CALLBACK( ssv_interrupt )
@@ -294,32 +292,32 @@ static TIMER_DEVICE_CALLBACK( gdfs_interrupt )
survarts: 83
sxyreact: 80
*/
-static WRITE16_HANDLER( ssv_lockout_w )
+WRITE16_MEMBER(ssv_state::ssv_lockout_w)
{
// popmessage("%02X",data & 0xff);
if (ACCESSING_BITS_0_7)
{
- coin_lockout_w(space->machine(), 1,~data & 0x01);
- coin_lockout_w(space->machine(), 0,~data & 0x02);
- coin_counter_w(space->machine(), 1, data & 0x04);
- coin_counter_w(space->machine(), 0, data & 0x08);
+ coin_lockout_w(machine(), 1,~data & 0x01);
+ coin_lockout_w(machine(), 0,~data & 0x02);
+ coin_counter_w(machine(), 1, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x08);
// data & 0x40?
- ssv_enable_video( space->machine(), data & 0x80);
+ ssv_enable_video( machine(), data & 0x80);
}
}
/* Same as above but with inverted lockout lines */
-static WRITE16_HANDLER( ssv_lockout_inv_w )
+WRITE16_MEMBER(ssv_state::ssv_lockout_inv_w)
{
// popmessage("%02X",data & 0xff);
if (ACCESSING_BITS_0_7)
{
- coin_lockout_w(space->machine(), 1, data & 0x01);
- coin_lockout_w(space->machine(), 0, data & 0x02);
- coin_counter_w(space->machine(), 1, data & 0x04);
- coin_counter_w(space->machine(), 0, data & 0x08);
+ coin_lockout_w(machine(), 1, data & 0x01);
+ coin_lockout_w(machine(), 0, data & 0x02);
+ coin_counter_w(machine(), 1, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x08);
// data & 0x40?
- ssv_enable_video( space->machine(), data & 0x80);
+ ssv_enable_video( machine(), data & 0x80);
}
}
@@ -348,24 +346,21 @@ static ADDRESS_MAP_START( dsp_data_map, AS_DATA, 16, ssv_state )
AM_RANGE(0x0000, 0x07ff) AM_ROM AM_REGION("dspdata", 0)
ADDRESS_MAP_END
-static READ16_HANDLER( dsp_dr_r )
+READ16_MEMBER(ssv_state::dsp_dr_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- return state->m_dsp->snesdsp_read(true);
+ return m_dsp->snesdsp_read(true);
}
-static WRITE16_HANDLER( dsp_dr_w )
+WRITE16_MEMBER(ssv_state::dsp_dr_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- state->m_dsp->snesdsp_write(true, data);
+ m_dsp->snesdsp_write(true, data);
}
-static READ16_HANDLER( dsp_r )
+READ16_MEMBER(ssv_state::dsp_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT16 temp = state->m_dsp->dataram_r(offset/2);
+ UINT16 temp = m_dsp->dataram_r(offset/2);
UINT16 res;
if (offset & 1)
@@ -380,10 +375,9 @@ static READ16_HANDLER( dsp_r )
return res;
}
-static WRITE16_HANDLER( dsp_w )
+WRITE16_MEMBER(ssv_state::dsp_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT16 temp = state->m_dsp->dataram_r(offset/2);
+ UINT16 temp = m_dsp->dataram_r(offset/2);
if (offset & 1)
{
@@ -396,7 +390,7 @@ static WRITE16_HANDLER( dsp_w )
temp |= data;
}
- state->m_dsp->dataram_w(offset/2, temp);
+ m_dsp->dataram_w(offset/2, temp);
}
/***************************************************************************
@@ -408,7 +402,7 @@ static WRITE16_HANDLER( dsp_w )
***************************************************************************/
#ifdef UNUSED_FUNCTION
-static READ16_HANDLER( fake_r ) { return ssv_scroll[offset]; }
+READ16_MEMBER(ssv_state::fake_r){ return ssv_scroll[offset]; }
#endif
#define SSV_MAP( _ROM ) \
@@ -424,11 +418,11 @@ static READ16_HANDLER( fake_r ) { return ssv_scroll[offset]; }
AM_RANGE(0x210008, 0x210009) AM_READ_PORT("P1") \
AM_RANGE(0x21000a, 0x21000b) AM_READ_PORT("P2") \
AM_RANGE(0x21000c, 0x21000d) AM_READ_PORT("SYSTEM") \
- AM_RANGE(0x21000e, 0x21000f) AM_READNOP AM_WRITE_LEGACY(ssv_lockout_w) /* Lockout */ \
+ AM_RANGE(0x21000e, 0x21000f) AM_READNOP AM_WRITE(ssv_lockout_w) /* Lockout */ \
AM_RANGE(0x210010, 0x210011) AM_WRITENOP \
AM_RANGE(0x230000, 0x230071) AM_WRITEONLY AM_BASE(m_irq_vectors) /* IRQ Vec */ \
- AM_RANGE(0x240000, 0x240071) AM_WRITE_LEGACY(ssv_irq_ack_w ) /* IRQ Ack */ \
- AM_RANGE(0x260000, 0x260001) AM_WRITE_LEGACY(ssv_irq_enable_w) /* IRQ En */ \
+ AM_RANGE(0x240000, 0x240071) AM_WRITE(ssv_irq_ack_w ) /* IRQ Ack */ \
+ AM_RANGE(0x260000, 0x260001) AM_WRITE(ssv_irq_enable_w) /* IRQ En */ \
AM_RANGE(0x300000, 0x30007f) AM_DEVREADWRITE8_LEGACY("ensoniq", es5506_r, es5506_w, 0x00ff) /* Sound */ \
AM_RANGE(_ROM, 0xffffff) AM_ROMBANK("bank1") /* ROM */ \
@@ -436,20 +430,20 @@ static READ16_HANDLER( fake_r ) { return ssv_scroll[offset]; }
Drift Out '94
***************************************************************************/
-static READ16_HANDLER( drifto94_rand_r )
+READ16_MEMBER(ssv_state::drifto94_rand_r)
{
- return space->machine().rand() & 0xffff;
+ return machine().rand() & 0xffff;
}
static ADDRESS_MAP_START( drifto94_map, AS_PROGRAM, 16, ssv_state )
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
- AM_RANGE(0x480000, 0x480001) AM_READWRITE_LEGACY(dsp_dr_r, dsp_dr_w)
- AM_RANGE(0x482000, 0x482fff) AM_READWRITE_LEGACY(dsp_r, dsp_w)
+ AM_RANGE(0x480000, 0x480001) AM_READWRITE(dsp_dr_r, dsp_dr_w)
+ AM_RANGE(0x482000, 0x482fff) AM_READWRITE(dsp_r, dsp_w)
AM_RANGE(0x483000, 0x485fff) AM_WRITENOP // ?
AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ??
- AM_RANGE(0x510000, 0x510001) AM_READ_LEGACY(drifto94_rand_r ) // ??
- AM_RANGE(0x520000, 0x520001) AM_READ_LEGACY(drifto94_rand_r ) // ??
+ AM_RANGE(0x510000, 0x510001) AM_READ(drifto94_rand_r ) // ??
+ AM_RANGE(0x520000, 0x520001) AM_READ(drifto94_rand_r ) // ??
AM_RANGE(0x580000, 0x5807ff) AM_RAM AM_SHARE("nvram") // NVRAM
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -498,22 +492,20 @@ static WRITE16_DEVICE_HANDLER( gdfs_eeprom_w )
}
-static READ16_HANDLER( gdfs_gfxram_r )
+READ16_MEMBER(ssv_state::gdfs_gfxram_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- return state->m_eaglshot_gfxram[offset + state->m_gdfs_gfxram_bank * 0x100000/2];
+ return m_eaglshot_gfxram[offset + m_gdfs_gfxram_bank * 0x100000/2];
}
-static WRITE16_HANDLER( gdfs_gfxram_w )
+WRITE16_MEMBER(ssv_state::gdfs_gfxram_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- offset += state->m_gdfs_gfxram_bank * 0x100000/2;
- COMBINE_DATA(&state->m_eaglshot_gfxram[offset]);
- gfx_element_mark_dirty(space->machine().gfx[2], offset / (16*8/2));
+ offset += m_gdfs_gfxram_bank * 0x100000/2;
+ COMBINE_DATA(&m_eaglshot_gfxram[offset]);
+ gfx_element_mark_dirty(machine().gfx[2], offset / (16*8/2));
}
-static READ16_HANDLER( gdfs_blitram_r )
+READ16_MEMBER(ssv_state::gdfs_blitram_r)
{
switch (offset)
{
@@ -522,14 +514,13 @@ static READ16_HANDLER( gdfs_blitram_r )
return 0;
}
- logerror("CPU #0 PC: %06X - Blit reg read: %02X\n",cpu_get_pc(&space->device()),offset*2);
+ logerror("CPU #0 PC: %06X - Blit reg read: %02X\n",cpu_get_pc(&space.device()),offset*2);
return 0;
}
-static WRITE16_HANDLER( gdfs_blitram_w )
+WRITE16_MEMBER(ssv_state::gdfs_blitram_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT16 *gdfs_blitram = state->m_gdfs_blitram;
+ UINT16 *gdfs_blitram = m_gdfs_blitram;
COMBINE_DATA(&gdfs_blitram[offset]);
@@ -538,10 +529,10 @@ static WRITE16_HANDLER( gdfs_blitram_w )
case 0x8a/2:
{
if (data & ~0x43)
- logerror("CPU #0 PC: %06X - Unknown gdfs_gfxram_bank bit written %04X\n",cpu_get_pc(&space->device()),data);
+ logerror("CPU #0 PC: %06X - Unknown gdfs_gfxram_bank bit written %04X\n",cpu_get_pc(&space.device()),data);
if (ACCESSING_BITS_0_7)
- state->m_gdfs_gfxram_bank = data & 3;
+ m_gdfs_gfxram_bank = data & 3;
}
break;
@@ -558,12 +549,12 @@ static WRITE16_HANDLER( gdfs_blitram_w )
UINT32 dst = (gdfs_blitram[0xc4/2] + (gdfs_blitram[0xc6/2] << 16)) << 4;
UINT32 len = (gdfs_blitram[0xc8/2]) << 4;
- UINT8 *rom = space->machine().region("gfx2")->base();
- size_t size = space->machine().region("gfx2")->bytes();
+ UINT8 *rom = machine().region("gfx2")->base();
+ size_t size = machine().region("gfx2")->bytes();
if ( (src+len <= size) && (dst+len <= 4 * 0x100000) )
{
- memcpy( &state->m_eaglshot_gfxram[dst/2], &rom[src], len );
+ memcpy( &m_eaglshot_gfxram[dst/2], &rom[src], len );
if (len % (16*8)) len = len / (16*8) + 1;
else len = len / (16*8);
@@ -571,19 +562,19 @@ static WRITE16_HANDLER( gdfs_blitram_w )
dst /= 16*8;
while (len--)
{
- gfx_element_mark_dirty(space->machine().gfx[2], dst);
+ gfx_element_mark_dirty(machine().gfx[2], dst);
dst++;
}
}
else
{
- logerror("CPU #0 PC: %06X - Blit out of range: src %x, dst %x, len %x\n",cpu_get_pc(&space->device()),src,dst,len);
+ logerror("CPU #0 PC: %06X - Blit out of range: src %x, dst %x, len %x\n",cpu_get_pc(&space.device()),src,dst,len);
}
}
break;
default:
- logerror("CPU #0 PC: %06X - Blit reg written: %02X <- %04X\n",cpu_get_pc(&space->device()),offset*2,data);
+ logerror("CPU #0 PC: %06X - Blit reg written: %02X <- %04X\n",cpu_get_pc(&space.device()),offset*2,data);
}
}
@@ -595,8 +586,8 @@ static ADDRESS_MAP_START( gdfs_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x540000, 0x540001) AM_DEVREAD_LEGACY("eeprom", gdfs_eeprom_r)
AM_RANGE(0x600000, 0x600fff) AM_RAM
AM_RANGE(0x800000, 0x87ffff) AM_RAM AM_BASE(m_spriteram2)
- AM_RANGE(0x8c0000, 0x8c00ff) AM_READWRITE_LEGACY(gdfs_blitram_r, gdfs_blitram_w) AM_BASE(m_gdfs_blitram)
- AM_RANGE(0x900000, 0x9fffff) AM_READWRITE_LEGACY(gdfs_gfxram_r, gdfs_gfxram_w)
+ AM_RANGE(0x8c0000, 0x8c00ff) AM_READWRITE(gdfs_blitram_r, gdfs_blitram_w) AM_BASE(m_gdfs_blitram)
+ AM_RANGE(0x900000, 0x9fffff) AM_READWRITE(gdfs_gfxram_r, gdfs_gfxram_w)
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -613,25 +604,24 @@ ADDRESS_MAP_END
rom-board, AFAIK)
*/
-static READ16_HANDLER( hypreact_input_r )
+READ16_MEMBER(ssv_state::hypreact_input_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT16 input_sel = *state->m_input_sel;
-
- if (input_sel & 0x0001) return input_port_read(space->machine(), "KEY0");
- if (input_sel & 0x0002) return input_port_read(space->machine(), "KEY1");
- if (input_sel & 0x0004) return input_port_read(space->machine(), "KEY2");
- if (input_sel & 0x0008) return input_port_read(space->machine(), "KEY3");
- logerror("CPU #0 PC %06X: unknown input read: %04X\n",cpu_get_pc(&space->device()),input_sel);
+ UINT16 input_sel = *m_input_sel;
+
+ if (input_sel & 0x0001) return input_port_read(machine(), "KEY0");
+ if (input_sel & 0x0002) return input_port_read(machine(), "KEY1");
+ if (input_sel & 0x0004) return input_port_read(machine(), "KEY2");
+ if (input_sel & 0x0008) return input_port_read(machine(), "KEY3");
+ logerror("CPU #0 PC %06X: unknown input read: %04X\n",cpu_get_pc(&space.device()),input_sel);
return 0xffff;
}
static ADDRESS_MAP_START( hypreact_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
- AM_RANGE(0x21000e, 0x21000f) AM_WRITE_LEGACY(ssv_lockout_inv_w) // Inverted lockout lines
+ AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
// AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read at the start, value not used
- AM_RANGE(0xc00000, 0xc00001) AM_READ_LEGACY(hypreact_input_r) // Inputs
+ AM_RANGE(0xc00000, 0xc00001) AM_READ(hypreact_input_r) // Inputs
AM_RANGE(0xc00006, 0xc00007) AM_RAM AM_BASE(m_input_sel) //
AM_RANGE(0xc00008, 0xc00009) AM_NOP //
SSV_MAP( 0xf00000 )
@@ -645,10 +635,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hypreac2_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 5 at the start
- AM_RANGE(0x21000e, 0x21000f) AM_WRITE_LEGACY(ssv_lockout_inv_w) // Inverted lockout lines
+ AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
// AM_RANGE(0x280000, 0x280001) AM_READNOP // ? read at the start, value not used
- AM_RANGE(0x500000, 0x500001) AM_READ_LEGACY(hypreact_input_r) // Inputs
- AM_RANGE(0x500002, 0x500003) AM_READ_LEGACY(hypreact_input_r) // (again?)
+ AM_RANGE(0x500000, 0x500001) AM_READ(hypreact_input_r) // Inputs
+ AM_RANGE(0x500002, 0x500003) AM_READ(hypreact_input_r) // (again?)
AM_RANGE(0x520000, 0x520001) AM_WRITEONLY AM_BASE(m_input_sel) // Inputs
// 0x540000, 0x540003 communication with other units
SSV_MAP( 0xe00000 )
@@ -659,14 +649,14 @@ ADDRESS_MAP_END
Jan Jan Simasyo
***************************************************************************/
-static READ16_HANDLER( srmp4_input_r );
+
static ADDRESS_MAP_START( janjans1_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_WRITENOP // koikois2 but not janjans1
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x210006, 0x210007) AM_READNOP
AM_RANGE(0x800000, 0x800001) AM_WRITEONLY AM_BASE(m_input_sel) // Inputs
- AM_RANGE(0x800002, 0x800003) AM_READ_LEGACY(srmp4_input_r) // Inputs
+ AM_RANGE(0x800002, 0x800003) AM_READ(srmp4_input_r) // Inputs
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -703,22 +693,20 @@ ADDRESS_MAP_END
/* Monster Slider needs the RAM mirrored for the gameplay logic to work correctly */
-static READ16_HANDLER( ssv_mainram_r )
+READ16_MEMBER(ssv_state::ssv_mainram_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- return state->m_mainram[offset];
+ return m_mainram[offset];
}
-static WRITE16_HANDLER( ssv_mainram_w )
+WRITE16_MEMBER(ssv_state::ssv_mainram_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- COMBINE_DATA(&state->m_mainram[offset]);
+ COMBINE_DATA(&m_mainram[offset]);
}
static ADDRESS_MAP_START( mslider_map, AS_PROGRAM, 16, ssv_state )
- AM_RANGE(0x010000, 0x01ffff) AM_READWRITE_LEGACY(ssv_mainram_r, ssv_mainram_w) // RAM Mirror
+ AM_RANGE(0x010000, 0x01ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
AM_RANGE(0x400000, 0x47ffff) AM_WRITEONLY // ?
// AM_RANGE(0x500000, 0x500001) AM_WRITENOP // ? ff at the start
@@ -741,23 +729,22 @@ ADDRESS_MAP_END
Super Real Mahjong PIV
***************************************************************************/
-static READ16_HANDLER( srmp4_input_r )
+READ16_MEMBER(ssv_state::srmp4_input_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT16 input_sel = *state->m_input_sel;
-
- if (input_sel & 0x0002) return input_port_read(space->machine(), "KEY0");
- if (input_sel & 0x0004) return input_port_read(space->machine(), "KEY1");
- if (input_sel & 0x0008) return input_port_read(space->machine(), "KEY2");
- if (input_sel & 0x0010) return input_port_read(space->machine(), "KEY3");
- logerror("CPU #0 PC %06X: unknown input read: %04X\n",cpu_get_pc(&space->device()),input_sel);
+ UINT16 input_sel = *m_input_sel;
+
+ if (input_sel & 0x0002) return input_port_read(machine(), "KEY0");
+ if (input_sel & 0x0004) return input_port_read(machine(), "KEY1");
+ if (input_sel & 0x0008) return input_port_read(machine(), "KEY2");
+ if (input_sel & 0x0010) return input_port_read(machine(), "KEY3");
+ logerror("CPU #0 PC %06X: unknown input read: %04X\n",cpu_get_pc(&space.device()),input_sel);
return 0xffff;
}
static ADDRESS_MAP_START( srmp4_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x210000, 0x210001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1,5 at the start
- AM_RANGE(0xc0000a, 0xc0000b) AM_READ_LEGACY(srmp4_input_r) // Inputs
+ AM_RANGE(0xc0000a, 0xc0000b) AM_READ(srmp4_input_r) // Inputs
AM_RANGE(0xc0000e, 0xc0000f) AM_WRITEONLY AM_BASE(m_input_sel) // Inputs
AM_RANGE(0xc00010, 0xc00011) AM_WRITENOP //
SSV_MAP( 0xf00000 )
@@ -772,16 +759,16 @@ ADDRESS_MAP_END
Interrupts aren't supported by the chip emulator yet
(lev 5 in this case, I guess)
*/
-static READ16_HANDLER( srmp7_irqv_r )
+READ16_MEMBER(ssv_state::srmp7_irqv_r)
{
return 0x0080;
}
-static WRITE16_HANDLER( srmp7_sound_bank_w )
+WRITE16_MEMBER(ssv_state::srmp7_sound_bank_w)
{
if (ACCESSING_BITS_0_7)
{
- device_t *device = space->machine().device("ensoniq");
+ device_t *device = machine().device("ensoniq");
int bank = 0x400000/2 * (data & 1); // UINT16 address
int voice;
for (voice = 0; voice < 32; voice++)
@@ -790,16 +777,15 @@ static WRITE16_HANDLER( srmp7_sound_bank_w )
// popmessage("%04X",data);
}
-static READ16_HANDLER( srmp7_input_r )
+READ16_MEMBER(ssv_state::srmp7_input_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT16 input_sel = *state->m_input_sel;
-
- if (input_sel & 0x0002) return input_port_read(space->machine(), "KEY0");
- if (input_sel & 0x0004) return input_port_read(space->machine(), "KEY1");
- if (input_sel & 0x0008) return input_port_read(space->machine(), "KEY2");
- if (input_sel & 0x0010) return input_port_read(space->machine(), "KEY3");
- logerror("CPU #0 PC %06X: unknown input read: %04X\n",cpu_get_pc(&space->device()),input_sel);
+ UINT16 input_sel = *m_input_sel;
+
+ if (input_sel & 0x0002) return input_port_read(machine(), "KEY0");
+ if (input_sel & 0x0004) return input_port_read(machine(), "KEY1");
+ if (input_sel & 0x0008) return input_port_read(machine(), "KEY2");
+ if (input_sel & 0x0010) return input_port_read(machine(), "KEY3");
+ logerror("CPU #0 PC %06X: unknown input read: %04X\n",cpu_get_pc(&space.device()),input_sel);
return 0xffff;
}
@@ -807,11 +793,11 @@ static ADDRESS_MAP_START( srmp7_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x010000, 0x050faf) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
- AM_RANGE(0x21000e, 0x21000f) AM_WRITE_LEGACY(ssv_lockout_inv_w) // Coin Counters / Lockouts
- AM_RANGE(0x300076, 0x300077) AM_READ_LEGACY(srmp7_irqv_r) // Sound
+ AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Coin Counters / Lockouts
+ AM_RANGE(0x300076, 0x300077) AM_READ(srmp7_irqv_r) // Sound
// 0x540000, 0x540003, related to lev 5 irq?
- AM_RANGE(0x580000, 0x580001) AM_WRITE_LEGACY(srmp7_sound_bank_w) // Sound Bank
- AM_RANGE(0x600000, 0x600001) AM_READ_LEGACY(srmp7_input_r) // Inputs
+ AM_RANGE(0x580000, 0x580001) AM_WRITE(srmp7_sound_bank_w) // Sound Bank
+ AM_RANGE(0x600000, 0x600001) AM_READ(srmp7_input_r) // Inputs
AM_RANGE(0x680000, 0x680001) AM_WRITEONLY AM_BASE(m_input_sel) // Inputs
SSV_MAP( 0xc00000 )
ADDRESS_MAP_END
@@ -839,48 +825,46 @@ ADDRESS_MAP_END
***************************************************************************/
-static READ16_HANDLER( sxyreact_ballswitch_r )
+READ16_MEMBER(ssv_state::sxyreact_ballswitch_r)
{
- return input_port_read_safe(space->machine(), "SERVICE", 0);
+ return input_port_read_safe(machine(), "SERVICE", 0);
}
-static READ16_HANDLER( sxyreact_dial_r )
+READ16_MEMBER(ssv_state::sxyreact_dial_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- return ((state->m_sxyreact_serial >> 1) & 0x80);
+ return ((m_sxyreact_serial >> 1) & 0x80);
}
-static WRITE16_HANDLER( sxyreact_dial_w )
+WRITE16_MEMBER(ssv_state::sxyreact_dial_w)
{
if (ACCESSING_BITS_0_7)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
if (data & 0x20)
- state->m_sxyreact_serial = input_port_read_safe(space->machine(), "PADDLE", 0) & 0xff;
+ m_sxyreact_serial = input_port_read_safe(machine(), "PADDLE", 0) & 0xff;
- if ( (state->m_sxyreact_dial & 0x40) && !(data & 0x40) ) // $40 -> $00
- state->m_sxyreact_serial <<= 1; // shift 1 bit
+ if ( (m_sxyreact_dial & 0x40) && !(data & 0x40) ) // $40 -> $00
+ m_sxyreact_serial <<= 1; // shift 1 bit
- state->m_sxyreact_dial = data;
+ m_sxyreact_dial = data;
}
}
-static WRITE16_HANDLER( sxyreact_motor_w )
+WRITE16_MEMBER(ssv_state::sxyreact_motor_w)
{
// popmessage("%04X",data); // 8 = motor on; 0 = motor off
}
static ADDRESS_MAP_START( sxyreact_map, AS_PROGRAM, 16, ssv_state )
-// AM_RANGE(0x020000, 0x03ffff) AM_READWRITE_LEGACY(ssv_mainram_r, ssv_mainram_w) // sxyreac2 reads / writes here, why?
+// AM_RANGE(0x020000, 0x03ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // sxyreac2 reads / writes here, why?
AM_RANGE(0x210000, 0x210001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 1 at the start
- AM_RANGE(0x21000e, 0x21000f) AM_WRITE_LEGACY(ssv_lockout_inv_w) // Inverted lockout lines
- AM_RANGE(0x500002, 0x500003) AM_READ_LEGACY(sxyreact_ballswitch_r) // ?
- AM_RANGE(0x500004, 0x500005) AM_READWRITE_LEGACY(sxyreact_dial_r, sxyreact_motor_w) // Dial Value (serial)
- AM_RANGE(0x520000, 0x520001) AM_WRITE_LEGACY(sxyreact_dial_w) // Dial Value (advance 1 bit)
+ AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
+ AM_RANGE(0x500002, 0x500003) AM_READ(sxyreact_ballswitch_r) // ?
+ AM_RANGE(0x500004, 0x500005) AM_READWRITE(sxyreact_dial_r, sxyreact_motor_w) // Dial Value (serial)
+ AM_RANGE(0x520000, 0x520001) AM_WRITE(sxyreact_dial_w) // Dial Value (advance 1 bit)
AM_RANGE(0x580000, 0x58ffff) AM_RAM AM_SHARE("nvram") // NVRAM
SSV_MAP( 0xe00000 )
ADDRESS_MAP_END
@@ -895,8 +879,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( twineag2_map, AS_PROGRAM, 16, ssv_state )
AM_RANGE(0x010000, 0x03ffff) AM_RAM // More RAM
AM_RANGE(0x210000, 0x210001) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog (also value is cmp.b with mem 8)
- AM_RANGE(0x480000, 0x480001) AM_READWRITE_LEGACY(dsp_dr_r, dsp_dr_w)
- AM_RANGE(0x482000, 0x482fff) AM_READWRITE_LEGACY(dsp_r, dsp_w)
+ AM_RANGE(0x480000, 0x480001) AM_READWRITE(dsp_dr_r, dsp_dr_w)
+ AM_RANGE(0x482000, 0x482fff) AM_READWRITE(dsp_r, dsp_w)
SSV_MAP( 0xe00000 )
ADDRESS_MAP_END
@@ -920,49 +904,45 @@ ADDRESS_MAP_END
/* from st0016.c */
-static READ32_HANDLER(latch32_r)
+READ32_MEMBER(ssv_state::latch32_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
if(!offset)
- state->m_latches[2]&=~2;
- return state->m_latches[offset];
+ m_latches[2]&=~2;
+ return m_latches[offset];
}
-static WRITE32_HANDLER(latch32_w)
+WRITE32_MEMBER(ssv_state::latch32_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
if(!offset)
- state->m_latches[2]|=1;
- COMBINE_DATA(&state->m_latches[offset]);
- space->machine().scheduler().synchronize();
+ m_latches[2]|=1;
+ COMBINE_DATA(&m_latches[offset]);
+ machine().scheduler().synchronize();
}
-static READ16_HANDLER(latch16_r)
+READ16_MEMBER(ssv_state::latch16_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
if(!offset)
- state->m_latches[2]&=~1;
- return state->m_latches[offset];
+ m_latches[2]&=~1;
+ return m_latches[offset];
}
-static WRITE16_HANDLER(latch16_w)
+WRITE16_MEMBER(ssv_state::latch16_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
if(!offset)
- state->m_latches[2]|=2;
- state->m_latches[offset]=data;
- space->machine().scheduler().synchronize();
+ m_latches[2]|=2;
+ m_latches[offset]=data;
+ machine().scheduler().synchronize();
}
static ADDRESS_MAP_START( jsk_map, AS_PROGRAM, 16, ssv_state )
- AM_RANGE(0x050000, 0x05ffff) AM_READWRITE_LEGACY(ssv_mainram_r, ssv_mainram_w) // RAM Mirror?
+ AM_RANGE(0x050000, 0x05ffff) AM_READWRITE(ssv_mainram_r, ssv_mainram_w) // RAM Mirror?
AM_RANGE(0x210000, 0x210001) AM_WRITE_LEGACY(watchdog_reset16_w) // Watchdog
AM_RANGE(0x400000, 0x47ffff) AM_RAM // RAM?
- AM_RANGE(0x900000, 0x900007) AM_READWRITE_LEGACY(latch16_r, latch16_w)
+ AM_RANGE(0x900000, 0x900007) AM_READWRITE(latch16_r, latch16_w)
SSV_MAP( 0xf00000 )
ADDRESS_MAP_END
@@ -971,7 +951,7 @@ static ADDRESS_MAP_START( jsk_v810_mem, AS_PROGRAM, 32, ssv_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM
AM_RANGE(0x80000000, 0x8001ffff) AM_RAM
AM_RANGE(0xc0000000, 0xc001ffff) AM_RAM
- AM_RANGE(0x40000000, 0x4000000f) AM_READWRITE_LEGACY(latch32_r, latch32_w)
+ AM_RANGE(0x40000000, 0x4000000f) AM_READWRITE(latch32_r, latch32_w)
AM_RANGE(0xfff80000, 0xffffffff) AM_ROM AM_REGION("sub", 0)
ADDRESS_MAP_END
@@ -980,13 +960,12 @@ ADDRESS_MAP_END
Eagle Shot Golf
***************************************************************************/
-static READ16_HANDLER( eaglshot_gfxrom_r )
+READ16_MEMBER(ssv_state::eaglshot_gfxrom_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- UINT8 *rom = space->machine().region("gfx1")->base();
- size_t size = space->machine().region("gfx1")->bytes();
+ UINT8 *rom = machine().region("gfx1")->base();
+ size_t size = machine().region("gfx1")->bytes();
- offset = offset * 2 + state->m_gfxrom_select * 0x200000;
+ offset = offset * 2 + m_gfxrom_select * 0x200000;
if (offset > size)
return 0xffff;
@@ -994,69 +973,64 @@ static READ16_HANDLER( eaglshot_gfxrom_r )
return rom[offset] + (rom[offset+1]<<8);
}
-static WRITE16_HANDLER( eaglshot_gfxrom_w )
+WRITE16_MEMBER(ssv_state::eaglshot_gfxrom_w)
{
if (ACCESSING_BITS_0_7)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- state->m_gfxrom_select = data;
+ m_gfxrom_select = data;
}
}
-static READ16_HANDLER( eaglshot_trackball_r )
+READ16_MEMBER(ssv_state::eaglshot_trackball_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- switch(state->m_trackball_select)
+ switch(m_trackball_select)
{
- case 0x60: return (input_port_read(space->machine(), "TRACKX") >> 8) & 0xff;
- case 0x40: return (input_port_read(space->machine(), "TRACKX") >> 0) & 0xff;
+ case 0x60: return (input_port_read(machine(), "TRACKX") >> 8) & 0xff;
+ case 0x40: return (input_port_read(machine(), "TRACKX") >> 0) & 0xff;
- case 0x70: return (input_port_read(space->machine(), "TRACKY") >> 8) & 0xff;
- case 0x50: return (input_port_read(space->machine(), "TRACKY") >> 0) & 0xff;
+ case 0x70: return (input_port_read(machine(), "TRACKY") >> 8) & 0xff;
+ case 0x50: return (input_port_read(machine(), "TRACKY") >> 0) & 0xff;
}
return 0;
}
-static WRITE16_HANDLER( eaglshot_trackball_w )
+WRITE16_MEMBER(ssv_state::eaglshot_trackball_w)
{
if (ACCESSING_BITS_0_7)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- state->m_trackball_select = data;
+ m_trackball_select = data;
}
}
-static READ16_HANDLER( eaglshot_gfxram_r )
+READ16_MEMBER(ssv_state::eaglshot_gfxram_r)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- return state->m_eaglshot_gfxram[offset + (state->m_scroll[0x76/2] & 0xf) * 0x40000/2];
+ return m_eaglshot_gfxram[offset + (m_scroll[0x76/2] & 0xf) * 0x40000/2];
}
-static WRITE16_HANDLER( eaglshot_gfxram_w )
+WRITE16_MEMBER(ssv_state::eaglshot_gfxram_w)
{
- ssv_state *state = space->machine().driver_data<ssv_state>();
- offset += (state->m_scroll[0x76/2] & 0xf) * 0x40000/2;
- COMBINE_DATA(&state->m_eaglshot_gfxram[offset]);
- gfx_element_mark_dirty(space->machine().gfx[0], offset / (16*8/2));
- gfx_element_mark_dirty(space->machine().gfx[1], offset / (16*8/2));
+ offset += (m_scroll[0x76/2] & 0xf) * 0x40000/2;
+ COMBINE_DATA(&m_eaglshot_gfxram[offset]);
+ gfx_element_mark_dirty(machine().gfx[0], offset / (16*8/2));
+ gfx_element_mark_dirty(machine().gfx[1], offset / (16*8/2));
}
static ADDRESS_MAP_START( eaglshot_map, AS_PROGRAM, 16, ssv_state )
- AM_RANGE(0x180000, 0x1bffff) AM_READWRITE_LEGACY(eaglshot_gfxram_r, eaglshot_gfxram_w)
+ AM_RANGE(0x180000, 0x1bffff) AM_READWRITE(eaglshot_gfxram_r, eaglshot_gfxram_w)
AM_RANGE(0x210000, 0x210001) AM_READNOP /*AM_READ_LEGACY(watchdog_reset16_r)*/ // Watchdog
// AM_RANGE(0x210002, 0x210003) AM_WRITENOP // ? 0,4 at the start
- AM_RANGE(0x21000e, 0x21000f) AM_WRITE_LEGACY(ssv_lockout_inv_w) // Inverted lockout lines
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(eaglshot_gfxrom_w)
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(eaglshot_trackball_w)
- AM_RANGE(0xa00000, 0xbfffff) AM_READ_LEGACY(eaglshot_gfxrom_r)
+ AM_RANGE(0x21000e, 0x21000f) AM_WRITE(ssv_lockout_inv_w) // Inverted lockout lines
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(eaglshot_gfxrom_w)
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(eaglshot_trackball_w)
+ AM_RANGE(0xa00000, 0xbfffff) AM_READ(eaglshot_gfxrom_r)
AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_SHARE("nvram") // NVRAM
- AM_RANGE(0xd00000, 0xd00001) AM_READ_LEGACY(eaglshot_trackball_r)
+ AM_RANGE(0xd00000, 0xd00001) AM_READ(eaglshot_trackball_r)
SSV_MAP( 0xf00000 )
ADDRESS_MAP_END
diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c
index 2f50f017817..faddaac1b39 100644
--- a/src/mame/drivers/st0016.c
+++ b/src/mame/drivers/st0016.c
@@ -38,36 +38,34 @@ static ADDRESS_MAP_START( st0016_mem, AS_PROGRAM, 8, st0016_state )
AM_RANGE(0xf000, 0xffff) AM_RAM /* work ram */
ADDRESS_MAP_END
-static READ8_HANDLER(mux_r)
+READ8_MEMBER(st0016_state::mux_r)
{
/*
76543210
xxxx - input port #2
xxxx - dip switches (2x8 bits) (multiplexed)
*/
- st0016_state *state = space->machine().driver_data<st0016_state>();
- int retval = input_port_read(space->machine(), "SYSTEM") & 0x0f;
+ int retval = input_port_read(machine(), "SYSTEM") & 0x0f;
- switch(state->mux_port & 0x30)
+ switch(mux_port & 0x30)
{
- case 0x00: retval |= ((input_port_read(space->machine(), "DSW1") & 1) << 4) | ((input_port_read(space->machine(), "DSW1") & 0x10) << 1)
- | ((input_port_read(space->machine(), "DSW2") & 1) << 6) | ((input_port_read(space->machine(), "DSW2") & 0x10) <<3); break;
- case 0x10: retval |= ((input_port_read(space->machine(), "DSW1") & 2) << 3) | ((input_port_read(space->machine(), "DSW1") & 0x20) )
- | ((input_port_read(space->machine(), "DSW2") & 2) << 5) | ((input_port_read(space->machine(), "DSW2") & 0x20) <<2); break;
- case 0x20: retval |= ((input_port_read(space->machine(), "DSW1") & 4) << 2) | ((input_port_read(space->machine(), "DSW1") & 0x40) >> 1)
- | ((input_port_read(space->machine(), "DSW2") & 4) << 4) | ((input_port_read(space->machine(), "DSW2") & 0x40) <<1); break;
- case 0x30: retval |= ((input_port_read(space->machine(), "DSW1") & 8) << 1) | ((input_port_read(space->machine(), "DSW1") & 0x80) >> 2)
- | ((input_port_read(space->machine(), "DSW2") & 8) << 3) | ((input_port_read(space->machine(), "DSW2") & 0x80) ); break;
+ case 0x00: retval |= ((input_port_read(machine(), "DSW1") & 1) << 4) | ((input_port_read(machine(), "DSW1") & 0x10) << 1)
+ | ((input_port_read(machine(), "DSW2") & 1) << 6) | ((input_port_read(machine(), "DSW2") & 0x10) <<3); break;
+ case 0x10: retval |= ((input_port_read(machine(), "DSW1") & 2) << 3) | ((input_port_read(machine(), "DSW1") & 0x20) )
+ | ((input_port_read(machine(), "DSW2") & 2) << 5) | ((input_port_read(machine(), "DSW2") & 0x20) <<2); break;
+ case 0x20: retval |= ((input_port_read(machine(), "DSW1") & 4) << 2) | ((input_port_read(machine(), "DSW1") & 0x40) >> 1)
+ | ((input_port_read(machine(), "DSW2") & 4) << 4) | ((input_port_read(machine(), "DSW2") & 0x40) <<1); break;
+ case 0x30: retval |= ((input_port_read(machine(), "DSW1") & 8) << 1) | ((input_port_read(machine(), "DSW1") & 0x80) >> 2)
+ | ((input_port_read(machine(), "DSW2") & 8) << 3) | ((input_port_read(machine(), "DSW2") & 0x80) ); break;
}
return retval;
}
-static WRITE8_HANDLER(mux_select_w)
+WRITE8_MEMBER(st0016_state::mux_select_w)
{
- st0016_state *state = space->machine().driver_data<st0016_state>();
- state->mux_port=data;
+ mux_port=data;
}
WRITE8_HANDLER(st0016_rom_bank_w)
@@ -79,9 +77,9 @@ WRITE8_HANDLER(st0016_rom_bank_w)
static ADDRESS_MAP_START( st0016_io, AS_IO, 8, st0016_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ_LEGACY(st0016_vregs_r) AM_WRITE_LEGACY(st0016_vregs_w) /* video/crt regs ? */
- AM_RANGE(0xc0, 0xc0) AM_READ_PORT("P1") AM_WRITE_LEGACY(mux_select_w)
+ AM_RANGE(0xc0, 0xc0) AM_READ_PORT("P1") AM_WRITE(mux_select_w)
AM_RANGE(0xc1, 0xc1) AM_READ_PORT("P2") AM_WRITENOP
- AM_RANGE(0xc2, 0xc2) AM_READ_LEGACY(mux_r) AM_WRITENOP
+ AM_RANGE(0xc2, 0xc2) AM_READ(mux_r) AM_WRITENOP
AM_RANGE(0xc3, 0xc3) AM_READ_PORT("P2") AM_WRITENOP
AM_RANGE(0xe0, 0xe0) AM_WRITENOP /* renju = $40, neratte = 0 */
AM_RANGE(0xe1, 0xe1) AM_WRITE_LEGACY(st0016_rom_bank_w)
@@ -102,51 +100,51 @@ ADDRESS_MAP_END
static UINT32 latches[8];
-static READ32_HANDLER(latch32_r)
+READ32_MEMBER(st0016_state::latch32_r)
{
if(!offset)
latches[2]&=~2;
return latches[offset];
}
-static WRITE32_HANDLER(latch32_w)
+WRITE32_MEMBER(st0016_state::latch32_w)
{
if(!offset)
latches[2]|=1;
COMBINE_DATA(&latches[offset]);
- space->machine().scheduler().synchronize();
+ machine().scheduler().synchronize();
}
-static READ8_HANDLER(latch8_r)
+READ8_MEMBER(st0016_state::latch8_r)
{
if(!offset)
latches[2]&=~1;
return latches[offset];
}
-static WRITE8_HANDLER(latch8_w)
+WRITE8_MEMBER(st0016_state::latch8_w)
{
if(!offset)
latches[2]|=2;
latches[offset]=data;
- space->machine().scheduler().synchronize();
+ machine().scheduler().synchronize();
}
static ADDRESS_MAP_START( v810_mem,AS_PROGRAM, 32, st0016_state )
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM
AM_RANGE(0x80000000, 0x8001ffff) AM_RAM
AM_RANGE(0xc0000000, 0xc001ffff) AM_RAM
- AM_RANGE(0x40000000, 0x4000000f) AM_READ_LEGACY(latch32_r) AM_WRITE_LEGACY(latch32_w)
+ AM_RANGE(0x40000000, 0x4000000f) AM_READ(latch32_r) AM_WRITE(latch32_w)
AM_RANGE(0xfff80000, 0xffffffff) AM_ROMBANK("bank2")
ADDRESS_MAP_END
static ADDRESS_MAP_START( st0016_m2_io, AS_IO, 8, st0016_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READ_LEGACY(st0016_vregs_r) AM_WRITE_LEGACY(st0016_vregs_w)
- AM_RANGE(0xc0, 0xc3) AM_READ_LEGACY(latch8_r) AM_WRITE_LEGACY(latch8_w)
- AM_RANGE(0xd0, 0xd0) AM_READ_PORT("P1") AM_WRITE_LEGACY(mux_select_w)
+ AM_RANGE(0xc0, 0xc3) AM_READ(latch8_r) AM_WRITE(latch8_w)
+ AM_RANGE(0xd0, 0xd0) AM_READ_PORT("P1") AM_WRITE(mux_select_w)
AM_RANGE(0xd1, 0xd1) AM_READ_PORT("P2") AM_WRITENOP
- AM_RANGE(0xd2, 0xd2) AM_READ_LEGACY(mux_r) AM_WRITENOP
+ AM_RANGE(0xd2, 0xd2) AM_READ(mux_r) AM_WRITENOP
AM_RANGE(0xd3, 0xd3) AM_READ_PORT("P2") AM_WRITENOP
AM_RANGE(0xe0, 0xe0) AM_WRITENOP
AM_RANGE(0xe1, 0xe1) AM_WRITE_LEGACY(st0016_rom_bank_w)
diff --git a/src/mame/drivers/stactics.c b/src/mame/drivers/stactics.c
index aed53578a56..0441407b7a5 100644
--- a/src/mame/drivers/stactics.c
+++ b/src/mame/drivers/stactics.c
@@ -63,19 +63,17 @@ static CUSTOM_INPUT( get_motor_not_ready )
}
-static READ8_HANDLER( vert_pos_r )
+READ8_MEMBER(stactics_state::vert_pos_r)
{
- stactics_state *state = space->machine().driver_data<stactics_state>();
- return 0x70 - state->m_vert_pos;
+ return 0x70 - m_vert_pos;
}
-static READ8_HANDLER( horiz_pos_r )
+READ8_MEMBER(stactics_state::horiz_pos_r)
{
- stactics_state *state = space->machine().driver_data<stactics_state>();
- return state->m_horiz_pos + 0x88;
+ return m_horiz_pos + 0x88;
}
@@ -141,9 +139,9 @@ static CUSTOM_INPUT( get_rng )
*
*************************************/
-static WRITE8_HANDLER( stactics_coin_lockout_w )
+WRITE8_MEMBER(stactics_state::stactics_coin_lockout_w)
{
- coin_lockout_w(space->machine(), offset, ~data & 0x01);
+ coin_lockout_w(machine(), offset, ~data & 0x01);
}
@@ -176,7 +174,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, stactics_state )
AM_RANGE(0x4000, 0x40ff) AM_MIRROR(0x0700) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_READ_PORT("IN1")
- AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0f08) AM_WRITE_LEGACY(stactics_coin_lockout_w)
+ AM_RANGE(0x6000, 0x6001) AM_MIRROR(0x0f08) AM_WRITE(stactics_coin_lockout_w)
AM_RANGE(0x6002, 0x6005) AM_MIRROR(0x0f08) AM_WRITENOP
AM_RANGE(0x6006, 0x6007) AM_MIRROR(0x0f08) AM_WRITEONLY AM_BASE(m_palette)
/* AM_RANGE(0x6010, 0x6017) AM_MIRROR(0x0f08) AM_WRITE_LEGACY(stactics_sound_w) */
@@ -192,8 +190,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, stactics_state )
AM_RANGE(0x7000, 0x7000) AM_MIRROR(0x0fff) AM_READ_PORT("IN2")
AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x0fff) AM_READ_PORT("IN3")
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x0800) AM_WRITE_LEGACY(stactics_scroll_ram_w)
- AM_RANGE(0x9000, 0x9000) AM_MIRROR(0x0fff) AM_READ_LEGACY(vert_pos_r)
- AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x0fff) AM_READ_LEGACY(horiz_pos_r)
+ AM_RANGE(0x9000, 0x9000) AM_MIRROR(0x0fff) AM_READ(vert_pos_r)
+ AM_RANGE(0xa000, 0xa000) AM_MIRROR(0x0fff) AM_READ(horiz_pos_r)
AM_RANGE(0xb000, 0xbfff) AM_RAM AM_BASE(m_videoram_b)
AM_RANGE(0xc000, 0xcfff) AM_NOP
AM_RANGE(0xd000, 0xdfff) AM_RAM AM_BASE(m_videoram_d)
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index 703d0295866..aec2e9e541f 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -20,25 +20,25 @@
/******************************************************************************/
-static READ16_HANDLER( stadhero_control_r )
+READ16_MEMBER(stadhero_state::stadhero_control_r)
{
switch (offset<<1)
{
case 0:
- return input_port_read(space->machine(), "INPUTS");
+ return input_port_read(machine(), "INPUTS");
case 2:
- return input_port_read(space->machine(), "COIN");
+ return input_port_read(machine(), "COIN");
case 4:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
}
- logerror("CPU #0 PC %06x: warning - read unmapped memory address %06x\n",cpu_get_pc(&space->device()),0x30c000+offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped memory address %06x\n",cpu_get_pc(&space.device()),0x30c000+offset);
return ~0;
}
-static WRITE16_HANDLER( stadhero_control_w )
+WRITE16_MEMBER(stadhero_state::stadhero_control_w)
{
switch (offset<<1)
{
@@ -46,10 +46,10 @@ static WRITE16_HANDLER( stadhero_control_w )
break;
case 6: /* 6502 sound cpu */
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
break;
default:
- logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space->device()),data,0x30c010+offset);
+ logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(&space.device()),data,0x30c010+offset);
break;
}
}
@@ -63,7 +63,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, stadhero_state )
AM_RANGE(0x240000, 0x240007) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_0_w) /* text layer */
AM_RANGE(0x240010, 0x240017) AM_DEVWRITE_LEGACY("tilegen1", deco_bac06_pf_control_1_w)
AM_RANGE(0x260000, 0x261fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco_bac06_pf_data_r, deco_bac06_pf_data_w)
- AM_RANGE(0x30c000, 0x30c00b) AM_READWRITE_LEGACY(stadhero_control_r, stadhero_control_w)
+ AM_RANGE(0x30c000, 0x30c00b) AM_READWRITE(stadhero_control_r, stadhero_control_w)
AM_RANGE(0x310000, 0x3107ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* Main ram */
AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x000800) AM_RAM AM_BASE(m_spriteram)
diff --git a/src/mame/drivers/starfire.c b/src/mame/drivers/starfire.c
index bd8b3e06c47..abfec382e7c 100644
--- a/src/mame/drivers/starfire.c
+++ b/src/mame/drivers/starfire.c
@@ -55,41 +55,39 @@ starfira has one less rom in total than starfire but everything passes as
*
*************************************/
-static WRITE8_HANDLER( starfire_scratch_w )
+WRITE8_MEMBER(starfire_state::starfire_scratch_w)
{
- starfire_state *state = space->machine().driver_data<starfire_state>();
/* A12 and A3 select video control registers */
if ((offset & 0x1008) == 0x1000)
{
switch (offset & 7)
{
- case 0: state->m_starfire_vidctrl = data; break;
- case 1: state->m_starfire_vidctrl1 = data; break;
+ case 0: m_starfire_vidctrl = data; break;
+ case 1: m_starfire_vidctrl1 = data; break;
case 2:
/* Sounds */
- state->m_fireone_select = (data & 0x8) ? 0 : 1;
+ m_fireone_select = (data & 0x8) ? 0 : 1;
break;
}
}
/* convert to a videoram offset */
offset = (offset & 0x31f) | ((offset & 0xe0) << 5);
- state->m_starfire_videoram[offset] = data;
+ m_starfire_videoram[offset] = data;
}
-static READ8_HANDLER( starfire_scratch_r )
+READ8_MEMBER(starfire_state::starfire_scratch_r)
{
- starfire_state *state = space->machine().driver_data<starfire_state>();
/* A11 selects input ports */
if (offset & 0x800)
- return (*state->m_input_read)(space, offset);
+ return m_input_read(space, offset, 0xff);
/* convert to a videoram offset */
offset = (offset & 0x31f) | ((offset & 0xe0) << 5);
- return state->m_starfire_videoram[offset];
+ return m_starfire_videoram[offset];
}
@@ -100,21 +98,21 @@ static READ8_HANDLER( starfire_scratch_r )
*
*************************************/
-static READ8_HANDLER( starfire_input_r )
+READ8_MEMBER(starfire_state::starfire_input_r)
{
switch (offset & 15)
{
- case 0: return input_port_read(space->machine(), "DSW");
- case 1: return input_port_read(space->machine(), "SYSTEM"); /* Note: need to loopback sounds lengths on that one */
- case 5: return input_port_read(space->machine(), "STICKZ");
- case 6: return input_port_read(space->machine(), "STICKX");
- case 7: return input_port_read(space->machine(), "STICKY");
+ case 0: return input_port_read(machine(), "DSW");
+ case 1: return input_port_read(machine(), "SYSTEM"); /* Note: need to loopback sounds lengths on that one */
+ case 5: return input_port_read(machine(), "STICKZ");
+ case 6: return input_port_read(machine(), "STICKX");
+ case 7: return input_port_read(machine(), "STICKY");
default: return 0xff;
}
}
-static READ8_HANDLER( fireone_input_r )
+READ8_MEMBER(starfire_state::fireone_input_r)
{
static const UINT8 fireone_paddle_map[64] =
{
@@ -129,14 +127,13 @@ static READ8_HANDLER( fireone_input_r )
};
int temp;
- starfire_state *state = space->machine().driver_data<starfire_state>();
switch (offset & 15)
{
- case 0: return input_port_read(space->machine(), "DSW");
- case 1: return input_port_read(space->machine(), "SYSTEM");
+ case 0: return input_port_read(machine(), "DSW");
+ case 1: return input_port_read(machine(), "SYSTEM");
case 2:
- temp = state->m_fireone_select ? input_port_read(space->machine(), "P1") : input_port_read(space->machine(), "P2");
+ temp = m_fireone_select ? input_port_read(machine(), "P1") : input_port_read(machine(), "P2");
temp = (temp & 0xc0) | fireone_paddle_map[temp & 0x3f];
return temp;
default: return 0xff;
@@ -153,7 +150,7 @@ static READ8_HANDLER( fireone_input_r )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, starfire_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x9fff) AM_READWRITE_LEGACY(starfire_scratch_r, starfire_scratch_w)
+ AM_RANGE(0x8000, 0x9fff) AM_READWRITE(starfire_scratch_r, starfire_scratch_w)
AM_RANGE(0xa000, 0xbfff) AM_READWRITE_LEGACY(starfire_colorram_r, starfire_colorram_w) AM_BASE(m_starfire_colorram)
AM_RANGE(0xc000, 0xffff) AM_READWRITE_LEGACY(starfire_videoram_r, starfire_videoram_w) AM_BASE(m_starfire_videoram)
ADDRESS_MAP_END
@@ -377,14 +374,14 @@ static DRIVER_INIT( starfire )
{
starfire_state *state = machine.driver_data<starfire_state>();
- state->m_input_read = starfire_input_r;
+ state->m_input_read = read8_delegate(FUNC(starfire_state::starfire_input_r),state);
}
static DRIVER_INIT( fireone )
{
starfire_state *state = machine.driver_data<starfire_state>();
- state->m_input_read = fireone_input_r;
+ state->m_input_read = read8_delegate(FUNC(starfire_state::fireone_input_r),state);
/* register for state saving */
state->save_item(NAME(state->m_fireone_select));
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index c2b306d7d1d..4add3eb685d 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -58,10 +58,9 @@ static WRITE8_DEVICE_HANDLER( starshp1_audio_w )
}
-static WRITE8_HANDLER( starshp1_collision_reset_w )
+WRITE8_MEMBER(starshp1_state::starshp1_collision_reset_w)
{
- starshp1_state *state = space->machine().driver_data<starshp1_state>();
- state->m_collision_latch = 0;
+ m_collision_latch = 0;
}
@@ -97,10 +96,9 @@ static CUSTOM_INPUT( collision_latch_r )
}
-static WRITE8_HANDLER( starshp1_analog_in_w )
+WRITE8_MEMBER(starshp1_state::starshp1_analog_in_w)
{
- starshp1_state *state = space->machine().driver_data<starshp1_state>();
- state->m_analog_in_select = offset & 3;
+ m_analog_in_select = offset & 3;
}
@@ -134,36 +132,35 @@ static WRITE8_DEVICE_HANDLER( starshp1_analog_out_w )
}
-static WRITE8_HANDLER( starshp1_misc_w )
+WRITE8_MEMBER(starshp1_state::starshp1_misc_w)
{
- starshp1_state *state = space->machine().driver_data<starshp1_state>();
data &= 1;
switch (offset & 7)
{
case 0:
- state->m_ship_explode = data;
+ m_ship_explode = data;
break;
case 1:
- state->m_circle_mod = data;
+ m_circle_mod = data;
break;
case 2:
- state->m_circle_kill = !data;
+ m_circle_kill = !data;
break;
case 3:
- state->m_starfield_kill = data;
+ m_starfield_kill = data;
break;
case 4:
- state->m_inverse = data;
+ m_inverse = data;
break;
case 5:
/* BLACK HOLE, not used */
break;
case 6:
- state->m_mux = data;
+ m_mux = data;
break;
case 7:
- set_led_status(space->machine(), 0, !data);
+ set_led_status(machine(), 0, !data);
break;
}
}
@@ -182,9 +179,9 @@ static ADDRESS_MAP_START( starshp1_map, AS_PROGRAM, 8, starshp1_state )
AM_RANGE(0xd000, 0xd00f) AM_WRITEONLY AM_BASE(m_vpos_ram)
AM_RANGE(0xd400, 0xd40f) AM_WRITEONLY AM_BASE(m_obj_ram)
AM_RANGE(0xd800, 0xd800) AM_READ_LEGACY(starshp1_rng_r)
- AM_RANGE(0xd800, 0xd80f) AM_WRITE_LEGACY(starshp1_collision_reset_w)
- AM_RANGE(0xdc00, 0xdc0f) AM_WRITE_LEGACY(starshp1_misc_w)
- AM_RANGE(0xdd00, 0xdd0f) AM_WRITE_LEGACY(starshp1_analog_in_w)
+ 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(0xf000, 0xffff) AM_ROM
diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c
index 6982bbcbc29..cbc2434aacb 100644
--- a/src/mame/drivers/starwars.c
+++ b/src/mame/drivers/starwars.c
@@ -72,9 +72,9 @@ static MACHINE_RESET( starwars )
*
*************************************/
-static WRITE8_HANDLER( irq_ack_w )
+WRITE8_MEMBER(starwars_state::irq_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", M6809_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_IRQ_LINE, CLEAR_LINE);
}
@@ -99,18 +99,17 @@ static void esb_slapstic_tweak(address_space *space, offs_t offset)
}
-static READ8_HANDLER( esb_slapstic_r )
+READ8_MEMBER(starwars_state::esb_slapstic_r)
{
- starwars_state *state = space->machine().driver_data<starwars_state>();
- int result = state->m_slapstic_base[offset];
- esb_slapstic_tweak(space, offset);
+ int result = m_slapstic_base[offset];
+ esb_slapstic_tweak(&space, offset);
return result;
}
-static WRITE8_HANDLER( esb_slapstic_w )
+WRITE8_MEMBER(starwars_state::esb_slapstic_w)
{
- esb_slapstic_tweak(space, offset);
+ esb_slapstic_tweak(&space, offset);
}
@@ -167,7 +166,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, starwars_state )
AM_RANGE(0x4600, 0x461f) AM_WRITE_LEGACY(avgdvg_go_w)
AM_RANGE(0x4620, 0x463f) AM_WRITE_LEGACY(avgdvg_reset_w)
AM_RANGE(0x4640, 0x465f) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x4660, 0x467f) AM_WRITE_LEGACY(irq_ack_w)
+ AM_RANGE(0x4660, 0x467f) AM_WRITE(irq_ack_w)
AM_RANGE(0x4680, 0x469f) AM_READNOP AM_WRITE_LEGACY(starwars_out_w)
AM_RANGE(0x46a0, 0x46bf) AM_WRITE_LEGACY(starwars_nstore_w)
AM_RANGE(0x46c0, 0x46c2) AM_WRITE_LEGACY(starwars_adc_select_w)
@@ -524,7 +523,7 @@ static DRIVER_INIT( esb )
space->set_direct_update_handler(direct_update_delegate(FUNC(esb_setdirect), &machine));
/* install read/write handlers for it */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x8000, 0x9fff, FUNC(esb_slapstic_r), FUNC(esb_slapstic_w));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_readwrite_handler(0x8000, 0x9fff, read8_delegate(FUNC(starwars_state::esb_slapstic_r),state), write8_delegate(FUNC(starwars_state::esb_slapstic_w),state));
/* install additional banking */
machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_bank(0xa000, 0xffff, "bank2");
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index 72613f906a1..11349e6ef0a 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -24,58 +24,57 @@ Notes:
/****************************************************************************/
-static READ8_HANDLER( strnskil_d800_r )
+READ8_MEMBER(strnskil_state::strnskil_d800_r)
{
- strnskil_state *state = space->machine().driver_data<strnskil_state>();
/* bit0: interrupt type?, bit1: CPU2 busack? */
- return (state->m_irq_source);
+ return (m_irq_source);
}
/****************************************************************************/
-static READ8_HANDLER( pettanp_protection_r )
+READ8_MEMBER(strnskil_state::pettanp_protection_r)
{
int res;
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x6066: res = 0xa5; break;
case 0x60dc: res = 0x20; break; /* bits 0-3 unknown */
case 0x615d: res = 0x30; break; /* bits 0-3 unknown */
- case 0x61b9: res = 0x60|(space->machine().rand()&0x0f); break; /* bits 0-3 unknown */
+ case 0x61b9: res = 0x60|(machine().rand()&0x0f); break; /* bits 0-3 unknown */
case 0x6219: res = 0x77; break;
case 0x626c: res = 0xb4; break;
default: res = 0xff; break;
}
- logerror("%04x: protection_r -> %02x\n",cpu_get_pc(&space->device()),res);
+ logerror("%04x: protection_r -> %02x\n",cpu_get_pc(&space.device()),res);
return res;
}
-static READ8_HANDLER( banbam_protection_r )
+READ8_MEMBER(strnskil_state::banbam_protection_r)
{
int res;
- switch (cpu_get_pc(&space->device()))
+ switch (cpu_get_pc(&space.device()))
{
case 0x6094: res = 0xa5; break;
case 0x6118: res = 0x20; break; /* bits 0-3 unknown */
case 0x6199: res = 0x30; break; /* bits 0-3 unknown */
- case 0x61f5: res = 0x60|(space->machine().rand()&0x0f); break; /* bits 0-3 unknown */
+ case 0x61f5: res = 0x60|(machine().rand()&0x0f); break; /* bits 0-3 unknown */
case 0x6255: res = 0x77; break;
case 0x62a8: res = 0xb4; break;
default: res = 0xff; break;
}
- logerror("%04x: protection_r -> %02x\n",cpu_get_pc(&space->device()),res);
+ logerror("%04x: protection_r -> %02x\n",cpu_get_pc(&space.device()),res);
return res;
}
-static WRITE8_HANDLER( protection_w )
+WRITE8_MEMBER(strnskil_state::protection_w)
{
- logerror("%04x: protection_w %02x\n",cpu_get_pc(&space->device()),data);
+ logerror("%04x: protection_w %02x\n",cpu_get_pc(&space.device()),data);
}
/****************************************************************************/
@@ -87,7 +86,7 @@ static ADDRESS_MAP_START( strnskil_map1, AS_PROGRAM, 8, strnskil_state )
AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE_LEGACY(strnskil_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0xd800, 0xd800) AM_READ_LEGACY(strnskil_d800_r)
+ AM_RANGE(0xd800, 0xd800) AM_READ(strnskil_d800_r)
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("DSW1")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("DSW2")
AM_RANGE(0xd803, 0xd803) AM_READ_PORT("SYSTEM")
@@ -520,20 +519,22 @@ ROM_END
static DRIVER_INIT( pettanp )
{
// AM_RANGE(0xd80c, 0xd80c) AM_WRITENOP /* protection reset? */
-// AM_RANGE(0xd80d, 0xd80d) AM_WRITE_LEGACY(protection_w) /* protection data write (pettanp) */
+// AM_RANGE(0xd80d, 0xd80d) AM_WRITE(protection_w) /* protection data write (pettanp) */
// AM_RANGE(0xd806, 0xd806) AM_READ_LEGACY(protection_r) /* protection data read (pettanp) */
/* Fujitsu MB8841 4-Bit MCU */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd806, 0xd806, FUNC(pettanp_protection_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xd80d, 0xd80d, FUNC(protection_w));
+ strnskil_state *state = machine.driver_data<strnskil_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd806, 0xd806, read8_delegate(FUNC(strnskil_state::pettanp_protection_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xd80d, 0xd80d, write8_delegate(FUNC(strnskil_state::protection_w),state));
}
static DRIVER_INIT( banbam )
{
/* Fujitsu MB8841 4-Bit MCU */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd806, 0xd806, FUNC(banbam_protection_r));
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xd80d, 0xd80d, FUNC(protection_w));
+ strnskil_state *state = machine.driver_data<strnskil_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd806, 0xd806, read8_delegate(FUNC(strnskil_state::banbam_protection_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xd80d, 0xd80d, write8_delegate(FUNC(strnskil_state::protection_w),state));
}
GAME( 1984, strnskil, 0, strnskil, strnskil, 0, ROT0, "Sun Electronics", "Strength & Skill", 0 )
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 3ea14de7910..a97d519381d 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -38,49 +38,49 @@ Year + Game By Board Hardware
***************************************************************************/
-static WRITE16_HANDLER( suna16_soundlatch_w )
+WRITE16_MEMBER(suna16_state::suna16_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
{
- soundlatch_w( space, 0, data & 0xff );
+ soundlatch_w(space, 0, data & 0xff );
}
- if (data & ~0xff) logerror("CPU#0 PC %06X - Sound latch unknown bits: %04X\n", cpu_get_pc(&space->device()), data);
+ if (data & ~0xff) logerror("CPU#0 PC %06X - Sound latch unknown bits: %04X\n", cpu_get_pc(&space.device()), data);
}
-static WRITE16_HANDLER( bssoccer_leds_w )
+WRITE16_MEMBER(suna16_state::bssoccer_leds_w)
{
if (ACCESSING_BITS_0_7)
{
- set_led_status(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 1, data & 0x02);
- set_led_status(space->machine(), 2, data & 0x04);
- set_led_status(space->machine(), 3, data & 0x08);
- coin_counter_w(space->machine(), 0, data & 0x10);
+ set_led_status(machine(), 0, data & 0x01);
+ set_led_status(machine(), 1, data & 0x02);
+ set_led_status(machine(), 2, data & 0x04);
+ set_led_status(machine(), 3, data & 0x08);
+ coin_counter_w(machine(), 0, data & 0x10);
}
- if (data & ~0x1f) logerror("CPU#0 PC %06X - Leds unknown bits: %04X\n", cpu_get_pc(&space->device()), data);
+ if (data & ~0x1f) logerror("CPU#0 PC %06X - Leds unknown bits: %04X\n", cpu_get_pc(&space.device()), data);
}
-static WRITE16_HANDLER( uballoon_leds_w )
+WRITE16_MEMBER(suna16_state::uballoon_leds_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 0, data & 0x02);
- set_led_status(space->machine(), 1, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x01);
+ set_led_status(machine(), 0, data & 0x02);
+ set_led_status(machine(), 1, data & 0x04);
}
- if (data & ~0x07) logerror("CPU#0 PC %06X - Leds unknown bits: %04X\n", cpu_get_pc(&space->device()), data);
+ if (data & ~0x07) logerror("CPU#0 PC %06X - Leds unknown bits: %04X\n", cpu_get_pc(&space.device()), data);
}
-static WRITE16_HANDLER( bestbest_coin_w )
+WRITE16_MEMBER(suna16_state::bestbest_coin_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w(space->machine(), 0, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x04);
}
- if (data & ~0x04) logerror("CPU#0 PC %06X - Leds unknown bits: %04X\n", cpu_get_pc(&space->device()), data);
+ if (data & ~0x04) logerror("CPU#0 PC %06X - Leds unknown bits: %04X\n", cpu_get_pc(&space.device()), data);
}
@@ -94,9 +94,9 @@ static ADDRESS_MAP_START( bssoccer_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE(0x400000, 0x4001ff) AM_READWRITE_LEGACY(suna16_paletteram16_r, suna16_paletteram16_w) // Banked Palette
AM_RANGE(0x400200, 0x400fff) AM_RAM //
AM_RANGE(0x600000, 0x61ffff) AM_RAM AM_BASE(m_spriteram) // Sprites
- AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("P1") AM_WRITE_LEGACY(suna16_soundlatch_w) // To Sound CPU
+ AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("P1") AM_WRITE(suna16_soundlatch_w) // To Sound CPU
AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("P2") AM_WRITE_LEGACY(suna16_flipscreen_w) // Flip Screen
- AM_RANGE(0xa00004, 0xa00005) AM_READ_PORT("P3") AM_WRITE_LEGACY(bssoccer_leds_w) // Leds
+ AM_RANGE(0xa00004, 0xa00005) AM_READ_PORT("P3") AM_WRITE(bssoccer_leds_w) // Leds
AM_RANGE(0xa00006, 0xa00007) AM_READ_PORT("P4") AM_WRITENOP // ? IRQ 1 Ack
AM_RANGE(0xa00008, 0xa00009) AM_READ_PORT("DSW1") AM_WRITENOP // ? IRQ 2 Ack
AM_RANGE(0xa0000a, 0xa0000b) AM_READ_PORT("DSW2")
@@ -113,11 +113,11 @@ static ADDRESS_MAP_START( uballoon_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE(0x200000, 0x2001ff) AM_READWRITE_LEGACY(suna16_paletteram16_r, suna16_paletteram16_w) // Banked Palette
AM_RANGE(0x200200, 0x200fff) AM_RAM //
AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x1e0000) AM_RAM AM_BASE(m_spriteram) // Sprites
- AM_RANGE(0x600000, 0x600001) AM_READ_PORT("P1") AM_WRITE_LEGACY(suna16_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x600000, 0x600001) AM_READ_PORT("P1") AM_WRITE(suna16_soundlatch_w) // To Sound CPU
AM_RANGE(0x600002, 0x600003) AM_READ_PORT("P2")
AM_RANGE(0x600004, 0x600005) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(suna16_flipscreen_w) // Flip Screen
AM_RANGE(0x600006, 0x600007) AM_READ_PORT("DSW2")
- AM_RANGE(0x600008, 0x600009) AM_WRITE_LEGACY(uballoon_leds_w) // Leds
+ AM_RANGE(0x600008, 0x600009) AM_WRITE(uballoon_leds_w) // Leds
AM_RANGE(0x60000c, 0x60000d) AM_WRITENOP // ? IRQ 1 Ack
AM_RANGE(0x600010, 0x600011) AM_WRITENOP // ? IRQ 1 Ack
AM_RANGE(0xa00000, 0xa0ffff) AM_NOP // Protection
@@ -130,7 +130,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sunaq_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
- AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") AM_WRITE_LEGACY(suna16_soundlatch_w) // To Sound CPU
+ AM_RANGE(0x500000, 0x500001) AM_READ_PORT("P1") AM_WRITE(suna16_soundlatch_w) // To Sound CPU
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("P2") AM_WRITE_LEGACY(suna16_flipscreen_w) // Flip Screen
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW1")
AM_RANGE(0x500006, 0x500007) AM_READ_PORT("DSW2") // (unused?)
@@ -145,25 +145,23 @@ ADDRESS_MAP_END
Best Of Best
***************************************************************************/
-static READ16_HANDLER( bestbest_prot_r )
+READ16_MEMBER(suna16_state::bestbest_prot_r)
{
- suna16_state *state = space->machine().driver_data<suna16_state>();
- return state->m_prot;
+ return m_prot;
}
-static WRITE16_HANDLER( bestbest_prot_w )
+WRITE16_MEMBER(suna16_state::bestbest_prot_w)
{
if (ACCESSING_BITS_0_7)
{
- suna16_state *state = space->machine().driver_data<suna16_state>();
switch (data & 0xff)
{
- case 0x00: state->m_prot = state->m_prot ^ 0x0009; break;
- case 0x08: state->m_prot = state->m_prot ^ 0x0002; break;
- case 0x0c: state->m_prot = state->m_prot ^ 0x0003; break;
- //default: logerror("CPU#0 PC %06X - Unknown protection value: %04X\n", cpu_get_pc(&space->device()), data);
+ case 0x00: m_prot = m_prot ^ 0x0009; break;
+ case 0x08: m_prot = m_prot ^ 0x0002; break;
+ case 0x0c: m_prot = m_prot ^ 0x0003; break;
+ //default: logerror("CPU#0 PC %06X - Unknown protection value: %04X\n", cpu_get_pc(&space.device()), data);
}
}
}
@@ -172,11 +170,11 @@ static WRITE16_HANDLER( bestbest_prot_w )
static ADDRESS_MAP_START( bestbest_map, AS_PROGRAM, 16, suna16_state )
AM_RANGE( 0x000000, 0x03ffff ) AM_ROM AM_MIRROR(0xc0000) // ROM
AM_RANGE( 0x200000, 0x2fffff ) AM_ROM AM_REGION("user1", 0) // ROM
- AM_RANGE( 0x500000, 0x500001 ) AM_READ_PORT("P1") AM_WRITE_LEGACY(suna16_soundlatch_w) // To Sound CPU
+ AM_RANGE( 0x500000, 0x500001 ) AM_READ_PORT("P1") AM_WRITE(suna16_soundlatch_w) // To Sound CPU
AM_RANGE( 0x500002, 0x500003 ) AM_READ_PORT("P2") AM_WRITE_LEGACY(bestbest_flipscreen_w) // P2 + Coins, Flip Screen
- AM_RANGE( 0x500004, 0x500005 ) AM_READ_PORT("DSW") AM_WRITE_LEGACY(bestbest_coin_w) // Coin Counter
- AM_RANGE( 0x500008, 0x500009 ) AM_WRITE_LEGACY(bestbest_prot_w ) // Protection
- AM_RANGE( 0x500018, 0x500019 ) AM_READ_LEGACY(bestbest_prot_r ) //
+ AM_RANGE( 0x500004, 0x500005 ) AM_READ_PORT("DSW") AM_WRITE(bestbest_coin_w) // Coin Counter
+ AM_RANGE( 0x500008, 0x500009 ) AM_WRITE(bestbest_prot_w ) // Protection
+ AM_RANGE( 0x500018, 0x500019 ) AM_READ(bestbest_prot_r ) //
AM_RANGE( 0x540000, 0x540fff ) AM_READWRITE_LEGACY(suna16_paletteram16_r, suna16_paletteram16_w ) // Banked(?) Palette
AM_RANGE( 0x541000, 0x54ffff ) AM_RAM //
AM_RANGE( 0x580000, 0x58ffff ) AM_RAM // RAM
@@ -260,20 +258,20 @@ ADDRESS_MAP_END
/* Bank Switching */
-static WRITE8_HANDLER( bssoccer_pcm_1_bankswitch_w )
+WRITE8_MEMBER(suna16_state::bssoccer_pcm_1_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("pcm1")->base();
+ UINT8 *RAM = machine().region("pcm1")->base();
int bank = data & 7;
- if (bank & ~7) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space->device()), data);
- memory_set_bankptr(space->machine(), "bank1", &RAM[bank * 0x10000 + 0x1000]);
+ if (bank & ~7) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space.device()), data);
+ memory_set_bankptr(machine(), "bank1", &RAM[bank * 0x10000 + 0x1000]);
}
-static WRITE8_HANDLER( bssoccer_pcm_2_bankswitch_w )
+WRITE8_MEMBER(suna16_state::bssoccer_pcm_2_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("pcm2")->base();
+ UINT8 *RAM = machine().region("pcm2")->base();
int bank = data & 7;
- if (bank & ~7) logerror("CPU#3 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space->device()), data);
- memory_set_bankptr(space->machine(), "bank2", &RAM[bank * 0x10000 + 0x1000]);
+ if (bank & ~7) logerror("CPU#3 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space.device()), data);
+ memory_set_bankptr(machine(), "bank2", &RAM[bank * 0x10000 + 0x1000]);
}
@@ -304,7 +302,7 @@ static ADDRESS_MAP_START( bssoccer_pcm_1_io_map, AS_IO, 8, suna16_state )
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch2_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(0x03, 0x03) AM_WRITE_LEGACY(bssoccer_pcm_1_bankswitch_w) // Rom Bank
+ 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 )
@@ -312,7 +310,7 @@ static ADDRESS_MAP_START( bssoccer_pcm_2_io_map, AS_IO, 8, suna16_state )
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch3_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(0x03, 0x03) AM_WRITE_LEGACY(bssoccer_pcm_2_bankswitch_w) // Rom Bank
+ AM_RANGE(0x03, 0x03) AM_WRITE(bssoccer_pcm_2_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
@@ -322,12 +320,12 @@ ADDRESS_MAP_END
/* Bank Switching */
-static WRITE8_HANDLER( uballoon_pcm_1_bankswitch_w )
+WRITE8_MEMBER(suna16_state::uballoon_pcm_1_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("pcm1")->base();
+ UINT8 *RAM = machine().region("pcm1")->base();
int bank = data & 1;
- if (bank & ~1) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space->device()), data);
- memory_set_bankptr(space->machine(), "bank1", &RAM[bank * 0x10000 + 0x400]);
+ if (bank & ~1) logerror("CPU#2 PC %06X - ROM bank unknown bits: %02X\n", cpu_get_pc(&space.device()), data);
+ memory_set_bankptr(machine(), "bank1", &RAM[bank * 0x10000 + 0x400]);
}
/* Memory maps: Yes, *no* RAM */
@@ -342,13 +340,14 @@ static ADDRESS_MAP_START( uballoon_pcm_1_io_map, AS_IO, 8, suna16_state )
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch2_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(0x03, 0x03) AM_WRITE_LEGACY(uballoon_pcm_1_bankswitch_w) // Rom Bank
+ AM_RANGE(0x03, 0x03) AM_WRITE(uballoon_pcm_1_bankswitch_w) // Rom Bank
ADDRESS_MAP_END
static MACHINE_RESET(uballoon)
{
+ suna16_state *state = machine.driver_data<suna16_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- uballoon_pcm_1_bankswitch_w(space, 0, 0);
+ state->uballoon_pcm_1_bankswitch_w(*space, 0, 0);
}
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index d2d3458bd76..910b4e0a443 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -432,10 +432,9 @@ static DRIVER_INIT( sparkman )
Hard Head
***************************************************************************/
-static READ8_HANDLER( hardhead_protection_r )
+READ8_MEMBER(suna8_state::hardhead_protection_r)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- UINT8 protection_val = state->m_protection_val;
+ UINT8 protection_val = m_protection_val;
if (protection_val & 0x80)
return ((~offset & 0x20) ? 0x20 : 0) |
@@ -446,12 +445,11 @@ static READ8_HANDLER( hardhead_protection_r )
(((offset ^ protection_val) & 0x01) ? 0x84 : 0);
}
-static WRITE8_HANDLER( hardhead_protection_w )
+WRITE8_MEMBER(suna8_state::hardhead_protection_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- if (data & 0x80) state->m_protection_val = data;
- else state->m_protection_val = offset & 1;
+ if (data & 0x80) m_protection_val = data;
+ else m_protection_val = offset & 1;
}
@@ -467,18 +465,17 @@ static WRITE8_HANDLER( hardhead_protection_w )
Hard Head
***************************************************************************/
-static READ8_HANDLER( hardhead_ip_r )
+READ8_MEMBER(suna8_state::hardhead_ip_r)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- switch (*state->m_hardhead_ip)
+ switch (*m_hardhead_ip)
{
- case 0: return input_port_read(space->machine(), "P1");
- case 1: return input_port_read(space->machine(), "P2");
- case 2: return input_port_read(space->machine(), "DSW1");
- case 3: return input_port_read(space->machine(), "DSW2");
+ case 0: return input_port_read(machine(), "P1");
+ case 1: return input_port_read(machine(), "P2");
+ case 2: return input_port_read(machine(), "DSW1");
+ case 3: return input_port_read(machine(), "DSW2");
default:
- logerror("CPU #0 - PC %04X: Unknown IP read: %02X\n", cpu_get_pc(&space->device()), *state->m_hardhead_ip);
+ logerror("CPU #0 - PC %04X: Unknown IP read: %02X\n", cpu_get_pc(&space.device()), *m_hardhead_ip);
return 0xff;
}
}
@@ -488,12 +485,12 @@ static READ8_HANDLER( hardhead_ip_r )
---4 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( hardhead_bankswitch_w )
+WRITE8_MEMBER(suna8_state::hardhead_bankswitch_w)
{
int bank = data & 0x0f;
- if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space->device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
+ if (data & ~0xef) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space.device()),data);
+ memory_set_bank(machine(), "bank1", bank);
}
@@ -503,11 +500,11 @@ static WRITE8_HANDLER( hardhead_bankswitch_w )
---- -2-- Flip Screen
---- --10
*/
-static WRITE8_HANDLER( hardhead_flipscreen_w )
+WRITE8_MEMBER(suna8_state::hardhead_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x04);
- coin_lockout_w ( space->machine(), 0, data & 0x08);
- coin_lockout_w ( space->machine(), 1, data & 0x10);
+ flip_screen_set(machine(), data & 0x04);
+ coin_lockout_w ( machine(), 0, data & 0x08);
+ coin_lockout_w ( machine(), 1, data & 0x10);
}
static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state )
@@ -515,14 +512,14 @@ static ADDRESS_MAP_START( hardhead_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xd7ff) AM_RAM // RAM
AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram) // Palette
- AM_RANGE(0xda00, 0xda00) AM_RAM_READ_LEGACY(hardhead_ip_r) AM_BASE(m_hardhead_ip) // Input Port Select
- AM_RANGE(0xda80, 0xda80) AM_READWRITE_LEGACY(soundlatch2_r, hardhead_bankswitch_w ) // ROM Banking
+ AM_RANGE(0xda00, 0xda00) AM_RAM_READ(hardhead_ip_r) AM_BASE(m_hardhead_ip) // Input Port Select
+ AM_RANGE(0xda80, 0xda80) AM_READ_LEGACY(soundlatch2_r) AM_WRITE(hardhead_bankswitch_w ) // ROM Banking
AM_RANGE(0xdb00, 0xdb00) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
- AM_RANGE(0xdb80, 0xdb80) AM_WRITE_LEGACY(hardhead_flipscreen_w ) // Flip Screen + Coin Lockout
+ AM_RANGE(0xdb80, 0xdb80) AM_WRITE(hardhead_flipscreen_w ) // Flip Screen + Coin Lockout
AM_RANGE(0xdc00, 0xdc00) AM_NOP // <- R (after bank select)
AM_RANGE(0xdc80, 0xdc80) AM_NOP // <- R (after bank select)
AM_RANGE(0xdd00, 0xdd00) AM_NOP // <- R (after ip select)
- AM_RANGE(0xdd80, 0xddff) AM_READWRITE_LEGACY(hardhead_protection_r, hardhead_protection_w ) // Protection
+ AM_RANGE(0xdd80, 0xddff) AM_READWRITE(hardhead_protection_r, hardhead_protection_w ) // Protection
AM_RANGE(0xe000, 0xffff) AM_RAM_WRITE_LEGACY(suna8_spriteram_w) AM_BASE(m_spriteram) // Sprites
ADDRESS_MAP_END
@@ -543,18 +540,18 @@ ADDRESS_MAP_END
---- 3---
---- -210 ROM Bank
*/
-static WRITE8_HANDLER( rranger_bankswitch_w )
+WRITE8_MEMBER(suna8_state::rranger_bankswitch_w)
{
int bank = data & 0x07;
if ((~data & 0x10) && (bank >= 4)) bank += 4;
- if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ if (data & ~0xf7) logerror("CPU #0 - PC %04X: unknown bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
- flip_screen_set(space->machine(), data & 0x20);
- coin_lockout_w ( space->machine(), 0, data & 0x40);
- coin_lockout_w ( space->machine(), 1, data & 0x80);
+ flip_screen_set(machine(), data & 0x20);
+ coin_lockout_w ( machine(), 0, data & 0x40);
+ coin_lockout_w ( machine(), 1, data & 0x80);
}
/*
@@ -565,28 +562,28 @@ static WRITE8_HANDLER( rranger_bankswitch_w )
---- --1- 1 -> Interlude screens
---- ---0
*/
-static READ8_HANDLER( rranger_soundstatus_r )
+READ8_MEMBER(suna8_state::rranger_soundstatus_r)
{
soundlatch2_r(space, offset);
return 0x02;
}
-static WRITE8_HANDLER( sranger_prot_w )
+WRITE8_MEMBER(suna8_state::sranger_prot_w)
{
/* check code at 0x2ce2 (in sranger), protection is so dire that I can't even exactly
estabilish if what I'm doing can be considered or not a kludge... -AS */
- space->write_byte(0xcd99,0xff);
+ space.write_byte(0xcd99,0xff);
}
static ADDRESS_MAP_START( rranger_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0xc000, 0xc000) AM_READWRITE_LEGACY(watchdog_reset_r, soundlatch_w) // To Sound CPU
- AM_RANGE(0xc002, 0xc002) AM_WRITE_LEGACY(rranger_bankswitch_w ) // ROM Banking
+ AM_RANGE(0xc002, 0xc002) AM_WRITE(rranger_bankswitch_w ) // ROM Banking
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("P1") // P1 (Inputs)
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("P2") // P2
- AM_RANGE(0xc004, 0xc004) AM_READ_LEGACY(rranger_soundstatus_r ) // Latch Status?
- AM_RANGE(0xc200, 0xc200) AM_READNOP AM_WRITE_LEGACY(sranger_prot_w)// Protection?
+ AM_RANGE(0xc004, 0xc004) AM_READ(rranger_soundstatus_r ) // Latch Status?
+ AM_RANGE(0xc200, 0xc200) AM_READNOP AM_WRITE(sranger_prot_w)// Protection?
AM_RANGE(0xc280, 0xc280) AM_WRITENOP // ? NMI Ack
AM_RANGE(0xc280, 0xc280) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc2c0, 0xc2c0) AM_READ_PORT("DSW2") // DSW 2
@@ -608,19 +605,18 @@ ADDRESS_MAP_END
/*
?
*/
-static READ8_HANDLER( brickzn_c140_r )
+READ8_MEMBER(suna8_state::brickzn_c140_r)
{
return 0xff;
}
/*
*/
-static WRITE8_HANDLER( brickzn_palettebank_w )
+WRITE8_MEMBER(suna8_state::brickzn_palettebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_palettebank = (data >> 1) & 1;
- if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_palettebank = (data >> 1) & 1;
+ if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown palettebank bits: %02X\n",cpu_get_pc(&space.device()),data);
/* Also used as soundlatch - depending on c0c0? */
soundlatch_w(space,0,data);
@@ -631,51 +627,48 @@ static WRITE8_HANDLER( brickzn_palettebank_w )
---- --1- Ram Bank
---- ---0 Flip Screen
*/
-static WRITE8_HANDLER( brickzn_spritebank_w )
+WRITE8_MEMBER(suna8_state::brickzn_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = (data >> 1) & 1;
- if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
- flip_screen_set(space->machine(), data & 0x01 );
+ m_spritebank = (data >> 1) & 1;
+ if (data & ~0x03) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
+ flip_screen_set(machine(), data & 0x01 );
}
-static WRITE8_HANDLER( brickzn_unknown_w )
+WRITE8_MEMBER(suna8_state::brickzn_unknown_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_unknown = data;
+ m_unknown = data;
}
/*
7654 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( brickzn_rombank_w )
+WRITE8_MEMBER(suna8_state::brickzn_rombank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
int bank = data & 0x0f;
- if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
- state->m_rombank = data;
+ memory_set_bank(machine(), "bank1", bank);
+ m_rombank = data;
}
static ADDRESS_MAP_START( brickzn_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM // ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
- AM_RANGE(0xc040, 0xc040) AM_WRITE_LEGACY(brickzn_rombank_w ) // ROM Bank
- AM_RANGE(0xc060, 0xc060) AM_WRITE_LEGACY(brickzn_spritebank_w ) // Sprite RAM Bank + Flip Screen
- AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE_LEGACY(brickzn_palettebank_w ) // Palette RAM Bank + ?
- AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE_LEGACY(brickzn_unknown_w ) // ???
+ AM_RANGE(0xc040, 0xc040) AM_WRITE(brickzn_rombank_w ) // ROM Bank
+ AM_RANGE(0xc060, 0xc060) AM_WRITE(brickzn_spritebank_w ) // Sprite RAM Bank + Flip Screen
+ AM_RANGE(0xc0a0, 0xc0a0) AM_WRITE(brickzn_palettebank_w ) // Palette RAM Bank + ?
+ AM_RANGE(0xc0c0, 0xc0c0) AM_WRITE(brickzn_unknown_w ) // ???
AM_RANGE(0xc100, 0xc100) AM_READ_PORT("P1") // P1 (Buttons)
AM_RANGE(0xc101, 0xc101) AM_READ_PORT("P2") // P2
AM_RANGE(0xc102, 0xc102) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc103, 0xc103) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc108, 0xc108) AM_READ_PORT("TRACK1") // P1 (Analog)
AM_RANGE(0xc10c, 0xc10c) AM_READ_PORT("TRACK2") // P2
- AM_RANGE(0xc140, 0xc140) AM_READ_LEGACY(brickzn_c140_r) // ???
+ AM_RANGE(0xc140, 0xc140) AM_READ(brickzn_c140_r) // ???
AM_RANGE(0xc600, 0xc7ff) AM_READWRITE_LEGACY(suna8_banked_paletteram_r, brickzn_banked_paletteram_w) // Palette (Banked)
AM_RANGE(0xc800, 0xdfff) AM_RAM // RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
@@ -687,30 +680,29 @@ ADDRESS_MAP_END
***************************************************************************/
/* Probably wrong: */
-static WRITE8_HANDLER( hardhea2_nmi_w )
+WRITE8_MEMBER(suna8_state::hardhea2_nmi_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_nmi_enable = data & 0x01;
-// if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown nmi bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_nmi_enable = data & 0x01;
+// if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown nmi bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
7654 321-
---- ---0 Flip Screen
*/
-static WRITE8_HANDLER( hardhea2_flipscreen_w )
+WRITE8_MEMBER(suna8_state::hardhea2_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x01);
- if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space->device()),data);
+ flip_screen_set(machine(), data & 0x01);
+ if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( hardhea2_leds_w )
+WRITE8_MEMBER(suna8_state::hardhea2_leds_w)
{
- set_led_status(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 1, data & 0x02);
- coin_counter_w(space->machine(), 0, data & 0x04);
- if (data & ~0x07) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space->device()),data);
+ set_led_status(machine(), 0, data & 0x01);
+ set_led_status(machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x04);
+ if (data & ~0x07) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
@@ -718,51 +710,47 @@ static WRITE8_HANDLER( hardhea2_leds_w )
---- --1- Ram Bank
---- ---0 Ram Bank?
*/
-static WRITE8_HANDLER( hardhea2_spritebank_w )
+WRITE8_MEMBER(suna8_state::hardhea2_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = (data >> 1) & 1;
- if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_spritebank = (data >> 1) & 1;
+ if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
7654 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( hardhea2_rombank_w )
+WRITE8_MEMBER(suna8_state::hardhea2_rombank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
int bank = data & 0x0f;
- if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
+ memory_set_bank(machine(), "bank1", bank);
- state->m_rombank = data;
+ m_rombank = data;
}
-static WRITE8_HANDLER( hardhea2_spritebank_0_w )
+WRITE8_MEMBER(suna8_state::hardhea2_spritebank_0_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = 0;
+ m_spritebank = 0;
}
-static WRITE8_HANDLER( hardhea2_spritebank_1_w )
+WRITE8_MEMBER(suna8_state::hardhea2_spritebank_1_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = 1;
+ m_spritebank = 1;
}
-static WRITE8_HANDLER( hardhea2_rambank_0_w )
+WRITE8_MEMBER(suna8_state::hardhea2_rambank_0_w)
{
- memory_set_bank(space->machine(), "bank2", 0);
+ memory_set_bank(machine(), "bank2", 0);
}
-static WRITE8_HANDLER( hardhea2_rambank_1_w )
+WRITE8_MEMBER(suna8_state::hardhea2_rambank_1_w)
{
- memory_set_bank(space->machine(), "bank2", 1);
+ memory_set_bank(machine(), "bank2", 1);
}
@@ -774,31 +762,31 @@ static ADDRESS_MAP_START( hardhea2_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc080, 0xc080) AM_READ_PORT("BUTTONS") // vblank?
- AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(hardhea2_spritebank_w ) // Sprite RAM Bank
- AM_RANGE(0xc280, 0xc280) AM_WRITE_LEGACY(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
+ AM_RANGE(0xc200, 0xc200) AM_WRITE(hardhea2_spritebank_w ) // Sprite RAM Bank
+ AM_RANGE(0xc280, 0xc280) AM_WRITE(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
// *** Protection
- AM_RANGE(0xc28c, 0xc28c) AM_WRITE_LEGACY(hardhea2_rombank_w )
+ AM_RANGE(0xc28c, 0xc28c) AM_WRITE(hardhea2_rombank_w )
// Protection ***
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(hardhea2_flipscreen_w ) // Flip Screen
- AM_RANGE(0xc380, 0xc380) AM_WRITE_LEGACY(hardhea2_nmi_w ) // ? NMI related ?
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(hardhea2_leds_w ) // Leds + Coin Counter
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen
+ AM_RANGE(0xc380, 0xc380) AM_WRITE(hardhea2_nmi_w ) // ? NMI related ?
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter
AM_RANGE(0xc480, 0xc480) AM_WRITENOP // ~ROM Bank
AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
// *** Protection
- AM_RANGE(0xc50f, 0xc50f) AM_WRITE_LEGACY(hardhea2_spritebank_1_w )
- AM_RANGE(0xc508, 0xc508) AM_WRITE_LEGACY(hardhea2_spritebank_0_w )
+ AM_RANGE(0xc50f, 0xc50f) AM_WRITE(hardhea2_spritebank_1_w )
+ AM_RANGE(0xc508, 0xc508) AM_WRITE(hardhea2_spritebank_0_w )
- AM_RANGE(0xc507, 0xc507) AM_WRITE_LEGACY(hardhea2_rambank_1_w )
- AM_RANGE(0xc522, 0xc522) AM_WRITE_LEGACY(hardhea2_rambank_0_w )
+ AM_RANGE(0xc507, 0xc507) AM_WRITE(hardhea2_rambank_1_w )
+ AM_RANGE(0xc522, 0xc522) AM_WRITE(hardhea2_rambank_0_w )
- AM_RANGE(0xc556, 0xc556) AM_WRITE_LEGACY(hardhea2_rambank_1_w )
- AM_RANGE(0xc528, 0xc528) AM_WRITE_LEGACY(hardhea2_rambank_0_w )
+ AM_RANGE(0xc556, 0xc556) AM_WRITE(hardhea2_rambank_1_w )
+ AM_RANGE(0xc528, 0xc528) AM_WRITE(hardhea2_rambank_0_w )
- AM_RANGE(0xc560, 0xc560) AM_WRITE_LEGACY(hardhea2_rambank_1_w )
- AM_RANGE(0xc533, 0xc533) AM_WRITE_LEGACY(hardhea2_rambank_0_w )
+ AM_RANGE(0xc560, 0xc560) AM_WRITE(hardhea2_rambank_1_w )
+ AM_RANGE(0xc533, 0xc533) AM_WRITE(hardhea2_rambank_0_w )
// Protection ***
AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram ) // Palette (Banked??)
@@ -811,19 +799,17 @@ ADDRESS_MAP_END
Star Fighter
***************************************************************************/
-static WRITE8_HANDLER( starfigh_spritebank_latch_w )
+WRITE8_MEMBER(suna8_state::starfigh_spritebank_latch_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank_latch = (data >> 2) & 1;
- if (data & ~0x04) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_spritebank_latch = (data >> 2) & 1;
+ if (data & ~0x04) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( starfigh_spritebank_w )
+WRITE8_MEMBER(suna8_state::starfigh_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_spritebank = state->m_spritebank_latch;
+ m_spritebank = m_spritebank_latch;
}
static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state )
@@ -833,11 +819,11 @@ static ADDRESS_MAP_START( starfigh_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("P2") // P2
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW2") // DSW 2
- AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(starfigh_spritebank_w ) // Sprite RAM Bank
- AM_RANGE(0xc380, 0xc3ff) AM_WRITE_LEGACY(starfigh_spritebank_latch_w ) // Sprite RAM Bank
- AM_RANGE(0xc280, 0xc280) AM_WRITE_LEGACY(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(hardhea2_flipscreen_w ) // Flip Screen
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(hardhea2_leds_w ) // Leds + Coin Counter
+ AM_RANGE(0xc200, 0xc200) AM_WRITE(starfigh_spritebank_w ) // Sprite RAM Bank
+ AM_RANGE(0xc380, 0xc3ff) AM_WRITE(starfigh_spritebank_latch_w ) // Sprite RAM Bank
+ AM_RANGE(0xc280, 0xc280) AM_WRITE(hardhea2_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(hardhea2_flipscreen_w ) // Flip Screen
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(hardhea2_leds_w ) // Leds + Coin Counter
AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
AM_RANGE(0xc600, 0xc7ff) AM_READWRITE_LEGACY(suna8_banked_paletteram_r, paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram ) // Palette (Banked??)
AM_RANGE(0xc800, 0xdfff) AM_RAM // RAM
@@ -869,51 +855,49 @@ Thrash protection code snippet:
*/
/* This is a command-based protection. */
-static WRITE8_HANDLER( sparkman_cmd_prot_w )
+WRITE8_MEMBER(suna8_state::sparkman_cmd_prot_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
switch(data)
{
- case 0xa6: state->m_nmi_enable = 1; break;
- case 0x00: state->m_nmi_enable = 0; break;
- case 0x18: state->m_trash_prot = 0; break;
- case 0xce: state->m_trash_prot = 0; break;
- case 0x81: state->m_trash_prot = 1; break;
- case 0x99: state->m_trash_prot = 1; break;
- case 0x54: state->m_spritebank = 1; break;
- default: logerror("CPU #0 - PC %04X: unknown protection command: %02X\n",cpu_get_pc(&space->device()),data);
+ case 0xa6: m_nmi_enable = 1; break;
+ case 0x00: m_nmi_enable = 0; break;
+ case 0x18: m_trash_prot = 0; break;
+ case 0xce: m_trash_prot = 0; break;
+ case 0x81: m_trash_prot = 1; break;
+ case 0x99: m_trash_prot = 1; break;
+ case 0x54: m_spritebank = 1; break;
+ default: logerror("CPU #0 - PC %04X: unknown protection command: %02X\n",cpu_get_pc(&space.device()),data);
}
}
-static WRITE8_HANDLER( suna8_wram_w )
+WRITE8_MEMBER(suna8_state::suna8_wram_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- if (!state->m_trash_prot)
- state->m_wram[offset] = data;
+ if (!m_trash_prot)
+ m_wram[offset] = data;
}
/*
7654 321-
---- ---0 Flip Screen
*/
-static WRITE8_HANDLER( sparkman_flipscreen_w )
+WRITE8_MEMBER(suna8_state::sparkman_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 0x01);
- //if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space->device()),data);
+ flip_screen_set(machine(), data & 0x01);
+ //if (data & ~0x01) logerror("CPU #0 - PC %04X: unknown flipscreen bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( sparkman_leds_w )
+WRITE8_MEMBER(suna8_state::sparkman_leds_w)
{
- set_led_status(space->machine(), 0, data & 0x01);
- set_led_status(space->machine(), 1, data & 0x02);
- //if (data & ~0x03) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space->device()),data);
+ set_led_status(machine(), 0, data & 0x01);
+ set_led_status(machine(), 1, data & 0x02);
+ //if (data & ~0x03) logerror("CPU#0 - PC %06X: unknown leds bits: %02X\n",cpu_get_pc(&space.device()),data);
}
-static WRITE8_HANDLER( sparkman_coin_counter_w )
+WRITE8_MEMBER(suna8_state::sparkman_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 0, data & 0x01);
}
/*
@@ -921,43 +905,40 @@ static WRITE8_HANDLER( sparkman_coin_counter_w )
---- --1- Ram Bank
---- ---0 Ram Bank?
*/
-static WRITE8_HANDLER( sparkman_spritebank_w )
+WRITE8_MEMBER(suna8_state::sparkman_spritebank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
if(data == 0xf7) //???
- state->m_spritebank = 0;
+ m_spritebank = 0;
else
- state->m_spritebank = (data) & 1;
- //if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ m_spritebank = (data) & 1;
+ //if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown spritebank bits: %02X\n",cpu_get_pc(&space.device()),data);
}
/*
7654 ----
---- 3210 ROM Bank
*/
-static WRITE8_HANDLER( sparkman_rombank_w )
+WRITE8_MEMBER(suna8_state::sparkman_rombank_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
int bank = data & 0x0f;
- //if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space->device()),data);
+ //if (data & ~0x0f) logerror("CPU #0 - PC %04X: unknown rom bank bits: %02X\n",cpu_get_pc(&space.device()),data);
- memory_set_bank(space->machine(), "bank1", bank);
- state->m_rombank = data;
+ memory_set_bank(machine(), "bank1", bank);
+ m_rombank = data;
}
-static READ8_HANDLER( sparkman_c0a3_r )
+READ8_MEMBER(suna8_state::sparkman_c0a3_r)
{
- return (space->machine().primary_screen->frame_number() & 1) ? 0x80 : 0;
+ return (machine().primary_screen->frame_number() & 1) ? 0x80 : 0;
}
#if 0
-static WRITE8_HANDLER( sparkman_en_trash_w )
+WRITE8_MEMBER(suna8_state::sparkman_en_trash_w)
{
- suna8_state *state = space->machine().driver_data<suna8_state>();
- state->m_trash_prot = 1;
+ m_trash_prot = 1;
}
#endif
@@ -969,16 +950,16 @@ static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state )
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("DSW1") // DSW 1
AM_RANGE(0xc003, 0xc003) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0xc080, 0xc080) AM_READ_PORT("BUTTONS") // Buttons
- AM_RANGE(0xc0a3, 0xc0a3) AM_READ_LEGACY(sparkman_c0a3_r ) // ???
- AM_RANGE(0xc200, 0xc200) AM_WRITE_LEGACY(sparkman_spritebank_w ) // Sprite RAM Bank
- AM_RANGE(0xc280, 0xc280) AM_WRITE_LEGACY(sparkman_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
- AM_RANGE(0xc300, 0xc300) AM_WRITE_LEGACY(sparkman_flipscreen_w ) // Flip Screen
- AM_RANGE(0xc380, 0xc3ff) AM_WRITE_LEGACY(sparkman_cmd_prot_w ) // Protection
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(sparkman_leds_w ) // Leds
- AM_RANGE(0xc480, 0xc480) AM_WRITE_LEGACY(sparkman_coin_counter_w ) // Coin Counter
+ AM_RANGE(0xc0a3, 0xc0a3) AM_READ(sparkman_c0a3_r ) // ???
+ AM_RANGE(0xc200, 0xc200) AM_WRITE(sparkman_spritebank_w ) // Sprite RAM Bank
+ AM_RANGE(0xc280, 0xc280) AM_WRITE(sparkman_rombank_w ) // ROM Bank (?mirrored up to c2ff?)
+ AM_RANGE(0xc300, 0xc300) AM_WRITE(sparkman_flipscreen_w ) // Flip Screen
+ AM_RANGE(0xc380, 0xc3ff) AM_WRITE(sparkman_cmd_prot_w ) // Protection
+ AM_RANGE(0xc400, 0xc400) AM_WRITE(sparkman_leds_w ) // Leds
+ AM_RANGE(0xc480, 0xc480) AM_WRITE(sparkman_coin_counter_w ) // Coin Counter
AM_RANGE(0xc500, 0xc500) AM_WRITE_LEGACY(soundlatch_w ) // To Sound CPU
AM_RANGE(0xc600, 0xc7ff) AM_RAM_WRITE_LEGACY(paletteram_RRRRGGGGBBBBxxxx_be_w) AM_BASE_GENERIC(paletteram ) // Palette (Banked??)
- AM_RANGE(0xc800, 0xdfff) AM_RAM_WRITE_LEGACY(suna8_wram_w) AM_BASE(m_wram) // RAM
+ AM_RANGE(0xc800, 0xdfff) AM_RAM_WRITE(suna8_wram_w) AM_BASE(m_wram) // RAM
AM_RANGE(0xe000, 0xffff) AM_READWRITE_LEGACY(suna8_banked_spriteram_r, suna8_banked_spriteram_w) // Sprites (Banked)
ADDRESS_MAP_END
@@ -1047,17 +1028,17 @@ static ADDRESS_MAP_START( brickzn_pcm_map, AS_PROGRAM, 8, suna8_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( brickzn_pcm_w )
+WRITE8_MEMBER(suna8_state::brickzn_pcm_w)
{
static const char *const dacs[] = { "dac1", "dac2", "dac3", "dac4" };
- dac_signed_data_w( space->machine().device(dacs[offset & 3]), (data & 0xf) * 0x11 );
+ dac_signed_data_w( machine().device(dacs[offset & 3]), (data & 0xf) * 0x11 );
}
static ADDRESS_MAP_START( brickzn_pcm_io_map, AS_IO, 8, suna8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_LEGACY(soundlatch2_r ) // From Sound CPU
- AM_RANGE(0x00, 0x03) AM_WRITE_LEGACY(brickzn_pcm_w ) // 4 x DAC
+ AM_RANGE(0x00, 0x03) AM_WRITE(brickzn_pcm_w ) // 4 x DAC
ADDRESS_MAP_END
/***************************************************************************
@@ -1697,8 +1678,9 @@ static TIMER_DEVICE_CALLBACK( hardhea2_interrupt )
static MACHINE_RESET( hardhea2 )
{
+ suna8_state *state = machine.driver_data<suna8_state>();
address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- hardhea2_rambank_0_w(space,0,0);
+ state->hardhea2_rambank_0_w(*space,0,0);
}
static MACHINE_CONFIG_DERIVED( hardhea2, brickzn )
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index bf33d373d8f..7692976649f 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -31,30 +31,29 @@ down hardware (it doesn't write any good sound data btw, mostly zeros).
/******************************************************************************/
-static READ16_HANDLER( supbtime_controls_r )
+READ16_MEMBER(supbtime_state::supbtime_controls_r)
{
switch (offset << 1)
{
case 0:
- return input_port_read(space->machine(), "INPUTS");
+ return input_port_read(machine(), "INPUTS");
case 2:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 8:
- return input_port_read(space->machine(), "COIN");
+ return input_port_read(machine(), "COIN");
case 10: /* ? Not used for anything */
case 12:
return 0;
}
- logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", cpu_get_pc(&space.device()), offset);
return ~0;
}
-static WRITE16_HANDLER( sound_w )
+WRITE16_MEMBER(supbtime_state::sound_w)
{
- supbtime_state *state = space->machine().driver_data<supbtime_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
/******************************************************************************/
@@ -66,9 +65,9 @@ static ADDRESS_MAP_START( supbtime_map, AS_PROGRAM, 16, supbtime_state )
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x120800, 0x13ffff) AM_WRITENOP /* Nothing there */
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(supbtime_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(supbtime_controls_r)
AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP
- AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE_LEGACY(sound_w)
+ AM_RANGE(0x1a0000, 0x1a0001) AM_WRITE(sound_w)
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_r, deco16ic_pf_control_w)
AM_RANGE(0x320000, 0x321fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x322000, 0x323fff) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
@@ -78,10 +77,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( chinatwn_map, AS_PROGRAM, 16, supbtime_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(sound_w)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(sound_w)
AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(supbtime_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(supbtime_controls_r)
AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE_LEGACY("tilegen1", deco16ic_pf_control_r, deco16ic_pf_control_w)
diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c
index 86d0c8ada42..5c61d6ea732 100644
--- a/src/mame/drivers/superchs.c
+++ b/src/mame/drivers/superchs.c
@@ -47,30 +47,28 @@
/*********************************************************************/
-static READ16_HANDLER( shared_ram_r )
+READ16_MEMBER(superchs_state::shared_ram_r)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
- if ((offset&1)==0) return (state->m_shared_ram[offset/2]&0xffff0000)>>16;
- return (state->m_shared_ram[offset/2]&0x0000ffff);
+ if ((offset&1)==0) return (m_shared_ram[offset/2]&0xffff0000)>>16;
+ return (m_shared_ram[offset/2]&0x0000ffff);
}
-static WRITE16_HANDLER( shared_ram_w )
+WRITE16_MEMBER(superchs_state::shared_ram_w)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
if ((offset&1)==0) {
if (ACCESSING_BITS_8_15)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0x00ffffff)|((data&0xff00)<<16);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0x00ffffff)|((data&0xff00)<<16);
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0xff00ffff)|((data&0x00ff)<<16);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0xff00ffff)|((data&0x00ff)<<16);
} else {
if (ACCESSING_BITS_8_15)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0xffff00ff)|((data&0xff00)<< 0);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0xffff00ff)|((data&0xff00)<< 0);
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0xffffff00)|((data&0x00ff)<< 0);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0xffffff00)|((data&0x00ff)<< 0);
}
}
-static WRITE32_HANDLER( cpua_ctrl_w )
+WRITE32_MEMBER(superchs_state::cpua_ctrl_w)
{
/*
CPUA writes 0x00, 22, 72, f2 in that order.
@@ -83,8 +81,8 @@ static WRITE32_HANDLER( cpua_ctrl_w )
if (ACCESSING_BITS_8_15)
{
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, (data &0x200) ? CLEAR_LINE : ASSERT_LINE);
- if (data&0x8000) cputag_set_input_line(space->machine(), "maincpu", 3, HOLD_LINE); /* Guess */
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, (data &0x200) ? CLEAR_LINE : ASSERT_LINE);
+ if (data&0x8000) cputag_set_input_line(machine(), "maincpu", 3, HOLD_LINE); /* Guess */
}
if (ACCESSING_BITS_0_7)
@@ -93,43 +91,41 @@ static WRITE32_HANDLER( cpua_ctrl_w )
}
}
-static WRITE32_HANDLER( superchs_palette_w )
+WRITE32_MEMBER(superchs_state::superchs_palette_w)
{
int a,r,g,b;
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
- a = space->machine().generic.paletteram.u32[offset];
+ a = machine().generic.paletteram.u32[offset];
r = (a &0xff0000) >> 16;
g = (a &0xff00) >> 8;
b = (a &0xff);
- palette_set_color(space->machine(),offset,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),offset,MAKE_RGB(r,g,b));
}
-static READ32_HANDLER( superchs_input_r )
+READ32_MEMBER(superchs_state::superchs_input_r)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
switch (offset)
{
case 0x00:
- return input_port_read(space->machine(), "INPUTS");
+ return input_port_read(machine(), "INPUTS");
case 0x01:
- return state->m_coin_word<<16;
+ return m_coin_word<<16;
}
return 0xffffffff;
}
-static WRITE32_HANDLER( superchs_input_w )
+WRITE32_MEMBER(superchs_state::superchs_input_w)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
#if 0
{
char t[64];
- COMBINE_DATA(&state->m_mem[offset]);
- sprintf(t,"%08x %08x",state->m_mem[0],state->m_mem[1]);
+ COMBINE_DATA(&m_mem[offset]);
+ sprintf(t,"%08x %08x",m_mem[0],m_mem[1]);
//popmessage(t);
}
#endif
@@ -140,12 +136,12 @@ static WRITE32_HANDLER( superchs_input_w )
{
if (ACCESSING_BITS_24_31) /* $300000 is watchdog */
{
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
}
if (ACCESSING_BITS_0_7)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x40);
eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
@@ -161,25 +157,24 @@ static WRITE32_HANDLER( superchs_input_w )
{
if (ACCESSING_BITS_24_31)
{
- coin_lockout_w(space->machine(), 0,~data & 0x01000000);
- coin_lockout_w(space->machine(), 1,~data & 0x02000000);
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x08000000);
- state->m_coin_word=(data >> 16) &0xffff;
+ coin_lockout_w(machine(), 0,~data & 0x01000000);
+ coin_lockout_w(machine(), 1,~data & 0x02000000);
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x08000000);
+ m_coin_word=(data >> 16) &0xffff;
}
}
}
}
-static READ32_HANDLER( superchs_stick_r )
+READ32_MEMBER(superchs_state::superchs_stick_r)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
- int fake = input_port_read(space->machine(), "FAKE");
+ int fake = input_port_read(machine(), "FAKE");
int accel;
if (!(fake &0x10)) /* Analogue steer (the real control method) */
{
- state->m_steer = input_port_read(space->machine(), "WHEEL");
+ m_steer = input_port_read(machine(), "WHEEL");
}
else /* Digital steer, with smoothing - speed depends on how often stick_r is called */
{
@@ -188,10 +183,10 @@ static READ32_HANDLER( superchs_stick_r )
if (fake &0x04) goal = 0xff; /* pressing left */
if (fake &0x08) goal = 0x0; /* pressing right */
- if (state->m_steer!=goal)
+ if (m_steer!=goal)
{
- delta = goal - state->m_steer;
- if (state->m_steer < goal)
+ delta = goal - m_steer;
+ if (m_steer < goal)
{
if (delta >2) delta = 2;
}
@@ -199,27 +194,27 @@ static READ32_HANDLER( superchs_stick_r )
{
if (delta < (-2)) delta = -2;
}
- state->m_steer += delta;
+ m_steer += delta;
}
}
/* Accelerator is an analogue input but the game treats it as digital (on/off) */
- if (input_port_read(space->machine(), "FAKE") & 0x1) /* pressing B1 */
+ if (input_port_read(machine(), "FAKE") & 0x1) /* pressing B1 */
accel = 0x0;
else
accel = 0xff;
/* Todo: Verify brake - and figure out other input */
- return (state->m_steer << 24) | (accel << 16) | (input_port_read(space->machine(), "SOUND") << 8) | input_port_read(space->machine(), "UNKNOWN");
+ return (m_steer << 24) | (accel << 16) | (input_port_read(machine(), "SOUND") << 8) | input_port_read(machine(), "UNKNOWN");
}
-static WRITE32_HANDLER( superchs_stick_w )
+WRITE32_MEMBER(superchs_state::superchs_stick_w)
{
/* This is guess work - the interrupts are in groups of 4, with each writing to a
different byte in this long word before the RTE. I assume all but the last
(top) byte cause an IRQ with the final one being an ACK. (Total guess but it works). */
if (mem_mask != 0xff000000)
- cputag_set_input_line(space->machine(), "maincpu", 3, HOLD_LINE);
+ cputag_set_input_line(machine(), "maincpu", 3, HOLD_LINE);
}
/***********************************************************
@@ -233,18 +228,18 @@ static ADDRESS_MAP_START( superchs_map, AS_PROGRAM, 32, superchs_state )
AM_RANGE(0x180000, 0x18ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_long_r, tc0480scp_long_w)
AM_RANGE(0x1b0000, 0x1b002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w)
AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_BASE(m_shared_ram)
- AM_RANGE(0x240000, 0x240003) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x280000, 0x287fff) AM_RAM_WRITE_LEGACY(superchs_palette_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x240000, 0x240003) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x280000, 0x287fff) AM_RAM_WRITE(superchs_palette_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x2c0000, 0x2c07ff) AM_RAM AM_SHARE("f3_shared")
- AM_RANGE(0x300000, 0x300007) AM_READWRITE_LEGACY(superchs_input_r, superchs_input_w) /* eerom etc. */
- AM_RANGE(0x340000, 0x340003) AM_READWRITE_LEGACY(superchs_stick_r, superchs_stick_w) /* stick int request */
+ AM_RANGE(0x300000, 0x300007) AM_READWRITE(superchs_input_r, superchs_input_w) /* eerom etc. */
+ AM_RANGE(0x340000, 0x340003) AM_READWRITE(superchs_stick_r, superchs_stick_w) /* stick int request */
ADDRESS_MAP_END
static ADDRESS_MAP_START( superchs_cpub_map, AS_PROGRAM, 16, superchs_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x600000, 0x60ffff) AM_DEVWRITE_LEGACY("tc0480scp", tc0480scp_word_w) /* Only written upon errors */
- AM_RANGE(0x800000, 0x80ffff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(shared_ram_r, shared_ram_w)
AM_RANGE(0xa00000, 0xa001ff) AM_RAM /* Extra road control?? */
ADDRESS_MAP_END
@@ -479,29 +474,28 @@ ROM_START( superchsj )
ROM_LOAD( "eeprom-superchs.bin", 0x0000, 0x0080, CRC(230f0753) SHA1(4c692b35083da71ed866b233c7c9b152a914c95c) )
ROM_END
-static READ32_HANDLER( main_cycle_r )
+READ32_MEMBER(superchs_state::main_cycle_r)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
- if (cpu_get_pc(&space->device())==0x702)
- device_spin_until_interrupt(&space->device());
+ if (cpu_get_pc(&space.device())==0x702)
+ device_spin_until_interrupt(&space.device());
- return state->m_ram[0];
+ return m_ram[0];
}
-static READ16_HANDLER( sub_cycle_r )
+READ16_MEMBER(superchs_state::sub_cycle_r)
{
- superchs_state *state = space->machine().driver_data<superchs_state>();
- if (cpu_get_pc(&space->device())==0x454)
- device_spin_until_interrupt(&space->device());
+ if (cpu_get_pc(&space.device())==0x454)
+ device_spin_until_interrupt(&space.device());
- return state->m_ram[2]&0xffff;
+ return m_ram[2]&0xffff;
}
static DRIVER_INIT( superchs )
{
/* Speedup handlers */
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x100000, 0x100003, FUNC(main_cycle_r));
- machine.device("sub")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x80000a, 0x80000b, FUNC(sub_cycle_r));
+ superchs_state *state = machine.driver_data<superchs_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x100000, 0x100003, read32_delegate(FUNC(superchs_state::main_cycle_r),state));
+ machine.device("sub")->memory().space(AS_PROGRAM)->install_read_handler(0x80000a, 0x80000b, read16_delegate(FUNC(superchs_state::sub_cycle_r),state));
}
GAMEL( 1992, superchs, 0, superchs, superchs, superchs, ROT0, "Taito America Corporation", "Super Chase - Criminal Termination (US)", 0, layout_superchs )
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index 17228bda5fc..1532efcbc11 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -121,12 +121,11 @@ static SAMPLES_START( pbillian_sh_start )
state->m_samplebuf[i] = (INT8)(src[i] ^ 0x80) * 256;
}
-static WRITE8_HANDLER( pbillian_sample_trigger_w )
+WRITE8_MEMBER(superqix_state::pbillian_sample_trigger_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- samples_device *samples = space->machine().device<samples_device>("samples");
- UINT8 *src = space->machine().region("samples")->base();
- int len = space->machine().region("samples")->bytes();
+ samples_device *samples = machine().device<samples_device>("samples");
+ UINT8 *src = machine().region("samples")->base();
+ int len = machine().region("samples")->bytes();
int start,end;
start = data << 7;
@@ -135,7 +134,7 @@ static WRITE8_HANDLER( pbillian_sample_trigger_w )
while (end < len && src[end] != 0xff)
end++;
- samples->start_raw(0, state->m_samplebuf + start, end - start, 5000); // 5khz ?
+ samples->start_raw(0, m_samplebuf + start, end - start, 5000); // 5khz ?
}
@@ -193,9 +192,9 @@ static TIMER_CALLBACK( mcu_acknowledge_callback )
// logerror("Z80->MCU %02x\n",state->m_from_z80);
}
-static READ8_HANDLER( mcu_acknowledge_r )
+READ8_MEMBER(superqix_state::mcu_acknowledge_r)
{
- space->machine().scheduler().synchronize(FUNC(mcu_acknowledge_callback));
+ machine().scheduler().synchronize(FUNC(mcu_acknowledge_callback));
return 0;
}
@@ -206,127 +205,121 @@ static WRITE8_DEVICE_HANDLER( sqix_z80_mcu_w )
state->m_portb = data;
}
-static WRITE8_HANDLER( bootleg_mcu_p1_w )
+WRITE8_MEMBER(superqix_state::bootleg_mcu_p1_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
switch ((data & 0x0e) >> 1)
{
case 0:
// ???
break;
case 1:
- coin_counter_w(space->machine(), 0,data & 1);
+ coin_counter_w(machine(), 0,data & 1);
break;
case 2:
- coin_counter_w(space->machine(), 1,data & 1);
+ coin_counter_w(machine(), 1,data & 1);
break;
case 3:
- coin_lockout_global_w(space->machine(), (data & 1) ^ state->m_invert_coin_lockout);
+ coin_lockout_global_w(machine(), (data & 1) ^ m_invert_coin_lockout);
break;
case 4:
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
break;
case 5:
- state->m_port1 = data;
- if ((state->m_port1 & 0x80) == 0)
+ m_port1 = data;
+ if ((m_port1 & 0x80) == 0)
{
- state->m_port3_latch = state->m_port3;
+ m_port3_latch = m_port3;
}
break;
case 6:
- state->m_from_mcu_pending = 0; // ????
+ m_from_mcu_pending = 0; // ????
break;
case 7:
if ((data & 1) == 0)
{
-// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space->device()),state->m_port3);
- state->m_from_mcu = state->m_port3_latch;
- state->m_from_mcu_pending = 1;
- state->m_from_z80_pending = 0; // ????
+// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space.device()),m_port3);
+ m_from_mcu = m_port3_latch;
+ m_from_mcu_pending = 1;
+ m_from_z80_pending = 0; // ????
}
break;
}
}
-static WRITE8_HANDLER( mcu_p3_w )
+WRITE8_MEMBER(superqix_state::mcu_p3_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- state->m_port3 = data;
+ m_port3 = data;
}
-static READ8_HANDLER( bootleg_mcu_p3_r )
+READ8_MEMBER(superqix_state::bootleg_mcu_p3_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- if ((state->m_port1 & 0x10) == 0)
+ if ((m_port1 & 0x10) == 0)
{
- return input_port_read(space->machine(), "DSW1");
+ return input_port_read(machine(), "DSW1");
}
- else if ((state->m_port1 & 0x20) == 0)
+ else if ((m_port1 & 0x20) == 0)
{
- return input_port_read(space->machine(), "SYSTEM") | (state->m_from_mcu_pending << 6) | (state->m_from_z80_pending << 7);
+ return input_port_read(machine(), "SYSTEM") | (m_from_mcu_pending << 6) | (m_from_z80_pending << 7);
}
- else if ((state->m_port1 & 0x40) == 0)
+ else if ((m_port1 & 0x40) == 0)
{
-// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
- state->m_from_z80_pending = 0;
- return state->m_from_z80;
+// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space.device()),m_from_z80);
+ m_from_z80_pending = 0;
+ return m_from_z80;
}
return 0;
}
-static READ8_HANDLER( sqixu_mcu_p0_r )
+READ8_MEMBER(superqix_state::sqixu_mcu_p0_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- return input_port_read(space->machine(), "SYSTEM") | (state->m_from_mcu_pending << 6) | (state->m_from_z80_pending << 7);
+ return input_port_read(machine(), "SYSTEM") | (m_from_mcu_pending << 6) | (m_from_z80_pending << 7);
}
-static WRITE8_HANDLER( sqixu_mcu_p2_w )
+WRITE8_MEMBER(superqix_state::sqixu_mcu_p2_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
// bit 0 = unknown (clocked often)
// bit 1 = coin cointer 1
- coin_counter_w(space->machine(), 0,data & 2);
+ coin_counter_w(machine(), 0,data & 2);
// bit 2 = coin counter 2
- coin_counter_w(space->machine(), 1,data & 4);
+ coin_counter_w(machine(), 1,data & 4);
// bit 3 = coin lockout
- coin_lockout_global_w(space->machine(), ~data & 8);
+ coin_lockout_global_w(machine(), ~data & 8);
// bit 4 = flip screen
- flip_screen_set(space->machine(), data & 0x10);
+ flip_screen_set(machine(), data & 0x10);
// bit 5 = unknown (set on startup)
// bit 6 = unknown
if ((data & 0x40) == 0)
- state->m_from_mcu_pending = 0; // ????
+ m_from_mcu_pending = 0; // ????
// bit 7 = clock latch from port 3 to Z80
- if ((state->m_port2 & 0x80) != 0 && (data & 0x80) == 0)
+ if ((m_port2 & 0x80) != 0 && (data & 0x80) == 0)
{
-// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space->device()),state->m_port3);
- state->m_from_mcu = state->m_port3;
- state->m_from_mcu_pending = 1;
- state->m_from_z80_pending = 0; // ????
+// logerror("%04x: MCU -> Z80 %02x\n",cpu_get_pc(&space.device()),m_port3);
+ m_from_mcu = m_port3;
+ m_from_mcu_pending = 1;
+ m_from_z80_pending = 0; // ????
}
- state->m_port2 = data;
+ m_port2 = data;
}
-static READ8_HANDLER( sqixu_mcu_p3_r )
+READ8_MEMBER(superqix_state::sqixu_mcu_p3_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
-// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
- state->m_from_z80_pending = 0;
- return state->m_from_z80;
+// logerror("%04x: read Z80 command %02x\n",cpu_get_pc(&space.device()),m_from_z80);
+ m_from_z80_pending = 0;
+ return m_from_z80;
}
-static READ8_HANDLER( nmi_ack_r )
+READ8_MEMBER(superqix_state::nmi_ack_r)
{
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
return 0;
}
@@ -335,9 +328,9 @@ static READ8_DEVICE_HANDLER( bootleg_in0_r )
return BITSWAP8(input_port_read(device->machine(), "DSW1"), 0,1,2,3,4,5,6,7);
}
-static WRITE8_HANDLER( bootleg_flipscreen_w )
+WRITE8_MEMBER(superqix_state::bootleg_flipscreen_w)
{
- flip_screen_set(space->machine(), ~data & 1);
+ flip_screen_set(machine(), ~data & 1);
}
@@ -411,79 +404,74 @@ static TIMER_CALLBACK( delayed_mcu_z80_w )
*/
-static READ8_HANDLER( hotsmash_68705_portA_r )
+READ8_MEMBER(superqix_state::hotsmash_68705_portA_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
-// logerror("%04x: 68705 reads port A = %02x\n",cpu_get_pc(&space->device()),state->m_portA_in);
- return state->m_portA_in;
+// logerror("%04x: 68705 reads port A = %02x\n",cpu_get_pc(&space.device()),m_portA_in);
+ return m_portA_in;
}
-static WRITE8_HANDLER( hotsmash_68705_portB_w )
+WRITE8_MEMBER(superqix_state::hotsmash_68705_portB_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- state->m_portB_out = data;
+ m_portB_out = data;
}
-static READ8_HANDLER( hotsmash_68705_portC_r )
+READ8_MEMBER(superqix_state::hotsmash_68705_portC_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- return state->m_portC;
+ return m_portC;
}
-static WRITE8_HANDLER( hotsmash_68705_portC_w )
+WRITE8_MEMBER(superqix_state::hotsmash_68705_portC_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- state->m_portC = data;
+ m_portC = data;
if ((data & 0x08) == 0)
{
switch (data & 0x07)
{
case 0x0: // dsw A
- state->m_portA_in = input_port_read(space->machine(), "DSW1");
+ m_portA_in = input_port_read(machine(), "DSW1");
break;
case 0x1: // dsw B
- state->m_portA_in = input_port_read(space->machine(), "DSW2");
+ m_portA_in = input_port_read(machine(), "DSW2");
break;
case 0x2:
break;
case 0x3: // command from Z80
- state->m_portA_in = state->m_from_z80;
-// logerror("%04x: z80 reads command %02x\n",cpu_get_pc(&space->device()),state->m_from_z80);
+ m_portA_in = m_from_z80;
+// logerror("%04x: z80 reads command %02x\n",cpu_get_pc(&space.device()),m_from_z80);
break;
case 0x4:
break;
case 0x5: // answer to Z80
- space->machine().scheduler().synchronize(FUNC(delayed_mcu_z80_w), state->m_portB_out);
+ machine().scheduler().synchronize(FUNC(delayed_mcu_z80_w), m_portB_out);
break;
case 0x6:
- state->m_portA_in = read_dial(space->machine(), 0);
+ m_portA_in = read_dial(machine(), 0);
break;
case 0x7:
- state->m_portA_in = read_dial(space->machine(), 1);
+ m_portA_in = read_dial(machine(), 1);
break;
}
}
}
-static WRITE8_HANDLER( hotsmash_z80_mcu_w )
+WRITE8_MEMBER(superqix_state::hotsmash_z80_mcu_w)
{
- space->machine().scheduler().synchronize(FUNC(delayed_z80_mcu_w), data);
+ machine().scheduler().synchronize(FUNC(delayed_z80_mcu_w), data);
}
-static READ8_HANDLER(hotsmash_from_mcu_r)
+READ8_MEMBER(superqix_state::hotsmash_from_mcu_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
-// logerror("%04x: z80 reads answer %02x\n",cpu_get_pc(&space->device()),state->m_from_mcu);
- state->m_from_mcu_pending = 0;
- return state->m_from_mcu;
+// logerror("%04x: z80 reads answer %02x\n",cpu_get_pc(&space.device()),m_from_mcu);
+ m_from_mcu_pending = 0;
+ return m_from_mcu;
}
static READ8_DEVICE_HANDLER(hotsmash_ay_port_a_r)
@@ -499,35 +487,33 @@ pbillian MCU simulation
**************************************************************************/
-static WRITE8_HANDLER( pbillian_z80_mcu_w )
+WRITE8_MEMBER(superqix_state::pbillian_z80_mcu_w)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- state->m_from_z80 = data;
+ m_from_z80 = data;
}
-static READ8_HANDLER(pbillian_from_mcu_r)
+READ8_MEMBER(superqix_state::pbillian_from_mcu_r)
{
- superqix_state *state = space->machine().driver_data<superqix_state>();
- switch (state->m_from_z80)
+ switch (m_from_z80)
{
case 0x01:
{
- UINT8 p = input_port_read(space->machine(), state->m_curr_player ? "PLUNGER2" : "PLUNGER1") & 0xbf;
+ UINT8 p = input_port_read(machine(), m_curr_player ? "PLUNGER2" : "PLUNGER1") & 0xbf;
if ((p & 0x3f) == 0) p |= 0x40;
return p;
}
- case 0x02: return input_port_read(space->machine(), state->m_curr_player ? "DIAL2" : "DIAL1");
+ case 0x02: return input_port_read(machine(), m_curr_player ? "DIAL2" : "DIAL1");
- case 0x04: return input_port_read(space->machine(), "DSW1");
- case 0x08: return input_port_read(space->machine(), "DSW2");
+ case 0x04: return input_port_read(machine(), "DSW1");
+ case 0x08: return input_port_read(machine(), "DSW2");
- case 0x80: state->m_curr_player = 0; return 0;
- case 0x81: state->m_curr_player = 1; return 0;
+ case 0x80: m_curr_player = 0; return 0;
+ case 0x81: m_curr_player = 1; return 0;
}
-// logerror("408[%x] r at %x\n",state->m_from_z80,cpu_get_pc(&space->device()));
+// logerror("408[%x] r at %x\n",m_from_z80,cpu_get_pc(&space.device()));
return 0;
}
@@ -589,12 +575,12 @@ static ADDRESS_MAP_START( pbillian_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE_LEGACY(paletteram_BBGGRRII_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0401, 0x0401) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
- AM_RANGE(0x0408, 0x0408) AM_READ_LEGACY(pbillian_from_mcu_r)
- AM_RANGE(0x0408, 0x0408) AM_WRITE_LEGACY(pbillian_z80_mcu_w)
+ AM_RANGE(0x0408, 0x0408) AM_READ(pbillian_from_mcu_r)
+ AM_RANGE(0x0408, 0x0408) AM_WRITE(pbillian_z80_mcu_w)
AM_RANGE(0x0410, 0x0410) AM_WRITE_LEGACY(pbillian_0410_w)
AM_RANGE(0x0418, 0x0418) AM_READNOP //?
AM_RANGE(0x0419, 0x0419) AM_WRITENOP //? watchdog ?
- AM_RANGE(0x041a, 0x041a) AM_WRITE_LEGACY(pbillian_sample_trigger_w)
+ AM_RANGE(0x041a, 0x041a) AM_WRITE(pbillian_sample_trigger_w)
AM_RANGE(0x041b, 0x041b) AM_READNOP // input related? but probably not used
ADDRESS_MAP_END
@@ -602,12 +588,12 @@ static ADDRESS_MAP_START( hotsmash_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0000, 0x01ff) AM_RAM_WRITE_LEGACY(paletteram_BBGGRRII_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x0401, 0x0401) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w)
- AM_RANGE(0x0408, 0x0408) AM_READ_LEGACY(hotsmash_from_mcu_r)
- AM_RANGE(0x0408, 0x0408) AM_WRITE_LEGACY(hotsmash_z80_mcu_w)
+ AM_RANGE(0x0408, 0x0408) AM_READ(hotsmash_from_mcu_r)
+ AM_RANGE(0x0408, 0x0408) AM_WRITE(hotsmash_z80_mcu_w)
AM_RANGE(0x0410, 0x0410) AM_WRITE_LEGACY(pbillian_0410_w)
AM_RANGE(0x0418, 0x0418) AM_READNOP //?
AM_RANGE(0x0419, 0x0419) AM_WRITENOP //? watchdog ?
- AM_RANGE(0x041a, 0x041a) AM_WRITE_LEGACY(pbillian_sample_trigger_w)
+ AM_RANGE(0x041a, 0x041a) AM_WRITE(pbillian_sample_trigger_w)
AM_RANGE(0x041b, 0x041b) AM_READNOP // input related? but probably not used
ADDRESS_MAP_END
@@ -617,9 +603,9 @@ static ADDRESS_MAP_START( sqix_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0x0405, 0x0405) AM_DEVREAD_LEGACY("ay2", ay8910_r)
AM_RANGE(0x0406, 0x0407) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
- AM_RANGE(0x0408, 0x0408) AM_READ_LEGACY(mcu_acknowledge_r)
+ AM_RANGE(0x0408, 0x0408) AM_READ(mcu_acknowledge_r)
AM_RANGE(0x0410, 0x0410) AM_WRITE_LEGACY(superqix_0410_w) /* ROM bank, NMI enable, tile bank */
- AM_RANGE(0x0418, 0x0418) AM_READ_LEGACY(nmi_ack_r)
+ AM_RANGE(0x0418, 0x0418) AM_READ(nmi_ack_r)
AM_RANGE(0x0800, 0x77ff) AM_RAM_WRITE_LEGACY(superqix_bitmapram_w) AM_BASE(m_bitmapram)
AM_RANGE(0x8800, 0xf7ff) AM_RAM_WRITE_LEGACY(superqix_bitmapram2_w) AM_BASE(m_bitmapram2)
ADDRESS_MAP_END
@@ -630,7 +616,7 @@ static ADDRESS_MAP_START( bootleg_port_map, AS_IO, 8, superqix_state )
AM_RANGE(0x0402, 0x0403) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0x0405, 0x0405) AM_DEVREAD_LEGACY("ay2", ay8910_r)
AM_RANGE(0x0406, 0x0407) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
- AM_RANGE(0x0408, 0x0408) AM_WRITE_LEGACY(bootleg_flipscreen_w)
+ AM_RANGE(0x0408, 0x0408) AM_WRITE(bootleg_flipscreen_w)
AM_RANGE(0x0410, 0x0410) AM_WRITE_LEGACY(superqix_0410_w) /* ROM bank, NMI enable, tile bank */
AM_RANGE(0x0418, 0x0418) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0800, 0x77ff) AM_RAM_WRITE_LEGACY(superqix_bitmapram_w) AM_BASE(m_bitmapram)
@@ -640,9 +626,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( m68705_map, AS_PROGRAM, 8, superqix_state )
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
- AM_RANGE(0x0000, 0x0000) AM_READ_LEGACY(hotsmash_68705_portA_r)
- AM_RANGE(0x0001, 0x0001) AM_WRITE_LEGACY(hotsmash_68705_portB_w)
- AM_RANGE(0x0002, 0x0002) AM_READWRITE_LEGACY(hotsmash_68705_portC_r, hotsmash_68705_portC_w)
+ AM_RANGE(0x0000, 0x0000) AM_READ(hotsmash_68705_portA_r)
+ AM_RANGE(0x0001, 0x0001) AM_WRITE(hotsmash_68705_portB_w)
+ AM_RANGE(0x0002, 0x0002) AM_READWRITE(hotsmash_68705_portC_r, hotsmash_68705_portC_w)
AM_RANGE(0x0010, 0x007f) AM_RAM
AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
@@ -651,15 +637,15 @@ ADDRESS_MAP_END
/* I8751 memory handlers */
static ADDRESS_MAP_START( bootleg_mcu_io_map, AS_IO, 8, superqix_state )
- AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE_LEGACY(bootleg_mcu_p1_w)
- AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE_LEGACY(bootleg_mcu_p3_r, mcu_p3_w)
+ AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(bootleg_mcu_p1_w)
+ AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(bootleg_mcu_p3_r, mcu_p3_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sqixu_mcu_io_map, AS_IO, 8, superqix_state )
- AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READ_LEGACY(sqixu_mcu_p0_r)
+ AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_READ(sqixu_mcu_p0_r)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ_PORT("DSW1")
- AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE_LEGACY(sqixu_mcu_p2_w)
- AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE_LEGACY(sqixu_mcu_p3_r, mcu_p3_w)
+ AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE(sqixu_mcu_p2_w)
+ AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(sqixu_mcu_p3_r, mcu_p3_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c
index 0501105368e..df2644509ca 100644
--- a/src/mame/drivers/suprloco.c
+++ b/src/mame/drivers/suprloco.c
@@ -17,12 +17,12 @@ TODO:
#include "sound/sn76496.h"
#include "includes/suprloco.h"
-static WRITE8_HANDLER( suprloco_soundport_w )
+WRITE8_MEMBER(suprloco_state::suprloco_soundport_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
/* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */
- device_spin_until_time(&space->device(), attotime::from_usec(50));
+ device_spin_until_time(&space.device(), attotime::from_usec(50));
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, suprloco_state )
@@ -34,7 +34,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, suprloco_state )
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("P2")
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW1")
AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW2")
- AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(suprloco_soundport_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(suprloco_soundport_w)
AM_RANGE(0xe801, 0xe801) AM_READWRITE_LEGACY(suprloco_control_r, suprloco_control_w)
AM_RANGE(0xf000, 0xf6ff) AM_RAM_WRITE_LEGACY(suprloco_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xf700, 0xf7df) AM_RAM /* unused */
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index 0e4b82bbffb..7e095d68b90 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -225,11 +225,10 @@ static void hit_recalc(running_machine &machine)
*/
}
-static WRITE32_HANDLER ( skns_hit_w )
+WRITE32_MEMBER(skns_state::skns_hit_w)
//void hit_w(UINT32 adr, UINT32 data, int type)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- hit_t &hit = state->m_hit;
+ hit_t &hit = m_hit;
int adr = offset * 4;
switch(adr) {
@@ -288,19 +287,18 @@ static WRITE32_HANDLER ( skns_hit_w )
// log_write("HIT", adr, data, type);
break;
}
- hit_recalc(space->machine());
+ hit_recalc(machine());
}
-static WRITE32_HANDLER ( skns_hit2_w )
+WRITE32_MEMBER(skns_state::skns_hit2_w)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- hit_t &hit = state->m_hit;
+ hit_t &hit = m_hit;
// Decide to unlock on country char of string "FOR xxxxx" in Bios ROM at offset 0x420
// this code simulates behaviour of protection PLD
data>>= 24;
hit.disconnect = 1;
- switch (state->m_region)
+ switch (m_region)
{
case 'J':
if (data == 0) hit.disconnect= 0;
@@ -325,11 +323,10 @@ static WRITE32_HANDLER ( skns_hit2_w )
}
-static READ32_HANDLER( skns_hit_r )
+READ32_MEMBER(skns_state::skns_hit_r)
//UINT32 hit_r(UINT32 adr, int type)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- hit_t &hit = state->m_hit;
+ hit_t &hit = m_hit;
int adr = offset *4;
// log_read("HIT", adr, type);
@@ -339,7 +336,7 @@ static READ32_HANDLER( skns_hit_r )
switch(adr) {
case 0x28:
case 0x2a:
- return (UINT16)space->machine().rand();
+ return (UINT16)machine().rand();
case 0x00:
case 0x10:
return (UINT16)hit.x_in;
@@ -603,16 +600,16 @@ INPUT_PORTS_END
-static WRITE32_HANDLER( skns_io_w )
+WRITE32_MEMBER(skns_state::skns_io_w)
{
switch(offset) {
case 2:
if(ACCESSING_BITS_24_31)
{ /* Coin Lock/Count */
-// coin_counter_w(space->machine(), 0, data & 0x01000000);
-// coin_counter_w(space->machine(), 1, data & 0x02000000);
-// coin_lockout_w(space->machine(), 0, ~data & 0x04000000);
-// coin_lockout_w(space->machine(), 1, ~data & 0x08000000); // Works in puzzloop, others behave strange.
+// coin_counter_w(machine(), 0, data & 0x01000000);
+// coin_counter_w(machine(), 1, data & 0x02000000);
+// coin_lockout_w(machine(), 0, ~data & 0x04000000);
+// coin_lockout_w(machine(), 1, ~data & 0x08000000); // Works in puzzloop, others behave strange.
}
if(ACCESSING_BITS_16_23)
{ /* Analogue Input Select */
@@ -628,28 +625,28 @@ static WRITE32_HANDLER( skns_io_w )
if(ACCESSING_BITS_8_15)
{ /* Interrupt Clear, do we need these? */
/* if(data&0x01)
- cputag_set_input_line(space->machine(), "maincpu",1,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",1,CLEAR_LINE);
if(data&0x02)
- cputag_set_input_line(space->machine(), "maincpu",3,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",3,CLEAR_LINE);
if(data&0x04)
- cputag_set_input_line(space->machine(), "maincpu",5,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",5,CLEAR_LINE);
if(data&0x08)
- cputag_set_input_line(space->machine(), "maincpu",7,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",7,CLEAR_LINE);
if(data&0x10)
- cputag_set_input_line(space->machine(), "maincpu",9,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",9,CLEAR_LINE);
if(data&0x20)
- cputag_set_input_line(space->machine(), "maincpu",0xb,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",0xb,CLEAR_LINE);
if(data&0x40)
- cputag_set_input_line(space->machine(), "maincpu",0xd,CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu",0xd,CLEAR_LINE);
if(data&0x80)
- cputag_set_input_line(space->machine(), "maincpu",0xf,CLEAR_LINE);*/
+ cputag_set_input_line(machine(), "maincpu",0xf,CLEAR_LINE);*/
/* idle skip for vblokbrk/sarukani, i can't find a better place to put it :-( but i think it works ok unless its making the game too fast */
- if (cpu_get_pc(&space->device())==0x04013B42)
+ if (cpu_get_pc(&space.device())==0x04013B42)
{
- if (!strcmp(space->machine().system().name,"vblokbrk") ||
- !strcmp(space->machine().system().name,"sarukani"))
- device_spin_until_interrupt(&space->device());
+ if (!strcmp(machine().system().name,"vblokbrk") ||
+ !strcmp(machine().system().name,"sarukani"))
+ device_spin_until_interrupt(&space.device());
}
}
@@ -666,17 +663,16 @@ static WRITE32_HANDLER( skns_io_w )
/* end old driver code */
-static WRITE32_HANDLER( skns_v3t_w )
+WRITE32_MEMBER(skns_state::skns_v3t_w)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- UINT8 *btiles = space->machine().region("gfx3")->base();
+ UINT8 *btiles = machine().region("gfx3")->base();
- COMBINE_DATA(&state->m_v3t_ram[offset]);
+ COMBINE_DATA(&m_v3t_ram[offset]);
- gfx_element_mark_dirty(space->machine().gfx[1], offset/0x40);
- gfx_element_mark_dirty(space->machine().gfx[3], offset/0x20);
+ gfx_element_mark_dirty(machine().gfx[1], offset/0x40);
+ gfx_element_mark_dirty(machine().gfx[3], offset/0x20);
- data = state->m_v3t_ram[offset];
+ data = m_v3t_ram[offset];
// i think we need to swap around to decode .. endian issues?
btiles[offset*4+0] = (data & 0xff000000) >> 24;
btiles[offset*4+1] = (data & 0x00ff0000) >> 16;
@@ -686,7 +682,7 @@ static WRITE32_HANDLER( skns_v3t_w )
static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_ROM /* BIOS ROM */
- AM_RANGE(0x00400000, 0x0040000f) AM_WRITE_LEGACY(skns_io_w) /* I/O Write */
+ AM_RANGE(0x00400000, 0x0040000f) AM_WRITE(skns_io_w) /* I/O Write */
AM_RANGE(0x00400000, 0x00400003) AM_READ_PORT("400000")
AM_RANGE(0x00400004, 0x00400007) AM_READ_PORT("400004")
/* In between is write only */
@@ -694,7 +690,7 @@ static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state )
AM_RANGE(0x00800000, 0x00801fff) AM_RAM AM_SHARE("nvram") /* 'backup' RAM */
AM_RANGE(0x00c00000, 0x00c00003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0xffff0000) /* ymz280_w (sound) */
AM_RANGE(0x01000000, 0x0100000f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0xffffffff)
- AM_RANGE(0x01800000, 0x01800003) AM_WRITE_LEGACY(skns_hit2_w)
+ AM_RANGE(0x01800000, 0x01800003) AM_WRITE(skns_hit2_w)
AM_RANGE(0x02000000, 0x02003fff) AM_RAM AM_SHARE("spriteram") /* sprite ram */
AM_RANGE(0x02100000, 0x0210003f) AM_RAM AM_BASE(m_spc_regs) /* sprite registers */
AM_RANGE(0x02400000, 0x0240007f) AM_RAM_WRITE_LEGACY(skns_v3_regs_w) AM_BASE(m_v3_regs) /* tilemap registers */
@@ -703,9 +699,9 @@ static ADDRESS_MAP_START( skns_map, AS_PROGRAM, 32, skns_state )
AM_RANGE(0x02600000, 0x02607fff) AM_RAM AM_BASE(m_v3slc_ram) /* tilemap linescroll */
AM_RANGE(0x02a00000, 0x02a0001f) AM_RAM_WRITE_LEGACY(skns_pal_regs_w) AM_BASE(m_pal_regs)
AM_RANGE(0x02a40000, 0x02a5ffff) AM_RAM_WRITE_LEGACY(skns_palette_ram_w) AM_BASE(m_palette_ram)
- AM_RANGE(0x02f00000, 0x02f000ff) AM_READWRITE_LEGACY(skns_hit_r, skns_hit_w)
+ AM_RANGE(0x02f00000, 0x02f000ff) AM_READWRITE(skns_hit_r, skns_hit_w)
AM_RANGE(0x04000000, 0x041fffff) AM_ROMBANK("bank1") /* GAME ROM */
- AM_RANGE(0x04800000, 0x0483ffff) AM_RAM_WRITE_LEGACY(skns_v3t_w) AM_BASE(m_v3t_ram) /* tilemap b ram based tiles */
+ AM_RANGE(0x04800000, 0x0483ffff) AM_RAM_WRITE(skns_v3t_w) AM_BASE(m_v3t_ram) /* tilemap b ram based tiles */
AM_RANGE(0x06000000, 0x060fffff) AM_RAM AM_BASE(m_main_ram)
AM_RANGE(0xc0000000, 0xc0000fff) AM_RAM AM_BASE(m_cache_ram) /* 'cache' RAM */
ADDRESS_MAP_END
@@ -861,9 +857,8 @@ MACHINE_CONFIG_END
/***** IDLE SKIPPING *****/
-static READ32_HANDLER( gutsn_speedup_r )
+READ32_MEMBER(skns_state::gutsn_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
/*
0402206A: MOV.L @($8C,PC),R5
0402206C: MOV.L @($8C,PC),R1
@@ -872,45 +867,40 @@ static READ32_HANDLER( gutsn_speedup_r )
04022072: CMP/EQ R2,R3
04022074: BT $0402206C
*/
- if (cpu_get_pc(&space->device())==0x402206e)
+ if (cpu_get_pc(&space.device())==0x402206e)
{
- if(state->m_main_ram[0x00078/4] == state->m_main_ram[0x0c780/4])
- device_spin_until_interrupt(&space->device());
+ if(m_main_ram[0x00078/4] == m_main_ram[0x0c780/4])
+ device_spin_until_interrupt(&space.device());
}
- return state->m_main_ram[0x0c780/4];
+ return m_main_ram[0x0c780/4];
}
-static READ32_HANDLER( cyvern_speedup_r )
+READ32_MEMBER(skns_state::cyvern_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x402ebd2) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x4d3c8/4];
+ if (cpu_get_pc(&space.device())==0x402ebd2) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x4d3c8/4];
}
-static READ32_HANDLER( puzzloopj_speedup_r )
+READ32_MEMBER(skns_state::puzzloopj_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x401dca0) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x86714/4];
+ if (cpu_get_pc(&space.device())==0x401dca0) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x86714/4];
}
-static READ32_HANDLER( puzzloopa_speedup_r )
+READ32_MEMBER(skns_state::puzzloopa_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x401d9d4) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x85bcc/4];
+ if (cpu_get_pc(&space.device())==0x401d9d4) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x85bcc/4];
}
-static READ32_HANDLER( puzzloopu_speedup_r )
+READ32_MEMBER(skns_state::puzzloopu_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x401dab0) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x85cec/4];
+ if (cpu_get_pc(&space.device())==0x401dab0) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x85cec/4];
}
-static READ32_HANDLER( puzzloope_speedup_r )
+READ32_MEMBER(skns_state::puzzloope_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
/*
0401DA12: MOV.L @($80,PC),R1
0401DA14: MOV.L @R1,R0 (R1=0x6081d38)
@@ -918,71 +908,62 @@ static READ32_HANDLER( puzzloope_speedup_r )
0401DA18: BF $0401DA26
0401DA26: BRA $0401DA12
*/
- if (cpu_get_pc(&space->device())==0x401da14) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x81d38/4];
+ if (cpu_get_pc(&space.device())==0x401da14) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x81d38/4];
}
-static READ32_HANDLER( senknow_speedup_r )
+READ32_MEMBER(skns_state::senknow_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x4017dce) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x0000dc/4];
+ if (cpu_get_pc(&space.device())==0x4017dce) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x0000dc/4];
}
-static READ32_HANDLER( teljan_speedup_r )
+READ32_MEMBER(skns_state::teljan_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x401ba32) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x002fb4/4];
+ if (cpu_get_pc(&space.device())==0x401ba32) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x002fb4/4];
}
-static READ32_HANDLER( jjparads_speedup_r )
+READ32_MEMBER(skns_state::jjparads_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x4015e84) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x000994/4];
+ if (cpu_get_pc(&space.device())==0x4015e84) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x000994/4];
}
-static READ32_HANDLER( jjparad2_speedup_r )
+READ32_MEMBER(skns_state::jjparad2_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x401620a) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x000984/4];
+ if (cpu_get_pc(&space.device())==0x401620a) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x000984/4];
}
-static READ32_HANDLER( ryouran_speedup_r )
+READ32_MEMBER(skns_state::ryouran_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x40182ce) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x000a14/4];
+ if (cpu_get_pc(&space.device())==0x40182ce) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x000a14/4];
}
-static READ32_HANDLER( galpans2_speedup_r )
+READ32_MEMBER(skns_state::galpans2_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x4049ae2) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x0fb6bc/4];
+ if (cpu_get_pc(&space.device())==0x4049ae2) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x0fb6bc/4];
}
-static READ32_HANDLER( panicstr_speedup_r )
+READ32_MEMBER(skns_state::panicstr_speedup_r)
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x404e68a) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0x0f19e4/4];
+ if (cpu_get_pc(&space.device())==0x404e68a) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0x0f19e4/4];
}
-static READ32_HANDLER( sengekis_speedup_r ) // 60006ee 600308e
+READ32_MEMBER(skns_state::sengekis_speedup_r)// 60006ee 600308e
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x60006ec) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0xb74bc/4];
+ if (cpu_get_pc(&space.device())==0x60006ec) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0xb74bc/4];
}
-static READ32_HANDLER( sengekij_speedup_r ) // 60006ee 600308e
+READ32_MEMBER(skns_state::sengekij_speedup_r)// 60006ee 600308e
{
- skns_state *state = space->machine().driver_data<skns_state>();
- if (cpu_get_pc(&space->device())==0x60006ec) device_spin_until_interrupt(&space->device());
- return state->m_main_ram[0xb7380/4];
+ if (cpu_get_pc(&space.device())==0x60006ec) device_spin_until_interrupt(&space.device());
+ return m_main_ram[0xb7380/4];
}
static void init_skns(running_machine &machine)
@@ -998,21 +979,21 @@ static void set_drc_pcflush(running_machine &machine, UINT32 addr)
static DRIVER_INIT( galpani4 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-5,-1); init_skns(machine); }
static DRIVER_INIT( galpanis ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-5,-1); init_skns(machine); }
-static DRIVER_INIT( cyvern ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+2); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x604d3c8, 0x604d3cb, FUNC(cyvern_speedup_r) ); set_drc_pcflush(machine, 0x402ebd2); }
-static DRIVER_INIT( galpans2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60fb6bc, 0x60fb6bf, FUNC(galpans2_speedup_r) ); set_drc_pcflush(machine, 0x4049ae2); }
-static DRIVER_INIT( gutsn ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+0); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x600c780, 0x600c783, FUNC(gutsn_speedup_r) ); set_drc_pcflush(machine, 0x402206e); }
-static DRIVER_INIT( panicstr ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60f19e4, 0x60f19e7, FUNC(panicstr_speedup_r) ); set_drc_pcflush(machine, 0x404e68a); }
-static DRIVER_INIT( senknow ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+1,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60000dc, 0x60000df, FUNC(senknow_speedup_r) ); set_drc_pcflush(machine, 0x4017dce); }
-static DRIVER_INIT( puzzloope ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6081d38, 0x6081d3b, FUNC(puzzloope_speedup_r) ); set_drc_pcflush(machine, 0x401da14); }
-static DRIVER_INIT( puzzloopj ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6086714, 0x6086717, FUNC(puzzloopj_speedup_r) ); set_drc_pcflush(machine, 0x401dca0); }
-static DRIVER_INIT( puzzloopa ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6085bcc, 0x6085bcf, FUNC(puzzloopa_speedup_r) ); set_drc_pcflush(machine, 0x401d9d4); }
-static DRIVER_INIT( puzzloopu ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6085cec, 0x6085cef, FUNC(puzzloopu_speedup_r) ); set_drc_pcflush(machine, 0x401dab0); }
-static DRIVER_INIT( jjparads ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000994, 0x6000997, FUNC(jjparads_speedup_r) ); set_drc_pcflush(machine, 0x4015e84); }
-static DRIVER_INIT( jjparad2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000984, 0x6000987, FUNC(jjparad2_speedup_r) ); set_drc_pcflush(machine, 0x401620a); }
-static DRIVER_INIT( ryouran ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6000a14, 0x6000a17, FUNC(ryouran_speedup_r) ); set_drc_pcflush(machine, 0x40182ce); }
-static DRIVER_INIT( teljan ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x6002fb4, 0x6002fb7, FUNC(teljan_speedup_r) ); set_drc_pcflush(machine, 0x401ba32); }
-static DRIVER_INIT( sengekis ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60b74bc, 0x60b74bf, FUNC(sengekis_speedup_r) ); set_drc_pcflush(machine, 0x60006ec); }
-static DRIVER_INIT( sengekij ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x60b7380, 0x60b7383, FUNC(sengekij_speedup_r) ); set_drc_pcflush(machine, 0x60006ec); }
+static DRIVER_INIT( cyvern ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+2); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x604d3c8, 0x604d3cb, read32_delegate(FUNC(skns_state::cyvern_speedup_r),state) ); set_drc_pcflush(machine, 0x402ebd2); }
+static DRIVER_INIT( galpans2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60fb6bc, 0x60fb6bf, read32_delegate(FUNC(skns_state::galpans2_speedup_r),state) ); set_drc_pcflush(machine, 0x4049ae2); }
+static DRIVER_INIT( gutsn ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+0,+0); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x600c780, 0x600c783, read32_delegate(FUNC(skns_state::gutsn_speedup_r),state) ); set_drc_pcflush(machine, 0x402206e); }
+static DRIVER_INIT( panicstr ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60f19e4, 0x60f19e7, read32_delegate(FUNC(skns_state::panicstr_speedup_r),state) ); set_drc_pcflush(machine, 0x404e68a); }
+static DRIVER_INIT( senknow ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+1,+1); init_skns(machine); skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60000dc, 0x60000df, read32_delegate(FUNC(skns_state::senknow_speedup_r),state) ); set_drc_pcflush(machine, 0x4017dce); }
+static DRIVER_INIT( puzzloope ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6081d38, 0x6081d3b, read32_delegate(FUNC(skns_state::puzzloope_speedup_r),state) ); set_drc_pcflush(machine, 0x401da14); }
+static DRIVER_INIT( puzzloopj ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6086714, 0x6086717, read32_delegate(FUNC(skns_state::puzzloopj_speedup_r),state) ); set_drc_pcflush(machine, 0x401dca0); }
+static DRIVER_INIT( puzzloopa ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6085bcc, 0x6085bcf, read32_delegate(FUNC(skns_state::puzzloopa_speedup_r),state) ); set_drc_pcflush(machine, 0x401d9d4); }
+static DRIVER_INIT( puzzloopu ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-9,-1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6085cec, 0x6085cef, read32_delegate(FUNC(skns_state::puzzloopu_speedup_r),state) ); set_drc_pcflush(machine, 0x401dab0); }
+static DRIVER_INIT( jjparads ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000994, 0x6000997, read32_delegate(FUNC(skns_state::jjparads_speedup_r),state) ); set_drc_pcflush(machine, 0x4015e84); }
+static DRIVER_INIT( jjparad2 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000984, 0x6000987, read32_delegate(FUNC(skns_state::jjparad2_speedup_r),state) ); set_drc_pcflush(machine, 0x401620a); }
+static DRIVER_INIT( ryouran ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6000a14, 0x6000a17, read32_delegate(FUNC(skns_state::ryouran_speedup_r),state) ); set_drc_pcflush(machine, 0x40182ce); }
+static DRIVER_INIT( teljan ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(+5,+1); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x6002fb4, 0x6002fb7, read32_delegate(FUNC(skns_state::teljan_speedup_r),state) ); set_drc_pcflush(machine, 0x401ba32); }
+static DRIVER_INIT( sengekis ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60b74bc, 0x60b74bf, read32_delegate(FUNC(skns_state::sengekis_speedup_r),state) ); set_drc_pcflush(machine, 0x60006ec); }
+static DRIVER_INIT( sengekij ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-192,-272); init_skns(machine);skns_state *state = machine.driver_data<skns_state>(); machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x60b7380, 0x60b7383, read32_delegate(FUNC(skns_state::sengekij_speedup_r),state) ); set_drc_pcflush(machine, 0x60006ec); }
static DRIVER_INIT( sarukani ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); set_drc_pcflush(machine, 0x4013b42); } // Speedup is in skns_io_w()
static DRIVER_INIT( galpans3 ) { machine.device<sknsspr_device>("spritegen")->skns_sprite_kludge(-1,-1); init_skns(machine); }
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index c9d408fa9fd..95d0c37a3f9 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -93,10 +93,9 @@
*
*************************************/
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(suprridr_state::nmi_enable_w)
{
- suprridr_state *state = space->machine().driver_data<suprridr_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
}
@@ -123,9 +122,9 @@ static TIMER_CALLBACK( delayed_sound_w )
}
-static WRITE8_HANDLER( sound_data_w )
+WRITE8_MEMBER(suprridr_state::sound_data_w)
{
- space->machine().scheduler().synchronize(FUNC(delayed_sound_w), data);
+ machine().scheduler().synchronize(FUNC(delayed_sound_w), data);
}
@@ -136,9 +135,9 @@ static READ8_DEVICE_HANDLER( sound_data_r )
}
-static WRITE8_HANDLER( sound_irq_ack_w )
+WRITE8_MEMBER(suprridr_state::sound_irq_ack_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
}
@@ -149,10 +148,10 @@ static WRITE8_HANDLER( sound_irq_ack_w )
*
*************************************/
-static WRITE8_HANDLER( coin_lock_w )
+WRITE8_MEMBER(suprridr_state::coin_lock_w)
{
/* cleared when 9 credits are hit, but never reset! */
-/* coin_lockout_global_w(space->machine(), ~data & 1); */
+/* coin_lockout_global_w(machine(), ~data & 1); */
}
@@ -173,11 +172,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, suprridr_state )
AM_RANGE(0x9880, 0x9bff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0xb002, 0xb003) AM_WRITE_LEGACY(coin_lock_w)
+ AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(nmi_enable_w)
+ AM_RANGE(0xb002, 0xb003) AM_WRITE(coin_lock_w)
AM_RANGE(0xb006, 0xb006) AM_WRITE_LEGACY(suprridr_flipx_w)
AM_RANGE(0xb007, 0xb007) AM_WRITE_LEGACY(suprridr_flipy_w)
- AM_RANGE(0xb800, 0xb800) AM_WRITE_LEGACY(sound_data_w)
+ AM_RANGE(0xb800, 0xb800) AM_WRITE(sound_data_w)
AM_RANGE(0xc801, 0xc801) AM_WRITE_LEGACY(suprridr_fgdisable_w)
AM_RANGE(0xc802, 0xc802) AM_WRITE_LEGACY(suprridr_fgscrolly_w)
AM_RANGE(0xc804, 0xc804) AM_WRITE_LEGACY(suprridr_bgscrolly_w)
@@ -206,7 +205,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, suprridr_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(sound_irq_ack_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(sound_irq_ack_w)
AM_RANGE(0x8c, 0x8d) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x8d, 0x8d) AM_DEVREAD_LEGACY("ay1", ay8910_r)
AM_RANGE(0x8e, 0x8f) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index 94f079b75c7..ef595b1c817 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -90,38 +90,35 @@ EB26IC73.BIN 27C240 / Main Program
/*** SOUND *******************************************************************/
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(suprslam_state::sound_command_w)
{
- suprslam_state *state = space->machine().driver_data<suprslam_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
#if 0
-static READ16_HANDLER( pending_command_r )
+READ16_MEMBER(suprslam_state::pending_command_r)
{
- suprslam_state *state = space->machine().driver_data<suprslam_state>();
return pending_command;
}
#endif
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(suprslam_state::pending_command_clear_w)
{
- suprslam_state *state = space->machine().driver_data<suprslam_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
-static WRITE8_HANDLER( suprslam_sh_bankswitch_w )
+WRITE8_MEMBER(suprslam_state::suprslam_sh_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("audiocpu")->base();
+ UINT8 *RAM = machine().region("audiocpu")->base();
int bankaddress;
bankaddress = 0x10000 + (data & 0x03) * 0x8000;
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]);
}
/*** MEMORY MAPS *************************************************************/
@@ -136,7 +133,7 @@ static ADDRESS_MAP_START( suprslam_map, AS_PROGRAM, 16, suprslam_state )
AM_RANGE(0xff2000, 0xff203f) AM_RAM AM_BASE(m_screen_vregs)
// AM_RANGE(0xff3000, 0xff3001) AM_WRITENOP // sprite buffer trigger?
AM_RANGE(0xff8000, 0xff8fff) AM_DEVREADWRITE_LEGACY("k053936", k053936_linectrl_r, k053936_linectrl_w)
- AM_RANGE(0xff9000, 0xff9001) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xff9000, 0xff9001) AM_WRITE(sound_command_w)
AM_RANGE(0xffa000, 0xffafff) AM_RAM_WRITE_LEGACY(paletteram16_xGGGGGBBBBBRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xffd000, 0xffd01f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w)
AM_RANGE(0xffe000, 0xffe001) AM_WRITE_LEGACY(suprslam_bank_w)
@@ -156,8 +153,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, suprslam_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(suprslam_sh_bankswitch_w)
- AM_RANGE(0x04, 0x04) AM_READWRITE_LEGACY(soundlatch_r, pending_command_clear_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(suprslam_sh_bankswitch_w)
+ AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_r) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index 2e984df826e..06098698816 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -25,64 +25,60 @@ static INTERRUPT_GEN( surpratk_interrupt )
device_set_input_line(device, 0, HOLD_LINE);
}
-static READ8_HANDLER( bankedram_r )
+READ8_MEMBER(surpratk_state::bankedram_r)
{
- surpratk_state *state = space->machine().driver_data<surpratk_state>();
- if (state->m_videobank & 0x02)
+ if (m_videobank & 0x02)
{
- if (state->m_videobank & 0x04)
- return space->machine().generic.paletteram.u8[offset + 0x0800];
+ if (m_videobank & 0x04)
+ return machine().generic.paletteram.u8[offset + 0x0800];
else
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
}
- else if (state->m_videobank & 0x01)
- return k053245_r(state->m_k053244, offset);
+ else if (m_videobank & 0x01)
+ return k053245_r(m_k053244, offset);
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( bankedram_w )
+WRITE8_MEMBER(surpratk_state::bankedram_w)
{
- surpratk_state *state = space->machine().driver_data<surpratk_state>();
- if (state->m_videobank & 0x02)
+ if (m_videobank & 0x02)
{
- if (state->m_videobank & 0x04)
+ if (m_videobank & 0x04)
paletteram_xBBBBBGGGGGRRRRR_be_w(space,offset + 0x0800,data);
else
paletteram_xBBBBBGGGGGRRRRR_be_w(space,offset,data);
}
- else if (state->m_videobank & 0x01)
- k053245_w(state->m_k053244, offset, data);
+ else if (m_videobank & 0x01)
+ k053245_w(m_k053244, offset, data);
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
-static WRITE8_HANDLER( surpratk_videobank_w )
+WRITE8_MEMBER(surpratk_state::surpratk_videobank_w)
{
- surpratk_state *state = space->machine().driver_data<surpratk_state>();
- logerror("%04x: videobank = %02x\n",cpu_get_pc(&space->device()),data);
+ logerror("%04x: videobank = %02x\n",cpu_get_pc(&space.device()),data);
/* bit 0 = select 053245 at 0000-07ff */
/* bit 1 = select palette at 0000-07ff */
/* bit 2 = select palette bank 0 or 1 */
- state->m_videobank = data;
+ m_videobank = data;
}
-static WRITE8_HANDLER( surpratk_5fc0_w )
+WRITE8_MEMBER(surpratk_state::surpratk_5fc0_w)
{
- surpratk_state *state = space->machine().driver_data<surpratk_state>();
if ((data & 0xf4) != 0x10)
- logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(&space->device()),data);
+ logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(&space.device()),data);
/* bit 0/1 = coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 3 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
/* other bits unknown */
}
@@ -91,7 +87,7 @@ static WRITE8_HANDLER( surpratk_5fc0_w )
/********************************************/
static ADDRESS_MAP_START( surpratk_map, AS_PROGRAM, 8, surpratk_state )
- AM_RANGE(0x0000, 0x07ff) AM_READWRITE_LEGACY(bankedram_r, bankedram_w) AM_BASE(m_ram)
+ AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bankedram_r, bankedram_w) AM_BASE(m_ram)
AM_RANGE(0x0800, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("bank1") /* banked ROM */
AM_RANGE(0x5f8c, 0x5f8c) AM_READ_PORT("P1")
@@ -101,9 +97,9 @@ static ADDRESS_MAP_START( surpratk_map, AS_PROGRAM, 8, surpratk_state )
AM_RANGE(0x5f90, 0x5f90) AM_READ_PORT("DSW2")
AM_RANGE(0x5fa0, 0x5faf) AM_DEVREADWRITE_LEGACY("k053244", k053244_r, k053244_w)
AM_RANGE(0x5fb0, 0x5fbf) AM_DEVWRITE_LEGACY("k053251", k053251_w)
- AM_RANGE(0x5fc0, 0x5fc0) AM_READWRITE_LEGACY(watchdog_reset_r, surpratk_5fc0_w)
+ AM_RANGE(0x5fc0, 0x5fc0) AM_READ_LEGACY(watchdog_reset_r) AM_WRITE(surpratk_5fc0_w)
AM_RANGE(0x5fd0, 0x5fd1) AM_DEVWRITE_LEGACY("ymsnd", ym2151_w)
- AM_RANGE(0x5fc4, 0x5fc4) AM_WRITE_LEGACY(surpratk_videobank_w)
+ AM_RANGE(0x5fc4, 0x5fc4) AM_WRITE(surpratk_videobank_w)
AM_RANGE(0x4000, 0x7fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_r, k052109_w)
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index d8f88268a70..281f0f2d235 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -411,25 +411,24 @@ static void bank0c_custom_w(running_machine &machine, UINT8 data, UINT8 prevdata
}
-static WRITE8_HANDLER( videomode_w )
+WRITE8_MEMBER(system1_state::videomode_w)
{
- system1_state *state = space->machine().driver_data<system1_state>();
- device_t *i8751 = space->machine().device("mcu");
+ device_t *i8751 = machine().device("mcu");
/* bit 6 is connected to the 8751 IRQ */
if (i8751 != NULL)
device_set_input_line(i8751, MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
/* handle any custom banking or other stuff */
- if (state->m_videomode_custom != NULL)
- (*state->m_videomode_custom)(space->machine(), data, state->m_videomode_prev);
- state->m_videomode_prev = data;
+ if (m_videomode_custom != NULL)
+ (*m_videomode_custom)(machine(), data, m_videomode_prev);
+ m_videomode_prev = data;
/* bit 0 is for the coin counters */
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
/* remaining signals are video-related */
- system1_videomode_w(space, 0, data);
+ system1_videomode_w(&space, 0, data);
}
@@ -491,10 +490,10 @@ static WRITE8_DEVICE_HANDLER( sound_control_w )
}
-static READ8_HANDLER( sound_data_r )
+READ8_MEMBER(system1_state::sound_data_r)
{
- ppi8255_device *ppi = space->machine().device<ppi8255_device>("ppi");
- z80pio_device *pio = space->machine().device<z80pio_device>("pio");
+ ppi8255_device *ppi = machine().device<ppi8255_device>("ppi");
+ z80pio_device *pio = machine().device<z80pio_device>("pio");
/* if we have an 8255 PPI, get the data from the port and toggle the ack */
if (ppi != NULL)
@@ -518,11 +517,11 @@ static READ8_HANDLER( sound_data_r )
}
-static WRITE8_HANDLER( soundport_w )
+WRITE8_MEMBER(system1_state::soundport_w)
{
/* boost interleave when communicating with the sound CPU */
soundlatch_w(space, 0, data);
- space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
@@ -540,63 +539,60 @@ static TIMER_DEVICE_CALLBACK( soundirq_gen )
*
*************************************/
-static WRITE8_HANDLER( mcu_control_w )
+WRITE8_MEMBER(system1_state::mcu_control_w)
{
- system1_state *state = space->machine().driver_data<system1_state>();
/*
Bit 7 -> connects to TD62003 pins 5 & 6 @ IC151
Bit 6 -> via PLS153, when high, asserts the BUSREQ signal, halting the Z80
Bit 5 -> n/c
- Bit 4 -> (with bit 3) Memory select: 0=Z80 program space, 1=banked ROM, 2=Z80 I/O space, 3=watchdog?
+ Bit 4 -> (with bit 3) Memory select: 0=Z80 program &space, 1=banked ROM, 2=Z80 I/O &space, 3=watchdog?
Bit 3 ->
Bit 2 -> n/c
Bit 1 -> n/c
Bit 0 -> Directly connected to Z80 /INT line
*/
- state->m_mcu_control = data;
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_HALT, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
- cputag_set_input_line(space->machine(), "maincpu", 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
+ m_mcu_control = data;
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_HALT, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( mcu_io_w )
+WRITE8_MEMBER(system1_state::mcu_io_w)
{
- system1_state *state = space->machine().driver_data<system1_state>();
- switch ((state->m_mcu_control >> 3) & 3)
+ switch ((m_mcu_control >> 3) & 3)
{
case 0:
- space->machine().device<z80_device>("maincpu")->space(AS_PROGRAM)->write_byte(offset, data);
+ machine().device<z80_device>("maincpu")->space(AS_PROGRAM)->write_byte(offset, data);
break;
case 2:
- space->machine().device<z80_device>("maincpu")->space(AS_IO)->write_byte(offset, data);
+ machine().device<z80_device>("maincpu")->space(AS_IO)->write_byte(offset, data);
break;
default:
logerror("%03X: MCU movx write mode %02X offset %04X = %02X\n",
- cpu_get_pc(&space->device()), state->m_mcu_control, offset, data);
+ cpu_get_pc(&space.device()), m_mcu_control, offset, data);
break;
}
}
-static READ8_HANDLER( mcu_io_r )
+READ8_MEMBER(system1_state::mcu_io_r)
{
- system1_state *state = space->machine().driver_data<system1_state>();
- switch ((state->m_mcu_control >> 3) & 3)
+ switch ((m_mcu_control >> 3) & 3)
{
case 0:
- return space->machine().device<z80_device>("maincpu")->space(AS_PROGRAM)->read_byte(offset);
+ return machine().device<z80_device>("maincpu")->space(AS_PROGRAM)->read_byte(offset);
case 1:
- return space->machine().region("maincpu")->base()[offset + 0x10000];
+ return machine().region("maincpu")->base()[offset + 0x10000];
case 2:
- return space->machine().device<z80_device>("maincpu")->space(AS_IO)->read_byte(offset);
+ return machine().device<z80_device>("maincpu")->space(AS_IO)->read_byte(offset);
default:
logerror("%03X: MCU movx read mode %02X offset %04X\n",
- cpu_get_pc(&space->device()), state->m_mcu_control, offset);
+ cpu_get_pc(&space.device()), m_mcu_control, offset);
return 0xff;
}
}
@@ -634,51 +630,47 @@ static TIMER_DEVICE_CALLBACK( mcu_t0_callback )
*
*************************************/
-static WRITE8_HANDLER( nob_mcu_control_p2_w )
+WRITE8_MEMBER(system1_state::nob_mcu_control_p2_w)
{
- system1_state *state = space->machine().driver_data<system1_state>();
/* bit 0 triggers a read from MCU port 0 */
- if (((state->m_mcu_control ^ data) & 0x01) && !(data & 0x01))
- *state->m_nob_mcu_latch = state->m_nob_maincpu_latch;
+ if (((m_mcu_control ^ data) & 0x01) && !(data & 0x01))
+ *m_nob_mcu_latch = m_nob_maincpu_latch;
/* bit 1 triggers a write from MCU port 0 */
- if (((state->m_mcu_control ^ data) & 0x02) && !(data & 0x02))
- state->m_nob_maincpu_latch = *state->m_nob_mcu_latch;
+ if (((m_mcu_control ^ data) & 0x02) && !(data & 0x02))
+ m_nob_maincpu_latch = *m_nob_mcu_latch;
/* bit 2 is toggled once near the end of an IRQ */
- if (((state->m_mcu_control ^ data) & 0x04) && !(data & 0x04))
- device_set_input_line(&space->device(), MCS51_INT0_LINE, CLEAR_LINE);
+ if (((m_mcu_control ^ data) & 0x04) && !(data & 0x04))
+ device_set_input_line(&space.device(), MCS51_INT0_LINE, CLEAR_LINE);
/* bit 3 is toggled once at the start of an IRQ, and again at the end */
- if (((state->m_mcu_control ^ data) & 0x08) && !(data & 0x08))
+ if (((m_mcu_control ^ data) & 0x08) && !(data & 0x08))
{
//logerror("MCU IRQ(8) toggle\n");
}
- state->m_mcu_control = data;
+ m_mcu_control = data;
}
-static READ8_HANDLER( nob_maincpu_latch_r )
+READ8_MEMBER(system1_state::nob_maincpu_latch_r)
{
- system1_state *state = space->machine().driver_data<system1_state>();
- return state->m_nob_maincpu_latch;
+ return m_nob_maincpu_latch;
}
-static WRITE8_HANDLER( nob_maincpu_latch_w )
+WRITE8_MEMBER(system1_state::nob_maincpu_latch_w)
{
- system1_state *state = space->machine().driver_data<system1_state>();
- state->m_nob_maincpu_latch = data;
- cputag_set_input_line(space->machine(), "mcu", MCS51_INT0_LINE, ASSERT_LINE);
- space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
+ m_nob_maincpu_latch = data;
+ cputag_set_input_line(machine(), "mcu", MCS51_INT0_LINE, ASSERT_LINE);
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
-static READ8_HANDLER( nob_mcu_status_r )
+READ8_MEMBER(system1_state::nob_mcu_status_r)
{
- system1_state *state = space->machine().driver_data<system1_state>();
- return *state->m_nob_mcu_status;
+ return *m_nob_mcu_status;
}
@@ -691,30 +683,28 @@ static READ8_HANDLER( nob_mcu_status_r )
// nobb - these ports are used for some kind of replacement protection system used by the bootleg
-static READ8_HANDLER( nobb_inport1c_r )
+READ8_MEMBER(system1_state::nobb_inport1c_r)
{
-// logerror("IN $1c : pc = %04x - data = 0x80\n",cpu_get_pc(&space->device()));
+// logerror("IN $1c : pc = %04x - data = 0x80\n",cpu_get_pc(&space.device()));
return(0x80); // infinite loop (at 0x0fb3) until bit 7 is set
}
-static READ8_HANDLER( nobb_inport22_r )
+READ8_MEMBER(system1_state::nobb_inport22_r)
{
-// logerror("IN $22 : pc = %04x - data = %02x\n",cpu_get_pc(&space->device()),nobb_inport17_step);
+// logerror("IN $22 : pc = %04x - data = %02x\n",cpu_get_pc(&space.device()),nobb_inport17_step);
return(0);//nobb_inport17_step);
}
-static READ8_HANDLER( nobb_inport23_r )
+READ8_MEMBER(system1_state::nobb_inport23_r)
{
- system1_state *state = space->machine().driver_data<system1_state>();
-// logerror("IN $23 : pc = %04x - step = %02x\n",cpu_get_pc(&space->device()),state->m_nobb_inport23_step);
- return(state->m_nobb_inport23_step);
+// logerror("IN $23 : pc = %04x - step = %02x\n",cpu_get_pc(&space.device()),m_nobb_inport23_step);
+ return(m_nobb_inport23_step);
}
-static WRITE8_HANDLER( nobb_outport24_w )
+WRITE8_MEMBER(system1_state::nobb_outport24_w)
{
- system1_state *state = space->machine().driver_data<system1_state>();
-// logerror("OUT $24 : pc = %04x - data = %02x\n",cpu_get_pc(&space->device()),data);
- state->m_nobb_inport23_step = data;
+// logerror("OUT $24 : pc = %04x - data = %02x\n",cpu_get_pc(&space.device()),data);
+ m_nobb_inport23_step = data;
}
@@ -790,7 +780,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, system1_state )
AM_RANGE(0x8000, 0x87ff) AM_MIRROR(0x1800) AM_RAM
AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1fff) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1fff) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
- AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ_LEGACY(sound_data_r)
+ AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x1fff) AM_READ(sound_data_r)
ADDRESS_MAP_END
@@ -803,8 +793,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, system1_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0xffff) AM_READWRITE_LEGACY(mcu_io_r, mcu_io_w)
- AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE_LEGACY(mcu_control_w)
+ AM_RANGE(0x0000, 0xffff) AM_READWRITE(mcu_io_r, mcu_io_w)
+ AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITE(mcu_control_w)
ADDRESS_MAP_END
@@ -812,7 +802,7 @@ static ADDRESS_MAP_START( nob_mcu_io_map, AS_IO, 8, system1_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_RAM AM_BASE(m_nob_mcu_latch)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_WRITEONLY AM_BASE(m_nob_mcu_status)
- AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE_LEGACY(nob_mcu_control_p2_w)
+ AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITE(nob_mcu_control_p2_w)
ADDRESS_MAP_END
@@ -2118,8 +2108,8 @@ static const ppi8255_interface ppi_interface =
DEVCB_NULL,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, soundport_w),
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, videomode_w),
+ DEVCB_DRIVER_MEMBER(system1_state, soundport_w),
+ DEVCB_DRIVER_MEMBER(system1_state, videomode_w),
DEVCB_HANDLER(sound_control_w)
};
@@ -2127,10 +2117,10 @@ static Z80PIO_INTERFACE( pio_interface )
{
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, soundport_w),
+ DEVCB_DRIVER_MEMBER(system1_state, soundport_w),
DEVCB_CPU_INPUT_LINE("soundcpu", INPUT_LINE_NMI),
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("maincpu", PROGRAM, videomode_w),
+ DEVCB_DRIVER_MEMBER(system1_state, videomode_w),
DEVCB_NULL
};
@@ -4700,10 +4690,10 @@ static DRIVER_INIT( myherok )
myheroj_decode(machine, "maincpu");
}
-static READ8_HANDLER( nob_start_r )
+READ8_MEMBER(system1_state::nob_start_r)
{
/* in reality, it's likely some M1-dependent behavior */
- return (cpu_get_pc(&space->device()) <= 0x0003) ? 0x80 : space->machine().region("maincpu")->base()[1];
+ return (cpu_get_pc(&space.device()) <= 0x0003) ? 0x80 : machine().region("maincpu")->base()[1];
}
static DRIVER_INIT( nob )
@@ -4716,11 +4706,12 @@ static DRIVER_INIT( nob )
/* hack to fix incorrect JMP at start, which should obviously be to $0080 */
/* patching the ROM causes errors in the self-test */
/* in real-life, it could be some behavior dependent upon M1 */
- space->install_legacy_read_handler(0x0001, 0x0001, FUNC(nob_start_r));
+ system1_state *state = machine.driver_data<system1_state>();
+ space->install_read_handler(0x0001, 0x0001, read8_delegate(FUNC(system1_state::nob_start_r),state));
/* install MCU communications */
- iospace->install_legacy_readwrite_handler(0x18, 0x18, 0x00, 0x00, FUNC(nob_maincpu_latch_r), FUNC(nob_maincpu_latch_w));
- iospace->install_legacy_read_handler(0x1c, 0x1c, FUNC(nob_mcu_status_r));
+ iospace->install_readwrite_handler(0x18, 0x18, 0x00, 0x00, read8_delegate(FUNC(system1_state::nob_maincpu_latch_r),state), write8_delegate(FUNC(system1_state::nob_maincpu_latch_w),state));
+ iospace->install_read_handler(0x1c, 0x1c, read8_delegate(FUNC(system1_state::nob_mcu_status_r),state));
}
static DRIVER_INIT( nobb )
@@ -4747,10 +4738,11 @@ static DRIVER_INIT( nobb )
DRIVER_INIT_CALL(bank44);
- iospace->install_legacy_read_handler(0x1c, 0x1c, FUNC(nobb_inport1c_r));
- iospace->install_legacy_read_handler(0x22, 0x22, FUNC(nobb_inport22_r));
- iospace->install_legacy_read_handler(0x23, 0x23, FUNC(nobb_inport23_r));
- iospace->install_legacy_write_handler(0x24, 0x24, FUNC(nobb_outport24_w));
+ system1_state *state = machine.driver_data<system1_state>();
+ iospace->install_read_handler(0x1c, 0x1c, read8_delegate(FUNC(system1_state::nobb_inport1c_r),state));
+ iospace->install_read_handler(0x22, 0x22, read8_delegate(FUNC(system1_state::nobb_inport22_r),state));
+ iospace->install_read_handler(0x23, 0x23, read8_delegate(FUNC(system1_state::nobb_inport23_r),state));
+ iospace->install_write_handler(0x24, 0x24, write8_delegate(FUNC(system1_state::nobb_outport24_w),state));
}
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index 58f1ccc95b3..60dc6c6f196 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -108,14 +108,13 @@ static INTERRUPT_GEN( sys16_interrupt )
/***************************************************************************/
-static WRITE16_HANDLER( sound_command_nmi_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sound_command_nmi_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -128,7 +127,7 @@ static ADDRESS_MAP_START( shinobib_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x412000, 0x412fff) AM_RAM AM_BASE(m_bg1_tileram)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sound_command_nmi_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sound_command_nmi_w)
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2")
@@ -147,29 +146,27 @@ ADDRESS_MAP_END
/***************************************************************************/
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sound_command_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_soundcpu, 0, HOLD_LINE);
+ device_set_input_line(m_soundcpu, 0, HOLD_LINE);
}
}
-static WRITE16_HANDLER( sys16_coinctrl_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sys16_coinctrl_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_coinctrl = data & 0xff;
- state->m_refreshenable = state->m_coinctrl & 0x20;
- set_led_status(space->machine(), 1, state->m_coinctrl & 0x08);
- set_led_status(space->machine(), 0, state->m_coinctrl & 0x04);
- coin_counter_w(space->machine(), 1, state->m_coinctrl & 0x02);
- coin_counter_w(space->machine(), 0, state->m_coinctrl & 0x01);
+ m_coinctrl = data & 0xff;
+ m_refreshenable = m_coinctrl & 0x20;
+ set_led_status(machine(), 1, m_coinctrl & 0x08);
+ set_led_status(machine(), 0, m_coinctrl & 0x04);
+ coin_counter_w(machine(), 1, m_coinctrl & 0x02);
+ coin_counter_w(machine(), 0, m_coinctrl & 0x01);
/* bit 6 is also used (1 most of the time; 0 in dduxbl, sdi, wb3;
tturf has it normally 1 but 0 after coin insertion) */
/* eswat sets bit 4 */
@@ -186,13 +183,13 @@ static ADDRESS_MAP_START( passshtb_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
AM_RANGE(0xc46000, 0xc46001) AM_WRITE_LEGACY(s16a_bootleg_bgscrolly_w)
AM_RANGE(0xc46002, 0xc46003) AM_WRITE_LEGACY(s16a_bootleg_bgscrollx_w)
AM_RANGE(0xc46004, 0xc46005) AM_WRITE_LEGACY(s16a_bootleg_fgscrolly_w)
@@ -204,60 +201,56 @@ ADDRESS_MAP_END
/***************************************************************************/
-static READ16_HANDLER( passht4b_service_r )
+READ16_MEMBER(segas1x_bootleg_state::passht4b_service_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- UINT16 val = input_port_read(space->machine(), "SERVICE");
+ UINT16 val = input_port_read(machine(), "SERVICE");
- if(!(input_port_read(space->machine(), "P1") & 0x40)) val &= 0xef;
- if(!(input_port_read(space->machine(), "P2") & 0x40)) val &= 0xdf;
- if(!(input_port_read(space->machine(), "P3") & 0x40)) val &= 0xbf;
- if(!(input_port_read(space->machine(), "P4") & 0x40)) val &= 0x7f;
+ if(!(input_port_read(machine(), "P1") & 0x40)) val &= 0xef;
+ if(!(input_port_read(machine(), "P2") & 0x40)) val &= 0xdf;
+ if(!(input_port_read(machine(), "P3") & 0x40)) val &= 0xbf;
+ if(!(input_port_read(machine(), "P4") & 0x40)) val &= 0x7f;
- state->m_passht4b_io3_val = (input_port_read(space->machine(), "P1") << 4) | (input_port_read(space->machine(), "P3") & 0xf);
- state->m_passht4b_io2_val = (input_port_read(space->machine(), "P2") << 4) | (input_port_read(space->machine(), "P4") & 0xf);
+ m_passht4b_io3_val = (input_port_read(machine(), "P1") << 4) | (input_port_read(machine(), "P3") & 0xf);
+ m_passht4b_io2_val = (input_port_read(machine(), "P2") << 4) | (input_port_read(machine(), "P4") & 0xf);
- state->m_passht4b_io1_val = 0xff;
+ m_passht4b_io1_val = 0xff;
// player 1 buttons
- if(!(input_port_read(space->machine(), "P1") & 0x10)) state->m_passht4b_io1_val &= 0xfe;
- if(!(input_port_read(space->machine(), "P1") & 0x20)) state->m_passht4b_io1_val &= 0xfd;
- if(!(input_port_read(space->machine(), "P1") & 0x80)) state->m_passht4b_io1_val &= 0xfc;
+ if(!(input_port_read(machine(), "P1") & 0x10)) m_passht4b_io1_val &= 0xfe;
+ if(!(input_port_read(machine(), "P1") & 0x20)) m_passht4b_io1_val &= 0xfd;
+ if(!(input_port_read(machine(), "P1") & 0x80)) m_passht4b_io1_val &= 0xfc;
// player 2 buttons
- if(!(input_port_read(space->machine(), "P2") & 0x10)) state->m_passht4b_io1_val &= 0xfb;
- if(!(input_port_read(space->machine(), "P2") & 0x20)) state->m_passht4b_io1_val &= 0xf7;
- if(!(input_port_read(space->machine(), "P2") & 0x80)) state->m_passht4b_io1_val &= 0xf3;
+ if(!(input_port_read(machine(), "P2") & 0x10)) m_passht4b_io1_val &= 0xfb;
+ if(!(input_port_read(machine(), "P2") & 0x20)) m_passht4b_io1_val &= 0xf7;
+ if(!(input_port_read(machine(), "P2") & 0x80)) m_passht4b_io1_val &= 0xf3;
// player 3 buttons
- if(!(input_port_read(space->machine(), "P3") & 0x10)) state->m_passht4b_io1_val &= 0xef;
- if(!(input_port_read(space->machine(), "P3") & 0x20)) state->m_passht4b_io1_val &= 0xdf;
- if(!(input_port_read(space->machine(), "P3") & 0x80)) state->m_passht4b_io1_val &= 0xcf;
+ if(!(input_port_read(machine(), "P3") & 0x10)) m_passht4b_io1_val &= 0xef;
+ if(!(input_port_read(machine(), "P3") & 0x20)) m_passht4b_io1_val &= 0xdf;
+ if(!(input_port_read(machine(), "P3") & 0x80)) m_passht4b_io1_val &= 0xcf;
// player 4 buttons
- if(!(input_port_read(space->machine(), "P4") & 0x10)) state->m_passht4b_io1_val &= 0xbf;
- if(!(input_port_read(space->machine(), "P4") & 0x20)) state->m_passht4b_io1_val &= 0x7f;
- if(!(input_port_read(space->machine(), "P4") & 0x80)) state->m_passht4b_io1_val &= 0x3f;
+ if(!(input_port_read(machine(), "P4") & 0x10)) m_passht4b_io1_val &= 0xbf;
+ if(!(input_port_read(machine(), "P4") & 0x20)) m_passht4b_io1_val &= 0x7f;
+ if(!(input_port_read(machine(), "P4") & 0x80)) m_passht4b_io1_val &= 0x3f;
return val;
}
-static READ16_HANDLER( passht4b_io1_r )
+READ16_MEMBER(segas1x_bootleg_state::passht4b_io1_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- return state->m_passht4b_io1_val;
+ return m_passht4b_io1_val;
}
-static READ16_HANDLER( passht4b_io2_r )
+READ16_MEMBER(segas1x_bootleg_state::passht4b_io2_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- return state->m_passht4b_io2_val;
+ return m_passht4b_io2_val;
}
-static READ16_HANDLER( passht4b_io3_r )
+READ16_MEMBER(segas1x_bootleg_state::passht4b_io3_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- return state->m_passht4b_io3_val;
+ return m_passht4b_io3_val;
}
static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16, segas1x_bootleg_state )
@@ -268,18 +261,18 @@ static ADDRESS_MAP_START( passht4b_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x410000, 0x410fff) AM_RAM AM_BASE(m_textram)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc41000, 0xc41001) AM_READ_LEGACY(passht4b_service_r)
- AM_RANGE(0xc41002, 0xc41003) AM_READ_LEGACY(passht4b_io1_r)
- AM_RANGE(0xc41004, 0xc41005) AM_READ_LEGACY(passht4b_io2_r)
- AM_RANGE(0xc41006, 0xc41007) AM_READ_LEGACY(passht4b_io3_r)
+ AM_RANGE(0xc41000, 0xc41001) AM_READ(passht4b_service_r)
+ AM_RANGE(0xc41002, 0xc41003) AM_READ(passht4b_io1_r)
+ AM_RANGE(0xc41004, 0xc41005) AM_READ(passht4b_io2_r)
+ AM_RANGE(0xc41006, 0xc41007) AM_READ(passht4b_io3_r)
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
AM_RANGE(0xc43000, 0xc43001) AM_READ_PORT("P1") // test mode only
AM_RANGE(0xc43002, 0xc43003) AM_READ_PORT("P2")
AM_RANGE(0xc43004, 0xc43005) AM_READ_PORT("P3")
AM_RANGE(0xc43006, 0xc43007) AM_READ_PORT("P4")
- AM_RANGE(0xc4600a, 0xc4600b) AM_WRITE_LEGACY(sys16_coinctrl_w) /* coin counter doesn't work */
+ AM_RANGE(0xc4600a, 0xc4600b) AM_WRITE(sys16_coinctrl_w) /* coin counter doesn't work */
AM_RANGE(0xc46000, 0xc46001) AM_WRITE_LEGACY(s16a_bootleg_bgscrolly_w)
AM_RANGE(0xc46002, 0xc46003) AM_WRITE_LEGACY(s16a_bootleg_bgscrollx_w)
AM_RANGE(0xc46004, 0xc46005) AM_WRITE_LEGACY(s16a_bootleg_fgscrolly_w)
@@ -291,19 +284,18 @@ ADDRESS_MAP_END
/***************************************************************************/
-static WRITE16_HANDLER( sys16_tilebank_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sys16_tilebank_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
switch (offset & 1)
{
case 0:
- state->m_tile_bank0 = data & 0x0f;
+ m_tile_bank0 = data & 0x0f;
break;
case 1:
- state->m_tile_bank1 = data & 0x0f;
+ m_tile_bank1 = data & 0x0f;
break;
}
}
@@ -311,20 +303,20 @@ static WRITE16_HANDLER( sys16_tilebank_w )
static ADDRESS_MAP_START( wb3bbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE_LEGACY(sys16_tilebank_w)
+ AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w)
AM_RANGE(0x400000, 0x407fff) AM_RAM // tilemap ram on the original, used as a buffer on the bootlegs
AM_RANGE(0x409000, 0x40afff) AM_RAM AM_BASE(m_bg0_tileram)
AM_RANGE(0x40a000, 0x40bfff) AM_RAM AM_BASE(m_bg1_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM AM_BASE(m_textram)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
AM_RANGE(0xC44000, 0xC44001) AM_WRITENOP
AM_RANGE(0xc46000, 0xc46001) AM_WRITE_LEGACY(s16a_bootleg_bgscrolly_w)
AM_RANGE(0xc46002, 0xc46003) AM_WRITE_LEGACY(s16a_bootleg_bgscrollx_w)
@@ -364,10 +356,9 @@ ADDRESS_MAP_END
There seems to be more data in the high bits of the ROM bank control word which may be related.
***************************************************************************/
-static WRITE8_HANDLER( tturfbl_msm5205_data_w )
+WRITE8_MEMBER(segas1x_bootleg_state::tturfbl_msm5205_data_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- state->m_sample_buffer = data;
+ m_sample_buffer = data;
}
static void tturfbl_msm5205_callback( device_t *device )
@@ -388,53 +379,51 @@ static const msm5205_interface tturfbl_msm5205_interface =
};
-static READ8_HANDLER( tturfbl_soundbank_r )
+READ8_MEMBER(segas1x_bootleg_state::tturfbl_soundbank_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- if (state->m_soundbank_ptr)
- return state->m_soundbank_ptr[offset & 0x3fff];
+ if (m_soundbank_ptr)
+ return m_soundbank_ptr[offset & 0x3fff];
return 0x80;
}
-static WRITE8_HANDLER( tturfbl_soundbank_w )
+WRITE8_MEMBER(segas1x_bootleg_state::tturfbl_soundbank_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- UINT8 *mem = space->machine().region("soundcpu")->base();
+ UINT8 *mem = machine().region("soundcpu")->base();
switch(data)
{
case 0:
- state->m_soundbank_ptr = &mem[0x18000]; /* tt014d68 8000-bfff */
+ m_soundbank_ptr = &mem[0x18000]; /* tt014d68 8000-bfff */
break;
case 1:
- state->m_soundbank_ptr = &mem[0x1c000]; /* tt014d68 c000-ffff */
+ m_soundbank_ptr = &mem[0x1c000]; /* tt014d68 c000-ffff */
break;
case 2:
- state->m_soundbank_ptr = &mem[0x20000]; /* tt0246ff 0000-3fff */
+ m_soundbank_ptr = &mem[0x20000]; /* tt0246ff 0000-3fff */
break;
case 3:
- state->m_soundbank_ptr = &mem[0x24000]; /* tt0246ff 4000-7fff */
+ m_soundbank_ptr = &mem[0x24000]; /* tt0246ff 4000-7fff */
break;
case 4:
- state->m_soundbank_ptr = &mem[0x28000]; /* tt0246ff 8000-bfff */
+ m_soundbank_ptr = &mem[0x28000]; /* tt0246ff 8000-bfff */
break;
case 8:
- state->m_soundbank_ptr = mem;
+ m_soundbank_ptr = mem;
break;
default:
- state->m_soundbank_ptr = NULL;
- logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space->device()));
+ m_soundbank_ptr = NULL;
+ logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space.device()));
break;
}
}
static ADDRESS_MAP_START(tturfbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_READ_LEGACY(tturfbl_soundbank_r)
- AM_RANGE(0xe000, 0xe000) AM_WRITE_LEGACY(tturfbl_soundbank_w)
+ AM_RANGE(0x8000, 0xbfff) AM_READ(tturfbl_soundbank_r)
+ AM_RANGE(0xe000, 0xe000) AM_WRITE(tturfbl_soundbank_w)
AM_RANGE(0xe800, 0xe800) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(tturfbl_msm5205_data_w)
+ AM_RANGE(0xf000, 0xf000) AM_WRITE(tturfbl_msm5205_data_w)
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -524,13 +513,13 @@ static ADDRESS_MAP_START( bayroute_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x710000, 0x710fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0x900000, 0x900001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0x900000, 0x900001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1")
AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2")
AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE")
AM_RANGE(0x902002, 0x902003) AM_READ_PORT("DSW1")
AM_RANGE(0x902000, 0x902001) AM_READ_PORT("DSW2")
- AM_RANGE(0xff0006, 0xff0007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xff0006, 0xff0007) AM_WRITE(sound_command_w)
AM_RANGE(0xff0020, 0xff003f) AM_WRITENOP // config regs
ADDRESS_MAP_END
#endif
@@ -549,65 +538,60 @@ ADDRESS_MAP_END
/***************************************************************************/
-static WRITE16_HANDLER( s16bl_bgpage_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_bgpage_w)
{
- set_bg_page(space->machine(), data);
+ set_bg_page(machine(), data);
}
-static WRITE16_HANDLER( s16bl_fgpage_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgpage_w)
{
- set_fg_page(space->machine(), data);
+ set_fg_page(machine(), data);
}
-static WRITE16_HANDLER( s16bl_fgscrollx_bank_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgscrollx_bank_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0x1ff;
int bank = (data & 0xc000) >> 14;
scroll += 0x200;
- set_tile_bank(space->machine(), bank);
+ set_tile_bank(machine(), bank);
scroll += 3; // so that the character portraits in attract mode are properly aligned (alighnment on character select no longer matches original tho?)
- state->m_fg_scrollx = -scroll;
+ m_fg_scrollx = -scroll;
}
-static WRITE16_HANDLER( s16bl_fgscrollx_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgscrollx_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0x1ff;
scroll += 0x200;
scroll += 3;
- state->m_fg_scrollx = -scroll;
+ m_fg_scrollx = -scroll;
}
-static WRITE16_HANDLER( s16bl_fgscrolly_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_fgscrolly_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0xff;
- state->m_fg_scrolly = scroll;
+ m_fg_scrolly = scroll;
}
-static WRITE16_HANDLER( s16bl_bgscrollx_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_bgscrollx_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0x1ff;
scroll+= 0x200;
scroll+= 1; // so that the background fo the select screen is properly aligned
- state->m_bg_scrollx = -scroll;
+ m_bg_scrollx = -scroll;
}
-static WRITE16_HANDLER( s16bl_bgscrolly_w )
+WRITE16_MEMBER(segas1x_bootleg_state::s16bl_bgscrolly_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0xff;
- state->m_bg_scrolly = scroll;
+ m_bg_scrolly = scroll;
}
@@ -615,15 +599,15 @@ static ADDRESS_MAP_START( goldnaxeb1_map, AS_PROGRAM, 16, segas1x_bootleg_state
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
- AM_RANGE(0x118000, 0x118001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0x118008, 0x118009) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) // and tile bank
- AM_RANGE(0x118010, 0x118011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0x118018, 0x118019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0x118020, 0x118021) AM_WRITE_LEGACY(s16bl_fgpage_w)
- AM_RANGE(0x118028, 0x118029) AM_WRITE_LEGACY(s16bl_bgpage_w)
+ AM_RANGE(0x118000, 0x118001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0x118008, 0x118009) AM_WRITE(s16bl_fgscrollx_bank_w) // and tile bank
+ AM_RANGE(0x118010, 0x118011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0x118018, 0x118019) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0x118020, 0x118021) AM_WRITE(s16bl_fgpage_w)
+ AM_RANGE(0x118028, 0x118029) AM_WRITE(s16bl_bgpage_w)
AM_RANGE(0x140000, 0x143fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2")
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
@@ -642,14 +626,14 @@ static ADDRESS_MAP_START( bayrouteb1_map, AS_PROGRAM, 16, segas1x_bootleg_state
AM_RANGE(0x600000, 0x600fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x710000, 0x710fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
- AM_RANGE(0x718000, 0x718001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0x718008, 0x718009) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) // and tile bank
- AM_RANGE(0x718010, 0x718011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0x718018, 0x718019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0x718020, 0x718021) AM_WRITE_LEGACY(s16bl_fgpage_w)
- AM_RANGE(0x718028, 0x718029) AM_WRITE_LEGACY(s16bl_bgpage_w)
+ AM_RANGE(0x718000, 0x718001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0x718008, 0x718009) AM_WRITE(s16bl_fgscrollx_bank_w) // and tile bank
+ AM_RANGE(0x718010, 0x718011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0x718018, 0x718019) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0x718020, 0x718021) AM_WRITE(s16bl_fgpage_w)
+ AM_RANGE(0x718028, 0x718029) AM_WRITE(s16bl_bgpage_w)
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1")
AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2")
AM_RANGE(0x902000, 0x902001) AM_READ_PORT("DSW2")
@@ -677,36 +661,32 @@ static void datsu_set_pages( running_machine &machine )
set_bg_page(machine, page);
}
-static WRITE16_HANDLER( datsu_page0_w )
+WRITE16_MEMBER(segas1x_bootleg_state::datsu_page0_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- COMBINE_DATA(&state->m_datsu_page[0]);
- datsu_set_pages(space->machine());
+ COMBINE_DATA(&m_datsu_page[0]);
+ datsu_set_pages(machine());
}
-static WRITE16_HANDLER( datsu_page1_w )
+WRITE16_MEMBER(segas1x_bootleg_state::datsu_page1_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- COMBINE_DATA(&state->m_datsu_page[1]);
- datsu_set_pages(space->machine());
+ COMBINE_DATA(&m_datsu_page[1]);
+ datsu_set_pages(machine());
}
-static WRITE16_HANDLER( datsu_page2_w )
+WRITE16_MEMBER(segas1x_bootleg_state::datsu_page2_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- COMBINE_DATA(&state->m_datsu_page[2]);
- datsu_set_pages(space->machine());
+ COMBINE_DATA(&m_datsu_page[2]);
+ datsu_set_pages(machine());
}
-static WRITE16_HANDLER( datsu_page3_w )
+WRITE16_MEMBER(segas1x_bootleg_state::datsu_page3_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- COMBINE_DATA(&state->m_datsu_page[3]);
- datsu_set_pages(space->machine());
+ COMBINE_DATA(&m_datsu_page[3]);
+ datsu_set_pages(machine());
}
static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16, segas1x_bootleg_state )
@@ -715,121 +695,115 @@ static ADDRESS_MAP_START( bayrouteb2_map, AS_PROGRAM, 16, segas1x_bootleg_state
AM_RANGE(0x600000, 0x600fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x700000, 0x70ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x710000, 0x710fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
- AM_RANGE(0x718000, 0x718001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0x718008, 0x718009) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w) // and tile bank
- AM_RANGE(0x718010, 0x718011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0x718018, 0x718019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0x718020, 0x718021) AM_WRITE_LEGACY(datsu_page0_w)
- AM_RANGE(0x718022, 0x718023) AM_WRITE_LEGACY(datsu_page1_w)
- AM_RANGE(0x718024, 0x718025) AM_WRITE_LEGACY(datsu_page2_w)
- AM_RANGE(0x718026, 0x718027) AM_WRITE_LEGACY(datsu_page3_w)
+ AM_RANGE(0x718000, 0x718001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0x718008, 0x718009) AM_WRITE(s16bl_fgscrollx_bank_w) // and tile bank
+ AM_RANGE(0x718010, 0x718011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0x718018, 0x718019) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0x718020, 0x718021) AM_WRITE(datsu_page0_w)
+ AM_RANGE(0x718022, 0x718023) AM_WRITE(datsu_page1_w)
+ AM_RANGE(0x718024, 0x718025) AM_WRITE(datsu_page2_w)
+ AM_RANGE(0x718026, 0x718027) AM_WRITE(datsu_page3_w)
AM_RANGE(0x800000, 0x800fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
AM_RANGE(0x900000, 0x900001) AM_READ_PORT("DSW1")
AM_RANGE(0x900002, 0x900003) AM_READ_PORT("DSW2")
- AM_RANGE(0x900006, 0x900007) AM_WRITE_LEGACY(sound_command_w)
- AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0x900006, 0x900007) AM_WRITE(sound_command_w)
+ AM_RANGE(0x901000, 0x901001) AM_READ_PORT("SERVICE") AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0x901002, 0x901003) AM_READ_PORT("P1")
AM_RANGE(0x901006, 0x901007) AM_READ_PORT("P2")
ADDRESS_MAP_END
static ADDRESS_MAP_START( dduxbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
- AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE_LEGACY(sys16_tilebank_w)
+ AM_RANGE(0x3f0000, 0x3fffff) AM_WRITE(sys16_tilebank_w)
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w)
- AM_RANGE(0xc40006, 0xc40007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
+ AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_w)
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
- AM_RANGE(0xC46000, 0xC46001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0xC46008, 0xC46009) AM_WRITE_LEGACY(s16bl_fgscrollx_w)
- AM_RANGE(0xC46010, 0xC46011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0xC46018, 0xC46019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0xC46020, 0xC46021) AM_WRITE_LEGACY(datsu_page0_w)
- AM_RANGE(0xC46022, 0xC46023) AM_WRITE_LEGACY(datsu_page1_w)
- AM_RANGE(0xC46024, 0xC46025) AM_WRITE_LEGACY(datsu_page2_w)
- AM_RANGE(0xC46026, 0xC46027) AM_WRITE_LEGACY(datsu_page3_w)
+ AM_RANGE(0xC46000, 0xC46001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0xC46008, 0xC46009) AM_WRITE(s16bl_fgscrollx_w)
+ AM_RANGE(0xC46010, 0xC46011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0xC46018, 0xC46019) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0xC46020, 0xC46021) AM_WRITE(datsu_page0_w)
+ AM_RANGE(0xC46022, 0xC46023) AM_WRITE(datsu_page1_w)
+ AM_RANGE(0xC46024, 0xC46025) AM_WRITE(datsu_page2_w)
+ AM_RANGE(0xC46026, 0xC46027) AM_WRITE(datsu_page3_w)
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
-static WRITE16_HANDLER( goldnaxeb2_fgscrollx_w )
+WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_fgscrollx_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0x1ff;
int bank = (data & 0xc000) >> 14;
- set_tile_bank(space->machine(), bank);
+ set_tile_bank(machine(), bank);
scroll += 0x1f6;
scroll &= 0x3ff;
- state->m_fg_scrollx = -scroll;
+ m_fg_scrollx = -scroll;
}
-static WRITE16_HANDLER( goldnaxeb2_bgscrollx_w )
+WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_bgscrollx_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0x1ff;
scroll += 0x1f4;
scroll &= 0x3ff;
- state->m_bg_scrollx = -scroll;
+ m_bg_scrollx = -scroll;
}
-static WRITE16_HANDLER( goldnaxeb2_fgscrolly_w )
+WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_fgscrolly_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0xff;
scroll += 0x1;
- state->m_fg_scrolly = scroll;
+ m_fg_scrolly = scroll;
}
-static WRITE16_HANDLER( goldnaxeb2_bgscrolly_w )
+WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_bgscrolly_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
int scroll = data & 0xff;
scroll += 0x1;
- state->m_bg_scrolly = scroll;
+ m_bg_scrolly = scroll;
}
-static WRITE16_HANDLER( goldnaxeb2_fgpage_w )
+WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_fgpage_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
UINT16 page;
- COMBINE_DATA(&state->m_goldnaxeb2_fgpage[offset]);
+ COMBINE_DATA(&m_goldnaxeb2_fgpage[offset]);
- page = ((state->m_goldnaxeb2_fgpage[1] & 0xf) << 0) |
- ((state->m_goldnaxeb2_fgpage[0] & 0xf) << 4) |
- ((state->m_goldnaxeb2_fgpage[3] & 0xf) << 8) |
- ((state->m_goldnaxeb2_fgpage[2] & 0xf) << 12);
+ page = ((m_goldnaxeb2_fgpage[1] & 0xf) << 0) |
+ ((m_goldnaxeb2_fgpage[0] & 0xf) << 4) |
+ ((m_goldnaxeb2_fgpage[3] & 0xf) << 8) |
+ ((m_goldnaxeb2_fgpage[2] & 0xf) << 12);
- set_fg_page(space->machine(), page ^ 0xffff);
+ set_fg_page(machine(), page ^ 0xffff);
}
-static WRITE16_HANDLER( goldnaxeb2_bgpage_w )
+WRITE16_MEMBER(segas1x_bootleg_state::goldnaxeb2_bgpage_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
UINT16 page;
- COMBINE_DATA(&state->m_goldnaxeb2_bgpage[offset]);
+ COMBINE_DATA(&m_goldnaxeb2_bgpage[offset]);
- page = ((state->m_goldnaxeb2_bgpage[1] & 0xf) << 0) |
- ((state->m_goldnaxeb2_bgpage[0] & 0xf) << 4) |
- ((state->m_goldnaxeb2_bgpage[3] & 0xf) << 8) |
- ((state->m_goldnaxeb2_bgpage[2] & 0xf) << 12);
+ page = ((m_goldnaxeb2_bgpage[1] & 0xf) << 0) |
+ ((m_goldnaxeb2_bgpage[0] & 0xf) << 4) |
+ ((m_goldnaxeb2_bgpage[3] & 0xf) << 8) |
+ ((m_goldnaxeb2_bgpage[2] & 0xf) << 12);
- set_bg_page(space->machine(), page ^ 0xffff);
+ set_bg_page(machine(), page ^ 0xffff);
}
static ADDRESS_MAP_START( goldnaxeb2_map, AS_PROGRAM, 16, segas1x_bootleg_state )
@@ -844,12 +818,12 @@ static ADDRESS_MAP_START( goldnaxeb2_map, AS_PROGRAM, 16, segas1x_bootleg_state
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc43000, 0xc43001) AM_WRITENOP
- AM_RANGE(0xc44000, 0xc44001) AM_WRITE_LEGACY(goldnaxeb2_fgscrolly_w)
- AM_RANGE(0xc44008, 0xc44009) AM_WRITE_LEGACY(goldnaxeb2_fgscrollx_w) // and tile bank
- AM_RANGE(0xc44010, 0xc44011) AM_WRITE_LEGACY(goldnaxeb2_bgscrolly_w)
- AM_RANGE(0xc44018, 0xc44019) AM_WRITE_LEGACY(goldnaxeb2_bgscrollx_w)
- AM_RANGE(0xc44020, 0xc44027) AM_WRITE_LEGACY(goldnaxeb2_bgpage_w) AM_BASE(m_goldnaxeb2_bgpage)
- AM_RANGE(0xc44060, 0xc44067) AM_WRITE_LEGACY(goldnaxeb2_fgpage_w) AM_BASE(m_goldnaxeb2_fgpage)
+ AM_RANGE(0xc44000, 0xc44001) AM_WRITE(goldnaxeb2_fgscrolly_w)
+ AM_RANGE(0xc44008, 0xc44009) AM_WRITE(goldnaxeb2_fgscrollx_w) // and tile bank
+ AM_RANGE(0xc44010, 0xc44011) AM_WRITE(goldnaxeb2_bgscrolly_w)
+ AM_RANGE(0xc44018, 0xc44019) AM_WRITE(goldnaxeb2_bgscrollx_w)
+ AM_RANGE(0xc44020, 0xc44027) AM_WRITE(goldnaxeb2_bgpage_w) AM_BASE(m_goldnaxeb2_bgpage)
+ AM_RANGE(0xc44060, 0xc44067) AM_WRITE(goldnaxeb2_fgpage_w) AM_BASE(m_goldnaxeb2_fgpage)
AM_RANGE(0xc46000, 0xc46001) AM_WRITENOP
AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP
AM_RANGE(0xfe0006, 0xfe0007) AM_WRITENOP
@@ -867,7 +841,7 @@ static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
- AM_RANGE(0x600006, 0x600007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w)
AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE")
AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1")
AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2")
@@ -877,53 +851,52 @@ static ADDRESS_MAP_START( fpointbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
AM_RANGE(0x843000, 0x843001) AM_WRITENOP
- AM_RANGE(0xC46000, 0xC46001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0xC46008, 0xC46009) AM_WRITE_LEGACY(s16bl_fgscrollx_w)
- AM_RANGE(0xC46010, 0xC46011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0xC46018, 0xC46019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
+ AM_RANGE(0xC46000, 0xC46001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0xC46008, 0xC46009) AM_WRITE(s16bl_fgscrollx_w)
+ AM_RANGE(0xC46010, 0xC46011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0xC46018, 0xC46019) AM_WRITE(s16bl_bgscrollx_w)
- AM_RANGE(0xC46020, 0xC46021) AM_WRITE_LEGACY(datsu_page0_w)
- AM_RANGE(0xc46022, 0xc46023) AM_WRITE_LEGACY(datsu_page1_w)
- AM_RANGE(0xC46024, 0xC46025) AM_WRITE_LEGACY(datsu_page2_w)
- AM_RANGE(0xC46026, 0xC46027) AM_WRITE_LEGACY(datsu_page3_w)
+ AM_RANGE(0xC46020, 0xC46021) AM_WRITE(datsu_page0_w)
+ AM_RANGE(0xc46022, 0xc46023) AM_WRITE(datsu_page1_w)
+ AM_RANGE(0xC46024, 0xC46025) AM_WRITE(datsu_page2_w)
+ AM_RANGE(0xC46026, 0xC46027) AM_WRITE(datsu_page3_w)
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
-static WRITE16_HANDLER( eswat_tilebank0_w )
+WRITE16_MEMBER(segas1x_bootleg_state::eswat_tilebank0_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_eswat_tilebank0 = data & 0xff;
+ m_eswat_tilebank0 = data & 0xff;
}
}
static ADDRESS_MAP_START( eswatbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE_LEGACY(eswat_tilebank0_w) // external tile bank ( > 0x4000 tiles )
+ AM_RANGE(0x3e2000, 0x3e2001) AM_WRITE(eswat_tilebank0_w) // external tile bank ( > 0x4000 tiles )
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
- AM_RANGE(0x418000, 0x418001) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0x418008, 0x418009) AM_WRITE_LEGACY(s16bl_bgscrollx_w) // and tile bank
- AM_RANGE(0x418010, 0x418011) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0x418018, 0x418019) AM_WRITE_LEGACY(s16bl_fgscrollx_bank_w)
- AM_RANGE(0x418020, 0x418021) AM_WRITE_LEGACY(s16bl_bgpage_w)
- AM_RANGE(0x418028, 0x418029) AM_WRITE_LEGACY(s16bl_fgpage_w)
+ AM_RANGE(0x418000, 0x418001) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0x418008, 0x418009) AM_WRITE(s16bl_bgscrollx_w) // and tile bank
+ AM_RANGE(0x418010, 0x418011) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0x418018, 0x418019) AM_WRITE(s16bl_fgscrollx_bank_w)
+ AM_RANGE(0x418020, 0x418021) AM_WRITE(s16bl_bgpage_w)
+ AM_RANGE(0x418028, 0x418029) AM_WRITE(s16bl_fgpage_w)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2")
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
@@ -935,59 +908,58 @@ static ADDRESS_MAP_START( tetrisbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
- AM_RANGE(0x418000, 0x418001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0x418008, 0x418009) AM_WRITE_LEGACY(s16bl_fgscrollx_w)
- AM_RANGE(0x418010, 0x418011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0x418018, 0x418019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0x418020, 0x418021) AM_WRITE_LEGACY(s16bl_fgpage_w)
- AM_RANGE(0x418028, 0x418029) AM_WRITE_LEGACY(s16bl_bgpage_w)
+ AM_RANGE(0x418000, 0x418001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0x418008, 0x418009) AM_WRITE(s16bl_fgscrollx_w)
+ AM_RANGE(0x418010, 0x418011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0x418018, 0x418019) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0x418020, 0x418021) AM_WRITE(s16bl_fgpage_w)
+ AM_RANGE(0x418028, 0x418029) AM_WRITE(s16bl_bgpage_w)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xc40000, 0xc40001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0xc40000, 0xc40001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P2")
AM_RANGE(0xc42000, 0xc42001) AM_READ_PORT("DSW2")
AM_RANGE(0xc42002, 0xc42003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc42006, 0xc42007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xc42006, 0xc42007) AM_WRITE(sound_command_w)
AM_RANGE(0xc43034, 0xc43035) AM_WRITENOP
AM_RANGE(0xc80000, 0xc80001) AM_NOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM // work ram
ADDRESS_MAP_END
-static READ16_HANDLER( beautyb_unkx_r )
+READ16_MEMBER(segas1x_bootleg_state::beautyb_unkx_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- state->m_beautyb_unkx++;
- state->m_beautyb_unkx &= 0x7f;
- return state->m_beautyb_unkx;
+ m_beautyb_unkx++;
+ m_beautyb_unkx &= 0x7f;
+ return m_beautyb_unkx;
}
static ADDRESS_MAP_START( beautyb_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x000000, 0x00ffff) AM_ROM AM_WRITENOP
AM_RANGE(0x010000, 0x03ffff) AM_WRITENOP
- AM_RANGE(0x0280D6, 0x0280D7) AM_READ_LEGACY(beautyb_unkx_r)
- AM_RANGE(0x0280D8, 0x0280D9) AM_READ_LEGACY(beautyb_unkx_r)
+ AM_RANGE(0x0280D6, 0x0280D7) AM_READ(beautyb_unkx_r)
+ AM_RANGE(0x0280D8, 0x0280D9) AM_READ(beautyb_unkx_r)
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x410000, 0x413fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
- AM_RANGE(0x418000, 0x418001) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0x418008, 0x418009) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0x418010, 0x418011) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0x418018, 0x418019) AM_WRITE_LEGACY(s16bl_fgscrollx_w)
- AM_RANGE(0x418020, 0x418021) AM_WRITE_LEGACY(s16bl_bgpage_w)
- AM_RANGE(0x418028, 0x418029) AM_WRITE_LEGACY(s16bl_fgpage_w)
+ AM_RANGE(0x418000, 0x418001) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0x418008, 0x418009) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0x418010, 0x418011) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0x418018, 0x418019) AM_WRITE(s16bl_fgscrollx_w)
+ AM_RANGE(0x418020, 0x418021) AM_WRITE(s16bl_bgpage_w)
+ AM_RANGE(0x418028, 0x418029) AM_WRITE(s16bl_fgpage_w)
AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0x840000, 0x840fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0xC41000, 0xC41001) AM_READ_LEGACY(beautyb_unkx_r )
- AM_RANGE(0xC41002, 0xC41003) AM_READ_LEGACY(beautyb_unkx_r )
+ AM_RANGE(0xC41000, 0xC41001) AM_READ(beautyb_unkx_r )
+ AM_RANGE(0xC41002, 0xC41003) AM_READ(beautyb_unkx_r )
AM_RANGE(0xc40000, 0xc40001) AM_WRITENOP
AM_RANGE(0xc80000, 0xc80001) AM_WRITENOP
@@ -1004,10 +976,10 @@ static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x400000, 0x40ffff) AM_RAM_WRITE_LEGACY(sys16_tileram_w) AM_BASE(m_tileram)
AM_RANGE(0x410000, 0x410fff) AM_RAM_WRITE_LEGACY(sys16_textram_w) AM_BASE(m_textram)
AM_RANGE(0x500000, 0x500fff) AM_RAM_WRITE_LEGACY(segaic16_paletteram_w) AM_BASE_LEGACY(&segaic16_paletteram)
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(sys16_coinctrl_w)
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(sys16_coinctrl_w)
AM_RANGE(0x600000, 0x600001) AM_READ_PORT("DSW2")
AM_RANGE(0x600002, 0x600003) AM_READ_PORT("DSW1")
- AM_RANGE(0x600006, 0x600007) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x600006, 0x600007) AM_WRITE(sound_command_w)
AM_RANGE(0x601000, 0x601001) AM_READ_PORT("SERVICE")
AM_RANGE(0x601002, 0x601003) AM_READ_PORT("P1")
AM_RANGE(0x601004, 0x601005) AM_READ_PORT("P2")
@@ -1015,52 +987,49 @@ static ADDRESS_MAP_START( tturfbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x602002, 0x602003) AM_READ_PORT("DSW1")
AM_RANGE(0xc44000, 0xc44001) AM_WRITENOP
- AM_RANGE(0xC46000, 0xC46001) AM_WRITE_LEGACY(s16bl_fgscrolly_w)
- AM_RANGE(0xC46008, 0xC46009) AM_WRITE_LEGACY(s16bl_fgscrollx_w)
- AM_RANGE(0xC46010, 0xC46011) AM_WRITE_LEGACY(s16bl_bgscrolly_w)
- AM_RANGE(0xC46018, 0xC46019) AM_WRITE_LEGACY(s16bl_bgscrollx_w)
- AM_RANGE(0xC46020, 0xC46021) AM_WRITE_LEGACY(datsu_page0_w)
- AM_RANGE(0xc46022, 0xc46023) AM_WRITE_LEGACY(datsu_page1_w)
- AM_RANGE(0xC46024, 0xC46025) AM_WRITE_LEGACY(datsu_page2_w)
- AM_RANGE(0xC46026, 0xC46027) AM_WRITE_LEGACY(datsu_page3_w)
+ AM_RANGE(0xC46000, 0xC46001) AM_WRITE(s16bl_fgscrolly_w)
+ AM_RANGE(0xC46008, 0xC46009) AM_WRITE(s16bl_fgscrollx_w)
+ AM_RANGE(0xC46010, 0xC46011) AM_WRITE(s16bl_bgscrolly_w)
+ AM_RANGE(0xC46018, 0xC46019) AM_WRITE(s16bl_bgscrollx_w)
+ AM_RANGE(0xC46020, 0xC46021) AM_WRITE(datsu_page0_w)
+ AM_RANGE(0xc46022, 0xc46023) AM_WRITE(datsu_page1_w)
+ AM_RANGE(0xC46024, 0xC46025) AM_WRITE(datsu_page2_w)
+ AM_RANGE(0xC46026, 0xC46027) AM_WRITE(datsu_page3_w)
ADDRESS_MAP_END
/***************************************************************************/
-static WRITE16_HANDLER( sys18_refreshenable_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sys18_refreshenable_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_refreshenable = data & 0x02;
+ m_refreshenable = data & 0x02;
}
}
-static WRITE16_HANDLER( sys18_tilebank_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sys18_tilebank_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_tile_bank0 = (data >> 0) & 0x0f;
- state->m_tile_bank1 = (data >> 4) & 0x0f;
+ m_tile_bank0 = (data >> 0) & 0x0f;
+ m_tile_bank1 = (data >> 4) & 0x0f;
}
}
-static READ8_HANDLER( system18_bank_r )
+READ8_MEMBER(segas1x_bootleg_state::system18_bank_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- if (state->m_sound_bank != NULL)
- return state->m_sound_bank[offset];
+ if (m_sound_bank != NULL)
+ return m_sound_bank[offset];
return 0xff;
}
static ADDRESS_MAP_START( sound_18_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xa000, 0xbfff) AM_READ_LEGACY(system18_bank_r)
+ AM_RANGE(0xa000, 0xbfff) AM_READ(system18_bank_r)
/**** D/A register ****/
AM_RANGE(0xc000, 0xc008) AM_DEVWRITE_LEGACY("5c68", rf5c68_w)
AM_RANGE(0xd000, 0xdfff) AM_DEVREADWRITE_LEGACY("5c68", rf5c68_mem_r, rf5c68_mem_w)
@@ -1068,26 +1037,25 @@ static ADDRESS_MAP_START( sound_18_map, AS_PROGRAM, 8, segas1x_bootleg_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( sys18_soundbank_w )
+WRITE8_MEMBER(segas1x_bootleg_state::sys18_soundbank_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- UINT8 *mem = space->machine().region("soundcpu")->base();
+ UINT8 *mem = machine().region("soundcpu")->base();
int rom = (data >> 6) & 3;
int bank = (data & 0x3f);
- int mask = state->m_sound_info[rom * 2 + 0];
- int offs = state->m_sound_info[rom * 2 + 1];
+ int mask = m_sound_info[rom * 2 + 0];
+ int offs = m_sound_info[rom * 2 + 1];
if (mask)
- state->m_sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)];
+ m_sound_bank = &mem[0x10000 + offs + ((bank & mask) << 13)];
else
- state->m_sound_bank = NULL;
+ m_sound_bank = NULL;
}
static ADDRESS_MAP_START( sound_18_io_map, AS_IO, 8, segas1x_bootleg_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_LEGACY("3438.0", ym3438_r, ym3438_w)
AM_RANGE(0x90, 0x93) AM_DEVREADWRITE_LEGACY("3438.1", ym3438_r, ym3438_w)
- AM_RANGE(0xa0, 0xa0) AM_WRITE_LEGACY(sys18_soundbank_w)
+ AM_RANGE(0xa0, 0xa0) AM_WRITE(sys18_soundbank_w)
AM_RANGE(0xc0, 0xc0) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -1134,14 +1102,13 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE16_HANDLER( sound_command_irq_w )
+WRITE16_MEMBER(segas1x_bootleg_state::sound_command_irq_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_soundcpu, 0, HOLD_LINE);
+ device_set_input_line(m_soundcpu, 0, HOLD_LINE);
}
}
@@ -1154,7 +1121,7 @@ static ADDRESS_MAP_START( shdancbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc00000, 0xc0ffff) AM_NOP
AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("COINAGE")
AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc40006, 0xc40007) AM_WRITE_LEGACY(sound_command_irq_w)
+ AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_irq_w)
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
@@ -1204,10 +1171,9 @@ ADDRESS_MAP_END
***************************************************************************/
-static WRITE8_HANDLER( shdancbl_msm5205_data_w )
+WRITE8_MEMBER(segas1x_bootleg_state::shdancbl_msm5205_data_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- state->m_sample_buffer = data;
+ m_sample_buffer = data;
}
static void shdancbl_msm5205_callback(device_t *device)
@@ -1227,50 +1193,48 @@ static const msm5205_interface shdancbl_msm5205_interface =
MSM5205_S48_4B
};
-static READ8_HANDLER( shdancbl_soundbank_r )
+READ8_MEMBER(segas1x_bootleg_state::shdancbl_soundbank_r)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- if (state->m_soundbank_ptr)
- return state->m_soundbank_ptr[offset & 0x3fff];
+ if (m_soundbank_ptr)
+ return m_soundbank_ptr[offset & 0x3fff];
return 0xff;
}
-static WRITE8_HANDLER( shdancbl_bankctrl_w )
+WRITE8_MEMBER(segas1x_bootleg_state::shdancbl_bankctrl_w)
{
- segas1x_bootleg_state *state = space->machine().driver_data<segas1x_bootleg_state>();
- UINT8 *mem = space->machine().region("soundcpu")->base();
+ UINT8 *mem = machine().region("soundcpu")->base();
switch (data)
{
case 0:
- state->m_soundbank_ptr = &mem[0x18000]; /* IC45 8000-BFFF */
+ m_soundbank_ptr = &mem[0x18000]; /* IC45 8000-BFFF */
break;
case 1:
- state->m_soundbank_ptr = &mem[0x1C000]; /* IC45 C000-FFFF */
+ m_soundbank_ptr = &mem[0x1C000]; /* IC45 C000-FFFF */
break;
case 2:
- state->m_soundbank_ptr = &mem[0x20000]; /* IC46 0000-3FFF */
+ m_soundbank_ptr = &mem[0x20000]; /* IC46 0000-3FFF */
break;
case 3:
- state->m_soundbank_ptr = &mem[0x24000]; /* IC46 4000-7FFF */
+ m_soundbank_ptr = &mem[0x24000]; /* IC46 4000-7FFF */
break;
default:
- state->m_soundbank_ptr = NULL;
- logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space->device()));
+ m_soundbank_ptr = NULL;
+ logerror("Invalid bank setting %02X (%04X)\n", data, cpu_get_pc(&space.device()));
break;
}
}
static ADDRESS_MAP_START(shdancbl_sound_map, AS_PROGRAM, 8, segas1x_bootleg_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_READ_LEGACY(shdancbl_soundbank_r)
+ AM_RANGE(0x8000, 0xbfff) AM_READ(shdancbl_soundbank_r)
AM_RANGE(0xc000, 0xc00f) AM_WRITENOP
AM_RANGE(0xc400, 0xc400) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(shdancbl_msm5205_data_w)
+ AM_RANGE(0xc800, 0xc800) AM_WRITE(shdancbl_msm5205_data_w)
AM_RANGE(0xcc00, 0xcc03) AM_DEVREADWRITE_LEGACY("3438.0", ym3438_r, ym3438_w)
AM_RANGE(0xd000, 0xd003) AM_DEVREADWRITE_LEGACY("3438.1", ym3438_r, ym3438_w)
- AM_RANGE(0xd400, 0xd400) AM_WRITE_LEGACY(shdancbl_bankctrl_w)
+ AM_RANGE(0xd400, 0xd400) AM_WRITE(shdancbl_bankctrl_w)
AM_RANGE(0xdf00, 0xdfff) AM_NOP
AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -1310,14 +1274,14 @@ static ADDRESS_MAP_START( mwalkbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc40000, 0xc40001) AM_READ_PORT("COINAGE")
AM_RANGE(0xc40002, 0xc40003) AM_READ_PORT("DSW1")
- AM_RANGE(0xc40006, 0xc40007) AM_WRITE_LEGACY(sound_command_nmi_w)
+ AM_RANGE(0xc40006, 0xc40007) AM_WRITE(sound_command_nmi_w)
AM_RANGE(0xc41000, 0xc41001) AM_READ_PORT("SERVICE")
AM_RANGE(0xc41002, 0xc41003) AM_READ_PORT("P1")
AM_RANGE(0xc41004, 0xc41005) AM_READ_PORT("P2")
AM_RANGE(0xc41006, 0xc41007) AM_READ_PORT("P3")
AM_RANGE(0xc41008, 0xc41009) AM_READNOP // figure this out, extra input for 3p?
- AM_RANGE(0xc46600, 0xc46601) AM_WRITE_LEGACY(sys18_refreshenable_w)
- AM_RANGE(0xc46800, 0xc46801) AM_WRITE_LEGACY(sys18_tilebank_w)
+ AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w)
+ AM_RANGE(0xc46800, 0xc46801) AM_WRITE(sys18_tilebank_w)
AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP // config regs
AM_RANGE(0xffc000, 0xffffff) AM_RAM
@@ -1339,8 +1303,8 @@ static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0x200000, 0x200fff) AM_RAM AM_BASE_LEGACY(&segaic16_spriteram_0)
AM_RANGE(0xa00000, 0xa00001) AM_READ_PORT("COINAGE")
AM_RANGE(0xa00002, 0xa00003) AM_READ_PORT("DSW1")
- AM_RANGE(0xa00006, 0xa00007) AM_WRITE_LEGACY(sound_command_nmi_w)
- AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE_LEGACY(sys18_tilebank_w)
+ AM_RANGE(0xa00006, 0xa00007) AM_WRITE(sound_command_nmi_w)
+ AM_RANGE(0xa0000e, 0xa0000f) AM_WRITE(sys18_tilebank_w)
AM_RANGE(0xa01000, 0xa01001) AM_READ_PORT("SERVICE")
AM_RANGE(0xa01002, 0xa01003) AM_READ_PORT("P1")
AM_RANGE(0xa01004, 0xa01005) AM_READ_PORT("P2")
@@ -1360,7 +1324,7 @@ static ADDRESS_MAP_START( astormbl_map, AS_PROGRAM, 16, segas1x_bootleg_state )
AM_RANGE(0xc46400, 0xc464ff) AM_NOP // scroll?
AM_RANGE(0xc46500, 0xc465ff) AM_NOP // scroll?
- AM_RANGE(0xc46600, 0xc46601) AM_WRITE_LEGACY(sys18_refreshenable_w)
+ AM_RANGE(0xc46600, 0xc46601) AM_WRITE(sys18_refreshenable_w)
AM_RANGE(0xfe0020, 0xfe003f) AM_WRITENOP
AM_RANGE(0xffc000, 0xffffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index 8aee3e4e587..1379553b014 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -30,23 +30,23 @@ TODO:
#include "sound/dac.h"
#include "includes/tagteam.h"
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(tagteam_state::sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", M6502_IRQ_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6502_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( irq_clear_w )
+WRITE8_MEMBER(tagteam_state::irq_clear_w)
{
- cputag_set_input_line(space->machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tagteam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("P2") AM_WRITE_LEGACY(tagteam_flipscreen_w)
AM_RANGE(0x2001, 0x2001) AM_READ_PORT("P1") AM_WRITE_LEGACY(tagteam_control_w)
- AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(sound_command_w)
- AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(irq_clear_w)
+ AM_RANGE(0x2002, 0x2002) AM_READ_PORT("DSW1") AM_WRITE(sound_command_w)
+ AM_RANGE(0x2003, 0x2003) AM_READ_PORT("DSW2") AM_WRITE(irq_clear_w)
AM_RANGE(0x4000, 0x43ff) AM_READWRITE_LEGACY(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w)
AM_RANGE(0x4400, 0x47ff) AM_READWRITE_LEGACY(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w)
AM_RANGE(0x4800, 0x4fff) AM_READONLY
@@ -55,11 +55,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tagteam_state )
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static WRITE8_HANDLER( sound_nmi_mask_w )
+WRITE8_MEMBER(tagteam_state::sound_nmi_mask_w)
{
- tagteam_state *state = space->machine().driver_data<tagteam_state>();
- state->m_sound_nmi_mask = data & 1;
+ m_sound_nmi_mask = data & 1;
}
/* Same as Syusse Oozumou */
@@ -68,7 +67,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tagteam_state )
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE_LEGACY("ay1", ay8910_data_address_w)
AM_RANGE(0x2002, 0x2003) AM_DEVWRITE_LEGACY("ay2", ay8910_data_address_w)
AM_RANGE(0x2004, 0x2004) AM_DEVWRITE_LEGACY("dac", dac_w)
- AM_RANGE(0x2005, 0x2005) AM_WRITE_LEGACY(sound_nmi_mask_w)
+ AM_RANGE(0x2005, 0x2005) AM_WRITE(sound_nmi_mask_w)
AM_RANGE(0x2007, 0x2007) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index 27fc4e5f681..02bec516fc9 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -17,14 +17,13 @@
#include "includes/tail2nos.h"
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(tail2nos_state::sound_command_w)
{
- tail2nos_state *state = space->machine().driver_data<tail2nos_state>();
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -47,7 +46,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state )
AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(tail2nos_gfxbank_w)
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW")
- AM_RANGE(0xfff008, 0xfff009) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, tail2nos_state )
diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c
index 1e1be987e9f..db85f172c53 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -191,9 +191,9 @@ TODO!
#include "video/taitoic.h"
#include "includes/taito_b.h"
-static WRITE8_HANDLER( bankswitch_w )
+WRITE8_MEMBER(taitob_state::bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", (data - 1) & 3);
+ memory_set_bank(machine(), "bank1", (data - 1) & 3);
}
static TIMER_CALLBACK( rsaga2_interrupt2 )
@@ -334,60 +334,59 @@ static INTERRUPT_GEN( realpunc_interrupt )//2
-static READ16_HANDLER( tracky1_hi_r )
+READ16_MEMBER(taitob_state::tracky1_hi_r)
{
- return input_port_read(space->machine(), "TRACKX1");
+ return input_port_read(machine(), "TRACKX1");
}
-static READ16_HANDLER( tracky1_lo_r )
+READ16_MEMBER(taitob_state::tracky1_lo_r)
{
- return (input_port_read(space->machine(), "TRACKX1") & 0xff) << 8;
+ return (input_port_read(machine(), "TRACKX1") & 0xff) << 8;
}
-static READ16_HANDLER( trackx1_hi_r )
+READ16_MEMBER(taitob_state::trackx1_hi_r)
{
- return input_port_read(space->machine(), "TRACKY1");
+ return input_port_read(machine(), "TRACKY1");
}
-static READ16_HANDLER( trackx1_lo_r )
+READ16_MEMBER(taitob_state::trackx1_lo_r)
{
- return (input_port_read(space->machine(), "TRACKY1") & 0xff) << 8;
+ return (input_port_read(machine(), "TRACKY1") & 0xff) << 8;
}
-static READ16_HANDLER( tracky2_hi_r )
+READ16_MEMBER(taitob_state::tracky2_hi_r)
{
- return input_port_read(space->machine(), "TRACKX2");
+ return input_port_read(machine(), "TRACKX2");
}
-static READ16_HANDLER( tracky2_lo_r )
+READ16_MEMBER(taitob_state::tracky2_lo_r)
{
- return (input_port_read(space->machine(), "TRACKX2") & 0xff) << 8;
+ return (input_port_read(machine(), "TRACKX2") & 0xff) << 8;
}
-static READ16_HANDLER( trackx2_hi_r )
+READ16_MEMBER(taitob_state::trackx2_hi_r)
{
- return input_port_read(space->machine(), "TRACKY2");
+ return input_port_read(machine(), "TRACKY2");
}
-static READ16_HANDLER( trackx2_lo_r )
+READ16_MEMBER(taitob_state::trackx2_lo_r)
{
- return (input_port_read(space->machine(), "TRACKY2") & 0xff) << 8;
+ return (input_port_read(machine(), "TRACKY2") & 0xff) << 8;
}
-static WRITE16_HANDLER( gain_control_w )
+WRITE16_MEMBER(taitob_state::gain_control_w)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
if (ACCESSING_BITS_8_15)
{
if (offset == 0)
{
- mb87078_data_w(state->m_mb87078, data >> 8, 0);
+ mb87078_data_w(m_mb87078, data >> 8, 0);
//logerror("MB87078 dsel=0 data=%4x\n", data);
}
else
{
- mb87078_data_w(state->m_mb87078, data >> 8, 1);
+ mb87078_data_w(m_mb87078, data >> 8, 1);
//logerror("MB87078 dsel=1 data=%4x\n", data);
}
}
@@ -416,17 +415,15 @@ static const eeprom_interface taitob_eeprom_intf =
"0100110000" /* unlock command*/
};
-static READ16_HANDLER( eep_latch_r )
+READ16_MEMBER(taitob_state::eep_latch_r)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
- return state->m_eep_latch;
+ return m_eep_latch;
}
-static WRITE16_HANDLER( eeprom_w )
+WRITE16_MEMBER(taitob_state::eeprom_w)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
- COMBINE_DATA(&state->m_eep_latch);
+ COMBINE_DATA(&m_eep_latch);
if (ACCESSING_BITS_8_15)
{
@@ -442,7 +439,7 @@ static WRITE16_HANDLER( eeprom_w )
/* bit 7 - set all the time (Chip Select?) */
/* EEPROM */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
}
@@ -457,51 +454,47 @@ static WRITE16_HANDLER( eeprom_w )
*************************************************************************/
-static READ16_HANDLER( player_34_coin_ctrl_r )
+READ16_MEMBER(taitob_state::player_34_coin_ctrl_r)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
- return state->m_coin_word;
+ return m_coin_word;
}
-static WRITE16_HANDLER( player_34_coin_ctrl_w )
+WRITE16_MEMBER(taitob_state::player_34_coin_ctrl_w)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
- COMBINE_DATA(&state->m_coin_word);
+ COMBINE_DATA(&m_coin_word);
/* coin counters and lockout */
- coin_lockout_w(space->machine(), 2, ~data & 0x0100);
- coin_lockout_w(space->machine(), 3, ~data & 0x0200);
- coin_counter_w(space->machine(), 2, data & 0x0400);
- coin_counter_w(space->machine(), 3, data & 0x0800);
+ coin_lockout_w(machine(), 2, ~data & 0x0100);
+ coin_lockout_w(machine(), 3, ~data & 0x0200);
+ coin_counter_w(machine(), 2, data & 0x0400);
+ coin_counter_w(machine(), 3, data & 0x0800);
}
-static READ16_HANDLER( pbobble_input_bypass_r )
+READ16_MEMBER(taitob_state::pbobble_input_bypass_r)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
switch (offset)
{
case 0x01:
- return input_port_read(space->machine(), "COIN") << 8;
+ return input_port_read(machine(), "COIN") << 8;
default:
- return tc0640fio_r(state->m_tc0640fio, offset) << 8;
+ return tc0640fio_r(m_tc0640fio, offset) << 8;
}
}
-static WRITE16_HANDLER( spacedxo_tc0220ioc_w )
+WRITE16_MEMBER(taitob_state::spacedxo_tc0220ioc_w)
{
- taitob_state *state = space->machine().driver_data<taitob_state>();
if (ACCESSING_BITS_0_7)
- tc0220ioc_w(state->m_tc0220ioc, offset, data & 0xff);
+ tc0220ioc_w(m_tc0220ioc, offset, data & 0xff);
else
{
- /* spacedxo also writes here - bug? */
- tc0220ioc_w(state->m_tc0220ioc, offset, (data >> 8) & 0xff);
+ /* &spacedxo also writes here - bug? */
+ tc0220ioc_w(m_tc0220ioc, offset, (data >> 8) & 0xff);
}
}
-static WRITE16_HANDLER( realpunc_output_w )
+WRITE16_MEMBER(taitob_state::realpunc_output_w)
{
/*
15 = Camera Enable?
@@ -586,14 +579,14 @@ static ADDRESS_MAP_START( rambo3_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x600000, 0x60000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0xff00)
- AM_RANGE(0x600010, 0x600011) AM_READ_LEGACY(tracky1_lo_r) /*player 1*/
- AM_RANGE(0x600012, 0x600013) AM_READ_LEGACY(tracky1_hi_r)
- AM_RANGE(0x600014, 0x600015) AM_READ_LEGACY(trackx1_lo_r)
- AM_RANGE(0x600016, 0x600017) AM_READ_LEGACY(trackx1_hi_r)
- AM_RANGE(0x600018, 0x600019) AM_READ_LEGACY(tracky2_lo_r) /*player 2*/
- AM_RANGE(0x60001a, 0x60001b) AM_READ_LEGACY(tracky2_hi_r)
- AM_RANGE(0x60001c, 0x60001d) AM_READ_LEGACY(trackx2_lo_r)
- AM_RANGE(0x60001e, 0x60001f) AM_READ_LEGACY(trackx2_hi_r)
+ AM_RANGE(0x600010, 0x600011) AM_READ(tracky1_lo_r) /*player 1*/
+ AM_RANGE(0x600012, 0x600013) AM_READ(tracky1_hi_r)
+ AM_RANGE(0x600014, 0x600015) AM_READ(trackx1_lo_r)
+ AM_RANGE(0x600016, 0x600017) AM_READ(trackx1_hi_r)
+ AM_RANGE(0x600018, 0x600019) AM_READ(tracky2_lo_r) /*player 2*/
+ AM_RANGE(0x60001a, 0x60001b) AM_READ(tracky2_hi_r)
+ AM_RANGE(0x60001c, 0x60001d) AM_READ(trackx2_lo_r)
+ AM_RANGE(0x60001e, 0x60001f) AM_READ(trackx2_hi_r)
AM_RANGE(0x800000, 0x803fff) AM_RAM /* Main RAM */
AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
@@ -602,12 +595,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( pbobble_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
TC0180VCU_MEMRW( 0x400000 )
- AM_RANGE(0x500000, 0x50000f) AM_READ_LEGACY(pbobble_input_bypass_r) AM_DEVWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_w)
+ AM_RANGE(0x500000, 0x50000f) AM_READ(pbobble_input_bypass_r) AM_DEVWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_w)
AM_RANGE(0x500024, 0x500025) AM_READ_PORT("P3_P4_A") /* shown in service mode, game omits to read it */
- AM_RANGE(0x500026, 0x500027) AM_READWRITE_LEGACY(eep_latch_r, eeprom_w)
- AM_RANGE(0x500028, 0x500029) AM_WRITE_LEGACY(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */
+ AM_RANGE(0x500026, 0x500027) AM_READWRITE(eep_latch_r, eeprom_w)
+ AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */
AM_RANGE(0x50002e, 0x50002f) AM_READ_PORT("P3_P4_B") /* shown in service mode, game omits to read it */
- AM_RANGE(0x600000, 0x600003) AM_WRITE_LEGACY(gain_control_w)
+ AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w)
AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
@@ -618,12 +611,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( spacedx_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
TC0180VCU_MEMRW( 0x400000 )
- AM_RANGE(0x500000, 0x50000f) AM_READ_LEGACY(pbobble_input_bypass_r) AM_DEVWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_w)
+ AM_RANGE(0x500000, 0x50000f) AM_READ(pbobble_input_bypass_r) AM_DEVWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_w)
AM_RANGE(0x500024, 0x500025) AM_READ_PORT("P3_P4_A")
- AM_RANGE(0x500026, 0x500027) AM_READWRITE_LEGACY(eep_latch_r, eeprom_w)
- AM_RANGE(0x500028, 0x500029) AM_WRITE_LEGACY(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */
+ AM_RANGE(0x500026, 0x500027) AM_READWRITE(eep_latch_r, eeprom_w)
+ AM_RANGE(0x500028, 0x500029) AM_WRITE(player_34_coin_ctrl_w) /* simply locks coins 3&4 out */
AM_RANGE(0x50002e, 0x50002f) AM_READ_PORT("P3_P4_B")
- AM_RANGE(0x600000, 0x600003) AM_WRITE_LEGACY(gain_control_w)
+ AM_RANGE(0x600000, 0x600003) AM_WRITE(gain_control_w)
AM_RANGE(0x700000, 0x700001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x700002, 0x700003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
@@ -634,7 +627,7 @@ static ADDRESS_MAP_START( spacedxo_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
- AM_RANGE(0x200000, 0x20000f) AM_DEVREAD8_LEGACY("tc0220ioc", tc0220ioc_r, 0x00ff) AM_WRITE_LEGACY(spacedxo_tc0220ioc_w)
+ AM_RANGE(0x200000, 0x20000f) AM_DEVREAD8_LEGACY("tc0220ioc", tc0220ioc_r, 0x00ff) AM_WRITE(spacedxo_tc0220ioc_w)
AM_RANGE(0x210000, 0x210001) AM_READ_PORT("IN3")
AM_RANGE(0x220000, 0x220001) AM_READ_PORT("IN4")
AM_RANGE(0x230000, 0x230001) AM_READ_PORT("IN5")
@@ -647,15 +640,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( qzshowby_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x200000, 0x20000f) AM_READ_LEGACY(pbobble_input_bypass_r) AM_DEVWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_w)
+ AM_RANGE(0x200000, 0x20000f) AM_READ(pbobble_input_bypass_r) AM_DEVWRITE_LEGACY("tc0640fio", tc0640fio_halfword_byteswap_w)
AM_RANGE(0x200024, 0x200025) AM_READ_PORT("P3_P4_A") /* player 3,4 start */
- AM_RANGE(0x200026, 0x200027) AM_WRITE_LEGACY(eeprom_w)
- AM_RANGE(0x200028, 0x200029) AM_READWRITE_LEGACY(player_34_coin_ctrl_r, player_34_coin_ctrl_w)
+ AM_RANGE(0x200026, 0x200027) AM_WRITE(eeprom_w)
+ AM_RANGE(0x200028, 0x200029) AM_READWRITE(player_34_coin_ctrl_r, player_34_coin_ctrl_w)
AM_RANGE(0x20002e, 0x20002f) AM_READ_PORT("P3_P4_B") /* player 3,4 buttons */
TC0180VCU_MEMRW( 0x400000 )
AM_RANGE(0x600000, 0x600001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x600002, 0x600003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
- AM_RANGE(0x700000, 0x700003) AM_WRITE_LEGACY(gain_control_w)
+ AM_RANGE(0x700000, 0x700003) AM_WRITE(gain_control_w)
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x900000, 0x90ffff) AM_RAM /* Main RAM */
ADDRESS_MAP_END
@@ -733,7 +726,7 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x184000, 0x184001) AM_WRITE_LEGACY(realpunc_video_ctrl_w)
AM_RANGE(0x188000, 0x188001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x188002, 0x188003) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_comm_w, 0xff00)
- AM_RANGE(0x18c000, 0x18c001) AM_WRITE_LEGACY(realpunc_output_w)
+ AM_RANGE(0x18c000, 0x18c001) AM_WRITE(realpunc_output_w)
TC0180VCU_MEMRW( 0x200000 )
AM_RANGE(0x280000, 0x281fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE_LEGACY("hd63484", hd63484_status_r, hd63484_address_w)
@@ -763,7 +756,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitob_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( viofight_sound_map, AS_PROGRAM, 8, taitob_state )
@@ -1929,7 +1922,7 @@ static const ym2203_interface ym2203_config =
AY8910_DEFAULT_LOADS,
DEVCB_NULL,
DEVCB_NULL,
- DEVCB_MEMORY_HANDLER("audiocpu", PROGRAM, bankswitch_w),
+ DEVCB_DRIVER_MEMBER(taitob_state, bankswitch_w),
DEVCB_NULL,
},
irqhandler
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index d013ece4f96..7183c6544bf 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -278,157 +278,154 @@ Notes:
GAME INPUTS
**********************************************************/
-static WRITE16_HANDLER( growl_coin_word_w ) /* what about coins 3&4 ?? */
+WRITE16_MEMBER(taitof2_state::growl_coin_word_w)/* what about coins 3&4 ?? */
{
if (ACCESSING_BITS_0_7)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x01);
- coin_lockout_w(space->machine(), 1, ~data & 0x02);
- coin_counter_w(space->machine(), 0, data & 0x04);
- coin_counter_w(space->machine(), 1, data & 0x08);
+ coin_lockout_w(machine(), 0, ~data & 0x01);
+ coin_lockout_w(machine(), 1, ~data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x04);
+ coin_counter_w(machine(), 1, data & 0x08);
}
}
-static WRITE16_HANDLER( taitof2_4p_coin_word_w )
+WRITE16_MEMBER(taitof2_state::taitof2_4p_coin_word_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x01);
- coin_lockout_w(space->machine(), 1, ~data & 0x02);
- coin_lockout_w(space->machine(), 2, ~data & 0x04);
- coin_lockout_w(space->machine(), 3, ~data & 0x08);
- coin_counter_w(space->machine(), 0, data & 0x10);
- coin_counter_w(space->machine(), 1, data & 0x20);
- coin_counter_w(space->machine(), 2, data & 0x40);
- coin_counter_w(space->machine(), 3, data & 0x80);
+ coin_lockout_w(machine(), 0, ~data & 0x01);
+ coin_lockout_w(machine(), 1, ~data & 0x02);
+ coin_lockout_w(machine(), 2, ~data & 0x04);
+ coin_lockout_w(machine(), 3, ~data & 0x08);
+ coin_counter_w(machine(), 0, data & 0x10);
+ coin_counter_w(machine(), 1, data & 0x20);
+ coin_counter_w(machine(), 2, data & 0x40);
+ coin_counter_w(machine(), 3, data & 0x80);
}
}
-static WRITE16_HANDLER( ninjak_coin_word_w )
+WRITE16_MEMBER(taitof2_state::ninjak_coin_word_w)
{
if (ACCESSING_BITS_8_15)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x0100);
- coin_lockout_w(space->machine(), 1, ~data & 0x0200);
- coin_lockout_w(space->machine(), 2, ~data & 0x0400);
- coin_lockout_w(space->machine(), 3, ~data & 0x0800);
- coin_counter_w(space->machine(), 0, data & 0x1000);
- coin_counter_w(space->machine(), 1, data & 0x2000);
- coin_counter_w(space->machine(), 2, data & 0x4000);
- coin_counter_w(space->machine(), 3, data & 0x8000);
+ coin_lockout_w(machine(), 0, ~data & 0x0100);
+ coin_lockout_w(machine(), 1, ~data & 0x0200);
+ coin_lockout_w(machine(), 2, ~data & 0x0400);
+ coin_lockout_w(machine(), 3, ~data & 0x0800);
+ coin_counter_w(machine(), 0, data & 0x1000);
+ coin_counter_w(machine(), 1, data & 0x2000);
+ coin_counter_w(machine(), 2, data & 0x4000);
+ coin_counter_w(machine(), 3, data & 0x8000);
}
}
-static READ16_HANDLER( ninjak_input_r )
+READ16_MEMBER(taitof2_state::ninjak_input_r)
{
switch (offset)
{
case 0x00:
- return (input_port_read(space->machine(), "DSWA") << 8);
+ return (input_port_read(machine(), "DSWA") << 8);
case 0x01:
- return (input_port_read(space->machine(), "DSWB") << 8);
+ return (input_port_read(machine(), "DSWB") << 8);
case 0x02:
- return (input_port_read(space->machine(), "IN0") << 8);
+ return (input_port_read(machine(), "IN0") << 8);
case 0x03:
- return (input_port_read(space->machine(), "IN1") << 8);
+ return (input_port_read(machine(), "IN1") << 8);
case 0x04:
- return (input_port_read(space->machine(), "IN3") << 8);
+ return (input_port_read(machine(), "IN3") << 8);
case 0x05:
- return (input_port_read(space->machine(), "IN4") << 8);
+ return (input_port_read(machine(), "IN4") << 8);
case 0x06:
- return (input_port_read(space->machine(), "IN2") << 8);
+ return (input_port_read(machine(), "IN2") << 8);
// case 0x07:
// return (coin_word & mem_mask);
}
- logerror("CPU #0 PC %06x: warning - read unmapped input offset %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped input offset %06x\n", cpu_get_pc(&space.device()), offset);
return 0xff;
}
-static READ16_HANDLER( cameltry_paddle_r )
+READ16_MEMBER(taitof2_state::cameltry_paddle_r)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
int curr, res = 0xff;
switch (offset)
{
case 0x00:
- curr = input_port_read(space->machine(), "PADDLE1");
- res = curr - state->m_last[0];
- state->m_last[0] = curr;
+ curr = input_port_read(machine(), "PADDLE1");
+ res = curr - m_last[0];
+ m_last[0] = curr;
return res;
case 0x02:
- curr = input_port_read(space->machine(), "PADDLE2");
- res = curr - state->m_last[1];
- state->m_last[1] = curr;
+ curr = input_port_read(machine(), "PADDLE2");
+ res = curr - m_last[1];
+ m_last[1] = curr;
return res;
}
- logerror("CPU #0 PC %06x: warning - read unmapped paddle offset %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped paddle offset %06x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
-static READ16_HANDLER( mjnquest_dsw_r )
+READ16_MEMBER(taitof2_state::mjnquest_dsw_r)
{
switch (offset)
{
case 0x00:
{
- return (input_port_read(space->machine(), "IN5") << 8) + input_port_read(space->machine(), "DSWA"); /* DSW A + coin */
+ return (input_port_read(machine(), "IN5") << 8) + input_port_read(machine(), "DSWA"); /* DSW A + coin */
}
case 0x01:
{
- return (input_port_read(space->machine(), "IN6") << 8) + input_port_read(space->machine(), "DSWB"); /* DSW B + coin */
+ return (input_port_read(machine(), "IN6") << 8) + input_port_read(machine(), "DSWB"); /* DSW B + coin */
}
}
- logerror("CPU #0 PC %06x: warning - read unmapped dsw_r offset %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped dsw_r offset %06x\n", cpu_get_pc(&space.device()), offset);
return 0xff;
}
-static READ16_HANDLER( mjnquest_input_r )
+READ16_MEMBER(taitof2_state::mjnquest_input_r)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
- switch (state->m_mjnquest_input)
+ switch (m_mjnquest_input)
{
case 0x01:
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 0x02:
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 0x04:
- return input_port_read(space->machine(), "IN2");
+ return input_port_read(machine(), "IN2");
case 0x08:
- return input_port_read(space->machine(), "IN3");
+ return input_port_read(machine(), "IN3");
case 0x10:
- return input_port_read(space->machine(), "IN4");
+ return input_port_read(machine(), "IN4");
}
- logerror("CPU #0 mjnquest_input %06x: warning - read unknown input %06x\n", cpu_get_pc(&space->device()), state->m_mjnquest_input);
+ logerror("CPU #0 mjnquest_input %06x: warning - read unknown input %06x\n", cpu_get_pc(&space.device()), m_mjnquest_input);
return 0xff;
}
-static WRITE16_HANDLER( mjnquest_inputselect_w )
+WRITE16_MEMBER(taitof2_state::mjnquest_inputselect_w)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
- state->m_mjnquest_input = (data >> 6);
+ m_mjnquest_input = (data >> 6);
}
/******************************************************************
@@ -592,9 +589,9 @@ static INTERRUPT_GEN( taitof2_interrupt )
SOUND
****************************************************************/
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(taitof2_state::sound_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank2", (data - 1) & 7);
+ memory_set_bank(machine(), "bank2", (data - 1) & 7);
#ifdef MAME_DEBUG
if (((data - 1) & 7) > 2)
@@ -603,13 +600,12 @@ static WRITE8_HANDLER( sound_bankswitch_w )
}
-static READ8_HANDLER( driveout_sound_command_r)
+READ8_MEMBER(taitof2_state::driveout_sound_command_r)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE);
-// logerror("sound IRQ OFF (sound command=%02x)\n", state->m_driveout_sound_latch);
- return state->m_driveout_sound_latch;
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
+// logerror("sound IRQ OFF (sound command=%02x)\n", m_driveout_sound_latch);
+ return m_driveout_sound_latch;
}
@@ -619,38 +615,36 @@ static void reset_driveout_sound_region( running_machine &machine )
state->m_oki->set_bank_base(state->m_oki_bank * 0x40000);
}
-static WRITE8_HANDLER( oki_bank_w )
+WRITE8_MEMBER(taitof2_state::oki_bank_w)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
- if ((data & 4) && (state->m_oki_bank != (data & 3)) )
+ if ((data & 4) && (m_oki_bank != (data & 3)) )
{
- state->m_oki_bank = (data & 3);
+ m_oki_bank = (data & 3);
}
- reset_driveout_sound_region(space->machine());
+ reset_driveout_sound_region(machine());
}
-static WRITE16_HANDLER( driveout_sound_command_w )
+WRITE16_MEMBER(taitof2_state::driveout_sound_command_w)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
if (ACCESSING_BITS_8_15)
{
data >>= 8;
if (offset == 0)
{
- state->m_nibble = data & 1;
+ m_nibble = data & 1;
}
else
{
- if (state->m_nibble == 0)
+ if (m_nibble == 0)
{
- state->m_driveout_sound_latch = (data & 0x0f) | (state->m_driveout_sound_latch & 0xf0);
+ m_driveout_sound_latch = (data & 0x0f) | (m_driveout_sound_latch & 0xf0);
}
else
{
- state->m_driveout_sound_latch = ((data << 4) & 0xf0) | (state->m_driveout_sound_latch & 0x0f);
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE);
+ m_driveout_sound_latch = ((data << 4) & 0xf0) | (m_driveout_sound_latch & 0x0f);
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
}
}
}
@@ -666,18 +660,16 @@ static WRITE16_HANDLER( driveout_sound_command_w )
***************************************************************************/
-static WRITE16_HANDLER( cchip2_word_w )
+WRITE16_MEMBER(taitof2_state::cchip2_word_w)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
- logerror("cchip2_w pc: %06x offset %04x: %02x\n", cpu_get_pc(&space->device()), offset, data);
+ logerror("cchip2_w pc: %06x offset %04x: %02x\n", cpu_get_pc(&space.device()), offset, data);
- COMBINE_DATA(&state->m_cchip2_ram[offset]);
+ COMBINE_DATA(&m_cchip2_ram[offset]);
}
-static READ16_HANDLER( cchip2_word_r )
+READ16_MEMBER(taitof2_state::cchip2_word_r)
{
- taitof2_state *state = space->machine().driver_data<taitof2_state>();
/* C-Chip ID */
if (offset == 0x401)
@@ -685,7 +677,7 @@ static READ16_HANDLER( cchip2_word_r )
logerror("cchip2_r offset: %04x\n", offset);
- return state->m_cchip2_ram[offset];
+ return m_cchip2_ram[offset];
}
@@ -727,7 +719,7 @@ static ADDRESS_MAP_START( megab_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x100000, 0x100001) AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x120000, 0x12000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x180000, 0x180fff) AM_READWRITE_LEGACY(cchip2_word_r, cchip2_word_w) AM_BASE(m_cchip2_ram)
+ AM_RANGE(0x180000, 0x180fff) AM_READWRITE(cchip2_word_r, cchip2_word_w) AM_BASE(m_cchip2_ram)
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_RANGE(0x300000, 0x301fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x400000, 0x40001f) AM_DEVWRITE8_LEGACY("tc0360pri", tc0360pri_w, 0x00ff) /* ?? */
@@ -757,7 +749,7 @@ static ADDRESS_MAP_START( cameltry_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x300018, 0x30001f) AM_READ_LEGACY(cameltry_paddle_r)
+ AM_RANGE(0x300018, 0x30001f) AM_READ(cameltry_paddle_r)
AM_RANGE(0x320000, 0x320001) AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x320002, 0x320003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
AM_RANGE(0x800000, 0x813fff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
@@ -798,7 +790,7 @@ static ADDRESS_MAP_START( quizhq_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x200007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_word_w) /* palette */
- AM_RANGE(0x500004, 0x500005) AM_WRITE_LEGACY(growl_coin_word_w)
+ AM_RANGE(0x500004, 0x500005) AM_WRITE(growl_coin_word_w)
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("DSWB")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("IN0")
AM_RANGE(0x580000, 0x580001) AM_WRITE_LEGACY(watchdog_reset16_w) /* ??? */
@@ -846,7 +838,7 @@ static ADDRESS_MAP_START( growl_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x300004, 0x300005) AM_WRITE_LEGACY(growl_coin_word_w)
+ AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w)
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSWA")
AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DSWB")
AM_RANGE(0x320000, 0x320001) AM_READ_PORT("IN0")
@@ -870,9 +862,9 @@ static ADDRESS_MAP_START( mjnquest_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x110000, 0x11ffff) AM_RAM /* "sram" */
AM_RANGE(0x120000, 0x12ffff) AM_RAM
AM_RANGE(0x200000, 0x200007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_word_w) /* palette */
- AM_RANGE(0x300000, 0x30000f) AM_READ_LEGACY(mjnquest_dsw_r)
- AM_RANGE(0x310000, 0x310001) AM_READ_LEGACY(mjnquest_input_r)
- AM_RANGE(0x320000, 0x320001) AM_WRITE_LEGACY(mjnquest_inputselect_w)
+ AM_RANGE(0x300000, 0x30000f) AM_READ(mjnquest_dsw_r)
+ AM_RANGE(0x310000, 0x310001) AM_READ(mjnquest_input_r)
+ AM_RANGE(0x320000, 0x320001) AM_WRITE(mjnquest_inputselect_w)
AM_RANGE(0x330000, 0x330001) AM_WRITENOP /* watchdog ? */
AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* watchdog ? */
AM_RANGE(0x360000, 0x360001) AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
@@ -892,7 +884,7 @@ static ADDRESS_MAP_START( footchmp_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x430000, 0x43002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_word_r, tc0480scp_ctrl_word_w)
AM_RANGE(0x500000, 0x50001f) AM_DEVWRITE8_LEGACY("tc0360pri", tc0360pri_w, 0x00ff) /* 500002 written like a watchdog?! */
AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x700006, 0x700007) AM_WRITE_LEGACY(taitof2_4p_coin_word_w)
+ AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("IN2")
@@ -937,8 +929,8 @@ static ADDRESS_MAP_START( ninjak_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x300000, 0x30000f) AM_READ_LEGACY(ninjak_input_r)
- AM_RANGE(0x30000e, 0x30000f) AM_WRITE_LEGACY(ninjak_coin_word_w)
+ AM_RANGE(0x300000, 0x30000f) AM_READ(ninjak_input_r)
+ AM_RANGE(0x30000e, 0x30000f) AM_WRITE(ninjak_coin_word_w)
AM_RANGE(0x380000, 0x380001) AM_WRITE_LEGACY(watchdog_reset16_w) /* ??? */
AM_RANGE(0x400000, 0x400001) AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0xff00)
AM_RANGE(0x400002, 0x400003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0xff00)
@@ -953,7 +945,7 @@ static ADDRESS_MAP_START( solfigtr_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x201fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x300004, 0x300005) AM_WRITE_LEGACY(growl_coin_word_w) /* NOT VERIFIED */
+ AM_RANGE(0x300004, 0x300005) AM_WRITE(growl_coin_word_w) /* NOT VERIFIED */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("DSWA")
AM_RANGE(0x300002, 0x300003) AM_READ_PORT("DSWB")
AM_RANGE(0x320000, 0x320001) AM_READ_PORT("IN0")
@@ -1058,7 +1050,7 @@ static ADDRESS_MAP_START( deadconx_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("IN2")
- AM_RANGE(0x700006, 0x700007) AM_WRITE_LEGACY(taitof2_4p_coin_word_w)
+ AM_RANGE(0x700006, 0x700007) AM_WRITE(taitof2_4p_coin_word_w)
AM_RANGE(0x70000a, 0x70000b) AM_READ_PORT("IN0")
AM_RANGE(0x70000c, 0x70000d) AM_READ_PORT("IN1")
AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(watchdog_reset16_w) /* ??? */
@@ -1147,7 +1139,7 @@ ADDRESS_MAP_END
/* same as driftout, except for sound address 0x200000 */
static ADDRESS_MAP_START( driveout_map, AS_PROGRAM, 16, taitof2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x200000, 0x200003) AM_READNOP AM_WRITE_LEGACY(driveout_sound_command_w)
+ AM_RANGE(0x200000, 0x200003) AM_READNOP AM_WRITE(driveout_sound_command_w)
AM_RANGE(0x300000, 0x30ffff) AM_RAM
AM_RANGE(0x400000, 0x401fff) AM_DEVREADWRITE_LEGACY("tc0430grw", tc0430grw_word_r, tc0430grw_word_w) /* ROZ tilemap */
AM_RANGE(0x402000, 0x40200f) AM_DEVWRITE_LEGACY("tc0430grw", tc0430grw_ctrl_word_w)
@@ -1175,7 +1167,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitof2_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w) /* ?? */
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w) /* ?? */
ADDRESS_MAP_END
@@ -1195,9 +1187,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( driveout_sound_map, AS_PROGRAM, 8, taitof2_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(oki_bank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(oki_bank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(driveout_sound_command_r)
+ AM_RANGE(0xa000, 0xa000) AM_READ(driveout_sound_command_r)
ADDRESS_MAP_END
/***********************************************************
diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c
index b16d8a3f010..7b2f734ae07 100644
--- a/src/mame/drivers/taito_f3.c
+++ b/src/mame/drivers/taito_f3.c
@@ -58,73 +58,71 @@ static CUSTOM_INPUT( f3_coin_r )
return state->m_coin_word[num];
}
-static READ32_HANDLER( f3_control_r )
+READ32_MEMBER(taito_f3_state::f3_control_r)
{
static const char *const iptnames[] = { "IN0", "IN1", "AN0", "AN1", "IN2", "IN3" };
if (offset < 6)
- return input_port_read(space->machine(), iptnames[offset]);
+ return input_port_read(machine(), iptnames[offset]);
- logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped control address %06x\n", cpu_get_pc(&space.device()), offset);
return 0xffffffff;
}
-static WRITE32_HANDLER( f3_control_w )
+WRITE32_MEMBER(taito_f3_state::f3_control_w)
{
- taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
switch (offset)
{
case 0x00: /* Watchdog */
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
return;
case 0x01: /* Coin counters & lockouts */
if (ACCESSING_BITS_24_31)
{
- coin_lockout_w(space->machine(), 0,~data & 0x01000000);
- coin_lockout_w(space->machine(), 1,~data & 0x02000000);
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x08000000);
- state->m_coin_word[0]=(data>>16)&0xffff;
+ coin_lockout_w(machine(), 0,~data & 0x01000000);
+ coin_lockout_w(machine(), 1,~data & 0x02000000);
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x08000000);
+ m_coin_word[0]=(data>>16)&0xffff;
}
return;
case 0x04: /* Eeprom */
if (ACCESSING_BITS_0_7)
{
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
return;
case 0x05: /* Player 3 & 4 coin counters */
if (ACCESSING_BITS_24_31)
{
- coin_lockout_w(space->machine(), 2,~data & 0x01000000);
- coin_lockout_w(space->machine(), 3,~data & 0x02000000);
- coin_counter_w(space->machine(), 2, data & 0x04000000);
- coin_counter_w(space->machine(), 3, data & 0x08000000);
- state->m_coin_word[1]=(data>>16)&0xffff;
+ coin_lockout_w(machine(), 2,~data & 0x01000000);
+ coin_lockout_w(machine(), 3,~data & 0x02000000);
+ coin_counter_w(machine(), 2, data & 0x04000000);
+ coin_counter_w(machine(), 3, data & 0x08000000);
+ m_coin_word[1]=(data>>16)&0xffff;
}
return;
}
- logerror("CPU #0 PC %06x: warning - write unmapped control address %06x %08x\n",cpu_get_pc(&space->device()),offset,data);
+ logerror("CPU #0 PC %06x: warning - write unmapped control address %06x %08x\n",cpu_get_pc(&space.device()),offset,data);
}
-static WRITE32_HANDLER( f3_sound_reset_0_w )
+WRITE32_MEMBER(taito_f3_state::f3_sound_reset_0_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
}
-static WRITE32_HANDLER( f3_sound_reset_1_w )
+WRITE32_MEMBER(taito_f3_state::f3_sound_reset_1_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
}
-static WRITE32_HANDLER( f3_sound_bankswitch_w )
+WRITE32_MEMBER(taito_f3_state::f3_sound_bankswitch_w)
{
- taito_f3_state *state = space->machine().driver_data<taito_f3_state>();
- if (state->m_f3_game==KIRAMEKI) {
- UINT16 *rom = (UINT16 *)space->machine().region("audiocpu")->base();
+ if (m_f3_game==KIRAMEKI) {
+ UINT16 *rom = (UINT16 *)machine().region("audiocpu")->base();
UINT32 idx;
idx = (offset << 1) & 0x1e;
@@ -136,14 +134,14 @@ static WRITE32_HANDLER( f3_sound_bankswitch_w )
/* Banks are 0x20000 bytes each, divide by two to get data16
pointer rather than byte pointer */
- memory_set_bankptr(space->machine(), "bank2", &rom[(idx*0x20000)/2 + 0x80000]);
+ memory_set_bankptr(machine(), "bank2", &rom[(idx*0x20000)/2 + 0x80000]);
} else {
logerror("Sound bankswitch in unsupported game\n");
}
}
-static WRITE16_HANDLER( f3_unk_w )
+WRITE16_MEMBER(taito_f3_state::f3_unk_w)
{
/*
Several games writes a value here at POST, dunno what kind of config this is ...
@@ -191,11 +189,11 @@ static WRITE16_HANDLER( f3_unk_w )
static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32, taito_f3_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
- AM_RANGE(0x300000, 0x30007f) AM_WRITE_LEGACY(f3_sound_bankswitch_w)
+ AM_RANGE(0x300000, 0x30007f) AM_WRITE(f3_sound_bankswitch_w)
AM_RANGE(0x400000, 0x41ffff) AM_MIRROR(0x20000) AM_RAM AM_BASE(m_f3_ram)
AM_RANGE(0x440000, 0x447fff) AM_RAM_WRITE_LEGACY(f3_palette_24bit_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x4a0000, 0x4a001f) AM_READWRITE_LEGACY(f3_control_r, f3_control_w)
- AM_RANGE(0x4c0000, 0x4c0003) AM_WRITE16_LEGACY(f3_unk_w,0xffffffff)
+ AM_RANGE(0x4a0000, 0x4a001f) AM_READWRITE(f3_control_r, f3_control_w)
+ AM_RANGE(0x4c0000, 0x4c0003) AM_WRITE16(f3_unk_w,0xffffffff)
AM_RANGE(0x600000, 0x60ffff) AM_READWRITE16_LEGACY(f3_spriteram_r,f3_spriteram_w,0xffffffff) //AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x610000, 0x61bfff) AM_READWRITE16_LEGACY(f3_pf_data_r,f3_pf_data_w,0xffffffff) //AM_BASE(m_f3_pf_data)
AM_RANGE(0x61c000, 0x61dfff) AM_READWRITE16_LEGACY(f3_videoram_r,f3_videoram_w,0xffffffff) //AM_BASE(m_videoram)
@@ -205,8 +203,8 @@ static ADDRESS_MAP_START( f3_map, AS_PROGRAM, 32, taito_f3_state )
AM_RANGE(0x660000, 0x66000f) AM_WRITE16_LEGACY(f3_control_0_w,0xffffffff)
AM_RANGE(0x660010, 0x66001f) AM_WRITE16_LEGACY(f3_control_1_w,0xffffffff)
AM_RANGE(0xc00000, 0xc007ff) AM_RAM AM_SHARE("f3_shared")
- AM_RANGE(0xc80000, 0xc80003) AM_WRITE_LEGACY(f3_sound_reset_0_w)
- AM_RANGE(0xc80100, 0xc80103) AM_WRITE_LEGACY(f3_sound_reset_1_w)
+ AM_RANGE(0xc80000, 0xc80003) AM_WRITE(f3_sound_reset_0_w)
+ AM_RANGE(0xc80100, 0xc80103) AM_WRITE(f3_sound_reset_1_w)
ADDRESS_MAP_END
@@ -3860,18 +3858,18 @@ static DRIVER_INIT( bubsymph )
}
-static READ32_HANDLER( bubsympb_oki_r )
+READ32_MEMBER(taito_f3_state::bubsympb_oki_r)
{
- return space->machine().device<okim6295_device>("oki")->read(*space,0);
+ return machine().device<okim6295_device>("oki")->read(*&space,0);
}
-static WRITE32_HANDLER( bubsympb_oki_w )
+WRITE32_MEMBER(taito_f3_state::bubsympb_oki_w)
{
//printf("write %08x %08x\n",data,mem_mask);
- if (ACCESSING_BITS_0_7) space->machine().device<okim6295_device>("oki")->write(*space, 0,data&0xff);
+ if (ACCESSING_BITS_0_7) machine().device<okim6295_device>("oki")->write(*&space, 0,data&0xff);
//if (mem_mask==0x000000ff) downcast<okim6295_device *>(device)->write(0,data&0xff);
if (ACCESSING_BITS_16_23)
{
- UINT8 *snd = space->machine().region("oki")->base();
+ UINT8 *snd = machine().region("oki")->base();
int bank = (data & 0x000f0000) >> 16;
// almost certainly wrong
memcpy(snd+0x30000, snd+0x80000+0x30000+bank*0x10000, 0x10000);
@@ -3908,8 +3906,8 @@ static DRIVER_INIT( bubsympb )
}
}
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x4a001c, 0x4a001f, FUNC(bubsympb_oki_r) );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x4a001c, 0x4a001f, FUNC(bubsympb_oki_w) );
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x4a001c, 0x4a001f, read32_delegate(FUNC(taito_f3_state::bubsympb_oki_r),state));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x4a001c, 0x4a001f, write32_delegate(FUNC(taito_f3_state::bubsympb_oki_w),state));
}
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index e2958654bde..38d980fbe40 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -179,53 +179,52 @@ static const ym2610_interface ym2610_config =
#define P2TRACKX_PORT_TAG "P2X"
#define P2TRACKY_PORT_TAG "P2Y"
-static READ8_HANDLER( syvalion_input_bypass_r )
+READ8_MEMBER(taitoh_state::syvalion_input_bypass_r)
{
/* Bypass TC0220IOC controller for analog input */
- taitoh_state *state = space->machine().driver_data<taitoh_state>();
- UINT8 port = tc0220ioc_port_r(state->m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
switch( port )
{
case 0x08: /* trackball y coords bottom 8 bits for 2nd player */
- return input_port_read(space->machine(), P2TRACKY_PORT_TAG);
+ return input_port_read(machine(), P2TRACKY_PORT_TAG);
case 0x09: /* trackball y coords top 8 bits for 2nd player */
- if (input_port_read(space->machine(), P2TRACKY_PORT_TAG) & 0x80) /* y- direction (negative value) */
+ if (input_port_read(machine(), P2TRACKY_PORT_TAG) & 0x80) /* y- direction (negative value) */
return 0xff;
else /* y+ direction (positive value) */
return 0x00;
case 0x0a: /* trackball x coords bottom 8 bits for 2nd player */
- return input_port_read(space->machine(), P2TRACKX_PORT_TAG);
+ return input_port_read(machine(), P2TRACKX_PORT_TAG);
case 0x0b: /* trackball x coords top 8 bits for 2nd player */
- if (input_port_read(space->machine(), P2TRACKX_PORT_TAG) & 0x80) /* x- direction (negative value) */
+ if (input_port_read(machine(), P2TRACKX_PORT_TAG) & 0x80) /* x- direction (negative value) */
return 0xff;
else /* x+ direction (positive value) */
return 0x00;
case 0x0c: /* trackball y coords bottom 8 bits for 1st player */
- return input_port_read(space->machine(), P1TRACKY_PORT_TAG);
+ return input_port_read(machine(), P1TRACKY_PORT_TAG);
case 0x0d: /* trackball y coords top 8 bits for 1st player */
- if (input_port_read(space->machine(), P1TRACKY_PORT_TAG) & 0x80) /* y- direction (negative value) */
+ if (input_port_read(machine(), P1TRACKY_PORT_TAG) & 0x80) /* y- direction (negative value) */
return 0xff;
else /* y+ direction (positive value) */
return 0x00;
case 0x0e: /* trackball x coords bottom 8 bits for 1st player */
- return input_port_read(space->machine(), P1TRACKX_PORT_TAG);
+ return input_port_read(machine(), P1TRACKX_PORT_TAG);
case 0x0f: /* trackball x coords top 8 bits for 1st player */
- if (input_port_read(space->machine(), P1TRACKX_PORT_TAG) & 0x80) /* x- direction (negative value) */
+ if (input_port_read(machine(), P1TRACKX_PORT_TAG) & 0x80) /* x- direction (negative value) */
return 0xff;
else /* x+ direction (positive value) */
return 0x00;
default:
- return tc0220ioc_portreg_r(state->m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, offset);
}
}
@@ -235,11 +234,10 @@ static void reset_sound_region(running_machine &machine)
memory_set_bank(machine, "bank1", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(taitoh_state::sound_bankswitch_w)
{
- taitoh_state *state = space->machine().driver_data<taitoh_state>();
- state->m_banknum = data & 3;
- reset_sound_region(space->machine());
+ m_banknum = data & 3;
+ reset_sound_region(machine());
}
@@ -252,7 +250,7 @@ static WRITE8_HANDLER( sound_bankswitch_w )
static ADDRESS_MAP_START( syvalion_map, AS_PROGRAM, 16, taitoh_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM AM_BASE(m_m68000_mainram)
- AM_RANGE(0x200000, 0x200001) AM_READ8_LEGACY(syvalion_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
+ AM_RANGE(0x200000, 0x200001) AM_READ8(syvalion_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
AM_RANGE(0x300000, 0x300001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
@@ -294,7 +292,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoh_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index e70f2a3d02a..f2bdbd336e4 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -337,121 +337,111 @@ static TIMER_DEVICE_CALLBACK( vbl_interrupt )
}
}
-static WRITE8_HANDLER( irq_adr_w )
+WRITE8_MEMBER(taitol_state::irq_adr_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
//logerror("irq_adr_table[%d] = %02x\n", offset, data);
- state->m_irq_adr_table[offset] = data;
+ m_irq_adr_table[offset] = data;
}
-static READ8_HANDLER( irq_adr_r )
+READ8_MEMBER(taitol_state::irq_adr_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return state->m_irq_adr_table[offset];
+ return m_irq_adr_table[offset];
}
-static WRITE8_HANDLER( irq_enable_w )
+WRITE8_MEMBER(taitol_state::irq_enable_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
//logerror("irq_enable = %02x\n",data);
- state->m_irq_enable = data;
+ m_irq_enable = data;
// fix Plotting test mode
- if ((state->m_irq_enable & (1 << state->m_last_irq_level)) == 0)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ if ((m_irq_enable & (1 << m_last_irq_level)) == 0)
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
}
-static READ8_HANDLER( irq_enable_r )
+READ8_MEMBER(taitol_state::irq_enable_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return state->m_irq_enable;
+ return m_irq_enable;
}
-static WRITE8_HANDLER( rombankswitch_w )
+WRITE8_MEMBER(taitol_state::rombankswitch_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- if (state->m_cur_rombank != data)
+ if (m_cur_rombank != data)
{
- if (data > state->m_high)
+ if (data > m_high)
{
- state->m_high = data;
- logerror("New rom size : %x\n", (state->m_high + 1) * 0x2000);
+ m_high = data;
+ logerror("New rom size : %x\n", (m_high + 1) * 0x2000);
}
- //logerror("robs %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space->device()));
- state->m_cur_rombank = data;
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() + 0x10000 + 0x2000 * state->m_cur_rombank);
+ //logerror("robs %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space.device()));
+ m_cur_rombank = data;
+ memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + 0x2000 * m_cur_rombank);
}
}
-static WRITE8_HANDLER( rombank2switch_w )
+WRITE8_MEMBER(taitol_state::rombank2switch_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
data &= 0xf;
- if (state->m_cur_rombank2 != data)
+ if (m_cur_rombank2 != data)
{
- if (data > state->m_high2)
+ if (data > m_high2)
{
- state->m_high2 = data;
- logerror("New rom2 size : %x\n", (state->m_high2 + 1) * 0x4000);
+ m_high2 = data;
+ logerror("New rom2 size : %x\n", (m_high2 + 1) * 0x4000);
}
- //logerror("robs2 %02x (%04x)\n", data, cpu_get_pc(&space->device()));
+ //logerror("robs2 %02x (%04x)\n", data, cpu_get_pc(&space.device()));
- state->m_cur_rombank2 = data;
- memory_set_bankptr(space->machine(), "bank6", space->machine().region("slave")->base() + 0x10000 + 0x4000 * state->m_cur_rombank2);
+ m_cur_rombank2 = data;
+ memory_set_bankptr(machine(), "bank6", machine().region("slave")->base() + 0x10000 + 0x4000 * m_cur_rombank2);
}
}
-static READ8_HANDLER( rombankswitch_r )
+READ8_MEMBER(taitol_state::rombankswitch_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return state->m_cur_rombank;
+ return m_cur_rombank;
}
-static READ8_HANDLER( rombank2switch_r )
+READ8_MEMBER(taitol_state::rombank2switch_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return state->m_cur_rombank2;
+ return m_cur_rombank2;
}
-static WRITE8_HANDLER( rambankswitch_w )
+WRITE8_MEMBER(taitol_state::rambankswitch_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- if (state->m_cur_rambank[offset] != data)
+ if (m_cur_rambank[offset] != data)
{
- state->m_cur_rambank[offset] = data;
-//logerror("rabs %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space->device()));
+ m_cur_rambank[offset] = data;
+//logerror("rabs %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space.device()));
if (data >= 0x14 && data <= 0x1f)
{
data -= 0x14;
- state->m_current_notifier[offset] = rambank_modify_notifiers[data].notifier;
- state->m_current_base[offset] = state->m_rambanks + rambank_modify_notifiers[data].offset;
+ m_current_notifier[offset] = rambank_modify_notifiers[data].notifier;
+ m_current_base[offset] = m_rambanks + rambank_modify_notifiers[data].offset;
}
else if (data == 0x80)
{
- state->m_current_notifier[offset] = palette_notifier;
- state->m_current_base[offset] = state->m_palette_ram;
+ m_current_notifier[offset] = palette_notifier;
+ m_current_base[offset] = m_palette_ram;
}
else
{
- logerror("unknown rambankswitch %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space->device()));
- state->m_current_notifier[offset] = 0;
- state->m_current_base[offset] = state->m_empty_ram;
+ logerror("unknown rambankswitch %d, %02x (%04x)\n", offset, data, cpu_get_pc(&space.device()));
+ m_current_notifier[offset] = 0;
+ m_current_base[offset] = m_empty_ram;
}
- memory_set_bankptr(space->machine(), bankname[offset], state->m_current_base[offset]);
+ memory_set_bankptr(machine(), bankname[offset], m_current_base[offset]);
}
}
-static READ8_HANDLER( rambankswitch_r )
+READ8_MEMBER(taitol_state::rambankswitch_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return state->m_cur_rambank[offset];
+ return m_cur_rambank[offset];
}
static void bank_w(address_space *space, offs_t offset, UINT8 data, int banknum )
@@ -466,32 +456,32 @@ static void bank_w(address_space *space, offs_t offset, UINT8 data, int banknum
}
}
-static WRITE8_HANDLER( bank0_w )
+WRITE8_MEMBER(taitol_state::bank0_w)
{
- bank_w(space, offset, data, 0);
+ bank_w(&space, offset, data, 0);
}
-static WRITE8_HANDLER( bank1_w )
+WRITE8_MEMBER(taitol_state::bank1_w)
{
- bank_w(space, offset, data, 1);
+ bank_w(&space, offset, data, 1);
}
-static WRITE8_HANDLER( bank2_w )
+WRITE8_MEMBER(taitol_state::bank2_w)
{
- bank_w(space, offset, data, 2);
+ bank_w(&space, offset, data, 2);
}
-static WRITE8_HANDLER( bank3_w )
+WRITE8_MEMBER(taitol_state::bank3_w)
{
- bank_w(space, offset, data, 3);
+ bank_w(&space, offset, data, 3);
}
-static WRITE8_HANDLER( control2_w )
+WRITE8_MEMBER(taitol_state::control2_w)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x01);
- coin_lockout_w(space->machine(), 1, ~data & 0x02);
- coin_counter_w(space->machine(), 0, data & 0x04);
- coin_counter_w(space->machine(), 1, data & 0x08);
+ coin_lockout_w(machine(), 0, ~data & 0x01);
+ coin_lockout_w(machine(), 1, ~data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x04);
+ coin_counter_w(machine(), 1, data & 0x08);
}
static READ8_DEVICE_HANDLER( portA_r )
@@ -513,90 +503,85 @@ static READ8_DEVICE_HANDLER( extport_select_and_ym2203_r )
return ym2203_r(device, offset & 1);
}
-static WRITE8_HANDLER( mcu_data_w )
+WRITE8_MEMBER(taitol_state::mcu_data_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- state->m_last_data = data;
- state->m_last_data_adr = cpu_get_pc(&space->device());
-// logerror("mcu write %02x (%04x)\n", data, cpu_get_pc(&space->device()));
+ m_last_data = data;
+ m_last_data_adr = cpu_get_pc(&space.device());
+// logerror("mcu write %02x (%04x)\n", data, cpu_get_pc(&space.device()));
switch (data)
{
case 0x43:
- state->m_mcu_pos = 0;
- state->m_mcu_reply_len = ARRAY_LENGTH(puzznic_mcu_reply);
+ m_mcu_pos = 0;
+ m_mcu_reply_len = ARRAY_LENGTH(puzznic_mcu_reply);
break;
}
}
-static WRITE8_HANDLER( mcu_control_w )
+WRITE8_MEMBER(taitol_state::mcu_control_w)
{
-// logerror("mcu control %02x (%04x)\n", data, cpu_get_pc(&space->device()));
+// logerror("mcu control %02x (%04x)\n", data, cpu_get_pc(&space.device()));
}
-static READ8_HANDLER( mcu_data_r )
+READ8_MEMBER(taitol_state::mcu_data_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
-// logerror("mcu read (%04x) [%02x, %04x]\n", cpu_get_pc(&space->device()), last_data, last_data_adr);
- if (state->m_mcu_pos == state->m_mcu_reply_len)
+// logerror("mcu read (%04x) [%02x, %04x]\n", cpu_get_pc(&space.device()), last_data, last_data_adr);
+ if (m_mcu_pos == m_mcu_reply_len)
return 0;
- return state->m_mcu_reply[state->m_mcu_pos++];
+ return m_mcu_reply[m_mcu_pos++];
}
-static READ8_HANDLER( mcu_control_r )
+READ8_MEMBER(taitol_state::mcu_control_r)
{
-// logerror("mcu control read (%04x)\n", cpu_get_pc(&space->device()));
+// logerror("mcu control read (%04x)\n", cpu_get_pc(&space.device()));
return 0x1;
}
#if 0
-static WRITE8_HANDLER( sound_w )
+WRITE8_MEMBER(taitol_state::sound_w)
{
- logerror("Sound_w %02x (%04x)\n", data, cpu_get_pc(&space->device()));
+ logerror("Sound_w %02x (%04x)\n", data, cpu_get_pc(&space.device()));
}
#endif
-static READ8_HANDLER( mux_r )
+READ8_MEMBER(taitol_state::mux_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- switch (state->m_mux_ctrl)
+ switch (m_mux_ctrl)
{
case 0:
- return input_port_read(space->machine(), "DSWA");
+ return input_port_read(machine(), "DSWA");
case 1:
- return input_port_read(space->machine(), "DSWB");
+ return input_port_read(machine(), "DSWB");
case 2:
- return input_port_read(space->machine(), "IN0");
+ return input_port_read(machine(), "IN0");
case 3:
- return input_port_read(space->machine(), "IN1");
+ return input_port_read(machine(), "IN1");
case 7:
- return input_port_read(space->machine(), "IN2");
+ return input_port_read(machine(), "IN2");
default:
- logerror("Mux read from unknown port %d (%04x)\n", state->m_mux_ctrl, cpu_get_pc(&space->device()));
+ logerror("Mux read from unknown port %d (%04x)\n", m_mux_ctrl, cpu_get_pc(&space.device()));
return 0xff;
}
}
-static WRITE8_HANDLER( mux_w )
+WRITE8_MEMBER(taitol_state::mux_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- switch (state->m_mux_ctrl)
+ switch (m_mux_ctrl)
{
case 4:
control2_w(space, 0, data);
break;
default:
- logerror("Mux write to unknown port %d, %02x (%04x)\n", state->m_mux_ctrl, data, cpu_get_pc(&space->device()));
+ logerror("Mux write to unknown port %d, %02x (%04x)\n", m_mux_ctrl, data, cpu_get_pc(&space.device()));
}
}
-static WRITE8_HANDLER( mux_ctrl_w )
+WRITE8_MEMBER(taitol_state::mux_ctrl_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- state->m_mux_ctrl = data;
+ m_mux_ctrl = data;
}
@@ -617,16 +602,14 @@ static void champwr_msm5205_vck( device_t *device )
}
}
-static WRITE8_HANDLER( champwr_msm5205_lo_w )
+WRITE8_MEMBER(taitol_state::champwr_msm5205_lo_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- state->m_adpcm_pos = (state->m_adpcm_pos & 0xff00ff) | (data << 8);
+ m_adpcm_pos = (m_adpcm_pos & 0xff00ff) | (data << 8);
}
-static WRITE8_HANDLER( champwr_msm5205_hi_w )
+WRITE8_MEMBER(taitol_state::champwr_msm5205_hi_w)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- state->m_adpcm_pos = ((state->m_adpcm_pos & 0x00ffff) | (data << 16)) & 0x1ffff;
+ m_adpcm_pos = ((m_adpcm_pos & 0x00ffff) | (data << 16)) & 0x1ffff;
}
static WRITE8_DEVICE_HANDLER( champwr_msm5205_start_w )
@@ -649,62 +632,56 @@ static WRITE8_DEVICE_HANDLER( champwr_msm5205_volume_w )
sound->set_output_gain(0, data / 255.0);
}
-static READ8_HANDLER( horshoes_tracky_reset_r )
+READ8_MEMBER(taitol_state::horshoes_tracky_reset_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
/* reset the trackball counter */
- state->m_tracky = input_port_read(space->machine(), "AN0");
+ m_tracky = input_port_read(machine(), "AN0");
return 0;
}
-static READ8_HANDLER( horshoes_trackx_reset_r )
+READ8_MEMBER(taitol_state::horshoes_trackx_reset_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
/* reset the trackball counter */
- state->m_trackx = input_port_read(space->machine(), "AN1");
+ m_trackx = input_port_read(machine(), "AN1");
return 0;
}
-static READ8_HANDLER( horshoes_tracky_lo_r )
+READ8_MEMBER(taitol_state::horshoes_tracky_lo_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return (input_port_read(space->machine(), "AN0") - state->m_tracky) & 0xff;
+ return (input_port_read(machine(), "AN0") - m_tracky) & 0xff;
}
-static READ8_HANDLER( horshoes_tracky_hi_r )
+READ8_MEMBER(taitol_state::horshoes_tracky_hi_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return (input_port_read(space->machine(), "AN0") - state->m_tracky) >> 8;
+ return (input_port_read(machine(), "AN0") - m_tracky) >> 8;
}
-static READ8_HANDLER( horshoes_trackx_lo_r )
+READ8_MEMBER(taitol_state::horshoes_trackx_lo_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return (input_port_read(space->machine(), "AN1") - state->m_trackx) & 0xff;
+ return (input_port_read(machine(), "AN1") - m_trackx) & 0xff;
}
-static READ8_HANDLER( horshoes_trackx_hi_r )
+READ8_MEMBER(taitol_state::horshoes_trackx_hi_r)
{
- taitol_state *state = space->machine().driver_data<taitol_state>();
- return (input_port_read(space->machine(), "AN1") - state->m_trackx) >> 8;
+ return (input_port_read(machine(), "AN1") - m_trackx) >> 8;
}
#define COMMON_BANKS_MAP \
AM_RANGE(0x0000, 0x5fff) AM_ROM \
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1") \
- AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("bank2") AM_WRITE_LEGACY(bank0_w) \
- AM_RANGE(0xd000, 0xdfff) AM_ROMBANK("bank3") AM_WRITE_LEGACY(bank1_w) \
- AM_RANGE(0xe000, 0xefff) AM_ROMBANK("bank4") AM_WRITE_LEGACY(bank2_w) \
- AM_RANGE(0xf000, 0xfdff) AM_ROMBANK("bank5") AM_WRITE_LEGACY(bank3_w) \
+ AM_RANGE(0xc000, 0xcfff) AM_ROMBANK("bank2") AM_WRITE(bank0_w) \
+ AM_RANGE(0xd000, 0xdfff) AM_ROMBANK("bank3") AM_WRITE(bank1_w) \
+ AM_RANGE(0xe000, 0xefff) AM_ROMBANK("bank4") AM_WRITE(bank2_w) \
+ AM_RANGE(0xf000, 0xfdff) AM_ROMBANK("bank5") AM_WRITE(bank3_w) \
AM_RANGE(0xfe00, 0xfe03) AM_READWRITE_LEGACY(taitol_bankc_r, taitol_bankc_w) \
AM_RANGE(0xfe04, 0xfe04) AM_READWRITE_LEGACY(taitol_control_r, taitol_control_w) \
- AM_RANGE(0xff00, 0xff02) AM_READWRITE_LEGACY(irq_adr_r, irq_adr_w) \
- AM_RANGE(0xff03, 0xff03) AM_READWRITE_LEGACY(irq_enable_r, irq_enable_w) \
- AM_RANGE(0xff04, 0xff07) AM_READWRITE_LEGACY(rambankswitch_r, rambankswitch_w) \
- AM_RANGE(0xff08, 0xff08) AM_READWRITE_LEGACY(rombankswitch_r, rombankswitch_w)
+ AM_RANGE(0xff00, 0xff02) AM_READWRITE(irq_adr_r, irq_adr_w) \
+ AM_RANGE(0xff03, 0xff03) AM_READWRITE(irq_enable_r, irq_enable_w) \
+ AM_RANGE(0xff04, 0xff07) AM_READWRITE(rambankswitch_r, rambankswitch_w) \
+ 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) \
@@ -721,14 +698,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fhawk_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank6")
- AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(rombank2switch_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(rombank2switch_w)
AM_RANGE(0xc800, 0xc800) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_port_w)
AM_RANGE(0xc801, 0xc801) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w)
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("DSWA") AM_WRITENOP // Direct copy of input port 0
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("DSWB")
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("IN0")
AM_RANGE(0xd003, 0xd003) AM_READ_PORT("IN1")
- AM_RANGE(0xd004, 0xd004) AM_WRITE_LEGACY(control2_w)
+ AM_RANGE(0xd004, 0xd004) AM_WRITE(control2_w)
AM_RANGE(0xd005, 0xd006) AM_WRITENOP // Always 0
AM_RANGE(0xd007, 0xd007) AM_READ_PORT("IN2")
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
@@ -747,8 +724,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( raimais_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x8800, 0x8800) AM_READWRITE_LEGACY(mux_r, mux_w)
- AM_RANGE(0x8801, 0x8801) AM_WRITE_LEGACY(mux_ctrl_w) AM_READNOP // Watchdog or interrupt ack (value ignored)
+ AM_RANGE(0x8800, 0x8800) AM_READWRITE(mux_r, mux_w)
+ AM_RANGE(0x8801, 0x8801) AM_WRITE(mux_ctrl_w) AM_READNOP // Watchdog or interrupt ack (value ignored)
AM_RANGE(0x8c00, 0x8c00) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_port_w)
AM_RANGE(0x8c01, 0x8c01) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w)
AM_RANGE(0xa000, 0xbfff) AM_RAM
@@ -761,12 +738,12 @@ static ADDRESS_MAP_START( raimais_2_map, AS_PROGRAM, 8, taitol_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(taitol_state::sound_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("audiocpu")->base();
+ UINT8 *RAM = machine().region("audiocpu")->base();
int banknum = (data - 1) & 3;
- memory_set_bankptr (space->machine(), "bank7", &RAM [0x10000 + (banknum * 0x4000)]);
+ memory_set_bankptr (machine(), "bank7", &RAM [0x10000 + (banknum * 0x4000)]);
}
static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8, taitol_state )
@@ -780,7 +757,7 @@ static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0xe600, 0xe600) AM_WRITENOP /* ? */
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
@@ -798,12 +775,12 @@ static ADDRESS_MAP_START( champwr_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSWB")
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("IN0")
AM_RANGE(0xe003, 0xe003) AM_READ_PORT("IN1")
- AM_RANGE(0xe004, 0xe004) AM_WRITE_LEGACY(control2_w)
+ AM_RANGE(0xe004, 0xe004) AM_WRITE(control2_w)
AM_RANGE(0xe007, 0xe007) AM_READ_PORT("IN2")
AM_RANGE(0xe008, 0xe00f) AM_READNOP
AM_RANGE(0xe800, 0xe800) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_port_w)
AM_RANGE(0xe801, 0xe801) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w)
- AM_RANGE(0xf000, 0xf000) AM_READWRITE_LEGACY(rombank2switch_r, rombank2switch_w)
+ AM_RANGE(0xf000, 0xf000) AM_READWRITE(rombank2switch_r, rombank2switch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( champwr_3_map, AS_PROGRAM, 8, taitol_state )
@@ -813,8 +790,8 @@ static ADDRESS_MAP_START( champwr_3_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0x9000, 0x9001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xa000, 0xa000) AM_READNOP 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_LEGACY(champwr_msm5205_hi_w)
- AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(champwr_msm5205_lo_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)
ADDRESS_MAP_END
@@ -825,8 +802,8 @@ static ADDRESS_MAP_START( kurikint_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xa800, 0xa800) AM_READWRITE_LEGACY(mux_r, mux_w)
- AM_RANGE(0xa801, 0xa801) AM_WRITE_LEGACY(mux_ctrl_w) AM_READNOP // Watchdog or interrupt ack (value ignored)
+ AM_RANGE(0xa800, 0xa800) AM_READWRITE(mux_r, mux_w)
+ AM_RANGE(0xa801, 0xa801) AM_WRITE(mux_ctrl_w) AM_READNOP // Watchdog or interrupt ack (value ignored)
ADDRESS_MAP_END
static ADDRESS_MAP_START( kurikint_2_map, AS_PROGRAM, 8, taitol_state )
@@ -835,7 +812,7 @@ static ADDRESS_MAP_START( kurikint_2_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0xe800, 0xe801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
#if 0
- AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(rombank2switch_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(rombank2switch_w)
AM_RANGE(0xd000, 0xd000) AM_READ_PORT("DSWA")
AM_RANGE(0xd001, 0xd001) AM_READ_PORT("DSWB")
AM_RANGE(0xd002, 0xd002) AM_READ_PORT("IN0")
@@ -851,8 +828,8 @@ static ADDRESS_MAP_START( puzznic_map, AS_PROGRAM, 8, taitol_state )
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READNOP // Watchdog
AM_RANGE(0xb000, 0xb7ff) AM_RAM // Wrong, used to overcome protection
- AM_RANGE(0xb800, 0xb800) AM_READWRITE_LEGACY(mcu_data_r, mcu_data_w)
- AM_RANGE(0xb801, 0xb801) AM_READWRITE_LEGACY(mcu_control_r, mcu_control_w)
+ AM_RANGE(0xb800, 0xb800) AM_READWRITE(mcu_data_r, mcu_data_w)
+ AM_RANGE(0xb801, 0xb801) AM_READWRITE(mcu_control_r, mcu_control_w)
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP // Control register, function unknown
ADDRESS_MAP_END
@@ -862,9 +839,9 @@ static ADDRESS_MAP_START( puzznici_map, AS_PROGRAM, 8, taitol_state )
COMMON_SINGLE_MAP
AM_RANGE(0xa800, 0xa800) AM_READNOP // Watchdog
AM_RANGE(0xb000, 0xb7ff) AM_RAM // Wrong, used to overcome protection
-// AM_RANGE(0xb800, 0xb800) AM_READWRITE_LEGACY(mcu_data_r, mcu_data_w)
- AM_RANGE(0xb801, 0xb801) AM_READ_LEGACY(mcu_control_r)
-// AM_RANGE(0xb801, 0xb801) AM_WRITE_LEGACY(mcu_control_w)
+// AM_RANGE(0xb800, 0xb800) AM_READWRITE(mcu_data_r, mcu_data_w)
+ AM_RANGE(0xb801, 0xb801) AM_READ(mcu_control_r)
+// AM_RANGE(0xb801, 0xb801) AM_WRITE(mcu_control_w)
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP // Control register, function unknown
ADDRESS_MAP_END
@@ -898,19 +875,19 @@ static ADDRESS_MAP_START( cachat_map, AS_PROGRAM, 8, taitol_state )
AM_RANGE(0xa803, 0xa803) AM_WRITENOP // Control register, function unknown
AM_RANGE(0xb000, 0xb000) AM_WRITENOP // Control register, function unknown
AM_RANGE(0xb001, 0xb001) AM_READNOP // Watchdog or interrupt ack (value ignored)
- AM_RANGE(0xfff8, 0xfff8) AM_READWRITE_LEGACY(rombankswitch_r, rombankswitch_w)
+ AM_RANGE(0xfff8, 0xfff8) AM_READWRITE(rombankswitch_r, rombankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( horshoes_map, AS_PROGRAM, 8, taitol_state )
COMMON_BANKS_MAP
COMMON_SINGLE_MAP
- AM_RANGE(0xa800, 0xa800) AM_READ_LEGACY(horshoes_tracky_lo_r)
- AM_RANGE(0xa802, 0xa802) AM_READ_LEGACY(horshoes_tracky_reset_r)
- AM_RANGE(0xa803, 0xa803) AM_READ_LEGACY(horshoes_trackx_reset_r)
- AM_RANGE(0xa804, 0xa804) AM_READ_LEGACY(horshoes_tracky_hi_r)
- AM_RANGE(0xa808, 0xa808) AM_READ_LEGACY(horshoes_trackx_lo_r)
- AM_RANGE(0xa80c, 0xa80c) AM_READ_LEGACY(horshoes_trackx_hi_r)
+ AM_RANGE(0xa800, 0xa800) AM_READ(horshoes_tracky_lo_r)
+ AM_RANGE(0xa802, 0xa802) AM_READ(horshoes_tracky_reset_r)
+ AM_RANGE(0xa803, 0xa803) AM_READ(horshoes_trackx_reset_r)
+ AM_RANGE(0xa804, 0xa804) AM_READ(horshoes_tracky_hi_r)
+ AM_RANGE(0xa808, 0xa808) AM_READ(horshoes_trackx_lo_r)
+ AM_RANGE(0xa80c, 0xa80c) AM_READ(horshoes_trackx_hi_r)
AM_RANGE(0xb801, 0xb801) AM_READNOP // Watchdog or interrupt ack
AM_RANGE(0xb802, 0xb802) AM_WRITE_LEGACY(horshoes_bankg_w)
AM_RANGE(0xbc00, 0xbc00) AM_WRITENOP
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index 73f15230f2c..9a2e9fef511 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -37,25 +37,25 @@ TODO:
static const int clear_hack = 1;
-static WRITE16_HANDLER(io_w)
+WRITE16_MEMBER(taitoo_state::io_w)
{
switch(offset)
{
- case 2: watchdog_reset(space->machine()); break;
+ case 2: watchdog_reset(machine()); break;
default: logerror("IO W %x %x %x\n", offset, data, mem_mask);
}
}
-static READ16_HANDLER(io_r)
+READ16_MEMBER(taitoo_state::io_r)
{
int retval = 0;
switch(offset)
{
- case 0: retval = input_port_read(space->machine(), "IN0") & (clear_hack ? 0xf7ff : 0xffff); break;
- case 1: retval = input_port_read(space->machine(), "IN1") & (clear_hack ? 0xfff7 : 0xffff); break;
- default: logerror("IO R %x %x = %x @ %x\n", offset, mem_mask, retval, cpu_get_pc(&space->device()));
+ case 0: retval = input_port_read(machine(), "IN0") & (clear_hack ? 0xf7ff : 0xffff); break;
+ case 1: retval = input_port_read(machine(), "IN1") & (clear_hack ? 0xfff7 : 0xffff); break;
+ default: logerror("IO R %x %x = %x @ %x\n", offset, mem_mask, retval, cpu_get_pc(&space.device()));
}
return retval;
}
@@ -63,7 +63,7 @@ static READ16_HANDLER(io_r)
static ADDRESS_MAP_START( parentj_map, AS_PROGRAM, 16, taitoo_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM
- AM_RANGE(0x200000, 0x20000f) AM_READWRITE_LEGACY(io_r, io_w) /* TC0220IOC ? */
+ AM_RANGE(0x200000, 0x20000f) AM_READWRITE(io_r, io_w) /* TC0220IOC ? */
AM_RANGE(0x300000, 0x300003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2203_r, ym2203_w, 0x00ff)
AM_RANGE(0x400000, 0x420fff) AM_DEVREADWRITE_LEGACY("tc0080vco", tc0080vco_word_r, tc0080vco_word_w)
AM_RANGE(0x500800, 0x500fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index cbfb544afb8..990330a4d57 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -900,26 +900,25 @@ static void parse_control( running_machine &machine )
}
-static WRITE16_HANDLER( cpua_ctrl_w )
+WRITE16_MEMBER(taitoz_state::cpua_ctrl_w)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
if ((data & 0xff00) && ((data & 0xff) == 0))
data = data >> 8; /* for Wgp */
- state->m_cpua_ctrl = data;
+ m_cpua_ctrl = data;
- parse_control(space->machine());
+ parse_control(machine());
// Chase HQ: handle the lights
- if (state->m_chasehq_lamps)
+ if (m_chasehq_lamps)
{
output_set_lamp_value(0, (data & 0x20) ? 1 : 0);
output_set_lamp_value(1, (data & 0x40) ? 1 : 0);
}
- if (state->m_dblaxle_vibration) output_set_value("Wheel_Vibration", (data & 0x04)>>2);
- logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space->device()), data);
+ if (m_dblaxle_vibration) output_set_value("Wheel_Vibration", (data & 0x04)>>2);
+ logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space.device()), data);
}
@@ -1027,16 +1026,14 @@ static const eeprom_interface spacegun_eeprom_intf =
#if 0
-static READ16_HANDLER( eep_latch_r )
+READ16_MEMBER(taitoz_state::eep_latch_r)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
- return state->m_eep_latch;
+ return m_eep_latch;
}
#endif
-static WRITE16_HANDLER( spacegun_output_bypass_w )
+WRITE16_MEMBER(taitoz_state::spacegun_output_bypass_w)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
switch (offset)
{
@@ -1048,12 +1045,12 @@ static WRITE16_HANDLER( spacegun_output_bypass_w )
0x000000 eeprom data
x0000000 (unused) */
- COMBINE_DATA(&state->m_eep_latch);
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ COMBINE_DATA(&m_eep_latch);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
break;
default:
- tc0220ioc_w(state->m_tc0220ioc, offset, data); /* might be a 510NIO ! */
+ tc0220ioc_w(m_tc0220ioc, offset, data); /* might be a 510NIO ! */
}
}
@@ -1062,19 +1059,18 @@ static WRITE16_HANDLER( spacegun_output_bypass_w )
GAME INPUTS
**********************************************************/
-static READ8_HANDLER( contcirc_input_bypass_r )
+READ8_MEMBER(taitoz_state::contcirc_input_bypass_r)
{
/* Bypass TC0220IOC controller for analog input */
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
- UINT8 port = tc0220ioc_port_r(state->m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
int steer = 0;
- int fake = input_port_read(space->machine(), "FAKE");
+ int fake = input_port_read(machine(), "FAKE");
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* center around zero and reduce span to 0xc0 */
- steer = ((input_port_read(space->machine(), "STEER") - 0x80) * 0xc0) / 0x100;
+ steer = ((input_port_read(machine(), "STEER") - 0x80) * 0xc0) / 0x100;
}
else /* Digital steer */
@@ -1098,24 +1094,23 @@ static READ8_HANDLER( contcirc_input_bypass_r )
return steer >> 8;
default:
- return tc0220ioc_portreg_r(state->m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, offset);
}
}
-static READ8_HANDLER( chasehq_input_bypass_r )
+READ8_MEMBER(taitoz_state::chasehq_input_bypass_r)
{
/* Bypass TC0220IOC controller for extra inputs */
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
- UINT8 port = tc0220ioc_port_r(state->m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
int steer = 0;
- int fake = input_port_read(space->machine(), "FAKE");
+ int fake = input_port_read(machine(), "FAKE");
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* center around zero */
- steer = input_port_read(space->machine(), "STEER") - 0x80;
+ steer = input_port_read(machine(), "STEER") - 0x80;
}
else /* Digital steer */
{
@@ -1132,16 +1127,16 @@ static READ8_HANDLER( chasehq_input_bypass_r )
switch (port)
{
case 0x08:
- return input_port_read(space->machine(), "UNK1");
+ return input_port_read(machine(), "UNK1");
case 0x09:
- return input_port_read(space->machine(), "UNK2");
+ return input_port_read(machine(), "UNK2");
case 0x0a:
- return input_port_read(space->machine(), "UNK3");
+ return input_port_read(machine(), "UNK3");
case 0x0b:
- return input_port_read(space->machine(), "UNK4");
+ return input_port_read(machine(), "UNK4");
case 0x0c:
return steer & 0xff;
@@ -1150,57 +1145,57 @@ static READ8_HANDLER( chasehq_input_bypass_r )
return steer >> 8;
default:
- return tc0220ioc_portreg_r(state->m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, offset);
}
}
-static READ16_HANDLER( bshark_stick_r )
+READ16_MEMBER(taitoz_state::bshark_stick_r)
{
switch (offset)
{
case 0x00:
- return input_port_read(space->machine(), "STICKX");
+ return input_port_read(machine(), "STICKX");
case 0x01:
- return input_port_read(space->machine(), "X_ADJUST");
+ return input_port_read(machine(), "X_ADJUST");
case 0x02:
- return input_port_read(space->machine(), "STICKY");
+ return input_port_read(machine(), "STICKY");
case 0x03:
- return input_port_read(space->machine(), "Y_ADJUST");
+ return input_port_read(machine(), "Y_ADJUST");
}
- logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n", cpu_get_pc(&space.device()), offset);
return 0xff;
}
-static READ16_HANDLER( nightstr_stick_r )
+READ16_MEMBER(taitoz_state::nightstr_stick_r)
{
switch (offset)
{
case 0x00:
- return input_port_read(space->machine(), "STICKX");
+ return input_port_read(machine(), "STICKX");
case 0x01:
- return input_port_read(space->machine(), "STICKY");
+ return input_port_read(machine(), "STICKY");
case 0x02:
- return input_port_read(space->machine(), "X_ADJUST");
+ return input_port_read(machine(), "X_ADJUST");
case 0x03:
- return input_port_read(space->machine(), "Y_ADJUST");
+ return input_port_read(machine(), "Y_ADJUST");
}
- logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped stick offset %06x\n", cpu_get_pc(&space.device()), offset);
return 0xff;
}
-static WRITE16_HANDLER( bshark_stick_w )
+WRITE16_MEMBER(taitoz_state::bshark_stick_w)
{
/* Each write invites a new interrupt as soon as the
hardware has got the next a/d conversion ready. We set a token
@@ -1208,19 +1203,19 @@ static WRITE16_HANDLER( bshark_stick_w )
but we don't want CPUA to have an int6 before int4 is over (?)
*/
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(10000), FUNC(taitoz_interrupt6));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(10000), FUNC(taitoz_interrupt6));
}
-static READ16_HANDLER( sci_steer_input_r )
+READ16_MEMBER(taitoz_state::sci_steer_input_r)
{
int steer = 0;
- int fake = input_port_read(space->machine(), "FAKE");
+ int fake = input_port_read(machine(), "FAKE");
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* center around zero and reduce span to 0xc0 */
- steer = ((input_port_read(space->machine(), "STEER") - 0x80) * 0xc0) / 0x100;
+ steer = ((input_port_read(machine(), "STEER") - 0x80) * 0xc0) / 0x100;
}
else /* Digital steer */
{
@@ -1243,47 +1238,46 @@ static READ16_HANDLER( sci_steer_input_r )
return (steer & 0xff00) >> 8;
}
- logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %06x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %06x\n", cpu_get_pc(&space.device()), offset);
return 0xff;
}
-static READ16_HANDLER( spacegun_input_bypass_r )
+READ16_MEMBER(taitoz_state::spacegun_input_bypass_r)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
switch (offset)
{
case 0x03:
- return state->m_eeprom->read_bit() << 7;
+ return m_eeprom->read_bit() << 7;
default:
- return tc0220ioc_r(state->m_tc0220ioc, offset); /* might be a 510NIO ! */
+ return tc0220ioc_r(m_tc0220ioc, offset); /* might be a 510NIO ! */
}
}
-static READ16_HANDLER( spacegun_lightgun_r )
+READ16_MEMBER(taitoz_state::spacegun_lightgun_r)
{
switch (offset)
{
case 0x00:
- return input_port_read(space->machine(), "STICKX1");
+ return input_port_read(machine(), "STICKX1");
case 0x01:
- return input_port_read(space->machine(), "STICKY1");
+ return input_port_read(machine(), "STICKY1");
case 0x02:
- return input_port_read(space->machine(), "STICKX2");
+ return input_port_read(machine(), "STICKX2");
case 0x03:
- return input_port_read(space->machine(), "STICKY2");
+ return input_port_read(machine(), "STICKY2");
}
return 0x00;
}
-static WRITE16_HANDLER( spacegun_lightgun_w )
+WRITE16_MEMBER(taitoz_state::spacegun_lightgun_w)
{
/* Each write invites a new lightgun interrupt as soon as the
hardware has got the next coordinate ready. We set a token
@@ -1293,25 +1287,25 @@ static WRITE16_HANDLER( spacegun_lightgun_w )
Four lightgun interrupts happen before the collected coords
are moved to shared ram where CPUA can use them. */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(10000), FUNC(taitoz_cpub_interrupt5));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(10000), FUNC(taitoz_cpub_interrupt5));
}
-static WRITE16_HANDLER( spacegun_gun_output_w )
+WRITE16_MEMBER(taitoz_state::spacegun_gun_output_w)
{
output_set_value("Player1_Gun_Recoil",(data & 0x01));
output_set_value("Player2_Gun_Recoil",(data & 0x02)>>1);
}
-static READ16_HANDLER( dblaxle_steer_input_r )
+READ16_MEMBER(taitoz_state::dblaxle_steer_input_r)
{
int steer = 0;
- int fake = input_port_read(space->machine(), "FAKE");
+ int fake = input_port_read(machine(), "FAKE");
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* center around zero and reduce span to 0x80 */
- steer = ((input_port_read(space->machine(), "STEER") - 0x80) * 0x80) / 0x100;
+ steer = ((input_port_read(machine(), "STEER") - 0x80) * 0x80) / 0x100;
}
else /* Digital steer */
{
@@ -1334,29 +1328,29 @@ static READ16_HANDLER( dblaxle_steer_input_r )
return steer & 0xff;
}
- logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %02x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read unmapped steer input offset %02x\n", cpu_get_pc(&space.device()), offset);
return 0x00;
}
-static READ16_HANDLER( chasehq_motor_r )
+READ16_MEMBER(taitoz_state::chasehq_motor_r)
{
switch (offset)
{
case 0x0:
- return (space->machine().rand() &0xff); /* motor status ?? */
+ return (machine().rand() &0xff); /* motor status ?? */
case 0x101:
return 0x55; /* motor cpu status ? */
default:
-logerror("CPU #0 PC %06x: warning - read motor cpu %03x\n",cpu_get_pc(&space->device()),offset);
+logerror("CPU #0 PC %06x: warning - read motor cpu %03x\n",cpu_get_pc(&space.device()),offset);
return 0;
}
}
-static WRITE16_HANDLER( chasehq_motor_w )
+WRITE16_MEMBER(taitoz_state::chasehq_motor_w)
{
/* Writes $e00000-25 and $e00200-219 */
switch (offset)
@@ -1367,12 +1361,12 @@ static WRITE16_HANDLER( chasehq_motor_w )
/* outputs will go here, but driver is still broken */
break;
}
-logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n",cpu_get_pc(&space->device()),data,offset);
+logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n",cpu_get_pc(&space.device()),data,offset);
}
-static WRITE16_HANDLER( nightstr_motor_w )
+WRITE16_MEMBER(taitoz_state::nightstr_motor_w)
{
/* Despite the informative notes at the top, the high end of the word doesn't seem to output any useful data. */
@@ -1410,7 +1404,7 @@ static WRITE16_HANDLER( nightstr_motor_w )
-static READ16_HANDLER( aquajack_unknown_r )
+READ16_MEMBER(taitoz_state::aquajack_unknown_r)
{
return 0xff;
}
@@ -1426,22 +1420,20 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank10", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(taitoz_state::sound_bankswitch_w)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
- state->m_banknum = data & 7;
- reset_sound_region(space->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
-static WRITE16_HANDLER( taitoz_sound_w )
+WRITE16_MEMBER(taitoz_state::taitoz_sound_w)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
#ifdef MAME_DEBUG
// if (data & 0xff00)
@@ -1454,25 +1446,23 @@ static WRITE16_HANDLER( taitoz_sound_w )
#endif
}
-static READ16_HANDLER( taitoz_sound_r )
+READ16_MEMBER(taitoz_state::taitoz_sound_r)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
if (offset == 1)
- return (tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff);
+ return (tc0140syt_comm_r(m_tc0140syt, 0) & 0xff);
else
return 0;
}
#if 0
-static WRITE16_HANDLER( taitoz_msb_sound_w )
+WRITE16_MEMBER(taitoz_state::taitoz_msb_sound_w)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, (data >> 8) & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, (data >> 8) & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, (data >> 8) & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, (data >> 8) & 0xff);
#ifdef MAME_DEBUG
if (data & 0xff)
@@ -1485,12 +1475,11 @@ static WRITE16_HANDLER( taitoz_msb_sound_w )
#endif
}
-static READ16_HANDLER( taitoz_msb_sound_r )
+READ16_MEMBER(taitoz_state::taitoz_msb_sound_r)
{
- taitoz_state *state = space->machine().driver_data<taitoz_state>();
if (offset == 1)
- return ((tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff) << 8);
+ return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff) << 8);
else
return 0;
}
@@ -1498,20 +1487,19 @@ static READ16_HANDLER( taitoz_msb_sound_r )
/**** sound pan control ****/
-static WRITE8_HANDLER( taitoz_pancontrol )
+WRITE8_MEMBER(taitoz_state::taitoz_pancontrol)
{
-// taitoz_state *state = space->machine().driver_data<taitoz_state>();
static const char *const fltname[] = { "2610.1.r", "2610.1.l", "2610.2.r", "2610.2.l" };
offset = offset & 3;
-// state->m_pandata[offset] = data;
-// popmessage(" pan %02x %02x %02x %02x", state->m_pandata[0], state->m_pandata[1], state->m_pandata[2], state->m_pandata[3] );
+// m_pandata[offset] = data;
+// popmessage(" pan %02x %02x %02x %02x", m_pandata[0], m_pandata[1], m_pandata[2], m_pandata[3] );
- flt_volume_set_volume(space->machine().device(fltname[offset & 3]), data / 255.0f);
+ flt_volume_set_volume(machine().device(fltname[offset & 3]), data / 255.0f);
}
-static WRITE16_HANDLER( spacegun_pancontrol )
+WRITE16_MEMBER(taitoz_state::spacegun_pancontrol)
{
if (ACCESSING_BITS_0_7)
taitoz_pancontrol(space, offset, data & 0xff);
@@ -1539,9 +1527,9 @@ static ADDRESS_MAP_START( contcirc_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x084000, 0x087fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x100000, 0x100001) AM_READ8_LEGACY(contcirc_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
+ AM_RANGE(0x100000, 0x100001) AM_READ8(contcirc_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x100002, 0x100003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff) /* (actually game uses TC040IOC) */
- AM_RANGE(0x200000, 0x200003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
ADDRESS_MAP_END
@@ -1550,15 +1538,15 @@ static ADDRESS_MAP_START( chasehq_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x100000, 0x107fff) AM_RAM
AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x10c000, 0x10ffff) AM_RAM
- AM_RANGE(0x400000, 0x400001) AM_READ8_LEGACY(chasehq_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
+ AM_RANGE(0x400000, 0x400001) AM_READ8(chasehq_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x400002, 0x400003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x820000, 0x820003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
AM_RANGE(0xa00000, 0xa00007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette */
AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xe00000, 0xe003ff) AM_READWRITE_LEGACY(chasehq_motor_r, chasehq_motor_w) /* motor cpu */
+ AM_RANGE(0xe00000, 0xe003ff) AM_READWRITE(chasehq_motor_r, chasehq_motor_w) /* motor cpu */
ADDRESS_MAP_END
static ADDRESS_MAP_START( chq_cpub_map, AS_PROGRAM, 16, taitoz_state )
@@ -1573,7 +1561,7 @@ static ADDRESS_MAP_START( enforce_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(cpua_ctrl_w) // works without?
+ AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // works without?
AM_RANGE(0x300000, 0x3006ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x400000, 0x401fff) AM_DEVREADWRITE_LEGACY("tc0150rod", tc0150rod_word_r, tc0150rod_word_w) /* "root ram" ??? */
AM_RANGE(0x500000, 0x500007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_rbswap_word_w) /* palette */
@@ -1585,7 +1573,7 @@ static ADDRESS_MAP_START( enforce_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x200000, 0x200003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x200000, 0x200003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_r, tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
ADDRESS_MAP_END
@@ -1596,8 +1584,8 @@ static ADDRESS_MAP_START( bshark_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x800000, 0x800007) AM_READWRITE_LEGACY(bshark_stick_r, bshark_stick_w)
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w)
AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
@@ -1609,8 +1597,8 @@ static ADDRESS_MAP_START( bsharkjjs_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(cpua_ctrl_w)
-// AM_RANGE(0x800000, 0x800007) AM_READWRITE_LEGACY(bshark_stick_r, bshark_stick_w) /* No analog stick, this is the Joystick version */
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w)
+// AM_RANGE(0x800000, 0x800007) AM_READWRITE(bshark_stick_r, bshark_stick_w) /* No analog stick, this is the Joystick version */
AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xc00000, 0xc00fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
@@ -1621,7 +1609,7 @@ static ADDRESS_MAP_START( bshark_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x108000, 0x10bfff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x400000, 0x400007) AM_WRITE_LEGACY(spacegun_pancontrol) /* pan */
+ AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol) /* pan */
// AM_RANGE(0x40000a, 0x40000b) AM_READ_LEGACY(taitoz_unknown_r) // ???
AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2610_r, ym2610_w, 0x00ff)
AM_RANGE(0x60000c, 0x60000d) AM_NOP // interrupt controller?
@@ -1636,9 +1624,9 @@ static ADDRESS_MAP_START( sci_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x108000, 0x10bfff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x10c000, 0x10ffff) AM_RAM
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x200010, 0x20001f) AM_READ_LEGACY(sci_steer_input_r)
-// AM_RANGE(0x400000, 0x400001) AM_WRITE_LEGACY(cpua_ctrl_w) // ?? doesn't seem to fit what's written
- AM_RANGE(0x420000, 0x420003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x200010, 0x20001f) AM_READ(sci_steer_input_r)
+// AM_RANGE(0x400000, 0x400001) AM_WRITE(cpua_ctrl_w) // ?? doesn't seem to fit what's written
+ AM_RANGE(0x420000, 0x420003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
AM_RANGE(0xa20000, 0xa2000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
@@ -1659,14 +1647,14 @@ static ADDRESS_MAP_START( nightstr_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM
AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x800000, 0x800001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x820000, 0x820003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x800000, 0x800001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x820000, 0x820003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
AM_RANGE(0xa00000, 0xa00007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette */
AM_RANGE(0xc00000, 0xc0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
AM_RANGE(0xc20000, 0xc2000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0xd00000, 0xd007ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xe00000, 0xe00011) AM_WRITE_LEGACY(nightstr_motor_w) /* Motor outputs */
- AM_RANGE(0xe40000, 0xe40007) AM_READWRITE_LEGACY(nightstr_stick_r, bshark_stick_w)
+ AM_RANGE(0xe00000, 0xe00011) AM_WRITE(nightstr_motor_w) /* Motor outputs */
+ AM_RANGE(0xe40000, 0xe40007) AM_READWRITE(nightstr_stick_r, bshark_stick_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( nightstr_cpub_map, AS_PROGRAM, 16, taitoz_state )
@@ -1681,7 +1669,7 @@ static ADDRESS_MAP_START( aquajack_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x200000, 0x200001) AM_WRITE_LEGACY(cpua_ctrl_w) // not needed, but it's probably like the others
+ AM_RANGE(0x200000, 0x200001) AM_WRITE(cpua_ctrl_w) // not needed, but it's probably like the others
AM_RANGE(0x300000, 0x300007) AM_DEVREADWRITE_LEGACY("tc0110pcr", tc0110pcr_word_r, tc0110pcr_step1_word_w) /* palette */
AM_RANGE(0x800000, 0x801fff) AM_DEVREADWRITE_LEGACY("tc0150rod", tc0150rod_word_r, tc0150rod_word_w)
AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
@@ -1694,8 +1682,8 @@ static ADDRESS_MAP_START( aquajack_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
- AM_RANGE(0x300000, 0x300003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
- AM_RANGE(0x800800, 0x80083f) AM_READ_LEGACY(aquajack_unknown_r) // Read regularly after write to 800800...
+ AM_RANGE(0x300000, 0x300003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x800800, 0x80083f) AM_READ(aquajack_unknown_r) // Read regularly after write to 800800...
// AM_RANGE(0x800800, 0x800801) AM_WRITE_LEGACY(taitoz_unknown_w)
// AM_RANGE(0x900000, 0x900007) AM_READWRITE_LEGACY(taitoz_unknown_r, taitoz_unknown_w)
ADDRESS_MAP_END
@@ -1715,13 +1703,13 @@ static ADDRESS_MAP_START( spacegun_cpub_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x20c000, 0x20ffff) AM_RAM
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x800000, 0x80000f) AM_READWRITE_LEGACY(spacegun_input_bypass_r, spacegun_output_bypass_w)
+ AM_RANGE(0x800000, 0x80000f) AM_READWRITE(spacegun_input_bypass_r, spacegun_output_bypass_w)
AM_RANGE(0xc00000, 0xc00007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2610_r, ym2610_w, 0x00ff)
AM_RANGE(0xc0000c, 0xc0000d) AM_NOP // interrupt controller?
AM_RANGE(0xc0000e, 0xc0000f) AM_NOP
- AM_RANGE(0xc20000, 0xc20007) AM_WRITE_LEGACY(spacegun_pancontrol) /* pan */
- AM_RANGE(0xe00000, 0xe00001) AM_WRITE_LEGACY(spacegun_gun_output_w) /* gun outputs */
- AM_RANGE(0xf00000, 0xf00007) AM_READWRITE_LEGACY(spacegun_lightgun_r, spacegun_lightgun_w)
+ AM_RANGE(0xc20000, 0xc20007) AM_WRITE(spacegun_pancontrol) /* pan */
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(spacegun_gun_output_w) /* gun outputs */
+ AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(spacegun_lightgun_r, spacegun_lightgun_w)
ADDRESS_MAP_END
@@ -1730,9 +1718,9 @@ static ADDRESS_MAP_START( dblaxle_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x200000, 0x203fff) AM_RAM
AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x400000, 0x40000f) AM_DEVREADWRITE_LEGACY("tc0510nio", tc0510nio_halfword_wordswap_r, tc0510nio_halfword_wordswap_w)
- AM_RANGE(0x400010, 0x40001f) AM_READ_LEGACY(dblaxle_steer_input_r)
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(cpua_ctrl_w) /* could this be causing int6 ? */
- AM_RANGE(0x620000, 0x620003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x400010, 0x40001f) AM_READ(dblaxle_steer_input_r)
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(cpua_ctrl_w) /* could this be causing int6 ? */
+ AM_RANGE(0x620000, 0x620003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
AM_RANGE(0x800000, 0x801fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemap mirror */
AM_RANGE(0xa00000, 0xa0ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemaps */
@@ -1755,9 +1743,9 @@ static ADDRESS_MAP_START( racingb_map, AS_PROGRAM, 16, taitoz_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM
AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE_LEGACY("tc0510nio", tc0510nio_halfword_wordswap_r, tc0510nio_halfword_wordswap_w)
- AM_RANGE(0x300010, 0x30001f) AM_READ_LEGACY(dblaxle_steer_input_r)
- AM_RANGE(0x500002, 0x500003) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x520000, 0x520003) AM_READWRITE_LEGACY(taitoz_sound_r, taitoz_sound_w)
+ AM_RANGE(0x300010, 0x30001f) AM_READ(dblaxle_steer_input_r)
+ AM_RANGE(0x500002, 0x500003) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x520000, 0x520003) AM_READWRITE(taitoz_sound_r, taitoz_sound_w)
AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_word_r, tc0480scp_word_w) /* tilemaps */
AM_RANGE(0x930000, 0x93002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_word_r, tc0480scp_ctrl_word_w)
@@ -1783,11 +1771,11 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, taitoz_state )
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITE_LEGACY(taitoz_pancontrol) /* pan */
+ AM_RANGE(0xe400, 0xe403) AM_WRITE(taitoz_pancontrol) /* pan */
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index 24f903607f1..a6a45e20806 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -230,90 +230,82 @@ cpu #2 (PC=0000060E): unmapped memory word read from 0000683A & FFFF
MEMORY handlers
***********************************************************/
-static WRITE16_HANDLER( system_control_w )
+WRITE16_MEMBER(taitoair_state::system_control_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
if ((ACCESSING_BITS_0_7 == 0) && ACCESSING_BITS_8_15)
data >>= 8;
- state->m_dsp_hold_signal = (data & 4) ? CLEAR_LINE : ASSERT_LINE;
+ m_dsp_hold_signal = (data & 4) ? CLEAR_LINE : ASSERT_LINE;
- device_set_input_line(state->m_dsp, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_dsp, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
- logerror("68K:%06x writing %04x to TMS32025. %s HOLD , %s RESET\n", cpu_get_previouspc(&space->device()), data, ((data & 4) ? "Clear" : "Assert"), ((data & 1) ? "Clear" : "Assert"));
+ logerror("68K:%06x writing %04x to TMS32025. %s HOLD , %s RESET\n", cpu_get_previouspc(&space.device()), data, ((data & 4) ? "Clear" : "Assert"), ((data & 1) ? "Clear" : "Assert"));
}
-static READ16_HANDLER( lineram_r )
+READ16_MEMBER(taitoair_state::lineram_r)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
- return state->m_line_ram[offset];
+ return m_line_ram[offset];
}
-static WRITE16_HANDLER( lineram_w )
+WRITE16_MEMBER(taitoair_state::lineram_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7)
- state->m_line_ram[offset] = data;
+ m_line_ram[offset] = data;
//if(offset == 0x3fff)
- // printf("LineRAM go %d\n",(int)space->machine().primary_screen->frame_number());
+ // printf("LineRAM go %d\n",(int)machine().primary_screen->frame_number());
}
-static READ16_HANDLER( dspram_r )
+READ16_MEMBER(taitoair_state::dspram_r)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
- return state->m_dsp_ram[offset];
+ return m_dsp_ram[offset];
}
-static WRITE16_HANDLER( dspram_w )
+WRITE16_MEMBER(taitoair_state::dspram_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7)
- state->m_dsp_ram[offset] = data;
+ m_dsp_ram[offset] = data;
}
-static READ16_HANDLER( dsp_HOLD_signal_r )
+READ16_MEMBER(taitoair_state::dsp_HOLD_signal_r)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
/* HOLD signal is active low */
- // logerror("TMS32025:%04x Reading %01x level from HOLD signal\n", cpu_get_previouspc(&space->device()), state->m_dsp_hold_signal);
+ // logerror("TMS32025:%04x Reading %01x level from HOLD signal\n", cpu_get_previouspc(&space.device()), m_dsp_hold_signal);
- return state->m_dsp_hold_signal;
+ return m_dsp_hold_signal;
}
-static WRITE16_HANDLER( dsp_HOLDA_signal_w )
+WRITE16_MEMBER(taitoair_state::dsp_HOLDA_signal_w)
{
if (offset)
- logerror("TMS32025:%04x Writing %01x level to HOLD-Acknowledge signal\n", cpu_get_previouspc(&space->device()), data);
+ logerror("TMS32025:%04x Writing %01x level to HOLD-Acknowledge signal\n", cpu_get_previouspc(&space.device()), data);
}
-static WRITE16_HANDLER( airsys_paletteram16_w ) /* xxBBBBxRRRRxGGGG */
+WRITE16_MEMBER(taitoair_state::airsys_paletteram16_w)/* xxBBBBxRRRRxGGGG */
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
int a;
- COMBINE_DATA(&state->m_paletteram[offset]);
+ COMBINE_DATA(&m_paletteram[offset]);
- a = state->m_paletteram[offset];
- palette_set_color_rgb(space->machine(), offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10));
+ a = m_paletteram[offset];
+ palette_set_color_rgb(machine(), offset, pal4bit(a >> 0), pal4bit(a >> 5), pal4bit(a >> 10));
}
-static WRITE16_HANDLER( airsys_gradram_w )
+WRITE16_MEMBER(taitoair_state::airsys_gradram_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
UINT32 pen;
int r,g,b;
//int pal_r,pal_g,pal_b;
- COMBINE_DATA(&state->m_gradram[offset]);
+ COMBINE_DATA(&m_gradram[offset]);
offset &= 0x1fff;
- pen = (state->m_gradram[offset])|(state->m_gradram[(offset+0x2000)]<<16);
+ pen = (m_gradram[offset])|(m_gradram[(offset+0x2000)]<<16);
/* TODO: correct? */
r = (pen & 0x00007f) >> 0;
g = (pen & 0x007f00) >> (8);
@@ -324,15 +316,15 @@ static WRITE16_HANDLER( airsys_gradram_w )
b = (b << 1) | (b & 1);
/* TODO: I'm sure that normal paletteram and gradiation ram mixes in some way ... */
- //pal_r = ((state->m_paletteram[(offset >> 7) + 0x300] & 0x000f) >> 0) * 0x11;
- //pal_g = ((state->m_paletteram[(offset >> 7) + 0x300] & 0x01e0) >> 5) * 0x11;
- //pal_b = ((state->m_paletteram[(offset >> 7) + 0x300] & 0x7c00) >> 10) * 0x11;
+ //pal_r = ((m_paletteram[(offset >> 7) + 0x300] & 0x000f) >> 0) * 0x11;
+ //pal_g = ((m_paletteram[(offset >> 7) + 0x300] & 0x01e0) >> 5) * 0x11;
+ //pal_b = ((m_paletteram[(offset >> 7) + 0x300] & 0x7c00) >> 10) * 0x11;
//if(r == 0) { r = (pal_r); }
//if(g == 0) { g = (pal_g); }
//if(b == 0) { b = (pal_b); }
- palette_set_color_rgb(space->machine(), offset+0x2000, r, g, b);
+ palette_set_color_rgb(machine(), offset+0x2000, r, g, b);
}
@@ -344,38 +336,38 @@ static WRITE16_HANDLER( airsys_gradram_w )
#define STICK2_PORT_TAG "STICK2"
#define STICK3_PORT_TAG "STICK3"
-static READ16_HANDLER( stick_input_r )
+READ16_MEMBER(taitoair_state::stick_input_r)
{
switch( offset )
{
case 0x00: /* "counter 1" lo */
- return input_port_read(space->machine(), STICK1_PORT_TAG);
+ return input_port_read(machine(), STICK1_PORT_TAG);
case 0x01: /* "counter 2" lo */
- return input_port_read(space->machine(), STICK2_PORT_TAG);
+ return input_port_read(machine(), STICK2_PORT_TAG);
case 0x02: /* "counter 1" hi */
- if(input_port_read(space->machine(), STICK1_PORT_TAG) & 0x80)
+ if(input_port_read(machine(), STICK1_PORT_TAG) & 0x80)
return 0xff;
return 0;
case 0x03: /* "counter 2" hi */
- return (input_port_read(space->machine(), STICK2_PORT_TAG) & 0xff00) >> 8;
+ return (input_port_read(machine(), STICK2_PORT_TAG) & 0xff00) >> 8;
}
return 0;
}
-static READ16_HANDLER( stick2_input_r )
+READ16_MEMBER(taitoair_state::stick2_input_r)
{
switch( offset )
{
case 0x00: /* "counter 3" lo */
- return input_port_read(space->machine(), STICK3_PORT_TAG);
+ return input_port_read(machine(), STICK3_PORT_TAG);
case 0x02: /* "counter 3" hi */
- return (input_port_read(space->machine(), STICK3_PORT_TAG) & 0xff00) >> 8;
+ return (input_port_read(machine(), STICK3_PORT_TAG) & 0xff00) >> 8;
}
return 0;
@@ -389,12 +381,11 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank1", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(taitoair_state::sound_bankswitch_w)
{
- taitoair_state *state = space->machine().driver_data<taitoair_state>();
- state->m_banknum = data & 3;
- reset_sound_region(space->machine());
+ m_banknum = data & 3;
+ reset_sound_region(machine());
}
@@ -405,16 +396,16 @@ static WRITE8_HANDLER( sound_bankswitch_w )
static ADDRESS_MAP_START( airsys_map, AS_PROGRAM, 16, taitoair_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x0c0000, 0x0cffff) AM_RAM AM_BASE(m_m68000_mainram)
- AM_RANGE(0x140000, 0x140001) AM_WRITE_LEGACY(system_control_w) /* Pause the TMS32025 */
- AM_RANGE(0x180000, 0x187fff) AM_RAM_WRITE_LEGACY(airsys_gradram_w) AM_BASE(m_gradram) /* "gradiation ram (0/1)" */
- AM_RANGE(0x188000, 0x189fff) AM_MIRROR(0x2000) AM_RAM_WRITE_LEGACY(airsys_paletteram16_w) AM_BASE(m_paletteram)
+ AM_RANGE(0x140000, 0x140001) AM_WRITE(system_control_w) /* Pause the TMS32025 */
+ AM_RANGE(0x180000, 0x187fff) AM_RAM_WRITE(airsys_gradram_w) AM_BASE(m_gradram) /* "gradiation ram (0/1)" */
+ AM_RANGE(0x188000, 0x189fff) AM_MIRROR(0x2000) AM_RAM_WRITE(airsys_paletteram16_w) AM_BASE(m_paletteram)
AM_RANGE(0x800000, 0x820fff) AM_DEVREADWRITE_LEGACY("tc0080vco", tc0080vco_word_r, tc0080vco_word_w) /* tilemaps, sprites */
AM_RANGE(0x906000, 0x906007) AM_RAM // DMA?
AM_RANGE(0x908000, 0x90ffff) AM_RAM AM_BASE(m_line_ram) /* "line ram" */
AM_RANGE(0x910000, 0x91ffff) AM_RAM AM_BASE(m_dsp_ram) /* "dsp common ram" (TMS320C25) */
AM_RANGE(0x980000, 0x98000f) AM_RAM AM_BASE(m_backregs)
- AM_RANGE(0xa00000, 0xa00007) AM_READ_LEGACY(stick_input_r)
- AM_RANGE(0xa00100, 0xa00107) AM_READ_LEGACY(stick2_input_r)
+ AM_RANGE(0xa00000, 0xa00007) AM_READ(stick_input_r)
+ AM_RANGE(0xa00100, 0xa00107) AM_READ(stick2_input_r)
AM_RANGE(0xa00200, 0xa0020f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff) /* other I/O */
AM_RANGE(0xa80000, 0xa80001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
AM_RANGE(0xa80002, 0xa80003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
@@ -434,7 +425,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoair_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
/********************************** TMS32025 ********************************/
@@ -486,13 +477,13 @@ static ADDRESS_MAP_START( DSP_map_data, AS_DATA, 16, taitoair_state )
// AM_RANGE(0x341b, 0x341b) AM_WRITE_LEGACY(dsp_sqrt_r)
// AM_RANGE(0x341c, 0x341c) AM_READ_LEGACY(dsp_sqrt_flags1_r)
// AM_RANGE(0x341d, 0x341d) AM_READ_LEGACY(dsp_sqrt_flags2_r)
- AM_RANGE(0x4000, 0x7fff) AM_READWRITE_LEGACY(lineram_r, lineram_w)
- AM_RANGE(0x8000, 0xffff) AM_READWRITE_LEGACY(dspram_r, dspram_w)
+ AM_RANGE(0x4000, 0x7fff) AM_READWRITE(lineram_r, lineram_w)
+ AM_RANGE(0x8000, 0xffff) AM_READWRITE(dspram_r, dspram_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( DSP_map_io, AS_IO, 16, taitoair_state )
- AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ_LEGACY(dsp_HOLD_signal_r)
- AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE_LEGACY(dsp_HOLDA_signal_w)
+ AM_RANGE(TMS32025_HOLD, TMS32025_HOLD) AM_READ(dsp_HOLD_signal_r)
+ AM_RANGE(TMS32025_HOLDA, TMS32025_HOLDA) AM_WRITE(dsp_HOLDA_signal_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index ecfe0dd1d18..3431b082521 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -364,43 +364,40 @@ Notes:
#define POLYGON_FIFO_SIZE 100000
-static READ32_HANDLER( taitojc_palette_r )
+READ32_MEMBER(taitojc_state::taitojc_palette_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- return state->m_palette_ram[offset];
+ return m_palette_ram[offset];
}
-static WRITE32_HANDLER( taitojc_palette_w )
+WRITE32_MEMBER(taitojc_state::taitojc_palette_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
int r, g, b;
UINT32 color;
- COMBINE_DATA( state->m_palette_ram + offset );
+ COMBINE_DATA( m_palette_ram + offset );
- color = state->m_palette_ram[offset];
+ color = m_palette_ram[offset];
r = (color >> 8) & 0xff;
g = (color >> 16) & 0xff;
b = (color >> 0) & 0xff;
- palette_set_color(space->machine(),offset, MAKE_RGB(r, g, b));
+ palette_set_color(machine(),offset, MAKE_RGB(r, g, b));
}
-static READ32_HANDLER ( jc_control_r )
+READ32_MEMBER(taitojc_state::jc_control_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
UINT32 r = 0;
if(ACCESSING_BITS_0_15)
- printf("jc_control_r: %08X, %08X at %08X\n", offset, mem_mask, cpu_get_pc(&space->device()));
+ printf("jc_control_r: %08X, %08X at %08X\n", offset, mem_mask, cpu_get_pc(&space.device()));
switch(offset)
{
case 0x0:
{
if (ACCESSING_BITS_24_31)
{
- r |= ((input_port_read(space->machine(), "COINS") & 0x2) << 2) << 24;
+ r |= ((input_port_read(machine(), "COINS") & 0x2) << 2) << 24;
}
return r;
}
@@ -408,7 +405,7 @@ static READ32_HANDLER ( jc_control_r )
{
if (ACCESSING_BITS_24_31)
{
- r |= input_port_read(space->machine(), "COINS") << 24;
+ r |= input_port_read(machine(), "COINS") << 24;
}
return r;
}
@@ -416,7 +413,7 @@ static READ32_HANDLER ( jc_control_r )
{
if (ACCESSING_BITS_24_31)
{
- r |= input_port_read(space->machine(), "START") << 24;
+ r |= input_port_read(machine(), "START") << 24;
}
return r;
}
@@ -424,7 +421,7 @@ static READ32_HANDLER ( jc_control_r )
{
if (ACCESSING_BITS_24_31)
{
- r |= input_port_read(space->machine(), "UNUSED") << 24;
+ r |= input_port_read(machine(), "UNUSED") << 24;
}
return r;
}
@@ -432,7 +429,7 @@ static READ32_HANDLER ( jc_control_r )
{
if (ACCESSING_BITS_16_31)
{
- r |= state->m_outputs << 16;
+ r |= m_outputs << 16;
}
return r;
}
@@ -440,7 +437,7 @@ static READ32_HANDLER ( jc_control_r )
{
if (ACCESSING_BITS_24_31)
{
- r |= input_port_read(space->machine(), "BUTTONS") << 24;
+ r |= input_port_read(machine(), "BUTTONS") << 24;
}
return r;
}
@@ -453,19 +450,18 @@ static READ32_HANDLER ( jc_control_r )
return 0;
}
-static WRITE32_HANDLER( jc_coin_counters_w )
+WRITE32_MEMBER(taitojc_state::jc_coin_counters_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- COMBINE_DATA(&state->m_outputs);
+ COMBINE_DATA(&m_outputs);
- coin_lockout_w(space->machine(), 0, !(data & 0x01000000));
- coin_lockout_w(space->machine(), 1, !(data & 0x02000000));
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x08000000);
+ coin_lockout_w(machine(), 0, !(data & 0x01000000));
+ coin_lockout_w(machine(), 1, !(data & 0x02000000));
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x08000000);
}
-static WRITE32_HANDLER ( jc_control_w )
+WRITE32_MEMBER(taitojc_state::jc_control_w)
{
//mame_printf_debug("jc_control_w: %08X, %08X, %08X\n", data, offset, mem_mask);
@@ -475,7 +471,7 @@ static WRITE32_HANDLER ( jc_control_w )
{
if (ACCESSING_BITS_24_31)
{
- input_port_write(space->machine(), "EEPROMOUT", data >> 24, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data >> 24, 0xff);
}
else
popmessage("jc_control_w: %08X, %08X, %08X\n", data, offset, mem_mask);
@@ -488,7 +484,7 @@ static WRITE32_HANDLER ( jc_control_w )
}
}
-static WRITE32_HANDLER (jc_control1_w)
+WRITE32_MEMBER(taitojc_state::jc_control1_w)
{
if (data != 0)
{
@@ -550,54 +546,54 @@ static void mcu_comm_reg_w(address_space *space, int reg, UINT8 data)
}
}
-static READ32_HANDLER(mcu_comm_r)
+READ32_MEMBER(taitojc_state::mcu_comm_r)
{
UINT32 r = 0;
int reg = offset * 4;
if (ACCESSING_BITS_24_31)
{
- r |= mcu_comm_reg_r(space, reg + 0) << 24;
+ r |= mcu_comm_reg_r(&space, reg + 0) << 24;
}
if (ACCESSING_BITS_16_23)
{
- r |= mcu_comm_reg_r(space, reg + 1) << 16;
+ r |= mcu_comm_reg_r(&space, reg + 1) << 16;
}
if (ACCESSING_BITS_8_15)
{
- r |= mcu_comm_reg_r(space, reg + 2) << 8;
+ r |= mcu_comm_reg_r(&space, reg + 2) << 8;
}
if (ACCESSING_BITS_0_7)
{
- r |= mcu_comm_reg_r(space, reg + 3) << 0;
+ r |= mcu_comm_reg_r(&space, reg + 3) << 0;
}
return r;
}
-static WRITE32_HANDLER(mcu_comm_w)
+WRITE32_MEMBER(taitojc_state::mcu_comm_w)
{
int reg = offset * 4;
if (ACCESSING_BITS_24_31)
{
- mcu_comm_reg_w(space, reg + 0, (data >> 24) & 0xff);
+ mcu_comm_reg_w(&space, reg + 0, (data >> 24) & 0xff);
}
if (ACCESSING_BITS_16_23)
{
- mcu_comm_reg_w(space, reg + 1, (data >> 16) & 0xff);
+ mcu_comm_reg_w(&space, reg + 1, (data >> 16) & 0xff);
}
if (ACCESSING_BITS_8_15)
{
- mcu_comm_reg_w(space, reg + 2, (data >> 8) & 0xff);
+ mcu_comm_reg_w(&space, reg + 2, (data >> 8) & 0xff);
}
if (ACCESSING_BITS_0_7)
{
- mcu_comm_reg_w(space, reg + 3, (data >> 0) & 0xff);
+ mcu_comm_reg_w(&space, reg + 3, (data >> 0) & 0xff);
}
}
-static READ8_HANDLER(jc_pcbid_r)
+READ8_MEMBER(taitojc_state::jc_pcbid_r)
{
static const char pcb_id[0x40] =
{ "Needs proper PCB ID here!"};
@@ -605,11 +601,10 @@ static READ8_HANDLER(jc_pcbid_r)
return pcb_id[offset];
}
-static READ32_HANDLER(dsp_shared_r)
+READ32_MEMBER(taitojc_state::dsp_shared_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- return state->m_dsp_shared_ram[offset] << 16;
+ return m_dsp_shared_ram[offset] << 16;
}
#define DEBUG_DSP 0
@@ -746,31 +741,30 @@ static void debug_dsp_command(running_machine &machine)
}
#endif
-static WRITE32_HANDLER(dsp_shared_w)
+WRITE32_MEMBER(taitojc_state::dsp_shared_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- //mame_printf_debug("dsp_shared_ram: %08X, %04X at %08X\n", offset, data >> 16, cpu_get_pc(&space->device()));
+ //mame_printf_debug("dsp_shared_ram: %08X, %04X at %08X\n", offset, data >> 16, cpu_get_pc(&space.device()));
if (ACCESSING_BITS_24_31)
{
- state->m_dsp_shared_ram[offset] &= 0x00ff;
- state->m_dsp_shared_ram[offset] |= (data >> 16) & 0xff00;
+ m_dsp_shared_ram[offset] &= 0x00ff;
+ m_dsp_shared_ram[offset] |= (data >> 16) & 0xff00;
}
if (ACCESSING_BITS_16_23)
{
- state->m_dsp_shared_ram[offset] &= 0xff00;
- state->m_dsp_shared_ram[offset] |= (data >> 16) & 0x00ff;
+ m_dsp_shared_ram[offset] &= 0xff00;
+ m_dsp_shared_ram[offset] |= (data >> 16) & 0x00ff;
}
#if DEBUG_DSP
if (offset == 0x1fc0/4)
{
- debug_dsp_command(space->machine());
+ debug_dsp_command(machine());
}
#endif
if (offset == 0x1ff8/4)
- cputag_set_input_line(space->machine(), "maincpu", 6, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, CLEAR_LINE);
if (offset == 0x1ffc/4)
{
@@ -786,66 +780,63 @@ static WRITE32_HANDLER(dsp_shared_w)
Problem is: that move.w in the middle makes the SR to always return a zero flag result,
hence it never branches like it should. CPU bug?
*/
- if (!state->m_first_dsp_reset || !state->m_has_dsp_hack)
+ if (!m_first_dsp_reset || !m_has_dsp_hack)
{
- cputag_set_input_line(space->machine(), "dsp", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "dsp", INPUT_LINE_RESET, CLEAR_LINE);
}
- state->m_first_dsp_reset = 0;
+ m_first_dsp_reset = 0;
}
else
{
- cputag_set_input_line(space->machine(), "dsp", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "dsp", INPUT_LINE_RESET, ASSERT_LINE);
}
}
}
-static READ32_HANDLER(f3_share_r)
+READ32_MEMBER(taitojc_state::f3_share_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
switch (offset & 3)
{
- case 0: return (state->m_f3_shared_ram[(offset/4)] << 0) & 0xff000000;
- case 1: return (state->m_f3_shared_ram[(offset/4)] << 8) & 0xff000000;
- case 2: return (state->m_f3_shared_ram[(offset/4)] << 16) & 0xff000000;
- case 3: return (state->m_f3_shared_ram[(offset/4)] << 24) & 0xff000000;
+ case 0: return (m_f3_shared_ram[(offset/4)] << 0) & 0xff000000;
+ case 1: return (m_f3_shared_ram[(offset/4)] << 8) & 0xff000000;
+ case 2: return (m_f3_shared_ram[(offset/4)] << 16) & 0xff000000;
+ case 3: return (m_f3_shared_ram[(offset/4)] << 24) & 0xff000000;
}
return 0;
}
-static WRITE32_HANDLER(f3_share_w)
+WRITE32_MEMBER(taitojc_state::f3_share_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
UINT32 d = (data >> 24) & 0xff;
switch (offset & 3)
{
- case 0: state->m_f3_shared_ram[(offset/4)] &= ~0xff000000; state->m_f3_shared_ram[(offset/4)] |= d << 24; break;
- case 1: state->m_f3_shared_ram[(offset/4)] &= ~0x00ff0000; state->m_f3_shared_ram[(offset/4)] |= d << 16; break;
- case 2: state->m_f3_shared_ram[(offset/4)] &= ~0x0000ff00; state->m_f3_shared_ram[(offset/4)] |= d << 8; break;
- case 3: state->m_f3_shared_ram[(offset/4)] &= ~0x000000ff; state->m_f3_shared_ram[(offset/4)] |= d << 0; break;
+ case 0: m_f3_shared_ram[(offset/4)] &= ~0xff000000; m_f3_shared_ram[(offset/4)] |= d << 24; break;
+ case 1: m_f3_shared_ram[(offset/4)] &= ~0x00ff0000; m_f3_shared_ram[(offset/4)] |= d << 16; break;
+ case 2: m_f3_shared_ram[(offset/4)] &= ~0x0000ff00; m_f3_shared_ram[(offset/4)] |= d << 8; break;
+ case 3: m_f3_shared_ram[(offset/4)] &= ~0x000000ff; m_f3_shared_ram[(offset/4)] |= d << 0; break;
}
}
-static WRITE32_HANDLER(jc_meters_w)
+WRITE32_MEMBER(taitojc_state::jc_meters_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
// printf("jc_output_w: %08x, %08x %08x\n", offset, data,mem_mask);
if(offset == 0 && ACCESSING_BITS_16_31)
- state->m_speed_meter = taitojc_odometer_table[(data >> 16) & 0xff];
+ m_speed_meter = taitojc_odometer_table[(data >> 16) & 0xff];
else if(offset == 1 && ACCESSING_BITS_16_31)
- state->m_brake_meter = taitojc_brake_table[(data >> 16) & 0xff];
+ m_brake_meter = taitojc_brake_table[(data >> 16) & 0xff];
- if(input_port_read_safe(space->machine(), "METER", 0))
+ if(input_port_read_safe(machine(), "METER", 0))
{
- UINT8 mascon_lv = (input_port_read(space->machine(), "MASCON") & 0x70) >> 4;
+ UINT8 mascon_lv = (input_port_read(machine(), "MASCON") & 0x70) >> 4;
- popmessage("%d %.02f km/h %.02f MPa",mascon_lv,state->m_speed_meter,state->m_brake_meter/10);
+ popmessage("%d %.02f km/h %.02f MPa",mascon_lv,m_speed_meter,m_brake_meter/10);
}
}
-static READ32_HANDLER( jc_lan_r )
+READ32_MEMBER(taitojc_state::jc_lan_r)
{
return 0xffffffff;
}
@@ -857,60 +848,57 @@ static ADDRESS_MAP_START( taitojc_map, AS_PROGRAM, 32, taitojc_state )
AM_RANGE(0x040f8000, 0x040fbfff) AM_READWRITE_LEGACY(taitojc_tile_r, taitojc_tile_w)
AM_RANGE(0x040fc000, 0x040fefff) AM_READWRITE_LEGACY(taitojc_char_r, taitojc_char_w)
AM_RANGE(0x040ff000, 0x040fffff) AM_RAM AM_BASE(m_objlist)
- AM_RANGE(0x05800000, 0x0580003f) AM_READ8_LEGACY(jc_pcbid_r,0xffffffff)
- AM_RANGE(0x05900000, 0x05900007) AM_READWRITE_LEGACY(mcu_comm_r, mcu_comm_w)
+ AM_RANGE(0x05800000, 0x0580003f) AM_READ8(jc_pcbid_r,0xffffffff)
+ AM_RANGE(0x05900000, 0x05900007) AM_READWRITE(mcu_comm_r, mcu_comm_w)
//AM_RANGE(0x05a00000, 0x05a01fff)
//AM_RANGE(0x05fc0000, 0x05fc3fff)
- AM_RANGE(0x06400000, 0x0641ffff) AM_READWRITE_LEGACY(taitojc_palette_r, taitojc_palette_w) AM_BASE(m_palette_ram)
- AM_RANGE(0x06600000, 0x0660001f) AM_READ_LEGACY(jc_control_r)
- AM_RANGE(0x06600000, 0x06600003) AM_WRITE_LEGACY(jc_control1_w) // watchdog
- AM_RANGE(0x06600010, 0x06600013) AM_WRITE_LEGACY(jc_coin_counters_w)
- AM_RANGE(0x06600040, 0x0660004f) AM_WRITE_LEGACY(jc_control_w)
+ AM_RANGE(0x06400000, 0x0641ffff) AM_READWRITE(taitojc_palette_r, taitojc_palette_w) AM_BASE(m_palette_ram)
+ AM_RANGE(0x06600000, 0x0660001f) AM_READ(jc_control_r)
+ AM_RANGE(0x06600000, 0x06600003) AM_WRITE(jc_control1_w) // watchdog
+ AM_RANGE(0x06600010, 0x06600013) AM_WRITE(jc_coin_counters_w)
+ AM_RANGE(0x06600040, 0x0660004f) AM_WRITE(jc_control_w)
//AM_RANGE(0x06800000, 0x06801fff) AM_NOP // unknown
- AM_RANGE(0x06a00000, 0x06a01fff) AM_READWRITE_LEGACY(f3_share_r, f3_share_w) AM_SHARE("f3_shared") AM_BASE(m_f3_shared_ram)
- AM_RANGE(0x06c00000, 0x06c0001f) AM_READ_LEGACY(jc_lan_r) AM_WRITENOP // Dangerous Curves
- AM_RANGE(0x06e00000, 0x06e00007) AM_WRITE_LEGACY(jc_meters_w)
+ AM_RANGE(0x06a00000, 0x06a01fff) AM_READWRITE(f3_share_r, f3_share_w) AM_SHARE("f3_shared") AM_BASE(m_f3_shared_ram)
+ AM_RANGE(0x06c00000, 0x06c0001f) AM_READ(jc_lan_r) AM_WRITENOP // Dangerous Curves
+ AM_RANGE(0x06e00000, 0x06e00007) AM_WRITE(jc_meters_w)
AM_RANGE(0x08000000, 0x080fffff) AM_RAM AM_BASE(m_main_ram)
- AM_RANGE(0x10000000, 0x10001fff) AM_READWRITE_LEGACY(dsp_shared_r, dsp_shared_w)
+ AM_RANGE(0x10000000, 0x10001fff) AM_READWRITE(dsp_shared_r, dsp_shared_w)
ADDRESS_MAP_END
/*****************************************************************************/
-static READ8_HANDLER(hc11_comm_r)
+READ8_MEMBER(taitojc_state::hc11_comm_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- return state->m_mcu_comm_hc11;
+ return m_mcu_comm_hc11;
}
-static WRITE8_HANDLER(hc11_comm_w)
+WRITE8_MEMBER(taitojc_state::hc11_comm_w)
{
}
-static READ8_HANDLER(hc11_data_r)
+READ8_MEMBER(taitojc_state::hc11_data_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_mcu_comm_hc11 |= 0x04;
- state->m_mcu_comm_main |= 0x20;
- return state->m_mcu_data_hc11;
+ m_mcu_comm_hc11 |= 0x04;
+ m_mcu_comm_main |= 0x20;
+ return m_mcu_data_hc11;
}
-static WRITE8_HANDLER(hc11_data_w)
+WRITE8_MEMBER(taitojc_state::hc11_data_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_mcu_data_main = data;
+ m_mcu_data_main = data;
}
-static READ8_HANDLER(hc11_analog_r)
+READ8_MEMBER(taitojc_state::hc11_analog_r)
{
static const char *const portnames[] = { "ANALOG1", "ANALOG2", "ANALOG3", "ANALOG4",
"ANALOG5", "ANALOG6", "ANALOG7", "ANALOG8" };
- return input_port_read_safe(space->machine(), portnames[offset], 0);
+ return input_port_read_safe(machine(), portnames[offset], 0);
}
@@ -921,85 +909,79 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hc11_io_map, AS_IO, 8, taitojc_state )
AM_RANGE(MC68HC11_IO_PORTA, MC68HC11_IO_PORTA ) AM_NOP
- AM_RANGE(MC68HC11_IO_PORTG, MC68HC11_IO_PORTG ) AM_READWRITE_LEGACY(hc11_comm_r, hc11_comm_w)
+ AM_RANGE(MC68HC11_IO_PORTG, MC68HC11_IO_PORTG ) AM_READWRITE(hc11_comm_r, hc11_comm_w)
AM_RANGE(MC68HC11_IO_PORTH, MC68HC11_IO_PORTH ) AM_NOP
- AM_RANGE(MC68HC11_IO_SPI2_DATA, MC68HC11_IO_SPI2_DATA) AM_READWRITE_LEGACY(hc11_data_r, hc11_data_w)
- AM_RANGE(MC68HC11_IO_AD0, MC68HC11_IO_AD7 ) AM_READ_LEGACY(hc11_analog_r)
+ AM_RANGE(MC68HC11_IO_SPI2_DATA, MC68HC11_IO_SPI2_DATA) AM_READWRITE(hc11_data_r, hc11_data_w)
+ AM_RANGE(MC68HC11_IO_AD0, MC68HC11_IO_AD7 ) AM_READ(hc11_analog_r)
ADDRESS_MAP_END
/*****************************************************************************/
-static READ16_HANDLER( dsp_rom_r )
+READ16_MEMBER(taitojc_state::dsp_rom_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- UINT16 *rom = (UINT16*)space->machine().region("gfx2")->base();
- UINT16 data = rom[state->m_dsp_rom_pos++];
+ UINT16 *rom = (UINT16*)machine().region("gfx2")->base();
+ UINT16 data = rom[m_dsp_rom_pos++];
- //mame_printf_debug("dsp_rom_r: %08X, %08X at %08X\n", offset, mem_mask, cpu_get_pc(&space->device()));
+ //mame_printf_debug("dsp_rom_r: %08X, %08X at %08X\n", offset, mem_mask, cpu_get_pc(&space.device()));
return data;
}
-static WRITE16_HANDLER( dsp_rom_w )
+WRITE16_MEMBER(taitojc_state::dsp_rom_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
if (offset == 0)
{
- state->m_dsp_rom_pos &= 0xffff;
- state->m_dsp_rom_pos |= data << 16;
+ m_dsp_rom_pos &= 0xffff;
+ m_dsp_rom_pos |= data << 16;
}
else if (offset == 1)
{
- state->m_dsp_rom_pos &= 0xffff0000;
- state->m_dsp_rom_pos |= data;
+ m_dsp_rom_pos &= 0xffff0000;
+ m_dsp_rom_pos |= data;
}
}
-static WRITE16_HANDLER( dsp_texture_w )
+WRITE16_MEMBER(taitojc_state::dsp_texture_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
int index;
int x, y;
//mame_printf_debug("texture write %08X, %04X\n", dsp_addr1, data);
- x = (state->m_dsp_tex_offset >> 0) & 0x1f;
- y = (state->m_dsp_tex_offset >> 5) & 0x1f;
+ x = (m_dsp_tex_offset >> 0) & 0x1f;
+ y = (m_dsp_tex_offset >> 5) & 0x1f;
- x += (state->m_dsp_tex_offset & 0x400) ? 0x20 : 0;
- y += (state->m_dsp_tex_offset & 0x800) ? 0x20 : 0;
+ x += (m_dsp_tex_offset & 0x400) ? 0x20 : 0;
+ y += (m_dsp_tex_offset & 0x800) ? 0x20 : 0;
- index = (((state->m_texture_y * 32) + y) * 2048) + ((state->m_texture_x * 32) + x);
- state->m_texture[index] = data & 0xff;
+ index = (((m_texture_y * 32) + y) * 2048) + ((m_texture_x * 32) + x);
+ m_texture[index] = data & 0xff;
- state->m_dsp_tex_offset++;
+ m_dsp_tex_offset++;
}
-static READ16_HANDLER( dsp_texaddr_r )
+READ16_MEMBER(taitojc_state::dsp_texaddr_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- return state->m_dsp_tex_address;
+ return m_dsp_tex_address;
}
-static WRITE16_HANDLER( dsp_texaddr_w )
+WRITE16_MEMBER(taitojc_state::dsp_texaddr_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_dsp_tex_address = data;
-// mame_printf_debug("texaddr = %08X at %08X\n", data, cpu_get_pc(&space->device()));
+ m_dsp_tex_address = data;
+// mame_printf_debug("texaddr = %08X at %08X\n", data, cpu_get_pc(&space.device()));
- state->m_texture_x = (((data >> 0) & 0x1f) << 1) | ((data >> 12) & 0x1);
- state->m_texture_y = (((data >> 5) & 0x1f) << 1) | ((data >> 13) & 0x1);
+ m_texture_x = (((data >> 0) & 0x1f) << 1) | ((data >> 12) & 0x1);
+ m_texture_y = (((data >> 5) & 0x1f) << 1) | ((data >> 13) & 0x1);
- state->m_dsp_tex_offset = 0;
+ m_dsp_tex_offset = 0;
}
-static WRITE16_HANDLER( dsp_polygon_fifo_w )
+WRITE16_MEMBER(taitojc_state::dsp_polygon_fifo_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_polygon_fifo[state->m_polygon_fifo_ptr++] = data;
+ m_polygon_fifo[m_polygon_fifo_ptr++] = data;
- if (state->m_polygon_fifo_ptr >= POLYGON_FIFO_SIZE)
+ if (m_polygon_fifo_ptr >= POLYGON_FIFO_SIZE)
{
fatalerror("dsp_polygon_fifo_w: fifo overflow!\n");
}
@@ -1007,80 +989,74 @@ static WRITE16_HANDLER( dsp_polygon_fifo_w )
-static READ16_HANDLER(dsp_unk_r)
+READ16_MEMBER(taitojc_state::dsp_unk_r)
{
return 0x7fff;
}
-static WRITE16_HANDLER(dsp_viewport_w)
+WRITE16_MEMBER(taitojc_state::dsp_viewport_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_viewport_data[offset] = (INT16)(data);
+ m_viewport_data[offset] = (INT16)(data);
}
-static WRITE16_HANDLER(dsp_projection_w)
+WRITE16_MEMBER(taitojc_state::dsp_projection_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_projection_data[offset] = (INT16)(data);
+ m_projection_data[offset] = (INT16)(data);
if (offset == 2)
{
- if (state->m_projection_data[2] != 0)
+ if (m_projection_data[2] != 0)
{
- state->m_projected_point_y = (state->m_projection_data[0] * state->m_viewport_data[0]) / (state->m_projection_data[2]);
- state->m_projected_point_x = (state->m_projection_data[1] * state->m_viewport_data[1]) / (state->m_projection_data[2]);
+ m_projected_point_y = (m_projection_data[0] * m_viewport_data[0]) / (m_projection_data[2]);
+ m_projected_point_x = (m_projection_data[1] * m_viewport_data[1]) / (m_projection_data[2]);
}
else
{
- state->m_projected_point_y = 0;
- state->m_projected_point_x = 0;
+ m_projected_point_y = 0;
+ m_projected_point_x = 0;
}
}
}
-static READ16_HANDLER(dsp_projection_r)
+READ16_MEMBER(taitojc_state::dsp_projection_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
if (offset == 0)
{
- return state->m_projected_point_y;
+ return m_projected_point_y;
}
else if (offset == 2)
{
- return state->m_projected_point_x;
+ return m_projected_point_x;
}
return 0;
}
-static WRITE16_HANDLER(dsp_unk2_w)
+WRITE16_MEMBER(taitojc_state::dsp_unk2_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
if (offset == 0)
{
- taitojc_clear_frame(space->machine());
- taitojc_render_polygons(space->machine(), state->m_polygon_fifo, state->m_polygon_fifo_ptr);
+ taitojc_clear_frame(machine());
+ taitojc_render_polygons(machine(), m_polygon_fifo, m_polygon_fifo_ptr);
- state->m_polygon_fifo_ptr = 0;
+ m_polygon_fifo_ptr = 0;
}
}
-static WRITE16_HANDLER(dsp_intersection_w)
+WRITE16_MEMBER(taitojc_state::dsp_intersection_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- state->m_intersection_data[offset] = (INT32)(INT16)(data);
+ m_intersection_data[offset] = (INT32)(INT16)(data);
}
-static READ16_HANDLER(dsp_intersection_r)
+READ16_MEMBER(taitojc_state::dsp_intersection_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- return (INT16)((state->m_intersection_data[0] * state->m_intersection_data[1]) / state->m_intersection_data[2]);
+ return (INT16)((m_intersection_data[0] * m_intersection_data[1]) / m_intersection_data[2]);
}
/*
@@ -1104,20 +1080,18 @@ static READ16_HANDLER(dsp_intersection_r)
0x7030: Unknown write
*/
-static READ16_HANDLER( dsp_to_main_r )
+READ16_MEMBER(taitojc_state::dsp_to_main_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- return state->m_dsp_shared_ram[0x7fe];
+ return m_dsp_shared_ram[0x7fe];
}
-static WRITE16_HANDLER( dsp_to_main_w )
+WRITE16_MEMBER(taitojc_state::dsp_to_main_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- cputag_set_input_line(space->machine(), "maincpu", 6, ASSERT_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, ASSERT_LINE);
- COMBINE_DATA(&state->m_dsp_shared_ram[0x7fe]);
+ COMBINE_DATA(&m_dsp_shared_ram[0x7fe]);
}
static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, taitojc_state )
@@ -1126,19 +1100,19 @@ static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, taitojc_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( tms_data_map, AS_DATA, 16, taitojc_state )
- AM_RANGE(0x6a01, 0x6a02) AM_WRITE_LEGACY(dsp_unk2_w)
+ AM_RANGE(0x6a01, 0x6a02) AM_WRITE(dsp_unk2_w)
AM_RANGE(0x6a11, 0x6a12) AM_NOP // same as 0x6a01..02 for the second renderer chip?
- AM_RANGE(0x6b20, 0x6b20) AM_WRITE_LEGACY(dsp_polygon_fifo_w)
- AM_RANGE(0x6b22, 0x6b22) AM_WRITE_LEGACY(dsp_texture_w)
- AM_RANGE(0x6b23, 0x6b23) AM_READWRITE_LEGACY(dsp_texaddr_r, dsp_texaddr_w)
- AM_RANGE(0x6c00, 0x6c01) AM_READWRITE_LEGACY(dsp_rom_r, dsp_rom_w)
- AM_RANGE(0x7000, 0x7002) AM_WRITE_LEGACY(dsp_projection_w)
- AM_RANGE(0x7010, 0x7012) AM_WRITE_LEGACY(dsp_intersection_w)
- AM_RANGE(0x7013, 0x7015) AM_WRITE_LEGACY(dsp_viewport_w)
- AM_RANGE(0x701b, 0x701b) AM_READ_LEGACY(dsp_intersection_r)
- AM_RANGE(0x701d, 0x701f) AM_READ_LEGACY(dsp_projection_r)
- AM_RANGE(0x7022, 0x7022) AM_READ_LEGACY(dsp_unk_r)
- AM_RANGE(0x7ffe, 0x7ffe) AM_READWRITE_LEGACY(dsp_to_main_r,dsp_to_main_w)
+ AM_RANGE(0x6b20, 0x6b20) AM_WRITE(dsp_polygon_fifo_w)
+ AM_RANGE(0x6b22, 0x6b22) AM_WRITE(dsp_texture_w)
+ AM_RANGE(0x6b23, 0x6b23) AM_READWRITE(dsp_texaddr_r, dsp_texaddr_w)
+ AM_RANGE(0x6c00, 0x6c01) AM_READWRITE(dsp_rom_r, dsp_rom_w)
+ AM_RANGE(0x7000, 0x7002) AM_WRITE(dsp_projection_w)
+ AM_RANGE(0x7010, 0x7012) AM_WRITE(dsp_intersection_w)
+ AM_RANGE(0x7013, 0x7015) AM_WRITE(dsp_viewport_w)
+ AM_RANGE(0x701b, 0x701b) AM_READ(dsp_intersection_r)
+ AM_RANGE(0x701d, 0x701f) AM_READ(dsp_projection_r)
+ AM_RANGE(0x7022, 0x7022) AM_READ(dsp_unk_r)
+ AM_RANGE(0x7ffe, 0x7ffe) AM_READWRITE(dsp_to_main_r,dsp_to_main_w)
AM_RANGE(0x7800, 0x7fff) AM_RAM AM_BASE(m_dsp_shared_ram)
AM_RANGE(0x8000, 0xffff) AM_RAM
ADDRESS_MAP_END
@@ -1449,31 +1423,28 @@ static MACHINE_CONFIG_DERIVED( dendego, taitojc )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
MACHINE_CONFIG_END
-static READ16_HANDLER( taitojc_dsp_idle_skip_r )
+READ16_MEMBER(taitojc_state::taitojc_dsp_idle_skip_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- if(cpu_get_pc(&space->device())==0x404c)
- device_spin_until_time(&space->device(), attotime::from_usec(500));
+ if(cpu_get_pc(&space.device())==0x404c)
+ device_spin_until_time(&space.device(), attotime::from_usec(500));
- return state->m_dsp_shared_ram[0x7f0];
+ return m_dsp_shared_ram[0x7f0];
}
-static READ16_HANDLER( dendego2_dsp_idle_skip_r )
+READ16_MEMBER(taitojc_state::dendego2_dsp_idle_skip_r)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- if(cpu_get_pc(&space->device())==0x402e)
- device_spin_until_time(&space->device(), attotime::from_usec(500));
+ if(cpu_get_pc(&space.device())==0x402e)
+ device_spin_until_time(&space.device(), attotime::from_usec(500));
- return state->m_dsp_shared_ram[0x7f0];
+ return m_dsp_shared_ram[0x7f0];
}
-static WRITE16_HANDLER( dsp_idle_skip_w )
+WRITE16_MEMBER(taitojc_state::dsp_idle_skip_w)
{
- taitojc_state *state = space->machine().driver_data<taitojc_state>();
- COMBINE_DATA(&state->m_dsp_shared_ram[0x7f0]);
+ COMBINE_DATA(&m_dsp_shared_ram[0x7f0]);
}
static DRIVER_INIT( taitojc )
@@ -1484,14 +1455,16 @@ static DRIVER_INIT( taitojc )
state->m_has_dsp_hack = 1;
- machine.device("dsp")->memory().space(AS_DATA)->install_legacy_readwrite_handler(0x7ff0, 0x7ff0, FUNC(taitojc_dsp_idle_skip_r), FUNC(dsp_idle_skip_w));
+ machine.device("dsp")->memory().space(AS_DATA)->install_readwrite_handler(0x7ff0, 0x7ff0, read16_delegate(FUNC(taitojc_state::taitojc_dsp_idle_skip_r),state), write16_delegate(FUNC(taitojc_state::dsp_idle_skip_w),state));
}
static DRIVER_INIT( dendego2 )
{
+ taitojc_state *state = machine.driver_data<taitojc_state>();
+
DRIVER_INIT_CALL( taitojc );
- machine.device("dsp")->memory().space(AS_DATA)->install_legacy_readwrite_handler(0x7ff0, 0x7ff0, FUNC(dendego2_dsp_idle_skip_r), FUNC(dsp_idle_skip_w));
+ machine.device("dsp")->memory().space(AS_DATA)->install_readwrite_handler(0x7ff0, 0x7ff0, read16_delegate(FUNC(taitojc_state::dendego2_dsp_idle_skip_r),state), write16_delegate(FUNC(taitojc_state::dsp_idle_skip_w),state));
}
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index 8667ed7be2c..f9aeba020bc 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -177,11 +177,10 @@ static WRITE8_DEVICE_HANDLER( taitosj_sndnmi_msk_w )
state->m_sndnmi_disable = data & 0x01;
}
-static WRITE8_HANDLER( taitosj_soundcommand_w )
+WRITE8_MEMBER(taitosj_state::taitosj_soundcommand_w)
{
- taitosj_state *state = space->machine().driver_data<taitosj_state>();
soundlatch_w(space,offset,data);
- if (!state->m_sndnmi_disable) cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ if (!m_sndnmi_disable) cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -227,7 +226,7 @@ static ADDRESS_MAP_START( taitosj_main_nomcu_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0xd506, 0xd507) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(m_colorbank)
AM_RANGE(0xd508, 0xd508) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(taitosj_collision_reg_clear_w)
AM_RANGE(0xd509, 0xd50a) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(m_gfxpointer)
- AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(taitosj_soundcommand_w)
+ AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w)
AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITEONLY /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */
AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(taitosj_bankswitch_w)
AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITENOP
@@ -267,7 +266,7 @@ static ADDRESS_MAP_START( taitosj_main_mcu_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0xd506, 0xd507) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(m_colorbank)
AM_RANGE(0xd508, 0xd508) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(taitosj_collision_reg_clear_w)
AM_RANGE(0xd509, 0xd50a) AM_MIRROR(0x00f0) AM_WRITEONLY AM_BASE(m_gfxpointer)
- AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(taitosj_soundcommand_w)
+ AM_RANGE(0xd50b, 0xd50b) AM_MIRROR(0x00f0) AM_WRITE(taitosj_soundcommand_w)
AM_RANGE(0xd50d, 0xd50d) AM_MIRROR(0x00f0) AM_WRITEONLY /*watchdog_reset_w*/ /* Bio Attack sometimes resets after you die */
AM_RANGE(0xd50e, 0xd50e) AM_MIRROR(0x00f0) AM_WRITE_LEGACY(taitosj_bankswitch_w)
AM_RANGE(0xd50f, 0xd50f) AM_MIRROR(0x00f0) AM_WRITENOP
@@ -331,7 +330,7 @@ static ADDRESS_MAP_START( kikstart_main_map, AS_PROGRAM, 8, taitosj_state )
AM_RANGE(0xd40f, 0xd40f) AM_DEVREAD_LEGACY("ay1", ay8910_r) /* DSW2 and DSW3 */
AM_RANGE(0xd508, 0xd508) AM_WRITE_LEGACY(taitosj_collision_reg_clear_w)
AM_RANGE(0xd509, 0xd50a) AM_WRITEONLY AM_BASE(m_gfxpointer)
- AM_RANGE(0xd50b, 0xd50b) AM_WRITE_LEGACY(taitosj_soundcommand_w)
+ AM_RANGE(0xd50b, 0xd50b) AM_WRITE(taitosj_soundcommand_w)
AM_RANGE(0xd50d, 0xd50d) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xd50e, 0xd50e) AM_WRITE_LEGACY(taitosj_bankswitch_w)
AM_RANGE(0xd600, 0xd600) AM_WRITEONLY AM_BASE(m_video_mode)
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 49eb7fcb9b7..d636e5d4a09 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -27,24 +27,22 @@ static MACHINE_RESET( tank8 )
}
-static READ8_HANDLER( tank8_collision_r )
+READ8_MEMBER(tank8_state::tank8_collision_r)
{
- tank8_state *state = space->machine().driver_data<tank8_state>();
- return state->m_collision_index;
+ return m_collision_index;
}
-static WRITE8_HANDLER( tank8_lockout_w )
+WRITE8_MEMBER(tank8_state::tank8_lockout_w)
{
- coin_lockout_w(space->machine(), offset, ~data & 1);
+ coin_lockout_w(machine(), offset, ~data & 1);
}
-static WRITE8_HANDLER( tank8_int_reset_w )
+WRITE8_MEMBER(tank8_state::tank8_int_reset_w)
{
- tank8_state *state = space->machine().driver_data<tank8_state>();
- state->m_collision_index &= ~0x3f;
+ m_collision_index &= ~0x3f;
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
static WRITE8_DEVICE_HANDLER( tank8_crash_w )
@@ -101,7 +99,7 @@ static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
AM_RANGE(0x0400, 0x17ff) AM_ROM
AM_RANGE(0xf800, 0xffff) AM_ROM
- AM_RANGE(0x1c00, 0x1c00) AM_READ_LEGACY(tank8_collision_r)
+ AM_RANGE(0x1c00, 0x1c00) AM_READ(tank8_collision_r)
AM_RANGE(0x1c01, 0x1c01) AM_READ_PORT("P1")
AM_RANGE(0x1c02, 0x1c02) AM_READ_PORT("P2")
@@ -121,8 +119,8 @@ static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
AM_RANGE(0x1c10, 0x1c1f) AM_WRITEONLY AM_BASE(m_pos_v_ram)
AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_BASE(m_pos_d_ram)
- AM_RANGE(0x1c30, 0x1c37) AM_WRITE_LEGACY(tank8_lockout_w)
- AM_RANGE(0x1d00, 0x1d00) AM_WRITE_LEGACY(tank8_int_reset_w)
+ 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)
diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c
index 500ed690787..37860b86e41 100644
--- a/src/mame/drivers/tankbatt.c
+++ b/src/mame/drivers/tankbatt.c
@@ -62,66 +62,62 @@ Known issues:
#include "includes/tankbatt.h"
-static WRITE8_HANDLER( tankbatt_led_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_led_w)
{
- set_led_status(space->machine(), offset,data & 1);
+ set_led_status(machine(), offset,data & 1);
}
-static READ8_HANDLER( tankbatt_in0_r )
+READ8_MEMBER(tankbatt_state::tankbatt_in0_r)
{
int val;
- val = input_port_read(space->machine(), "P1");
+ val = input_port_read(machine(), "P1");
return ((val << (7 - offset)) & 0x80);
}
-static READ8_HANDLER( tankbatt_in1_r )
+READ8_MEMBER(tankbatt_state::tankbatt_in1_r)
{
int val;
- val = input_port_read(space->machine(), "P2");
+ val = input_port_read(machine(), "P2");
return ((val << (7 - offset)) & 0x80);
}
-static READ8_HANDLER( tankbatt_dsw_r )
+READ8_MEMBER(tankbatt_state::tankbatt_dsw_r)
{
int val;
- val = input_port_read(space->machine(), "DSW");
+ val = input_port_read(machine(), "DSW");
return ((val << (7 - offset)) & 0x80);
}
-static WRITE8_HANDLER( tankbatt_interrupt_enable_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_interrupt_enable_w)
{
- tankbatt_state *state = space->machine().driver_data<tankbatt_state>();
- state->m_nmi_enable = !data;
- state->m_sound_enable = !data;
+ m_nmi_enable = !data;
+ m_sound_enable = !data;
/* hack - turn off the engine noise if the normal game nmi's are disabled */
- if (data) space->machine().device<samples_device>("samples")->stop(2);
+ if (data) machine().device<samples_device>("samples")->stop(2);
}
-static WRITE8_HANDLER( tankbatt_demo_interrupt_enable_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_demo_interrupt_enable_w)
{
- tankbatt_state *state = space->machine().driver_data<tankbatt_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
}
-static WRITE8_HANDLER( tankbatt_sh_expl_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_sh_expl_w)
{
- tankbatt_state *state = space->machine().driver_data<tankbatt_state>();
- if (state->m_sound_enable)
+ if (m_sound_enable)
{
- samples_device *samples = space->machine().device<samples_device>("samples");
+ samples_device *samples = machine().device<samples_device>("samples");
samples->start(1, 3);
}
}
-static WRITE8_HANDLER( tankbatt_sh_engine_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_sh_engine_w)
{
- tankbatt_state *state = space->machine().driver_data<tankbatt_state>();
- samples_device *samples = space->machine().device<samples_device>("samples");
- if (state->m_sound_enable)
+ samples_device *samples = machine().device<samples_device>("samples");
+ if (m_sound_enable)
{
if (data)
samples->start(2, 2, true);
@@ -131,32 +127,31 @@ static WRITE8_HANDLER( tankbatt_sh_engine_w )
else samples->stop(2);
}
-static WRITE8_HANDLER( tankbatt_sh_fire_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_sh_fire_w)
{
- tankbatt_state *state = space->machine().driver_data<tankbatt_state>();
- if (state->m_sound_enable)
+ if (m_sound_enable)
{
- samples_device *samples = space->machine().device<samples_device>("samples");
+ samples_device *samples = machine().device<samples_device>("samples");
samples->start(0, 0);
}
}
-static WRITE8_HANDLER( tankbatt_irq_ack_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_irq_ack_w)
{
/* 0x6e written at the end of the irq routine, could be either irq ack or a coin sample */
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( tankbatt_coin_counter_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_coin_counter_w)
{
- coin_counter_w(space->machine(), 0,data & 1);
- coin_counter_w(space->machine(), 1,data & 1);
+ coin_counter_w(machine(), 0,data & 1);
+ coin_counter_w(machine(), 1,data & 1);
}
-static WRITE8_HANDLER( tankbatt_coin_lockout_w )
+WRITE8_MEMBER(tankbatt_state::tankbatt_coin_lockout_w)
{
- coin_lockout_w(space->machine(), 0,data & 1);
- coin_lockout_w(space->machine(), 1,data & 1);
+ coin_lockout_w(machine(), 0,data & 1);
+ coin_lockout_w(machine(), 1,data & 1);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tankbatt_state )
@@ -164,20 +159,20 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tankbatt_state )
AM_RANGE(0x0010, 0x01ff) AM_RAM
AM_RANGE(0x0200, 0x07ff) AM_RAM
AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE_LEGACY(tankbatt_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0x0c00, 0x0c07) AM_READ_LEGACY(tankbatt_in0_r)
- AM_RANGE(0x0c00, 0x0c01) AM_WRITE_LEGACY(tankbatt_led_w)
- AM_RANGE(0x0c02, 0x0c02) AM_WRITE_LEGACY(tankbatt_coin_counter_w)
- AM_RANGE(0x0c03, 0x0c03) AM_WRITE_LEGACY(tankbatt_coin_lockout_w)
- AM_RANGE(0x0c08, 0x0c0f) AM_READ_LEGACY(tankbatt_in1_r)
+ AM_RANGE(0x0c00, 0x0c07) AM_READ(tankbatt_in0_r)
+ AM_RANGE(0x0c00, 0x0c01) AM_WRITE(tankbatt_led_w)
+ AM_RANGE(0x0c02, 0x0c02) AM_WRITE(tankbatt_coin_counter_w)
+ AM_RANGE(0x0c03, 0x0c03) AM_WRITE(tankbatt_coin_lockout_w)
+ AM_RANGE(0x0c08, 0x0c0f) AM_READ(tankbatt_in1_r)
AM_RANGE(0x0c08, 0x0c08) AM_WRITENOP //coin counter mirror?
- AM_RANGE(0x0c0a, 0x0c0a) AM_WRITE_LEGACY(tankbatt_interrupt_enable_w)
- AM_RANGE(0x0c0b, 0x0c0b) AM_WRITE_LEGACY(tankbatt_sh_engine_w)
- AM_RANGE(0x0c0c, 0x0c0c) AM_WRITE_LEGACY(tankbatt_sh_fire_w)
- AM_RANGE(0x0c0d, 0x0c0d) AM_WRITE_LEGACY(tankbatt_sh_expl_w) // bit 7 == led for the start 2 button
+ AM_RANGE(0x0c0a, 0x0c0a) AM_WRITE(tankbatt_interrupt_enable_w)
+ AM_RANGE(0x0c0b, 0x0c0b) AM_WRITE(tankbatt_sh_engine_w)
+ AM_RANGE(0x0c0c, 0x0c0c) AM_WRITE(tankbatt_sh_fire_w)
+ AM_RANGE(0x0c0d, 0x0c0d) AM_WRITE(tankbatt_sh_expl_w) // bit 7 == led for the start 2 button
AM_RANGE(0x0c0e, 0x0c0e) AM_WRITENOP //bit 7 == led for the start 1 button
- AM_RANGE(0x0c0f, 0x0c0f) AM_WRITE_LEGACY(tankbatt_demo_interrupt_enable_w)
- AM_RANGE(0x0c10, 0x0c10) AM_WRITE_LEGACY(tankbatt_irq_ack_w)
- AM_RANGE(0x0c18, 0x0c1f) AM_READ_LEGACY(tankbatt_dsw_r)
+ AM_RANGE(0x0c0f, 0x0c0f) AM_WRITE(tankbatt_demo_interrupt_enable_w)
+ AM_RANGE(0x0c10, 0x0c10) AM_WRITE(tankbatt_irq_ack_w)
+ AM_RANGE(0x0c18, 0x0c1f) AM_READ(tankbatt_dsw_r)
AM_RANGE(0x0c18, 0x0c18) AM_WRITENOP /* watchdog ?? */
AM_RANGE(0x6000, 0x7fff) AM_ROM AM_REGION("maincpu",0)
AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("maincpu",0) //mirror for the reset/irq vectors
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 4eca0af4611..076a90e7d16 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -30,9 +30,9 @@ static TIMER_CALLBACK( soundlatch_callback )
state->m_latch = param;
}
-static WRITE8_HANDLER( tankbust_soundlatch_w )
+WRITE8_MEMBER(tankbust_state::tankbust_soundlatch_w)
{
- space->machine().scheduler().synchronize(FUNC(soundlatch_callback), data);
+ machine().scheduler().synchronize(FUNC(soundlatch_callback), data);
}
static READ8_DEVICE_HANDLER( tankbust_soundlatch_r )
@@ -62,31 +62,30 @@ static TIMER_CALLBACK( soundirqline_callback )
-static WRITE8_HANDLER( tankbust_e0xx_w )
+WRITE8_MEMBER(tankbust_state::tankbust_e0xx_w)
{
- tankbust_state *state = space->machine().driver_data<tankbust_state>();
- state->m_e0xx_data[offset] = data;
+ m_e0xx_data[offset] = data;
#if 0
popmessage("e0: %x %x (%x cnt) %x %x %x %x",
- state->m_e0xx_data[0], state->m_e0xx_data[1],
- state->m_e0xx_data[2], state->m_e0xx_data[3],
- state->m_e0xx_data[4], state->m_e0xx_data[5],
- state->m_e0xx_data[6] );
+ m_e0xx_data[0], m_e0xx_data[1],
+ m_e0xx_data[2], m_e0xx_data[3],
+ m_e0xx_data[4], m_e0xx_data[5],
+ m_e0xx_data[6] );
#endif
switch (offset)
{
case 0: /* 0xe000 interrupt enable */
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
break;
case 1: /* 0xe001 (value 0 then 1) written right after the soundlatch_w */
- space->machine().scheduler().synchronize(FUNC(soundirqline_callback), data);
+ machine().scheduler().synchronize(FUNC(soundirqline_callback), data);
break;
case 2: /* 0xe002 coin counter */
- coin_counter_w(space->machine(), 0, data&1);
+ coin_counter_w(machine(), 0, data&1);
break;
case 6: /* 0xe006 screen disable ?? or disable screen update */
@@ -100,16 +99,15 @@ static WRITE8_HANDLER( tankbust_e0xx_w )
case 7: /* 0xe007 bankswitch */
/* bank 1 at 0x6000-9fff = from 0x10000 when bit0=0 else from 0x14000 */
/* bank 2 at 0xa000-bfff = from 0x18000 when bit0=0 else from 0x1a000 */
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("maincpu")->base() + 0x10000 + ((data&1) * 0x4000) );
- memory_set_bankptr(space->machine(), "bank2", space->machine().region("maincpu")->base() + 0x18000 + ((data&1) * 0x2000) ); /* verified (the game will reset after the "game over" otherwise) */
+ memory_set_bankptr(machine(), "bank1", machine().region("maincpu")->base() + 0x10000 + ((data&1) * 0x4000) );
+ memory_set_bankptr(machine(), "bank2", machine().region("maincpu")->base() + 0x18000 + ((data&1) * 0x2000) ); /* verified (the game will reset after the "game over" otherwise) */
break;
}
}
-static READ8_HANDLER( debug_output_area_r )
+READ8_MEMBER(tankbust_state::debug_output_area_r)
{
- tankbust_state *state = space->machine().driver_data<tankbust_state>();
- return state->m_e0xx_data[offset];
+ return m_e0xx_data[offset];
}
@@ -164,17 +162,16 @@ static PALETTE_INIT( tankbust )
}
#if 0
-static READ8_HANDLER( read_from_unmapped_memory )
+READ8_MEMBER(tankbust_state::read_from_unmapped_memory)
{
return 0xff;
}
#endif
-static READ8_HANDLER( some_changing_input )
+READ8_MEMBER(tankbust_state::some_changing_input)
{
- tankbust_state *state = space->machine().driver_data<tankbust_state>();
- state->m_variable_data += 8;
- return state->m_variable_data;
+ m_variable_data += 8;
+ return m_variable_data;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tankbust_state )
@@ -185,15 +182,15 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tankbust_state )
AM_RANGE(0xc800, 0xcfff) AM_READWRITE_LEGACY(tankbust_background_colorram_r, tankbust_background_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xd000, 0xd7ff) AM_READWRITE_LEGACY(tankbust_txtram_r, tankbust_txtram_w) AM_BASE(m_txtram)
AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0xe000, 0xe007) AM_READWRITE_LEGACY(debug_output_area_r, tankbust_e0xx_w)
+ AM_RANGE(0xe000, 0xe007) AM_READWRITE(debug_output_area_r, tankbust_e0xx_w)
AM_RANGE(0xe800, 0xe800) AM_READ_PORT("INPUTS") AM_WRITE_LEGACY(tankbust_yscroll_w)
AM_RANGE(0xe801, 0xe801) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe802, 0xe802) AM_READ_PORT("DSW")
AM_RANGE(0xe801, 0xe802) AM_WRITE_LEGACY(tankbust_xscroll_w)
- AM_RANGE(0xe803, 0xe803) AM_READWRITE_LEGACY(some_changing_input, tankbust_soundlatch_w) /*unknown. Game expects this to change so this is not player input */
+ AM_RANGE(0xe803, 0xe803) AM_READWRITE(some_changing_input, tankbust_soundlatch_w) /*unknown. Game expects this to change so this is not player input */
AM_RANGE(0xe804, 0xe804) AM_WRITENOP /* watchdog ? ; written in long-lasting loops */
AM_RANGE(0xf000, 0xf7ff) AM_RAM
- //AM_RANGE(0xf800, 0xffff) AM_READ_LEGACY(read_from_unmapped_memory) /* a bug in game code ? */
+ //AM_RANGE(0xf800, 0xffff) AM_READ(read_from_unmapped_memory) /* a bug in game code ? */
ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map_cpu2, AS_IO, 8, tankbust_state )
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index cf1b2f0a20f..176b0d3bf13 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -72,21 +72,19 @@ zooming might be wrong
#define TAOTAIDO_SHOW_ALL_INPUTS 0
-static READ16_HANDLER( pending_command_r )
+READ16_MEMBER(taotaido_state::pending_command_r)
{
- taotaido_state *state = space->machine().driver_data<taotaido_state>();
/* Only bit 0 is tested */
- return state->m_pending_command;
+ return m_pending_command;
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(taotaido_state::sound_command_w)
{
- taotaido_state *state = space->machine().driver_data<taotaido_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, offset, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state )
@@ -111,24 +109,23 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, taotaido_state )
AM_RANGE(0xffff10, 0xffff11) AM_WRITENOP // unknown
AM_RANGE(0xffff20, 0xffff21) AM_WRITENOP // unknown - flip screen related
AM_RANGE(0xffff40, 0xffff47) AM_WRITE_LEGACY(taotaido_sprite_character_bank_select_w)
- AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE_LEGACY(sound_command_w) // seems right
- AM_RANGE(0xffffe0, 0xffffe1) AM_READ_LEGACY(pending_command_r) // guess - seems to be needed for all the sounds to work
+ AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w) // seems right
+ AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work
ADDRESS_MAP_END
/* sound cpu - same as aerofgt */
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(taotaido_state::pending_command_clear_w)
{
- taotaido_state *state = space->machine().driver_data<taotaido_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
-static WRITE8_HANDLER( taotaido_sh_bankswitch_w )
+WRITE8_MEMBER(taotaido_state::taotaido_sh_bankswitch_w)
{
- UINT8 *rom = space->machine().region("audiocpu")->base() + 0x10000;
+ UINT8 *rom = machine().region("audiocpu")->base() + 0x10000;
- memory_set_bankptr(space->machine(), "bank1",rom + (data & 0x03) * 0x8000);
+ memory_set_bankptr(machine(), "bank1",rom + (data & 0x03) * 0x8000);
}
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taotaido_state )
@@ -140,8 +137,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, taotaido_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
- AM_RANGE(0x04, 0x04) AM_WRITE_LEGACY(taotaido_sh_bankswitch_w)
- AM_RANGE(0x08, 0x08) AM_WRITE_LEGACY(pending_command_clear_w)
+ AM_RANGE(0x04, 0x04) AM_WRITE(taotaido_sh_bankswitch_w)
+ AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w)
AM_RANGE(0x0c, 0x0c) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index b5f6499ce15..f7581cf7f86 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -49,18 +49,18 @@ static TIMER_DEVICE_CALLBACK(targeth_interrupt )
}
}
-static WRITE16_HANDLER( OKIM6295_bankswitch_w )
+WRITE16_MEMBER(targeth_state::OKIM6295_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("oki")->base();
+ UINT8 *RAM = machine().region("oki")->base();
if (ACCESSING_BITS_0_7){
memcpy(&RAM[0x30000], &RAM[0x40000 + (data & 0x0f)*0x10000], 0x10000);
}
}
-static WRITE16_HANDLER( targeth_coin_counter_w )
+WRITE16_MEMBER(targeth_state::targeth_coin_counter_w)
{
- coin_counter_w( space->machine(), (offset >> 3) & 0x01, data & 0x01);
+ coin_counter_w( machine(), (offset >> 3) & 0x01, data & 0x01);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, targeth_state )
@@ -79,10 +79,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, targeth_state )
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("SYSTEM") /* Coins, Start & Fire buttons */
AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SERVICE") /* Service & Guns Reload? */
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) /* OKI6295 status register */
AM_RANGE(0x700010, 0x70001b) AM_WRITENOP /* ??? Guns reload related? */
- AM_RANGE(0x70002a, 0x70003b) AM_WRITE_LEGACY(targeth_coin_counter_w) /* Coin counters */
+ AM_RANGE(0x70002a, 0x70003b) AM_WRITE(targeth_coin_counter_w) /* Coin counters */
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM (partially shared with DS5002FP) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index e54a948d0d3..5f59431285e 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -155,58 +155,52 @@
/***************************************************************************/
-static READ16_HANDLER(cyclwarr_cpu_bb_r)
+READ16_MEMBER(tatsumi_state::cyclwarr_cpu_bb_r)
{
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>();
- return state->m_cyclwarr_cpub_ram[offset];
+ return m_cyclwarr_cpub_ram[offset];
}
-static WRITE16_HANDLER(cyclwarr_cpu_bb_w)
+WRITE16_MEMBER(tatsumi_state::cyclwarr_cpu_bb_w)
{
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>();
- COMBINE_DATA(&state->m_cyclwarr_cpub_ram[offset]);
+ COMBINE_DATA(&m_cyclwarr_cpub_ram[offset]);
}
-static READ16_HANDLER(cyclwarr_palette_r) { return space->machine().generic.paletteram.u16[offset]; }
-static READ16_HANDLER(cyclwarr_sprite_r) {
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>(); return state->m_spriteram[offset]; }
-static WRITE16_HANDLER(cyclwarr_sprite_w) {
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>(); COMBINE_DATA(&state->m_spriteram[offset]); }
-
-static WRITE16_HANDLER(bigfight_a20000_w)
+READ16_MEMBER(tatsumi_state::cyclwarr_palette_r){ return machine().generic.paletteram.u16[offset]; }
+READ16_MEMBER(tatsumi_state::cyclwarr_sprite_r){
+ return m_spriteram[offset]; }
+WRITE16_MEMBER(tatsumi_state::cyclwarr_sprite_w){
+ COMBINE_DATA(&m_spriteram[offset]); }
+WRITE16_MEMBER(tatsumi_state::bigfight_a20000_w)
{
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>();
- COMBINE_DATA(&state->m_bigfight_a20000[offset]);
+ COMBINE_DATA(&m_bigfight_a20000[offset]);
}
-static WRITE16_HANDLER(bigfight_a40000_w)
+WRITE16_MEMBER(tatsumi_state::bigfight_a40000_w)
{
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>();
- COMBINE_DATA(&state->m_bigfight_a40000[offset]);
+ COMBINE_DATA(&m_bigfight_a40000[offset]);
}
-static WRITE16_HANDLER(bigfight_a60000_w)
+WRITE16_MEMBER(tatsumi_state::bigfight_a60000_w)
{
- tatsumi_state *state = space->machine().driver_data<tatsumi_state>();
- COMBINE_DATA(&state->m_bigfight_a60000[offset]);
+ COMBINE_DATA(&m_bigfight_a60000[offset]);
}
-static READ16_HANDLER(cyclwarr_input_r)
+READ16_MEMBER(tatsumi_state::cyclwarr_input_r)
{
static const char *const port[] = { "SERVICE", "P1", "P2", "DSW3" };
- return input_port_read(space->machine(), port[offset]);
+ return input_port_read(machine(), port[offset]);
}
-static READ16_HANDLER(cyclwarr_input2_r)
+READ16_MEMBER(tatsumi_state::cyclwarr_input2_r)
{
static const char *const port2[] = { "DSW1", "DSW2", "P3", "P4" };
- return input_port_read(space->machine(), port2[offset]);
+ return input_port_read(machine(), port2[offset]);
}
-static WRITE16_HANDLER(cyclwarr_sound_w)
+WRITE16_MEMBER(tatsumi_state::cyclwarr_sound_w)
{
soundlatch_w(space, 0, data >> 8);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
/***************************************************************************/
@@ -299,21 +293,21 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cyclwarr_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(m_cyclwarr_cpua_ram)
AM_RANGE(0x03e000, 0x03efff) AM_RAM
- AM_RANGE(0x040000, 0x043fff) AM_READWRITE_LEGACY(cyclwarr_cpu_bb_r, cyclwarr_cpu_bb_w)
+ AM_RANGE(0x040000, 0x043fff) AM_READWRITE(cyclwarr_cpu_bb_r, cyclwarr_cpu_bb_w)
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE_LEGACY(cyclwarr_videoram1_r, cyclwarr_videoram1_w) AM_BASE(m_cyclwarr_videoram1)
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE_LEGACY(cyclwarr_videoram0_r, cyclwarr_videoram0_w) AM_BASE(m_cyclwarr_videoram0)
- AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE_LEGACY(bigfight_a20000_w)
- AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE_LEGACY(bigfight_a40000_w)
- AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE_LEGACY(bigfight_a60000_w)
+ AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE(bigfight_a20000_w)
+ AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE(bigfight_a40000_w)
+ AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w)
- AM_RANGE(0x0b8000, 0x0b8001) AM_WRITE_LEGACY(cyclwarr_sound_w)
- AM_RANGE(0x0b9002, 0x0b9009) AM_READ_LEGACY(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
- AM_RANGE(0x0ba000, 0x0ba007) AM_READ_LEGACY(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
+ AM_RANGE(0x0b8000, 0x0b8001) AM_WRITE(cyclwarr_sound_w)
+ AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
+ AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE_LEGACY(cyclwarr_control_r, cyclwarr_control_w)
- AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE_LEGACY(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE(m_spriteram)
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE_LEGACY(tatsumi_sprite_control_w) AM_BASE(m_sprite_control_ram)
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE_LEGACY(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
@@ -324,17 +318,17 @@ static ADDRESS_MAP_START( cyclwarr_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE_LEGACY(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE_LEGACY(cyclwarr_videoram0_r, cyclwarr_videoram0_w)
- AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE_LEGACY(bigfight_a20000_w)
- AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE_LEGACY(bigfight_a40000_w)
- AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE_LEGACY(bigfight_a60000_w)
+ AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE(bigfight_a20000_w)
+ AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE(bigfight_a40000_w)
+ AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w)
- AM_RANGE(0x0b9002, 0x0b9009) AM_READ_LEGACY(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
- AM_RANGE(0x0ba000, 0x0ba007) AM_READ_LEGACY(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
+ AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
+ AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
AM_RANGE(0x0ba008, 0x0ba009) AM_READ_LEGACY(cyclwarr_control_r)
- AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE_LEGACY(cyclwarr_sprite_r, cyclwarr_sprite_w)
+ AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w)
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE_LEGACY(tatsumi_sprite_control_w)
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE_LEGACY(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w)
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w)
AM_RANGE(0x140000, 0x1bffff) AM_ROMBANK("bank2") /* CPU B ROM */
AM_RANGE(0x2c0000, 0x33ffff) AM_ROMBANK("bank1") /* CPU A ROM */
ADDRESS_MAP_END
@@ -354,22 +348,22 @@ static ADDRESS_MAP_START( bigfight_68000a_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(m_cyclwarr_cpua_ram)
AM_RANGE(0x03e000, 0x03efff) AM_RAM
- AM_RANGE(0x040000, 0x04ffff) AM_READWRITE_LEGACY(cyclwarr_cpu_bb_r, cyclwarr_cpu_bb_w)
+ AM_RANGE(0x040000, 0x04ffff) AM_READWRITE(cyclwarr_cpu_bb_r, cyclwarr_cpu_bb_w)
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE_LEGACY(cyclwarr_videoram1_r, cyclwarr_videoram1_w) AM_BASE(m_cyclwarr_videoram1)
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE_LEGACY(cyclwarr_videoram0_r, cyclwarr_videoram0_w) AM_BASE(m_cyclwarr_videoram0)
- AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE_LEGACY(bigfight_a20000_w)
- AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE_LEGACY(bigfight_a40000_w)
- AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE_LEGACY(bigfight_a60000_w)
+ AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE(bigfight_a20000_w)
+ AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE(bigfight_a40000_w)
+ AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w)
- AM_RANGE(0x0b8000, 0x0b8001) AM_WRITE_LEGACY(cyclwarr_sound_w)
- AM_RANGE(0x0b9002, 0x0b9009) AM_READ_LEGACY(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
- AM_RANGE(0x0ba000, 0x0ba007) AM_READ_LEGACY(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
+ AM_RANGE(0x0b8000, 0x0b8001) AM_WRITE(cyclwarr_sound_w)
+ AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
+ AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE_LEGACY(cyclwarr_control_r, cyclwarr_control_w)
- AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE_LEGACY(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_BASE(m_spriteram)
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE_LEGACY(tatsumi_sprite_control_w) AM_BASE(m_sprite_control_ram)
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE_LEGACY(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
ADDRESS_MAP_END
@@ -378,17 +372,17 @@ static ADDRESS_MAP_START( bigfight_68000b_map, AS_PROGRAM, 16, tatsumi_state )
AM_RANGE(0x000000, 0x00ffff) AM_RAM AM_BASE(m_cyclwarr_cpub_ram)
AM_RANGE(0x080000, 0x08ffff) AM_READWRITE_LEGACY(cyclwarr_videoram1_r, cyclwarr_videoram1_w)
AM_RANGE(0x090000, 0x09ffff) AM_READWRITE_LEGACY(cyclwarr_videoram0_r, cyclwarr_videoram0_w)
- AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE_LEGACY(bigfight_a20000_w)
- AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE_LEGACY(bigfight_a40000_w)
- AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE_LEGACY(bigfight_a60000_w)
+ AM_RANGE(0x0a2000, 0x0a2007) AM_WRITE(bigfight_a20000_w)
+ AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE(bigfight_a40000_w)
+ AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w)
- AM_RANGE(0x0b9002, 0x0b9009) AM_READ_LEGACY(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
- AM_RANGE(0x0ba000, 0x0ba007) AM_READ_LEGACY(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
+ AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */
+ AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */
AM_RANGE(0x0ba008, 0x0ba009) AM_READ_LEGACY(cyclwarr_control_r)
- AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE_LEGACY(cyclwarr_sprite_r, cyclwarr_sprite_w)
+ AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w)
AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE_LEGACY(tatsumi_sprite_control_w)
- AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE_LEGACY(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w)
+ AM_RANGE(0x0d0000, 0x0d3fff) AM_READWRITE(cyclwarr_palette_r, paletteram16_xRRRRRGGGGGBBBBB_word_w)
AM_RANGE(0x100000, 0x17ffff) AM_ROMBANK("bank2") /* CPU A ROM */
AM_RANGE(0x200000, 0x27ffff) AM_ROMBANK("bank1") /* CPU B ROM */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index 744c264a592..2631dcc72b2 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -20,9 +20,9 @@ Might be some priority glitches
#include "includes/tbowl.h"
-static WRITE8_HANDLER( tbowl_coin_counter_w )
+WRITE8_MEMBER(tbowl_state::tbowl_coin_counter_w)
{
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
}
/*** Banking
@@ -31,48 +31,46 @@ note: check this, its borrowed from tecmo.c / wc90.c at the moment and could wel
***/
-static WRITE8_HANDLER( tbowlb_bankswitch_w )
+WRITE8_MEMBER(tbowl_state::tbowlb_bankswitch_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
bankaddress = 0x10000 + ((data & 0xf8) << 8);
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]);
}
-static WRITE8_HANDLER( tbowlc_bankswitch_w )
+WRITE8_MEMBER(tbowl_state::tbowlc_bankswitch_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("sub")->base();
+ UINT8 *RAM = machine().region("sub")->base();
bankaddress = 0x10000 + ((data & 0xf8) << 8);
- memory_set_bankptr(space->machine(), "bank2", &RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank2", &RAM[bankaddress]);
}
/*** Shared Ram Handlers
***/
-static READ8_HANDLER( shared_r )
+READ8_MEMBER(tbowl_state::shared_r)
{
- tbowl_state *state = space->machine().driver_data<tbowl_state>();
- return state->m_shared_ram[offset];
+ return m_shared_ram[offset];
}
-static WRITE8_HANDLER( shared_w )
+WRITE8_MEMBER(tbowl_state::shared_w)
{
- tbowl_state *state = space->machine().driver_data<tbowl_state>();
- state->m_shared_ram[offset] = data;
+ m_shared_ram[offset] = data;
}
-static WRITE8_HANDLER( tbowl_sound_command_w )
+WRITE8_MEMBER(tbowl_state::tbowl_sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -95,13 +93,13 @@ static ADDRESS_MAP_START( 6206B_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE_LEGACY(tbowl_txvideoram_w) AM_BASE(m_txvideoram)
// AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(unknown_write) * written during start-up, not again */
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
- AM_RANGE(0xf800, 0xfbff) AM_READWRITE_LEGACY(shared_r, shared_w) AM_BASE(m_shared_ram) /* check */
- AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1") AM_WRITE_LEGACY(tbowlb_bankswitch_w)
+ AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w) AM_BASE(m_shared_ram) /* check */
+ AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("P1") AM_WRITE(tbowlb_bankswitch_w)
AM_RANGE(0xfc01, 0xfc01) AM_READ_PORT("P2")
// AM_RANGE(0xfc01, 0xfc01) AM_WRITE_LEGACY(unknown_write) /* written during start-up, not again */
AM_RANGE(0xfc02, 0xfc02) AM_READ_PORT("P3")
// AM_RANGE(0xfc02, 0xfc02) AM_WRITE_LEGACY(unknown_write) /* written during start-up, not again */
- AM_RANGE(0xfc03, 0xfc03) AM_READ_PORT("P4") AM_WRITE_LEGACY(tbowl_coin_counter_w)
+ AM_RANGE(0xfc03, 0xfc03) AM_READ_PORT("P4") AM_WRITE(tbowl_coin_counter_w)
// AM_RANGE(0xfc05, 0xfc05) AM_WRITE_LEGACY(unknown_write) /* no idea */
// AM_RANGE(0xfc06, 0xfc06) AM_READ_LEGACY(dummy_r) /* Read During NMI */
AM_RANGE(0xfc07, 0xfc07) AM_READ_PORT("SYSTEM")
@@ -110,7 +108,7 @@ static ADDRESS_MAP_START( 6206B_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0xfc09, 0xfc09) AM_READ_PORT("DSW2")
AM_RANGE(0xfc0a, 0xfc0a) AM_READ_PORT("DSW3")
// AM_RANGE(0xfc0a, 0xfc0a) AM_WRITE_LEGACY(unknown_write) /* hardly used .. */
- AM_RANGE(0xfc0d, 0xfc0d) AM_WRITE_LEGACY(tbowl_sound_command_w) /* not sure, used quite a bit */
+ AM_RANGE(0xfc0d, 0xfc0d) AM_WRITE(tbowl_sound_command_w) /* not sure, used quite a bit */
AM_RANGE(0xfc10, 0xfc10) AM_WRITE_LEGACY(tbowl_bg2xscroll_lo)
AM_RANGE(0xfc11, 0xfc11) AM_WRITE_LEGACY(tbowl_bg2xscroll_hi)
AM_RANGE(0xfc12, 0xfc12) AM_WRITE_LEGACY(tbowl_bg2yscroll_lo)
@@ -122,10 +120,10 @@ static ADDRESS_MAP_START( 6206B_map, AS_PROGRAM, 8, tbowl_state )
ADDRESS_MAP_END
/* Board C */
-static WRITE8_HANDLER ( tbowl_trigger_nmi )
+WRITE8_MEMBER(tbowl_state::tbowl_trigger_nmi)
{
/* trigger NMI on 6206B's Cpu? (guess but seems to work..) */
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( 6206C_map, AS_PROGRAM, 8, tbowl_state )
@@ -135,33 +133,31 @@ static ADDRESS_MAP_START( 6206C_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0xd800, 0xdfff) AM_WRITEONLY AM_BASE(m_spriteram)
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram) // 2x palettes, one for each monitor?
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
- AM_RANGE(0xf800, 0xfbff) AM_READWRITE_LEGACY(shared_r, shared_w)
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(tbowlc_bankswitch_w)
+ AM_RANGE(0xf800, 0xfbff) AM_READWRITE(shared_r, shared_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(tbowlc_bankswitch_w)
AM_RANGE(0xfc01, 0xfc01) AM_WRITENOP /* ? */
- AM_RANGE(0xfc02, 0xfc02) AM_WRITE_LEGACY(tbowl_trigger_nmi) /* ? */
+ AM_RANGE(0xfc02, 0xfc02) AM_WRITE(tbowl_trigger_nmi) /* ? */
AM_RANGE(0xfc03, 0xfc03) AM_WRITENOP /* ? */
AM_RANGE(0xfc06, 0xfc06) AM_WRITENOP /* ? */
ADDRESS_MAP_END
/* Board A */
-static WRITE8_HANDLER( tbowl_adpcm_start_w )
+WRITE8_MEMBER(tbowl_state::tbowl_adpcm_start_w)
{
- tbowl_state *state = space->machine().driver_data<tbowl_state>();
- device_t *adpcm = space->machine().device((offset & 1) ? "msm2" : "msm1");
- state->m_adpcm_pos[offset & 1] = data << 8;
+ device_t *adpcm = machine().device((offset & 1) ? "msm2" : "msm1");
+ m_adpcm_pos[offset & 1] = data << 8;
msm5205_reset_w(adpcm,0);
}
-static WRITE8_HANDLER( tbowl_adpcm_end_w )
+WRITE8_MEMBER(tbowl_state::tbowl_adpcm_end_w)
{
- tbowl_state *state = space->machine().driver_data<tbowl_state>();
- state->m_adpcm_end[offset & 1] = (data + 1) << 8;
+ m_adpcm_end[offset & 1] = (data + 1) << 8;
}
-static WRITE8_HANDLER( tbowl_adpcm_vol_w )
+WRITE8_MEMBER(tbowl_state::tbowl_adpcm_vol_w)
{
- device_t *adpcm = space->machine().device((offset & 1) ? "msm2" : "msm1");
+ device_t *adpcm = machine().device((offset & 1) ? "msm2" : "msm1");
msm5205_set_volume(adpcm, (data & 0x7f) * 100 / 0x7f);
}
@@ -191,9 +187,9 @@ static ADDRESS_MAP_START( 6206A_map, AS_PROGRAM, 8, tbowl_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xd000, 0xd001) AM_DEVWRITE_LEGACY("ym1", ym3812_w)
AM_RANGE(0xd800, 0xd801) AM_DEVWRITE_LEGACY("ym2", ym3812_w)
- AM_RANGE(0xe000, 0xe001) AM_WRITE_LEGACY(tbowl_adpcm_end_w)
- AM_RANGE(0xe002, 0xe003) AM_WRITE_LEGACY(tbowl_adpcm_start_w)
- AM_RANGE(0xe004, 0xe005) AM_WRITE_LEGACY(tbowl_adpcm_vol_w)
+ AM_RANGE(0xe000, 0xe001) AM_WRITE(tbowl_adpcm_end_w)
+ AM_RANGE(0xe002, 0xe003) AM_WRITE(tbowl_adpcm_start_w)
+ AM_RANGE(0xe004, 0xe005) AM_WRITE(tbowl_adpcm_vol_w)
AM_RANGE(0xe006, 0xe006) AM_WRITENOP
AM_RANGE(0xe007, 0xe007) AM_WRITENOP /* NMI acknowledge */
AM_RANGE(0xe010, 0xe010) AM_READ_LEGACY(soundlatch_r)
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index 5e89fa27384..99bda2033c7 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -23,17 +23,15 @@
/*******************************************************************/
-static READ16_HANDLER( m68k_shared_word_r )
+READ16_MEMBER(tceptor_state::m68k_shared_word_r)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
- return state->m_m68k_shared_ram[offset];
+ return m_m68k_shared_ram[offset];
}
-static WRITE16_HANDLER( m68k_shared_word_w )
+WRITE16_MEMBER(tceptor_state::m68k_shared_word_w)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
if (ACCESSING_BITS_0_7)
- state->m_m68k_shared_ram[offset] = data & 0xff;
+ m_m68k_shared_ram[offset] = data & 0xff;
}
@@ -48,16 +46,14 @@ static INTERRUPT_GEN( m6809_vb_interrupt )
state->m_m6809_irq_enable = 1;
}
-static WRITE8_HANDLER( m6809_irq_enable_w )
+WRITE8_MEMBER(tceptor_state::m6809_irq_enable_w)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
- state->m_m6809_irq_enable = 1;
+ m_m6809_irq_enable = 1;
}
-static WRITE8_HANDLER( m6809_irq_disable_w )
+WRITE8_MEMBER(tceptor_state::m6809_irq_disable_w)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
- state->m_m6809_irq_enable = 0;
+ m_m6809_irq_enable = 0;
}
@@ -68,10 +64,9 @@ static INTERRUPT_GEN( m68k_vb_interrupt )
device_set_input_line(device, M68K_IRQ_1, HOLD_LINE);
}
-static WRITE16_HANDLER( m68k_irq_enable_w )
+WRITE16_MEMBER(tceptor_state::m68k_irq_enable_w)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
- state->m_m68k_irq_enable = data;
+ m_m68k_irq_enable = data;
}
@@ -84,16 +79,14 @@ static INTERRUPT_GEN( mcu_vb_interrupt )
state->m_mcu_irq_enable = 1;
}
-static WRITE8_HANDLER( mcu_irq_enable_w )
+WRITE8_MEMBER(tceptor_state::mcu_irq_enable_w)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
- state->m_mcu_irq_enable = 1;
+ m_mcu_irq_enable = 1;
}
-static WRITE8_HANDLER( mcu_irq_disable_w )
+WRITE8_MEMBER(tceptor_state::mcu_irq_disable_w)
{
- tceptor_state *state = space->machine().driver_data<tceptor_state>();
- state->m_mcu_irq_enable = 0;
+ m_mcu_irq_enable = 0;
}
@@ -136,27 +129,27 @@ static UINT8 fix_input1(UINT8 in1, UINT8 in2)
return r;
}
-static READ8_HANDLER( dsw0_r )
+READ8_MEMBER(tceptor_state::dsw0_r)
{
- return fix_input0(input_port_read(space->machine(), "DSW1"), input_port_read(space->machine(), "DSW2"));
+ return fix_input0(input_port_read(machine(), "DSW1"), input_port_read(machine(), "DSW2"));
}
-static READ8_HANDLER( dsw1_r )
+READ8_MEMBER(tceptor_state::dsw1_r)
{
- return fix_input1(input_port_read(space->machine(), "DSW1"), input_port_read(space->machine(), "DSW2"));
+ return fix_input1(input_port_read(machine(), "DSW1"), input_port_read(machine(), "DSW2"));
}
-static READ8_HANDLER( input0_r )
+READ8_MEMBER(tceptor_state::input0_r)
{
- return fix_input0(input_port_read(space->machine(), "BUTTONS"), input_port_read(space->machine(), "SERVICE"));
+ return fix_input0(input_port_read(machine(), "BUTTONS"), input_port_read(machine(), "SERVICE"));
}
-static READ8_HANDLER( input1_r )
+READ8_MEMBER(tceptor_state::input1_r)
{
- return fix_input1(input_port_read(space->machine(), "BUTTONS"), input_port_read(space->machine(), "SERVICE"));
+ return fix_input1(input_port_read(machine(), "BUTTONS"), input_port_read(machine(), "SERVICE"));
}
-static READ8_HANDLER( readFF )
+READ8_MEMBER(tceptor_state::readFF)
{
return 0xff;
}
@@ -177,8 +170,8 @@ static ADDRESS_MAP_START( m6809_map, AS_PROGRAM, 8, tceptor_state )
AM_RANGE(0x4f00, 0x4f03) AM_WRITENOP // analog input control?
AM_RANGE(0x5000, 0x5006) AM_WRITE_LEGACY(tceptor_bg_scroll_w) // bg scroll
AM_RANGE(0x6000, 0x7fff) AM_RAM AM_SHARE("share1") AM_BASE(m_m68k_shared_ram) // COM RAM
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(m6809_irq_disable_w)
- AM_RANGE(0x8800, 0x8800) AM_WRITE_LEGACY(m6809_irq_enable_w)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(m6809_irq_disable_w)
+ AM_RANGE(0x8800, 0x8800) AM_WRITE(m6809_irq_enable_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -211,8 +204,8 @@ static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16, tceptor_state )
AM_RANGE(0x300000, 0x300001) AM_WRITEONLY
AM_RANGE(0x400000, 0x4001ff) AM_WRITEONLY AM_BASE(m_sprite_ram)
AM_RANGE(0x500000, 0x51ffff) AM_WRITE_LEGACY(namco_road16_w)
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(m68k_irq_enable_w) // not sure
- AM_RANGE(0x700000, 0x703fff) AM_READWRITE_LEGACY(m68k_shared_word_r, m68k_shared_word_w) AM_SHARE("share1")
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(m68k_irq_enable_w) // not sure
+ AM_RANGE(0x700000, 0x703fff) AM_READWRITE(m68k_shared_word_r, m68k_shared_word_w) AM_SHARE("share1")
ADDRESS_MAP_END
@@ -223,12 +216,12 @@ static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, tceptor_state )
AM_RANGE(0x1400, 0x154d) AM_RAM
AM_RANGE(0x17c0, 0x17ff) AM_RAM
AM_RANGE(0x2000, 0x20ff) AM_RAM AM_SHARE("share3")
- AM_RANGE(0x2100, 0x2100) AM_READ_LEGACY(dsw0_r)
- AM_RANGE(0x2101, 0x2101) AM_READ_LEGACY(dsw1_r)
- AM_RANGE(0x2200, 0x2200) AM_READ_LEGACY(input0_r)
- AM_RANGE(0x2201, 0x2201) AM_READ_LEGACY(input1_r)
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(mcu_irq_disable_w)
- AM_RANGE(0x8800, 0x8800) AM_WRITE_LEGACY(mcu_irq_enable_w)
+ AM_RANGE(0x2100, 0x2100) AM_READ(dsw0_r)
+ AM_RANGE(0x2101, 0x2101) AM_READ(dsw1_r)
+ AM_RANGE(0x2200, 0x2200) AM_READ(input0_r)
+ AM_RANGE(0x2201, 0x2201) AM_READ(input1_r)
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(mcu_irq_disable_w)
+ AM_RANGE(0x8800, 0x8800) AM_WRITE(mcu_irq_enable_w)
AM_RANGE(0x8000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
AM_RANGE(0xc800, 0xdfff) AM_RAM AM_SHARE("nvram") // Battery Backup
@@ -237,8 +230,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, tceptor_state )
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_LEGACY(readFF) AM_WRITENOP
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ_LEGACY(readFF) AM_WRITENOP
+ AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ(readFF) AM_WRITENOP
+ AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) AM_WRITENOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index 6812e3f3f82..81c660591c4 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -52,20 +52,20 @@ f80b ????
#include "includes/tecmo.h"
-static WRITE8_HANDLER( tecmo_bankswitch_w )
+WRITE8_MEMBER(tecmo_state::tecmo_bankswitch_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
bankaddress = 0x10000 + ((data & 0xf8) << 8);
- memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]);
}
-static WRITE8_HANDLER( tecmo_sound_command_w )
+WRITE8_MEMBER(tecmo_state::tecmo_sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "soundcpu",INPUT_LINE_NMI,PULSE_LINE);
+ cputag_set_input_line(machine(), "soundcpu",INPUT_LINE_NMI,PULSE_LINE);
}
static WRITE8_DEVICE_HANDLER( tecmo_adpcm_start_w )
@@ -74,10 +74,9 @@ static WRITE8_DEVICE_HANDLER( tecmo_adpcm_start_w )
state->m_adpcm_pos = data << 8;
msm5205_reset_w(device, 0);
}
-static WRITE8_HANDLER( tecmo_adpcm_end_w )
+WRITE8_MEMBER(tecmo_state::tecmo_adpcm_end_w)
{
- tecmo_state *state = space->machine().driver_data<tecmo_state>();
- state->m_adpcm_end = (data + 1) << 8;
+ m_adpcm_end = (data + 1) << 8;
}
static WRITE8_DEVICE_HANDLER( tecmo_adpcm_vol_w )
{
@@ -104,30 +103,30 @@ static void tecmo_adpcm_int(device_t *device)
}
/* the 8-bit dipswitches are split across addresses */
-static READ8_HANDLER( tecmo_dswa_l_r )
+READ8_MEMBER(tecmo_state::tecmo_dswa_l_r)
{
- UINT8 port = input_port_read(space->machine(), "DSWA");
+ UINT8 port = input_port_read(machine(), "DSWA");
port &= 0x0f;
return port;
}
-static READ8_HANDLER( tecmo_dswa_h_r )
+READ8_MEMBER(tecmo_state::tecmo_dswa_h_r)
{
- UINT8 port = input_port_read(space->machine(), "DSWA");
+ UINT8 port = input_port_read(machine(), "DSWA");
port &= 0xf0;
return port>>4;
}
-static READ8_HANDLER( tecmo_dswb_l_r )
+READ8_MEMBER(tecmo_state::tecmo_dswb_l_r)
{
- UINT8 port = input_port_read(space->machine(), "DSWB");
+ UINT8 port = input_port_read(machine(), "DSWB");
port &= 0x0f;
return port;
}
-static READ8_HANDLER( tecmo_dswb_h_r )
+READ8_MEMBER(tecmo_state::tecmo_dswb_h_r)
{
- UINT8 port = input_port_read(space->machine(), "DSWB");
+ UINT8 port = input_port_read(machine(), "DSWB");
port &= 0xf0;
return port>>4;
}
@@ -148,16 +147,16 @@ static ADDRESS_MAP_START( rygar_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2")
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1")
- AM_RANGE(0xf806, 0xf806) AM_READ_LEGACY(tecmo_dswa_l_r )
- AM_RANGE(0xf807, 0xf807) AM_READ_LEGACY(tecmo_dswa_h_r )
- AM_RANGE(0xf808, 0xf808) AM_READ_LEGACY(tecmo_dswb_l_r )
- AM_RANGE(0xf809, 0xf809) AM_READ_LEGACY(tecmo_dswb_h_r )
+ AM_RANGE(0xf806, 0xf806) AM_READ(tecmo_dswa_l_r )
+ AM_RANGE(0xf807, 0xf807) AM_READ(tecmo_dswa_h_r )
+ AM_RANGE(0xf808, 0xf808) AM_READ(tecmo_dswb_l_r )
+ AM_RANGE(0xf809, 0xf809) AM_READ(tecmo_dswb_h_r )
AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2")
AM_RANGE(0xf800, 0xf802) AM_WRITE_LEGACY(tecmo_fgscroll_w)
AM_RANGE(0xf803, 0xf805) AM_WRITE_LEGACY(tecmo_bgscroll_w)
- AM_RANGE(0xf806, 0xf806) AM_WRITE_LEGACY(tecmo_sound_command_w)
+ AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w)
AM_RANGE(0xf807, 0xf807) AM_WRITE_LEGACY(tecmo_flipscreen_w)
- AM_RANGE(0xf808, 0xf808) AM_WRITE_LEGACY(tecmo_bankswitch_w)
+ AM_RANGE(0xf808, 0xf808) AM_WRITE(tecmo_bankswitch_w)
AM_RANGE(0xf80b, 0xf80b) AM_WRITE_LEGACY(watchdog_reset_w)
ADDRESS_MAP_END
@@ -176,16 +175,16 @@ static ADDRESS_MAP_START( gemini_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2")
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1")
- AM_RANGE(0xf806, 0xf806) AM_READ_LEGACY(tecmo_dswa_l_r )
- AM_RANGE(0xf807, 0xf807) AM_READ_LEGACY(tecmo_dswa_h_r )
- AM_RANGE(0xf808, 0xf808) AM_READ_LEGACY(tecmo_dswb_l_r )
- AM_RANGE(0xf809, 0xf809) AM_READ_LEGACY(tecmo_dswb_h_r )
+ AM_RANGE(0xf806, 0xf806) AM_READ(tecmo_dswa_l_r )
+ AM_RANGE(0xf807, 0xf807) AM_READ(tecmo_dswa_h_r )
+ AM_RANGE(0xf808, 0xf808) AM_READ(tecmo_dswb_l_r )
+ AM_RANGE(0xf809, 0xf809) AM_READ(tecmo_dswb_h_r )
AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2")
AM_RANGE(0xf800, 0xf802) AM_WRITE_LEGACY(tecmo_fgscroll_w)
AM_RANGE(0xf803, 0xf805) AM_WRITE_LEGACY(tecmo_bgscroll_w)
- AM_RANGE(0xf806, 0xf806) AM_WRITE_LEGACY(tecmo_sound_command_w)
+ AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w)
AM_RANGE(0xf807, 0xf807) AM_WRITE_LEGACY(tecmo_flipscreen_w)
- AM_RANGE(0xf808, 0xf808) AM_WRITE_LEGACY(tecmo_bankswitch_w)
+ AM_RANGE(0xf808, 0xf808) AM_WRITE(tecmo_bankswitch_w)
AM_RANGE(0xf80b, 0xf80b) AM_WRITE_LEGACY(watchdog_reset_w)
ADDRESS_MAP_END
@@ -204,16 +203,16 @@ static ADDRESS_MAP_START( silkworm_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0xf803, 0xf803) AM_READ_PORT("BUTTONS2")
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("SYS_0")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("SYS_1")
- AM_RANGE(0xf806, 0xf806) AM_READ_LEGACY(tecmo_dswa_l_r )
- AM_RANGE(0xf807, 0xf807) AM_READ_LEGACY(tecmo_dswa_h_r )
- AM_RANGE(0xf808, 0xf808) AM_READ_LEGACY(tecmo_dswb_l_r )
- AM_RANGE(0xf809, 0xf809) AM_READ_LEGACY(tecmo_dswb_h_r )
+ AM_RANGE(0xf806, 0xf806) AM_READ(tecmo_dswa_l_r )
+ AM_RANGE(0xf807, 0xf807) AM_READ(tecmo_dswa_h_r )
+ AM_RANGE(0xf808, 0xf808) AM_READ(tecmo_dswb_l_r )
+ AM_RANGE(0xf809, 0xf809) AM_READ(tecmo_dswb_h_r )
AM_RANGE(0xf80f, 0xf80f) AM_READ_PORT("SYS_2")
AM_RANGE(0xf800, 0xf802) AM_WRITE_LEGACY(tecmo_fgscroll_w)
AM_RANGE(0xf803, 0xf805) AM_WRITE_LEGACY(tecmo_bgscroll_w)
- AM_RANGE(0xf806, 0xf806) AM_WRITE_LEGACY(tecmo_sound_command_w)
+ AM_RANGE(0xf806, 0xf806) AM_WRITE(tecmo_sound_command_w)
AM_RANGE(0xf807, 0xf807) AM_WRITE_LEGACY(tecmo_flipscreen_w)
- AM_RANGE(0xf808, 0xf808) AM_WRITE_LEGACY(tecmo_bankswitch_w)
+ AM_RANGE(0xf808, 0xf808) AM_WRITE(tecmo_bankswitch_w)
AM_RANGE(0xf809, 0xf809) AM_WRITENOP /* ? */
AM_RANGE(0xf80b, 0xf80b) AM_WRITENOP /* ? if mapped to watchdog like in the others, causes reset */
ADDRESS_MAP_END
@@ -223,7 +222,7 @@ static ADDRESS_MAP_START( rygar_sound_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x4000, 0x47ff) AM_RAM
AM_RANGE(0x8000, 0x8001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(soundlatch_r) AM_DEVWRITE_LEGACY("msm", tecmo_adpcm_start_w)
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(tecmo_adpcm_end_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(0xf000, 0xf000) AM_WRITENOP /* NMI acknowledge */
ADDRESS_MAP_END
@@ -235,7 +234,7 @@ static ADDRESS_MAP_START( tecmo_sound_map, AS_PROGRAM, 8, tecmo_state )
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(soundlatch_r) AM_DEVWRITE_LEGACY("msm", tecmo_adpcm_start_w)
- AM_RANGE(0xc400, 0xc400) AM_WRITE_LEGACY(tecmo_adpcm_end_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(0xcc00, 0xcc00) AM_WRITENOP /* NMI acknowledge */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c
index 56450fa33e7..0228fb22a8a 100644
--- a/src/mame/drivers/tecmo16.c
+++ b/src/mame/drivers/tecmo16.c
@@ -32,12 +32,12 @@ Notes:
/******************************************************************************/
-static WRITE16_HANDLER( tecmo16_sound_command_w )
+WRITE16_MEMBER(tecmo16_state::tecmo16_sound_command_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0x00, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -55,7 +55,7 @@ static ADDRESS_MAP_START( fstarfrc_map, AS_PROGRAM, 16, tecmo16_state )
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x150000, 0x150001) AM_WRITE_LEGACY(tecmo16_flipscreen_w)
- AM_RANGE(0x150010, 0x150011) AM_WRITE_LEGACY(tecmo16_sound_command_w)
+ AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP /* ??? */
AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1")
AM_RANGE(0x150050, 0x150051) AM_READ_PORT("P1_P2")
@@ -78,7 +78,7 @@ static ADDRESS_MAP_START( ginkun_map, AS_PROGRAM, 16, tecmo16_state )
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x140000, 0x141fff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x150000, 0x150001) AM_WRITE_LEGACY(tecmo16_flipscreen_w)
- AM_RANGE(0x150010, 0x150011) AM_WRITE_LEGACY(tecmo16_sound_command_w)
+ AM_RANGE(0x150010, 0x150011) AM_WRITE(tecmo16_sound_command_w)
AM_RANGE(0x150020, 0x150021) AM_READ_PORT("EXTRA") AM_WRITENOP /* ??? */
AM_RANGE(0x150030, 0x150031) AM_READ_PORT("DSW2") AM_WRITENOP /* ??? */
AM_RANGE(0x150040, 0x150041) AM_READ_PORT("DSW1")
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index fd9930248fb..7868105f294 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -191,24 +191,24 @@ ae500w07.ad1 - M6295 Samples (23c4001)
// It looks like this needs a synch between z80 and 68k ??? See z80:006A-0091
-static READ16_HANDLER( sound_r )
+READ16_MEMBER(tecmosys_state::sound_r)
{
if (ACCESSING_BITS_0_7)
{
- space->machine().scheduler().synchronize();
- return soundlatch2_r( space, 0 );
+ machine().scheduler().synchronize();
+ return soundlatch2_r(space, 0 );
}
return 0;
}
-static WRITE16_HANDLER( sound_w )
+WRITE16_MEMBER(tecmosys_state::sound_w)
{
if (ACCESSING_BITS_0_7)
{
- space->machine().scheduler().synchronize();
+ machine().scheduler().synchronize();
soundlatch_w(space, 0x00, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -221,10 +221,9 @@ static WRITE16_HANDLER( sound_w )
- 880000 & 03, crash
*/
-static WRITE16_HANDLER( unk880000_w )
+WRITE16_MEMBER(tecmosys_state::unk880000_w)
{
- tecmosys_state *state = space->machine().driver_data<tecmosys_state>();
- COMBINE_DATA(&state->m_880000regs[offset]);
+ COMBINE_DATA(&m_880000regs[offset]);
switch( offset )
{
@@ -235,33 +234,32 @@ static WRITE16_HANDLER( unk880000_w )
break; // global y scroll for sprites
case 0x08/2:
- state->m_spritelist = data & 0x3; // which of the 4 spritelists to use (buffering)
+ m_spritelist = data & 0x3; // which of the 4 spritelists to use (buffering)
break;
case 0x22/2:
- watchdog_reset( space->machine() );
- //logerror( "watchdog_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, cpu_get_pc(&space->device()) );
+ watchdog_reset( machine() );
+ //logerror( "watchdog_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, cpu_get_pc(&space.device()) );
break;
default:
- logerror( "unk880000_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, cpu_get_pc(&space->device()) );
+ logerror( "unk880000_w( %06x, %04x ) @ %06x\n", (offset * 2)+0x880000, data, cpu_get_pc(&space.device()) );
break;
}
}
-static READ16_HANDLER( unk880000_r )
+READ16_MEMBER(tecmosys_state::unk880000_r)
{
- tecmosys_state *state = space->machine().driver_data<tecmosys_state>();
- //UINT16 ret = state->m_880000regs[offset];
+ //UINT16 ret = m_880000regs[offset];
- logerror( "unk880000_r( %06x ) @ %06x = %04x\n", (offset * 2 ) +0x880000, cpu_get_pc(&space->device()), state->m_880000regs[offset] );
+ logerror( "unk880000_r( %06x ) @ %06x = %04x\n", (offset * 2 ) +0x880000, cpu_get_pc(&space.device()), m_880000regs[offset] );
/* this code allows scroll regs to be updated, but tkdensho at least resets perodically */
switch( offset )
{
case 0:
- if ( space->machine().primary_screen->vpos() >= 240) return 0;
+ if ( machine().primary_screen->vpos() >= 240) return 0;
else return 1;
default:
@@ -301,7 +299,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE_LEGACY(fg_tilemap_w) AM_BASE(m_fgtilemap_ram) // fix ram
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_BASE(m_spriteram) // obj ram
- AM_RANGE(0x880000, 0x88000b) AM_READ_LEGACY(unk880000_r)
+ AM_RANGE(0x880000, 0x88000b) AM_READ(unk880000_r)
AM_RANGE(0x900000, 0x907fff) AM_RAM_WRITE_LEGACY(paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE_GENERIC(paletteram) // AM_WRITEONLY // obj pal
//AM_RANGE(0x980000, 0x9807ff) AM_WRITEONLY // bg pal
@@ -309,7 +307,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
// the two above are as tested by the game code, I've only rolled them into one below to get colours to show right.
AM_RANGE(0x980000, 0x980fff) AM_RAM_WRITE_LEGACY(tilemap_paletteram16_xGGGGGRRRRRBBBBB_word_w) AM_BASE(m_tilemap_paletteram16)
- AM_RANGE(0x880000, 0x88002f) AM_WRITE_LEGACY(unk880000_w ) AM_BASE(m_880000regs) // 10 byte dta@88000c, 880022=watchdog?
+ AM_RANGE(0x880000, 0x88002f) AM_WRITE(unk880000_w ) AM_BASE(m_880000regs) // 10 byte dta@88000c, 880022=watchdog?
AM_RANGE(0xa00000, 0xa00001) AM_DEVWRITE_LEGACY("eeprom", eeprom_w )
AM_RANGE(0xa80000, 0xa80005) AM_WRITEONLY AM_BASE(m_a80000regs) // a80000-3 scroll? a80004 inverted ? 3 : 0
AM_RANGE(0xb00000, 0xb00005) AM_WRITEONLY AM_BASE(m_b00000regs) // b00000-3 scrool?, b00004 inverted ? 3 : 0
@@ -319,23 +317,23 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tecmosys_state )
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(0xe00000, 0xe00001) AM_WRITE_LEGACY(sound_w )
+ AM_RANGE(0xe00000, 0xe00001) AM_WRITE(sound_w )
AM_RANGE(0xe80000, 0xe80001) AM_WRITE_LEGACY(tecmosys_prot_data_w)
- AM_RANGE(0xf00000, 0xf00001) AM_READ_LEGACY(sound_r)
+ AM_RANGE(0xf00000, 0xf00001) AM_READ(sound_r)
AM_RANGE(0xf80000, 0xf80001) AM_READ_LEGACY(tecmosys_prot_data_r)
ADDRESS_MAP_END
-static WRITE8_HANDLER( tecmosys_z80_bank_w )
+WRITE8_MEMBER(tecmosys_state::tecmosys_z80_bank_w)
{
- memory_set_bank(space->machine(), "bank1", data);
+ memory_set_bank(machine(), "bank1", data);
}
-static WRITE8_HANDLER( tecmosys_oki_bank_w )
+WRITE8_MEMBER(tecmosys_state::tecmosys_oki_bank_w)
{
UINT8 upperbank = (data & 0x30) >> 4;
UINT8 lowerbank = (data & 0x03) >> 0;
- UINT8* region = space->machine().region("oki")->base();
+ UINT8* region = machine().region("oki")->base();
memcpy( region+0x00000, region+0x80000 + lowerbank * 0x20000, 0x20000 );
memcpy( region+0x20000, region+0x80000 + upperbank * 0x20000, 0x20000 );
@@ -351,8 +349,8 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, tecmosys_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymf", ymf262_r, ymf262_w)
AM_RANGE(0x10, 0x10) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x20, 0x20) AM_WRITE_LEGACY(tecmosys_oki_bank_w)
- AM_RANGE(0x30, 0x30) AM_WRITE_LEGACY(tecmosys_z80_bank_w)
+ AM_RANGE(0x20, 0x20) AM_WRITE(tecmosys_oki_bank_w)
+ AM_RANGE(0x30, 0x30) AM_WRITE(tecmosys_z80_bank_w)
AM_RANGE(0x40, 0x40) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x50, 0x50) AM_WRITE_LEGACY(soundlatch2_w)
AM_RANGE(0x60, 0x61) AM_DEVREADWRITE_LEGACY("ymz", ymz280b_r, ymz280b_w)
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 12ec578ccb9..de2dc464b0f 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -95,57 +95,53 @@ TO DO :
#include "gridiron.lh"
#include "includes/tehkanwc.h"
-static WRITE8_HANDLER( sub_cpu_halt_w )
+WRITE8_MEMBER(tehkanwc_state::sub_cpu_halt_w)
{
if (data)
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, CLEAR_LINE);
else
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, ASSERT_LINE);
}
-static READ8_HANDLER( tehkanwc_track_0_r )
+READ8_MEMBER(tehkanwc_state::tehkanwc_track_0_r)
{
- tehkanwc_state *state = space->machine().driver_data<tehkanwc_state>();
int joy;
- joy = input_port_read(space->machine(), "FAKE") >> (2 * offset);
+ joy = input_port_read(machine(), "FAKE") >> (2 * offset);
if (joy & 1) return -63;
if (joy & 2) return 63;
- return input_port_read(space->machine(), offset ? "P1Y" : "P1X") - state->m_track0[offset];
+ return input_port_read(machine(), offset ? "P1Y" : "P1X") - m_track0[offset];
}
-static READ8_HANDLER( tehkanwc_track_1_r )
+READ8_MEMBER(tehkanwc_state::tehkanwc_track_1_r)
{
- tehkanwc_state *state = space->machine().driver_data<tehkanwc_state>();
int joy;
- joy = input_port_read(space->machine(), "FAKE") >> (4 + 2 * offset);
+ joy = input_port_read(machine(), "FAKE") >> (4 + 2 * offset);
if (joy & 1) return -63;
if (joy & 2) return 63;
- return input_port_read(space->machine(), offset ? "P2Y" : "P2X") - state->m_track1[offset];
+ return input_port_read(machine(), offset ? "P2Y" : "P2X") - m_track1[offset];
}
-static WRITE8_HANDLER( tehkanwc_track_0_reset_w )
+WRITE8_MEMBER(tehkanwc_state::tehkanwc_track_0_reset_w)
{
- tehkanwc_state *state = space->machine().driver_data<tehkanwc_state>();
/* reset the trackball counters */
- state->m_track0[offset] = input_port_read(space->machine(), offset ? "P1Y" : "P1X") + data;
+ m_track0[offset] = input_port_read(machine(), offset ? "P1Y" : "P1X") + data;
}
-static WRITE8_HANDLER( tehkanwc_track_1_reset_w )
+WRITE8_MEMBER(tehkanwc_state::tehkanwc_track_1_reset_w)
{
- tehkanwc_state *state = space->machine().driver_data<tehkanwc_state>();
/* reset the trackball counters */
- state->m_track1[offset] = input_port_read(space->machine(), offset ? "P2Y" : "P2X") + data;
+ m_track1[offset] = input_port_read(machine(), offset ? "P2Y" : "P2X") + data;
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(tehkanwc_state::sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
static TIMER_CALLBACK( reset_callback )
@@ -153,13 +149,13 @@ static TIMER_CALLBACK( reset_callback )
cputag_set_input_line(machine, "audiocpu", INPUT_LINE_RESET, PULSE_LINE);
}
-static WRITE8_HANDLER( sound_answer_w )
+WRITE8_MEMBER(tehkanwc_state::sound_answer_w)
{
soundlatch2_w(space, 0, data);
/* in Gridiron, the sound CPU goes in a tight loop after the self test, */
/* probably waiting to be reset by a watchdog */
- if (cpu_get_pc(&space->device()) == 0x08bc) space->machine().scheduler().timer_set(attotime::from_seconds(1), FUNC(reset_callback));
+ if (cpu_get_pc(&space.device()) == 0x08bc) machine().scheduler().timer_set(attotime::from_seconds(1), FUNC(reset_callback));
}
@@ -229,15 +225,15 @@ static ADDRESS_MAP_START( main_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0xe800, 0xebff) AM_RAM AM_SHARE("share7") AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* sprites */
AM_RANGE(0xec00, 0xec01) AM_RAM_WRITE_LEGACY(tehkanwc_scroll_x_w)
AM_RANGE(0xec02, 0xec02) AM_RAM_WRITE_LEGACY(tehkanwc_scroll_y_w)
- AM_RANGE(0xf800, 0xf801) AM_READWRITE_LEGACY(tehkanwc_track_0_r, tehkanwc_track_0_reset_w) /* track 0 x/y */
+ AM_RANGE(0xf800, 0xf801) AM_READWRITE(tehkanwc_track_0_r, tehkanwc_track_0_reset_w) /* track 0 x/y */
AM_RANGE(0xf802, 0xf802) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(gridiron_led0_w)
AM_RANGE(0xf803, 0xf803) AM_READ_PORT("P1BUT")
AM_RANGE(0xf806, 0xf806) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xf810, 0xf811) AM_READWRITE_LEGACY(tehkanwc_track_1_r, tehkanwc_track_1_reset_w) /* track 1 x/y */
+ AM_RANGE(0xf810, 0xf811) AM_READWRITE(tehkanwc_track_1_r, tehkanwc_track_1_reset_w) /* track 1 x/y */
AM_RANGE(0xf812, 0xf812) AM_WRITE_LEGACY(gridiron_led1_w)
AM_RANGE(0xf813, 0xf813) AM_READ_PORT("P2BUT")
- AM_RANGE(0xf820, 0xf820) AM_READWRITE_LEGACY(soundlatch2_r, sound_command_w) /* answer from the sound CPU */
- AM_RANGE(0xf840, 0xf840) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(sub_cpu_halt_w)
+ AM_RANGE(0xf820, 0xf820) AM_READ_LEGACY(soundlatch2_r) AM_WRITE(sound_command_w) /* answer from the sound CPU */
+ AM_RANGE(0xf840, 0xf840) AM_READ_PORT("DSW1") AM_WRITE(sub_cpu_halt_w)
AM_RANGE(0xf850, 0xf850) AM_READ_PORT("DSW2") AM_WRITENOP /* ?? writes 0x00 or 0xff */
AM_RANGE(0xf860, 0xf860) AM_READWRITE_LEGACY(watchdog_reset_r, tehkanwc_flipscreen_x_w)
AM_RANGE(0xf870, 0xf870) AM_READ_PORT("DSW3") AM_WRITE_LEGACY(tehkanwc_flipscreen_y_w)
@@ -264,7 +260,7 @@ static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8, tehkanwc_state )
AM_RANGE(0x8001, 0x8001) AM_DEVWRITE_LEGACY("msm", 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_READWRITE_LEGACY(soundlatch_r, sound_answer_w)
+ AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(sound_answer_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port, AS_IO, 8, tehkanwc_state )
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index 9dc7b2e445a..e2c51320953 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -131,9 +131,9 @@ static const UINT16 mHoreKidProtData[] =
0x1800 /* checksum */
};
-static READ16_HANDLER( horekid_IN2_r )
+READ16_MEMBER(terracre_state::horekid_IN2_r)
{
- int data = input_port_read(space->machine(), "IN2");
+ int data = input_port_read(machine(), "IN2");
if (!(data & 0x40)) // FAKE button 3 for "Debug Mode"
{
@@ -144,45 +144,43 @@ static READ16_HANDLER( horekid_IN2_r )
return data;
}
-static WRITE16_HANDLER( amazon_sound_w )
+WRITE16_MEMBER(terracre_state::amazon_sound_w)
{
soundlatch_w(space,0,((data & 0x7f) << 1) | 1);
}
-static READ8_HANDLER( soundlatch_clear_r )
+READ8_MEMBER(terracre_state::soundlatch_clear_r)
{
soundlatch_clear_w(space,0,0);
return 0;
}
-static READ16_HANDLER( amazon_protection_r )
+READ16_MEMBER(terracre_state::amazon_protection_r)
{
- terracre_state *state = space->machine().driver_data<terracre_state>();
- offset = state->m_mAmazonProtReg[2];
+ offset = m_mAmazonProtReg[2];
if( offset<=0x56 )
{
UINT16 data;
- data = state->m_mpProtData[offset/2];
+ data = m_mpProtData[offset/2];
if( offset&1 ) return data&0xff;
return data>>8;
}
return 0;
}
-static WRITE16_HANDLER( amazon_protection_w )
+WRITE16_MEMBER(terracre_state::amazon_protection_w)
{
- terracre_state *state = space->machine().driver_data<terracre_state>();
if( ACCESSING_BITS_0_7 )
{
if( offset==1 )
{
- state->m_mAmazonProtCmd = data;
+ m_mAmazonProtCmd = data;
}
else
{
- if( state->m_mAmazonProtCmd>=32 && state->m_mAmazonProtCmd<=0x37 )
+ if( m_mAmazonProtCmd>=32 && m_mAmazonProtCmd<=0x37 )
{
- state->m_mAmazonProtReg[state->m_mAmazonProtCmd-0x32] = data;
+ m_mAmazonProtReg[m_mAmazonProtCmd-0x32] = data;
}
}
}
@@ -209,7 +207,7 @@ static ADDRESS_MAP_START( terracre_map, AS_PROGRAM, 16, terracre_state )
AM_RANGE(0x026000, 0x026001) AM_WRITE_LEGACY(amazon_flipscreen_w) /* flip screen & coin counters */
AM_RANGE(0x026002, 0x026003) AM_WRITE_LEGACY(amazon_scrollx_w)
AM_RANGE(0x026004, 0x026005) AM_WRITE_LEGACY(amazon_scrolly_w)
- AM_RANGE(0x02600c, 0x02600d) AM_WRITE_LEGACY(amazon_sound_w)
+ AM_RANGE(0x02600c, 0x02600d) AM_WRITE(amazon_sound_w)
AM_RANGE(0x028000, 0x0287ff) AM_WRITE_LEGACY(amazon_foreground_w) AM_BASE(m_videoram)
ADDRESS_MAP_END
@@ -225,9 +223,9 @@ static ADDRESS_MAP_START( amazon_map, AS_PROGRAM, 16, terracre_state )
AM_RANGE(0x046000, 0x046001) AM_WRITE_LEGACY(amazon_flipscreen_w) /* flip screen & coin counters */
AM_RANGE(0x046002, 0x046003) AM_WRITE_LEGACY(amazon_scrollx_w)
AM_RANGE(0x046004, 0x046005) AM_WRITE_LEGACY(amazon_scrolly_w)
- AM_RANGE(0x04600c, 0x04600d) AM_WRITE_LEGACY(amazon_sound_w)
+ AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w)
AM_RANGE(0x050000, 0x050fff) AM_WRITE_LEGACY(amazon_foreground_w) AM_BASE(m_videoram)
- AM_RANGE(0x070000, 0x070003) AM_READWRITE_LEGACY(amazon_protection_r, amazon_protection_w)
+ AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, terracre_state )
@@ -240,7 +238,7 @@ static ADDRESS_MAP_START( sound_3526_io_map, AS_IO, 8, terracre_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3526_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("dac1", dac_signed_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("dac2", dac_signed_w)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_clear_r)
+ AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r)
AM_RANGE(0x06, 0x06) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -249,7 +247,7 @@ static ADDRESS_MAP_START( sound_2203_io_map, AS_IO, 8, terracre_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ym1", ym2203_w)
AM_RANGE(0x02, 0x02) AM_DEVWRITE_LEGACY("dac1", dac_signed_w)
AM_RANGE(0x03, 0x03) AM_DEVWRITE_LEGACY("dac2", dac_signed_w)
- AM_RANGE(0x04, 0x04) AM_READ_LEGACY(soundlatch_clear_r)
+ AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r)
AM_RANGE(0x06, 0x06) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
@@ -1026,7 +1024,7 @@ static DRIVER_INIT( horekid )
{
terracre_state *state = machine.driver_data<terracre_state>();
state->m_mpProtData = mHoreKidProtData;
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x44004, 0x44005, FUNC(horekid_IN2_r));
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x44004, 0x44005, read16_delegate(FUNC(terracre_state::horekid_IN2_r),state));
}
/* YEAR, NAME, PARENT, MACHINE, INPUT, INIT, MONITOR, COMPANY, FULLNAME, FLAGS */
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index ca67d9a153d..6b06a6f82cc 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -61,31 +61,29 @@ WRITE16_HANDLER( tetrisp2_systemregs_w )
#define ROCKN_TIMER_BASE attotime::from_nsec(500000)
-static WRITE16_HANDLER( rockn_systemregs_w )
+WRITE16_MEMBER(tetrisp2_state::rockn_systemregs_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_systemregs[offset] = data;
+ m_systemregs[offset] = data;
if (offset == 0x0c)
{
attotime timer = ROCKN_TIMER_BASE * (4096 - data);
- state->m_rockn_timer_l4->adjust(timer, 0, timer);
+ m_rockn_timer_l4->adjust(timer, 0, timer);
}
}
}
-static WRITE16_HANDLER( rocknms_sub_systemregs_w )
+WRITE16_MEMBER(tetrisp2_state::rocknms_sub_systemregs_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
if (ACCESSING_BITS_0_7)
{
- state->m_rocknms_sub_systemregs[offset] = data;
+ m_rocknms_sub_systemregs[offset] = data;
if (offset == 0x0c)
{
attotime timer = ROCKN_TIMER_BASE * (4096 - data);
- state->m_rockn_timer_sub_l4->adjust(timer, 0, timer);
+ m_rockn_timer_sub_l4->adjust(timer, 0, timer);
}
}
}
@@ -99,19 +97,17 @@ static WRITE16_HANDLER( rocknms_sub_systemregs_w )
***************************************************************************/
-static READ16_HANDLER( rockn_adpcmbank_r )
+READ16_MEMBER(tetrisp2_state::rockn_adpcmbank_r)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
- return ((state->m_rockn_adpcmbank & 0xf0ff) | (state->m_rockn_protectdata << 8));
+ return ((m_rockn_adpcmbank & 0xf0ff) | (m_rockn_protectdata << 8));
}
-static WRITE16_HANDLER( rockn_adpcmbank_w )
+WRITE16_MEMBER(tetrisp2_state::rockn_adpcmbank_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
- UINT8 *SNDROM = space->machine().region("ymz")->base();
+ UINT8 *SNDROM = machine().region("ymz")->base();
int bank;
- state->m_rockn_adpcmbank = data;
+ m_rockn_adpcmbank = data;
bank = ((data & 0x001f) >> 2);
if (bank > 7)
@@ -123,10 +119,9 @@ static WRITE16_HANDLER( rockn_adpcmbank_w )
memcpy(&SNDROM[0x0400000], &SNDROM[0x1000000 + (0x0c00000 * bank)], 0x0c00000);
}
-static WRITE16_HANDLER( rockn2_adpcmbank_w )
+WRITE16_MEMBER(tetrisp2_state::rockn2_adpcmbank_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
- UINT8 *SNDROM = space->machine().region("ymz")->base();
+ UINT8 *SNDROM = machine().region("ymz")->base();
int bank;
char banktable[9][3]=
@@ -142,7 +137,7 @@ static WRITE16_HANDLER( rockn2_adpcmbank_w )
{ 0, 5, 14 }, // bank $20
};
- state->m_rockn_adpcmbank = data;
+ m_rockn_adpcmbank = data;
bank = ((data & 0x003f) >> 2);
if (bank > 8)
@@ -157,41 +152,39 @@ static WRITE16_HANDLER( rockn2_adpcmbank_w )
}
-static READ16_HANDLER( rockn_soundvolume_r )
+READ16_MEMBER(tetrisp2_state::rockn_soundvolume_r)
{
return 0xffff;
}
-static WRITE16_HANDLER( rockn_soundvolume_w )
+WRITE16_MEMBER(tetrisp2_state::rockn_soundvolume_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
- state->m_rockn_soundvolume = data;
+ m_rockn_soundvolume = data;
}
-static WRITE16_HANDLER( nndmseal_sound_bank_w )
+WRITE16_MEMBER(tetrisp2_state::nndmseal_sound_bank_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
if (ACCESSING_BITS_0_7)
{
- UINT8 *rom = space->machine().region("okisource")->base();
+ UINT8 *rom = machine().region("okisource")->base();
if (data & 0x04)
{
- state->m_bank_lo = data & 0x03;
+ m_bank_lo = data & 0x03;
- memcpy(space->machine().region("oki")->base(), rom + (state->m_bank_lo * 0x80000), 0x20000);
+ memcpy(machine().region("oki")->base(), rom + (m_bank_lo * 0x80000), 0x20000);
-// logerror("PC:%06X sound bank_lo = %02X\n",cpu_get_pc(&space->device()),state->m_bank_lo);
+// logerror("PC:%06X sound bank_lo = %02X\n",cpu_get_pc(&space.device()),m_bank_lo);
}
else
{
- state->m_bank_hi = data & 0x03;
+ m_bank_hi = data & 0x03;
- memcpy(space->machine().region("oki")->base() + 0x20000, rom + (state->m_bank_lo * 0x80000) + (state->m_bank_hi * 0x20000), 0x20000);
+ memcpy(machine().region("oki")->base() + 0x20000, rom + (m_bank_lo * 0x80000) + (m_bank_hi * 0x20000), 0x20000);
-// logerror("PC:%06X sound bank_hi = %02X\n",cpu_get_pc(&space->device()),state->m_bank_hi);
+// logerror("PC:%06X sound bank_hi = %02X\n",cpu_get_pc(&space.device()),m_bank_hi);
}
}
}
@@ -204,11 +197,11 @@ static WRITE16_HANDLER( nndmseal_sound_bank_w )
***************************************************************************/
-static READ16_HANDLER( tetrisp2_ip_1_word_r )
+READ16_MEMBER(tetrisp2_state::tetrisp2_ip_1_word_r)
{
- return ( input_port_read(space->machine(), "SYSTEM") & 0xfcff ) |
- ( space->machine().rand() & ~0xfcff ) |
- ( 1 << (8 + (space->machine().rand()&1)) );
+ return ( input_port_read(machine(), "SYSTEM") & 0xfcff ) |
+ ( machine().rand() & ~0xfcff ) |
+ ( 1 << (8 + (machine().rand()&1)) );
}
@@ -236,10 +229,9 @@ WRITE16_HANDLER( tetrisp2_nvram_w )
COMBINE_DATA(&state->m_nvram[offset]);
}
-static READ16_HANDLER( rockn_nvram_r )
+READ16_MEMBER(tetrisp2_state::rockn_nvram_r)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
- return state->m_nvram[offset];
+ return m_nvram[offset];
}
@@ -252,17 +244,15 @@ static READ16_HANDLER( rockn_nvram_r )
***************************************************************************/
-static READ16_HANDLER( rocknms_main2sub_r )
+READ16_MEMBER(tetrisp2_state::rocknms_main2sub_r)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
- return state->m_rocknms_main2sub;
+ return m_rocknms_main2sub;
}
-static WRITE16_HANDLER( rocknms_main2sub_w )
+WRITE16_MEMBER(tetrisp2_state::rocknms_main2sub_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
if (ACCESSING_BITS_0_7)
- state->m_rocknms_main2sub = (data ^ 0xffff);
+ m_rocknms_main2sub = (data ^ 0xffff);
}
static CUSTOM_INPUT( rocknms_main2sub_status_r )
@@ -271,17 +261,16 @@ static CUSTOM_INPUT( rocknms_main2sub_status_r )
return state->m_rocknms_sub2main & 0x0003;
}
-static WRITE16_HANDLER( rocknms_sub2main_w )
+WRITE16_MEMBER(tetrisp2_state::rocknms_sub2main_w)
{
- tetrisp2_state *state = space->machine().driver_data<tetrisp2_state>();
if (ACCESSING_BITS_0_7)
- state->m_rocknms_sub2main = (data ^ 0xffff);
+ m_rocknms_sub2main = (data ^ 0xffff);
}
-static WRITE16_HANDLER( tetrisp2_coincounter_w )
+WRITE16_MEMBER(tetrisp2_state::tetrisp2_coincounter_w)
{
- coin_counter_w( space->machine(), 0, (data & 0x0001));
+ coin_counter_w( machine(), 0, (data & 0x0001));
}
@@ -308,9 +297,9 @@ static ADDRESS_MAP_START( tetrisp2_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_rot_w) AM_BASE(m_vram_rot) // Rotation
AM_RANGE(0x650000, 0x651fff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_rot_w) // Rotation (mirror)
AM_RANGE(0x800000, 0x800003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound
- AM_RANGE(0x900000, 0x903fff) AM_READWRITE_LEGACY(tetrisp2_nvram_r, tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
- AM_RANGE(0x904000, 0x907fff) AM_READWRITE_LEGACY(tetrisp2_nvram_r, tetrisp2_nvram_w) // NVRAM (mirror)
- AM_RANGE(0xb00000, 0xb00001) AM_WRITE_LEGACY(tetrisp2_coincounter_w) // Coin Counter
+ AM_RANGE(0x900000, 0x903fff) AM_READ_LEGACY(tetrisp2_nvram_r) AM_WRITE_LEGACY(tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
+ AM_RANGE(0x904000, 0x907fff) AM_READ_LEGACY(tetrisp2_nvram_r) AM_WRITE_LEGACY(tetrisp2_nvram_w) // NVRAM (mirror)
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(tetrisp2_coincounter_w) // Coin Counter
AM_RANGE(0xb20000, 0xb20001) AM_WRITENOP // ???
AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(m_scroll_fg) // Foreground Scrolling
AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(m_scroll_bg) // Background Scrolling
@@ -321,31 +310,31 @@ static ADDRESS_MAP_START( tetrisp2_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
AM_RANGE(0xbe0000, 0xbe0001) AM_READNOP // INT-level1 dummy read
AM_RANGE(0xbe0002, 0xbe0003) AM_READ_PORT("PLAYERS") // Inputs
- AM_RANGE(0xbe0004, 0xbe0005) AM_READ_LEGACY(tetrisp2_ip_1_word_r) // Inputs & protection
+ AM_RANGE(0xbe0004, 0xbe0005) AM_READ(tetrisp2_ip_1_word_r) // Inputs & protection
AM_RANGE(0xbe0008, 0xbe0009) AM_READ_PORT("DSW") // Inputs
AM_RANGE(0xbe000a, 0xbe000b) AM_READ_LEGACY(watchdog_reset16_r) // Watchdog
ADDRESS_MAP_END
-static WRITE16_HANDLER( nndmseal_coincounter_w )
+WRITE16_MEMBER(tetrisp2_state::nndmseal_coincounter_w)
{
if (ACCESSING_BITS_0_7)
{
- coin_counter_w( space->machine(), 0, data & 0x0001 );
+ coin_counter_w( machine(), 0, data & 0x0001 );
// data & 0x0004 ?
- coin_lockout_w( space->machine(), 0,(~data) & 0x0008 );
+ coin_lockout_w( machine(), 0,(~data) & 0x0008 );
}
if (ACCESSING_BITS_8_15)
{
- set_led_status( space->machine(), 0, data & 0x1000 ); // +
- set_led_status( space->machine(), 1, data & 0x2000 ); // -
- set_led_status( space->machine(), 2, data & 0x4000 ); // Cancel
- set_led_status( space->machine(), 3, data & 0x8000 ); // OK
+ set_led_status( machine(), 0, data & 0x1000 ); // +
+ set_led_status( machine(), 1, data & 0x2000 ); // -
+ set_led_status( machine(), 2, data & 0x4000 ); // Cancel
+ set_led_status( machine(), 3, data & 0x8000 ); // OK
}
// popmessage("%04x",data);
}
-static WRITE16_HANDLER( nndmseal_b20000_w )
+WRITE16_MEMBER(tetrisp2_state::nndmseal_b20000_w)
{
// leds?
// popmessage("%04x",data);
@@ -372,8 +361,8 @@ static ADDRESS_MAP_START( nndmseal_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x900000, 0x903fff) AM_READWRITE_LEGACY(tetrisp2_nvram_r, tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
- AM_RANGE(0xb00000, 0xb00001) AM_WRITE_LEGACY(nndmseal_coincounter_w) // Coin Counter
- AM_RANGE(0xb20000, 0xb20001) AM_WRITE_LEGACY(nndmseal_b20000_w) // ???
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(nndmseal_coincounter_w) // Coin Counter
+ AM_RANGE(0xb20000, 0xb20001) AM_WRITE(nndmseal_b20000_w) // ???
AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(m_scroll_fg ) // Foreground Scrolling
AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(m_scroll_bg ) // Background Scrolling
@@ -381,9 +370,9 @@ static ADDRESS_MAP_START( nndmseal_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(m_rotregs) // Rotation Registers
- AM_RANGE(0xb80000, 0xb80001) AM_WRITE_LEGACY(nndmseal_sound_bank_w)
+ AM_RANGE(0xb80000, 0xb80001) AM_WRITE(nndmseal_sound_bank_w)
- AM_RANGE(0xba0000, 0xba001f) AM_WRITE_LEGACY(rockn_systemregs_w ) // system param
+ AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rockn_systemregs_w ) // system param
AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
@@ -409,18 +398,18 @@ static ADDRESS_MAP_START( rockn1_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x408000, 0x409fff) AM_RAM // ???
AM_RANGE(0x500000, 0x50ffff) AM_RAM // Line
AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_rot_w) AM_BASE(m_vram_rot) // Rotation
- AM_RANGE(0x900000, 0x903fff) AM_READWRITE_LEGACY(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
- AM_RANGE(0xa30000, 0xa30001) AM_READWRITE_LEGACY(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume
+ AM_RANGE(0x900000, 0x903fff) AM_READ(rockn_nvram_r) AM_WRITE_LEGACY(tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
+ AM_RANGE(0xa30000, 0xa30001) AM_READWRITE(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume
AM_RANGE(0xa40000, 0xa40003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound
- AM_RANGE(0xa44000, 0xa44001) AM_READWRITE_LEGACY(rockn_adpcmbank_r, rockn_adpcmbank_w) // Sound Bank
+ AM_RANGE(0xa44000, 0xa44001) AM_READWRITE(rockn_adpcmbank_r, rockn_adpcmbank_w) // Sound Bank
AM_RANGE(0xa48000, 0xa48001) AM_NOP // YMZ280 Reset
- AM_RANGE(0xb00000, 0xb00001) AM_WRITE_LEGACY(tetrisp2_coincounter_w) // Coin Counter
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(tetrisp2_coincounter_w) // Coin Counter
AM_RANGE(0xb20000, 0xb20001) AM_NOP // ???
AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(m_scroll_fg) // Foreground Scrolling
AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(m_scroll_bg) // Background Scrolling
AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP // scr_size
AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(m_rotregs) // Rotation Registers
- AM_RANGE(0xba0000, 0xba001f) AM_WRITE_LEGACY(rockn_systemregs_w) // system param
+ AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rockn_systemregs_w) // system param
AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
AM_RANGE(0xbe0000, 0xbe0001) AM_READNOP // INT-level1 dummy read
@@ -443,18 +432,18 @@ static ADDRESS_MAP_START( rockn2_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_fg_w) AM_BASE(m_vram_fg) // Foreground
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_bg_w) AM_BASE(m_vram_bg) // Background
AM_RANGE(0x808000, 0x809fff) AM_RAM // ???
- AM_RANGE(0x900000, 0x903fff) AM_READWRITE_LEGACY(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
- AM_RANGE(0xa30000, 0xa30001) AM_READWRITE_LEGACY(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume
+ AM_RANGE(0x900000, 0x903fff) AM_READ(rockn_nvram_r) AM_WRITE_LEGACY(tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
+ AM_RANGE(0xa30000, 0xa30001) AM_READWRITE(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume
AM_RANGE(0xa40000, 0xa40003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound
- AM_RANGE(0xa44000, 0xa44001) AM_READWRITE_LEGACY(rockn_adpcmbank_r, rockn2_adpcmbank_w) // Sound Bank
+ AM_RANGE(0xa44000, 0xa44001) AM_READWRITE(rockn_adpcmbank_r, rockn2_adpcmbank_w) // Sound Bank
AM_RANGE(0xa48000, 0xa48001) AM_WRITENOP // YMZ280 Reset
- AM_RANGE(0xb00000, 0xb00001) AM_WRITE_LEGACY(tetrisp2_coincounter_w) // Coin Counter
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(tetrisp2_coincounter_w) // Coin Counter
AM_RANGE(0xb20000, 0xb20001) AM_WRITENOP // ???
AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(m_scroll_fg) // Foreground Scrolling
AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(m_scroll_bg) // Background Scrolling
AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP // scr_size
AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(m_rotregs) // Rotation Registers
- AM_RANGE(0xba0000, 0xba001f) AM_WRITE_LEGACY(rockn_systemregs_w) // system param
+ AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rockn_systemregs_w) // system param
AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
AM_RANGE(0xbe0000, 0xbe0001) AM_READNOP // INT-level1 dummy read
@@ -477,19 +466,19 @@ static ADDRESS_MAP_START( rocknms_main_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_fg_w) AM_BASE(m_vram_fg) // Foreground
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE_LEGACY(tetrisp2_vram_bg_w) AM_BASE(m_vram_bg) // Background
// AM_RANGE(0x808000, 0x809fff) AM_RAM // ???
- AM_RANGE(0x900000, 0x903fff) AM_READWRITE_LEGACY(rockn_nvram_r, tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
- AM_RANGE(0xa30000, 0xa30001) AM_READWRITE_LEGACY(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume
+ AM_RANGE(0x900000, 0x903fff) AM_READ(rockn_nvram_r) AM_WRITE_LEGACY(tetrisp2_nvram_w) AM_BASE(m_nvram) AM_SHARE("nvram") // NVRAM
+ AM_RANGE(0xa30000, 0xa30001) AM_READWRITE(rockn_soundvolume_r, rockn_soundvolume_w) // Sound Volume
AM_RANGE(0xa40000, 0xa40003) AM_DEVREADWRITE8_LEGACY("ymz", ymz280b_r, ymz280b_w, 0x00ff) // Sound
- AM_RANGE(0xa44000, 0xa44001) AM_READWRITE_LEGACY(rockn_adpcmbank_r, rockn_adpcmbank_w) // Sound Bank
+ AM_RANGE(0xa44000, 0xa44001) AM_READWRITE(rockn_adpcmbank_r, rockn_adpcmbank_w) // Sound Bank
AM_RANGE(0xa48000, 0xa48001) AM_WRITENOP // YMZ280 Reset
- AM_RANGE(0xa00000, 0xa00001) AM_WRITE_LEGACY(rocknms_main2sub_w) // MAIN -> SUB Communication
- AM_RANGE(0xb00000, 0xb00001) AM_WRITE_LEGACY(tetrisp2_coincounter_w) // Coin Counter
+ AM_RANGE(0xa00000, 0xa00001) AM_WRITE(rocknms_main2sub_w) // MAIN -> SUB Communication
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(tetrisp2_coincounter_w) // Coin Counter
AM_RANGE(0xb20000, 0xb20001) AM_WRITENOP // ???
AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(m_scroll_fg) // Foreground Scrolling
AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(m_scroll_bg) // Background Scrolling
AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP // scr_size
AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(m_rotregs) // Rotation Registers
- AM_RANGE(0xba0000, 0xba001f) AM_WRITE_LEGACY(rockn_systemregs_w) // system param
+ AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rockn_systemregs_w) // system param
AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
AM_RANGE(0xbe0000, 0xbe0001) AM_READNOP // INT-level1 dummy read
@@ -513,21 +502,21 @@ static ADDRESS_MAP_START( rocknms_sub_map, AS_PROGRAM, 16, tetrisp2_state )
AM_RANGE(0x804000, 0x807fff) AM_RAM_WRITE_LEGACY(rocknms_sub_vram_bg_w) AM_BASE(m_rocknms_sub_vram_bg) // Background
// AM_RANGE(0x808000, 0x809fff) AM_RAM // ???
AM_RANGE(0x900000, 0x907fff) AM_RAM // NVRAM
- AM_RANGE(0xa30000, 0xa30001) AM_WRITE_LEGACY(rockn_soundvolume_w) // Sound Volume
+ AM_RANGE(0xa30000, 0xa30001) AM_WRITE(rockn_soundvolume_w) // Sound Volume
AM_RANGE(0xa40000, 0xa40003) AM_DEVWRITE8_LEGACY("ymz", ymz280b_w, 0x00ff) // Sound
- AM_RANGE(0xa44000, 0xa44001) AM_WRITE_LEGACY(rockn_adpcmbank_w) // Sound Bank
+ AM_RANGE(0xa44000, 0xa44001) AM_WRITE(rockn_adpcmbank_w) // Sound Bank
AM_RANGE(0xa48000, 0xa48001) AM_WRITENOP // YMZ280 Reset
- AM_RANGE(0xb00000, 0xb00001) AM_WRITE_LEGACY(rocknms_sub2main_w) // MAIN <- SUB Communication
+ AM_RANGE(0xb00000, 0xb00001) AM_WRITE(rocknms_sub2main_w) // MAIN <- SUB Communication
AM_RANGE(0xb20000, 0xb20001) AM_WRITENOP // ???
AM_RANGE(0xb40000, 0xb4000b) AM_WRITEONLY AM_BASE(m_rocknms_sub_scroll_fg) // Foreground Scrolling
AM_RANGE(0xb40010, 0xb4001b) AM_WRITEONLY AM_BASE(m_rocknms_sub_scroll_bg) // Background Scrolling
AM_RANGE(0xb4003e, 0xb4003f) AM_WRITENOP // scr_size
AM_RANGE(0xb60000, 0xb6002f) AM_WRITEONLY AM_BASE(m_rocknms_sub_rotregs) // Rotation Registers
- AM_RANGE(0xba0000, 0xba001f) AM_WRITE_LEGACY(rocknms_sub_systemregs_w) // system param
+ AM_RANGE(0xba0000, 0xba001f) AM_WRITE(rocknms_sub_systemregs_w) // system param
AM_RANGE(0xba001a, 0xba001b) AM_WRITENOP // Lev 4 irq ack
AM_RANGE(0xba001e, 0xba001f) AM_WRITENOP // Lev 2 irq ack
// AM_RANGE(0xbe0000, 0xbe0001) AM_READNOP // INT-level1 dummy read
- AM_RANGE(0xbe0002, 0xbe0003) AM_READWRITE_LEGACY(rocknms_main2sub_r, rocknms_sub2main_w) // MAIN <-> SUB Communication
+ AM_RANGE(0xbe0002, 0xbe0003) AM_READWRITE(rocknms_main2sub_r, rocknms_sub2main_w) // MAIN <-> SUB Communication
AM_RANGE(0xbe000a, 0xbe000b) AM_READ_LEGACY(watchdog_reset16_r ) // Watchdog
ADDRESS_MAP_END
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index b9ad2679c59..fbab938bea1 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -38,16 +38,15 @@ Notes:
***************************************************************************/
-static WRITE8_HANDLER( thedeep_nmi_w )
+WRITE8_MEMBER(thedeep_state::thedeep_nmi_w)
{
- thedeep_state *state = space->machine().driver_data<thedeep_state>();
- state->m_nmi_enable = data;
+ m_nmi_enable = data;
}
-static WRITE8_HANDLER( thedeep_sound_w )
+WRITE8_MEMBER(thedeep_state::thedeep_sound_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -65,18 +64,17 @@ static MACHINE_RESET( thedeep )
state->m_rombank = -1;
}
-static WRITE8_HANDLER( thedeep_protection_w )
+WRITE8_MEMBER(thedeep_state::thedeep_protection_w)
{
- thedeep_state *state = space->machine().driver_data<thedeep_state>();
- state->m_protection_command = data;
- switch (state->m_protection_command)
+ m_protection_command = data;
+ switch (m_protection_command)
{
case 0x11:
- flip_screen_set(space->machine(), 1);
+ flip_screen_set(machine(), 1);
break;
case 0x20:
- flip_screen_set(space->machine(), 0);
+ flip_screen_set(machine(), 0);
break;
case 0x30:
@@ -85,28 +83,28 @@ static WRITE8_HANDLER( thedeep_protection_w )
case 0x33:
{
UINT8 *rom;
- int new_rombank = state->m_protection_command & 3;
- if (state->m_rombank == new_rombank) break;
- state->m_rombank = new_rombank;
- rom = space->machine().region("maincpu")->base();
- memory_set_bankptr(space->machine(), "bank1", rom + 0x10000 + state->m_rombank * 0x4000);
+ int new_rombank = m_protection_command & 3;
+ if (m_rombank == new_rombank) break;
+ m_rombank = new_rombank;
+ rom = machine().region("maincpu")->base();
+ memory_set_bankptr(machine(), "bank1", rom + 0x10000 + m_rombank * 0x4000);
/* there's code which falls through from the fixed ROM to bank #1, I have to */
/* copy it there otherwise the CPU bank switching support will not catch it. */
- memcpy(rom + 0x08000, rom + 0x10000 + state->m_rombank * 0x4000, 0x4000);
+ memcpy(rom + 0x08000, rom + 0x10000 + m_rombank * 0x4000, 0x4000);
}
break;
case 0x59:
{
- if (state->m_protection_index < 0)
- state->m_protection_index = 0;
+ if (m_protection_index < 0)
+ m_protection_index = 0;
- if ( state->m_protection_index < 0x19b )
+ if ( m_protection_index < 0x19b )
// d000-d00c: hl += a * b
// d00d-d029: input a (e.g. $39) output hl (e.g. h=$03 l=$09).
-// Replace trainling 0's with space ($10). 00 -> ' '
+// Replace trainling 0's with &space ($10). 00 -> ' '
// d02a-d039: input a (e.g. $39) output hl (e.g. h=$03 l=$09).
-// Replace trainling 0's with space ($10). 00 -> ' 0'
+// Replace trainling 0's with &space ($10). 00 -> ' 0'
// d03a-d046: input a (e.g. $39) output hl (e.g. h=$03 l=$09). 00 -> '00'
// d047-d086: a /= e (e can be 0!)
// d087-d0a4: print ASCII string from HL to IX (sub $30 to every char)
@@ -118,36 +116,34 @@ static WRITE8_HANDLER( thedeep_protection_w )
// d166-d174: hl = (hl + 2*a)
// d175-d181: hl *= e (e must be non zero)
// d182-d19a: hl /= de
- state->m_protection_data = space->machine().region("mcu")->base()[0x185+state->m_protection_index++];
+ m_protection_data = machine().region("mcu")->base()[0x185+m_protection_index++];
else
- state->m_protection_data = 0xc9;
+ m_protection_data = 0xc9;
- state->m_protection_irq = 1;
+ m_protection_irq = 1;
}
break;
default:
- logerror( "pc %04x: protection_command %02x\n", cpu_get_pc(&space->device()),state->m_protection_command);
+ logerror( "pc %04x: protection_command %02x\n", cpu_get_pc(&space.device()),m_protection_command);
}
}
-static READ8_HANDLER( thedeep_e004_r )
+READ8_MEMBER(thedeep_state::thedeep_e004_r)
{
- thedeep_state *state = space->machine().driver_data<thedeep_state>();
- return state->m_protection_irq ? 1 : 0;
+ return m_protection_irq ? 1 : 0;
}
-static READ8_HANDLER( thedeep_protection_r )
+READ8_MEMBER(thedeep_state::thedeep_protection_r)
{
- thedeep_state *state = space->machine().driver_data<thedeep_state>();
- state->m_protection_irq = 0;
- return state->m_protection_data;
+ m_protection_irq = 0;
+ return m_protection_data;
}
-static WRITE8_HANDLER( thedeep_e100_w )
+WRITE8_MEMBER(thedeep_state::thedeep_e100_w)
{
if (data != 1)
- logerror("pc %04x: e100 = %02x\n", cpu_get_pc(&space->device()),data);
+ logerror("pc %04x: e100 = %02x\n", cpu_get_pc(&space.device()),data);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, thedeep_state )
@@ -155,14 +151,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, thedeep_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // ROM (banked)
AM_RANGE(0xc000, 0xcfff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM // RAM (MCU data copied here)
- AM_RANGE(0xe000, 0xe000) AM_READWRITE_LEGACY(thedeep_protection_r, thedeep_protection_w) // To MCU
- AM_RANGE(0xe004, 0xe004) AM_READWRITE_LEGACY(thedeep_e004_r, thedeep_nmi_w) //
+ AM_RANGE(0xe000, 0xe000) AM_READWRITE(thedeep_protection_r, thedeep_protection_w) // To MCU
+ AM_RANGE(0xe004, 0xe004) AM_READWRITE(thedeep_e004_r, thedeep_nmi_w) //
AM_RANGE(0xe008, 0xe008) AM_READ_PORT("e008") // P1 (Inputs)
AM_RANGE(0xe009, 0xe009) AM_READ_PORT("e009") // P2
AM_RANGE(0xe00a, 0xe00a) AM_READ_PORT("e00a") // DSW1
AM_RANGE(0xe00b, 0xe00b) AM_READ_PORT("e00b") // DSW2
- AM_RANGE(0xe00c, 0xe00c) AM_WRITE_LEGACY(thedeep_sound_w) // To Sound CPU
- AM_RANGE(0xe100, 0xe100) AM_WRITE_LEGACY(thedeep_e100_w) // ?
+ AM_RANGE(0xe00c, 0xe00c) AM_WRITE(thedeep_sound_w) // To Sound CPU
+ AM_RANGE(0xe100, 0xe100) AM_WRITE(thedeep_e100_w) // ?
AM_RANGE(0xe210, 0xe213) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) // Sprites
AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE_LEGACY(thedeep_vram_1_w) AM_BASE(m_vram_1) // Text Layer
@@ -209,14 +205,14 @@ static void thedeep_maincpu_bankswitch(running_machine &machine,UINT8 bank_trig)
}
-static WRITE8_HANDLER( thedeep_p1_w )
+WRITE8_MEMBER(thedeep_state::thedeep_p1_w)
{
- flip_screen_set(space->machine(), (data & 1) ^ 1);
- thedeep_maincpu_bankswitch(space->machine(),(data & 6) >> 1);
+ flip_screen_set(machine(), (data & 1) ^ 1);
+ thedeep_maincpu_bankswitch(machine(),(data & 6) >> 1);
logerror("P1 %02x\n",data);
}
-static READ8_HANDLER( thedeep_from_main_r )
+READ8_MEMBER(thedeep_state::thedeep_from_main_r)
{
static UINT8 res;
@@ -226,46 +222,45 @@ static READ8_HANDLER( thedeep_from_main_r )
return 0x20;
}
-static WRITE8_HANDLER( thedeep_to_main_w )
+WRITE8_MEMBER(thedeep_state::thedeep_to_main_w)
{
// ...
}
-static WRITE8_HANDLER( thedeep_p3_w )
+WRITE8_MEMBER(thedeep_state::thedeep_p3_w)
{
- thedeep_state *state = space->machine().driver_data<thedeep_state>();
/* bit 0 0->1 transition IRQ0 to main */
- if((!(state->m_mcu_p3_reg & 0x01)) && data & 0x01)
- device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
+ if((!(m_mcu_p3_reg & 0x01)) && data & 0x01)
+ device_set_input_line(m_maincpu, 0, HOLD_LINE);
/* bit 6 0->1 transition INT1 IRQ ACK */
- if((!(state->m_mcu_p3_reg & 0x40)) && data & 0x40)
- device_set_input_line(state->m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
+ if((!(m_mcu_p3_reg & 0x40)) && data & 0x40)
+ device_set_input_line(m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
/* bit 7 0->1 transition INT0 IRQ ACK */
- if((!(state->m_mcu_p3_reg & 0x80)) && data & 0x80)
- device_set_input_line(state->m_mcu, MCS51_INT0_LINE, CLEAR_LINE);
+ if((!(m_mcu_p3_reg & 0x80)) && data & 0x80)
+ device_set_input_line(m_mcu, MCS51_INT0_LINE, CLEAR_LINE);
- state->m_mcu_p3_reg = data;
+ m_mcu_p3_reg = data;
logerror("P3 %02x\n",data);
}
-static READ8_HANDLER( thedeep_p0_r )
+READ8_MEMBER(thedeep_state::thedeep_p0_r)
{
UINT8 coin_mux;
- coin_mux = ((input_port_read(space->machine(),"COINS") & 0x0e) == 0x0e); // bit 0 is hard-wired to ALL three coin latches
+ coin_mux = ((input_port_read(machine(),"COINS") & 0x0e) == 0x0e); // bit 0 is hard-wired to ALL three coin latches
- return (input_port_read(space->machine(),"COINS") & 0xfe) | (coin_mux & 1);
+ return (input_port_read(machine(),"COINS") & 0xfe) | (coin_mux & 1);
}
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, thedeep_state )
ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READ_LEGACY(thedeep_p0_r)
- AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) AM_WRITE_LEGACY(thedeep_p1_w)
- AM_RANGE(MCS51_PORT_P2,MCS51_PORT_P2) AM_READWRITE_LEGACY(thedeep_from_main_r,thedeep_to_main_w)
- AM_RANGE(MCS51_PORT_P3,MCS51_PORT_P3) AM_WRITE_LEGACY(thedeep_p3_w)
+ AM_RANGE(MCS51_PORT_P0,MCS51_PORT_P0) AM_READ(thedeep_p0_r)
+ AM_RANGE(MCS51_PORT_P1,MCS51_PORT_P1) AM_WRITE(thedeep_p1_w)
+ AM_RANGE(MCS51_PORT_P2,MCS51_PORT_P2) AM_READWRITE(thedeep_from_main_r,thedeep_to_main_w)
+ AM_RANGE(MCS51_PORT_P3,MCS51_PORT_P3) AM_WRITE(thedeep_p3_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 75dfa33f4fa..7773d26b3f2 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -135,22 +135,20 @@ HT-01B
#define VBSTART (224+16)
-static READ8_HANDLER( thepit_colorram_r )
+READ8_MEMBER(thepit_state::thepit_colorram_r)
{
- thepit_state *state = space->machine().driver_data<thepit_state>();
- return state->m_colorram[offset];
+ return m_colorram[offset];
}
-static WRITE8_HANDLER( thepit_sound_enable_w )
+WRITE8_MEMBER(thepit_state::thepit_sound_enable_w)
{
- space->machine().sound().system_enable(data);
+ machine().sound().system_enable(data);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(thepit_state::nmi_mask_w)
{
- thepit_state *state = space->machine().driver_data<thepit_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
@@ -164,10 +162,10 @@ static ADDRESS_MAP_START( thepit_main_map, AS_PROGRAM, 8, thepit_state )
AM_RANGE(0x9860, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(thepit_input_port_0_r) AM_WRITENOP // Not hooked up according to the schematics
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
- AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(nmi_mask_w)
AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized
AM_RANGE(0xb002, 0xb002) AM_WRITENOP // coin_lockout_w
- AM_RANGE(0xb003, 0xb003) AM_WRITE_LEGACY(thepit_sound_enable_w)
+ AM_RANGE(0xb003, 0xb003) AM_WRITE(thepit_sound_enable_w)
AM_RANGE(0xb004, 0xb005) AM_WRITENOP // Unused, but initialized
AM_RANGE(0xb006, 0xb006) AM_WRITE_LEGACY(thepit_flip_screen_x_w)
AM_RANGE(0xb007, 0xb007) AM_WRITE_LEGACY(thepit_flip_screen_y_w)
@@ -177,7 +175,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( intrepid_main_map, AS_PROGRAM, 8, thepit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x8c00, 0x8fff) AM_READWRITE_LEGACY(thepit_colorram_r, thepit_colorram_w) /* mirror for intrepi2 */
+ AM_RANGE(0x8c00, 0x8fff) AM_READ(thepit_colorram_r) AM_WRITE_LEGACY(thepit_colorram_w) /* mirror for intrepi2 */
AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE_LEGACY(thepit_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x9400, 0x97ff) AM_RAM_WRITE_LEGACY(thepit_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x9800, 0x983f) AM_MIRROR(0x0700) AM_RAM AM_BASE(m_attributesram)
@@ -185,10 +183,10 @@ static ADDRESS_MAP_START( intrepid_main_map, AS_PROGRAM, 8, thepit_state )
AM_RANGE(0x9860, 0x98ff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(thepit_input_port_0_r)
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("IN1")
- AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE_LEGACY(nmi_mask_w)
+ AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW") AM_WRITE(nmi_mask_w)
AM_RANGE(0xb001, 0xb001) AM_WRITENOP // Unused, but initialized
AM_RANGE(0xb002, 0xb002) AM_WRITENOP // coin_lockout_w
- AM_RANGE(0xb003, 0xb003) AM_WRITE_LEGACY(thepit_sound_enable_w)
+ AM_RANGE(0xb003, 0xb003) AM_WRITE(thepit_sound_enable_w)
AM_RANGE(0xb004, 0xb004) AM_WRITENOP // Unused, but initialized
AM_RANGE(0xb005, 0xb005) AM_WRITE_LEGACY(intrepid_graphics_bank_w)
AM_RANGE(0xb006, 0xb006) AM_WRITE_LEGACY(thepit_flip_screen_x_w)
@@ -1066,27 +1064,26 @@ ROM_END
*/
-static READ8_HANDLER( rtriv_question_r )
+READ8_MEMBER(thepit_state::rtriv_question_r)
{
- thepit_state *state = space->machine().driver_data<thepit_state>();
// Set-up the remap table for every 16 bytes
if((offset & 0xc00) == 0x800)
{
- state->m_remap_address[offset & 0x0f] = ((offset & 0xf0) >> 4) ^ 0x0f;
+ m_remap_address[offset & 0x0f] = ((offset & 0xf0) >> 4) ^ 0x0f;
}
// Select which rom to read and the high 5 bits of address
else if((offset & 0xc00) == 0x400)
{
- state->m_question_rom = (offset & 0x70) >> 4;
- state->m_question_address = ((offset & 0x80) << 3) | ((offset & 0x0f) << 11);
+ m_question_rom = (offset & 0x70) >> 4;
+ m_question_address = ((offset & 0x80) << 3) | ((offset & 0x0f) << 11);
}
// Read the actual byte from question roms
else if((offset & 0xc00) == 0xc00)
{
- UINT8 *ROM = space->machine().region("user1")->base();
+ UINT8 *ROM = machine().region("user1")->base();
int real_address;
- real_address = (0x8000 * state->m_question_rom) | state->m_question_address | (offset & 0x3f0) | state->m_remap_address[offset & 0x0f];
+ real_address = (0x8000 * m_question_rom) | m_question_address | (offset & 0x3f0) | m_remap_address[offset & 0x0f];
return ROM[real_address];
}
@@ -1097,7 +1094,8 @@ static READ8_HANDLER( rtriv_question_r )
static DRIVER_INIT( rtriv )
{
// Set-up the weirdest questions read ever done
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x4000, 0x4fff, FUNC(rtriv_question_r));
+ thepit_state *state = machine.driver_data<thepit_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x4000, 0x4fff, read8_delegate(FUNC(thepit_state::rtriv_question_r),state));
}
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index 6efc1ee537b..cb526b0f81f 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -93,10 +93,9 @@ static void tape_set_motor( samples_device *samples, int bOn )
/***********************************************************/
-static WRITE8_HANDLER( thief_input_select_w )
+WRITE8_MEMBER(thief_state::thief_input_select_w)
{
- thief_state *state = space->machine().driver_data<thief_state>();
- state->m_input_select = data;
+ m_input_select = data;
}
static WRITE8_DEVICE_HANDLER( tape_control_w )
@@ -138,15 +137,14 @@ static WRITE8_DEVICE_HANDLER( tape_control_w )
}
}
-static READ8_HANDLER( thief_io_r )
+READ8_MEMBER(thief_state::thief_io_r)
{
- thief_state *state = space->machine().driver_data<thief_state>();
- switch( state->m_input_select )
+ switch( m_input_select )
{
- case 0x01: return input_port_read(space->machine(), "DSW1");
- case 0x02: return input_port_read(space->machine(), "DSW2");
- case 0x04: return input_port_read(space->machine(), "P1");
- case 0x08: return input_port_read(space->machine(), "P2");
+ case 0x01: return input_port_read(machine(), "DSW1");
+ case 0x02: return input_port_read(machine(), "DSW2");
+ case 0x04: return input_port_read(machine(), "P1");
+ case 0x08: return input_port_read(machine(), "P2");
}
return 0x00;
}
@@ -174,8 +172,8 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, thief_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_WRITENOP /* watchdog */
AM_RANGE(0x10, 0x10) AM_WRITE_LEGACY(thief_video_control_w)
- AM_RANGE(0x30, 0x30) AM_WRITE_LEGACY(thief_input_select_w) /* 8255 */
- AM_RANGE(0x31, 0x31) AM_READ_LEGACY(thief_io_r) /* 8255 */
+ 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(0x40, 0x41) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x41, 0x41) AM_DEVREAD_LEGACY("ay1", ay8910_r)
diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c
index 25fb9b60481..0edd420be9b 100644
--- a/src/mame/drivers/thoop2.c
+++ b/src/mame/drivers/thoop2.c
@@ -49,26 +49,26 @@ static GFXDECODE_START( thoop2 )
GFXDECODE_END
-static WRITE16_HANDLER( OKIM6295_bankswitch_w )
+WRITE16_MEMBER(thoop2_state::OKIM6295_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("oki")->base();
+ UINT8 *RAM = machine().region("oki")->base();
if (ACCESSING_BITS_0_7){
memcpy(&RAM[0x30000], &RAM[0x40000 + (data & 0x0f)*0x10000], 0x10000);
}
}
-static WRITE16_HANDLER( thoop2_coin_w )
+WRITE16_MEMBER(thoop2_state::thoop2_coin_w)
{
if (ACCESSING_BITS_0_7){
switch ((offset >> 3)){
case 0x00: /* Coin Lockouts */
case 0x01:
- coin_lockout_w(space->machine(), (offset >> 3) & 0x01, ~data & 0x01);
+ coin_lockout_w(machine(), (offset >> 3) & 0x01, ~data & 0x01);
break;
case 0x02: /* Coin Counters */
case 0x03:
- coin_counter_w(space->machine(), (offset >> 3) & 0x01, data & 0x01);
+ coin_counter_w(machine(), (offset >> 3) & 0x01, data & 0x01);
break;
}
}
@@ -79,7 +79,7 @@ static WRITE16_HANDLER( thoop2_coin_w )
/* pretend that it's there */
-static READ16_HANDLER( DS5002FP_R )
+READ16_MEMBER(thoop2_state::DS5002FP_R)
{
return 0x55aa;
}
@@ -96,10 +96,10 @@ static ADDRESS_MAP_START( thoop2_map, AS_PROGRAM, 16, thoop2_state )
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
AM_RANGE(0x700008, 0x700009) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE_LEGACY(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
+ AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */
AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) /* OKI6295 data register */
- AM_RANGE(0x70000a, 0x70005b) AM_WRITE_LEGACY(thoop2_coin_w) /* Coin Counters + Coin Lockout */
- AM_RANGE(0xfeff00, 0xfeff01) AM_READ_LEGACY(DS5002FP_R)
+ AM_RANGE(0x70000a, 0x70005b) AM_WRITE(thoop2_coin_w) /* Coin Counters + Coin Lockout */
+ AM_RANGE(0xfeff00, 0xfeff01) AM_READ(DS5002FP_R)
AM_RANGE(0xfeff02, 0xfeff03) AM_WRITENOP /* pf: 0xfeff02 and 0xfeff03 need to remain zero always */
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM (partially shared with DS5002FP) */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 7a64e26889c..dfff09f573d 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -35,64 +35,60 @@ static TIMER_CALLBACK( thunderx_firq_callback )
device_set_input_line(state->m_maincpu, KONAMI_FIRQ_LINE, HOLD_LINE);
}
-static READ8_HANDLER( scontra_bankedram_r )
+READ8_MEMBER(thunderx_state::scontra_bankedram_r)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- if (state->m_palette_selected)
- return space->machine().generic.paletteram.u8[offset];
+ if (m_palette_selected)
+ return machine().generic.paletteram.u8[offset];
else
- return state->m_ram[offset];
+ return m_ram[offset];
}
-static WRITE8_HANDLER( scontra_bankedram_w )
+WRITE8_MEMBER(thunderx_state::scontra_bankedram_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- if (state->m_palette_selected)
+ if (m_palette_selected)
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
else
- state->m_ram[offset] = data;
+ m_ram[offset] = data;
}
-static READ8_HANDLER( thunderx_bankedram_r )
+READ8_MEMBER(thunderx_state::thunderx_bankedram_r)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- if (state->m_rambank & 0x01)
- return state->m_ram[offset];
- else if (state->m_rambank & 0x10)
+ if (m_rambank & 0x01)
+ return m_ram[offset];
+ else if (m_rambank & 0x10)
{
- if (state->m_pmcbank)
+ if (m_pmcbank)
{
-// logerror("%04x read pmcram %04x\n",cpu_get_pc(&space->device()),offset);
- return state->m_pmcram[offset];
+// logerror("%04x read pmcram %04x\n",cpu_get_pc(&space.device()),offset);
+ return m_pmcram[offset];
}
else
{
- logerror("%04x read pmc internal ram %04x\n",cpu_get_pc(&space->device()),offset);
+ logerror("%04x read pmc internal ram %04x\n",cpu_get_pc(&space.device()),offset);
return 0;
}
}
else
- return space->machine().generic.paletteram.u8[offset];
+ return machine().generic.paletteram.u8[offset];
}
-static WRITE8_HANDLER( thunderx_bankedram_w )
+WRITE8_MEMBER(thunderx_state::thunderx_bankedram_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- if (state->m_rambank & 0x01)
- state->m_ram[offset] = data;
- else if (state->m_rambank & 0x10)
+ if (m_rambank & 0x01)
+ m_ram[offset] = data;
+ else if (m_rambank & 0x10)
{
- if (state->m_pmcbank)
+ if (m_pmcbank)
{
- logerror("%04x pmcram %04x = %02x\n",cpu_get_pc(&space->device()),offset,data);
- state->m_pmcram[offset] = data;
+ logerror("%04x pmcram %04x = %02x\n",cpu_get_pc(&space.device()),offset,data);
+ m_pmcram[offset] = data;
}
else
- logerror("%04x pmc internal ram %04x = %02x\n",cpu_get_pc(&space->device()),offset,data);
+ logerror("%04x pmc internal ram %04x = %02x\n",cpu_get_pc(&space.device()),offset,data);
}
else
paletteram_xBBBBBGGGGGRRRRR_be_w(space, offset, data);
@@ -289,80 +285,75 @@ static void calculate_collisions( running_machine &machine )
run_collisions(machine, X0, Y0, X1, Y1, CM, HM);
}
-static READ8_HANDLER( thunderx_1f98_r )
+READ8_MEMBER(thunderx_state::thunderx_1f98_r)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- return state->m_1f98_data;
+ return m_1f98_data;
}
-static WRITE8_HANDLER( thunderx_1f98_w )
+WRITE8_MEMBER(thunderx_state::thunderx_1f98_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- // logerror("%04x: 1f98_w %02x\n", cpu_get_pc(&space->device()),data);
+ // logerror("%04x: 1f98_w %02x\n", cpu_get_pc(&space.device()),data);
/* bit 0 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE);
/* bit 1 = PMC-BK */
- state->m_pmcbank = (data & 0x02) >> 1;
+ m_pmcbank = (data & 0x02) >> 1;
/* bit 2 = do collision detection when 0->1 */
- if ((data & 4) && !(state->m_1f98_data & 4))
+ if ((data & 4) && !(m_1f98_data & 4))
{
- calculate_collisions(space->machine());
+ calculate_collisions(machine());
/* 100 cycle delay is arbitrary */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(100), FUNC(thunderx_firq_callback));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(100), FUNC(thunderx_firq_callback));
}
- state->m_1f98_data = data;
+ m_1f98_data = data;
}
-static WRITE8_HANDLER( scontra_bankswitch_w )
+WRITE8_MEMBER(thunderx_state::scontra_bankswitch_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
int offs;
-//logerror("%04x: bank switch %02x\n",cpu_get_pc(&space->device()),data);
+//logerror("%04x: bank switch %02x\n",cpu_get_pc(&space.device()),data);
/* bits 0-3 ROM bank */
offs = 0x10000 + (data & 0x0f)*0x2000;
- memory_set_bankptr(space->machine(), "bank1", &RAM[offs] );
+ memory_set_bankptr(machine(), "bank1", &RAM[offs] );
/* bit 4 select work RAM or palette RAM at 5800-5fff */
- state->m_palette_selected = ~data & 0x10;
+ m_palette_selected = ~data & 0x10;
/* bits 5/6 coin counters */
- coin_counter_w(space->machine(), 0, data & 0x20);
- coin_counter_w(space->machine(), 1, data & 0x40);
+ coin_counter_w(machine(), 0, data & 0x20);
+ coin_counter_w(machine(), 1, data & 0x40);
/* bit 7 controls layer priority */
- state->m_priority = data & 0x80;
+ m_priority = data & 0x80;
}
-static WRITE8_HANDLER( thunderx_videobank_w )
+WRITE8_MEMBER(thunderx_state::thunderx_videobank_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- //logerror("%04x: select video ram bank %02x\n",cpu_get_pc(&space->device()),data);
+ //logerror("%04x: select video ram bank %02x\n",cpu_get_pc(&space.device()),data);
/* 0x01 = work RAM at 4000-5fff */
/* 0x00 = palette at 5800-5fff */
/* 0x10 = unknown RAM at 5800-5fff */
- state->m_rambank = data;
+ m_rambank = data;
/* bits 1/2 coin counters */
- coin_counter_w(space->machine(), 0, data & 0x02);
- coin_counter_w(space->machine(), 1, data & 0x04);
+ coin_counter_w(machine(), 0, data & 0x02);
+ coin_counter_w(machine(), 1, data & 0x04);
/* bit 3 controls layer priority (seems to be always 1) */
- state->m_priority = data & 0x08;
+ m_priority = data & 0x08;
}
-static WRITE8_HANDLER( thunderx_sh_irqtrigger_w )
+WRITE8_MEMBER(thunderx_state::thunderx_sh_irqtrigger_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- 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);
}
static WRITE8_DEVICE_HANDLER( scontra_snd_bankswitch_w )
@@ -375,41 +366,39 @@ static WRITE8_DEVICE_HANDLER( scontra_snd_bankswitch_w )
k007232_set_bank(device, bank_A, bank_B);
}
-static READ8_HANDLER( k052109_051960_r )
+READ8_MEMBER(thunderx_state::k052109_051960_r)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
- if (k052109_get_rmrd_line(state->m_k052109) == CLEAR_LINE)
+ if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(state->m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
else
- return k051960_r(state->m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, offset - 0x3c00);
}
else
- return k052109_r(state->m_k052109, offset);
+ return k052109_r(m_k052109, offset);
}
-static WRITE8_HANDLER( k052109_051960_w )
+WRITE8_MEMBER(thunderx_state::k052109_051960_w)
{
- thunderx_state *state = space->machine().driver_data<thunderx_state>();
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(state->m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(state->m_k052109, offset, data);
+ k052109_w(m_k052109, offset, data);
else
- k051960_w(state->m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, offset - 0x3c00, data);
}
/***************************************************************************/
static ADDRESS_MAP_START( scontra_map, AS_PROGRAM, 8, thunderx_state )
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE_LEGACY(scontra_bankswitch_w) /* bankswitch control + coin counters */
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITE(scontra_bankswitch_w) /* bankswitch control + coin counters */
AM_RANGE(0x1f84, 0x1f84) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE_LEGACY(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1")
@@ -417,19 +406,19 @@ static ADDRESS_MAP_START( scontra_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3")
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2")
- AM_RANGE(0x1f98, 0x1f98) AM_WRITE_LEGACY(thunderx_1f98_w)
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
+ AM_RANGE(0x1f98, 0x1f98) AM_WRITE(thunderx_1f98_w)
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
AM_RANGE(0x4000, 0x57ff) AM_RAM
- AM_RANGE(0x5800, 0x5fff) AM_READWRITE_LEGACY(scontra_bankedram_r, scontra_bankedram_w) AM_BASE(m_ram) /* palette + work RAM */
+ AM_RANGE(0x5800, 0x5fff) AM_READWRITE(scontra_bankedram_r, scontra_bankedram_w) AM_BASE(m_ram) /* palette + work RAM */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( thunderx_map, AS_PROGRAM, 8, thunderx_state )
- AM_RANGE(0x1f80, 0x1f80) AM_WRITE_LEGACY(thunderx_videobank_w)
+ AM_RANGE(0x1f80, 0x1f80) AM_WRITE(thunderx_videobank_w)
AM_RANGE(0x1f84, 0x1f84) AM_WRITE_LEGACY(soundlatch_w)
- AM_RANGE(0x1f88, 0x1f88) AM_WRITE_LEGACY(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */
+ AM_RANGE(0x1f88, 0x1f88) AM_WRITE(thunderx_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x1f8c, 0x1f8c) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x1f90, 0x1f90) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1f91, 0x1f91) AM_READ_PORT("P1")
@@ -437,11 +426,11 @@ static ADDRESS_MAP_START( thunderx_map, AS_PROGRAM, 8, thunderx_state )
AM_RANGE(0x1f93, 0x1f93) AM_READ_PORT("DSW3")
AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("DSW1")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("DSW2")
- AM_RANGE(0x1f98, 0x1f98) AM_READWRITE_LEGACY(thunderx_1f98_r, thunderx_1f98_w) /* registers */
- AM_RANGE(0x0000, 0x3fff) AM_READWRITE_LEGACY(k052109_051960_r, k052109_051960_w)
+ AM_RANGE(0x1f98, 0x1f98) AM_READWRITE(thunderx_1f98_r, thunderx_1f98_w) /* registers */
+ AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x57ff) AM_RAM
- AM_RANGE(0x5800, 0x5fff) AM_READWRITE_LEGACY(thunderx_bankedram_r, thunderx_bankedram_w) AM_BASE(m_ram) /* palette + work RAM + unknown RAM */
+ AM_RANGE(0x5800, 0x5fff) AM_READWRITE(thunderx_bankedram_r, thunderx_bankedram_w) AM_BASE(m_ram) /* palette + work RAM + unknown RAM */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index 21e68102f33..18eff38f764 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -124,10 +124,10 @@ static MACHINE_RESET( tiamc1 )
tiamc1_bankswitch_w(space, 0, 0);
}
-static WRITE8_HANDLER( tiamc1_control_w )
+WRITE8_MEMBER(tiamc1_state::tiamc1_control_w)
{
- coin_lockout_w(space->machine(), 0, ~data & 0x02);
- coin_counter_w(space->machine(), 0, data & 0x04);
+ coin_lockout_w(machine(), 0, ~data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x04);
}
@@ -152,7 +152,7 @@ static ADDRESS_MAP_START( tiamc1_io_map, AS_IO, 8, tiamc1_state )
AM_RANGE(0xd0, 0xd0) AM_READ_PORT("IN0")
AM_RANGE(0xd1, 0xd1) AM_READ_PORT("IN1")
AM_RANGE(0xd2, 0xd2) AM_READ_PORT("IN2")
- AM_RANGE(0xd2, 0xd2) AM_WRITE_LEGACY(tiamc1_control_w) /* coin counter and lockout */
+ AM_RANGE(0xd2, 0xd2) AM_WRITE(tiamc1_control_w) /* coin counter and lockout */
AM_RANGE(0xd3, 0xd3) AM_WRITENOP /* 8255 ctrl. Used for i/o ports */
AM_RANGE(0xd4, 0xd7) AM_DEVWRITE_LEGACY("2x8253", tiamc1_timer1_w) /* timer 1 */
AM_RANGE(0xda, 0xda) AM_DEVWRITE_LEGACY("2x8253", tiamc1_timer1_gate_w) /* timer 1 gate control */
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index a30a86c4a2e..7c5356fba6d 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -143,14 +143,13 @@ static void f1dream_protection_w(address_space *space)
}
}
-static WRITE16_HANDLER( f1dream_control_w )
+WRITE16_MEMBER(tigeroad_state::f1dream_control_w)
{
- tigeroad_state *state = space->machine().driver_data<tigeroad_state>();
- logerror("protection write, PC: %04x FFE1 Value:%01x\n",cpu_get_pc(&space->device()), state->m_ram16[0x3fe0/2]);
- f1dream_protection_w(space);
+ logerror("protection write, PC: %04x FFE1 Value:%01x\n",cpu_get_pc(&space.device()), m_ram16[0x3fe0/2]);
+ f1dream_protection_w(&space);
}
-static WRITE16_HANDLER( tigeroad_soundcmd_w )
+WRITE16_MEMBER(tigeroad_state::tigeroad_soundcmd_w)
{
if (ACCESSING_BITS_8_15)
soundlatch_w(space,offset,data >> 8);
@@ -173,7 +172,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tigeroad_state )
AM_RANGE(0xfe0d00, 0xfe1807) AM_RAM /* still part of OBJ RAM */
AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("P1_P2") AM_WRITE_LEGACY(tigeroad_videoctrl_w) /* char bank, coin counters, + ? */
AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("SYSTEM")
-/* AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE_LEGACY(tigeroad_soundcmd_w) added by init_tigeroad() */
+/* AM_RANGE(0xfe4002, 0xfe4003) AM_WRITE(tigeroad_soundcmd_w) added by init_tigeroad() */
AM_RANGE(0xfe4004, 0xfe4005) AM_READ_PORT("DSW")
AM_RANGE(0xfec000, 0xfec7ff) AM_RAM_WRITE_LEGACY(tigeroad_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xfe8000, 0xfe8003) AM_WRITE_LEGACY(tigeroad_scroll_w)
@@ -765,12 +764,14 @@ ROM_END
static DRIVER_INIT( tigeroad )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xfe4002, 0xfe4003, FUNC(tigeroad_soundcmd_w));
+ tigeroad_state *state = machine.driver_data<tigeroad_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xfe4002, 0xfe4003, write16_delegate(FUNC(tigeroad_state::tigeroad_soundcmd_w),state));
}
static DRIVER_INIT( f1dream )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xfe4002, 0xfe4003, FUNC(f1dream_control_w));
+ tigeroad_state *state = machine.driver_data<tigeroad_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0xfe4002, 0xfe4003, write16_delegate(FUNC(tigeroad_state::f1dream_control_w),state));
}
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index ebcf8c55fee..66b93589253 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -30,16 +30,15 @@ static MACHINE_RESET( timelimt )
state->m_nmi_enabled = 0;
}
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(timelimt_state::nmi_enable_w)
{
- timelimt_state *state = space->machine().driver_data<timelimt_state>();
- state->m_nmi_enabled = data & 1; /* bit 0 = nmi enable */
+ m_nmi_enabled = data & 1; /* bit 0 = nmi enable */
}
-static WRITE8_HANDLER( sound_reset_w )
+WRITE8_MEMBER(timelimt_state::sound_reset_w)
{
if (data & 1)
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, PULSE_LINE);
}
/***************************************************************************/
@@ -53,8 +52,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, timelimt_state )
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("INPUTS")
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("SYSTEM")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW")
- AM_RANGE(0xb000, 0xb000) AM_WRITE_LEGACY(nmi_enable_w) /* nmi enable */
- AM_RANGE(0xb003, 0xb003) AM_WRITE_LEGACY(sound_reset_w)/* sound reset ? */
+ AM_RANGE(0xb000, 0xb000) AM_WRITE(nmi_enable_w) /* nmi enable */
+ AM_RANGE(0xb003, 0xb003) AM_WRITE(sound_reset_w)/* sound reset ? */
AM_RANGE(0xb800, 0xb800) AM_WRITE_LEGACY(soundlatch_w) /* sound write */
AM_RANGE(0xb800, 0xb800) AM_READNOP /* NMI ack? */
AM_RANGE(0xc800, 0xc800) AM_WRITE_LEGACY(timelimt_scroll_x_lsb_w)
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index 89eb01ce7ad..4956c5a4ccb 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -67,13 +67,12 @@ static INTERRUPT_GEN( timeplt_interrupt )
}
-static WRITE8_HANDLER( timeplt_nmi_enable_w )
+WRITE8_MEMBER(timeplt_state::timeplt_nmi_enable_w)
{
- timeplt_state *state = space->machine().driver_data<timeplt_state>();
- state->m_nmi_enable = data & 1;
- if (!state->m_nmi_enable)
- device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
+ m_nmi_enable = data & 1;
+ if (!m_nmi_enable)
+ device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
}
@@ -84,9 +83,9 @@ static WRITE8_HANDLER( timeplt_nmi_enable_w )
*
*************************************/
-static WRITE8_HANDLER( timeplt_coin_counter_w )
+WRITE8_MEMBER(timeplt_state::timeplt_coin_counter_w)
{
- coin_counter_w(space->machine(), offset >> 1, data);
+ coin_counter_w(machine(), offset >> 1, data);
}
@@ -97,7 +96,7 @@ static WRITE8_HANDLER( timeplt_coin_counter_w )
*
*************************************/
-static READ8_HANDLER( psurge_protection_r )
+READ8_MEMBER(timeplt_state::psurge_protection_r)
{
return 0x80;
}
@@ -123,10 +122,10 @@ static ADDRESS_MAP_START( timeplt_main_map, AS_PROGRAM, 8, timeplt_state )
AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE(m_spriteram2)
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_nmi_enable_w)
+ AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_nmi_enable_w)
AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_flipscreen_w)
AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_sh_irqtrigger_w)
- AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_coin_counter_w)
+ AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ_LEGACY(timeplt_scanline_r)
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
@@ -139,7 +138,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( psurge_main_map, AS_PROGRAM, 8, timeplt_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6004, 0x6004) AM_READ_LEGACY(psurge_protection_r)
+ AM_RANGE(0x6004, 0x6004) AM_READ(psurge_protection_r)
AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE_LEGACY(timeplt_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE_LEGACY(timeplt_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xa800, 0xafff) AM_RAM
@@ -149,7 +148,7 @@ static ADDRESS_MAP_START( psurge_main_map, AS_PROGRAM, 8, timeplt_state )
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_flipscreen_w)
AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_sh_irqtrigger_w)
- AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_coin_counter_w)
+ AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ_LEGACY(timeplt_scanline_r)
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
@@ -169,10 +168,10 @@ static ADDRESS_MAP_START( chkun_main_map, AS_PROGRAM, 8, timeplt_state )
AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE(m_spriteram2)
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_nmi_enable_w)
+ AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_nmi_enable_w)
AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_flipscreen_w)
AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_sh_irqtrigger_w)
- AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE_LEGACY(timeplt_coin_counter_w)
+ AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ_LEGACY(timeplt_scanline_r)
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 4679a4f6934..618d8dbba9d 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -80,39 +80,36 @@ Updates:
#include "includes/tmnt.h"
#include "includes/konamipt.h"
-static READ16_HANDLER( k052109_word_noA12_r )
+READ16_MEMBER(tmnt_state::k052109_word_noA12_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
/* some games have the A12 line not connected, so the chip spans */
/* twice the memory range, with mirroring */
offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff);
- return k052109_word_r(state->m_k052109, offset, mem_mask);
+ return k052109_word_r(m_k052109, offset, mem_mask);
}
-static WRITE16_HANDLER( k052109_word_noA12_w )
+WRITE16_MEMBER(tmnt_state::k052109_word_noA12_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
/* some games have the A12 line not connected, so the chip spans */
/* twice the memory range, with mirroring */
offset = ((offset & 0x3000) >> 1) | (offset & 0x07ff);
- k052109_word_w(state->m_k052109, offset, data, mem_mask);
+ k052109_word_w(m_k052109, offset, data, mem_mask);
}
-static WRITE16_HANDLER( punkshot_k052109_word_w )
+WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
/* it seems that a word write is supposed to affect only the MSB. The */
/* "ROUND 1" text in punkshtj goes lost otherwise. */
if (ACCESSING_BITS_8_15)
- k052109_w(state->m_k052109, offset, (data >> 8) & 0xff);
+ k052109_w(m_k052109, offset, (data >> 8) & 0xff);
else if (ACCESSING_BITS_0_7)
- k052109_w(state->m_k052109, offset + 0x2000, data & 0xff);
+ k052109_w(m_k052109, offset + 0x2000, data & 0xff);
}
-static WRITE16_HANDLER( punkshot_k052109_word_noA12_w )
+WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_noA12_w)
{
/* some games have the A12 line not connected, so the chip spans */
/* twice the memory range, with mirroring */
@@ -124,51 +121,47 @@ static WRITE16_HANDLER( punkshot_k052109_word_noA12_w )
/* the interface with the 053245 is weird. The chip can address only 0x800 bytes */
/* of RAM, but they put 0x4000 there. The CPU can access them all. Address lines */
/* A1, A5 and A6 don't go to the 053245. */
-static READ16_HANDLER( k053245_scattered_word_r )
+READ16_MEMBER(tmnt_state::k053245_scattered_word_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
if (offset & 0x0031)
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
else
{
offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
- return k053245_word_r(state->m_k053245, offset, mem_mask);
+ return k053245_word_r(m_k053245, offset, mem_mask);
}
}
-static WRITE16_HANDLER( k053245_scattered_word_w )
+WRITE16_MEMBER(tmnt_state::k053245_scattered_word_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- COMBINE_DATA(state->m_spriteram + offset);
+ COMBINE_DATA(m_spriteram + offset);
if (!(offset & 0x0031))
{
offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
- k053245_word_w(state->m_k053245, offset, data, mem_mask);
+ k053245_word_w(m_k053245, offset, data, mem_mask);
}
}
-static READ16_HANDLER( k053244_word_noA1_r )
+READ16_MEMBER(tmnt_state::k053244_word_noA1_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
offset &= ~1; /* handle mirror address */
- return k053244_r(state->m_k053245, offset + 1) | (k053244_r(state->m_k053245, offset) << 8);
+ return k053244_r(m_k053245, offset + 1) | (k053244_r(m_k053245, offset) << 8);
}
-static WRITE16_HANDLER( k053244_word_noA1_w )
+WRITE16_MEMBER(tmnt_state::k053244_word_noA1_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
offset &= ~1; /* handle mirror address */
if (ACCESSING_BITS_8_15)
- k053244_w(state->m_k053245, offset, (data >> 8) & 0xff);
+ k053244_w(m_k053245, offset, (data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k053244_w(state->m_k053245, offset + 1, data & 0xff);
+ k053244_w(m_k053245, offset + 1, data & 0xff);
}
static INTERRUPT_GEN(cuebrick_interrupt)
@@ -197,7 +190,7 @@ static INTERRUPT_GEN( lgtnfght_interrupt )
-static WRITE16_HANDLER( tmnt_sound_command_w )
+WRITE16_MEMBER(tmnt_state::tmnt_sound_command_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
@@ -219,12 +212,12 @@ static WRITE8_DEVICE_HANDLER( glfgreat_sound_w )
device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
}
-static READ16_HANDLER( prmrsocr_sound_r )
+READ16_MEMBER(tmnt_state::prmrsocr_sound_r)
{
return soundlatch3_r(space, 0);
}
-static WRITE16_HANDLER( prmrsocr_sound_cmd_w )
+WRITE16_MEMBER(tmnt_state::prmrsocr_sound_cmd_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -236,40 +229,37 @@ static WRITE16_HANDLER( prmrsocr_sound_cmd_w )
}
}
-static WRITE16_HANDLER( prmrsocr_sound_irq_w )
+WRITE16_MEMBER(tmnt_state::prmrsocr_sound_irq_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- 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);
}
-static WRITE8_HANDLER( prmrsocr_audio_bankswitch_w )
+WRITE8_MEMBER(tmnt_state::prmrsocr_audio_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 7);
+ memory_set_bank(machine(), "bank1", data & 7);
}
-static READ8_HANDLER( tmnt_sres_r )
+READ8_MEMBER(tmnt_state::tmnt_sres_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- return state->m_tmnt_soundlatch;
+ return m_tmnt_soundlatch;
}
-static WRITE8_HANDLER( tmnt_sres_w )
+WRITE8_MEMBER(tmnt_state::tmnt_sres_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
/* bit 1 resets the UPD7795C sound chip */
- upd7759_reset_w(state->m_upd, data & 2);
+ upd7759_reset_w(m_upd, data & 2);
/* bit 2 plays the title music */
if (data & 0x04)
{
- if (!state->m_samples->playing(0))
- state->m_samples->start_raw(0, state->m_sampledata, 0x40000, 20000);
+ if (!m_samples->playing(0))
+ m_samples->start_raw(0, m_sampledata, 0x40000, 20000);
}
else
- state->m_samples->stop(0);
- state->m_tmnt_soundlatch = data;
+ m_samples->stop(0);
+ m_tmnt_soundlatch = data;
}
static WRITE8_DEVICE_HANDLER( tmnt_upd_start_w )
@@ -331,31 +321,29 @@ static TIMER_CALLBACK( nmi_callback )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( sound_arm_nmi_w )
+WRITE8_MEMBER(tmnt_state::sound_arm_nmi_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
// sound_nmi_enabled = 1;
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- space->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback)); /* kludge until the K053260 is emulated correctly */
}
-static READ16_HANDLER( punkshot_kludge_r )
+READ16_MEMBER(tmnt_state::punkshot_kludge_r)
{
/* I don't know what's going on here; at one point, the code reads location */
/* 0xffffff, and returning 0 causes the game to mess up - locking up in a */
/* loop where the ball is continuously bouncing from the basket. Returning */
/* a random number seems to prevent that. */
- return space->machine().rand();
+ return machine().rand();
}
/* protection simulation derived from a bootleg */
-static READ16_HANDLER( ssriders_protection_r )
+READ16_MEMBER(tmnt_state::ssriders_protection_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- int data = space->read_word(0x105a0a);
- int cmd = space->read_word(0x1058fc);
+ int data = space.read_word(0x105a0a);
+ int cmd = space.read_word(0x1058fc);
switch (cmd)
{
@@ -382,22 +370,21 @@ static READ16_HANDLER( ssriders_protection_r )
case 0x8abc:
/* collision table */
- data = -space->read_word(0x105818);
+ data = -space.read_word(0x105818);
data = ((data / 8 - 4) & 0x1f) * 0x40;
- data += ((space->read_word(0x105cb0) +
- 256 * k052109_r(state->m_k052109, 0x1a01) + k052109_r(state->m_k052109, 0x1a00) - 6) / 8 + 12) & 0x3f;
+ data += ((space.read_word(0x105cb0) +
+ 256 * k052109_r(m_k052109, 0x1a01) + k052109_r(m_k052109, 0x1a00) - 6) / 8 + 12) & 0x3f;
return data;
default:
- popmessage("%06x: unknown protection read",cpu_get_pc(&space->device()));
- logerror("%06x: read 1c0800 (D7=%02x 1058fc=%02x 105a0a=%02x)\n",cpu_get_pc(&space->device()),(UINT32)cpu_get_reg(&space->device(), M68K_D7),cmd,data);
+ popmessage("%06x: unknown protection read",cpu_get_pc(&space.device()));
+ logerror("%06x: read 1c0800 (D7=%02x 1058fc=%02x 105a0a=%02x)\n",cpu_get_pc(&space.device()),(UINT32)cpu_get_reg(&space.device(), M68K_D7),cmd,data);
return 0xffff;
}
}
-static WRITE16_HANDLER( ssriders_protection_w )
+WRITE16_MEMBER(tmnt_state::ssriders_protection_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
if (offset == 1)
{
@@ -411,9 +398,9 @@ static WRITE16_HANDLER( ssriders_protection_w )
for (i = 0; i < 128; i++)
{
- if ((space->read_word(0x180006 + 128 * i) >> 8) == logical_pri)
+ if ((space.read_word(0x180006 + 128 * i) >> 8) == logical_pri)
{
- k053245_word_w(state->m_k053245, 8 * i, hardware_pri, 0x00ff);
+ k053245_word_w(m_k053245, 8 * i, hardware_pri, 0x00ff);
hardware_pri++;
}
}
@@ -441,57 +428,54 @@ static const eeprom_interface eeprom_intf =
};
-static READ16_HANDLER( blswhstl_coin_r )
+READ16_MEMBER(tmnt_state::blswhstl_coin_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
int res;
/* bit 3 is service button */
/* bit 6 is ??? VBLANK? OBJMPX? */
- res = input_port_read(space->machine(), "COINS");
+ res = input_port_read(machine(), "COINS");
- state->m_toggle ^= 0x40;
- return res ^ state->m_toggle;
+ m_toggle ^= 0x40;
+ return res ^ m_toggle;
}
-static READ16_HANDLER( ssriders_eeprom_r )
+READ16_MEMBER(tmnt_state::ssriders_eeprom_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
int res;
/* bit 0 is EEPROM data */
/* bit 1 is EEPROM ready */
/* bit 2 is VBLANK (???) */
/* bit 7 is service button */
- res = input_port_read(space->machine(), "EEPROM");
+ res = input_port_read(machine(), "EEPROM");
- state->m_toggle ^= 0x04;
- return res ^ state->m_toggle;
+ m_toggle ^= 0x04;
+ return res ^ m_toggle;
}
-static READ16_HANDLER( sunsetbl_eeprom_r )
+READ16_MEMBER(tmnt_state::sunsetbl_eeprom_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
int res;
/* bit 0 is EEPROM data */
/* bit 1 is EEPROM ready */
/* bit 2 is VBLANK (???) */
/* bit 3 is service button */
- res = input_port_read(space->machine(), "EEPROM");
+ res = input_port_read(machine(), "EEPROM");
- state->m_toggle ^= 0x04;
- return res ^ state->m_toggle;
+ m_toggle ^= 0x04;
+ return res ^ m_toggle;
}
-static WRITE16_HANDLER( blswhstl_eeprom_w )
+WRITE16_MEMBER(tmnt_state::blswhstl_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
/* bit 0 is data */
/* bit 1 is cs (active low) */
/* bit 2 is clock (active high) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
}
@@ -506,46 +490,44 @@ static const eeprom_interface thndrx2_eeprom_intf =
"0100110000000" /* unlock command */
};
-static READ16_HANDLER( thndrx2_eeprom_r )
+READ16_MEMBER(tmnt_state::thndrx2_eeprom_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
int res;
/* bit 0 is EEPROM data */
/* bit 1 is EEPROM ready */
/* bit 3 is VBLANK (???) */
/* bit 7 is service button */
- res = input_port_read(space->machine(), "P2/EEPROM");
- state->m_toggle ^= 0x0800;
- return (res ^ state->m_toggle);
+ res = input_port_read(machine(), "P2/EEPROM");
+ m_toggle ^= 0x0800;
+ return (res ^ m_toggle);
}
-static WRITE16_HANDLER( thndrx2_eeprom_w )
+WRITE16_MEMBER(tmnt_state::thndrx2_eeprom_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
if (ACCESSING_BITS_0_7)
{
/* bit 0 is data */
/* bit 1 is cs (active low) */
/* bit 2 is clock (active high) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
/* bit 5 triggers IRQ on sound cpu */
- if (state->m_last == 0 && (data & 0x20) != 0)
- device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
- state->m_last = data & 0x20;
+ if (m_last == 0 && (data & 0x20) != 0)
+ device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
+ m_last = data & 0x20;
/* bit 6 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
}
}
-static WRITE16_HANDLER( prmrsocr_eeprom_w )
+WRITE16_MEMBER(tmnt_state::prmrsocr_eeprom_w)
{
if (ACCESSING_BITS_0_7)
{
- prmrsocr_122000_w(space, offset, data, mem_mask);
+ prmrsocr_122000_w(&space, offset, data, mem_mask);
}
if (ACCESSING_BITS_8_15)
@@ -553,26 +535,23 @@ static WRITE16_HANDLER( prmrsocr_eeprom_w )
/* bit 8 is data */
/* bit 9 is cs (active low) */
/* bit 10 is clock (active high) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xffff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xffff);
}
}
-static READ16_HANDLER( cuebrick_nv_r )
+READ16_MEMBER(tmnt_state::cuebrick_nv_r)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- return state->m_cuebrick_nvram[offset + (state->m_cuebrick_nvram_bank * 0x400 / 2)];
+ return m_cuebrick_nvram[offset + (m_cuebrick_nvram_bank * 0x400 / 2)];
}
-static WRITE16_HANDLER( cuebrick_nv_w )
+WRITE16_MEMBER(tmnt_state::cuebrick_nv_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- COMBINE_DATA(&state->m_cuebrick_nvram[offset + (state->m_cuebrick_nvram_bank * 0x400 / 2)]);
+ COMBINE_DATA(&m_cuebrick_nvram[offset + (m_cuebrick_nvram_bank * 0x400 / 2)]);
}
-static WRITE16_HANDLER( cuebrick_nvbank_w )
+WRITE16_MEMBER(tmnt_state::cuebrick_nvbank_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- state->m_cuebrick_nvram_bank = data >> 8;
+ m_cuebrick_nvram_bank = data >> 8;
}
static ADDRESS_MAP_START( cuebrick_main_map, AS_PROGRAM, 16, tmnt_state )
@@ -583,14 +562,14 @@ static ADDRESS_MAP_START( cuebrick_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS") AM_WRITE_LEGACY(tmnt_0a0000_w)
AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
- AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE_LEGACY(tmnt_sound_command_w)
+ AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(tmnt_sound_command_w)
AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW2")
AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
- AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE_LEGACY(cuebrick_nv_r, cuebrick_nv_w) AM_SHARE("nvram")
- AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE_LEGACY(cuebrick_nvbank_w)
+ AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE(cuebrick_nv_r, cuebrick_nv_w) AM_SHARE("nvram")
+ AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE(cuebrick_nvbank_w)
AM_RANGE(0x0c0000, 0x0c0003) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0xff00)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
AM_RANGE(0x140000, 0x140007) AM_DEVREADWRITE_LEGACY("k051960", k051937_word_r, k051937_word_w)
AM_RANGE(0x140400, 0x1407ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_word_r, k051960_word_w)
ADDRESS_MAP_END
@@ -604,14 +583,14 @@ static ADDRESS_MAP_START( mia_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x0a0000, 0x0a0001) AM_READ_PORT("COINS") AM_WRITE_LEGACY(tmnt_0a0000_w)
AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
- AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE_LEGACY(tmnt_sound_command_w)
+ AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(tmnt_sound_command_w)
AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW2")
AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
#if 0
AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(tmnt_priority_w)
#endif
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
// AM_RANGE(0x10e800, 0x10e801) AM_WRITENOP ???
AM_RANGE(0x140000, 0x140007) AM_DEVREADWRITE_LEGACY("k051960", k051937_word_r, k051937_word_w)
AM_RANGE(0x140400, 0x1407ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_word_r, k051960_word_w)
@@ -626,13 +605,13 @@ static ADDRESS_MAP_START( tmnt_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x0a0002, 0x0a0003) AM_READ_PORT("P1")
AM_RANGE(0x0a0004, 0x0a0005) AM_READ_PORT("P2")
AM_RANGE(0x0a0006, 0x0a0007) AM_READ_PORT("P3")
- AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE_LEGACY(tmnt_sound_command_w)
+ AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(tmnt_sound_command_w)
AM_RANGE(0x0a0010, 0x0a0011) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x0a0012, 0x0a0013) AM_READ_PORT("DSW2")
AM_RANGE(0x0a0014, 0x0a0015) AM_READ_PORT("P4")
AM_RANGE(0x0a0018, 0x0a0019) AM_READ_PORT("DSW3")
AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE_LEGACY(tmnt_priority_w)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
// AM_RANGE(0x10e800, 0x10e801) AM_WRITENOP ???
AM_RANGE(0x140000, 0x140007) AM_DEVREADWRITE_LEGACY("k051960", k051937_word_r, k051937_word_w)
AM_RANGE(0x140400, 0x1407ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_word_r, k051960_word_w)
@@ -652,10 +631,10 @@ static ADDRESS_MAP_START( punkshot_main_map, AS_PROGRAM, 16, tmnt_state )
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_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, punkshot_k052109_word_noA12_w)
+ AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, punkshot_k052109_word_noA12_w)
AM_RANGE(0x110000, 0x110007) AM_DEVREADWRITE_LEGACY("k051960", k051937_word_r, k051937_word_w)
AM_RANGE(0x110400, 0x1107ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_word_r, k051960_word_w)
- AM_RANGE(0xfffffc, 0xffffff) AM_READ_LEGACY(punkshot_kludge_r)
+ AM_RANGE(0xfffffc, 0xffffff) AM_READ(punkshot_kludge_r)
ADDRESS_MAP_END
@@ -673,60 +652,58 @@ static ADDRESS_MAP_START( lgtnfght_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x0a0020, 0x0a0023) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x0a0020, 0x0a0021) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
AM_RANGE(0x0a0028, 0x0a0029) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x0b0000, 0x0b3fff) AM_READWRITE_LEGACY(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
- AM_RANGE(0x0c0000, 0x0c001f) AM_READWRITE_LEGACY(k053244_word_noA1_r, k053244_word_noA1_w)
+ AM_RANGE(0x0b0000, 0x0b3fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x0c0000, 0x0c001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
AM_RANGE(0x0e0000, 0x0e001f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
- AM_RANGE(0x100000, 0x107fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x100000, 0x107fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
ADDRESS_MAP_END
-static WRITE16_HANDLER( ssriders_soundkludge_w )
+WRITE16_MEMBER(tmnt_state::ssriders_soundkludge_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
/* I think this is more than just a trigger */
- 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);
}
static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x180000, 0x183fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_word_r, k052109_word_w)
AM_RANGE(0x204000, 0x207fff) AM_RAM /* main RAM */
- AM_RANGE(0x300000, 0x303fff) AM_READWRITE_LEGACY(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x300000, 0x303fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x50003f) AM_DEVREADWRITE_LEGACY("k054000", k054000_lsb_r, k054000_lsb_w)
- AM_RANGE(0x680000, 0x68001f) AM_READWRITE_LEGACY(k053244_word_noA1_r, k053244_word_noA1_w)
+ AM_RANGE(0x680000, 0x68001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("P1")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("P2")
- AM_RANGE(0x700004, 0x700005) AM_READ_LEGACY(blswhstl_coin_r)
+ AM_RANGE(0x700004, 0x700005) AM_READ(blswhstl_coin_r)
AM_RANGE(0x700006, 0x700007) AM_READ_PORT("EEPROM")
- AM_RANGE(0x700200, 0x700201) AM_WRITE_LEGACY(blswhstl_eeprom_w)
+ AM_RANGE(0x700200, 0x700201) AM_WRITE(blswhstl_eeprom_w)
AM_RANGE(0x700300, 0x700301) AM_WRITE_LEGACY(blswhstl_700300_w)
AM_RANGE(0x700400, 0x700401) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x780600, 0x780603) AM_DEVREAD8_LEGACY("k053260", punkshot_sound_r, 0x00ff) /* K053260 */
AM_RANGE(0x780600, 0x780601) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
- AM_RANGE(0x780604, 0x780605) AM_WRITE_LEGACY(ssriders_soundkludge_w)
+ AM_RANGE(0x780604, 0x780605) AM_WRITE(ssriders_soundkludge_w)
AM_RANGE(0x780700, 0x78071f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
ADDRESS_MAP_END
-static WRITE16_HANDLER( k053251_glfgreat_w )
+WRITE16_MEMBER(tmnt_state::k053251_glfgreat_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
int i;
if (ACCESSING_BITS_8_15)
{
- k053251_w(state->m_k053251, offset, (data >> 8) & 0xff);
+ k053251_w(m_k053251, offset, (data >> 8) & 0xff);
/* FIXME: in the old code k052109 tilemaps were tilemaps 2,3,4 for k053251
and got marked as dirty in the write above... how was the original hardware working?!? */
for (i = 0; i < 3; i++)
{
- if (k053251_get_tmap_dirty(state->m_k053251, 2 + i))
+ if (k053251_get_tmap_dirty(m_k053251, 2 + i))
{
- k052109_tilemap_mark_dirty(state->m_k052109, i);
- k053251_set_tmap_dirty(state->m_k053251, 2 + i, 0);
+ k052109_tilemap_mark_dirty(m_k052109, i);
+ k053251_set_tmap_dirty(m_k053251, 2 + i, 0);
}
}
}
@@ -735,14 +712,14 @@ static WRITE16_HANDLER( k053251_glfgreat_w )
static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
- AM_RANGE(0x104000, 0x107fff) AM_READWRITE_LEGACY(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE_LEGACY("k053936", k053936_linectrl_r, k053936_linectrl_w) /* 053936? */
- AM_RANGE(0x110000, 0x11001f) AM_WRITE_LEGACY(k053244_word_noA1_w) /* duplicate! */
+ AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE_LEGACY("k053245", k053244_lsb_r, k053244_lsb_w) /* duplicate! */
AM_RANGE(0x118000, 0x11801f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w)
AM_RANGE(0x11c000, 0x11c01f) AM_DEVWRITE_LEGACY("k053251", k053251_msb_w)
- AM_RANGE(0x11c000, 0x11c01f) AM_WRITE_LEGACY(k053251_glfgreat_w)
+ AM_RANGE(0x11c000, 0x11c01f) AM_WRITE(k053251_glfgreat_w)
AM_RANGE(0x120000, 0x120001) AM_READ_PORT("P1/P2")
AM_RANGE(0x120002, 0x120003) AM_READ_PORT("P3/P4")
AM_RANGE(0x120004, 0x120005) AM_READ_PORT("COINS/DSW3")
@@ -751,7 +728,7 @@ static ADDRESS_MAP_START( glfgreat_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x122000, 0x122001) AM_WRITE_LEGACY(glfgreat_122000_w)
AM_RANGE(0x124000, 0x124001) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x125000, 0x125003) AM_DEVREADWRITE8_LEGACY("k053260", punkshot_sound_r, glfgreat_sound_w, 0xff00) /* K053260 */
- AM_RANGE(0x200000, 0x207fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x200000, 0x207fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
AM_RANGE(0x300000, 0x3fffff) AM_READ_LEGACY(glfgreat_rom_r)
ADDRESS_MAP_END
@@ -759,21 +736,21 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( prmrsocr_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM /* main RAM */
- AM_RANGE(0x104000, 0x107fff) AM_READWRITE_LEGACY(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x104000, 0x107fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x10c000, 0x10cfff) AM_DEVREADWRITE_LEGACY("k053936", k053936_linectrl_r, k053936_linectrl_w)
- AM_RANGE(0x110000, 0x11001f) AM_WRITE_LEGACY(k053244_word_noA1_w) /* duplicate! */
+ AM_RANGE(0x110000, 0x11001f) AM_WRITE(k053244_word_noA1_w) /* duplicate! */
AM_RANGE(0x114000, 0x11401f) AM_DEVREADWRITE_LEGACY("k053245", k053244_lsb_r, k053244_lsb_w) /* duplicate! */
AM_RANGE(0x118000, 0x11801f) AM_DEVWRITE_LEGACY("k053936", k053936_ctrl_w)
AM_RANGE(0x11c000, 0x11c01f) AM_DEVWRITE_LEGACY("k053251", k053251_msb_w)
- AM_RANGE(0x11c000, 0x11c01f) AM_WRITE_LEGACY(k053251_glfgreat_w)
+ AM_RANGE(0x11c000, 0x11c01f) AM_WRITE(k053251_glfgreat_w)
AM_RANGE(0x120000, 0x120001) AM_READ_PORT("P1/COINS")
AM_RANGE(0x120002, 0x120003) AM_READ_PORT("P2/EEPROM")
- AM_RANGE(0x12100c, 0x12100f) AM_WRITE_LEGACY(prmrsocr_sound_cmd_w)
- AM_RANGE(0x121014, 0x121015) AM_READ_LEGACY(prmrsocr_sound_r)
- AM_RANGE(0x122000, 0x122001) AM_WRITE_LEGACY(prmrsocr_eeprom_w) /* EEPROM + video control */
- AM_RANGE(0x123000, 0x123001) AM_WRITE_LEGACY(prmrsocr_sound_irq_w)
- AM_RANGE(0x200000, 0x207fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x12100c, 0x12100f) AM_WRITE(prmrsocr_sound_cmd_w)
+ AM_RANGE(0x121014, 0x121015) AM_READ(prmrsocr_sound_r)
+ AM_RANGE(0x122000, 0x122001) AM_WRITE(prmrsocr_eeprom_w) /* EEPROM + video control */
+ AM_RANGE(0x123000, 0x123001) AM_WRITE(prmrsocr_sound_irq_w)
+ AM_RANGE(0x200000, 0x207fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
AM_RANGE(0x280000, 0x280001) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x300000, 0x33ffff) AM_READ_LEGACY(prmrsocr_rom_r)
ADDRESS_MAP_END
@@ -812,21 +789,20 @@ static void tmnt2_put_word( address_space *space, UINT32 addr, UINT16 data )
state->m_sunset_104000[addr - 0x104000 / 2] = data;
}
-static WRITE16_HANDLER( tmnt2_1c0800_w )
+WRITE16_MEMBER(tmnt_state::tmnt2_1c0800_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
UINT32 src_addr, dst_addr, mod_addr, attr1, code, attr2, cbase, cmod, color;
int xoffs, yoffs, xmod, ymod, zmod, xzoom, yzoom, i;
UINT16 *mcu;
UINT16 src[4], mod[24];
UINT8 keepaspect, xlock, ylock, zlock;
- COMBINE_DATA(state->m_tmnt2_1c0800 + offset);
+ COMBINE_DATA(m_tmnt2_1c0800 + offset);
if (offset != 0x18/2 || !ACCESSING_BITS_8_15)
return;
- mcu = state->m_tmnt2_1c0800;
+ mcu = m_tmnt2_1c0800;
if ((mcu[8] & 0xff00) != 0x8200)
return;
@@ -836,9 +812,9 @@ static WRITE16_HANDLER( tmnt2_1c0800_w )
zlock = (mcu[8] & 0xff) == 0x0001;
for (i = 0; i < 4; i++)
- src[i] = tmnt2_get_word(space->machine(), src_addr + i);
+ src[i] = tmnt2_get_word(machine(), src_addr + i);
for (i = 0; i < 24; i++) mod[i] =
- tmnt2_get_word(space->machine(), mod_addr + i);
+ tmnt2_get_word(machine(), mod_addr + i);
code = src[0]; // code
@@ -926,18 +902,17 @@ static WRITE16_HANDLER( tmnt2_1c0800_w )
xoffs += xmod;
yoffs += ymod;
- tmnt2_put_word(space, dst_addr + 0, attr1);
- tmnt2_put_word(space, dst_addr + 2, code);
- tmnt2_put_word(space, dst_addr + 4, (UINT32)yoffs);
- tmnt2_put_word(space, dst_addr + 6, (UINT32)xoffs);
- tmnt2_put_word(space, dst_addr + 12, attr2 | color);
+ tmnt2_put_word(&space, dst_addr + 0, attr1);
+ tmnt2_put_word(&space, dst_addr + 2, code);
+ tmnt2_put_word(&space, dst_addr + 4, (UINT32)yoffs);
+ tmnt2_put_word(&space, dst_addr + 6, (UINT32)xoffs);
+ tmnt2_put_word(&space, dst_addr + 12, attr2 | color);
}
#else // for reference; do not remove
-static WRITE16_HANDLER( tmnt2_1c0800_w )
+WRITE16_MEMBER(tmnt_state::tmnt2_1c0800_w)
{
- tmnt_state *state = space->machine().driver_data<tmnt_state>();
- COMBINE_DATA(state->m_tmnt2_1c0800 + offset);
- if (offset == 0x0008 && (state->m_tmnt2_1c0800[0x8] & 0xff00) == 0x8200)
+ COMBINE_DATA(m_tmnt2_1c0800 + offset);
+ if (offset == 0x0008 && (m_tmnt2_1c0800[0x8] & 0xff00) == 0x8200)
{
UINT32 CellSrc;
UINT32 CellVar;
@@ -945,18 +920,18 @@ static WRITE16_HANDLER( tmnt2_1c0800_w )
int dst;
int x,y;
- CellVar = state->m_tmnt2_1c0800[0x04] | (state->m_tmnt2_1c0800[0x05] << 16 );
- dst = state->m_tmnt2_1c0800[0x02] | (state->m_tmnt2_1c0800[0x03] << 16 );
- CellSrc = state->m_tmnt2_1c0800[0x00] | (state->m_tmnt2_1c0800[0x01] << 16 );
+ CellVar = m_tmnt2_1c0800[0x04] | (m_tmnt2_1c0800[0x05] << 16 );
+ dst = m_tmnt2_1c0800[0x02] | (m_tmnt2_1c0800[0x03] << 16 );
+ CellSrc = m_tmnt2_1c0800[0x00] | (m_tmnt2_1c0800[0x01] << 16 );
// if (CellDest >= 0x180000 && CellDest < 0x183fe0) {
CellVar -= 0x104000;
- src = (UINT16 *)(space->machine().region("maincpu")->base() + CellSrc);
+ src = (UINT16 *)(machine().region("maincpu")->base() + CellSrc);
CellVar >>= 1;
- space->write_word(dst + 0x00, 0x8000 | ((src[1] & 0xfc00) >> 2)); /* size, flip xy */
- space->write_word(dst + 0x04, src[0]); /* code */
- space->write_word(dst + 0x18, (src[1] & 0x3ff) ^ /* color, mirror, priority */
+ write_word(dst + 0x00, 0x8000 | ((src[1] & 0xfc00) >> 2)); /* size, flip xy */
+ write_word(dst + 0x04, src[0]); /* code */
+ write_word(dst + 0x18, (src[1] & 0x3ff) ^ /* color, mirror, priority */
(sunset_104000[CellVar + 0x00] & 0x0060));
/* base color modifier */
@@ -965,55 +940,55 @@ static WRITE16_HANDLER( tmnt2_1c0800_w )
/* It fixes the enemies, though, they are not all purple when you throw them around. */
/* Also, the bosses don't blink when they are about to die - don't know */
/* if this is correct or not. */
-// if (state->m_sunset_104000[CellVar + 0x15] & 0x001f)
-// dst + 0x18->write_word((space->read_word(dst + 0x18) & 0xffe0) |
-// (state->m_sunset_104000[CellVar + 0x15] & 0x001f));
+// if (m_sunset_104000[CellVar + 0x15] & 0x001f)
+// dst + 0x18->write_word((read_word(dst + 0x18) & 0xffe0) |
+// (m_sunset_104000[CellVar + 0x15] & 0x001f));
x = src[2];
- if (state->m_sunset_104000[CellVar + 0x00] & 0x4000)
+ if (m_sunset_104000[CellVar + 0x00] & 0x4000)
{
/* flip x */
- space->write_word(dst + 0x00, space->read_word(dst + 0x00) ^ 0x1000);
+ write_word(dst + 0x00, read_word(dst + 0x00) ^ 0x1000);
x = -x;
}
- x += state->m_sunset_104000[CellVar + 0x06];
- space->write_word(dst + 0x0c, x);
+ x += m_sunset_104000[CellVar + 0x06];
+ write_word(dst + 0x0c, x);
y = src[3];
- y += state->m_sunset_104000[CellVar + 0x07];
+ y += m_sunset_104000[CellVar + 0x07];
/* don't do second offset for shadows */
- if ((state->m_tmnt2_1c0800[0x08] & 0x00ff) != 0x01)
- y += state->m_sunset_104000[CellVar + 0x08];
- space->write_word(dst + 0x08, y);
+ if ((m_tmnt2_1c0800[0x08] & 0x00ff) != 0x01)
+ y += m_sunset_104000[CellVar + 0x08];
+ write_word(dst + 0x08, y);
#if 0
logerror("copy command %04x sprite %08x data %08x: %04x%04x %04x%04x modifiers %08x:%04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x %04x%04x\n",
- state->m_tmnt2_1c0800[0x05],
+ m_tmnt2_1c0800[0x05],
CellDest,CellSrc,
src[0], src[1], src[2], src[3],
CellVar*2,
- state->m_sunset_104000[CellVar + 0x00],
- state->m_sunset_104000[CellVar + 0x01],
- state->m_sunset_104000[CellVar + 0x02],
- state->m_sunset_104000[CellVar + 0x03],
- state->m_sunset_104000[CellVar + 0x04],
- state->m_sunset_104000[CellVar + 0x05],
- state->m_sunset_104000[CellVar + 0x06],
- state->m_sunset_104000[CellVar + 0x07],
- state->m_sunset_104000[CellVar + 0x08],
- state->m_sunset_104000[CellVar + 0x09],
- state->m_sunset_104000[CellVar + 0x0a],
- state->m_sunset_104000[CellVar + 0x0b],
- state->m_sunset_104000[CellVar + 0x0c],
- state->m_sunset_104000[CellVar + 0x0d],
- state->m_sunset_104000[CellVar + 0x0e],
- state->m_sunset_104000[CellVar + 0x0f],
- state->m_sunset_104000[CellVar + 0x10],
- state->m_sunset_104000[CellVar + 0x11],
- state->m_sunset_104000[CellVar + 0x12],
- state->m_sunset_104000[CellVar + 0x13],
- state->m_sunset_104000[CellVar + 0x14],
- state->m_sunset_104000[CellVar + 0x15],
- state->m_sunset_104000[CellVar + 0x16],
- state->m_sunset_104000[CellVar + 0x17]
+ m_sunset_104000[CellVar + 0x00],
+ m_sunset_104000[CellVar + 0x01],
+ m_sunset_104000[CellVar + 0x02],
+ m_sunset_104000[CellVar + 0x03],
+ m_sunset_104000[CellVar + 0x04],
+ m_sunset_104000[CellVar + 0x05],
+ m_sunset_104000[CellVar + 0x06],
+ m_sunset_104000[CellVar + 0x07],
+ m_sunset_104000[CellVar + 0x08],
+ m_sunset_104000[CellVar + 0x09],
+ m_sunset_104000[CellVar + 0x0a],
+ m_sunset_104000[CellVar + 0x0b],
+ m_sunset_104000[CellVar + 0x0c],
+ m_sunset_104000[CellVar + 0x0d],
+ m_sunset_104000[CellVar + 0x0e],
+ m_sunset_104000[CellVar + 0x0f],
+ m_sunset_104000[CellVar + 0x10],
+ m_sunset_104000[CellVar + 0x11],
+ m_sunset_104000[CellVar + 0x12],
+ m_sunset_104000[CellVar + 0x13],
+ m_sunset_104000[CellVar + 0x14],
+ m_sunset_104000[CellVar + 0x15],
+ m_sunset_104000[CellVar + 0x16],
+ m_sunset_104000[CellVar + 0x17]
);
#endif
// }
@@ -1025,23 +1000,23 @@ static ADDRESS_MAP_START( tmnt2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_BASE(m_tmnt2_rom)
AM_RANGE(0x104000, 0x107fff) AM_RAM AM_BASE(m_sunset_104000) /* main RAM */
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE_LEGACY(k053245_scattered_word_w) AM_BASE(m_spriteram) // k053245_scattered_word_r
+ AM_RANGE(0x180000, 0x183fff) AM_RAM_WRITE(k053245_scattered_word_w) AM_BASE(m_spriteram) // k053245_scattered_word_r
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P3")
AM_RANGE(0x1c0006, 0x1c0007) AM_READ_PORT("P4")
AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("COINS")
- AM_RANGE(0x1c0102, 0x1c0103) AM_READ_LEGACY(ssriders_eeprom_r)
+ AM_RANGE(0x1c0102, 0x1c0103) AM_READ(ssriders_eeprom_r)
AM_RANGE(0x1c0200, 0x1c0201) AM_WRITE_LEGACY(ssriders_eeprom_w) /* EEPROM and gfx control */
AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE_LEGACY(ssriders_1c0300_w)
AM_RANGE(0x1c0400, 0x1c0401) AM_READWRITE_LEGACY(watchdog_reset16_r, watchdog_reset16_w)
AM_RANGE(0x1c0500, 0x1c057f) AM_RAM /* TMNT2 only (1J) unknown, mostly MCU blit offsets */
-// AM_RANGE(0x1c0800, 0x1c0801) AM_READ_LEGACY(ssriders_protection_r) /* protection device */
- AM_RANGE(0x1c0800, 0x1c081f) AM_WRITE_LEGACY(tmnt2_1c0800_w) AM_BASE(m_tmnt2_1c0800) /* protection device */
- AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE_LEGACY(k053244_word_noA1_r, k053244_word_noA1_w)
+// AM_RANGE(0x1c0800, 0x1c0801) AM_READ(ssriders_protection_r) /* protection device */
+ AM_RANGE(0x1c0800, 0x1c081f) AM_WRITE(tmnt2_1c0800_w) AM_BASE(m_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, 0x5c0601) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
- AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE_LEGACY(ssriders_soundkludge_w)
+ AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE(ssriders_soundkludge_w)
AM_RANGE(0x5c0700, 0x5c071f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_word_r, k052109_word_w)
ADDRESS_MAP_END
@@ -1051,23 +1026,23 @@ static ADDRESS_MAP_START( ssriders_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x000000, 0x0bffff) AM_ROM
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x1c0000, 0x1c0001) AM_READ_PORT("P1")
AM_RANGE(0x1c0002, 0x1c0003) AM_READ_PORT("P2")
AM_RANGE(0x1c0004, 0x1c0005) AM_READ_PORT("P3")
AM_RANGE(0x1c0006, 0x1c0007) AM_READ_PORT("P4")
AM_RANGE(0x1c0100, 0x1c0101) AM_READ_PORT("COINS")
- AM_RANGE(0x1c0102, 0x1c0103) AM_READ_LEGACY(ssriders_eeprom_r)
+ AM_RANGE(0x1c0102, 0x1c0103) AM_READ(ssriders_eeprom_r)
AM_RANGE(0x1c0200, 0x1c0201) AM_WRITE_LEGACY(ssriders_eeprom_w) /* EEPROM and gfx control */
AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE_LEGACY(ssriders_1c0300_w)
AM_RANGE(0x1c0400, 0x1c0401) AM_READWRITE_LEGACY(watchdog_reset16_r, watchdog_reset16_w)
AM_RANGE(0x1c0500, 0x1c057f) AM_RAM /* TMNT2 only (1J) unknown */
- AM_RANGE(0x1c0800, 0x1c0801) AM_READ_LEGACY(ssriders_protection_r)
- AM_RANGE(0x1c0800, 0x1c0803) AM_WRITE_LEGACY(ssriders_protection_w)
- AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE_LEGACY(k053244_word_noA1_r, k053244_word_noA1_w)
+ 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, 0x5c0601) AM_DEVWRITE8_LEGACY("k053260", k053260_w, 0x00ff)
- AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE_LEGACY(ssriders_soundkludge_w)
+ AM_RANGE(0x5c0604, 0x5c0605) AM_WRITE(ssriders_soundkludge_w)
AM_RANGE(0x5c0700, 0x5c071f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_word_r, k052109_word_w)
ADDRESS_MAP_END
@@ -1078,11 +1053,11 @@ static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x104000, 0x107fff) AM_RAM /* main RAM */
AM_RANGE(0x14c000, 0x14cfff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x14e700, 0x14e71f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
- AM_RANGE(0x180000, 0x183fff) AM_READWRITE_LEGACY(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
+ AM_RANGE(0x180000, 0x183fff) AM_READWRITE(k053245_scattered_word_r, k053245_scattered_word_w) AM_BASE(m_spriteram)
AM_RANGE(0x184000, 0x18ffff) AM_RAM
AM_RANGE(0x1c0300, 0x1c0301) AM_WRITE_LEGACY(ssriders_1c0300_w)
AM_RANGE(0x1c0400, 0x1c0401) AM_WRITENOP
- AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE_LEGACY(k053244_word_noA1_r, k053244_word_noA1_w)
+ AM_RANGE(0x5a0000, 0x5a001f) AM_READWRITE(k053244_word_noA1_r, k053244_word_noA1_w)
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_word_r, k052109_word_w)
AM_RANGE(0x604020, 0x60402f) AM_WRITENOP /* written every frame */
AM_RANGE(0x604200, 0x604201) AM_WRITENOP /* watchdog */
@@ -1093,7 +1068,7 @@ static ADDRESS_MAP_START( sunsetbl_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0xc00006, 0xc00007) AM_READ_PORT("P4")
AM_RANGE(0xc00200, 0xc00201) AM_WRITE_LEGACY(ssriders_eeprom_w) /* EEPROM and gfx control */
AM_RANGE(0xc00404, 0xc00405) AM_READ_PORT("COINS")
- AM_RANGE(0xc00406, 0xc00407) AM_READ_LEGACY(sunsetbl_eeprom_r)
+ AM_RANGE(0xc00406, 0xc00407) AM_READ(sunsetbl_eeprom_r)
AM_RANGE(0xc00600, 0xc00601) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x75d288, 0x75d289) AM_READNOP // read repeatedly in some test menus (PC=181f2)
ADDRESS_MAP_END
@@ -1107,11 +1082,11 @@ static ADDRESS_MAP_START( thndrx2_main_map, AS_PROGRAM, 16, tmnt_state )
AM_RANGE(0x400000, 0x400003) AM_DEVREAD8_LEGACY("k053260", 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_LEGACY(thndrx2_eeprom_w)
+ AM_RANGE(0x500100, 0x500101) AM_WRITE(thndrx2_eeprom_w)
AM_RANGE(0x500200, 0x500201) AM_READ_PORT("P1/COINS")
- AM_RANGE(0x500202, 0x500203) AM_READ_LEGACY(thndrx2_eeprom_r)
+ AM_RANGE(0x500202, 0x500203) AM_READ(thndrx2_eeprom_r)
AM_RANGE(0x500300, 0x500301) AM_WRITENOP /* watchdog reset? irq enable? */
- AM_RANGE(0x600000, 0x607fff) AM_READWRITE_LEGACY(k052109_word_noA12_r, k052109_word_noA12_w)
+ AM_RANGE(0x600000, 0x607fff) AM_READWRITE(k052109_word_noA12_r, k052109_word_noA12_w)
AM_RANGE(0x700000, 0x700007) AM_DEVREADWRITE_LEGACY("k051960", k051937_word_r, k051937_word_w)
AM_RANGE(0x700400, 0x7007ff) AM_DEVREADWRITE_LEGACY("k051960", k051960_word_r, k051960_word_w)
ADDRESS_MAP_END
@@ -1130,7 +1105,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tmnt_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_READWRITE_LEGACY(tmnt_sres_r, tmnt_sres_w) /* title music & UPD7759C reset */
+ AM_RANGE(0x9000, 0x9000) AM_READWRITE(tmnt_sres_r, tmnt_sres_w) /* title music & UPD7759C reset */
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("k007232", k007232_r, k007232_w)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
@@ -1144,7 +1119,7 @@ static ADDRESS_MAP_START( punkshot_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
ADDRESS_MAP_END
@@ -1161,7 +1136,7 @@ static ADDRESS_MAP_START( glfgreat_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf82f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
ADDRESS_MAP_END
@@ -1170,7 +1145,7 @@ static ADDRESS_MAP_START( ssriders_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xfa00, 0xfa2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(sound_arm_nmi_w)
ADDRESS_MAP_END
@@ -1178,19 +1153,19 @@ static ADDRESS_MAP_START( thndrx2_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_MIRROR(0x0010) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(sound_arm_nmi_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(sound_arm_nmi_w)
AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
ADDRESS_MAP_END
-static READ8_HANDLER( k054539_ctrl_r )
+READ8_MEMBER(tmnt_state::k054539_ctrl_r)
{
- return space->machine().device<k054539_device>("k054539")->read(*space, 0x200 + offset, 0xff);
+ return machine().device<k054539_device>("k054539")->read(*&space, 0x200 + offset, 0xff);
}
-static WRITE8_HANDLER( k054539_ctrl_w )
+WRITE8_MEMBER(tmnt_state::k054539_ctrl_w)
{
- space->machine().device<k054539_device>("k054539")->write(*space, 0x200 + offset, data, 0xff);
+ machine().device<k054539_device>("k054539")->write(*&space, 0x200 + offset, data, 0xff);
}
static ADDRESS_MAP_START( prmrsocr_audio_map, AS_PROGRAM, 8, tmnt_state )
@@ -1198,11 +1173,11 @@ static ADDRESS_MAP_START( prmrsocr_audio_map, AS_PROGRAM, 8, tmnt_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe0ff) AM_DEVREADWRITE("k054539", k054539_device, read, write)
- AM_RANGE(0xe100, 0xe12f) AM_READWRITE_LEGACY(k054539_ctrl_r, k054539_ctrl_w)
+ AM_RANGE(0xe100, 0xe12f) AM_READWRITE(k054539_ctrl_r, k054539_ctrl_w)
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ_LEGACY(soundlatch2_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(prmrsocr_audio_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(prmrsocr_audio_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index 7aea22fd734..7fa2acfeff1 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -805,11 +805,10 @@ ADDRESS_MAP_END
/* the later board is different, it has a third CPU (and of course no mcu) */
-static WRITE8_HANDLER( tnzsb_sound_command_w )
+WRITE8_MEMBER(tnzs_state::tnzsb_sound_command_w)
{
- tnzs_state *state = space->machine().driver_data<tnzs_state>();
soundlatch_w(space, offset, data);
- 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);
}
static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state )
@@ -818,7 +817,7 @@ static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(tnzs_bankswitch1_w)
AM_RANGE(0xb002, 0xb002) AM_READ_PORT("DSWA")
AM_RANGE(0xb003, 0xb003) AM_READ_PORT("DSWB")
- AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(tnzsb_sound_command_w)
+ AM_RANGE(0xb004, 0xb004) AM_WRITE(tnzsb_sound_command_w)
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1")
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
@@ -834,7 +833,7 @@ static ADDRESS_MAP_START( kabukiz_cpu1_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(tnzs_bankswitch1_w)
AM_RANGE(0xb002, 0xb002) AM_READ_PORT("DSWA")
AM_RANGE(0xb003, 0xb003) AM_READ_PORT("DSWB")
- AM_RANGE(0xb004, 0xb004) AM_WRITE_LEGACY(tnzsb_sound_command_w)
+ AM_RANGE(0xb004, 0xb004) AM_WRITE(tnzsb_sound_command_w)
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN0")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN1")
AM_RANGE(0xc002, 0xc002) AM_READ_PORT("IN2")
@@ -868,22 +867,22 @@ static ADDRESS_MAP_START( i8742_io_map, AS_IO, 8, tnzs_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( jpopnics_palette_w )
+WRITE8_MEMBER(tnzs_state::jpopnics_palette_w)
{
int r, g, b;
UINT16 paldata;
- space->machine().generic.paletteram.u8[offset] = data;
+ machine().generic.paletteram.u8[offset] = data;
offset = offset >> 1;
- paldata = (space->machine().generic.paletteram.u8[offset * 2] << 8) | space->machine().generic.paletteram.u8[(offset * 2 + 1)];
+ paldata = (machine().generic.paletteram.u8[offset * 2] << 8) | machine().generic.paletteram.u8[(offset * 2 + 1)];
g = (paldata >> 12) & 0x000f;
r = (paldata >> 4) & 0x000f;
b = (paldata >> 8) & 0x000f;
// the other bits seem to be used, and the colours are wrong..
- palette_set_color_rgb(space->machine(), offset, r << 4, g << 4, b << 4);
+ palette_set_color_rgb(machine(), offset, r << 4, g << 4, b << 4);
}
@@ -898,20 +897,20 @@ static ADDRESS_MAP_START( jpopnics_main_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0xf300, 0xf303) AM_MIRROR(0xfc) AM_DEVWRITE_LEGACY("spritegen", spritectrl_w8) /* control registers (0x80 mirror used by Arkanoid 2) */
AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("spritegen", spritebgflag_w8) /* enable / disable background transparency */
AM_RANGE(0xf600, 0xf600) AM_READNOP AM_WRITE_LEGACY(tnzs_bankswitch_w)
- AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE_LEGACY(jpopnics_palette_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(jpopnics_palette_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
-static WRITE8_HANDLER( jpopnics_subbankswitch_w )
+WRITE8_MEMBER(tnzs_state::jpopnics_subbankswitch_w)
{
/* bits 0-1 select ROM bank */
- memory_set_bank(space->machine(), "bank2", data & 0x03);
+ memory_set_bank(machine(), "bank2", data & 0x03);
}
static ADDRESS_MAP_START( jpopnics_sub_map, AS_PROGRAM, 8, tnzs_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank2")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(jpopnics_subbankswitch_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(jpopnics_subbankswitch_w)
AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xc000, 0xc000) AM_READ_PORT("IN1")
AM_RANGE(0xc001, 0xc001) AM_READ_PORT("IN2")
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index c3a01cc791d..75244f1073b 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -509,7 +509,7 @@ static INTERRUPT_GEN( toaplan2_vblank_irq2 ) { toaplan2_vblank_irq(device->machi
static INTERRUPT_GEN( toaplan2_vblank_irq4 ) { toaplan2_vblank_irq(device->machine(), 4); }
-static READ16_HANDLER( video_count_r )
+READ16_MEMBER(toaplan2_state::video_count_r)
{
/* +---------+---------+--------+---------------------------+ */
/* | /H-Sync | /V-Sync | /Blank | Scanline Count | */
@@ -517,11 +517,10 @@ static READ16_HANDLER( video_count_r )
/* +---------+---------+--------+---------------------------+ */
/*************** Control Signals are active low ***************/
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- int hpos = space->machine().primary_screen->hpos();
- int vpos = space->machine().primary_screen->vpos();
+ int hpos = machine().primary_screen->hpos();
+ int vpos = machine().primary_screen->vpos();
- state->m_video_status = 0xff00; // Set signals inactive
+ m_video_status = 0xff00; // Set signals inactive
vpos = (vpos + 15) % 262;
@@ -531,23 +530,23 @@ static READ16_HANDLER( video_count_r )
vblank = (vpos >= 247) && (vpos <= 250);
if (hblank)
- state->m_video_status &= ~0x8000;
+ m_video_status &= ~0x8000;
if (vblank)
- state->m_video_status &= ~0x4000;
+ m_video_status &= ~0x4000;
if (vblank || hblank) // ?? Dogyuun is too slow if this is wrong
- state->m_video_status &= ~0x0100;
+ m_video_status &= ~0x0100;
if (vpos < 256)
- state->m_video_status |= (vpos & 0xff);
+ m_video_status |= (vpos & 0xff);
else
- state->m_video_status |= 0xff;
+ m_video_status |= 0xff;
-// logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,space->machine().primary_screen->vblank());
+// logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,machine().primary_screen->vblank());
- return state->m_video_status;
+ return m_video_status;
}
-static WRITE8_HANDLER( toaplan2_coin_w )
+WRITE8_MEMBER(toaplan2_state::toaplan2_coin_w)
{
/* +----------------+------ Bits 7-5 not used ------+--------------+ */
/* | Coin Lockout 2 | Coin Lockout 1 | Coin Count 2 | Coin Count 1 | */
@@ -555,14 +554,14 @@ static WRITE8_HANDLER( toaplan2_coin_w )
if (data & 0x0f)
{
- coin_lockout_w( space->machine(), 0, ((data & 4) ? 0 : 1) );
- coin_lockout_w( space->machine(), 1, ((data & 8) ? 0 : 1) );
- coin_counter_w( space->machine(), 0, (data & 1) );
- coin_counter_w( space->machine(), 1, (data & 2) );
+ coin_lockout_w( machine(), 0, ((data & 4) ? 0 : 1) );
+ coin_lockout_w( machine(), 1, ((data & 8) ? 0 : 1) );
+ coin_counter_w( machine(), 0, (data & 1) );
+ coin_counter_w( machine(), 1, (data & 2) );
}
else
{
- coin_lockout_global_w(space->machine(), 1); // Lock all coin slots
+ coin_lockout_global_w(machine(), 1); // Lock all coin slots
}
if (data & 0xe0)
{
@@ -571,7 +570,7 @@ static WRITE8_HANDLER( toaplan2_coin_w )
}
-static WRITE16_HANDLER( toaplan2_coin_word_w )
+WRITE16_MEMBER(toaplan2_state::toaplan2_coin_word_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -584,17 +583,16 @@ static WRITE16_HANDLER( toaplan2_coin_word_w )
}
-static WRITE16_HANDLER( toaplan2_v25_coin_word_w )
+WRITE16_MEMBER(toaplan2_state::toaplan2_v25_coin_word_w)
{
logerror("toaplan2_v25_coin_word_w %04x\n",data);
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
toaplan2_coin_w(space, offset, data & 0x0f);
- device_set_input_line(state->m_sub_cpu, INPUT_LINE_RESET, (data & state->m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_sub_cpu, INPUT_LINE_RESET, (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
}
if (ACCESSING_BITS_8_15 && (data & 0xff00) )
{
@@ -603,12 +601,12 @@ static WRITE16_HANDLER( toaplan2_v25_coin_word_w )
}
-static WRITE16_HANDLER( shippumd_coin_word_w )
+WRITE16_MEMBER(toaplan2_state::shippumd_coin_word_w)
{
if (ACCESSING_BITS_0_7)
{
toaplan2_coin_w(space, offset, data & 0xff);
- space->machine().device<okim6295_device>("oki")->set_bank_base(((data & 0x10) >> 4) * 0x40000);
+ machine().device<okim6295_device>("oki")->set_bank_base(((data & 0x10) >> 4) * 0x40000);
}
if (ACCESSING_BITS_8_15 && (data & 0xff00) )
{
@@ -617,36 +615,33 @@ static WRITE16_HANDLER( shippumd_coin_word_w )
}
-static READ16_HANDLER( shared_ram_r )
+READ16_MEMBER(toaplan2_state::shared_ram_r)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- return state->m_shared_ram[offset];
+ return m_shared_ram[offset];
}
-static WRITE16_HANDLER( shared_ram_w )
+WRITE16_MEMBER(toaplan2_state::shared_ram_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- state->m_shared_ram[offset] = data;
+ m_shared_ram[offset] = data;
}
}
-static WRITE16_HANDLER( toaplan2_hd647180_cpu_w )
+WRITE16_MEMBER(toaplan2_state::toaplan2_hd647180_cpu_w)
{
// Command sent to secondary CPU. Support for HD647180 will be
// required when a ROM dump becomes available for this hardware
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- state->m_mcu_data = data & 0xff;
- logerror("PC:%08x Writing command (%04x) to secondary CPU shared port\n", cpu_get_previouspc(&space->device()), state->m_mcu_data);
+ m_mcu_data = data & 0xff;
+ logerror("PC:%08x Writing command (%04x) to secondary CPU shared port\n", cpu_get_previouspc(&space.device()), m_mcu_data);
}
}
@@ -664,46 +659,43 @@ static CUSTOM_INPUT( c2map_r )
}
-static READ16_HANDLER( ghox_p1_h_analog_r )
+READ16_MEMBER(toaplan2_state::ghox_p1_h_analog_r)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
INT8 value, new_value;
- new_value = input_port_read(space->machine(), "PAD1");
- if (new_value == state->m_old_p1_paddle_h) return 0;
- value = new_value - state->m_old_p1_paddle_h;
- state->m_old_p1_paddle_h = new_value;
+ new_value = input_port_read(machine(), "PAD1");
+ if (new_value == m_old_p1_paddle_h) return 0;
+ value = new_value - m_old_p1_paddle_h;
+ m_old_p1_paddle_h = new_value;
return value;
}
-static READ16_HANDLER( ghox_p2_h_analog_r )
+READ16_MEMBER(toaplan2_state::ghox_p2_h_analog_r)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
INT8 value, new_value;
- new_value = input_port_read(space->machine(), "PAD2");
- if (new_value == state->m_old_p2_paddle_h) return 0;
- value = new_value - state->m_old_p2_paddle_h;
- state->m_old_p2_paddle_h = new_value;
+ new_value = input_port_read(machine(), "PAD2");
+ if (new_value == m_old_p2_paddle_h) return 0;
+ value = new_value - m_old_p2_paddle_h;
+ m_old_p2_paddle_h = new_value;
return value;
}
-static READ16_HANDLER( ghox_mcu_r )
+READ16_MEMBER(toaplan2_state::ghox_mcu_r)
{
return 0xff;
}
-static WRITE16_HANDLER( ghox_mcu_w )
+WRITE16_MEMBER(toaplan2_state::ghox_mcu_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- UINT16 *toaplan2_shared_ram16 = state->m_shared_ram16;
+ UINT16 *toaplan2_shared_ram16 = m_shared_ram16;
- state->m_mcu_data = data;
+ m_mcu_data = data;
if ((data >= 0xd0) && (data < 0xe0))
{
offset = ((data & 0x0f) * 2) + (0x38 / 2);
@@ -712,7 +704,7 @@ static WRITE16_HANDLER( ghox_mcu_w )
}
else
{
- logerror("PC:%08x Writing %08x to HD647180 cpu shared ram status port\n", cpu_get_previouspc(&space->device()), state->m_mcu_data);
+ logerror("PC:%08x Writing %08x to HD647180 cpu shared ram status port\n", cpu_get_previouspc(&space.device()), m_mcu_data);
}
toaplan2_shared_ram16[0x56 / 2] = 0x004e; // Return a RTS instruction
toaplan2_shared_ram16[0x58 / 2] = 0x0075;
@@ -740,7 +732,7 @@ static WRITE16_HANDLER( ghox_mcu_w )
}
-static READ16_HANDLER( ghox_shared_ram_r )
+READ16_MEMBER(toaplan2_state::ghox_shared_ram_r)
{
// Ghox 68K reads data from MCU shared RAM and writes it to main RAM.
// It then subroutine jumps to main RAM and executes this code.
@@ -754,28 +746,25 @@ static READ16_HANDLER( ghox_shared_ram_r )
// Offset $44 and $42 are accessed from around PC:0FB52
// Offset $48 and $46 are accessed from around PC:06776
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- return state->m_shared_ram16[offset] & 0xff;
+ return m_shared_ram16[offset] & 0xff;
}
-static WRITE16_HANDLER( ghox_shared_ram_w )
+WRITE16_MEMBER(toaplan2_state::ghox_shared_ram_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- state->m_shared_ram16[offset] = data & 0xff;
+ m_shared_ram16[offset] = data & 0xff;
}
}
-static WRITE16_HANDLER( fixeight_subcpu_ctrl_w )
+WRITE16_MEMBER(toaplan2_state::fixeight_subcpu_ctrl_w)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- device_set_input_line(state->m_sub_cpu, INPUT_LINE_RESET, (data & state->m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
+ device_set_input_line(m_sub_cpu, INPUT_LINE_RESET, (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
}
@@ -788,35 +777,35 @@ static WRITE16_DEVICE_HANDLER( oki_bankswitch_w )
}
-static WRITE16_HANDLER( fixeightbl_oki_bankswitch_w )
+WRITE16_MEMBER(toaplan2_state::fixeightbl_oki_bankswitch_w)
{
if (ACCESSING_BITS_0_7)
{
data &= 7;
- if (data <= 4) memory_set_bank(space->machine(), "bank1", data);
+ if (data <= 4) memory_set_bank(machine(), "bank1", data);
}
}
-static READ8_HANDLER( v25_dswa_r )
+READ8_MEMBER(toaplan2_state::v25_dswa_r)
{
- return input_port_read(space->machine(), "DSWA") ^ 0xff;
+ return input_port_read(machine(), "DSWA") ^ 0xff;
}
-static READ8_HANDLER( v25_dswb_r )
+READ8_MEMBER(toaplan2_state::v25_dswb_r)
{
- return input_port_read(space->machine(), "DSWB") ^ 0xff;
+ return input_port_read(machine(), "DSWB") ^ 0xff;
}
-static READ8_HANDLER( v25_jmpr_r )
+READ8_MEMBER(toaplan2_state::v25_jmpr_r)
{
- return input_port_read(space->machine(), "JMPR") ^ 0xff;
+ return input_port_read(machine(), "JMPR") ^ 0xff;
}
-static READ8_HANDLER( fixeight_region_r )
+READ8_MEMBER(toaplan2_state::fixeight_region_r)
{
// this must match the eeprom!
// however there is no valid value that makes the dumped eeprom boot
@@ -824,22 +813,22 @@ static READ8_HANDLER( fixeight_region_r )
// this code, and the default eeproms use should be considered subject
// to change
- if (!strcmp(space->machine().system().name,"fixeightkt")) return 0x00;
- if (!strcmp(space->machine().system().name,"fixeightk")) return 0x01;
- if (!strcmp(space->machine().system().name,"fixeightht")) return 0x02;
- if (!strcmp(space->machine().system().name,"fixeighth")) return 0x03;
- if (!strcmp(space->machine().system().name,"fixeighttwt")) return 0x04;
- if (!strcmp(space->machine().system().name,"fixeighttw")) return 0x05;
- if (!strcmp(space->machine().system().name,"fixeightat")) return 0x06;
- if (!strcmp(space->machine().system().name,"fixeighta")) return 0x07;
- if (!strcmp(space->machine().system().name,"fixeightt")) return 0x08;
- if (!strcmp(space->machine().system().name,"fixeight9")) return 0x09;
- if (!strcmp(space->machine().system().name,"fixeighta")) return 0x0a;
- if (!strcmp(space->machine().system().name,"fixeightu")) return 0x0b;
-// if (!strcmp(space->machine().system().name,"fixeightc")) return 0x0c; // invalid
-// if (!strcmp(space->machine().system().name,"fixeightd")) return 0x0d; // invalid
- if (!strcmp(space->machine().system().name,"fixeightj")) return 0x0e;
- if (!strcmp(space->machine().system().name,"fixeightjt")) return 0x0f;
+ if (!strcmp(machine().system().name,"fixeightkt")) return 0x00;
+ if (!strcmp(machine().system().name,"fixeightk")) return 0x01;
+ if (!strcmp(machine().system().name,"fixeightht")) return 0x02;
+ if (!strcmp(machine().system().name,"fixeighth")) return 0x03;
+ if (!strcmp(machine().system().name,"fixeighttwt")) return 0x04;
+ if (!strcmp(machine().system().name,"fixeighttw")) return 0x05;
+ if (!strcmp(machine().system().name,"fixeightat")) return 0x06;
+ if (!strcmp(machine().system().name,"fixeighta")) return 0x07;
+ if (!strcmp(machine().system().name,"fixeightt")) return 0x08;
+ if (!strcmp(machine().system().name,"fixeight9")) return 0x09;
+ if (!strcmp(machine().system().name,"fixeighta")) return 0x0a;
+ if (!strcmp(machine().system().name,"fixeightu")) return 0x0b;
+// if (!strcmp(machine().system().name,"fixeightc")) return 0x0c; // invalid
+// if (!strcmp(machine().system().name,"fixeightd")) return 0x0d; // invalid
+ if (!strcmp(machine().system().name,"fixeightj")) return 0x0e;
+ if (!strcmp(machine().system().name,"fixeightjt")) return 0x0f;
return 0x00;
}
@@ -850,9 +839,9 @@ static READ8_HANDLER( fixeight_region_r )
***************************************************************************/
-static WRITE8_HANDLER( raizing_z80_bankswitch_w )
+WRITE8_MEMBER(toaplan2_state::raizing_z80_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
@@ -861,28 +850,27 @@ static WRITE8_HANDLER( raizing_z80_bankswitch_w )
// it may not be a coincidence that the composer and sound designer for
// these two games, Manabu "Santaruru" Namiki, came to Raizing from NMK...
-static WRITE8_HANDLER( raizing_oki_bankswitch_w )
+WRITE8_MEMBER(toaplan2_state::raizing_oki_bankswitch_w)
{
- nmk112_device *nmk112 = space->machine().device<nmk112_device>("nmk112");
+ nmk112_device *nmk112 = machine().device<nmk112_device>("nmk112");
nmk112_okibank_w(nmk112, offset, data & 0x0f);
nmk112_okibank_w(nmk112, offset + 1, (data >> 4) & 0x0f);
}
-static WRITE16_HANDLER( bgaregga_soundlatch_w )
+WRITE16_MEMBER(toaplan2_state::bgaregga_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_sub_cpu, 0, HOLD_LINE);
+ device_set_input_line(m_sub_cpu, 0, HOLD_LINE);
}
}
-static READ8_HANDLER( bgaregga_E01D_r )
+READ8_MEMBER(toaplan2_state::bgaregga_E01D_r)
{
// the Z80 reads this address during its IRQ routine,
// and reads the soundlatch only if the lowest bit is clear.
@@ -890,7 +878,7 @@ static READ8_HANDLER( bgaregga_E01D_r )
}
-static WRITE8_HANDLER( bgaregga_E00C_w )
+WRITE8_MEMBER(toaplan2_state::bgaregga_E00C_w)
{
// the Z80 writes here after reading the soundlatch.
// I would think that this was an acknowledge latch like
@@ -899,93 +887,86 @@ static WRITE8_HANDLER( bgaregga_E00C_w )
}
-static READ16_HANDLER( batrider_z80_busack_r )
+READ16_MEMBER(toaplan2_state::batrider_z80_busack_r)
{
// Bit 0x01 returns the status of BUSAK from the Z80.
// These accesses are made when the 68K wants to read the Z80
// ROM code. Failure to return the correct status incurrs a Sound Error.
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- return state->m_z80_busreq; // Loop BUSRQ to BUSAK
+ return m_z80_busreq; // Loop BUSRQ to BUSAK
}
-static WRITE16_HANDLER( batrider_z80_busreq_w )
+WRITE16_MEMBER(toaplan2_state::batrider_z80_busreq_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- state->m_z80_busreq = (data & 0x01); // see batrider_z80_busack_r above
+ m_z80_busreq = (data & 0x01); // see batrider_z80_busack_r above
}
}
-static READ16_HANDLER( batrider_z80rom_r )
+READ16_MEMBER(toaplan2_state::batrider_z80rom_r)
{
- UINT8 *Z80 = space->machine().region("audiocpu")->base();
+ UINT8 *Z80 = machine().region("audiocpu")->base();
return Z80[offset];
}
// these two latches are always written together, via a single move.l instruction
-static WRITE16_HANDLER( batrider_soundlatch_w )
+WRITE16_MEMBER(toaplan2_state::batrider_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
soundlatch_w(space, offset, data & 0xff);
- device_set_input_line(state->m_sub_cpu, INPUT_LINE_NMI, ASSERT_LINE);
+ device_set_input_line(m_sub_cpu, INPUT_LINE_NMI, ASSERT_LINE);
}
}
-static WRITE16_HANDLER( batrider_soundlatch2_w )
+WRITE16_MEMBER(toaplan2_state::batrider_soundlatch2_w)
{
if (ACCESSING_BITS_0_7)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
soundlatch2_w(space, offset, data & 0xff);
- device_set_input_line(state->m_sub_cpu, INPUT_LINE_NMI, ASSERT_LINE);
+ device_set_input_line(m_sub_cpu, INPUT_LINE_NMI, ASSERT_LINE);
}
}
-static WRITE16_HANDLER( batrider_unknown_sound_w )
+WRITE16_MEMBER(toaplan2_state::batrider_unknown_sound_w)
{
// the 68K writes here when it wants a sound acknowledge IRQ from the Z80
// for bbakraid this is on every sound command; for batrider, only on certain commands
}
-static WRITE16_HANDLER( batrider_clear_sndirq_w )
+WRITE16_MEMBER(toaplan2_state::batrider_clear_sndirq_w)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
// not sure whether this is correct
// the 68K writes here during the sound IRQ handler, and nowhere else...
- device_set_input_line(state->m_main_cpu, state->m_sndirq_line, CLEAR_LINE);
+ device_set_input_line(m_main_cpu, m_sndirq_line, CLEAR_LINE);
}
-static WRITE8_HANDLER( batrider_sndirq_w )
+WRITE8_MEMBER(toaplan2_state::batrider_sndirq_w)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
// if batrider_clear_sndirq_w() is correct, should this be ASSERT_LINE?
- device_set_input_line(state->m_main_cpu, state->m_sndirq_line, HOLD_LINE);
+ device_set_input_line(m_main_cpu, m_sndirq_line, HOLD_LINE);
}
-static WRITE8_HANDLER( batrider_clear_nmi_w )
+WRITE8_MEMBER(toaplan2_state::batrider_clear_nmi_w)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- device_set_input_line(state->m_sub_cpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_sub_cpu, INPUT_LINE_NMI, CLEAR_LINE);
}
@@ -1006,10 +987,9 @@ static const eeprom_interface bbakraid_93C66_intf =
};
-static READ16_HANDLER( bbakraid_eeprom_r )
+READ16_MEMBER(toaplan2_state::bbakraid_eeprom_r)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
// Bit 0x01 returns the status of BUSAK from the Z80.
// BUSRQ is activated via bit 0x10 on the EEPROM write port.
@@ -1018,23 +998,22 @@ static READ16_HANDLER( bbakraid_eeprom_r )
int data;
data = ((eeprom->read_bit() & 0x01) << 4);
- data |= ((state->m_z80_busreq >> 4) & 0x01); // Loop BUSRQ to BUSAK
+ data |= ((m_z80_busreq >> 4) & 0x01); // Loop BUSRQ to BUSAK
return data;
}
-static WRITE16_HANDLER( bbakraid_eeprom_w )
+WRITE16_MEMBER(toaplan2_state::bbakraid_eeprom_w)
{
- toaplan2_state *state = space->machine().driver_data<toaplan2_state>();
if (data & ~0x001f)
- logerror("CPU #0 PC:%06X - Unknown EEPROM data being written %04X\n",cpu_get_pc(&space->device()),data);
+ logerror("CPU #0 PC:%06X - Unknown EEPROM data being written %04X\n",cpu_get_pc(&space.device()),data);
if ( ACCESSING_BITS_0_7 )
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
- state->m_z80_busreq = data & 0x10; // see bbakraid_eeprom_r above
+ m_z80_busreq = data & 0x10; // see bbakraid_eeprom_r above
}
@@ -1055,28 +1034,28 @@ static ADDRESS_MAP_START( tekipaki_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x180010, 0x180011) AM_READ_PORT("DSWB")
AM_RANGE(0x180020, 0x180021) AM_READ_PORT("SYS")
AM_RANGE(0x180030, 0x180031) AM_READ_PORT("JMPR") // CPU 2 busy and Region Jumper block
- AM_RANGE(0x180040, 0x180041) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x180040, 0x180041) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x180050, 0x180051) AM_READ_PORT("IN1")
AM_RANGE(0x180060, 0x180061) AM_READ_PORT("IN2")
- AM_RANGE(0x180070, 0x180071) AM_WRITE_LEGACY(toaplan2_hd647180_cpu_w)
+ AM_RANGE(0x180070, 0x180071) AM_WRITE(toaplan2_hd647180_cpu_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( ghox_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x040000, 0x040001) AM_READ_LEGACY(ghox_p2_h_analog_r)
+ AM_RANGE(0x040000, 0x040001) AM_READ(ghox_p2_h_analog_r)
AM_RANGE(0x080000, 0x083fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x100000, 0x100001) AM_READ_LEGACY(ghox_p1_h_analog_r)
+ AM_RANGE(0x100000, 0x100001) AM_READ(ghox_p1_h_analog_r)
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x180000, 0x180001) AM_READWRITE_LEGACY(ghox_mcu_r, ghox_mcu_w) // really part of shared RAM
+ AM_RANGE(0x180000, 0x180001) AM_READWRITE(ghox_mcu_r, ghox_mcu_w) // really part of shared RAM
AM_RANGE(0x180006, 0x180007) AM_READ_PORT("DSWA")
AM_RANGE(0x180008, 0x180009) AM_READ_PORT("DSWB")
AM_RANGE(0x180010, 0x180011) AM_READ_PORT("SYS")
AM_RANGE(0x18000c, 0x18000d) AM_READ_PORT("IN1")
AM_RANGE(0x18000e, 0x18000f) AM_READ_PORT("IN2")
- AM_RANGE(0x180500, 0x180fff) AM_READWRITE_LEGACY(ghox_shared_ram_r, ghox_shared_ram_w) AM_BASE(m_shared_ram16)
- AM_RANGE(0x181000, 0x181001) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x180500, 0x180fff) AM_READWRITE(ghox_shared_ram_r, ghox_shared_ram_w) AM_BASE(m_shared_ram16)
+ AM_RANGE(0x181000, 0x181001) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x18100c, 0x18100d) AM_READ_PORT("JMPR")
ADDRESS_MAP_END
@@ -1087,26 +1066,26 @@ static ADDRESS_MAP_START( dogyuun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("IN1")
AM_RANGE(0x200014, 0x200015) AM_READ_PORT("IN2")
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
- AM_RANGE(0x20001c, 0x20001d) AM_WRITE_LEGACY(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
- AM_RANGE(0x210000, 0x21ffff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w )
+ AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
+ AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE_LEGACY("gp9001vdp1", gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(video_count_r) // test bit 8
+ AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8
ADDRESS_MAP_END
static ADDRESS_MAP_START( kbash_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
- AM_RANGE(0x200000, 0x200fff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w )
+ AM_RANGE(0x200000, 0x200fff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x208010, 0x208011) AM_READ_PORT("IN1")
AM_RANGE(0x208014, 0x208015) AM_READ_PORT("IN2")
AM_RANGE(0x208018, 0x208019) AM_READ_PORT("SYS")
- AM_RANGE(0x20801c, 0x20801d) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x20801c, 0x20801d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(video_count_r) // test bit 8
+ AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r) // test bit 8
ADDRESS_MAP_END
@@ -1125,7 +1104,7 @@ static ADDRESS_MAP_START( kbash2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
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(0x20002c, 0x20002d) AM_READ_LEGACY(video_count_r)
+ 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_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
@@ -1142,7 +1121,7 @@ static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x403000, 0x4031ff) AM_RAM_WRITE_LEGACY(toaplan2_txscrollram16_w) AM_BASE_SIZE(m_txscrollram16, m_tx_scroll_vram_size)
AM_RANGE(0x403200, 0x403fff) AM_RAM
AM_RANGE(0x500000, 0x50ffff) AM_RAM_WRITE_LEGACY(toaplan2_tx_gfxram16_w) AM_BASE(m_tx_gfxram16)
- AM_RANGE(0x600000, 0x600001) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x600000, 0x600001) AM_READ(video_count_r)
AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSWA")
AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSWB")
AM_RANGE(0x700004, 0x700005) AM_READ_PORT("JMPR")
@@ -1151,7 +1130,7 @@ static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x70000a, 0x70000b) AM_READ_PORT("SYS")
AM_RANGE(0x700010, 0x700011) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x700014, 0x700017) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff)
- AM_RANGE(0x70001e, 0x70001f) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x70001e, 0x70001f) AM_WRITE(toaplan2_coin_word_w)
ADDRESS_MAP_END
@@ -1160,8 +1139,8 @@ static ADDRESS_MAP_START( pipibibs_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x080000, 0x082fff) AM_RAM
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x190000, 0x190fff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
- AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x190000, 0x190fff) AM_READWRITE(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x19c020, 0x19c021) AM_READ_PORT("DSWA")
AM_RANGE(0x19c024, 0x19c025) AM_READ_PORT("DSWB")
AM_RANGE(0x19c028, 0x19c029) AM_READ_PORT("JMPR")
@@ -1181,9 +1160,9 @@ static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16, toaplan2_sta
// AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP // ???
AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE_LEGACY("gp9001vdp0", pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
AM_RANGE(0x188000, 0x18800f) AM_DEVWRITE_LEGACY("gp9001vdp0", pipibibi_bootleg_scroll_w)
- AM_RANGE(0x190002, 0x190003) AM_READ_LEGACY(shared_ram_r) // Z80 ready ?
- AM_RANGE(0x190010, 0x190011) AM_WRITE_LEGACY(shared_ram_w) // Z80 task to perform
- AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x190002, 0x190003) AM_READ(shared_ram_r) // Z80 ready ?
+ AM_RANGE(0x190010, 0x190011) AM_WRITE(shared_ram_w) // Z80 task to perform
+ AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x19c020, 0x19c021) AM_READ_PORT("DSWA")
AM_RANGE(0x19c024, 0x19c025) AM_READ_PORT("DSWB")
AM_RANGE(0x19c028, 0x19c029) AM_READ_PORT("JMPR")
@@ -1200,16 +1179,16 @@ static ADDRESS_MAP_START( fixeight_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200004, 0x200005) AM_READ_PORT("IN2")
AM_RANGE(0x200008, 0x200009) AM_READ_PORT("IN3")
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("SYS")
- AM_RANGE(0x20001c, 0x20001d) AM_WRITE_LEGACY(toaplan2_coin_word_w)
- AM_RANGE(0x280000, 0x28ffff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w )
+ AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_coin_word_w)
+ AM_RANGE(0x280000, 0x28ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE_LEGACY(toaplan2_txvideoram16_w) AM_BASE_SIZE(m_txvideoram16, m_tx_vram_size)
AM_RANGE(0x502000, 0x5021ff) AM_RAM_WRITE_LEGACY(toaplan2_txvideoram16_offs_w) AM_BASE_SIZE(m_txvideoram16_offs, m_tx_offs_vram_size)
AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE_LEGACY(toaplan2_txscrollram16_w) AM_BASE_SIZE(m_txscrollram16, m_tx_scroll_vram_size)
AM_RANGE(0x600000, 0x60ffff) AM_RAM_WRITE_LEGACY(toaplan2_tx_gfxram16_w) AM_BASE(m_tx_gfxram16)
- AM_RANGE(0x700000, 0x700001) AM_WRITE_LEGACY(fixeight_subcpu_ctrl_w)
- AM_RANGE(0x800000, 0x800001) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x700000, 0x700001) AM_WRITE(fixeight_subcpu_ctrl_w)
+ AM_RANGE(0x800000, 0x800001) AM_READ(video_count_r)
ADDRESS_MAP_END
@@ -1221,7 +1200,7 @@ static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200008, 0x200009) AM_READ_PORT("IN3")
AM_RANGE(0x20000c, 0x20000d) AM_READ_PORT("DSWB")
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("SYS")
- AM_RANGE(0x200014, 0x200015) AM_WRITE_LEGACY(fixeightbl_oki_bankswitch_w) // Sound banking. Code at $4084c, $5070
+ AM_RANGE(0x200014, 0x200015) AM_WRITE(fixeightbl_oki_bankswitch_w) // Sound banking. Code at $4084c, $5070
AM_RANGE(0x200018, 0x200019) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x20001c, 0x20001d) AM_READ_PORT("DSWA")
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
@@ -1229,7 +1208,7 @@ static ADDRESS_MAP_START( fixeightbl_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE_LEGACY(toaplan2_txvideoram16_w) AM_BASE_SIZE(m_txvideoram16, m_tx_vram_size)
AM_RANGE(0x502000, 0x5021ff) AM_RAM_WRITE_LEGACY(toaplan2_txvideoram16_offs_w) AM_BASE_SIZE(m_txvideoram16_offs, m_tx_offs_vram_size)
AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE_LEGACY(toaplan2_txscrollram16_w) AM_BASE_SIZE(m_txscrollram16, m_tx_scroll_vram_size)
- AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
AM_RANGE(0x800000, 0x87ffff) AM_ROM AM_REGION("maincpu", 0x80000)
ADDRESS_MAP_END
@@ -1241,11 +1220,11 @@ static ADDRESS_MAP_START( vfive_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("IN1")
AM_RANGE(0x200014, 0x200015) AM_READ_PORT("IN2")
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
- AM_RANGE(0x20001c, 0x20001d) AM_WRITE_LEGACY(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
- AM_RANGE(0x210000, 0x21ffff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w )
+ AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
+ AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
ADDRESS_MAP_END
@@ -1255,12 +1234,12 @@ static ADDRESS_MAP_START( batsugun_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x200010, 0x200011) AM_READ_PORT("IN1")
AM_RANGE(0x200014, 0x200015) AM_READ_PORT("IN2")
AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
- AM_RANGE(0x20001c, 0x20001d) AM_WRITE_LEGACY(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
- AM_RANGE(0x210000, 0x21ffff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w )
+ AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
+ AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_r, gp9001_vdp_w)
AM_RANGE(0x400000, 0x400fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE_LEGACY("gp9001vdp1", gp9001_vdp_r, gp9001_vdp_w)
- AM_RANGE(0x700000, 0x700001) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
ADDRESS_MAP_END
@@ -1280,22 +1259,22 @@ static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
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(0x700034, 0x700035) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x700034, 0x700035) AM_WRITE(toaplan2_coin_word_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( mahoudai_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x218000, 0x21bfff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
- AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x21c020, 0x21c021) AM_READ_PORT("IN1")
AM_RANGE(0x21c024, 0x21c025) AM_READ_PORT("IN2")
AM_RANGE(0x21c028, 0x21c029) AM_READ_PORT("SYS")
AM_RANGE(0x21c02c, 0x21c02d) AM_READ_PORT("DSWA")
AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
- AM_RANGE(0x21c03c, 0x21c03d) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x21c03c, 0x21c03d) 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_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM
@@ -1310,16 +1289,16 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( shippumd_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x218000, 0x21bfff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
// AM_RANGE(0x21c008, 0x21c009) AM_WRITENOP // ???
- AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE_LEGACY(shippumd_coin_word_w) // Coin count/lock + oki bankswitch
+ AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE(shippumd_coin_word_w) // Coin count/lock + oki bankswitch
AM_RANGE(0x21c020, 0x21c021) AM_READ_PORT("IN1")
AM_RANGE(0x21c024, 0x21c025) AM_READ_PORT("IN2")
AM_RANGE(0x21c028, 0x21c029) AM_READ_PORT("SYS")
AM_RANGE(0x21c02c, 0x21c02d) AM_READ_PORT("DSWA")
AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
- AM_RANGE(0x21c03c, 0x21c03d) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x21c03c, 0x21c03d) 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_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x401000, 0x4017ff) AM_RAM // Unused palette RAM
@@ -1334,15 +1313,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM
- AM_RANGE(0x218000, 0x21bfff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
- AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x218000, 0x21bfff) AM_READWRITE(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x21c01c, 0x21c01d) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x21c020, 0x21c021) AM_READ_PORT("IN1")
AM_RANGE(0x21c024, 0x21c025) AM_READ_PORT("IN2")
AM_RANGE(0x21c028, 0x21c029) AM_READ_PORT("SYS")
AM_RANGE(0x21c02c, 0x21c02d) AM_READ_PORT("DSWA")
AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
- AM_RANGE(0x21c03c, 0x21c03d) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x21c03c, 0x21c03d) 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_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE_LEGACY(toaplan2_txvideoram16_w) AM_BASE_SIZE(m_txvideoram16, m_tx_vram_size)
@@ -1350,7 +1329,7 @@ static ADDRESS_MAP_START( bgaregga_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x502200, 0x502fff) AM_RAM
AM_RANGE(0x503000, 0x5031ff) AM_RAM_WRITE_LEGACY(toaplan2_txscrollram16_w) AM_BASE_SIZE(m_txscrollram16, m_tx_scroll_vram_size)
AM_RANGE(0x503200, 0x503fff) AM_RAM
- AM_RANGE(0x600000, 0x600001) AM_WRITE_LEGACY(bgaregga_soundlatch_w)
+ AM_RANGE(0x600000, 0x600001) AM_WRITE(bgaregga_soundlatch_w)
ADDRESS_MAP_END
@@ -1363,21 +1342,21 @@ static ADDRESS_MAP_START( batrider_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x203200, 0x2033ff) AM_RAM_WRITE_LEGACY(toaplan2_txscrollram16_w) AM_BASE_SIZE(m_txscrollram16, m_tx_scroll_vram_size)
AM_RANGE(0x203400, 0x207fff) AM_RAM AM_BASE_SIZE(m_mainram16, m_mainram_overlap_size)
AM_RANGE(0x208000, 0x20ffff) AM_RAM
- AM_RANGE(0x300000, 0x37ffff) AM_READ_LEGACY(batrider_z80rom_r)
+ AM_RANGE(0x300000, 0x37ffff) AM_READ(batrider_z80rom_r)
AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_alt_r, gp9001_vdp_alt_w)
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("SYS-DSW")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW")
- AM_RANGE(0x500006, 0x500007) AM_READ_LEGACY(video_count_r)
+ AM_RANGE(0x500006, 0x500007) AM_READ(video_count_r)
AM_RANGE(0x500008, 0x500009) AM_READ_LEGACY(soundlatch3_word_r)
AM_RANGE(0x50000a, 0x50000b) AM_READ_LEGACY(soundlatch4_word_r)
- AM_RANGE(0x50000c, 0x50000d) AM_READ_LEGACY(batrider_z80_busack_r)
- AM_RANGE(0x500010, 0x500011) AM_WRITE_LEGACY(toaplan2_coin_word_w)
- AM_RANGE(0x500020, 0x500021) AM_WRITE_LEGACY(batrider_soundlatch_w)
- AM_RANGE(0x500022, 0x500023) AM_WRITE_LEGACY(batrider_soundlatch2_w)
- AM_RANGE(0x500024, 0x500025) AM_WRITE_LEGACY(batrider_unknown_sound_w)
- AM_RANGE(0x500026, 0x500027) AM_WRITE_LEGACY(batrider_clear_sndirq_w)
- AM_RANGE(0x500060, 0x500061) AM_WRITE_LEGACY(batrider_z80_busreq_w)
+ AM_RANGE(0x50000c, 0x50000d) AM_READ(batrider_z80_busack_r)
+ AM_RANGE(0x500010, 0x500011) AM_WRITE(toaplan2_coin_word_w)
+ AM_RANGE(0x500020, 0x500021) AM_WRITE(batrider_soundlatch_w)
+ AM_RANGE(0x500022, 0x500023) AM_WRITE(batrider_soundlatch2_w)
+ AM_RANGE(0x500024, 0x500025) AM_WRITE(batrider_unknown_sound_w)
+ AM_RANGE(0x500026, 0x500027) AM_WRITE(batrider_clear_sndirq_w)
+ AM_RANGE(0x500060, 0x500061) AM_WRITE(batrider_z80_busreq_w)
AM_RANGE(0x500080, 0x500081) AM_WRITE_LEGACY(batrider_textdata_dma_w)
AM_RANGE(0x500082, 0x500083) AM_WRITE_LEGACY(batrider_unknown_dma_w)
AM_RANGE(0x5000c0, 0x5000cf) AM_WRITE_LEGACY(batrider_objectbank_w)
@@ -1393,21 +1372,21 @@ static ADDRESS_MAP_START( bbakraid_68k_mem, AS_PROGRAM, 16, toaplan2_state )
AM_RANGE(0x203200, 0x2033ff) AM_RAM_WRITE_LEGACY(toaplan2_txscrollram16_w) AM_BASE_SIZE(m_txscrollram16, m_tx_scroll_vram_size)
AM_RANGE(0x203400, 0x207fff) AM_RAM AM_BASE_SIZE(m_mainram16, m_mainram_overlap_size)
AM_RANGE(0x208000, 0x20ffff) AM_RAM
- AM_RANGE(0x300000, 0x33ffff) AM_READ_LEGACY(batrider_z80rom_r)
+ AM_RANGE(0x300000, 0x33ffff) AM_READ(batrider_z80rom_r)
AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE_LEGACY("gp9001vdp0", gp9001_vdp_alt_r, gp9001_vdp_alt_w)
AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN")
AM_RANGE(0x500002, 0x500003) AM_READ_PORT("SYS-DSW")
AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW")
- AM_RANGE(0x500006, 0x500007) AM_READ_LEGACY(video_count_r)
- AM_RANGE(0x500008, 0x500009) AM_WRITE_LEGACY(toaplan2_coin_word_w)
+ AM_RANGE(0x500006, 0x500007) AM_READ(video_count_r)
+ AM_RANGE(0x500008, 0x500009) AM_WRITE(toaplan2_coin_word_w)
AM_RANGE(0x500010, 0x500011) AM_READ_LEGACY(soundlatch3_word_r)
AM_RANGE(0x500012, 0x500013) AM_READ_LEGACY(soundlatch4_word_r)
- AM_RANGE(0x500014, 0x500015) AM_WRITE_LEGACY(batrider_soundlatch_w)
- AM_RANGE(0x500016, 0x500017) AM_WRITE_LEGACY(batrider_soundlatch2_w)
- AM_RANGE(0x500018, 0x500019) AM_READ_LEGACY(bbakraid_eeprom_r)
- AM_RANGE(0x50001a, 0x50001b) AM_WRITE_LEGACY(batrider_unknown_sound_w)
- AM_RANGE(0x50001c, 0x50001d) AM_WRITE_LEGACY(batrider_clear_sndirq_w)
- AM_RANGE(0x50001e, 0x50001f) AM_WRITE_LEGACY(bbakraid_eeprom_w)
+ AM_RANGE(0x500014, 0x500015) AM_WRITE(batrider_soundlatch_w)
+ AM_RANGE(0x500016, 0x500017) AM_WRITE(batrider_soundlatch2_w)
+ AM_RANGE(0x500018, 0x500019) AM_READ(bbakraid_eeprom_r)
+ AM_RANGE(0x50001a, 0x50001b) AM_WRITE(batrider_unknown_sound_w)
+ AM_RANGE(0x50001c, 0x50001d) AM_WRITE(batrider_clear_sndirq_w)
+ AM_RANGE(0x50001e, 0x50001f) AM_WRITE(bbakraid_eeprom_w)
AM_RANGE(0x500080, 0x500081) AM_WRITE_LEGACY(batrider_textdata_dma_w)
AM_RANGE(0x500082, 0x500083) AM_WRITE_LEGACY(batrider_unknown_dma_w)
AM_RANGE(0x5000c0, 0x5000cf) AM_WRITE_LEGACY(batrider_objectbank_w)
@@ -1427,7 +1406,7 @@ static ADDRESS_MAP_START( raizing_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state )
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(m_shared_ram)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xe004, 0xe004) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe00e, 0xe00e) AM_WRITE_LEGACY(toaplan2_coin_w)
+ AM_RANGE(0xe00e, 0xe00e) AM_WRITE(toaplan2_coin_w)
ADDRESS_MAP_END
@@ -1437,11 +1416,11 @@ static ADDRESS_MAP_START( bgaregga_sound_z80_mem, AS_PROGRAM, 8, toaplan2_state
AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(m_shared_ram)
AM_RANGE(0xe000, 0xe001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xe004, 0xe004) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xe006, 0xe008) AM_WRITE_LEGACY(raizing_oki_bankswitch_w)
- AM_RANGE(0xe00a, 0xe00a) AM_WRITE_LEGACY(raizing_z80_bankswitch_w)
- AM_RANGE(0xe00c, 0xe00c) AM_WRITE_LEGACY(bgaregga_E00C_w)
+ AM_RANGE(0xe006, 0xe008) AM_WRITE(raizing_oki_bankswitch_w)
+ AM_RANGE(0xe00a, 0xe00a) AM_WRITE(raizing_z80_bankswitch_w)
+ AM_RANGE(0xe00c, 0xe00c) AM_WRITE(bgaregga_E00C_w)
AM_RANGE(0xe01c, 0xe01c) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xe01d, 0xe01d) AM_READ_LEGACY(bgaregga_E01D_r)
+ AM_RANGE(0xe01d, 0xe01d) AM_READ(bgaregga_E01D_r)
ADDRESS_MAP_END
@@ -1456,15 +1435,15 @@ static ADDRESS_MAP_START( batrider_sound_z80_port, AS_IO, 8, toaplan2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0x42, 0x42) AM_WRITE_LEGACY(soundlatch4_w)
- AM_RANGE(0x44, 0x44) AM_WRITE_LEGACY(batrider_sndirq_w)
- AM_RANGE(0x46, 0x46) AM_WRITE_LEGACY(batrider_clear_nmi_w)
+ AM_RANGE(0x44, 0x44) AM_WRITE(batrider_sndirq_w)
+ AM_RANGE(0x46, 0x46) AM_WRITE(batrider_clear_nmi_w)
AM_RANGE(0x48, 0x48) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x4a, 0x4a) AM_READ_LEGACY(soundlatch2_r)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x82, 0x82) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x84, 0x84) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
- AM_RANGE(0x88, 0x88) AM_WRITE_LEGACY(raizing_z80_bankswitch_w)
- AM_RANGE(0xc0, 0xc6) AM_WRITE_LEGACY(raizing_oki_bankswitch_w)
+ AM_RANGE(0x88, 0x88) AM_WRITE(raizing_z80_bankswitch_w)
+ AM_RANGE(0xc0, 0xc6) AM_WRITE(raizing_oki_bankswitch_w)
ADDRESS_MAP_END
@@ -1478,8 +1457,8 @@ static ADDRESS_MAP_START( bbakraid_sound_z80_port, AS_IO, 8, toaplan2_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x40, 0x40) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0x42, 0x42) AM_WRITE_LEGACY(soundlatch4_w)
- AM_RANGE(0x44, 0x44) AM_WRITE_LEGACY(batrider_sndirq_w)
- AM_RANGE(0x46, 0x46) AM_WRITE_LEGACY(batrider_clear_nmi_w)
+ AM_RANGE(0x44, 0x44) AM_WRITE(batrider_sndirq_w)
+ AM_RANGE(0x46, 0x46) AM_WRITE(batrider_clear_nmi_w)
AM_RANGE(0x48, 0x48) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0x4a, 0x4a) AM_READ_LEGACY(soundlatch2_r)
AM_RANGE(0x80, 0x81) AM_DEVREADWRITE_LEGACY("ymz", ymz280b_r, ymz280b_w)
@@ -1510,7 +1489,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( fixeight_v25_mem, AS_PROGRAM, 8, toaplan2_state )
- AM_RANGE(0x00004, 0x00004) AM_READ_LEGACY(fixeight_region_r)
+ AM_RANGE(0x00004, 0x00004) AM_READ(fixeight_region_r)
AM_RANGE(0x0000a, 0x0000b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0x0000c, 0x0000c) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x80000, 0x87fff) AM_MIRROR(0x78000) AM_RAM AM_BASE(m_shared_ram)
@@ -1524,17 +1503,17 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( v25_port, AS_IO, 8, toaplan2_state )
- AM_RANGE(V25_PORT_PT, V25_PORT_PT) AM_READ_LEGACY(v25_dswa_r)
- AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READ_LEGACY(v25_dswb_r)
- AM_RANGE(V25_PORT_P1, V25_PORT_P1) AM_READ_LEGACY(v25_jmpr_r)
+ AM_RANGE(V25_PORT_PT, V25_PORT_PT) AM_READ(v25_dswa_r)
+ AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READ(v25_dswb_r)
+ AM_RANGE(V25_PORT_P1, V25_PORT_P1) AM_READ(v25_jmpr_r)
AM_RANGE(V25_PORT_P2, V25_PORT_P2) AM_WRITENOP // bit 0 is FAULT according to kbash schematic
ADDRESS_MAP_END
static ADDRESS_MAP_START( dogyuun_v25_port, AS_IO, 8, toaplan2_state )
- AM_RANGE(V25_PORT_PT, V25_PORT_PT) AM_READ_LEGACY(v25_dswb_r)
- AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READ_LEGACY(v25_dswa_r)
- AM_RANGE(V25_PORT_P1, V25_PORT_P1) AM_READ_LEGACY(v25_jmpr_r)
+ AM_RANGE(V25_PORT_PT, V25_PORT_PT) AM_READ(v25_dswb_r)
+ AM_RANGE(V25_PORT_P0, V25_PORT_P0) AM_READ(v25_dswa_r)
+ AM_RANGE(V25_PORT_P1, V25_PORT_P1) AM_READ(v25_jmpr_r)
AM_RANGE(V25_PORT_P2, V25_PORT_P2) AM_WRITENOP // bit 0 is FAULT according to kbash schematic
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index 31a5f73b756..56d3b5a2cdd 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -43,13 +43,13 @@ for now. Even at 12 this slowdown still happens a little.
#include "sound/3812intf.h"
#include "includes/toki.h"
-static WRITE16_HANDLER( tokib_soundcommand16_w )
+WRITE16_MEMBER(toki_state::tokib_soundcommand16_w)
{
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
-static READ16_HANDLER( pip16_r )
+READ16_MEMBER(toki_state::pip16_r)
{
return ~0;
}
@@ -81,10 +81,9 @@ static WRITE8_DEVICE_HANDLER( toki_adpcm_control_w )
msm5205_reset_w(device,data & 0x08);
}
-static WRITE8_HANDLER( toki_adpcm_data_w )
+WRITE8_MEMBER(toki_state::toki_adpcm_data_w)
{
- toki_state *state = space->machine().driver_data<toki_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
@@ -118,12 +117,12 @@ static ADDRESS_MAP_START( tokib_map, AS_PROGRAM, 16, toki_state )
AM_RANGE(0x071804, 0x071807) AM_WRITENOP /* sprite related, always 01be0100 */
AM_RANGE(0x07180e, 0x071e45) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0x072000, 0x072001) AM_READ_LEGACY(watchdog_reset16_r) /* probably */
- AM_RANGE(0x075000, 0x075001) AM_WRITE_LEGACY(tokib_soundcommand16_w)
+ AM_RANGE(0x075000, 0x075001) AM_WRITE(tokib_soundcommand16_w)
AM_RANGE(0x075004, 0x07500b) AM_WRITEONLY AM_BASE(m_scrollram16)
AM_RANGE(0x0c0000, 0x0c0001) AM_READ_PORT("DSW")
AM_RANGE(0x0c0002, 0x0c0003) AM_READ_PORT("INPUTS")
AM_RANGE(0x0c0004, 0x0c0005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x0c000e, 0x0c000f) AM_READ_LEGACY(pip16_r) /* sound related, if we return 0 the code writes */
+ AM_RANGE(0x0c000e, 0x0c000f) AM_READ(pip16_r) /* sound related, if we return 0 the code writes */
/* the sound command quickly followed by 0 and the */
/* sound CPU often misses the command. */
ADDRESS_MAP_END
@@ -134,7 +133,7 @@ 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(0xe400, 0xe400) AM_WRITE_LEGACY(toki_adpcm_data_w)
+ 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
AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r)
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 4fda6d05fdc..738ad96d82d 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -243,16 +243,14 @@ Stephh's notes (based on the game M68000 code and some tests) :
#include "topspeed.lh"
-static READ16_HANDLER( sharedram_r )
+READ16_MEMBER(topspeed_state::sharedram_r)
{
- topspeed_state *state = space->machine().driver_data<topspeed_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE16_HANDLER( sharedram_w )
+WRITE16_MEMBER(topspeed_state::sharedram_w)
{
- topspeed_state *state = space->machine().driver_data<topspeed_state>();
- COMBINE_DATA(&state->m_sharedram[offset]);
+ COMBINE_DATA(&m_sharedram[offset]);
}
static void parse_control( running_machine &machine ) /* assumes Z80 sandwiched between 68Ks */
@@ -264,18 +262,17 @@ static void parse_control( running_machine &machine ) /* assumes Z80 sandwiched
device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (state->m_cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE16_HANDLER( cpua_ctrl_w )
+WRITE16_MEMBER(topspeed_state::cpua_ctrl_w)
{
- topspeed_state *state = space->machine().driver_data<topspeed_state>();
if ((data & 0xff00) && ((data & 0xff) == 0))
data = data >> 8; /* for Wgp */
- state->m_cpua_ctrl = data;
+ m_cpua_ctrl = data;
- parse_control(space->machine());
+ parse_control(machine());
- logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #0 PC %06x: write %04x to cpu control\n", cpu_get_pc(&space.device()), data);
}
@@ -323,13 +320,12 @@ static INTERRUPT_GEN( topspeed_cpub_interrupt )
#define STEER_PORT_TAG "STEER"
#define FAKE_PORT_TAG "FAKE"
-static READ8_HANDLER( topspeed_input_bypass_r )
+READ8_MEMBER(topspeed_state::topspeed_input_bypass_r)
{
- topspeed_state *state = space->machine().driver_data<topspeed_state>();
- UINT8 port = tc0220ioc_port_r(state->m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
int steer = 0;
- int analogue_steer = input_port_read_safe(space->machine(), STEER_PORT_TAG, 0x00);
- int fake = input_port_read_safe(space->machine(), FAKE_PORT_TAG, 0x00);
+ int analogue_steer = input_port_read_safe(machine(), STEER_PORT_TAG, 0x00);
+ int fake = input_port_read_safe(machine(), FAKE_PORT_TAG, 0x00);
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
@@ -361,31 +357,31 @@ static READ8_HANDLER( topspeed_input_bypass_r )
return steer >> 8;
default:
- return tc0220ioc_portreg_r(state->m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, offset);
}
}
-static READ16_HANDLER( topspeed_motor_r )
+READ16_MEMBER(topspeed_state::topspeed_motor_r)
{
switch (offset)
{
case 0x0:
- return (space->machine().rand() & 0xff); /* motor status ?? */
+ return (machine().rand() & 0xff); /* motor status ?? */
case 0x101:
return 0x55; /* motor cpu status ? */
default:
- logerror("CPU #0 PC %06x: warning - read from motor cpu %03x\n", cpu_get_pc(&space->device()), offset);
+ logerror("CPU #0 PC %06x: warning - read from motor cpu %03x\n", cpu_get_pc(&space.device()), offset);
return 0;
}
}
-static WRITE16_HANDLER( topspeed_motor_w )
+WRITE16_MEMBER(topspeed_state::topspeed_motor_w)
{
/* Writes $900000-25 and $900200-219 */
- logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n", cpu_get_pc(&space->device()), data, offset);
+ logerror("CPU #0 PC %06x: warning - write %04x to motor cpu %03x\n", cpu_get_pc(&space.device()), data, offset);
}
@@ -444,9 +440,9 @@ static WRITE8_DEVICE_HANDLER( topspeed_msm5205_stop_w )
static ADDRESS_MAP_START( topspeed_map, AS_PROGRAM, 16, topspeed_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x400000, 0x40ffff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE_SIZE(m_sharedram, m_sharedram_size)
+ AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE_SIZE(m_sharedram, m_sharedram_size)
AM_RANGE(0x500000, 0x503fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x600002, 0x600003) AM_WRITE_LEGACY(cpua_ctrl_w)
+ AM_RANGE(0x600002, 0x600003) AM_WRITE(cpua_ctrl_w)
AM_RANGE(0x7e0000, 0x7e0001) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_port_w, 0x00ff)
AM_RANGE(0x7e0002, 0x7e0003) AM_DEVREADWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, tc0140syt_comm_w, 0x00ff)
AM_RANGE(0x800000, 0x8003ff) AM_RAM AM_BASE(m_raster_ctrl)
@@ -465,10 +461,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( topspeed_cpub_map, AS_PROGRAM, 16, topspeed_state )
AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x400000, 0X40ffff) AM_READWRITE_LEGACY(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
- AM_RANGE(0x880000, 0x880001) AM_READ8_LEGACY(topspeed_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
+ AM_RANGE(0x400000, 0X40ffff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0x880000, 0x880001) AM_READ8(topspeed_input_bypass_r, 0x00ff) AM_DEVWRITE8_LEGACY("tc0220ioc", tc0220ioc_portreg_w, 0x00ff)
AM_RANGE(0x880002, 0x880003) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_port_r, tc0220ioc_port_w, 0x00ff)
- AM_RANGE(0x900000, 0x9003ff) AM_READWRITE_LEGACY(topspeed_motor_r, topspeed_motor_w) /* motor CPU */
+ AM_RANGE(0x900000, 0x9003ff) AM_READWRITE(topspeed_motor_r, topspeed_motor_w) /* motor CPU */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c
index 952ae93ef19..4e33d00f51c 100644
--- a/src/mame/drivers/toypop.c
+++ b/src/mame/drivers/toypop.c
@@ -37,53 +37,46 @@ TODO:
#include "includes/toypop.h"
-static READ16_HANDLER( toypop_m68000_sharedram_r )
+READ16_MEMBER(toypop_state::toypop_m68000_sharedram_r)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- return state->m_m68000_sharedram[offset];
+ return m_m68000_sharedram[offset];
}
-static WRITE16_HANDLER( toypop_m68000_sharedram_w )
+WRITE16_MEMBER(toypop_state::toypop_m68000_sharedram_w)
{
if (ACCESSING_BITS_0_7)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_m68000_sharedram[offset] = data & 0xff;
+ m_m68000_sharedram[offset] = data & 0xff;
}
}
-static READ8_HANDLER( toypop_main_interrupt_enable_r )
+READ8_MEMBER(toypop_state::toypop_main_interrupt_enable_r)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_main_irq_mask = 1;
+ m_main_irq_mask = 1;
return 0;
}
-static WRITE8_HANDLER( toypop_main_interrupt_enable_w )
+WRITE8_MEMBER(toypop_state::toypop_main_interrupt_enable_w)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_main_irq_mask = 1;
+ m_main_irq_mask = 1;
}
-static WRITE8_HANDLER( toypop_main_interrupt_disable_w )
+WRITE8_MEMBER(toypop_state::toypop_main_interrupt_disable_w)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_main_irq_mask = 0;
-// cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ m_main_irq_mask = 0;
+// cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( toypop_sound_interrupt_enable_acknowledge_w )
+WRITE8_MEMBER(toypop_state::toypop_sound_interrupt_enable_acknowledge_w)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_sound_irq_mask = 1;
-// cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+ m_sound_irq_mask = 1;
+// cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( toypop_sound_interrupt_disable_w )
+WRITE8_MEMBER(toypop_state::toypop_sound_interrupt_disable_w)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_sound_irq_mask = 0;
+ m_sound_irq_mask = 0;
}
static TIMER_CALLBACK( namcoio_run )
@@ -135,24 +128,24 @@ static INTERRUPT_GEN( toypop_sound_timer_irq )
device_set_input_line(device, 0, HOLD_LINE);
}
-static WRITE8_HANDLER( toypop_sound_clear_w )
+WRITE8_MEMBER(toypop_state::toypop_sound_clear_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, CLEAR_LINE);
}
-static WRITE8_HANDLER( toypop_sound_assert_w )
+WRITE8_MEMBER(toypop_state::toypop_sound_assert_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, ASSERT_LINE);
}
-static WRITE8_HANDLER( toypop_m68000_clear_w )
+WRITE8_MEMBER(toypop_state::toypop_m68000_clear_w)
{
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, CLEAR_LINE);
}
-static WRITE8_HANDLER( toypop_m68000_assert_w )
+WRITE8_MEMBER(toypop_state::toypop_m68000_assert_w)
{
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, ASSERT_LINE);
}
static MACHINE_RESET( toypop )
@@ -175,16 +168,14 @@ static INTERRUPT_GEN( toypop_m68000_interrupt )
device_set_input_line(device, 6, HOLD_LINE);
}
-static WRITE16_HANDLER( toypop_m68000_interrupt_enable_w )
+WRITE16_MEMBER(toypop_state::toypop_m68000_interrupt_enable_w)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_interrupt_enable_68k = 1;
+ m_interrupt_enable_68k = 1;
}
-static WRITE16_HANDLER( toypop_m68000_interrupt_disable_w )
+WRITE16_MEMBER(toypop_state::toypop_m68000_interrupt_disable_w)
{
- toypop_state *state = space->machine().driver_data<toypop_state>();
- state->m_interrupt_enable_68k = 0;
+ m_interrupt_enable_68k = 0;
}
@@ -203,12 +194,12 @@ static ADDRESS_MAP_START( liblrabl_map, AS_PROGRAM, 8, toypop_state )
AM_RANGE(0x6800, 0x680f) AM_DEVREADWRITE_LEGACY("58xx", namcoio_r, namcoio_w) /* custom I/O */
AM_RANGE(0x6810, 0x681f) AM_DEVREADWRITE_LEGACY("56xx_1", namcoio_r, namcoio_w) /* custom I/O */
AM_RANGE(0x6820, 0x682f) AM_DEVREADWRITE_LEGACY("56xx_2", namcoio_r, namcoio_w) /* custom I/O */
- AM_RANGE(0x7000, 0x7000) AM_WRITE_LEGACY(toypop_main_interrupt_enable_w) /* enable interrupt */
- AM_RANGE(0x7800, 0x7800) AM_READWRITE_LEGACY(watchdog_reset_r, toypop_main_interrupt_disable_w) /* disable interrupt */
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(toypop_m68000_clear_w) /* reset 68000 */
- AM_RANGE(0x8800, 0x8800) AM_WRITE_LEGACY(toypop_m68000_assert_w) /* reset 68000 */
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(toypop_sound_clear_w) /* sound CPU reset */
- AM_RANGE(0x9800, 0x9800) AM_WRITE_LEGACY(toypop_sound_assert_w) /* sound CPU reset */
+ AM_RANGE(0x7000, 0x7000) AM_WRITE(toypop_main_interrupt_enable_w) /* enable interrupt */
+ AM_RANGE(0x7800, 0x7800) AM_READ_LEGACY(watchdog_reset_r) AM_WRITE(toypop_main_interrupt_disable_w) /* disable interrupt */
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w) /* reset 68000 */
+ AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w) /* reset 68000 */
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(toypop_sound_clear_w) /* sound CPU reset */
+ AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w) /* sound CPU reset */
AM_RANGE(0xa000, 0xa001) AM_WRITE_LEGACY(toypop_palettebank_w) /* background image palette */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM code */
ADDRESS_MAP_END
@@ -221,11 +212,11 @@ static ADDRESS_MAP_START( toypop_map, AS_PROGRAM, 8, toypop_state )
AM_RANGE(0x6010, 0x601f) AM_DEVREADWRITE_LEGACY("56xx_1", namcoio_r, namcoio_w) /* custom I/O */
AM_RANGE(0x6020, 0x602f) AM_DEVREADWRITE_LEGACY("56xx_2", namcoio_r, namcoio_w) /* custom I/O */
AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with sound CPU */
- AM_RANGE(0x7000, 0x7000) AM_READWRITE_LEGACY(toypop_main_interrupt_enable_r, toypop_main_interrupt_disable_w) /* disable interrupt */
- AM_RANGE(0x8000, 0x8000) AM_WRITE_LEGACY(toypop_m68000_clear_w) /* reset 68000 */
- AM_RANGE(0x8800, 0x8800) AM_WRITE_LEGACY(toypop_m68000_assert_w) /* reset 68000 */
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(toypop_sound_clear_w) /* sound CPU reset */
- AM_RANGE(0x9800, 0x9800) AM_WRITE_LEGACY(toypop_sound_assert_w) /* sound CPU reset */
+ AM_RANGE(0x7000, 0x7000) AM_READWRITE(toypop_main_interrupt_enable_r, toypop_main_interrupt_disable_w) /* disable interrupt */
+ AM_RANGE(0x8000, 0x8000) AM_WRITE(toypop_m68000_clear_w) /* reset 68000 */
+ AM_RANGE(0x8800, 0x8800) AM_WRITE(toypop_m68000_assert_w) /* reset 68000 */
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(toypop_sound_clear_w) /* sound CPU reset */
+ AM_RANGE(0x9800, 0x9800) AM_WRITE(toypop_sound_assert_w) /* sound CPU reset */
AM_RANGE(0xa000, 0xa001) AM_WRITE_LEGACY(toypop_palettebank_w) /* background image palette */
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM code */
ADDRESS_MAP_END
@@ -239,8 +230,8 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, toypop_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVREADWRITE_LEGACY("namco", namco_snd_sharedram_r, namco_snd_sharedram_w) /* shared RAM with the main CPU + sound registers */
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(toypop_sound_interrupt_disable_w) /* ??? toypop doesn't write here */
- AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(toypop_sound_interrupt_enable_acknowledge_w)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(toypop_sound_interrupt_disable_w) /* ??? toypop doesn't write here */
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(toypop_sound_interrupt_enable_acknowledge_w)
AM_RANGE(0x6000, 0x6000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -256,12 +247,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( m68k_map, AS_PROGRAM, 16, toypop_state )
AM_RANGE(0x000000, 0x007fff) AM_ROM /* ROM code */
AM_RANGE(0x080000, 0x0bffff) AM_RAM /* RAM */
- AM_RANGE(0x100000, 0x100fff) AM_READWRITE_LEGACY(toypop_m68000_sharedram_r, toypop_m68000_sharedram_w) /* shared RAM with the main CPU */
+ AM_RANGE(0x100000, 0x100fff) AM_READWRITE(toypop_m68000_sharedram_r, toypop_m68000_sharedram_w) /* shared RAM with the main CPU */
AM_RANGE(0x180000, 0x187fff) AM_READWRITE_LEGACY(toypop_merged_background_r, toypop_merged_background_w) /* RAM that has to be merged with the background image */
AM_RANGE(0x18fffc, 0x18ffff) AM_WRITE_LEGACY(toypop_flipscreen_w) /* flip mode */
AM_RANGE(0x190000, 0x1dffff) AM_RAM AM_BASE(m_bg_image) /* RAM containing the background image */
- AM_RANGE(0x300000, 0x300001) AM_WRITE_LEGACY(toypop_m68000_interrupt_enable_w) /* interrupt enable */
- AM_RANGE(0x380000, 0x380001) AM_WRITE_LEGACY(toypop_m68000_interrupt_disable_w)/* interrupt disable */
+ AM_RANGE(0x300000, 0x300001) AM_WRITE(toypop_m68000_interrupt_enable_w) /* interrupt enable */
+ AM_RANGE(0x380000, 0x380001) AM_WRITE(toypop_m68000_interrupt_disable_w)/* interrupt disable */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index 3052fba67b5..f470941d6f9 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -81,18 +81,17 @@ static MACHINE_START( tp84 )
}
-static READ8_HANDLER( tp84_sh_timer_r )
+READ8_MEMBER(tp84_state::tp84_sh_timer_r)
{
- tp84_state *state = space->machine().driver_data<tp84_state>();
/* main xtal 14.318MHz, divided by 4 to get the CPU clock, further */
/* divided by 2048 to get this timer */
/* (divide by (2048/2), and not 1024, because the CPU cycle counter is */
/* incremented every other state change of the clock) */
- return (state->m_audiocpu->total_cycles() / (2048/2)) & 0x0f;
+ return (m_audiocpu->total_cycles() / (2048/2)) & 0x0f;
}
-static WRITE8_HANDLER( tp84_filter_w )
+WRITE8_MEMBER(tp84_state::tp84_filter_w)
{
int C;
@@ -100,28 +99,28 @@ static WRITE8_HANDLER( tp84_filter_w )
C = 0;
if (offset & 0x008) C += 47000; /* 47000pF = 0.047uF */
if (offset & 0x010) C += 470000; /* 470000pF = 0.47uF */
- filter_rc_set_RC(space->machine().device("filter1"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C));
+ filter_rc_set_RC(machine().device("filter1"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C));
/* 76489 #1 (optional) */
C = 0;
if (offset & 0x020) C += 47000; /* 47000pF = 0.047uF */
if (offset & 0x040) C += 470000; /* 470000pF = 0.47uF */
-// filter_rc_set_RC(space->machine().device("filter2"),1000,2200,1000,C);
+// filter_rc_set_RC(machine().device("filter2"),1000,2200,1000,C);
/* 76489 #2 */
C = 0;
if (offset & 0x080) C += 470000; /* 470000pF = 0.47uF */
- filter_rc_set_RC(space->machine().device("filter2"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C));
+ filter_rc_set_RC(machine().device("filter2"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C));
/* 76489 #3 */
C = 0;
if (offset & 0x100) C += 470000; /* 470000pF = 0.47uF */
- filter_rc_set_RC(space->machine().device("filter3"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C));
+ filter_rc_set_RC(machine().device("filter3"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C));
}
-static WRITE8_HANDLER( tp84_sh_irqtrigger_w )
+WRITE8_MEMBER(tp84_state::tp84_sh_irqtrigger_w)
{
- cputag_set_input_line_and_vector(space->machine(), "audiocpu",0,HOLD_LINE,0xff);
+ cputag_set_input_line_and_vector(machine(), "audiocpu",0,HOLD_LINE,0xff);
}
@@ -135,7 +134,7 @@ static ADDRESS_MAP_START( tp84_cpu1_map, AS_PROGRAM, 8, tp84_state )
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW2") AM_WRITEONLY
AM_RANGE(0x3004, 0x3004) AM_WRITEONLY AM_BASE(m_flipscreen_x)
AM_RANGE(0x3005, 0x3005) AM_WRITEONLY AM_BASE(m_flipscreen_y)
- AM_RANGE(0x3800, 0x3800) AM_WRITE_LEGACY(tp84_sh_irqtrigger_w)
+ AM_RANGE(0x3800, 0x3800) AM_WRITE(tp84_sh_irqtrigger_w)
AM_RANGE(0x3a00, 0x3a00) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x3c00, 0x3c00) AM_WRITEONLY AM_BASE(m_scroll_x)
AM_RANGE(0x3e00, 0x3e00) AM_WRITEONLY AM_BASE(m_scroll_y)
@@ -161,7 +160,7 @@ static ADDRESS_MAP_START( tp84b_cpu1_map, AS_PROGRAM, 8, tp84_state )
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("DSW2") AM_WRITENOP
AM_RANGE(0x1c04, 0x1c04) AM_WRITEONLY AM_BASE(m_flipscreen_x)
AM_RANGE(0x1c05, 0x1c05) AM_WRITEONLY AM_BASE(m_flipscreen_y)
- AM_RANGE(0x1e00, 0x1e00) AM_WRITE_LEGACY(tp84_sh_irqtrigger_w)
+ AM_RANGE(0x1e00, 0x1e00) AM_WRITE(tp84_sh_irqtrigger_w)
AM_RANGE(0x1e80, 0x1e80) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x1f00, 0x1f00) AM_WRITEONLY AM_BASE(m_scroll_x)
AM_RANGE(0x1f80, 0x1f80) AM_WRITEONLY AM_BASE(m_scroll_y)
@@ -169,18 +168,17 @@ static ADDRESS_MAP_START( tp84b_cpu1_map, AS_PROGRAM, 8, tp84_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( sub_irq_mask_w )
+WRITE8_MEMBER(tp84_state::sub_irq_mask_w)
{
- tp84_state *state = space->machine().driver_data<tp84_state>();
- state->m_sub_irq_mask = data & 1;
+ m_sub_irq_mask = data & 1;
}
static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, tp84_state )
// AM_RANGE(0x0000, 0x0000) AM_RAM /* Watch dog ?*/
AM_RANGE(0x2000, 0x2000) AM_READ_LEGACY(tp84_scanline_r) /* beam position */
- AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(sub_irq_mask_w)
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(sub_irq_mask_w)
AM_RANGE(0x6000, 0x679f) AM_RAM
AM_RANGE(0x67a0, 0x67ff) AM_RAM_WRITE_LEGACY(tp84_spriteram_w) AM_BASE(m_spriteram)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1")
@@ -192,8 +190,8 @@ static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, tp84_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM
AM_RANGE(0x6000, 0x6000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x8000, 0x8000) AM_READ_LEGACY(tp84_sh_timer_r)
- AM_RANGE(0xa000, 0xa1ff) AM_WRITE_LEGACY(tp84_filter_w)
+ AM_RANGE(0x8000, 0x8000) AM_READ(tp84_sh_timer_r)
+ AM_RANGE(0xa000, 0xa1ff) AM_WRITE(tp84_filter_w)
AM_RANGE(0xc000, 0xc000) AM_WRITENOP
AM_RANGE(0xc001, 0xc001) AM_DEVWRITE_LEGACY("sn1", sn76496_w)
AM_RANGE(0xc003, 0xc003) AM_DEVWRITE_LEGACY("sn2", sn76496_w)
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index 9889b8488b1..ddfca635033 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -198,12 +198,12 @@ MAIN BOARD:
#define VLM_CLOCK XTAL_3_579545MHz
-static WRITE8_HANDLER( coin_w )
+WRITE8_MEMBER(trackfld_state::coin_w)
{
- coin_counter_w(space->machine(), offset, data & 1);
+ coin_counter_w(machine(), offset, data & 1);
}
-static WRITE8_HANDLER( questions_bank_w )
+WRITE8_MEMBER(trackfld_state::questions_bank_w)
{
int i;
@@ -211,17 +211,16 @@ static WRITE8_HANDLER( questions_bank_w )
{
if((data & 1 << i) == 0) // check first bit active low, change ROM bank according to the correlated bit
{
- memory_set_bank(space->machine(), "bank1", i);
+ memory_set_bank(machine(), "bank1", i);
return;
}
}
}
-static WRITE8_HANDLER( irq_mask_w )
+WRITE8_MEMBER(trackfld_state::irq_mask_w)
{
- trackfld_state *state = space->machine().driver_data<trackfld_state>();
- state->m_irq_mask = data & 1;
+ m_irq_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trackfld_state )
@@ -229,10 +228,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x0078) AM_WRITE_LEGACY(trackfld_flipscreen_w) /* FLIP */
AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x0078) AM_WRITE_LEGACY(konami_sh_irqtrigger_w) /* 26 */ /* cause interrupt on audio CPU */
AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x0078) AM_WRITENOP /* 25 */
- AM_RANGE(0x1083, 0x1084) AM_MIRROR(0x0078) AM_WRITE_LEGACY(coin_w) /* 24, 23 */
+ AM_RANGE(0x1083, 0x1084) AM_MIRROR(0x0078) AM_WRITE(coin_w) /* 24, 23 */
AM_RANGE(0x1085, 0x1085) AM_MIRROR(0x0078) AM_WRITENOP /* CN3.2 */
AM_RANGE(0x1086, 0x1086) AM_MIRROR(0x0078) AM_WRITENOP /* CN3.4 */
- AM_RANGE(0x1087, 0x1087) AM_MIRROR(0x0078) AM_WRITE_LEGACY(irq_mask_w) /* INT */
+ AM_RANGE(0x1087, 0x1087) AM_MIRROR(0x0078) AM_WRITE(irq_mask_w) /* INT */
AM_RANGE(0x1100, 0x1100) AM_MIRROR(0x007f) AM_WRITE_LEGACY(soundlatch_w) /* 32 */
AM_RANGE(0x1200, 0x1200) AM_MIRROR(0x007f) AM_READ_PORT("DSW2")
AM_RANGE(0x1280, 0x1280) AM_MIRROR(0x007c) AM_READ_PORT("SYSTEM")
@@ -252,11 +251,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static WRITE8_HANDLER( yieartf_nmi_mask_w )
+WRITE8_MEMBER(trackfld_state::yieartf_nmi_mask_w)
{
- trackfld_state *state = space->machine().driver_data<trackfld_state>();
- state->m_yieartf_nmi_mask = data & 1;
+ m_yieartf_nmi_mask = data & 1;
}
@@ -268,11 +266,11 @@ static ADDRESS_MAP_START( yieartf_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x007f) AM_WRITE_LEGACY(watchdog_reset_w) /* AFE */
AM_RANGE(0x1080, 0x1080) AM_MIRROR(0x0078) AM_WRITE_LEGACY(trackfld_flipscreen_w) /* FLIP */
AM_RANGE(0x1081, 0x1081) AM_MIRROR(0x0078) AM_WRITE_LEGACY(konami_sh_irqtrigger_w) /* 26 */ /* cause interrupt on audio CPU */
- AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x0078) AM_WRITE_LEGACY(yieartf_nmi_mask_w) /* 25 */
- AM_RANGE(0x1083, 0x1084) AM_MIRROR(0x0078) AM_WRITE_LEGACY(coin_w) /* 24, 23 */
+ AM_RANGE(0x1082, 0x1082) AM_MIRROR(0x0078) AM_WRITE(yieartf_nmi_mask_w) /* 25 */
+ AM_RANGE(0x1083, 0x1084) AM_MIRROR(0x0078) AM_WRITE(coin_w) /* 24, 23 */
AM_RANGE(0x1085, 0x1085) AM_MIRROR(0x0078) AM_WRITENOP /* CN3.2 */
AM_RANGE(0x1086, 0x1086) AM_MIRROR(0x0078) AM_WRITENOP /* CN3.4 */
- AM_RANGE(0x1087, 0x1087) AM_MIRROR(0x0078) AM_WRITE_LEGACY(irq_mask_w) /* INT */
+ AM_RANGE(0x1087, 0x1087) AM_MIRROR(0x0078) AM_WRITE(irq_mask_w) /* INT */
// AM_RANGE(0x1100, 0x1100) AM_MIRROR(0x007f) AM_WRITE_LEGACY(soundlatch_w) /* 32 */
AM_RANGE(0x1200, 0x1200) AM_MIRROR(0x007f) AM_READ_PORT("DSW2")
AM_RANGE(0x1280, 0x1280) AM_MIRROR(0x007c) AM_READ_PORT("SYSTEM")
@@ -298,8 +296,8 @@ static ADDRESS_MAP_START( reaktor_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x9080, 0x9080) AM_WRITE_LEGACY(trackfld_flipscreen_w)
AM_RANGE(0x9081, 0x9081) AM_WRITE_LEGACY(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x9083, 0x9084) AM_WRITE_LEGACY(coin_w)
- AM_RANGE(0x9087, 0x9087) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x9083, 0x9084) AM_WRITE(coin_w)
+ AM_RANGE(0x9087, 0x9087) AM_WRITE(irq_mask_w)
AM_RANGE(0x9100, 0x9100) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x9200, 0x9200) AM_READ_PORT("DSW2")
AM_RANGE(0x9280, 0x9280) AM_READ_PORT("SYSTEM")
@@ -331,8 +329,8 @@ static ADDRESS_MAP_START( mastkin_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x1000, 0x1000) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x10b0, 0x10b0) AM_WRITE_LEGACY(trackfld_flipscreen_w)
AM_RANGE(0x10b1, 0x10b1) AM_READNOP AM_WRITE_LEGACY(konami_sh_irqtrigger_w)
- AM_RANGE(0x10b3, 0x10b4) AM_WRITE_LEGACY(coin_w) // actually not used
- AM_RANGE(0x10b7, 0x10b7) AM_READNOP AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x10b3, 0x10b4) AM_WRITE(coin_w) // actually not used
+ AM_RANGE(0x10b7, 0x10b7) AM_READNOP AM_WRITE(irq_mask_w)
AM_RANGE(0x1100, 0x1100) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2")
AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM")
@@ -358,8 +356,8 @@ static ADDRESS_MAP_START( wizzquiz_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x1000, 0x1000) AM_READWRITE_LEGACY(watchdog_reset_r, watchdog_reset_w)
AM_RANGE(0x1080, 0x1080) AM_WRITE_LEGACY(trackfld_flipscreen_w)
AM_RANGE(0x1081, 0x1081) AM_WRITE_LEGACY(konami_sh_irqtrigger_w) /* cause interrupt on audio CPU */
- AM_RANGE(0x1083, 0x1084) AM_WRITE_LEGACY(coin_w)
- AM_RANGE(0x1087, 0x1087) AM_WRITE_LEGACY(irq_mask_w)
+ AM_RANGE(0x1083, 0x1084) AM_WRITE(coin_w)
+ AM_RANGE(0x1087, 0x1087) AM_WRITE(irq_mask_w)
AM_RANGE(0x1100, 0x1100) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x1200, 0x1200) AM_READ_PORT("DSW2")
AM_RANGE(0x1280, 0x1280) AM_READ_PORT("SYSTEM")
@@ -376,7 +374,7 @@ static ADDRESS_MAP_START( wizzquiz_map, AS_PROGRAM, 8, trackfld_state )
AM_RANGE(0x2c00, 0x2fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x3000, 0x37ff) AM_RAM_WRITE_LEGACY(trackfld_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x3800, 0x3fff) AM_RAM_WRITE_LEGACY(trackfld_colorram_w) AM_BASE(m_colorram)
- AM_RANGE(0xc000, 0xc000) AM_WRITE_LEGACY(questions_bank_w)
+ AM_RANGE(0xc000, 0xc000) AM_WRITE(questions_bank_w)
AM_RANGE(0x6000, 0xdfff) AM_ROMBANK("bank1")
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index b195fe678ba..c5c0c9d2a8a 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -91,43 +91,40 @@ static void triplhnt_update_misc(running_machine &machine, int offset)
}
-static WRITE8_HANDLER( triplhnt_misc_w )
+WRITE8_MEMBER(triplhnt_state::triplhnt_misc_w)
{
- triplhnt_update_misc(space->machine(), offset);
+ triplhnt_update_misc(machine(), offset);
}
-static READ8_HANDLER( triplhnt_cmos_r )
+READ8_MEMBER(triplhnt_state::triplhnt_cmos_r)
{
- triplhnt_state *state = space->machine().driver_data<triplhnt_state>();
- state->m_cmos_latch = offset;
+ m_cmos_latch = offset;
- return state->m_cmos[state->m_cmos_latch] ^ 15;
+ return m_cmos[m_cmos_latch] ^ 15;
}
-static READ8_HANDLER( triplhnt_input_port_4_r )
+READ8_MEMBER(triplhnt_state::triplhnt_input_port_4_r)
{
watchdog_reset_w(space, 0, 0);
- return input_port_read(space->machine(), "0C0B");
+ return input_port_read(machine(), "0C0B");
}
-static READ8_HANDLER( triplhnt_misc_r )
+READ8_MEMBER(triplhnt_state::triplhnt_misc_r)
{
- triplhnt_state *state = space->machine().driver_data<triplhnt_state>();
- triplhnt_update_misc(space->machine(), offset);
- return input_port_read(space->machine(), "VBLANK") | state->m_hit_code;
+ triplhnt_update_misc(machine(), offset);
+ return input_port_read(machine(), "VBLANK") | m_hit_code;
}
-static READ8_HANDLER( triplhnt_da_latch_r )
+READ8_MEMBER(triplhnt_state::triplhnt_da_latch_r)
{
- triplhnt_state *state = space->machine().driver_data<triplhnt_state>();
- int cross_x = input_port_read(space->machine(), "STICKX");
- int cross_y = input_port_read(space->machine(), "STICKY");
+ int cross_x = input_port_read(machine(), "STICKX");
+ int cross_y = input_port_read(machine(), "STICKY");
- state->m_da_latch = offset;
+ m_da_latch = offset;
/* the following is a slight simplification */
@@ -147,10 +144,10 @@ static ADDRESS_MAP_START( triplhnt_map, AS_PROGRAM, 8, triplhnt_state )
AM_RANGE(0x0c08, 0x0c08) AM_READ_PORT("0C08")
AM_RANGE(0x0c09, 0x0c09) AM_READ_PORT("0C09")
AM_RANGE(0x0c0a, 0x0c0a) AM_READ_PORT("0C0A")
- AM_RANGE(0x0c0b, 0x0c0b) AM_READ_LEGACY(triplhnt_input_port_4_r)
- AM_RANGE(0x0c10, 0x0c1f) AM_READ_LEGACY(triplhnt_da_latch_r)
- AM_RANGE(0x0c20, 0x0c2f) AM_READ_LEGACY(triplhnt_cmos_r) AM_SHARE("nvram")
- AM_RANGE(0x0c30, 0x0c3f) AM_READWRITE_LEGACY(triplhnt_misc_r, triplhnt_misc_w)
+ AM_RANGE(0x0c0b, 0x0c0b) AM_READ(triplhnt_input_port_4_r)
+ AM_RANGE(0x0c10, 0x0c1f) AM_READ(triplhnt_da_latch_r)
+ AM_RANGE(0x0c20, 0x0c2f) AM_READ(triplhnt_cmos_r) AM_SHARE("nvram")
+ AM_RANGE(0x0c30, 0x0c3f) AM_READWRITE(triplhnt_misc_r, triplhnt_misc_w)
AM_RANGE(0x0c40, 0x0c40) AM_READ_PORT("0C40")
AM_RANGE(0x0c48, 0x0c48) AM_READ_PORT("0C48")
AM_RANGE(0x7000, 0x7fff) AM_ROM /* program */
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index 153177f45f1..d21cdf09b9f 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -37,11 +37,10 @@ Daughterboard: Custom made, plugged in the 2 roms and Z80 mainboard sockets.
#include "sound/dac.h"
#include "includes/trucocl.h"
-static WRITE8_HANDLER( irq_enable_w )
+WRITE8_MEMBER(trucocl_state::irq_enable_w)
{
- trucocl_state *state = space->machine().driver_data<trucocl_state>();
- state->m_irq_mask = (data & 1) ^ 1;
+ m_irq_mask = (data & 1) ^ 1;
}
@@ -85,7 +84,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, trucocl_state )
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE_LEGACY(trucocl_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE_LEGACY(trucocl_colorram_w) AM_BASE(m_colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM
- AM_RANGE(0x5000, 0x5000) AM_WRITE_LEGACY(irq_enable_w)
+ 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(0x50c0, 0x50c0) AM_WRITE_LEGACY(watchdog_reset_w)
diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c
index c11b1f75e96..1944860b07e 100644
--- a/src/mame/drivers/tryout.c
+++ b/src/mame/drivers/tryout.c
@@ -25,31 +25,31 @@ $208 strikes count
#include "sound/2203intf.h"
#include "includes/tryout.h"
-static WRITE8_HANDLER( tryout_nmi_ack_w )
+WRITE8_MEMBER(tryout_state::tryout_nmi_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE );
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE );
}
-static WRITE8_HANDLER( tryout_sound_w )
+WRITE8_MEMBER(tryout_state::tryout_sound_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
/*this is actually irq/nmi mask, polls only four values at start up (81->01->81->01) and then
stays on this state.*/
-static WRITE8_HANDLER( tryout_sound_irq_ack_w )
+WRITE8_MEMBER(tryout_state::tryout_sound_irq_ack_w)
{
-// cputag_set_input_line(space->machine(), "audiocpu", 0, CLEAR_LINE);
+// cputag_set_input_line(machine(), "audiocpu", 0, CLEAR_LINE);
}
-static WRITE8_HANDLER( tryout_bankswitch_w )
+WRITE8_MEMBER(tryout_state::tryout_bankswitch_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
int bankaddress;
bankaddress = 0x10000 + (data & 0x01) * 0x2000;
- memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1", &RAM[bankaddress]);
}
static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, tryout_state )
@@ -65,11 +65,11 @@ static ADDRESS_MAP_START( main_cpu, AS_PROGRAM, 8, tryout_state )
AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P2")
AM_RANGE(0xe003, 0xe003) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe301, 0xe301) AM_WRITE_LEGACY(tryout_flipscreen_w)
- AM_RANGE(0xe302, 0xe302) AM_WRITE_LEGACY(tryout_bankswitch_w)
+ AM_RANGE(0xe302, 0xe302) AM_WRITE(tryout_bankswitch_w)
AM_RANGE(0xe401, 0xe401) AM_WRITE_LEGACY(tryout_vram_bankswitch_w)
AM_RANGE(0xe402, 0xe404) AM_WRITEONLY AM_BASE(m_gfx_control)
- AM_RANGE(0xe414, 0xe414) AM_WRITE_LEGACY(tryout_sound_w)
- AM_RANGE(0xe417, 0xe417) AM_WRITE_LEGACY(tryout_nmi_ack_w)
+ AM_RANGE(0xe414, 0xe414) AM_WRITE(tryout_sound_w)
+ AM_RANGE(0xe417, 0xe417) AM_WRITE(tryout_nmi_ack_w)
AM_RANGE(0xfff0, 0xffff) AM_ROM AM_REGION("maincpu", 0xbff0) /* reset vectors */
ADDRESS_MAP_END
@@ -77,7 +77,7 @@ static ADDRESS_MAP_START( sound_cpu, AS_PROGRAM, 8, tryout_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2203_r, ym2203_w)
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xd000, 0xd000) AM_WRITE_LEGACY(tryout_sound_irq_ack_w)
+ AM_RANGE(0xd000, 0xd000) AM_WRITE(tryout_sound_irq_ack_w)
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index c669be091c1..9d51ec8fc8b 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -41,10 +41,9 @@ the "America" release.
#include "includes/tsamurai.h"
-static WRITE8_HANDLER( nmi_enable_w )
+WRITE8_MEMBER(tsamurai_state::nmi_enable_w)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- state->m_nmi_enabled = data;
+ m_nmi_enabled = data;
}
static INTERRUPT_GEN( samurai_interrupt )
@@ -53,60 +52,57 @@ static INTERRUPT_GEN( samurai_interrupt )
if (state->m_nmi_enabled) device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
}
-static READ8_HANDLER( unknown_d803_r )
+READ8_MEMBER(tsamurai_state::unknown_d803_r)
{
return 0x6b;
}
-static READ8_HANDLER( unknown_d803_m660_r )
+READ8_MEMBER(tsamurai_state::unknown_d803_m660_r)
{
return 0x53; // this is what the bootleg patches in.
}
-static READ8_HANDLER( unknown_d806_r )
+READ8_MEMBER(tsamurai_state::unknown_d806_r)
{
return 0x40;
}
-static READ8_HANDLER( unknown_d900_r )
+READ8_MEMBER(tsamurai_state::unknown_d900_r)
{
return 0x6a;
}
-static READ8_HANDLER( unknown_d938_r )
+READ8_MEMBER(tsamurai_state::unknown_d938_r)
{
return 0xfb;
}
-static WRITE8_HANDLER( sound_command1_w )
+WRITE8_MEMBER(tsamurai_state::sound_command1_w)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- state->m_sound_command1 = data;
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE );
+ m_sound_command1 = data;
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE );
}
-static WRITE8_HANDLER( sound_command2_w )
+WRITE8_MEMBER(tsamurai_state::sound_command2_w)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- state->m_sound_command2 = data;
- cputag_set_input_line(space->machine(), "audio2", 0, HOLD_LINE );
+ m_sound_command2 = data;
+ cputag_set_input_line(machine(), "audio2", 0, HOLD_LINE );
}
-static WRITE8_HANDLER( sound_command3_w )
+WRITE8_MEMBER(tsamurai_state::sound_command3_w)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- state->m_sound_command3 = data;
- cputag_set_input_line(space->machine(), "audio3", 0, HOLD_LINE );
+ m_sound_command3 = data;
+ cputag_set_input_line(machine(), "audio3", 0, HOLD_LINE );
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(tsamurai_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
-static WRITE8_HANDLER( tsamurai_coin_counter_w )
+WRITE8_MEMBER(tsamurai_state::tsamurai_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
@@ -115,10 +111,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
/* protection? - there are writes as well...*/
- AM_RANGE(0xd803, 0xd803) AM_READ_LEGACY(unknown_d803_r)
- AM_RANGE(0xd806, 0xd806) AM_READ_LEGACY(unknown_d806_r)
- AM_RANGE(0xd900, 0xd900) AM_READ_LEGACY(unknown_d900_r)
- AM_RANGE(0xd938, 0xd938) AM_READ_LEGACY(unknown_d938_r)
+ AM_RANGE(0xd803, 0xd803) AM_READ(unknown_d803_r)
+ AM_RANGE(0xd806, 0xd806) AM_READ(unknown_d806_r)
+ AM_RANGE(0xd900, 0xd900) AM_READ(unknown_d900_r)
+ AM_RANGE(0xd938, 0xd938) AM_READ(unknown_d938_r)
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE_LEGACY(tsamurai_fg_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE_LEGACY(tsamurai_fg_colorram_w) AM_BASE(m_colorram)
@@ -127,8 +123,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0xf400, 0xf400) AM_WRITENOP
- AM_RANGE(0xf401, 0xf401) AM_WRITE_LEGACY(sound_command1_w)
- AM_RANGE(0xf402, 0xf402) AM_WRITE_LEGACY(sound_command2_w)
+ AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command1_w)
+ AM_RANGE(0xf402, 0xf402) AM_WRITE(sound_command2_w)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE_LEGACY(tsamurai_bgcolor_w)
@@ -137,10 +133,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0xfc01, 0xfc01) AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w)
+ AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w)
AM_RANGE(0xfc02, 0xfc02) AM_WRITE_LEGACY(tsamurai_textbank1_w)
- AM_RANGE(0xfc03, 0xfc04) AM_WRITE_LEGACY(tsamurai_coin_counter_w)
+ AM_RANGE(0xfc03, 0xfc04) AM_WRITE(tsamurai_coin_counter_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8, tsamurai_state )
@@ -148,10 +144,10 @@ static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xc000, 0xcfff) AM_RAM
/* protection? - there are writes as well...*/
- AM_RANGE(0xd803, 0xd803) AM_READ_LEGACY(unknown_d803_m660_r)
- AM_RANGE(0xd806, 0xd806) AM_READ_LEGACY(unknown_d806_r)
- AM_RANGE(0xd900, 0xd900) AM_READ_LEGACY(unknown_d900_r)
- AM_RANGE(0xd938, 0xd938) AM_READ_LEGACY(unknown_d938_r)
+ AM_RANGE(0xd803, 0xd803) AM_READ(unknown_d803_m660_r)
+ AM_RANGE(0xd806, 0xd806) AM_READ(unknown_d806_r)
+ AM_RANGE(0xd900, 0xd900) AM_READ(unknown_d900_r)
+ AM_RANGE(0xd938, 0xd938) AM_READ(unknown_d938_r)
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE_LEGACY(tsamurai_fg_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xe400, 0xe43f) AM_RAM_WRITE_LEGACY(tsamurai_fg_colorram_w) AM_BASE(m_colorram)
@@ -160,9 +156,9 @@ static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xf000, 0xf3ff) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0xf400, 0xf400) AM_WRITENOP/* This is always written with F401, F402 & F403 data */
- AM_RANGE(0xf401, 0xf401) AM_WRITE_LEGACY(sound_command3_w)
- AM_RANGE(0xf402, 0xf402) AM_WRITE_LEGACY(sound_command2_w)
- AM_RANGE(0xf403, 0xf403) AM_WRITE_LEGACY(sound_command1_w)
+ AM_RANGE(0xf401, 0xf401) AM_WRITE(sound_command3_w)
+ AM_RANGE(0xf402, 0xf402) AM_WRITE(sound_command2_w)
+ AM_RANGE(0xf403, 0xf403) AM_WRITE(sound_command1_w)
AM_RANGE(0xf800, 0xf800) AM_READ_PORT("P1")
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("P2") AM_WRITE_LEGACY(tsamurai_bgcolor_w)
@@ -171,10 +167,10 @@ static ADDRESS_MAP_START( m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xf804, 0xf804) AM_READ_PORT("DSW1")
AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW2")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0xfc01, 0xfc01) AM_WRITE_LEGACY(nmi_enable_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(flip_screen_w)
+ AM_RANGE(0xfc01, 0xfc01) AM_WRITE(nmi_enable_w)
AM_RANGE(0xfc02, 0xfc02) AM_WRITE_LEGACY(tsamurai_textbank1_w)
- AM_RANGE(0xfc03, 0xfc04) AM_WRITE_LEGACY(tsamurai_coin_counter_w)
+ AM_RANGE(0xfc03, 0xfc04) AM_WRITE(tsamurai_coin_counter_w)
AM_RANGE(0xfc07, 0xfc07) AM_WRITE_LEGACY(tsamurai_textbank2_w)/* Mission 660 uses a bit here */
ADDRESS_MAP_END
@@ -195,28 +191,25 @@ static ADDRESS_MAP_START( vsgongf_audio_io_map, AS_IO, 8, tsamurai_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
ADDRESS_MAP_END
-static READ8_HANDLER( sound_command1_r )
+READ8_MEMBER(tsamurai_state::sound_command1_r)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- return state->m_sound_command1;
+ return m_sound_command1;
}
-static READ8_HANDLER( sound_command2_r )
+READ8_MEMBER(tsamurai_state::sound_command2_r)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- return state->m_sound_command2;
+ return m_sound_command2;
}
-static READ8_HANDLER( sound_command3_r )
+READ8_MEMBER(tsamurai_state::sound_command3_r)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- return state->m_sound_command3;
+ return m_sound_command3;
}
/*******************************************************************************/
static ADDRESS_MAP_START( sound1_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x6000, 0x6000) AM_READ_LEGACY(sound_command1_r)
+ AM_RANGE(0x6000, 0x6000) AM_READ(sound_command1_r)
AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */
AM_RANGE(0x6002, 0x6002) AM_DEVWRITE_LEGACY("dac1", dac_w)
AM_RANGE(0x7f00, 0x7fff) AM_RAM
@@ -226,7 +219,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound2_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x6000, 0x6000) AM_READ_LEGACY(sound_command2_r)
+ AM_RANGE(0x6000, 0x6000) AM_READ(sound_command2_r)
AM_RANGE(0x6001, 0x6001) AM_WRITENOP /* ? - probably clear IRQ */
AM_RANGE(0x6002, 0x6002) AM_DEVWRITE_LEGACY("dac2", dac_w)
AM_RANGE(0x7f00, 0x7fff) AM_RAM
@@ -236,7 +229,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound1_m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(sound_command1_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(sound_command1_r)
AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
AM_RANGE(0xc002, 0xc002) AM_DEVWRITE_LEGACY("dac1", dac_w)
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -246,7 +239,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound2_m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(sound_command2_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(sound_command2_r)
AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
AM_RANGE(0xc002, 0xc002) AM_DEVWRITE_LEGACY("dac2", dac_w)
AM_RANGE(0x8000, 0x87ff) AM_RAM
@@ -256,7 +249,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound3_m660_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0xc000, 0xc000) AM_READ_LEGACY(sound_command3_r)
+ AM_RANGE(0xc000, 0xc000) AM_READ(sound_command3_r)
AM_RANGE(0xc001, 0xc001) AM_WRITENOP /* ? - probably clear IRQ */
AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0xfffc, 0xffff) AM_RAM /* CPU writes here - music data */
@@ -269,10 +262,9 @@ ADDRESS_MAP_END
/*******************************************************************************/
-static WRITE8_HANDLER( vsgongf_sound_nmi_enable_w )
+WRITE8_MEMBER(tsamurai_state::vsgongf_sound_nmi_enable_w)
{
- tsamurai_state *state = space->machine().driver_data<tsamurai_state>();
- state->m_vsgongf_sound_nmi_enabled = data;
+ m_vsgongf_sound_nmi_enabled = data;
}
static INTERRUPT_GEN( vsgongf_sound_interrupt )
@@ -283,44 +275,44 @@ static INTERRUPT_GEN( vsgongf_sound_interrupt )
/* what are these, protection of some kind? */
-static READ8_HANDLER( vsgongf_a006_r )
+READ8_MEMBER(tsamurai_state::vsgongf_a006_r)
{
/* sound CPU busy? */
- if (!strcmp(space->machine().system().name,"vsgongf")) return 0x80;
- if (!strcmp(space->machine().system().name,"ringfgt")) return 0x80;
- if (!strcmp(space->machine().system().name,"ringfgt2")) return 0xc0;
+ if (!strcmp(machine().system().name,"vsgongf")) return 0x80;
+ if (!strcmp(machine().system().name,"ringfgt")) return 0x80;
+ if (!strcmp(machine().system().name,"ringfgt2")) return 0xc0;
logerror ("unhandled read from a006\n");
return 0x00;
}
-static READ8_HANDLER( vsgongf_a100_r )
+READ8_MEMBER(tsamurai_state::vsgongf_a100_r)
{
/* protection? */
- if (!strcmp(space->machine().system().name,"vsgongf")) return 0xaa;
- if (!strcmp(space->machine().system().name,"ringfgt")) return 0x63;
- if (!strcmp(space->machine().system().name,"ringfgt2")) return 0x6a;
+ if (!strcmp(machine().system().name,"vsgongf")) return 0xaa;
+ if (!strcmp(machine().system().name,"ringfgt")) return 0x63;
+ if (!strcmp(machine().system().name,"ringfgt2")) return 0x6a;
logerror ("unhandled read from a100\n");
return 0x00;
}
-static WRITE8_HANDLER( vsgongf_sound_command_w )
+WRITE8_MEMBER(tsamurai_state::vsgongf_sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
static ADDRESS_MAP_START( vsgongf_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xa003, 0xa003) AM_READONLY
- AM_RANGE(0xa006, 0xa006) AM_READ_LEGACY(vsgongf_a006_r) /* protection */
- AM_RANGE(0xa100, 0xa100) AM_READ_LEGACY(vsgongf_a100_r) /* protection */
+ AM_RANGE(0xa006, 0xa006) AM_READ(vsgongf_a006_r) /* protection */
+ AM_RANGE(0xa100, 0xa100) AM_READ(vsgongf_a100_r) /* protection */
AM_RANGE(0xc000, 0xc7ff) AM_RAM /* work ram */
AM_RANGE(0xe000, 0xe3ff) AM_RAM_WRITE_LEGACY(tsamurai_fg_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xe400, 0xe43f) AM_RAM AM_BASE(m_spriteram)
AM_RANGE(0xe440, 0xe47b) AM_RAM
- AM_RANGE(0xe800, 0xe800) AM_WRITE_LEGACY(vsgongf_sound_command_w)
+ AM_RANGE(0xe800, 0xe800) AM_WRITE(vsgongf_sound_command_w)
AM_RANGE(0xec00, 0xec06) AM_WRITEONLY
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(vsgongf_color_w)
AM_RANGE(0xf400, 0xf400) AM_WRITEONLY /* vreg? always 0 */
@@ -333,15 +325,15 @@ static ADDRESS_MAP_START( vsgongf_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* vreg? always 0 */
AM_RANGE(0xf803, 0xf803) AM_WRITENOP /* vreg? always 0 */
AM_RANGE(0xfc00, 0xfc00) AM_RAM /* vreg? always 0 */
- AM_RANGE(0xfc01, 0xfc01) AM_RAM_WRITE_LEGACY(nmi_enable_w)
- AM_RANGE(0xfc02, 0xfc03) AM_RAM_WRITE_LEGACY(tsamurai_coin_counter_w)
+ AM_RANGE(0xfc01, 0xfc01) AM_RAM_WRITE(nmi_enable_w)
+ AM_RANGE(0xfc02, 0xfc03) AM_RAM_WRITE(tsamurai_coin_counter_w)
AM_RANGE(0xfc04, 0xfc04) AM_RAM_WRITE_LEGACY(tsamurai_textbank1_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_vsgongf_map, AS_PROGRAM, 8, tsamurai_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_RAM /* work RAM */
- AM_RANGE(0x8000, 0x8000) AM_READWRITE_LEGACY(soundlatch_r, vsgongf_sound_nmi_enable_w) /* NMI enable */
+ AM_RANGE(0x8000, 0x8000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(vsgongf_sound_nmi_enable_w) /* NMI enable */
AM_RANGE(0xa000, 0xa000) AM_DEVWRITE_LEGACY("dac", dac_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index baf5ff95a87..b3cf6124152 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -114,7 +114,7 @@ TP-S.1 TP-S.2 TP-S.3 TP-B.1 8212 TP-B.2 TP-B.3 TP-B.4
*************************************/
-static WRITE8_HANDLER( tubep_LS259_w )
+WRITE8_MEMBER(tubep_state::tubep_LS259_w)
{
switch(offset)
{
@@ -124,7 +124,7 @@ static WRITE8_HANDLER( tubep_LS259_w )
port b0: bit0 - coin 1 counter
port b1 bit0 - coin 2 counter
*/
- coin_counter_w(space->machine(), offset,data&1);
+ coin_counter_w(machine(), offset,data&1);
break;
case 2:
//something...
@@ -133,10 +133,10 @@ static WRITE8_HANDLER( tubep_LS259_w )
//screen_flip_w(offset,data&1); /* bit 0 = screen flip, active high */
break;
case 6:
- tubep_background_romselect_w(space,offset,data); /* bit0 = 0->select roms: B1,B3,B5; bit0 = 1->select roms: B2,B4,B6 */
+ tubep_background_romselect_w(&space,offset,data); /* bit0 = 0->select roms: B1,B3,B5; bit0 = 1->select roms: B2,B4,B6 */
break;
case 7:
- tubep_colorproms_A4_line_w(space,offset,data); /* bit0 = line A4 (color proms address) state */
+ tubep_colorproms_A4_line_w(&space,offset,data); /* bit0 = line A4 (color proms address) state */
break;
default:
break;
@@ -153,19 +153,17 @@ static ADDRESS_MAP_START( tubep_main_map, AS_PROGRAM, 8, tubep_state )
ADDRESS_MAP_END
-static WRITE8_HANDLER( main_cpu_irq_line_clear_w )
+WRITE8_MEMBER(tubep_state::main_cpu_irq_line_clear_w)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
- logerror("CPU#0 VBLANK int clear at scanline=%3i\n", state->m_curr_scanline);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
+ logerror("CPU#0 VBLANK int clear at scanline=%3i\n", m_curr_scanline);
return;
}
-static WRITE8_HANDLER( tubep_soundlatch_w )
+WRITE8_MEMBER(tubep_state::tubep_soundlatch_w)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
- state->m_sound_latch = (data&0x7f) | 0x80;
+ m_sound_latch = (data&0x7f) | 0x80;
}
static ADDRESS_MAP_START( tubep_main_portmap, AS_IO, 8, tubep_state )
@@ -178,9 +176,9 @@ static ADDRESS_MAP_START( tubep_main_portmap, AS_IO, 8, tubep_state )
AM_RANGE(0xc0, 0xc0) AM_READ_PORT("P2")
AM_RANGE(0xd0, 0xd0) AM_READ_PORT("P1")
- AM_RANGE(0x80, 0x80) AM_WRITE_LEGACY(main_cpu_irq_line_clear_w)
- AM_RANGE(0xb0, 0xb7) AM_WRITE_LEGACY(tubep_LS259_w)
- AM_RANGE(0xd0, 0xd0) AM_WRITE_LEGACY(tubep_soundlatch_w)
+ AM_RANGE(0x80, 0x80) AM_WRITE(main_cpu_irq_line_clear_w)
+ AM_RANGE(0xb0, 0xb7) AM_WRITE(tubep_LS259_w)
+ AM_RANGE(0xd0, 0xd0) AM_WRITE(tubep_soundlatch_w)
ADDRESS_MAP_END
@@ -191,11 +189,10 @@ ADDRESS_MAP_END
*
*************************************/
-static WRITE8_HANDLER( second_cpu_irq_line_clear_w )
+WRITE8_MEMBER(tubep_state::second_cpu_irq_line_clear_w)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
- cputag_set_input_line(space->machine(), "slave", 0, CLEAR_LINE);
- logerror("CPU#1 VBLANK int clear at scanline=%3i\n", state->m_curr_scanline);
+ cputag_set_input_line(machine(), "slave", 0, CLEAR_LINE);
+ logerror("CPU#1 VBLANK int clear at scanline=%3i\n", m_curr_scanline);
return;
}
@@ -213,28 +210,27 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( tubep_second_portmap, AS_IO, 8, tubep_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x7f, 0x7f) AM_WRITE_LEGACY(second_cpu_irq_line_clear_w)
+ AM_RANGE(0x7f, 0x7f) AM_WRITE(second_cpu_irq_line_clear_w)
ADDRESS_MAP_END
-static READ8_HANDLER( tubep_soundlatch_r )
+READ8_MEMBER(tubep_state::tubep_soundlatch_r)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
int res;
- res = state->m_sound_latch;
- state->m_sound_latch = 0; /* "=0" ???? or "&= 0x7f" ????? works either way */
+ res = m_sound_latch;
+ m_sound_latch = 0; /* "=0" ???? or "&= 0x7f" ????? works either way */
return res;
}
-static READ8_HANDLER( tubep_sound_irq_ack )
+READ8_MEMBER(tubep_state::tubep_sound_irq_ack)
{
- cputag_set_input_line(space->machine(), "soundcpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "soundcpu", 0, CLEAR_LINE);
return 0;
}
-static WRITE8_HANDLER( tubep_sound_unknown )
+WRITE8_MEMBER(tubep_state::tubep_sound_unknown)
{
/*logerror("Sound CPU writes to port 0x07 - unknown function\n");*/
return;
@@ -243,7 +239,7 @@ static WRITE8_HANDLER( tubep_sound_unknown )
static ADDRESS_MAP_START( tubep_sound_map, AS_PROGRAM, 8, tubep_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0xd000, 0xd000) AM_READ_LEGACY(tubep_sound_irq_ack)
+ AM_RANGE(0xd000, 0xd000) AM_READ(tubep_sound_irq_ack)
AM_RANGE(0xe000, 0xe7ff) AM_RAM /* 6116 #3 */
ADDRESS_MAP_END
@@ -253,8 +249,8 @@ static ADDRESS_MAP_START( tubep_sound_portmap, AS_IO, 8, tubep_state )
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ay1", ay8910_address_data_w)
AM_RANGE(0x02, 0x03) AM_DEVWRITE_LEGACY("ay2", ay8910_address_data_w)
AM_RANGE(0x04, 0x05) AM_DEVWRITE_LEGACY("ay3", ay8910_address_data_w)
- AM_RANGE(0x06, 0x06) AM_READ_LEGACY(tubep_soundlatch_r)
- AM_RANGE(0x07, 0x07) AM_WRITE_LEGACY(tubep_sound_unknown)
+ AM_RANGE(0x06, 0x06) AM_READ(tubep_soundlatch_r)
+ AM_RANGE(0x07, 0x07) AM_WRITE(tubep_sound_unknown)
ADDRESS_MAP_END
@@ -380,13 +376,13 @@ ADDRESS_MAP_END
*
*************************************/
-static WRITE8_HANDLER( rjammer_LS259_w )
+WRITE8_MEMBER(tubep_state::rjammer_LS259_w)
{
switch(offset)
{
case 0:
case 1:
- coin_counter_w(space->machine(), offset,data&1); /* bit 0 = coin counter */
+ coin_counter_w(machine(), offset,data&1); /* bit 0 = coin counter */
break;
case 5:
//screen_flip_w(offset,data&1); /* bit 0 = screen flip, active high */
@@ -397,11 +393,10 @@ static WRITE8_HANDLER( rjammer_LS259_w )
}
-static WRITE8_HANDLER( rjammer_soundlatch_w )
+WRITE8_MEMBER(tubep_state::rjammer_soundlatch_w)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
- state->m_sound_latch = data;
- cputag_set_input_line(space->machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
+ m_sound_latch = data;
+ cputag_set_input_line(machine(), "soundcpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -422,9 +417,9 @@ static ADDRESS_MAP_START( rjammer_main_portmap, AS_IO, 8, tubep_state )
AM_RANGE(0xb0, 0xb0) AM_READ_PORT("P1")
AM_RANGE(0xc0, 0xc0) AM_READ_PORT("P2")
- AM_RANGE(0xd0, 0xd7) AM_WRITE_LEGACY(rjammer_LS259_w)
- AM_RANGE(0xe0, 0xe0) AM_WRITE_LEGACY(main_cpu_irq_line_clear_w) /* clear IRQ interrupt */
- AM_RANGE(0xf0, 0xf0) AM_WRITE_LEGACY(rjammer_soundlatch_w)
+ AM_RANGE(0xd0, 0xd7) AM_WRITE(rjammer_LS259_w)
+ AM_RANGE(0xe0, 0xe0) AM_WRITE(main_cpu_irq_line_clear_w) /* clear IRQ interrupt */
+ AM_RANGE(0xf0, 0xf0) AM_WRITE(rjammer_soundlatch_w)
ADDRESS_MAP_END
@@ -529,10 +524,9 @@ static MACHINE_RESET( rjammer )
*
*************************************/
-static READ8_HANDLER( rjammer_soundlatch_r )
+READ8_MEMBER(tubep_state::rjammer_soundlatch_r)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
- int res = state->m_sound_latch;
+ int res = m_sound_latch;
return res;
}
@@ -578,25 +572,24 @@ static void rjammer_adpcm_vck (device_t *device)
}
-static WRITE8_HANDLER( rjammer_voice_input_w )
+WRITE8_MEMBER(tubep_state::rjammer_voice_input_w)
{
- tubep_state *state = space->machine().driver_data<tubep_state>();
/* 8 bits of adpcm data for MSM5205 */
/* need to buffer the data, and switch two nibbles on two following interrupts*/
- state->m_ls377 = data;
+ m_ls377 = data;
/* NOTE: game resets interrupt line on ANY access to ANY I/O port.
I do it here because this port (0x80) is first one accessed
in the interrupt routine.
*/
- cputag_set_input_line(space->machine(), "soundcpu", 0, CLEAR_LINE );
+ cputag_set_input_line(machine(), "soundcpu", 0, CLEAR_LINE );
return;
}
-static WRITE8_HANDLER( rjammer_voice_intensity_control_w )
+WRITE8_MEMBER(tubep_state::rjammer_voice_intensity_control_w)
{
/* 4 LSB bits select the intensity (analog circuit that alters the output from MSM5205) */
/* need to buffer the data */
@@ -612,14 +605,14 @@ 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_LEGACY(rjammer_soundlatch_r)
+ 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(0x80, 0x80) AM_WRITE_LEGACY(rjammer_voice_input_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)
AM_RANGE(0x94, 0x95) AM_DEVWRITE_LEGACY("ay3", ay8910_address_data_w)
- AM_RANGE(0x96, 0x96) AM_WRITE_LEGACY(rjammer_voice_intensity_control_w)
+ AM_RANGE(0x96, 0x96) AM_WRITE(rjammer_voice_intensity_control_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index d275b2532a2..8d3d962fc7c 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -323,50 +323,49 @@ Stephh's notes (based on the games M68000 code and some tests) :
#define TUMBLEP_HACK 0
#define FNCYWLD_HACK 0
-static WRITE16_HANDLER( semicom_soundcmd_w );
+
/******************************************************************************/
-static WRITE16_HANDLER( tumblepb_oki_w )
+WRITE16_MEMBER(tumbleb_state::tumblepb_oki_w)
{
- okim6295_device *oki = space->machine().device<okim6295_device>("oki");
+ okim6295_device *oki = machine().device<okim6295_device>("oki");
if (mem_mask == 0xffff)
{
- oki->write(*space, 0, data & 0xff);
+ oki->write(*&space, 0, data & 0xff);
//printf("tumbleb_oki_w %04x %04x\n", data, mem_mask);
}
else
{
- oki->write(*space, 0, (data >> 8) & 0xff);
+ oki->write(*&space, 0, (data >> 8) & 0xff);
//printf("tumbleb_oki_w %04x %04x\n", data, mem_mask);
}
/* STUFF IN OTHER BYTE TOO..*/
}
-static READ16_HANDLER( tumblepb_prot_r )
+READ16_MEMBER(tumbleb_state::tumblepb_prot_r)
{
return ~0;
}
-static WRITE16_HANDLER( jumppop_sound_w )
+WRITE16_MEMBER(tumbleb_state::jumppop_sound_w)
{
- tumbleb_state *state = space->machine().driver_data<tumbleb_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE);
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
}
/******************************************************************************/
-static READ16_HANDLER( tumblepopb_controls_r )
+READ16_MEMBER(tumbleb_state::tumblepopb_controls_r)
{
switch (offset << 1)
{
case 0:
- return input_port_read(space->machine(), "PLAYERS");
+ return input_port_read(machine(), "PLAYERS");
case 2:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 8:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 10: /* ? */
case 12:
return 0;
@@ -653,12 +652,12 @@ static ADDRESS_MAP_START( tumblepopb_main_map, AS_PROGRAM, 16, tumbleb_state )
#if TUMBLEP_HACK
AM_RANGE(0x000000, 0x07ffff) AM_WRITEONLY /* To write levels modifications */
#endif
- AM_RANGE(0x100000, 0x100001) AM_READWRITE_LEGACY(tumblepb_prot_r, tumblepb_oki_w)
+ AM_RANGE(0x100000, 0x100001) AM_READWRITE(tumblepb_prot_r, tumblepb_oki_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(m_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Bootleg sprite buffer */
AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(tumblepopb_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_WRITE_LEGACY(tumblepb_control_0_w)
@@ -680,7 +679,7 @@ static ADDRESS_MAP_START( fncywld_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x140000, 0x140fff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxRRRRGGGGBBBB_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* sprites */
AM_RANGE(0x160800, 0x16080f) AM_WRITEONLY /* goes slightly past the end of spriteram? */
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(tumblepopb_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_WRITE_LEGACY(tumblepb_control_0_w)
@@ -694,20 +693,20 @@ static ADDRESS_MAP_START( fncywld_main_map, AS_PROGRAM, 16, tumbleb_state )
ADDRESS_MAP_END
-static READ16_HANDLER( semibase_unknown_r )
+READ16_MEMBER(tumbleb_state::semibase_unknown_r)
{
- return space->machine().rand();
+ return machine().rand();
}
static ADDRESS_MAP_START( htchctch_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x100000, 0x10000f) AM_READ_LEGACY(semibase_unknown_r)
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(semicom_soundcmd_w)
+ AM_RANGE(0x100000, 0x10000f) AM_READ(semibase_unknown_r)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(semicom_soundcmd_w)
AM_RANGE(0x100002, 0x100003) AM_WRITE_LEGACY(bcstory_tilebank_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(m_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x160fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Bootleg sprite buffer */
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(tumblepopb_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a0fff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_WRITE_LEGACY(tumblepb_control_0_w)
@@ -727,18 +726,17 @@ static ADDRESS_MAP_START( jumppop_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("PLAYERS")
AM_RANGE(0x180004, 0x180005) AM_READ_PORT("SYSTEM")
AM_RANGE(0x180006, 0x180007) AM_READ_PORT("DSW")
- AM_RANGE(0x18000c, 0x18000d) AM_WRITE_LEGACY(jumppop_sound_w)
+ AM_RANGE(0x18000c, 0x18000d) AM_WRITE(jumppop_sound_w)
AM_RANGE(0x1a0000, 0x1a7fff) AM_RAM
AM_RANGE(0x300000, 0x303fff) AM_RAM_WRITE_LEGACY(tumblepb_pf2_data_w) AM_BASE(m_pf2_data)
AM_RANGE(0x320000, 0x323fff) AM_RAM_WRITE_LEGACY(tumblepb_pf1_data_w) AM_BASE(m_pf1_data)
AM_RANGE(0x380000, 0x38000f) AM_WRITEONLY AM_BASE(m_control)
ADDRESS_MAP_END
-static WRITE16_HANDLER( jumpkids_sound_w )
+WRITE16_MEMBER(tumbleb_state::jumpkids_sound_w)
{
- tumbleb_state *state = space->machine().driver_data<tumbleb_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16, tumbleb_state )
@@ -751,7 +749,7 @@ static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("PLAYERS") AM_WRITE_LEGACY(suprtrio_tilebank_w)
AM_RANGE(0xe40000, 0xe40001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe80002, 0xe80003) AM_READ_PORT("DSW")
- AM_RANGE(0xec0000, 0xec0001) AM_WRITE_LEGACY(semicom_soundcmd_w)
+ AM_RANGE(0xec0000, 0xec0001) AM_WRITE(semicom_soundcmd_w)
AM_RANGE(0xf00000, 0xf07fff) AM_RAM
ADDRESS_MAP_END
@@ -761,7 +759,7 @@ static ADDRESS_MAP_START( pangpang_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Bootleg sprite buffer */
AM_RANGE(0x160800, 0x160807) AM_WRITEONLY // writes past the end of spriteram
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(tumblepopb_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_WRITE_LEGACY(tumblepb_control_0_w)
AM_RANGE(0x320000, 0x321fff) AM_RAM_WRITE_LEGACY(pangpang_pf1_data_w) AM_BASE(m_pf1_data)
@@ -771,21 +769,21 @@ ADDRESS_MAP_END
/******************************************************************************/
-static WRITE16_HANDLER( semicom_soundcmd_w )
+WRITE16_MEMBER(tumbleb_state::semicom_soundcmd_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xff);
// needed for Super Trio which reads the sound with polling
- // device_spin_until_time(&space->device(), attotime::from_usec(100));
- space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(20));
+ // device_spin_until_time(&space.device(), attotime::from_usec(100));
+ machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(20));
}
}
-static WRITE8_HANDLER( oki_sound_bank_w )
+WRITE8_MEMBER(tumbleb_state::oki_sound_bank_w)
{
- UINT8 *oki = space->machine().region("oki")->base();
+ UINT8 *oki = machine().region("oki")->base();
memcpy(&oki[0x30000], &oki[(data * 0x10000) + 0x40000], 0x10000);
}
@@ -796,7 +794,7 @@ static ADDRESS_MAP_START( semicom_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
//AM_RANGE(0xf006, 0xf006) ??
AM_RANGE(0xf008, 0xf008) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf00e, 0xf00e) AM_WRITE_LEGACY(oki_sound_bank_w)
+ AM_RANGE(0xf00e, 0xf00e) AM_WRITE(oki_sound_bank_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( suprtrio_sound_map, AS_PROGRAM, 8, tumbleb_state )
@@ -805,12 +803,12 @@ static ADDRESS_MAP_START( suprtrio_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0xf002, 0xf002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
//AM_RANGE(0xf006, 0xf006) ??
AM_RANGE(0xf008, 0xf008) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf00e, 0xf00e) AM_WRITE_LEGACY(oki_sound_bank_w)
+ AM_RANGE(0xf00e, 0xf00e) AM_WRITE(oki_sound_bank_w)
ADDRESS_MAP_END
-static WRITE8_HANDLER(jumppop_z80_bank_w)
+WRITE8_MEMBER(tumbleb_state::jumppop_z80_bank_w)
{
- memory_set_bankptr(space->machine(), "bank1", space->machine().region("audiocpu")->base() + 0x10000 + (0x4000 * data));
+ memory_set_bankptr(machine(), "bank1", machine().region("audiocpu")->base() + 0x10000 + (0x4000 * data));
}
static ADDRESS_MAP_START( jumppop_sound_map, AS_PROGRAM, 8, tumbleb_state )
@@ -819,10 +817,9 @@ static ADDRESS_MAP_START( jumppop_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0xf800, 0xffff) AM_RAM
ADDRESS_MAP_END
-static READ8_HANDLER(jumppop_z80latch_r)
+READ8_MEMBER(tumbleb_state::jumppop_z80latch_r)
{
- tumbleb_state *state = space->machine().driver_data<tumbleb_state>();
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
return soundlatch_r(space, 0);
}
@@ -830,9 +827,9 @@ static ADDRESS_MAP_START( jumppop_sound_io_map, AS_IO, 8, tumbleb_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("ymsnd", ym3812_w)
AM_RANGE(0x02, 0x02) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x03, 0x03) AM_READ_LEGACY(jumppop_z80latch_r)
+ AM_RANGE(0x03, 0x03) AM_READ(jumppop_z80latch_r)
AM_RANGE(0x04, 0x04) AM_NOP
- AM_RANGE(0x05, 0x05) AM_WRITE_LEGACY(jumppop_z80_bank_w)
+ AM_RANGE(0x05, 0x05) AM_WRITE(jumppop_z80_bank_w)
AM_RANGE(0x06, 0x06) AM_NOP
ADDRESS_MAP_END
@@ -840,12 +837,12 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( jumpkids_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(jumpkids_sound_w)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(jumpkids_sound_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(m_mainram)
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size) /* Bootleg sprite buffer */
AM_RANGE(0x160800, 0x160807) AM_WRITEONLY /* writes past the end of spriteram */
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(tumblepopb_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepopb_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM
AM_RANGE(0x300000, 0x30000f) AM_WRITE_LEGACY(tumblepb_control_0_w)
@@ -857,10 +854,10 @@ static ADDRESS_MAP_START( jumpkids_main_map, AS_PROGRAM, 16, tumbleb_state )
AM_RANGE(0x342400, 0x34247f) AM_WRITENOP
ADDRESS_MAP_END
-static WRITE8_HANDLER( jumpkids_oki_bank_w )
+WRITE8_MEMBER(tumbleb_state::jumpkids_oki_bank_w)
{
- UINT8* sound1 = space->machine().region("oki")->base();
- UINT8* sound2 = space->machine().region("oki2")->base();
+ UINT8* sound1 = machine().region("oki")->base();
+ UINT8* sound2 = machine().region("oki2")->base();
int bank = data & 0x03;
memcpy(sound1 + 0x20000, sound2 + bank * 0x20000, 0x20000);
@@ -869,13 +866,13 @@ static WRITE8_HANDLER( jumpkids_oki_bank_w )
static ADDRESS_MAP_START( jumpkids_sound_map, AS_PROGRAM, 8, tumbleb_state )
AM_RANGE(0x0000, 0x0fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x9000, 0x9000) AM_WRITE_LEGACY(jumpkids_oki_bank_w)
+ AM_RANGE(0x9000, 0x9000) AM_WRITE(jumpkids_oki_bank_w)
AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r)
ADDRESS_MAP_END
-static READ8_HANDLER( prot_io_r )
+READ8_MEMBER(tumbleb_state::prot_io_r)
{
// never read?
return 0x00;
@@ -883,33 +880,32 @@ static READ8_HANDLER( prot_io_r )
// probably not endian safe
-static WRITE8_HANDLER( prot_io_w )
+WRITE8_MEMBER(tumbleb_state::prot_io_w)
{
- tumbleb_state *state = space->machine().driver_data<tumbleb_state>();
switch (offset)
{
case 0x00:
{
- UINT16 word = state->m_mainram[(state->m_protbase/2) + state->m_semicom_prot_offset];
+ UINT16 word = m_mainram[(m_protbase/2) + m_semicom_prot_offset];
word = (word & 0xff00) | (data << 0);
- state->m_mainram[(state->m_protbase/2) + state->m_semicom_prot_offset] = word;
+ m_mainram[(m_protbase/2) + m_semicom_prot_offset] = word;
break;
}
case 0x01:
{
- UINT16 word = state->m_mainram[(state->m_protbase/2) + state->m_semicom_prot_offset];
+ UINT16 word = m_mainram[(m_protbase/2) + m_semicom_prot_offset];
word = (word & 0x00ff) | (data << 8);
- state->m_mainram[(state->m_protbase/2) + state->m_semicom_prot_offset] = word;
+ m_mainram[(m_protbase/2) + m_semicom_prot_offset] = word;
break;
}
case 0x02: // offset
{
- state->m_semicom_prot_offset = data;
+ m_semicom_prot_offset = data;
break;
}
@@ -928,7 +924,7 @@ static ADDRESS_MAP_START( protection_map, AS_PROGRAM, 8, tumbleb_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( protection_iomap, AS_IO, 8, tumbleb_state )
- AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE_LEGACY(prot_io_r,prot_io_w)
+ AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P3) AM_READWRITE(prot_io_r,prot_io_w)
ADDRESS_MAP_END
/******************************************************************************/
@@ -3440,18 +3436,19 @@ static DRIVER_INIT( fncywld )
}
-static READ16_HANDLER( bcstory_1a0_read )
+READ16_MEMBER(tumbleb_state::bcstory_1a0_read)
{
- //mame_printf_debug("bcstory_io %06x\n",cpu_get_pc(&space->device()));
+ //mame_printf_debug("bcstory_io %06x\n",cpu_get_pc(&space.device()));
- if (cpu_get_pc(&space->device())==0x0560) return 0x1a0;
- else return input_port_read(space->machine(), "SYSTEM");
+ if (cpu_get_pc(&space.device())==0x0560) return 0x1a0;
+ else return input_port_read(machine(), "SYSTEM");
}
static DRIVER_INIT ( bcstory )
{
+ tumbleb_state *state = machine.driver_data<tumbleb_state>();
tumblepb_gfx1_rearrange(machine);
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x180008, 0x180009, FUNC(bcstory_1a0_read) ); // io should be here??
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x180008, 0x180009, read16_delegate(FUNC(tumbleb_state::bcstory_1a0_read),state)); // io should be here??
}
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index 8f6b48d699c..88f39ba3c70 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -62,40 +62,38 @@ static WRITE16_DEVICE_HANDLER( tumblep_oki_w )
/* STUFF IN OTHER BYTE TOO..*/
}
-static READ16_HANDLER( tumblep_prot_r )
+READ16_MEMBER(tumblep_state::tumblep_prot_r)
{
return ~0;
}
#endif
-static WRITE16_HANDLER( tumblep_sound_w )
+WRITE16_MEMBER(tumblep_state::tumblep_sound_w)
{
- tumblep_state *state = space->machine().driver_data<tumblep_state>();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
#ifdef UNUSED_FUNCTION
-static WRITE16_HANDLER( jumppop_sound_w )
+WRITE16_MEMBER(tumblep_state::jumppop_sound_w)
{
- tumblep_state *state = space->machine().driver_data<tumblep_state>();
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(state->m_audiocpu, 0, ASSERT_LINE );
+ cputag_set_input_line(m_audiocpu, 0, ASSERT_LINE );
}
#endif
/******************************************************************************/
-static READ16_HANDLER( tumblepop_controls_r )
+READ16_MEMBER(tumblep_state::tumblepop_controls_r)
{
switch (offset << 1)
{
case 0:
- return input_port_read(space->machine(), "PLAYERS");
+ return input_port_read(machine(), "PLAYERS");
case 2:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 8:
- return input_port_read(space->machine(), "SYSTEM");
+ return input_port_read(machine(), "SYSTEM");
case 10: /* ? */
case 12:
return 0;
@@ -113,10 +111,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tumblep_state )
#else
AM_RANGE(0x000000, 0x07ffff) AM_ROM
#endif
- AM_RANGE(0x100000, 0x100001) AM_WRITE_LEGACY(tumblep_sound_w)
+ AM_RANGE(0x100000, 0x100001) AM_WRITE(tumblep_sound_w)
AM_RANGE(0x120000, 0x123fff) AM_RAM
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x180000, 0x18000f) AM_READ_LEGACY(tumblepop_controls_r)
+ AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITENOP
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x300000, 0x30000f) AM_DEVWRITE_LEGACY("tilegen1", deco16ic_pf_control_w)
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index 87f7b6a6b6f..a92264d067a 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -60,7 +60,7 @@
*
*************************************/
-static WRITE8_HANDLER( tunhunt_control_w )
+WRITE8_MEMBER(tunhunt_state::tunhunt_control_w)
{
/*
0x01 coin counter#2 "right counter"
@@ -71,12 +71,11 @@ static WRITE8_HANDLER( tunhunt_control_w )
0x40 start LED
0x80 in-game
*/
- tunhunt_state *state = space->machine().driver_data<tunhunt_state>();
- state->m_control = data;
- coin_counter_w( space->machine(), 0,data&0x01 );
- coin_counter_w( space->machine(), 1,data&0x02 );
- set_led_status( space->machine(), 0, data&0x40 ); /* start */
+ m_control = data;
+ coin_counter_w( machine(), 0,data&0x01 );
+ coin_counter_w( machine(), 1,data&0x02 );
+ set_led_status( machine(), 0, data&0x40 ); /* start */
}
@@ -87,9 +86,9 @@ static WRITE8_HANDLER( tunhunt_control_w )
*
*************************************/
-static READ8_HANDLER( tunhunt_button_r )
+READ8_MEMBER(tunhunt_state::tunhunt_button_r)
{
- int data = input_port_read(space->machine(), "IN0");
+ int data = input_port_read(machine(), "IN0");
return ((data>>offset)&1)?0x00:0x80;
}
@@ -142,9 +141,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tunhunt_state )
AM_RANGE(0x1c00, 0x1c00) AM_WRITEONLY /* MOBJV */
AM_RANGE(0x1e00, 0x1eff) AM_WRITE_LEGACY(tunhunt_videoram_w) AM_BASE(m_videoram) /* ALPHA */
AM_RANGE(0x2000, 0x2000) AM_WRITENOP /* watchdog */
- AM_RANGE(0x2000, 0x2007) AM_READ_LEGACY(tunhunt_button_r)
+ AM_RANGE(0x2000, 0x2007) AM_READ(tunhunt_button_r)
AM_RANGE(0x2400, 0x2400) AM_WRITENOP /* INT ACK */
- AM_RANGE(0x2800, 0x2800) AM_WRITE_LEGACY(tunhunt_control_w)
+ AM_RANGE(0x2800, 0x2800) AM_WRITE(tunhunt_control_w)
AM_RANGE(0x2c00, 0x2fff) AM_WRITEONLY AM_BASE(m_spriteram)
AM_RANGE(0x3000, 0x300f) AM_DEVREADWRITE_LEGACY("pokey1", pokey_r, pokey_w)
AM_RANGE(0x4000, 0x400f) AM_DEVREADWRITE_LEGACY("pokey2", pokey_r, pokey_w)
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index f44aafbb502..fc4e0689d56 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -477,10 +477,9 @@ static void update_outputs(i8279_state *chip, UINT16 which)
}
-static READ8_HANDLER( turbo_8279_r )
+READ8_MEMBER(turbo_state::turbo_8279_r)
{
- turbo_state *state = space->machine().driver_data<turbo_state>();
- i8279_state *chip = &state->m_i8279;
+ i8279_state *chip = &m_i8279;
UINT8 result = 0xff;
UINT8 addr;
@@ -491,7 +490,7 @@ static READ8_HANDLER( turbo_8279_r )
{
/* read sensor RAM */
case 0x40:
- result = ~input_port_read(space->machine(), "DSW1"); /* DSW 1 - inverted! */
+ result = ~input_port_read(machine(), "DSW1"); /* DSW 1 - inverted! */
break;
/* read display RAM */
@@ -518,10 +517,9 @@ static READ8_HANDLER( turbo_8279_r )
}
-static WRITE8_HANDLER( turbo_8279_w )
+WRITE8_MEMBER(turbo_state::turbo_8279_w)
{
- turbo_state *state = space->machine().driver_data<turbo_state>();
- i8279_state *chip = &state->m_i8279;
+ i8279_state *chip = &m_i8279;
UINT8 addr;
/* write data */
@@ -622,19 +620,17 @@ static WRITE8_HANDLER( turbo_8279_w )
*
*************************************/
-static READ8_HANDLER( turbo_collision_r )
+READ8_MEMBER(turbo_state::turbo_collision_r)
{
- turbo_state *state = space->machine().driver_data<turbo_state>();
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
- return input_port_read(space->machine(), "DSW3") | (state->m_turbo_collision & 15);
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ return input_port_read(machine(), "DSW3") | (m_turbo_collision & 15);
}
-static WRITE8_HANDLER( turbo_collision_clear_w )
+WRITE8_MEMBER(turbo_state::turbo_collision_clear_w)
{
- turbo_state *state = space->machine().driver_data<turbo_state>();
- space->machine().primary_screen->update_partial(space->machine().primary_screen->vpos());
- state->m_turbo_collision = 0;
+ machine().primary_screen->update_partial(machine().primary_screen->vpos());
+ m_turbo_collision = 0;
}
@@ -645,25 +641,24 @@ static READ8_DEVICE_HANDLER( turbo_analog_r )
}
-static WRITE8_HANDLER( turbo_analog_reset_w )
+WRITE8_MEMBER(turbo_state::turbo_analog_reset_w)
{
- turbo_state *state = space->machine().driver_data<turbo_state>();
- state->m_turbo_last_analog = input_port_read(space->machine(), "DIAL");
+ m_turbo_last_analog = input_port_read(machine(), "DIAL");
}
-static WRITE8_HANDLER( turbo_coin_and_lamp_w )
+WRITE8_MEMBER(turbo_state::turbo_coin_and_lamp_w)
{
switch (offset & 7)
{
case 0:
- coin_counter_w(space->machine(), 0, data & 1);
+ coin_counter_w(machine(), 0, data & 1);
break;
case 1:
- coin_counter_w(space->machine(), 1, data & 1);
+ coin_counter_w(machine(), 1, data & 1);
break;
case 3:
- set_led_status(space->machine(), 0, data & 1);
+ set_led_status(machine(), 0, data & 1);
break;
}
}
@@ -676,19 +671,18 @@ static WRITE8_HANDLER( turbo_coin_and_lamp_w )
*
*************************************/
-static READ8_HANDLER( buckrog_cpu2_command_r )
+READ8_MEMBER(turbo_state::buckrog_cpu2_command_r)
{
/* assert ACK */
- turbo_state *state = space->machine().driver_data<turbo_state>();
- ppi8255_set_port_c(space->machine().device("ppi8255_0"), 0x00);
- return state->m_buckrog_command;
+ ppi8255_set_port_c(machine().device("ppi8255_0"), 0x00);
+ return m_buckrog_command;
}
-static READ8_HANDLER( buckrog_port_2_r )
+READ8_MEMBER(turbo_state::buckrog_port_2_r)
{
- int inp1 = input_port_read(space->machine(), "DSW1");
- int inp2 = input_port_read(space->machine(), "DSW2");
+ int inp1 = input_port_read(machine(), "DSW1");
+ int inp2 = input_port_read(machine(), "DSW2");
return (((inp2 >> 6) & 1) << 7) |
(((inp2 >> 4) & 1) << 6) |
@@ -701,10 +695,10 @@ static READ8_HANDLER( buckrog_port_2_r )
}
-static READ8_HANDLER( buckrog_port_3_r )
+READ8_MEMBER(turbo_state::buckrog_port_3_r)
{
- int inp1 = input_port_read(space->machine(), "DSW1");
- int inp2 = input_port_read(space->machine(), "DSW2");
+ int inp1 = input_port_read(machine(), "DSW1");
+ int inp2 = input_port_read(machine(), "DSW2");
return (((inp2 >> 7) & 1) << 7) |
(((inp2 >> 5) & 1) << 6) |
@@ -741,19 +735,19 @@ static WRITE8_DEVICE_HANDLER( buckrog_ppi8255_0_w )
static ADDRESS_MAP_START( turbo_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0xa000, 0xa0ff) AM_MIRROR(0x0700) AM_MASK(0x0f7) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_WRITE_LEGACY(turbo_coin_and_lamp_w)
+ AM_RANGE(0xa800, 0xa807) AM_MIRROR(0x07f8) AM_WRITE(turbo_coin_and_lamp_w)
AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(m_sprite_position)
- AM_RANGE(0xb800, 0xbfff) AM_WRITE_LEGACY(turbo_analog_reset_w)
+ AM_RANGE(0xb800, 0xbfff) AM_WRITE(turbo_analog_reset_w)
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE_LEGACY(turbo_videoram_w) AM_BASE(m_videoram)
- AM_RANGE(0xe800, 0xefff) AM_WRITE_LEGACY(turbo_collision_clear_w)
+ AM_RANGE(0xe800, 0xefff) AM_WRITE(turbo_collision_clear_w)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf803) AM_MIRROR(0x00fc) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xf900, 0xf903) AM_MIRROR(0x00fc) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w)
AM_RANGE(0xfa00, 0xfa03) AM_MIRROR(0x00fc) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w)
AM_RANGE(0xfb00, 0xfb03) AM_MIRROR(0x00fc) AM_DEVREADWRITE_LEGACY("ppi8255_3", ppi8255_r, ppi8255_w)
- AM_RANGE(0xfc00, 0xfc01) AM_MIRROR(0x00fe) AM_READWRITE_LEGACY(turbo_8279_r, turbo_8279_w)
+ AM_RANGE(0xfc00, 0xfc01) AM_MIRROR(0x00fe) AM_READWRITE(turbo_8279_r, turbo_8279_w)
AM_RANGE(0xfd00, 0xfdff) AM_READ_PORT("INPUT")
- AM_RANGE(0xfe00, 0xfeff) AM_READ_LEGACY(turbo_collision_r)
+ AM_RANGE(0xfe00, 0xfeff) AM_READ(turbo_collision_r)
ADDRESS_MAP_END
@@ -777,7 +771,7 @@ static ADDRESS_MAP_START( subroc3d_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE_LEGACY(turbo_videoram_w) AM_BASE(m_videoram) // FIX PAGE
AM_RANGE(0xe800, 0xe803) AM_MIRROR(0x07fc) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w)
AM_RANGE(0xf000, 0xf003) AM_MIRROR(0x07fc) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w)
- AM_RANGE(0xf800, 0xf801) AM_MIRROR(0x07fe) AM_READWRITE_LEGACY(turbo_8279_r, turbo_8279_w)
+ AM_RANGE(0xf800, 0xf801) AM_MIRROR(0x07fe) AM_READWRITE(turbo_8279_r, turbo_8279_w)
ADDRESS_MAP_END
@@ -794,13 +788,13 @@ static ADDRESS_MAP_START( buckrog_map, AS_PROGRAM, 8, turbo_state )
AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(turbo_videoram_w) AM_BASE(m_videoram) // FIX PAGE
AM_RANGE(0xc800, 0xc803) AM_MIRROR(0x07fc) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, 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, 0xd801) AM_MIRROR(0x07fe) AM_READWRITE_LEGACY(turbo_8279_r, turbo_8279_w) // 8279
+ AM_RANGE(0xd800, 0xd801) AM_MIRROR(0x07fe) AM_READWRITE(turbo_8279_r, turbo_8279_w) // 8279
AM_RANGE(0xe000, 0xe3ff) AM_RAM AM_BASE(m_sprite_position) // CONT RAM
AM_RANGE(0xe400, 0xe7ff) AM_RAM AM_BASE(m_spriteram) // CONT RAM
AM_RANGE(0xe800, 0xe800) AM_MIRROR(0x07fc) AM_READ_PORT("IN0") // INPUT
AM_RANGE(0xe801, 0xe801) AM_MIRROR(0x07fc) AM_READ_PORT("IN1")
- AM_RANGE(0xe802, 0xe802) AM_MIRROR(0x07fc) AM_READ_LEGACY(buckrog_port_2_r)
- AM_RANGE(0xe803, 0xe803) AM_MIRROR(0x07fc) AM_READ_LEGACY(buckrog_port_3_r)
+ AM_RANGE(0xe802, 0xe802) AM_MIRROR(0x07fc) AM_READ(buckrog_port_2_r)
+ AM_RANGE(0xe803, 0xe803) AM_MIRROR(0x07fc) AM_READ(buckrog_port_3_r)
AM_RANGE(0xf000, 0xf000)
AM_RANGE(0xf800, 0xffff) AM_RAM // SCRATCH
ADDRESS_MAP_END
@@ -815,7 +809,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( buckrog_cpu2_portmap, AS_IO, 8, turbo_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0xff) AM_READ_LEGACY(buckrog_cpu2_command_r)
+ AM_RANGE(0x00, 0xff) AM_READ(buckrog_cpu2_command_r)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c
index 2a9b8a686e1..128568fe622 100644
--- a/src/mame/drivers/tutankhm.c
+++ b/src/mame/drivers/tutankhm.c
@@ -72,13 +72,12 @@ static INTERRUPT_GEN( tutankhm_interrupt )
}
-static WRITE8_HANDLER( irq_enable_w )
+WRITE8_MEMBER(tutankhm_state::irq_enable_w)
{
- tutankhm_state *state = space->machine().driver_data<tutankhm_state>();
- state->m_irq_enable = data & 1;
- if (!state->m_irq_enable)
- device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
+ m_irq_enable = data & 1;
+ if (!m_irq_enable)
+ device_set_input_line(m_maincpu, 0, CLEAR_LINE);
}
@@ -88,9 +87,9 @@ static WRITE8_HANDLER( irq_enable_w )
*
*************************************/
-static WRITE8_HANDLER( tutankhm_bankselect_w )
+WRITE8_MEMBER(tutankhm_state::tutankhm_bankselect_w)
{
- memory_set_bank(space->machine(), "bank1", data & 0x0f);
+ memory_set_bank(machine(), "bank1", data & 0x0f);
}
@@ -100,15 +99,15 @@ static WRITE8_HANDLER( tutankhm_bankselect_w )
*
*************************************/
-static WRITE8_HANDLER( sound_mute_w )
+WRITE8_MEMBER(tutankhm_state::sound_mute_w)
{
- space->machine().sound().system_mute(data & 1);
+ machine().sound().system_mute(data & 1);
}
-static WRITE8_HANDLER( tutankhm_coin_counter_w )
+WRITE8_MEMBER(tutankhm_state::tutankhm_coin_counter_w)
{
- coin_counter_w(space->machine(), offset ^ 1, data);
+ coin_counter_w(machine(), offset ^ 1, data);
}
@@ -128,13 +127,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, tutankhm_state )
AM_RANGE(0x81a0, 0x81a0) AM_MIRROR(0x000f) AM_READ_PORT("IN1") /* IN1: Player 1 I/O */
AM_RANGE(0x81c0, 0x81c0) AM_MIRROR(0x000f) AM_READ_PORT("IN2") /* IN2: Player 2 I/O */
AM_RANGE(0x81e0, 0x81e0) AM_MIRROR(0x000f) AM_READ_PORT("DSW1") /* DSW1 (inverted bits) */
- AM_RANGE(0x8200, 0x8200) AM_MIRROR(0x00f8) AM_READNOP AM_WRITE_LEGACY(irq_enable_w)
- AM_RANGE(0x8202, 0x8203) AM_MIRROR(0x00f8) AM_WRITE_LEGACY(tutankhm_coin_counter_w)
+ AM_RANGE(0x8200, 0x8200) AM_MIRROR(0x00f8) AM_READNOP AM_WRITE(irq_enable_w)
+ AM_RANGE(0x8202, 0x8203) AM_MIRROR(0x00f8) AM_WRITE(tutankhm_coin_counter_w)
AM_RANGE(0x8204, 0x8204) AM_MIRROR(0x00f8) AM_WRITENOP // starfield?
- AM_RANGE(0x8205, 0x8205) AM_MIRROR(0x00f8) AM_WRITE_LEGACY(sound_mute_w)
+ AM_RANGE(0x8205, 0x8205) AM_MIRROR(0x00f8) AM_WRITE(sound_mute_w)
AM_RANGE(0x8206, 0x8206) AM_MIRROR(0x00f8) AM_WRITE_LEGACY(tutankhm_flip_screen_x_w)
AM_RANGE(0x8207, 0x8207) AM_MIRROR(0x00f8) AM_WRITE_LEGACY(tutankhm_flip_screen_y_w)
- AM_RANGE(0x8300, 0x8300) AM_MIRROR(0x00ff) AM_WRITE_LEGACY(tutankhm_bankselect_w)
+ AM_RANGE(0x8300, 0x8300) AM_MIRROR(0x00ff) AM_WRITE(tutankhm_bankselect_w)
AM_RANGE(0x8600, 0x8600) AM_MIRROR(0x00ff) AM_WRITE_LEGACY(timeplt_sh_irqtrigger_w)
AM_RANGE(0x8700, 0x8700) AM_MIRROR(0x00ff) AM_WRITE_LEGACY(soundlatch_w)
AM_RANGE(0x8800, 0x8fff) AM_RAM
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index fdc926777e0..bdcd48fc208 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -74,47 +74,41 @@ int twin16_spriteram_process_enable( running_machine &machine )
/* Read/Write Handlers */
-static READ16_HANDLER( videoram16_r )
+READ16_MEMBER(twin16_state::videoram16_r)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- UINT16 *videoram = state->m_videoram;
+ UINT16 *videoram = m_videoram;
return videoram[offset];
}
-static WRITE16_HANDLER( videoram16_w )
+WRITE16_MEMBER(twin16_state::videoram16_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- UINT16 *videoram = state->m_videoram;
+ UINT16 *videoram = m_videoram;
COMBINE_DATA(videoram + offset);
}
-static READ16_HANDLER( extra_rom_r )
+READ16_MEMBER(twin16_state::extra_rom_r)
{
- return ((UINT16 *)space->machine().region("gfx3")->base())[offset];
+ return ((UINT16 *)machine().region("gfx3")->base())[offset];
}
-static READ16_HANDLER( twin16_gfx_rom1_r )
+READ16_MEMBER(twin16_state::twin16_gfx_rom1_r)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- return state->m_gfx_rom[offset + ((state->m_CPUB_register&0x04)?0x40000:0)];
+ return m_gfx_rom[offset + ((m_CPUB_register&0x04)?0x40000:0)];
}
-static READ16_HANDLER( twin16_gfx_rom2_r )
+READ16_MEMBER(twin16_state::twin16_gfx_rom2_r)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- return state->m_gfx_rom[offset + 0x80000 + ((state->m_CPUB_register&0x04)?0x40000:0)];
+ return m_gfx_rom[offset + 0x80000 + ((m_CPUB_register&0x04)?0x40000:0)];
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(twin16_state::sound_command_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- COMBINE_DATA(&state->m_sound_command);
- soundlatch_w( space, 0, state->m_sound_command&0xff );
+ COMBINE_DATA(&m_sound_command);
+ soundlatch_w(space, 0, m_sound_command&0xff );
}
-static WRITE16_HANDLER( twin16_CPUA_register_w )
+WRITE16_MEMBER(twin16_state::twin16_CPUA_register_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
/*
7 6 5 4 3 2 1 0
X sprite processing disable
@@ -123,74 +117,72 @@ static WRITE16_HANDLER( twin16_CPUA_register_w )
X 0->1 trigger IRQ on sound CPU
x x x coin counters
*/
- UINT16 old = state->m_CPUA_register;
- COMBINE_DATA(&state->m_CPUA_register);
- if (state->m_CPUA_register != old)
+ UINT16 old = m_CPUA_register;
+ COMBINE_DATA(&m_CPUA_register);
+ if (m_CPUA_register != old)
{
- if ((old & 0x08) == 0 && (state->m_CPUA_register & 0x08))
- cputag_set_input_line_and_vector(space->machine(), "audiocpu", 0, HOLD_LINE, 0xff);
+ if ((old & 0x08) == 0 && (m_CPUA_register & 0x08))
+ cputag_set_input_line_and_vector(machine(), "audiocpu", 0, HOLD_LINE, 0xff);
- if ((old & 0x40) && (state->m_CPUA_register & 0x40) == 0)
- twin16_spriteram_process(space->machine());
+ if ((old & 0x40) && (m_CPUA_register & 0x40) == 0)
+ twin16_spriteram_process(machine());
- if ((old & 0x10) == 0 && (state->m_CPUA_register & 0x10))
- cputag_set_input_line(space->machine(), "sub", M68K_IRQ_6, HOLD_LINE);
+ if ((old & 0x10) == 0 && (m_CPUA_register & 0x10))
+ cputag_set_input_line(machine(), "sub", M68K_IRQ_6, HOLD_LINE);
- coin_counter_w(space->machine(), 0, state->m_CPUA_register & 0x01);
- coin_counter_w(space->machine(), 1, state->m_CPUA_register & 0x02);
- coin_counter_w(space->machine(), 2, state->m_CPUA_register & 0x04);
+ coin_counter_w(machine(), 0, m_CPUA_register & 0x01);
+ coin_counter_w(machine(), 1, m_CPUA_register & 0x02);
+ coin_counter_w(machine(), 2, m_CPUA_register & 0x04);
}
}
-static WRITE16_HANDLER( twin16_CPUB_register_w )
+WRITE16_MEMBER(twin16_state::twin16_CPUB_register_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
/*
7 6 5 4 3 2 1 0
X gfx bank select
X IRQ5 enable
X 0->1 trigger IRQ6 on CPUA
*/
- UINT16 old = state->m_CPUB_register;
- COMBINE_DATA(&state->m_CPUB_register);
- if( state->m_CPUB_register!=old )
+ UINT16 old = m_CPUB_register;
+ COMBINE_DATA(&m_CPUB_register);
+ if( m_CPUB_register!=old )
{
- if ((old & 0x01) == 0 && (state->m_CPUB_register & 0x01))
- cputag_set_input_line(space->machine(), "maincpu", M68K_IRQ_6, HOLD_LINE);
+ if ((old & 0x01) == 0 && (m_CPUB_register & 0x01))
+ cputag_set_input_line(machine(), "maincpu", M68K_IRQ_6, HOLD_LINE);
}
}
-static WRITE16_HANDLER( fround_CPU_register_w )
+WRITE16_MEMBER(twin16_state::fround_CPU_register_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
/*
7 6 5 4 3 2 1 0
X 0->1 trigger IRQ on sound CPU
x x coin counters
*/
- UINT16 old = state->m_CPUA_register;
- COMBINE_DATA(&state->m_CPUA_register);
- if (state->m_CPUA_register != old)
+ UINT16 old = m_CPUA_register;
+ COMBINE_DATA(&m_CPUA_register);
+ if (m_CPUA_register != old)
{
- if ((old & 0x08) == 0 && (state->m_CPUA_register & 0x08))
- cputag_set_input_line_and_vector(space->machine(), "audiocpu", 0, HOLD_LINE, 0xff);
+ if ((old & 0x08) == 0 && (m_CPUA_register & 0x08))
+ cputag_set_input_line_and_vector(machine(), "audiocpu", 0, HOLD_LINE, 0xff);
- coin_counter_w(space->machine(), 0, state->m_CPUA_register & 0x01);
- coin_counter_w(space->machine(), 1, state->m_CPUA_register & 0x02);
+ coin_counter_w(machine(), 0, m_CPUA_register & 0x01);
+ coin_counter_w(machine(), 1, m_CPUA_register & 0x02);
}
}
-static READ16_HANDLER( twin16_input_r )
+READ16_MEMBER(twin16_state::twin16_input_r)
{
switch( offset )
{
- case 0x00: return input_port_read(space->machine(), "SYSTEM");
- case 0x01: return input_port_read(space->machine(), "P1");
- case 0x02: return input_port_read(space->machine(), "P2");
- case 0x03: return input_port_read(space->machine(), "P3");
- case 0x08: return input_port_read(space->machine(), "DSW2");
- case 0x09: return input_port_read(space->machine(), "DSW1");
- case 0x0c: return input_port_read(space->machine(), "DSW3");
+ case 0x00: return input_port_read(machine(), "SYSTEM");
+ case 0x01: return input_port_read(machine(), "P1");
+ case 0x02: return input_port_read(machine(), "P2");
+ case 0x03: return input_port_read(machine(), "P3");
+ case 0x08: return input_port_read(machine(), "DSW2");
+ case 0x09: return input_port_read(machine(), "DSW1");
+ case 0x0c: return input_port_read(machine(), "DSW3");
default: break;
}
return 0;
@@ -211,22 +203,19 @@ static WRITE8_DEVICE_HANDLER( twin16_upd_start_w )
upd7759_start_w(device, data & 1);
}
-static READ16_HANDLER( cuebrickj_nvram_r )
+READ16_MEMBER(twin16_state::cuebrickj_nvram_r)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- return state->m_cuebrickj_nvram[offset + (state->m_cuebrickj_nvram_bank * 0x400 / 2)];
+ return m_cuebrickj_nvram[offset + (m_cuebrickj_nvram_bank * 0x400 / 2)];
}
-static WRITE16_HANDLER( cuebrickj_nvram_w )
+WRITE16_MEMBER(twin16_state::cuebrickj_nvram_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- COMBINE_DATA(&state->m_cuebrickj_nvram[offset + (state->m_cuebrickj_nvram_bank * 0x400 / 2)]);
+ COMBINE_DATA(&m_cuebrickj_nvram[offset + (m_cuebrickj_nvram_bank * 0x400 / 2)]);
}
-static WRITE16_HANDLER( cuebrickj_nvram_bank_w )
+WRITE16_MEMBER(twin16_state::cuebrickj_nvram_bank_w)
{
- twin16_state *state = space->machine().driver_data<twin16_state>();
- state->m_cuebrickj_nvram_bank = (data >> 8);
+ m_cuebrickj_nvram_bank = (data >> 8);
}
/* Memory Maps */
@@ -250,12 +239,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE_LEGACY(twin16_paletteram_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x081000, 0x081fff) AM_WRITENOP
- AM_RANGE(0x0a0000, 0x0a001b) AM_READ_LEGACY(twin16_input_r)
- AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(twin16_CPUA_register_w)
- AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x0a0000, 0x0a001b) AM_READ(twin16_input_r)
+ AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUA_register_w)
+ AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(sound_command_w)
AM_RANGE(0x0a0010, 0x0a0011) AM_WRITE_LEGACY(watchdog_reset16_w)
- AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE_LEGACY(cuebrickj_nvram_r, cuebrickj_nvram_w) AM_SHARE("nvram")
- AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE_LEGACY(cuebrickj_nvram_bank_w)
+ AM_RANGE(0x0b0000, 0x0b03ff) AM_READWRITE(cuebrickj_nvram_r, cuebrickj_nvram_w) AM_SHARE("nvram")
+ AM_RANGE(0x0b0400, 0x0b0401) AM_WRITE(cuebrickj_nvram_bank_w)
AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE_LEGACY(twin16_video_register_w)
AM_RANGE(0x0c000e, 0x0c000f) AM_READ_LEGACY(twin16_sprite_status_r)
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE_LEGACY(twin16_text_ram_w) AM_BASE(m_text_ram)
@@ -269,13 +258,13 @@ static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x040000, 0x043fff) AM_READ_BANK(COMRAM_r) AM_WRITE_BANK(COMRAM_w)
// AM_RANGE(0x044000, 0x04ffff) AM_NOP // miaj
AM_RANGE(0x060000, 0x063fff) AM_RAM
- AM_RANGE(0x080000, 0x09ffff) AM_READ_LEGACY(extra_rom_r)
- AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(twin16_CPUB_register_w)
+ AM_RANGE(0x080000, 0x09ffff) AM_READ(extra_rom_r)
+ AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(twin16_CPUB_register_w)
AM_RANGE(0x400000, 0x403fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x480000, 0x483fff) AM_READWRITE_LEGACY(videoram16_r, videoram16_w)
+ AM_RANGE(0x480000, 0x483fff) AM_READWRITE(videoram16_r, videoram16_w)
AM_RANGE(0x500000, 0x53ffff) AM_RAM AM_BASE(m_tile_gfx_ram)
- AM_RANGE(0x600000, 0x6fffff) AM_READ_LEGACY(twin16_gfx_rom1_r)
- AM_RANGE(0x700000, 0x77ffff) AM_READ_LEGACY(twin16_gfx_rom2_r)
+ AM_RANGE(0x600000, 0x6fffff) AM_READ(twin16_gfx_rom1_r)
+ AM_RANGE(0x700000, 0x77ffff) AM_READ(twin16_gfx_rom2_r)
AM_RANGE(0x780000, 0x79ffff) AM_RAM AM_BASE(m_sprite_gfx_ram)
ADDRESS_MAP_END
@@ -284,9 +273,9 @@ static ADDRESS_MAP_START( fround_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x040000, 0x043fff) AM_READ_BANK(COMRAM_r) AM_WRITE_BANK(COMRAM_w)
AM_RANGE(0x060000, 0x063fff) AM_RAM
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE_LEGACY(twin16_paletteram_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x0a0000, 0x0a001b) AM_READ_LEGACY(twin16_input_r)
- AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE_LEGACY(fround_CPU_register_w)
- AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0x0a0000, 0x0a001b) AM_READ(twin16_input_r)
+ AM_RANGE(0x0a0000, 0x0a0001) AM_WRITE(fround_CPU_register_w)
+ AM_RANGE(0x0a0008, 0x0a0009) AM_WRITE(sound_command_w)
AM_RANGE(0x0a0010, 0x0a0011) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x0c0000, 0x0c000f) AM_WRITE_LEGACY(twin16_video_register_w)
AM_RANGE(0x0c000e, 0x0c000f) AM_READ_LEGACY(twin16_sprite_status_r)
@@ -294,7 +283,7 @@ static ADDRESS_MAP_START( fround_map, AS_PROGRAM, 16, twin16_state )
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE_LEGACY(twin16_text_ram_w) AM_BASE(m_text_ram)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_BASE(m_videoram)
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x500000, 0x6fffff) AM_READ_LEGACY(twin16_gfx_rom1_r)
+ AM_RANGE(0x500000, 0x6fffff) AM_READ(twin16_gfx_rom1_r)
ADDRESS_MAP_END
/* Input Ports */
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index 4ec5cbeb226..76188444228 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -17,18 +17,17 @@
#include "sound/okim6295.h"
#include "includes/ultraman.h"
-static WRITE16_HANDLER( sound_cmd_w )
+WRITE16_MEMBER(ultraman_state::sound_cmd_w)
{
if (ACCESSING_BITS_0_7)
soundlatch_w(space, 0, data & 0xff);
}
-static WRITE16_HANDLER( sound_irq_trigger_w )
+WRITE16_MEMBER(ultraman_state::sound_irq_trigger_w)
{
- ultraman_state *state = space->machine().driver_data<ultraman_state>();
if (ACCESSING_BITS_0_7)
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
@@ -42,8 +41,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, ultraman_state )
AM_RANGE(0x1c0006, 0x1c0007) AM_READ_PORT("DSW1")
AM_RANGE(0x1c0008, 0x1c0009) AM_READ_PORT("DSW2")
AM_RANGE(0x1c0018, 0x1c0019) AM_WRITE_LEGACY(ultraman_gfxctrl_w) /* counters + gfx ctrl */
- AM_RANGE(0x1c0020, 0x1c0021) AM_WRITE_LEGACY(sound_cmd_w)
- AM_RANGE(0x1c0028, 0x1c0029) AM_WRITE_LEGACY(sound_irq_trigger_w)
+ AM_RANGE(0x1c0020, 0x1c0021) AM_WRITE(sound_cmd_w)
+ AM_RANGE(0x1c0028, 0x1c0029) AM_WRITE(sound_irq_trigger_w)
AM_RANGE(0x1c0030, 0x1c0031) AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x204000, 0x204fff) AM_DEVREADWRITE8_LEGACY("k051316_1", k051316_r, k051316_w, 0x00ff) /* K051316 #0 RAM */
AM_RANGE(0x205000, 0x205fff) AM_DEVREADWRITE8_LEGACY("k051316_2", k051316_r, k051316_w, 0x00ff) /* K051316 #1 RAM */
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index a70a2d00a0a..9c2f6c76ea9 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -67,69 +67,65 @@ static MACHINE_RESET( ultratnk )
}
-static READ8_HANDLER( ultratnk_wram_r )
+READ8_MEMBER(ultratnk_state::ultratnk_wram_r)
{
- ultratnk_state *state = space->machine().driver_data<ultratnk_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
return videoram[0x380 + offset];
}
-static READ8_HANDLER( ultratnk_analog_r )
+READ8_MEMBER(ultratnk_state::ultratnk_analog_r)
{
- return (input_port_read(space->machine(), "ANALOG") << (~offset & 7)) & 0x80;
+ return (input_port_read(machine(), "ANALOG") << (~offset & 7)) & 0x80;
}
-static READ8_HANDLER( ultratnk_coin_r )
+READ8_MEMBER(ultratnk_state::ultratnk_coin_r)
{
- return (input_port_read(space->machine(), "COIN") << (~offset & 7)) & 0x80;
+ return (input_port_read(machine(), "COIN") << (~offset & 7)) & 0x80;
}
-static READ8_HANDLER( ultratnk_collision_r )
+READ8_MEMBER(ultratnk_state::ultratnk_collision_r)
{
- return (input_port_read(space->machine(), "COLLISION") << (~offset & 7)) & 0x80;
+ return (input_port_read(machine(), "COLLISION") << (~offset & 7)) & 0x80;
}
-static READ8_HANDLER( ultratnk_options_r )
+READ8_MEMBER(ultratnk_state::ultratnk_options_r)
{
- return (input_port_read(space->machine(), "DIP") >> (2 * (offset & 3))) & 3;
+ return (input_port_read(machine(), "DIP") >> (2 * (offset & 3))) & 3;
}
-static WRITE8_HANDLER( ultratnk_wram_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_wram_w)
{
- ultratnk_state *state = space->machine().driver_data<ultratnk_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
videoram[0x380 + offset] = data;
}
-static WRITE8_HANDLER( ultratnk_collision_reset_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_collision_reset_w)
{
- ultratnk_state *state = space->machine().driver_data<ultratnk_state>();
- state->m_collision[(offset >> 1) & 3] = 0;
+ m_collision[(offset >> 1) & 3] = 0;
}
-static WRITE8_HANDLER( ultratnk_da_latch_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_da_latch_w)
{
- ultratnk_state *state = space->machine().driver_data<ultratnk_state>();
- state->m_da_latch = data & 15;
+ m_da_latch = data & 15;
}
-static WRITE8_HANDLER( ultratnk_led_1_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_led_1_w)
{
- set_led_status(space->machine(), 0, offset & 1); /* left player start */
+ set_led_status(machine(), 0, offset & 1); /* left player start */
}
-static WRITE8_HANDLER( ultratnk_led_2_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_led_2_w)
{
- set_led_status(space->machine(), 1, offset & 1); /* right player start */
+ set_led_status(machine(), 1, offset & 1); /* right player start */
}
-static WRITE8_HANDLER( ultratnk_lockout_w )
+WRITE8_MEMBER(ultratnk_state::ultratnk_lockout_w)
{
- coin_lockout_global_w(space->machine(), ~offset & 1);
+ coin_lockout_global_w(machine(), ~offset & 1);
}
@@ -156,25 +152,25 @@ static ADDRESS_MAP_START( ultratnk_cpu_map, AS_PROGRAM, 8, ultratnk_state )
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
AM_RANGE(0x0000, 0x007f) AM_MIRROR(0x700) AM_RAM
- AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE_LEGACY(ultratnk_wram_r, ultratnk_wram_w)
+ AM_RANGE(0x0080, 0x00ff) AM_MIRROR(0x700) AM_READWRITE(ultratnk_wram_r, ultratnk_wram_w)
AM_RANGE(0x0800, 0x0bff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(ultratnk_video_ram_w) AM_BASE(m_videoram)
AM_RANGE(0x1000, 0x17ff) AM_READ_PORT("IN0")
AM_RANGE(0x1800, 0x1fff) AM_READ_PORT("IN1")
- AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x718) AM_READ_LEGACY(ultratnk_analog_r)
- AM_RANGE(0x2020, 0x2027) AM_MIRROR(0x718) AM_READ_LEGACY(ultratnk_coin_r)
- AM_RANGE(0x2040, 0x2047) AM_MIRROR(0x718) AM_READ_LEGACY(ultratnk_collision_r)
- AM_RANGE(0x2060, 0x2063) AM_MIRROR(0x71c) AM_READ_LEGACY(ultratnk_options_r)
+ AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x718) AM_READ(ultratnk_analog_r)
+ AM_RANGE(0x2020, 0x2027) AM_MIRROR(0x718) AM_READ(ultratnk_coin_r)
+ 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(0x2020, 0x2027) AM_MIRROR(0x718) AM_WRITE_LEGACY(ultratnk_collision_reset_w)
- AM_RANGE(0x2040, 0x2041) AM_MIRROR(0x718) AM_WRITE_LEGACY(ultratnk_da_latch_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(0x2044, 0x2045) AM_MIRROR(0x718) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0x2066, 0x2067) AM_MIRROR(0x710) AM_WRITE_LEGACY(ultratnk_lockout_w)
- AM_RANGE(0x2068, 0x2069) AM_MIRROR(0x710) AM_WRITE_LEGACY(ultratnk_led_1_w)
- AM_RANGE(0x206a, 0x206b) AM_MIRROR(0x710) AM_WRITE_LEGACY(ultratnk_led_2_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)
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index d617867cbe1..382a99e393b 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -205,18 +205,18 @@ Extract a standard version of this
("taito_8bpg_palette_word_w"?) to Taitoic.c ?
***********************************************************/
-static WRITE32_HANDLER( color_ram_w )
+WRITE32_MEMBER(undrfire_state::color_ram_w)
{
int a,r,g,b;
- COMBINE_DATA(&space->machine().generic.paletteram.u32[offset]);
+ COMBINE_DATA(&machine().generic.paletteram.u32[offset]);
{
- a = space->machine().generic.paletteram.u32[offset];
+ a = machine().generic.paletteram.u32[offset];
r = (a & 0xff0000) >> 16;
g = (a & 0xff00) >> 8;
b = (a & 0xff);
- palette_set_color(space->machine(),offset,MAKE_RGB(r,g,b));
+ palette_set_color(machine(),offset,MAKE_RGB(r,g,b));
}
}
@@ -257,40 +257,38 @@ static CUSTOM_INPUT(frame_counter_r)
return state->m_frame_counter;
}
-static READ32_HANDLER( undrfire_input_r )
+READ32_MEMBER(undrfire_state::undrfire_input_r)
{
- undrfire_state *state = space->machine().driver_data<undrfire_state>();
switch (offset)
{
case 0x00:
{
- return input_port_read(space->machine(), "INPUTS");
+ return input_port_read(machine(), "INPUTS");
}
case 0x01:
{
- return input_port_read(space->machine(), "SYSTEM") | (state->m_coin_word << 16);
+ return input_port_read(machine(), "SYSTEM") | (m_coin_word << 16);
}
}
return 0xffffffff;
}
-static WRITE32_HANDLER( undrfire_input_w )
+WRITE32_MEMBER(undrfire_state::undrfire_input_w)
{
- undrfire_state *state = space->machine().driver_data<undrfire_state>();
switch (offset)
{
case 0x00:
{
if (ACCESSING_BITS_24_31) /* $500000 is watchdog */
{
- watchdog_reset(space->machine());
+ watchdog_reset(machine());
}
if (ACCESSING_BITS_0_7)
{
- eeprom_device *eeprom = space->machine().device<eeprom_device>("eeprom");
+ eeprom_device *eeprom = machine().device<eeprom_device>("eeprom");
eeprom->set_clock_line((data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
eeprom->write_bit(data & 0x40);
eeprom->set_cs_line((data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
@@ -304,37 +302,35 @@ static WRITE32_HANDLER( undrfire_input_w )
{
if (ACCESSING_BITS_24_31)
{
- coin_lockout_w(space->machine(), 0,~data & 0x01000000);
- coin_lockout_w(space->machine(), 1,~data & 0x02000000);
- coin_counter_w(space->machine(), 0, data & 0x04000000);
- coin_counter_w(space->machine(), 1, data & 0x08000000);
- state->m_coin_word = (data >> 16) &0xffff;
+ coin_lockout_w(machine(), 0,~data & 0x01000000);
+ coin_lockout_w(machine(), 1,~data & 0x02000000);
+ coin_counter_w(machine(), 0, data & 0x04000000);
+ coin_counter_w(machine(), 1, data & 0x08000000);
+ m_coin_word = (data >> 16) &0xffff;
}
}
}
}
-static READ16_HANDLER( shared_ram_r )
+READ16_MEMBER(undrfire_state::shared_ram_r)
{
- undrfire_state *state = space->machine().driver_data<undrfire_state>();
- if ((offset&1)==0) return (state->m_shared_ram[offset/2]&0xffff0000)>>16;
- return (state->m_shared_ram[offset/2]&0x0000ffff);
+ if ((offset&1)==0) return (m_shared_ram[offset/2]&0xffff0000)>>16;
+ return (m_shared_ram[offset/2]&0x0000ffff);
}
-static WRITE16_HANDLER( shared_ram_w )
+WRITE16_MEMBER(undrfire_state::shared_ram_w)
{
- undrfire_state *state = space->machine().driver_data<undrfire_state>();
if ((offset&1)==0) {
if (ACCESSING_BITS_8_15)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0x00ffffff)|((data&0xff00)<<16);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0x00ffffff)|((data&0xff00)<<16);
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0xff00ffff)|((data&0x00ff)<<16);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0xff00ffff)|((data&0x00ff)<<16);
} else {
if (ACCESSING_BITS_8_15)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0xffff00ff)|((data&0xff00)<< 0);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0xffff00ff)|((data&0xff00)<< 0);
if (ACCESSING_BITS_0_7)
- state->m_shared_ram[offset/2]=(state->m_shared_ram[offset/2]&0xffffff00)|((data&0x00ff)<< 0);
+ m_shared_ram[offset/2]=(m_shared_ram[offset/2]&0xffffff00)|((data&0x00ff)<< 0);
}
}
@@ -342,7 +338,7 @@ static WRITE16_HANDLER( shared_ram_w )
/* Some unknown hardware byte mapped at $600002-5 */
-static READ32_HANDLER( unknown_hardware_r )
+READ32_MEMBER(undrfire_state::unknown_hardware_r)
{
switch (offset) /* four single bytes are read in sequence at $156e */
{
@@ -361,14 +357,14 @@ static READ32_HANDLER( unknown_hardware_r )
}
-static WRITE32_HANDLER( unknown_int_req_w )
+WRITE32_MEMBER(undrfire_state::unknown_int_req_w)
{
/* 10000 cycle delay is arbitrary */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(10000), FUNC(interrupt5));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(10000), FUNC(interrupt5));
}
-static READ32_HANDLER( undrfire_lightgun_r )
+READ32_MEMBER(undrfire_state::undrfire_lightgun_r)
{
int x,y;
@@ -381,8 +377,8 @@ static READ32_HANDLER( undrfire_lightgun_r )
case 0x00: /* P1 */
{
- x = input_port_read(space->machine(), "GUNX1") << 6;
- y = input_port_read(space->machine(), "GUNY1") << 6;
+ x = input_port_read(machine(), "GUNX1") << 6;
+ y = input_port_read(machine(), "GUNY1") << 6;
return ((x << 24) &0xff000000) | ((x << 8) &0xff0000)
| ((y << 8) &0xff00) | ((y >> 8) &0xff) ;
@@ -390,37 +386,36 @@ static READ32_HANDLER( undrfire_lightgun_r )
case 0x01: /* P2 */
{
- x = input_port_read(space->machine(), "GUNX2") << 6;
- y = input_port_read(space->machine(), "GUNY2") << 6;
+ x = input_port_read(machine(), "GUNX2") << 6;
+ y = input_port_read(machine(), "GUNY2") << 6;
return ((x << 24) &0xff000000) | ((x << 8) &0xff0000)
| ((y << 8) &0xff00) | ((y >> 8) &0xff) ;
}
}
-logerror("CPU #0 PC %06x: warning - read unmapped lightgun offset %06x\n",cpu_get_pc(&space->device()),offset);
+logerror("CPU #0 PC %06x: warning - read unmapped lightgun offset %06x\n",cpu_get_pc(&space.device()),offset);
return 0x0;
}
-static WRITE32_HANDLER( rotate_control_w ) /* only a guess that it's rotation */
+WRITE32_MEMBER(undrfire_state::rotate_control_w)/* only a guess that it's rotation */
{
- undrfire_state *state = space->machine().driver_data<undrfire_state>();
if (ACCESSING_BITS_0_15)
{
- state->m_rotate_ctrl[state->m_port_sel] = data;
+ m_rotate_ctrl[m_port_sel] = data;
return;
}
if (ACCESSING_BITS_16_31)
{
- state->m_port_sel = (data &0x70000) >> 16;
+ m_port_sel = (data &0x70000) >> 16;
}
}
-static WRITE32_HANDLER( motor_control_w )
+WRITE32_MEMBER(undrfire_state::motor_control_w)
{
/*
Standard value poked is 0x00910200 (we ignore lsb and msb
@@ -444,7 +439,7 @@ static WRITE32_HANDLER( motor_control_w )
}
}
-static WRITE32_HANDLER( cbombers_cpua_ctrl_w )
+WRITE32_MEMBER(undrfire_state::cbombers_cpua_ctrl_w)
{
/*
........ ..xxxxxx Lamp 1-6 enables
@@ -458,19 +453,19 @@ static WRITE32_HANDLER( cbombers_cpua_ctrl_w )
output_set_value("Lamp_6", (data >> 5) & 1 );
output_set_value("Wheel_vibration", (data >> 6) & 1 );
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE);
}
-static READ32_HANDLER( cbombers_adc_r )
+READ32_MEMBER(undrfire_state::cbombers_adc_r)
{
- return (input_port_read(space->machine(), "STEER") << 24);
+ return (input_port_read(machine(), "STEER") << 24);
}
-static WRITE32_HANDLER( cbombers_adc_w )
+WRITE32_MEMBER(undrfire_state::cbombers_adc_w)
{
/* One interrupt per input port (4 per frame, though only 2 used).
1000 cycle delay is arbitrary */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(1000), FUNC(interrupt5));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(1000), FUNC(interrupt5));
}
/***********************************************************
@@ -483,18 +478,18 @@ static ADDRESS_MAP_START( undrfire_map, AS_PROGRAM, 32, undrfire_state )
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
// AM_RANGE(0x304000, 0x304003) AM_RAM // debugging - doesn't change ???
// AM_RANGE(0x304400, 0x304403) AM_RAM // debugging - doesn't change ???
- AM_RANGE(0x400000, 0x400003) AM_WRITE_LEGACY(motor_control_w) /* gun vibration */
- AM_RANGE(0x500000, 0x500007) AM_READWRITE_LEGACY(undrfire_input_r, undrfire_input_w) /* eerom etc. */
- AM_RANGE(0x600000, 0x600007) AM_READWRITE_LEGACY(unknown_hardware_r, unknown_int_req_w) /* int request for unknown hardware */
+ AM_RANGE(0x400000, 0x400003) AM_WRITE(motor_control_w) /* gun vibration */
+ AM_RANGE(0x500000, 0x500007) AM_READWRITE(undrfire_input_r, undrfire_input_w) /* eerom etc. */
+ AM_RANGE(0x600000, 0x600007) AM_READWRITE(unknown_hardware_r, unknown_int_req_w) /* int request for unknown hardware */
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("f3_shared")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_long_r, tc0480scp_long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w)
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_long_r, tc0100scn_long_w) /* piv tilemaps */
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_long_r, tc0100scn_ctrl_long_w)
- AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE_LEGACY(color_ram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE(color_ram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xb00000, 0xb003ff) AM_RAM /* single bytes, blending ??? */
- AM_RANGE(0xd00000, 0xd00003) AM_WRITE_LEGACY(rotate_control_w) /* perhaps port based rotate control? */
- AM_RANGE(0xf00000, 0xf00007) AM_READ_LEGACY(undrfire_lightgun_r) /* stick coords read at $11b2-bc */
+ AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */
+ AM_RANGE(0xf00000, 0xf00007) AM_READ(undrfire_lightgun_r) /* stick coords read at $11b2-bc */
ADDRESS_MAP_END
@@ -502,18 +497,18 @@ static ADDRESS_MAP_START( cbombers_cpua_map, AS_PROGRAM, 32, undrfire_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x21ffff) AM_RAM
AM_RANGE(0x300000, 0x303fff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
- AM_RANGE(0x400000, 0x400003) AM_WRITE_LEGACY(cbombers_cpua_ctrl_w)
- AM_RANGE(0x500000, 0x500007) AM_READWRITE_LEGACY(undrfire_input_r, undrfire_input_w)
- AM_RANGE(0x600000, 0x600007) AM_READWRITE_LEGACY(cbombers_adc_r, cbombers_adc_w)
+ AM_RANGE(0x400000, 0x400003) AM_WRITE(cbombers_cpua_ctrl_w)
+ AM_RANGE(0x500000, 0x500007) AM_READWRITE(undrfire_input_r, undrfire_input_w)
+ AM_RANGE(0x600000, 0x600007) AM_READWRITE(cbombers_adc_r, cbombers_adc_w)
AM_RANGE(0x700000, 0x7007ff) AM_RAM AM_SHARE("f3_shared")
AM_RANGE(0x800000, 0x80ffff) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_long_r, tc0480scp_long_w) /* tilemaps */
AM_RANGE(0x830000, 0x83002f) AM_DEVREADWRITE_LEGACY("tc0480scp", tc0480scp_ctrl_long_r, tc0480scp_ctrl_long_w)
AM_RANGE(0x900000, 0x90ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_long_r, tc0100scn_long_w) /* piv tilemaps */
AM_RANGE(0x920000, 0x92000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_long_r, tc0100scn_ctrl_long_w)
- AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE_LEGACY(color_ram_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0xa00000, 0xa0ffff) AM_RAM_WRITE(color_ram_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xb00000, 0xb0000f) AM_RAM /* ? */
AM_RANGE(0xc00000, 0xc00007) AM_RAM /* LAN controller? */
- AM_RANGE(0xd00000, 0xd00003) AM_WRITE_LEGACY(rotate_control_w) /* perhaps port based rotate control? */
+ AM_RANGE(0xd00000, 0xd00003) AM_WRITE(rotate_control_w) /* perhaps port based rotate control? */
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_BASE(m_shared_ram)
ADDRESS_MAP_END
@@ -521,7 +516,7 @@ static ADDRESS_MAP_START( cbombers_cpub_map, AS_PROGRAM, 16, undrfire_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x400000, 0x40ffff) AM_RAM /* local ram */
// AM_RANGE(0x600000, 0x60ffff) AM_DEVWRITE_LEGACY("tc0480scp", tc0480scp_word_w) /* Only written upon errors */
- AM_RANGE(0x800000, 0x80ffff) AM_READWRITE_LEGACY(shared_ram_r, shared_ram_w)
+ AM_RANGE(0x800000, 0x80ffff) AM_READWRITE(shared_ram_r, shared_ram_w)
// AM_RANGE(0xa00000, 0xa001ff) AM_RAM /* Extra road control?? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index 9db00089b9f..14c48f31a53 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -83,7 +83,7 @@ ADDRESS_MAP_END
Zero Point
***************************************************************************/
-static WRITE16_HANDLER( zeropnt_sound_bank_w )
+WRITE16_MEMBER(unico_state::zeropnt_sound_bank_w)
{
if (ACCESSING_BITS_8_15)
{
@@ -91,55 +91,55 @@ static WRITE16_HANDLER( zeropnt_sound_bank_w )
contains garbage. Indeed, only banks 0&1 are used */
int bank = (data >> 8 ) & 1;
- UINT8 *dst = space->machine().region("oki")->base();
+ UINT8 *dst = machine().region("oki")->base();
UINT8 *src = dst + 0x80000 + 0x20000 + 0x20000 * bank;
memcpy(dst + 0x20000, src, 0x20000);
- coin_counter_w(space->machine(), 0,data & 0x1000);
- set_led_status(space->machine(), 0,data & 0x0800); // Start 1
- set_led_status(space->machine(), 1,data & 0x0400); // Start 2
+ coin_counter_w(machine(), 0,data & 0x1000);
+ set_led_status(machine(), 0,data & 0x0800); // Start 1
+ set_led_status(machine(), 1,data & 0x0400); // Start 2
}
}
/* Light Gun - need to wiggle the input slightly otherwise fire doesn't work */
-static READ16_HANDLER( unico_gunx_0_msb_r )
+READ16_MEMBER(unico_state::unico_gunx_0_msb_r)
{
- int x=input_port_read(space->machine(), "X0");
+ int x=input_port_read(machine(), "X0");
x=x*384/256; /* On screen pixel X */
if (x<0x160) x=0x30 + (x*0xd0/0x15f);
else x=((x-0x160) * 0x20)/0x1f;
- return ((x&0xff) ^ (space->machine().primary_screen->frame_number()&1))<<8;
+ return ((x&0xff) ^ (machine().primary_screen->frame_number()&1))<<8;
}
-static READ16_HANDLER( unico_guny_0_msb_r )
+READ16_MEMBER(unico_state::unico_guny_0_msb_r)
{
- int y=input_port_read(space->machine(), "Y0");
+ int y=input_port_read(machine(), "Y0");
y=0x18+((y*0xe0)/0xff);
- return ((y&0xff) ^ (space->machine().primary_screen->frame_number()&1))<<8;
+ return ((y&0xff) ^ (machine().primary_screen->frame_number()&1))<<8;
}
-static READ16_HANDLER( unico_gunx_1_msb_r )
+READ16_MEMBER(unico_state::unico_gunx_1_msb_r)
{
- int x=input_port_read(space->machine(), "X1");
+ int x=input_port_read(machine(), "X1");
x=x*384/256; /* On screen pixel X */
if (x<0x160) x=0x30 + (x*0xd0/0x15f);
else x=((x-0x160) * 0x20)/0x1f;
- return ((x&0xff) ^ (space->machine().primary_screen->frame_number()&1))<<8;
+ return ((x&0xff) ^ (machine().primary_screen->frame_number()&1))<<8;
}
-static READ16_HANDLER( unico_guny_1_msb_r )
+READ16_MEMBER(unico_state::unico_guny_1_msb_r)
{
- int y=input_port_read(space->machine(), "Y1");
+ int y=input_port_read(machine(), "Y1");
y=0x18+((y*0xe0)/0xff);
- return ((y&0xff) ^ (space->machine().primary_screen->frame_number()&1))<<8;
+ return ((y&0xff) ^ (machine().primary_screen->frame_number()&1))<<8;
}
static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16, unico_state )
@@ -150,14 +150,14 @@ static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16, unico_state )
AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
AM_RANGE(0x80010c, 0x800121) AM_WRITEONLY AM_BASE(m_scroll) // Scroll
- AM_RANGE(0x800170, 0x800171) AM_READ_LEGACY(unico_guny_0_msb_r ) // Light Guns
- AM_RANGE(0x800174, 0x800175) AM_READ_LEGACY(unico_gunx_0_msb_r ) //
- AM_RANGE(0x800178, 0x800179) AM_READ_LEGACY(unico_guny_1_msb_r ) //
- AM_RANGE(0x80017c, 0x80017d) AM_READ_LEGACY(unico_gunx_1_msb_r ) //
+ AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r ) // Light Guns
+ AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r ) //
+ AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) //
+ AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r ) //
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_WRITE_LEGACY(zeropnt_sound_bank_w ) //
+ AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w ) //
AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack
AM_RANGE(0x904000, 0x90ffff) AM_RAM_WRITE_LEGACY(unico_vram_w) AM_BASE(m_vram) // Layers 1, 2, 0
AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
@@ -170,29 +170,29 @@ ADDRESS_MAP_END
Zero Point 2
***************************************************************************/
-static READ32_HANDLER( zeropnt2_gunx_0_msb_r ) { return (unico_gunx_0_msb_r(space,0,0xffff)-0x0800) << 16; }
-static READ32_HANDLER( zeropnt2_guny_0_msb_r ) { return (unico_guny_0_msb_r(space,0,0xffff)+0x0800) << 16; }
-static READ32_HANDLER( zeropnt2_gunx_1_msb_r ) { return (unico_gunx_1_msb_r(space,0,0xffff)-0x0800) << 16; }
-static READ32_HANDLER( zeropnt2_guny_1_msb_r ) { return (unico_guny_1_msb_r(space,0,0xffff)+0x0800) << 16; }
+READ32_MEMBER(unico_state::zeropnt2_gunx_0_msb_r){ return (unico_gunx_0_msb_r(space,0,0xffff)-0x0800) << 16; }
+READ32_MEMBER(unico_state::zeropnt2_guny_0_msb_r){ return (unico_guny_0_msb_r(space,0,0xffff)+0x0800) << 16; }
+READ32_MEMBER(unico_state::zeropnt2_gunx_1_msb_r){ return (unico_gunx_1_msb_r(space,0,0xffff)-0x0800) << 16; }
+READ32_MEMBER(unico_state::zeropnt2_guny_1_msb_r){ return (unico_guny_1_msb_r(space,0,0xffff)+0x0800) << 16; }
-static WRITE32_HANDLER( zeropnt2_sound_bank_w )
+WRITE32_MEMBER(unico_state::zeropnt2_sound_bank_w)
{
if (ACCESSING_BITS_24_31)
{
int bank = ((data >> 24) & 3) % 4;
- UINT8 *dst = space->machine().region("oki1")->base();
+ UINT8 *dst = machine().region("oki1")->base();
UINT8 *src = dst + 0x80000 + 0x20000 + 0x20000 * bank;
memcpy(dst + 0x20000, src, 0x20000);
}
}
-static WRITE32_HANDLER( zeropnt2_leds_w )
+WRITE32_MEMBER(unico_state::zeropnt2_leds_w)
{
if (ACCESSING_BITS_16_23)
{
- coin_counter_w(space->machine(), 0,data & 0x00010000);
- set_led_status(space->machine(), 0,data & 0x00800000); // Start 1
- set_led_status(space->machine(), 1,data & 0x00400000); // Start 2
+ coin_counter_w(machine(), 0,data & 0x00010000);
+ set_led_status(machine(), 0,data & 0x00800000); // Start 1
+ set_led_status(machine(), 1,data & 0x00400000); // Start 2
}
}
@@ -221,13 +221,13 @@ static ADDRESS_MAP_START( zeropnt2_map, AS_PROGRAM, 32, unico_state )
AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff0000 ) // Sound
AM_RANGE(0x800028, 0x80002f) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2151_r, ym2151_w, 0x00ff0000) //
AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff0000 ) //
- AM_RANGE(0x800034, 0x800037) AM_WRITE_LEGACY(zeropnt2_sound_bank_w ) //
- AM_RANGE(0x800038, 0x80003b) AM_WRITE_LEGACY(zeropnt2_leds_w ) // ?
+ AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w ) //
+ AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w ) // ?
AM_RANGE(0x80010c, 0x800123) AM_WRITEONLY AM_BASE(m_scroll32 ) // Scroll
- AM_RANGE(0x800140, 0x800143) AM_READ_LEGACY(zeropnt2_guny_0_msb_r ) // Light Guns
- AM_RANGE(0x800144, 0x800147) AM_READ_LEGACY(zeropnt2_gunx_0_msb_r ) //
- AM_RANGE(0x800148, 0x80014b) AM_READ_LEGACY(zeropnt2_guny_1_msb_r ) //
- AM_RANGE(0x80014c, 0x80014f) AM_READ_LEGACY(zeropnt2_gunx_1_msb_r ) //
+ AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r ) // Light Guns
+ AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r ) //
+ AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r ) //
+ AM_RANGE(0x80014c, 0x80014f) AM_READ(zeropnt2_gunx_1_msb_r ) //
AM_RANGE(0x800150, 0x800153) AM_READ_PORT("DSW1")
AM_RANGE(0x800154, 0x800157) AM_READ_PORT("DSW2")
AM_RANGE(0x80015c, 0x80015f) AM_READ_PORT("BUTTONS")
diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c
index 5ea191777e2..2922dbb3534 100644
--- a/src/mame/drivers/usgames.c
+++ b/src/mame/drivers/usgames.c
@@ -31,29 +31,29 @@ Sound: AY-3-8912
#include "machine/nvram.h"
-static WRITE8_HANDLER( usgames_rombank_w )
+WRITE8_MEMBER(usgames_state::usgames_rombank_w)
{
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
// logerror ("BANK WRITE? -%02x-\n",data);
//popmessage("%02x",data);
- memory_set_bankptr(space->machine(), "bank1",&RAM[ 0x10000 + 0x4000 * data] );
+ memory_set_bankptr(machine(), "bank1",&RAM[ 0x10000 + 0x4000 * data] );
}
-static WRITE8_HANDLER( lamps1_w )
+WRITE8_MEMBER(usgames_state::lamps1_w)
{
/* button lamps */
- set_led_status(space->machine(), 0,data & 0x01);
- set_led_status(space->machine(), 1,data & 0x02);
- set_led_status(space->machine(), 2,data & 0x04);
- set_led_status(space->machine(), 3,data & 0x08);
- set_led_status(space->machine(), 4,data & 0x10);
+ set_led_status(machine(), 0,data & 0x01);
+ set_led_status(machine(), 1,data & 0x02);
+ set_led_status(machine(), 2,data & 0x04);
+ set_led_status(machine(), 3,data & 0x08);
+ set_led_status(machine(), 4,data & 0x10);
/* bit 5 toggles all the time - extra lamp? */
}
-static WRITE8_HANDLER( lamps2_w )
+WRITE8_MEMBER(usgames_state::lamps2_w)
{
/* bit 5 toggles all the time - extra lamp? */
}
@@ -64,12 +64,12 @@ static ADDRESS_MAP_START( usgames_map, AS_PROGRAM, 8, usgames_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
AM_RANGE(0x2010, 0x2010) AM_READ_PORT("INPUTS")
- AM_RANGE(0x2020, 0x2020) AM_WRITE_LEGACY(lamps1_w)
- AM_RANGE(0x2030, 0x2030) AM_WRITE_LEGACY(lamps2_w)
+ AM_RANGE(0x2020, 0x2020) AM_WRITE(lamps1_w)
+ AM_RANGE(0x2030, 0x2030) AM_WRITE(lamps2_w)
AM_RANGE(0x2040, 0x2040) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x2041, 0x2041) AM_READ_PORT("UNK1")
AM_RANGE(0x2041, 0x2041) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x2060, 0x2060) AM_WRITE_LEGACY(usgames_rombank_w)
+ AM_RANGE(0x2060, 0x2060) AM_WRITE(usgames_rombank_w)
AM_RANGE(0x2070, 0x2070) AM_READ_PORT("UNK2")
AM_RANGE(0x2400, 0x2401) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE_LEGACY(usgames_charram_w) AM_BASE(m_charram)
@@ -84,12 +84,12 @@ static ADDRESS_MAP_START( usg185_map, AS_PROGRAM, 8, usgames_state )
AM_RANGE(0x2000, 0x2001) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
AM_RANGE(0x2400, 0x2400) AM_READ_PORT("DSW")
AM_RANGE(0x2410, 0x2410) AM_READ_PORT("INPUTS")
- AM_RANGE(0x2420, 0x2420) AM_WRITE_LEGACY(lamps1_w)
- AM_RANGE(0x2430, 0x2430) AM_WRITE_LEGACY(lamps2_w)
+ AM_RANGE(0x2420, 0x2420) AM_WRITE(lamps1_w)
+ AM_RANGE(0x2430, 0x2430) AM_WRITE(lamps2_w)
AM_RANGE(0x2440, 0x2440) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x2441, 0x2441) AM_READ_PORT("UNK1")
AM_RANGE(0x2441, 0x2441) AM_DEVWRITE("crtc", mc6845_device, register_w)
- AM_RANGE(0x2460, 0x2460) AM_WRITE_LEGACY(usgames_rombank_w)
+ AM_RANGE(0x2460, 0x2460) AM_WRITE(usgames_rombank_w)
AM_RANGE(0x2470, 0x2470) AM_READ_PORT("UNK2")
AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE_LEGACY(usgames_charram_w) AM_BASE(m_charram)
AM_RANGE(0x3000, 0x3fff) AM_RAM_WRITE_LEGACY(usgames_videoram_w) AM_BASE(m_videoram)
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index cb10baed58f..62c245c7bfe 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -20,26 +20,25 @@
/******************************************************************************/
-static WRITE16_HANDLER( vaportra_sound_w )
+WRITE16_MEMBER(vaportra_state::vaportra_sound_w)
{
- vaportra_state *state = space->machine().driver_data<vaportra_state>();
/* Force synchronisation between CPUs with fake timer */
- space->machine().scheduler().synchronize();
+ machine().scheduler().synchronize();
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, 0, ASSERT_LINE);
+ device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
}
-static READ16_HANDLER( vaportra_control_r )
+READ16_MEMBER(vaportra_state::vaportra_control_r)
{
switch (offset << 1)
{
case 4:
- return input_port_read(space->machine(), "DSW");
+ return input_port_read(machine(), "DSW");
case 2:
- return input_port_read(space->machine(), "COINS");
+ return input_port_read(machine(), "COINS");
case 0:
- return input_port_read(space->machine(), "PLAYERS");
+ return input_port_read(machine(), "PLAYERS");
}
logerror("Unknown control read at %d\n",offset);
@@ -51,8 +50,8 @@ static READ16_HANDLER( vaportra_control_r )
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, vaportra_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x100003) AM_WRITE_LEGACY(vaportra_priority_w)
- AM_RANGE(0x100006, 0x100007) AM_WRITE_LEGACY(vaportra_sound_w)
- AM_RANGE(0x100000, 0x10000f) AM_READ_LEGACY(vaportra_control_r)
+ AM_RANGE(0x100006, 0x100007) AM_WRITE(vaportra_sound_w)
+ AM_RANGE(0x100000, 0x10000f) AM_READ(vaportra_control_r)
AM_RANGE(0x200000, 0x201fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf1_data_r, deco16ic_pf1_data_w)
AM_RANGE(0x202000, 0x203fff) AM_DEVREADWRITE_LEGACY("tilegen2", deco16ic_pf2_data_r, deco16ic_pf2_data_w)
AM_RANGE(0x240000, 0x24000f) AM_DEVWRITE_LEGACY("tilegen2", deco16ic_pf_control_w)
@@ -70,10 +69,9 @@ ADDRESS_MAP_END
/******************************************************************************/
-static READ8_HANDLER( vaportra_soundlatch_r )
+READ8_MEMBER(vaportra_state::vaportra_soundlatch_r)
{
- vaportra_state *state = space->machine().driver_data<vaportra_state>();
- device_set_input_line(state->m_audiocpu, 0, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
return soundlatch_r(space, offset);
}
@@ -83,7 +81,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vaportra_state )
AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE_LEGACY("ym2", ym2151_r, ym2151_w)
AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0x130000, 0x130001) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
- AM_RANGE(0x140000, 0x140001) AM_READ_LEGACY(vaportra_soundlatch_r)
+ AM_RANGE(0x140000, 0x140001) AM_READ(vaportra_soundlatch_r)
AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8") /* ??? LOOKUP ??? */
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE_LEGACY(h6280_timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE_LEGACY(h6280_irq_status_w)
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 03b15b5e0dd..db3180829d3 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -72,36 +72,33 @@ static MACHINE_RESET( vastar )
cputag_set_input_line(machine, "sub", INPUT_LINE_RESET, ASSERT_LINE);
}
-static WRITE8_HANDLER( vastar_hold_cpu2_w )
+WRITE8_MEMBER(vastar_state::vastar_hold_cpu2_w)
{
/* I'm not sure that this works exactly like this */
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
}
-static READ8_HANDLER( vastar_sharedram_r )
+READ8_MEMBER(vastar_state::vastar_sharedram_r)
{
- vastar_state *state = space->machine().driver_data<vastar_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE8_HANDLER( vastar_sharedram_w )
+WRITE8_MEMBER(vastar_state::vastar_sharedram_w)
{
- vastar_state *state = space->machine().driver_data<vastar_state>();
- state->m_sharedram[offset] = data;
+ m_sharedram[offset] = data;
}
-static WRITE8_HANDLER( flip_screen_w )
+WRITE8_MEMBER(vastar_state::flip_screen_w)
{
- flip_screen_set(space->machine(), data);
+ flip_screen_set(machine(), data);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(vastar_state::nmi_mask_w)
{
- vastar_state *state = space->machine().driver_data<vastar_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
@@ -114,7 +111,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vastar_state )
AM_RANGE(0xc000, 0xc000) AM_WRITEONLY AM_BASE(m_sprite_priority) /* sprite/BG priority */
AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE_LEGACY(vastar_fgvideoram_w) AM_BASE(m_fgvideoram)
AM_RANGE(0xe000, 0xe000) AM_READWRITE_LEGACY(watchdog_reset_r, watchdog_reset_w)
- AM_RANGE(0xf000, 0xf0ff) AM_READWRITE_LEGACY(vastar_sharedram_r, vastar_sharedram_w) AM_BASE(m_sharedram)
+ AM_RANGE(0xf000, 0xf0ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w) AM_BASE(m_sharedram)
AM_RANGE(0xf100, 0xf7ff) AM_RAM
/* in hidden portions of video RAM: (fallthrough) */
@@ -127,15 +124,15 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( main_port_map, AS_IO, 8, vastar_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(nmi_mask_w)
- AM_RANGE(0x01, 0x01) AM_WRITE_LEGACY(flip_screen_w)
- AM_RANGE(0x02, 0x02) AM_WRITE_LEGACY(vastar_hold_cpu2_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(nmi_mask_w)
+ AM_RANGE(0x01, 0x01) AM_WRITE(flip_screen_w)
+ AM_RANGE(0x02, 0x02) AM_WRITE(vastar_hold_cpu2_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, vastar_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x4000, 0x40ff) AM_READWRITE_LEGACY(vastar_sharedram_r, vastar_sharedram_w)
+ AM_RANGE(0x4000, 0x40ff) AM_READWRITE(vastar_sharedram_r, vastar_sharedram_w)
AM_RANGE(0x8000, 0x8000) AM_READ_PORT("P2")
AM_RANGE(0x8040, 0x8040) AM_READ_PORT("P1")
AM_RANGE(0x8080, 0x8080) AM_READ_PORT("SYSTEM")
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index 05d5fc9f99f..645f85fc0e3 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -136,13 +136,13 @@ static TIMER_DEVICE_CALLBACK( vball_scanline )
}
}
-static WRITE8_HANDLER( vball_irq_ack_w )
+WRITE8_MEMBER(vball_state::vball_irq_ack_w)
{
if (offset == 0)
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
else
- cputag_set_input_line(space->machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6502_IRQ_LINE, CLEAR_LINE);
}
@@ -155,25 +155,24 @@ static WRITE8_HANDLER( vball_irq_ack_w )
bit 6 = scroll y hi
bit 7 = ?
*/
-static WRITE8_HANDLER( vb_bankswitch_w )
+WRITE8_MEMBER(vball_state::vb_bankswitch_w)
{
- vball_state *state = space->machine().driver_data<vball_state>();
- UINT8 *RAM = space->machine().region("maincpu")->base();
- memory_set_bankptr(space->machine(), "bank1", &RAM[0x10000 + (0x4000 * (data & 1))]);
+ UINT8 *RAM = machine().region("maincpu")->base();
+ memory_set_bankptr(machine(), "bank1", &RAM[0x10000 + (0x4000 * (data & 1))]);
- if (state->m_gfxset != ((data & 0x20) ^ 0x20))
+ if (m_gfxset != ((data & 0x20) ^ 0x20))
{
- state->m_gfxset = (data & 0x20) ^ 0x20;
- vb_mark_all_dirty(space->machine());
+ m_gfxset = (data & 0x20) ^ 0x20;
+ vb_mark_all_dirty(machine());
}
- state->m_vb_scrolly_hi = (data & 0x40) << 2;
+ m_vb_scrolly_hi = (data & 0x40) << 2;
}
/* The sound system comes all but verbatim from Double Dragon */
-static WRITE8_HANDLER( cpu_sound_command_w )
+WRITE8_MEMBER(vball_state::cpu_sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -186,21 +185,19 @@ static WRITE8_HANDLER( cpu_sound_command_w )
bit 6 = sp prom bank
bit 7 = sp prom bank
*/
-static WRITE8_HANDLER( vb_scrollx_hi_w )
+WRITE8_MEMBER(vball_state::vb_scrollx_hi_w)
{
- vball_state *state = space->machine().driver_data<vball_state>();
- flip_screen_set(space->machine(), ~data&1);
- state->m_vb_scrollx_hi = (data & 0x02) << 7;
- vb_bgprombank_w(space->machine(), (data >> 2) & 0x07);
- vb_spprombank_w(space->machine(), (data >> 5) & 0x07);
- //logerror("%04x: vb_scrollx_hi = %d\n", cpu_get_previouspc(&space->device()), state->m_vb_scrollx_hi);
+ flip_screen_set(machine(), ~data&1);
+ m_vb_scrollx_hi = (data & 0x02) << 7;
+ vb_bgprombank_w(machine(), (data >> 2) & 0x07);
+ vb_spprombank_w(machine(), (data >> 5) & 0x07);
+ //logerror("%04x: vb_scrollx_hi = %d\n", cpu_get_previouspc(&space.device()), m_vb_scrollx_hi);
}
-static WRITE8_HANDLER(vb_scrollx_lo_w)
+WRITE8_MEMBER(vball_state::vb_scrollx_lo_w)
{
- vball_state *state = space->machine().driver_data<vball_state>();
- state->m_vb_scrollx_lo = data;
- //logerror("%04x: vb_scrollx_lo =%d\n", cpu_get_previouspc(&space->device()), state->m_vb_scrollx_lo);
+ m_vb_scrollx_lo = data;
+ //logerror("%04x: vb_scrollx_lo =%d\n", cpu_get_previouspc(&space.device()), m_vb_scrollx_lo);
}
@@ -215,11 +212,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vball_state )
AM_RANGE(0x1004, 0x1004) AM_READ_PORT("DSW2")
AM_RANGE(0x1005, 0x1005) AM_READ_PORT("P3")
AM_RANGE(0x1006, 0x1006) AM_READ_PORT("P4")
- AM_RANGE(0x1008, 0x1008) AM_WRITE_LEGACY(vb_scrollx_hi_w)
- AM_RANGE(0x1009, 0x1009) AM_WRITE_LEGACY(vb_bankswitch_w)
- AM_RANGE(0x100a, 0x100b) AM_WRITE_LEGACY(vball_irq_ack_w) /* is there a scanline counter here? */
- AM_RANGE(0x100c, 0x100c) AM_WRITE_LEGACY(vb_scrollx_lo_w)
- AM_RANGE(0x100d, 0x100d) AM_WRITE_LEGACY(cpu_sound_command_w)
+ AM_RANGE(0x1008, 0x1008) AM_WRITE(vb_scrollx_hi_w)
+ AM_RANGE(0x1009, 0x1009) AM_WRITE(vb_bankswitch_w)
+ AM_RANGE(0x100a, 0x100b) AM_WRITE(vball_irq_ack_w) /* is there a scanline counter here? */
+ AM_RANGE(0x100c, 0x100c) AM_WRITE(vb_scrollx_lo_w)
+ AM_RANGE(0x100d, 0x100d) AM_WRITE(cpu_sound_command_w)
AM_RANGE(0x100e, 0x100e) AM_WRITEONLY AM_BASE(m_vb_scrolly_lo)
AM_RANGE(0x2000, 0x2fff) AM_WRITE_LEGACY(vb_videoram_w) AM_BASE(m_vb_videoram)
AM_RANGE(0x3000, 0x3fff) AM_WRITE_LEGACY(vb_attrib_w) AM_BASE(m_vb_attribram)
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index b5d38c0826f..14e193a69d8 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -118,7 +118,7 @@ static const eeprom_interface eeprom_intf =
"0100110000000" /* unlock command */
};
-static WRITE8_HANDLER( vendetta_eeprom_w )
+WRITE8_MEMBER(vendetta_state::vendetta_eeprom_w)
{
/* bit 0 - VOC0 - Video banking related */
/* bit 1 - VOC1 - Video banking related */
@@ -129,38 +129,35 @@ static WRITE8_HANDLER( vendetta_eeprom_w )
/* bit 6 - IRQ enable */
/* bit 7 - Unused */
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
if (data == 0xff ) /* this is a bug in the eeprom write code */
return;
/* EEPROM */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
- state->m_irq_enabled = (data >> 6) & 1;
+ m_irq_enabled = (data >> 6) & 1;
- vendetta_video_banking(space->machine(), data & 1);
+ vendetta_video_banking(machine(), data & 1);
}
/********************************************/
-static READ8_HANDLER( vendetta_K052109_r )
+READ8_MEMBER(vendetta_state::vendetta_K052109_r)
{
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
- return k052109_r(state->m_k052109, offset + 0x2000);
+ return k052109_r(m_k052109, offset + 0x2000);
}
-static WRITE8_HANDLER( vendetta_K052109_w )
+WRITE8_MEMBER(vendetta_state::vendetta_K052109_w)
{
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
// *************************************************************************************
// * Escape Kids uses 052109's mirrored Tilemap ROM bank selector, but only during *
// * Tilemap MASK-ROM Test (0x1d80<->0x3d80, 0x1e00<->0x3e00, 0x1f00<->0x3f00) *
// *************************************************************************************
if ((offset == 0x1d80) || (offset == 0x1e00) || (offset == 0x1f00))
- k052109_w(state->m_k052109, offset, data);
- k052109_w(state->m_k052109, offset + 0x2000, data);
+ k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, offset + 0x2000, data);
}
@@ -178,28 +175,27 @@ static void vendetta_video_banking( running_machine &machine, int select )
}
else
{
- space->install_legacy_readwrite_handler(state->m_video_banking_base + 0x2000, state->m_video_banking_base + 0x2fff, FUNC(vendetta_K052109_r), FUNC(vendetta_K052109_w) );
+ space->install_readwrite_handler(state->m_video_banking_base + 0x2000, state->m_video_banking_base + 0x2fff, read8_delegate(FUNC(vendetta_state::vendetta_K052109_r),state), write8_delegate(FUNC(vendetta_state::vendetta_K052109_w),state) );
space->install_legacy_readwrite_handler(*state->m_k052109, state->m_video_banking_base + 0x0000, state->m_video_banking_base + 0x0fff, FUNC(k052109_r), FUNC(k052109_w) );
}
}
-static WRITE8_HANDLER( vendetta_5fe0_w )
+WRITE8_MEMBER(vendetta_state::vendetta_5fe0_w)
{
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
/* bit 0,1 coin counters */
- coin_counter_w(space->machine(), 0, data & 0x01);
- coin_counter_w(space->machine(), 1, data & 0x02);
+ coin_counter_w(machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 1, data & 0x02);
/* bit 2 = BRAMBK ?? */
/* bit 3 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
/* bit 4 = INIT ?? */
/* bit 5 = enable sprite ROM reading */
- k053246_set_objcha_line(state->m_k053246, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
+ k053246_set_objcha_line(m_k053246, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
}
static TIMER_CALLBACK( z80_nmi_callback )
@@ -208,24 +204,21 @@ static TIMER_CALLBACK( z80_nmi_callback )
device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
}
-static WRITE8_HANDLER( z80_arm_nmi_w )
+WRITE8_MEMBER(vendetta_state::z80_arm_nmi_w)
{
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
- space->machine().scheduler().timer_set(attotime::from_usec(25), FUNC(z80_nmi_callback));
+ machine().scheduler().timer_set(attotime::from_usec(25), FUNC(z80_nmi_callback));
}
-static WRITE8_HANDLER( z80_irq_w )
+WRITE8_MEMBER(vendetta_state::z80_irq_w)
{
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
- 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);
}
-static READ8_HANDLER( vendetta_sound_interrupt_r )
+READ8_MEMBER(vendetta_state::vendetta_sound_interrupt_r)
{
- vendetta_state *state = space->machine().driver_data<vendetta_state>();
- 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);
return 0x00;
}
@@ -248,9 +241,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x5fc3, 0x5fc3) AM_READ_PORT("P4")
AM_RANGE(0x5fd0, 0x5fd0) AM_READ_PORT("EEPROM")
AM_RANGE(0x5fd1, 0x5fd1) AM_READ_PORT("SERVICE")
- AM_RANGE(0x5fe0, 0x5fe0) AM_WRITE_LEGACY(vendetta_5fe0_w)
- AM_RANGE(0x5fe2, 0x5fe2) AM_WRITE_LEGACY(vendetta_eeprom_w)
- AM_RANGE(0x5fe4, 0x5fe4) AM_READWRITE_LEGACY(vendetta_sound_interrupt_r, z80_irq_w)
+ 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(0x5fe8, 0x5fe9) AM_DEVREAD_LEGACY("k053246", k053246_r)
AM_RANGE(0x5fea, 0x5fea) AM_READ_LEGACY(watchdog_reset_r)
@@ -272,9 +265,9 @@ static ADDRESS_MAP_START( esckids_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x3fa0, 0x3fa7) AM_DEVWRITE_LEGACY("k053246", k053246_w) // 053246 (Sprite)
AM_RANGE(0x3fb0, 0x3fbf) AM_DEVWRITE_LEGACY("k053251", k053251_w) // 053251 (Priority Encoder)
AM_RANGE(0x3fc0, 0x3fcf) AM_DEVREADWRITE_LEGACY("k053252",k053252_r,k053252_w) // Not Emulated (053252 ???)
- AM_RANGE(0x3fd0, 0x3fd0) AM_WRITE_LEGACY(vendetta_5fe0_w) // Coin Counter, 052109 RMRD, 053246 OBJCHA
- AM_RANGE(0x3fd2, 0x3fd2) AM_WRITE_LEGACY(vendetta_eeprom_w) // EEPROM, Video banking
- AM_RANGE(0x3fd4, 0x3fd4) AM_READWRITE_LEGACY(vendetta_sound_interrupt_r, z80_irq_w) // Sound
+ 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(0x3fd8, 0x3fd9) AM_DEVREAD_LEGACY("k053246", k053246_r) // 053246 (Sprite)
AM_RANGE(0x3fda, 0x3fda) AM_WRITENOP // Not Emulated (Watchdog ???)
@@ -291,7 +284,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, vendetta_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xf801) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE_LEGACY(z80_arm_nmi_w)
+ AM_RANGE(0xfa00, 0xfa00) AM_WRITE(z80_arm_nmi_w)
AM_RANGE(0xfc00, 0xfc2f) AM_DEVREADWRITE_LEGACY("k053260", k053260_r, k053260_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index 57f2b9b381a..b0d34728f93 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -191,19 +191,17 @@ int vicdual_is_cabinet_color(running_machine &machine)
*************************************/
-static WRITE8_HANDLER( vicdual_videoram_w )
+WRITE8_MEMBER(vicdual_state::vicdual_videoram_w)
{
- vicdual_state *state = space->machine().driver_data<vicdual_state>();
- space->machine().primary_screen->update_now();
- state->m_videoram[offset] = data;
+ machine().primary_screen->update_now();
+ m_videoram[offset] = data;
}
-static WRITE8_HANDLER( vicdual_characterram_w )
+WRITE8_MEMBER(vicdual_state::vicdual_characterram_w)
{
- vicdual_state *state = space->machine().driver_data<vicdual_state>();
- space->machine().primary_screen->update_now();
- state->m_characterram[offset] = data;
+ machine().primary_screen->update_now();
+ m_characterram[offset] = data;
}
@@ -232,29 +230,29 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( depthch_io_r )
+READ8_MEMBER(vicdual_state::depthch_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN1");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN1");
return ret;
}
-static WRITE8_HANDLER( depthch_io_w )
+WRITE8_MEMBER(vicdual_state::depthch_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
- if (offset & 0x04) depthch_audio_w(space, 0, data);
+ if (offset & 0x01) assert_coin_status(machine());
+ if (offset & 0x04) depthch_audio_w(&space, 0, data);
}
static ADDRESS_MAP_START( depthch_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
- AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -263,7 +261,7 @@ static ADDRESS_MAP_START( depthch_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_READWRITE_LEGACY(depthch_io_r, depthch_io_w)
+ AM_RANGE(0x00, 0x0f) AM_READWRITE(depthch_io_r, depthch_io_w)
ADDRESS_MAP_END
@@ -314,20 +312,20 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( safari_io_r )
+READ8_MEMBER(vicdual_state::safari_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN1");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN1");
return ret;
}
-static WRITE8_HANDLER( safari_io_w )
+WRITE8_MEMBER(vicdual_state::safari_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
+ if (offset & 0x01) assert_coin_status(machine());
if (offset & 0x02) { /* safari_audio_w(0, data) */ }
}
@@ -336,9 +334,9 @@ static ADDRESS_MAP_START( safari_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x7fff) AM_NOP /* unused */
AM_RANGE(0x8000, 0x8fff) AM_MIRROR(0x3000) AM_RAM
- AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xc400, 0xc7ff) AM_MIRROR(0x3000) AM_RAM
- AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -347,7 +345,7 @@ static ADDRESS_MAP_START( safari_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_READWRITE_LEGACY(safari_io_r, safari_io_w)
+ AM_RANGE(0x00, 0x0f) AM_READWRITE(safari_io_r, safari_io_w)
ADDRESS_MAP_END
@@ -398,29 +396,29 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( frogs_io_r )
+READ8_MEMBER(vicdual_state::frogs_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN1");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN1");
return ret;
}
-static WRITE8_HANDLER( frogs_io_w )
+WRITE8_MEMBER(vicdual_state::frogs_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
- if (offset & 0x02) frogs_audio_w(space, 0, data);
+ if (offset & 0x01) assert_coin_status(machine());
+ if (offset & 0x02) frogs_audio_w(&space, 0, data);
}
static ADDRESS_MAP_START( frogs_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
- AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -429,7 +427,7 @@ static ADDRESS_MAP_START( frogs_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_READWRITE_LEGACY(frogs_io_r, frogs_io_w)
+ AM_RANGE(0x00, 0x0f) AM_READWRITE(frogs_io_r, frogs_io_w)
ADDRESS_MAP_END
@@ -506,33 +504,33 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( headon_io_r )
+READ8_MEMBER(vicdual_state::headon_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN1");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN1");
return ret;
}
-static READ8_HANDLER( sspaceat_io_r )
+READ8_MEMBER(vicdual_state::sspaceat_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x04) ret = input_port_read(space->machine(), "IN1");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN2");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x04) ret = input_port_read(machine(), "IN1");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN2");
return ret;
}
-static WRITE8_HANDLER( headon_io_w )
+WRITE8_MEMBER(vicdual_state::headon_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
- if (offset & 0x02) headon_audio_w(space, 0, data);
+ if (offset & 0x01) assert_coin_status(machine());
+ if (offset & 0x02) headon_audio_w(&space, 0, data);
if (offset & 0x04) { /* vicdual_palette_bank_w(0, data) */ } /* not written to */
}
@@ -540,9 +538,9 @@ static WRITE8_HANDLER( headon_io_w )
static ADDRESS_MAP_START( headon_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP /* unused */
- AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xc400, 0xc7ff) AM_MIRROR(0x3000) AM_RAM
- AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -551,7 +549,7 @@ static ADDRESS_MAP_START( headon_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_READWRITE_LEGACY(headon_io_r, headon_io_w)
+ AM_RANGE(0x00, 0x0f) AM_READWRITE(headon_io_r, headon_io_w)
ADDRESS_MAP_END
@@ -560,7 +558,7 @@ static ADDRESS_MAP_START( sspaceat_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_READWRITE_LEGACY(sspaceat_io_r, headon_io_w)
+ AM_RANGE(0x00, 0x0f) AM_READWRITE(sspaceat_io_r, headon_io_w)
ADDRESS_MAP_END
@@ -716,38 +714,38 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( headon2_io_r )
+READ8_MEMBER(vicdual_state::headon2_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
if (offset & 0x02) /* schematics show this as in input port, but never read from */
- if (offset & 0x04) ret = input_port_read(space->machine(), "IN1");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN2");
+ if (offset & 0x04) ret = input_port_read(machine(), "IN1");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN2");
if (offset & 0x12) logerror("********* Read from port %x\n", offset);
return ret;
}
-static WRITE8_HANDLER( headon2_io_w )
+WRITE8_MEMBER(vicdual_state::headon2_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
- if (offset & 0x02) headon_audio_w(space, 0, data);
- if (offset & 0x04) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) assert_coin_status(machine());
+ if (offset & 0x02) headon_audio_w(&space, 0, data);
+ if (offset & 0x04) vicdual_palette_bank_w(&space, 0, data);
if (offset & 0x08) { /* schematics show this as going into a shifer circuit, but never written to */ }
if (offset & 0x10) { /* schematics show this as going to an edge connector, but never written to */ }
if (offset & 0x18) logerror("********* Write to port %x\n", offset);
}
-static WRITE8_HANDLER( digger_io_w )
+WRITE8_MEMBER(vicdual_state::digger_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
+ if (offset & 0x01) assert_coin_status(machine());
if (offset & 0x02) { /* digger_audio_1_w(0, data) */ }
if (offset & 0x04)
{
- vicdual_palette_bank_w(space, 0, data & 0x03);
+ vicdual_palette_bank_w(&space, 0, data & 0x03);
/* digger_audio_2_w(0, data & 0xfc); */
}
@@ -760,9 +758,9 @@ static WRITE8_HANDLER( digger_io_w )
static ADDRESS_MAP_START( headon2_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x1fff) AM_MIRROR(0x6000) AM_ROM
/* AM_RANGE(0x8000, 0x80ff) AM_MIRROR(0x3f00) */ /* schematics show this as battery backed RAM, but doesn't appear to be used */
- AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xc400, 0xc7ff) AM_MIRROR(0x3000) AM_RAM
- AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -771,7 +769,7 @@ static ADDRESS_MAP_START( headon2_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x1f) AM_READWRITE_LEGACY(headon2_io_r, headon2_io_w)
+ AM_RANGE(0x00, 0x1f) AM_READWRITE(headon2_io_r, headon2_io_w)
ADDRESS_MAP_END
@@ -780,7 +778,7 @@ static ADDRESS_MAP_START( digger_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x1f) AM_READWRITE_LEGACY(headon2_io_r, digger_io_w)
+ AM_RANGE(0x00, 0x1f) AM_READWRITE(headon2_io_r, digger_io_w)
ADDRESS_MAP_END
@@ -944,104 +942,104 @@ MACHINE_CONFIG_END
*
*************************************/
-static WRITE8_HANDLER( invho2_io_w )
+WRITE8_MEMBER(vicdual_state::invho2_io_w)
{
- if (offset & 0x01) invho2_audio_w(space, 0, data);
- if (offset & 0x02) invinco_audio_w(space, 0, data);
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) invho2_audio_w(&space, 0, data);
+ if (offset & 0x02) invinco_audio_w(&space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
-static WRITE8_HANDLER( invds_io_w )
+WRITE8_MEMBER(vicdual_state::invds_io_w)
{
- if (offset & 0x01) invinco_audio_w(space, 0, data);
+ if (offset & 0x01) invinco_audio_w(&space, 0, data);
if (offset & 0x02) { /* deepscan_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
-static WRITE8_HANDLER( sspacaho_io_w )
+WRITE8_MEMBER(vicdual_state::sspacaho_io_w)
{
- if (offset & 0x01) invho2_audio_w(space, 0, data);
- if (offset & 0x02) { /* sspaceatt_audio_w(space, 0, data) */ }
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) invho2_audio_w(&space, 0, data);
+ if (offset & 0x02) { /* s&spaceatt_audio_w(&space, 0, data) */ }
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
-static WRITE8_HANDLER( tranqgun_io_w )
+WRITE8_MEMBER(vicdual_state::tranqgun_io_w)
{
- if (offset & 0x01) { /* tranqgun_audio_w(space, 0, data) */ }
- if (offset & 0x02) vicdual_palette_bank_w(space, 0, data);
- if (offset & 0x08) assert_coin_status(space->machine());
+ if (offset & 0x01) { /* tranqgun_audio_w(&space, 0, data) */ }
+ if (offset & 0x02) vicdual_palette_bank_w(&space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
}
-static WRITE8_HANDLER( spacetrk_io_w )
+WRITE8_MEMBER(vicdual_state::spacetrk_io_w)
{
- if (offset & 0x01) { /* spacetrk_audio_w(space, 0, data) */ }
- if (offset & 0x02) { /* spacetrk_audio_w(space, 0, data) */ }
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) { /* &spacetrk_audio_w(&space, 0, data) */ }
+ if (offset & 0x02) { /* &spacetrk_audio_w(&space, 0, data) */ }
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
-static WRITE8_HANDLER( carnival_io_w )
+WRITE8_MEMBER(vicdual_state::carnival_io_w)
{
- if (offset & 0x01) carnival_audio_1_w(space, 0, data);
- if (offset & 0x02) carnival_audio_2_w(space, 0, data);
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) carnival_audio_1_w(&space, 0, data);
+ if (offset & 0x02) carnival_audio_2_w(&space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
-static WRITE8_HANDLER( brdrline_io_w )
+WRITE8_MEMBER(vicdual_state::brdrline_io_w)
{
- if (offset & 0x01) { /* brdrline_audio_w(space, 0, data) */ }
- if (offset & 0x02) vicdual_palette_bank_w(space, 0, data);
- if (offset & 0x08) assert_coin_status(space->machine());
+ if (offset & 0x01) { /* brdrline_audio_w(&space, 0, data) */ }
+ if (offset & 0x02) vicdual_palette_bank_w(&space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
}
-static WRITE8_HANDLER( pulsar_io_w )
+WRITE8_MEMBER(vicdual_state::pulsar_io_w)
{
- if (offset & 0x01) pulsar_audio_1_w(space, 0, data);
- if (offset & 0x02) pulsar_audio_2_w(space, 0, data);
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) pulsar_audio_1_w(&space, 0, data);
+ if (offset & 0x02) pulsar_audio_2_w(&space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
-static WRITE8_HANDLER( heiankyo_io_w )
+WRITE8_MEMBER(vicdual_state::heiankyo_io_w)
{
if (offset & 0x01) { /* heiankyo_audio_1_w(0, data) */ }
if (offset & 0x02)
{
- vicdual_palette_bank_w(space, 0, data >> 6);
+ vicdual_palette_bank_w(&space, 0, data >> 6);
/* heiankyo_audio_2_w(0, data & 0x3f); */
}
- if (offset & 0x08) assert_coin_status(space->machine());
+ if (offset & 0x08) assert_coin_status(machine());
}
-static WRITE8_HANDLER( alphaho_io_w )
+WRITE8_MEMBER(vicdual_state::alphaho_io_w)
{
if (offset & 0x01) { /* headon_audio_w(0, data) */ }
if (offset & 0x02) { /* alphaf_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
static ADDRESS_MAP_START( vicdual_dualgame_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
- AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -1055,7 +1053,7 @@ static ADDRESS_MAP_START( invho2_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(invho2_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(invho2_io_w)
ADDRESS_MAP_END
@@ -1069,7 +1067,7 @@ static ADDRESS_MAP_START( invds_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(invds_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(invds_io_w)
ADDRESS_MAP_END
@@ -1083,7 +1081,7 @@ static ADDRESS_MAP_START( sspacaho_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(sspacaho_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(sspacaho_io_w)
ADDRESS_MAP_END
@@ -1097,7 +1095,7 @@ static ADDRESS_MAP_START( tranqgun_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_WRITE_LEGACY(tranqgun_io_w)
+ AM_RANGE(0x00, 0x0f) AM_WRITE(tranqgun_io_w)
ADDRESS_MAP_END
@@ -1111,7 +1109,7 @@ static ADDRESS_MAP_START( spacetrk_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(spacetrk_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(spacetrk_io_w)
ADDRESS_MAP_END
@@ -1125,7 +1123,7 @@ static ADDRESS_MAP_START( carnival_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(carnival_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(carnival_io_w)
ADDRESS_MAP_END
@@ -1139,7 +1137,7 @@ static ADDRESS_MAP_START( brdrline_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_WRITE_LEGACY(brdrline_io_w)
+ AM_RANGE(0x00, 0x0f) AM_WRITE(brdrline_io_w)
ADDRESS_MAP_END
@@ -1153,7 +1151,7 @@ static ADDRESS_MAP_START( pulsar_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(pulsar_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(pulsar_io_w)
ADDRESS_MAP_END
@@ -1167,7 +1165,7 @@ static ADDRESS_MAP_START( heiankyo_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x0f) AM_WRITE_LEGACY(heiankyo_io_w)
+ AM_RANGE(0x00, 0x0f) AM_WRITE(heiankyo_io_w)
ADDRESS_MAP_END
@@ -1181,7 +1179,7 @@ static ADDRESS_MAP_START( alphaho_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(alphaho_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(alphaho_io_w)
ADDRESS_MAP_END
@@ -2043,10 +2041,9 @@ MACHINE_CONFIG_END
*************************************/
-static WRITE8_HANDLER( samurai_protection_w )
+WRITE8_MEMBER(vicdual_state::samurai_protection_w)
{
- vicdual_state *state = space->machine().driver_data<vicdual_state>();
- state->m_samurai_protection_data = data;
+ m_samurai_protection_data = data;
}
@@ -2065,20 +2062,20 @@ static CUSTOM_INPUT( samurai_protection_r )
}
-static WRITE8_HANDLER( samurai_io_w )
+WRITE8_MEMBER(vicdual_state::samurai_io_w)
{
if (offset & 0x02) { /* samurai_audio_w(0, data) */ }
- if (offset & 0x08) assert_coin_status(space->machine());
- if (offset & 0x40) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x08) assert_coin_status(machine());
+ if (offset & 0x40) vicdual_palette_bank_w(&space, 0, data);
}
/* dual game hardware */
static ADDRESS_MAP_START( samurai_map, AS_PROGRAM, 8, vicdual_state )
- AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM AM_WRITE_LEGACY(samurai_protection_w)
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM AM_WRITE(samurai_protection_w)
+ AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x8400, 0x87ff) AM_MIRROR(0x7000) AM_RAM
- AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0x8800, 0x8fff) AM_MIRROR(0x7000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -2092,7 +2089,7 @@ static ADDRESS_MAP_START( samurai_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can write to multiple locations at once */
- AM_RANGE(0x00, 0x7f) AM_WRITE_LEGACY(samurai_io_w)
+ AM_RANGE(0x00, 0x7f) AM_WRITE(samurai_io_w)
ADDRESS_MAP_END
@@ -2168,31 +2165,31 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( nsub_io_r )
+READ8_MEMBER(vicdual_state::nsub_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN1");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN1");
return ret;
}
-static WRITE8_HANDLER( nsub_io_w )
+WRITE8_MEMBER(vicdual_state::nsub_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
+ if (offset & 0x01) assert_coin_status(machine());
if (offset & 0x02) { /* nsub_audio_w(0, data) */ }
- if (offset & 0x04) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x04) vicdual_palette_bank_w(&space, 0, data);
}
static ADDRESS_MAP_START( nsub_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP /* unused */
- AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xc400, 0xc7ff) AM_MIRROR(0x3000) AM_RAM
- AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -2201,7 +2198,7 @@ static ADDRESS_MAP_START( nsub_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x1f) AM_READWRITE_LEGACY(nsub_io_r, nsub_io_w)
+ AM_RANGE(0x00, 0x1f) AM_READWRITE(nsub_io_r, nsub_io_w)
ADDRESS_MAP_END
@@ -2263,32 +2260,32 @@ MACHINE_CONFIG_END
*
*************************************/
-static READ8_HANDLER( invinco_io_r )
+READ8_MEMBER(vicdual_state::invinco_io_r)
{
UINT8 ret = 0;
- if (offset & 0x01) ret = input_port_read(space->machine(), "IN0");
- if (offset & 0x02) ret = input_port_read(space->machine(), "IN1");
- if (offset & 0x08) ret = input_port_read(space->machine(), "IN2");
+ if (offset & 0x01) ret = input_port_read(machine(), "IN0");
+ if (offset & 0x02) ret = input_port_read(machine(), "IN1");
+ if (offset & 0x08) ret = input_port_read(machine(), "IN2");
return ret;
}
-static WRITE8_HANDLER( invinco_io_w )
+WRITE8_MEMBER(vicdual_state::invinco_io_w)
{
- if (offset & 0x01) assert_coin_status(space->machine());
- if (offset & 0x02) invinco_audio_w(space, 0, data);
- if (offset & 0x04) vicdual_palette_bank_w(space, 0, data);
+ if (offset & 0x01) assert_coin_status(machine());
+ if (offset & 0x02) invinco_audio_w(&space, 0, data);
+ if (offset & 0x04) vicdual_palette_bank_w(&space, 0, data);
}
static ADDRESS_MAP_START( invinco_map, AS_PROGRAM, 8, vicdual_state )
AM_RANGE(0x0000, 0x3fff) AM_MIRROR(0x4000) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_NOP /* unused */
- AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_videoram_w) AM_BASE(m_videoram)
+ AM_RANGE(0xc000, 0xc3ff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0xc400, 0xc7ff) AM_MIRROR(0x3000) AM_RAM
- AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE_LEGACY(vicdual_characterram_w) AM_BASE(m_characterram)
+ AM_RANGE(0xc800, 0xcfff) AM_MIRROR(0x3000) AM_RAM_WRITE(vicdual_characterram_w) AM_BASE(m_characterram)
ADDRESS_MAP_END
@@ -2297,7 +2294,7 @@ static ADDRESS_MAP_START( invinco_io_map, AS_IO, 8, vicdual_state )
/* no decoder, just logic gates, so in theory the
game can read/write from multiple locations at once */
- AM_RANGE(0x00, 0x1f) AM_READWRITE_LEGACY(invinco_io_r, invinco_io_w)
+ AM_RANGE(0x00, 0x1f) AM_READWRITE(invinco_io_r, invinco_io_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index 50f07ea31fc..b4b384c4707 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -108,12 +108,12 @@
*
*************************************/
-static WRITE8_HANDLER( lamp_control_w )
+WRITE8_MEMBER(victory_state::lamp_control_w)
{
- set_led_status(space->machine(), 0, data & 0x80);
- set_led_status(space->machine(), 1, data & 0x40);
- set_led_status(space->machine(), 2, data & 0x20);
- set_led_status(space->machine(), 3, data & 0x10);
+ set_led_status(machine(), 0, data & 0x80);
+ set_led_status(machine(), 1, data & 0x40);
+ set_led_status(machine(), 2, data & 0x20);
+ set_led_status(machine(), 3, data & 0x10);
}
@@ -146,7 +146,7 @@ static ADDRESS_MAP_START( main_io_map, AS_IO, 8, victory_state )
AM_RANGE(0x0a, 0x0a) AM_READ_PORT("COIN")
AM_RANGE(0x0c, 0x0c) AM_READ_PORT("BUTTONS")
AM_RANGE(0x0e, 0x0e) AM_READ_PORT("UNUSED")
- AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_WRITE_LEGACY(lamp_control_w)
+ AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_WRITE(lamp_control_w)
AM_RANGE(0x14, 0xff) AM_NOP
ADDRESS_MAP_END
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 0b9321f5080..634667825ba 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -81,9 +81,9 @@ static double calc_plunger_pos(running_machine &machine)
}
-static READ8_HANDLER( videopin_misc_r )
+READ8_MEMBER(videopin_state::videopin_misc_r)
{
- double plunger = calc_plunger_pos(space->machine());
+ double plunger = calc_plunger_pos(machine());
// The plunger of the ball shooter has a black piece of
// plastic (flag) attached to it. When the plunger flag passes
@@ -94,7 +94,7 @@ static READ8_HANDLER( videopin_misc_r )
// signals received. This results in the MPU displaying the
// ball being shot onto the playfield at a certain speed.
- UINT8 val = input_port_read(space->machine(), "IN1");
+ UINT8 val = input_port_read(machine(), "IN1");
if (plunger >= 0.000 && plunger <= 0.001)
{
@@ -109,9 +109,9 @@ static READ8_HANDLER( videopin_misc_r )
}
-static WRITE8_HANDLER( videopin_led_w )
+WRITE8_MEMBER(videopin_state::videopin_led_w)
{
- int i = (space->machine().primary_screen->vpos() >> 5) & 7;
+ int i = (machine().primary_screen->vpos() >> 5) & 7;
static const char *const matrix[8][4] =
{
{ "LED26", "LED18", "LED11", "LED13" },
@@ -130,9 +130,9 @@ static WRITE8_HANDLER( videopin_led_w )
output_set_value(matrix[i][3], (data >> 3) & 1);
if (i == 7)
- set_led_status(space->machine(), 0, data & 8); /* start button */
+ set_led_status(machine(), 0, data & 8); /* start button */
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -196,8 +196,8 @@ 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_LEGACY(videopin_video_ram_w) AM_BASE(m_video_ram)
- AM_RANGE(0x0800, 0x0800) AM_READ_LEGACY(videopin_misc_r) AM_DEVWRITE_LEGACY("discrete", videopin_note_dvsr_w)
- AM_RANGE(0x0801, 0x0801) AM_WRITE_LEGACY(videopin_led_w)
+ AM_RANGE(0x0800, 0x0800) AM_READ(videopin_misc_r) AM_DEVWRITE_LEGACY("discrete", videopin_note_dvsr_w)
+ AM_RANGE(0x0801, 0x0801) AM_WRITE(videopin_led_w)
AM_RANGE(0x0802, 0x0802) AM_WRITE_LEGACY(watchdog_reset_w)
AM_RANGE(0x0804, 0x0804) AM_WRITE_LEGACY(videopin_ball_w)
AM_RANGE(0x0805, 0x0805) AM_DEVWRITE_LEGACY("discrete", videopin_out1_w)
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index a69073fc76b..a3ac3e7048b 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -23,40 +23,40 @@ Buccaneers has a 5.6888 Mhz and a 18.432 Mhz OSC
#include "includes/vigilant.h"
#include "includes/iremipt.h"
-static WRITE8_HANDLER( vigilant_bank_select_w )
+WRITE8_MEMBER(vigilant_state::vigilant_bank_select_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
bankaddress = 0x10000 + (data & 0x07) * 0x4000;
- memory_set_bankptr(space->machine(), "bank1",&RAM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&RAM[bankaddress]);
}
/***************************************************************************
vigilant_out2_w
**************************************************************************/
-static WRITE8_HANDLER( vigilant_out2_w )
+WRITE8_MEMBER(vigilant_state::vigilant_out2_w)
{
/* D0 = FILP = Flip screen? */
/* D1 = COA1 = Coin Counter A? */
/* D2 = COB1 = Coin Counter B? */
/* The hardware has both coin counters hooked up to a single meter. */
- coin_counter_w(space->machine(), 0,data & 0x02);
- coin_counter_w(space->machine(), 1,data & 0x04);
+ coin_counter_w(machine(), 0,data & 0x02);
+ coin_counter_w(machine(), 1,data & 0x04);
// data & 0x01 cocktail mode
}
-static WRITE8_HANDLER( kikcubic_coin_w )
+WRITE8_MEMBER(vigilant_state::kikcubic_coin_w)
{
/* bits 0 is flip screen */
/* bit 1 is used but unknown */
/* bits 4/5 are coin counters */
- coin_counter_w(space->machine(), 0,data & 0x10);
- coin_counter_w(space->machine(), 1,data & 0x20);
+ coin_counter_w(machine(), 0,data & 0x10);
+ coin_counter_w(machine(), 1,data & 0x20);
}
@@ -73,10 +73,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( vigilant_io_map, AS_IO, 8, vigilant_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0") AM_DEVWRITE_LEGACY("m72", m72_sound_command_byte_w) /* SD */
- AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE_LEGACY(vigilant_out2_w) /* OUT2 */
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(vigilant_out2_w) /* OUT2 */
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2")
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1")
- AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2") AM_WRITE_LEGACY(vigilant_bank_select_w) /* PBANK */
+ AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2") AM_WRITE(vigilant_bank_select_w) /* PBANK */
AM_RANGE(0x80, 0x81) AM_WRITE_LEGACY(vigilant_horiz_scroll_w) /* HSPL, HSPH */
AM_RANGE(0x82, 0x83) AM_WRITE_LEGACY(vigilant_rear_horiz_scroll_w) /* RHSPL, RHSPH */
AM_RANGE(0x84, 0x84) AM_WRITE_LEGACY(vigilant_rear_color_w) /* RCOD */
@@ -93,11 +93,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kikcubic_io_map, AS_IO, 8, vigilant_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE_LEGACY(kikcubic_coin_w) /* also flip screen, and...? */
+ AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW1") AM_WRITE(kikcubic_coin_w) /* also flip screen, and...? */
AM_RANGE(0x01, 0x01) AM_READ_PORT("DSW2")
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN0")
AM_RANGE(0x03, 0x03) AM_READ_PORT("IN1")
- AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2") AM_WRITE_LEGACY(vigilant_bank_select_w)
+ AM_RANGE(0x04, 0x04) AM_READ_PORT("IN2") AM_WRITE(vigilant_bank_select_w)
AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("m72", m72_sound_command_byte_w)
// AM_RANGE(0x07, 0x07) AM_WRITENOP /* ?? */
ADDRESS_MAP_END
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index b676653e0be..55a0b1a60d8 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -149,47 +149,45 @@ Changes:
/******************************************************************************/
-static WRITE8_HANDLER( sprite_dma_0_w )
+WRITE8_MEMBER(vsnes_state::sprite_dma_0_w)
{
int source = ( data & 7 );
- ppu2c0x_device *ppu = space->machine().device<ppu2c0x_device>("ppu1");
- ppu->spriteram_dma( space, source );
+ ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu1");
+ ppu->spriteram_dma( &space, source );
}
-static WRITE8_HANDLER( sprite_dma_1_w )
+WRITE8_MEMBER(vsnes_state::sprite_dma_1_w)
{
int source = ( data & 7 );
- ppu2c0x_device *ppu = space->machine().device<ppu2c0x_device>("ppu2");
- ppu->spriteram_dma( space, source );
+ ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu2");
+ ppu->spriteram_dma( &space, source );
}
-static WRITE8_HANDLER( vsnes_coin_counter_w )
+WRITE8_MEMBER(vsnes_state::vsnes_coin_counter_w)
{
- vsnes_state *state = space->machine().driver_data<vsnes_state>();
- coin_counter_w( space->machine(), 0, data & 0x01 );
- state->m_coin = data;
+ coin_counter_w( machine(), 0, data & 0x01 );
+ m_coin = data;
//"bnglngby" and "cluclu"
if( data & 0xfe )
{
- logerror("vsnes_coin_counter_w: pc = 0x%04x - data = 0x%02x\n", cpu_get_pc(&space->device()), data);
+ logerror("vsnes_coin_counter_w: pc = 0x%04x - data = 0x%02x\n", cpu_get_pc(&space.device()), data);
}
}
-static READ8_HANDLER( vsnes_coin_counter_r )
+READ8_MEMBER(vsnes_state::vsnes_coin_counter_r)
{
- vsnes_state *state = space->machine().driver_data<vsnes_state>();
//only for platoon
- return state->m_coin;
+ return m_coin;
}
-static WRITE8_HANDLER( vsnes_coin_counter_1_w )
+WRITE8_MEMBER(vsnes_state::vsnes_coin_counter_1_w)
{
- coin_counter_w( space->machine(), 1, data & 0x01 );
+ coin_counter_w( machine(), 1, data & 0x01 );
if( data & 0xfe ) //vsbball service mode
{
//do something?
- logerror("vsnes_coin_counter_1_w: pc = 0x%04x - data = 0x%02x\n", cpu_get_pc(&space->device()), data);
+ logerror("vsnes_coin_counter_1_w: pc = 0x%04x - data = 0x%02x\n", cpu_get_pc(&space.device()), data);
}
}
@@ -215,11 +213,11 @@ static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8, vsnes_state )
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_LEGACY(sprite_dma_0_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(0x4016, 0x4016) AM_READWRITE_LEGACY(vsnes_in0_r, vsnes_in0_w)
AM_RANGE(0x4017, 0x4017) AM_READ_LEGACY(vsnes_in1_r) AM_DEVWRITE_LEGACY("nes1", psg_4017_w) /* IN1 - input port 2 / PSG second control register */
- AM_RANGE(0x4020, 0x4020) AM_READWRITE_LEGACY(vsnes_coin_counter_r, vsnes_coin_counter_w)
+ 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
ADDRESS_MAP_END
@@ -229,11 +227,11 @@ static ADDRESS_MAP_START( vsnes_cpu2_map, AS_PROGRAM, 8, vsnes_state )
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE("ppu2", ppu2c0x_device, read, write)
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_LEGACY(sprite_dma_1_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(0x4016, 0x4016) AM_READWRITE_LEGACY(vsnes_in0_1_r, vsnes_in0_1_w)
AM_RANGE(0x4017, 0x4017) AM_READ_LEGACY(vsnes_in1_1_r) AM_DEVWRITE_LEGACY("nes2", psg_4017_w) /* IN1 - input port 2 / PSG second control register */
- AM_RANGE(0x4020, 0x4020) AM_WRITE_LEGACY(vsnes_coin_counter_1_w)
+ AM_RANGE(0x4020, 0x4020) AM_WRITE(vsnes_coin_counter_1_w)
AM_RANGE(0x6000, 0x7fff) AM_RAMBANK("extra2")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index b91a7dc98d7..57b9c832631 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -149,18 +149,17 @@ static INTERRUPT_GEN( vblank_irq )
/* B&W Games I/O */
-static READ8_HANDLER( geebee_in_r )
+READ8_MEMBER(warpwarp_state::geebee_in_r)
{
- warpwarp_state *state = space->machine().driver_data<warpwarp_state>();
int res;
static const char *const portnames[] = { "SW0", "SW1", "DSW2", "PLACEHOLDER" }; // "IN1" & "IN2" are read separately when offset==3
offset &= 3;
- res = input_port_read_safe(space->machine(), portnames[offset], 0);
+ res = input_port_read_safe(machine(), portnames[offset], 0);
if (offset == 3)
{
- res = input_port_read(space->machine(), (flip_screen_get(space->machine()) & 1) ? "IN2" : "IN1"); // read player 2 input in cocktail mode
- if (state->m_handle_joystick)
+ res = input_port_read(machine(), (flip_screen_get(machine()) & 1) ? "IN2" : "IN1"); // read player 2 input in cocktail mode
+ if (m_handle_joystick)
{
/* map digital two-way joystick to two fixed VOLIN values */
if (res & 2) return 0x9f;
@@ -171,59 +170,57 @@ static READ8_HANDLER( geebee_in_r )
return res;
}
-static WRITE8_HANDLER( geebee_out6_w )
+WRITE8_MEMBER(warpwarp_state::geebee_out6_w)
{
- warpwarp_state *state = space->machine().driver_data<warpwarp_state>();
switch (offset & 3)
{
case 0:
- state->m_ball_h = data;
+ m_ball_h = data;
break;
case 1:
- state->m_ball_v = data;
+ m_ball_v = data;
break;
case 2:
/* n.c. */
break;
case 3:
- geebee_sound_w(space->machine().device("geebee"),0,data);
+ geebee_sound_w(machine().device("geebee"),0,data);
break;
}
}
-static WRITE8_HANDLER( geebee_out7_w )
+WRITE8_MEMBER(warpwarp_state::geebee_out7_w)
{
- warpwarp_state *state = space->machine().driver_data<warpwarp_state>();
switch (offset & 7)
{
case 0:
- set_led_status(space->machine(), 0,data & 1);
+ set_led_status(machine(), 0,data & 1);
break;
case 1:
- set_led_status(space->machine(), 1,data & 1);
+ set_led_status(machine(), 1,data & 1);
break;
case 2:
- set_led_status(space->machine(), 2,data & 1);
+ set_led_status(machine(), 2,data & 1);
break;
case 3:
- coin_counter_w(space->machine(), 0,data & 1);
+ coin_counter_w(machine(), 0,data & 1);
break;
case 4:
- if (strcmp(space->machine().system().name, "geebeeb"))
- coin_lockout_global_w(space->machine(), ~data & 1);
+ if (strcmp(machine().system().name, "geebeeb"))
+ coin_lockout_global_w(machine(), ~data & 1);
break;
case 5:
- if( state->m_geebee_bgw != (data & 1) )
- space->machine().tilemap().mark_all_dirty();
- state->m_geebee_bgw = data & 1;
+ if( m_geebee_bgw != (data & 1) )
+ machine().tilemap().mark_all_dirty();
+ m_geebee_bgw = data & 1;
break;
case 6:
- state->m_ball_on = data & 1;
+ m_ball_on = data & 1;
if (~data & 1)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 7:
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
break;
}
}
@@ -232,9 +229,9 @@ static WRITE8_HANDLER( geebee_out7_w )
/* Color Games I/O */
/* Read Switch Inputs */
-static READ8_HANDLER( warpwarp_sw_r )
+READ8_MEMBER(warpwarp_state::warpwarp_sw_r)
{
- return (input_port_read(space->machine(), "IN0") >> (offset & 7)) & 1;
+ return (input_port_read(machine(), "IN0") >> (offset & 7)) & 1;
}
/* Read Dipswitches */
@@ -261,19 +258,18 @@ static READ8_DEVICE_HANDLER( warpwarp_vol_r )
return res;
}
-static WRITE8_HANDLER( warpwarp_out0_w )
+WRITE8_MEMBER(warpwarp_state::warpwarp_out0_w)
{
- warpwarp_state *state = space->machine().driver_data<warpwarp_state>();
switch (offset & 3)
{
case 0:
- state->m_ball_h = data;
+ m_ball_h = data;
break;
case 1:
- state->m_ball_v = data;
+ m_ball_v = data;
break;
case 2:
- warpwarp_sound_w(space->machine().device("warpwarp"),0,data);
+ warpwarp_sound_w(machine().device("warpwarp"),0,data);
break;
case 3:
watchdog_reset_w(space,0,data);
@@ -281,36 +277,35 @@ static WRITE8_HANDLER( warpwarp_out0_w )
}
}
-static WRITE8_HANDLER( warpwarp_out3_w )
+WRITE8_MEMBER(warpwarp_state::warpwarp_out3_w)
{
- warpwarp_state *state = space->machine().driver_data<warpwarp_state>();
switch (offset & 7)
{
case 0:
- set_led_status(space->machine(), 0,data & 1);
+ set_led_status(machine(), 0,data & 1);
break;
case 1:
- set_led_status(space->machine(), 1,data & 1);
+ set_led_status(machine(), 1,data & 1);
break;
case 2:
- set_led_status(space->machine(), 2,data & 1);
+ set_led_status(machine(), 2,data & 1);
break;
case 3:
/* n.c. */
break;
case 4:
- coin_lockout_global_w(space->machine(), ~data & 1);
+ coin_lockout_global_w(machine(), ~data & 1);
break;
case 5:
- coin_counter_w(space->machine(), 0,data & 1);
+ coin_counter_w(machine(), 0,data & 1);
break;
case 6:
- state->m_ball_on = data & 1;
+ m_ball_on = data & 1;
if (~data & 1)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
break;
case 7:
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
break;
}
}
@@ -322,15 +317,15 @@ static ADDRESS_MAP_START( geebee_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x2000, 0x23ff) AM_MIRROR(0x400) AM_RAM_WRITE_LEGACY(geebee_videoram_w) AM_BASE(m_geebee_videoram) // mirror used by kaitei due to a bug
AM_RANGE(0x3000, 0x37ff) AM_ROM AM_REGION("gfx1", 0) // 3000-33ff in geebee
AM_RANGE(0x4000, 0x40ff) AM_RAM
- AM_RANGE(0x5000, 0x53ff) AM_READ_LEGACY(geebee_in_r)
- AM_RANGE(0x6000, 0x6fff) AM_WRITE_LEGACY(geebee_out6_w)
- AM_RANGE(0x7000, 0x7fff) AM_WRITE_LEGACY(geebee_out7_w)
+ AM_RANGE(0x5000, 0x53ff) AM_READ(geebee_in_r)
+ AM_RANGE(0x6000, 0x6fff) AM_WRITE(geebee_out6_w)
+ AM_RANGE(0x7000, 0x7fff) AM_WRITE(geebee_out7_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( geebee_port_map, AS_IO, 8, warpwarp_state )
- AM_RANGE(0x50, 0x53) AM_READ_LEGACY(geebee_in_r)
- AM_RANGE(0x60, 0x6f) AM_WRITE_LEGACY(geebee_out6_w)
- AM_RANGE(0x70, 0x7f) AM_WRITE_LEGACY(geebee_out7_w)
+ AM_RANGE(0x50, 0x53) AM_READ(geebee_in_r)
+ AM_RANGE(0x60, 0x6f) AM_WRITE(geebee_out6_w)
+ AM_RANGE(0x70, 0x7f) AM_WRITE(geebee_out7_w)
ADDRESS_MAP_END
@@ -339,10 +334,10 @@ static ADDRESS_MAP_START( bombbee_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE_LEGACY(warpwarp_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4800, 0x4fff) AM_ROM AM_REGION("gfx1", 0)
- AM_RANGE(0x6000, 0x600f) AM_READWRITE_LEGACY(warpwarp_sw_r, warpwarp_out0_w)
+ 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(0x6030, 0x603f) AM_WRITE_LEGACY(warpwarp_out3_w)
+ AM_RANGE(0x6030, 0x603f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( warpwarp_map, AS_PROGRAM, 8, warpwarp_state )
@@ -350,10 +345,10 @@ static ADDRESS_MAP_START( warpwarp_map, AS_PROGRAM, 8, warpwarp_state )
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x4000, 0x47ff) AM_RAM_WRITE_LEGACY(warpwarp_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x4800, 0x4fff) AM_ROM AM_REGION("gfx1", 0)
- AM_RANGE(0xc000, 0xc00f) AM_READWRITE_LEGACY(warpwarp_sw_r, warpwarp_out0_w)
+ 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(0xc030, 0xc03f) AM_WRITE_LEGACY(warpwarp_out3_w)
+ AM_RANGE(0xc030, 0xc03f) AM_WRITE(warpwarp_out3_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 4cef6b7460a..a62be875c71 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -170,61 +170,56 @@ static void reset_sound_region( running_machine &machine )
memory_set_bank(machine, "bank10", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(warriorb_state::sound_bankswitch_w)
{
- warriorb_state *state = space->machine().driver_data<warriorb_state>();
- state->m_banknum = data & 7;
- reset_sound_region(space->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
-static WRITE16_HANDLER( warriorb_sound_w )
+WRITE16_MEMBER(warriorb_state::warriorb_sound_w)
{
- warriorb_state *state = space->machine().driver_data<warriorb_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
}
-static READ16_HANDLER( warriorb_sound_r )
+READ16_MEMBER(warriorb_state::warriorb_sound_r)
{
- warriorb_state *state = space->machine().driver_data<warriorb_state>();
if (offset == 1)
- return ((tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
else
return 0;
}
-static WRITE8_HANDLER( warriorb_pancontrol )
+WRITE8_MEMBER(warriorb_state::warriorb_pancontrol)
{
- warriorb_state *state = space->machine().driver_data<warriorb_state>();
device_t *flt = NULL;
offset &= 3;
switch (offset)
{
- case 0: flt = state->m_2610_1l; break;
- case 1: flt = state->m_2610_1r; break;
- case 2: flt = state->m_2610_2l; break;
- case 3: flt = state->m_2610_2r; break;
+ case 0: flt = m_2610_1l; break;
+ case 1: flt = m_2610_1r; break;
+ case 2: flt = m_2610_2l; break;
+ case 3: flt = m_2610_2r; break;
}
- state->m_pandata[offset] = (data << 1) + data; /* original volume*3 */
- //popmessage(" pan %02x %02x %02x %02x", state->m_pandata[0], state->m_pandata[1], state->m_pandata[2], state->m_pandata[3] );
- flt_volume_set_volume(flt, state->m_pandata[offset] / 100.0);
+ m_pandata[offset] = (data << 1) + data; /* original volume*3 */
+ //popmessage(" pan %02x %02x %02x %02x", m_pandata[0], m_pandata[1], m_pandata[2], m_pandata[3] );
+ flt_volume_set_volume(flt, m_pandata[offset] / 100.0);
}
-static WRITE16_HANDLER( tc0100scn_dual_screen_w )
+WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w)
{
- warriorb_state *state = space->machine().driver_data<warriorb_state>();
- tc0100scn_word_w(state->m_tc0100scn_1, offset, data, mem_mask);
- tc0100scn_word_w(state->m_tc0100scn_2, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_1, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_2, offset, data, mem_mask);
}
/***********************************************************
@@ -234,7 +229,7 @@ static WRITE16_HANDLER( tc0100scn_dual_screen_w )
static ADDRESS_MAP_START( darius2d_map, AS_PROGRAM, 16, warriorb_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main ram */
- AM_RANGE(0x200000, 0x213fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE_LEGACY(tc0100scn_dual_screen_w) /* tilemaps (all screens) */
+ AM_RANGE(0x200000, 0x213fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_dual_screen_w) /* tilemaps (all screens) */
AM_RANGE(0x214000, 0x2141ff) AM_WRITENOP /* error in screen clearing code ? */
AM_RANGE(0x220000, 0x22000f) AM_DEVREADWRITE_LEGACY("tc0100scn_1", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0x240000, 0x253fff) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps (2nd screen) */
@@ -244,13 +239,13 @@ static ADDRESS_MAP_START( darius2d_map, AS_PROGRAM, 16, warriorb_state )
AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0x00ff)
// AM_RANGE(0x820000, 0x820001) AM_WRITENOP // ???
- AM_RANGE(0x830000, 0x830003) AM_READWRITE_LEGACY(warriorb_sound_r, warriorb_sound_w)
+ AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( warriorb_map, AS_PROGRAM, 16, warriorb_state )
AM_RANGE(0x000000, 0x1fffff) AM_ROM
AM_RANGE(0x200000, 0x213fff) AM_RAM
- AM_RANGE(0x300000, 0x313fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE_LEGACY(tc0100scn_dual_screen_w) /* tilemaps (all screens) */
+ AM_RANGE(0x300000, 0x313fff) AM_DEVREAD_LEGACY("tc0100scn_1", tc0100scn_word_r) AM_WRITE(tc0100scn_dual_screen_w) /* tilemaps (all screens) */
AM_RANGE(0x320000, 0x32000f) AM_DEVREADWRITE_LEGACY("tc0100scn_1", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0x340000, 0x353fff) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps (2nd screen) */
AM_RANGE(0x360000, 0x36000f) AM_DEVREADWRITE_LEGACY("tc0100scn_2", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
@@ -259,7 +254,7 @@ static ADDRESS_MAP_START( warriorb_map, AS_PROGRAM, 16, warriorb_state )
AM_RANGE(0x600000, 0x6013ff) AM_RAM AM_BASE_SIZE(m_spriteram, m_spriteram_size)
AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE_LEGACY("tc0510nio", tc0510nio_halfword_r, tc0510nio_halfword_w)
// AM_RANGE(0x820000, 0x820001) AM_WRITENOP // ? uses bits 0,2,3
- AM_RANGE(0x830000, 0x830003) AM_READWRITE_LEGACY(warriorb_sound_r, warriorb_sound_w)
+ AM_RANGE(0x830000, 0x830003) AM_READWRITE(warriorb_sound_r, warriorb_sound_w)
ADDRESS_MAP_END
/***************************************************************************/
@@ -271,11 +266,11 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, warriorb_state )
AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE_LEGACY("tc0140syt", tc0140syt_slave_port_w)
AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE_LEGACY("tc0140syt", tc0140syt_slave_comm_r, tc0140syt_slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITE_LEGACY(warriorb_pancontrol) /* pan */
+ AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 51261002784..605f5fab399 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -80,30 +80,30 @@ voice.ic82 CRC32 abc61f3d SHA1 c6f123d16a26c4d77c635617dd97bb4b906c463a
#include "includes/wc90.h"
-static WRITE8_HANDLER( wc90_bankswitch_w )
+WRITE8_MEMBER(wc90_state::wc90_bankswitch_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("maincpu")->base();
+ UINT8 *RAM = machine().region("maincpu")->base();
bankaddress = 0x10000 + ( ( data & 0xf8 ) << 8 );
- memory_set_bankptr(space->machine(), "bank1", &RAM[bankaddress] );
+ memory_set_bankptr(machine(), "bank1", &RAM[bankaddress] );
}
-static WRITE8_HANDLER( wc90_bankswitch1_w )
+WRITE8_MEMBER(wc90_state::wc90_bankswitch1_w)
{
int bankaddress;
- UINT8 *RAM = space->machine().region("sub")->base();
+ UINT8 *RAM = machine().region("sub")->base();
bankaddress = 0x10000 + ( ( data & 0xf8 ) << 8 );
- memory_set_bankptr(space->machine(), "bank2", &RAM[bankaddress] );
+ memory_set_bankptr(machine(), "bank2", &RAM[bankaddress] );
}
-static WRITE8_HANDLER( wc90_sound_command_w )
+WRITE8_MEMBER(wc90_state::wc90_sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
@@ -135,9 +135,9 @@ static ADDRESS_MAP_START( wc90_map_1, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0xfc43, 0xfc43) AM_WRITEONLY AM_BASE(m_scroll2yhi)
AM_RANGE(0xfc46, 0xfc46) AM_WRITEONLY AM_BASE(m_scroll2xlo)
AM_RANGE(0xfc47, 0xfc47) AM_WRITEONLY AM_BASE(m_scroll2xhi)
- AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE_LEGACY(wc90_sound_command_w)
+ AM_RANGE(0xfcc0, 0xfcc0) AM_WRITE(wc90_sound_command_w)
AM_RANGE(0xfcd0, 0xfcd0) AM_WRITE_LEGACY(watchdog_reset_w)
- AM_RANGE(0xfce0, 0xfce0) AM_WRITE_LEGACY(wc90_bankswitch_w)
+ AM_RANGE(0xfce0, 0xfce0) AM_WRITE(wc90_bankswitch_w)
ADDRESS_MAP_END
static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
@@ -148,7 +148,7 @@ static ADDRESS_MAP_START( wc90_map_2, AS_PROGRAM, 8, wc90_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE_LEGACY(paletteram_xxxxBBBBRRRRGGGG_be_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(wc90_bankswitch1_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90_bankswitch1_w)
AM_RANGE(0xfc01, 0xfc01) AM_WRITE_LEGACY(watchdog_reset_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index e560825deab..8f8f51887a4 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -96,28 +96,28 @@ Noted added by ClawGrip 28-Mar-2008:
#define MSM5205_CLOCK XTAL_384kHz
-static WRITE8_HANDLER( wc90b_bankswitch_w )
+WRITE8_MEMBER(wc90b_state::wc90b_bankswitch_w)
{
int bankaddress;
- UINT8 *ROM = space->machine().region("maincpu")->base();
+ UINT8 *ROM = machine().region("maincpu")->base();
bankaddress = 0x10000 + ((data & 0xf8) << 8);
- memory_set_bankptr(space->machine(), "bank1",&ROM[bankaddress]);
+ memory_set_bankptr(machine(), "bank1",&ROM[bankaddress]);
}
-static WRITE8_HANDLER( wc90b_bankswitch1_w )
+WRITE8_MEMBER(wc90b_state::wc90b_bankswitch1_w)
{
int bankaddress;
- UINT8 *ROM = space->machine().region("sub")->base();
+ UINT8 *ROM = machine().region("sub")->base();
bankaddress = 0x10000 + ((data & 0xf8) << 8);
- memory_set_bankptr(space->machine(), "bank2",&ROM[bankaddress]);
+ memory_set_bankptr(machine(), "bank2",&ROM[bankaddress]);
}
-static WRITE8_HANDLER( wc90b_sound_command_w )
+WRITE8_MEMBER(wc90b_state::wc90b_sound_command_w)
{
soundlatch_w(space, offset, data);
- cputag_set_input_line(space->machine(), "audiocpu", 0, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", 0, HOLD_LINE);
}
static WRITE8_DEVICE_HANDLER( adpcm_control_w )
@@ -132,10 +132,9 @@ static WRITE8_DEVICE_HANDLER( adpcm_control_w )
msm5205_reset_w(device,data & 0x08);
}
-static WRITE8_HANDLER( adpcm_data_w )
+WRITE8_MEMBER(wc90b_state::adpcm_data_w)
{
- wc90b_state *state = space->machine().driver_data<wc90b_state>();
- state->m_msm5205next = data;
+ m_msm5205next = data;
}
@@ -147,8 +146,8 @@ static ADDRESS_MAP_START( wc90b_map1, AS_PROGRAM, 8, wc90b_state )
AM_RANGE(0xe000, 0xefff) AM_RAM_WRITE_LEGACY(wc90b_txvideoram_w) AM_BASE(m_txvideoram)
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank1")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(wc90b_bankswitch_w)
- AM_RANGE(0xfd00, 0xfd00) AM_WRITE_LEGACY(wc90b_sound_command_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90b_bankswitch_w)
+ AM_RANGE(0xfd00, 0xfd00) AM_WRITE(wc90b_sound_command_w)
AM_RANGE(0xfd04, 0xfd04) AM_WRITEONLY AM_BASE(m_scroll1y)
AM_RANGE(0xfd06, 0xfd06) AM_WRITEONLY AM_BASE(m_scroll1x)
AM_RANGE(0xfd08, 0xfd08) AM_WRITEONLY AM_BASE(m_scroll2y)
@@ -169,14 +168,14 @@ static ADDRESS_MAP_START( wc90b_map2, AS_PROGRAM, 8, wc90b_state )
AM_RANGE(0xe800, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_ROMBANK("bank2")
AM_RANGE(0xf800, 0xfbff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0xfc00, 0xfc00) AM_WRITE_LEGACY(wc90b_bankswitch1_w)
+ AM_RANGE(0xfc00, 0xfc00) AM_WRITE(wc90b_bankswitch1_w)
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(0xe400, 0xe400) AM_WRITE_LEGACY(adpcm_data_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
AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r)
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index 015f2a828a6..e4918837201 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -272,14 +272,13 @@ TODO:
Common Routines
***************************************************************************/
-static READ16_HANDLER( wecleman_protection_r )
+READ16_MEMBER(wecleman_state::wecleman_protection_r)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
int blend, data0, data1, r0, g0, b0, r1, g1, b1;
- data0 = state->m_protection_ram[0];
- blend = state->m_protection_ram[2];
- data1 = state->m_protection_ram[1];
+ data0 = m_protection_ram[0];
+ blend = m_protection_ram[2];
+ data1 = m_protection_ram[1];
blend &= 0x3ff;
// a precalculated table will take an astronomical 4096^2(colors) x 1024(steps) x 2(word) bytes
@@ -299,11 +298,10 @@ static READ16_HANDLER( wecleman_protection_r )
return(r0);
}
-static WRITE16_HANDLER( wecleman_protection_w )
+WRITE16_MEMBER(wecleman_state::wecleman_protection_w)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
- if (offset == 2) state->m_prot_state = data & 0x2000;
- if (!state->m_prot_state) COMBINE_DATA(state->m_protection_ram + offset);
+ if (offset == 2) m_prot_state = data & 0x2000;
+ if (!m_prot_state) COMBINE_DATA(m_protection_ram + offset);
}
@@ -327,29 +325,28 @@ static WRITE16_HANDLER( wecleman_protection_w )
Schems: SUBRESET does a RST+HALT
Sub CPU IRQ 4 generated by SUBINT, no other IRQs
*/
-static WRITE16_HANDLER( irqctrl_w )
+WRITE16_MEMBER(wecleman_state::irqctrl_w)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
if (ACCESSING_BITS_0_7)
{
- // logerror("CPU #0 - PC = %06X - $140005 <- %02X (old value: %02X)\n",cpu_get_pc(&space->device()), data&0xFF, old_data&0xFF);
+ // logerror("CPU #0 - PC = %06X - $140005 <- %02X (old value: %02X)\n",cpu_get_pc(&space.device()), data&0xFF, old_data&0xFF);
// Bit 0 : SUBINT
- if ( (state->m_irqctrl & 1) && (!(data & 1)) ) // 1->0 transition
- cputag_set_input_line(space->machine(), "sub", 4, HOLD_LINE);
+ if ( (m_irqctrl & 1) && (!(data & 1)) ) // 1->0 transition
+ cputag_set_input_line(machine(), "sub", 4, HOLD_LINE);
// Bit 1 : NSUBRST
if (data & 2)
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, CLEAR_LINE);
else
- cputag_set_input_line(space->machine(), "sub", INPUT_LINE_RESET, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", INPUT_LINE_RESET, ASSERT_LINE);
// Bit 2 : SOUND-ON
// Bit 3 : SOUNDRST
// Bit 4 : SCR-HCNT
// Bit 5 : SCR-VCNT
// Bit 6 : TV-KILL
- state->m_irqctrl = data; // latch the value
+ m_irqctrl = data; // latch the value
}
}
@@ -364,21 +361,19 @@ static WRITE16_HANDLER( irqctrl_w )
------10 ? out 1/2
*/
-static WRITE16_HANDLER( selected_ip_w )
+WRITE16_MEMBER(wecleman_state::selected_ip_w)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
- if (ACCESSING_BITS_0_7) state->m_selected_ip = data & 0xff; // latch the value
+ if (ACCESSING_BITS_0_7) m_selected_ip = data & 0xff; // latch the value
}
/* $140021.b - Return the previously selected input port's value */
-static READ16_HANDLER( selected_ip_r )
+READ16_MEMBER(wecleman_state::selected_ip_r)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
- switch ( (state->m_selected_ip >> 5) & 3 )
+ switch ( (m_selected_ip >> 5) & 3 )
{ // From WEC Le Mans Schems:
- case 0: return input_port_read(space->machine(), "ACCEL"); // Accel - Schems: Accelevr
+ case 0: return input_port_read(machine(), "ACCEL"); // Accel - Schems: Accelevr
case 1: return ~0; // ????? - Schems: Not Used
- case 2: return input_port_read(space->machine(), "STEER"); // Wheel - Schems: Handlevr
+ case 2: return input_port_read(machine(), "STEER"); // Wheel - Schems: Handlevr
case 3: return ~0; // Table - Schems: Turnvr
default: return ~0;
@@ -419,35 +414,34 @@ static READ16_HANDLER( selected_ip_r )
The color code in the original sprite encoding has special meanings on the other hand. I'll take
a shortcut by manually copying list[0] and list[1] to sprite RAM for further process.
*/
-static WRITE16_HANDLER( blitter_w )
+WRITE16_MEMBER(wecleman_state::blitter_w)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
- COMBINE_DATA(&state->m_blitter_regs[offset]);
+ COMBINE_DATA(&m_blitter_regs[offset]);
/* do a blit if $80010.b has been written */
if ( (offset == 0x10/2) && (ACCESSING_BITS_8_15) )
{
/* 80000.b = ?? usually 0 - other values: 02 ; 00 - ? logic function ? */
/* 80001.b = ?? usually 0 - other values: 3f ; 01 - ? height ? */
- int minterm = ( state->m_blitter_regs[0x0/2] & 0xFF00 ) >> 8;
- int list_len = ( state->m_blitter_regs[0x0/2] & 0x00FF ) >> 0;
+ int minterm = ( m_blitter_regs[0x0/2] & 0xFF00 ) >> 8;
+ int list_len = ( m_blitter_regs[0x0/2] & 0x00FF ) >> 0;
/* 80002.w = ?? always 0 - ? increment per horizontal line ? */
/* no proof at all, it's always 0 */
- //int srcdisp = state->m_blitter_regs[0x2/2] & 0xFF00;
- //int destdisp = state->m_blitter_regs[0x2/2] & 0x00FF;
+ //int srcdisp = m_blitter_regs[0x2/2] & 0xFF00;
+ //int destdisp = m_blitter_regs[0x2/2] & 0x00FF;
/* 80004.l = source data address */
- int src = ( state->m_blitter_regs[0x4/2] << 16 ) + state->m_blitter_regs[0x6/2];
+ int src = ( m_blitter_regs[0x4/2] << 16 ) + m_blitter_regs[0x6/2];
/* 80008.l = list of blits address */
- int list = ( state->m_blitter_regs[0x8/2] << 16 ) + state->m_blitter_regs[0xA/2];
+ int list = ( m_blitter_regs[0x8/2] << 16 ) + m_blitter_regs[0xA/2];
/* 8000C.l = destination address */
- int dest = ( state->m_blitter_regs[0xC/2] << 16 ) + state->m_blitter_regs[0xE/2];
+ int dest = ( m_blitter_regs[0xC/2] << 16 ) + m_blitter_regs[0xE/2];
/* 80010.b = number of words to move */
- int size = ( state->m_blitter_regs[0x10/2] ) & 0x00FF;
+ int size = ( m_blitter_regs[0x10/2] ) & 0x00FF;
/* Word aligned transfers only ?? */
src &= (~1); list &= (~1); dest &= (~1);
@@ -459,7 +453,7 @@ static WRITE16_HANDLER( blitter_w )
for ( ; size > 0 ; size--)
{
/* maybe slower than a memcpy but safer (and errors are logged) */
- space->write_word(dest, space->read_word(src));
+ space.write_word(dest, space.read_word(src));
src += 2;
dest += 2;
}
@@ -472,23 +466,23 @@ static WRITE16_HANDLER( blitter_w )
int i, j, destptr;
/* Read offset of source from the list of blits */
- i = src + space->read_word(list+2);
+ i = src + space.read_word(list+2);
j = i + (size<<1);
destptr = dest;
for (; i<j; destptr+=2, i+=2)
- space->write_word(destptr, space->read_word(i));
+ space.write_word(destptr, space.read_word(i));
destptr = dest + 14;
- i = space->read_word(list) + state->m_spr_color_offs;
- space->write_word(destptr, i);
+ i = space.read_word(list) + m_spr_color_offs;
+ space.write_word(destptr, i);
dest += 16;
list += 4;
}
/* hack for the blit to Sprites RAM - Sprite list end-marker */
- space->write_word(dest, 0xFFFF);
+ space.write_word(dest, 0xFFFF);
}
}
}
@@ -500,28 +494,29 @@ static WRITE16_HANDLER( blitter_w )
static WRITE16_HANDLER( wecleman_soundlatch_w );
+
static ADDRESS_MAP_START( wecleman_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM // ROM (03c000-03ffff used as RAM sometimes!)
AM_RANGE(0x040494, 0x040495) AM_WRITE_LEGACY(wecleman_videostatus_w) AM_BASE(m_videostatus) // cloud blending control (HACK)
AM_RANGE(0x040000, 0x043fff) AM_RAM // RAM
- AM_RANGE(0x060000, 0x060005) AM_WRITE_LEGACY(wecleman_protection_w) AM_BASE(m_protection_ram)
- AM_RANGE(0x060006, 0x060007) AM_READ_LEGACY(wecleman_protection_r) // MCU read
- AM_RANGE(0x080000, 0x080011) AM_RAM_WRITE_LEGACY(blitter_w) AM_BASE(m_blitter_regs) // Blitter
+ AM_RANGE(0x060000, 0x060005) AM_WRITE(wecleman_protection_w) AM_BASE(m_protection_ram)
+ AM_RANGE(0x060006, 0x060007) AM_READ(wecleman_protection_r) // MCU read
+ AM_RANGE(0x080000, 0x080011) AM_RAM_WRITE(blitter_w) AM_BASE(m_blitter_regs) // Blitter
AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE_LEGACY(wecleman_pageram_w) AM_BASE(m_pageram) // Background Layers
AM_RANGE(0x108000, 0x108fff) AM_RAM_WRITE_LEGACY(wecleman_txtram_w) AM_BASE(m_txtram) // Text Layer
AM_RANGE(0x110000, 0x110fff) AM_RAM_WRITE_LEGACY(wecleman_paletteram16_SSSSBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x124000, 0x127fff) AM_RAM AM_SHARE("share1") // Shared with main CPU
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(m_spriteram) // Sprites
AM_RANGE(0x140000, 0x140001) AM_WRITE_LEGACY(wecleman_soundlatch_w) // To sound CPU
- AM_RANGE(0x140002, 0x140003) AM_WRITE_LEGACY(selected_ip_w) // Selects accelerator / wheel / ..
- AM_RANGE(0x140004, 0x140005) AM_WRITE_LEGACY(irqctrl_w) // Main CPU controls the other CPUs
+ AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w) // Selects accelerator / wheel / ..
+ AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w) // Main CPU controls the other CPUs
AM_RANGE(0x140006, 0x140007) AM_WRITENOP // Watchdog reset
AM_RANGE(0x140010, 0x140011) AM_READ_PORT("IN0") // Coins + brake + gear
AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1") // ??
AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSWA") // DSW 2
AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSWB") // DSW 1
AM_RANGE(0x140020, 0x140021) AM_WRITEONLY // Paired with writes to $140003
- AM_RANGE(0x140020, 0x140021) AM_READ_LEGACY(selected_ip_r) // Accelerator or Wheel or ..
+ AM_RANGE(0x140020, 0x140021) AM_READ(selected_ip_r) // Accelerator or Wheel or ..
AM_RANGE(0x140030, 0x140031) AM_WRITENOP // toggles between 0 & 1 on hitting bumps and crashes (vibration?)
ADDRESS_MAP_END
@@ -530,13 +525,13 @@ ADDRESS_MAP_END
Hot Chase Main CPU Handlers
***************************************************************************/
-static WRITE16_HANDLER( hotchase_soundlatch_w );
+
static ADDRESS_MAP_START( hotchase_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x040000, 0x041fff) AM_RAM // RAM
AM_RANGE(0x060000, 0x063fff) AM_RAM // RAM
- AM_RANGE(0x080000, 0x080011) AM_RAM_WRITE_LEGACY(blitter_w) AM_BASE(m_blitter_regs) // Blitter
+ AM_RANGE(0x080000, 0x080011) AM_RAM_WRITE(blitter_w) AM_BASE(m_blitter_regs) // Blitter
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE8_LEGACY("k051316_1", k051316_r, k051316_w, 0x00ff) // Background
AM_RANGE(0x101000, 0x10101f) AM_DEVWRITE8_LEGACY("k051316_1", k051316_ctrl_w, 0x00ff) // Background Ctrl
AM_RANGE(0x102000, 0x102fff) AM_DEVREADWRITE8_LEGACY("k051316_2", k051316_r, k051316_w, 0x00ff) // Foreground
@@ -544,15 +539,15 @@ static ADDRESS_MAP_START( hotchase_map, AS_PROGRAM, 16, wecleman_state )
AM_RANGE(0x110000, 0x111fff) AM_RAM_WRITE_LEGACY(hotchase_paletteram16_SBGRBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x120000, 0x123fff) AM_RAM AM_SHARE("share1") // Shared with sub CPU
AM_RANGE(0x130000, 0x130fff) AM_RAM AM_BASE(m_spriteram) // Sprites
- AM_RANGE(0x140000, 0x140001) AM_WRITE_LEGACY(hotchase_soundlatch_w) // To sound CPU
- AM_RANGE(0x140002, 0x140003) AM_WRITE_LEGACY(selected_ip_w) // Selects accelerator / wheel /
- AM_RANGE(0x140004, 0x140005) AM_WRITE_LEGACY(irqctrl_w) // Main CPU controls the other CPUs
+ AM_RANGE(0x140000, 0x140001) AM_WRITE(hotchase_soundlatch_w) // To sound CPU
+ AM_RANGE(0x140002, 0x140003) AM_WRITE(selected_ip_w) // Selects accelerator / wheel /
+ AM_RANGE(0x140004, 0x140005) AM_WRITE(irqctrl_w) // Main CPU controls the other CPUs
AM_RANGE(0x140006, 0x140007) AM_READNOP // Watchdog reset
AM_RANGE(0x140010, 0x140011) AM_READ_PORT("IN0") // Coins + brake + gear
AM_RANGE(0x140012, 0x140013) AM_READ_PORT("IN1") // ?? bit 4 from sound cpu
AM_RANGE(0x140014, 0x140015) AM_READ_PORT("DSW2") // DSW 2
AM_RANGE(0x140016, 0x140017) AM_READ_PORT("DSW1") // DSW 1
- AM_RANGE(0x140020, 0x140021) AM_READ_LEGACY(selected_ip_r) AM_WRITENOP // Paired with writes to $140003
+ AM_RANGE(0x140020, 0x140021) AM_READ(selected_ip_r) AM_WRITENOP // Paired with writes to $140003
AM_RANGE(0x140022, 0x140023) AM_READNOP // ??
AM_RANGE(0x140030, 0x140031) AM_WRITENOP // signal to cabinet vibration motors?
ADDRESS_MAP_END
@@ -597,16 +592,14 @@ WRITE16_HANDLER( wecleman_soundlatch_w )
}
/* Protection - an external multiplyer connected to the sound CPU */
-static READ8_HANDLER( multiply_r )
+READ8_MEMBER(wecleman_state::multiply_r)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
- return (state->m_multiply_reg[0] * state->m_multiply_reg[1]) & 0xFF;
+ return (m_multiply_reg[0] * m_multiply_reg[1]) & 0xFF;
}
-static WRITE8_HANDLER( multiply_w )
+WRITE8_MEMBER(wecleman_state::multiply_w)
{
- wecleman_state *state = space->machine().driver_data<wecleman_state>();
- state->m_multiply_reg[offset] = data;
+ m_multiply_reg[offset] = data;
}
/* K007232 registers reminder:
@@ -634,8 +627,8 @@ static ADDRESS_MAP_START( wecleman_sound_map, AS_PROGRAM, 8, wecleman_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x8500, 0x8500) AM_WRITENOP // incresed with speed (global volume)?
- AM_RANGE(0x9000, 0x9000) AM_READ_LEGACY(multiply_r) // Protection
- AM_RANGE(0x9000, 0x9001) AM_WRITE_LEGACY(multiply_w) // Protection
+ AM_RANGE(0x9000, 0x9000) AM_READ(multiply_r) // Protection
+ AM_RANGE(0x9000, 0x9001) AM_WRITE(multiply_w) // Protection
AM_RANGE(0x9006, 0x9006) AM_WRITENOP // ?
AM_RANGE(0xa000, 0xa000) AM_READ_LEGACY(soundlatch_r) // From main CPU
AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE_LEGACY("konami", k007232_r, k007232_w) // K007232 (Reading offset 5/b triggers the sample)
@@ -649,24 +642,24 @@ ADDRESS_MAP_END
***************************************************************************/
/* 140001.b */
-static WRITE16_HANDLER( hotchase_soundlatch_w )
+WRITE16_MEMBER(wecleman_state::hotchase_soundlatch_w)
{
if (ACCESSING_BITS_0_7)
{
soundlatch_w(space, 0, data & 0xFF);
- cputag_set_input_line(space->machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
}
}
-static WRITE8_HANDLER( hotchase_sound_control_w )
+WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w)
{
device_t *sound[3];
// int reg[8];
- sound[0] = space->machine().device("konami1");
- sound[1] = space->machine().device("konami2");
- sound[2] = space->machine().device("konami3");
+ sound[0] = machine().device("konami1");
+ sound[1] = machine().device("konami2");
+ sound[2] = machine().device("konami3");
// reg[offset] = data;
@@ -728,7 +721,7 @@ static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8, wecleman_state )
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(0x4000, 0x4007) AM_WRITE_LEGACY(hotchase_sound_control_w) // Sound volume, banking, etc.
+ 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_LEGACY(soundlatch_r) // From main CPU (Read on IRQ)
AM_RANGE(0x7000, 0x7000) AM_WRITENOP // Command acknowledge ?
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index 97ef709e361..87d5db7ea92 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -320,23 +320,22 @@ TODO:
-static WRITE8_HANDLER( welltris_sh_bankswitch_w )
+WRITE8_MEMBER(welltris_state::welltris_sh_bankswitch_w)
{
- UINT8 *rom = space->machine().region("audiocpu")->base() + 0x10000;
+ UINT8 *rom = machine().region("audiocpu")->base() + 0x10000;
- memory_set_bankptr(space->machine(), "bank1",rom + (data & 0x03) * 0x8000);
+ memory_set_bankptr(machine(), "bank1",rom + (data & 0x03) * 0x8000);
}
-static WRITE16_HANDLER( sound_command_w )
+WRITE16_MEMBER(welltris_state::sound_command_w)
{
if (ACCESSING_BITS_0_7)
{
- welltris_state *state = space->machine().driver_data<welltris_state>();
- state->m_pending_command = 1;
+ m_pending_command = 1;
soundlatch_w(space, 0, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE);
}
}
@@ -346,11 +345,10 @@ static CUSTOM_INPUT( pending_sound_r )
return state->m_pending_command ? 1 : 0;
}
-static WRITE8_HANDLER( pending_command_clear_w )
+WRITE8_MEMBER(welltris_state::pending_command_clear_w)
{
- welltris_state *state = space->machine().driver_data<welltris_state>();
- state->m_pending_command = 0;
+ m_pending_command = 0;
}
@@ -370,7 +368,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, welltris_state )
AM_RANGE(0xfff004, 0xfff007) AM_WRITE_LEGACY(welltris_scrollreg_w)
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("P4") /* Right Side Ctrls */
AM_RANGE(0xfff008, 0xfff009) AM_READ_PORT("SYSTEM") /* Bit 5 Tested at start of irq 1 */
- AM_RANGE(0xfff008, 0xfff009) AM_WRITE_LEGACY(sound_command_w)
+ AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("EXTRA") /* P3+P4 Coin + Start Buttons */
AM_RANGE(0xfff00c, 0xfff00d) AM_READ_PORT("DSW1")
AM_RANGE(0xfff00c, 0xfff00d) AM_WRITENOP /* ?? */
@@ -386,10 +384,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, welltris_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_WRITE_LEGACY(welltris_sh_bankswitch_w)
+ AM_RANGE(0x00, 0x00) AM_WRITE(welltris_sh_bankswitch_w)
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w)
AM_RANGE(0x10, 0x10) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0x18, 0x18) AM_WRITE_LEGACY(pending_command_clear_w)
+ AM_RANGE(0x18, 0x18) AM_WRITE(pending_command_clear_w)
ADDRESS_MAP_END
static INPUT_PORTS_START( welltris )
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 2aeb019ac73..5a02817f287 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -403,16 +403,14 @@ Stephh's notes (based on the game M68000 code and some tests) :
#include "sound/2610intf.h"
#include "includes/wgp.h"
-static READ16_HANDLER( sharedram_r )
+READ16_MEMBER(wgp_state::sharedram_r)
{
- wgp_state *state = space->machine().driver_data<wgp_state>();
- return state->m_sharedram[offset];
+ return m_sharedram[offset];
}
-static WRITE16_HANDLER( sharedram_w )
+WRITE16_MEMBER(wgp_state::sharedram_w)
{
- wgp_state *state = space->machine().driver_data<wgp_state>();
- COMBINE_DATA(&state->m_sharedram[offset]);
+ COMBINE_DATA(&m_sharedram[offset]);
}
static void parse_control(running_machine &machine)
@@ -426,17 +424,16 @@ static void parse_control(running_machine &machine)
/* bit 1 is "vibration" acc. to test mode */
}
-static WRITE16_HANDLER( cpua_ctrl_w ) /* assumes Z80 sandwiched between 68Ks */
+WRITE16_MEMBER(wgp_state::cpua_ctrl_w)/* assumes Z80 sandwiched between 68Ks */
{
- wgp_state *state = space->machine().driver_data<wgp_state>();
if ((data &0xff00) && ((data &0xff) == 0))
data = data >> 8; /* for Wgp */
- state->m_cpua_ctrl = data;
+ m_cpua_ctrl = data;
- parse_control(space->machine());
+ parse_control(machine());
- logerror("CPU #0 PC %06x: write %04x to cpu control\n",cpu_get_pc(&space->device()),data);
+ logerror("CPU #0 PC %06x: write %04x to cpu control\n",cpu_get_pc(&space.device()),data);
}
@@ -486,14 +483,14 @@ static INTERRUPT_GEN( wgp_cpub_interrupt )
GAME INPUTS
**********************************************************/
-static READ16_HANDLER( lan_status_r )
+READ16_MEMBER(wgp_state::lan_status_r)
{
- logerror("CPU #2 PC %06x: warning - read lan status\n",cpu_get_pc(&space->device()));
+ logerror("CPU #2 PC %06x: warning - read lan status\n",cpu_get_pc(&space.device()));
return (0x4 << 8); /* CPUB expects this in code at $104d0 (Wgp) */
}
-static WRITE16_HANDLER( rotate_port_w )
+WRITE16_MEMBER(wgp_state::rotate_port_w)
{
/* This port may be for piv/sprite layer rotation.
@@ -510,21 +507,20 @@ static WRITE16_HANDLER( rotate_port_w )
which contains sets of 4 words (used for ports 0-3).
NB: port 6 is not written.
*/
- wgp_state *state = space->machine().driver_data<wgp_state>();
switch (offset)
{
case 0x00:
{
-//logerror("CPU #0 PC %06x: warning - port %04x write %04x\n",cpu_get_pc(&space->device()),port_sel,data);
+//logerror("CPU #0 PC %06x: warning - port %04x write %04x\n",cpu_get_pc(&space.device()),port_sel,data);
- state->m_rotate_ctrl[state->m_port_sel] = data;
+ m_rotate_ctrl[m_port_sel] = data;
return;
}
case 0x01:
{
- state->m_port_sel = data & 0x7;
+ m_port_sel = data & 0x7;
}
}
}
@@ -534,15 +530,15 @@ static WRITE16_HANDLER( rotate_port_w )
#define UNKNOWN_PORT_TAG "UNKNOWN"
#define FAKE_PORT_TAG "FAKE"
-static READ16_HANDLER( wgp_adinput_r )
+READ16_MEMBER(wgp_state::wgp_adinput_r)
{
int steer = 0x40;
- int fake = input_port_read_safe(space->machine(), FAKE_PORT_TAG, 0x00);
+ int fake = input_port_read_safe(machine(), FAKE_PORT_TAG, 0x00);
if (!(fake & 0x10)) /* Analogue steer (the real control method) */
{
/* Reduce span to 0x80 */
- steer = (input_port_read_safe(space->machine(), STEER_PORT_TAG, 0x00) * 0x80) / 0x100;
+ steer = (input_port_read_safe(machine(), STEER_PORT_TAG, 0x00) * 0x80) / 0x100;
}
else /* Digital steer */
{
@@ -587,21 +583,21 @@ static READ16_HANDLER( wgp_adinput_r )
}
case 0x05:
- return input_port_read_safe(space->machine(), UNKNOWN_PORT_TAG, 0x00); /* unknown */
+ return input_port_read_safe(machine(), UNKNOWN_PORT_TAG, 0x00); /* unknown */
}
-logerror("CPU #0 PC %06x: warning - read unmapped a/d input offset %06x\n",cpu_get_pc(&space->device()),offset);
+logerror("CPU #0 PC %06x: warning - read unmapped a/d input offset %06x\n",cpu_get_pc(&space.device()),offset);
return 0xff;
}
-static WRITE16_HANDLER( wgp_adinput_w )
+WRITE16_MEMBER(wgp_state::wgp_adinput_w)
{
/* Each write invites a new interrupt as soon as the
hardware has got the next a/d conversion ready. We set a token
delay of 10000 cycles although our inputs are always ready. */
- space->machine().scheduler().timer_set(downcast<cpu_device *>(&space->device())->cycles_to_attotime(10000), FUNC(wgp_interrupt6));
+ machine().scheduler().timer_set(downcast<cpu_device *>(&space.device())->cycles_to_attotime(10000), FUNC(wgp_interrupt6));
}
@@ -615,29 +611,26 @@ static void reset_sound_region( running_machine &machine ) /* assumes Z80 sandwi
memory_set_bank(machine, "bank10", state->m_banknum);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(wgp_state::sound_bankswitch_w)
{
- wgp_state *state = space->machine().driver_data<wgp_state>();
- state->m_banknum = data & 7;
- reset_sound_region(space->machine());
+ m_banknum = data & 7;
+ reset_sound_region(machine());
}
-static WRITE16_HANDLER( wgp_sound_w )
+WRITE16_MEMBER(wgp_state::wgp_sound_w)
{
- wgp_state *state = space->machine().driver_data<wgp_state>();
if (offset == 0)
- tc0140syt_port_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(state->m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
}
-static READ16_HANDLER( wgp_sound_r )
+READ16_MEMBER(wgp_state::wgp_sound_r)
{
- wgp_state *state = space->machine().driver_data<wgp_state>();
if (offset == 1)
- return ((tc0140syt_comm_r(state->m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
else
return 0;
}
@@ -652,8 +645,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wgp_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main CPUA ram */
AM_RANGE(0x140000, 0x143fff) AM_RAM AM_BASE_SIZE(m_sharedram, m_sharedram_size)
AM_RANGE(0x180000, 0x18000f) AM_DEVREADWRITE8_LEGACY("tc0220ioc", tc0220ioc_r, tc0220ioc_w, 0xff00)
- AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE_LEGACY(cpua_ctrl_w)
- AM_RANGE(0x200000, 0x20000f) AM_READWRITE_LEGACY(wgp_adinput_r,wgp_adinput_w)
+ AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(cpua_ctrl_w)
+ AM_RANGE(0x200000, 0x20000f) AM_READWRITE(wgp_adinput_r,wgp_adinput_w)
AM_RANGE(0x300000, 0x30ffff) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_word_r, tc0100scn_word_w) /* tilemaps */
AM_RANGE(0x320000, 0x32000f) AM_DEVREADWRITE_LEGACY("tc0100scn", tc0100scn_ctrl_word_r, tc0100scn_ctrl_word_w)
AM_RANGE(0x400000, 0x40bfff) AM_RAM AM_BASE_SIZE(m_spritemap, m_spritemap_size) /* sprite tilemaps */
@@ -662,18 +655,18 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wgp_state )
AM_RANGE(0x500000, 0x501fff) AM_RAM /* unknown/unused */
AM_RANGE(0x502000, 0x517fff) AM_READWRITE_LEGACY(wgp_pivram_word_r, wgp_pivram_word_w) AM_BASE(m_pivram) /* piv tilemaps */
AM_RANGE(0x520000, 0x52001f) AM_READWRITE_LEGACY(wgp_piv_ctrl_word_r, wgp_piv_ctrl_word_w) AM_BASE(m_piv_ctrlram)
- AM_RANGE(0x600000, 0x600003) AM_WRITE_LEGACY(rotate_port_w) /* rotation control ? */
+ AM_RANGE(0x600000, 0x600003) AM_WRITE(rotate_port_w) /* rotation control ? */
AM_RANGE(0x700000, 0x701fff) AM_RAM_WRITE_LEGACY(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE_GENERIC(paletteram)
ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 16 /* LAN areas not mapped... */, wgp_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x103fff) AM_RAM
- AM_RANGE(0x140000, 0x143fff) AM_READWRITE_LEGACY(sharedram_r,sharedram_w)
- AM_RANGE(0x200000, 0x200003) AM_READWRITE_LEGACY(wgp_sound_r,wgp_sound_w)
+ AM_RANGE(0x140000, 0x143fff) AM_READWRITE(sharedram_r,sharedram_w)
+ AM_RANGE(0x200000, 0x200003) AM_READWRITE(wgp_sound_r,wgp_sound_w)
// AM_RANGE(0x380000, 0x383fff) AM_READONLY // LAN RAM
// AM_RANGE(0x380000, 0x383fff) AM_WRITEONLY // LAN RAM
- AM_RANGE(0x380000, 0x380001) AM_READ_LEGACY(lan_status_r) // ??
+ AM_RANGE(0x380000, 0x380001) AM_READ(lan_status_r) // ??
// a lan input area is read somewhere above the status
// (make the status return 0 and log)...
ADDRESS_MAP_END
@@ -692,7 +685,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, wgp_state )
AM_RANGE(0xea00, 0xea00) AM_READNOP
AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c
index 3389c1593d6..059e87e39dd 100644
--- a/src/mame/drivers/wiping.c
+++ b/src/mame/drivers/wiping.c
@@ -40,35 +40,33 @@ dip: 6.7 7.7
/* input ports are rotated 90 degrees */
-static READ8_HANDLER( ports_r )
+READ8_MEMBER(wiping_state::ports_r)
{
int i,res;
static const char *const portnames[] = { "P1", "P2", "IN2", "IN3", "IN4", "IN5", "SYSTEM", "DSW" };
res = 0;
for (i = 0; i < 8; i++)
- res |= ((input_port_read(space->machine(), portnames[i]) >> offset) & 1) << i;
+ res |= ((input_port_read(machine(), portnames[i]) >> offset) & 1) << i;
return res;
}
-static WRITE8_HANDLER( subcpu_reset_w )
+WRITE8_MEMBER(wiping_state::subcpu_reset_w)
{
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( main_irq_mask_w )
+WRITE8_MEMBER(wiping_state::main_irq_mask_w)
{
- wiping_state *state = space->machine().driver_data<wiping_state>();
- state->m_main_irq_mask = data & 1;
+ m_main_irq_mask = data & 1;
}
-static WRITE8_HANDLER( sound_irq_mask_w )
+WRITE8_MEMBER(wiping_state::sound_irq_mask_w)
{
- wiping_state *state = space->machine().driver_data<wiping_state>();
- state->m_sound_irq_mask = data & 1;
+ m_sound_irq_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiping_state )
@@ -79,10 +77,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiping_state )
AM_RANGE(0x8000, 0x8bff) AM_RAM
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0xa000, 0xa000) AM_WRITE_LEGACY(main_irq_mask_w)
+ AM_RANGE(0xa000, 0xa000) AM_WRITE(main_irq_mask_w)
AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(wiping_flipscreen_w)
- AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(subcpu_reset_w)
- AM_RANGE(0xa800, 0xa807) AM_READ_LEGACY(ports_r)
+ AM_RANGE(0xa003, 0xa003) AM_WRITE(subcpu_reset_w)
+ AM_RANGE(0xa800, 0xa807) AM_READ(ports_r)
AM_RANGE(0xb000, 0xb7ff) AM_RAM
AM_RANGE(0xb800, 0xb800) AM_WRITE_LEGACY(watchdog_reset_w)
ADDRESS_MAP_END
@@ -92,7 +90,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wiping_state )
AM_RANGE(0x4000, 0x7fff) AM_DEVWRITE_LEGACY("wiping", wiping_sound_w)
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("share2")
- AM_RANGE(0xa001, 0xa001) AM_WRITE_LEGACY(sound_irq_mask_w)
+ AM_RANGE(0xa001, 0xa001) AM_WRITE(sound_irq_mask_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index 8ed7be8c8aa..1372c0c82cf 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -172,10 +172,9 @@ Stephh's notes (based on the games Z80 code and some tests) :
#define STINGER_BOOM_EN2 NODE_04
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(wiz_state::sound_command_w)
{
- wiz_state *state = space->machine().driver_data<wiz_state>();
- device_t *discrete = space->machine().device("discrete");
+ device_t *discrete = machine().device("discrete");
switch (offset)
{
@@ -186,47 +185,45 @@ static WRITE8_HANDLER( sound_command_w )
// explosion sound trigger(analog?)
case 0x08:
- discrete_sound_w(discrete, STINGER_BOOM_EN1, state->m_dsc1);
- discrete_sound_w(discrete, STINGER_BOOM_EN2, state->m_dsc1^=1);
+ discrete_sound_w(discrete, STINGER_BOOM_EN1, m_dsc1);
+ discrete_sound_w(discrete, STINGER_BOOM_EN2, m_dsc1^=1);
break;
// player shot sound trigger(analog?)
case 0x0a:
- discrete_sound_w(discrete, STINGER_SHOT_EN1, state->m_dsc0);
- discrete_sound_w(discrete, STINGER_SHOT_EN2, state->m_dsc0^=1);
+ discrete_sound_w(discrete, STINGER_SHOT_EN1, m_dsc0);
+ discrete_sound_w(discrete, STINGER_SHOT_EN2, m_dsc0^=1);
break;
}
}
-static READ8_HANDLER( wiz_protection_r )
+READ8_MEMBER(wiz_state::wiz_protection_r)
{
- wiz_state *state = space->machine().driver_data<wiz_state>();
- switch (state->m_colorram2[0])
+ switch (m_colorram2[0])
{
case 0x35: return 0x25; /* FIX: sudden player death + free play afterwards */
case 0x8f: return 0x1f; /* FIX: early boss appearance with corrupt graphics */
case 0xa0: return 0x00; /* FIX: executing junk code after defeating the boss */
}
- return state->m_colorram2[0];
+ return m_colorram2[0];
}
-static WRITE8_HANDLER( wiz_coin_counter_w )
+WRITE8_MEMBER(wiz_state::wiz_coin_counter_w)
{
- coin_counter_w(space->machine(), offset,data);
+ coin_counter_w(machine(), offset,data);
}
-static WRITE8_HANDLER( wiz_main_nmi_mask_w )
+WRITE8_MEMBER(wiz_state::wiz_main_nmi_mask_w)
{
- wiz_state *state = space->machine().driver_data<wiz_state>();
- state->m_main_nmi_mask = data & 1;
+ m_main_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_RAM
- AM_RANGE(0xc800, 0xc801) AM_WRITE_LEGACY(wiz_coin_counter_w)
+ AM_RANGE(0xc800, 0xc801) AM_WRITE(wiz_coin_counter_w)
AM_RANGE(0xd000, 0xd3ff) AM_BASE(m_videoram2) /* Fallthrough */
AM_RANGE(0xd400, 0xd7ff) AM_BASE(m_colorram2)
AM_RANGE(0xd800, 0xd83f) AM_BASE(m_attributesram2)
@@ -239,7 +236,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0xe000, 0xe85f) AM_RAM
AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW0")
AM_RANGE(0xf000, 0xf000) AM_RAM AM_BASE(m_sprite_bank)
- AM_RANGE(0xf001, 0xf001) AM_WRITE_LEGACY(wiz_main_nmi_mask_w)
+ AM_RANGE(0xf001, 0xf001) AM_WRITE(wiz_main_nmi_mask_w)
AM_RANGE(0xf002, 0xf003) AM_WRITE_LEGACY(wiz_palettebank_w)
AM_RANGE(0xf004, 0xf005) AM_WRITE_LEGACY(wiz_char_bank_select_w)
AM_RANGE(0xf006, 0xf006) AM_WRITE_LEGACY(wiz_flipx_w)
@@ -249,15 +246,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN0")
AM_RANGE(0xf018, 0xf018) AM_READ_PORT("IN1")
AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(watchdog_reset_r)
- AM_RANGE(0xf800, 0xf80f) AM_WRITE_LEGACY(sound_command_w) /* sound registers */
+ AM_RANGE(0xf800, 0xf80f) AM_WRITE(sound_command_w) /* sound registers */
AM_RANGE(0xf818, 0xf818) AM_WRITE_LEGACY(wiz_bgcolor_w)
ADDRESS_MAP_END
-static WRITE8_HANDLER( wiz_sound_nmi_mask_w )
+WRITE8_MEMBER(wiz_state::wiz_sound_nmi_mask_w)
{
- wiz_state *state = space->machine().driver_data<wiz_state>();
- state->m_sound_nmi_mask = data & 1;
+ m_sound_nmi_mask = data & 1;
}
@@ -265,20 +261,20 @@ static WRITE8_HANDLER( wiz_sound_nmi_mask_w )
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
- AM_RANGE(0x3000, 0x3000) AM_READWRITE_LEGACY(soundlatch_r,wiz_sound_nmi_mask_w) /* Stinger/Scion */
+ AM_RANGE(0x3000, 0x3000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(wiz_sound_nmi_mask_w) /* Stinger/Scion */
AM_RANGE(0x4000, 0x4001) AM_DEVWRITE_LEGACY("8910.3", ay8910_address_data_w)
AM_RANGE(0x5000, 0x5001) AM_DEVWRITE_LEGACY("8910.1", ay8910_address_data_w)
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE_LEGACY("8910.2", ay8910_address_data_w) /* Wiz only */
- AM_RANGE(0x7000, 0x7000) AM_READWRITE_LEGACY(soundlatch_r,wiz_sound_nmi_mask_w) /* Wiz */
+ AM_RANGE(0x7000, 0x7000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(wiz_sound_nmi_mask_w) /* Wiz */
ADDRESS_MAP_END
static ADDRESS_MAP_START( stinger_sound_map, AS_PROGRAM, 8, wiz_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x23ff) AM_RAM
- AM_RANGE(0x3000, 0x3000) AM_READWRITE_LEGACY(soundlatch_r,wiz_sound_nmi_mask_w) /* Stinger/Scion */
+ AM_RANGE(0x3000, 0x3000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(wiz_sound_nmi_mask_w) /* Stinger/Scion */
AM_RANGE(0x5000, 0x5001) AM_DEVWRITE_LEGACY("8910.1", ay8910_address_data_w)
AM_RANGE(0x6000, 0x6001) AM_DEVWRITE_LEGACY("8910.2", ay8910_address_data_w) /* Wiz only */
- AM_RANGE(0x7000, 0x7000) AM_READWRITE_LEGACY(soundlatch_r,wiz_sound_nmi_mask_w) /* Wiz */
+ AM_RANGE(0x7000, 0x7000) AM_READ_LEGACY(soundlatch_r) AM_WRITE(wiz_sound_nmi_mask_w) /* Wiz */
ADDRESS_MAP_END
@@ -1116,7 +1112,8 @@ static DRIVER_INIT( scion )
static DRIVER_INIT( wiz )
{
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_read_handler(0xd400, 0xd400, FUNC(wiz_protection_r));
+ wiz_state *state = machine.driver_data<wiz_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0xd400, 0xd400, read8_delegate(FUNC(wiz_state::wiz_protection_r),state));
}
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index a11f2aaf580..e3267d21dc1 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -37,10 +37,9 @@ static CUSTOM_INPUT( wolfpack_dial_r )
}
-static READ8_HANDLER( wolfpack_misc_r )
+READ8_MEMBER(wolfpack_state::wolfpack_misc_r)
{
- wolfpack_state *state = space->machine().driver_data<wolfpack_state>();
- device_t *device = space->machine().device("speech");
+ device_t *device = machine().device("speech");
UINT8 val = 0;
/* BIT0 => SPEECH BUSY */
@@ -55,26 +54,26 @@ static READ8_HANDLER( wolfpack_misc_r )
if (!s14001a_bsy_r(device))
val |= 0x01;
- if (!state->m_collision)
+ if (!m_collision)
val |= 0x10;
- if (space->machine().primary_screen->vpos() >= 240)
+ if (machine().primary_screen->vpos() >= 240)
val |= 0x80;
return val;
}
-static WRITE8_HANDLER( wolfpack_high_explo_w ) { }
-static WRITE8_HANDLER( wolfpack_sonar_ping_w ) {}
-static WRITE8_HANDLER( wolfpack_sirlat_w ) {}
-static WRITE8_HANDLER( wolfpack_pt_sound_w ) {}
-static WRITE8_HANDLER( wolfpack_launch_torpedo_w ) {}
-static WRITE8_HANDLER( wolfpack_low_explo_w ) {}
-static WRITE8_HANDLER( wolfpack_screw_cont_w ) {}
-static WRITE8_HANDLER( wolfpack_lamp_flash_w ) {}
-static WRITE8_HANDLER( wolfpack_warning_light_w ) {}
-static WRITE8_HANDLER( wolfpack_audamp_w ) {}
+WRITE8_MEMBER(wolfpack_state::wolfpack_high_explo_w){ }
+WRITE8_MEMBER(wolfpack_state::wolfpack_sonar_ping_w){}
+WRITE8_MEMBER(wolfpack_state::wolfpack_sirlat_w){}
+WRITE8_MEMBER(wolfpack_state::wolfpack_pt_sound_w){}
+WRITE8_MEMBER(wolfpack_state::wolfpack_launch_torpedo_w){}
+WRITE8_MEMBER(wolfpack_state::wolfpack_low_explo_w){}
+WRITE8_MEMBER(wolfpack_state::wolfpack_screw_cont_w){}
+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 )
{
@@ -90,22 +89,21 @@ static WRITE8_DEVICE_HANDLER( wolfpack_start_speech_w )
}
-static WRITE8_HANDLER( wolfpack_attract_w )
+WRITE8_MEMBER(wolfpack_state::wolfpack_attract_w)
{
- coin_lockout_global_w(space->machine(), !(data & 1));
+ coin_lockout_global_w(machine(), !(data & 1));
}
-static WRITE8_HANDLER( wolfpack_credit_w )
+WRITE8_MEMBER(wolfpack_state::wolfpack_credit_w)
{
- set_led_status(space->machine(), 0, !(data & 1));
+ set_led_status(machine(), 0, !(data & 1));
}
-static WRITE8_HANDLER( wolfpack_coldetres_w )
+WRITE8_MEMBER(wolfpack_state::wolfpack_coldetres_w)
{
- wolfpack_state *state = space->machine().driver_data<wolfpack_state>();
- state->m_collision = 0;
+ m_collision = 0;
}
@@ -113,28 +111,28 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, wolfpack_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_MIRROR(0x100)
AM_RANGE(0x1000, 0x1000) AM_READ_PORT("INPUTS")
AM_RANGE(0x1000, 0x10ff) AM_WRITEONLY AM_BASE(m_alpha_num_ram)
- AM_RANGE(0x2000, 0x2000) AM_READ_LEGACY(wolfpack_misc_r)
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(wolfpack_high_explo_w)
- AM_RANGE(0x2001, 0x2001) AM_WRITE_LEGACY(wolfpack_sonar_ping_w)
- AM_RANGE(0x2002, 0x2002) AM_WRITE_LEGACY(wolfpack_sirlat_w)
- AM_RANGE(0x2003, 0x2003) AM_WRITE_LEGACY(wolfpack_pt_sound_w)
+ AM_RANGE(0x2000, 0x2000) AM_READ(wolfpack_misc_r)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(wolfpack_high_explo_w)
+ AM_RANGE(0x2001, 0x2001) AM_WRITE(wolfpack_sonar_ping_w)
+ 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(0x2005, 0x2005) AM_WRITE_LEGACY(wolfpack_launch_torpedo_w)
- AM_RANGE(0x2006, 0x2006) AM_WRITE_LEGACY(wolfpack_low_explo_w)
- AM_RANGE(0x2007, 0x2007) AM_WRITE_LEGACY(wolfpack_screw_cont_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)
AM_RANGE(0x2008, 0x2008) AM_WRITE_LEGACY(wolfpack_video_invert_w)
AM_RANGE(0x2009, 0x2009) AM_WRITE_LEGACY(wolfpack_ship_reflect_w)
- AM_RANGE(0x200a, 0x200a) AM_WRITE_LEGACY(wolfpack_lamp_flash_w)
- AM_RANGE(0x200c, 0x200c) AM_WRITE_LEGACY(wolfpack_credit_w)
- AM_RANGE(0x200d, 0x200d) AM_WRITE_LEGACY(wolfpack_attract_w)
+ AM_RANGE(0x200a, 0x200a) AM_WRITE(wolfpack_lamp_flash_w)
+ AM_RANGE(0x200c, 0x200c) AM_WRITE(wolfpack_credit_w)
+ AM_RANGE(0x200d, 0x200d) AM_WRITE(wolfpack_attract_w)
AM_RANGE(0x200e, 0x200e) AM_WRITE_LEGACY(wolfpack_pt_pos_select_w)
- AM_RANGE(0x200f, 0x200f) AM_WRITE_LEGACY(wolfpack_warning_light_w)
+ AM_RANGE(0x200f, 0x200f) AM_WRITE(wolfpack_warning_light_w)
AM_RANGE(0x3000, 0x3000) AM_READ_PORT("DSW")
- AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(wolfpack_audamp_w)
+ AM_RANGE(0x3000, 0x3000) AM_WRITE(wolfpack_audamp_w)
AM_RANGE(0x3001, 0x3001) AM_WRITE_LEGACY(wolfpack_pt_horz_w)
AM_RANGE(0x3003, 0x3003) AM_WRITE_LEGACY(wolfpack_pt_pic_w)
AM_RANGE(0x3004, 0x3004) AM_DEVWRITE_LEGACY("speech", wolfpack_word_w)
- AM_RANGE(0x3007, 0x3007) AM_WRITE_LEGACY(wolfpack_coldetres_w)
+ AM_RANGE(0x3007, 0x3007) AM_WRITE(wolfpack_coldetres_w)
AM_RANGE(0x4000, 0x4000) AM_WRITE_LEGACY(wolfpack_ship_h_w)
AM_RANGE(0x4001, 0x4001) AM_WRITE_LEGACY(wolfpack_torpedo_pic_w)
AM_RANGE(0x4002, 0x4002) AM_WRITE_LEGACY(wolfpack_ship_size_w)
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index fee2ee966c4..1b6ea0cce56 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -122,18 +122,16 @@ static ADDRESS_MAP_START( wrally_map, AS_PROGRAM, 16, wrally_state )
AM_RANGE(0xfec000, 0xfeffff) AM_RAM AM_BASE(m_shareram) /* Work RAM (shared with DS5002FP) */
ADDRESS_MAP_END
-static READ8_HANDLER( dallas_share_r )
+READ8_MEMBER(wrally_state::dallas_share_r)
{
- wrally_state *state = space->machine().driver_data<wrally_state>();
- UINT8 *shareram = (UINT8 *)state->m_shareram;
+ UINT8 *shareram = (UINT8 *)m_shareram;
return shareram[BYTE_XOR_LE(offset) ^ 1];
}
-static WRITE8_HANDLER( dallas_share_w )
+WRITE8_MEMBER(wrally_state::dallas_share_w)
{
- wrally_state *state = space->machine().driver_data<wrally_state>();
- UINT8 *shareram = (UINT8 *)state->m_shareram;
+ UINT8 *shareram = (UINT8 *)m_shareram;
shareram[BYTE_XOR_LE(offset) ^ 1] = data;
}
@@ -143,7 +141,7 @@ static ADDRESS_MAP_START( dallas_rom, AS_PROGRAM, 8, wrally_state )
ADDRESS_MAP_END
static ADDRESS_MAP_START( dallas_ram, AS_IO, 8, wrally_state )
- AM_RANGE(0x0000, 0xffff) AM_READWRITE_LEGACY(dallas_share_r, dallas_share_w) AM_MASK(0x3fff) /* Shared RAM with the main CPU */
+ AM_RANGE(0x0000, 0xffff) AM_READWRITE(dallas_share_r, dallas_share_w) AM_MASK(0x3fff) /* Shared RAM with the main CPU */
ADDRESS_MAP_END
/* DS5002FP configuration */
diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c
index c4ccc00305d..ddd6734060c 100644
--- a/src/mame/drivers/wwfsstar.c
+++ b/src/mame/drivers/wwfsstar.c
@@ -148,10 +148,10 @@ Notes:
#define CPU_CLOCK MASTER_CLOCK / 2
#define PIXEL_CLOCK MASTER_CLOCK / 4
-static WRITE16_HANDLER( wwfsstar_irqack_w );
-static WRITE16_HANDLER( wwfsstar_flipscreen_w );
-static WRITE16_HANDLER ( wwfsstar_soundwrite );
-static WRITE16_HANDLER ( wwfsstar_scrollwrite );
+
+
+
+
/*******************************************************************************
Memory Maps
@@ -165,15 +165,15 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfsstar_state )
AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_WRITE_LEGACY(wwfsstar_bg0_videoram_w) AM_BASE(m_bg0_videoram) /* BG0 Ram */
AM_RANGE(0x100000, 0x1003ff) AM_RAM AM_BASE(m_spriteram) /* SPR Ram */
AM_RANGE(0x140000, 0x140fff) AM_WRITE_LEGACY(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x180000, 0x180003) AM_WRITE_LEGACY(wwfsstar_irqack_w)
+ AM_RANGE(0x180000, 0x180003) AM_WRITE(wwfsstar_irqack_w)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSW1")
AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW2")
AM_RANGE(0x180004, 0x180005) AM_READ_PORT("P1")
- AM_RANGE(0x180004, 0x180007) AM_WRITE_LEGACY(wwfsstar_scrollwrite)
+ AM_RANGE(0x180004, 0x180007) AM_WRITE(wwfsstar_scrollwrite)
AM_RANGE(0x180006, 0x180007) AM_READ_PORT("P2")
AM_RANGE(0x180008, 0x180009) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x180008, 0x180009) AM_WRITE_LEGACY(wwfsstar_soundwrite)
- AM_RANGE(0x18000a, 0x18000b) AM_WRITE_LEGACY(wwfsstar_flipscreen_w)
+ AM_RANGE(0x180008, 0x180009) AM_WRITE(wwfsstar_soundwrite)
+ AM_RANGE(0x18000a, 0x18000b) AM_WRITE(wwfsstar_flipscreen_w)
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
ADDRESS_MAP_END
@@ -192,39 +192,38 @@ ADDRESS_MAP_END
as used by the above memory map
*******************************************************************************/
-static WRITE16_HANDLER ( wwfsstar_scrollwrite )
+WRITE16_MEMBER(wwfsstar_state::wwfsstar_scrollwrite)
{
- wwfsstar_state *state = space->machine().driver_data<wwfsstar_state>();
switch (offset)
{
case 0x00:
- state->m_scrollx = data;
+ m_scrollx = data;
break;
case 0x01:
- state->m_scrolly = data;
+ m_scrolly = data;
break;
}
}
-static WRITE16_HANDLER ( wwfsstar_soundwrite )
+WRITE16_MEMBER(wwfsstar_state::wwfsstar_soundwrite)
{
soundlatch_w(space, 1, data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
}
-static WRITE16_HANDLER( wwfsstar_flipscreen_w )
+WRITE16_MEMBER(wwfsstar_state::wwfsstar_flipscreen_w)
{
- flip_screen_set(space->machine(), data & 1);
+ flip_screen_set(machine(), data & 1);
}
-static WRITE16_HANDLER( wwfsstar_irqack_w )
+WRITE16_MEMBER(wwfsstar_state::wwfsstar_irqack_w)
{
if (offset == 0)
- cputag_set_input_line(space->machine(), "maincpu", 6, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, CLEAR_LINE);
else
- cputag_set_input_line(space->machine(), "maincpu", 5, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 5, CLEAR_LINE);
}
/*
diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c
index 9308bad60ff..1422f2b8dd1 100644
--- a/src/mame/drivers/wwfwfest.c
+++ b/src/mame/drivers/wwfwfest.c
@@ -49,14 +49,12 @@
#define PIXEL_CLOCK MASTER_CLOCK / 4
/*- in this file -*/
-static READ16_HANDLER( wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r );
-static WRITE16_HANDLER( wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w );
-static WRITE16_HANDLER( wwfwfest_1410_write ); /* priority write */
-static WRITE16_HANDLER( wwfwfest_scroll_write ); /* scrolling write */
+
+
static WRITE8_DEVICE_HANDLER( oki_bankswitch_w );
-static WRITE16_HANDLER ( wwfwfest_soundwrite );
-static WRITE16_HANDLER ( wwfwfest_flipscreen_w );
-static WRITE16_HANDLER ( wwfwfest_irq_ack_w );
+
+
+
/*******************************************************************************
Memory Maps
@@ -72,16 +70,16 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfwfest_state )
AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram") /* SPR Ram */
AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE_LEGACY(wwfwfest_bg0_videoram_w) AM_BASE(m_bg0_videoram) /* BG0 Ram - 4 bytes per tile */
AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE_LEGACY(wwfwfest_bg1_videoram_w) AM_BASE(m_bg1_videoram) /* BG1 Ram - 2 bytes per tile */
- AM_RANGE(0x100000, 0x100007) AM_WRITE_LEGACY(wwfwfest_scroll_write)
- AM_RANGE(0x10000a, 0x10000b) AM_WRITE_LEGACY(wwfwfest_flipscreen_w)
- AM_RANGE(0x140000, 0x140003) AM_WRITE_LEGACY(wwfwfest_irq_ack_w)
- AM_RANGE(0x14000c, 0x14000d) AM_WRITE_LEGACY(wwfwfest_soundwrite)
- AM_RANGE(0x140010, 0x140011) AM_WRITE_LEGACY(wwfwfest_1410_write)
+ AM_RANGE(0x100000, 0x100007) AM_WRITE(wwfwfest_scroll_write)
+ AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w)
+ AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w)
+ AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite)
+ AM_RANGE(0x140010, 0x140011) AM_WRITE(wwfwfest_1410_write)
AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1")
AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2")
AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3")
AM_RANGE(0x140026, 0x140027) AM_READ_PORT("P4")
- AM_RANGE(0x180000, 0x18ffff) AM_READWRITE_LEGACY(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r,wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
+ AM_RANGE(0x180000, 0x18ffff) AM_READWRITE(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r,wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
ADDRESS_MAP_END
@@ -100,29 +98,29 @@ ADDRESS_MAP_END
as used by the above memory map
*******************************************************************************/
-static WRITE16_HANDLER( wwfwfest_irq_ack_w )
+WRITE16_MEMBER(wwfwfest_state::wwfwfest_irq_ack_w)
{
if (offset == 0)
- cputag_set_input_line(space->machine(), "maincpu", 3, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 3, CLEAR_LINE);
else
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
}
-static WRITE16_HANDLER( wwfwfest_flipscreen_w )
+WRITE16_MEMBER(wwfwfest_state::wwfwfest_flipscreen_w)
{
- flip_screen_set(space->machine(), data&1);
+ flip_screen_set(machine(), data&1);
}
/*- Palette Reads/Writes -*/
-static READ16_HANDLER( wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r )
+READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r)
{
offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
- return space->machine().generic.paletteram.u16[offset];
+ return machine().generic.paletteram.u16[offset];
}
-static WRITE16_HANDLER( wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w )
+WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w)
{
offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
paletteram16_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask);
@@ -131,29 +129,27 @@ static WRITE16_HANDLER( wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w )
/*- Priority Control -*/
-static WRITE16_HANDLER( wwfwfest_1410_write )
+WRITE16_MEMBER(wwfwfest_state::wwfwfest_1410_write)
{
- wwfwfest_state *state = space->machine().driver_data<wwfwfest_state>();
- state->m_pri = data;
+ m_pri = data;
}
/*- Scroll Control -*/
-static WRITE16_HANDLER( wwfwfest_scroll_write )
+WRITE16_MEMBER(wwfwfest_state::wwfwfest_scroll_write)
{
- wwfwfest_state *state = space->machine().driver_data<wwfwfest_state>();
switch (offset) {
case 0x00:
- state->m_bg0_scrollx = data;
+ m_bg0_scrollx = data;
break;
case 0x01:
- state->m_bg0_scrolly = data;
+ m_bg0_scrolly = data;
break;
case 0x02:
- state->m_bg1_scrollx = data;
+ m_bg1_scrollx = data;
break;
case 0x03:
- state->m_bg1_scrolly = data;
+ m_bg1_scrolly = data;
break;
}
}
@@ -165,10 +161,10 @@ static WRITE8_DEVICE_HANDLER( oki_bankswitch_w )
downcast<okim6295_device *>(device)->set_bank_base((data & 1) * 0x40000);
}
-static WRITE16_HANDLER ( wwfwfest_soundwrite )
+WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite)
{
soundlatch_w(space,1,data & 0xff);
- cputag_set_input_line(space->machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
+ cputag_set_input_line(machine(), "audiocpu", INPUT_LINE_NMI, PULSE_LINE );
}
/*******************************************************************************
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index dfeb170b1b7..eb4d4450d6a 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -210,68 +210,65 @@ static TIMER_DEVICE_CALLBACK( xain_scanline )
}
}
-static WRITE8_HANDLER( xainCPUA_bankswitch_w )
+WRITE8_MEMBER(xain_state::xainCPUA_bankswitch_w)
{
- xain_state *state = space->machine().driver_data<xain_state>();
- state->m_pri = data & 0x7;
- memory_set_bank(space->machine(), "bank1", (data >> 3) & 1);
+ m_pri = data & 0x7;
+ memory_set_bank(machine(), "bank1", (data >> 3) & 1);
}
-static WRITE8_HANDLER( xainCPUB_bankswitch_w )
+WRITE8_MEMBER(xain_state::xainCPUB_bankswitch_w)
{
- memory_set_bank(space->machine(), "bank2", data & 1);
+ memory_set_bank(machine(), "bank2", data & 1);
}
-static WRITE8_HANDLER( xain_sound_command_w )
+WRITE8_MEMBER(xain_state::xain_sound_command_w)
{
soundlatch_w(space,offset,data);
- cputag_set_input_line(space->machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
+ cputag_set_input_line(machine(), "audiocpu", M6809_IRQ_LINE, HOLD_LINE);
}
-static WRITE8_HANDLER( xain_main_irq_w )
+WRITE8_MEMBER(xain_state::xain_main_irq_w)
{
switch (offset)
{
case 0: /* 0x3a09 - NMI clear */
- cputag_set_input_line(space->machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", INPUT_LINE_NMI, CLEAR_LINE);
break;
case 1: /* 0x3a0a - FIRQ clear */
- cputag_set_input_line(space->machine(), "maincpu", M6809_FIRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_FIRQ_LINE, CLEAR_LINE);
break;
case 2: /* 0x3a0b - IRQ clear */
- cputag_set_input_line(space->machine(), "maincpu", M6809_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_IRQ_LINE, CLEAR_LINE);
break;
case 3: /* 0x3a0c - IRQB assert */
- cputag_set_input_line(space->machine(), "sub", M6809_IRQ_LINE, ASSERT_LINE);
+ cputag_set_input_line(machine(), "sub", M6809_IRQ_LINE, ASSERT_LINE);
break;
}
}
-static WRITE8_HANDLER( xain_irqA_assert_w )
+WRITE8_MEMBER(xain_state::xain_irqA_assert_w)
{
- cputag_set_input_line(space->machine(), "maincpu", M6809_IRQ_LINE, ASSERT_LINE);
+ cputag_set_input_line(machine(), "maincpu", M6809_IRQ_LINE, ASSERT_LINE);
}
-static WRITE8_HANDLER( xain_irqB_clear_w )
+WRITE8_MEMBER(xain_state::xain_irqB_clear_w)
{
- cputag_set_input_line(space->machine(), "sub", M6809_IRQ_LINE, CLEAR_LINE);
+ cputag_set_input_line(machine(), "sub", M6809_IRQ_LINE, CLEAR_LINE);
}
-static READ8_HANDLER( xain_68705_r )
+READ8_MEMBER(xain_state::xain_68705_r)
{
- xain_state *state = space->machine().driver_data<xain_state>();
- state->m_mcu_ready = 1;
- return state->m_from_mcu;
+ m_mcu_ready = 1;
+ return m_from_mcu;
}
-static WRITE8_HANDLER( xain_68705_w )
+WRITE8_MEMBER(xain_state::xain_68705_w)
{
- xain_state *state = space->machine().driver_data<xain_state>();
- state->m_from_main = data;
- state->m_mcu_accept = 0;
+ m_from_main = data;
+ m_mcu_accept = 0;
- if (space->machine().device("mcu") != NULL)
- cputag_set_input_line(space->machine(), "mcu", 0, ASSERT_LINE);
+ if (machine().device("mcu") != NULL)
+ cputag_set_input_line(machine(), "mcu", 0, ASSERT_LINE);
}
static CUSTOM_INPUT( xain_vblank_r )
@@ -411,16 +408,16 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, xain_state )
AM_RANGE(0x3a02, 0x3a02) AM_READ_PORT("DSW0")
AM_RANGE(0x3a02, 0x3a03) AM_WRITE_LEGACY(xain_scrollyP1_w)
AM_RANGE(0x3a03, 0x3a03) AM_READ_PORT("DSW1")
- AM_RANGE(0x3a04, 0x3a04) AM_READ_LEGACY(xain_68705_r)
+ AM_RANGE(0x3a04, 0x3a04) AM_READ(xain_68705_r)
AM_RANGE(0x3a04, 0x3a05) AM_WRITE_LEGACY(xain_scrollxP0_w)
AM_RANGE(0x3a05, 0x3a05) AM_READ_PORT("VBLANK")
AM_RANGE(0x3a06, 0x3a06) AM_READ_LEGACY(mcu_comm_reset_r)
AM_RANGE(0x3a06, 0x3a07) AM_WRITE_LEGACY(xain_scrollyP0_w)
- AM_RANGE(0x3a08, 0x3a08) AM_WRITE_LEGACY(xain_sound_command_w)
- AM_RANGE(0x3a09, 0x3a0c) AM_WRITE_LEGACY(xain_main_irq_w)
+ AM_RANGE(0x3a08, 0x3a08) AM_WRITE(xain_sound_command_w)
+ AM_RANGE(0x3a09, 0x3a0c) AM_WRITE(xain_main_irq_w)
AM_RANGE(0x3a0d, 0x3a0d) AM_WRITE_LEGACY(xain_flipscreen_w)
- AM_RANGE(0x3a0e, 0x3a0e) AM_WRITE_LEGACY(xain_68705_w)
- AM_RANGE(0x3a0f, 0x3a0f) AM_WRITE_LEGACY(xainCPUA_bankswitch_w)
+ AM_RANGE(0x3a0e, 0x3a0e) AM_WRITE(xain_68705_w)
+ AM_RANGE(0x3a0f, 0x3a0f) AM_WRITE(xainCPUA_bankswitch_w)
AM_RANGE(0x3c00, 0x3dff) AM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE_GENERIC(paletteram)
AM_RANGE(0x3e00, 0x3fff) AM_WRITE_LEGACY(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE_GENERIC(paletteram2)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
@@ -429,9 +426,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( cpu_map_B, AS_PROGRAM, 8, xain_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x2000, 0x2000) AM_WRITE_LEGACY(xain_irqA_assert_w)
- AM_RANGE(0x2800, 0x2800) AM_WRITE_LEGACY(xain_irqB_clear_w)
- AM_RANGE(0x3000, 0x3000) AM_WRITE_LEGACY(xainCPUB_bankswitch_w)
+ AM_RANGE(0x2000, 0x2000) AM_WRITE(xain_irqA_assert_w)
+ AM_RANGE(0x2800, 0x2800) AM_WRITE(xain_irqB_clear_w)
+ AM_RANGE(0x3000, 0x3000) AM_WRITE(xainCPUB_bankswitch_w)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index acd8ee79be5..9a155f6d670 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -89,29 +89,27 @@ static const eeprom_interface eeprom_intf =
/* the interface with the 053247 is weird. The chip can address only 0x1000 bytes */
/* of RAM, but they put 0x8000 there. The CPU can access them all. Address lines */
/* A1, A5 and A6 don't go to the 053247. */
-static READ16_HANDLER( K053247_scattered_word_r )
+READ16_MEMBER(xexex_state::K053247_scattered_word_r)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
if (offset & 0x0031)
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
else
{
offset = ((offset & 0x000e) >> 1) | ((offset & 0x3fc0) >> 3);
- return k053247_word_r(state->m_k053246, offset, mem_mask);
+ return k053247_word_r(m_k053246, offset, mem_mask);
}
}
-static WRITE16_HANDLER( K053247_scattered_word_w )
+WRITE16_MEMBER(xexex_state::K053247_scattered_word_w)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
if (offset & 0x0031)
- COMBINE_DATA(state->m_spriteram + offset);
+ COMBINE_DATA(m_spriteram + offset);
else
{
offset = ((offset & 0x000e) >> 1) | ((offset & 0x3fc0) >> 3);
- k053247_word_w(state->m_k053246, offset, data, mem_mask);
+ k053247_word_w(m_k053246, offset, data, mem_mask);
}
}
@@ -152,29 +150,26 @@ static void xexex_objdma( running_machine &machine, int limiter )
if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive);
}
-static READ16_HANDLER( spriteram_mirror_r )
+READ16_MEMBER(xexex_state::spriteram_mirror_r)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- return state->m_spriteram[offset];
+ return m_spriteram[offset];
}
-static WRITE16_HANDLER( spriteram_mirror_w )
+WRITE16_MEMBER(xexex_state::spriteram_mirror_w)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- COMBINE_DATA(state->m_spriteram + offset);
+ COMBINE_DATA(m_spriteram + offset);
}
-static READ16_HANDLER( xexex_waitskip_r )
+READ16_MEMBER(xexex_state::xexex_waitskip_r)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- if (cpu_get_pc(&space->device()) == 0x1158)
+ if (cpu_get_pc(&space.device()) == 0x1158)
{
- device_spin_until_trigger(&space->device(), state->m_resume_trigger);
- state->m_suspension_active = 1;
+ device_spin_until_trigger(&space.device(), m_resume_trigger);
+ m_suspension_active = 1;
}
- return state->m_workram[0x14/2];
+ return m_workram[0x14/2];
}
@@ -197,28 +192,25 @@ static void parse_control2( running_machine &machine )
state->m_cur_alpha = !(state->m_cur_control2 & 0x200);
}
-static READ16_HANDLER( control2_r )
+READ16_MEMBER(xexex_state::control2_r)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- return state->m_cur_control2;
+ return m_cur_control2;
}
-static WRITE16_HANDLER( control2_w )
+WRITE16_MEMBER(xexex_state::control2_w)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- COMBINE_DATA(&state->m_cur_control2);
- parse_control2(space->machine());
+ COMBINE_DATA(&m_cur_control2);
+ parse_control2(machine());
}
-static WRITE16_HANDLER( sound_cmd1_w )
+WRITE16_MEMBER(xexex_state::sound_cmd1_w)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
if(ACCESSING_BITS_0_7)
{
// anyone knows why 0x1a keeps lurking the sound queue in the world version???
- if (state->m_strip_0x1a)
+ if (m_strip_0x1a)
if (soundlatch2_r(space, 0) == 1 && data == 0x1a)
return;
@@ -226,19 +218,18 @@ static WRITE16_HANDLER( sound_cmd1_w )
}
}
-static WRITE16_HANDLER( sound_cmd2_w )
+WRITE16_MEMBER(xexex_state::sound_cmd2_w)
{
if (ACCESSING_BITS_0_7)
soundlatch2_w(space, 0, data & 0xff);
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(xexex_state::sound_irq_w)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(xexex_state::sound_status_r)
{
return soundlatch3_r(space, 0);
}
@@ -249,11 +240,10 @@ static void reset_sound_region(running_machine &machine)
memory_set_bank(machine, "bank2", state->m_cur_sound_region & 0x07);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(xexex_state::sound_bankswitch_w)
{
- xexex_state *state = space->machine().driver_data<xexex_state>();
- state->m_cur_sound_region = data & 7;
- reset_sound_region(space->machine());
+ m_cur_sound_region = data & 7;
+ reset_sound_region(machine());
}
static void ym_set_mixing(device_t *device, double left, double right)
@@ -327,11 +317,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xexex_state )
AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE(m_workram) // work RAM
#if XE_SKIPIDLE
- AM_RANGE(0x080014, 0x080015) AM_READ_LEGACY(xexex_waitskip_r) // helps sound CPU by giving back control as early as possible
+ AM_RANGE(0x080014, 0x080015) AM_READ(xexex_waitskip_r) // helps sound CPU by giving back control as early as possible
#endif
AM_RANGE(0x090000, 0x097fff) AM_RAM AM_BASE(m_spriteram) // K053247 sprite RAM
- AM_RANGE(0x098000, 0x09ffff) AM_READWRITE_LEGACY(spriteram_mirror_r, spriteram_mirror_w) // K053247 sprite RAM mirror read
+ AM_RANGE(0x098000, 0x09ffff) AM_READWRITE(spriteram_mirror_r, spriteram_mirror_w) // K053247 sprite RAM mirror read
AM_RANGE(0x0c0000, 0x0c003f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w) // VACSET (K054157)
AM_RANGE(0x0c2000, 0x0c2007) AM_DEVWRITE_LEGACY("k053246", k053246_word_w) // OBJSET1
AM_RANGE(0x0c4000, 0x0c4001) AM_DEVREAD_LEGACY("k053246", k053246_word_r) // Passthrough to sprite roms
@@ -340,17 +330,17 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xexex_state )
AM_RANGE(0x0ca000, 0x0ca01f) AM_DEVWRITE_LEGACY("k054338", k054338_word_w) // CLTC
AM_RANGE(0x0cc000, 0x0cc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w) // priority encoder
// AM_RANGE(0x0d0000, 0x0d001f) AM_DEVREADWRITE8_LEGACY("k053252", k053252_r,k053252_w,0x00ff) // CCU
- AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE_LEGACY(sound_cmd1_w)
- AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE_LEGACY(sound_cmd2_w)
- AM_RANGE(0x0d6014, 0x0d6015) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
+ AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
AM_RANGE(0x0d6000, 0x0d601f) AM_RAM // sound regs fall through
AM_RANGE(0x0d8000, 0x0d8007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w) // VSCCS regs
AM_RANGE(0x0da000, 0x0da001) AM_READ_PORT("P1")
AM_RANGE(0x0da002, 0x0da003) AM_READ_PORT("P2")
AM_RANGE(0x0dc000, 0x0dc001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0dc002, 0x0dc003) AM_READ_PORT("EEPROM")
- AM_RANGE(0x0de000, 0x0de001) AM_READWRITE_LEGACY(control2_r, control2_w)
+ AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r, control2_w)
AM_RANGE(0x100000, 0x17ffff) AM_ROM
AM_RANGE(0x180000, 0x181fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w)
AM_RANGE(0x182000, 0x183fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w)
@@ -378,7 +368,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, xexex_state )
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(soundlatch3_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
AM_RANGE(0xf003, 0xf003) AM_READ_LEGACY(soundlatch2_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index 51efc5f2db7..1b1fffdd4b5 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -41,37 +41,36 @@ static const eeprom_interface eeprom_intf =
"0100110000000" /* unlock command */
};
-static WRITE16_HANDLER( eeprom_w )
+WRITE16_MEMBER(xmen_state::eeprom_w)
{
- xmen_state *state = space->machine().driver_data<xmen_state>();
- logerror("%06x: write %04x to 108000\n",cpu_get_pc(&space->device()),data);
+ logerror("%06x: write %04x to 108000\n",cpu_get_pc(&space.device()),data);
if (ACCESSING_BITS_0_7)
{
/* bit 0 = coin counter */
- coin_counter_w(space->machine(), 0, data & 0x01);
+ coin_counter_w(machine(), 0, data & 0x01);
/* bit 2 is data */
/* bit 3 is clock (active high) */
/* bit 4 is cs (active low) */
/* bit 5 is enabled in IRQ3, disabled in IRQ5 (sprite DMA start?) */
- input_port_write(space->machine(), "EEPROMOUT", data, 0xff);
+ input_port_write(machine(), "EEPROMOUT", data, 0xff);
}
if (ACCESSING_BITS_8_15)
{
/* bit 8 = enable sprite ROM reading */
- k053246_set_objcha_line(state->m_k053246, (data & 0x0100) ? ASSERT_LINE : CLEAR_LINE);
+ k053246_set_objcha_line(m_k053246, (data & 0x0100) ? ASSERT_LINE : CLEAR_LINE);
/* bit 9 = enable char ROM reading through the video RAM */
- k052109_set_rmrd_line(state->m_k052109, (data & 0x0200) ? ASSERT_LINE : CLEAR_LINE);
+ k052109_set_rmrd_line(m_k052109, (data & 0x0200) ? ASSERT_LINE : CLEAR_LINE);
}
}
-static READ16_HANDLER( sound_status_r )
+READ16_MEMBER(xmen_state::sound_status_r)
{
return soundlatch2_r(space, 0);
}
-static WRITE16_HANDLER( sound_cmd_w )
+WRITE16_MEMBER(xmen_state::sound_cmd_w)
{
if (ACCESSING_BITS_0_7)
{
@@ -80,20 +79,18 @@ static WRITE16_HANDLER( sound_cmd_w )
}
}
-static WRITE16_HANDLER( sound_irq_w )
+WRITE16_MEMBER(xmen_state::sound_irq_w)
{
- xmen_state *state = space->machine().driver_data<xmen_state>();
- device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
+ device_set_input_line(m_audiocpu, 0, HOLD_LINE);
}
-static WRITE16_HANDLER( xmen_18fa00_w )
+WRITE16_MEMBER(xmen_state::xmen_18fa00_w)
{
- xmen_state *state = space->machine().driver_data<xmen_state>();
if(ACCESSING_BITS_0_7)
{
/* bit 2 is interrupt enable */
- state->m_vblank_irq_mask = data & 0x04;
+ m_vblank_irq_mask = data & 0x04;
}
}
@@ -103,11 +100,10 @@ static void sound_reset_bank( running_machine &machine )
memory_set_bank(machine, "bank4", state->m_sound_curbank & 0x07);
}
-static WRITE8_HANDLER( sound_bankswitch_w )
+WRITE8_MEMBER(xmen_state::sound_bankswitch_w)
{
- xmen_state *state = space->machine().driver_data<xmen_state>();
- state->m_sound_curbank = data;
- sound_reset_bank(space->machine());
+ m_sound_curbank = data;
+ sound_reset_bank(machine());
}
@@ -117,18 +113,18 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x100000, 0x100fff) AM_DEVREADWRITE_LEGACY("k053246", k053247_word_r, k053247_word_w)
AM_RANGE(0x101000, 0x101fff) AM_RAM
AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x108000, 0x108001) AM_WRITE_LEGACY(eeprom_w)
+ AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_DEVWRITE_LEGACY("k053246", k053246_word_w)
- AM_RANGE(0x10804c, 0x10804d) AM_WRITE_LEGACY(sound_cmd_w)
- AM_RANGE(0x10804e, 0x10804f) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x108054, 0x108055) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
+ AM_RANGE(0x10804e, 0x10804f) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x108054, 0x108055) AM_READ(sound_status_r)
AM_RANGE(0x108060, 0x10807f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x10a000, 0x10a001) AM_READ_PORT("P2_P4") AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x10a002, 0x10a003) AM_READ_PORT("P1_P3")
AM_RANGE(0x10a004, 0x10a005) AM_READ_PORT("EEPROM")
AM_RANGE(0x10a00c, 0x10a00d) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
AM_RANGE(0x110000, 0x113fff) AM_RAM /* main RAM */
- AM_RANGE(0x18fa00, 0x18fa01) AM_WRITE_LEGACY(xmen_18fa00_w)
+ AM_RANGE(0x18fa00, 0x18fa01) AM_WRITE(xmen_18fa00_w)
AM_RANGE(0x18c000, 0x197fff) AM_DEVREADWRITE_LEGACY("k052109", k052109_lsb_r, k052109_lsb_w)
ADDRESS_MAP_END
@@ -140,7 +136,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, xmen_state )
AM_RANGE(0xe800, 0xe801) AM_MIRROR(0x0400) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
AM_RANGE(0xf000, 0xf000) AM_WRITE_LEGACY(soundlatch2_w)
AM_RANGE(0xf002, 0xf002) AM_READ_LEGACY(soundlatch_r)
- AM_RANGE(0xf800, 0xf800) AM_WRITE_LEGACY(sound_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
@@ -152,11 +148,11 @@ static ADDRESS_MAP_START( 6p_main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x102000, 0x102fff) AM_RAM AM_BASE(m_xmen6p_spriteramright) /* sprites (screen 2) */
AM_RANGE(0x103000, 0x103fff) AM_RAM /* 6p - a buffer? */
AM_RANGE(0x104000, 0x104fff) AM_RAM_WRITE_LEGACY(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE_GENERIC(paletteram)
- AM_RANGE(0x108000, 0x108001) AM_WRITE_LEGACY(eeprom_w)
+ AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_DEVWRITE_LEGACY("k053246", k053246_word_w) /* sprites */
- AM_RANGE(0x10804c, 0x10804d) AM_WRITE_LEGACY(sound_cmd_w)
- AM_RANGE(0x10804e, 0x10804f) AM_WRITE_LEGACY(sound_irq_w)
- AM_RANGE(0x108054, 0x108055) AM_READ_LEGACY(sound_status_r)
+ AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
+ AM_RANGE(0x10804e, 0x10804f) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x108054, 0x108055) AM_READ(sound_status_r)
AM_RANGE(0x108060, 0x10807f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)
AM_RANGE(0x10a000, 0x10a001) AM_READ_PORT("P2_P4") AM_WRITE_LEGACY(watchdog_reset16_w)
AM_RANGE(0x10a002, 0x10a003) AM_READ_PORT("P1_P3")
@@ -164,7 +160,7 @@ static ADDRESS_MAP_START( 6p_main_map, AS_PROGRAM, 16, xmen_state )
AM_RANGE(0x10a006, 0x10a007) AM_READ_PORT("P5_P6")
AM_RANGE(0x10a00c, 0x10a00d) AM_DEVREAD_LEGACY("k053246", k053246_word_r) /* sprites */
AM_RANGE(0x110000, 0x113fff) AM_RAM /* main RAM */
- AM_RANGE(0x18fa00, 0x18fa01) AM_WRITE_LEGACY(xmen_18fa00_w)
+ AM_RANGE(0x18fa00, 0x18fa01) AM_WRITE(xmen_18fa00_w)
/* AM_RANGE(0x18c000, 0x197fff) AM_DEVWRITE_LEGACY("k052109", k052109_lsb_w) AM_BASE(m_xmen6p_tilemapleft) */
AM_RANGE(0x18c000, 0x197fff) AM_RAM AM_BASE(m_xmen6p_tilemapleft) /* left tilemap (p1,p2,p3 counters) */
/*
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index a59984d1597..ca0a3137e28 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -65,14 +65,14 @@ static WRITE16_DEVICE_HANDLER( eeprom_data_w )
eeprom->write_bit(data & 0x01);
}
-static WRITE16_HANDLER( xorworld_irq2_ack_w )
+WRITE16_MEMBER(xorworld_state::xorworld_irq2_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 2, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 2, CLEAR_LINE);
}
-static WRITE16_HANDLER( xorworld_irq6_ack_w )
+WRITE16_MEMBER(xorworld_state::xorworld_irq6_ack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 6, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 6, CLEAR_LINE);
}
static ADDRESS_MAP_START( xorworld_map, AS_PROGRAM, 16, xorworld_state )
@@ -87,8 +87,8 @@ static ADDRESS_MAP_START( xorworld_map, AS_PROGRAM, 16, xorworld_state )
AM_RANGE(0xa0000c, 0xa0000d) AM_DEVWRITE_LEGACY("eeprom", eeprom_data_w)
AM_RANGE(0xffc000, 0xffc7ff) AM_RAM_WRITE_LEGACY(xorworld_videoram16_w) AM_BASE(m_videoram)
AM_RANGE(0xffc800, 0xffc87f) AM_RAM AM_BASE(m_spriteram)
- AM_RANGE(0xffc880, 0xffc881) AM_WRITE_LEGACY(xorworld_irq2_ack_w)
- AM_RANGE(0xffc882, 0xffc883) AM_WRITE_LEGACY(xorworld_irq6_ack_w)
+ AM_RANGE(0xffc880, 0xffc881) AM_WRITE(xorworld_irq2_ack_w)
+ AM_RANGE(0xffc882, 0xffc883) AM_WRITE(xorworld_irq6_ack_w)
AM_RANGE(0xffc884, 0xffffff) AM_RAM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index 1c5ec914a68..c55bcb1a9f8 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -14,9 +14,9 @@ XX Mission (c) 1986 UPL
#include "includes/xxmissio.h"
-static WRITE8_HANDLER( xxmissio_bank_sel_w )
+WRITE8_MEMBER(xxmissio_state::xxmissio_bank_sel_w)
{
- memory_set_bank(space->machine(), "bank1", data & 7);
+ memory_set_bank(machine(), "bank1", data & 7);
}
static CUSTOM_INPUT( xxmissio_status_r )
@@ -26,42 +26,40 @@ static CUSTOM_INPUT( xxmissio_status_r )
return (state->m_status & bit_mask) ? 1 : 0;
}
-static WRITE8_HANDLER ( xxmissio_status_m_w )
+WRITE8_MEMBER(xxmissio_state::xxmissio_status_m_w)
{
- xxmissio_state *state = space->machine().driver_data<xxmissio_state>();
switch (data)
{
case 0x00:
- state->m_status |= 0x20;
+ m_status |= 0x20;
break;
case 0x40:
- state->m_status &= ~0x08;
- cputag_set_input_line_and_vector(space->machine(), "sub", 0, HOLD_LINE, 0x10);
+ m_status &= ~0x08;
+ cputag_set_input_line_and_vector(machine(), "sub", 0, HOLD_LINE, 0x10);
break;
case 0x80:
- state->m_status |= 0x04;
+ m_status |= 0x04;
break;
}
}
-static WRITE8_HANDLER ( xxmissio_status_s_w )
+WRITE8_MEMBER(xxmissio_state::xxmissio_status_s_w)
{
- xxmissio_state *state = space->machine().driver_data<xxmissio_state>();
switch (data)
{
case 0x00:
- state->m_status |= 0x10;
+ m_status |= 0x10;
break;
case 0x40:
- state->m_status |= 0x08;
+ m_status |= 0x08;
break;
case 0x80:
- state->m_status &= ~0x04;
- cputag_set_input_line_and_vector(space->machine(), "maincpu", 0, HOLD_LINE, 0x10);
+ m_status &= ~0x04;
+ cputag_set_input_line_and_vector(machine(), "maincpu", 0, HOLD_LINE, 0x10);
break;
}
}
@@ -97,7 +95,7 @@ static ADDRESS_MAP_START( map1, AS_PROGRAM, 8, xxmissio_state )
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("P2")
AM_RANGE(0xa002, 0xa002) AM_READ_PORT("STATUS")
- AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(xxmissio_status_m_w)
+ AM_RANGE(0xa002, 0xa002) AM_WRITE(xxmissio_status_m_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(xxmissio_flipscreen_w)
AM_RANGE(0xc000, 0xc7ff) AM_SHARE("share1") AM_RAM AM_BASE(m_fgram)
@@ -117,12 +115,12 @@ static ADDRESS_MAP_START( map2, AS_PROGRAM, 8, xxmissio_state )
AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE_LEGACY("ym1", ym2203_r, ym2203_w)
AM_RANGE(0x8002, 0x8003) AM_DEVREADWRITE_LEGACY("ym2", ym2203_r, ym2203_w)
- AM_RANGE(0x8006, 0x8006) AM_WRITE_LEGACY(xxmissio_bank_sel_w)
+ AM_RANGE(0x8006, 0x8006) AM_WRITE(xxmissio_bank_sel_w)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
AM_RANGE(0xa001, 0xa001) AM_READ_PORT("P2")
AM_RANGE(0xa002, 0xa002) AM_READ_PORT("STATUS")
- AM_RANGE(0xa002, 0xa002) AM_WRITE_LEGACY(xxmissio_status_s_w)
+ AM_RANGE(0xa002, 0xa002) AM_WRITE(xxmissio_status_s_w)
AM_RANGE(0xa003, 0xa003) AM_WRITE_LEGACY(xxmissio_flipscreen_w)
AM_RANGE(0xc000, 0xc7ff) AM_SHARE("share1") AM_RAM
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index 5c46c87e13b..4f9b1abfab2 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -25,9 +25,9 @@ TODO:
#include "includes/xyonix.h"
-static WRITE8_HANDLER( xyonix_irqack_w )
+WRITE8_MEMBER(xyonix_state::xyonix_irqack_w)
{
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -72,64 +72,62 @@ static void handle_coins(running_machine &machine, int coin)
}
-static READ8_HANDLER ( xyonix_io_r )
+READ8_MEMBER(xyonix_state::xyonix_io_r)
{
- xyonix_state *state = space->machine().driver_data<xyonix_state>();
- int regPC = cpu_get_pc(&space->device());
+ int regPC = cpu_get_pc(&space.device());
if (regPC == 0x27ba)
return 0x88;
if (regPC == 0x27c2)
- return state->m_e0_data;
+ return m_e0_data;
if (regPC == 0x27c7)
{
int coin;
- switch (state->m_e0_data)
+ switch (m_e0_data)
{
case 0x81 :
- return input_port_read(space->machine(), "P1") & 0x7f;
+ return input_port_read(machine(), "P1") & 0x7f;
case 0x82 :
- return input_port_read(space->machine(), "P2") & 0x7f;
+ return input_port_read(machine(), "P2") & 0x7f;
case 0x91:
/* check coin inputs */
- coin = ((input_port_read(space->machine(), "P1") & 0x80) >> 7) | ((input_port_read(space->machine(), "P2") & 0x80) >> 6);
- if (coin ^ state->m_prev_coin && coin != 3)
+ coin = ((input_port_read(machine(), "P1") & 0x80) >> 7) | ((input_port_read(machine(), "P2") & 0x80) >> 6);
+ if (coin ^ m_prev_coin && coin != 3)
{
- if (state->m_credits < 9) handle_coins(space->machine(), coin);
+ if (m_credits < 9) handle_coins(machine(), coin);
}
- state->m_prev_coin = coin;
- return state->m_credits;
+ m_prev_coin = coin;
+ return m_credits;
case 0x92:
- return ((input_port_read(space->machine(), "P1") & 0x80) >> 7) | ((input_port_read(space->machine(), "P2") & 0x80) >> 6);
+ return ((input_port_read(machine(), "P1") & 0x80) >> 7) | ((input_port_read(machine(), "P2") & 0x80) >> 6);
case 0xe0: /* reset? */
- state->m_coins = 0;
- state->m_credits = 0;
+ m_coins = 0;
+ m_credits = 0;
return 0xff;
case 0xe1:
- state->m_credits--;
+ m_credits--;
return 0xff;
case 0xfe: /* Dip Switches 1 to 4 */
- return input_port_read(space->machine(), "DSW") & 0x0f;
+ return input_port_read(machine(), "DSW") & 0x0f;
case 0xff: /* Dip Switches 5 to 8 */
- return input_port_read(space->machine(), "DSW") >> 4;
+ return input_port_read(machine(), "DSW") >> 4;
}
}
- //logerror ("xyonix_port_e0_r - PC = %04x - port = %02x\n", regPC, state->m_e0_data);
- //popmessage("%02x",state->m_e0_data);
+ //logerror ("xyonix_port_e0_r - PC = %04x - port = %02x\n", regPC, m_e0_data);
+ //popmessage("%02x",m_e0_data);
return 0xff;
}
-static WRITE8_HANDLER ( xyonix_io_w )
+WRITE8_MEMBER(xyonix_state::xyonix_io_w)
{
- xyonix_state *state = space->machine().driver_data<xyonix_state>();
- //logerror ("xyonix_port_e0_w %02x - PC = %04x\n", data, cpu_get_pc(&space->device()));
- state->m_e0_data = data;
+ //logerror ("xyonix_port_e0_w %02x - PC = %04x\n", data, cpu_get_pc(&space.device()));
+ m_e0_data = data;
}
/* Mem / Port Maps ***********************************************************/
@@ -145,9 +143,9 @@ static ADDRESS_MAP_START( port_map, AS_IO, 8, xyonix_state )
AM_RANGE(0x20, 0x20) AM_READNOP AM_DEVWRITE_LEGACY("sn1", sn76496_w) /* SN76496 ready signal */
AM_RANGE(0x21, 0x21) AM_READNOP AM_DEVWRITE_LEGACY("sn2", sn76496_w)
AM_RANGE(0x40, 0x40) AM_WRITENOP /* NMI ack? */
- AM_RANGE(0x50, 0x50) AM_WRITE_LEGACY(xyonix_irqack_w)
+ AM_RANGE(0x50, 0x50) AM_WRITE(xyonix_irqack_w)
AM_RANGE(0x60, 0x61) AM_WRITENOP /* mc6845 */
- AM_RANGE(0xe0, 0xe0) AM_READWRITE_LEGACY(xyonix_io_r, xyonix_io_w)
+ AM_RANGE(0xe0, 0xe0) AM_READWRITE(xyonix_io_r, xyonix_io_w)
ADDRESS_MAP_END
/* Inputs Ports **************************************************************/
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index df05fb3b90e..abc5f930202 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -101,12 +101,12 @@ Stephh's notes (based on the games M68000 code and some tests) :
***************************************************************************/
-static WRITE16_HANDLER( yunsun16_sound_bank_w )
+WRITE16_MEMBER(yunsun16_state::yunsun16_sound_bank_w)
{
if (ACCESSING_BITS_0_7)
{
int bank = data & 3;
- UINT8 *dst = space->machine().region("oki")->base();
+ UINT8 *dst = machine().region("oki")->base();
UINT8 *src = dst + 0x80000 + 0x20000 * bank;
memcpy(dst + 0x20000, src, 0x20000);
}
@@ -126,7 +126,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, yunsun16_state )
AM_RANGE(0x80010c, 0x80010f) AM_RAM AM_BASE(m_scrollram_1) // Scrolling
AM_RANGE(0x800114, 0x800117) AM_RAM AM_BASE(m_scrollram_0) // Scrolling
AM_RANGE(0x800154, 0x800155) AM_RAM AM_BASE(m_priorityram) // Priority
- AM_RANGE(0x800180, 0x800181) AM_WRITE_LEGACY(yunsun16_sound_bank_w) // Sound
+ AM_RANGE(0x800180, 0x800181) AM_WRITE(yunsun16_sound_bank_w) // Sound
AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
AM_RANGE(0x8001fe, 0x8001ff) AM_WRITENOP // ? 0 (during int)
AM_RANGE(0x900000, 0x903fff) AM_RAM_WRITE_LEGACY(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // Palette
@@ -137,9 +137,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, yunsun16_state )
ADDRESS_MAP_END
-static WRITE16_HANDLER( magicbub_sound_command_w )
+WRITE16_MEMBER(yunsun16_state::magicbub_sound_command_w)
{
- yunsun16_state *state = space->machine().driver_data<yunsun16_state>();
if (ACCESSING_BITS_0_7)
{
/*
@@ -149,7 +148,7 @@ number 0 on each voice. That sample is 00000-00000.
if ((data & 0xff) != 0x3a)
{
soundlatch_w(space, 0, data & 0xff);
- device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
+ device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
}
}
}
@@ -157,7 +156,8 @@ number 0 on each voice. That sample is 00000-00000.
static DRIVER_INIT( magicbub )
{
// remove_mem_write16_handler (0, 0x800180, 0x800181 );
- machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x800188, 0x800189, FUNC(magicbub_sound_command_w));
+ yunsun16_state *state = machine.driver_data<yunsun16_state>();
+ machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x800188, 0x800189, write16_delegate(FUNC(yunsun16_state::magicbub_sound_command_w),state));
}
/***************************************************************************
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index 9e456dcdbe5..c08e55fd33a 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -44,16 +44,15 @@ To Do:
***************************************************************************/
-static WRITE8_HANDLER( yunsung8_bankswitch_w )
+WRITE8_MEMBER(yunsung8_state::yunsung8_bankswitch_w)
{
- yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
- state->m_layers_ctrl = data & 0x30; // Layers enable
+ m_layers_ctrl = data & 0x30; // Layers enable
- memory_set_bank(space->machine(), "bank1", data & 0x07);
+ memory_set_bank(machine(), "bank1", data & 0x07);
if (data & ~0x37)
- logerror("CPU #0 - PC %04X: Bank %02X\n", cpu_get_pc(&space->device()), data);
+ logerror("CPU #0 - PC %04X: Bank %02X\n", cpu_get_pc(&space.device()), data);
}
/*
@@ -66,7 +65,7 @@ static WRITE8_HANDLER( yunsung8_bankswitch_w )
*/
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, yunsung8_state )
- AM_RANGE(0x0001, 0x0001) AM_WRITE_LEGACY(yunsung8_bankswitch_w) // ROM Bank (again?)
+ AM_RANGE(0x0001, 0x0001) AM_WRITE(yunsung8_bankswitch_w) // ROM Bank (again?)
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") // Banked ROM
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xdfff) AM_READWRITE_LEGACY(yunsung8_videoram_r, yunsung8_videoram_w) // Video RAM (Banked)
@@ -77,7 +76,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( port_map, AS_IO, 8, yunsung8_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0x00) AM_READ_PORT("SYSTEM") AM_WRITE_LEGACY(yunsung8_videobank_w) // video RAM bank
- AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE_LEGACY(yunsung8_bankswitch_w) // ROM Bank + Layers Enable
+ AM_RANGE(0x01, 0x01) AM_READ_PORT("P1") AM_WRITE(yunsung8_bankswitch_w) // ROM Bank + Layers Enable
AM_RANGE(0x02, 0x02) AM_READ_PORT("P2") AM_WRITE_LEGACY(soundlatch_w) // To Sound CPU
AM_RANGE(0x03, 0x03) AM_READ_PORT("DSW1")
AM_RANGE(0x04, 0x04) AM_READ_PORT("DSW2")
@@ -105,12 +104,11 @@ static WRITE8_DEVICE_HANDLER( yunsung8_sound_bankswitch_w )
logerror("%s: Bank %02X\n", device->machine().describe_context(), data);
}
-static WRITE8_HANDLER( yunsung8_adpcm_w )
+WRITE8_MEMBER(yunsung8_state::yunsung8_adpcm_w)
{
- yunsung8_state *state = space->machine().driver_data<yunsung8_state>();
/* Swap the nibbles */
- state->m_adpcm = ((data & 0xf) << 4) | ((data >> 4) & 0xf);
+ m_adpcm = ((data & 0xf) << 4) | ((data >> 4) & 0xf);
}
@@ -119,7 +117,7 @@ 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(0xe400, 0xe400) AM_WRITE_LEGACY(yunsung8_adpcm_w)
+ 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
AM_RANGE(0xf800, 0xf800) AM_READ_LEGACY(soundlatch_r) // From Main CPU
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index db87df696d0..bc43a6c6eaa 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -15,14 +15,14 @@
#include "tinv2650.lh"
#include "includes/zac2650.h"
-static WRITE8_HANDLER( tinvader_sound_w );
+
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zac2650_state )
AM_RANGE(0x0000, 0x17ff) AM_ROM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE_LEGACY(tinvader_videoram_w) AM_BASE(m_videoram)
AM_RANGE(0x1c00, 0x1cff) AM_RAM
AM_RANGE(0x1d00, 0x1dff) AM_RAM
- AM_RANGE(0x1e80, 0x1e80) AM_READWRITE_LEGACY(tinvader_port_0_r, tinvader_sound_w)
+ AM_RANGE(0x1e80, 0x1e80) AM_READ_LEGACY(tinvader_port_0_r) AM_WRITE(tinvader_sound_w)
AM_RANGE(0x1e81, 0x1e81) AM_READ_PORT("1E81")
AM_RANGE(0x1e82, 0x1e82) AM_READ_PORT("1E82")
AM_RANGE(0x1e85, 0x1e85) AM_READ_PORT("1E85") /* Dodgem Only */
@@ -259,9 +259,9 @@ static MACHINE_CONFIG_START( tinvader, zac2650_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
-static WRITE8_HANDLER( tinvader_sound_w )
+WRITE8_MEMBER(zac2650_state::tinvader_sound_w)
{
- /* sounds are NOT the same as space invaders */
+ /* sounds are NOT the same as &space invaders */
logerror("Register %x = Data %d\n",data & 0xfe,data & 0x01);
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index 2aa3d0c63fe..569a2de5757 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -71,12 +71,11 @@ static WRITE8_DEVICE_HANDLER( zaccaria_dsw_sel_w )
}
}
-static READ8_HANDLER( zaccaria_dsw_r )
+READ8_MEMBER(zaccaria_state::zaccaria_dsw_r)
{
- zaccaria_state *state = space->machine().driver_data<zaccaria_state>();
static const char *const dswnames[] = { "IN0", "DSW0", "DSW1" };
- return input_port_read(space->machine(), dswnames[state->m_dsw]);
+ return input_port_read(machine(), dswnames[m_dsw]);
}
@@ -183,15 +182,15 @@ static WRITE8_DEVICE_HANDLER( zaccaria_port1b_w )
}
-static WRITE8_HANDLER( sound_command_w )
+WRITE8_MEMBER(zaccaria_state::sound_command_w)
{
soundlatch_w(space, 0, data);
- cputag_set_input_line(space->machine(), "audio2", 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
+ cputag_set_input_line(machine(), "audio2", 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
}
-static WRITE8_HANDLER( sound1_command_w )
+WRITE8_MEMBER(zaccaria_state::sound1_command_w)
{
- pia6821_device *pia0 = space->machine().device<pia6821_device>("pia0");
+ pia6821_device *pia0 = machine().device<pia6821_device>("pia0");
pia0->ca1_w(data & 0x80);
soundlatch2_w(space, 0, data);
}
@@ -204,7 +203,7 @@ static WRITE8_DEVICE_HANDLER( mc1408_data_w )
GAME_EXTERN(monymony);
-static READ8_HANDLER( zaccaria_prot1_r )
+READ8_MEMBER(zaccaria_state::zaccaria_prot1_r)
{
switch (offset)
{
@@ -215,7 +214,7 @@ static READ8_HANDLER( zaccaria_prot1_r )
return 0x40; /* Jack Rabbit */
case 6:
- if (&space->machine().system() == &GAME_NAME(monymony))
+ if (&machine().system() == &GAME_NAME(monymony))
return 0x70; /* Money Money */
return 0xa0; /* Jack Rabbit */
@@ -224,12 +223,12 @@ static READ8_HANDLER( zaccaria_prot1_r )
}
}
-static READ8_HANDLER( zaccaria_prot2_r )
+READ8_MEMBER(zaccaria_state::zaccaria_prot2_r)
{
switch (offset)
{
case 0:
- return input_port_read(space->machine(), "COINS"); /* bits 4 and 5 must be 0 in Jack Rabbit */
+ return input_port_read(machine(), "COINS"); /* bits 4 and 5 must be 0 in Jack Rabbit */
case 2:
return 0x10; /* Jack Rabbit */
@@ -246,22 +245,21 @@ static READ8_HANDLER( zaccaria_prot2_r )
}
-static WRITE8_HANDLER( coin_w )
+WRITE8_MEMBER(zaccaria_state::coin_w)
{
- coin_counter_w(space->machine(), 0,data & 1);
+ coin_counter_w(machine(), 0,data & 1);
}
-static WRITE8_HANDLER( nmi_mask_w )
+WRITE8_MEMBER(zaccaria_state::nmi_mask_w)
{
- zaccaria_state *state = space->machine().driver_data<zaccaria_state>();
- state->m_nmi_mask = data & 1;
+ m_nmi_mask = data & 1;
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zaccaria_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x63ff) AM_READONLY
- AM_RANGE(0x6400, 0x6407) AM_READ_LEGACY(zaccaria_prot1_r)
+ AM_RANGE(0x6400, 0x6407) AM_READ(zaccaria_prot1_r)
AM_RANGE(0x6000, 0x67ff) AM_WRITE_LEGACY(zaccaria_videoram_w) AM_BASE(m_videoram) /* 6400-67ff is 4 bits wide */
AM_RANGE(0x6800, 0x683f) AM_WRITE_LEGACY(zaccaria_attributes_w) AM_BASE(m_attributesram)
AM_RANGE(0x6840, 0x685f) AM_RAM AM_BASE(m_spriteram)
@@ -269,10 +267,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, zaccaria_state )
AM_RANGE(0x6c00, 0x6c00) AM_WRITE_LEGACY(zaccaria_flip_screen_x_w)
AM_RANGE(0x6c01, 0x6c01) AM_WRITE_LEGACY(zaccaria_flip_screen_y_w)
AM_RANGE(0x6c02, 0x6c02) AM_WRITENOP /* sound reset */
- AM_RANGE(0x6c06, 0x6c06) AM_WRITE_LEGACY(coin_w)
- AM_RANGE(0x6c07, 0x6c07) AM_WRITE_LEGACY(nmi_mask_w)
- AM_RANGE(0x6c00, 0x6c07) AM_READ_LEGACY(zaccaria_prot2_r)
- AM_RANGE(0x6e00, 0x6e00) AM_READWRITE_LEGACY(zaccaria_dsw_r, sound_command_w)
+ AM_RANGE(0x6c06, 0x6c06) AM_WRITE(coin_w)
+ AM_RANGE(0x6c07, 0x6c07) AM_WRITE(nmi_mask_w)
+ AM_RANGE(0x6c00, 0x6c07) AM_READ(zaccaria_prot2_r)
+ AM_RANGE(0x6e00, 0x6e00) AM_READWRITE(zaccaria_dsw_r, sound_command_w)
AM_RANGE(0x7000, 0x77ff) AM_RAM
AM_RANGE(0x7800, 0x7803) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w)
AM_RANGE(0x7c00, 0x7c00) AM_READ_LEGACY(watchdog_reset_r)
@@ -331,7 +329,7 @@ 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(0x1400, 0x1400) AM_WRITE_LEGACY(sound1_command_w) AM_MIRROR(0xC3FF)
+ AM_RANGE(0x1400, 0x1400) AM_WRITE(sound1_command_w) AM_MIRROR(0xC3FF)
AM_RANGE(0x1800, 0x1800) AM_READ_LEGACY(soundlatch_r) AM_MIRROR(0xC3FF)
AM_RANGE(0x2000, 0x2fff) AM_ROM AM_MIRROR(0x8000) // rom 8 with A12 low
AM_RANGE(0x3000, 0x3fff) AM_ROM AM_MIRROR(0x8000) // rom 7 with A12 low
diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c
index d726ae5e236..a9032041c9a 100644
--- a/src/mame/drivers/zaxxon.c
+++ b/src/mame/drivers/zaxxon.c
@@ -306,13 +306,11 @@ static INTERRUPT_GEN( vblank_int )
}
-static WRITE8_HANDLER( int_enable_w )
+WRITE8_MEMBER(zaxxon_state::int_enable_w)
{
- zaxxon_state *state = space->machine().driver_data<zaxxon_state>();
-
- state->m_int_enabled = data & 1;
- if (!state->m_int_enabled)
- cputag_set_input_line(space->machine(), "maincpu", 0, CLEAR_LINE);
+ m_int_enabled = data & 1;
+ if (!m_int_enabled)
+ cputag_set_input_line(machine(), "maincpu", 0, CLEAR_LINE);
}
@@ -341,15 +339,14 @@ static MACHINE_START( zaxxon )
*
*************************************/
-static READ8_HANDLER( razmataz_counter_r )
+READ8_MEMBER(zaxxon_state::razmataz_counter_r)
{
- zaxxon_state *state = space->machine().driver_data<zaxxon_state>();
/* this behavior is really unknown; however, the code is using this */
/* counter as a sort of timeout when talking to the sound board */
/* it needs to be increasing at a reasonable rate but not too fast */
/* or else the sound will mess up */
- return state->m_razmataz_counter++ >> 8;
+ return m_razmataz_counter++ >> 8;
}
@@ -386,21 +383,20 @@ static CUSTOM_INPUT( razmataz_dial_r )
*
*************************************/
-static WRITE8_HANDLER( zaxxon_coin_counter_w )
+WRITE8_MEMBER(zaxxon_state::zaxxon_coin_counter_w)
{
- coin_counter_w(space->machine(), offset, data & 0x01);
+ coin_counter_w(machine(), offset, data & 0x01);
}
// There is no external coin lockout circuitry; instead, the pcb simply latches
// the coin input, which then needs to be explicitly cleared by the game.
-static WRITE8_HANDLER( zaxxon_coin_enable_w )
+WRITE8_MEMBER(zaxxon_state::zaxxon_coin_enable_w)
{
- zaxxon_state *state = space->machine().driver_data<zaxxon_state>();
- state->m_coin_enable[offset] = data & 1;
- if (!state->m_coin_enable[offset])
- state->m_coin_status[offset] = 0;
+ m_coin_enable[offset] = data & 1;
+ if (!m_coin_enable[offset])
+ m_coin_status[offset] = 0;
}
@@ -441,11 +437,11 @@ static ADDRESS_MAP_START( zaxxon_map, AS_PROGRAM, 8, zaxxon_state )
AM_RANGE(0xc002, 0xc002) AM_MIRROR(0x18fc) AM_READ_PORT("DSW02")
AM_RANGE(0xc003, 0xc003) AM_MIRROR(0x18fc) AM_READ_PORT("DSW03")
AM_RANGE(0xc100, 0xc100) AM_MIRROR(0x18ff) AM_READ_PORT("SW100")
- AM_RANGE(0xc000, 0xc002) AM_MIRROR(0x18f8) AM_WRITE_LEGACY(zaxxon_coin_enable_w)
- AM_RANGE(0xc003, 0xc004) AM_MIRROR(0x18f8) AM_WRITE_LEGACY(zaxxon_coin_counter_w)
+ AM_RANGE(0xc000, 0xc002) AM_MIRROR(0x18f8) AM_WRITE(zaxxon_coin_enable_w)
+ AM_RANGE(0xc003, 0xc004) AM_MIRROR(0x18f8) AM_WRITE(zaxxon_coin_counter_w)
AM_RANGE(0xc006, 0xc006) AM_MIRROR(0x18f8) AM_WRITE_LEGACY(zaxxon_flipscreen_w)
AM_RANGE(0xe03c, 0xe03f) AM_MIRROR(0x1f00) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w)
- AM_RANGE(0xe0f0, 0xe0f0) AM_MIRROR(0x1f00) AM_WRITE_LEGACY(int_enable_w)
+ AM_RANGE(0xe0f0, 0xe0f0) AM_MIRROR(0x1f00) AM_WRITE(int_enable_w)
AM_RANGE(0xe0f1, 0xe0f1) AM_MIRROR(0x1f00) AM_WRITE_LEGACY(zaxxon_fg_color_w)
AM_RANGE(0xe0f8, 0xe0f9) AM_MIRROR(0x1f00) AM_WRITE_LEGACY(zaxxon_bg_position_w)
AM_RANGE(0xe0fa, 0xe0fa) AM_MIRROR(0x1f00) AM_WRITE_LEGACY(zaxxon_bg_color_w)
@@ -464,11 +460,11 @@ static ADDRESS_MAP_START( congo_map, AS_PROGRAM, 8, zaxxon_state )
AM_RANGE(0xc002, 0xc002) AM_MIRROR(0x1fc4) AM_READ_PORT("DSW02")
AM_RANGE(0xc003, 0xc003) AM_MIRROR(0x1fc4) AM_READ_PORT("DSW03")
AM_RANGE(0xc008, 0xc008) AM_MIRROR(0x1fc7) AM_READ_PORT("SW100")
- AM_RANGE(0xc018, 0xc01a) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(zaxxon_coin_enable_w)
- AM_RANGE(0xc01b, 0xc01c) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(zaxxon_coin_counter_w)
+ AM_RANGE(0xc018, 0xc01a) AM_MIRROR(0x1fc0) AM_WRITE(zaxxon_coin_enable_w)
+ AM_RANGE(0xc01b, 0xc01c) AM_MIRROR(0x1fc0) AM_WRITE(zaxxon_coin_counter_w)
AM_RANGE(0xc01d, 0xc01d) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(zaxxon_bg_enable_w)
AM_RANGE(0xc01e, 0xc01e) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(zaxxon_flipscreen_w)
- AM_RANGE(0xc01f, 0xc01f) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(int_enable_w)
+ AM_RANGE(0xc01f, 0xc01f) AM_MIRROR(0x1fc0) AM_WRITE(int_enable_w)
AM_RANGE(0xc021, 0xc021) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(zaxxon_fg_color_w)
AM_RANGE(0xc023, 0xc023) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(zaxxon_bg_color_w)
AM_RANGE(0xc026, 0xc026) AM_MIRROR(0x1fc0) AM_WRITE_LEGACY(congo_fg_bank_w)
@@ -1509,7 +1505,7 @@ static DRIVER_INIT( razmataz )
pgmspace->install_read_port(0xc00c, 0xc00c, 0, 0x18f3, "SW0C");
/* unknown behavior expected here */
- pgmspace->install_legacy_read_handler(0xc80a, 0xc80a, FUNC(razmataz_counter_r));
+ pgmspace->install_read_handler(0xc80a, 0xc80a, read8_delegate(FUNC(zaxxon_state::razmataz_counter_r),state));
/* connect the universal sound board */
pgmspace->install_legacy_readwrite_handler(*usbsnd, 0xe03c, 0xe03c, 0, 0x1f00, FUNC(sega_usb_status_r), FUNC(sega_usb_data_w));
diff --git a/src/mame/includes/1942.h b/src/mame/includes/1942.h
index 00719b76f31..9b2ba5d45cb 100644
--- a/src/mame/includes/1942.h
+++ b/src/mame/includes/1942.h
@@ -24,6 +24,7 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(c1942_bankswitch_w);
};
diff --git a/src/mame/includes/1943.h b/src/mame/includes/1943.h
index 8fed18558ff..ab75f48bcad 100644
--- a/src/mame/includes/1943.h
+++ b/src/mame/includes/1943.h
@@ -27,6 +27,8 @@ public:
int m_obj_on;
int m_bg1_on;
int m_bg2_on;
+ DECLARE_READ8_MEMBER(c1943_protection_r);
+ DECLARE_READ8_MEMBER(_1943b_c007_r);
};
diff --git a/src/mame/includes/20pacgal.h b/src/mame/includes/20pacgal.h
index 08af2a3a083..3682a534454 100644
--- a/src/mame/includes/20pacgal.h
+++ b/src/mame/includes/20pacgal.h
@@ -37,6 +37,14 @@ public:
UINT8 m_sprite_pal_base;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(irqack_w);
+ DECLARE_WRITE8_MEMBER(timer_pulse_w);
+ DECLARE_WRITE8_MEMBER(_20pacgal_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(ram_bank_select_w);
+ DECLARE_WRITE8_MEMBER(ram_48000_w);
+ DECLARE_WRITE8_MEMBER(sprite_gfx_w);
+ DECLARE_WRITE8_MEMBER(sprite_ram_w);
+ DECLARE_WRITE8_MEMBER(sprite_lookup_w);
};
diff --git a/src/mame/includes/40love.h b/src/mame/includes/40love.h
index 9de19425b2a..ba4e8a465e1 100644
--- a/src/mame/includes/40love.h
+++ b/src/mame/includes/40love.h
@@ -53,6 +53,21 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(fortyl_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(bank_select_w);
+ DECLARE_WRITE8_MEMBER(pix1_w);
+ DECLARE_WRITE8_MEMBER(pix2_w);
+ DECLARE_READ8_MEMBER(pix1_r);
+ DECLARE_READ8_MEMBER(pix2_r);
+ DECLARE_WRITE8_MEMBER(undoukai_mcu_w);
+ DECLARE_READ8_MEMBER(undoukai_mcu_r);
+ DECLARE_READ8_MEMBER(undoukai_mcu_status_r);
+ DECLARE_READ8_MEMBER(from_snd_r);
+ DECLARE_READ8_MEMBER(snd_flag_r);
+ DECLARE_WRITE8_MEMBER(to_main_w);
};
diff --git a/src/mame/includes/4enraya.h b/src/mame/includes/4enraya.h
index 937b974f73d..669a9130a52 100644
--- a/src/mame/includes/4enraya.h
+++ b/src/mame/includes/4enraya.h
@@ -23,6 +23,9 @@ public:
int m_videoram_size;
int m_snd_latch_bit;
+ DECLARE_WRITE8_MEMBER(sound_data_w);
+ DECLARE_READ8_MEMBER(fenraya_custom_map_r);
+ DECLARE_WRITE8_MEMBER(fenraya_custom_map_w);
};
diff --git a/src/mame/includes/88games.h b/src/mame/includes/88games.h
index a0fbe82470d..deff0e1ecac 100644
--- a/src/mame/includes/88games.h
+++ b/src/mame/includes/88games.h
@@ -33,6 +33,14 @@ public:
device_t *m_k051316;
device_t *m_upd_1;
device_t *m_upd_2;
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_WRITE8_MEMBER(k88games_5f84_w);
+ DECLARE_WRITE8_MEMBER(k88games_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(speech_control_w);
+ DECLARE_WRITE8_MEMBER(speech_msg_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
diff --git a/src/mame/includes/actfancr.h b/src/mame/includes/actfancr.h
index ec812854645..1b24e91d401 100644
--- a/src/mame/includes/actfancr.h
+++ b/src/mame/includes/actfancr.h
@@ -23,6 +23,10 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(triothep_control_select_w);
+ DECLARE_READ8_MEMBER(triothep_control_r);
+ DECLARE_WRITE8_MEMBER(actfancr_sound_w);
+ DECLARE_WRITE8_MEMBER(actfancr_buffer_spriteram_w);
};
diff --git a/src/mame/includes/aeroboto.h b/src/mame/includes/aeroboto.h
index 8622d4b258e..9aa63892b25 100644
--- a/src/mame/includes/aeroboto.h
+++ b/src/mame/includes/aeroboto.h
@@ -38,6 +38,10 @@ public:
/* misc */
int m_count;
int m_disable_irq;
+ DECLARE_READ8_MEMBER(aeroboto_201_r);
+ DECLARE_READ8_MEMBER(aeroboto_irq_ack_r);
+ DECLARE_READ8_MEMBER(aeroboto_2973_r);
+ DECLARE_WRITE8_MEMBER(aeroboto_1a2_w);
};
diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h
index e44e55b51e7..561851f786f 100644
--- a/src/mame/includes/aerofgt.h
+++ b/src/mame/includes/aerofgt.h
@@ -39,6 +39,13 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE16_MEMBER(turbofrc_sound_command_w);
+ DECLARE_WRITE16_MEMBER(aerfboot_soundlatch_w);
+ DECLARE_READ16_MEMBER(pending_command_r);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
+ DECLARE_WRITE8_MEMBER(aerofgt_sh_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(aerfboot_okim6295_banking_w);
};
diff --git a/src/mame/includes/airbustr.h b/src/mame/includes/airbustr.h
index 2486292cb4f..60013078310 100644
--- a/src/mame/includes/airbustr.h
+++ b/src/mame/includes/airbustr.h
@@ -37,6 +37,18 @@ public:
device_t *m_slave;
device_t *m_audiocpu;
device_t *m_pandora;
+ DECLARE_READ8_MEMBER(devram_r);
+ DECLARE_WRITE8_MEMBER(master_nmi_trigger_w);
+ DECLARE_WRITE8_MEMBER(master_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(slave_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_READ8_MEMBER(soundcommand_status_r);
+ DECLARE_READ8_MEMBER(soundcommand_r);
+ DECLARE_READ8_MEMBER(soundcommand2_r);
+ DECLARE_WRITE8_MEMBER(soundcommand_w);
+ DECLARE_WRITE8_MEMBER(soundcommand2_w);
+ DECLARE_WRITE8_MEMBER(airbustr_paletteram_w);
+ DECLARE_WRITE8_MEMBER(airbustr_coin_counter_w);
};
diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h
index f778aefc292..c55238c5e68 100644
--- a/src/mame/includes/ajax.h
+++ b/src/mame/includes/ajax.h
@@ -26,6 +26,7 @@ public:
device_t *m_k052109;
device_t *m_k051960;
device_t *m_k051316;
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
};
diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h
index 7497d0d3573..47b716292d5 100644
--- a/src/mame/includes/aliens.h
+++ b/src/mame/includes/aliens.h
@@ -27,6 +27,12 @@ public:
device_t *m_k007232;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_WRITE8_MEMBER(aliens_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(aliens_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
/*----------- defined in video/aliens.c -----------*/
diff --git a/src/mame/includes/alpha68k.h b/src/mame/includes/alpha68k.h
index b28c97c5094..6b8c15e3880 100644
--- a/src/mame/includes/alpha68k.h
+++ b/src/mame/includes/alpha68k.h
@@ -42,6 +42,27 @@ public:
device_t *m_audiocpu;
UINT8 m_sound_nmi_mask;
UINT8 m_sound_pa_latch;
+ DECLARE_WRITE16_MEMBER(tnextspc_coin_counters_w);
+ DECLARE_WRITE16_MEMBER(tnextspc_unknown_w);
+ DECLARE_WRITE16_MEMBER(alpha_microcontroller_w);
+ DECLARE_READ16_MEMBER(kyros_dip_r);
+ DECLARE_READ16_MEMBER(control_1_r);
+ DECLARE_READ16_MEMBER(control_2_r);
+ DECLARE_READ16_MEMBER(control_2_V_r);
+ DECLARE_READ16_MEMBER(control_3_r);
+ DECLARE_READ16_MEMBER(control_4_r);
+ DECLARE_READ16_MEMBER(jongbou_inputs_r);
+ DECLARE_WRITE16_MEMBER(kyros_sound_w);
+ DECLARE_WRITE16_MEMBER(alpha68k_II_sound_w);
+ DECLARE_WRITE16_MEMBER(alpha68k_V_sound_w);
+ DECLARE_WRITE16_MEMBER(paddlema_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(tnextspc_soundlatch_w);
+ DECLARE_READ16_MEMBER(kyros_alpha_trigger_r);
+ DECLARE_READ16_MEMBER(alpha_II_trigger_r);
+ DECLARE_READ16_MEMBER(alpha_V_trigger_r);
+ DECLARE_READ16_MEMBER(sound_cpu_r);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
+ DECLARE_WRITE8_MEMBER(porta_w);
};
/* game_id - used to deal with a few game specific situations */
diff --git a/src/mame/includes/ambush.h b/src/mame/includes/ambush.h
index e93810230e9..6e51e75f7cc 100644
--- a/src/mame/includes/ambush.h
+++ b/src/mame/includes/ambush.h
@@ -19,6 +19,8 @@ public:
size_t m_videoram_size;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(ambush_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
};
diff --git a/src/mame/includes/ampoker2.h b/src/mame/includes/ampoker2.h
index 84b26240644..e94d1b8d2d2 100644
--- a/src/mame/includes/ampoker2.h
+++ b/src/mame/includes/ampoker2.h
@@ -6,6 +6,14 @@ public:
UINT8 *m_videoram;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(ampoker2_port30_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_port31_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_port32_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_port33_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_port34_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_port35_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_port36_w);
+ DECLARE_WRITE8_MEMBER(ampoker2_watchdog_reset_w);
};
diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h
index f30faacf36b..ded31c74e29 100644
--- a/src/mame/includes/amspdwy.h
+++ b/src/mame/includes/amspdwy.h
@@ -27,6 +27,10 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_READ8_MEMBER(amspdwy_wheel_0_r);
+ DECLARE_READ8_MEMBER(amspdwy_wheel_1_r);
+ DECLARE_WRITE8_MEMBER(amspdwy_sound_w);
+ DECLARE_READ8_MEMBER(amspdwy_port_r);
};
diff --git a/src/mame/includes/angelkds.h b/src/mame/includes/angelkds.h
index 96a3fe6f9ea..a6b1b852ed3 100644
--- a/src/mame/includes/angelkds.h
+++ b/src/mame/includes/angelkds.h
@@ -30,6 +30,12 @@ public:
/* devices */
device_t *m_subcpu;
+ DECLARE_WRITE8_MEMBER(angelkds_cpu_bank_write);
+ DECLARE_READ8_MEMBER(angelkds_input_r);
+ DECLARE_WRITE8_MEMBER(angelkds_main_sound_w);
+ DECLARE_READ8_MEMBER(angelkds_main_sound_r);
+ DECLARE_WRITE8_MEMBER(angelkds_sub_sound_w);
+ DECLARE_READ8_MEMBER(angelkds_sub_sound_r);
};
diff --git a/src/mame/includes/appoooh.h b/src/mame/includes/appoooh.h
index 27541fb8678..77ec3818349 100644
--- a/src/mame/includes/appoooh.h
+++ b/src/mame/includes/appoooh.h
@@ -28,6 +28,7 @@ public:
device_t *m_adpcm;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(appoooh_adpcm_w);
};
#define CHR1_OFST 0x00 /* palette page of char set #1 */
diff --git a/src/mame/includes/aquarium.h b/src/mame/includes/aquarium.h
index c716d474df1..ec492c3d5ea 100644
--- a/src/mame/includes/aquarium.h
+++ b/src/mame/includes/aquarium.h
@@ -26,6 +26,12 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_READ16_MEMBER(aquarium_coins_r);
+ DECLARE_WRITE8_MEMBER(aquarium_snd_ack_w);
+ DECLARE_WRITE16_MEMBER(aquarium_sound_w);
+ DECLARE_WRITE8_MEMBER(aquarium_z80_bank_w);
+ DECLARE_READ8_MEMBER(aquarium_oki_r);
+ DECLARE_WRITE8_MEMBER(aquarium_oki_w);
};
diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h
index e072e06da5d..61ce101d8f8 100644
--- a/src/mame/includes/arabian.h
+++ b/src/mame/includes/arabian.h
@@ -27,6 +27,11 @@ public:
UINT8 m_mcu_port_o;
UINT8 m_mcu_port_p;
UINT8 m_mcu_port_r[4];
+ DECLARE_READ8_MEMBER(mcu_port_r_r);
+ DECLARE_WRITE8_MEMBER(mcu_port_r_w);
+ DECLARE_READ8_MEMBER(mcu_portk_r);
+ DECLARE_WRITE8_MEMBER(mcu_port_o_w);
+ DECLARE_WRITE8_MEMBER(mcu_port_p_w);
};
diff --git a/src/mame/includes/argus.h b/src/mame/includes/argus.h
index fd5a27a187d..a8dfdbc2fdd 100644
--- a/src/mame/includes/argus.h
+++ b/src/mame/includes/argus.h
@@ -35,6 +35,7 @@ public:
int m_mosaic;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(argus_bankselect_w);
};
diff --git a/src/mame/includes/armedf.h b/src/mame/includes/armedf.h
index 9c85a4d7a7c..ebe838a405e 100644
--- a/src/mame/includes/armedf.h
+++ b/src/mame/includes/armedf.h
@@ -31,6 +31,19 @@ public:
int m_waiting_msb;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(terraf_io_w);
+ DECLARE_WRITE16_MEMBER(terrafb_io_w);
+ DECLARE_WRITE16_MEMBER(bootleg_io_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_READ8_MEMBER(soundlatch_clear_r);
+ DECLARE_WRITE16_MEMBER(irq_lv1_ack_w);
+ DECLARE_WRITE16_MEMBER(irq_lv2_ack_w);
+ DECLARE_WRITE8_MEMBER(legiono_fg_scroll_w);
+ DECLARE_READ8_MEMBER(blitter_txram_r);
+ DECLARE_WRITE8_MEMBER(blitter_txram_w);
+ DECLARE_WRITE8_MEMBER(fg_scrollx_w);
+ DECLARE_WRITE8_MEMBER(fg_scrolly_w);
+ DECLARE_WRITE8_MEMBER(fg_scroll_msb_w);
};
class bigfghtr_state : public armedf_state
@@ -45,6 +58,10 @@ public:
int m_read_latch;
UINT8 m_mcu_input_snippet;
UINT8 m_mcu_jsr_snippet;
+
+ DECLARE_READ16_MEMBER(latch_r);
+ DECLARE_WRITE16_MEMBER(sharedram_w);
+ DECLARE_READ16_MEMBER(sharedram_r);
};
/*----------- defined in video/armedf.c -----------*/
diff --git a/src/mame/includes/artmagic.h b/src/mame/includes/artmagic.h
index a97fd7469f1..db7e28b90b2 100644
--- a/src/mame/includes/artmagic.h
+++ b/src/mame/includes/artmagic.h
@@ -30,6 +30,12 @@ public:
UINT16 m_blitter_data[8];
UINT8 m_blitter_page;
attotime m_blitter_busy_until;
+ DECLARE_READ16_MEMBER(tms_host_r);
+ DECLARE_WRITE16_MEMBER(tms_host_w);
+ DECLARE_WRITE16_MEMBER(control_w);
+ DECLARE_READ16_MEMBER(ultennis_hack_r);
+ DECLARE_WRITE16_MEMBER(protection_bit_w);
+ DECLARE_READ16_MEMBER(unk_r);
};
diff --git a/src/mame/includes/ashnojoe.h b/src/mame/includes/ashnojoe.h
index 60361a7b81f..1926847cd89 100644
--- a/src/mame/includes/ashnojoe.h
+++ b/src/mame/includes/ashnojoe.h
@@ -38,6 +38,11 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_READ16_MEMBER(fake_4a00a_r);
+ DECLARE_WRITE16_MEMBER(ashnojoe_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(adpcm_w);
+ DECLARE_READ8_MEMBER(sound_latch_r);
+ DECLARE_READ8_MEMBER(sound_latch_status_r);
};
diff --git a/src/mame/includes/asterix.h b/src/mame/includes/asterix.h
index cf1d1ab5274..cdc6768970c 100644
--- a/src/mame/includes/asterix.h
+++ b/src/mame/includes/asterix.h
@@ -32,6 +32,11 @@ public:
device_t *m_k056832;
device_t *m_k053244;
device_t *m_k053251;
+ DECLARE_READ16_MEMBER(control2_r);
+ DECLARE_WRITE16_MEMBER(control2_w);
+ DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_WRITE16_MEMBER(protection_w);
};
diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h
index 61d96b9f959..df4e2c38f69 100644
--- a/src/mame/includes/asteroid.h
+++ b/src/mame/includes/asteroid.h
@@ -14,6 +14,8 @@ public:
UINT8 *m_ram1;
UINT8 *m_ram2;
+ DECLARE_WRITE8_MEMBER(astdelux_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(llander_led_w);
};
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index d35da16e25e..ec62a36a9ce 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -69,6 +69,28 @@ public:
UINT8 m_profpac_writemode;
UINT16 m_profpac_writemask;
UINT8 m_profpac_vw;
+ DECLARE_WRITE8_MEMBER(protected_ram_enable_w);
+ DECLARE_READ8_MEMBER(protected_ram_r);
+ DECLARE_WRITE8_MEMBER(protected_ram_w);
+ DECLARE_WRITE8_MEMBER(seawolf2_lamps_w);
+ DECLARE_WRITE8_MEMBER(seawolf2_sound_1_w);
+ DECLARE_WRITE8_MEMBER(seawolf2_sound_2_w);
+ DECLARE_WRITE8_MEMBER(ebases_trackball_select_w);
+ DECLARE_WRITE8_MEMBER(ebases_coin_w);
+ DECLARE_READ8_MEMBER(spacezap_io_r);
+ DECLARE_READ8_MEMBER(wow_io_r);
+ DECLARE_READ8_MEMBER(gorf_io_1_r);
+ DECLARE_READ8_MEMBER(gorf_io_2_r);
+ DECLARE_READ8_MEMBER(robby_io_r);
+ DECLARE_READ8_MEMBER(profpac_io_1_r);
+ DECLARE_READ8_MEMBER(profpac_io_2_r);
+ DECLARE_WRITE8_MEMBER(profpac_banksw_w);
+ DECLARE_READ8_MEMBER(demndrgn_io_r);
+ DECLARE_WRITE8_MEMBER(demndrgn_sound_w);
+ DECLARE_WRITE8_MEMBER(tenpindx_sound_w);
+ DECLARE_WRITE8_MEMBER(tenpindx_lamp_w);
+ DECLARE_WRITE8_MEMBER(tenpindx_counter_w);
+ DECLARE_WRITE8_MEMBER(tenpindx_lights_w);
};
diff --git a/src/mame/includes/astrof.h b/src/mame/includes/astrof.h
index 28ccaef566b..3e4c440ef12 100644
--- a/src/mame/includes/astrof.h
+++ b/src/mame/includes/astrof.h
@@ -37,6 +37,17 @@ public:
device_t *m_maincpu;
samples_device *m_samples; // astrof & abattle
device_t *m_sn; // tomahawk
+ DECLARE_READ8_MEMBER(irq_clear_r);
+ DECLARE_WRITE8_MEMBER(astrof_videoram_w);
+ DECLARE_WRITE8_MEMBER(tomahawk_videoram_w);
+ DECLARE_WRITE8_MEMBER(video_control_1_w);
+ DECLARE_WRITE8_MEMBER(astrof_video_control_2_w);
+ DECLARE_WRITE8_MEMBER(spfghmk2_video_control_2_w);
+ DECLARE_WRITE8_MEMBER(tomahawk_video_control_2_w);
+ DECLARE_READ8_MEMBER(shoot_r);
+ DECLARE_READ8_MEMBER(abattle_coin_prot_r);
+ DECLARE_READ8_MEMBER(afire_coin_prot_r);
+ DECLARE_READ8_MEMBER(tomahawk_protection_r);
};
/*----------- defined in audio/astrof.c -----------*/
diff --git a/src/mame/includes/asuka.h b/src/mame/includes/asuka.h
index 7c5dd7fb607..e6eaca7494d 100644
--- a/src/mame/includes/asuka.h
+++ b/src/mame/includes/asuka.h
@@ -34,6 +34,10 @@ public:
device_t *m_audiocpu;
device_t *m_pc090oj;
device_t *m_tc0100scn;
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(asuka_msm5205_address_w);
+ DECLARE_READ16_MEMBER(cadash_share_r);
+ DECLARE_WRITE16_MEMBER(cadash_share_w);
};
diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h
index f25b20bdfed..4474bffe9d6 100644
--- a/src/mame/includes/atetris.h
+++ b/src/mame/includes/atetris.h
@@ -19,6 +19,11 @@ public:
UINT8 m_nvram_write_enable;
emu_timer *m_interrupt_timer;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(irq_ack_w);
+ DECLARE_READ8_MEMBER(atetris_slapstic_r);
+ DECLARE_WRITE8_MEMBER(coincount_w);
+ DECLARE_WRITE8_MEMBER(nvram_w);
+ DECLARE_WRITE8_MEMBER(nvram_enable_w);
};
/*----------- defined in video/atetris.c -----------*/
diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h
index cd51c34fd4a..c3c91a9fc8e 100644
--- a/src/mame/includes/avalnche.h
+++ b/src/mame/includes/avalnche.h
@@ -18,6 +18,11 @@ public:
size_t m_videoram_size;
UINT8 m_avalance_video_inverted;
+ DECLARE_WRITE8_MEMBER(avalance_video_invert_w);
+ DECLARE_WRITE8_MEMBER(catch_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(avalance_credit_1_lamp_w);
+ DECLARE_WRITE8_MEMBER(avalance_credit_2_lamp_w);
+ DECLARE_WRITE8_MEMBER(avalance_start_lamp_w);
};
/*----------- defined in audio/avalnche.c -----------*/
diff --git a/src/mame/includes/aztarac.h b/src/mame/includes/aztarac.h
index 0a21f2dd297..910361b5858 100644
--- a/src/mame/includes/aztarac.h
+++ b/src/mame/includes/aztarac.h
@@ -16,6 +16,8 @@ public:
UINT16 *m_vectorram;
int m_xcenter;
int m_ycenter;
+ DECLARE_READ16_MEMBER(nvram_r);
+ DECLARE_READ16_MEMBER(joystick_r);
};
/*----------- defined in audio/aztarac.c -----------*/
diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h
index 9ec28e142be..53012c4acbc 100644
--- a/src/mame/includes/bagman.h
+++ b/src/mame/includes/bagman.h
@@ -28,6 +28,8 @@ public:
size_t m_spriteram_size;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(bagman_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h
index 029598c8039..f4a50af14d7 100644
--- a/src/mame/includes/baraduke.h
+++ b/src/mame/includes/baraduke.h
@@ -14,6 +14,12 @@ public:
int m_xscroll[2];
int m_yscroll[2];
int m_copy_sprites;
+ DECLARE_WRITE8_MEMBER(inputport_select_w);
+ DECLARE_READ8_MEMBER(inputport_r);
+ DECLARE_WRITE8_MEMBER(baraduke_lamps_w);
+ DECLARE_WRITE8_MEMBER(baraduke_irq_ack_w);
+ DECLARE_READ8_MEMBER(soundkludge_r);
+ DECLARE_READ8_MEMBER(readFF);
};
diff --git a/src/mame/includes/battlane.h b/src/mame/includes/battlane.h
index b911137d831..c42e72d598b 100644
--- a/src/mame/includes/battlane.h
+++ b/src/mame/includes/battlane.h
@@ -23,6 +23,7 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_subcpu;
+ DECLARE_WRITE8_MEMBER(battlane_cpu_command_w);
};
diff --git a/src/mame/includes/battlera.h b/src/mame/includes/battlera.h
index 7827ed8ce2f..bf24dc57839 100644
--- a/src/mame/includes/battlera.h
+++ b/src/mame/includes/battlera.h
@@ -27,6 +27,10 @@ public:
UINT8 m_blank_tile[32];
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(battlera_sound_w);
+ DECLARE_WRITE8_MEMBER(control_data_w);
+ DECLARE_READ8_MEMBER(control_data_r);
+ DECLARE_WRITE8_MEMBER(battlera_adpcm_data_w);
};
diff --git a/src/mame/includes/battlnts.h b/src/mame/includes/battlnts.h
index 71e58270c15..5f00d210842 100644
--- a/src/mame/includes/battlnts.h
+++ b/src/mame/includes/battlnts.h
@@ -22,6 +22,8 @@ public:
device_t *m_audiocpu;
device_t *m_k007342;
device_t *m_k007420;
+ DECLARE_WRITE8_MEMBER(battlnts_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(battlnts_bankswitch_w);
};
/*----------- defined in video/battlnts.c -----------*/
diff --git a/src/mame/includes/bbusters.h b/src/mame/includes/bbusters.h
index 83068115943..503cfee1165 100644
--- a/src/mame/includes/bbusters.h
+++ b/src/mame/includes/bbusters.h
@@ -28,6 +28,16 @@ public:
required_device<buffered_spriteram16_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram2;
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(sound_status_w);
+ DECLARE_WRITE16_MEMBER(sound_cpu_w);
+ DECLARE_READ16_MEMBER(eprom_r);
+ DECLARE_READ16_MEMBER(control_3_r);
+ DECLARE_WRITE16_MEMBER(gun_select_w);
+ DECLARE_WRITE16_MEMBER(two_gun_output_w);
+ DECLARE_WRITE16_MEMBER(three_gun_output_w);
+ DECLARE_READ16_MEMBER(kludge_r);
+ DECLARE_READ16_MEMBER(mechatt_gun_r);
};
diff --git a/src/mame/includes/bigevglf.h b/src/mame/includes/bigevglf.h
index b3200abc035..e4a7fefe1be 100644
--- a/src/mame/includes/bigevglf.h
+++ b/src/mame/includes/bigevglf.h
@@ -47,6 +47,24 @@ public:
/* devices */
device_t *m_audiocpu;
device_t *m_mcu;
+ DECLARE_WRITE8_MEMBER(beg_banking_w);
+ DECLARE_WRITE8_MEMBER(beg_fromsound_w);
+ DECLARE_READ8_MEMBER(beg_fromsound_r);
+ DECLARE_READ8_MEMBER(beg_soundstate_r);
+ DECLARE_READ8_MEMBER(soundstate_r);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_READ8_MEMBER(sound_command_r);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(beg13_a_clr_w);
+ DECLARE_WRITE8_MEMBER(beg13_b_clr_w);
+ DECLARE_WRITE8_MEMBER(beg13_a_set_w);
+ DECLARE_WRITE8_MEMBER(beg13_b_set_w);
+ DECLARE_READ8_MEMBER(beg_status_r);
+ DECLARE_READ8_MEMBER(beg_trackball_x_r);
+ DECLARE_READ8_MEMBER(beg_trackball_y_r);
+ DECLARE_WRITE8_MEMBER(beg_port08_w);
+ DECLARE_READ8_MEMBER(sub_cpu_mcu_coin_port_r);
};
diff --git a/src/mame/includes/bionicc.h b/src/mame/includes/bionicc.h
index cbba0345614..68681463b51 100644
--- a/src/mame/includes/bionicc.h
+++ b/src/mame/includes/bionicc.h
@@ -29,6 +29,11 @@ public:
UINT16 m_soundcommand;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(hacked_controls_w);
+ DECLARE_READ16_MEMBER(hacked_controls_r);
+ DECLARE_WRITE16_MEMBER(bionicc_mpu_trigger_w);
+ DECLARE_WRITE16_MEMBER(hacked_soundcommand_w);
+ DECLARE_READ16_MEMBER(hacked_soundcommand_r);
};
diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h
index 2f6e1627d22..d71a50386e4 100644
--- a/src/mame/includes/bishi.h
+++ b/src/mame/includes/bishi.h
@@ -31,6 +31,11 @@ public:
device_t *m_k056832;
device_t *m_k054338;
device_t *m_k055555;
+ DECLARE_READ16_MEMBER(control_r);
+ DECLARE_WRITE16_MEMBER(control_w);
+ DECLARE_WRITE16_MEMBER(control2_w);
+ DECLARE_READ16_MEMBER(bishi_mirror_r);
+ DECLARE_READ16_MEMBER(bishi_K056832_rom_r);
};
/*----------- defined in video/bishi.c -----------*/
diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h
index 0ae47a76056..b9704424aac 100644
--- a/src/mame/includes/bking.h
+++ b/src/mame/includes/bking.h
@@ -47,6 +47,20 @@ public:
UINT8 m_port_b_out;
UINT8 m_ddr_b;
#endif
+ DECLARE_READ8_MEMBER(bking_sndnmi_disable_r);
+ DECLARE_WRITE8_MEMBER(bking_sndnmi_enable_w);
+ DECLARE_WRITE8_MEMBER(bking_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(bking3_addr_l_w);
+ DECLARE_WRITE8_MEMBER(bking3_addr_h_w);
+ DECLARE_READ8_MEMBER(bking3_extrarom_r);
+ DECLARE_READ8_MEMBER(bking3_ext_check_r);
+ DECLARE_READ8_MEMBER(bking3_68705_port_a_r);
+ DECLARE_WRITE8_MEMBER(bking3_68705_port_a_w);
+ DECLARE_WRITE8_MEMBER(bking3_68705_ddr_a_w);
+ DECLARE_READ8_MEMBER(bking3_68705_port_b_r);
+ DECLARE_WRITE8_MEMBER(bking3_68705_port_b_w);
+ DECLARE_WRITE8_MEMBER(bking3_68705_ddr_b_w);
+ DECLARE_READ8_MEMBER(bking3_68705_port_c_r);
};
diff --git a/src/mame/includes/bladestl.h b/src/mame/includes/bladestl.h
index 5da4c6bf8dc..82a4870c7f4 100644
--- a/src/mame/includes/bladestl.h
+++ b/src/mame/includes/bladestl.h
@@ -24,6 +24,9 @@ public:
device_t *m_audiocpu;
device_t *m_k007342;
device_t *m_k007420;
+ DECLARE_READ8_MEMBER(trackball_r);
+ DECLARE_WRITE8_MEMBER(bladestl_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(bladestl_sh_irqtrigger_w);
};
diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h
index 9fdf3130221..b8804e938f8 100644
--- a/src/mame/includes/blktiger.h
+++ b/src/mame/includes/blktiger.h
@@ -39,6 +39,12 @@ public:
device_t *m_mcu;
device_t *m_audiocpu;
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_READ8_MEMBER(blktiger_from_mcu_r);
+ DECLARE_WRITE8_MEMBER(blktiger_to_mcu_w);
+ DECLARE_READ8_MEMBER(blktiger_from_main_r);
+ DECLARE_WRITE8_MEMBER(blktiger_to_main_w);
+ DECLARE_WRITE8_MEMBER(blktiger_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(blktiger_coinlockout_w);
};
diff --git a/src/mame/includes/blmbycar.h b/src/mame/includes/blmbycar.h
index 096a7756c24..9a92ac297f3 100644
--- a/src/mame/includes/blmbycar.h
+++ b/src/mame/includes/blmbycar.h
@@ -27,6 +27,12 @@ public:
UINT8 m_pot_wheel; // blmbycar
int m_old_val; // blmbycar
int m_retvalue; // waterball
+ DECLARE_WRITE16_MEMBER(blmbycar_okibank_w);
+ DECLARE_WRITE16_MEMBER(blmbycar_pot_wheel_reset_w);
+ DECLARE_WRITE16_MEMBER(blmbycar_pot_wheel_shift_w);
+ DECLARE_READ16_MEMBER(blmbycar_pot_wheel_r);
+ DECLARE_READ16_MEMBER(blmbycar_opt_wheel_r);
+ DECLARE_READ16_MEMBER(waterball_unk_r);
};
diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h
index e0609af2673..f06a2ea03ae 100644
--- a/src/mame/includes/blockade.h
+++ b/src/mame/includes/blockade.h
@@ -15,6 +15,8 @@ public:
/* input-related */
UINT8 m_coin_latch; /* Active Low */
UINT8 m_just_been_reset;
+ DECLARE_READ8_MEMBER(blockade_input_port_0_r);
+ DECLARE_WRITE8_MEMBER(blockade_coin_latch_w);
};
diff --git a/src/mame/includes/blockhl.h b/src/mame/includes/blockhl.h
index 3415aeed6e1..dc0a542c034 100644
--- a/src/mame/includes/blockhl.h
+++ b/src/mame/includes/blockhl.h
@@ -27,6 +27,11 @@ public:
device_t *m_audiocpu;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_WRITE8_MEMBER(blockhl_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
/*----------- defined in video/blockhl.c -----------*/
diff --git a/src/mame/includes/blockout.h b/src/mame/includes/blockout.h
index 57e2c24a997..336ecc33a22 100644
--- a/src/mame/includes/blockout.h
+++ b/src/mame/includes/blockout.h
@@ -22,6 +22,9 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(blockout_sound_command_w);
+ DECLARE_WRITE16_MEMBER(blockout_irq6_ack_w);
+ DECLARE_WRITE16_MEMBER(blockout_irq5_ack_w);
};
diff --git a/src/mame/includes/blueprnt.h b/src/mame/includes/blueprnt.h
index 62b1a0f527c..3ee80b325a8 100644
--- a/src/mame/includes/blueprnt.h
+++ b/src/mame/includes/blueprnt.h
@@ -26,6 +26,9 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_READ8_MEMBER(blueprnt_sh_dipsw_r);
+ DECLARE_WRITE8_MEMBER(blueprnt_sound_command_w);
+ DECLARE_WRITE8_MEMBER(blueprnt_coin_counter_w);
};
diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h
index edd4f969d14..e42c5e517ce 100644
--- a/src/mame/includes/bogeyman.h
+++ b/src/mame/includes/bogeyman.h
@@ -27,6 +27,8 @@ public:
int m_psg_latch;
int m_last_write;
int m_colbank;
+ DECLARE_WRITE8_MEMBER(bogeyman_8910_latch_w);
+ DECLARE_WRITE8_MEMBER(bogeyman_8910_control_w);
};
diff --git a/src/mame/includes/bombjack.h b/src/mame/includes/bombjack.h
index 6805dfd848a..c15b51222e0 100644
--- a/src/mame/includes/bombjack.h
+++ b/src/mame/includes/bombjack.h
@@ -26,6 +26,9 @@ public:
UINT8 m_latch;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(bombjack_soundlatch_w);
+ DECLARE_READ8_MEMBER(bombjack_soundlatch_r);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/bottom9.h b/src/mame/includes/bottom9.h
index 4587aa6e0c1..d11251353da 100644
--- a/src/mame/includes/bottom9.h
+++ b/src/mame/includes/bottom9.h
@@ -32,6 +32,17 @@ public:
device_t *m_k052109;
device_t *m_k051960;
device_t *m_k051316;
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ DECLARE_READ8_MEMBER(bottom9_bankedram1_r);
+ DECLARE_WRITE8_MEMBER(bottom9_bankedram1_w);
+ DECLARE_READ8_MEMBER(bottom9_bankedram2_r);
+ DECLARE_WRITE8_MEMBER(bottom9_bankedram2_w);
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_WRITE8_MEMBER(bottom9_1f90_w);
+ DECLARE_WRITE8_MEMBER(bottom9_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
};
/*----------- defined in video/bottom9.c -----------*/
diff --git a/src/mame/includes/brkthru.h b/src/mame/includes/brkthru.h
index 6c59b370142..31e3b49d6ac 100644
--- a/src/mame/includes/brkthru.h
+++ b/src/mame/includes/brkthru.h
@@ -31,6 +31,9 @@ public:
device_t *m_audiocpu;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(brkthru_1803_w);
+ DECLARE_WRITE8_MEMBER(darwin_0803_w);
+ DECLARE_WRITE8_MEMBER(brkthru_soundlatch_w);
};
diff --git a/src/mame/includes/btime.h b/src/mame/includes/btime.h
index 598895a64c5..6fb179a02e0 100644
--- a/src/mame/includes/btime.h
+++ b/src/mame/includes/btime.h
@@ -42,6 +42,17 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(audio_nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(lnc_w);
+ DECLARE_WRITE8_MEMBER(mmonkey_w);
+ DECLARE_WRITE8_MEMBER(btime_w);
+ DECLARE_WRITE8_MEMBER(tisland_w);
+ DECLARE_WRITE8_MEMBER(zoar_w);
+ DECLARE_WRITE8_MEMBER(disco_w);
+ DECLARE_WRITE8_MEMBER(audio_command_w);
+ DECLARE_READ8_MEMBER(audio_command_r);
+ DECLARE_READ8_MEMBER(zoar_dsw1_read);
+ DECLARE_READ8_MEMBER(wtennis_reset_hack_r);
};
diff --git a/src/mame/includes/buggychl.h b/src/mame/includes/buggychl.h
index 2c8e6fe915f..625f4153b4d 100644
--- a/src/mame/includes/buggychl.h
+++ b/src/mame/includes/buggychl.h
@@ -34,6 +34,11 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(sound_enable_w);
};
diff --git a/src/mame/includes/bwing.h b/src/mame/includes/bwing.h
index 5d7bcec9770..f1bd989cbd0 100644
--- a/src/mame/includes/bwing.h
+++ b/src/mame/includes/bwing.h
@@ -46,6 +46,13 @@ public:
device_t *m_maincpu;
device_t *m_subcpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(bwp12_sharedram1_w);
+ DECLARE_WRITE8_MEMBER(bwp3_u8F_w);
+ DECLARE_WRITE8_MEMBER(bwp3_nmimask_w);
+ DECLARE_WRITE8_MEMBER(bwp3_nmiack_w);
+ DECLARE_READ8_MEMBER(bwp1_io_r);
+ DECLARE_WRITE8_MEMBER(bwp1_ctrl_w);
+ DECLARE_WRITE8_MEMBER(bwp2_ctrl_w);
};
diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h
index 31d16de92ba..d244dc2c4f2 100644
--- a/src/mame/includes/bzone.h
+++ b/src/mame/includes/bzone.h
@@ -17,6 +17,9 @@ public:
UINT8 m_analog_data;
UINT8 m_rb_input_select;
+ DECLARE_WRITE8_MEMBER(bzone_coin_counter_w);
+ DECLARE_READ8_MEMBER(analog_data_r);
+ DECLARE_WRITE8_MEMBER(analog_select_w);
};
diff --git a/src/mame/includes/cabal.h b/src/mame/includes/cabal.h
index a41e572d145..2ed7485a131 100644
--- a/src/mame/includes/cabal.h
+++ b/src/mame/includes/cabal.h
@@ -13,6 +13,14 @@ public:
int m_sound_command1;
int m_sound_command2;
int m_last[4];
+ DECLARE_WRITE16_MEMBER(cabalbl_sndcmd_w);
+ DECLARE_WRITE16_MEMBER(track_reset_w);
+ DECLARE_READ16_MEMBER(track_r);
+ DECLARE_WRITE16_MEMBER(cabal_sound_irq_trigger_word_w);
+ DECLARE_WRITE16_MEMBER(cabalbl_sound_irq_trigger_word_w);
+ DECLARE_READ8_MEMBER(cabalbl_snd2_r);
+ DECLARE_READ8_MEMBER(cabalbl_snd1_r);
+ DECLARE_WRITE8_MEMBER(cabalbl_coin_w);
};
diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h
index 0c13c274914..3654a80128a 100644
--- a/src/mame/includes/canyon.h
+++ b/src/mame/includes/canyon.h
@@ -28,6 +28,9 @@ public:
/* video-related */
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(canyon_switches_r);
+ DECLARE_READ8_MEMBER(canyon_options_r);
+ DECLARE_WRITE8_MEMBER(canyon_led_w);
};
diff --git a/src/mame/includes/capbowl.h b/src/mame/includes/capbowl.h
index e3eb0bf0205..672ad2b560a 100644
--- a/src/mame/includes/capbowl.h
+++ b/src/mame/includes/capbowl.h
@@ -26,6 +26,11 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(capbowl_rom_select_w);
+ DECLARE_READ8_MEMBER(track_0_r);
+ DECLARE_READ8_MEMBER(track_1_r);
+ DECLARE_WRITE8_MEMBER(track_reset_w);
+ DECLARE_WRITE8_MEMBER(capbowl_sndcmd_w);
};
/*----------- defined in video/capbowl.c -----------*/
diff --git a/src/mame/includes/carjmbre.h b/src/mame/includes/carjmbre.h
index 1319d14787e..4c2d325f18e 100644
--- a/src/mame/includes/carjmbre.h
+++ b/src/mame/includes/carjmbre.h
@@ -21,6 +21,7 @@ public:
UINT16 m_bgcolor;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h
index 860113919c4..9f0178fc187 100644
--- a/src/mame/includes/cave.h
+++ b/src/mame/includes/cave.h
@@ -109,6 +109,36 @@ public:
required_device<timer_device> m_int_timer;
int m_rasflag;
int m_old_rasflag;
+ DECLARE_READ16_MEMBER(cave_irq_cause_r);
+ DECLARE_READ8_MEMBER(soundflags_r);
+ DECLARE_READ16_MEMBER(soundflags_ack_r);
+ DECLARE_WRITE16_MEMBER(sound_cmd_w);
+ DECLARE_READ8_MEMBER(soundlatch_lo_r);
+ DECLARE_READ8_MEMBER(soundlatch_hi_r);
+ DECLARE_READ16_MEMBER(soundlatch_ack_r);
+ DECLARE_WRITE8_MEMBER(soundlatch_ack_w);
+ DECLARE_WRITE16_MEMBER(gaia_coin_lsb_w);
+ DECLARE_READ16_MEMBER(donpachi_videoregs_r);
+ DECLARE_WRITE16_MEMBER(korokoro_leds_w);
+ DECLARE_WRITE16_MEMBER(pwrinst2_vctrl_0_w);
+ DECLARE_WRITE16_MEMBER(pwrinst2_vctrl_1_w);
+ DECLARE_WRITE16_MEMBER(pwrinst2_vctrl_2_w);
+ DECLARE_WRITE16_MEMBER(pwrinst2_vctrl_3_w);
+ DECLARE_READ16_MEMBER(sailormn_input0_r);
+ DECLARE_WRITE16_MEMBER(tjumpman_leds_w);
+ DECLARE_WRITE16_MEMBER(pacslot_leds_w);
+ DECLARE_WRITE8_MEMBER(hotdogst_rombank_w);
+ DECLARE_WRITE8_MEMBER(hotdogst_okibank_w);
+ DECLARE_WRITE8_MEMBER(mazinger_rombank_w);
+ DECLARE_WRITE8_MEMBER(metmqstr_rombank_w);
+ DECLARE_WRITE8_MEMBER(metmqstr_okibank0_w);
+ DECLARE_WRITE8_MEMBER(metmqstr_okibank1_w);
+ DECLARE_WRITE8_MEMBER(pwrinst2_rombank_w);
+ DECLARE_READ8_MEMBER(mirror_ram_r);
+ DECLARE_WRITE8_MEMBER(mirror_ram_w);
+ DECLARE_WRITE8_MEMBER(sailormn_rombank_w);
+ DECLARE_WRITE8_MEMBER(sailormn_okibank0_w);
+ DECLARE_WRITE8_MEMBER(sailormn_okibank1_w);
};
/*----------- defined in video/cave.c -----------*/
diff --git a/src/mame/includes/cbasebal.h b/src/mame/includes/cbasebal.h
index 042fc64a67b..79426c910eb 100644
--- a/src/mame/includes/cbasebal.h
+++ b/src/mame/includes/cbasebal.h
@@ -31,6 +31,10 @@ public:
/* misc */
UINT8 m_rambank;
+ DECLARE_WRITE8_MEMBER(cbasebal_bankswitch_w);
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_WRITE8_MEMBER(cbasebal_coinctrl_w);
};
/*----------- defined in video/cbasebal.c -----------*/
diff --git a/src/mame/includes/cbuster.h b/src/mame/includes/cbuster.h
index 901a34efc61..cd6a3b62a72 100644
--- a/src/mame/includes/cbuster.h
+++ b/src/mame/includes/cbuster.h
@@ -28,6 +28,8 @@ public:
device_t *m_audiocpu;
device_t *m_deco_tilegen1;
device_t *m_deco_tilegen2;
+ DECLARE_WRITE16_MEMBER(twocrude_control_w);
+ DECLARE_READ16_MEMBER(twocrude_control_r);
};
diff --git a/src/mame/includes/ccastles.h b/src/mame/includes/ccastles.h
index 11283c99406..29a7e259684 100644
--- a/src/mame/includes/ccastles.h
+++ b/src/mame/includes/ccastles.h
@@ -44,6 +44,15 @@ public:
required_device<m6502_device> m_maincpu;
required_device<x2212_device> m_nvram_4b;
required_device<x2212_device> m_nvram_4a;
+ DECLARE_WRITE8_MEMBER(irq_ack_w);
+ DECLARE_WRITE8_MEMBER(led_w);
+ DECLARE_WRITE8_MEMBER(ccounter_w);
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_READ8_MEMBER(leta_r);
+ DECLARE_WRITE8_MEMBER(nvram_recall_w);
+ DECLARE_WRITE8_MEMBER(nvram_store_w);
+ DECLARE_READ8_MEMBER(nvram_r);
+ DECLARE_WRITE8_MEMBER(nvram_w);
};
diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h
index 633daa7e4d9..3fcf7cf3dff 100644
--- a/src/mame/includes/cclimber.h
+++ b/src/mame/includes/cclimber.h
@@ -23,6 +23,13 @@ public:
tilemap_t *m_pf_tilemap;
tilemap_t *m_bs_tilemap;
tilemap_t *m_toproller_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(swimmer_sh_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(yamato_p0_w);
+ DECLARE_WRITE8_MEMBER(yamato_p1_w);
+ DECLARE_READ8_MEMBER(yamato_p0_r);
+ DECLARE_READ8_MEMBER(yamato_p1_r);
+ DECLARE_WRITE8_MEMBER(toprollr_rombank_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/centiped.h b/src/mame/includes/centiped.h
index 0ebe176c222..bc860a5c74d 100644
--- a/src/mame/includes/centiped.h
+++ b/src/mame/includes/centiped.h
@@ -22,6 +22,19 @@ public:
UINT8 m_bullsdrt_sprites_bank;
UINT8 m_penmask[64];
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(irq_ack_w);
+ DECLARE_READ8_MEMBER(centiped_IN0_r);
+ DECLARE_READ8_MEMBER(centiped_IN2_r);
+ DECLARE_READ8_MEMBER(milliped_IN1_r);
+ DECLARE_READ8_MEMBER(milliped_IN2_r);
+ DECLARE_WRITE8_MEMBER(input_select_w);
+ DECLARE_WRITE8_MEMBER(control_select_w);
+ DECLARE_READ8_MEMBER(mazeinv_input_r);
+ DECLARE_WRITE8_MEMBER(mazeinv_input_select_w);
+ DECLARE_READ8_MEMBER(bullsdrt_data_port_r);
+ DECLARE_WRITE8_MEMBER(led_w);
+ DECLARE_WRITE8_MEMBER(coin_count_w);
+ DECLARE_WRITE8_MEMBER(bullsdrt_coin_count_w);
};
diff --git a/src/mame/includes/chaknpop.h b/src/mame/includes/chaknpop.h
index 89fa25ae523..bbe5d60c95b 100644
--- a/src/mame/includes/chaknpop.h
+++ b/src/mame/includes/chaknpop.h
@@ -31,6 +31,7 @@ public:
UINT8 m_gfxmode;
UINT8 m_flip_x;
UINT8 m_flip_y;
+ DECLARE_WRITE8_MEMBER(coinlock_w);
};
diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h
index 2ce6b66084c..903f2dbb617 100644
--- a/src/mame/includes/champbas.h
+++ b/src/mame/includes/champbas.h
@@ -34,6 +34,11 @@ public:
device_t *m_mcu;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(champbas_watchdog_reset_w);
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
+ DECLARE_WRITE8_MEMBER(champbas_mcu_switch_w);
+ DECLARE_WRITE8_MEMBER(champbas_mcu_halt_w);
+ DECLARE_READ8_MEMBER(champbja_alt_protection_r);
};
diff --git a/src/mame/includes/changela.h b/src/mame/includes/changela.h
index a5f15271291..ee801777d84 100644
--- a/src/mame/includes/changela.h
+++ b/src/mame/includes/changela.h
@@ -55,6 +55,27 @@ public:
/* devices */
device_t *m_mcu;
+ DECLARE_READ8_MEMBER(mcu_r);
+ DECLARE_WRITE8_MEMBER(mcu_w);
+ DECLARE_READ8_MEMBER(changela_68705_port_a_r);
+ DECLARE_WRITE8_MEMBER(changela_68705_port_a_w);
+ DECLARE_WRITE8_MEMBER(changela_68705_ddr_a_w);
+ DECLARE_READ8_MEMBER(changela_68705_port_b_r);
+ DECLARE_WRITE8_MEMBER(changela_68705_port_b_w);
+ DECLARE_WRITE8_MEMBER(changela_68705_ddr_b_w);
+ DECLARE_READ8_MEMBER(changela_68705_port_c_r);
+ DECLARE_WRITE8_MEMBER(changela_68705_port_c_w);
+ DECLARE_WRITE8_MEMBER(changela_68705_ddr_c_w);
+ DECLARE_READ8_MEMBER(changela_24_r);
+ DECLARE_READ8_MEMBER(changela_25_r);
+ DECLARE_READ8_MEMBER(changela_30_r);
+ DECLARE_READ8_MEMBER(changela_31_r);
+ DECLARE_READ8_MEMBER(changela_2c_r);
+ DECLARE_READ8_MEMBER(changela_2d_r);
+ DECLARE_WRITE8_MEMBER(mcu_pc_0_w);
+ DECLARE_WRITE8_MEMBER(changela_collision_reset_0);
+ DECLARE_WRITE8_MEMBER(changela_collision_reset_1);
+ DECLARE_WRITE8_MEMBER(changela_coin_counter_w);
};
/*----------- defined in video/changela.c -----------*/
diff --git a/src/mame/includes/chqflag.h b/src/mame/includes/chqflag.h
index 425abb16850..97333e22e45 100644
--- a/src/mame/includes/chqflag.h
+++ b/src/mame/includes/chqflag.h
@@ -33,6 +33,12 @@ public:
device_t *m_k051960;
device_t *m_k051316_1;
device_t *m_k051316_2;
+ DECLARE_WRITE8_MEMBER(chqflag_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(chqflag_vreg_w);
+ DECLARE_WRITE8_MEMBER(select_analog_ctrl_w);
+ DECLARE_READ8_MEMBER(analog_read_r);
+ DECLARE_WRITE8_MEMBER(chqflag_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(k007232_bankswitch_w);
};
/*----------- defined in video/chqflag.c -----------*/
diff --git a/src/mame/includes/cinemat.h b/src/mame/includes/cinemat.h
index d1bba117a8a..6350e694761 100644
--- a/src/mame/includes/cinemat.h
+++ b/src/mame/includes/cinemat.h
@@ -36,6 +36,17 @@ public:
UINT8 m_last_control;
int m_qb3_lastx;
int m_qb3_lasty;
+ DECLARE_READ8_MEMBER(inputs_r);
+ DECLARE_READ8_MEMBER(switches_r);
+ DECLARE_READ8_MEMBER(coin_input_r);
+ DECLARE_WRITE8_MEMBER(coin_reset_w);
+ DECLARE_WRITE8_MEMBER(mux_select_w);
+ DECLARE_READ8_MEMBER(speedfrk_wheel_r);
+ DECLARE_READ8_MEMBER(speedfrk_gear_r);
+ DECLARE_READ8_MEMBER(sundance_inputs_r);
+ DECLARE_READ8_MEMBER(boxingb_dial_r);
+ DECLARE_READ8_MEMBER(qb3_frame_r);
+ DECLARE_WRITE8_MEMBER(qb3_ram_bank_w);
};
diff --git a/src/mame/includes/circus.h b/src/mame/includes/circus.h
index 2bea99c3b92..c6f96bc6110 100644
--- a/src/mame/includes/circus.h
+++ b/src/mame/includes/circus.h
@@ -22,6 +22,7 @@ public:
/* game id */
int m_game_id;
+ DECLARE_READ8_MEMBER(circus_paddle_r);
};
diff --git a/src/mame/includes/circusc.h b/src/mame/includes/circusc.h
index 5f815bce1c5..c332f403ccb 100644
--- a/src/mame/includes/circusc.h
+++ b/src/mame/includes/circusc.h
@@ -33,6 +33,11 @@ public:
device_t *m_discrete;
UINT8 m_irq_mask;
+ DECLARE_READ8_MEMBER(circusc_sh_timer_r);
+ DECLARE_WRITE8_MEMBER(circusc_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(circusc_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(circusc_sound_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h
index 500ff11cc3c..0104f1b57c7 100644
--- a/src/mame/includes/cischeat.h
+++ b/src/mame/includes/cischeat.h
@@ -28,6 +28,22 @@ public:
int m_debugsprites;
int m_show_unknown;
UINT16 *m_spriteram;
+ DECLARE_WRITE16_MEMBER(bigrun_paletteram16_w);
+ DECLARE_WRITE16_MEMBER(cischeat_paletteram16_w);
+ DECLARE_WRITE16_MEMBER(f1gpstar_paletteram16_w);
+ DECLARE_WRITE16_MEMBER(scudhamm_paletteram16_w);
+ DECLARE_WRITE16_MEMBER(scudhamm_motor_command_w);
+ DECLARE_WRITE16_MEMBER(scudhamm_leds_w);
+ DECLARE_WRITE16_MEMBER(scudhamm_enable_w);
+ DECLARE_WRITE16_MEMBER(scudhamm_oki_bank_w);
+ DECLARE_READ16_MEMBER(armchmp2_motor_status_r);
+ DECLARE_WRITE16_MEMBER(armchmp2_motor_command_w);
+ DECLARE_READ16_MEMBER(armchmp2_analog_r);
+ DECLARE_READ16_MEMBER(armchmp2_buttons_r);
+ DECLARE_WRITE16_MEMBER(armchmp2_leds_w);
+ DECLARE_WRITE16_MEMBER(bigrun_soundbank_w);
+ DECLARE_READ16_MEMBER(f1gpstr2_io_r);
+ DECLARE_WRITE16_MEMBER(f1gpstr2_io_w);
};
diff --git a/src/mame/includes/citycon.h b/src/mame/includes/citycon.h
index 5df49e5b11e..8e65fddf196 100644
--- a/src/mame/includes/citycon.h
+++ b/src/mame/includes/citycon.h
@@ -25,6 +25,8 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_READ8_MEMBER(citycon_in_r);
+ DECLARE_READ8_MEMBER(citycon_irq_ack_r);
};
diff --git a/src/mame/includes/cloak.h b/src/mame/includes/cloak.h
index faa1f4f4e34..aef57dd325f 100644
--- a/src/mame/includes/cloak.h
+++ b/src/mame/includes/cloak.h
@@ -22,6 +22,12 @@ public:
UINT8 *m_current_bitmap_videoram_displayed;
UINT16 *m_palette_ram;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(cloak_led_w);
+ DECLARE_WRITE8_MEMBER(cloak_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(cloak_custom_w);
+ DECLARE_WRITE8_MEMBER(cloak_irq_reset_0_w);
+ DECLARE_WRITE8_MEMBER(cloak_irq_reset_1_w);
+ DECLARE_WRITE8_MEMBER(cloak_nvram_enable_w);
};
diff --git a/src/mame/includes/cloud9.h b/src/mame/includes/cloud9.h
index 065e0a9a65d..834d1052805 100644
--- a/src/mame/includes/cloud9.h
+++ b/src/mame/includes/cloud9.h
@@ -40,6 +40,12 @@ public:
/* devices */
required_device<m6502_device> m_maincpu;
required_device<x2212_device> m_nvram;
+ DECLARE_WRITE8_MEMBER(irq_ack_w);
+ DECLARE_WRITE8_MEMBER(cloud9_led_w);
+ DECLARE_WRITE8_MEMBER(cloud9_coin_counter_w);
+ DECLARE_READ8_MEMBER(leta_r);
+ DECLARE_WRITE8_MEMBER(nvram_recall_w);
+ DECLARE_WRITE8_MEMBER(nvram_store_w);
};
diff --git a/src/mame/includes/clshroad.h b/src/mame/includes/clshroad.h
index 19618d85729..136682fa7da 100644
--- a/src/mame/includes/clshroad.h
+++ b/src/mame/includes/clshroad.h
@@ -12,6 +12,7 @@ public:
tilemap_t *m_tilemap_1;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_READ8_MEMBER(clshroad_input_r);
};
diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h
index f7f037de885..ffaceb4af0c 100644
--- a/src/mame/includes/cninja.h
+++ b/src/mame/includes/cninja.h
@@ -45,6 +45,13 @@ public:
optional_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram2;
+ DECLARE_WRITE16_MEMBER(cninja_sound_w);
+ DECLARE_WRITE16_MEMBER(stoneage_sound_w);
+ DECLARE_READ16_MEMBER(cninja_irq_r);
+ DECLARE_WRITE16_MEMBER(cninja_irq_w);
+ DECLARE_READ16_MEMBER(robocop2_prot_r);
+ DECLARE_WRITE16_MEMBER(cninja_pf12_control_w);
+ DECLARE_WRITE16_MEMBER(cninja_pf34_control_w);
};
/*----------- defined in video/cninja.c -----------*/
diff --git a/src/mame/includes/combatsc.h b/src/mame/includes/combatsc.h
index 5f2c08cf0b6..bf1308e497d 100644
--- a/src/mame/includes/combatsc.h
+++ b/src/mame/includes/combatsc.h
@@ -41,6 +41,19 @@ public:
cpu_device *m_audiocpu;
device_t *m_k007121_1;
device_t *m_k007121_2;
+ DECLARE_WRITE8_MEMBER(combatsc_vreg_w);
+ DECLARE_WRITE8_MEMBER(combatscb_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(combatscb_io_r);
+ DECLARE_WRITE8_MEMBER(combatscb_priority_w);
+ DECLARE_WRITE8_MEMBER(combatsc_bankselect_w);
+ DECLARE_WRITE8_MEMBER(combatscb_io_w);
+ DECLARE_WRITE8_MEMBER(combatscb_bankselect_w);
+ DECLARE_WRITE8_MEMBER(combatsc_coin_counter_w);
+ DECLARE_READ8_MEMBER(trackball_r);
+ DECLARE_WRITE8_MEMBER(protection_w);
+ DECLARE_READ8_MEMBER(protection_r);
+ DECLARE_WRITE8_MEMBER(protection_clock_w);
+ DECLARE_WRITE8_MEMBER(combatsc_sh_irqtrigger_w);
};
diff --git a/src/mame/includes/compgolf.h b/src/mame/includes/compgolf.h
index 5119c5dda90..af9cdbb892a 100644
--- a/src/mame/includes/compgolf.h
+++ b/src/mame/includes/compgolf.h
@@ -25,6 +25,7 @@ public:
/* misc */
int m_bank;
+ DECLARE_WRITE8_MEMBER(compgolf_ctrl_w);
};
diff --git a/src/mame/includes/contra.h b/src/mame/includes/contra.h
index 99086871eb8..b5b5f4e22ec 100644
--- a/src/mame/includes/contra.h
+++ b/src/mame/includes/contra.h
@@ -34,6 +34,10 @@ public:
device_t *m_audiocpu;
device_t *m_k007121_1;
device_t *m_k007121_2;
+ DECLARE_WRITE8_MEMBER(contra_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(contra_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(contra_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(cpu_sound_command_w);
};
diff --git a/src/mame/includes/coolpool.h b/src/mame/includes/coolpool.h
index 3a1ee040acd..13d855b84d5 100644
--- a/src/mame/includes/coolpool.h
+++ b/src/mame/includes/coolpool.h
@@ -31,4 +31,24 @@ public:
UINT8 m_nvram_write_enable;
UINT8 m_old_cmd;
UINT8 m_same_cmd_count;
+ DECLARE_WRITE16_MEMBER(nvram_thrash_w);
+ DECLARE_WRITE16_MEMBER(nvram_data_w);
+ DECLARE_WRITE16_MEMBER(nvram_thrash_data_w);
+ DECLARE_WRITE16_MEMBER(amerdart_misc_w);
+ DECLARE_READ16_MEMBER(amerdart_dsp_bio_line_r);
+ DECLARE_READ16_MEMBER(amerdart_iop_r);
+ DECLARE_WRITE16_MEMBER(amerdart_iop_w);
+ DECLARE_READ16_MEMBER(amerdart_dsp_cmd_r);
+ DECLARE_WRITE16_MEMBER(amerdart_dsp_answer_w);
+ DECLARE_READ16_MEMBER(amerdart_trackball_r);
+ DECLARE_WRITE16_MEMBER(coolpool_misc_w);
+ DECLARE_WRITE16_MEMBER(coolpool_iop_w);
+ DECLARE_READ16_MEMBER(coolpool_iop_r);
+ DECLARE_READ16_MEMBER(dsp_cmd_r);
+ DECLARE_WRITE16_MEMBER(dsp_answer_w);
+ DECLARE_READ16_MEMBER(dsp_bio_line_r);
+ DECLARE_READ16_MEMBER(dsp_hold_line_r);
+ DECLARE_READ16_MEMBER(dsp_rom_r);
+ DECLARE_WRITE16_MEMBER(dsp_romaddr_w);
+ DECLARE_READ16_MEMBER(coolpool_input_r);
};
diff --git a/src/mame/includes/cop01.h b/src/mame/includes/cop01.h
index 1b69fe21b81..8ec32c49678 100644
--- a/src/mame/includes/cop01.h
+++ b/src/mame/includes/cop01.h
@@ -28,6 +28,11 @@ public:
/* devices */
cpu_device *m_maincpu;
cpu_device *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(cop01_sound_command_w);
+ DECLARE_READ8_MEMBER(cop01_sound_command_r);
+ DECLARE_WRITE8_MEMBER(cop01_irq_ack_w);
+ DECLARE_READ8_MEMBER(cop01_sound_irq_ack_w);
+ DECLARE_READ8_MEMBER(kludge);
};
diff --git a/src/mame/includes/copsnrob.h b/src/mame/includes/copsnrob.h
index 5bd860038cf..fd3471f8bca 100644
--- a/src/mame/includes/copsnrob.h
+++ b/src/mame/includes/copsnrob.h
@@ -25,6 +25,8 @@ public:
/* misc */
UINT8 m_misc;
UINT8 m_ic_h3_data;
+ DECLARE_READ8_MEMBER(copsnrob_misc_r);
+ DECLARE_WRITE8_MEMBER(copsnrob_misc2_w);
};
diff --git a/src/mame/includes/cosmic.h b/src/mame/includes/cosmic.h
index 9be549fb49d..17ccbee0dcc 100644
--- a/src/mame/includes/cosmic.h
+++ b/src/mame/includes/cosmic.h
@@ -40,6 +40,15 @@ public:
/* devices */
samples_device *m_samples;
device_t *m_dac;
+ DECLARE_WRITE8_MEMBER(panic_sound_output_w);
+ DECLARE_WRITE8_MEMBER(panic_sound_output2_w);
+ DECLARE_WRITE8_MEMBER(cosmicg_output_w);
+ DECLARE_WRITE8_MEMBER(cosmica_sound_output_w);
+ DECLARE_READ8_MEMBER(cosmica_pixel_clock_r);
+ DECLARE_READ8_MEMBER(cosmicg_port_0_r);
+ DECLARE_READ8_MEMBER(magspot_coinage_dip_r);
+ DECLARE_READ8_MEMBER(nomnlnd_port_0_1_r);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
};
diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h
index 6bc6309b94b..2834f3aa5e5 100644
--- a/src/mame/includes/cps1.h
+++ b/src/mame/includes/cps1.h
@@ -139,6 +139,20 @@ public:
device_t *m_audiocpu;
msm5205_device *m_msm_1; // fcrash
msm5205_device *m_msm_2; // fcrash
+ DECLARE_READ16_MEMBER(cps1_hack_dsw_r);
+ DECLARE_READ16_MEMBER(forgottn_dial_0_r);
+ DECLARE_READ16_MEMBER(forgottn_dial_1_r);
+ DECLARE_WRITE16_MEMBER(forgottn_dial_0_reset_w);
+ DECLARE_WRITE16_MEMBER(forgottn_dial_1_reset_w);
+ DECLARE_WRITE8_MEMBER(cps1_snd_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(cps1_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(cps1_soundlatch2_w);
+ DECLARE_WRITE16_MEMBER(cpsq_coinctrl2_w);
+ DECLARE_READ16_MEMBER(qsound_rom_r);
+ DECLARE_READ16_MEMBER(qsound_sharedram2_r);
+ DECLARE_WRITE16_MEMBER(qsound_sharedram2_w);
+ DECLARE_WRITE8_MEMBER(qsound_banksw_w);
+ DECLARE_READ16_MEMBER(sf2mdt_r);
};
/*----------- defined in drivers/cps1.c -----------*/
diff --git a/src/mame/includes/cps3.h b/src/mame/includes/cps3.h
index d5ee0ecb56a..07817b67737 100644
--- a/src/mame/includes/cps3.h
+++ b/src/mame/includes/cps3.h
@@ -58,6 +58,36 @@ public:
unsigned short m_lastb2;
UINT32* m_mainram;
UINT8* m_user5region;
+ DECLARE_READ32_MEMBER(cps3_ssram_r);
+ DECLARE_WRITE32_MEMBER(cps3_ssram_w);
+ DECLARE_WRITE32_MEMBER(cps3_0xc0000000_ram_w);
+ DECLARE_WRITE32_MEMBER(cram_bank_w);
+ DECLARE_READ32_MEMBER(cram_data_r);
+ DECLARE_WRITE32_MEMBER(cram_data_w);
+ DECLARE_READ32_MEMBER(cps3_gfxflash_r);
+ DECLARE_WRITE32_MEMBER(cps3_gfxflash_w);
+ DECLARE_READ32_MEMBER(cps3_flash1_r);
+ DECLARE_READ32_MEMBER(cps3_flash2_r);
+ DECLARE_WRITE32_MEMBER(cps3_flash1_w);
+ DECLARE_WRITE32_MEMBER(cps3_flash2_w);
+ DECLARE_WRITE32_MEMBER(cram_gfxflash_bank_w);
+ DECLARE_READ32_MEMBER(cps3_vbl_r);
+ DECLARE_READ32_MEMBER(cps3_unk_io_r);
+ DECLARE_READ32_MEMBER(cps3_40C0000_r);
+ DECLARE_READ32_MEMBER(cps3_40C0004_r);
+ DECLARE_READ32_MEMBER(cps3_eeprom_r);
+ DECLARE_WRITE32_MEMBER(cps3_eeprom_w);
+ DECLARE_READ32_MEMBER(cps3_cdrom_r);
+ DECLARE_WRITE32_MEMBER(cps3_cdrom_w);
+ DECLARE_WRITE32_MEMBER(cps3_ss_bank_base_w);
+ DECLARE_WRITE32_MEMBER(cps3_ss_pal_base_w);
+ DECLARE_WRITE32_MEMBER(cps3_palettedma_w);
+ DECLARE_WRITE32_MEMBER(cps3_characterdma_w);
+ DECLARE_WRITE32_MEMBER(cps3_irq10_ack_w);
+ DECLARE_WRITE32_MEMBER(cps3_irq12_ack_w);
+ DECLARE_WRITE32_MEMBER(cps3_unk_vidregs_w);
+ DECLARE_READ32_MEMBER(cps3_colourram_r);
+ DECLARE_WRITE32_MEMBER(cps3_colourram_w);
};
diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h
index 3cd6ff5088c..9896bb17995 100644
--- a/src/mame/includes/crbaloon.h
+++ b/src/mame/includes/crbaloon.h
@@ -22,6 +22,9 @@ public:
UINT8 m_collision_address_clear;
tilemap_t *m_bg_tilemap;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(pc3092_w);
+ DECLARE_READ8_MEMBER(pc3259_r);
+ DECLARE_WRITE8_MEMBER(port_sound_w);
};
diff --git a/src/mame/includes/crgolf.h b/src/mame/includes/crgolf.h
index 568685184fa..760d64c0d07 100644
--- a/src/mame/includes/crgolf.h
+++ b/src/mame/includes/crgolf.h
@@ -32,6 +32,15 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(rom_bank_select_w);
+ DECLARE_READ8_MEMBER(switch_input_r);
+ DECLARE_READ8_MEMBER(analog_input_r);
+ DECLARE_WRITE8_MEMBER(switch_input_select_w);
+ DECLARE_WRITE8_MEMBER(unknown_w);
+ DECLARE_WRITE8_MEMBER(main_to_sound_w);
+ DECLARE_READ8_MEMBER(main_to_sound_r);
+ DECLARE_WRITE8_MEMBER(sound_to_main_w);
+ DECLARE_READ8_MEMBER(sound_to_main_r);
};
/*----------- defined in video/crgolf.c -----------*/
diff --git a/src/mame/includes/crimfght.h b/src/mame/includes/crimfght.h
index 91a45d81ffd..e02e06561ec 100644
--- a/src/mame/includes/crimfght.h
+++ b/src/mame/includes/crimfght.h
@@ -23,6 +23,10 @@ public:
device_t *m_k007232;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_WRITE8_MEMBER(crimfght_coin_w);
+ DECLARE_WRITE8_MEMBER(crimfght_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
/*----------- defined in video/crimfght.c -----------*/
diff --git a/src/mame/includes/crospang.h b/src/mame/includes/crospang.h
index 487237af513..5e6324d14d0 100644
--- a/src/mame/includes/crospang.h
+++ b/src/mame/includes/crospang.h
@@ -24,6 +24,7 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(crospang_soundlatch_w);
};
diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h
index bd43b58b7be..fc27503a0a9 100644
--- a/src/mame/includes/crshrace.h
+++ b/src/mame/includes/crshrace.h
@@ -31,6 +31,11 @@ public:
required_device<k053936_device> m_k053936;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
+ DECLARE_READ16_MEMBER(extrarom1_r);
+ DECLARE_READ16_MEMBER(extrarom2_r);
+ DECLARE_WRITE8_MEMBER(crshrace_sh_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
};
/*----------- defined in video/crshrace.c -----------*/
diff --git a/src/mame/includes/cvs.h b/src/mame/includes/cvs.h
index cc5bcab5065..dddf8a61fc4 100644
--- a/src/mame/includes/cvs.h
+++ b/src/mame/includes/cvs.h
@@ -63,6 +63,12 @@ public:
UINT8 m_character_ram[3 * 0x800]; /* only half is used, but
by allocating twice the amount,
we can use the same gfx_layout */
+ DECLARE_READ8_MEMBER(cvs_input_r);
+ DECLARE_READ8_MEMBER(cvs_393hz_clock_r);
+ DECLARE_WRITE8_MEMBER(cvs_speech_rom_address_lo_w);
+ DECLARE_WRITE8_MEMBER(cvs_speech_rom_address_hi_w);
+ DECLARE_READ8_MEMBER(cvs_speech_command_r);
+ DECLARE_WRITE8_MEMBER(audio_command_w);
};
diff --git a/src/mame/includes/darius.h b/src/mame/includes/darius.h
index dd70d3053db..8844307b713 100644
--- a/src/mame/includes/darius.h
+++ b/src/mame/includes/darius.h
@@ -61,6 +61,23 @@ public:
device_t *m_filter1_3r;
device_t *m_msm5205_l;
device_t *m_msm5205_r;
+ DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
+ DECLARE_WRITE16_MEMBER(darius_watchdog_w);
+ DECLARE_READ16_MEMBER(darius_ioc_r);
+ DECLARE_WRITE16_MEMBER(darius_ioc_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(adpcm_command_w);
+ DECLARE_WRITE8_MEMBER(display_value);
+ DECLARE_WRITE8_MEMBER(darius_fm0_pan);
+ DECLARE_WRITE8_MEMBER(darius_fm1_pan);
+ DECLARE_WRITE8_MEMBER(darius_psg0_pan);
+ DECLARE_WRITE8_MEMBER(darius_psg1_pan);
+ DECLARE_WRITE8_MEMBER(darius_da_pan);
+ DECLARE_READ8_MEMBER(adpcm_command_read);
+ DECLARE_READ8_MEMBER(readport2);
+ DECLARE_READ8_MEMBER(readport3);
+ DECLARE_WRITE8_MEMBER(adpcm_nmi_disable);
+ DECLARE_WRITE8_MEMBER(adpcm_nmi_enable);
};
diff --git a/src/mame/includes/darkmist.h b/src/mame/includes/darkmist.h
index 22979a51955..10ad59c3758 100644
--- a/src/mame/includes/darkmist.h
+++ b/src/mame/includes/darkmist.h
@@ -14,6 +14,7 @@ public:
tilemap_t *m_txtilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(darkmist_hw_w);
};
diff --git a/src/mame/includes/darkseal.h b/src/mame/includes/darkseal.h
index 3a12625b75c..9dcee8ec321 100644
--- a/src/mame/includes/darkseal.h
+++ b/src/mame/includes/darkseal.h
@@ -21,6 +21,8 @@ public:
required_device<buffered_spriteram16_device> m_spriteram;
int m_flipscreen;
+ DECLARE_WRITE16_MEMBER(darkseal_control_w);
+ DECLARE_READ16_MEMBER(darkseal_control_r);
};
diff --git a/src/mame/includes/dassault.h b/src/mame/includes/dassault.h
index cb75db4ecd6..1f25b9873df 100644
--- a/src/mame/includes/dassault.h
+++ b/src/mame/includes/dassault.h
@@ -41,6 +41,14 @@ public:
required_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
+ DECLARE_READ16_MEMBER(dassault_control_r);
+ DECLARE_WRITE16_MEMBER(dassault_control_w);
+ DECLARE_READ16_MEMBER(dassault_sub_control_r);
+ DECLARE_WRITE16_MEMBER(dassault_sound_w);
+ DECLARE_READ16_MEMBER(dassault_irq_r);
+ DECLARE_WRITE16_MEMBER(dassault_irq_w);
+ DECLARE_WRITE16_MEMBER(shared_ram_w);
+ DECLARE_READ16_MEMBER(shared_ram_r);
};
diff --git a/src/mame/includes/dbz.h b/src/mame/includes/dbz.h
index e7226a7a10d..7a2a990bf63 100644
--- a/src/mame/includes/dbz.h
+++ b/src/mame/includes/dbz.h
@@ -33,6 +33,10 @@ public:
device_t *m_k056832;
device_t *m_k053936_1;
device_t *m_k053936_2;
+ DECLARE_READ16_MEMBER(dbzcontrol_r);
+ DECLARE_WRITE16_MEMBER(dbzcontrol_w);
+ DECLARE_WRITE16_MEMBER(dbz_sound_command_w);
+ DECLARE_WRITE16_MEMBER(dbz_sound_cause_nmi);
};
diff --git a/src/mame/includes/dcheese.h b/src/mame/includes/dcheese.h
index b0e489b054a..af013133dbc 100644
--- a/src/mame/includes/dcheese.h
+++ b/src/mame/includes/dcheese.h
@@ -30,6 +30,12 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_bsmt;
+ DECLARE_WRITE16_MEMBER(eeprom_control_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_READ8_MEMBER(sound_command_r);
+ DECLARE_READ8_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(sound_control_w);
+ DECLARE_WRITE8_MEMBER(bsmt_data_w);
};
diff --git a/src/mame/includes/ddragon3.h b/src/mame/includes/ddragon3.h
index 5ca7e2b0f2b..08917feabf6 100644
--- a/src/mame/includes/ddragon3.h
+++ b/src/mame/includes/ddragon3.h
@@ -33,6 +33,7 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(ddragon3_io_w);
};
diff --git a/src/mame/includes/ddribble.h b/src/mame/includes/ddribble.h
index 417058bcc83..504ef3d47a5 100644
--- a/src/mame/includes/ddribble.h
+++ b/src/mame/includes/ddribble.h
@@ -33,6 +33,12 @@ public:
device_t *m_filter1;
device_t *m_filter2;
device_t *m_filter3;
+ DECLARE_WRITE8_MEMBER(ddribble_bankswitch_w);
+ DECLARE_READ8_MEMBER(ddribble_sharedram_r);
+ DECLARE_WRITE8_MEMBER(ddribble_sharedram_w);
+ DECLARE_READ8_MEMBER(ddribble_snd_sharedram_r);
+ DECLARE_WRITE8_MEMBER(ddribble_snd_sharedram_w);
+ DECLARE_WRITE8_MEMBER(ddribble_coin_counter_w);
};
/*----------- defined in video/ddribble.c -----------*/
diff --git a/src/mame/includes/deadang.h b/src/mame/includes/deadang.h
index f016ed877c0..b787074cbfc 100644
--- a/src/mame/includes/deadang.h
+++ b/src/mame/includes/deadang.h
@@ -14,6 +14,8 @@ public:
int m_deadangle_tilebank;
int m_deadangle_oldtilebank;
UINT16 *m_spriteram;
+ DECLARE_READ16_MEMBER(ghunter_trackball_low_r);
+ DECLARE_READ16_MEMBER(ghunter_trackball_high_r);
};
diff --git a/src/mame/includes/dec0.h b/src/mame/includes/dec0.h
index aa44659b9c3..75c24bc21dd 100644
--- a/src/mame/includes/dec0.h
+++ b/src/mame/includes/dec0.h
@@ -21,6 +21,12 @@ public:
UINT16 *m_spriteram;
UINT16 *m_buffered_spriteram;
UINT16 m_pri;
+ DECLARE_WRITE16_MEMBER(dec0_control_w);
+ DECLARE_WRITE16_MEMBER(automat_control_w);
+ DECLARE_WRITE16_MEMBER(slyspy_control_w);
+ DECLARE_WRITE16_MEMBER(midres_sound_w);
+ DECLARE_WRITE16_MEMBER(unmapped_w);
+ DECLARE_WRITE8_MEMBER(automat_adpcm_w);
};
diff --git a/src/mame/includes/dec8.h b/src/mame/includes/dec8.h
index 3ed5f50baf3..6f23f910caa 100644
--- a/src/mame/includes/dec8.h
+++ b/src/mame/includes/dec8.h
@@ -52,6 +52,28 @@ public:
device_t *m_audiocpu;
device_t *m_mcu;
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_WRITE8_MEMBER(dec8_mxc06_karn_buffer_spriteram_w);
+ DECLARE_READ8_MEMBER(i8751_h_r);
+ DECLARE_READ8_MEMBER(i8751_l_r);
+ DECLARE_WRITE8_MEMBER(i8751_reset_w);
+ DECLARE_READ8_MEMBER(gondo_player_1_r);
+ DECLARE_READ8_MEMBER(gondo_player_2_r);
+ DECLARE_WRITE8_MEMBER(dec8_i8751_w);
+ DECLARE_WRITE8_MEMBER(lastmisn_i8751_w);
+ DECLARE_WRITE8_MEMBER(shackled_i8751_w);
+ DECLARE_WRITE8_MEMBER(csilver_i8751_w);
+ DECLARE_WRITE8_MEMBER(srdarwin_i8751_w);
+ DECLARE_WRITE8_MEMBER(dec8_bank_w);
+ DECLARE_WRITE8_MEMBER(ghostb_bank_w);
+ DECLARE_WRITE8_MEMBER(csilver_control_w);
+ DECLARE_WRITE8_MEMBER(dec8_sound_w);
+ DECLARE_WRITE8_MEMBER(csilver_adpcm_data_w);
+ DECLARE_WRITE8_MEMBER(csilver_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(oscar_int_w);
+ DECLARE_WRITE8_MEMBER(shackled_int_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
+ DECLARE_READ8_MEMBER(dec8_mcu_from_main_r);
+ DECLARE_WRITE8_MEMBER(dec8_mcu_to_main_w);
};
/*----------- defined in video/dec8.c -----------*/
diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h
index 485906d78e5..304f8e9b14f 100644
--- a/src/mame/includes/deco32.h
+++ b/src/mame/includes/deco32.h
@@ -55,6 +55,34 @@ public:
device_t *m_deco_tilegen1;
device_t *m_deco_tilegen2;
UINT8 m_irq_source;
+ DECLARE_READ32_MEMBER(deco32_irq_controller_r);
+ DECLARE_WRITE32_MEMBER(deco32_irq_controller_w);
+ DECLARE_WRITE32_MEMBER(deco32_sound_w);
+ DECLARE_READ32_MEMBER(deco32_71_r);
+ DECLARE_READ32_MEMBER(captaven_prot_r);
+ DECLARE_READ32_MEMBER(captaven_soundcpu_r);
+ DECLARE_READ32_MEMBER(fghthist_control_r);
+ DECLARE_WRITE32_MEMBER(fghthist_eeprom_w);
+ DECLARE_READ32_MEMBER(dragngun_service_r);
+ DECLARE_READ32_MEMBER(lockload_gun_mirror_r);
+ DECLARE_READ32_MEMBER(dragngun_prot_r);
+ DECLARE_READ32_MEMBER(tattass_prot_r);
+ DECLARE_WRITE32_MEMBER(tattass_prot_w);
+ DECLARE_WRITE32_MEMBER(tattass_control_w);
+ DECLARE_READ32_MEMBER(nslasher_prot_r);
+ DECLARE_WRITE32_MEMBER(nslasher_eeprom_w);
+ DECLARE_WRITE32_MEMBER(nslasher_prot_w);
+ DECLARE_READ32_MEMBER(deco32_spriteram_r);
+ DECLARE_WRITE32_MEMBER(deco32_spriteram_w);
+ DECLARE_WRITE32_MEMBER(deco32_buffer_spriteram_w);
+ DECLARE_READ32_MEMBER(deco32_spriteram2_r);
+ DECLARE_WRITE32_MEMBER(deco32_spriteram2_w);
+ DECLARE_WRITE32_MEMBER(deco32_buffer_spriteram2_w);
+ DECLARE_WRITE32_MEMBER(deco32_pf1_rowscroll_w);
+ DECLARE_WRITE32_MEMBER(deco32_pf2_rowscroll_w);
+ DECLARE_WRITE32_MEMBER(deco32_pf3_rowscroll_w);
+ DECLARE_WRITE32_MEMBER(deco32_pf4_rowscroll_w);
+ DECLARE_READ8_MEMBER(latch_r);
};
class dragngun_state : public deco32_state
@@ -69,6 +97,8 @@ public:
UINT32 *m_dragngun_sprite_lookup_1_ram;
UINT32 m_dragngun_sprite_ctrl;
int m_dragngun_lightgun_port;
+ DECLARE_READ32_MEMBER(dragngun_lightgun_r);
+ DECLARE_WRITE32_MEMBER(dragngun_lightgun_w);
};
diff --git a/src/mame/includes/deco_mlc.h b/src/mame/includes/deco_mlc.h
index d530da5dce0..bee4f51cc82 100644
--- a/src/mame/includes/deco_mlc.h
+++ b/src/mame/includes/deco_mlc.h
@@ -17,6 +17,16 @@ public:
UINT32 *m_mlc_buffered_spriteram;
UINT32 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_READ32_MEMBER(test2_r);
+ DECLARE_READ32_MEMBER(test3_r);
+ DECLARE_WRITE32_MEMBER(avengrs_palette_w);
+ DECLARE_READ32_MEMBER(decomlc_vbl_r);
+ DECLARE_READ32_MEMBER(mlc_scanline_r);
+ DECLARE_WRITE32_MEMBER(mlc_irq_w);
+ DECLARE_READ32_MEMBER(mlc_spriteram_r);
+ DECLARE_READ32_MEMBER(mlc_vram_r);
+ DECLARE_READ32_MEMBER(stadhr96_prot_146_r);
+ DECLARE_READ32_MEMBER(avengrgs_speedup_r);
};
diff --git a/src/mame/includes/deniam.h b/src/mame/includes/deniam.h
index 26202a94c17..c66d9410bf2 100644
--- a/src/mame/includes/deniam.h
+++ b/src/mame/includes/deniam.h
@@ -39,6 +39,8 @@ public:
/* devices */
device_t *m_audio_cpu; // system 16c does not have sound CPU
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE16_MEMBER(deniam_irq_ack_w);
};
diff --git a/src/mame/includes/djboy.h b/src/mame/includes/djboy.h
index 2062ebf762c..6e5db4adb98 100644
--- a/src/mame/includes/djboy.h
+++ b/src/mame/includes/djboy.h
@@ -42,6 +42,23 @@ public:
device_t *m_cpu2;
device_t *m_pandora;
device_t *m_beast;
+ DECLARE_WRITE8_MEMBER(beast_data_w);
+ DECLARE_READ8_MEMBER(beast_data_r);
+ DECLARE_READ8_MEMBER(beast_status_r);
+ DECLARE_WRITE8_MEMBER(trigger_nmi_on_cpu0);
+ DECLARE_WRITE8_MEMBER(cpu0_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(cpu1_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(coin_count_w);
+ DECLARE_WRITE8_MEMBER(trigger_nmi_on_sound_cpu2);
+ DECLARE_WRITE8_MEMBER(cpu2_bankswitch_w);
+ DECLARE_READ8_MEMBER(beast_p0_r);
+ DECLARE_WRITE8_MEMBER(beast_p0_w);
+ DECLARE_READ8_MEMBER(beast_p1_r);
+ DECLARE_WRITE8_MEMBER(beast_p1_w);
+ DECLARE_READ8_MEMBER(beast_p2_r);
+ DECLARE_WRITE8_MEMBER(beast_p2_w);
+ DECLARE_READ8_MEMBER(beast_p3_r);
+ DECLARE_WRITE8_MEMBER(beast_p3_w);
};
diff --git a/src/mame/includes/djmain.h b/src/mame/includes/djmain.h
index 1dc94562a1d..9f303641310 100644
--- a/src/mame/includes/djmain.h
+++ b/src/mame/includes/djmain.h
@@ -15,6 +15,24 @@ public:
const UINT8 *m_ide_user_password;
const UINT8 *m_ide_master_password;
UINT32 *m_obj_ram;
+ DECLARE_WRITE32_MEMBER(paletteram32_w);
+ DECLARE_WRITE32_MEMBER(sndram_bank_w);
+ DECLARE_READ32_MEMBER(sndram_r);
+ DECLARE_WRITE32_MEMBER(sndram_w);
+ DECLARE_READ32_MEMBER(obj_ctrl_r);
+ DECLARE_WRITE32_MEMBER(obj_ctrl_w);
+ DECLARE_READ32_MEMBER(obj_rom_r);
+ DECLARE_WRITE32_MEMBER(v_ctrl_w);
+ DECLARE_READ32_MEMBER(v_rom_r);
+ DECLARE_READ8_MEMBER(inp1_r);
+ DECLARE_READ8_MEMBER(inp2_r);
+ DECLARE_READ32_MEMBER(turntable_r);
+ DECLARE_WRITE32_MEMBER(turntable_select_w);
+ DECLARE_WRITE32_MEMBER(light_ctrl_1_w);
+ DECLARE_WRITE32_MEMBER(light_ctrl_2_w);
+ DECLARE_WRITE32_MEMBER(unknown590000_w);
+ DECLARE_WRITE32_MEMBER(unknown802000_w);
+ DECLARE_WRITE32_MEMBER(unknownc02000_w);
};
diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h
index 9f224c639af..358d63b5ae1 100644
--- a/src/mame/includes/dkong.h
+++ b/src/mame/includes/dkong.h
@@ -198,6 +198,23 @@ public:
/* reverse address lookup map - hunchbkd */
INT16 m_rev_map[0x200];
+ DECLARE_READ8_MEMBER(hb_dma_read_byte);
+ DECLARE_WRITE8_MEMBER(hb_dma_write_byte);
+ DECLARE_WRITE8_MEMBER(dkong3_coin_counter_w);
+ DECLARE_READ8_MEMBER(dkong_in2_r);
+ DECLARE_READ8_MEMBER(dkongjr_in2_r);
+ DECLARE_READ8_MEMBER(s2650_mirror_r);
+ DECLARE_WRITE8_MEMBER(s2650_mirror_w);
+ DECLARE_READ8_MEMBER(epos_decrypt_rom);
+ DECLARE_WRITE8_MEMBER(s2650_data_w);
+ DECLARE_WRITE8_MEMBER(s2650_fo_w);
+ DECLARE_READ8_MEMBER(s2650_port0_r);
+ DECLARE_READ8_MEMBER(s2650_port1_r);
+ DECLARE_WRITE8_MEMBER(dkong3_2a03_reset_w);
+ DECLARE_READ8_MEMBER(strtheat_inputport_0_r);
+ DECLARE_READ8_MEMBER(strtheat_inputport_1_r);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
+ DECLARE_WRITE8_MEMBER(braze_a15_w);
};
/*----------- defined in video/dkong.c -----------*/
diff --git a/src/mame/includes/dogfgt.h b/src/mame/includes/dogfgt.h
index 0c228f88c8c..807a0857216 100644
--- a/src/mame/includes/dogfgt.h
+++ b/src/mame/includes/dogfgt.h
@@ -32,6 +32,12 @@ public:
/* devices */
device_t *m_subcpu;
+ DECLARE_READ8_MEMBER(sharedram_r);
+ DECLARE_WRITE8_MEMBER(sharedram_w);
+ DECLARE_WRITE8_MEMBER(subirqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sub_irqack_w);
+ DECLARE_WRITE8_MEMBER(dogfgt_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(dogfgt_soundcontrol_w);
};
diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h
index bb509e8bccf..1a2cedefcea 100644
--- a/src/mame/includes/dooyong.h
+++ b/src/mame/includes/dooyong.h
@@ -42,6 +42,8 @@ public:
int m_interrupt_line_2;
optional_device<buffered_spriteram8_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram16;
+ DECLARE_WRITE8_MEMBER(lastday_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
};
diff --git a/src/mame/includes/dragrace.h b/src/mame/includes/dragrace.h
index bd942f00e57..f6f81d4ce72 100644
--- a/src/mame/includes/dragrace.h
+++ b/src/mame/includes/dragrace.h
@@ -41,6 +41,11 @@ public:
/* devices */
device_t *m_discrete;
+ DECLARE_WRITE8_MEMBER(dragrace_misc_w);
+ DECLARE_WRITE8_MEMBER(dragrace_misc_clear_w);
+ DECLARE_READ8_MEMBER(dragrace_input_r);
+ DECLARE_READ8_MEMBER(dragrace_steering_r);
+ DECLARE_READ8_MEMBER(dragrace_scanline_r);
};
diff --git a/src/mame/includes/drgnmst.h b/src/mame/includes/drgnmst.h
index 83bb9a26717..1ea3506c315 100644
--- a/src/mame/includes/drgnmst.h
+++ b/src/mame/includes/drgnmst.h
@@ -37,6 +37,16 @@ public:
/* devices */
required_device<okim6295_device> m_oki_1;
required_device<okim6295_device> m_oki_2;
+ DECLARE_WRITE16_MEMBER(drgnmst_coin_w);
+ DECLARE_WRITE16_MEMBER(drgnmst_snd_command_w);
+ DECLARE_WRITE16_MEMBER(drgnmst_snd_flag_w);
+ DECLARE_READ8_MEMBER(pic16c5x_port0_r);
+ DECLARE_READ8_MEMBER(drgnmst_snd_command_r);
+ DECLARE_READ8_MEMBER(drgnmst_snd_flag_r);
+ DECLARE_WRITE8_MEMBER(drgnmst_pcm_banksel_w);
+ DECLARE_WRITE8_MEMBER(drgnmst_oki_w);
+ DECLARE_WRITE8_MEMBER(drgnmst_snd_control_w);
+ DECLARE_READ8_MEMBER(PIC16C5X_T0_clk_r);
};
diff --git a/src/mame/includes/dribling.h b/src/mame/includes/dribling.h
index 55dfda342f6..880035f2b92 100644
--- a/src/mame/includes/dribling.h
+++ b/src/mame/includes/dribling.h
@@ -28,6 +28,8 @@ public:
device_t *m_maincpu;
device_t *m_ppi_0;
device_t *m_ppi_1;
+ DECLARE_READ8_MEMBER(ioread);
+ DECLARE_WRITE8_MEMBER(iowrite);
};
diff --git a/src/mame/includes/drmicro.h b/src/mame/includes/drmicro.h
index 3b5bb663af4..7cb8c719bfc 100644
--- a/src/mame/includes/drmicro.h
+++ b/src/mame/includes/drmicro.h
@@ -25,6 +25,8 @@ public:
/* devices */
device_t *m_msm;
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(pcm_set_w);
};
diff --git a/src/mame/includes/dynax.h b/src/mame/includes/dynax.h
index ed1261f33a4..1b6d3cf217c 100644
--- a/src/mame/includes/dynax.h
+++ b/src/mame/includes/dynax.h
@@ -158,6 +158,80 @@ public:
okim6295_device *m_oki;
device_t *m_top_scr;
device_t *m_bot_scr;
+ DECLARE_WRITE8_MEMBER(dynax_vblank_ack_w);
+ DECLARE_WRITE8_MEMBER(dynax_blitter_ack_w);
+ DECLARE_WRITE8_MEMBER(jantouki_vblank_ack_w);
+ DECLARE_WRITE8_MEMBER(jantouki_blitter_ack_w);
+ DECLARE_WRITE8_MEMBER(jantouki_blitter2_ack_w);
+ DECLARE_WRITE8_MEMBER(jantouki_sound_vblank_ack_w);
+ DECLARE_WRITE8_MEMBER(dynax_coincounter_0_w);
+ DECLARE_WRITE8_MEMBER(dynax_coincounter_1_w);
+ DECLARE_READ8_MEMBER(ret_ff);
+ DECLARE_READ8_MEMBER(hanamai_keyboard_0_r);
+ DECLARE_READ8_MEMBER(hanamai_keyboard_1_r);
+ DECLARE_WRITE8_MEMBER(hanamai_keyboard_w);
+ DECLARE_WRITE8_MEMBER(dynax_rombank_w);
+ DECLARE_WRITE8_MEMBER(jantouki_sound_rombank_w);
+ DECLARE_WRITE8_MEMBER(hnoridur_rombank_w);
+ DECLARE_WRITE8_MEMBER(hnoridur_palbank_w);
+ DECLARE_WRITE8_MEMBER(hnoridur_palette_w);
+ DECLARE_WRITE8_MEMBER(yarunara_palette_w);
+ DECLARE_WRITE8_MEMBER(nanajign_palette_w);
+ DECLARE_WRITE8_MEMBER(adpcm_data_w);
+ DECLARE_WRITE8_MEMBER(yarunara_layer_half_w);
+ DECLARE_WRITE8_MEMBER(yarunara_layer_half2_w);
+ DECLARE_WRITE8_MEMBER(hjingi_bank_w);
+ DECLARE_WRITE8_MEMBER(hjingi_lockout_w);
+ DECLARE_WRITE8_MEMBER(hjingi_hopper_w);
+ DECLARE_READ8_MEMBER(hjingi_keyboard_0_r);
+ DECLARE_READ8_MEMBER(hjingi_keyboard_1_r);
+ DECLARE_WRITE8_MEMBER(yarunara_input_w);
+ DECLARE_READ8_MEMBER(yarunara_input_r);
+ DECLARE_WRITE8_MEMBER(yarunara_rombank_w);
+ DECLARE_WRITE8_MEMBER(yarunara_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(yarunara_flipscreen_inv_w);
+ DECLARE_WRITE8_MEMBER(yarunara_blit_romregion_w);
+ DECLARE_READ8_MEMBER(jantouki_soundlatch_ack_r);
+ DECLARE_WRITE8_MEMBER(jantouki_soundlatch_w);
+ DECLARE_READ8_MEMBER(jantouki_blitter_busy_r);
+ DECLARE_WRITE8_MEMBER(jantouki_rombank_w);
+ DECLARE_WRITE8_MEMBER(jantouki_soundlatch_ack_w);
+ DECLARE_READ8_MEMBER(jantouki_soundlatch_r);
+ DECLARE_READ8_MEMBER(jantouki_soundlatch_status_r);
+ DECLARE_READ8_MEMBER(mjelctrn_keyboard_1_r);
+ DECLARE_READ8_MEMBER(mjelctrn_dsw_r);
+ DECLARE_WRITE8_MEMBER(mjelctrn_blitter_ack_w);
+ DECLARE_WRITE8_MEMBER(htengoku_select_w);
+ DECLARE_WRITE8_MEMBER(htengoku_coin_w);
+ DECLARE_READ8_MEMBER(htengoku_input_r);
+ DECLARE_READ8_MEMBER(htengoku_coin_r);
+ DECLARE_WRITE8_MEMBER(htengoku_rombank_w);
+ DECLARE_WRITE8_MEMBER(htengoku_blit_romregion_w);
+ DECLARE_READ8_MEMBER(unk_r);
+ DECLARE_WRITE8_MEMBER(tenkai_ipsel_w);
+ DECLARE_WRITE8_MEMBER(tenkai_ip_w);
+ DECLARE_READ8_MEMBER(tenkai_ip_r);
+ DECLARE_READ8_MEMBER(tenkai_palette_r);
+ DECLARE_WRITE8_MEMBER(tenkai_palette_w);
+ DECLARE_READ8_MEMBER(tenkai_p3_r);
+ DECLARE_WRITE8_MEMBER(tenkai_p3_w);
+ DECLARE_WRITE8_MEMBER(tenkai_p4_w);
+ DECLARE_READ8_MEMBER(tenkai_p5_r);
+ DECLARE_WRITE8_MEMBER(tenkai_p6_w);
+ DECLARE_WRITE8_MEMBER(tenkai_p7_w);
+ DECLARE_WRITE8_MEMBER(tenkai_p8_w);
+ DECLARE_READ8_MEMBER(tenkai_p8_r);
+ DECLARE_READ8_MEMBER(tenkai_8000_r);
+ DECLARE_WRITE8_MEMBER(tenkai_8000_w);
+ DECLARE_WRITE8_MEMBER(tenkai_6c_w);
+ DECLARE_WRITE8_MEMBER(tenkai_70_w);
+ DECLARE_WRITE8_MEMBER(tenkai_blit_romregion_w);
+ DECLARE_READ8_MEMBER(gekisha_keyboard_0_r);
+ DECLARE_READ8_MEMBER(gekisha_keyboard_1_r);
+ DECLARE_WRITE8_MEMBER(gekisha_hopper_w);
+ DECLARE_WRITE8_MEMBER(gekisha_p4_w);
+ DECLARE_READ8_MEMBER(gekisha_8000_r);
+ DECLARE_WRITE8_MEMBER(gekisha_8000_w);
};
//----------- defined in drivers/dynax.c -----------
diff --git a/src/mame/includes/eolith.h b/src/mame/includes/eolith.h
index 3825614c21b..101b78d2428 100644
--- a/src/mame/includes/eolith.h
+++ b/src/mame/includes/eolith.h
@@ -11,6 +11,10 @@ public:
UINT32 *m_vram;
required_device<cpu_device> m_maincpu;
+ DECLARE_READ32_MEMBER(eolith_custom_r);
+ DECLARE_WRITE32_MEMBER(systemcontrol_w);
+ DECLARE_READ32_MEMBER(hidctch3_pen1_r);
+ DECLARE_READ32_MEMBER(hidctch3_pen2_r);
};
diff --git a/src/mame/includes/epos.h b/src/mame/includes/epos.h
index d939f774145..5ac564e10f8 100644
--- a/src/mame/includes/epos.h
+++ b/src/mame/includes/epos.h
@@ -19,6 +19,7 @@ public:
/* misc */
int m_counter;
+ DECLARE_WRITE8_MEMBER(dealer_decrypt_rom);
};
diff --git a/src/mame/includes/equites.h b/src/mame/includes/equites.h
index e419e0444d5..5fa09f6c605 100644
--- a/src/mame/includes/equites.h
+++ b/src/mame/includes/equites.h
@@ -53,6 +53,19 @@ public:
msm5232_device *m_msm;
device_t *m_dac_1;
device_t *m_dac_2;
+ DECLARE_WRITE8_MEMBER(equites_c0f8_w);
+ DECLARE_WRITE8_MEMBER(equites_cymbal_ctrl_w);
+ DECLARE_WRITE8_MEMBER(equites_dac_latch_w);
+ DECLARE_WRITE8_MEMBER(equites_8155_portb_w);
+ DECLARE_WRITE8_MEMBER(equites_8155_w);
+ DECLARE_READ16_MEMBER(hvoltage_debug_r);
+ DECLARE_WRITE16_MEMBER(gekisou_unknown_0_w);
+ DECLARE_WRITE16_MEMBER(gekisou_unknown_1_w);
+ DECLARE_READ16_MEMBER(equites_spriteram_kludge_r);
+ DECLARE_READ16_MEMBER(mcu_r);
+ DECLARE_WRITE16_MEMBER(mcu_w);
+ DECLARE_WRITE16_MEMBER(mcu_halt_assert_w);
+ DECLARE_WRITE16_MEMBER(mcu_halt_clear_w);
};
diff --git a/src/mame/includes/esd16.h b/src/mame/includes/esd16.h
index 31469ca33c3..b5483477297 100644
--- a/src/mame/includes/esd16.h
+++ b/src/mame/includes/esd16.h
@@ -34,6 +34,13 @@ public:
/* devices */
device_t *m_audio_cpu;
eeprom_device *m_eeprom;
+ DECLARE_WRITE16_MEMBER(esd16_spriteram_w);
+ DECLARE_WRITE16_MEMBER(esd16_sound_command_w);
+ DECLARE_WRITE16_MEMBER(hedpanic_platform_w);
+ DECLARE_READ16_MEMBER(esd_eeprom_r);
+ DECLARE_WRITE16_MEMBER(esd_eeprom_w);
+ DECLARE_WRITE8_MEMBER(esd16_sound_rombank_w);
+ DECLARE_READ8_MEMBER(esd16_sound_command_r);
};
diff --git a/src/mame/includes/espial.h b/src/mame/includes/espial.h
index 761487b241e..17664d059d7 100644
--- a/src/mame/includes/espial.h
+++ b/src/mame/includes/espial.h
@@ -30,6 +30,8 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(espial_master_interrupt_mask_w);
+ DECLARE_WRITE8_MEMBER(espial_master_soundlatch_w);
};
/*----------- defined in video/espial.c -----------*/
diff --git a/src/mame/includes/esripsys.h b/src/mame/includes/esripsys.h
index bd58a131b79..8fa5e093f93 100644
--- a/src/mame/includes/esripsys.h
+++ b/src/mame/includes/esripsys.h
@@ -64,6 +64,26 @@ public:
UINT8 *m_scale_table;
int m_video_firq;
UINT8 m_bg_intensity;
+ DECLARE_WRITE8_MEMBER(uart_w);
+ DECLARE_READ8_MEMBER(uart_r);
+ DECLARE_READ8_MEMBER(g_status_r);
+ DECLARE_WRITE8_MEMBER(g_status_w);
+ DECLARE_READ8_MEMBER(f_status_r);
+ DECLARE_WRITE8_MEMBER(f_status_w);
+ DECLARE_WRITE8_MEMBER(frame_w);
+ DECLARE_READ8_MEMBER(fdt_r);
+ DECLARE_WRITE8_MEMBER(fdt_w);
+ DECLARE_WRITE8_MEMBER(g_iobus_w);
+ DECLARE_READ8_MEMBER(g_iobus_r);
+ DECLARE_WRITE8_MEMBER(g_ioadd_w);
+ DECLARE_READ8_MEMBER(s_200e_r);
+ DECLARE_WRITE8_MEMBER(s_200e_w);
+ DECLARE_WRITE8_MEMBER(s_200f_w);
+ DECLARE_READ8_MEMBER(s_200f_r);
+ DECLARE_READ8_MEMBER(tms5220_r);
+ DECLARE_WRITE8_MEMBER(tms5220_w);
+ DECLARE_WRITE8_MEMBER(control_w);
+ DECLARE_WRITE8_MEMBER(volume_dac_w);
};
diff --git a/src/mame/includes/exerion.h b/src/mame/includes/exerion.h
index 046f7bef35a..321a80dcb4d 100644
--- a/src/mame/includes/exerion.h
+++ b/src/mame/includes/exerion.h
@@ -46,6 +46,7 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_READ8_MEMBER(exerion_protection_r);
};
diff --git a/src/mame/includes/exidy.h b/src/mame/includes/exidy.h
index 6fb2cacd3a7..989f208efec 100644
--- a/src/mame/includes/exidy.h
+++ b/src/mame/includes/exidy.h
@@ -43,6 +43,7 @@ public:
bitmap_ind16 m_motion_object_1_vid;
bitmap_ind16 m_motion_object_2_vid;
bitmap_ind16 m_motion_object_2_clip;
+ DECLARE_WRITE8_MEMBER(fax_bank_select_w);
};
diff --git a/src/mame/includes/exidy440.h b/src/mame/includes/exidy440.h
index c3cec5e2403..59b76eae8bb 100644
--- a/src/mame/includes/exidy440.h
+++ b/src/mame/includes/exidy440.h
@@ -31,6 +31,16 @@ public:
UINT8 m_palettebank_vis;
UINT8 *m_spriteram;
device_t *m_custom;
+ DECLARE_WRITE8_MEMBER(bankram_w);
+ DECLARE_READ8_MEMBER(exidy440_input_port_3_r);
+ DECLARE_READ8_MEMBER(sound_command_ack_r);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(exidy440_input_port_3_w);
+ DECLARE_WRITE8_MEMBER(exidy440_coin_counter_w);
+ DECLARE_READ8_MEMBER(showdown_bank0_r);
+ DECLARE_READ8_MEMBER(claypign_protection_r);
+ DECLARE_READ8_MEMBER(topsecex_input_port_5_r);
+ DECLARE_WRITE8_MEMBER(topsecex_yscroll_w);
};
diff --git a/src/mame/includes/exprraid.h b/src/mame/includes/exprraid.h
index f5ee05c246b..7ff803b620c 100644
--- a/src/mame/includes/exprraid.h
+++ b/src/mame/includes/exprraid.h
@@ -29,6 +29,9 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_slave;
+ DECLARE_READ8_MEMBER(exprraid_protection_r);
+ DECLARE_WRITE8_MEMBER(sound_cpu_command_w);
+ DECLARE_READ8_MEMBER(vblank_r);
};
diff --git a/src/mame/includes/exterm.h b/src/mame/includes/exterm.h
index 43ce7ec0d5e..919b69add6f 100644
--- a/src/mame/includes/exterm.h
+++ b/src/mame/includes/exterm.h
@@ -19,6 +19,17 @@ public:
UINT16 m_last;
UINT16 *m_master_videoram;
UINT16 *m_slave_videoram;
+ DECLARE_WRITE16_MEMBER(exterm_host_data_w);
+ DECLARE_READ16_MEMBER(exterm_host_data_r);
+ DECLARE_READ16_MEMBER(exterm_input_port_0_r);
+ DECLARE_READ16_MEMBER(exterm_input_port_1_r);
+ DECLARE_WRITE16_MEMBER(exterm_output_port_0_w);
+ DECLARE_WRITE16_MEMBER(sound_latch_w);
+ DECLARE_WRITE8_MEMBER(sound_nmi_rate_w);
+ DECLARE_READ8_MEMBER(sound_master_latch_r);
+ DECLARE_READ8_MEMBER(sound_slave_latch_r);
+ DECLARE_READ8_MEMBER(sound_nmi_to_slave_r);
+ DECLARE_WRITE8_MEMBER(sound_control_w);
};
diff --git a/src/mame/includes/exzisus.h b/src/mame/includes/exzisus.h
index 81174f4080e..642b6ff88d2 100644
--- a/src/mame/includes/exzisus.h
+++ b/src/mame/includes/exzisus.h
@@ -14,6 +14,14 @@ public:
UINT8 *m_objectram1;
size_t m_objectram_size0;
size_t m_objectram_size1;
+ DECLARE_WRITE8_MEMBER(exzisus_cpua_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(exzisus_cpub_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(exzisus_coincounter_w);
+ DECLARE_READ8_MEMBER(exzisus_sharedram_ab_r);
+ DECLARE_READ8_MEMBER(exzisus_sharedram_ac_r);
+ DECLARE_WRITE8_MEMBER(exzisus_sharedram_ab_w);
+ DECLARE_WRITE8_MEMBER(exzisus_sharedram_ac_w);
+ DECLARE_WRITE8_MEMBER(exzisus_cpub_reset_w);
};
diff --git a/src/mame/includes/f1gp.h b/src/mame/includes/f1gp.h
index c94a69ff286..2dd1972370a 100644
--- a/src/mame/includes/f1gp.h
+++ b/src/mame/includes/f1gp.h
@@ -38,6 +38,15 @@ public:
/* devices */
device_t *m_audiocpu;
device_t *m_k053936;
+ DECLARE_READ16_MEMBER(sharedram_r);
+ DECLARE_WRITE16_MEMBER(sharedram_w);
+ DECLARE_READ16_MEMBER(extrarom_r);
+ DECLARE_READ16_MEMBER(extrarom2_r);
+ DECLARE_WRITE8_MEMBER(f1gp_sh_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_READ16_MEMBER(command_pending_r);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
+ DECLARE_WRITE16_MEMBER(f1gpb_misc_w);
};
/*----------- defined in video/f1gp.c -----------*/
diff --git a/src/mame/includes/fantland.h b/src/mame/includes/fantland.h
index 9ba9617ce78..a048ea96fb0 100644
--- a/src/mame/includes/fantland.h
+++ b/src/mame/includes/fantland.h
@@ -29,6 +29,17 @@ public:
device_t *m_msm4;
UINT8 *m_spriteram;
UINT8 *m_spriteram2;
+ DECLARE_WRITE8_MEMBER(fantland_nmi_enable_w);
+ DECLARE_WRITE16_MEMBER(fantland_nmi_enable_16_w);
+ DECLARE_WRITE8_MEMBER(fantland_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(fantland_soundlatch_16_w);
+ DECLARE_READ16_MEMBER(spriteram_16_r);
+ DECLARE_READ16_MEMBER(spriteram2_16_r);
+ DECLARE_WRITE16_MEMBER(spriteram_16_w);
+ DECLARE_WRITE16_MEMBER(spriteram2_16_w);
+ DECLARE_WRITE8_MEMBER(borntofi_nmi_enable_w);
+ DECLARE_READ8_MEMBER(borntofi_inputs_r);
+ DECLARE_WRITE8_MEMBER(borntofi_msm5205_w);
};
diff --git a/src/mame/includes/fastlane.h b/src/mame/includes/fastlane.h
index e022f24e895..3263fde172e 100644
--- a/src/mame/includes/fastlane.h
+++ b/src/mame/includes/fastlane.h
@@ -30,6 +30,8 @@ public:
device_t *m_k007121;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(k007121_registers_w);
+ DECLARE_WRITE8_MEMBER(fastlane_bankswitch_w);
};
diff --git a/src/mame/includes/fcombat.h b/src/mame/includes/fcombat.h
index d1a7dcdc2d2..b7934f7187e 100644
--- a/src/mame/includes/fcombat.h
+++ b/src/mame/includes/fcombat.h
@@ -49,6 +49,15 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_READ8_MEMBER(fcombat_protection_r);
+ DECLARE_READ8_MEMBER(fcombat_port01_r);
+ DECLARE_WRITE8_MEMBER(e900_w);
+ DECLARE_WRITE8_MEMBER(ea00_w);
+ DECLARE_WRITE8_MEMBER(eb00_w);
+ DECLARE_WRITE8_MEMBER(ec00_w);
+ DECLARE_WRITE8_MEMBER(ed00_w);
+ DECLARE_READ8_MEMBER(e300_r);
+ DECLARE_WRITE8_MEMBER(ee00_w);
};
diff --git a/src/mame/includes/fgoal.h b/src/mame/includes/fgoal.h
index 44171ff6e58..c63239f1054 100644
--- a/src/mame/includes/fgoal.h
+++ b/src/mame/includes/fgoal.h
@@ -25,6 +25,18 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_mb14241;
+ DECLARE_READ8_MEMBER(fgoal_analog_r);
+ DECLARE_READ8_MEMBER(fgoal_nmi_reset_r);
+ DECLARE_READ8_MEMBER(fgoal_irq_reset_r);
+ DECLARE_READ8_MEMBER(fgoal_row_r);
+ DECLARE_WRITE8_MEMBER(fgoal_row_w);
+ DECLARE_WRITE8_MEMBER(fgoal_col_w);
+ DECLARE_READ8_MEMBER(fgoal_address_hi_r);
+ DECLARE_READ8_MEMBER(fgoal_address_lo_r);
+ DECLARE_READ8_MEMBER(fgoal_shifter_r);
+ DECLARE_READ8_MEMBER(fgoal_shifter_reverse_r);
+ DECLARE_WRITE8_MEMBER(fgoal_sound1_w);
+ DECLARE_WRITE8_MEMBER(fgoal_sound2_w);
};
diff --git a/src/mame/includes/finalizr.h b/src/mame/includes/finalizr.h
index 99ad7af27f6..f6982f6e48c 100644
--- a/src/mame/includes/finalizr.h
+++ b/src/mame/includes/finalizr.h
@@ -34,6 +34,12 @@ public:
/* devices */
device_t *m_audio_cpu;
+ DECLARE_WRITE8_MEMBER(finalizr_coin_w);
+ DECLARE_WRITE8_MEMBER(finalizr_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(finalizr_i8039_irq_w);
+ DECLARE_WRITE8_MEMBER(i8039_irqen_w);
+ DECLARE_READ8_MEMBER(i8039_T1_r);
+ DECLARE_WRITE8_MEMBER(i8039_T0_w);
};
diff --git a/src/mame/includes/firetrap.h b/src/mame/includes/firetrap.h
index 3d8e268eff8..a2b07b9bd96 100644
--- a/src/mame/includes/firetrap.h
+++ b/src/mame/includes/firetrap.h
@@ -40,6 +40,16 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_msm;
+ DECLARE_WRITE8_MEMBER(firetrap_nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(firetrap_bankselect_w);
+ DECLARE_READ8_MEMBER(firetrap_8751_bootleg_r);
+ DECLARE_READ8_MEMBER(firetrap_8751_r);
+ DECLARE_WRITE8_MEMBER(firetrap_8751_w);
+ DECLARE_WRITE8_MEMBER(firetrap_sound_command_w);
+ DECLARE_WRITE8_MEMBER(firetrap_sound_2400_w);
+ DECLARE_WRITE8_MEMBER(firetrap_sound_bankselect_w);
+ DECLARE_WRITE8_MEMBER(firetrap_adpcm_data_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
};
diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h
index 95025b02870..4163f61dadc 100644
--- a/src/mame/includes/firetrk.h
+++ b/src/mame/includes/firetrk.h
@@ -59,6 +59,19 @@ public:
UINT32 m_color2_mask;
tilemap_t *m_tilemap1;
tilemap_t *m_tilemap2;
+ DECLARE_WRITE8_MEMBER(firetrk_output_w);
+ DECLARE_WRITE8_MEMBER(superbug_output_w);
+ DECLARE_WRITE8_MEMBER(montecar_output_1_w);
+ DECLARE_WRITE8_MEMBER(montecar_output_2_w);
+ DECLARE_READ8_MEMBER(firetrk_dip_r);
+ DECLARE_READ8_MEMBER(montecar_dip_r);
+ DECLARE_READ8_MEMBER(firetrk_input_r);
+ DECLARE_READ8_MEMBER(montecar_input_r);
+ DECLARE_WRITE8_MEMBER(blink_on_w);
+ DECLARE_WRITE8_MEMBER(montecar_car_reset_w);
+ DECLARE_WRITE8_MEMBER(montecar_drone_reset_w);
+ DECLARE_WRITE8_MEMBER(steer_reset_w);
+ DECLARE_WRITE8_MEMBER(crash_reset_w);
};
diff --git a/src/mame/includes/fitfight.h b/src/mame/includes/fitfight.h
index b6b1d87cb8f..90e1b6ebf42 100644
--- a/src/mame/includes/fitfight.h
+++ b/src/mame/includes/fitfight.h
@@ -26,6 +26,16 @@ public:
/* misc */
int m_bbprot_kludge;
UINT16 m_fof_700000_data;
+ DECLARE_READ16_MEMBER(fitfight_700000_r);
+ DECLARE_READ16_MEMBER(histryma_700000_r);
+ DECLARE_READ16_MEMBER(bbprot_700000_r);
+ DECLARE_WRITE16_MEMBER(fitfight_700000_w);
+ DECLARE_READ8_MEMBER(snd_porta_r);
+ DECLARE_READ8_MEMBER(snd_portb_r);
+ DECLARE_READ8_MEMBER(snd_portc_r);
+ DECLARE_WRITE8_MEMBER(snd_porta_w);
+ DECLARE_WRITE8_MEMBER(snd_portb_w);
+ DECLARE_WRITE8_MEMBER(snd_portc_w);
};
diff --git a/src/mame/includes/flkatck.h b/src/mame/includes/flkatck.h
index 1e6dd816254..9bd62578e87 100644
--- a/src/mame/includes/flkatck.h
+++ b/src/mame/includes/flkatck.h
@@ -25,6 +25,11 @@ public:
/* devices */
device_t *m_audiocpu;
device_t *m_k007121;
+ DECLARE_WRITE8_MEMBER(flkatck_bankswitch_w);
+ DECLARE_READ8_MEMBER(flkatck_ls138_r);
+ DECLARE_WRITE8_MEMBER(flkatck_ls138_w);
+ DECLARE_READ8_MEMBER(multiply_r);
+ DECLARE_WRITE8_MEMBER(multiply_w);
};
diff --git a/src/mame/includes/flower.h b/src/mame/includes/flower.h
index c71d63f948f..1b442d9a334 100644
--- a/src/mame/includes/flower.h
+++ b/src/mame/includes/flower.h
@@ -17,6 +17,12 @@ public:
tilemap_t *m_bg1_tilemap;
tilemap_t *m_text_tilemap;
tilemap_t *m_text_right_tilemap;
+ DECLARE_WRITE8_MEMBER(flower_maincpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(flower_subcpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(flower_soundcpu_irq_ack);
+ DECLARE_WRITE8_MEMBER(flower_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(flower_coin_lockout_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
};
diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h
index 59fe91bef5a..0b51760074a 100644
--- a/src/mame/includes/flstory.h
+++ b/src/mame/includes/flstory.h
@@ -64,6 +64,14 @@ public:
UINT8 m_mcu_bb_res;
UINT8 m_mcu_b5_res;
UINT8 m_mcu_b6_res;
+ DECLARE_READ8_MEMBER(from_snd_r);
+ DECLARE_READ8_MEMBER(snd_flag_r);
+ DECLARE_WRITE8_MEMBER(to_main_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_READ8_MEMBER(rumba_mcu_r);
+ DECLARE_WRITE8_MEMBER(rumba_mcu_w);
};
diff --git a/src/mame/includes/freekick.h b/src/mame/includes/freekick.h
index bbbfb9c0e4b..6161692788e 100644
--- a/src/mame/includes/freekick.h
+++ b/src/mame/includes/freekick.h
@@ -22,6 +22,17 @@ public:
int m_spinner;
int m_nmi_en;
int m_ff_data;
+ DECLARE_WRITE8_MEMBER(flipscreen_w);
+ DECLARE_WRITE8_MEMBER(coin_w);
+ DECLARE_WRITE8_MEMBER(spinner_select_w);
+ DECLARE_READ8_MEMBER(spinner_r);
+ DECLARE_WRITE8_MEMBER(pbillrd_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(oigas_5_w);
+ DECLARE_READ8_MEMBER(oigas_3_r);
+ DECLARE_READ8_MEMBER(oigas_2_r);
+ DECLARE_READ8_MEMBER(freekick_ff_r);
+ DECLARE_WRITE8_MEMBER(freekick_ff_w);
};
diff --git a/src/mame/includes/fromanc2.h b/src/mame/includes/fromanc2.h
index 1c96b85a350..8477a16ff17 100644
--- a/src/mame/includes/fromanc2.h
+++ b/src/mame/includes/fromanc2.h
@@ -30,6 +30,21 @@ public:
device_t *m_eeprom;
device_t *m_left_screen;
device_t *m_right_screen;
+ DECLARE_WRITE16_MEMBER(fromanc2_sndcmd_w);
+ DECLARE_WRITE16_MEMBER(fromanc2_portselect_w);
+ DECLARE_READ16_MEMBER(fromanc2_keymatrix_r);
+ DECLARE_WRITE16_MEMBER(fromanc2_eeprom_w);
+ DECLARE_WRITE16_MEMBER(fromancr_eeprom_w);
+ DECLARE_WRITE16_MEMBER(fromanc4_eeprom_w);
+ DECLARE_WRITE16_MEMBER(fromanc2_subcpu_w);
+ DECLARE_READ16_MEMBER(fromanc2_subcpu_r);
+ DECLARE_READ8_MEMBER(fromanc2_maincpu_r_l);
+ DECLARE_READ8_MEMBER(fromanc2_maincpu_r_h);
+ DECLARE_WRITE8_MEMBER(fromanc2_maincpu_w_l);
+ DECLARE_WRITE8_MEMBER(fromanc2_maincpu_w_h);
+ DECLARE_WRITE8_MEMBER(fromanc2_subcpu_nmi_clr);
+ DECLARE_READ8_MEMBER(fromanc2_sndcpu_nmi_clr);
+ DECLARE_WRITE8_MEMBER(fromanc2_subcpu_rombank_w);
};
diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h
index 8a5663d22ef..2eae78bdf95 100644
--- a/src/mame/includes/fromance.h
+++ b/src/mame/includes/fromance.h
@@ -51,6 +51,16 @@ public:
/* devices */
device_t *m_subcpu;
+ DECLARE_READ8_MEMBER(fromance_commanddata_r);
+ DECLARE_WRITE8_MEMBER(fromance_commanddata_w);
+ DECLARE_READ8_MEMBER(fromance_busycheck_main_r);
+ DECLARE_READ8_MEMBER(fromance_busycheck_sub_r);
+ DECLARE_WRITE8_MEMBER(fromance_busycheck_sub_w);
+ DECLARE_WRITE8_MEMBER(fromance_rombank_w);
+ DECLARE_WRITE8_MEMBER(fromance_adpcm_w);
+ DECLARE_WRITE8_MEMBER(fromance_portselect_w);
+ DECLARE_READ8_MEMBER(fromance_keymatrix_r);
+ DECLARE_WRITE8_MEMBER(fromance_coinctr_w);
};
diff --git a/src/mame/includes/funkybee.h b/src/mame/includes/funkybee.h
index aa26714a6db..26db086709e 100644
--- a/src/mame/includes/funkybee.h
+++ b/src/mame/includes/funkybee.h
@@ -13,6 +13,8 @@ public:
/* video-related */
tilemap_t *m_bg_tilemap;
int m_gfx_bank;
+ DECLARE_READ8_MEMBER(funkybee_input_port_0_r);
+ DECLARE_WRITE8_MEMBER(funkybee_coin_counter_w);
};
diff --git a/src/mame/includes/funworld.h b/src/mame/includes/funworld.h
index a737be0a89c..8451372433d 100644
--- a/src/mame/includes/funworld.h
+++ b/src/mame/includes/funworld.h
@@ -7,6 +7,8 @@ public:
UINT8* m_videoram;
UINT8* m_colorram;
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(questions_r);
+ DECLARE_WRITE8_MEMBER(question_bank_w);
};
diff --git a/src/mame/includes/funybubl.h b/src/mame/includes/funybubl.h
index ba73c378414..5d26c7fef70 100644
--- a/src/mame/includes/funybubl.h
+++ b/src/mame/includes/funybubl.h
@@ -14,6 +14,9 @@ public:
/* memory */
UINT8 m_banked_vram[0x2000];
+ DECLARE_WRITE8_MEMBER(funybubl_vidram_bank_w);
+ DECLARE_WRITE8_MEMBER(funybubl_cpurombank_w);
+ DECLARE_WRITE8_MEMBER(funybubl_soundcommand_w);
};
diff --git a/src/mame/includes/fuukifg2.h b/src/mame/includes/fuukifg2.h
index 2b33b25cf50..0cb47493e89 100644
--- a/src/mame/includes/fuukifg2.h
+++ b/src/mame/includes/fuukifg2.h
@@ -24,6 +24,9 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(fuuki16_vregs_w);
+ DECLARE_WRITE16_MEMBER(fuuki16_sound_command_w);
+ DECLARE_WRITE8_MEMBER(fuuki16_sound_rombank_w);
};
diff --git a/src/mame/includes/fuukifg3.h b/src/mame/includes/fuukifg3.h
index 3eb1ac24d8d..710f5dcbd62 100644
--- a/src/mame/includes/fuukifg3.h
+++ b/src/mame/includes/fuukifg3.h
@@ -37,6 +37,14 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE32_MEMBER(paletteram32_xRRRRRGGGGGBBBBB_dword_w);
+ DECLARE_READ32_MEMBER(snd_020_r);
+ DECLARE_WRITE32_MEMBER(snd_020_w);
+ DECLARE_WRITE32_MEMBER(fuuki32_vregs_w);
+ DECLARE_WRITE8_MEMBER(fuuki32_sound_bw_w);
+ DECLARE_READ8_MEMBER(snd_z80_r);
+ DECLARE_WRITE8_MEMBER(snd_z80_w);
+ DECLARE_WRITE8_MEMBER(snd_ymf278b_w);
};
diff --git a/src/mame/includes/gaelco.h b/src/mame/includes/gaelco.h
index 1813cb3e625..1f451f5ed35 100644
--- a/src/mame/includes/gaelco.h
+++ b/src/mame/includes/gaelco.h
@@ -22,6 +22,13 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(bigkarnk_sound_command_w);
+ DECLARE_WRITE16_MEMBER(bigkarnk_coin_w);
+ DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(gaelco_vram_encrypted_w);
+ DECLARE_WRITE16_MEMBER(gaelco_encrypted_w);
+ DECLARE_WRITE16_MEMBER(thoop_vram_encrypted_w);
+ DECLARE_WRITE16_MEMBER(thoop_encrypted_w);
};
diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h
index ce78f5eac3a..18a8574906d 100644
--- a/src/mame/includes/gaelco2.h
+++ b/src/mame/includes/gaelco2.h
@@ -20,6 +20,11 @@ public:
required_device<m68000_device> m_maincpu;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_READ16_MEMBER(p1_gun_x);
+ DECLARE_READ16_MEMBER(p1_gun_y);
+ DECLARE_READ16_MEMBER(p2_gun_x);
+ DECLARE_READ16_MEMBER(p2_gun_y);
+ DECLARE_READ16_MEMBER(dallas_kludge_r);
};
diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h
index 6a3fa891450..d0e6fd44307 100644
--- a/src/mame/includes/gaelco3d.h
+++ b/src/mame/includes/gaelco3d.h
@@ -75,6 +75,25 @@ public:
int m_lastscan;
int m_video_changed;
gaelco3d_renderer *m_poly;
+ DECLARE_WRITE16_MEMBER(irq_ack_w);
+ DECLARE_WRITE32_MEMBER(irq_ack32_w);
+ DECLARE_WRITE16_MEMBER(sound_data_w);
+ DECLARE_READ16_MEMBER(sound_data_r);
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_WRITE16_MEMBER(sound_status_w);
+ DECLARE_WRITE16_MEMBER(analog_port_clock_w);
+ DECLARE_WRITE16_MEMBER(analog_port_latch_w);
+ DECLARE_READ32_MEMBER(tms_m68k_ram_r);
+ DECLARE_WRITE32_MEMBER(tms_m68k_ram_w);
+ DECLARE_WRITE16_MEMBER(tms_reset_w);
+ DECLARE_WRITE16_MEMBER(tms_irq_w);
+ DECLARE_WRITE16_MEMBER(tms_control3_w);
+ DECLARE_WRITE16_MEMBER(tms_comm_w);
+ DECLARE_WRITE16_MEMBER(adsp_control_w);
+ DECLARE_WRITE16_MEMBER(adsp_rombank_w);
+ DECLARE_WRITE32_MEMBER(radikalb_lamp_w);
+ DECLARE_WRITE32_MEMBER(unknown_137_w);
+ DECLARE_WRITE32_MEMBER(unknown_13a_w);
};
diff --git a/src/mame/includes/gaiden.h b/src/mame/includes/gaiden.h
index 580c2ccfa78..6659fca35b0 100644
--- a/src/mame/includes/gaiden.h
+++ b/src/mame/includes/gaiden.h
@@ -43,6 +43,12 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(gaiden_sound_command_w);
+ DECLARE_WRITE16_MEMBER(drgnbowl_sound_command_w);
+ DECLARE_WRITE16_MEMBER(wildfang_protection_w);
+ DECLARE_READ16_MEMBER(wildfang_protection_r);
+ DECLARE_WRITE16_MEMBER(raiga_protection_w);
+ DECLARE_READ16_MEMBER(raiga_protection_r);
};
diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h
index edee6e21fc5..5e9b61a90e8 100644
--- a/src/mame/includes/galaga.h
+++ b/src/mame/includes/galaga.h
@@ -32,6 +32,9 @@ public:
UINT8 m_main_irq_mask;
UINT8 m_sub_irq_mask;
UINT8 m_sub2_nmi_mask;
+ DECLARE_READ8_MEMBER(bosco_dsw_r);
+ DECLARE_WRITE8_MEMBER(galaga_flip_screen_w);
+ DECLARE_WRITE8_MEMBER(bosco_latch_w);
};
class xevious_state : public galaga_state
@@ -69,6 +72,7 @@ public:
UINT8 *m_spriteram;
UINT8 *m_spriteram2;
UINT32 m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(bosco_flip_screen_w);
};
class digdug_state : public galaga_state
diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h
index e4c64d34ae0..3c8d49ff9fe 100644
--- a/src/mame/includes/galastrm.h
+++ b/src/mame/includes/galastrm.h
@@ -35,6 +35,12 @@ public:
int m_rsyoffs;
UINT32 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE32_MEMBER(galastrm_palette_w);
+ DECLARE_WRITE32_MEMBER(galastrm_tc0610_0_w);
+ DECLARE_WRITE32_MEMBER(galastrm_tc0610_1_w);
+ DECLARE_WRITE32_MEMBER(galastrm_input_w);
+ DECLARE_READ32_MEMBER(galastrm_adstick_ctrl_r);
+ DECLARE_WRITE32_MEMBER(galastrm_adstick_ctrl_w);
};
diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h
index f5382907795..f07133244c7 100644
--- a/src/mame/includes/galaxold.h
+++ b/src/mame/includes/galaxold.h
@@ -81,6 +81,13 @@ public:
struct star m_stars[STAR_COUNT];
UINT8 m_nmi_mask; /* Harem per-game specific */
+ DECLARE_READ8_MEMBER(drivfrcg_port0_r);
+ DECLARE_READ8_MEMBER(scramb2_protection_r);
+ DECLARE_READ8_MEMBER(scramb2_port0_r);
+ DECLARE_READ8_MEMBER(scramb2_port1_r);
+ DECLARE_READ8_MEMBER(scramb2_port2_r);
+ DECLARE_WRITE8_MEMBER(harem_nmi_mask_w);
+ DECLARE_READ8_MEMBER(hexpoola_data_port_r);
};
diff --git a/src/mame/includes/galivan.h b/src/mame/includes/galivan.h
index 9fc3250b54c..3a3342a42ed 100644
--- a/src/mame/includes/galivan.h
+++ b/src/mame/includes/galivan.h
@@ -30,6 +30,15 @@ public:
UINT8 m_shift_scroll; //youmab
UINT32 m_shift_val;
+ DECLARE_WRITE8_MEMBER(galivan_sound_command_w);
+ DECLARE_READ8_MEMBER(soundlatch_clear_r);
+ DECLARE_READ8_MEMBER(IO_port_c0_r);
+ DECLARE_WRITE8_MEMBER(blit_trigger_w);
+ DECLARE_WRITE8_MEMBER(youmab_extra_bank_w);
+ DECLARE_READ8_MEMBER(youmab_8a_r);
+ DECLARE_WRITE8_MEMBER(youmab_81_w);
+ DECLARE_WRITE8_MEMBER(youmab_84_w);
+ DECLARE_WRITE8_MEMBER(youmab_86_w);
};
diff --git a/src/mame/includes/galspnbl.h b/src/mame/includes/galspnbl.h
index fc66d8c4cdb..0caecd40c19 100644
--- a/src/mame/includes/galspnbl.h
+++ b/src/mame/includes/galspnbl.h
@@ -22,6 +22,7 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(soundcommand_w);
};
diff --git a/src/mame/includes/gaplus.h b/src/mame/includes/gaplus.h
index ba6682e0db9..0f6b859b6fe 100644
--- a/src/mame/includes/gaplus.h
+++ b/src/mame/includes/gaplus.h
@@ -22,6 +22,13 @@ public:
UINT8 m_main_irq_mask;
UINT8 m_sub_irq_mask;
UINT8 m_sub2_irq_mask;
+ DECLARE_READ8_MEMBER(gaplus_spriteram_r);
+ DECLARE_WRITE8_MEMBER(gaplus_spriteram_w);
+ DECLARE_WRITE8_MEMBER(gaplus_irq_1_ctrl_w);
+ DECLARE_WRITE8_MEMBER(gaplus_irq_2_ctrl_w);
+ DECLARE_WRITE8_MEMBER(gaplus_irq_3_ctrl_w);
+ DECLARE_WRITE8_MEMBER(gaplus_sreset_w);
+ DECLARE_WRITE8_MEMBER(gaplus_freset_w);
};
diff --git a/src/mame/includes/gatron.h b/src/mame/includes/gatron.h
index ac997d72e04..6b54fec46ca 100644
--- a/src/mame/includes/gatron.h
+++ b/src/mame/includes/gatron.h
@@ -6,6 +6,7 @@ public:
UINT8 *m_videoram;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(output_port_0_w);
};
diff --git a/src/mame/includes/gberet.h b/src/mame/includes/gberet.h
index 5265c4cd6f5..438b8fc2338 100644
--- a/src/mame/includes/gberet.h
+++ b/src/mame/includes/gberet.h
@@ -26,6 +26,13 @@ public:
UINT8 * m_soundlatch;
UINT8 m_interrupt_mask;
UINT8 m_interrupt_ticks;
+ DECLARE_WRITE8_MEMBER(gberet_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(mrgoemon_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(gberet_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(gberet_sound_w);
+ DECLARE_WRITE8_MEMBER(gberetb_flipscreen_w);
+ DECLARE_READ8_MEMBER(gberetb_irq_ack_r);
+ DECLARE_WRITE8_MEMBER(gberetb_nmi_ack_w);
};
diff --git a/src/mame/includes/gbusters.h b/src/mame/includes/gbusters.h
index f2dff2ff1d4..c5d17e7aef3 100644
--- a/src/mame/includes/gbusters.h
+++ b/src/mame/includes/gbusters.h
@@ -28,6 +28,14 @@ public:
device_t *m_k007232;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_WRITE8_MEMBER(gbusters_1f98_w);
+ DECLARE_WRITE8_MEMBER(gbusters_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(gbusters_unknown_w);
+ DECLARE_WRITE8_MEMBER(gbusters_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
/*----------- defined in video/gbusters.c -----------*/
diff --git a/src/mame/includes/gcpinbal.h b/src/mame/includes/gcpinbal.h
index 40c92fc3d6e..03234575a7f 100644
--- a/src/mame/includes/gcpinbal.h
+++ b/src/mame/includes/gcpinbal.h
@@ -42,6 +42,8 @@ public:
required_device<cpu_device> m_maincpu;
required_device<okim6295_device> m_oki;
required_device<msm5205_device> m_msm;
+ DECLARE_READ16_MEMBER(ioc_r);
+ DECLARE_WRITE16_MEMBER(ioc_w);
};
diff --git a/src/mame/includes/gijoe.h b/src/mame/includes/gijoe.h
index f1c8ce3bf1a..a8792d138e4 100644
--- a/src/mame/includes/gijoe.h
+++ b/src/mame/includes/gijoe.h
@@ -34,6 +34,11 @@ public:
device_t *m_k056832;
device_t *m_k053246;
device_t *m_k053251;
+ DECLARE_READ16_MEMBER(control2_r);
+ DECLARE_WRITE16_MEMBER(control2_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_READ16_MEMBER(sound_status_r);
};
/*----------- defined in video/gijoe.c -----------*/
diff --git a/src/mame/includes/glass.h b/src/mame/includes/glass.h
index 806e28c6917..c0321932f35 100644
--- a/src/mame/includes/glass.h
+++ b/src/mame/includes/glass.h
@@ -25,6 +25,9 @@ public:
int m_current_command;
int m_cause_interrupt;
int m_blitter_serial_buffer[5];
+ DECLARE_WRITE16_MEMBER(clr_int_w);
+ DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(glass_coin_w);
};
diff --git a/src/mame/includes/gng.h b/src/mame/includes/gng.h
index 548350d403c..b1491315563 100644
--- a/src/mame/includes/gng.h
+++ b/src/mame/includes/gng.h
@@ -26,6 +26,9 @@ public:
UINT8 m_scrolly[2];
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_WRITE8_MEMBER(gng_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(gng_coin_counter_w);
+ DECLARE_READ8_MEMBER(diamond_hack_r);
};
diff --git a/src/mame/includes/goal92.h b/src/mame/includes/goal92.h
index 50ab004cc61..cd247b24cef 100644
--- a/src/mame/includes/goal92.h
+++ b/src/mame/includes/goal92.h
@@ -31,6 +31,9 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(goal92_sound_command_w);
+ DECLARE_READ16_MEMBER(goal92_inputs_r);
+ DECLARE_WRITE8_MEMBER(adpcm_data_w);
};
diff --git a/src/mame/includes/goindol.h b/src/mame/includes/goindol.h
index f6a0d98c2dd..91a778b740f 100644
--- a/src/mame/includes/goindol.h
+++ b/src/mame/includes/goindol.h
@@ -29,6 +29,12 @@ public:
/* misc */
int m_prot_toggle;
+ DECLARE_WRITE8_MEMBER(goindol_bankswitch_w);
+ DECLARE_READ8_MEMBER(prot_f422_r);
+ DECLARE_WRITE8_MEMBER(prot_fc44_w);
+ DECLARE_WRITE8_MEMBER(prot_fd99_w);
+ DECLARE_WRITE8_MEMBER(prot_fc66_w);
+ DECLARE_WRITE8_MEMBER(prot_fcb0_w);
};
diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h
index dab4f669efa..1f732674114 100644
--- a/src/mame/includes/goldstar.h
+++ b/src/mame/includes/goldstar.h
@@ -37,6 +37,37 @@ public:
UINT8 m_lucky8_nmi_enable;
int m_tile_bank;
+ DECLARE_WRITE8_MEMBER(protection_w);
+ DECLARE_READ8_MEMBER(protection_r);
+ DECLARE_WRITE8_MEMBER(ncb3_port81_w);
+ DECLARE_WRITE8_MEMBER(cm_outport1_w);
+ DECLARE_WRITE8_MEMBER(lucky8_outport_w);
+ DECLARE_WRITE8_MEMBER(magodds_outb850_w);
+ DECLARE_WRITE8_MEMBER(magodds_outb860_w);
+ DECLARE_WRITE8_MEMBER(ladylinr_outport_w);
+ DECLARE_READ8_MEMBER(unkch_unk_r);
+ DECLARE_WRITE8_MEMBER(unkcm_0x02_w);
+ DECLARE_WRITE8_MEMBER(unkcm_0x03_w);
+ DECLARE_WRITE8_MEMBER(unkcm_0x11_w);
+ DECLARE_WRITE8_MEMBER(unkcm_0x12_w);
+ DECLARE_READ8_MEMBER(fixedvalb4_r);
+ DECLARE_READ8_MEMBER(fixedvala8_r);
+ DECLARE_READ8_MEMBER(fixedval38_r);
+ DECLARE_READ8_MEMBER(fixedvalea_r);
+ DECLARE_READ8_MEMBER(fixedval68_r);
+ DECLARE_READ8_MEMBER(fixedval58_r);
+ DECLARE_READ8_MEMBER(fixedval80_r);
+ DECLARE_READ8_MEMBER(fixedval96_r);
+ DECLARE_READ8_MEMBER(fixedvalaa_r);
+ DECLARE_READ8_MEMBER(fixedvalbe_r);
+ DECLARE_READ8_MEMBER(fixedval90_r);
+ DECLARE_READ8_MEMBER(fixedval84_r);
+ DECLARE_READ8_MEMBER(fixedvalb2_r);
+ DECLARE_READ8_MEMBER(fixedval48_r);
+ DECLARE_READ8_MEMBER(fixedval09_r);
+ DECLARE_READ8_MEMBER(fixedval74_r);
+ DECLARE_READ8_MEMBER(fixedvale4_r);
+ DECLARE_READ8_MEMBER(fixedvalc7_r);
};
diff --git a/src/mame/includes/gomoku.h b/src/mame/includes/gomoku.h
index aa94c138c83..431af90c774 100644
--- a/src/mame/includes/gomoku.h
+++ b/src/mame/includes/gomoku.h
@@ -13,6 +13,7 @@ public:
int m_bg_dispsw;
tilemap_t *m_fg_tilemap;
bitmap_ind16 m_bg_bitmap;
+ DECLARE_READ8_MEMBER(input_port_r);
};
diff --git a/src/mame/includes/gotcha.h b/src/mame/includes/gotcha.h
index 109f982141c..fa377ba033f 100644
--- a/src/mame/includes/gotcha.h
+++ b/src/mame/includes/gotcha.h
@@ -26,6 +26,7 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(gotcha_lamps_w);
};
diff --git a/src/mame/includes/gottlieb.h b/src/mame/includes/gottlieb.h
index cc4f23c0ed9..7db22f33185 100644
--- a/src/mame/includes/gottlieb.h
+++ b/src/mame/includes/gottlieb.h
@@ -240,6 +240,14 @@ public:
tilemap_t *m_bg_tilemap;
double m_weights[4];
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(gottlieb_analog_reset_w);
+ DECLARE_WRITE8_MEMBER(general_output_w);
+ DECLARE_WRITE8_MEMBER(reactor_output_w);
+ DECLARE_WRITE8_MEMBER(stooges_output_w);
+ DECLARE_READ8_MEMBER(laserdisc_status_r);
+ DECLARE_WRITE8_MEMBER(laserdisc_select_w);
+ DECLARE_WRITE8_MEMBER(laserdisc_command_w);
+ DECLARE_WRITE8_MEMBER(gottlieb_sh_w);
};
diff --git a/src/mame/includes/gradius3.h b/src/mame/includes/gradius3.h
index 448e6785a33..18eb210e6f8 100644
--- a/src/mame/includes/gradius3.h
+++ b/src/mame/includes/gradius3.h
@@ -30,6 +30,17 @@ public:
device_t *m_k007232;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_READ16_MEMBER(k052109_halfword_r);
+ DECLARE_WRITE16_MEMBER(k052109_halfword_w);
+ DECLARE_READ16_MEMBER(k051937_halfword_r);
+ DECLARE_WRITE16_MEMBER(k051937_halfword_w);
+ DECLARE_READ16_MEMBER(k051960_halfword_r);
+ DECLARE_WRITE16_MEMBER(k051960_halfword_w);
+ DECLARE_WRITE16_MEMBER(cpuA_ctrl_w);
+ DECLARE_WRITE16_MEMBER(cpuB_irqenable_w);
+ DECLARE_WRITE16_MEMBER(cpuB_irqtrigger_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
};
/*----------- defined in video/gradius3.c -----------*/
diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h
index 40aaaf7a7ed..c039f9de00d 100644
--- a/src/mame/includes/grchamp.h
+++ b/src/mame/includes/grchamp.h
@@ -39,6 +39,17 @@ public:
tilemap_t * m_right_tilemap;
rgb_t m_bgcolor[0x20];
+ DECLARE_WRITE8_MEMBER(cpu0_outputs_w);
+ DECLARE_WRITE8_MEMBER(led_board_w);
+ DECLARE_WRITE8_MEMBER(cpu1_outputs_w);
+ DECLARE_READ8_MEMBER(pc3259_0_r);
+ DECLARE_READ8_MEMBER(pc3259_1_r);
+ DECLARE_READ8_MEMBER(pc3259_2_r);
+ DECLARE_READ8_MEMBER(pc3259_3_r);
+ DECLARE_READ8_MEMBER(sub_to_main_comm_r);
+ DECLARE_WRITE8_MEMBER(main_to_sub_comm_w);
+ DECLARE_READ8_MEMBER(main_to_sub_comm_r);
+ UINT8 get_pc3259_bits(int offs);
};
/* Discrete Sound Input Nodes */
diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h
index 4b788626e07..6c4cc5d9bea 100644
--- a/src/mame/includes/gridlee.h
+++ b/src/mame/includes/gridlee.h
@@ -40,6 +40,11 @@ public:
UINT8 *m_local_videoram;
UINT8 m_palettebank_vis;
UINT8 *m_spriteram;
+ DECLARE_READ8_MEMBER(analog_port_r);
+ DECLARE_READ8_MEMBER(random_num_r);
+ DECLARE_WRITE8_MEMBER(led_0_w);
+ DECLARE_WRITE8_MEMBER(led_1_w);
+ DECLARE_WRITE8_MEMBER(gridlee_coin_counter_w);
};
diff --git a/src/mame/includes/groundfx.h b/src/mame/includes/groundfx.h
index 3be3de7e309..8d5fcea0dac 100644
--- a/src/mame/includes/groundfx.h
+++ b/src/mame/includes/groundfx.h
@@ -23,6 +23,13 @@ public:
rectangle m_hack_cliprect;
UINT32 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE32_MEMBER(color_ram_w);
+ DECLARE_WRITE32_MEMBER(groundfx_input_w);
+ DECLARE_READ32_MEMBER(groundfx_adc_r);
+ DECLARE_WRITE32_MEMBER(groundfx_adc_w);
+ DECLARE_WRITE32_MEMBER(rotate_control_w);
+ DECLARE_WRITE32_MEMBER(motor_control_w);
+ DECLARE_READ32_MEMBER(irq_speedup_r_groundfx);
};
diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h
index 7ef7997a188..49fc4a7fd55 100644
--- a/src/mame/includes/gstriker.h
+++ b/src/mame/includes/gstriker.h
@@ -61,6 +61,17 @@ public:
sVS920A* m_VS920A_cur_chip;
tMB60553 *m_MB60553_cur_chip;
tCG10103* m_CG10103_cur_chip;
+ DECLARE_READ16_MEMBER(dmmy_8f);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_READ16_MEMBER(pending_command_r);
+ DECLARE_WRITE8_MEMBER(gs_sh_pending_command_clear_w);
+ DECLARE_WRITE8_MEMBER(gs_sh_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(twrldc94_mcu_w);
+ DECLARE_READ16_MEMBER(twrldc94_mcu_r);
+ DECLARE_WRITE16_MEMBER(twrldc94_prot_reg_w);
+ DECLARE_READ16_MEMBER(twrldc94_prot_reg_r);
+ DECLARE_READ16_MEMBER(vbl_toggle_r);
+ DECLARE_WRITE16_MEMBER(vbl_toggle_w);
};
diff --git a/src/mame/includes/gunbustr.h b/src/mame/includes/gunbustr.h
index ec5d1602c67..12989ebc453 100644
--- a/src/mame/includes/gunbustr.h
+++ b/src/mame/includes/gunbustr.h
@@ -20,6 +20,12 @@ public:
UINT32 m_mem[2];
UINT32 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE32_MEMBER(gunbustr_palette_w);
+ DECLARE_WRITE32_MEMBER(gunbustr_input_w);
+ DECLARE_WRITE32_MEMBER(motor_control_w);
+ DECLARE_READ32_MEMBER(gunbustr_gun_r);
+ DECLARE_WRITE32_MEMBER(gunbustr_gun_w);
+ DECLARE_READ32_MEMBER(main_cycle_r);
};
diff --git a/src/mame/includes/gundealr.h b/src/mame/includes/gundealr.h
index 1d65a9a90eb..b6cd782cb35 100644
--- a/src/mame/includes/gundealr.h
+++ b/src/mame/includes/gundealr.h
@@ -24,6 +24,7 @@ public:
/* misc */
int m_input_ports_hack;
+ DECLARE_WRITE8_MEMBER(yamyam_bankswitch_w);
};
diff --git a/src/mame/includes/gunsmoke.h b/src/mame/includes/gunsmoke.h
index 6db5b53859b..92211268998 100644
--- a/src/mame/includes/gunsmoke.h
+++ b/src/mame/includes/gunsmoke.h
@@ -25,6 +25,7 @@ public:
UINT8 m_objon;
UINT8 m_bgon;
UINT8 m_sprite3bank;
+ DECLARE_READ8_MEMBER(gunsmoke_protection_r);
};
diff --git a/src/mame/includes/gyruss.h b/src/mame/includes/gyruss.h
index b96fac2cb97..9aabfa001f3 100644
--- a/src/mame/includes/gyruss.h
+++ b/src/mame/includes/gyruss.h
@@ -25,6 +25,11 @@ public:
UINT8 m_master_nmi_mask;
UINT8 m_slave_irq_mask;
+ DECLARE_WRITE8_MEMBER(gyruss_irq_clear_w);
+ DECLARE_WRITE8_MEMBER(gyruss_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(gyruss_i8039_irq_w);
+ DECLARE_WRITE8_MEMBER(master_nmi_mask_w);
+ DECLARE_WRITE8_MEMBER(slave_irq_mask_w);
};
diff --git a/src/mame/includes/hanaawas.h b/src/mame/includes/hanaawas.h
index c00a755c918..8666a2ef2de 100644
--- a/src/mame/includes/hanaawas.h
+++ b/src/mame/includes/hanaawas.h
@@ -19,6 +19,8 @@ public:
/* misc */
int m_mux;
+ DECLARE_READ8_MEMBER(hanaawas_input_port_0_r);
+ DECLARE_WRITE8_MEMBER(hanaawas_inputs_mux_w);
};
diff --git a/src/mame/includes/hcastle.h b/src/mame/includes/hcastle.h
index 67a29bb9881..5b7dd4aa36e 100644
--- a/src/mame/includes/hcastle.h
+++ b/src/mame/includes/hcastle.h
@@ -35,6 +35,9 @@ public:
required_device<buffered_spriteram8_device> m_spriteram;
required_device<buffered_spriteram8_device> m_spriteram2;
+ DECLARE_WRITE8_MEMBER(hcastle_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(hcastle_soundirq_w);
+ DECLARE_WRITE8_MEMBER(hcastle_coin_w);
};
diff --git a/src/mame/includes/hexion.h b/src/mame/includes/hexion.h
index e97ca250bd9..da9c864e9f8 100644
--- a/src/mame/includes/hexion.h
+++ b/src/mame/includes/hexion.h
@@ -11,6 +11,7 @@ public:
int m_pmcbank;
int m_gfxrom_select;
tilemap_t *m_bg_tilemap[2];
+ DECLARE_WRITE8_MEMBER(coincntr_w);
};
diff --git a/src/mame/includes/himesiki.h b/src/mame/includes/himesiki.h
index 824314da778..1a1db1c8c19 100644
--- a/src/mame/includes/himesiki.h
+++ b/src/mame/includes/himesiki.h
@@ -22,6 +22,8 @@ public:
/* devices */
device_t *m_subcpu;
+ DECLARE_WRITE8_MEMBER(himesiki_rombank_w);
+ DECLARE_WRITE8_MEMBER(himesiki_sound_w);
};
diff --git a/src/mame/includes/hitme.h b/src/mame/includes/hitme.h
index 1a1b6138aa1..05bceac48d5 100644
--- a/src/mame/includes/hitme.h
+++ b/src/mame/includes/hitme.h
@@ -26,6 +26,11 @@ public:
/* misc */
attotime m_timeout_time;
+ DECLARE_WRITE8_MEMBER(hitme_vidram_w);
+ DECLARE_READ8_MEMBER(hitme_port_0_r);
+ DECLARE_READ8_MEMBER(hitme_port_1_r);
+ DECLARE_READ8_MEMBER(hitme_port_2_r);
+ DECLARE_READ8_MEMBER(hitme_port_3_r);
};
diff --git a/src/mame/includes/hnayayoi.h b/src/mame/includes/hnayayoi.h
index 87a385b208a..d77eaa910aa 100644
--- a/src/mame/includes/hnayayoi.h
+++ b/src/mame/includes/hnayayoi.h
@@ -20,6 +20,9 @@ public:
/* misc */
int m_keyb;
+ DECLARE_READ8_MEMBER(keyboard_0_r);
+ DECLARE_READ8_MEMBER(keyboard_1_r);
+ DECLARE_WRITE8_MEMBER(keyboard_w);
};
diff --git a/src/mame/includes/hng64.h b/src/mame/includes/hng64.h
index f110fe225e8..8c9b937a7d1 100644
--- a/src/mame/includes/hng64.h
+++ b/src/mame/includes/hng64.h
@@ -98,6 +98,36 @@ public:
required_device<cpu_device> m_maincpu;
+ DECLARE_READ32_MEMBER(hng64_random_read);
+ DECLARE_READ32_MEMBER(hng64_com_r);
+ DECLARE_WRITE32_MEMBER(hng64_com_w);
+ DECLARE_WRITE32_MEMBER(hng64_com_share_w);
+ DECLARE_READ32_MEMBER(hng64_com_share_r);
+ DECLARE_WRITE32_MEMBER(hng64_pal_w);
+ DECLARE_READ32_MEMBER(hng64_sysregs_r);
+ DECLARE_WRITE32_MEMBER(hng64_sysregs_w);
+ DECLARE_READ32_MEMBER(fight_io_r);
+ DECLARE_READ32_MEMBER(samsho_io_r);
+ DECLARE_READ32_MEMBER(shoot_io_r);
+ DECLARE_READ32_MEMBER(racing_io_r);
+ DECLARE_READ32_MEMBER(hng64_dualport_r);
+ DECLARE_WRITE32_MEMBER(hng64_dualport_w);
+ DECLARE_READ32_MEMBER(hng64_3d_1_r);
+ DECLARE_READ32_MEMBER(hng64_3d_2_r);
+ DECLARE_WRITE32_MEMBER(hng64_3d_2_w);
+ DECLARE_WRITE32_MEMBER(dl_w);
+ DECLARE_READ32_MEMBER(dl_r);
+ DECLARE_WRITE32_MEMBER(dl_control_w);
+ DECLARE_WRITE32_MEMBER(tcram_w);
+ DECLARE_READ32_MEMBER(tcram_r);
+ DECLARE_READ32_MEMBER(unk_vreg_r);
+ DECLARE_WRITE32_MEMBER(hng64_soundram_w);
+ DECLARE_READ32_MEMBER(hng64_soundram_r);
+ DECLARE_WRITE32_MEMBER(hng64_sprite_clear_even_w);
+ DECLARE_WRITE32_MEMBER(hng64_sprite_clear_odd_w);
+ DECLARE_READ8_MEMBER(hng64_comm_memory_r);
+ DECLARE_WRITE8_MEMBER(hng64_comm_memory_w);
+ DECLARE_WRITE8_MEMBER(hng64_comm_io_mmu);
};
diff --git a/src/mame/includes/homedata.h b/src/mame/includes/homedata.h
index 72e1b186870..0fd376fdd1b 100644
--- a/src/mame/includes/homedata.h
+++ b/src/mame/includes/homedata.h
@@ -38,6 +38,29 @@ public:
device_t *m_ym;
device_t *m_sn;
UINT8 m_prot_data;
+ DECLARE_READ8_MEMBER(mrokumei_keyboard_r);
+ DECLARE_WRITE8_MEMBER(mrokumei_keyboard_select_w);
+ DECLARE_READ8_MEMBER(mrokumei_sound_io_r);
+ DECLARE_WRITE8_MEMBER(mrokumei_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(mrokumei_sound_io_w);
+ DECLARE_WRITE8_MEMBER(mrokumei_sound_cmd_w);
+ DECLARE_READ8_MEMBER(reikaids_upd7807_porta_r);
+ DECLARE_WRITE8_MEMBER(reikaids_upd7807_porta_w);
+ DECLARE_WRITE8_MEMBER(reikaids_upd7807_portc_w);
+ DECLARE_READ8_MEMBER(reikaids_io_r);
+ DECLARE_READ8_MEMBER(reikaids_snd_command_r);
+ DECLARE_WRITE8_MEMBER(reikaids_snd_command_w);
+ DECLARE_WRITE8_MEMBER(pteacher_snd_command_w);
+ DECLARE_READ8_MEMBER(pteacher_snd_r);
+ DECLARE_READ8_MEMBER(pteacher_io_r);
+ DECLARE_READ8_MEMBER(pteacher_keyboard_r);
+ DECLARE_READ8_MEMBER(pteacher_upd7807_porta_r);
+ DECLARE_WRITE8_MEMBER(pteacher_snd_answer_w);
+ DECLARE_WRITE8_MEMBER(pteacher_upd7807_porta_w);
+ DECLARE_WRITE8_MEMBER(pteacher_upd7807_portc_w);
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_READ8_MEMBER(mirderby_prot_r);
+ DECLARE_WRITE8_MEMBER(mirderby_prot_w);
};
diff --git a/src/mame/includes/hyperspt.h b/src/mame/includes/hyperspt.h
index 6d3396aff88..7ee7130c040 100644
--- a/src/mame/includes/hyperspt.h
+++ b/src/mame/includes/hyperspt.h
@@ -18,6 +18,8 @@ public:
int m_sprites_gfx_banked;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(hyperspt_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
/*----------- defined in video/hyperspt.c -----------*/
diff --git a/src/mame/includes/hyprduel.h b/src/mame/includes/hyprduel.h
index 7aea055692f..5d23b5a37ee 100644
--- a/src/mame/includes/hyprduel.h
+++ b/src/mame/includes/hyprduel.h
@@ -48,6 +48,15 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_subcpu;
+ DECLARE_READ16_MEMBER(hyprduel_irq_cause_r);
+ DECLARE_WRITE16_MEMBER(hyprduel_irq_cause_w);
+ DECLARE_WRITE16_MEMBER(hyprduel_subcpu_control_w);
+ DECLARE_READ16_MEMBER(hyprduel_cpusync_trigger1_r);
+ DECLARE_WRITE16_MEMBER(hyprduel_cpusync_trigger1_w);
+ DECLARE_READ16_MEMBER(hyprduel_cpusync_trigger2_r);
+ DECLARE_WRITE16_MEMBER(hyprduel_cpusync_trigger2_w);
+ DECLARE_READ16_MEMBER(hyprduel_bankedrom_r);
+ DECLARE_WRITE16_MEMBER(hyprduel_blitter_w);
};
diff --git a/src/mame/includes/ikki.h b/src/mame/includes/ikki.h
index 342f299f415..888ea74c5d8 100644
--- a/src/mame/includes/ikki.h
+++ b/src/mame/includes/ikki.h
@@ -28,6 +28,8 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
+ DECLARE_READ8_MEMBER(ikki_e000_r);
+ DECLARE_WRITE8_MEMBER(ikki_coin_counters);
};
diff --git a/src/mame/includes/inufuku.h b/src/mame/includes/inufuku.h
index a880359c507..622833c7dd8 100644
--- a/src/mame/includes/inufuku.h
+++ b/src/mame/includes/inufuku.h
@@ -30,6 +30,9 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(inufuku_soundcommand_w);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
+ DECLARE_WRITE8_MEMBER(inufuku_soundrombank_w);
};
diff --git a/src/mame/includes/iqblock.h b/src/mame/includes/iqblock.h
index baafbe64609..44460dd0729 100644
--- a/src/mame/includes/iqblock.h
+++ b/src/mame/includes/iqblock.h
@@ -15,6 +15,10 @@ public:
tilemap_t *m_fg_tilemap;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(iqblock_prot_w);
+ DECLARE_WRITE8_MEMBER(grndtour_prot_w);
+ DECLARE_WRITE8_MEMBER(iqblock_irqack_w);
+ DECLARE_READ8_MEMBER(extrarom_r);
};
diff --git a/src/mame/includes/irobot.h b/src/mame/includes/irobot.h
index 778f127e1d9..6b63ebca34c 100644
--- a/src/mame/includes/irobot.h
+++ b/src/mame/includes/irobot.h
@@ -60,6 +60,9 @@ public:
int m_ir_ymin;
int m_ir_xmax;
int m_ir_ymax;
+ DECLARE_WRITE8_MEMBER(irobot_nvram_w);
+ DECLARE_WRITE8_MEMBER(irobot_clearirq_w);
+ DECLARE_WRITE8_MEMBER(irobot_clearfirq_w);
};
/*----------- defined in machine/irobot.c -----------*/
diff --git a/src/mame/includes/ironhors.h b/src/mame/includes/ironhors.h
index 19c5ec20693..90e87397918 100644
--- a/src/mame/includes/ironhors.h
+++ b/src/mame/includes/ironhors.h
@@ -28,6 +28,7 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_soundcpu;
+ DECLARE_WRITE8_MEMBER(ironhors_sh_irqtrigger_w);
};
diff --git a/src/mame/includes/itech32.h b/src/mame/includes/itech32.h
index dcff70a14e1..9047793a4bf 100644
--- a/src/mame/includes/itech32.h
+++ b/src/mame/includes/itech32.h
@@ -69,6 +69,39 @@ public:
UINT32 m_vram_mask;
UINT32 m_vram_xmask;
UINT32 m_vram_ymask;
+ DECLARE_WRITE16_MEMBER(int1_ack_w);
+ DECLARE_READ16_MEMBER(trackball_r);
+ DECLARE_READ32_MEMBER(trackball32_8bit_r);
+ DECLARE_READ32_MEMBER(trackball32_4bit_p1_r);
+ DECLARE_READ32_MEMBER(trackball32_4bit_p2_r);
+ DECLARE_READ32_MEMBER(trackball32_4bit_combined_r);
+ DECLARE_READ32_MEMBER(drivedge_steering_r);
+ DECLARE_READ32_MEMBER(drivedge_gas_r);
+ DECLARE_READ16_MEMBER(wcbowl_prot_result_r);
+ DECLARE_READ32_MEMBER(itech020_prot_result_r);
+ DECLARE_READ32_MEMBER(gt2kp_prot_result_r);
+ DECLARE_READ32_MEMBER(gtclass_prot_result_r);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
+ DECLARE_WRITE16_MEMBER(sound_data_w);
+ DECLARE_READ32_MEMBER(sound_data32_r);
+ DECLARE_WRITE32_MEMBER(sound_data32_w);
+ DECLARE_READ8_MEMBER(sound_data_r);
+ DECLARE_WRITE8_MEMBER(sound_return_w);
+ DECLARE_READ8_MEMBER(sound_data_buffer_r);
+ DECLARE_WRITE8_MEMBER(firq_clear_w);
+ DECLARE_WRITE32_MEMBER(tms_reset_assert_w);
+ DECLARE_WRITE32_MEMBER(tms_reset_clear_w);
+ DECLARE_WRITE32_MEMBER(tms1_68k_ram_w);
+ DECLARE_WRITE32_MEMBER(tms2_68k_ram_w);
+ DECLARE_WRITE32_MEMBER(tms1_trigger_w);
+ DECLARE_WRITE32_MEMBER(tms2_trigger_w);
+ DECLARE_READ32_MEMBER(drivedge_tms1_speedup_r);
+ DECLARE_READ32_MEMBER(drivedge_tms2_speedup_r);
+ DECLARE_WRITE32_MEMBER(int1_ack32_w);
+ DECLARE_READ32_MEMBER(test1_r);
+ DECLARE_WRITE32_MEMBER(test1_w);
+ DECLARE_READ32_MEMBER(test2_r);
+ DECLARE_WRITE32_MEMBER(test2_w);
};
diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h
index 4666f46d51c..11aafb2fb84 100644
--- a/src/mame/includes/itech8.h
+++ b/src/mame/includes/itech8.h
@@ -53,6 +53,16 @@ public:
UINT8 m_grmatch_palcontrol;
UINT8 m_grmatch_xscroll;
rgb_t m_grmatch_palette[2][16];
+ DECLARE_WRITE8_MEMBER(itech8_nmi_ack_w);
+ DECLARE_WRITE8_MEMBER(blitter_w);
+ DECLARE_WRITE8_MEMBER(rimrockn_bank_w);
+ DECLARE_WRITE8_MEMBER(pia_portb_out);
+ DECLARE_WRITE8_MEMBER(sound_data_w);
+ DECLARE_WRITE8_MEMBER(gtg2_sound_data_w);
+ DECLARE_READ8_MEMBER(sound_data_r);
+ DECLARE_WRITE16_MEMBER(grom_bank16_w);
+ DECLARE_WRITE16_MEMBER(display_page16_w);
+ DECLARE_WRITE16_MEMBER(palette16_w);
};
diff --git a/src/mame/includes/jack.h b/src/mame/includes/jack.h
index e4028882606..6f3b2d96c03 100644
--- a/src/mame/includes/jack.h
+++ b/src/mame/includes/jack.h
@@ -30,6 +30,9 @@ public:
/* devices */
cpu_device *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(jack_sh_command_w);
+ DECLARE_WRITE8_MEMBER(joinem_misc_w);
+ DECLARE_READ8_MEMBER(striv_question_r);
};
diff --git a/src/mame/includes/jackal.h b/src/mame/includes/jackal.h
index da6d83d75e0..caa643028ef 100644
--- a/src/mame/includes/jackal.h
+++ b/src/mame/includes/jackal.h
@@ -26,6 +26,15 @@ public:
/* devices */
device_t *m_mastercpu;
device_t *m_slavecpu;
+ DECLARE_READ8_MEMBER(topgunbl_rotary_r);
+ DECLARE_WRITE8_MEMBER(jackal_flipscreen_w);
+ DECLARE_READ8_MEMBER(jackal_zram_r);
+ DECLARE_READ8_MEMBER(jackal_voram_r);
+ DECLARE_READ8_MEMBER(jackal_spriteram_r);
+ DECLARE_WRITE8_MEMBER(jackal_rambank_w);
+ DECLARE_WRITE8_MEMBER(jackal_zram_w);
+ DECLARE_WRITE8_MEMBER(jackal_voram_w);
+ DECLARE_WRITE8_MEMBER(jackal_spriteram_w);
};
diff --git a/src/mame/includes/jailbrek.h b/src/mame/includes/jailbrek.h
index bfbe17335cd..19425e039ae 100644
--- a/src/mame/includes/jailbrek.h
+++ b/src/mame/includes/jailbrek.h
@@ -27,6 +27,7 @@ public:
/* misc */
UINT8 m_irq_enable;
UINT8 m_nmi_enable;
+ DECLARE_WRITE8_MEMBER(ctrl_w);
};
diff --git a/src/mame/includes/jedi.h b/src/mame/includes/jedi.h
index be02576d6f4..3aceec252eb 100644
--- a/src/mame/includes/jedi.h
+++ b/src/mame/includes/jedi.h
@@ -45,6 +45,13 @@ public:
UINT8 *m_audio_comm_stat;
UINT8 *m_speech_data;
UINT8 m_speech_strobe_state;
+ DECLARE_WRITE8_MEMBER(main_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(rom_banksel_w);
+ DECLARE_READ8_MEMBER(a2d_data_r);
+ DECLARE_WRITE8_MEMBER(a2d_select_w);
+ DECLARE_WRITE8_MEMBER(jedi_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(nvram_data_w);
+ DECLARE_WRITE8_MEMBER(nvram_enable_w);
};
diff --git a/src/mame/includes/jpmimpct.h b/src/mame/includes/jpmimpct.h
index 955a7b6858d..c3924878d34 100644
--- a/src/mame/includes/jpmimpct.h
+++ b/src/mame/includes/jpmimpct.h
@@ -72,6 +72,24 @@ public:
int m_motor[3];
UINT16 *m_vram;
struct bt477_t m_bt477;
+ DECLARE_WRITE16_MEMBER(m68k_tms_w);
+ DECLARE_READ16_MEMBER(m68k_tms_r);
+ DECLARE_READ16_MEMBER(duart_1_r);
+ DECLARE_WRITE16_MEMBER(duart_1_w);
+ DECLARE_READ16_MEMBER(duart_2_r);
+ DECLARE_WRITE16_MEMBER(duart_2_w);
+ DECLARE_READ16_MEMBER(inputs1_r);
+ DECLARE_READ16_MEMBER(unk_r);
+ DECLARE_WRITE16_MEMBER(unk_w);
+ DECLARE_READ16_MEMBER(jpmio_r);
+ DECLARE_WRITE16_MEMBER(jpmio_w);
+ DECLARE_READ16_MEMBER(inputs1awp_r);
+ DECLARE_READ16_MEMBER(optos_r);
+ DECLARE_READ16_MEMBER(prot_1_r);
+ DECLARE_READ16_MEMBER(prot_0_r);
+ DECLARE_WRITE16_MEMBER(jpmioawp_w);
+ DECLARE_READ16_MEMBER(ump_r);
+ void jpm_draw_lamps(int data, int lamp_strobe);
};
diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h
index 24ceb3a0678..d8201c3770b 100644
--- a/src/mame/includes/kaneko16.h
+++ b/src/mame/includes/kaneko16.h
@@ -110,6 +110,16 @@ public:
required_device<cpu_device> m_maincpu;
optional_shared_ptr<UINT16> m_spriteram;
+ DECLARE_READ16_MEMBER(kaneko16_rnd_r);
+ DECLARE_WRITE16_MEMBER(kaneko16_coin_lockout_w);
+ DECLARE_WRITE16_MEMBER(kaneko16_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(kaneko16_eeprom_w);
+ DECLARE_WRITE16_MEMBER(bloodwar_coin_lockout_w);
+ DECLARE_READ16_MEMBER(gtmr_wheel_r);
+ DECLARE_READ16_MEMBER(gtmr2_wheel_r);
+ DECLARE_READ16_MEMBER(gtmr2_IN1_r);
+ DECLARE_WRITE16_MEMBER(shogwarr_oki_bank_w);
+ DECLARE_WRITE16_MEMBER(brapboys_oki_bank_w);
};
diff --git a/src/mame/includes/kangaroo.h b/src/mame/includes/kangaroo.h
index 73101c28f0a..7e469f1d167 100644
--- a/src/mame/includes/kangaroo.h
+++ b/src/mame/includes/kangaroo.h
@@ -20,6 +20,9 @@ public:
/* misc */
UINT8 m_clock;
+ DECLARE_READ8_MEMBER(mcu_sim_r);
+ DECLARE_WRITE8_MEMBER(mcu_sim_w);
+ DECLARE_WRITE8_MEMBER(kangaroo_coin_counter_w);
};
diff --git a/src/mame/includes/karnov.h b/src/mame/includes/karnov.h
index 8b99970b82a..581cf3b6d81 100644
--- a/src/mame/includes/karnov.h
+++ b/src/mame/includes/karnov.h
@@ -38,6 +38,8 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(karnov_control_w);
+ DECLARE_READ16_MEMBER(karnov_control_r);
};
enum {
diff --git a/src/mame/includes/kchamp.h b/src/mame/includes/kchamp.h
index 299dd0584ed..cd771829ddc 100644
--- a/src/mame/includes/kchamp.h
+++ b/src/mame/includes/kchamp.h
@@ -28,6 +28,12 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(control_w);
+ DECLARE_WRITE8_MEMBER(sound_reset_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(sound_msm_w);
+ DECLARE_READ8_MEMBER(sound_reset_r);
+ DECLARE_WRITE8_MEMBER(kc_sound_control_w);
};
diff --git a/src/mame/includes/kickgoal.h b/src/mame/includes/kickgoal.h
index 56cbb880576..f304f59d6b3 100644
--- a/src/mame/includes/kickgoal.h
+++ b/src/mame/includes/kickgoal.h
@@ -40,6 +40,8 @@ public:
/* devices */
required_device<okim6295_device> m_adpcm;
required_device<eeprom_device> m_eeprom;
+ DECLARE_READ16_MEMBER(kickgoal_eeprom_r);
+ DECLARE_WRITE16_MEMBER(kickgoal_eeprom_w);
};
diff --git a/src/mame/includes/kingobox.h b/src/mame/includes/kingobox.h
index 09d73130aaa..d33ec3f93e9 100644
--- a/src/mame/includes/kingobox.h
+++ b/src/mame/includes/kingobox.h
@@ -31,6 +31,10 @@ public:
device_t *m_video_cpu;
device_t *m_sprite_cpu;
device_t *m_audio_cpu;
+ DECLARE_WRITE8_MEMBER(video_interrupt_w);
+ DECLARE_WRITE8_MEMBER(sprite_interrupt_w);
+ DECLARE_WRITE8_MEMBER(scroll_interrupt_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
};
diff --git a/src/mame/includes/kncljoe.h b/src/mame/includes/kncljoe.h
index 3989a2643d8..77a5d3953e2 100644
--- a/src/mame/includes/kncljoe.h
+++ b/src/mame/includes/kncljoe.h
@@ -28,6 +28,8 @@ public:
/* devices */
device_t *m_soundcpu;
+ DECLARE_WRITE8_MEMBER(sound_cmd_w);
+ DECLARE_WRITE8_MEMBER(sound_irq_ack_w);
};
diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h
index aeae624dbec..220b141bef2 100644
--- a/src/mame/includes/konamigx.h
+++ b/src/mame/includes/konamigx.h
@@ -7,6 +7,29 @@ public:
{ }
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE32_MEMBER(esc_w);
+ DECLARE_WRITE32_MEMBER(eeprom_w);
+ DECLARE_WRITE32_MEMBER(control_w);
+ DECLARE_READ32_MEMBER(waitskip_r);
+ DECLARE_READ32_MEMBER(ccu_r);
+ DECLARE_WRITE32_MEMBER(ccu_w);
+ DECLARE_READ32_MEMBER(sound020_r);
+ DECLARE_WRITE32_MEMBER(sound020_w);
+ DECLARE_READ32_MEMBER(le2_gun_H_r);
+ DECLARE_READ32_MEMBER(le2_gun_V_r);
+ DECLARE_READ32_MEMBER(gx5bppspr_r);
+ DECLARE_READ32_MEMBER(gx6bppspr_r);
+ DECLARE_READ32_MEMBER(type1_roz_r1);
+ DECLARE_READ32_MEMBER(type1_roz_r2);
+ DECLARE_READ32_MEMBER(type3_sync_r);
+ DECLARE_WRITE32_MEMBER(type4_prot_w);
+ DECLARE_WRITE32_MEMBER(type1_cablamps_w);
+ DECLARE_READ16_MEMBER(sndcomm68k_r);
+ DECLARE_WRITE16_MEMBER(sndcomm68k_w);
+ DECLARE_READ16_MEMBER(tms57002_data_word_r);
+ DECLARE_WRITE16_MEMBER(tms57002_data_word_w);
+ DECLARE_READ16_MEMBER(tms57002_status_word_r);
+ DECLARE_WRITE16_MEMBER(tms57002_control_word_w);
};
diff --git a/src/mame/includes/kopunch.h b/src/mame/includes/kopunch.h
index 6a0f30e1820..a0f06f95f6e 100644
--- a/src/mame/includes/kopunch.h
+++ b/src/mame/includes/kopunch.h
@@ -24,6 +24,9 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_READ8_MEMBER(kopunch_in_r);
+ DECLARE_WRITE8_MEMBER(kopunch_lamp_w);
+ DECLARE_WRITE8_MEMBER(kopunch_coin_w);
};
/*----------- defined in video/kopunch.c -----------*/
diff --git a/src/mame/includes/ksayakyu.h b/src/mame/includes/ksayakyu.h
index 1c90f9ac82f..b095346182d 100644
--- a/src/mame/includes/ksayakyu.h
+++ b/src/mame/includes/ksayakyu.h
@@ -23,6 +23,10 @@ public:
/* misc */
int m_sound_status;
+ DECLARE_WRITE8_MEMBER(bank_select_w);
+ DECLARE_WRITE8_MEMBER(latch_w);
+ DECLARE_READ8_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(tomaincpu_w);
};
diff --git a/src/mame/includes/kyugo.h b/src/mame/includes/kyugo.h
index 60b5ac6ceec..b79109ca47f 100644
--- a/src/mame/includes/kyugo.h
+++ b/src/mame/includes/kyugo.h
@@ -34,6 +34,9 @@ public:
device_t *m_subcpu;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(kyugo_nmi_mask_w);
+ DECLARE_WRITE8_MEMBER(kyugo_sub_cpu_control_w);
+ DECLARE_WRITE8_MEMBER(kyugo_coin_counter_w);
};
diff --git a/src/mame/includes/labyrunr.h b/src/mame/includes/labyrunr.h
index e486c65583e..7625f6ad015 100644
--- a/src/mame/includes/labyrunr.h
+++ b/src/mame/includes/labyrunr.h
@@ -29,6 +29,7 @@ public:
device_t *m_k007121;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(labyrunr_bankswitch_w);
};
diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h
index 2038a159ce7..8d2b1b224e6 100644
--- a/src/mame/includes/ladybug.h
+++ b/src/mame/includes/ladybug.h
@@ -41,6 +41,12 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_READ8_MEMBER(sraider_sound_low_r);
+ DECLARE_READ8_MEMBER(sraider_sound_high_r);
+ DECLARE_WRITE8_MEMBER(sraider_sound_low_w);
+ DECLARE_WRITE8_MEMBER(sraider_sound_high_w);
+ DECLARE_READ8_MEMBER(sraider_8005_r);
+ DECLARE_WRITE8_MEMBER(sraider_misc_w);
};
diff --git a/src/mame/includes/ladyfrog.h b/src/mame/includes/ladyfrog.h
index e86391c89e0..cf59aeed57b 100644
--- a/src/mame/includes/ladyfrog.h
+++ b/src/mame/includes/ladyfrog.h
@@ -32,6 +32,13 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_READ8_MEMBER(from_snd_r);
+ DECLARE_WRITE8_MEMBER(to_main_w);
+ DECLARE_WRITE8_MEMBER(sound_cpu_reset_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_READ8_MEMBER(snd_flag_r);
};
diff --git a/src/mame/includes/laserbat.h b/src/mame/includes/laserbat.h
index 353cafb07ff..d67e04fed3c 100644
--- a/src/mame/includes/laserbat.h
+++ b/src/mame/includes/laserbat.h
@@ -56,6 +56,13 @@ public:
// memory
UINT8 m_videoram[0x400];
UINT8 m_colorram[0x400];
+ DECLARE_WRITE8_MEMBER(laserbat_videoram_w);
+ DECLARE_WRITE8_MEMBER(video_extra_w);
+ DECLARE_WRITE8_MEMBER(sprite_x_y_w);
+ DECLARE_WRITE8_MEMBER(laserbat_input_mux_w);
+ DECLARE_READ8_MEMBER(laserbat_input_r);
+ DECLARE_WRITE8_MEMBER(laserbat_cnteff_w);
+ DECLARE_WRITE8_MEMBER(laserbat_cntmov_w);
};
diff --git a/src/mame/includes/lasso.h b/src/mame/includes/lasso.h
index be0e52f0ca3..99cb1a2e1c2 100644
--- a/src/mame/includes/lasso.h
+++ b/src/mame/includes/lasso.h
@@ -32,6 +32,10 @@ public:
device_t *m_audiocpu;
device_t *m_sn_1;
device_t *m_sn_2;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(pinbo_sound_command_w);
+ DECLARE_READ8_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(sound_select_w);
};
diff --git a/src/mame/includes/lastduel.h b/src/mame/includes/lastduel.h
index 0ca25c128e9..35561bb87f9 100644
--- a/src/mame/includes/lastduel.h
+++ b/src/mame/includes/lastduel.h
@@ -35,6 +35,8 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(lastduel_sound_w);
+ DECLARE_WRITE8_MEMBER(mg_bankswitch_w);
};
/*----------- defined in video/lastduel.c -----------*/
diff --git a/src/mame/includes/lazercmd.h b/src/mame/includes/lazercmd.h
index 501de69c06e..8c84caa8546 100644
--- a/src/mame/includes/lazercmd.h
+++ b/src/mame/includes/lazercmd.h
@@ -41,6 +41,14 @@ public:
/* device */
required_device<cpu_device> m_maincpu;
device_t *m_dac;
+ DECLARE_WRITE8_MEMBER(lazercmd_ctrl_port_w);
+ DECLARE_READ8_MEMBER(lazercmd_ctrl_port_r);
+ DECLARE_WRITE8_MEMBER(lazercmd_data_port_w);
+ DECLARE_READ8_MEMBER(lazercmd_data_port_r);
+ DECLARE_WRITE8_MEMBER(lazercmd_hardware_w);
+ DECLARE_WRITE8_MEMBER(medlanes_hardware_w);
+ DECLARE_WRITE8_MEMBER(bbonk_hardware_w);
+ DECLARE_READ8_MEMBER(lazercmd_hardware_r);
};
diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h
index 2056e7b99f8..bf3a9e022bf 100644
--- a/src/mame/includes/legionna.h
+++ b/src/mame/includes/legionna.h
@@ -23,6 +23,7 @@ public:
UINT16 m_fore_gfx_bank;
UINT16 m_mid_gfx_bank;
required_shared_ptr<UINT16> m_spriteram;
+ DECLARE_WRITE16_MEMBER(denjin_paletteram16_xBBBBBGGGGGRRRRR_word_w);
};
diff --git a/src/mame/includes/lemmings.h b/src/mame/includes/lemmings.h
index 7c606940455..ddb6b262e46 100644
--- a/src/mame/includes/lemmings.h
+++ b/src/mame/includes/lemmings.h
@@ -27,6 +27,12 @@ public:
device_t *m_audiocpu;
required_device<buffered_spriteram16_device> m_spriteram;
required_device<buffered_spriteram16_device> m_spriteram2;
+ DECLARE_WRITE16_MEMBER(lemmings_control_w);
+ DECLARE_READ16_MEMBER(lemmings_trackball_r);
+ DECLARE_READ16_MEMBER(lemmings_prot_r);
+ DECLARE_WRITE16_MEMBER(lemmings_palette_24bit_w);
+ DECLARE_WRITE16_MEMBER(lemmings_sound_w);
+ DECLARE_WRITE8_MEMBER(lemmings_sound_ack_w);
};
diff --git a/src/mame/includes/lethal.h b/src/mame/includes/lethal.h
index 07b6f7e3c61..239eb4f47d7 100644
--- a/src/mame/includes/lethal.h
+++ b/src/mame/includes/lethal.h
@@ -27,6 +27,16 @@ public:
device_t *m_k056832;
device_t *m_k053244;
device_t *m_k054000;
+ DECLARE_WRITE8_MEMBER(control2_w);
+ DECLARE_WRITE8_MEMBER(sound_cmd_w);
+ DECLARE_WRITE8_MEMBER(sound_irq_w);
+ DECLARE_READ8_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(le_bankswitch_w);
+ DECLARE_READ8_MEMBER(le_4800_r);
+ DECLARE_WRITE8_MEMBER(le_4800_w);
+ DECLARE_WRITE8_MEMBER(le_bgcolor_w);
+ DECLARE_READ8_MEMBER(guns_r);
+ DECLARE_READ8_MEMBER(gunsaux_r);
};
/*----------- defined in video/lethal.c -----------*/
diff --git a/src/mame/includes/lethalj.h b/src/mame/includes/lethalj.h
index fdef8714416..56be8e67e3c 100644
--- a/src/mame/includes/lethalj.h
+++ b/src/mame/includes/lethalj.h
@@ -18,6 +18,9 @@ public:
UINT16 m_gunx;
UINT16 m_guny;
UINT8 m_blank_palette;
+ DECLARE_WRITE16_MEMBER(ripribit_control_w);
+ DECLARE_WRITE16_MEMBER(cfarm_control_w);
+ DECLARE_WRITE16_MEMBER(cclownz_control_w);
};
diff --git a/src/mame/includes/liberate.h b/src/mame/includes/liberate.h
index 8be3ad617fd..cbab7e7dfa3 100644
--- a/src/mame/includes/liberate.h
+++ b/src/mame/includes/liberate.h
@@ -25,6 +25,16 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_READ8_MEMBER(deco16_bank_r);
+ DECLARE_READ8_MEMBER(deco16_io_r);
+ DECLARE_WRITE8_MEMBER(deco16_bank_w);
+ DECLARE_READ8_MEMBER(prosoccr_bank_r);
+ DECLARE_READ8_MEMBER(prosoccr_charram_r);
+ DECLARE_WRITE8_MEMBER(prosoccr_charram_w);
+ DECLARE_WRITE8_MEMBER(prosoccr_char_bank_w);
+ DECLARE_WRITE8_MEMBER(prosoccr_io_bank_w);
+ DECLARE_READ8_MEMBER(prosport_charram_r);
+ DECLARE_WRITE8_MEMBER(prosport_charram_w);
};
diff --git a/src/mame/includes/lkage.h b/src/mame/includes/lkage.h
index 456c8ca44cd..254751c543f 100644
--- a/src/mame/includes/lkage.h
+++ b/src/mame/includes/lkage.h
@@ -48,6 +48,14 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_mcu;
+ DECLARE_WRITE8_MEMBER(lkage_sound_command_w);
+ DECLARE_WRITE8_MEMBER(lkage_sh_nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(lkage_sh_nmi_enable_w);
+ DECLARE_READ8_MEMBER(sound_status_r);
+ DECLARE_READ8_MEMBER(port_fetch_r);
+ DECLARE_READ8_MEMBER(fake_mcu_r);
+ DECLARE_WRITE8_MEMBER(fake_mcu_w);
+ DECLARE_READ8_MEMBER(fake_status_r);
};
/*----------- defined in machine/lkage.c -----------*/
diff --git a/src/mame/includes/lordgun.h b/src/mame/includes/lordgun.h
index 1dc716b804a..0d0c0f8e09b 100644
--- a/src/mame/includes/lordgun.h
+++ b/src/mame/includes/lordgun.h
@@ -31,6 +31,12 @@ public:
bitmap_ind16 *m_bitmaps[5];
UINT16 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE16_MEMBER(lordgun_priority_w);
+ DECLARE_READ16_MEMBER(lordgun_gun_0_x_r);
+ DECLARE_READ16_MEMBER(lordgun_gun_0_y_r);
+ DECLARE_READ16_MEMBER(lordgun_gun_1_x_r);
+ DECLARE_READ16_MEMBER(lordgun_gun_1_y_r);
+ DECLARE_WRITE16_MEMBER(lordgun_soundlatch_w);
};
diff --git a/src/mame/includes/lsasquad.h b/src/mame/includes/lsasquad.h
index 4030bdbfd2b..fe51430c845 100644
--- a/src/mame/includes/lsasquad.h
+++ b/src/mame/includes/lsasquad.h
@@ -35,6 +35,7 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_mcu;
+ DECLARE_WRITE8_MEMBER(lsasquad_bankswitch_w);
};
/*----------- defined in machine/lsasquad.c -----------*/
diff --git a/src/mame/includes/lucky74.h b/src/mame/includes/lucky74.h
index 7303dbbb336..44305fced2d 100644
--- a/src/mame/includes/lucky74.h
+++ b/src/mame/includes/lucky74.h
@@ -18,6 +18,12 @@ public:
UINT8 *m_bg_colorram;
tilemap_t *m_fg_tilemap;
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(custom_09R81P_port_r);
+ DECLARE_WRITE8_MEMBER(custom_09R81P_port_w);
+ DECLARE_READ8_MEMBER(usart_8251_r);
+ DECLARE_WRITE8_MEMBER(usart_8251_w);
+ DECLARE_READ8_MEMBER(copro_sm7831_r);
+ DECLARE_WRITE8_MEMBER(copro_sm7831_w);
};
diff --git a/src/mame/includes/lvcards.h b/src/mame/includes/lvcards.h
index 529aa2ae06c..609ddf00825 100644
--- a/src/mame/includes/lvcards.h
+++ b/src/mame/includes/lvcards.h
@@ -10,6 +10,9 @@ public:
UINT8 *m_videoram;
UINT8 *m_colorram;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(control_port_2_w);
+ DECLARE_WRITE8_MEMBER(control_port_2a_w);
+ DECLARE_READ8_MEMBER(payout_r);
};
diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h
index 00839ee8228..c5b620d1d1a 100644
--- a/src/mame/includes/lwings.h
+++ b/src/mame/includes/lwings.h
@@ -31,6 +31,13 @@ public:
UINT8 m_nmi_mask;
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_WRITE8_MEMBER(avengers_adpcm_w);
+ DECLARE_READ8_MEMBER(avengers_adpcm_r);
+ DECLARE_WRITE8_MEMBER(lwings_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(avengers_protection_w);
+ DECLARE_WRITE8_MEMBER(avengers_prot_bank_w);
+ DECLARE_READ8_MEMBER(avengers_protection_r);
+ DECLARE_READ8_MEMBER(avengers_soundlatch2_r);
};
diff --git a/src/mame/includes/m10.h b/src/mame/includes/m10.h
index 2c5895a1abb..80b76debbf3 100644
--- a/src/mame/includes/m10.h
+++ b/src/mame/includes/m10.h
@@ -61,6 +61,14 @@ public:
device_t *m_ic8j1;
device_t *m_ic8j2;
samples_device *m_samples;
+ DECLARE_WRITE8_MEMBER(m10_ctrl_w);
+ DECLARE_WRITE8_MEMBER(m11_ctrl_w);
+ DECLARE_WRITE8_MEMBER(m15_ctrl_w);
+ DECLARE_WRITE8_MEMBER(m10_a500_w);
+ DECLARE_WRITE8_MEMBER(m11_a100_w);
+ DECLARE_WRITE8_MEMBER(m15_a100_w);
+ DECLARE_READ8_MEMBER(m10_a700_r);
+ DECLARE_READ8_MEMBER(m11_a700_r);
};
diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h
index b25df1ac3a5..a7e13f8afe3 100644
--- a/src/mame/includes/m107.h
+++ b/src/mame/includes/m107.h
@@ -29,6 +29,15 @@ public:
UINT16 m_control[0x10];
UINT16 *m_spriteram;
UINT16 *m_buffered_spriteram;
+ DECLARE_WRITE16_MEMBER(m107_coincounter_w);
+ DECLARE_WRITE16_MEMBER(m107_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(m107_soundlatch_w);
+ DECLARE_READ16_MEMBER(m107_sound_status_r);
+ DECLARE_READ16_MEMBER(m107_soundlatch_r);
+ DECLARE_WRITE16_MEMBER(m107_sound_irq_ack_w);
+ DECLARE_WRITE16_MEMBER(m107_sound_status_w);
+ DECLARE_WRITE16_MEMBER(m107_sound_reset_w);
+ DECLARE_WRITE16_MEMBER(wpksoc_output_w);
};
diff --git a/src/mame/includes/m62.h b/src/mame/includes/m62.h
index 308808eee02..59e63720581 100644
--- a/src/mame/includes/m62.h
+++ b/src/mame/includes/m62.h
@@ -28,6 +28,15 @@ public:
/* misc */
int m_ldrun2_bankswap; //ldrun2
int m_bankcontrol[2]; //ldrun2
+ DECLARE_READ8_MEMBER(ldrun2_bankswitch_r);
+ DECLARE_WRITE8_MEMBER(ldrun2_bankswitch_w);
+ DECLARE_READ8_MEMBER(ldrun3_prot_5_r);
+ DECLARE_READ8_MEMBER(ldrun3_prot_7_r);
+ DECLARE_WRITE8_MEMBER(ldrun4_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(kidniki_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(spelunkr_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(spelunk2_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(youjyudn_bankswitch_w);
};
diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h
index 9d26d8721fa..0df896d4013 100644
--- a/src/mame/includes/m72.h
+++ b/src/mame/includes/m72.h
@@ -38,6 +38,32 @@ public:
INT32 m_video_off;
int m_majtitle_rowscroll;
device_t *m_audio;
+ DECLARE_WRITE16_MEMBER(m72_main_mcu_sound_w);
+ DECLARE_WRITE16_MEMBER(m72_main_mcu_w);
+ DECLARE_WRITE8_MEMBER(m72_mcu_data_w);
+ DECLARE_READ8_MEMBER(m72_mcu_data_r);
+ DECLARE_READ8_MEMBER(m72_mcu_sample_r);
+ DECLARE_WRITE8_MEMBER(m72_mcu_ack_w);
+ DECLARE_READ8_MEMBER(m72_mcu_snd_r);
+ DECLARE_READ8_MEMBER(m72_mcu_port_r);
+ DECLARE_WRITE8_MEMBER(m72_mcu_port_w);
+ DECLARE_WRITE8_MEMBER(m72_mcu_low_w);
+ DECLARE_WRITE8_MEMBER(m72_mcu_high_w);
+ DECLARE_READ8_MEMBER(m72_snd_cpu_sample_r);
+ DECLARE_WRITE16_MEMBER(bchopper_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(nspirit_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(imgfight_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(loht_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(xmultiplm72_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(dbreedm72_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(airduel_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(dkgenm72_sample_trigger_w);
+ DECLARE_WRITE16_MEMBER(gallop_sample_trigger_w);
+ DECLARE_READ16_MEMBER(protection_r);
+ DECLARE_WRITE16_MEMBER(protection_w);
+ DECLARE_READ16_MEMBER(soundram_r);
+ DECLARE_WRITE16_MEMBER(soundram_w);
+ DECLARE_READ16_MEMBER(poundfor_trackball_r);
};
diff --git a/src/mame/includes/m90.h b/src/mame/includes/m90.h
index c734b3fee82..134d0bb981a 100644
--- a/src/mame/includes/m90.h
+++ b/src/mame/includes/m90.h
@@ -15,6 +15,10 @@ public:
UINT8 m_last_pf1;
UINT8 m_last_pf2;
device_t *m_audio;
+ DECLARE_WRITE16_MEMBER(m90_coincounter_w);
+ DECLARE_WRITE16_MEMBER(quizf1_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(dynablsb_sound_command_w);
+ DECLARE_WRITE16_MEMBER(unknown_w);
};
diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h
index 97c4ffe76b1..48fb6745df8 100644
--- a/src/mame/includes/m92.h
+++ b/src/mame/includes/m92.h
@@ -35,6 +35,16 @@ public:
UINT8 m_palette_bank;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_READ16_MEMBER(m92_eeprom_r);
+ DECLARE_WRITE16_MEMBER(m92_eeprom_w);
+ DECLARE_WRITE16_MEMBER(m92_coincounter_w);
+ DECLARE_WRITE16_MEMBER(m92_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(m92_soundlatch_w);
+ DECLARE_READ16_MEMBER(m92_sound_status_r);
+ DECLARE_READ16_MEMBER(m92_soundlatch_r);
+ DECLARE_WRITE16_MEMBER(m92_sound_irq_ack_w);
+ DECLARE_WRITE16_MEMBER(m92_sound_status_w);
+ DECLARE_WRITE16_MEMBER(m92_sound_reset_w);
};
diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h
index febd6e3a64a..08f236c2e4d 100644
--- a/src/mame/includes/macrossp.h
+++ b/src/mame/includes/macrossp.h
@@ -41,6 +41,13 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE32_MEMBER(paletteram32_macrossp_w);
+ DECLARE_READ32_MEMBER(macrossp_soundstatus_r);
+ DECLARE_WRITE32_MEMBER(macrossp_soundcmd_w);
+ DECLARE_READ16_MEMBER(macrossp_soundcmd_r);
+ DECLARE_WRITE32_MEMBER(macrossp_palette_fade_w);
+ DECLARE_WRITE32_MEMBER(macrossp_speedup_w);
+ DECLARE_WRITE32_MEMBER(quizmoon_speedup_w);
};
/*----------- defined in video/macrossp.c -----------*/
diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h
index ab92f20ce20..dbcb54b2f6c 100644
--- a/src/mame/includes/madalien.h
+++ b/src/mame/includes/madalien.h
@@ -32,6 +32,11 @@ public:
tilemap_t *m_tilemap_edge1[4];
tilemap_t *m_tilemap_edge2[4];
bitmap_ind16 *m_headlight_bitmap;
+ DECLARE_READ8_MEMBER(shift_r);
+ DECLARE_READ8_MEMBER(shift_rev_r);
+ DECLARE_WRITE8_MEMBER(madalien_output_w);
+ DECLARE_WRITE8_MEMBER(madalien_sound_command_w);
+ DECLARE_READ8_MEMBER(madalien_sound_command_r);
};
diff --git a/src/mame/includes/madmotor.h b/src/mame/includes/madmotor.h
index cc88cb2ca00..fb705cbd16f 100644
--- a/src/mame/includes/madmotor.h
+++ b/src/mame/includes/madmotor.h
@@ -21,6 +21,7 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(madmotor_sound_w);
};
diff --git a/src/mame/includes/magmax.h b/src/mame/includes/magmax.h
index acd9b08dfe1..d864a61f8aa 100644
--- a/src/mame/includes/magmax.h
+++ b/src/mame/includes/magmax.h
@@ -18,6 +18,10 @@ public:
UINT16 *m_spriteram;
size_t m_spriteram_size;
bitmap_ind16 m_bitmap;
+ DECLARE_WRITE16_MEMBER(magmax_sound_w);
+ DECLARE_READ8_MEMBER(magmax_sound_irq_ack);
+ DECLARE_READ8_MEMBER(magmax_sound_r);
+ DECLARE_WRITE16_MEMBER(magmax_vreg_w);
};
diff --git a/src/mame/includes/mainevt.h b/src/mame/includes/mainevt.h
index 5728126d8ed..845bfc51177 100644
--- a/src/mame/includes/mainevt.h
+++ b/src/mame/includes/mainevt.h
@@ -28,6 +28,15 @@ public:
device_t *m_k007232;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_WRITE8_MEMBER(dv_nmienable_w);
+ DECLARE_WRITE8_MEMBER(mainevt_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(mainevt_coin_w);
+ DECLARE_WRITE8_MEMBER(mainevt_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(mainevt_sh_irqcontrol_w);
+ DECLARE_WRITE8_MEMBER(devstor_sh_irqcontrol_w);
+ DECLARE_WRITE8_MEMBER(mainevt_sh_bankswitch_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
/*----------- defined in video/mainevt.c -----------*/
diff --git a/src/mame/includes/mainsnk.h b/src/mame/includes/mainsnk.h
index a1f05cb1189..7f9aa9188a7 100644
--- a/src/mame/includes/mainsnk.h
+++ b/src/mame/includes/mainsnk.h
@@ -12,6 +12,9 @@ public:
int m_sound_cpu_busy;
UINT32 m_bg_tile_offset;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_READ8_MEMBER(sound_command_r);
+ DECLARE_READ8_MEMBER(sound_ack_r);
};
diff --git a/src/mame/includes/malzak.h b/src/mame/includes/malzak.h
index 0b7f18fa12e..aa966526565 100644
--- a/src/mame/includes/malzak.h
+++ b/src/mame/includes/malzak.h
@@ -23,6 +23,13 @@ public:
device_t *m_s2636_0;
device_t *m_s2636_1;
device_t *m_saa5050;
+ DECLARE_READ8_MEMBER(fake_VRLE_r);
+ DECLARE_READ8_MEMBER(s2636_portA_r);
+ DECLARE_READ8_MEMBER(s2650_data_r);
+ DECLARE_WRITE8_MEMBER(port40_w);
+ DECLARE_WRITE8_MEMBER(port60_w);
+ DECLARE_WRITE8_MEMBER(portc0_w);
+ DECLARE_READ8_MEMBER(collision_r);
};
diff --git a/src/mame/includes/mappy.h b/src/mame/includes/mappy.h
index f5007e9697f..588413b019d 100644
--- a/src/mame/includes/mappy.h
+++ b/src/mame/includes/mappy.h
@@ -15,6 +15,9 @@ public:
UINT8 m_main_irq_mask;
UINT8 m_sub_irq_mask;
UINT8 m_sub2_irq_mask;
+ DECLARE_WRITE8_MEMBER(superpac_latch_w);
+ DECLARE_WRITE8_MEMBER(phozon_latch_w);
+ DECLARE_WRITE8_MEMBER(mappy_latch_w);
};
diff --git a/src/mame/includes/marineb.h b/src/mame/includes/marineb.h
index 393a55275b4..e23753b4b25 100644
--- a/src/mame/includes/marineb.h
+++ b/src/mame/includes/marineb.h
@@ -22,6 +22,7 @@ public:
device_t *m_audiocpu;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h
index 70cfdd546e3..c7a81c66a98 100644
--- a/src/mame/includes/mario.h
+++ b/src/mame/includes/mario.h
@@ -60,6 +60,7 @@ public:
int m_monitor;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
/*----------- defined in video/mario.c -----------*/
diff --git a/src/mame/includes/markham.h b/src/mame/includes/markham.h
index f92ce725a61..c6f01fb06d7 100644
--- a/src/mame/includes/markham.h
+++ b/src/mame/includes/markham.h
@@ -18,6 +18,7 @@ public:
/* video-related */
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(markham_e004_r);
};
diff --git a/src/mame/includes/matmania.h b/src/mame/includes/matmania.h
index 981963123ae..f31b3f7c88b 100644
--- a/src/mame/includes/matmania.h
+++ b/src/mame/includes/matmania.h
@@ -45,6 +45,8 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_mcu;
+ DECLARE_WRITE8_MEMBER(matmania_sh_command_w);
+ DECLARE_WRITE8_MEMBER(maniach_sh_command_w);
};
/*----------- defined in machine/maniach.c -----------*/
diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h
index 54746025849..82be0db3cc9 100644
--- a/src/mame/includes/mcatadv.h
+++ b/src/mame/includes/mcatadv.h
@@ -26,6 +26,10 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_soundcpu;
+ DECLARE_WRITE16_MEMBER(mcat_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(mcat_coin_w);
+ DECLARE_READ16_MEMBER(mcat_wd_r);
+ DECLARE_WRITE8_MEMBER(mcatadv_sound_bw_w);
};
/*----------- defined in video/mcatadv.c -----------*/
diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h
index 0d6a916481c..3a4538d91ec 100644
--- a/src/mame/includes/mcr68.h
+++ b/src/mame/includes/mcr68.h
@@ -40,6 +40,19 @@ public:
tilemap_t *m_fg_tilemap;
UINT16 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_READ16_MEMBER(zwackery_6840_r);
+ DECLARE_WRITE16_MEMBER(xenophobe_control_w);
+ DECLARE_WRITE16_MEMBER(blasted_control_w);
+ DECLARE_READ16_MEMBER(spyhunt2_port_0_r);
+ DECLARE_READ16_MEMBER(spyhunt2_port_1_r);
+ DECLARE_WRITE16_MEMBER(spyhunt2_control_w);
+ DECLARE_READ16_MEMBER(archrivl_port_1_r);
+ DECLARE_WRITE16_MEMBER(archrivl_control_w);
+ DECLARE_WRITE16_MEMBER(pigskin_protection_w);
+ DECLARE_READ16_MEMBER(pigskin_protection_r);
+ DECLARE_READ16_MEMBER(pigskin_port_1_r);
+ DECLARE_READ16_MEMBER(pigskin_port_2_r);
+ DECLARE_READ16_MEMBER(trisport_port_1_r);
};
diff --git a/src/mame/includes/meadows.h b/src/mame/includes/meadows.h
index 5ed40c5e8de..9f9228bcf9a 100644
--- a/src/mame/includes/meadows.h
+++ b/src/mame/includes/meadows.h
@@ -29,6 +29,12 @@ public:
UINT8 m_0c03;
tilemap_t *m_bg_tilemap;
UINT8 *m_spriteram;
+ DECLARE_READ8_MEMBER(hsync_chain_r);
+ DECLARE_READ8_MEMBER(vsync_chain_hi_r);
+ DECLARE_READ8_MEMBER(vsync_chain_lo_r);
+ DECLARE_WRITE8_MEMBER(meadows_audio_w);
+ DECLARE_WRITE8_MEMBER(audio_hardware_w);
+ DECLARE_READ8_MEMBER(audio_hardware_r);
};
diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h
index e8b6cb1bb56..585cd5f31ec 100644
--- a/src/mame/includes/megasys1.h
+++ b/src/mame/includes/megasys1.h
@@ -51,6 +51,20 @@ public:
int m_mcu_hs;
UINT16 m_mcu_hs_ram[0x10];
+ DECLARE_READ16_MEMBER(ip_select_r);
+ DECLARE_WRITE16_MEMBER(ip_select_w);
+ DECLARE_READ16_MEMBER(protection_peekaboo_r);
+ DECLARE_WRITE16_MEMBER(protection_peekaboo_w);
+ DECLARE_READ16_MEMBER(megasys1A_mcu_hs_r);
+ DECLARE_WRITE16_MEMBER(megasys1A_mcu_hs_w);
+ DECLARE_READ16_MEMBER(edfbl_input_r);
+ DECLARE_READ16_MEMBER(iganinju_mcu_hs_r);
+ DECLARE_WRITE16_MEMBER(iganinju_mcu_hs_w);
+ DECLARE_READ16_MEMBER(soldamj_spriteram16_r);
+ DECLARE_WRITE16_MEMBER(soldamj_spriteram16_w);
+ DECLARE_READ16_MEMBER(stdragon_mcu_hs_r);
+ DECLARE_WRITE16_MEMBER(stdragon_mcu_hs_w);
+ DECLARE_READ16_MEMBER(monkelf_input_r);
};
diff --git a/src/mame/includes/megazone.h b/src/mame/includes/megazone.h
index a1d182fc045..f68a5aa3727 100644
--- a/src/mame/includes/megazone.h
+++ b/src/mame/includes/megazone.h
@@ -35,6 +35,10 @@ public:
cpu_device *m_daccpu;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(megazone_i8039_irq_w);
+ DECLARE_WRITE8_MEMBER(i8039_irqen_and_status_w);
+ DECLARE_WRITE8_MEMBER(megazone_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/mermaid.h b/src/mame/includes/mermaid.h
index 165b0c0aafe..df37856ef77 100644
--- a/src/mame/includes/mermaid.h
+++ b/src/mame/includes/mermaid.h
@@ -48,6 +48,12 @@ public:
device_t *m_ay2;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(mermaid_ay8910_write_port_w);
+ DECLARE_WRITE8_MEMBER(mermaid_ay8910_control_port_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
+ DECLARE_WRITE8_MEMBER(rougien_sample_rom_lo_w);
+ DECLARE_WRITE8_MEMBER(rougien_sample_rom_hi_w);
+ DECLARE_WRITE8_MEMBER(rougien_sample_playback_w);
};
diff --git a/src/mame/includes/metalmx.h b/src/mame/includes/metalmx.h
index 211e2e31168..f3531493e62 100644
--- a/src/mame/includes/metalmx.h
+++ b/src/mame/includes/metalmx.h
@@ -24,4 +24,22 @@ public:
UINT16 *m_gsp_vram;
UINT32 *m_adsp_internal_program_ram;
+ DECLARE_READ32_MEMBER(unk_r);
+ DECLARE_READ32_MEMBER(watchdog_r);
+ DECLARE_WRITE32_MEMBER(shifter_w);
+ DECLARE_WRITE32_MEMBER(motor_w);
+ DECLARE_WRITE32_MEMBER(reset_w);
+ DECLARE_READ32_MEMBER(sound_data_r);
+ DECLARE_WRITE32_MEMBER(sound_data_w);
+ DECLARE_WRITE32_MEMBER(dsp32c_1_w);
+ DECLARE_READ32_MEMBER(dsp32c_1_r);
+ DECLARE_WRITE32_MEMBER(dsp32c_2_w);
+ DECLARE_READ32_MEMBER(dsp32c_2_r);
+ DECLARE_WRITE32_MEMBER(host_gsp_w);
+ DECLARE_READ32_MEMBER(host_gsp_r);
+ DECLARE_READ32_MEMBER(host_dram_r);
+ DECLARE_WRITE32_MEMBER(host_dram_w);
+ DECLARE_READ32_MEMBER(host_vram_r);
+ DECLARE_WRITE32_MEMBER(host_vram_w);
+ DECLARE_WRITE32_MEMBER(timer_w);
};
diff --git a/src/mame/includes/metlclsh.h b/src/mame/includes/metlclsh.h
index 23d38276bc0..0552005f72f 100644
--- a/src/mame/includes/metlclsh.h
+++ b/src/mame/includes/metlclsh.h
@@ -29,6 +29,12 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_subcpu;
+ DECLARE_WRITE8_MEMBER(metlclsh_cause_irq);
+ DECLARE_WRITE8_MEMBER(metlclsh_ack_nmi);
+ DECLARE_WRITE8_MEMBER(metlclsh_cause_nmi2);
+ DECLARE_WRITE8_MEMBER(metlclsh_ack_irq2);
+ DECLARE_WRITE8_MEMBER(metlclsh_ack_nmi2);
+ DECLARE_WRITE8_MEMBER(metlclsh_flipscreen_w);
};
diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h
index 8379ebbea1c..fc0226ba6e3 100644
--- a/src/mame/includes/metro.h
+++ b/src/mame/includes/metro.h
@@ -81,6 +81,37 @@ public:
optional_device<okim6295_device> m_oki;
optional_device<device_t> m_ymsnd;
optional_device<k053936_device> m_k053936;
+ DECLARE_READ16_MEMBER(metro_irq_cause_r);
+ DECLARE_WRITE16_MEMBER(metro_irq_cause_w);
+ DECLARE_WRITE16_MEMBER(mouja_irq_timer_ctrl_w);
+ DECLARE_WRITE16_MEMBER(metro_soundlatch_w);
+ DECLARE_READ16_MEMBER(metro_soundstatus_r);
+ DECLARE_WRITE16_MEMBER(metro_soundstatus_w);
+ DECLARE_WRITE8_MEMBER(metro_sound_rombank_w);
+ DECLARE_WRITE8_MEMBER(daitorid_sound_rombank_w);
+ DECLARE_READ8_MEMBER(metro_porta_r);
+ DECLARE_WRITE8_MEMBER(metro_porta_w);
+ DECLARE_WRITE8_MEMBER(metro_portb_w);
+ DECLARE_WRITE8_MEMBER(daitorid_portb_w);
+ DECLARE_WRITE16_MEMBER(metro_coin_lockout_1word_w);
+ DECLARE_WRITE16_MEMBER(metro_coin_lockout_4words_w);
+ DECLARE_READ16_MEMBER(metro_bankedrom_r);
+ DECLARE_WRITE16_MEMBER(metro_blitter_w);
+ DECLARE_READ16_MEMBER(balcube_dsw_r);
+ DECLARE_READ16_MEMBER(karatour_vram_0_r);
+ DECLARE_READ16_MEMBER(karatour_vram_1_r);
+ DECLARE_READ16_MEMBER(karatour_vram_2_r);
+ DECLARE_WRITE16_MEMBER(karatour_vram_0_w);
+ DECLARE_WRITE16_MEMBER(karatour_vram_1_w);
+ DECLARE_WRITE16_MEMBER(karatour_vram_2_w);
+ DECLARE_READ16_MEMBER(gakusai_input_r);
+ DECLARE_WRITE16_MEMBER(blzntrnd_sound_w);
+ DECLARE_WRITE8_MEMBER(blzntrnd_sh_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(puzzlet_irq_enable_w);
+ DECLARE_WRITE16_MEMBER(vram_0_clr_w);
+ DECLARE_WRITE16_MEMBER(vram_1_clr_w);
+ DECLARE_WRITE16_MEMBER(vram_2_clr_w);
+ DECLARE_WRITE8_MEMBER(puzzlet_portb_w);
};
diff --git a/src/mame/includes/mexico86.h b/src/mame/includes/mexico86.h
index 5dfc962c8ab..271522c8d3b 100644
--- a/src/mame/includes/mexico86.h
+++ b/src/mame/includes/mexico86.h
@@ -39,6 +39,7 @@ public:
UINT8 m_queue[64];
int m_qfront;
int m_qstate;
+ DECLARE_WRITE8_MEMBER(mexico86_sub_output_w);
};
diff --git a/src/mame/includes/mhavoc.h b/src/mame/includes/mhavoc.h
index ef174f5132b..e6463674a1e 100644
--- a/src/mame/includes/mhavoc.h
+++ b/src/mame/includes/mhavoc.h
@@ -35,6 +35,8 @@ public:
UINT8 m_gamma_irq_clock;
UINT8 m_has_gamma_cpu;
UINT8 m_speech_write_buffer;
+ DECLARE_READ8_MEMBER(dual_pokey_r);
+ DECLARE_WRITE8_MEMBER(dual_pokey_w);
};
diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h
index 8272b6d6041..45d8759c112 100644
--- a/src/mame/includes/midzeus.h
+++ b/src/mame/includes/midzeus.h
@@ -14,6 +14,25 @@ public:
m_nvram(*this, "nvram") { }
required_shared_ptr<UINT32> m_nvram;
+ DECLARE_WRITE32_MEMBER(cmos_w);
+ DECLARE_READ32_MEMBER(cmos_r);
+ DECLARE_WRITE32_MEMBER(cmos_protect_w);
+ DECLARE_READ32_MEMBER(zpram_r);
+ DECLARE_WRITE32_MEMBER(zpram_w);
+ DECLARE_READ32_MEMBER(bitlatches_r);
+ DECLARE_WRITE32_MEMBER(bitlatches_w);
+ DECLARE_READ32_MEMBER(crusnexo_leds_r);
+ DECLARE_WRITE32_MEMBER(crusnexo_leds_w);
+ DECLARE_READ32_MEMBER(linkram_r);
+ DECLARE_WRITE32_MEMBER(linkram_w);
+ DECLARE_READ32_MEMBER(tms32031_control_r);
+ DECLARE_WRITE32_MEMBER(tms32031_control_w);
+ DECLARE_WRITE32_MEMBER(keypad_select_w);
+ DECLARE_READ32_MEMBER(analog_r);
+ DECLARE_WRITE32_MEMBER(analog_w);
+ DECLARE_WRITE32_MEMBER(invasn_gun_w);
+ DECLARE_READ32_MEMBER(invasn_gun_r);
+ DECLARE_READ8_MEMBER(PIC16C5X_T0_clk_r);
};
diff --git a/src/mame/includes/mikie.h b/src/mame/includes/mikie.h
index 4651da3c888..0a6d015c084 100644
--- a/src/mame/includes/mikie.h
+++ b/src/mame/includes/mikie.h
@@ -28,6 +28,10 @@ public:
cpu_device *m_audiocpu;
UINT8 m_irq_mask;
+ DECLARE_READ8_MEMBER(mikie_sh_timer_r);
+ DECLARE_WRITE8_MEMBER(mikie_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(mikie_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/mitchell.h b/src/mame/includes/mitchell.h
index d42038c30e6..16d4484b1fb 100644
--- a/src/mame/includes/mitchell.h
+++ b/src/mame/includes/mitchell.h
@@ -45,6 +45,16 @@ public:
UINT8 *m_nvram;
size_t m_nvram_size;
UINT8 m_irq_source;
+ DECLARE_READ8_MEMBER(pang_port5_r);
+ DECLARE_WRITE8_MEMBER(pang_bankswitch_w);
+ DECLARE_READ8_MEMBER(block_input_r);
+ DECLARE_WRITE8_MEMBER(block_dial_control_w);
+ DECLARE_READ8_MEMBER(mahjong_input_r);
+ DECLARE_WRITE8_MEMBER(mahjong_input_select_w);
+ DECLARE_READ8_MEMBER(input_r);
+ DECLARE_WRITE8_MEMBER(input_w);
+ DECLARE_WRITE8_MEMBER(spangbl_msm5205_data_w);
+ DECLARE_WRITE8_MEMBER(mstworld_sound_w);
};
diff --git a/src/mame/includes/mjkjidai.h b/src/mame/includes/mjkjidai.h
index 9f7ba953f91..9a5a03e04f1 100644
--- a/src/mame/includes/mjkjidai.h
+++ b/src/mame/includes/mjkjidai.h
@@ -17,6 +17,8 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 m_nmi_mask;
+ DECLARE_READ8_MEMBER(keyboard_r);
+ DECLARE_WRITE8_MEMBER(keyboard_select_w);
};
diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h
index eb15cba0c49..18677b37248 100644
--- a/src/mame/includes/model1.h
+++ b/src/mame/includes/model1.h
@@ -90,6 +90,22 @@ public:
UINT16 *m_paletteram16;
UINT32 *m_poly_rom;
UINT32 *m_poly_ram;
+ DECLARE_READ16_MEMBER(io_r);
+ DECLARE_READ16_MEMBER(fifoin_status_r);
+ DECLARE_WRITE16_MEMBER(bank_w);
+ DECLARE_READ16_MEMBER(network_ctl_r);
+ DECLARE_WRITE16_MEMBER(network_ctl_w);
+ DECLARE_WRITE16_MEMBER(md1_w);
+ DECLARE_WRITE16_MEMBER(md0_w);
+ DECLARE_WRITE16_MEMBER(p_w);
+ DECLARE_WRITE16_MEMBER(mr_w);
+ DECLARE_WRITE16_MEMBER(mr2_w);
+ DECLARE_READ16_MEMBER(snd_68k_ready_r);
+ DECLARE_WRITE16_MEMBER(snd_latch_to_68k_w);
+ DECLARE_READ16_MEMBER(m1_snd_68k_latch_r);
+ DECLARE_READ16_MEMBER(m1_snd_v60_ready_r);
+ DECLARE_WRITE16_MEMBER(m1_snd_68k_latch1_w);
+ DECLARE_WRITE16_MEMBER(m1_snd_68k_latch2_w);
};
diff --git a/src/mame/includes/momoko.h b/src/mame/includes/momoko.h
index a9055736c8e..5164d10a6f0 100644
--- a/src/mame/includes/momoko.h
+++ b/src/mame/includes/momoko.h
@@ -30,6 +30,7 @@ public:
UINT8 m_bg_mask;
UINT8 m_fg_mask;
UINT8 m_flipscreen;
+ DECLARE_WRITE8_MEMBER(momoko_bg_read_bank_w);
};
diff --git a/src/mame/includes/moo.h b/src/mame/includes/moo.h
index b683692a5a1..0c7d38a37e5 100644
--- a/src/mame/includes/moo.h
+++ b/src/mame/includes/moo.h
@@ -36,6 +36,16 @@ public:
device_t *m_k054338;
emu_timer *m_dmaend_timer;
+ DECLARE_READ16_MEMBER(control2_r);
+ DECLARE_WRITE16_MEMBER(control2_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd1_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd2_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_READ16_MEMBER(K053247_scattered_word_r);
+ DECLARE_WRITE16_MEMBER(K053247_scattered_word_w);
+ DECLARE_WRITE16_MEMBER(moo_prot_w);
};
diff --git a/src/mame/includes/mosaic.h b/src/mame/includes/mosaic.h
index 15e1ebf42a2..045009f61da 100644
--- a/src/mame/includes/mosaic.h
+++ b/src/mame/includes/mosaic.h
@@ -21,6 +21,10 @@ public:
/* misc */
int m_prot_val;
+ DECLARE_WRITE8_MEMBER(protection_w);
+ DECLARE_READ8_MEMBER(protection_r);
+ DECLARE_WRITE8_MEMBER(gfire2_protection_w);
+ DECLARE_READ8_MEMBER(gfire2_protection_r);
};
diff --git a/src/mame/includes/mouser.h b/src/mame/includes/mouser.h
index fd3e51f4988..a071d773a30 100644
--- a/src/mame/includes/mouser.h
+++ b/src/mame/includes/mouser.h
@@ -23,6 +23,10 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(mouser_nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(mouser_sound_interrupt_w);
+ DECLARE_READ8_MEMBER(mouser_sound_byte_r);
+ DECLARE_WRITE8_MEMBER(mouser_sound_nmi_clear_w);
};
/*----------- defined in video/mouser.c -----------*/
diff --git a/src/mame/includes/mpu4.h b/src/mame/includes/mpu4.h
index 6b7ae632ab8..32e65d58c81 100644
--- a/src/mame/includes/mpu4.h
+++ b/src/mame/includes/mpu4.h
@@ -234,6 +234,17 @@ public:
int m_linecounter;
struct ef9369_t m_pal;
struct bt471_t m_bt471;
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_READ8_MEMBER(bankswitch_r);
+ DECLARE_WRITE8_MEMBER(bankset_w);
+ DECLARE_WRITE8_MEMBER(characteriser_w);
+ DECLARE_READ8_MEMBER(characteriser_r);
+ DECLARE_WRITE8_MEMBER(bwb_characteriser_w);
+ DECLARE_READ8_MEMBER(bwb_characteriser_r);
+ DECLARE_WRITE8_MEMBER(mpu4_ym2413_w);
+ DECLARE_READ8_MEMBER(mpu4_ym2413_r);
+ DECLARE_READ8_MEMBER(crystal_sound_r);
+ DECLARE_WRITE8_MEMBER(crystal_sound_w);
};
/* mpu4.c, used by mpu4vid.c */
diff --git a/src/mame/includes/mrdo.h b/src/mame/includes/mrdo.h
index 38fca72ce0f..4388bed842e 100644
--- a/src/mame/includes/mrdo.h
+++ b/src/mame/includes/mrdo.h
@@ -20,6 +20,7 @@ public:
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
int m_flipscreen;
+ DECLARE_READ8_MEMBER(mrdo_SECRE_r);
};
diff --git a/src/mame/includes/mrflea.h b/src/mame/includes/mrflea.h
index fb3e12d2294..00c299a79af 100644
--- a/src/mame/includes/mrflea.h
+++ b/src/mame/includes/mrflea.h
@@ -27,6 +27,16 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_subcpu;
+ DECLARE_WRITE8_MEMBER(mrflea_main_w);
+ DECLARE_WRITE8_MEMBER(mrflea_io_w);
+ DECLARE_READ8_MEMBER(mrflea_main_r);
+ DECLARE_READ8_MEMBER(mrflea_io_r);
+ DECLARE_READ8_MEMBER(mrflea_main_status_r);
+ DECLARE_READ8_MEMBER(mrflea_io_status_r);
+ DECLARE_READ8_MEMBER(mrflea_interrupt_type_r);
+ DECLARE_WRITE8_MEMBER(mrflea_select1_w);
+ DECLARE_READ8_MEMBER(mrflea_input1_r);
+ DECLARE_WRITE8_MEMBER(mrflea_data1_w);
};
diff --git a/src/mame/includes/mrjong.h b/src/mame/includes/mrjong.h
index d5e35164a8f..9337653130f 100644
--- a/src/mame/includes/mrjong.h
+++ b/src/mame/includes/mrjong.h
@@ -16,6 +16,7 @@ public:
/* video-related */
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(io_0x03_r);
};
diff --git a/src/mame/includes/ms32.h b/src/mame/includes/ms32.h
index cf44509a60b..2e85077a7c6 100644
--- a/src/mame/includes/ms32.h
+++ b/src/mame/includes/ms32.h
@@ -35,6 +35,34 @@ public:
int m_brt_r;
int m_brt_g;
int m_brt_b;
+ DECLARE_READ32_MEMBER(ms32_read_inputs3);
+ DECLARE_WRITE32_MEMBER(ms32_sound_w);
+ DECLARE_READ32_MEMBER(ms32_sound_r);
+ DECLARE_WRITE32_MEMBER(reset_sub_w);
+ DECLARE_READ8_MEMBER(ms32_nvram_r8);
+ DECLARE_WRITE8_MEMBER(ms32_nvram_w8);
+ DECLARE_READ8_MEMBER(ms32_priram_r8);
+ DECLARE_WRITE8_MEMBER(ms32_priram_w8);
+ DECLARE_READ16_MEMBER(ms32_palram_r16);
+ DECLARE_WRITE16_MEMBER(ms32_palram_w16);
+ DECLARE_READ16_MEMBER(ms32_rozram_r16);
+ DECLARE_WRITE16_MEMBER(ms32_rozram_w16);
+ DECLARE_READ16_MEMBER(ms32_lineram_r16);
+ DECLARE_WRITE16_MEMBER(ms32_lineram_w16);
+ DECLARE_READ16_MEMBER(ms32_sprram_r16);
+ DECLARE_WRITE16_MEMBER(ms32_sprram_w16);
+ DECLARE_READ16_MEMBER(ms32_txram_r16);
+ DECLARE_WRITE16_MEMBER(ms32_txram_w16);
+ DECLARE_READ16_MEMBER(ms32_bgram_r16);
+ DECLARE_WRITE16_MEMBER(ms32_bgram_w16);
+ DECLARE_WRITE32_MEMBER(pip_w);
+ DECLARE_WRITE16_MEMBER(ms32_extra_w16);
+ DECLARE_READ16_MEMBER(ms32_extra_r16);
+ DECLARE_WRITE32_MEMBER(ms32_irq2_guess_w);
+ DECLARE_WRITE32_MEMBER(ms32_irq5_guess_w);
+ DECLARE_READ8_MEMBER(latch_r);
+ DECLARE_WRITE8_MEMBER(ms32_snd_bank_w);
+ DECLARE_WRITE8_MEMBER(to_main_w);
};
diff --git a/src/mame/includes/msisaac.h b/src/mame/includes/msisaac.h
index 1dea654f406..b24bb6e7d53 100644
--- a/src/mame/includes/msisaac.h
+++ b/src/mame/includes/msisaac.h
@@ -42,6 +42,16 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
+ DECLARE_WRITE8_MEMBER(msisaac_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(ms_unknown_w);
+ DECLARE_READ8_MEMBER(msisaac_mcu_r);
+ DECLARE_READ8_MEMBER(msisaac_mcu_status_r);
+ DECLARE_WRITE8_MEMBER(msisaac_mcu_w);
+ DECLARE_WRITE8_MEMBER(sound_control_1_w);
};
diff --git a/src/mame/includes/mugsmash.h b/src/mame/includes/mugsmash.h
index 08f52cf0e36..d2110bc1dca 100644
--- a/src/mame/includes/mugsmash.h
+++ b/src/mame/includes/mugsmash.h
@@ -16,6 +16,8 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(mugsmash_reg2_w);
+ DECLARE_READ16_MEMBER(mugsmash_input_ports_r);
};
diff --git a/src/mame/includes/munchmo.h b/src/mame/includes/munchmo.h
index 40907cef8f5..30a00a53add 100644
--- a/src/mame/includes/munchmo.h
+++ b/src/mame/includes/munchmo.h
@@ -29,6 +29,9 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(mnchmobl_nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(mnchmobl_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(sound_nmi_ack_w);
};
diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h
index 2709070b578..2d1e75e6575 100644
--- a/src/mame/includes/mw8080bw.h
+++ b/src/mame/includes/mw8080bw.h
@@ -75,6 +75,20 @@ public:
device_t *m_sn2;
device_t *m_sn;
device_t *m_discrete;
+ DECLARE_READ8_MEMBER(mw8080bw_shift_result_rev_r);
+ DECLARE_READ8_MEMBER(mw8080bw_reversable_shift_result_r);
+ DECLARE_WRITE8_MEMBER(mw8080bw_reversable_shift_count_w);
+ DECLARE_WRITE8_MEMBER(seawolf_explosion_lamp_w);
+ DECLARE_WRITE8_MEMBER(seawolf_periscope_lamp_w);
+ DECLARE_WRITE8_MEMBER(gunfight_io_w);
+ DECLARE_WRITE8_MEMBER(tornbase_io_w);
+ DECLARE_WRITE8_MEMBER(maze_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(maze_io_w);
+ DECLARE_WRITE8_MEMBER(checkmat_io_w);
+ DECLARE_WRITE8_MEMBER(spcenctr_io_w);
+ DECLARE_READ8_MEMBER(bowler_shift_result_r);
+ DECLARE_WRITE8_MEMBER(bowler_lights_1_w);
+ DECLARE_WRITE8_MEMBER(bowler_lights_2_w);
};
diff --git a/src/mame/includes/mystston.h b/src/mame/includes/mystston.h
index feb52763136..66d2501ef62 100644
--- a/src/mame/includes/mystston.h
+++ b/src/mame/includes/mystston.h
@@ -30,6 +30,8 @@ public:
UINT8 *m_paletteram;
UINT8 *m_scroll;
UINT8 *m_video_control;
+ DECLARE_WRITE8_MEMBER(irq_clear_w);
+ DECLARE_WRITE8_MEMBER(mystston_ay8910_select_w);
};
diff --git a/src/mame/includes/mystwarr.h b/src/mame/includes/mystwarr.h
index fc23e20f4cf..ce4d9ef3e26 100644
--- a/src/mame/includes/mystwarr.h
+++ b/src/mame/includes/mystwarr.h
@@ -23,6 +23,25 @@ public:
UINT16 *m_spriteram;
required_device<cpu_device> m_maincpu;
+ DECLARE_READ16_MEMBER(eeprom_r);
+ DECLARE_WRITE16_MEMBER(mweeprom_w);
+ DECLARE_READ16_MEMBER(dddeeprom_r);
+ DECLARE_WRITE16_MEMBER(mmeeprom_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd1_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd1_msb_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd2_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd2_msb_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_READ16_MEMBER(sound_status_msb_r);
+ DECLARE_WRITE16_MEMBER(irq_ack_w);
+ DECLARE_READ16_MEMBER(K053247_scattered_word_r);
+ DECLARE_WRITE16_MEMBER(K053247_scattered_word_w);
+ DECLARE_READ16_MEMBER(K053247_martchmp_word_r);
+ DECLARE_WRITE16_MEMBER(K053247_martchmp_word_w);
+ DECLARE_READ16_MEMBER(mccontrol_r);
+ DECLARE_WRITE16_MEMBER(mccontrol_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/n8080.h b/src/mame/includes/n8080.h
index d83592c30e7..fab85da868f 100644
--- a/src/mame/includes/n8080.h
+++ b/src/mame/includes/n8080.h
@@ -38,6 +38,9 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_WRITE8_MEMBER(n8080_shift_bits_w);
+ DECLARE_WRITE8_MEMBER(n8080_shift_data_w);
+ DECLARE_READ8_MEMBER(n8080_shift_r);
};
diff --git a/src/mame/includes/namcofl.h b/src/mame/includes/namcofl.h
index fde8ce129f5..d5487e659e5 100644
--- a/src/mame/includes/namcofl.h
+++ b/src/mame/includes/namcofl.h
@@ -30,6 +30,25 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_mcu;
+ DECLARE_READ32_MEMBER(fl_unk1_r);
+ DECLARE_READ32_MEMBER(fl_network_r);
+ DECLARE_READ32_MEMBER(namcofl_sysreg_r);
+ DECLARE_WRITE32_MEMBER(namcofl_sysreg_w);
+ DECLARE_WRITE32_MEMBER(namcofl_paletteram_w);
+ DECLARE_READ32_MEMBER(namcofl_share_r);
+ DECLARE_WRITE32_MEMBER(namcofl_share_w);
+ DECLARE_WRITE16_MEMBER(mcu_shared_w);
+ DECLARE_READ8_MEMBER(port6_r);
+ DECLARE_WRITE8_MEMBER(port6_w);
+ DECLARE_READ8_MEMBER(port7_r);
+ DECLARE_READ8_MEMBER(dac7_r);
+ DECLARE_READ8_MEMBER(dac6_r);
+ DECLARE_READ8_MEMBER(dac5_r);
+ DECLARE_READ8_MEMBER(dac4_r);
+ DECLARE_READ8_MEMBER(dac3_r);
+ DECLARE_READ8_MEMBER(dac2_r);
+ DECLARE_READ8_MEMBER(dac1_r);
+ DECLARE_READ8_MEMBER(dac0_r);
};
diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h
index 5c7d67fcf15..ca29ebadefc 100644
--- a/src/mame/includes/namcona1.h
+++ b/src/mame/includes/namcona1.h
@@ -54,6 +54,29 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_mcu;
+ DECLARE_READ16_MEMBER(namcona1_nvram_r);
+ DECLARE_WRITE16_MEMBER(namcona1_nvram_w);
+ DECLARE_READ16_MEMBER(custom_key_r);
+ DECLARE_WRITE16_MEMBER(custom_key_w);
+ DECLARE_READ16_MEMBER(namcona1_vreg_r);
+ DECLARE_WRITE16_MEMBER(namcona1_vreg_w);
+ DECLARE_READ16_MEMBER(mcu_mailbox_r);
+ DECLARE_WRITE16_MEMBER(mcu_mailbox_w_68k);
+ DECLARE_WRITE16_MEMBER(mcu_mailbox_w_mcu);
+ DECLARE_READ16_MEMBER(na1mcu_shared_r);
+ DECLARE_WRITE16_MEMBER(na1mcu_shared_w);
+ DECLARE_READ8_MEMBER(port4_r);
+ DECLARE_WRITE8_MEMBER(port4_w);
+ DECLARE_READ8_MEMBER(port5_r);
+ DECLARE_WRITE8_MEMBER(port5_w);
+ DECLARE_READ8_MEMBER(port6_r);
+ DECLARE_WRITE8_MEMBER(port6_w);
+ DECLARE_READ8_MEMBER(port7_r);
+ DECLARE_WRITE8_MEMBER(port7_w);
+ DECLARE_READ8_MEMBER(port8_r);
+ DECLARE_WRITE8_MEMBER(port8_w);
+ DECLARE_READ8_MEMBER(portana_r);
+ void write_version_info();
};
diff --git a/src/mame/includes/namcond1.h b/src/mame/includes/namcond1.h
index 17b5533cf46..f8796b76912 100644
--- a/src/mame/includes/namcond1.h
+++ b/src/mame/includes/namcond1.h
@@ -15,6 +15,11 @@ public:
UINT8 m_h8_irq5_enabled;
UINT16 *m_shared_ram;
int m_p8;
+ DECLARE_WRITE16_MEMBER(sharedram_sub_w);
+ DECLARE_READ16_MEMBER(sharedram_sub_r);
+ DECLARE_READ8_MEMBER(mcu_p7_read);
+ DECLARE_READ8_MEMBER(mcu_pa_read);
+ DECLARE_WRITE8_MEMBER(mcu_pa_write);
};
diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h
index 0b4b52b694c..f762b1d3fc4 100644
--- a/src/mame/includes/namcos1.h
+++ b/src/mame/includes/namcos1.h
@@ -47,6 +47,14 @@ public:
UINT8 *m_tilemap_maskdata;
int m_copy_sprites;
UINT8 m_drawmode_table[16];
+ DECLARE_WRITE8_MEMBER(namcos1_sub_firq_w);
+ DECLARE_WRITE8_MEMBER(irq_ack_w);
+ DECLARE_WRITE8_MEMBER(firq_ack_w);
+ DECLARE_READ8_MEMBER(dsw_r);
+ DECLARE_WRITE8_MEMBER(namcos1_coin_w);
+ DECLARE_WRITE8_MEMBER(namcos1_dac_gain_w);
+ DECLARE_WRITE8_MEMBER(namcos1_dac0_w);
+ DECLARE_WRITE8_MEMBER(namcos1_dac1_w);
};
diff --git a/src/mame/includes/namcos21.h b/src/mame/includes/namcos21.h
index 4e6fc1b59dc..3d66ca11a6a 100644
--- a/src/mame/includes/namcos21.h
+++ b/src/mame/includes/namcos21.h
@@ -61,6 +61,75 @@ public:
UINT16 *m_mpPolyFrameBufferZ2;
UINT16 m_winrun_color;
UINT16 m_winrun_gpu_register[0x10/2];
+ DECLARE_READ16_MEMBER(namcos21_video_enable_r);
+ DECLARE_WRITE16_MEMBER(namcos21_video_enable_w);
+ DECLARE_WRITE16_MEMBER(dspcuskey_w);
+ DECLARE_READ16_MEMBER(dspcuskey_r);
+ DECLARE_READ16_MEMBER(dspram16_r);
+ DECLARE_WRITE16_MEMBER(dspram16_w);
+ DECLARE_READ16_MEMBER(dsp_port0_r);
+ DECLARE_WRITE16_MEMBER(dsp_port0_w);
+ DECLARE_READ16_MEMBER(dsp_port1_r);
+ DECLARE_WRITE16_MEMBER(dsp_port1_w);
+ DECLARE_READ16_MEMBER(dsp_port2_r);
+ DECLARE_WRITE16_MEMBER(dsp_port2_w);
+ DECLARE_READ16_MEMBER(dsp_port3_idc_rcv_enable_r);
+ DECLARE_WRITE16_MEMBER(dsp_port3_w);
+ DECLARE_WRITE16_MEMBER(dsp_port4_w);
+ DECLARE_READ16_MEMBER(dsp_port8_r);
+ DECLARE_WRITE16_MEMBER(dsp_port8_w);
+ DECLARE_READ16_MEMBER(dsp_port9_r);
+ DECLARE_READ16_MEMBER(dsp_porta_r);
+ DECLARE_WRITE16_MEMBER(dsp_porta_w);
+ DECLARE_READ16_MEMBER(dsp_portb_r);
+ DECLARE_WRITE16_MEMBER(dsp_portb_w);
+ DECLARE_WRITE16_MEMBER(dsp_portc_w);
+ DECLARE_READ16_MEMBER(dsp_portf_r);
+ DECLARE_WRITE16_MEMBER(dsp_xf_w);
+ DECLARE_READ16_MEMBER(slave_port0_r);
+ DECLARE_WRITE16_MEMBER(slave_port0_w);
+ DECLARE_READ16_MEMBER(slave_port2_r);
+ DECLARE_READ16_MEMBER(slave_port3_r);
+ DECLARE_WRITE16_MEMBER(slave_port3_w);
+ DECLARE_WRITE16_MEMBER(slave_XF_output_w);
+ DECLARE_READ16_MEMBER(slave_portf_r);
+ DECLARE_WRITE16_MEMBER(pointram_control_w);
+ DECLARE_READ16_MEMBER(pointram_data_r);
+ DECLARE_WRITE16_MEMBER(pointram_data_w);
+ DECLARE_READ16_MEMBER(namcos21_depthcue_r);
+ DECLARE_WRITE16_MEMBER(namcos21_depthcue_w);
+ DECLARE_READ16_MEMBER(namcos2_68k_dualportram_word_r);
+ DECLARE_WRITE16_MEMBER(namcos2_68k_dualportram_word_w);
+ DECLARE_READ8_MEMBER(namcos2_dualportram_byte_r);
+ DECLARE_WRITE8_MEMBER(namcos2_dualportram_byte_w);
+ DECLARE_READ16_MEMBER(shareram1_r);
+ DECLARE_WRITE16_MEMBER(shareram1_w);
+ DECLARE_READ16_MEMBER(datarom_r);
+ DECLARE_READ16_MEMBER(data2_r);
+ DECLARE_READ16_MEMBER(paletteram16_r);
+ DECLARE_WRITE16_MEMBER(paletteram16_w);
+ DECLARE_WRITE16_MEMBER(NAMCO_C139_SCI_buffer_w);
+ DECLARE_READ16_MEMBER(NAMCO_C139_SCI_buffer_r);
+ DECLARE_WRITE16_MEMBER(NAMCO_C139_SCI_register_w);
+ DECLARE_READ16_MEMBER(NAMCO_C139_SCI_register_r);
+ DECLARE_READ16_MEMBER(winrun_dspcomram_r);
+ DECLARE_WRITE16_MEMBER(winrun_dspcomram_w);
+ DECLARE_READ16_MEMBER(winrun_cuskey_r);
+ DECLARE_WRITE16_MEMBER(winrun_cuskey_w);
+ DECLARE_READ16_MEMBER(winrun_poly_reset_r);
+ DECLARE_WRITE16_MEMBER(winrun_dsp_render_w);
+ DECLARE_WRITE16_MEMBER(winrun_dsp_pointrom_addr_w);
+ DECLARE_READ16_MEMBER(winrun_dsp_pointrom_data_r);
+ DECLARE_WRITE16_MEMBER(winrun_dsp_complete_w);
+ DECLARE_READ16_MEMBER(winrun_table_r);
+ DECLARE_READ16_MEMBER(gpu_data_r);
+ DECLARE_READ16_MEMBER(winrun_gpucomram_r);
+ DECLARE_WRITE16_MEMBER(winrun_gpucomram_w);
+ DECLARE_WRITE16_MEMBER(winrun_dspbios_w);
+ DECLARE_READ16_MEMBER(winrun_68k_dspcomram_r);
+ DECLARE_WRITE16_MEMBER(winrun_68k_dspcomram_w);
+ DECLARE_READ16_MEMBER(winrun_dspcomram_control_r);
+ DECLARE_WRITE16_MEMBER(winrun_dspcomram_control_w);
};
diff --git a/src/mame/includes/namcos86.h b/src/mame/includes/namcos86.h
index 7a95213e25a..9fd7f2a59e7 100644
--- a/src/mame/includes/namcos86.h
+++ b/src/mame/includes/namcos86.h
@@ -16,6 +16,19 @@ public:
int m_backcolor;
const UINT8 *m_tile_address_prom;
int m_copy_sprites;
+ DECLARE_WRITE8_MEMBER(bankswitch1_w);
+ DECLARE_WRITE8_MEMBER(bankswitch1_ext_w);
+ DECLARE_WRITE8_MEMBER(bankswitch2_w);
+ DECLARE_READ8_MEMBER(dsw0_r);
+ DECLARE_READ8_MEMBER(dsw1_r);
+ DECLARE_WRITE8_MEMBER(int_ack1_w);
+ DECLARE_WRITE8_MEMBER(int_ack2_w);
+ DECLARE_WRITE8_MEMBER(watchdog1_w);
+ DECLARE_WRITE8_MEMBER(watchdog2_w);
+ DECLARE_WRITE8_MEMBER(namcos86_coin_w);
+ DECLARE_WRITE8_MEMBER(namcos86_led_w);
+ DECLARE_WRITE8_MEMBER(cus115_w);
+ DECLARE_READ8_MEMBER(readFF);
};
diff --git a/src/mame/includes/naughtyb.h b/src/mame/includes/naughtyb.h
index d2b27c066fc..3bfb5694b11 100644
--- a/src/mame/includes/naughtyb.h
+++ b/src/mame/includes/naughtyb.h
@@ -15,6 +15,12 @@ public:
UINT8 m_palreg;
int m_bankreg;
bitmap_ind16 m_tmpbitmap;
+ DECLARE_READ8_MEMBER(in0_port_r);
+ DECLARE_READ8_MEMBER(dsw0_port_r);
+ DECLARE_READ8_MEMBER(popflame_protection_r);
+ DECLARE_WRITE8_MEMBER(popflame_protection_w);
+ DECLARE_READ8_MEMBER(trvmstr_questions_r);
+ DECLARE_WRITE8_MEMBER(trvmstr_questions_w);
};
diff --git a/src/mame/includes/nbmj8688.h b/src/mame/includes/nbmj8688.h
index 5e962a658bd..c11548cf876 100644
--- a/src/mame/includes/nbmj8688.h
+++ b/src/mame/includes/nbmj8688.h
@@ -26,6 +26,8 @@ public:
int m_HD61830B_instr[2];
int m_HD61830B_addr[2];
int m_mjsikaku_flipscreen_old;
+ DECLARE_READ8_MEMBER(ff_r);
+ DECLARE_WRITE8_MEMBER(barline_output_w);
};
diff --git a/src/mame/includes/nbmj8891.h b/src/mame/includes/nbmj8891.h
index fa782660c49..17407d83993 100644
--- a/src/mame/includes/nbmj8891.h
+++ b/src/mame/includes/nbmj8891.h
@@ -28,6 +28,7 @@ public:
int m_param_old[0x10];
int m_param_cnt;
int m_flipscreen_old;
+ DECLARE_READ8_MEMBER(taiwanmb_unk_r);
};
diff --git a/src/mame/includes/nbmj8991.h b/src/mame/includes/nbmj8991.h
index a52f935f995..fd4da2dba40 100644
--- a/src/mame/includes/nbmj8991.h
+++ b/src/mame/includes/nbmj8991.h
@@ -22,6 +22,9 @@ public:
UINT8 *m_videoram;
UINT8 *m_clut;
int m_flipscreen_old;
+ DECLARE_WRITE8_MEMBER(nbmj8991_soundbank_w);
+ DECLARE_WRITE8_MEMBER(nbmj8991_sound_w);
+ DECLARE_READ8_MEMBER(nbmj8991_sound_r);
};
diff --git a/src/mame/includes/nbmj9195.h b/src/mame/includes/nbmj9195.h
index 75edffa8a92..456afbecac7 100644
--- a/src/mame/includes/nbmj9195.h
+++ b/src/mame/includes/nbmj9195.h
@@ -46,6 +46,55 @@ public:
UINT8 *m_nb22090_palette;
UINT8 *m_clut[VRAM_MAX];
int m_flipscreen_old[VRAM_MAX];
+ DECLARE_WRITE8_MEMBER(nbmj9195_soundbank_w);
+ DECLARE_READ8_MEMBER(nbmj9195_sound_r);
+ DECLARE_WRITE8_MEMBER(nbmj9195_sound_w);
+ DECLARE_WRITE8_MEMBER(nbmj9195_soundclr_w);
+ DECLARE_WRITE8_MEMBER(nbmj9195_inputportsel_w);
+ DECLARE_READ8_MEMBER(mscoutm_dipsw_0_r);
+ DECLARE_READ8_MEMBER(mscoutm_dipsw_1_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_pio_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_pio_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pa_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pb_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pc_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pd_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pe_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pa_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pb_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pc_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pd_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pe_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pa_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pb_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pc_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pd_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pe_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pa_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pb_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pc_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pd_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pe_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_pa_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_pb_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_pc_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_pd_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_pe_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_pa_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_pb_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_pc_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_pd_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_pe_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_dir_pa_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_dir_pb_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_dir_pc_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_dir_pd_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_1_dir_pe_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_dir_pa_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_dir_pb_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_dir_pc_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_dir_pd_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_1_dir_pe_w);
};
diff --git a/src/mame/includes/nemesis.h b/src/mame/includes/nemesis.h
index 8e096a6e5b4..03fd53c1345 100644
--- a/src/mame/includes/nemesis.h
+++ b/src/mame/includes/nemesis.h
@@ -43,6 +43,19 @@ public:
cpu_device *m_maincpu;
cpu_device *m_audiocpu;
device_t *m_vlm;
+ DECLARE_WRITE16_MEMBER(gx400_irq1_enable_word_w);
+ DECLARE_WRITE16_MEMBER(gx400_irq2_enable_word_w);
+ DECLARE_WRITE16_MEMBER(gx400_irq4_enable_word_w);
+ DECLARE_WRITE16_MEMBER(nemesis_irq_enable_word_w);
+ DECLARE_WRITE16_MEMBER(konamigt_irq_enable_word_w);
+ DECLARE_WRITE16_MEMBER(konamigt_irq2_enable_word_w);
+ DECLARE_READ16_MEMBER(gx400_sharedram_word_r);
+ DECLARE_WRITE16_MEMBER(gx400_sharedram_word_w);
+ DECLARE_READ16_MEMBER(konamigt_input_word_r);
+ DECLARE_WRITE16_MEMBER(selected_ip_word_w);
+ DECLARE_READ16_MEMBER(selected_ip_word_r);
+ DECLARE_WRITE16_MEMBER(nemesis_soundlatch_word_w);
+ DECLARE_READ8_MEMBER(wd_r);
};
diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h
index 06babb5a542..5df5efd685c 100644
--- a/src/mame/includes/neogeo.h
+++ b/src/mame/includes/neogeo.h
@@ -108,6 +108,21 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_upd4990a;
+ DECLARE_WRITE8_MEMBER(audio_cpu_clear_nmi_w);
+ DECLARE_WRITE16_MEMBER(io_control_w);
+ DECLARE_WRITE16_MEMBER(save_ram_w);
+ DECLARE_READ16_MEMBER(memcard_r);
+ DECLARE_WRITE16_MEMBER(memcard_w);
+ DECLARE_WRITE16_MEMBER(audio_command_w);
+ DECLARE_READ8_MEMBER(audio_command_r);
+ DECLARE_WRITE8_MEMBER(audio_result_w);
+ DECLARE_WRITE16_MEMBER(main_cpu_bank_select_w);
+ DECLARE_READ8_MEMBER(audio_cpu_bank_select_f000_f7ff_r);
+ DECLARE_READ8_MEMBER(audio_cpu_bank_select_e000_efff_r);
+ DECLARE_READ8_MEMBER(audio_cpu_bank_select_c000_dfff_r);
+ DECLARE_READ8_MEMBER(audio_cpu_bank_select_8000_bfff_r);
+ DECLARE_WRITE16_MEMBER(system_control_w);
+ DECLARE_WRITE16_MEMBER(watchdog_w);
};
diff --git a/src/mame/includes/ninjakd2.h b/src/mame/includes/ninjakd2.h
index afe57a73788..9f9acf532eb 100644
--- a/src/mame/includes/ninjakd2.h
+++ b/src/mame/includes/ninjakd2.h
@@ -28,6 +28,12 @@ public:
UINT8* m_robokid_bg1_videoram;
UINT8* m_robokid_bg2_videoram;
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(ninjakd2_bankselect_w);
+ DECLARE_WRITE8_MEMBER(robokid_bankselect_w);
+ DECLARE_WRITE8_MEMBER(ninjakd2_soundreset_w);
+ DECLARE_WRITE8_MEMBER(ninjakd2_pcm_play_w);
+ DECLARE_READ8_MEMBER(omegaf_io_protection_r);
+ DECLARE_WRITE8_MEMBER(omegaf_io_protection_w);
};
diff --git a/src/mame/includes/ninjaw.h b/src/mame/includes/ninjaw.h
index 00ecf40a297..0f7afd021c9 100644
--- a/src/mame/includes/ninjaw.h
+++ b/src/mame/includes/ninjaw.h
@@ -34,6 +34,12 @@ public:
device_t *m_2610_1r;
device_t *m_2610_2l;
device_t *m_2610_2r;
+ DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(ninjaw_sound_w);
+ DECLARE_READ16_MEMBER(ninjaw_sound_r);
+ DECLARE_WRITE8_MEMBER(ninjaw_pancontrol);
+ DECLARE_WRITE16_MEMBER(tc0100scn_triple_screen_w);
};
diff --git a/src/mame/includes/niyanpai.h b/src/mame/includes/niyanpai.h
index 565e6059f43..62edb6c563c 100644
--- a/src/mame/includes/niyanpai.h
+++ b/src/mame/includes/niyanpai.h
@@ -33,6 +33,34 @@ public:
UINT16 *m_palette;
UINT8 *m_clut[VRAM_MAX];
int m_flipscreen_old[VRAM_MAX];
+ DECLARE_READ8_MEMBER(niyanpai_sound_r);
+ DECLARE_WRITE16_MEMBER(niyanpai_sound_w);
+ DECLARE_WRITE8_MEMBER(niyanpai_soundclr_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_pio_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_pio_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pa_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pb_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pc_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pd_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_pe_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pa_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pb_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pc_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pd_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_pe_w);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pa_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pb_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pc_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pd_r);
+ DECLARE_READ8_MEMBER(tmpz84c011_0_dir_pe_r);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pa_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pb_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pc_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pd_w);
+ DECLARE_WRITE8_MEMBER(tmpz84c011_0_dir_pe_w);
+ DECLARE_READ16_MEMBER(niyanpai_dipsw_r);
+ DECLARE_READ16_MEMBER(musobana_inputport_0_r);
+ DECLARE_WRITE16_MEMBER(musobana_inputport_w);
};
diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h
index f9f81e93c8d..9d14122af2a 100644
--- a/src/mame/includes/nmk16.h
+++ b/src/mame/includes/nmk16.h
@@ -42,6 +42,29 @@ public:
UINT8 m_start_helper;
UINT8 m_coin_count[2];
UINT8 m_coin_count_frac[2];
+ DECLARE_WRITE16_MEMBER(nmk16_mainram_strange_w);
+ DECLARE_WRITE16_MEMBER(ssmissin_sound_w);
+ DECLARE_WRITE8_MEMBER(ssmissin_soundbank_w);
+ DECLARE_WRITE16_MEMBER(tharrier_mcu_control_w);
+ DECLARE_READ16_MEMBER(tharrier_mcu_r);
+ DECLARE_WRITE16_MEMBER(macross2_sound_reset_w);
+ DECLARE_WRITE16_MEMBER(macross2_sound_command_w);
+ DECLARE_WRITE8_MEMBER(macross2_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(tharrier_oki6295_bankswitch_0_w);
+ DECLARE_WRITE8_MEMBER(tharrier_oki6295_bankswitch_1_w);
+ DECLARE_WRITE16_MEMBER(afega_soundlatch_w);
+ DECLARE_READ16_MEMBER(mcu_shared_r);
+ DECLARE_WRITE16_MEMBER(hachamf_mainram_w);
+ DECLARE_WRITE16_MEMBER(tdragon_mainram_w);
+ DECLARE_WRITE8_MEMBER(okibank_w);
+ DECLARE_WRITE8_MEMBER(raphero_sound_rombank_w);
+ DECLARE_READ16_MEMBER(vandykeb_r);
+ DECLARE_READ16_MEMBER(afega_unknown_r);
+ DECLARE_WRITE16_MEMBER(afega_scroll0_w);
+ DECLARE_WRITE16_MEMBER(afega_scroll1_w);
+ DECLARE_WRITE16_MEMBER(twinactn_scroll0_w);
+ DECLARE_WRITE16_MEMBER(twinactn_scroll1_w);
+ DECLARE_WRITE16_MEMBER(twinactn_flipscreen_w);
};
diff --git a/src/mame/includes/norautp.h b/src/mame/includes/norautp.h
index e6b4bff26c8..a815302f844 100644
--- a/src/mame/includes/norautp.h
+++ b/src/mame/includes/norautp.h
@@ -14,6 +14,11 @@ public:
UINT16 *m_np_vram;
UINT16 m_np_addr;
+ DECLARE_READ8_MEMBER(test_r);
+ DECLARE_READ8_MEMBER(vram_data_r);
+ DECLARE_WRITE8_MEMBER(vram_data_w);
+ DECLARE_WRITE8_MEMBER(vram_addr_w);
+ DECLARE_READ8_MEMBER(test2_r);
};
diff --git a/src/mame/includes/nova2001.h b/src/mame/includes/nova2001.h
index 1b3212ab09e..edc58c65ff0 100644
--- a/src/mame/includes/nova2001.h
+++ b/src/mame/includes/nova2001.h
@@ -10,6 +10,8 @@ public:
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(ninjakun_cpu1_io_A002_w);
+ DECLARE_WRITE8_MEMBER(ninjakun_cpu2_io_A002_w);
};
diff --git a/src/mame/includes/nycaptor.h b/src/mame/includes/nycaptor.h
index 34e16f2d406..6c679ede83b 100644
--- a/src/mame/includes/nycaptor.h
+++ b/src/mame/includes/nycaptor.h
@@ -47,6 +47,26 @@ public:
device_t *m_audiocpu;
device_t *m_subcpu;
device_t *m_mcu;
+ DECLARE_WRITE8_MEMBER(sub_cpu_halt_w);
+ DECLARE_READ8_MEMBER(from_snd_r);
+ DECLARE_WRITE8_MEMBER(to_main_w);
+ DECLARE_READ8_MEMBER(nycaptor_sharedram_r);
+ DECLARE_WRITE8_MEMBER(nycaptor_sharedram_w);
+ DECLARE_READ8_MEMBER(nycaptor_b_r);
+ DECLARE_READ8_MEMBER(nycaptor_by_r);
+ DECLARE_READ8_MEMBER(nycaptor_bx_r);
+ DECLARE_WRITE8_MEMBER(sound_cpu_reset_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_disable_w);
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_READ8_MEMBER(nycaptor_generic_control_r);
+ DECLARE_WRITE8_MEMBER(nycaptor_generic_control_w);
+ DECLARE_READ8_MEMBER(cyclshtg_mcu_status_r);
+ DECLARE_READ8_MEMBER(cyclshtg_mcu_r);
+ DECLARE_WRITE8_MEMBER(cyclshtg_mcu_w);
+ DECLARE_READ8_MEMBER(cyclshtg_mcu_status_r1);
+ DECLARE_WRITE8_MEMBER(cyclshtg_generic_control_w);
+ DECLARE_READ8_MEMBER(unk_r);
};
diff --git a/src/mame/includes/ohmygod.h b/src/mame/includes/ohmygod.h
index dbc3267efa1..b2f2ba97aac 100644
--- a/src/mame/includes/ohmygod.h
+++ b/src/mame/includes/ohmygod.h
@@ -25,6 +25,7 @@ public:
/* misc */
int m_adpcm_bank_shift;
int m_sndbank;
+ DECLARE_WRITE16_MEMBER(ohmygod_ctrl_w);
};
diff --git a/src/mame/includes/ojankohs.h b/src/mame/includes/ojankohs.h
index 8364289148c..96f3dc90f91 100644
--- a/src/mame/includes/ojankohs.h
+++ b/src/mame/includes/ojankohs.h
@@ -34,6 +34,17 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_msm;
+ DECLARE_WRITE8_MEMBER(ojankohs_rombank_w);
+ DECLARE_WRITE8_MEMBER(ojankoy_rombank_w);
+ DECLARE_WRITE8_MEMBER(ojankohs_msm5205_w);
+ DECLARE_WRITE8_MEMBER(ojankoc_ctrl_w);
+ DECLARE_WRITE8_MEMBER(ojankohs_portselect_w);
+ DECLARE_READ8_MEMBER(ojankohs_keymatrix_r);
+ DECLARE_READ8_MEMBER(ojankoc_keymatrix_r);
+ DECLARE_READ8_MEMBER(ccasino_dipsw3_r);
+ DECLARE_READ8_MEMBER(ccasino_dipsw4_r);
+ DECLARE_WRITE8_MEMBER(ojankoy_coinctr_w);
+ DECLARE_WRITE8_MEMBER(ccasino_coinctr_w);
};
diff --git a/src/mame/includes/oneshot.h b/src/mame/includes/oneshot.h
index a943cb4a4c8..84bb158d0d3 100644
--- a/src/mame/includes/oneshot.h
+++ b/src/mame/includes/oneshot.h
@@ -29,6 +29,11 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_READ16_MEMBER(oneshot_in0_word_r);
+ DECLARE_READ16_MEMBER(oneshot_gun_x_p1_r);
+ DECLARE_READ16_MEMBER(oneshot_gun_y_p1_r);
+ DECLARE_READ16_MEMBER(oneshot_gun_x_p2_r);
+ DECLARE_READ16_MEMBER(oneshot_gun_y_p2_r);
};
/*----------- defined in video/oneshot.c -----------*/
diff --git a/src/mame/includes/opwolf.h b/src/mame/includes/opwolf.h
index 698d1075ae6..0080fd08f6c 100644
--- a/src/mame/includes/opwolf.h
+++ b/src/mame/includes/opwolf.h
@@ -49,6 +49,15 @@ public:
device_t *m_pc090oj;
device_t *m_msm1;
device_t *m_msm2;
+ DECLARE_READ16_MEMBER(cchip_r);
+ DECLARE_WRITE16_MEMBER(cchip_w);
+ DECLARE_READ16_MEMBER(opwolf_in_r);
+ DECLARE_READ16_MEMBER(opwolf_dsw_r);
+ DECLARE_READ16_MEMBER(opwolf_lightgun_r);
+ DECLARE_READ8_MEMBER(z80_input1_r);
+ DECLARE_READ8_MEMBER(z80_input2_r);
+ DECLARE_WRITE8_MEMBER(opwolf_adpcm_d_w);
+ DECLARE_WRITE8_MEMBER(opwolf_adpcm_e_w);
};
diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h
index f4cc338d972..cd0b7fbfc33 100644
--- a/src/mame/includes/orbit.h
+++ b/src/mame/includes/orbit.h
@@ -35,6 +35,7 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_discrete;
+ DECLARE_WRITE8_MEMBER(orbit_misc_w);
};
diff --git a/src/mame/includes/othldrby.h b/src/mame/includes/othldrby.h
index c32c603602f..1fe8feecb39 100644
--- a/src/mame/includes/othldrby.h
+++ b/src/mame/includes/othldrby.h
@@ -25,6 +25,10 @@ public:
/* misc */
int m_toggle;
+ DECLARE_READ16_MEMBER(othldrby_scanline_r);
+ DECLARE_WRITE16_MEMBER(coinctrl_w);
+ DECLARE_WRITE16_MEMBER(calendar_w);
+ DECLARE_READ16_MEMBER(calendar_r);
};
diff --git a/src/mame/includes/othunder.h b/src/mame/includes/othunder.h
index 8ca147b0973..8d75c7debae 100644
--- a/src/mame/includes/othunder.h
+++ b/src/mame/includes/othunder.h
@@ -50,6 +50,15 @@ public:
device_t *m_2610_1r;
device_t *m_2610_2l;
device_t *m_2610_2r;
+ DECLARE_WRITE16_MEMBER(irq_ack_w);
+ DECLARE_WRITE16_MEMBER(othunder_tc0220ioc_w);
+ DECLARE_READ16_MEMBER(othunder_tc0220ioc_r);
+ DECLARE_READ16_MEMBER(othunder_lightgun_r);
+ DECLARE_WRITE16_MEMBER(othunder_lightgun_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(othunder_sound_w);
+ DECLARE_READ16_MEMBER(othunder_sound_r);
+ DECLARE_WRITE8_MEMBER(othunder_TC0310FAM_w);
};
diff --git a/src/mame/includes/overdriv.h b/src/mame/includes/overdriv.h
index 0f198e102cc..93a1886682c 100644
--- a/src/mame/includes/overdriv.h
+++ b/src/mame/includes/overdriv.h
@@ -31,6 +31,13 @@ public:
device_t *m_k051316_2;
device_t *m_k053246;
device_t *m_k053251;
+ DECLARE_WRITE16_MEMBER(eeprom_w);
+ DECLARE_WRITE16_MEMBER(cpuA_ctrl_w);
+ DECLARE_READ16_MEMBER(cpuB_ctrl_r);
+ DECLARE_WRITE16_MEMBER(cpuB_ctrl_w);
+ DECLARE_WRITE16_MEMBER(overdriv_soundirq_w);
+ DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq5_w);
+ DECLARE_WRITE16_MEMBER(overdriv_cpuB_irq6_w);
};
/*----------- defined in video/overdriv.c -----------*/
diff --git a/src/mame/includes/pacland.h b/src/mame/includes/pacland.h
index 84a1168c945..a8d5afbbe4f 100644
--- a/src/mame/includes/pacland.h
+++ b/src/mame/includes/pacland.h
@@ -17,6 +17,14 @@ public:
UINT16 m_scroll1;
UINT8 m_main_irq_mask;
UINT8 m_mcu_irq_mask;
+ DECLARE_WRITE8_MEMBER(pacland_subreset_w);
+ DECLARE_WRITE8_MEMBER(pacland_flipscreen_w);
+ DECLARE_READ8_MEMBER(pacland_input_r);
+ DECLARE_WRITE8_MEMBER(pacland_coin_w);
+ DECLARE_WRITE8_MEMBER(pacland_led_w);
+ DECLARE_WRITE8_MEMBER(pacland_irq_1_ctrl_w);
+ DECLARE_WRITE8_MEMBER(pacland_irq_2_ctrl_w);
+ DECLARE_READ8_MEMBER(readFF);
};
diff --git a/src/mame/includes/pacman.h b/src/mame/includes/pacman.h
index dc1d9faf179..737daebc48e 100644
--- a/src/mame/includes/pacman.h
+++ b/src/mame/includes/pacman.h
@@ -35,6 +35,46 @@ public:
optional_shared_ptr<UINT8> m_spriteram;
optional_shared_ptr<UINT8> m_spriteram2;
optional_shared_ptr<UINT8> m_s2650_spriteram;
+ DECLARE_WRITE8_MEMBER(pacman_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(piranha_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(nmouse_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(pacman_leds_w);
+ DECLARE_WRITE8_MEMBER(pacman_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(pacman_coin_lockout_global_w);
+ DECLARE_WRITE8_MEMBER(alibaba_sound_w);
+ DECLARE_READ8_MEMBER(alibaba_mystery_1_r);
+ DECLARE_READ8_MEMBER(alibaba_mystery_2_r);
+ DECLARE_READ8_MEMBER(maketrax_special_port2_r);
+ DECLARE_READ8_MEMBER(maketrax_special_port3_r);
+ DECLARE_READ8_MEMBER(korosuke_special_port2_r);
+ DECLARE_READ8_MEMBER(korosuke_special_port3_r);
+ DECLARE_READ8_MEMBER(mschamp_kludge_r);
+ DECLARE_WRITE8_MEMBER(bigbucks_bank_w);
+ DECLARE_READ8_MEMBER(bigbucks_question_r);
+ DECLARE_WRITE8_MEMBER(porky_banking_w);
+ DECLARE_READ8_MEMBER(drivfrcp_port1_r);
+ DECLARE_READ8_MEMBER(_8bpm_port1_r);
+ DECLARE_READ8_MEMBER(porky_port1_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot1_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot2_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot3_data_r);
+ DECLARE_READ8_MEMBER(rocktrv2_prot4_data_r);
+ DECLARE_WRITE8_MEMBER(rocktrv2_prot_data_w);
+ DECLARE_WRITE8_MEMBER(rocktrv2_question_bank_w);
+ DECLARE_READ8_MEMBER(rocktrv2_question_r);
+ DECLARE_READ8_MEMBER(pacman_read_nop);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x0038);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x03b0);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x1600);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x2120);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x3ff0);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x8000);
+ DECLARE_READ8_MEMBER(mspacman_disable_decode_r_0x97f0);
+ DECLARE_WRITE8_MEMBER(mspacman_disable_decode_w);
+ DECLARE_READ8_MEMBER(mspacman_enable_decode_r_0x3ff8);
+ DECLARE_WRITE8_MEMBER(mspacman_enable_decode_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
+ DECLARE_READ8_MEMBER(cannonbp_protection_r);
};
diff --git a/src/mame/includes/pandoras.h b/src/mame/includes/pandoras.h
index 17fbd502166..00b9e7d5fa9 100644
--- a/src/mame/includes/pandoras.h
+++ b/src/mame/includes/pandoras.h
@@ -30,6 +30,12 @@ public:
cpu_device *m_subcpu;
cpu_device *m_audiocpu;
cpu_device *m_mcu;
+ DECLARE_WRITE8_MEMBER(pandoras_int_control_w);
+ DECLARE_WRITE8_MEMBER(pandoras_cpua_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(pandoras_cpub_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(pandoras_i8039_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(i8039_irqen_and_status_w);
+ DECLARE_WRITE8_MEMBER(pandoras_z80_irqtrigger_w);
};
diff --git a/src/mame/includes/paradise.h b/src/mame/includes/paradise.h
index 7cdb5df66ac..a2bb743eaed 100644
--- a/src/mame/includes/paradise.h
+++ b/src/mame/includes/paradise.h
@@ -25,6 +25,8 @@ public:
int m_sprite_inc;
int irq_count;
+ DECLARE_WRITE8_MEMBER(paradise_rombank_w);
+ DECLARE_WRITE8_MEMBER(torus_coin_counter_w);
};
/*----------- defined in video/paradise.c -----------*/
diff --git a/src/mame/includes/parodius.h b/src/mame/includes/parodius.h
index 1d29ac652f5..bb90d3a5278 100644
--- a/src/mame/includes/parodius.h
+++ b/src/mame/includes/parodius.h
@@ -30,6 +30,14 @@ public:
device_t *m_k052109;
device_t *m_k053245;
device_t *m_k053251;
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_READ8_MEMBER(parodius_052109_053245_r);
+ DECLARE_WRITE8_MEMBER(parodius_052109_053245_w);
+ DECLARE_WRITE8_MEMBER(parodius_videobank_w);
+ DECLARE_WRITE8_MEMBER(parodius_3fc0_w);
+ DECLARE_WRITE8_MEMBER(parodius_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
};
/*----------- defined in video/parodius.c -----------*/
diff --git a/src/mame/includes/pastelg.h b/src/mame/includes/pastelg.h
index a4a73a67d60..d518fdbc739 100644
--- a/src/mame/includes/pastelg.h
+++ b/src/mame/includes/pastelg.h
@@ -19,6 +19,11 @@ public:
UINT8 *m_videoram;
UINT8 *m_clut;
int m_flipscreen_old;
+ DECLARE_READ8_MEMBER(pastelg_sndrom_r);
+ DECLARE_READ8_MEMBER(pastelg_irq_ack_r);
+ DECLARE_READ8_MEMBER(threeds_inputport1_r);
+ DECLARE_READ8_MEMBER(threeds_inputport2_r);
+ DECLARE_WRITE8_MEMBER(threeds_inputportsel_w);
};
diff --git a/src/mame/includes/pbaction.h b/src/mame/includes/pbaction.h
index 889861ce880..736ec212800 100644
--- a/src/mame/includes/pbaction.h
+++ b/src/mame/includes/pbaction.h
@@ -30,6 +30,9 @@ public:
device_t *m_audiocpu;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(pbaction_sh_command_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
+ DECLARE_READ8_MEMBER(pbactio3_prot_kludge_r);
};
diff --git a/src/mame/includes/pcktgal.h b/src/mame/includes/pcktgal.h
index ebd625d2344..7dd8a7b8df7 100644
--- a/src/mame/includes/pcktgal.h
+++ b/src/mame/includes/pcktgal.h
@@ -8,6 +8,10 @@ public:
int m_toggle;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(pcktgal_bank_w);
+ DECLARE_WRITE8_MEMBER(pcktgal_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(pcktgal_sound_w);
+ DECLARE_WRITE8_MEMBER(pcktgal_adpcm_data_w);
};
diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h
index e298ff91f8a..ea44908e1b4 100644
--- a/src/mame/includes/pgm.h
+++ b/src/mame/includes/pgm.h
@@ -59,6 +59,14 @@ public:
system_time m_systime;
+ DECLARE_READ16_MEMBER(pgm_videoram_r);
+ DECLARE_WRITE16_MEMBER(pgm_videoram_w);
+ DECLARE_READ16_MEMBER(z80_ram_r);
+ DECLARE_WRITE16_MEMBER(z80_ram_w);
+ DECLARE_WRITE16_MEMBER(z80_reset_w);
+ DECLARE_WRITE16_MEMBER(z80_ctrl_w);
+ DECLARE_WRITE16_MEMBER(m68k_l1_w);
+ DECLARE_WRITE8_MEMBER(z80_l3_w);
};
diff --git a/src/mame/includes/pingpong.h b/src/mame/includes/pingpong.h
index 378a5943981..82865f4896b 100644
--- a/src/mame/includes/pingpong.h
+++ b/src/mame/includes/pingpong.h
@@ -15,6 +15,9 @@ public:
size_t m_spriteram_size;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(cashquiz_question_bank_high_w);
+ DECLARE_WRITE8_MEMBER(cashquiz_question_bank_low_w);
+ DECLARE_WRITE8_MEMBER(coin_w);
};
diff --git a/src/mame/includes/pirates.h b/src/mame/includes/pirates.h
index 1db9465b1a3..b54fc5001f7 100644
--- a/src/mame/includes/pirates.h
+++ b/src/mame/includes/pirates.h
@@ -12,6 +12,8 @@ public:
tilemap_t *m_tx_tilemap;
tilemap_t *m_fg_tilemap;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE16_MEMBER(pirates_out_w);
+ DECLARE_READ16_MEMBER(genix_prot_r);
};
diff --git a/src/mame/includes/pitnrun.h b/src/mame/includes/pitnrun.h
index 335101c2b29..15128bdf4ed 100644
--- a/src/mame/includes/pitnrun.h
+++ b/src/mame/includes/pitnrun.h
@@ -25,6 +25,9 @@ public:
tilemap_t *m_fg;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(pitnrun_hflip_w);
+ DECLARE_WRITE8_MEMBER(pitnrun_vflip_w);
};
diff --git a/src/mame/includes/pktgaldx.h b/src/mame/includes/pktgaldx.h
index 4eafd73bc35..2b30aeef89d 100644
--- a/src/mame/includes/pktgaldx.h
+++ b/src/mame/includes/pktgaldx.h
@@ -23,6 +23,8 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_deco_tilegen1;
+ DECLARE_READ16_MEMBER(pckgaldx_unknown_r);
+ DECLARE_READ16_MEMBER(pckgaldx_protection_r);
};
diff --git a/src/mame/includes/playch10.h b/src/mame/includes/playch10.h
index 6bc2ec6cfe1..b08a8a9fdc1 100644
--- a/src/mame/includes/playch10.h
+++ b/src/mame/includes/playch10.h
@@ -45,6 +45,11 @@ public:
int m_gboard_command;
int m_pc10_bios;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(up8w_w);
+ DECLARE_READ8_MEMBER(ram_8w_r);
+ DECLARE_WRITE8_MEMBER(ram_8w_w);
+ DECLARE_WRITE8_MEMBER(sprite_dma_w);
+ DECLARE_WRITE8_MEMBER(time_w);
};
diff --git a/src/mame/includes/playmark.h b/src/mame/includes/playmark.h
index b5fa943ca1b..12f0e907543 100644
--- a/src/mame/includes/playmark.h
+++ b/src/mame/includes/playmark.h
@@ -48,6 +48,16 @@ public:
/* devices */
okim6295_device *m_oki;
eeprom_device *m_eeprom;
+ DECLARE_WRITE16_MEMBER(coinctrl_w);
+ DECLARE_WRITE16_MEMBER(wbeachvl_coin_eeprom_w);
+ DECLARE_WRITE16_MEMBER(hotmind_coin_eeprom_w);
+ DECLARE_WRITE16_MEMBER(hrdtimes_coin_w);
+ DECLARE_WRITE16_MEMBER(playmark_snd_command_w);
+ DECLARE_READ8_MEMBER(playmark_snd_command_r);
+ DECLARE_READ8_MEMBER(playmark_snd_flag_r);
+ DECLARE_WRITE8_MEMBER(playmark_oki_w);
+ DECLARE_WRITE8_MEMBER(playmark_snd_control_w);
+ DECLARE_READ8_MEMBER(PIC16C5X_T0_clk_r);
};
/*----------- defined in video/playmark.c -----------*/
diff --git a/src/mame/includes/plygonet.h b/src/mame/includes/plygonet.h
index ce19409f5c4..cfc7d320d15 100644
--- a/src/mame/includes/plygonet.h
+++ b/src/mame/includes/plygonet.h
@@ -32,6 +32,30 @@ public:
UINT16 m_dsp56k_bank02_ram[2 * 8 * dsp56k_bank02_size];
UINT16 m_dsp56k_shared_ram_16[2 * 8 * dsp56k_shared_ram_16_size];
UINT16 m_dsp56k_bank04_ram[2 * 8 * dsp56k_bank04_size];
+ DECLARE_WRITE32_MEMBER(polygonet_eeprom_w);
+ DECLARE_READ32_MEMBER(ttl_rom_r);
+ DECLARE_READ32_MEMBER(psac_rom_r);
+ DECLARE_READ32_MEMBER(sound_r);
+ DECLARE_WRITE32_MEMBER(sound_w);
+ DECLARE_WRITE32_MEMBER(sound_irq_w);
+ DECLARE_READ32_MEMBER(dsp_host_interface_r);
+ DECLARE_WRITE32_MEMBER(shared_ram_write);
+ DECLARE_WRITE32_MEMBER(dsp_w_lines);
+ DECLARE_WRITE32_MEMBER(dsp_host_interface_w);
+ DECLARE_READ32_MEMBER(network_r);
+ DECLARE_WRITE32_MEMBER(plygonet_palette_w);
+ DECLARE_READ16_MEMBER(dsp56k_bootload_r);
+ DECLARE_READ16_MEMBER(dsp56k_ram_bank00_read);
+ DECLARE_WRITE16_MEMBER(dsp56k_ram_bank00_write);
+ DECLARE_READ16_MEMBER(dsp56k_ram_bank01_read);
+ DECLARE_WRITE16_MEMBER(dsp56k_ram_bank01_write);
+ DECLARE_READ16_MEMBER(dsp56k_ram_bank02_read);
+ DECLARE_WRITE16_MEMBER(dsp56k_ram_bank02_write);
+ DECLARE_READ16_MEMBER(dsp56k_shared_ram_read);
+ DECLARE_WRITE16_MEMBER(dsp56k_shared_ram_write);
+ DECLARE_READ16_MEMBER(dsp56k_ram_bank04_read);
+ DECLARE_WRITE16_MEMBER(dsp56k_ram_bank04_write);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
/*----------- defined in video/plygonet.c -----------*/
diff --git a/src/mame/includes/pokechmp.h b/src/mame/includes/pokechmp.h
index c608c9d6ba4..6d6b42f14a1 100644
--- a/src/mame/includes/pokechmp.h
+++ b/src/mame/includes/pokechmp.h
@@ -8,6 +8,10 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(pokechmp_bank_w);
+ DECLARE_WRITE8_MEMBER(pokechmp_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(pokechmp_sound_w);
+ DECLARE_WRITE8_MEMBER(pokechmp_paletteram_w);
};
diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h
index 28ae8df3d55..cf35677e318 100644
--- a/src/mame/includes/polepos.h
+++ b/src/mame/includes/polepos.h
@@ -34,6 +34,11 @@ public:
UINT16 m_scroll;
UINT8 m_main_irq_mask;
UINT8 m_sub_irq_mask;
+ DECLARE_READ16_MEMBER(polepos2_ic25_r);
+ DECLARE_READ8_MEMBER(polepos_adc_r);
+ DECLARE_READ8_MEMBER(polepos_ready_r);
+ DECLARE_WRITE8_MEMBER(polepos_latch_w);
+ DECLARE_WRITE16_MEMBER(polepos_z8002_nvi_enable_w);
};
diff --git a/src/mame/includes/policetr.h b/src/mame/includes/policetr.h
index 5ac43a4eea9..2c479d61d75 100644
--- a/src/mame/includes/policetr.h
+++ b/src/mame/includes/policetr.h
@@ -30,6 +30,11 @@ public:
UINT16 m_dst_yoffs;
UINT8 m_video_latch;
UINT32 m_srcbitmap_height_mask;
+ DECLARE_WRITE32_MEMBER(control_w);
+ DECLARE_WRITE32_MEMBER(policetr_bsmt2000_reg_w);
+ DECLARE_WRITE32_MEMBER(policetr_bsmt2000_data_w);
+ DECLARE_READ32_MEMBER(bsmt2000_data_r);
+ DECLARE_WRITE32_MEMBER(speedup_w);
};
diff --git a/src/mame/includes/polyplay.h b/src/mame/includes/polyplay.h
index 510bf741766..ca74c592387 100644
--- a/src/mame/includes/polyplay.h
+++ b/src/mame/includes/polyplay.h
@@ -23,6 +23,9 @@ public:
timer_device* m_timer;
int m_last;
UINT8 *m_characterram;
+ DECLARE_WRITE8_MEMBER(polyplay_sound_channel);
+ DECLARE_WRITE8_MEMBER(polyplay_start_timer2);
+ DECLARE_READ8_MEMBER(polyplay_random_read);
};
diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h
index 016a195ab77..24eb5ee0d05 100644
--- a/src/mame/includes/poolshrk.h
+++ b/src/mame/includes/poolshrk.h
@@ -19,6 +19,11 @@ public:
UINT8* m_hpos_ram;
UINT8* m_vpos_ram;
tilemap_t* m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(poolshrk_da_latch_w);
+ DECLARE_WRITE8_MEMBER(poolshrk_led_w);
+ DECLARE_WRITE8_MEMBER(poolshrk_watchdog_w);
+ DECLARE_READ8_MEMBER(poolshrk_input_r);
+ DECLARE_READ8_MEMBER(poolshrk_irq_reset_r);
};
diff --git a/src/mame/includes/pooyan.h b/src/mame/includes/pooyan.h
index 7e94fa259fe..8dd0eb11d0d 100644
--- a/src/mame/includes/pooyan.h
+++ b/src/mame/includes/pooyan.h
@@ -19,6 +19,7 @@ public:
/* devices */
cpu_device *m_maincpu;
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
};
diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h
index 3b71b0af674..d54605c9636 100644
--- a/src/mame/includes/popeye.h
+++ b/src/mame/includes/popeye.h
@@ -20,6 +20,8 @@ public:
UINT8 m_lastflip;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_READ8_MEMBER(protection_r);
+ DECLARE_WRITE8_MEMBER(protection_w);
};
diff --git a/src/mame/includes/popper.h b/src/mame/includes/popper.h
index d6785cc283e..5c8dd6e8ca5 100644
--- a/src/mame/includes/popper.h
+++ b/src/mame/includes/popper.h
@@ -32,6 +32,9 @@ public:
device_t *m_audiocpu;
UINT8 m_nmi_mask;
+ DECLARE_READ8_MEMBER(popper_input_ports_r);
+ DECLARE_READ8_MEMBER(popper_soundcpu_nmi_r);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/portrait.h b/src/mame/includes/portrait.h
index 38e23200195..c0667b76e10 100644
--- a/src/mame/includes/portrait.h
+++ b/src/mame/includes/portrait.h
@@ -11,6 +11,9 @@ public:
tilemap_t *m_background;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(portrait_ctrl_w);
+ DECLARE_WRITE8_MEMBER(portrait_positive_scroll_w);
+ DECLARE_WRITE8_MEMBER(portrait_negative_scroll_w);
};
diff --git a/src/mame/includes/powerins.h b/src/mame/includes/powerins.h
index eb56786cd51..100c8a8b374 100644
--- a/src/mame/includes/powerins.h
+++ b/src/mame/includes/powerins.h
@@ -13,6 +13,9 @@ public:
tilemap_t *m_tilemap_1;
int m_tile_bank;
UINT16 *m_spriteram;
+ DECLARE_WRITE16_MEMBER(powerins_okibank_w);
+ DECLARE_WRITE16_MEMBER(powerins_soundlatch_w);
+ DECLARE_READ8_MEMBER(powerinb_fake_ym2203_r);
};
diff --git a/src/mame/includes/prehisle.h b/src/mame/includes/prehisle.h
index db3fc027c73..cf58ac85daa 100644
--- a/src/mame/includes/prehisle.h
+++ b/src/mame/includes/prehisle.h
@@ -13,6 +13,7 @@ public:
tilemap_t *m_bg2_tilemap;
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
+ DECLARE_WRITE16_MEMBER(prehisle_sound16_w);
};
diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h
index 890316318f2..0e0836a8e91 100644
--- a/src/mame/includes/psikyo.h
+++ b/src/mame/includes/psikyo.h
@@ -54,6 +54,20 @@ public:
UINT8 m_s1945_mcu_control;
UINT8 m_s1945_mcu_bctrl;
const UINT8 *m_s1945_mcu_table;
+ DECLARE_READ32_MEMBER(sngkace_input_r);
+ DECLARE_READ32_MEMBER(gunbird_input_r);
+ DECLARE_WRITE32_MEMBER(psikyo_soundlatch_w);
+ DECLARE_WRITE32_MEMBER(s1945_soundlatch_w);
+ DECLARE_WRITE32_MEMBER(s1945_mcu_w);
+ DECLARE_READ32_MEMBER(s1945_mcu_r);
+ DECLARE_READ32_MEMBER(s1945_input_r);
+ DECLARE_WRITE32_MEMBER(paletteram32_xRRRRRGGGGGBBBBB_dword_w);
+ DECLARE_READ32_MEMBER(s1945bl_oki_r);
+ DECLARE_WRITE32_MEMBER(s1945bl_oki_w);
+ DECLARE_READ8_MEMBER(psikyo_soundlatch_r);
+ DECLARE_WRITE8_MEMBER(psikyo_clear_nmi_w);
+ DECLARE_WRITE8_MEMBER(sngkace_sound_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(gunbird_sound_bankswitch_w);
};
diff --git a/src/mame/includes/psikyo4.h b/src/mame/includes/psikyo4.h
index adfa1489559..2e580566ac2 100644
--- a/src/mame/includes/psikyo4.h
+++ b/src/mame/includes/psikyo4.h
@@ -29,6 +29,13 @@ public:
/* devices */
device_t *m_maincpu;
+ DECLARE_WRITE32_MEMBER(ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w);
+ DECLARE_WRITE32_MEMBER(ps4_bgpen_1_dword_w);
+ DECLARE_WRITE32_MEMBER(ps4_bgpen_2_dword_w);
+ DECLARE_WRITE32_MEMBER(ps4_screen1_brt_w);
+ DECLARE_WRITE32_MEMBER(ps4_screen2_brt_w);
+ DECLARE_WRITE32_MEMBER(ps4_vidregs_w);
+ DECLARE_WRITE32_MEMBER(hotgmck_pcm_bank_w);
};
diff --git a/src/mame/includes/psikyosh.h b/src/mame/includes/psikyosh.h
index 1c21b8b34f2..78076fcf9fc 100644
--- a/src/mame/includes/psikyosh.h
+++ b/src/mame/includes/psikyosh.h
@@ -41,6 +41,10 @@ public:
/* devices */
device_t *m_maincpu;
required_device<buffered_spriteram32_device> m_spriteram;
+ DECLARE_WRITE32_MEMBER(psikyosh_irqctrl_w);
+ DECLARE_WRITE32_MEMBER(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w);
+ DECLARE_WRITE32_MEMBER(psikyosh_vidregs_w);
+ DECLARE_READ32_MEMBER(mjgtaste_input_r);
};
/*----------- defined in video/psikyosh.c -----------*/
diff --git a/src/mame/includes/psychic5.h b/src/mame/includes/psychic5.h
index db3b040ab54..030da767162 100644
--- a/src/mame/includes/psychic5.h
+++ b/src/mame/includes/psychic5.h
@@ -26,6 +26,11 @@ public:
int m_sy2;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_READ8_MEMBER(psychic5_bankselect_r);
+ DECLARE_WRITE8_MEMBER(psychic5_bankselect_w);
+ DECLARE_WRITE8_MEMBER(bombsa_bankselect_w);
+ DECLARE_WRITE8_MEMBER(psychic5_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(bombsa_flipscreen_w);
};
diff --git a/src/mame/includes/punchout.h b/src/mame/includes/punchout.h
index 72fcc1e268f..0fcb2637291 100644
--- a/src/mame/includes/punchout.h
+++ b/src/mame/includes/punchout.h
@@ -24,6 +24,12 @@ public:
int m_palette_reverse_bot;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(punchout_2a03_reset_w);
+ DECLARE_READ8_MEMBER(spunchout_rp5c01_r);
+ DECLARE_WRITE8_MEMBER(spunchout_rp5c01_w);
+ DECLARE_READ8_MEMBER(spunchout_exp_r);
+ DECLARE_WRITE8_MEMBER(spunchout_exp_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/pushman.h b/src/mame/includes/pushman.h
index 632f2caf31b..5eef1e92ab4 100644
--- a/src/mame/includes/pushman.h
+++ b/src/mame/includes/pushman.h
@@ -29,6 +29,14 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_mcu;
+ DECLARE_WRITE16_MEMBER(pushman_flipscreen_w);
+ DECLARE_WRITE16_MEMBER(pushman_control_w);
+ DECLARE_READ16_MEMBER(pushman_68705_r);
+ DECLARE_WRITE16_MEMBER(pushman_68705_w);
+ DECLARE_READ16_MEMBER(bballs_68705_r);
+ DECLARE_WRITE16_MEMBER(bballs_68705_w);
+ DECLARE_READ8_MEMBER(pushman_68000_r);
+ DECLARE_WRITE8_MEMBER(pushman_68000_w);
};
diff --git a/src/mame/includes/qdrmfgp.h b/src/mame/includes/qdrmfgp.h
index 6011870f950..51f0c57d621 100644
--- a/src/mame/includes/qdrmfgp.h
+++ b/src/mame/includes/qdrmfgp.h
@@ -14,6 +14,16 @@ public:
UINT16 m_control;
INT32 m_gp2_irq_control;
INT32 m_pal;
+ DECLARE_WRITE16_MEMBER(gp_control_w);
+ DECLARE_WRITE16_MEMBER(gp2_control_w);
+ DECLARE_READ16_MEMBER(v_rom_r);
+ DECLARE_READ16_MEMBER(gp2_vram_r);
+ DECLARE_READ16_MEMBER(gp2_vram_mirror_r);
+ DECLARE_WRITE16_MEMBER(gp2_vram_w);
+ DECLARE_WRITE16_MEMBER(gp2_vram_mirror_w);
+ DECLARE_READ16_MEMBER(sndram_r);
+ DECLARE_WRITE16_MEMBER(sndram_w);
+ DECLARE_READ16_MEMBER(gp2_ide_std_r);
};
/*----------- defined in video/qdrmfgp.c -----------*/
diff --git a/src/mame/includes/quizdna.h b/src/mame/includes/quizdna.h
index 5c278f1c916..a4f8bdcbf2c 100644
--- a/src/mame/includes/quizdna.h
+++ b/src/mame/includes/quizdna.h
@@ -13,6 +13,8 @@ public:
int m_video_enable;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(quizdna_rombank_w);
+ DECLARE_WRITE8_MEMBER(gekiretu_rombank_w);
};
diff --git a/src/mame/includes/raiden.h b/src/mame/includes/raiden.h
index de975c4dc6f..0f6fdf72fcc 100644
--- a/src/mame/includes/raiden.h
+++ b/src/mame/includes/raiden.h
@@ -18,6 +18,7 @@ public:
int m_flipscreen;
int m_alternate;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_READ16_MEMBER(sub_cpu_spin_r);
};
diff --git a/src/mame/includes/rainbow.h b/src/mame/includes/rainbow.h
index 24385692455..411d8fc7297 100644
--- a/src/mame/includes/rainbow.h
+++ b/src/mame/includes/rainbow.h
@@ -32,6 +32,8 @@ public:
device_t *m_audiocpu;
device_t *m_pc080sn;
device_t *m_pc090oj;
+ DECLARE_WRITE16_MEMBER(jumping_sound_w);
+ DECLARE_READ8_MEMBER(jumping_latch_r);
};
diff --git a/src/mame/includes/rallyx.h b/src/mame/includes/rallyx.h
index e1d44c258ea..9b1bdbbb30c 100644
--- a/src/mame/includes/rallyx.h
+++ b/src/mame/includes/rallyx.h
@@ -38,6 +38,10 @@ public:
samples_device *m_samples;
UINT8 m_main_irq_mask;
+ DECLARE_WRITE8_MEMBER(rallyx_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(rallyx_bang_w);
+ DECLARE_WRITE8_MEMBER(rallyx_latch_w);
+ DECLARE_WRITE8_MEMBER(locomotn_latch_w);
};
diff --git a/src/mame/includes/rastan.h b/src/mame/includes/rastan.h
index 46cd628de08..da561ddd18c 100644
--- a/src/mame/includes/rastan.h
+++ b/src/mame/includes/rastan.h
@@ -26,6 +26,7 @@ public:
device_t *m_audiocpu;
device_t *m_pc090oj;
device_t *m_pc080sn;
+ DECLARE_WRITE8_MEMBER(rastan_msm5205_address_w);
};
diff --git a/src/mame/includes/realbrk.h b/src/mame/includes/realbrk.h
index 0a93a5ee5bf..7b9c637de4b 100644
--- a/src/mame/includes/realbrk.h
+++ b/src/mame/includes/realbrk.h
@@ -19,6 +19,12 @@ public:
tilemap_t *m_tilemap_1;
tilemap_t *m_tilemap_2;
UINT16 *m_spriteram;
+ DECLARE_READ16_MEMBER(realbrk_dsw_r);
+ DECLARE_READ16_MEMBER(pkgnsh_input_r);
+ DECLARE_READ16_MEMBER(pkgnshdx_input_r);
+ DECLARE_READ16_MEMBER(backup_ram_r);
+ DECLARE_READ16_MEMBER(backup_ram_dx_r);
+ DECLARE_WRITE16_MEMBER(backup_ram_w);
};
diff --git a/src/mame/includes/redalert.h b/src/mame/includes/redalert.h
index 05730cb3579..4785e2a4350 100644
--- a/src/mame/includes/redalert.h
+++ b/src/mame/includes/redalert.h
@@ -21,6 +21,10 @@ public:
UINT8 *m_video_control;
UINT8 *m_bitmap_colorram;
UINT8 m_control_xor;
+ DECLARE_READ8_MEMBER(redalert_interrupt_clear_r);
+ DECLARE_WRITE8_MEMBER(redalert_interrupt_clear_w);
+ DECLARE_READ8_MEMBER(panther_interrupt_clear_r);
+ DECLARE_READ8_MEMBER(panther_unk_r);
};
diff --git a/src/mame/includes/renegade.h b/src/mame/includes/renegade.h
index e95ea01a973..93acbc43b9b 100644
--- a/src/mame/includes/renegade.h
+++ b/src/mame/includes/renegade.h
@@ -39,6 +39,13 @@ public:
UINT8 *m_spriteram;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(sound_w);
+ DECLARE_READ8_MEMBER(mcu_reset_r);
+ DECLARE_WRITE8_MEMBER(mcu_w);
+ DECLARE_READ8_MEMBER(mcu_r);
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_WRITE8_MEMBER(renegade_coin_counter_w);
+ void mcu_process_command();
};
diff --git a/src/mame/includes/retofinv.h b/src/mame/includes/retofinv.h
index 84abaea3b4d..815a7ea6782 100644
--- a/src/mame/includes/retofinv.h
+++ b/src/mame/includes/retofinv.h
@@ -28,6 +28,16 @@ public:
UINT8 m_main_irq_mask;
UINT8 m_sub_irq_mask;
+ DECLARE_WRITE8_MEMBER(cpu1_reset_w);
+ DECLARE_WRITE8_MEMBER(cpu2_reset_w);
+ DECLARE_WRITE8_MEMBER(mcu_reset_w);
+ DECLARE_WRITE8_MEMBER(cpu2_m6000_w);
+ DECLARE_READ8_MEMBER(cpu0_mf800_r);
+ DECLARE_WRITE8_MEMBER(soundcommand_w);
+ DECLARE_WRITE8_MEMBER(irq0_ack_w);
+ DECLARE_WRITE8_MEMBER(irq1_ack_w);
+ DECLARE_WRITE8_MEMBER(coincounter_w);
+ DECLARE_WRITE8_MEMBER(coinlockout_w);
};
diff --git a/src/mame/includes/rltennis.h b/src/mame/includes/rltennis.h
index 8282e082228..25fb00d22e9 100644
--- a/src/mame/includes/rltennis.h
+++ b/src/mame/includes/rltennis.h
@@ -36,6 +36,9 @@ public:
emu_timer *m_timer;
+ DECLARE_READ16_MEMBER(rlt_io_r);
+ DECLARE_WRITE16_MEMBER(rlt_snd1_w);
+ DECLARE_WRITE16_MEMBER(rlt_snd2_w);
};
diff --git a/src/mame/includes/rockrage.h b/src/mame/includes/rockrage.h
index ba969a81d89..39edb343d7a 100644
--- a/src/mame/includes/rockrage.h
+++ b/src/mame/includes/rockrage.h
@@ -21,6 +21,8 @@ public:
device_t *m_audiocpu;
device_t *m_k007342;
device_t *m_k007420;
+ DECLARE_WRITE8_MEMBER(rockrage_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(rockrage_sh_irqtrigger_w);
};
diff --git a/src/mame/includes/rocnrope.h b/src/mame/includes/rocnrope.h
index b5fea6d334f..de5f03d8197 100644
--- a/src/mame/includes/rocnrope.h
+++ b/src/mame/includes/rocnrope.h
@@ -15,6 +15,8 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(rocnrope_interrupt_vector_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
/*----------- defined in video/rocnrope.c -----------*/
diff --git a/src/mame/includes/rohga.h b/src/mame/includes/rohga.h
index e26dde63abf..c5a4fd1123e 100644
--- a/src/mame/includes/rohga.h
+++ b/src/mame/includes/rohga.h
@@ -40,6 +40,8 @@ public:
required_device<okim6295_device> m_oki2;
required_device<buffered_spriteram16_device> m_spriteram;
optional_device<buffered_spriteram16_device> m_spriteram2;
+ DECLARE_READ16_MEMBER(rohga_irq_ack_r);
+ DECLARE_WRITE16_MEMBER(wizdfire_irq_ack_w);
};
diff --git a/src/mame/includes/rollerg.h b/src/mame/includes/rollerg.h
index b01b97504b8..36d93e24451 100644
--- a/src/mame/includes/rollerg.h
+++ b/src/mame/includes/rollerg.h
@@ -26,6 +26,11 @@ public:
device_t *m_k053260;
device_t *m_k053244;
device_t *m_k051316;
+ DECLARE_WRITE8_MEMBER(rollerg_0010_w);
+ DECLARE_READ8_MEMBER(rollerg_k051316_r);
+ DECLARE_WRITE8_MEMBER(soundirq_w);
+ DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
+ DECLARE_READ8_MEMBER(pip_r);
};
/*----------- defined in video/rollerg.c -----------*/
diff --git a/src/mame/includes/rollrace.h b/src/mame/includes/rollrace.h
index 4e66fe54e8b..b4909e7bd0d 100644
--- a/src/mame/includes/rollrace.h
+++ b/src/mame/includes/rollrace.h
@@ -20,6 +20,10 @@ public:
UINT8 m_nmi_mask;
UINT8 m_sound_nmi_mask;
+ DECLARE_READ8_MEMBER(ra_fake_d800_r);
+ DECLARE_WRITE8_MEMBER(ra_fake_d800_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
+ DECLARE_WRITE8_MEMBER(sound_nmi_mask_w);
};
diff --git a/src/mame/includes/route16.h b/src/mame/includes/route16.h
index 325ac370c99..c38fefb1f75 100644
--- a/src/mame/includes/route16.h
+++ b/src/mame/includes/route16.h
@@ -13,6 +13,14 @@ public:
UINT8 m_flipscreen;
UINT8 m_palette_1;
UINT8 m_palette_2;
+ DECLARE_READ8_MEMBER(sharedram_r);
+ DECLARE_WRITE8_MEMBER(sharedram_w);
+ DECLARE_WRITE8_MEMBER(route16_sharedram_w);
+ DECLARE_WRITE8_MEMBER(ttmahjng_input_port_matrix_w);
+ DECLARE_READ8_MEMBER(ttmahjng_input_port_matrix_r);
+ DECLARE_READ8_MEMBER(speakres_in3_r);
+ DECLARE_WRITE8_MEMBER(speakres_out2_w);
+ DECLARE_READ8_MEMBER(routex_prot_read);
};
diff --git a/src/mame/includes/rpunch.h b/src/mame/includes/rpunch.h
index 1a866d328ef..94d6f2031c0 100644
--- a/src/mame/includes/rpunch.h
+++ b/src/mame/includes/rpunch.h
@@ -19,6 +19,9 @@ public:
UINT8 m_bins;
UINT8 m_gins;
UINT16 *m_spriteram;
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_READ8_MEMBER(sound_command_r);
+ DECLARE_READ16_MEMBER(sound_busy_r);
};
diff --git a/src/mame/includes/runaway.h b/src/mame/includes/runaway.h
index 595e56096bd..05ac95e3506 100644
--- a/src/mame/includes/runaway.h
+++ b/src/mame/includes/runaway.h
@@ -9,6 +9,9 @@ public:
UINT8* m_sprite_ram;
tilemap_t *m_bg_tilemap;
int m_tile_bank;
+ DECLARE_READ8_MEMBER(runaway_input_r);
+ DECLARE_WRITE8_MEMBER(runaway_led_w);
+ DECLARE_WRITE8_MEMBER(runaway_irq_ack_w);
};
diff --git a/src/mame/includes/rungun.h b/src/mame/includes/rungun.h
index 18c5acb9f84..ff08b4a1fde 100644
--- a/src/mame/includes/rungun.h
+++ b/src/mame/includes/rungun.h
@@ -34,6 +34,14 @@ public:
device_t *m_k053936;
device_t *m_k055673;
device_t *m_k053252;
+ DECLARE_READ16_MEMBER(rng_sysregs_r);
+ DECLARE_WRITE16_MEMBER(rng_sysregs_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd1_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd2_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_READ16_MEMBER(sound_status_msb_r);
+ DECLARE_WRITE8_MEMBER(sound_status_w);
+ DECLARE_WRITE8_MEMBER(z80ctrl_w);
};
diff --git a/src/mame/includes/sauro.h b/src/mame/includes/sauro.h
index 95d17affbda..762c1025566 100644
--- a/src/mame/includes/sauro.h
+++ b/src/mame/includes/sauro.h
@@ -14,6 +14,11 @@ public:
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
UINT8 m_palette_bank;
+ DECLARE_WRITE8_MEMBER(sauro_sound_command_w);
+ DECLARE_READ8_MEMBER(sauro_sound_command_r);
+ DECLARE_WRITE8_MEMBER(sauro_coin1_w);
+ DECLARE_WRITE8_MEMBER(sauro_coin2_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
};
diff --git a/src/mame/includes/sbasketb.h b/src/mame/includes/sbasketb.h
index 7f5c1c29100..60f92eaa5aa 100644
--- a/src/mame/includes/sbasketb.h
+++ b/src/mame/includes/sbasketb.h
@@ -16,6 +16,9 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(sbasketb_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sbasketb_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
/*----------- defined in video/sbasketb.c -----------*/
diff --git a/src/mame/includes/scotrsht.h b/src/mame/includes/scotrsht.h
index 736207ff711..9cddd33465c 100644
--- a/src/mame/includes/scotrsht.h
+++ b/src/mame/includes/scotrsht.h
@@ -14,6 +14,8 @@ public:
tilemap_t *m_bg_tilemap;
int m_charbank;
int m_palette_bank;
+ DECLARE_WRITE8_MEMBER(ctrl_w);
+ DECLARE_WRITE8_MEMBER(scotrsht_soundlatch_w);
};
diff --git a/src/mame/includes/sderby.h b/src/mame/includes/sderby.h
index b51a939cb5d..1bb7a68024e 100644
--- a/src/mame/includes/sderby.h
+++ b/src/mame/includes/sderby.h
@@ -16,6 +16,13 @@ public:
tilemap_t *m_fg_tilemap;
UINT16 m_scroll[6];
+ DECLARE_READ16_MEMBER(sderby_input_r);
+ DECLARE_READ16_MEMBER(roulette_input_r);
+ DECLARE_READ16_MEMBER(rprot_r);
+ DECLARE_WRITE16_MEMBER(rprot_w);
+ DECLARE_WRITE16_MEMBER(sderby_out_w);
+ DECLARE_WRITE16_MEMBER(scmatto_out_w);
+ DECLARE_WRITE16_MEMBER(roulette_out_w);
};
diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h
index 35efc7c2d0d..9a7c57b6cd7 100644
--- a/src/mame/includes/segag80r.h
+++ b/src/mame/includes/segag80r.h
@@ -45,6 +45,15 @@ public:
UINT16 m_bg_scrollx;
UINT16 m_bg_scrolly;
UINT8 m_pignewt_bg_color_offset;
+ DECLARE_WRITE8_MEMBER(mainram_w);
+ DECLARE_WRITE8_MEMBER(vidram_w);
+ DECLARE_WRITE8_MEMBER(monsterb_vidram_w);
+ DECLARE_WRITE8_MEMBER(pignewt_vidram_w);
+ DECLARE_WRITE8_MEMBER(sindbadm_vidram_w);
+ DECLARE_READ8_MEMBER(mangled_ports_r);
+ DECLARE_READ8_MEMBER(spaceod_mangled_ports_r);
+ DECLARE_READ8_MEMBER(spaceod_port_fc_r);
+ DECLARE_WRITE8_MEMBER(coin_count_w);
};
diff --git a/src/mame/includes/segag80v.h b/src/mame/includes/segag80v.h
index e5b15d7b411..28a93be135a 100644
--- a/src/mame/includes/segag80v.h
+++ b/src/mame/includes/segag80v.h
@@ -24,6 +24,16 @@ public:
size_t m_vectorram_size;
int m_min_x;
int m_min_y;
+ DECLARE_WRITE8_MEMBER(mainram_w);
+ DECLARE_WRITE8_MEMBER(vectorram_w);
+ DECLARE_READ8_MEMBER(mangled_ports_r);
+ DECLARE_WRITE8_MEMBER(spinner_select_w);
+ DECLARE_READ8_MEMBER(spinner_input_r);
+ DECLARE_READ8_MEMBER(elim4_input_r);
+ DECLARE_WRITE8_MEMBER(multiply_w);
+ DECLARE_READ8_MEMBER(multiply_r);
+ DECLARE_WRITE8_MEMBER(coin_count_w);
+ DECLARE_WRITE8_MEMBER(unknown_w);
};
diff --git a/src/mame/includes/senjyo.h b/src/mame/includes/senjyo.h
index f69448fbcf3..68a82815a78 100644
--- a/src/mame/includes/senjyo.h
+++ b/src/mame/includes/senjyo.h
@@ -39,6 +39,10 @@ public:
tilemap_t *m_bg3_tilemap;
int m_bgstripes;
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
+ DECLARE_WRITE8_MEMBER(senjyo_paletteram_w);
+ DECLARE_WRITE8_MEMBER(starforb_scrolly2);
+ DECLARE_WRITE8_MEMBER(starforb_scrollx2);
};
diff --git a/src/mame/includes/sf.h b/src/mame/includes/sf.h
index 64fdb435319..de41f922f3e 100644
--- a/src/mame/includes/sf.h
+++ b/src/mame/includes/sf.h
@@ -27,6 +27,13 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_audiocpu;
+ DECLARE_READ16_MEMBER(dummy_r);
+ DECLARE_WRITE16_MEMBER(sf_coin_w);
+ DECLARE_WRITE16_MEMBER(soundcmd_w);
+ DECLARE_WRITE16_MEMBER(protection_w);
+ DECLARE_READ16_MEMBER(button1_r);
+ DECLARE_READ16_MEMBER(button2_r);
+ DECLARE_WRITE8_MEMBER(sound2_bank_w);
};
diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h
index f9506e595f0..3ee932bd331 100644
--- a/src/mame/includes/shadfrce.h
+++ b/src/mame/includes/shadfrce.h
@@ -21,6 +21,12 @@ public:
int m_raster_irq_enable;
int m_vblank;
int m_prev_value;
+ DECLARE_WRITE16_MEMBER(shadfrce_flip_screen);
+ DECLARE_READ16_MEMBER(shadfrce_input_ports_r);
+ DECLARE_WRITE16_MEMBER(shadfrce_sound_brt_w);
+ DECLARE_WRITE16_MEMBER(shadfrce_irq_ack_w);
+ DECLARE_WRITE16_MEMBER(shadfrce_irq_w);
+ DECLARE_WRITE16_MEMBER(shadfrce_scanline_w);
};
diff --git a/src/mame/includes/shangha3.h b/src/mame/includes/shangha3.h
index 10b0640f390..a559e70427b 100644
--- a/src/mame/includes/shangha3.h
+++ b/src/mame/includes/shangha3.h
@@ -14,6 +14,13 @@ public:
bitmap_ind16 m_rawbitmap;
UINT8 m_drawmode_table[16];
+ DECLARE_READ16_MEMBER(shangha3_prot_r);
+ DECLARE_WRITE16_MEMBER(shangha3_prot_w);
+ DECLARE_READ16_MEMBER(heberpop_gfxrom_r);
+ DECLARE_WRITE16_MEMBER(shangha3_coinctrl_w);
+ DECLARE_WRITE16_MEMBER(heberpop_coinctrl_w);
+ DECLARE_WRITE16_MEMBER(blocken_coinctrl_w);
+ DECLARE_WRITE16_MEMBER(heberpop_sound_command_w);
};
diff --git a/src/mame/includes/shangkid.h b/src/mame/includes/shangkid.h
index e1f4a296c1f..c610bb49be3 100644
--- a/src/mame/includes/shangkid.h
+++ b/src/mame/includes/shangkid.h
@@ -11,6 +11,11 @@ public:
UINT8 *m_videoreg;
int m_gfx_type;
tilemap_t *m_background;
+ DECLARE_WRITE8_MEMBER(shangkid_maincpu_bank_w);
+ DECLARE_WRITE8_MEMBER(shangkid_bbx_enable_w);
+ DECLARE_WRITE8_MEMBER(shangkid_cpu_reset_w);
+ DECLARE_WRITE8_MEMBER(shangkid_sound_enable_w);
+ DECLARE_READ8_MEMBER(shangkid_soundlatch_r);
};
diff --git a/src/mame/includes/shisen.h b/src/mame/includes/shisen.h
index 8ebe400aa79..095f565a5b2 100644
--- a/src/mame/includes/shisen.h
+++ b/src/mame/includes/shisen.h
@@ -8,6 +8,8 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 *m_paletteram;
UINT8 *m_videoram;
+ DECLARE_READ8_MEMBER(sichuan2_dsw1_r);
+ DECLARE_WRITE8_MEMBER(sichuan2_coin_w);
};
diff --git a/src/mame/includes/shootout.h b/src/mame/includes/shootout.h
index 7129583bf2b..88eb9c429a3 100644
--- a/src/mame/includes/shootout.h
+++ b/src/mame/includes/shootout.h
@@ -10,6 +10,10 @@ public:
UINT8 *m_videoram;
UINT8 *m_textram;
int m_bFlicker;
+ DECLARE_WRITE8_MEMBER(shootout_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(sound_cpu_command_w);
+ DECLARE_WRITE8_MEMBER(shootout_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(shootout_coin_counter_w);
};
diff --git a/src/mame/includes/sidearms.h b/src/mame/includes/sidearms.h
index 320965727c9..08f593344ac 100644
--- a/src/mame/includes/sidearms.h
+++ b/src/mame/includes/sidearms.h
@@ -29,6 +29,9 @@ public:
UINT32 m_latch_374;
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_WRITE8_MEMBER(sidearms_bankswitch_w);
+ DECLARE_READ8_MEMBER(turtship_ports_r);
+ DECLARE_WRITE8_MEMBER(whizz_bankswitch_w);
};
/*----------- defined in video/sidearms.c -----------*/
diff --git a/src/mame/includes/sidepckt.h b/src/mame/includes/sidepckt.h
index 0796d2f2f07..0cf0856df0f 100644
--- a/src/mame/includes/sidepckt.h
+++ b/src/mame/includes/sidepckt.h
@@ -15,6 +15,10 @@ public:
int m_current_table;
int m_in_math;
int m_math_param;
+ DECLARE_WRITE8_MEMBER(sound_cpu_command_w);
+ DECLARE_READ8_MEMBER(sidepckt_i8751_r);
+ DECLARE_WRITE8_MEMBER(sidepckt_i8751_w);
+ DECLARE_WRITE8_MEMBER(sidepctj_i8751_w);
};
diff --git a/src/mame/includes/silkroad.h b/src/mame/includes/silkroad.h
index 4f676bbd1d3..673d4912fff 100644
--- a/src/mame/includes/silkroad.h
+++ b/src/mame/includes/silkroad.h
@@ -12,6 +12,8 @@ public:
tilemap_t *m_fg_tilemap;
tilemap_t *m_fg2_tilemap;
tilemap_t *m_fg3_tilemap;
+ DECLARE_WRITE32_MEMBER(paletteram32_xRRRRRGGGGGBBBBB_dword_w);
+ DECLARE_WRITE32_MEMBER(silk_coin_counter_w);
};
diff --git a/src/mame/includes/simpl156.h b/src/mame/includes/simpl156.h
index dbbb7f8db17..d6ae9472efb 100644
--- a/src/mame/includes/simpl156.h
+++ b/src/mame/includes/simpl156.h
@@ -31,6 +31,24 @@ public:
required_device<deco16ic_device> m_deco_tilegen1;
required_device<eeprom_device> m_eeprom;
required_device<okim6295_device> m_okimusic;
+ DECLARE_READ32_MEMBER(simpl156_inputs_read);
+ DECLARE_READ32_MEMBER(simpl156_palette_r);
+ DECLARE_WRITE32_MEMBER(simpl156_palette_w);
+ DECLARE_READ32_MEMBER(simpl156_system_r);
+ DECLARE_WRITE32_MEMBER(simpl156_eeprom_w);
+ DECLARE_READ32_MEMBER(simpl156_spriteram_r);
+ DECLARE_WRITE32_MEMBER(simpl156_spriteram_w);
+ DECLARE_READ32_MEMBER(simpl156_mainram_r);
+ DECLARE_WRITE32_MEMBER(simpl156_mainram_w);
+ DECLARE_READ32_MEMBER(simpl156_pf1_rowscroll_r);
+ DECLARE_WRITE32_MEMBER(simpl156_pf1_rowscroll_w);
+ DECLARE_READ32_MEMBER(simpl156_pf2_rowscroll_r);
+ DECLARE_WRITE32_MEMBER(simpl156_pf2_rowscroll_w);
+ DECLARE_READ32_MEMBER(joemacr_speedup_r);
+ DECLARE_READ32_MEMBER(chainrec_speedup_r);
+ DECLARE_READ32_MEMBER(prtytime_speedup_r);
+ DECLARE_READ32_MEMBER(charlien_speedup_r);
+ DECLARE_READ32_MEMBER(osman_speedup_r);
};
diff --git a/src/mame/includes/simpsons.h b/src/mame/includes/simpsons.h
index 164ba2b1a54..14950803d02 100644
--- a/src/mame/includes/simpsons.h
+++ b/src/mame/includes/simpsons.h
@@ -28,6 +28,8 @@ public:
device_t *m_k052109;
device_t *m_k053246;
device_t *m_k053251;
+ DECLARE_WRITE8_MEMBER(z80_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(z80_arm_nmi_w);
};
/*----------- defined in machine/simpsons.c -----------*/
diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h
index 62086ca9c24..5d9ecb22a95 100644
--- a/src/mame/includes/skydiver.h
+++ b/src/mame/includes/skydiver.h
@@ -29,6 +29,7 @@ public:
UINT8 *m_videoram;
tilemap_t *m_bg_tilemap;
int m_width;
+ DECLARE_WRITE8_MEMBER(skydiver_nmion_w);
};
diff --git a/src/mame/includes/skykid.h b/src/mame/includes/skykid.h
index afa300f7a18..27fe3feb4cf 100644
--- a/src/mame/includes/skykid.h
+++ b/src/mame/includes/skykid.h
@@ -15,6 +15,14 @@ public:
UINT16 m_scroll_y;
UINT8 m_main_irq_mask;
UINT8 m_mcu_irq_mask;
+ DECLARE_WRITE8_MEMBER(inputport_select_w);
+ DECLARE_READ8_MEMBER(inputport_r);
+ DECLARE_WRITE8_MEMBER(skykid_led_w);
+ DECLARE_WRITE8_MEMBER(skykid_subreset_w);
+ DECLARE_WRITE8_MEMBER(skykid_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(skykid_irq_1_ctrl_w);
+ DECLARE_WRITE8_MEMBER(skykid_irq_2_ctrl_w);
+ DECLARE_READ8_MEMBER(readFF);
};
diff --git a/src/mame/includes/skyraid.h b/src/mame/includes/skyraid.h
index 77457d61490..abf48cb9d0f 100644
--- a/src/mame/includes/skyraid.h
+++ b/src/mame/includes/skyraid.h
@@ -16,6 +16,10 @@ public:
UINT8* m_obj_ram;
bitmap_ind16 m_helper;
+ DECLARE_READ8_MEMBER(skyraid_port_0_r);
+ DECLARE_WRITE8_MEMBER(skyraid_range_w);
+ DECLARE_WRITE8_MEMBER(skyraid_offset_w);
+ DECLARE_WRITE8_MEMBER(skyraid_scroll_w);
};
diff --git a/src/mame/includes/slapfght.h b/src/mame/includes/slapfght.h
index bbe7320bc6a..5de267f83dd 100644
--- a/src/mame/includes/slapfght.h
+++ b/src/mame/includes/slapfght.h
@@ -56,6 +56,8 @@ public:
tilemap_t *m_fix_tilemap;
UINT8 m_irq_mask;
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_READ8_MEMBER(tigerh_status_r);
+ DECLARE_READ8_MEMBER(gtstarb1_port_0_read);
};
diff --git a/src/mame/includes/slapshot.h b/src/mame/includes/slapshot.h
index 1477d1bf8f3..e028fc53a56 100644
--- a/src/mame/includes/slapshot.h
+++ b/src/mame/includes/slapshot.h
@@ -52,6 +52,14 @@ public:
device_t *m_tc0480scp;
device_t *m_tc0360pri;
device_t *m_tc0640fio;
+ DECLARE_READ16_MEMBER(color_ram_word_r);
+ DECLARE_WRITE16_MEMBER(color_ram_word_w);
+ DECLARE_READ16_MEMBER(slapshot_service_input_r);
+ DECLARE_READ16_MEMBER(opwolf3_adc_r);
+ DECLARE_WRITE16_MEMBER(opwolf3_adc_req_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(slapshot_msb_sound_w);
+ DECLARE_READ16_MEMBER(slapshot_msb_sound_r);
};
diff --git a/src/mame/includes/snk.h b/src/mame/includes/snk.h
index d45c8d3ef1f..fc92d23b8fa 100644
--- a/src/mame/includes/snk.h
+++ b/src/mame/includes/snk.h
@@ -49,6 +49,54 @@ public:
int m_tc16_posx;
int m_tc32_posy;
int m_tc32_posx;
+ DECLARE_READ8_MEMBER(snk_cpuA_nmi_trigger_r);
+ DECLARE_WRITE8_MEMBER(snk_cpuA_nmi_ack_w);
+ DECLARE_READ8_MEMBER(snk_cpuB_nmi_trigger_r);
+ DECLARE_WRITE8_MEMBER(snk_cpuB_nmi_ack_w);
+ DECLARE_WRITE8_MEMBER(marvins_soundlatch_w);
+ DECLARE_READ8_MEMBER(marvins_soundlatch_r);
+ DECLARE_READ8_MEMBER(marvins_sound_nmi_ack_r);
+ DECLARE_WRITE8_MEMBER(sgladiat_soundlatch_w);
+ DECLARE_READ8_MEMBER(sgladiat_soundlatch_r);
+ DECLARE_READ8_MEMBER(sgladiat_sound_nmi_ack_r);
+ DECLARE_READ8_MEMBER(sgladiat_sound_irq_ack_r);
+ DECLARE_WRITE8_MEMBER(snk_soundlatch_w);
+ DECLARE_READ8_MEMBER(snk_sound_status_r);
+ DECLARE_WRITE8_MEMBER(snk_sound_status_w);
+ DECLARE_READ8_MEMBER(tnk3_cmdirq_ack_r);
+ DECLARE_READ8_MEMBER(tnk3_ymirq_ack_r);
+ DECLARE_READ8_MEMBER(tnk3_busy_clear_r);
+ DECLARE_WRITE8_MEMBER(hardflags_scrollx_w);
+ DECLARE_WRITE8_MEMBER(hardflags_scrolly_w);
+ DECLARE_WRITE8_MEMBER(hardflags_scroll_msb_w);
+ DECLARE_READ8_MEMBER(hardflags1_r);
+ DECLARE_READ8_MEMBER(hardflags2_r);
+ DECLARE_READ8_MEMBER(hardflags3_r);
+ DECLARE_READ8_MEMBER(hardflags4_r);
+ DECLARE_READ8_MEMBER(hardflags5_r);
+ DECLARE_READ8_MEMBER(hardflags6_r);
+ DECLARE_READ8_MEMBER(hardflags7_r);
+ DECLARE_WRITE8_MEMBER(turbocheck16_1_w);
+ DECLARE_WRITE8_MEMBER(turbocheck16_2_w);
+ DECLARE_WRITE8_MEMBER(turbocheck32_1_w);
+ DECLARE_WRITE8_MEMBER(turbocheck32_2_w);
+ DECLARE_WRITE8_MEMBER(turbocheck_msb_w);
+ DECLARE_READ8_MEMBER(turbocheck16_1_r);
+ DECLARE_READ8_MEMBER(turbocheck16_2_r);
+ DECLARE_READ8_MEMBER(turbocheck16_3_r);
+ DECLARE_READ8_MEMBER(turbocheck16_4_r);
+ DECLARE_READ8_MEMBER(turbocheck16_5_r);
+ DECLARE_READ8_MEMBER(turbocheck16_6_r);
+ DECLARE_READ8_MEMBER(turbocheck16_7_r);
+ DECLARE_READ8_MEMBER(turbocheck16_8_r);
+ DECLARE_READ8_MEMBER(turbocheck32_1_r);
+ DECLARE_READ8_MEMBER(turbocheck32_2_r);
+ DECLARE_READ8_MEMBER(turbocheck32_3_r);
+ DECLARE_READ8_MEMBER(turbocheck32_4_r);
+ DECLARE_WRITE8_MEMBER(athena_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(ikari_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(tdfever_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(countryc_trackball_w);
};
diff --git a/src/mame/includes/snk68.h b/src/mame/includes/snk68.h
index 4fa7b61bcb5..1d0aaa94a84 100644
--- a/src/mame/includes/snk68.h
+++ b/src/mame/includes/snk68.h
@@ -15,6 +15,16 @@ public:
tilemap_t *m_fg_tilemap;
int m_flipscreen;
UINT32 m_fg_tile_offset;
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(sound_status_w);
+ DECLARE_READ16_MEMBER(control_1_r);
+ DECLARE_READ16_MEMBER(control_2_r);
+ DECLARE_READ16_MEMBER(rotary_1_r);
+ DECLARE_READ16_MEMBER(rotary_2_r);
+ DECLARE_READ16_MEMBER(rotary_lsb_r);
+ DECLARE_READ16_MEMBER(protcontrols_r);
+ DECLARE_WRITE16_MEMBER(protection_w);
+ DECLARE_WRITE16_MEMBER(sound_w);
};
diff --git a/src/mame/includes/snookr10.h b/src/mame/includes/snookr10.h
index d12fd8ea9e8..459e9b516c1 100644
--- a/src/mame/includes/snookr10.h
+++ b/src/mame/includes/snookr10.h
@@ -15,6 +15,9 @@ public:
UINT8 *m_videoram;
UINT8 *m_colorram;
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(dsw_port_1_r);
+ DECLARE_WRITE8_MEMBER(output_port_0_w);
+ DECLARE_WRITE8_MEMBER(output_port_1_w);
};
diff --git a/src/mame/includes/snowbros.h b/src/mame/includes/snowbros.h
index cd7e6f05602..67b77361fc1 100644
--- a/src/mame/includes/snowbros.h
+++ b/src/mame/includes/snowbros.h
@@ -17,5 +17,20 @@ public:
size_t m_spriteram_size;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE16_MEMBER(snowbros_flipscreen_w);
+ DECLARE_WRITE16_MEMBER(snowbros_irq4_ack_w);
+ DECLARE_WRITE16_MEMBER(snowbros_irq3_ack_w);
+ DECLARE_WRITE16_MEMBER(snowbros_irq2_ack_w);
+ DECLARE_READ16_MEMBER(snowbros_68000_sound_r);
+ DECLARE_WRITE16_MEMBER(snowbros_68000_sound_w);
+ DECLARE_WRITE16_MEMBER(semicom_soundcmd_w);
+ DECLARE_READ8_MEMBER(prot_io_r);
+ DECLARE_WRITE8_MEMBER(prot_io_w);
+ DECLARE_WRITE16_MEMBER(twinadv_68000_sound_w);
+ DECLARE_READ16_MEMBER(sb3_sound_r);
+ DECLARE_READ16_MEMBER(moremorp_0a_read);
+ DECLARE_READ16_MEMBER(_4in1_02_read);
+ DECLARE_READ16_MEMBER(_3in1_read);
+ DECLARE_READ16_MEMBER(cookbib3_read);
};
diff --git a/src/mame/includes/solomon.h b/src/mame/includes/solomon.h
index 1647ad73b9c..cd1dc2f2263 100644
--- a/src/mame/includes/solomon.h
+++ b/src/mame/includes/solomon.h
@@ -15,6 +15,9 @@ public:
tilemap_t *m_fg_tilemap;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(solomon_sh_command_w);
+ DECLARE_READ8_MEMBER(solomon_0xe603_r);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/sonson.h b/src/mame/includes/sonson.h
index 53b1c2325b8..b7646721077 100644
--- a/src/mame/includes/sonson.h
+++ b/src/mame/includes/sonson.h
@@ -25,6 +25,9 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE8_MEMBER(sonson_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sonson_coin1_counter_w);
+ DECLARE_WRITE8_MEMBER(sonson_coin2_counter_w);
};
diff --git a/src/mame/includes/spbactn.h b/src/mame/includes/spbactn.h
index 6c3539fc46a..d9a5e13d1e7 100644
--- a/src/mame/includes/spbactn.h
+++ b/src/mame/includes/spbactn.h
@@ -10,6 +10,7 @@ public:
bitmap_ind16 m_tile_bitmap_bg;
bitmap_ind16 m_tile_bitmap_fg;
+ DECLARE_WRITE16_MEMBER(soundcommand_w);
};
diff --git a/src/mame/includes/spcforce.h b/src/mame/includes/spcforce.h
index 672449a0256..b3eb22aea95 100644
--- a/src/mame/includes/spcforce.h
+++ b/src/mame/includes/spcforce.h
@@ -12,6 +12,12 @@ public:
int m_sn76496_select;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(spcforce_SN76496_latch_w);
+ DECLARE_READ8_MEMBER(spcforce_SN76496_select_r);
+ DECLARE_WRITE8_MEMBER(spcforce_SN76496_select_w);
+ DECLARE_READ8_MEMBER(spcforce_t0_r);
+ DECLARE_WRITE8_MEMBER(spcforce_soundtrigger_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
};
diff --git a/src/mame/includes/spdodgeb.h b/src/mame/includes/spdodgeb.h
index 335f7f3f126..bd34c1e2251 100644
--- a/src/mame/includes/spdodgeb.h
+++ b/src/mame/includes/spdodgeb.h
@@ -33,6 +33,11 @@ public:
size_t m_spriteram_size;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(spd_adpcm_w);
+ DECLARE_READ8_MEMBER(mcu63701_r);
+ DECLARE_WRITE8_MEMBER(mcu63701_w);
+ DECLARE_READ8_MEMBER(port_0_r);
};
diff --git a/src/mame/includes/speedatk.h b/src/mame/includes/speedatk.h
index a34eb2d03a5..1cedd7243ba 100644
--- a/src/mame/includes/speedatk.h
+++ b/src/mame/includes/speedatk.h
@@ -14,6 +14,10 @@ public:
UINT8 m_km_status;
UINT8 m_coin_settings;
UINT8 m_coin_impulse;
+ DECLARE_READ8_MEMBER(key_matrix_r);
+ DECLARE_WRITE8_MEMBER(key_matrix_w);
+ DECLARE_READ8_MEMBER(key_matrix_status_r);
+ DECLARE_WRITE8_MEMBER(key_matrix_status_w);
};
diff --git a/src/mame/includes/speedbal.h b/src/mame/includes/speedbal.h
index 05903f0642f..787c1a05174 100644
--- a/src/mame/includes/speedbal.h
+++ b/src/mame/includes/speedbal.h
@@ -10,6 +10,7 @@ public:
tilemap_t *m_fg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(speedbal_coincounter_w);
};
diff --git a/src/mame/includes/speedspn.h b/src/mame/includes/speedspn.h
index 604c4a41e56..b21826dc6f7 100644
--- a/src/mame/includes/speedspn.h
+++ b/src/mame/includes/speedspn.h
@@ -9,6 +9,9 @@ public:
UINT8 m_display_disable;
int m_bank_vidram;
UINT8* m_vidram;
+ DECLARE_READ8_MEMBER(speedspn_irq_ack_r);
+ DECLARE_WRITE8_MEMBER(speedspn_banked_rom_change);
+ DECLARE_WRITE8_MEMBER(speedspn_sound_w);
};
diff --git a/src/mame/includes/splash.h b/src/mame/includes/splash.h
index 0d4260f624a..15d243a7ced 100644
--- a/src/mame/includes/splash.h
+++ b/src/mame/includes/splash.h
@@ -28,6 +28,22 @@ public:
int m_snd_interrupt_enable2;
UINT16 *m_protdata;
+ DECLARE_WRITE16_MEMBER(splash_sh_irqtrigger_w);
+ DECLARE_WRITE16_MEMBER(roldf_sh_irqtrigger_w);
+ DECLARE_WRITE16_MEMBER(splash_coin_w);
+ DECLARE_WRITE8_MEMBER(splash_adpcm_data_w);
+ DECLARE_READ16_MEMBER(roldfrog_bombs_r);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
+ DECLARE_WRITE8_MEMBER(roldfrog_vblank_ack_w);
+ DECLARE_READ8_MEMBER(roldfrog_unk_r);
+ DECLARE_READ16_MEMBER(spr_read);
+ DECLARE_WRITE16_MEMBER(spr_write);
+ DECLARE_WRITE16_MEMBER(funystrp_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(int_source_r);
+ DECLARE_WRITE8_MEMBER(msm1_data_w);
+ DECLARE_WRITE8_MEMBER(msm1_interrupt_w);
+ DECLARE_WRITE8_MEMBER(msm2_interrupt_w);
+ DECLARE_WRITE8_MEMBER(msm2_data_w);
};
diff --git a/src/mame/includes/sprcros2.h b/src/mame/includes/sprcros2.h
index 64675755c7f..0b90bfcafc1 100644
--- a/src/mame/includes/sprcros2.h
+++ b/src/mame/includes/sprcros2.h
@@ -18,6 +18,8 @@ public:
required_device<cpu_device> m_master;
required_device<cpu_device> m_slave;
+ DECLARE_WRITE8_MEMBER(sprcros2_m_port7_w);
+ DECLARE_WRITE8_MEMBER(sprcros2_s_port3_w);
};
diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h
index 8cd368daa79..f5dcdfd631f 100644
--- a/src/mame/includes/sprint2.h
+++ b/src/mame/includes/sprint2.h
@@ -36,6 +36,18 @@ public:
tilemap_t* m_bg_tilemap;
bitmap_ind16 m_helper;
int m_collision[2];
+ DECLARE_READ8_MEMBER(sprint2_wram_r);
+ DECLARE_READ8_MEMBER(sprint2_dip_r);
+ DECLARE_READ8_MEMBER(sprint2_input_A_r);
+ DECLARE_READ8_MEMBER(sprint2_input_B_r);
+ DECLARE_READ8_MEMBER(sprint2_sync_r);
+ DECLARE_READ8_MEMBER(sprint2_steering1_r);
+ DECLARE_READ8_MEMBER(sprint2_steering2_r);
+ DECLARE_WRITE8_MEMBER(sprint2_steering_reset1_w);
+ DECLARE_WRITE8_MEMBER(sprint2_steering_reset2_w);
+ DECLARE_WRITE8_MEMBER(sprint2_wram_w);
+ DECLARE_WRITE8_MEMBER(sprint2_lamp1_w);
+ DECLARE_WRITE8_MEMBER(sprint2_lamp2_w);
};
diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h
index 3f35b963772..1622dd4bb48 100644
--- a/src/mame/includes/sprint4.h
+++ b/src/mame/includes/sprint4.h
@@ -13,6 +13,16 @@ public:
int m_collision[4];
tilemap_t* m_playfield;
bitmap_ind16 m_helper;
+ DECLARE_READ8_MEMBER(sprint4_wram_r);
+ DECLARE_READ8_MEMBER(sprint4_analog_r);
+ DECLARE_READ8_MEMBER(sprint4_coin_r);
+ DECLARE_READ8_MEMBER(sprint4_collision_r);
+ DECLARE_READ8_MEMBER(sprint4_options_r);
+ DECLARE_WRITE8_MEMBER(sprint4_wram_w);
+ DECLARE_WRITE8_MEMBER(sprint4_collision_reset_w);
+ DECLARE_WRITE8_MEMBER(sprint4_da_latch_w);
+ DECLARE_WRITE8_MEMBER(sprint4_lamp_w);
+ DECLARE_WRITE8_MEMBER(sprint4_lockout_w);
};
diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h
index 5dbf429b2d5..4f388ed8136 100644
--- a/src/mame/includes/sprint8.h
+++ b/src/mame/includes/sprint8.h
@@ -20,6 +20,10 @@ public:
tilemap_t* m_tilemap2;
bitmap_ind16 m_helper1;
bitmap_ind16 m_helper2;
+ DECLARE_READ8_MEMBER(sprint8_collision_r);
+ DECLARE_READ8_MEMBER(sprint8_input_r);
+ DECLARE_WRITE8_MEMBER(sprint8_lockout_w);
+ DECLARE_WRITE8_MEMBER(sprint8_int_reset_w);
};
diff --git a/src/mame/includes/spy.h b/src/mame/includes/spy.h
index 2d298edcdc0..68e96a14307 100644
--- a/src/mame/includes/spy.h
+++ b/src/mame/includes/spy.h
@@ -32,6 +32,14 @@ public:
device_t *m_k007232_2;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_READ8_MEMBER(spy_bankedram1_r);
+ DECLARE_WRITE8_MEMBER(spy_bankedram1_w);
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_WRITE8_MEMBER(spy_3f90_w);
+ DECLARE_WRITE8_MEMBER(spy_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sound_bank_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
diff --git a/src/mame/includes/srmp2.h b/src/mame/includes/srmp2.h
index 8bc2e55fc90..80a2f3bdabb 100644
--- a/src/mame/includes/srmp2.h
+++ b/src/mame/includes/srmp2.h
@@ -23,6 +23,22 @@ public:
int m_port_select;
iox_t m_iox;
+ DECLARE_WRITE16_MEMBER(srmp2_flags_w);
+ DECLARE_WRITE16_MEMBER(mjyuugi_flags_w);
+ DECLARE_WRITE16_MEMBER(mjyuugi_adpcm_bank_w);
+ DECLARE_READ8_MEMBER(vox_status_r);
+ DECLARE_READ8_MEMBER(iox_mux_r);
+ DECLARE_READ8_MEMBER(iox_status_r);
+ DECLARE_WRITE8_MEMBER(iox_command_w);
+ DECLARE_WRITE8_MEMBER(iox_data_w);
+ DECLARE_WRITE8_MEMBER(srmp3_rombank_w);
+ DECLARE_WRITE8_MEMBER(srmp2_irq2_ack_w);
+ DECLARE_WRITE8_MEMBER(srmp2_irq4_ack_w);
+ DECLARE_READ8_MEMBER(mjyuugi_irq2_ack_r);
+ DECLARE_READ8_MEMBER(mjyuugi_irq4_ack_r);
+ DECLARE_WRITE8_MEMBER(srmp3_flags_w);
+ DECLARE_WRITE8_MEMBER(srmp3_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(rmgoldyh_rombank_w);
};
diff --git a/src/mame/includes/srumbler.h b/src/mame/includes/srumbler.h
index 3addf7a2455..b3a1c06702d 100644
--- a/src/mame/includes/srumbler.h
+++ b/src/mame/includes/srumbler.h
@@ -17,6 +17,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<buffered_spriteram8_device> m_spriteram;
+ DECLARE_WRITE8_MEMBER(srumbler_bankswitch_w);
};
diff --git a/src/mame/includes/sshangha.h b/src/mame/includes/sshangha.h
index adfbbca7478..fac6a684cf1 100644
--- a/src/mame/includes/sshangha.h
+++ b/src/mame/includes/sshangha.h
@@ -25,6 +25,12 @@ public:
required_device<deco16ic_device> m_deco_tilegen1;
required_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_spriteram2;
+ DECLARE_WRITE16_MEMBER(sshangha_protection16_w);
+ DECLARE_READ16_MEMBER(sshangha_protection16_r);
+ DECLARE_READ16_MEMBER(sshanghb_protection16_r);
+ DECLARE_READ16_MEMBER(deco_71_r);
+ DECLARE_READ8_MEMBER(sshangha_sound_shared_r);
+ DECLARE_WRITE8_MEMBER(sshangha_sound_shared_w);
};
diff --git a/src/mame/includes/sslam.h b/src/mame/includes/sslam.h
index 4bb801ce3ef..809e11ef6cb 100644
--- a/src/mame/includes/sslam.h
+++ b/src/mame/includes/sslam.h
@@ -27,6 +27,10 @@ public:
tilemap_t *m_md_tilemap;
int m_sprites_x_offset;
+ DECLARE_WRITE16_MEMBER(powerbls_sound_w);
+ DECLARE_READ8_MEMBER(playmark_snd_command_r);
+ DECLARE_WRITE8_MEMBER(playmark_oki_w);
+ DECLARE_WRITE8_MEMBER(playmark_snd_control_w);
};
diff --git a/src/mame/includes/ssozumo.h b/src/mame/includes/ssozumo.h
index fe954c9cd71..b4db1d46a2b 100644
--- a/src/mame/includes/ssozumo.h
+++ b/src/mame/includes/ssozumo.h
@@ -16,6 +16,8 @@ public:
tilemap_t *m_fg_tilemap;
UINT8 m_sound_nmi_mask;
+ DECLARE_WRITE8_MEMBER(ssozumo_sh_command_w);
+ DECLARE_WRITE8_MEMBER(sound_nmi_mask_w);
};
diff --git a/src/mame/includes/sspeedr.h b/src/mame/includes/sspeedr.h
index c1dabc59166..9f6fdb046a4 100644
--- a/src/mame/includes/sspeedr.h
+++ b/src/mame/includes/sspeedr.h
@@ -16,6 +16,11 @@ public:
unsigned m_track_horz;
unsigned m_track_vert[2];
unsigned m_track_ice;
+ DECLARE_WRITE8_MEMBER(sspeedr_int_ack_w);
+ DECLARE_WRITE8_MEMBER(sspeedr_lamp_w);
+ DECLARE_WRITE8_MEMBER(sspeedr_time_w);
+ DECLARE_WRITE8_MEMBER(sspeedr_score_w);
+ DECLARE_WRITE8_MEMBER(sspeedr_sound_w);
};
diff --git a/src/mame/includes/ssrj.h b/src/mame/includes/ssrj.h
index babd922ce15..cb3f6154c00 100644
--- a/src/mame/includes/ssrj.h
+++ b/src/mame/includes/ssrj.h
@@ -14,6 +14,7 @@ public:
UINT8 *m_vram4;
UINT8 *m_scrollram;
UINT8 *m_buffer_spriteram;
+ DECLARE_READ8_MEMBER(ssrj_wheel_r);
};
diff --git a/src/mame/includes/ssv.h b/src/mame/includes/ssv.h
index ce31a31bc64..300e13edf6b 100644
--- a/src/mame/includes/ssv.h
+++ b/src/mame/includes/ssv.h
@@ -49,6 +49,41 @@ public:
UINT8 m_trackball_select;
UINT8 m_gfxrom_select;
+ DECLARE_WRITE16_MEMBER(ssv_irq_ack_w);
+ DECLARE_WRITE16_MEMBER(ssv_irq_enable_w);
+ DECLARE_WRITE16_MEMBER(ssv_lockout_w);
+ DECLARE_WRITE16_MEMBER(ssv_lockout_inv_w);
+ DECLARE_READ16_MEMBER(dsp_dr_r);
+ DECLARE_WRITE16_MEMBER(dsp_dr_w);
+ DECLARE_READ16_MEMBER(dsp_r);
+ DECLARE_WRITE16_MEMBER(dsp_w);
+ DECLARE_READ16_MEMBER(fake_r);
+ DECLARE_READ16_MEMBER(drifto94_rand_r);
+ DECLARE_READ16_MEMBER(gdfs_gfxram_r);
+ DECLARE_WRITE16_MEMBER(gdfs_gfxram_w);
+ DECLARE_READ16_MEMBER(gdfs_blitram_r);
+ DECLARE_WRITE16_MEMBER(gdfs_blitram_w);
+ DECLARE_READ16_MEMBER(hypreact_input_r);
+ DECLARE_READ16_MEMBER(ssv_mainram_r);
+ DECLARE_WRITE16_MEMBER(ssv_mainram_w);
+ DECLARE_READ16_MEMBER(srmp4_input_r);
+ DECLARE_READ16_MEMBER(srmp7_irqv_r);
+ DECLARE_WRITE16_MEMBER(srmp7_sound_bank_w);
+ DECLARE_READ16_MEMBER(srmp7_input_r);
+ DECLARE_READ16_MEMBER(sxyreact_ballswitch_r);
+ DECLARE_READ16_MEMBER(sxyreact_dial_r);
+ DECLARE_WRITE16_MEMBER(sxyreact_dial_w);
+ DECLARE_WRITE16_MEMBER(sxyreact_motor_w);
+ DECLARE_READ32_MEMBER(latch32_r);
+ DECLARE_WRITE32_MEMBER(latch32_w);
+ DECLARE_READ16_MEMBER(latch16_r);
+ DECLARE_WRITE16_MEMBER(latch16_w);
+ DECLARE_READ16_MEMBER(eaglshot_gfxrom_r);
+ DECLARE_WRITE16_MEMBER(eaglshot_gfxrom_w);
+ DECLARE_READ16_MEMBER(eaglshot_trackball_r);
+ DECLARE_WRITE16_MEMBER(eaglshot_trackball_w);
+ DECLARE_READ16_MEMBER(eaglshot_gfxram_r);
+ DECLARE_WRITE16_MEMBER(eaglshot_gfxram_w);
};
/*----------- defined in video/ssv.c -----------*/
diff --git a/src/mame/includes/st0016.h b/src/mame/includes/st0016.h
index b969295758f..c1a6fde067f 100644
--- a/src/mame/includes/st0016.h
+++ b/src/mame/includes/st0016.h
@@ -9,6 +9,12 @@ public:
int mux_port;
required_device<cpu_device> m_maincpu;
+ DECLARE_READ8_MEMBER(mux_r);
+ DECLARE_WRITE8_MEMBER(mux_select_w);
+ DECLARE_READ32_MEMBER(latch32_r);
+ DECLARE_WRITE32_MEMBER(latch32_w);
+ DECLARE_READ8_MEMBER(latch8_r);
+ DECLARE_WRITE8_MEMBER(latch8_w);
};
#define ISMACS (st0016_game&0x80)
diff --git a/src/mame/includes/stactics.h b/src/mame/includes/stactics.h
index 3fc8a3990af..6ce55da9dc4 100644
--- a/src/mame/includes/stactics.h
+++ b/src/mame/includes/stactics.h
@@ -36,6 +36,9 @@ public:
UINT16 m_beam_state;
UINT16 m_old_beam_state;
UINT16 m_beam_states_per_frame;
+ DECLARE_READ8_MEMBER(vert_pos_r);
+ DECLARE_READ8_MEMBER(horiz_pos_r);
+ DECLARE_WRITE8_MEMBER(stactics_coin_lockout_w);
};
diff --git a/src/mame/includes/stadhero.h b/src/mame/includes/stadhero.h
index 374cfd53be6..e822da07f46 100644
--- a/src/mame/includes/stadhero.h
+++ b/src/mame/includes/stadhero.h
@@ -8,6 +8,8 @@ public:
tilemap_t *m_pf1_tilemap;
int m_flipscreen;
UINT16 *m_spriteram;
+ DECLARE_READ16_MEMBER(stadhero_control_r);
+ DECLARE_WRITE16_MEMBER(stadhero_control_w);
};
diff --git a/src/mame/includes/starfire.h b/src/mame/includes/starfire.h
index 705b34c2789..7a2d5774315 100644
--- a/src/mame/includes/starfire.h
+++ b/src/mame/includes/starfire.h
@@ -16,7 +16,7 @@ public:
starfire_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
- read8_space_func m_input_read;
+ read8_delegate m_input_read;
UINT8 m_fireone_select;
@@ -30,6 +30,10 @@ public:
emu_timer* m_scanline_timer;
bitmap_rgb32 m_starfire_screen;
+ DECLARE_WRITE8_MEMBER(starfire_scratch_w);
+ DECLARE_READ8_MEMBER(starfire_scratch_r);
+ DECLARE_READ8_MEMBER(starfire_input_r);
+ DECLARE_READ8_MEMBER(fireone_input_r);
};
/*----------- defined in video/starfire.c -----------*/
diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h
index fc28aef92cf..c291179d8c5 100644
--- a/src/mame/includes/starshp1.h
+++ b/src/mame/includes/starshp1.h
@@ -60,6 +60,9 @@ public:
UINT16 *m_LSFR;
bitmap_ind16 m_helper;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(starshp1_collision_reset_w);
+ DECLARE_WRITE8_MEMBER(starshp1_analog_in_w);
+ DECLARE_WRITE8_MEMBER(starshp1_misc_w);
};
diff --git a/src/mame/includes/starwars.h b/src/mame/includes/starwars.h
index f43ef0f938d..78e1a8af7b9 100644
--- a/src/mame/includes/starwars.h
+++ b/src/mame/includes/starwars.h
@@ -39,6 +39,9 @@ public:
INT16 m_B;
INT16 m_C;
INT32 m_ACC;
+ DECLARE_WRITE8_MEMBER(irq_ack_w);
+ DECLARE_READ8_MEMBER(esb_slapstic_r);
+ DECLARE_WRITE8_MEMBER(esb_slapstic_w);
};
diff --git a/src/mame/includes/strnskil.h b/src/mame/includes/strnskil.h
index 82903827495..d2f1c9c20e2 100644
--- a/src/mame/includes/strnskil.h
+++ b/src/mame/includes/strnskil.h
@@ -17,6 +17,10 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
+ DECLARE_READ8_MEMBER(strnskil_d800_r);
+ DECLARE_READ8_MEMBER(pettanp_protection_r);
+ DECLARE_READ8_MEMBER(banbam_protection_r);
+ DECLARE_WRITE8_MEMBER(protection_w);
};
diff --git a/src/mame/includes/suna16.h b/src/mame/includes/suna16.h
index 04e826ee102..6deaeed9c2a 100644
--- a/src/mame/includes/suna16.h
+++ b/src/mame/includes/suna16.h
@@ -13,6 +13,15 @@ public:
int m_color_bank;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE16_MEMBER(suna16_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(bssoccer_leds_w);
+ DECLARE_WRITE16_MEMBER(uballoon_leds_w);
+ DECLARE_WRITE16_MEMBER(bestbest_coin_w);
+ DECLARE_READ16_MEMBER(bestbest_prot_r);
+ DECLARE_WRITE16_MEMBER(bestbest_prot_w);
+ DECLARE_WRITE8_MEMBER(bssoccer_pcm_1_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(bssoccer_pcm_2_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(uballoon_pcm_1_bankswitch_w);
};
diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h
index 645f75bcf69..17f6863e1f7 100644
--- a/src/mame/includes/suna8.h
+++ b/src/mame/includes/suna8.h
@@ -37,6 +37,40 @@ public:
int m_sample;
required_device<cpu_device> m_maincpu;
+ DECLARE_READ8_MEMBER(hardhead_protection_r);
+ DECLARE_WRITE8_MEMBER(hardhead_protection_w);
+ DECLARE_READ8_MEMBER(hardhead_ip_r);
+ DECLARE_WRITE8_MEMBER(hardhead_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(hardhead_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(rranger_bankswitch_w);
+ DECLARE_READ8_MEMBER(rranger_soundstatus_r);
+ DECLARE_WRITE8_MEMBER(sranger_prot_w);
+ DECLARE_READ8_MEMBER(brickzn_c140_r);
+ DECLARE_WRITE8_MEMBER(brickzn_palettebank_w);
+ DECLARE_WRITE8_MEMBER(brickzn_spritebank_w);
+ DECLARE_WRITE8_MEMBER(brickzn_unknown_w);
+ DECLARE_WRITE8_MEMBER(brickzn_rombank_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_nmi_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_leds_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_spritebank_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_rombank_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_spritebank_0_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_spritebank_1_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_rambank_0_w);
+ DECLARE_WRITE8_MEMBER(hardhea2_rambank_1_w);
+ DECLARE_WRITE8_MEMBER(starfigh_spritebank_latch_w);
+ DECLARE_WRITE8_MEMBER(starfigh_spritebank_w);
+ DECLARE_WRITE8_MEMBER(sparkman_cmd_prot_w);
+ DECLARE_WRITE8_MEMBER(suna8_wram_w);
+ DECLARE_WRITE8_MEMBER(sparkman_flipscreen_w);
+ DECLARE_WRITE8_MEMBER(sparkman_leds_w);
+ DECLARE_WRITE8_MEMBER(sparkman_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(sparkman_spritebank_w);
+ DECLARE_WRITE8_MEMBER(sparkman_rombank_w);
+ DECLARE_READ8_MEMBER(sparkman_c0a3_r);
+ DECLARE_WRITE8_MEMBER(sparkman_en_trash_w);
+ DECLARE_WRITE8_MEMBER(brickzn_pcm_w);
};
diff --git a/src/mame/includes/supbtime.h b/src/mame/includes/supbtime.h
index 41703142e5f..381a7170dfd 100644
--- a/src/mame/includes/supbtime.h
+++ b/src/mame/includes/supbtime.h
@@ -23,6 +23,8 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_deco_tilegen1;
+ DECLARE_READ16_MEMBER(supbtime_controls_r);
+ DECLARE_WRITE16_MEMBER(sound_w);
};
diff --git a/src/mame/includes/superchs.h b/src/mame/includes/superchs.h
index b8586dd253e..5f3547929b7 100644
--- a/src/mame/includes/superchs.h
+++ b/src/mame/includes/superchs.h
@@ -22,6 +22,16 @@ public:
UINT32 m_mem[2];
UINT32 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_READ16_MEMBER(shared_ram_r);
+ DECLARE_WRITE16_MEMBER(shared_ram_w);
+ DECLARE_WRITE32_MEMBER(cpua_ctrl_w);
+ DECLARE_WRITE32_MEMBER(superchs_palette_w);
+ DECLARE_READ32_MEMBER(superchs_input_r);
+ DECLARE_WRITE32_MEMBER(superchs_input_w);
+ DECLARE_READ32_MEMBER(superchs_stick_r);
+ DECLARE_WRITE32_MEMBER(superchs_stick_w);
+ DECLARE_READ32_MEMBER(main_cycle_r);
+ DECLARE_READ16_MEMBER(sub_cycle_r);
};
diff --git a/src/mame/includes/superqix.h b/src/mame/includes/superqix.h
index acbd3b67203..571e43d5f8a 100644
--- a/src/mame/includes/superqix.h
+++ b/src/mame/includes/superqix.h
@@ -35,6 +35,24 @@ public:
UINT8 m_nmi_mask;
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE8_MEMBER(pbillian_sample_trigger_w);
+ DECLARE_READ8_MEMBER(mcu_acknowledge_r);
+ DECLARE_WRITE8_MEMBER(bootleg_mcu_p1_w);
+ DECLARE_WRITE8_MEMBER(mcu_p3_w);
+ DECLARE_READ8_MEMBER(bootleg_mcu_p3_r);
+ DECLARE_READ8_MEMBER(sqixu_mcu_p0_r);
+ DECLARE_WRITE8_MEMBER(sqixu_mcu_p2_w);
+ DECLARE_READ8_MEMBER(sqixu_mcu_p3_r);
+ DECLARE_READ8_MEMBER(nmi_ack_r);
+ DECLARE_WRITE8_MEMBER(bootleg_flipscreen_w);
+ DECLARE_READ8_MEMBER(hotsmash_68705_portA_r);
+ DECLARE_WRITE8_MEMBER(hotsmash_68705_portB_w);
+ DECLARE_READ8_MEMBER(hotsmash_68705_portC_r);
+ DECLARE_WRITE8_MEMBER(hotsmash_68705_portC_w);
+ DECLARE_WRITE8_MEMBER(hotsmash_z80_mcu_w);
+ DECLARE_READ8_MEMBER(hotsmash_from_mcu_r);
+ DECLARE_WRITE8_MEMBER(pbillian_z80_mcu_w);
+ DECLARE_READ8_MEMBER(pbillian_from_mcu_r);
};
diff --git a/src/mame/includes/suprloco.h b/src/mame/includes/suprloco.h
index 1130e48e055..c8a0ec49f12 100644
--- a/src/mame/includes/suprloco.h
+++ b/src/mame/includes/suprloco.h
@@ -10,6 +10,7 @@ public:
int m_control;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(suprloco_soundport_w);
};
diff --git a/src/mame/includes/suprnova.h b/src/mame/includes/suprnova.h
index 95b8bb6a715..904681cf639 100644
--- a/src/mame/includes/suprnova.h
+++ b/src/mame/includes/suprnova.h
@@ -69,6 +69,26 @@ public:
required_device<cpu_device> m_maincpu;
required_shared_ptr<UINT32> m_spriteram;
+ DECLARE_WRITE32_MEMBER(skns_hit_w);
+ DECLARE_WRITE32_MEMBER(skns_hit2_w);
+ DECLARE_READ32_MEMBER(skns_hit_r);
+ DECLARE_WRITE32_MEMBER(skns_io_w);
+ DECLARE_WRITE32_MEMBER(skns_v3t_w);
+ DECLARE_READ32_MEMBER(gutsn_speedup_r);
+ DECLARE_READ32_MEMBER(cyvern_speedup_r);
+ DECLARE_READ32_MEMBER(puzzloopj_speedup_r);
+ DECLARE_READ32_MEMBER(puzzloopa_speedup_r);
+ DECLARE_READ32_MEMBER(puzzloopu_speedup_r);
+ DECLARE_READ32_MEMBER(puzzloope_speedup_r);
+ DECLARE_READ32_MEMBER(senknow_speedup_r);
+ DECLARE_READ32_MEMBER(teljan_speedup_r);
+ DECLARE_READ32_MEMBER(jjparads_speedup_r);
+ DECLARE_READ32_MEMBER(jjparad2_speedup_r);
+ DECLARE_READ32_MEMBER(ryouran_speedup_r);
+ DECLARE_READ32_MEMBER(galpans2_speedup_r);
+ DECLARE_READ32_MEMBER(panicstr_speedup_r);
+ DECLARE_READ32_MEMBER(sengekis_speedup_r);
+ DECLARE_READ32_MEMBER(sengekij_speedup_r);
};
diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h
index d7ec57ff110..124173f40bf 100644
--- a/src/mame/includes/suprridr.h
+++ b/src/mame/includes/suprridr.h
@@ -20,6 +20,10 @@ public:
UINT8 m_flipx;
UINT8 m_flipy;
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(sound_data_w);
+ DECLARE_WRITE8_MEMBER(sound_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(coin_lock_w);
};
diff --git a/src/mame/includes/suprslam.h b/src/mame/includes/suprslam.h
index 21f89e34e50..b6ea769ea72 100644
--- a/src/mame/includes/suprslam.h
+++ b/src/mame/includes/suprslam.h
@@ -31,6 +31,10 @@ public:
/* devices */
device_t *m_audiocpu;
device_t *m_k053936;
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_READ16_MEMBER(pending_command_r);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
+ DECLARE_WRITE8_MEMBER(suprslam_sh_bankswitch_w);
};
diff --git a/src/mame/includes/surpratk.h b/src/mame/includes/surpratk.h
index 12c2c68d148..76f2eff6dd6 100644
--- a/src/mame/includes/surpratk.h
+++ b/src/mame/includes/surpratk.h
@@ -27,6 +27,10 @@ public:
device_t *m_k052109;
device_t *m_k053244;
device_t *m_k053251;
+ DECLARE_READ8_MEMBER(bankedram_r);
+ DECLARE_WRITE8_MEMBER(bankedram_w);
+ DECLARE_WRITE8_MEMBER(surpratk_videobank_w);
+ DECLARE_WRITE8_MEMBER(surpratk_5fc0_w);
};
/*----------- defined in video/surpratk.c -----------*/
diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h
index b970158f542..d7aabe1edff 100644
--- a/src/mame/includes/system1.h
+++ b/src/mame/includes/system1.h
@@ -25,6 +25,21 @@ public:
tilemap_t *m_tilemap_page[8];
UINT8 m_tilemap_pages;
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(videomode_w);
+ DECLARE_READ8_MEMBER(sound_data_r);
+ DECLARE_WRITE8_MEMBER(soundport_w);
+ DECLARE_WRITE8_MEMBER(mcu_control_w);
+ DECLARE_WRITE8_MEMBER(mcu_io_w);
+ DECLARE_READ8_MEMBER(mcu_io_r);
+ DECLARE_WRITE8_MEMBER(nob_mcu_control_p2_w);
+ DECLARE_READ8_MEMBER(nob_maincpu_latch_r);
+ DECLARE_WRITE8_MEMBER(nob_maincpu_latch_w);
+ DECLARE_READ8_MEMBER(nob_mcu_status_r);
+ DECLARE_READ8_MEMBER(nobb_inport1c_r);
+ DECLARE_READ8_MEMBER(nobb_inport22_r);
+ DECLARE_READ8_MEMBER(nobb_inport23_r);
+ DECLARE_WRITE8_MEMBER(nobb_outport24_w);
+ DECLARE_READ8_MEMBER(nob_start_r);
};
diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h
index 51ae69691db..ca8acce5292 100644
--- a/src/mame/includes/system16.h
+++ b/src/mame/includes/system16.h
@@ -98,6 +98,44 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_soundcpu;
+ DECLARE_WRITE16_MEMBER(sound_command_nmi_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE16_MEMBER(sys16_coinctrl_w);
+ DECLARE_READ16_MEMBER(passht4b_service_r);
+ DECLARE_READ16_MEMBER(passht4b_io1_r);
+ DECLARE_READ16_MEMBER(passht4b_io2_r);
+ DECLARE_READ16_MEMBER(passht4b_io3_r);
+ DECLARE_WRITE16_MEMBER(sys16_tilebank_w);
+ DECLARE_WRITE8_MEMBER(tturfbl_msm5205_data_w);
+ DECLARE_READ8_MEMBER(tturfbl_soundbank_r);
+ DECLARE_WRITE8_MEMBER(tturfbl_soundbank_w);
+ DECLARE_WRITE16_MEMBER(s16bl_bgpage_w);
+ DECLARE_WRITE16_MEMBER(s16bl_fgpage_w);
+ DECLARE_WRITE16_MEMBER(s16bl_fgscrollx_bank_w);
+ DECLARE_WRITE16_MEMBER(s16bl_fgscrollx_w);
+ DECLARE_WRITE16_MEMBER(s16bl_fgscrolly_w);
+ DECLARE_WRITE16_MEMBER(s16bl_bgscrollx_w);
+ DECLARE_WRITE16_MEMBER(s16bl_bgscrolly_w);
+ DECLARE_WRITE16_MEMBER(datsu_page0_w);
+ DECLARE_WRITE16_MEMBER(datsu_page1_w);
+ DECLARE_WRITE16_MEMBER(datsu_page2_w);
+ DECLARE_WRITE16_MEMBER(datsu_page3_w);
+ DECLARE_WRITE16_MEMBER(goldnaxeb2_fgscrollx_w);
+ DECLARE_WRITE16_MEMBER(goldnaxeb2_bgscrollx_w);
+ DECLARE_WRITE16_MEMBER(goldnaxeb2_fgscrolly_w);
+ DECLARE_WRITE16_MEMBER(goldnaxeb2_bgscrolly_w);
+ DECLARE_WRITE16_MEMBER(goldnaxeb2_fgpage_w);
+ DECLARE_WRITE16_MEMBER(goldnaxeb2_bgpage_w);
+ DECLARE_WRITE16_MEMBER(eswat_tilebank0_w);
+ DECLARE_READ16_MEMBER(beautyb_unkx_r);
+ DECLARE_WRITE16_MEMBER(sys18_refreshenable_w);
+ DECLARE_WRITE16_MEMBER(sys18_tilebank_w);
+ DECLARE_READ8_MEMBER(system18_bank_r);
+ DECLARE_WRITE8_MEMBER(sys18_soundbank_w);
+ DECLARE_WRITE16_MEMBER(sound_command_irq_w);
+ DECLARE_WRITE8_MEMBER(shdancbl_msm5205_data_w);
+ DECLARE_READ8_MEMBER(shdancbl_soundbank_r);
+ DECLARE_WRITE8_MEMBER(shdancbl_bankctrl_w);
};
/*----------- defined in video/system16.c -----------*/
diff --git a/src/mame/includes/tagteam.h b/src/mame/includes/tagteam.h
index 52ce1fc1f5f..7a205c8dcaf 100644
--- a/src/mame/includes/tagteam.h
+++ b/src/mame/includes/tagteam.h
@@ -10,6 +10,9 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 m_sound_nmi_mask;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(irq_clear_w);
+ DECLARE_WRITE8_MEMBER(sound_nmi_mask_w);
};
diff --git a/src/mame/includes/tail2nos.h b/src/mame/includes/tail2nos.h
index f080a04d932..8a403985e0f 100644
--- a/src/mame/includes/tail2nos.h
+++ b/src/mame/includes/tail2nos.h
@@ -27,6 +27,7 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_k051316;
+ DECLARE_WRITE16_MEMBER(sound_command_w);
};
diff --git a/src/mame/includes/taito_b.h b/src/mame/includes/taito_b.h
index a30b9b7b522..5ec58e55928 100644
--- a/src/mame/includes/taito_b.h
+++ b/src/mame/includes/taito_b.h
@@ -35,6 +35,23 @@ public:
device_t *m_tc0180vcu;
device_t *m_tc0640fio;
device_t *m_tc0220ioc;
+ DECLARE_WRITE8_MEMBER(bankswitch_w);
+ DECLARE_READ16_MEMBER(tracky1_hi_r);
+ DECLARE_READ16_MEMBER(tracky1_lo_r);
+ DECLARE_READ16_MEMBER(trackx1_hi_r);
+ DECLARE_READ16_MEMBER(trackx1_lo_r);
+ DECLARE_READ16_MEMBER(tracky2_hi_r);
+ DECLARE_READ16_MEMBER(tracky2_lo_r);
+ DECLARE_READ16_MEMBER(trackx2_hi_r);
+ DECLARE_READ16_MEMBER(trackx2_lo_r);
+ DECLARE_WRITE16_MEMBER(gain_control_w);
+ DECLARE_READ16_MEMBER(eep_latch_r);
+ DECLARE_WRITE16_MEMBER(eeprom_w);
+ DECLARE_READ16_MEMBER(player_34_coin_ctrl_r);
+ DECLARE_WRITE16_MEMBER(player_34_coin_ctrl_w);
+ DECLARE_READ16_MEMBER(pbobble_input_bypass_r);
+ DECLARE_WRITE16_MEMBER(spacedxo_tc0220ioc_w);
+ DECLARE_WRITE16_MEMBER(realpunc_output_w);
};
diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h
index 2f30c0d7215..72fb22775a0 100644
--- a/src/mame/includes/taito_f2.h
+++ b/src/mame/includes/taito_f2.h
@@ -80,6 +80,20 @@ public:
device_t *m_tc0280grd;
device_t *m_tc0430grw;
device_t *m_tc0480scp;
+ DECLARE_WRITE16_MEMBER(growl_coin_word_w);
+ DECLARE_WRITE16_MEMBER(taitof2_4p_coin_word_w);
+ DECLARE_WRITE16_MEMBER(ninjak_coin_word_w);
+ DECLARE_READ16_MEMBER(ninjak_input_r);
+ DECLARE_READ16_MEMBER(cameltry_paddle_r);
+ DECLARE_READ16_MEMBER(mjnquest_dsw_r);
+ DECLARE_READ16_MEMBER(mjnquest_input_r);
+ DECLARE_WRITE16_MEMBER(mjnquest_inputselect_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_READ8_MEMBER(driveout_sound_command_r);
+ DECLARE_WRITE8_MEMBER(oki_bank_w);
+ DECLARE_WRITE16_MEMBER(driveout_sound_command_w);
+ DECLARE_WRITE16_MEMBER(cchip2_word_w);
+ DECLARE_READ16_MEMBER(cchip2_word_r);
};
/*----------- defined in video/taito_f2.c -----------*/
diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h
index 9072e176802..93500688ee8 100644
--- a/src/mame/includes/taito_f3.h
+++ b/src/mame/includes/taito_f3.h
@@ -193,6 +193,14 @@ public:
int (*m_dpix_n[8][16])(taito_f3_state *state, UINT32 s_pix);
int (**m_dpix_lp[5])(taito_f3_state *state, UINT32 s_pix);
int (**m_dpix_sp[9])(taito_f3_state *state, UINT32 s_pix);
+ DECLARE_READ32_MEMBER(f3_control_r);
+ DECLARE_WRITE32_MEMBER(f3_control_w);
+ DECLARE_WRITE32_MEMBER(f3_sound_reset_0_w);
+ DECLARE_WRITE32_MEMBER(f3_sound_reset_1_w);
+ DECLARE_WRITE32_MEMBER(f3_sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(f3_unk_w);
+ DECLARE_READ32_MEMBER(bubsympb_oki_r);
+ DECLARE_WRITE32_MEMBER(bubsympb_oki_w);
};
diff --git a/src/mame/includes/taito_h.h b/src/mame/includes/taito_h.h
index b917c7ca81f..65ffb1191c7 100644
--- a/src/mame/includes/taito_h.h
+++ b/src/mame/includes/taito_h.h
@@ -22,6 +22,8 @@ public:
device_t *m_audiocpu;
device_t *m_tc0080vco;
device_t *m_tc0220ioc;
+ DECLARE_READ8_MEMBER(syvalion_input_bypass_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
/*----------- defined in video/taito_h.c -----------*/
diff --git a/src/mame/includes/taito_l.h b/src/mame/includes/taito_l.h
index 822187929c3..7d53e212fd6 100644
--- a/src/mame/includes/taito_l.h
+++ b/src/mame/includes/taito_l.h
@@ -59,6 +59,38 @@ public:
UINT8 m_rambanks[0x1000 * 12];
UINT8 m_palette_ram[0x1000];
UINT8 m_empty_ram[0x1000];
+ DECLARE_WRITE8_MEMBER(irq_adr_w);
+ DECLARE_READ8_MEMBER(irq_adr_r);
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
+ DECLARE_READ8_MEMBER(irq_enable_r);
+ DECLARE_WRITE8_MEMBER(rombankswitch_w);
+ DECLARE_WRITE8_MEMBER(rombank2switch_w);
+ DECLARE_READ8_MEMBER(rombankswitch_r);
+ DECLARE_READ8_MEMBER(rombank2switch_r);
+ DECLARE_WRITE8_MEMBER(rambankswitch_w);
+ DECLARE_READ8_MEMBER(rambankswitch_r);
+ DECLARE_WRITE8_MEMBER(bank0_w);
+ DECLARE_WRITE8_MEMBER(bank1_w);
+ DECLARE_WRITE8_MEMBER(bank2_w);
+ DECLARE_WRITE8_MEMBER(bank3_w);
+ DECLARE_WRITE8_MEMBER(control2_w);
+ DECLARE_WRITE8_MEMBER(mcu_data_w);
+ DECLARE_WRITE8_MEMBER(mcu_control_w);
+ DECLARE_READ8_MEMBER(mcu_data_r);
+ DECLARE_READ8_MEMBER(mcu_control_r);
+ DECLARE_WRITE8_MEMBER(sound_w);
+ DECLARE_READ8_MEMBER(mux_r);
+ DECLARE_WRITE8_MEMBER(mux_w);
+ DECLARE_WRITE8_MEMBER(mux_ctrl_w);
+ DECLARE_WRITE8_MEMBER(champwr_msm5205_lo_w);
+ DECLARE_WRITE8_MEMBER(champwr_msm5205_hi_w);
+ DECLARE_READ8_MEMBER(horshoes_tracky_reset_r);
+ DECLARE_READ8_MEMBER(horshoes_trackx_reset_r);
+ DECLARE_READ8_MEMBER(horshoes_tracky_lo_r);
+ DECLARE_READ8_MEMBER(horshoes_tracky_hi_r);
+ DECLARE_READ8_MEMBER(horshoes_trackx_lo_r);
+ DECLARE_READ8_MEMBER(horshoes_trackx_hi_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
/*----------- defined in video/taito_l.c -----------*/
diff --git a/src/mame/includes/taito_o.h b/src/mame/includes/taito_o.h
index 8a4b7e6ce7f..e07e591fc97 100644
--- a/src/mame/includes/taito_o.h
+++ b/src/mame/includes/taito_o.h
@@ -16,6 +16,8 @@ public:
/* devices */
device_t *m_maincpu;
device_t *m_tc0080vco;
+ DECLARE_WRITE16_MEMBER(io_w);
+ DECLARE_READ16_MEMBER(io_r);
};
/*----------- defined in video/taito_o.c -----------*/
diff --git a/src/mame/includes/taito_z.h b/src/mame/includes/taito_z.h
index 8995aee6779..c76259eead7 100644
--- a/src/mame/includes/taito_z.h
+++ b/src/mame/includes/taito_z.h
@@ -46,6 +46,31 @@ public:
/* dblaxle motor flag */
int m_dblaxle_vibration;
+ DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
+ DECLARE_READ16_MEMBER(eep_latch_r);
+ DECLARE_WRITE16_MEMBER(spacegun_output_bypass_w);
+ DECLARE_READ8_MEMBER(contcirc_input_bypass_r);
+ DECLARE_READ8_MEMBER(chasehq_input_bypass_r);
+ DECLARE_READ16_MEMBER(bshark_stick_r);
+ DECLARE_READ16_MEMBER(nightstr_stick_r);
+ DECLARE_WRITE16_MEMBER(bshark_stick_w);
+ DECLARE_READ16_MEMBER(sci_steer_input_r);
+ DECLARE_READ16_MEMBER(spacegun_input_bypass_r);
+ DECLARE_READ16_MEMBER(spacegun_lightgun_r);
+ DECLARE_WRITE16_MEMBER(spacegun_lightgun_w);
+ DECLARE_WRITE16_MEMBER(spacegun_gun_output_w);
+ DECLARE_READ16_MEMBER(dblaxle_steer_input_r);
+ DECLARE_READ16_MEMBER(chasehq_motor_r);
+ DECLARE_WRITE16_MEMBER(chasehq_motor_w);
+ DECLARE_WRITE16_MEMBER(nightstr_motor_w);
+ DECLARE_READ16_MEMBER(aquajack_unknown_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(taitoz_sound_w);
+ DECLARE_READ16_MEMBER(taitoz_sound_r);
+ DECLARE_WRITE16_MEMBER(taitoz_msb_sound_w);
+ DECLARE_READ16_MEMBER(taitoz_msb_sound_r);
+ DECLARE_WRITE8_MEMBER(taitoz_pancontrol);
+ DECLARE_WRITE16_MEMBER(spacegun_pancontrol);
};
/*----------- defined in video/taito_z.c -----------*/
diff --git a/src/mame/includes/taitoair.h b/src/mame/includes/taitoair.h
index 0f5fe702020..7e68d5527b3 100644
--- a/src/mame/includes/taitoair.h
+++ b/src/mame/includes/taitoair.h
@@ -52,6 +52,18 @@ public:
INT16 m_eyecoordBuffer[4]; /* homogeneous */
//bitmap_ind16 *m_buffer3d;
+ DECLARE_WRITE16_MEMBER(system_control_w);
+ DECLARE_READ16_MEMBER(lineram_r);
+ DECLARE_WRITE16_MEMBER(lineram_w);
+ DECLARE_READ16_MEMBER(dspram_r);
+ DECLARE_WRITE16_MEMBER(dspram_w);
+ DECLARE_READ16_MEMBER(dsp_HOLD_signal_r);
+ DECLARE_WRITE16_MEMBER(dsp_HOLDA_signal_w);
+ DECLARE_WRITE16_MEMBER(airsys_paletteram16_w);
+ DECLARE_WRITE16_MEMBER(airsys_gradram_w);
+ DECLARE_READ16_MEMBER(stick_input_r);
+ DECLARE_READ16_MEMBER(stick2_input_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/taitojc.h b/src/mame/includes/taitojc.h
index ffaccc6fc8a..e3236c011a5 100644
--- a/src/mame/includes/taitojc.h
+++ b/src/mame/includes/taitojc.h
@@ -60,6 +60,44 @@ public:
double m_speed_meter;
double m_brake_meter;
UINT32 m_outputs;
+ DECLARE_READ32_MEMBER(taitojc_palette_r);
+ DECLARE_WRITE32_MEMBER(taitojc_palette_w);
+ DECLARE_READ32_MEMBER(jc_control_r);
+ DECLARE_WRITE32_MEMBER(jc_coin_counters_w);
+ DECLARE_WRITE32_MEMBER(jc_control_w);
+ DECLARE_WRITE32_MEMBER(jc_control1_w);
+ DECLARE_READ32_MEMBER(mcu_comm_r);
+ DECLARE_WRITE32_MEMBER(mcu_comm_w);
+ DECLARE_READ8_MEMBER(jc_pcbid_r);
+ DECLARE_READ32_MEMBER(dsp_shared_r);
+ DECLARE_WRITE32_MEMBER(dsp_shared_w);
+ DECLARE_READ32_MEMBER(f3_share_r);
+ DECLARE_WRITE32_MEMBER(f3_share_w);
+ DECLARE_WRITE32_MEMBER(jc_meters_w);
+ DECLARE_READ32_MEMBER(jc_lan_r);
+ DECLARE_READ8_MEMBER(hc11_comm_r);
+ DECLARE_WRITE8_MEMBER(hc11_comm_w);
+ DECLARE_READ8_MEMBER(hc11_data_r);
+ DECLARE_WRITE8_MEMBER(hc11_data_w);
+ DECLARE_READ8_MEMBER(hc11_analog_r);
+ DECLARE_READ16_MEMBER(dsp_rom_r);
+ DECLARE_WRITE16_MEMBER(dsp_rom_w);
+ DECLARE_WRITE16_MEMBER(dsp_texture_w);
+ DECLARE_READ16_MEMBER(dsp_texaddr_r);
+ DECLARE_WRITE16_MEMBER(dsp_texaddr_w);
+ DECLARE_WRITE16_MEMBER(dsp_polygon_fifo_w);
+ DECLARE_READ16_MEMBER(dsp_unk_r);
+ DECLARE_WRITE16_MEMBER(dsp_viewport_w);
+ DECLARE_WRITE16_MEMBER(dsp_projection_w);
+ DECLARE_READ16_MEMBER(dsp_projection_r);
+ DECLARE_WRITE16_MEMBER(dsp_unk2_w);
+ DECLARE_WRITE16_MEMBER(dsp_intersection_w);
+ DECLARE_READ16_MEMBER(dsp_intersection_r);
+ DECLARE_READ16_MEMBER(dsp_to_main_r);
+ DECLARE_WRITE16_MEMBER(dsp_to_main_w);
+ DECLARE_READ16_MEMBER(taitojc_dsp_idle_skip_r);
+ DECLARE_READ16_MEMBER(dendego2_dsp_idle_skip_r);
+ DECLARE_WRITE16_MEMBER(dsp_idle_skip_w);
};
diff --git a/src/mame/includes/taitosj.h b/src/mame/includes/taitosj.h
index 04fbdefca02..fcb18d13e7b 100644
--- a/src/mame/includes/taitosj.h
+++ b/src/mame/includes/taitosj.h
@@ -39,6 +39,7 @@ public:
bitmap_ind16 m_sprite_layer_collbitmap1;
bitmap_ind16 m_sprite_layer_collbitmap2[3];
int m_draw_order[32][4];
+ DECLARE_WRITE8_MEMBER(taitosj_soundcommand_w);
};
diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h
index 821022bc348..bb8bf29443c 100644
--- a/src/mame/includes/tank8.h
+++ b/src/mame/includes/tank8.h
@@ -39,6 +39,9 @@ public:
bitmap_ind16 m_helper1;
bitmap_ind16 m_helper2;
bitmap_ind16 m_helper3;
+ DECLARE_READ8_MEMBER(tank8_collision_r);
+ DECLARE_WRITE8_MEMBER(tank8_lockout_w);
+ DECLARE_WRITE8_MEMBER(tank8_int_reset_w);
};
diff --git a/src/mame/includes/tankbatt.h b/src/mame/includes/tankbatt.h
index 20b8b101247..7841c972287 100644
--- a/src/mame/includes/tankbatt.h
+++ b/src/mame/includes/tankbatt.h
@@ -10,6 +10,18 @@ public:
UINT8 *m_bulletsram;
size_t m_bulletsram_size;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(tankbatt_led_w);
+ DECLARE_READ8_MEMBER(tankbatt_in0_r);
+ DECLARE_READ8_MEMBER(tankbatt_in1_r);
+ DECLARE_READ8_MEMBER(tankbatt_dsw_r);
+ DECLARE_WRITE8_MEMBER(tankbatt_interrupt_enable_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_demo_interrupt_enable_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_sh_expl_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_sh_engine_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_sh_fire_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(tankbatt_coin_lockout_w);
};
diff --git a/src/mame/includes/tankbust.h b/src/mame/includes/tankbust.h
index 0cda2e53e18..5ffd849578d 100644
--- a/src/mame/includes/tankbust.h
+++ b/src/mame/includes/tankbust.h
@@ -19,6 +19,11 @@ public:
size_t m_spriteram_size;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(tankbust_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(tankbust_e0xx_w);
+ DECLARE_READ8_MEMBER(debug_output_area_r);
+ DECLARE_READ8_MEMBER(read_from_unmapped_memory);
+ DECLARE_READ8_MEMBER(some_changing_input);
};
diff --git a/src/mame/includes/taotaido.h b/src/mame/includes/taotaido.h
index 6b38a9495aa..91da10abbd7 100644
--- a/src/mame/includes/taotaido.h
+++ b/src/mame/includes/taotaido.h
@@ -16,6 +16,10 @@ public:
UINT16 *m_spriteram_older;
UINT16 *m_spriteram2_old;
UINT16 *m_spriteram2_older;
+ DECLARE_READ16_MEMBER(pending_command_r);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
+ DECLARE_WRITE8_MEMBER(taotaido_sh_bankswitch_w);
};
diff --git a/src/mame/includes/targeth.h b/src/mame/includes/targeth.h
index 1c33f78ebb4..1f50525ebb8 100644
--- a/src/mame/includes/targeth.h
+++ b/src/mame/includes/targeth.h
@@ -12,6 +12,8 @@ public:
tilemap_t *m_pant[2];
required_device<cpu_device> m_maincpu;
+ DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(targeth_coin_counter_w);
};
diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h
index ac2fc1e21e6..eca3f428a49 100644
--- a/src/mame/includes/tatsumi.h
+++ b/src/mame/includes/tatsumi.h
@@ -48,6 +48,17 @@ public:
UINT8 m_roundupt_crt_reg[64];
UINT8* m_shadow_pen_array;
UINT16 *m_spriteram;
+ DECLARE_READ16_MEMBER(cyclwarr_cpu_bb_r);
+ DECLARE_WRITE16_MEMBER(cyclwarr_cpu_bb_w);
+ DECLARE_READ16_MEMBER(cyclwarr_palette_r);
+ DECLARE_READ16_MEMBER(cyclwarr_sprite_r);
+ DECLARE_WRITE16_MEMBER(cyclwarr_sprite_w);
+ DECLARE_WRITE16_MEMBER(bigfight_a20000_w);
+ DECLARE_WRITE16_MEMBER(bigfight_a40000_w);
+ DECLARE_WRITE16_MEMBER(bigfight_a60000_w);
+ DECLARE_READ16_MEMBER(cyclwarr_input_r);
+ DECLARE_READ16_MEMBER(cyclwarr_input2_r);
+ DECLARE_WRITE16_MEMBER(cyclwarr_sound_w);
};
diff --git a/src/mame/includes/tbowl.h b/src/mame/includes/tbowl.h
index 2b578f016a4..edbcbc581d9 100644
--- a/src/mame/includes/tbowl.h
+++ b/src/mame/includes/tbowl.h
@@ -19,6 +19,16 @@ public:
UINT16 m_yscroll;
UINT16 m_bg2xscroll;
UINT16 m_bg2yscroll;
+ DECLARE_WRITE8_MEMBER(tbowl_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(tbowlb_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(tbowlc_bankswitch_w);
+ DECLARE_READ8_MEMBER(shared_r);
+ DECLARE_WRITE8_MEMBER(shared_w);
+ DECLARE_WRITE8_MEMBER(tbowl_sound_command_w);
+ DECLARE_WRITE8_MEMBER(tbowl_trigger_nmi);
+ DECLARE_WRITE8_MEMBER(tbowl_adpcm_start_w);
+ DECLARE_WRITE8_MEMBER(tbowl_adpcm_end_w);
+ DECLARE_WRITE8_MEMBER(tbowl_adpcm_vol_w);
};
diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h
index 6214b0be925..c0f41ba0208 100644
--- a/src/mame/includes/tceptor.h
+++ b/src/mame/includes/tceptor.h
@@ -25,6 +25,18 @@ public:
bitmap_ind16 m_temp_bitmap;
UINT16 *m_sprite_ram_buffered;
int m_is_mask_spr[1024/16];
+ DECLARE_READ16_MEMBER(m68k_shared_word_r);
+ DECLARE_WRITE16_MEMBER(m68k_shared_word_w);
+ DECLARE_WRITE8_MEMBER(m6809_irq_enable_w);
+ DECLARE_WRITE8_MEMBER(m6809_irq_disable_w);
+ DECLARE_WRITE16_MEMBER(m68k_irq_enable_w);
+ DECLARE_WRITE8_MEMBER(mcu_irq_enable_w);
+ DECLARE_WRITE8_MEMBER(mcu_irq_disable_w);
+ DECLARE_READ8_MEMBER(dsw0_r);
+ DECLARE_READ8_MEMBER(dsw1_r);
+ DECLARE_READ8_MEMBER(input0_r);
+ DECLARE_READ8_MEMBER(input1_r);
+ DECLARE_READ8_MEMBER(readFF);
};
diff --git a/src/mame/includes/tecmo.h b/src/mame/includes/tecmo.h
index f11beeeb18c..d99fe3f8c9f 100644
--- a/src/mame/includes/tecmo.h
+++ b/src/mame/includes/tecmo.h
@@ -18,6 +18,13 @@ public:
UINT8 m_bgscroll[3];
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(tecmo_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(tecmo_sound_command_w);
+ DECLARE_WRITE8_MEMBER(tecmo_adpcm_end_w);
+ DECLARE_READ8_MEMBER(tecmo_dswa_l_r);
+ DECLARE_READ8_MEMBER(tecmo_dswa_h_r);
+ DECLARE_READ8_MEMBER(tecmo_dswb_l_r);
+ DECLARE_READ8_MEMBER(tecmo_dswb_h_r);
};
diff --git a/src/mame/includes/tecmo16.h b/src/mame/includes/tecmo16.h
index 72199001fa8..5b5407f82b2 100644
--- a/src/mame/includes/tecmo16.h
+++ b/src/mame/includes/tecmo16.h
@@ -25,6 +25,7 @@ public:
UINT16 m_scroll_char_y_w;
UINT16 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE16_MEMBER(tecmo16_sound_command_w);
};
diff --git a/src/mame/includes/tecmosys.h b/src/mame/includes/tecmosys.h
index b6eda46619f..c9451b4c223 100644
--- a/src/mame/includes/tecmosys.h
+++ b/src/mame/includes/tecmosys.h
@@ -36,6 +36,12 @@ public:
UINT8 m_device_status;
const struct prot_data* m_device_data;
UINT8 m_device_value;
+ DECLARE_READ16_MEMBER(sound_r);
+ DECLARE_WRITE16_MEMBER(sound_w);
+ DECLARE_WRITE16_MEMBER(unk880000_w);
+ DECLARE_READ16_MEMBER(unk880000_r);
+ DECLARE_WRITE8_MEMBER(tecmosys_z80_bank_w);
+ DECLARE_WRITE8_MEMBER(tecmosys_oki_bank_w);
};
diff --git a/src/mame/includes/tehkanwc.h b/src/mame/includes/tehkanwc.h
index ee9443cefb4..19b6da2e6b6 100644
--- a/src/mame/includes/tehkanwc.h
+++ b/src/mame/includes/tehkanwc.h
@@ -18,6 +18,13 @@ public:
tilemap_t *m_fg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(sub_cpu_halt_w);
+ DECLARE_READ8_MEMBER(tehkanwc_track_0_r);
+ DECLARE_READ8_MEMBER(tehkanwc_track_1_r);
+ DECLARE_WRITE8_MEMBER(tehkanwc_track_0_reset_w);
+ DECLARE_WRITE8_MEMBER(tehkanwc_track_1_reset_w);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(sound_answer_w);
};
diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h
index 9c3c55f5862..7df685ee8b9 100644
--- a/src/mame/includes/terracre.h
+++ b/src/mame/includes/terracre.h
@@ -14,6 +14,11 @@ public:
tilemap_t *m_background;
tilemap_t *m_foreground;
UINT16 *m_spriteram;
+ DECLARE_READ16_MEMBER(horekid_IN2_r);
+ DECLARE_WRITE16_MEMBER(amazon_sound_w);
+ DECLARE_READ8_MEMBER(soundlatch_clear_r);
+ DECLARE_READ16_MEMBER(amazon_protection_r);
+ DECLARE_WRITE16_MEMBER(amazon_protection_w);
};
diff --git a/src/mame/includes/tetrisp2.h b/src/mame/includes/tetrisp2.h
index 67c79b12587..7069906cd36 100644
--- a/src/mame/includes/tetrisp2.h
+++ b/src/mame/includes/tetrisp2.h
@@ -41,6 +41,22 @@ public:
tilemap_t *m_tilemap_sub_rot;
required_shared_ptr<UINT16> m_spriteram;
optional_shared_ptr<UINT16> m_spriteram2;
+ DECLARE_WRITE16_MEMBER(rockn_systemregs_w);
+ DECLARE_WRITE16_MEMBER(rocknms_sub_systemregs_w);
+ DECLARE_READ16_MEMBER(rockn_adpcmbank_r);
+ DECLARE_WRITE16_MEMBER(rockn_adpcmbank_w);
+ DECLARE_WRITE16_MEMBER(rockn2_adpcmbank_w);
+ DECLARE_READ16_MEMBER(rockn_soundvolume_r);
+ DECLARE_WRITE16_MEMBER(rockn_soundvolume_w);
+ DECLARE_WRITE16_MEMBER(nndmseal_sound_bank_w);
+ DECLARE_READ16_MEMBER(tetrisp2_ip_1_word_r);
+ DECLARE_READ16_MEMBER(rockn_nvram_r);
+ DECLARE_READ16_MEMBER(rocknms_main2sub_r);
+ DECLARE_WRITE16_MEMBER(rocknms_main2sub_w);
+ DECLARE_WRITE16_MEMBER(rocknms_sub2main_w);
+ DECLARE_WRITE16_MEMBER(tetrisp2_coincounter_w);
+ DECLARE_WRITE16_MEMBER(nndmseal_coincounter_w);
+ DECLARE_WRITE16_MEMBER(nndmseal_b20000_w);
};
WRITE16_HANDLER( tetrisp2_systemregs_w );
diff --git a/src/mame/includes/thedeep.h b/src/mame/includes/thedeep.h
index fd4f56e34d6..23957db938a 100644
--- a/src/mame/includes/thedeep.h
+++ b/src/mame/includes/thedeep.h
@@ -27,6 +27,17 @@ public:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<cpu_device> m_mcu;
+ DECLARE_WRITE8_MEMBER(thedeep_nmi_w);
+ DECLARE_WRITE8_MEMBER(thedeep_sound_w);
+ DECLARE_WRITE8_MEMBER(thedeep_protection_w);
+ DECLARE_READ8_MEMBER(thedeep_e004_r);
+ DECLARE_READ8_MEMBER(thedeep_protection_r);
+ DECLARE_WRITE8_MEMBER(thedeep_e100_w);
+ DECLARE_WRITE8_MEMBER(thedeep_p1_w);
+ DECLARE_READ8_MEMBER(thedeep_from_main_r);
+ DECLARE_WRITE8_MEMBER(thedeep_to_main_w);
+ DECLARE_WRITE8_MEMBER(thedeep_p3_w);
+ DECLARE_READ8_MEMBER(thedeep_p0_r);
};
diff --git a/src/mame/includes/thepit.h b/src/mame/includes/thepit.h
index 7169b272044..6b62dbc9caf 100644
--- a/src/mame/includes/thepit.h
+++ b/src/mame/includes/thepit.h
@@ -19,6 +19,10 @@ public:
tilemap_t *m_tilemap;
UINT8 *m_dummy_tile;
UINT8 m_nmi_mask;
+ DECLARE_READ8_MEMBER(thepit_colorram_r);
+ DECLARE_WRITE8_MEMBER(thepit_sound_enable_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
+ DECLARE_READ8_MEMBER(rtriv_question_r);
};
diff --git a/src/mame/includes/thief.h b/src/mame/includes/thief.h
index 042c434cca5..848f5be7da9 100644
--- a/src/mame/includes/thief.h
+++ b/src/mame/includes/thief.h
@@ -17,6 +17,8 @@ public:
UINT8 m_write_mask;
UINT8 m_video_control;
coprocessor_t m_coprocessor;
+ DECLARE_WRITE8_MEMBER(thief_input_select_w);
+ DECLARE_READ8_MEMBER(thief_io_r);
};
diff --git a/src/mame/includes/thoop2.h b/src/mame/includes/thoop2.h
index d061e6dd2c3..240c2254e57 100644
--- a/src/mame/includes/thoop2.h
+++ b/src/mame/includes/thoop2.h
@@ -10,6 +10,9 @@ public:
int m_sprite_count[5];
int *m_sprite_table[5];
tilemap_t *m_pant[2];
+ DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(thoop2_coin_w);
+ DECLARE_READ16_MEMBER(DS5002FP_R);
};
diff --git a/src/mame/includes/thunderx.h b/src/mame/includes/thunderx.h
index c360ef88795..9fa03837f86 100644
--- a/src/mame/includes/thunderx.h
+++ b/src/mame/includes/thunderx.h
@@ -32,6 +32,17 @@ public:
device_t *m_k007232;
device_t *m_k052109;
device_t *m_k051960;
+ DECLARE_READ8_MEMBER(scontra_bankedram_r);
+ DECLARE_WRITE8_MEMBER(scontra_bankedram_w);
+ DECLARE_READ8_MEMBER(thunderx_bankedram_r);
+ DECLARE_WRITE8_MEMBER(thunderx_bankedram_w);
+ DECLARE_READ8_MEMBER(thunderx_1f98_r);
+ DECLARE_WRITE8_MEMBER(thunderx_1f98_w);
+ DECLARE_WRITE8_MEMBER(scontra_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(thunderx_videobank_w);
+ DECLARE_WRITE8_MEMBER(thunderx_sh_irqtrigger_w);
+ DECLARE_READ8_MEMBER(k052109_051960_r);
+ DECLARE_WRITE8_MEMBER(k052109_051960_w);
};
diff --git a/src/mame/includes/tiamc1.h b/src/mame/includes/tiamc1.h
index 1aaebb2af6f..05d5682c8b8 100644
--- a/src/mame/includes/tiamc1.h
+++ b/src/mame/includes/tiamc1.h
@@ -18,6 +18,7 @@ public:
tilemap_t *m_bg_tilemap1;
tilemap_t *m_bg_tilemap2;
rgb_t *m_palette;
+ DECLARE_WRITE8_MEMBER(tiamc1_control_w);
};
diff --git a/src/mame/includes/tigeroad.h b/src/mame/includes/tigeroad.h
index 4606f3b5953..c0703be1c2a 100644
--- a/src/mame/includes/tigeroad.h
+++ b/src/mame/includes/tigeroad.h
@@ -13,6 +13,8 @@ public:
tilemap_t *m_bg_tilemap;
tilemap_t *m_fg_tilemap;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(f1dream_control_w);
+ DECLARE_WRITE16_MEMBER(tigeroad_soundcmd_w);
};
diff --git a/src/mame/includes/timelimt.h b/src/mame/includes/timelimt.h
index 01f8f44974d..d848b050274 100644
--- a/src/mame/includes/timelimt.h
+++ b/src/mame/includes/timelimt.h
@@ -14,6 +14,8 @@ public:
tilemap_t *m_fg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(sound_reset_w);
};
diff --git a/src/mame/includes/timeplt.h b/src/mame/includes/timeplt.h
index 8f253bf8e08..b9d898ec364 100644
--- a/src/mame/includes/timeplt.h
+++ b/src/mame/includes/timeplt.h
@@ -24,6 +24,9 @@ public:
/* devices */
cpu_device *m_maincpu;
+ DECLARE_WRITE8_MEMBER(timeplt_nmi_enable_w);
+ DECLARE_WRITE8_MEMBER(timeplt_coin_counter_w);
+ DECLARE_READ8_MEMBER(psurge_protection_r);
};
diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h
index c0d0cde6b62..93c5e524ee5 100644
--- a/src/mame/includes/tmnt.h
+++ b/src/mame/includes/tmnt.h
@@ -61,6 +61,40 @@ public:
INT16 m_sampledata[0x40000];
UINT8 m_irq5_mask;
+ DECLARE_READ16_MEMBER(k052109_word_noA12_r);
+ DECLARE_WRITE16_MEMBER(k052109_word_noA12_w);
+ DECLARE_WRITE16_MEMBER(punkshot_k052109_word_w);
+ DECLARE_WRITE16_MEMBER(punkshot_k052109_word_noA12_w);
+ DECLARE_READ16_MEMBER(k053245_scattered_word_r);
+ DECLARE_WRITE16_MEMBER(k053245_scattered_word_w);
+ DECLARE_READ16_MEMBER(k053244_word_noA1_r);
+ DECLARE_WRITE16_MEMBER(k053244_word_noA1_w);
+ DECLARE_WRITE16_MEMBER(tmnt_sound_command_w);
+ DECLARE_READ16_MEMBER(prmrsocr_sound_r);
+ DECLARE_WRITE16_MEMBER(prmrsocr_sound_cmd_w);
+ DECLARE_WRITE16_MEMBER(prmrsocr_sound_irq_w);
+ DECLARE_WRITE8_MEMBER(prmrsocr_audio_bankswitch_w);
+ DECLARE_READ8_MEMBER(tmnt_sres_r);
+ DECLARE_WRITE8_MEMBER(tmnt_sres_w);
+ DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
+ DECLARE_READ16_MEMBER(punkshot_kludge_r);
+ DECLARE_READ16_MEMBER(ssriders_protection_r);
+ DECLARE_WRITE16_MEMBER(ssriders_protection_w);
+ DECLARE_READ16_MEMBER(blswhstl_coin_r);
+ DECLARE_READ16_MEMBER(ssriders_eeprom_r);
+ DECLARE_READ16_MEMBER(sunsetbl_eeprom_r);
+ DECLARE_WRITE16_MEMBER(blswhstl_eeprom_w);
+ DECLARE_READ16_MEMBER(thndrx2_eeprom_r);
+ DECLARE_WRITE16_MEMBER(thndrx2_eeprom_w);
+ DECLARE_WRITE16_MEMBER(prmrsocr_eeprom_w);
+ DECLARE_READ16_MEMBER(cuebrick_nv_r);
+ DECLARE_WRITE16_MEMBER(cuebrick_nv_w);
+ DECLARE_WRITE16_MEMBER(cuebrick_nvbank_w);
+ DECLARE_WRITE16_MEMBER(ssriders_soundkludge_w);
+ DECLARE_WRITE16_MEMBER(k053251_glfgreat_w);
+ DECLARE_WRITE16_MEMBER(tmnt2_1c0800_w);
+ DECLARE_READ8_MEMBER(k054539_ctrl_r);
+ DECLARE_WRITE8_MEMBER(k054539_ctrl_w);
};
diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h
index 2e54fe3485f..5f8525ce559 100644
--- a/src/mame/includes/tnzs.h
+++ b/src/mame/includes/tnzs.h
@@ -52,6 +52,9 @@ public:
device_t *m_audiocpu;
device_t *m_subcpu;
device_t *m_mcu;
+ DECLARE_WRITE8_MEMBER(tnzsb_sound_command_w);
+ DECLARE_WRITE8_MEMBER(jpopnics_palette_w);
+ DECLARE_WRITE8_MEMBER(jpopnics_subbankswitch_w);
};
diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h
index 4ce9a4139b7..97f23719966 100644
--- a/src/mame/includes/toaplan2.h
+++ b/src/mame/includes/toaplan2.h
@@ -53,6 +53,42 @@ public:
tilemap_t *m_tx_tilemap; /* Tilemap for extra-text-layer */
UINT8 m_tx_flip;
+ DECLARE_READ16_MEMBER(video_count_r);
+ DECLARE_WRITE8_MEMBER(toaplan2_coin_w);
+ DECLARE_WRITE16_MEMBER(toaplan2_coin_word_w);
+ DECLARE_WRITE16_MEMBER(toaplan2_v25_coin_word_w);
+ DECLARE_WRITE16_MEMBER(shippumd_coin_word_w);
+ DECLARE_READ16_MEMBER(shared_ram_r);
+ DECLARE_WRITE16_MEMBER(shared_ram_w);
+ DECLARE_WRITE16_MEMBER(toaplan2_hd647180_cpu_w);
+ DECLARE_READ16_MEMBER(ghox_p1_h_analog_r);
+ DECLARE_READ16_MEMBER(ghox_p2_h_analog_r);
+ DECLARE_READ16_MEMBER(ghox_mcu_r);
+ DECLARE_WRITE16_MEMBER(ghox_mcu_w);
+ DECLARE_READ16_MEMBER(ghox_shared_ram_r);
+ DECLARE_WRITE16_MEMBER(ghox_shared_ram_w);
+ DECLARE_WRITE16_MEMBER(fixeight_subcpu_ctrl_w);
+ DECLARE_WRITE16_MEMBER(fixeightbl_oki_bankswitch_w);
+ DECLARE_READ8_MEMBER(v25_dswa_r);
+ DECLARE_READ8_MEMBER(v25_dswb_r);
+ DECLARE_READ8_MEMBER(v25_jmpr_r);
+ DECLARE_READ8_MEMBER(fixeight_region_r);
+ DECLARE_WRITE8_MEMBER(raizing_z80_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(raizing_oki_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(bgaregga_soundlatch_w);
+ DECLARE_READ8_MEMBER(bgaregga_E01D_r);
+ DECLARE_WRITE8_MEMBER(bgaregga_E00C_w);
+ DECLARE_READ16_MEMBER(batrider_z80_busack_r);
+ DECLARE_WRITE16_MEMBER(batrider_z80_busreq_w);
+ DECLARE_READ16_MEMBER(batrider_z80rom_r);
+ DECLARE_WRITE16_MEMBER(batrider_soundlatch_w);
+ DECLARE_WRITE16_MEMBER(batrider_soundlatch2_w);
+ DECLARE_WRITE16_MEMBER(batrider_unknown_sound_w);
+ DECLARE_WRITE16_MEMBER(batrider_clear_sndirq_w);
+ DECLARE_WRITE8_MEMBER(batrider_sndirq_w);
+ DECLARE_WRITE8_MEMBER(batrider_clear_nmi_w);
+ DECLARE_READ16_MEMBER(bbakraid_eeprom_r);
+ DECLARE_WRITE16_MEMBER(bbakraid_eeprom_w);
};
/*----------- defined in video/toaplan2.c -----------*/
diff --git a/src/mame/includes/toki.h b/src/mame/includes/toki.h
index 6d6ba5c30c5..aabc2021016 100644
--- a/src/mame/includes/toki.h
+++ b/src/mame/includes/toki.h
@@ -17,6 +17,9 @@ public:
tilemap_t *m_foreground_layer;
tilemap_t *m_text_layer;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(tokib_soundcommand16_w);
+ DECLARE_READ16_MEMBER(pip16_r);
+ DECLARE_WRITE8_MEMBER(toki_adpcm_data_w);
};
diff --git a/src/mame/includes/topspeed.h b/src/mame/includes/topspeed.h
index eeef4ea3b9f..ceae9adb400 100644
--- a/src/mame/includes/topspeed.h
+++ b/src/mame/includes/topspeed.h
@@ -35,6 +35,12 @@ public:
device_t *m_tc0220ioc;
UINT8 m_dislayer[5];
+ DECLARE_READ16_MEMBER(sharedram_r);
+ DECLARE_WRITE16_MEMBER(sharedram_w);
+ DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
+ DECLARE_READ8_MEMBER(topspeed_input_bypass_r);
+ DECLARE_READ16_MEMBER(topspeed_motor_r);
+ DECLARE_WRITE16_MEMBER(topspeed_motor_w);
};
diff --git a/src/mame/includes/toypop.h b/src/mame/includes/toypop.h
index 9f84aae86b2..9f3c85e7f63 100644
--- a/src/mame/includes/toypop.h
+++ b/src/mame/includes/toypop.h
@@ -15,6 +15,19 @@ public:
int m_interrupt_enable_68k;
UINT8 m_main_irq_mask;
UINT8 m_sound_irq_mask;
+ DECLARE_READ16_MEMBER(toypop_m68000_sharedram_r);
+ DECLARE_WRITE16_MEMBER(toypop_m68000_sharedram_w);
+ DECLARE_READ8_MEMBER(toypop_main_interrupt_enable_r);
+ DECLARE_WRITE8_MEMBER(toypop_main_interrupt_enable_w);
+ DECLARE_WRITE8_MEMBER(toypop_main_interrupt_disable_w);
+ DECLARE_WRITE8_MEMBER(toypop_sound_interrupt_enable_acknowledge_w);
+ DECLARE_WRITE8_MEMBER(toypop_sound_interrupt_disable_w);
+ DECLARE_WRITE8_MEMBER(toypop_sound_clear_w);
+ DECLARE_WRITE8_MEMBER(toypop_sound_assert_w);
+ DECLARE_WRITE8_MEMBER(toypop_m68000_clear_w);
+ DECLARE_WRITE8_MEMBER(toypop_m68000_assert_w);
+ DECLARE_WRITE16_MEMBER(toypop_m68000_interrupt_enable_w);
+ DECLARE_WRITE16_MEMBER(toypop_m68000_interrupt_disable_w);
};
diff --git a/src/mame/includes/tp84.h b/src/mame/includes/tp84.h
index 9a6a5ff6c09..a2c7ec14882 100644
--- a/src/mame/includes/tp84.h
+++ b/src/mame/includes/tp84.h
@@ -19,6 +19,10 @@ public:
tilemap_t *m_fg_tilemap;
UINT8 m_sub_irq_mask;
+ DECLARE_READ8_MEMBER(tp84_sh_timer_r);
+ DECLARE_WRITE8_MEMBER(tp84_filter_w);
+ DECLARE_WRITE8_MEMBER(tp84_sh_irqtrigger_w);
+ DECLARE_WRITE8_MEMBER(sub_irq_mask_w);
};
diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h
index 735327591d7..f9b0afc5c12 100644
--- a/src/mame/includes/trackfld.h
+++ b/src/mame/includes/trackfld.h
@@ -30,6 +30,10 @@ public:
UINT8 m_irq_mask;
UINT8 m_yieartf_nmi_mask;
+ DECLARE_WRITE8_MEMBER(coin_w);
+ DECLARE_WRITE8_MEMBER(questions_bank_w);
+ DECLARE_WRITE8_MEMBER(irq_mask_w);
+ DECLARE_WRITE8_MEMBER(yieartf_nmi_mask_w);
};
diff --git a/src/mame/includes/triplhnt.h b/src/mame/includes/triplhnt.h
index a7a6da39d3b..2f7df70c8f4 100644
--- a/src/mame/includes/triplhnt.h
+++ b/src/mame/includes/triplhnt.h
@@ -36,6 +36,11 @@ public:
int m_sprite_bank;
bitmap_ind16 m_helper;
tilemap_t* m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(triplhnt_misc_w);
+ DECLARE_READ8_MEMBER(triplhnt_cmos_r);
+ DECLARE_READ8_MEMBER(triplhnt_input_port_4_r);
+ DECLARE_READ8_MEMBER(triplhnt_misc_r);
+ DECLARE_READ8_MEMBER(triplhnt_da_latch_r);
};
diff --git a/src/mame/includes/trucocl.h b/src/mame/includes/trucocl.h
index 22b0087ac27..682bdd2046a 100644
--- a/src/mame/includes/trucocl.h
+++ b/src/mame/includes/trucocl.h
@@ -11,6 +11,7 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 m_irq_mask;
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
};
diff --git a/src/mame/includes/tryout.h b/src/mame/includes/tryout.h
index fd448936e3b..67fbbb5a0c5 100644
--- a/src/mame/includes/tryout.h
+++ b/src/mame/includes/tryout.h
@@ -13,6 +13,10 @@ public:
UINT8 *m_vram_gfx;
UINT8 *m_spriteram;
UINT8 *m_spriteram2;
+ DECLARE_WRITE8_MEMBER(tryout_nmi_ack_w);
+ DECLARE_WRITE8_MEMBER(tryout_sound_w);
+ DECLARE_WRITE8_MEMBER(tryout_sound_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(tryout_bankswitch_w);
};
diff --git a/src/mame/includes/tsamurai.h b/src/mame/includes/tsamurai.h
index fbf17717ef3..3c0b67ae680 100644
--- a/src/mame/includes/tsamurai.h
+++ b/src/mame/includes/tsamurai.h
@@ -21,6 +21,24 @@ public:
int m_vsgongf_color;
int m_key_count;
UINT8 *m_spriteram;
+ DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ DECLARE_READ8_MEMBER(unknown_d803_r);
+ DECLARE_READ8_MEMBER(unknown_d803_m660_r);
+ DECLARE_READ8_MEMBER(unknown_d806_r);
+ DECLARE_READ8_MEMBER(unknown_d900_r);
+ DECLARE_READ8_MEMBER(unknown_d938_r);
+ DECLARE_WRITE8_MEMBER(sound_command1_w);
+ DECLARE_WRITE8_MEMBER(sound_command2_w);
+ DECLARE_WRITE8_MEMBER(sound_command3_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
+ DECLARE_WRITE8_MEMBER(tsamurai_coin_counter_w);
+ DECLARE_READ8_MEMBER(sound_command1_r);
+ DECLARE_READ8_MEMBER(sound_command2_r);
+ DECLARE_READ8_MEMBER(sound_command3_r);
+ DECLARE_WRITE8_MEMBER(vsgongf_sound_nmi_enable_w);
+ DECLARE_READ8_MEMBER(vsgongf_a006_r);
+ DECLARE_READ8_MEMBER(vsgongf_a100_r);
+ DECLARE_WRITE8_MEMBER(vsgongf_sound_command_w);
};
diff --git a/src/mame/includes/tubep.h b/src/mame/includes/tubep.h
index a5d3c8ef03b..814e55ac03c 100644
--- a/src/mame/includes/tubep.h
+++ b/src/mame/includes/tubep.h
@@ -36,6 +36,18 @@ public:
UINT8 m_ls175_e8;
UINT8 m_ls377_data;
UINT32 m_page;
+ DECLARE_WRITE8_MEMBER(tubep_LS259_w);
+ DECLARE_WRITE8_MEMBER(main_cpu_irq_line_clear_w);
+ DECLARE_WRITE8_MEMBER(tubep_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(second_cpu_irq_line_clear_w);
+ DECLARE_READ8_MEMBER(tubep_soundlatch_r);
+ DECLARE_READ8_MEMBER(tubep_sound_irq_ack);
+ DECLARE_WRITE8_MEMBER(tubep_sound_unknown);
+ DECLARE_WRITE8_MEMBER(rjammer_LS259_w);
+ DECLARE_WRITE8_MEMBER(rjammer_soundlatch_w);
+ DECLARE_READ8_MEMBER(rjammer_soundlatch_r);
+ DECLARE_WRITE8_MEMBER(rjammer_voice_input_w);
+ DECLARE_WRITE8_MEMBER(rjammer_voice_intensity_control_w);
};
diff --git a/src/mame/includes/tumbleb.h b/src/mame/includes/tumbleb.h
index d945b5f4df9..04a845b154f 100644
--- a/src/mame/includes/tumbleb.h
+++ b/src/mame/includes/tumbleb.h
@@ -34,6 +34,20 @@ public:
device_t *m_oki;
UINT8 m_semicom_prot_offset;
UINT16 m_protbase;
+ DECLARE_WRITE16_MEMBER(tumblepb_oki_w);
+ DECLARE_READ16_MEMBER(tumblepb_prot_r);
+ DECLARE_WRITE16_MEMBER(jumppop_sound_w);
+ DECLARE_READ16_MEMBER(tumblepopb_controls_r);
+ DECLARE_READ16_MEMBER(semibase_unknown_r);
+ DECLARE_WRITE16_MEMBER(jumpkids_sound_w);
+ DECLARE_WRITE16_MEMBER(semicom_soundcmd_w);
+ DECLARE_WRITE8_MEMBER(oki_sound_bank_w);
+ DECLARE_WRITE8_MEMBER(jumppop_z80_bank_w);
+ DECLARE_READ8_MEMBER(jumppop_z80latch_r);
+ DECLARE_WRITE8_MEMBER(jumpkids_oki_bank_w);
+ DECLARE_READ8_MEMBER(prot_io_r);
+ DECLARE_WRITE8_MEMBER(prot_io_w);
+ DECLARE_READ16_MEMBER(bcstory_1a0_read);
};
/*----------- defined in video/tumbleb.c -----------*/
diff --git a/src/mame/includes/tumblep.h b/src/mame/includes/tumblep.h
index 7b4d960d4a6..b3e4d30ce13 100644
--- a/src/mame/includes/tumblep.h
+++ b/src/mame/includes/tumblep.h
@@ -21,6 +21,10 @@ public:
device_t *m_maincpu;
device_t *m_audiocpu;
device_t *m_deco_tilegen1;
+ DECLARE_READ16_MEMBER(tumblep_prot_r);
+ DECLARE_WRITE16_MEMBER(tumblep_sound_w);
+ DECLARE_WRITE16_MEMBER(jumppop_sound_w);
+ DECLARE_READ16_MEMBER(tumblepop_controls_r);
};
diff --git a/src/mame/includes/tunhunt.h b/src/mame/includes/tunhunt.h
index 631a3c95ea7..715ae966c97 100644
--- a/src/mame/includes/tunhunt.h
+++ b/src/mame/includes/tunhunt.h
@@ -10,6 +10,8 @@ public:
UINT8 *m_videoram;
tilemap_t *m_fg_tilemap;
bitmap_ind16 m_tmpbitmap;
+ DECLARE_WRITE8_MEMBER(tunhunt_control_w);
+ DECLARE_READ8_MEMBER(tunhunt_button_r);
};
diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h
index fd80a85c9bc..ec5dab7ee8d 100644
--- a/src/mame/includes/turbo.h
+++ b/src/mame/includes/turbo.h
@@ -79,6 +79,15 @@ public:
UINT8 m_buckrog_command;
UINT8 m_buckrog_myship;
int m_last_sound_a;
+ DECLARE_READ8_MEMBER(turbo_8279_r);
+ DECLARE_WRITE8_MEMBER(turbo_8279_w);
+ DECLARE_READ8_MEMBER(turbo_collision_r);
+ DECLARE_WRITE8_MEMBER(turbo_collision_clear_w);
+ DECLARE_WRITE8_MEMBER(turbo_analog_reset_w);
+ DECLARE_WRITE8_MEMBER(turbo_coin_and_lamp_w);
+ DECLARE_READ8_MEMBER(buckrog_cpu2_command_r);
+ DECLARE_READ8_MEMBER(buckrog_port_2_r);
+ DECLARE_READ8_MEMBER(buckrog_port_3_r);
};
diff --git a/src/mame/includes/tutankhm.h b/src/mame/includes/tutankhm.h
index 54edfc762bf..311e9ba35df 100644
--- a/src/mame/includes/tutankhm.h
+++ b/src/mame/includes/tutankhm.h
@@ -20,6 +20,10 @@ public:
/* devices */
cpu_device *m_maincpu;
+ DECLARE_WRITE8_MEMBER(irq_enable_w);
+ DECLARE_WRITE8_MEMBER(tutankhm_bankselect_w);
+ DECLARE_WRITE8_MEMBER(sound_mute_w);
+ DECLARE_WRITE8_MEMBER(tutankhm_coin_counter_w);
};
diff --git a/src/mame/includes/twin16.h b/src/mame/includes/twin16.h
index 8e63255afbf..075cd18707a 100644
--- a/src/mame/includes/twin16.h
+++ b/src/mame/includes/twin16.h
@@ -28,6 +28,19 @@ public:
UINT16 m_video_register;
tilemap_t *m_text_tilemap;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_READ16_MEMBER(videoram16_r);
+ DECLARE_WRITE16_MEMBER(videoram16_w);
+ DECLARE_READ16_MEMBER(extra_rom_r);
+ DECLARE_READ16_MEMBER(twin16_gfx_rom1_r);
+ DECLARE_READ16_MEMBER(twin16_gfx_rom2_r);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE16_MEMBER(twin16_CPUA_register_w);
+ DECLARE_WRITE16_MEMBER(twin16_CPUB_register_w);
+ DECLARE_WRITE16_MEMBER(fround_CPU_register_w);
+ DECLARE_READ16_MEMBER(twin16_input_r);
+ DECLARE_READ16_MEMBER(cuebrickj_nvram_r);
+ DECLARE_WRITE16_MEMBER(cuebrickj_nvram_w);
+ DECLARE_WRITE16_MEMBER(cuebrickj_nvram_bank_w);
};
diff --git a/src/mame/includes/ultraman.h b/src/mame/includes/ultraman.h
index 618ef2d6b44..60d6df45d08 100644
--- a/src/mame/includes/ultraman.h
+++ b/src/mame/includes/ultraman.h
@@ -27,6 +27,8 @@ public:
device_t *m_k051316_2;
device_t *m_k051316_3;
device_t *m_k051960;
+ DECLARE_WRITE16_MEMBER(sound_cmd_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_trigger_w);
};
diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h
index f748505139f..9c342f135b8 100644
--- a/src/mame/includes/ultratnk.h
+++ b/src/mame/includes/ultratnk.h
@@ -16,6 +16,17 @@ public:
int m_collision[4];
tilemap_t* m_playfield;
bitmap_ind16 m_helper;
+ DECLARE_READ8_MEMBER(ultratnk_wram_r);
+ DECLARE_READ8_MEMBER(ultratnk_analog_r);
+ DECLARE_READ8_MEMBER(ultratnk_coin_r);
+ DECLARE_READ8_MEMBER(ultratnk_collision_r);
+ DECLARE_READ8_MEMBER(ultratnk_options_r);
+ DECLARE_WRITE8_MEMBER(ultratnk_wram_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_collision_reset_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_da_latch_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_led_1_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_led_2_w);
+ DECLARE_WRITE8_MEMBER(ultratnk_lockout_w);
};
diff --git a/src/mame/includes/undrfire.h b/src/mame/includes/undrfire.h
index 14c96fa0619..dbf0e44dabe 100644
--- a/src/mame/includes/undrfire.h
+++ b/src/mame/includes/undrfire.h
@@ -24,6 +24,19 @@ public:
UINT8 m_dislayer[6];
UINT32 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE32_MEMBER(color_ram_w);
+ DECLARE_READ32_MEMBER(undrfire_input_r);
+ DECLARE_WRITE32_MEMBER(undrfire_input_w);
+ DECLARE_READ16_MEMBER(shared_ram_r);
+ DECLARE_WRITE16_MEMBER(shared_ram_w);
+ DECLARE_READ32_MEMBER(unknown_hardware_r);
+ DECLARE_WRITE32_MEMBER(unknown_int_req_w);
+ DECLARE_READ32_MEMBER(undrfire_lightgun_r);
+ DECLARE_WRITE32_MEMBER(rotate_control_w);
+ DECLARE_WRITE32_MEMBER(motor_control_w);
+ DECLARE_WRITE32_MEMBER(cbombers_cpua_ctrl_w);
+ DECLARE_READ32_MEMBER(cbombers_adc_r);
+ DECLARE_WRITE32_MEMBER(cbombers_adc_w);
};
diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h
index f0195956bbb..3d2fbe6093c 100644
--- a/src/mame/includes/unico.h
+++ b/src/mame/includes/unico.h
@@ -13,6 +13,17 @@ public:
int m_sprites_scrolldy;
UINT16 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE16_MEMBER(zeropnt_sound_bank_w);
+ DECLARE_READ16_MEMBER(unico_gunx_0_msb_r);
+ DECLARE_READ16_MEMBER(unico_guny_0_msb_r);
+ DECLARE_READ16_MEMBER(unico_gunx_1_msb_r);
+ DECLARE_READ16_MEMBER(unico_guny_1_msb_r);
+ DECLARE_READ32_MEMBER(zeropnt2_gunx_0_msb_r);
+ DECLARE_READ32_MEMBER(zeropnt2_guny_0_msb_r);
+ DECLARE_READ32_MEMBER(zeropnt2_gunx_1_msb_r);
+ DECLARE_READ32_MEMBER(zeropnt2_guny_1_msb_r);
+ DECLARE_WRITE32_MEMBER(zeropnt2_sound_bank_w);
+ DECLARE_WRITE32_MEMBER(zeropnt2_leds_w);
};
diff --git a/src/mame/includes/usgames.h b/src/mame/includes/usgames.h
index 6a69164b89f..9468691e997 100644
--- a/src/mame/includes/usgames.h
+++ b/src/mame/includes/usgames.h
@@ -7,6 +7,9 @@ public:
UINT8 *m_videoram;
UINT8 *m_charram;
tilemap_t *m_tilemap;
+ DECLARE_WRITE8_MEMBER(usgames_rombank_w);
+ DECLARE_WRITE8_MEMBER(lamps1_w);
+ DECLARE_WRITE8_MEMBER(lamps2_w);
};
diff --git a/src/mame/includes/vaportra.h b/src/mame/includes/vaportra.h
index b0a91a5c614..b7dc5627e4b 100644
--- a/src/mame/includes/vaportra.h
+++ b/src/mame/includes/vaportra.h
@@ -28,6 +28,9 @@ public:
device_t *m_deco_tilegen1;
device_t *m_deco_tilegen2;
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(vaportra_sound_w);
+ DECLARE_READ16_MEMBER(vaportra_control_r);
+ DECLARE_READ8_MEMBER(vaportra_soundlatch_r);
};
diff --git a/src/mame/includes/vastar.h b/src/mame/includes/vastar.h
index 3a77e3d6a95..762974b6c5c 100644
--- a/src/mame/includes/vastar.h
+++ b/src/mame/includes/vastar.h
@@ -22,6 +22,11 @@ public:
UINT8 *m_sharedram;
UINT8 m_nmi_mask;
+ DECLARE_WRITE8_MEMBER(vastar_hold_cpu2_w);
+ DECLARE_READ8_MEMBER(vastar_sharedram_r);
+ DECLARE_WRITE8_MEMBER(vastar_sharedram_w);
+ DECLARE_WRITE8_MEMBER(flip_screen_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/vball.h b/src/mame/includes/vball.h
index 7c042329b59..2ab7b257442 100644
--- a/src/mame/includes/vball.h
+++ b/src/mame/includes/vball.h
@@ -17,6 +17,11 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(vball_irq_ack_w);
+ DECLARE_WRITE8_MEMBER(vb_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(cpu_sound_command_w);
+ DECLARE_WRITE8_MEMBER(vb_scrollx_hi_w);
+ DECLARE_WRITE8_MEMBER(vb_scrollx_lo_w);
};
diff --git a/src/mame/includes/vendetta.h b/src/mame/includes/vendetta.h
index 1fa5db8170a..d51b53495d8 100644
--- a/src/mame/includes/vendetta.h
+++ b/src/mame/includes/vendetta.h
@@ -31,6 +31,13 @@ public:
device_t *m_k053246;
device_t *m_k053251;
device_t *m_k054000;
+ DECLARE_WRITE8_MEMBER(vendetta_eeprom_w);
+ DECLARE_READ8_MEMBER(vendetta_K052109_r);
+ DECLARE_WRITE8_MEMBER(vendetta_K052109_w);
+ DECLARE_WRITE8_MEMBER(vendetta_5fe0_w);
+ DECLARE_WRITE8_MEMBER(z80_arm_nmi_w);
+ DECLARE_WRITE8_MEMBER(z80_irq_w);
+ DECLARE_READ8_MEMBER(vendetta_sound_interrupt_r);
};
/*----------- defined in video/vendetta.c -----------*/
diff --git a/src/mame/includes/vicdual.h b/src/mame/includes/vicdual.h
index 58fe6824f14..8b8ec52dfae 100644
--- a/src/mame/includes/vicdual.h
+++ b/src/mame/includes/vicdual.h
@@ -33,6 +33,36 @@ public:
UINT8 *m_characterram;
UINT8 m_samurai_protection_data;
UINT8 m_palette_bank;
+ DECLARE_WRITE8_MEMBER(vicdual_videoram_w);
+ DECLARE_WRITE8_MEMBER(vicdual_characterram_w);
+ DECLARE_READ8_MEMBER(depthch_io_r);
+ DECLARE_WRITE8_MEMBER(depthch_io_w);
+ DECLARE_READ8_MEMBER(safari_io_r);
+ DECLARE_WRITE8_MEMBER(safari_io_w);
+ DECLARE_READ8_MEMBER(frogs_io_r);
+ DECLARE_WRITE8_MEMBER(frogs_io_w);
+ DECLARE_READ8_MEMBER(headon_io_r);
+ DECLARE_READ8_MEMBER(sspaceat_io_r);
+ DECLARE_WRITE8_MEMBER(headon_io_w);
+ DECLARE_READ8_MEMBER(headon2_io_r);
+ DECLARE_WRITE8_MEMBER(headon2_io_w);
+ DECLARE_WRITE8_MEMBER(digger_io_w);
+ DECLARE_WRITE8_MEMBER(invho2_io_w);
+ DECLARE_WRITE8_MEMBER(invds_io_w);
+ DECLARE_WRITE8_MEMBER(sspacaho_io_w);
+ DECLARE_WRITE8_MEMBER(tranqgun_io_w);
+ DECLARE_WRITE8_MEMBER(spacetrk_io_w);
+ DECLARE_WRITE8_MEMBER(carnival_io_w);
+ DECLARE_WRITE8_MEMBER(brdrline_io_w);
+ DECLARE_WRITE8_MEMBER(pulsar_io_w);
+ DECLARE_WRITE8_MEMBER(heiankyo_io_w);
+ DECLARE_WRITE8_MEMBER(alphaho_io_w);
+ DECLARE_WRITE8_MEMBER(samurai_protection_w);
+ DECLARE_WRITE8_MEMBER(samurai_io_w);
+ DECLARE_READ8_MEMBER(nsub_io_r);
+ DECLARE_WRITE8_MEMBER(nsub_io_w);
+ DECLARE_READ8_MEMBER(invinco_io_r);
+ DECLARE_WRITE8_MEMBER(invinco_io_w);
};
diff --git a/src/mame/includes/victory.h b/src/mame/includes/victory.h
index b4a688233aa..066f0f3ccf4 100644
--- a/src/mame/includes/victory.h
+++ b/src/mame/includes/victory.h
@@ -54,6 +54,7 @@ public:
UINT8 m_scrolly;
UINT8 m_video_control;
struct micro_t m_micro;
+ DECLARE_WRITE8_MEMBER(lamp_control_w);
};
diff --git a/src/mame/includes/videopin.h b/src/mame/includes/videopin.h
index 2b4500de000..bb62e4f959d 100644
--- a/src/mame/includes/videopin.h
+++ b/src/mame/includes/videopin.h
@@ -29,6 +29,8 @@ public:
int m_ball_x;
int m_ball_y;
tilemap_t* m_bg_tilemap;
+ DECLARE_READ8_MEMBER(videopin_misc_r);
+ DECLARE_WRITE8_MEMBER(videopin_led_w);
};
diff --git a/src/mame/includes/vigilant.h b/src/mame/includes/vigilant.h
index 79c4af5565a..1a368e0ad7a 100644
--- a/src/mame/includes/vigilant.h
+++ b/src/mame/includes/vigilant.h
@@ -15,6 +15,9 @@ public:
bitmap_ind16 *m_bg_bitmap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(vigilant_bank_select_w);
+ DECLARE_WRITE8_MEMBER(vigilant_out2_w);
+ DECLARE_WRITE8_MEMBER(kikcubic_coin_w);
};
diff --git a/src/mame/includes/vsnes.h b/src/mame/includes/vsnes.h
index a800fbfb1e4..e958a1b9e50 100644
--- a/src/mame/includes/vsnes.h
+++ b/src/mame/includes/vsnes.h
@@ -35,6 +35,11 @@ public:
int m_supxevs_prot_index;
int m_security_counter;
int m_ret;
+ DECLARE_WRITE8_MEMBER(sprite_dma_0_w);
+ DECLARE_WRITE8_MEMBER(sprite_dma_1_w);
+ DECLARE_WRITE8_MEMBER(vsnes_coin_counter_w);
+ DECLARE_READ8_MEMBER(vsnes_coin_counter_r);
+ DECLARE_WRITE8_MEMBER(vsnes_coin_counter_1_w);
};
diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h
index 7fc7ccbb1aa..7866167c27a 100644
--- a/src/mame/includes/warpwarp.h
+++ b/src/mame/includes/warpwarp.h
@@ -17,6 +17,12 @@ public:
int m_ball_sizey;
int m_handle_joystick;
tilemap_t *m_bg_tilemap;
+ DECLARE_READ8_MEMBER(geebee_in_r);
+ DECLARE_WRITE8_MEMBER(geebee_out6_w);
+ DECLARE_WRITE8_MEMBER(geebee_out7_w);
+ DECLARE_READ8_MEMBER(warpwarp_sw_r);
+ DECLARE_WRITE8_MEMBER(warpwarp_out0_w);
+ DECLARE_WRITE8_MEMBER(warpwarp_out3_w);
};
diff --git a/src/mame/includes/warriorb.h b/src/mame/includes/warriorb.h
index 8c47329aa2c..5f31b9b1783 100644
--- a/src/mame/includes/warriorb.h
+++ b/src/mame/includes/warriorb.h
@@ -30,6 +30,11 @@ public:
device_t *m_2610_1r;
device_t *m_2610_2l;
device_t *m_2610_2r;
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(warriorb_sound_w);
+ DECLARE_READ16_MEMBER(warriorb_sound_r);
+ DECLARE_WRITE8_MEMBER(warriorb_pancontrol);
+ DECLARE_WRITE16_MEMBER(tc0100scn_dual_screen_w);
};
diff --git a/src/mame/includes/wc90.h b/src/mame/includes/wc90.h
index 49cccb7bb6d..e93ec322921 100644
--- a/src/mame/includes/wc90.h
+++ b/src/mame/includes/wc90.h
@@ -24,6 +24,9 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(wc90_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(wc90_bankswitch1_w);
+ DECLARE_WRITE8_MEMBER(wc90_sound_command_w);
};
diff --git a/src/mame/includes/wc90b.h b/src/mame/includes/wc90b.h
index 07a08c69409..2c28c9a1311 100644
--- a/src/mame/includes/wc90b.h
+++ b/src/mame/includes/wc90b.h
@@ -19,6 +19,10 @@ public:
tilemap_t *m_bg_tilemap;
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(wc90b_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(wc90b_bankswitch1_w);
+ DECLARE_WRITE8_MEMBER(wc90b_sound_command_w);
+ DECLARE_WRITE8_MEMBER(adpcm_data_w);
};
diff --git a/src/mame/includes/wecleman.h b/src/mame/includes/wecleman.h
index 8da497f83ac..566a95f227f 100644
--- a/src/mame/includes/wecleman.h
+++ b/src/mame/includes/wecleman.h
@@ -37,6 +37,16 @@ public:
struct sprite *m_sprite_list;
struct sprite **m_spr_ptr_list;
UINT16 *m_spriteram;
+ DECLARE_READ16_MEMBER(wecleman_protection_r);
+ DECLARE_WRITE16_MEMBER(wecleman_protection_w);
+ DECLARE_WRITE16_MEMBER(irqctrl_w);
+ DECLARE_WRITE16_MEMBER(selected_ip_w);
+ DECLARE_READ16_MEMBER(selected_ip_r);
+ DECLARE_WRITE16_MEMBER(blitter_w);
+ DECLARE_READ8_MEMBER(multiply_r);
+ DECLARE_WRITE8_MEMBER(multiply_w);
+ DECLARE_WRITE16_MEMBER(hotchase_soundlatch_w);
+ DECLARE_WRITE8_MEMBER(hotchase_sound_control_w);
};
diff --git a/src/mame/includes/welltris.h b/src/mame/includes/welltris.h
index 31863f354af..929fd38d9aa 100644
--- a/src/mame/includes/welltris.h
+++ b/src/mame/includes/welltris.h
@@ -17,6 +17,9 @@ public:
UINT16 m_pixelpalettebank;
int m_scrollx;
int m_scrolly;
+ DECLARE_WRITE8_MEMBER(welltris_sh_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(pending_command_clear_w);
};
diff --git a/src/mame/includes/wgp.h b/src/mame/includes/wgp.h
index b5c8f0b6bcc..78d7c1e7b4f 100644
--- a/src/mame/includes/wgp.h
+++ b/src/mame/includes/wgp.h
@@ -43,6 +43,16 @@ public:
device_t *m_subcpu;
device_t *m_tc0100scn;
device_t *m_tc0140syt;
+ DECLARE_READ16_MEMBER(sharedram_r);
+ DECLARE_WRITE16_MEMBER(sharedram_w);
+ DECLARE_WRITE16_MEMBER(cpua_ctrl_w);
+ DECLARE_READ16_MEMBER(lan_status_r);
+ DECLARE_WRITE16_MEMBER(rotate_port_w);
+ DECLARE_READ16_MEMBER(wgp_adinput_r);
+ DECLARE_WRITE16_MEMBER(wgp_adinput_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
+ DECLARE_WRITE16_MEMBER(wgp_sound_w);
+ DECLARE_READ16_MEMBER(wgp_sound_r);
};
diff --git a/src/mame/includes/wiping.h b/src/mame/includes/wiping.h
index c5402aeff74..fe41087b08c 100644
--- a/src/mame/includes/wiping.h
+++ b/src/mame/includes/wiping.h
@@ -13,6 +13,10 @@ public:
UINT8 m_main_irq_mask;
UINT8 m_sound_irq_mask;
+ DECLARE_READ8_MEMBER(ports_r);
+ DECLARE_WRITE8_MEMBER(subcpu_reset_w);
+ DECLARE_WRITE8_MEMBER(main_irq_mask_w);
+ DECLARE_WRITE8_MEMBER(sound_irq_mask_w);
};
diff --git a/src/mame/includes/wiz.h b/src/mame/includes/wiz.h
index bebaf004d23..7ce6c8c3fb5 100644
--- a/src/mame/includes/wiz.h
+++ b/src/mame/includes/wiz.h
@@ -23,6 +23,11 @@ public:
size_t m_spriteram_size;
UINT8 m_main_nmi_mask;
UINT8 m_sound_nmi_mask;
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_READ8_MEMBER(wiz_protection_r);
+ DECLARE_WRITE8_MEMBER(wiz_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(wiz_main_nmi_mask_w);
+ DECLARE_WRITE8_MEMBER(wiz_sound_nmi_mask_w);
};
diff --git a/src/mame/includes/wolfpack.h b/src/mame/includes/wolfpack.h
index 2dde29be368..a510b6cecc2 100644
--- a/src/mame/includes/wolfpack.h
+++ b/src/mame/includes/wolfpack.h
@@ -21,6 +21,20 @@ public:
UINT8 m_torpedo_v;
UINT8* m_LFSR;
bitmap_ind16 m_helper;
+ DECLARE_READ8_MEMBER(wolfpack_misc_r);
+ DECLARE_WRITE8_MEMBER(wolfpack_high_explo_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_sonar_ping_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_sirlat_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_pt_sound_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_launch_torpedo_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_low_explo_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_screw_cont_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_lamp_flash_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_warning_light_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_audamp_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_attract_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_credit_w);
+ DECLARE_WRITE8_MEMBER(wolfpack_coldetres_w);
};
diff --git a/src/mame/includes/wrally.h b/src/mame/includes/wrally.h
index 42ecb8a95cd..3eac64288fc 100644
--- a/src/mame/includes/wrally.h
+++ b/src/mame/includes/wrally.h
@@ -9,6 +9,8 @@ public:
UINT16 *m_vregs;
UINT16 *m_videoram;
UINT16 *m_spriteram;
+ DECLARE_READ8_MEMBER(dallas_share_r);
+ DECLARE_WRITE8_MEMBER(dallas_share_w);
};
diff --git a/src/mame/includes/wwfsstar.h b/src/mame/includes/wwfsstar.h
index d33f3fbdb1a..9306c018e93 100644
--- a/src/mame/includes/wwfsstar.h
+++ b/src/mame/includes/wwfsstar.h
@@ -12,6 +12,10 @@ public:
UINT16 *m_bg0_videoram;
tilemap_t *m_fg0_tilemap;
tilemap_t *m_bg0_tilemap;
+ DECLARE_WRITE16_MEMBER(wwfsstar_scrollwrite);
+ DECLARE_WRITE16_MEMBER(wwfsstar_soundwrite);
+ DECLARE_WRITE16_MEMBER(wwfsstar_flipscreen_w);
+ DECLARE_WRITE16_MEMBER(wwfsstar_irqack_w);
};
diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h
index becee8654ea..935592ac329 100644
--- a/src/mame/includes/wwfwfest.h
+++ b/src/mame/includes/wwfwfest.h
@@ -22,6 +22,13 @@ public:
UINT16 m_bg0_dx;
UINT16 m_bg1_dx[2];
required_device<buffered_spriteram16_device> m_spriteram;
+ DECLARE_WRITE16_MEMBER(wwfwfest_1410_write);
+ DECLARE_WRITE16_MEMBER(wwfwfest_scroll_write);
+ DECLARE_WRITE16_MEMBER(wwfwfest_irq_ack_w);
+ DECLARE_WRITE16_MEMBER(wwfwfest_flipscreen_w);
+ DECLARE_READ16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r);
+ DECLARE_WRITE16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w);
+ DECLARE_WRITE16_MEMBER(wwfwfest_soundwrite);
};
diff --git a/src/mame/includes/xain.h b/src/mame/includes/xain.h
index 92ed159ee32..1277d35e50a 100644
--- a/src/mame/includes/xain.h
+++ b/src/mame/includes/xain.h
@@ -31,6 +31,14 @@ public:
UINT8 m_scrollyP1[2];
UINT8 *m_spriteram;
size_t m_spriteram_size;
+ DECLARE_WRITE8_MEMBER(xainCPUA_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(xainCPUB_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(xain_sound_command_w);
+ DECLARE_WRITE8_MEMBER(xain_main_irq_w);
+ DECLARE_WRITE8_MEMBER(xain_irqA_assert_w);
+ DECLARE_WRITE8_MEMBER(xain_irqB_clear_w);
+ DECLARE_READ8_MEMBER(xain_68705_r);
+ DECLARE_WRITE8_MEMBER(xain_68705_w);
};
diff --git a/src/mame/includes/xexex.h b/src/mame/includes/xexex.h
index 26b89df052e..c168122db4b 100644
--- a/src/mame/includes/xexex.h
+++ b/src/mame/includes/xexex.h
@@ -46,6 +46,18 @@ public:
device_t *m_k053251;
device_t *m_k053252;
device_t *m_k054338;
+ DECLARE_READ16_MEMBER(K053247_scattered_word_r);
+ DECLARE_WRITE16_MEMBER(K053247_scattered_word_w);
+ DECLARE_READ16_MEMBER(spriteram_mirror_r);
+ DECLARE_WRITE16_MEMBER(spriteram_mirror_w);
+ DECLARE_READ16_MEMBER(xexex_waitskip_r);
+ DECLARE_READ16_MEMBER(control2_r);
+ DECLARE_WRITE16_MEMBER(control2_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd1_w);
+ DECLARE_WRITE16_MEMBER(sound_cmd2_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
diff --git a/src/mame/includes/xmen.h b/src/mame/includes/xmen.h
index d864dd93d7a..ac77d53174f 100644
--- a/src/mame/includes/xmen.h
+++ b/src/mame/includes/xmen.h
@@ -35,6 +35,12 @@ public:
device_t *m_k053251;
device_t *m_lscreen;
device_t *m_rscreen;
+ DECLARE_WRITE16_MEMBER(eeprom_w);
+ DECLARE_READ16_MEMBER(sound_status_r);
+ DECLARE_WRITE16_MEMBER(sound_cmd_w);
+ DECLARE_WRITE16_MEMBER(sound_irq_w);
+ DECLARE_WRITE16_MEMBER(xmen_18fa00_w);
+ DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
};
/*----------- defined in video/xmen.c -----------*/
diff --git a/src/mame/includes/xorworld.h b/src/mame/includes/xorworld.h
index 245b37bc26b..41dccbff25f 100644
--- a/src/mame/includes/xorworld.h
+++ b/src/mame/includes/xorworld.h
@@ -7,6 +7,8 @@ public:
UINT16 *m_videoram;
tilemap_t *m_bg_tilemap;
UINT16 *m_spriteram;
+ DECLARE_WRITE16_MEMBER(xorworld_irq2_ack_w);
+ DECLARE_WRITE16_MEMBER(xorworld_irq6_ack_w);
};
diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h
index e35f2174e59..5db6f1872b7 100644
--- a/src/mame/includes/xxmissio.h
+++ b/src/mame/includes/xxmissio.h
@@ -13,6 +13,9 @@ public:
UINT8 m_xscroll;
UINT8 m_yscroll;
UINT8 m_flipscreen;
+ DECLARE_WRITE8_MEMBER(xxmissio_bank_sel_w);
+ DECLARE_WRITE8_MEMBER(xxmissio_status_m_w);
+ DECLARE_WRITE8_MEMBER(xxmissio_status_s_w);
};
diff --git a/src/mame/includes/xyonix.h b/src/mame/includes/xyonix.h
index 3be11c85fc8..6a3a620d622 100644
--- a/src/mame/includes/xyonix.h
+++ b/src/mame/includes/xyonix.h
@@ -11,6 +11,9 @@ public:
int m_credits;
int m_coins;
int m_prev_coin;
+ DECLARE_WRITE8_MEMBER(xyonix_irqack_w);
+ DECLARE_READ8_MEMBER(xyonix_io_r);
+ DECLARE_WRITE8_MEMBER(xyonix_io_w);
};
diff --git a/src/mame/includes/yunsun16.h b/src/mame/includes/yunsun16.h
index b033ba8696d..b19c58606cd 100644
--- a/src/mame/includes/yunsun16.h
+++ b/src/mame/includes/yunsun16.h
@@ -28,6 +28,8 @@ public:
/* devices */
device_t *m_audiocpu;
+ DECLARE_WRITE16_MEMBER(yunsun16_sound_bank_w);
+ DECLARE_WRITE16_MEMBER(magicbub_sound_command_w);
};
diff --git a/src/mame/includes/yunsung8.h b/src/mame/includes/yunsung8.h
index fd489763432..0cdbfd8bc0c 100644
--- a/src/mame/includes/yunsung8.h
+++ b/src/mame/includes/yunsung8.h
@@ -27,6 +27,8 @@ public:
/* memory */
UINT8 m_videoram[0x4000];
+ DECLARE_WRITE8_MEMBER(yunsung8_bankswitch_w);
+ DECLARE_WRITE8_MEMBER(yunsung8_adpcm_w);
};
diff --git a/src/mame/includes/zac2650.h b/src/mame/includes/zac2650.h
index c73d59ac8d5..53924726824 100644
--- a/src/mame/includes/zac2650.h
+++ b/src/mame/includes/zac2650.h
@@ -11,6 +11,7 @@ public:
int m_CollisionBackground;
int m_CollisionSprite;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(tinvader_sound_w);
};
diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h
index c1c91de9da3..09b13eb8e4f 100644
--- a/src/mame/includes/zaccaria.h
+++ b/src/mame/includes/zaccaria.h
@@ -16,6 +16,13 @@ public:
UINT8 *m_spriteram;
UINT8 *m_spriteram2;
UINT8 m_nmi_mask;
+ DECLARE_READ8_MEMBER(zaccaria_dsw_r);
+ DECLARE_WRITE8_MEMBER(sound_command_w);
+ DECLARE_WRITE8_MEMBER(sound1_command_w);
+ DECLARE_READ8_MEMBER(zaccaria_prot1_r);
+ DECLARE_READ8_MEMBER(zaccaria_prot2_r);
+ DECLARE_WRITE8_MEMBER(coin_w);
+ DECLARE_WRITE8_MEMBER(nmi_mask_w);
};
diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h
index 70df59e29e5..d4cd06ca59c 100644
--- a/src/mame/includes/zaxxon.h
+++ b/src/mame/includes/zaxxon.h
@@ -34,6 +34,10 @@ public:
const UINT8 *m_color_codes;
tilemap_t *m_fg_tilemap;
tilemap_t *m_bg_tilemap;
+ DECLARE_WRITE8_MEMBER(int_enable_w);
+ DECLARE_READ8_MEMBER(razmataz_counter_r);
+ DECLARE_WRITE8_MEMBER(zaxxon_coin_counter_w);
+ DECLARE_WRITE8_MEMBER(zaxxon_coin_enable_w);
};