summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/addrmap.c140
-rw-r--r--src/emu/addrmap.h69
-rw-r--r--src/emu/cpu/arm7/arm7.c6
-rw-r--r--src/emu/cpu/arm7/arm7ops.c6
-rw-r--r--src/emu/cpu/cubeqcpu/cubeqcpu.h8
-rw-r--r--src/emu/cpu/esrip/esrip.c6
-rw-r--r--src/emu/cpu/m68000/68307ser.c4
-rw-r--r--src/emu/cpu/powerpc/ppccom.c4
-rw-r--r--src/emu/cpu/rsp/rspdrc.c8
-rw-r--r--src/emu/cpu/tms0980/tms0980.c10
-rw-r--r--src/emu/devcb.c68
-rw-r--r--src/emu/devcb.h20
-rw-r--r--src/emu/devconv.h208
-rw-r--r--src/emu/dimemory.c4
-rw-r--r--src/emu/driver.c13
-rw-r--r--src/emu/driver.h15
-rw-r--r--src/emu/imagedev/flopdrv.h2
-rw-r--r--src/emu/machine/6525tpi.h16
-rw-r--r--src/emu/machine/6526cia.h8
-rw-r--r--src/emu/machine/6532riot.h4
-rw-r--r--src/emu/machine/68681.h4
-rw-r--r--src/emu/machine/74123.c7
-rw-r--r--src/emu/machine/74123.h11
-rw-r--r--src/emu/machine/8237dma.h4
-rw-r--r--src/emu/machine/8257dma.h4
-rw-r--r--src/emu/machine/adc1213x.h12
-rw-r--r--src/emu/machine/at28c16.h4
-rw-r--r--src/emu/machine/ds2404.h10
-rw-r--r--src/emu/machine/f3853.h4
-rw-r--r--src/emu/machine/i8243.h6
-rw-r--r--src/emu/machine/idectrl.h18
-rw-r--r--src/emu/machine/ins8154.h8
-rw-r--r--src/emu/machine/k033906.h4
-rw-r--r--src/emu/machine/k053252.h4
-rw-r--r--src/emu/machine/k056230.h8
-rw-r--r--src/emu/machine/latch8.c6
-rw-r--r--src/emu/machine/latch8.h54
-rw-r--r--src/emu/machine/mb14241.h6
-rw-r--r--src/emu/machine/pd4990a.h6
-rw-r--r--src/emu/machine/pic8259.h4
-rw-r--r--src/emu/machine/pit8253.h4
-rw-r--r--src/emu/machine/rp5h01.h14
-rw-r--r--src/emu/machine/s3c2410.h2
-rw-r--r--src/emu/machine/s3c24xx.c12
-rw-r--r--src/emu/machine/smc91c9x.h4
-rw-r--r--src/emu/machine/timekpr.h4
-rw-r--r--src/emu/machine/tms6100.h2
-rw-r--r--src/emu/machine/upd4701.h24
-rw-r--r--src/emu/machine/wd17xx.c16
-rw-r--r--src/emu/machine/wd17xx.h24
-rw-r--r--src/emu/machine/z80dart.c12
-rw-r--r--src/emu/machine/z80dart.h16
-rw-r--r--src/emu/machine/z80dma.h4
-rw-r--r--src/emu/machine/z80sio.c42
-rw-r--r--src/emu/machine/z80sio.h20
-rw-r--r--src/emu/machine/z80sti.h4
-rw-r--r--src/emu/memory.c23
-rw-r--r--src/emu/memory.h41
-rw-r--r--src/emu/sound/2151intf.c6
-rw-r--r--src/emu/sound/2151intf.h10
-rw-r--r--src/emu/sound/2203intf.c8
-rw-r--r--src/emu/sound/2203intf.h12
-rw-r--r--src/emu/sound/2413intf.c4
-rw-r--r--src/emu/sound/2413intf.h6
-rw-r--r--src/emu/sound/2608intf.c16
-rw-r--r--src/emu/sound/2608intf.h18
-rw-r--r--src/emu/sound/2610intf.c16
-rw-r--r--src/emu/sound/2610intf.h18
-rw-r--r--src/emu/sound/2612intf.c18
-rw-r--r--src/emu/sound/2612intf.h24
-rw-r--r--src/emu/sound/262intf.c10
-rw-r--r--src/emu/sound/262intf.h16
-rw-r--r--src/emu/sound/3526intf.c8
-rw-r--r--src/emu/sound/3526intf.h12
-rw-r--r--src/emu/sound/3812intf.c8
-rw-r--r--src/emu/sound/3812intf.h12
-rw-r--r--src/emu/sound/8950intf.c42
-rw-r--r--src/emu/sound/8950intf.h29
-rw-r--r--src/emu/sound/aica.c20
-rw-r--r--src/emu/sound/aica.h8
-rw-r--r--src/emu/sound/astrocde.h2
-rw-r--r--src/emu/sound/ay8910.c12
-rw-r--r--src/emu/sound/ay8910.h16
-rw-r--r--src/emu/sound/c140.h4
-rw-r--r--src/emu/sound/c6280.h4
-rw-r--r--src/emu/sound/digitalk.h2
-rw-r--r--src/emu/sound/discrete.h4
-rw-r--r--src/emu/sound/es5506.h8
-rw-r--r--src/emu/sound/es8712.h2
-rw-r--r--src/emu/sound/gaelco.h4
-rw-r--r--src/emu/sound/ics2115.h4
-rw-r--r--src/emu/sound/iremga20.h4
-rw-r--r--src/emu/sound/k005289.h12
-rw-r--r--src/emu/sound/k007232.h4
-rw-r--r--src/emu/sound/k051649.c2
-rw-r--r--src/emu/sound/k051649.h20
-rw-r--r--src/emu/sound/k053260.h4
-rw-r--r--src/emu/sound/k056800.h8
-rw-r--r--src/emu/sound/msm5232.c12
-rw-r--r--src/emu/sound/msm5232.h4
-rw-r--r--src/emu/sound/multipcm.h4
-rw-r--r--src/emu/sound/n63701x.h2
-rw-r--r--src/emu/sound/namco.c6
-rw-r--r--src/emu/sound/namco.h16
-rw-r--r--src/emu/sound/nes_apu.h4
-rw-r--r--src/emu/sound/nile.h8
-rw-r--r--src/emu/sound/okim6258.h6
-rw-r--r--src/emu/sound/okim6376.h4
-rw-r--r--src/emu/sound/qsound.h4
-rw-r--r--src/emu/sound/rf5c400.h4
-rw-r--r--src/emu/sound/rf5c68.h8
-rw-r--r--src/emu/sound/saa1099.h4
-rw-r--r--src/emu/sound/scsp.c35
-rw-r--r--src/emu/sound/scsp.h8
-rw-r--r--src/emu/sound/segapcm.h4
-rw-r--r--src/emu/sound/sn76496.h4
-rw-r--r--src/emu/sound/snkwave.h2
-rw-r--r--src/emu/sound/sp0250.h2
-rw-r--r--src/emu/sound/sp0256.c2
-rw-r--r--src/emu/sound/sp0256.h6
-rw-r--r--src/emu/sound/st0016.h4
-rw-r--r--src/emu/sound/t6w28.h2
-rw-r--r--src/emu/sound/tiaintf.h2
-rw-r--r--src/emu/sound/tms5110.h12
-rw-r--r--src/emu/sound/tms5220.h4
-rw-r--r--src/emu/sound/upd7759.h2
-rw-r--r--src/emu/sound/vlm5030.h2
-rw-r--r--src/emu/sound/vrender0.h4
-rw-r--r--src/emu/sound/x1_010.c4
-rw-r--r--src/emu/sound/x1_010.h8
-rw-r--r--src/emu/sound/ym2151.c4
-rw-r--r--src/emu/sound/ym2151.h2
-rw-r--r--src/emu/sound/ymf271.h4
-rw-r--r--src/emu/sound/ymf278b.h4
-rw-r--r--src/emu/sound/ymz280b.h4
-rw-r--r--src/emu/sound/zsg2.h4
-rw-r--r--src/emu/video/hd63484.h18
-rw-r--r--src/emu/video/i8275.h6
-rw-r--r--src/emu/video/pc_vga.h4
-rw-r--r--src/emu/video/s2636.h4
-rw-r--r--src/emu/video/tlc34076.h4
-rw-r--r--src/emu/video/tms9927.c10
-rw-r--r--src/emu/video/tms9927.h4
-rw-r--r--src/emu/video/voodoo.c24
-rw-r--r--src/emu/video/voodoo.h20
-rw-r--r--src/mame/audio/8080bw.c30
-rw-r--r--src/mame/audio/asteroid.c14
-rw-r--r--src/mame/audio/atarijsa.c2
-rw-r--r--src/mame/audio/avalnche.c10
-rw-r--r--src/mame/audio/blockade.c2
-rw-r--r--src/mame/audio/bsktball.c8
-rw-r--r--src/mame/audio/bzone.c2
-rw-r--r--src/mame/audio/canyon.c8
-rw-r--r--src/mame/audio/carnival.c4
-rw-r--r--src/mame/audio/circus.c14
-rw-r--r--src/mame/audio/copsnrob.c14
-rw-r--r--src/mame/audio/crbaloon.c6
-rw-r--r--src/mame/audio/dkong.c9
-rw-r--r--src/mame/audio/exidy.c6
-rw-r--r--src/mame/audio/exidy.h12
-rw-r--r--src/mame/audio/firetrk.c16
-rw-r--r--src/mame/audio/galaxian.c20
-rw-r--r--src/mame/audio/galaxian.h14
-rw-r--r--src/mame/audio/gottlieb.c10
-rw-r--r--src/mame/audio/hyprolyb.h4
-rw-r--r--src/mame/audio/irem.c12
-rw-r--r--src/mame/audio/jedi.c2
-rw-r--r--src/mame/audio/leland.c44
-rw-r--r--src/mame/audio/llander.c10
-rw-r--r--src/mame/audio/m72.h18
-rw-r--r--src/mame/audio/m79amb.c16
-rw-r--r--src/mame/audio/mario.c8
-rw-r--r--src/mame/audio/micro3d.c2
-rw-r--r--src/mame/audio/midway.c4
-rw-r--r--src/mame/audio/mw8080bw.c167
-rw-r--r--src/mame/audio/namco52.c2
-rw-r--r--src/mame/audio/namco52.h2
-rw-r--r--src/mame/audio/namco54.c6
-rw-r--r--src/mame/audio/namco54.h2
-rw-r--r--src/mame/audio/orbit.c12
-rw-r--r--src/mame/audio/phoenix.c14
-rw-r--r--src/mame/audio/pleiads.h6
-rw-r--r--src/mame/audio/poolshrk.c8
-rw-r--r--src/mame/audio/qix.c4
-rw-r--r--src/mame/audio/redalert.c16
-rw-r--r--src/mame/audio/scramble.c6
-rw-r--r--src/mame/audio/segag80r.c18
-rw-r--r--src/mame/audio/segasnd.h12
-rw-r--r--src/mame/audio/seibu.h4
-rw-r--r--src/mame/audio/skyraid.c10
-rw-r--r--src/mame/audio/snes_snd.c6
-rw-r--r--src/mame/audio/snes_snd.h12
-rw-r--r--src/mame/audio/snk6502.c2
-rw-r--r--src/mame/audio/spiders.c14
-rw-r--r--src/mame/audio/sprint8.c8
-rw-r--r--src/mame/audio/subs.c10
-rw-r--r--src/mame/audio/taitosnd.h12
-rw-r--r--src/mame/audio/trackfld.h8
-rw-r--r--src/mame/audio/vicdual.c40
-rw-r--r--src/mame/audio/wiping.h2
-rw-r--r--src/mame/drivers/40love.c3
-rw-r--r--src/mame/drivers/4enraya.c2
-rw-r--r--src/mame/drivers/5clown.c4
-rw-r--r--src/mame/drivers/88games.c22
-rw-r--r--src/mame/drivers/aliens.c14
-rw-r--r--src/mame/drivers/amspdwy.c2
-rw-r--r--src/mame/drivers/aristmk4.c12
-rw-r--r--src/mame/drivers/asterix.c2
-rw-r--r--src/mame/drivers/atarisy1.c4
-rw-r--r--src/mame/drivers/atarisy2.c2
-rw-r--r--src/mame/drivers/bagman.c6
-rw-r--r--src/mame/drivers/berzerk.c6
-rw-r--r--src/mame/drivers/bfcobra.c2
-rw-r--r--src/mame/drivers/bfm_sc1.c2
-rw-r--r--src/mame/drivers/bfm_sc2.c2
-rw-r--r--src/mame/drivers/bfm_sc4h.c12
-rw-r--r--src/mame/drivers/bigevglf.c3
-rw-r--r--src/mame/drivers/bishi.c2
-rw-r--r--src/mame/drivers/blockhl.c14
-rw-r--r--src/mame/drivers/bogeyman.c4
-rw-r--r--src/mame/drivers/bottom9.c20
-rw-r--r--src/mame/drivers/buggychl.c3
-rw-r--r--src/mame/drivers/bzone.c2
-rw-r--r--src/mame/drivers/calchase.c12
-rw-r--r--src/mame/drivers/cd32.c2
-rw-r--r--src/mame/drivers/centiped.c8
-rw-r--r--src/mame/drivers/cham24.c6
-rw-r--r--src/mame/drivers/cidelsa.c6
-rw-r--r--src/mame/drivers/circusc.c6
-rw-r--r--src/mame/drivers/cliffhgr.c4
-rw-r--r--src/mame/drivers/cninja.c4
-rw-r--r--src/mame/drivers/contra.c3
-rw-r--r--src/mame/drivers/crbaloon.c10
-rw-r--r--src/mame/drivers/crimfght.c14
-rw-r--r--src/mame/drivers/cubeqst.c8
-rw-r--r--src/mame/drivers/cvs.c18
-rw-r--r--src/mame/drivers/cybertnk.c7
-rw-r--r--src/mame/drivers/dambustr.c2
-rw-r--r--src/mame/drivers/darius.c6
-rw-r--r--src/mame/drivers/dblewing.c3
-rw-r--r--src/mame/drivers/djmain.c14
-rw-r--r--src/mame/drivers/dkong.c2
-rw-r--r--src/mame/drivers/dlair.c20
-rw-r--r--src/mame/drivers/dogfgt.c4
-rw-r--r--src/mame/drivers/dragrace.c44
-rw-r--r--src/mame/drivers/drw80pkr.c4
-rw-r--r--src/mame/drivers/dynadice.c4
-rw-r--r--src/mame/drivers/dynax.c4
-rw-r--r--src/mame/drivers/equites.c4
-rw-r--r--src/mame/drivers/esripsys.c6
-rw-r--r--src/mame/drivers/ettrivia.c18
-rw-r--r--src/mame/drivers/exterm.c2
-rw-r--r--src/mame/drivers/famibox.c6
-rw-r--r--src/mame/drivers/fastlane.c15
-rw-r--r--src/mame/drivers/fgoal.c8
-rw-r--r--src/mame/drivers/firetrk.c14
-rw-r--r--src/mame/drivers/flstory.c3
-rw-r--r--src/mame/drivers/funkball.c16
-rw-r--r--src/mame/drivers/fuukifg3.c4
-rw-r--r--src/mame/drivers/gaelco3d.c6
-rw-r--r--src/mame/drivers/galaxian.c46
-rw-r--r--src/mame/drivers/gamecstl.c12
-rw-r--r--src/mame/drivers/gbusters.c14
-rw-r--r--src/mame/drivers/ghosteo.c2
-rw-r--r--src/mame/drivers/goldnpkr.c8
-rw-r--r--src/mame/drivers/gradius3.c14
-rw-r--r--src/mame/drivers/grchamp.c18
-rw-r--r--src/mame/drivers/gsword.c4
-rw-r--r--src/mame/drivers/gticlub.c12
-rw-r--r--src/mame/drivers/gyruss.c5
-rw-r--r--src/mame/drivers/highvdeo.c4
-rw-r--r--src/mame/drivers/hitme.c8
-rw-r--r--src/mame/drivers/homedata.c4
-rw-r--r--src/mame/drivers/homerun.c2
-rw-r--r--src/mame/drivers/hornet.c22
-rw-r--r--src/mame/drivers/icecold.c8
-rw-r--r--src/mame/drivers/igs011.c12
-rw-r--r--src/mame/drivers/ironhors.c6
-rw-r--r--src/mame/drivers/jpmimpct.c2
-rw-r--r--src/mame/drivers/jpmsys5.c2
-rw-r--r--src/mame/drivers/kaneko16.c20
-rw-r--r--src/mame/drivers/kinst.c8
-rw-r--r--src/mame/drivers/kncljoe.c4
-rw-r--r--src/mame/drivers/ksys573.c22
-rw-r--r--src/mame/drivers/labyrunr.c6
-rw-r--r--src/mame/drivers/ladyfrog.c3
-rw-r--r--src/mame/drivers/laserbat.c6
-rw-r--r--src/mame/drivers/lethal.c28
-rw-r--r--src/mame/drivers/m10.c16
-rw-r--r--src/mame/drivers/m63.c8
-rw-r--r--src/mame/drivers/m72.c5
-rw-r--r--src/mame/drivers/m90.c10
-rw-r--r--src/mame/drivers/madalien.c4
-rw-r--r--src/mame/drivers/mainevt.c14
-rw-r--r--src/mame/drivers/malzak.c2
-rw-r--r--src/mame/drivers/maygay1b.c2
-rw-r--r--src/mame/drivers/mcr.c2
-rw-r--r--src/mame/drivers/mediagx.c16
-rw-r--r--src/mame/drivers/mermaid.c8
-rw-r--r--src/mame/drivers/metro.c6
-rw-r--r--src/mame/drivers/mexico86.c2
-rw-r--r--src/mame/drivers/midqslvr.c12
-rw-r--r--src/mame/drivers/midzeus.c4
-rw-r--r--src/mame/drivers/mirage.c3
-rw-r--r--src/mame/drivers/mirax.c8
-rw-r--r--src/mame/drivers/mlanding.c8
-rw-r--r--src/mame/drivers/model2.c2
-rw-r--r--src/mame/drivers/model3.c2
-rw-r--r--src/mame/drivers/mpu4hw.c18
-rw-r--r--src/mame/drivers/msisaac.c3
-rw-r--r--src/mame/drivers/multfish.c12
-rw-r--r--src/mame/drivers/multigam.c6
-rw-r--r--src/mame/drivers/munchmo.c4
-rw-r--r--src/mame/drivers/mw8080bw.c26
-rw-r--r--src/mame/drivers/mystston.c4
-rw-r--r--src/mame/drivers/namcona1.c6
-rw-r--r--src/mame/drivers/namcos86.c2
-rw-r--r--src/mame/drivers/neogeo.c4
-rw-r--r--src/mame/drivers/neoprint.c4
-rw-r--r--src/mame/drivers/ninjaw.c12
-rw-r--r--src/mame/drivers/norautp.c4
-rw-r--r--src/mame/drivers/nss.c26
-rw-r--r--src/mame/drivers/nwk-tr.c10
-rw-r--r--src/mame/drivers/nycaptor.c3
-rw-r--r--src/mame/drivers/nyny.c4
-rw-r--r--src/mame/drivers/orbit.c21
-rw-r--r--src/mame/drivers/othello.c10
-rw-r--r--src/mame/drivers/othunder.c10
-rw-r--r--src/mame/drivers/overdriv.c4
-rw-r--r--src/mame/drivers/pacman.c4
-rw-r--r--src/mame/drivers/parodius.c10
-rw-r--r--src/mame/drivers/playch10.c6
-rw-r--r--src/mame/drivers/polepos.c4
-rw-r--r--src/mame/drivers/ppmast93.c2
-rw-r--r--src/mame/drivers/prehisle.c2
-rw-r--r--src/mame/drivers/proconn.c24
-rw-r--r--src/mame/drivers/qdrmfgp.c34
-rw-r--r--src/mame/drivers/queen.c12
-rw-r--r--src/mame/drivers/r2dtank.c13
-rw-r--r--src/mame/drivers/rbmk.c4
-rw-r--r--src/mame/drivers/rollerg.c6
-rw-r--r--src/mame/drivers/royalmah.c12
-rw-r--r--src/mame/drivers/rpunch.c2
-rw-r--r--src/mame/drivers/sauro.c2
-rw-r--r--src/mame/drivers/savquest.c12
-rw-r--r--src/mame/drivers/seattle.c23
-rw-r--r--src/mame/drivers/segac2.c2
-rw-r--r--src/mame/drivers/segag80r.c2
-rw-r--r--src/mame/drivers/segag80v.c2
-rw-r--r--src/mame/drivers/segas16a.c4
-rw-r--r--src/mame/drivers/segas16b.c2
-rw-r--r--src/mame/drivers/seta.c12
-rw-r--r--src/mame/drivers/sfcbox.c4
-rw-r--r--src/mame/drivers/shanghai.c25
-rw-r--r--src/mame/drivers/sigmab52.c34
-rw-r--r--src/mame/drivers/skeetsht.c8
-rw-r--r--src/mame/drivers/skydiver.c13
-rw-r--r--src/mame/drivers/slapshot.c8
-rw-r--r--src/mame/drivers/snesb.c4
-rw-r--r--src/mame/drivers/snk.c2
-rw-r--r--src/mame/drivers/snk68.c2
-rw-r--r--src/mame/drivers/spiders.c5
-rw-r--r--src/mame/drivers/sprint2.c15
-rw-r--r--src/mame/drivers/sprint4.c12
-rw-r--r--src/mame/drivers/spy.c14
-rw-r--r--src/mame/drivers/starshp1.c20
-rw-r--r--src/mame/drivers/surpratk.c4
-rw-r--r--src/mame/drivers/system1.c2
-rw-r--r--src/mame/drivers/taito_b.c8
-rw-r--r--src/mame/drivers/taito_h.c4
-rw-r--r--src/mame/drivers/taito_l.c2
-rw-r--r--src/mame/drivers/taito_z.c18
-rw-r--r--src/mame/drivers/taitogn.c4
-rw-r--r--src/mame/drivers/taitowlf.c12
-rw-r--r--src/mame/drivers/tank8.c26
-rw-r--r--src/mame/drivers/thunderx.c14
-rw-r--r--src/mame/drivers/tmnt.c30
-rw-r--r--src/mame/drivers/toaplan2.c4
-rw-r--r--src/mame/drivers/topspeed.c6
-rw-r--r--src/mame/drivers/triplhnt.c26
-rw-r--r--src/mame/drivers/uapce.c2
-rw-r--r--src/mame/drivers/ultratnk.c8
-rw-r--r--src/mame/drivers/ultrsprt.c8
-rw-r--r--src/mame/drivers/vega.c8
-rw-r--r--src/mame/drivers/vegas.c16
-rw-r--r--src/mame/drivers/vendetta.c8
-rw-r--r--src/mame/drivers/vertigo.c4
-rw-r--r--src/mame/drivers/videopin.c12
-rw-r--r--src/mame/drivers/videopkr.c6
-rw-r--r--src/mame/drivers/viper.c12
-rw-r--r--src/mame/drivers/vmetal.c2
-rw-r--r--src/mame/drivers/voyager.c12
-rw-r--r--src/mame/drivers/vsnes.c12
-rw-r--r--src/mame/drivers/warpwarp.c4
-rw-r--r--src/mame/drivers/warriorb.c10
-rw-r--r--src/mame/drivers/wecleman.c12
-rw-r--r--src/mame/drivers/wgp.c6
-rw-r--r--src/mame/drivers/wiz.c8
-rw-r--r--src/mame/drivers/xtom3d.c12
-rw-r--r--src/mame/drivers/zaccaria.c6
-rw-r--r--src/mame/drivers/zn.c9
-rw-r--r--src/mame/includes/8080bw.h8
-rw-r--r--src/mame/includes/asteroid.h14
-rw-r--r--src/mame/includes/atari.h6
-rw-r--r--src/mame/includes/avalnche.h6
-rw-r--r--src/mame/includes/beezer.h10
-rw-r--r--src/mame/includes/blockade.h2
-rw-r--r--src/mame/includes/bsktball.h6
-rw-r--r--src/mame/includes/bzone.h4
-rw-r--r--src/mame/includes/canyon.h8
-rw-r--r--src/mame/includes/cd32.h4
-rw-r--r--src/mame/includes/cps3.h4
-rw-r--r--src/mame/includes/crbaloon.h6
-rw-r--r--src/mame/includes/dc.h8
-rw-r--r--src/mame/includes/firetrk.h14
-rw-r--r--src/mame/includes/flower.h4
-rw-r--r--src/mame/includes/gaelco2.h6
-rw-r--r--src/mame/includes/gomoku.h4
-rw-r--r--src/mame/includes/gridlee.h2
-rw-r--r--src/mame/includes/hanaawas.h2
-rw-r--r--src/mame/includes/harddriv.h2
-rw-r--r--src/mame/includes/homerun.h2
-rw-r--r--src/mame/includes/leland.h20
-rw-r--r--src/mame/includes/m79amb.h4
-rw-r--r--src/mame/includes/mario.h4
-rw-r--r--src/mame/includes/mcr.h2
-rw-r--r--src/mame/includes/megadriv.h4
-rw-r--r--src/mame/includes/micro3d.h2
-rw-r--r--src/mame/includes/mw8080bw.h50
-rw-r--r--src/mame/includes/n64.h8
-rw-r--r--src/mame/includes/orbit.h8
-rw-r--r--src/mame/includes/phoenix.h6
-rw-r--r--src/mame/includes/polepos.h4
-rw-r--r--src/mame/includes/poolshrk.h8
-rw-r--r--src/mame/includes/qix.h4
-rw-r--r--src/mame/includes/scramble.h14
-rw-r--r--src/mame/includes/segas16a.h2
-rw-r--r--src/mame/includes/simpsons.h2
-rw-r--r--src/mame/includes/skyraid.h2
-rw-r--r--src/mame/includes/spiders.h8
-rw-r--r--src/mame/includes/sprint8.h8
-rw-r--r--src/mame/includes/stfight.h2
-rw-r--r--src/mame/includes/subs.h10
-rw-r--r--src/mame/includes/suna8.h6
-rw-r--r--src/mame/includes/system1.h2
-rw-r--r--src/mame/includes/tatsumi.h4
-rw-r--r--src/mame/includes/tiamc1.h6
-rw-r--r--src/mame/includes/turbo.h16
-rw-r--r--src/mame/includes/tx1.h14
-rw-r--r--src/mame/includes/vectrex.h6
-rw-r--r--src/mame/includes/warpwarp.h8
-rw-r--r--src/mame/includes/xxmissio.h4
-rw-r--r--src/mame/includes/zaxxon.h10
-rw-r--r--src/mame/machine/amiga.c4
-rw-r--r--src/mame/machine/archimds.c4
-rw-r--r--src/mame/machine/atarifb.c36
-rw-r--r--src/mame/machine/beezer.c20
-rw-r--r--src/mame/machine/buggychl.h6
-rw-r--r--src/mame/machine/cd32.c8
-rw-r--r--src/mame/machine/cdicdic.h8
-rw-r--r--src/mame/machine/cdislave.h4
-rw-r--r--src/mame/machine/dc.c8
-rw-r--r--src/mame/machine/gaelco3d.h14
-rw-r--r--src/mame/machine/konppc.c20
-rw-r--r--src/mame/machine/konppc.h12
-rw-r--r--src/mame/machine/leland.c11
-rw-r--r--src/mame/machine/mathbox.h8
-rw-r--r--src/mame/machine/mcr.c12
-rw-r--r--src/mame/machine/mcr68.c4
-rw-r--r--src/mame/machine/megadriv.c6
-rw-r--r--src/mame/machine/megavdp.c2
-rw-r--r--src/mame/machine/mhavoc.c2
-rw-r--r--src/mame/machine/midwayic.c8
-rw-r--r--src/mame/machine/midwayic.h4
-rw-r--r--src/mame/machine/namco06.c4
-rw-r--r--src/mame/machine/namco06.h8
-rw-r--r--src/mame/machine/namco50.h4
-rw-r--r--src/mame/machine/namco51.h4
-rw-r--r--src/mame/machine/namco53.h2
-rw-r--r--src/mame/machine/namco62.h4
-rw-r--r--src/mame/machine/namcoio.h4
-rw-r--r--src/mame/machine/namcos1.c4
-rw-r--r--src/mame/machine/nitedrvr.c15
-rw-r--r--src/mame/machine/nmk004.c99
-rw-r--r--src/mame/machine/nmk112.c2
-rw-r--r--src/mame/machine/nmk112.h4
-rw-r--r--src/mame/machine/playch10.c27
-rw-r--r--src/mame/machine/qix.c16
-rw-r--r--src/mame/machine/simpsons.c2
-rw-r--r--src/mame/machine/snes.c4
-rw-r--r--src/mame/machine/taitoio.c26
-rw-r--r--src/mame/machine/taitoio.h36
-rw-r--r--src/mame/machine/tatsumi.c28
-rw-r--r--src/mame/machine/vectrex.c2
-rw-r--r--src/mame/machine/williams.c28
-rw-r--r--src/mame/video/astrocde.c2
-rw-r--r--src/mame/video/atarirle.h8
-rw-r--r--src/mame/video/boogwing.c8
-rw-r--r--src/mame/video/btoads.c4
-rw-r--r--src/mame/video/cbuster.c3
-rw-r--r--src/mame/video/cninja.c19
-rw-r--r--src/mame/video/combatsc.c26
-rw-r--r--src/mame/video/contra.c40
-rw-r--r--src/mame/video/dassault.c5
-rw-r--r--src/mame/video/dec0.c82
-rw-r--r--src/mame/video/decbac06.c50
-rw-r--r--src/mame/video/decbac06.h44
-rw-r--r--src/mame/video/deco16ic.c12
-rw-r--r--src/mame/video/deco16ic.h24
-rw-r--r--src/mame/video/decocomn.h12
-rw-r--r--src/mame/video/dietgo.c3
-rw-r--r--src/mame/video/dkong.c5
-rw-r--r--src/mame/video/fastlane.c17
-rw-r--r--src/mame/video/flkatck.c23
-rw-r--r--src/mame/video/funkyjet.c3
-rw-r--r--src/mame/video/gp9001.c24
-rw-r--r--src/mame/video/gp9001.h18
-rw-r--r--src/mame/video/gradius3.c5
-rw-r--r--src/mame/video/groundfx.c7
-rw-r--r--src/mame/video/hcastle.c34
-rw-r--r--src/mame/video/itech8.c2
-rw-r--r--src/mame/video/kan_pand.h8
-rw-r--r--src/mame/video/konicdev.c80
-rw-r--r--src/mame/video/konicdev.h262
-rw-r--r--src/mame/video/labyrunr.c33
-rw-r--r--src/mame/video/naughtyb.c4
-rw-r--r--src/mame/video/phoenix.c2
-rw-r--r--src/mame/video/pktgaldx.c3
-rw-r--r--src/mame/video/rohga.c13
-rw-r--r--src/mame/video/seta001.h30
-rw-r--r--src/mame/video/simpsons.c4
-rw-r--r--src/mame/video/skydiver.c6
-rw-r--r--src/mame/video/slapshot.c19
-rw-r--r--src/mame/video/sprint4.c9
-rw-r--r--src/mame/video/subs.c5
-rw-r--r--src/mame/video/supbtime.c3
-rw-r--r--src/mame/video/taito_b.c24
-rw-r--r--src/mame/video/taito_f2.c101
-rw-r--r--src/mame/video/taito_h.c63
-rw-r--r--src/mame/video/taito_o.c21
-rw-r--r--src/mame/video/taitoair.c21
-rw-r--r--src/mame/video/taitoic.c40
-rw-r--r--src/mame/video/taitoic.h110
-rw-r--r--src/mame/video/tia.c2
-rw-r--r--src/mame/video/triplhnt.c5
-rw-r--r--src/mame/video/tumblep.c3
-rw-r--r--src/mame/video/ultratnk.c5
-rw-r--r--src/mame/video/undrfire.c6
-rw-r--r--src/mame/video/vaportra.c3
-rw-r--r--src/mame/video/vectrex.c12
-rw-r--r--src/mame/video/xmen.c5
-rw-r--r--src/mess/audio/dave.c11
-rw-r--r--src/mess/audio/dave.h4
-rw-r--r--src/mess/audio/gb.h8
-rw-r--r--src/mess/audio/mea8000.c6
-rw-r--r--src/mess/audio/mea8000.h6
-rw-r--r--src/mess/audio/t6721.h4
-rw-r--r--src/mess/audio/upd1771.h2
-rw-r--r--src/mess/drivers/abc1600.c76
-rw-r--r--src/mess/drivers/abc80x.c4
-rw-r--r--src/mess/drivers/ace.c2
-rw-r--r--src/mess/drivers/ami1200.c2
-rw-r--r--src/mess/drivers/amiga.c6
-rw-r--r--src/mess/drivers/apf.c16
-rw-r--r--src/mess/drivers/apollo.c6
-rw-r--r--src/mess/drivers/apricot.c18
-rw-r--r--src/mess/drivers/at.c8
-rw-r--r--src/mess/drivers/bebox.c4
-rw-r--r--src/mess/drivers/bigbord2.c14
-rw-r--r--src/mess/drivers/bml3.c4
-rw-r--r--src/mess/drivers/c128.c4
-rw-r--r--src/mess/drivers/c64.c8
-rw-r--r--src/mess/drivers/c65.c4
-rw-r--r--src/mess/drivers/elwro800.c6
-rw-r--r--src/mess/drivers/exelv.c2
-rw-r--r--src/mess/drivers/fm7.c34
-rw-r--r--src/mess/drivers/fmtowns.c28
-rw-r--r--src/mess/drivers/gba.c102
-rw-r--r--src/mess/drivers/homelab.c2
-rw-r--r--src/mess/drivers/ip22.c22
-rw-r--r--src/mess/drivers/m20.c6
-rw-r--r--src/mess/drivers/mikromik.c14
-rw-r--r--src/mess/drivers/msx.c4
-rw-r--r--src/mess/drivers/multi8.c4
-rw-r--r--src/mess/drivers/mz2000.c4
-rw-r--r--src/mess/drivers/mz2500.c16
-rw-r--r--src/mess/drivers/mz6500.c4
-rw-r--r--src/mess/drivers/nanos.c14
-rw-r--r--src/mess/drivers/nascom1.c6
-rw-r--r--src/mess/drivers/nes.c6
-rw-r--r--src/mess/drivers/ng_aes.c4
-rw-r--r--src/mess/drivers/ngp.c2
-rw-r--r--src/mess/drivers/osi.c4
-rw-r--r--src/mess/drivers/p8k.c60
-rw-r--r--src/mess/drivers/palm.c52
-rw-r--r--src/mess/drivers/pasopia7.c6
-rw-r--r--src/mess/drivers/pc1512.c14
-rw-r--r--src/mess/drivers/pc8801.c12
-rw-r--r--src/mess/drivers/pc88va.c6
-rw-r--r--src/mess/drivers/pc9801.c46
-rw-r--r--src/mess/drivers/pcm.c12
-rw-r--r--src/mess/drivers/pcw.c6
-rw-r--r--src/mess/drivers/pes.c4
-rw-r--r--src/mess/drivers/plus4.c4
-rw-r--r--src/mess/drivers/ptcsol.c6
-rw-r--r--src/mess/drivers/ql.c16
-rw-r--r--src/mess/drivers/rt1715.c12
-rw-r--r--src/mess/drivers/smc777.c16
-rw-r--r--src/mess/drivers/snes.c4
-rw-r--r--src/mess/drivers/sorcerer.c6
-rw-r--r--src/mess/drivers/specpls3.c6
-rw-r--r--src/mess/drivers/ssystem3.c5
-rw-r--r--src/mess/drivers/svision.c4
-rw-r--r--src/mess/drivers/trs80.c6
-rw-r--r--src/mess/drivers/trs80m2.c4
-rw-r--r--src/mess/drivers/vic10.c16
-rw-r--r--src/mess/drivers/vidbrain.c2
-rw-r--r--src/mess/drivers/vip.c4
-rw-r--r--src/mess/drivers/vixen.c2
-rw-r--r--src/mess/drivers/vt100.c2
-rw-r--r--src/mess/drivers/wangpc.c4
-rw-r--r--src/mess/drivers/x1.c54
-rw-r--r--src/mess/drivers/x1twin.c12
-rw-r--r--src/mess/drivers/x68k.c22
-rw-r--r--src/mess/drivers/z100.c16
-rw-r--r--src/mess/drivers/z80ne.c8
-rw-r--r--src/mess/formats/m65_snqk.c8
-rw-r--r--src/mess/formats/spec_snqk.c6
-rw-r--r--src/mess/includes/amstrad.h8
-rw-r--r--src/mess/includes/apollo.h28
-rw-r--r--src/mess/includes/c16.h4
-rw-r--r--src/mess/includes/c64.h2
-rw-r--r--src/mess/includes/c64_legacy.h6
-rw-r--r--src/mess/includes/cbmb.h22
-rw-r--r--src/mess/includes/cgenie.h4
-rw-r--r--src/mess/includes/kaypro.h4
-rw-r--r--src/mess/includes/mc68328.h56
-rw-r--r--src/mess/includes/msx.h6
-rw-r--r--src/mess/includes/mtx.h8
-rw-r--r--src/mess/includes/nascom1.h4
-rw-r--r--src/mess/includes/pc.h8
-rw-r--r--src/mess/includes/pokemini.h4
-rw-r--r--src/mess/includes/svision.h4
-rw-r--r--src/mess/includes/vic10.h2
-rw-r--r--src/mess/includes/wswan.h2
-rw-r--r--src/mess/includes/z80ne.h10
-rw-r--r--src/mess/machine/3c505.h4
-rw-r--r--src/mess/machine/990_tap.h4
-rw-r--r--src/mess/machine/a2diskii.c4
-rw-r--r--src/mess/machine/a2echoii.c4
-rw-r--r--src/mess/machine/a2mockingboard.c46
-rw-r--r--src/mess/machine/a7800.c2
-rw-r--r--src/mess/machine/abc77.c2
-rw-r--r--src/mess/machine/aim65.c2
-rw-r--r--src/mess/machine/amigacd.c4
-rw-r--r--src/mess/machine/amigacd.h4
-rw-r--r--src/mess/machine/amstr_pc.c6
-rw-r--r--src/mess/machine/amstrad.c102
-rw-r--r--src/mess/machine/apollo.c32
-rw-r--r--src/mess/machine/apollo_kbd.c16
-rw-r--r--src/mess/machine/apollo_kbd.h10
-rw-r--r--src/mess/machine/apple1.c6
-rw-r--r--src/mess/machine/apple2gs.c4
-rw-r--r--src/mess/machine/apple3.c4
-rw-r--r--src/mess/machine/applefdc.h4
-rw-r--r--src/mess/machine/ataridev.h4
-rw-r--r--src/mess/machine/ay31015.c20
-rw-r--r--src/mess/machine/ay31015.h6
-rw-r--r--src/mess/machine/bbc.c92
-rw-r--r--src/mess/machine/bebox.c4
-rw-r--r--src/mess/machine/beta.c16
-rw-r--r--src/mess/machine/beta.h22
-rw-r--r--src/mess/machine/c128.c16
-rw-r--r--src/mess/machine/c1551.c4
-rw-r--r--src/mess/machine/c64.c20
-rw-r--r--src/mess/machine/c64_currah_speech.c2
-rw-r--r--src/mess/machine/c64_ieee488.c4
-rw-r--r--src/mess/machine/c64_sfx_sound_expander.c4
-rw-r--r--src/mess/machine/c65.c18
-rw-r--r--src/mess/machine/cgenie.c22
-rw-r--r--src/mess/machine/coco_fdc.c38
-rw-r--r--src/mess/machine/compis.c12
-rw-r--r--src/mess/machine/comx_fd.c4
-rw-r--r--src/mess/machine/concept.c30
-rw-r--r--src/mess/machine/cpc_ssa1.c4
-rw-r--r--src/mess/machine/dai.c4
-rw-r--r--src/mess/machine/dgn_beta.c42
-rw-r--r--src/mess/machine/dgnalpha.c22
-rw-r--r--src/mess/machine/ds1315.h8
-rw-r--r--src/mess/machine/e05a03.h4
-rw-r--r--src/mess/machine/gb.c28
-rw-r--r--src/mess/machine/hd63450.h4
-rw-r--r--src/mess/machine/hec2hrp.c18
-rw-r--r--src/mess/machine/hecdisk2.c8
-rw-r--r--src/mess/machine/i8271.c4
-rw-r--r--src/mess/machine/i8271.h12
-rw-r--r--src/mess/machine/iq151_disc2.c6
-rw-r--r--src/mess/machine/isa_adlib.c6
-rw-r--r--src/mess/machine/isa_fdc.c24
-rw-r--r--src/mess/machine/isa_gblaster.c4
-rw-r--r--src/mess/machine/isa_hdc.c4
-rw-r--r--src/mess/machine/isa_ibm_mfc.c2
-rw-r--r--src/mess/machine/isa_ide.c8
-rw-r--r--src/mess/machine/isa_sblaster.c10
-rw-r--r--src/mess/machine/kaypro.c14
-rw-r--r--src/mess/machine/kr2376.c9
-rw-r--r--src/mess/machine/kr2376.h5
-rw-r--r--src/mess/machine/lisa.c21
-rw-r--r--src/mess/machine/lux10828.c16
-rw-r--r--src/mess/machine/mac.c28
-rw-r--r--src/mess/machine/macpci.c12
-rw-r--r--src/mess/machine/mbc55x.c12
-rw-r--r--src/mess/machine/mc68328.c115
-rw-r--r--src/mess/machine/mc68328.h27
-rw-r--r--src/mess/machine/mc6843.h4
-rw-r--r--src/mess/machine/mc6846.c53
-rw-r--r--src/mess/machine/mc6846.h16
-rw-r--r--src/mess/machine/mc6854.h4
-rw-r--r--src/mess/machine/mc80.c12
-rw-r--r--src/mess/machine/micropolis.c10
-rw-r--r--src/mess/machine/micropolis.h12
-rw-r--r--src/mess/machine/mm58274c.h4
-rw-r--r--src/mess/machine/mos6530.h4
-rw-r--r--src/mess/machine/msx.c4
-rw-r--r--src/mess/machine/msx_slot.c140
-rw-r--r--src/mess/machine/mtx.c2
-rw-r--r--src/mess/machine/mz700.c8
-rw-r--r--src/mess/machine/nes_pcb.c2
-rw-r--r--src/mess/machine/odyssey2.c2
-rw-r--r--src/mess/machine/omti8621.c8
-rw-r--r--src/mess/machine/omti8621.h4
-rw-r--r--src/mess/machine/oric.c55
-rw-r--r--src/mess/machine/orion.c44
-rw-r--r--src/mess/machine/osborne1.c4
-rw-r--r--src/mess/machine/partner.c16
-rw-r--r--src/mess/machine/pc.c4
-rw-r--r--src/mess/machine/pc_fdc.c66
-rw-r--r--src/mess/machine/pc_fdc.h4
-rw-r--r--src/mess/machine/pc_lpt.c10
-rw-r--r--src/mess/machine/pc_lpt.h16
-rw-r--r--src/mess/machine/pk8020.c24
-rw-r--r--src/mess/machine/pmd85.c4
-rw-r--r--src/mess/machine/rmnimbus.c50
-rw-r--r--src/mess/machine/s100.c8
-rw-r--r--src/mess/machine/s100.h8
-rw-r--r--src/mess/machine/s100_dj2db.c12
-rw-r--r--src/mess/machine/s100_dj2db.h8
-rw-r--r--src/mess/machine/s100_mm65k16s.c4
-rw-r--r--src/mess/machine/s100_mm65k16s.h4
-rw-r--r--src/mess/machine/s100_wunderbus.c8
-rw-r--r--src/mess/machine/s100_wunderbus.h4
-rw-r--r--src/mess/machine/s3c44b0.c8
-rw-r--r--src/mess/machine/sc499.h4
-rw-r--r--src/mess/machine/sms.c4
-rw-r--r--src/mess/machine/southbridge.c4
-rw-r--r--src/mess/machine/super80.c2
-rw-r--r--src/mess/machine/svi318.c16
-rw-r--r--src/mess/machine/thomflop.c12
-rw-r--r--src/mess/machine/thomson.c38
-rw-r--r--src/mess/machine/ti99/bwg.c8
-rw-r--r--src/mess/machine/ti99/genboard.c8
-rw-r--r--src/mess/machine/ti99/hfdc.c4
-rw-r--r--src/mess/machine/ti99/ti_fdc.c4
-rw-r--r--src/mess/machine/trs80.c2
-rw-r--r--src/mess/machine/tvc_hbf.c4
-rw-r--r--src/mess/machine/upd7002.h6
-rw-r--r--src/mess/machine/upd71071.c4
-rw-r--r--src/mess/machine/upd71071.h4
-rw-r--r--src/mess/machine/upd765.c4
-rw-r--r--src/mess/machine/upd765.h10
-rw-r--r--src/mess/machine/v1050kb.c2
-rw-r--r--src/mess/machine/wswan.c2
-rw-r--r--src/mess/machine/z80ne.c26
-rw-r--r--src/mess/video/733_asr.h4
-rw-r--r--src/mess/video/911_vdt.h4
-rw-r--r--src/mess/video/dl1416.h2
-rw-r--r--src/mess/video/isa_mda.c8
-rw-r--r--src/mess/video/k1ge.h4
-rw-r--r--src/mess/video/vdc8563.h4
-rw-r--r--src/mess/video/vic4567.h6
-rw-r--r--src/mess/video/vic6567.h4
-rw-r--r--src/mess/video/vtvideo.h8
-rw-r--r--src/mess/video/x68k.c2
783 files changed, 4894 insertions, 4802 deletions
diff --git a/src/emu/addrmap.c b/src/emu/addrmap.c
index 787daf27ab0..4c3bea8c4fb 100644
--- a/src/emu/addrmap.c
+++ b/src/emu/addrmap.c
@@ -66,18 +66,10 @@ address_map_entry::address_map_entry(address_map &map, offs_t start, offs_t end)
m_rspace16(NULL),
m_rspace32(NULL),
m_rspace64(NULL),
- m_rdevice8(NULL),
- m_rdevice16(NULL),
- m_rdevice32(NULL),
- m_rdevice64(NULL),
m_wspace8(NULL),
m_wspace16(NULL),
m_wspace32(NULL),
m_wspace64(NULL),
- m_wdevice8(NULL),
- m_wdevice16(NULL),
- m_wdevice32(NULL),
- m_wdevice64(NULL),
m_memory(NULL),
m_bytestart(0),
m_byteend(0),
@@ -234,39 +226,6 @@ void address_map_entry::internal_set_handler(read8_space_func rfunc, const char
}
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(8, unitmask, string));
- m_read.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_read.m_bits = 8;
- m_read.m_mask = unitmask;
- m_read.m_name = string;
- device.subtag(m_read.m_tag, tag);
- m_rdevice8 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(8, unitmask, string));
- m_write.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_write.m_bits = 8;
- m_write.m_mask = unitmask;
- m_write.m_name = string;
- device.subtag(m_write.m_tag, tag);
- m_wdevice8 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT64 unitmask)
-{
- internal_set_handler(device, tag, rfunc, rstring, unitmask);
- internal_set_handler(device, tag, wfunc, wstring, unitmask);
-}
-
-
void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read8_delegate func, UINT64 unitmask)
{
assert(!func.isnull());
@@ -336,39 +295,6 @@ void address_map_entry::internal_set_handler(read16_space_func rfunc, const char
}
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(16, unitmask, string));
- m_read.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_read.m_bits = 16;
- m_read.m_mask = unitmask;
- m_read.m_name = string;
- device.subtag(m_read.m_tag, tag);
- m_rdevice16 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(16, unitmask, string));
- m_write.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_write.m_bits = 16;
- m_write.m_mask = unitmask;
- m_write.m_name = string;
- device.subtag(m_write.m_tag, tag);
- m_wdevice16 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT64 unitmask)
-{
- internal_set_handler(device, tag, rfunc, rstring, unitmask);
- internal_set_handler(device, tag, wfunc, wstring, unitmask);
-}
-
-
void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read16_delegate func, UINT64 unitmask)
{
assert(!func.isnull());
@@ -438,39 +364,6 @@ void address_map_entry::internal_set_handler(read32_space_func rfunc, const char
}
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(32, unitmask, string));
- m_read.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_read.m_bits = 32;
- m_read.m_mask = unitmask;
- m_read.m_name = string;
- device.subtag(m_read.m_tag, tag);
- m_rdevice32 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(32, unitmask, string));
- m_write.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_write.m_bits = 32;
- m_write.m_mask = unitmask;
- m_write.m_name = string;
- device.subtag(m_write.m_tag, tag);
- m_wdevice32 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring, UINT64 unitmask)
-{
- internal_set_handler(device, tag, rfunc, rstring, unitmask);
- internal_set_handler(device, tag, wfunc, wstring, unitmask);
-}
-
-
void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read32_delegate func, UINT64 unitmask)
{
assert(!func.isnull());
@@ -540,39 +433,6 @@ void address_map_entry::internal_set_handler(read64_space_func rfunc, const char
}
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read64_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(64, unitmask, string));
- m_read.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_read.m_bits = 64;
- m_read.m_mask = 0;
- m_read.m_name = string;
- device.subtag(m_read.m_tag, tag);
- m_rdevice64 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, write64_device_func func, const char *string, UINT64 unitmask)
-{
- assert(func != NULL);
- assert(unitmask_is_appropriate(64, unitmask, string));
- m_write.m_type = AMH_LEGACY_DEVICE_HANDLER;
- m_write.m_bits = 64;
- m_write.m_mask = 0;
- m_write.m_name = string;
- device.subtag(m_write.m_tag, tag);
- m_wdevice64 = func;
-}
-
-
-void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read64_device_func rfunc, const char *rstring, write64_device_func wfunc, const char *wstring, UINT64 unitmask)
-{
- internal_set_handler(device, tag, rfunc, rstring, unitmask);
- internal_set_handler(device, tag, wfunc, wstring, unitmask);
-}
-
-
void address_map_entry::internal_set_handler(const device_t &device, const char *tag, read64_delegate func, UINT64 unitmask)
{
assert(!func.isnull());
diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h
index 92c5d88d764..05e1600b9ec 100644
--- a/src/emu/addrmap.h
+++ b/src/emu/addrmap.h
@@ -62,7 +62,6 @@ enum map_handler_type
AMH_UNMAP,
AMH_DEVICE_DELEGATE,
AMH_LEGACY_SPACE_HANDLER,
- AMH_LEGACY_DEVICE_HANDLER,
AMH_PORT,
AMH_BANK,
AMH_DEVICE_SUBMAP
@@ -160,10 +159,6 @@ public:
read16_space_func m_rspace16; // 16-bit legacy address space handler
read32_space_func m_rspace32; // 32-bit legacy address space handler
read64_space_func m_rspace64; // 64-bit legacy address space handler
- read8_device_func m_rdevice8; // 8-bit legacy device handler
- read16_device_func m_rdevice16; // 16-bit legacy device handler
- read32_device_func m_rdevice32; // 32-bit legacy device handler
- read64_device_func m_rdevice64; // 64-bit legacy device handler
write8_delegate m_wproto8; // 8-bit write proto-delegate
write16_delegate m_wproto16; // 16-bit write proto-delegate
write32_delegate m_wproto32; // 32-bit write proto-delegate
@@ -172,10 +167,6 @@ public:
write16_space_func m_wspace16; // 16-bit legacy address space handler
write32_space_func m_wspace32; // 32-bit legacy address space handler
write64_space_func m_wspace64; // 64-bit legacy address space handler
- write8_device_func m_wdevice8; // 8-bit legacy device handler
- write16_device_func m_wdevice16; // 16-bit legacy device handler
- write32_device_func m_wdevice32; // 32-bit legacy device handler
- write64_device_func m_wdevice64; // 64-bit legacy device handler
address_map_delegate m_submap_delegate;
int m_submap_bits;
@@ -195,9 +186,6 @@ protected:
void internal_set_handler(read8_space_func func, const char *string, UINT64 mask);
void internal_set_handler(write8_space_func func, const char *string, UINT64 mask);
void internal_set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read8_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, write8_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT64 mask);
@@ -206,9 +194,6 @@ protected:
void internal_set_handler(read16_space_func func, const char *string, UINT64 mask);
void internal_set_handler(write16_space_func func, const char *string, UINT64 mask);
void internal_set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read16_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, write16_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc, UINT64 mask);
@@ -217,9 +202,6 @@ protected:
void internal_set_handler(read32_space_func func, const char *string, UINT64 mask);
void internal_set_handler(write32_space_func func, const char *string, UINT64 mask);
void internal_set_handler(read32_space_func rfunc, const char *rstring, write32_space_func wfunc, const char *wstring, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read32_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, write32_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read32_delegate rfunc, write32_delegate wfunc, UINT64 mask);
@@ -228,9 +210,6 @@ protected:
void internal_set_handler(read64_space_func func, const char *string, UINT64 mask);
void internal_set_handler(write64_space_func func, const char *string, UINT64 mask);
void internal_set_handler(read64_space_func rfunc, const char *rstring, write64_space_func wfunc, const char *wstring, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read64_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, write64_device_func func, const char *string, UINT64 mask);
- void internal_set_handler(const device_t &device, const char *tag, read64_device_func rfunc, const char *rstring, write64_device_func wfunc, const char *wstring, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read64_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, write64_delegate func, UINT64 mask);
void internal_set_handler(const device_t &device, const char *tag, read64_delegate rfunc, write64_delegate wfunc, UINT64 mask);
@@ -255,9 +234,6 @@ public:
void set_handler(read8_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(write8_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); }
- void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); }
void set_handler(const device_t &device, const char *tag, read8_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, write8_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); }
@@ -278,9 +254,6 @@ public:
void set_handler(read16_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(write16_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); }
- void set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); }
void set_handler(const device_t &device, const char *tag, read16_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, write16_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); }
@@ -289,9 +262,6 @@ public:
void set_handler(read8_space_func func, const char *string, UINT16 mask) { internal_set_handler(func, string, mask); }
void set_handler(write8_space_func func, const char *string, UINT16 mask) { internal_set_handler(func, string, mask); }
void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT16 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); }
- void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT16 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT16 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT16 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); }
void set_handler(const device_t &device, const char *tag, read8_delegate func, UINT16 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, write8_delegate func, UINT16 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT16 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); }
@@ -312,9 +282,6 @@ public:
void set_handler(read32_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(write32_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(read32_space_func rfunc, const char *rstring, write32_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); }
- void set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); }
void set_handler(const device_t &device, const char *tag, read32_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, write32_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, read32_delegate rfunc, write32_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); }
@@ -323,9 +290,6 @@ public:
void set_handler(read16_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); }
void set_handler(write16_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); }
void set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); }
- void set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); }
void set_handler(const device_t &device, const char *tag, read16_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, write16_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc, UINT32 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); }
@@ -334,9 +298,6 @@ public:
void set_handler(read8_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); }
void set_handler(write8_space_func func, const char *string, UINT32 mask) { internal_set_handler(func, string, mask); }
void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); }
- void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT32 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT32 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); }
void set_handler(const device_t &device, const char *tag, read8_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, write8_delegate func, UINT32 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT32 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); }
@@ -357,9 +318,6 @@ public:
void set_handler(read64_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(write64_space_func func, const char *string) { internal_set_handler(func, string, 0); }
void set_handler(read64_space_func rfunc, const char *rstring, write64_space_func wfunc, const char *wstring) { internal_set_handler(rfunc, rstring, wfunc, wstring, 0); }
- void set_handler(const device_t &device, const char *tag, read64_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, write64_device_func func, const char *string) { internal_set_handler(device, tag, func, string, 0); }
- void set_handler(const device_t &device, const char *tag, read64_device_func rfunc, const char *rstring, write64_device_func wfunc, const char *wstring) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, 0); }
void set_handler(const device_t &device, const char *tag, read64_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, write64_delegate func) { internal_set_handler(device, tag, func, 0); }
void set_handler(const device_t &device, const char *tag, read64_delegate rfunc, write64_delegate wfunc) { internal_set_handler(device, tag, rfunc, wfunc, 0); }
@@ -368,9 +326,6 @@ public:
void set_handler(read32_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); }
void set_handler(write32_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); }
void set_handler(read32_space_func rfunc, const char *rstring, write32_space_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); }
- void set_handler(const device_t &device, const char *tag, read32_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, write32_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, read32_device_func rfunc, const char *rstring, write32_device_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); }
void set_handler(const device_t &device, const char *tag, read32_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, write32_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, read32_delegate rfunc, write32_delegate wfunc, UINT64 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); }
@@ -379,9 +334,6 @@ public:
void set_handler(read16_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); }
void set_handler(write16_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); }
void set_handler(read16_space_func rfunc, const char *rstring, write16_space_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); }
- void set_handler(const device_t &device, const char *tag, read16_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, write16_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, read16_device_func rfunc, const char *rstring, write16_device_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); }
void set_handler(const device_t &device, const char *tag, read16_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, write16_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, read16_delegate rfunc, write16_delegate wfunc, UINT64 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); }
@@ -390,9 +342,6 @@ public:
void set_handler(read8_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); }
void set_handler(write8_space_func func, const char *string, UINT64 mask) { internal_set_handler(func, string, mask); }
void set_handler(read8_space_func rfunc, const char *rstring, write8_space_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(rfunc, rstring, wfunc, wstring, mask); }
- void set_handler(const device_t &device, const char *tag, read8_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, write8_device_func func, const char *string, UINT64 mask) { internal_set_handler(device, tag, func, string, mask); }
- void set_handler(const device_t &device, const char *tag, read8_device_func rfunc, const char *rstring, write8_device_func wfunc, const char *wstring, UINT64 mask) { internal_set_handler(device, tag, rfunc, rstring, wfunc, wstring, mask); }
void set_handler(const device_t &device, const char *tag, read8_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, write8_delegate func, UINT64 mask) { internal_set_handler(device, tag, func, mask); }
void set_handler(const device_t &device, const char *tag, read8_delegate rfunc, write8_delegate wfunc, UINT64 mask) { internal_set_handler(device, tag, rfunc, wfunc, mask); }
@@ -546,38 +495,38 @@ void _class :: _name(address_map &map, const device_t &device) \
// legacy device reads
#define AM_DEVREAD_LEGACY(_tag, _handler) \
- curentry->set_handler(device, _tag, _handler, #_handler); \
+ curentry->set_handler(device, _tag, read_delegate(&_handler, #_handler, (device_t *)0)); \
#define AM_DEVREAD8_LEGACY(_tag, _handler, _unitmask) \
- curentry->set_handler(device, _tag, _handler, #_handler, _unitmask); \
+ curentry->set_handler(device, _tag, read8_delegate(&_handler, #_handler, (device_t *)0), _unitmask); \
// legacy device writes
#define AM_DEVWRITE_LEGACY(_tag, _handler) \
- curentry->set_handler(device, _tag, _handler, #_handler); \
+ curentry->set_handler(device, _tag, write_delegate(&_handler, #_handler, (device_t *)0)); \
#define AM_DEVWRITE8_LEGACY(_tag, _handler, _unitmask) \
- curentry->set_handler(device, _tag, _handler, #_handler, _unitmask); \
+ curentry->set_handler(device, _tag, write8_delegate(&_handler, #_handler, (device_t *)0), _unitmask); \
#define AM_DEVWRITE16_LEGACY(_tag, _handler, _unitmask) \
- curentry->set_handler(device, _tag, _handler, #_handler, _unitmask); \
+ curentry->set_handler(device, _tag, write16_delegate(&_handler, #_handler, (device_t *)0), _unitmask); \
// legacy device reads/writes
#define AM_DEVREADWRITE_LEGACY(_tag, _rhandler, _whandler) \
- curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler); \
+ curentry->set_handler(device, _tag, read_delegate(&_rhandler, #_rhandler, (device_t *)0), write_delegate(&_whandler, #_whandler, (device_t *)0)); \
#define AM_DEVREADWRITE8_LEGACY(_tag, _rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler, _unitmask); \
+ curentry->set_handler(device, _tag, read8_delegate(&_rhandler, #_rhandler, (device_t *)0), write8_delegate(&_whandler, #_whandler, (device_t *)0), _unitmask); \
#define AM_DEVREADWRITE16_LEGACY(_tag, _rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler, _unitmask); \
+ curentry->set_handler(device, _tag, read16_delegate(&_rhandler, #_rhandler, (device_t *)0), write16_delegate(&_whandler, #_whandler, (device_t *)0), _unitmask); \
#define AM_DEVREADWRITE32_LEGACY(_tag, _rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, _tag, _rhandler, #_rhandler, _whandler, #_whandler, _unitmask); \
+ curentry->set_handler(device, _tag, read32_delegate(&_rhandler, #_rhandler, (device_t *)0), write32_delegate(&_whandler, #_whandler, (device_t *)0), _unitmask); \
// driver data reads
diff --git a/src/emu/cpu/arm7/arm7.c b/src/emu/cpu/arm7/arm7.c
index a56cc24cb55..343fc8b1e11 100644
--- a/src/emu/cpu/arm7/arm7.c
+++ b/src/emu/cpu/arm7/arm7.c
@@ -43,9 +43,9 @@
/* prototypes of coprocessor functions */
-static WRITE32_DEVICE_HANDLER(arm7_do_callback);
-static READ32_DEVICE_HANDLER(arm7_rt_r_callback);
-static WRITE32_DEVICE_HANDLER(arm7_rt_w_callback);
+static DECLARE_WRITE32_DEVICE_HANDLER(arm7_do_callback);
+static DECLARE_READ32_DEVICE_HANDLER(arm7_rt_r_callback);
+static DECLARE_WRITE32_DEVICE_HANDLER(arm7_rt_w_callback);
void arm7_dt_r_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, UINT32 (*read32)(arm_state *cpustate, UINT32 addr));
void arm7_dt_w_callback(arm_state *cpustate, UINT32 insn, UINT32 *prn, void (*write32)(arm_state *cpustate, UINT32 addr, UINT32 data));
diff --git a/src/emu/cpu/arm7/arm7ops.c b/src/emu/cpu/arm7/arm7ops.c
index 4d3d31ade09..861eb18a2f1 100644
--- a/src/emu/cpu/arm7/arm7ops.c
+++ b/src/emu/cpu/arm7/arm7ops.c
@@ -283,7 +283,7 @@ static void HandleCoProcDO(arm_state *cpustate, UINT32 insn)
{
// This instruction simply instructs the co-processor to do something, no data is returned to ARM7 core
if (arm7_coproc_do_callback)
- arm7_coproc_do_callback(cpustate->device, insn, 0, 0); // simply pass entire opcode to callback - since data format is actually dependent on co-proc implementation
+ arm7_coproc_do_callback(cpustate->device, *cpustate->program, insn, 0, 0); // simply pass entire opcode to callback - since data format is actually dependent on co-proc implementation
else
LOG(("%08x: Co-Processor Data Operation executed, but no callback defined!\n", R15));
}
@@ -299,7 +299,7 @@ static void HandleCoProcRT(arm_state *cpustate, UINT32 insn)
{
if (arm7_coproc_rt_r_callback)
{
- UINT32 res = arm7_coproc_rt_r_callback(cpustate->device, insn, 0); // RT Read handler must parse opcode & return appropriate result
+ UINT32 res = arm7_coproc_rt_r_callback(cpustate->device, *cpustate->program, insn, 0); // RT Read handler must parse opcode & return appropriate result
if (cpustate->pendingUnd == 0)
{
SET_REGISTER(cpustate, (insn >> 12) & 0xf, res);
@@ -312,7 +312,7 @@ static void HandleCoProcRT(arm_state *cpustate, UINT32 insn)
else
{
if (arm7_coproc_rt_w_callback)
- arm7_coproc_rt_w_callback(cpustate->device, insn, GET_REGISTER(cpustate, (insn >> 12) & 0xf), 0);
+ arm7_coproc_rt_w_callback(cpustate->device, *cpustate->program, insn, GET_REGISTER(cpustate, (insn >> 12) & 0xf), 0);
else
LOG(("%08x: Co-Processor Register Transfer executed, but no RT Write callback defined!\n", R15));
}
diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.h b/src/emu/cpu/cubeqcpu/cubeqcpu.h
index 226fca6b279..60c01f2be45 100644
--- a/src/emu/cpu/cubeqcpu/cubeqcpu.h
+++ b/src/emu/cpu/cubeqcpu/cubeqcpu.h
@@ -139,11 +139,11 @@ struct cubeqst_rot_config
PUBLIC FUNCTIONS
***************************************************************************/
-extern READ16_DEVICE_HANDLER( cubeqcpu_sndram_r );
-extern WRITE16_DEVICE_HANDLER( cubeqcpu_sndram_w );
+extern DECLARE_READ16_DEVICE_HANDLER( cubeqcpu_sndram_r );
+extern DECLARE_WRITE16_DEVICE_HANDLER( cubeqcpu_sndram_w );
-extern READ16_DEVICE_HANDLER( cubeqcpu_rotram_r );
-extern WRITE16_DEVICE_HANDLER( cubeqcpu_rotram_w );
+extern DECLARE_READ16_DEVICE_HANDLER( cubeqcpu_rotram_r );
+extern DECLARE_WRITE16_DEVICE_HANDLER( cubeqcpu_rotram_w );
void cubeqcpu_swap_line_banks(device_t *device);
diff --git a/src/emu/cpu/esrip/esrip.c b/src/emu/cpu/esrip/esrip.c
index 4afe1971d52..a93a120a313 100644
--- a/src/emu/cpu/esrip/esrip.c
+++ b/src/emu/cpu/esrip/esrip.c
@@ -1701,7 +1701,7 @@ static CPU_EXECUTE( esrip )
/* FDT RAM: /Enable, Direction and /RAM OE */
else if (!bl44 && !_BIT(cpustate->l2, 3) && bl46)
- y_bus = cpustate->fdt_r(device, cpustate->fdt_cnt, 0);
+ y_bus = cpustate->fdt_r(device, *cpustate->program, cpustate->fdt_cnt, 0);
/* IPT RAM: /Enable and /READ */
else if (!_BIT(cpustate->l2, 6) && !_BIT(cpustate->l4, 5))
@@ -1728,7 +1728,7 @@ static CPU_EXECUTE( esrip )
/* FDT RAM */
if (!bl44)
- x_bus = cpustate->fdt_r(device, cpustate->fdt_cnt, 0);
+ x_bus = cpustate->fdt_r(device, *cpustate->program, cpustate->fdt_cnt, 0);
/* Buffer is enabled - write direction */
else if (!BIT(cpustate->l2, 3) && !bl46)
@@ -1753,7 +1753,7 @@ static CPU_EXECUTE( esrip )
/* Write FDT RAM: /Enable, Direction and WRITE */
if (!BIT(cpustate->l2, 3) && !bl46 && !BIT(cpustate->l4, 3))
- cpustate->fdt_w(device, cpustate->fdt_cnt, x_bus, 0);
+ cpustate->fdt_w(device, *cpustate->program, cpustate->fdt_cnt, x_bus, 0);
/* Write IPT RAM: /Enable and /WR */
if (!BIT(cpustate->l2, 7) && !BIT(cpustate->l4, 5))
diff --git a/src/emu/cpu/m68000/68307ser.c b/src/emu/cpu/m68000/68307ser.c
index 6ed1942115d..cb9cda7da0b 100644
--- a/src/emu/cpu/m68000/68307ser.c
+++ b/src/emu/cpu/m68000/68307ser.c
@@ -24,7 +24,7 @@ READ8_HANDLER( m68307_internal_serial_r )
// if we're piggybacking on the existing 68681 implementation...
if (serial->m_duart68681)
{
- if (offset&1) return duart68681_r(serial->m_duart68681, offset>>1);
+ if (offset&1) return duart68681_r(serial->m_duart68681, *m68k->program, offset>>1);
}
else
{
@@ -104,7 +104,7 @@ WRITE8_HANDLER( m68307_internal_serial_w )
// if we're piggybacking on the existing 68681 implementation...
if (serial->m_duart68681)
{
- if (offset&1) duart68681_w(serial->m_duart68681, offset>>1, data);
+ if (offset&1) duart68681_w(serial->m_duart68681, *m68k->program, offset>>1, data);
}
else
{
diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/emu/cpu/powerpc/ppccom.c
index 88c6500b3f0..4baa999a0c8 100644
--- a/src/emu/cpu/powerpc/ppccom.c
+++ b/src/emu/cpu/powerpc/ppccom.c
@@ -1121,7 +1121,7 @@ void ppccom_execute_mfdcr(powerpc_state *ppc)
else
ppc->param1 = 0;
} else {
- ppc->param1 = ppc->dcr_read_func(ppc->device,ppc->param0,0xffffffff);
+ ppc->param1 = ppc->dcr_read_func(ppc->device,*ppc->program,ppc->param0,0xffffffff);
}
}
@@ -1211,7 +1211,7 @@ void ppccom_execute_mtdcr(powerpc_state *ppc)
if (ppc->param0 < ARRAY_LENGTH(ppc->dcr))
ppc->dcr[ppc->param0] = ppc->param1;
} else {
- ppc->dcr_write_func(ppc->device,ppc->param0,ppc->param1,0xffffffff);
+ ppc->dcr_write_func(ppc->device,*ppc->program,ppc->param0,ppc->param1,0xffffffff);
}
}
diff --git a/src/emu/cpu/rsp/rspdrc.c b/src/emu/cpu/rsp/rspdrc.c
index 41f0f412463..2c59f23a47b 100644
--- a/src/emu/cpu/rsp/rspdrc.c
+++ b/src/emu/cpu/rsp/rspdrc.c
@@ -472,14 +472,14 @@ static void cfunc_get_cop0_reg(void *param)
{
if(dest)
{
- rsp->r[dest] = (rsp->config->sp_reg_r)(rsp->device, reg, 0x00000000);
+ rsp->r[dest] = (rsp->config->sp_reg_r)(rsp->device, *rsp->program, reg, 0x00000000);
}
}
else if (reg >= 8 && reg < 16)
{
if(dest)
{
- rsp->r[dest] = (rsp->config->dp_reg_r)(rsp->device, reg - 8, 0x00000000);
+ rsp->r[dest] = (rsp->config->dp_reg_r)(rsp->device, *rsp->program, reg - 8, 0x00000000);
}
}
else
@@ -496,11 +496,11 @@ static void cfunc_set_cop0_reg(void *param)
if (reg >= 0 && reg < 8)
{
- (rsp->config->sp_reg_w)(rsp->device, reg, data, 0x00000000);
+ (rsp->config->sp_reg_w)(rsp->device, *rsp->program, reg, data, 0x00000000);
}
else if (reg >= 8 && reg < 16)
{
- (rsp->config->dp_reg_w)(rsp->device, reg - 8, data, 0x00000000);
+ (rsp->config->dp_reg_w)(rsp->device, *rsp->program, reg - 8, data, 0x00000000);
}
else
{
diff --git a/src/emu/cpu/tms0980/tms0980.c b/src/emu/cpu/tms0980/tms0980.c
index c86affd31a4..7fadebee03b 100644
--- a/src/emu/cpu/tms0980/tms0980.c
+++ b/src/emu/cpu/tms0980/tms0980.c
@@ -766,7 +766,7 @@ static void tms0980_set_cki_bus( device_t *device )
case 0x008:
if ( cpustate->config->read_k )
{
- cpustate->cki_bus = cpustate->config->read_k( device, 0 );
+ cpustate->cki_bus = cpustate->config->read_k( device, *cpustate->program, 0, 0xff );
}
else
{
@@ -930,7 +930,7 @@ static CPU_EXECUTE( tms0980 )
cpustate->r = cpustate->r | ( 1 << cpustate->y );
if ( cpustate->config->write_r )
{
- cpustate->config->write_r( device, 0, cpustate->r & cpustate->r_mask, 0xffff );
+ cpustate->config->write_r( device, *cpustate->program, 0, cpustate->r & cpustate->r_mask, 0xffff );
}
}
if ( cpustate->decode & F_RSTR )
@@ -938,7 +938,7 @@ static CPU_EXECUTE( tms0980 )
cpustate->r = cpustate->r & ( ~( 1 << cpustate->y ) );
if ( cpustate->config->write_r )
{
- cpustate->config->write_r( device, 0, cpustate->r & cpustate->r_mask, 0xffff );
+ cpustate->config->write_r( device, *cpustate->program, 0, cpustate->r & cpustate->r_mask, 0xffff );
}
}
if ( cpustate->decode & F_TDO )
@@ -957,7 +957,7 @@ static CPU_EXECUTE( tms0980 )
if ( cpustate->config->write_o )
{
- cpustate->config->write_o( device, 0, cpustate->o & cpustate->o_mask, 0xffff );
+ cpustate->config->write_o( device, *cpustate->program, 0, cpustate->o & cpustate->o_mask, 0xffff );
}
}
if ( cpustate->decode & F_CLO )
@@ -965,7 +965,7 @@ static CPU_EXECUTE( tms0980 )
cpustate->o = 0;
if ( cpustate->config->write_o )
{
- cpustate->config->write_o( device, 0, cpustate->o & cpustate->o_mask, 0xffff );
+ cpustate->config->write_o( device, *cpustate->program, 0, cpustate->o & cpustate->o_mask, 0xffff );
}
}
if ( cpustate->decode & F_LDX )
diff --git a/src/emu/devcb.c b/src/emu/devcb.c
index 83ddadf6b20..ac30a5cd245 100644
--- a/src/emu/devcb.c
+++ b/src/emu/devcb.c
@@ -232,7 +232,7 @@ int devcb_resolved_read_line::from_port()
int devcb_resolved_read_line::from_read8()
{
- return ((*m_helper.read8_device)(m_object.device, 0) & 1) ? ASSERT_LINE : CLEAR_LINE;
+ return ((*m_helper.read8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), 0, 0xff) & 1) ? ASSERT_LINE : CLEAR_LINE;
}
@@ -336,7 +336,7 @@ void devcb_resolved_write_line::to_port(int state)
void devcb_resolved_write_line::to_write8(int state)
{
- (*m_helper.write8_device)(m_object.device, 0, state);
+ (*m_helper.write8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), 0, state, 0xff);
}
@@ -391,7 +391,10 @@ void devcb_resolved_read8::resolve(const devcb_read8 &desc, device_t &device)
case DEVCB_TYPE_DEVICE:
m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device);
if (desc.readdevice != NULL)
- *static_cast<devcb_read8_delegate *>(this) = devcb_read8_delegate(desc.readdevice, desc.name, m_object.device);
+ {
+ m_helper.read8_device = desc.readdevice;
+ *static_cast<devcb_read8_delegate *>(this) = devcb_read8_delegate(&devcb_resolved_read8::from_read8, desc.name, this);
+ }
else
{
m_helper.read_line = desc.readline;
@@ -428,6 +431,17 @@ UINT8 devcb_resolved_read8::from_port(offs_t offset)
// line read value to an 8-bit value
//-------------------------------------------------
+UINT8 devcb_resolved_read8::from_read8(offs_t offset)
+{
+ return (*m_helper.read8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, 0xff);
+}
+
+
+//-------------------------------------------------
+// from_readline - helper to convert from a device
+// line read value to an 8-bit value
+//-------------------------------------------------
+
UINT8 devcb_resolved_read8::from_readline(offs_t offset)
{
return (*m_helper.read_line)(m_object.device);
@@ -484,7 +498,10 @@ void devcb_resolved_write8::resolve(const devcb_write8 &desc, device_t &device)
case DEVCB_TYPE_DEVICE:
m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device);
if (desc.writedevice != NULL)
- *static_cast<devcb_write8_delegate *>(this) = devcb_write8_delegate(desc.writedevice, desc.name, m_object.device);
+ {
+ m_helper.write8_device = desc.writedevice;
+ *static_cast<devcb_write8_delegate *>(this) = devcb_write8_delegate(&devcb_resolved_write8::to_write8, desc.name, this);
+ }
else
{
m_helper.write_line = desc.writeline;
@@ -531,6 +548,17 @@ void devcb_resolved_write8::to_port(offs_t offset, UINT8 data)
// memory read value from a line value
//-------------------------------------------------
+void devcb_resolved_write8::to_write8(offs_t offset, UINT8 data)
+{
+ (*m_helper.write8_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, data, 0xff);
+}
+
+
+//-------------------------------------------------
+// to_write8 - helper to convert to an 8-bit
+// memory read value from a line value
+//-------------------------------------------------
+
void devcb_resolved_write8::to_writeline(offs_t offset, UINT8 data)
{
(*m_helper.write_line)(m_object.device, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
@@ -588,7 +616,10 @@ void devcb_resolved_read16::resolve(const devcb_read16 &desc, device_t &device)
case DEVCB_TYPE_DEVICE:
m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device);
if (desc.readdevice != NULL)
- *static_cast<devcb_read16_delegate *>(this) = devcb_read16_delegate(desc.readdevice, desc.name, m_object.device);
+ {
+ m_helper.read16_device = desc.readdevice;
+ *static_cast<devcb_read16_delegate *>(this) = devcb_read16_delegate(&devcb_resolved_read16::from_read16, desc.name, this);
+ }
else
{
m_helper.read_line = desc.readline;
@@ -625,6 +656,17 @@ UINT16 devcb_resolved_read16::from_port(offs_t offset, UINT16 mask)
// line read value to a 16-bit value
//-------------------------------------------------
+UINT16 devcb_resolved_read16::from_read16(offs_t offset, UINT16 mask)
+{
+ return (*m_helper.read16_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, mask);
+}
+
+
+//-------------------------------------------------
+// from_read16 - helper to convert from a device
+// line read value to a 16-bit value
+//-------------------------------------------------
+
UINT16 devcb_resolved_read16::from_readline(offs_t offset, UINT16 mask)
{
return (*m_helper.read_line)(m_object.device);
@@ -681,7 +723,10 @@ void devcb_resolved_write16::resolve(const devcb_write16 &desc, device_t &device
case DEVCB_TYPE_DEVICE:
m_object.device = devcb_resolver::resolve_device(desc.index, desc.tag, device);
if (desc.writedevice != NULL)
- *static_cast<devcb_write16_delegate *>(this) = devcb_write16_delegate(desc.writedevice, desc.name, m_object.device);
+ {
+ m_helper.write16_device = desc.writedevice;
+ *static_cast<devcb_write16_delegate *>(this) = devcb_write16_delegate(&devcb_resolved_write16::to_write16, desc.name, this);
+ }
else
{
m_helper.write_line = desc.writeline;
@@ -728,6 +773,17 @@ void devcb_resolved_write16::to_port(offs_t offset, UINT16 data, UINT16 mask)
// memory read value from a line value
//-------------------------------------------------
+void devcb_resolved_write16::to_write16(offs_t offset, UINT16 data, UINT16 mask)
+{
+ (*m_helper.write16_device)(m_object.device, m_object.device->machine().driver_data()->generic_space(), offset, data, mask);
+}
+
+
+//-------------------------------------------------
+// to_write16 - helper to convert to a 16-bit
+// memory read value from a line value
+//-------------------------------------------------
+
void devcb_resolved_write16::to_writeline(offs_t offset, UINT16 data, UINT16 mask)
{
(*m_helper.write_line)(m_object.device, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
diff --git a/src/emu/devcb.h b/src/emu/devcb.h
index 2f323b41311..011ecc5b937 100644
--- a/src/emu/devcb.h
+++ b/src/emu/devcb.h
@@ -109,18 +109,18 @@ int devcb_line_stub(device_t *device)
// static template for a read8 stub function that calls through a given READ8_MEMBER
template<class _Class, UINT8 (_Class::*_Function)(address_space &, offs_t, UINT8)>
-UINT8 devcb_stub(device_t *device, offs_t offset)
+UINT8 devcb_stub(device_t *device, address_space &space, offs_t offset, UINT8 mem_mask)
{
_Class *target = downcast<_Class *>(device);
- return (target->*_Function)(*device->machine().memory().first_space(), offset, 0xff);
+ return (target->*_Function)(space, offset, mem_mask);
}
// static template for a read16 stub function that calls through a given READ16_MEMBER
template<class _Class, UINT16 (_Class::*_Function)(address_space &, offs_t, UINT16)>
-UINT16 devcb_stub16(device_t *device, offs_t offset, UINT16 mask)
+UINT16 devcb_stub16(device_t *device, address_space &space, offs_t offset, UINT16 mem_mask)
{
_Class *target = downcast<_Class *>(device);
- return (target->*_Function)(*device->machine().memory().first_space(), offset, mask);
+ return (target->*_Function)(space, offset, mem_mask);
}
// static template for a write_line stub function that calls through a given WRITE_LINE_MEMBER
@@ -133,18 +133,18 @@ void devcb_line_stub(device_t *device, int state)
// static template for a write8 stub function that calls through a given WRITE8_MEMBER
template<class _Class, void (_Class::*_Function)(address_space &, offs_t, UINT8, UINT8)>
-void devcb_stub(device_t *device, offs_t offset, UINT8 data)
+void devcb_stub(device_t *device, address_space &space, offs_t offset, UINT8 data, UINT8 mem_mask)
{
_Class *target = downcast<_Class *>(device);
- (target->*_Function)(*device->machine().memory().first_space(), offset, data, 0xff);
+ (target->*_Function)(space, offset, data, mem_mask);
}
// static template for a write16 stub function that calls through a given WRITE16_MEMBER
template<class _Class, void (_Class::*_Function)(address_space &, offs_t, UINT16, UINT16)>
-void devcb_stub16(device_t *device, offs_t offset, UINT16 data, UINT16 mask)
+void devcb_stub16(device_t *device, address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask)
{
_Class *target = downcast<_Class *>(device);
- (target->*_Function)(*device->machine().memory().first_space(), offset, data, mask);
+ (target->*_Function)(space, offset, data, mem_mask);
}
#define DEVCB_NULL { DEVCB_TYPE_NULL }
@@ -374,6 +374,7 @@ public:
private:
// internal helpers
UINT8 from_port(offs_t offset);
+ UINT8 from_read8(offs_t offset);
UINT8 from_readline(offs_t offset);
UINT8 from_constant(offs_t offset);
@@ -424,6 +425,7 @@ private:
// internal helpers
void to_null(offs_t offset, UINT8 data);
void to_port(offs_t offset, UINT8 data);
+ void to_write8(offs_t offset, UINT8 data);
void to_writeline(offs_t offset, UINT8 data);
void to_input(offs_t offset, UINT8 data);
@@ -473,6 +475,7 @@ public:
private:
// internal helpers
UINT16 from_port(offs_t offset, UINT16 mask);
+ UINT16 from_read16(offs_t offset, UINT16 mask);
UINT16 from_readline(offs_t offset, UINT16 mask);
UINT16 from_constant(offs_t offset, UINT16 mask);
@@ -523,6 +526,7 @@ private:
// internal helpers
void to_null(offs_t offset, UINT16 data, UINT16 mask);
void to_port(offs_t offset, UINT16 data, UINT16 mask);
+ void to_write16(offs_t offset, UINT16 data, UINT16 mask);
void to_writeline(offs_t offset, UINT16 data, UINT16 mask);
void to_input(offs_t offset, UINT16 data, UINT16 mask);
diff --git a/src/emu/devconv.h b/src/emu/devconv.h
index a7b81a27827..ce64a44b02a 100644
--- a/src/emu/devconv.h
+++ b/src/emu/devconv.h
@@ -85,23 +85,23 @@
*
*************************************/
-INLINE UINT16 read16be_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT16 mem_mask)
+INLINE UINT16 read16be_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 mem_mask)
{
UINT16 result = 0;
if (ACCESSING_BITS_8_15)
- result |= ((UINT16)(*handler)(device, offset * 2 + 0)) << 8;
+ result |= ((UINT16)(*handler)(device, space, offset * 2 + 0, mem_mask >> 8)) << 8;
if (ACCESSING_BITS_0_7)
- result |= ((UINT16)(*handler)(device, offset * 2 + 1)) << 0;
+ result |= ((UINT16)(*handler)(device, space, offset * 2 + 1, mem_mask >> 0)) << 0;
return result;
}
-INLINE void write16be_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT16 data, UINT16 mem_mask)
+INLINE void write16be_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask)
{
if (ACCESSING_BITS_8_15)
- (*handler)(device, offset * 2 + 0, data >> 8);
+ (*handler)(device, space, offset * 2 + 0, data >> 8, mem_mask >> 8);
if (ACCESSING_BITS_0_7)
- (*handler)(device, offset * 2 + 1, data >> 0);
+ (*handler)(device, space, offset * 2 + 1, data >> 0, mem_mask >> 0);
}
@@ -111,23 +111,23 @@ INLINE void write16be_with_write8_device_handler(write8_device_func handler, dev
*
*************************************/
-INLINE UINT16 read16le_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT16 mem_mask)
+INLINE UINT16 read16le_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 mem_mask)
{
UINT16 result = 0;
if (ACCESSING_BITS_0_7)
- result |= ((UINT16) (*handler)(device, offset * 2 + 0)) << 0;
+ result |= ((UINT16) (*handler)(device, space, offset * 2 + 0, mem_mask >> 0)) << 0;
if (ACCESSING_BITS_8_15)
- result |= ((UINT16) (*handler)(device, offset * 2 + 1)) << 8;
+ result |= ((UINT16) (*handler)(device, space, offset * 2 + 1, mem_mask >> 8)) << 8;
return result;
}
-INLINE void write16le_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT16 data, UINT16 mem_mask)
+INLINE void write16le_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask)
{
if (ACCESSING_BITS_0_7)
- (*handler)(device, offset * 2 + 0, data >> 0);
+ (*handler)(device, space, offset * 2 + 0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_8_15)
- (*handler)(device, offset * 2 + 1, data >> 8);
+ (*handler)(device, space, offset * 2 + 1, data >> 8, mem_mask >> 8);
}
@@ -137,23 +137,23 @@ INLINE void write16le_with_write8_device_handler(write8_device_func handler, dev
*
*************************************/
-INLINE UINT32 read32be_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask)
+INLINE UINT32 read32be_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask)
{
UINT32 result = 0;
if (ACCESSING_BITS_16_31)
- result |= read16be_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask >> 16) << 16;
+ result |= read16be_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 16) << 16;
if (ACCESSING_BITS_0_15)
- result |= read16be_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask) << 0;
+ result |= read16be_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask) << 0;
return result;
}
-INLINE void write32be_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask)
+INLINE void write32be_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask)
{
if (ACCESSING_BITS_16_31)
- write16be_with_write8_device_handler(handler, device, offset * 2 + 0, data >> 16, mem_mask >> 16);
+ write16be_with_write8_device_handler(handler, device, space, offset * 2 + 0, data >> 16, mem_mask >> 16);
if (ACCESSING_BITS_0_15)
- write16be_with_write8_device_handler(handler, device, offset * 2 + 1, data, mem_mask);
+ write16be_with_write8_device_handler(handler, device, space, offset * 2 + 1, data, mem_mask);
}
@@ -163,23 +163,23 @@ INLINE void write32be_with_write8_device_handler(write8_device_func handler, dev
*
*************************************/
-INLINE UINT32 read32le_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask)
+INLINE UINT32 read32le_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask)
{
UINT32 result = 0;
if (ACCESSING_BITS_0_15)
- result |= read16le_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask) << 0;
+ result |= read16le_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask) << 0;
if (ACCESSING_BITS_16_31)
- result |= read16le_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask >> 16) << 16;
+ result |= read16le_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 16) << 16;
return result;
}
-INLINE void write32le_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask)
+INLINE void write32le_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask)
{
if (ACCESSING_BITS_0_15)
- write16le_with_write8_device_handler(handler, device, offset * 2 + 0, data, mem_mask);
+ write16le_with_write8_device_handler(handler, device, space, offset * 2 + 0, data, mem_mask);
if (ACCESSING_BITS_16_31)
- write16le_with_write8_device_handler(handler, device, offset * 2 + 1, data >> 16, mem_mask >> 16);
+ write16le_with_write8_device_handler(handler, device, space, offset * 2 + 1, data >> 16, mem_mask >> 16);
}
@@ -189,23 +189,23 @@ INLINE void write32le_with_write8_device_handler(write8_device_func handler, dev
*
*************************************/
-INLINE UINT32 read32be_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask)
+INLINE UINT32 read32be_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask)
{
UINT32 result = 0;
if (ACCESSING_BITS_16_31)
- result |= (*handler)(device, offset * 2 + 0, mem_mask >> 16) << 16;
+ result |= (*handler)(device, space, offset * 2 + 0, mem_mask >> 16) << 16;
if (ACCESSING_BITS_0_15)
- result |= (*handler)(device, offset * 2 + 1, mem_mask) << 0;
+ result |= (*handler)(device, space, offset * 2 + 1, mem_mask) << 0;
return result;
}
-INLINE void write32be_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask)
+INLINE void write32be_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask)
{
if (ACCESSING_BITS_16_31)
- (*handler)(device, offset * 2 + 0, data >> 16, mem_mask >> 16);
+ (*handler)(device, space, offset * 2 + 0, data >> 16, mem_mask >> 16);
if (ACCESSING_BITS_0_15)
- (*handler)(device, offset * 2 + 1, data, mem_mask);
+ (*handler)(device, space, offset * 2 + 1, data, mem_mask);
}
@@ -215,23 +215,23 @@ INLINE void write32be_with_16be_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT32 read32le_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask)
+INLINE UINT32 read32le_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask)
{
UINT32 result = 0;
if (ACCESSING_BITS_0_15)
- result |= (*handler)(device, offset * 2 + 0, mem_mask) << 0;
+ result |= (*handler)(device, space, offset * 2 + 0, mem_mask) << 0;
if (ACCESSING_BITS_16_31)
- result |= (*handler)(device, offset * 2 + 1, mem_mask >> 16) << 16;
+ result |= (*handler)(device, space, offset * 2 + 1, mem_mask >> 16) << 16;
return result;
}
-INLINE void write32le_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask)
+INLINE void write32le_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask)
{
if (ACCESSING_BITS_0_15)
- (*handler)(device, offset * 2 + 0, data, mem_mask);
+ (*handler)(device, space, offset * 2 + 0, data, mem_mask);
if (ACCESSING_BITS_16_31)
- (*handler)(device, offset * 2 + 1, data >> 16, mem_mask >> 16);
+ (*handler)(device, space, offset * 2 + 1, data >> 16, mem_mask >> 16);
}
@@ -241,20 +241,20 @@ INLINE void write32le_with_16le_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT32 read32be_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask)
+INLINE UINT32 read32be_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask)
{
UINT32 result = 0;
mem_mask = FLIPENDIAN_INT32(mem_mask);
- result = read32le_with_16le_device_handler(handler, device, offset, mem_mask);
+ result = read32le_with_16le_device_handler(handler, device, space, offset, mem_mask);
return FLIPENDIAN_INT32(result);
}
-INLINE void write32be_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask)
+INLINE void write32be_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask)
{
data = FLIPENDIAN_INT32(data);
mem_mask = FLIPENDIAN_INT32(mem_mask);
- write32le_with_16le_device_handler(handler, device, offset, data, mem_mask);
+ write32le_with_16le_device_handler(handler, device, space, offset, data, mem_mask);
}
@@ -264,20 +264,20 @@ INLINE void write32be_with_16le_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT32 read32le_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT32 mem_mask)
+INLINE UINT32 read32le_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 mem_mask)
{
UINT32 result = 0;
mem_mask = FLIPENDIAN_INT32(mem_mask);
- result = read32be_with_16be_device_handler(handler, device, offset, mem_mask);
+ result = read32be_with_16be_device_handler(handler, device, space, offset, mem_mask);
return FLIPENDIAN_INT32(result);
}
-INLINE void write32le_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT32 data, UINT32 mem_mask)
+INLINE void write32le_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT32 data, UINT32 mem_mask)
{
data = FLIPENDIAN_INT32(data);
mem_mask = FLIPENDIAN_INT32(mem_mask);
- write32be_with_16be_device_handler(handler, device, offset, data, mem_mask);
+ write32be_with_16be_device_handler(handler, device, space, offset, data, mem_mask);
}
@@ -287,23 +287,23 @@ INLINE void write32le_with_16be_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT64 read64be_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT64 read64be_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)read32be_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask >> 32) << 32;
+ result |= (UINT64)read32be_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 32) << 32;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)read32be_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask) << 0;
+ result |= (UINT64)read32be_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask) << 0;
return result;
}
-INLINE void write64be_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64be_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_32_63)
- write32be_with_write8_device_handler(handler, device, offset * 2 + 0, data >> 32, mem_mask >> 32);
+ write32be_with_write8_device_handler(handler, device, space, offset * 2 + 0, data >> 32, mem_mask >> 32);
if (ACCESSING_BITS_0_31)
- write32be_with_write8_device_handler(handler, device, offset * 2 + 1, data, mem_mask);
+ write32be_with_write8_device_handler(handler, device, space, offset * 2 + 1, data, mem_mask);
}
@@ -313,23 +313,23 @@ INLINE void write64be_with_write8_device_handler(write8_device_func handler, dev
*
*************************************/
-INLINE UINT64 read64le_with_read8_device_handler(read8_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT64 read64le_with_read8_device_handler(read8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)read32le_with_read8_device_handler(handler, device, offset * 2 + 0, mem_mask >> 0) << 0;
+ result |= (UINT64)read32le_with_read8_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)read32le_with_read8_device_handler(handler, device, offset * 2 + 1, mem_mask >> 32) << 32;
+ result |= (UINT64)read32le_with_read8_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 32) << 32;
return result;
}
-INLINE void write64le_with_write8_device_handler(write8_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64le_with_write8_device_handler(write8_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_0_31)
- write32le_with_write8_device_handler(handler, device, offset * 2 + 0, data >> 0, mem_mask >> 0);
+ write32le_with_write8_device_handler(handler, device, space, offset * 2 + 0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_32_63)
- write32le_with_write8_device_handler(handler, device, offset * 2 + 1, data >> 32, mem_mask >> 32);
+ write32le_with_write8_device_handler(handler, device, space, offset * 2 + 1, data >> 32, mem_mask >> 32);
}
@@ -339,23 +339,23 @@ INLINE void write64le_with_write8_device_handler(write8_device_func handler, dev
*
*************************************/
-INLINE UINT32 read64be_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT32 read64be_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)read32be_with_16be_device_handler(handler, device, offset * 2 + 0, mem_mask >> 32) << 32;
+ result |= (UINT64)read32be_with_16be_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 32) << 32;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)read32be_with_16be_device_handler(handler, device, offset * 2 + 1, mem_mask >> 0) << 0;
+ result |= (UINT64)read32be_with_16be_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 0) << 0;
return result;
}
-INLINE void write64be_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64be_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_32_63)
- write32be_with_16be_device_handler(handler, device, offset * 2 + 0, data >> 32, mem_mask >> 32);
+ write32be_with_16be_device_handler(handler, device, space, offset * 2 + 0, data >> 32, mem_mask >> 32);
if (ACCESSING_BITS_0_31)
- write32be_with_16be_device_handler(handler, device, offset * 2 + 1, data >> 0, mem_mask >> 0);
+ write32be_with_16be_device_handler(handler, device, space, offset * 2 + 1, data >> 0, mem_mask >> 0);
}
@@ -365,23 +365,23 @@ INLINE void write64be_with_16be_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT32 read64le_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT32 read64le_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)read32le_with_16le_device_handler(handler, device, offset * 2 + 0, mem_mask >> 0) << 0;
+ result |= (UINT64)read32le_with_16le_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)read32le_with_16le_device_handler(handler, device, offset * 2 + 1, mem_mask >> 32) << 32;
+ result |= (UINT64)read32le_with_16le_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 32) << 32;
return result;
}
-INLINE void write64le_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64le_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_0_31)
- write32le_with_16le_device_handler(handler, device, offset * 2 + 0, data >> 0, mem_mask >> 0);
+ write32le_with_16le_device_handler(handler, device, space, offset * 2 + 0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_32_63)
- write32le_with_16le_device_handler(handler, device, offset * 2 + 1, data >> 32, mem_mask >> 32);
+ write32le_with_16le_device_handler(handler, device, space, offset * 2 + 1, data >> 32, mem_mask >> 32);
}
@@ -391,23 +391,23 @@ INLINE void write64le_with_16le_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT32 read64be_with_16le_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT32 read64be_with_16le_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)read32be_with_16le_device_handler(handler, device, offset * 2 + 0, mem_mask >> 32) << 32;
+ result |= (UINT64)read32be_with_16le_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 32) << 32;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)read32be_with_16le_device_handler(handler, device, offset * 2 + 1, mem_mask >> 0) << 0;
+ result |= (UINT64)read32be_with_16le_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 0) << 0;
return result;
}
-INLINE void write64be_with_16le_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64be_with_16le_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_32_63)
- write32be_with_16le_device_handler(handler, device, offset * 2 + 0, data >> 32, mem_mask >> 32);
+ write32be_with_16le_device_handler(handler, device, space, offset * 2 + 0, data >> 32, mem_mask >> 32);
if (ACCESSING_BITS_0_31)
- write32be_with_16le_device_handler(handler, device, offset * 2 + 1, data >> 0, mem_mask >> 0);
+ write32be_with_16le_device_handler(handler, device, space, offset * 2 + 1, data >> 0, mem_mask >> 0);
}
@@ -417,23 +417,23 @@ INLINE void write64be_with_16le_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT32 read64le_with_16be_device_handler(read16_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT32 read64le_with_16be_device_handler(read16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)read32le_with_16be_device_handler(handler, device, offset * 2 + 0, mem_mask >> 0) << 0;
+ result |= (UINT64)read32le_with_16be_device_handler(handler, device, space, offset * 2 + 0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)read32le_with_16be_device_handler(handler, device, offset * 2 + 1, mem_mask >> 32) << 32;
+ result |= (UINT64)read32le_with_16be_device_handler(handler, device, space, offset * 2 + 1, mem_mask >> 32) << 32;
return result;
}
-INLINE void write64le_with_16be_device_handler(write16_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64le_with_16be_device_handler(write16_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_0_31)
- write32le_with_16be_device_handler(handler, device, offset * 2 + 0, data >> 0, mem_mask >> 0);
+ write32le_with_16be_device_handler(handler, device, space, offset * 2 + 0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_32_63)
- write32le_with_16be_device_handler(handler, device, offset * 2 + 1, data >> 32, mem_mask >> 32);
+ write32le_with_16be_device_handler(handler, device, space, offset * 2 + 1, data >> 32, mem_mask >> 32);
}
@@ -443,23 +443,23 @@ INLINE void write64le_with_16be_device_handler(write16_device_func handler, devi
*
*************************************/
-INLINE UINT64 read64be_with_32be_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT64 read64be_with_32be_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)(*handler)(device, offset * 2 + 0, mem_mask >> 32) << 32;
+ result |= (UINT64)(*handler)(device, space, offset * 2 + 0, mem_mask >> 32) << 32;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)(*handler)(device, offset * 2 + 1, mem_mask >> 0) << 0;
+ result |= (UINT64)(*handler)(device, space, offset * 2 + 1, mem_mask >> 0) << 0;
return result;
}
-INLINE void write64be_with_32be_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64be_with_32be_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_32_63)
- (*handler)(device, offset * 2 + 0, data >> 32, mem_mask >> 32);
+ (*handler)(device, space, offset * 2 + 0, data >> 32, mem_mask >> 32);
if (ACCESSING_BITS_0_31)
- (*handler)(device, offset * 2 + 1, data >> 0, mem_mask >> 0);
+ (*handler)(device, space, offset * 2 + 1, data >> 0, mem_mask >> 0);
}
@@ -469,23 +469,23 @@ INLINE void write64be_with_32be_device_handler(write32_device_func handler, devi
*
*************************************/
-INLINE UINT64 read64le_with_32le_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT64 read64le_with_32le_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result = 0;
if (ACCESSING_BITS_0_31)
- result |= (UINT64)(*handler)(device, offset * 2 + 0, mem_mask >> 0) << 0;
+ result |= (UINT64)(*handler)(device, space, offset * 2 + 0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_32_63)
- result |= (UINT64)(*handler)(device, offset * 2 + 1, mem_mask >> 32) << 32;
+ result |= (UINT64)(*handler)(device, space, offset * 2 + 1, mem_mask >> 32) << 32;
return result;
}
-INLINE void write64le_with_32le_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64le_with_32le_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
if (ACCESSING_BITS_0_31)
- (*handler)(device, offset * 2 + 0, data >> 0, mem_mask >> 0);
+ (*handler)(device, space, offset * 2 + 0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_32_63)
- (*handler)(device, offset * 2 + 1, data >> 32, mem_mask >> 32);
+ (*handler)(device, space, offset * 2 + 1, data >> 32, mem_mask >> 32);
}
@@ -495,20 +495,20 @@ INLINE void write64le_with_32le_device_handler(write32_device_func handler, devi
*
*************************************/
-INLINE UINT64 read64be_with_32le_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT64 read64be_with_32le_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result;
mem_mask = FLIPENDIAN_INT64(mem_mask);
- result = read64le_with_32le_device_handler(handler, device, offset, mem_mask);
+ result = read64le_with_32le_device_handler(handler, device, space, offset, mem_mask);
return FLIPENDIAN_INT64(result);
}
-INLINE void write64be_with_32le_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64be_with_32le_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
data = FLIPENDIAN_INT64(data);
mem_mask = FLIPENDIAN_INT64(mem_mask);
- write64le_with_32le_device_handler(handler, device, offset, data, mem_mask);
+ write64le_with_32le_device_handler(handler, device, space, offset, data, mem_mask);
}
@@ -518,20 +518,20 @@ INLINE void write64be_with_32le_device_handler(write32_device_func handler, devi
*
*************************************/
-INLINE UINT64 read64le_with_32be_device_handler(read32_device_func handler, device_t *device, offs_t offset, UINT64 mem_mask)
+INLINE UINT64 read64le_with_32be_device_handler(read32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 mem_mask)
{
UINT64 result;
mem_mask = FLIPENDIAN_INT64(mem_mask);
- result = read64be_with_32be_device_handler(handler, device, offset, mem_mask);
+ result = read64be_with_32be_device_handler(handler, device, space, offset, mem_mask);
return FLIPENDIAN_INT64(result);
}
-INLINE void write64le_with_32be_device_handler(write32_device_func handler, device_t *device, offs_t offset, UINT64 data, UINT64 mem_mask)
+INLINE void write64le_with_32be_device_handler(write32_device_func handler, device_t *device, address_space &space, offs_t offset, UINT64 data, UINT64 mem_mask)
{
data = FLIPENDIAN_INT64(data);
mem_mask = FLIPENDIAN_INT64(mem_mask);
- write64be_with_32be_device_handler(handler, device, offset, data, mem_mask);
+ write64be_with_32be_device_handler(handler, device, space, offset, data, mem_mask);
}
@@ -545,28 +545,28 @@ INLINE void write64le_with_32be_device_handler(write32_device_func handler, devi
#define DEV_READ_TEMPLATE(bits, name, handler, func) \
READ##bits##_DEVICE_HANDLER( name##_r ) \
{ \
- return func(handler, device, offset, mem_mask); \
+ return func(handler, device, space, offset, mem_mask); \
}
#define DEV_READ_TEMPLATE_COND(bits, name, handler, func, cond) \
READ##bits##_DEVICE_HANDLER( name##_r ) \
{ \
if (cond) \
- return func(handler, device, offset, mem_mask); \
+ return func(handler, device, space, offset, mem_mask); \
return 0; \
}
#define DEV_WRITE_TEMPLATE(bits, name, handler, func) \
WRITE##bits##_DEVICE_HANDLER( name##_w ) \
{ \
- func(handler, device, offset, data, mem_mask); \
+ func(handler, device, space, offset, data, mem_mask); \
}
#define DEV_WRITE_TEMPLATE_COND(bits, name, handler, func, cond) \
WRITE##bits##_DEVICE_HANDLER( name##_w ) \
{ \
if (cond) \
- func(handler, device, offset, data, mem_mask); \
+ func(handler, device, space, offset, data, mem_mask); \
}
diff --git a/src/emu/dimemory.c b/src/emu/dimemory.c
index 1f6113937a1..1c33794ac95 100644
--- a/src/emu/dimemory.c
+++ b/src/emu/dimemory.c
@@ -323,9 +323,9 @@ void device_memory_interface::interface_validity_check(validity_checker &valid)
}
// make sure all devices exist
- if (entry->m_read.m_type == AMH_LEGACY_DEVICE_HANDLER && entry->m_read.m_tag && device().siblingdevice(entry->m_read.m_tag) == NULL)
+ if (entry->m_read.m_type == AMH_DEVICE_DELEGATE && entry->m_read.m_tag && device().siblingdevice(entry->m_read.m_tag) == NULL)
mame_printf_error("%s space memory map entry references nonexistant device '%s'\n", spaceconfig->m_name, entry->m_read.m_tag.cstr());
- if (entry->m_write.m_type == AMH_LEGACY_DEVICE_HANDLER && entry->m_write.m_tag && device().siblingdevice(entry->m_write.m_tag) == NULL)
+ if (entry->m_write.m_type == AMH_DEVICE_DELEGATE && entry->m_write.m_tag && device().siblingdevice(entry->m_write.m_tag) == NULL)
mame_printf_error("%s space memory map entry references nonexistant device '%s'\n", spaceconfig->m_name, entry->m_write.m_tag.cstr());
// make sure ports exist
diff --git a/src/emu/driver.c b/src/emu/driver.c
index a2cdb5c08d5..d0fd75f7030 100644
--- a/src/emu/driver.c
+++ b/src/emu/driver.c
@@ -51,6 +51,7 @@
driver_device::driver_device(const machine_config &mconfig, device_type type, const char *tag)
: device_t(mconfig, type, "Driver Device", tag, NULL, 0),
+ device_memory_interface(mconfig, *this),
m_generic_paletteram_8(*this, "paletteram"),
m_generic_paletteram2_8(*this, "paletteram2"),
m_generic_paletteram_16(*this, "paletteram"),
@@ -58,6 +59,7 @@ driver_device::driver_device(const machine_config &mconfig, device_type type, co
m_generic_paletteram_32(*this, "paletteram"),
m_generic_paletteram2_32(*this, "paletteram2"),
m_system(NULL),
+ m_generic_space_config("generic", ENDIANNESS_LITTLE, 8, 8),
m_latch_clear_value(0),
m_flip_screen_x(0),
m_flip_screen_y(0)
@@ -313,6 +315,17 @@ void driver_device::device_reset_after_children()
}
+//-------------------------------------------------
+// memory_space_config - return a description of
+// any address spaces owned by this device
+//-------------------------------------------------
+
+const address_space_config *driver_device::memory_space_config(address_spacenum spacenum) const
+{
+ return (spacenum == 0) ? &m_generic_space_config : NULL;
+}
+
+
//**************************************************************************
// INTERRUPT ENABLE AND VECTOR HELPERS
diff --git a/src/emu/driver.h b/src/emu/driver.h
index d53ddf536a3..d389e42c74a 100644
--- a/src/emu/driver.h
+++ b/src/emu/driver.h
@@ -166,7 +166,8 @@ typedef void (*legacy_callback_func)(running_machine &machine);
// ======================> driver_device
// base class for machine driver-specific devices
-class driver_device : public device_t
+class driver_device : public device_t,
+ public device_memory_interface
{
public:
// construction/destruction
@@ -201,7 +202,11 @@ public:
(machine.driver_data<_DriverClass>()->*_Function)();
}
- void init_0() {};
+ // dummy driver_init callbacks
+ void init_0() { }
+
+ // memory helpers
+ address_space &generic_space() const { return *space(AS_PROGRAM); }
// generic interrupt generators
void generic_pulse_irq_line(device_execute_interface &exec, int irqline, int cycles);
@@ -399,6 +404,9 @@ protected:
virtual void device_start();
virtual void device_reset_after_children();
+ // device_memory_interface overrides
+ virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
+
// internal helpers
inline UINT16 paletteram16_le(offs_t offset) const { return m_generic_paletteram_8[offset & ~1] | (m_generic_paletteram_8[offset | 1] << 8); }
inline UINT16 paletteram16_be(offs_t offset) const { return m_generic_paletteram_8[offset | 1] | (m_generic_paletteram_8[offset & ~1] << 8); }
@@ -425,6 +433,9 @@ private:
driver_callback_delegate m_callbacks[CB_COUNT]; // start/reset callbacks
legacy_callback_func m_legacy_callbacks[CB_COUNT]; // legacy start/reset callbacks
+ // memory state
+ address_space_config m_generic_space_config;
+
// generic audio
UINT16 m_latch_clear_value;
UINT16 m_latched_value[4];
diff --git a/src/emu/imagedev/flopdrv.h b/src/emu/imagedev/flopdrv.h
index 8f113b711f6..a56d09e9a69 100644
--- a/src/emu/imagedev/flopdrv.h
+++ b/src/emu/imagedev/flopdrv.h
@@ -155,7 +155,7 @@ WRITE_LINE_DEVICE_HANDLER( floppy_ds0_w );
WRITE_LINE_DEVICE_HANDLER( floppy_ds1_w );
WRITE_LINE_DEVICE_HANDLER( floppy_ds2_w );
WRITE_LINE_DEVICE_HANDLER( floppy_ds3_w );
-WRITE8_DEVICE_HANDLER( floppy_ds_w );
+DECLARE_WRITE8_DEVICE_HANDLER( floppy_ds_w );
WRITE_LINE_DEVICE_HANDLER( floppy_mon_w );
WRITE_LINE_DEVICE_HANDLER( floppy_drtn_w );
diff --git a/src/emu/machine/6525tpi.h b/src/emu/machine/6525tpi.h
index 548dd4b4532..a777f978eb9 100644
--- a/src/emu/machine/6525tpi.h
+++ b/src/emu/machine/6525tpi.h
@@ -86,17 +86,17 @@ extern const device_type TPI6525;
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( tpi6525_r );
-WRITE8_DEVICE_HANDLER( tpi6525_w );
+DECLARE_READ8_DEVICE_HANDLER( tpi6525_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_w );
-READ8_DEVICE_HANDLER( tpi6525_porta_r );
-WRITE8_DEVICE_HANDLER( tpi6525_porta_w );
+DECLARE_READ8_DEVICE_HANDLER( tpi6525_porta_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_porta_w );
-READ8_DEVICE_HANDLER( tpi6525_portb_r );
-WRITE8_DEVICE_HANDLER( tpi6525_portb_w );
+DECLARE_READ8_DEVICE_HANDLER( tpi6525_portb_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_portb_w );
-READ8_DEVICE_HANDLER( tpi6525_portc_r );
-WRITE8_DEVICE_HANDLER( tpi6525_portc_w );
+DECLARE_READ8_DEVICE_HANDLER( tpi6525_portc_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tpi6525_portc_w );
WRITE_LINE_DEVICE_HANDLER( tpi6525_i0_w );
WRITE_LINE_DEVICE_HANDLER( tpi6525_i1_w );
diff --git a/src/emu/machine/6526cia.h b/src/emu/machine/6526cia.h
index ea17eeae9d7..5ba57e1e7bc 100644
--- a/src/emu/machine/6526cia.h
+++ b/src/emu/machine/6526cia.h
@@ -268,12 +268,12 @@ extern const device_type MOS5710;
***************************************************************************/
/* register access */
-READ8_DEVICE_HANDLER( mos6526_r );
-WRITE8_DEVICE_HANDLER( mos6526_w );
+DECLARE_READ8_DEVICE_HANDLER( mos6526_r );
+DECLARE_WRITE8_DEVICE_HANDLER( mos6526_w );
/* port access */
-READ8_DEVICE_HANDLER( mos6526_pa_r );
-READ8_DEVICE_HANDLER( mos6526_pb_r );
+DECLARE_READ8_DEVICE_HANDLER( mos6526_pa_r );
+DECLARE_READ8_DEVICE_HANDLER( mos6526_pb_r );
/* interrupt request */
READ_LINE_DEVICE_HANDLER( mos6526_irq_r );
diff --git a/src/emu/machine/6532riot.h b/src/emu/machine/6532riot.h
index 88ee8482e93..d82e946c4b8 100644
--- a/src/emu/machine/6532riot.h
+++ b/src/emu/machine/6532riot.h
@@ -121,8 +121,8 @@ extern const device_type RIOT6532;
PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( riot6532_r );
-WRITE8_DEVICE_HANDLER( riot6532_w );
+DECLARE_READ8_DEVICE_HANDLER( riot6532_r );
+DECLARE_WRITE8_DEVICE_HANDLER( riot6532_w );
void riot6532_porta_in_set(device_t *device, UINT8 data, UINT8 mask);
void riot6532_portb_in_set(device_t *device, UINT8 data, UINT8 mask);
diff --git a/src/emu/machine/68681.h b/src/emu/machine/68681.h
index 6de4665ded5..1a4b248bd91 100644
--- a/src/emu/machine/68681.h
+++ b/src/emu/machine/68681.h
@@ -40,8 +40,8 @@ extern const device_type DUART68681;
MCFG_DEVICE_CONFIG(_config)
-READ8_DEVICE_HANDLER(duart68681_r);
-WRITE8_DEVICE_HANDLER(duart68681_w);
+DECLARE_READ8_DEVICE_HANDLER(duart68681_r);
+DECLARE_WRITE8_DEVICE_HANDLER(duart68681_w);
void duart68681_rx_data( device_t* device, int ch, UINT8 data );
diff --git a/src/emu/machine/74123.c b/src/emu/machine/74123.c
index eac124eeae4..526c7d47d88 100644
--- a/src/emu/machine/74123.c
+++ b/src/emu/machine/74123.c
@@ -55,7 +55,6 @@ void ttl74123_device::device_config_complete()
m_a = 0;
m_b = 0;
m_clear = 0;
- memset(&m_output_changed_cb, 0, sizeof(m_output_changed_cb));
}
}
@@ -66,6 +65,8 @@ void ttl74123_device::device_config_complete()
void ttl74123_device::device_start()
{
+ m_output_changed.resolve(m_output_changed_cb, *this);
+
m_timer = machine().scheduler().timer_alloc(FUNC(clear_callback), (void *)this);
/* register for state saving */
@@ -145,7 +146,7 @@ TIMER_CALLBACK( ttl74123_device::output_callback )
void ttl74123_device::output(INT32 param)
{
- m_output_changed_cb(this, 0, param);
+ m_output_changed(0, param);
}
@@ -177,7 +178,7 @@ void ttl74123_device::clear()
{
int output = timer_running();
- m_output_changed_cb(this, 0, output);
+ m_output_changed(0, output);
}
diff --git a/src/emu/machine/74123.h b/src/emu/machine/74123.h
index 1338c4e825d..c7cafe200d9 100644
--- a/src/emu/machine/74123.h
+++ b/src/emu/machine/74123.h
@@ -82,7 +82,7 @@ struct ttl74123_interface
int m_a; /* initial/constant value of the A pin */
int m_b; /* initial/constant value of the B pin */
int m_clear; /* initial/constant value of the Clear pin */
- write8_device_func m_output_changed_cb;
+ devcb_write8 m_output_changed_cb;
};
@@ -122,6 +122,7 @@ private:
void clear();
emu_timer *m_timer;
+ devcb_resolved_write8 m_output_changed;
};
@@ -134,9 +135,9 @@ extern const device_type TTL74123;
PROTOTYPES
***************************************************************************/
-WRITE8_DEVICE_HANDLER( ttl74123_a_w );
-WRITE8_DEVICE_HANDLER( ttl74123_b_w );
-WRITE8_DEVICE_HANDLER( ttl74123_clear_w );
-WRITE8_DEVICE_HANDLER( ttl74123_reset_w ); /* reset the latch */
+DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_clear_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ttl74123_reset_w ); /* reset the latch */
#endif
diff --git a/src/emu/machine/8237dma.h b/src/emu/machine/8237dma.h
index 864aba746ad..94e285b1248 100644
--- a/src/emu/machine/8237dma.h
+++ b/src/emu/machine/8237dma.h
@@ -189,8 +189,8 @@ extern const device_type I8237;
***************************************************************************/
/* register access */
-READ8_DEVICE_HANDLER( i8237_r );
-WRITE8_DEVICE_HANDLER( i8237_w );
+DECLARE_READ8_DEVICE_HANDLER( i8237_r );
+DECLARE_WRITE8_DEVICE_HANDLER( i8237_w );
/* hold acknowledge */
WRITE_LINE_DEVICE_HANDLER( i8237_hlda_w );
diff --git a/src/emu/machine/8257dma.h b/src/emu/machine/8257dma.h
index 0c96150dfa7..365496fc604 100644
--- a/src/emu/machine/8257dma.h
+++ b/src/emu/machine/8257dma.h
@@ -147,8 +147,8 @@ extern const device_type I8257;
***************************************************************************/
/* register access */
-READ8_DEVICE_HANDLER( i8257_r );
-WRITE8_DEVICE_HANDLER( i8257_w );
+DECLARE_READ8_DEVICE_HANDLER( i8257_r );
+DECLARE_WRITE8_DEVICE_HANDLER( i8257_w );
/* hold acknowledge */
WRITE_LINE_DEVICE_HANDLER( i8257_hlda_w );
diff --git a/src/emu/machine/adc1213x.h b/src/emu/machine/adc1213x.h
index d0a2d39c814..0fed72a1064 100644
--- a/src/emu/machine/adc1213x.h
+++ b/src/emu/machine/adc1213x.h
@@ -82,11 +82,11 @@ struct adc12138_interface
PROTOTYPES
***************************************************************************/
-extern WRITE8_DEVICE_HANDLER( adc1213x_di_w );
-extern WRITE8_DEVICE_HANDLER( adc1213x_cs_w );
-extern WRITE8_DEVICE_HANDLER( adc1213x_sclk_w );
-extern WRITE8_DEVICE_HANDLER( adc1213x_conv_w );
-extern READ8_DEVICE_HANDLER( adc1213x_do_r );
-extern READ8_DEVICE_HANDLER( adc1213x_eoc_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_di_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_cs_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_sclk_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( adc1213x_conv_w );
+extern DECLARE_READ8_DEVICE_HANDLER( adc1213x_do_r );
+extern DECLARE_READ8_DEVICE_HANDLER( adc1213x_eoc_r );
#endif /* __ADC1213X_H__ */
diff --git a/src/emu/machine/at28c16.h b/src/emu/machine/at28c16.h
index d81fe6abe0e..81206458bef 100644
--- a/src/emu/machine/at28c16.h
+++ b/src/emu/machine/at28c16.h
@@ -84,8 +84,8 @@ extern const device_type AT28C16;
// READ/WRITE HANDLERS
//**************************************************************************
-WRITE8_DEVICE_HANDLER( at28c16_w );
-READ8_DEVICE_HANDLER( at28c16_r );
+DECLARE_WRITE8_DEVICE_HANDLER( at28c16_w );
+DECLARE_READ8_DEVICE_HANDLER( at28c16_r );
WRITE_LINE_DEVICE_HANDLER( at28c16_a9_12v );
WRITE_LINE_DEVICE_HANDLER( at28c16_oe_12v );
diff --git a/src/emu/machine/ds2404.h b/src/emu/machine/ds2404.h
index 8f28e2164c4..6870536e720 100644
--- a/src/emu/machine/ds2404.h
+++ b/src/emu/machine/ds2404.h
@@ -128,13 +128,13 @@ extern const device_type DS2404;
***************************************************************************/
/* 1-wire interface reset */
-WRITE8_DEVICE_HANDLER( ds2404_1w_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ds2404_1w_reset_w );
/* 3-wire interface reset */
-WRITE8_DEVICE_HANDLER( ds2404_3w_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ds2404_3w_reset_w );
-READ8_DEVICE_HANDLER( ds2404_data_r );
-WRITE8_DEVICE_HANDLER( ds2404_data_w );
-WRITE8_DEVICE_HANDLER( ds2404_clk_w );
+DECLARE_READ8_DEVICE_HANDLER( ds2404_data_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ds2404_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ds2404_clk_w );
#endif
diff --git a/src/emu/machine/f3853.h b/src/emu/machine/f3853.h
index 9ee50c68c13..cec1fbb48e2 100644
--- a/src/emu/machine/f3853.h
+++ b/src/emu/machine/f3853.h
@@ -120,8 +120,8 @@ extern const device_type F3853;
PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( f3853_r );
-WRITE8_DEVICE_HANDLER( f3853_w );
+DECLARE_READ8_DEVICE_HANDLER( f3853_r );
+DECLARE_WRITE8_DEVICE_HANDLER( f3853_w );
void f3853_set_external_interrupt_in_line(device_t *device, int level);
void f3853_set_priority_in_line(device_t *device, int level);
diff --git a/src/emu/machine/i8243.h b/src/emu/machine/i8243.h
index 325a1bdf5ba..881deec4bcb 100644
--- a/src/emu/machine/i8243.h
+++ b/src/emu/machine/i8243.h
@@ -88,10 +88,10 @@ extern const device_type I8243;
PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( i8243_p2_r );
-WRITE8_DEVICE_HANDLER( i8243_p2_w );
+DECLARE_READ8_DEVICE_HANDLER( i8243_p2_r );
+DECLARE_WRITE8_DEVICE_HANDLER( i8243_p2_w );
-WRITE8_DEVICE_HANDLER( i8243_prog_w );
+DECLARE_WRITE8_DEVICE_HANDLER( i8243_prog_w );
#endif /* __I8243_H__ */
diff --git a/src/emu/machine/idectrl.h b/src/emu/machine/idectrl.h
index d45b652f8f7..7496f814a30 100644
--- a/src/emu/machine/idectrl.h
+++ b/src/emu/machine/idectrl.h
@@ -172,15 +172,15 @@ void ide_bus_w(device_t *config, int select, int offset, int data);
UINT32 ide_controller_r(device_t *config, int reg, int size);
void ide_controller_w(device_t *config, int reg, int size, UINT32 data);
-READ32_DEVICE_HANDLER( ide_controller32_r );
-WRITE32_DEVICE_HANDLER( ide_controller32_w );
-READ32_DEVICE_HANDLER( ide_controller32_pcmcia_r );
-WRITE32_DEVICE_HANDLER( ide_controller32_pcmcia_w );
-READ32_DEVICE_HANDLER( ide_bus_master32_r );
-WRITE32_DEVICE_HANDLER( ide_bus_master32_w );
-
-READ16_DEVICE_HANDLER( ide_controller16_r );
-WRITE16_DEVICE_HANDLER( ide_controller16_w );
+DECLARE_READ32_DEVICE_HANDLER( ide_controller32_r );
+DECLARE_WRITE32_DEVICE_HANDLER( ide_controller32_w );
+DECLARE_READ32_DEVICE_HANDLER( ide_controller32_pcmcia_r );
+DECLARE_WRITE32_DEVICE_HANDLER( ide_controller32_pcmcia_w );
+DECLARE_READ32_DEVICE_HANDLER( ide_bus_master32_r );
+DECLARE_WRITE32_DEVICE_HANDLER( ide_bus_master32_w );
+
+DECLARE_READ16_DEVICE_HANDLER( ide_controller16_r );
+DECLARE_WRITE16_DEVICE_HANDLER( ide_controller16_w );
/* ----- device interface ----- */
diff --git a/src/emu/machine/ins8154.h b/src/emu/machine/ins8154.h
index 1857a428223..12b691baf5f 100644
--- a/src/emu/machine/ins8154.h
+++ b/src/emu/machine/ins8154.h
@@ -116,11 +116,11 @@ extern const device_type INS8154;
PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( ins8154_r );
-WRITE8_DEVICE_HANDLER( ins8154_w );
+DECLARE_READ8_DEVICE_HANDLER( ins8154_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ins8154_w );
-WRITE8_DEVICE_HANDLER( ins8154_porta_w );
-WRITE8_DEVICE_HANDLER( ins8154_portb_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ins8154_porta_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ins8154_portb_w );
#endif /* __INS8154_H__ */
diff --git a/src/emu/machine/k033906.h b/src/emu/machine/k033906.h
index 7a46d253539..2e2521ff52c 100644
--- a/src/emu/machine/k033906.h
+++ b/src/emu/machine/k033906.h
@@ -81,8 +81,8 @@ extern const device_type K033906;
PROTOTYPES
***************************************************************************/
-extern READ32_DEVICE_HANDLER( k033906_r );
-extern WRITE32_DEVICE_HANDLER( k033906_w );
+extern DECLARE_READ32_DEVICE_HANDLER( k033906_r );
+extern DECLARE_WRITE32_DEVICE_HANDLER( k033906_w );
extern WRITE_LINE_DEVICE_HANDLER( k033906_set_reg );
diff --git a/src/emu/machine/k053252.h b/src/emu/machine/k053252.h
index 9b714d1c123..8a1f352f063 100644
--- a/src/emu/machine/k053252.h
+++ b/src/emu/machine/k053252.h
@@ -49,8 +49,8 @@ struct k053252_interface
/** Konami 053252 **/
/* CRT and interrupt control unit */
-READ8_DEVICE_HANDLER( k053252_r ); // CCU registers
-WRITE8_DEVICE_HANDLER( k053252_w );
+DECLARE_READ8_DEVICE_HANDLER( k053252_r ); // CCU registers
+DECLARE_WRITE8_DEVICE_HANDLER( k053252_w );
diff --git a/src/emu/machine/k056230.h b/src/emu/machine/k056230.h
index 5d6d67ec103..99a7df8957b 100644
--- a/src/emu/machine/k056230.h
+++ b/src/emu/machine/k056230.h
@@ -80,10 +80,10 @@ extern const device_type K056230;
PROTOTYPES
***************************************************************************/
-extern READ32_DEVICE_HANDLER( lanc_ram_r );
-extern WRITE32_DEVICE_HANDLER( lanc_ram_w );
-extern READ8_DEVICE_HANDLER( k056230_r );
-extern WRITE8_DEVICE_HANDLER( k056230_w );
+extern DECLARE_READ32_DEVICE_HANDLER( lanc_ram_r );
+extern DECLARE_WRITE32_DEVICE_HANDLER( lanc_ram_w );
+extern DECLARE_READ8_DEVICE_HANDLER( k056230_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER( k056230_w );
#endif /* __K056230_H__ */
diff --git a/src/emu/machine/latch8.c b/src/emu/machine/latch8.c
index 193ad9abf61..ed99bff2ea0 100644
--- a/src/emu/machine/latch8.c
+++ b/src/emu/machine/latch8.c
@@ -42,7 +42,7 @@ static void update(device_t *device, UINT8 new_val, UINT8 mask)
UINT8 changed = old_val ^ latch8->value;
for (i=0; i<8; i++)
if (((changed & (1<<i)) != 0) && latch8->intf->node_map[i] != 0)
- discrete_sound_w(device->machine().device(latch8->intf->node_device[i]), latch8->intf->node_map[i] , (latch8->value >> i) & 1);
+ discrete_sound_w(device->machine().device(latch8->intf->node_device[i]), device->machine().driver_data()->generic_space(), latch8->intf->node_map[i] , (latch8->value >> i) & 1);
}
}
@@ -74,14 +74,14 @@ READ8_DEVICE_HANDLER( latch8_r )
if (read_dev != NULL)
{
res &= ~( 1 << i);
- res |= ((latch8->intf->devread[i].devread_handler(read_dev, 0) >> latch8->intf->devread[i].from_bit) & 0x01) << i;
+ res |= ((latch8->intf->devread[i].devread_handler(read_dev, device->machine().driver_data()->generic_space(), 0, 0xff) >> latch8->intf->devread[i].from_bit) & 0x01) << i;
}
}
}
if (latch8->has_read)
{
/* temporary hack until all relevant systems are devices */
- address_space *space = device->machine().firstcpu->space(AS_PROGRAM);
+ address_space *space = &device->machine().driver_data()->generic_space();
int i;
for (i=0; i<8; i++)
{
diff --git a/src/emu/machine/latch8.h b/src/emu/machine/latch8.h
index a17b7a1839e..e196147398d 100644
--- a/src/emu/machine/latch8.h
+++ b/src/emu/machine/latch8.h
@@ -126,47 +126,47 @@ extern const device_type LATCH8;
/* write & read full byte */
-READ8_DEVICE_HANDLER( latch8_r );
-WRITE8_DEVICE_HANDLER( latch8_w );
+DECLARE_READ8_DEVICE_HANDLER( latch8_r );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_w );
/* reset the latch */
-WRITE8_DEVICE_HANDLER( latch8_reset );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_reset );
/* read bit x */
/* return (latch >> x) & 0x01 */
-READ8_DEVICE_HANDLER( latch8_bit0_r );
-READ8_DEVICE_HANDLER( latch8_bit1_r );
-READ8_DEVICE_HANDLER( latch8_bit2_r );
-READ8_DEVICE_HANDLER( latch8_bit3_r );
-READ8_DEVICE_HANDLER( latch8_bit4_r );
-READ8_DEVICE_HANDLER( latch8_bit5_r );
-READ8_DEVICE_HANDLER( latch8_bit6_r );
-READ8_DEVICE_HANDLER( latch8_bit7_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit0_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit1_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit2_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit3_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit4_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit5_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit6_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit7_r );
/* read inverted bit x */
/* return (latch >> x) & 0x01 */
-READ8_DEVICE_HANDLER( latch8_bit0_q_r );
-READ8_DEVICE_HANDLER( latch8_bit1_q_r );
-READ8_DEVICE_HANDLER( latch8_bit2_q_r );
-READ8_DEVICE_HANDLER( latch8_bit3_q_r );
-READ8_DEVICE_HANDLER( latch8_bit4_q_r );
-READ8_DEVICE_HANDLER( latch8_bit5_q_r );
-READ8_DEVICE_HANDLER( latch8_bit6_q_r );
-READ8_DEVICE_HANDLER( latch8_bit7_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit0_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit1_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit2_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit3_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit4_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit5_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit6_q_r );
+DECLARE_READ8_DEVICE_HANDLER( latch8_bit7_q_r );
/* write bit x from data into bit determined by offset */
/* latch = (latch & ~(1<<offset)) | (((data >> x) & 0x01) << offset) */
-WRITE8_DEVICE_HANDLER( latch8_bit0_w );
-WRITE8_DEVICE_HANDLER( latch8_bit1_w );
-WRITE8_DEVICE_HANDLER( latch8_bit2_w );
-WRITE8_DEVICE_HANDLER( latch8_bit3_w );
-WRITE8_DEVICE_HANDLER( latch8_bit4_w );
-WRITE8_DEVICE_HANDLER( latch8_bit5_w );
-WRITE8_DEVICE_HANDLER( latch8_bit6_w );
-WRITE8_DEVICE_HANDLER( latch8_bit7_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit0_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit3_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit4_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit5_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit6_w );
+DECLARE_WRITE8_DEVICE_HANDLER( latch8_bit7_w );
#endif /* __LATCH8_H_ */
diff --git a/src/emu/machine/mb14241.h b/src/emu/machine/mb14241.h
index bd39245a5c1..8155b03d318 100644
--- a/src/emu/machine/mb14241.h
+++ b/src/emu/machine/mb14241.h
@@ -43,9 +43,9 @@ extern const device_type MB14241;
DEVICE I/O FUNCTIONS
***************************************************************************/
-WRITE8_DEVICE_HANDLER ( mb14241_shift_count_w );
-WRITE8_DEVICE_HANDLER ( mb14241_shift_data_w );
-READ8_DEVICE_HANDLER( mb14241_shift_result_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( mb14241_shift_count_w );
+DECLARE_WRITE8_DEVICE_HANDLER ( mb14241_shift_data_w );
+DECLARE_READ8_DEVICE_HANDLER( mb14241_shift_result_r );
#endif /* __MB14241_H__ */
diff --git a/src/emu/machine/pd4990a.h b/src/emu/machine/pd4990a.h
index 3772546835b..b5d5b57c7ac 100644
--- a/src/emu/machine/pd4990a.h
+++ b/src/emu/machine/pd4990a.h
@@ -48,9 +48,9 @@ extern const device_type UPD4990A;
/* this should be refactored, once RTCs get unified */
extern void upd4990a_addretrace( device_t *device );
-extern READ8_DEVICE_HANDLER( upd4990a_testbit_r );
-extern READ8_DEVICE_HANDLER( upd4990a_databit_r );
-extern WRITE16_DEVICE_HANDLER( upd4990a_control_16_w );
+extern DECLARE_READ8_DEVICE_HANDLER( upd4990a_testbit_r );
+extern DECLARE_READ8_DEVICE_HANDLER( upd4990a_databit_r );
+extern DECLARE_WRITE16_DEVICE_HANDLER( upd4990a_control_16_w );
#endif /*__PD4990A_H__*/
diff --git a/src/emu/machine/pic8259.h b/src/emu/machine/pic8259.h
index 99f24b62fed..13a77b94e31 100644
--- a/src/emu/machine/pic8259.h
+++ b/src/emu/machine/pic8259.h
@@ -74,8 +74,8 @@ struct pic8259_interface
/* device interface */
-READ8_DEVICE_HANDLER( pic8259_r );
-WRITE8_DEVICE_HANDLER( pic8259_w );
+DECLARE_READ8_DEVICE_HANDLER( pic8259_r );
+DECLARE_WRITE8_DEVICE_HANDLER( pic8259_w );
int pic8259_acknowledge(device_t *device);
/* interrupt requests */
diff --git a/src/emu/machine/pit8253.h b/src/emu/machine/pit8253.h
index c4af119903b..ad2247222a0 100644
--- a/src/emu/machine/pit8253.h
+++ b/src/emu/machine/pit8253.h
@@ -85,8 +85,8 @@ extern const device_type PIT8254;
MCFG_DEVICE_CONFIG(_intrf)
-READ8_DEVICE_HANDLER( pit8253_r );
-WRITE8_DEVICE_HANDLER( pit8253_w );
+DECLARE_READ8_DEVICE_HANDLER( pit8253_r );
+DECLARE_WRITE8_DEVICE_HANDLER( pit8253_w );
WRITE_LINE_DEVICE_HANDLER( pit8253_clk0_w );
WRITE_LINE_DEVICE_HANDLER( pit8253_clk1_w );
diff --git a/src/emu/machine/rp5h01.h b/src/emu/machine/rp5h01.h
index 5e798ed780e..e784fa4f15f 100644
--- a/src/emu/machine/rp5h01.h
+++ b/src/emu/machine/rp5h01.h
@@ -48,12 +48,12 @@ extern const device_type RP5H01;
PROTOTYPES
***************************************************************************/
-WRITE8_DEVICE_HANDLER( rp5h01_enable_w ); /* /CE */
-WRITE8_DEVICE_HANDLER( rp5h01_reset_w ); /* RESET */
-WRITE8_DEVICE_HANDLER( rp5h01_cs_w ); /* CS */
-WRITE8_DEVICE_HANDLER( rp5h01_clock_w ); /* DATA CLOCK (active low) */
-WRITE8_DEVICE_HANDLER( rp5h01_test_w ); /* TEST */
-READ8_DEVICE_HANDLER( rp5h01_counter_r ); /* COUNTER OUT */
-READ8_DEVICE_HANDLER( rp5h01_data_r ); /* DATA */
+DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_enable_w ); /* /CE */
+DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_reset_w ); /* RESET */
+DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_cs_w ); /* CS */
+DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_clock_w ); /* DATA CLOCK (active low) */
+DECLARE_WRITE8_DEVICE_HANDLER( rp5h01_test_w ); /* TEST */
+DECLARE_READ8_DEVICE_HANDLER( rp5h01_counter_r ); /* COUNTER OUT */
+DECLARE_READ8_DEVICE_HANDLER( rp5h01_data_r ); /* DATA */
#endif /* __RP5H01_H__ */
diff --git a/src/emu/machine/s3c2410.h b/src/emu/machine/s3c2410.h
index 0ed2cf85c2e..98944c1eac9 100644
--- a/src/emu/machine/s3c2410.h
+++ b/src/emu/machine/s3c2410.h
@@ -63,7 +63,7 @@ public:
extern const device_type S3C2410;
-READ32_DEVICE_HANDLER( s3c2410_lcd_r );
+DECLARE_READ32_DEVICE_HANDLER( s3c2410_lcd_r );
/*******************************************************************************
TYPE DEFINITIONS
diff --git a/src/emu/machine/s3c24xx.c b/src/emu/machine/s3c24xx.c
index e4327310f7e..500b96e85e5 100644
--- a/src/emu/machine/s3c24xx.c
+++ b/src/emu/machine/s3c24xx.c
@@ -2686,7 +2686,7 @@ INLINE void iface_i2s_data_w( device_t *device, int ch, UINT16 data)
s3c24xx_t *s3c24xx = get_token( device);
if (s3c24xx->iface->i2s.data_w)
{
- (s3c24xx->iface->i2s.data_w)( device, ch, data, 0);
+ (s3c24xx->iface->i2s.data_w)( device, device->machine().driver_data()->generic_space(), ch, data, 0);
}
}
@@ -2949,7 +2949,7 @@ static UINT32 iface_adc_data_r( device_t *device, int ch)
offs += 2;
}
#endif
- return (s3c24xx->iface->adc.data_r)( device, offs, 0);
+ return (s3c24xx->iface->adc.data_r)( device, device->machine().driver_data()->generic_space(), offs, 0);
}
else
{
@@ -3181,7 +3181,7 @@ INLINE void iface_nand_command_w( device_t *device, UINT8 data)
s3c24xx_t *s3c24xx = get_token( device);
if (s3c24xx->iface->nand.command_w)
{
- (s3c24xx->iface->nand.command_w)( device, 0, data);
+ (s3c24xx->iface->nand.command_w)( device, device->machine().driver_data()->generic_space(), 0, data, 0xff);
}
}
@@ -3190,7 +3190,7 @@ INLINE void iface_nand_address_w( device_t *device, UINT8 data)
s3c24xx_t *s3c24xx = get_token( device);
if (s3c24xx->iface->nand.address_w)
{
- (s3c24xx->iface->nand.address_w)( device, 0, data);
+ (s3c24xx->iface->nand.address_w)( device, device->machine().driver_data()->generic_space(), 0, data, 0xff);
}
}
@@ -3199,7 +3199,7 @@ INLINE UINT8 iface_nand_data_r( device_t *device)
s3c24xx_t *s3c24xx = get_token( device);
if (s3c24xx->iface->nand.data_r)
{
- return (s3c24xx->iface->nand.data_r)( device, 0);
+ return (s3c24xx->iface->nand.data_r)( device, device->machine().driver_data()->generic_space(), 0, 0xff);
}
else
{
@@ -3212,7 +3212,7 @@ INLINE void iface_nand_data_w( device_t *device, UINT8 data)
s3c24xx_t *s3c24xx = get_token( device);
if (s3c24xx->iface->nand.data_w)
{
- (s3c24xx->iface->nand.data_w)( device, 0, data);
+ (s3c24xx->iface->nand.data_w)( device, device->machine().driver_data()->generic_space(), 0, data, 0xff);
}
}
diff --git a/src/emu/machine/smc91c9x.h b/src/emu/machine/smc91c9x.h
index 038b3cc4000..380e96130bb 100644
--- a/src/emu/machine/smc91c9x.h
+++ b/src/emu/machine/smc91c9x.h
@@ -44,8 +44,8 @@ struct smc91c9x_config
FUNCTION PROTOTYPES
***************************************************************************/
-READ16_DEVICE_HANDLER( smc91c9x_r );
-WRITE16_DEVICE_HANDLER( smc91c9x_w );
+DECLARE_READ16_DEVICE_HANDLER( smc91c9x_r );
+DECLARE_WRITE16_DEVICE_HANDLER( smc91c9x_w );
/* ----- device interface ----- */
diff --git a/src/emu/machine/timekpr.h b/src/emu/machine/timekpr.h
index 4dd5cb64aa8..a312985022a 100644
--- a/src/emu/machine/timekpr.h
+++ b/src/emu/machine/timekpr.h
@@ -154,7 +154,7 @@ extern const device_type MK48T08;
// READ/WRITE HANDLERS
//**************************************************************************
-WRITE8_DEVICE_HANDLER( timekeeper_w );
-READ8_DEVICE_HANDLER( timekeeper_r );
+DECLARE_WRITE8_DEVICE_HANDLER( timekeeper_w );
+DECLARE_READ8_DEVICE_HANDLER( timekeeper_r );
#endif // __TIMEKPR_H__
diff --git a/src/emu/machine/tms6100.h b/src/emu/machine/tms6100.h
index 512446b8e62..d44ccc4e56c 100644
--- a/src/emu/machine/tms6100.h
+++ b/src/emu/machine/tms6100.h
@@ -10,7 +10,7 @@
WRITE_LINE_DEVICE_HANDLER( tms6100_m0_w );
WRITE_LINE_DEVICE_HANDLER( tms6100_m1_w );
WRITE_LINE_DEVICE_HANDLER( tms6100_romclock_w );
-WRITE8_DEVICE_HANDLER( tms6100_addr_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tms6100_addr_w );
READ_LINE_DEVICE_HANDLER( tms6100_data_r );
diff --git a/src/emu/machine/upd4701.h b/src/emu/machine/upd4701.h
index e4a8fd519d5..582357a4ebc 100644
--- a/src/emu/machine/upd4701.h
+++ b/src/emu/machine/upd4701.h
@@ -44,18 +44,18 @@ extern const device_type UPD4701;
PROTOTYPES
***************************************************************************/
-extern WRITE8_DEVICE_HANDLER( upd4701_cs_w );
-extern WRITE8_DEVICE_HANDLER( upd4701_xy_w );
-extern WRITE8_DEVICE_HANDLER( upd4701_ul_w );
-extern WRITE8_DEVICE_HANDLER( upd4701_resetx_w );
-extern WRITE8_DEVICE_HANDLER( upd4701_resety_w );
-extern WRITE16_DEVICE_HANDLER( upd4701_x_add );
-extern WRITE16_DEVICE_HANDLER( upd4701_y_add );
-extern WRITE8_DEVICE_HANDLER( upd4701_switches_set );
-
-extern READ16_DEVICE_HANDLER( upd4701_d_r );
-extern READ8_DEVICE_HANDLER( upd4701_cf_r );
-extern READ8_DEVICE_HANDLER( upd4701_sf_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_cs_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_xy_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_ul_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_resetx_w );
+extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_resety_w );
+extern DECLARE_WRITE16_DEVICE_HANDLER( upd4701_x_add );
+extern DECLARE_WRITE16_DEVICE_HANDLER( upd4701_y_add );
+extern DECLARE_WRITE8_DEVICE_HANDLER( upd4701_switches_set );
+
+extern DECLARE_READ16_DEVICE_HANDLER( upd4701_d_r );
+extern DECLARE_READ8_DEVICE_HANDLER( upd4701_cf_r );
+extern DECLARE_READ8_DEVICE_HANDLER( upd4701_sf_r );
#endif /* __UPD4701_H__ */
diff --git a/src/emu/machine/wd17xx.c b/src/emu/machine/wd17xx.c
index f40569ec4ec..db50eccc2c6 100644
--- a/src/emu/machine/wd17xx.c
+++ b/src/emu/machine/wd17xx.c
@@ -1993,10 +1993,10 @@ READ8_DEVICE_HANDLER( wd17xx_r )
switch (offset & 0x03)
{
- case 0: data = wd17xx_status_r(device, 0); break;
- case 1: data = wd17xx_track_r(device, 0); break;
- case 2: data = wd17xx_sector_r(device, 0); break;
- case 3: data = wd17xx_data_r(device, 0); break;
+ case 0: data = wd17xx_status_r(device, device->machine().driver_data()->generic_space(), 0); break;
+ case 1: data = wd17xx_track_r(device, device->machine().driver_data()->generic_space(), 0); break;
+ case 2: data = wd17xx_sector_r(device, device->machine().driver_data()->generic_space(), 0); break;
+ case 3: data = wd17xx_data_r(device, device->machine().driver_data()->generic_space(), 0); break;
}
return data;
@@ -2006,10 +2006,10 @@ WRITE8_DEVICE_HANDLER( wd17xx_w )
{
switch (offset & 0x03)
{
- case 0: wd17xx_command_w(device, 0, data); break;
- case 1: wd17xx_track_w(device, 0, data); break;
- case 2: wd17xx_sector_w(device, 0, data); break;
- case 3: wd17xx_data_w(device, 0, data); break;
+ case 0: wd17xx_command_w(device, device->machine().driver_data()->generic_space(), 0, data); break;
+ case 1: wd17xx_track_w(device, device->machine().driver_data()->generic_space(), 0, data); break;
+ case 2: wd17xx_sector_w(device, device->machine().driver_data()->generic_space(), 0, data); break;
+ case 3: wd17xx_data_w(device, device->machine().driver_data()->generic_space(), 0, data); break;
}
}
diff --git a/src/emu/machine/wd17xx.h b/src/emu/machine/wd17xx.h
index 80d85987b80..eb66952d68c 100644
--- a/src/emu/machine/wd17xx.h
+++ b/src/emu/machine/wd17xx.h
@@ -255,18 +255,18 @@ void wd17xx_set_side(device_t *device, UINT8); /* set side wd179x is accessing
void wd17xx_set_pause_time(device_t *device, int usec); /* default is 40 usec if not set */
void wd17xx_index_pulse_callback(device_t *controller, device_t *img, int state);
-READ8_DEVICE_HANDLER( wd17xx_status_r );
-READ8_DEVICE_HANDLER( wd17xx_track_r );
-READ8_DEVICE_HANDLER( wd17xx_sector_r );
-READ8_DEVICE_HANDLER( wd17xx_data_r );
-
-WRITE8_DEVICE_HANDLER( wd17xx_command_w );
-WRITE8_DEVICE_HANDLER( wd17xx_track_w );
-WRITE8_DEVICE_HANDLER( wd17xx_sector_w );
-WRITE8_DEVICE_HANDLER( wd17xx_data_w );
-
-READ8_DEVICE_HANDLER( wd17xx_r );
-WRITE8_DEVICE_HANDLER( wd17xx_w );
+DECLARE_READ8_DEVICE_HANDLER( wd17xx_status_r );
+DECLARE_READ8_DEVICE_HANDLER( wd17xx_track_r );
+DECLARE_READ8_DEVICE_HANDLER( wd17xx_sector_r );
+DECLARE_READ8_DEVICE_HANDLER( wd17xx_data_r );
+
+DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_command_w );
+DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_track_w );
+DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_sector_w );
+DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_data_w );
+
+DECLARE_READ8_DEVICE_HANDLER( wd17xx_r );
+DECLARE_WRITE8_DEVICE_HANDLER( wd17xx_w );
WRITE_LINE_DEVICE_HANDLER( wd17xx_mr_w );
WRITE_LINE_DEVICE_HANDLER( wd17xx_rdy_w );
diff --git a/src/emu/machine/z80dart.c b/src/emu/machine/z80dart.c
index a74a49c8f61..ff90187c642 100644
--- a/src/emu/machine/z80dart.c
+++ b/src/emu/machine/z80dart.c
@@ -1452,22 +1452,22 @@ WRITE_LINE_DEVICE_HANDLER( z80dart_rxtxcb_w ) { downcast<z80dart_device *>(devic
READ8_DEVICE_HANDLER( z80dart_cd_ba_r )
{
- return (offset & 2) ? z80dart_c_r(device, offset & 1) : z80dart_d_r(device, offset & 1);
+ return (offset & 2) ? z80dart_c_r(device, space, offset & 1) : z80dart_d_r(device, space, offset & 1);
}
WRITE8_DEVICE_HANDLER( z80dart_cd_ba_w )
{
if (offset & 2)
- z80dart_c_w(device, offset & 1, data);
+ z80dart_c_w(device, space, offset & 1, data);
else
- z80dart_d_w(device, offset & 1, data);
+ z80dart_d_w(device, space, offset & 1, data);
}
READ8_DEVICE_HANDLER( z80dart_ba_cd_r )
{
int channel = BIT(offset, 1);
- return (offset & 1) ? z80dart_c_r(device, channel) : z80dart_d_r(device, channel);
+ return (offset & 1) ? z80dart_c_r(device, space, channel) : z80dart_d_r(device, space, channel);
}
WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w )
@@ -1475,7 +1475,7 @@ WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w )
int channel = BIT(offset, 1);
if (offset & 1)
- z80dart_c_w(device, channel, data);
+ z80dart_c_w(device, space, channel, data);
else
- z80dart_d_w(device, channel, data);
+ z80dart_d_w(device, space, channel, data);
}
diff --git a/src/emu/machine/z80dart.h b/src/emu/machine/z80dart.h
index de89be0e6c4..b1e8382834a 100644
--- a/src/emu/machine/z80dart.h
+++ b/src/emu/machine/z80dart.h
@@ -341,19 +341,19 @@ extern const device_type Z80SIO4;
//**************************************************************************
// register access
-READ8_DEVICE_HANDLER( z80dart_cd_ba_r );
-WRITE8_DEVICE_HANDLER( z80dart_cd_ba_w );
+DECLARE_READ8_DEVICE_HANDLER( z80dart_cd_ba_r );
+DECLARE_WRITE8_DEVICE_HANDLER( z80dart_cd_ba_w );
-READ8_DEVICE_HANDLER( z80dart_ba_cd_r );
-WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w );
+DECLARE_READ8_DEVICE_HANDLER( z80dart_ba_cd_r );
+DECLARE_WRITE8_DEVICE_HANDLER( z80dart_ba_cd_w );
// control register access
-WRITE8_DEVICE_HANDLER( z80dart_c_w );
-READ8_DEVICE_HANDLER( z80dart_c_r );
+DECLARE_WRITE8_DEVICE_HANDLER( z80dart_c_w );
+DECLARE_READ8_DEVICE_HANDLER( z80dart_c_r );
// data register access
-WRITE8_DEVICE_HANDLER( z80dart_d_w );
-READ8_DEVICE_HANDLER( z80dart_d_r );
+DECLARE_WRITE8_DEVICE_HANDLER( z80dart_d_w );
+DECLARE_READ8_DEVICE_HANDLER( z80dart_d_r );
// serial clocks
WRITE_LINE_DEVICE_HANDLER( z80dart_rxca_w );
diff --git a/src/emu/machine/z80dma.h b/src/emu/machine/z80dma.h
index 5b50228224f..13c42833101 100644
--- a/src/emu/machine/z80dma.h
+++ b/src/emu/machine/z80dma.h
@@ -168,8 +168,8 @@ extern const device_type Z80DMA;
//**************************************************************************
// register access
-READ8_DEVICE_HANDLER( z80dma_r );
-WRITE8_DEVICE_HANDLER( z80dma_w );
+DECLARE_READ8_DEVICE_HANDLER( z80dma_r );
+DECLARE_WRITE8_DEVICE_HANDLER( z80dma_w );
// ready
WRITE_LINE_DEVICE_HANDLER( z80dma_rdy_w );
diff --git a/src/emu/machine/z80sio.c b/src/emu/machine/z80sio.c
index ce72544e1f4..616b0a61aae 100644
--- a/src/emu/machine/z80sio.c
+++ b/src/emu/machine/z80sio.c
@@ -243,8 +243,8 @@ const UINT8 z80sio_device::k_int_priority[] =
inline void z80sio_device::update_interrupt_state()
{
// if we have a callback, update it with the current state
- if (m_irq_cb != NULL)
- (*m_irq_cb)(this, (z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE);
+ if (!m_irq.isnull())
+ m_irq((z80daisy_irq_state() & Z80_DAISY_INT) ? ASSERT_LINE : CLEAR_LINE);
}
@@ -318,17 +318,6 @@ void z80sio_device::device_config_complete()
const z80sio_interface *intf = reinterpret_cast<const z80sio_interface *>(static_config());
if (intf != NULL)
*static_cast<z80sio_interface *>(this) = *intf;
-
- // or initialize to defaults if none provided
- else
- {
- m_irq_cb = NULL;
- m_dtr_changed_cb = NULL;
- m_rts_changed_cb = NULL;
- m_break_changed_cb = NULL;
- m_transmit_cb = NULL;
- m_receive_poll_cb = NULL;
- }
}
@@ -338,6 +327,13 @@ void z80sio_device::device_config_complete()
void z80sio_device::device_start()
{
+ m_irq.resolve(m_irq_cb, *this);
+ m_dtr_changed.resolve(m_dtr_changed_cb, *this);
+ m_rts_changed.resolve(m_rts_changed_cb, *this);
+ m_break_changed.resolve(m_break_changed_cb, *this);
+ m_transmit.resolve(m_transmit_cb, *this);
+ m_received_poll.resolve(m_received_poll_cb, *this);
+
m_channel[0].start(this, 0);
m_channel[1].start(this, 1);
}
@@ -566,12 +562,12 @@ void z80sio_device::sio_channel::control_write(UINT8 data)
// SIO write register 5
case 5:
- if (((old ^ data) & SIO_WR5_DTR) && m_device->m_dtr_changed_cb)
- (*m_device->m_dtr_changed_cb)(m_device, m_index, (data & SIO_WR5_DTR) != 0);
- if (((old ^ data) & SIO_WR5_SEND_BREAK) && m_device->m_break_changed_cb)
- (*m_device->m_break_changed_cb)(m_device, m_index, (data & SIO_WR5_SEND_BREAK) != 0);
- if (((old ^ data) & SIO_WR5_RTS) && m_device->m_rts_changed_cb)
- (*m_device->m_rts_changed_cb)(m_device, m_index, (data & SIO_WR5_RTS) != 0);
+ if (((old ^ data) & SIO_WR5_DTR) && !m_device->m_dtr_changed.isnull())
+ m_device->m_dtr_changed(m_index, (data & SIO_WR5_DTR) != 0);
+ if (((old ^ data) & SIO_WR5_SEND_BREAK) && !m_device->m_break_changed.isnull())
+ m_device->m_break_changed(m_index, (data & SIO_WR5_SEND_BREAK) != 0);
+ if (((old ^ data) & SIO_WR5_RTS) && !m_device->m_rts_changed.isnull())
+ m_device->m_rts_changed(m_index, (data & SIO_WR5_RTS) != 0);
break;
}
}
@@ -741,8 +737,8 @@ void z80sio_device::sio_channel::serial_callback()
VPRINTF(("serial_callback(%c): Transmitting %02x\n", 'A' + m_index, m_outbuf));
// actually transmit the character
- if (m_device->m_transmit_cb != NULL)
- (*m_device->m_transmit_cb)(m_device, m_index, m_outbuf);
+ if (!m_device->m_transmit.isnull())
+ m_device->m_transmit(m_index, m_outbuf, 0xffff);
// update the status register
m_status[0] |= SIO_RR0_TX_BUFFER_EMPTY;
@@ -756,8 +752,8 @@ void z80sio_device::sio_channel::serial_callback()
}
// ask the polling callback if there is data to receive
- if (m_device->m_receive_poll_cb != NULL)
- data = (*m_device->m_receive_poll_cb)(m_device, m_index);
+ if (!m_device->m_received_poll.isnull())
+ data = INT16(m_device->m_received_poll(m_index, 0xffff));
// if we have buffered data, pull it
if (m_receive_inptr != m_receive_outptr)
diff --git a/src/emu/machine/z80sio.h b/src/emu/machine/z80sio.h
index 501431d3bf1..bc2f0485997 100644
--- a/src/emu/machine/z80sio.h
+++ b/src/emu/machine/z80sio.h
@@ -32,12 +32,12 @@
struct z80sio_interface
{
- void (*m_irq_cb)(device_t *device, int state);
- write8_device_func m_dtr_changed_cb;
- write8_device_func m_rts_changed_cb;
- write8_device_func m_break_changed_cb;
- write8_device_func m_transmit_cb;
- int (*m_receive_poll_cb)(device_t *device, int channel);
+ devcb_write_line m_irq_cb;
+ devcb_write8 m_dtr_changed_cb;
+ devcb_write8 m_rts_changed_cb;
+ devcb_write8 m_break_changed_cb;
+ devcb_write16 m_transmit_cb;
+ devcb_read16 m_received_poll_cb;
};
@@ -140,6 +140,14 @@ private:
sio_channel m_channel[2]; // 2 channels
UINT8 m_int_state[8]; // interrupt states
+ // callbacks
+ devcb_resolved_write_line m_irq;
+ devcb_resolved_write8 m_dtr_changed;
+ devcb_resolved_write8 m_rts_changed;
+ devcb_resolved_write8 m_break_changed;
+ devcb_resolved_write16 m_transmit;
+ devcb_resolved_read16 m_received_poll;
+
static const UINT8 k_int_priority[];
};
diff --git a/src/emu/machine/z80sti.h b/src/emu/machine/z80sti.h
index e316949c038..8d8f369f976 100644
--- a/src/emu/machine/z80sti.h
+++ b/src/emu/machine/z80sti.h
@@ -183,8 +183,8 @@ extern const device_type Z80STI;
//**************************************************************************
// register access
-READ8_DEVICE_HANDLER( z80sti_r );
-WRITE8_DEVICE_HANDLER( z80sti_w );
+DECLARE_READ8_DEVICE_HANDLER( z80sti_r );
+DECLARE_WRITE8_DEVICE_HANDLER( z80sti_w );
// receive clock
WRITE_LINE_DEVICE_HANDLER( z80sti_rc_w );
diff --git a/src/emu/memory.c b/src/emu/memory.c
index 837b67ddd2e..669c246500f 100644
--- a/src/emu/memory.c
+++ b/src/emu/memory.c
@@ -1998,29 +1998,6 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w
}
break;
- case AMH_LEGACY_DEVICE_HANDLER:
- target_device = device().siblingdevice(data.m_tag);
- if (target_device == NULL)
- fatalerror("Attempted to map a non-existent device '%s' in space %s of device '%s'\n", data.m_tag.cstr(), m_name, m_device.tag());
-
- if (readorwrite == ROW_READ)
- switch (data.m_bits)
- {
- case 8: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice8, data.m_name, data.m_mask); break;
- case 16: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice16, data.m_name, data.m_mask); break;
- case 32: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice32, data.m_name, data.m_mask); break;
- case 64: install_legacy_read_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_rdevice64, data.m_name, data.m_mask); break;
- }
- else
- switch (data.m_bits)
- {
- case 8: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice8, data.m_name, data.m_mask); break;
- case 16: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice16, data.m_name, data.m_mask); break;
- case 32: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice32, data.m_name, data.m_mask); break;
- case 64: install_legacy_write_handler(*target_device, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, entry.m_wdevice64, data.m_name, data.m_mask); break;
- }
- break;
-
case AMH_PORT:
install_readwrite_port(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror,
(readorwrite == ROW_READ) ? data.m_tag.cstr() : NULL,
diff --git a/src/emu/memory.h b/src/emu/memory.h
index cb3f75f6561..6fc39f47b22 100644
--- a/src/emu/memory.h
+++ b/src/emu/memory.h
@@ -122,14 +122,14 @@ typedef UINT64 (*read64_space_func) (ATTR_UNUSED address_space *space, ATTR_UNUS
typedef void (*write64_space_func)(ATTR_UNUSED address_space *space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask);
// legacy device read/write handlers
-typedef UINT8 (*read8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset);
-typedef void (*write8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data);
-typedef UINT16 (*read16_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask);
-typedef void (*write16_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask);
-typedef UINT32 (*read32_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask);
-typedef void (*write32_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask);
-typedef UINT64 (*read64_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask);
-typedef void (*write64_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask);
+typedef UINT8 (*read8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 mem_mask);
+typedef void (*write8_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask);
+typedef UINT16 (*read16_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask);
+typedef void (*write16_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask);
+typedef UINT32 (*read32_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask);
+typedef void (*write32_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask);
+typedef UINT64 (*read64_device_func) (ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask);
+typedef void (*write64_device_func)(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask);
// struct with function pointers for accessors; use is generally discouraged unless necessary
@@ -887,14 +887,23 @@ private:
// device read/write handler function macros
-#define READ8_DEVICE_HANDLER(name) UINT8 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset)
-#define WRITE8_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data)
-#define READ16_DEVICE_HANDLER(name) UINT16 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask)
-#define WRITE16_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask)
-#define READ32_DEVICE_HANDLER(name) UINT32 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask)
-#define WRITE32_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask)
-#define READ64_DEVICE_HANDLER(name) UINT64 name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask)
-#define WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask)
+#define READ8_DEVICE_HANDLER(name) UINT8 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 mem_mask)
+#define WRITE8_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask)
+#define READ16_DEVICE_HANDLER(name) UINT16 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask)
+#define WRITE16_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask)
+#define READ32_DEVICE_HANDLER(name) UINT32 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask)
+#define WRITE32_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask)
+#define READ64_DEVICE_HANDLER(name) UINT64 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask)
+#define WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask)
+
+#define DECLARE_READ8_DEVICE_HANDLER(name) UINT8 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 mem_mask = 0xff)
+#define DECLARE_WRITE8_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT8 data, ATTR_UNUSED UINT8 mem_mask = 0xff)
+#define DECLARE_READ16_DEVICE_HANDLER(name) UINT16 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 mem_mask = 0xffff)
+#define DECLARE_WRITE16_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT16 data, ATTR_UNUSED UINT16 mem_mask = 0xffff)
+#define DECLARE_READ32_DEVICE_HANDLER(name) UINT32 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 mem_mask = 0xffffffff)
+#define DECLARE_WRITE32_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT32 data, ATTR_UNUSED UINT32 mem_mask = 0xffffffff)
+#define DECLARE_READ64_DEVICE_HANDLER(name) UINT64 name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 mem_mask = U64(0xffffffffffffffff))
+#define DECLARE_WRITE64_DEVICE_HANDLER(name) void name(ATTR_UNUSED device_t *device, ATTR_UNUSED address_space &space, ATTR_UNUSED offs_t offset, ATTR_UNUSED UINT64 data, ATTR_UNUSED UINT64 mem_mask = U64(0xffffffffffffffff))
// space read/write handler function macros
diff --git a/src/emu/sound/2151intf.c b/src/emu/sound/2151intf.c
index ee9fee15d80..13e563ccb6b 100644
--- a/src/emu/sound/2151intf.c
+++ b/src/emu/sound/2151intf.c
@@ -112,10 +112,10 @@ WRITE8_DEVICE_HANDLER( ym2151_w )
}
-READ8_DEVICE_HANDLER( ym2151_status_port_r ) { return ym2151_r(device, 1); }
+READ8_DEVICE_HANDLER( ym2151_status_port_r ) { return ym2151_r(device, space, 1); }
-WRITE8_DEVICE_HANDLER( ym2151_register_port_w ) { ym2151_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym2151_data_port_w ) { ym2151_w(device, 1, data); }
+WRITE8_DEVICE_HANDLER( ym2151_register_port_w ) { ym2151_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym2151_data_port_w ) { ym2151_w(device, space, 1, data); }
const device_type YM2151 = &device_creator<ym2151_device>;
diff --git a/src/emu/sound/2151intf.h b/src/emu/sound/2151intf.h
index 840269b0faa..12ee45125dc 100644
--- a/src/emu/sound/2151intf.h
+++ b/src/emu/sound/2151intf.h
@@ -11,12 +11,12 @@ struct ym2151_interface
devcb_write8 portwritehandler;
};
-READ8_DEVICE_HANDLER( ym2151_r );
-WRITE8_DEVICE_HANDLER( ym2151_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2151_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2151_w );
-READ8_DEVICE_HANDLER( ym2151_status_port_r );
-WRITE8_DEVICE_HANDLER( ym2151_register_port_w );
-WRITE8_DEVICE_HANDLER( ym2151_data_port_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2151_status_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2151_register_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2151_data_port_w );
class ym2151_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/2203intf.c b/src/emu/sound/2203intf.c
index 34767229718..584035ccb8e 100644
--- a/src/emu/sound/2203intf.c
+++ b/src/emu/sound/2203intf.c
@@ -175,10 +175,10 @@ WRITE8_DEVICE_HANDLER( ym2203_w )
}
-READ8_DEVICE_HANDLER( ym2203_status_port_r ) { return ym2203_r(device, 0); }
-READ8_DEVICE_HANDLER( ym2203_read_port_r ) { return ym2203_r(device, 1); }
-WRITE8_DEVICE_HANDLER( ym2203_control_port_w ) { ym2203_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym2203_write_port_w ) { ym2203_w(device, 1, data); }
+READ8_DEVICE_HANDLER( ym2203_status_port_r ) { return ym2203_r(device, space, 0); }
+READ8_DEVICE_HANDLER( ym2203_read_port_r ) { return ym2203_r(device, space, 1); }
+WRITE8_DEVICE_HANDLER( ym2203_control_port_w ) { ym2203_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym2203_write_port_w ) { ym2203_w(device, space, 1, data); }
const device_type YM2203 = &device_creator<ym2203_device>;
diff --git a/src/emu/sound/2203intf.h b/src/emu/sound/2203intf.h
index 81f5aea9b98..12140727db2 100644
--- a/src/emu/sound/2203intf.h
+++ b/src/emu/sound/2203intf.h
@@ -15,13 +15,13 @@ struct ym2203_interface
devcb_write_line irqhandler;
};
-READ8_DEVICE_HANDLER( ym2203_r );
-WRITE8_DEVICE_HANDLER( ym2203_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2203_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2203_w );
-READ8_DEVICE_HANDLER( ym2203_status_port_r );
-READ8_DEVICE_HANDLER( ym2203_read_port_r );
-WRITE8_DEVICE_HANDLER( ym2203_control_port_w );
-WRITE8_DEVICE_HANDLER( ym2203_write_port_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2203_status_port_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2203_read_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2203_control_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2203_write_port_w );
class ym2203_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/2413intf.c b/src/emu/sound/2413intf.c
index 24a5051c3c0..0c7ec87d84b 100644
--- a/src/emu/sound/2413intf.c
+++ b/src/emu/sound/2413intf.c
@@ -111,8 +111,8 @@ WRITE8_DEVICE_HANDLER( ym2413_w )
ym2413_write(info->chip, offset & 1, data);
}
-WRITE8_DEVICE_HANDLER( ym2413_register_port_w ) { ym2413_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym2413_data_port_w ) { ym2413_w(device, 1, data); }
+WRITE8_DEVICE_HANDLER( ym2413_register_port_w ) { ym2413_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym2413_data_port_w ) { ym2413_w(device, space, 1, data); }
const device_type YM2413 = &device_creator<ym2413_device>;
diff --git a/src/emu/sound/2413intf.h b/src/emu/sound/2413intf.h
index a6d7aa9180c..a05e0ee48c9 100644
--- a/src/emu/sound/2413intf.h
+++ b/src/emu/sound/2413intf.h
@@ -5,10 +5,10 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( ym2413_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2413_w );
-WRITE8_DEVICE_HANDLER( ym2413_register_port_w );
-WRITE8_DEVICE_HANDLER( ym2413_data_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2413_register_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2413_data_port_w );
class ym2413_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/2608intf.c b/src/emu/sound/2608intf.c
index 5dfe6f470ea..d51cf322919 100644
--- a/src/emu/sound/2608intf.c
+++ b/src/emu/sound/2608intf.c
@@ -194,14 +194,14 @@ WRITE8_DEVICE_HANDLER( ym2608_w )
ym2608_write(info->chip, offset & 3, data);
}
-READ8_DEVICE_HANDLER( ym2608_read_port_r ) { return ym2608_r(device, 1); }
-READ8_DEVICE_HANDLER( ym2608_status_port_a_r ) { return ym2608_r(device, 0); }
-READ8_DEVICE_HANDLER( ym2608_status_port_b_r ) { return ym2608_r(device, 2); }
-
-WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w ) { ym2608_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w ) { ym2608_w(device, 2, data); }
-WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w ) { ym2608_w(device, 1, data); }
-WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w ) { ym2608_w(device, 3, data); }
+READ8_DEVICE_HANDLER( ym2608_read_port_r ) { return ym2608_r(device, space, 1); }
+READ8_DEVICE_HANDLER( ym2608_status_port_a_r ) { return ym2608_r(device, space, 0); }
+READ8_DEVICE_HANDLER( ym2608_status_port_b_r ) { return ym2608_r(device, space, 2); }
+
+WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w ) { ym2608_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w ) { ym2608_w(device, space, 2, data); }
+WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w ) { ym2608_w(device, space, 1, data); }
+WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w ) { ym2608_w(device, space, 3, data); }
const device_type YM2608 = &device_creator<ym2608_device>;
diff --git a/src/emu/sound/2608intf.h b/src/emu/sound/2608intf.h
index 597ca3c168a..91571ce2a8e 100644
--- a/src/emu/sound/2608intf.h
+++ b/src/emu/sound/2608intf.h
@@ -16,17 +16,17 @@ struct ym2608_interface
void ( *handler )( device_t *device, int irq ); /* IRQ handler for the YM2608 */
};
-READ8_DEVICE_HANDLER( ym2608_r );
-WRITE8_DEVICE_HANDLER( ym2608_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2608_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2608_w );
-READ8_DEVICE_HANDLER( ym2608_read_port_r );
-READ8_DEVICE_HANDLER( ym2608_status_port_a_r );
-READ8_DEVICE_HANDLER( ym2608_status_port_b_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2608_read_port_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2608_status_port_a_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2608_status_port_b_r );
-WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w );
-WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w );
-WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w );
-WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2608_control_port_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2608_control_port_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2608_data_port_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2608_data_port_b_w );
class ym2608_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/2610intf.c b/src/emu/sound/2610intf.c
index bef3d200eea..aed83966303 100644
--- a/src/emu/sound/2610intf.c
+++ b/src/emu/sound/2610intf.c
@@ -207,14 +207,14 @@ WRITE8_DEVICE_HANDLER( ym2610_w )
}
-READ8_DEVICE_HANDLER( ym2610_status_port_a_r ) { return ym2610_r(device, 0); }
-READ8_DEVICE_HANDLER( ym2610_status_port_b_r ) { return ym2610_r(device, 2); }
-READ8_DEVICE_HANDLER( ym2610_read_port_r ) { return ym2610_r(device, 1); }
-
-WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ) { ym2610_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ) { ym2610_w(device, 2, data); }
-WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ) { ym2610_w(device, 1, data); }
-WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ) { ym2610_w(device, 3, data); }
+READ8_DEVICE_HANDLER( ym2610_status_port_a_r ) { return ym2610_r(device, space, 0); }
+READ8_DEVICE_HANDLER( ym2610_status_port_b_r ) { return ym2610_r(device, space, 2); }
+READ8_DEVICE_HANDLER( ym2610_read_port_r ) { return ym2610_r(device, space, 1); }
+
+WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ) { ym2610_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ) { ym2610_w(device, space, 2, data); }
+WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ) { ym2610_w(device, space, 1, data); }
+WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ) { ym2610_w(device, space, 3, data); }
const device_type YM2610 = &device_creator<ym2610_device>;
diff --git a/src/emu/sound/2610intf.h b/src/emu/sound/2610intf.h
index eb66606e792..0a584a26fbc 100644
--- a/src/emu/sound/2610intf.h
+++ b/src/emu/sound/2610intf.h
@@ -14,17 +14,17 @@ struct ym2610_interface
void ( *handler )( device_t *device, int irq ); /* IRQ handler for the YM2610 */
};
-READ8_DEVICE_HANDLER( ym2610_r );
-WRITE8_DEVICE_HANDLER( ym2610_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2610_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2610_w );
-READ8_DEVICE_HANDLER( ym2610_status_port_a_r );
-READ8_DEVICE_HANDLER( ym2610_status_port_b_r );
-READ8_DEVICE_HANDLER( ym2610_read_port_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2610_status_port_a_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2610_status_port_b_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2610_read_port_r );
-WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w );
-WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w );
-WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w );
-WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w );
class ym2610_device : public device_t,
diff --git a/src/emu/sound/2612intf.c b/src/emu/sound/2612intf.c
index c796403c142..55afd66f4f0 100644
--- a/src/emu/sound/2612intf.c
+++ b/src/emu/sound/2612intf.c
@@ -146,15 +146,15 @@ WRITE8_DEVICE_HANDLER( ym2612_w )
}
-READ8_DEVICE_HANDLER( ym2612_status_port_a_r ) { return ym2612_r(device, 0); }
-READ8_DEVICE_HANDLER( ym2612_status_port_b_r ) { return ym2612_r(device, 2); }
-READ8_DEVICE_HANDLER( ym2612_data_port_a_r ) { return ym2612_r(device, 1); }
-READ8_DEVICE_HANDLER( ym2612_data_port_b_r ) { return ym2612_r(device, 3); }
-
-WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w ) { ym2612_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w ) { ym2612_w(device, 2, data); }
-WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w ) { ym2612_w(device, 1, data); }
-WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w ) { ym2612_w(device, 3, data); }
+READ8_DEVICE_HANDLER( ym2612_status_port_a_r ) { return ym2612_r(device, space, 0); }
+READ8_DEVICE_HANDLER( ym2612_status_port_b_r ) { return ym2612_r(device, space, 2); }
+READ8_DEVICE_HANDLER( ym2612_data_port_a_r ) { return ym2612_r(device, space, 1); }
+READ8_DEVICE_HANDLER( ym2612_data_port_b_r ) { return ym2612_r(device, space, 3); }
+
+WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w ) { ym2612_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w ) { ym2612_w(device, space, 2, data); }
+WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w ) { ym2612_w(device, space, 1, data); }
+WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w ) { ym2612_w(device, space, 3, data); }
const device_type YM2612 = &device_creator<ym2612_device>;
diff --git a/src/emu/sound/2612intf.h b/src/emu/sound/2612intf.h
index 902ed020dea..b74e4af0a3f 100644
--- a/src/emu/sound/2612intf.h
+++ b/src/emu/sound/2612intf.h
@@ -12,18 +12,18 @@ struct ym2612_interface
void (*handler)(device_t *device, int irq);
};
-READ8_DEVICE_HANDLER( ym2612_r );
-WRITE8_DEVICE_HANDLER( ym2612_w );
-
-READ8_DEVICE_HANDLER( ym2612_status_port_a_r );
-READ8_DEVICE_HANDLER( ym2612_status_port_b_r );
-READ8_DEVICE_HANDLER( ym2612_data_port_a_r );
-READ8_DEVICE_HANDLER( ym2612_data_port_b_r );
-
-WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w );
-WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w );
-WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w );
-WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w );
+DECLARE_READ8_DEVICE_HANDLER( ym2612_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2612_w );
+
+DECLARE_READ8_DEVICE_HANDLER( ym2612_status_port_a_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2612_status_port_b_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2612_data_port_a_r );
+DECLARE_READ8_DEVICE_HANDLER( ym2612_data_port_b_r );
+
+DECLARE_WRITE8_DEVICE_HANDLER( ym2612_control_port_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2612_control_port_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2612_data_port_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym2612_data_port_b_w );
class ym2612_device : public device_t,
diff --git a/src/emu/sound/262intf.c b/src/emu/sound/262intf.c
index 0233f7c5577..b9ef593c123 100644
--- a/src/emu/sound/262intf.c
+++ b/src/emu/sound/262intf.c
@@ -124,11 +124,11 @@ WRITE8_DEVICE_HANDLER( ymf262_w )
ymf262_write(info->chip, offset & 3, data);
}
-READ8_DEVICE_HANDLER ( ymf262_status_r ) { return ymf262_r(device, 0); }
-WRITE8_DEVICE_HANDLER( ymf262_register_a_w ) { ymf262_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ymf262_register_b_w ) { ymf262_w(device, 2, data); }
-WRITE8_DEVICE_HANDLER( ymf262_data_a_w ) { ymf262_w(device, 1, data); }
-WRITE8_DEVICE_HANDLER( ymf262_data_b_w ) { ymf262_w(device, 3, data); }
+READ8_DEVICE_HANDLER ( ymf262_status_r ) { return ymf262_r(device, space, 0); }
+WRITE8_DEVICE_HANDLER( ymf262_register_a_w ) { ymf262_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ymf262_register_b_w ) { ymf262_w(device, space, 2, data); }
+WRITE8_DEVICE_HANDLER( ymf262_data_a_w ) { ymf262_w(device, space, 1, data); }
+WRITE8_DEVICE_HANDLER( ymf262_data_b_w ) { ymf262_w(device, space, 3, data); }
const device_type YMF262 = &device_creator<ymf262_device>;
diff --git a/src/emu/sound/262intf.h b/src/emu/sound/262intf.h
index 4dfd374e28f..16eed55142f 100644
--- a/src/emu/sound/262intf.h
+++ b/src/emu/sound/262intf.h
@@ -12,14 +12,14 @@ struct ymf262_interface
};
-READ8_DEVICE_HANDLER( ymf262_r );
-WRITE8_DEVICE_HANDLER( ymf262_w );
-
-READ8_DEVICE_HANDLER ( ymf262_status_r );
-WRITE8_DEVICE_HANDLER( ymf262_register_a_w );
-WRITE8_DEVICE_HANDLER( ymf262_register_b_w );
-WRITE8_DEVICE_HANDLER( ymf262_data_a_w );
-WRITE8_DEVICE_HANDLER( ymf262_data_b_w );
+DECLARE_READ8_DEVICE_HANDLER( ymf262_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf262_w );
+
+DECLARE_READ8_DEVICE_HANDLER ( ymf262_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf262_register_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf262_register_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf262_data_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf262_data_b_w );
class ymf262_device : public device_t,
diff --git a/src/emu/sound/3526intf.c b/src/emu/sound/3526intf.c
index f0b50aee8e9..4a905b0b086 100644
--- a/src/emu/sound/3526intf.c
+++ b/src/emu/sound/3526intf.c
@@ -138,10 +138,10 @@ WRITE8_DEVICE_HANDLER( ym3526_w )
ym3526_write(info->chip, offset & 1, data);
}
-READ8_DEVICE_HANDLER( ym3526_status_port_r ) { return ym3526_r(device, 0); }
-READ8_DEVICE_HANDLER( ym3526_read_port_r ) { return ym3526_r(device, 1); }
-WRITE8_DEVICE_HANDLER( ym3526_control_port_w ) { ym3526_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym3526_write_port_w ) { ym3526_w(device, 1, data); }
+READ8_DEVICE_HANDLER( ym3526_status_port_r ) { return ym3526_r(device, space, 0); }
+READ8_DEVICE_HANDLER( ym3526_read_port_r ) { return ym3526_r(device, space, 1); }
+WRITE8_DEVICE_HANDLER( ym3526_control_port_w ) { ym3526_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym3526_write_port_w ) { ym3526_w(device, space, 1, data); }
const device_type YM3526 = &device_creator<ym3526_device>;
diff --git a/src/emu/sound/3526intf.h b/src/emu/sound/3526intf.h
index f75e35c0c48..b828000d4eb 100644
--- a/src/emu/sound/3526intf.h
+++ b/src/emu/sound/3526intf.h
@@ -10,13 +10,13 @@ struct ym3526_interface
devcb_write_line out_int_func;
};
-READ8_DEVICE_HANDLER( ym3526_r );
-WRITE8_DEVICE_HANDLER( ym3526_w );
+DECLARE_READ8_DEVICE_HANDLER( ym3526_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym3526_w );
-READ8_DEVICE_HANDLER( ym3526_status_port_r );
-READ8_DEVICE_HANDLER( ym3526_read_port_r );
-WRITE8_DEVICE_HANDLER( ym3526_control_port_w );
-WRITE8_DEVICE_HANDLER( ym3526_write_port_w );
+DECLARE_READ8_DEVICE_HANDLER( ym3526_status_port_r );
+DECLARE_READ8_DEVICE_HANDLER( ym3526_read_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym3526_control_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym3526_write_port_w );
class ym3526_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/3812intf.c b/src/emu/sound/3812intf.c
index 53401de42d5..5a484fa5637 100644
--- a/src/emu/sound/3812intf.c
+++ b/src/emu/sound/3812intf.c
@@ -134,10 +134,10 @@ WRITE8_DEVICE_HANDLER( ym3812_w )
ym3812_write(info->chip, offset & 1, data);
}
-READ8_DEVICE_HANDLER( ym3812_status_port_r ) { return ym3812_r(device, 0); }
-READ8_DEVICE_HANDLER( ym3812_read_port_r ) { return ym3812_r(device, 1); }
-WRITE8_DEVICE_HANDLER( ym3812_control_port_w ) { ym3812_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( ym3812_write_port_w ) { ym3812_w(device, 1, data); }
+READ8_DEVICE_HANDLER( ym3812_status_port_r ) { return ym3812_r(device, space, 0); }
+READ8_DEVICE_HANDLER( ym3812_read_port_r ) { return ym3812_r(device, space, 1); }
+WRITE8_DEVICE_HANDLER( ym3812_control_port_w ) { ym3812_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( ym3812_write_port_w ) { ym3812_w(device, space, 1, data); }
const device_type YM3812 = &device_creator<ym3812_device>;
diff --git a/src/emu/sound/3812intf.h b/src/emu/sound/3812intf.h
index dfa78b933fd..b7bc9f3b51f 100644
--- a/src/emu/sound/3812intf.h
+++ b/src/emu/sound/3812intf.h
@@ -10,13 +10,13 @@ struct ym3812_interface
void (*handler)(device_t *device, int linestate);
};
-READ8_DEVICE_HANDLER( ym3812_r );
-WRITE8_DEVICE_HANDLER( ym3812_w );
+DECLARE_READ8_DEVICE_HANDLER( ym3812_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym3812_w );
-READ8_DEVICE_HANDLER( ym3812_status_port_r );
-READ8_DEVICE_HANDLER( ym3812_read_port_r );
-WRITE8_DEVICE_HANDLER( ym3812_control_port_w );
-WRITE8_DEVICE_HANDLER( ym3812_write_port_w );
+DECLARE_READ8_DEVICE_HANDLER( ym3812_status_port_r );
+DECLARE_READ8_DEVICE_HANDLER( ym3812_read_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ym3812_control_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ym3812_write_port_w );
class ym3812_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/8950intf.c b/src/emu/sound/8950intf.c
index e64b38030ed..738ed362621 100644
--- a/src/emu/sound/8950intf.c
+++ b/src/emu/sound/8950intf.c
@@ -28,7 +28,7 @@ struct y8950_state
emu_timer * timer[2];
void * chip;
const y8950_interface *intf;
- device_t *device;
+ y8950_device *device;
};
@@ -43,7 +43,7 @@ INLINE y8950_state *get_safe_token(device_t *device)
static void IRQHandler(void *param,int irq)
{
y8950_state *info = (y8950_state *)param;
- if (info->intf->handler) (info->intf->handler)(info->device, irq ? ASSERT_LINE : CLEAR_LINE);
+ if (!info->device->m_handler.isnull()) info->device->m_handler(irq ? ASSERT_LINE : CLEAR_LINE);
}
static TIMER_CALLBACK( timer_callback_0 )
{
@@ -72,31 +72,31 @@ static void TimerHandler(void *param,int c,attotime period)
static unsigned char Y8950PortHandler_r(void *param)
{
y8950_state *info = (y8950_state *)param;
- if (info->intf->portread)
- return info->intf->portread(info->device,0);
+ if (!info->device->m_portread.isnull())
+ return info->device->m_portread(0);
return 0;
}
static void Y8950PortHandler_w(void *param,unsigned char data)
{
y8950_state *info = (y8950_state *)param;
- if (info->intf->portwrite)
- info->intf->portwrite(info->device,0,data);
+ if (!info->device->m_portwrite.isnull())
+ info->device->m_portwrite(0,data);
}
static unsigned char Y8950KeyboardHandler_r(void *param)
{
y8950_state *info = (y8950_state *)param;
- if (info->intf->keyboardread)
- return info->intf->keyboardread(info->device,0);
+ if (!info->device->m_keyboardread.isnull())
+ return info->device->m_keyboardread(0);
return 0;
}
static void Y8950KeyboardHandler_w(void *param,unsigned char data)
{
y8950_state *info = (y8950_state *)param;
- if (info->intf->keyboardwrite)
- info->intf->keyboardwrite(info->device,0,data);
+ if (!info->device->m_keyboardwrite.isnull())
+ info->device->m_keyboardwrite(0,data);
}
static STREAM_UPDATE( y8950_stream_update )
@@ -114,12 +114,12 @@ static void _stream_update(void *param, int interval)
static DEVICE_START( y8950 )
{
- static const y8950_interface dummy = { 0 };
+ static const y8950_interface dummy = { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL };
y8950_state *info = get_safe_token(device);
int rate = device->clock()/72;
info->intf = device->static_config() ? (const y8950_interface *)device->static_config() : &dummy;
- info->device = device;
+ info->device = downcast<y8950_device *>(device);
/* stream system initialize */
info->chip = y8950_init(device,device->clock(),rate);
@@ -167,10 +167,10 @@ WRITE8_DEVICE_HANDLER( y8950_w )
y8950_write(info->chip, offset & 1, data);
}
-READ8_DEVICE_HANDLER( y8950_status_port_r ) { return y8950_r(device, 0); }
-READ8_DEVICE_HANDLER( y8950_read_port_r ) { return y8950_r(device, 1); }
-WRITE8_DEVICE_HANDLER( y8950_control_port_w ) { y8950_w(device, 0, data); }
-WRITE8_DEVICE_HANDLER( y8950_write_port_w ) { y8950_w(device, 1, data); }
+READ8_DEVICE_HANDLER( y8950_status_port_r ) { return y8950_r(device, space, 0); }
+READ8_DEVICE_HANDLER( y8950_read_port_r ) { return y8950_r(device, space, 1); }
+WRITE8_DEVICE_HANDLER( y8950_control_port_w ) { y8950_w(device, space, 0, data); }
+WRITE8_DEVICE_HANDLER( y8950_write_port_w ) { y8950_w(device, space, 1, data); }
const device_type Y8950 = &device_creator<y8950_device>;
@@ -198,6 +198,16 @@ void y8950_device::device_config_complete()
void y8950_device::device_start()
{
+ const y8950_interface *intf = (const y8950_interface *)static_config();
+ if (intf != NULL)
+ {
+ m_handler.resolve(intf->handler_cb, *this);
+ m_keyboardread.resolve(intf->keyboardread_cb, *this);
+ m_keyboardwrite.resolve(intf->keyboardwrite_cb, *this);
+ m_portread.resolve(intf->portread_cb, *this);
+ m_portwrite.resolve(intf->portwrite_cb, *this);
+ }
+
DEVICE_START_NAME( y8950 )(this);
}
diff --git a/src/emu/sound/8950intf.h b/src/emu/sound/8950intf.h
index e8de9ca087c..803cc33c782 100644
--- a/src/emu/sound/8950intf.h
+++ b/src/emu/sound/8950intf.h
@@ -7,21 +7,20 @@
struct y8950_interface
{
- void (*handler)(device_t *device, int linestate);
-
- read8_device_func keyboardread;
- write8_device_func keyboardwrite;
- read8_device_func portread;
- write8_device_func portwrite;
+ devcb_write_line handler_cb;
+ devcb_read8 keyboardread_cb;
+ devcb_write8 keyboardwrite_cb;
+ devcb_read8 portread_cb;
+ devcb_write8 portwrite_cb;
};
-READ8_DEVICE_HANDLER( y8950_r );
-WRITE8_DEVICE_HANDLER( y8950_w );
+DECLARE_READ8_DEVICE_HANDLER( y8950_r );
+DECLARE_WRITE8_DEVICE_HANDLER( y8950_w );
-READ8_DEVICE_HANDLER( y8950_status_port_r );
-READ8_DEVICE_HANDLER( y8950_read_port_r );
-WRITE8_DEVICE_HANDLER( y8950_control_port_w );
-WRITE8_DEVICE_HANDLER( y8950_write_port_w );
+DECLARE_READ8_DEVICE_HANDLER( y8950_status_port_r );
+DECLARE_READ8_DEVICE_HANDLER( y8950_read_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( y8950_control_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( y8950_write_port_w );
class y8950_device : public device_t,
public device_sound_interface
@@ -44,6 +43,12 @@ protected:
private:
// internal state
void *m_token;
+public:
+ devcb_resolved_write_line m_handler;
+ devcb_resolved_read8 m_keyboardread;
+ devcb_resolved_write8 m_keyboardwrite;
+ devcb_resolved_read8 m_portread;
+ devcb_resolved_write8 m_portwrite;
};
extern const device_type Y8950;
diff --git a/src/emu/sound/aica.c b/src/emu/sound/aica.c
index 94e84cf476e..81894065b6b 100644
--- a/src/emu/sound/aica.c
+++ b/src/emu/sound/aica.c
@@ -681,7 +681,7 @@ static void AICA_UpdateSlotReg(aica_state *AICA,int s,int r)
}
}
-static void AICA_UpdateReg(aica_state *AICA, int reg)
+static void AICA_UpdateReg(aica_state *AICA, address_space &space, int reg)
{
switch(reg&0xff)
{
@@ -702,7 +702,7 @@ static void AICA_UpdateReg(aica_state *AICA, int reg)
break;
case 0x8:
case 0x9:
- aica_midi_in(AICA->device, 0, AICA->udata.data[0x8/2]&0xff, 0xffff);
+ aica_midi_in(AICA->device, space, 0, AICA->udata.data[0x8/2]&0xff, 0xffff);
break;
case 0x12:
case 0x13:
@@ -823,7 +823,7 @@ static void AICA_UpdateSlotRegR(aica_state *AICA, int slot,int reg)
}
-static void AICA_UpdateRegR(aica_state *AICA, int reg)
+static void AICA_UpdateRegR(aica_state *AICA, address_space &space, int reg)
{
switch(reg&0xff)
{
@@ -894,7 +894,7 @@ static void AICA_UpdateRegR(aica_state *AICA, int reg)
}
}
-static void AICA_w16(aica_state *AICA,unsigned int addr,unsigned short val)
+static void AICA_w16(aica_state *AICA,address_space &space,unsigned int addr,unsigned short val)
{
addr&=0xffff;
if(addr<0x2000)
@@ -919,7 +919,7 @@ static void AICA_w16(aica_state *AICA,unsigned int addr,unsigned short val)
{
// printf("%x to AICA global @ %x\n", val, addr & 0xff);
*((unsigned short *) (AICA->udata.datab+((addr&0xff)))) = val;
- AICA_UpdateReg(AICA, addr&0xff);
+ AICA_UpdateReg(AICA, space, addr&0xff);
}
else if (addr == 0x2d00)
{
@@ -954,7 +954,7 @@ static void AICA_w16(aica_state *AICA,unsigned int addr,unsigned short val)
}
}
-static unsigned short AICA_r16(aica_state *AICA, unsigned int addr)
+static unsigned short AICA_r16(aica_state *AICA, address_space &space, unsigned int addr)
{
unsigned short v=0;
addr&=0xffff;
@@ -973,7 +973,7 @@ static unsigned short AICA_r16(aica_state *AICA, unsigned int addr)
}
else if (addr < 0x28be)
{
- AICA_UpdateRegR(AICA, addr&0xff);
+ AICA_UpdateRegR(AICA, space, addr&0xff);
v= *((unsigned short *) (AICA->udata.datab+((addr&0xff))));
if((addr&0xfffe)==0x2810) AICA->udata.data[0x10/2] &= 0x7FFF; // reset LP on read
}
@@ -1323,7 +1323,7 @@ void aica_set_ram_base(device_t *device, void *base, int size)
READ16_DEVICE_HANDLER( aica_r )
{
aica_state *AICA = get_safe_token(device);
- return AICA_r16(AICA, offset*2);
+ return AICA_r16(AICA, space,offset*2);
}
WRITE16_DEVICE_HANDLER( aica_w )
@@ -1331,9 +1331,9 @@ WRITE16_DEVICE_HANDLER( aica_w )
aica_state *AICA = get_safe_token(device);
UINT16 tmp;
- tmp = AICA_r16(AICA, offset*2);
+ tmp = AICA_r16(AICA, space, offset*2);
COMBINE_DATA(&tmp);
- AICA_w16(AICA, offset*2, tmp);
+ AICA_w16(AICA, space, offset*2, tmp);
}
WRITE16_DEVICE_HANDLER( aica_midi_in )
diff --git a/src/emu/sound/aica.h b/src/emu/sound/aica.h
index 6d450d5b456..87a4b30dfea 100644
--- a/src/emu/sound/aica.h
+++ b/src/emu/sound/aica.h
@@ -18,12 +18,12 @@ struct aica_interface
void aica_set_ram_base(device_t *device, void *base, int size);
// AICA register access
-READ16_DEVICE_HANDLER( aica_r );
-WRITE16_DEVICE_HANDLER( aica_w );
+DECLARE_READ16_DEVICE_HANDLER( aica_r );
+DECLARE_WRITE16_DEVICE_HANDLER( aica_w );
// MIDI I/O access
-WRITE16_DEVICE_HANDLER( aica_midi_in );
-READ16_DEVICE_HANDLER( aica_midi_out_r );
+DECLARE_WRITE16_DEVICE_HANDLER( aica_midi_in );
+DECLARE_READ16_DEVICE_HANDLER( aica_midi_out_r );
class aica_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/astrocde.h b/src/emu/sound/astrocde.h
index ac3ddab5ec9..8a954830761 100644
--- a/src/emu/sound/astrocde.h
+++ b/src/emu/sound/astrocde.h
@@ -5,7 +5,7 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( astrocade_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( astrocade_sound_w );
class astrocade_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c
index 3770aef86d3..752cc08b188 100644
--- a/src/emu/sound/ay8910.c
+++ b/src/emu/sound/ay8910.c
@@ -1000,7 +1000,7 @@ WRITE8_DEVICE_HANDLER( ay8910_address_w )
#if ENABLE_REGISTER_TEST
return;
#else
- ay8910_data_address_w(device, 1, data);
+ ay8910_data_address_w(device, space, 1, data);
#endif
}
@@ -1009,7 +1009,7 @@ WRITE8_DEVICE_HANDLER( ay8910_data_w )
#if ENABLE_REGISTER_TEST
return;
#else
- ay8910_data_address_w(device, 0, data);
+ ay8910_data_address_w(device, space, 0, data);
#endif
}
@@ -1023,15 +1023,15 @@ static const int mapping8914to8910[16] = { 0, 2, 4, 11, 1, 3, 5, 12, 7, 6, 13, 8
READ8_DEVICE_HANDLER( ay8914_r )
{
UINT16 rv;
- ay8910_address_w(device, 0, mapping8914to8910[offset & 0xff]);
- rv = (UINT16)ay8910_r(device, 0);
+ ay8910_address_w(device, space, 0, mapping8914to8910[offset & 0xff]);
+ rv = (UINT16)ay8910_r(device, space, 0);
return rv;
}
WRITE8_DEVICE_HANDLER( ay8914_w )
{
- ay8910_address_w(device, 0, mapping8914to8910[offset & 0xff]);
- ay8910_data_w(device, 0, data & 0xff);
+ ay8910_address_w(device, space, 0, mapping8914to8910[offset & 0xff]);
+ ay8910_data_w(device, space, 0, data & 0xff);
}
diff --git a/src/emu/sound/ay8910.h b/src/emu/sound/ay8910.h
index e84421c62df..f2e82ca8991 100644
--- a/src/emu/sound/ay8910.h
+++ b/src/emu/sound/ay8910.h
@@ -90,22 +90,22 @@ struct ay8910_interface
void ay8910_set_volume(device_t *device,int channel,int volume);
-READ8_DEVICE_HANDLER( ay8910_r );
-WRITE8_DEVICE_HANDLER( ay8910_address_w );
-WRITE8_DEVICE_HANDLER( ay8910_data_w );
+DECLARE_READ8_DEVICE_HANDLER( ay8910_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ay8910_address_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ay8910_data_w );
/* /RES */
-WRITE8_DEVICE_HANDLER( ay8910_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ay8910_reset_w );
/* use this when BC1 == A0; here, BC1=0 selects 'data' and BC1=1 selects 'latch address' */
-WRITE8_DEVICE_HANDLER( ay8910_data_address_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ay8910_data_address_w );
/* use this when BC1 == !A0; here, BC1=0 selects 'latch address' and BC1=1 selects 'data' */
-WRITE8_DEVICE_HANDLER( ay8910_address_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ay8910_address_data_w );
/* AY8914 handlers needed due to different register map */
-READ8_DEVICE_HANDLER( ay8914_r );
-WRITE8_DEVICE_HANDLER( ay8914_w );
+DECLARE_READ8_DEVICE_HANDLER( ay8914_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ay8914_w );
/*********** An interface for SSG of YM2203 ***********/
diff --git a/src/emu/sound/c140.h b/src/emu/sound/c140.h
index c4f5e637832..681d676d33c 100644
--- a/src/emu/sound/c140.h
+++ b/src/emu/sound/c140.h
@@ -7,8 +7,8 @@
#include "devlegcy.h"
-READ8_DEVICE_HANDLER( c140_r );
-WRITE8_DEVICE_HANDLER( c140_w );
+DECLARE_READ8_DEVICE_HANDLER( c140_r );
+DECLARE_WRITE8_DEVICE_HANDLER( c140_w );
void c140_set_base(device_t *device, void *base);
diff --git a/src/emu/sound/c6280.h b/src/emu/sound/c6280.h
index b1bbecf22f8..41e1e0a3478 100644
--- a/src/emu/sound/c6280.h
+++ b/src/emu/sound/c6280.h
@@ -11,8 +11,8 @@ struct c6280_interface
};
/* Function prototypes */
-WRITE8_DEVICE_HANDLER( c6280_w );
-READ8_DEVICE_HANDLER( c6280_r );
+DECLARE_WRITE8_DEVICE_HANDLER( c6280_w );
+DECLARE_READ8_DEVICE_HANDLER( c6280_r );
class c6280_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/digitalk.h b/src/emu/sound/digitalk.h
index 805c245e033..add7f3428fe 100644
--- a/src/emu/sound/digitalk.h
+++ b/src/emu/sound/digitalk.h
@@ -7,7 +7,7 @@ void digitalker_0_cs_w(device_t *device, int line);
void digitalker_0_cms_w(device_t *device, int line);
void digitalker_0_wr_w(device_t *device, int line);
int digitalker_0_intr_r(device_t *device);
-WRITE8_DEVICE_HANDLER(digitalker_data_w);
+DECLARE_WRITE8_DEVICE_HANDLER(digitalker_data_w);
class digitalker_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/discrete.h b/src/emu/sound/discrete.h
index 147194f03ee..3961c4fc2ec 100644
--- a/src/emu/sound/discrete.h
+++ b/src/emu/sound/discrete.h
@@ -4256,8 +4256,8 @@ public:
*
*************************************/
-WRITE8_DEVICE_HANDLER( discrete_sound_w );
-READ8_DEVICE_HANDLER( discrete_sound_r );
+DECLARE_WRITE8_DEVICE_HANDLER( discrete_sound_w );
+DECLARE_READ8_DEVICE_HANDLER( discrete_sound_r );
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
diff --git a/src/emu/sound/es5506.h b/src/emu/sound/es5506.h
index cb1597e6cae..076bfcf24ba 100644
--- a/src/emu/sound/es5506.h
+++ b/src/emu/sound/es5506.h
@@ -20,8 +20,8 @@ struct es5505_interface
UINT16 (*read_port)(device_t *device); /* input port read */
};
-READ16_DEVICE_HANDLER( es5505_r );
-WRITE16_DEVICE_HANDLER( es5505_w );
+DECLARE_READ16_DEVICE_HANDLER( es5505_r );
+DECLARE_WRITE16_DEVICE_HANDLER( es5505_w );
void es5505_voice_bank_w(device_t *device, int voice, int bank);
class es5506_device : public device_t,
@@ -62,8 +62,8 @@ struct es5506_interface
UINT16 (*read_port)(device_t *device); /* input port read */
};
-READ8_DEVICE_HANDLER( es5506_r );
-WRITE8_DEVICE_HANDLER( es5506_w );
+DECLARE_READ8_DEVICE_HANDLER( es5506_r );
+DECLARE_WRITE8_DEVICE_HANDLER( es5506_w );
void es5506_voice_bank_w(device_t *device, int voice, int bank);
class es5505_device : public es5506_device
diff --git a/src/emu/sound/es8712.h b/src/emu/sound/es8712.h
index c57a257cefb..89e0973c64d 100644
--- a/src/emu/sound/es8712.h
+++ b/src/emu/sound/es8712.h
@@ -11,7 +11,7 @@ void es8712_play(device_t *device);
void es8712_set_bank_base(device_t *device, int base);
void es8712_set_frequency(device_t *device, int frequency);
-WRITE8_DEVICE_HANDLER( es8712_w );
+DECLARE_WRITE8_DEVICE_HANDLER( es8712_w );
class es8712_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/gaelco.h b/src/emu/sound/gaelco.h
index a82057f5110..9a4fe4df54f 100644
--- a/src/emu/sound/gaelco.h
+++ b/src/emu/sound/gaelco.h
@@ -11,8 +11,8 @@ struct gaelcosnd_interface
int banks[4]; /* start of each ROM bank */
};
-WRITE16_DEVICE_HANDLER( gaelcosnd_w );
-READ16_DEVICE_HANDLER( gaelcosnd_r );
+DECLARE_WRITE16_DEVICE_HANDLER( gaelcosnd_w );
+DECLARE_READ16_DEVICE_HANDLER( gaelcosnd_r );
class gaelco_gae1_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/ics2115.h b/src/emu/sound/ics2115.h
index 79fc0061276..a1c177708cb 100644
--- a/src/emu/sound/ics2115.h
+++ b/src/emu/sound/ics2115.h
@@ -98,8 +98,8 @@ public:
// inline configuration helpers
static void static_set_irqf(device_t &device, void (*irqf)(device_t *device, int state));
- static READ8_DEVICE_HANDLER(read);
- static WRITE8_DEVICE_HANDLER(write);
+ static DECLARE_READ8_DEVICE_HANDLER(read);
+ static DECLARE_WRITE8_DEVICE_HANDLER(write);
//UINT8 read(offs_t offset);
//void write(offs_t offset, UINT8 data);
static TIMER_CALLBACK(timer_cb_0);
diff --git a/src/emu/sound/iremga20.h b/src/emu/sound/iremga20.h
index c069ee73a9b..407a358d9f5 100644
--- a/src/emu/sound/iremga20.h
+++ b/src/emu/sound/iremga20.h
@@ -10,8 +10,8 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( irem_ga20_w );
-READ8_DEVICE_HANDLER( irem_ga20_r );
+DECLARE_WRITE8_DEVICE_HANDLER( irem_ga20_w );
+DECLARE_READ8_DEVICE_HANDLER( irem_ga20_r );
class iremga20_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/k005289.h b/src/emu/sound/k005289.h
index a51b8422116..a0b390d2a44 100644
--- a/src/emu/sound/k005289.h
+++ b/src/emu/sound/k005289.h
@@ -5,12 +5,12 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( k005289_control_A_w );
-WRITE8_DEVICE_HANDLER( k005289_control_B_w );
-WRITE8_DEVICE_HANDLER( k005289_pitch_A_w );
-WRITE8_DEVICE_HANDLER( k005289_pitch_B_w );
-WRITE8_DEVICE_HANDLER( k005289_keylatch_A_w );
-WRITE8_DEVICE_HANDLER( k005289_keylatch_B_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k005289_control_A_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k005289_control_B_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k005289_pitch_A_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k005289_pitch_B_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k005289_keylatch_A_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k005289_keylatch_B_w );
class k005289_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/k007232.h b/src/emu/sound/k007232.h
index f346d1f520b..24284c2cf76 100644
--- a/src/emu/sound/k007232.h
+++ b/src/emu/sound/k007232.h
@@ -14,8 +14,8 @@ struct k007232_interface
void (*portwritehandler)(device_t *, int);
};
-WRITE8_DEVICE_HANDLER( k007232_w );
-READ8_DEVICE_HANDLER( k007232_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k007232_w );
+DECLARE_READ8_DEVICE_HANDLER( k007232_r );
void k007232_set_bank( device_t *device, int chABank, int chBBank );
diff --git a/src/emu/sound/k051649.c b/src/emu/sound/k051649.c
index 338b5009058..faef40078de 100644
--- a/src/emu/sound/k051649.c
+++ b/src/emu/sound/k051649.c
@@ -276,7 +276,7 @@ WRITE8_DEVICE_HANDLER( k051649_test_w )
READ8_DEVICE_HANDLER ( k051649_test_r )
{
/* reading the test register sets it to $ff! */
- k051649_test_w(device, offset, 0xff);
+ k051649_test_w(device, space, offset, 0xff);
return 0xff;
}
diff --git a/src/emu/sound/k051649.h b/src/emu/sound/k051649.h
index 5548b0e97e0..65aebff0ce7 100644
--- a/src/emu/sound/k051649.h
+++ b/src/emu/sound/k051649.h
@@ -5,16 +5,16 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( k051649_waveform_w );
-READ8_DEVICE_HANDLER ( k051649_waveform_r );
-WRITE8_DEVICE_HANDLER( k051649_volume_w );
-WRITE8_DEVICE_HANDLER( k051649_frequency_w );
-WRITE8_DEVICE_HANDLER( k051649_keyonoff_w );
-WRITE8_DEVICE_HANDLER( k051649_test_w );
-READ8_DEVICE_HANDLER ( k051649_test_r );
-
-WRITE8_DEVICE_HANDLER( k052539_waveform_w );
-READ8_DEVICE_HANDLER ( k052539_waveform_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051649_waveform_w );
+DECLARE_READ8_DEVICE_HANDLER ( k051649_waveform_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051649_volume_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k051649_frequency_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k051649_keyonoff_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k051649_test_w );
+DECLARE_READ8_DEVICE_HANDLER ( k051649_test_r );
+
+DECLARE_WRITE8_DEVICE_HANDLER( k052539_waveform_w );
+DECLARE_READ8_DEVICE_HANDLER ( k052539_waveform_r );
class k051649_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/k053260.h b/src/emu/sound/k053260.h
index d28b3679e32..b51dd367750 100644
--- a/src/emu/sound/k053260.h
+++ b/src/emu/sound/k053260.h
@@ -17,8 +17,8 @@ struct k053260_interface {
};
-WRITE8_DEVICE_HANDLER( k053260_w );
-READ8_DEVICE_HANDLER( k053260_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k053260_w );
+DECLARE_READ8_DEVICE_HANDLER( k053260_r );
class k053260_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/k056800.h b/src/emu/sound/k056800.h
index 7930ea3d56a..ca4a6a42b9b 100644
--- a/src/emu/sound/k056800.h
+++ b/src/emu/sound/k056800.h
@@ -57,10 +57,10 @@ extern const device_type K056800;
DEVICE I/O FUNCTIONS
***************************************************************************/
-READ32_DEVICE_HANDLER( k056800_host_r );
-WRITE32_DEVICE_HANDLER( k056800_host_w );
-READ16_DEVICE_HANDLER( k056800_sound_r );
-WRITE16_DEVICE_HANDLER( k056800_sound_w );
+DECLARE_READ32_DEVICE_HANDLER( k056800_host_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k056800_host_w );
+DECLARE_READ16_DEVICE_HANDLER( k056800_sound_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k056800_sound_w );
#endif /* __K056800_H__ */
diff --git a/src/emu/sound/msm5232.c b/src/emu/sound/msm5232.c
index 71bee8bf1d3..b780bdd8ab1 100644
--- a/src/emu/sound/msm5232.c
+++ b/src/emu/sound/msm5232.c
@@ -69,7 +69,7 @@ struct msm5232_state {
double external_capacity[8]; /* in Farads, eg 0.39e-6 = 0.36 uF (microFarads) */
device_t *device;
- void (*gate_handler)(device_t *device, int state); /* callback called when the GATE output pin changes state */
+ devcb_resolved_write_line gate_handler;/* callback called when the GATE output pin changes state */
};
@@ -260,10 +260,10 @@ static void msm5232_gate_update(msm5232_state *chip)
{
int new_state = (chip->control2 & 0x20) ? chip->voi[7].GF : 0;
- if (chip->gate != new_state && chip->gate_handler)
+ if (chip->gate != new_state && !chip->gate_handler.isnull())
{
chip->gate = new_state;
- (*chip->gate_handler)(chip->device, new_state);
+ chip->gate_handler(new_state);
}
}
@@ -275,8 +275,8 @@ static DEVICE_RESET( msm5232 )
for (i=0; i<8; i++)
{
- msm5232_w(device,i,0x80);
- msm5232_w(device,i,0x00);
+ msm5232_w(device,device->machine().driver_data()->generic_space(),i,0x80);
+ msm5232_w(device,device->machine().driver_data()->generic_space(),i,0x00);
}
chip->noise_cnt = 0;
chip->noise_rng = 1;
@@ -309,7 +309,7 @@ static void msm5232_init(msm5232_state *chip, const msm5232_interface *intf, int
chip->external_capacity[j] = intf->capacity[j];
}
- chip->gate_handler = intf->gate_handler;
+ chip->gate_handler.resolve(intf->gate_handler_cb, *chip->device);
msm5232_init_tables( chip );
diff --git a/src/emu/sound/msm5232.h b/src/emu/sound/msm5232.h
index 11e9eb3e033..11f8b218639 100644
--- a/src/emu/sound/msm5232.h
+++ b/src/emu/sound/msm5232.h
@@ -8,10 +8,10 @@
struct msm5232_interface
{
double capacity[8]; /* in Farads, capacitors connected to pins: 24,25,26,27 and 37,38,39,40 */
- void (*gate_handler)(device_t *device, int state); /* callback called when the GATE output pin changes state */
+ devcb_write_line gate_handler_cb; /* callback called when the GATE output pin changes state */
};
-WRITE8_DEVICE_HANDLER( msm5232_w );
+DECLARE_WRITE8_DEVICE_HANDLER( msm5232_w );
void msm5232_set_clock(device_t *device, int clock);
diff --git a/src/emu/sound/multipcm.h b/src/emu/sound/multipcm.h
index 4beaa933ea0..a91f23d9273 100644
--- a/src/emu/sound/multipcm.h
+++ b/src/emu/sound/multipcm.h
@@ -5,8 +5,8 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( multipcm_w );
-READ8_DEVICE_HANDLER( multipcm_r );
+DECLARE_WRITE8_DEVICE_HANDLER( multipcm_w );
+DECLARE_READ8_DEVICE_HANDLER( multipcm_r );
void multipcm_set_bank(device_t *device, UINT32 leftoffs, UINT32 rightoffs);
diff --git a/src/emu/sound/n63701x.h b/src/emu/sound/n63701x.h
index 813c2b73263..8cc487f36b5 100644
--- a/src/emu/sound/n63701x.h
+++ b/src/emu/sound/n63701x.h
@@ -5,7 +5,7 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( namco_63701x_w );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_63701x_w );
class namco_63701x_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/namco.c b/src/emu/sound/namco.c
index ec595ad0271..cccd569b686 100644
--- a/src/emu/sound/namco.c
+++ b/src/emu/sound/namco.c
@@ -638,6 +638,7 @@ void mappy_sound_enable(device_t *device, int enable)
chip->sound_enable = enable;
}
+static DECLARE_WRITE8_DEVICE_HANDLER( namco_15xx_w );
static WRITE8_DEVICE_HANDLER( namco_15xx_w )
{
namco_sound *chip = get_safe_token(device);
@@ -704,6 +705,7 @@ static WRITE8_DEVICE_HANDLER( namco_15xx_w )
0x3c ch 0 noise sw
*/
+static DECLARE_WRITE8_DEVICE_HANDLER( namcos1_sound_w );
static WRITE8_DEVICE_HANDLER( namcos1_sound_w )
{
namco_sound *chip = get_safe_token(device);
@@ -781,7 +783,7 @@ WRITE8_DEVICE_HANDLER( namcos1_cus30_w )
}
}
else if (offset < 0x140)
- namcos1_sound_w(device, offset - 0x100,data);
+ namcos1_sound_w(device, space, offset - 0x100,data);
else
chip->wavedata[offset] = data;
}
@@ -803,7 +805,7 @@ READ8_DEVICE_HANDLER( namco_snd_sharedram_r )
WRITE8_DEVICE_HANDLER( namco_snd_sharedram_w )
{
if (offset < 0x40)
- namco_15xx_w(device, offset, data);
+ namco_15xx_w(device, space, offset, data);
else
{
namco_sound *chip = get_safe_token(device);
diff --git a/src/emu/sound/namco.h b/src/emu/sound/namco.h
index ce6cfc7c245..77cb524200f 100644
--- a/src/emu/sound/namco.h
+++ b/src/emu/sound/namco.h
@@ -11,20 +11,20 @@ struct namco_interface
int stereo; /* set to 1 to indicate stereo (e.g., System 1) */
};
-WRITE8_DEVICE_HANDLER( pacman_sound_enable_w );
-WRITE8_DEVICE_HANDLER( pacman_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( pacman_sound_enable_w );
+DECLARE_WRITE8_DEVICE_HANDLER( pacman_sound_w );
void polepos_sound_enable(device_t *device, int enable);
-READ8_DEVICE_HANDLER( polepos_sound_r );
-WRITE8_DEVICE_HANDLER( polepos_sound_w );
+DECLARE_READ8_DEVICE_HANDLER( polepos_sound_r );
+DECLARE_WRITE8_DEVICE_HANDLER( polepos_sound_w );
void mappy_sound_enable(device_t *device, int enable);
-WRITE8_DEVICE_HANDLER( namcos1_cus30_w ); /* wavedata + sound registers + RAM */
-READ8_DEVICE_HANDLER( namcos1_cus30_r );
+DECLARE_WRITE8_DEVICE_HANDLER( namcos1_cus30_w ); /* wavedata + sound registers + RAM */
+DECLARE_READ8_DEVICE_HANDLER( namcos1_cus30_r );
-READ8_DEVICE_HANDLER( namco_snd_sharedram_r );
-WRITE8_DEVICE_HANDLER( namco_snd_sharedram_w );
+DECLARE_READ8_DEVICE_HANDLER( namco_snd_sharedram_r );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_snd_sharedram_w );
class namco_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/nes_apu.h b/src/emu/sound/nes_apu.h
index a356b4edcc1..8399232b73a 100644
--- a/src/emu/sound/nes_apu.h
+++ b/src/emu/sound/nes_apu.h
@@ -42,8 +42,8 @@ struct nes_interface
const char *cpu_tag; /* CPU tag */
};
-READ8_DEVICE_HANDLER( nes_psg_r );
-WRITE8_DEVICE_HANDLER( nes_psg_w );
+DECLARE_READ8_DEVICE_HANDLER( nes_psg_r );
+DECLARE_WRITE8_DEVICE_HANDLER( nes_psg_w );
class nesapu_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/nile.h b/src/emu/sound/nile.h
index b378ba476e3..9cb3cbe3d89 100644
--- a/src/emu/sound/nile.h
+++ b/src/emu/sound/nile.h
@@ -5,10 +5,10 @@
#include "devlegcy.h"
-WRITE16_DEVICE_HANDLER( nile_snd_w );
-READ16_DEVICE_HANDLER( nile_snd_r );
-WRITE16_DEVICE_HANDLER( nile_sndctrl_w );
-READ16_DEVICE_HANDLER( nile_sndctrl_r );
+DECLARE_WRITE16_DEVICE_HANDLER( nile_snd_w );
+DECLARE_READ16_DEVICE_HANDLER( nile_snd_r );
+DECLARE_WRITE16_DEVICE_HANDLER( nile_sndctrl_w );
+DECLARE_READ16_DEVICE_HANDLER( nile_sndctrl_r );
class nile_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/okim6258.h b/src/emu/sound/okim6258.h
index 03b9bebe1d8..b9bbcc0f36f 100644
--- a/src/emu/sound/okim6258.h
+++ b/src/emu/sound/okim6258.h
@@ -29,9 +29,9 @@ void okim6258_set_divider(device_t *device, int val);
void okim6258_set_clock(device_t *device, int val);
int okim6258_get_vclk(device_t *device);
-READ8_DEVICE_HANDLER( okim6258_status_r );
-WRITE8_DEVICE_HANDLER( okim6258_data_w );
-WRITE8_DEVICE_HANDLER( okim6258_ctrl_w );
+DECLARE_READ8_DEVICE_HANDLER( okim6258_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( okim6258_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( okim6258_ctrl_w );
class okim6258_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/okim6376.h b/src/emu/sound/okim6376.h
index 003bcd14fc1..ece5e6c785b 100644
--- a/src/emu/sound/okim6376.h
+++ b/src/emu/sound/okim6376.h
@@ -7,8 +7,8 @@
/* an interface for the OKIM6376 and similar chips (CPU interface only) */
-READ8_DEVICE_HANDLER( okim6376_r );
-WRITE8_DEVICE_HANDLER( okim6376_w );
+DECLARE_READ8_DEVICE_HANDLER( okim6376_r );
+DECLARE_WRITE8_DEVICE_HANDLER( okim6376_w );
class okim6376_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/qsound.h b/src/emu/sound/qsound.h
index bfc274d461a..86b810e2e4d 100644
--- a/src/emu/sound/qsound.h
+++ b/src/emu/sound/qsound.h
@@ -13,8 +13,8 @@
#define QSOUND_CLOCK 4000000 /* default 4MHz clock */
-WRITE8_DEVICE_HANDLER( qsound_w );
-READ8_DEVICE_HANDLER( qsound_r );
+DECLARE_WRITE8_DEVICE_HANDLER( qsound_w );
+DECLARE_READ8_DEVICE_HANDLER( qsound_r );
class qsound_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/rf5c400.h b/src/emu/sound/rf5c400.h
index 34b5a66e3fd..16bd3455d86 100644
--- a/src/emu/sound/rf5c400.h
+++ b/src/emu/sound/rf5c400.h
@@ -7,8 +7,8 @@
#include "devlegcy.h"
-READ16_DEVICE_HANDLER( rf5c400_r );
-WRITE16_DEVICE_HANDLER( rf5c400_w );
+DECLARE_READ16_DEVICE_HANDLER( rf5c400_r );
+DECLARE_WRITE16_DEVICE_HANDLER( rf5c400_w );
class rf5c400_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/rf5c68.h b/src/emu/sound/rf5c68.h
index 823cb5d35fc..1b8c4996882 100644
--- a/src/emu/sound/rf5c68.h
+++ b/src/emu/sound/rf5c68.h
@@ -10,11 +10,11 @@
#include "devlegcy.h"
/******************************************/
-READ8_DEVICE_HANDLER( rf5c68_r );
-WRITE8_DEVICE_HANDLER( rf5c68_w );
+DECLARE_READ8_DEVICE_HANDLER( rf5c68_r );
+DECLARE_WRITE8_DEVICE_HANDLER( rf5c68_w );
-READ8_DEVICE_HANDLER( rf5c68_mem_r );
-WRITE8_DEVICE_HANDLER( rf5c68_mem_w );
+DECLARE_READ8_DEVICE_HANDLER( rf5c68_mem_r );
+DECLARE_WRITE8_DEVICE_HANDLER( rf5c68_mem_w );
struct rf5c68_interface
{
diff --git a/src/emu/sound/saa1099.h b/src/emu/sound/saa1099.h
index e24ef538777..ccbb1c75f3f 100644
--- a/src/emu/sound/saa1099.h
+++ b/src/emu/sound/saa1099.h
@@ -9,8 +9,8 @@
Philips SAA1099 Sound driver
**********************************************/
-WRITE8_DEVICE_HANDLER( saa1099_control_w );
-WRITE8_DEVICE_HANDLER( saa1099_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( saa1099_control_w );
+DECLARE_WRITE8_DEVICE_HANDLER( saa1099_data_w );
class saa1099_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/scsp.c b/src/emu/sound/scsp.c
index e221cf8f482..f830ba2e630 100644
--- a/src/emu/sound/scsp.c
+++ b/src/emu/sound/scsp.c
@@ -230,7 +230,7 @@ struct scsp_state
device_t *device;
};
-static void dma_scsp(address_space *space, scsp_state *scsp); /*state DMA transfer function*/
+static void dma_scsp(address_space &space, scsp_state *scsp); /*state DMA transfer function*/
#define scsp_dgate scsp->scsp_dmactrl & 0x4000
#define scsp_ddir scsp->scsp_dmactrl & 0x2000
#define scsp_dexe scsp->scsp_dmactrl & 0x1000
@@ -698,11 +698,8 @@ static void SCSP_UpdateSlotReg(scsp_state *scsp,int s,int r)
}
}
-static void SCSP_UpdateReg(scsp_state *scsp, int reg)
+static void SCSP_UpdateReg(scsp_state *scsp, address_space &space, int reg)
{
- /* temporary hack until this is converted to a device */
- address_space *space = scsp->device->machine().firstcpu->space(AS_PROGRAM);
-
switch(reg&0x3f)
{
case 0x0:
@@ -726,7 +723,7 @@ static void SCSP_UpdateReg(scsp_state *scsp, int reg)
break;
case 0x6:
case 0x7:
- scsp_midi_in(space->machine().device("scsp"), 0, scsp->udata.data[0x6/2]&0xff, 0);
+ scsp_midi_in(space.machine().device("scsp"), space, 0, scsp->udata.data[0x6/2]&0xff, 0);
break;
case 0x12:
case 0x13:
@@ -837,7 +834,7 @@ static void SCSP_UpdateSlotRegR(scsp_state *scsp, int slot,int reg)
}
-static void SCSP_UpdateRegR(scsp_state *scsp, int reg)
+static void SCSP_UpdateRegR(scsp_state *scsp, address_space &space, int reg)
{
switch(reg&0x3f)
{
@@ -885,7 +882,7 @@ static void SCSP_UpdateRegR(scsp_state *scsp, int reg)
}
}
-static void SCSP_w16(scsp_state *scsp,unsigned int addr,unsigned short val)
+static void SCSP_w16(scsp_state *scsp,address_space &space,unsigned int addr,unsigned short val)
{
addr&=0xffff;
if(addr<0x400)
@@ -900,7 +897,7 @@ static void SCSP_w16(scsp_state *scsp,unsigned int addr,unsigned short val)
if (addr < 0x430)
{
*((unsigned short *) (scsp->udata.datab+((addr&0x3f)))) = val;
- SCSP_UpdateReg(scsp, addr&0x3f);
+ SCSP_UpdateReg(scsp, space, addr&0x3f);
}
}
else if(addr<0x700)
@@ -924,7 +921,7 @@ static void SCSP_w16(scsp_state *scsp,unsigned int addr,unsigned short val)
}
}
-static unsigned short SCSP_r16(scsp_state *scsp, unsigned int addr)
+static unsigned short SCSP_r16(scsp_state *scsp, address_space &space, unsigned int addr)
{
unsigned short v=0;
addr&=0xffff;
@@ -941,7 +938,7 @@ static unsigned short SCSP_r16(scsp_state *scsp, unsigned int addr)
{
if (addr < 0x430)
{
- SCSP_UpdateRegR(scsp, addr&0x3f);
+ SCSP_UpdateRegR(scsp, space, addr&0x3f);
v= *((unsigned short *) (scsp->udata.datab+((addr&0x3f))));
}
}
@@ -1180,7 +1177,7 @@ static void SCSP_DoMasterSamples(scsp_state *scsp, int nsamples)
}
/* TODO: this needs to be timer-ized */
-static void dma_scsp(address_space *space, scsp_state *scsp)
+static void dma_scsp(address_space &space, scsp_state *scsp)
{
static UINT16 tmp_dma[3];
int i;
@@ -1212,7 +1209,7 @@ static void dma_scsp(address_space *space, scsp_state *scsp)
{
for(i=0;i < scsp->scsp_dtlg;i+=2)
{
- space->write_word(scsp->scsp_dmea, space->read_word(0x100000|scsp->scsp_drga));
+ space.write_word(scsp->scsp_dmea, space.read_word(0x100000|scsp->scsp_drga));
scsp->scsp_dmea+=2;
scsp->scsp_drga+=2;
}
@@ -1221,7 +1218,7 @@ static void dma_scsp(address_space *space, scsp_state *scsp)
{
for(i=0;i < scsp->scsp_dtlg;i+=2)
{
- space->write_word(0x100000|scsp->scsp_drga,space->read_word(scsp->scsp_dmea));
+ space.write_word(0x100000|scsp->scsp_drga,space.read_word(scsp->scsp_dmea));
scsp->scsp_dmea+=2;
scsp->scsp_drga+=2;
}
@@ -1240,7 +1237,7 @@ static void dma_scsp(address_space *space, scsp_state *scsp)
if(scsp->udata.data[0x1e/2] & 0x10)
{
popmessage("SCSP DMA IRQ triggered, contact MAMEdev");
- space->machine().device("audiocpu")->execute().set_input_line(DecodeSCI(scsp,SCIDMA),HOLD_LINE);
+ space.machine().device("audiocpu")->execute().set_input_line(DecodeSCI(scsp,SCIDMA),HOLD_LINE);
}
}
@@ -1302,7 +1299,7 @@ READ16_DEVICE_HANDLER( scsp_r )
scsp->stream->update();
- return SCSP_r16(scsp, offset*2);
+ return SCSP_r16(scsp, space, offset*2);
}
WRITE16_DEVICE_HANDLER( scsp_w )
@@ -1312,9 +1309,9 @@ WRITE16_DEVICE_HANDLER( scsp_w )
scsp->stream->update();
- tmp = SCSP_r16(scsp, offset*2);
+ tmp = SCSP_r16(scsp, space, offset*2);
COMBINE_DATA(&tmp);
- SCSP_w16(scsp,offset*2, tmp);
+ SCSP_w16(scsp,space,offset*2, tmp);
switch(offset*2)
{
@@ -1324,7 +1321,7 @@ WRITE16_DEVICE_HANDLER( scsp_w )
case 0x416:
COMBINE_DATA(&scsp->dma_regs[((offset-0x412)/2) & 3]);
if(ACCESSING_BITS_8_15 && offset*2 == 0x416)
- dma_scsp(device->machine().firstcpu->space(AS_PROGRAM), scsp);
+ dma_scsp(space, scsp);
break;
case 0x42a: //check main cpu IRQ
scsp->main_irq(1);
diff --git a/src/emu/sound/scsp.h b/src/emu/sound/scsp.h
index 2eff5ebf971..0369fbcc631 100644
--- a/src/emu/sound/scsp.h
+++ b/src/emu/sound/scsp.h
@@ -19,12 +19,12 @@ struct scsp_interface
void scsp_set_ram_base(device_t *device, void *base);
// SCSP register access
-READ16_DEVICE_HANDLER( scsp_r );
-WRITE16_DEVICE_HANDLER( scsp_w );
+DECLARE_READ16_DEVICE_HANDLER( scsp_r );
+DECLARE_WRITE16_DEVICE_HANDLER( scsp_w );
// MIDI I/O access (used for comms on Model 2/3)
-WRITE16_DEVICE_HANDLER( scsp_midi_in );
-READ16_DEVICE_HANDLER( scsp_midi_out_r );
+DECLARE_WRITE16_DEVICE_HANDLER( scsp_midi_in );
+DECLARE_READ16_DEVICE_HANDLER( scsp_midi_out_r );
extern UINT32* stv_scu;
diff --git a/src/emu/sound/segapcm.h b/src/emu/sound/segapcm.h
index 0419f230879..6a051e4064e 100644
--- a/src/emu/sound/segapcm.h
+++ b/src/emu/sound/segapcm.h
@@ -21,8 +21,8 @@ struct sega_pcm_interface
int bank;
};
-WRITE8_DEVICE_HANDLER( sega_pcm_w );
-READ8_DEVICE_HANDLER( sega_pcm_r );
+DECLARE_WRITE8_DEVICE_HANDLER( sega_pcm_w );
+DECLARE_READ8_DEVICE_HANDLER( sega_pcm_r );
class segapcm_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/sn76496.h b/src/emu/sound/sn76496.h
index 1ce40acaf8b..49e1ee6e971 100644
--- a/src/emu/sound/sn76496.h
+++ b/src/emu/sound/sn76496.h
@@ -6,8 +6,8 @@
#include "devlegcy.h"
READ_LINE_DEVICE_HANDLER( sn76496_ready_r );
-WRITE8_DEVICE_HANDLER( sn76496_w );
-WRITE8_DEVICE_HANDLER( sn76496_stereo_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sn76496_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sn76496_stereo_w );
class sn76496_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/snkwave.h b/src/emu/sound/snkwave.h
index 2ed3a67048d..11a16736b2b 100644
--- a/src/emu/sound/snkwave.h
+++ b/src/emu/sound/snkwave.h
@@ -5,7 +5,7 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( snkwave_w );
+DECLARE_WRITE8_DEVICE_HANDLER( snkwave_w );
class snkwave_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/sp0250.h b/src/emu/sound/sp0250.h
index dba4d8dd6d5..019ab27a296 100644
--- a/src/emu/sound/sp0250.h
+++ b/src/emu/sound/sp0250.h
@@ -9,7 +9,7 @@ struct sp0250_interface {
void (*drq_callback)(device_t *device, int state);
};
-WRITE8_DEVICE_HANDLER( sp0250_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sp0250_w );
UINT8 sp0250_drq_r(device_t *device);
class sp0250_device : public device_t,
diff --git a/src/emu/sound/sp0256.c b/src/emu/sound/sp0256.c
index 8996ab3581f..77ca2989f99 100644
--- a/src/emu/sound/sp0256.c
+++ b/src/emu/sound/sp0256.c
@@ -1317,7 +1317,7 @@ WRITE16_DEVICE_HANDLER( spb640_w )
if( offset == 0 )
{
- sp0256_ALD_w( device, 0, data & 0xff );
+ sp0256_ALD_w( device, space, 0, data & 0xff );
return;
}
diff --git a/src/emu/sound/sp0256.h b/src/emu/sound/sp0256.h
index 6b73fb9860f..d236c638da7 100644
--- a/src/emu/sound/sp0256.h
+++ b/src/emu/sound/sp0256.h
@@ -62,13 +62,13 @@ void sp0256_bitrevbuff(UINT8 *buffer, unsigned int start, unsigned int length);
void sp0256_set_clock(device_t *device, int clock);
-WRITE8_DEVICE_HANDLER( sp0256_ALD_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sp0256_ALD_w );
READ_LINE_DEVICE_HANDLER( sp0256_lrq_r );
READ_LINE_DEVICE_HANDLER( sp0256_sby_r );
-READ16_DEVICE_HANDLER( spb640_r );
-WRITE16_DEVICE_HANDLER( spb640_w );
+DECLARE_READ16_DEVICE_HANDLER( spb640_r );
+DECLARE_WRITE16_DEVICE_HANDLER( spb640_w );
class sp0256_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/st0016.h b/src/emu/sound/st0016.h
index 44d60973033..6bd1ad9fdd9 100644
--- a/src/emu/sound/st0016.h
+++ b/src/emu/sound/st0016.h
@@ -10,8 +10,8 @@ struct st0016_interface
UINT8 **p_soundram;
};
-READ8_DEVICE_HANDLER( st0016_snd_r );
-WRITE8_DEVICE_HANDLER( st0016_snd_w );
+DECLARE_READ8_DEVICE_HANDLER( st0016_snd_r );
+DECLARE_WRITE8_DEVICE_HANDLER( st0016_snd_w );
class st0016_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/t6w28.h b/src/emu/sound/t6w28.h
index 528cd39feba..30afa34a0e6 100644
--- a/src/emu/sound/t6w28.h
+++ b/src/emu/sound/t6w28.h
@@ -5,7 +5,7 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( t6w28_w );
+DECLARE_WRITE8_DEVICE_HANDLER( t6w28_w );
class t6w28_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/tiaintf.h b/src/emu/sound/tiaintf.h
index 6ce175789b4..97595b6b683 100644
--- a/src/emu/sound/tiaintf.h
+++ b/src/emu/sound/tiaintf.h
@@ -5,7 +5,7 @@
#include "devlegcy.h"
-WRITE8_DEVICE_HANDLER( tia_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tia_sound_w );
class tia_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/tms5110.h b/src/emu/sound/tms5110.h
index 89ecc861c41..4bd3db7c34b 100644
--- a/src/emu/sound/tms5110.h
+++ b/src/emu/sound/tms5110.h
@@ -38,18 +38,18 @@ struct tms5110_interface
devcb_write_line romclk_func; /* rom clock - Only used to drive the data lines */
};
-WRITE8_DEVICE_HANDLER( tms5110_ctl_w );
-READ8_DEVICE_HANDLER( tms5110_ctl_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tms5110_ctl_w );
+DECLARE_READ8_DEVICE_HANDLER( tms5110_ctl_r );
WRITE_LINE_DEVICE_HANDLER( tms5110_pdc_w );
/* this is only used by cvs.c
* it is not related at all to the speech generation
* and conflicts with the new rom controller interface.
*/
-READ8_DEVICE_HANDLER( tms5110_romclk_hack_r );
+DECLARE_READ8_DEVICE_HANDLER( tms5110_romclk_hack_r );
/* m58817 status line */
-READ8_DEVICE_HANDLER( m58817_status_r );
+DECLARE_READ8_DEVICE_HANDLER( m58817_status_r );
int tms5110_ready_r(device_t *device);
@@ -188,8 +188,8 @@ WRITE_LINE_DEVICE_HANDLER( tmsprom_m0_w );
READ_LINE_DEVICE_HANDLER( tmsprom_data_r );
/* offset is rom # */
-WRITE8_DEVICE_HANDLER( tmsprom_rom_csq_w );
-WRITE8_DEVICE_HANDLER( tmsprom_bit_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tmsprom_rom_csq_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tmsprom_bit_w );
WRITE_LINE_DEVICE_HANDLER( tmsprom_enable_w );
class tmsprom_device : public device_t
diff --git a/src/emu/sound/tms5220.h b/src/emu/sound/tms5220.h
index c3c102f0d3a..0a2e5adcf64 100644
--- a/src/emu/sound/tms5220.h
+++ b/src/emu/sound/tms5220.h
@@ -30,8 +30,8 @@ struct tms5220_interface
WRITE_LINE_DEVICE_HANDLER( tms5220_rsq_w );
WRITE_LINE_DEVICE_HANDLER( tms5220_wsq_w );
-WRITE8_DEVICE_HANDLER( tms5220_data_w );
-READ8_DEVICE_HANDLER( tms5220_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tms5220_data_w );
+DECLARE_READ8_DEVICE_HANDLER( tms5220_status_r );
READ_LINE_DEVICE_HANDLER( tms5220_readyq_r );
READ_LINE_DEVICE_HANDLER( tms5220_intq_r );
diff --git a/src/emu/sound/upd7759.h b/src/emu/sound/upd7759.h
index 3c42863fb3f..db4d1c913a1 100644
--- a/src/emu/sound/upd7759.h
+++ b/src/emu/sound/upd7759.h
@@ -25,7 +25,7 @@ void upd7759_set_bank_base(device_t *device, offs_t base);
void upd7759_reset_w(device_t *device, UINT8 data);
void upd7759_start_w(device_t *device, UINT8 data);
int upd7759_busy_r(device_t *device);
-WRITE8_DEVICE_HANDLER( upd7759_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( upd7759_port_w );
class upd7759_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/vlm5030.h b/src/emu/sound/vlm5030.h
index 87730ec95c8..2a63d25648c 100644
--- a/src/emu/sound/vlm5030.h
+++ b/src/emu/sound/vlm5030.h
@@ -16,7 +16,7 @@ void vlm5030_set_rom(device_t *device, void *speech_rom);
/* get BSY pin level */
int vlm5030_bsy(device_t *device);
/* latch contoll data */
-WRITE8_DEVICE_HANDLER( vlm5030_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( vlm5030_data_w );
/* set RST pin level : reset / set table address A8-A15 */
void vlm5030_rst (device_t *device, int pin );
/* set VCU pin level : ?? unknown */
diff --git a/src/emu/sound/vrender0.h b/src/emu/sound/vrender0.h
index d1fa8cb95aa..444aa547744 100644
--- a/src/emu/sound/vrender0.h
+++ b/src/emu/sound/vrender0.h
@@ -13,8 +13,8 @@ struct vr0_interface
void vr0_snd_set_areas(device_t *device,UINT32 *texture,UINT32 *frame);
-READ32_DEVICE_HANDLER( vr0_snd_read );
-WRITE32_DEVICE_HANDLER( vr0_snd_write );
+DECLARE_READ32_DEVICE_HANDLER( vr0_snd_read );
+DECLARE_WRITE32_DEVICE_HANDLER( vr0_snd_write );
class vrender0_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/x1_010.c b/src/emu/sound/x1_010.c
index 03cf395a694..7a486e49a97 100644
--- a/src/emu/sound/x1_010.c
+++ b/src/emu/sound/x1_010.c
@@ -269,7 +269,7 @@ READ16_DEVICE_HANDLER( seta_sound_word_r )
UINT16 ret;
ret = info->HI_WORD_BUF[offset]<<8;
- ret += (seta_sound_r( device, offset )&0xff);
+ ret += (seta_sound_r( device, space, offset )&0xff);
LOG_REGISTER_READ(( "%s: Read X1-010 Offset:%04X Data:%04X\n", device->machine().describe_context(), offset, ret ));
return ret;
}
@@ -278,7 +278,7 @@ WRITE16_DEVICE_HANDLER( seta_sound_word_w )
{
x1_010_state *info = get_safe_token(device);
info->HI_WORD_BUF[offset] = (data>>8)&0xff;
- seta_sound_w( device, offset, data&0xff );
+ seta_sound_w( device, space, offset, data&0xff );
LOG_REGISTER_WRITE(( "%s: Write X1-010 Offset:%04X Data:%04X\n", device->machine().describe_context(), offset, data ));
}
diff --git a/src/emu/sound/x1_010.h b/src/emu/sound/x1_010.h
index e765aa984fa..9405d1ea0d6 100644
--- a/src/emu/sound/x1_010.h
+++ b/src/emu/sound/x1_010.h
@@ -12,11 +12,11 @@ struct x1_010_interface
};
-READ8_DEVICE_HANDLER ( seta_sound_r );
-WRITE8_DEVICE_HANDLER( seta_sound_w );
+DECLARE_READ8_DEVICE_HANDLER ( seta_sound_r );
+DECLARE_WRITE8_DEVICE_HANDLER( seta_sound_w );
-READ16_DEVICE_HANDLER ( seta_sound_word_r );
-WRITE16_DEVICE_HANDLER( seta_sound_word_w );
+DECLARE_READ16_DEVICE_HANDLER ( seta_sound_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( seta_sound_word_w );
void seta_sound_enable_w(device_t *device, int data);
diff --git a/src/emu/sound/ym2151.c b/src/emu/sound/ym2151.c
index fa175e7d8c4..d69801a84de 100644
--- a/src/emu/sound/ym2151.c
+++ b/src/emu/sound/ym2151.c
@@ -163,7 +163,7 @@ struct YM2151
UINT32 noise_tab[32]; /* 17bit Noise Generator periods */
void (*irqhandler)(device_t *device, int irq); /* IRQ function handler */
- write8_device_func porthandler; /* port write function handler */
+ void (*porthandler)(device_t *, offs_t, UINT8); /* port write function handler */
device_t *device;
unsigned int clock; /* chip clock in Hz (passed from 2151intf.c) */
@@ -2492,7 +2492,7 @@ void ym2151_set_irq_handler(void *chip, void(*handler)(device_t *device, int irq
PSG->irqhandler = handler;
}
-void ym2151_set_port_write_handler(void *chip, write8_device_func handler)
+void ym2151_set_port_write_handler(void *chip, void (*handler)(device_t *, offs_t, UINT8))
{
YM2151 *PSG = (YM2151 *)chip;
PSG->porthandler = handler;
diff --git a/src/emu/sound/ym2151.h b/src/emu/sound/ym2151.h
index 045296839b0..b14f764d104 100644
--- a/src/emu/sound/ym2151.h
+++ b/src/emu/sound/ym2151.h
@@ -81,6 +81,6 @@ int ym2151_read_status(void *chip);
void ym2151_set_irq_handler(void *chip, void (*handler)(device_t *device, int irq));
/* set port write handler on YM2151 chip number 'n'*/
-void ym2151_set_port_write_handler(void *chip, write8_device_func handler);
+void ym2151_set_port_write_handler(void *chip, void (*handler)(device_t *, offs_t, UINT8));
#endif /*__YM2151_H__*/
diff --git a/src/emu/sound/ymf271.h b/src/emu/sound/ymf271.h
index d1ff2dab2ec..640b2030b17 100644
--- a/src/emu/sound/ymf271.h
+++ b/src/emu/sound/ymf271.h
@@ -13,8 +13,8 @@ struct ymf271_interface
void (*irq_callback)(device_t *device, int state); /* irq callback */
};
-READ8_DEVICE_HANDLER( ymf271_r );
-WRITE8_DEVICE_HANDLER( ymf271_w );
+DECLARE_READ8_DEVICE_HANDLER( ymf271_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf271_w );
class ymf271_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/ymf278b.h b/src/emu/sound/ymf278b.h
index 9b81b3c2b28..493386b0e77 100644
--- a/src/emu/sound/ymf278b.h
+++ b/src/emu/sound/ymf278b.h
@@ -13,8 +13,8 @@ struct ymf278b_interface
void (*irq_callback)(device_t *device, int state); /* irq callback */
};
-READ8_DEVICE_HANDLER( ymf278b_r );
-WRITE8_DEVICE_HANDLER( ymf278b_w );
+DECLARE_READ8_DEVICE_HANDLER( ymf278b_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ymf278b_w );
class ymf278b_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/ymz280b.h b/src/emu/sound/ymz280b.h
index 7d90c1faf6c..a1328600501 100644
--- a/src/emu/sound/ymz280b.h
+++ b/src/emu/sound/ymz280b.h
@@ -20,8 +20,8 @@ struct ymz280b_interface
devcb_write8 ext_write; /* external RAM write */
};
-READ8_DEVICE_HANDLER ( ymz280b_r );
-WRITE8_DEVICE_HANDLER( ymz280b_w );
+DECLARE_READ8_DEVICE_HANDLER ( ymz280b_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ymz280b_w );
class ymz280b_device : public device_t,
public device_sound_interface
diff --git a/src/emu/sound/zsg2.h b/src/emu/sound/zsg2.h
index c742fc88be2..1d3bf4b58da 100644
--- a/src/emu/sound/zsg2.h
+++ b/src/emu/sound/zsg2.h
@@ -7,8 +7,8 @@
#ifndef __ZSG2_H__
#define __ZSG2_H__
-READ16_DEVICE_HANDLER( zsg2_r );
-WRITE16_DEVICE_HANDLER( zsg2_w );
+DECLARE_READ16_DEVICE_HANDLER( zsg2_r );
+DECLARE_WRITE16_DEVICE_HANDLER( zsg2_w );
struct zsg2_interface
{
diff --git a/src/emu/video/hd63484.h b/src/emu/video/hd63484.h
index 1270af71589..aa4cd95ddf6 100644
--- a/src/emu/video/hd63484.h
+++ b/src/emu/video/hd63484.h
@@ -55,15 +55,15 @@ struct hd63484_interface
DEVICE I/O FUNCTIONS
***************************************************************************/
-READ16_DEVICE_HANDLER( hd63484_status_r );
-WRITE16_DEVICE_HANDLER( hd63484_address_w );
-WRITE16_DEVICE_HANDLER( hd63484_data_w );
-READ16_DEVICE_HANDLER( hd63484_data_r );
-
-READ16_DEVICE_HANDLER( hd63484_ram_r );
-READ16_DEVICE_HANDLER( hd63484_regs_r );
-WRITE16_DEVICE_HANDLER( hd63484_ram_w );
-WRITE16_DEVICE_HANDLER( hd63484_regs_w );
+DECLARE_READ16_DEVICE_HANDLER( hd63484_status_r );
+DECLARE_WRITE16_DEVICE_HANDLER( hd63484_address_w );
+DECLARE_WRITE16_DEVICE_HANDLER( hd63484_data_w );
+DECLARE_READ16_DEVICE_HANDLER( hd63484_data_r );
+
+DECLARE_READ16_DEVICE_HANDLER( hd63484_ram_r );
+DECLARE_READ16_DEVICE_HANDLER( hd63484_regs_r );
+DECLARE_WRITE16_DEVICE_HANDLER( hd63484_ram_w );
+DECLARE_WRITE16_DEVICE_HANDLER( hd63484_regs_w );
#endif /* __HD63484_H__ */
diff --git a/src/emu/video/i8275.h b/src/emu/video/i8275.h
index cd918e0bb70..058a5439ebc 100644
--- a/src/emu/video/i8275.h
+++ b/src/emu/video/i8275.h
@@ -65,13 +65,13 @@ struct i8275_interface
***************************************************************************/
/* register access */
-READ8_DEVICE_HANDLER ( i8275_r );
-WRITE8_DEVICE_HANDLER ( i8275_w );
+DECLARE_READ8_DEVICE_HANDLER ( i8275_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( i8275_w );
/* updates the screen */
void i8275_update(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect);
-WRITE8_DEVICE_HANDLER( i8275_dack_w );
+DECLARE_WRITE8_DEVICE_HANDLER( i8275_dack_w );
/***************************************************************************
DEVICE CONFIGURATION MACROS
diff --git a/src/emu/video/pc_vga.h b/src/emu/video/pc_vga.h
index 4bdd3e3a31c..c4bba32fd53 100644
--- a/src/emu/video/pc_vga.h
+++ b/src/emu/video/pc_vga.h
@@ -99,8 +99,8 @@ READ8_HANDLER(s3_mem_r);
WRITE8_HANDLER(s3_mem_w);
READ8_HANDLER( ati_port_03c0_r );
-READ8_DEVICE_HANDLER(ati_port_ext_r);
-WRITE8_DEVICE_HANDLER(ati_port_ext_w);
+DECLARE_READ8_DEVICE_HANDLER(ati_port_ext_r);
+DECLARE_WRITE8_DEVICE_HANDLER(ati_port_ext_w);
READ16_HANDLER(ibm8514_gpstatus_r);
WRITE16_HANDLER(ibm8514_cmd_w);
READ16_HANDLER(mach8_ext_fifo_r);
diff --git a/src/emu/video/s2636.h b/src/emu/video/s2636.h
index 84246e3684d..d655bca86d5 100644
--- a/src/emu/video/s2636.h
+++ b/src/emu/video/s2636.h
@@ -71,8 +71,8 @@ extern const device_type S2636;
D3 indicates whether the S2636 drew this pixel - 0 = not drawn, 1 = drawn */
bitmap_ind16 &s2636_update( device_t *device, const rectangle &cliprect );
-WRITE8_DEVICE_HANDLER( s2636_work_ram_w );
-READ8_DEVICE_HANDLER( s2636_work_ram_r );
+DECLARE_WRITE8_DEVICE_HANDLER( s2636_work_ram_w );
+DECLARE_READ8_DEVICE_HANDLER( s2636_work_ram_r );
#endif /* __S2636_H__ */
diff --git a/src/emu/video/tlc34076.h b/src/emu/video/tlc34076.h
index 5914a1db28f..c32f02d50a4 100644
--- a/src/emu/video/tlc34076.h
+++ b/src/emu/video/tlc34076.h
@@ -59,5 +59,5 @@ extern const device_type TLC34076;
DEVICE I/O FUNCTIONS
***************************************************************************/
-WRITE8_DEVICE_HANDLER( tlc34076_w );
-READ8_DEVICE_HANDLER( tlc34076_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tlc34076_w );
+DECLARE_READ8_DEVICE_HANDLER( tlc34076_r );
diff --git a/src/emu/video/tms9927.c b/src/emu/video/tms9927.c
index 784f800a937..d8b43665474 100644
--- a/src/emu/video/tms9927.c
+++ b/src/emu/video/tms9927.c
@@ -73,7 +73,7 @@ static void tms9927_state_save_postload(tms9927_state *state)
}
-static void generic_access(device_t *device, offs_t offset)
+static void generic_access(device_t *device, address_space &space, offs_t offset)
{
tms9927_state *tms = get_safe_token(device);
@@ -86,9 +86,9 @@ static void generic_access(device_t *device, offs_t offset)
int cur;
for (cur = 0; cur < 7; cur++)
- tms9927_w(device, cur, tms->selfload[cur]);
+ tms9927_w(device, space, cur, tms->selfload[cur]);
for (cur = 0; cur < 1; cur++)
- tms9927_w(device, cur + 0xc, tms->selfload[cur + 7]);
+ tms9927_w(device, space, cur + 0xc, tms->selfload[cur + 7]);
}
else
popmessage("tms9927: self-load initiated with no PROM!");
@@ -149,7 +149,7 @@ mame_printf_debug("Cursor address changed\n");
break;
default:
- generic_access(device, offset);
+ generic_access(device, space, offset);
break;
}
}
@@ -166,7 +166,7 @@ READ8_DEVICE_HANDLER( tms9927_r )
return tms->reg[offset - 0x08 + 7];
default:
- generic_access(device, offset);
+ generic_access(device, space, offset);
break;
}
return 0xff;
diff --git a/src/emu/video/tms9927.h b/src/emu/video/tms9927.h
index c75f6e25518..5f56d457f88 100644
--- a/src/emu/video/tms9927.h
+++ b/src/emu/video/tms9927.h
@@ -84,8 +84,8 @@ extern const tms9927_interface tms9927_null_interface;
/* basic read/write handlers */
-WRITE8_DEVICE_HANDLER( tms9927_w );
-READ8_DEVICE_HANDLER( tms9927_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tms9927_w );
+DECLARE_READ8_DEVICE_HANDLER( tms9927_r );
/* other queries */
int tms9927_screen_reset(device_t *device);
diff --git a/src/emu/video/voodoo.c b/src/emu/video/voodoo.c
index 3559ffdc5d3..abf53c2b3b5 100644
--- a/src/emu/video/voodoo.c
+++ b/src/emu/video/voodoo.c
@@ -4064,9 +4064,9 @@ READ32_DEVICE_HANDLER( banshee_r )
flush_fifos(v, device->machine().time());
if (offset < 0x80000/4)
- result = banshee_io_r(device, offset, mem_mask);
+ result = banshee_io_r(device, space, offset, mem_mask);
else if (offset < 0x100000/4)
- result = banshee_agp_r(device, offset, mem_mask);
+ result = banshee_agp_r(device, space, offset, mem_mask);
else if (offset < 0x200000/4)
logerror("%s:banshee_r(2D:%X)\n", device->machine().describe_context(), (offset*4) & 0xfffff);
else if (offset < 0x600000/4)
@@ -4232,13 +4232,13 @@ READ32_DEVICE_HANDLER( banshee_io_r )
case io_vgad0: case io_vgad4: case io_vgad8: case io_vgadc:
result = 0;
if (ACCESSING_BITS_0_7)
- result |= banshee_vga_r(device, offset*4+0) << 0;
+ result |= banshee_vga_r(device, space, offset*4+0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_8_15)
- result |= banshee_vga_r(device, offset*4+1) << 8;
+ result |= banshee_vga_r(device, space, offset*4+1, mem_mask >> 8) << 8;
if (ACCESSING_BITS_16_23)
- result |= banshee_vga_r(device, offset*4+2) << 16;
+ result |= banshee_vga_r(device, space, offset*4+2, mem_mask >> 16) << 16;
if (ACCESSING_BITS_24_31)
- result |= banshee_vga_r(device, offset*4+3) << 24;
+ result |= banshee_vga_r(device, space, offset*4+3, mem_mask >> 24) << 24;
break;
default:
@@ -4606,9 +4606,9 @@ WRITE32_DEVICE_HANDLER( banshee_w )
flush_fifos(v, device->machine().time());
if (offset < 0x80000/4)
- banshee_io_w(device, offset, data, mem_mask);
+ banshee_io_w(device, space, offset, data, mem_mask);
else if (offset < 0x100000/4)
- banshee_agp_w(device, offset, data, mem_mask);
+ banshee_agp_w(device, space, offset, data, mem_mask);
else if (offset < 0x200000/4)
logerror("%s:banshee_w(2D:%X) = %08X & %08X\n", device->machine().describe_context(), (offset*4) & 0xfffff, data, mem_mask);
else if (offset < 0x600000/4)
@@ -4780,13 +4780,13 @@ WRITE32_DEVICE_HANDLER( banshee_io_w )
case io_vgac0: case io_vgac4: case io_vgac8: case io_vgacc:
case io_vgad0: case io_vgad4: case io_vgad8: case io_vgadc:
if (ACCESSING_BITS_0_7)
- banshee_vga_w(device, offset*4+0, data >> 0);
+ banshee_vga_w(device, space, offset*4+0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_8_15)
- banshee_vga_w(device, offset*4+1, data >> 8);
+ banshee_vga_w(device, space, offset*4+1, data >> 8, mem_mask >> 8);
if (ACCESSING_BITS_16_23)
- banshee_vga_w(device, offset*4+2, data >> 16);
+ banshee_vga_w(device, space, offset*4+2, data >> 16, mem_mask >> 16);
if (ACCESSING_BITS_24_31)
- banshee_vga_w(device, offset*4+3, data >> 24);
+ banshee_vga_w(device, space, offset*4+3, data >> 24, mem_mask >> 24);
break;
default:
diff --git a/src/emu/video/voodoo.h b/src/emu/video/voodoo.h
index e0c2a842371..5a71f1f4e81 100644
--- a/src/emu/video/voodoo.h
+++ b/src/emu/video/voodoo.h
@@ -113,16 +113,16 @@ int voodoo_get_type(device_t *device);
int voodoo_is_stalled(device_t *device);
void voodoo_set_init_enable(device_t *device, UINT32 newval);
-READ32_DEVICE_HANDLER( voodoo_r );
-WRITE32_DEVICE_HANDLER( voodoo_w );
-
-READ32_DEVICE_HANDLER( banshee_r );
-WRITE32_DEVICE_HANDLER( banshee_w );
-READ32_DEVICE_HANDLER( banshee_fb_r );
-WRITE32_DEVICE_HANDLER( banshee_fb_w );
-READ32_DEVICE_HANDLER( banshee_io_r );
-WRITE32_DEVICE_HANDLER( banshee_io_w );
-READ32_DEVICE_HANDLER( banshee_rom_r );
+DECLARE_READ32_DEVICE_HANDLER( voodoo_r );
+DECLARE_WRITE32_DEVICE_HANDLER( voodoo_w );
+
+DECLARE_READ32_DEVICE_HANDLER( banshee_r );
+DECLARE_WRITE32_DEVICE_HANDLER( banshee_w );
+DECLARE_READ32_DEVICE_HANDLER( banshee_fb_r );
+DECLARE_WRITE32_DEVICE_HANDLER( banshee_fb_w );
+DECLARE_READ32_DEVICE_HANDLER( banshee_io_r );
+DECLARE_WRITE32_DEVICE_HANDLER( banshee_io_w );
+DECLARE_READ32_DEVICE_HANDLER( banshee_rom_r );
/* ----- device interface ----- */
diff --git a/src/mame/audio/8080bw.c b/src/mame/audio/8080bw.c
index a5b405ff3bd..d735178eaf8 100644
--- a/src/mame/audio/8080bw.c
+++ b/src/mame/audio/8080bw.c
@@ -282,7 +282,7 @@ WRITE8_MEMBER(_8080bw_state::indianbt_sh_port_2_w)
WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w )
{
- discrete_sound_w(device, INDIANBT_MUSIC_DATA, data);
+ discrete_sound_w(device, space, INDIANBT_MUSIC_DATA, data);
}
@@ -600,27 +600,27 @@ DISCRETE_SOUND_END
WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w )
{
- discrete_sound_w(device, POLARIS_MUSIC_DATA, data);
+ discrete_sound_w(device, space, POLARIS_MUSIC_DATA, data);
}
WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w )
{
/* 0x01 - SX0 - Shot */
- discrete_sound_w(device, POLARIS_SX0_EN, data & 0x01);
+ discrete_sound_w(device, space, POLARIS_SX0_EN, data & 0x01);
/* 0x02 - SX1 - Ship Hit (Sub) */
- discrete_sound_w(device, POLARIS_SX1_EN, data & 0x02);
+ discrete_sound_w(device, space, POLARIS_SX1_EN, data & 0x02);
/* 0x04 - SX2 - Ship */
- discrete_sound_w(device, POLARIS_SX2_EN, data & 0x04);
+ discrete_sound_w(device, space, POLARIS_SX2_EN, data & 0x04);
/* 0x08 - SX3 - Explosion */
- discrete_sound_w(device, POLARIS_SX3_EN, data & 0x08);
+ discrete_sound_w(device, space, POLARIS_SX3_EN, data & 0x08);
/* 0x10 - SX4 */
/* 0x20 - SX5 - Sound Enable */
- discrete_sound_w(device, POLARIS_SX5_EN, data & 0x20);
+ discrete_sound_w(device, space, POLARIS_SX5_EN, data & 0x20);
}
WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w )
@@ -632,16 +632,16 @@ WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w )
state->m_c8080bw_flip_screen = data & 0x20; /* SX11 */
/* 0x01 - SX6 - Plane Down */
- discrete_sound_w(device, POLARIS_SX6_EN, data & 0x01);
+ discrete_sound_w(device, space, POLARIS_SX6_EN, data & 0x01);
/* 0x02 - SX7 - Plane Up */
- discrete_sound_w(device, POLARIS_SX7_EN, data & 0x02);
+ discrete_sound_w(device, space, POLARIS_SX7_EN, data & 0x02);
/* 0x08 - SX9 - Hit */
- discrete_sound_w(device, POLARIS_SX9_EN, data & 0x08);
+ discrete_sound_w(device, space, POLARIS_SX9_EN, data & 0x08);
/* 0x10 - SX10 - Hit */
- discrete_sound_w(device, POLARIS_SX10_EN, data & 0x10);
+ discrete_sound_w(device, space, POLARIS_SX10_EN, data & 0x10);
}
@@ -789,8 +789,8 @@ WRITE8_MEMBER(_8080bw_state::schaser_sh_port_1_w)
bit 5 - Explosion (SX5) */
//printf( "schaser_sh_port_1_w: %02x\n", data );
- discrete_sound_w(m_discrete, SCHASER_DOT_EN, data & 0x01);
- discrete_sound_w(m_discrete, SCHASER_DOT_SEL, data & 0x02);
+ discrete_sound_w(m_discrete, space, SCHASER_DOT_EN, data & 0x01);
+ discrete_sound_w(m_discrete, space, SCHASER_DOT_SEL, data & 0x02);
/* The effect is a variable rate 555 timer. A diode/resistor array is used to
* select the frequency. Because of the diode voltage drop, we can not use the
@@ -854,9 +854,9 @@ WRITE8_MEMBER(_8080bw_state::schaser_sh_port_2_w)
//printf( "schaser_sh_port_2_w: %02x\n", data );
- discrete_sound_w(m_discrete, SCHASER_MUSIC_BIT, data & 0x01);
+ discrete_sound_w(m_discrete, space, SCHASER_MUSIC_BIT, data & 0x01);
- discrete_sound_w(m_discrete, SCHASER_SND_EN, data & 0x02);
+ discrete_sound_w(m_discrete, space, SCHASER_SND_EN, data & 0x02);
machine().sound().system_enable(data & 0x02);
coin_lockout_global_w(machine(), data & 0x04);
diff --git a/src/mame/audio/asteroid.c b/src/mame/audio/asteroid.c
index 5927d192052..b6cc6990d72 100644
--- a/src/mame/audio/asteroid.c
+++ b/src/mame/audio/asteroid.c
@@ -280,7 +280,7 @@ DISCRETE_SOUND_END
WRITE8_DEVICE_HANDLER( asteroid_explode_w )
{
- discrete_sound_w(device,ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume
+ discrete_sound_w(device,space,ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume
/* We will modify the pitch data to send the divider value. */
switch ((data&0xc0))
{
@@ -297,27 +297,27 @@ WRITE8_DEVICE_HANDLER( asteroid_explode_w )
data = 5;
break;
}
- discrete_sound_w(device,ASTEROID_EXPLODE_PITCH, data);
+ discrete_sound_w(device, space, ASTEROID_EXPLODE_PITCH, data);
}
WRITE8_DEVICE_HANDLER( asteroid_thump_w )
{
- discrete_sound_w(device, ASTEROID_THUMP_EN, data & 0x10);
- discrete_sound_w(device, ASTEROID_THUMP_DATA, data & 0x0f);
+ discrete_sound_w(device, space, ASTEROID_THUMP_EN, data & 0x10);
+ discrete_sound_w(device, space, ASTEROID_THUMP_DATA, data & 0x0f);
}
WRITE8_DEVICE_HANDLER( asteroid_sounds_w )
{
- discrete_sound_w(device, NODE_RELATIVE(ASTEROID_SAUCER_SND_EN, offset), data & 0x80);
+ discrete_sound_w(device, space, NODE_RELATIVE(ASTEROID_SAUCER_SND_EN, offset), data & 0x80);
}
WRITE8_DEVICE_HANDLER( astdelux_sounds_w )
{
/* Only ever activates the thrusters in Astdelux */
- discrete_sound_w(device, ASTEROID_THRUST_EN, data & 0x80);
+ discrete_sound_w(device, space, ASTEROID_THRUST_EN, data & 0x80);
}
WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w )
{
- discrete_sound_w(device, ASTEROID_NOISE_RESET, 0);
+ discrete_sound_w(device, space, ASTEROID_NOISE_RESET, 0);
}
diff --git a/src/mame/audio/atarijsa.c b/src/mame/audio/atarijsa.c
index e2d74d4d549..d79748376de 100644
--- a/src/mame/audio/atarijsa.c
+++ b/src/mame/audio/atarijsa.c
@@ -269,7 +269,7 @@ static WRITE8_HANDLER( jsa1_io_w )
case 0x200: /* /VOICE */
if (tms5220 != NULL)
- tms5220_data_w(tms5220, 0, data);
+ tms5220_data_w(tms5220, *space, 0, data);
break;
case 0x202: /* /WRP */
diff --git a/src/mame/audio/avalnche.c b/src/mame/audio/avalnche.c
index ab262e5f851..6bc3ce3f046 100644
--- a/src/mame/audio/avalnche.c
+++ b/src/mame/audio/avalnche.c
@@ -22,12 +22,12 @@
WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w )
{
- discrete_sound_w(device, AVALNCHE_SOUNDLVL_DATA, data & 0x3f);
+ discrete_sound_w(device, space, AVALNCHE_SOUNDLVL_DATA, data & 0x3f);
}
WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w )
{
- discrete_sound_w(device, AVALNCHE_ATTRACT_EN, data & 0x01);
+ discrete_sound_w(device, space, AVALNCHE_ATTRACT_EN, data & 0x01);
}
WRITE8_DEVICE_HANDLER( avalnche_audio_w )
@@ -37,16 +37,16 @@ WRITE8_DEVICE_HANDLER( avalnche_audio_w )
switch (offset & 0x07)
{
case 0x00: /* AUD0 */
- discrete_sound_w(device, AVALNCHE_AUD0_EN, bit);
+ discrete_sound_w(device, space, AVALNCHE_AUD0_EN, bit);
break;
case 0x01: /* AUD1 */
- discrete_sound_w(device, AVALNCHE_AUD1_EN, bit);
+ discrete_sound_w(device, space, AVALNCHE_AUD1_EN, bit);
break;
case 0x02: /* AUD2 */
default:
- discrete_sound_w(device, AVALNCHE_AUD2_EN, bit);
+ discrete_sound_w(device, space, AVALNCHE_AUD2_EN, bit);
break;
}
}
diff --git a/src/mame/audio/blockade.c b/src/mame/audio/blockade.c
index e20f5ed5355..8891f00ac74 100644
--- a/src/mame/audio/blockade.c
+++ b/src/mame/audio/blockade.c
@@ -38,7 +38,7 @@ DISCRETE_SOUND_END
WRITE8_DEVICE_HANDLER( blockade_sound_freq_w )
{
- discrete_sound_w(device,BLOCKADE_NOTE_DATA, data);
+ discrete_sound_w(device,space,BLOCKADE_NOTE_DATA, data);
return;
}
diff --git a/src/mame/audio/bsktball.c b/src/mame/audio/bsktball.c
index 382f35ebeef..578f8fd5c8b 100644
--- a/src/mame/audio/bsktball.c
+++ b/src/mame/audio/bsktball.c
@@ -12,18 +12,18 @@ Sound handlers
***************************************************************************/
WRITE8_DEVICE_HANDLER( bsktball_bounce_w )
{
- discrete_sound_w(device, BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd
- discrete_sound_w(device, BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce
+ discrete_sound_w(device, space, BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd
+ discrete_sound_w(device, space, BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce
}
WRITE8_DEVICE_HANDLER( bsktball_note_w )
{
- discrete_sound_w(device, BSKTBALL_NOTE_DATA, data); // Note
+ discrete_sound_w(device, space, BSKTBALL_NOTE_DATA, data); // Note
}
WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w )
{
- discrete_sound_w(device, BSKTBALL_NOISE_EN, offset & 0x01);
+ discrete_sound_w(device, space, BSKTBALL_NOISE_EN, offset & 0x01);
}
diff --git a/src/mame/audio/bzone.c b/src/mame/audio/bzone.c
index 943047d9b6a..b80ec861c91 100644
--- a/src/mame/audio/bzone.c
+++ b/src/mame/audio/bzone.c
@@ -389,7 +389,7 @@ static const pokey_interface bzone_pokey_interface =
WRITE8_DEVICE_HANDLER( bzone_sounds_w )
{
- discrete_sound_w(device, BZ_INPUT, data);
+ discrete_sound_w(device, space, BZ_INPUT, data);
output_set_value("startled", (data >> 6) & 1);
device->machine().sound().system_enable(data & 0x20);
diff --git a/src/mame/audio/canyon.c b/src/mame/audio/canyon.c
index 5e19f6b56dd..bfc5e129b2a 100644
--- a/src/mame/audio/canyon.c
+++ b/src/mame/audio/canyon.c
@@ -16,25 +16,25 @@
WRITE8_DEVICE_HANDLER( canyon_motor_w )
{
- discrete_sound_w(device, NODE_RELATIVE(CANYON_MOTOR1_DATA, (offset & 0x01)), data & 0x0f);
+ discrete_sound_w(device, space, NODE_RELATIVE(CANYON_MOTOR1_DATA, (offset & 0x01)), data & 0x0f);
}
WRITE8_DEVICE_HANDLER( canyon_explode_w )
{
- discrete_sound_w(device, CANYON_EXPLODE_DATA, data >> 4);
+ discrete_sound_w(device, space, CANYON_EXPLODE_DATA, data >> 4);
}
WRITE8_DEVICE_HANDLER( canyon_attract_w )
{
- discrete_sound_w(device, NODE_RELATIVE(CANYON_ATTRACT1_EN, (offset & 0x01)), offset & 0x02);
+ discrete_sound_w(device, space, NODE_RELATIVE(CANYON_ATTRACT1_EN, (offset & 0x01)), offset & 0x02);
}
WRITE8_DEVICE_HANDLER( canyon_whistle_w )
{
- discrete_sound_w(device, NODE_RELATIVE(CANYON_WHISTLE1_EN, (offset & 0x01)), offset & 0x02);
+ discrete_sound_w(device, space, NODE_RELATIVE(CANYON_WHISTLE1_EN, (offset & 0x01)), offset & 0x02);
}
diff --git a/src/mame/audio/carnival.c b/src/mame/audio/carnival.c
index 406ff929032..af5fd847969 100644
--- a/src/mame/audio/carnival.c
+++ b/src/mame/audio/carnival.c
@@ -274,11 +274,11 @@ static WRITE8_DEVICE_HANDLER( carnival_music_port_2_w )
break;
case PSG_BC_WRITE:
- ay8910_data_w( device, 0, psgData );
+ ay8910_data_w( device, space, 0, psgData );
break;
case PSG_BC_LATCH_ADDRESS:
- ay8910_address_w( device, 0, psgData );
+ ay8910_address_w( device, space, 0, psgData );
break;
}
}
diff --git a/src/mame/audio/circus.c b/src/mame/audio/circus.c
index 314ae123dca..fd37e080afd 100644
--- a/src/mame/audio/circus.c
+++ b/src/mame/audio/circus.c
@@ -184,11 +184,11 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w)
switch ((data & 0x70) >> 4)
{
case 0 : /* All Off */
- discrete_sound_w(m_discrete, CIRCUS_MUSIC_BIT, 0);
+ discrete_sound_w(m_discrete, space, CIRCUS_MUSIC_BIT, 0);
break;
case 1 : /* Music */
- discrete_sound_w(m_discrete, CIRCUS_MUSIC_BIT, 1);
+ discrete_sound_w(m_discrete, space, CIRCUS_MUSIC_BIT, 1);
break;
case 2 : /* Circus = Pop; Rip Cord = Splash */
@@ -217,7 +217,7 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w)
break;
case 2: /* robotbwl */
- discrete_sound_w(m_discrete, ROBOTBWL_MUSIC_BIT, data & 0x08); /* Footsteps */
+ discrete_sound_w(m_discrete, space, ROBOTBWL_MUSIC_BIT, data & 0x08); /* Footsteps */
if (data & 0x40) /* Hit */
m_samples->start(0, 0);
@@ -242,11 +242,11 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w)
switch ((data & 0x70) >> 4)
{
case 0 : /* All Off */
- discrete_sound_w(m_discrete, CRASH_MUSIC_BIT, 0);
+ discrete_sound_w(m_discrete, space, CRASH_MUSIC_BIT, 0);
break;
case 1 : /* Music */
- discrete_sound_w(m_discrete, CRASH_MUSIC_BIT, 1);
+ discrete_sound_w(m_discrete, space, CRASH_MUSIC_BIT, 1);
break;
case 2 : /* Crash */
@@ -254,14 +254,14 @@ WRITE8_MEMBER(circus_state::circus_clown_z_w)
break;
case 3 : /* Normal Video and Beep */
- discrete_sound_w(m_discrete, CRASH_BEEPER_EN, 0);
+ discrete_sound_w(m_discrete, space, CRASH_BEEPER_EN, 0);
break;
case 4 : /* Skid */
break;
case 5 : /* Invert Video and Beep */
- discrete_sound_w(m_discrete, CRASH_BEEPER_EN, 0);
+ discrete_sound_w(m_discrete, space, CRASH_BEEPER_EN, 0);
break;
case 6 : /* Hi Motor */
diff --git a/src/mame/audio/copsnrob.c b/src/mame/audio/copsnrob.c
index 00374b0b547..7795f81b794 100644
--- a/src/mame/audio/copsnrob.c
+++ b/src/mame/audio/copsnrob.c
@@ -704,27 +704,27 @@ WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w)
switch (offset)
{
case 0x00:
- discrete_sound_w(device, COPSNROB_MOTOR3_INV, special_data);
+ discrete_sound_w(device, space, COPSNROB_MOTOR3_INV, special_data);
break;
case 0x01:
- discrete_sound_w(device, COPSNROB_MOTOR2_INV, special_data);
+ discrete_sound_w(device, space, COPSNROB_MOTOR2_INV, special_data);
break;
case 0x02:
- discrete_sound_w(device, COPSNROB_MOTOR1_INV, special_data);
+ discrete_sound_w(device, space, COPSNROB_MOTOR1_INV, special_data);
break;
case 0x03:
- discrete_sound_w(device, COPSNROB_MOTOR0_INV, special_data);
+ discrete_sound_w(device, space, COPSNROB_MOTOR0_INV, special_data);
break;
case 0x04:
- discrete_sound_w(device, COPSNROB_SCREECH_INV, special_data);
+ discrete_sound_w(device, space, COPSNROB_SCREECH_INV, special_data);
break;
case 0x05:
- discrete_sound_w(device, COPSNROB_CRASH_INV, special_data);
+ discrete_sound_w(device, space, COPSNROB_CRASH_INV, special_data);
break;
case 0x06:
@@ -733,7 +733,7 @@ WRITE8_MEMBER(copsnrob_state::copsnrob_misc_w)
break;
case 0x07:
- discrete_sound_w(device, COPSNROB_AUDIO_ENABLE, special_data);
+ discrete_sound_w(device, space, COPSNROB_AUDIO_ENABLE, special_data);
//machine().sound().system_mute(special_data);
break;
diff --git a/src/mame/audio/crbaloon.c b/src/mame/audio/crbaloon.c
index b2efe873dc8..4a7340f48d2 100644
--- a/src/mame/audio/crbaloon.c
+++ b/src/mame/audio/crbaloon.c
@@ -32,13 +32,13 @@
WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq )
{
- discrete_sound_w(device, CRBALOON_MUSIC_DATA, data);
+ discrete_sound_w(device, space, CRBALOON_MUSIC_DATA, data);
}
WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable )
{
- discrete_sound_w(device, CRBALOON_MUSIC_EN, data);
+ discrete_sound_w(device, space, CRBALOON_MUSIC_EN, data);
}
@@ -66,7 +66,7 @@ void crbaloon_audio_set_appear_enable(device_t *sn, int enabled)
WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable )
{
- discrete_sound_w(device, CRBALOON_LAUGH_EN, data);
+ discrete_sound_w(device, space, CRBALOON_LAUGH_EN, data);
}
diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c
index 2bafc7173fe..a929b5f926c 100644
--- a/src/mame/audio/dkong.c
+++ b/src/mame/audio/dkong.c
@@ -1214,7 +1214,7 @@ Addresses found at @0x510, cpu2
static WRITE8_DEVICE_HANDLER( M58817_command_w )
{
- tms5110_ctl_w(device, 0, data & 0x0f);
+ tms5110_ctl_w(device, space, 0, data & 0x0f);
tms5110_pdc_w(device, (data>>4) & 0x01);
/* FIXME 0x20 is CS */
}
@@ -1234,6 +1234,7 @@ WRITE8_MEMBER(dkong_state::dkong_voice_w)
logerror("dkong_speech_w: 0x%02x\n", data);
}
+static DECLARE_READ8_DEVICE_HANDLER( dkong_voice_status_r );
static READ8_DEVICE_HANDLER( dkong_voice_status_r )
{
/* only provided for documentation purposes
@@ -1245,11 +1246,11 @@ static READ8_DEVICE_HANDLER( dkong_voice_status_r )
static READ8_DEVICE_HANDLER( dkong_tune_r )
{
dkong_state *state = device->machine().driver_data<dkong_state>();
- UINT8 page = latch8_r(state->m_dev_vp2, 0) & 0x47;
+ UINT8 page = latch8_r(state->m_dev_vp2, space, 0) & 0x47;
if ( page & 0x40 )
{
- return (latch8_r(device, 0) & 0x0F) | (dkong_voice_status_r(device, 0) << 4);
+ return (latch8_r(device, space, 0) & 0x0F) | (dkong_voice_status_r(device, space, 0) << 4);
}
else
{
@@ -1260,7 +1261,7 @@ static READ8_DEVICE_HANDLER( dkong_tune_r )
static WRITE8_DEVICE_HANDLER( dkong_p1_w )
{
- discrete_sound_w(device,DS_DAC,data);
+ discrete_sound_w(device,space,DS_DAC,data);
}
diff --git a/src/mame/audio/exidy.c b/src/mame/audio/exidy.c
index fe23703e7c7..387064bad56 100644
--- a/src/mame/audio/exidy.c
+++ b/src/mame/audio/exidy.c
@@ -533,7 +533,7 @@ static WRITE8_DEVICE_HANDLER( r6532_porta_w )
if (state->m_tms != NULL)
{
logerror("(%f)%s:TMS5220 data write = %02X\n", device->machine().time().as_double(), device->machine().describe_context(), riot6532_porta_out_get(state->m_riot));
- tms5220_data_w(state->m_tms, 0, data);
+ tms5220_data_w(state->m_tms, space, 0, data);
}
}
@@ -542,8 +542,8 @@ static READ8_DEVICE_HANDLER( r6532_porta_r )
exidy_sound_state *state = get_safe_token(device);
if (state->m_tms != NULL)
{
- logerror("(%f)%s:TMS5220 status read = %02X\n", device->machine().time().as_double(), device->machine().describe_context(), tms5220_status_r(state->m_tms, 0));
- return tms5220_status_r(state->m_tms, 0);
+ logerror("(%f)%s:TMS5220 status read = %02X\n", device->machine().time().as_double(), device->machine().describe_context(), tms5220_status_r(state->m_tms, space, 0));
+ return tms5220_status_r(state->m_tms, space, 0);
}
else
return 0xff;
diff --git a/src/mame/audio/exidy.h b/src/mame/audio/exidy.h
index 429aeb6d26e..622cecae63e 100644
--- a/src/mame/audio/exidy.h
+++ b/src/mame/audio/exidy.h
@@ -60,15 +60,15 @@ private:
extern const device_type EXIDY_VICTORY;
-READ8_DEVICE_HANDLER( exidy_sh6840_r );
-WRITE8_DEVICE_HANDLER( exidy_sh6840_w );
-WRITE8_DEVICE_HANDLER( exidy_sfxctrl_w );
+DECLARE_READ8_DEVICE_HANDLER( exidy_sh6840_r );
+DECLARE_WRITE8_DEVICE_HANDLER( exidy_sh6840_w );
+DECLARE_WRITE8_DEVICE_HANDLER( exidy_sfxctrl_w );
MACHINE_CONFIG_EXTERN( venture_audio );
MACHINE_CONFIG_EXTERN( mtrap_cvsd_audio );
MACHINE_CONFIG_EXTERN( victory_audio );
-READ8_DEVICE_HANDLER( victory_sound_response_r );
-READ8_DEVICE_HANDLER( victory_sound_status_r );
-WRITE8_DEVICE_HANDLER( victory_sound_command_w );
+DECLARE_READ8_DEVICE_HANDLER( victory_sound_response_r );
+DECLARE_READ8_DEVICE_HANDLER( victory_sound_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( victory_sound_command_w );
diff --git a/src/mame/audio/firetrk.c b/src/mame/audio/firetrk.c
index 21e5178b7f1..63c02d0e94c 100644
--- a/src/mame/audio/firetrk.c
+++ b/src/mame/audio/firetrk.c
@@ -16,50 +16,50 @@ WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w )
state->m_skid[1] = 0;
// also SUPERBUG_SKID_EN
- discrete_sound_w(device, FIRETRUCK_SKID_EN, 1);
+ discrete_sound_w(device, space, FIRETRUCK_SKID_EN, 1);
}
WRITE8_DEVICE_HANDLER( montecar_skid_reset_w )
{
- discrete_sound_w(device, MONTECAR_SKID_EN, 1);
+ discrete_sound_w(device, space, MONTECAR_SKID_EN, 1);
}
WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w )
{
// also SUPERBUG_CRASH_DATA and MONTECAR_CRASH_DATA
- discrete_sound_w(device, FIRETRUCK_CRASH_DATA, data >> 4);
+ discrete_sound_w(device, space, FIRETRUCK_CRASH_DATA, data >> 4);
}
WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w )
{
// also SUPERBUG_SKID_EN and MONTECAR_SKID_EN
- discrete_sound_w(device, FIRETRUCK_SKID_EN, 0);
+ discrete_sound_w(device, space, FIRETRUCK_SKID_EN, 0);
}
WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w )
{
// also MONTECAR_DRONE_MOTOR_DATA
- discrete_sound_w(device, FIRETRUCK_SIREN_DATA, data >> 4);
+ discrete_sound_w(device, space, FIRETRUCK_SIREN_DATA, data >> 4);
// also MONTECAR_MOTOR_DATA
- discrete_sound_w(device, FIRETRUCK_MOTOR_DATA, data & 0x0f);
+ discrete_sound_w(device, space, FIRETRUCK_MOTOR_DATA, data & 0x0f);
}
WRITE8_DEVICE_HANDLER( superbug_motor_snd_w )
{
- discrete_sound_w(device, SUPERBUG_SPEED_DATA, data & 0x0f);
+ discrete_sound_w(device, space, SUPERBUG_SPEED_DATA, data & 0x0f);
}
WRITE8_DEVICE_HANDLER( firetrk_xtndply_w )
{
// also SUPERBUG_ASR_EN (extended play)
- discrete_sound_w(device, FIRETRUCK_XTNDPLY_EN, data);
+ discrete_sound_w(device, space, FIRETRUCK_XTNDPLY_EN, data);
}
diff --git a/src/mame/audio/galaxian.c b/src/mame/audio/galaxian.c
index 951861f711f..f7c6bea24da 100644
--- a/src/mame/audio/galaxian.c
+++ b/src/mame/audio/galaxian.c
@@ -408,7 +408,7 @@ static SOUND_START(galaxian)
/* IC 9J */
WRITE8_DEVICE_HANDLER( galaxian_pitch_w )
{
- discrete_sound_w(device, GAL_INP_PITCH, data );
+ discrete_sound_w(device, space, GAL_INP_PITCH, data );
}
WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w )
@@ -418,29 +418,29 @@ WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w )
if (lfo_val != lfo_val_new)
{
lfo_val = lfo_val_new;
- discrete_sound_w(device, GAL_INP_BG_DAC, lfo_val);
+ discrete_sound_w(device, space, GAL_INP_BG_DAC, lfo_val);
}
}
WRITE8_DEVICE_HANDLER( galaxian_background_enable_w )
{
- discrete_sound_w(device, NODE_RELATIVE(GAL_INP_FS1, offset), data & 0x01);
+ discrete_sound_w(device, space, NODE_RELATIVE(GAL_INP_FS1, offset), data & 0x01);
}
WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w )
{
- discrete_sound_w(device, GAL_INP_HIT, data & 0x01);
+ discrete_sound_w(device, space, GAL_INP_HIT, data & 0x01);
}
WRITE8_DEVICE_HANDLER( galaxian_vol_w )
{
- discrete_sound_w(device, NODE_RELATIVE(GAL_INP_VOL1,offset), data & 0x01);
+ discrete_sound_w(device, space, NODE_RELATIVE(GAL_INP_VOL1,offset), data & 0x01);
}
/* FIXME: rename to fire to be consistent */
WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w )
{
- discrete_sound_w(device, GAL_INP_FIRE, data & 0x01);
+ discrete_sound_w(device, space, GAL_INP_FIRE, data & 0x01);
}
/* FIXME: May be replaced by one call! */
@@ -452,23 +452,23 @@ WRITE8_DEVICE_HANDLER( galaxian_sound_w )
case 0: /* FS1 (controls 555 timer at 8R) */
case 1: /* FS2 (controls 555 timer at 8S) */
case 2: /* FS3 (controls 555 timer at 8T) */
- galaxian_background_enable_w(device, offset, data);
+ galaxian_background_enable_w(device, space, offset, data);
break;
case 3: /* HIT */
- galaxian_noise_enable_w(device, 0, data);
+ galaxian_noise_enable_w(device, space, 0, data);
break;
case 4: /* n/c */
break;
case 5: /* FIRE */
- galaxian_shoot_enable_w(device, 0, data);
+ galaxian_shoot_enable_w(device, space, 0, data);
break;
case 6: /* VOL1 */
case 7: /* VOL2 */
- galaxian_vol_w(device, offset & 1, data);
+ galaxian_vol_w(device, space, offset & 1, data);
break;
}
}
diff --git a/src/mame/audio/galaxian.h b/src/mame/audio/galaxian.h
index bd586385bc4..be423de6a3b 100644
--- a/src/mame/audio/galaxian.h
+++ b/src/mame/audio/galaxian.h
@@ -3,11 +3,11 @@
MACHINE_CONFIG_EXTERN( mooncrst_audio );
MACHINE_CONFIG_EXTERN( galaxian_audio );
-WRITE8_DEVICE_HANDLER( galaxian_sound_w );
-WRITE8_DEVICE_HANDLER( galaxian_pitch_w );
-WRITE8_DEVICE_HANDLER( galaxian_vol_w );
-WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w );
-WRITE8_DEVICE_HANDLER( galaxian_background_enable_w );
-WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w );
-WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_pitch_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_vol_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_noise_enable_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_background_enable_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_shoot_enable_w );
+DECLARE_WRITE8_DEVICE_HANDLER( galaxian_lfo_freq_w );
diff --git a/src/mame/audio/gottlieb.c b/src/mame/audio/gottlieb.c
index 35112571361..be38034f0fb 100644
--- a/src/mame/audio/gottlieb.c
+++ b/src/mame/audio/gottlieb.c
@@ -772,9 +772,9 @@ WRITE8_MEMBER( gottlieb_sound_r2_device::speech_control_w )
// bit 3 selects which of the two 8913 to enable
// bit 4 goes to the 8913 BC1 pin
if ((data & 0x08) != 0)
- ay8910_data_address_w(m_ay1, data >> 4, m_psg_latch);
+ ay8910_data_address_w(m_ay1, space, data >> 4, m_psg_latch);
else
- ay8910_data_address_w(m_ay2, data >> 4, m_psg_latch);
+ ay8910_data_address_w(m_ay2, space, data >> 4, m_psg_latch);
}
}
else
@@ -786,8 +786,8 @@ WRITE8_MEMBER( gottlieb_sound_r2_device::speech_control_w )
else
{
ay8913_device *ay = (data & 0x08) ? m_ay1 : m_ay2;
- ay8910_address_w(ay, 0, m_psg_latch);
- ay8910_data_w(ay, 0, m_psg_data_latch);
+ ay8910_address_w(ay, space, 0, m_psg_latch);
+ ay8910_data_w(ay, space, 0, m_psg_data_latch);
}
}
@@ -795,7 +795,7 @@ WRITE8_MEMBER( gottlieb_sound_r2_device::speech_control_w )
// bit 6 = speech chip DATA PRESENT pin; high then low to make the chip read data
if ((previous & 0x40) == 0 && (data & 0x40) != 0)
- sp0250_w(m_sp0250, 0, m_sp0250_latch);
+ sp0250_w(m_sp0250, space, 0, m_sp0250_latch);
// bit 7 goes to the speech chip RESET pin
if ((previous ^ data) & 0x80)
diff --git a/src/mame/audio/hyprolyb.h b/src/mame/audio/hyprolyb.h
index 1e20f7f2df7..d2145720d7b 100644
--- a/src/mame/audio/hyprolyb.h
+++ b/src/mame/audio/hyprolyb.h
@@ -1,5 +1,5 @@
-WRITE8_DEVICE_HANDLER( hyprolyb_adpcm_w );
-READ8_DEVICE_HANDLER( hyprolyb_adpcm_busy_r );
+DECLARE_WRITE8_DEVICE_HANDLER( hyprolyb_adpcm_w );
+DECLARE_READ8_DEVICE_HANDLER( hyprolyb_adpcm_busy_r );
MACHINE_CONFIG_EXTERN( hyprolyb_adpcm );
diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c
index 037b361c168..0edf0d3a374 100644
--- a/src/mame/audio/irem.c
+++ b/src/mame/audio/irem.c
@@ -98,17 +98,17 @@ static WRITE8_DEVICE_HANDLER( m6803_port2_w )
{
/* PSG 0 or 1? */
if (state->m_port2 & 0x08)
- ay8910_address_w(state->m_ay1, 0, state->m_port1);
+ ay8910_address_w(state->m_ay1, space, 0, state->m_port1);
if (state->m_port2 & 0x10)
- ay8910_address_w(state->m_ay2, 0, state->m_port1);
+ ay8910_address_w(state->m_ay2, space, 0, state->m_port1);
}
else
{
/* PSG 0 or 1? */
if (state->m_port2 & 0x08)
- ay8910_data_w(state->m_ay1, 0, state->m_port1);
+ ay8910_data_w(state->m_ay1, space, 0, state->m_port1);
if (state->m_port2 & 0x10)
- ay8910_data_w(state->m_ay2, 0, state->m_port1);
+ ay8910_data_w(state->m_ay2, space, 0, state->m_port1);
}
}
state->m_port2 = data;
@@ -128,9 +128,9 @@ static READ8_DEVICE_HANDLER( m6803_port1_r )
/* PSG 0 or 1? */
if (state->m_port2 & 0x08)
- return ay8910_r(state->m_ay1, 0);
+ return ay8910_r(state->m_ay1, space, 0);
if (state->m_port2 & 0x10)
- return ay8910_r(state->m_ay2, 0);
+ return ay8910_r(state->m_ay2, space, 0);
return 0xff;
}
diff --git a/src/mame/audio/jedi.c b/src/mame/audio/jedi.c
index 989d6ba994f..6aeaf97e0ee 100644
--- a/src/mame/audio/jedi.c
+++ b/src/mame/audio/jedi.c
@@ -143,7 +143,7 @@ WRITE8_MEMBER(jedi_state::speech_strobe_w)
if ((new_speech_strobe_state != m_speech_strobe_state) && new_speech_strobe_state)
{
device_t *tms = machine().device("tms");
- tms5220_data_w(tms, 0, *m_speech_data);
+ tms5220_data_w(tms, space, 0, *m_speech_data);
}
m_speech_strobe_state = new_speech_strobe_state;
}
diff --git a/src/mame/audio/leland.c b/src/mame/audio/leland.c
index 5c3ddd2bdd9..6e365ab4d63 100644
--- a/src/mame/audio/leland.c
+++ b/src/mame/audio/leland.c
@@ -307,8 +307,8 @@ void leland_dac_update(device_t *device, int dacnum, UINT8 sample)
static void set_dac_frequency(leland_sound_state *state, int which, int frequency);
-static READ16_DEVICE_HANDLER( peripheral_r );
-static WRITE16_DEVICE_HANDLER( peripheral_w );
+static DECLARE_READ16_DEVICE_HANDLER( peripheral_r );
+static DECLARE_WRITE16_DEVICE_HANDLER( peripheral_w );
@@ -1441,9 +1441,9 @@ static WRITE16_DEVICE_HANDLER( i80186_internal_port_w )
/* handle partials */
if (!ACCESSING_BITS_8_15)
- data = (i80186_internal_port_r(device, offset, 0xff00) & 0xff00) | (data & 0x00ff);
+ data = (i80186_internal_port_r(device, space, offset, 0xff00) & 0xff00) | (data & 0x00ff);
else if (!ACCESSING_BITS_0_7)
- data = (i80186_internal_port_r(device, offset, 0x00ff) & 0x00ff) | (data & 0xff00);
+ data = (i80186_internal_port_r(device, space, offset, 0x00ff) & 0x00ff) | (data & 0xff00);
switch (offset)
{
@@ -2118,13 +2118,13 @@ static WRITE16_DEVICE_HANDLER( ataxx_dac_control )
case 0x01:
case 0x02:
if (ACCESSING_BITS_0_7)
- dac_w(device, offset, data, 0x00ff);
+ dac_w(device, space, offset, data, 0x00ff);
return;
case 0x03:
- dac_w(device, 0, ((data << 13) & 0xe000) | ((data << 10) & 0x1c00) | ((data << 7) & 0x0300), 0xff00);
- dac_w(device, 2, ((data << 10) & 0xe000) | ((data << 7) & 0x1c00) | ((data << 4) & 0x0300), 0xff00);
- dac_w(device, 4, ((data << 8) & 0xc000) | ((data << 6) & 0x3000) | ((data << 4) & 0x0c00) | ((data << 2) & 0x0300), 0xff00);
+ dac_w(device, space, 0, ((data << 13) & 0xe000) | ((data << 10) & 0x1c00) | ((data << 7) & 0x0300), 0xff00);
+ dac_w(device, space, 2, ((data << 10) & 0xe000) | ((data << 7) & 0x1c00) | ((data << 4) & 0x0300), 0xff00);
+ dac_w(device, space, 4, ((data << 8) & 0xc000) | ((data << 6) & 0x3000) | ((data << 4) & 0x0c00) | ((data << 2) & 0x0300), 0xff00);
return;
}
@@ -2159,7 +2159,7 @@ static WRITE16_DEVICE_HANDLER( ataxx_dac_control )
return;
case 0x21:
- dac_w(device, offset - 0x21 + 7, data, mem_mask);
+ dac_w(device, space, offset - 0x21 + 7, data, mem_mask);
return;
}
}
@@ -2195,20 +2195,20 @@ static READ16_DEVICE_HANDLER( peripheral_r )
return ((state->m_clock_active << 1) & 0x7e);
case 1:
- return main_to_sound_comm_r(device, offset, mem_mask);
+ return main_to_sound_comm_r(device, space, offset, mem_mask);
case 2:
- return pit8254_r(device, offset, mem_mask);
+ return pit8254_r(device, space, offset, mem_mask);
case 3:
if (!state->m_has_ym2151)
- return pit8254_r(device, offset | 0x40, mem_mask);
+ return pit8254_r(device, space, offset | 0x40, mem_mask);
else
- return ym2151_r(device->machine().device("ymsnd"), offset);
+ return ym2151_r(device->machine().device("ymsnd"), space, offset);
case 4:
if (state->m_is_redline)
- return pit8254_r(device, offset | 0x80, mem_mask);
+ return pit8254_r(device, space, offset | 0x80, mem_mask);
else
logerror("%05X:Unexpected peripheral read %d/%02X\n", state->m_i80186.cpu->safe_pc(), select, offset*2);
break;
@@ -2230,29 +2230,29 @@ static WRITE16_DEVICE_HANDLER( peripheral_w )
switch (select)
{
case 1:
- sound_to_main_comm_w(device, offset, data, mem_mask);
+ sound_to_main_comm_w(device, space, offset, data, mem_mask);
break;
case 2:
- pit8254_w(device, offset, data, mem_mask);
+ pit8254_w(device, space, offset, data, mem_mask);
break;
case 3:
if (!state->m_has_ym2151)
- pit8254_w(device, offset | 0x40, data, mem_mask);
+ pit8254_w(device, space, offset | 0x40, data, mem_mask);
else
- ym2151_w(device->machine().device("ymsnd"), offset, data);
+ ym2151_w(device->machine().device("ymsnd"), space, offset, data);
break;
case 4:
if (state->m_is_redline)
- pit8254_w(device, offset | 0x80, data, mem_mask);
+ pit8254_w(device, space, offset | 0x80, data, mem_mask);
else
- dac_10bit_w(device, offset, data, mem_mask);
+ dac_10bit_w(device, space, offset, data, mem_mask);
break;
case 5: /* Ataxx/WSF/Indy Heat only */
- ataxx_dac_control(device, offset, data, mem_mask);
+ ataxx_dac_control(device, space, offset, data, mem_mask);
break;
default:
@@ -2276,7 +2276,7 @@ WRITE8_DEVICE_HANDLER( ataxx_80186_control_w )
((data & 0x02) << 5) |
((data & 0x04) << 3) |
((data & 0x08) << 1);
- leland_80186_control_w(device, offset, modified);
+ leland_80186_control_w(device, space, offset, modified);
}
diff --git a/src/mame/audio/llander.c b/src/mame/audio/llander.c
index 0c5f67b80be..085bc9426ff 100644
--- a/src/mame/audio/llander.c
+++ b/src/mame/audio/llander.c
@@ -83,14 +83,14 @@ DISCRETE_SOUND_END
WRITE8_DEVICE_HANDLER( llander_snd_reset_w )
{
/* Resets the LFSR that is used for the white noise generator */
- discrete_sound_w(device, LLANDER_NOISE_RESET, 0); /* Reset */
+ discrete_sound_w(device, space, LLANDER_NOISE_RESET, 0); /* Reset */
}
WRITE8_DEVICE_HANDLER( llander_sounds_w )
{
- discrete_sound_w(device, LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */
- discrete_sound_w(device, LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */
- discrete_sound_w(device, LLANDER_TONE6K_EN, data & 0x20); /* Tone 6KHz enable */
- discrete_sound_w(device, LLANDER_EXPLOD_EN, data & 0x08); /* Explosion */
+ discrete_sound_w(device, space, LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */
+ discrete_sound_w(device, space, LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */
+ discrete_sound_w(device, space, LLANDER_TONE6K_EN, data & 0x20); /* Tone 6KHz enable */
+ discrete_sound_w(device, space, LLANDER_EXPLOD_EN, data & 0x08); /* Explosion */
}
diff --git a/src/mame/audio/m72.h b/src/mame/audio/m72.h
index 5713dd3f4b2..52513f2e4ca 100644
--- a/src/mame/audio/m72.h
+++ b/src/mame/audio/m72.h
@@ -5,18 +5,18 @@
****************************************************************************/
void m72_ym2151_irq_handler(device_t *device, int irq);
-WRITE8_DEVICE_HANDLER( m72_sound_command_byte_w );
-WRITE16_DEVICE_HANDLER( m72_sound_command_w );
-WRITE8_DEVICE_HANDLER( m72_sound_irq_ack_w );
-READ8_DEVICE_HANDLER( m72_sample_r );
-WRITE8_DEVICE_HANDLER( m72_sample_w );
+DECLARE_WRITE8_DEVICE_HANDLER( m72_sound_command_byte_w );
+DECLARE_WRITE16_DEVICE_HANDLER( m72_sound_command_w );
+DECLARE_WRITE8_DEVICE_HANDLER( m72_sound_irq_ack_w );
+DECLARE_READ8_DEVICE_HANDLER( m72_sample_r );
+DECLARE_WRITE8_DEVICE_HANDLER( m72_sample_w );
/* the port goes to different address bits depending on the game */
void m72_set_sample_start(device_t *device, int start);
-WRITE8_DEVICE_HANDLER( vigilant_sample_addr_w );
-WRITE8_DEVICE_HANDLER( shisen_sample_addr_w );
-WRITE8_DEVICE_HANDLER( rtype2_sample_addr_w );
-WRITE8_DEVICE_HANDLER( poundfor_sample_addr_w );
+DECLARE_WRITE8_DEVICE_HANDLER( vigilant_sample_addr_w );
+DECLARE_WRITE8_DEVICE_HANDLER( shisen_sample_addr_w );
+DECLARE_WRITE8_DEVICE_HANDLER( rtype2_sample_addr_w );
+DECLARE_WRITE8_DEVICE_HANDLER( poundfor_sample_addr_w );
class m72_audio_device : public device_t,
public device_sound_interface
diff --git a/src/mame/audio/m79amb.c b/src/mame/audio/m79amb.c
index 65f28e4009c..bbdf646a486 100644
--- a/src/mame/audio/m79amb.c
+++ b/src/mame/audio/m79amb.c
@@ -325,9 +325,9 @@ WRITE8_DEVICE_HANDLER( m79amb_8000_w )
/* these values are not latched */
/* they are pulsed when the port is addressed */
/* the discrete system will just trigger from them */
- discrete_sound_w(device, M79AMB_SHOT_EN, data & 0x01);
- discrete_sound_w(device, M79AMB_BOOM_EN, data & 0x02);
- discrete_sound_w(device, M79AMB_THUD_EN, data & 0x04);
+ discrete_sound_w(device, space, M79AMB_SHOT_EN, data & 0x01);
+ discrete_sound_w(device, space, M79AMB_BOOM_EN, data & 0x02);
+ discrete_sound_w(device, space, M79AMB_THUD_EN, data & 0x04);
};
WRITE8_DEVICE_HANDLER( m79amb_8003_w )
@@ -335,9 +335,9 @@ WRITE8_DEVICE_HANDLER( m79amb_8003_w )
/* Self Test goes low on reset and lights LED */
/* LED goes off on pass */
output_set_value("SELF_TEST", data & 0x01);
- discrete_sound_w(device, M79AMB_MC_REV_EN, data & 0x02);
- discrete_sound_w(device, M79AMB_MC_CONTROL_EN, data & 0x04);
- discrete_sound_w(device, M79AMB_TANK_TRUCK_JEEP_EN, data & 0x08);
- discrete_sound_w(device, M79AMB_WHISTLE_B_EN, data & 0x10);
- discrete_sound_w(device, M79AMB_WHISTLE_A_EN, data & 0x20);
+ discrete_sound_w(device, space, M79AMB_MC_REV_EN, data & 0x02);
+ discrete_sound_w(device, space, M79AMB_MC_CONTROL_EN, data & 0x04);
+ discrete_sound_w(device, space, M79AMB_TANK_TRUCK_JEEP_EN, data & 0x08);
+ discrete_sound_w(device, space, M79AMB_WHISTLE_B_EN, data & 0x10);
+ discrete_sound_w(device, space, M79AMB_WHISTLE_A_EN, data & 0x20);
}
diff --git a/src/mame/audio/mario.c b/src/mame/audio/mario.c
index bb798c19d4b..17fa2036076 100644
--- a/src/mame/audio/mario.c
+++ b/src/mame/audio/mario.c
@@ -494,7 +494,7 @@ READ8_MEMBER(mario_state::mario_sh_tune_r)
static WRITE8_DEVICE_HANDLER( mario_sh_sound_w )
{
- discrete_sound_w(device, DS_DAC, data);
+ discrete_sound_w(device, space, DS_DAC, data);
}
WRITE8_MEMBER(mario_state::mario_sh_p1_w)
@@ -536,13 +536,13 @@ WRITE8_MEMBER(mario_state::mario_sh_tuneselect_w)
/* Mario running sample */
WRITE8_DEVICE_HANDLER( mario_sh1_w )
{
- discrete_sound_w(device, DS_SOUND0_INP, 0);
+ discrete_sound_w(device, space, DS_SOUND0_INP, 0);
}
/* Luigi running sample */
WRITE8_DEVICE_HANDLER( mario_sh2_w )
{
- discrete_sound_w(device, DS_SOUND1_INP, 0);
+ discrete_sound_w(device, space, DS_SOUND1_INP, 0);
}
/* Misc samples */
@@ -576,7 +576,7 @@ WRITE8_MEMBER(mario_state::mario_sh3_w)
I8035_P1_W_AH(space, 3, data & 1);
break;
case 7: /* skid */
- discrete_sound_w(machine().device("discrete"), DS_SOUND7_INP, data & 1);
+ discrete_sound_w(machine().device("discrete"), space, DS_SOUND7_INP, data & 1);
break;
}
}
diff --git a/src/mame/audio/micro3d.c b/src/mame/audio/micro3d.c
index 6dcab28d934..55c856ebac3 100644
--- a/src/mame/audio/micro3d.c
+++ b/src/mame/audio/micro3d.c
@@ -395,7 +395,7 @@ READ8_MEMBER(micro3d_state::micro3d_sound_io_r)
WRITE8_DEVICE_HANDLER( micro3d_upd7759_w )
{
- upd7759_port_w(device, 0, data);
+ upd7759_port_w(device, space, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/audio/midway.c b/src/mame/audio/midway.c
index c80c6b1c09a..cf3339c0ab9 100644
--- a/src/mame/audio/midway.c
+++ b/src/mame/audio/midway.c
@@ -1198,7 +1198,7 @@ WRITE8_MEMBER(midway_squawk_n_talk_device::portb2_w)
// write strobe -- pass the current command to the TMS5200
if (((data ^ m_tms_strobes) & 0x02) && !(data & 0x02))
{
- tms5220_data_w(m_tms5200, offset, m_tms_command);
+ tms5220_data_w(m_tms5200, space, offset, m_tms_command);
// DoT expects the ready line to transition on a command/write here, so we oblige
m_pia1->ca2_w(1);
@@ -1208,7 +1208,7 @@ WRITE8_MEMBER(midway_squawk_n_talk_device::portb2_w)
// read strobe -- read the current status from the TMS5200
else if (((data ^ m_tms_strobes) & 0x01) && !(data & 0x01))
{
- m_pia1->porta_w(tms5220_status_r(m_tms5200, offset));
+ m_pia1->porta_w(tms5220_status_r(m_tms5200, space, offset));
// DoT expects the ready line to transition on a command/write here, so we oblige
m_pia1->ca2_w(1);
diff --git a/src/mame/audio/mw8080bw.c b/src/mame/audio/mw8080bw.c
index bc59822faff..558e009a358 100644
--- a/src/mame/audio/mw8080bw.c
+++ b/src/mame/audio/mw8080bw.c
@@ -85,9 +85,9 @@ static const discrete_op_amp_tvca_info midway_music_tvca_info =
WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w )
{
- discrete_sound_w(device, MIDWAY_TONE_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, MIDWAY_TONE_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, MIDWAY_TONE_DATA_L, (data >> 1) & 0x1f);
+ discrete_sound_w(device, space, MIDWAY_TONE_DATA_L, (data >> 1) & 0x1f);
/* D6 and D7 are not connected */
}
@@ -95,7 +95,7 @@ WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w )
WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w )
{
- discrete_sound_w(device, MIDWAY_TONE_DATA_H, data & 0x3f);
+ discrete_sound_w(device, space, MIDWAY_TONE_DATA_H, data & 0x3f);
/* D6 and D7 are not connected */
}
@@ -328,11 +328,11 @@ MACHINE_CONFIG_END
WRITE8_DEVICE_HANDLER( tornbase_audio_w )
{
- discrete_sound_w(device, TORNBASE_TONE_240_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, TORNBASE_TONE_240_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, TORNBASE_TONE_960_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, TORNBASE_TONE_960_EN, (data >> 1) & 0x01);
- discrete_sound_w(device, TORNBASE_TONE_120_EN, (data >> 2) & 0x01);
+ discrete_sound_w(device, space, TORNBASE_TONE_120_EN, (data >> 2) & 0x01);
/* if (data & 0x08) enable SIREN sound */
@@ -577,17 +577,18 @@ void maze_write_discrete(device_t *device, UINT8 maze_tone_timing_state)
/* controls need to be active low */
int controls = ~device->machine().root_device().ioport("IN0")->read() & 0xff;
- discrete_sound_w(device, MAZE_TONE_TIMING, maze_tone_timing_state);
- discrete_sound_w(device, MAZE_P1_DATA, controls & 0x0f);
- discrete_sound_w(device, MAZE_P2_DATA, (controls >> 4) & 0x0f);
- discrete_sound_w(device, MAZE_JOYSTICK_IN_USE, controls != 0xff);
+ address_space &space = device->machine().driver_data()->generic_space();
+ discrete_sound_w(device, space, MAZE_TONE_TIMING, maze_tone_timing_state);
+ discrete_sound_w(device, space, MAZE_P1_DATA, controls & 0x0f);
+ discrete_sound_w(device, space, MAZE_P2_DATA, (controls >> 4) & 0x0f);
+ discrete_sound_w(device, space, MAZE_JOYSTICK_IN_USE, controls != 0xff);
/* The coin line is connected directly to the discrete circuit. */
/* We can't really do that, so updating it with the tone timing is close enough. */
/* A better option might be to update it at vblank or set a timer to do it. */
/* The only noticeable difference doing it here, is that the controls don't */
/* immediately start making tones if pressed right after the coin is inserted. */
- discrete_sound_w(device, MAZE_COIN, (~device->machine().root_device().ioport("IN1")->read() >> 3) & 0x01);
+ discrete_sound_w(device, space, MAZE_COIN, (~device->machine().root_device().ioport("IN1")->read() >> 3) & 0x01);
}
@@ -825,15 +826,15 @@ WRITE8_DEVICE_HANDLER( boothill_audio_w )
coin_counter_w(device->machine(), 0, (data >> 2) & 0x01);
- discrete_sound_w(device, BOOTHILL_GAME_ON_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, BOOTHILL_GAME_ON_EN, (data >> 3) & 0x01);
- discrete_sound_w(device, BOOTHILL_LEFT_SHOT_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, BOOTHILL_LEFT_SHOT_EN, (data >> 4) & 0x01);
- discrete_sound_w(device, BOOTHILL_RIGHT_SHOT_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, BOOTHILL_RIGHT_SHOT_EN, (data >> 5) & 0x01);
- discrete_sound_w(device, BOOTHILL_LEFT_HIT_EN, (data >> 6) & 0x01);
+ discrete_sound_w(device, space, BOOTHILL_LEFT_HIT_EN, (data >> 6) & 0x01);
- discrete_sound_w(device, BOOTHILL_RIGHT_HIT_EN, (data >> 7) & 0x01);
+ discrete_sound_w(device, space, BOOTHILL_RIGHT_HIT_EN, (data >> 7) & 0x01);
}
@@ -1050,16 +1051,16 @@ MACHINE_CONFIG_END
WRITE8_DEVICE_HANDLER( checkmat_audio_w )
{
- discrete_sound_w(device, CHECKMAT_TONE_EN, data & 0x01);
+ discrete_sound_w(device, space, CHECKMAT_TONE_EN, data & 0x01);
- discrete_sound_w(device, CHECKMAT_BOOM_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, CHECKMAT_BOOM_EN, (data >> 1) & 0x01);
coin_counter_w(device->machine(), 0, (data >> 2) & 0x01);
device->machine().sound().system_enable((data >> 3) & 0x01);
- discrete_sound_w(device, CHECKMAT_TONE_DATA_45, (data >> 4) & 0x03);
- discrete_sound_w(device, CHECKMAT_TONE_DATA_67, (data >> 6) & 0x03);
+ discrete_sound_w(device, space, CHECKMAT_TONE_DATA_45, (data >> 4) & 0x03);
+ discrete_sound_w(device, space, CHECKMAT_TONE_DATA_67, (data >> 6) & 0x03);
}
@@ -1265,15 +1266,15 @@ WRITE8_DEVICE_HANDLER( desertgu_audio_1_w )
coin_counter_w(device->machine(), 0, (data >> 2) & 0x01);
- discrete_sound_w(device, DESERTGU_GAME_ON_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_GAME_ON_EN, (data >> 3) & 0x01);
- discrete_sound_w(device, DESERTGU_RIFLE_SHOT_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_RIFLE_SHOT_EN, (data >> 4) & 0x01);
- discrete_sound_w(device, DESERTGU_BOTTLE_HIT_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_BOTTLE_HIT_EN, (data >> 5) & 0x01);
- discrete_sound_w(device, DESERTGU_ROAD_RUNNER_HIT_EN, (data >> 6) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_ROAD_RUNNER_HIT_EN, (data >> 6) & 0x01);
- discrete_sound_w(device, DESERTGU_CREATURE_HIT_EN, (data >> 7) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_CREATURE_HIT_EN, (data >> 7) & 0x01);
}
@@ -1281,9 +1282,9 @@ WRITE8_DEVICE_HANDLER( desertgu_audio_2_w )
{
mw8080bw_state *state = device->machine().driver_data<mw8080bw_state>();
- discrete_sound_w(device, DESERTGU_ROADRUNNER_BEEP_BEEP_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_ROADRUNNER_BEEP_BEEP_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, DESERTGU_TRIGGER_CLICK_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, DESERTGU_TRIGGER_CLICK_EN, (data >> 1) & 0x01);
output_set_value("Player1_Gun_Recoil", (data >> 2) & 0x01);
@@ -1528,15 +1529,15 @@ MACHINE_CONFIG_END
WRITE8_DEVICE_HANDLER( dplay_audio_w )
{
- discrete_sound_w(device, DPLAY_TONE_ON_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, DPLAY_TONE_ON_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, DPLAY_CHEER_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, DPLAY_CHEER_EN, (data >> 1) & 0x01);
- discrete_sound_w(device, DPLAY_SIREN_EN, (data >> 2) & 0x01);
+ discrete_sound_w(device, space, DPLAY_SIREN_EN, (data >> 2) & 0x01);
- discrete_sound_w(device, DPLAY_WHISTLE_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, DPLAY_WHISTLE_EN, (data >> 3) & 0x01);
- discrete_sound_w(device, DPLAY_GAME_ON_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, DPLAY_GAME_ON_EN, (data >> 4) & 0x01);
coin_counter_w(device->machine(), 0, (data >> 5) & 0x01);
@@ -1950,15 +1951,15 @@ WRITE8_DEVICE_HANDLER( clowns_audio_2_w )
mw8080bw_state *state = device->machine().driver_data<mw8080bw_state>();
UINT8 rising_bits = data & ~state->m_port_2_last;
- discrete_sound_w(device, CLOWNS_POP_BOTTOM_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, CLOWNS_POP_BOTTOM_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, CLOWNS_POP_MIDDLE_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, CLOWNS_POP_MIDDLE_EN, (data >> 1) & 0x01);
- discrete_sound_w(device, CLOWNS_POP_TOP_EN, (data >> 2) & 0x01);
+ discrete_sound_w(device, space, CLOWNS_POP_TOP_EN, (data >> 2) & 0x01);
device->machine().sound().system_enable((data >> 3) & 0x01);
- discrete_sound_w(device, CLOWNS_SPRINGBOARD_HIT_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, CLOWNS_SPRINGBOARD_HIT_EN, (data >> 4) & 0x01);
if (rising_bits & 0x20) state->m_samples->start(0, 0); /* springboard miss */
@@ -2311,22 +2312,22 @@ WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w )
device->machine().sound().system_enable((data >> 2) & 0x01);
- discrete_sound_w(device, SPACWALK_SPACE_SHIP_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_SPACE_SHIP_EN, (data >> 3) & 0x01);
}
WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w )
{
- discrete_sound_w(device, SPACWALK_TARGET_HIT_BOTTOM_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_TARGET_HIT_BOTTOM_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, SPACWALK_TARGET_HIT_MIDDLE_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_TARGET_HIT_MIDDLE_EN, (data >> 1) & 0x01);
- discrete_sound_w(device, SPACWALK_TARGET_HIT_TOP_EN, (data >> 2) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_TARGET_HIT_TOP_EN, (data >> 2) & 0x01);
- discrete_sound_w(device, SPACWALK_SPRINGBOARD_HIT1_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_HIT1_EN, (data >> 3) & 0x01);
- discrete_sound_w(device, SPACWALK_SPRINGBOARD_HIT2_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_HIT2_EN, (data >> 4) & 0x01);
- discrete_sound_w(device, SPACWALK_SPRINGBOARD_MISS_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, SPACWALK_SPRINGBOARD_MISS_EN, (data >> 5) & 0x01);
}
@@ -2535,17 +2536,17 @@ MACHINE_CONFIG_END
WRITE8_DEVICE_HANDLER( shuffle_audio_1_w )
{
- discrete_sound_w(device, SHUFFLE_CLICK_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, SHUFFLE_CLICK_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, SHUFFLE_ROLLOVER_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, SHUFFLE_ROLLOVER_EN, (data >> 1) & 0x01);
device->machine().sound().system_enable((data >> 2) & 0x01);
- discrete_sound_w(device, NODE_29, (data >> 3) & 0x07);
+ discrete_sound_w(device, space, NODE_29, (data >> 3) & 0x07);
- discrete_sound_w(device, SHUFFLE_ROLLING_3_EN, (data >> 3) & 0x01);
- discrete_sound_w(device, SHUFFLE_ROLLING_2_EN, (data >> 4) & 0x01);
- discrete_sound_w(device, SHUFFLE_ROLLING_1_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, SHUFFLE_ROLLING_3_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, SHUFFLE_ROLLING_2_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, SHUFFLE_ROLLING_1_EN, (data >> 5) & 0x01);
/* D6 and D7 are not connected */
}
@@ -2553,7 +2554,7 @@ WRITE8_DEVICE_HANDLER( shuffle_audio_1_w )
WRITE8_DEVICE_HANDLER( shuffle_audio_2_w )
{
- discrete_sound_w(device, SHUFFLE_FOUL_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, SHUFFLE_FOUL_EN, (data >> 0) & 0x01);
coin_counter_w(device->machine(), 0, (data >> 1) & 0x01);
@@ -2720,13 +2721,13 @@ WRITE8_DEVICE_HANDLER( dogpatch_audio_w )
coin_counter_w(device->machine(), 0, (data >> 2) & 0x01);
device->machine().sound().system_enable((data >> 3) & 0x01);
- discrete_sound_w(device, DOGPATCH_GAME_ON_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, DOGPATCH_GAME_ON_EN, (data >> 3) & 0x01);
- discrete_sound_w(device, DOGPATCH_LEFT_SHOT_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, DOGPATCH_LEFT_SHOT_EN, (data >> 4) & 0x01);
- discrete_sound_w(device, DOGPATCH_RIGHT_SHOT_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, DOGPATCH_RIGHT_SHOT_EN, (data >> 5) & 0x01);
- discrete_sound_w(device, DOGPATCH_HIT_EN, (data >> 6) & 0x01);
+ discrete_sound_w(device, space, DOGPATCH_HIT_EN, (data >> 6) & 0x01);
}
@@ -3258,7 +3259,7 @@ WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w )
/* D1 is marked as 'OPTIONAL SWITCH VIDEO FOR COCKTAIL',
but it is never set by the software */
- discrete_sound_w(device, SPCENCTR_CRASH_EN, (data >> 2) & 0x01);
+ discrete_sound_w(device, space, SPCENCTR_CRASH_EN, (data >> 2) & 0x01);
/* D3-D7 are not connected */
}
@@ -3270,9 +3271,9 @@ WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w )
/* set WIND SOUND FREQ(data & 0x0f) 0, if no wind */
- discrete_sound_w(device, SPCENCTR_EXPLOSION_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, SPCENCTR_EXPLOSION_EN, (data >> 4) & 0x01);
- discrete_sound_w(device, SPCENCTR_PLAYER_SHOT_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, SPCENCTR_PLAYER_SHOT_EN, (data >> 5) & 0x01);
/* D6 and D7 are not connected */
@@ -3286,13 +3287,13 @@ WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w )
/* if (data & 0x01) enable SCREECH (hit the sides) sound */
- discrete_sound_w(device, SPCENCTR_ENEMY_SHIP_SHOT_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, SPCENCTR_ENEMY_SHIP_SHOT_EN, (data >> 1) & 0x01);
state->m_spcenctr_strobe_state = (data >> 2) & 0x01;
output_set_value("LAMP", (data >> 3) & 0x01);
- discrete_sound_w(device, SPCENCTR_BONUS_EN, (data >> 4) & 0x01);
+ discrete_sound_w(device, space, SPCENCTR_BONUS_EN, (data >> 4) & 0x01);
sn76477_enable_w(state->m_sn, (data >> 5) & 0x01); /* saucer sound */
@@ -3468,7 +3469,7 @@ WRITE8_DEVICE_HANDLER( bowler_audio_1_w )
device->machine().sound().system_enable((data >> 2) & 0x01);
- discrete_sound_w(device, BOWLER_FOWL_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, BOWLER_FOWL_EN, (data >> 3) & 0x01);
/* D4 - appears to be a screen flip, but it's
shown unconnected on the schematics for both the
@@ -4189,10 +4190,10 @@ WRITE8_DEVICE_HANDLER( invaders_audio_1_w )
sn76477_enable_w(state->m_sn, (~data >> 0) & 0x01); /* saucer sound */
- discrete_sound_w(device, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10);
device->machine().sound().system_enable(data & 0x20);
@@ -4204,8 +4205,8 @@ WRITE8_DEVICE_HANDLER( invaders_audio_2_w )
{
mw8080bw_state *state = device->machine().driver_data<mw8080bw_state>();
- discrete_sound_w(device, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10);
/* the flip screen line is only connected on the cocktail PCB */
if (invaders_is_cabinet_cocktail(device->machine()))
@@ -4590,18 +4591,18 @@ MACHINE_CONFIG_END
WRITE8_DEVICE_HANDLER( blueshrk_audio_w )
{
- discrete_sound_w(device, BLUESHRK_GAME_ON_EN, (data >> 0) & 0x01);
+ discrete_sound_w(device, space, BLUESHRK_GAME_ON_EN, (data >> 0) & 0x01);
- discrete_sound_w(device, BLUESHRK_SHOT_EN, (data >> 1) & 0x01);
+ discrete_sound_w(device, space, BLUESHRK_SHOT_EN, (data >> 1) & 0x01);
- discrete_sound_w(device, BLUESHRK_HIT_EN, (data >> 2) & 0x01);
+ discrete_sound_w(device, space, BLUESHRK_HIT_EN, (data >> 2) & 0x01);
- discrete_sound_w(device, BLUESHRK_SHARK_EN, (data >> 3) & 0x01);
+ discrete_sound_w(device, space, BLUESHRK_SHARK_EN, (data >> 3) & 0x01);
/* if (data & 0x10) enable KILLED DIVER sound, this circuit
doesn't appear to be on the schematics */
- discrete_sound_w(device, BLUESHRK_OCTOPUS_EN, (data >> 5) & 0x01);
+ discrete_sound_w(device, space, BLUESHRK_OCTOPUS_EN, (data >> 5) & 0x01);
/* D6 and D7 are not connected */
}
@@ -4822,10 +4823,10 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w )
sn76477_enable_w(state->m_sn1, (~data >> 0) & 0x01); /* saucer sound */
- discrete_sound_w(device, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 1), data & 0x02);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 1), data & 0x04);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 1), data & 0x08);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 1), data & 0x10);
device->machine().sound().system_enable(data & 0x20);
@@ -4835,8 +4836,8 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w )
WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w )
{
- discrete_sound_w(device, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 1), data & 0x0f);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 1), data & 0x10);
/* D5-D7 are not connected */
}
@@ -4848,10 +4849,10 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w )
sn76477_enable_w(state->m_sn2, (~data >> 0) & 0x01); /* saucer sound */
- discrete_sound_w(device, INVADERS_NODE(INVADERS_MISSILE_EN, 2), data & 0x02);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_EXPLOSION_EN, 2), data & 0x04);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 2), data & 0x08);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 2), data & 0x10);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_MISSILE_EN, 2), data & 0x02);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_EXPLOSION_EN, 2), data & 0x04);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_INVADER_HIT_EN, 2), data & 0x08);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_BONUS_MISSLE_BASE_EN, 2), data & 0x10);
/* D5-D7 are not connected */
}
@@ -4859,8 +4860,8 @@ WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w )
WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w )
{
- discrete_sound_w(device, INVADERS_NODE(INVADERS_FLEET_DATA, 2), data & 0x0f);
- discrete_sound_w(device, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 2), data & 0x10);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_FLEET_DATA, 2), data & 0x0f);
+ discrete_sound_w(device, space, INVADERS_NODE(INVADERS_SAUCER_HIT_EN, 2), data & 0x10);
/* D5-D7 are not connected */
}
diff --git a/src/mame/audio/namco52.c b/src/mame/audio/namco52.c
index f3e76bd2132..29c20efa386 100644
--- a/src/mame/audio/namco52.c
+++ b/src/mame/audio/namco52.c
@@ -104,7 +104,7 @@ static READ8_HANDLER( namco_52xx_R1_r )
static WRITE8_HANDLER( namco_52xx_P_w )
{
namco_52xx_state *state = get_safe_token(space->device().owner());
- discrete_sound_w(state->m_discrete, NAMCO_52XX_P_DATA(state->m_basenode), data & 0x0f);
+ discrete_sound_w(state->m_discrete, *space, NAMCO_52XX_P_DATA(state->m_basenode), data & 0x0f);
}
static WRITE8_HANDLER( namco_52xx_R2_w )
diff --git a/src/mame/audio/namco52.h b/src/mame/audio/namco52.h
index 6c76a9a5d51..a338de3bc82 100644
--- a/src/mame/audio/namco52.h
+++ b/src/mame/audio/namco52.h
@@ -21,7 +21,7 @@ struct namco_52xx_interface
MCFG_DEVICE_CONFIG(_interface)
-WRITE8_DEVICE_HANDLER( namco_52xx_write );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_52xx_write );
class namco_52xx_device : public device_t
diff --git a/src/mame/audio/namco54.c b/src/mame/audio/namco54.c
index 691571884e3..b0028a5acba 100644
--- a/src/mame/audio/namco54.c
+++ b/src/mame/audio/namco54.c
@@ -93,9 +93,9 @@ static WRITE8_HANDLER( namco_54xx_O_w )
namco_54xx_state *state = get_safe_token(space->device().owner());
UINT8 out = (data & 0x0f);
if (data & 0x10)
- discrete_sound_w(state->m_discrete, NAMCO_54XX_1_DATA(state->m_basenode), out);
+ discrete_sound_w(state->m_discrete, *space, NAMCO_54XX_1_DATA(state->m_basenode), out);
else
- discrete_sound_w(state->m_discrete, NAMCO_54XX_0_DATA(state->m_basenode), out);
+ discrete_sound_w(state->m_discrete, *space, NAMCO_54XX_0_DATA(state->m_basenode), out);
}
static WRITE8_HANDLER( namco_54xx_R1_w )
@@ -103,7 +103,7 @@ static WRITE8_HANDLER( namco_54xx_R1_w )
namco_54xx_state *state = get_safe_token(space->device().owner());
UINT8 out = (data & 0x0f);
- discrete_sound_w(state->m_discrete, NAMCO_54XX_2_DATA(state->m_basenode), out);
+ discrete_sound_w(state->m_discrete, *space, NAMCO_54XX_2_DATA(state->m_basenode), out);
}
diff --git a/src/mame/audio/namco54.h b/src/mame/audio/namco54.h
index 69436b15804..17039a473e5 100644
--- a/src/mame/audio/namco54.h
+++ b/src/mame/audio/namco54.h
@@ -17,7 +17,7 @@ struct namco_54xx_config
MCFG_DEVICE_CONFIG(_config)
-WRITE8_DEVICE_HANDLER( namco_54xx_write );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_54xx_write );
class namco_54xx_device : public device_t
diff --git a/src/mame/audio/orbit.c b/src/mame/audio/orbit.c
index dab18b308db..9ebb838792b 100644
--- a/src/mame/audio/orbit.c
+++ b/src/mame/audio/orbit.c
@@ -15,24 +15,24 @@
WRITE8_DEVICE_HANDLER( orbit_note_w )
{
- discrete_sound_w(device, ORBIT_NOTE_FREQ, (~data) & 0xff);
+ discrete_sound_w(device, space, ORBIT_NOTE_FREQ, (~data) & 0xff);
}
WRITE8_DEVICE_HANDLER( orbit_note_amp_w )
{
- discrete_sound_w(device, ORBIT_ANOTE1_AMP, data & 0x0f);
- discrete_sound_w(device, ORBIT_ANOTE2_AMP, data >> 4);
+ discrete_sound_w(device, space, ORBIT_ANOTE1_AMP, data & 0x0f);
+ discrete_sound_w(device, space, ORBIT_ANOTE2_AMP, data >> 4);
}
WRITE8_DEVICE_HANDLER( orbit_noise_amp_w )
{
- discrete_sound_w(device, ORBIT_NOISE1_AMP, data & 0x0f);
- discrete_sound_w(device, ORBIT_NOISE2_AMP, data >> 4);
+ discrete_sound_w(device, space, ORBIT_NOISE1_AMP, data & 0x0f);
+ discrete_sound_w(device, space, ORBIT_NOISE2_AMP, data >> 4);
}
WRITE8_DEVICE_HANDLER( orbit_noise_rst_w )
{
- discrete_sound_w(device, ORBIT_NOISE_EN, 0);
+ discrete_sound_w(device, space, ORBIT_NOISE_EN, 0);
}
diff --git a/src/mame/audio/phoenix.c b/src/mame/audio/phoenix.c
index efc0b9dbaaa..12c6cf559f8 100644
--- a/src/mame/audio/phoenix.c
+++ b/src/mame/audio/phoenix.c
@@ -494,12 +494,12 @@ WRITE8_DEVICE_HANDLER( phoenix_sound_control_a_w )
{
phoenix_sound_state *state = get_safe_token(device);
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_2_DATA, data & 0x0f);
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_2_FREQ, (data & 0x30) >> 4);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_2_DATA, data & 0x0f);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_2_FREQ, (data & 0x30) >> 4);
#if 0
/* future handling of noise sounds */
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_3_EN , data & 0x40);
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_4_EN , data & 0x80);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_3_EN , data & 0x40);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_4_EN , data & 0x80);
#endif
state->m_channel->update();
state->m_sound_latch_a = data;
@@ -526,9 +526,9 @@ WRITE8_DEVICE_HANDLER( phoenix_sound_control_b_w )
{
phoenix_sound_state *state = get_safe_token(device);
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_1_DATA, data & 0x0f);
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_1_FILT, data & 0x20);
- discrete_sound_w(state->m_discrete, PHOENIX_EFFECT_1_FREQ, data & 0x10);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_1_DATA, data & 0x0f);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_1_FILT, data & 0x20);
+ discrete_sound_w(state->m_discrete, space, PHOENIX_EFFECT_1_FREQ, data & 0x10);
/* update the tune that the MM6221AA is playing */
mm6221aa_tune_w(state->m_tms, data >> 6);
diff --git a/src/mame/audio/pleiads.h b/src/mame/audio/pleiads.h
index 460727b9ef4..6c173920e74 100644
--- a/src/mame/audio/pleiads.h
+++ b/src/mame/audio/pleiads.h
@@ -1,6 +1,6 @@
-WRITE8_DEVICE_HANDLER( pleiads_sound_control_a_w );
-WRITE8_DEVICE_HANDLER( pleiads_sound_control_b_w );
-WRITE8_DEVICE_HANDLER( pleiads_sound_control_c_w );
+DECLARE_WRITE8_DEVICE_HANDLER( pleiads_sound_control_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( pleiads_sound_control_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( pleiads_sound_control_c_w );
class pleiads_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/audio/poolshrk.c b/src/mame/audio/poolshrk.c
index 4450bf83d58..b9730d4bfde 100644
--- a/src/mame/audio/poolshrk.c
+++ b/src/mame/audio/poolshrk.c
@@ -157,20 +157,20 @@ DISCRETE_SOUND_END
WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w )
{
- discrete_sound_w(device, POOLSHRK_SCRATCH_SND, offset & 1);
+ discrete_sound_w(device, space, POOLSHRK_SCRATCH_SND, offset & 1);
}
WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w )
{
- discrete_sound_w(device, POOLSHRK_SCORE_EN, 1); /* this will trigger the sound code for 1 sample */
+ discrete_sound_w(device, space, POOLSHRK_SCORE_EN, 1); /* this will trigger the sound code for 1 sample */
}
WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w )
{
- discrete_sound_w(device, POOLSHRK_CLICK_EN, 1); /* this will trigger the sound code for 1 sample */
+ discrete_sound_w(device, space, POOLSHRK_CLICK_EN, 1); /* this will trigger the sound code for 1 sample */
}
WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w )
{
- discrete_sound_w(device, POOLSHRK_BUMP_EN, offset & 1);
+ discrete_sound_w(device, space, POOLSHRK_BUMP_EN, offset & 1);
}
diff --git a/src/mame/audio/qix.c b/src/mame/audio/qix.c
index b41b6636758..cc3c6baf3fd 100644
--- a/src/mame/audio/qix.c
+++ b/src/mame/audio/qix.c
@@ -28,12 +28,12 @@ Audio handlers
static WRITE8_DEVICE_HANDLER( qix_dac_w )
{
- discrete_sound_w(device, QIX_DAC_DATA, data);
+ discrete_sound_w(device, space, QIX_DAC_DATA, data);
}
static WRITE8_DEVICE_HANDLER( qix_vol_w )
{
- discrete_sound_w(device, QIX_VOL_DATA, data);
+ discrete_sound_w(device, space, QIX_VOL_DATA, data);
}
diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c
index bd92e93b95b..9461d06dc93 100644
--- a/src/mame/audio/redalert.c
+++ b/src/mame/audio/redalert.c
@@ -86,7 +86,7 @@ static WRITE8_DEVICE_HANDLER( redalert_AY8910_w )
/* BC1=1, BDIR=0 : read from PSG */
case 0x01:
- state->m_ay8910_latch_1 = ay8910_r(device, 0);
+ state->m_ay8910_latch_1 = ay8910_r(device, space, 0);
break;
/* BC1=0, BDIR=1 : write to PSG */
@@ -94,7 +94,7 @@ static WRITE8_DEVICE_HANDLER( redalert_AY8910_w )
case 0x02:
case 0x03:
default:
- ay8910_data_address_w(device, data, state->m_ay8910_latch_2);
+ ay8910_data_address_w(device, space, data, state->m_ay8910_latch_2);
break;
}
}
@@ -310,28 +310,28 @@ static WRITE8_DEVICE_HANDLER( demoneye_ay8910_data_w )
{
case 0x00:
if (state->m_ay8910_latch_1 & 0x10)
- ay8910_data_w(ay1, 0, data);
+ ay8910_data_w(ay1, space, 0, data);
if (state->m_ay8910_latch_1 & 0x20)
- ay8910_data_w(ay2, 0, data);
+ ay8910_data_w(ay2, space, 0, data);
break;
case 0x01:
if (state->m_ay8910_latch_1 & 0x10)
- state->m_ay8910_latch_2 = ay8910_r(ay1, 0);
+ state->m_ay8910_latch_2 = ay8910_r(ay1, space, 0);
if (state->m_ay8910_latch_1 & 0x20)
- state->m_ay8910_latch_2 = ay8910_r(ay2, 0);
+ state->m_ay8910_latch_2 = ay8910_r(ay2, space, 0);
break;
case 0x03:
if (state->m_ay8910_latch_1 & 0x10)
- ay8910_address_w(ay1, 0, data);
+ ay8910_address_w(ay1, space, 0, data);
if (state->m_ay8910_latch_1 & 0x20)
- ay8910_address_w(ay2, 0, data);
+ ay8910_address_w(ay2, space, 0, data);
break;
diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c
index 377e04e259e..73adb292404 100644
--- a/src/mame/audio/scramble.c
+++ b/src/mame/audio/scramble.c
@@ -247,14 +247,14 @@ static WRITE8_DEVICE_HANDLER( ad2083_tms5110_ctrl_w )
{
static const int tbl[8] = {0,4,2,6,1,5,3,7};
- tmsprom_bit_w(device, 0, tbl[data & 0x07]);
+ tmsprom_bit_w(device, space, 0, tbl[data & 0x07]);
switch (data>>3)
{
case 0x01:
- tmsprom_rom_csq_w(device, 1, 0);
+ tmsprom_rom_csq_w(device, space, 1, 0);
break;
case 0x03:
- tmsprom_rom_csq_w(device, 0, 0);
+ tmsprom_rom_csq_w(device, space, 0, 0);
break;
case 0x00:
/* Rom 2 select */
diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c
index f0d1d6ef55a..120e413b329 100644
--- a/src/mame/audio/segag80r.c
+++ b/src/mame/audio/segag80r.c
@@ -376,8 +376,8 @@ WRITE8_MEMBER(segag80r_state::astrob_sound_w)
static SOUND_START( sega005 );
static STREAM_UPDATE( sega005_stream_update );
static TIMER_CALLBACK( sega005_auto_timer );
-static WRITE8_DEVICE_HANDLER( sega005_sound_a_w );
-static WRITE8_DEVICE_HANDLER( sega005_sound_b_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( sega005_sound_a_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( sega005_sound_b_w );
/*
005
@@ -783,14 +783,14 @@ WRITE8_MEMBER(segag80r_state::spaceod_sound_w)
*************************************/
static SOUND_START( monsterb );
-static WRITE8_DEVICE_HANDLER( monsterb_sound_a_w );
-static WRITE8_DEVICE_HANDLER( monsterb_sound_b_w );
-static READ8_DEVICE_HANDLER( n7751_status_r );
-static WRITE8_DEVICE_HANDLER( n7751_command_w );
-static WRITE8_DEVICE_HANDLER( n7751_rom_control_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( monsterb_sound_a_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( monsterb_sound_b_w );
+static DECLARE_READ8_DEVICE_HANDLER( n7751_status_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( n7751_command_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( n7751_rom_control_w );
-static WRITE8_DEVICE_HANDLER( n7751_p2_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( n7751_p2_w );
/*
@@ -1032,7 +1032,7 @@ static WRITE8_DEVICE_HANDLER( n7751_p2_w )
{
segag80r_state *state = device->machine().driver_data<segag80r_state>();
/* write to P2; low 4 bits go to 8243 */
- i8243_p2_w(device, offset, data & 0x0f);
+ i8243_p2_w(device, space, offset, data & 0x0f);
/* output of bit $80 indicates we are ready (1) or busy (0) */
/* no other outputs are used */
diff --git a/src/mame/audio/segasnd.h b/src/mame/audio/segasnd.h
index da998fa3abf..e5d63da0939 100644
--- a/src/mame/audio/segasnd.h
+++ b/src/mame/audio/segasnd.h
@@ -6,15 +6,15 @@
MACHINE_CONFIG_EXTERN( sega_speech_board );
-WRITE8_DEVICE_HANDLER( sega_speech_data_w );
-WRITE8_DEVICE_HANDLER( sega_speech_control_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sega_speech_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sega_speech_control_w );
MACHINE_CONFIG_EXTERN( sega_universal_sound_board );
MACHINE_CONFIG_EXTERN( sega_universal_sound_board_rom );
-READ8_DEVICE_HANDLER( sega_usb_status_r );
-WRITE8_DEVICE_HANDLER( sega_usb_data_w );
-READ8_DEVICE_HANDLER( sega_usb_ram_r );
-WRITE8_DEVICE_HANDLER( sega_usb_ram_w );
+DECLARE_READ8_DEVICE_HANDLER( sega_usb_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( sega_usb_data_w );
+DECLARE_READ8_DEVICE_HANDLER( sega_usb_ram_r );
+DECLARE_WRITE8_DEVICE_HANDLER( sega_usb_ram_w );
diff --git a/src/mame/audio/seibu.h b/src/mame/audio/seibu.h
index 13d3e6e3e03..cfe05eb4915 100644
--- a/src/mame/audio/seibu.h
+++ b/src/mame/audio/seibu.h
@@ -60,8 +60,8 @@ MACHINE_RESET( seibu_sound );
void seibu_sound_decrypt(running_machine &machine,const char *cpu,int length);
void seibu_adpcm_decrypt(running_machine &machine, const char *region);
-WRITE8_DEVICE_HANDLER( seibu_adpcm_adr_w );
-WRITE8_DEVICE_HANDLER( seibu_adpcm_ctl_w );
+DECLARE_WRITE8_DEVICE_HANDLER( seibu_adpcm_adr_w );
+DECLARE_WRITE8_DEVICE_HANDLER( seibu_adpcm_ctl_w );
class seibu_adpcm_device : public device_t,
public device_sound_interface
diff --git a/src/mame/audio/skyraid.c b/src/mame/audio/skyraid.c
index 9e11c7e1b2a..a4c725ff3e0 100644
--- a/src/mame/audio/skyraid.c
+++ b/src/mame/audio/skyraid.c
@@ -292,10 +292,10 @@ WRITE8_DEVICE_HANDLER( skyraid_sound_w )
/* BIT4 => PLANE ON */
/* BIT5 => ATTRACT */
- discrete_sound_w(device, SKYRAID_PLANE_SWEEP_EN, data & 0x01);
- discrete_sound_w(device, SKYRAID_MISSILE_EN, data & 0x02);
- discrete_sound_w(device, SKYRAID_EXPLOSION_EN, data & 0x04);
+ discrete_sound_w(device, space, SKYRAID_PLANE_SWEEP_EN, data & 0x01);
+ discrete_sound_w(device, space, SKYRAID_MISSILE_EN, data & 0x02);
+ discrete_sound_w(device, space, SKYRAID_EXPLOSION_EN, data & 0x04);
set_led_status(device->machine(), 0, !(data & 0x08));
- discrete_sound_w(device, SKYRAID_PLANE_ON_EN, data & 0x10);
- discrete_sound_w(device, SKYRAID_ATTRACT_EN, data & 0x20);
+ discrete_sound_w(device, space, SKYRAID_PLANE_ON_EN, data & 0x10);
+ discrete_sound_w(device, space, SKYRAID_ATTRACT_EN, data & 0x20);
}
diff --git a/src/mame/audio/snes_snd.c b/src/mame/audio/snes_snd.c
index 323e9e15e43..79d2b3102aa 100644
--- a/src/mame/audio/snes_snd.c
+++ b/src/mame/audio/snes_snd.c
@@ -1068,6 +1068,7 @@ void spc700_set_volume(device_t *device,int volume)
I/O for DSP
***************************/
+static DECLARE_READ8_DEVICE_HANDLER( snes_dsp_io_r );
static READ8_DEVICE_HANDLER( snes_dsp_io_r )
{
snes_sound_state *spc700 = get_safe_token(device);
@@ -1083,6 +1084,7 @@ static READ8_DEVICE_HANDLER( snes_dsp_io_r )
return spc700->dsp_regs[offset & 0x7f];
}
+static DECLARE_WRITE8_DEVICE_HANDLER( snes_dsp_io_w );
static WRITE8_DEVICE_HANDLER( snes_dsp_io_w )
{
snes_sound_state *spc700 = get_safe_token(device);
@@ -1118,7 +1120,7 @@ READ8_DEVICE_HANDLER( spc_io_r )
case 0x2: /* Register address */
return spc700->ram[0xf2];
case 0x3: /* Register data */
- return snes_dsp_io_r(device, spc700->ram[0xf2]);
+ return snes_dsp_io_r(device, space, spc700->ram[0xf2]);
case 0x4: /* Port 0 */
case 0x5: /* Port 1 */
case 0x6: /* Port 2 */
@@ -1186,7 +1188,7 @@ WRITE8_DEVICE_HANDLER( spc_io_w )
break;
case 0x3: /* Register data - 0x80-0xff is a read-only mirror of 0x00-0x7f */
if (!(spc700->ram[0xf2] & 0x80))
- snes_dsp_io_w(device, spc700->ram[0xf2] & 0x7f, data);
+ snes_dsp_io_w(device, space, spc700->ram[0xf2] & 0x7f, data);
break;
case 0x4: /* Port 0 */
case 0x5: /* Port 1 */
diff --git a/src/mame/audio/snes_snd.h b/src/mame/audio/snes_snd.h
index 35eec3b058e..9a10ac49f02 100644
--- a/src/mame/audio/snes_snd.h
+++ b/src/mame/audio/snes_snd.h
@@ -46,12 +46,12 @@ extern const device_type SNES;
I/O PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( spc_io_r );
-WRITE8_DEVICE_HANDLER( spc_io_w );
-READ8_DEVICE_HANDLER( spc_ram_r );
-WRITE8_DEVICE_HANDLER( spc_ram_w );
-READ8_DEVICE_HANDLER( spc_port_out );
-WRITE8_DEVICE_HANDLER( spc_port_in );
+DECLARE_READ8_DEVICE_HANDLER( spc_io_r );
+DECLARE_WRITE8_DEVICE_HANDLER( spc_io_w );
+DECLARE_READ8_DEVICE_HANDLER( spc_ram_r );
+DECLARE_WRITE8_DEVICE_HANDLER( spc_ram_w );
+DECLARE_READ8_DEVICE_HANDLER( spc_port_out );
+DECLARE_WRITE8_DEVICE_HANDLER( spc_port_in );
UINT8 *spc_get_ram(device_t *device);
void spc700_set_volume(device_t *device,int volume);
diff --git a/src/mame/audio/snk6502.c b/src/mame/audio/snk6502.c
index 7b26bce34dc..464593a0511 100644
--- a/src/mame/audio/snk6502.c
+++ b/src/mame/audio/snk6502.c
@@ -957,7 +957,7 @@ WRITE8_HANDLER( fantasy_sound_w )
}
/* BOMB */
- discrete_sound_w(space->machine().device("discrete"), FANTASY_BOMB_EN, data & 0x80);
+ discrete_sound_w(space->machine().device("discrete"), *space, FANTASY_BOMB_EN, data & 0x80);
state->m_LastPort1 = data;
break;
diff --git a/src/mame/audio/spiders.c b/src/mame/audio/spiders.c
index d0eead09d0f..fb1a837026e 100644
--- a/src/mame/audio/spiders.c
+++ b/src/mame/audio/spiders.c
@@ -182,22 +182,22 @@ WRITE8_DEVICE_HANDLER( spiders_audio_command_w )
WRITE8_DEVICE_HANDLER( spiders_audio_a_w )
{
- discrete_sound_w(device, SPIDER_WEB_SOUND_MOD_DATA, 1 + (data & 4) * 8 + (data & 2) * 4 + (data & 1) * 2);
+ discrete_sound_w(device, space, SPIDER_WEB_SOUND_MOD_DATA, 1 + (data & 4) * 8 + (data & 2) * 4 + (data & 1) * 2);
}
WRITE8_DEVICE_HANDLER( spiders_audio_b_w )
{
- discrete_sound_w(device, SPIDERS_WEB_SOUND_DATA, data);
+ discrete_sound_w(device, space, SPIDERS_WEB_SOUND_DATA, data);
}
WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w )
{
- discrete_sound_w(device, SPIDERS_FIRE_EN, data & 0x10 ? 1 : 0);
- discrete_sound_w(device, SPIDERS_EXP_EN, data & 0x08 ? 1 : 0);
- discrete_sound_w(device, SPIDERS_SUPER_WEB_EXPL_EN, data & 0x04 ? 1 : 0);
- discrete_sound_w(device, SPIDERS_SUPER_WEB_EN, data & 0x02 ? 1 : 0);
- discrete_sound_w(device, SPIDERS_X_EN, data & 0x01 ? 1 : 0);
+ discrete_sound_w(device, space, SPIDERS_FIRE_EN, data & 0x10 ? 1 : 0);
+ discrete_sound_w(device, space, SPIDERS_EXP_EN, data & 0x08 ? 1 : 0);
+ discrete_sound_w(device, space, SPIDERS_SUPER_WEB_EXPL_EN, data & 0x04 ? 1 : 0);
+ discrete_sound_w(device, space, SPIDERS_SUPER_WEB_EN, data & 0x02 ? 1 : 0);
+ discrete_sound_w(device, space, SPIDERS_X_EN, data & 0x01 ? 1 : 0);
}
diff --git a/src/mame/audio/sprint8.c b/src/mame/audio/sprint8.c
index 648cd34e661..2fa5a29cddf 100644
--- a/src/mame/audio/sprint8.c
+++ b/src/mame/audio/sprint8.c
@@ -295,20 +295,20 @@ DISCRETE_SOUND_END
WRITE8_DEVICE_HANDLER( sprint8_crash_w )
{
- discrete_sound_w(device, SPRINT8_CRASH_EN, data & 0x01);
+ discrete_sound_w(device, space, SPRINT8_CRASH_EN, data & 0x01);
}
WRITE8_DEVICE_HANDLER( sprint8_screech_w )
{
- discrete_sound_w(device, SPRINT8_SCREECH_EN, data & 0x01);
+ discrete_sound_w(device, space, SPRINT8_SCREECH_EN, data & 0x01);
}
WRITE8_DEVICE_HANDLER( sprint8_attract_w )
{
- discrete_sound_w(device, SPRINT8_ATTRACT_EN, data & 0x01);
+ discrete_sound_w(device, space, SPRINT8_ATTRACT_EN, data & 0x01);
}
WRITE8_DEVICE_HANDLER( sprint8_motor_w )
{
- discrete_sound_w(device, NODE_RELATIVE(SPRINT8_MOTOR1_EN, offset & 0x07), data & 0x01);
+ discrete_sound_w(device, space, NODE_RELATIVE(SPRINT8_MOTOR1_EN, offset & 0x07), data & 0x01);
}
diff --git a/src/mame/audio/subs.c b/src/mame/audio/subs.c
index a21f02c54e6..77302a72c6a 100644
--- a/src/mame/audio/subs.c
+++ b/src/mame/audio/subs.c
@@ -14,28 +14,28 @@ sub sound functions
WRITE8_DEVICE_HANDLER( subs_sonar1_w )
{
- discrete_sound_w(device, SUBS_SONAR1_EN, offset & 0x01);
+ discrete_sound_w(device, space, SUBS_SONAR1_EN, offset & 0x01);
}
WRITE8_DEVICE_HANDLER( subs_sonar2_w )
{
- discrete_sound_w(device, SUBS_SONAR2_EN, offset & 0x01);
+ discrete_sound_w(device, space, SUBS_SONAR2_EN, offset & 0x01);
}
WRITE8_DEVICE_HANDLER( subs_crash_w )
{
- discrete_sound_w(device, SUBS_CRASH_EN, offset & 0x01);
+ discrete_sound_w(device, space, SUBS_CRASH_EN, offset & 0x01);
}
WRITE8_DEVICE_HANDLER( subs_explode_w )
{
- discrete_sound_w(device, SUBS_EXPLODE_EN, offset & 0x01);
+ discrete_sound_w(device, space, SUBS_EXPLODE_EN, offset & 0x01);
}
WRITE8_DEVICE_HANDLER( subs_noise_reset_w )
{
/* Pulse noise reset */
- discrete_sound_w(device, SUBS_NOISE_RESET, 0);
+ discrete_sound_w(device, space, SUBS_NOISE_RESET, 0);
}
diff --git a/src/mame/audio/taitosnd.h b/src/mame/audio/taitosnd.h
index 91c9d47bcb3..c1815f2baa9 100644
--- a/src/mame/audio/taitosnd.h
+++ b/src/mame/audio/taitosnd.h
@@ -48,15 +48,15 @@ extern const device_type TC0140SYT;
***************************************************************************/
/* MASTER (8bit bus) control functions */
-WRITE8_DEVICE_HANDLER( tc0140syt_port_w );
-WRITE8_DEVICE_HANDLER( tc0140syt_comm_w );
-READ8_DEVICE_HANDLER( tc0140syt_comm_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_comm_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0140syt_comm_r );
/* SLAVE (8bit bus) control functions ONLY */
-WRITE8_DEVICE_HANDLER( tc0140syt_slave_port_w );
-READ8_DEVICE_HANDLER( tc0140syt_slave_comm_r );
-WRITE8_DEVICE_HANDLER( tc0140syt_slave_comm_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_slave_port_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0140syt_slave_comm_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0140syt_slave_comm_w );
#endif /*__TAITOSND_H__*/
diff --git a/src/mame/audio/trackfld.h b/src/mame/audio/trackfld.h
index 342e1b90ad5..f4137ae6b6d 100644
--- a/src/mame/audio/trackfld.h
+++ b/src/mame/audio/trackfld.h
@@ -1,11 +1,11 @@
WRITE8_HANDLER( konami_sh_irqtrigger_w );
READ8_HANDLER( trackfld_sh_timer_r );
-READ8_DEVICE_HANDLER( trackfld_speech_r );
-WRITE8_DEVICE_HANDLER( trackfld_sound_w );
+DECLARE_READ8_DEVICE_HANDLER( trackfld_speech_r );
+DECLARE_WRITE8_DEVICE_HANDLER( trackfld_sound_w );
READ8_HANDLER( hyperspt_sh_timer_r );
-WRITE8_DEVICE_HANDLER( hyperspt_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( hyperspt_sound_w );
WRITE8_HANDLER( konami_SN76496_latch_w );
-WRITE8_DEVICE_HANDLER( konami_SN76496_w );
+DECLARE_WRITE8_DEVICE_HANDLER( konami_SN76496_w );
class trackfld_audio_device : public device_t,
public device_sound_interface
diff --git a/src/mame/audio/vicdual.c b/src/mame/audio/vicdual.c
index e39dc83ad5b..162a3bc787e 100644
--- a/src/mame/audio/vicdual.c
+++ b/src/mame/audio/vicdual.c
@@ -151,12 +151,12 @@ WRITE8_HANDLER( frogs_audio_w )
int new_croak = data & 0x08;
int new_buzzz = data & 0x10;
-// discrete_sound_w(discrete, FROGS_HOP_EN, data & 0x01);
-// discrete_sound_w(discrete, FROGS_JUMP_EN, data & 0x02);
- discrete_sound_w(discrete, FROGS_TONGUE_EN, data & 0x04);
-// discrete_sound_w(discrete, FROGS_CAPTURE_EN, data & 0x08);
-// discrete_sound_w(discrete, FROGS_FLY_EN, data & 0x10);
-// discrete_sound_w(discrete, FROGS_SPLASH_EN, data & 0x80);
+// discrete_sound_w(discrete, *space, FROGS_HOP_EN, data & 0x01);
+// discrete_sound_w(discrete, *space, FROGS_JUMP_EN, data & 0x02);
+ discrete_sound_w(discrete, *space, FROGS_TONGUE_EN, data & 0x04);
+// discrete_sound_w(discrete, *space, FROGS_CAPTURE_EN, data & 0x08);
+// discrete_sound_w(discrete, *space, FROGS_FLY_EN, data & 0x10);
+// discrete_sound_w(discrete, *space, FROGS_SPLASH_EN, data & 0x80);
if (data & 0x01)
samples->start(3, 3); // Hop
@@ -464,13 +464,13 @@ WRITE8_HANDLER( headon_audio_w )
device_t *discrete = space->machine().device("discrete");
if (discrete == NULL)
return;
- discrete_sound_w(discrete, HEADON_HISPEED_PC_EN, data & 0x01);
- discrete_sound_w(discrete, HEADON_SCREECH1_EN, data & 0x02);
- discrete_sound_w(discrete, HEADON_CRASH_EN, data & 0x04);
- discrete_sound_w(discrete, HEADON_HISPEED_CC_EN, data & 0x08);
- discrete_sound_w(discrete, HEADON_SCREECH2_EN, data & 0x10);
- discrete_sound_w(discrete, HEADON_BONUS_EN, data & 0x20);
- discrete_sound_w(discrete, HEADON_CAR_ON_EN, data & 0x40);
+ discrete_sound_w(discrete, *space, HEADON_HISPEED_PC_EN, data & 0x01);
+ discrete_sound_w(discrete, *space, HEADON_SCREECH1_EN, data & 0x02);
+ discrete_sound_w(discrete, *space, HEADON_CRASH_EN, data & 0x04);
+ discrete_sound_w(discrete, *space, HEADON_HISPEED_CC_EN, data & 0x08);
+ discrete_sound_w(discrete, *space, HEADON_SCREECH2_EN, data & 0x10);
+ discrete_sound_w(discrete, *space, HEADON_BONUS_EN, data & 0x20);
+ discrete_sound_w(discrete, *space, HEADON_CAR_ON_EN, data & 0x40);
}
@@ -479,13 +479,13 @@ WRITE8_HANDLER( invho2_audio_w )
device_t *discrete = space->machine().device("discrete");
if (discrete == NULL)
return;
- discrete_sound_w(discrete, HEADON_HISPEED_PC_EN, data & 0x10);
- discrete_sound_w(discrete, HEADON_SCREECH1_EN, data & 0x08);
- discrete_sound_w(discrete, HEADON_CRASH_EN, data & 0x80);
- discrete_sound_w(discrete, HEADON_HISPEED_CC_EN, data & 0x40);
- discrete_sound_w(discrete, HEADON_SCREECH2_EN, data & 0x04);
- discrete_sound_w(discrete, HEADON_BONUS_EN, data & 0x02);
- discrete_sound_w(discrete, HEADON_CAR_ON_EN, data & 0x20);
+ discrete_sound_w(discrete, *space, HEADON_HISPEED_PC_EN, data & 0x10);
+ discrete_sound_w(discrete, *space, HEADON_SCREECH1_EN, data & 0x08);
+ discrete_sound_w(discrete, *space, HEADON_CRASH_EN, data & 0x80);
+ discrete_sound_w(discrete, *space, HEADON_HISPEED_CC_EN, data & 0x40);
+ discrete_sound_w(discrete, *space, HEADON_SCREECH2_EN, data & 0x04);
+ discrete_sound_w(discrete, *space, HEADON_BONUS_EN, data & 0x02);
+ discrete_sound_w(discrete, *space, HEADON_CAR_ON_EN, data & 0x20);
}
diff --git a/src/mame/audio/wiping.h b/src/mame/audio/wiping.h
index d7ab3f23b73..eb559c61aa2 100644
--- a/src/mame/audio/wiping.h
+++ b/src/mame/audio/wiping.h
@@ -22,4 +22,4 @@ private:
extern const device_type WIPING;
-WRITE8_DEVICE_HANDLER( wiping_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( wiping_sound_w );
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 0ea5bf2d333..4fd0156e6ca 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -968,7 +968,8 @@ static const ay8910_interface ay8910_config =
static const msm5232_interface msm5232_config =
{
- { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 } /* 1.0 uF capacitors (verified on real PCB) */
+ { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 }, /* 1.0 uF capacitors (verified on real PCB) */
+ DEVCB_NULL
};
/*******************************************************************************/
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index d549a308d6a..5266657d61f 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -72,7 +72,7 @@ WRITE8_MEMBER(_4enraya_state::sound_control_w)
device_t *device = machine().device("aysnd");
if ((m_last_snd_ctrl & m_snd_latch_bit ) == m_snd_latch_bit && (data & m_snd_latch_bit) == 0x00)
- ay8910_data_address_w(device, m_last_snd_ctrl, m_soundlatch);
+ ay8910_data_address_w(device, space, m_last_snd_ctrl, m_soundlatch);
m_last_snd_ctrl = data;
}
diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c
index 914f6521abb..9620e9510c7 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -686,8 +686,8 @@ WRITE8_MEMBER(_5clown_state::cpu_d800_w)
WRITE8_MEMBER(_5clown_state::fclown_ay8910_w)
{
- ay8910_address_w(m_ay8910, 0, offset);
- ay8910_data_w(m_ay8910, 0, data);
+ ay8910_address_w(m_ay8910, space, 0, offset);
+ ay8910_data_w(m_ay8910, space, 0, data);
}
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index a58bc81b472..a054de42e2d 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -38,9 +38,9 @@ READ8_MEMBER(_88games_state::bankedram_r)
else
{
if (m_zoomreadroms)
- return k051316_rom_r(m_k051316, offset);
+ return k051316_rom_r(m_k051316, space, offset);
else
- return k051316_r(m_k051316, offset);
+ return k051316_r(m_k051316, space, offset);
}
}
@@ -50,7 +50,7 @@ WRITE8_MEMBER(_88games_state::bankedram_w)
if (m_videobank)
m_ram[offset] = data;
else
- k051316_w(m_k051316, offset, data);
+ k051316_w(m_k051316, space, offset, data);
}
WRITE8_MEMBER(_88games_state::k88games_5f84_w)
@@ -89,7 +89,7 @@ WRITE8_MEMBER(_88games_state::speech_msg_w)
{
device_t *upd = m_speech_chip ? m_upd_2 : m_upd_1;
- upd7759_port_w(upd, 0, data);
+ upd7759_port_w(upd, space, 0, data);
}
/* special handlers to combine 052109 & 051960 */
@@ -99,25 +99,25 @@ READ8_MEMBER(_88games_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(_88games_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
/*************************************
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index 1cefcb3cbef..2474b5e2c22 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -92,25 +92,25 @@ READ8_MEMBER(aliens_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(aliens_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state )
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index a7cf7e6818e..be07180e7b4 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -65,7 +65,7 @@ READ8_MEMBER(amspdwy_state::amspdwy_wheel_1_r)
READ8_MEMBER(amspdwy_state::amspdwy_sound_r)
{
device_t *device = machine().device("ymsnd");
- return (ym2151_status_port_r(device, 0) & ~ 0x30) | machine().root_device().ioport("IN0")->read();
+ return (ym2151_status_port_r(device, space, 0) & ~ 0x30) | machine().root_device().ioport("IN0")->read();
}
WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w)
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 12f516c57d9..60721f6d406 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -649,13 +649,13 @@ READ8_MEMBER(aristmk4_state::via_a_r)
if (m_ay8910_1&0x03) // SW1 read.
{
- psg_ret = ay8910_r(machine().device("ay1"), 0);
+ psg_ret = ay8910_r(machine().device("ay1"), space, 0);
//logerror("PSG porta ay1 returned %02X\n",psg_ret);
}
else if (m_ay8910_2&0x03) //i don't think we read anything from Port A on ay2, Can be removed once game works ok.
{
- psg_ret = ay8910_r(machine().device("ay2"), 0);
+ psg_ret = ay8910_r(machine().device("ay2"), space, 0);
//logerror("PSG porta ay2 returned %02X\n",psg_ret);
}
return psg_ret;
@@ -750,13 +750,13 @@ WRITE8_MEMBER(aristmk4_state::via_b_w)
break;
case 0x06: //WRITE
{
- ay8910_data_w( machine().device("ay1"), 0 , m_psg_data );
+ ay8910_data_w( machine().device("ay1"), space, 0 , m_psg_data );
//logerror("VIA Port A write data ay1: %02X\n",m_psg_data);
break;
}
case 0x07: //LATCH Address (set register)
{
- ay8910_address_w( machine().device("ay1"), 0 , m_psg_data );
+ ay8910_address_w( machine().device("ay1"), space, 0 , m_psg_data );
//logerror("VIA Port B write register ay1: %02X\n",m_psg_data);
break;
}
@@ -777,13 +777,13 @@ WRITE8_MEMBER(aristmk4_state::via_b_w)
break;
case 0x06: //WRITE
{
- ay8910_data_w( machine().device("ay2"), 0 , m_psg_data );
+ ay8910_data_w( machine().device("ay2"), space, 0 , m_psg_data );
//logerror("VIA Port A write data ay2: %02X\n",m_psg_data);
break;
}
case 0x07: //LATCH Address (set register)
{
- ay8910_address_w( machine().device("ay2"), 0 , m_psg_data );
+ ay8910_address_w( machine().device("ay2"), space, 0 , m_psg_data );
//logerror("VIA Port B write register ay2: %02X\n",m_psg_data);
break;
}
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index 826e1c0fbb5..2ef76f54fdb 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -67,7 +67,7 @@ static INTERRUPT_GEN( asterix_interrupt )
READ8_MEMBER(asterix_state::asterix_sound_r)
{
device_t *device = machine().device("k053260");
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
static TIMER_CALLBACK( nmi_callback )
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index 823ae9eef54..d3f9ad222d4 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -402,14 +402,14 @@ READ8_MEMBER(atarisy1_state::switch_6502_r)
WRITE8_MEMBER(atarisy1_state::via_pa_w)
{
device_t *device = machine().device("tms");
- tms5220_data_w(device, 0, data);
+ tms5220_data_w(device, space, 0, data);
}
READ8_MEMBER(atarisy1_state::via_pa_r)
{
device_t *device = machine().device("tms");
- return tms5220_status_r(device, 0);
+ return tms5220_status_r(device, space, 0);
}
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index c9152a31413..03f45563e33 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -764,7 +764,7 @@ WRITE8_MEMBER(atarisy2_state::tms5220_w)
{
if (m_has_tms5220)
{
- tms5220_data_w(machine().device("tms"), 0, data);
+ tms5220_data_w(machine().device("tms"), space, 0, data);
}
}
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index 12bbb8e79c7..d48ae7d3de9 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -81,16 +81,16 @@ WRITE8_MEMBER(bagman_state::bagman_ls259_w)
case 0:
case 1:
case 2:
- tmsprom_bit_w(device, 0, 7 - ((m_ls259_buf[0]<<2) | (m_ls259_buf[1]<<1) | (m_ls259_buf[2]<<0)));
+ tmsprom_bit_w(device, space, 0, 7 - ((m_ls259_buf[0]<<2) | (m_ls259_buf[1]<<1) | (m_ls259_buf[2]<<0)));
break;
case 3:
tmsprom_enable_w(device, m_ls259_buf[offset]);
break;
case 4:
- tmsprom_rom_csq_w(device, 0, m_ls259_buf[offset]);
+ tmsprom_rom_csq_w(device, space, 0, m_ls259_buf[offset]);
break;
case 5:
- tmsprom_rom_csq_w(device, 1, m_ls259_buf[offset]);
+ tmsprom_rom_csq_w(device, space, 1, m_ls259_buf[offset]);
break;
}
}
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index e84438e7415..a2c2e167283 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -548,12 +548,12 @@ WRITE8_MEMBER(berzerk_state::berzerk_audio_w)
/* offset 6 writes to the sfxcontrol latch */
case 6:
- exidy_sfxctrl_w(machine().device("exidy"), data >> 6, data);
+ exidy_sfxctrl_w(machine().device("exidy"), space, data >> 6, data);
break;
/* everything else writes to the 6840 */
default:
- exidy_sh6840_w(machine().device("exidy"), offset, data);
+ exidy_sh6840_w(machine().device("exidy"), space, offset, data);
break;
}
@@ -574,7 +574,7 @@ READ8_MEMBER(berzerk_state::berzerk_audio_r)
return 0;
/* everything else reads from the 6840 */
default:
- return exidy_sh6840_r(machine().device("exidy"), offset);
+ return exidy_sh6840_r(machine().device("exidy"), space, offset);
}
}
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index d198cc9c081..b4e2d9b6678 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -1471,7 +1471,7 @@ WRITE8_MEMBER(bfcobra_state::upd_w)
{
device_t *device = machine().device("upd");
upd7759_reset_w(device, data & 0x80);
- upd7759_port_w(device, 0, data & 0x3f);
+ upd7759_port_w(device, space, 0, data & 0x3f);
upd7759_start_w(device, data & 0x40 ? 0 : 1);
}
diff --git a/src/mame/drivers/bfm_sc1.c b/src/mame/drivers/bfm_sc1.c
index c629d961d69..53cb816a970 100644
--- a/src/mame/drivers/bfm_sc1.c
+++ b/src/mame/drivers/bfm_sc1.c
@@ -602,7 +602,7 @@ WRITE8_MEMBER(bfm_sc1_state::nec_reset_w)
WRITE8_MEMBER(bfm_sc1_state::nec_latch_w)
{
device_t *device = machine().device("upd");
- upd7759_port_w (device, 0, data&0x3F); // setup sample
+ upd7759_port_w (device, space, 0, data&0x3F); // setup sample
upd7759_start_w(device, 0);
upd7759_start_w(device, 1); // start
}
diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c
index a8d2d9086a1..3ed5abed474 100644
--- a/src/mame/drivers/bfm_sc2.c
+++ b/src/mame/drivers/bfm_sc2.c
@@ -731,7 +731,7 @@ WRITE8_MEMBER(bfm_sc2_state::nec_latch_w)
upd7759_set_bank_base(device, bank*0x20000);
- upd7759_port_w(device, 0, data&0x3F); // setup sample
+ upd7759_port_w(device, space, 0, data&0x3F); // setup sample
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/drivers/bfm_sc4h.c b/src/mame/drivers/bfm_sc4h.c
index 601ca6b7f5c..95d131fce80 100644
--- a/src/mame/drivers/bfm_sc4h.c
+++ b/src/mame/drivers/bfm_sc4h.c
@@ -192,10 +192,10 @@ READ16_MEMBER(sc4_state::sc4_mem_r)
return 0x0000;//space.machine().rand();;
case 0x1244:
- return ymz280b_r(m_ymz,0);
+ return ymz280b_r(m_ymz,space,0);
case 0x1246:
- return ymz280b_r(m_ymz,1);
+ return ymz280b_r(m_ymz,space,1);
default:
logerror("%08x maincpu read access offset %08x mem_mask %04x cs %d (LAMPS etc.)\n", pc, offset*2, mem_mask, cs);
@@ -215,7 +215,7 @@ READ16_MEMBER(sc4_state::sc4_mem_r)
if ((offset>=base) && (offset<end))
{
offset-=base;
- return duart68681_r(m_duart,offset);
+ return duart68681_r(m_duart,space,offset);
}
else
{
@@ -336,11 +336,11 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
break;
case 0x1248:
- ymz280b_w(m_ymz,0, data & 0xff);
+ ymz280b_w(m_ymz,space,0, data & 0xff);
break;
case 0x124a:
- ymz280b_w(m_ymz,1, data & 0xff);
+ ymz280b_w(m_ymz,space,1, data & 0xff);
break;
case 0x1330:
@@ -367,7 +367,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
if ((offset>=base) && (offset<end))
{
offset-=base;
- duart68681_w(m_duart,offset,data&0x00ff);
+ duart68681_w(m_duart,space,offset,data&0x00ff);
}
else
{
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index f80d0cfb797..dee01456218 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -413,7 +413,8 @@ GFXDECODE_END
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 } /* 0.65 (???) uF capacitors */
+ { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, /* 0.65 (???) uF capacitors */
+ DEVCB_NULL
};
void bigevglf_state::machine_start()
diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c
index a5edbb3ddf9..61f3e0dbaeb 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -138,7 +138,7 @@ READ16_MEMBER(bishi_state::bishi_K056832_rom_r)
if (m_cur_control2 & 0x1000)
ouroffs += 4;
- return k056832_bishi_rom_word_r(m_k056832, ouroffs, mem_mask);
+ return k056832_bishi_rom_word_r(m_k056832, space, ouroffs, mem_mask);
}
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bishi_state )
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index 05aaf75c538..cc541ee13ac 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -69,25 +69,25 @@ READ8_MEMBER(blockhl_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(blockhl_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index 80ea4db1bdd..310154fc9b9 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -34,11 +34,11 @@ WRITE8_MEMBER(bogeyman_state::bogeyman_8910_control_w)
// bit 5 goes to 8910 #0 BDIR pin
if ((m_last_write & 0x20) == 0x20 && (data & 0x20) == 0x00)
- ay8910_data_address_w(machine().device("ay1"), m_last_write >> 4, m_psg_latch);
+ ay8910_data_address_w(machine().device("ay1"), space, m_last_write >> 4, m_psg_latch);
// bit 7 goes to 8910 #1 BDIR pin
if ((m_last_write & 0x80) == 0x80 && (data & 0x80) == 0x00)
- ay8910_data_address_w(machine().device("ay2"), m_last_write >> 6, m_psg_latch);
+ ay8910_data_address_w(machine().device("ay2"), space, m_last_write >> 6, m_psg_latch);
m_last_write = data;
}
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index aec462323cf..cd00541a535 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -34,25 +34,25 @@ READ8_MEMBER(bottom9_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(bottom9_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
READ8_MEMBER(bottom9_state::bottom9_bankedram1_r)
@@ -63,9 +63,9 @@ READ8_MEMBER(bottom9_state::bottom9_bankedram1_r)
else
{
if (m_zoomreadroms)
- return k051316_rom_r(m_k051316, offset);
+ return k051316_rom_r(m_k051316, space, offset);
else
- return k051316_r(m_k051316, offset);
+ return k051316_r(m_k051316, space, offset);
}
}
@@ -75,7 +75,7 @@ WRITE8_MEMBER(bottom9_state::bottom9_bankedram1_w)
if (m_k052109_selected)
k052109_051960_w(space, offset, data);
else
- k051316_w(m_k051316, offset, data);
+ k051316_w(m_k051316, space, offset, data);
}
READ8_MEMBER(bottom9_state::bottom9_bankedram2_r)
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 61e29f667ff..86543a230dd 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -352,7 +352,8 @@ static const ay8910_interface ay8910_interface_2 =
static const msm5232_interface msm5232_config =
{
- { 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6 } /* default 0.39 uF capacitors (not verified) */
+ { 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6, 0.39e-6 }, /* default 0.39 uF capacitors (not verified) */
+ DEVCB_NULL
};
diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c
index 1c467ce3992..c1350bffb01 100644
--- a/src/mame/drivers/bzone.c
+++ b/src/mame/drivers/bzone.c
@@ -286,7 +286,7 @@ WRITE8_MEMBER(bzone_state::redbaron_joysound_w)
{
device_t *device = machine().device("custom");
m_rb_input_select = data & 1;
- redbaron_sounds_w(device, offset, data);
+ redbaron_sounds_w(device, space, offset, data);
}
diff --git a/src/mame/drivers/calchase.c b/src/mame/drivers/calchase.c
index a73e434cc98..47f1ca11388 100644
--- a/src/mame/drivers/calchase.c
+++ b/src/mame/drivers/calchase.c
@@ -184,13 +184,13 @@ static void ide_interrupt(device_t *device, int state);
READ8_MEMBER(calchase_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(calchase_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
READ8_MEMBER(calchase_state::at_page8_r)
@@ -298,13 +298,13 @@ static I8237_INTERFACE( dma8237_2_config )
READ32_MEMBER(calchase_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(calchase_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
@@ -314,14 +314,14 @@ WRITE32_MEMBER(calchase_state::ide_w)
READ32_MEMBER(calchase_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(calchase_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c
index 34b6bb91018..11b63a22a9a 100644
--- a/src/mame/drivers/cd32.c
+++ b/src/mame/drivers/cd32.c
@@ -92,7 +92,7 @@ WRITE8_MEMBER(cd32_state::cd32_cia_0_porta_w)
/* bit 2 = Power Led on Amiga */
set_led_status(machine(), 0, (data & 2) ? 0 : 1);
- handle_cd32_joystick_cia(machine(), data, mos6526_r(device, 2));
+ handle_cd32_joystick_cia(machine(), data, mos6526_r(device, space, 2));
}
/*************************************
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index 016d9d0da86..59cda529e77 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -736,15 +736,15 @@ ADDRESS_MAP_END
WRITE8_MEMBER(centiped_state::caterplr_AY8910_w)
{
device_t *device = machine().device("pokey");
- ay8910_address_w(device, 0, offset);
- ay8910_data_w(device, 0, data);
+ ay8910_address_w(device, space, 0, offset);
+ ay8910_data_w(device, space, 0, data);
}
READ8_MEMBER(centiped_state::caterplr_AY8910_r)
{
device_t *device = machine().device("pokey");
- ay8910_address_w(device, 0, offset);
- return ay8910_r(device, 0);
+ ay8910_address_w(device, space, 0, offset);
+ return ay8910_r(device, space, 0);
}
diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c
index 9ce08855a48..c9e4a8b9e0c 100644
--- a/src/mame/drivers/cham24.c
+++ b/src/mame/drivers/cham24.c
@@ -148,19 +148,19 @@ WRITE8_MEMBER(cham24_state::sprite_dma_w)
READ8_MEMBER(cham24_state::psg_4015_r)
{
device_t *device = machine().device("nes");
- return nes_psg_r(device,0x15);
+ return nes_psg_r(device,space,0x15);
}
WRITE8_MEMBER(cham24_state::psg_4015_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device,0x15, data);
+ nes_psg_w(device,space,0x15, data);
}
WRITE8_MEMBER(cham24_state::psg_4017_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device,0x17, data);
+ nes_psg_w(device,space,0x17, data);
}
diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c
index 26867453793..2cad7ee0ae7 100644
--- a/src/mame/drivers/cidelsa.c
+++ b/src/mame/drivers/cidelsa.c
@@ -64,15 +64,15 @@ WRITE8_MEMBER( draco_state::sound_g_w )
switch (data)
{
case 0x01:
- ay8910_data_w(m_psg, 0, m_psg_latch);
+ ay8910_data_w(m_psg, space, 0, m_psg_latch);
break;
case 0x02:
- m_psg_latch = ay8910_r(m_psg, 0);
+ m_psg_latch = ay8910_r(m_psg, space, 0);
break;
case 0x03:
- ay8910_address_w(m_psg, 0, m_psg_latch);
+ ay8910_address_w(m_psg, space, 0, m_psg_latch);
break;
}
}
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index e240384ad0f..7d2b8481a79 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -128,9 +128,9 @@ WRITE8_MEMBER(circusc_state::circusc_sound_w)
/* CS6 */
case 4:
- 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);
+ discrete_sound_w(m_discrete, space, NODE_05, (offset & 0x20) >> 5);
+ discrete_sound_w(m_discrete, space, NODE_06, (offset & 0x18) >> 3);
+ discrete_sound_w(m_discrete, space, NODE_07, (offset & 0x40) >> 6);
break;
}
}
diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c
index f8f25c01405..156511feb9f 100644
--- a/src/mame/drivers/cliffhgr.c
+++ b/src/mame/drivers/cliffhgr.c
@@ -172,8 +172,8 @@ WRITE8_MEMBER(cliffhgr_state::cliff_sound_overlay_w)
{
device_t *device = machine().device("discrete");
/* audio */
- discrete_sound_w(device, CLIFF_ENABLE_SND_1, data & 1);
- discrete_sound_w(device, CLIFF_ENABLE_SND_2, (data >> 1) & 1);
+ discrete_sound_w(device, space, CLIFF_ENABLE_SND_1, data & 1);
+ discrete_sound_w(device, space, CLIFF_ENABLE_SND_2, (data >> 1) & 1);
// bit 4 (data & 0x10) is overlay related?
}
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 17747b66e28..08093d90912 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -149,14 +149,14 @@ READ16_MEMBER(cninja_state::robocop2_prot_r)
WRITE16_MEMBER(cninja_state::cninja_pf12_control_w)
{
machine().primary_screen->update_partial(machine().primary_screen->vpos());
- deco16ic_pf_control_w(m_deco_tilegen1, offset, data, mem_mask);
+ deco16ic_pf_control_w(m_deco_tilegen1, space, offset, data, mem_mask);
}
WRITE16_MEMBER(cninja_state::cninja_pf34_control_w)
{
machine().primary_screen->update_partial(machine().primary_screen->vpos());
- deco16ic_pf_control_w(m_deco_tilegen2, offset, data, mem_mask);
+ deco16ic_pf_control_w(m_deco_tilegen2, space, offset, data, mem_mask);
}
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index e67a34336c2..7d9d77ad2a7 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -28,7 +28,8 @@ Dip locations and factory settings verified with manual
static INTERRUPT_GEN( contra_interrupt )
{
contra_state *state = device->machine().driver_data<contra_state>();
- if (k007121_ctrlram_r(state->m_k007121_1, 7) & 0x02)
+ address_space &space = state->generic_space();
+ if (k007121_ctrlram_r(state->m_k007121_1, space, 7) & 0x02)
device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
}
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index 5a1a1020f31..cd7cea200dd 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -167,7 +167,7 @@ WRITE8_MEMBER(crbaloon_state::port_sound_w)
machine().sound().system_enable((data & 0x02) ? TRUE : FALSE);
/* D2 - unlabeled - music enable */
- crbaloon_audio_set_music_enable(discrete, 0, (data & 0x04) ? TRUE : FALSE);
+ crbaloon_audio_set_music_enable(discrete, space, 0, (data & 0x04) ? TRUE : FALSE);
/* D3 - EXPLOSION */
crbaloon_audio_set_explosion_enable(sn, (data & 0x08) ? TRUE : FALSE);
@@ -179,7 +179,7 @@ WRITE8_MEMBER(crbaloon_state::port_sound_w)
crbaloon_audio_set_appear_enable(sn, (data & 0x20) ? TRUE : FALSE);
/* D6 - unlabeled - laugh enable */
- crbaloon_audio_set_laugh_enable(discrete, 0, (data & 0x40) ? TRUE : FALSE);
+ crbaloon_audio_set_laugh_enable(discrete, space, 0, (data & 0x40) ? TRUE : FALSE);
/* D7 - unlabeled - goes to PC3259 pin 16 */
@@ -339,12 +339,12 @@ GFXDECODE_END
void crbaloon_state::machine_reset()
{
- address_space *space = machine().device("maincpu")->memory().space(AS_IO);
+ address_space &space = *machine().device("maincpu")->memory().space(AS_IO);
device_t *discrete = machine().device("discrete");
pc3092_reset();
- port_sound_w(*space, 0, 0);
- crbaloon_audio_set_music_freq(discrete, 0, 0);
+ port_sound_w(space, 0, 0);
+ crbaloon_audio_set_music_freq(discrete, space, 0, 0);
}
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index e5f5c71ee57..3593b6ddb73 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -60,25 +60,25 @@ READ8_MEMBER(crimfght_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(crimfght_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
/********************************************/
diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c
index 3287cf385ce..80e4748a8aa 100644
--- a/src/mame/drivers/cubeqst.c
+++ b/src/mame/drivers/cubeqst.c
@@ -393,22 +393,22 @@ INPUT_PORTS_END
READ16_MEMBER(cubeqst_state::read_rotram)
{
- return cubeqcpu_rotram_r(machine().device("rotate_cpu"), offset, mem_mask);
+ return cubeqcpu_rotram_r(machine().device("rotate_cpu"), space, offset, mem_mask);
}
WRITE16_MEMBER(cubeqst_state::write_rotram)
{
- cubeqcpu_rotram_w(machine().device("rotate_cpu"), offset, data, mem_mask);
+ cubeqcpu_rotram_w(machine().device("rotate_cpu"), space, offset, data, mem_mask);
}
READ16_MEMBER(cubeqst_state::read_sndram)
{
- return cubeqcpu_sndram_r(machine().device("sound_cpu"), offset, mem_mask);
+ return cubeqcpu_sndram_r(machine().device("sound_cpu"), space, offset, mem_mask);
}
WRITE16_MEMBER(cubeqst_state::write_sndram)
{
- cubeqcpu_sndram_w(machine().device("sound_cpu"), offset, data, mem_mask);
+ cubeqcpu_sndram_w(machine().device("sound_cpu"), space, offset, data, mem_mask);
}
static ADDRESS_MAP_START( m68k_program_map, AS_PROGRAM, 16, cubeqst_state )
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index a5df70f5629..d2d18e32577 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -156,7 +156,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_r)
if (*m_fo_state)
return m_character_ram[(0 * 0x800) | 0x400 | m_character_ram_page_start | offset];
else
- return s2636_work_ram_r(m_s2636_0, offset);
+ return s2636_work_ram_r(m_s2636_0, space, offset);
}
WRITE8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_w)
@@ -169,7 +169,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_0_or_character_ram_w)
machine().gfx[1]->mark_dirty((offset / 8) % 256);
}
else
- s2636_work_ram_w(m_s2636_0, offset, data);
+ s2636_work_ram_w(m_s2636_0, space, offset, data);
}
@@ -179,7 +179,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_r)
if (*m_fo_state)
return m_character_ram[(1 * 0x800) | 0x400 | m_character_ram_page_start | offset];
else
- return s2636_work_ram_r(m_s2636_1, offset);
+ return s2636_work_ram_r(m_s2636_1, space, offset);
}
WRITE8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_w)
@@ -192,7 +192,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_1_or_character_ram_w)
machine().gfx[1]->mark_dirty((offset / 8) % 256);
}
else
- s2636_work_ram_w(m_s2636_1, offset, data);
+ s2636_work_ram_w(m_s2636_1, space, offset, data);
}
@@ -202,7 +202,7 @@ READ8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_r)
if (*m_fo_state)
return m_character_ram[(2 * 0x800) | 0x400 | m_character_ram_page_start | offset];
else
- return s2636_work_ram_r(m_s2636_2, offset);
+ return s2636_work_ram_r(m_s2636_2, space, offset);
}
WRITE8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_w)
@@ -215,7 +215,7 @@ WRITE8_MEMBER(cvs_state::cvs_s2636_2_or_character_ram_w)
machine().gfx[1]->mark_dirty((offset / 8) % 256);
}
else
- s2636_work_ram_w(m_s2636_2, offset, data);
+ s2636_work_ram_w(m_s2636_2, space, offset, data);
}
@@ -290,7 +290,7 @@ READ8_MEMBER(cvs_state::cvs_393hz_clock_r)
READ8_MEMBER(cvs_state::tms_clock_r)
{
device_t *device = machine().device("tms");
- return tms5110_romclk_hack_r(device, 0) ? 0x80 : 0;
+ return tms5110_romclk_hack_r(device, space, 0) ? 0x80 : 0;
}
static TIMER_CALLBACK( cvs_393hz_timer_cb )
@@ -390,7 +390,7 @@ READ8_MEMBER(cvs_state::cvs_speech_command_r)
/* FIXME: this was by observation on board ???
* -bit 7 is TMS status (active LO) */
- return ((tms5110_ctl_r(m_tms, 0) ^ 1) << 7) | (soundlatch_byte_r(space, 0) & 0x7f);
+ return ((tms5110_ctl_r(m_tms, space, 0) ^ 1) << 7) | (soundlatch_byte_r(space, 0) & 0x7f);
}
@@ -409,7 +409,7 @@ WRITE8_MEMBER(cvs_state::cvs_tms5110_ctl_w)
(m_tms5110_ctl_data[1] << 3); /* CTL8 */
LOG(("CVS: Speech CTL = %04x %02x %02x\n", ctl, offset, data));
- tms5110_ctl_w(device, 0, ctl);
+ tms5110_ctl_w(device, space, 0, ctl);
}
diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c
index 1bf79e58075..74c468fa5fd 100644
--- a/src/mame/drivers/cybertnk.c
+++ b/src/mame/drivers/cybertnk.c
@@ -821,7 +821,12 @@ GFXDECODE_END
static const y8950_interface y8950_config = {
- 0 /* TODO */
+ /* TODO */
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
static MACHINE_CONFIG_START( cybertnk, cybertnk_state )
diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c
index 5a994bcc3fe..226599175d0 100644
--- a/src/mame/drivers/dambustr.c
+++ b/src/mame/drivers/dambustr.c
@@ -73,7 +73,7 @@ WRITE8_MEMBER(dambustr_state::dambustr_noise_enable_w)
device_t *device = machine().device("GAL_AUDIO");
if (data != m_noise_data) {
m_noise_data = data;
- galaxian_noise_enable_w(device, offset, data);
+ galaxian_noise_enable_w(device, space, offset, data);
}
}
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index 5013dd57833..d5eb171821e 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -177,7 +177,7 @@ READ16_MEMBER(darius_state::darius_ioc_r)
switch (offset)
{
case 0x01:
- return (tc0140syt_comm_r(m_tc0140syt, 0) & 0xff); /* sound interface read */
+ return (tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff); /* sound interface read */
case 0x04:
return ioport("P1")->read();
@@ -207,12 +207,12 @@ WRITE16_MEMBER(darius_state::darius_ioc_w)
{
case 0x00: /* sound interface write */
- tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff);
return;
case 0x01: /* sound interface write */
- tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff);
return;
case 0x28: /* unknown, written by both cpus - always 0? */
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index ce848b94e4b..2217562beca 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -104,7 +104,8 @@ UINT16 dblwings_pri_callback(UINT16 x)
static SCREEN_UPDATE_IND16(dblewing)
{
dblewing_state *state = screen.machine().driver_data<dblewing_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = state->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index cc905036ccf..b210d55eab7 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -208,7 +208,7 @@ READ32_MEMBER(djmain_state::v_rom_r)
{
device_t *k056832 = machine().device("k056832");
UINT8 *mem8 = memregion("gfx2")->base();
- int bank = k056832_word_r(k056832, 0x34/2, 0xffff);
+ int bank = k056832_word_r(k056832, space, 0x34/2, 0xffff);
offset *= 2;
@@ -280,18 +280,18 @@ READ32_MEMBER(djmain_state::ide_std_r)
{
device_t *device = machine().device("ide");
if (ACCESSING_BITS_0_7)
- return ide_controller16_r(device, IDE_STD_OFFSET + offset, 0xff00) >> 8;
+ return ide_controller16_r(device, space, IDE_STD_OFFSET + offset, 0xff00) >> 8;
else
- return ide_controller16_r(device, IDE_STD_OFFSET + offset, 0xffff) << 16;
+ return ide_controller16_r(device, space, IDE_STD_OFFSET + offset, 0xffff) << 16;
}
WRITE32_MEMBER(djmain_state::ide_std_w)
{
device_t *device = machine().device("ide");
if (ACCESSING_BITS_0_7)
- ide_controller16_w(device, IDE_STD_OFFSET + offset, data << 8, 0xff00);
+ ide_controller16_w(device, space, IDE_STD_OFFSET + offset, data << 8, 0xff00);
else
- ide_controller16_w(device, IDE_STD_OFFSET + offset, data >> 16, 0xffff);
+ ide_controller16_w(device, space, IDE_STD_OFFSET + offset, data >> 16, 0xffff);
}
@@ -299,7 +299,7 @@ READ32_MEMBER(djmain_state::ide_alt_r)
{
device_t *device = machine().device("ide");
if (offset == 0)
- return ide_controller16_r(device, IDE_ALT_OFFSET, 0x00ff) << 24;
+ return ide_controller16_r(device, space, IDE_ALT_OFFSET, 0x00ff) << 24;
return 0;
}
@@ -308,7 +308,7 @@ WRITE32_MEMBER(djmain_state::ide_alt_w)
{
device_t *device = machine().device("ide");
if (offset == 0 && ACCESSING_BITS_16_23)
- ide_controller16_w(device, IDE_ALT_OFFSET, data >> 24, 0x00ff);
+ ide_controller16_w(device, space, IDE_ALT_OFFSET, data >> 24, 0x00ff);
}
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index 949de03dbdd..8637f665d41 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -568,7 +568,7 @@ WRITE8_MEMBER(dkong_state::p8257_drq_w)
READ8_MEMBER(dkong_state::dkong_in2_r)
{
/* mcu status (sound feedback) is inverted bit4 from port B (8039) */
- UINT8 mcustatus = latch8_bit4_q_r(m_dev_vp2, 0);
+ UINT8 mcustatus = latch8_bit4_q_r(m_dev_vp2, space, 0);
UINT8 r;
r = (ioport("IN2")->read() & 0xBF) | (mcustatus << 6);
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index f9a0200d99f..6a8543ca3b4 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -148,24 +148,24 @@ static const UINT8 led_map[16] =
*
*************************************/
-static void dleuro_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( dleuro_interrupt )
{
device->machine().device("maincpu")->execute().set_input_line(0, state);
}
-static WRITE8_DEVICE_HANDLER( serial_transmit )
+static WRITE16_DEVICE_HANDLER( serial_transmit )
{
dlair_state *state = device->machine().driver_data<dlair_state>();
state->laserdisc_data_w(data);
}
-static int serial_receive(device_t *device, int channel)
+static READ16_DEVICE_HANDLER( serial_receive )
{
dlair_state *state = device->machine().driver_data<dlair_state>();
/* if we still have data to send, do it now */
- if (channel == 0 && state->laserdisc_data_available_r() == ASSERT_LINE)
+ if (offset == 0 && state->laserdisc_data_available_r() == ASSERT_LINE)
return state->laserdisc_data_r();
return -1;
@@ -183,12 +183,12 @@ static Z80CTC_INTERFACE( ctc_intf )
static const z80sio_interface sio_intf =
{
- dleuro_interrupt, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- serial_transmit, /* transmit handler */
- serial_receive /* receive handler */
+ DEVCB_LINE(dleuro_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(serial_transmit), /* transmit handler */
+ DEVCB_HANDLER(serial_receive) /* receive handler */
};
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index 8c07fe165e9..3a1ce7e4b1f 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -46,11 +46,11 @@ WRITE8_MEMBER(dogfgt_state::dogfgt_soundcontrol_w)
/* bit 5 goes to 8910 #0 BDIR pin */
if ((m_last_snd_ctrl & 0x20) == 0x20 && (data & 0x20) == 0x00)
- ay8910_data_address_w(machine().device("ay1"), m_last_snd_ctrl >> 4, m_soundlatch);
+ ay8910_data_address_w(machine().device("ay1"), space, m_last_snd_ctrl >> 4, m_soundlatch);
/* bit 7 goes to 8910 #1 BDIR pin */
if ((m_last_snd_ctrl & 0x80) == 0x80 && (data & 0x80) == 0x00)
- ay8910_data_address_w(machine().device("ay2"), m_last_snd_ctrl >> 6, m_soundlatch);
+ ay8910_data_address_w(machine().device("ay2"), space, m_last_snd_ctrl >> 6, m_soundlatch);
m_last_snd_ctrl = data;
}
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index 3f1ebfb0110..83f0e6565a9 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -33,9 +33,9 @@ static TIMER_DEVICE_CALLBACK( dragrace_frame_callback )
}
-static void dragrace_update_misc_flags( running_machine &machine )
+static void dragrace_update_misc_flags( address_space &space )
{
- dragrace_state *state = machine.driver_data<dragrace_state>();
+ dragrace_state *state = space.machine().driver_data<dragrace_state>();
/* 0x0900 = set 3SPEED1 0x00000001
* 0x0901 = set 4SPEED1 0x00000002
* 0x0902 = set 5SPEED1 0x00000004
@@ -67,24 +67,24 @@ static void dragrace_update_misc_flags( running_machine &machine )
* 0x091f = set Player 2 Start Lamp 0x80000000
* 0x0938 = clear 0x0918 - 0x091f
*/
- set_led_status(machine, 0, state->m_misc_flags & 0x00008000);
- set_led_status(machine, 1, state->m_misc_flags & 0x80000000);
-
- discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR1_DATA, ~state->m_misc_flags & 0x0000001f); // Speed1 data*
- discrete_sound_w(state->m_discrete, DRAGRACE_EXPLODE1_EN, (state->m_misc_flags & 0x00000020) ? 1: 0); // Explosion1 enable
- discrete_sound_w(state->m_discrete, DRAGRACE_SCREECH1_EN, (state->m_misc_flags & 0x00000040) ? 1: 0); // Screech1 enable
- discrete_sound_w(state->m_discrete, DRAGRACE_KLEXPL1_EN, (state->m_misc_flags & 0x00000200) ? 1: 0); // KLEXPL1 enable
- discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR1_EN, (state->m_misc_flags & 0x00000800) ? 1: 0); // Motor1 enable
-
- discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR2_DATA, (~state->m_misc_flags & 0x001f0000) >> 0x10); // Speed2 data*
- discrete_sound_w(state->m_discrete, DRAGRACE_EXPLODE2_EN, (state->m_misc_flags & 0x00200000) ? 1: 0); // Explosion2 enable
- discrete_sound_w(state->m_discrete, DRAGRACE_SCREECH2_EN, (state->m_misc_flags & 0x00400000) ? 1: 0); // Screech2 enable
- discrete_sound_w(state->m_discrete, DRAGRACE_KLEXPL2_EN, (state->m_misc_flags & 0x02000000) ? 1: 0); // KLEXPL2 enable
- discrete_sound_w(state->m_discrete, DRAGRACE_MOTOR2_EN, (state->m_misc_flags & 0x08000000) ? 1: 0); // Motor2 enable
-
- discrete_sound_w(state->m_discrete, DRAGRACE_ATTRACT_EN, (state->m_misc_flags & 0x00001000) ? 1: 0); // Attract enable
- discrete_sound_w(state->m_discrete, DRAGRACE_LOTONE_EN, (state->m_misc_flags & 0x00002000) ? 1: 0); // LoTone enable
- discrete_sound_w(state->m_discrete, DRAGRACE_HITONE_EN, (state->m_misc_flags & 0x20000000) ? 1: 0); // HiTone enable
+ set_led_status(space.machine(), 0, state->m_misc_flags & 0x00008000);
+ set_led_status(space.machine(), 1, state->m_misc_flags & 0x80000000);
+
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR1_DATA, ~state->m_misc_flags & 0x0000001f); // Speed1 data*
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_EXPLODE1_EN, (state->m_misc_flags & 0x00000020) ? 1: 0); // Explosion1 enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_SCREECH1_EN, (state->m_misc_flags & 0x00000040) ? 1: 0); // Screech1 enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_KLEXPL1_EN, (state->m_misc_flags & 0x00000200) ? 1: 0); // KLEXPL1 enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR1_EN, (state->m_misc_flags & 0x00000800) ? 1: 0); // Motor1 enable
+
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR2_DATA, (~state->m_misc_flags & 0x001f0000) >> 0x10); // Speed2 data*
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_EXPLODE2_EN, (state->m_misc_flags & 0x00200000) ? 1: 0); // Explosion2 enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_SCREECH2_EN, (state->m_misc_flags & 0x00400000) ? 1: 0); // Screech2 enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_KLEXPL2_EN, (state->m_misc_flags & 0x02000000) ? 1: 0); // KLEXPL2 enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_MOTOR2_EN, (state->m_misc_flags & 0x08000000) ? 1: 0); // Motor2 enable
+
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_ATTRACT_EN, (state->m_misc_flags & 0x00001000) ? 1: 0); // Attract enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_LOTONE_EN, (state->m_misc_flags & 0x00002000) ? 1: 0); // LoTone enable
+ discrete_sound_w(state->m_discrete, space, DRAGRACE_HITONE_EN, (state->m_misc_flags & 0x20000000) ? 1: 0); // HiTone enable
}
WRITE8_MEMBER(dragrace_state::dragrace_misc_w)
@@ -97,7 +97,7 @@ WRITE8_MEMBER(dragrace_state::dragrace_misc_w)
else
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());
+ dragrace_update_misc_flags(space);
}
WRITE8_MEMBER(dragrace_state::dragrace_misc_clear_w)
@@ -107,7 +107,7 @@ WRITE8_MEMBER(dragrace_state::dragrace_misc_clear_w)
UINT32 mask = 0xff << (((offset >> 3) & 0x03) * 8);
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());
+ dragrace_update_misc_flags(space);
}
READ8_MEMBER(dragrace_state::dragrace_input_r)
diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c
index 15a77ab5e3d..45e83a7c725 100644
--- a/src/mame/drivers/drw80pkr.c
+++ b/src/mame/drivers/drw80pkr.c
@@ -195,11 +195,11 @@ WRITE8_MEMBER(drw80pkr_state::drw80pkr_io_w)
// ay8910 control port
if (m_p1 == 0xfc)
- ay8910_address_w(machine().device("aysnd"), 0, data);
+ ay8910_address_w(machine().device("aysnd"), space, 0, data);
// ay8910_write_port_0_w
if (m_p1 == 0xfe)
- ay8910_data_w(machine().device("aysnd"), 0, data);
+ ay8910_data_w(machine().device("aysnd"), space, 0, data);
}
}
diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c
index 2c070fb6d7d..0652e8a4b50 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -93,10 +93,10 @@ WRITE8_MEMBER(dynadice_state::sound_control_w)
*/
if ((data & 7) == 7)
- ay8910_address_w(device, 0, m_ay_data);
+ ay8910_address_w(device, space, 0, m_ay_data);
if ((data & 7) == 6)
- ay8910_data_w(device, 0, m_ay_data);
+ ay8910_data_w(device, space, 0, m_ay_data);
}
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 2e5f32ecb4d..0d3d1994073 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -1636,8 +1636,8 @@ WRITE8_MEMBER(dynax_state::gekisha_8000_w)
case 0x8050: // CRT controller
case 0x8051: return;
- case 0x8070: ym2413_register_port_w(m_ymsnd, 0, data); return;
- case 0x8071: ym2413_data_port_w(m_ymsnd, 0, data); return;
+ case 0x8070: ym2413_register_port_w(m_ymsnd, space, 0, data); return;
+ case 0x8071: ym2413_data_port_w(m_ymsnd, space, 0, data); return;
case 0x8060: m_keyb = data; return;
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index 78ceaf7815b..eb7736e82bb 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -566,7 +566,7 @@ WRITE8_MEMBER(equites_state::equites_8155_portb_w)
equites_update_dac(machine());
}
-static void equites_msm5232_gate( device_t *device, int state )
+static WRITE_LINE_DEVICE_HANDLER( equites_msm5232_gate )
{
}
@@ -1113,7 +1113,7 @@ GFXDECODE_END
static const msm5232_interface equites_5232intf =
{
{ 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6, 0.47e-6 }, // verified
- equites_msm5232_gate
+ DEVCB_LINE(equites_msm5232_gate)
};
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index cc581d83a22..be1cb3f0ed2 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -524,7 +524,7 @@ READ8_MEMBER(esripsys_state::tms5220_r)
{
/* TMS5220 core returns status bits in D7-D6 */
device_t *tms = machine().device("tms5220nl");
- UINT8 status = tms5220_status_r(tms, 0);
+ UINT8 status = tms5220_status_r(tms, space, 0);
status = ((status & 0x80) >> 5) | ((status & 0x40) >> 5) | ((status & 0x20) >> 5);
return (tms5220_readyq_r(tms) << 7) | (tms5220_intq_r(tms) << 6) | status;
@@ -540,12 +540,12 @@ WRITE8_MEMBER(esripsys_state::tms5220_w)
if (offset == 0)
{
m_tms_data = data;
- tms5220_data_w(tms, 0, m_tms_data);
+ tms5220_data_w(tms, space, 0, m_tms_data);
}
#if 0
if (offset == 1)
{
- tms5220_data_w(tms, 0, m_tms_data);
+ tms5220_data_w(tms, space, 0, m_tms_data);
}
#endif
}
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 711903fcb4f..5040f670a84 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -115,20 +115,20 @@ WRITE8_MEMBER(ettrivia_state::b800_w)
/* special case to return the value written to 0xb000 */
/* does it reset the chips too ? */
case 0: break;
- case 0xc4: m_b000_ret = ay8910_r(machine().device("ay1"), 0); break;
- case 0x94: m_b000_ret = ay8910_r(machine().device("ay2"), 0); break;
- case 0x86: m_b000_ret = ay8910_r(machine().device("ay3"), 0); break;
+ case 0xc4: m_b000_ret = ay8910_r(machine().device("ay1"), space, 0); break;
+ case 0x94: m_b000_ret = ay8910_r(machine().device("ay2"), space, 0); break;
+ case 0x86: m_b000_ret = ay8910_r(machine().device("ay3"), space, 0); break;
case 0x80:
switch(m_b800_prev)
{
- case 0xe0: ay8910_address_w(machine().device("ay1"),0,m_b000_val); break;
- case 0x98: ay8910_address_w(machine().device("ay2"),0,m_b000_val); break;
- case 0x83: ay8910_address_w(machine().device("ay3"),0,m_b000_val); break;
+ case 0xe0: ay8910_address_w(machine().device("ay1"),space,0,m_b000_val); break;
+ case 0x98: ay8910_address_w(machine().device("ay2"),space,0,m_b000_val); break;
+ case 0x83: ay8910_address_w(machine().device("ay3"),space,0,m_b000_val); break;
- case 0xa0: ay8910_data_w(machine().device("ay1"),0,m_b000_val); break;
- case 0x88: ay8910_data_w(machine().device("ay2"),0,m_b000_val); break;
- case 0x81: ay8910_data_w(machine().device("ay3"),0,m_b000_val); break;
+ case 0xa0: ay8910_data_w(machine().device("ay1"),space,0,m_b000_val); break;
+ case 0x88: ay8910_data_w(machine().device("ay2"),space,0,m_b000_val); break;
+ case 0x81: ay8910_data_w(machine().device("ay3"),space,0,m_b000_val); break;
}
break;
diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c
index d4e8d1c533b..286b0dcbcc9 100644
--- a/src/mame/drivers/exterm.c
+++ b/src/mame/drivers/exterm.c
@@ -207,7 +207,7 @@ WRITE8_MEMBER(exterm_state::ym2151_data_latch_w)
{
device_t *device = machine().device("ymsnd");
/* bit 7 of the sound control selects which port */
- ym2151_w(device, m_sound_control >> 7, data);
+ ym2151_w(device, space, m_sound_control >> 7, data);
}
diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c
index 2aa36998a79..f450071f0d1 100644
--- a/src/mame/drivers/famibox.c
+++ b/src/mame/drivers/famibox.c
@@ -180,19 +180,19 @@ WRITE8_MEMBER(famibox_state::sprite_dma_w)
READ8_MEMBER(famibox_state::psg_4015_r)
{
device_t *device = machine().device("nes");
- return nes_psg_r(device, 0x15);
+ return nes_psg_r(device, space, 0x15);
}
WRITE8_MEMBER(famibox_state::psg_4015_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device, 0x15, data);
+ nes_psg_w(device, space, 0x15, data);
}
WRITE8_MEMBER(famibox_state::psg_4017_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device, 0x17, data);
+ nes_psg_w(device, space, 0x17, data);
}
/******************************************************
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index d028286b156..d3a46c5b006 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -21,9 +21,10 @@ static TIMER_DEVICE_CALLBACK( fastlane_scanline )
fastlane_state *state = timer.machine().driver_data<fastlane_state>();
int scanline = param;
- if(scanline == 240 && k007121_ctrlram_r(state->m_k007121, 7) & 0x02) // vblank irq
+ address_space &space = state->generic_space();
+ if(scanline == 240 && k007121_ctrlram_r(state->m_k007121, space, 7) & 0x02) // vblank irq
state->m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
- else if(((scanline % 32) == 0) && k007121_ctrlram_r(state->m_k007121, 7) & 0x01) // timer irq
+ else if(((scanline % 32) == 0) && k007121_ctrlram_r(state->m_k007121, space, 7) & 0x01) // timer irq
state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
@@ -32,7 +33,7 @@ WRITE8_MEMBER(fastlane_state::k007121_registers_w)
{
if (offset < 8)
- k007121_ctrl_w(m_k007121, offset, data);
+ k007121_ctrl_w(m_k007121, space, offset, data);
else /* scroll registers */
m_k007121_regs[offset] = data;
}
@@ -59,25 +60,25 @@ WRITE8_MEMBER(fastlane_state::fastlane_bankswitch_w)
READ8_MEMBER(fastlane_state::fastlane_k1_k007232_r)
{
device_t *device = machine().device("konami1");
- return k007232_r(device, offset ^ 1);
+ return k007232_r(device, space, offset ^ 1);
}
WRITE8_MEMBER(fastlane_state::fastlane_k1_k007232_w)
{
device_t *device = machine().device("konami1");
- k007232_w(device, offset ^ 1, data);
+ k007232_w(device, space, offset ^ 1, data);
}
READ8_MEMBER(fastlane_state::fastlane_k2_k007232_r)
{
device_t *device = machine().device("konami2");
- return k007232_r(device, offset ^ 1);
+ return k007232_r(device, space, offset ^ 1);
}
WRITE8_MEMBER(fastlane_state::fastlane_k2_k007232_w)
{
device_t *device = machine().device("konami2");
- k007232_w(device, offset ^ 1, data);
+ k007232_w(device, space, offset ^ 1, data);
}
static ADDRESS_MAP_START( fastlane_map, AS_PROGRAM, 8, fastlane_state )
AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_SHARE("k007121_regs") /* 007121 registers */
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index f29ee1d2a96..0b9373adfa4 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -137,14 +137,14 @@ WRITE8_MEMBER(fgoal_state::fgoal_row_w)
{
m_row = data;
- mb14241_shift_data_w(m_mb14241, 0, 0);
+ mb14241_shift_data_w(m_mb14241, space, 0, 0);
}
WRITE8_MEMBER(fgoal_state::fgoal_col_w)
{
m_col = data;
- mb14241_shift_count_w(m_mb14241, 0, data);
+ mb14241_shift_count_w(m_mb14241, space, 0, data);
}
READ8_MEMBER(fgoal_state::fgoal_address_hi_r)
@@ -159,14 +159,14 @@ READ8_MEMBER(fgoal_state::fgoal_address_lo_r)
READ8_MEMBER(fgoal_state::fgoal_shifter_r)
{
- UINT8 v = mb14241_shift_result_r(m_mb14241, 0);
+ UINT8 v = mb14241_shift_result_r(m_mb14241, space, 0);
return BITSWAP8(v, 7, 6, 5, 4, 3, 2, 1, 0);
}
READ8_MEMBER(fgoal_state::fgoal_shifter_reverse_r)
{
- UINT8 v = mb14241_shift_result_r(m_mb14241, 0);
+ UINT8 v = mb14241_shift_result_r(m_mb14241, space, 0);
return BITSWAP8(v, 0, 1, 2, 3, 4, 5, 6, 7);
}
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index ac0cd7fc88c..9c14c2e2fae 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -36,7 +36,7 @@ INPUT_CHANGED_MEMBER(firetrk_state::service_mode_switch_changed)
INPUT_CHANGED_MEMBER(firetrk_state::firetrk_horn_changed)
{
device_t *discrete = machine().device("discrete");
- discrete_sound_w(discrete, FIRETRUCK_HORN_EN, newval);
+ discrete_sound_w(discrete, generic_space(), FIRETRUCK_HORN_EN, newval);
}
@@ -90,7 +90,7 @@ WRITE8_MEMBER(firetrk_state::firetrk_output_w)
set_led_status(machine(), 3, !(data & 0x08));
/* BIT4 => ATTRACT */
- discrete_sound_w(discrete, FIRETRUCK_ATTRACT_EN, data & 0x10);
+ discrete_sound_w(discrete, space, FIRETRUCK_ATTRACT_EN, data & 0x10);
coin_lockout_w(machine(), 0, !(data & 0x10));
coin_lockout_w(machine(), 1, !(data & 0x10));
@@ -100,7 +100,7 @@ WRITE8_MEMBER(firetrk_state::firetrk_output_w)
/* BIT6 => UNUSED */
/* BIT7 => BELL OUT */
- discrete_sound_w(discrete, FIRETRUCK_BELL_EN, data & 0x80);
+ discrete_sound_w(discrete, space, FIRETRUCK_BELL_EN, data & 0x80);
}
@@ -112,7 +112,7 @@ WRITE8_MEMBER(firetrk_state::superbug_output_w)
set_led_status(machine(), 0, offset & 0x01);
/* BIT1 => ATTRACT */
- discrete_sound_w(discrete, SUPERBUG_ATTRACT_EN, offset & 0x02);
+ discrete_sound_w(discrete, space, SUPERBUG_ATTRACT_EN, offset & 0x02);
coin_lockout_w(machine(), 0, !(offset & 0x02));
coin_lockout_w(machine(), 1, !(offset & 0x02));
@@ -135,7 +135,7 @@ WRITE8_MEMBER(firetrk_state::montecar_output_1_w)
set_led_status(machine(), 1, !(data & 0x02));
/* BIT2 => ATTRACT */
- discrete_sound_w(discrete, MONTECAR_ATTRACT_INV, data & 0x04);
+ discrete_sound_w(discrete, space, MONTECAR_ATTRACT_INV, data & 0x04);
/* BIT3 => UNUSED */
/* BIT4 => UNUSED */
@@ -157,8 +157,8 @@ WRITE8_MEMBER(firetrk_state::montecar_output_2_w)
m_flash = data & 0x80;
- discrete_sound_w(discrete, MONTECAR_BEEPER_EN, data & 0x10);
- discrete_sound_w(discrete, MONTECAR_DRONE_LOUD_DATA, data & 0x0f);
+ discrete_sound_w(discrete, space, MONTECAR_BEEPER_EN, data & 0x10);
+ discrete_sound_w(discrete, space, MONTECAR_DRONE_LOUD_DATA, data & 0x0f);
}
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index f152256a93e..bf4f45ccda8 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -997,7 +997,8 @@ static const ay8910_interface ay8910_config =
static const msm5232_interface msm5232_config =
{
- { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 } /* 1.0 uF capacitors (verified on real PCB) */
+ { 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6, 1.0e-6 }, /* 1.0 uF capacitors (verified on real PCB) */
+ DEVCB_NULL
};
diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c
index 54813ac8ff5..592a40f011f 100644
--- a/src/mame/drivers/funkball.c
+++ b/src/mame/drivers/funkball.c
@@ -247,26 +247,26 @@ static void cx5510_pci_w(device_t *busdevice, device_t *device, int function, in
READ32_MEMBER(funkball_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(funkball_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(funkball_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(funkball_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
#endif
@@ -337,13 +337,13 @@ WRITE8_MEMBER(funkball_state::at_page8_w)
READ8_MEMBER(funkball_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(funkball_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
WRITE_LINE_MEMBER(funkball_state::pc_dma_hrq_changed)
@@ -436,7 +436,7 @@ READ8_MEMBER(funkball_state::io20_r)
}
else
{
- r = pic8259_r(device, offset);
+ r = pic8259_r(device, space, offset);
}
return r;
}
@@ -456,7 +456,7 @@ WRITE8_MEMBER(funkball_state::io20_w)
}
else
{
- pic8259_w(device, offset, data);
+ pic8259_w(device, space, offset, data);
}
}
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index b8f61914ab7..539eabff04c 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -283,11 +283,11 @@ WRITE8_MEMBER(fuuki32_state::snd_z80_w)
WRITE8_MEMBER(fuuki32_state::snd_ymf278b_w)
{
- ymf278b_w(machine().device("ymf1"), offset, data);
+ ymf278b_w(machine().device("ymf1"), space, offset, data);
// also write to ymf262
if (offset < 4)
- ymf262_w(machine().device("ymf2"), offset, data);
+ ymf262_w(machine().device("ymf2"), space, offset, data);
}
static ADDRESS_MAP_START( fuuki32_sound_map, AS_PROGRAM, 8, fuuki32_state )
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index 8a282e3c69c..e78d6e3c68c 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -267,7 +267,7 @@ 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(machine().device("serial"), 0, data & 0x01);
+ gaelco_serial_tr_w(machine().device("serial"), space, 0, data & 0x01);
else
logerror("%06X:irq_ack_w(%02X) = %08X & %08X\n", space.device().safe_pc(), offset, data, mem_mask);
}
@@ -290,7 +290,7 @@ READ16_MEMBER(gaelco3d_state::eeprom_data_r)
/* bit 0 is clock */
/* bit 1 active */
result &= ~GAELCOSER_EXT_STATUS_MASK;
- result |= gaelco_serial_status_r(machine().device("serial"), 0);
+ result |= gaelco_serial_status_r(machine().device("serial"), space, 0);
}
eeprom_device *eeprom = downcast<eeprom_device *>(device);
@@ -307,7 +307,7 @@ READ32_MEMBER(gaelco3d_state::eeprom_data32_r)
return (eeprom_data_r(space, 0, mem_mask >> 16) << 16) | 0xffff;
else if (ACCESSING_BITS_0_7)
{
- UINT8 data = gaelco_serial_data_r(machine().device("serial"),0);
+ UINT8 data = gaelco_serial_data_r(machine().device("serial"),space,0);
if (LOG)
logerror("%06X:read(%02X) = %08X & %08X\n", machine().device("maincpu")->safe_pc(), offset, data, mem_mask);
return data | 0xffffff00;
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index 09e0f31e8b5..b4bb2018747 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -515,8 +515,8 @@ READ8_MEMBER(galaxian_state::konami_ay8910_r)
{
/* the decoding here is very simplistic, and you can address both simultaneously */
UINT8 result = 0xff;
- if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), 0);
- if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), 0);
+ if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), space, 0);
+ if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), space, 0);
return result;
}
@@ -526,14 +526,14 @@ WRITE8_MEMBER(galaxian_state::konami_ay8910_w)
/* AV 4,5 ==> AY8910 #2 */
/* the decoding here is very simplistic, and you can address two simultaneously */
if (offset & 0x10)
- ay8910_address_w(machine().device("8910.1"), 0, data);
+ ay8910_address_w(machine().device("8910.1"), space, 0, data);
else if (offset & 0x20)
- ay8910_data_w(machine().device("8910.1"), 0, data);
+ ay8910_data_w(machine().device("8910.1"), space, 0, data);
/* AV6,7 ==> AY8910 #1 */
if (offset & 0x40)
- ay8910_address_w(machine().device("8910.0"), 0, data);
+ ay8910_address_w(machine().device("8910.0"), space, 0, data);
else if (offset & 0x80)
- ay8910_data_w(machine().device("8910.0"), 0, data);
+ ay8910_data_w(machine().device("8910.0"), space, 0, data);
}
@@ -604,7 +604,7 @@ WRITE8_MEMBER(galaxian_state::konami_sound_filter_w)
/* low bit goes to 0.22uF capacitor = 220000pF */
/* high bit goes to 0.047uF capacitor = 47000pF */
- discrete_sound_w(discrete, NODE(3 * which + chan + 11), bits);
+ discrete_sound_w(discrete, space, NODE(3 * which + chan + 11), bits);
}
}
@@ -906,7 +906,7 @@ READ8_MEMBER(galaxian_state::frogger_ay8910_r)
{
/* the decoding here is very simplistic */
UINT8 result = 0xff;
- if (offset & 0x40) result &= ay8910_r(machine().device("8910.0"), 0);
+ if (offset & 0x40) result &= ay8910_r(machine().device("8910.0"), space, 0);
return result;
}
@@ -916,9 +916,9 @@ WRITE8_MEMBER(galaxian_state::frogger_ay8910_w)
/* the decoding here is very simplistic */
/* AV6,7 ==> AY8910 #1 */
if (offset & 0x40)
- ay8910_data_w(machine().device("8910.0"), 0, data);
+ ay8910_data_w(machine().device("8910.0"), space, 0, data);
else if (offset & 0x80)
- ay8910_address_w(machine().device("8910.0"), 0, data);
+ ay8910_address_w(machine().device("8910.0"), space, 0, data);
}
@@ -985,9 +985,9 @@ READ8_MEMBER(galaxian_state::scorpion_ay8910_r)
{
/* the decoding here is very simplistic, and you can address both simultaneously */
UINT8 result = 0xff;
- if (offset & 0x08) result &= ay8910_r(machine().device("8910.2"), 0);
- if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), 0);
- if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), 0);
+ if (offset & 0x08) result &= ay8910_r(machine().device("8910.2"), space, 0);
+ if (offset & 0x20) result &= ay8910_r(machine().device("8910.1"), space, 0);
+ if (offset & 0x80) result &= ay8910_r(machine().device("8910.0"), space, 0);
return result;
}
@@ -995,12 +995,12 @@ READ8_MEMBER(galaxian_state::scorpion_ay8910_r)
WRITE8_MEMBER(galaxian_state::scorpion_ay8910_w)
{
/* the decoding here is very simplistic, and you can address all six simultaneously */
- if (offset & 0x04) ay8910_address_w(machine().device("8910.2"), 0, data);
- if (offset & 0x08) ay8910_data_w(machine().device("8910.2"), 0, data);
- if (offset & 0x10) ay8910_address_w(machine().device("8910.1"), 0, data);
- if (offset & 0x20) ay8910_data_w(machine().device("8910.1"), 0, data);
- if (offset & 0x40) ay8910_address_w(machine().device("8910.0"), 0, data);
- if (offset & 0x80) ay8910_data_w(machine().device("8910.0"), 0, data);
+ if (offset & 0x04) ay8910_address_w(machine().device("8910.2"), space, 0, data);
+ if (offset & 0x08) ay8910_data_w(machine().device("8910.2"), space, 0, data);
+ if (offset & 0x10) ay8910_address_w(machine().device("8910.1"), space, 0, data);
+ if (offset & 0x20) ay8910_data_w(machine().device("8910.1"), space, 0, data);
+ if (offset & 0x40) ay8910_address_w(machine().device("8910.0"), space, 0, data);
+ if (offset & 0x80) ay8910_data_w(machine().device("8910.0"), space, 0, data);
}
@@ -1115,7 +1115,7 @@ WRITE8_MEMBER(galaxian_state::zigzag_ay8910_w)
/* bit 0 = WRITE */
/* bit 1 = C/D */
if ((offset & 1) != 0)
- ay8910_data_address_w(machine().device("aysnd"), offset >> 1, m_zigzag_ay8910_latch);
+ ay8910_data_address_w(machine().device("aysnd"), space, offset >> 1, m_zigzag_ay8910_latch);
break;
case 0x100:
@@ -1208,21 +1208,21 @@ WRITE8_MEMBER(galaxian_state::mshuttle_ay8910_cs_w)
WRITE8_MEMBER(galaxian_state::mshuttle_ay8910_control_w)
{
if (!m_mshuttle_ay8910_cs)
- ay8910_address_w(machine().device("aysnd"), offset, data);
+ ay8910_address_w(machine().device("aysnd"), space, offset, data);
}
WRITE8_MEMBER(galaxian_state::mshuttle_ay8910_data_w)
{
if (!m_mshuttle_ay8910_cs)
- ay8910_data_w(machine().device("aysnd"), offset, data);
+ ay8910_data_w(machine().device("aysnd"), space, offset, data);
}
READ8_MEMBER(galaxian_state::mshuttle_ay8910_data_r)
{
if (!m_mshuttle_ay8910_cs)
- return ay8910_r(machine().device("aysnd"), offset);
+ return ay8910_r(machine().device("aysnd"), space, offset);
return 0xff;
}
diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c
index bf300a82986..01d1c80019d 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -192,13 +192,13 @@ static SCREEN_UPDATE_IND16(gamecstl)
READ8_MEMBER(gamecstl_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(gamecstl_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
// Intel 82439TX System Controller (MXTC)
@@ -367,26 +367,26 @@ WRITE32_MEMBER(gamecstl_state::pnp_data_w)
READ32_MEMBER(gamecstl_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(gamecstl_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(gamecstl_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(gamecstl_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index 1361d38410a..6a53934fbfe 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -127,25 +127,25 @@ READ8_MEMBER(gbusters_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(gbusters_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c
index d315a68a638..523206fa7f1 100644
--- a/src/mame/drivers/ghosteo.c
+++ b/src/mame/drivers/ghosteo.c
@@ -557,7 +557,7 @@ device_t* s3c2410;
READ32_MEMBER(ghosteo_state::bballoon_speedup_r)
{
- UINT32 ret = s3c2410_lcd_r(s3c2410, offset+0x10/4, mem_mask);
+ UINT32 ret = s3c2410_lcd_r(s3c2410, space, offset+0x10/4, mem_mask);
int pc = space.device().safe_pc();
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index b46d7ae6c45..660119a410c 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -1272,11 +1272,11 @@ WRITE8_MEMBER(goldnpkr_state::wcfalcon_snd_w)
{
if (wcfalcon_flag == 0)
{
- ay8910_data_address_w(machine().device("ay8910"), 0, data);
+ ay8910_data_address_w(machine().device("ay8910"), space, 0, data);
}
else
{
- ay8910_data_address_w(machine().device("ay8910"), 1, data);
+ ay8910_data_address_w(machine().device("ay8910"), space, 1, data);
}
wcfalcon_flag = wcfalcon_flag ^ 1;
@@ -1361,8 +1361,8 @@ WRITE8_MEMBER(goldnpkr_state::sound_w)
logerror("Sound Data: %2x\n",data & 0x0f);
/* discrete sound is connected to PIA1, portA: bits 0-3 */
- discrete_sound_w(device, NODE_01, data >> 3 & 0x01);
- discrete_sound_w(device, NODE_10, data & 0x07);
+ discrete_sound_w(device, space, NODE_01, data >> 3 & 0x01);
+ discrete_sound_w(device, space, NODE_10, data & 0x07);
}
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index 9c9fb15217a..3e6180540cd 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -29,42 +29,42 @@
READ16_MEMBER(gradius3_state::k052109_halfword_r)
{
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE16_MEMBER(gradius3_state::k052109_halfword_w)
{
if (ACCESSING_BITS_0_7)
- k052109_w(m_k052109, offset, data & 0xff);
+ k052109_w(m_k052109, space, offset, data & 0xff);
/* is this a bug in the game or something else? */
if (!ACCESSING_BITS_0_7)
- k052109_w(m_k052109, offset, (data >> 8) & 0xff);
+ k052109_w(m_k052109, space, offset, (data >> 8) & 0xff);
// logerror("%06x half %04x = %04x\n",space.device().safe_pc(),offset,data);
}
READ16_MEMBER(gradius3_state::k051937_halfword_r)
{
- return k051937_r(m_k051960, offset);
+ return k051937_r(m_k051960, space, offset);
}
WRITE16_MEMBER(gradius3_state::k051937_halfword_w)
{
if (ACCESSING_BITS_0_7)
- k051937_w(m_k051960, offset, data & 0xff);
+ k051937_w(m_k051960, space, offset, data & 0xff);
}
READ16_MEMBER(gradius3_state::k051960_halfword_r)
{
- return k051960_r(m_k051960, offset);
+ return k051960_r(m_k051960, space, offset);
}
WRITE16_MEMBER(gradius3_state::k051960_halfword_w)
{
if (ACCESSING_BITS_0_7)
- k051960_w(m_k051960, offset, data & 0xff);
+ k051960_w(m_k051960, space, offset, data & 0xff);
}
WRITE16_MEMBER(gradius3_state::cpuA_ctrl_w)
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 27630996797..f63cde578fa 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -305,18 +305,18 @@ WRITE8_MEMBER(grchamp_state::cpu1_outputs_w)
/* bit 2-4: ATTACK UP 1-3 */
/* bit 5-6: SIFT 1-2 */
/* bit 7: ENGINE CS */
- discrete_sound_w(discrete, GRCHAMP_ENGINE_CS_EN, data & 0x80);
- discrete_sound_w(discrete, GRCHAMP_SIFT_DATA, (data >> 5) & 0x03);
- discrete_sound_w(discrete, GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07);
- discrete_sound_w(discrete, GRCHAMP_IDLING_EN, data & 0x02);
- discrete_sound_w(discrete, GRCHAMP_FOG_EN, data & 0x01);
+ discrete_sound_w(discrete, space, GRCHAMP_ENGINE_CS_EN, data & 0x80);
+ discrete_sound_w(discrete, space, GRCHAMP_SIFT_DATA, (data >> 5) & 0x03);
+ discrete_sound_w(discrete, space, GRCHAMP_ATTACK_UP_DATA, (data >> 2) & 0x07);
+ discrete_sound_w(discrete, space, GRCHAMP_IDLING_EN, data & 0x02);
+ discrete_sound_w(discrete, space, GRCHAMP_FOG_EN, data & 0x01);
break;
case 0x0d: /* OUTD */
/* bit 0-3: ATTACK SPEED 1-4 */
/* bit 4-7: PLAYER SPEED 1-4 */
- discrete_sound_w(discrete, GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f);
- discrete_sound_w(discrete, GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f);
+ discrete_sound_w(discrete, space, GRCHAMP_PLAYER_SPEED_DATA, (data >> 4) & 0x0f);
+ discrete_sound_w(discrete, space, GRCHAMP_ATTACK_SPEED_DATA, data & 0x0f);
break;
default:
@@ -416,13 +416,13 @@ READ8_MEMBER(grchamp_state::main_to_sub_comm_r)
WRITE8_MEMBER(grchamp_state::grchamp_portA_0_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, GRCHAMP_A_DATA, data);
+ discrete_sound_w(device, space, GRCHAMP_A_DATA, data);
}
WRITE8_MEMBER(grchamp_state::grchamp_portB_0_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, GRCHAMP_B_DATA, 255-data);
+ discrete_sound_w(device, space, GRCHAMP_B_DATA, 255-data);
}
WRITE8_MEMBER(grchamp_state::grchamp_portA_2_w)
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index d28e1792065..f4534379ccb 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -293,13 +293,13 @@ WRITE8_MEMBER(gsword_state::gsword_nmi_set_w)
WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_0_w)
{
device_t *device = machine().device("ay1");
- ay8910_address_w(device,offset,data);
+ ay8910_address_w(device,space,offset,data);
m_fake8910_0 = data;
}
WRITE8_MEMBER(gsword_state::gsword_AY8910_control_port_1_w)
{
device_t *device = machine().device("ay2");
- ay8910_address_w(device,offset,data);
+ ay8910_address_w(device,space,offset,data);
m_fake8910_1 = data;
}
diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c
index 7ee53ac59bb..11d30c08207 100644
--- a/src/mame/drivers/gticlub.c
+++ b/src/mame/drivers/gticlub.c
@@ -286,38 +286,38 @@ static void voodoo_vblank_1(device_t *device, int param)
READ32_MEMBER(gticlub_state::gticlub_k001604_tile_r)
{
device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1");
- return k001604_tile_r(k001604, offset, mem_mask);
+ return k001604_tile_r(k001604, space, offset, mem_mask);
}
WRITE32_MEMBER(gticlub_state::gticlub_k001604_tile_w)
{
device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1");
- k001604_tile_w(k001604, offset, data, mem_mask);
+ k001604_tile_w(k001604, space, offset, data, mem_mask);
}
READ32_MEMBER(gticlub_state::gticlub_k001604_char_r)
{
device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1");
- return k001604_char_r(k001604, offset, mem_mask);
+ return k001604_char_r(k001604, space, offset, mem_mask);
}
WRITE32_MEMBER(gticlub_state::gticlub_k001604_char_w)
{
device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1");
- k001604_char_w(k001604, offset, data, mem_mask);
+ k001604_char_w(k001604, space, offset, data, mem_mask);
}
READ32_MEMBER(gticlub_state::gticlub_k001604_reg_r)
{
device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1");
- return k001604_reg_r(k001604, offset, mem_mask);
+ return k001604_reg_r(k001604, space, offset, mem_mask);
}
WRITE32_MEMBER(gticlub_state::gticlub_k001604_reg_w)
{
device_t *k001604 = machine().device(get_cgboard_id() ? "k001604_2" : "k001604_1");
- k001604_reg_w(k001604, offset, data, mem_mask);
+ k001604_reg_w(k001604, space, offset, data, mem_mask);
}
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 7c83b85c713..89bb0d6df9f 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -113,7 +113,7 @@ READ8_MEMBER(gyruss_state::gyruss_portA_r)
WRITE8_MEMBER(gyruss_state::gyruss_dac_w)
{
- discrete_sound_w(m_discrete, NODE(16), data);
+ discrete_sound_w(m_discrete, space, NODE(16), data);
}
WRITE8_MEMBER(gyruss_state::gyruss_irq_clear_w)
@@ -130,7 +130,8 @@ static void filter_w( device_t *device, int chip, int data )
{
/* low bit: 47000pF = 0.047uF */
/* high bit: 220000pF = 0.22uF */
- discrete_sound_w(device, NODE(3 * chip + i + 21), data & 3);
+ address_space &space = device->machine().driver_data()->generic_space();
+ discrete_sound_w(device, space, NODE(3 * chip + i + 21), data & 3);
data >>= 2;
}
}
diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c
index 61eb4f9103b..5cd7d0cf8e7 100644
--- a/src/mame/drivers/highvdeo.c
+++ b/src/mame/drivers/highvdeo.c
@@ -266,7 +266,7 @@ WRITE16_MEMBER(highvdeo_state::tv_oki6376_w)
if (ACCESSING_BITS_0_7 && okidata != data)
{
okidata = data;
- okim6376_w(device, 0, data & ~0x80);
+ okim6376_w(device, space, 0, data & ~0x80);
okim6376_st_w (device, data & 0x80);
}
}
@@ -340,7 +340,7 @@ WRITE16_MEMBER(highvdeo_state::tv_ncf_oki6376_w)
static int okidata;
if (ACCESSING_BITS_0_7 && okidata != data) {
okidata = data;
- okim6376_w(device, 0, data );
+ okim6376_w(device, space, 0, data );
}
}
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 8404cadf89a..05afa1f7f1b 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -194,16 +194,16 @@ WRITE8_MEMBER(hitme_state::output_port_0_w)
attotime duration = attotime(0, ATTOSECONDS_PER_SECOND * 0.45 * 6.8e-6 * resistance * (data + 1));
m_timeout_time = machine().time() + duration;
- discrete_sound_w(device, HITME_DOWNCOUNT_VAL, data);
- discrete_sound_w(device, HITME_OUT0, 1);
+ discrete_sound_w(device, space, HITME_DOWNCOUNT_VAL, data);
+ discrete_sound_w(device, space, HITME_OUT0, 1);
}
WRITE8_MEMBER(hitme_state::output_port_1_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, HITME_ENABLE_VAL, data);
- discrete_sound_w(device, HITME_OUT1, 1);
+ discrete_sound_w(device, space, HITME_ENABLE_VAL, data);
+ discrete_sound_w(device, space, HITME_OUT1, 1);
}
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 2d541c13fb0..5f9bfb0b55f 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -359,10 +359,10 @@ WRITE8_MEMBER(homedata_state::reikaids_upd7807_portc_w)
coin_counter_w(machine(), 0, ~data & 0x80);
if (BIT(m_upd7807_portc, 5) && !BIT(data, 5)) /* write clock 1->0 */
- ym2203_w(m_ym, BIT(data, 3), m_upd7807_porta);
+ ym2203_w(m_ym, space, BIT(data, 3), m_upd7807_porta);
if (BIT(m_upd7807_portc, 4) && !BIT(data, 4)) /* read clock 1->0 */
- m_upd7807_porta = ym2203_r(m_ym, BIT(data, 3));
+ m_upd7807_porta = ym2203_r(m_ym, space, BIT(data, 3));
m_upd7807_portc = data;
}
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index 6558033d171..2d4b2494700 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -97,7 +97,7 @@ WRITE8_MEMBER(homerun_state::homerun_d7756_sample_w)
m_sample = data;
if (m_d7756 != NULL)
- upd7759_port_w(m_d7756, 0, data);
+ upd7759_port_w(m_d7756, space, 0, data);
}
static ADDRESS_MAP_START( homerun_memmap, AS_PROGRAM, 8, homerun_state )
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index 310b6d1b171..2cde6e9a97e 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -377,38 +377,38 @@ public:
READ32_MEMBER(hornet_state::hornet_k037122_sram_r)
{
device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1");
- return k037122_sram_r(k037122, offset, mem_mask);
+ return k037122_sram_r(k037122, space, offset, mem_mask);
}
WRITE32_MEMBER(hornet_state::hornet_k037122_sram_w)
{
device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1");
- k037122_sram_w(k037122, offset, data, mem_mask);
+ k037122_sram_w(k037122, space, offset, data, mem_mask);
}
READ32_MEMBER(hornet_state::hornet_k037122_char_r)
{
device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1");
- return k037122_char_r(k037122, offset, mem_mask);
+ return k037122_char_r(k037122, space, offset, mem_mask);
}
WRITE32_MEMBER(hornet_state::hornet_k037122_char_w)
{
device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1");
- k037122_char_w(k037122, offset, data, mem_mask);
+ k037122_char_w(k037122, space, offset, data, mem_mask);
}
READ32_MEMBER(hornet_state::hornet_k037122_reg_r)
{
device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1");
- return k037122_reg_r(k037122, offset, mem_mask);
+ return k037122_reg_r(k037122, space, offset, mem_mask);
}
WRITE32_MEMBER(hornet_state::hornet_k037122_reg_w)
{
device_t *k037122 = machine().device(get_cgboard_id() ? "k037122_2" : "k037122_1");
- k037122_reg_w(k037122, offset, data, mem_mask);
+ k037122_reg_w(k037122, space, offset, data, mem_mask);
}
static void voodoo_vblank_0(device_t *device, int param)
@@ -490,7 +490,7 @@ READ8_MEMBER(hornet_state::sysreg_r)
0x01 = ADDO (ADC DO)
*/
r = 0xf0 | (eeprom->read_bit() << 3);
- r |= adc1213x_do_r(adc12138, 0) | (adc1213x_eoc_r(adc12138, 0) << 2);
+ r |= adc1213x_do_r(adc12138, space, 0) | (adc1213x_eoc_r(adc12138, space, 0) << 2);
break;
case 4: /* I/O port 4 - DIP switches */
@@ -544,10 +544,10 @@ WRITE8_MEMBER(hornet_state::sysreg_w)
0x02 = ADDI (ADC DI)
0x01 = ADDSCLK (ADC SCLK)
*/
- adc1213x_cs_w(adc12138, 0, (data >> 3) & 0x1);
- adc1213x_conv_w(adc12138, 0, (data >> 2) & 0x1);
- adc1213x_di_w(adc12138, 0, (data >> 1) & 0x1);
- adc1213x_sclk_w(adc12138, 0, data & 0x1);
+ adc1213x_cs_w(adc12138, space, 0, (data >> 3) & 0x1);
+ adc1213x_conv_w(adc12138, space, 0, (data >> 2) & 0x1);
+ adc1213x_di_w(adc12138, space, 0, (data >> 1) & 0x1);
+ adc1213x_sclk_w(adc12138, space, 0, data & 0x1);
machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
mame_printf_debug("System register 1 = %02X\n", data);
diff --git a/src/mame/drivers/icecold.c b/src/mame/drivers/icecold.c
index 379faecda20..dd9f1e58838 100644
--- a/src/mame/drivers/icecold.c
+++ b/src/mame/drivers/icecold.c
@@ -221,9 +221,9 @@ READ8_MEMBER( icecold_state::kbd_r )
WRITE8_MEMBER( icecold_state::snd_ctrl_w )
{
if (m_ay_ctrl & ~data & 0x04)
- ay8910_data_address_w(m_ay8910_0, m_ay_ctrl & 0x01, m_sound_latch);
+ ay8910_data_address_w(m_ay8910_0, space, m_ay_ctrl & 0x01, m_sound_latch);
if (m_ay_ctrl & ~data & 0x20)
- ay8910_data_address_w(m_ay8910_1, (m_ay_ctrl>>3) & 0x01, m_sound_latch);
+ ay8910_data_address_w(m_ay8910_1, space, (m_ay_ctrl>>3) & 0x01, m_sound_latch);
m_ay_ctrl = data;
}
@@ -236,9 +236,9 @@ WRITE8_MEMBER( icecold_state::ay_w )
READ8_MEMBER( icecold_state::ay_r )
{
if (m_ay_ctrl & 0x02)
- return ay8910_r(m_ay8910_0, 0);
+ return ay8910_r(m_ay8910_0, space, 0);
if (m_ay_ctrl & 0x10)
- return ay8910_r(m_ay8910_1, 0);
+ return ay8910_r(m_ay8910_1, space, 0);
return 0;
}
diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c
index b1091cd85df..ae53cdb3aac 100644
--- a/src/mame/drivers/igs011.c
+++ b/src/mame/drivers/igs011.c
@@ -2461,9 +2461,9 @@ READ16_MEMBER(igs011_state::ics2115_word_r)
ics2115_device* ics2115 = machine().device<ics2115_device>("ics");
switch(offset)
{
- case 0: return ics2115_device::read(ics2115, (offs_t)0);
- case 1: return ics2115_device::read(ics2115, (offs_t)1);
- case 2: return (ics2115_device::read(ics2115, (offs_t)3) << 8) | ics2115_device::read(ics2115, (offs_t)2);
+ case 0: return ics2115_device::read(ics2115, space, (offs_t)0);
+ case 1: return ics2115_device::read(ics2115, space, (offs_t)1);
+ case 2: return (ics2115_device::read(ics2115, space, (offs_t)3) << 8) | ics2115_device::read(ics2115, space, (offs_t)2);
}
return 0xff;
}
@@ -2474,11 +2474,11 @@ WRITE16_MEMBER(igs011_state::ics2115_word_w)
switch(offset)
{
case 1:
- if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,1,data);
+ if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,space, 1,data);
break;
case 2:
- if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,2,data);
- if (ACCESSING_BITS_8_15) ics2115_device::write(ics2115,3,data>>8);
+ if (ACCESSING_BITS_0_7) ics2115_device::write(ics2115,space, 2,data);
+ if (ACCESSING_BITS_8_15) ics2115_device::write(ics2115,space, 3,data>>8);
break;
}
}
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index 87ce05ff80b..25378618c17 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -46,9 +46,9 @@ WRITE8_MEMBER(ironhors_state::ironhors_sh_irqtrigger_w)
WRITE8_MEMBER(ironhors_state::ironhors_filter_w)
{
device_t *device = machine().device("disc_ih");
- discrete_sound_w(device, NODE_11, (data & 0x04) >> 2);
- discrete_sound_w(device, NODE_12, (data & 0x02) >> 1);
- discrete_sound_w(device, NODE_13, (data & 0x01) >> 0);
+ discrete_sound_w(device, space, NODE_11, (data & 0x04) >> 2);
+ discrete_sound_w(device, space, NODE_12, (data & 0x02) >> 1);
+ discrete_sound_w(device, space, NODE_13, (data & 0x01) >> 0);
}
/*************************************
diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c
index 435de9d12ad..2724d5203e3 100644
--- a/src/mame/drivers/jpmimpct.c
+++ b/src/mame/drivers/jpmimpct.c
@@ -476,7 +476,7 @@ WRITE16_MEMBER(jpmimpct_state::upd7759_w)
device_t *device = machine().device("upd");
if (ACCESSING_BITS_0_7)
{
- upd7759_port_w(device, 0, data);
+ upd7759_port_w(device, space, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c
index 134d3f8ee64..e91ac2601a9 100644
--- a/src/mame/drivers/jpmsys5.c
+++ b/src/mame/drivers/jpmsys5.c
@@ -316,7 +316,7 @@ WRITE16_MEMBER(jpmsys5_state::jpm_upd7759_w)
{
case 0:
{
- upd7759_port_w(device, 0, data & 0xff);
+ upd7759_port_w(device, space, 0, data & 0xff);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
break;
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index b029ccd17aa..3363cc7d4fa 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -162,36 +162,36 @@ READ16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_r)
{
device_t *device = machine().device("ay1");
/* Each 2149 register is mapped to a different address */
- ay8910_address_w(device,0,offset);
- return ay8910_r(device,0);
+ ay8910_address_w(device,space,0,offset);
+ return ay8910_r(device,space,0);
}
WRITE16_MEMBER(kaneko16_state::kaneko16_ay1_YM2149_w)
{
device_t *device = machine().device("ay1");
/* Each 2149 register is mapped to a different address */
- ay8910_address_w(device,0,offset);
+ ay8910_address_w(device,space,0,offset);
/* The registers are mapped to odd addresses, except one! */
- if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff);
- else ay8910_data_w(device,0,(data >> 8) & 0xff);
+ if (ACCESSING_BITS_0_7) ay8910_data_w(device,space,0, data & 0xff);
+ else ay8910_data_w(device,space,0,(data >> 8) & 0xff);
}
READ16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_r)
{
device_t *device = machine().device("ay2");
/* Each 2149 register is mapped to a different address */
- ay8910_address_w(device,0,offset);
- return ay8910_r(device,0);
+ ay8910_address_w(device,space,0,offset);
+ return ay8910_r(device,space,0);
}
WRITE16_MEMBER(kaneko16_state::kaneko16_ay2_YM2149_w)
{
device_t *device = machine().device("ay2");
/* Each 2149 register is mapped to a different address */
- ay8910_address_w(device,0,offset);
+ ay8910_address_w(device,space,0,offset);
/* The registers are mapped to odd addresses, except one! */
- if (ACCESSING_BITS_0_7) ay8910_data_w(device,0, data & 0xff);
- else ay8910_data_w(device,0,(data >> 8) & 0xff);
+ if (ACCESSING_BITS_0_7) ay8910_data_w(device,space,0, data & 0xff);
+ else ay8910_data_w(device,space,0,(data >> 8) & 0xff);
}
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index cebdf9b47b9..363e0af6ea2 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -304,28 +304,28 @@ static void ide_interrupt(device_t *device, int state)
READ32_MEMBER(kinst_state::kinst_ide_r)
{
device_t *device = machine().device("ide");
- return midway_ide_asic_r(device, offset / 2, mem_mask);
+ return midway_ide_asic_r(device, space, offset / 2, mem_mask);
}
WRITE32_MEMBER(kinst_state::kinst_ide_w)
{
device_t *device = machine().device("ide");
- midway_ide_asic_w(device, offset / 2, data, mem_mask);
+ midway_ide_asic_w(device, space, offset / 2, data, mem_mask);
}
READ32_MEMBER(kinst_state::kinst_ide_extra_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f6/4, 0x00ff0000) >> 16;
+ return ide_controller32_r(device, space, 0x3f6/4, 0x00ff0000) >> 16;
}
WRITE32_MEMBER(kinst_state::kinst_ide_extra_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x3f6/4, data << 16, 0x00ff0000);
+ ide_controller32_w(device, space, 0x3f6/4, data << 16, 0x00ff0000);
}
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index f1daa576106..d00b7297739 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -76,7 +76,7 @@ WRITE8_MEMBER(kncljoe_state::m6803_port2_w)
{
/* control or data port? */
if (m_port2 & 0x08)
- ay8910_data_address_w(device, m_port2 >> 2, m_port1);
+ ay8910_data_address_w(device, space, m_port2 >> 2, m_port1);
}
m_port2 = data;
}
@@ -86,7 +86,7 @@ READ8_MEMBER(kncljoe_state::m6803_port1_r)
device_t *device = machine().device("aysnd");
if (m_port2 & 0x08)
- return ay8910_r(device, 0);
+ return ay8910_r(device, space, 0);
return 0xff;
}
diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c
index a76409503f1..98f1e005ae9 100644
--- a/src/mame/drivers/ksys573.c
+++ b/src/mame/drivers/ksys573.c
@@ -1484,25 +1484,25 @@ READ32_MEMBER(ksys573_state::ge765pwbba_r)
switch (offset)
{
case 0x26:
- upd4701_y_add(upd4701, 0, ioport("uPD4701_y")->read_safe(0), 0xffff);
- upd4701_switches_set(upd4701, 0, ioport("uPD4701_switches")->read_safe(0));
+ upd4701_y_add(upd4701, space, 0, ioport("uPD4701_y")->read_safe(0), 0xffff);
+ upd4701_switches_set(upd4701, space, 0, ioport("uPD4701_switches")->read_safe(0));
- upd4701_cs_w(upd4701, 0, 0);
- upd4701_xy_w(upd4701, 0, 1);
+ upd4701_cs_w(upd4701, space, 0, 0);
+ upd4701_xy_w(upd4701, space, 0, 1);
if (ACCESSING_BITS_0_7)
{
- upd4701_ul_w(upd4701, 0, 0);
- data |= upd4701_d_r(upd4701, 0, 0xffff) << 0;
+ upd4701_ul_w(upd4701, space, 0, 0);
+ data |= upd4701_d_r(upd4701, space, 0, 0xffff) << 0;
}
if (ACCESSING_BITS_16_23)
{
- upd4701_ul_w(upd4701, 0, 1);
- data |= upd4701_d_r(upd4701, 0, 0xffff) << 16;
+ upd4701_ul_w(upd4701, space, 0, 1);
+ data |= upd4701_d_r(upd4701, space, 0, 0xffff) << 16;
}
- upd4701_cs_w(upd4701, 0, 1);
+ upd4701_cs_w(upd4701, space, 0, 1);
break;
default:
@@ -1539,8 +1539,8 @@ WRITE32_MEMBER(ksys573_state::ge765pwbba_w)
case 0x28:
if (ACCESSING_BITS_0_7)
{
- upd4701_resety_w(upd4701, 0, 1);
- upd4701_resety_w(upd4701, 0, 0);
+ upd4701_resety_w(upd4701, space, 0, 1);
+ upd4701_resety_w(upd4701, space, 0, 0);
}
break;
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index 4aaa94c4d1d..a6d35b2b019 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -19,14 +19,16 @@
static INTERRUPT_GEN( labyrunr_vblank_interrupt )
{
labyrunr_state *state = device->machine().driver_data<labyrunr_state>();
- if (k007121_ctrlram_r(state->m_k007121, 7) & 0x02)
+ address_space &space = state->generic_space();
+ if (k007121_ctrlram_r(state->m_k007121, space, 7) & 0x02)
device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
}
static INTERRUPT_GEN( labyrunr_timer_interrupt )
{
labyrunr_state *state = device->machine().driver_data<labyrunr_state>();
- if (k007121_ctrlram_r(state->m_k007121, 7) & 0x01)
+ address_space &space = state->generic_space();
+ if (k007121_ctrlram_r(state->m_k007121, space, 7) & 0x01)
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index cb0fdfb8b53..6d461e670bb 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -119,7 +119,8 @@ static const ay8910_interface ay8910_config =
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 }
+ { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 },
+ DEVCB_NULL
};
READ8_MEMBER(ladyfrog_state::snd_flag_r)
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index 8fa0333d8cc..3fae707fc50 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -582,7 +582,7 @@ WRITE_LINE_MEMBER(laserbat_state::zaccaria_irq0b)
READ8_MEMBER(laserbat_state::zaccaria_port0a_r)
{
device_t *ay = (m_active_8910 == 0) ? m_ay1 : m_ay2;
- return ay8910_r(ay, 0);
+ return ay8910_r(ay, space, 0);
}
WRITE8_MEMBER(laserbat_state::zaccaria_port0a_w)
@@ -596,7 +596,7 @@ WRITE8_MEMBER(laserbat_state::zaccaria_port0b_w)
if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- ay8910_data_address_w(m_ay1, m_last_port0b >> 0, m_port0a);
+ ay8910_data_address_w(m_ay1, space, m_last_port0b >> 0, m_port0a);
}
else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
{
@@ -608,7 +608,7 @@ WRITE8_MEMBER(laserbat_state::zaccaria_port0b_w)
if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- ay8910_data_address_w(m_ay2, m_last_port0b >> 2, m_port0a);
+ ay8910_data_address_w(m_ay2, space, m_last_port0b >> 2, m_port0a);
}
else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
{
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index c14489aa6a9..17b2dc83ee2 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -266,7 +266,7 @@ READ8_MEMBER(lethal_state::le_4800_r)
case 0x4d:
case 0x4e:
case 0x4f:
- return k053244_r(m_k053244, offset - 0x40);
+ return k053244_r(m_k053244, space, offset - 0x40);
case 0x80:
case 0x81:
@@ -300,22 +300,22 @@ READ8_MEMBER(lethal_state::le_4800_r)
case 0x9d:
case 0x9e:
case 0x9f:
- return k054000_r(m_k054000, offset - 0x80);
+ return k054000_r(m_k054000, space, offset - 0x80);
case 0xca:
return sound_status_r(space, 0);
}
}
else if (offset < 0x1800)
- return k053245_r(m_k053244, (offset - 0x0800) & 0x07ff);
+ return k053245_r(m_k053244, space, (offset - 0x0800) & 0x07ff);
else if (offset < 0x2000)
- return k056832_ram_code_lo_r(m_k056832, offset - 0x1800);
+ return k056832_ram_code_lo_r(m_k056832, space, offset - 0x1800);
else if (offset < 0x2800)
- return k056832_ram_code_hi_r(m_k056832, offset - 0x2000);
+ return k056832_ram_code_hi_r(m_k056832, space, offset - 0x2000);
else if (offset < 0x3000)
- return k056832_ram_attr_lo_r(m_k056832, offset - 0x2800);
+ return k056832_ram_attr_lo_r(m_k056832, space, offset - 0x2800);
else // (offset < 0x3800)
- return k056832_ram_attr_hi_r(m_k056832, offset - 0x3000);
+ return k056832_ram_attr_hi_r(m_k056832, space, offset - 0x3000);
}
return 0;
@@ -358,7 +358,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w)
case 0x4d:
case 0x4e:
case 0x4f:
- k053244_w(m_k053244, offset - 0x40, data);
+ k053244_w(m_k053244, space, offset - 0x40, data);
break;
case 0x80:
@@ -393,7 +393,7 @@ WRITE8_MEMBER(lethal_state::le_4800_w)
case 0x9d:
case 0x9e:
case 0x9f:
- k054000_w(m_k054000, offset - 0x80, data);
+ k054000_w(m_k054000, space, offset - 0x80, data);
break;
default:
@@ -402,15 +402,15 @@ WRITE8_MEMBER(lethal_state::le_4800_w)
}
}
else if (offset < 0x1800)
- k053245_w(m_k053244, (offset - 0x0800) & 0x07ff, data);
+ k053245_w(m_k053244, space, (offset - 0x0800) & 0x07ff, data);
else if (offset < 0x2000)
- k056832_ram_code_lo_w(m_k056832, offset - 0x1800, data);
+ k056832_ram_code_lo_w(m_k056832, space, offset - 0x1800, data);
else if (offset < 0x2800)
- k056832_ram_code_hi_w(m_k056832, offset - 0x2000, data);
+ k056832_ram_code_hi_w(m_k056832, space, offset - 0x2000, data);
else if (offset < 0x3000)
- k056832_ram_attr_lo_w(m_k056832, offset - 0x2800, data);
+ k056832_ram_attr_lo_w(m_k056832, space, offset - 0x2800, data);
else // (offset < 0x3800)
- k056832_ram_attr_hi_w(m_k056832, offset - 0x3000, data);
+ k056832_ram_attr_hi_w(m_k056832, space, offset - 0x3000, data);
}
}
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index bf5acbf1ad0..4370b0f4756 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -141,8 +141,8 @@ static WRITE8_DEVICE_HANDLER( ic8j2_output_changed )
/* written from /Q to A with slight delight */
LOG(("ic8j2: %d\n", data));
- ttl74123_a_w(device, 0, data);
- ttl74123_a_w(state->m_ic8j1, 0, data);
+ ttl74123_a_w(device, space, 0, data);
+ ttl74123_a_w(state->m_ic8j1, space, 0, data);
}
static const ttl74123_interface ic8j1_intf =
@@ -154,7 +154,7 @@ static const ttl74123_interface ic8j1_intf =
1, /* A pin - driven by the CRTC */
1, /* B pin - pulled high */
1, /* Clear pin - pulled high */
- ic8j1_output_changed
+ DEVCB_HANDLER(ic8j1_output_changed)
};
static const ttl74123_interface ic8j2_intf =
@@ -166,7 +166,7 @@ static const ttl74123_interface ic8j2_intf =
1, /* A pin - driven by the CRTC */
1, /* B pin - pulled high */
1, /* Clear pin - pulled high */
- ic8j2_output_changed
+ DEVCB_HANDLER(ic8j2_output_changed)
};
/*************************************
@@ -476,8 +476,8 @@ READ8_MEMBER(m10_state::m10_a700_r)
{
//LOG(("rd:%d\n",machine().primary_screen->vpos()));
LOG(("clear\n"));
- ttl74123_clear_w(m_ic8j1, 0, 0);
- ttl74123_clear_w(m_ic8j1, 0, 1);
+ ttl74123_clear_w(m_ic8j1, space, 0, 0);
+ ttl74123_clear_w(m_ic8j1, space, 0, 1);
return 0x00;
}
@@ -486,8 +486,8 @@ READ8_MEMBER(m10_state::m11_a700_r)
//LOG(("rd:%d\n",machine().primary_screen->vpos()));
//m_maincpu->set_input_line(0, CLEAR_LINE);
LOG(("clear\n"));
- ttl74123_clear_w(m_ic8j1, 0, 0);
- ttl74123_clear_w(m_ic8j1, 0, 1);
+ ttl74123_clear_w(m_ic8j1, space, 0, 0);
+ ttl74123_clear_w(m_ic8j1, space, 0, 1);
return 0x00;
}
diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c
index 809e8f82eae..35a814678ef 100644
--- a/src/mame/drivers/m63.c
+++ b/src/mame/drivers/m63.c
@@ -390,13 +390,13 @@ WRITE8_MEMBER(m63_state::snddata_w)
{
if ((m_p2 & 0xf0) == 0xe0)
- ay8910_address_w(m_ay1, 0, offset);
+ ay8910_address_w(m_ay1, space, 0, offset);
else if ((m_p2 & 0xf0) == 0xa0)
- ay8910_data_w(m_ay1, 0, offset);
+ ay8910_data_w(m_ay1, space, 0, offset);
else if (m_ay2 != NULL && (m_p1 & 0xe0) == 0x60)
- ay8910_address_w(m_ay2, 0, offset);
+ ay8910_address_w(m_ay2, space, 0, offset);
else if (m_ay2 != NULL && (m_p1 & 0xe0) == 0x40)
- ay8910_data_w(m_ay2, 0, offset);
+ ay8910_data_w(m_ay2, space, 0, offset);
else if ((m_p2 & 0xf0) == 0x70 )
m_sound_status = offset;
}
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index 5e2a410d422..b5883f1466f 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -437,9 +437,10 @@ static int find_sample(int num)
static INTERRUPT_GEN(fake_nmi)
{
m72_state *state = device->machine().driver_data<m72_state>();
- int sample = m72_sample_r(state->m_audio,0);
+ address_space &space = state->generic_space();
+ int sample = m72_sample_r(state->m_audio,space,0);
if (sample)
- m72_sample_w(state->m_audio,0,sample);
+ m72_sample_w(state->m_audio,space,0,sample);
}
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index 6f8c23c7baa..62cb9046c70 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -680,17 +680,19 @@ static const ym2151_interface dynablsb_ym2151_config =
static INTERRUPT_GEN( fake_nmi )
{
m90_state *state = device->machine().driver_data<m90_state>();
- int sample = m72_sample_r(state->m_audio,0);
+ address_space &space = *device->machine().firstcpu->space(AS_PROGRAM);
+ int sample = m72_sample_r(state->m_audio,space,0);
if (sample)
- m72_sample_w(state->m_audio,0,sample);
+ m72_sample_w(state->m_audio,space,0,sample);
}
static INTERRUPT_GEN( bomblord_fake_nmi )
{
m90_state *state = device->machine().driver_data<m90_state>();
- int sample = m72_sample_r(state->m_audio,0);
+ address_space &space = *device->machine().firstcpu->space(AS_PROGRAM);
+ int sample = m72_sample_r(state->m_audio,space,0);
if (sample != 0x80)
- m72_sample_w(state->m_audio,0,sample);
+ m72_sample_w(state->m_audio,space,0,sample);
}
static INTERRUPT_GEN( m90_interrupt )
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 0164cf5fad2..54313345b40 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -69,12 +69,12 @@ READ8_MEMBER(madalien_state::madalien_sound_command_r)
WRITE8_MEMBER(madalien_state::madalien_portA_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, MADALIEN_8910_PORTA, data);
+ discrete_sound_w(device, space, MADALIEN_8910_PORTA, data);
}
WRITE8_MEMBER(madalien_state::madalien_portB_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, MADALIEN_8910_PORTB, data);
+ discrete_sound_w(device, space, MADALIEN_8910_PORTB, data);
}
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 8f03ea6d871..54d8ad36640 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -140,25 +140,25 @@ READ8_MEMBER(mainevt_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(mainevt_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index 5211a43561a..9734a59c401 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -74,7 +74,7 @@
READ8_MEMBER(malzak_state::fake_VRLE_r)
{
- return (s2636_work_ram_r(m_s2636_0, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40);
+ return (s2636_work_ram_r(m_s2636_0, space, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40);
}
READ8_MEMBER(malzak_state::s2636_portA_r)
diff --git a/src/mame/drivers/maygay1b.c b/src/mame/drivers/maygay1b.c
index 80d674cd7f5..b9d007f744b 100644
--- a/src/mame/drivers/maygay1b.c
+++ b/src/mame/drivers/maygay1b.c
@@ -841,7 +841,7 @@ WRITE8_MEMBER(maygay1b_state::m1_latch_w)
WRITE8_MEMBER(maygay1b_state::latch_ch2_w)
{
device_t *msm6376 = machine().device("msm6376");
- okim6376_w(msm6376, 0, data&0x7f);
+ okim6376_w(msm6376, space, 0, data&0x7f);
okim6376_ch2_w(msm6376,data&0x80);
}
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index f77fd90aeba..0e7de1d2b21 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -651,7 +651,7 @@ WRITE8_MEMBER(mcr_state::dotron_op4_w)
*
*************************************/
-WRITE8_DEVICE_HANDLER( mcr_ipu_sio_transmit )
+WRITE16_DEVICE_HANDLER( mcr_ipu_sio_transmit )
{
logerror("ipu_sio_transmit: %02X\n", data);
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index aa90258a903..663da48974b 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -426,38 +426,38 @@ WRITE32_MEMBER(mediagx_state::disp_ctrl_w)
READ8_MEMBER(mediagx_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(mediagx_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
READ32_MEMBER(mediagx_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(mediagx_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(mediagx_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(mediagx_state::fdc_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
@@ -565,7 +565,7 @@ READ8_MEMBER(mediagx_state::io20_r)
}
else
{
- r = pic8259_r(device, offset);
+ r = pic8259_r(device, space, offset);
}
return r;
}
@@ -585,7 +585,7 @@ WRITE8_MEMBER(mediagx_state::io20_w)
}
else
{
- pic8259_w(device, offset, data);
+ pic8259_w(device, space, offset, data);
}
}
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index 8feb2212118..298dea03759 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -124,14 +124,14 @@ Stephh's notes (based on the games Z80 code and some tests) :
WRITE8_MEMBER(mermaid_state::mermaid_ay8910_write_port_w)
{
- if (m_ay8910_enable[0]) ay8910_data_w(m_ay1, offset, data);
- if (m_ay8910_enable[1]) ay8910_data_w(m_ay2, offset, data);
+ if (m_ay8910_enable[0]) ay8910_data_w(m_ay1, space, offset, data);
+ if (m_ay8910_enable[1]) ay8910_data_w(m_ay2, space, offset, data);
}
WRITE8_MEMBER(mermaid_state::mermaid_ay8910_control_port_w)
{
- if (m_ay8910_enable[0]) ay8910_address_w(m_ay1, offset, data);
- if (m_ay8910_enable[1]) ay8910_address_w(m_ay2, offset, data);
+ if (m_ay8910_enable[0]) ay8910_address_w(m_ay1, space, offset, data);
+ if (m_ay8910_enable[1]) ay8910_address_w(m_ay2, space, offset, data);
}
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 69f3ee0a20a..aaa10d1a8cd 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -370,7 +370,7 @@ WRITE8_MEMBER(metro_state::metro_portb_w)
{
if (!BIT(data, 2))
{
- ym2413_w(m_ymsnd, BIT(data, 1), m_porta);
+ ym2413_w(m_ymsnd, space, BIT(data, 1), m_porta);
}
m_portb = data;
return;
@@ -412,13 +412,13 @@ WRITE8_MEMBER(metro_state::daitorid_portb_w)
if (!BIT(data, 2))
{
/* write */
- ym2151_w(m_ymsnd, BIT(data, 1), m_porta);
+ ym2151_w(m_ymsnd, space, BIT(data, 1), m_porta);
}
if (!BIT(data, 3))
{
/* read */
- m_porta = ym2151_r(m_ymsnd, BIT(data, 1));
+ m_porta = ym2151_r(m_ymsnd, space, BIT(data, 1));
}
m_portb = data;
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index c02d431cdb3..04a8cef4808 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -66,7 +66,7 @@ PS4 J8635 PS4 J8541 PS4 J8648
READ8_MEMBER(mexico86_state::kiki_ym2203_r)
{
device_t *device = machine().device("ymsnd");
- UINT8 result = ym2203_r(device, offset);
+ UINT8 result = ym2203_r(device, space, offset);
if (offset == 0)
result &= 0x7f;
diff --git a/src/mame/drivers/midqslvr.c b/src/mame/drivers/midqslvr.c
index 39fd77be878..a2e3c88d91c 100644
--- a/src/mame/drivers/midqslvr.c
+++ b/src/mame/drivers/midqslvr.c
@@ -396,26 +396,26 @@ WRITE32_MEMBER(midqslvr_state::bios_ram_w)
READ32_MEMBER(midqslvr_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(midqslvr_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(midqslvr_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(midqslvr_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
READ8_MEMBER(midqslvr_state::at_page8_r)
@@ -463,13 +463,13 @@ WRITE8_MEMBER(midqslvr_state::at_page8_w)
READ8_MEMBER(midqslvr_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(midqslvr_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
WRITE_LINE_MEMBER(midqslvr_state::pc_dma_hrq_changed)
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index b8e313373e3..488aaf3a913 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -158,7 +158,7 @@ WRITE32_MEMBER(midzeus_state::cmos_protect_w)
READ32_MEMBER(midzeus_state::zeus2_timekeeper_r)
{
device_t *device = machine().device("m48t35");
- return timekeeper_r(device, offset) | 0xffffff00;
+ return timekeeper_r(device, space, offset) | 0xffffff00;
}
@@ -166,7 +166,7 @@ WRITE32_MEMBER(midzeus_state::zeus2_timekeeper_w)
{
device_t *device = machine().device("m48t35");
if (bitlatch[2] && !cmos_protected)
- timekeeper_w(device, offset, data);
+ timekeeper_w(device, space, offset, data);
else
logerror("%s:zeus2_timekeeper_w with bitlatch[2] = %d, cmos_protected = %d\n", machine().describe_context(), bitlatch[2], cmos_protected);
cmos_protected = TRUE;
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index 0b6661765ca..8d04b8fa6b3 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -87,7 +87,8 @@ void miragemi_state::video_start()
static SCREEN_UPDATE_RGB32( mirage )
{
miragemi_state *state = screen.machine().driver_data<miragemi_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c
index 561f3136d5e..6c1609cf94d 100644
--- a/src/mame/drivers/mirax.c
+++ b/src/mame/drivers/mirax.c
@@ -242,15 +242,15 @@ WRITE8_MEMBER(mirax_state::audio_w)
WRITE8_MEMBER(mirax_state::ay1_sel)
{
device_t *device = machine().device("ay1");
- ay8910_address_w(device,0,m_nAyCtrl);
- ay8910_data_w(device,0,data);
+ ay8910_address_w(device,space,0,m_nAyCtrl);
+ ay8910_data_w(device,space,0,data);
}
WRITE8_MEMBER(mirax_state::ay2_sel)
{
device_t *device = machine().device("ay2");
- ay8910_address_w(device,0,m_nAyCtrl);
- ay8910_data_w(device,0,data);
+ ay8910_address_w(device,space,0,m_nAyCtrl);
+ ay8910_data_w(device,space,0,data);
}
WRITE8_MEMBER(mirax_state::nmi_mask_w)
diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c
index 86cdffa53bb..e03dd2b8af3 100644
--- a/src/mame/drivers/mlanding.c
+++ b/src/mame/drivers/mlanding.c
@@ -348,11 +348,11 @@ WRITE16_MEMBER(mlanding_state::ml_to_sound_w)
{
device_t *tc0140syt = machine().device("tc0140syt");
if (offset == 0)
- tc0140syt_port_w(tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
{
//machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
- tc0140syt_comm_w(tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(tc0140syt, space, 0, data & 0xff);
}
}
@@ -360,11 +360,11 @@ WRITE8_MEMBER(mlanding_state::ml_sound_to_main_w)
{
device_t *tc0140syt = machine().device("tc0140syt");
if (offset == 0)
- tc0140syt_slave_port_w(tc0140syt, 0, data & 0xff);
+ tc0140syt_slave_port_w(tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
{
//machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
- tc0140syt_slave_comm_w(tc0140syt, 0, data & 0xff);
+ tc0140syt_slave_comm_w(tc0140syt, space, 0, data & 0xff);
}
}
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index ae7c4403326..3aea59d6fb2 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -1014,7 +1014,7 @@ WRITE32_MEMBER(model2_state::model2_serial_w)
{
if (ACCESSING_BITS_0_7 && (offset == 0))
{
- scsp_midi_in(machine().device("scsp"), 0, data&0xff, 0);
+ scsp_midi_in(machine().device("scsp"), space, 0, data&0xff, 0);
// give the 68k time to notice
space.device().execute().spin_until_time(attotime::from_usec(40));
diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c
index 57ae44f10f1..6caefd77f25 100644
--- a/src/mame/drivers/model3.c
+++ b/src/mame/drivers/model3.c
@@ -1638,7 +1638,7 @@ WRITE8_MEMBER(model3_state::model3_sound_w)
model3_set_irq_line(machine(), 0x40, CLEAR_LINE);
// send to the sound board
- scsp_midi_in(machine().device("scsp1"), 0, data, 0);
+ scsp_midi_in(machine().device("scsp1"), space, 0, data, 0);
if (m_sound_irq_enable)
{
diff --git a/src/mame/drivers/mpu4hw.c b/src/mame/drivers/mpu4hw.c
index 2ce95e8706a..3687c8ebad2 100644
--- a/src/mame/drivers/mpu4hw.c
+++ b/src/mame/drivers/mpu4hw.c
@@ -1119,7 +1119,7 @@ BDIR BC1 |
*/
/* PSG function selected */
-static void update_ay(device_t *device)
+static void update_ay(device_t *device, address_space &space)
{
device_t *ay = device->machine().device("ay8913");
if (!ay) return;
@@ -1145,7 +1145,7 @@ static void update_ay(device_t *device)
{/* CA2 = 0 CB2 = 1? : Write to selected PSG register and write data to Port A */
pia6821_device *pia_ic6 = device->machine().device<pia6821_device>("pia_ic6");
device_t *ay = device->machine().device("ay8913");
- ay8910_data_w(ay, 0, pia_ic6->a_output());
+ ay8910_data_w(ay, space, 0, pia_ic6->a_output());
LOG(("AY Chip Write \n"));
break;
}
@@ -1154,7 +1154,7 @@ static void update_ay(device_t *device)
The register will remain selected until another is chosen.*/
pia6821_device *pia_ic6 = device->machine().device<pia6821_device>("pia_ic6");
device_t *ay = device->machine().device("ay8913");
- ay8910_address_w(ay, 0, pia_ic6->a_output());
+ ay8910_address_w(ay, space, 0, pia_ic6->a_output());
LOG(("AY Chip Select \n"));
break;
}
@@ -1170,7 +1170,7 @@ static void update_ay(device_t *device)
WRITE_LINE_MEMBER(mpu4_state::pia_ic5_cb2_w)
{
device_t *device = machine().device("pia_ic5");
- update_ay(device);
+ update_ay(device, generic_space());
}
@@ -1229,7 +1229,7 @@ WRITE8_MEMBER(mpu4_state::pia_ic6_porta_w)
if (m_mod_number <4)
{
m_ay_data = data;
- update_ay(device);
+ update_ay(device, space);
}
}
@@ -1242,7 +1242,7 @@ WRITE_LINE_MEMBER(mpu4_state::pia_ic6_ca2_w)
{
if ( state ) m_ay8913_address |= 0x01;
else m_ay8913_address &= ~0x01;
- update_ay(device);
+ update_ay(device, generic_space());
}
}
@@ -1255,7 +1255,7 @@ WRITE_LINE_MEMBER(mpu4_state::pia_ic6_cb2_w)
{
if ( state ) m_ay8913_address |= 0x02;
else m_ay8913_address &= ~0x02;
- update_ay(device);
+ update_ay(device, generic_space());
}
}
@@ -1461,7 +1461,7 @@ WRITE8_MEMBER(mpu4_state::pia_gb_porta_w)
{
device_t *msm6376 = machine().device("msm6376");
LOG_SS(("%s: GAMEBOARD: PIA Port A Set to %2x\n", machine().describe_context(),data));
- okim6376_w(msm6376, 0, data);
+ okim6376_w(msm6376, space, 0, data);
}
WRITE8_MEMBER(mpu4_state::pia_gb_portb_w)
@@ -2292,7 +2292,7 @@ READ8_MEMBER(mpu4_state::bwb_characteriser_r)
WRITE8_MEMBER(mpu4_state::mpu4_ym2413_w)
{
device_t *ym = machine().device("ym2413");
- if (ym) ym2413_w(ym,offset,data);
+ if (ym) ym2413_w(ym,space,offset,data);
}
READ8_MEMBER(mpu4_state::mpu4_ym2413_r)
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index 660a83f1245..c68d2f96cc8 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -424,7 +424,8 @@ GFXDECODE_END
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 } /* 0.65 (???) uF capacitors (match the sample, not verified) */
+ { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, /* 0.65 (???) uF capacitors (match the sample, not verified) */
+ DEVCB_NULL
};
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 4193f77fdd4..4845d5a5033 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -363,13 +363,13 @@ WRITE8_MEMBER(multfish_state::multfish_bank_w)
READ8_MEMBER(multfish_state::multfish_timekeeper_r)
{
device_t *device = machine().device("m48t35");
- return timekeeper_r(device, offset + 0x6000);
+ return timekeeper_r(device, space, offset + 0x6000);
}
WRITE8_MEMBER(multfish_state::multfish_timekeeper_w)
{
device_t *device = machine().device("m48t35");
- timekeeper_w(device, offset + 0x6000, data);
+ timekeeper_w(device, space, offset + 0x6000, data);
}
READ8_MEMBER(multfish_state::bankedram_r)
@@ -377,7 +377,7 @@ READ8_MEMBER(multfish_state::bankedram_r)
if ((m_rambk & 0x80) == 0x00)
{
- return timekeeper_r(machine().device("m48t35"), offset + 0x2000*(m_rambk & 0x03));
+ return timekeeper_r(machine().device("m48t35"), space, offset + 0x2000*(m_rambk & 0x03));
}
else
{
@@ -391,7 +391,7 @@ WRITE8_MEMBER(multfish_state::bankedram_w)
if ((m_rambk & 0x80) == 0x00)
{
- timekeeper_w(machine().device("m48t35"), offset + 0x2000*(m_rambk & 0x03), data);
+ timekeeper_w(machine().device("m48t35"), space, offset + 0x2000*(m_rambk & 0x03), data);
}
else
{
@@ -1131,8 +1131,8 @@ MACHINE_RESET_MEMBER(multfish_state,island2a)
multfish_state::machine_reset();
// this set needs preprogrammed data in timekeeper
- timekeeper_w(machine().device("m48t35"), 0x2003 , 0x01);
- timekeeper_w(machine().device("m48t35"), 0x4003 , 0x02);
+ timekeeper_w(machine().device("m48t35"), generic_space(), 0x2003 , 0x01);
+ timekeeper_w(machine().device("m48t35"), generic_space(), 0x4003 , 0x02);
}
static MACHINE_CONFIG_DERIVED( island2a, multfish )
diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c
index 68c3e376f04..4379573c253 100644
--- a/src/mame/drivers/multigam.c
+++ b/src/mame/drivers/multigam.c
@@ -242,19 +242,19 @@ WRITE8_MEMBER(multigam_state::sprite_dma_w)
READ8_MEMBER(multigam_state::psg_4015_r)
{
device_t *device = machine().device("nes");
- return nes_psg_r(device, 0x15);
+ return nes_psg_r(device, space, 0x15);
}
WRITE8_MEMBER(multigam_state::psg_4015_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device, 0x15, data);
+ nes_psg_w(device, space, 0x15, data);
}
WRITE8_MEMBER(multigam_state::psg_4017_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device, 0x17, data);
+ nes_psg_w(device, space, 0x17, data);
}
/******************************************************
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index fa0f3a6b9ac..bc233fdb25a 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -74,14 +74,14 @@ WRITE8_MEMBER(munchmo_state::sound_nmi_ack_w)
READ8_MEMBER(munchmo_state::munchmo_ay1reset_r)
{
device_t *device = machine().device("ay1");
- ay8910_reset_w(device,0,0);
+ ay8910_reset_w(device,space,0,0);
return 0;
}
READ8_MEMBER(munchmo_state::munchmo_ay2reset_r)
{
device_t *device = machine().device("ay2");
- ay8910_reset_w(device,0,0);
+ ay8910_reset_w(device,space,0,0);
return 0;
}
/*************************************
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index e4fdd78df28..c40d5ff3276 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -168,7 +168,7 @@
READ8_MEMBER(mw8080bw_state::mw8080bw_shift_result_rev_r)
{
- UINT8 ret = mb14241_shift_result_r(m_mb14241, 0);
+ UINT8 ret = mb14241_shift_result_r(m_mb14241, space, 0);
return BITSWAP8(ret,0,1,2,3,4,5,6,7);
}
@@ -184,7 +184,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r)
}
else
{
- ret = mb14241_shift_result_r(m_mb14241, 0);
+ ret = mb14241_shift_result_r(m_mb14241, space, 0);
}
return ret;
@@ -192,7 +192,7 @@ READ8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_result_r)
WRITE8_MEMBER(mw8080bw_state::mw8080bw_reversable_shift_count_w)
{
- mb14241_shift_count_w(m_mb14241, offset, data);
+ mb14241_shift_count_w(m_mb14241, space, offset, data);
m_rev_shift_res = data & 0x08;
}
@@ -425,10 +425,10 @@ WRITE8_MEMBER(mw8080bw_state::gunfight_io_w)
gunfight_audio_w(space, 0, data);
if (offset & 0x02)
- mb14241_shift_count_w(m_mb14241, 0, data);
+ mb14241_shift_count_w(m_mb14241, space, 0, data);
if (offset & 0x04)
- mb14241_shift_data_w(m_mb14241, 0, data);
+ mb14241_shift_data_w(m_mb14241, space, 0, data);
}
@@ -618,13 +618,13 @@ WRITE8_MEMBER(mw8080bw_state::tornbase_io_w)
{
if (offset & 0x01)
- tornbase_audio_w(machine().device("discrete"), 0, data);
+ tornbase_audio_w(machine().device("discrete"), space, 0, data);
if (offset & 0x02)
- mb14241_shift_count_w(m_mb14241, 0, data);
+ mb14241_shift_count_w(m_mb14241, space, 0, data);
if (offset & 0x04)
- mb14241_shift_data_w(m_mb14241, 0, data);
+ mb14241_shift_data_w(m_mb14241, space, 0, data);
}
@@ -1070,7 +1070,7 @@ MACHINE_CONFIG_END
WRITE8_MEMBER(mw8080bw_state::checkmat_io_w)
{
- if (offset & 0x01) checkmat_audio_w(m_discrete, 0, data);
+ if (offset & 0x01) checkmat_audio_w(m_discrete, space, 0, data);
if (offset & 0x02) watchdog_reset_w(space, 0, data);
}
@@ -2165,13 +2165,13 @@ WRITE8_MEMBER(mw8080bw_state::spcenctr_io_w)
watchdog_reset_w(space, 0, data); /* - - - - - 0 1 0 */
else if ((offset & 0x5f) == 0x01)
- spcenctr_audio_1_w(m_discrete, 0, data); /* - 0 - 0 0 0 0 1 */
+ spcenctr_audio_1_w(m_discrete, space, 0, data); /* - 0 - 0 0 0 0 1 */
else if ((offset & 0x5f) == 0x09)
- spcenctr_audio_2_w(m_discrete, 0, data); /* - 0 - 0 1 0 0 1 */
+ spcenctr_audio_2_w(m_discrete, space, 0, data); /* - 0 - 0 1 0 0 1 */
else if ((offset & 0x5f) == 0x11)
- spcenctr_audio_3_w(m_discrete, 0, data); /* - 0 - 1 0 0 0 1 */
+ spcenctr_audio_3_w(m_discrete, space, 0, data); /* - 0 - 1 0 0 0 1 */
else if ((offset & 0x07) == 0x03)
{ /* - - - - - 0 1 1 */
@@ -2381,7 +2381,7 @@ READ8_MEMBER(mw8080bw_state::bowler_shift_result_r)
anything unusual on the schematics that would cause
the bits to flip */
- return ~mb14241_shift_result_r(m_mb14241, 0);
+ return ~mb14241_shift_result_r(m_mb14241, space, 0);
}
WRITE8_MEMBER(mw8080bw_state::bowler_lights_1_w)
diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c
index 31605d71d8a..8e3c29ae5b9 100644
--- a/src/mame/drivers/mystston.c
+++ b/src/mame/drivers/mystston.c
@@ -77,14 +77,14 @@ WRITE8_MEMBER(mystston_state::mystston_ay8910_select_w)
if (((*m_ay8910_select & 0x20) == 0x20) && ((data & 0x20) == 0x00))
{
/* bit 4 goes to the 8910 #0 BC1 pin */
- ay8910_data_address_w(machine().device("ay1"), *m_ay8910_select >> 4, *m_ay8910_data);
+ ay8910_data_address_w(machine().device("ay1"), space, *m_ay8910_select >> 4, *m_ay8910_data);
}
/* bit 7 goes to 8910 #1 BDIR pin */
if (((*m_ay8910_select & 0x80) == 0x80) && ((data & 0x80) == 0x00))
{
/* bit 6 goes to the 8910 #1 BC1 pin */
- ay8910_data_address_w(machine().device("ay2"), *m_ay8910_select >> 6, *m_ay8910_data);
+ ay8910_data_address_w(machine().device("ay2"), space, *m_ay8910_select >> 6, *m_ay8910_data);
}
*m_ay8910_select = data;
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index f3833e4a1c2..32d60b5f39f 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -806,7 +806,7 @@ READ16_MEMBER(namcona1_state::snd_r)
{
device_t *device = machine().device("c140");
/* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */
- return c140_r(device,offset*2+1) | c140_r(device,offset*2)<<8;
+ return c140_r(device,space,offset*2+1) | c140_r(device,space,offset*2)<<8;
}
WRITE16_MEMBER(namcona1_state::snd_w)
@@ -815,12 +815,12 @@ WRITE16_MEMBER(namcona1_state::snd_w)
/* can't use DEVREADWRITE8 for this because it is opposite endianness to the CPU for some reason */
if (ACCESSING_BITS_0_7)
{
- c140_w(device,(offset*2)+1, data);
+ c140_w(device,space,(offset*2)+1, data);
}
if (ACCESSING_BITS_8_15)
{
- c140_w(device,(offset*2), data>>8);
+ c140_w(device,space,(offset*2), data>>8);
}
}
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index ab0a0e129c5..0ade1d44ffc 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -306,7 +306,7 @@ WRITE8_MEMBER(namcos86_state::cus115_w)
case 1:
case 2:
case 3:
- namco_63701x_w(machine().device("namco2"), (offset & 0x1e00) >> 9,data);
+ namco_63701x_w(machine().device("namco2"), space, (offset & 0x1e00) >> 9,data);
break;
case 4:
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index 4522d88af44..00617df2112 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -426,7 +426,7 @@ WRITE16_MEMBER(neogeo_state::io_control_w)
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 0x28: upd4990a_control_16_w(m_upd4990a, space, 0, data, mem_mask); break;
// case 0x30: break; // coin counters
// case 0x31: break; // coin counters
// case 0x32: break; // coin lockout
@@ -476,7 +476,7 @@ READ16_MEMBER(neogeo_state::neogeo_unmapped_r)
CUSTOM_INPUT_MEMBER(neogeo_state::get_calendar_status)
{
- return (upd4990a_databit_r(m_upd4990a, 0) << 1) | upd4990a_testbit_r(m_upd4990a, 0);
+ return (upd4990a_databit_r(m_upd4990a, generic_space(), 0) << 1) | upd4990a_testbit_r(m_upd4990a, generic_space(), 0);
}
diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c
index 655921aeb00..6e0392789b7 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -136,12 +136,12 @@ READ16_MEMBER(neoprint_state::neoprint_calendar_r)
//if(space.device().safe_pc() != 0x4b38 )//&& space.device().safe_pc() != 0x5f86 && space.device().safe_pc() != 0x5f90)
// printf("%08x\n",space.device().safe_pc());
- return (upd4990a_databit_r(machine().device("upd4990a"), 0) << 15);
+ return (upd4990a_databit_r(machine().device("upd4990a"), space, 0) << 15);
}
WRITE16_MEMBER(neoprint_state::neoprint_calendar_w)
{
- upd4990a_control_16_w(machine().device("upd4990a"), 0, ((data >> 8) & 7), mem_mask);
+ upd4990a_control_16_w(machine().device("upd4990a"), space, 0, ((data >> 8) & 7), mem_mask);
}
READ8_MEMBER(neoprint_state::neoprint_unk_r)
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index 70bf258efac..62c138b5a0b 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -369,9 +369,9 @@ WRITE16_MEMBER(ninjaw_state::ninjaw_sound_w)
{
if (offset == 0)
- tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff);
#ifdef MAME_DEBUG
if (data & 0xff00)
@@ -383,7 +383,7 @@ READ16_MEMBER(ninjaw_state::ninjaw_sound_r)
{
if (offset == 1)
- return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff));
else
return 0;
}
@@ -413,9 +413,9 @@ WRITE8_MEMBER(ninjaw_state::ninjaw_pancontrol)
WRITE16_MEMBER(ninjaw_state::tc0100scn_triple_screen_w)
{
- 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);
+ tc0100scn_word_w(m_tc0100scn_1, space, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_2, space, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_3, space, offset, data, mem_mask);
}
/***********************************************************
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index 4fb4f068330..1c2de5cc52c 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -669,8 +669,8 @@ WRITE8_MEMBER(norautp_state::soundlamps_w)
output_set_lamp_value(9, (data >> 1) & 1); /* BET / COLLECT lamp */
/* the 4 MSB are for discrete sound */
- discrete_sound_w(discrete, NORAUTP_SND_EN, (data >> 7) & 0x01);
- discrete_sound_w(discrete, NORAUTP_FREQ_DATA, (data >> 4) & 0x07);
+ discrete_sound_w(discrete, space, NORAUTP_SND_EN, (data >> 7) & 0x01);
+ discrete_sound_w(discrete, space, NORAUTP_FREQ_DATA, (data >> 4) & 0x07);
// popmessage("sound bits 4-5-6-7: %02x, %02x, %02x, %02x", ((data >> 4) & 0x01), ((data >> 5) & 0x01), ((data >> 6) & 0x01), ((data >> 7) & 0x01));
}
diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c
index c5bec5f234b..420f1cd9c6f 100644
--- a/src/mame/drivers/nss.c
+++ b/src/mame/drivers/nss.c
@@ -354,12 +354,12 @@ ADDRESS_MAP_END
static READ8_DEVICE_HANDLER( spc_ram_100_r )
{
- return spc_ram_r(device, offset + 0x100);
+ return spc_ram_r(device, space, offset + 0x100);
}
static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
{
- spc_ram_w(device, offset + 0x100, data);
+ spc_ram_w(device, space, offset + 0x100, data);
}
static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, nss_state )
@@ -465,13 +465,13 @@ READ8_MEMBER(nss_state::nss_prot_r)
if (m_cart_sel == 0)
{
- rp5h01_enable_w(m_rp5h01, 0, 0);
- data |= ((~rp5h01_counter_r(m_rp5h01, 0)) << 4) & 0x10; /* D4 */
- data |= ((rp5h01_data_r(m_rp5h01, 0)) << 3) & 0x08; /* D3 */
- rp5h01_enable_w(m_rp5h01, 0, 1);
+ rp5h01_enable_w(m_rp5h01, space, 0, 0);
+ data |= ((~rp5h01_counter_r(m_rp5h01, space, 0)) << 4) & 0x10; /* D4 */
+ data |= ((rp5h01_data_r(m_rp5h01, space, 0)) << 3) & 0x08; /* D3 */
+ rp5h01_enable_w(m_rp5h01, space, 0, 1);
}
else
- rp5h01_enable_w(m_rp5h01, 0, 1);
+ rp5h01_enable_w(m_rp5h01, space, 0, 1);
return data;
}
@@ -480,14 +480,14 @@ WRITE8_MEMBER(nss_state::nss_prot_w)
{
if (m_cart_sel == 0)
{
- rp5h01_enable_w(m_rp5h01, 0, 0);
- rp5h01_test_w(m_rp5h01, 0, data & 0x10); /* D4 */
- rp5h01_clock_w(m_rp5h01, 0, data & 0x08); /* D3 */
- rp5h01_cs_w(m_rp5h01, 0, ~data & 0x01);
- rp5h01_enable_w(m_rp5h01, 0, 1);
+ rp5h01_enable_w(m_rp5h01, space, 0, 0);
+ rp5h01_test_w(m_rp5h01, space, 0, data & 0x10); /* D4 */
+ rp5h01_clock_w(m_rp5h01, space, 0, data & 0x08); /* D3 */
+ rp5h01_cs_w(m_rp5h01, space, 0, ~data & 0x01);
+ rp5h01_enable_w(m_rp5h01, space, 0, 1);
}
else
- rp5h01_enable_w(m_rp5h01, 0, 1);
+ rp5h01_enable_w(m_rp5h01, space, 0, 1);
ioport("EEPROMOUT")->write(data, 0xff);
}
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index b95173afc30..25eb08ad126 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -315,7 +315,7 @@ READ32_MEMBER(nwktr_state::sysreg_r)
}
if (ACCESSING_BITS_0_7)
{
- r |= adc1213x_do_r(adc12138, 0) | (adc1213x_eoc_r(adc12138, 0) << 2);
+ r |= adc1213x_do_r(adc12138, space, 0) | (adc1213x_eoc_r(adc12138, space, 0) << 2);
}
}
else if (offset == 1)
@@ -352,10 +352,10 @@ WRITE32_MEMBER(nwktr_state::sysreg_w)
int di = (data >> 25) & 0x1;
int sclk = (data >> 24) & 0x1;
- adc1213x_cs_w(adc12138, 0, cs);
- adc1213x_conv_w(adc12138, 0, conv);
- adc1213x_di_w(adc12138, 0, di);
- adc1213x_sclk_w(adc12138, 0, sclk);
+ adc1213x_cs_w(adc12138, space, 0, cs);
+ adc1213x_conv_w(adc12138, space, 0, conv);
+ adc1213x_di_w(adc12138, space, 0, di);
+ adc1213x_sclk_w(adc12138, space, 0, sclk);
}
if (ACCESSING_BITS_0_7)
{
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index 7a17fad9f2d..b1b9e6ae520 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -318,7 +318,8 @@ static const ay8910_interface ay8910_config =
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 } /* 0.65 (???) uF capacitors (match the sample, not verified) */
+ { 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6, 0.65e-6 }, /* 0.65 (???) uF capacitors (match the sample, not verified) */
+ DEVCB_NULL
};
diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c
index be9358acd3b..edf9e583e88 100644
--- a/src/mame/drivers/nyny.c
+++ b/src/mame/drivers/nyny.c
@@ -277,7 +277,7 @@ static const ttl74123_interface ic48_1_config =
1, /* A pin - driven by the CRTC */
1, /* B pin - pulled high */
1, /* Clear pin - pulled high */
- ic48_1_74123_output_changed
+ DEVCB_HANDLER(ic48_1_74123_output_changed)
};
@@ -420,7 +420,7 @@ static MC6845_END_UPDATE( end_update )
WRITE_LINE_MEMBER(nyny_state::display_enable_changed)
{
- ttl74123_a_w(m_ic48_1, 0, state);
+ ttl74123_a_w(m_ic48_1, generic_space(), 0, state);
}
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index 57df7006c8a..0745052ffd9 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -61,9 +61,9 @@ static INTERRUPT_GEN( orbit_interrupt )
*
*************************************/
-static void update_misc_flags(running_machine &machine, UINT8 val)
+static void update_misc_flags(address_space &space, UINT8 val)
{
- orbit_state *state = machine.driver_data<orbit_state>();
+ orbit_state *state = space.machine().driver_data<orbit_state>();
state->m_misc_flags = val;
@@ -76,13 +76,13 @@ static void update_misc_flags(running_machine &machine, UINT8 val)
/* BIT6 => HYPER LED */
/* BIT7 => WARNING SND */
- discrete_sound_w(state->m_discrete, ORBIT_WARNING_EN, BIT(state->m_misc_flags, 7));
+ discrete_sound_w(state->m_discrete, space, ORBIT_WARNING_EN, BIT(state->m_misc_flags, 7));
- set_led_status(machine, 0, BIT(state->m_misc_flags, 3));
- set_led_status(machine, 1, BIT(state->m_misc_flags, 6));
+ set_led_status(space.machine(), 0, BIT(state->m_misc_flags, 3));
+ set_led_status(space.machine(), 1, BIT(state->m_misc_flags, 6));
- coin_lockout_w(machine, 0, !BIT(state->m_misc_flags, 1));
- coin_lockout_w(machine, 1, !BIT(state->m_misc_flags, 1));
+ coin_lockout_w(space.machine(), 0, !BIT(state->m_misc_flags, 1));
+ coin_lockout_w(space.machine(), 1, !BIT(state->m_misc_flags, 1));
}
@@ -91,9 +91,9 @@ WRITE8_MEMBER(orbit_state::orbit_misc_w)
UINT8 bit = offset >> 1;
if (offset & 1)
- update_misc_flags(machine(), m_misc_flags | (1 << bit));
+ update_misc_flags(space, m_misc_flags | (1 << bit));
else
- update_misc_flags(machine(), m_misc_flags & ~(1 << bit));
+ update_misc_flags(space, m_misc_flags & ~(1 << bit));
}
@@ -283,8 +283,7 @@ void orbit_state::machine_start()
void orbit_state::machine_reset()
{
-
- update_misc_flags(machine(), 0);
+ update_misc_flags(generic_space(), 0);
m_flip_screen = 0;
}
diff --git a/src/mame/drivers/othello.c b/src/mame/drivers/othello.c
index ae1ab6f8048..5e2cf62a169 100644
--- a/src/mame/drivers/othello.c
+++ b/src/mame/drivers/othello.c
@@ -225,15 +225,15 @@ WRITE8_MEMBER(othello_state::ack_w)
WRITE8_MEMBER(othello_state::ay_address_w)
{
- if (m_ay_select & 1) ay8910_address_w(m_ay1, 0, data);
- if (m_ay_select & 2) ay8910_address_w(m_ay2, 0, data);
+ if (m_ay_select & 1) ay8910_address_w(m_ay1, space, 0, data);
+ if (m_ay_select & 2) ay8910_address_w(m_ay2, space, 0, data);
}
WRITE8_MEMBER(othello_state::ay_data_w)
{
- if (m_ay_select & 1) ay8910_data_w(m_ay1, 0, data);
- if (m_ay_select & 2) ay8910_data_w(m_ay2, 0, data);
+ if (m_ay_select & 1) ay8910_data_w(m_ay1, space, 0, data);
+ if (m_ay_select & 2) ay8910_data_w(m_ay2, space, 0, data);
}
static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, othello_state )
@@ -300,7 +300,7 @@ WRITE8_MEMBER(othello_state::n7751_p2_w)
device_t *device = machine().device("n7751_8243");
/* write to P2; low 4 bits go to 8243 */
- i8243_p2_w(device, offset, data & 0x0f);
+ i8243_p2_w(device, space, offset, data & 0x0f);
/* output of bit $80 indicates we are ready (1) or busy (0) */
/* no other outputs are used */
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 91a43103c4e..4ee5bd44b36 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -340,7 +340,7 @@ WRITE16_MEMBER(othunder_state::othunder_tc0220ioc_w)
break;
default:
- tc0220ioc_w(m_tc0220ioc, offset, data & 0xff);
+ tc0220ioc_w(m_tc0220ioc, space, offset, data & 0xff);
}
}
}
@@ -359,7 +359,7 @@ READ16_MEMBER(othunder_state::othunder_tc0220ioc_r)
return (m_eeprom->read_bit() & 1) << 7;
default:
- return tc0220ioc_r(m_tc0220ioc, offset);
+ return tc0220ioc_r(m_tc0220ioc, space, offset);
}
}
@@ -406,15 +406,15 @@ WRITE8_MEMBER(othunder_state::sound_bankswitch_w)
WRITE16_MEMBER(othunder_state::othunder_sound_w)
{
if (offset == 0)
- tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff);
}
READ16_MEMBER(othunder_state::othunder_sound_r)
{
if (offset == 1)
- return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff));
else
return 0;
}
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index dec80a7e346..6120863c70b 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -137,13 +137,13 @@ WRITE16_MEMBER(overdriv_state::cpuB_ctrl_w)
READ8_MEMBER(overdriv_state::overdriv_1_sound_r)
{
device_t *device = machine().device("k053260_1");
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
READ8_MEMBER(overdriv_state::overdriv_2_sound_r)
{
device_t *device = machine().device("k053260_2");
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
WRITE16_MEMBER(overdriv_state::overdriv_soundirq_w)
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index 2b4b81e9d10..fea831e0cfd 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -537,11 +537,11 @@ 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 */
if (offset < 0x10)
- pacman_sound_w(machine().device("namco"), offset, data);
+ pacman_sound_w(machine().device("namco"), space, offset, data);
else if (offset < 0x20)
m_spriteram2[offset - 0x10] = data;
else
- pacman_sound_w(machine().device("namco"), offset - 0x10, data);
+ pacman_sound_w(machine().device("namco"), space, offset - 0x10, data);
}
READ8_MEMBER(pacman_state::alibaba_mystery_1_r)
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index d1e72e841cf..93188ac187a 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -58,18 +58,18 @@ READ8_MEMBER(parodius_state::parodius_052109_053245_r)
{
if (m_videobank & 0x02)
- return k053245_r(m_k053245, offset);
+ return k053245_r(m_k053245, space, offset);
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(parodius_state::parodius_052109_053245_w)
{
if (m_videobank & 0x02)
- k053245_w(m_k053245, offset, data);
+ k053245_w(m_k053245, space, offset, data);
else
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
}
WRITE8_MEMBER(parodius_state::parodius_videobank_w)
@@ -103,7 +103,7 @@ WRITE8_MEMBER(parodius_state::parodius_3fc0_w)
READ8_MEMBER(parodius_state::parodius_sound_r)
{
device_t *device = machine().device("k053260");
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
WRITE8_MEMBER(parodius_state::parodius_sh_irqtrigger_w)
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index d4fea1e619d..ba85601f69d 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -350,19 +350,19 @@ WRITE8_MEMBER(playch10_state::time_w)
READ8_MEMBER(playch10_state::psg_4015_r)
{
device_t *device = machine().device("nes");
- return nes_psg_r(device, 0x15);
+ return nes_psg_r(device, space, 0x15);
}
WRITE8_MEMBER(playch10_state::psg_4015_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device, 0x15, data);
+ nes_psg_w(device, space, 0x15, data);
}
WRITE8_MEMBER(playch10_state::psg_4017_w)
{
device_t *device = machine().device("nes");
- nes_psg_w(device, 0x17, data);
+ nes_psg_w(device, space, 0x17, data);
}
/******************************************************************************/
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index cd8237d435a..18de7399d02 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -303,8 +303,8 @@ WRITE8_MEMBER(polepos_state::polepos_latch_w)
polepos_sound_enable(machine().device("namco"),bit);
if (!bit)
{
- polepos_engine_sound_lsb_w(machine().device("polepos"), 0, 0);
- polepos_engine_sound_msb_w(machine().device("polepos"), 0, 0);
+ polepos_engine_sound_lsb_w(machine().device("polepos"), space, 0, 0);
+ polepos_engine_sound_msb_w(machine().device("polepos"), space, 0, 0);
}
break;
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 20c90c7fb78..185cbd0bebc 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -217,7 +217,7 @@ WRITE8_MEMBER(ppmast93_state::ppmast_sound_w)
switch(offset&0xff)
{
case 0:
- case 1: ym2413_w(machine().device("ymsnd"),offset,data); break;
+ case 1: ym2413_w(machine().device("ymsnd"),space,offset,data); break;
case 2: machine().device<dac_device>("dac")->write_unsigned8(data);break;
default: logerror("%x %x - %x\n",offset,data,space.device().safe_pcbase());
}
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index 074348193bd..f8ad1f5102a 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -42,7 +42,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(prehisle_state::D7759_write_port_0_w)
{
device_t *device = machine().device("upd");
- upd7759_port_w(device, 0, data);
+ upd7759_port_w(device, space, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/drivers/proconn.c b/src/mame/drivers/proconn.c
index 9cf4b427289..0b133417a63 100644
--- a/src/mame/drivers/proconn.c
+++ b/src/mame/drivers/proconn.c
@@ -35,8 +35,8 @@ public:
optional_device<roc10937_t> m_vfd;
- DECLARE_WRITE8_MEMBER( ay_w0 ) { ay8910_address_data_w(m_ay, 0, data); }
- DECLARE_WRITE8_MEMBER( ay_w1 ) { ay8910_address_data_w(m_ay, 1, data); }
+ DECLARE_WRITE8_MEMBER( ay_w0 ) { ay8910_address_data_w(m_ay, space, 0, data); }
+ DECLARE_WRITE8_MEMBER( ay_w1 ) { ay8910_address_data_w(m_ay, space, 1, data); }
DECLARE_WRITE8_MEMBER( ctc_w0 ) { m_z80ctc->write(space, 0, data); }
DECLARE_WRITE8_MEMBER( ctc_w1 ) { m_z80ctc->write(space, 1, data); }
@@ -73,7 +73,7 @@ public:
DECLARE_WRITE8_MEMBER( pio5_w2 ) { m_z80pio_5->write(space, 2, data); }
DECLARE_WRITE8_MEMBER( pio5_w3 ) { m_z80pio_5->write(space, 3, data); }
- DECLARE_READ8_MEMBER( ay_r0 ) { return ay8910_r(m_ay, 0); }
+ DECLARE_READ8_MEMBER( ay_r0 ) { return ay8910_r(m_ay, space, 0); }
DECLARE_READ8_MEMBER( ctc_r0 ) { return m_z80ctc->read(space, 0); }
DECLARE_READ8_MEMBER( ctc_r1 ) { return m_z80ctc->read(space, 1); }
@@ -307,7 +307,7 @@ static Z80CTC_INTERFACE( ctc_intf )
DEVCB_NULL // ZC/TO2 callback
};
-static WRITE8_DEVICE_HANDLER( serial_transmit )
+static WRITE16_DEVICE_HANDLER( serial_transmit )
{
proconn_state *state = device->machine().driver_data<proconn_state>();
@@ -324,20 +324,20 @@ static WRITE8_DEVICE_HANDLER( serial_transmit )
}
-static int serial_receive(device_t *device, int channel)
+static READ16_DEVICE_HANDLER( serial_receive )
{
- return 0xff;
+ return -1;
}
static const z80sio_interface sio_intf =
{
- 0, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- serial_transmit, /* transmit handler */
- serial_receive /* receive handler */
+ DEVCB_NULL, /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(serial_transmit), /* transmit handler */
+ DEVCB_HANDLER(serial_receive) /* receive handler */
};
static const ay8910_interface ay8910_config =
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index b84dfa6b0b3..c1354d1de44 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -120,7 +120,7 @@ READ16_MEMBER(qdrmfgp_state::v_rom_r)
{
device_t *k056832 = machine().device("k056832");
UINT8 *mem8 = memregion("gfx1")->base();
- int bank = k056832_word_r(k056832, 0x34/2, 0xffff);
+ int bank = k056832_word_r(k056832, space, 0x34/2, 0xffff);
offset += bank * 0x800 * 4;
@@ -136,9 +136,9 @@ READ16_MEMBER(qdrmfgp_state::gp2_vram_r)
device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
- return k056832_ram_word_r(k056832, offset * 2 + 1, mem_mask);
+ return k056832_ram_word_r(k056832, space, offset * 2 + 1, mem_mask);
else
- return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2, mem_mask);
+ return k056832_ram_word_r(k056832, space, (offset - 0x1000 / 2) * 2, mem_mask);
}
READ16_MEMBER(qdrmfgp_state::gp2_vram_mirror_r)
@@ -146,9 +146,9 @@ READ16_MEMBER(qdrmfgp_state::gp2_vram_mirror_r)
device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
- return k056832_ram_word_r(k056832, offset * 2, mem_mask);
+ return k056832_ram_word_r(k056832, space, offset * 2, mem_mask);
else
- return k056832_ram_word_r(k056832, (offset - 0x1000 / 2) * 2 + 1, mem_mask);
+ return k056832_ram_word_r(k056832, space, (offset - 0x1000 / 2) * 2 + 1, mem_mask);
}
WRITE16_MEMBER(qdrmfgp_state::gp2_vram_w)
@@ -156,9 +156,9 @@ WRITE16_MEMBER(qdrmfgp_state::gp2_vram_w)
device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
- k056832_ram_word_w(k056832, offset * 2 + 1, data, mem_mask);
+ k056832_ram_word_w(k056832, space, offset * 2 + 1, data, mem_mask);
else
- k056832_ram_word_w(k056832, (offset - 0x1000 / 2) * 2, data, mem_mask);
+ k056832_ram_word_w(k056832, space, (offset - 0x1000 / 2) * 2, data, mem_mask);
}
WRITE16_MEMBER(qdrmfgp_state::gp2_vram_mirror_w)
@@ -166,9 +166,9 @@ WRITE16_MEMBER(qdrmfgp_state::gp2_vram_mirror_w)
device_t *k056832 = machine().device("k056832");
if (offset < 0x1000 / 2)
- k056832_ram_word_w(k056832, offset * 2, data, mem_mask);
+ k056832_ram_word_w(k056832, space, offset * 2, data, mem_mask);
else
- k056832_ram_word_w(k056832, (offset - 0x1000 / 2) * 2 + 1, data, mem_mask);
+ k056832_ram_word_w(k056832, space, (offset - 0x1000 / 2) * 2 + 1, data, mem_mask);
}
@@ -201,25 +201,25 @@ READ16_MEMBER(qdrmfgp_state::ide_std_r)
{
device_t *device = machine().device("ide");
if (offset & 0x01)
- return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xff00) >> 8;
+ return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xff00) >> 8;
else
- return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xffff);
+ return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xffff);
}
WRITE16_MEMBER(qdrmfgp_state::ide_std_w)
{
device_t *device = machine().device("ide");
if (offset & 0x01)
- ide_controller16_w(device, IDE_STD_OFFSET + offset/2, data << 8, 0xff00);
+ ide_controller16_w(device, space, IDE_STD_OFFSET + offset/2, data << 8, 0xff00);
else
- ide_controller16_w(device, IDE_STD_OFFSET + offset/2, data, 0xffff);
+ ide_controller16_w(device, space, IDE_STD_OFFSET + offset/2, data, 0xffff);
}
READ16_MEMBER(qdrmfgp_state::ide_alt_r)
{
device_t *device = machine().device("ide");
if (offset == 0)
- return ide_controller16_r(device, IDE_ALT_OFFSET, 0x00ff);
+ return ide_controller16_r(device, space, IDE_ALT_OFFSET, 0x00ff);
return 0;
}
@@ -228,7 +228,7 @@ WRITE16_MEMBER(qdrmfgp_state::ide_alt_w)
{
device_t *device = machine().device("ide");
if (offset == 0)
- ide_controller16_w(device, IDE_ALT_OFFSET, data, 0x00ff);
+ ide_controller16_w(device, space, IDE_ALT_OFFSET, data, 0x00ff);
}
@@ -251,9 +251,9 @@ READ16_MEMBER(qdrmfgp_state::gp2_ide_std_r)
break;
}
}
- return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xff00) >> 8;
+ return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xff00) >> 8;
} else {
- return ide_controller16_r(device, IDE_STD_OFFSET + offset/2, 0xffff);
+ return ide_controller16_r(device, space, IDE_STD_OFFSET + offset/2, 0xffff);
}
}
diff --git a/src/mame/drivers/queen.c b/src/mame/drivers/queen.c
index d98349271af..48f5e8e5a97 100644
--- a/src/mame/drivers/queen.c
+++ b/src/mame/drivers/queen.c
@@ -380,26 +380,26 @@ WRITE32_MEMBER(queen_state::bios_ram_w)
READ32_MEMBER(queen_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(queen_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(queen_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(queen_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
READ8_MEMBER(queen_state::at_page8_r)
@@ -448,13 +448,13 @@ WRITE8_MEMBER(queen_state::at_page8_w)
READ8_MEMBER(queen_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(queen_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
WRITE_LINE_MEMBER(queen_state::pc_dma_hrq_changed)
diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c
index 625d2c38569..7883c48e44c 100644
--- a/src/mame/drivers/r2dtank.c
+++ b/src/mame/drivers/r2dtank.c
@@ -175,10 +175,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r)
UINT8 ret = 0;
if (m_AY8910_selected & 0x08)
- ret = ay8910_r(machine().device("ay1"), 0);
+ ret = ay8910_r(machine().device("ay1"), space, 0);
if (m_AY8910_selected & 0x10)
- ret = ay8910_r(machine().device("ay2"), 0);
+ ret = ay8910_r(machine().device("ay2"), space, 0);
return ret;
}
@@ -187,10 +187,10 @@ READ8_MEMBER(r2dtank_state::AY8910_port_r)
WRITE8_MEMBER(r2dtank_state::AY8910_port_w)
{
if (m_AY8910_selected & 0x08)
- ay8910_data_address_w(machine().device("ay1"), m_AY8910_selected >> 2, data);
+ ay8910_data_address_w(machine().device("ay1"), space, m_AY8910_selected >> 2, data);
if (m_AY8910_selected & 0x10)
- ay8910_data_address_w(machine().device("ay2"), m_AY8910_selected >> 2, data);
+ ay8910_data_address_w(machine().device("ay2"), space, m_AY8910_selected >> 2, data);
}
@@ -252,7 +252,7 @@ static const ttl74123_interface ttl74123_intf =
1, /* A pin - driven by the CRTC */
1, /* B pin - pulled high */
1, /* Clear pin - pulled high */
- ttl74123_output_changed
+ DEVCB_HANDLER(ttl74123_output_changed)
};
@@ -387,7 +387,8 @@ static MC6845_UPDATE_ROW( update_row )
WRITE_LINE_MEMBER(r2dtank_state::display_enable_changed)
{
- ttl74123_a_w(machine().device("74123"), 0, state);
+ address_space &space = generic_space();
+ ttl74123_a_w(machine().device("74123"), space, 0, state);
}
diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c
index c5716ed10b5..f98ae2f8117 100644
--- a/src/mame/drivers/rbmk.c
+++ b/src/mame/drivers/rbmk.c
@@ -141,7 +141,7 @@ READ8_MEMBER(rbmk_state::rbmk_mcu_io_r)
{
if(m_mux_data & 8)
{
- return ym2151_r(machine().device("ymsnd"), offset & 1);
+ return ym2151_r(machine().device("ymsnd"), space, offset & 1);
}
else if(m_mux_data & 4)
{
@@ -157,7 +157,7 @@ READ8_MEMBER(rbmk_state::rbmk_mcu_io_r)
WRITE8_MEMBER(rbmk_state::rbmk_mcu_io_w)
{
- if(m_mux_data & 8) { ym2151_w(machine().device("ymsnd"), offset & 1, data); }
+ if(m_mux_data & 8) { ym2151_w(machine().device("ymsnd"), space, offset & 1, data); }
else if(m_mux_data & 4)
{
//printf("%02x %02x W\n",offset,data);
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 9fa5a406624..53d7828da7f 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -43,9 +43,9 @@ READ8_MEMBER(rollerg_state::rollerg_k051316_r)
{
if (m_readzoomroms)
- return k051316_rom_r(m_k051316, offset);
+ return k051316_rom_r(m_k051316, space, offset);
else
- return k051316_r(m_k051316, offset);
+ return k051316_r(m_k051316, space, offset);
}
READ8_MEMBER(rollerg_state::rollerg_sound_r)
@@ -53,7 +53,7 @@ READ8_MEMBER(rollerg_state::rollerg_sound_r)
device_t *device = machine().device("k053260");
/* If the sound CPU is running, read the status, otherwise
just make it pass the test */
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
WRITE8_MEMBER(rollerg_state::soundirq_w)
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index a183f81c76e..87feb2b05ad 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -894,7 +894,7 @@ READ8_MEMBER(royalmah_state::mjifb_rom_io_r)
{
case 0x8000: return ioport("DSW4")->read(); // dsw 4
case 0x8200: return ioport("DSW3")->read(); // dsw 3
- case 0x9001: return ay8910_r(machine().device("aysnd"), 0); // inputs
+ case 0x9001: return ay8910_r(machine().device("aysnd"), space, 0); // inputs
case 0x9011: return ioport("SYSTEM")->read();
}
@@ -916,8 +916,8 @@ WRITE8_MEMBER(royalmah_state::mjifb_rom_io_w)
switch(offset)
{
case 0x8e00: m_palette_base = data & 0x1f; return;
- case 0x9002: ay8910_data_w(machine().device("aysnd"),0,data); return;
- case 0x9003: ay8910_address_w(machine().device("aysnd"),0,data); return;
+ case 0x9002: ay8910_data_w(machine().device("aysnd"),space,0,data); return;
+ case 0x9003: ay8910_address_w(machine().device("aysnd"),space,0,data); return;
case 0x9010:
mjifb_coin_counter_w(space,0,data);
return;
@@ -1003,7 +1003,7 @@ READ8_MEMBER(royalmah_state::mjdejavu_rom_io_r)
{
case 0x8000: return ioport("DSW2")->read(); // dsw 2
case 0x8001: return ioport("DSW1")->read(); // dsw 1
- case 0x9001: return ay8910_r(machine().device("aysnd"), 0); // inputs
+ case 0x9001: return ay8910_r(machine().device("aysnd"), space, 0); // inputs
case 0x9011: return ioport("SYSTEM")->read();
}
@@ -1024,8 +1024,8 @@ WRITE8_MEMBER(royalmah_state::mjdejavu_rom_io_w)
switch(offset)
{
case 0x8802: m_palette_base = data & 0x1f; return;
- case 0x9002: ay8910_data_w(machine().device("aysnd"),0,data); return;
- case 0x9003: ay8910_address_w(machine().device("aysnd"),0,data); return;
+ case 0x9002: ay8910_data_w(machine().device("aysnd"),space,0,data); return;
+ case 0x9003: ay8910_address_w(machine().device("aysnd"),space,0,data); return;
case 0x9010: mjifb_coin_counter_w(space,0,data); return;
case 0x9011: input_port_select_w(space,0,data); return;
case 0x9013:
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index d5067abddea..610af4bce61 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -209,7 +209,7 @@ WRITE8_MEMBER(rpunch_state::upd_control_w)
WRITE8_MEMBER(rpunch_state::upd_data_w)
{
device_t *device = machine().device("upd");
- upd7759_port_w(device, 0, data);
+ upd7759_port_w(device, space, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index c148d469ec4..258905c62a1 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -161,7 +161,7 @@ WRITE8_MEMBER(sauro_state::flip_screen_w)
WRITE8_MEMBER(sauro_state::adpcm_w)
{
device_t *device = machine().device("speech");
- sp0256_ALD_w(device, 0, data);
+ sp0256_ALD_w(device, space, 0, data);
}
static ADDRESS_MAP_START( sauro_map, AS_PROGRAM, 8, sauro_state )
diff --git a/src/mame/drivers/savquest.c b/src/mame/drivers/savquest.c
index c7a7ece6e0d..4627cf1ab6d 100644
--- a/src/mame/drivers/savquest.c
+++ b/src/mame/drivers/savquest.c
@@ -257,26 +257,26 @@ WRITE32_MEMBER(savquest_state::bios_ram_w)
READ32_MEMBER(savquest_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(savquest_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(savquest_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(savquest_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
READ8_MEMBER(savquest_state::at_page8_r)
@@ -325,13 +325,13 @@ WRITE8_MEMBER(savquest_state::at_page8_w)
READ8_MEMBER(savquest_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(savquest_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
WRITE_LINE_MEMBER(savquest_state::pc_dma_hrq_changed)
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index bde28244997..cf039de5ff2 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -1068,7 +1068,7 @@ static void galileo_perform_dma(address_space *space, int which)
}
/* write the data and advance */
- voodoo_w(state->m_voodoo, (dstaddr & 0xffffff) / 4, space->read_dword(srcaddr), 0xffffffff);
+ voodoo_w(state->m_voodoo, *space, (dstaddr & 0xffffff) / 4, space->read_dword(srcaddr), 0xffffffff);
srcaddr += srcinc;
dstaddr += dstinc;
bytesleft -= 4;
@@ -1353,7 +1353,7 @@ WRITE32_MEMBER(seattle_state::seattle_voodoo_w)
/* if we're not stalled, just write and get out */
if (!m_voodoo_stalled)
{
- voodoo_w(m_voodoo, offset, data, mem_mask);
+ voodoo_w(m_voodoo, space, offset, data, mem_mask);
return;
}
@@ -1419,7 +1419,10 @@ static void voodoo_stall(device_t *device, int stall)
{
/* if the CPU had a pending write, do it now */
if (state->m_cpu_stalled_on_voodoo)
- voodoo_w(device, state->m_cpu_stalled_offset, state->m_cpu_stalled_data, state->m_cpu_stalled_mem_mask);
+ {
+ address_space &space = *device->machine().firstcpu->space(AS_PROGRAM);
+ voodoo_w(device, space, state->m_cpu_stalled_offset, state->m_cpu_stalled_data, state->m_cpu_stalled_mem_mask);
+ }
state->m_cpu_stalled_on_voodoo = FALSE;
/* resume CPU execution */
@@ -1523,9 +1526,9 @@ READ32_MEMBER(seattle_state::ethernet_r)
{
device_t *device = machine().device("ethernet");
if (!(offset & 8))
- return smc91c9x_r(device, offset & 7, mem_mask & 0xffff);
+ return smc91c9x_r(device, space, offset & 7, mem_mask & 0xffff);
else
- return smc91c9x_r(device, offset & 7, mem_mask & 0x00ff);
+ return smc91c9x_r(device, space, offset & 7, mem_mask & 0x00ff);
}
@@ -1533,9 +1536,9 @@ WRITE32_MEMBER(seattle_state::ethernet_w)
{
device_t *device = machine().device("ethernet");
if (!(offset & 8))
- smc91c9x_w(device, offset & 7, data & 0xffff, mem_mask | 0xffff);
+ smc91c9x_w(device, space, offset & 7, data & 0xffff, mem_mask | 0xffff);
else
- smc91c9x_w(device, offset & 7, data & 0x00ff, mem_mask | 0x00ff);
+ smc91c9x_w(device, space, offset & 7, data & 0x00ff, mem_mask | 0x00ff);
}
@@ -1589,7 +1592,7 @@ READ32_MEMBER(seattle_state::widget_r)
break;
case WREG_ETHER_DATA:
- result = smc91c9x_r(device, m_widget.ethernet_addr & 7, mem_mask & 0xffff);
+ result = smc91c9x_r(device, space, m_widget.ethernet_addr & 7, mem_mask & 0xffff);
break;
}
@@ -1621,7 +1624,7 @@ WRITE32_MEMBER(seattle_state::widget_w)
break;
case WREG_ETHER_DATA:
- smc91c9x_w(device, m_widget.ethernet_addr & 7, data & 0xffff, mem_mask & 0xffff);
+ smc91c9x_w(device, space, m_widget.ethernet_addr & 7, data & 0xffff, mem_mask & 0xffff);
break;
}
}
@@ -1784,7 +1787,7 @@ READ32_MEMBER(seattle_state::seattle_ide_r)
/* note that blitz times out if we don't have this cycle stealing */
if (offset == 0x3f6/4)
machine().device("maincpu")->execute().eat_cycles(100);
- return ide_controller32_r(device, offset, mem_mask);
+ return ide_controller32_r(device, space, offset, mem_mask);
}
static ADDRESS_MAP_START( seattle_map, AS_PROGRAM, 32, seattle_state )
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index bae76aacbba..3819ff7630e 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -174,7 +174,7 @@ static WRITE16_DEVICE_HANDLER( segac2_upd7759_w )
/* only works if we're accessing the low byte */
if (ACCESSING_BITS_0_7)
{
- upd7759_port_w(device, 0, data & 0xff);
+ upd7759_port_w(device, space, 0, data & 0xff);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index b8818607630..9604b9ba212 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -188,7 +188,7 @@ WRITE8_MEMBER(segag80r_state::vidram_w){ segag80r_videoram_w(space, decrypt_offs
WRITE8_MEMBER(segag80r_state::monsterb_vidram_w){ monsterb_videoram_w(space, decrypt_offset(&space, offset), data); }
WRITE8_MEMBER(segag80r_state::pignewt_vidram_w){ pignewt_videoram_w(space, decrypt_offset(&space, offset), data); }
WRITE8_MEMBER(segag80r_state::sindbadm_vidram_w){ sindbadm_videoram_w(space, decrypt_offset(&space, offset), data); }
-WRITE8_MEMBER(segag80r_state::usb_ram_w){ device_t *device = machine().device("usbsnd"); sega_usb_ram_w(device, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
+WRITE8_MEMBER(segag80r_state::usb_ram_w){ device_t *device = machine().device("usbsnd"); sega_usb_ram_w(device, space, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index 0c4f11d5bbb..00e0c17d039 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -202,7 +202,7 @@ WRITE8_MEMBER(segag80v_state::mainram_w)
m_mainram[decrypt_offset(&space, offset)] = data;
}
-WRITE8_MEMBER(segag80v_state::usb_ram_w){ sega_usb_ram_w(m_usb, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
+WRITE8_MEMBER(segag80v_state::usb_ram_w){ sega_usb_ram_w(m_usb, space, decrypt_offset(machine().device("maincpu")->memory().space(AS_PROGRAM), offset), data); }
WRITE8_MEMBER(segag80v_state::vectorram_w)
{
m_vectorram[decrypt_offset(&space, offset)] = data;
diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c
index 3e8eef32127..a32e8ff34ec 100644
--- a/src/mame/drivers/segas16a.c
+++ b/src/mame/drivers/segas16a.c
@@ -455,7 +455,7 @@ READ8_MEMBER( segas16a_state::n7751_p2_r )
{
// read from P2 - 8255's PC0-2 connects to 7751's S0-2 (P24-P26 on an 8048)
// bit 0x80 is an alternate way to control the sample on/off; doesn't appear to be used
- return 0x80 | ((m_n7751_command & 0x07) << 4) | (i8243_p2_r(m_n7751_i8243, offset) & 0x0f);
+ return 0x80 | ((m_n7751_command & 0x07) << 4) | (i8243_p2_r(m_n7751_i8243, space, offset) & 0x0f);
}
@@ -466,7 +466,7 @@ READ8_MEMBER( segas16a_state::n7751_p2_r )
WRITE8_MEMBER( segas16a_state::n7751_p2_w )
{
// write to P2; low 4 bits go to 8243
- i8243_p2_w(m_n7751_i8243, offset, data & 0x0f);
+ i8243_p2_w(m_n7751_i8243, space, offset, data & 0x0f);
// output of bit $80 indicates we are ready (1) or busy (0)
// no other outputs are used
diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c
index 34e3291c856..c0d124023b7 100644
--- a/src/mame/drivers/segas16b.c
+++ b/src/mame/drivers/segas16b.c
@@ -1170,7 +1170,7 @@ WRITE16_MEMBER( segas16b_state::standard_io_w )
WRITE16_MEMBER( segas16b_state::atomicp_sound_w )
{
- ym2413_w(m_ym2413, offset, data >> 8);
+ ym2413_w(m_ym2413, space, offset, data >> 8);
}
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index fc4d9d0bf4f..19e3cb474e5 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -2280,20 +2280,20 @@ ADDRESS_MAP_END
WRITE16_MEMBER(seta_state::setaroul_spriteylow_w)
{
seta001_device *dev = machine().device<seta001_device>("spritegen");
- if ((offset&1)==0) spriteylow_w8(dev, offset>>1, (data & 0xff00) >> 8);
+ if ((offset&1)==0) spriteylow_w8(dev, space, offset>>1, (data & 0xff00) >> 8);
}
WRITE16_MEMBER(seta_state::setaroul_spritectrl_w)
{
seta001_device *dev = machine().device<seta001_device>("spritegen");
- if ((offset&1)==0) spritectrl_w8(dev, offset>>1, (data & 0xff00) >> 8);
+ if ((offset&1)==0) spritectrl_w8(dev, space, offset>>1, (data & 0xff00) >> 8);
}
WRITE16_MEMBER(seta_state::setaroul_spritecode_w)
{
seta001_device *dev = machine().device<seta001_device>("spritegen");
- if ((offset&1)==1) spritecodelow_w8(dev, offset>>1, (data & 0xff00) >> 8);
- if ((offset&1)==0) spritecodehigh_w8(dev, offset>>1, (data & 0xff00) >> 8);
+ if ((offset&1)==1) spritecodelow_w8(dev, space, offset>>1, (data & 0xff00) >> 8);
+ if ((offset&1)==0) spritecodehigh_w8(dev, space, offset>>1, (data & 0xff00) >> 8);
}
READ16_MEMBER(seta_state::setaroul_spritecode_r)
@@ -2301,9 +2301,9 @@ READ16_MEMBER(seta_state::setaroul_spritecode_r)
UINT16 ret;
seta001_device *dev = machine().device<seta001_device>("spritegen");
if ((offset&1)==1)
- ret = spritecodelow_r8(dev, offset>>1);
+ ret = spritecodelow_r8(dev, space, offset>>1);
else
- ret = spritecodehigh_r8(dev, offset>>1);
+ ret = spritecodehigh_r8(dev, space, offset>>1);
return ret << 8;
}
diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c
index 3217dfd26f8..00def6d38ba 100644
--- a/src/mame/drivers/sfcbox.c
+++ b/src/mame/drivers/sfcbox.c
@@ -171,12 +171,12 @@ ADDRESS_MAP_END
static READ8_DEVICE_HANDLER( spc_ram_100_r )
{
- return spc_ram_r(device, offset + 0x100);
+ return spc_ram_r(device, space, offset + 0x100);
}
static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
{
- spc_ram_w(device, offset + 0x100, data);
+ spc_ram_w(device, space, offset + 0x100, data);
}
static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, sfcbox_state )
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index 69c782d0c3d..aaf1b64e7fe 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -80,36 +80,37 @@ static SCREEN_UPDATE_IND16( shanghai )
device_t *hd63484 = screen.machine().device("hd63484");
int x, y, b, src;
- b = ((hd63484_regs_r(hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ b = ((hd63484_regs_r(hd63484, space, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xce/2, 0xffff);
for (y = 0; y < 280; y++)
{
- for (x = 0 ; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2)
+ for (x = 0 ; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2)
{
b &= (HD63484_RAM_SIZE - 1);
- src = hd63484_ram_r(hd63484, b, 0xffff);
+ src = hd63484_ram_r(hd63484, space, b, 0xffff);
bitmap.pix16(y, x) = src & 0x00ff;
bitmap.pix16(y, x + 1) = (src & 0xff00) >> 8;
b++;
}
}
- if ((hd63484_regs_r(hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300)
+ if ((hd63484_regs_r(hd63484, space, 0x06/2, 0xffff) & 0x0300) == 0x0300)
{
- int sy = (hd63484_regs_r(hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, 0x88/2, 0xffff) >> 8);
- int h = hd63484_regs_r(hd63484, 0x96/2, 0xffff) & 0x0fff;
- int sx = ((hd63484_regs_r(hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, 0x84/2, 0xffff) >> 8)) * 4;
- int w = (hd63484_regs_r(hd63484, 0x92/2, 0xffff) & 0xff) * 4;
+ int sy = (hd63484_regs_r(hd63484, space, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, space, 0x88/2, 0xffff) >> 8);
+ int h = hd63484_regs_r(hd63484, space, 0x96/2, 0xffff) & 0x0fff;
+ int sx = ((hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, space, 0x84/2, 0xffff) >> 8)) * 4;
+ int w = (hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) & 0xff) * 4;
if (sx < 0) sx = 0; // not sure about this (shangha2 title screen)
- b = (((hd63484_regs_r(hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xde/2, 0xffff));
+ b = (((hd63484_regs_r(hd63484, space, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xde/2, 0xffff));
for (y = sy ; y <= sy + h && y < 280 ; y++)
{
- for (x = 0 ; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2)
+ for (x = 0 ; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 2 ; x += 2)
{
b &= (HD63484_RAM_SIZE - 1);
- src = hd63484_ram_r(hd63484, b, 0xffff);
- if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 2)
+ src = hd63484_ram_r(hd63484, space, b, 0xffff);
+ if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 2)
{
bitmap.pix16(y, x + sx) = src & 0x00ff;
bitmap.pix16(y, x + sx + 1) = (src & 0xff00) >> 8;
diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c
index 230d7634018..ee47d83b8a0 100644
--- a/src/mame/drivers/sigmab52.c
+++ b/src/mame/drivers/sigmab52.c
@@ -171,7 +171,8 @@ static SCREEN_UPDATE_IND16( jwildb52 )
int x, y, b, src;
- b = ((hd63484_regs_r(hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ b = ((hd63484_regs_r(hd63484, space, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xce/2, 0xffff);
//save vram to file
#if 0
@@ -186,10 +187,10 @@ static SCREEN_UPDATE_IND16( jwildb52 )
for (y = 0; y < 480; y++)
{
- for (x = 0; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 4; x += 4)
+ for (x = 0; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 4; x += 4)
{
- src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff);
+ src = hd63484_ram_r(hd63484, space, b & (HD63484_RAM_SIZE - 1), 0xffff);
bitmap.pix16(y, x ) = ((src & 0x000f) >> 0) << 0;
bitmap.pix16(y, x + 1) = ((src & 0x00f0) >> 4) << 0;
@@ -200,24 +201,24 @@ static SCREEN_UPDATE_IND16( jwildb52 )
}
if (!screen.machine().input().code_pressed(KEYCODE_O))
- if ((hd63484_regs_r(hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300)
+ if ((hd63484_regs_r(hd63484, space, 0x06/2, 0xffff) & 0x0300) == 0x0300)
{
- int sy = (hd63484_regs_r(hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, 0x88/2, 0xffff) >> 8);
- int h = hd63484_regs_r(hd63484, 0x96/2, 0xffff) & 0x0fff;
- int sx = ((hd63484_regs_r(hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, 0x84/2, 0xffff) >> 8)) * 4;
- int w = (hd63484_regs_r(hd63484, 0x92/2, 0xffff) & 0xff) * 2;
+ int sy = (hd63484_regs_r(hd63484, space, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(hd63484, space, 0x88/2, 0xffff) >> 8);
+ int h = hd63484_regs_r(hd63484, space, 0x96/2, 0xffff) & 0x0fff;
+ int sx = ((hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(hd63484, space, 0x84/2, 0xffff) >> 8)) * 4;
+ int w = (hd63484_regs_r(hd63484, space, 0x92/2, 0xffff) & 0xff) * 2;
if (sx < 0) sx = 0; // not sure about this (shangha2 title screen)
- b = (((hd63484_regs_r(hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, 0xde/2, 0xffff));
+ b = (((hd63484_regs_r(hd63484, space, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(hd63484, space, 0xde/2, 0xffff));
for (y = sy; y <= sy + h && y < 480; y++)
{
- for (x = 0; x < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff)* 4; x += 4)
+ for (x = 0; x < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff)* 4; x += 4)
{
- src = hd63484_ram_r(hd63484, b & (HD63484_RAM_SIZE - 1), 0xffff);
+ src = hd63484_ram_r(hd63484, space, b & (HD63484_RAM_SIZE - 1), 0xffff);
- if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, 0xca/2, 0xffff) & 0x0fff) * 4)
+ if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(hd63484, space, 0xca/2, 0xffff) & 0x0fff) * 4)
{
bitmap.pix16(y, x + sx ) = ((src & 0x000f) >> 0) << 0;
bitmap.pix16(y, x + sx + 1) = ((src & 0x00f0) >> 4) << 0;
@@ -249,7 +250,7 @@ WRITE8_MEMBER(sigmab52_state::acrtc_w)
if(!offset)
{
//address select
- hd63484_address_w(hd63484, 0, data, 0x00ff);
+ hd63484_address_w(hd63484, space, 0, data, 0x00ff);
m_latch = 0;
}
else
@@ -265,7 +266,7 @@ WRITE8_MEMBER(sigmab52_state::acrtc_w)
m_acrtc_data <<= 8;
m_acrtc_data |= data;
- hd63484_data_w(hd63484, 0, m_acrtc_data, 0xffff);
+ hd63484_data_w(hd63484, space, 0, m_acrtc_data, 0xffff);
}
m_latch ^= 1;
@@ -277,7 +278,7 @@ READ8_MEMBER(sigmab52_state::acrtc_r)
if(offset&1)
{
device_t *hd63484 = machine().device("hd63484");
- return hd63484_data_r(hd63484, 0, 0xff);
+ return hd63484_data_r(hd63484, space, 0, 0xff);
}
else
@@ -569,9 +570,10 @@ void sigmab52_state::machine_start()
device_t *hd63484 = machine().device("hd63484");
+ address_space &space = generic_space();
for(i = 0; i < 0x40000/2; ++i)
{
- hd63484_ram_w(hd63484, i + 0x40000/2, rom[i], 0xffff);
+ hd63484_ram_w(hd63484, space, i + 0x40000/2, rom[i], 0xffff);
}
}
}
diff --git a/src/mame/drivers/skeetsht.c b/src/mame/drivers/skeetsht.c
index 940aa1fcb8e..18ddc04c4be 100644
--- a/src/mame/drivers/skeetsht.c
+++ b/src/mame/drivers/skeetsht.c
@@ -93,7 +93,7 @@ READ16_MEMBER(skeetsht_state::ramdac_r)
if (offset & 8)
offset = (offset & ~8) | 4;
- return tlc34076_r(machine().device("tlc34076"), offset);
+ return tlc34076_r(machine().device("tlc34076"), space, offset);
}
WRITE16_MEMBER(skeetsht_state::ramdac_w)
@@ -103,7 +103,7 @@ WRITE16_MEMBER(skeetsht_state::ramdac_w)
if (offset & 8)
offset = (offset & ~8) | 4;
- tlc34076_w(machine().device("tlc34076"), offset, data);
+ tlc34076_w(machine().device("tlc34076"), space, offset, data);
}
@@ -163,9 +163,9 @@ WRITE8_MEMBER(skeetsht_state::ay8910_w)
{
if (m_ay_sel)
- ay8910_data_w(m_ay, 0, data);
+ ay8910_data_w(m_ay, space, 0, data);
else
- ay8910_address_w(m_ay, 0, data);
+ ay8910_address_w(m_ay, space, 0, data);
}
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index fc374cd0c15..abb0068c184 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -149,11 +149,12 @@ static INTERRUPT_GEN( skydiver_interrupt )
device_t *discrete = device->machine().device("discrete");
/* Convert range data to divide value and write to sound */
- discrete_sound_w(discrete, SKYDIVER_RANGE_DATA, (0x01 << (~state->m_videoram[0x394] & 0x07)) & 0xff); // Range 0-2
+ address_space &space = *device->machine().firstcpu->space(AS_PROGRAM);
+ discrete_sound_w(discrete, space, SKYDIVER_RANGE_DATA, (0x01 << (~state->m_videoram[0x394] & 0x07)) & 0xff); // Range 0-2
- discrete_sound_w(discrete, SKYDIVER_RANGE3_EN, state->m_videoram[0x394] & 0x08); // Range 3 - note disable
- discrete_sound_w(discrete, SKYDIVER_NOTE_DATA, ~state->m_videoram[0x395] & 0xff); // Note - freq
- discrete_sound_w(discrete, SKYDIVER_NOISE_DATA, state->m_videoram[0x396] & 0x0f); // NAM - Noise Amplitude
+ discrete_sound_w(discrete, space, SKYDIVER_RANGE3_EN, state->m_videoram[0x394] & 0x08); // Range 3 - note disable
+ discrete_sound_w(discrete, space, SKYDIVER_NOTE_DATA, ~state->m_videoram[0x395] & 0xff); // Note - freq
+ discrete_sound_w(discrete, space, SKYDIVER_NOISE_DATA, state->m_videoram[0x396] & 0x0f); // NAM - Noise Amplitude
if (state->m_nmion)
device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
@@ -170,13 +171,13 @@ static INTERRUPT_GEN( skydiver_interrupt )
WRITE8_MEMBER(skydiver_state::skydiver_sound_enable_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SKYDIVER_SOUND_EN, offset);
+ discrete_sound_w(device, space, SKYDIVER_SOUND_EN, offset);
}
WRITE8_MEMBER(skydiver_state::skydiver_whistle_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01);
+ discrete_sound_w(device, space, NODE_RELATIVE(SKYDIVER_WHISTLE1_EN, (offset >> 1)), offset & 0x01);
}
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index 7d263ed3a1c..24c8931feb1 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -198,7 +198,7 @@ READ16_MEMBER(slapshot_state::slapshot_service_input_r)
(ioport("SERVICE")->read() & 0x10)) << 8; /* IN3 + service switch */
default:
- return tc0640fio_r(m_tc0640fio, offset) << 8;
+ return tc0640fio_r(m_tc0640fio, space, offset) << 8;
}
}
@@ -259,9 +259,9 @@ WRITE8_MEMBER(slapshot_state::sound_bankswitch_w)
WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w)
{
if (offset == 0)
- tc0140syt_port_w(m_tc0140syt, 0, (data >> 8) & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, (data >> 8) & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(m_tc0140syt, 0, (data >> 8) & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, (data >> 8) & 0xff);
#ifdef MAME_DEBUG
if (data & 0xff)
@@ -272,7 +272,7 @@ WRITE16_MEMBER(slapshot_state::slapshot_msb_sound_w)
READ16_MEMBER(slapshot_state::slapshot_msb_sound_r)
{
if (offset == 1)
- return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff) << 8);
+ return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff) << 8);
else
return 0;
}
diff --git a/src/mame/drivers/snesb.c b/src/mame/drivers/snesb.c
index 1b7ffc17dfb..6c7e4d6cbb6 100644
--- a/src/mame/drivers/snesb.c
+++ b/src/mame/drivers/snesb.c
@@ -247,12 +247,12 @@ ADDRESS_MAP_END
static READ8_DEVICE_HANDLER( spc_ram_100_r )
{
- return spc_ram_r(device, offset + 0x100);
+ return spc_ram_r(device, space, offset + 0x100);
}
static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
{
- spc_ram_w(device, offset + 0x100, data);
+ spc_ram_w(device, space, offset + 0x100, data);
}
static ADDRESS_MAP_START( spc_mem, AS_PROGRAM, 8, snesb_state )
diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c
index e1056cfeef3..02b9fc4f100 100644
--- a/src/mame/drivers/snk.c
+++ b/src/mame/drivers/snk.c
@@ -484,7 +484,7 @@ static const ym3812_interface ym3812_config_1 =
static const y8950_interface y8950_config_2 =
{
- ymirq_callback_2
+ DEVCB_LINE(ymirq_callback_2)
};
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index 051f1c9fe48..0187a0580f4 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -165,7 +165,7 @@ ADDRESS_MAP_END
WRITE8_MEMBER(snk68_state::D7759_write_port_0_w)
{
device_t *device = machine().device("upd");
- upd7759_port_w(device, 0, data);
+ upd7759_port_w(device, space, 0, data);
upd7759_start_w(device, 0);
upd7759_start_w(device, 1);
}
diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c
index 0cc40425242..fd11bcfff0d 100644
--- a/src/mame/drivers/spiders.c
+++ b/src/mame/drivers/spiders.c
@@ -387,7 +387,7 @@ static const ttl74123_interface ic60_intf =
1, /* A pin - driven by the CRTC */
1, /* B pin - pulled high */
1, /* Clear pin - pulled high */
- ic60_74123_output_changed
+ DEVCB_HANDLER(ic60_74123_output_changed)
};
@@ -500,7 +500,8 @@ static MC6845_UPDATE_ROW( update_row )
WRITE_LINE_MEMBER(spiders_state::display_enable_changed)
{
- ttl74123_a_w(machine().device("ic60"), 0, state);
+ address_space &space = generic_space();
+ ttl74123_a_w(machine().device("ic60"), space, 0, state);
}
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 24d9c8c2019..1ab98d5cd22 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -102,9 +102,10 @@ static INTERRUPT_GEN( sprint2 )
}
}
- discrete_sound_w(discrete, SPRINT2_MOTORSND1_DATA, state->m_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA
- discrete_sound_w(discrete, SPRINT2_MOTORSND2_DATA, state->m_video_ram[0x395] & 15);
- discrete_sound_w(discrete, SPRINT2_CRASHSND_DATA, state->m_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA
+ address_space &space = *device->machine().firstcpu->space(AS_PROGRAM);
+ discrete_sound_w(discrete, space, SPRINT2_MOTORSND1_DATA, state->m_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA
+ discrete_sound_w(discrete, space, SPRINT2_MOTORSND2_DATA, state->m_video_ram[0x395] & 15);
+ discrete_sound_w(discrete, space, SPRINT2_CRASHSND_DATA, state->m_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA
/* interrupts and watchdog are disabled during service mode */
@@ -212,14 +213,14 @@ WRITE8_MEMBER(sprint2_state::sprint2_attract_w)
m_attract = offset & 1;
// also DOMINOS_ATTRACT_EN
- discrete_sound_w(device, SPRINT2_ATTRACT_EN, m_attract);
+ discrete_sound_w(device, space, SPRINT2_ATTRACT_EN, m_attract);
}
WRITE8_MEMBER(sprint2_state::sprint2_noise_reset_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT2_NOISE_RESET, 0);
+ discrete_sound_w(device, space, SPRINT2_NOISE_RESET, 0);
}
@@ -227,13 +228,13 @@ WRITE8_MEMBER(sprint2_state::sprint2_skid1_w)
{
device_t *device = machine().device("discrete");
// also DOMINOS_TUMBLE_EN
- discrete_sound_w(device, SPRINT2_SKIDSND1_EN, offset & 1);
+ discrete_sound_w(device, space, SPRINT2_SKIDSND1_EN, offset & 1);
}
WRITE8_MEMBER(sprint2_state::sprint2_skid2_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT2_SKIDSND2_EN, offset & 1);
+ discrete_sound_w(device, space, SPRINT2_SKIDSND2_EN, offset & 1);
}
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 9e6dc99a7c2..7f906f3529a 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -187,28 +187,28 @@ WRITE8_MEMBER(sprint4_state::sprint4_lockout_w)
WRITE8_MEMBER(sprint4_state::sprint4_screech_1_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT4_SCREECH_EN_1, offset & 1);
+ discrete_sound_w(device, space, SPRINT4_SCREECH_EN_1, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_screech_2_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT4_SCREECH_EN_2, offset & 1);
+ discrete_sound_w(device, space, SPRINT4_SCREECH_EN_2, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_screech_3_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT4_SCREECH_EN_3, offset & 1);
+ discrete_sound_w(device, space, SPRINT4_SCREECH_EN_3, offset & 1);
}
WRITE8_MEMBER(sprint4_state::sprint4_screech_4_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT4_SCREECH_EN_4, offset & 1);
+ discrete_sound_w(device, space, SPRINT4_SCREECH_EN_4, offset & 1);
}
@@ -217,14 +217,14 @@ WRITE8_MEMBER(sprint4_state::sprint4_screech_4_w)
WRITE8_MEMBER(sprint4_state::sprint4_bang_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT4_BANG_DATA, data & 0x0f);
+ discrete_sound_w(device, space, SPRINT4_BANG_DATA, data & 0x0f);
}
WRITE8_MEMBER(sprint4_state::sprint4_attract_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, SPRINT4_ATTRACT_EN, data & 1);
+ discrete_sound_w(device, space, SPRINT4_ATTRACT_EN, data & 1);
}
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index e06eacefb0c..fb4090239da 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -356,25 +356,25 @@ READ8_MEMBER(spy_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(spy_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
static ADDRESS_MAP_START( spy_map, AS_PROGRAM, 8, spy_state )
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index a6a92766c42..c5c6c1e4283 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -30,26 +30,26 @@ WRITE8_MEMBER(starshp1_state::starshp1_audio_w)
{
case 0:
m_attract = data;
- discrete_sound_w(device, STARSHP1_ATTRACT, data);
+ discrete_sound_w(device, space, STARSHP1_ATTRACT, data);
break;
case 1:
m_phasor = data;
- discrete_sound_w(device, STARSHP1_PHASOR_ON, data);
+ discrete_sound_w(device, space, STARSHP1_PHASOR_ON, data);
break;
case 2:
- discrete_sound_w(device, STARSHP1_KICKER, data);
+ discrete_sound_w(device, space, STARSHP1_KICKER, data);
break;
case 3:
- discrete_sound_w(device, STARSHP1_SL1, data);
+ discrete_sound_w(device, space, STARSHP1_SL1, data);
break;
case 4:
- discrete_sound_w(device, STARSHP1_SL2, data);
+ discrete_sound_w(device, space, STARSHP1_SL2, data);
break;
case 5:
- discrete_sound_w(device, STARSHP1_MOLVL, data);
+ discrete_sound_w(device, space, STARSHP1_MOLVL, data);
break;
case 6:
- discrete_sound_w(device, STARSHP1_NOISE_FREQ, data);
+ discrete_sound_w(device, space, STARSHP1_NOISE_FREQ, data);
break;
}
@@ -109,13 +109,13 @@ WRITE8_MEMBER(starshp1_state::starshp1_analog_out_w)
m_ship_size = data;
break;
case 2:
- discrete_sound_w(device, STARSHP1_NOISE_AMPLITUDE, data);
+ discrete_sound_w(device, space, STARSHP1_NOISE_AMPLITUDE, data);
break;
case 3:
- discrete_sound_w(device, STARSHP1_TONE_PITCH, data);
+ discrete_sound_w(device, space, STARSHP1_TONE_PITCH, data);
break;
case 4:
- discrete_sound_w(device, STARSHP1_MOTOR_SPEED, data);
+ discrete_sound_w(device, space, STARSHP1_MOTOR_SPEED, data);
break;
case 5:
m_circle_hpos = data;
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index 4a3ab4e5e28..2a31a76d128 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -36,7 +36,7 @@ READ8_MEMBER(surpratk_state::bankedram_r)
return m_generic_paletteram_8[offset];
}
else if (m_videobank & 0x01)
- return k053245_r(m_k053244, offset);
+ return k053245_r(m_k053244, space, offset);
else
return m_ram[offset];
}
@@ -52,7 +52,7 @@ WRITE8_MEMBER(surpratk_state::bankedram_w)
paletteram_xBBBBBGGGGGRRRRR_byte_be_w(space,offset,data);
}
else if (m_videobank & 0x01)
- k053245_w(m_k053244, offset, data);
+ k053245_w(m_k053244, space, offset, data);
else
m_ram[offset] = data;
}
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index dd49d7bddde..930f003744d 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -481,7 +481,7 @@ WRITE8_MEMBER(system1_state::sound_control_w)
machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
/* remaining bits are used for video RAM banking */
- system1_videoram_bank_w(device, offset, data);
+ system1_videoram_bank_w(device, space, offset, data);
}
diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c
index 9a754709cc0..eae7bfb4f24 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -478,18 +478,18 @@ READ16_MEMBER(taitob_state::pbobble_input_bypass_r)
return ioport("COIN")->read() << 8;
default:
- return tc0640fio_r(m_tc0640fio, offset) << 8;
+ return tc0640fio_r(m_tc0640fio, space, offset) << 8;
}
}
WRITE16_MEMBER(taitob_state::spacedxo_tc0220ioc_w)
{
if (ACCESSING_BITS_0_7)
- tc0220ioc_w(m_tc0220ioc, offset, data & 0xff);
+ tc0220ioc_w(m_tc0220ioc, space, offset, data & 0xff);
else
{
/* &spacedxo also writes here - bug? */
- tc0220ioc_w(m_tc0220ioc, offset, (data >> 8) & 0xff);
+ tc0220ioc_w(m_tc0220ioc, space, offset, (data >> 8) & 0xff);
}
}
@@ -731,7 +731,7 @@ static ADDRESS_MAP_START( realpunc_map, AS_PROGRAM, 16, taitob_state )
AM_RANGE(0x300000, 0x300001) AM_DEVREADWRITE_LEGACY("hd63484", hd63484_status_r, hd63484_address_w)
AM_RANGE(0x300002, 0x300003) AM_DEVREADWRITE_LEGACY("hd63484", hd63484_data_r, hd63484_data_w)
// AM_RANGE(0x320000, 0x320001) AM_READ_LEGACY(SMH_NOP) // ?
- AM_RANGE(0x320002, 0x320003) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_comm_r, 0xff00)
+ AM_RANGE(0x320002, 0x320003) AM_READNOP AM_DEVWRITE8_LEGACY("tc0140syt", tc0140syt_comm_w, 0xff00)
ADDRESS_MAP_END
static ADDRESS_MAP_START( masterw_sound_map, AS_PROGRAM, 8, taitob_state )
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index 6e82ad8dca8..5da35666620 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -183,7 +183,7 @@ READ8_MEMBER(taitoh_state::syvalion_input_bypass_r)
{
/* Bypass TC0220IOC controller for analog input */
- UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */
switch( port )
{
@@ -224,7 +224,7 @@ READ8_MEMBER(taitoh_state::syvalion_input_bypass_r)
return 0x00;
default:
- return tc0220ioc_portreg_r(m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, space, offset);
}
}
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index 92235577d5b..5bc74e000d5 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -487,7 +487,7 @@ READ8_MEMBER(taitol_state::extport_select_and_ym2203_r)
{
device_t *device = machine().device("ymsnd");
m_extport = (offset >> 1) & 1;
- return ym2203_r(device, offset & 1);
+ return ym2203_r(device, space, offset & 1);
}
WRITE8_MEMBER(taitol_state::mcu_data_w)
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index 59fe28c9ef3..11ce7b4fb99 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -1106,7 +1106,7 @@ WRITE16_MEMBER(taitoz_state::spacegun_output_bypass_w)
break;
default:
- tc0220ioc_w(m_tc0220ioc, offset, data); /* might be a 510NIO ! */
+ tc0220ioc_w(m_tc0220ioc, space, offset, data); /* might be a 510NIO ! */
}
}
@@ -1127,7 +1127,7 @@ READ8_MEMBER(taitoz_state::contcirc_input_bypass_r)
{
/* Bypass TC0220IOC controller for analog input */
- UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */
UINT16 steer = 0xff80 + ioport("STEER")->read_safe(0x80);
switch (port)
@@ -1139,7 +1139,7 @@ READ8_MEMBER(taitoz_state::contcirc_input_bypass_r)
return steer >> 8;
default:
- return tc0220ioc_portreg_r(m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, space, offset);
}
}
@@ -1148,7 +1148,7 @@ READ8_MEMBER(taitoz_state::chasehq_input_bypass_r)
{
/* Bypass TC0220IOC controller for extra inputs */
- UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */
UINT16 steer = 0xff80 + ioport("STEER")->read_safe(0x80);
switch (port)
@@ -1172,7 +1172,7 @@ READ8_MEMBER(taitoz_state::chasehq_input_bypass_r)
return steer >> 8;
default:
- return tc0220ioc_portreg_r(m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, space, offset);
}
}
@@ -1261,7 +1261,7 @@ READ16_MEMBER(taitoz_state::spacegun_input_bypass_r)
return m_eeprom->read_bit() << 7;
default:
- return tc0220ioc_r(m_tc0220ioc, offset); /* might be a 510NIO ! */
+ return tc0220ioc_r(m_tc0220ioc, space, offset); /* might be a 510NIO ! */
}
}
@@ -1422,9 +1422,9 @@ WRITE8_MEMBER(taitoz_state::sound_bankswitch_w)
WRITE16_MEMBER(taitoz_state::taitoz_sound_w)
{
if (offset == 0)
- tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff);
#ifdef MAME_DEBUG
// if (data & 0xff00)
@@ -1440,7 +1440,7 @@ WRITE16_MEMBER(taitoz_state::taitoz_sound_w)
READ16_MEMBER(taitoz_state::taitoz_sound_r)
{
if (offset == 1)
- return (tc0140syt_comm_r(m_tc0140syt, 0) & 0xff);
+ return (tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff);
else
return 0;
}
diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c
index 01c5cf818c9..ffe5293a405 100644
--- a/src/mame/drivers/taitogn.c
+++ b/src/mame/drivers/taitogn.c
@@ -424,7 +424,7 @@ static UINT8 rf5c296_reg_r(ATTR_UNUSED running_machine &machine, UINT8 reg)
WRITE32_MEMBER(taitogn_state::rf5c296_io_w)
{
if(offset < 2) {
- ide_controller32_pcmcia_w(machine().device(":card"), offset, data, mem_mask);
+ ide_controller32_pcmcia_w(machine().device(":card"), space, offset, data, mem_mask);
return;
}
@@ -439,7 +439,7 @@ WRITE32_MEMBER(taitogn_state::rf5c296_io_w)
READ32_MEMBER(taitogn_state::rf5c296_io_r)
{
if(offset < 2)
- return ide_controller32_pcmcia_r(machine().device(":card"), offset, mem_mask);
+ return ide_controller32_pcmcia_r(machine().device(":card"), space, offset, mem_mask);
offset *= 4;
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index 0074351a509..1f9c13ae93d 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -119,13 +119,13 @@ static void ide_interrupt(device_t *device, int state);
READ8_MEMBER(taitowlf_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(taitowlf_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
// Intel 82439TX System Controller (MXTC)
@@ -295,26 +295,26 @@ WRITE32_MEMBER(taitowlf_state::pnp_data_w)
READ32_MEMBER(taitowlf_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(taitowlf_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(taitowlf_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(taitowlf_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 118adaa54e2..76fe1dc8433 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -47,19 +47,19 @@ WRITE8_MEMBER(tank8_state::tank8_int_reset_w)
WRITE8_MEMBER(tank8_state::tank8_crash_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, TANK8_CRASH_EN, data);
+ discrete_sound_w(device, space, TANK8_CRASH_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_explosion_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, TANK8_EXPLOSION_EN, data);
+ discrete_sound_w(device, space, TANK8_EXPLOSION_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_bugle_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, TANK8_BUGLE_EN, data);
+ discrete_sound_w(device, space, TANK8_BUGLE_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_bug_w)
@@ -68,20 +68,20 @@ WRITE8_MEMBER(tank8_state::tank8_bug_w)
/* D0 and D1 determine the on/off time off the square wave */
switch(data & 3) {
case 0:
- discrete_sound_w(device, TANK8_BUGLE_DATA1,8.0);
- discrete_sound_w(device, TANK8_BUGLE_DATA2,4.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA2,4.0);
break;
case 1:
- discrete_sound_w(device, TANK8_BUGLE_DATA1,8.0);
- discrete_sound_w(device, TANK8_BUGLE_DATA2,7.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA2,7.0);
break;
case 2:
- discrete_sound_w(device, TANK8_BUGLE_DATA1,8.0);
- discrete_sound_w(device, TANK8_BUGLE_DATA2,2.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA1,8.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA2,2.0);
break;
case 3:
- discrete_sound_w(device, TANK8_BUGLE_DATA1,16.0);
- discrete_sound_w(device, TANK8_BUGLE_DATA2,4.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA1,16.0);
+ discrete_sound_w(device, space, TANK8_BUGLE_DATA2,4.0);
break;
}
@@ -90,13 +90,13 @@ WRITE8_MEMBER(tank8_state::tank8_bug_w)
WRITE8_MEMBER(tank8_state::tank8_attract_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, TANK8_ATTRACT_EN, data);
+ discrete_sound_w(device, space, TANK8_ATTRACT_EN, data);
}
WRITE8_MEMBER(tank8_state::tank8_motor_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
+ discrete_sound_w(device, space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
}
static ADDRESS_MAP_START( tank8_cpu_map, AS_PROGRAM, 8, tank8_state )
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 455a1d6b296..6615295592e 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -373,25 +373,25 @@ READ8_MEMBER(thunderx_state::k052109_051960_r)
if (k052109_get_rmrd_line(m_k052109) == CLEAR_LINE)
{
if (offset >= 0x3800 && offset < 0x3808)
- return k051937_r(m_k051960, offset - 0x3800);
+ return k051937_r(m_k051960, space, offset - 0x3800);
else if (offset < 0x3c00)
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
else
- return k051960_r(m_k051960, offset - 0x3c00);
+ return k051960_r(m_k051960, space, offset - 0x3c00);
}
else
- return k052109_r(m_k052109, offset);
+ return k052109_r(m_k052109, space, offset);
}
WRITE8_MEMBER(thunderx_state::k052109_051960_w)
{
if (offset >= 0x3800 && offset < 0x3808)
- k051937_w(m_k051960, offset - 0x3800, data);
+ k051937_w(m_k051960, space, offset - 0x3800, data);
else if (offset < 0x3c00)
- k052109_w(m_k052109, offset, data);
+ k052109_w(m_k052109, space, offset, data);
else
- k051960_w(m_k051960, offset - 0x3c00, data);
+ k051960_w(m_k051960, space, offset - 0x3c00, data);
}
/***************************************************************************/
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index b995f904356..94749f2846a 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -86,7 +86,7 @@ READ16_MEMBER(tmnt_state::k052109_word_noA12_r)
/* 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(m_k052109, offset, mem_mask);
+ return k052109_word_r(m_k052109, space, offset, mem_mask);
}
WRITE16_MEMBER(tmnt_state::k052109_word_noA12_w)
@@ -95,7 +95,7 @@ WRITE16_MEMBER(tmnt_state::k052109_word_noA12_w)
/* 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(m_k052109, offset, data, mem_mask);
+ k052109_word_w(m_k052109, space, offset, data, mem_mask);
}
WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_w)
@@ -104,9 +104,9 @@ WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_w)
/* 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(m_k052109, offset, (data >> 8) & 0xff);
+ k052109_w(m_k052109, space, offset, (data >> 8) & 0xff);
else if (ACCESSING_BITS_0_7)
- k052109_w(m_k052109, offset + 0x2000, data & 0xff);
+ k052109_w(m_k052109, space, offset + 0x2000, data & 0xff);
}
WRITE16_MEMBER(tmnt_state::punkshot_k052109_word_noA12_w)
@@ -129,7 +129,7 @@ READ16_MEMBER(tmnt_state::k053245_scattered_word_r)
else
{
offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
- return k053245_word_r(m_k053245, offset, mem_mask);
+ return k053245_word_r(m_k053245, space, offset, mem_mask);
}
}
@@ -141,7 +141,7 @@ WRITE16_MEMBER(tmnt_state::k053245_scattered_word_w)
if (!(offset & 0x0031))
{
offset = ((offset & 0x000e) >> 1) | ((offset & 0x1fc0) >> 3);
- k053245_word_w(m_k053245, offset, data, mem_mask);
+ k053245_word_w(m_k053245, space, offset, data, mem_mask);
}
}
@@ -150,7 +150,7 @@ READ16_MEMBER(tmnt_state::k053244_word_noA1_r)
offset &= ~1; /* handle mirror address */
- return k053244_r(m_k053245, offset + 1) | (k053244_r(m_k053245, offset) << 8);
+ return k053244_r(m_k053245, space, offset + 1) | (k053244_r(m_k053245, space, offset) << 8);
}
WRITE16_MEMBER(tmnt_state::k053244_word_noA1_w)
@@ -159,9 +159,9 @@ WRITE16_MEMBER(tmnt_state::k053244_word_noA1_w)
offset &= ~1; /* handle mirror address */
if (ACCESSING_BITS_8_15)
- k053244_w(m_k053245, offset, (data >> 8) & 0xff);
+ k053244_w(m_k053245, space, offset, (data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k053244_w(m_k053245, offset + 1, data & 0xff);
+ k053244_w(m_k053245, space, offset + 1, data & 0xff);
}
static INTERRUPT_GEN(cuebrick_interrupt)
@@ -201,13 +201,13 @@ READ8_MEMBER(tmnt_state::punkshot_sound_r)
device_t *device = machine().device("k053260");
/* If the sound CPU is running, read the status, otherwise
just make it pass the test */
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
WRITE8_MEMBER(tmnt_state::glfgreat_sound_w)
{
device_t *device = machine().device("k053260");
- k053260_w(device, offset, data);
+ k053260_w(device, space, offset, data);
if (offset)
m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
@@ -376,7 +376,7 @@ READ16_MEMBER(tmnt_state::ssriders_protection_r)
data = -space.read_word(0x105818);
data = ((data / 8 - 4) & 0x1f) * 0x40;
data += ((space.read_word(0x105cb0) +
- 256 * k052109_r(m_k052109, 0x1a01) + k052109_r(m_k052109, 0x1a00) - 6) / 8 + 12) & 0x3f;
+ 256 * k052109_r(m_k052109, space, 0x1a01) + k052109_r(m_k052109, space, 0x1a00) - 6) / 8 + 12) & 0x3f;
return data;
default:
@@ -403,7 +403,7 @@ WRITE16_MEMBER(tmnt_state::ssriders_protection_w)
{
if ((space.read_word(0x180006 + 128 * i) >> 8) == logical_pri)
{
- k053245_word_w(m_k053245, 8 * i, hardware_pri, 0x00ff);
+ k053245_word_w(m_k053245, space, 8 * i, hardware_pri, 0x00ff);
hardware_pri++;
}
}
@@ -697,7 +697,7 @@ WRITE16_MEMBER(tmnt_state::k053251_glfgreat_w)
if (ACCESSING_BITS_8_15)
{
- k053251_w(m_k053251, offset, (data >> 8) & 0xff);
+ k053251_w(m_k053251, space, 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?!? */
@@ -785,7 +785,7 @@ static void tmnt2_put_word( address_space *space, UINT32 addr, UINT16 data )
if (!(offs & 0x0031))
{
offs = ((offs & 0x000e) >> 1) | ((offs & 0x1fc0) >> 3);
- k053245_word_w(state->m_k053245, offs, data, 0xffff);
+ k053245_word_w(state->m_k053245, *space, offs, data, 0xffff);
}
}
else if (addr >= 0x104000 / 2 && addr <= 0x107fff / 2)
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index d3ed361a3d5..bb222689dc0 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -855,8 +855,8 @@ WRITE8_MEMBER(toaplan2_state::raizing_oki_bankswitch_w)
{
nmk112_device *nmk112 = machine().device<nmk112_device>("nmk112");
- nmk112_okibank_w(nmk112, offset, data & 0x0f);
- nmk112_okibank_w(nmk112, offset + 1, (data >> 4) & 0x0f);
+ nmk112_okibank_w(nmk112, space, offset, data & 0x0f);
+ nmk112_okibank_w(nmk112, space, offset + 1, (data >> 4) & 0x0f);
}
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 568abaee859..4d021fcdb6f 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -359,7 +359,7 @@ static INTERRUPT_GEN( topspeed_cpub_interrupt )
READ8_MEMBER(topspeed_state::topspeed_input_bypass_r)
{
- UINT8 port = tc0220ioc_port_r(m_tc0220ioc, 0); /* read port number */
+ UINT8 port = tc0220ioc_port_r(m_tc0220ioc, space, 0); /* read port number */
UINT16 steer = 0xff80 + ioport("STEER")->read_safe(0);
switch (port)
@@ -371,7 +371,7 @@ READ8_MEMBER(topspeed_state::topspeed_input_bypass_r)
return steer >> 8;
default:
- return tc0220ioc_portreg_r(m_tc0220ioc, offset);
+ return tc0220ioc_portreg_r(m_tc0220ioc, space, offset);
}
}
@@ -424,7 +424,7 @@ WRITE8_MEMBER(topspeed_state::sound_bankswitch_w)/* assumes Z80 sandwiched betwe
static WRITE8_DEVICE_HANDLER( topspeed_tc0140syt_comm_w )
{
device->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
- tc0140syt_comm_w(device, 0, data);
+ tc0140syt_comm_w(device, space, 0, data);
}
static void topspeed_msm5205_clock( device_t *device, int chip )
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index d72ef25b699..28f1c78a333 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -32,11 +32,11 @@ void triplhnt_set_collision(running_machine &machine, int code)
}
-static void triplhnt_update_misc(running_machine &machine, int offset)
+static void triplhnt_update_misc(address_space &space, int offset)
{
- triplhnt_state *state = machine.driver_data<triplhnt_state>();
- samples_device *samples = machine.device<samples_device>("samples");
- device_t *discrete = machine.device("discrete");
+ triplhnt_state *state = space.machine().driver_data<triplhnt_state>();
+ samples_device *samples = space.machine().device<samples_device>("samples");
+ device_t *discrete = space.machine().device("discrete");
UINT8 is_witch_hunt;
UINT8 bit = offset >> 1;
@@ -66,16 +66,16 @@ static void triplhnt_update_misc(running_machine &machine, int offset)
state->m_sprite_zoom = (state->m_misc_flags >> 4) & 1;
state->m_sprite_bank = (state->m_misc_flags >> 7) & 1;
- set_led_status(machine, 0, state->m_misc_flags & 0x02);
+ set_led_status(space.machine(), 0, state->m_misc_flags & 0x02);
- coin_lockout_w(machine, 0, !(state->m_misc_flags & 0x08));
- coin_lockout_w(machine, 1, !(state->m_misc_flags & 0x08));
+ coin_lockout_w(space.machine(), 0, !(state->m_misc_flags & 0x08));
+ coin_lockout_w(space.machine(), 1, !(state->m_misc_flags & 0x08));
- discrete_sound_w(discrete, TRIPLHNT_SCREECH_EN, state->m_misc_flags & 0x04); // screech
- discrete_sound_w(discrete, TRIPLHNT_LAMP_EN, state->m_misc_flags & 0x02); // Lamp is used to reset noise
- discrete_sound_w(discrete, TRIPLHNT_BEAR_EN, state->m_misc_flags & 0x80); // bear
+ discrete_sound_w(discrete, space, TRIPLHNT_SCREECH_EN, state->m_misc_flags & 0x04); // screech
+ discrete_sound_w(discrete, space, TRIPLHNT_LAMP_EN, state->m_misc_flags & 0x02); // Lamp is used to reset noise
+ discrete_sound_w(discrete, space, TRIPLHNT_BEAR_EN, state->m_misc_flags & 0x80); // bear
- is_witch_hunt = machine.root_device().ioport("0C09")->read() == 0x40;
+ is_witch_hunt = space.machine().root_device().ioport("0C09")->read() == 0x40;
bit = ~state->m_misc_flags & 0x40;
/* if we're not playing the sample yet, start it */
@@ -92,7 +92,7 @@ static void triplhnt_update_misc(running_machine &machine, int offset)
WRITE8_MEMBER(triplhnt_state::triplhnt_misc_w)
{
- triplhnt_update_misc(machine(), offset);
+ triplhnt_update_misc(space, offset);
}
@@ -113,7 +113,7 @@ READ8_MEMBER(triplhnt_state::triplhnt_input_port_4_r)
READ8_MEMBER(triplhnt_state::triplhnt_misc_r)
{
- triplhnt_update_misc(machine(), offset);
+ triplhnt_update_misc(space, offset);
return ioport("VBLANK")->read() | m_hit_code;
}
diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c
index d6f045d7057..50543630e53 100644
--- a/src/mame/drivers/uapce.c
+++ b/src/mame/drivers/uapce.c
@@ -157,7 +157,7 @@ WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w)
752 Hz (D-3) square wave to be output on the common audio path.
(1= Tone output ON, 0= Tone output OFF) */
- discrete_sound_w(machine().device("discrete"), UAPCE_SOUND_EN, BIT(data,3));
+ discrete_sound_w(machine().device("discrete"), space, UAPCE_SOUND_EN, BIT(data,3));
/* D2 : Not latched, though software writes to this bit like it is. */
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index f24a4eb093a..72ea3e7b86f 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -130,22 +130,22 @@ WRITE8_MEMBER(ultratnk_state::ultratnk_lockout_w)
WRITE8_MEMBER(ultratnk_state::ultratnk_fire_1_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, ULTRATNK_FIRE_EN_1, offset & 1);
+ discrete_sound_w(device, space, ULTRATNK_FIRE_EN_1, offset & 1);
}
WRITE8_MEMBER(ultratnk_state::ultratnk_fire_2_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, ULTRATNK_FIRE_EN_2, offset & 1);
+ discrete_sound_w(device, space, ULTRATNK_FIRE_EN_2, offset & 1);
}
WRITE8_MEMBER(ultratnk_state::ultratnk_attract_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, ULTRATNK_ATTRACT_EN, data & 1);
+ discrete_sound_w(device, space, ULTRATNK_ATTRACT_EN, data & 1);
}
WRITE8_MEMBER(ultratnk_state::ultratnk_explosion_w)
{
device_t *device = machine().device("discrete");
- discrete_sound_w(device, ULTRATNK_EXPLOSION_DATA, data & 15);
+ discrete_sound_w(device, space, ULTRATNK_EXPLOSION_DATA, data & 15);
}
diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c
index d528afd3ab3..c17e7ff5e15 100644
--- a/src/mame/drivers/ultrsprt.c
+++ b/src/mame/drivers/ultrsprt.c
@@ -136,10 +136,10 @@ READ16_MEMBER(ultrsprt_state::K056800_68k_r)
UINT16 r = 0;
if (ACCESSING_BITS_8_15)
- r |= k056800_sound_r(k056800, (offset*2)+0, 0xffff) << 8;
+ r |= k056800_sound_r(k056800, space, (offset*2)+0, 0xffff) << 8;
if (ACCESSING_BITS_0_7)
- r |= k056800_sound_r(k056800, (offset*2)+1, 0xffff) << 0;
+ r |= k056800_sound_r(k056800, space, (offset*2)+1, 0xffff) << 0;
return r;
}
@@ -149,10 +149,10 @@ WRITE16_MEMBER(ultrsprt_state::K056800_68k_w)
device_t *k056800 = machine().device("k056800");
if (ACCESSING_BITS_8_15)
- k056800_sound_w(k056800, (offset*2)+0, (data >> 8) & 0xff, 0x00ff);
+ k056800_sound_w(k056800, space, (offset*2)+0, (data >> 8) & 0xff, 0x00ff);
if (ACCESSING_BITS_0_7)
- k056800_sound_w(k056800, (offset*2)+1, (data >> 0) & 0xff, 0x00ff);
+ k056800_sound_w(k056800, space, (offset*2)+1, (data >> 0) & 0xff, 0x00ff);
}
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 16, ultrsprt_state )
diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c
index 09da3fd90ff..0d219df9fa0 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -167,7 +167,7 @@ WRITE8_MEMBER(vega_state::extern_w)
case 1: /* 04-07 */
{
/* AY 3-8910 */
- ay8910_address_w(m_ay8910, 0, offset);
+ ay8910_address_w(m_ay8910, space, 0, offset);
}
break;
@@ -182,7 +182,7 @@ WRITE8_MEMBER(vega_state::extern_w)
else
{
//register w ?
- ins8154_w(m_ins8154,offset&0x7f,data);
+ ins8154_w(m_ins8154,space,offset&0x7f,data);
}
}
break;
@@ -296,7 +296,7 @@ READ8_MEMBER(vega_state::extern_r)
case 1: /* 04-07 */
{
/* AY 3-8910 */
- ay8910_data_w(m_ay8910, 0, offset);
+ ay8910_data_w(m_ay8910, space, 0, offset);
return 0xff;//mame_rand(space->machine);
}
@@ -313,7 +313,7 @@ READ8_MEMBER(vega_state::extern_r)
else
{
//register r ?
- return ins8154_r(m_ins8154,offset&0x7f);
+ return ins8154_r(m_ins8154,space,offset&0x7f);
}
}
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index 14ff7b1720d..870027d4800 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -1464,25 +1464,25 @@ static WRITE32_HANDLER( asic_fifo_w )
static READ32_DEVICE_HANDLER( ide_main_r )
{
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
static WRITE32_DEVICE_HANDLER( ide_main_w )
{
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
static READ32_DEVICE_HANDLER( ide_alt_r )
{
- return ide_controller32_r(device, 0x3f4/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f4/4 + offset, mem_mask);
}
static WRITE32_DEVICE_HANDLER( ide_alt_w )
{
- ide_controller32_w(device, 0x3f4/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f4/4 + offset, data, mem_mask);
}
@@ -1490,9 +1490,9 @@ static READ32_DEVICE_HANDLER( ethernet_r )
{
UINT32 result = 0;
if (ACCESSING_BITS_0_15)
- result |= smc91c9x_r(device, offset * 2 + 0, mem_mask);
+ result |= smc91c9x_r(device, space, offset * 2 + 0, mem_mask);
if (ACCESSING_BITS_16_31)
- result |= smc91c9x_r(device, offset * 2 + 1, mem_mask >> 16) << 16;
+ result |= smc91c9x_r(device, space, offset * 2 + 1, mem_mask >> 16) << 16;
return result;
}
@@ -1500,9 +1500,9 @@ static READ32_DEVICE_HANDLER( ethernet_r )
static WRITE32_DEVICE_HANDLER( ethernet_w )
{
if (ACCESSING_BITS_0_15)
- smc91c9x_w(device, offset * 2 + 0, data, mem_mask);
+ smc91c9x_w(device, space, offset * 2 + 0, data, mem_mask);
if (ACCESSING_BITS_16_31)
- smc91c9x_w(device, offset * 2 + 1, data >> 16, mem_mask >> 16);
+ smc91c9x_w(device, space, offset * 2 + 1, data >> 16, mem_mask >> 16);
}
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index 69687167433..794e96c256d 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -145,7 +145,7 @@ WRITE8_MEMBER(vendetta_state::vendetta_eeprom_w)
READ8_MEMBER(vendetta_state::vendetta_K052109_r)
{
- return k052109_r(m_k052109, offset + 0x2000);
+ return k052109_r(m_k052109, space, offset + 0x2000);
}
WRITE8_MEMBER(vendetta_state::vendetta_K052109_w)
@@ -156,8 +156,8 @@ WRITE8_MEMBER(vendetta_state::vendetta_K052109_w)
// * Tilemap MASK-ROM Test (0x1d80<->0x3d80, 0x1e00<->0x3e00, 0x1f00<->0x3f00) *
// *************************************************************************************
if ((offset == 0x1d80) || (offset == 0x1e00) || (offset == 0x1f00))
- k052109_w(m_k052109, offset, data);
- k052109_w(m_k052109, offset + 0x2000, data);
+ k052109_w(m_k052109, space, offset, data);
+ k052109_w(m_k052109, space, offset + 0x2000, data);
}
@@ -225,7 +225,7 @@ READ8_MEMBER(vendetta_state::vendetta_sound_interrupt_r)
READ8_MEMBER(vendetta_state::vendetta_sound_r)
{
device_t *device = machine().device("k053260");
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
/********************************************/
diff --git a/src/mame/drivers/vertigo.c b/src/mame/drivers/vertigo.c
index a28ab9dbb9e..d49bbd36d45 100644
--- a/src/mame/drivers/vertigo.c
+++ b/src/mame/drivers/vertigo.c
@@ -31,7 +31,7 @@ READ16_MEMBER(vertigo_state::vertigo_pit8254_lsb_r)
{
device_t * device = machine().device("pit8254");
- return pit8253_r( device, offset );
+ return pit8253_r( device, space, offset );
}
WRITE16_MEMBER(vertigo_state::vertigo_pit8254_lsb_w)
@@ -39,7 +39,7 @@ WRITE16_MEMBER(vertigo_state::vertigo_pit8254_lsb_w)
device_t * device = machine().device("pit8254");
if (ACCESSING_BITS_0_7)
- pit8253_w(device, offset, data);
+ pit8253_w(device, space, offset, data);
}
static ADDRESS_MAP_START( vertigo_map, AS_PROGRAM, 16, vertigo_state )
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index 2752d8e2c67..a738fef45d7 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -155,7 +155,7 @@ WRITE8_MEMBER(videopin_state::videopin_out1_w)
coin_lockout_global_w(machine(), ~data & 0x08);
/* Convert octave data to divide value and write to sound */
- discrete_sound_w(device, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe);
+ discrete_sound_w(device, space, VIDEOPIN_OCTAVE_DATA, (0x01 << (~data & 0x07)) & 0xfe);
}
@@ -173,10 +173,10 @@ WRITE8_MEMBER(videopin_state::videopin_out2_w)
coin_counter_w(machine(), 0, data & 0x10);
- discrete_sound_w(device, VIDEOPIN_BELL_EN, data & 0x40); // Bell
- discrete_sound_w(device, VIDEOPIN_BONG_EN, data & 0x20); // Bong
- discrete_sound_w(device, VIDEOPIN_ATTRACT_EN, data & 0x80); // Attract
- discrete_sound_w(device, VIDEOPIN_VOL_DATA, data & 0x07); // Vol0,1,2
+ discrete_sound_w(device, space, VIDEOPIN_BELL_EN, data & 0x40); // Bell
+ discrete_sound_w(device, space, VIDEOPIN_BONG_EN, data & 0x20); // Bong
+ discrete_sound_w(device, space, VIDEOPIN_ATTRACT_EN, data & 0x80); // Attract
+ discrete_sound_w(device, space, VIDEOPIN_VOL_DATA, data & 0x07); // Vol0,1,2
}
@@ -184,7 +184,7 @@ WRITE8_MEMBER(videopin_state::videopin_note_dvsr_w)
{
device_t *device = machine().device("discrete");
/* note data */
- discrete_sound_w(device, VIDEOPIN_NOTE_DATA, ~data &0xff);
+ discrete_sound_w(device, space, VIDEOPIN_NOTE_DATA, ~data &0xff);
}
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index d53ee9cadee..b1befb82467 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -921,11 +921,11 @@ WRITE8_MEMBER(videopkr_state::baby_sound_p3_w)
case 0x00: break;
case 0x01: break;
case 0x02: break;
- case 0x03: ay8910_data_w(device, 1, m_sbp0); break;
+ case 0x03: ay8910_data_w(device, space, 1, m_sbp0); break;
case 0x04: break;
- case 0x05: m_sbp0 = ay8910_r(device, m_sbp0); break;
+ case 0x05: m_sbp0 = ay8910_r(device, space, m_sbp0); break;
case 0x06: break;
- case 0x07: ay8910_address_w(device, 0, m_sbp0); break;
+ case 0x07: ay8910_address_w(device, space, 0, m_sbp0); break;
}
}
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 1e00dfdd0fd..ea29930b93f 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -1527,40 +1527,40 @@ static void voodoo3_pci_w(device_t *busdevice, device_t *device, int function, i
READ64_MEMBER(viper_state::voodoo3_io_r)
{
device_t *device = machine().device("voodoo");
- return read64be_with_32le_device_handler(banshee_io_r, device, offset, mem_mask);
+ return read64be_with_32le_device_handler(banshee_io_r, device, space, offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_io_w)
{
// printf("voodoo3_io_w: %08X%08X, %08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), offset, space.device().safe_pc());
device_t *device = machine().device("voodoo");
- write64be_with_32le_device_handler(banshee_io_w, device, offset, data, mem_mask);
+ write64be_with_32le_device_handler(banshee_io_w, device, space, offset, data, mem_mask);
}
READ64_MEMBER(viper_state::voodoo3_r)
{
device_t *device = machine().device("voodoo");
- return read64be_with_32le_device_handler(banshee_r, device, offset, mem_mask);
+ return read64be_with_32le_device_handler(banshee_r, device, space, offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_w)
{
// printf("voodoo3_w: %08X%08X, %08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), offset, space.device().safe_pc());
device_t *device = machine().device("voodoo");
- write64be_with_32le_device_handler(banshee_w, device, offset, data, mem_mask);
+ write64be_with_32le_device_handler(banshee_w, device, space, offset, data, mem_mask);
}
READ64_MEMBER(viper_state::voodoo3_lfb_r)
{
device_t *device = machine().device("voodoo");
- return read64be_with_32le_device_handler(banshee_fb_r, device, offset, mem_mask);
+ return read64be_with_32le_device_handler(banshee_fb_r, device, space, offset, mem_mask);
}
WRITE64_MEMBER(viper_state::voodoo3_lfb_w)
{
// printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (UINT32)(data >> 32), (UINT32)(data), offset, space.device().safe_pc());
device_t *device = machine().device("voodoo");
- write64be_with_32le_device_handler(banshee_fb_w, device, offset, data, mem_mask);
+ write64be_with_32le_device_handler(banshee_fb_w, device, space, offset, data, mem_mask);
}
diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c
index e3ee8bda716..6693884e486 100644
--- a/src/mame/drivers/vmetal.c
+++ b/src/mame/drivers/vmetal.c
@@ -239,7 +239,7 @@ WRITE8_MEMBER(vmetal_state::vmetal_es8712_w)
16 002a 000e 0083 00ee 000f 0069 0069 0e832a-0f69ee
*/
- es8712_w(device, offset, data);
+ es8712_w(device, space, offset, data);
logerror("%s:Writing %04x to ES8712 offset %02x\n", machine().describe_context(), data, offset);
}
diff --git a/src/mame/drivers/voyager.c b/src/mame/drivers/voyager.c
index 7c515287393..bee83776fc1 100644
--- a/src/mame/drivers/voyager.c
+++ b/src/mame/drivers/voyager.c
@@ -78,13 +78,13 @@ static void ide_interrupt(device_t *device, int state);
READ8_MEMBER(voyager_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(voyager_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
READ8_MEMBER(voyager_state::at_page8_r)
@@ -192,13 +192,13 @@ static I8237_INTERFACE( dma8237_2_config )
READ32_MEMBER(voyager_state::ide_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(voyager_state::ide_w)
{
device_t *device = machine().device("ide");
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
@@ -208,14 +208,14 @@ WRITE32_MEMBER(voyager_state::ide_w)
READ32_MEMBER(voyager_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(voyager_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
diff --git a/src/mame/drivers/vsnes.c b/src/mame/drivers/vsnes.c
index aee6672ea25..39a1a474d89 100644
--- a/src/mame/drivers/vsnes.c
+++ b/src/mame/drivers/vsnes.c
@@ -196,37 +196,37 @@ WRITE8_MEMBER(vsnes_state::vsnes_coin_counter_1_w)
READ8_MEMBER(vsnes_state::psg1_4015_r)
{
device_t *device = machine().device("nes1");
- return nes_psg_r(device, 0x15);
+ return nes_psg_r(device, space, 0x15);
}
WRITE8_MEMBER(vsnes_state::psg1_4015_w)
{
device_t *device = machine().device("nes1");
- nes_psg_w(device, 0x15, data);
+ nes_psg_w(device, space, 0x15, data);
}
WRITE8_MEMBER(vsnes_state::psg1_4017_w)
{
device_t *device = machine().device("nes1");
- nes_psg_w(device, 0x17, data);
+ nes_psg_w(device, space, 0x17, data);
}
READ8_MEMBER(vsnes_state::psg2_4015_r)
{
device_t *device = machine().device("nes2");
- return nes_psg_r(device, 0x15);
+ return nes_psg_r(device, space, 0x15);
}
WRITE8_MEMBER(vsnes_state::psg2_4015_w)
{
device_t *device = machine().device("nes2");
- nes_psg_w(device, 0x15, data);
+ nes_psg_w(device, space, 0x15, data);
}
WRITE8_MEMBER(vsnes_state::psg2_4017_w)
{
device_t *device = machine().device("nes2");
- nes_psg_w(device, 0x17, data);
+ nes_psg_w(device, space, 0x17, data);
}
static ADDRESS_MAP_START( vsnes_cpu1_map, AS_PROGRAM, 8, vsnes_state )
AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x1800) AM_RAM AM_SHARE("work_ram")
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index dbbc1680e8b..9e4a79b6cae 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -184,7 +184,7 @@ WRITE8_MEMBER(warpwarp_state::geebee_out6_w)
/* n.c. */
break;
case 3:
- geebee_sound_w(machine().device("geebee"),0,data);
+ geebee_sound_w(machine().device("geebee"),space,0,data);
break;
}
}
@@ -268,7 +268,7 @@ WRITE8_MEMBER(warpwarp_state::warpwarp_out0_w)
m_ball_v = data;
break;
case 2:
- warpwarp_sound_w(machine().device("warpwarp"),0,data);
+ warpwarp_sound_w(machine().device("warpwarp"),space,0,data);
break;
case 3:
watchdog_reset_w(space,0,data);
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index c1e2b40469f..0d68349335a 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -181,16 +181,16 @@ WRITE16_MEMBER(warriorb_state::warriorb_sound_w)
{
if (offset == 0)
- tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff);
}
READ16_MEMBER(warriorb_state::warriorb_sound_r)
{
if (offset == 1)
- return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff));
else
return 0;
}
@@ -218,8 +218,8 @@ WRITE8_MEMBER(warriorb_state::warriorb_pancontrol)
WRITE16_MEMBER(warriorb_state::tc0100scn_dual_screen_w)
{
- 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_1, space, offset, data, mem_mask);
+ tc0100scn_word_w(m_tc0100scn_2, space, offset, data, mem_mask);
}
/***********************************************************
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index fa19e0282d4..76d4999ff20 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -707,37 +707,37 @@ WRITE8_MEMBER(wecleman_state::hotchase_sound_control_w)
READ8_MEMBER(wecleman_state::hotchase_1_k007232_r)
{
device_t *device = machine().device("konami1");
- return k007232_r(device, offset ^ 1);
+ return k007232_r(device, space, offset ^ 1);
}
WRITE8_MEMBER(wecleman_state::hotchase_1_k007232_w)
{
device_t *device = machine().device("konami1");
- k007232_w(device, offset ^ 1, data);
+ k007232_w(device, space, offset ^ 1, data);
}
READ8_MEMBER(wecleman_state::hotchase_2_k007232_r)
{
device_t *device = machine().device("konami2");
- return k007232_r(device, offset ^ 1);
+ return k007232_r(device, space, offset ^ 1);
}
WRITE8_MEMBER(wecleman_state::hotchase_2_k007232_w)
{
device_t *device = machine().device("konami2");
- k007232_w(device, offset ^ 1, data);
+ k007232_w(device, space, offset ^ 1, data);
}
READ8_MEMBER(wecleman_state::hotchase_3_k007232_r)
{
device_t *device = machine().device("konami3");
- return k007232_r(device, offset ^ 1);
+ return k007232_r(device, space, offset ^ 1);
}
WRITE8_MEMBER(wecleman_state::hotchase_3_k007232_w)
{
device_t *device = machine().device("konami3");
- k007232_w(device, offset ^ 1, data);
+ k007232_w(device, space, offset ^ 1, data);
}
static ADDRESS_MAP_START( hotchase_sound_map, AS_PROGRAM, 8, wecleman_state )
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index 3fc0c8dee3b..a444fc5a56b 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -621,16 +621,16 @@ WRITE16_MEMBER(wgp_state::wgp_sound_w)
{
if (offset == 0)
- tc0140syt_port_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(m_tc0140syt, space, 0, data & 0xff);
else if (offset == 1)
- tc0140syt_comm_w(m_tc0140syt, 0, data & 0xff);
+ tc0140syt_comm_w(m_tc0140syt, space, 0, data & 0xff);
}
READ16_MEMBER(wgp_state::wgp_sound_r)
{
if (offset == 1)
- return ((tc0140syt_comm_r(m_tc0140syt, 0) & 0xff));
+ return ((tc0140syt_comm_r(m_tc0140syt, space, 0) & 0xff));
else
return 0;
}
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index ad8573bba66..5019c97b542 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -185,14 +185,14 @@ WRITE8_MEMBER(wiz_state::sound_command_w)
// explosion sound trigger(analog?)
case 0x08:
- discrete_sound_w(discrete, STINGER_BOOM_EN1, m_dsc1);
- discrete_sound_w(discrete, STINGER_BOOM_EN2, m_dsc1^=1);
+ discrete_sound_w(discrete, space, STINGER_BOOM_EN1, m_dsc1);
+ discrete_sound_w(discrete, space, STINGER_BOOM_EN2, m_dsc1^=1);
break;
// player shot sound trigger(analog?)
case 0x0a:
- discrete_sound_w(discrete, STINGER_SHOT_EN1, m_dsc0);
- discrete_sound_w(discrete, STINGER_SHOT_EN2, m_dsc0^=1);
+ discrete_sound_w(discrete, space, STINGER_SHOT_EN1, m_dsc0);
+ discrete_sound_w(discrete, space, STINGER_SHOT_EN2, m_dsc0^=1);
break;
}
}
diff --git a/src/mame/drivers/xtom3d.c b/src/mame/drivers/xtom3d.c
index 474d2d5b961..81e8a8cec30 100644
--- a/src/mame/drivers/xtom3d.c
+++ b/src/mame/drivers/xtom3d.c
@@ -386,27 +386,27 @@ READ32_MEMBER(xtom3d_state::ide_r)
device_t *device = machine().device("ide");
return -1; // crashes otherwise
- return ide_controller32_r(device, 0x1f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x1f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(xtom3d_state::ide_w)
{
device_t *device = machine().device("ide");
if(0) // crashes otherwise
- ide_controller32_w(device, 0x1f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x1f0/4 + offset, data, mem_mask);
}
READ32_MEMBER(xtom3d_state::fdc_r)
{
device_t *device = machine().device("ide");
- return ide_controller32_r(device, 0x3f0/4 + offset, mem_mask);
+ return ide_controller32_r(device, space, 0x3f0/4 + offset, mem_mask);
}
WRITE32_MEMBER(xtom3d_state::fdc_w)
{
device_t *device = machine().device("ide");
//mame_printf_debug("FDC: write %08X, %08X, %08X\n", data, offset, mem_mask);
- ide_controller32_w(device, 0x3f0/4 + offset, data, mem_mask);
+ ide_controller32_w(device, space, 0x3f0/4 + offset, data, mem_mask);
}
READ8_MEMBER(xtom3d_state::at_page8_r)
@@ -455,13 +455,13 @@ WRITE8_MEMBER(xtom3d_state::at_page8_w)
READ8_MEMBER(xtom3d_state::at_dma8237_2_r)
{
device_t *device = machine().device("dma8237_2");
- return i8237_r(device, offset / 2);
+ return i8237_r(device, space, offset / 2);
}
WRITE8_MEMBER(xtom3d_state::at_dma8237_2_w)
{
device_t *device = machine().device("dma8237_2");
- i8237_w(device, offset / 2, data);
+ i8237_w(device, space, offset / 2, data);
}
WRITE_LINE_MEMBER(xtom3d_state::pc_dma_hrq_changed)
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index 0cbba7a6769..e0efe3fde48 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -112,7 +112,7 @@ WRITE_LINE_MEMBER(zaccaria_state::zaccaria_irq0b)
READ8_MEMBER(zaccaria_state::zaccaria_port0a_r)
{
- return ay8910_r(machine().device((m_active_8910 == 0) ? "ay1" : "ay2"), 0);
+ return ay8910_r(machine().device((m_active_8910 == 0) ? "ay1" : "ay2"), space, 0);
}
WRITE8_MEMBER(zaccaria_state::zaccaria_port0a_w)
@@ -127,7 +127,7 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
if ((m_last_port0b & 0x02) == 0x02 && (data & 0x02) == 0x00)
{
/* bit 0 goes to the 8910 #0 BC1 pin */
- ay8910_data_address_w(machine().device("ay1"), m_last_port0b, m_port0a);
+ ay8910_data_address_w(machine().device("ay1"), space, m_last_port0b, m_port0a);
}
else if ((m_last_port0b & 0x02) == 0x00 && (data & 0x02) == 0x02)
{
@@ -139,7 +139,7 @@ WRITE8_MEMBER(zaccaria_state::zaccaria_port0b_w)
if ((m_last_port0b & 0x08) == 0x08 && (data & 0x08) == 0x00)
{
/* bit 2 goes to the 8910 #1 BC1 pin */
- ay8910_data_address_w(machine().device("ay2"), m_last_port0b >> 2, m_port0a);
+ ay8910_data_address_w(machine().device("ay2"), space, m_last_port0b >> 2, m_port0a);
}
else if ((m_last_port0b & 0x08) == 0x00 && (data & 0x08) == 0x08)
{
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index c33546c6757..aaa7fd0f0cf 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -1216,7 +1216,7 @@ WRITE8_MEMBER(zn_state::fx1a_sound_bankswitch_w)
READ32_MEMBER(zn_state::taitofx1a_ymsound_r)
{
device_t *tc0140syt = machine().device("tc0140syt");
- return tc0140syt_comm_r(tc0140syt, 0) << 16;
+ return tc0140syt_comm_r(tc0140syt, space, 0) << 16;
}
WRITE32_MEMBER(zn_state::taitofx1a_ymsound_w)
@@ -1225,11 +1225,11 @@ WRITE32_MEMBER(zn_state::taitofx1a_ymsound_w)
if (mem_mask == 0x0000ffff)
{
- tc0140syt_port_w(tc0140syt, 0, data & 0xff);
+ tc0140syt_port_w(tc0140syt, space, 0, data & 0xff);
}
else
{
- tc0140syt_comm_w(tc0140syt, 0, (data >> 16) & 0xff);
+ tc0140syt_comm_w(tc0140syt, space, 0, (data >> 16) & 0xff);
}
}
@@ -1498,9 +1498,10 @@ static void atpsx_dma_read( zn_state *state, UINT32 n_address, INT32 n_size )
/* dma size is in 32-bit words, convert to bytes */
n_size <<= 2;
+ address_space &space = *state->machine().firstcpu->space(AS_PROGRAM);
while( n_size > 0 )
{
- psxwritebyte( p_n_psxram, n_address, ide_controller32_r( ide, 0x1f0 / 4, 0x000000ff ) );
+ psxwritebyte( p_n_psxram, n_address, ide_controller32_r( ide, space, 0x1f0 / 4, 0x000000ff ) );
n_address++;
n_size--;
}
diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h
index 6df00a4198c..86b53b6f48d 100644
--- a/src/mame/includes/8080bw.h
+++ b/src/mame/includes/8080bw.h
@@ -83,12 +83,12 @@ public:
extern const samples_interface lrescue_samples_interface;
-WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w );
+DECLARE_WRITE8_DEVICE_HANDLER( indianbt_sh_port_3_w );
DISCRETE_SOUND_EXTERN( indianbt );
-WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w );
-WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w );
-WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w );
+DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( polaris_sh_port_3_w );
DISCRETE_SOUND_EXTERN( polaris );
diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h
index 073cb3c684f..9d02207afbb 100644
--- a/src/mame/includes/asteroid.h
+++ b/src/mame/includes/asteroid.h
@@ -48,16 +48,16 @@ INTERRUPT_GEN( llander_interrupt );
DISCRETE_SOUND_EXTERN( asteroid );
DISCRETE_SOUND_EXTERN( astdelux );
-WRITE8_DEVICE_HANDLER( asteroid_explode_w );
-WRITE8_DEVICE_HANDLER( asteroid_thump_w );
-WRITE8_DEVICE_HANDLER( asteroid_sounds_w );
-WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w );
-WRITE8_DEVICE_HANDLER( astdelux_sounds_w );
+DECLARE_WRITE8_DEVICE_HANDLER( asteroid_explode_w );
+DECLARE_WRITE8_DEVICE_HANDLER( asteroid_thump_w );
+DECLARE_WRITE8_DEVICE_HANDLER( asteroid_sounds_w );
+DECLARE_WRITE8_DEVICE_HANDLER( asteroid_noise_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( astdelux_sounds_w );
/*----------- defined in audio/llander.c -----------*/
DISCRETE_SOUND_EXTERN( llander );
-WRITE8_DEVICE_HANDLER( llander_snd_reset_w );
-WRITE8_DEVICE_HANDLER( llander_sounds_w );
+DECLARE_WRITE8_DEVICE_HANDLER( llander_snd_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( llander_sounds_w );
diff --git a/src/mame/includes/atari.h b/src/mame/includes/atari.h
index 01d14d55325..3c2e671a444 100644
--- a/src/mame/includes/atari.h
+++ b/src/mame/includes/atari.h
@@ -20,9 +20,9 @@
extern const pia6821_interface atarixl_pia_interface;
/* These handlers are needed by MESS Atari 8bit drivers (for their custom pia_interface) */
-READ8_DEVICE_HANDLER(atari_pia_pa_r);
-READ8_DEVICE_HANDLER(atari_pia_pb_r);
-WRITE8_DEVICE_HANDLER(a600xl_pia_pb_w);
+DECLARE_READ8_DEVICE_HANDLER(atari_pia_pa_r);
+DECLARE_READ8_DEVICE_HANDLER(atari_pia_pb_r);
+DECLARE_WRITE8_DEVICE_HANDLER(a600xl_pia_pb_w);
WRITE_LINE_DEVICE_HANDLER(atari_pia_cb2_w);
diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h
index 1341d792cc5..06e699e4175 100644
--- a/src/mame/includes/avalnche.h
+++ b/src/mame/includes/avalnche.h
@@ -30,8 +30,8 @@ public:
/*----------- defined in audio/avalnche.c -----------*/
DISCRETE_SOUND_EXTERN( avalnche );
-WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w );
-WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w );
-WRITE8_DEVICE_HANDLER( avalnche_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( avalnche_noise_amplitude_w );
+DECLARE_WRITE8_DEVICE_HANDLER( avalnche_attract_enable_w );
+DECLARE_WRITE8_DEVICE_HANDLER( avalnche_audio_w );
WRITE8_HANDLER( catch_audio_w );
diff --git a/src/mame/includes/beezer.h b/src/mame/includes/beezer.h
index 5cfbbe931de..04a0b9aa735 100644
--- a/src/mame/includes/beezer.h
+++ b/src/mame/includes/beezer.h
@@ -53,11 +53,11 @@ private:
extern const device_type BEEZER;
-READ8_DEVICE_HANDLER( beezer_sh6840_r );
-WRITE8_DEVICE_HANDLER( beezer_sh6840_w );
-WRITE8_DEVICE_HANDLER( beezer_sfxctrl_w );
-WRITE8_DEVICE_HANDLER( beezer_timer1_w );
-READ8_DEVICE_HANDLER( beezer_noise_r );
+DECLARE_READ8_DEVICE_HANDLER( beezer_sh6840_r );
+DECLARE_WRITE8_DEVICE_HANDLER( beezer_sh6840_w );
+DECLARE_WRITE8_DEVICE_HANDLER( beezer_sfxctrl_w );
+DECLARE_WRITE8_DEVICE_HANDLER( beezer_timer1_w );
+DECLARE_READ8_DEVICE_HANDLER( beezer_noise_r );
/*----------- defined in video/beezer.c -----------*/
diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h
index d98e059599a..8c3fe307c67 100644
--- a/src/mame/includes/blockade.h
+++ b/src/mame/includes/blockade.h
@@ -40,4 +40,4 @@ SCREEN_UPDATE_IND16( blockade );
extern const samples_interface blockade_samples_interface;
DISCRETE_SOUND_EXTERN( blockade );
-WRITE8_DEVICE_HANDLER( blockade_sound_freq_w );
+DECLARE_WRITE8_DEVICE_HANDLER( blockade_sound_freq_w );
diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h
index ad4135e81d7..760d0428c4b 100644
--- a/src/mame/includes/bsktball.h
+++ b/src/mame/includes/bsktball.h
@@ -66,9 +66,9 @@ TIMER_DEVICE_CALLBACK( bsktball_scanline );
/*----------- defined in audio/bsktball.c -----------*/
-WRITE8_DEVICE_HANDLER( bsktball_bounce_w );
-WRITE8_DEVICE_HANDLER( bsktball_note_w );
-WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bsktball_bounce_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bsktball_note_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bsktball_noise_reset_w );
DISCRETE_SOUND_EXTERN( bsktball );
diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h
index bf9811a2ec2..841bcadf944 100644
--- a/src/mame/includes/bzone.h
+++ b/src/mame/includes/bzone.h
@@ -31,13 +31,13 @@ public:
/*----------- defined in audio/bzone.c -----------*/
-WRITE8_DEVICE_HANDLER( bzone_sounds_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bzone_sounds_w );
MACHINE_CONFIG_EXTERN( bzone_audio );
/*----------- defined in audio/redbaron.c -----------*/
-WRITE8_DEVICE_HANDLER( redbaron_sounds_w );
+DECLARE_WRITE8_DEVICE_HANDLER( redbaron_sounds_w );
class redbaron_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h
index 41cd04bd469..11621d98b45 100644
--- a/src/mame/includes/canyon.h
+++ b/src/mame/includes/canyon.h
@@ -41,10 +41,10 @@ public:
/*----------- defined in audio/canyon.c -----------*/
-WRITE8_DEVICE_HANDLER( canyon_motor_w );
-WRITE8_DEVICE_HANDLER( canyon_explode_w );
-WRITE8_DEVICE_HANDLER( canyon_attract_w );
-WRITE8_DEVICE_HANDLER( canyon_whistle_w );
+DECLARE_WRITE8_DEVICE_HANDLER( canyon_motor_w );
+DECLARE_WRITE8_DEVICE_HANDLER( canyon_explode_w );
+DECLARE_WRITE8_DEVICE_HANDLER( canyon_attract_w );
+DECLARE_WRITE8_DEVICE_HANDLER( canyon_whistle_w );
DISCRETE_SOUND_EXTERN( canyon );
diff --git a/src/mame/includes/cd32.h b/src/mame/includes/cd32.h
index 23ff02786cf..2d543e5cbc4 100644
--- a/src/mame/includes/cd32.h
+++ b/src/mame/includes/cd32.h
@@ -43,8 +43,8 @@ public:
/*----------- defined in machine/cd32.c -----------*/
-READ32_DEVICE_HANDLER( amiga_akiko32_r );
-WRITE32_DEVICE_HANDLER( amiga_akiko32_w );
+DECLARE_READ32_DEVICE_HANDLER( amiga_akiko32_r );
+DECLARE_WRITE32_DEVICE_HANDLER( amiga_akiko32_w );
class akiko_device : public device_t
{
diff --git a/src/mame/includes/cps3.h b/src/mame/includes/cps3.h
index 75e934fd322..bf5baaa559a 100644
--- a/src/mame/includes/cps3.h
+++ b/src/mame/includes/cps3.h
@@ -134,5 +134,5 @@ private:
extern const device_type CPS3;
-WRITE32_DEVICE_HANDLER( cps3_sound_w );
-READ32_DEVICE_HANDLER( cps3_sound_r );
+DECLARE_WRITE32_DEVICE_HANDLER( cps3_sound_w );
+DECLARE_READ32_DEVICE_HANDLER( cps3_sound_r );
diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h
index ff234adfa7f..7ce16da31cb 100644
--- a/src/mame/includes/crbaloon.h
+++ b/src/mame/includes/crbaloon.h
@@ -41,12 +41,12 @@ public:
/*----------- defined in audio/crbaloon.c -----------*/
-WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq );
-WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable );
+DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_freq );
+DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_music_enable );
void crbaloon_audio_set_explosion_enable(device_t *sn, int enabled);
void crbaloon_audio_set_breath_enable(device_t *sn, int enabled);
void crbaloon_audio_set_appear_enable(device_t *sn, int enabled);
-WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable );
+DECLARE_WRITE8_DEVICE_HANDLER( crbaloon_audio_set_laugh_enable );
MACHINE_CONFIG_EXTERN( crbaloon_audio );
diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h
index ccc3cbb83f0..7ce72e616cc 100644
--- a/src/mame/includes/dc.h
+++ b/src/mame/includes/dc.h
@@ -115,11 +115,11 @@ READ64_HANDLER( dc_modem_r );
WRITE64_HANDLER( dc_modem_w );
READ64_HANDLER( dc_rtc_r );
WRITE64_HANDLER( dc_rtc_w );
-READ64_DEVICE_HANDLER( dc_aica_reg_r );
-WRITE64_DEVICE_HANDLER( dc_aica_reg_w );
+DECLARE_READ64_DEVICE_HANDLER( dc_aica_reg_r );
+DECLARE_WRITE64_DEVICE_HANDLER( dc_aica_reg_w );
-READ32_DEVICE_HANDLER( dc_arm_aica_r );
-WRITE32_DEVICE_HANDLER( dc_arm_aica_w );
+DECLARE_READ32_DEVICE_HANDLER( dc_arm_aica_r );
+DECLARE_WRITE32_DEVICE_HANDLER( dc_arm_aica_w );
diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h
index 2c885938a2e..51c903f1a6e 100644
--- a/src/mame/includes/firetrk.h
+++ b/src/mame/includes/firetrk.h
@@ -106,13 +106,13 @@ public:
/*----------- defined in audio/firetrk.c -----------*/
-WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w );
-WRITE8_DEVICE_HANDLER( montecar_skid_reset_w );
-WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w );
-WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w );
-WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w );
-WRITE8_DEVICE_HANDLER( superbug_motor_snd_w );
-WRITE8_DEVICE_HANDLER( firetrk_xtndply_w );
+DECLARE_WRITE8_DEVICE_HANDLER( firetrk_skid_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( montecar_skid_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( firetrk_crash_snd_w );
+DECLARE_WRITE8_DEVICE_HANDLER( firetrk_skid_snd_w );
+DECLARE_WRITE8_DEVICE_HANDLER( firetrk_motor_snd_w );
+DECLARE_WRITE8_DEVICE_HANDLER( superbug_motor_snd_w );
+DECLARE_WRITE8_DEVICE_HANDLER( firetrk_xtndply_w );
DISCRETE_SOUND_EXTERN( firetrk );
DISCRETE_SOUND_EXTERN( superbug );
diff --git a/src/mame/includes/flower.h b/src/mame/includes/flower.h
index 98e9cd7b032..b8e94b62426 100644
--- a/src/mame/includes/flower.h
+++ b/src/mame/includes/flower.h
@@ -45,8 +45,8 @@ public:
/*----------- defined in audio/flower.c -----------*/
-WRITE8_DEVICE_HANDLER( flower_sound1_w );
-WRITE8_DEVICE_HANDLER( flower_sound2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( flower_sound1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( flower_sound2_w );
class flower_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h
index 17661fc6fb4..358ed77695d 100644
--- a/src/mame/includes/gaelco2.h
+++ b/src/mame/includes/gaelco2.h
@@ -55,9 +55,9 @@ public:
/*----------- defined in machine/gaelco2.c -----------*/
TIMER_DEVICE_CALLBACK( bang_irq );
-WRITE16_DEVICE_HANDLER( gaelco2_eeprom_cs_w );
-WRITE16_DEVICE_HANDLER( gaelco2_eeprom_sk_w );
-WRITE16_DEVICE_HANDLER( gaelco2_eeprom_data_w );
+DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_cs_w );
+DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_sk_w );
+DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_data_w );
/*----------- defined in video/gaelco2.c -----------*/
diff --git a/src/mame/includes/gomoku.h b/src/mame/includes/gomoku.h
index c64e3248d69..2653eac0bc8 100644
--- a/src/mame/includes/gomoku.h
+++ b/src/mame/includes/gomoku.h
@@ -30,8 +30,8 @@ public:
/*----------- defined in audio/gomoku.c -----------*/
-WRITE8_DEVICE_HANDLER( gomoku_sound1_w );
-WRITE8_DEVICE_HANDLER( gomoku_sound2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( gomoku_sound1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( gomoku_sound2_w );
class gomoku_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h
index 438cd457df2..5e9e83e48ae 100644
--- a/src/mame/includes/gridlee.h
+++ b/src/mame/includes/gridlee.h
@@ -60,7 +60,7 @@ public:
/*----------- defined in audio/gridlee.c -----------*/
-WRITE8_DEVICE_HANDLER( gridlee_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( gridlee_sound_w );
class gridlee_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/includes/hanaawas.h b/src/mame/includes/hanaawas.h
index 9c4ee04cf49..e09ce719459 100644
--- a/src/mame/includes/hanaawas.h
+++ b/src/mame/includes/hanaawas.h
@@ -35,7 +35,7 @@ public:
/*----------- defined in video/hanaawas.c -----------*/
-WRITE8_DEVICE_HANDLER( hanaawas_portB_w );
+DECLARE_WRITE8_DEVICE_HANDLER( hanaawas_portB_w );
diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h
index 4f231628332..da5c18d733d 100644
--- a/src/mame/includes/harddriv.h
+++ b/src/mame/includes/harddriv.h
@@ -349,7 +349,7 @@ void hdsnd_init(running_machine &machine);
-WRITE16_DEVICE_HANDLER( hdsnddsp_dac_w );
+DECLARE_WRITE16_DEVICE_HANDLER( hdsnddsp_dac_w );
diff --git a/src/mame/includes/homerun.h b/src/mame/includes/homerun.h
index 47f98b53781..2d5a71cbf54 100644
--- a/src/mame/includes/homerun.h
+++ b/src/mame/includes/homerun.h
@@ -57,7 +57,7 @@ public:
/*----------- defined in video/homerun.c -----------*/
-WRITE8_DEVICE_HANDLER( homerun_banking_w );
+DECLARE_WRITE8_DEVICE_HANDLER( homerun_banking_w );
SCREEN_UPDATE_IND16(homerun);
diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h
index 434ea584d87..e1b0af22a29 100644
--- a/src/mame/includes/leland.h
+++ b/src/mame/includes/leland.h
@@ -177,15 +177,15 @@ void ataxx_bankswitch(running_machine &machine);
void leland_init_eeprom(running_machine &machine, UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type);
void ataxx_init_eeprom(running_machine &machine, const UINT16 *data);
-READ8_DEVICE_HANDLER( ataxx_eeprom_r );
-WRITE8_DEVICE_HANDLER( ataxx_eeprom_w );
+DECLARE_READ8_DEVICE_HANDLER( ataxx_eeprom_r );
+DECLARE_WRITE8_DEVICE_HANDLER( ataxx_eeprom_w );
-READ8_DEVICE_HANDLER( leland_sound_port_r );
-WRITE8_DEVICE_HANDLER( leland_sound_port_w );
+DECLARE_READ8_DEVICE_HANDLER( leland_sound_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( leland_sound_port_w );
@@ -257,12 +257,12 @@ extern const device_type REDLINE_80186;
void leland_dac_update(device_t *device, int dacnum, UINT8 sample);
-READ8_DEVICE_HANDLER( leland_80186_response_r );
+DECLARE_READ8_DEVICE_HANDLER( leland_80186_response_r );
-WRITE8_DEVICE_HANDLER( leland_80186_control_w );
-WRITE8_DEVICE_HANDLER( leland_80186_command_lo_w );
-WRITE8_DEVICE_HANDLER( leland_80186_command_hi_w );
-WRITE8_DEVICE_HANDLER( ataxx_80186_control_w );
+DECLARE_WRITE8_DEVICE_HANDLER( leland_80186_control_w );
+DECLARE_WRITE8_DEVICE_HANDLER( leland_80186_command_lo_w );
+DECLARE_WRITE8_DEVICE_HANDLER( leland_80186_command_hi_w );
+DECLARE_WRITE8_DEVICE_HANDLER( ataxx_80186_control_w );
ADDRESS_MAP_EXTERN(leland_80186_map_program, 16);
ADDRESS_MAP_EXTERN(leland_80186_map_io, 16);
@@ -272,7 +272,7 @@ ADDRESS_MAP_EXTERN(ataxx_80186_map_io, 16);
/*----------- defined in video/leland.c -----------*/
-WRITE8_DEVICE_HANDLER( leland_gfx_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( leland_gfx_port_w );
diff --git a/src/mame/includes/m79amb.h b/src/mame/includes/m79amb.h
index 25da1dbb77f..38590e8308b 100644
--- a/src/mame/includes/m79amb.h
+++ b/src/mame/includes/m79amb.h
@@ -5,5 +5,5 @@
DISCRETE_SOUND_EXTERN( m79amb );
-WRITE8_DEVICE_HANDLER( m79amb_8000_w );
-WRITE8_DEVICE_HANDLER( m79amb_8003_w );
+DECLARE_WRITE8_DEVICE_HANDLER( m79amb_8000_w );
+DECLARE_WRITE8_DEVICE_HANDLER( m79amb_8003_w );
diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h
index 26207f78fbe..a4715f8bf81 100644
--- a/src/mame/includes/mario.h
+++ b/src/mame/includes/mario.h
@@ -93,8 +93,8 @@ SCREEN_UPDATE_IND16( mario );
/*----------- defined in audio/mario.c -----------*/
-WRITE8_DEVICE_HANDLER( mario_sh1_w );
-WRITE8_DEVICE_HANDLER( mario_sh2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( mario_sh1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( mario_sh2_w );
MACHINE_CONFIG_EXTERN( mario_audio );
diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h
index 95f5a7f4ae0..008c19926b6 100644
--- a/src/mame/includes/mcr.h
+++ b/src/mame/includes/mcr.h
@@ -105,7 +105,7 @@ public:
/*----------- defined in drivers/mcr.c -----------*/
-WRITE8_DEVICE_HANDLER( mcr_ipu_sio_transmit );
+DECLARE_WRITE16_DEVICE_HANDLER( mcr_ipu_sio_transmit );
/*----------- defined in machine/mcr.c -----------*/
diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h
index efd0f2dbeee..fd1f45e660c 100644
--- a/src/mame/includes/megadriv.h
+++ b/src/mame/includes/megadriv.h
@@ -73,8 +73,8 @@ extern READ16_HANDLER( megadriv_68k_io_read );
extern WRITE16_HANDLER( megadriv_68k_io_write );
/* These handlers are needed by puckpkmn.c for his memory map */
-extern READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read);
-extern WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write);
+extern DECLARE_READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read);
+extern DECLARE_WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write);
/* These are needed to create external input handlers (see e.g. MESS) */
/* Regs are also used by Megaplay! */
diff --git a/src/mame/includes/micro3d.h b/src/mame/includes/micro3d.h
index 5f0d5253202..78146ce7055 100644
--- a/src/mame/includes/micro3d.h
+++ b/src/mame/includes/micro3d.h
@@ -134,7 +134,7 @@ void micro3d_duart_tx(device_t *device, int channel, UINT8 data);
/*----------- defined in audio/micro3d.c -----------*/
-WRITE8_DEVICE_HANDLER( micro3d_upd7759_w );
+DECLARE_WRITE8_DEVICE_HANDLER( micro3d_upd7759_w );
void micro3d_noise_sh_w(running_machine &machine, UINT8 data);
diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h
index f4fe858cb10..7da148cb438 100644
--- a/src/mame/includes/mw8080bw.h
+++ b/src/mame/includes/mw8080bw.h
@@ -199,15 +199,15 @@ int invaders_is_cabinet_cocktail(running_machine &machine);
/*----------- defined in audio/mw8080bw.c -----------*/
-WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w );
-WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w );
+DECLARE_WRITE8_DEVICE_HANDLER( midway_tone_generator_lo_w );
+DECLARE_WRITE8_DEVICE_HANDLER( midway_tone_generator_hi_w );
MACHINE_CONFIG_EXTERN( seawolf_audio );
MACHINE_CONFIG_EXTERN( gunfight_audio );
MACHINE_CONFIG_EXTERN( tornbase_audio );
-WRITE8_DEVICE_HANDLER( tornbase_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tornbase_audio_w );
MACHINE_CONFIG_EXTERN( zzzap_audio );
@@ -215,59 +215,59 @@ MACHINE_CONFIG_EXTERN( maze_audio );
void maze_write_discrete(device_t *device, UINT8 maze_tone_timing_state);
MACHINE_CONFIG_EXTERN( boothill_audio );
-WRITE8_DEVICE_HANDLER( boothill_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( boothill_audio_w );
MACHINE_CONFIG_EXTERN( checkmat_audio );
-WRITE8_DEVICE_HANDLER( checkmat_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( checkmat_audio_w );
MACHINE_CONFIG_EXTERN( desertgu_audio );
-WRITE8_DEVICE_HANDLER( desertgu_audio_1_w );
-WRITE8_DEVICE_HANDLER( desertgu_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( desertgu_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( desertgu_audio_2_w );
MACHINE_CONFIG_EXTERN( dplay_audio );
-WRITE8_DEVICE_HANDLER( dplay_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( dplay_audio_w );
MACHINE_CONFIG_EXTERN( gmissile_audio );
MACHINE_CONFIG_EXTERN( m4_audio );
MACHINE_CONFIG_EXTERN( clowns_audio );
-WRITE8_DEVICE_HANDLER( clowns_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( clowns_audio_2_w );
MACHINE_CONFIG_EXTERN( spacwalk_audio );
-WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w );
-WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spacwalk_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spacwalk_audio_2_w );
MACHINE_CONFIG_EXTERN( shuffle_audio );
-WRITE8_DEVICE_HANDLER( shuffle_audio_1_w );
-WRITE8_DEVICE_HANDLER( shuffle_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( shuffle_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( shuffle_audio_2_w );
MACHINE_CONFIG_EXTERN( dogpatch_audio );
-WRITE8_DEVICE_HANDLER( dogpatch_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( dogpatch_audio_w );
MACHINE_CONFIG_EXTERN( spcenctr_audio );
-WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w );
-WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w );
-WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spcenctr_audio_3_w );
MACHINE_CONFIG_EXTERN( phantom2_audio );
MACHINE_CONFIG_EXTERN( bowler_audio );
-WRITE8_DEVICE_HANDLER( bowler_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bowler_audio_1_w );
MACHINE_CONFIG_EXTERN( invaders_samples_audio );
MACHINE_CONFIG_EXTERN( invaders_audio );
-WRITE8_DEVICE_HANDLER( invaders_audio_1_w );
-WRITE8_DEVICE_HANDLER( invaders_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( invaders_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( invaders_audio_2_w );
MACHINE_CONFIG_EXTERN( blueshrk_audio );
-WRITE8_DEVICE_HANDLER( blueshrk_audio_w );
+DECLARE_WRITE8_DEVICE_HANDLER( blueshrk_audio_w );
MACHINE_CONFIG_EXTERN( invad2ct_audio );
-WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w );
-WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w );
-WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w );
-WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w );
+DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_3_w );
+DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w );
/*----------- defined in video/mw8080bw.c -----------*/
diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h
index b4f86f66c7b..c73b63b0a3e 100644
--- a/src/mame/includes/n64.h
+++ b/src/mame/includes/n64.h
@@ -280,10 +280,10 @@ extern UINT32 *rsp_dmem;
extern void dp_full_sync(running_machine &machine);
extern void signal_rcp_interrupt(running_machine &machine, int interrupt);
-extern READ32_DEVICE_HANDLER( n64_sp_reg_r );
-extern WRITE32_DEVICE_HANDLER( n64_sp_reg_w );
-extern READ32_DEVICE_HANDLER( n64_dp_reg_r );
-extern WRITE32_DEVICE_HANDLER( n64_dp_reg_w );
+extern DECLARE_READ32_DEVICE_HANDLER( n64_sp_reg_r );
+extern DECLARE_WRITE32_DEVICE_HANDLER( n64_sp_reg_w );
+extern DECLARE_READ32_DEVICE_HANDLER( n64_dp_reg_r );
+extern DECLARE_WRITE32_DEVICE_HANDLER( n64_dp_reg_w );
diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h
index c6c0dc5365c..152ea32f7f2 100644
--- a/src/mame/includes/orbit.h
+++ b/src/mame/includes/orbit.h
@@ -48,10 +48,10 @@ public:
/*----------- defined in audio/orbit.c -----------*/
-WRITE8_DEVICE_HANDLER( orbit_note_w );
-WRITE8_DEVICE_HANDLER( orbit_note_amp_w );
-WRITE8_DEVICE_HANDLER( orbit_noise_amp_w );
-WRITE8_DEVICE_HANDLER( orbit_noise_rst_w );
+DECLARE_WRITE8_DEVICE_HANDLER( orbit_note_w );
+DECLARE_WRITE8_DEVICE_HANDLER( orbit_note_amp_w );
+DECLARE_WRITE8_DEVICE_HANDLER( orbit_noise_amp_w );
+DECLARE_WRITE8_DEVICE_HANDLER( orbit_noise_rst_w );
DISCRETE_SOUND_EXTERN( orbit );
diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h
index ab96fc49ac0..f870b371934 100644
--- a/src/mame/includes/phoenix.h
+++ b/src/mame/includes/phoenix.h
@@ -55,8 +55,8 @@ public:
DISCRETE_SOUND_EXTERN( phoenix );
-WRITE8_DEVICE_HANDLER( phoenix_sound_control_a_w );
-WRITE8_DEVICE_HANDLER( phoenix_sound_control_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( phoenix_sound_control_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( phoenix_sound_control_b_w );
class phoenix_sound_device : public device_t,
public device_sound_interface
@@ -92,7 +92,7 @@ extern const device_type PHOENIX;
SCREEN_UPDATE_IND16( phoenix );
-READ8_DEVICE_HANDLER( survival_protection_r );
+DECLARE_READ8_DEVICE_HANDLER( survival_protection_r );
READ_LINE_DEVICE_HANDLER( survival_sid_callback );
diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h
index 53f6b4fb97a..da97e8d11bb 100644
--- a/src/mame/includes/polepos.h
+++ b/src/mame/includes/polepos.h
@@ -109,8 +109,8 @@ private:
extern const device_type POLEPOS;
-WRITE8_DEVICE_HANDLER( polepos_engine_sound_lsb_w );
-WRITE8_DEVICE_HANDLER( polepos_engine_sound_msb_w );
+DECLARE_WRITE8_DEVICE_HANDLER( polepos_engine_sound_lsb_w );
+DECLARE_WRITE8_DEVICE_HANDLER( polepos_engine_sound_msb_w );
DISCRETE_SOUND_EXTERN( polepos );
diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h
index cbd5a6c3a5c..4a5702eef5e 100644
--- a/src/mame/includes/poolshrk.h
+++ b/src/mame/includes/poolshrk.h
@@ -36,10 +36,10 @@ public:
/*----------- defined in audio/poolshrk.c -----------*/
-WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w );
-WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w );
-WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w );
-WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_scratch_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_score_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_click_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( poolshrk_bump_sound_w );
DISCRETE_SOUND_EXTERN( poolshrk );
diff --git a/src/mame/includes/qix.h b/src/mame/includes/qix.h
index 86cc8369366..e5eea8738a2 100644
--- a/src/mame/includes/qix.h
+++ b/src/mame/includes/qix.h
@@ -105,7 +105,7 @@ extern const pia6821_interface slither_pia_2_intf;
-WRITE8_DEVICE_HANDLER( qix_pia_w );
+DECLARE_WRITE8_DEVICE_HANDLER( qix_pia_w );
WRITE_LINE_DEVICE_HANDLER( qix_vsync_changed );
@@ -116,7 +116,7 @@ MACHINE_CONFIG_EXTERN( qix_video );
MACHINE_CONFIG_EXTERN( zookeep_video );
MACHINE_CONFIG_EXTERN( slither_video );
-WRITE8_DEVICE_HANDLER( qix_flip_screen_w );
+DECLARE_WRITE8_DEVICE_HANDLER( qix_flip_screen_w );
/*----------- defined in audio/qix.c -----------*/
diff --git a/src/mame/includes/scramble.h b/src/mame/includes/scramble.h
index 1bc298f31f2..237c7d94537 100644
--- a/src/mame/includes/scramble.h
+++ b/src/mame/includes/scramble.h
@@ -72,8 +72,8 @@ READ8_HANDLER( triplep_pap_r );
READ8_HANDLER( hunchbks_mirror_r );
WRITE8_HANDLER( hunchbks_mirror_w );
-READ8_DEVICE_HANDLER( scramble_protection_r );
-WRITE8_DEVICE_HANDLER( scramble_protection_w );
+DECLARE_READ8_DEVICE_HANDLER( scramble_protection_r );
+DECLARE_WRITE8_DEVICE_HANDLER( scramble_protection_w );
/*----------- defined in audio/scramble.c -----------*/
@@ -82,13 +82,13 @@ void scramble_sh_init(running_machine &machine);
WRITE_LINE_DEVICE_HANDLER( scramble_sh_7474_q_callback );
-READ8_DEVICE_HANDLER( scramble_portB_r );
-READ8_DEVICE_HANDLER( frogger_portB_r );
+DECLARE_READ8_DEVICE_HANDLER( scramble_portB_r );
+DECLARE_READ8_DEVICE_HANDLER( frogger_portB_r );
-READ8_DEVICE_HANDLER( hotshock_soundlatch_r );
+DECLARE_READ8_DEVICE_HANDLER( hotshock_soundlatch_r );
-WRITE8_DEVICE_HANDLER( scramble_sh_irqtrigger_w );
-WRITE8_DEVICE_HANDLER( mrkougar_sh_irqtrigger_w );
+DECLARE_WRITE8_DEVICE_HANDLER( scramble_sh_irqtrigger_w );
+DECLARE_WRITE8_DEVICE_HANDLER( mrkougar_sh_irqtrigger_w );
MACHINE_CONFIG_EXTERN( ad2083_audio );
diff --git a/src/mame/includes/segas16a.h b/src/mame/includes/segas16a.h
index 9513c23334b..efdac597b7d 100644
--- a/src/mame/includes/segas16a.h
+++ b/src/mame/includes/segas16a.h
@@ -91,7 +91,7 @@ public:
DECLARE_WRITE8_MEMBER( n7751_command_w );
DECLARE_WRITE8_MEMBER( n7751_control_w );
DECLARE_WRITE8_MEMBER( n7751_rom_offset_w );
- static WRITE8_DEVICE_HANDLER( static_n7751_rom_offset_w );
+ static DECLARE_WRITE8_DEVICE_HANDLER( static_n7751_rom_offset_w );
// N7751 sound generator CPU read/write handlers
DECLARE_READ8_MEMBER( n7751_rom_r );
diff --git a/src/mame/includes/simpsons.h b/src/mame/includes/simpsons.h
index bb4634b2404..c0266d25576 100644
--- a/src/mame/includes/simpsons.h
+++ b/src/mame/includes/simpsons.h
@@ -43,7 +43,7 @@ public:
/*----------- defined in machine/simpsons.c -----------*/
-READ8_DEVICE_HANDLER( simpsons_sound_r );
+DECLARE_READ8_DEVICE_HANDLER( simpsons_sound_r );
diff --git a/src/mame/includes/skyraid.h b/src/mame/includes/skyraid.h
index 43930d54e71..f703b84d93d 100644
--- a/src/mame/includes/skyraid.h
+++ b/src/mame/includes/skyraid.h
@@ -32,7 +32,7 @@ public:
DISCRETE_SOUND_EXTERN( skyraid );
-WRITE8_DEVICE_HANDLER( skyraid_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( skyraid_sound_w );
/*----------- defined in video/skyraid.c -----------*/
diff --git a/src/mame/includes/spiders.h b/src/mame/includes/spiders.h
index 42db9bc7904..ca85236cae0 100644
--- a/src/mame/includes/spiders.h
+++ b/src/mame/includes/spiders.h
@@ -34,9 +34,9 @@ public:
/*----------- defined in audio/spiders.c -----------*/
-WRITE8_DEVICE_HANDLER( spiders_audio_command_w );
-WRITE8_DEVICE_HANDLER( spiders_audio_a_w );
-WRITE8_DEVICE_HANDLER( spiders_audio_b_w );
-WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_command_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( spiders_audio_ctrl_w );
MACHINE_CONFIG_EXTERN( spiders_audio );
diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h
index 6889c4bfe2c..0f2f3902b62 100644
--- a/src/mame/includes/sprint8.h
+++ b/src/mame/includes/sprint8.h
@@ -56,7 +56,7 @@ SCREEN_UPDATE_IND16( sprint8 );
DISCRETE_SOUND_EXTERN( sprint8 );
-WRITE8_DEVICE_HANDLER( sprint8_crash_w );
-WRITE8_DEVICE_HANDLER( sprint8_screech_w );
-WRITE8_DEVICE_HANDLER( sprint8_attract_w );
-WRITE8_DEVICE_HANDLER( sprint8_motor_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sprint8_crash_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sprint8_screech_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sprint8_attract_w );
+DECLARE_WRITE8_DEVICE_HANDLER( sprint8_motor_w );
diff --git a/src/mame/includes/stfight.h b/src/mame/includes/stfight.h
index 5163d551db6..4e367ee70fd 100644
--- a/src/mame/includes/stfight.h
+++ b/src/mame/includes/stfight.h
@@ -53,7 +53,7 @@ public:
INTERRUPT_GEN( stfight_vb_interrupt );
void stfight_adpcm_int(device_t *device);
-WRITE8_DEVICE_HANDLER( stfight_adpcm_control_w );
+DECLARE_WRITE8_DEVICE_HANDLER( stfight_adpcm_control_w );
/*----------- defined in video/stfight.c -----------*/
diff --git a/src/mame/includes/subs.h b/src/mame/includes/subs.h
index 4b94c224123..2ad26b25512 100644
--- a/src/mame/includes/subs.h
+++ b/src/mame/includes/subs.h
@@ -53,11 +53,11 @@ INTERRUPT_GEN( subs_interrupt );
/*----------- defined in audio/subs.c -----------*/
-WRITE8_DEVICE_HANDLER( subs_noise_reset_w );
-WRITE8_DEVICE_HANDLER( subs_sonar2_w );
-WRITE8_DEVICE_HANDLER( subs_sonar1_w );
-WRITE8_DEVICE_HANDLER( subs_crash_w );
-WRITE8_DEVICE_HANDLER( subs_explode_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subs_noise_reset_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subs_sonar2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subs_sonar1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subs_crash_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subs_explode_w );
DISCRETE_SOUND_EXTERN( subs );
diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h
index f0342c6d8b5..89612dffbce 100644
--- a/src/mame/includes/suna8.h
+++ b/src/mame/includes/suna8.h
@@ -108,9 +108,9 @@ public:
/*----------- defined in audio/suna8.c -----------*/
-WRITE8_DEVICE_HANDLER( suna8_play_samples_w );
-WRITE8_DEVICE_HANDLER( rranger_play_samples_w );
-WRITE8_DEVICE_HANDLER( suna8_samples_number_w );
+DECLARE_WRITE8_DEVICE_HANDLER( suna8_play_samples_w );
+DECLARE_WRITE8_DEVICE_HANDLER( rranger_play_samples_w );
+DECLARE_WRITE8_DEVICE_HANDLER( suna8_samples_number_w );
SAMPLES_START( suna8_sh_start );
diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h
index 407806c6300..f8296321042 100644
--- a/src/mame/includes/system1.h
+++ b/src/mame/includes/system1.h
@@ -113,7 +113,7 @@ public:
-WRITE8_DEVICE_HANDLER( system1_videoram_bank_w );
+DECLARE_WRITE8_DEVICE_HANDLER( system1_videoram_bank_w );
diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h
index 3a02c61c95d..be44145d436 100644
--- a/src/mame/includes/tatsumi.h
+++ b/src/mame/includes/tatsumi.h
@@ -126,8 +126,8 @@ public:
/*----------- defined in machine/tatsumi.c -----------*/
-READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r);
-READ8_DEVICE_HANDLER(tatsumi_hack_oki_r);
+DECLARE_READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r);
+DECLARE_READ8_DEVICE_HANDLER(tatsumi_hack_oki_r);
void tatsumi_reset(running_machine &machine);
diff --git a/src/mame/includes/tiamc1.h b/src/mame/includes/tiamc1.h
index 06a077c2bef..cfe3875d1a2 100644
--- a/src/mame/includes/tiamc1.h
+++ b/src/mame/includes/tiamc1.h
@@ -62,9 +62,9 @@ private:
extern const device_type TIAMC1;
-WRITE8_DEVICE_HANDLER( tiamc1_timer0_w );
-WRITE8_DEVICE_HANDLER( tiamc1_timer1_w );
-WRITE8_DEVICE_HANDLER( tiamc1_timer1_gate_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer0_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer1_gate_w );
/*----------- defined in video/tiamc1.c -----------*/
diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h
index 0c6f0cf60c9..1b7d143407d 100644
--- a/src/mame/includes/turbo.h
+++ b/src/mame/includes/turbo.h
@@ -137,16 +137,16 @@ MACHINE_CONFIG_EXTERN( turbo_samples );
MACHINE_CONFIG_EXTERN( subroc3d_samples );
MACHINE_CONFIG_EXTERN( buckrog_samples );
-WRITE8_DEVICE_HANDLER( turbo_sound_a_w );
-WRITE8_DEVICE_HANDLER( turbo_sound_b_w );
-WRITE8_DEVICE_HANDLER( turbo_sound_c_w );
+DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( turbo_sound_c_w );
-WRITE8_DEVICE_HANDLER( subroc3d_sound_a_w );
-WRITE8_DEVICE_HANDLER( subroc3d_sound_b_w );
-WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( subroc3d_sound_c_w );
-WRITE8_DEVICE_HANDLER( buckrog_sound_a_w );
-WRITE8_DEVICE_HANDLER( buckrog_sound_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_b_w );
/*----------- defined in video/turbo.c -----------*/
diff --git a/src/mame/includes/tx1.h b/src/mame/includes/tx1.h
index 510807d225f..8d5f645d7fc 100644
--- a/src/mame/includes/tx1.h
+++ b/src/mame/includes/tx1.h
@@ -178,16 +178,16 @@ public:
/*----------- defined in audio/tx1.c -----------*/
-READ8_DEVICE_HANDLER( tx1_pit8253_r );
-WRITE8_DEVICE_HANDLER( tx1_pit8253_w );
+DECLARE_READ8_DEVICE_HANDLER( tx1_pit8253_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tx1_pit8253_w );
-WRITE8_DEVICE_HANDLER( bb_ym1_a_w );
-WRITE8_DEVICE_HANDLER( bb_ym2_a_w );
-WRITE8_DEVICE_HANDLER( bb_ym2_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bb_ym1_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bb_ym2_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( bb_ym2_b_w );
-WRITE8_DEVICE_HANDLER( tx1_ay8910_a_w );
-WRITE8_DEVICE_HANDLER( tx1_ay8910_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tx1_ay8910_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( tx1_ay8910_b_w );
class tx1_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/includes/vectrex.h b/src/mame/includes/vectrex.h
index a5e009c859c..e2281d17836 100644
--- a/src/mame/includes/vectrex.h
+++ b/src/mame/includes/vectrex.h
@@ -79,13 +79,13 @@ DEVICE_IMAGE_LOAD( vectrex_cart );
TIMER_CALLBACK(vectrex_imager_eye);
void vectrex_configuration(running_machine &machine);
-READ8_DEVICE_HANDLER (vectrex_via_pa_r);
-READ8_DEVICE_HANDLER(vectrex_via_pb_r );
+DECLARE_READ8_DEVICE_HANDLER (vectrex_via_pa_r);
+DECLARE_READ8_DEVICE_HANDLER(vectrex_via_pb_r );
void vectrex_via_irq (device_t *device, int level);
/* for spectrum 1+ */
-READ8_DEVICE_HANDLER( vectrex_s1_via_pb_r );
+DECLARE_READ8_DEVICE_HANDLER( vectrex_s1_via_pb_r );
/*----------- defined in video/vectrex.c -----------*/
diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h
index 5639f696940..8c43b3c37d2 100644
--- a/src/mame/includes/warpwarp.h
+++ b/src/mame/includes/warpwarp.h
@@ -62,7 +62,7 @@ SCREEN_UPDATE_IND16( geebee );
/*----------- defined in audio/geebee.c -----------*/
-WRITE8_DEVICE_HANDLER( geebee_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( geebee_sound_w );
class geebee_sound_device : public device_t,
public device_sound_interface
@@ -91,9 +91,9 @@ extern const device_type GEEBEE;
/*----------- defined in audio/warpwarp.c -----------*/
-WRITE8_DEVICE_HANDLER( warpwarp_sound_w );
-WRITE8_DEVICE_HANDLER( warpwarp_music1_w );
-WRITE8_DEVICE_HANDLER( warpwarp_music2_w );
+DECLARE_WRITE8_DEVICE_HANDLER( warpwarp_sound_w );
+DECLARE_WRITE8_DEVICE_HANDLER( warpwarp_music1_w );
+DECLARE_WRITE8_DEVICE_HANDLER( warpwarp_music2_w );
class warpwarp_sound_device : public device_t,
public device_sound_interface
diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h
index 3afe59db01e..5e7adf9689a 100644
--- a/src/mame/includes/xxmissio.h
+++ b/src/mame/includes/xxmissio.h
@@ -36,7 +36,7 @@ public:
SCREEN_UPDATE_IND16( xxmissio );
-WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w );
-WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w );
+DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w );
+DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w );
diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h
index bffdb6acce1..7169fc659b8 100644
--- a/src/mame/includes/zaxxon.h
+++ b/src/mame/includes/zaxxon.h
@@ -73,12 +73,12 @@ public:
/*----------- defined in audio/zaxxon.c -----------*/
-WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w );
-WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w );
-WRITE8_DEVICE_HANDLER( zaxxon_sound_c_w );
+DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_a_w );
+DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( zaxxon_sound_c_w );
-WRITE8_DEVICE_HANDLER( congo_sound_b_w );
-WRITE8_DEVICE_HANDLER( congo_sound_c_w );
+DECLARE_WRITE8_DEVICE_HANDLER( congo_sound_b_w );
+DECLARE_WRITE8_DEVICE_HANDLER( congo_sound_c_w );
MACHINE_CONFIG_EXTERN( zaxxon_samples );
MACHINE_CONFIG_EXTERN( congo_samples );
diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c
index 8c821f843ff..3db22d69dfa 100644
--- a/src/mame/machine/amiga.c
+++ b/src/mame/machine/amiga.c
@@ -1039,7 +1039,7 @@ READ16_HANDLER( amiga_cia_r )
}
/* handle the reads */
- data = mos6526_r(cia, offset >> 7);
+ data = mos6526_r(cia, *space, offset >> 7);
if (LOG_CIA)
logerror("%06x:cia_%c_read(%03x) = %04x & %04x\n", space->device().safe_pc(), 'A' + ((~offset & 0x0800) >> 11), offset * 2, data << shift, mem_mask);
@@ -1081,7 +1081,7 @@ WRITE16_HANDLER( amiga_cia_w )
}
/* handle the writes */
- mos6526_w(cia, offset >> 7, (UINT8) data);
+ mos6526_w(cia, *space, offset >> 7, (UINT8) data);
}
diff --git a/src/mame/machine/archimds.c b/src/mame/machine/archimds.c
index 6f1945ec99e..4b6775bb504 100644
--- a/src/mame/machine/archimds.c
+++ b/src/mame/machine/archimds.c
@@ -684,7 +684,7 @@ READ32_HANDLER(archimedes_ioc_r)
case 1:
if (fdc) {
logerror("17XX: R @ addr %x mask %08x\n", offset*4, mem_mask);
- return wd17xx_data_r(fdc, offset&0xf);
+ return wd17xx_data_r(fdc, *space, offset&0xf);
} else {
logerror("Read from FDC device?\n");
return 0;
@@ -740,7 +740,7 @@ WRITE32_HANDLER(archimedes_ioc_w)
case 1:
if (fdc) {
logerror("17XX: %x to addr %x mask %08x\n", data, offset*4, mem_mask);
- wd17xx_data_w(fdc, offset&0xf, data&0xff);
+ wd17xx_data_w(fdc, *space, offset&0xf, data&0xff);
} else {
logerror("Write to FDC device?\n");
}
diff --git a/src/mame/machine/atarifb.c b/src/mame/machine/atarifb.c
index 658f34357e9..1af25b748a9 100644
--- a/src/mame/machine/atarifb.c
+++ b/src/mame/machine/atarifb.c
@@ -15,10 +15,10 @@ WRITE8_MEMBER(atarifb_state::atarifb_out1_w)
m_CTRLD = data;
- discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
- discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit
- discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
- discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
+ discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
+ discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
+ discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
+ discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
}
@@ -28,10 +28,10 @@ WRITE8_MEMBER(atarifb_state::atarifb4_out1_w)
m_CTRLD = data;
- discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
- discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit
- discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
- discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
+ discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
+ discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
+ discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
+ discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
coin_counter_w(machine(), 1, data & 0x80);
}
@@ -43,10 +43,10 @@ WRITE8_MEMBER(atarifb_state::abaseb_out1_w)
m_CTRLD = data;
- discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
- discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit
- discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
- discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
+ discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
+ discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
+ discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
+ discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
if (data & 0x80)
{
@@ -77,10 +77,10 @@ WRITE8_MEMBER(atarifb_state::soccer_out1_w)
/* bit 5-6 = trackball CTRL bits */
/* bit 7 = Rule LED */
- discrete_sound_w(discrete, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
- discrete_sound_w(discrete, ATARIFB_HIT_EN, data & 0x02); // Hit
- discrete_sound_w(discrete, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
- discrete_sound_w(discrete, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
+ discrete_sound_w(discrete, space, ATARIFB_WHISTLE_EN, data & 0x01); // Whistle
+ discrete_sound_w(discrete, space, ATARIFB_HIT_EN, data & 0x02); // Hit
+ discrete_sound_w(discrete, space, ATARIFB_ATTRACT_EN, data & 0x10); // Attract
+ discrete_sound_w(discrete, space, ATARIFB_NOISE_EN, data & 0x04); // Noise Enable / Kicker
// set_led_status(machine(), 0, data & 0x10); // !!!!!!!!!! Is this correct????
set_led_status(machine(), 1, data & 0x80);
@@ -91,7 +91,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out2_w)
{
device_t *discrete = machine().device("discrete");
- discrete_sound_w(discrete, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
+ discrete_sound_w(discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
coin_counter_w (machine(), 0, data & 0x10);
}
@@ -101,7 +101,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out2_w)
{
device_t *discrete = machine().device("discrete");
- discrete_sound_w(discrete, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
+ discrete_sound_w(discrete, space, ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
coin_counter_w (machine(), 0, data & 0x10);
coin_counter_w (machine(), 1, data & 0x20);
diff --git a/src/mame/machine/beezer.c b/src/mame/machine/beezer.c
index 731ae9eb68c..8701ae2c655 100644
--- a/src/mame/machine/beezer.c
+++ b/src/mame/machine/beezer.c
@@ -4,16 +4,16 @@
#include "includes/beezer.h"
-static READ8_DEVICE_HANDLER( b_via_0_pa_r );
-static READ8_DEVICE_HANDLER( b_via_0_pb_r );
-static WRITE8_DEVICE_HANDLER( b_via_0_pa_w );
-static WRITE8_DEVICE_HANDLER( b_via_0_pb_w );
+static DECLARE_READ8_DEVICE_HANDLER( b_via_0_pa_r );
+static DECLARE_READ8_DEVICE_HANDLER( b_via_0_pb_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( b_via_0_pa_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( b_via_0_pb_w );
static READ_LINE_DEVICE_HANDLER( b_via_0_ca2_r );
-static READ8_DEVICE_HANDLER( b_via_1_pa_r );
-static READ8_DEVICE_HANDLER( b_via_1_pb_r );
-static WRITE8_DEVICE_HANDLER( b_via_1_pa_w );
-static WRITE8_DEVICE_HANDLER( b_via_1_pb_w );
+static DECLARE_READ8_DEVICE_HANDLER( b_via_1_pa_r );
+static DECLARE_READ8_DEVICE_HANDLER( b_via_1_pb_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( b_via_1_pa_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( b_via_1_pb_w );
/* VIA 0 (aka "PPCNP74", U6 @1C on schematics)
@@ -140,7 +140,7 @@ static READ8_DEVICE_HANDLER( b_via_1_pa_r )
static READ8_DEVICE_HANDLER( b_via_1_pb_r )
{
- return 0x1F | (beezer_noise_r(device->machine().device("custom"), 0)?0x40:0);
+ return 0x1F | (beezer_noise_r(device->machine().device("custom"), space, 0)?0x40:0);
}
static WRITE8_DEVICE_HANDLER( b_via_1_pa_w )
@@ -151,7 +151,7 @@ static WRITE8_DEVICE_HANDLER( b_via_1_pa_w )
static WRITE8_DEVICE_HANDLER( b_via_1_pb_w )
{
- beezer_timer1_w(device->machine().device("custom"), 0, data&0x80);
+ beezer_timer1_w(device->machine().device("custom"), space, 0, data&0x80);
//if ((data&0x1f) != 0x01)
// popmessage("via1 pb low write of 0x%02x is not supported! contact mamedev!", data&0x1f);
}
diff --git a/src/mame/machine/buggychl.h b/src/mame/machine/buggychl.h
index 4ed33f5bb73..f3a33d31857 100644
--- a/src/mame/machine/buggychl.h
+++ b/src/mame/machine/buggychl.h
@@ -1,8 +1,8 @@
ADDRESS_MAP_EXTERN( buggychl_mcu_map, 8 );
-WRITE8_DEVICE_HANDLER( buggychl_mcu_w );
-READ8_DEVICE_HANDLER( buggychl_mcu_r );
-READ8_DEVICE_HANDLER( buggychl_mcu_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( buggychl_mcu_w );
+DECLARE_READ8_DEVICE_HANDLER( buggychl_mcu_r );
+DECLARE_READ8_DEVICE_HANDLER( buggychl_mcu_status_r );
class buggychl_mcu_device : public device_t
{
diff --git a/src/mame/machine/cd32.c b/src/mame/machine/cd32.c
index ab0a8efe0e7..37971be4f52 100644
--- a/src/mame/machine/cd32.c
+++ b/src/mame/machine/cd32.c
@@ -774,18 +774,17 @@ static void akiko_update_cdrom(akiko_state *state)
READ32_DEVICE_HANDLER( amiga_akiko32_r )
{
akiko_state *state = get_safe_token(device);
- address_space *space = state->m_space;
UINT32 retval;
if ( LOG_AKIKO && offset < (0x30/4) )
{
- logerror( "Reading AKIKO reg %0x [%s] at PC=%06x\n", offset, get_akiko_reg_name(offset), space->device().safe_pc() );
+ logerror( "Reading AKIKO reg %0x [%s] at PC=%06x\n", offset, get_akiko_reg_name(offset), state->m_space->device().safe_pc() );
}
switch( offset )
{
case 0x00/4: /* ID */
- if ( state->m_cdrom != NULL ) cdda_set_cdrom(space->machine().device("cdda"), state->m_cdrom);
+ if ( state->m_cdrom != NULL ) cdda_set_cdrom(state->m_space->machine().device("cdda"), state->m_cdrom);
return 0x0000cafe;
case 0x04/4: /* CDROM STATUS 1 */
@@ -838,11 +837,10 @@ READ32_DEVICE_HANDLER( amiga_akiko32_r )
WRITE32_DEVICE_HANDLER( amiga_akiko32_w )
{
akiko_state *state = get_safe_token(device);
- address_space *space = state->m_space;
if ( LOG_AKIKO && offset < (0x30/4) )
{
- logerror( "Writing AKIKO reg %0x [%s] with %08x at PC=%06x\n", offset, get_akiko_reg_name(offset), data, space->device().safe_pc() );
+ logerror( "Writing AKIKO reg %0x [%s] with %08x at PC=%06x\n", offset, get_akiko_reg_name(offset), data, state->m_space->device().safe_pc() );
}
switch( offset )
diff --git a/src/mame/machine/cdicdic.h b/src/mame/machine/cdicdic.h
index a3531d13c1a..2eb8c7fc846 100644
--- a/src/mame/machine/cdicdic.h
+++ b/src/mame/machine/cdicdic.h
@@ -128,10 +128,10 @@ extern const device_type MACHINE_CDICDIC;
// READ/WRITE HANDLERS
//**************************************************************************
-READ16_DEVICE_HANDLER( cdic_r );
-WRITE16_DEVICE_HANDLER( cdic_w );
-READ16_DEVICE_HANDLER( cdic_ram_r );
-WRITE16_DEVICE_HANDLER( cdic_ram_w );
+DECLARE_READ16_DEVICE_HANDLER( cdic_r );
+DECLARE_WRITE16_DEVICE_HANDLER( cdic_w );
+DECLARE_READ16_DEVICE_HANDLER( cdic_ram_r );
+DECLARE_WRITE16_DEVICE_HANDLER( cdic_ram_w );
#endif // __CDICDIC_H__
diff --git a/src/mame/machine/cdislave.h b/src/mame/machine/cdislave.h
index 9040d5d7be3..d9d93e2c6fc 100644
--- a/src/mame/machine/cdislave.h
+++ b/src/mame/machine/cdislave.h
@@ -119,8 +119,8 @@ extern const device_type MACHINE_CDISLAVE;
// READ/WRITE HANDLERS
//**************************************************************************
-READ16_DEVICE_HANDLER( slave_r );
-WRITE16_DEVICE_HANDLER( slave_w );
+DECLARE_READ16_DEVICE_HANDLER( slave_r );
+DECLARE_WRITE16_DEVICE_HANDLER( slave_w );
#endif // __CDISLAVE_H__
diff --git a/src/mame/machine/dc.c b/src/mame/machine/dc.c
index ce9ed093000..77247d311d3 100644
--- a/src/mame/machine/dc.c
+++ b/src/mame/machine/dc.c
@@ -843,7 +843,7 @@ READ64_DEVICE_HANDLER( dc_aica_reg_r )
// mame_printf_verbose("AICA REG: [%08x] read %" I64FMT "x, mask %" I64FMT "x\n", 0x700000+reg*4, (UINT64)offset, mem_mask);
- return (UINT64) aica_r(device, offset*2, 0xffff)<<shift;
+ return (UINT64) aica_r(device, space, offset*2, 0xffff)<<shift;
}
WRITE64_DEVICE_HANDLER( dc_aica_reg_w )
@@ -870,18 +870,18 @@ WRITE64_DEVICE_HANDLER( dc_aica_reg_w )
}
}
- aica_w(device, offset*2, dat, shift ? ((mem_mask>>32)&0xffff) : (mem_mask & 0xffff));
+ aica_w(device, space, offset*2, dat, shift ? ((mem_mask>>32)&0xffff) : (mem_mask & 0xffff));
// mame_printf_verbose("AICA REG: [%08x=%x] write %" I64FMT "x to %x, mask %" I64FMT "x\n", 0x700000+reg*4, dat, data, offset, mem_mask);
}
READ32_DEVICE_HANDLER( dc_arm_aica_r )
{
- return aica_r(device, offset*2, 0xffff) & 0xffff;
+ return aica_r(device, space, offset*2, 0xffff) & 0xffff;
}
WRITE32_DEVICE_HANDLER( dc_arm_aica_w )
{
- aica_w(device, offset*2, data, mem_mask&0xffff);
+ aica_w(device, space, offset*2, data, mem_mask&0xffff);
}
diff --git a/src/mame/machine/gaelco3d.h b/src/mame/machine/gaelco3d.h
index 7df6278940d..1af8983c59a 100644
--- a/src/mame/machine/gaelco3d.h
+++ b/src/mame/machine/gaelco3d.h
@@ -44,12 +44,12 @@ struct gaelco_serial_interface
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( gaelco_serial_status_r);
-WRITE8_DEVICE_HANDLER( gaelco_serial_data_w);
-READ8_DEVICE_HANDLER( gaelco_serial_data_r);
-WRITE8_DEVICE_HANDLER( gaelco_serial_rts_w );
+DECLARE_READ8_DEVICE_HANDLER( gaelco_serial_status_r);
+DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_data_w);
+DECLARE_READ8_DEVICE_HANDLER( gaelco_serial_data_r);
+DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_rts_w );
/* Set to 1 during transmit, 0 for receive */
-WRITE8_DEVICE_HANDLER( gaelco_serial_tr_w);
+DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_tr_w);
/* Big questions marks, related to serial i/o */
@@ -57,11 +57,11 @@ WRITE8_DEVICE_HANDLER( gaelco_serial_tr_w);
/* Not used in surfplnt, but in radikalb
* Set at beginning of transfer sub, cleared at end
*/
-WRITE8_DEVICE_HANDLER( gaelco_serial_unknown_w);
+DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_unknown_w);
/* only used in radikalb, set at beginning of receive isr, cleared at end */
-WRITE8_DEVICE_HANDLER( gaelco_serial_irq_enable );
+DECLARE_WRITE8_DEVICE_HANDLER( gaelco_serial_irq_enable );
diff --git a/src/mame/machine/konppc.c b/src/mame/machine/konppc.c
index d5939ae72c6..60790f1f84e 100644
--- a/src/mame/machine/konppc.c
+++ b/src/mame/machine/konppc.c
@@ -413,13 +413,13 @@ READ32_HANDLER( K033906_0_r )
if (nwk_device_sel[0] & 0x01)
return nwk_fifo_r(space, 0);
else
- return k033906_r(k033906_1, offset, mem_mask);
+ return k033906_r(k033906_1, *space, offset, mem_mask);
}
WRITE32_HANDLER( K033906_0_w )
{
device_t *k033906_1 = space->machine().device("k033906_1");
- k033906_w(k033906_1, offset, data, mem_mask);
+ k033906_w(k033906_1, *space, offset, data, mem_mask);
}
READ32_HANDLER( K033906_1_r )
@@ -428,13 +428,13 @@ READ32_HANDLER( K033906_1_r )
if (nwk_device_sel[1] & 0x01)
return nwk_fifo_r(space, 1);
else
- return k033906_r(k033906_2, offset, mem_mask);
+ return k033906_r(k033906_2, *space, offset, mem_mask);
}
WRITE32_HANDLER(K033906_1_w)
{
device_t *k033906_2 = space->machine().device("k033906_2");
- k033906_w(k033906_2, offset, data, mem_mask);
+ k033906_w(k033906_2, *space, offset, data, mem_mask);
}
/*****************************************************************************/
@@ -452,7 +452,7 @@ WRITE32_DEVICE_HANDLER(nwk_fifo_0_w)
}
else
{
- voodoo_w(device, offset ^ 0x80000, data, mem_mask);
+ voodoo_w(device, space, offset ^ 0x80000, data, mem_mask);
}
}
@@ -469,7 +469,7 @@ WRITE32_DEVICE_HANDLER(nwk_fifo_1_w)
}
else
{
- voodoo_w(device, offset ^ 0x80000, data, mem_mask);
+ voodoo_w(device, space, offset ^ 0x80000, data, mem_mask);
}
}
@@ -481,7 +481,7 @@ READ32_DEVICE_HANDLER(nwk_voodoo_0_r)
}
else
{
- return voodoo_r(device, offset, mem_mask);
+ return voodoo_r(device, space, offset, mem_mask);
}
}
@@ -493,7 +493,7 @@ READ32_DEVICE_HANDLER(nwk_voodoo_1_r)
}
else
{
- return voodoo_r(device, offset, mem_mask);
+ return voodoo_r(device, space, offset, mem_mask);
}
}
@@ -510,7 +510,7 @@ WRITE32_DEVICE_HANDLER(nwk_voodoo_0_w)
}
else
{
- voodoo_w(device, offset, data, mem_mask);
+ voodoo_w(device, space, offset, data, mem_mask);
}
}
@@ -527,7 +527,7 @@ WRITE32_DEVICE_HANDLER(nwk_voodoo_1_w)
}
else
{
- voodoo_w(device, offset, data, mem_mask);
+ voodoo_w(device, space, offset, data, mem_mask);
}
}
diff --git a/src/mame/machine/konppc.h b/src/mame/machine/konppc.h
index 621253d665c..20972ffd08f 100644
--- a/src/mame/machine/konppc.h
+++ b/src/mame/machine/konppc.h
@@ -31,12 +31,12 @@ WRITE32_HANDLER(K033906_0_w);
READ32_HANDLER(K033906_1_r);
WRITE32_HANDLER(K033906_1_w);
-WRITE32_DEVICE_HANDLER(nwk_fifo_0_w);
-WRITE32_DEVICE_HANDLER(nwk_fifo_1_w);
-READ32_DEVICE_HANDLER(nwk_voodoo_0_r);
-READ32_DEVICE_HANDLER(nwk_voodoo_1_r);
-WRITE32_DEVICE_HANDLER(nwk_voodoo_0_w);
-WRITE32_DEVICE_HANDLER(nwk_voodoo_1_w);
+DECLARE_WRITE32_DEVICE_HANDLER(nwk_fifo_0_w);
+DECLARE_WRITE32_DEVICE_HANDLER(nwk_fifo_1_w);
+DECLARE_READ32_DEVICE_HANDLER(nwk_voodoo_0_r);
+DECLARE_READ32_DEVICE_HANDLER(nwk_voodoo_1_r);
+DECLARE_WRITE32_DEVICE_HANDLER(nwk_voodoo_0_w);
+DECLARE_WRITE32_DEVICE_HANDLER(nwk_voodoo_1_w);
void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, UINT8 value);
diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c
index 19314a66644..72acbaea020 100644
--- a/src/mame/machine/leland.c
+++ b/src/mame/machine/leland.c
@@ -332,7 +332,8 @@ MACHINE_RESET_MEMBER(leland_state,leland)
/* reset globals */
m_gfx_control = 0x00;
- leland_sound_port_w(machine().device("ay8910.1"), 0, 0xff);
+ address_space &space = generic_space();
+ leland_sound_port_w(machine().device("ay8910.1"), space, 0, 0xff);
m_wcol_enable = 0;
m_dangerz_x = 512;
@@ -470,7 +471,7 @@ WRITE8_MEMBER(leland_state::leland_master_alt_bankswitch_w)
(*m_update_master_bank)(machine());
/* sound control is in the rest */
- leland_80186_control_w(machine().device("custom"), offset, data);
+ leland_80186_control_w(machine().device("custom"), space, offset, data);
}
@@ -1103,7 +1104,7 @@ READ8_MEMBER(leland_state::leland_master_input_r)
case 0x03: /* /IGID */
case 0x13:
- result = ay8910_r(machine().device("ay8910.1"), offset);
+ result = ay8910_r(machine().device("ay8910.1"), space, offset);
break;
case 0x10: /* /GIN0 */
@@ -1145,7 +1146,7 @@ WRITE8_MEMBER(leland_state::leland_master_output_w)
case 0x0a: /* /OGIA */
case 0x0b: /* /OGID */
- ay8910_address_data_w(machine().device("ay8910.1"), offset, data);
+ ay8910_address_data_w(machine().device("ay8910.1"), space, offset, data);
break;
case 0x0c: /* /BKXL */
@@ -1314,7 +1315,7 @@ WRITE8_DEVICE_HANDLER( leland_sound_port_w )
{
leland_state *state = device->machine().driver_data<leland_state>();
/* update the graphics banking */
- leland_gfx_port_w(device, 0, data);
+ leland_gfx_port_w(device, space, 0, data);
/* set the new value */
state->m_gfx_control = data;
diff --git a/src/mame/machine/mathbox.h b/src/mame/machine/mathbox.h
index 5c0cdf5581c..ff4b5df839e 100644
--- a/src/mame/machine/mathbox.h
+++ b/src/mame/machine/mathbox.h
@@ -20,10 +20,10 @@
FUNCTION PROTOTYPES
***************************************************************************/
-WRITE8_DEVICE_HANDLER( mathbox_go_w );
-READ8_DEVICE_HANDLER( mathbox_status_r );
-READ8_DEVICE_HANDLER( mathbox_lo_r );
-READ8_DEVICE_HANDLER( mathbox_hi_r );
+DECLARE_WRITE8_DEVICE_HANDLER( mathbox_go_w );
+DECLARE_READ8_DEVICE_HANDLER( mathbox_status_r );
+DECLARE_READ8_DEVICE_HANDLER( mathbox_lo_r );
+DECLARE_READ8_DEVICE_HANDLER( mathbox_hi_r );
/* ----- device interface ----- */
class mathbox_device : public device_t
diff --git a/src/mame/machine/mcr.c b/src/mame/machine/mcr.c
index 34c55dcc137..8da73dc7319 100644
--- a/src/mame/machine/mcr.c
+++ b/src/mame/machine/mcr.c
@@ -41,7 +41,7 @@ static emu_timer *ipu_watchdog_timer;
*************************************/
static TIMER_CALLBACK( ipu_watchdog_reset );
-static WRITE8_DEVICE_HANDLER( ipu_break_changed );
+static DECLARE_WRITE8_DEVICE_HANDLER( ipu_break_changed );
@@ -140,11 +140,11 @@ static WRITE_LINE_DEVICE_HANDLER( ipu_ctc_interrupt )
const z80sio_interface nflfoot_sio_intf =
{
- ipu_ctc_interrupt, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- ipu_break_changed, /* BREAK changed handler */
- mcr_ipu_sio_transmit/* transmit handler */
+ DEVCB_LINE(ipu_ctc_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_HANDLER(ipu_break_changed), /* BREAK changed handler */
+ DEVCB_HANDLER(mcr_ipu_sio_transmit)/* transmit handler */
};
diff --git a/src/mame/machine/mcr68.c b/src/mame/machine/mcr68.c
index cd1fe803fef..011ef0a4dc0 100644
--- a/src/mame/machine/mcr68.c
+++ b/src/mame/machine/mcr68.c
@@ -24,8 +24,8 @@ static void subtract_from_counter(running_machine &machine, int counter, int cou
static TIMER_CALLBACK( mcr68_493_callback );
static TIMER_CALLBACK( zwackery_493_callback );
-static WRITE8_DEVICE_HANDLER( zwackery_pia0_w );
-static WRITE8_DEVICE_HANDLER( zwackery_pia1_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( zwackery_pia0_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( zwackery_pia1_w );
static WRITE_LINE_DEVICE_HANDLER( zwackery_ca2_w );
static WRITE_LINE_DEVICE_HANDLER( zwackery_pia_irq );
diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c
index 140ecb49666..68ef263e9c9 100644
--- a/src/mame/machine/megadriv.c
+++ b/src/mame/machine/megadriv.c
@@ -110,7 +110,7 @@ READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read)
//mame_printf_debug("megadriv_68k_YM2612_read %02x %04x\n",offset,mem_mask);
if ( (genz80.z80_has_bus==0) && (genz80.z80_is_reset==0) )
{
- return ym2612_r(device, offset);
+ return ym2612_r(device, space, offset);
}
else
{
@@ -127,7 +127,7 @@ WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write)
//mame_printf_debug("megadriv_68k_YM2612_write %02x %04x %04x\n",offset,data,mem_mask);
if ( (genz80.z80_has_bus==0) && (genz80.z80_is_reset==0) )
{
- ym2612_w(device, offset, data);
+ ym2612_w(device, space, offset, data);
}
else
{
@@ -820,7 +820,7 @@ static WRITE8_HANDLER( megadriv_z80_vdp_write )
case 0x13:
case 0x15:
case 0x17:
- sn76496_w(space->machine().device("snsnd"), 0, data);
+ sn76496_w(space->machine().device("snsnd"), *space, 0, data);
break;
default:
diff --git a/src/mame/machine/megavdp.c b/src/mame/machine/megavdp.c
index dd0540532c2..9df2638a4b0 100644
--- a/src/mame/machine/megavdp.c
+++ b/src/mame/machine/megavdp.c
@@ -854,7 +854,7 @@ WRITE16_MEMBER( sega_genesis_vdp_device::megadriv_vdp_w )
case 0x12:
case 0x14:
case 0x16:
- if (ACCESSING_BITS_0_7) sn76496_w(space.machine().device(":snsnd"), 0, data & 0xff);
+ if (ACCESSING_BITS_0_7) sn76496_w(space.machine().device(":snsnd"), space, 0, data & 0xff);
//if (ACCESSING_BITS_8_15) sn76496_w(space->machine().device("snsnd"), 0, (data >>8) & 0xff);
break;
diff --git a/src/mame/machine/mhavoc.c b/src/mame/machine/mhavoc.c
index f207f893723..42e81a1b958 100644
--- a/src/mame/machine/mhavoc.c
+++ b/src/mame/machine/mhavoc.c
@@ -311,7 +311,7 @@ WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_data_w)
WRITE8_MEMBER(mhavoc_state::mhavocrv_speech_strobe_w)
{
device_t *tms = machine().device("tms");
- tms5220_data_w(tms, 0, m_speech_write_buffer);
+ tms5220_data_w(tms, space, 0, m_speech_write_buffer);
}
/*************************************
diff --git a/src/mame/machine/midwayic.c b/src/mame/machine/midwayic.c
index 93cf028a458..05371cc139d 100644
--- a/src/mame/machine/midwayic.c
+++ b/src/mame/machine/midwayic.c
@@ -1067,11 +1067,11 @@ READ32_DEVICE_HANDLER( midway_ide_asic_r )
/* offset 0 is a special case */
if (offset == 0)
- result = ide_controller32_r(device, ideoffs, 0x0000ffff);
+ result = ide_controller32_r(device, space, ideoffs, 0x0000ffff);
/* everything else is byte-sized */
else
- result = ide_controller32_r(device, ideoffs, 0xff << shift) >> shift;
+ result = ide_controller32_r(device, space, ideoffs, 0xff << shift) >> shift;
return result;
}
@@ -1084,9 +1084,9 @@ WRITE32_DEVICE_HANDLER( midway_ide_asic_w )
/* offset 0 is a special case */
if (offset == 0)
- ide_controller32_w(device, ideoffs, data, 0x0000ffff);
+ ide_controller32_w(device, space, ideoffs, data, 0x0000ffff);
/* everything else is byte-sized */
else
- ide_controller32_w(device, ideoffs, data << shift, 0xff << shift);
+ ide_controller32_w(device, space, ideoffs, data << shift, 0xff << shift);
}
diff --git a/src/mame/machine/midwayic.h b/src/mame/machine/midwayic.h
index 61cfda69cdd..565f982ecfe 100644
--- a/src/mame/machine/midwayic.h
+++ b/src/mame/machine/midwayic.h
@@ -51,5 +51,5 @@ enum
/* IDE ASIC maps the IDE registers */
-READ32_DEVICE_HANDLER( midway_ide_asic_r );
-WRITE32_DEVICE_HANDLER( midway_ide_asic_w );
+DECLARE_READ32_DEVICE_HANDLER( midway_ide_asic_r );
+DECLARE_WRITE32_DEVICE_HANDLER( midway_ide_asic_w );
diff --git a/src/mame/machine/namco06.c b/src/mame/machine/namco06.c
index 79203db1e36..675e62ae059 100644
--- a/src/mame/machine/namco06.c
+++ b/src/mame/machine/namco06.c
@@ -145,7 +145,7 @@ READ8_DEVICE_HANDLER( namco_06xx_data_r )
for (devnum = 0; devnum < 4; devnum++)
if ((state->m_control & (1 << devnum)) && state->m_read[devnum] != NULL)
- result &= (*state->m_read[devnum])(state->m_device[devnum], 0);
+ result &= (*state->m_read[devnum])(state->m_device[devnum], space, 0, 0xff);
return result;
}
@@ -166,7 +166,7 @@ WRITE8_DEVICE_HANDLER( namco_06xx_data_w )
for (devnum = 0; devnum < 4; devnum++)
if ((state->m_control & (1 << devnum)) && state->m_write[devnum] != NULL)
- (*state->m_write[devnum])(state->m_device[devnum], 0, data);
+ (*state->m_write[devnum])(state->m_device[devnum], space, 0, data, 0xff);
}
diff --git a/src/mame/machine/namco06.h b/src/mame/machine/namco06.h
index 031c7d08b9f..80efebc8622 100644
--- a/src/mame/machine/namco06.h
+++ b/src/mame/machine/namco06.h
@@ -19,10 +19,10 @@ struct namco_06xx_config
MCFG_DEVICE_CONFIG(_config)
-READ8_DEVICE_HANDLER( namco_06xx_data_r );
-WRITE8_DEVICE_HANDLER( namco_06xx_data_w );
-READ8_DEVICE_HANDLER( namco_06xx_ctrl_r );
-WRITE8_DEVICE_HANDLER( namco_06xx_ctrl_w );
+DECLARE_READ8_DEVICE_HANDLER( namco_06xx_data_r );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_06xx_data_w );
+DECLARE_READ8_DEVICE_HANDLER( namco_06xx_ctrl_r );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_06xx_ctrl_w );
/* device get info callback */
diff --git a/src/mame/machine/namco50.h b/src/mame/machine/namco50.h
index da6a61f3909..ad6227ad683 100644
--- a/src/mame/machine/namco50.h
+++ b/src/mame/machine/namco50.h
@@ -8,9 +8,9 @@
MCFG_DEVICE_ADD(_tag, NAMCO_50XX, _clock) \
-READ8_DEVICE_HANDLER( namco_50xx_read );
+DECLARE_READ8_DEVICE_HANDLER( namco_50xx_read );
void namco_50xx_read_request(device_t *device);
-WRITE8_DEVICE_HANDLER( namco_50xx_write );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_50xx_write );
/* device get info callback */
diff --git a/src/mame/machine/namco51.h b/src/mame/machine/namco51.h
index 7ac6309c3a7..44637e62862 100644
--- a/src/mame/machine/namco51.h
+++ b/src/mame/machine/namco51.h
@@ -16,8 +16,8 @@ struct namco_51xx_interface
MCFG_DEVICE_CONFIG(_interface)
-READ8_DEVICE_HANDLER( namco_51xx_read );
-WRITE8_DEVICE_HANDLER( namco_51xx_write );
+DECLARE_READ8_DEVICE_HANDLER( namco_51xx_read );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_51xx_write );
class namco_51xx_device : public device_t
diff --git a/src/mame/machine/namco53.h b/src/mame/machine/namco53.h
index 84213e48681..4833e066029 100644
--- a/src/mame/machine/namco53.h
+++ b/src/mame/machine/namco53.h
@@ -18,7 +18,7 @@ struct namco_53xx_interface
void namco_53xx_read_request(device_t *device);
-READ8_DEVICE_HANDLER( namco_53xx_read );
+DECLARE_READ8_DEVICE_HANDLER( namco_53xx_read );
class namco_53xx_device : public device_t
diff --git a/src/mame/machine/namco62.h b/src/mame/machine/namco62.h
index c456b4b8698..230674d0203 100644
--- a/src/mame/machine/namco62.h
+++ b/src/mame/machine/namco62.h
@@ -16,8 +16,8 @@ struct namco_62xx_interface
MCFG_DEVICE_CONFIG(_interface)
-READ8_DEVICE_HANDLER( namco_62xx_read );
-WRITE8_DEVICE_HANDLER( namco_62xx_write );
+DECLARE_READ8_DEVICE_HANDLER( namco_62xx_read );
+DECLARE_WRITE8_DEVICE_HANDLER( namco_62xx_write );
class namco_62xx_device : public device_t
diff --git a/src/mame/machine/namcoio.h b/src/mame/machine/namcoio.h
index e29b5f21324..87152ad8d33 100644
--- a/src/mame/machine/namcoio.h
+++ b/src/mame/machine/namcoio.h
@@ -59,8 +59,8 @@ extern const device_type NAMCO56XX;
DEVICE I/O FUNCTIONS
***************************************************************************/
-READ8_DEVICE_HANDLER( namcoio_r );
-WRITE8_DEVICE_HANDLER( namcoio_w );
+DECLARE_READ8_DEVICE_HANDLER( namcoio_r );
+DECLARE_WRITE8_DEVICE_HANDLER( namcoio_w );
WRITE_LINE_DEVICE_HANDLER( namcoio_set_reset_line );
READ_LINE_DEVICE_HANDLER( namcoio_read_reset_line );
diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c
index 1bfc4836e3a..8f6bd26b81f 100644
--- a/src/mame/machine/namcos1.c
+++ b/src/mame/machine/namcos1.c
@@ -611,7 +611,7 @@ static READ8_HANDLER( soundram_r )
offset &= 0x3ff;
/* CUS 30 */
- return namcos1_cus30_r(space->machine().device("namco"),offset);
+ return namcos1_cus30_r(space->machine().device("namco"),*space,offset);
}
else
{
@@ -630,7 +630,7 @@ static WRITE8_HANDLER( soundram_w )
offset &= 0x3ff;
/* CUS 30 */
- namcos1_cus30_w(space->machine().device("namco"),offset,data);
+ namcos1_cus30_w(space->machine().device("namco"),*space,offset,data);
}
else
{
diff --git a/src/mame/machine/nitedrvr.c b/src/mame/machine/nitedrvr.c
index a8a3311688e..c41f6492b1f 100644
--- a/src/mame/machine/nitedrvr.c
+++ b/src/mame/machine/nitedrvr.c
@@ -209,9 +209,9 @@ D5 = SKID2
WRITE8_MEMBER(nitedrvr_state::nitedrvr_out0_w)
{
- discrete_sound_w(m_discrete, NITEDRVR_MOTOR_DATA, data & 0x0f); // Motor freq data
- discrete_sound_w(m_discrete, NITEDRVR_SKID1_EN, data & 0x10); // Skid1 enable
- discrete_sound_w(m_discrete, NITEDRVR_SKID2_EN, data & 0x20); // Skid2 enable
+ discrete_sound_w(m_discrete, space, NITEDRVR_MOTOR_DATA, data & 0x0f); // Motor freq data
+ discrete_sound_w(m_discrete, space, NITEDRVR_SKID1_EN, data & 0x10); // Skid1 enable
+ discrete_sound_w(m_discrete, space, NITEDRVR_SKID2_EN, data & 0x20); // Skid2 enable
}
/***************************************************************************
@@ -232,8 +232,8 @@ WRITE8_MEMBER(nitedrvr_state::nitedrvr_out1_w)
m_crash_en = data & 0x01;
- discrete_sound_w(m_discrete, NITEDRVR_CRASH_EN, m_crash_en); // Crash enable
- discrete_sound_w(m_discrete, NITEDRVR_ATTRACT_EN, data & 0x02); // Attract enable (sound disable)
+ discrete_sound_w(m_discrete, space, NITEDRVR_CRASH_EN, m_crash_en); // Crash enable
+ discrete_sound_w(m_discrete, space, NITEDRVR_ATTRACT_EN, data & 0x02); // Attract enable (sound disable)
if (!m_crash_en)
{
@@ -244,7 +244,7 @@ WRITE8_MEMBER(nitedrvr_state::nitedrvr_out1_w)
palette_set_color(machine(), 1, MAKE_RGB(0x00,0x00,0x00)); /* BLACK */
palette_set_color(machine(), 0, MAKE_RGB(0xff,0xff,0xff)); /* WHITE */
}
- discrete_sound_w(m_discrete, NITEDRVR_BANG_DATA, m_crash_data_en ? m_crash_data : 0); // Crash Volume
+ discrete_sound_w(m_discrete, space, NITEDRVR_BANG_DATA, m_crash_data_en ? m_crash_data : 0); // Crash Volume
}
@@ -255,7 +255,8 @@ TIMER_DEVICE_CALLBACK( nitedrvr_crash_toggle_callback )
if (state->m_crash_en && state->m_crash_data_en)
{
state->m_crash_data--;
- discrete_sound_w(state->m_discrete, NITEDRVR_BANG_DATA, state->m_crash_data); // Crash Volume
+ address_space &space = timer.machine().driver_data()->generic_space();
+ discrete_sound_w(state->m_discrete, space, NITEDRVR_BANG_DATA, state->m_crash_data); // Crash Volume
if (!state->m_crash_data)
state->m_crash_data_en = 0; // Done counting?
diff --git a/src/mame/machine/nmk004.c b/src/mame/machine/nmk004.c
index 38833fea28c..852005d0ca1 100644
--- a/src/mame/machine/nmk004.c
+++ b/src/mame/machine/nmk004.c
@@ -311,6 +311,7 @@ static void effects_update(int channel)
static void fm_update(int channel)
{
struct fm_control *fm = &NMK004_state.fm_control[channel];
+ address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM);
// advance the timers
if (fm->timer1)
@@ -356,8 +357,8 @@ static void fm_update(int channel)
fm->slot = read8(fm->current++);
if (channel < 3 || !(NMK004_state.fm_control[channel-3].flags & FM_FLAG_ACTIVE))
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x28); // keyon/off
- ym2203_write_port_w(NMK004_state.ymdevice, 0, channel % 3);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x28); // keyon/off
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, channel % 3);
}
break;
@@ -594,6 +595,7 @@ static void fm_voices_update(void)
};
int channel,i;
+ address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM);
for (channel = 0; channel < 3;channel++)
{
struct fm_control *fm1 = &NMK004_state.fm_control[channel];
@@ -605,8 +607,8 @@ static void fm_voices_update(void)
for (i = 0; i < 0x18; i++)
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, ym2203_registers[i] + channel);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->voice_params[i]);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, ym2203_registers[i] + channel);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->voice_params[i]);
}
}
@@ -618,8 +620,8 @@ static void fm_voices_update(void)
{
for (i = 0; i < 0x18; i++)
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, ym2203_registers[i] + channel);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->voice_params[i]);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, ym2203_registers[i] + channel);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->voice_params[i]);
}
}
}
@@ -627,25 +629,25 @@ static void fm_voices_update(void)
if (fm1->flags & FM_FLAG_ACTIVE)
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xb0 + channel); // self-feedback
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->self_feedback);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xb0 + channel); // self-feedback
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->self_feedback);
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa4 + channel); // F-number
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->f_number >> 8);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa4 + channel); // F-number
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->f_number >> 8);
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa0 + channel); // F-number
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->f_number & 0xff);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa0 + channel); // F-number
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->f_number & 0xff);
}
else
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xb0 + channel); // self-feedback
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->self_feedback);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xb0 + channel); // self-feedback
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->self_feedback);
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa4 + channel); // F-number
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->f_number >> 8);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa4 + channel); // F-number
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->f_number >> 8);
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0xa0 + channel); // F-number
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->f_number & 0xff);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0xa0 + channel); // F-number
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->f_number & 0xff);
}
@@ -654,8 +656,8 @@ static void fm_voices_update(void)
{
fm1->flags &= ~FM_FLAG_MUST_SEND_KEYON;
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x28); // keyon/off
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm1->slot | channel);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x28); // keyon/off
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm1->slot | channel);
}
if (fm2->flags & FM_FLAG_MUST_SEND_KEYON)
@@ -664,8 +666,8 @@ static void fm_voices_update(void)
if (!(fm1->flags & FM_FLAG_ACTIVE))
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x28); // keyon/off
- ym2203_write_port_w(NMK004_state.ymdevice, 0, fm2->slot | channel);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x28); // keyon/off
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, fm2->slot | channel);
}
}
}
@@ -682,6 +684,7 @@ static void fm_voices_update(void)
static void psg_update(int channel)
{
struct psg_control *psg = &NMK004_state.psg_control[channel];
+ address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM);
// advance the timers
if (psg->note_timer)
@@ -703,11 +706,11 @@ static void psg_update(int channel)
psg->flags &= ~PSG_FLAG_NOISE_NOT_ENABLED;
// enable noise, disable tone on this channel
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x07);
- enable = ym2203_read_port_r(NMK004_state.ymdevice, 0);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x07);
+ enable = ym2203_read_port_r(NMK004_state.ymdevice, space, 0);
enable |= (0x01 << channel); // disable tone
enable &= ~(0x08 << channel); // enable noise
- ym2203_write_port_w(NMK004_state.ymdevice, 0, enable);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, enable);
}
@@ -741,11 +744,11 @@ static void psg_update(int channel)
psg->flags &= ~PSG_FLAG_NOISE_NOT_ENABLED;
// enable noise, disable tone on this channel
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x07);
- enable = ym2203_read_port_r(NMK004_state.ymdevice, 0);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x07);
+ enable = ym2203_read_port_r(NMK004_state.ymdevice, space, 0);
enable |= (0x01 << channel); // disable tone
enable &= ~(0x08 << channel); // enable noise
- ym2203_write_port_w(NMK004_state.ymdevice, 0, enable);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, enable);
break;
case 0xf2: // set volume shape
@@ -790,8 +793,8 @@ static void psg_update(int channel)
psg->volume_shape = 0;
// mute channel
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 8 + channel);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, 0);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 8 + channel);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, 0);
return;
}
}
@@ -831,10 +834,10 @@ static void psg_update(int channel)
period >>= octave;
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 2 * channel + 1);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, (period & 0x0f00) >> 8);
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 2 * channel + 0);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, (period & 0x00ff));
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 2 * channel + 1);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, (period & 0x0f00) >> 8);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 2 * channel + 0);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, (period & 0x00ff));
psg->note_period_hi_bits = (period & 0x0f00) >> 8;
}
@@ -847,15 +850,15 @@ static void psg_update(int channel)
psg->flags |= PSG_FLAG_NOISE_NOT_ENABLED;
// disable noise, enable tone on this channel
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x07);
- enable = ym2203_read_port_r(NMK004_state.ymdevice, 0);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x07);
+ enable = ym2203_read_port_r(NMK004_state.ymdevice, space, 0);
enable &= ~(0x01 << channel); // enable tone
enable |= (0x08 << channel); // disable noise
- ym2203_write_port_w(NMK004_state.ymdevice, 0, enable);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, enable);
}
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x06); // noise period
- ym2203_write_port_w(NMK004_state.ymdevice, 0, psg->note);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x06); // noise period
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, psg->note);
psg->note_period_hi_bits = psg->note;
}
}
@@ -880,8 +883,8 @@ static void psg_update(int channel)
volume = 0;
// set volume
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 8 + channel);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, volume & 0x0f);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 8 + channel);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, volume & 0x0f);
}
}
}
@@ -1000,7 +1003,8 @@ void NMK004_irq(device_t *device, int irq)
{
if (irq)
{
- int status = ym2203_status_port_r(device,0);
+ address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM);
+ int status = ym2203_status_port_r(device,space,0);
if (status & 1) // timer A expired
{
@@ -1009,8 +1013,8 @@ void NMK004_irq(device_t *device, int irq)
update_music();
// restart timer
- ym2203_control_port_w(device, 0, 0x27);
- ym2203_write_port_w(device, 0, 0x15);
+ ym2203_control_port_w(device, space, 0, 0x27);
+ ym2203_write_port_w(device, space, 0, 0x15);
}
}
}
@@ -1035,13 +1039,14 @@ static TIMER_CALLBACK( real_nmk004_init )
NMK004_state.rom = machine.root_device().memregion("audiocpu")->base();
- ym2203_control_port_w(NMK004_state.ymdevice, 0, 0x2f);
+ address_space &space = *NMK004_state.machine().firstcpu->space(AS_PROGRAM);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, 0x2f);
i = 0;
while (ym2203_init[i] != 0xff)
{
- ym2203_control_port_w(NMK004_state.ymdevice, 0, ym2203_init[i++]);
- ym2203_write_port_w(NMK004_state.ymdevice, 0, ym2203_init[i++]);
+ ym2203_control_port_w(NMK004_state.ymdevice, space, 0, ym2203_init[i++]);
+ ym2203_write_port_w(NMK004_state.ymdevice, space, 0, ym2203_init[i++]);
}
NMK004_state.oki_playing = 0;
diff --git a/src/mame/machine/nmk112.c b/src/mame/machine/nmk112.c
index 7724d6eeaf0..64299583b93 100644
--- a/src/mame/machine/nmk112.c
+++ b/src/mame/machine/nmk112.c
@@ -92,7 +92,7 @@ WRITE16_DEVICE_HANDLER( nmk112_okibank_lsb_w )
{
if (ACCESSING_BITS_0_7)
{
- nmk112_okibank_w(device, offset, data & 0xff);
+ nmk112_okibank_w(device, space, offset, data & 0xff);
}
}
diff --git a/src/mame/machine/nmk112.h b/src/mame/machine/nmk112.h
index 2b682ad7a6f..2a4c472c94a 100644
--- a/src/mame/machine/nmk112.h
+++ b/src/mame/machine/nmk112.h
@@ -52,8 +52,8 @@ extern const device_type NMK112;
DEVICE I/O FUNCTIONS
***************************************************************************/
-WRITE8_DEVICE_HANDLER( nmk112_okibank_w );
-WRITE16_DEVICE_HANDLER( nmk112_okibank_lsb_w );
+DECLARE_WRITE8_DEVICE_HANDLER( nmk112_okibank_w );
+DECLARE_WRITE16_DEVICE_HANDLER( nmk112_okibank_lsb_w );
#endif /* __NMK112_H__ */
diff --git a/src/mame/machine/playch10.c b/src/mame/machine/playch10.c
index 0726788d863..3eb8f30e38c 100644
--- a/src/mame/machine/playch10.c
+++ b/src/mame/machine/playch10.c
@@ -34,10 +34,11 @@ void playch10_state::machine_reset()
m_MMC2_bank_latch[0] = m_MMC2_bank_latch[1] = 0xfe;
/* reset the security chip */
- rp5h01_enable_w(rp5h01, 0, 0);
- rp5h01_reset_w(rp5h01, 0, 0);
- rp5h01_reset_w(rp5h01, 0, 1);
- rp5h01_enable_w(rp5h01, 0, 1);
+ address_space &space = generic_space();
+ rp5h01_enable_w(rp5h01, space, 0, 0);
+ rp5h01_reset_w(rp5h01, space, 0, 0);
+ rp5h01_reset_w(rp5h01, space, 0, 1);
+ rp5h01_enable_w(rp5h01, space, 0, 1);
pc10_set_mirroring(m_mirroring);
}
@@ -168,10 +169,10 @@ READ8_MEMBER(playch10_state::pc10_prot_r)
/* we only support a single cart connected at slot 0 */
if (m_cart_sel == 0)
{
- rp5h01_enable_w(rp5h01, 0, 0);
- data |= ((~rp5h01_counter_r(rp5h01, 0)) << 4) & 0x10; /* D4 */
- data |= ((rp5h01_data_r(rp5h01, 0)) << 3) & 0x08; /* D3 */
- rp5h01_enable_w(rp5h01, 0, 1);
+ rp5h01_enable_w(rp5h01, space, 0, 0);
+ data |= ((~rp5h01_counter_r(rp5h01, space, 0)) << 4) & 0x10; /* D4 */
+ data |= ((rp5h01_data_r(rp5h01, space, 0)) << 3) & 0x08; /* D3 */
+ rp5h01_enable_w(rp5h01, space, 0, 1);
}
return data;
}
@@ -182,11 +183,11 @@ WRITE8_MEMBER(playch10_state::pc10_prot_w)
/* we only support a single cart connected at slot 0 */
if (m_cart_sel == 0)
{
- rp5h01_enable_w(rp5h01, 0, 0);
- rp5h01_test_w(rp5h01, 0, data & 0x10); /* D4 */
- rp5h01_clock_w(rp5h01, 0, data & 0x08); /* D3 */
- rp5h01_reset_w(rp5h01, 0, ~data & 0x01); /* D0 */
- rp5h01_enable_w(rp5h01, 0, 1);
+ rp5h01_enable_w(rp5h01, space, 0, 0);
+ rp5h01_test_w(rp5h01, space, 0, data & 0x10); /* D4 */
+ rp5h01_clock_w(rp5h01, space, 0, data & 0x08); /* D3 */
+ rp5h01_reset_w(rp5h01, space, 0, ~data & 0x01); /* D0 */
+ rp5h01_enable_w(rp5h01, space, 0, 1);
/* this thing gets dense at some point */
/* it wants to jump and execute an opcode at $ffff, wich */
diff --git a/src/mame/machine/qix.c b/src/mame/machine/qix.c
index 7ba08f3eaee..4c0968d5462 100644
--- a/src/mame/machine/qix.c
+++ b/src/mame/machine/qix.c
@@ -22,17 +22,17 @@
*
*************************************/
-static READ8_DEVICE_HANDLER( qixmcu_coin_r );
-static WRITE8_DEVICE_HANDLER( qixmcu_coinctrl_w );
-static WRITE8_DEVICE_HANDLER( qixmcu_coin_w );
+static DECLARE_READ8_DEVICE_HANDLER( qixmcu_coin_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( qixmcu_coinctrl_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( qixmcu_coin_w );
-static WRITE8_DEVICE_HANDLER( qix_coinctl_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( qix_coinctl_w );
-static WRITE8_DEVICE_HANDLER( slither_76489_0_w );
-static WRITE8_DEVICE_HANDLER( slither_76489_1_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( slither_76489_0_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( slither_76489_1_w );
-static READ8_DEVICE_HANDLER( slither_trak_lr_r );
-static READ8_DEVICE_HANDLER( slither_trak_ud_r );
+static DECLARE_READ8_DEVICE_HANDLER( slither_trak_lr_r );
+static DECLARE_READ8_DEVICE_HANDLER( slither_trak_ud_r );
diff --git a/src/mame/machine/simpsons.c b/src/mame/machine/simpsons.c
index 33c750d52e2..ecb2772cd6c 100644
--- a/src/mame/machine/simpsons.c
+++ b/src/mame/machine/simpsons.c
@@ -53,7 +53,7 @@ READ8_MEMBER(simpsons_state::simpsons_sound_interrupt_r)
READ8_DEVICE_HANDLER( simpsons_sound_r )
{
- return k053260_r(device, 2 + offset);
+ return k053260_r(device, space, 2 + offset);
}
diff --git a/src/mame/machine/snes.c b/src/mame/machine/snes.c
index 265d821c8cf..1c02d9a4ccd 100644
--- a/src/mame/machine/snes.c
+++ b/src/mame/machine/snes.c
@@ -442,7 +442,7 @@ READ8_HANDLER( snes_r_io )
// APU is mirrored from 2140 to 217f
if (offset >= APU00 && offset < WMDATA)
{
- return spc_port_out(state->m_spc700, offset & 0x3);
+ return spc_port_out(state->m_spc700, *space, offset & 0x3);
}
if (state->m_has_addon_chip == HAS_SUPERFX && state->m_superfx != NULL)
@@ -605,7 +605,7 @@ WRITE8_HANDLER( snes_w_io )
if (offset >= APU00 && offset < WMDATA)
{
// printf("816: %02x to APU @ %d (PC=%06x)\n", data, offset & 3,space->device().safe_pc());
- spc_port_in(state->m_spc700, offset & 0x3, data);
+ spc_port_in(state->m_spc700, *space, offset & 0x3, data);
space->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(20));
return;
}
diff --git a/src/mame/machine/taitoio.c b/src/mame/machine/taitoio.c
index eaf237bedaa..7b7b70c99c8 100644
--- a/src/mame/machine/taitoio.c
+++ b/src/mame/machine/taitoio.c
@@ -162,13 +162,13 @@ WRITE8_DEVICE_HANDLER( tc0220ioc_port_w )
READ8_DEVICE_HANDLER( tc0220ioc_portreg_r )
{
tc0220ioc_state *tc0220ioc = tc0220ioc_get_safe_token(device);
- return tc0220ioc_r(device, tc0220ioc->port);
+ return tc0220ioc_r(device, space, tc0220ioc->port);
}
WRITE8_DEVICE_HANDLER( tc0220ioc_portreg_w )
{
tc0220ioc_state *tc0220ioc = tc0220ioc_get_safe_token(device);
- tc0220ioc_w(device, tc0220ioc->port, data);
+ tc0220ioc_w(device, space, tc0220ioc->port, data);
}
@@ -300,29 +300,29 @@ WRITE8_DEVICE_HANDLER( tc0510nio_w )
READ16_DEVICE_HANDLER( tc0510nio_halfword_r )
{
- return tc0510nio_r(device, offset);
+ return tc0510nio_r(device, space, offset);
}
WRITE16_DEVICE_HANDLER( tc0510nio_halfword_w )
{
if (ACCESSING_BITS_0_7)
- tc0510nio_w(device, offset, data & 0xff);
+ tc0510nio_w(device, space, offset, data & 0xff);
else
{
/* driftout writes the coin counters here - bug? */
//logerror("CPU #0 PC %06x: warning - write to MSB of TC0510NIO address %02x\n",space->device().safe_pc(),offset);
- tc0510nio_w(device, offset, (data >> 8) & 0xff);
+ tc0510nio_w(device, space, offset, (data >> 8) & 0xff);
}
}
READ16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_r )
{
- return tc0510nio_halfword_r(device, offset ^ 1, mem_mask);
+ return tc0510nio_halfword_r(device, space, offset ^ 1, mem_mask);
}
WRITE16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_w )
{
- tc0510nio_halfword_w(device, offset ^ 1,data, mem_mask);
+ tc0510nio_halfword_w(device, space, offset ^ 1,data, mem_mask);
}
@@ -450,32 +450,32 @@ WRITE8_DEVICE_HANDLER( tc0640fio_w )
READ16_DEVICE_HANDLER( tc0640fio_halfword_r )
{
- return tc0640fio_r(device, offset);
+ return tc0640fio_r(device, space, offset);
}
WRITE16_DEVICE_HANDLER( tc0640fio_halfword_w )
{
if (ACCESSING_BITS_0_7)
- tc0640fio_w(device, offset, data & 0xff);
+ tc0640fio_w(device, space, offset, data & 0xff);
else
{
- tc0640fio_w(device, offset, (data >> 8) & 0xff);
+ tc0640fio_w(device, space, offset, (data >> 8) & 0xff);
//logerror("CPU #0 PC %06x: warning - write to MSB of TC0640FIO address %02x\n",space->device().safe_pc(),offset);
}
}
READ16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_r )
{
- return tc0640fio_halfword_r(device, offset, mem_mask) << 8;
+ return tc0640fio_halfword_r(device, space, offset, mem_mask) << 8;
}
WRITE16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_w )
{
if (ACCESSING_BITS_8_15)
- tc0640fio_w(device, offset, (data >> 8) & 0xff);
+ tc0640fio_w(device, space, offset, (data >> 8) & 0xff);
else
{
- tc0640fio_w(device, offset, data & 0xff);
+ tc0640fio_w(device, space, offset, data & 0xff);
//logerror("CPU #0 PC %06x: warning - write to LSB of TC0640FIO address %02x\n",space->device().safe_pc(),offset);
}
}
diff --git a/src/mame/machine/taitoio.h b/src/mame/machine/taitoio.h
index 7c5bade1b25..f5533cf7348 100644
--- a/src/mame/machine/taitoio.h
+++ b/src/mame/machine/taitoio.h
@@ -127,30 +127,30 @@ extern const device_type TC0640FIO;
***************************************************************************/
/** TC0220IOC **/
-READ8_DEVICE_HANDLER( tc0220ioc_r );
-WRITE8_DEVICE_HANDLER( tc0220ioc_w );
-READ8_DEVICE_HANDLER( tc0220ioc_port_r );
-WRITE8_DEVICE_HANDLER( tc0220ioc_port_w );
-READ8_DEVICE_HANDLER( tc0220ioc_portreg_r );
-WRITE8_DEVICE_HANDLER( tc0220ioc_portreg_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0220ioc_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0220ioc_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0220ioc_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0220ioc_port_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0220ioc_portreg_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0220ioc_portreg_w );
/** TC0510NIO **/
-READ8_DEVICE_HANDLER( tc0510nio_r );
-WRITE8_DEVICE_HANDLER( tc0510nio_w );
-READ16_DEVICE_HANDLER( tc0510nio_halfword_r );
-WRITE16_DEVICE_HANDLER( tc0510nio_halfword_w );
-READ16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_r );
-WRITE16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0510nio_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0510nio_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0510nio_halfword_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0510nio_halfword_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0510nio_halfword_wordswap_w );
/** TC0640FIO**/
-READ8_DEVICE_HANDLER( tc0640fio_r );
-WRITE8_DEVICE_HANDLER( tc0640fio_w );
-READ16_DEVICE_HANDLER( tc0640fio_halfword_r );
-WRITE16_DEVICE_HANDLER( tc0640fio_halfword_w );
-READ16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_r );
-WRITE16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0640fio_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0640fio_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0640fio_halfword_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0640fio_halfword_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0640fio_halfword_byteswap_w );
#endif /* __TAITOIO_H__ */
diff --git a/src/mame/machine/tatsumi.c b/src/mame/machine/tatsumi.c
index 734eeca598b..be6141f3c34 100644
--- a/src/mame/machine/tatsumi.c
+++ b/src/mame/machine/tatsumi.c
@@ -337,12 +337,11 @@ WRITE16_MEMBER(tatsumi_state::tatsumi_v30_68000_w)
// self-test in Tatsumi games. Needs fixed, but hack it here for now.
READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r)
{
- address_space *space = device->machine().device("audiocpu")->memory().space(AS_PROGRAM);
- int r=ym2151_status_port_r(device,0);
+ int r=ym2151_status_port_r(device,space,0);
- if (space->device().safe_pc()==0x2aca || space->device().safe_pc()==0x29fe
- || space->device().safe_pc()==0xf9721
- || space->device().safe_pc()==0x1b96 || space->device().safe_pc()==0x1c65) // BigFight
+ if (space.device().safe_pc()==0x2aca || space.device().safe_pc()==0x29fe
+ || space.device().safe_pc()==0xf9721
+ || space.device().safe_pc()==0x1b96 || space.device().safe_pc()==0x1c65) // BigFight
return 0x80;
return r;
}
@@ -351,17 +350,16 @@ READ8_DEVICE_HANDLER(tatsumi_hack_ym2151_r)
// Mame really should emulate the OKI status reads even with Mame sound off.
READ8_DEVICE_HANDLER(tatsumi_hack_oki_r)
{
- address_space *space = device->machine().device("audiocpu")->memory().space(AS_PROGRAM);
- int r=downcast<okim6295_device *>(device)->read(*space,0);
-
- if (space->device().safe_pc()==0x2b70 || space->device().safe_pc()==0x2bb5
- || space->device().safe_pc()==0x2acc
- || space->device().safe_pc()==0x1c79 // BigFight
- || space->device().safe_pc()==0x1cbe // BigFight
- || space->device().safe_pc()==0xf9881)
+ int r=downcast<okim6295_device *>(device)->read(space,0);
+
+ if (space.device().safe_pc()==0x2b70 || space.device().safe_pc()==0x2bb5
+ || space.device().safe_pc()==0x2acc
+ || space.device().safe_pc()==0x1c79 // BigFight
+ || space.device().safe_pc()==0x1cbe // BigFight
+ || space.device().safe_pc()==0xf9881)
return 0xf;
- if (space->device().safe_pc()==0x2ba3 || space->device().safe_pc()==0x2a9b || space->device().safe_pc()==0x2adc
- || space->device().safe_pc()==0x1cac) // BigFight
+ if (space.device().safe_pc()==0x2ba3 || space.device().safe_pc()==0x2a9b || space.device().safe_pc()==0x2adc
+ || space.device().safe_pc()==0x1cac) // BigFight
return 0;
return r;
}
diff --git a/src/mame/machine/vectrex.c b/src/mame/machine/vectrex.c
index aca931c975e..29da8f88da7 100644
--- a/src/mame/machine/vectrex.c
+++ b/src/mame/machine/vectrex.c
@@ -252,7 +252,7 @@ READ8_DEVICE_HANDLER(vectrex_via_pa_r)
{
device_t *ay = device->machine().device("ay8912");
- state->m_via_out[PORTA] = ay8910_r(ay, 0)
+ state->m_via_out[PORTA] = ay8910_r(ay, space, 0)
& ~(state->m_imager_pinlevel & 0x80);
}
return state->m_via_out[PORTA];
diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c
index 3f188590c62..7bef4419221 100644
--- a/src/mame/machine/williams.c
+++ b/src/mame/machine/williams.c
@@ -19,31 +19,31 @@ static void williams_main_irq(device_t *device, int state);
static void williams_main_firq(device_t *device, int state);
static void williams_snd_irq(device_t *device, int state);
static void williams_snd_irq_b(device_t *device, int state);
-static WRITE8_DEVICE_HANDLER( williams_snd_cmd_w );
-static WRITE8_DEVICE_HANDLER( playball_snd_cmd_w );
-static WRITE8_DEVICE_HANDLER( blaster_snd_cmd_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( williams_snd_cmd_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( playball_snd_cmd_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( blaster_snd_cmd_w );
/* input port mapping */
-static WRITE8_DEVICE_HANDLER( williams_port_select_w );
-static READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r );
-static READ8_DEVICE_HANDLER( williams_49way_port_0_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( williams_port_select_w );
+static DECLARE_READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r );
+static DECLARE_READ8_DEVICE_HANDLER( williams_49way_port_0_r );
/* newer-Williams routines */
-static WRITE8_DEVICE_HANDLER( williams2_snd_cmd_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( williams2_snd_cmd_w );
static void mysticm_main_irq(device_t *device, int state);
static void tshoot_main_irq(device_t *device, int state);
/* Lotto Fun-specific code */
-static WRITE8_DEVICE_HANDLER( lottofun_coin_lock_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( lottofun_coin_lock_w );
/* Turkey Shoot-specific code */
-static READ8_DEVICE_HANDLER( tshoot_input_port_0_3_r );
-static WRITE8_DEVICE_HANDLER( tshoot_lamp_w );
-static WRITE8_DEVICE_HANDLER( tshoot_maxvol_w );
+static DECLARE_READ8_DEVICE_HANDLER( tshoot_input_port_0_3_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( tshoot_lamp_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( tshoot_maxvol_w );
/* Joust 2-specific code */
-static WRITE8_DEVICE_HANDLER( joust2_snd_cmd_w );
-static WRITE8_DEVICE_HANDLER( joust2_pia_3_cb1_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( joust2_snd_cmd_w );
+static DECLARE_WRITE8_DEVICE_HANDLER( joust2_pia_3_cb1_w );
/*************************************
@@ -658,7 +658,7 @@ READ8_DEVICE_HANDLER( williams_input_port_49way_0_5_r )
{
williams_state *state = device->machine().driver_data<williams_state>();
if (state->m_port_select)
- return williams_49way_port_0_r(device, 0);
+ return williams_49way_port_0_r(device, space, 0);
else
return state->ioport("IN3")->read();
}
diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c
index f92c25ff4fc..980f3e270ea 100644
--- a/src/mame/video/astrocde.c
+++ b/src/mame/video/astrocde.c
@@ -598,7 +598,7 @@ WRITE8_MEMBER(astrocde_state::astrocade_data_chip_register_w)
case 0x17: /* noise volume register */
case 0x18: /* sound block transfer */
if (m_video_config & AC_SOUND_PRESENT)
- astrocade_sound_w(machine().device("astrocade1"), offset, data);
+ astrocade_sound_w(machine().device("astrocade1"), space, offset, data);
break;
case 0x19: /* expand register */
diff --git a/src/mame/video/atarirle.h b/src/mame/video/atarirle.h
index 41b6974cd01..23efdd8c075 100644
--- a/src/mame/video/atarirle.h
+++ b/src/mame/video/atarirle.h
@@ -97,10 +97,10 @@ void atarirle_control_w(device_t *device, UINT8 bits);
void atarirle_command_w(device_t *device, UINT8 command);
/* read/write handlers */
-READ16_DEVICE_HANDLER( atarirle_spriteram_r );
-READ32_DEVICE_HANDLER( atarirle_spriteram32_r );
-WRITE16_DEVICE_HANDLER( atarirle_spriteram_w );
-WRITE32_DEVICE_HANDLER( atarirle_spriteram32_w );
+DECLARE_READ16_DEVICE_HANDLER( atarirle_spriteram_r );
+DECLARE_READ32_DEVICE_HANDLER( atarirle_spriteram32_r );
+DECLARE_WRITE16_DEVICE_HANDLER( atarirle_spriteram_w );
+DECLARE_WRITE32_DEVICE_HANDLER( atarirle_spriteram32_w );
/* render helpers */
void atarirle_eof(device_t *device);
diff --git a/src/mame/video/boogwing.c b/src/mame/video/boogwing.c
index 492376bf3f4..5db9bbbd59c 100644
--- a/src/mame/video/boogwing.c
+++ b/src/mame/video/boogwing.c
@@ -28,7 +28,8 @@ static void mix_boogwing(running_machine &machine, bitmap_rgb32 &bitmap, const r
bitmap_ind16 *sprite_bitmap1, *sprite_bitmap2;
bitmap_ind8* priority_bitmap;
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = machine.driver_data()->generic_space();
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
sprite_bitmap1 = &machine.device<decospr_device>("spritegen1")->get_sprite_temp_bitmap();
sprite_bitmap2 = &machine.device<decospr_device>("spritegen2")->get_sprite_temp_bitmap();
@@ -180,8 +181,9 @@ static void mix_boogwing(running_machine &machine, bitmap_rgb32 &bitmap, const r
SCREEN_UPDATE_RGB32( boogwing )
{
boogwing_state *state = screen.machine().driver_data<boogwing_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
/* Draw sprite planes to bitmaps for later mixing */
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
diff --git a/src/mame/video/btoads.c b/src/mame/video/btoads.c
index 5484f35d085..65d933cbe1b 100644
--- a/src/mame/video/btoads.c
+++ b/src/mame/video/btoads.c
@@ -123,13 +123,13 @@ WRITE16_MEMBER( btoads_state::scroll1_w )
WRITE16_MEMBER( btoads_state::paletteram_w )
{
- tlc34076_w(m_tlc34076, offset/2, data);
+ tlc34076_w(m_tlc34076, space, offset/2, data);
}
READ16_MEMBER( btoads_state::paletteram_r )
{
- return tlc34076_r(m_tlc34076, offset/2);
+ return tlc34076_r(m_tlc34076, space, offset/2);
}
diff --git a/src/mame/video/cbuster.c b/src/mame/video/cbuster.c
index c7ea461bfa9..71dcede049e 100644
--- a/src/mame/video/cbuster.c
+++ b/src/mame/video/cbuster.c
@@ -51,7 +51,8 @@ void cbuster_state::video_start()
SCREEN_UPDATE_RGB32( twocrude )
{
cbuster_state *state = screen.machine().driver_data<cbuster_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(!BIT(flip, 7));
diff --git a/src/mame/video/cninja.c b/src/mame/video/cninja.c
index 4b2527e1d26..011ca542793 100644
--- a/src/mame/video/cninja.c
+++ b/src/mame/video/cninja.c
@@ -127,7 +127,8 @@ static void cninjabl_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
SCREEN_UPDATE_IND16( cninja )
{
cninja_state *state = screen.machine().driver_data<cninja_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
@@ -148,7 +149,8 @@ SCREEN_UPDATE_IND16( cninja )
SCREEN_UPDATE_IND16( cninjabl )
{
cninja_state *state = screen.machine().driver_data<cninja_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
/* force layers to be enabled */
deco16ic_set_enable(state->m_deco_tilegen2, 0, 1 );
@@ -173,7 +175,8 @@ SCREEN_UPDATE_IND16( cninjabl )
SCREEN_UPDATE_IND16( edrandy )
{
cninja_state *state = screen.machine().driver_data<cninja_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
@@ -192,8 +195,9 @@ SCREEN_UPDATE_IND16( edrandy )
SCREEN_UPDATE_IND16( robocop2 )
{
cninja_state *state = screen.machine().driver_data<cninja_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
/* One of the tilemap chips can switch between 2 tilemaps at 4bpp, or 1 at 8bpp */
if (priority & 4)
@@ -249,8 +253,9 @@ VIDEO_START_MEMBER(cninja_state,mutantf)
SCREEN_UPDATE_RGB32( mutantf )
{
cninja_state *state = screen.machine().driver_data<cninja_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c
index 3107f9cb287..aa4d9688f8b 100644
--- a/src/mame/video/combatsc.c
+++ b/src/mame/video/combatsc.c
@@ -115,7 +115,7 @@ static void set_pens( running_machine &machine )
TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0)
{
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6);
UINT8 attributes = m_page[0][tile_index];
int bank = 4 * ((m_vreg & 0x0f) - 1);
int number, color;
@@ -149,7 +149,7 @@ TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0)
TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info1)
{
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, generic_space(), 6);
UINT8 attributes = m_page[1][tile_index];
int bank = 4 * ((m_vreg >> 4) - 1);
int number, color;
@@ -350,7 +350,7 @@ WRITE8_MEMBER(combatsc_state::combatsc_video_w)
WRITE8_MEMBER(combatsc_state::combatsc_pf_control_w)
{
device_t *k007121 = m_video_circuit ? m_k007121_2 : m_k007121_1;
- k007121_ctrl_w(k007121, offset, data);
+ k007121_ctrl_w(k007121, space, offset, data);
if (offset == 7)
m_bg_tilemap[m_video_circuit]->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
@@ -386,7 +386,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
{
combatsc_state *state = machine.driver_data<combatsc_state>();
device_t *k007121 = circuit ? state->m_k007121_2 : state->m_k007121_1;
- int base_color = (circuit * 4) * 16 + (k007121_ctrlram_r(k007121, 6) & 0x10) * 2;
+ address_space &space = machine.driver_data()->generic_space();
+ int base_color = (circuit * 4) * 16 + (k007121_ctrlram_r(k007121, space, 6) & 0x10) * 2;
k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[circuit], machine.colortable, source, base_color, 0, 0, pri_mask);
}
@@ -399,7 +400,8 @@ SCREEN_UPDATE_IND16( combatsc )
set_pens(screen.machine());
- if (k007121_ctrlram_r(state->m_k007121_1, 1) & 0x02)
+ address_space &space = screen.machine().driver_data()->generic_space();
+ if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x02)
{
state->m_bg_tilemap[0]->set_scroll_rows(32);
for (i = 0; i < 32; i++)
@@ -408,10 +410,10 @@ SCREEN_UPDATE_IND16( combatsc )
else
{
state->m_bg_tilemap[0]->set_scroll_rows(1);
- state->m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_1, 0) | ((k007121_ctrlram_r(state->m_k007121_1, 1) & 0x01) << 8));
+ state->m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_1, space, 0) | ((k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x01) << 8));
}
- if (k007121_ctrlram_r(state->m_k007121_2, 1) & 0x02)
+ if (k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x02)
{
state->m_bg_tilemap[1]->set_scroll_rows(32);
for (i = 0; i < 32; i++)
@@ -420,11 +422,11 @@ SCREEN_UPDATE_IND16( combatsc )
else
{
state->m_bg_tilemap[1]->set_scroll_rows(1);
- state->m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_2, 0) | ((k007121_ctrlram_r(state->m_k007121_2, 1) & 0x01) << 8));
+ state->m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_2, space, 0) | ((k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x01) << 8));
}
- state->m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_1, 2));
- state->m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_2, 2));
+ state->m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_1, space, 2));
+ state->m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_2, space, 2));
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -451,7 +453,7 @@ SCREEN_UPDATE_IND16( combatsc )
draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[0], 0, 0x4444);
}
- if (k007121_ctrlram_r(state->m_k007121_1, 1) & 0x08)
+ if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x08)
{
for (i = 0; i < 32; i++)
{
@@ -461,7 +463,7 @@ SCREEN_UPDATE_IND16( combatsc )
}
/* chop the extreme columns if necessary */
- if (k007121_ctrlram_r(state->m_k007121_1, 3) & 0x40)
+ if (k007121_ctrlram_r(state->m_k007121_1, space, 3) & 0x40)
{
rectangle clip;
diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c
index f7ee799983b..cef249849ed 100644
--- a/src/mame/video/contra.c
+++ b/src/mame/video/contra.c
@@ -78,10 +78,10 @@ static void set_pens( running_machine &machine )
TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info)
{
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_1, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_1, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_1, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_1, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6);
int attr = m_fg_cram[tile_index];
int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03;
@@ -106,10 +106,10 @@ TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info)
TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info)
{
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_2, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_2, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_2, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_2, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, generic_space(), 6);
int attr = m_bg_cram[tile_index];
int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03;
@@ -135,8 +135,8 @@ TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info)
TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info)
{
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6);
int attr = m_tx_cram[tile_index];
int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03;
@@ -238,7 +238,7 @@ WRITE8_MEMBER(contra_state::contra_text_cram_w)
WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w)
{
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, space, 6);
if (offset == 3)
{
@@ -257,12 +257,12 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w)
if (offset == 7)
m_fg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- k007121_ctrl_w(m_k007121_1, offset, data);
+ k007121_ctrl_w(m_k007121_1, space, offset, data);
}
WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w)
{
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, space, 6);
if (offset == 3)
{
@@ -279,7 +279,7 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w)
if (offset == 7)
m_bg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- k007121_ctrl_w(m_k007121_2, offset, data);
+ k007121_ctrl_w(m_k007121_2, space, offset, data);
}
@@ -294,7 +294,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
{
contra_state *state = machine.driver_data<contra_state>();
device_t *k007121 = bank ? state->m_k007121_2 : state->m_k007121_1;
- int base_color = (k007121_ctrlram_r(k007121, 6) & 0x30) * 2;
+ address_space &space = machine.driver_data()->generic_space();
+ int base_color = (k007121_ctrlram_r(k007121, space, 6) & 0x30) * 2;
const UINT8 *source;
if (bank == 0)
@@ -308,10 +309,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
SCREEN_UPDATE_IND16( contra )
{
contra_state *state = screen.machine().driver_data<contra_state>();
- UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, 0);
- UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, 2);
- UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, 0);
- UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, 2);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0);
+ UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2);
+ UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0);
+ UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2);
rectangle bg_finalclip = state->m_bg_clip;
rectangle fg_finalclip = state->m_fg_clip;
rectangle tx_finalclip = state->m_tx_clip;
diff --git a/src/mame/video/dassault.c b/src/mame/video/dassault.c
index 272bed66fc0..3d778b29129 100644
--- a/src/mame/video/dassault.c
+++ b/src/mame/video/dassault.c
@@ -77,8 +77,9 @@ static void mixdassaultlayer(running_machine &machine, bitmap_rgb32 &bitmap, bit
SCREEN_UPDATE_RGB32( dassault )
{
dassault_state *state = screen.machine().driver_data<dassault_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, false);
screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, false);
diff --git a/src/mame/video/dec0.c b/src/mame/video/dec0.c
index 1a490ec5220..94ec968bf8f 100644
--- a/src/mame/video/dec0.c
+++ b/src/mame/video/dec0.c
@@ -155,30 +155,31 @@ SCREEN_UPDATE_IND16( automat )
// layer enables seem different... where are they?
// the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation..
- deco_bac06_pf_control_0_w(state->m_tilegen1,0,0x0003, 0x00ff); // 8x8
- deco_bac06_pf_control_0_w(state->m_tilegen1,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,3,0x0001, 0x00ff); // dimensions
-
- deco_bac06_pf_control_0_w(state->m_tilegen2,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen2,1,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,3,0x0001, 0x00ff); // dimensions
-
- deco_bac06_pf_control_0_w(state->m_tilegen3,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen3,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,3,0x0001, 0x00ff); // dimensions
+ address_space &space = screen.machine().driver_data()->generic_space();
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
+
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
+
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
// scroll registers got written elsewhere, copy them across
- deco_bac06_pf_control_1_w(state->m_tilegen1,0,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen1,1,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen2,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen2,1,state->m_automat_scroll_regs[2], 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,1,state->m_automat_scroll_regs[0], 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff);
state->flip_screen_set(state->m_tilegen1->get_flip_state());
@@ -223,30 +224,31 @@ SCREEN_UPDATE_IND16( secretab )
// layer enables seem different... where are they?
// the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation..
- deco_bac06_pf_control_0_w(state->m_tilegen1,0,0x0003, 0x00ff); // 8x8
- deco_bac06_pf_control_0_w(state->m_tilegen1,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,3,0x0001, 0x00ff); // dimensions
-
- deco_bac06_pf_control_0_w(state->m_tilegen2,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen2,1,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,3,0x0001, 0x00ff); // dimensions
-
- deco_bac06_pf_control_0_w(state->m_tilegen3,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen3,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,3,0x0001, 0x00ff); // dimensions
+ address_space &space = screen.machine().driver_data()->generic_space();
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
+
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
+
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
// scroll registers got written elsewhere, copy them across
- deco_bac06_pf_control_1_w(state->m_tilegen1,0,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen1,1,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen2,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen2,1,state->m_automat_scroll_regs[2], 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,1,state->m_automat_scroll_regs[0], 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
+ deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff);
state->flip_screen_set(state->m_tilegen1->get_flip_state());
diff --git a/src/mame/video/decbac06.c b/src/mame/video/decbac06.c
index 45b718ccf11..cf8c402c325 100644
--- a/src/mame/video/decbac06.c
+++ b/src/mame/video/decbac06.c
@@ -389,17 +389,17 @@ READ16_DEVICE_HANDLER( deco_bac06_pf_data_r )
WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_w )
{
if (offset&1)
- deco_bac06_pf_data_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_data_w(device,space,offset/2,data,0x00ff);
else
- deco_bac06_pf_data_w(device,offset/2,data<<8,0xff00);
+ deco_bac06_pf_data_w(device,space,offset/2,data<<8,0xff00);
}
READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_r )
{
if (offset&1) /* MSB */
- return deco_bac06_pf_data_r(device,offset/2,0x00ff);
+ return deco_bac06_pf_data_r(device,space,offset/2,0x00ff);
else
- return deco_bac06_pf_data_r(device,offset/2,0xff00)>>8;
+ return deco_bac06_pf_data_r(device,space,offset/2,0xff00)>>8;
}
WRITE16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_w )
@@ -430,18 +430,18 @@ READ16_DEVICE_HANDLER( deco_bac06_pf_colscroll_r )
WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_w )
{
if (offset&1)
- deco_bac06_pf_control_0_w(device,offset/2,data,0x00ff); // oscar (mirrors?)
+ deco_bac06_pf_control_0_w(device,space,offset/2,data,0x00ff); // oscar (mirrors?)
else
- deco_bac06_pf_control_0_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_control_0_w(device,space,offset/2,data,0x00ff);
}
/* used by dec8.c */
READ8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_r )
{
if (offset&1)
- return deco_bac06_pf_control_1_r(device,offset/2,0x00ff);
+ return deco_bac06_pf_control_1_r(device,space,offset/2,0x00ff);
else
- return deco_bac06_pf_control_1_r(device,offset/2,0xff00)>>8;
+ return deco_bac06_pf_control_1_r(device,space,offset/2,0xff00)>>8;
}
/* used by dec8.c */
@@ -450,50 +450,50 @@ WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_w )
if (offset<4) // these registers are 16-bit?
{
if (offset&1)
- deco_bac06_pf_control_1_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_control_1_w(device,space,offset/2,data,0x00ff);
else
- deco_bac06_pf_control_1_w(device,offset/2,data<<8,0xff00);
+ deco_bac06_pf_control_1_w(device,space,offset/2,data<<8,0xff00);
}
else // these registers are 8-bit and mirror? (triothep vs actfancr)
{
if (offset&1)
- deco_bac06_pf_control_1_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_control_1_w(device,space,offset/2,data,0x00ff);
else
- deco_bac06_pf_control_1_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_control_1_w(device,space,offset/2,data,0x00ff);
}
}
READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_r )
{
if (offset&1)
- return deco_bac06_pf_rowscroll_r(device,offset/2,0x00ff);
+ return deco_bac06_pf_rowscroll_r(device,space,offset/2,0x00ff);
else
- return deco_bac06_pf_rowscroll_r(device,offset/2,0xff00)>>8;
+ return deco_bac06_pf_rowscroll_r(device,space,offset/2,0xff00)>>8;
}
WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_w )
{
if (offset&1)
- deco_bac06_pf_rowscroll_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_rowscroll_w(device,space,offset/2,data,0x00ff);
else
- deco_bac06_pf_rowscroll_w(device,offset/2,data<<8,0xff00);
+ deco_bac06_pf_rowscroll_w(device,space,offset/2,data<<8,0xff00);
}
READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_r )
{
if (offset&1)
- return deco_bac06_pf_rowscroll_r(device,offset/2,0xff00)>>8;
+ return deco_bac06_pf_rowscroll_r(device,space,offset/2,0xff00)>>8;
else
- return deco_bac06_pf_rowscroll_r(device,offset/2,0x00ff);
+ return deco_bac06_pf_rowscroll_r(device,space,offset/2,0x00ff);
}
WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w )
{
if (offset&1)
- deco_bac06_pf_rowscroll_w(device,offset/2,data<<8,0xff00);
+ deco_bac06_pf_rowscroll_w(device,space,offset/2,data<<8,0xff00);
else
- deco_bac06_pf_rowscroll_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_rowscroll_w(device,space,offset/2,data,0x00ff);
}
@@ -502,25 +502,25 @@ WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w )
WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_packed_w )
{
if (offset&1)
- deco_bac06_pf_control_0_w(device,offset/2,data<<8,0xff00);
+ deco_bac06_pf_control_0_w(device,space,offset/2,data<<8,0xff00);
else
- deco_bac06_pf_control_0_w(device,offset/2,data,0x00ff);
+ deco_bac06_pf_control_0_w(device,space,offset/2,data,0x00ff);
}
/* used by hippodrm */
WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_swap_w )
{
- deco_bac06_pf_control1_8bit_w(device, offset^1, data);
+ deco_bac06_pf_control1_8bit_w(device,space, offset^1, data);
}
/* used by hippodrm */
READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_r )
{
- return deco_bac06_pf_data_8bit_r(device, offset^1);
+ return deco_bac06_pf_data_8bit_r(device,space, offset^1);
}
/* used by hippodrm */
WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_w )
{
- deco_bac06_pf_data_8bit_w(device, offset^1, data);
+ deco_bac06_pf_data_8bit_w(device,space, offset^1, data);
}
diff --git a/src/mame/video/decbac06.h b/src/mame/video/decbac06.h
index fdafd76278a..5bedc95b71a 100644
--- a/src/mame/video/decbac06.h
+++ b/src/mame/video/decbac06.h
@@ -65,37 +65,37 @@ private:
/* 16-bit accessors */
-WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_0_w );
-READ16_DEVICE_HANDLER( deco_bac06_pf_control_1_r );
-WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_1_w );
+DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_0_w );
+DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_control_1_r );
+DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_control_1_w );
-WRITE16_DEVICE_HANDLER( deco_bac06_pf_data_w );
-READ16_DEVICE_HANDLER( deco_bac06_pf_data_r );
-WRITE16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_w );
-READ16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_r );
-WRITE16_DEVICE_HANDLER( deco_bac06_pf_colscroll_w );
-READ16_DEVICE_HANDLER( deco_bac06_pf_colscroll_r );
+DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_data_w );
+DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_data_r );
+DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_w );
+DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_rowscroll_r );
+DECLARE_WRITE16_DEVICE_HANDLER( deco_bac06_pf_colscroll_w );
+DECLARE_READ16_DEVICE_HANDLER( deco_bac06_pf_colscroll_r );
/* 8-bit accessors */
/* for dec8.c, pcktgal.c */
-READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_r );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_w );
+DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_r );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_w );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_w );
-READ8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_r );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_w );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_w );
+DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_r );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_w );
-READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_r );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_w );
+DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_r );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_w );
/* for hippodrm (dec0.c) and actfancr / triothep (H6280 based games)*/
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_packed_w );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_swap_w );
-READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_r );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_w );
-READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_r );
-WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control0_8bit_packed_w );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_control1_8bit_swap_w );
+DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_r );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_data_8bit_swap_w );
+DECLARE_READ8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_r );
+DECLARE_WRITE8_DEVICE_HANDLER( deco_bac06_pf_rowscroll_8bit_swap_w );
extern const device_type DECO_BAC06;
diff --git a/src/mame/video/deco16ic.c b/src/mame/video/deco16ic.c
index 4775ac51983..099d2975bb7 100644
--- a/src/mame/video/deco16ic.c
+++ b/src/mame/video/deco16ic.c
@@ -585,32 +585,32 @@ READ16_DEVICE_HANDLER( deco16ic_pf_control_r )
READ32_DEVICE_HANDLER ( deco16ic_pf_control_dword_r )
{
- return deco16ic_pf_control_r(device, offset, 0xffff)^0xffff0000;
+ return deco16ic_pf_control_r(device, space, offset, 0xffff)^0xffff0000;
}
WRITE32_DEVICE_HANDLER( deco16ic_pf_control_dword_w )
{
- deco16ic_pf_control_w(device, offset, data & 0xffff, mem_mask & 0xffff);
+ deco16ic_pf_control_w(device, space, offset, data & 0xffff, mem_mask & 0xffff);
}
READ32_DEVICE_HANDLER( deco16ic_pf1_data_dword_r )
{
- return deco16ic_pf1_data_r(device, offset, 0xffff)^0xffff0000;
+ return deco16ic_pf1_data_r(device, space, offset, 0xffff)^0xffff0000;
}
WRITE32_DEVICE_HANDLER( deco16ic_pf1_data_dword_w )
{
- deco16ic_pf1_data_w(device, offset, data & 0xffff, mem_mask & 0xffff);
+ deco16ic_pf1_data_w(device, space, offset, data & 0xffff, mem_mask & 0xffff);
}
READ32_DEVICE_HANDLER( deco16ic_pf2_data_dword_r )
{
- return deco16ic_pf2_data_r(device, offset, 0xffff)^0xffff0000;
+ return deco16ic_pf2_data_r(device, space, offset, 0xffff)^0xffff0000;
}
WRITE32_DEVICE_HANDLER( deco16ic_pf2_data_dword_w )
{
- deco16ic_pf2_data_w(device, offset, data & 0xffff, mem_mask & 0xffff);
+ deco16ic_pf2_data_w(device, space, offset, data & 0xffff, mem_mask & 0xffff);
}
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h
index 755e118ebae..0769f5e973d 100644
--- a/src/mame/video/deco16ic.h
+++ b/src/mame/video/deco16ic.h
@@ -74,25 +74,25 @@ extern const device_type DECO16IC;
DEVICE I/O FUNCTIONS
***************************************************************************/
-WRITE16_DEVICE_HANDLER( deco16ic_pf1_data_w );
-WRITE16_DEVICE_HANDLER( deco16ic_pf2_data_w );
+DECLARE_WRITE16_DEVICE_HANDLER( deco16ic_pf1_data_w );
+DECLARE_WRITE16_DEVICE_HANDLER( deco16ic_pf2_data_w );
-READ16_DEVICE_HANDLER( deco16ic_pf1_data_r );
-READ16_DEVICE_HANDLER( deco16ic_pf2_data_r );
+DECLARE_READ16_DEVICE_HANDLER( deco16ic_pf1_data_r );
+DECLARE_READ16_DEVICE_HANDLER( deco16ic_pf2_data_r );
-WRITE16_DEVICE_HANDLER( deco16ic_pf_control_w );
+DECLARE_WRITE16_DEVICE_HANDLER( deco16ic_pf_control_w );
-READ16_DEVICE_HANDLER( deco16ic_pf_control_r );
+DECLARE_READ16_DEVICE_HANDLER( deco16ic_pf_control_r );
-WRITE32_DEVICE_HANDLER( deco16ic_pf1_data_dword_w );
-WRITE32_DEVICE_HANDLER( deco16ic_pf2_data_dword_w );
+DECLARE_WRITE32_DEVICE_HANDLER( deco16ic_pf1_data_dword_w );
+DECLARE_WRITE32_DEVICE_HANDLER( deco16ic_pf2_data_dword_w );
-READ32_DEVICE_HANDLER( deco16ic_pf1_data_dword_r );
-READ32_DEVICE_HANDLER( deco16ic_pf2_data_dword_r );
+DECLARE_READ32_DEVICE_HANDLER( deco16ic_pf1_data_dword_r );
+DECLARE_READ32_DEVICE_HANDLER( deco16ic_pf2_data_dword_r );
-WRITE32_DEVICE_HANDLER( deco16ic_pf_control_dword_w );
+DECLARE_WRITE32_DEVICE_HANDLER( deco16ic_pf_control_dword_w );
-READ32_DEVICE_HANDLER( deco16ic_pf_control_dword_r );
+DECLARE_READ32_DEVICE_HANDLER( deco16ic_pf_control_dword_r );
void deco16ic_print_debug_info(device_t *device, bitmap_ind16 &bitmap);
diff --git a/src/mame/video/decocomn.h b/src/mame/video/decocomn.h
index fac6f99d8d7..9e60d4c7ee1 100644
--- a/src/mame/video/decocomn.h
+++ b/src/mame/video/decocomn.h
@@ -55,13 +55,13 @@ extern const device_type DECOCOMN;
DEVICE I/O FUNCTIONS
***************************************************************************/
-WRITE16_DEVICE_HANDLER( decocomn_nonbuffered_palette_w );
-WRITE16_DEVICE_HANDLER( decocomn_buffered_palette_w );
-WRITE16_DEVICE_HANDLER( decocomn_palette_dma_w );
+DECLARE_WRITE16_DEVICE_HANDLER( decocomn_nonbuffered_palette_w );
+DECLARE_WRITE16_DEVICE_HANDLER( decocomn_buffered_palette_w );
+DECLARE_WRITE16_DEVICE_HANDLER( decocomn_palette_dma_w );
-WRITE16_DEVICE_HANDLER( decocomn_priority_w );
-READ16_DEVICE_HANDLER( decocomn_priority_r );
+DECLARE_WRITE16_DEVICE_HANDLER( decocomn_priority_w );
+DECLARE_READ16_DEVICE_HANDLER( decocomn_priority_r );
-READ16_DEVICE_HANDLER( decocomn_71_r );
+DECLARE_READ16_DEVICE_HANDLER( decocomn_71_r );
#endif
diff --git a/src/mame/video/dietgo.c b/src/mame/video/dietgo.c
index 9b0a177b738..470400cf836 100644
--- a/src/mame/video/dietgo.c
+++ b/src/mame/video/dietgo.c
@@ -6,7 +6,8 @@
SCREEN_UPDATE_IND16( dietgo )
{
dietgo_state *state = screen.machine().driver_data<dietgo_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c
index 9476a07a728..afdce753898 100644
--- a/src/mame/video/dkong.c
+++ b/src/mame/video/dkong.c
@@ -725,7 +725,8 @@ static void radarscp_step(running_machine &machine, int line_cnt)
state->m_sig30Hz = (1-state->m_sig30Hz);
/* Now mix with SND02 (sound 2) line - on 74ls259, bit2 */
- state->m_rflip_sig = latch8_bit2_r(state->m_dev_6h, 0) & state->m_sig30Hz;
+ address_space &space = machine.driver_data()->generic_space();
+ state->m_rflip_sig = latch8_bit2_r(state->m_dev_6h, space, 0) & state->m_sig30Hz;
sig = state->m_rflip_sig ^ ((line_cnt & 0x80)>>7);
@@ -759,7 +760,7 @@ static void radarscp_step(running_machine &machine, int line_cnt)
*
* Mixed with ANS line (bit 5) from Port B of 8039
*/
- if (state->m_grid_on && latch8_bit5_r(state->m_dev_vp2, 0))
+ if (state->m_grid_on && latch8_bit5_r(state->m_dev_vp2, space, 0))
{
diff = (0.0 - state->m_cv3);
diff = diff - diff*exp(0.0 - (1.0/RC32 * dt) );
diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c
index e2a8a343ffc..14f197bd10e 100644
--- a/src/mame/video/fastlane.c
+++ b/src/mame/video/fastlane.c
@@ -49,9 +49,9 @@ static void set_pens( running_machine &machine )
TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0)
{
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5);
int attr = m_videoram1[tile_index];
int code = m_videoram1[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03;
@@ -77,9 +77,9 @@ TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0)
TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1)
{
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5);
int attr = m_videoram2[tile_index];
int code = m_videoram2[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03;
@@ -163,11 +163,12 @@ SCREEN_UPDATE_IND16( fastlane )
set_pens(screen.machine());
/* set scroll registers */
- xoffs = k007121_ctrlram_r(state->m_k007121, 0);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ xoffs = k007121_ctrlram_r(state->m_k007121, space, 0);
for (i = 0; i < 32; i++)
state->m_layer0->set_scrollx(i, state->m_k007121_regs[0x20 + i] + xoffs - 40);
- state->m_layer0->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, 2));
+ state->m_layer0->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
state->m_layer0->draw(bitmap, finalclip0, 0, 0);
k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, 0, 40, 0, (UINT32)-1);
diff --git a/src/mame/video/flkatck.c b/src/mame/video/flkatck.c
index 18135749ad8..8b15b2d1bd3 100644
--- a/src/mame/video/flkatck.c
+++ b/src/mame/video/flkatck.c
@@ -16,11 +16,11 @@
TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_A)
{
- UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, 0);
- UINT8 ctrl_2 = k007121_ctrlram_r(m_k007121, 2);
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5);
+ UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, generic_space(), 0);
+ UINT8 ctrl_2 = k007121_ctrlram_r(m_k007121, generic_space(), 2);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5);
int attr = m_k007121_ram[tile_index];
int code = m_k007121_ram[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03;
@@ -99,7 +99,7 @@ WRITE8_MEMBER(flkatck_state::flkatck_k007121_regs_w)
switch (offset)
{
case 0x04: /* ROM bank select */
- if (data != k007121_ctrlram_r(m_k007121, 4))
+ if (data != k007121_ctrlram_r(m_k007121, space, 4))
machine().tilemap().mark_all_dirty();
break;
@@ -110,7 +110,7 @@ WRITE8_MEMBER(flkatck_state::flkatck_k007121_regs_w)
break;
}
- k007121_ctrl_w(m_k007121, offset, data);
+ k007121_ctrl_w(m_k007121, space, offset, data);
}
@@ -133,6 +133,7 @@ SCREEN_UPDATE_IND16( flkatck )
rectangle clip[2];
const rectangle &visarea = screen.visible_area();
+ address_space &space = screen.machine().driver_data()->generic_space();
if (state->m_flipscreen)
{
clip[0] = visarea;
@@ -141,8 +142,8 @@ SCREEN_UPDATE_IND16( flkatck )
clip[1] = visarea;
clip[1].min_x = clip[1].max_x - 40;
- state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, 0) - 56 );
- state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, 2));
+ state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 56 );
+ state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
state->m_k007121_tilemap[1]->set_scrollx(0, -16);
}
else
@@ -154,8 +155,8 @@ SCREEN_UPDATE_IND16( flkatck )
clip[1].max_x = 39;
clip[1].min_x = 0;
- state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, 0) - 40 );
- state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, 2));
+ state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 40 );
+ state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
state->m_k007121_tilemap[1]->set_scrollx(0, 0);
}
diff --git a/src/mame/video/funkyjet.c b/src/mame/video/funkyjet.c
index 38ac860794f..face8a83149 100644
--- a/src/mame/video/funkyjet.c
+++ b/src/mame/video/funkyjet.c
@@ -14,7 +14,8 @@
SCREEN_UPDATE_IND16( funkyjet )
{
funkyjet_state *state = screen.machine().driver_data<funkyjet_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
diff --git a/src/mame/video/gp9001.c b/src/mame/video/gp9001.c
index f0efe7cb760..07357177322 100644
--- a/src/mame/video/gp9001.c
+++ b/src/mame/video/gp9001.c
@@ -594,10 +594,10 @@ READ16_DEVICE_HANDLER( gp9001_vdp_r )
{
case 0x04/2:
case 0x06/2:
- return gp9001_devvideoram16_r(device, offset-0x04/2, mem_mask);
+ return gp9001_devvideoram16_r(device, space, offset-0x04/2, mem_mask);
case 0x0c/2:
- return gp9001_vdpstatus_r(device, offset-0x0c/2, mem_mask);
+ return gp9001_vdpstatus_r(device, space, offset-0x0c/2, mem_mask);
default:
logerror("gp9001_vdp_r: read from unhandled offset %04x\n",offset*2);
@@ -611,20 +611,20 @@ WRITE16_DEVICE_HANDLER( gp9001_vdp_w )
switch (offset)
{
case 0x00/2:
- gp9001_devvoffs_w(device, offset-0x00/2, data, mem_mask);
+ gp9001_devvoffs_w(device, space, offset-0x00/2, data, mem_mask);
break;
case 0x04/2:
case 0x06/2:
- gp9001_devvideoram16_w(device, offset-0x04/2, data, mem_mask);
+ gp9001_devvideoram16_w(device, space, offset-0x04/2, data, mem_mask);
break;
case 0x08/2:
- gp9001_scroll_reg_select_w(device, offset-0x08/2, data, mem_mask);
+ gp9001_scroll_reg_select_w(device, space, offset-0x08/2, data, mem_mask);
break;
case 0x0c/2:
- gp9001_scroll_reg_devvdata_w(device, offset-0x0c/2, data, mem_mask);
+ gp9001_scroll_reg_devvdata_w(device, space, offset-0x0c/2, data, mem_mask);
break;
default:
@@ -639,11 +639,11 @@ READ16_DEVICE_HANDLER( gp9001_vdp_alt_r )
switch (offset)
{
case 0x00/2:
- return gp9001_vdpstatus_r(device, offset-0x0c/2, mem_mask);
+ return gp9001_vdpstatus_r(device, space, offset-0x0c/2, mem_mask);
case 0x08/2:
case 0x0a/2:
- return gp9001_devvideoram16_r(device, offset-0x04/2, mem_mask);
+ return gp9001_devvideoram16_r(device, space, offset-0x04/2, mem_mask);
default:
@@ -658,20 +658,20 @@ WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w )
switch (offset)
{
case 0x00/2:
- gp9001_scroll_reg_devvdata_w(device, offset-0x0c/2, data, mem_mask);
+ gp9001_scroll_reg_devvdata_w(device, space, offset-0x0c/2, data, mem_mask);
break;
case 0x04/2:
- gp9001_scroll_reg_select_w(device, offset-0x08/2, data, mem_mask);
+ gp9001_scroll_reg_select_w(device, space, offset-0x08/2, data, mem_mask);
break;
case 0x08/2:
case 0x0a/2:
- gp9001_devvideoram16_w(device, offset-0x04/2, data, mem_mask);
+ gp9001_devvideoram16_w(device, space, offset-0x04/2, data, mem_mask);
break;
case 0x0c/2:
- gp9001_devvoffs_w(device, offset-0x00/2, data, mem_mask);
+ gp9001_devvoffs_w(device, space, offset-0x00/2, data, mem_mask);
break;
default:
diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h
index ad7fee05899..7ceb6fe78f9 100644
--- a/src/mame/video/gp9001.h
+++ b/src/mame/video/gp9001.h
@@ -101,13 +101,13 @@ extern const device_type GP9001_VDP;
// access to VDP
-READ16_DEVICE_HANDLER( gp9001_vdp_r );
-WRITE16_DEVICE_HANDLER( gp9001_vdp_w );
-READ16_DEVICE_HANDLER( gp9001_vdp_alt_r );
-WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w );
+DECLARE_READ16_DEVICE_HANDLER( gp9001_vdp_r );
+DECLARE_WRITE16_DEVICE_HANDLER( gp9001_vdp_w );
+DECLARE_READ16_DEVICE_HANDLER( gp9001_vdp_alt_r );
+DECLARE_WRITE16_DEVICE_HANDLER( gp9001_vdp_alt_w );
// this bootleg has strange access
-READ16_DEVICE_HANDLER ( pipibibi_bootleg_videoram16_r );
-WRITE16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_w );
-READ16_DEVICE_HANDLER ( pipibibi_bootleg_spriteram16_r );
-WRITE16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_w );
-WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w );
+DECLARE_READ16_DEVICE_HANDLER ( pipibibi_bootleg_videoram16_r );
+DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_videoram16_w );
+DECLARE_READ16_DEVICE_HANDLER ( pipibibi_bootleg_spriteram16_r );
+DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_spriteram16_w );
+DECLARE_WRITE16_DEVICE_HANDLER( pipibibi_bootleg_scroll_w );
diff --git a/src/mame/video/gradius3.c b/src/mame/video/gradius3.c
index 6745b7617d1..0d811ac0fe6 100644
--- a/src/mame/video/gradius3.c
+++ b/src/mame/video/gradius3.c
@@ -126,8 +126,9 @@ SCREEN_UPDATE_IND16( gradius3 )
gradius3_state *state = screen.machine().driver_data<gradius3_state>();
/* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */
- k052109_w(state->m_k052109, 0x1d80, 0x10);
- k052109_w(state->m_k052109, 0x1f00, 0x32);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ k052109_w(state->m_k052109, space, 0x1d80, 0x10);
+ k052109_w(state->m_k052109, space, 0x1f00, 0x32);
k052109_tilemap_update(state->m_k052109);
diff --git a/src/mame/video/groundfx.c b/src/mame/video/groundfx.c
index b96347dfe72..fd103fc9ab9 100644
--- a/src/mame/video/groundfx.c
+++ b/src/mame/video/groundfx.c
@@ -198,6 +198,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
SCREEN_UPDATE_IND16( groundfx )
{
groundfx_state *state = screen.machine().driver_data<groundfx_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
UINT8 layer[5];
@@ -241,8 +242,8 @@ SCREEN_UPDATE_IND16( groundfx )
it's contents the usual way.
*/
- if (tc0100scn_long_r(tc0100scn, 0x4090 / 4, 0xffffffff) ||
- tc0480scp_long_r(tc0480scp, 0x20 / 4, 0xffffffff) == 0x240866) /* Anything in text layer - really stupid hack */
+ if (tc0100scn_long_r(tc0100scn, space, 0x4090 / 4, 0xffffffff) ||
+ tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) == 0x240866) /* Anything in text layer - really stupid hack */
{
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2);
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4);
@@ -250,7 +251,7 @@ SCREEN_UPDATE_IND16( groundfx )
//tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, 0, pivlayer[2], 0, 0);
- if (tc0480scp_long_r(tc0480scp, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */
+ if (tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */
tc0480scp_tilemap_draw(tc0480scp, bitmap, state->m_hack_cliprect, layer[0], 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1, 44, -574);
}
diff --git a/src/mame/video/hcastle.c b/src/mame/video/hcastle.c
index 4c0afd21359..42ffc993958 100644
--- a/src/mame/video/hcastle.c
+++ b/src/mame/video/hcastle.c
@@ -73,8 +73,8 @@ TILEMAP_MAPPER_MEMBER(hcastle_state::tilemap_scan)
TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info)
{
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, generic_space(), 6);
int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03;
int bit2 = (ctrl_5 >> 4) & 0x03;
@@ -97,8 +97,8 @@ TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info)
TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info)
{
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, generic_space(), 6);
int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03;
int bit2 = (ctrl_5 >> 4) & 0x03;
@@ -180,7 +180,7 @@ WRITE8_MEMBER(hcastle_state::hcastle_pf1_control_w)
{
m_fg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
}
- k007121_ctrl_w(m_k007121_1, offset, data);
+ k007121_ctrl_w(m_k007121_1, space, offset, data);
}
WRITE8_MEMBER(hcastle_state::hcastle_pf2_control_w)
@@ -197,7 +197,7 @@ WRITE8_MEMBER(hcastle_state::hcastle_pf2_control_w)
{
m_bg_tilemap->set_flip((data & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
}
- k007121_ctrl_w(m_k007121_2, offset, data);
+ k007121_ctrl_w(m_k007121_2, space, offset, data);
}
/*****************************************************************************/
@@ -206,7 +206,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
{
hcastle_state *state = machine.driver_data<hcastle_state>();
device_t *k007121 = bank ? state->m_k007121_2 : state->m_k007121_1;
- int base_color = (k007121_ctrlram_r(k007121, 6) & 0x30) * 2;
+ address_space &space = machine.driver_data()->generic_space();
+ int base_color = (k007121_ctrlram_r(k007121, space, 6) & 0x30) * 2;
int bank_base = (bank == 0) ? 0x4000 * (state->m_gfx_bank & 1) : 0;
k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[bank], machine.colortable, sbank, base_color, 0, bank_base, (UINT32)-1);
@@ -217,15 +218,16 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
SCREEN_UPDATE_IND16( hcastle )
{
hcastle_state *state = screen.machine().driver_data<hcastle_state>();
-
- UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, 0);
- UINT8 ctrl_1_1 = k007121_ctrlram_r(state->m_k007121_1, 1);
- UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, 2);
- UINT8 ctrl_1_3 = k007121_ctrlram_r(state->m_k007121_1, 3);
- UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, 0);
- UINT8 ctrl_2_1 = k007121_ctrlram_r(state->m_k007121_2, 1);
- UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, 2);
- UINT8 ctrl_2_3 = k007121_ctrlram_r(state->m_k007121_2, 3);
+ address_space &space = screen.machine().driver_data()->generic_space();
+
+ UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0);
+ UINT8 ctrl_1_1 = k007121_ctrlram_r(state->m_k007121_1, space, 1);
+ UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2);
+ UINT8 ctrl_1_3 = k007121_ctrlram_r(state->m_k007121_1, space, 3);
+ UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0);
+ UINT8 ctrl_2_1 = k007121_ctrlram_r(state->m_k007121_2, space, 1);
+ UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2);
+ UINT8 ctrl_2_3 = k007121_ctrlram_r(state->m_k007121_2, space, 3);
set_pens(screen.machine());
diff --git a/src/mame/video/itech8.c b/src/mame/video/itech8.c
index b5e15dbe626..4cffebbcbbf 100644
--- a/src/mame/video/itech8.c
+++ b/src/mame/video/itech8.c
@@ -188,7 +188,7 @@ void itech8_state::video_start()
WRITE8_MEMBER(itech8_state::itech8_palette_w)
{
- tlc34076_w(machine().device("tlc34076"), offset/2, data);
+ tlc34076_w(machine().device("tlc34076"), space, offset/2, data);
}
diff --git a/src/mame/video/kan_pand.h b/src/mame/video/kan_pand.h
index f633cb18da1..56e657cc728 100644
--- a/src/mame/video/kan_pand.h
+++ b/src/mame/video/kan_pand.h
@@ -62,11 +62,11 @@ void pandora_eof(device_t *device);
void pandora_set_clear_bitmap(device_t *device, int clear);
void pandora_set_bg_pen( device_t *device, int pen );
-WRITE8_DEVICE_HANDLER ( pandora_spriteram_w );
-READ8_DEVICE_HANDLER( pandora_spriteram_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( pandora_spriteram_w );
+DECLARE_READ8_DEVICE_HANDLER( pandora_spriteram_r );
-WRITE16_DEVICE_HANDLER( pandora_spriteram_LSB_w );
-READ16_DEVICE_HANDLER( pandora_spriteram_LSB_r );
+DECLARE_WRITE16_DEVICE_HANDLER( pandora_spriteram_LSB_w );
+DECLARE_READ16_DEVICE_HANDLER( pandora_spriteram_LSB_r );
#endif /* __KAN_PAND_H__ */
diff --git a/src/mame/video/konicdev.c b/src/mame/video/konicdev.c
index 667741c712d..281d94a770d 100644
--- a/src/mame/video/konicdev.c
+++ b/src/mame/video/konicdev.c
@@ -2455,26 +2455,26 @@ WRITE8_DEVICE_HANDLER( k052109_w )
READ16_DEVICE_HANDLER( k052109_word_r )
{
- return k052109_r(device, offset + 0x2000) | (k052109_r(device, offset) << 8);
+ return k052109_r(device, space, offset + 0x2000) | (k052109_r(device, space, offset) << 8);
}
WRITE16_DEVICE_HANDLER( k052109_word_w )
{
if (ACCESSING_BITS_8_15)
- k052109_w(device, offset, (data >> 8) & 0xff);
+ k052109_w(device, space, offset, (data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k052109_w(device, offset + 0x2000, data & 0xff);
+ k052109_w(device, space, offset + 0x2000, data & 0xff);
}
READ16_DEVICE_HANDLER( k052109_lsb_r )
{
- return k052109_r(device, offset);
+ return k052109_r(device, space, offset);
}
WRITE16_DEVICE_HANDLER( k052109_lsb_w )
{
if(ACCESSING_BITS_0_7)
- k052109_w(device, offset, data & 0xff);
+ k052109_w(device, space, offset, data & 0xff);
}
void k052109_set_rmrd_line( device_t *device, int state )
@@ -2978,15 +2978,15 @@ WRITE8_DEVICE_HANDLER( k051960_w )
READ16_DEVICE_HANDLER( k051960_word_r )
{
- return k051960_r(device, offset * 2 + 1) | (k051960_r(device, offset * 2) << 8);
+ return k051960_r(device, space, offset * 2 + 1) | (k051960_r(device, space, offset * 2) << 8);
}
WRITE16_DEVICE_HANDLER( k051960_word_w )
{
if (ACCESSING_BITS_8_15)
- k051960_w(device, offset * 2, (data >> 8) & 0xff);
+ k051960_w(device, space, offset * 2, (data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k051960_w(device, offset * 2 + 1, data & 0xff);
+ k051960_w(device, space, offset * 2 + 1, data & 0xff);
}
@@ -3075,15 +3075,15 @@ void k051960_set_sprite_offsets( device_t *device, int dx, int dy )
READ16_DEVICE_HANDLER( k051937_word_r )
{
- return k051937_r(device, offset * 2 + 1) | (k051937_r(device, offset * 2) << 8);
+ return k051937_r(device, space, offset * 2 + 1) | (k051937_r(device, space, offset * 2) << 8);
}
WRITE16_DEVICE_HANDLER( k051937_word_w )
{
if (ACCESSING_BITS_8_15)
- k051937_w(device, offset * 2,(data >> 8) & 0xff);
+ k051937_w(device, space, offset * 2,(data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k051937_w(device, offset * 2 + 1,data & 0xff);
+ k051937_w(device, space, offset * 2 + 1,data & 0xff);
}
/*
@@ -3624,26 +3624,26 @@ WRITE8_DEVICE_HANDLER( k053244_w )
READ16_DEVICE_HANDLER( k053244_lsb_r )
{
- return k053244_r(device, offset);
+ return k053244_r(device, space, offset);
}
WRITE16_DEVICE_HANDLER( k053244_lsb_w )
{
if (ACCESSING_BITS_0_7)
- k053244_w(device, offset, data & 0xff);
+ k053244_w(device, space, offset, data & 0xff);
}
READ16_DEVICE_HANDLER( k053244_word_r )
{
- return (k053244_r(device, offset * 2) << 8) | k053244_r(device, offset * 2 + 1);
+ return (k053244_r(device, space, offset * 2) << 8) | k053244_r(device, space, offset * 2 + 1);
}
WRITE16_DEVICE_HANDLER( k053244_word_w )
{
if (ACCESSING_BITS_8_15)
- k053244_w(device, offset * 2, (data >> 8) & 0xff);
+ k053244_w(device, space, offset * 2, (data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k053244_w(device, offset * 2 + 1, data & 0xff);
+ k053244_w(device, space, offset * 2 + 1, data & 0xff);
}
void k053244_bankselect( device_t *device, int bank )
@@ -4574,28 +4574,28 @@ WRITE8_DEVICE_HANDLER( k053246_w )
READ16_DEVICE_HANDLER( k053246_word_r )
{
offset <<= 1;
- return k053246_r(device, offset + 1) | (k053246_r(device, offset) << 8);
+ return k053246_r(device, space, offset + 1) | (k053246_r(device, space, offset) << 8);
}
WRITE16_DEVICE_HANDLER( k053246_word_w )
{
if (ACCESSING_BITS_8_15)
- k053246_w(device, offset << 1,(data >> 8) & 0xff);
+ k053246_w(device, space, offset << 1,(data >> 8) & 0xff);
if (ACCESSING_BITS_0_7)
- k053246_w(device, (offset << 1) + 1,data & 0xff);
+ k053246_w(device, space, (offset << 1) + 1,data & 0xff);
}
READ32_DEVICE_HANDLER( k053246_long_r )
{
offset <<= 1;
- return (k053246_word_r(device, offset + 1, 0xffff) | k053246_word_r(device, offset, 0xffff) << 16);
+ return (k053246_word_r(device, space, offset + 1, 0xffff) | k053246_word_r(device, space, offset, 0xffff) << 16);
}
WRITE32_DEVICE_HANDLER( k053246_long_w )
{
offset <<= 1;
- k053246_word_w(device, offset, data >> 16, mem_mask >> 16);
- k053246_word_w(device, offset + 1, data, mem_mask);
+ k053246_word_w(device, space, offset, data >> 16, mem_mask >> 16);
+ k053246_word_w(device, space, offset + 1, data, mem_mask);
}
void k053246_set_objcha_line( device_t *device, int state )
@@ -6026,13 +6026,13 @@ WRITE8_DEVICE_HANDLER( k053251_w )
WRITE16_DEVICE_HANDLER( k053251_lsb_w )
{
if (ACCESSING_BITS_0_7)
- k053251_w(device, offset, data & 0xff);
+ k053251_w(device, space, offset, data & 0xff);
}
WRITE16_DEVICE_HANDLER( k053251_msb_w )
{
if (ACCESSING_BITS_8_15)
- k053251_w(device, offset, (data >> 8) & 0xff);
+ k053251_w(device, space, offset, (data >> 8) & 0xff);
}
int k053251_get_priority( device_t *device, int ci )
@@ -6216,13 +6216,13 @@ READ8_DEVICE_HANDLER( k054000_r )
READ16_DEVICE_HANDLER( k054000_lsb_r )
{
- return k054000_r(device, offset);
+ return k054000_r(device, space, offset);
}
WRITE16_DEVICE_HANDLER( k054000_lsb_w )
{
if (ACCESSING_BITS_0_7)
- k054000_w(device, offset, data & 0xff);
+ k054000_w(device, space, offset, data & 0xff);
}
/*****************************************************************************
@@ -6995,7 +6995,7 @@ READ16_DEVICE_HANDLER( k056832_old_rom_word_r )
READ32_DEVICE_HANDLER( k056832_rom_long_r )
{
offset <<= 1;
- return (k056832_rom_word_r(device, offset + 1, 0xffff) | (k056832_rom_word_r(device, offset, 0xffff) << 16));
+ return (k056832_rom_word_r(device, space, offset + 1, 0xffff) | (k056832_rom_word_r(device, space, offset, 0xffff) << 16));
}
/* only one page is mapped to videoram at a time through a window */
@@ -7352,8 +7352,8 @@ WRITE32_DEVICE_HANDLER( k056832_long_w )
// if (ACCESSING_xxx) trick. in particular, 8-bit writes
// are used to the tilemap bank register.
offset <<= 1;
- k056832_word_w(device, offset, data >> 16, mem_mask >> 16);
- k056832_word_w(device, offset + 1, data, mem_mask);
+ k056832_word_w(device, space, offset, data >> 16, mem_mask >> 16);
+ k056832_word_w(device, space, offset + 1, data, mem_mask);
}
WRITE16_DEVICE_HANDLER( k056832_b_word_w )
@@ -7366,11 +7366,11 @@ WRITE8_DEVICE_HANDLER( k056832_w )
{
if (offset & 1)
{
- k056832_word_w(device, (offset >> 1), data, 0x00ff);
+ k056832_word_w(device, space, (offset >> 1), data, 0x00ff);
}
else
{
- k056832_word_w(device, (offset >> 1), data << 8, 0xff00);
+ k056832_word_w(device, space, (offset >> 1), data << 8, 0xff00);
}
}
@@ -7378,11 +7378,11 @@ WRITE8_DEVICE_HANDLER( k056832_b_w )
{
if (offset & 1)
{
- k056832_b_word_w(device, (offset >> 1), data, 0x00ff);
+ k056832_b_word_w(device, space, (offset >> 1), data, 0x00ff);
}
else
{
- k056832_b_word_w(device, (offset >> 1), data<<8, 0xff00);
+ k056832_b_word_w(device, space, (offset >> 1), data<<8, 0xff00);
}
}
@@ -7390,11 +7390,11 @@ WRITE32_DEVICE_HANDLER( k056832_b_long_w )
{
if (ACCESSING_BITS_16_31)
{
- k056832_b_word_w(device, offset << 1, data >> 16, mem_mask >> 16);
+ k056832_b_word_w(device, space, offset << 1, data >> 16, mem_mask >> 16);
}
if (ACCESSING_BITS_0_15)
{
- k056832_b_word_w(device, (offset << 1) + 1, data, mem_mask);
+ k056832_b_word_w(device, space, (offset << 1) + 1, data, mem_mask);
}
}
@@ -8661,8 +8661,8 @@ WRITE16_DEVICE_HANDLER( k054338_word_w )
WRITE32_DEVICE_HANDLER( k054338_long_w )
{
offset <<= 1;
- k054338_word_w(device, offset, data >> 16, mem_mask >> 16);
- k054338_word_w(device, offset + 1, data, mem_mask);
+ k054338_word_w(device, space, offset, data >> 16, mem_mask >> 16);
+ k054338_word_w(device, space, offset + 1, data, mem_mask);
}
// returns a 16-bit '338 register
@@ -10897,19 +10897,19 @@ READ16_DEVICE_HANDLER( k055555_word_r )
READ32_DEVICE_HANDLER( k056832_long_r )
{
offset <<= 1;
- return (k056832_word_r(device, offset + 1, 0xffff) | k056832_word_r(device, offset, 0xffff) << 16);
+ return (k056832_word_r(device, space, offset + 1, 0xffff) | k056832_word_r(device, space, offset, 0xffff) << 16);
}
READ32_DEVICE_HANDLER( k053247_reg_long_r )
{
offset <<= 1;
- return (k053247_reg_word_r(device, offset + 1, 0xffff) | k053247_reg_word_r(device, offset, 0xffff) << 16);
+ return (k053247_reg_word_r(device, space, offset + 1, 0xffff) | k053247_reg_word_r(device, space, offset, 0xffff) << 16);
}
READ32_DEVICE_HANDLER( k055555_long_r )
{
offset <<= 1;
- return (k055555_word_r(device, offset + 1, 0xffff) | k055555_word_r(device, offset, 0xffff) << 16);
+ return (k055555_word_r(device, space, offset + 1, 0xffff) | k055555_word_r(device, space, offset, 0xffff) << 16);
}
READ16_DEVICE_HANDLER( k053244_reg_word_r )
diff --git a/src/mame/video/konicdev.h b/src/mame/video/konicdev.h
index aa2671d1f42..c7a11f6bdd2 100644
--- a/src/mame/video/konicdev.h
+++ b/src/mame/video/konicdev.h
@@ -713,8 +713,8 @@ void konami_sortlayers5(int *layer, int *pri);
***************************************************************************/
/** Konami 007121 **/
-READ8_DEVICE_HANDLER( k007121_ctrlram_r );
-WRITE8_DEVICE_HANDLER( k007121_ctrl_w );
+DECLARE_READ8_DEVICE_HANDLER( k007121_ctrlram_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k007121_ctrl_w );
/* shall we move source in the interface? */
/* also notice that now we directly pass *gfx[chip] instead of **gfx !! */
@@ -723,11 +723,11 @@ void k007121_sprites_draw( device_t *device, bitmap_ind16 &bitmap, const rectang
/** Konami 007342 **/
-READ8_DEVICE_HANDLER( k007342_r );
-WRITE8_DEVICE_HANDLER( k007342_w );
-READ8_DEVICE_HANDLER( k007342_scroll_r );
-WRITE8_DEVICE_HANDLER( k007342_scroll_w );
-WRITE8_DEVICE_HANDLER( k007342_vreg_w );
+DECLARE_READ8_DEVICE_HANDLER( k007342_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k007342_w );
+DECLARE_READ8_DEVICE_HANDLER( k007342_scroll_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k007342_scroll_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k007342_vreg_w );
void k007342_tilemap_update(device_t *device);
void k007342_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, int flags, UINT32 priority);
@@ -737,8 +737,8 @@ int k007342_is_int_enabled(device_t *device);
/** Konami 007420 **/
#define K007420_SPRITERAM_SIZE 0x200
-READ8_DEVICE_HANDLER( k007420_r );
-WRITE8_DEVICE_HANDLER( k007420_w );
+DECLARE_READ8_DEVICE_HANDLER( k007420_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k007420_w );
void k007420_sprites_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_element *gfx);
@@ -772,12 +772,12 @@ The callback must put:
chip so it must not be set by the callback.
*/
-READ8_DEVICE_HANDLER( k052109_r );
-WRITE8_DEVICE_HANDLER( k052109_w );
-READ16_DEVICE_HANDLER( k052109_word_r );
-WRITE16_DEVICE_HANDLER( k052109_word_w );
-READ16_DEVICE_HANDLER( k052109_lsb_r );
-WRITE16_DEVICE_HANDLER( k052109_lsb_w );
+DECLARE_READ8_DEVICE_HANDLER( k052109_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k052109_w );
+DECLARE_READ16_DEVICE_HANDLER( k052109_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k052109_word_w );
+DECLARE_READ16_DEVICE_HANDLER( k052109_lsb_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k052109_lsb_w );
void k052109_set_rmrd_line(device_t *device, int state);
int k052109_get_rmrd_line(device_t *device);
@@ -803,15 +803,15 @@ The callback must put:
the game has special treatment (Aliens)
*/
-READ8_DEVICE_HANDLER( k051960_r );
-WRITE8_DEVICE_HANDLER( k051960_w );
-READ16_DEVICE_HANDLER( k051960_word_r );
-WRITE16_DEVICE_HANDLER( k051960_word_w );
+DECLARE_READ8_DEVICE_HANDLER( k051960_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051960_w );
+DECLARE_READ16_DEVICE_HANDLER( k051960_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k051960_word_w );
-READ8_DEVICE_HANDLER( k051937_r );
-WRITE8_DEVICE_HANDLER( k051937_w );
-READ16_DEVICE_HANDLER( k051937_word_r );
-WRITE16_DEVICE_HANDLER( k051937_word_w );
+DECLARE_READ8_DEVICE_HANDLER( k051937_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051937_w );
+DECLARE_READ16_DEVICE_HANDLER( k051937_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k051937_word_w );
void k051960_sprites_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int min_priority, int max_priority);
int k051960_is_irq_enabled(device_t *device);
@@ -826,16 +826,16 @@ WRITE8_HANDLER( k052109_051960_w );
/** Konami 053244 / 053245 **/
-READ16_DEVICE_HANDLER( k053245_word_r );
-WRITE16_DEVICE_HANDLER( k053245_word_w );
-READ8_DEVICE_HANDLER( k053245_r );
-WRITE8_DEVICE_HANDLER( k053245_w );
-READ8_DEVICE_HANDLER( k053244_r );
-WRITE8_DEVICE_HANDLER( k053244_w );
-READ16_DEVICE_HANDLER( k053244_lsb_r );
-WRITE16_DEVICE_HANDLER( k053244_lsb_w );
-READ16_DEVICE_HANDLER( k053244_word_r );
-WRITE16_DEVICE_HANDLER( k053244_word_w );
+DECLARE_READ16_DEVICE_HANDLER( k053245_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k053245_word_w );
+DECLARE_READ8_DEVICE_HANDLER( k053245_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k053245_w );
+DECLARE_READ8_DEVICE_HANDLER( k053244_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k053244_w );
+DECLARE_READ16_DEVICE_HANDLER( k053244_lsb_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k053244_lsb_w );
+DECLARE_READ16_DEVICE_HANDLER( k053244_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k053244_word_w );
void k053244_bankselect(device_t *device, int bank); /* used by TMNT2, Asterix and Premier Soccer for ROM testing */
void k053245_sprites_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect);
void k053245_sprites_draw_lethal(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect); /* for lethal enforcers */
@@ -850,8 +850,8 @@ void k053245_set_sprite_offs(device_t *device, int offsx, int offsy);
#define K055673_LAYOUT_LE2 2
#define K055673_LAYOUT_GX6 3
-READ16_DEVICE_HANDLER( k055673_rom_word_r );
-READ16_DEVICE_HANDLER( k055673_GX6bpp_rom_word_r );
+DECLARE_READ16_DEVICE_HANDLER( k055673_rom_word_r );
+DECLARE_READ16_DEVICE_HANDLER( k055673_GX6bpp_rom_word_r );
/*
Callback procedures for non-standard shadows:
@@ -863,14 +863,14 @@ Callback procedures for non-standard shadows:
#define K053247_CUSTOMSHADOW 0x20000000
#define K053247_SHDSHIFT 20
-READ8_DEVICE_HANDLER( k053247_r );
-WRITE8_DEVICE_HANDLER( k053247_w );
-READ16_DEVICE_HANDLER( k053247_word_r );
-WRITE16_DEVICE_HANDLER( k053247_word_w );
-READ32_DEVICE_HANDLER( k053247_long_r );
-WRITE32_DEVICE_HANDLER( k053247_long_w );
-WRITE16_DEVICE_HANDLER( k053247_reg_word_w ); // "OBJSET2" registers
-WRITE32_DEVICE_HANDLER( k053247_reg_long_w );
+DECLARE_READ8_DEVICE_HANDLER( k053247_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k053247_w );
+DECLARE_READ16_DEVICE_HANDLER( k053247_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k053247_word_w );
+DECLARE_READ32_DEVICE_HANDLER( k053247_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k053247_long_w );
+DECLARE_WRITE16_DEVICE_HANDLER( k053247_reg_word_w ); // "OBJSET2" registers
+DECLARE_WRITE32_DEVICE_HANDLER( k053247_reg_long_w );
void k053247_sprites_draw(device_t *device, bitmap_ind16 &bitmap,const rectangle &cliprect);
void k053247_sprites_draw(device_t *device, bitmap_rgb32 &bitmap,const rectangle &cliprect);
@@ -883,12 +883,12 @@ void k053247_get_ram(device_t *device, UINT16 **ram);
int k053247_get_dx(device_t *device);
int k053247_get_dy(device_t *device);
-READ8_DEVICE_HANDLER( k053246_r );
-WRITE8_DEVICE_HANDLER( k053246_w );
-READ16_DEVICE_HANDLER( k053246_word_r );
-WRITE16_DEVICE_HANDLER( k053246_word_w );
-READ32_DEVICE_HANDLER( k053246_long_r );
-WRITE32_DEVICE_HANDLER( k053246_long_w );
+DECLARE_READ8_DEVICE_HANDLER( k053246_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k053246_w );
+DECLARE_READ16_DEVICE_HANDLER( k053246_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k053246_word_w );
+DECLARE_READ32_DEVICE_HANDLER( k053246_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k053246_long_w );
void k053246_set_objcha_line(device_t *device, int state);
int k053246_is_irq_enabled(device_t *device);
@@ -907,19 +907,19 @@ The callback must put:
structure (e.g. TILE_FLIPX)
*/
-READ8_DEVICE_HANDLER( k051316_r );
-WRITE8_DEVICE_HANDLER( k051316_w );
-READ8_DEVICE_HANDLER( k051316_rom_r );
-WRITE8_DEVICE_HANDLER( k051316_ctrl_w );
+DECLARE_READ8_DEVICE_HANDLER( k051316_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051316_w );
+DECLARE_READ8_DEVICE_HANDLER( k051316_rom_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051316_ctrl_w );
void k051316_zoom_draw(device_t *device, bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,UINT32 priority);
void k051316_wraparound_enable(device_t *device, int status);
/** Konami 053936 **/
-WRITE16_DEVICE_HANDLER( k053936_ctrl_w );
-READ16_DEVICE_HANDLER( k053936_ctrl_r ); // FIXME: this is probably unused... to be checked!
-WRITE16_DEVICE_HANDLER( k053936_linectrl_w );
-READ16_DEVICE_HANDLER( k053936_linectrl_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k053936_ctrl_w );
+DECLARE_READ16_DEVICE_HANDLER( k053936_ctrl_r ); // FIXME: this is probably unused... to be checked!
+DECLARE_WRITE16_DEVICE_HANDLER( k053936_linectrl_w );
+DECLARE_READ16_DEVICE_HANDLER( k053936_linectrl_r );
void k053936_zoom_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, tilemap_t *tmap, int flags, UINT32 priority, int glfgreat_hack);
void k053936_wraparound_enable(device_t *device, int status); // shall we merge this into the configuration intf?
void k053936_set_offset(device_t *device, int xoffs, int yoffs); // shall we merge this into the configuration intf?
@@ -931,9 +931,9 @@ void k053936_set_offset(device_t *device, int xoffs, int yoffs); // shall we mer
when some palette index changes. If ALL_TILEMAPS is too expensive, use
k053251_set_tilemaps() to indicate which tilemap is associated with each index.
*/
-WRITE8_DEVICE_HANDLER( k053251_w );
-WRITE16_DEVICE_HANDLER( k053251_lsb_w );
-WRITE16_DEVICE_HANDLER( k053251_msb_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k053251_w );
+DECLARE_WRITE16_DEVICE_HANDLER( k053251_lsb_w );
+DECLARE_WRITE16_DEVICE_HANDLER( k053251_msb_w );
int k053251_get_priority(device_t *device, int ci);
int k053251_get_palette_index(device_t *device, int ci);
int k053251_get_tmap_dirty(device_t *device, int tmap_num);
@@ -949,44 +949,44 @@ enum
};
/** Konami 054000 **/
-WRITE8_DEVICE_HANDLER( k054000_w );
-READ8_DEVICE_HANDLER( k054000_r );
-WRITE16_DEVICE_HANDLER( k054000_lsb_w );
-READ16_DEVICE_HANDLER( k054000_lsb_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k054000_w );
+DECLARE_READ8_DEVICE_HANDLER( k054000_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k054000_lsb_w );
+DECLARE_READ16_DEVICE_HANDLER( k054000_lsb_r );
/** Konami 051733 **/
-WRITE8_DEVICE_HANDLER( k051733_w );
-READ8_DEVICE_HANDLER( k051733_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k051733_w );
+DECLARE_READ8_DEVICE_HANDLER( k051733_r );
/** Konami 056832 **/
void k056832_SetExtLinescroll(device_t *device); /* Lethal Enforcers */
-READ16_DEVICE_HANDLER( k056832_ram_word_r );
-WRITE16_DEVICE_HANDLER( k056832_ram_word_w );
-READ16_DEVICE_HANDLER( k056832_ram_half_word_r );
-WRITE16_DEVICE_HANDLER( k056832_ram_half_word_w );
-READ16_DEVICE_HANDLER( k056832_5bpp_rom_word_r );
-READ32_DEVICE_HANDLER( k056832_5bpp_rom_long_r );
-READ32_DEVICE_HANDLER( k056832_6bpp_rom_long_r );
-READ16_DEVICE_HANDLER( k056832_rom_word_r );
-READ16_DEVICE_HANDLER( k056832_mw_rom_word_r );
-READ16_DEVICE_HANDLER( k056832_bishi_rom_word_r );
-READ16_DEVICE_HANDLER( k056832_old_rom_word_r );
-READ16_DEVICE_HANDLER( k056832_rom_word_8000_r );
-WRITE16_DEVICE_HANDLER( k056832_word_w ); // "VRAM" registers
-WRITE16_DEVICE_HANDLER( k056832_b_word_w );
-READ8_DEVICE_HANDLER( k056832_ram_code_lo_r );
-READ8_DEVICE_HANDLER( k056832_ram_code_hi_r );
-READ8_DEVICE_HANDLER( k056832_ram_attr_lo_r );
-READ8_DEVICE_HANDLER( k056832_ram_attr_hi_r );
-WRITE8_DEVICE_HANDLER( k056832_ram_code_lo_w );
-WRITE8_DEVICE_HANDLER( k056832_ram_code_hi_w );
-WRITE8_DEVICE_HANDLER( k056832_ram_attr_lo_w );
-WRITE8_DEVICE_HANDLER( k056832_ram_attr_hi_w );
-WRITE8_DEVICE_HANDLER( k056832_w );
-WRITE8_DEVICE_HANDLER( k056832_b_w );
+DECLARE_READ16_DEVICE_HANDLER( k056832_ram_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k056832_ram_word_w );
+DECLARE_READ16_DEVICE_HANDLER( k056832_ram_half_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k056832_ram_half_word_w );
+DECLARE_READ16_DEVICE_HANDLER( k056832_5bpp_rom_word_r );
+DECLARE_READ32_DEVICE_HANDLER( k056832_5bpp_rom_long_r );
+DECLARE_READ32_DEVICE_HANDLER( k056832_6bpp_rom_long_r );
+DECLARE_READ16_DEVICE_HANDLER( k056832_rom_word_r );
+DECLARE_READ16_DEVICE_HANDLER( k056832_mw_rom_word_r );
+DECLARE_READ16_DEVICE_HANDLER( k056832_bishi_rom_word_r );
+DECLARE_READ16_DEVICE_HANDLER( k056832_old_rom_word_r );
+DECLARE_READ16_DEVICE_HANDLER( k056832_rom_word_8000_r );
+DECLARE_WRITE16_DEVICE_HANDLER( k056832_word_w ); // "VRAM" registers
+DECLARE_WRITE16_DEVICE_HANDLER( k056832_b_word_w );
+DECLARE_READ8_DEVICE_HANDLER( k056832_ram_code_lo_r );
+DECLARE_READ8_DEVICE_HANDLER( k056832_ram_code_hi_r );
+DECLARE_READ8_DEVICE_HANDLER( k056832_ram_attr_lo_r );
+DECLARE_READ8_DEVICE_HANDLER( k056832_ram_attr_hi_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_code_lo_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_code_hi_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_attr_lo_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k056832_ram_attr_hi_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k056832_w );
+DECLARE_WRITE8_DEVICE_HANDLER( k056832_b_w );
void k056832_mark_plane_dirty(device_t *device, int num);
void k056832_mark_all_tmaps_dirty(device_t *device);
void k056832_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int num, UINT32 flags, UINT32 priority);
@@ -1004,13 +1004,13 @@ int k056832_get_current_rambank(device_t *device);
int k056832_get_lookup(device_t *device, int bits); /* Asterix */
void k056832_set_tile_bank(device_t *device, int bank); /* Asterix */
-READ32_DEVICE_HANDLER( k056832_ram_long_r );
-READ32_DEVICE_HANDLER( k056832_rom_long_r );
-WRITE32_DEVICE_HANDLER( k056832_ram_long_w );
-READ32_DEVICE_HANDLER( k056832_unpaged_ram_long_r );
-WRITE32_DEVICE_HANDLER( k056832_unpaged_ram_long_w );
-WRITE32_DEVICE_HANDLER( k056832_long_w );
-WRITE32_DEVICE_HANDLER( k056832_b_long_w );
+DECLARE_READ32_DEVICE_HANDLER( k056832_ram_long_r );
+DECLARE_READ32_DEVICE_HANDLER( k056832_rom_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k056832_ram_long_w );
+DECLARE_READ32_DEVICE_HANDLER( k056832_unpaged_ram_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k056832_unpaged_ram_long_w );
+DECLARE_WRITE32_DEVICE_HANDLER( k056832_long_w );
+DECLARE_WRITE32_DEVICE_HANDLER( k056832_b_long_w );
/* bit depths for the 56832 */
#define K056832_BPP_4 0
@@ -1023,8 +1023,8 @@ WRITE32_DEVICE_HANDLER( k056832_b_long_w );
/** Konami 055555 **/
void k055555_write_reg(device_t *device, UINT8 regnum, UINT8 regdat);
-WRITE16_DEVICE_HANDLER( k055555_word_w );
-WRITE32_DEVICE_HANDLER( k055555_long_w );
+DECLARE_WRITE16_DEVICE_HANDLER( k055555_word_w );
+DECLARE_WRITE32_DEVICE_HANDLER( k055555_long_w );
int k055555_read_register(device_t *device, int regnum);
int k055555_get_palette_index(device_t *device, int idx);
@@ -1098,8 +1098,8 @@ int k055555_get_palette_index(device_t *device, int idx);
/** Konami 054338 **/
/* mixer/alpha blender */
-WRITE16_DEVICE_HANDLER( k054338_word_w ); // "CLCT" registers
-WRITE32_DEVICE_HANDLER( k054338_long_w );
+DECLARE_WRITE16_DEVICE_HANDLER( k054338_word_w ); // "CLCT" registers
+DECLARE_WRITE32_DEVICE_HANDLER( k054338_long_w );
int k054338_register_r(device_t *device, int reg);
void k054338_update_all_shadows(device_t *device, int rushingheroes_hack); // called at the beginning of SCREEN_UPDATE()
void k054338_fill_solid_bg(device_t *device, bitmap_ind16 &bitmap); // solid backcolor fill
@@ -1126,8 +1126,8 @@ void k054338_invert_alpha(device_t *device, int invert); // 0=0x00(invis)
/** Konami 001006 **/
UINT32 k001006_get_palette(device_t *device, int index);
-READ32_DEVICE_HANDLER( k001006_r );
-WRITE32_DEVICE_HANDLER( k001006_w );
+DECLARE_READ32_DEVICE_HANDLER( k001006_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k001006_w );
/** Konami 001005 **/
@@ -1135,46 +1135,46 @@ void k001005_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &clipr
void k001005_swap_buffers(device_t *device);
void k001005_preprocess_texture_data(UINT8 *rom, int length, int gticlub);
-READ32_DEVICE_HANDLER( k001005_r );
-WRITE32_DEVICE_HANDLER( k001005_w );
+DECLARE_READ32_DEVICE_HANDLER( k001005_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k001005_w );
/** Konami 001604 **/
void k001604_draw_back_layer( device_t *device, bitmap_rgb32 &bitmap, const rectangle &cliprect );
void k001604_draw_front_layer( device_t *device, bitmap_rgb32 &bitmap, const rectangle &cliprect );
-WRITE32_DEVICE_HANDLER( k001604_tile_w );
-READ32_DEVICE_HANDLER( k001604_tile_r );
-WRITE32_DEVICE_HANDLER( k001604_char_w );
-READ32_DEVICE_HANDLER( k001604_char_r );
-WRITE32_DEVICE_HANDLER( k001604_reg_w );
-READ32_DEVICE_HANDLER( k001604_reg_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k001604_tile_w );
+DECLARE_READ32_DEVICE_HANDLER( k001604_tile_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k001604_char_w );
+DECLARE_READ32_DEVICE_HANDLER( k001604_char_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k001604_reg_w );
+DECLARE_READ32_DEVICE_HANDLER( k001604_reg_r );
/** Konami 037122 **/
void k037122_tile_draw( device_t *device, bitmap_rgb32 &bitmap, const rectangle &cliprect );
-READ32_DEVICE_HANDLER( k037122_sram_r );
-WRITE32_DEVICE_HANDLER( k037122_sram_w );
-READ32_DEVICE_HANDLER( k037122_char_r );
-WRITE32_DEVICE_HANDLER( k037122_char_w );
-READ32_DEVICE_HANDLER( k037122_reg_r );
-WRITE32_DEVICE_HANDLER( k037122_reg_w );
+DECLARE_READ32_DEVICE_HANDLER( k037122_sram_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k037122_sram_w );
+DECLARE_READ32_DEVICE_HANDLER( k037122_char_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k037122_char_w );
+DECLARE_READ32_DEVICE_HANDLER( k037122_reg_r );
+DECLARE_WRITE32_DEVICE_HANDLER( k037122_reg_w );
#define K056832_DRAW_FLAG_MIRROR 0x00800000
// debug handlers
-READ16_DEVICE_HANDLER( k056832_word_r ); // VACSET
-READ16_DEVICE_HANDLER( k056832_b_word_r ); // VSCCS (board dependent)
-READ16_DEVICE_HANDLER( k053246_reg_word_r ); // OBJSET1
-READ16_DEVICE_HANDLER( k053247_reg_word_r ); // OBJSET2
-READ16_DEVICE_HANDLER( k053251_lsb_r ); // PCU1
-READ16_DEVICE_HANDLER( k053251_msb_r ); // PCU1
-READ16_DEVICE_HANDLER( k055555_word_r ); // PCU2
-READ16_DEVICE_HANDLER( k054338_word_r ); // CLTC
-
-READ32_DEVICE_HANDLER( k056832_long_r ); // VACSET
-READ32_DEVICE_HANDLER( k053247_reg_long_r ); // OBJSET2
-READ32_DEVICE_HANDLER( k055555_long_r ); // PCU2
-
-READ16_DEVICE_HANDLER( k053244_reg_word_r ); // OBJSET0
+DECLARE_READ16_DEVICE_HANDLER( k056832_word_r ); // VACSET
+DECLARE_READ16_DEVICE_HANDLER( k056832_b_word_r ); // VSCCS (board dependent)
+DECLARE_READ16_DEVICE_HANDLER( k053246_reg_word_r ); // OBJSET1
+DECLARE_READ16_DEVICE_HANDLER( k053247_reg_word_r ); // OBJSET2
+DECLARE_READ16_DEVICE_HANDLER( k053251_lsb_r ); // PCU1
+DECLARE_READ16_DEVICE_HANDLER( k053251_msb_r ); // PCU1
+DECLARE_READ16_DEVICE_HANDLER( k055555_word_r ); // PCU2
+DECLARE_READ16_DEVICE_HANDLER( k054338_word_r ); // CLTC
+
+DECLARE_READ32_DEVICE_HANDLER( k056832_long_r ); // VACSET
+DECLARE_READ32_DEVICE_HANDLER( k053247_reg_long_r ); // OBJSET2
+DECLARE_READ32_DEVICE_HANDLER( k055555_long_r ); // PCU2
+
+DECLARE_READ16_DEVICE_HANDLER( k053244_reg_word_r ); // OBJSET0
#endif
diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c
index ccbba100293..1b1c3857f5b 100644
--- a/src/mame/video/labyrunr.c
+++ b/src/mame/video/labyrunr.c
@@ -66,10 +66,10 @@ static void set_pens( running_machine &machine )
TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0)
{
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, generic_space(), 6);
int attr = m_videoram1[tile_index];
int code = m_videoram1[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03;
@@ -95,10 +95,10 @@ TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0)
TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1)
{
- UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3);
- UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4);
- UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5);
- UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6);
+ UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, generic_space(), 3);
+ UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, generic_space(), 4);
+ UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, generic_space(), 5);
+ UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, generic_space(), 6);
int attr = m_videoram2[tile_index];
int code = m_videoram2[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03;
@@ -179,7 +179,8 @@ WRITE8_MEMBER(labyrunr_state::labyrunr_vram2_w)
SCREEN_UPDATE_IND16( labyrunr )
{
labyrunr_state *state = screen.machine().driver_data<labyrunr_state>();
- UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, 0);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, space, 0);
rectangle finalclip0, finalclip1;
set_pens(screen.machine());
@@ -187,7 +188,7 @@ SCREEN_UPDATE_IND16( labyrunr )
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (~k007121_ctrlram_r(state->m_k007121, 3) & 0x20)
+ if (~k007121_ctrlram_r(state->m_k007121, space, 3) & 0x20)
{
int i;
@@ -203,14 +204,14 @@ SCREEN_UPDATE_IND16( labyrunr )
for(i = 0; i < 32; i++)
{
/* enable colscroll */
- if((k007121_ctrlram_r(state->m_k007121, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
- state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, 2) + state->m_scrollram[i]);
+ if((k007121_ctrlram_r(state->m_k007121, space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
+ state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2) + state->m_scrollram[i]);
else
- state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, 2));
+ state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2));
}
state->m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0);
- k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram,(k007121_ctrlram_r(state->m_k007121, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(state->m_k007121, 3) & 0x40) >> 5);
+ k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram,(k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5);
/* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */
state->m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
}
@@ -223,7 +224,7 @@ SCREEN_UPDATE_IND16( labyrunr )
finalclip0.min_y = finalclip1.min_y = cliprect.min_y;
finalclip0.max_y = finalclip1.max_y = cliprect.max_y;
- if(k007121_ctrlram_r(state->m_k007121, 1) & 1)
+ if(k007121_ctrlram_r(state->m_k007121, space, 1) & 1)
{
finalclip0.min_x = cliprect.max_x - ctrl_0 + 8;
finalclip0.max_x = cliprect.max_x;
@@ -280,7 +281,7 @@ SCREEN_UPDATE_IND16( labyrunr )
if(use_clip3[1])
state->m_layer1->draw(bitmap, finalclip3, 0, 1);
- k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, (k007121_ctrlram_r(state->m_k007121, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(state->m_k007121, 3) & 0x40) >> 5);
+ k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, (k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5);
}
return 0;
}
diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c
index ea4f752bb1a..1972b73a2da 100644
--- a/src/mame/video/naughtyb.c
+++ b/src/mame/video/naughtyb.c
@@ -113,7 +113,7 @@ void naughtyb_state::video_start()
WRITE8_MEMBER(naughtyb_state::naughtyb_videoreg_w)
{
// bits 4+5 control the sound circuit
- pleiads_sound_control_c_w(machine().device("cust"),offset,data);
+ pleiads_sound_control_c_w(machine().device("cust"),space,offset,data);
m_cocktail =
( ( ioport("DSW0")->read() & 0x80 ) && // cabinet == cocktail
@@ -125,7 +125,7 @@ WRITE8_MEMBER(naughtyb_state::naughtyb_videoreg_w)
WRITE8_MEMBER(naughtyb_state::popflame_videoreg_w)
{
// bits 4+5 control the sound circuit
- pleiads_sound_control_c_w(machine().device("cust"),offset,data);
+ pleiads_sound_control_c_w(machine().device("cust"),space,offset,data);
m_cocktail =
( ( ioport("DSW0")->read() & 0x80 ) && // cabinet == cocktail
diff --git a/src/mame/video/phoenix.c b/src/mame/video/phoenix.c
index 5420043ba6f..ceb03d8d893 100644
--- a/src/mame/video/phoenix.c
+++ b/src/mame/video/phoenix.c
@@ -294,7 +294,7 @@ WRITE8_MEMBER(phoenix_state::pleiads_videoreg_w)
m_pleiads_protection_question = data & 0xfc;
/* send two bits to sound control C (not sure if they are there) */
- pleiads_sound_control_c_w(machine().device("cust"), offset, data);
+ pleiads_sound_control_c_w(machine().device("cust"), space, offset, data);
}
diff --git a/src/mame/video/pktgaldx.c b/src/mame/video/pktgaldx.c
index ad2a80ff1c8..3ed5d1f8c64 100644
--- a/src/mame/video/pktgaldx.c
+++ b/src/mame/video/pktgaldx.c
@@ -8,7 +8,8 @@
SCREEN_UPDATE_IND16( pktgaldx )
{
pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
diff --git a/src/mame/video/rohga.c b/src/mame/video/rohga.c
index 5b070d03489..63e75ac7651 100644
--- a/src/mame/video/rohga.c
+++ b/src/mame/video/rohga.c
@@ -64,8 +64,9 @@ UINT16 rohga_col_callback(UINT16 x)
SCREEN_UPDATE_IND16( rohga )
{
rohga_state *state = screen.machine().driver_data<rohga_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
/* Update playfields */
state->flip_screen_set(BIT(flip, 7));
@@ -167,8 +168,9 @@ static void mixwizdfirelayer(running_machine &machine, bitmap_rgb32 &bitmap, con
SCREEN_UPDATE_RGB32( wizdfire )
{
rohga_state *state = screen.machine().driver_data<rohga_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
/* draw sprite gfx to temp bitmaps */
screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
@@ -203,7 +205,8 @@ SCREEN_UPDATE_RGB32( wizdfire )
SCREEN_UPDATE_RGB32( nitrobal )
{
rohga_state *state = screen.machine().driver_data<rohga_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
/* draw sprite gfx to temp bitmaps */
screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true);
diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h
index fcb3a47bb65..ecd2f9fe670 100644
--- a/src/mame/video/seta001.h
+++ b/src/mame/video/seta001.h
@@ -57,25 +57,25 @@ private:
};
-WRITE8_DEVICE_HANDLER( spritebgflag_w8 );
+DECLARE_WRITE8_DEVICE_HANDLER( spritebgflag_w8 );
-READ16_DEVICE_HANDLER( spritectrl_r16 );
-WRITE16_DEVICE_HANDLER( spritectrl_w16 );
-READ8_DEVICE_HANDLER( spritectrl_r8 );
-WRITE8_DEVICE_HANDLER( spritectrl_w8 );
+DECLARE_READ16_DEVICE_HANDLER( spritectrl_r16 );
+DECLARE_WRITE16_DEVICE_HANDLER( spritectrl_w16 );
+DECLARE_READ8_DEVICE_HANDLER( spritectrl_r8 );
+DECLARE_WRITE8_DEVICE_HANDLER( spritectrl_w8 );
-READ16_DEVICE_HANDLER( spriteylow_r16 );
-WRITE16_DEVICE_HANDLER( spriteylow_w16 );
-READ8_DEVICE_HANDLER( spriteylow_r8 );
-WRITE8_DEVICE_HANDLER( spriteylow_w8 );
+DECLARE_READ16_DEVICE_HANDLER( spriteylow_r16 );
+DECLARE_WRITE16_DEVICE_HANDLER( spriteylow_w16 );
+DECLARE_READ8_DEVICE_HANDLER( spriteylow_r8 );
+DECLARE_WRITE8_DEVICE_HANDLER( spriteylow_w8 );
-READ8_DEVICE_HANDLER( spritecodelow_r8 );
-WRITE8_DEVICE_HANDLER( spritecodelow_w8 );
-READ8_DEVICE_HANDLER( spritecodehigh_r8 );
-WRITE8_DEVICE_HANDLER( spritecodehigh_w8 );
-READ16_DEVICE_HANDLER( spritecode_r16 );
-WRITE16_DEVICE_HANDLER( spritecode_w16 );
+DECLARE_READ8_DEVICE_HANDLER( spritecodelow_r8 );
+DECLARE_WRITE8_DEVICE_HANDLER( spritecodelow_w8 );
+DECLARE_READ8_DEVICE_HANDLER( spritecodehigh_r8 );
+DECLARE_WRITE8_DEVICE_HANDLER( spritecodehigh_w8 );
+DECLARE_READ16_DEVICE_HANDLER( spritecode_r16 );
+DECLARE_WRITE16_DEVICE_HANDLER( spritecode_w16 );
extern const device_type SETA001_SPRITE;
diff --git a/src/mame/video/simpsons.c b/src/mame/video/simpsons.c
index b99ba02d8e9..e5818fdc73d 100644
--- a/src/mame/video/simpsons.c
+++ b/src/mame/video/simpsons.c
@@ -48,12 +48,12 @@ void simpsons_sprite_callback( running_machine &machine, int *code, int *color,
READ8_MEMBER(simpsons_state::simpsons_k052109_r)
{
- return k052109_r(m_k052109, offset + 0x2000);
+ return k052109_r(m_k052109, space, offset + 0x2000);
}
WRITE8_MEMBER(simpsons_state::simpsons_k052109_w)
{
- k052109_w(m_k052109, offset + 0x2000, data);
+ k052109_w(m_k052109, space, offset + 0x2000, data);
}
READ8_MEMBER(simpsons_state::simpsons_k053247_r)
diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c
index caed892a563..9844c7d3733 100644
--- a/src/mame/video/skydiver.c
+++ b/src/mame/video/skydiver.c
@@ -144,13 +144,13 @@ WRITE8_MEMBER(skydiver_state::skydiver_2000_201F_w)
output_set_value("lampr", bit);
break;
case (0x0a):
- discrete_sound_w(discrete, SKYDIVER_OCT1_EN, bit);
+ discrete_sound_w(discrete, space, SKYDIVER_OCT1_EN, bit);
break;
case (0x0c):
- discrete_sound_w(discrete, SKYDIVER_OCT2_EN, bit);
+ discrete_sound_w(discrete, space, SKYDIVER_OCT2_EN, bit);
break;
case (0x0e):
- discrete_sound_w(discrete, SKYDIVER_NOISE_RST, bit);
+ discrete_sound_w(discrete, space, SKYDIVER_NOISE_RST, bit);
break;
}
}
diff --git a/src/mame/video/slapshot.c b/src/mame/video/slapshot.c
index e87e3342222..a13269b99af 100644
--- a/src/mame/video/slapshot.c
+++ b/src/mame/video/slapshot.c
@@ -460,6 +460,7 @@ a bg layer given priority over some sprites.
SCREEN_UPDATE_IND16( slapshot )
{
slapshot_state *state = screen.machine().driver_data<slapshot_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5];
UINT8 tilepri[5];
UINT8 spritepri[4];
@@ -509,18 +510,18 @@ SCREEN_UPDATE_IND16( slapshot )
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
layer[4] = 4; /* text layer always over bg layers */
- tilepri[0] = tc0360pri_r(state->m_tc0360pri, 4) & 0x0f; /* bg0 */
- tilepri[1] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; /* bg1 */
- tilepri[2] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; /* bg2 */
- tilepri[3] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; /* bg3 */
+ tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg0 */
+ tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg1 */
+ tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg2 */
+ tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg3 */
/* we actually assume text layer is on top of everything anyway, but FWIW... */
- tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f; /* fg (text layer) */
+ tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; /* fg (text layer) */
- spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f;
- spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4;
- spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f;
- spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4;
+ spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
+ spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
+ spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
+ spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c
index 20f9611c712..fe9d98a8999 100644
--- a/src/mame/video/sprint4.c
+++ b/src/mame/video/sprint4.c
@@ -139,10 +139,11 @@ SCREEN_VBLANK( sprint4 )
/* update sound status */
- discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15);
- discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15);
- discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15);
- discrete_sound_w(discrete, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_1, videoram[0x391] & 15);
+ discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_2, videoram[0x393] & 15);
+ discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_3, videoram[0x395] & 15);
+ discrete_sound_w(discrete, space, SPRINT4_MOTOR_DATA_4, videoram[0x397] & 15);
}
}
diff --git a/src/mame/video/subs.c b/src/mame/video/subs.c
index e1271f3e428..37b37f657cf 100644
--- a/src/mame/video/subs.c
+++ b/src/mame/video/subs.c
@@ -114,8 +114,9 @@ SCREEN_UPDATE_IND16( subs_left )
}
/* Update sound */
- discrete_sound_w(discrete, SUBS_LAUNCH_DATA, spriteram[5] & 0x0f); // Launch data
- discrete_sound_w(discrete, SUBS_CRASH_DATA, spriteram[5] >> 4); // Crash/explode data
+ address_space &space = screen.machine().driver_data()->generic_space();
+ discrete_sound_w(discrete, space, SUBS_LAUNCH_DATA, spriteram[5] & 0x0f); // Launch data
+ discrete_sound_w(discrete, space, SUBS_CRASH_DATA, spriteram[5] >> 4); // Crash/explode data
return 0;
}
diff --git a/src/mame/video/supbtime.c b/src/mame/video/supbtime.c
index 7ca2d330970..ce425717ca3 100644
--- a/src/mame/video/supbtime.c
+++ b/src/mame/video/supbtime.c
@@ -24,7 +24,8 @@ End sequence uses rowscroll '98 c0' on pf1 (jmp to 1d61a on supbtimj)
SCREEN_UPDATE_IND16(supbtime)
{
supbtime_state *state = screen.machine().driver_data<supbtime_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c
index c42aae5a6ff..a053ae0fca5 100644
--- a/src/mame/video/taito_b.c
+++ b/src/mame/video/taito_b.c
@@ -264,8 +264,9 @@ static void draw_framebuffer( running_machine &machine, bitmap_ind16 &bitmap, co
taitob_state *state = machine.driver_data<taitob_state>();
rectangle myclip = cliprect;
int x, y;
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0);
- UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, 0);
+ address_space &space = machine.driver_data()->generic_space();
+ UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
+ UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, space, 0);
g_profiler.start(PROFILER_USER1);
@@ -367,7 +368,8 @@ g_profiler.stop();
SCREEN_UPDATE_IND16( taitob )
{
taitob_state *state = screen.machine().driver_data<taitob_state>();
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
if ((video_control & 0x20) == 0)
{
@@ -403,8 +405,9 @@ SCREEN_UPDATE_IND16( taitob )
SCREEN_UPDATE_RGB32( realpunc )
{
taitob_state *state = screen.machine().driver_data<taitob_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette);
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0);
+ UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
int x, y;
/* Video blanked? */
@@ -434,8 +437,8 @@ SCREEN_UPDATE_RGB32( realpunc )
{
device_t *hd63484 = screen.machine().device("hd63484");
- int base = (hd63484_regs_r(hd63484, 0xcc/2, 0xffff) << 16) + hd63484_regs_r(hd63484, 0xce/2, 0xffff);
- int stride = hd63484_regs_r(hd63484, 0xca/2, 0xffff);
+ int base = (hd63484_regs_r(hd63484, space, 0xcc/2, 0xffff) << 16) + hd63484_regs_r(hd63484, space, 0xce/2, 0xffff);
+ int stride = hd63484_regs_r(hd63484, space, 0xca/2, 0xffff);
// scrollx = taitob_scroll[0];
// scrolly = taitob_scroll[1];
@@ -446,7 +449,7 @@ SCREEN_UPDATE_RGB32( realpunc )
for (x = 0; x <= cliprect.max_x; x++)
{
int r, g, b;
- UINT16 srcpix = hd63484_ram_r(hd63484, addr++, 0xffff);
+ UINT16 srcpix = hd63484_ram_r(hd63484, space, addr++, 0xffff);
r = (BIT(srcpix, 1)) | ((srcpix >> 11) & 0x1e);
g = (BIT(srcpix, 2)) | ((srcpix >> 7) & 0x1e);
@@ -498,8 +501,9 @@ SCREEN_VBLANK( taitob )
if (vblank_on)
{
taitob_state *state = screen.machine().driver_data<taitob_state>();
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, 0);
- UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, 0);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
+ UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, space, 0);
if (~video_control & 0x01)
state->m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area());
@@ -507,7 +511,7 @@ SCREEN_VBLANK( taitob )
if (~video_control & 0x80)
{
framebuffer_page ^= 1;
- tc0180vcu_set_fb_page(state->m_tc0180vcu, 0, framebuffer_page);
+ tc0180vcu_set_fb_page(state->m_tc0180vcu, space, 0, framebuffer_page);
}
draw_sprites(screen.machine(), *state->m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area());
diff --git a/src/mame/video/taito_f2.c b/src/mame/video/taito_f2.c
index 75f4e41f02e..cbb3e71b7cc 100644
--- a/src/mame/video/taito_f2.c
+++ b/src/mame/video/taito_f2.c
@@ -1039,6 +1039,7 @@ SCREEN_UPDATE_IND16( taitof2 )
SCREEN_UPDATE_IND16( taitof2_pri )
{
taitof2_state *state = screen.machine().driver_data<taitof2_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
int layer[3];
taitof2_handle_sprite_buffering(screen.machine());
@@ -1048,16 +1049,16 @@ SCREEN_UPDATE_IND16( taitof2_pri )
layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
- state->m_tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f;
- state->m_tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4;
- state->m_tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4;
+ state->m_tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
+ state->m_tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
+ state->m_tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
- state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f;
- state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4;
- state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f;
- state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4;
+ state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
+ state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
+ state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
+ state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
- state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, 0) & 0xc0;
+ state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
@@ -1086,12 +1087,13 @@ static void draw_roz_layer( running_machine &machine, bitmap_ind16 &bitmap, cons
SCREEN_UPDATE_IND16( taitof2_pri_roz )
{
taitof2_state *state = screen.machine().driver_data<taitof2_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
int tilepri[3];
int rozpri;
int layer[3];
int drawn;
int i,j;
- int roz_base_color = (tc0360pri_r(state->m_tc0360pri, 1) & 0x3f) << 2;
+ int roz_base_color = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0x3f) << 2;
taitof2_handle_sprite_buffering(screen.machine());
@@ -1103,23 +1105,23 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz )
tc0100scn_tilemap_update(state->m_tc0100scn);
- rozpri = (tc0360pri_r(state->m_tc0360pri, 1) & 0xc0) >> 6;
- rozpri = (tc0360pri_r(state->m_tc0360pri, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f;
+ rozpri = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0xc0) >> 6;
+ rozpri = (tc0360pri_r(state->m_tc0360pri, space, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f;
layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
- tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f;
- tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4;
- tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4;
+ tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
+ tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
+ tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
- state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f;
- state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4;
- state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f;
- state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4;
+ state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
+ state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
+ state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
+ state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
- state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, 0) & 0xc0;
+ state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
@@ -1155,6 +1157,7 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz )
SCREEN_UPDATE_IND16( taitof2_thundfox )
{
taitof2_state *state = screen.machine().driver_data<taitof2_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
int tilepri[2][3];
int spritepri[4];
int layer[2][3];
@@ -1168,21 +1171,21 @@ SCREEN_UPDATE_IND16( taitof2_thundfox )
layer[0][0] = tc0100scn_bottomlayer(state->m_tc0100scn_1);
layer[0][1] = layer[0][0] ^ 1;
layer[0][2] = 2;
- tilepri[0][layer[0][0]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f;
- tilepri[0][layer[0][1]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4;
- tilepri[0][layer[0][2]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4;
+ tilepri[0][layer[0][0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
+ tilepri[0][layer[0][1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
+ tilepri[0][layer[0][2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
layer[1][0] = tc0100scn_bottomlayer(state->m_tc0100scn_2);
layer[1][1] = layer[1][0] ^ 1;
layer[1][2] = 2;
- tilepri[1][layer[1][0]] = tc0360pri_r(state->m_tc0360pri, 9) & 0x0f;
- tilepri[1][layer[1][1]] = tc0360pri_r(state->m_tc0360pri, 9) >> 4;
- tilepri[1][layer[1][2]] = tc0360pri_r(state->m_tc0360pri, 8) >> 4;
+ tilepri[1][layer[1][0]] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f;
+ tilepri[1][layer[1][1]] = tc0360pri_r(state->m_tc0360pri, space, 9) >> 4;
+ tilepri[1][layer[1][2]] = tc0360pri_r(state->m_tc0360pri, space, 8) >> 4;
- spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f;
- spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4;
- spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f;
- spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4;
+ spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
+ spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
+ spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
+ spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
@@ -1292,6 +1295,7 @@ and it changes these (and the sprite pri settings) a lot.
SCREEN_UPDATE_IND16( taitof2_metalb )
{
taitof2_state *state = screen.machine().driver_data<taitof2_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5], invlayer[4];
UINT16 priority;
@@ -1312,18 +1316,18 @@ SCREEN_UPDATE_IND16( taitof2_metalb )
invlayer[layer[2]] = 2;
invlayer[layer[3]] = 3;
- state->m_tilepri[invlayer[0]] = tc0360pri_r(state->m_tc0360pri, 4) & 0x0f; /* bg0 */
- state->m_tilepri[invlayer[1]] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; /* bg1 */
- state->m_tilepri[invlayer[2]] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; /* bg2 */
- state->m_tilepri[invlayer[3]] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; /* bg3 */
- state->m_tilepri[4] = tc0360pri_r(state->m_tc0360pri, 9) & 0x0f; /* fg (text layer) */
+ state->m_tilepri[invlayer[0]] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg0 */
+ state->m_tilepri[invlayer[1]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg1 */
+ state->m_tilepri[invlayer[2]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg2 */
+ state->m_tilepri[invlayer[3]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg3 */
+ state->m_tilepri[4] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f; /* fg (text layer) */
- state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f;
- state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4;
- state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f;
- state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4;
+ state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
+ state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
+ state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
+ state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
- state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, 0) & 0xc0;
+ state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
@@ -1343,6 +1347,7 @@ SCREEN_UPDATE_IND16( taitof2_metalb )
SCREEN_UPDATE_IND16( taitof2_deadconx )
{
taitof2_state *state = screen.machine().driver_data<taitof2_state>();
+ address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5];
UINT8 tilepri[5];
UINT8 spritepri[4];
@@ -1360,18 +1365,18 @@ SCREEN_UPDATE_IND16( taitof2_deadconx )
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
layer[4] = 4; /* text layer always over bg layers */
- tilepri[0] = tc0360pri_r(state->m_tc0360pri, 4) >> 4; /* bg0 */
- tilepri[1] = tc0360pri_r(state->m_tc0360pri, 5) & 0x0f; /* bg1 */
- tilepri[2] = tc0360pri_r(state->m_tc0360pri, 5) >> 4; /* bg2 */
- tilepri[3] = tc0360pri_r(state->m_tc0360pri, 4) & 0x0f; /* bg3 */
+ tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg0 */
+ tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg1 */
+ tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg2 */
+ tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg3 */
/* we actually assume text layer is on top of everything anyway, but FWIW... */
- tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, 7) >> 4; /* fg (text layer) */
+ tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; /* fg (text layer) */
- spritepri[0] = tc0360pri_r(state->m_tc0360pri, 6) & 0x0f;
- spritepri[1] = tc0360pri_r(state->m_tc0360pri, 6) >> 4;
- spritepri[2] = tc0360pri_r(state->m_tc0360pri, 7) & 0x0f;
- spritepri[3] = tc0360pri_r(state->m_tc0360pri, 7) >> 4;
+ spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
+ spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
+ spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
+ spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
diff --git a/src/mame/video/taito_h.c b/src/mame/video/taito_h.c
index b9cef286dda..5473cad3212 100644
--- a/src/mame/video/taito_h.c
+++ b/src/mame/video/taito_h.c
@@ -76,6 +76,7 @@ static void syvalion_draw_sprites( running_machine &machine,bitmap_ind16 &bitmap
is always 64 pixels. */
taitoh_state *state = machine.driver_data<taitoh_state>();
+ address_space &space = machine.driver_data()->generic_space();
static const int size[] = { 1, 2, 4, 4 };
int x0, y0, x, y, dx, ex, zx;
int ysize;
@@ -86,11 +87,11 @@ static void syvalion_draw_sprites( running_machine &machine,bitmap_ind16 &bitmap
for (offs = 0x03f8 / 2; offs >= 0; offs -= 0x008 / 2)
{
- x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff;
- y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff;
- zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8;
- tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2;
- ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10];
+ x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff;
+ y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff;
+ zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8;
+ tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2;
+ ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10];
if (tile_offs)
{
@@ -134,10 +135,10 @@ static void syvalion_draw_sprites( running_machine &machine,bitmap_ind16 &bitmap
{
int tile, color, flipx, flipy;
- tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff;
- color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f;
- flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040;
- flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080;
+ tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff;
+ color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f;
+ flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040;
+ flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080;
if (tc0080vco_flipscreen_r(state->m_tc0080vco))
{
@@ -169,6 +170,7 @@ static void recordbr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
is always 64 pixels. */
taitoh_state *state = machine.driver_data<taitoh_state>();
+ address_space &space = machine.driver_data()->generic_space();
static const int size[] = { 1, 2, 4, 4 };
int x0, y0, x, y, dx, dy, ex, ey, zx, zy;
int ysize;
@@ -182,12 +184,12 @@ static void recordbr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
if (offs < 0x01b0 && priority == 0) continue;
if (offs >= 0x01b0 && priority == 1) continue;
- x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff;
- y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff;
- zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8;
- zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x007f);
- tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2;
- ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10];
+ x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff;
+ y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff;
+ zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8;
+ zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x007f);
+ tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2;
+ ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10];
if (tile_offs)
{
@@ -246,10 +248,10 @@ static void recordbr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
{
int tile, color, flipx, flipy;
- tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff;
- color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f;
- flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040;
- flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080;
+ tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff;
+ color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f;
+ flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040;
+ flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080;
if (tc0080vco_flipscreen_r(state->m_tc0080vco))
{
@@ -281,6 +283,7 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
is always 64 pixels. */
taitoh_state *state = machine.driver_data<taitoh_state>();
+ address_space &space = machine.driver_data()->generic_space();
static const int size[] = { 1, 2, 4, 4 };
int x0, y0, x, y, dx, ex, zx;
int ysize;
@@ -292,12 +295,12 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
for (offs = 0x03f8 / 2; offs >= 0; offs -= 0x008 / 2)
{
- x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff;
- y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff;
- zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8;
- tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2;
- pribit = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x1000) >> 12;
- ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10];
+ x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff;
+ y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff;
+ zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8;
+ tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2;
+ pribit = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x1000) >> 12;
+ ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10];
if (tile_offs)
{
@@ -317,7 +320,7 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
zx = (dx + ex) << 12;
}
- if (tc0080vco_scrram_r(state->m_tc0080vco, 0x0002, 0xffff) & 0x8000)
+ if (tc0080vco_scrram_r(state->m_tc0080vco, space, 0x0002, 0xffff) & 0x8000)
pribit = 1;
if (x0 >= 0x200) x0 -= 0x400;
@@ -347,10 +350,10 @@ static void dleague_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
{
int tile, color, flipx, flipy;
- tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff;
- color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f;
- flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040;
- flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080;
+ tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff;
+ color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f;
+ flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040;
+ flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080;
if (tc0080vco_flipscreen_r(state->m_tc0080vco))
diff --git a/src/mame/video/taito_o.c b/src/mame/video/taito_o.c
index d20946f3879..6ccc626faa5 100644
--- a/src/mame/video/taito_o.c
+++ b/src/mame/video/taito_o.c
@@ -31,6 +31,7 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
is always 64 pixels. */
taitoo_state *state = machine.driver_data<taitoo_state>();
+ address_space &space = machine.driver_data()->generic_space();
static const int size[] = { 1, 2, 4, 4 };
int x0, y0, x, y, dx, dy, ex, ey, zx, zy;
int ysize;
@@ -44,12 +45,12 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
if (offs < 0x01b0 && priority == 0) continue;
if (offs >= 0x01b0 && priority == 1) continue;
- x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff;
- y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff;
- zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8;
- zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x007f);
- tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2;
- ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10];
+ x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff;
+ y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff;
+ zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8;
+ zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x007f);
+ tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2;
+ ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10];
if (tile_offs)
{
@@ -108,10 +109,10 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
{
int tile, color, flipx, flipy;
- tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff;
- color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f;
- flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040;
- flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080;
+ tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff;
+ color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f;
+ flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040;
+ flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080;
if (tc0080vco_flipscreen_r(state->m_tc0080vco))
{
diff --git a/src/mame/video/taitoair.c b/src/mame/video/taitoair.c
index 16c21d3f3a1..a9f1671da0f 100644
--- a/src/mame/video/taitoair.c
+++ b/src/mame/video/taitoair.c
@@ -75,6 +75,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
is always 64 pixels. */
taitoair_state *state = machine.driver_data<taitoair_state>();
+ address_space &space = machine.driver_data()->generic_space();
static const int size[] = { 1, 2, 4, 4 };
int x0, y0, x, y, dx, dy, ex, ey, zx, zy;
int ysize;
@@ -89,12 +90,12 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
if (offs < 0x01b0 && priority == 0) continue;
if (offs >= 0x01b0 && priority == 1) continue;
- x0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 1, 0xffff) & 0x3ff;
- y0 = tc0080vco_sprram_r(state->m_tc0080vco, offs + 0, 0xffff) & 0x3ff;
- zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x7f00) >> 8;
- zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 2, 0xffff) & 0x007f);
- tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, offs + 3, 0xffff) & 0x1fff) << 2;
- ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, offs, 0xffff) & 0x0c00) >> 10];
+ x0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 1, 0xffff) & 0x3ff;
+ y0 = tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 0, 0xffff) & 0x3ff;
+ zoomx = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x7f00) >> 8;
+ zoomy = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 2, 0xffff) & 0x007f);
+ tile_offs = (tc0080vco_sprram_r(state->m_tc0080vco, space, offs + 3, 0xffff) & 0x1fff) << 2;
+ ysize = size[(tc0080vco_sprram_r(state->m_tc0080vco, space, offs, 0xffff) & 0x0c00) >> 10];
if (tile_offs)
{
@@ -153,10 +154,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
{
int tile, color, flipx, flipy;
- tile = tc0080vco_cram_0_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x7fff;
- color = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x001f;
- flipx = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0040;
- flipy = tc0080vco_cram_1_r(state->m_tc0080vco, tile_offs, 0xffff) & 0x0080;
+ tile = tc0080vco_cram_0_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x7fff;
+ color = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x001f;
+ flipx = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0040;
+ flipy = tc0080vco_cram_1_r(state->m_tc0080vco, space, tile_offs, 0xffff) & 0x0080;
if (tc0080vco_flipscreen_r(state->m_tc0080vco))
{
diff --git a/src/mame/video/taitoic.c b/src/mame/video/taitoic.c
index 01b837de4e5..8d8daca6f6e 100644
--- a/src/mame/video/taitoic.c
+++ b/src/mame/video/taitoic.c
@@ -1550,7 +1550,7 @@ WRITE16_DEVICE_HANDLER( tc0080vco_word_w )
else if (offset < 0x20800 / 2) /* sprite ram */
{}
else if (offset < 0x20fff / 2)
- tc0080vco_scrollram_w(device, offset - (0x20800 / 2), tc0080vco->ram[offset], mem_mask);
+ tc0080vco_scrollram_w(device, space, offset - (0x20800 / 2), tc0080vco->ram[offset], mem_mask);
}
void tc0080vco_tilemap_update( device_t *device )
@@ -2344,43 +2344,43 @@ WRITE16_DEVICE_HANDLER( tc0100scn_ctrl_word_w )
READ32_DEVICE_HANDLER( tc0100scn_ctrl_long_r )
{
- return (tc0100scn_ctrl_word_r(device, offset * 2, 0xffff) << 16) | tc0100scn_ctrl_word_r(device, offset * 2 + 1, 0xffff);
+ return (tc0100scn_ctrl_word_r(device, space, offset * 2, 0xffff) << 16) | tc0100scn_ctrl_word_r(device, space, offset * 2 + 1, 0xffff);
}
WRITE32_DEVICE_HANDLER( tc0100scn_ctrl_long_w )
{
if (ACCESSING_BITS_16_31)
- tc0100scn_ctrl_word_w(device, offset * 2, data >> 16, mem_mask >> 16);
+ tc0100scn_ctrl_word_w(device, space, offset * 2, data >> 16, mem_mask >> 16);
if (ACCESSING_BITS_0_15)
- tc0100scn_ctrl_word_w(device, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff);
+ tc0100scn_ctrl_word_w(device, space, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff);
}
READ32_DEVICE_HANDLER( tc0100scn_long_r )
{
- return (tc0100scn_word_r(device, offset * 2, 0xffff) << 16) | tc0100scn_word_r(device, offset * 2 + 1, 0xffff);
+ return (tc0100scn_word_r(device, space, offset * 2, 0xffff) << 16) | tc0100scn_word_r(device, space, offset * 2 + 1, 0xffff);
}
WRITE32_DEVICE_HANDLER( tc0100scn_long_w )
{
if (ACCESSING_BITS_16_31)
{
- int oldword = tc0100scn_word_r(device, offset * 2, 0xffff);
+ int oldword = tc0100scn_word_r(device, space, offset * 2, 0xffff);
int newword = data >> 16;
if (!ACCESSING_BITS_16_23)
newword |= (oldword & 0x00ff);
if (!ACCESSING_BITS_24_31)
newword |= (oldword & 0xff00);
- tc0100scn_word_w(device, offset * 2, newword, 0xffff);
+ tc0100scn_word_w(device, space, offset * 2, newword, 0xffff);
}
if (ACCESSING_BITS_0_15)
{
- int oldword = tc0100scn_word_r(device, (offset * 2) + 1, 0xffff);
+ int oldword = tc0100scn_word_r(device, space, (offset * 2) + 1, 0xffff);
int newword = data& 0xffff;
if (!ACCESSING_BITS_0_7)
newword |= (oldword & 0x00ff);
if (!ACCESSING_BITS_8_15)
newword |= (oldword & 0xff00);
- tc0100scn_word_w(device, (offset * 2) + 1, newword, 0xffff);
+ tc0100scn_word_w(device, space, (offset * 2) + 1, newword, 0xffff);
}
}
@@ -2699,17 +2699,17 @@ WRITE16_DEVICE_HANDLER( tc0280grd_ctrl_word_w )
READ16_DEVICE_HANDLER( tc0430grw_word_r )
{
- return tc0280grd_word_r(device, offset, mem_mask);
+ return tc0280grd_word_r(device, space, offset, mem_mask);
}
WRITE16_DEVICE_HANDLER( tc0430grw_word_w )
{
- tc0280grd_word_w(device, offset, data, mem_mask);
+ tc0280grd_word_w(device, space, offset, data, mem_mask);
}
WRITE16_DEVICE_HANDLER( tc0430grw_ctrl_word_w )
{
- tc0280grd_ctrl_word_w(device, offset, data, mem_mask);
+ tc0280grd_ctrl_word_w(device, space, offset, data, mem_mask);
}
void tc0280grd_tilemap_update( device_t *device, int base_color )
@@ -3276,7 +3276,7 @@ WRITE16_DEVICE_HANDLER( tc0480scp_ctrl_word_w )
READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r )
{
- return (tc0480scp_ctrl_word_r(device, offset * 2, 0xffff) << 16) | tc0480scp_ctrl_word_r(device, offset * 2 + 1, 0xffff);
+ return (tc0480scp_ctrl_word_r(device, space, offset * 2, 0xffff) << 16) | tc0480scp_ctrl_word_r(device, space, offset * 2 + 1, 0xffff);
}
/* TODO: byte access ? */
@@ -3284,37 +3284,37 @@ READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r )
WRITE32_DEVICE_HANDLER( tc0480scp_ctrl_long_w )
{
if (ACCESSING_BITS_16_31)
- tc0480scp_ctrl_word_w(device, offset * 2, data >> 16, mem_mask >> 16);
+ tc0480scp_ctrl_word_w(device, space, offset * 2, data >> 16, mem_mask >> 16);
if (ACCESSING_BITS_0_15)
- tc0480scp_ctrl_word_w(device, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff);
+ tc0480scp_ctrl_word_w(device, space, (offset * 2) + 1, data & 0xffff, mem_mask & 0xffff);
}
READ32_DEVICE_HANDLER( tc0480scp_long_r )
{
- return (tc0480scp_word_r(device, offset * 2, 0xffff) << 16) | tc0480scp_word_r(device, offset * 2 + 1, 0xffff);
+ return (tc0480scp_word_r(device, space, offset * 2, 0xffff) << 16) | tc0480scp_word_r(device, space, offset * 2 + 1, 0xffff);
}
WRITE32_DEVICE_HANDLER( tc0480scp_long_w )
{
if (ACCESSING_BITS_16_31)
{
- int oldword = tc0480scp_word_r(device, offset * 2, 0xffff);
+ int oldword = tc0480scp_word_r(device, space, offset * 2, 0xffff);
int newword = data >> 16;
if (!ACCESSING_BITS_16_23)
newword |= (oldword & 0x00ff);
if (!ACCESSING_BITS_24_31)
newword |= (oldword & 0xff00);
- tc0480scp_word_w(device, offset * 2, newword, 0xffff);
+ tc0480scp_word_w(device, space, offset * 2, newword, 0xffff);
}
if (ACCESSING_BITS_0_15)
{
- int oldword = tc0480scp_word_r(device, (offset * 2) + 1, 0xffff);
+ int oldword = tc0480scp_word_r(device, space, (offset * 2) + 1, 0xffff);
int newword = data & 0xffff;
if (!ACCESSING_BITS_0_7)
newword |= (oldword & 0x00ff);
if (!ACCESSING_BITS_8_15)
newword |= (oldword & 0xff00);
- tc0480scp_word_w(device, (offset * 2) + 1, newword, 0xffff);
+ tc0480scp_word_w(device, space, (offset * 2) + 1, newword, 0xffff);
}
}
diff --git a/src/mame/video/taitoic.h b/src/mame/video/taitoic.h
index dfa5377fa96..7950d17e12a 100644
--- a/src/mame/video/taitoic.h
+++ b/src/mame/video/taitoic.h
@@ -372,11 +372,11 @@ extern const device_type TC0180VCU;
***************************************************************************/
/** PC080SN **/
-READ16_DEVICE_HANDLER( pc080sn_word_r );
-WRITE16_DEVICE_HANDLER( pc080sn_word_w );
-WRITE16_DEVICE_HANDLER( pc080sn_xscroll_word_w );
-WRITE16_DEVICE_HANDLER( pc080sn_yscroll_word_w );
-WRITE16_DEVICE_HANDLER( pc080sn_ctrl_word_w );
+DECLARE_READ16_DEVICE_HANDLER( pc080sn_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_word_w );
+DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_xscroll_word_w );
+DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_yscroll_word_w );
+DECLARE_WRITE16_DEVICE_HANDLER( pc080sn_ctrl_word_w );
void pc080sn_set_scroll(device_t *device, int tilemap_num, int scrollx, int scrolly);
void pc080sn_set_trans_pen(device_t *device, int tilemap_num, int pen);
@@ -389,8 +389,8 @@ void pc080sn_tilemap_draw_special(device_t *device, bitmap_ind16 &bitmap, const
/** PC090OJ **/
-READ16_DEVICE_HANDLER( pc090oj_word_r );
-WRITE16_DEVICE_HANDLER( pc090oj_word_w );
+DECLARE_READ16_DEVICE_HANDLER( pc090oj_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( pc090oj_word_w );
void pc090oj_set_sprite_ctrl(device_t *device, UINT16 sprctrl);
void pc090oj_eof_callback(device_t *device);
@@ -398,16 +398,16 @@ void pc090oj_draw_sprites(device_t *device, bitmap_ind16 &bitmap, const rectangl
/** TC0080VCO **/
-READ16_DEVICE_HANDLER( tc0080vco_word_r );
-WRITE16_DEVICE_HANDLER( tc0080vco_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0080vco_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0080vco_word_w );
void tc0080vco_tilemap_update(device_t *device);
void tc0080vco_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority);
-READ16_DEVICE_HANDLER( tc0080vco_cram_0_r );
-READ16_DEVICE_HANDLER( tc0080vco_cram_1_r );
-READ16_DEVICE_HANDLER( tc0080vco_sprram_r );
-READ16_DEVICE_HANDLER( tc0080vco_scrram_r );
+DECLARE_READ16_DEVICE_HANDLER( tc0080vco_cram_0_r );
+DECLARE_READ16_DEVICE_HANDLER( tc0080vco_cram_1_r );
+DECLARE_READ16_DEVICE_HANDLER( tc0080vco_sprram_r );
+DECLARE_READ16_DEVICE_HANDLER( tc0080vco_scrram_r );
READ_LINE_DEVICE_HANDLER( tc0080vco_flipscreen_r );
@@ -426,18 +426,18 @@ void tc0100scn_set_colbank(device_t *device, int colbank);
void tc0100scn_set_bg_tilemask(device_t *device, int mask);
/* Function to for Mjnquest to select gfx bank */
-WRITE16_DEVICE_HANDLER( tc0100scn_gfxbank_w );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0100scn_gfxbank_w );
-READ16_DEVICE_HANDLER( tc0100scn_word_r );
-WRITE16_DEVICE_HANDLER( tc0100scn_word_w );
-READ16_DEVICE_HANDLER( tc0100scn_ctrl_word_r );
-WRITE16_DEVICE_HANDLER( tc0100scn_ctrl_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0100scn_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0100scn_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0100scn_ctrl_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0100scn_ctrl_word_w );
/* Functions for use with 68020 (Under Fire) */
-READ32_DEVICE_HANDLER( tc0100scn_long_r );
-WRITE32_DEVICE_HANDLER( tc0100scn_long_w );
-READ32_DEVICE_HANDLER( tc0100scn_ctrl_long_r );
-WRITE32_DEVICE_HANDLER( tc0100scn_ctrl_long_w );
+DECLARE_READ32_DEVICE_HANDLER( tc0100scn_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( tc0100scn_long_w );
+DECLARE_READ32_DEVICE_HANDLER( tc0100scn_ctrl_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( tc0100scn_ctrl_long_w );
void tc0100scn_tilemap_update(device_t *device);
int tc0100scn_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority);
@@ -448,22 +448,22 @@ int tc0100scn_bottomlayer(device_t *device);
/** TC0280GRD & TC0430GRW **/
-READ16_DEVICE_HANDLER( tc0280grd_word_r );
-WRITE16_DEVICE_HANDLER( tc0280grd_word_w );
-WRITE16_DEVICE_HANDLER( tc0280grd_ctrl_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0280grd_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0280grd_word_w );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0280grd_ctrl_word_w );
void tc0280grd_tilemap_update(device_t *device, int base_color);
void tc0280grd_zoom_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority);
-READ16_DEVICE_HANDLER( tc0430grw_word_r );
-WRITE16_DEVICE_HANDLER( tc0430grw_word_w );
-WRITE16_DEVICE_HANDLER( tc0430grw_ctrl_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0430grw_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0430grw_word_w );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0430grw_ctrl_word_w );
void tc0430grw_tilemap_update(device_t *device, int base_color);
void tc0430grw_zoom_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int xoffset, int yoffset, UINT32 priority);
/** TC0360PRI **/
-WRITE8_DEVICE_HANDLER( tc0360pri_w );
-READ8_DEVICE_HANDLER( tc0360pri_r );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0360pri_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0360pri_r );
/** TC0480SCP **/
@@ -471,16 +471,16 @@ READ8_DEVICE_HANDLER( tc0360pri_r );
then tweak them once you have the 4 bg layer positions correct. Col_base
may be needed when tilemaps use a palette area from sprites. */
-READ16_DEVICE_HANDLER( tc0480scp_word_r );
-WRITE16_DEVICE_HANDLER( tc0480scp_word_w );
-READ16_DEVICE_HANDLER( tc0480scp_ctrl_word_r );
-WRITE16_DEVICE_HANDLER( tc0480scp_ctrl_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0480scp_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0480scp_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0480scp_ctrl_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0480scp_ctrl_word_w );
/* Functions for use with 68020 (Super-Z system) */
-READ32_DEVICE_HANDLER( tc0480scp_long_r );
-WRITE32_DEVICE_HANDLER( tc0480scp_long_w );
-READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r );
-WRITE32_DEVICE_HANDLER( tc0480scp_ctrl_long_w );
+DECLARE_READ32_DEVICE_HANDLER( tc0480scp_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( tc0480scp_long_w );
+DECLARE_READ32_DEVICE_HANDLER( tc0480scp_ctrl_long_r );
+DECLARE_WRITE32_DEVICE_HANDLER( tc0480scp_ctrl_long_w );
void tc0480scp_tilemap_update(device_t *device);
void tc0480scp_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority);
@@ -491,31 +491,31 @@ void tc0480scp_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectan
int tc0480scp_get_bg_priority(device_t *device);
/* Undrfire needs to read this for a sprite/tile priority hack */
-READ8_DEVICE_HANDLER( tc0480scp_pri_reg_r );
+DECLARE_READ8_DEVICE_HANDLER( tc0480scp_pri_reg_r );
/** TC0150ROD **/
-READ16_DEVICE_HANDLER( tc0150rod_word_r );
-WRITE16_DEVICE_HANDLER( tc0150rod_word_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0150rod_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0150rod_word_w );
void tc0150rod_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offs, int palette_offs, int type, int road_trans, UINT32 low_priority, UINT32 high_priority);
/** TC0110PCR **/
-READ16_DEVICE_HANDLER( tc0110pcr_word_r );
-WRITE16_DEVICE_HANDLER( tc0110pcr_word_w ); /* color index goes up in step of 2 */
-WRITE16_DEVICE_HANDLER( tc0110pcr_step1_word_w ); /* color index goes up in step of 1 */
-WRITE16_DEVICE_HANDLER( tc0110pcr_step1_rbswap_word_w ); /* swaps red and blue components */
-WRITE16_DEVICE_HANDLER( tc0110pcr_step1_4bpg_word_w ); /* only 4 bits per color gun */
+DECLARE_READ16_DEVICE_HANDLER( tc0110pcr_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_word_w ); /* color index goes up in step of 2 */
+DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_step1_word_w ); /* color index goes up in step of 1 */
+DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_step1_rbswap_word_w ); /* swaps red and blue components */
+DECLARE_WRITE16_DEVICE_HANDLER( tc0110pcr_step1_4bpg_word_w ); /* only 4 bits per color gun */
/** TC0180VCU **/
-READ8_DEVICE_HANDLER( tc0180vcu_get_fb_page );
-WRITE8_DEVICE_HANDLER( tc0180vcu_set_fb_page );
-READ8_DEVICE_HANDLER( tc0180vcu_get_videoctrl );
-READ16_DEVICE_HANDLER( tc0180vcu_ctrl_r );
-WRITE16_DEVICE_HANDLER( tc0180vcu_ctrl_w );
-READ16_DEVICE_HANDLER( tc0180vcu_scroll_r );
-WRITE16_DEVICE_HANDLER( tc0180vcu_scroll_w );
-READ16_DEVICE_HANDLER( tc0180vcu_word_r );
-WRITE16_DEVICE_HANDLER( tc0180vcu_word_w );
+DECLARE_READ8_DEVICE_HANDLER( tc0180vcu_get_fb_page );
+DECLARE_WRITE8_DEVICE_HANDLER( tc0180vcu_set_fb_page );
+DECLARE_READ8_DEVICE_HANDLER( tc0180vcu_get_videoctrl );
+DECLARE_READ16_DEVICE_HANDLER( tc0180vcu_ctrl_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0180vcu_ctrl_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0180vcu_scroll_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0180vcu_scroll_w );
+DECLARE_READ16_DEVICE_HANDLER( tc0180vcu_word_r );
+DECLARE_WRITE16_DEVICE_HANDLER( tc0180vcu_word_w );
void tc0180vcu_tilemap_draw(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int tmap_num, int plane);
diff --git a/src/mame/video/tia.c b/src/mame/video/tia.c
index 41903427c72..662ac698adf 100644
--- a/src/mame/video/tia.c
+++ b/src/mame/video/tia.c
@@ -1804,7 +1804,7 @@ WRITE8_MEMBER( tia_video_device::write )
case 0x18: /* AUDF1 */
case 0x19: /* AUDV0 */
case 0x1A: /* AUDV1 */
- tia_sound_w(machine().device("tia"), offset, data);
+ tia_sound_w(machine().device("tia"), space, offset, data);
break;
case 0x1B:
diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c
index 5e92058af4b..3226f3bd17b 100644
--- a/src/mame/video/triplhnt.c
+++ b/src/mame/video/triplhnt.c
@@ -114,7 +114,8 @@ SCREEN_UPDATE_IND16( triplhnt )
draw_sprites(screen.machine(), bitmap, cliprect);
- discrete_sound_w(discrete, TRIPLHNT_BEAR_ROAR_DATA, state->m_playfield_ram[0xfa] & 15);
- discrete_sound_w(discrete, TRIPLHNT_SHOT_DATA, state->m_playfield_ram[0xfc] & 15);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, state->m_playfield_ram[0xfa] & 15);
+ discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, state->m_playfield_ram[0xfc] & 15);
return 0;
}
diff --git a/src/mame/video/tumblep.c b/src/mame/video/tumblep.c
index f77de781803..681aaa57fb0 100644
--- a/src/mame/video/tumblep.c
+++ b/src/mame/video/tumblep.c
@@ -22,7 +22,8 @@ to switch between 8*8 tiles and 16*16 tiles.
SCREEN_UPDATE_IND16( tumblep )
{
tumblep_state *state = screen.machine().driver_data<tumblep_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
state->flip_screen_set(BIT(flip, 7));
deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c
index bd520a0e5cb..19deb389d1b 100644
--- a/src/mame/video/ultratnk.c
+++ b/src/mame/video/ultratnk.c
@@ -142,8 +142,9 @@ SCREEN_VBLANK( ultratnk )
/* update sound status */
- discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15);
- discrete_sound_w(discrete, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ discrete_sound_w(discrete, space, ULTRATNK_MOTOR_DATA_1, videoram[0x391] & 15);
+ discrete_sound_w(discrete, space, ULTRATNK_MOTOR_DATA_2, videoram[0x393] & 15);
}
}
diff --git a/src/mame/video/undrfire.c b/src/mame/video/undrfire.c
index 70c8eb840f0..12de8b3ef2d 100644
--- a/src/mame/video/undrfire.c
+++ b/src/mame/video/undrfire.c
@@ -350,6 +350,7 @@ SCREEN_UPDATE_IND16( undrfire )
{
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
+ address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5];
UINT8 pivlayer[3];
UINT16 priority;
@@ -445,7 +446,7 @@ SCREEN_UPDATE_IND16( undrfire )
#endif
/* Sprites have variable priority (we kludge this on road levels) */
{
- if ((tc0480scp_pri_reg_r(tc0480scp, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */
+ if ((tc0480scp_pri_reg_r(tc0480scp, space, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */
{
static const int primasks[4] = {0xfff0, 0xff00, 0x0, 0x0};
draw_sprites(screen.machine(), bitmap, cliprect, primasks, 44, -574);
@@ -493,6 +494,7 @@ SCREEN_UPDATE_IND16( cbombers )
{
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
+ address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5];
UINT8 pivlayer[3];
UINT16 priority;
@@ -588,7 +590,7 @@ SCREEN_UPDATE_IND16( cbombers )
#endif
/* Sprites have variable priority (we kludge this on road levels) */
{
- if ((tc0480scp_pri_reg_r(tc0480scp, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */
+ if ((tc0480scp_pri_reg_r(tc0480scp, space, 0) & 0x3) == 3) /* on road levels kludge sprites up 1 priority */
{
static const int primasks[4] = {0xfff0, 0xff00, 0x0, 0x0};
draw_sprites_cbombers(screen.machine(), bitmap, cliprect, primasks, 80, -208);
diff --git a/src/mame/video/vaportra.c b/src/mame/video/vaportra.c
index 810d79a0442..2a4493e1499 100644
--- a/src/mame/video/vaportra.c
+++ b/src/mame/video/vaportra.c
@@ -53,7 +53,8 @@ WRITE16_MEMBER(vaportra_state::vaportra_palette_24bit_b_w)
SCREEN_UPDATE_IND16( vaportra )
{
vaportra_state *state = screen.machine().driver_data<vaportra_state>();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, 0, 0xffff);
+ address_space &space = screen.machine().driver_data()->generic_space();
+ UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
int pri = state->m_priority[0] & 0x03;
state->flip_screen_set(!BIT(flip, 7));
diff --git a/src/mame/video/vectrex.c b/src/mame/video/vectrex.c
index 96b0a8c6d35..88853eb58f9 100644
--- a/src/mame/video/vectrex.c
+++ b/src/mame/video/vectrex.c
@@ -42,10 +42,10 @@ enum {
*********************************************************************/
-static WRITE8_DEVICE_HANDLER (v_via_pa_w);
-static WRITE8_DEVICE_HANDLER(v_via_pb_w);
-static WRITE8_DEVICE_HANDLER (v_via_ca2_w);
-static WRITE8_DEVICE_HANDLER (v_via_cb2_w);
+static DECLARE_WRITE8_DEVICE_HANDLER (v_via_pa_w);
+static DECLARE_WRITE8_DEVICE_HANDLER(v_via_pb_w);
+static DECLARE_WRITE8_DEVICE_HANDLER (v_via_ca2_w);
+static DECLARE_WRITE8_DEVICE_HANDLER (v_via_cb2_w);
/*********************************************************************
@@ -399,9 +399,9 @@ static WRITE8_DEVICE_HANDLER(v_via_pb_w)
device_t *ay8912 = device->machine().device("ay8912");
if (data & 0x08) /* BC1 (do we select a reg or write it ?) */
- ay8910_address_w(ay8912, 0, state->m_via_out[PORTA]);
+ ay8910_address_w(ay8912, space, 0, state->m_via_out[PORTA]);
else
- ay8910_data_w(ay8912, 0, state->m_via_out[PORTA]);
+ ay8910_data_w(ay8912, space, 0, state->m_via_out[PORTA]);
}
if (!(data & 0x1) && (state->m_via_out[PORTB] & 0x1))
diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c
index 81633249b1f..bac7d67c705 100644
--- a/src/mame/video/xmen.c
+++ b/src/mame/video/xmen.c
@@ -158,6 +158,7 @@ SCREEN_VBLANK( xmen6p )
cliprect.set(0, 64 * 8 - 1, 2 * 8, 30 * 8 - 1);
+ address_space &space = screen.machine().driver_data()->generic_space();
if (screen.machine().primary_screen->frame_number() & 0x01)
{
@@ -171,7 +172,7 @@ SCREEN_VBLANK( xmen6p )
for (offset = 0; offset < (0xc000 / 2); offset++)
{
// K052109_lsb_w
- k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff);
+ k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff);
}
@@ -190,7 +191,7 @@ SCREEN_VBLANK( xmen6p )
for (offset = 0; offset < (0xc000 / 2); offset++)
{
// K052109_lsb_w
- k052109_w(state->m_k052109, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff);
+ k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff);
}
diff --git a/src/mess/audio/dave.c b/src/mess/audio/dave.c
index 630a3bca24f..c2ed1729c1a 100644
--- a/src/mess/audio/dave.c
+++ b/src/mess/audio/dave.c
@@ -183,10 +183,11 @@ static DEVICE_RESET( dave_sound )
for (i = 0; i < 32; i++)
dave->Regs[i] = 0;
- dave_reg_w(device, 0x10, 0);
- dave_reg_w(device, 0x11, 0);
- dave_reg_w(device, 0x12, 0);
- dave_reg_w(device, 0x13, 0);
+ address_space &space = device->machine().driver_data()->generic_space();
+ dave_reg_w(device, space, 0x10, 0);
+ dave_reg_w(device, space, 0x11, 0);
+ dave_reg_w(device, space, 0x12, 0);
+ dave_reg_w(device, space, 0x13, 0);
}
@@ -615,7 +616,7 @@ WRITE8_DEVICE_HANDLER ( dave_reg_w )
logerror("dave w: %04x %02x\n",offset,data);
- dave_sound_w(device, offset, data);
+ dave_sound_w(device, space, offset, data, mem_mask);
dave->Regs[offset & 0x01f] = data;
diff --git a/src/mess/audio/dave.h b/src/mess/audio/dave.h
index eee0adb731f..a3cef8548cc 100644
--- a/src/mess/audio/dave.h
+++ b/src/mess/audio/dave.h
@@ -73,7 +73,7 @@ struct dave_interface
***************************************************************************/
void dave_set_reg(device_t *device, offs_t offset, UINT8 data);
-READ8_DEVICE_HANDLER ( dave_reg_r );
-WRITE8_DEVICE_HANDLER ( dave_reg_w );
+DECLARE_READ8_DEVICE_HANDLER ( dave_reg_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( dave_reg_w );
#endif /* __DAVE_H__ */
diff --git a/src/mess/audio/gb.h b/src/mess/audio/gb.h
index c162126b47c..6b0bdefd877 100644
--- a/src/mess/audio/gb.h
+++ b/src/mess/audio/gb.h
@@ -22,7 +22,7 @@ private:
extern const device_type GAMEBOY;
-READ8_DEVICE_HANDLER( gb_sound_r );
-WRITE8_DEVICE_HANDLER( gb_sound_w );
-READ8_DEVICE_HANDLER( gb_wave_r );
-WRITE8_DEVICE_HANDLER( gb_wave_w );
+DECLARE_READ8_DEVICE_HANDLER( gb_sound_r );
+DECLARE_WRITE8_DEVICE_HANDLER( gb_sound_w );
+DECLARE_READ8_DEVICE_HANDLER( gb_wave_r );
+DECLARE_WRITE8_DEVICE_HANDLER( gb_wave_w );
diff --git a/src/mess/audio/mea8000.c b/src/mess/audio/mea8000.c
index 5281137b433..859818a3d87 100644
--- a/src/mess/audio/mea8000.c
+++ b/src/mess/audio/mea8000.c
@@ -102,6 +102,7 @@ struct mea8000_t
emu_timer *timer;
+ devcb_resolved_write8 req_out;
};
@@ -206,8 +207,8 @@ static void mea8000_update_req( device_t *device )
buffer contains a complete frame and the CPU nees to wait for the next
frame end to compose a new frame.
*/
- if (mea8000->iface->req_out_func)
- mea8000->iface->req_out_func( device, 0, mea8000_accept_byte( mea8000 ) );
+ if (!mea8000->req_out.isnull())
+ mea8000->req_out( 0, mea8000_accept_byte( mea8000 ) );
}
@@ -668,6 +669,7 @@ static DEVICE_START( mea8000 )
mea8000_t* mea8000 = get_safe_token( device );
int i;
mea8000->iface = (const mea8000_interface*)device->static_config();
+ mea8000->req_out.resolve(mea8000->iface->req_out_func, *device);
mea8000_init_tables(device->machine());
diff --git a/src/mess/audio/mea8000.h b/src/mess/audio/mea8000.h
index 0910ae59872..e565f33ed8d 100644
--- a/src/mess/audio/mea8000.h
+++ b/src/mess/audio/mea8000.h
@@ -40,7 +40,7 @@ struct mea8000_interface
const char * channel;
/* 1-bit 'ready' output, not negated */
- write8_device_func req_out_func;
+ devcb_write8 req_out_func;
};
@@ -49,7 +49,7 @@ struct mea8000_interface
MCFG_DEVICE_CONFIG(_intrf)
/* interface to CPU via address/data bus*/
-extern READ8_DEVICE_HANDLER ( mea8000_r );
-extern WRITE8_DEVICE_HANDLER ( mea8000_w );
+extern DECLARE_READ8_DEVICE_HANDLER ( mea8000_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER ( mea8000_w );
#endif
diff --git a/src/mess/audio/t6721.h b/src/mess/audio/t6721.h
index d10de292616..d24db20487f 100644
--- a/src/mess/audio/t6721.h
+++ b/src/mess/audio/t6721.h
@@ -39,8 +39,8 @@ extern const device_type T6721;
/*----------- defined in audio/t6721.c -----------*/
-WRITE8_DEVICE_HANDLER(t6721_speech_w);
-READ8_DEVICE_HANDLER(t6721_speech_r);
+DECLARE_WRITE8_DEVICE_HANDLER(t6721_speech_w);
+DECLARE_READ8_DEVICE_HANDLER(t6721_speech_r);
#endif /* __TED7360_H__ */
diff --git a/src/mess/audio/upd1771.h b/src/mess/audio/upd1771.h
index 83104fa5d05..abe1854312b 100644
--- a/src/mess/audio/upd1771.h
+++ b/src/mess/audio/upd1771.h
@@ -54,7 +54,7 @@ extern const device_type UPD1771C;
PROTOTYPES
***************************************************************************/
-WRITE8_DEVICE_HANDLER( upd1771_w );
+DECLARE_WRITE8_DEVICE_HANDLER( upd1771_w );
WRITE_LINE_DEVICE_HANDLER( upd1771_pcm_w );
#endif /* __UPD1771_H__ */
diff --git a/src/mess/drivers/abc1600.c b/src/mess/drivers/abc1600.c
index 904c11329e1..bb87142fc62 100644
--- a/src/mess/drivers/abc1600.c
+++ b/src/mess/drivers/abc1600.c
@@ -182,8 +182,8 @@ UINT8 abc1600_state::read_ram(offs_t offset)
else if (offset < 0x180000)
{
// video RAM
- address_space *program = m_maincpu->space(AS_PROGRAM);
- data = video_ram_r(*program, offset);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
+ data = video_ram_r(program, offset);
}
else
{
@@ -209,8 +209,8 @@ void abc1600_state::write_ram(offs_t offset, UINT8 data)
else if (offset < 0x180000)
{
// video RAM
- address_space *program = m_maincpu->space(AS_PROGRAM);
- video_ram_w(*program, offset, data);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
+ video_ram_w(program, offset, data);
}
else
{
@@ -242,7 +242,7 @@ UINT8 abc1600_state::read_io(offs_t offset)
UINT8 abc1600_state::read_internal_io(offs_t offset)
{
- address_space *program = m_maincpu->space(AS_PROGRAM);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
UINT8 data = 0;
if (X11)
@@ -250,7 +250,7 @@ UINT8 abc1600_state::read_internal_io(offs_t offset)
switch (A10_A9_A8)
{
case IORD0:
- data = iord0_r(*program, offset);
+ data = iord0_r(program, offset);
break;
default:
@@ -262,18 +262,18 @@ UINT8 abc1600_state::read_internal_io(offs_t offset)
switch (A10_A9_A8)
{
case FLP:
- data = wd17xx_r(m_fdc, A2_A1);
+ data = wd17xx_r(m_fdc, program, A2_A1);
break;
case CRT:
if (A0)
- data = m_crtc->register_r(*program, offset);
+ data = m_crtc->register_r(program, offset);
else
- data = m_crtc->status_r(*program, offset);
+ data = m_crtc->status_r(program, offset);
break;
case DRT:
- data = z80dart_ba_cd_r(m_dart, A2_A1 ^ 0x03);
+ data = z80dart_ba_cd_r(m_dart, program, A2_A1 ^ 0x03);
break;
case DMA0:
@@ -289,11 +289,11 @@ UINT8 abc1600_state::read_internal_io(offs_t offset)
break;
case SCC:
- data = m_scc->reg_r(*program, A1_A2);
+ data = m_scc->reg_r(program, A1_A2);
break;
case CIO:
- data = m_cio->read(*program, A2_A1);
+ data = m_cio->read(program, A2_A1);
break;
}
}
@@ -467,31 +467,31 @@ void abc1600_state::write_io(offs_t offset, UINT8 data)
void abc1600_state::write_internal_io(offs_t offset, UINT8 data)
{
- address_space *program = m_maincpu->space(AS_PROGRAM);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
if (X11)
{
switch (A10_A9_A8)
{
case IOWR0:
- iowr0_w(*program, offset, data);
+ iowr0_w(program, offset, data);
break;
case IOWR1:
- iowr1_w(*program, offset, data);
+ iowr1_w(program, offset, data);
break;
case IOWR2:
- iowr2_w(*program, offset, data);
+ iowr2_w(program, offset, data);
break;
case FW:
if (!A7)
{
if (A0)
- fw1_w(*program, offset, data);
+ fw1_w(program, offset, data);
else
- fw0_w(*program, offset, data);
+ fw0_w(program, offset, data);
}
else
{
@@ -500,11 +500,11 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data)
break;
case DMAMAP:
- dmamap_w(*program, offset, data);
+ dmamap_w(program, offset, data);
break;
case SPEC_CONTR_REG:
- spec_contr_reg_w(*program, offset, data);
+ spec_contr_reg_w(program, offset, data);
break;
default:
@@ -516,18 +516,18 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data)
switch (A10_A9_A8)
{
case FLP:
- wd17xx_w(m_fdc, A2_A1, data);
+ wd17xx_w(m_fdc, program, A2_A1, data);
break;
case CRT:
if (A0)
- m_crtc->register_w(*program, offset, data);
+ m_crtc->register_w(program, offset, data);
else
- m_crtc->address_w(*program, offset, data);
+ m_crtc->address_w(program, offset, data);
break;
case DRT:
- z80dart_ba_cd_w(m_dart, A2_A1 ^ 0x03, data);
+ z80dart_ba_cd_w(m_dart, program, A2_A1 ^ 0x03, data);
break;
case DMA0:
@@ -543,11 +543,11 @@ void abc1600_state::write_internal_io(offs_t offset, UINT8 data)
break;
case SCC:
- m_scc->reg_w(*program, A1_A2, data);
+ m_scc->reg_w(program, A1_A2, data);
break;
case CIO:
- m_cio->write(*program, A2_A1, data);
+ m_cio->write(program, A2_A1, data);
break;
}
}
@@ -770,23 +770,23 @@ void abc1600_state::write_user_memory(offs_t offset, UINT8 data)
UINT8 abc1600_state::read_supervisor_memory(offs_t offset)
{
- address_space *program = m_maincpu->space(AS_PROGRAM);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
UINT8 data = 0;
if (!A2 && !A1)
{
// _EP
- data = page_r(*program, offset);
+ data = page_r(program, offset);
}
else if (!A2 && A1 && A0)
{
// _ES
- data = segment_r(*program, offset);
+ data = segment_r(program, offset);
}
else if (A2 && A1 && A0)
{
// _CAUSE
- data = cause_r(*program, offset);
+ data = cause_r(program, offset);
}
return data;
@@ -799,22 +799,22 @@ UINT8 abc1600_state::read_supervisor_memory(offs_t offset)
void abc1600_state::write_supervisor_memory(offs_t offset, UINT8 data)
{
- address_space *program = m_maincpu->space(AS_PROGRAM);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
if (!A2 && !A1)
{
// _WEP
- page_w(*program, offset, data);
+ page_w(program, offset, data);
}
else if (!A2 && A1 && A0)
{
// _WES
- segment_w(*program, offset, data);
+ segment_w(program, offset, data);
}
else if (A2 && !A1 && A0)
{
// W(C)
- task_w(*program, offset, data);
+ task_w(program, offset, data);
}
}
@@ -1879,17 +1879,17 @@ void abc1600_state::machine_start()
void abc1600_state::machine_reset()
{
- address_space *program = m_maincpu->space(AS_PROGRAM);
+ address_space &program = *m_maincpu->space(AS_PROGRAM);
// clear special control register
for (int i = 0; i < 8; i++)
{
- spec_contr_reg_w(*program, 0, i);
+ spec_contr_reg_w(program, 0, i);
}
// clear floppy registers
- fw0_w(*program, 0, 0);
- fw1_w(*program, 0, 0);
+ fw0_w(program, 0, 0);
+ fw1_w(program, 0, 0);
// clear task register
m_task = 0;
diff --git a/src/mess/drivers/abc80x.c b/src/mess/drivers/abc80x.c
index 11733198aa1..e822539ab12 100644
--- a/src/mess/drivers/abc80x.c
+++ b/src/mess/drivers/abc80x.c
@@ -161,7 +161,7 @@ READ8_MEMBER( abc800_state::pling_r )
{
m_pling = !m_pling;
- discrete_sound_w(m_discrete, NODE_01, m_pling);
+ discrete_sound_w(m_discrete, space, NODE_01, m_pling);
return 0xff;
}
@@ -175,7 +175,7 @@ READ8_MEMBER( abc802_state::pling_r )
{
m_pling = !m_pling;
- discrete_sound_w(m_discrete, NODE_01, m_pling);
+ discrete_sound_w(m_discrete, space, NODE_01, m_pling);
return 0xff;
}
diff --git a/src/mess/drivers/ace.c b/src/mess/drivers/ace.c
index 8d514cc5bb4..13a8c67d940 100644
--- a/src/mess/drivers/ace.c
+++ b/src/mess/drivers/ace.c
@@ -507,7 +507,7 @@ static WRITE8_DEVICE_HANDLER( ald_w )
if (!BIT(data, 6))
{
- sp0256_ALD_w(device, 0, data & 0x3f);
+ sp0256_ALD_w(device, space, 0, data & 0x3f);
}
}
diff --git a/src/mess/drivers/ami1200.c b/src/mess/drivers/ami1200.c
index de3c1524707..97720df08b6 100644
--- a/src/mess/drivers/ami1200.c
+++ b/src/mess/drivers/ami1200.c
@@ -90,7 +90,7 @@ static WRITE8_DEVICE_HANDLER( ami1200_cia_0_porta_w )
/* bit 2 = Power Led on Amiga */
set_led_status(device->machine(), 0, !BIT(data, 1));
- handle_cd32_joystick_cia(state, data, mos6526_r(device, 2));
+ handle_cd32_joystick_cia(state, data, mos6526_r(device, space, 2));
}
/*************************************
diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c
index 7ef4a3a8f48..eca358cdbce 100644
--- a/src/mess/drivers/amiga.c
+++ b/src/mess/drivers/amiga.c
@@ -48,9 +48,9 @@ public:
DECLARE_MACHINE_RESET(cdtv);
};
-static READ8_DEVICE_HANDLER( amiga_cia_0_portA_r );
-static READ8_DEVICE_HANDLER( amiga_cia_0_cdtv_portA_r );
-static WRITE8_DEVICE_HANDLER( amiga_cia_0_portA_w );
+static DECLARE_READ8_DEVICE_HANDLER( amiga_cia_0_portA_r );
+static DECLARE_READ8_DEVICE_HANDLER( amiga_cia_0_cdtv_portA_r );
+static DECLARE_WRITE8_DEVICE_HANDLER( amiga_cia_0_portA_w );
/***************************************************************************
Battery Backed-Up Clock (MSM6264)
diff --git a/src/mess/drivers/apf.c b/src/mess/drivers/apf.c
index 235bdf60e8f..a0a31350a0f 100644
--- a/src/mess/drivers/apf.c
+++ b/src/mess/drivers/apf.c
@@ -388,42 +388,42 @@ WRITE8_MEMBER( apf_state::serial_w)
WRITE8_MEMBER( apf_state::apf_wd179x_command_w)
{
- wd17xx_command_w(m_fdc, offset,~data);
+ wd17xx_command_w(m_fdc, space, offset,~data);
}
WRITE8_MEMBER( apf_state::apf_wd179x_track_w)
{
- wd17xx_track_w(m_fdc, offset,~data);
+ wd17xx_track_w(m_fdc, space, offset,~data);
}
WRITE8_MEMBER( apf_state::apf_wd179x_sector_w)
{
- wd17xx_sector_w(m_fdc, offset,~data);
+ wd17xx_sector_w(m_fdc, space, offset,~data);
}
WRITE8_MEMBER( apf_state::apf_wd179x_data_w)
{
- wd17xx_data_w(m_fdc, offset,~data);
+ wd17xx_data_w(m_fdc, space, offset,~data);
}
READ8_MEMBER( apf_state::apf_wd179x_status_r)
{
- return ~wd17xx_status_r(m_fdc, offset);
+ return ~wd17xx_status_r(m_fdc, space, offset);
}
READ8_MEMBER( apf_state::apf_wd179x_track_r)
{
- return ~wd17xx_track_r(m_fdc, offset);
+ return ~wd17xx_track_r(m_fdc, space, offset);
}
READ8_MEMBER( apf_state::apf_wd179x_sector_r)
{
- return ~wd17xx_sector_r(m_fdc, offset);
+ return ~wd17xx_sector_r(m_fdc, space, offset);
}
READ8_MEMBER( apf_state::apf_wd179x_data_r)
{
- return wd17xx_data_r(m_fdc, offset); // should this be inverted like the rest?
+ return wd17xx_data_r(m_fdc, space, offset); // should this be inverted like the rest?
}
static ADDRESS_MAP_START( apf_imagination_map, AS_PROGRAM, 8, apf_state )
diff --git a/src/mess/drivers/apollo.c b/src/mess/drivers/apollo.c
index c43d38e52ee..8c34df4d8c6 100644
--- a/src/mess/drivers/apollo.c
+++ b/src/mess/drivers/apollo.c
@@ -1170,9 +1170,9 @@ static READ8_DEVICE_HANDLER( apollo_kbd_is_german ) {
}
static APOLLO_KBD_INTERFACE( apollo_kbd_config ) = {
- apollo_kbd_putchar,
- apollo_kbd_has_beeper,
- apollo_kbd_is_german
+ DEVCB_HANDLER(apollo_kbd_putchar),
+ DEVCB_HANDLER(apollo_kbd_has_beeper),
+ DEVCB_HANDLER(apollo_kbd_is_german)
};
static WRITE8_DEVICE_HANDLER( terminal_kbd_putchar ) {
diff --git a/src/mess/drivers/apricot.c b/src/mess/drivers/apricot.c
index 711cde54797..7b4b6e7dda8 100644
--- a/src/mess/drivers/apricot.c
+++ b/src/mess/drivers/apricot.c
@@ -120,20 +120,20 @@ static const struct pit8253_config apricot_pit8253_intf =
}
};
-static void apricot_sio_irq_w(device_t *device, int st)
+static WRITE_LINE_DEVICE_HANDLER( apricot_sio_irq_w )
{
- apricot_state *state = device->machine().driver_data<apricot_state>();
- pic8259_ir5_w(state->m_pic, st);
+ apricot_state *astate = device->machine().driver_data<apricot_state>();
+ pic8259_ir5_w(astate->m_pic, state);
}
static const z80sio_interface apricot_z80sio_intf =
{
- apricot_sio_irq_w,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
+ DEVCB_LINE(apricot_sio_irq_w),
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
diff --git a/src/mess/drivers/at.c b/src/mess/drivers/at.c
index 6ad885f3492..910c20662ad 100644
--- a/src/mess/drivers/at.c
+++ b/src/mess/drivers/at.c
@@ -165,10 +165,10 @@ ADDRESS_MAP_END
READ32_MEMBER( at_state::ct486_chipset_r )
{
if (ACCESSING_BITS_0_7)
- return pic8259_r(m_pic8259_master, 0);
+ return pic8259_r(m_pic8259_master, space, 0);
if (ACCESSING_BITS_8_15)
- return pic8259_r(m_pic8259_master, 1) << 8;
+ return pic8259_r(m_pic8259_master, space, 1) << 8;
if (ACCESSING_BITS_24_31)
return m_cs4031->data_r(space, 0, 0) << 24;
@@ -179,10 +179,10 @@ READ32_MEMBER( at_state::ct486_chipset_r )
WRITE32_MEMBER( at_state::ct486_chipset_w )
{
if (ACCESSING_BITS_0_7)
- pic8259_w(m_pic8259_master, 0, data);
+ pic8259_w(m_pic8259_master, space, 0, data);
if (ACCESSING_BITS_8_15)
- pic8259_w(m_pic8259_master, 1, data >> 8);
+ pic8259_w(m_pic8259_master, space, 1, data >> 8);
if (ACCESSING_BITS_16_23)
m_cs4031->address_w(space, 0, data >> 16, 0);
diff --git a/src/mess/drivers/bebox.c b/src/mess/drivers/bebox.c
index bcef26276c5..c49b49b843e 100644
--- a/src/mess/drivers/bebox.c
+++ b/src/mess/drivers/bebox.c
@@ -37,8 +37,8 @@
#include "formats/pc_dsk.h"
#include "machine/ram.h"
-static READ8_HANDLER(at_dma8237_1_r) { return i8237_r(space->machine().device("dma8237_2"), offset / 2); }
-static WRITE8_HANDLER(at_dma8237_1_w) { i8237_w(space->machine().device("dma8237_2"), offset / 2, data); }
+static READ8_HANDLER(at_dma8237_1_r) { return i8237_r(space->machine().device("dma8237_2"), *space, offset / 2); }
+static WRITE8_HANDLER(at_dma8237_1_w) { i8237_w(space->machine().device("dma8237_2"), *space, offset / 2, data); }
static ADDRESS_MAP_START( bebox_mem, AS_PROGRAM, 64, bebox_state )
AM_RANGE(0x7FFFF0F0, 0x7FFFF0F7) AM_READWRITE_LEGACY(bebox_cpu0_imask_r, bebox_cpu0_imask_w )
diff --git a/src/mess/drivers/bigbord2.c b/src/mess/drivers/bigbord2.c
index 746046a50fe..93254c450a0 100644
--- a/src/mess/drivers/bigbord2.c
+++ b/src/mess/drivers/bigbord2.c
@@ -385,19 +385,19 @@ INPUT_PORTS_END
/* Z80 SIO */
-static void bigbord2_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( bigbord2_interrupt )
{
device->machine().device(Z80_TAG)->execute().set_input_line(0, state);
}
const z80sio_interface sio_intf =
{
- bigbord2_interrupt, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- 0, /* transmit handler - which channel is this for? */
- 0 /* receive handler - which channel is this for? */
+ DEVCB_LINE(bigbord2_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler - which channel is this for? */
+ DEVCB_NULL /* receive handler - which channel is this for? */
};
diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c
index 56d3e9d2a0b..966d771ba9f 100644
--- a/src/mess/drivers/bml3.c
+++ b/src/mess/drivers/bml3.c
@@ -330,7 +330,7 @@ static READ8_DEVICE_HANDLER( bml3_ym2203_r )
bml3_state *state = device->machine().driver_data<bml3_state>();
UINT8 dev_offs = ((state->m_psg_latch & 3) != 3);
- return ym2203_r(device,dev_offs);
+ return ym2203_r(device,space, dev_offs);
}
static WRITE8_DEVICE_HANDLER( bml3_ym2203_w )
@@ -338,7 +338,7 @@ static WRITE8_DEVICE_HANDLER( bml3_ym2203_w )
bml3_state *state = device->machine().driver_data<bml3_state>();
UINT8 dev_offs = ((state->m_psg_latch & 3) != 3);
- ym2203_w(device,dev_offs,data);
+ ym2203_w(device,space, dev_offs,data);
}
READ8_MEMBER( bml3_state::bml3_vram_attr_r)
diff --git a/src/mess/drivers/c128.c b/src/mess/drivers/c128.c
index 1f3ab967e3a..cdfae00fffb 100644
--- a/src/mess/drivers/c128.c
+++ b/src/mess/drivers/c128.c
@@ -968,7 +968,7 @@ static const mc6845_interface vdc_intf =
READ8_MEMBER( c128_state::sid_potx_r )
{
- UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0);
+ UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0);
int sela = BIT(cia1_pa, 6);
int selb = BIT(cia1_pa, 7);
@@ -983,7 +983,7 @@ READ8_MEMBER( c128_state::sid_potx_r )
READ8_MEMBER( c128_state::sid_poty_r )
{
- UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0);
+ UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0);
int sela = BIT(cia1_pa, 6);
int selb = BIT(cia1_pa, 7);
diff --git a/src/mess/drivers/c64.c b/src/mess/drivers/c64.c
index 32f91a30017..476dba7c07c 100644
--- a/src/mess/drivers/c64.c
+++ b/src/mess/drivers/c64.c
@@ -427,7 +427,7 @@ static MOS6567_INTERFACE( vic_intf )
READ8_MEMBER( c64_state::sid_potx_r )
{
- UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0);
+ UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0);
int sela = BIT(cia1_pa, 6);
int selb = BIT(cia1_pa, 7);
@@ -442,7 +442,7 @@ READ8_MEMBER( c64_state::sid_potx_r )
READ8_MEMBER( c64_state::sid_poty_r )
{
- UINT8 cia1_pa = mos6526_pa_r(m_cia1, 0);
+ UINT8 cia1_pa = mos6526_pa_r(m_cia1, space, 0);
int sela = BIT(cia1_pa, 6);
int selb = BIT(cia1_pa, 7);
@@ -490,7 +490,7 @@ READ8_MEMBER( c64_state::cia1_pa_r )
*/
- UINT8 cia0portb = mos6526_pb_r(m_cia1, 0);
+ UINT8 cia0portb = mos6526_pb_r(m_cia1, space, 0);
return cbm_common_cia0_port_a_r(m_cia1, cia0portb);
}
@@ -512,7 +512,7 @@ READ8_MEMBER( c64_state::cia1_pb_r )
*/
- UINT8 cia0porta = mos6526_pa_r(m_cia1, 0);
+ UINT8 cia0porta = mos6526_pa_r(m_cia1, space, 0);
return cbm_common_cia0_port_b_r(m_cia1, cia0porta);
}
diff --git a/src/mess/drivers/c65.c b/src/mess/drivers/c65.c
index b646bdf594f..76aeba4af8b 100644
--- a/src/mess/drivers/c65.c
+++ b/src/mess/drivers/c65.c
@@ -193,14 +193,14 @@ READ8_MEMBER( c65_state::sid_potx_r )
{
device_t *sid = machine().device("sid_r");
- return c64_paddle_read(sid, 0);
+ return c64_paddle_read(sid, space, 0);
}
READ8_MEMBER( c65_state::sid_poty_r )
{
device_t *sid = machine().device("sid_r");
- return c64_paddle_read(sid, 1);
+ return c64_paddle_read(sid, space, 1);
}
static MOS6581_INTERFACE( sidr_intf )
diff --git a/src/mess/drivers/elwro800.c b/src/mess/drivers/elwro800.c
index e635fe3319d..fcf9282babb 100644
--- a/src/mess/drivers/elwro800.c
+++ b/src/mess/drivers/elwro800.c
@@ -289,11 +289,11 @@ READ8_MEMBER(elwro800_state::elwro800jr_io_r)
device_t *fdc = machine().device("upd765");
if (offset & 1)
{
- return upd765_data_r(fdc,0);
+ return upd765_data_r(fdc,space, 0);
}
else
{
- return upd765_status_r(fdc,0);
+ return upd765_status_r(fdc,space, 0);
}
}
else if (!BIT(cs,4))
@@ -347,7 +347,7 @@ WRITE8_MEMBER(elwro800_state::elwro800jr_io_w)
device_t *fdc = machine().device("upd765");
if (offset & 1)
{
- upd765_data_w(fdc, 0, data);
+ upd765_data_w(fdc, space, 0, data);
}
}
else if (!BIT(cs,4))
diff --git a/src/mess/drivers/exelv.c b/src/mess/drivers/exelv.c
index d5f37c313ea..867a1612d8f 100644
--- a/src/mess/drivers/exelv.c
+++ b/src/mess/drivers/exelv.c
@@ -381,7 +381,7 @@ WRITE8_MEMBER(exelv_state::tms7041_portd_w)
{
logerror("tms7041_portd_w: data = 0x%02x\n", data);
- tms5220_data_w(m_tms5220c, 0, BITSWAP8(data,0,1,2,3,4,5,6,7));
+ tms5220_data_w(m_tms5220c, space, 0, BITSWAP8(data,0,1,2,3,4,5,6,7));
m_tms7041_portd = data;
}
diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c
index 5344c1a5bcf..97417e01124 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mess/drivers/fm7.c
@@ -416,13 +416,13 @@ READ8_MEMBER(fm7_state::fm7_fdc_r)
switch(offset)
{
case 0:
- return wd17xx_status_r(dev,offset);
+ return wd17xx_status_r(dev,space, offset);
case 1:
- return wd17xx_track_r(dev,offset);
+ return wd17xx_track_r(dev,space, offset);
case 2:
- return wd17xx_sector_r(dev,offset);
+ return wd17xx_sector_r(dev,space, offset);
case 3:
- return wd17xx_data_r(dev,offset);
+ return wd17xx_data_r(dev,space, offset);
case 4:
return m_fdc_side | 0xfe;
case 5:
@@ -448,16 +448,16 @@ WRITE8_MEMBER(fm7_state::fm7_fdc_w)
switch(offset)
{
case 0:
- wd17xx_command_w(dev,offset,data);
+ wd17xx_command_w(dev,space, offset,data);
break;
case 1:
- wd17xx_track_w(dev,offset,data);
+ wd17xx_track_w(dev,space, offset,data);
break;
case 2:
- wd17xx_sector_w(dev,offset,data);
+ wd17xx_sector_w(dev,space, offset,data);
break;
case 3:
- wd17xx_data_w(dev,offset,data);
+ wd17xx_data_w(dev,space, offset,data);
break;
case 4:
m_fdc_side = data & 0x01;
@@ -824,7 +824,7 @@ READ8_MEMBER(fm7_state::fm77av_boot_mode_r)
static void fm7_update_psg(running_machine &machine)
{
fm7_state *state = machine.driver_data<fm7_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
if(state->m_type == SYS_FM7)
{
@@ -835,15 +835,15 @@ static void fm7_update_psg(running_machine &machine)
break;
case 0x01:
// Data read
- state->m_psg_data = ay8910_r(space->machine().device("psg"),0);
+ state->m_psg_data = ay8910_r(space.machine().device("psg"),space, 0);
break;
case 0x02:
// Data write
- ay8910_data_w(space->machine().device("psg"),0,state->m_psg_data);
+ ay8910_data_w(space.machine().device("psg"),space, 0,state->m_psg_data);
break;
case 0x03:
// Address latch
- ay8910_address_w(space->machine().device("psg"),0,state->m_psg_data);
+ ay8910_address_w(space.machine().device("psg"),space, 0,state->m_psg_data);
break;
}
}
@@ -856,25 +856,25 @@ static void fm7_update_psg(running_machine &machine)
break;
case 0x01:
// Data read
- state->m_psg_data = ym2203_r(space->machine().device("ym"),1);
+ state->m_psg_data = ym2203_r(space.machine().device("ym"),space, 1);
break;
case 0x02:
// Data write
- ym2203_w(space->machine().device("ym"),1,state->m_psg_data);
+ ym2203_w(space.machine().device("ym"),space, 1,state->m_psg_data);
logerror("YM: data write 0x%02x\n",state->m_psg_data);
break;
case 0x03:
// Address latch
- ym2203_w(space->machine().device("ym"),0,state->m_psg_data);
+ ym2203_w(space.machine().device("ym"),space, 0,state->m_psg_data);
logerror("YM: address latch 0x%02x\n",state->m_psg_data);
break;
case 0x04:
// Status register
- state->m_psg_data = ym2203_r(space->machine().device("ym"),0);
+ state->m_psg_data = ym2203_r(space.machine().device("ym"),space, 0);
break;
case 0x09:
// Joystick port read
- state->m_psg_data = space->machine().root_device().ioport("joy1")->read();
+ state->m_psg_data = space.machine().root_device().ioport("joy1")->read();
break;
}
}
diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c
index 9b09a80fc60..5a49987ea5b 100644
--- a/src/mess/drivers/fmtowns.c
+++ b/src/mess/drivers/fmtowns.c
@@ -393,25 +393,25 @@ WRITE8_MEMBER(towns_state::towns_sys6c_w)
READ8_MEMBER(towns_state::towns_dma1_r)
{
// logerror("DMA#1: read register %i\n",offset);
- return upd71071_r(m_dma_1,offset);
+ return upd71071_r(m_dma_1,space, offset);
}
WRITE8_MEMBER(towns_state::towns_dma1_w)
{
// logerror("DMA#1: wrote 0x%02x to register %i\n",data,offset);
- upd71071_w(m_dma_1,offset,data);
+ upd71071_w(m_dma_1,space, offset,data);
}
READ8_MEMBER(towns_state::towns_dma2_r)
{
logerror("DMA#2: read register %i\n",offset);
- return upd71071_r(m_dma_2,offset);
+ return upd71071_r(m_dma_2,space, offset);
}
WRITE8_MEMBER(towns_state::towns_dma2_w)
{
logerror("DMA#2: wrote 0x%02x to register %i\n",data,offset);
- upd71071_w(m_dma_2,offset,data);
+ upd71071_w(m_dma_2,space, offset,data);
}
/*
@@ -440,13 +440,13 @@ READ8_MEMBER(towns_state::towns_floppy_r)
switch(offset)
{
case 0x00:
- return wd17xx_status_r(fdc,offset/2);
+ return wd17xx_status_r(fdc,space, offset/2);
case 0x02:
- return wd17xx_track_r(fdc,offset/2);
+ return wd17xx_track_r(fdc,space, offset/2);
case 0x04:
- return wd17xx_sector_r(fdc,offset/2);
+ return wd17xx_sector_r(fdc,space, offset/2);
case 0x06:
- return wd17xx_data_r(fdc,offset/2);
+ return wd17xx_data_r(fdc,space, offset/2);
case 0x08: // selected drive status?
//logerror("FDC: read from offset 0x08\n");
ret = 0x80; // always set
@@ -492,16 +492,16 @@ WRITE8_MEMBER(towns_state::towns_floppy_w)
return;
if(data == 0xfe)
return;
- wd17xx_command_w(fdc,offset/2,data);
+ wd17xx_command_w(fdc,space, offset/2,data);
break;
case 0x02:
- wd17xx_track_w(fdc,offset/2,data);
+ wd17xx_track_w(fdc,space, offset/2,data);
break;
case 0x04:
- wd17xx_sector_w(fdc,offset/2,data);
+ wd17xx_sector_w(fdc,space, offset/2,data);
break;
case 0x06:
- wd17xx_data_w(fdc,offset/2,data);
+ wd17xx_data_w(fdc,space, offset/2,data);
break;
case 0x08:
// bit 5 - CLKSEL
@@ -550,14 +550,14 @@ static UINT16 towns_fdc_dma_r(running_machine &machine)
{
towns_state* state = machine.driver_data<towns_state>();
device_t* fdc = state->m_fdc;
- return wd17xx_data_r(fdc,0);
+ return wd17xx_data_r(fdc,state->generic_space(), 0);
}
static void towns_fdc_dma_w(running_machine &machine, UINT16 data)
{
towns_state* state = machine.driver_data<towns_state>();
device_t* fdc = state->m_fdc;
- wd17xx_data_w(fdc,0,data);
+ wd17xx_data_w(fdc,state->generic_space(), 0,data);
}
/*
diff --git a/src/mess/drivers/gba.c b/src/mess/drivers/gba.c
index 48420d4a171..e1eb3d56932 100644
--- a/src/mess/drivers/gba.c
+++ b/src/mess/drivers/gba.c
@@ -773,31 +773,31 @@ READ32_MEMBER(gba_state::gba_io_r)
}
break;
case 0x0060/4:
- retval = gb_sound_r(gb_device, 0) | gb_sound_r(gb_device, 1)<<16 | gb_sound_r(gb_device, 2)<<24;
+ retval = gb_sound_r(gb_device, space, 0) | gb_sound_r(gb_device, space, 1)<<16 | gb_sound_r(gb_device, space, 2)<<24;
break;
case 0x0064/4:
- retval = gb_sound_r(gb_device, 3) | gb_sound_r(gb_device, 4)<<8;
+ retval = gb_sound_r(gb_device, space, 3) | gb_sound_r(gb_device, space, 4)<<8;
break;
case 0x0068/4:
- retval = gb_sound_r(gb_device, 6) | gb_sound_r(gb_device, 7)<<8;
+ retval = gb_sound_r(gb_device, space, 6) | gb_sound_r(gb_device, space, 7)<<8;
break;
case 0x006c/4:
- retval = gb_sound_r(gb_device, 8) | gb_sound_r(gb_device, 9)<<8;
+ retval = gb_sound_r(gb_device, space, 8) | gb_sound_r(gb_device, space, 9)<<8;
break;
case 0x0070/4:
- retval = gb_sound_r(gb_device, 0xa) | gb_sound_r(gb_device, 0xb)<<16 | gb_sound_r(gb_device, 0xc)<<24;
+ retval = gb_sound_r(gb_device, space, 0xa) | gb_sound_r(gb_device, space, 0xb)<<16 | gb_sound_r(gb_device, space, 0xc)<<24;
break;
case 0x0074/4:
- retval = gb_sound_r(gb_device, 0xd) | gb_sound_r(gb_device, 0xe)<<8;
+ retval = gb_sound_r(gb_device, space, 0xd) | gb_sound_r(gb_device, space, 0xe)<<8;
break;
case 0x0078/4:
- retval = gb_sound_r(gb_device, 0x10) | gb_sound_r(gb_device, 0x11)<<8;
+ retval = gb_sound_r(gb_device, space, 0x10) | gb_sound_r(gb_device, space, 0x11)<<8;
break;
case 0x007c/4:
- retval = gb_sound_r(gb_device, 0x12) | gb_sound_r(gb_device, 0x13)<<8;
+ retval = gb_sound_r(gb_device, space, 0x12) | gb_sound_r(gb_device, space, 0x13)<<8;
break;
case 0x0080/4:
- retval = gb_sound_r(gb_device, 0x14) | gb_sound_r(gb_device, 0x15)<<8;
+ retval = gb_sound_r(gb_device, space, 0x14) | gb_sound_r(gb_device, space, 0x15)<<8;
if( (mem_mask) & 0xffff0000 )
{
verboselog(machine(), 2, "GBA IO Register Read: SOUNDCNT_H (%08x) = %04x\n", 0x04000000 + ( offset << 2 ) + 2, m_SOUNDCNT_H );
@@ -805,7 +805,7 @@ READ32_MEMBER(gba_state::gba_io_r)
}
break;
case 0x0084/4:
- retval = gb_sound_r(gb_device, 0x16);
+ retval = gb_sound_r(gb_device, space, 0x16);
break;
case 0x0088/4:
if( (mem_mask) & 0x0000ffff )
@@ -819,16 +819,16 @@ READ32_MEMBER(gba_state::gba_io_r)
}
break;
case 0x0090/4:
- retval = gb_wave_r(gb_device, 0) | gb_wave_r(gb_device, 1)<<8 | gb_wave_r(gb_device, 2)<<16 | gb_wave_r(gb_device, 3)<<24;
+ retval = gb_wave_r(gb_device, space, 0) | gb_wave_r(gb_device, space, 1)<<8 | gb_wave_r(gb_device, space, 2)<<16 | gb_wave_r(gb_device, space, 3)<<24;
break;
case 0x0094/4:
- retval = gb_wave_r(gb_device, 4) | gb_wave_r(gb_device, 5)<<8 | gb_wave_r(gb_device, 6)<<16 | gb_wave_r(gb_device, 7)<<24;
+ retval = gb_wave_r(gb_device, space, 4) | gb_wave_r(gb_device, space, 5)<<8 | gb_wave_r(gb_device, space, 6)<<16 | gb_wave_r(gb_device, space, 7)<<24;
break;
case 0x0098/4:
- retval = gb_wave_r(gb_device, 8) | gb_wave_r(gb_device, 9)<<8 | gb_wave_r(gb_device, 10)<<16 | gb_wave_r(gb_device, 11)<<24;
+ retval = gb_wave_r(gb_device, space, 8) | gb_wave_r(gb_device, space, 9)<<8 | gb_wave_r(gb_device, space, 10)<<16 | gb_wave_r(gb_device, space, 11)<<24;
break;
case 0x009c/4:
- retval = gb_wave_r(gb_device, 12) | gb_wave_r(gb_device, 13)<<8 | gb_wave_r(gb_device, 14)<<16 | gb_wave_r(gb_device, 15)<<24;
+ retval = gb_wave_r(gb_device, space, 12) | gb_wave_r(gb_device, space, 13)<<8 | gb_wave_r(gb_device, space, 14)<<16 | gb_wave_r(gb_device, space, 15)<<24;
break;
case 0x00a0/4:
case 0x00a4/4:
@@ -1350,99 +1350,99 @@ WRITE32_MEMBER(gba_state::gba_io_w)
case 0x0060/4:
if( (mem_mask) & 0x000000ff ) // SOUNDCNTL
{
- gb_sound_w(gb_device, 0, data);
+ gb_sound_w(gb_device, space, 0, data);
}
if( (mem_mask) & 0x00ff0000 )
{
- gb_sound_w(gb_device, 1, data>>16); // SOUND1CNT_H
+ gb_sound_w(gb_device, space, 1, data>>16); // SOUND1CNT_H
}
if( (mem_mask) & 0xff000000 )
{
- gb_sound_w(gb_device, 2, data>>24);
+ gb_sound_w(gb_device, space, 2, data>>24);
}
break;
case 0x0064/4:
if( (mem_mask) & 0x000000ff ) // SOUNDCNTL
{
- gb_sound_w(gb_device, 3, data);
+ gb_sound_w(gb_device, space, 3, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 4, data>>8); // SOUND1CNT_H
+ gb_sound_w(gb_device, space, 4, data>>8); // SOUND1CNT_H
}
break;
case 0x0068/4:
if( (mem_mask) & 0x000000ff )
{
- gb_sound_w(gb_device, 6, data);
+ gb_sound_w(gb_device, space, 6, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 7, data>>8);
+ gb_sound_w(gb_device, space, 7, data>>8);
}
break;
case 0x006c/4:
if( (mem_mask) & 0x000000ff )
{
- gb_sound_w(gb_device, 8, data);
+ gb_sound_w(gb_device, space, 8, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 9, data>>8);
+ gb_sound_w(gb_device, space, 9, data>>8);
}
break;
case 0x0070/4: //SND3CNTL and H
if( (mem_mask) & 0x000000ff ) // SOUNDCNTL
{
- gb_sound_w(gb_device, 0xa, data);
+ gb_sound_w(gb_device, space, 0xa, data);
}
if( (mem_mask) & 0x00ff0000 )
{
- gb_sound_w(gb_device, 0xb, data>>16); // SOUND1CNT_H
+ gb_sound_w(gb_device, space, 0xb, data>>16); // SOUND1CNT_H
}
if( (mem_mask) & 0xff000000 )
{
- gb_sound_w(gb_device, 0xc, data>>24);
+ gb_sound_w(gb_device, space, 0xc, data>>24);
}
break;
case 0x0074/4:
if( (mem_mask) & 0x000000ff )
{
- gb_sound_w(gb_device, 0xd, data);
+ gb_sound_w(gb_device, space, 0xd, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 0xe, data>>8);
+ gb_sound_w(gb_device, space, 0xe, data>>8);
}
break;
case 0x0078/4:
if( (mem_mask) & 0x000000ff )
{
- gb_sound_w(gb_device, 0x10, data);
+ gb_sound_w(gb_device, space, 0x10, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 0x11, data>>8);
+ gb_sound_w(gb_device, space, 0x11, data>>8);
}
break;
case 0x007c/4:
if( (mem_mask) & 0x000000ff )
{
- gb_sound_w(gb_device, 0x12, data);
+ gb_sound_w(gb_device, space, 0x12, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 0x13, data>>8);
+ gb_sound_w(gb_device, space, 0x13, data>>8);
}
break;
case 0x0080/4:
if( (mem_mask) & 0x000000ff )
{
- gb_sound_w(gb_device, 0x14, data);
+ gb_sound_w(gb_device, space, 0x14, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_sound_w(gb_device, 0x15, data>>8);
+ gb_sound_w(gb_device, space, 0x15, data>>8);
}
if ((mem_mask) & 0xffff0000)
@@ -1483,7 +1483,7 @@ WRITE32_MEMBER(gba_state::gba_io_w)
dac_device *gb_b_l = machine().device<dac_device>("direct_b_left");
dac_device *gb_b_r = machine().device<dac_device>("direct_b_right");
- gb_sound_w(gb_device, 0x16, data);
+ gb_sound_w(gb_device, space, 0x16, data);
if ((data & 0x80) && !(m_SOUNDCNT_X & 0x80))
{
m_fifo_a_ptr = m_fifo_a_in = 17;
@@ -1510,73 +1510,73 @@ WRITE32_MEMBER(gba_state::gba_io_w)
case 0x0090/4:
if( (mem_mask) & 0x000000ff )
{
- gb_wave_w(gb_device, 0, data);
+ gb_wave_w(gb_device, space, 0, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_wave_w(gb_device, 1, data>>8);
+ gb_wave_w(gb_device, space, 1, data>>8);
}
if( (mem_mask) & 0x00ff0000 )
{
- gb_wave_w(gb_device, 2, data>>16);
+ gb_wave_w(gb_device, space, 2, data>>16);
}
if( (mem_mask) & 0xff000000 )
{
- gb_wave_w(gb_device, 3, data>>24);
+ gb_wave_w(gb_device, space, 3, data>>24);
}
break;
case 0x0094/4:
if( (mem_mask) & 0x000000ff )
{
- gb_wave_w(gb_device, 4, data);
+ gb_wave_w(gb_device, space, 4, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_wave_w(gb_device, 5, data>>8);
+ gb_wave_w(gb_device, space, 5, data>>8);
}
if( (mem_mask) & 0x00ff0000 )
{
- gb_wave_w(gb_device, 6, data>>16);
+ gb_wave_w(gb_device, space, 6, data>>16);
}
if( (mem_mask) & 0xff000000 )
{
- gb_wave_w(gb_device, 7, data>>24);
+ gb_wave_w(gb_device, space, 7, data>>24);
}
break;
case 0x0098/4:
if( (mem_mask) & 0x000000ff )
{
- gb_wave_w(gb_device, 8, data);
+ gb_wave_w(gb_device, space, 8, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_wave_w(gb_device, 9, data>>8);
+ gb_wave_w(gb_device, space, 9, data>>8);
}
if( (mem_mask) & 0x00ff0000 )
{
- gb_wave_w(gb_device, 0xa, data>>16);
+ gb_wave_w(gb_device, space, 0xa, data>>16);
}
if( (mem_mask) & 0xff000000 )
{
- gb_wave_w(gb_device, 0xb, data>>24);
+ gb_wave_w(gb_device, space, 0xb, data>>24);
}
break;
case 0x009c/4:
if( (mem_mask) & 0x000000ff )
{
- gb_wave_w(gb_device, 0xc, data);
+ gb_wave_w(gb_device, space, 0xc, data);
}
if( (mem_mask) & 0x0000ff00 )
{
- gb_wave_w(gb_device, 0xd, data>>8);
+ gb_wave_w(gb_device, space, 0xd, data>>8);
}
if( (mem_mask) & 0x00ff0000 )
{
- gb_wave_w(gb_device, 0xe, data>>16);
+ gb_wave_w(gb_device, space, 0xe, data>>16);
}
if( (mem_mask) & 0xff000000 )
{
- gb_wave_w(gb_device, 0xf, data>>24);
+ gb_wave_w(gb_device, space, 0xf, data>>24);
}
break;
case 0x00a0/4:
diff --git a/src/mess/drivers/homelab.c b/src/mess/drivers/homelab.c
index 71b3605f226..08a336db52e 100644
--- a/src/mess/drivers/homelab.c
+++ b/src/mess/drivers/homelab.c
@@ -642,7 +642,7 @@ static GFXDECODE_START( homelab )
GFXDECODE_ENTRY( "chargen", 0x0000, homelab_charlayout, 0, 1 )
GFXDECODE_END
-static const mea8000_interface brailab4_speech_intf = { "speech", NULL };
+static const mea8000_interface brailab4_speech_intf = { "speech", DEVCB_NULL };
static QUICKLOAD_LOAD(homelab)
{
diff --git a/src/mess/drivers/ip22.c b/src/mess/drivers/ip22.c
index a4d6607be23..317c5952c58 100644
--- a/src/mess/drivers/ip22.c
+++ b/src/mess/drivers/ip22.c
@@ -246,11 +246,11 @@ READ32_MEMBER(ip22_state::hpc3_pbus6_r)
switch( offset )
{
case 0x004/4:
- ret8 = pc_lpt_control_r(lpt, 0) ^ 0x0d;
+ ret8 = pc_lpt_control_r(lpt, space, 0) ^ 0x0d;
//verboselog(( machine, 0, "Parallel Control Read: %02x\n", ret8 );
return ret8;
case 0x008/4:
- ret8 = pc_lpt_status_r(lpt, 0) ^ 0x80;
+ ret8 = pc_lpt_status_r(lpt, space, 0) ^ 0x80;
//verboselog(( machine, 0, "Parallel Status Read: %02x\n", ret8 );
return ret8;
case 0x030/4:
@@ -290,19 +290,19 @@ READ32_MEMBER(ip22_state::hpc3_pbus6_r)
// mame_printf_info("INT3: r @ %x mask %08x (PC=%x)\n", offset*4, mem_mask, activecpu_get_pc());
return m_int3_regs[offset-0x80/4];
case 0xb0/4:
- ret8 = pit8253_r(machine().device("pit8254"), 0);
+ ret8 = pit8253_r(machine().device("pit8254"), space, 0);
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 0 Register Read: 0x%02x (%08x)\n", ret8, mem_mask );
return ret8;
case 0xb4/4:
- ret8 = pit8253_r(machine().device("pit8254"), 1);
+ ret8 = pit8253_r(machine().device("pit8254"), space, 1);
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 1 Register Read: 0x%02x (%08x)\n", ret8, mem_mask );
return ret8;
case 0xb8/4:
- ret8 = pit8253_r(machine().device("pit8254"), 2);
+ ret8 = pit8253_r(machine().device("pit8254"), space, 2);
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 2 Register Read: 0x%02x (%08x)\n", ret8, mem_mask );
return ret8;
case 0xbc/4:
- ret8 = pit8253_r(machine().device("pit8254"), 3);
+ ret8 = pit8253_r(machine().device("pit8254"), space, 3);
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Control Word Register Read: 0x%02x (%08x)\n", ret8, mem_mask );
return ret8;
default:
@@ -321,7 +321,7 @@ WRITE32_MEMBER(ip22_state::hpc3_pbus6_w)
{
case 0x004/4:
//verboselog(( machine, 0, "Parallel Control Write: %08x\n", data );
- pc_lpt_control_w(lpt, 0, data ^ 0x0d);
+ pc_lpt_control_w(lpt, space, 0, data ^ 0x0d);
//m_nIOC_ParCntl = data;
break;
case 0x030/4:
@@ -395,19 +395,19 @@ WRITE32_MEMBER(ip22_state::hpc3_pbus6_w)
break;
case 0xb0/4:
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 0 Register Write: 0x%08x (%08x)\n", data, mem_mask );
- pit8253_w(machine().device("pit8254"), 0, data & 0x000000ff);
+ pit8253_w(machine().device("pit8254"), space, 0, data & 0x000000ff);
return;
case 0xb4/4:
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 1 Register Write: 0x%08x (%08x)\n", data, mem_mask );
- pit8253_w(machine().device("pit8254"), 1, data & 0x000000ff);
+ pit8253_w(machine().device("pit8254"), space, 1, data & 0x000000ff);
return;
case 0xb8/4:
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Counter 2 Register Write: 0x%08x (%08x)\n", data, mem_mask );
- pit8253_w(machine().device("pit8254"), 2, data & 0x000000ff);
+ pit8253_w(machine().device("pit8254"), space, 2, data & 0x000000ff);
return;
case 0xbc/4:
//verboselog(( machine, 0, "HPC PBUS6 IOC4 Timer Control Word Register Write: 0x%08x (%08x)\n", data, mem_mask );
- pit8253_w(machine().device("pit8254"), 3, data & 0x000000ff);
+ pit8253_w(machine().device("pit8254"), space, 3, data & 0x000000ff);
return;
default:
//verboselog(( machine, 0, "Unknown HPC PBUS6 Write: 0x%08x: 0x%08x (%08x)\n", 0x1fbd9800 + ( offset << 2 ), data, mem_mask );
diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c
index 54a5897758a..5dff929d1fa 100644
--- a/src/mess/drivers/m20.c
+++ b/src/mess/drivers/m20.c
@@ -231,12 +231,12 @@ WRITE16_MEMBER(m20_state::port21_w)
READ16_MEMBER(m20_state::m20_i8259_r)
{
- return pic8259_r(m_i8259, offset)<<1;
+ return pic8259_r(m_i8259, space, offset)<<1;
}
WRITE16_MEMBER(m20_state::m20_i8259_w)
{
- pic8259_w(m_i8259, offset, (data>>1));
+ pic8259_w(m_i8259, space, offset, (data>>1));
}
WRITE_LINE_MEMBER( m20_state::pic_irq_line_w )
@@ -380,7 +380,7 @@ void m20_state::machine_reset()
m_maincpu->set_irq_acknowledge_callback(m20_irq_callback);
wd17xx_mr_w(m_wd177x, 0);
- //wd17xx_mr_w(m_wd177x, 1);
+ //wd17xx_mr_w(m_wd177x, space, 1);
memcpy(RAM, ROM, 8); // we need only the reset vector
m_maincpu->reset(); // reset the CPU to ensure it picks up the new vector
diff --git a/src/mess/drivers/mikromik.c b/src/mess/drivers/mikromik.c
index 9509b5ebc14..7c5caadcbad 100644
--- a/src/mess/drivers/mikromik.c
+++ b/src/mess/drivers/mikromik.c
@@ -96,11 +96,11 @@ READ8_MEMBER( mm1_state::mmu_r )
break;
case 2:
- data = i8275_r(m_crtc, offset & 0x01);
+ data = i8275_r(m_crtc, space, offset & 0x01);
break;
case 3:
- data = pit8253_r(m_pit, offset & 0x03);
+ data = pit8253_r(m_pit, space, offset & 0x03);
break;
case 4:
@@ -110,11 +110,11 @@ READ8_MEMBER( mm1_state::mmu_r )
case 5:
if (BIT(offset, 0))
{
- data = upd765_data_r(m_fdc, 0);
+ data = upd765_data_r(m_fdc, space, 0);
}
else
{
- data = upd765_status_r(m_fdc, 0);
+ data = upd765_status_r(m_fdc, space, 0);
}
break;
@@ -165,11 +165,11 @@ WRITE8_MEMBER( mm1_state::mmu_w )
break;
case 2:
- i8275_w(m_crtc, offset & 0x01, data);
+ i8275_w(m_crtc, space, offset & 0x01, data);
break;
case 3:
- pit8253_w(m_pit, offset & 0x03, data);
+ pit8253_w(m_pit, space, offset & 0x03, data);
break;
case 4:
@@ -179,7 +179,7 @@ WRITE8_MEMBER( mm1_state::mmu_w )
case 5:
if (BIT(offset, 0))
{
- upd765_data_w(m_fdc, 0, data);
+ upd765_data_w(m_fdc, space, 0, data);
}
break;
diff --git a/src/mess/drivers/msx.c b/src/mess/drivers/msx.c
index 17d1c3be9c5..e6e3a8e47bf 100644
--- a/src/mess/drivers/msx.c
+++ b/src/mess/drivers/msx.c
@@ -344,9 +344,9 @@ ADDRESS_MAP_END
static WRITE8_DEVICE_HANDLER( msx_ay8910_w )
{
if ( offset & 1 )
- ay8910_data_w( device, offset, data );
+ ay8910_data_w( device, space, offset, data );
else
- ay8910_address_w( device, offset, data );
+ ay8910_address_w( device, space, offset, data );
}
diff --git a/src/mess/drivers/multi8.c b/src/mess/drivers/multi8.c
index 097c971769d..eaf3c9c2feb 100644
--- a/src/mess/drivers/multi8.c
+++ b/src/mess/drivers/multi8.c
@@ -326,8 +326,8 @@ WRITE8_MEMBER( multi8_state::pal_w )
}
}
-READ8_MEMBER(multi8_state::ay8912_0_r){ return ay8910_r(machine().device("aysnd"),0); }
-READ8_MEMBER(multi8_state::ay8912_1_r){ return ay8910_r(machine().device("aysnd"),1); }
+READ8_MEMBER(multi8_state::ay8912_0_r){ return ay8910_r(machine().device("aysnd"),space, 0); }
+READ8_MEMBER(multi8_state::ay8912_1_r){ return ay8910_r(machine().device("aysnd"),space, 1); }
READ8_MEMBER( multi8_state::multi8_kanji_r )
{
diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c
index 73ba9293621..faa6d5f6d85 100644
--- a/src/mess/drivers/mz2000.c
+++ b/src/mess/drivers/mz2000.c
@@ -293,7 +293,7 @@ static READ8_DEVICE_HANDLER( mz2000_wd17xx_r )
mz2000_state *state = device->machine().driver_data<mz2000_state>();
if(state->m_has_fdc)
- return wd17xx_r(device, offset) ^ 0xff;
+ return wd17xx_r(device, space, offset) ^ 0xff;
return 0xff;
}
@@ -303,7 +303,7 @@ static WRITE8_DEVICE_HANDLER( mz2000_wd17xx_w )
mz2000_state *state = device->machine().driver_data<mz2000_state>();
if(state->m_has_fdc)
- wd17xx_w(device, offset, data ^ 0xff);
+ wd17xx_w(device, space, offset, data ^ 0xff);
}
WRITE8_MEMBER(mz2000_state::mz2000_fdc_w)
diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c
index 1c41f894bb7..5a0fe177f24 100644
--- a/src/mess/drivers/mz2500.c
+++ b/src/mess/drivers/mz2500.c
@@ -1253,13 +1253,13 @@ WRITE8_MEMBER(mz2500_state::palette4096_io_w)
static READ8_DEVICE_HANDLER( mz2500_wd17xx_r )
{
mz2500_state *state = device->machine().driver_data<mz2500_state>();
- return wd17xx_r(device, offset) ^ state->m_fdc_reverse;
+ return wd17xx_r(device, space, offset) ^ state->m_fdc_reverse;
}
static WRITE8_DEVICE_HANDLER( mz2500_wd17xx_w )
{
mz2500_state *state = device->machine().driver_data<mz2500_state>();
- wd17xx_w(device, offset, data ^ state->m_fdc_reverse);
+ wd17xx_w(device, space, offset, data ^ state->m_fdc_reverse);
}
READ8_MEMBER(mz2500_state::mz2500_bplane_latch_r)
@@ -2084,12 +2084,12 @@ static RP5C15_INTERFACE( rtc_intf )
static const z80sio_interface mz2500_sio_intf =
{
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
static MACHINE_CONFIG_START( mz2500, mz2500_state )
diff --git a/src/mess/drivers/mz6500.c b/src/mess/drivers/mz6500.c
index 2dfaf90dbe2..96c763c7912 100644
--- a/src/mess/drivers/mz6500.c
+++ b/src/mess/drivers/mz6500.c
@@ -60,13 +60,13 @@ void mz6500_state::video_start()
READ8_MEMBER( mz6500_state::fdc_r )
{
- return (offset) ? upd765_data_r(m_fdc, 0) : upd765_status_r(m_fdc, 0);
+ return (offset) ? upd765_data_r(m_fdc, space, 0) : upd765_status_r(m_fdc, space, 0);
}
WRITE8_MEMBER( mz6500_state::fdc_w )
{
if(offset)
- upd765_data_w(m_fdc, 0, data);
+ upd765_data_w(m_fdc, space, 0, data);
}
READ8_MEMBER( mz6500_state::mz6500_vram_r )
diff --git a/src/mess/drivers/nanos.c b/src/mess/drivers/nanos.c
index a283fff3bfe..e48e525e578 100644
--- a/src/mess/drivers/nanos.c
+++ b/src/mess/drivers/nanos.c
@@ -120,19 +120,19 @@ static Z80PIO_INTERFACE( pio2_intf )
/* Z80-SIO Interface */
-static void z80daisy_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( z80daisy_interrupt )
{
device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, state);
}
static const z80sio_interface sio_intf =
{
- z80daisy_interrupt, /* interrupt handler */
- NULL, /* DTR changed handler */
- NULL, /* RTS changed handler */
- NULL, /* BREAK changed handler */
- NULL, /* transmit handler */
- NULL /* receive handler */
+ DEVCB_LINE(z80daisy_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
/* Z80 Daisy Chain */
diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c
index c3096cf6ea1..6540e052d79 100644
--- a/src/mess/drivers/nascom1.c
+++ b/src/mess/drivers/nascom1.c
@@ -257,9 +257,9 @@ static const ay31015_config nascom1_ay31015_config =
AY_3_1015,
( XTAL_16MHz / 16 ) / 256,
( XTAL_16MHz / 16 ) / 256,
- nascom1_hd6402_si,
- nascom1_hd6402_so,
- NULL
+ DEVCB_HANDLER(nascom1_hd6402_si),
+ DEVCB_HANDLER(nascom1_hd6402_so),
+ DEVCB_NULL
};
diff --git a/src/mess/drivers/nes.c b/src/mess/drivers/nes.c
index 97ec91845ed..634e42f15fb 100644
--- a/src/mess/drivers/nes.c
+++ b/src/mess/drivers/nes.c
@@ -23,17 +23,17 @@
static READ8_DEVICE_HANDLER( psg_4015_r )
{
- return nes_psg_r(device, 0x15);
+ return nes_psg_r(device, space, 0x15);
}
static WRITE8_DEVICE_HANDLER( psg_4015_w )
{
- nes_psg_w(device, 0x15, data);
+ nes_psg_w(device, space, 0x15, data);
}
static WRITE8_DEVICE_HANDLER( psg_4017_w )
{
- nes_psg_w(device, 0x17, data);
+ nes_psg_w(device, space, 0x17, data);
}
WRITE8_MEMBER(nes_state::nes_vh_sprite_dma_w)
diff --git a/src/mess/drivers/ng_aes.c b/src/mess/drivers/ng_aes.c
index c0935068eca..0a845af96bc 100644
--- a/src/mess/drivers/ng_aes.c
+++ b/src/mess/drivers/ng_aes.c
@@ -330,7 +330,7 @@ WRITE16_MEMBER(ng_aes_state::io_control_w)
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 0x28: upd4990a_control_16_w(m_upd4990a, space, 0, data, mem_mask); break;
// case 0x30: break; // coin counters
// case 0x31: break; // coin counters
// case 0x32: break; // coin lockout
@@ -379,7 +379,7 @@ static void calendar_clock(void)
static CUSTOM_INPUT( get_calendar_status )
{
neogeo_state *state = field.machine().driver_data<neogeo_state>();
- return (upd4990a_databit_r(state->m_upd4990a, 0) << 1) | upd4990a_testbit_r(state->m_upd4990a, 0);
+ return (upd4990a_databit_r(state->m_upd4990a, state->generic_space(), 0) << 1) | upd4990a_testbit_r(state->m_upd4990a, state->generic_space(), 0);
}
diff --git a/src/mess/drivers/ngp.c b/src/mess/drivers/ngp.c
index ab50dcba6d3..3f7a90e01a5 100644
--- a/src/mess/drivers/ngp.c
+++ b/src/mess/drivers/ngp.c
@@ -229,7 +229,7 @@ WRITE8_MEMBER( ngp_state::ngp_io_w )
case 0x21: /* t6w28 "left" */
if ( m_io_reg[0x38] == 0x55 && m_io_reg[0x39] == 0xAA )
{
- t6w28_w( m_t6w28, 0, data );
+ t6w28_w( m_t6w28, space, 0, data );
}
break;
diff --git a/src/mess/drivers/osi.c b/src/mess/drivers/osi.c
index 42ea961fbd7..ec6b27116de 100644
--- a/src/mess/drivers/osi.c
+++ b/src/mess/drivers/osi.c
@@ -270,7 +270,7 @@ WRITE8_MEMBER( sb2m600_state::keyboard_w )
m_keylatch = data;
if (ioport("Sound")->read())
- discrete_sound_w(m_discrete, NODE_01, (data >> 2) & 0x0f);
+ discrete_sound_w(m_discrete, space, NODE_01, (data >> 2) & 0x0f);
}
WRITE8_MEMBER( uk101_state::keyboard_w )
@@ -298,7 +298,7 @@ WRITE8_MEMBER( sb2m600_state::ctrl_w )
m_32 = BIT(data, 0);
m_coloren = BIT(data, 1);
- discrete_sound_w(m_discrete, NODE_10, BIT(data, 4));
+ discrete_sound_w(m_discrete, space, NODE_10, BIT(data, 4));
}
WRITE8_MEMBER( c1p_state::osi630_ctrl_w )
diff --git a/src/mess/drivers/p8k.c b/src/mess/drivers/p8k.c
index 0c9e54123de..0d86b5da22e 100644
--- a/src/mess/drivers/p8k.c
+++ b/src/mess/drivers/p8k.c
@@ -201,7 +201,7 @@ static GENERIC_TERMINAL_INTERFACE( terminal_intf )
****************************************************************************/
-static void p8k_daisy_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( p8k_daisy_interrupt )
{
device->machine().device("maincpu")->execute().set_input_line(0, state);
}
@@ -300,36 +300,36 @@ static Z80PIO_INTERFACE( p8k_pio_2_intf )
/* Z80 SIO 0 */
-static WRITE8_DEVICE_HANDLER( pk8_sio_0_serial_transmit )
+static WRITE16_DEVICE_HANDLER( pk8_sio_0_serial_transmit )
{
// send character to terminal
}
static const z80sio_interface p8k_sio_0_intf =
{
- p8k_daisy_interrupt, /* interrupt handler */
- NULL, /* DTR changed handler */
- NULL, /* RTS changed handler */
- NULL, /* BREAK changed handler */
- pk8_sio_0_serial_transmit, /* transmit handler */
- NULL /* receive handler */
+ DEVCB_LINE(p8k_daisy_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(pk8_sio_0_serial_transmit), /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
/* Z80 SIO 1 */
-static WRITE8_DEVICE_HANDLER( pk8_sio_1_serial_transmit )
+static WRITE16_DEVICE_HANDLER( pk8_sio_1_serial_transmit )
{
// send character to terminal
}
static const z80sio_interface p8k_sio_1_intf =
{
- p8k_daisy_interrupt, /* interrupt handler */
- NULL, /* DTR changed handler */
- NULL, /* RTS changed handler */
- NULL, /* BREAK changed handler */
- pk8_sio_1_serial_transmit, /* transmit handler */
- NULL /* receive handler */
+ DEVCB_LINE(p8k_daisy_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(pk8_sio_1_serial_transmit), /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
/* Z80 Daisy Chain */
@@ -568,7 +568,7 @@ ADDRESS_MAP_END
****************************************************************************/
-static void p8k_16_daisy_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( p8k_16_daisy_interrupt )
{
// this must be studied a little bit more :-)
}
@@ -634,36 +634,36 @@ static const z80pio_interface p8k_16_pio_2_intf =
/* Z80 SIO 0 */
-static WRITE8_DEVICE_HANDLER( pk8_16_sio_0_serial_transmit )
+static WRITE16_DEVICE_HANDLER( pk8_16_sio_0_serial_transmit )
{
// send character to terminal
}
static const z80sio_interface p8k_16_sio_0_intf =
{
- p8k_16_daisy_interrupt, /* interrupt handler */
- NULL, /* DTR changed handler */
- NULL, /* RTS changed handler */
- NULL, /* BREAK changed handler */
- pk8_16_sio_0_serial_transmit, /* transmit handler */
- NULL /* receive handler */
+ DEVCB_LINE(p8k_16_daisy_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(pk8_16_sio_0_serial_transmit), /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
/* Z80 SIO 1 */
-static WRITE8_DEVICE_HANDLER( pk8_16_sio_1_serial_transmit )
+static WRITE16_DEVICE_HANDLER( pk8_16_sio_1_serial_transmit )
{
// send character to terminal
}
static const z80sio_interface p8k_16_sio_1_intf =
{
- p8k_16_daisy_interrupt, /* interrupt handler */
- NULL, /* DTR changed handler */
- NULL, /* RTS changed handler */
- NULL, /* BREAK changed handler */
- pk8_16_sio_1_serial_transmit, /* transmit handler */
- NULL /* receive handler */
+ DEVCB_LINE(p8k_16_daisy_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(pk8_16_sio_1_serial_transmit), /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
/* Z80 Daisy Chain */
diff --git a/src/mess/drivers/palm.c b/src/mess/drivers/palm.c
index 469f93ad388..3dbba60a9e2 100644
--- a/src/mess/drivers/palm.c
+++ b/src/mess/drivers/palm.c
@@ -171,32 +171,32 @@ static MC68328_INTERFACE(palm_dragonball_iface)
{
"maincpu",
- NULL, // Port A Output
- NULL, // Port B Output
- NULL, // Port C Output
- NULL, // Port D Output
- NULL, // Port E Output
- palm_port_f_out, // Port F Output
- NULL, // Port G Output
- NULL, // Port J Output
- NULL, // Port K Output
- NULL, // Port M Output
-
- NULL, // Port A Input
- NULL, // Port B Input
- palm_port_c_in, // Port C Input
- NULL, // Port D Input
- NULL, // Port E Input
- palm_port_f_in, // Port F Input
- NULL, // Port G Input
- NULL, // Port J Input
- NULL, // Port K Input
- NULL, // Port M Input
-
- palm_dac_transition,
-
- palm_spim_out,
- palm_spim_in,
+ DEVCB_NULL, // Port A Output
+ DEVCB_NULL, // Port B Output
+ DEVCB_NULL, // Port C Output
+ DEVCB_NULL, // Port D Output
+ DEVCB_NULL, // Port E Output
+ DEVCB_HANDLER(palm_port_f_out),// Port F Output
+ DEVCB_NULL, // Port G Output
+ DEVCB_NULL, // Port J Output
+ DEVCB_NULL, // Port K Output
+ DEVCB_NULL, // Port M Output
+
+ DEVCB_NULL, // Port A Input
+ DEVCB_NULL, // Port B Input
+ DEVCB_HANDLER(palm_port_c_in),// Port C Input
+ DEVCB_NULL, // Port D Input
+ DEVCB_NULL, // Port E Input
+ DEVCB_HANDLER(palm_port_f_in),// Port F Input
+ DEVCB_NULL, // Port G Input
+ DEVCB_NULL, // Port J Input
+ DEVCB_NULL, // Port K Input
+ DEVCB_NULL, // Port M Input
+
+ DEVCB_HANDLER(palm_dac_transition),
+
+ DEVCB_HANDLER(palm_spim_out),
+ DEVCB_HANDLER(palm_spim_in),
palm_spim_exchange
};
diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c
index 6a205d4d737..bd968ec9d2f 100644
--- a/src/mess/drivers/pasopia7.c
+++ b/src/mess/drivers/pasopia7.c
@@ -549,8 +549,8 @@ READ8_MEMBER( pasopia7_state::pasopia7_fdc_r )
{
switch(offset)
{
- case 4: return upd765_status_r(m_fdc, 0);
- case 5: return upd765_data_r(m_fdc, 0);
+ case 4: return upd765_status_r(m_fdc, space, 0);
+ case 5: return upd765_data_r(m_fdc, space, 0);
//case 6: bit 7 interrupt bit
}
@@ -563,7 +563,7 @@ WRITE8_MEMBER( pasopia7_state::pasopia7_fdc_w )
{
case 0: upd765_tc_w(m_fdc, 0); break;
case 2: upd765_tc_w(m_fdc, 1); break;
- case 5: upd765_data_w(m_fdc, 0, data); break;
+ case 5: upd765_data_w(m_fdc, space, 0, data); break;
case 6:
upd765_reset_w(m_fdc, data & 0x80);
floppy_mon_w(floppy_get_device(machine(), 0), (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
diff --git a/src/mess/drivers/pc1512.c b/src/mess/drivers/pc1512.c
index fc489455c22..dcc927fe5fb 100644
--- a/src/mess/drivers/pc1512.c
+++ b/src/mess/drivers/pc1512.c
@@ -474,11 +474,11 @@ READ8_MEMBER( pc1512_state::fdc_r )
switch (offset)
{
case 4:
- data = upd765_status_r(m_fdc, 0);
+ data = upd765_status_r(m_fdc, space, 0);
break;
case 5:
- data = upd765_data_r(m_fdc, 0);
+ data = upd765_data_r(m_fdc, space, 0);
break;
}
@@ -529,7 +529,7 @@ WRITE8_MEMBER( pc1512_state::fdc_w )
break;
case 5:
- upd765_data_w(m_fdc, 0, data);
+ upd765_data_w(m_fdc, space, 0, data);
break;
}
}
@@ -551,8 +551,8 @@ READ8_MEMBER( pc1640_state::io_r )
bool decoded = false;
if ( addr <= 0x00f) { data = m_dmac->read(space, offset & 0x0f); decoded = true; }
- else if (addr >= 0x020 && addr <= 0x021) { data = pic8259_r(m_pic, offset & 0x01); decoded = true; }
- else if (addr >= 0x040 && addr <= 0x043) { data = pit8253_r(m_pit, offset & 0x03); decoded = true; }
+ else if (addr >= 0x020 && addr <= 0x021) { data = pic8259_r(m_pic, space, offset & 0x01); decoded = true; }
+ else if (addr >= 0x040 && addr <= 0x043) { data = pit8253_r(m_pit, space, offset & 0x03); decoded = true; }
else if (addr >= 0x060 && addr <= 0x06f) { data = system_r(space, offset & 0x0f); decoded = true; }
else if (addr >= 0x070 && addr <= 0x073) { data = m_rtc->read(space, offset & 0x01); decoded = true; }
else if (addr >= 0x078 && addr <= 0x07f) { data = mouse_r(space, offset & 0x07); decoded = true; }
@@ -910,7 +910,7 @@ READ8_MEMBER( pc1512_state::ior1_r )
READ8_MEMBER( pc1512_state::ior2_r )
{
if (m_nden)
- return upd765_dack_r(m_fdc, 0);
+ return upd765_dack_r(m_fdc, space, 0);
else
return m_bus->dack_r(2);
}
@@ -934,7 +934,7 @@ WRITE8_MEMBER( pc1512_state::iow1_w )
WRITE8_MEMBER( pc1512_state::iow2_w )
{
if (m_nden)
- upd765_dack_w(m_fdc, 0, data);
+ upd765_dack_w(m_fdc, space, 0, data);
else
m_bus->dack_w(2, data);
}
diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c
index e29e295ff8c..66f174370f1 100644
--- a/src/mess/drivers/pc8801.c
+++ b/src/mess/drivers/pc8801.c
@@ -1688,23 +1688,23 @@ WRITE8_MEMBER(pc8801_state::pc8801_rtc_w)
READ8_MEMBER(pc8801_state::pc8801_sound_board_r)
{
if(m_has_opna)
- return ym2608_r(machine().device("opna"), offset);
+ return ym2608_r(machine().device("opna"), space, offset);
- return (offset & 2) ? 0xff : ym2203_r(machine().device("opn"), offset);
+ return (offset & 2) ? 0xff : ym2203_r(machine().device("opn"), space, offset);
}
WRITE8_MEMBER(pc8801_state::pc8801_sound_board_w)
{
if(m_has_opna)
- ym2608_w(machine().device("opna"), offset,data);
+ ym2608_w(machine().device("opna"), space, offset,data);
else if((offset & 2) == 0)
- ym2203_w(machine().device("opn"), offset,data);
+ ym2203_w(machine().device("opn"), space, offset,data);
}
READ8_MEMBER(pc8801_state::pc8801_opna_r)
{
if(m_has_opna && (offset & 2) == 0)
- return ym2608_r(machine().device("opna"), (offset & 1) | ((offset & 4) >> 1));
+ return ym2608_r(machine().device("opna"), space, (offset & 1) | ((offset & 4) >> 1));
return 0xff;
}
@@ -1712,7 +1712,7 @@ READ8_MEMBER(pc8801_state::pc8801_opna_r)
WRITE8_MEMBER(pc8801_state::pc8801_opna_w)
{
if(m_has_opna && (offset & 2) == 0)
- ym2608_w(machine().device("opna"), (offset & 1) | ((offset & 4) >> 1),data);
+ ym2608_w(machine().device("opna"), space, (offset & 1) | ((offset & 4) >> 1),data);
else if(m_has_opna && offset == 2)
{
m_sound_irq_mask = ((data & 0x80) == 0);
diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c
index 621a9ed4746..a5cedb3e992 100644
--- a/src/mess/drivers/pc88va.c
+++ b/src/mess/drivers/pc88va.c
@@ -970,8 +970,8 @@ READ8_MEMBER(pc88va_state::pc88va_fdc_r)
/* ---x ---- RDY: (0) Busy (1) Ready */
case 0x06: // FDC control port 2
return 0;
- case 0x08: return upd765_status_r(machine().device("upd765"), 0);
- case 0x0a: return upd765_data_r(machine().device("upd765"), 0);
+ case 0x08: return upd765_status_r(machine().device("upd765"), space, 0);
+ case 0x0a: return upd765_data_r(machine().device("upd765"), space, 0);
}
return 0xff;
@@ -1013,7 +1013,7 @@ WRITE8_MEMBER(pc88va_state::pc88va_fdc_w)
printf("%02x\n",data);
break; // FDC control port 2
case 0x08: break; // UPD765 status
- case 0x0a: upd765_data_w(machine().device("upd765"), 0,data); break;
+ case 0x0a: upd765_data_w(machine().device("upd765"), space, 0,data); break;
}
}
diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c
index 4d0c6a4ed59..b980971437e 100644
--- a/src/mess/drivers/pc9801.c
+++ b/src/mess/drivers/pc9801.c
@@ -611,11 +611,11 @@ READ8_MEMBER(pc9801_state::pc9801_00_r)
if(offset & 0x14)
printf("Read to undefined port [%02x]\n",offset+0x00);
else
- return pic8259_r(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), (offset & 2) >> 1);
+ return pic8259_r(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), space, (offset & 2) >> 1);
}
else // odd
{
- return i8237_r(machine().device("dma8237"), (offset & 0x1e) >> 1);
+ return i8237_r(machine().device("dma8237"), space, (offset & 0x1e) >> 1);
}
return 0xff;
@@ -628,11 +628,11 @@ WRITE8_MEMBER(pc9801_state::pc9801_00_w)
if(offset & 0x14)
printf("Write to undefined port [%02x] <- %02x\n",offset+0x00,data);
else
- pic8259_w(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), (offset & 2) >> 1, data);
+ pic8259_w(machine().device((offset & 8) ? "pic8259_slave" : "pic8259_master"), space, (offset & 2) >> 1, data);
}
else // odd
{
- i8237_w(machine().device("dma8237"), (offset & 0x1e) >> 1, data);
+ i8237_w(machine().device("dma8237"), space, (offset & 0x1e) >> 1, data);
}
}
@@ -875,7 +875,7 @@ READ8_MEMBER(pc9801_state::pc9801_70_r)
if(offset & 0x08)
printf("Read to undefined port [%02x]\n",offset+0x70);
else
- return pit8253_r(machine().device("pit8253"), (offset & 6) >> 1);
+ return pit8253_r(machine().device("pit8253"), space, (offset & 6) >> 1);
}
return 0xff;
@@ -892,7 +892,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_70_w)
else // odd
{
if(offset < 0x08)
- pit8253_w(machine().device("pit8253"), (offset & 6) >> 1, data);
+ pit8253_w(machine().device("pit8253"), space, (offset & 6) >> 1, data);
else
printf("Write to undefined port [%02x] <- %02x\n",offset+0x70,data);
}
@@ -1038,8 +1038,8 @@ READ8_MEMBER(pc9801_state::pc9801_fdc_2hd_r)
{
switch(offset & 6)
{
- case 0: return upd765_status_r(machine().device("upd765_2hd"),0);
- case 2: return upd765_data_r(machine().device("upd765_2hd"),0);
+ case 0: return upd765_status_r(machine().device("upd765_2hd"),space, 0);
+ case 2: return upd765_data_r(machine().device("upd765_2hd"),space, 0);
case 4: return 0x5f; //unknown port meaning
}
}
@@ -1065,7 +1065,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_fdc_2hd_w)
switch(offset & 6)
{
case 0: printf("Write to undefined port [%02x] <- %02x\n",offset+0x90,data); return;
- case 2: upd765_data_w(machine().device("upd765_2hd"),0,data); return;
+ case 2: upd765_data_w(machine().device("upd765_2hd"),space, 0,data); return;
case 4:
printf("%02x ctrl\n",data);
if(((m_fdc_2hd_ctrl & 0x80) == 0) && (data & 0x80))
@@ -1099,8 +1099,8 @@ READ8_MEMBER(pc9801_state::pc9801_fdc_2dd_r)
{
switch(offset & 6)
{
- case 0: return upd765_status_r(machine().device("upd765_2dd"),0);
- case 2: return upd765_data_r(machine().device("upd765_2dd"),0);
+ case 0: return upd765_status_r(machine().device("upd765_2dd"),space, 0);
+ case 2: return upd765_data_r(machine().device("upd765_2dd"),space, 0);
case 4: return 0x40; //unknown port meaning, might be 0x70
}
}
@@ -1121,7 +1121,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_fdc_2dd_w)
switch(offset & 6)
{
case 0: printf("Write to undefined port [%02x] <- %02x\n",offset+0xc8,data); return;
- case 2: upd765_data_w(machine().device("upd765_2dd"),0,data); return;
+ case 2: upd765_data_w(machine().device("upd765_2dd"),space, 0,data); return;
case 4:
printf("%02x ctrl\n",data);
if(((m_fdc_2dd_ctrl & 0x80) == 0) && (data & 0x80))
@@ -1182,7 +1182,7 @@ WRITE8_MEMBER(pc9801_state::pc9801_gvram_w)
READ8_MEMBER(pc9801_state::pc9801_opn_r)
{
if((offset & 1) == 0)
- return ym2203_r(machine().device("opn"),offset >> 1);
+ return ym2203_r(machine().device("opn"),space, offset >> 1);
else // odd
{
printf("Read to undefined port [%02x]\n",offset+0x188);
@@ -1193,7 +1193,7 @@ READ8_MEMBER(pc9801_state::pc9801_opn_r)
WRITE8_MEMBER(pc9801_state::pc9801_opn_w)
{
if((offset & 1) == 0)
- ym2203_w(machine().device("opn"),offset >> 1,data);
+ ym2203_w(machine().device("opn"),space, offset >> 1,data);
else // odd
{
printf("Write to undefined port [%02x] %02x\n",offset+0x188,data);
@@ -1411,8 +1411,8 @@ READ8_MEMBER(pc9801_state::pc9801rs_2hd_r)
{
switch(offset & 6)
{
- case 0: return upd765_status_r(machine().device("upd765_2hd"),0);
- case 2: return upd765_data_r(machine().device("upd765_2hd"),0);
+ case 0: return upd765_status_r(machine().device("upd765_2hd"),space, 0);
+ case 2: return upd765_data_r(machine().device("upd765_2hd"),space, 0);
case 4: return 0x40; //2hd flag
}
}
@@ -1428,7 +1428,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_2hd_w)
{
switch(offset & 6)
{
- case 2: upd765_data_w(machine().device("upd765_2hd"),0,data); return;
+ case 2: upd765_data_w(machine().device("upd765_2hd"),space, 0,data); return;
case 4: printf("%02x FDC ctrl\n",data); return;
}
}
@@ -1446,8 +1446,8 @@ READ8_MEMBER(pc9801_state::pc9801rs_2dd_r)
{
switch(offset & 6)
{
- case 0: return upd765_status_r(machine().device("upd765_2hd"),0);
- case 2: return upd765_data_r(machine().device("upd765_2hd"),0);
+ case 0: return upd765_status_r(machine().device("upd765_2hd"),space, 0);
+ case 2: return upd765_data_r(machine().device("upd765_2hd"),space, 0);
case 4: return 0x70; //2dd flag
}
}
@@ -1467,7 +1467,7 @@ WRITE8_MEMBER(pc9801_state::pc9801rs_2dd_w)
{
switch(offset & 6)
{
- case 2: upd765_data_w(machine().device("upd765_2hd"),0,data); return;
+ case 2: upd765_data_w(machine().device("upd765_2hd"),space, 0,data); return;
case 4: printf("%02x FDC ctrl\n",data); return;
}
}
@@ -2377,17 +2377,17 @@ static READ8_DEVICE_HANDLER( ppi_fdd_porta_r )
static READ8_DEVICE_HANDLER( ppi_fdd_portb_r )
{
- return 0xff; //upd765_status_r(device->machine().device("upd765_2dd"),0);
+ return 0xff; //upd765_status_r(device->machine().device("upd765_2dd"),space, 0);
}
static READ8_DEVICE_HANDLER( ppi_fdd_portc_r )
{
- return 0xff; //upd765_data_r(device->machine().device("upd765_2dd"),0);
+ return 0xff; //upd765_data_r(device->machine().device("upd765_2dd"),space, 0);
}
static WRITE8_DEVICE_HANDLER( ppi_fdd_portc_w )
{
- //upd765_data_w(device->machine().device("upd765_2dd"),0,data);
+ //upd765_data_w(device->machine().device("upd765_2dd"),space, 0,data);
}
static I8255A_INTERFACE( ppi_fdd_intf )
diff --git a/src/mess/drivers/pcm.c b/src/mess/drivers/pcm.c
index bf969becbda..26752375c09 100644
--- a/src/mess/drivers/pcm.c
+++ b/src/mess/drivers/pcm.c
@@ -269,12 +269,12 @@ static Z80PIO_INTERFACE( pio_s_intf )
static const z80sio_interface sio_intf =
{
- 0, //DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), // interrupt callback
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- 0, /* transmit handler */
- 0 /* receive handler */
+ DEVCB_NULL, //DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), // interrupt callback
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
diff --git a/src/mess/drivers/pcw.c b/src/mess/drivers/pcw.c
index 3bc98acfd95..8fb83df40f4 100644
--- a/src/mess/drivers/pcw.c
+++ b/src/mess/drivers/pcw.c
@@ -641,10 +641,10 @@ READ8_MEMBER(pcw_state::pcw_fdc_r)
/* from Jacob Nevins docs. FDC I/O is not fully decoded */
if (offset & 1)
{
- return upd765_data_r(fdc, 0);
+ return upd765_data_r(fdc, space, 0);
}
- return upd765_status_r(fdc, 0);
+ return upd765_status_r(fdc, space, 0);
}
WRITE8_MEMBER(pcw_state::pcw_fdc_w)
@@ -653,7 +653,7 @@ WRITE8_MEMBER(pcw_state::pcw_fdc_w)
/* from Jacob Nevins docs. FDC I/O is not fully decoded */
if (offset & 1)
{
- upd765_data_w(fdc, 0,data);
+ upd765_data_w(fdc, space, 0,data);
}
}
diff --git a/src/mess/drivers/pes.c b/src/mess/drivers/pes.c
index dc386c4e15e..49a651826be 100644
--- a/src/mess/drivers/pes.c
+++ b/src/mess/drivers/pes.c
@@ -139,7 +139,7 @@ WRITE8_MEMBER( pes_state::port1_w )
#ifdef DEBUG_PORTS
logerror("port1 write: tms5220 data written: %02X\n", data);
#endif
- tms5220_data_w(state->m_speech, 0, data);
+ tms5220_data_w(state->m_speech, space, 0, data);
}
@@ -147,7 +147,7 @@ READ8_MEMBER( pes_state::port1_r )
{
UINT8 data = 0xFF;
pes_state *state = machine().driver_data<pes_state>();
- data = tms5220_status_r(state->m_speech, 0);
+ data = tms5220_status_r(state->m_speech, space, 0);
#ifdef DEBUG_PORTS
logerror("port1 read: tms5220 data read: 0x%02X\n", data);
#endif
diff --git a/src/mess/drivers/plus4.c b/src/mess/drivers/plus4.c
index 8de3c5eba31..7ea561e7ad7 100644
--- a/src/mess/drivers/plus4.c
+++ b/src/mess/drivers/plus4.c
@@ -157,7 +157,7 @@ UINT8 plus4_state::read_memory(address_space &space, offs_t offset, int ba, int
if (!scs && m_t6721)
{
- data = t6721_speech_r(m_t6721, offset & 0x03);
+ data = t6721_speech_r(m_t6721, space, offset & 0x03);
}
else if (!user)
{
@@ -286,7 +286,7 @@ WRITE8_MEMBER( plus4_state::write )
if (!scs && m_t6721)
{
- t6721_speech_w(m_t6721, offset & 0x03, data);
+ t6721_speech_w(m_t6721, space, offset & 0x03, data);
}
else if (!user && m_spi_user)
{
diff --git a/src/mess/drivers/ptcsol.c b/src/mess/drivers/ptcsol.c
index 3373cec5c27..543c7ee5628 100644
--- a/src/mess/drivers/ptcsol.c
+++ b/src/mess/drivers/ptcsol.c
@@ -522,9 +522,9 @@ static const ay31015_config sol20_ay31015_config =
AY_3_1015,
4800.0,
4800.0,
- NULL,
- NULL,
- NULL
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
diff --git a/src/mess/drivers/ql.c b/src/mess/drivers/ql.c
index 96488294d6e..94ec839cb1d 100644
--- a/src/mess/drivers/ql.c
+++ b/src/mess/drivers/ql.c
@@ -268,10 +268,10 @@ READ8_MEMBER( ql_state::disk_io_r )
switch (offset)
{
- case 0x0000 : result=wd17xx_r(m_fdc, offset); break;
- case 0x0001 : result=wd17xx_r(m_fdc, offset); break;
- case 0x0002 : result=wd17xx_r(m_fdc, offset); break;
- case 0x0003 : result=wd17xx_r(m_fdc, offset); break;
+ case 0x0000 : result=wd17xx_r(m_fdc, space, offset); break;
+ case 0x0001 : result=wd17xx_r(m_fdc, space, offset); break;
+ case 0x0002 : result=wd17xx_r(m_fdc, space, offset); break;
+ case 0x0003 : result=wd17xx_r(m_fdc, space, offset); break;
default : logerror("%s DiskIO undefined read : from %08X\n",machine().describe_context(),m_disk_io_base+offset); break;
}
@@ -285,10 +285,10 @@ WRITE8_MEMBER( ql_state::disk_io_w )
switch (offset)
{
- case 0x0000 : wd17xx_w(m_fdc, offset, data); break;
- case 0x0001 : wd17xx_w(m_fdc, offset, data); break;
- case 0x0002 : wd17xx_w(m_fdc, offset, data); break;
- case 0x0003 : wd17xx_w(m_fdc, offset, data); break;
+ case 0x0000 : wd17xx_w(m_fdc, space, offset, data); break;
+ case 0x0001 : wd17xx_w(m_fdc, space, offset, data); break;
+ case 0x0002 : wd17xx_w(m_fdc, space, offset, data); break;
+ case 0x0003 : wd17xx_w(m_fdc, space, offset, data); break;
case 0x0004 : if(m_disk_type==DISK_TYPE_SANDY)
sandy_set_control(data);break;
case 0x0008 : if(m_disk_type==DISK_TYPE_SANDY)
diff --git a/src/mess/drivers/rt1715.c b/src/mess/drivers/rt1715.c
index d0fbec1c818..cb68e5e5bcf 100644
--- a/src/mess/drivers/rt1715.c
+++ b/src/mess/drivers/rt1715.c
@@ -274,12 +274,12 @@ static const z80ctc_interface rt1715_ctc_intf =
static const z80sio_interface rt1715_sio_intf =
{
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
static const z80pio_interface rt1715_pio_data_intf =
diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c
index 23e45ee8740..ae045d3f227 100644
--- a/src/mess/drivers/smc777.c
+++ b/src/mess/drivers/smc777.c
@@ -366,13 +366,13 @@ READ8_MEMBER(smc777_state::smc777_fdc1_r)
switch(offset)
{
case 0x00:
- return wd17xx_status_r(dev,offset) ^ 0xff;
+ return wd17xx_status_r(dev,space, offset) ^ 0xff;
case 0x01:
- return wd17xx_track_r(dev,offset) ^ 0xff;
+ return wd17xx_track_r(dev,space, offset) ^ 0xff;
case 0x02:
- return wd17xx_sector_r(dev,offset) ^ 0xff;
+ return wd17xx_sector_r(dev,space, offset) ^ 0xff;
case 0x03:
- return wd17xx_data_r(dev,offset) ^ 0xff;
+ return wd17xx_data_r(dev,space, offset) ^ 0xff;
case 0x04: //irq / drq status
//popmessage("%02x %02x\n",m_fdc_irq_flag,m_fdc_drq_flag);
@@ -391,16 +391,16 @@ WRITE8_MEMBER(smc777_state::smc777_fdc1_w)
switch(offset)
{
case 0x00:
- wd17xx_command_w(dev,offset,data ^ 0xff);
+ wd17xx_command_w(dev,space, offset,data ^ 0xff);
break;
case 0x01:
- wd17xx_track_w(dev,offset,data ^ 0xff);
+ wd17xx_track_w(dev,space, offset,data ^ 0xff);
break;
case 0x02:
- wd17xx_sector_w(dev,offset,data ^ 0xff);
+ wd17xx_sector_w(dev,space, offset,data ^ 0xff);
break;
case 0x03:
- wd17xx_data_w(dev,offset,data ^ 0xff);
+ wd17xx_data_w(dev,space, offset,data ^ 0xff);
break;
case 0x04:
// ---- xxxx select floppy drive (yes, 15 of them, A to P)
diff --git a/src/mess/drivers/snes.c b/src/mess/drivers/snes.c
index 9be30c7b245..813ead36b3a 100644
--- a/src/mess/drivers/snes.c
+++ b/src/mess/drivers/snes.c
@@ -47,12 +47,12 @@
static READ8_DEVICE_HANDLER( spc_ram_100_r )
{
- return spc_ram_r(device, offset + 0x100);
+ return spc_ram_r(device, space, offset + 0x100);
}
static WRITE8_DEVICE_HANDLER( spc_ram_100_w )
{
- spc_ram_w(device, offset + 0x100, data);
+ spc_ram_w(device, space, offset + 0x100, data);
}
/*************************************
diff --git a/src/mess/drivers/sorcerer.c b/src/mess/drivers/sorcerer.c
index 050e860c607..0cbb90faba9 100644
--- a/src/mess/drivers/sorcerer.c
+++ b/src/mess/drivers/sorcerer.c
@@ -390,9 +390,9 @@ static const ay31015_config sorcerer_ay31015_config =
AY_3_1015,
4800.0,
4800.0,
- NULL,
- NULL,
- NULL
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
diff --git a/src/mess/drivers/specpls3.c b/src/mess/drivers/specpls3.c
index 835fbea0dd4..4c49bfce559 100644
--- a/src/mess/drivers/specpls3.c
+++ b/src/mess/drivers/specpls3.c
@@ -185,7 +185,7 @@ static WRITE8_HANDLER(spectrum_plus3_port_3ffd_w)
{
spectrum_state *state = space->machine().driver_data<spectrum_state>();
if (state->m_floppy==1)
- upd765_data_w(space->machine().device("upd765"), 0,data);
+ upd765_data_w(space->machine().device("upd765"), *space, 0,data);
}
static READ8_HANDLER(spectrum_plus3_port_3ffd_r)
@@ -194,7 +194,7 @@ static READ8_HANDLER(spectrum_plus3_port_3ffd_r)
if (state->m_floppy==0)
return 0xff;
else
- return upd765_data_r(space->machine().device("upd765"), 0);
+ return upd765_data_r(space->machine().device("upd765"), *space, 0);
}
@@ -204,7 +204,7 @@ static READ8_HANDLER(spectrum_plus3_port_2ffd_r)
if (state->m_floppy==0)
return 0xff;
else
- return upd765_status_r(space->machine().device("upd765"), 0);
+ return upd765_status_r(space->machine().device("upd765"), *space, 0);
}
diff --git a/src/mess/drivers/ssystem3.c b/src/mess/drivers/ssystem3.c
index 428af2a58a8..a1e99fdfd08 100644
--- a/src/mess/drivers/ssystem3.c
+++ b/src/mess/drivers/ssystem3.c
@@ -202,16 +202,15 @@ static READ8_DEVICE_HANDLER(ssystem3_via_read_b)
static WRITE8_DEVICE_HANDLER(ssystem3_via_write_b)
{
via6522_device *via_0 = device->machine().device<via6522_device>("via6522_0");
- address_space* space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
UINT8 d;
ssystem3_playfield_write(device->machine(), data&1, data&8);
ssystem3_lcd_write(device->machine(), data&4, data&2);
- d=ssystem3_via_read_b(via_0, 0)&~0x40;
+ d=ssystem3_via_read_b(via_0, space, 0, mem_mask)&~0x40;
if (data&0x80) d|=0x40;
// d&=~0x8f;
- via_0->write_portb(*space,0, d );
+ via_0->write_portb(space,0, d );
}
static const via6522_interface ssystem3_via_config=
diff --git a/src/mess/drivers/svision.c b/src/mess/drivers/svision.c
index ad0410d51a7..caf34954e53 100644
--- a/src/mess/drivers/svision.c
+++ b/src/mess/drivers/svision.c
@@ -150,10 +150,10 @@ WRITE8_MEMBER(svision_state::svision_w)
svision_soundport_w(m_sound, 1, offset & 3, data);
break;
case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c:
- svision_sounddma_w(m_sound, offset - 0x18, data);
+ svision_sounddma_w(m_sound, space, offset - 0x18, data);
break;
case 0x28: case 0x29: case 0x2a:
- svision_noise_w(m_sound, offset - 0x28, data);
+ svision_noise_w(m_sound, space, offset - 0x28, data);
break;
default:
logerror("%.6f svision write %04x %02x\n", machine().time().as_double(), offset, data);
diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c
index 11f71b0b424..0816c447415 100644
--- a/src/mess/drivers/trs80.c
+++ b/src/mess/drivers/trs80.c
@@ -557,9 +557,9 @@ static const ay31015_config trs80_ay31015_config =
AY_3_1015,
0.0,
0.0,
- NULL,
- NULL,
- NULL
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
static const floppy_interface trs80_floppy_interface =
diff --git a/src/mess/drivers/trs80m2.c b/src/mess/drivers/trs80m2.c
index b0e7c52fd48..fa1a930e8ff 100644
--- a/src/mess/drivers/trs80m2.c
+++ b/src/mess/drivers/trs80m2.c
@@ -334,12 +334,12 @@ WRITE8_MEMBER( trs80m2_state::nmi_w )
READ8_MEMBER( trs80m2_state::fdc_r )
{
- return wd17xx_r(m_fdc, offset) ^ 0xff;
+ return wd17xx_r(m_fdc, space, offset) ^ 0xff;
}
WRITE8_MEMBER( trs80m2_state::fdc_w )
{
- wd17xx_w(m_fdc, offset, data ^ 0xff);
+ wd17xx_w(m_fdc, space, offset, data ^ 0xff);
}
WRITE8_MEMBER( trs80m16_state::tcl_w )
diff --git a/src/mess/drivers/vic10.c b/src/mess/drivers/vic10.c
index 815829dfa38..df5b55adeff 100644
--- a/src/mess/drivers/vic10.c
+++ b/src/mess/drivers/vic10.c
@@ -68,7 +68,7 @@ READ8_MEMBER( vic10_state::read )
}
else if (offset >= 0xdc00 && offset < 0xe000)
{
- data = mos6526_r(m_cia, offset & 0x0f);
+ data = mos6526_r(m_cia, space, offset & 0x0f);
}
else if (offset >= 0xe000)
{
@@ -111,7 +111,7 @@ WRITE8_MEMBER( vic10_state::write )
}
else if (offset >= 0xdc00 && offset < 0xe000)
{
- mos6526_w(m_cia, offset & 0x0f, data);
+ mos6526_w(m_cia, space, offset & 0x0f, data);
}
m_exp->cd_w(space, offset, data, lorom, uprom, exram);
@@ -251,10 +251,10 @@ static MOS6566_INTERFACE( vic_intf )
// sid6581_interface sid_intf
//-------------------------------------------------
-UINT8 vic10_state::paddle_read(int which)
+UINT8 vic10_state::paddle_read(address_space &space, int which)
{
int pot1 = 0xff, pot2 = 0xff, pot3 = 0xff, pot4 = 0xff, temp;
- UINT8 cia0porta = mos6526_pa_r(m_cia, 0);
+ UINT8 cia0porta = mos6526_pa_r(m_cia, space, 0);
int controller1 = ioport("CTRLSEL")->read() & 0x07;
int controller2 = ioport("CTRLSEL")->read() & 0x70;
// Notice that only a single input is defined for Mouse & Lightpen in both ports
@@ -366,12 +366,12 @@ UINT8 vic10_state::paddle_read(int which)
READ8_MEMBER( vic10_state::sid_potx_r )
{
- return paddle_read(0);
+ return paddle_read(space, 0);
}
READ8_MEMBER( vic10_state::sid_poty_r )
{
- return paddle_read(1);
+ return paddle_read(space, 1);
}
static MOS6581_INTERFACE( sid_intf )
@@ -409,7 +409,7 @@ READ8_MEMBER( vic10_state::cia_pa_r )
*/
- UINT8 cia0portb = mos6526_pb_r(m_cia, 0);
+ UINT8 cia0portb = mos6526_pb_r(m_cia, space, 0);
return cbm_common_cia0_port_a_r(m_cia, cia0portb);
}
@@ -431,7 +431,7 @@ READ8_MEMBER( vic10_state::cia_pb_r )
*/
- UINT8 cia0porta = mos6526_pa_r(m_cia, 0);
+ UINT8 cia0porta = mos6526_pa_r(m_cia, space, 0);
return cbm_common_cia0_port_b_r(m_cia, cia0porta);
}
diff --git a/src/mess/drivers/vidbrain.c b/src/mess/drivers/vidbrain.c
index f695d54e526..bad5ffe29d3 100644
--- a/src/mess/drivers/vidbrain.c
+++ b/src/mess/drivers/vidbrain.c
@@ -141,7 +141,7 @@ WRITE8_MEMBER( vidbrain_state::sound_w )
if (!m_sound_clk && sound_clk)
{
- //discrete_sound_w(m_discrete, NODE_01, m_keylatch & 0x03);
+ //discrete_sound_w(m_discrete, space, NODE_01, m_keylatch & 0x03);
UINT8 dac_data = 0;
diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c
index 14a6c97200e..b0317e12c80 100644
--- a/src/mess/drivers/vip.c
+++ b/src/mess/drivers/vip.c
@@ -482,7 +482,7 @@ static COSMAC_SC_WRITE( vip_sc_w )
WRITE_LINE_MEMBER( vip_state::q_w )
{
// sound output
- discrete_sound_w(m_beeper, NODE_01, state);
+ discrete_sound_w(m_beeper, machine().driver_data()->generic_space(), NODE_01, state);
// Q led
set_led_status(machine(), LED_Q, state);
@@ -671,7 +671,7 @@ void vip_state::machine_start()
set_led_status(machine(), LED_POWER, 1);
// reset sound
- discrete_sound_w(m_beeper, NODE_01, 0);
+ discrete_sound_w(m_beeper, machine().driver_data()->generic_space(), NODE_01, 0);
// state saving
save_item(NAME(m_8000));
diff --git a/src/mess/drivers/vixen.c b/src/mess/drivers/vixen.c
index e2363ade506..c7639726a18 100644
--- a/src/mess/drivers/vixen.c
+++ b/src/mess/drivers/vixen.c
@@ -557,7 +557,7 @@ WRITE8_MEMBER( vixen_state::i8155_pc_w )
m_256 = BIT(data, 4);
// beep enable
- discrete_sound_w(m_discrete, NODE_01, BIT(data, 5));
+ discrete_sound_w(m_discrete, space, NODE_01, BIT(data, 5));
}
static I8155_INTERFACE( i8155_intf )
diff --git a/src/mess/drivers/vt100.c b/src/mess/drivers/vt100.c
index 712dcd9555b..c232b72458d 100644
--- a/src/mess/drivers/vt100.c
+++ b/src/mess/drivers/vt100.c
@@ -95,7 +95,7 @@ ADDRESS_MAP_END
READ8_MEMBER( vt100_state::vt100_flags_r )
{
UINT8 ret = 0;
- ret |= vt_video_lba7_r(m_crtc, 0) << 6;
+ ret |= vt_video_lba7_r(m_crtc, space, 0) << 6;
ret |= m_keyboard_int << 7;
return ret;
}
diff --git a/src/mess/drivers/wangpc.c b/src/mess/drivers/wangpc.c
index 32a044cb718..4ce8502dafc 100644
--- a/src/mess/drivers/wangpc.c
+++ b/src/mess/drivers/wangpc.c
@@ -715,7 +715,7 @@ READ8_MEMBER( wangpc_state::ior2_r )
if (m_disable_dreq2)
return m_bus->dack_r(space, 2);
else
- return upd765_dack_r(m_fdc, 0);
+ return upd765_dack_r(m_fdc, space, 0);
}
WRITE8_MEMBER( wangpc_state::iow2_w )
@@ -723,7 +723,7 @@ WRITE8_MEMBER( wangpc_state::iow2_w )
if (m_disable_dreq2)
m_bus->dack_w(space, 2, data);
else
- upd765_dack_w(m_fdc, 0, data);
+ upd765_dack_w(m_fdc, space, 0, data);
}
WRITE_LINE_MEMBER( wangpc_state::dack0_w )
diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c
index 68484ee1615..7d30350b316 100644
--- a/src/mess/drivers/x1.c
+++ b/src/mess/drivers/x1.c
@@ -999,13 +999,13 @@ READ8_MEMBER( x1_state::x1_fdc_r )
switch(offset+0xff8)
{
case 0x0ff8:
- return wd17xx_status_r(m_fdc,offset);
+ return wd17xx_status_r(m_fdc,space, offset);
case 0x0ff9:
- return wd17xx_track_r(m_fdc,offset);
+ return wd17xx_track_r(m_fdc,space, offset);
case 0x0ffa:
- return wd17xx_sector_r(m_fdc,offset);
+ return wd17xx_sector_r(m_fdc,space, offset);
case 0x0ffb:
- return wd17xx_data_r(m_fdc,offset);
+ return wd17xx_data_r(m_fdc,space, offset);
case 0x0ffc:
printf("FDC: read FM type\n");
return 0xff;
@@ -1028,16 +1028,16 @@ WRITE8_MEMBER( x1_state::x1_fdc_w )
switch(offset+0xff8)
{
case 0x0ff8:
- wd17xx_command_w(m_fdc,offset,data);
+ wd17xx_command_w(m_fdc,space, offset,data);
break;
case 0x0ff9:
- wd17xx_track_w(m_fdc,offset,data);
+ wd17xx_track_w(m_fdc,space, offset,data);
break;
case 0x0ffa:
- wd17xx_sector_w(m_fdc,offset,data);
+ wd17xx_sector_w(m_fdc,space, offset,data);
break;
case 0x0ffb:
- wd17xx_data_w(m_fdc,offset,data);
+ wd17xx_data_w(m_fdc,space, offset,data);
break;
case 0x0ffc:
wd17xx_set_drive(m_fdc,data & 3);
@@ -1618,7 +1618,7 @@ READ8_MEMBER( x1_state::x1_io_r )
else if(offset >= 0x1400 && offset <= 0x17ff) { return x1_pcg_r(space, offset-0x1400); }
else if(offset >= 0x1900 && offset <= 0x19ff) { return x1_sub_io_r(space, 0); }
else if(offset >= 0x1a00 && offset <= 0x1aff) { return machine().device<i8255_device>("ppi8255_0")->read(space, (offset-0x1a00) & 3); }
- else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), 0); }
+ else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), space, 0); }
// else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), 0); }
// else if(offset >= 0x1f90 && offset <= 0x1f91) { return z80sio_c_r(machine().device("sio"), (offset-0x1f90) & 1); }
// else if(offset >= 0x1f92 && offset <= 0x1f93) { return z80sio_d_r(machine().device("sio"), (offset-0x1f92) & 1); }
@@ -1654,8 +1654,8 @@ WRITE8_MEMBER( x1_state::x1_io_w )
else if(offset == 0x1800 || offset == 0x1801) { x1_6845_w(space, offset-0x1800, data); }
else if(offset >= 0x1900 && offset <= 0x19ff) { x1_sub_io_w(space, 0,data); }
else if(offset >= 0x1a00 && offset <= 0x1aff) { machine().device<i8255_device>("ppi8255_0")->write(space, (offset-0x1a00) & 3,data); }
- else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), 0,data); }
- else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), 0,data); }
+ else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), space, 0,data); }
+ else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), space, 0,data); }
else if(offset >= 0x1d00 && offset <= 0x1dff) { x1_rom_bank_1_w(space,0,data); }
else if(offset >= 0x1e00 && offset <= 0x1eff) { x1_rom_bank_0_w(space,0,data); }
// else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), 0,data); }
@@ -1684,8 +1684,8 @@ READ8_MEMBER( x1_state::x1turbo_io_r )
m_io_bank_mode = 0; //any read disables the extended mode.
// a * at the end states devices used on plain X1 too
- if(offset == 0x0700) { return (ym2151_r(machine().device("ym"), offset-0x0700) & 0x7f) | (ioport("SOUND_SW")->read() & 0x80); }
- else if(offset == 0x0701) { return ym2151_r(machine().device("ym"), offset-0x0700); }
+ if(offset == 0x0700) { return (ym2151_r(machine().device("ym"), space, offset-0x0700) & 0x7f) | (ioport("SOUND_SW")->read() & 0x80); }
+ else if(offset == 0x0701) { return ym2151_r(machine().device("ym"), space, offset-0x0700); }
//0x704 is FM sound detection port on X1 turboZ
else if(offset >= 0x0704 && offset <= 0x0707) { return m_ctc->read(space,offset-0x0704); }
else if(offset == 0x0801) { printf("Color image board read\n"); return 0xff; } // *
@@ -1702,9 +1702,9 @@ READ8_MEMBER( x1_state::x1turbo_io_r )
else if(offset >= 0x1400 && offset <= 0x17ff) { return x1_pcg_r(space, offset-0x1400); }
else if(offset >= 0x1900 && offset <= 0x19ff) { return x1_sub_io_r(space, 0); }
else if(offset >= 0x1a00 && offset <= 0x1aff) { return machine().device<i8255_device>("ppi8255_0")->read(space, (offset-0x1a00) & 3); }
- else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), 0); }
- else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), 0); }
- else if(offset >= 0x1f90 && offset <= 0x1f93) { return z80dart_ba_cd_r(machine().device("sio"), (offset-0x1f90) & 3); }
+ else if(offset >= 0x1b00 && offset <= 0x1bff) { return ay8910_r(machine().device("ay"), space, 0); }
+ else if(offset >= 0x1f80 && offset <= 0x1f8f) { return z80dma_r(machine().device("dma"), space, 0); }
+ else if(offset >= 0x1f90 && offset <= 0x1f93) { return z80dart_ba_cd_r(machine().device("sio"), space, (offset-0x1f90) & 3); }
else if(offset >= 0x1f98 && offset <= 0x1f9f) { printf("Extended SIO/CTC read %04x\n",offset); return 0xff; }
else if(offset >= 0x1fa0 && offset <= 0x1fa3) { return m_ctc->read(space,offset-0x1fa0); }
else if(offset >= 0x1fa8 && offset <= 0x1fab) { return m_ctc->read(space,offset-0x1fa8); }
@@ -1730,7 +1730,7 @@ WRITE8_MEMBER( x1_state::x1turbo_io_w )
{
// a * at the end states devices used on plain X1 too
if(m_io_bank_mode == 1) { x1_ex_gfxram_w(space, offset, data); }
- else if(offset == 0x0700 || offset == 0x0701) { ym2151_w(machine().device("ym"), offset-0x0700,data); }
+ else if(offset == 0x0700 || offset == 0x0701) { ym2151_w(machine().device("ym"), space, offset-0x0700,data); }
//0x704 is FM sound detection port on X1 turboZ
else if(offset >= 0x0704 && offset <= 0x0707) { m_ctc->write(space,offset-0x0704,data); }
else if(offset == 0x0800) { printf("Color image board write %02x\n",data); } // *
@@ -1752,12 +1752,12 @@ WRITE8_MEMBER( x1_state::x1turbo_io_w )
else if(offset == 0x1800 || offset == 0x1801) { x1_6845_w(space, offset-0x1800, data); }
else if(offset >= 0x1900 && offset <= 0x19ff) { x1_sub_io_w(space, 0,data); }
else if(offset >= 0x1a00 && offset <= 0x1aff) { machine().device<i8255_device>("ppi8255_0")->write(space, (offset-0x1a00) & 3,data); }
- else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), 0,data); }
- else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), 0,data); }
+ else if(offset >= 0x1b00 && offset <= 0x1bff) { ay8910_data_w(machine().device("ay"), space, 0,data); }
+ else if(offset >= 0x1c00 && offset <= 0x1cff) { ay8910_address_w(machine().device("ay"), space, 0,data); }
else if(offset >= 0x1d00 && offset <= 0x1dff) { x1_rom_bank_1_w(space,0,data); }
else if(offset >= 0x1e00 && offset <= 0x1eff) { x1_rom_bank_0_w(space,0,data); }
- else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), 0,data); }
- else if(offset >= 0x1f90 && offset <= 0x1f93) { z80dart_ba_cd_w(machine().device("sio"), (offset-0x1f90) & 3,data); }
+ else if(offset >= 0x1f80 && offset <= 0x1f8f) { z80dma_w(machine().device("dma"), space, 0,data); }
+ else if(offset >= 0x1f90 && offset <= 0x1f93) { z80dart_ba_cd_w(machine().device("sio"), space, (offset-0x1f90) & 3,data); }
else if(offset >= 0x1f98 && offset <= 0x1f9f) { printf("Extended SIO/CTC write %04x %02x\n",offset,data); }
else if(offset >= 0x1fa0 && offset <= 0x1fa3) { m_ctc->write(space,offset-0x1fa0,data); }
else if(offset >= 0x1fa8 && offset <= 0x1fab) { m_ctc->write(space,offset-0x1fa8,data); }
@@ -2295,12 +2295,12 @@ static Z80CTC_INTERFACE( ctc_intf )
#if 0
static const z80sio_interface sio_intf =
{
- 0, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- 0, /* transmit handler */
- 0 /* receive handler */
+ DEVCB_NULL, /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
#endif
diff --git a/src/mess/drivers/x1twin.c b/src/mess/drivers/x1twin.c
index 1db950ac904..35e62a8bca9 100644
--- a/src/mess/drivers/x1twin.c
+++ b/src/mess/drivers/x1twin.c
@@ -429,12 +429,12 @@ static Z80CTC_INTERFACE( ctc_intf )
#if 0
static const z80sio_interface sio_intf =
{
- 0, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- 0, /* transmit handler */
- 0 /* receive handler */
+ DEVCB_NULL, /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
#endif
diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c
index 968870fc7f7..2050166a61a 100644
--- a/src/mess/drivers/x68k.c
+++ b/src/mess/drivers/x68k.c
@@ -347,13 +347,13 @@ static TIMER_CALLBACK( x68k_led_callback )
static WRITE16_HANDLER( x68k_dmac_w )
{
device_t* device = space->machine().device("hd63450");
- hd63450_w(device, offset, data, mem_mask);
+ hd63450_w(device, *space, offset, data, mem_mask);
}
static READ16_HANDLER( x68k_dmac_r )
{
device_t* device = space->machine().device("hd63450");
- return hd63450_r(device, offset, mem_mask);
+ return hd63450_r(device, *space, offset, mem_mask);
}
static void x68k_keyboard_ctrl_w(x68k_state *state, int data)
@@ -974,7 +974,7 @@ static WRITE16_HANDLER( x68k_fdc_w )
{
case 0x00:
case 0x01:
- upd765_data_w(fdc, 0,data);
+ upd765_data_w(fdc, *space, 0,data);
break;
case 0x02: // drive option signal control
x = data & 0x0f;
@@ -1054,9 +1054,9 @@ static READ16_HANDLER( x68k_fdc_r )
switch(offset)
{
case 0x00:
- return upd765_status_r(fdc, 0);
+ return upd765_status_r(fdc, *space, 0);
case 0x01:
- return upd765_data_r(fdc, 0);
+ return upd765_data_r(fdc, *space, 0);
case 0x02:
ret = 0x00;
for(x=0;x<4;x++)
@@ -1103,7 +1103,7 @@ static int x68k_fdc_read_byte(running_machine &machine,int addr)
device_t *fdc = machine.device("upd72065");
if(state->m_fdc.drq_state != 0)
- data = upd765_dack_r(fdc, 0);
+ data = upd765_dack_r(fdc, state->generic_space(), 0);
// logerror("FDC: DACK reading\n");
return data;
}
@@ -1111,7 +1111,7 @@ static int x68k_fdc_read_byte(running_machine &machine,int addr)
static void x68k_fdc_write_byte(running_machine &machine,int addr, int data)
{
device_t *fdc = machine.device("upd72065");
- upd765_dack_w(fdc, 0, data);
+ upd765_dack_w(fdc, machine.driver_data()->generic_space(), 0, data);
}
static WRITE_LINE_DEVICE_HANDLER ( fdc_drq )
@@ -1126,7 +1126,7 @@ static WRITE16_HANDLER( x68k_fm_w )
{
case 0x00:
case 0x01:
- ym2151_w(space->machine().device("ym2151"), offset, data);
+ ym2151_w(space->machine().device("ym2151"), *space, offset, data);
break;
}
}
@@ -1134,7 +1134,7 @@ static WRITE16_HANDLER( x68k_fm_w )
static READ16_HANDLER( x68k_fm_r )
{
if(offset == 0x01)
- return ym2151_r(space->machine().device("ym2151"), 1);
+ return ym2151_r(space->machine().device("ym2151"), *space, 1);
return 0xffff;
}
@@ -1873,10 +1873,10 @@ static WRITE8_DEVICE_HANDLER( x68030_adpcm_w )
switch(offset)
{
case 0x00:
- okim6258_ctrl_w(device,0,data);
+ okim6258_ctrl_w(device,space,0,data);
break;
case 0x01:
- okim6258_data_w(device,0,data);
+ okim6258_data_w(device,space,0,data);
break;
}
}
diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c
index 9b35a873e0f..7b6fd1ce28b 100644
--- a/src/mess/drivers/z100.c
+++ b/src/mess/drivers/z100.c
@@ -355,10 +355,10 @@ READ8_MEMBER( z100_state::z207_fdc_r )
switch(offset)
{
- case 0: res = wd17xx_status_r(m_fdc,offset); break;
- case 1: res = wd17xx_track_r(m_fdc,offset); break;
- case 2: res = wd17xx_sector_r(m_fdc,offset); break;
- case 3: res = wd17xx_data_r(m_fdc,offset); break;
+ case 0: res = wd17xx_status_r(m_fdc,space, offset); break;
+ case 1: res = wd17xx_track_r(m_fdc,space, offset); break;
+ case 2: res = wd17xx_sector_r(m_fdc,space, offset); break;
+ case 3: res = wd17xx_data_r(m_fdc,space, offset); break;
}
return res;
@@ -368,10 +368,10 @@ WRITE8_MEMBER( z100_state::z207_fdc_w )
{
switch(offset)
{
- case 0: wd17xx_command_w(m_fdc,offset,data); break;
- case 1: wd17xx_track_w(m_fdc,offset,data); break;
- case 2: wd17xx_sector_w(m_fdc,offset,data); break;
- case 3: wd17xx_data_w(m_fdc,offset,data); break;
+ case 0: wd17xx_command_w(m_fdc,space, offset,data); break;
+ case 1: wd17xx_track_w(m_fdc,space, offset,data); break;
+ case 2: wd17xx_sector_w(m_fdc,space, offset,data); break;
+ case 3: wd17xx_data_w(m_fdc,space, offset,data); break;
case 4: // disk control
wd17xx_set_drive(m_fdc,data & 3);
m_z207_cur_drive = data & 3;
diff --git a/src/mess/drivers/z80ne.c b/src/mess/drivers/z80ne.c
index 09f96fc09c2..0f39ff42346 100644
--- a/src/mess/drivers/z80ne.c
+++ b/src/mess/drivers/z80ne.c
@@ -410,9 +410,9 @@ static const ay31015_config z80ne_ay31015_config =
AY_3_1015,
4800.0,
4800.0,
- NULL,
- NULL,
- NULL
+ DEVCB_NULL,
+ DEVCB_NULL,
+ DEVCB_NULL
};
static const cassette_interface z80ne_cassettea_config =
@@ -436,7 +436,7 @@ static const cassette_interface z80ne_cassetteb_config =
static const kr2376_interface lx388_kr2376_interface =
{
50000,
- NULL
+ DEVCB_NULL
};
static const floppy_interface z80netf_floppy_interface =
diff --git a/src/mess/formats/m65_snqk.c b/src/mess/formats/m65_snqk.c
index 2a2b6bfed86..8c2dcac0cd4 100644
--- a/src/mess/formats/m65_snqk.c
+++ b/src/mess/formats/m65_snqk.c
@@ -298,15 +298,15 @@ static void microtan_snapshot_copy(running_machine &machine, UINT8 *snapshot_buf
/* first set of AY8910 registers */
for (i = 0; i < 16; i++ )
{
- ay8910_address_w(ay8910, 0, i);
- ay8910_data_w(ay8910, 0, snapshot_buff[base++]);
+ ay8910_address_w(ay8910, state->generic_space(), 0, i);
+ ay8910_data_w(ay8910, state->generic_space(), 0, snapshot_buff[base++]);
}
/* second set of AY8910 registers */
for (i = 0; i < 16; i++ )
{
- ay8910_address_w(ay8910, 0, i);
- ay8910_data_w(ay8910, 0, snapshot_buff[base++]);
+ ay8910_address_w(ay8910, state->generic_space(), 0, i);
+ ay8910_data_w(ay8910, state->generic_space(), 0, snapshot_buff[base++]);
}
for (i = 0; i < 32*16; i++)
diff --git a/src/mess/formats/spec_snqk.c b/src/mess/formats/spec_snqk.c
index 39d28e0ff19..a80f10eb866 100644
--- a/src/mess/formats/spec_snqk.c
+++ b/src/mess/formats/spec_snqk.c
@@ -2357,10 +2357,10 @@ void spectrum_setup_z80(running_machine &machine, UINT8 *snapdata, UINT32 snapsi
/* Only set up sound registers for 128K machine or TS2068! */
for (i = 0; i < 16; i++)
{
- ay8910_address_w(ay8912, 0, i);
- ay8910_data_w(ay8912, 0, snapdata[39 + i]);
+ ay8910_address_w(ay8912, state->generic_space(), 0, i);
+ ay8910_data_w(ay8912, state->generic_space(), 0, snapdata[39 + i]);
}
- ay8910_address_w(ay8912, 0, snapdata[38]);
+ ay8910_address_w(ay8912, state->generic_space(), 0, snapdata[38]);
}
pSource = snapdata + header_size;
diff --git a/src/mess/includes/amstrad.h b/src/mess/includes/amstrad.h
index b4ad39a488a..04fae18e18b 100644
--- a/src/mess/includes/amstrad.h
+++ b/src/mess/includes/amstrad.h
@@ -174,10 +174,10 @@ public:
-READ8_DEVICE_HANDLER( amstrad_ppi_porta_r );
-READ8_DEVICE_HANDLER( amstrad_ppi_portb_r );
-WRITE8_DEVICE_HANDLER( amstrad_ppi_porta_w );
-WRITE8_DEVICE_HANDLER( amstrad_ppi_portc_w );
+DECLARE_READ8_DEVICE_HANDLER( amstrad_ppi_porta_r );
+DECLARE_READ8_DEVICE_HANDLER( amstrad_ppi_portb_r );
+DECLARE_WRITE8_DEVICE_HANDLER( amstrad_ppi_porta_w );
+DECLARE_WRITE8_DEVICE_HANDLER( amstrad_ppi_portc_w );
WRITE_LINE_DEVICE_HANDLER( aleste_interrupt );
diff --git a/src/mess/includes/apollo.h b/src/mess/includes/apollo.h
index d66569af92a..8f1d7250da8 100644
--- a/src/mess/includes/apollo.h
+++ b/src/mess/includes/apollo.h
@@ -241,18 +241,18 @@ void apollo_csr_set_status_register(UINT16 mask, UINT16 data);
/*----------- machine/apollo_pic.c -----------*/
-WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) ;
-READ8_DEVICE_HANDLER( apollo_pic8259_master_r );
+DECLARE_WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) ;
+DECLARE_READ8_DEVICE_HANDLER( apollo_pic8259_master_r );
-WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w );
-READ8_DEVICE_HANDLER( apollo_pic8259_slave_r );
+DECLARE_WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w );
+DECLARE_READ8_DEVICE_HANDLER( apollo_pic8259_slave_r );
IRQ_CALLBACK(apollo_pic_acknowledge);
/*----------- machine/apollo_ptm.c -----------*/
-WRITE8_DEVICE_HANDLER( apollo_ptm_w );
-READ8_DEVICE_HANDLER( apollo_ptm_r );
+DECLARE_WRITE8_DEVICE_HANDLER( apollo_ptm_w );
+DECLARE_READ8_DEVICE_HANDLER( apollo_ptm_r );
/*----------- machine/apollo_rtc.c -----------*/
@@ -261,13 +261,13 @@ READ8_DEVICE_HANDLER( apollo_ptm_r );
void apollo_sio_rx_data( device_t* device, int ch, UINT8 data );
-READ8_DEVICE_HANDLER(apollo_sio_r);
-WRITE8_DEVICE_HANDLER(apollo_sio_w);
+DECLARE_READ8_DEVICE_HANDLER(apollo_sio_r);
+DECLARE_WRITE8_DEVICE_HANDLER(apollo_sio_w);
/*----------- machine/apollo_sio2.c -----------*/
-READ8_DEVICE_HANDLER(apollo_sio2_r);
-WRITE8_DEVICE_HANDLER(apollo_sio2_w);
+DECLARE_READ8_DEVICE_HANDLER(apollo_sio2_r);
+DECLARE_WRITE8_DEVICE_HANDLER(apollo_sio2_w);
/*----------- machine/apollo_fdc.c -----------*/
@@ -360,10 +360,10 @@ extern const device_type APOLLO_MONO15I;
MACHINE_CONFIG_EXTERN( apollo_mono15i );
-READ16_DEVICE_HANDLER( apollo_mcr_r ) ;
-WRITE16_DEVICE_HANDLER(apollo_mcr_w );
+DECLARE_READ16_DEVICE_HANDLER( apollo_mcr_r ) ;
+DECLARE_WRITE16_DEVICE_HANDLER(apollo_mcr_w );
-READ16_DEVICE_HANDLER( apollo_mgm_r );
-WRITE16_DEVICE_HANDLER( apollo_mgm_w );
+DECLARE_READ16_DEVICE_HANDLER( apollo_mgm_r );
+DECLARE_WRITE16_DEVICE_HANDLER( apollo_mgm_w );
#endif /* APOLLO_H_ */
diff --git a/src/mess/includes/c16.h b/src/mess/includes/c16.h
index 66979761f74..64def9248b0 100644
--- a/src/mess/includes/c16.h
+++ b/src/mess/includes/c16.h
@@ -52,8 +52,8 @@ public:
/*----------- defined in machine/c16.c -----------*/
-extern READ8_DEVICE_HANDLER(c16_m7501_port_read);
-extern WRITE8_DEVICE_HANDLER(c16_m7501_port_write);
+extern DECLARE_READ8_DEVICE_HANDLER(c16_m7501_port_read);
+extern DECLARE_WRITE8_DEVICE_HANDLER(c16_m7501_port_write);
extern WRITE8_HANDLER(c16_6551_port_w);
extern READ8_HANDLER(c16_6551_port_r);
diff --git a/src/mess/includes/c64.h b/src/mess/includes/c64.h
index c02b68854eb..de3b08e01b4 100644
--- a/src/mess/includes/c64.h
+++ b/src/mess/includes/c64.h
@@ -182,7 +182,7 @@ public:
};
-int c64_paddle_read (device_t *device, int which);
+int c64_paddle_read (device_t *device, address_space &space, int which);
#endif
diff --git a/src/mess/includes/c64_legacy.h b/src/mess/includes/c64_legacy.h
index ca370b2d440..9646bfa1e13 100644
--- a/src/mess/includes/c64_legacy.h
+++ b/src/mess/includes/c64_legacy.h
@@ -97,8 +97,8 @@ public:
/* private area */
-extern READ8_DEVICE_HANDLER(c64_m6510_port_read);
-extern WRITE8_DEVICE_HANDLER(c64_m6510_port_write);
+extern DECLARE_READ8_DEVICE_HANDLER(c64_m6510_port_read);
+extern DECLARE_WRITE8_DEVICE_HANDLER(c64_m6510_port_write);
READ8_HANDLER ( c64_colorram_read );
WRITE8_HANDLER ( c64_colorram_write );
@@ -116,7 +116,7 @@ WRITE8_HANDLER(c64_ioarea_w);
WRITE8_HANDLER ( c64_write_io );
READ8_HANDLER ( c64_read_io );
-int c64_paddle_read (device_t *device, int which);
+int c64_paddle_read (device_t *device, address_space &space, int which);
extern const mos6526_interface c64_ntsc_cia0, c64_pal_cia0;
extern const mos6526_interface c64_ntsc_cia1, c64_pal_cia1;
diff --git a/src/mess/includes/cbmb.h b/src/mess/includes/cbmb.h
index 7af1a34c90c..3d776cb7301 100644
--- a/src/mess/includes/cbmb.h
+++ b/src/mess/includes/cbmb.h
@@ -72,17 +72,17 @@ public:
extern const mos6526_interface cbmb_cia;
-READ8_DEVICE_HANDLER( cbmb_tpi0_port_a_r );
-WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_a_w );
-READ8_DEVICE_HANDLER( cbmb_tpi0_port_b_r );
-WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_b_w );
-
-WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_a );
-WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_b );
-WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_c );
-READ8_DEVICE_HANDLER( cbmb_keyboard_line_a );
-READ8_DEVICE_HANDLER( cbmb_keyboard_line_b );
-READ8_DEVICE_HANDLER( cbmb_keyboard_line_c );
+DECLARE_READ8_DEVICE_HANDLER( cbmb_tpi0_port_a_r );
+DECLARE_WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_a_w );
+DECLARE_READ8_DEVICE_HANDLER( cbmb_tpi0_port_b_r );
+DECLARE_WRITE8_DEVICE_HANDLER( cbmb_tpi0_port_b_w );
+
+DECLARE_WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_a );
+DECLARE_WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_b );
+DECLARE_WRITE8_DEVICE_HANDLER( cbmb_keyboard_line_select_c );
+DECLARE_READ8_DEVICE_HANDLER( cbmb_keyboard_line_a );
+DECLARE_READ8_DEVICE_HANDLER( cbmb_keyboard_line_b );
+DECLARE_READ8_DEVICE_HANDLER( cbmb_keyboard_line_c );
WRITE_LINE_DEVICE_HANDLER( cbmb_irq );
int cbmb_dma_read(running_machine &machine, int offset);
diff --git a/src/mess/includes/cgenie.h b/src/mess/includes/cgenie.h
index 294560a8a09..bc14556398e 100644
--- a/src/mess/includes/cgenie.h
+++ b/src/mess/includes/cgenie.h
@@ -75,8 +75,8 @@ public:
/*----------- defined in machine/cgenie.c -----------*/
-READ8_DEVICE_HANDLER( cgenie_sh_control_port_r );
-WRITE8_DEVICE_HANDLER( cgenie_sh_control_port_w );
+DECLARE_READ8_DEVICE_HANDLER( cgenie_sh_control_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( cgenie_sh_control_port_w );
extern const wd17xx_interface cgenie_wd17xx_interface;
diff --git a/src/mess/includes/kaypro.h b/src/mess/includes/kaypro.h
index 1bc6aac752c..71f33745bed 100644
--- a/src/mess/includes/kaypro.h
+++ b/src/mess/includes/kaypro.h
@@ -96,8 +96,8 @@ extern const z80pio_interface kaypro4_pio_s_intf;
extern const z80sio_interface kaypro_sio_intf;
extern const wd17xx_interface kaypro_wd1793_interface;
-READ8_DEVICE_HANDLER( kaypro_sio_r );
-WRITE8_DEVICE_HANDLER( kaypro_sio_w );
+DECLARE_READ8_DEVICE_HANDLER( kaypro_sio_r );
+DECLARE_WRITE8_DEVICE_HANDLER( kaypro_sio_w );
diff --git a/src/mess/includes/mc68328.h b/src/mess/includes/mc68328.h
index 2e3aaadaec8..b5a1596cb08 100644
--- a/src/mess/includes/mc68328.h
+++ b/src/mess/includes/mc68328.h
@@ -98,32 +98,32 @@ struct mc68328_interface
{
const char *m68k_cpu_tag;
- write8_device_func out_port_a_func; /* 8-bit output */
- write8_device_func out_port_b_func; /* 8-bit output */
- write8_device_func out_port_c_func; /* 8-bit output */
- write8_device_func out_port_d_func; /* 8-bit output */
- write8_device_func out_port_e_func; /* 8-bit output */
- write8_device_func out_port_f_func; /* 8-bit output */
- write8_device_func out_port_g_func; /* 8-bit output */
- write8_device_func out_port_j_func; /* 8-bit output */
- write8_device_func out_port_k_func; /* 8-bit output */
- write8_device_func out_port_m_func; /* 8-bit output */
-
- read8_device_func in_port_a_func; /* 8-bit input */
- read8_device_func in_port_b_func; /* 8-bit input */
- read8_device_func in_port_c_func; /* 8-bit input */
- read8_device_func in_port_d_func; /* 8-bit input */
- read8_device_func in_port_e_func; /* 8-bit input */
- read8_device_func in_port_f_func; /* 8-bit input */
- read8_device_func in_port_g_func; /* 8-bit input */
- read8_device_func in_port_j_func; /* 8-bit input */
- read8_device_func in_port_k_func; /* 8-bit input */
- read8_device_func in_port_m_func; /* 8-bit input */
-
- write8_device_func out_pwm_func; /* 1-bit output */
-
- write16_device_func out_spim_func; /* 16-bit output */
- read16_device_func in_spim_func; /* 16-bit input */
+ devcb_write8 out_port_a_func; /* 8-bit output */
+ devcb_write8 out_port_b_func; /* 8-bit output */
+ devcb_write8 out_port_c_func; /* 8-bit output */
+ devcb_write8 out_port_d_func; /* 8-bit output */
+ devcb_write8 out_port_e_func; /* 8-bit output */
+ devcb_write8 out_port_f_func; /* 8-bit output */
+ devcb_write8 out_port_g_func; /* 8-bit output */
+ devcb_write8 out_port_j_func; /* 8-bit output */
+ devcb_write8 out_port_k_func; /* 8-bit output */
+ devcb_write8 out_port_m_func; /* 8-bit output */
+
+ devcb_read8 in_port_a_func; /* 8-bit input */
+ devcb_read8 in_port_b_func; /* 8-bit input */
+ devcb_read8 in_port_c_func; /* 8-bit input */
+ devcb_read8 in_port_d_func; /* 8-bit input */
+ devcb_read8 in_port_e_func; /* 8-bit input */
+ devcb_read8 in_port_f_func; /* 8-bit input */
+ devcb_read8 in_port_g_func; /* 8-bit input */
+ devcb_read8 in_port_j_func; /* 8-bit input */
+ devcb_read8 in_port_k_func; /* 8-bit input */
+ devcb_read8 in_port_m_func; /* 8-bit input */
+
+ devcb_write8 out_pwm_func; /* 1-bit output */
+
+ devcb_write16 out_spim_func; /* 16-bit output */
+ devcb_read16 in_spim_func; /* 16-bit input */
void (*spim_xch_trigger)( device_t *device ); /* SPIM exchange trigger */
};
#define MC68328_INTERFACE(name) const mc68328_interface (name)=
@@ -144,8 +144,8 @@ struct mc68328_interface
READ/WRITE HANDLERS
***************************************************************************/
-WRITE16_DEVICE_HANDLER( mc68328_w );
-READ16_DEVICE_HANDLER( mc68328_r );
+DECLARE_WRITE16_DEVICE_HANDLER( mc68328_w );
+DECLARE_READ16_DEVICE_HANDLER( mc68328_r );
/***************************************************************************
diff --git a/src/mess/includes/msx.h b/src/mess/includes/msx.h
index 12e5917f048..f2ea63182eb 100644
--- a/src/mess/includes/msx.h
+++ b/src/mess/includes/msx.h
@@ -145,9 +145,9 @@ DEVICE_IMAGE_UNLOAD( msx_cart );
void msx_vdp_interrupt(device_t *, v99x8_device &device, int i);
/* I/O functions */
-READ8_DEVICE_HANDLER( msx_printer_status_r );
-WRITE8_DEVICE_HANDLER( msx_printer_strobe_w );
-WRITE8_DEVICE_HANDLER( msx_printer_data_w );
+DECLARE_READ8_DEVICE_HANDLER( msx_printer_status_r );
+DECLARE_WRITE8_DEVICE_HANDLER( msx_printer_strobe_w );
+DECLARE_WRITE8_DEVICE_HANDLER( msx_printer_data_w );
#endif /* __MSX_H__ */
diff --git a/src/mess/includes/mtx.h b/src/mess/includes/mtx.h
index 109461063d8..62354fb7ef3 100644
--- a/src/mess/includes/mtx.h
+++ b/src/mess/includes/mtx.h
@@ -68,14 +68,14 @@ SNAPSHOT_LOAD( mtx );
/* Sound */
-READ8_DEVICE_HANDLER( mtx_sound_strobe_r );
+DECLARE_READ8_DEVICE_HANDLER( mtx_sound_strobe_r );
/* Cassette */
-WRITE8_DEVICE_HANDLER( mtx_cst_w );
+DECLARE_WRITE8_DEVICE_HANDLER( mtx_cst_w );
/* Printer */
-READ8_DEVICE_HANDLER( mtx_strobe_r );
-READ8_DEVICE_HANDLER( mtx_prt_r );
+DECLARE_READ8_DEVICE_HANDLER( mtx_strobe_r );
+DECLARE_READ8_DEVICE_HANDLER( mtx_prt_r );
/* Keyboard */
diff --git a/src/mess/includes/nascom1.h b/src/mess/includes/nascom1.h
index 33582481413..4c16edb3e75 100644
--- a/src/mess/includes/nascom1.h
+++ b/src/mess/includes/nascom1.h
@@ -61,8 +61,8 @@ SNAPSHOT_LOAD( nascom1 );
-READ8_DEVICE_HANDLER( nascom1_hd6402_si );
-WRITE8_DEVICE_HANDLER( nascom1_hd6402_so );
+DECLARE_READ8_DEVICE_HANDLER( nascom1_hd6402_si );
+DECLARE_WRITE8_DEVICE_HANDLER( nascom1_hd6402_so );
diff --git a/src/mess/includes/pc.h b/src/mess/includes/pc.h
index bbf5a457684..ad9b8a4232f 100644
--- a/src/mess/includes/pc.h
+++ b/src/mess/includes/pc.h
@@ -113,10 +113,10 @@ void mess_init_pc_common( running_machine &machine, UINT32 flags, void (*set_key
-READ8_DEVICE_HANDLER( mc1502_wd17xx_drq_r );
-READ8_DEVICE_HANDLER( mc1502_wd17xx_aux_r );
-READ8_DEVICE_HANDLER( mc1502_wd17xx_motor_r );
-WRITE8_DEVICE_HANDLER( mc1502_wd17xx_aux_w );
+DECLARE_READ8_DEVICE_HANDLER( mc1502_wd17xx_drq_r );
+DECLARE_READ8_DEVICE_HANDLER( mc1502_wd17xx_aux_r );
+DECLARE_READ8_DEVICE_HANDLER( mc1502_wd17xx_motor_r );
+DECLARE_WRITE8_DEVICE_HANDLER( mc1502_wd17xx_aux_w );
diff --git a/src/mess/includes/pokemini.h b/src/mess/includes/pokemini.h
index 1e1b90ffc2a..958b70f4410 100644
--- a/src/mess/includes/pokemini.h
+++ b/src/mess/includes/pokemini.h
@@ -69,8 +69,8 @@ public:
/*----------- defined in machine/pokemini.c -----------*/
-WRITE8_DEVICE_HANDLER( pokemini_hwreg_w );
-READ8_DEVICE_HANDLER( pokemini_hwreg_r );
+DECLARE_WRITE8_DEVICE_HANDLER( pokemini_hwreg_w );
+DECLARE_READ8_DEVICE_HANDLER( pokemini_hwreg_r );
DEVICE_IMAGE_LOAD( pokemini_cart );
diff --git a/src/mess/includes/svision.h b/src/mess/includes/svision.h
index 7c685dd8c94..d30c399d603 100644
--- a/src/mess/includes/svision.h
+++ b/src/mess/includes/svision.h
@@ -91,8 +91,8 @@ extern const device_type SVISION;
int *svision_dma_finished(device_t *device);
void svision_sound_decrement(device_t *device);
void svision_soundport_w(device_t *device, int which, int offset, int data);
-WRITE8_DEVICE_HANDLER( svision_sounddma_w );
-WRITE8_DEVICE_HANDLER( svision_noise_w );
+DECLARE_WRITE8_DEVICE_HANDLER( svision_sounddma_w );
+DECLARE_WRITE8_DEVICE_HANDLER( svision_noise_w );
#endif /* SVISION_H_ */
diff --git a/src/mess/includes/vic10.h b/src/mess/includes/vic10.h
index a0715ee11a3..8c952d9e35a 100644
--- a/src/mess/includes/vic10.h
+++ b/src/mess/includes/vic10.h
@@ -50,7 +50,7 @@ public:
virtual void machine_reset();
void check_interrupts();
- UINT8 paddle_read(int which);
+ UINT8 paddle_read(address_space &space, int which);
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );
diff --git a/src/mess/includes/wswan.h b/src/mess/includes/wswan.h
index f134e1a8018..9dce3291da7 100644
--- a/src/mess/includes/wswan.h
+++ b/src/mess/includes/wswan.h
@@ -200,6 +200,6 @@ private:
extern const device_type WSWAN;
-WRITE8_DEVICE_HANDLER( wswan_sound_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( wswan_sound_port_w );
#endif /* WSWAN_H_ */
diff --git a/src/mess/includes/z80ne.h b/src/mess/includes/z80ne.h
index 59e31b98b4d..c9b059a8364 100644
--- a/src/mess/includes/z80ne.h
+++ b/src/mess/includes/z80ne.h
@@ -109,11 +109,11 @@ public:
/*----------- defined in machine/z80ne.c -----------*/
-READ8_DEVICE_HANDLER(lx388_mc6847_videoram_r);
-READ8_DEVICE_HANDLER(lx390_fdc_r);
-WRITE8_DEVICE_HANDLER(lx390_fdc_w);
-READ8_DEVICE_HANDLER(lx390_reset_bank);
-WRITE8_DEVICE_HANDLER(lx390_motor_w);
+DECLARE_READ8_DEVICE_HANDLER(lx388_mc6847_videoram_r);
+DECLARE_READ8_DEVICE_HANDLER(lx390_fdc_r);
+DECLARE_WRITE8_DEVICE_HANDLER(lx390_fdc_w);
+DECLARE_READ8_DEVICE_HANDLER(lx390_reset_bank);
+DECLARE_WRITE8_DEVICE_HANDLER(lx390_motor_w);
diff --git a/src/mess/machine/3c505.h b/src/mess/machine/3c505.h
index 3d764181149..0d3171bee37 100644
--- a/src/mess/machine/3c505.h
+++ b/src/mess/machine/3c505.h
@@ -28,8 +28,8 @@
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( threecom3c505_r );
-WRITE8_DEVICE_HANDLER( threecom3c505_w );
+DECLARE_READ8_DEVICE_HANDLER( threecom3c505_r );
+DECLARE_WRITE8_DEVICE_HANDLER( threecom3c505_w );
int threecom3c505_receive(device_t *device, const UINT8 *data, int length);
diff --git a/src/mess/machine/990_tap.h b/src/mess/machine/990_tap.h
index d2e5b0ef2f6..68c99a54b41 100644
--- a/src/mess/machine/990_tap.h
+++ b/src/mess/machine/990_tap.h
@@ -1,8 +1,8 @@
/*
990_tap.h: include file for 990_tap.c
*/
-extern READ16_DEVICE_HANDLER(ti990_tpc_r);
-extern WRITE16_DEVICE_HANDLER(ti990_tpc_w);
+extern DECLARE_READ16_DEVICE_HANDLER(ti990_tpc_r);
+extern DECLARE_WRITE16_DEVICE_HANDLER(ti990_tpc_w);
/***************************************************************************
TYPE DEFINITIONS
diff --git a/src/mess/machine/a2diskii.c b/src/mess/machine/a2diskii.c
index a9ed3e0259a..eab937f882c 100644
--- a/src/mess/machine/a2diskii.c
+++ b/src/mess/machine/a2diskii.c
@@ -138,7 +138,7 @@ void a2bus_floppy_device::device_reset()
UINT8 a2bus_floppy_device::read_c0nx(address_space &space, UINT8 offset)
{
- return applefdc_r(m_fdc, offset);
+ return applefdc_r(m_fdc, space, offset);
}
@@ -148,7 +148,7 @@ UINT8 a2bus_floppy_device::read_c0nx(address_space &space, UINT8 offset)
void a2bus_floppy_device::write_c0nx(address_space &space, UINT8 offset, UINT8 data)
{
- applefdc_w(m_fdc, offset, data);
+ applefdc_w(m_fdc, space, offset, data);
}
/*-------------------------------------------------
diff --git a/src/mess/machine/a2echoii.c b/src/mess/machine/a2echoii.c
index 4d271fdfee8..669074c4c4b 100644
--- a/src/mess/machine/a2echoii.c
+++ b/src/mess/machine/a2echoii.c
@@ -81,7 +81,7 @@ UINT8 a2bus_echoii_device::read_c0nx(address_space &space, UINT8 offset)
switch (offset)
{
case 0:
- return 0x1f | tms5220_status_r(m_tms, 0);
+ return 0x1f | tms5220_status_r(m_tms, space, 0);
break;
}
@@ -93,7 +93,7 @@ void a2bus_echoii_device::write_c0nx(address_space &space, UINT8 offset, UINT8 d
switch (offset)
{
case 0:
- tms5220_data_w(m_tms, offset, data);
+ tms5220_data_w(m_tms, space, offset, data);
break;
}
}
diff --git a/src/mess/machine/a2mockingboard.c b/src/mess/machine/a2mockingboard.c
index 51f72502b29..cb1c8b10aeb 100644
--- a/src/mess/machine/a2mockingboard.c
+++ b/src/mess/machine/a2mockingboard.c
@@ -300,10 +300,10 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
{
if (!(data & 4))
{
- ay8910_reset_w(m_ay1, 0, 0);
+ ay8910_reset_w(m_ay1, space, 0, 0);
if (m_isPhasor && m_PhasorNative)
{
- ay8910_reset_w(m_ay2, 0, 0);
+ ay8910_reset_w(m_ay2, space, 0, 0);
}
}
else
@@ -316,15 +316,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
break;
case 1: // BDIR=0, BC1=1 (read PSG)
- m_porta1 = ay8910_r(m_ay1, 0);
+ m_porta1 = ay8910_r(m_ay1, space, 0);
break;
case 2: // BDIR=1, BC1=0 (write PSG)
- ay8910_data_w(m_ay1, 0, m_porta1);
+ ay8910_data_w(m_ay1, space, 0, m_porta1);
break;
case 3: // BDIR=1, BC1=1 (latch)
- ay8910_address_w(m_ay1, 0, m_porta1);
+ ay8910_address_w(m_ay1, space, 0, m_porta1);
break;
}
}
@@ -350,33 +350,33 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
case 1: // BDIR=0, BC1=1 (read PSG)
if (chipSel & 1)
{
- m_porta1 = ay8910_r(m_ay1, 0);
+ m_porta1 = ay8910_r(m_ay1, space, 0);
}
if (chipSel & 2)
{
- m_porta1 = ay8910_r(m_ay2, 0);
+ m_porta1 = ay8910_r(m_ay2, space, 0);
}
break;
case 2: // BDIR=1, BC1=0 (write PSG)
if (chipSel & 1)
{
- ay8910_data_w(m_ay1, 0, m_porta1);
+ ay8910_data_w(m_ay1, space, 0, m_porta1);
}
if (chipSel & 2)
{
- ay8910_data_w(m_ay2, 0, m_porta1);
+ ay8910_data_w(m_ay2, space, 0, m_porta1);
}
break;
case 3: // BDIR=1, BC1=1 (latch)
if (chipSel & 1)
{
- ay8910_address_w(m_ay1, 0, m_porta1);
+ ay8910_address_w(m_ay1, space, 0, m_porta1);
}
if (chipSel & 2)
{
- ay8910_address_w(m_ay2, 0, m_porta1);
+ ay8910_address_w(m_ay2, space, 0, m_porta1);
}
break;
}
@@ -405,12 +405,12 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
{
if (m_isPhasor && m_PhasorNative)
{
- ay8910_reset_w(m_ay3, 0, 0);
- ay8910_reset_w(m_ay4, 0, 0);
+ ay8910_reset_w(m_ay3, space, 0, 0);
+ ay8910_reset_w(m_ay4, space, 0, 0);
}
else
{
- ay8910_reset_w(m_ay2, 0, 0);
+ ay8910_reset_w(m_ay2, space, 0, 0);
}
}
else
@@ -423,15 +423,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
break;
case 1: // BDIR=0, BC1=1 (read PSG)
- m_porta2 = ay8910_r(m_ay2, 0);
+ m_porta2 = ay8910_r(m_ay2, space, 0);
break;
case 2: // BDIR=1, BC1=0 (write PSG)
- ay8910_data_w(m_ay2, 0, m_porta2);
+ ay8910_data_w(m_ay2, space, 0, m_porta2);
break;
case 3: // BDIR=1, BC1=1 (latch)
- ay8910_address_w(m_ay2, 0, m_porta2);
+ ay8910_address_w(m_ay2, space, 0, m_porta2);
break;
}
}
@@ -457,33 +457,33 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
case 1: // BDIR=0, BC1=1 (read PSG)
if (chipSel & 1)
{
- m_porta2 = ay8910_r(m_ay3, 0);
+ m_porta2 = ay8910_r(m_ay3, space, 0);
}
if (chipSel & 2)
{
- m_porta2 = ay8910_r(m_ay4, 0);
+ m_porta2 = ay8910_r(m_ay4, space, 0);
}
break;
case 2: // BDIR=1, BC1=0 (write PSG)
if (chipSel & 1)
{
- ay8910_data_w(m_ay3, 0, m_porta2);
+ ay8910_data_w(m_ay3, space, 0, m_porta2);
}
if (chipSel & 2)
{
- ay8910_data_w(m_ay4, 0, m_porta2);
+ ay8910_data_w(m_ay4, space, 0, m_porta2);
}
break;
case 3: // BDIR=1, BC1=1 (latch)
if (chipSel & 1)
{
- ay8910_address_w(m_ay3, 0, m_porta2);
+ ay8910_address_w(m_ay3, space, 0, m_porta2);
}
if (chipSel & 2)
{
- ay8910_address_w(m_ay4, 0, m_porta2);
+ ay8910_address_w(m_ay4, space, 0, m_porta2);
}
break;
}
diff --git a/src/mess/machine/a7800.c b/src/mess/machine/a7800.c
index 7add428bcfb..0263a1bdf5f 100644
--- a/src/mess/machine/a7800.c
+++ b/src/mess/machine/a7800.c
@@ -525,6 +525,6 @@ WRITE8_MEMBER(a7800_state::a7800_TIA_w)
}
break;
}
- tia_sound_w(machine().device("tia"), offset, data);
+ tia_sound_w(machine().device("tia"), space, offset, data);
m_ROM[offset] = data;
}
diff --git a/src/mess/machine/abc77.c b/src/mess/machine/abc77.c
index 6712b6e87fb..f1a6171fd72 100644
--- a/src/mess/machine/abc77.c
+++ b/src/mess/machine/abc77.c
@@ -589,7 +589,7 @@ WRITE8_MEMBER( abc77_device::p2_w )
}
// beep
- discrete_sound_w(m_discrete, NODE_01, BIT(data, 4));
+ discrete_sound_w(m_discrete, space, NODE_01, BIT(data, 4));
// transmit data
serial_output(BIT(data, 5));
diff --git a/src/mess/machine/aim65.c b/src/mess/machine/aim65.c
index 7f9566a9cb5..823d0c9bf41 100644
--- a/src/mess/machine/aim65.c
+++ b/src/mess/machine/aim65.c
@@ -47,7 +47,7 @@ static void dl1416_update(device_t *device, int index)
dl1416_ce_w(device, state->m_pia_a & (0x04 << index));
dl1416_wr_w(device, BIT(state->m_pia_a, 7));
dl1416_cu_w(device, BIT(state->m_pia_b, 7));
- dl1416_data_w(device, state->m_pia_a & 0x03, state->m_pia_b & 0x7f);
+ dl1416_data_w(device, state->generic_space(), state->m_pia_a & 0x03, state->m_pia_b & 0x7f);
}
static void aim65_pia(running_machine &machine)
diff --git a/src/mess/machine/amigacd.c b/src/mess/machine/amigacd.c
index 901123c27a8..cfdb28bbca6 100644
--- a/src/mess/machine/amigacd.c
+++ b/src/mess/machine/amigacd.c
@@ -216,7 +216,7 @@ static READ16_HANDLER( amiga_dmac_r )
{
device_t *tpi = space->machine().device("tpi6525");
LOG(( "DMAC: PC=%08x - TPI6525 Read(%d)\n", space->device().safe_pc(), (offset - 0x58) ));
- return tpi6525_r(tpi, offset - 0x58);
+ return tpi6525_r(tpi, *space, offset - 0x58);
}
break;
@@ -343,7 +343,7 @@ static WRITE16_HANDLER( amiga_dmac_w )
{
device_t *tpi = space->machine().device("tpi6525");
LOG(( "DMAC: PC=%08x - TPI6525 Write(%d) - data = %04x\n", space->device().safe_pc(), (offset - 0x58), data ));
- tpi6525_w(tpi, offset - 0x58, data);
+ tpi6525_w(tpi, *space, offset - 0x58, data);
}
break;
diff --git a/src/mess/machine/amigacd.h b/src/mess/machine/amigacd.h
index d2ed908a0fc..a4223f70bd5 100644
--- a/src/mess/machine/amigacd.h
+++ b/src/mess/machine/amigacd.h
@@ -6,8 +6,8 @@ MACHINE_START( amigacd );
MACHINE_RESET( amigacd );
/* 6525tpi */
-READ8_DEVICE_HANDLER( amigacd_tpi6525_portc_r );
-WRITE8_DEVICE_HANDLER( amigacd_tpi6525_portb_w );
+DECLARE_READ8_DEVICE_HANDLER( amigacd_tpi6525_portc_r );
+DECLARE_WRITE8_DEVICE_HANDLER( amigacd_tpi6525_portb_w );
WRITE_LINE_DEVICE_HANDLER( amigacd_tpi6525_irq );
diff --git a/src/mess/machine/amstr_pc.c b/src/mess/machine/amstr_pc.c
index 07bbe617099..38aefd9b2cc 100644
--- a/src/mess/machine/amstr_pc.c
+++ b/src/mess/machine/amstr_pc.c
@@ -201,7 +201,7 @@ READ8_HANDLER( pc1640_port60_r )
READ8_HANDLER( pc200_port378_r )
{
device_t *lpt = space->machine().device("lpt_1");
- UINT8 data = pc_lpt_r(lpt, offset);
+ UINT8 data = pc_lpt_r(lpt, *space, offset);
if (offset == 1)
data = (data & ~7) | (space->machine().root_device().ioport("DSW0")->read() & 7);
@@ -214,7 +214,7 @@ READ8_HANDLER( pc200_port378_r )
READ8_HANDLER( pc200_port278_r )
{
device_t *lpt = space->machine().device("lpt_2");
- UINT8 data = pc_lpt_r(lpt, offset);
+ UINT8 data = pc_lpt_r(lpt, *space, offset);
if (offset == 1)
data = (data & ~7) | (space->machine().root_device().ioport("DSW0")->read() & 7);
@@ -228,7 +228,7 @@ READ8_HANDLER( pc200_port278_r )
READ8_HANDLER( pc1640_port378_r )
{
device_t *lpt = space->machine().device("lpt_1");
- UINT8 data = pc_lpt_r(lpt, offset);
+ UINT8 data = pc_lpt_r(lpt, *space, offset);
if (offset == 1)
data=(data & ~7) | (space->machine().root_device().ioport("DSW0")->read() & 7);
diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c
index 501c04271e0..c32af3c9cad 100644
--- a/src/mess/machine/amstrad.c
+++ b/src/mess/machine/amstrad.c
@@ -518,9 +518,9 @@ static void amstrad_plus_dma_parse(running_machine &machine, int channel)
case 0x0000: // Load PSG register
{
device_t *ay8910 = state->m_ay;
- ay8910_address_w(ay8910, 0, (command & 0x0f00) >> 8);
- ay8910_data_w(ay8910, 0, command & 0x00ff);
- ay8910_address_w(ay8910, 0, state->m_prev_reg);
+ ay8910_address_w(ay8910, state->generic_space(), 0, (command & 0x0f00) >> 8);
+ ay8910_data_w(ay8910, state->generic_space(), 0, command & 0x00ff);
+ ay8910_address_w(ay8910, state->generic_space(), 0, state->m_prev_reg);
}
logerror("DMA %i: LOAD %i, %i\n",channel,(command & 0x0f00) >> 8, command & 0x00ff);
break;
@@ -1960,10 +1960,10 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which
switch (b8b0)
{
case 0x02:
- data = upd765_status_r(fdc, 0);
+ data = upd765_status_r(fdc, space, 0);
break;
case 0x03:
- data = upd765_data_r(fdc, 0);
+ data = upd765_data_r(fdc, space, 0);
break;
default:
break;
@@ -2138,7 +2138,7 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which
break;
case 0x03: /* Write Data register of FDC */
- upd765_data_w(fdc, 0,data);
+ upd765_data_w(fdc, space, 0,data);
break;
default:
@@ -2175,7 +2175,7 @@ The exception is the case where none of b7-b0 are reset (i.e. port &FBFF), which
static void amstrad_handle_snapshot(running_machine &machine, unsigned char *pSnapshot)
{
amstrad_state *state = machine.driver_data<amstrad_state>();
- address_space* space = state->m_maincpu->space(AS_PROGRAM);
+ address_space &space = *state->m_maincpu->space(AS_PROGRAM);
mc6845_device *mc6845 = state->m_crtc;
device_t *ay8910 = state->m_ay;
int RegData;
@@ -2265,30 +2265,30 @@ static void amstrad_handle_snapshot(running_machine &machine, unsigned char *pSn
/* init CRTC */
for (i=0; i<18; i++)
{
- mc6845->address_w( *space, 0, i );
- mc6845->register_w( *space, 0, pSnapshot[0x043+i] & 0xff );
+ mc6845->address_w( space, 0, i );
+ mc6845->register_w( space, 0, pSnapshot[0x043+i] & 0xff );
}
- mc6845->address_w( *space, 0, i );
+ mc6845->address_w( space, 0, i );
/* upper rom selection */
state->m_gate_array.upper_bank = pSnapshot[0x055];
/* PPI */
- state->m_ppi->write(*space, 3, pSnapshot[0x059] & 0x0ff);
+ state->m_ppi->write(space, 3, pSnapshot[0x059] & 0x0ff);
- state->m_ppi->write(*space, 0, pSnapshot[0x056] & 0x0ff);
- state->m_ppi->write(*space, 1, pSnapshot[0x057] & 0x0ff);
- state->m_ppi->write(*space, 2, pSnapshot[0x058] & 0x0ff);
+ state->m_ppi->write(space, 0, pSnapshot[0x056] & 0x0ff);
+ state->m_ppi->write(space, 1, pSnapshot[0x057] & 0x0ff);
+ state->m_ppi->write(space, 2, pSnapshot[0x058] & 0x0ff);
/* PSG */
for (i=0; i<16; i++)
{
- ay8910_address_w(ay8910, 0, i);
- ay8910_data_w(ay8910, 0, pSnapshot[0x05b + i] & 0x0ff);
+ ay8910_address_w(ay8910, space, 0, i);
+ ay8910_data_w(ay8910, space, 0, pSnapshot[0x05b + i] & 0x0ff);
}
- ay8910_address_w(ay8910, 0, pSnapshot[0x05a]);
+ ay8910_address_w(ay8910, space, 0, pSnapshot[0x05a]);
{
int MemSize;
@@ -2458,7 +2458,7 @@ BDIR BC1 |
static void update_psg(running_machine &machine)
{
amstrad_state *state = machine.driver_data<amstrad_state>();
- address_space *space = state->m_maincpu->space(AS_PROGRAM);
+ address_space &space = *state->m_maincpu->space(AS_PROGRAM);
device_t *ay8910 = state->m_ay;
mc146818_device *rtc = state->m_rtc;
@@ -2467,13 +2467,13 @@ static void update_psg(running_machine &machine)
switch(state->m_aleste_rtc_function)
{
case 0x02: // AS
- rtc->write(*space, 0,state->m_ppi_port_outputs[amstrad_ppi_PortA]);
+ rtc->write(space, 0,state->m_ppi_port_outputs[amstrad_ppi_PortA]);
break;
case 0x04: // DS write
- rtc->write(*space, 1,state->m_ppi_port_outputs[amstrad_ppi_PortA]);
+ rtc->write(space, 1,state->m_ppi_port_outputs[amstrad_ppi_PortA]);
break;
case 0x05: // DS read
- state->m_ppi_port_inputs[amstrad_ppi_PortA] = rtc->read(*space, 1);
+ state->m_ppi_port_inputs[amstrad_ppi_PortA] = rtc->read(space, 1);
break;
}
return;
@@ -2485,17 +2485,17 @@ static void update_psg(running_machine &machine)
} break;
case 1:
{/* b6 = 1 ? : Read from selected PSG register and make the register data available to PPI Port A */
- state->m_ppi_port_inputs[amstrad_ppi_PortA] = ay8910_r(ay8910, 0);
+ state->m_ppi_port_inputs[amstrad_ppi_PortA] = ay8910_r(ay8910, space, 0);
}
break;
case 2:
{/* b7 = 1 ? : Write to selected PSG register and write data to PPI Port A */
- ay8910_data_w(ay8910, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]);
+ ay8910_data_w(ay8910, space, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]);
}
break;
case 3:
{/* b6 and b7 = 1 ? : The register will now be selected and the user can read from or write to it. The register will remain selected until another is chosen.*/
- ay8910_address_w(ay8910, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]);
+ ay8910_address_w(ay8910, space, 0, state->m_ppi_port_outputs[amstrad_ppi_PortA]);
state->m_prev_reg = state->m_ppi_port_outputs[amstrad_ppi_PortA];
}
break;
@@ -2832,7 +2832,7 @@ static const UINT8 amstrad_cycle_table_ex[256]=
static void amstrad_common_init(running_machine &machine)
{
amstrad_state *state = machine.driver_data<amstrad_state>();
- address_space *space = state->m_maincpu->space(AS_PROGRAM);
+ address_space &space = *state->m_maincpu->space(AS_PROGRAM);
device_t* romexp;
rom_image_device* romimage;
char str[20];
@@ -2846,29 +2846,29 @@ static void amstrad_common_init(running_machine &machine)
state->m_GateArray_RamConfiguration = 0;
state->m_gate_array.hsync_counter = 2;
- space->install_read_bank(0x0000, 0x1fff, "bank1");
- space->install_read_bank(0x2000, 0x3fff, "bank2");
+ space.install_read_bank(0x0000, 0x1fff, "bank1");
+ space.install_read_bank(0x2000, 0x3fff, "bank2");
- space->install_read_bank(0x4000, 0x5fff, "bank3");
- space->install_read_bank(0x6000, 0x7fff, "bank4");
+ space.install_read_bank(0x4000, 0x5fff, "bank3");
+ space.install_read_bank(0x6000, 0x7fff, "bank4");
- space->install_read_bank(0x8000, 0x9fff, "bank5");
- space->install_read_bank(0xa000, 0xbfff, "bank6");
+ space.install_read_bank(0x8000, 0x9fff, "bank5");
+ space.install_read_bank(0xa000, 0xbfff, "bank6");
- space->install_read_bank(0xc000, 0xdfff, "bank7");
- space->install_read_bank(0xe000, 0xffff, "bank8");
+ space.install_read_bank(0xc000, 0xdfff, "bank7");
+ space.install_read_bank(0xe000, 0xffff, "bank8");
- space->install_write_bank(0x0000, 0x1fff, "bank9");
- space->install_write_bank(0x2000, 0x3fff, "bank10");
+ space.install_write_bank(0x0000, 0x1fff, "bank9");
+ space.install_write_bank(0x2000, 0x3fff, "bank10");
- space->install_write_bank(0x4000, 0x5fff, "bank11");
- space->install_write_bank(0x6000, 0x7fff, "bank12");
+ space.install_write_bank(0x4000, 0x5fff, "bank11");
+ space.install_write_bank(0x6000, 0x7fff, "bank12");
- space->install_write_bank(0x8000, 0x9fff, "bank13");
- space->install_write_bank(0xa000, 0xbfff, "bank14");
+ space.install_write_bank(0x8000, 0x9fff, "bank13");
+ space.install_write_bank(0xa000, 0xbfff, "bank14");
- space->install_write_bank(0xc000, 0xdfff, "bank15");
- space->install_write_bank(0xe000, 0xffff, "bank16");
+ space.install_write_bank(0xc000, 0xdfff, "bank15");
+ space.install_write_bank(0xe000, 0xffff, "bank16");
/* Set up ROMs, if we have an expansion device connected */
romexp = get_expansion_device(machine,"rom");
@@ -2977,7 +2977,7 @@ MACHINE_START_MEMBER(amstrad_state,plus)
MACHINE_RESET_MEMBER(amstrad_state,plus)
{
- address_space *space = m_maincpu->space(AS_PROGRAM);
+ address_space &space = *m_maincpu->space(AS_PROGRAM);
int i;
UINT8 *rom = memregion("maincpu")->base();
@@ -3010,10 +3010,10 @@ MACHINE_RESET_MEMBER(amstrad_state,plus)
AmstradCPC_GA_SetRamConfiguration(machine());
amstrad_GateArray_write(machine(), 0x081); // Epyx World of Sports requires upper ROM to be enabled by default
- space->install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space->install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space->install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space->install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
// multiface_init();
machine().scheduler().timer_set( attotime::zero, FUNC(cb_set_resolution));
@@ -3027,7 +3027,7 @@ MACHINE_START_MEMBER(amstrad_state,gx4000)
MACHINE_RESET_MEMBER(amstrad_state,gx4000)
{
- address_space *space = m_maincpu->space(AS_PROGRAM);
+ address_space &space = *m_maincpu->space(AS_PROGRAM);
int i;
UINT8 *rom = memregion("maincpu")->base();
@@ -3060,10 +3060,10 @@ MACHINE_RESET_MEMBER(amstrad_state,gx4000)
AmstradCPC_GA_SetRamConfiguration(machine());
amstrad_GateArray_write(machine(), 0x081); // Epyx World of Sports requires upper ROM to be enabled by default
// multiface_init();
- space->install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
- space->install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
- space->install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
- space->install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
+ space.install_read_handler(0x4000, 0x5fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_r),this));
+ space.install_read_handler(0x6000, 0x7fff, read8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_r),this));
+ space.install_write_handler(0x4000, 0x5fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_4000_w),this));
+ space.install_write_handler(0x6000, 0x7fff, write8_delegate(FUNC(amstrad_state::amstrad_plus_asic_6000_w),this));
machine().scheduler().timer_set( attotime::zero, FUNC(cb_set_resolution));
}
diff --git a/src/mess/machine/apollo.c b/src/mess/machine/apollo.c
index a2a4993f7ab..8f37bd314e6 100644
--- a/src/mess/machine/apollo.c
+++ b/src/mess/machine/apollo.c
@@ -369,11 +369,11 @@ static void apollo_dma_ctape_drq(device_t *device, int state) {
WRITE8_MEMBER(apollo_state::apollo_dma_1_w){
SLOG1(("apollo_dma_1_w: writing DMA Controller 1 at offset %02x = %02x", offset, data));
- i8237_w(get_device_dma8237_1(&space.device()), offset, data);
+ i8237_w(get_device_dma8237_1(&space.device()), space, offset, data);
}
READ8_MEMBER(apollo_state::apollo_dma_1_r){
- UINT8 data = i8237_r(get_device_dma8237_1(&space.device()), offset);
+ UINT8 data = i8237_r(get_device_dma8237_1(&space.device()), space, offset);
SLOG1(("apollo_dma_1_r: reading DMA Controller 1 at offset %02x = %02x", offset, data));
return data;
}
@@ -384,11 +384,11 @@ READ8_MEMBER(apollo_state::apollo_dma_1_r){
WRITE8_MEMBER(apollo_state::apollo_dma_2_w){
SLOG1(("apollo_dma_2_w: writing DMA Controller 2 at offset %02x = %02x", offset/2, data));
- i8237_w(get_device_dma8237_2(&space.device()), offset / 2, data);
+ i8237_w(get_device_dma8237_2(&space.device()), space, offset / 2, data);
}
READ8_MEMBER(apollo_state::apollo_dma_2_r){
- UINT8 data = i8237_r(get_device_dma8237_2(&space.device()), offset / 2);
+ UINT8 data = i8237_r(get_device_dma8237_2(&space.device()), space, offset / 2);
SLOG1(("apollo_dma_2_r: reading DMA Controller 2 at offset %02x = %02x", offset/2, data));
return data;
}
@@ -526,7 +526,7 @@ static WRITE8_DEVICE_HANDLER( apollo_dma8237_ctape_dack_w ) {
}
static READ8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_r ) {
- UINT8 data = pc_fdc_dack_r(device->machine());
+ UINT8 data = pc_fdc_dack_r(device->machine(), space);
// DLOG2(("dma fdc dack read %02x",data));
// hack for DN3000: select appropriate DMA channel No.
@@ -537,7 +537,7 @@ static READ8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_r ) {
static WRITE8_DEVICE_HANDLER( apollo_dma8237_fdc_dack_w ) {
// DLOG2(("dma fdc dack write %02x", data));
- pc_fdc_dack_w(device->machine(), data);
+ pc_fdc_dack_w(device->machine(), space, data);
// hack for DN3000: select appropriate DMA channel No.
// Note: too late for this byte, but next bytes will be ok
@@ -623,11 +623,11 @@ INLINE device_t *get_pic8259_slave(device_t *device) {
WRITE8_DEVICE_HANDLER(apollo_pic8259_master_w ) {
DLOG1(("writing %s at offset %X = %02x", device->tag(), offset, data));
- pic8259_w(device, offset, data);
+ pic8259_w(device, space, offset, data);
}
READ8_DEVICE_HANDLER( apollo_pic8259_master_r ) {
- UINT8 data = pic8259_r(device, offset);
+ UINT8 data = pic8259_r(device, space, offset);
DLOG1(("reading %s at offset %X = %02x", device->tag(), offset, data));
return data;
}
@@ -638,11 +638,11 @@ READ8_DEVICE_HANDLER( apollo_pic8259_master_r ) {
WRITE8_DEVICE_HANDLER(apollo_pic8259_slave_w ) {
DLOG1(("writing %s at offset %X = %02x", device->tag(), offset, data));
- pic8259_w(device, offset, data);
+ pic8259_w(device, space, offset, data);
}
READ8_DEVICE_HANDLER( apollo_pic8259_slave_r ) {
- UINT8 data = pic8259_r(device, offset);
+ UINT8 data = pic8259_r(device, space, offset);
DLOG1(("reading %s at offset %X = %02x", device->tag(), offset, data));
return data;
}
@@ -1026,7 +1026,7 @@ READ8_DEVICE_HANDLER(apollo_sio_r) {
"1X/16X Test", "RHRB", "IVR", "Input Ports", "Start Counter",
"Stop Counter" };
- int data = duart68681_r(device, offset / 2);
+ int data = duart68681_r(device, space, offset / 2);
if (sio_irq_line) {
apollo_pic_set_irq_line(device, APOLLO_IRQ_SIO1, 0);
@@ -1089,7 +1089,7 @@ WRITE8_DEVICE_HANDLER(apollo_sio_w)
}
break;
}
- duart68681_w(device, offset / 2, data);
+ duart68681_w(device, space, offset / 2, data);
}
/*-------------------------------------------------
@@ -1106,7 +1106,7 @@ static TIMER_CALLBACK(kbd_timer_callback)
#define SRA 0x01
#define SRB 0x09
- if (!(duart68681_r(device, SRB) & 0x02))
+ if (!(duart68681_r(device, space, SRB) & 0x02))
{
// Channel B FIFO not yet full (STATUS_FIFO_FULL)
if (read(STDIN_FILENO, &data, 1) == 1)
@@ -1116,7 +1116,7 @@ static TIMER_CALLBACK(kbd_timer_callback)
// stop sleeping to reduce CPU usage
sio_sleep(0);
}
- else if (input_from_stdin && (duart68681_r(device, SRB) & 0x0c) == 0x0c)
+ else if (input_from_stdin && (duart68681_r(device, space, SRB) & 0x0c) == 0x0c)
{
// we reduce the CPU usage, if SRB is being polled for input
// but only as long as the transmitter is empty and ready
@@ -1221,7 +1221,7 @@ READ8_DEVICE_HANDLER(apollo_sio2_r)
apollo_pic_set_irq_line(device, APOLLO_IRQ_SIO2, 0);
- int data = duart68681_r(device, offset / 2);
+ int data = duart68681_r(device, space, offset / 2);
DLOG2(("reading 2681 reg %x (%s) returned %02x",
offset, duart68681_reg_read_names[offset/2], data ));
@@ -1247,7 +1247,7 @@ WRITE8_DEVICE_HANDLER(apollo_sio2_w)
break;
}
- duart68681_w(device, offset / 2, data);
+ duart68681_w(device, space, offset / 2, data);
}
/*-------------------------------------------------
diff --git a/src/mess/machine/apollo_kbd.c b/src/mess/machine/apollo_kbd.c
index 39c6d92840d..75bdbb06dee 100644
--- a/src/mess/machine/apollo_kbd.c
+++ b/src/mess/machine/apollo_kbd.c
@@ -98,6 +98,10 @@ void apollo_kbd_device::device_start()
m_device = this;
LOG1(("start apollo_kbd"));
+ m_putchar.resolve(apollo_kbd_putchar_cb, *this);
+ m_has_beeper.resolve(apollo_kbd_has_beeper_cb, *this);
+ m_is_german.resolve(apollo_kbd_is_german_cb, *this);
+
m_beeper.start(this);
m_mouse.start(this);
m_tx_fifo.start(this);
@@ -200,8 +204,8 @@ void apollo_kbd_device::beeper::on()
int apollo_kbd_device::beeper::keyboard_has_beeper()
{
- return m_device->apollo_kbd_has_beeper ?
- (m_device->apollo_kbd_has_beeper)(m_device, 0) : 0;
+ return !m_device->m_has_beeper.isnull() ?
+ m_device->m_has_beeper(0) : 0;
}
void apollo_kbd_device::beeper::beeper_callback()
@@ -395,8 +399,8 @@ void apollo_kbd_device::tx_fifo::flush()
{
m_tx_pending = 1;
- if (m_device->apollo_kbd_putchar)
- (m_device->apollo_kbd_putchar)(m_device, 0, getchar());
+ if (!m_device->m_putchar.isnull())
+ m_device->m_putchar(0, getchar());
// 11 = one start, 8 data, one parity (even), one stop bit
m_timer->adjust(attotime::from_hz(m_baud_rate / 11), 0);
}
@@ -525,8 +529,8 @@ void apollo_kbd_device::keyboard_tty::putchar(UINT8 data)
int apollo_kbd_device::keyboard_is_german()
{
- return apollo_kbd_is_german ?
- (*apollo_kbd_is_german)(this, 0) : 0;
+ return !m_is_german.isnull() ?
+ m_is_german(0) : 0;
}
/*-------------------------------------------------
diff --git a/src/mess/machine/apollo_kbd.h b/src/mess/machine/apollo_kbd.h
index eb8fff90752..7edb0c26235 100644
--- a/src/mess/machine/apollo_kbd.h
+++ b/src/mess/machine/apollo_kbd.h
@@ -51,9 +51,9 @@ void apollo_kbd_getchar(device_t *device, UINT8 data);
struct apollo_kbd_interface
{
- write8_device_func apollo_kbd_putchar;
- read8_device_func apollo_kbd_has_beeper;
- read8_device_func apollo_kbd_is_german;
+ devcb_write8 apollo_kbd_putchar_cb;
+ devcb_read8 apollo_kbd_has_beeper_cb;
+ devcb_read8 apollo_kbd_is_german_cb;
};
#define APOLLO_KBD_INTERFACE(name) const struct apollo_kbd_interface (name)
@@ -192,6 +192,10 @@ private:
int m_keytime[0x80]; // time until next key press (1 ms)
UINT8 m_keyon[0x80]; // is 1 if key is pressed
+ devcb_resolved_write8 m_putchar;
+ devcb_resolved_read8 m_has_beeper;
+ devcb_resolved_read8 m_is_german;
+
static UINT16 m_code_table[];
};
diff --git a/src/mess/machine/apple1.c b/src/mess/machine/apple1.c
index 34cb7c0db06..a444a672423 100644
--- a/src/mess/machine/apple1.c
+++ b/src/mess/machine/apple1.c
@@ -54,9 +54,9 @@
static TIMER_CALLBACK(apple1_kbd_poll);
static TIMER_CALLBACK(apple1_kbd_strobe_end);
-static READ8_DEVICE_HANDLER( apple1_pia0_kbdin );
-static WRITE8_DEVICE_HANDLER( apple1_pia0_dspout );
-static WRITE8_DEVICE_HANDLER( apple1_pia0_dsp_write_signal );
+static DECLARE_READ8_DEVICE_HANDLER( apple1_pia0_kbdin );
+static DECLARE_WRITE8_DEVICE_HANDLER( apple1_pia0_dspout );
+static DECLARE_WRITE8_DEVICE_HANDLER( apple1_pia0_dsp_write_signal );
static TIMER_CALLBACK(apple1_dsp_ready_start);
static TIMER_CALLBACK(apple1_dsp_ready_end);
diff --git a/src/mess/machine/apple2gs.c b/src/mess/machine/apple2gs.c
index 166543cd2d8..87e2edff1c9 100644
--- a/src/mess/machine/apple2gs.c
+++ b/src/mess/machine/apple2gs.c
@@ -1052,7 +1052,7 @@ READ8_MEMBER( apple2gs_state::apple2gs_c0xx_r )
case 0xe8: case 0xe9: case 0xea: case 0xeb: case 0xec: case 0xed: case 0xee: case 0xef:
if ((m_sltromsel & (1 << 6)) == 0)
{
- result = applefdc_r(m_fdc, offset);
+ result = applefdc_r(m_fdc, space, offset);
}
else
{
@@ -1208,7 +1208,7 @@ WRITE8_MEMBER( apple2gs_state::apple2gs_c0xx_w )
case 0xe8: case 0xe9: case 0xea: case 0xeb: case 0xec: case 0xed: case 0xee: case 0xef:
if ((m_sltromsel & (1 << 6)) == 0)
{
- applefdc_w(m_fdc, offset, data);
+ applefdc_w(m_fdc, space, offset, data);
}
else
{
diff --git a/src/mess/machine/apple3.c b/src/mess/machine/apple3.c
index 1c34a3341e1..0f249e1b5f1 100644
--- a/src/mess/machine/apple3.c
+++ b/src/mess/machine/apple3.c
@@ -171,7 +171,7 @@ READ8_MEMBER(apple3_state::apple3_c0xx_r)
case 0xE4: case 0xE5: case 0xE6: case 0xE7:
case 0xE8: case 0xE9: case 0xEA: case 0xEB:
case 0xEC: case 0xED: case 0xEE: case 0xEF:
- result = applefdc_r(fdc, offset);
+ result = applefdc_r(fdc, space, offset);
break;
case 0xF0:
@@ -234,7 +234,7 @@ WRITE8_MEMBER(apple3_state::apple3_c0xx_w)
case 0xE4: case 0xE5: case 0xE6: case 0xE7:
case 0xE8: case 0xE9: case 0xEA: case 0xEB:
case 0xEC: case 0xED: case 0xEE: case 0xEF:
- applefdc_w(fdc, offset, data);
+ applefdc_w(fdc, space, offset, data);
break;
case 0xF0:
diff --git a/src/mess/machine/applefdc.h b/src/mess/machine/applefdc.h
index 904d2d54485..d3e2b34dc44 100644
--- a/src/mess/machine/applefdc.h
+++ b/src/mess/machine/applefdc.h
@@ -102,8 +102,8 @@ struct applefdc_interface
PROTOTYPES
***************************************************************************/
/* read/write handlers */
-READ8_DEVICE_HANDLER(applefdc_r);
-WRITE8_DEVICE_HANDLER(applefdc_w);
+DECLARE_READ8_DEVICE_HANDLER(applefdc_r);
+DECLARE_WRITE8_DEVICE_HANDLER(applefdc_w);
/* accessor */
UINT8 applefdc_get_lines(device_t *device);
diff --git a/src/mess/machine/ataridev.h b/src/mess/machine/ataridev.h
index 56d173c2323..214966c4150 100644
--- a/src/mess/machine/ataridev.h
+++ b/src/mess/machine/ataridev.h
@@ -67,8 +67,8 @@ extern const device_type ATARI_FDC;
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( atari_serin_r );
-WRITE8_DEVICE_HANDLER( atari_serout_w );
+DECLARE_READ8_DEVICE_HANDLER( atari_serin_r );
+DECLARE_WRITE8_DEVICE_HANDLER( atari_serout_w );
WRITE_LINE_DEVICE_HANDLER( atarifdc_pia_cb2_w );
#endif /* _ATARIDEV_H */
diff --git a/src/mess/machine/ay31015.c b/src/mess/machine/ay31015.c
index 7a2867895d7..323525edf88 100644
--- a/src/mess/machine/ay31015.c
+++ b/src/mess/machine/ay31015.c
@@ -112,6 +112,10 @@ struct ay31015_t
UINT16 tx_pulses; // total pulses left
double tx_clock;
emu_timer *tx_timer;
+
+ devcb_resolved_read8 read_si; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */
+ devcb_resolved_write8 write_so; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */
+ devcb_resolved_write8 status_changed; /* This will be called whenever one of the status pins may have changed. Optional */
};
@@ -148,8 +152,8 @@ INLINE UINT8 ay31015_get_si( device_t *device )
{
ay31015_t *ay31015 = get_safe_token( device );
- if ( ay31015->config->read_si )
- ay31015->pins[AY31015_SI] = (ay31015->config->read_si)( device, 0 ) ? 1 : 0;
+ if ( !ay31015->read_si.isnull() )
+ ay31015->pins[AY31015_SI] = ay31015->read_si( 0 ) ? 1 : 0;
return ay31015->pins[AY31015_SI];
}
@@ -161,8 +165,8 @@ INLINE void ay31015_set_so( device_t *device, int data )
ay31015->pins[AY31015_SO] = data ? 1 : 0;
- if ( ay31015->config->write_so )
- (ay31015->config->write_so)( device, 0, ay31015->pins[AY31015_SO] );
+ if ( !ay31015->write_so.isnull() )
+ ay31015->write_so( 0, ay31015->pins[AY31015_SO] );
}
@@ -197,9 +201,9 @@ static void ay31015_update_status_pins( device_t *device )
}
status_pins_changed += ay31015_update_status_pin( ay31015, STATUS_EOC, AY31015_EOC );
- if ( status_pins_changed && ay31015->config->status_changed )
+ if ( status_pins_changed && !ay31015->status_changed.isnull() )
{
- (ay31015->config->status_changed)( device, 0, status_pins_changed );
+ ay31015->status_changed( 0, status_pins_changed );
}
}
@@ -693,6 +697,10 @@ static DEVICE_START(ay31015)
ay31015->config = (const ay31015_config*)device->static_config();
+ ay31015->read_si.resolve(ay31015->config->read_si_cb, *device);
+ ay31015->write_so.resolve(ay31015->config->write_so_cb, *device);
+ ay31015->status_changed.resolve(ay31015->config->status_changed_cb, *device);
+
ay31015->tx_clock = ay31015->config->transmitter_clock;
ay31015->rx_clock = ay31015->config->receiver_clock;
diff --git a/src/mess/machine/ay31015.h b/src/mess/machine/ay31015.h
index d36d13597ff..3f0c0affdf4 100644
--- a/src/mess/machine/ay31015.h
+++ b/src/mess/machine/ay31015.h
@@ -54,9 +54,9 @@ struct ay31015_config
ay31015_type_t type; /* Type of chip */
double transmitter_clock; /* TCP - pin 40 */
double receiver_clock; /* RCP - pin 17 */
- read8_device_func read_si; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */
- write8_device_func write_so; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */
- write8_device_func status_changed; /* This will be called whenever one of the status pins may have changed. Optional */
+ devcb_read8 read_si_cb; /* SI - pin 20 - This will be called whenever the SI pin is sampled. Optional */
+ devcb_write8 write_so_cb; /* SO - pin 25 - This will be called whenever data is put on the SO pin. Optional */
+ devcb_write8 status_changed_cb; /* This will be called whenever one of the status pins may have changed. Optional */
};
diff --git a/src/mess/machine/bbc.c b/src/mess/machine/bbc.c
index be1cd726f84..8dccb8725fc 100644
--- a/src/mess/machine/bbc.c
+++ b/src/mess/machine/bbc.c
@@ -573,7 +573,7 @@ long myo;
return acia->data_read(space,0);
}
if ((myo>=0x10) && (myo<=0x17)) return 0xfe; /* Serial System Chip */
- if ((myo>=0x18) && (myo<=0x1f)) return uPD7002_r(machine().device("upd7002"), myo-0x18); /* A to D converter */
+ if ((myo>=0x18) && (myo<=0x1f)) return uPD7002_r(machine().device("upd7002"), space, myo-0x18); /* A to D converter */
if ((myo>=0x20) && (myo<=0x23)) return 0xfe; /* VideoULA */
if ((myo>=0x24) && (myo<=0x27)) return bbcm_wd1770l_read(space, myo-0x24); /* 1770 */
if ((myo>=0x28) && (myo<=0x2f)) return bbcm_wd1770_read(space, myo-0x28); /* disc control latch */
@@ -583,7 +583,7 @@ long myo;
if ((myo>=0x40) && (myo<=0x5f)) return via_0->read(space,myo-0x40);
if ((myo>=0x60) && (myo<=0x7f)) return via_1->read(space,myo-0x60);
if ((myo>=0x80) && (myo<=0x9f)) return 0xfe;
- if ((myo>=0xa0) && (myo<=0xbf)) return mc6854_r(adlc, myo & 0x03);
+ if ((myo>=0xa0) && (myo<=0xbf)) return mc6854_r(adlc, space, myo & 0x03);
if ((myo>=0xc0) && (myo<=0xdf)) return 0xfe;
if ((myo>=0xe0) && (myo<=0xff)) return 0xfe;
}
@@ -613,7 +613,7 @@ long myo;
acia->data_write(space, 0, data);
}
if ((myo>=0x10) && (myo<=0x17)) bbc_SerialULA_w(space, myo-0x10,data); /* Serial System Chip */
- if ((myo>=0x18) && (myo<=0x1f)) uPD7002_w(machine().device("upd7002"),myo-0x18,data); /* A to D converter */
+ if ((myo>=0x18) && (myo<=0x1f)) uPD7002_w(machine().device("upd7002"),space,myo-0x18,data); /* A to D converter */
if ((myo>=0x20) && (myo<=0x23)) bbc_videoULA_w(space, myo-0x20,data); /* VideoULA */
if ((myo>=0x24) && (myo<=0x27)) bbcm_wd1770l_write(space, myo-0x24,data); /* 1770 */
if ((myo>=0x28) && (myo<=0x2f)) bbcm_wd1770_write(space, myo-0x28,data); /* disc control latch */
@@ -623,7 +623,7 @@ long myo;
if ((myo>=0x40) && (myo<=0x5f)) via_0->write(space,myo-0x40, data);
if ((myo>=0x60) && (myo<=0x7f)) via_1->write(space,myo-0x60, data);
//if ((myo>=0x80) && (myo<=0x9f))
- if ((myo>=0xa0) && (myo<=0xbf)) mc6854_w(adlc, myo & 0x03, data);
+ if ((myo>=0xa0) && (myo<=0xbf)) mc6854_w(adlc, space, myo & 0x03, data);
//if ((myo>=0xc0) && (myo<=0xdf))
//if ((myo>=0xe0) && (myo<=0xff))
}
@@ -814,9 +814,9 @@ INTERRUPT_GEN( bbcm_keyscan )
-static int bbc_keyboard(address_space *space, int data)
+static int bbc_keyboard(address_space &space, int data)
{
- bbc_state *state = space->machine().driver_data<bbc_state>();
+ bbc_state *state = space.machine().driver_data<bbc_state>();
int bit;
int row;
int res;
@@ -824,7 +824,7 @@ static int bbc_keyboard(address_space *space, int data)
"COL0", "COL1", "COL2", "COL3", "COL4",
"COL5", "COL6", "COL7", "COL8", "COL9"
};
- via6522_device *via_0 = space->machine().device<via6522_device>("via6522_0");
+ via6522_device *via_0 = space.machine().device<via6522_device>("via6522_0");
state->m_column = data & 0x0f;
row = (data>>4) & 0x07;
@@ -833,7 +833,7 @@ static int bbc_keyboard(address_space *space, int data)
if (state->m_column < 10)
{
- res = space->machine().root_device().ioport(colnames[state->m_column])->read();
+ res = space.machine().root_device().ioport(colnames[state->m_column])->read();
}
else
{
@@ -874,11 +874,11 @@ static void bbcb_IC32_initialise(bbc_state *state)
/* This the BBC Masters Real Time Clock and NVRam IC */
-static void MC146818_set(address_space *space)
+static void MC146818_set(address_space &space)
{
- bbc_state *state = space->machine().driver_data<bbc_state>();
+ bbc_state *state = space.machine().driver_data<bbc_state>();
logerror ("146181 WR=%d DS=%d AS=%d CE=%d \n",state->m_MC146818_WR,state->m_MC146818_DS,state->m_MC146818_AS,state->m_MC146818_CE);
- mc146818_device *rtc = space->machine().device<mc146818_device>("rtc");
+ mc146818_device *rtc = space.machine().device<mc146818_device>("rtc");
// if chip enabled
if (state->m_MC146818_CE)
@@ -888,12 +888,12 @@ static void MC146818_set(address_space *space)
{
if (state->m_MC146818_WR)
{
- state->m_via_system_porta=rtc->read(*space, 1);
+ state->m_via_system_porta=rtc->read(space, 1);
//logerror("read 146818 data %d \n",state->m_via_system_porta);
}
else
{
- rtc->write(*space, 1, state->m_via_system_porta);
+ rtc->write(space, 1, state->m_via_system_porta);
//logerror("write 146818 data %d \n",state->m_via_system_porta);
}
}
@@ -901,7 +901,7 @@ static void MC146818_set(address_space *space)
// if address select is set then set the address in the 146818
if (state->m_MC146818_AS)
{
- rtc->write(*space, 0, state->m_via_system_porta);
+ rtc->write(space, 0, state->m_via_system_porta);
//logerror("write 146818 address %d \n",state->m_via_system_porta);
}
}
@@ -911,14 +911,13 @@ static void MC146818_set(address_space *space)
static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_porta )
{
bbc_state *state = device->machine().driver_data<bbc_state>();
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
//logerror("SYSTEM write porta %d\n",data);
state->m_via_system_porta = data;
if (state->m_b0_sound == 0)
{
//logerror("Doing an unsafe write to the sound chip %d \n",data);
- state->m_sn->write(*device->machine().device<legacy_cpu_device>("maincpu")->space(), 0,state->m_via_system_porta);
+ state->m_sn->write(space, 0,state->m_via_system_porta);
}
if (state->m_b3_keyboard == 0)
{
@@ -932,7 +931,6 @@ static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_porta )
static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_portb )
{
bbc_state *state = device->machine().driver_data<bbc_state>();
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
int bit, value;
bit = data & 0x07;
value = (data >> 3) & 0x01;
@@ -1030,7 +1028,7 @@ static WRITE8_DEVICE_HANDLER( bbcb_via_system_write_portb )
if (state->m_b0_sound == 1)
{
state->m_b0_sound = 0;
- state->m_sn->write(*device->machine().device<legacy_cpu_device>("maincpu")->space(), 0, state->m_via_system_porta);
+ state->m_sn->write(space, 0, state->m_via_system_porta);
}
break;
case 1:
@@ -1176,7 +1174,7 @@ static READ8_DEVICE_HANDLER( bbcb_via_system_read_ca1 )
/* joystick EOC */
static READ8_DEVICE_HANDLER( bbcb_via_system_read_cb1 )
{
- return uPD7002_EOC_r(device->machine().device("upd7002"),0);
+ return uPD7002_EOC_r(device->machine().device("upd7002"),space,0);
}
@@ -1453,11 +1451,11 @@ READ8_MEMBER(bbc_state::bbc_i8271_read)
case 2:
case 3:
/* 8271 registers */
- ret=i8271_r(i8271, offset);
+ ret=i8271_r(i8271, space, offset);
logerror(" %d\n",ret);
break;
case 4:
- ret=i8271_data_r(i8271, offset);
+ ret=i8271_data_r(i8271, space, offset);
logerror(" %d\n",ret);
break;
default:
@@ -1480,10 +1478,10 @@ WRITE8_MEMBER(bbc_state::bbc_i8271_write)
case 2:
case 3:
/* 8271 registers */
- i8271_w(i8271, offset, data);
+ i8271_w(i8271, space, offset, data);
return;
case 4:
- i8271_data_w(i8271, offset, data);
+ i8271_data_w(i8271, space, offset, data);
return;
default:
break;
@@ -1617,16 +1615,16 @@ READ8_MEMBER(bbc_state::bbc_wd1770_read)
switch (offset)
{
case 4:
- retval=wd17xx_status_r(fdc, 0);
+ retval=wd17xx_status_r(fdc, space, 0);
break;
case 5:
- retval=wd17xx_track_r(fdc, 0);
+ retval=wd17xx_track_r(fdc, space, 0);
break;
case 6:
- retval=wd17xx_sector_r(fdc, 0);
+ retval=wd17xx_sector_r(fdc, space, 0);
break;
case 7:
- retval=wd17xx_data_r(fdc, 0);
+ retval=wd17xx_data_r(fdc, space, 0);
break;
default:
break;
@@ -1646,16 +1644,16 @@ WRITE8_MEMBER(bbc_state::bbc_wd1770_write)
bbc_wd177x_status_w(space, 0, data);
break;
case 4:
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 5:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 6:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 7:
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
default:
break;
@@ -1730,13 +1728,13 @@ READ8_MEMBER(bbc_state::bbc_opus_read)
switch (offset)
{
case 0xf8:
- return wd17xx_status_r(fdc, 0);
+ return wd17xx_status_r(fdc, space, 0);
case 0xf9:
- return wd17xx_track_r(fdc, 0);
+ return wd17xx_track_r(fdc, space, 0);
case 0xfa:
- return wd17xx_sector_r(fdc, 0);
+ return wd17xx_sector_r(fdc, space, 0);
case 0xfb:
- return wd17xx_data_r(fdc, 0);
+ return wd17xx_data_r(fdc, space, 0);
}
}
@@ -1760,16 +1758,16 @@ WRITE8_MEMBER(bbc_state::bbc_opus_write)
switch (offset)
{
case 0xf8:
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 0xf9:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 0xfa:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 0xfb:
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
case 0xfc:
bbc_opus_status_w(space, 0,data);
@@ -1802,16 +1800,16 @@ READ8_MEMBER(bbc_state::bbcm_wd1770_read)
switch (offset)
{
case 0:
- retval=wd17xx_status_r(fdc, 0);
+ retval=wd17xx_status_r(fdc, space, 0);
break;
case 1:
- retval=wd17xx_track_r(fdc, 0);
+ retval=wd17xx_track_r(fdc, space, 0);
break;
case 2:
- retval=wd17xx_sector_r(fdc, 0);
+ retval=wd17xx_sector_r(fdc, space, 0);
break;
case 3:
- retval=wd17xx_data_r(fdc, 0);
+ retval=wd17xx_data_r(fdc, space, 0);
break;
default:
break;
@@ -1827,16 +1825,16 @@ WRITE8_MEMBER(bbc_state::bbcm_wd1770_write)
switch (offset)
{
case 0:
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 1:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 2:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 3:
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
default:
break;
diff --git a/src/mess/machine/bebox.c b/src/mess/machine/bebox.c
index 2e9cbb23ef9..817fcf39e0d 100644
--- a/src/mess/machine/bebox.c
+++ b/src/mess/machine/bebox.c
@@ -696,12 +696,12 @@ static WRITE8_HANDLER( bebox_dma_write_byte )
static READ8_DEVICE_HANDLER( bebox_dma8237_fdc_dack_r ) {
- return pc_fdc_dack_r(device->machine());
+ return pc_fdc_dack_r(device->machine(),space);
}
static WRITE8_DEVICE_HANDLER( bebox_dma8237_fdc_dack_w ) {
- pc_fdc_dack_w( device->machine(), data );
+ pc_fdc_dack_w( device->machine(), space, data );
}
diff --git a/src/mess/machine/beta.c b/src/mess/machine/beta.c
index 5731c7d84ef..1207732f86f 100644
--- a/src/mess/machine/beta.c
+++ b/src/mess/machine/beta.c
@@ -99,7 +99,7 @@ READ8_DEVICE_HANDLER(betadisk_status_r)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- return wd17xx_status_r(beta->wd179x, offset);
+ return wd17xx_status_r(beta->wd179x, space, offset);
} else {
return 0xff;
}
@@ -110,7 +110,7 @@ READ8_DEVICE_HANDLER(betadisk_track_r)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- return wd17xx_track_r(beta->wd179x, offset);
+ return wd17xx_track_r(beta->wd179x, space, offset);
} else {
return 0xff;
}
@@ -121,7 +121,7 @@ READ8_DEVICE_HANDLER(betadisk_sector_r)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- return wd17xx_sector_r(beta->wd179x, offset);
+ return wd17xx_sector_r(beta->wd179x, space, offset);
} else {
return 0xff;
}
@@ -133,7 +133,7 @@ READ8_DEVICE_HANDLER(betadisk_data_r)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- return wd17xx_data_r(beta->wd179x, offset);
+ return wd17xx_data_r(beta->wd179x, space, offset);
} else {
return 0xff;
}
@@ -171,7 +171,7 @@ WRITE8_DEVICE_HANDLER(betadisk_command_w)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- wd17xx_command_w(beta->wd179x, offset, data);
+ wd17xx_command_w(beta->wd179x, space, offset, data);
}
}
@@ -180,7 +180,7 @@ WRITE8_DEVICE_HANDLER(betadisk_track_w)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- wd17xx_track_w(beta->wd179x, offset, data);
+ wd17xx_track_w(beta->wd179x, space, offset, data);
}
}
@@ -189,7 +189,7 @@ WRITE8_DEVICE_HANDLER(betadisk_sector_w)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- wd17xx_sector_w(beta->wd179x, offset, data);
+ wd17xx_sector_w(beta->wd179x, space, offset, data);
}
}
@@ -198,7 +198,7 @@ WRITE8_DEVICE_HANDLER(betadisk_data_w)
beta_disk_state *beta = get_safe_token(device);
if (beta->betadisk_active==1) {
- wd17xx_data_w(beta->wd179x, offset, data);
+ wd17xx_data_w(beta->wd179x, space, offset, data);
}
}
diff --git a/src/mess/machine/beta.h b/src/mess/machine/beta.h
index d8e390adccc..fec406675a9 100644
--- a/src/mess/machine/beta.h
+++ b/src/mess/machine/beta.h
@@ -47,15 +47,15 @@ extern const device_type BETA_DISK;
#define MCFG_BETA_DISK_REMOVE(_tag) \
MCFG_DEVICE_REMOVE(_tag)
-READ8_DEVICE_HANDLER(betadisk_status_r);
-READ8_DEVICE_HANDLER(betadisk_track_r);
-READ8_DEVICE_HANDLER(betadisk_sector_r);
-READ8_DEVICE_HANDLER(betadisk_data_r);
-READ8_DEVICE_HANDLER(betadisk_state_r);
-
-WRITE8_DEVICE_HANDLER(betadisk_param_w);
-WRITE8_DEVICE_HANDLER(betadisk_command_w);
-WRITE8_DEVICE_HANDLER(betadisk_track_w);
-WRITE8_DEVICE_HANDLER(betadisk_sector_w);
-WRITE8_DEVICE_HANDLER(betadisk_data_w);
+DECLARE_READ8_DEVICE_HANDLER(betadisk_status_r);
+DECLARE_READ8_DEVICE_HANDLER(betadisk_track_r);
+DECLARE_READ8_DEVICE_HANDLER(betadisk_sector_r);
+DECLARE_READ8_DEVICE_HANDLER(betadisk_data_r);
+DECLARE_READ8_DEVICE_HANDLER(betadisk_state_r);
+
+DECLARE_WRITE8_DEVICE_HANDLER(betadisk_param_w);
+DECLARE_WRITE8_DEVICE_HANDLER(betadisk_command_w);
+DECLARE_WRITE8_DEVICE_HANDLER(betadisk_track_w);
+DECLARE_WRITE8_DEVICE_HANDLER(betadisk_sector_w);
+DECLARE_WRITE8_DEVICE_HANDLER(betadisk_data_w);
#endif /* __BETA_H__ */
diff --git a/src/mess/machine/c128.c b/src/mess/machine/c128.c
index 809efae4107..3132ee108e0 100644
--- a/src/mess/machine/c128.c
+++ b/src/mess/machine/c128.c
@@ -126,7 +126,7 @@ void c128_state::nmi()
READ8_MEMBER( c128_state::cia1_pa_r )
{
- UINT8 cia0portb = mos6526_pb_r(m_cia1, 0);
+ UINT8 cia0portb = mos6526_pb_r(m_cia1, space, 0);
return cbm_common_cia0_port_a_r(m_cia1, cia0portb);
}
@@ -134,7 +134,7 @@ READ8_MEMBER( c128_state::cia1_pa_r )
READ8_MEMBER( c128_state::cia1_pb_r )
{
UINT8 value = 0xff;
- UINT8 cia0porta = mos6526_pa_r(m_cia1, 0);
+ UINT8 cia0porta = mos6526_pa_r(m_cia1, space, 0);
//vic2e_device_interface *intf = dynamic_cast<vic2e_device_interface*>(&m_vic);
value &= cbm_common_cia0_port_b_r(m_cia1, cia0porta);
@@ -370,10 +370,10 @@ WRITE8_MEMBER( c128_state::write_d000 )
m_colorram[(offset & 0x3ff)|((c64_port6510&3)<<10)] = data | 0xf0; // maybe all 8 bit connected!
break;
case 0xc:
- mos6526_w(m_cia1, offset, data);
+ mos6526_w(m_cia1, space, offset, data);
break;
case 0xd:
- mos6526_w(m_cia2, offset, data);
+ mos6526_w(m_cia2, space, offset, data);
break;
case 0xf:
dma8726_port_w(space, offset&0xff,data);
@@ -405,17 +405,17 @@ READ8_MEMBER( c128_state::read_io )
else if (offset == 0xc00)
{
cia_set_port_mask_value(m_cia1, 0, ioport("CTRLSEL")->read() & 0x80 ? c64_keyline[8] : c64_keyline[9] );
- return mos6526_r(m_cia1, offset);
+ return mos6526_r(m_cia1, space, offset);
}
else if (offset == 0xc01)
{
cia_set_port_mask_value(m_cia1, 1, ioport("CTRLSEL")->read() & 0x80 ? c64_keyline[9] : c64_keyline[8] );
- return mos6526_r(m_cia1, offset);
+ return mos6526_r(m_cia1, space, offset);
}
else if (offset < 0xd00)
- return mos6526_r(m_cia1, offset);
+ return mos6526_r(m_cia1, space, offset);
else if (offset < 0xe00)
- return mos6526_r(m_cia2, offset);
+ return mos6526_r(m_cia2, space, offset);
else if ((offset >= 0xf00) & (offset <= 0xfff))
return dma8726_port_r(space, offset&0xff);
DBG_LOG(machine(), 1, "io read", ("%.3x\n", offset));
diff --git a/src/mess/machine/c1551.c b/src/mess/machine/c1551.c
index 5560de15b3c..c63a3399a5d 100644
--- a/src/mess/machine/c1551.c
+++ b/src/mess/machine/c1551.c
@@ -579,7 +579,7 @@ UINT8 c1551_device::plus4_cd_r(address_space &space, offs_t offset, UINT8 data,
if (tpi1_selected(offset))
{
- data = tpi6525_r(m_tpi1, offset & 0x07);
+ data = tpi6525_r(m_tpi1, space, offset & 0x07);
}
return data;
@@ -594,7 +594,7 @@ void c1551_device::plus4_cd_w(address_space &space, offs_t offset, UINT8 data, i
{
if (tpi1_selected(offset))
{
- tpi6525_w(m_tpi1, offset & 0x07, data);
+ tpi6525_w(m_tpi1, space, offset & 0x07, data);
}
m_exp->cd_w(space, offset, data, ba, cs0, c1l, c2l, cs1, c1h, c2h);
diff --git a/src/mess/machine/c64.c b/src/mess/machine/c64.c
index 08c066abe56..c47cdafc0e6 100644
--- a/src/mess/machine/c64.c
+++ b/src/mess/machine/c64.c
@@ -80,14 +80,14 @@ static void c64_nmi( running_machine &machine )
static READ8_DEVICE_HANDLER( c64_cia0_port_a_r )
{
- UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), 0);
+ UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), space, 0);
return cbm_common_cia0_port_a_r(device, cia0portb);
}
static READ8_DEVICE_HANDLER( c64_cia0_port_b_r )
{
- UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), 0);
+ UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), space, 0);
return cbm_common_cia0_port_b_r(device, cia0porta);
}
@@ -256,17 +256,17 @@ WRITE8_HANDLER( c64_write_io )
state->m_io_mirror[offset] = data;
if (offset < 0x400)
- vic2_port_w(vic2, offset & 0x3ff, data);
+ vic2_port_w(vic2, *space, offset & 0x3ff, data);
else if (offset < 0x800)
sid->write(*space, offset & 0x3ff, data);
else if (offset < 0xc00)
state->m_colorram[offset & 0x3ff] = data | 0xf0;
else if (offset < 0xd00)
- mos6526_w(cia_0, offset, data);
+ mos6526_w(cia_0, *space, offset, data);
else if (offset < 0xe00)
{
if (state->m_cia1_on)
- mos6526_w(cia_1, offset, data);
+ mos6526_w(cia_1, *space, offset, data);
else
DBG_LOG(space->machine(), 1, "io write", ("%.3x %.2x\n", offset, data));
}
@@ -294,7 +294,7 @@ READ8_HANDLER( c64_read_io )
device_t *vic2 = space->machine().device("vic2");
if (offset < 0x400)
- return vic2_port_r(vic2, offset & 0x3ff);
+ return vic2_port_r(vic2, *space, offset & 0x3ff);
else if (offset < 0x800)
return sid->read(*space, offset & 0x3ff);
@@ -309,11 +309,11 @@ READ8_HANDLER( c64_read_io )
else
cia_set_port_mask_value(cia_0, 0, state->ioport("CTRLSEL")->read() & 0x80 ? c64_keyline[8] : c64_keyline[9] );
- return mos6526_r(cia_0, offset);
+ return mos6526_r(cia_0, *space, offset);
}
else if (state->m_cia1_on && (offset < 0xe00))
- return mos6526_r(cia_1, offset);
+ return mos6526_r(cia_1, *space, offset);
DBG_LOG(space->machine(), 1, "io read", ("%.3x\n", offset));
@@ -611,11 +611,11 @@ READ8_DEVICE_HANDLER(c64_m6510_port_read)
}
-int c64_paddle_read( device_t *device, int which )
+int c64_paddle_read( device_t *device, address_space &space, int which )
{
running_machine &machine = device->machine();
int pot1 = 0xff, pot2 = 0xff, pot3 = 0xff, pot4 = 0xff, temp;
- UINT8 cia0porta = mos6526_pa_r(machine.device("cia_0"), 0);
+ UINT8 cia0porta = mos6526_pa_r(machine.device("cia_0"), space, 0);
int controller1 = machine.root_device().ioport("CTRLSEL")->read() & 0x07;
int controller2 = machine.root_device().ioport("CTRLSEL")->read() & 0x70;
/* Notice that only a single input is defined for Mouse & Lightpen in both ports */
diff --git a/src/mess/machine/c64_currah_speech.c b/src/mess/machine/c64_currah_speech.c
index fb22143ffda..69f02ba7b73 100644
--- a/src/mess/machine/c64_currah_speech.c
+++ b/src/mess/machine/c64_currah_speech.c
@@ -264,6 +264,6 @@ void c64_currah_speech_cartridge_device::c64_cd_w(address_space &space, offs_t o
set_osc1(voice, intonation);
- sp0256_ALD_w(m_nsp, 0, data & 0x3f);
+ sp0256_ALD_w(m_nsp, space, 0, data & 0x3f);
}
}
diff --git a/src/mess/machine/c64_ieee488.c b/src/mess/machine/c64_ieee488.c
index d5fef41b183..4184c88bb62 100644
--- a/src/mess/machine/c64_ieee488.c
+++ b/src/mess/machine/c64_ieee488.c
@@ -290,7 +290,7 @@ UINT8 c64_ieee488_device::c64_cd_r(address_space &space, offs_t offset, UINT8 da
}
else if (!io2)
{
- data |= tpi6525_r(m_tpi, offset & 0x07);
+ data |= tpi6525_r(m_tpi, space, offset & 0x07);
}
return data;
@@ -305,7 +305,7 @@ void c64_ieee488_device::c64_cd_w(address_space &space, offs_t offset, UINT8 dat
{
if (!io2)
{
- tpi6525_w(m_tpi, offset & 0x07, data);
+ tpi6525_w(m_tpi, space, offset & 0x07, data);
}
m_exp->cd_w(space, offset, data, ba, roml, romh, io1, io2);
diff --git a/src/mess/machine/c64_sfx_sound_expander.c b/src/mess/machine/c64_sfx_sound_expander.c
index 2b9b79e65f7..f282b224e59 100644
--- a/src/mess/machine/c64_sfx_sound_expander.c
+++ b/src/mess/machine/c64_sfx_sound_expander.c
@@ -257,7 +257,7 @@ UINT8 c64_sfx_sound_expander_cartridge_device::c64_cd_r(address_space &space, of
}
else if (BIT(offset, 5))
{
- data = ym3526_r(m_opl, BIT(offset, 4));
+ data = ym3526_r(m_opl, space, BIT(offset, 4));
}
}
@@ -273,7 +273,7 @@ void c64_sfx_sound_expander_cartridge_device::c64_cd_w(address_space &space, off
{
if (!io2 && BIT(offset, 5))
{
- ym3526_w(m_opl, BIT(offset, 4), data);
+ ym3526_w(m_opl, space, BIT(offset, 4), data);
}
m_exp->cd_w(space, offset, data, ba, roml, romh, io1, io2);
diff --git a/src/mess/machine/c65.c b/src/mess/machine/c65.c
index 387bd72b95a..8e8a76f9eac 100644
--- a/src/mess/machine/c65.c
+++ b/src/mess/machine/c65.c
@@ -72,7 +72,7 @@ static void c65_nmi( running_machine &machine )
static READ8_DEVICE_HANDLER( c65_cia0_port_a_r )
{
- UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), 0);
+ UINT8 cia0portb = mos6526_pb_r(device->machine().device("cia_0"), space, 0);
return cbm_common_cia0_port_a_r(device, cia0portb);
}
@@ -81,7 +81,7 @@ static READ8_DEVICE_HANDLER( c65_cia0_port_b_r )
{
c65_state *state = device->machine().driver_data<c65_state>();
UINT8 value = 0xff;
- UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), 0);
+ UINT8 cia0porta = mos6526_pa_r(device->machine().device("cia_0"), space, 0);
value &= cbm_common_cia0_port_b_r(device, cia0porta);
@@ -654,7 +654,7 @@ static WRITE8_HANDLER( c65_write_io )
{
case 0x000:
if (offset < 0x80)
- vic3_port_w(vic3, offset & 0x7f, data);
+ vic3_port_w(vic3, *space, offset & 0x7f, data);
else if (offset < 0xa0)
c65_fdc_w(space->machine(), offset&0x1f,data);
else
@@ -666,7 +666,7 @@ static WRITE8_HANDLER( c65_write_io )
case 0x100:
case 0x200:
case 0x300:
- vic3_palette_w(vic3, offset - 0x100, data);
+ vic3_palette_w(vic3, *space, offset - 0x100, data);
break;
case 0x400:
if (offset<0x420) /* maybe 0x20 */
@@ -696,10 +696,10 @@ static WRITE8_HANDLER( c65_write_io_dc00 )
switch (offset & 0xf00)
{
case 0x000:
- mos6526_w(cia_0, offset, data);
+ mos6526_w(cia_0, *space, offset, data);
break;
case 0x100:
- mos6526_w(cia_1, offset, data);
+ mos6526_w(cia_1, *space, offset, data);
break;
case 0x200:
case 0x300:
@@ -718,7 +718,7 @@ static READ8_HANDLER( c65_read_io )
{
case 0x000:
if (offset < 0x80)
- return vic3_port_r(vic3, offset & 0x7f);
+ return vic3_port_r(vic3, *space, offset & 0x7f);
if (offset < 0xa0)
return c65_fdc_r(space->machine(), offset&0x1f);
else
@@ -759,9 +759,9 @@ static READ8_HANDLER( c65_read_io_dc00 )
switch (offset & 0x300)
{
case 0x000:
- return mos6526_r(cia_0, offset);
+ return mos6526_r(cia_0, *space, offset);
case 0x100:
- return mos6526_r(cia_1, offset);
+ return mos6526_r(cia_1, *space, offset);
case 0x200:
case 0x300:
DBG_LOG(space->machine(), 1, "io read", ("%.3x\n", offset+0xc00));
diff --git a/src/mess/machine/cgenie.c b/src/mess/machine/cgenie.c
index 5ffa4d308de..fa651d64d23 100644
--- a/src/mess/machine/cgenie.c
+++ b/src/mess/machine/cgenie.c
@@ -19,8 +19,8 @@
#include "machine/ram.h"
#define AYWriteReg(chip,port,value) \
- ay8910_address_w(ay8910, 0,port); \
- ay8910_data_w(ay8910, 0,value)
+ ay8910_address_w(ay8910, *space, 0,port); \
+ ay8910_data_w(ay8910, *space, 0,value)
#define TAPE_HEADER "Colour Genie - Virtual Tape File"
@@ -336,7 +336,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w )
/* If the floppy isn't emulated, return 0 */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return 0;
- return wd17xx_status_r(fdc, offset);
+ return wd17xx_status_r(fdc, *space, offset);
}
READ8_HANDLER( cgenie_track_r )
@@ -345,7 +345,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w )
/* If the floppy isn't emulated, return 0xff */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return 0xff;
- return wd17xx_track_r(fdc, offset);
+ return wd17xx_track_r(fdc, *space, offset);
}
READ8_HANDLER( cgenie_sector_r )
@@ -354,7 +354,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w )
/* If the floppy isn't emulated, return 0xff */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return 0xff;
- return wd17xx_sector_r(fdc, offset);
+ return wd17xx_sector_r(fdc, *space, offset);
}
READ8_HANDLER(cgenie_data_r )
@@ -363,7 +363,7 @@ WRITE8_HANDLER( cgenie_psg_port_b_w )
/* If the floppy isn't emulated, return 0xff */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return 0xff;
- return wd17xx_data_r(fdc, offset);
+ return wd17xx_data_r(fdc, *space, offset);
}
WRITE8_HANDLER( cgenie_command_w )
@@ -372,7 +372,7 @@ WRITE8_HANDLER( cgenie_command_w )
/* If the floppy isn't emulated, return immediately */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return;
- wd17xx_command_w(fdc, offset, data);
+ wd17xx_command_w(fdc, *space, offset, data);
}
WRITE8_HANDLER( cgenie_track_w )
@@ -381,7 +381,7 @@ WRITE8_HANDLER( cgenie_track_w )
/* If the floppy isn't emulated, ignore the write */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return;
- wd17xx_track_w(fdc, offset, data);
+ wd17xx_track_w(fdc, *space, offset, data);
}
WRITE8_HANDLER( cgenie_sector_w )
@@ -390,7 +390,7 @@ WRITE8_HANDLER( cgenie_sector_w )
/* If the floppy isn't emulated, ignore the write */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return;
- wd17xx_sector_w(fdc, offset, data);
+ wd17xx_sector_w(fdc, *space, offset, data);
}
WRITE8_HANDLER( cgenie_data_w )
@@ -399,7 +399,7 @@ WRITE8_HANDLER( cgenie_data_w )
/* If the floppy isn't emulated, ignore the write */
if( (space->machine().root_device().ioport("DSW0")->read() & 0x80) == 0 )
return;
- wd17xx_data_w(fdc, offset, data);
+ wd17xx_data_w(fdc, *space, offset, data);
}
READ8_HANDLER( cgenie_irq_status_r )
@@ -614,5 +614,5 @@ WRITE8_DEVICE_HANDLER( cgenie_sh_control_port_w )
{
cgenie_state *state = device->machine().driver_data<cgenie_state>();
state->m_control_port = data;
- ay8910_address_w(device, offset, data);
+ ay8910_address_w(device, space, offset, data);
}
diff --git a/src/mess/machine/coco_fdc.c b/src/mess/machine/coco_fdc.c
index 12cd073d604..27689ecf63a 100644
--- a/src/mess/machine/coco_fdc.c
+++ b/src/mess/machine/coco_fdc.c
@@ -346,16 +346,16 @@ READ8_MEMBER(coco_fdc_device::read)
switch(offset & 0xEF)
{
case 8:
- result = wd17xx_status_r(m_wd17xx, 0);
+ result = wd17xx_status_r(m_wd17xx, space, 0);
break;
case 9:
- result = wd17xx_track_r(m_wd17xx, 0);
+ result = wd17xx_track_r(m_wd17xx, space, 0);
break;
case 10:
- result = wd17xx_sector_r(m_wd17xx, 0);
+ result = wd17xx_sector_r(m_wd17xx, space, 0);
break;
case 11:
- result = wd17xx_data_r(m_wd17xx, 0);
+ result = wd17xx_data_r(m_wd17xx, space, 0);
break;
}
@@ -369,17 +369,17 @@ READ8_MEMBER(coco_fdc_device::read)
case 0x38: /* FF78 */
if (real_time_clock() == RTC_CLOUD9)
- ds1315_r_0(m_ds1315, offset);
+ ds1315_r_0(m_ds1315, space, offset);
break;
case 0x39: /* FF79 */
if (real_time_clock() == RTC_CLOUD9)
- ds1315_r_1(m_ds1315, offset);
+ ds1315_r_1(m_ds1315, space, offset);
break;
case 0x3C: /* FF7C */
if (real_time_clock() == RTC_CLOUD9)
- result = ds1315_r_data(m_ds1315, offset);
+ result = ds1315_r_data(m_ds1315, space, offset);
break;
}
return result;
@@ -400,16 +400,16 @@ WRITE8_MEMBER(coco_fdc_device::write)
dskreg_w(data);
break;
case 8:
- wd17xx_command_w(m_wd17xx, 0, data);
+ wd17xx_command_w(m_wd17xx, space, 0, data);
break;
case 9:
- wd17xx_track_w(m_wd17xx, 0, data);
+ wd17xx_track_w(m_wd17xx, space, 0, data);
break;
case 10:
- wd17xx_sector_w(m_wd17xx, 0, data);
+ wd17xx_sector_w(m_wd17xx, space, 0, data);
break;
case 11:
- wd17xx_data_w(m_wd17xx, 0, data);
+ wd17xx_data_w(m_wd17xx, space, 0, data);
break;
};
@@ -560,16 +560,16 @@ READ8_MEMBER(dragon_fdc_device::read)
switch(offset & 0xEF)
{
case 0:
- result = wd17xx_status_r(m_wd17xx, 0);
+ result = wd17xx_status_r(m_wd17xx, space, 0);
break;
case 1:
- result = wd17xx_track_r(m_wd17xx, 0);
+ result = wd17xx_track_r(m_wd17xx, space, 0);
break;
case 2:
- result = wd17xx_sector_r(m_wd17xx, 0);
+ result = wd17xx_sector_r(m_wd17xx, space, 0);
break;
case 3:
- result = wd17xx_data_r(m_wd17xx, 0);
+ result = wd17xx_data_r(m_wd17xx, space, 0);
break;
}
return result;
@@ -586,7 +586,7 @@ WRITE8_MEMBER(dragon_fdc_device::write)
switch(offset & 0xEF)
{
case 0:
- wd17xx_command_w(m_wd17xx, 0, data);
+ wd17xx_command_w(m_wd17xx, space, 0, data);
/* disk head is encoded in the command byte */
/* Only for type 3 & 4 commands */
@@ -594,13 +594,13 @@ WRITE8_MEMBER(dragon_fdc_device::write)
wd17xx_set_side(m_wd17xx, (data & 0x02) ? 1 : 0);
break;
case 1:
- wd17xx_track_w(m_wd17xx, 0, data);
+ wd17xx_track_w(m_wd17xx, space, 0, data);
break;
case 2:
- wd17xx_sector_w(m_wd17xx, 0, data);
+ wd17xx_sector_w(m_wd17xx, space, 0, data);
break;
case 3:
- wd17xx_data_w(m_wd17xx, 0, data);
+ wd17xx_data_w(m_wd17xx, space, 0, data);
break;
case 8: case 9: case 10: case 11:
case 12: case 13: case 14: case 15:
diff --git a/src/mess/machine/compis.c b/src/mess/machine/compis.c
index da2a5614648..697fa583b6b 100644
--- a/src/mess/machine/compis.c
+++ b/src/mess/machine/compis.c
@@ -214,7 +214,7 @@ READ16_MEMBER( compis_state::compis_fdc_dack_r )
/* DMA acknowledge if iSBX-218A has DMA enabled */
if (ioport("DSW1")->read())
{
- data = upd765_dack_r(m_fdc, 0);
+ data = upd765_dack_r(m_fdc, space, 0);
}
return data;
@@ -225,7 +225,7 @@ WRITE8_MEMBER( compis_state::compis_fdc_w )
switch(offset)
{
case 2:
- upd765_data_w(m_fdc, 0, data);
+ upd765_data_w(m_fdc, space, 0, data);
break;
default:
printf("FDC Unknown Port Write %04X = %04X\n", offset, data);
@@ -240,10 +240,10 @@ READ8_MEMBER( compis_state::compis_fdc_r )
switch(offset)
{
case 0:
- data = upd765_status_r(m_fdc, 0);
+ data = upd765_status_r(m_fdc, space, 0);
break;
case 2:
- data = upd765_data_r(m_fdc, 0);
+ data = upd765_data_r(m_fdc, space, 0);
break;
default:
printf("FDC Unknown Port Read %04X\n", offset);
@@ -347,12 +347,12 @@ const struct pit8253_config compis_pit8254_config =
READ16_MEMBER( compis_state::compis_osp_pit_r )
{
- return pit8253_r(m_8254, offset);
+ return pit8253_r(m_8254, space, offset);
}
WRITE16_MEMBER( compis_state::compis_osp_pit_w )
{
- pit8253_w(m_8254, offset, data);
+ pit8253_w(m_8254, space, offset, data);
}
diff --git a/src/mess/machine/comx_fd.c b/src/mess/machine/comx_fd.c
index ed803070c49..5ff3d318d75 100644
--- a/src/mess/machine/comx_fd.c
+++ b/src/mess/machine/comx_fd.c
@@ -275,7 +275,7 @@ UINT8 comx_fd_device::comx_io_r(offs_t offset)
}
else
{
- data = wd17xx_r(m_fdc, m_addr);
+ data = wd17xx_r(m_fdc, machine().driver_data()->generic_space(), m_addr);
}
}
@@ -326,7 +326,7 @@ void comx_fd_device::comx_io_w(offs_t offset, UINT8 data)
else
{
// write data to WD1770
- wd17xx_w(m_fdc, m_addr, data);
+ wd17xx_w(m_fdc, machine().driver_data()->generic_space(), m_addr, data);
}
}
}
diff --git a/src/mess/machine/concept.c b/src/mess/machine/concept.c
index 89c491fb4ae..21fa573bb55 100644
--- a/src/mess/machine/concept.c
+++ b/src/mess/machine/concept.c
@@ -39,11 +39,11 @@ enum
/*static int ready;*/ /* ready line from monochip, role unknown */
/* Via */
-static READ8_DEVICE_HANDLER(via_in_a);
-static WRITE8_DEVICE_HANDLER(via_out_a);
-static READ8_DEVICE_HANDLER(via_in_b);
-static WRITE8_DEVICE_HANDLER(via_out_b);
-static WRITE8_DEVICE_HANDLER(via_out_cb2);
+static DECLARE_READ8_DEVICE_HANDLER(via_in_a);
+static DECLARE_WRITE8_DEVICE_HANDLER(via_out_a);
+static DECLARE_READ8_DEVICE_HANDLER(via_in_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(via_out_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(via_out_cb2);
static void via_irq_func(device_t *device, int state);
@@ -312,7 +312,7 @@ READ16_MEMBER(concept_state::concept_io_r)
/* calendar R/W */
VLOG(("concept_io_r: Calendar read at address 0x03%4.4x\n", offset << 1));
if (!m_clock_enable)
- return mm58274c_r(machine().device("mm58274c"), m_clock_address);
+ return mm58274c_r(machine().device("mm58274c"), space, m_clock_address);
break;
case 7:
@@ -454,7 +454,7 @@ WRITE16_MEMBER(concept_state::concept_io_w)
/* calendar R/W */
LOG(("concept_io_w: Calendar written to at address 0x03%4.4x, data: 0x%4.4x\n", offset << 1, data));
if (!m_clock_enable)
- mm58274c_w(machine().device("mm58274c"), m_clock_address, data & 0xf);
+ mm58274c_w(machine().device("mm58274c"), space, m_clock_address, data & 0xf);
break;
case 7:
@@ -599,19 +599,19 @@ static READ8_HANDLER(concept_fdc_reg_r)
case 8:
/* FDC STATUS REG */
- return wd17xx_status_r(fdc, offset);
+ return wd17xx_status_r(fdc, *space, offset);
case 9:
/* FDC TRACK REG */
- return wd17xx_track_r(fdc, offset);
+ return wd17xx_track_r(fdc, *space, offset);
case 10:
/* FDC SECTOR REG */
- return wd17xx_sector_r(fdc, offset);
+ return wd17xx_sector_r(fdc, *space, offset);
case 11:
/* FDC DATA REG */
- return wd17xx_data_r(fdc, offset);
+ return wd17xx_data_r(fdc, *space, offset);
}
return 0;
@@ -640,22 +640,22 @@ static WRITE8_HANDLER(concept_fdc_reg_w)
case 8:
/* FDC COMMAMD REG */
- wd17xx_command_w(fdc, offset, data);
+ wd17xx_command_w(fdc, *space, offset, data);
break;
case 9:
/* FDC TRACK REG */
- wd17xx_track_w(fdc, offset, data);
+ wd17xx_track_w(fdc, *space, offset, data);
break;
case 10:
/* FDC SECTOR REG */
- wd17xx_sector_w(fdc, offset, data);
+ wd17xx_sector_w(fdc, *space, offset, data);
break;
case 11:
/* FDC DATA REG */
- wd17xx_data_w(fdc, offset, data);
+ wd17xx_data_w(fdc, *space, offset, data);
break;
}
}
diff --git a/src/mess/machine/cpc_ssa1.c b/src/mess/machine/cpc_ssa1.c
index f15225c2c76..d8f3e5d71db 100644
--- a/src/mess/machine/cpc_ssa1.c
+++ b/src/mess/machine/cpc_ssa1.c
@@ -45,7 +45,7 @@ READ8_MEMBER(cpc_ssa1_device::ssa1_r)
WRITE8_MEMBER(cpc_ssa1_device::ssa1_w)
{
- sp0256_ALD_w(m_sp0256_device,0,data);
+ sp0256_ALD_w(m_sp0256_device,space, 0,data);
}
READ8_MEMBER(cpc_dkspeech_device::dkspeech_r)
@@ -62,7 +62,7 @@ READ8_MEMBER(cpc_dkspeech_device::dkspeech_r)
WRITE8_MEMBER(cpc_dkspeech_device::dkspeech_w)
{
- sp0256_ALD_w(m_sp0256_device,0,data & 0x3f);
+ sp0256_ALD_w(m_sp0256_device,space, 0,data & 0x3f);
}
WRITE_LINE_MEMBER(cpc_ssa1_device::lrq_cb)
diff --git a/src/mess/machine/dai.c b/src/mess/machine/dai.c
index 9667ab58bf6..7a069090de6 100644
--- a/src/mess/machine/dai.c
+++ b/src/mess/machine/dai.c
@@ -225,12 +225,12 @@ WRITE8_MEMBER(dai_state::dai_io_discrete_devices_w)
READ8_MEMBER(dai_state::dai_pit_r)
{
- return pit8253_r(m_pit, (offset>>1) & 3);
+ return pit8253_r(m_pit, space, (offset>>1) & 3);
}
WRITE8_MEMBER(dai_state::dai_pit_w)
{
- pit8253_w(m_pit, (offset>>1) & 3, data);
+ pit8253_w(m_pit, space, (offset>>1) & 3, data);
}
/***************************************************************************
diff --git a/src/mess/machine/dgn_beta.c b/src/mess/machine/dgn_beta.c
index 52b6ea96502..4ab54b510bc 100644
--- a/src/mess/machine/dgn_beta.c
+++ b/src/mess/machine/dgn_beta.c
@@ -113,23 +113,23 @@ static void execute_beta_key_dump(running_machine &machine, int ref, int params,
/* Debugging variables */
-static READ8_DEVICE_HANDLER(d_pia0_pa_r);
-static WRITE8_DEVICE_HANDLER(d_pia0_pa_w);
-static READ8_DEVICE_HANDLER(d_pia0_pb_r);
-static WRITE8_DEVICE_HANDLER(d_pia0_pb_w);
-static WRITE8_DEVICE_HANDLER(d_pia0_cb2_w);
+static DECLARE_READ8_DEVICE_HANDLER(d_pia0_pa_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia0_pa_w);
+static DECLARE_READ8_DEVICE_HANDLER(d_pia0_pb_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia0_pb_w);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia0_cb2_w);
static WRITE_LINE_DEVICE_HANDLER(d_pia0_irq_a);
static WRITE_LINE_DEVICE_HANDLER(d_pia0_irq_b);
-static READ8_DEVICE_HANDLER(d_pia1_pa_r);
-static WRITE8_DEVICE_HANDLER(d_pia1_pa_w);
-static READ8_DEVICE_HANDLER(d_pia1_pb_r);
-static WRITE8_DEVICE_HANDLER(d_pia1_pb_w);
+static DECLARE_READ8_DEVICE_HANDLER(d_pia1_pa_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia1_pa_w);
+static DECLARE_READ8_DEVICE_HANDLER(d_pia1_pb_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia1_pb_w);
static WRITE_LINE_DEVICE_HANDLER(d_pia1_irq_a);
static WRITE_LINE_DEVICE_HANDLER(d_pia1_irq_b);
-static READ8_DEVICE_HANDLER(d_pia2_pa_r);
-static WRITE8_DEVICE_HANDLER(d_pia2_pa_w);
-static READ8_DEVICE_HANDLER(d_pia2_pb_r);
-static WRITE8_DEVICE_HANDLER(d_pia2_pb_w);
+static DECLARE_READ8_DEVICE_HANDLER(d_pia2_pa_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia2_pa_w);
+static DECLARE_READ8_DEVICE_HANDLER(d_pia2_pb_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(d_pia2_pb_w);
static WRITE_LINE_DEVICE_HANDLER(d_pia2_irq_a);
static WRITE_LINE_DEVICE_HANDLER(d_pia2_irq_b);
@@ -939,17 +939,17 @@ READ8_HANDLER(dgnbeta_wd2797_r)
switch(offset & 0x03)
{
case 0:
- result = wd17xx_status_r(fdc, 0);
+ result = wd17xx_status_r(fdc, *space, 0);
LOG_DISK(("Disk status=%2.2X\n",result));
break;
case 1:
- result = wd17xx_track_r(fdc, 0);
+ result = wd17xx_track_r(fdc, *space, 0);
break;
case 2:
- result = wd17xx_sector_r(fdc, 0);
+ result = wd17xx_sector_r(fdc, *space, 0);
break;
case 3:
- result = wd17xx_data_r(fdc, 0);
+ result = wd17xx_data_r(fdc, *space, 0);
break;
default:
break;
@@ -972,16 +972,16 @@ WRITE8_HANDLER(dgnbeta_wd2797_w)
/* But only for Type 3/4 commands */
if(data & 0x80)
wd17xx_set_side(fdc,(data & 0x02) ? 1 : 0);
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, *space, 0, data);
break;
case 1:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, *space, 0, data);
break;
case 2:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, *space, 0, data);
break;
case 3:
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, *space, 0, data);
break;
};
}
diff --git a/src/mess/machine/dgnalpha.c b/src/mess/machine/dgnalpha.c
index d37a6246aa7..2021a1b8cf4 100644
--- a/src/mess/machine/dgnalpha.c
+++ b/src/mess/machine/dgnalpha.c
@@ -144,19 +144,19 @@ READ8_MEMBER( dragon_alpha_state::ff20_read )
break;
case 12:
- result = wd17xx_data_r(m_fdc, 0);
+ result = wd17xx_data_r(m_fdc, space, 0);
break;
case 13:
- result = wd17xx_sector_r(m_fdc, 0);
+ result = wd17xx_sector_r(m_fdc, space, 0);
break;
case 14:
- result = wd17xx_track_r(m_fdc, 0);
+ result = wd17xx_track_r(m_fdc, space, 0);
break;
case 15:
- result = wd17xx_status_r(m_fdc, 0);
+ result = wd17xx_status_r(m_fdc, space, 0);
break;
}
return result;
@@ -185,16 +185,16 @@ WRITE8_MEMBER( dragon_alpha_state::ff20_write )
break;
case 12:
- wd17xx_data_w(m_fdc, 0, data);
+ wd17xx_data_w(m_fdc, space, 0, data);
break;
case 13:
- wd17xx_sector_w(m_fdc, 0, data);
+ wd17xx_sector_w(m_fdc, space, 0, data);
break;
case 14:
- wd17xx_track_w(m_fdc, 0, data);
+ wd17xx_track_w(m_fdc, space, 0, data);
break;
case 15:
- wd17xx_command_w(m_fdc, 0, data);
+ wd17xx_command_w(m_fdc, space, 0, data);
/* disk head is encoded in the command byte */
wd17xx_set_side(m_fdc,(data & 0x02) ? 1 : 0);
@@ -236,13 +236,13 @@ WRITE8_MEMBER( dragon_alpha_state::pia2_pa_w )
case 0x00: /* Inactive, do nothing */
break;
case 0x01: /* Write to selected port */
- ay8910_data_w(m_ay8912, 0, m_pia_2->b_output());
+ ay8910_data_w(m_ay8912, space, 0, m_pia_2->b_output());
break;
case 0x02: /* Read from selected port */
- m_pia_2->portb_w(ay8910_r(m_ay8912, 0));
+ m_pia_2->portb_w(ay8910_r(m_ay8912, space, 0));
break;
case 0x03: /* Select port to write to */
- ay8910_address_w(m_ay8912, 0, m_pia_2->b_output());
+ ay8910_address_w(m_ay8912, space, 0, m_pia_2->b_output());
break;
}
}
diff --git a/src/mess/machine/ds1315.h b/src/mess/machine/ds1315.h
index 969f109eaa0..b516d74e2b9 100644
--- a/src/mess/machine/ds1315.h
+++ b/src/mess/machine/ds1315.h
@@ -52,9 +52,9 @@ extern const device_type DS1315;
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( ds1315_r_0 );
-READ8_DEVICE_HANDLER( ds1315_r_1 );
-READ8_DEVICE_HANDLER( ds1315_r_data );
-WRITE8_DEVICE_HANDLER( ds1315_w_data );
+DECLARE_READ8_DEVICE_HANDLER( ds1315_r_0 );
+DECLARE_READ8_DEVICE_HANDLER( ds1315_r_1 );
+DECLARE_READ8_DEVICE_HANDLER( ds1315_r_data );
+DECLARE_WRITE8_DEVICE_HANDLER( ds1315_w_data );
#endif /* __DS1315_H__ */
diff --git a/src/mess/machine/e05a03.h b/src/mess/machine/e05a03.h
index 2011145d06a..2e23a7551af 100644
--- a/src/mess/machine/e05a03.h
+++ b/src/mess/machine/e05a03.h
@@ -28,8 +28,8 @@ struct e05a03_interface
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
-WRITE8_DEVICE_HANDLER( e05a03_w );
-READ8_DEVICE_HANDLER( e05a03_r );
+DECLARE_WRITE8_DEVICE_HANDLER( e05a03_w );
+DECLARE_READ8_DEVICE_HANDLER( e05a03_r );
WRITE_LINE_DEVICE_HANDLER( e05a03_home_w ); /* home position signal */
WRITE_LINE_DEVICE_HANDLER( e05a03_fire_w ); /* printhead solenoids trigger */
diff --git a/src/mess/machine/gb.c b/src/mess/machine/gb.c
index e0b71814624..9d23997a3e0 100644
--- a/src/mess/machine/gb.c
+++ b/src/mess/machine/gb.c
@@ -238,7 +238,7 @@ static void gb_init(running_machine &machine)
break;
}
- gb_sound_w(space->machine().device("custom"), 0x16, 0x00 ); /* Initialize sound hardware */
+ gb_sound_w(space->machine().device("custom"), *space, 0x16, 0x00 ); /* Initialize sound hardware */
state->m_divcount = 0;
state->m_triggering_irq = 0;
@@ -340,9 +340,9 @@ MACHINE_RESET_MEMBER(gb_state,gbpocket)
gb_init_regs(machine());
/* Initialize the Sound registers */
- gb_sound_w(machine().device("custom"), 0x16,0x80);
- gb_sound_w(machine().device("custom"), 0x15,0xF3);
- gb_sound_w(machine().device("custom"), 0x14,0x77);
+ gb_sound_w(machine().device("custom"), generic_space(), 0x16,0x80);
+ gb_sound_w(machine().device("custom"), generic_space(), 0x15,0xF3);
+ gb_sound_w(machine().device("custom"), generic_space(), 0x14,0x77);
/* Enable BIOS rom if we have one */
gb_rom16_0000( machine(), m_ROMMap[m_ROMBank00] ? m_ROMMap[m_ROMBank00] : m_gb_dummy_rom_bank );
@@ -2100,25 +2100,25 @@ static const UINT8 megaduck_sound_offsets[16] = { 0, 2, 1, 3, 4, 6, 5, 7, 8, 9,
WRITE8_MEMBER(gb_state::megaduck_sound_w1)
{
- gb_sound_w(machine().device("custom"), megaduck_sound_offsets[offset], data );
+ gb_sound_w(machine().device("custom"), space, megaduck_sound_offsets[offset], data );
}
READ8_MEMBER(gb_state::megaduck_sound_r1)
{
- return gb_sound_r( machine().device("custom"), megaduck_sound_offsets[offset] );
+ return gb_sound_r( machine().device("custom"), space, megaduck_sound_offsets[offset] );
}
WRITE8_MEMBER(gb_state::megaduck_sound_w2)
{
switch(offset)
{
- case 0x00: gb_sound_w(machine().device("custom"), 0x10, data ); break;
- case 0x01: gb_sound_w(machine().device("custom"), 0x12, data ); break;
- case 0x02: gb_sound_w(machine().device("custom"), 0x11, data ); break;
- case 0x03: gb_sound_w(machine().device("custom"), 0x13, data ); break;
- case 0x04: gb_sound_w(machine().device("custom"), 0x14, data ); break;
- case 0x05: gb_sound_w(machine().device("custom"), 0x16, data ); break;
- case 0x06: gb_sound_w(machine().device("custom"), 0x15, data ); break;
+ case 0x00: gb_sound_w(machine().device("custom"), space, 0x10, data ); break;
+ case 0x01: gb_sound_w(machine().device("custom"), space, 0x12, data ); break;
+ case 0x02: gb_sound_w(machine().device("custom"), space, 0x11, data ); break;
+ case 0x03: gb_sound_w(machine().device("custom"), space, 0x13, data ); break;
+ case 0x04: gb_sound_w(machine().device("custom"), space, 0x14, data ); break;
+ case 0x05: gb_sound_w(machine().device("custom"), space, 0x16, data ); break;
+ case 0x06: gb_sound_w(machine().device("custom"), space, 0x15, data ); break;
case 0x07:
case 0x08:
case 0x09:
@@ -2134,7 +2134,7 @@ WRITE8_MEMBER(gb_state::megaduck_sound_w2)
READ8_MEMBER(gb_state::megaduck_sound_r2)
{
- return gb_sound_r(machine().device("custom"), 0x10 + megaduck_sound_offsets[offset]);
+ return gb_sound_r(machine().device("custom"), space, 0x10 + megaduck_sound_offsets[offset]);
}
WRITE8_MEMBER(gb_state::megaduck_rom_bank_select_type1)
diff --git a/src/mess/machine/hd63450.h b/src/mess/machine/hd63450.h
index 7ac030bdfec..98aeea113e1 100644
--- a/src/mess/machine/hd63450.h
+++ b/src/mess/machine/hd63450.h
@@ -47,5 +47,5 @@ extern const device_type HD63450;
MCFG_DEVICE_ADD(_tag, HD63450, 0) \
MCFG_DEVICE_CONFIG(_config)
-READ16_DEVICE_HANDLER( hd63450_r );
-WRITE16_DEVICE_HANDLER( hd63450_w );
+DECLARE_READ16_DEVICE_HANDLER( hd63450_r );
+DECLARE_WRITE16_DEVICE_HANDLER( hd63450_w );
diff --git a/src/mess/machine/hec2hrp.c b/src/mess/machine/hec2hrp.c
index 8ab62375fe0..979259380de 100644
--- a/src/mess/machine/hec2hrp.c
+++ b/src/mess/machine/hec2hrp.c
@@ -131,16 +131,16 @@ device_t *fdc = machine().device("wd179x");
{
/* minidisc floppy disc interface */
case 0x04:
- data = wd17xx_status_r(fdc, 0);
+ data = wd17xx_status_r(fdc, space, 0);
break;
case 0x05:
- data = wd17xx_track_r(fdc, 0);
+ data = wd17xx_track_r(fdc, space, 0);
break;
case 0x06:
- data = wd17xx_sector_r(fdc, 0);
+ data = wd17xx_sector_r(fdc, space, 0);
break;
case 0x07:
- data = wd17xx_data_r(fdc, 0);
+ data = wd17xx_data_r(fdc, space, 0);
break;
default:
break;
@@ -155,17 +155,17 @@ switch (offset)
{
/* minidisc floppy disc interface */
case 0x04:
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 0x05:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 0x06:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 0x07:
/*write into command register*/
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
case 0x08:
/*General purpose port (0x08) for the minidisk I/O */
@@ -429,7 +429,7 @@ WRITE8_MEMBER(hec2hrp_state::hector_color_b_w)
if (data & 0x40) m_hector_color[2] |= 8; else m_hector_color[2] &= 7;
/* Play bit*/
- discrete_sound_w(discrete, NODE_01, (data & 0x80) ? 0:1 );
+ discrete_sound_w(discrete, space, NODE_01, (data & 0x80) ? 0:1 );
}
diff --git a/src/mess/machine/hecdisk2.c b/src/mess/machine/hecdisk2.c
index 4981194f63e..bf6a97b32d5 100644
--- a/src/mess/machine/hecdisk2.c
+++ b/src/mess/machine/hecdisk2.c
@@ -248,7 +248,7 @@ READ8_HANDLER( hector_disc2_io61_port_r)
hec2hrp_state *state = space->machine().driver_data<hec2hrp_state>();
UINT8 data;
device_t *fdc = space->machine().device("upd765");
- data = upd765_data_r(fdc,0); //Get the result
+ data = upd765_data_r(fdc,*space, 0); //Get the result
// if ST0 == 0x28 (drive A:) or 0x29 (drive B:) => add 0x40
// and correct the ST1 and ST2 (patch)
@@ -309,7 +309,7 @@ WRITE8_HANDLER( hector_disc2_io61_port_w)
#endif
device_t *fdc = space->machine().device("upd765");
- upd765_data_w(fdc,0, data);
+ upd765_data_w(fdc,*space, 0, data);
}
// AM_RANGE(0x070,0x07f) AM_DEVREADWRITE("upd765",upd765_dack_r,upd765_dack_w)
@@ -317,11 +317,11 @@ READ8_HANDLER( hector_disc2_io70_port_r) // Gestion du DMA
{
UINT8 data;
device_t *fdc = space->machine().device("upd765");
- data = upd765_dack_r(fdc,0);
+ data = upd765_dack_r(fdc,*space, 0);
return data;
}
WRITE8_HANDLER( hector_disc2_io70_port_w)
{
device_t *fdc = space->machine().device("upd765");
- upd765_dack_w(fdc,0, data);
+ upd765_dack_w(fdc,*space, 0, data);
}
diff --git a/src/mess/machine/i8271.c b/src/mess/machine/i8271.c
index dcce3878156..cdaa3e72b8b 100644
--- a/src/mess/machine/i8271.c
+++ b/src/mess/machine/i8271.c
@@ -1496,13 +1496,13 @@ READ8_DEVICE_HANDLER(i8271_r)
/* to be completed! */
READ8_DEVICE_HANDLER(i8271_dack_r)
{
- return i8271_data_r(device, offset);
+ return i8271_data_r(device, space, offset);
}
/* to be completed! */
WRITE8_DEVICE_HANDLER(i8271_dack_w)
{
- i8271_data_w(device, offset, data);
+ i8271_data_w(device, space, offset, data);
}
READ8_DEVICE_HANDLER(i8271_data_r)
diff --git a/src/mess/machine/i8271.h b/src/mess/machine/i8271.h
index 6e942c5989b..51c7a39b9ea 100644
--- a/src/mess/machine/i8271.h
+++ b/src/mess/machine/i8271.h
@@ -46,14 +46,14 @@ struct i8271_interface
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER (i8271_r);
-WRITE8_DEVICE_HANDLER(i8271_w);
+DECLARE_READ8_DEVICE_HANDLER (i8271_r);
+DECLARE_WRITE8_DEVICE_HANDLER(i8271_w);
-READ8_DEVICE_HANDLER (i8271_dack_r);
-WRITE8_DEVICE_HANDLER(i8271_dack_w);
+DECLARE_READ8_DEVICE_HANDLER (i8271_dack_r);
+DECLARE_WRITE8_DEVICE_HANDLER(i8271_dack_w);
-READ8_DEVICE_HANDLER (i8271_data_r);
-WRITE8_DEVICE_HANDLER(i8271_data_w);
+DECLARE_READ8_DEVICE_HANDLER (i8271_data_r);
+DECLARE_WRITE8_DEVICE_HANDLER(i8271_data_w);
/***************************************************************************
diff --git a/src/mess/machine/iq151_disc2.c b/src/mess/machine/iq151_disc2.c
index ebc3f6a364f..5ff4df25017 100644
--- a/src/mess/machine/iq151_disc2.c
+++ b/src/mess/machine/iq151_disc2.c
@@ -130,9 +130,9 @@ void iq151_disc2_device::read(offs_t offset, UINT8 &data)
void iq151_disc2_device::io_read(offs_t offset, UINT8 &data)
{
if (offset == 0xaa)
- data = upd765_status_r(m_fdc, 0);
+ data = upd765_status_r(m_fdc, machine().driver_data()->generic_space(), 0);
else if (offset == 0xab)
- data = upd765_data_r(m_fdc, 0);
+ data = upd765_data_r(m_fdc, machine().driver_data()->generic_space(), 0);
}
//-------------------------------------------------
@@ -142,7 +142,7 @@ void iq151_disc2_device::io_read(offs_t offset, UINT8 &data)
void iq151_disc2_device::io_write(offs_t offset, UINT8 data)
{
if (offset == 0xab)
- upd765_data_w(m_fdc, 0, data);
+ upd765_data_w(m_fdc, machine().driver_data()->generic_space(), 0, data);
else if (offset == 0xac)
m_rom_enabled = (data == 0x01);
}
diff --git a/src/mess/machine/isa_adlib.c b/src/mess/machine/isa_adlib.c
index 8bd280c5b3a..f9561253f5c 100644
--- a/src/mess/machine/isa_adlib.c
+++ b/src/mess/machine/isa_adlib.c
@@ -28,7 +28,7 @@ static READ8_DEVICE_HANDLER( ym3812_16_r )
UINT8 retVal = 0xff;
switch(offset)
{
- case 0 : retVal = ym3812_status_port_r( device, offset ); break;
+ case 0 : retVal = ym3812_status_port_r( device, space, offset ); break;
}
return retVal;
}
@@ -37,8 +37,8 @@ static WRITE8_DEVICE_HANDLER( ym3812_16_w )
{
switch(offset)
{
- case 0 : ym3812_control_port_w( device, offset, data ); break;
- case 1 : ym3812_write_port_w( device, offset, data ); break;
+ case 0 : ym3812_control_port_w( device, space, offset, data ); break;
+ case 1 : ym3812_write_port_w( device, space, offset, data ); break;
}
}
diff --git a/src/mess/machine/isa_fdc.c b/src/mess/machine/isa_fdc.c
index 980539a78ca..32348cfee51 100644
--- a/src/mess/machine/isa_fdc.c
+++ b/src/mess/machine/isa_fdc.c
@@ -11,8 +11,8 @@
#include "formats/pc_dsk.h"
#include "machine/idectrl.h"
-static READ8_DEVICE_HANDLER ( pc_fdc_r );
-static WRITE8_DEVICE_HANDLER ( pc_fdc_w );
+static DECLARE_READ8_DEVICE_HANDLER ( pc_fdc_r );
+static DECLARE_WRITE8_DEVICE_HANDLER ( pc_fdc_w );
/* if not 1, DACK and TC inputs to FDC are disabled, and DRQ and IRQ are held
* at high impedance i.e they are not affective */
@@ -353,15 +353,15 @@ static READ8_DEVICE_HANDLER ( pc_fdc_r )
case 3: /* tape drive select? */
break;
case 4:
- data = upd765_status_r(fdc->m_upd765, 0);
+ data = upd765_status_r(fdc->m_upd765, space, 0);
break;
case 5:
- data = upd765_data_r(fdc->m_upd765, offset);
+ data = upd765_data_r(fdc->m_upd765, space, offset);
break;
case 6: /* FDC reserved */
hdd = device->machine().device(":board3:ide:ide");
if (hdd)
- data = ide_controller16_r(hdd, 0x3f6/2, 0x00ff);
+ data = ide_controller16_r(hdd, space, 0x3f6/2, 0x00ff);
break;
case 7:
device_t *dev = get_floppy_subdevice(device, fdc->digital_output_register & 0x03);
@@ -392,22 +392,22 @@ static WRITE8_DEVICE_HANDLER ( pc_fdc_w )
case 1: /* n/a */
break;
case 2:
- pc_fdc_dor_w(device, 0, data);
+ pc_fdc_dor_w(device, space, 0, data, mem_mask);
break;
case 3:
/* tape drive select? */
break;
case 4:
- pc_fdc_data_rate_w(device, 0, data);
+ pc_fdc_data_rate_w(device, space, 0, data, mem_mask);
break;
case 5:
- upd765_data_w(fdc->m_upd765, 0, data);
+ upd765_data_w(fdc->m_upd765, space, 0, data);
break;
case 6:
/* FDC reserved */
hdd = device->machine().device(":board3:ide:ide");
if (hdd)
- ide_controller16_w(hdd, 0x3f6/2, data, 0x00ff);
+ ide_controller16_w(hdd, space, 0x3f6/2, data, 0x00ff);
break;
case 7:
/* Configuration Control Register
@@ -419,7 +419,7 @@ static WRITE8_DEVICE_HANDLER ( pc_fdc_w )
* 1 0 250 kbps
* 1 1 1000 kbps
*/
- pc_fdc_data_rate_w(device, 0, data & 3);
+ pc_fdc_data_rate_w(device, space, 0, data & 3, mem_mask);
break;
}
}
@@ -432,7 +432,7 @@ UINT8 isa8_fdc_device::dack_r(int line)
/* if dma is not enabled, dacks are not acknowledged */
if ((digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0)
{
- data = upd765_dack_r(m_upd765, 0);
+ data = upd765_dack_r(m_upd765, machine().driver_data()->generic_space(), 0);
}
return data;
@@ -444,7 +444,7 @@ void isa8_fdc_device::dack_w(int line,UINT8 data)
if ((digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0)
{
/* dma acknowledge - and send byte to fdc */
- upd765_dack_w(m_upd765, 0,data);
+ upd765_dack_w(m_upd765, machine().driver_data()->generic_space(), 0,data);
}
}
void isa8_fdc_device::eop_w(int state)
diff --git a/src/mess/machine/isa_gblaster.c b/src/mess/machine/isa_gblaster.c
index 60b75796ed0..82bd3a07894 100644
--- a/src/mess/machine/isa_gblaster.c
+++ b/src/mess/machine/isa_gblaster.c
@@ -34,8 +34,8 @@ static WRITE8_DEVICE_HANDLER( saa1099_16_w )
{
switch(offset)
{
- case 0 : saa1099_control_w( device, offset, data ); break;
- case 1 : saa1099_data_w( device, offset, data ); break;
+ case 0 : saa1099_control_w( device, space, offset, data ); break;
+ case 1 : saa1099_data_w( device, space, offset, data ); break;
}
}
diff --git a/src/mess/machine/isa_hdc.c b/src/mess/machine/isa_hdc.c
index 70076459c4a..17a72dd050b 100644
--- a/src/mess/machine/isa_hdc.c
+++ b/src/mess/machine/isa_hdc.c
@@ -110,8 +110,8 @@ static const char *const hdc_command_names[] =
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL /* 0xF8-0xFF */
};
-static READ8_DEVICE_HANDLER(pc_HDC_r);
-static WRITE8_DEVICE_HANDLER(pc_HDC_w);
+static DECLARE_READ8_DEVICE_HANDLER(pc_HDC_r);
+static DECLARE_WRITE8_DEVICE_HANDLER(pc_HDC_w);
static MACHINE_CONFIG_FRAGMENT( hdc_config )
MCFG_HARDDISK_ADD("primary")
diff --git a/src/mess/machine/isa_ibm_mfc.c b/src/mess/machine/isa_ibm_mfc.c
index fdc09313507..21e52185225 100644
--- a/src/mess/machine/isa_ibm_mfc.c
+++ b/src/mess/machine/isa_ibm_mfc.c
@@ -415,7 +415,7 @@ WRITE8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_w )
case 0x6:
case 0x7:
{
- pit8253_w(m_d8253, offset & 3, data);
+ pit8253_w(m_d8253, space, offset & 3, data);
break;
}
diff --git a/src/mess/machine/isa_ide.c b/src/mess/machine/isa_ide.c
index b410a361644..bff4c672219 100644
--- a/src/mess/machine/isa_ide.c
+++ b/src/mess/machine/isa_ide.c
@@ -11,23 +11,23 @@
static READ16_DEVICE_HANDLER( ide16_r )
{
- return ide_controller16_r(device, 0x1f0/2 + offset, mem_mask);
+ return ide_controller16_r(device, space, 0x1f0/2 + offset, mem_mask);
}
static WRITE16_DEVICE_HANDLER( ide16_w )
{
- ide_controller16_w(device, 0x1f0/2 + offset, data, mem_mask);
+ ide_controller16_w(device, space, 0x1f0/2 + offset, data, mem_mask);
}
static READ16_DEVICE_HANDLER( ide16_alt_r )
{
- return ide_controller16_r(device, 0x3f6/2 + offset, 0x00ff);
+ return ide_controller16_r(device, space, 0x3f6/2 + offset, 0x00ff);
}
static WRITE16_DEVICE_HANDLER( ide16_alt_w )
{
- ide_controller16_w(device, 0x3f6/2 + offset, data, 0x00ff);
+ ide_controller16_w(device, space, 0x3f6/2 + offset, data, 0x00ff);
}
static void ide_interrupt(device_t *device, int state)
diff --git a/src/mess/machine/isa_sblaster.c b/src/mess/machine/isa_sblaster.c
index eedec5cb56b..808d845b7b0 100644
--- a/src/mess/machine/isa_sblaster.c
+++ b/src/mess/machine/isa_sblaster.c
@@ -129,7 +129,7 @@ static READ8_DEVICE_HANDLER( ym3812_16_r )
UINT8 retVal = 0xff;
switch(offset)
{
- case 0 : retVal = ym3812_status_port_r( device, offset ); break;
+ case 0 : retVal = ym3812_status_port_r( device, space, offset ); break;
}
return retVal;
}
@@ -138,8 +138,8 @@ static WRITE8_DEVICE_HANDLER( ym3812_16_w )
{
switch(offset)
{
- case 0 : ym3812_control_port_w( device, offset, data ); break;
- case 1 : ym3812_write_port_w( device, offset, data ); break;
+ case 0 : ym3812_control_port_w( device, space, offset, data ); break;
+ case 1 : ym3812_write_port_w( device, space, offset, data ); break;
}
}
@@ -152,8 +152,8 @@ static WRITE8_DEVICE_HANDLER( saa1099_16_w )
{
switch(offset)
{
- case 0 : saa1099_control_w( device, offset, data ); break;
- case 1 : saa1099_data_w( device, offset, data ); break;
+ case 0 : saa1099_control_w( device, space, offset, data ); break;
+ case 1 : saa1099_data_w( device, space, offset, data ); break;
}
}
diff --git a/src/mess/machine/kaypro.c b/src/mess/machine/kaypro.c
index 0158f40f120..a4345ec83cf 100644
--- a/src/mess/machine/kaypro.c
+++ b/src/mess/machine/kaypro.c
@@ -13,7 +13,7 @@
************************************************************/
-static void kaypro_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( kaypro_interrupt )
{
device->machine().device("maincpu")->execute().set_input_line(0, state);
}
@@ -227,12 +227,12 @@ WRITE8_MEMBER( kaypro_state::kaypro2x_system_port_w )
const z80sio_interface kaypro_sio_intf =
{
- kaypro_interrupt, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- 0, /* transmit handler - which channel is this for? */
- 0 /* receive handler - which channel is this for? */
+ DEVCB_LINE(kaypro_interrupt), /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler - which channel is this for? */
+ DEVCB_NULL /* receive handler - which channel is this for? */
};
READ8_DEVICE_HANDLER( kaypro_sio_r )
diff --git a/src/mess/machine/kr2376.c b/src/mess/machine/kr2376.c
index 69a711dbbdb..7f8667ab61a 100644
--- a/src/mess/machine/kr2376.c
+++ b/src/mess/machine/kr2376.c
@@ -80,6 +80,7 @@ struct kr2376_t
/* timers */
emu_timer *scan_timer; /* keyboard scan timer */
+ devcb_resolved_write_line on_strobe_changed;
};
INLINE kr2376_t *get_safe_token(device_t *device)
@@ -133,8 +134,8 @@ static void change_output_lines(device_t *device)
kr2376->pins[KR2376_PO] = kr2376->parity ^ kr2376->pins[KR2376_PII];
}
kr2376->pins[KR2376_SO] = kr2376->strobe ^ kr2376->pins[KR2376_DSII];
- if (kr2376->intf->on_strobe_changed)
- kr2376->intf->on_strobe_changed(device, 0, kr2376->strobe ^ kr2376->pins[KR2376_DSII]);
+ if (!kr2376->on_strobe_changed.isnull())
+ kr2376->on_strobe_changed(kr2376->strobe ^ kr2376->pins[KR2376_DSII]);
}
}
@@ -343,10 +344,12 @@ static DEVICE_START( kr2376 )
assert(device->tag() != NULL);
kr2376->intf = (const kr2376_interface*)device->static_config();
-
+
assert(kr2376->intf != NULL);
assert(kr2376->intf->clock > 0);
+ kr2376->on_strobe_changed.resolve(kr2376->intf->on_strobe_changed_cb, *device);
+
/* set initial values */
kr2376->ring11 = 0;
kr2376->ring8 = 0;
diff --git a/src/mess/machine/kr2376.h b/src/mess/machine/kr2376.h
index c847343bdd1..065c65ccef5 100644
--- a/src/mess/machine/kr2376.h
+++ b/src/mess/machine/kr2376.h
@@ -85,15 +85,14 @@ struct kr2376_interface
int clock;
/* This will be called for every change of the strobe pin (pin 16). Optional */
-// kr2376_on_strobe_changed_func on_strobe_changed;
- write8_device_func on_strobe_changed;
+ devcb_write_line on_strobe_changed_cb;
};
#define KR2376_INTERFACE(name) const kr2376_interface (name)=
/* keyboard matrix */
INPUT_PORTS_EXTERN( kr2376 );
/* keyboard data */
-READ8_DEVICE_HANDLER( kr2376_data_r );
+DECLARE_READ8_DEVICE_HANDLER( kr2376_data_r );
/* Set an input pin */
void kr2376_set_input_pin( device_t *device, kr2376_input_pin_t pin, int data );
diff --git a/src/mess/machine/lisa.c b/src/mess/machine/lisa.c
index 793ff2281d2..f7f7982ca60 100644
--- a/src/mess/machine/lisa.c
+++ b/src/mess/machine/lisa.c
@@ -91,13 +91,13 @@ the drive type (TWIGGY or 3.5'')) */
a hard disk
*/
-static READ8_DEVICE_HANDLER(COPS_via_in_b);
-static WRITE8_DEVICE_HANDLER(COPS_via_out_a);
-static WRITE8_DEVICE_HANDLER(COPS_via_out_b);
-static WRITE8_DEVICE_HANDLER(COPS_via_out_ca2);
-static WRITE8_DEVICE_HANDLER(COPS_via_out_cb2);
+static DECLARE_READ8_DEVICE_HANDLER(COPS_via_in_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_a);
+static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_ca2);
+static DECLARE_WRITE8_DEVICE_HANDLER(COPS_via_out_cb2);
static void COPS_via_irq_func(device_t *device, int val);
-static READ8_DEVICE_HANDLER(parallel_via_in_b);
+static DECLARE_READ8_DEVICE_HANDLER(parallel_via_in_b);
const via6522_interface lisa_via6522_0_intf =
@@ -729,10 +729,9 @@ static WRITE8_DEVICE_HANDLER(COPS_via_out_b)
{
lisa_state *state = device->machine().driver_data<lisa_state>();
via6522_device *via_0 = device->machine().device<via6522_device>("via6522_0");
- address_space *space = device->machine().device("maincpu")->memory().space(AS_PROGRAM);
/* pull-up */
- data |= (~ via_0->read(*space,VIA_DDRA)) & 0x01;
+ data |= (~ via_0->read(space,VIA_DDRA)) & 0x01;
if (data & 0x01)
{
@@ -1073,7 +1072,7 @@ void lisa_state::machine_reset()
{
via6522_device *via_0 = machine().device<via6522_device>("via6522_0");
- COPS_via_out_ca2(via_0, 0, 0); /* VIA core forgets to do so */
+ COPS_via_out_ca2(via_0, generic_space(), 0, 0); /* VIA core forgets to do so */
}
/* initialize floppy */
@@ -1256,7 +1255,7 @@ READ8_MEMBER(lisa_state::lisa_fdc_io_r)
switch ((offset & 0x0030) >> 4)
{
case 0: /* IWM */
- answer = applefdc_r(fdc, offset);
+ answer = applefdc_r(fdc, space, offset);
break;
case 1: /* TTL glue */
@@ -1283,7 +1282,7 @@ WRITE8_MEMBER(lisa_state::lisa_fdc_io_w)
switch ((offset & 0x0030) >> 4)
{
case 0: /* IWM */
- applefdc_w(fdc, offset, data);
+ applefdc_w(fdc, space, offset, data);
break;
case 1: /* TTL glue */
diff --git a/src/mess/machine/lux10828.c b/src/mess/machine/lux10828.c
index 72b2f1d8346..bd8d740f888 100644
--- a/src/mess/machine/lux10828.c
+++ b/src/mess/machine/lux10828.c
@@ -687,10 +687,10 @@ READ8_MEMBER( luxor_55_10828_device::fdc_r )
switch (offset & 0x03)
{
- case 0: data = wd17xx_status_r(m_fdc, 0); break;
- case 1: data = wd17xx_track_r(m_fdc, 0); break;
- case 2: data = wd17xx_sector_r(m_fdc, 0); break;
- case 3: data = wd17xx_data_r(m_fdc, 0); break;
+ case 0: data = wd17xx_status_r(m_fdc, space, 0); break;
+ case 1: data = wd17xx_track_r(m_fdc, space, 0); break;
+ case 2: data = wd17xx_sector_r(m_fdc, space, 0); break;
+ case 3: data = wd17xx_data_r(m_fdc, space, 0); break;
}
return data;
@@ -711,10 +711,10 @@ WRITE8_MEMBER( luxor_55_10828_device::fdc_w )
switch (offset & 0x03)
{
- case 0: wd17xx_command_w(m_fdc, 0, data); break;
- case 1: wd17xx_track_w(m_fdc, 0, data); break;
- case 2: wd17xx_sector_w(m_fdc, 0, data); break;
- case 3: wd17xx_data_w(m_fdc, 0, data); break;
+ case 0: wd17xx_command_w(m_fdc, space, 0, data); break;
+ case 1: wd17xx_track_w(m_fdc, space, 0, data); break;
+ case 2: wd17xx_sector_w(m_fdc, space, 0, data); break;
+ case 3: wd17xx_data_w(m_fdc, space, 0, data); break;
}
}
diff --git a/src/mess/machine/mac.c b/src/mess/machine/mac.c
index 70d16fece52..9a90bd8d79f 100644
--- a/src/mess/machine/mac.c
+++ b/src/mess/machine/mac.c
@@ -132,17 +132,17 @@ static TIMER_CALLBACK(mac_6015_tick);
static int scan_keyboard(running_machine &machine);
static TIMER_CALLBACK(inquiry_timeout_func);
static void keyboard_receive(running_machine &machine, int val);
-static READ8_DEVICE_HANDLER(mac_via_in_a);
-static READ8_DEVICE_HANDLER(mac_via_in_b);
-static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2);
-static WRITE8_DEVICE_HANDLER(mac_via_out_a);
-static WRITE8_DEVICE_HANDLER(mac_via_out_b);
-static WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2);
-static WRITE8_DEVICE_HANDLER(mac_via_out_cb2);
-static READ8_DEVICE_HANDLER(mac_via2_in_a);
-static READ8_DEVICE_HANDLER(mac_via2_in_b);
-static WRITE8_DEVICE_HANDLER(mac_via2_out_a);
-static WRITE8_DEVICE_HANDLER(mac_via2_out_b);
+static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_a);
+static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_b);
+static DECLARE_READ8_DEVICE_HANDLER(mac_adb_via_in_cb2);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_a);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_cb2);
+static DECLARE_READ8_DEVICE_HANDLER(mac_via2_in_a);
+static DECLARE_READ8_DEVICE_HANDLER(mac_via2_in_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via2_out_a);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via2_out_b);
static void mac_via_irq(device_t *device, int state);
static void mac_via2_irq(device_t *device, int state);
static offs_t mac_dasm_override(device_t &device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, int options);
@@ -1155,7 +1155,7 @@ READ16_MEMBER ( mac_state::mac_iwm_r )
UINT16 result = 0;
device_t *fdc = space.machine().device("fdc");
- result = applefdc_r(fdc, (offset >> 8));
+ result = applefdc_r(fdc, space, (offset >> 8));
if (LOG_MAC_IWM)
printf("mac_iwm_r: offset=0x%08x mem_mask %04x = %02x (PC %x)\n", offset, mem_mask, result, m_maincpu->pc());
@@ -1171,9 +1171,9 @@ WRITE16_MEMBER ( mac_state::mac_iwm_w )
printf("mac_iwm_w: offset=0x%08x data=0x%04x mask %04x (PC=%x)\n", offset, data, mem_mask, m_maincpu->pc());
if (ACCESSING_BITS_0_7)
- applefdc_w(fdc, (offset >> 8), data & 0xff);
+ applefdc_w(fdc, space, (offset >> 8), data & 0xff);
else
- applefdc_w(fdc, (offset >> 8), data>>8);
+ applefdc_w(fdc, space, (offset >> 8), data>>8);
}
static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2)
diff --git a/src/mess/machine/macpci.c b/src/mess/machine/macpci.c
index aa360d09dca..f5d087decbc 100644
--- a/src/mess/machine/macpci.c
+++ b/src/mess/machine/macpci.c
@@ -26,12 +26,12 @@ static TIMER_CALLBACK(mac_6015_tick);
/* VIA1 Handlers */
-static READ8_DEVICE_HANDLER(mac_via_in_a);
-static READ8_DEVICE_HANDLER(mac_via_in_b);
-static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2);
-static WRITE8_DEVICE_HANDLER(mac_via_out_a);
-static WRITE8_DEVICE_HANDLER(mac_via_out_b);
-static WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2);
+static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_a);
+static DECLARE_READ8_DEVICE_HANDLER(mac_via_in_b);
+static DECLARE_READ8_DEVICE_HANDLER(mac_adb_via_in_cb2);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_a);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_via_out_b);
+static DECLARE_WRITE8_DEVICE_HANDLER(mac_adb_via_out_cb2);
static void mac_via_irq(device_t *device, int state);
const via6522_interface pcimac_via6522_intf =
diff --git a/src/mess/machine/mbc55x.c b/src/mess/machine/mbc55x.c
index 869d46481c6..0918ad7e8b4 100644
--- a/src/mess/machine/mbc55x.c
+++ b/src/mess/machine/mbc55x.c
@@ -118,12 +118,12 @@ const struct pic8259_interface mbc55x_pic8259_config =
READ8_MEMBER(mbc55x_state::mbcpic8259_r)
{
- return pic8259_r(m_pic, offset>>1);
+ return pic8259_r(m_pic, space, offset>>1);
}
WRITE8_MEMBER(mbc55x_state::mbcpic8259_w)
{
- pic8259_w(m_pic, offset>>1, data);
+ pic8259_w(m_pic, space, offset>>1, data);
}
static IRQ_CALLBACK(mbc55x_irq_callback)
@@ -157,12 +157,12 @@ const struct pit8253_config mbc55x_pit8253_config =
READ8_MEMBER(mbc55x_state::mbcpit8253_r)
{
- return pit8253_r(m_pit, offset>>1);
+ return pit8253_r(m_pit, space, offset>>1);
}
WRITE8_MEMBER(mbc55x_state::mbcpit8253_w)
{
- pit8253_w(m_pit, offset>>1, data);
+ pit8253_w(m_pit, space, offset>>1, data);
}
WRITE_LINE_MEMBER( mbc55x_state::pit8253_t2 )
@@ -187,12 +187,12 @@ WRITE8_MEMBER( mbc55x_state::vram_page_w )
READ8_MEMBER(mbc55x_state::mbc55x_disk_r)
{
- return wd17xx_r(m_fdc, offset>>1);
+ return wd17xx_r(m_fdc, space, offset>>1);
}
WRITE8_MEMBER(mbc55x_state::mbc55x_disk_w)
{
- wd17xx_w(m_fdc, offset>>1, data);
+ wd17xx_w(m_fdc, space, offset>>1, data);
}
WRITE_LINE_MEMBER( mbc55x_state::mbc55x_fdc_intrq_w )
diff --git a/src/mess/machine/mc68328.c b/src/mess/machine/mc68328.c
index f4671589aa2..9ca94931ff6 100644
--- a/src/mess/machine/mc68328.c
+++ b/src/mess/machine/mc68328.c
@@ -317,9 +317,9 @@ static TIMER_CALLBACK( mc68328_pwm_transition )
mc68328->regs.pwmc ^= PWMC_PIN;
- if( mc68328->iface->out_pwm_func )
+ if( !mc68328->out_pwm.isnull() )
{
- (mc68328->iface->out_pwm_func)( device, 0, (mc68328->regs.pwmc & PWMC_PIN) ? 1 : 0 );
+ mc68328->out_pwm( 0, (mc68328->regs.pwmc & PWMC_PIN) ? 1 : 0 );
}
}
@@ -779,9 +779,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PADATA = %02x\n", data & 0x00ff);
mc68328->regs.padata = data & 0x00ff;
- if(mc68328->iface->out_port_a_func)
+ if(!mc68328->out_port_a.isnull())
{
- (mc68328->iface->out_port_a_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_a( 0, data & 0x00ff );
}
}
else
@@ -808,9 +808,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PBDATA = %02x\n", data & 0x00ff);
mc68328->regs.pbdata = data & 0x00ff;
- if(mc68328->iface->out_port_b_func)
+ if(!mc68328->out_port_b.isnull())
{
- (mc68328->iface->out_port_b_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_b( 0, data & 0x00ff );
}
}
else
@@ -837,9 +837,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PCDATA = %02x\n", data & 0x00ff);
mc68328->regs.pcdata = data & 0x00ff;
- if(mc68328->iface->out_port_c_func)
+ if(!mc68328->out_port_c.isnull())
{
- (mc68328->iface->out_port_c_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_c( 0, data & 0x00ff );
}
}
else
@@ -920,9 +920,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PEDATA = %02x\n", data & 0x00ff);
mc68328->regs.pedata = data & 0x00ff;
- if(mc68328->iface->out_port_e_func)
+ if(!mc68328->out_port_e.isnull())
{
- (mc68328->iface->out_port_e_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_e( 0, data & 0x00ff );
}
}
else
@@ -951,9 +951,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PFDATA = %02x\n", data & 0x00ff);
mc68328->regs.pfdata = data & 0x00ff;
- if(mc68328->iface->out_port_f_func)
+ if(!mc68328->out_port_f.isnull())
{
- (mc68328->iface->out_port_f_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_f( 0, data & 0x00ff );
}
}
else
@@ -981,9 +981,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PGDATA = %02x\n", data & 0x00ff);
mc68328->regs.pgdata = data & 0x00ff;
- if(mc68328->iface->out_port_g_func)
+ if(!mc68328->out_port_g.isnull())
{
- (mc68328->iface->out_port_g_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_g( 0, data & 0x00ff );
}
}
else
@@ -1011,9 +1011,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PJDATA = %02x\n", data & 0x00ff);
mc68328->regs.pjdata = data & 0x00ff;
- if(mc68328->iface->out_port_j_func)
+ if(!mc68328->out_port_j.isnull())
{
- (mc68328->iface->out_port_j_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_j( 0, data & 0x00ff );
}
}
else
@@ -1040,9 +1040,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PKDATA = %02x\n", data & 0x00ff);
mc68328->regs.pkdata = data & 0x00ff;
- if(mc68328->iface->out_port_k_func)
+ if(!mc68328->out_port_k.isnull())
{
- (mc68328->iface->out_port_k_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_k( 0, data & 0x00ff );
}
}
else
@@ -1070,9 +1070,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
{
verboselog(device->machine(), 2, "mc68328_w: PMDATA = %02x\n", data & 0x00ff);
mc68328->regs.pmdata = data & 0x00ff;
- if(mc68328->iface->out_port_m_func)
+ if(!mc68328->out_port_m.isnull())
{
- (mc68328->iface->out_port_m_func)( device, 0, data & 0x00ff );
+ mc68328->out_port_m( 0, data & 0x00ff );
}
}
else
@@ -1249,9 +1249,9 @@ WRITE16_DEVICE_HANDLER( mc68328_w )
case 0x800:
verboselog(device->machine(), 2, "mc68328_w: SPIMDATA = %04x\n", data);
- if(mc68328->iface->out_spim_func)
+ if(!mc68328->out_spim.isnull())
{
- (mc68328->iface->out_spim_func)( device, 0, data, 0xffff );
+ mc68328->out_spim( 0, data, 0xffff );
}
else
{
@@ -1854,9 +1854,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PADATA = %02x\n", mem_mask, mc68328->regs.padata);
- if(mc68328->iface->in_port_a_func)
+ if(!mc68328->in_port_a.isnull())
{
- return (mc68328->iface->in_port_a_func)( device, 0 );
+ return mc68328->in_port_a( 0 );
}
else
{
@@ -1886,9 +1886,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PBDATA = %02x\n", mem_mask, mc68328->regs.pbdata);
- if(mc68328->iface->in_port_b_func)
+ if(!mc68328->in_port_b.isnull())
{
- return (mc68328->iface->in_port_b_func)( device, 0 );
+ return mc68328->in_port_b( 0 );
}
else
{
@@ -1918,9 +1918,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PCDATA = %02x\n", mem_mask, mc68328->regs.pcdata);
- if(mc68328->iface->in_port_c_func)
+ if(!mc68328->in_port_c.isnull())
{
- return (mc68328->iface->in_port_c_func)( device, 0 );
+ return mc68328->in_port_c( 0 );
}
else
{
@@ -1950,9 +1950,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PDDATA = %02x\n", mem_mask, mc68328->regs.pddata);
- if(mc68328->iface->in_port_d_func)
+ if(!mc68328->in_port_d.isnull())
{
- return (mc68328->iface->in_port_d_func)( device, 0 );
+ return mc68328->in_port_d( 0 );
}
else
{
@@ -2007,9 +2007,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PEDATA = %02x\n", mem_mask, mc68328->regs.pedata);
- if(mc68328->iface->in_port_e_func)
+ if(!mc68328->in_port_e.isnull())
{
- return (mc68328->iface->in_port_e_func)( device, 0 );
+ return mc68328->in_port_e( 0 );
}
else
{
@@ -2040,9 +2040,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PFDATA = %02x\n", mem_mask, mc68328->regs.pfdata);
- if(mc68328->iface->in_port_f_func)
+ if(!mc68328->in_port_f.isnull())
{
- return (mc68328->iface->in_port_f_func)( device, 0 );
+ return mc68328->in_port_f( 0 );
}
else
{
@@ -2073,9 +2073,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PGDATA = %02x\n", mem_mask, mc68328->regs.pgdata);
- if(mc68328->iface->in_port_g_func)
+ if(!mc68328->in_port_g.isnull())
{
- return (mc68328->iface->in_port_g_func)( device, 0 );
+ return mc68328->in_port_g( 0 );
}
else
{
@@ -2106,9 +2106,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PJDATA = %02x\n", mem_mask, mc68328->regs.pjdata);
- if(mc68328->iface->in_port_j_func)
+ if(!mc68328->in_port_j.isnull())
{
- return (mc68328->iface->in_port_j_func)( device, 0 );
+ return mc68328->in_port_j( 0 );
}
else
{
@@ -2138,9 +2138,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PKDATA = %02x\n", mem_mask, mc68328->regs.pkdata);
- if(mc68328->iface->in_port_k_func)
+ if(!mc68328->in_port_k.isnull())
{
- return (mc68328->iface->in_port_k_func)( device, 0 );
+ return mc68328->in_port_k( 0 );
}
else
{
@@ -2171,9 +2171,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
if( mem_mask & 0x00ff )
{
verboselog(device->machine(), 2, "mc68328_r (%04x): PMDATA = %02x\n", mem_mask, mc68328->regs.pmdata);
- if(mc68328->iface->in_port_m_func)
+ if(!mc68328->in_port_m.isnull())
{
- return (mc68328->iface->in_port_m_func)( device, 0 );
+ return mc68328->in_port_m( 0 );
}
else
{
@@ -2290,9 +2290,9 @@ READ16_DEVICE_HANDLER( mc68328_r )
case 0x800:
verboselog(device->machine(), 2, "mc68328_r (%04x): SPIMDATA = %04x\n", mem_mask, mc68328->regs.spimdata);
- if(mc68328->iface->in_spim_func)
+ if(!mc68328->in_spim.isnull())
{
- return (mc68328->iface->in_spim_func)( device, 0, 0xffff );
+ return mc68328->in_spim( 0, 0xffff );
}
return mc68328->regs.spimdata;
@@ -2800,6 +2800,33 @@ static DEVICE_START( mc68328 )
mc68328->iface = (const mc68328_interface*)device->static_config();
+ mc68328->out_port_a.resolve(mc68328->iface->out_port_a_func, *device);
+ mc68328->out_port_b.resolve(mc68328->iface->out_port_b_func, *device);
+ mc68328->out_port_c.resolve(mc68328->iface->out_port_c_func, *device);
+ mc68328->out_port_d.resolve(mc68328->iface->out_port_d_func, *device);
+ mc68328->out_port_e.resolve(mc68328->iface->out_port_e_func, *device);
+ mc68328->out_port_f.resolve(mc68328->iface->out_port_f_func, *device);
+ mc68328->out_port_g.resolve(mc68328->iface->out_port_g_func, *device);
+ mc68328->out_port_j.resolve(mc68328->iface->out_port_j_func, *device);
+ mc68328->out_port_k.resolve(mc68328->iface->out_port_k_func, *device);
+ mc68328->out_port_m.resolve(mc68328->iface->out_port_m_func, *device);
+
+ mc68328->in_port_a.resolve(mc68328->iface->in_port_a_func, *device);
+ mc68328->in_port_b.resolve(mc68328->iface->in_port_b_func, *device);
+ mc68328->in_port_c.resolve(mc68328->iface->in_port_c_func, *device);
+ mc68328->in_port_d.resolve(mc68328->iface->in_port_d_func, *device);
+ mc68328->in_port_e.resolve(mc68328->iface->in_port_e_func, *device);
+ mc68328->in_port_f.resolve(mc68328->iface->in_port_f_func, *device);
+ mc68328->in_port_g.resolve(mc68328->iface->in_port_g_func, *device);
+ mc68328->in_port_j.resolve(mc68328->iface->in_port_j_func, *device);
+ mc68328->in_port_k.resolve(mc68328->iface->in_port_k_func, *device);
+ mc68328->in_port_m.resolve(mc68328->iface->in_port_m_func, *device);
+
+ mc68328->out_pwm.resolve(mc68328->iface->out_pwm_func, *device);
+
+ mc68328->out_spim.resolve(mc68328->iface->out_spim_func, *device);
+ mc68328->in_spim.resolve(mc68328->iface->in_spim_func, *device);
+
mc68328->gptimer[0] = device->machine().scheduler().timer_alloc(FUNC(mc68328_timer1_hit));
mc68328->gptimer[1] = device->machine().scheduler().timer_alloc(FUNC(mc68328_timer2_hit));
mc68328->rtc = device->machine().scheduler().timer_alloc(FUNC(mc68328_rtc_tick));
diff --git a/src/mess/machine/mc68328.h b/src/mess/machine/mc68328.h
index 0750b2c5475..57879909919 100644
--- a/src/mess/machine/mc68328.h
+++ b/src/mess/machine/mc68328.h
@@ -212,6 +212,33 @@ struct mc68328_t
emu_timer *gptimer[2];
emu_timer *rtc;
emu_timer *pwm;
+
+ devcb_resolved_write8 out_port_a; /* 8-bit output */
+ devcb_resolved_write8 out_port_b; /* 8-bit output */
+ devcb_resolved_write8 out_port_c; /* 8-bit output */
+ devcb_resolved_write8 out_port_d; /* 8-bit output */
+ devcb_resolved_write8 out_port_e; /* 8-bit output */
+ devcb_resolved_write8 out_port_f; /* 8-bit output */
+ devcb_resolved_write8 out_port_g; /* 8-bit output */
+ devcb_resolved_write8 out_port_j; /* 8-bit output */
+ devcb_resolved_write8 out_port_k; /* 8-bit output */
+ devcb_resolved_write8 out_port_m; /* 8-bit output */
+
+ devcb_resolved_read8 in_port_a; /* 8-bit input */
+ devcb_resolved_read8 in_port_b; /* 8-bit input */
+ devcb_resolved_read8 in_port_c; /* 8-bit input */
+ devcb_resolved_read8 in_port_d; /* 8-bit input */
+ devcb_resolved_read8 in_port_e; /* 8-bit input */
+ devcb_resolved_read8 in_port_f; /* 8-bit input */
+ devcb_resolved_read8 in_port_g; /* 8-bit input */
+ devcb_resolved_read8 in_port_j; /* 8-bit input */
+ devcb_resolved_read8 in_port_k; /* 8-bit input */
+ devcb_resolved_read8 in_port_m; /* 8-bit input */
+
+ devcb_resolved_write8 out_pwm; /* 1-bit output */
+
+ devcb_resolved_write16 out_spim; /* 16-bit output */
+ devcb_resolved_read16 in_spim; /* 16-bit input */
};
#define SCR_BETO 0x80
diff --git a/src/mess/machine/mc6843.h b/src/mess/machine/mc6843.h
index f1e250b28e9..be9ab55a310 100644
--- a/src/mess/machine/mc6843.h
+++ b/src/mess/machine/mc6843.h
@@ -49,8 +49,8 @@ struct mc6843_interface
/* ---------- functions ------------ */
-extern READ8_DEVICE_HANDLER ( mc6843_r );
-extern WRITE8_DEVICE_HANDLER ( mc6843_w );
+extern DECLARE_READ8_DEVICE_HANDLER ( mc6843_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER ( mc6843_w );
extern void mc6843_set_drive ( device_t *device, int drive );
extern void mc6843_set_side ( device_t *device, int side );
diff --git a/src/mess/machine/mc6846.c b/src/mess/machine/mc6846.c
index 320b65e1084..7baf943fbdc 100644
--- a/src/mess/machine/mc6846.c
+++ b/src/mess/machine/mc6846.c
@@ -59,6 +59,20 @@ struct mc6846_t
emu_timer *interval; /* interval programmable timer */
emu_timer *one_shot; /* 1-us x factor one-shot timer */
+ /* CPU write to the outside through chip */
+ devcb_resolved_write8 out_port; /* 8-bit output */
+ devcb_resolved_write8 out_cp1; /* 1-bit output */
+ devcb_resolved_write8 out_cp2; /* 1-bit output */
+
+ /* CPU read from the outside through chip */
+ devcb_resolved_read8 in_port; /* 8-bit input */
+
+ /* asynchronous timer output to outside world */
+ devcb_resolved_write8 out_cto; /* 1-bit output */
+
+ /* timer interrupt */
+ devcb_resolved_write_line irq;
+
int old_cif;
int old_cto;
};
@@ -71,7 +85,7 @@ struct mc6846_t
#define PORT \
((mc6846->pdr & mc6846->ddr) | \
- ((mc6846->iface->in_port_func ? mc6846->iface->in_port_func( device, 0 ) : 0) & \
+ ((!mc6846->in_port.isnull() ? mc6846->in_port( 0 ) : 0) & \
~mc6846->ddr))
#define CTO \
@@ -124,14 +138,14 @@ INLINE void mc6846_update_irq( device_t *device )
if ( cif )
{
mc6846->csr |= 0x80;
- if ( mc6846->iface->irq_func )
- mc6846->iface->irq_func( device, 1 );
+ if ( !mc6846->irq.isnull() )
+ mc6846->irq( 1 );
}
else
{
mc6846->csr &= ~0x80;
- if ( mc6846->iface->irq_func )
- mc6846->iface->irq_func( device, 0 );
+ if ( !mc6846->irq.isnull() )
+ mc6846->irq( 0 );
}
}
@@ -146,8 +160,8 @@ INLINE void mc6846_update_cto ( device_t *device )
LOG (( "%f: mc6846 CTO set to %i\n", device->machine().time().as_double(), cto ));
mc6846->old_cto = cto;
}
- if ( mc6846->iface->out_cto_func )
- mc6846->iface->out_cto_func( device, 0, cto );
+ if ( !mc6846->out_cto.isnull() )
+ mc6846->out_cto( 0, cto );
}
@@ -372,8 +386,8 @@ WRITE8_DEVICE_HANDLER ( mc6846_w )
if (data & 0x10)
{
mc6846->cp2_cpu = (data >> 3) & 1;
- if ( mc6846->iface->out_cp2_func )
- mc6846->iface->out_cp2_func( device, 0, mc6846->cp2_cpu );
+ if ( !mc6846->out_cp2.isnull() )
+ mc6846->out_cp2( 0, mc6846->cp2_cpu );
}
else
logerror( "$%04x mc6846 acknowledge not implemented\n", device->machine().firstcpu->pcbase( ) );
@@ -385,8 +399,8 @@ WRITE8_DEVICE_HANDLER ( mc6846_w )
if ( ! (mc6846->pcr & 0x80) )
{
mc6846->ddr = data;
- if ( mc6846->iface->out_port_func )
- mc6846->iface->out_port_func( device, 0, mc6846->pdr & mc6846->ddr );
+ if ( !mc6846->out_port.isnull() )
+ mc6846->out_port( 0, mc6846->pdr & mc6846->ddr );
}
break;
@@ -395,8 +409,8 @@ WRITE8_DEVICE_HANDLER ( mc6846_w )
if ( ! (mc6846->pcr & 0x80) )
{
mc6846->pdr = data;
- if ( mc6846->iface->out_port_func )
- mc6846->iface->out_port_func( device, 0, mc6846->pdr & mc6846->ddr );
+ if ( !mc6846->out_port.isnull() )
+ mc6846->out_port( 0, mc6846->pdr & mc6846->ddr );
if ( mc6846->csr1_to_be_cleared && (mc6846->csr & 2) )
{
mc6846->csr &= ~2;
@@ -590,6 +604,19 @@ static DEVICE_START( mc6846 )
mc6846->interval = device->machine().scheduler().timer_alloc(FUNC(mc6846_timer_expire), (void*) device );
mc6846->one_shot = device->machine().scheduler().timer_alloc(FUNC(mc6846_timer_one_shot), (void*) device );
+ mc6846->out_port.resolve(mc6846->iface->out_port_func, *device); /* 8-bit output */
+ mc6846->out_cp1.resolve(mc6846->iface->out_cp1_func, *device); /* 1-bit output */
+ mc6846->out_cp2.resolve(mc6846->iface->out_cp2_func, *device); /* 1-bit output */
+
+ /* CPU read from the outside through chip */
+ mc6846->in_port.resolve(mc6846->iface->in_port_func, *device); /* 8-bit input */
+
+ /* asynchronous timer output to outside world */
+ mc6846->out_cto.resolve(mc6846->iface->out_cto_func, *device); /* 1-bit output */
+
+ /* timer interrupt */
+ mc6846->irq.resolve(mc6846->iface->irq_func, *device);
+
state_save_register_item( device->machine(), "mc6846", device->tag(), 0, mc6846->csr );
state_save_register_item( device->machine(), "mc6846", device->tag(), 0, mc6846->pcr );
state_save_register_item( device->machine(), "mc6846", device->tag(), 0, mc6846->ddr );
diff --git a/src/mess/machine/mc6846.h b/src/mess/machine/mc6846.h
index 567e0ec233e..c6d5af39e82 100644
--- a/src/mess/machine/mc6846.h
+++ b/src/mess/machine/mc6846.h
@@ -35,18 +35,18 @@ extern const device_type MC6846;
struct mc6846_interface
{
/* CPU write to the outside through chip */
- write8_device_func out_port_func; /* 8-bit output */
- write8_device_func out_cp1_func; /* 1-bit output */
- write8_device_func out_cp2_func; /* 1-bit output */
+ devcb_write8 out_port_func; /* 8-bit output */
+ devcb_write8 out_cp1_func; /* 1-bit output */
+ devcb_write8 out_cp2_func; /* 1-bit output */
/* CPU read from the outside through chip */
- read8_device_func in_port_func; /* 8-bit input */
+ devcb_read8 in_port_func; /* 8-bit input */
/* asynchronous timer output to outside world */
- write8_device_func out_cto_func; /* 1-bit output */
+ devcb_write8 out_cto_func; /* 1-bit output */
/* timer interrupt */
- void ( * irq_func ) ( device_t *device, int state );
+ devcb_write_line irq_func;
};
@@ -64,8 +64,8 @@ struct mc6846_interface
/* ---------- functions ------------ */
/* interface to CPU via address/data bus*/
-extern READ8_DEVICE_HANDLER ( mc6846_r );
-extern WRITE8_DEVICE_HANDLER ( mc6846_w );
+extern DECLARE_READ8_DEVICE_HANDLER ( mc6846_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER ( mc6846_w );
/* asynchronous write from outside world into interrupt-generating pins */
extern void mc6846_set_input_cp1 ( device_t *device, int data );
diff --git a/src/mess/machine/mc6854.h b/src/mess/machine/mc6854.h
index a89fb417bd6..cd66c796611 100644
--- a/src/mess/machine/mc6854.h
+++ b/src/mess/machine/mc6854.h
@@ -80,8 +80,8 @@ struct mc6854_interface
/* ---------- functions ------------ */
/* interface to CPU via address/data bus*/
-extern READ8_DEVICE_HANDLER ( mc6854_r );
-extern WRITE8_DEVICE_HANDLER ( mc6854_w );
+extern DECLARE_READ8_DEVICE_HANDLER ( mc6854_r );
+extern DECLARE_WRITE8_DEVICE_HANDLER ( mc6854_w );
/* low-level, bit-based interface */
WRITE_LINE_DEVICE_HANDLER( mc6854_set_rx );
diff --git a/src/mess/machine/mc80.c b/src/mess/machine/mc80.c
index 9766fcd7108..536ed28df7a 100644
--- a/src/mess/machine/mc80.c
+++ b/src/mess/machine/mc80.c
@@ -194,11 +194,11 @@ Z80CTC_INTERFACE( mc8030_asp_z80ctc_intf )
// SIO CH A in = keyboard; out = beeper; CH B = IFSS (??)
const z80sio_interface mc8030_asp_z80sio_intf =
{
- 0, /* interrupt handler */
- 0, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- 0, /* transmit handler */
- 0 /* receive handler */
+ DEVCB_NULL, /* interrupt handler */
+ DEVCB_NULL, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_NULL, /* transmit handler */
+ DEVCB_NULL /* receive handler */
};
diff --git a/src/mess/machine/micropolis.c b/src/mess/machine/micropolis.c
index 922a1d5b753..5919694ab65 100644
--- a/src/mess/machine/micropolis.c
+++ b/src/mess/machine/micropolis.c
@@ -306,10 +306,10 @@ READ8_DEVICE_HANDLER( micropolis_r )
switch (offset & 0x03)
{
- case 0: data = micropolis_status_r(device, 0); break;
- case 1: data = micropolis_status_r(device, 1); break;
+ case 0: data = micropolis_status_r(device, space, 0); break;
+ case 1: data = micropolis_status_r(device, space, 1); break;
case 2:
- case 3: data = micropolis_data_r(device, 0); break;
+ case 3: data = micropolis_data_r(device, space, 0); break;
}
return data;
@@ -320,9 +320,9 @@ WRITE8_DEVICE_HANDLER( micropolis_w )
switch (offset & 0x03)
{
case 0:
- case 1: micropolis_command_w(device, 0, data); break;
+ case 1: micropolis_command_w(device, space, 0, data); break;
case 2:
- case 3: micropolis_data_w(device, 0, data); break;
+ case 3: micropolis_data_w(device, space, 0, data); break;
}
}
diff --git a/src/mess/machine/micropolis.h b/src/mess/machine/micropolis.h
index 8fd7d27cc3e..46cf6152c6e 100644
--- a/src/mess/machine/micropolis.h
+++ b/src/mess/machine/micropolis.h
@@ -61,14 +61,14 @@ void micropolis_reset(device_t *device);
void micropolis_set_drive(device_t *device, UINT8); // set current drive (0-3)
-READ8_DEVICE_HANDLER( micropolis_status_r );
-READ8_DEVICE_HANDLER( micropolis_data_r );
+DECLARE_READ8_DEVICE_HANDLER( micropolis_status_r );
+DECLARE_READ8_DEVICE_HANDLER( micropolis_data_r );
-WRITE8_DEVICE_HANDLER( micropolis_command_w );
-WRITE8_DEVICE_HANDLER( micropolis_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( micropolis_command_w );
+DECLARE_WRITE8_DEVICE_HANDLER( micropolis_data_w );
-READ8_DEVICE_HANDLER( micropolis_r );
-WRITE8_DEVICE_HANDLER( micropolis_w );
+DECLARE_READ8_DEVICE_HANDLER( micropolis_r );
+DECLARE_WRITE8_DEVICE_HANDLER( micropolis_w );
extern const micropolis_interface default_micropolis_interface;
diff --git a/src/mess/machine/mm58274c.h b/src/mess/machine/mm58274c.h
index a2ad6370f56..b35a9309fa1 100644
--- a/src/mess/machine/mm58274c.h
+++ b/src/mess/machine/mm58274c.h
@@ -42,8 +42,8 @@ struct mm58274c_interface
int day1; /* first day of week */
};
-READ8_DEVICE_HANDLER ( mm58274c_r );
-WRITE8_DEVICE_HANDLER( mm58274c_w );
+DECLARE_READ8_DEVICE_HANDLER ( mm58274c_r );
+DECLARE_WRITE8_DEVICE_HANDLER( mm58274c_w );
/***************************************************************************
DEVICE CONFIGURATION MACROS
diff --git a/src/mess/machine/mos6530.h b/src/mess/machine/mos6530.h
index 54e7a1bd57d..c3dd421ee3a 100644
--- a/src/mess/machine/mos6530.h
+++ b/src/mess/machine/mos6530.h
@@ -82,8 +82,8 @@ struct mos6530_interface
PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( mos6530_r );
-WRITE8_DEVICE_HANDLER( mos6530_w );
+DECLARE_READ8_DEVICE_HANDLER( mos6530_r );
+DECLARE_WRITE8_DEVICE_HANDLER( mos6530_w );
void mos6530_porta_in_set(device_t *device, UINT8 data, UINT8 mask);
void mos6530_portb_in_set(device_t *device, UINT8 data, UINT8 mask);
diff --git a/src/mess/machine/msx.c b/src/mess/machine/msx.c
index ab3c5ae98cc..6e20a08e1b0 100644
--- a/src/mess/machine/msx.c
+++ b/src/mess/machine/msx.c
@@ -655,9 +655,9 @@ WRITE8_MEMBER( msx_state::msx_fmpac_w )
if (m_opll_active)
{
if (offset == 1)
- ym2413_w (m_ym, 1, data);
+ ym2413_w (m_ym, space, 1, data);
else
- ym2413_w (m_ym, 0, data);
+ ym2413_w (m_ym, space, 0, data);
}
}
diff --git a/src/mess/machine/msx_slot.c b/src/mess/machine/msx_slot.c
index 867dabb9d0f..dac30951d8f 100644
--- a/src/mess/machine/msx_slot.c
+++ b/src/mess/machine/msx_slot.c
@@ -31,7 +31,7 @@
static void msx_cpu_setbank (running_machine &machine, int page, UINT8 *mem)
{
msx_state *state = machine.driver_data<msx_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
switch (page)
{
case 1:
@@ -46,17 +46,17 @@ static void msx_cpu_setbank (running_machine &machine, int page, UINT8 *mem)
case 4:
state->membank ("bank4")->set_base (mem);
state->membank ("bank5")->set_base (mem + 0x1ff8);
- space->install_read_bank(0x7ff8, 0x7fff, "bank5");
+ space.install_read_bank(0x7ff8, 0x7fff, "bank5");
break;
case 5:
state->membank ("bank6")->set_base (mem);
state->membank ("bank7")->set_base (mem + 0x1800);
- space->install_read_bank(0x9800, 0x9fff, "bank7");
+ space.install_read_bank(0x9800, 0x9fff, "bank7");
break;
case 6:
state->membank ("bank8")->set_base (mem);
state->membank ("bank9")->set_base (mem + 0x1800);
- space->install_read_bank(0xb800, 0xbfff, "bank9");
+ space.install_read_bank(0xb800, 0xbfff, "bank9");
break;
case 7:
state->membank ("bank10")->set_base (mem);
@@ -353,13 +353,13 @@ static READ8_HANDLER (konami_scc_bank5)
{
if ((offset & 0xff) >= 0xe0)
{
- return k051649_test_r (space->machine().device("k051649"), offset & 0xff);
+ return k051649_test_r (space->machine().device("k051649"), *space, offset & 0xff);
}
return 0xff;
}
else
{
- return k051649_waveform_r (space->machine().device("k051649"), offset & 0x7f);
+ return k051649_waveform_r (space->machine().device("k051649"), *space, offset & 0x7f);
}
}
@@ -393,7 +393,7 @@ MSX_SLOT_MAP(konami_scc)
MSX_SLOT_WRITE(konami_scc)
{
msx_state *drvstate = machine.driver_data<msx_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
if (addr >= 0x5000 && addr < 0x5800)
{
state->m_banks[0] = val & state->m_bank_mask;
@@ -424,32 +424,32 @@ MSX_SLOT_WRITE(konami_scc)
}
else if (state->m_cart.scc.active && addr >= 0x9800 && addr < 0xa000)
{
- device_t *k051649 = space->machine().device("k051649");
+ device_t *k051649 = space.machine().device("k051649");
int offset = addr & 0xff;
if (offset < 0x80)
{
- k051649_waveform_w (k051649, offset, val);
+ k051649_waveform_w (k051649, space, offset, val);
}
else if (offset < 0xa0)
{
offset &= 0xf;
if (offset < 0xa)
{
- k051649_frequency_w (k051649, offset, val);
+ k051649_frequency_w (k051649, space, offset, val);
}
else if (offset < 0xf)
{
- k051649_volume_w (k051649, offset - 0xa, val);
+ k051649_volume_w (k051649, space, offset - 0xa, val);
}
else
{
- k051649_keyonoff_w (k051649, 0, val);
+ k051649_keyonoff_w (k051649, space, 0, val);
}
}
else if (offset >= 0xe0)
{
- k051649_test_w (k051649, offset, val);
+ k051649_test_w (k051649, space, offset, val);
}
}
else if (addr >= 0xb000 && addr < 0xb800)
@@ -1238,10 +1238,10 @@ static READ8_HANDLER (msx_diskrom_page1_r)
device_t *fdc = space->machine().device("wd179x");
switch (offset)
{
- case 0: return wd17xx_status_r (fdc, 0);
- case 1: return wd17xx_track_r (fdc, 0);
- case 2: return wd17xx_sector_r (fdc, 0);
- case 3: return wd17xx_data_r (fdc, 0);
+ case 0: return wd17xx_status_r (fdc, *space, 0);
+ case 1: return wd17xx_track_r (fdc, *space, 0);
+ case 2: return wd17xx_sector_r (fdc, *space, 0);
+ case 3: return wd17xx_data_r (fdc, *space, 0);
case 7: return state->m_dsk_stat;
default:
return state->m_state[1]->m_mem[offset + 0x3ff8];
@@ -1257,13 +1257,13 @@ static READ8_HANDLER (msx_diskrom_page2_r)
switch (offset)
{
case 0x7f8:
- return wd17xx_status_r (fdc, 0);
+ return wd17xx_status_r (fdc, *space, 0);
case 0x7f9:
- return wd17xx_track_r (fdc, 0);
+ return wd17xx_track_r (fdc, *space, 0);
case 0x7fa:
- return wd17xx_sector_r (fdc, 0);
+ return wd17xx_sector_r (fdc, *space, 0);
case 0x7fb:
- return wd17xx_data_r (fdc, 0);
+ return wd17xx_data_r (fdc, *space, 0);
case 0x7ff:
return state->m_dsk_stat;
default:
@@ -1279,7 +1279,7 @@ static READ8_HANDLER (msx_diskrom_page2_r)
MSX_SLOT_MAP(diskrom)
{
msx_state *drvstate = machine.driver_data<msx_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
switch (page)
{
case 0:
@@ -1289,12 +1289,12 @@ MSX_SLOT_MAP(diskrom)
case 1:
msx_cpu_setbank (machine, 3, state->m_mem);
msx_cpu_setbank (machine, 4, state->m_mem + 0x2000);
- space->install_legacy_read_handler(0x7ff8, 0x7fff, FUNC(msx_diskrom_page1_r));
+ space.install_legacy_read_handler(0x7ff8, 0x7fff, FUNC(msx_diskrom_page1_r));
break;
case 2:
msx_cpu_setbank (machine, 5, drvstate->m_empty);
msx_cpu_setbank (machine, 6, drvstate->m_empty);
- space->install_legacy_read_handler(0xb800, 0xbfff, FUNC(msx_diskrom_page2_r));
+ space.install_legacy_read_handler(0xb800, 0xbfff, FUNC(msx_diskrom_page2_r));
break;
case 3:
msx_cpu_setbank (machine, 7, drvstate->m_empty);
@@ -1306,6 +1306,7 @@ MSX_SLOT_MAP(diskrom)
MSX_SLOT_WRITE(diskrom)
{
device_t *fdc = machine.device("wd179x");
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
if (addr >= 0xa000 && addr < 0xc000)
{
addr -= 0x4000;
@@ -1313,16 +1314,16 @@ MSX_SLOT_WRITE(diskrom)
switch (addr)
{
case 0x7ff8:
- wd17xx_command_w (fdc, 0, val);
+ wd17xx_command_w (fdc, space, 0, val);
break;
case 0x7ff9:
- wd17xx_track_w (fdc, 0, val);
+ wd17xx_track_w (fdc, space, 0, val);
break;
case 0x7ffa:
- wd17xx_sector_w (fdc, 0, val);
+ wd17xx_sector_w (fdc, space, 0, val);
break;
case 0x7ffb:
- wd17xx_data_w (fdc, 0, val);
+ wd17xx_data_w (fdc, space, 0, val);
break;
case 0x7ffc:
wd17xx_set_side (fdc,val & 1);
@@ -1366,10 +1367,10 @@ static READ8_HANDLER (msx_diskrom2_page1_r)
device_t *fdc = space->machine().device("wd179x");
switch (offset)
{
- case 0: return wd17xx_status_r(fdc, 0);
- case 1: return wd17xx_track_r(fdc, 0);
- case 2: return wd17xx_sector_r(fdc, 0);
- case 3: return wd17xx_data_r(fdc, 0);
+ case 0: return wd17xx_status_r(fdc, *space, 0);
+ case 1: return wd17xx_track_r(fdc, *space, 0);
+ case 2: return wd17xx_sector_r(fdc, *space, 0);
+ case 3: return wd17xx_data_r(fdc, *space, 0);
case 4: return state->m_dsk_stat;
default:
return state->m_state[1]->m_mem[offset + 0x3ff8];
@@ -1385,13 +1386,13 @@ static READ8_HANDLER (msx_diskrom2_page2_r)
switch (offset)
{
case 0x7b8:
- return wd17xx_status_r (fdc, 0);
+ return wd17xx_status_r (fdc, *space, 0);
case 0x7b9:
- return wd17xx_track_r (fdc, 0);
+ return wd17xx_track_r (fdc, *space, 0);
case 0x7ba:
- return wd17xx_sector_r (fdc, 0);
+ return wd17xx_sector_r (fdc, *space, 0);
case 0x7bb:
- return wd17xx_data_r (fdc, 0);
+ return wd17xx_data_r (fdc, *space, 0);
case 0x7bc:
return state->m_dsk_stat;
default:
@@ -1407,7 +1408,7 @@ static READ8_HANDLER (msx_diskrom2_page2_r)
MSX_SLOT_MAP(diskrom2)
{
msx_state *drvstate = machine.driver_data<msx_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
switch (page)
{
case 0:
@@ -1417,12 +1418,12 @@ MSX_SLOT_MAP(diskrom2)
case 1:
msx_cpu_setbank (machine, 3, state->m_mem);
msx_cpu_setbank (machine, 4, state->m_mem + 0x2000);
- space->install_legacy_read_handler(0x7fb8, 0x7fbc, FUNC(msx_diskrom2_page1_r));
+ space.install_legacy_read_handler(0x7fb8, 0x7fbc, FUNC(msx_diskrom2_page1_r));
break;
case 2:
msx_cpu_setbank (machine, 5, drvstate->m_empty);
msx_cpu_setbank (machine, 6, drvstate->m_empty);
- space->install_legacy_read_handler(0xb800, 0xbfbc, FUNC(msx_diskrom2_page2_r));
+ space.install_legacy_read_handler(0xb800, 0xbfbc, FUNC(msx_diskrom2_page2_r));
break;
case 3:
msx_cpu_setbank (machine, 7, drvstate->m_empty);
@@ -1433,6 +1434,7 @@ MSX_SLOT_MAP(diskrom2)
MSX_SLOT_WRITE(diskrom2)
{
device_t *fdc = machine.device("wd179x");
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
if (addr >= 0xa000 && addr < 0xc000)
{
addr -= 0x4000;
@@ -1440,16 +1442,16 @@ MSX_SLOT_WRITE(diskrom2)
switch (addr)
{
case 0x7fb8:
- wd17xx_command_w (fdc, 0, val);
+ wd17xx_command_w (fdc, space, 0, val);
break;
case 0x7fb9:
- wd17xx_track_w (fdc, 0, val);
+ wd17xx_track_w (fdc, space, 0, val);
break;
case 0x7fba:
- wd17xx_sector_w (fdc, 0, val);
+ wd17xx_sector_w (fdc, space, 0, val);
break;
case 0x7fbb:
- wd17xx_data_w (fdc, 0, val);
+ wd17xx_data_w (fdc, space, 0, val);
break;
case 0x7fbc:
wd17xx_set_side (fdc,val & 1);
@@ -1683,7 +1685,7 @@ MSX_SLOT_MAP(fmpac)
MSX_SLOT_WRITE(fmpac)
{
msx_state *drvstate = machine.driver_data<msx_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
int i, data;
if (addr >= 0x4000 && addr < 0x6000 && state->m_cart.fmpac.sram_support)
@@ -1703,13 +1705,13 @@ MSX_SLOT_WRITE(fmpac)
case 0x7ff4:
if (state->m_cart.fmpac.opll_active)
{
- ym2413_w (space->machine().device("ay8910"), 0, val);
+ ym2413_w (space.machine().device("ay8910"), space, 0, val);
}
break;
case 0x7ff5:
if (state->m_cart.fmpac.opll_active)
{
- ym2413_w (space->machine().device("ay8910"), 1, val);
+ ym2413_w (space.machine().device("ay8910"), space, 1, val);
}
break;
case 0x7ff6:
@@ -2196,7 +2198,7 @@ static READ8_HANDLER (soundcartridge_scc)
if (reg < 0x80)
{
- return k051649_waveform_r (space->machine().device("k051649"), reg);
+ return k051649_waveform_r (space->machine().device("k051649"), *space, reg);
}
else if (reg < 0xa0)
{
@@ -2205,11 +2207,11 @@ static READ8_HANDLER (soundcartridge_scc)
else if (reg < 0xc0)
{
/* read wave 5 */
- return k051649_waveform_r (space->machine().device("k051649"), 0x80 + (reg & 0x1f));
+ return k051649_waveform_r (space->machine().device("k051649"), *space, 0x80 + (reg & 0x1f));
}
else if (reg < 0xe0)
{
- return k051649_test_r (space->machine().device("k051649"), reg);
+ return k051649_test_r (space->machine().device("k051649"), *space, reg);
}
return 0xff;
@@ -2230,11 +2232,11 @@ static READ8_HANDLER (soundcartridge_sccp)
if (reg < 0xa0)
{
- return k052539_waveform_r (space->machine().device("k051649"), reg);
+ return k052539_waveform_r (space->machine().device("k051649"), *space, reg);
}
else if (reg >= 0xc0 && reg < 0xe0)
{
- return k051649_test_r (space->machine().device("k051649"), reg);
+ return k051649_test_r (space->machine().device("k051649"), *space, reg);
}
return 0xff;
@@ -2242,7 +2244,7 @@ static READ8_HANDLER (soundcartridge_sccp)
MSX_SLOT_MAP(soundcartridge)
{
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
switch (page)
{
case 0:
@@ -2257,14 +2259,14 @@ MSX_SLOT_MAP(soundcartridge)
msx_cpu_setbank (machine, 5, state->m_mem + state->m_banks[2] * 0x2000);
msx_cpu_setbank (machine, 6, state->m_mem + state->m_banks[3] * 0x2000);
if (state->m_cart.sccp.scc_active) {
- space->install_legacy_read_handler(0x9800, 0x9fff, FUNC(soundcartridge_scc));
+ space.install_legacy_read_handler(0x9800, 0x9fff, FUNC(soundcartridge_scc));
} else {
- space->install_read_bank(0x9800, 0x9fff, "bank7");
+ space.install_read_bank(0x9800, 0x9fff, "bank7");
}
if (state->m_cart.sccp.scc_active) {
- space->install_legacy_read_handler(0xb800, 0xbfff, FUNC(soundcartridge_sccp));
+ space.install_legacy_read_handler(0xb800, 0xbfff, FUNC(soundcartridge_sccp));
} else {
- space->install_read_bank(0xb800, 0xbfff, "bank9");
+ space.install_read_bank(0xb800, 0xbfff, "bank9");
}
break;
case 3:
@@ -2277,7 +2279,7 @@ MSX_SLOT_MAP(soundcartridge)
MSX_SLOT_WRITE(soundcartridge)
{
msx_state *drvstate = machine.driver_data<msx_state>();
- address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space &space = *machine.device("maincpu")->memory().space(AS_PROGRAM);
int i;
if (addr < 0x4000)
@@ -2339,12 +2341,12 @@ MSX_SLOT_WRITE(soundcartridge)
}
else if (addr >= 0x9800 && state->m_cart.sccp.scc_active)
{
- device_t *k051649 = space->machine().device("k051649");
+ device_t *k051649 = space.machine().device("k051649");
int offset = addr & 0xff;
if (offset < 0x80)
{
- k051649_waveform_w (k051649, offset, val);
+ k051649_waveform_w (k051649, space, offset, val);
}
else if (offset < 0xa0)
{
@@ -2352,20 +2354,20 @@ MSX_SLOT_WRITE(soundcartridge)
if (offset < 0xa)
{
- k051649_frequency_w (k051649, offset, val);
+ k051649_frequency_w (k051649, space, offset, val);
}
else if (offset < 0x0f)
{
- k051649_volume_w (k051649, offset - 0xa, val);
+ k051649_volume_w (k051649, space, offset - 0xa, val);
}
else if (offset == 0x0f)
{
- k051649_keyonoff_w (k051649, 0, val);
+ k051649_keyonoff_w (k051649, space, 0, val);
}
}
else if (offset < 0xe0)
{
- k051649_test_w (k051649, offset, val);
+ k051649_test_w (k051649, space, offset, val);
}
}
}
@@ -2389,12 +2391,12 @@ MSX_SLOT_WRITE(soundcartridge)
}
else if (addr >= 0xb800 && state->m_cart.sccp.sccp_active)
{
- device_t *k051649 = space->machine().device("k051649");
+ device_t *k051649 = space.machine().device("k051649");
int offset = addr & 0xff;
if (offset < 0xa0)
{
- k052539_waveform_w (k051649, offset, val);
+ k052539_waveform_w (k051649, space, offset, val);
}
else if (offset < 0xc0)
{
@@ -2402,20 +2404,20 @@ MSX_SLOT_WRITE(soundcartridge)
if (offset < 0x0a)
{
- k051649_frequency_w (k051649, offset, val);
+ k051649_frequency_w (k051649, space, offset, val);
}
else if (offset < 0x0f)
{
- k051649_volume_w (k051649, offset - 0x0a, val);
+ k051649_volume_w (k051649, space, offset - 0x0a, val);
}
else if (offset == 0x0f)
{
- k051649_keyonoff_w (k051649, 0, val);
+ k051649_keyonoff_w (k051649, space, 0, val);
}
}
else if (offset < 0xe0)
{
- k051649_test_w (k051649, offset, val);
+ k051649_test_w (k051649, space, offset, val);
}
}
}
diff --git a/src/mess/machine/mtx.c b/src/mess/machine/mtx.c
index f9f868b04a8..0973f55ad14 100644
--- a/src/mess/machine/mtx.c
+++ b/src/mess/machine/mtx.c
@@ -118,7 +118,7 @@ READ8_DEVICE_HANDLER( mtx_sound_strobe_r )
{
mtx_state *state = device->machine().driver_data<mtx_state>();
- sn76496_w(device, 0, state->m_sound_latch);
+ sn76496_w(device, space, 0, state->m_sound_latch);
return 0xff;
}
diff --git a/src/mess/machine/mz700.c b/src/mess/machine/mz700.c
index fd4827bc2c5..4b3dfa1a6f9 100644
--- a/src/mess/machine/mz700.c
+++ b/src/mess/machine/mz700.c
@@ -36,10 +36,10 @@
} while (0)
-static READ8_DEVICE_HANDLER ( pio_port_b_r );
-static READ8_DEVICE_HANDLER ( pio_port_c_r );
-static WRITE8_DEVICE_HANDLER ( pio_port_a_w );
-static WRITE8_DEVICE_HANDLER ( pio_port_c_w );
+static DECLARE_READ8_DEVICE_HANDLER ( pio_port_b_r );
+static DECLARE_READ8_DEVICE_HANDLER ( pio_port_c_r );
+static DECLARE_WRITE8_DEVICE_HANDLER ( pio_port_a_w );
+static DECLARE_WRITE8_DEVICE_HANDLER ( pio_port_c_w );
I8255_INTERFACE( mz700_ppi8255_interface )
{
diff --git a/src/mess/machine/nes_pcb.c b/src/mess/machine/nes_pcb.c
index af45abbd1e8..c5e486f3938 100644
--- a/src/mess/machine/nes_pcb.c
+++ b/src/mess/machine/nes_pcb.c
@@ -1901,7 +1901,7 @@ static WRITE8_HANDLER( exrom_l_w )
/* Send $5000-$5015 to the sound chip */
if ((offset >= 0xf00) && (offset <= 0xf15))
{
- nes_psg_w(state->m_sound, offset & 0x1f, data);
+ nes_psg_w(state->m_sound, *space, offset & 0x1f, data);
return;
}
diff --git a/src/mess/machine/odyssey2.c b/src/mess/machine/odyssey2.c
index 5d876f834a5..ecfb69c6008 100644
--- a/src/mess/machine/odyssey2.c
+++ b/src/mess/machine/odyssey2.c
@@ -100,7 +100,7 @@ WRITE8_MEMBER(odyssey2_state::odyssey2_bus_w)
if ( offset & 0x80 ) {
if ( data & 0x20 ) {
logerror("voice write %02X, data = %02X (p1 = %02X)\n", offset, data, m_p1 );
- sp0256_ALD_w( machine().device("sp0256_speech"), 0, offset & 0x7F );
+ sp0256_ALD_w( machine().device("sp0256_speech"), space, 0, offset & 0x7F );
} else {
/* TODO: Reset sp0256 in this case */
}
diff --git a/src/mess/machine/omti8621.c b/src/mess/machine/omti8621.c
index a47754d57a5..64fa2891abc 100644
--- a/src/mess/machine/omti8621.c
+++ b/src/mess/machine/omti8621.c
@@ -1037,10 +1037,10 @@ WRITE16_DEVICE_HANDLER(omti8621_w ) {
switch (mem_mask) {
case 0x00ff:
- omti8621_w8(device, offset*2+1, data);
+ omti8621_w8(device, space, offset*2+1, data, mem_mask);
break;
case 0xff00:
- omti8621_w8(device, offset*2, data>>8);
+ omti8621_w8(device, space, offset*2, data>>8, mem_mask>>8);
break;
default:
LOG3(("writing OMTI 8621 Data Word Register to %0x = %04x & %04x", offset, data, mem_mask));
@@ -1054,10 +1054,10 @@ READ16_DEVICE_HANDLER( omti8621_r ) {
UINT16 data;
switch (mem_mask) {
case 0x00ff:
- data = omti8621_r8(device, offset*2+1);
+ data = omti8621_r8(device, space, offset*2+1, mem_mask);
break;
case 0xff00:
- data = omti8621_r8(device, offset*2) << 8;
+ data = omti8621_r8(device, space, offset*2, mem_mask >> 8) << 8;
break;
default:
data = get_data(state);
diff --git a/src/mess/machine/omti8621.h b/src/mess/machine/omti8621.h
index d0569cab71a..7a1a9a93ce3 100644
--- a/src/mess/machine/omti8621.h
+++ b/src/mess/machine/omti8621.h
@@ -39,8 +39,8 @@ struct omti8621_config {
FUNCTION PROTOTYPES
***************************************************************************/
-READ16_DEVICE_HANDLER( omti8621_r );
-WRITE16_DEVICE_HANDLER( omti8621_w );
+DECLARE_READ16_DEVICE_HANDLER( omti8621_r );
+DECLARE_WRITE16_DEVICE_HANDLER( omti8621_w );
void omti8621_set_verbose(int on_off);
diff --git a/src/mess/machine/oric.c b/src/mess/machine/oric.c
index 8f0887e87ca..4016fa0784c 100644
--- a/src/mess/machine/oric.c
+++ b/src/mess/machine/oric.c
@@ -137,7 +137,6 @@ WRITE8_MEMBER(oric_state::oric_psg_porta_write)
static READ8_DEVICE_HANDLER ( oric_via_in_a_func )
{
oric_state *state = device->machine().driver_data<oric_state>();
- address_space *space = device->machine().device( "maincpu")->memory().space( AS_PROGRAM );
/*logerror("port a read\r\n"); */
@@ -146,7 +145,7 @@ static READ8_DEVICE_HANDLER ( oric_via_in_a_func )
{
/* if psg is in read register state return reg data */
if (state->m_psg_control==0x01)
- return ay8910_r(space->machine().device("ay8912"), 0);
+ return ay8910_r(space.machine().device("ay8912"), space, 0);
/* return high-impedance */
return 0x0ff;
@@ -171,9 +170,9 @@ static READ8_DEVICE_HANDLER ( oric_via_in_b_func )
/* read/write data depending on state of bdir, bc1 pins and data output to psg */
-static void oric_psg_connection_refresh(running_machine &machine)
+static void oric_psg_connection_refresh(address_space &space)
{
- oric_state *state = machine.driver_data<oric_state>();
+ oric_state *state = space.machine().driver_data<oric_state>();
if (state->m_psg_control!=0)
{
switch (state->m_psg_control)
@@ -190,15 +189,15 @@ static void oric_psg_connection_refresh(running_machine &machine)
/* write register data */
case 2:
{
- device_t *ay8912 = machine.device("ay8912");
- ay8910_data_w(ay8912, 0, state->m_via_port_a_data);
+ device_t *ay8912 = space.machine().device("ay8912");
+ ay8910_data_w(ay8912, space, 0, state->m_via_port_a_data);
}
break;
/* write register index */
case 3:
{
- device_t *ay8912 = machine.device("ay8912");
- ay8910_address_w(ay8912, 0, state->m_via_port_a_data);
+ device_t *ay8912 = space.machine().device("ay8912");
+ ay8910_address_w(ay8912, space, 0, state->m_via_port_a_data);
}
break;
@@ -215,7 +214,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_a_func )
oric_state *state = device->machine().driver_data<oric_state>();
state->m_via_port_a_data = data;
- oric_psg_connection_refresh(device->machine());
+ oric_psg_connection_refresh(space);
if (state->m_psg_control==0)
@@ -302,7 +301,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_b_func )
/* centronics STROBE is connected to PB4 */
centronics->strobe_w(BIT(data, 4));
- oric_psg_connection_refresh(device->machine());
+ oric_psg_connection_refresh(space);
state->m_previous_portb_data = data;
}
@@ -327,7 +326,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_ca2_func )
if (data)
state->m_psg_control |=1;
- oric_psg_connection_refresh(device->machine());
+ oric_psg_connection_refresh(space);
}
static WRITE8_DEVICE_HANDLER ( oric_via_out_cb2_func )
@@ -338,7 +337,7 @@ static WRITE8_DEVICE_HANDLER ( oric_via_out_cb2_func )
if (data)
state->m_psg_control |=2;
- oric_psg_connection_refresh(device->machine());
+ oric_psg_connection_refresh(space);
}
@@ -680,16 +679,16 @@ READ8_MEMBER(oric_state::oric_jasmin_r)
{
/* jasmin floppy disc interface */
case 0x04:
- data = wd17xx_status_r(fdc, 0);
+ data = wd17xx_status_r(fdc, space, 0);
break;
case 0x05:
- data =wd17xx_track_r(fdc, 0);
+ data =wd17xx_track_r(fdc, space, 0);
break;
case 0x06:
- data = wd17xx_sector_r(fdc, 0);
+ data = wd17xx_sector_r(fdc, space, 0);
break;
case 0x07:
- data = wd17xx_data_r(fdc, 0);
+ data = wd17xx_data_r(fdc, space, 0);
break;
default:
data = via_0->read(space,offset & 0x0f);
@@ -709,16 +708,16 @@ WRITE8_MEMBER(oric_state::oric_jasmin_w)
{
/* microdisc floppy disc interface */
case 0x04:
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 0x05:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 0x06:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 0x07:
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
/* bit 0 = side */
case 0x08:
@@ -898,16 +897,16 @@ READ8_MEMBER(oric_state::oric_microdisc_r)
{
/* microdisc floppy disc interface */
case 0x00:
- data = wd17xx_status_r(fdc, 0);
+ data = wd17xx_status_r(fdc, space, 0);
break;
case 0x01:
- data =wd17xx_track_r(fdc, 0);
+ data =wd17xx_track_r(fdc, space, 0);
break;
case 0x02:
- data = wd17xx_sector_r(fdc, 0);
+ data = wd17xx_sector_r(fdc, space, 0);
break;
case 0x03:
- data = wd17xx_data_r(fdc, 0);
+ data = wd17xx_data_r(fdc, space, 0);
break;
case 0x04:
data = m_port_314_r | 0x07f;
@@ -937,16 +936,16 @@ WRITE8_MEMBER(oric_state::oric_microdisc_w)
{
/* microdisc floppy disc interface */
case 0x00:
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 0x01:
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 0x02:
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 0x03:
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
case 0x04:
{
diff --git a/src/mess/machine/orion.c b/src/mess/machine/orion.c
index b4e8f27e335..d2100d061f6 100644
--- a/src/mess/machine/orion.c
+++ b/src/mess/machine/orion.c
@@ -181,13 +181,13 @@ READ8_MEMBER(orion_state::orion128_floppy_r)
switch(offset)
{
case 0x0 :
- case 0x10 : return wd17xx_status_r(fdc,0);
+ case 0x10 : return wd17xx_status_r(fdc,space, 0);
case 0x1 :
- case 0x11 : return wd17xx_track_r(fdc,0);
+ case 0x11 : return wd17xx_track_r(fdc,space, 0);
case 0x2 :
- case 0x12 : return wd17xx_sector_r(fdc,0);
+ case 0x12 : return wd17xx_sector_r(fdc,space, 0);
case 0x3 :
- case 0x13 : return wd17xx_data_r(fdc,0);
+ case 0x13 : return wd17xx_data_r(fdc,space, 0);
}
return 0xff;
}
@@ -199,13 +199,13 @@ WRITE8_MEMBER(orion_state::orion128_floppy_w)
switch(offset)
{
case 0x0 :
- case 0x10 : wd17xx_command_w(fdc,0,data); break;
+ case 0x10 : wd17xx_command_w(fdc,space, 0,data); break;
case 0x1 :
- case 0x11 : wd17xx_track_w(fdc,0,data);break;
+ case 0x11 : wd17xx_track_w(fdc,space, 0,data);break;
case 0x2 :
- case 0x12 : wd17xx_sector_w(fdc,0,data);break;
+ case 0x12 : wd17xx_sector_w(fdc,space, 0,data);break;
case 0x3 :
- case 0x13 : wd17xx_data_w(fdc,0,data);break;
+ case 0x13 : wd17xx_data_w(fdc,space, 0,data);break;
case 0x4 :
case 0x14 :
case 0x20 : orion_disk_control_w(space, offset, data);break;
@@ -378,7 +378,7 @@ READ8_MEMBER(orion_state::orionz80_io_r)
{
if (offset == 0xFFFD)
{
- return ay8910_r (machine().device("ay8912"), 0);
+ return ay8910_r (machine().device("ay8912"), space, 0);
}
return 0xff;
}
@@ -396,10 +396,10 @@ WRITE8_MEMBER(orion_state::orionz80_io_w)
}
switch(offset)
{
- case 0xfffd : ay8910_address_w(machine().device("ay8912"), 0, data);
+ case 0xfffd : ay8910_address_w(machine().device("ay8912"), space, 0, data);
break;
case 0xbffd :
- case 0xbefd : ay8910_data_w(machine().device("ay8912"), 0, data);
+ case 0xbefd : ay8910_data_w(machine().device("ay8912"), space, 0, data);
break;
}
}
@@ -556,10 +556,10 @@ READ8_MEMBER(orion_state::orionpro_io_r)
case 0x08 : return m_orionpro_page;
case 0x09 : return m_orionpro_rom2_segment;
case 0x0a : return m_orionpro_dispatcher;
- case 0x10 : return wd17xx_status_r(fdc,0);
- case 0x11 : return wd17xx_track_r(fdc,0);
- case 0x12 : return wd17xx_sector_r(fdc,0);
- case 0x13 : return wd17xx_data_r(fdc,0);
+ case 0x10 : return wd17xx_status_r(fdc,space, 0);
+ case 0x11 : return wd17xx_track_r(fdc,space, 0);
+ case 0x12 : return wd17xx_sector_r(fdc,space, 0);
+ case 0x13 : return wd17xx_data_r(fdc,space, 0);
case 0x18 :
case 0x19 :
case 0x1a :
@@ -572,7 +572,7 @@ READ8_MEMBER(orion_state::orionpro_io_r)
}
if (offset == 0xFFFD)
{
- return ay8910_r (machine().device("ay8912"), 0);
+ return ay8910_r (machine().device("ay8912"), space, 0);
}
return 0xff;
}
@@ -589,10 +589,10 @@ WRITE8_MEMBER(orion_state::orionpro_io_w)
case 0x08 : m_orionpro_page = data; orionpro_bank_switch(machine()); break;
case 0x09 : m_orionpro_rom2_segment = data; orionpro_bank_switch(machine()); break;
case 0x0a : m_orionpro_dispatcher = data; orionpro_bank_switch(machine()); break;
- case 0x10 : wd17xx_command_w(fdc,0,data); break;
- case 0x11 : wd17xx_track_w(fdc,0,data);break;
- case 0x12 : wd17xx_sector_w(fdc,0,data);break;
- case 0x13 : wd17xx_data_w(fdc,0,data);break;
+ case 0x10 : wd17xx_command_w(fdc,space, 0,data); break;
+ case 0x11 : wd17xx_track_w(fdc,space, 0,data);break;
+ case 0x12 : wd17xx_sector_w(fdc,space, 0,data);break;
+ case 0x13 : wd17xx_data_w(fdc,space, 0,data);break;
case 0x14 : orion_disk_control_w(space, 9, data);break;
case 0x18 :
case 0x19 :
@@ -612,10 +612,10 @@ WRITE8_MEMBER(orion_state::orionpro_io_w)
}
switch(offset)
{
- case 0xfffd : ay8910_address_w(machine().device("ay8912"), 0, data);
+ case 0xfffd : ay8910_address_w(machine().device("ay8912"), space, 0, data);
break;
case 0xbffd :
- case 0xbefd : ay8910_data_w(machine().device("ay8912"), 0, data);
+ case 0xbefd : ay8910_data_w(machine().device("ay8912"), space, 0, data);
break;
}
}
diff --git a/src/mess/machine/osborne1.c b/src/mess/machine/osborne1.c
index 47d4cff7965..d67d9a11ba8 100644
--- a/src/mess/machine/osborne1.c
+++ b/src/mess/machine/osborne1.c
@@ -47,7 +47,7 @@ READ8_MEMBER( osborne1_state::osborne1_2000_r )
switch( offset & 0x0F00 )
{
case 0x100: /* Floppy */
- data = wd17xx_r( m_fdc, offset );
+ data = wd17xx_r( m_fdc, space, offset );
break;
case 0x200: /* Keyboard */
/* Row 0 */
@@ -96,7 +96,7 @@ WRITE8_MEMBER( osborne1_state::osborne1_2000_w )
switch( offset & 0x0F00 )
{
case 0x100: /* Floppy */
- wd17xx_w( m_fdc, offset, data );
+ wd17xx_w( m_fdc, space, offset, data );
break;
case 0x900: /* IEEE488 PIA */
m_pia0->write(space, offset & 0x03, data );
diff --git a/src/mess/machine/partner.c b/src/mess/machine/partner.c
index e96e5b61c04..a9d5b4d8066 100644
--- a/src/mess/machine/partner.c
+++ b/src/mess/machine/partner.c
@@ -84,11 +84,11 @@ READ8_MEMBER(partner_state::partner_floppy_r){
if (offset<0x100) {
switch(offset & 3) {
- case 0x00 : return wd17xx_status_r(fdc,0);
- case 0x01 : return wd17xx_track_r(fdc,0);
- case 0x02 : return wd17xx_sector_r(fdc,0);
+ case 0x00 : return wd17xx_status_r(fdc,space, 0);
+ case 0x01 : return wd17xx_track_r(fdc,space, 0);
+ case 0x02 : return wd17xx_sector_r(fdc,space, 0);
default :
- return wd17xx_data_r(fdc,0);
+ return wd17xx_data_r(fdc,space, 0);
}
} else {
return 0;
@@ -100,10 +100,10 @@ WRITE8_MEMBER(partner_state::partner_floppy_w){
if (offset<0x100) {
switch(offset & 3) {
- case 0x00 : wd17xx_command_w(fdc,0,data); break;
- case 0x01 : wd17xx_track_w(fdc,0,data);break;
- case 0x02 : wd17xx_sector_w(fdc,0,data);break;
- default : wd17xx_data_w(fdc,0,data);break;
+ case 0x00 : wd17xx_command_w(fdc,space, 0,data); break;
+ case 0x01 : wd17xx_track_w(fdc,space, 0,data);break;
+ case 0x02 : wd17xx_sector_w(fdc,space, 0,data);break;
+ default : wd17xx_data_w(fdc,space, 0,data);break;
}
} else {
floppy_mon_w(floppy_get_device(machine(), 0), 1);
diff --git a/src/mess/machine/pc.c b/src/mess/machine/pc.c
index 90e27b829ed..c3a2e8968d0 100644
--- a/src/mess/machine/pc.c
+++ b/src/mess/machine/pc.c
@@ -200,7 +200,7 @@ WRITE8_MEMBER(pc_state::pc_dma_write_byte)
static READ8_DEVICE_HANDLER( pc_dma8237_fdc_dack_r )
{
- return pc_fdc_dack_r(device->machine());
+ return pc_fdc_dack_r(device->machine(), space);
}
@@ -212,7 +212,7 @@ static READ8_DEVICE_HANDLER( pc_dma8237_hdc_dack_r )
static WRITE8_DEVICE_HANDLER( pc_dma8237_fdc_dack_w )
{
- pc_fdc_dack_w( device->machine(), data );
+ pc_fdc_dack_w( device->machine(), space, data );
}
diff --git a/src/mess/machine/pc_fdc.c b/src/mess/machine/pc_fdc.c
index fdf43632a86..8d2055d0161 100644
--- a/src/mess/machine/pc_fdc.c
+++ b/src/mess/machine/pc_fdc.c
@@ -194,7 +194,7 @@ static WRITE_LINE_DEVICE_HANDLER( pc_fdc_hw_interrupt )
-int pc_fdc_dack_r(running_machine &machine)
+int pc_fdc_dack_r(running_machine &machine, address_space &space)
{
int data;
@@ -204,7 +204,7 @@ int pc_fdc_dack_r(running_machine &machine)
/* if dma is not enabled, dacks are not acknowledged */
if ((fdc->digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0)
{
- data = upd765_dack_r(pc_get_device(machine), 0);
+ data = upd765_dack_r(pc_get_device(machine), space, 0);
}
return data;
@@ -212,13 +212,13 @@ int pc_fdc_dack_r(running_machine &machine)
-void pc_fdc_dack_w(running_machine &machine, int data)
+void pc_fdc_dack_w(running_machine &machine, address_space &space, int data)
{
/* if dma is not enabled, dacks are not issued */
if ((fdc->digital_output_register & PC_FDC_FLAGS_DOR_DMA_ENABLED)!=0)
{
/* dma acknowledge - and send byte to fdc */
- upd765_dack_w(pc_get_device(machine), 0,data);
+ upd765_dack_w(pc_get_device(machine), space, 0,data);
}
}
@@ -270,15 +270,15 @@ static void pc_fdc_data_rate_w(running_machine &machine, UINT8 data)
`------------------ 1 = turn floppy drive D motor on
*/
-static void pc_fdc_dor_w(running_machine &machine, UINT8 data)
+static WRITE8_HANDLER( pc_fdc_dor_w )
{
int selected_drive;
int floppy_count;
- floppy_count = floppy_get_count(machine);
+ floppy_count = floppy_get_count(space->machine());
if (floppy_count > (fdc->digital_output_register & 0x03))
- floppy_drive_set_ready_state(floppy_get_device(machine, fdc->digital_output_register & 0x03), 1, 0);
+ floppy_drive_set_ready_state(floppy_get_device(space->machine(), fdc->digital_output_register & 0x03), 1, 0);
fdc->digital_output_register = data;
@@ -286,34 +286,34 @@ static void pc_fdc_dor_w(running_machine &machine, UINT8 data)
/* set floppy drive motor state */
if (floppy_count > 0)
- floppy_mon_w(floppy_get_device(machine, 0), !BIT(data, 4));
+ floppy_mon_w(floppy_get_device(space->machine(), 0), !BIT(data, 4));
if (floppy_count > 1)
- floppy_mon_w(floppy_get_device(machine, 1), !BIT(data, 5));
+ floppy_mon_w(floppy_get_device(space->machine(), 1), !BIT(data, 5));
if (floppy_count > 2)
- floppy_mon_w(floppy_get_device(machine, 2), !BIT(data, 6));
+ floppy_mon_w(floppy_get_device(space->machine(), 2), !BIT(data, 6));
if (floppy_count > 3)
- floppy_mon_w(floppy_get_device(machine, 3), !BIT(data, 7));
+ floppy_mon_w(floppy_get_device(space->machine(), 3), !BIT(data, 7));
if ((data>>4) & (1<<selected_drive))
{
if (floppy_count > selected_drive)
- floppy_drive_set_ready_state(floppy_get_device(machine, selected_drive), 1, 0);
+ floppy_drive_set_ready_state(floppy_get_device(space->machine(), selected_drive), 1, 0);
}
/* changing the DMA enable bit, will affect the terminal count state
from reaching the fdc - if dma is enabled this will send it through
otherwise it will be ignored */
- pc_fdc_set_tc_state(machine, fdc->tc_state);
+ pc_fdc_set_tc_state(space->machine(), fdc->tc_state);
/* changing the DMA enable bit, will affect the dma drq state
from reaching us - if dma is enabled this will send it through
otherwise it will be ignored */
- pc_fdc_hw_dma_drq(pc_get_device(machine), fdc->dma_state);
+ pc_fdc_hw_dma_drq(pc_get_device(space->machine()), fdc->dma_state);
/* changing the DMA enable bit, will affect the irq state
from reaching us - if dma is enabled this will send it through
otherwise it will be ignored */
- pc_fdc_hw_interrupt(pc_get_device(machine), fdc->int_state);
+ pc_fdc_hw_interrupt(pc_get_device(space->machine()), fdc->int_state);
/* reset? */
if ((fdc->digital_output_register & PC_FDC_FLAGS_DOR_FDC_ENABLED)==0)
@@ -336,17 +336,17 @@ static void pc_fdc_dor_w(running_machine &machine, UINT8 data)
what is not yet clear is if this is a result of the drives ready state
changing...
*/
- upd765_ready_w(pc_get_device(machine),1);
+ upd765_ready_w(pc_get_device(space->machine()),1);
/* set FDC at reset */
- upd765_reset_w(pc_get_device(machine), 1);
+ upd765_reset_w(pc_get_device(space->machine()), 1);
}
else
{
- pc_fdc_set_tc_state(machine, 0);
+ pc_fdc_set_tc_state(space->machine(), 0);
/* release reset on fdc */
- upd765_reset_w(pc_get_device(machine), 0);
+ upd765_reset_w(pc_get_device(space->machine()), 0);
}
}
@@ -377,20 +377,20 @@ static TIMER_CALLBACK( watchdog_timeout )
}
}
-static void pcjr_fdc_dor_w(running_machine &machine, UINT8 data)
+static WRITE8_HANDLER( pcjr_fdc_dor_w )
{
int floppy_count;
- floppy_count = floppy_get_count(machine);
+ floppy_count = floppy_get_count(space->machine());
/* set floppy drive motor state */
if (floppy_count > 0)
- floppy_mon_w(floppy_get_device(machine, 0), BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE);
+ floppy_mon_w(floppy_get_device(space->machine(), 0), BIT(data, 0) ? CLEAR_LINE : ASSERT_LINE);
if ( data & 0x01 )
{
if ( floppy_count )
- floppy_drive_set_ready_state(floppy_get_device(machine, 0), 1, 0);
+ floppy_drive_set_ready_state(floppy_get_device(space->machine(), 0), 1, 0);
}
/* Is the watchdog timer disabled */
@@ -399,7 +399,7 @@ static void pcjr_fdc_dor_w(running_machine &machine, UINT8 data)
fdc->watchdog->adjust( attotime::never );
if ( fdc->fdc_interface.pc_fdc_interrupt )
{
- fdc->fdc_interface.pc_fdc_interrupt(machine, 0 );
+ fdc->fdc_interface.pc_fdc_interrupt(space->machine(), 0 );
}
} else {
/* Check for 1->0 watchdog trigger */
@@ -431,17 +431,17 @@ static void pcjr_fdc_dor_w(running_machine &machine, UINT8 data)
what is not yet clear is if this is a result of the drives ready state
changing...
*/
- upd765_ready_w(pc_get_device(machine),1);
+ upd765_ready_w(pc_get_device(space->machine()),1);
/* set FDC at reset */
- upd765_reset_w(pc_get_device(machine), 1);
+ upd765_reset_w(pc_get_device(space->machine()), 1);
}
else
{
- pc_fdc_set_tc_state(machine, 0);
+ pc_fdc_set_tc_state(space->machine(), 0);
/* release reset on fdc */
- upd765_reset_w(pc_get_device(machine), 0);
+ upd765_reset_w(pc_get_device(space->machine()), 0);
}
logerror("pcjr_fdc_dor_w: changing dor from %02x to %02x\n", fdc->digital_output_register, data);
@@ -498,10 +498,10 @@ READ8_HANDLER ( pc_fdc_r )
case 3: /* tape drive select? */
break;
case 4:
- data = upd765_status_r(pc_get_device(space->machine()), 0);
+ data = upd765_status_r(pc_get_device(space->machine()), *space, 0);
break;
case 5:
- data = upd765_data_r(pc_get_device(space->machine()), offset);
+ data = upd765_data_r(pc_get_device(space->machine()), *space, offset);
break;
case 6: /* FDC reserved */
break;
@@ -531,7 +531,7 @@ WRITE8_HANDLER ( pc_fdc_w )
case 1: /* n/a */
break;
case 2:
- pc_fdc_dor_w(space->machine(), data);
+ pc_fdc_dor_w(space, 0, data);
break;
case 3:
/* tape drive select? */
@@ -540,7 +540,7 @@ WRITE8_HANDLER ( pc_fdc_w )
pc_fdc_data_rate_w(space->machine(), data);
break;
case 5:
- upd765_data_w(pc_get_device(space->machine()), 0, data);
+ upd765_data_w(pc_get_device(space->machine()), *space, 0, data);
break;
case 6:
/* FDC reserved */
@@ -568,7 +568,7 @@ WRITE8_HANDLER ( pcjr_fdc_w )
switch(offset)
{
case 2:
- pcjr_fdc_dor_w( space->machine(), data );
+ pcjr_fdc_dor_w( space, 0, data );
break;
case 4:
case 7:
diff --git a/src/mess/machine/pc_fdc.h b/src/mess/machine/pc_fdc.h
index e60738869aa..9317fea12a2 100644
--- a/src/mess/machine/pc_fdc.h
+++ b/src/mess/machine/pc_fdc.h
@@ -40,8 +40,8 @@ extern const upd765_interface pcjr_fdc_upd765_interface;
void pc_fdc_reset(running_machine &machine);
void pc_fdc_init(running_machine &machine, const struct pc_fdc_interface *iface);
void pc_fdc_set_tc_state(running_machine &machine, int state);
-int pc_fdc_dack_r(running_machine &machine);
-void pc_fdc_dack_w(running_machine &machine, int);
+int pc_fdc_dack_r(running_machine &machine, address_space &space);
+void pc_fdc_dack_w(running_machine &machine, address_space &space, int data);
READ8_HANDLER(pc_fdc_r);
WRITE8_HANDLER(pc_fdc_w);
diff --git a/src/mess/machine/pc_lpt.c b/src/mess/machine/pc_lpt.c
index a0f36f7be87..5abda63561c 100644
--- a/src/mess/machine/pc_lpt.c
+++ b/src/mess/machine/pc_lpt.c
@@ -204,9 +204,9 @@ READ8_DEVICE_HANDLER( pc_lpt_r )
{
switch (offset)
{
- case 0: return pc_lpt_data_r(device, 0);
- case 1: return pc_lpt_status_r(device, 0);
- case 2: return pc_lpt_control_r(device, 0);
+ case 0: return pc_lpt_data_r(device, space, 0);
+ case 1: return pc_lpt_status_r(device, space, 0);
+ case 2: return pc_lpt_control_r(device, space, 0);
}
/* if we reach this its an error */
@@ -220,9 +220,9 @@ WRITE8_DEVICE_HANDLER( pc_lpt_w )
{
switch (offset)
{
- case 0: pc_lpt_data_w(device, 0, data); break;
+ case 0: pc_lpt_data_w(device, space, 0, data); break;
case 1: break;
- case 2: pc_lpt_control_w(device, 0, data); break;
+ case 2: pc_lpt_control_w(device, space, 0, data); break;
}
}
diff --git a/src/mess/machine/pc_lpt.h b/src/mess/machine/pc_lpt.h
index 5c955ba5007..c29946ed9b5 100644
--- a/src/mess/machine/pc_lpt.h
+++ b/src/mess/machine/pc_lpt.h
@@ -24,14 +24,14 @@ struct pc_lpt_interface
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( pc_lpt_r );
-WRITE8_DEVICE_HANDLER( pc_lpt_w );
-
-READ8_DEVICE_HANDLER( pc_lpt_data_r );
-WRITE8_DEVICE_HANDLER( pc_lpt_data_w );
-READ8_DEVICE_HANDLER( pc_lpt_status_r );
-READ8_DEVICE_HANDLER( pc_lpt_control_r );
-WRITE8_DEVICE_HANDLER( pc_lpt_control_w );
+DECLARE_READ8_DEVICE_HANDLER( pc_lpt_r );
+DECLARE_WRITE8_DEVICE_HANDLER( pc_lpt_w );
+
+DECLARE_READ8_DEVICE_HANDLER( pc_lpt_data_r );
+DECLARE_WRITE8_DEVICE_HANDLER( pc_lpt_data_w );
+DECLARE_READ8_DEVICE_HANDLER( pc_lpt_status_r );
+DECLARE_READ8_DEVICE_HANDLER( pc_lpt_control_r );
+DECLARE_WRITE8_DEVICE_HANDLER( pc_lpt_control_w );
/***************************************************************************
diff --git a/src/mess/machine/pk8020.c b/src/mess/machine/pk8020.c
index 4977883caf8..31140974e4f 100644
--- a/src/mess/machine/pk8020.c
+++ b/src/mess/machine/pk8020.c
@@ -164,7 +164,7 @@ READ8_MEMBER(pk8020_state::devices_r)
switch(offset & 0x38)
{
- case 0x00: return pit8253_r(pit,offset & 3);
+ case 0x00: return pit8253_r(pit,space, offset & 3);
case 0x08: return ppi3->read(space,offset & 3);
case 0x10: switch(offset & 1) {
case 0 : return rs232->data_r(space,0);
@@ -172,10 +172,10 @@ READ8_MEMBER(pk8020_state::devices_r)
}
break;
case 0x18: switch(offset & 3) {
- case 0 : return wd17xx_status_r(fdc,0);
- case 1 : return wd17xx_track_r(fdc,0);
- case 2 : return wd17xx_sector_r(fdc,0);
- case 3 : return wd17xx_data_r(fdc,0);
+ case 0 : return wd17xx_status_r(fdc,space, 0);
+ case 1 : return wd17xx_track_r(fdc,space, 0);
+ case 2 : return wd17xx_sector_r(fdc,space, 0);
+ case 3 : return wd17xx_data_r(fdc,space, 0);
}
break;
case 0x20: switch(offset & 1) {
@@ -183,7 +183,7 @@ READ8_MEMBER(pk8020_state::devices_r)
case 1 : return lan->status_r(space,0);
}
break;
- case 0x28: return pic8259_r(pic,offset & 1);
+ case 0x28: return pic8259_r(pic,space, offset & 1);
case 0x30: return ppi2->read(space,offset & 3);
case 0x38: return ppi1->read(space,offset & 3);
}
@@ -203,7 +203,7 @@ WRITE8_MEMBER(pk8020_state::devices_w)
switch(offset & 0x38)
{
- case 0x00: pit8253_w(pit,offset & 3,data); break;
+ case 0x00: pit8253_w(pit,space, offset & 3,data); break;
case 0x08: ppi3->write(space,offset & 3,data); break;
case 0x10: switch(offset & 1) {
case 0 : rs232->data_w(space,0,data); break;
@@ -211,10 +211,10 @@ WRITE8_MEMBER(pk8020_state::devices_w)
}
break;
case 0x18: switch(offset & 3) {
- case 0 : wd17xx_command_w(fdc,0,data);break;
- case 1 : wd17xx_track_w(fdc,0,data);break;
- case 2 : wd17xx_sector_w(fdc,0,data);break;
- case 3 : wd17xx_data_w(fdc,0,data);break;
+ case 0 : wd17xx_command_w(fdc,space, 0,data);break;
+ case 1 : wd17xx_track_w(fdc,space, 0,data);break;
+ case 2 : wd17xx_sector_w(fdc,space, 0,data);break;
+ case 3 : wd17xx_data_w(fdc,space, 0,data);break;
}
break;
case 0x20: switch(offset & 1) {
@@ -222,7 +222,7 @@ WRITE8_MEMBER(pk8020_state::devices_w)
case 1 : lan->control_w(space,0,data); break;
}
break;
- case 0x28: pic8259_w(pic,offset & 1,data);break;
+ case 0x28: pic8259_w(pic,space, offset & 1,data);break;
case 0x30: ppi2->write(space,offset & 3,data); break;
case 0x38: ppi1->write(space,offset & 3,data); break;
}
diff --git a/src/mess/machine/pmd85.c b/src/mess/machine/pmd85.c
index 8e7425cce64..7367082e900 100644
--- a/src/mess/machine/pmd85.c
+++ b/src/mess/machine/pmd85.c
@@ -568,7 +568,7 @@ READ8_MEMBER(pmd85_state::pmd85_io_r)
case 0x40: /* 8255 (GPIO/0, GPIO/1) */
return machine().device<i8255_device>("ppi8255_1")->read(space, offset & 0x03);
case 0x50: /* 8253 */
- return pit8253_r( machine().device("pit8253"), offset & 0x03);
+ return pit8253_r( machine().device("pit8253"), space, offset & 0x03);
case 0x70: /* 8255 (IMS-2) */
return machine().device<i8255_device>("ppi8255_2")->read(space, offset & 0x03);
}
@@ -645,7 +645,7 @@ WRITE8_MEMBER(pmd85_state::pmd85_io_w)
machine().device<i8255_device>("ppi8255_1")->write(space, offset & 0x03, data);
break;
case 0x50: /* 8253 */
- pit8253_w(machine().device("pit8253"), offset & 0x03, data);
+ pit8253_w(machine().device("pit8253"), space, offset & 0x03, data);
logerror ("8253 writing. Address: %02x, Data: %02x\n", offset, data);
break;
case 0x70: /* 8255 (IMS-2) */
diff --git a/src/mess/machine/rmnimbus.c b/src/mess/machine/rmnimbus.c
index 73780c9d6a4..e3ff3805861 100644
--- a/src/mess/machine/rmnimbus.c
+++ b/src/mess/machine/rmnimbus.c
@@ -67,10 +67,10 @@ even if you have to use unusual geometry to do so !
#include "includes/rmnimbus.h"
-static void sio_interrupt(device_t *device, int state);
-//static WRITE8_DEVICE_HANDLER( sio_dtr_w );
-static WRITE8_DEVICE_HANDLER( sio_serial_transmit );
-static int sio_serial_receive( device_t *device, int channel );
+static WRITE_LINE_DEVICE_HANDLER( sio_interrupt );
+//static DECLARE_WRITE8_DEVICE_HANDLER( sio_dtr_w );
+static DECLARE_WRITE16_DEVICE_HANDLER( sio_serial_transmit );
+static DECLARE_READ16_DEVICE_HANDLER( sio_serial_receive );
/*-------------------------------------------------------------------------*/
@@ -113,12 +113,12 @@ static int sio_serial_receive( device_t *device, int channel );
const z80sio_interface nimbus_sio_intf =
{
- sio_interrupt, /* interrupt handler */
- 0, //sio_dtr_w, /* DTR changed handler */
- 0, /* RTS changed handler */
- 0, /* BREAK changed handler */
- sio_serial_transmit, /* transmit handler */
- sio_serial_receive /* receive handler */
+ DEVCB_LINE(sio_interrupt), /* interrupt handler */
+ DEVCB_NULL, //sio_dtr_w, /* DTR changed handler */
+ DEVCB_NULL, /* RTS changed handler */
+ DEVCB_NULL, /* BREAK changed handler */
+ DEVCB_HANDLER(sio_serial_transmit), /* transmit handler */
+ DEVCB_HANDLER(sio_serial_receive) /* receive handler */
};
/* Floppy drives WD2793 */
@@ -2194,7 +2194,7 @@ Z80SIO, used for the keyboard interface
/* Z80 SIO/2 */
-static void sio_interrupt(device_t *device, int state)
+static WRITE_LINE_DEVICE_HANDLER( sio_interrupt )
{
rmnimbus_state *drvstate = device->machine().driver_data<rmnimbus_state>();
if(LOG_SIO)
@@ -2219,13 +2219,13 @@ WRITE8_DEVICE_HANDLER( sio_dtr_w )
}
#endif
-static WRITE8_DEVICE_HANDLER( sio_serial_transmit )
+static WRITE16_DEVICE_HANDLER( sio_serial_transmit )
{
}
-static int sio_serial_receive( device_t *device, int channel )
+static READ16_DEVICE_HANDLER( sio_serial_receive )
{
- if(channel==0)
+ if(offset==0)
{
return keyboard_queue_read(device->machine());
}
@@ -2320,17 +2320,17 @@ READ8_MEMBER(rmnimbus_state::nimbus_disk_r)
switch(offset*2)
{
case 0x08 :
- result = wd17xx_status_r(fdc, 0);
+ result = wd17xx_status_r(fdc, space, 0);
if (LOG_DISK_FDD) logerror("Disk status=%2.2X\n",result);
break;
case 0x0A :
- result = wd17xx_track_r(fdc, 0);
+ result = wd17xx_track_r(fdc, space, 0);
break;
case 0x0C :
- result = wd17xx_sector_r(fdc, 0);
+ result = wd17xx_sector_r(fdc, space, 0);
break;
case 0x0E :
- result = wd17xx_data_r(fdc, 0);
+ result = wd17xx_data_r(fdc, space, 0);
break;
case 0x10 :
m_nimbus_drives.reg410_in &= ~FDC_BITS_410;
@@ -2406,16 +2406,16 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_disk_w)
break;
case 0x08 :
- wd17xx_command_w(fdc, 0, data);
+ wd17xx_command_w(fdc, space, 0, data);
break;
case 0x0A :
- wd17xx_track_w(fdc, 0, data);
+ wd17xx_track_w(fdc, space, 0, data);
break;
case 0x0C :
- wd17xx_sector_w(fdc, 0, data);
+ wd17xx_sector_w(fdc, space, 0, data);
break;
case 0x0E :
- wd17xx_data_w(fdc, 0, data);
+ wd17xx_data_w(fdc, space, 0, data);
break;
case 0x10 :
hdc_ctrl_write(machine(),data);
@@ -2774,7 +2774,7 @@ READ8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_r)
UINT8 result=0;
if ((offset*2)==0)
- result=ay8910_r(ay8910,0);
+ result=ay8910_r(ay8910,space, 0);
return result;
}
@@ -2789,8 +2789,8 @@ WRITE8_MEMBER(rmnimbus_state::nimbus_sound_ay8910_w)
switch (offset*2)
{
- case 0x00 : ay8910_data_address_w(ay8910, 1, data); break;
- case 0x02 : ay8910_data_address_w(ay8910, 0, data); break;
+ case 0x00 : ay8910_data_address_w(ay8910, space, 1, data); break;
+ case 0x02 : ay8910_data_address_w(ay8910, space, 0, data); break;
}
}
diff --git a/src/mess/machine/s100.c b/src/mess/machine/s100.c
index 22286546e42..a8cef102d2c 100644
--- a/src/mess/machine/s100.c
+++ b/src/mess/machine/s100.c
@@ -181,7 +181,7 @@ READ8_MEMBER( s100_device::smemr_r )
while (entry)
{
- data |= entry->s100_smemr_r(offset);
+ data |= entry->s100_smemr_r(space, offset);
entry = entry->next();
}
@@ -199,7 +199,7 @@ WRITE8_MEMBER( s100_device::mwrt_w )
while (entry)
{
- entry->s100_mwrt_w(offset, data);
+ entry->s100_mwrt_w(space, offset, data);
entry = entry->next();
}
}
@@ -217,7 +217,7 @@ READ8_MEMBER( s100_device::sinp_r )
while (entry)
{
- data |= entry->s100_sinp_r(offset);
+ data |= entry->s100_sinp_r(space, offset);
entry = entry->next();
}
@@ -235,7 +235,7 @@ WRITE8_MEMBER( s100_device::sout_w )
while (entry)
{
- entry->s100_sout_w(offset, data);
+ entry->s100_sout_w(space, offset, data);
entry = entry->next();
}
}
diff --git a/src/mess/machine/s100.h b/src/mess/machine/s100.h
index 72daae09b34..64d788a246e 100644
--- a/src/mess/machine/s100.h
+++ b/src/mess/machine/s100.h
@@ -266,12 +266,12 @@ public:
virtual void s100_vi7_w(int state) { };
// memory access
- virtual UINT8 s100_smemr_r(offs_t offset) { return 0; };
- virtual void s100_mwrt_w(offs_t offset, UINT8 data) { };
+ virtual UINT8 s100_smemr_r(address_space &space, offs_t offset) { return 0; };
+ virtual void s100_mwrt_w(address_space &space, offs_t offset, UINT8 data) { };
// I/O access
- virtual UINT8 s100_sinp_r(offs_t offset) { return 0; };
- virtual void s100_sout_w(offs_t offset, UINT8 data) { };
+ virtual UINT8 s100_sinp_r(address_space &space, offs_t offset) { return 0; };
+ virtual void s100_sout_w(address_space &space, offs_t offset, UINT8 data) { };
// configuration access
virtual void s100_phlda_w(int state) { }
diff --git a/src/mess/machine/s100_dj2db.c b/src/mess/machine/s100_dj2db.c
index abe840fafcc..7691a14c1ce 100644
--- a/src/mess/machine/s100_dj2db.c
+++ b/src/mess/machine/s100_dj2db.c
@@ -304,7 +304,7 @@ void s100_dj2db_device::device_reset()
// s100_smemr_r - memory read
//-------------------------------------------------
-UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset)
+UINT8 s100_dj2db_device::s100_smemr_r(address_space &space, offs_t offset)
{
UINT8 data = 0;
@@ -365,7 +365,7 @@ UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset)
{
m_s100->rdy_w(ASSERT_LINE);
- data = wd17xx_r(m_fdc, offset & 0x03);
+ data = wd17xx_r(m_fdc, space, offset & 0x03);
}
else if ((offset >= 0xfc00) && (offset < 0x10000))
{
@@ -385,7 +385,7 @@ UINT8 s100_dj2db_device::s100_smemr_r(offs_t offset)
// s100_mwrt_w - memory write
//-------------------------------------------------
-void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data)
+void s100_dj2db_device::s100_mwrt_w(address_space &space, offs_t offset, UINT8 data)
{
// if (!(m_board_enbl & m_phantom)) return;
@@ -459,7 +459,7 @@ void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data)
}
else if ((offset >= 0xfbfc) && (offset < 0xfc00))
{
- wd17xx_w(m_fdc, offset & 0x03, data);
+ wd17xx_w(m_fdc, space, offset & 0x03, data);
}
else if ((offset >= 0xfc00) && (offset < 0x10000))
{
@@ -472,7 +472,7 @@ void s100_dj2db_device::s100_mwrt_w(offs_t offset, UINT8 data)
// s100_sinp_r - I/O read
//-------------------------------------------------
-UINT8 s100_dj2db_device::s100_sinp_r(offs_t offset)
+UINT8 s100_dj2db_device::s100_sinp_r(address_space &space, offs_t offset)
{
return 0;
}
@@ -482,7 +482,7 @@ UINT8 s100_dj2db_device::s100_sinp_r(offs_t offset)
// s100_sout_w - I/O write
//-------------------------------------------------
-void s100_dj2db_device::s100_sout_w(offs_t offset, UINT8 data)
+void s100_dj2db_device::s100_sout_w(address_space &space, offs_t offset, UINT8 data)
{
if (offset == 0x41)
{
diff --git a/src/mess/machine/s100_dj2db.h b/src/mess/machine/s100_dj2db.h
index eef58252923..3bc3b53a259 100644
--- a/src/mess/machine/s100_dj2db.h
+++ b/src/mess/machine/s100_dj2db.h
@@ -51,10 +51,10 @@ protected:
virtual void device_config_complete() { m_shortname = "dj2db"; }
// device_s100_card_interface overrides
- virtual UINT8 s100_smemr_r(offs_t offset);
- virtual void s100_mwrt_w(offs_t offset, UINT8 data);
- virtual UINT8 s100_sinp_r(offs_t offset);
- virtual void s100_sout_w(offs_t offset, UINT8 data);
+ virtual UINT8 s100_smemr_r(address_space &space, offs_t offset);
+ virtual void s100_mwrt_w(address_space &space, offs_t offset, UINT8 data);
+ virtual UINT8 s100_sinp_r(address_space &space, offs_t offset);
+ virtual void s100_sout_w(address_space &space, offs_t offset, UINT8 data);
virtual void s100_phantom_w(int state);
virtual bool s100_has_terminal() { return true; }
virtual void s100_terminal_w(UINT8 data);
diff --git a/src/mess/machine/s100_mm65k16s.c b/src/mess/machine/s100_mm65k16s.c
index 45787e161ae..f12a5afc4a2 100644
--- a/src/mess/machine/s100_mm65k16s.c
+++ b/src/mess/machine/s100_mm65k16s.c
@@ -234,7 +234,7 @@ void s100_mm65k16s_device::device_reset()
// s100_smemr_r - memory read
//-------------------------------------------------
-UINT8 s100_mm65k16s_device::s100_smemr_r(offs_t offset)
+UINT8 s100_mm65k16s_device::s100_smemr_r(address_space &space, offs_t offset)
{
UINT8 data = 0;
@@ -251,7 +251,7 @@ UINT8 s100_mm65k16s_device::s100_smemr_r(offs_t offset)
// s100_mwrt_w - memory write
//-------------------------------------------------
-void s100_mm65k16s_device::s100_mwrt_w(offs_t offset, UINT8 data)
+void s100_mm65k16s_device::s100_mwrt_w(address_space &space, offs_t offset, UINT8 data)
{
if (offset < 0xf800)
{
diff --git a/src/mess/machine/s100_mm65k16s.h b/src/mess/machine/s100_mm65k16s.h
index 7632c603846..5dbf3821f0e 100644
--- a/src/mess/machine/s100_mm65k16s.h
+++ b/src/mess/machine/s100_mm65k16s.h
@@ -41,8 +41,8 @@ protected:
virtual void device_config_complete() { m_shortname = "mm65k16s"; }
// device_s100_card_interface overrides
- virtual UINT8 s100_smemr_r(offs_t offset);
- virtual void s100_mwrt_w(offs_t offset, UINT8 data);
+ virtual UINT8 s100_smemr_r(address_space &space, offs_t offset);
+ virtual void s100_mwrt_w(address_space &space, offs_t offset, UINT8 data);
virtual void s100_phantom_w(int state);
private:
diff --git a/src/mess/machine/s100_wunderbus.c b/src/mess/machine/s100_wunderbus.c
index 1850b5dea6f..15e07c1180c 100644
--- a/src/mess/machine/s100_wunderbus.c
+++ b/src/mess/machine/s100_wunderbus.c
@@ -327,7 +327,7 @@ void s100_wunderbus_device::s100_vi2_w(int state)
// s100_sinp_r - I/O read
//-------------------------------------------------
-UINT8 s100_wunderbus_device::s100_sinp_r(offs_t offset)
+UINT8 s100_wunderbus_device::s100_sinp_r(address_space &space, offs_t offset)
{
UINT8 address = (ioport("7C")->read() & 0x3e) << 2;
if ((offset & 0xf8) != address) return 0;
@@ -406,7 +406,7 @@ UINT8 s100_wunderbus_device::s100_sinp_r(offs_t offset)
case 4: // 8259 0 register
case 5: // 8259 1 register
- data = pic8259_r(m_pic, offset & 0x01);
+ data = pic8259_r(m_pic, space, offset & 0x01);
break;
case 6: // not used
@@ -436,7 +436,7 @@ UINT8 s100_wunderbus_device::s100_sinp_r(offs_t offset)
// s100_sout_w - I/O write
//-------------------------------------------------
-void s100_wunderbus_device::s100_sout_w(offs_t offset, UINT8 data)
+void s100_wunderbus_device::s100_sout_w(address_space &space, offs_t offset, UINT8 data)
{
UINT8 address = (ioport("7C")->read() & 0x3e) << 2;
if ((offset & 0xf8) != address) return;
@@ -515,7 +515,7 @@ void s100_wunderbus_device::s100_sout_w(offs_t offset, UINT8 data)
case 4: // 8259 0 register
case 5: // 8259 1 register
- pic8259_w(m_pic, offset & 0x01, data);
+ pic8259_w(m_pic, space, offset & 0x01, data);
break;
case 6: // Par. port cntrl.
diff --git a/src/mess/machine/s100_wunderbus.h b/src/mess/machine/s100_wunderbus.h
index f5689925def..95bbadc5c37 100644
--- a/src/mess/machine/s100_wunderbus.h
+++ b/src/mess/machine/s100_wunderbus.h
@@ -56,8 +56,8 @@ protected:
virtual void s100_vi0_w(int state);
virtual void s100_vi1_w(int state);
virtual void s100_vi2_w(int state);
- virtual UINT8 s100_sinp_r(offs_t offset);
- virtual void s100_sout_w(offs_t offset, UINT8 data);
+ virtual UINT8 s100_sinp_r(address_space &space, offs_t offset);
+ virtual void s100_sout_w(address_space &space, offs_t offset, UINT8 data);
virtual bool s100_has_terminal() { return true; }
virtual void s100_terminal_w(UINT8 data);
diff --git a/src/mess/machine/s3c44b0.c b/src/mess/machine/s3c44b0.c
index 47d271dcd96..a23d564936f 100644
--- a/src/mess/machine/s3c44b0.c
+++ b/src/mess/machine/s3c44b0.c
@@ -1601,12 +1601,12 @@ static TIMER_CALLBACK( s3c44b0_sio_timer_exp )
/* IIS */
-INLINE void iface_i2s_data_w( device_t *device, int ch, UINT16 data)
+INLINE void iface_i2s_data_w( device_t *device, address_space &space, int ch, UINT16 data)
{
s3c44b0_t *s3c44b0 = get_token( device);
if (s3c44b0->iface->i2s.data_w)
{
- (s3c44b0->iface->i2s.data_w)( device, ch, data, 0);
+ (s3c44b0->iface->i2s.data_w)( device, space, ch, data, 0);
}
}
@@ -1677,8 +1677,8 @@ static WRITE32_DEVICE_HANDLER( s3c44b0_iis_w )
if (s3c44b0->iis.fifo_index == 2)
{
s3c44b0->iis.fifo_index = 0;
- iface_i2s_data_w( device, 0, s3c44b0->iis.fifo[0]);
- iface_i2s_data_w( device, 1, s3c44b0->iis.fifo[1]);
+ iface_i2s_data_w( device, space, 0, s3c44b0->iis.fifo[0]);
+ iface_i2s_data_w( device, space, 1, s3c44b0->iis.fifo[1]);
}
}
break;
diff --git a/src/mess/machine/sc499.h b/src/mess/machine/sc499.h
index 90c43b7c55e..ce1d2f06d29 100644
--- a/src/mess/machine/sc499.h
+++ b/src/mess/machine/sc499.h
@@ -20,8 +20,8 @@
FUNCTION PROTOTYPES
***************************************************************************/
-READ8_DEVICE_HANDLER( sc499_r );
-WRITE8_DEVICE_HANDLER( sc499_w );
+DECLARE_READ8_DEVICE_HANDLER( sc499_r );
+DECLARE_WRITE8_DEVICE_HANDLER( sc499_w );
void sc499_set_tc_state(running_machine *machine, int state);
UINT8 sc499_dack_r(running_machine *machine);
diff --git a/src/mess/machine/sms.c b/src/mess/machine/sms.c
index 2c4683dd35b..67081761ddc 100644
--- a/src/mess/machine/sms.c
+++ b/src/mess/machine/sms.c
@@ -859,7 +859,7 @@ WRITE8_MEMBER(sms_state::sms_ym2413_register_port_0_w)
{
if (m_has_fm)
- ym2413_w(m_ym, 0, (data & 0x3f));
+ ym2413_w(m_ym, space, 0, (data & 0x3f));
}
@@ -869,7 +869,7 @@ WRITE8_MEMBER(sms_state::sms_ym2413_data_port_0_w)
if (m_has_fm)
{
logerror("data_port_0_w %x %x\n", offset, data);
- ym2413_w(m_ym, 1, data);
+ ym2413_w(m_ym, space, 1, data);
}
}
diff --git a/src/mess/machine/southbridge.c b/src/mess/machine/southbridge.c
index 0dc4950c43d..77d786cf5ce 100644
--- a/src/mess/machine/southbridge.c
+++ b/src/mess/machine/southbridge.c
@@ -467,12 +467,12 @@ WRITE_LINE_MEMBER( southbridge_device::at_mc146818_irq )
READ8_MEMBER( southbridge_device::at_dma8237_2_r )
{
- return i8237_r( m_dma8237_2, offset / 2);
+ return i8237_r( m_dma8237_2, space, offset / 2);
}
WRITE8_MEMBER( southbridge_device::at_dma8237_2_w )
{
- i8237_w( m_dma8237_2, offset / 2, data);
+ i8237_w( m_dma8237_2, space, offset / 2, data);
}
READ8_MEMBER( southbridge_device::at_keybc_r )
diff --git a/src/mess/machine/super80.c b/src/mess/machine/super80.c
index 40079041259..16e467af556 100644
--- a/src/mess/machine/super80.c
+++ b/src/mess/machine/super80.c
@@ -94,7 +94,7 @@ static TIMER_CALLBACK( super80_timer )
state->m_cass_data[1] = 0;
}
- state->m_pio->port_b_write(pio_port_b_r(state->m_pio,0));
+ state->m_pio->port_b_write(pio_port_b_r(state->m_pio,state->generic_space(),0,0xff));
}
/* after the first 4 bytes have been read from ROM, switch the ram back in */
diff --git a/src/mess/machine/svi318.c b/src/mess/machine/svi318.c
index a31f6a8a7b7..fa3679dc648 100644
--- a/src/mess/machine/svi318.c
+++ b/src/mess/machine/svi318.c
@@ -803,19 +803,19 @@ READ8_MEMBER(svi318_state::svi318_io_ext_r)
case 0x30:
device = machine().device("wd179x");
- data = wd17xx_status_r(device, 0);
+ data = wd17xx_status_r(device, space, 0);
break;
case 0x31:
device = machine().device("wd179x");
- data = wd17xx_track_r(device, 0);
+ data = wd17xx_track_r(device, space, 0);
break;
case 0x32:
device = machine().device("wd179x");
- data = wd17xx_sector_r(device, 0);
+ data = wd17xx_sector_r(device, space, 0);
break;
case 0x33:
device = machine().device("wd179x");
- data = wd17xx_data_r(device, 0);
+ data = wd17xx_data_r(device, space, 0);
break;
case 0x34:
data = svi318_fdc_irqdrq_r(space, 0);
@@ -876,19 +876,19 @@ WRITE8_MEMBER(svi318_state::svi318_io_ext_w)
case 0x30:
device = machine().device("wd179x");
- wd17xx_command_w(device, 0, data);
+ wd17xx_command_w(device, space, 0, data);
break;
case 0x31:
device = machine().device("wd179x");
- wd17xx_track_w(device, 0, data);
+ wd17xx_track_w(device, space, 0, data);
break;
case 0x32:
device = machine().device("wd179x");
- wd17xx_sector_w(device, 0, data);
+ wd17xx_sector_w(device, space, 0, data);
break;
case 0x33:
device = machine().device("wd179x");
- wd17xx_data_w(device, 0, data);
+ wd17xx_data_w(device, space, 0, data);
break;
case 0x34:
svi318_fdc_drive_motor_w(space, 0, data);
diff --git a/src/mess/machine/thomflop.c b/src/mess/machine/thomflop.c
index d47f4005cee..7d885061da1 100644
--- a/src/mess/machine/thomflop.c
+++ b/src/mess/machine/thomflop.c
@@ -276,7 +276,7 @@ static READ8_HANDLER ( to7_5p14_r )
device_t *fdc = space->machine().device("wd2793");
if ( offset < 4 )
- return wd17xx_r( fdc, offset );
+ return wd17xx_r( fdc, *space, offset );
else if ( offset == 8 )
return to7_5p14_select;
else
@@ -290,7 +290,7 @@ static WRITE8_HANDLER( to7_5p14_w )
{
device_t *fdc = space->machine().device("wd2793");
if ( offset < 4 )
- wd17xx_w( fdc, offset, data );
+ wd17xx_w( fdc, *space, offset, data );
else if ( offset == 8 )
{
/* drive select */
@@ -362,7 +362,7 @@ static UINT8 to7_5p14sd_select;
static READ8_HANDLER ( to7_5p14sd_r )
{
if ( offset < 8 )
- return mc6843_r( space->machine().device("mc6843"), offset );
+ return mc6843_r( space->machine().device("mc6843"), *space, offset );
else if ( offset >= 8 && offset <= 9 )
return to7_5p14sd_select;
else
@@ -375,7 +375,7 @@ static READ8_HANDLER ( to7_5p14sd_r )
static WRITE8_HANDLER( to7_5p14sd_w )
{
if ( offset < 8 )
- mc6843_w( space->machine().device("mc6843"), offset, data );
+ mc6843_w( space->machine().device("mc6843"), *space, offset, data );
else if ( offset >= 8 && offset <= 9 )
{
/* drive select */
@@ -1715,7 +1715,7 @@ static void to7_network_reset( running_machine &machine )
static READ8_HANDLER ( to7_network_r )
{
if ( offset < 4 )
- return mc6854_r( space->machine().device("mc6854"), offset );
+ return mc6854_r( space->machine().device("mc6854"), *space, offset );
if ( offset == 8 )
{
@@ -1734,7 +1734,7 @@ static READ8_HANDLER ( to7_network_r )
static WRITE8_HANDLER ( to7_network_w )
{
if ( offset < 4 )
- mc6854_w( space->machine().device("mc6854"), offset, data );
+ mc6854_w( space->machine().device("mc6854"), *space, offset, data );
else
{
logerror( "%f $%04x to7_network_w: invalid write offset %i (data=$%02X)\n",
diff --git a/src/mess/machine/thomson.c b/src/mess/machine/thomson.c
index a2030b70dc5..e1d515deb25 100644
--- a/src/mess/machine/thomson.c
+++ b/src/mess/machine/thomson.c
@@ -319,7 +319,7 @@ static void thom_irq_0 ( running_machine &machine, int state )
thom_set_irq ( machine, 0, state );
}
-static void thom_dev_irq_0 ( device_t *device, int state )
+static WRITE_LINE_DEVICE_HANDLER( thom_dev_irq_0 )
{
thom_irq_0( device->machine(), state );
}
@@ -543,9 +543,9 @@ static WRITE8_DEVICE_HANDLER ( to7_timer_tco_out )
const mc6846_interface to7_timer =
{
- to7_timer_port_out, NULL, to7_timer_cp2_out,
- to7_timer_port_in, to7_timer_tco_out,
- thom_dev_irq_0
+ DEVCB_HANDLER(to7_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to7_timer_cp2_out),
+ DEVCB_HANDLER(to7_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out),
+ DEVCB_LINE(thom_dev_irq_0)
};
@@ -934,7 +934,7 @@ static void to7_modem_init( running_machine &machine )
/* ------------ dispatch MODEM / speech extension ------------ */
-const mea8000_interface to7_speech = { "speech", NULL };
+const mea8000_interface to7_speech = { "speech", DEVCB_NULL };
READ8_HANDLER ( to7_modem_mea8000_r )
@@ -947,7 +947,7 @@ READ8_HANDLER ( to7_modem_mea8000_r )
if ( space->machine().root_device().ioport("mconfig")->read() & 1 )
{
device_t* device = space->machine().device("mea8000" );
- return mea8000_r( device, offset );
+ return mea8000_r( device, *space, offset );
}
else
{
@@ -967,7 +967,7 @@ WRITE8_HANDLER ( to7_modem_mea8000_w )
if ( space->machine().root_device().ioport("mconfig")->read() & 1 )
{
device_t* device = space->machine().device("mea8000" );
- mea8000_w( device, offset, data );
+ mea8000_w( device, *space, offset, data );
}
else
{
@@ -1662,9 +1662,9 @@ static WRITE8_DEVICE_HANDLER ( to770_timer_port_out )
const mc6846_interface to770_timer =
{
- to770_timer_port_out, NULL, to7_timer_cp2_out,
- to7_timer_port_in, to7_timer_tco_out,
- thom_dev_irq_0
+ DEVCB_HANDLER(to770_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to7_timer_cp2_out),
+ DEVCB_HANDLER(to7_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out),
+ DEVCB_LINE(thom_dev_irq_0)
};
@@ -3104,9 +3104,9 @@ static WRITE8_DEVICE_HANDLER ( to9_timer_port_out )
const mc6846_interface to9_timer =
{
- to9_timer_port_out, NULL, to7_timer_cp2_out,
- to7_timer_port_in, to7_timer_tco_out,
- thom_dev_irq_0
+ DEVCB_HANDLER(to9_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to7_timer_cp2_out),
+ DEVCB_HANDLER(to7_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out),
+ DEVCB_LINE(thom_dev_irq_0)
};
@@ -4156,9 +4156,9 @@ static WRITE8_DEVICE_HANDLER ( to8_timer_cp2_out )
const mc6846_interface to8_timer =
{
- to8_timer_port_out, NULL, to8_timer_cp2_out,
- to8_timer_port_in, to7_timer_tco_out,
- thom_dev_irq_0
+ DEVCB_HANDLER(to8_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to8_timer_cp2_out),
+ DEVCB_HANDLER(to8_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out),
+ DEVCB_LINE(thom_dev_irq_0)
};
@@ -4345,9 +4345,9 @@ static WRITE8_DEVICE_HANDLER ( to9p_timer_port_out )
const mc6846_interface to9p_timer =
{
- to9p_timer_port_out, NULL, to8_timer_cp2_out,
- to9p_timer_port_in, to7_timer_tco_out,
- thom_dev_irq_0
+ DEVCB_HANDLER(to9p_timer_port_out), DEVCB_NULL, DEVCB_HANDLER(to8_timer_cp2_out),
+ DEVCB_HANDLER(to9p_timer_port_in), DEVCB_HANDLER(to7_timer_tco_out),
+ DEVCB_LINE(thom_dev_irq_0)
};
diff --git a/src/mess/machine/ti99/bwg.c b/src/mess/machine/ti99/bwg.c
index 49a974126e5..15dcb0d3094 100644
--- a/src/mess/machine/ti99/bwg.c
+++ b/src/mess/machine/ti99/bwg.c
@@ -132,7 +132,7 @@ READ8Z_MEMBER(snug_bwg_device::readz)
if ((offset & 0x03e1)==0x03e0)
{
// .... ..11 111x xxx0
- *value = mm58274c_r(m_clock, (offset & 0x001e) >> 1);
+ *value = mm58274c_r(m_clock, space, (offset & 0x001e) >> 1);
}
else
{
@@ -146,7 +146,7 @@ READ8Z_MEMBER(snug_bwg_device::readz)
// .... ..11 1111 0xx0
// Note that the value is inverted again on the board,
// so we can drop the inversion
- *value = wd17xx_r(m_controller, (offset >> 1)&0x03);
+ *value = wd17xx_r(m_controller, space, (offset >> 1)&0x03);
}
else
{
@@ -211,7 +211,7 @@ WRITE8_MEMBER(snug_bwg_device::write)
if ((offset & 0x03e1)==0x03e0)
{
// .... ..11 111x xxx0
- mm58274c_w(m_clock, (offset & 0x001e) >> 1, data);
+ mm58274c_w(m_clock, space, (offset & 0x001e) >> 1, data);
}
else
{
@@ -225,7 +225,7 @@ WRITE8_MEMBER(snug_bwg_device::write)
// .... ..11 1111 1xx0
// Note that the value is inverted again on the board,
// so we can drop the inversion
- wd17xx_w(m_controller, (offset >> 1)&0x03, data);
+ wd17xx_w(m_controller, space, (offset >> 1)&0x03, data);
}
else
{
diff --git a/src/mess/machine/ti99/genboard.c b/src/mess/machine/ti99/genboard.c
index 208843635c3..ea900060e7d 100644
--- a/src/mess/machine/ti99/genboard.c
+++ b/src/mess/machine/ti99/genboard.c
@@ -338,7 +338,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// clock
// tests on the real machine showed that
// upper nibble is 0xf (probably because of the location at 0xf130?)
- value = mm58274c_r(m_clock, offset & 0x000f) | 0xf0;
+ value = mm58274c_r(m_clock, space, offset & 0x000f) | 0xf0;
do_wait(1);
if (VERBOSE>7) LOG("genboard: Read clock %04x -> %02x\n", offset, value);
return value;
@@ -372,7 +372,7 @@ READ8_MEMBER( geneve_mapper_device::readm )
// Obscure, needs more investigation. We might as well ignore this,
// as the high nibble is obviously undefined and takes some past
// value floating around.
- value = mm58274c_r(m_clock, offset & 0x000f);
+ value = mm58274c_r(m_clock, space, offset & 0x000f);
value |= ((offset & 0x000f)==0x000f)? 0x20 : 0x10;
do_wait(1);
@@ -609,7 +609,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
{
// clock
// ++++ ++++ ++++ ----
- mm58274c_w(m_clock, offset & 0x00f, data);
+ mm58274c_w(m_clock, space, offset & 0x00f, data);
do_wait(1);
if (VERBOSE>7) LOG("genboard: Write clock %04x <- %02x\n", offset, data);
return;
@@ -630,7 +630,7 @@ WRITE8_MEMBER( geneve_mapper_device::writem )
if ((offset & 0xfff0)==0x8010)
{
// clock
- mm58274c_w(m_clock, offset & 0x00f, data);
+ mm58274c_w(m_clock, space, offset & 0x00f, data);
do_wait(1);
if (VERBOSE>7) LOG("genboard: Write clock %04x <- %02x\n", offset, data);
return;
diff --git a/src/mess/machine/ti99/hfdc.c b/src/mess/machine/ti99/hfdc.c
index 1ce03b6261a..d2453c0872d 100644
--- a/src/mess/machine/ti99/hfdc.c
+++ b/src/mess/machine/ti99/hfdc.c
@@ -86,7 +86,7 @@ READ8Z_MEMBER(myarc_hfdc_device::readz)
if ((offset & 0x1fe1)==CLK_ADDR)
{
- *value = mm58274c_r(m_clock, (offset & 0x001e) >> 1);
+ *value = mm58274c_r(m_clock, space, (offset & 0x001e) >> 1);
if (VERBOSE>7) LOG("hfdc: read from clock address %04x: %02x\n", offset & 0xffff, *value);
return;
}
@@ -140,7 +140,7 @@ WRITE8_MEMBER( myarc_hfdc_device::write )
if ((offset & 0x1fe1)==CLK_ADDR)
{
if (VERBOSE>7) LOG("hfdc: write to clock address %04x: %02x\n", offset & 0xffff, data);
- mm58274c_w(m_clock, (offset & 0x001e) >> 1, data);
+ mm58274c_w(m_clock, space, (offset & 0x001e) >> 1, data);
return;
}
diff --git a/src/mess/machine/ti99/ti_fdc.c b/src/mess/machine/ti99/ti_fdc.c
index 1cb22eab1e4..9c850b125b2 100644
--- a/src/mess/machine/ti99/ti_fdc.c
+++ b/src/mess/machine/ti99/ti_fdc.c
@@ -64,7 +64,7 @@ READ8Z_MEMBER(ti_fdc_device::readz)
if ((offset & 0x1ff9)==0x1ff0)
{
- reply = wd17xx_r(m_controller, (offset >> 1)&0x03);
+ reply = wd17xx_r(m_controller, space, (offset >> 1)&0x03);
}
else
{
@@ -88,7 +88,7 @@ WRITE8_MEMBER(ti_fdc_device::write)
// 0101 1111 1111 1xx0
if ((offset & 0x1ff9)==0x1ff8)
{
- wd17xx_w(m_controller, (offset >> 1)&0x03, data);
+ wd17xx_w(m_controller, space, (offset >> 1)&0x03, data);
}
}
}
diff --git a/src/mess/machine/trs80.c b/src/mess/machine/trs80.c
index 2e7db2d16a4..b420bea7fe2 100644
--- a/src/mess/machine/trs80.c
+++ b/src/mess/machine/trs80.c
@@ -704,7 +704,7 @@ READ8_MEMBER( trs80_state::trs80_wd179x_r )
{
UINT8 data = 0xff;
if (BIT(ioport("CONFIG")->read(), 7))
- data = wd17xx_status_r(m_fdc, offset);
+ data = wd17xx_status_r(m_fdc, space, offset);
return data;
}
diff --git a/src/mess/machine/tvc_hbf.c b/src/mess/machine/tvc_hbf.c
index 137d9481e26..d1229a75e29 100644
--- a/src/mess/machine/tvc_hbf.c
+++ b/src/mess/machine/tvc_hbf.c
@@ -154,7 +154,7 @@ READ8_MEMBER(tvc_hbf_device::io_read)
switch((offset>>2) & 0x03)
{
case 0x00:
- return wd17xx_r(m_fdc, offset & 3);
+ return wd17xx_r(m_fdc, space, offset & 3);
case 0x01:
return (wd17xx_drq_r(m_fdc)<<7) | wd17xx_intrq_r(m_fdc);
default:
@@ -171,7 +171,7 @@ WRITE8_MEMBER(tvc_hbf_device::io_write)
switch((offset>>2) & 0x03)
{
case 0x00:
- wd17xx_w(m_fdc, offset & 3, data);
+ wd17xx_w(m_fdc, space, offset & 3, data);
break;
case 0x01:
// bit 0-3 drive select
diff --git a/src/mess/machine/upd7002.h b/src/mess/machine/upd7002.h
index 4d93d0344eb..92b52bafa81 100644
--- a/src/mess/machine/upd7002.h
+++ b/src/mess/machine/upd7002.h
@@ -59,9 +59,9 @@ struct uPD7002_interface
/* Standard handlers */
-READ8_DEVICE_HANDLER ( uPD7002_EOC_r );
-READ8_DEVICE_HANDLER ( uPD7002_r );
-WRITE8_DEVICE_HANDLER ( uPD7002_w );
+DECLARE_READ8_DEVICE_HANDLER ( uPD7002_EOC_r );
+DECLARE_READ8_DEVICE_HANDLER ( uPD7002_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( uPD7002_w );
/***************************************************************************
diff --git a/src/mess/machine/upd71071.c b/src/mess/machine/upd71071.c
index 18817a2d830..e174ce846eb 100644
--- a/src/mess/machine/upd71071.c
+++ b/src/mess/machine/upd71071.c
@@ -416,8 +416,8 @@ static WRITE8_DEVICE_HANDLER(upd71071_write)
}
}
-READ8_DEVICE_HANDLER(upd71071_r) { return upd71071_read(device,offset); }
-WRITE8_DEVICE_HANDLER(upd71071_w) { upd71071_write(device,offset,data); }
+READ8_DEVICE_HANDLER(upd71071_r) { return upd71071_read(device,space,offset,mem_mask); }
+WRITE8_DEVICE_HANDLER(upd71071_w) { upd71071_write(device,space,offset,data,mem_mask); }
const device_type UPD71071 = &device_creator<upd71071_device>;
diff --git a/src/mess/machine/upd71071.h b/src/mess/machine/upd71071.h
index b8dd084077d..9638c001af6 100644
--- a/src/mess/machine/upd71071.h
+++ b/src/mess/machine/upd71071.h
@@ -37,7 +37,7 @@ extern const device_type UPD71071;
MCFG_DEVICE_ADD(_tag, UPD71071, 0) \
MCFG_DEVICE_CONFIG(_config)
-READ8_DEVICE_HANDLER(upd71071_r);
-WRITE8_DEVICE_HANDLER(upd71071_w);
+DECLARE_READ8_DEVICE_HANDLER(upd71071_r);
+DECLARE_WRITE8_DEVICE_HANDLER(upd71071_w);
#endif /*UPD71071_H_*/
diff --git a/src/mess/machine/upd765.c b/src/mess/machine/upd765.c
index d8abaa3c81f..fc86eaf441d 100644
--- a/src/mess/machine/upd765.c
+++ b/src/mess/machine/upd765.c
@@ -2263,7 +2263,7 @@ WRITE8_DEVICE_HANDLER(upd765_dack_w)
upd765_set_dma_drq(device, CLEAR_LINE);
/* write data */
- upd765_data_w(device, offset, data);
+ upd765_data_w(device, space, offset, data);
}
READ8_DEVICE_HANDLER(upd765_dack_r)
@@ -2272,7 +2272,7 @@ READ8_DEVICE_HANDLER(upd765_dack_r)
upd765_set_dma_drq(device,CLEAR_LINE);
/* read data */
- return upd765_data_r(device, offset);
+ return upd765_data_r(device, space, offset);
}
static TIMER_CALLBACK( interrupt_callback )
diff --git a/src/mess/machine/upd765.h b/src/mess/machine/upd765.h
index 291dda6868a..cac6bee3649 100644
--- a/src/mess/machine/upd765.h
+++ b/src/mess/machine/upd765.h
@@ -113,16 +113,16 @@ struct upd765_interface
***************************************************************************/
/* read of data register */
-READ8_DEVICE_HANDLER(upd765_data_r);
+DECLARE_READ8_DEVICE_HANDLER(upd765_data_r);
/* write to data register */
-WRITE8_DEVICE_HANDLER(upd765_data_w);
+DECLARE_WRITE8_DEVICE_HANDLER(upd765_data_w);
/* read of main status register */
-READ8_DEVICE_HANDLER(upd765_status_r);
+DECLARE_READ8_DEVICE_HANDLER(upd765_status_r);
/* dma acknowledge with write */
-WRITE8_DEVICE_HANDLER(upd765_dack_w);
+DECLARE_WRITE8_DEVICE_HANDLER(upd765_dack_w);
/* dma acknowledge with read */
-READ8_DEVICE_HANDLER(upd765_dack_r);
+DECLARE_READ8_DEVICE_HANDLER(upd765_dack_r);
/* reset upd765 */
void upd765_reset(device_t *device, int);
diff --git a/src/mess/machine/v1050kb.c b/src/mess/machine/v1050kb.c
index 315a55a7c1e..6c694e57821 100644
--- a/src/mess/machine/v1050kb.c
+++ b/src/mess/machine/v1050kb.c
@@ -417,7 +417,7 @@ WRITE8_MEMBER( v1050_keyboard_device::kb_p2_w )
output_set_led_value(0, BIT(data, 5));
// speaker output
- discrete_sound_w(m_discrete, NODE_01, BIT(data, 6));
+ discrete_sound_w(m_discrete, space, NODE_01, BIT(data, 6));
// serial output
m_so = BIT(data, 7);
diff --git a/src/mess/machine/wswan.c b/src/mess/machine/wswan.c
index ee96082acb5..9efc0c83209 100644
--- a/src/mess/machine/wswan.c
+++ b/src/mess/machine/wswan.c
@@ -835,7 +835,7 @@ WRITE8_MEMBER( wswan_state::wswan_port_w )
Bit 0-3 - Master volume
Bit 4-7 - Unknown
*/
- wswan_sound_port_w( machine().device("custom"), offset, data );
+ wswan_sound_port_w( machine().device("custom"), space, offset, data );
break;
case 0xa0: /* Hardware type - this is probably read only
Bit 0 - Enable cartridge slot and/or disable bios
diff --git a/src/mess/machine/z80ne.c b/src/mess/machine/z80ne.c
index 27e8f106e04..ff97265ea7b 100644
--- a/src/mess/machine/z80ne.c
+++ b/src/mess/machine/z80ne.c
@@ -632,7 +632,7 @@ READ8_MEMBER(z80ne_state::lx388_data_r)
{
UINT8 data;
- data = kr2376_data_r(m_lx388_kr2376, 0) & 0x7f;
+ data = kr2376_data_r(m_lx388_kr2376, space, 0) & 0x7f;
data |= kr2376_get_output_pin(m_lx388_kr2376, KR2376_SO) << 7;
return data;
}
@@ -725,27 +725,27 @@ READ8_DEVICE_HANDLER(lx390_fdc_r)
switch(offset)
{
case 0:
- d = wd17xx_status_r(device, 0) ^ 0xff;
+ d = wd17xx_status_r(device, space, 0) ^ 0xff;
LOG(("lx390_fdc_r, WD17xx status: %02x\n", d));
break;
case 1:
- d = wd17xx_track_r(device, 0) ^ 0xff;
+ d = wd17xx_track_r(device, space, 0) ^ 0xff;
LOG(("lx390_fdc_r, WD17xx track: %02x\n", d));
break;
case 2:
- d = wd17xx_sector_r(device, 0) ^ 0xff;
+ d = wd17xx_sector_r(device, space, 0) ^ 0xff;
LOG(("lx390_fdc_r, WD17xx sector: %02x\n", d));
break;
case 3:
- d = wd17xx_data_r(device, 0) ^ 0xff;
+ d = wd17xx_data_r(device, space, 0) ^ 0xff;
LOG(("lx390_fdc_r, WD17xx data3: %02x\n", d));
break;
case 6:
d = 0xff;
- lx390_reset_bank(device, 0);
+ lx390_reset_bank(device, space, 0);
break;
case 7:
- d = wd17xx_data_r(device, 3) ^ 0xff;
+ d = wd17xx_data_r(device, space, 3) ^ 0xff;
LOG(("lx390_fdc_r, WD17xx data7, force: %02x\n", d));
break;
default:
@@ -764,7 +764,7 @@ WRITE8_DEVICE_HANDLER(lx390_fdc_w)
{
case 0:
LOG(("lx390_fdc_w, WD17xx command: %02x\n", d));
- wd17xx_command_w(device, offset, d ^ 0xff);
+ wd17xx_command_w(device, space, offset, d ^ 0xff);
if (state->m_wd17xx_state.drive & 1)
output_set_value("drv0", 2);
else if (state->m_wd17xx_state.drive & 2)
@@ -772,23 +772,23 @@ WRITE8_DEVICE_HANDLER(lx390_fdc_w)
break;
case 1:
LOG(("lx390_fdc_w, WD17xx track: %02x\n", d));
- wd17xx_track_w(device, offset, d ^ 0xff);
+ wd17xx_track_w(device, space, offset, d ^ 0xff);
break;
case 2:
LOG(("lx390_fdc_w, WD17xx sector: %02x\n", d));
- wd17xx_sector_w(device, offset, d ^ 0xff);
+ wd17xx_sector_w(device, space, offset, d ^ 0xff);
break;
case 3:
- wd17xx_data_w(device, 0, d ^ 0xff);
+ wd17xx_data_w(device, space, 0, d ^ 0xff);
LOG(("lx390_fdc_w, WD17xx data3: %02x\n", d));
break;
case 6:
LOG(("lx390_fdc_w, motor_w: %02x\n", d));
- lx390_motor_w(device, 0, d);
+ lx390_motor_w(device, space, 0, d);
break;
case 7:
LOG(("lx390_fdc_w, WD17xx data7, force: %02x\n", d));
- wd17xx_data_w(device, 3, d ^ 0xff);
+ wd17xx_data_w(device, space, 3, d ^ 0xff);
break;
}
}
diff --git a/src/mess/video/733_asr.h b/src/mess/video/733_asr.h
index e461b2033cb..18e810f1ad6 100644
--- a/src/mess/video/733_asr.h
+++ b/src/mess/video/733_asr.h
@@ -44,8 +44,8 @@ extern const device_type ASR733;
MCFG_DEVICE_ADD(_tag, ASR733, 0) \
MCFG_DEVICE_CONFIG(_intf)
-READ8_DEVICE_HANDLER(asr733_cru_r);
-WRITE8_DEVICE_HANDLER(asr733_cru_w);
+DECLARE_READ8_DEVICE_HANDLER(asr733_cru_r);
+DECLARE_WRITE8_DEVICE_HANDLER(asr733_cru_w);
void asr733_refresh(device_t *device, bitmap_ind16 &bitmap, int x, int y);
diff --git a/src/mess/video/911_vdt.h b/src/mess/video/911_vdt.h
index 4b37c043366..8b61ca84def 100644
--- a/src/mess/video/911_vdt.h
+++ b/src/mess/video/911_vdt.h
@@ -68,8 +68,8 @@ extern const device_type VDT911;
MCFG_DEVICE_CONFIG(_intf)
- READ8_DEVICE_HANDLER(vdt911_cru_r);
-WRITE8_DEVICE_HANDLER(vdt911_cru_w);
+ DECLARE_READ8_DEVICE_HANDLER(vdt911_cru_r);
+DECLARE_WRITE8_DEVICE_HANDLER(vdt911_cru_w);
void vdt911_refresh(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect, int x, int y);
diff --git a/src/mess/video/dl1416.h b/src/mess/video/dl1416.h
index 8a99f79540b..e1ecf8f000a 100644
--- a/src/mess/video/dl1416.h
+++ b/src/mess/video/dl1416.h
@@ -49,7 +49,7 @@ struct dl1416_interface
WRITE_LINE_DEVICE_HANDLER( dl1416_wr_w ); /* write enable */
WRITE_LINE_DEVICE_HANDLER( dl1416_ce_w ); /* chip enable */
WRITE_LINE_DEVICE_HANDLER( dl1416_cu_w ); /* cursor enable */
-WRITE8_DEVICE_HANDLER( dl1416_data_w );
+DECLARE_WRITE8_DEVICE_HANDLER( dl1416_data_w );
/* device get info callback */
class dl1416_device : public device_t
diff --git a/src/mess/video/isa_mda.c b/src/mess/video/isa_mda.c
index 29696a386e3..27e35777b45 100644
--- a/src/mess/video/isa_mda.c
+++ b/src/mess/video/isa_mda.c
@@ -452,7 +452,7 @@ WRITE8_MEMBER( isa8_mda_device::io_write)
mode_control_w(space, offset, data);
break;
case 12: case 13: case 14:
- pc_lpt_w(lpt, offset - 12, data);
+ pc_lpt_w(lpt, space, offset - 12, data);
break;
}
}
@@ -475,7 +475,7 @@ READ8_MEMBER( isa8_mda_device::io_read)
break;
/* 12, 13, 14 are the LPT ports */
case 12: case 13: case 14:
- data = pc_lpt_r(lpt, offset - 12);
+ data = pc_lpt_r(lpt, space, offset - 12);
break;
}
return data;
@@ -686,7 +686,7 @@ WRITE8_MEMBER( isa8_hercules_device::io_write )
mode_control_w(space, offset, data);
break;
case 12: case 13: case 14:
- pc_lpt_w(lpt, offset - 12, data);
+ pc_lpt_w(lpt, space, offset - 12, data);
break;
case 15:
m_configuration_switch = data;
@@ -733,7 +733,7 @@ READ8_MEMBER( isa8_hercules_device::io_read )
break;
/* 12, 13, 14 are the LPT ports */
case 12: case 13: case 14:
- data = pc_lpt_r(lpt, offset - 12);
+ data = pc_lpt_r(lpt, space, offset - 12);
break;
}
return data;
diff --git a/src/mess/video/k1ge.h b/src/mess/video/k1ge.h
index d708af46562..8594eba0333 100644
--- a/src/mess/video/k1ge.h
+++ b/src/mess/video/k1ge.h
@@ -64,8 +64,8 @@ struct k1ge_interface
PALETTE_INIT( k1ge );
PALETTE_INIT( k2ge );
-WRITE8_DEVICE_HANDLER( k1ge_w );
-READ8_DEVICE_HANDLER( k1ge_r );
+DECLARE_WRITE8_DEVICE_HANDLER( k1ge_w );
+DECLARE_READ8_DEVICE_HANDLER( k1ge_r );
void k1ge_update( device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect );
diff --git a/src/mess/video/vdc8563.h b/src/mess/video/vdc8563.h
index d2cf2ed6ebe..9862e664a9f 100644
--- a/src/mess/video/vdc8563.h
+++ b/src/mess/video/vdc8563.h
@@ -59,8 +59,8 @@ extern const device_type VDC8563;
void vdc8563_set_rastering(device_t *device, int on);
UINT32 vdc8563_video_update(device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect);
-WRITE8_DEVICE_HANDLER( vdc8563_port_w );
-READ8_DEVICE_HANDLER( vdc8563_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( vdc8563_port_w );
+DECLARE_READ8_DEVICE_HANDLER( vdc8563_port_r );
#endif /* __VDC8563_H__ */
diff --git a/src/mess/video/vic4567.h b/src/mess/video/vic4567.h
index c510bf8844e..5a081300b71 100644
--- a/src/mess/video/vic4567.h
+++ b/src/mess/video/vic4567.h
@@ -164,9 +164,9 @@ extern const device_type VIC3;
/*----------- defined in video/vic4567.c -----------*/
-WRITE8_DEVICE_HANDLER( vic3_port_w );
-WRITE8_DEVICE_HANDLER( vic3_palette_w );
-READ8_DEVICE_HANDLER( vic3_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER( vic3_port_w );
+DECLARE_WRITE8_DEVICE_HANDLER( vic3_palette_w );
+DECLARE_READ8_DEVICE_HANDLER( vic3_port_r );
void vic3_raster_interrupt_gen( device_t *device );
UINT32 vic3_video_update( device_t *device, bitmap_ind16 &bitmap, const rectangle &cliprect );
diff --git a/src/mess/video/vic6567.h b/src/mess/video/vic6567.h
index 4314827d5e2..f603bde41de 100644
--- a/src/mess/video/vic6567.h
+++ b/src/mess/video/vic6567.h
@@ -163,8 +163,8 @@ extern const device_type VIC2;
/*----------- defined in video/vic6567.c -----------*/
-WRITE8_DEVICE_HANDLER ( vic2_port_w );
-READ8_DEVICE_HANDLER ( vic2_port_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( vic2_port_w );
+DECLARE_READ8_DEVICE_HANDLER ( vic2_port_r );
int vic2e_k0_r(device_t *device);
int vic2e_k1_r(device_t *device);
diff --git a/src/mess/video/vtvideo.h b/src/mess/video/vtvideo.h
index dd19e778ba9..205b6410c9e 100644
--- a/src/mess/video/vtvideo.h
+++ b/src/mess/video/vtvideo.h
@@ -62,10 +62,10 @@ struct vt_video_interface
PROTOTYPES
***************************************************************************/
/* register access */
-READ8_DEVICE_HANDLER ( vt_video_lba7_r );
-WRITE8_DEVICE_HANDLER ( vt_video_dc012_w );
-WRITE8_DEVICE_HANDLER ( vt_video_dc011_w );
-WRITE8_DEVICE_HANDLER ( vt_video_brightness_w );
+DECLARE_READ8_DEVICE_HANDLER ( vt_video_lba7_r );
+DECLARE_WRITE8_DEVICE_HANDLER ( vt_video_dc012_w );
+DECLARE_WRITE8_DEVICE_HANDLER ( vt_video_dc011_w );
+DECLARE_WRITE8_DEVICE_HANDLER ( vt_video_brightness_w );
/* screen update */
diff --git a/src/mess/video/x68k.c b/src/mess/video/x68k.c
index 68d0b048509..f03b8a6cb21 100644
--- a/src/mess/video/x68k.c
+++ b/src/mess/video/x68k.c
@@ -1306,7 +1306,7 @@ SCREEN_UPDATE_IND16( x68000 )
// popmessage("Keyboard buffer position = %i",state->m_keyboard.headpos);
// popmessage("IERA = 0x%02x, IERB = 0x%02x",state->m_mfp.iera,state->m_mfp.ierb);
// popmessage("IPRA = 0x%02x, IPRB = 0x%02x",state->m_mfp.ipra,state->m_mfp.iprb);
-// popmessage("uPD72065 status = %02x",upd765_status_r(machine, 0));
+// popmessage("uPD72065 status = %02x",upd765_status_r(machine, space, 0));
// popmessage("Layer enable - 0x%02x",state->m_video.reg[2] & 0xff);
// popmessage("Graphic layer scroll - %i, %i - %i, %i - %i, %i - %i, %i",
// state->m_crtc.reg[12],state->m_crtc.reg[13],state->m_crtc.reg[14],state->m_crtc.reg[15],state->m_crtc.reg[16],state->m_crtc.reg[17],state->m_crtc.reg[18],state->m_crtc.reg[19]);