From 63d10ee9bfbb5bc4adb2754a6b0fa790ea0a2851 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Thu, 13 Nov 2008 06:59:57 +0000 Subject: [PATCH] Massive API cleanup/change. The primary goal is that all CPU- related APIs now take a device pointer instead of an index. All functions that take a CPU device are prefixed with cpu_* All functions that are globally related to cpu execution are prefixed with cpuexec_*. Below is a list of some of the mappings: cpu_boost_interleave -> cpuexec_boost_interleave cpunum_suspend -> cpu_suspend cpunum_resume -> cpu_resume cpunum_is_suspended -> cpu_is_suspended cpunum_get_clock -> cpu_get_clock cpunum_set_clock -> cpu_set_clock cpunum_get_clockscale -> cpu_get_clockscale cpunum_set_clockscale -> cpu_set_clockscale cpunum_get_localtime -> cpu_get_local_time cpunum_gettotalcycles -> cpu_get_total_cycles activecpu_eat_cycles -> cpu_eat_cycles activecpu_adjust_icount -> cpu_adjust_icount cpu_trigger -> cpuexec_trigger cpu_triggertime -> cpuexec_triggertime cpunum_set_input_line -> cpu_set_input_line cpunum_set_irq_callback -> cpu_set_irq_callback In addition, a number of functions retain the same name but now require a specific CPU parameter to be passed in: cpu_yield cpu_spin cpu_spinuntil_time cpu_spinuntil_int cpu_spinuntil_trigger cpu_triggerint Merged cpuint.c into cpuexec.c. One side-effect of this change is that driver reset callbacks are called AFTER the CPUs and devices are reset. This means that if you make changes to the CPU state and expect the reset vectors to recognize the changes in your reset routine, you will need to manually reset the CPU after making the change (since it has already been reset). Added a number of inline helper functions to cpuintrf.h for managing addresses Removed cpu_gettotalcpu(). This information is rarely needed outside of the core and can be obtained by looking at the machine->cpu[] array. Changed CPU interrupt acknowledge callbacks to pass a CPU device instead of machine/cpunum pair. Changed VBLANK and periodic timer callbacks to pass a CPU device instead of machine/cpunum pair. Renamed all information getters from cpu_* to cpu_get_* and from cputype_* to cputype_get_*. --- .gitattributes | 2 - src/emu/cpu/apexc/apexc.c | 24 +- src/emu/cpu/cp1610/cp1610.c | 32 +- src/emu/cpu/e132xs/e132xs.c | 9 +- src/emu/cpu/f8/f8.c | 154 ++-- src/emu/cpu/h83002/h8periph.c | 7 +- src/emu/cpu/jaguar/jaguar.c | 17 +- src/emu/cpu/lh5801/lh5801.c | 38 +- src/emu/cpu/m37710/m37710.c | 7 +- src/emu/cpu/m6502/m6502.h | 2 +- src/emu/cpu/m6502/m6509.h | 2 +- src/emu/cpu/mcs48/mcs48.c | 1 + src/emu/cpu/mcs51/mcs51dasm.c | 8 +- src/emu/cpu/minx/minx.c | 40 +- src/emu/cpu/mips/mips3.c | 6 +- src/emu/cpu/mips/mips3com.c | 14 +- src/emu/cpu/mips/mips3com.h | 1 + src/emu/cpu/mips/mips3drc.c | 3 +- src/emu/cpu/pdp1/pdp1.c | 84 +- src/emu/cpu/pdp1/tx0.c | 108 +-- src/emu/cpu/powerpc/ppccom.c | 17 +- src/emu/cpu/powerpc/ppccom.h | 1 + src/emu/cpu/saturn/saturn.c | 66 +- src/emu/cpu/sc61860/sc61860.c | 46 +- src/emu/cpu/sh2/sh2comn.c | 5 +- src/emu/cpu/sh2/sh2comn.h | 2 + src/emu/cpu/sh4/sh4comn.c | 3 +- src/emu/cpu/sm8500/sm8500.c | 36 +- src/emu/cpu/t11/t11dasm.c | 2 +- src/emu/cpu/tlcs90/tlcs90.c | 51 +- src/emu/cpu/tms34010/34010ops.c | 2 +- src/emu/cpu/tms34010/tms34010.c | 8 +- src/emu/cpu/tms7000/tms7000.c | 37 +- src/emu/cpu/v30mz/v30mz.c | 44 +- src/emu/cpuexec.c | 1319 ++++++++++++++++++++----------- src/emu/cpuexec.h | 358 +++------ src/emu/cpuint.c | 434 ---------- src/emu/cpuint.h | 57 -- src/emu/cpuintrf.c | 850 +++++++++----------- src/emu/cpuintrf.h | 554 +++++++++---- src/emu/debug/debugcmd.c | 38 +- src/emu/debug/debugcmt.c | 64 +- src/emu/debug/debugcpu.c | 15 +- src/emu/debug/debugvw.c | 11 +- src/emu/deprecat.h | 3 +- src/emu/emu.mak | 1 - src/emu/info.c | 2 +- src/emu/machine/6522via.c | 3 +- src/emu/machine/6526cia.c | 2 +- src/emu/machine/8042kbdc.c | 2 +- src/emu/machine/8237dma.c | 2 +- src/emu/machine/8257dma.c | 2 +- src/emu/machine/generic.c | 67 +- src/emu/machine/idectrl.c | 2 +- src/emu/machine/ldpr8210.c | 6 +- src/emu/machine/ldv1000.c | 4 +- src/emu/machine/ldvp931.c | 8 +- src/emu/machine/tmp68301.c | 8 +- src/emu/machine/z80dma.c | 2 +- src/emu/mame.c | 75 +- src/emu/mconfig.h | 3 +- src/emu/memory.c | 8 +- src/emu/romload.c | 4 +- src/emu/sound/scsp.c | 5 +- src/emu/timer.c | 12 +- src/emu/ui.c | 22 +- src/emu/validity.c | 7 +- src/emu/video/voodoo.c | 10 +- src/mame/audio/aztarac.c | 4 +- src/mame/audio/cage.c | 18 +- src/mame/audio/carnival.c | 2 +- src/mame/audio/cchasm.c | 6 +- src/mame/audio/cinemat.c | 2 +- src/mame/audio/cyberbal.c | 8 +- src/mame/audio/dcs.c | 70 +- src/mame/audio/dkong.c | 4 +- src/mame/audio/exidy.c | 4 +- src/mame/audio/exidy440.c | 4 +- src/mame/audio/gottlieb.c | 6 +- src/mame/audio/harddriv.c | 16 +- src/mame/audio/irem.c | 6 +- src/mame/audio/jaguar.c | 24 +- src/mame/audio/jedi.c | 4 +- src/mame/audio/leland.c | 12 +- src/mame/audio/mcr.c | 30 +- src/mame/audio/n8080.c | 6 +- src/mame/audio/namco54.c | 4 +- src/mame/audio/namcoc7x.c | 8 +- src/mame/audio/polepos.c | 2 +- src/mame/audio/redalert.c | 6 +- src/mame/audio/scramble.c | 16 +- src/mame/audio/segag80r.c | 4 +- src/mame/audio/segasnd.c | 10 +- src/mame/audio/seibu.c | 4 +- src/mame/audio/snes.c | 2 +- src/mame/audio/spacefb.c | 2 +- src/mame/audio/starwars.c | 8 +- src/mame/audio/t5182.c | 4 +- src/mame/audio/taito_en.c | 8 +- src/mame/audio/taitosnd.c | 12 +- src/mame/audio/timeplt.c | 4 +- src/mame/audio/trackfld.c | 6 +- src/mame/audio/williams.c | 50 +- src/mame/drivers/1942.c | 6 +- src/mame/drivers/20pacgal.c | 2 +- src/mame/drivers/2mindril.c | 4 +- src/mame/drivers/40love.c | 4 +- src/mame/drivers/88games.c | 4 +- src/mame/drivers/acefruit.c | 4 +- src/mame/drivers/acommand.c | 6 +- src/mame/drivers/actfancr.c | 8 +- src/mame/drivers/adp.c | 4 +- src/mame/drivers/aeroboto.c | 2 +- src/mame/drivers/aerofgt.c | 8 +- src/mame/drivers/airbustr.c | 8 +- src/mame/drivers/aleck64.c | 2 +- src/mame/drivers/aliens.c | 4 +- src/mame/drivers/alpha68k.c | 26 +- src/mame/drivers/amspdwy.c | 4 +- src/mame/drivers/angelkds.c | 2 +- src/mame/drivers/aquarium.c | 4 +- src/mame/drivers/arcadecl.c | 4 +- src/mame/drivers/argus.c | 8 +- src/mame/drivers/artmagic.c | 4 +- src/mame/drivers/ashnojoe.c | 4 +- src/mame/drivers/asterix.c | 8 +- src/mame/drivers/asteroid.c | 2 +- src/mame/drivers/astinvad.c | 6 +- src/mame/drivers/astrof.c | 8 +- src/mame/drivers/asuka.c | 6 +- src/mame/drivers/atarig1.c | 4 +- src/mame/drivers/atarig42.c | 6 +- src/mame/drivers/atarigt.c | 8 +- src/mame/drivers/atarigx2.c | 6 +- src/mame/drivers/atarisy1.c | 8 +- src/mame/drivers/atarisy2.c | 22 +- src/mame/drivers/atetris.c | 4 +- src/mame/drivers/avalnche.c | 2 +- src/mame/drivers/aztarac.c | 2 +- src/mame/drivers/backfire.c | 8 +- src/mame/drivers/badlands.c | 14 +- src/mame/drivers/baraduke.c | 2 +- src/mame/drivers/batman.c | 8 +- src/mame/drivers/battlane.c | 14 +- src/mame/drivers/battlera.c | 4 +- src/mame/drivers/battlnts.c | 4 +- src/mame/drivers/bbusters.c | 10 +- src/mame/drivers/beaminv.c | 2 +- src/mame/drivers/beathead.c | 10 +- src/mame/drivers/berzerk.c | 4 +- src/mame/drivers/bfcobra.c | 12 +- src/mame/drivers/bfm_sc2.c | 10 +- src/mame/drivers/bigevglf.c | 4 +- src/mame/drivers/bionicc.c | 6 +- src/mame/drivers/bishi.c | 10 +- src/mame/drivers/bishjan.c | 4 +- src/mame/drivers/bking.c | 4 +- src/mame/drivers/bladestl.c | 10 +- src/mame/drivers/blktiger.c | 2 +- src/mame/drivers/blockade.c | 6 +- src/mame/drivers/blockhl.c | 4 +- src/mame/drivers/blockout.c | 6 +- src/mame/drivers/blstroid.c | 6 +- src/mame/drivers/blueprnt.c | 2 +- src/mame/drivers/bmcbowl.c | 6 +- src/mame/drivers/bnstars.c | 14 +- src/mame/drivers/boogwing.c | 2 +- src/mame/drivers/bottom9.c | 6 +- src/mame/drivers/boxer.c | 8 +- src/mame/drivers/brkthru.c | 6 +- src/mame/drivers/btime.c | 8 +- src/mame/drivers/btoads.c | 6 +- src/mame/drivers/bublbobl.c | 4 +- src/mame/drivers/buggychl.c | 4 +- src/mame/drivers/bwidow.c | 4 +- src/mame/drivers/bwing.c | 34 +- src/mame/drivers/bzone.c | 6 +- src/mame/drivers/cabal.c | 6 +- src/mame/drivers/capbowl.c | 8 +- src/mame/drivers/cave.c | 12 +- src/mame/drivers/cball.c | 2 +- src/mame/drivers/cbuster.c | 4 +- src/mame/drivers/ccastles.c | 6 +- src/mame/drivers/cchasm.c | 2 +- src/mame/drivers/cclimber.c | 2 +- src/mame/drivers/centiped.c | 6 +- src/mame/drivers/cham24.c | 2 +- src/mame/drivers/champbas.c | 6 +- src/mame/drivers/chanbara.c | 2 +- src/mame/drivers/changela.c | 8 +- src/mame/drivers/cheekyms.c | 2 +- src/mame/drivers/chinagat.c | 14 +- src/mame/drivers/chqflag.c | 12 +- src/mame/drivers/cidelsa.c | 2 +- src/mame/drivers/circusc.c | 6 +- src/mame/drivers/cischeat.c | 20 +- src/mame/drivers/cliffhgr.c | 8 +- src/mame/drivers/cloak.c | 4 +- src/mame/drivers/cloud9.c | 6 +- src/mame/drivers/cninja.c | 14 +- src/mame/drivers/cntsteer.c | 16 +- src/mame/drivers/cojag.c | 26 +- src/mame/drivers/combatsc.c | 4 +- src/mame/drivers/commando.c | 2 +- src/mame/drivers/compgolf.c | 2 +- src/mame/drivers/contra.c | 2 +- src/mame/drivers/coolpool.c | 16 +- src/mame/drivers/coolridr.c | 16 +- src/mame/drivers/cop01.c | 4 +- src/mame/drivers/cosmic.c | 32 +- src/mame/drivers/cowrace.c | 2 +- src/mame/drivers/cps1.c | 8 +- src/mame/drivers/cps2.c | 16 +- src/mame/drivers/cps3.c | 16 +- src/mame/drivers/crgolf.c | 8 +- src/mame/drivers/crimfght.c | 2 +- src/mame/drivers/crospang.c | 2 +- src/mame/drivers/crshrace.c | 4 +- src/mame/drivers/crystal.c | 14 +- src/mame/drivers/cshooter.c | 8 +- src/mame/drivers/cubeqst.c | 2 +- src/mame/drivers/cultures.c | 2 +- src/mame/drivers/cvs.c | 8 +- src/mame/drivers/cyberbal.c | 12 +- src/mame/drivers/cybertnk.c | 14 +- src/mame/drivers/dacholer.c | 8 +- src/mame/drivers/darius.c | 6 +- src/mame/drivers/darkhors.c | 8 +- src/mame/drivers/darkmist.c | 6 +- src/mame/drivers/darkseal.c | 4 +- src/mame/drivers/dassault.c | 16 +- src/mame/drivers/dblewing.c | 4 +- src/mame/drivers/dbz.c | 12 +- src/mame/drivers/dcheese.c | 16 +- src/mame/drivers/ddayjlc.c | 6 +- src/mame/drivers/ddealer.c | 2 +- src/mame/drivers/ddenlovr.c | 58 +- src/mame/drivers/ddragon.c | 30 +- src/mame/drivers/ddragon3.c | 10 +- src/mame/drivers/ddrible.c | 4 +- src/mame/drivers/deadang.c | 6 +- src/mame/drivers/dec0.c | 10 +- src/mame/drivers/dec8.c | 58 +- src/mame/drivers/deco156.c | 2 +- src/mame/drivers/deco32.c | 26 +- src/mame/drivers/deco_mlc.c | 8 +- src/mame/drivers/deniam.c | 4 +- src/mame/drivers/destroyr.c | 4 +- src/mame/drivers/dgpix.c | 2 +- src/mame/drivers/dietgo.c | 2 +- src/mame/drivers/discoboy.c | 4 +- src/mame/drivers/diverboy.c | 2 +- src/mame/drivers/djboy.c | 6 +- src/mame/drivers/djmain.c | 8 +- src/mame/drivers/dkong.c | 10 +- src/mame/drivers/dlair.c | 4 +- src/mame/drivers/dmndrby.c | 8 +- src/mame/drivers/dogfgt.c | 4 +- src/mame/drivers/dooyong.c | 8 +- src/mame/drivers/drgnmst.c | 2 +- src/mame/drivers/dribling.c | 4 +- src/mame/drivers/drmicro.c | 2 +- src/mame/drivers/dwarfd.c | 12 +- src/mame/drivers/dynax.c | 40 +- src/mame/drivers/dynduke.c | 2 +- src/mame/drivers/egghunt.c | 2 +- src/mame/drivers/enigma2.c | 8 +- src/mame/drivers/eolithsp.c | 6 +- src/mame/drivers/eprom.c | 12 +- src/mame/drivers/equites.c | 18 +- src/mame/drivers/ertictac.c | 4 +- src/mame/drivers/esd16.c | 6 +- src/mame/drivers/esh.c | 8 +- src/mame/drivers/espial.c | 10 +- src/mame/drivers/ettrivia.c | 6 +- src/mame/drivers/exedexes.c | 6 +- src/mame/drivers/exerion.c | 2 +- src/mame/drivers/exidy440.c | 8 +- src/mame/drivers/expro02.c | 2 +- src/mame/drivers/exprraid.c | 8 +- src/mame/drivers/exterm.c | 14 +- src/mame/drivers/exzisus.c | 4 +- src/mame/drivers/f-32.c | 2 +- src/mame/drivers/f1gp.c | 4 +- src/mame/drivers/fantland.c | 10 +- src/mame/drivers/fastfred.c | 2 +- src/mame/drivers/fastlane.c | 8 +- src/mame/drivers/fcombat.c | 2 +- src/mame/drivers/fcrash.c | 4 +- src/mame/drivers/fgoal.c | 8 +- src/mame/drivers/filetto.c | 12 +- src/mame/drivers/finalizr.c | 12 +- src/mame/drivers/firebeat.c | 18 +- src/mame/drivers/firetrap.c | 24 +- src/mame/drivers/firetrk.c | 6 +- src/mame/drivers/fitfight.c | 2 +- src/mame/drivers/flkatck.c | 4 +- src/mame/drivers/flower.c | 10 +- src/mame/drivers/flstory.c | 4 +- src/mame/drivers/flyball.c | 2 +- src/mame/drivers/foodf.c | 8 +- src/mame/drivers/freekick.c | 2 +- src/mame/drivers/fromanc2.c | 10 +- src/mame/drivers/fromance.c | 2 +- src/mame/drivers/funkyjet.c | 2 +- src/mame/drivers/funybubl.c | 2 +- src/mame/drivers/fuukifg2.c | 14 +- src/mame/drivers/fuukifg3.c | 8 +- src/mame/drivers/gaelco.c | 2 +- src/mame/drivers/gaelco3d.c | 20 +- src/mame/drivers/gaiden.c | 6 +- src/mame/drivers/galaga.c | 10 +- src/mame/drivers/galastrm.c | 4 +- src/mame/drivers/galaxia.c | 2 +- src/mame/drivers/galaxian.c | 22 +- src/mame/drivers/galpani2.c | 18 +- src/mame/drivers/galpani3.c | 8 +- src/mame/drivers/galpanic.c | 14 +- src/mame/drivers/galspnbl.c | 4 +- src/mame/drivers/gamecstl.c | 6 +- src/mame/drivers/gameplan.c | 8 +- src/mame/drivers/gaplus.c | 16 +- src/mame/drivers/gauntlet.c | 8 +- src/mame/drivers/gberet.c | 8 +- src/mame/drivers/gbusters.c | 4 +- src/mame/drivers/gcpinbal.c | 6 +- src/mame/drivers/genesis.c | 22 +- src/mame/drivers/ghosteo.c | 4 +- src/mame/drivers/gijoe.c | 8 +- src/mame/drivers/ginganin.c | 2 +- src/mame/drivers/gladiatr.c | 8 +- src/mame/drivers/glass.c | 2 +- src/mame/drivers/goal92.c | 6 +- src/mame/drivers/goodejan.c | 6 +- src/mame/drivers/gotcha.c | 2 +- src/mame/drivers/gottlieb.c | 6 +- src/mame/drivers/gpworld.c | 6 +- src/mame/drivers/gradius3.c | 16 +- src/mame/drivers/grchamp.c | 14 +- src/mame/drivers/gridlee.c | 10 +- src/mame/drivers/groundfx.c | 6 +- src/mame/drivers/gstream.c | 2 +- src/mame/drivers/gstriker.c | 6 +- src/mame/drivers/gsword.c | 6 +- src/mame/drivers/gticlub.c | 26 +- src/mame/drivers/guab.c | 12 +- src/mame/drivers/gunbustr.c | 6 +- src/mame/drivers/gundealr.c | 14 +- src/mame/drivers/gunpey.c | 2 +- src/mame/drivers/gyruss.c | 2 +- src/mame/drivers/halleys.c | 26 +- src/mame/drivers/harddriv.c | 5 +- src/mame/drivers/hcastle.c | 4 +- src/mame/drivers/hexion.c | 6 +- src/mame/drivers/higemaru.c | 6 +- src/mame/drivers/hnayayoi.c | 2 +- src/mame/drivers/hng64.c | 16 +- src/mame/drivers/homedata.c | 6 +- src/mame/drivers/hornet.c | 20 +- src/mame/drivers/hotblock.c | 2 +- src/mame/drivers/hyprduel.c | 26 +- src/mame/drivers/igs009.c | 2 +- src/mame/drivers/igs_180.c | 6 +- src/mame/drivers/igs_blit.c | 32 +- src/mame/drivers/igs_m027.c | 2 +- src/mame/drivers/ikki.c | 2 +- src/mame/drivers/imolagp.c | 10 +- src/mame/drivers/inufuku.c | 4 +- src/mame/drivers/iqblock.c | 8 +- src/mame/drivers/irobot.c | 4 +- src/mame/drivers/ironhors.c | 10 +- src/mame/drivers/istellar.c | 6 +- src/mame/drivers/itech32.c | 50 +- src/mame/drivers/itech8.c | 29 +- src/mame/drivers/itgambl2.c | 2 +- src/mame/drivers/itgambl3.c | 2 +- src/mame/drivers/itgamble.c | 2 +- src/mame/drivers/jack.c | 12 +- src/mame/drivers/jackal.c | 4 +- src/mame/drivers/jackpool.c | 2 +- src/mame/drivers/jailbrek.c | 4 +- src/mame/drivers/jchan.c | 16 +- src/mame/drivers/jedi.c | 6 +- src/mame/drivers/jollyjgr.c | 2 +- src/mame/drivers/jpmimpct.c | 4 +- src/mame/drivers/jrpacman.c | 4 +- src/mame/drivers/junofrst.c | 8 +- src/mame/drivers/kaneko16.c | 18 +- src/mame/drivers/kangaroo.c | 2 +- src/mame/drivers/karnov.c | 28 +- src/mame/drivers/kchamp.c | 12 +- src/mame/drivers/kickgoal.c | 12 +- src/mame/drivers/kingobox.c | 8 +- src/mame/drivers/kingpin.c | 4 +- src/mame/drivers/kinst.c | 8 +- src/mame/drivers/klax.c | 4 +- src/mame/drivers/kncljoe.c | 6 +- src/mame/drivers/koftball.c | 2 +- src/mame/drivers/konamigq.c | 4 +- src/mame/drivers/konamigx.c | 38 +- src/mame/drivers/konamim2.c | 6 +- src/mame/drivers/kopunch.c | 12 +- src/mame/drivers/ksys573.c | 8 +- src/mame/drivers/kyugo.c | 2 +- src/mame/drivers/labyrunr.c | 8 +- src/mame/drivers/ladybug.c | 4 +- src/mame/drivers/ladyfrog.c | 6 +- src/mame/drivers/laserbas.c | 6 +- src/mame/drivers/laserbat.c | 8 +- src/mame/drivers/lasso.c | 6 +- src/mame/drivers/lastduel.c | 14 +- src/mame/drivers/lastfght.c | 4 +- src/mame/drivers/lazercmd.c | 2 +- src/mame/drivers/lemmings.c | 6 +- src/mame/drivers/lethal.c | 6 +- src/mame/drivers/lgp.c | 6 +- src/mame/drivers/liberate.c | 4 +- src/mame/drivers/limenko.c | 8 +- src/mame/drivers/lkage.c | 6 +- src/mame/drivers/lockon.c | 8 +- src/mame/drivers/looping.c | 12 +- src/mame/drivers/lordgun.c | 4 +- src/mame/drivers/lsasquad.c | 2 +- src/mame/drivers/lucky74.c | 2 +- src/mame/drivers/lwings.c | 4 +- src/mame/drivers/m10.c | 20 +- src/mame/drivers/m107.c | 14 +- src/mame/drivers/m63.c | 6 +- src/mame/drivers/m72.c | 10 +- src/mame/drivers/m79amb.c | 2 +- src/mame/drivers/m90.c | 4 +- src/mame/drivers/m92.c | 16 +- src/mame/drivers/macrossp.c | 10 +- src/mame/drivers/madalien.c | 6 +- src/mame/drivers/madmotor.c | 4 +- src/mame/drivers/magmax.c | 4 +- src/mame/drivers/mainevt.c | 6 +- src/mame/drivers/mainsnk.c | 2 +- src/mame/drivers/mappy.c | 26 +- src/mame/drivers/mastboy.c | 6 +- src/mame/drivers/matmania.c | 6 +- src/mame/drivers/maxaflex.c | 8 +- src/mame/drivers/mayumi.c | 2 +- src/mame/drivers/mazerbla.c | 16 +- src/mame/drivers/mcatadv.c | 4 +- src/mame/drivers/mcr.c | 2 +- src/mame/drivers/mcr3.c | 2 +- src/mame/drivers/mcr68.c | 16 +- src/mame/drivers/meadows.c | 8 +- src/mame/drivers/mediagx.c | 10 +- src/mame/drivers/megadriv.c | 98 +-- src/mame/drivers/megaplay.c | 8 +- src/mame/drivers/megasys1.c | 26 +- src/mame/drivers/megatech.c | 24 +- src/mame/drivers/megazone.c | 6 +- src/mame/drivers/meijinsn.c | 6 +- src/mame/drivers/merit.c | 2 +- src/mame/drivers/meritm.c | 4 +- src/mame/drivers/metlclsh.c | 18 +- src/mame/drivers/metro.c | 54 +- src/mame/drivers/mgolf.c | 4 +- src/mame/drivers/mhavoc.c | 2 +- src/mame/drivers/micro3d.c | 16 +- src/mame/drivers/midvunit.c | 8 +- src/mame/drivers/midzeus.c | 8 +- src/mame/drivers/mikie.c | 4 +- src/mame/drivers/mirax.c | 2 +- src/mame/drivers/missb2.c | 4 +- src/mame/drivers/missile.c | 22 +- src/mame/drivers/mitchell.c | 6 +- src/mame/drivers/mlanding.c | 4 +- src/mame/drivers/model1.c | 20 +- src/mame/drivers/model2.c | 52 +- src/mame/drivers/model3.c | 14 +- src/mame/drivers/moo.c | 8 +- src/mame/drivers/mouser.c | 4 +- src/mame/drivers/mpu4.c | 4 +- src/mame/drivers/mpu4drvr.c | 16 +- src/mame/drivers/mrflea.c | 6 +- src/mame/drivers/ms32.c | 22 +- src/mame/drivers/msisaac.c | 4 +- src/mame/drivers/mugsmash.c | 4 +- src/mame/drivers/multigam.c | 4 +- src/mame/drivers/munchmo.c | 8 +- src/mame/drivers/mustache.c | 4 +- src/mame/drivers/mystston.c | 6 +- src/mame/drivers/mystwarr.c | 26 +- src/mame/drivers/n8080.c | 6 +- src/mame/drivers/namcofl.c | 6 +- src/mame/drivers/namcona1.c | 22 +- src/mame/drivers/namconb1.c | 64 +- src/mame/drivers/namcond1.c | 2 +- src/mame/drivers/namcos1.c | 8 +- src/mame/drivers/namcos11.c | 18 +- src/mame/drivers/namcos21.c | 8 +- src/mame/drivers/namcos22.c | 78 +- src/mame/drivers/namcos23.c | 4 +- src/mame/drivers/namcos86.c | 4 +- src/mame/drivers/naomi.c | 4 +- src/mame/drivers/naughtyb.c | 4 +- src/mame/drivers/nbmj9195.c | 6 +- src/mame/drivers/nemesis.c | 26 +- src/mame/drivers/neogeo.c | 16 +- src/mame/drivers/ninjakd2.c | 6 +- src/mame/drivers/ninjaw.c | 4 +- src/mame/drivers/niyanpai.c | 2 +- src/mame/drivers/nmg5.c | 4 +- src/mame/drivers/nmk16.c | 14 +- src/mame/drivers/nwk-tr.c | 12 +- src/mame/drivers/nycaptor.c | 8 +- src/mame/drivers/nyny.c | 16 +- src/mame/drivers/offtwall.c | 6 +- src/mame/drivers/ojankohs.c | 2 +- src/mame/drivers/olibochu.c | 6 +- src/mame/drivers/omegrace.c | 2 +- src/mame/drivers/oneshot.c | 2 +- src/mame/drivers/onetwo.c | 4 +- src/mame/drivers/opwolf.c | 2 +- src/mame/drivers/orbit.c | 8 +- src/mame/drivers/othunder.c | 8 +- src/mame/drivers/overdriv.c | 16 +- src/mame/drivers/pacland.c | 6 +- src/mame/drivers/pacman.c | 18 +- src/mame/drivers/pandoras.c | 22 +- src/mame/drivers/panicr.c | 6 +- src/mame/drivers/parodius.c | 10 +- src/mame/drivers/pasha2.c | 2 +- src/mame/drivers/pbaction.c | 4 +- src/mame/drivers/pcktgal.c | 4 +- src/mame/drivers/peplus.c | 10 +- src/mame/drivers/pgm.c | 48 +- src/mame/drivers/pingpong.c | 8 +- src/mame/drivers/pipedrm.c | 6 +- src/mame/drivers/pipeline.c | 2 +- src/mame/drivers/pitnrun.c | 2 +- src/mame/drivers/pkscram.c | 8 +- src/mame/drivers/playch10.c | 4 +- src/mame/drivers/playmark.c | 2 +- src/mame/drivers/plygonet.c | 20 +- src/mame/drivers/pntnpuzl.c | 12 +- src/mame/drivers/pokechmp.c | 2 +- src/mame/drivers/polepos.c | 12 +- src/mame/drivers/policetr.c | 10 +- src/mame/drivers/polyplay.c | 8 +- src/mame/drivers/poolshrk.c | 2 +- src/mame/drivers/pooyan.c | 4 +- src/mame/drivers/popeye.c | 4 +- src/mame/drivers/popper.c | 2 +- src/mame/drivers/powerins.c | 2 +- src/mame/drivers/prehisle.c | 4 +- src/mame/drivers/progolf.c | 2 +- src/mame/drivers/psikyo.c | 10 +- src/mame/drivers/psikyo4.c | 12 +- src/mame/drivers/psikyosh.c | 8 +- src/mame/drivers/psychic5.c | 8 +- src/mame/drivers/pturn.c | 4 +- src/mame/drivers/punchout.c | 4 +- src/mame/drivers/pushman.c | 6 +- src/mame/drivers/qdrmfgp.c | 20 +- src/mame/drivers/quasar.c | 2 +- src/mame/drivers/quizpun2.c | 4 +- src/mame/drivers/r2dtank.c | 6 +- src/mame/drivers/rabbit.c | 10 +- src/mame/drivers/raiden.c | 6 +- src/mame/drivers/raiden2.c | 4 +- src/mame/drivers/rainbow.c | 4 +- src/mame/drivers/rallyx.c | 6 +- src/mame/drivers/rampart.c | 4 +- src/mame/drivers/rastan.c | 2 +- src/mame/drivers/re900.c | 4 +- src/mame/drivers/realbrk.c | 4 +- src/mame/drivers/redalert.c | 8 +- src/mame/drivers/redclash.c | 10 +- src/mame/drivers/relief.c | 2 +- src/mame/drivers/renegade.c | 10 +- src/mame/drivers/retofinv.c | 14 +- src/mame/drivers/rockola.c | 16 +- src/mame/drivers/rockrage.c | 4 +- src/mame/drivers/rohga.c | 2 +- src/mame/drivers/rollerg.c | 6 +- src/mame/drivers/rotaryf.c | 6 +- src/mame/drivers/route16.c | 2 +- src/mame/drivers/royalmah.c | 16 +- src/mame/drivers/rpunch.c | 6 +- src/mame/drivers/runaway.c | 4 +- src/mame/drivers/rungun.c | 10 +- src/mame/drivers/sandscrp.c | 12 +- src/mame/drivers/sangho.c | 2 +- src/mame/drivers/sauro.c | 6 +- src/mame/drivers/sbasketb.c | 2 +- src/mame/drivers/sbowling.c | 4 +- src/mame/drivers/sbrkout.c | 8 +- src/mame/drivers/scotrsht.c | 4 +- src/mame/drivers/seattle.c | 28 +- src/mame/drivers/segac2.c | 2 +- src/mame/drivers/segae.c | 14 +- src/mame/drivers/segag80r.c | 6 +- src/mame/drivers/segag80v.c | 4 +- src/mame/drivers/segahang.c | 20 +- src/mame/drivers/segaorun.c | 24 +- src/mame/drivers/segas16a.c | 18 +- src/mame/drivers/segas16b.c | 26 +- src/mame/drivers/segas18.c | 8 +- src/mame/drivers/segas24.c | 52 +- src/mame/drivers/segas32.c | 16 +- src/mame/drivers/segaxbd.c | 30 +- src/mame/drivers/segaybd.c | 32 +- src/mame/drivers/seibuspi.c | 62 +- src/mame/drivers/seicross.c | 6 +- src/mame/drivers/sengokmj.c | 2 +- src/mame/drivers/senjyo.c | 2 +- src/mame/drivers/seta.c | 68 +- src/mame/drivers/seta2.c | 10 +- src/mame/drivers/sf.c | 4 +- src/mame/drivers/sg1000a.c | 4 +- src/mame/drivers/shadfrce.c | 14 +- src/mame/drivers/shangha3.c | 4 +- src/mame/drivers/shanghai.c | 2 +- src/mame/drivers/shangkid.c | 14 +- src/mame/drivers/shaolins.c | 6 +- src/mame/drivers/shootout.c | 10 +- src/mame/drivers/shougi.c | 12 +- src/mame/drivers/shuuz.c | 2 +- src/mame/drivers/sidearms.c | 2 +- src/mame/drivers/sidepckt.c | 8 +- src/mame/drivers/simpl156.c | 12 +- src/mame/drivers/simpsons.c | 10 +- src/mame/drivers/skullxbo.c | 8 +- src/mame/drivers/skyarmy.c | 2 +- src/mame/drivers/skydiver.c | 10 +- src/mame/drivers/skyfox.c | 2 +- src/mame/drivers/skykid.c | 6 +- src/mame/drivers/skylncr.c | 2 +- src/mame/drivers/slapshot.c | 8 +- src/mame/drivers/sliver.c | 4 +- src/mame/drivers/snk.c | 18 +- src/mame/drivers/snk68.c | 4 +- src/mame/drivers/snowbros.c | 18 +- src/mame/drivers/solomon.c | 2 +- src/mame/drivers/sonson.c | 2 +- src/mame/drivers/spacefb.c | 2 +- src/mame/drivers/spbactn.c | 4 +- src/mame/drivers/spcforce.c | 2 +- src/mame/drivers/spdodgeb.c | 4 +- src/mame/drivers/speedspn.c | 2 +- src/mame/drivers/speglsht.c | 2 +- src/mame/drivers/spiders.c | 12 +- src/mame/drivers/splash.c | 6 +- src/mame/drivers/sprcros2.c | 8 +- src/mame/drivers/sprint2.c | 16 +- src/mame/drivers/sprint4.c | 2 +- src/mame/drivers/sprint8.c | 4 +- src/mame/drivers/spy.c | 8 +- src/mame/drivers/srmp2.c | 6 +- src/mame/drivers/srmp5.c | 2 +- src/mame/drivers/srmp6.c | 6 +- src/mame/drivers/srumbler.c | 6 +- src/mame/drivers/ssfindo.c | 6 +- src/mame/drivers/sshangha.c | 6 +- src/mame/drivers/sslam.c | 2 +- src/mame/drivers/ssozumo.c | 8 +- src/mame/drivers/sspeedr.c | 2 +- src/mame/drivers/ssv.c | 16 +- src/mame/drivers/st0016.c | 8 +- src/mame/drivers/stactics.c | 6 +- src/mame/drivers/stadhero.c | 4 +- src/mame/drivers/starshp1.c | 4 +- src/mame/drivers/starwars.c | 2 +- src/mame/drivers/statriv2.c | 2 +- src/mame/drivers/steaser.c | 4 +- src/mame/drivers/strnskil.c | 2 +- src/mame/drivers/stv.c | 100 +-- src/mame/drivers/stvinit.c | 152 ++-- src/mame/drivers/suna16.c | 8 +- src/mame/drivers/suna8.c | 18 +- src/mame/drivers/supbtime.c | 4 +- src/mame/drivers/superchs.c | 10 +- src/mame/drivers/superdq.c | 4 +- src/mame/drivers/superqix.c | 14 +- src/mame/drivers/supertnk.c | 4 +- src/mame/drivers/suprgolf.c | 2 +- src/mame/drivers/suprloco.c | 4 +- src/mame/drivers/suprnova.c | 52 +- src/mame/drivers/suprridr.c | 6 +- src/mame/drivers/suprslam.c | 4 +- src/mame/drivers/surpratk.c | 4 +- src/mame/drivers/system1.c | 4 +- src/mame/drivers/system16.c | 10 +- src/mame/drivers/system18.c | 10 +- src/mame/drivers/tagteam.c | 6 +- src/mame/drivers/tail2nos.c | 4 +- src/mame/drivers/taito_b.c | 42 +- src/mame/drivers/taito_f2.c | 10 +- src/mame/drivers/taito_f3.c | 16 +- src/mame/drivers/taito_h.c | 2 +- src/mame/drivers/taito_l.c | 22 +- src/mame/drivers/taito_x.c | 2 +- src/mame/drivers/taito_z.c | 22 +- src/mame/drivers/taitoair.c | 4 +- src/mame/drivers/taitojc.c | 10 +- src/mame/drivers/taitosj.c | 2 +- src/mame/drivers/taitowlf.c | 6 +- src/mame/drivers/tank8.c | 4 +- src/mame/drivers/tankbatt.c | 12 +- src/mame/drivers/tankbust.c | 2 +- src/mame/drivers/taotaido.c | 4 +- src/mame/drivers/targeth.c | 8 +- src/mame/drivers/tatsumi.c | 8 +- src/mame/drivers/tbowl.c | 6 +- src/mame/drivers/tceptor.c | 6 +- src/mame/drivers/tecmo.c | 4 +- src/mame/drivers/tecmo16.c | 4 +- src/mame/drivers/tecmosys.c | 4 +- src/mame/drivers/tehkanwc.c | 8 +- src/mame/drivers/tempest.c | 4 +- src/mame/drivers/tetrisp2.c | 8 +- src/mame/drivers/thayers.c | 10 +- src/mame/drivers/thedeep.c | 14 +- src/mame/drivers/thief.c | 6 +- src/mame/drivers/thunderj.c | 12 +- src/mame/drivers/thunderx.c | 6 +- src/mame/drivers/tickee.c | 4 +- src/mame/drivers/tigeroad.c | 2 +- src/mame/drivers/timelimt.c | 4 +- src/mame/drivers/timeplt.c | 4 +- src/mame/drivers/tmaster.c | 18 +- src/mame/drivers/tmnt.c | 26 +- src/mame/drivers/tnzs.c | 4 +- src/mame/drivers/toaplan1.c | 2 +- src/mame/drivers/toaplan2.c | 36 +- src/mame/drivers/toki.c | 4 +- src/mame/drivers/topspeed.c | 12 +- src/mame/drivers/toratora.c | 14 +- src/mame/drivers/toypop.c | 22 +- src/mame/drivers/tp84.c | 4 +- src/mame/drivers/triplhnt.c | 2 +- src/mame/drivers/truco.c | 4 +- src/mame/drivers/trucocl.c | 4 +- src/mame/drivers/trvmadns.c | 2 +- src/mame/drivers/trvquest.c | 6 +- src/mame/drivers/tryout.c | 10 +- src/mame/drivers/tsamurai.c | 12 +- src/mame/drivers/ttchamp.c | 2 +- src/mame/drivers/tubep.c | 32 +- src/mame/drivers/tugboat.c | 2 +- src/mame/drivers/tumbleb.c | 18 +- src/mame/drivers/tumblep.c | 6 +- src/mame/drivers/turbo.c | 2 +- src/mame/drivers/turbosub.c | 4 +- src/mame/drivers/tutankhm.c | 4 +- src/mame/drivers/twin16.c | 12 +- src/mame/drivers/twincobr.c | 2 +- src/mame/drivers/tx1.c | 10 +- src/mame/drivers/uapce.c | 2 +- src/mame/drivers/ultraman.c | 2 +- src/mame/drivers/ultratnk.c | 2 +- src/mame/drivers/ultrsprt.c | 10 +- src/mame/drivers/undrfire.c | 6 +- src/mame/drivers/vamphalf.c | 40 +- src/mame/drivers/vaportra.c | 6 +- src/mame/drivers/vastar.c | 6 +- src/mame/drivers/vball.c | 4 +- src/mame/drivers/vegas.c | 6 +- src/mame/drivers/vendetta.c | 10 +- src/mame/drivers/vicdual.c | 2 +- src/mame/drivers/videopin.c | 8 +- src/mame/drivers/videopkr.c | 2 +- src/mame/drivers/vindictr.c | 4 +- src/mame/drivers/volfied.c | 2 +- src/mame/drivers/vulgus.c | 6 +- src/mame/drivers/wardner.c | 2 +- src/mame/drivers/warpwarp.c | 2 +- src/mame/drivers/warriorb.c | 2 +- src/mame/drivers/wc90.c | 4 +- src/mame/drivers/wc90b.c | 6 +- src/mame/drivers/wecleman.c | 18 +- src/mame/drivers/welltris.c | 4 +- src/mame/drivers/wgp.c | 12 +- src/mame/drivers/wheelfir.c | 6 +- src/mame/drivers/wink.c | 2 +- src/mame/drivers/wiping.c | 4 +- src/mame/drivers/witch.c | 6 +- src/mame/drivers/wolfpack.c | 2 +- src/mame/drivers/wwfsstar.c | 18 +- src/mame/drivers/wwfwfest.c | 10 +- src/mame/drivers/xain.c | 24 +- src/mame/drivers/xexex.c | 18 +- src/mame/drivers/xmen.c | 12 +- src/mame/drivers/xorworld.c | 8 +- src/mame/drivers/xxmissio.c | 8 +- src/mame/drivers/xybots.c | 4 +- src/mame/drivers/xyonix.c | 2 +- src/mame/drivers/yiear.c | 2 +- src/mame/drivers/yunsun16.c | 4 +- src/mame/drivers/yunsung8.c | 2 +- src/mame/drivers/zaccaria.c | 8 +- src/mame/drivers/zaxxon.c | 6 +- src/mame/drivers/zerozone.c | 2 +- src/mame/drivers/zn.c | 20 +- src/mame/drivers/zr107.c | 14 +- src/mame/etc/jrcrypt.c | 2 +- src/mame/includes/jaguar.h | 8 +- src/mame/includes/system16.h | 2 +- src/mame/machine/ajax.c | 6 +- src/mame/machine/amiga.c | 32 +- src/mame/machine/arkanoid.c | 2 +- src/mame/machine/asic65.c | 16 +- src/mame/machine/asteroid.c | 12 +- src/mame/machine/atari.c | 2 +- src/mame/machine/atarifb.c | 2 +- src/mame/machine/atarigen.c | 32 +- src/mame/machine/balsente.c | 18 +- src/mame/machine/beezer.c | 8 +- src/mame/machine/bigevglf.c | 4 +- src/mame/machine/bsktball.c | 4 +- src/mame/machine/bublbobl.c | 24 +- src/mame/machine/buggychl.c | 6 +- src/mame/machine/carpolo.c | 8 +- src/mame/machine/dc.c | 6 +- src/mame/machine/dec0.c | 8 +- src/mame/machine/decocass.c | 12 +- src/mame/machine/decoprot.c | 16 +- src/mame/machine/docastle.c | 14 +- src/mame/machine/flstory.c | 4 +- src/mame/machine/gaelco2.c | 8 +- src/mame/machine/galaxold.c | 4 +- src/mame/machine/harddriv.c | 92 +-- src/mame/machine/irobot.c | 6 +- src/mame/machine/jackal.c | 2 +- src/mame/machine/konppc.c | 14 +- src/mame/machine/leland.c | 22 +- src/mame/machine/lkage.c | 4 +- src/mame/machine/lsasquad.c | 8 +- src/mame/machine/mcr.c | 22 +- src/mame/machine/mexico86.c | 22 +- src/mame/machine/mhavoc.c | 14 +- src/mame/machine/midwunit.c | 4 +- src/mame/machine/midyunit.c | 2 +- src/mame/machine/model1.c | 4 +- src/mame/machine/mw8080bw.c | 2 +- src/mame/machine/n64.c | 16 +- src/mame/machine/namco50.c | 4 +- src/mame/machine/namcoio.c | 4 +- src/mame/machine/namcond1.c | 4 +- src/mame/machine/namcos1.c | 12 +- src/mame/machine/namcos2.c | 62 +- src/mame/machine/nb1413m3.c | 10 +- src/mame/machine/nycaptor.c | 4 +- src/mame/machine/pitnrun.c | 8 +- src/mame/machine/playch10.c | 6 +- src/mame/machine/psx.c | 6 +- src/mame/machine/qix.c | 26 +- src/mame/machine/retofinv.c | 4 +- src/mame/machine/s16fd.c | 12 +- src/mame/machine/s24fd.c | 4 +- src/mame/machine/scramble.c | 4 +- src/mame/machine/scudsp.c | 2 +- src/mame/machine/segaic16.c | 6 +- src/mame/machine/seicop.c | 4 +- src/mame/machine/simpsons.c | 2 +- src/mame/machine/slapfght.c | 12 +- src/mame/machine/slikshot.c | 4 +- src/mame/machine/snes.c | 12 +- src/mame/machine/stfight.c | 4 +- src/mame/machine/subs.c | 4 +- src/mame/machine/system16.c | 2 +- src/mame/machine/tait8741.c | 2 +- src/mame/machine/taitosj.c | 10 +- src/mame/machine/tatsumi.c | 36 +- src/mame/machine/tnzs.c | 18 +- src/mame/machine/toaplan1.c | 16 +- src/mame/machine/twincobr.c | 26 +- src/mame/machine/tx1.c | 2 +- src/mame/machine/vertigo.c | 16 +- src/mame/machine/vsnes.c | 6 +- src/mame/machine/williams.c | 10 +- src/mame/machine/xevious.c | 12 +- src/mame/video/1942.c | 2 +- src/mame/video/antic.c | 4 +- src/mame/video/arkanoid.c | 4 +- src/mame/video/astrocde.c | 16 +- src/mame/video/atari.c | 18 +- src/mame/video/atarisy1.c | 4 +- src/mame/video/battlera.c | 10 +- src/mame/video/beathead.c | 2 +- src/mame/video/beezer.c | 6 +- src/mame/video/bfm_adr2.c | 2 +- src/mame/video/blktiger.c | 2 +- src/mame/video/blockade.c | 2 +- src/mame/video/blstroid.c | 2 +- src/mame/video/btime.c | 2 +- src/mame/video/btoads.c | 2 +- src/mame/video/capbowl.c | 2 +- src/mame/video/cchasm.c | 4 +- src/mame/video/cidelsa.c | 2 +- src/mame/video/circus.c | 4 +- src/mame/video/cischeat.c | 26 +- src/mame/video/combatsc.c | 2 +- src/mame/video/commando.c | 2 +- src/mame/video/csk.c | 14 +- src/mame/video/dec8.c | 4 +- src/mame/video/decocass.c | 2 +- src/mame/video/exidy.c | 14 +- src/mame/video/exidy440.c | 6 +- src/mame/video/fromance.c | 2 +- src/mame/video/gameplan.c | 2 +- src/mame/video/ginganin.c | 2 +- src/mame/video/gticlub.c | 18 +- src/mame/video/hng64.c | 4 +- src/mame/video/homedata.c | 6 +- src/mame/video/jaguar.c | 12 +- src/mame/video/lethalj.c | 4 +- src/mame/video/liberate.c | 4 +- src/mame/video/lockon.c | 8 +- src/mame/video/megasys1.c | 12 +- src/mame/video/midtunit.c | 4 +- src/mame/video/midvunit.c | 4 +- src/mame/video/midyunit.c | 4 +- src/mame/video/midzeus.c | 4 +- src/mame/video/midzeus2.c | 2 +- src/mame/video/nemesis.c | 2 +- src/mame/video/playch10.c | 2 +- src/mame/video/policetr.c | 4 +- src/mame/video/ppu2c0x.c | 2 +- src/mame/video/psx.c | 4 +- src/mame/video/rpunch.c | 2 +- src/mame/video/segag80r.c | 6 +- src/mame/video/sidearms.c | 2 +- src/mame/video/spdodgeb.c | 10 +- src/mame/video/stvvdp1.c | 4 +- src/mame/video/taito_z.c | 2 +- src/mame/video/tia.c | 64 +- src/mame/video/tmnt.c | 6 +- src/mame/video/toaplan1.c | 2 +- src/mame/video/toaplan2.c | 2 +- src/mame/video/tubep.c | 4 +- src/mame/video/tx1.c | 2 +- src/mame/video/vball.c | 6 +- src/mame/video/vdc.c | 32 +- src/mame/video/victory.c | 6 +- src/mame/video/vindictr.c | 2 +- src/mame/video/vsnes.c | 2 +- src/mame/video/williams.c | 2 +- src/mame/video/ygv608.c | 4 +- src/mame/video/zaxxon.c | 2 +- 945 files changed, 6437 insertions(+), 6478 deletions(-) delete mode 100644 src/emu/cpuint.c delete mode 100644 src/emu/cpuint.h diff --git a/.gitattributes b/.gitattributes index 3e1a4af7b19..6474c431b2d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -494,8 +494,6 @@ src/emu/cpu/z8000/z8000ops.c svneol=native#text/plain src/emu/cpu/z8000/z8000tbl.c svneol=native#text/plain src/emu/cpuexec.c svneol=native#text/plain src/emu/cpuexec.h svneol=native#text/plain -src/emu/cpuint.c svneol=native#text/plain -src/emu/cpuint.h svneol=native#text/plain src/emu/cpuintrf.c svneol=native#text/plain src/emu/cpuintrf.h svneol=native#text/plain src/emu/crsshair.c svneol=native#text/plain diff --git a/src/emu/cpu/apexc/apexc.c b/src/emu/cpu/apexc/apexc.c index 7afd689290e..7c67726cc94 100644 --- a/src/emu/cpu/apexc/apexc.c +++ b/src/emu/cpu/apexc/apexc.c @@ -902,20 +902,20 @@ CPU_GET_INFO( apexc ) case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(apexc); break; case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &apexc_ICount; break; - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "APEXC"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "APEC"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Raphael Nabet"); break; + case CPUINFO_STR_NAME: strcpy(info->s, "APEXC"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "APEC"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Raphael Nabet"); break; - case CPUINFO_STR_FLAGS: sprintf(info->s = cpuintrf_temp_str(), "%c", (apexc.running) ? 'R' : 'S'); break; + case CPUINFO_STR_FLAGS: sprintf(info->s, "%c", (apexc.running) ? 'R' : 'S'); break; - case CPUINFO_STR_REGISTER + APEXC_CR: sprintf(info->s = cpuintrf_temp_str(), "CR:%08X", apexc.cr); break; - case CPUINFO_STR_REGISTER + APEXC_A: sprintf(info->s = cpuintrf_temp_str(), "A :%08X", apexc.a); break; - case CPUINFO_STR_REGISTER + APEXC_R: sprintf(info->s = cpuintrf_temp_str(), "R :%08X", apexc.r); break; - case CPUINFO_STR_REGISTER + APEXC_ML: sprintf(info->s = cpuintrf_temp_str(), "ML:%03X", apexc.ml); break; - case CPUINFO_STR_REGISTER + APEXC_WS: sprintf(info->s = cpuintrf_temp_str(), "WS:%01X", apexc.working_store); break; + case CPUINFO_STR_REGISTER + APEXC_CR: sprintf(info->s, "CR:%08X", apexc.cr); break; + case CPUINFO_STR_REGISTER + APEXC_A: sprintf(info->s, "A :%08X", apexc.a); break; + case CPUINFO_STR_REGISTER + APEXC_R: sprintf(info->s, "R :%08X", apexc.r); break; + case CPUINFO_STR_REGISTER + APEXC_ML: sprintf(info->s, "ML:%03X", apexc.ml); break; + case CPUINFO_STR_REGISTER + APEXC_WS: sprintf(info->s, "WS:%01X", apexc.working_store); break; - case CPUINFO_STR_REGISTER + APEXC_STATE: sprintf(info->s = cpuintrf_temp_str(), "CPU state:%01X", apexc.running ? TRUE : FALSE); break; + case CPUINFO_STR_REGISTER + APEXC_STATE: sprintf(info->s, "CPU state:%01X", apexc.running ? TRUE : FALSE); break; } } diff --git a/src/emu/cpu/cp1610/cp1610.c b/src/emu/cpu/cp1610/cp1610.c index 43a669168d0..d1704f721ef 100644 --- a/src/emu/cpu/cp1610/cp1610.c +++ b/src/emu/cpu/cp1610/cp1610.c @@ -21,7 +21,7 @@ * *****************************************************************************/ -#include "cpuintrf.h" +#include "cpuexec.h" #include "debugger.h" #include "deprecat.h" #include "cp1610.h" @@ -1551,7 +1551,7 @@ static void cp1610_xori(int d) static CPU_RESET( cp1610 ) { /* This is how we set the reset vector */ - cpunum_set_input_line(Machine, cpunum_get_active(), CP1610_RESET, PULSE_LINE); + cpu_set_input_line(Machine->activecpu, CP1610_RESET, PULSE_LINE); } /*************************************************** @@ -3498,28 +3498,28 @@ CPU_GET_INFO( cp1610 ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cp1610_icount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "CP1610"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), ""); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), + case CPUINFO_STR_NAME: strcpy(info->s, "CP1610"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, ""); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Frank Palazzolo, all rights reserved."); break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c", + sprintf(info->s, "%c%c%c%c", cp1610.flags & 0x80 ? 'S':'.', cp1610.flags & 0x40 ? 'Z':'.', cp1610.flags & 0x10 ? 'V':'.', cp1610.flags & 0x10 ? 'C':'.'); break; - case CPUINFO_STR_REGISTER+CP1610_R0: sprintf(info->s = cpuintrf_temp_str(), "R0:%04X", cp1610.r[0]); break; - case CPUINFO_STR_REGISTER+CP1610_R1: sprintf(info->s = cpuintrf_temp_str(), "R1:%04X", cp1610.r[1]); break; - case CPUINFO_STR_REGISTER+CP1610_R2: sprintf(info->s = cpuintrf_temp_str(), "R2:%04X", cp1610.r[2]); break; - case CPUINFO_STR_REGISTER+CP1610_R3: sprintf(info->s = cpuintrf_temp_str(), "R3:%04X", cp1610.r[3]); break; - case CPUINFO_STR_REGISTER+CP1610_R4: sprintf(info->s = cpuintrf_temp_str(), "R4:%04X", cp1610.r[4]); break; - case CPUINFO_STR_REGISTER+CP1610_R5: sprintf(info->s = cpuintrf_temp_str(), "R5:%04X", cp1610.r[5]); break; - case CPUINFO_STR_REGISTER+CP1610_R6: sprintf(info->s = cpuintrf_temp_str(), "R6:%04X", cp1610.r[6]); break; - case CPUINFO_STR_REGISTER+CP1610_R7: sprintf(info->s = cpuintrf_temp_str(), "R7:%04X", cp1610.r[7]); break; + case CPUINFO_STR_REGISTER+CP1610_R0: sprintf(info->s, "R0:%04X", cp1610.r[0]); break; + case CPUINFO_STR_REGISTER+CP1610_R1: sprintf(info->s, "R1:%04X", cp1610.r[1]); break; + case CPUINFO_STR_REGISTER+CP1610_R2: sprintf(info->s, "R2:%04X", cp1610.r[2]); break; + case CPUINFO_STR_REGISTER+CP1610_R3: sprintf(info->s, "R3:%04X", cp1610.r[3]); break; + case CPUINFO_STR_REGISTER+CP1610_R4: sprintf(info->s, "R4:%04X", cp1610.r[4]); break; + case CPUINFO_STR_REGISTER+CP1610_R5: sprintf(info->s, "R5:%04X", cp1610.r[5]); break; + case CPUINFO_STR_REGISTER+CP1610_R6: sprintf(info->s, "R6:%04X", cp1610.r[6]); break; + case CPUINFO_STR_REGISTER+CP1610_R7: sprintf(info->s, "R7:%04X", cp1610.r[7]); break; } return; diff --git a/src/emu/cpu/e132xs/e132xs.c b/src/emu/cpu/e132xs/e132xs.c index f44ad8c489a..b3ae53f714b 100644 --- a/src/emu/cpu/e132xs/e132xs.c +++ b/src/emu/cpu/e132xs/e132xs.c @@ -213,6 +213,7 @@ #include "debugger.h" #include "deprecat.h" +#include "cpuexec.h" #include "eminline.h" #include "e132xs.h" #include "osd_cpu.h" @@ -604,7 +605,7 @@ static void hyperstone_set_trap_entry(int which) static UINT32 compute_tr(void) { - UINT64 cycles_since_base = activecpu_gettotalcycles() - hyperstone.tr_base_cycles; + UINT64 cycles_since_base = cpu_get_total_cycles(Machine->activecpu) - hyperstone.tr_base_cycles; UINT64 clocks_since_base = cycles_since_base >> hyperstone.clock_scale; return hyperstone.tr_base_value + (clocks_since_base / hyperstone.tr_clocks_per_tick); } @@ -620,12 +621,12 @@ static void update_timer_prescale(void) hyperstone.clock_cycles_6 = 6 << hyperstone.clock_scale; hyperstone.tr_clocks_per_tick = ((TPR >> 16) & 0xff) + 2; hyperstone.tr_base_value = prevtr; - hyperstone.tr_base_cycles = activecpu_gettotalcycles(); + hyperstone.tr_base_cycles = cpu_get_total_cycles(Machine->activecpu); } static void adjust_timer_interrupt(void) { - UINT64 cycles_since_base = activecpu_gettotalcycles() - hyperstone.tr_base_cycles; + UINT64 cycles_since_base = cpu_get_total_cycles(Machine->activecpu) - hyperstone.tr_base_cycles; UINT64 clocks_since_base = cycles_since_base >> hyperstone.clock_scale; UINT64 cycles_until_next_clock = cycles_since_base - (clocks_since_base << hyperstone.clock_scale); int cpunum = cpunum_get_active(); @@ -800,7 +801,7 @@ INLINE void set_global_register(UINT8 code, UINT32 val) */ case TR_REGISTER: hyperstone.tr_base_value = val; - hyperstone.tr_base_cycles = activecpu_gettotalcycles(); + hyperstone.tr_base_cycles = cpu_get_total_cycles(Machine->activecpu); adjust_timer_interrupt(); break; diff --git a/src/emu/cpu/f8/f8.c b/src/emu/cpu/f8/f8.c index b9c3c7d82a4..de56f116846 100644 --- a/src/emu/cpu/f8/f8.c +++ b/src/emu/cpu/f8/f8.c @@ -2121,16 +2121,16 @@ CPU_GET_INFO( f8 ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &f8_icount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "F8"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "Fairchild F8"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), + case CPUINFO_STR_NAME: strcpy(info->s, "F8"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "Fairchild F8"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Juergen Buchmueller, all rights reserved."); break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c%c", + sprintf(info->s, "%c%c%c%c%c", f8.w & 0x10 ? 'I':'.', f8.w & 0x08 ? 'O':'.', f8.w & 0x04 ? 'Z':'.', @@ -2138,77 +2138,77 @@ CPU_GET_INFO( f8 ) f8.w & 0x01 ? 'S':'.'); break; - case CPUINFO_STR_REGISTER+F8_PC0:sprintf(info->s = cpuintrf_temp_str(), "PC0:%04X", ((f8.pc0) - 1) & 0xffff); break; - case CPUINFO_STR_REGISTER+F8_PC1:sprintf(info->s = cpuintrf_temp_str(), "PC1:%04X", f8.pc1); break; - case CPUINFO_STR_REGISTER+F8_DC0:sprintf(info->s = cpuintrf_temp_str(), "DC0:%04X", f8.dc0); break; - case CPUINFO_STR_REGISTER+F8_DC1:sprintf(info->s = cpuintrf_temp_str(), "DC1:%04X", f8.dc1); break; - case CPUINFO_STR_REGISTER+F8_W: sprintf(info->s = cpuintrf_temp_str(), "W :%02X", f8.w); break; - case CPUINFO_STR_REGISTER+F8_A: sprintf(info->s = cpuintrf_temp_str(), "A :%02X", f8.a); break; - case CPUINFO_STR_REGISTER+F8_IS: sprintf(info->s = cpuintrf_temp_str(), "IS :%02X", f8.is); break; - case CPUINFO_STR_REGISTER+F8_J: sprintf(info->s = cpuintrf_temp_str(), "J :%02X", f8.r[9]); break; - case CPUINFO_STR_REGISTER+F8_HU: sprintf(info->s = cpuintrf_temp_str(), "HU :%02X", f8.r[10]); break; - case CPUINFO_STR_REGISTER+F8_HL: sprintf(info->s = cpuintrf_temp_str(), "HL :%02X", f8.r[11]); break; - case CPUINFO_STR_REGISTER+F8_KU: sprintf(info->s = cpuintrf_temp_str(), "KU :%02X", f8.r[12]); break; - case CPUINFO_STR_REGISTER+F8_KL: sprintf(info->s = cpuintrf_temp_str(), "KL :%02X", f8.r[13]); break; - case CPUINFO_STR_REGISTER+F8_QU: sprintf(info->s = cpuintrf_temp_str(), "QU :%02X", f8.r[14]); break; - case CPUINFO_STR_REGISTER+F8_QL: sprintf(info->s = cpuintrf_temp_str(), "QL :%02X", f8.r[15]); break; - case CPUINFO_STR_REGISTER+F8_R0: sprintf(info->s = cpuintrf_temp_str(), "R0 :%02X", f8.r[0]); break; - case CPUINFO_STR_REGISTER+F8_R1: sprintf(info->s = cpuintrf_temp_str(), "R1 :%02X", f8.r[1]); break; - case CPUINFO_STR_REGISTER+F8_R2: sprintf(info->s = cpuintrf_temp_str(), "R2 :%02X", f8.r[2]); break; - case CPUINFO_STR_REGISTER+F8_R3: sprintf(info->s = cpuintrf_temp_str(), "R3 :%02X", f8.r[3]); break; - case CPUINFO_STR_REGISTER+F8_R4: sprintf(info->s = cpuintrf_temp_str(), "R4 :%02X", f8.r[4]); break; - case CPUINFO_STR_REGISTER+F8_R5: sprintf(info->s = cpuintrf_temp_str(), "R5 :%02X", f8.r[5]); break; - case CPUINFO_STR_REGISTER+F8_R6: sprintf(info->s = cpuintrf_temp_str(), "R6 :%02X", f8.r[6]); break; - case CPUINFO_STR_REGISTER+F8_R7: sprintf(info->s = cpuintrf_temp_str(), "R7 :%02X", f8.r[7]); break; - case CPUINFO_STR_REGISTER+F8_R8: sprintf(info->s = cpuintrf_temp_str(), "R8 :%02X", f8.r[8]); break; - case CPUINFO_STR_REGISTER+F8_R16: sprintf(info->s = cpuintrf_temp_str(), "R16 :%02X", f8.r[16]); break; - case CPUINFO_STR_REGISTER+F8_R17: sprintf(info->s = cpuintrf_temp_str(), "R17 :%02X", f8.r[17]); break; - case CPUINFO_STR_REGISTER+F8_R18: sprintf(info->s = cpuintrf_temp_str(), "R18 :%02X", f8.r[18]); break; - case CPUINFO_STR_REGISTER+F8_R19: sprintf(info->s = cpuintrf_temp_str(), "R19 :%02X", f8.r[19]); break; - case CPUINFO_STR_REGISTER+F8_R20: sprintf(info->s = cpuintrf_temp_str(), "R20 :%02X", f8.r[20]); break; - case CPUINFO_STR_REGISTER+F8_R21: sprintf(info->s = cpuintrf_temp_str(), "R21 :%02X", f8.r[21]); break; - case CPUINFO_STR_REGISTER+F8_R22: sprintf(info->s = cpuintrf_temp_str(), "R22 :%02X", f8.r[22]); break; - case CPUINFO_STR_REGISTER+F8_R23: sprintf(info->s = cpuintrf_temp_str(), "R23 :%02X", f8.r[23]); break; - case CPUINFO_STR_REGISTER+F8_R24: sprintf(info->s = cpuintrf_temp_str(), "R24 :%02X", f8.r[24]); break; - case CPUINFO_STR_REGISTER+F8_R25: sprintf(info->s = cpuintrf_temp_str(), "R25 :%02X", f8.r[25]); break; - case CPUINFO_STR_REGISTER+F8_R26: sprintf(info->s = cpuintrf_temp_str(), "R26 :%02X", f8.r[26]); break; - case CPUINFO_STR_REGISTER+F8_R27: sprintf(info->s = cpuintrf_temp_str(), "R27 :%02X", f8.r[27]); break; - case CPUINFO_STR_REGISTER+F8_R28: sprintf(info->s = cpuintrf_temp_str(), "R28 :%02X", f8.r[28]); break; - case CPUINFO_STR_REGISTER+F8_R29: sprintf(info->s = cpuintrf_temp_str(), "R29 :%02X", f8.r[29]); break; - case CPUINFO_STR_REGISTER+F8_R30: sprintf(info->s = cpuintrf_temp_str(), "R30 :%02X", f8.r[30]); break; - case CPUINFO_STR_REGISTER+F8_R31: sprintf(info->s = cpuintrf_temp_str(), "R31 :%02X", f8.r[31]); break; - case CPUINFO_STR_REGISTER+F8_R32: sprintf(info->s = cpuintrf_temp_str(), "R32 :%02X", f8.r[32]); break; - case CPUINFO_STR_REGISTER+F8_R33: sprintf(info->s = cpuintrf_temp_str(), "R33 :%02X", f8.r[33]); break; - case CPUINFO_STR_REGISTER+F8_R34: sprintf(info->s = cpuintrf_temp_str(), "R34 :%02X", f8.r[34]); break; - case CPUINFO_STR_REGISTER+F8_R35: sprintf(info->s = cpuintrf_temp_str(), "R35 :%02X", f8.r[35]); break; - case CPUINFO_STR_REGISTER+F8_R36: sprintf(info->s = cpuintrf_temp_str(), "R36 :%02X", f8.r[36]); break; - case CPUINFO_STR_REGISTER+F8_R37: sprintf(info->s = cpuintrf_temp_str(), "R37 :%02X", f8.r[37]); break; - case CPUINFO_STR_REGISTER+F8_R38: sprintf(info->s = cpuintrf_temp_str(), "R38 :%02X", f8.r[38]); break; - case CPUINFO_STR_REGISTER+F8_R39: sprintf(info->s = cpuintrf_temp_str(), "R39 :%02X", f8.r[39]); break; - case CPUINFO_STR_REGISTER+F8_R40: sprintf(info->s = cpuintrf_temp_str(), "R40 :%02X", f8.r[40]); break; - case CPUINFO_STR_REGISTER+F8_R41: sprintf(info->s = cpuintrf_temp_str(), "R41 :%02X", f8.r[41]); break; - case CPUINFO_STR_REGISTER+F8_R42: sprintf(info->s = cpuintrf_temp_str(), "R42 :%02X", f8.r[42]); break; - case CPUINFO_STR_REGISTER+F8_R43: sprintf(info->s = cpuintrf_temp_str(), "R43 :%02X", f8.r[43]); break; - case CPUINFO_STR_REGISTER+F8_R44: sprintf(info->s = cpuintrf_temp_str(), "R44 :%02X", f8.r[44]); break; - case CPUINFO_STR_REGISTER+F8_R45: sprintf(info->s = cpuintrf_temp_str(), "R45 :%02X", f8.r[45]); break; - case CPUINFO_STR_REGISTER+F8_R46: sprintf(info->s = cpuintrf_temp_str(), "R46 :%02X", f8.r[46]); break; - case CPUINFO_STR_REGISTER+F8_R47: sprintf(info->s = cpuintrf_temp_str(), "R47 :%02X", f8.r[47]); break; - case CPUINFO_STR_REGISTER+F8_R48: sprintf(info->s = cpuintrf_temp_str(), "R48 :%02X", f8.r[48]); break; - case CPUINFO_STR_REGISTER+F8_R49: sprintf(info->s = cpuintrf_temp_str(), "R49 :%02X", f8.r[49]); break; - case CPUINFO_STR_REGISTER+F8_R50: sprintf(info->s = cpuintrf_temp_str(), "R50 :%02X", f8.r[50]); break; - case CPUINFO_STR_REGISTER+F8_R51: sprintf(info->s = cpuintrf_temp_str(), "R51 :%02X", f8.r[51]); break; - case CPUINFO_STR_REGISTER+F8_R52: sprintf(info->s = cpuintrf_temp_str(), "R52 :%02X", f8.r[52]); break; - case CPUINFO_STR_REGISTER+F8_R53: sprintf(info->s = cpuintrf_temp_str(), "R53 :%02X", f8.r[53]); break; - case CPUINFO_STR_REGISTER+F8_R54: sprintf(info->s = cpuintrf_temp_str(), "R54 :%02X", f8.r[54]); break; - case CPUINFO_STR_REGISTER+F8_R55: sprintf(info->s = cpuintrf_temp_str(), "R55 :%02X", f8.r[55]); break; - case CPUINFO_STR_REGISTER+F8_R56: sprintf(info->s = cpuintrf_temp_str(), "R56 :%02X", f8.r[56]); break; - case CPUINFO_STR_REGISTER+F8_R57: sprintf(info->s = cpuintrf_temp_str(), "R57 :%02X", f8.r[57]); break; - case CPUINFO_STR_REGISTER+F8_R58: sprintf(info->s = cpuintrf_temp_str(), "R58 :%02X", f8.r[58]); break; - case CPUINFO_STR_REGISTER+F8_R59: sprintf(info->s = cpuintrf_temp_str(), "R59 :%02X", f8.r[59]); break; - case CPUINFO_STR_REGISTER+F8_R60: sprintf(info->s = cpuintrf_temp_str(), "R60 :%02X", f8.r[60]); break; - case CPUINFO_STR_REGISTER+F8_R61: sprintf(info->s = cpuintrf_temp_str(), "R61 :%02X", f8.r[61]); break; - case CPUINFO_STR_REGISTER+F8_R62: sprintf(info->s = cpuintrf_temp_str(), "R62 :%02X", f8.r[62]); break; - case CPUINFO_STR_REGISTER+F8_R63: sprintf(info->s = cpuintrf_temp_str(), "R63 :%02X", f8.r[63]); break; + case CPUINFO_STR_REGISTER+F8_PC0:sprintf(info->s, "PC0:%04X", ((f8.pc0) - 1) & 0xffff); break; + case CPUINFO_STR_REGISTER+F8_PC1:sprintf(info->s, "PC1:%04X", f8.pc1); break; + case CPUINFO_STR_REGISTER+F8_DC0:sprintf(info->s, "DC0:%04X", f8.dc0); break; + case CPUINFO_STR_REGISTER+F8_DC1:sprintf(info->s, "DC1:%04X", f8.dc1); break; + case CPUINFO_STR_REGISTER+F8_W: sprintf(info->s, "W :%02X", f8.w); break; + case CPUINFO_STR_REGISTER+F8_A: sprintf(info->s, "A :%02X", f8.a); break; + case CPUINFO_STR_REGISTER+F8_IS: sprintf(info->s, "IS :%02X", f8.is); break; + case CPUINFO_STR_REGISTER+F8_J: sprintf(info->s, "J :%02X", f8.r[9]); break; + case CPUINFO_STR_REGISTER+F8_HU: sprintf(info->s, "HU :%02X", f8.r[10]); break; + case CPUINFO_STR_REGISTER+F8_HL: sprintf(info->s, "HL :%02X", f8.r[11]); break; + case CPUINFO_STR_REGISTER+F8_KU: sprintf(info->s, "KU :%02X", f8.r[12]); break; + case CPUINFO_STR_REGISTER+F8_KL: sprintf(info->s, "KL :%02X", f8.r[13]); break; + case CPUINFO_STR_REGISTER+F8_QU: sprintf(info->s, "QU :%02X", f8.r[14]); break; + case CPUINFO_STR_REGISTER+F8_QL: sprintf(info->s, "QL :%02X", f8.r[15]); break; + case CPUINFO_STR_REGISTER+F8_R0: sprintf(info->s, "R0 :%02X", f8.r[0]); break; + case CPUINFO_STR_REGISTER+F8_R1: sprintf(info->s, "R1 :%02X", f8.r[1]); break; + case CPUINFO_STR_REGISTER+F8_R2: sprintf(info->s, "R2 :%02X", f8.r[2]); break; + case CPUINFO_STR_REGISTER+F8_R3: sprintf(info->s, "R3 :%02X", f8.r[3]); break; + case CPUINFO_STR_REGISTER+F8_R4: sprintf(info->s, "R4 :%02X", f8.r[4]); break; + case CPUINFO_STR_REGISTER+F8_R5: sprintf(info->s, "R5 :%02X", f8.r[5]); break; + case CPUINFO_STR_REGISTER+F8_R6: sprintf(info->s, "R6 :%02X", f8.r[6]); break; + case CPUINFO_STR_REGISTER+F8_R7: sprintf(info->s, "R7 :%02X", f8.r[7]); break; + case CPUINFO_STR_REGISTER+F8_R8: sprintf(info->s, "R8 :%02X", f8.r[8]); break; + case CPUINFO_STR_REGISTER+F8_R16: sprintf(info->s, "R16 :%02X", f8.r[16]); break; + case CPUINFO_STR_REGISTER+F8_R17: sprintf(info->s, "R17 :%02X", f8.r[17]); break; + case CPUINFO_STR_REGISTER+F8_R18: sprintf(info->s, "R18 :%02X", f8.r[18]); break; + case CPUINFO_STR_REGISTER+F8_R19: sprintf(info->s, "R19 :%02X", f8.r[19]); break; + case CPUINFO_STR_REGISTER+F8_R20: sprintf(info->s, "R20 :%02X", f8.r[20]); break; + case CPUINFO_STR_REGISTER+F8_R21: sprintf(info->s, "R21 :%02X", f8.r[21]); break; + case CPUINFO_STR_REGISTER+F8_R22: sprintf(info->s, "R22 :%02X", f8.r[22]); break; + case CPUINFO_STR_REGISTER+F8_R23: sprintf(info->s, "R23 :%02X", f8.r[23]); break; + case CPUINFO_STR_REGISTER+F8_R24: sprintf(info->s, "R24 :%02X", f8.r[24]); break; + case CPUINFO_STR_REGISTER+F8_R25: sprintf(info->s, "R25 :%02X", f8.r[25]); break; + case CPUINFO_STR_REGISTER+F8_R26: sprintf(info->s, "R26 :%02X", f8.r[26]); break; + case CPUINFO_STR_REGISTER+F8_R27: sprintf(info->s, "R27 :%02X", f8.r[27]); break; + case CPUINFO_STR_REGISTER+F8_R28: sprintf(info->s, "R28 :%02X", f8.r[28]); break; + case CPUINFO_STR_REGISTER+F8_R29: sprintf(info->s, "R29 :%02X", f8.r[29]); break; + case CPUINFO_STR_REGISTER+F8_R30: sprintf(info->s, "R30 :%02X", f8.r[30]); break; + case CPUINFO_STR_REGISTER+F8_R31: sprintf(info->s, "R31 :%02X", f8.r[31]); break; + case CPUINFO_STR_REGISTER+F8_R32: sprintf(info->s, "R32 :%02X", f8.r[32]); break; + case CPUINFO_STR_REGISTER+F8_R33: sprintf(info->s, "R33 :%02X", f8.r[33]); break; + case CPUINFO_STR_REGISTER+F8_R34: sprintf(info->s, "R34 :%02X", f8.r[34]); break; + case CPUINFO_STR_REGISTER+F8_R35: sprintf(info->s, "R35 :%02X", f8.r[35]); break; + case CPUINFO_STR_REGISTER+F8_R36: sprintf(info->s, "R36 :%02X", f8.r[36]); break; + case CPUINFO_STR_REGISTER+F8_R37: sprintf(info->s, "R37 :%02X", f8.r[37]); break; + case CPUINFO_STR_REGISTER+F8_R38: sprintf(info->s, "R38 :%02X", f8.r[38]); break; + case CPUINFO_STR_REGISTER+F8_R39: sprintf(info->s, "R39 :%02X", f8.r[39]); break; + case CPUINFO_STR_REGISTER+F8_R40: sprintf(info->s, "R40 :%02X", f8.r[40]); break; + case CPUINFO_STR_REGISTER+F8_R41: sprintf(info->s, "R41 :%02X", f8.r[41]); break; + case CPUINFO_STR_REGISTER+F8_R42: sprintf(info->s, "R42 :%02X", f8.r[42]); break; + case CPUINFO_STR_REGISTER+F8_R43: sprintf(info->s, "R43 :%02X", f8.r[43]); break; + case CPUINFO_STR_REGISTER+F8_R44: sprintf(info->s, "R44 :%02X", f8.r[44]); break; + case CPUINFO_STR_REGISTER+F8_R45: sprintf(info->s, "R45 :%02X", f8.r[45]); break; + case CPUINFO_STR_REGISTER+F8_R46: sprintf(info->s, "R46 :%02X", f8.r[46]); break; + case CPUINFO_STR_REGISTER+F8_R47: sprintf(info->s, "R47 :%02X", f8.r[47]); break; + case CPUINFO_STR_REGISTER+F8_R48: sprintf(info->s, "R48 :%02X", f8.r[48]); break; + case CPUINFO_STR_REGISTER+F8_R49: sprintf(info->s, "R49 :%02X", f8.r[49]); break; + case CPUINFO_STR_REGISTER+F8_R50: sprintf(info->s, "R50 :%02X", f8.r[50]); break; + case CPUINFO_STR_REGISTER+F8_R51: sprintf(info->s, "R51 :%02X", f8.r[51]); break; + case CPUINFO_STR_REGISTER+F8_R52: sprintf(info->s, "R52 :%02X", f8.r[52]); break; + case CPUINFO_STR_REGISTER+F8_R53: sprintf(info->s, "R53 :%02X", f8.r[53]); break; + case CPUINFO_STR_REGISTER+F8_R54: sprintf(info->s, "R54 :%02X", f8.r[54]); break; + case CPUINFO_STR_REGISTER+F8_R55: sprintf(info->s, "R55 :%02X", f8.r[55]); break; + case CPUINFO_STR_REGISTER+F8_R56: sprintf(info->s, "R56 :%02X", f8.r[56]); break; + case CPUINFO_STR_REGISTER+F8_R57: sprintf(info->s, "R57 :%02X", f8.r[57]); break; + case CPUINFO_STR_REGISTER+F8_R58: sprintf(info->s, "R58 :%02X", f8.r[58]); break; + case CPUINFO_STR_REGISTER+F8_R59: sprintf(info->s, "R59 :%02X", f8.r[59]); break; + case CPUINFO_STR_REGISTER+F8_R60: sprintf(info->s, "R60 :%02X", f8.r[60]); break; + case CPUINFO_STR_REGISTER+F8_R61: sprintf(info->s, "R61 :%02X", f8.r[61]); break; + case CPUINFO_STR_REGISTER+F8_R62: sprintf(info->s, "R62 :%02X", f8.r[62]); break; + case CPUINFO_STR_REGISTER+F8_R63: sprintf(info->s, "R63 :%02X", f8.r[63]); break; } diff --git a/src/emu/cpu/h83002/h8periph.c b/src/emu/cpu/h83002/h8periph.c index 15f85219f45..9be7a760f18 100644 --- a/src/emu/cpu/h83002/h8periph.c +++ b/src/emu/cpu/h83002/h8periph.c @@ -10,6 +10,7 @@ #include "debugger.h" #include "deprecat.h" +#include "cpuexec.h" #include "h83002.h" #include "h8priv.h" @@ -61,7 +62,7 @@ static void h8_itu_refresh_timer(int tnum) ourTCR = h8.per_regs[tcr[tnum]]; ourTVAL = h8.h8TCNT[tnum]; - period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(h8.cpu_number)), tscales[ourTCR & 3] * (65536 - ourTVAL)); + period = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(Machine->cpu[h8.cpu_number])), tscales[ourTCR & 3] * (65536 - ourTVAL)); if (ourTCR & 4) { @@ -80,7 +81,7 @@ static void h8_itu_sync_timers(int tnum) ourTCR = h8.per_regs[tcr[tnum]]; // get the time per unit - cycle_time = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(h8.cpu_number)), tscales[ourTCR & 3]); + cycle_time = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(Machine->cpu[h8.cpu_number])), tscales[ourTCR & 3]); cur = timer_timeelapsed(h8.timer[tnum]); ratio = attotime_to_double(cur) / attotime_to_double(cycle_time); @@ -418,7 +419,7 @@ static void h8_3007_itu_refresh_timer(int tnum) attotime period; int ourTCR = h8.per_regs[0x68+(tnum*8)]; - period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(h8.cpu_number)), tscales[ourTCR & 3]); + period = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(Machine->cpu[h8.cpu_number])), tscales[ourTCR & 3]); if (ourTCR & 4) { diff --git a/src/emu/cpu/jaguar/jaguar.c b/src/emu/cpu/jaguar/jaguar.c index 7cf6d223e18..1cc7b06a099 100644 --- a/src/emu/cpu/jaguar/jaguar.c +++ b/src/emu/cpu/jaguar/jaguar.c @@ -8,6 +8,7 @@ #include "debugger.h" #include "deprecat.h" +#include "cpuexec.h" #include "jaguar.h" #define LOG_GPU_IO 0 @@ -506,7 +507,7 @@ static CPU_EXECUTE( jaguargpu ) /* if we're halted, we shouldn't be here */ if (!(jaguar.ctrl[G_CTRL] & 1)) { - cpunum_set_input_line(Machine, cpunum_get_active(), INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(device->machine->activecpu, INPUT_LINE_HALT, ASSERT_LINE); return cycles; } @@ -552,7 +553,7 @@ static CPU_EXECUTE( jaguardsp ) /* if we're halted, we shouldn't be here */ if (!(jaguar.ctrl[G_CTRL] & 1)) { - cpunum_set_input_line(Machine, cpunum_get_active(), INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(Machine->activecpu, INPUT_LINE_HALT, ASSERT_LINE); return cycles; } @@ -1366,9 +1367,9 @@ void jaguargpu_ctrl_w(int cpunum, offs_t offset, UINT32 data, UINT32 mem_mask) jaguar.ctrl[offset] = newval; if ((oldval ^ newval) & 0x01) { - cpunum_set_input_line(Machine, cpunum, INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE); - if (cpunum_get_executing() >= 0) - cpu_yield(); + cpu_set_input_line(Machine->cpu[cpunum], INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE); + if (cpunum_get_active() >= 0) + cpu_yield(Machine->activecpu); } if (newval & 0x02) { @@ -1477,9 +1478,9 @@ void jaguardsp_ctrl_w(int cpunum, offs_t offset, UINT32 data, UINT32 mem_mask) jaguar.ctrl[offset] = newval; if ((oldval ^ newval) & 0x01) { - cpunum_set_input_line(Machine, cpunum, INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE); - if (cpunum_get_executing() >= 0) - cpu_yield(); + cpu_set_input_line(Machine->cpu[cpunum], INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE); + if (cpunum_get_active() >= 0) + cpu_yield(Machine->activecpu); } if (newval & 0x02) { diff --git a/src/emu/cpu/lh5801/lh5801.c b/src/emu/cpu/lh5801/lh5801.c index 1290363c06f..792d6970c45 100644 --- a/src/emu/cpu/lh5801/lh5801.c +++ b/src/emu/cpu/lh5801/lh5801.c @@ -240,14 +240,14 @@ CPU_GET_INFO( lh5801 ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &lh5801_icount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "LH5801"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "LH5801"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0alpha"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Copyright Peter Trauner, all rights reserved."); break; + case CPUINFO_STR_NAME: strcpy(info->s, "LH5801"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "LH5801"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0alpha"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Peter Trauner, all rights reserved."); break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%s%s%s%s%s%s%s%s", + sprintf(info->s, "%s%s%s%s%s%s%s%s", lh5801.t&0x80?"1":"0", lh5801.t&0x40?"1":"0", lh5801.t&0x20?"1":"0", @@ -258,18 +258,18 @@ CPU_GET_INFO( lh5801 ) lh5801.t&1?"C":"."); break; - case CPUINFO_STR_REGISTER + LH5801_P: sprintf(info->s = cpuintrf_temp_str(), "P:%04X", lh5801.p.w.l); break; - case CPUINFO_STR_REGISTER + LH5801_S: sprintf(info->s = cpuintrf_temp_str(), "S:%04X", lh5801.s.w.l); break; - case CPUINFO_STR_REGISTER + LH5801_U: sprintf(info->s = cpuintrf_temp_str(), "U:%04X", lh5801.u.w.l); break; - case CPUINFO_STR_REGISTER + LH5801_X: sprintf(info->s = cpuintrf_temp_str(), "X:%04X", lh5801.x.w.l); break; - case CPUINFO_STR_REGISTER + LH5801_Y: sprintf(info->s = cpuintrf_temp_str(), "Y:%04X", lh5801.y.w.l); break; - case CPUINFO_STR_REGISTER + LH5801_T: sprintf(info->s = cpuintrf_temp_str(), "T:%02X", lh5801.t); break; - case CPUINFO_STR_REGISTER + LH5801_A: sprintf(info->s = cpuintrf_temp_str(), "A:%02X", lh5801.a); break; - case CPUINFO_STR_REGISTER + LH5801_TM: sprintf(info->s = cpuintrf_temp_str(), "TM:%03X", lh5801.tm); break; - case CPUINFO_STR_REGISTER + LH5801_IN: sprintf(info->s = cpuintrf_temp_str(), "IN:%02X", lh5801.config->in()); break; - case CPUINFO_STR_REGISTER + LH5801_PV: sprintf(info->s = cpuintrf_temp_str(), "PV:%04X", lh5801.pv); break; - case CPUINFO_STR_REGISTER + LH5801_PU: sprintf(info->s = cpuintrf_temp_str(), "PU:%04X", lh5801.pu); break; - case CPUINFO_STR_REGISTER + LH5801_BF: sprintf(info->s = cpuintrf_temp_str(), "BF:%04X", lh5801.bf); break; - case CPUINFO_STR_REGISTER + LH5801_DP: sprintf(info->s = cpuintrf_temp_str(), "DP:%04X", lh5801.dp); break; + case CPUINFO_STR_REGISTER + LH5801_P: sprintf(info->s, "P:%04X", lh5801.p.w.l); break; + case CPUINFO_STR_REGISTER + LH5801_S: sprintf(info->s, "S:%04X", lh5801.s.w.l); break; + case CPUINFO_STR_REGISTER + LH5801_U: sprintf(info->s, "U:%04X", lh5801.u.w.l); break; + case CPUINFO_STR_REGISTER + LH5801_X: sprintf(info->s, "X:%04X", lh5801.x.w.l); break; + case CPUINFO_STR_REGISTER + LH5801_Y: sprintf(info->s, "Y:%04X", lh5801.y.w.l); break; + case CPUINFO_STR_REGISTER + LH5801_T: sprintf(info->s, "T:%02X", lh5801.t); break; + case CPUINFO_STR_REGISTER + LH5801_A: sprintf(info->s, "A:%02X", lh5801.a); break; + case CPUINFO_STR_REGISTER + LH5801_TM: sprintf(info->s, "TM:%03X", lh5801.tm); break; + case CPUINFO_STR_REGISTER + LH5801_IN: sprintf(info->s, "IN:%02X", lh5801.config->in()); break; + case CPUINFO_STR_REGISTER + LH5801_PV: sprintf(info->s, "PV:%04X", lh5801.pv); break; + case CPUINFO_STR_REGISTER + LH5801_PU: sprintf(info->s, "PU:%04X", lh5801.pu); break; + case CPUINFO_STR_REGISTER + LH5801_BF: sprintf(info->s, "BF:%04X", lh5801.bf); break; + case CPUINFO_STR_REGISTER + LH5801_DP: sprintf(info->s, "DP:%04X", lh5801.dp); break; } } diff --git a/src/emu/cpu/m37710/m37710.c b/src/emu/cpu/m37710/m37710.c index 9801fe00ded..677a5cca23c 100644 --- a/src/emu/cpu/m37710/m37710.c +++ b/src/emu/cpu/m37710/m37710.c @@ -53,6 +53,7 @@ #include "deprecat.h" #include "debugger.h" +#include "cpuexec.h" #include "m37710cm.h" #define M37710_DEBUG (0) // enables verbose logging for peripherals, etc. @@ -279,7 +280,7 @@ static TIMER_CALLBACK( m37710_timer_cb ) m37710i_cpu.m37710_regs[m37710_irq_levels[curirq]] |= 0x04; m37710_set_irq_line(curirq, PULSE_LINE); - cpu_triggerint(machine, cpunum); + cpu_triggerint(machine->cpu[cpunum]); cpu_pop_context(); } @@ -338,7 +339,7 @@ static void m37710_recalc_timer(int timer) switch (m37710i_cpu.m37710_regs[0x56+timer] & 0x3) { case 0: // timer mode - time = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(cpunum_get_active())), tscales[m37710i_cpu.m37710_regs[tcr[timer]]>>6]); + time = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(Machine->activecpu)), tscales[m37710i_cpu.m37710_regs[tcr[timer]]>>6]); time = attotime_mul(time, tval + 1); #if M37710_DEBUG @@ -373,7 +374,7 @@ static void m37710_recalc_timer(int timer) switch (m37710i_cpu.m37710_regs[0x56+timer] & 0x3) { case 0: // timer mode - time = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(cpunum_get_active())), tscales[m37710i_cpu.m37710_regs[tcr[timer]]>>6]); + time = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(Machine->activecpu)), tscales[m37710i_cpu.m37710_regs[tcr[timer]]>>6]); time = attotime_mul(time, tval + 1); #if M37710_DEBUG diff --git a/src/emu/cpu/m6502/m6502.h b/src/emu/cpu/m6502/m6502.h index af8697738b3..0c4e5931802 100644 --- a/src/emu/cpu/m6502/m6502.h +++ b/src/emu/cpu/m6502/m6502.h @@ -57,7 +57,7 @@ enum }; #define M6502_IRQ_LINE 0 -/* use cpunum_set_input_line(machine, cpu, M6502_SET_OVERFLOW, level) +/* use cpu_set_input_line(machine->cpu[cpu], M6502_SET_OVERFLOW, level) to change level of the so input line positiv edge sets overflow flag */ #define M6502_SET_OVERFLOW 1 diff --git a/src/emu/cpu/m6502/m6509.h b/src/emu/cpu/m6502/m6509.h index 490c295c955..5eaa368092f 100644 --- a/src/emu/cpu/m6502/m6509.h +++ b/src/emu/cpu/m6502/m6509.h @@ -34,7 +34,7 @@ enum }; #define M6509_IRQ_LINE M6502_IRQ_LINE -/* use cpunum_set_input_line(machine, cpu, M6509_SET_OVERFLOW, level) +/* use cpu_set_input_line(machine->cpu[cpu], M6509_SET_OVERFLOW, level) to change level of the so input line positiv edge sets overflow flag */ #define M6509_SET_OVERFLOW 3 diff --git a/src/emu/cpu/mcs48/mcs48.c b/src/emu/cpu/mcs48/mcs48.c index 7892c22e075..80f343af7b6 100644 --- a/src/emu/cpu/mcs48/mcs48.c +++ b/src/emu/cpu/mcs48/mcs48.c @@ -999,6 +999,7 @@ static CPU_SET_CONTEXT( mcs48 ) { } + /*------------------------------------------------- mcs48_set_info - set a piece of information on the CPU core diff --git a/src/emu/cpu/mcs51/mcs51dasm.c b/src/emu/cpu/mcs51/mcs51dasm.c index 020321f9b04..5ab6360e126 100644 --- a/src/emu/cpu/mcs51/mcs51dasm.c +++ b/src/emu/cpu/mcs51/mcs51dasm.c @@ -282,7 +282,7 @@ static void init_mem_names(int feature_set, const char **mem_names) static const char *get_data_address( const char **mem_names, UINT8 arg ) { - char *buffer = cpuintrf_temp_str(); + static char buffer[32]; if (mem_names[arg] == NULL) sprintf(buffer,"$%02X",arg); @@ -293,7 +293,7 @@ static const char *get_data_address( const char **mem_names, UINT8 arg ) static const char *get_bit_address( const char **mem_names, UINT8 arg ) { - char *buffer = cpuintrf_temp_str(); + static char buffer[32]; if(arg < 0x80) { @@ -324,14 +324,14 @@ static const char *get_bit_address( const char **mem_names, UINT8 arg ) static const char *get_data_address( UINT8 arg ) { - char *buffer = cpuintrf_temp_str(); + static char buffer[32]; sprintf(buffer,"$%02X",arg); return buffer; } static const char *get_bit_address( UINT8 arg ) { - char *buffer = cpuintrf_temp_str(); + static char buffer[32]; sprintf(buffer,"$%02X",arg); return buffer; } diff --git a/src/emu/cpu/minx/minx.c b/src/emu/cpu/minx/minx.c index d53c2b76ed2..a1b63bab0e9 100644 --- a/src/emu/cpu/minx/minx.c +++ b/src/emu/cpu/minx/minx.c @@ -359,13 +359,13 @@ CPU_GET_INFO( minx ) case CPUINFO_PTR_BURN: info->burn = CPU_BURN_NAME(minx); break; case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(minx); break; case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &minx_icount; break; - case CPUINFO_STR_NAME: strcpy( info->s = cpuintrf_temp_str(), "Minx" ); break; - case CPUINFO_STR_CORE_FAMILY: strcpy( info->s = cpuintrf_temp_str(), "Nintendo Minx" ); break; - case CPUINFO_STR_CORE_VERSION: strcpy( info->s = cpuintrf_temp_str(), "0.1" ); break; - case CPUINFO_STR_CORE_FILE: strcpy( info->s = cpuintrf_temp_str(), __FILE__ ); break; - case CPUINFO_STR_CORE_CREDITS: strcpy( info->s = cpuintrf_temp_str(), "Copyright The MESS Team." ); break; + case CPUINFO_STR_NAME: strcpy( info->s, "Minx" ); break; + case CPUINFO_STR_CORE_FAMILY: strcpy( info->s, "Nintendo Minx" ); break; + case CPUINFO_STR_CORE_VERSION: strcpy( info->s, "0.1" ); break; + case CPUINFO_STR_CORE_FILE: strcpy( info->s, __FILE__ ); break; + case CPUINFO_STR_CORE_CREDITS: strcpy( info->s, "Copyright The MESS Team." ); break; case CPUINFO_STR_FLAGS: - sprintf( info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c%c%c-%c%c%c%c%c", + sprintf( info->s, "%c%c%c%c%c%c%c%c-%c%c%c%c%c", regs.F & FLAG_I ? 'I' : '.', regs.F & FLAG_D ? 'D' : '.', regs.F & FLAG_L ? 'L' : '.', @@ -380,20 +380,20 @@ CPU_GET_INFO( minx ) regs.E & EXEC_DZ ? 'z' : '.', regs.E & EXEC_EN ? 'E' : '.' ); break; - case CPUINFO_STR_REGISTER + MINX_PC: sprintf( info->s = cpuintrf_temp_str(), "PC:%04X", regs.PC ); break; - case CPUINFO_STR_REGISTER + MINX_SP: sprintf( info->s = cpuintrf_temp_str(), "SP:%04X", regs.SP ); break; - case CPUINFO_STR_REGISTER + MINX_BA: sprintf( info->s = cpuintrf_temp_str(), "BA:%04X", regs.BA ); break; - case CPUINFO_STR_REGISTER + MINX_HL: sprintf( info->s = cpuintrf_temp_str(), "HL:%04X", regs.HL ); break; - case CPUINFO_STR_REGISTER + MINX_X: sprintf( info->s = cpuintrf_temp_str(), "X:%04X", regs.X ); break; - case CPUINFO_STR_REGISTER + MINX_Y: sprintf( info->s = cpuintrf_temp_str(), "Y:%04X", regs.Y ); break; - case CPUINFO_STR_REGISTER + MINX_U: sprintf( info->s = cpuintrf_temp_str(), "U:%02X", regs.U ); break; - case CPUINFO_STR_REGISTER + MINX_V: sprintf( info->s = cpuintrf_temp_str(), "V:%02X", regs.V ); break; - case CPUINFO_STR_REGISTER + MINX_F: sprintf( info->s = cpuintrf_temp_str(), "F:%02X", regs.F ); break; - case CPUINFO_STR_REGISTER + MINX_E: sprintf( info->s = cpuintrf_temp_str(), "E:%02X", regs.E ); break; - case CPUINFO_STR_REGISTER + MINX_N: sprintf( info->s = cpuintrf_temp_str(), "N:%02X", regs.N ); break; - case CPUINFO_STR_REGISTER + MINX_I: sprintf( info->s = cpuintrf_temp_str(), "I:%02X", regs.I ); break; - case CPUINFO_STR_REGISTER + MINX_XI: sprintf( info->s = cpuintrf_temp_str(), "XI:%02X", regs.XI ); break; - case CPUINFO_STR_REGISTER + MINX_YI: sprintf( info->s = cpuintrf_temp_str(), "YI:%02X", regs.YI ); break; + case CPUINFO_STR_REGISTER + MINX_PC: sprintf( info->s, "PC:%04X", regs.PC ); break; + case CPUINFO_STR_REGISTER + MINX_SP: sprintf( info->s, "SP:%04X", regs.SP ); break; + case CPUINFO_STR_REGISTER + MINX_BA: sprintf( info->s, "BA:%04X", regs.BA ); break; + case CPUINFO_STR_REGISTER + MINX_HL: sprintf( info->s, "HL:%04X", regs.HL ); break; + case CPUINFO_STR_REGISTER + MINX_X: sprintf( info->s, "X:%04X", regs.X ); break; + case CPUINFO_STR_REGISTER + MINX_Y: sprintf( info->s, "Y:%04X", regs.Y ); break; + case CPUINFO_STR_REGISTER + MINX_U: sprintf( info->s, "U:%02X", regs.U ); break; + case CPUINFO_STR_REGISTER + MINX_V: sprintf( info->s, "V:%02X", regs.V ); break; + case CPUINFO_STR_REGISTER + MINX_F: sprintf( info->s, "F:%02X", regs.F ); break; + case CPUINFO_STR_REGISTER + MINX_E: sprintf( info->s, "E:%02X", regs.E ); break; + case CPUINFO_STR_REGISTER + MINX_N: sprintf( info->s, "N:%02X", regs.N ); break; + case CPUINFO_STR_REGISTER + MINX_I: sprintf( info->s, "I:%02X", regs.I ); break; + case CPUINFO_STR_REGISTER + MINX_XI: sprintf( info->s, "XI:%02X", regs.XI ); break; + case CPUINFO_STR_REGISTER + MINX_YI: sprintf( info->s, "YI:%02X", regs.YI ); break; } } diff --git a/src/emu/cpu/mips/mips3.c b/src/emu/cpu/mips/mips3.c index 433ad5dd11f..fd0c1c41788 100644 --- a/src/emu/cpu/mips/mips3.c +++ b/src/emu/cpu/mips/mips3.c @@ -476,7 +476,7 @@ INLINE UINT64 get_cop0_reg(int idx) mips3.core.icount -= MIPS3_COUNT_READ_CYCLES; else mips3.core.icount = 0; - return (UINT32)((activecpu_gettotalcycles() - mips3.core.count_zero_time) / 2); + return (UINT32)((cpu_get_total_cycles(machine->activecpu) - mips3.core.count_zero_time) / 2); } else if (idx == COP0_Cause) { @@ -492,7 +492,7 @@ INLINE UINT64 get_cop0_reg(int idx) int wired = mips3.core.cpr[0][COP0_Wired] & 0x3f; int range = 48 - wired; if (range > 0) - return ((activecpu_gettotalcycles() - mips3.core.count_zero_time) % range + wired) & 0x3f; + return ((cpu_get_total_cycles(machine->activecpu) - mips3.core.count_zero_time) % range + wired) & 0x3f; else return 47; } @@ -532,7 +532,7 @@ INLINE void set_cop0_reg(int idx, UINT64 val) case COP0_Count: mips3.core.cpr[0][idx] = val; - mips3.core.count_zero_time = activecpu_gettotalcycles() - ((UINT64)(UINT32)val * 2); + mips3.core.count_zero_time = cpu_get_total_cycles(machine->activecpu) - ((UINT64)(UINT32)val * 2); mips3com_update_cycle_counting(&mips3.core); break; diff --git a/src/emu/cpu/mips/mips3com.c b/src/emu/cpu/mips/mips3com.c index a229c582203..b77eade880c 100644 --- a/src/emu/cpu/mips/mips3com.c +++ b/src/emu/cpu/mips/mips3com.c @@ -8,6 +8,8 @@ #include "mips3com.h" #include "deprecat.h" +#include "cpuexec.h" +#include "mame.h" /*************************************************************************** @@ -141,7 +143,7 @@ void mips3com_reset(mips3_state *mips) mips->cpr[0][COP0_Count] = 0; mips->cpr[0][COP0_Config] = compute_config_register(mips); mips->cpr[0][COP0_PRId] = compute_prid_register(mips); - mips->count_zero_time = activecpu_gettotalcycles(); + mips->count_zero_time = cpu_get_total_cycles(Machine->activecpu); /* initialize the TLB state */ for (tlbindex = 0; tlbindex < ARRAY_LENGTH(mips->tlb); tlbindex++) @@ -188,7 +190,7 @@ void mips3com_update_cycle_counting(mips3_state *mips) /* modify the timer to go off */ if (mips->compare_armed && (mips->cpr[0][COP0_Status] & SR_IMEX5)) { - UINT32 count = (activecpu_gettotalcycles() - mips->count_zero_time) / 2; + UINT32 count = (cpu_get_total_cycles(Machine->activecpu) - mips->count_zero_time) / 2; UINT32 compare = mips->cpr[0][COP0_Compare]; UINT32 delta = compare - count; attotime newtime = ATTOTIME_IN_CYCLES(((UINT64)delta * 2), cpunum_get_active()); @@ -285,7 +287,7 @@ void mips3com_tlbwr(mips3_state *mips) /* "random" is based off of the current cycle counting through the non-wired pages */ if (unwired > 0) - tlbindex = ((activecpu_gettotalcycles() - mips->count_zero_time) % unwired + wired) & 0x3f; + tlbindex = ((cpu_get_total_cycles(Machine->activecpu) - mips->count_zero_time) % unwired + wired) & 0x3f; /* use the common handler to write to this tlbindex */ tlb_write_common(mips, tlbindex); @@ -475,7 +477,7 @@ void mips3com_get_info(mips3_state *mips, UINT32 state, cpuinfo *info) case CPUINFO_INT_REGISTER + MIPS3_SR: info->i = mips->cpr[0][COP0_Status]; break; case CPUINFO_INT_REGISTER + MIPS3_EPC: info->i = mips->cpr[0][COP0_EPC]; break; case CPUINFO_INT_REGISTER + MIPS3_CAUSE: info->i = mips->cpr[0][COP0_Cause]; break; - case CPUINFO_INT_REGISTER + MIPS3_COUNT: info->i = ((activecpu_gettotalcycles() - mips->count_zero_time) / 2); break; + case CPUINFO_INT_REGISTER + MIPS3_COUNT: info->i = ((cpu_get_total_cycles(Machine->activecpu) - mips->count_zero_time) / 2); break; case CPUINFO_INT_REGISTER + MIPS3_COMPARE: info->i = mips->cpr[0][COP0_Compare]; break; case CPUINFO_INT_REGISTER + MIPS3_INDEX: info->i = mips->cpr[0][COP0_Index]; break; case CPUINFO_INT_REGISTER + MIPS3_RANDOM: info->i = mips->cpr[0][COP0_Random]; break; @@ -547,7 +549,7 @@ void mips3com_get_info(mips3_state *mips, UINT32 state, cpuinfo *info) case CPUINFO_STR_REGISTER + MIPS3_SR: sprintf(info->s, "SR: %08X", (UINT32)mips->cpr[0][COP0_Status]); break; case CPUINFO_STR_REGISTER + MIPS3_EPC: sprintf(info->s, "EPC:%08X", (UINT32)mips->cpr[0][COP0_EPC]); break; case CPUINFO_STR_REGISTER + MIPS3_CAUSE: sprintf(info->s, "Cause:%08X", (UINT32)mips->cpr[0][COP0_Cause]); break; - case CPUINFO_STR_REGISTER + MIPS3_COUNT: sprintf(info->s, "Count:%08X", (UINT32)((activecpu_gettotalcycles() - mips->count_zero_time) / 2)); break; + case CPUINFO_STR_REGISTER + MIPS3_COUNT: sprintf(info->s, "Count:%08X", (UINT32)((cpu_get_total_cycles(Machine->activecpu) - mips->count_zero_time) / 2)); break; case CPUINFO_STR_REGISTER + MIPS3_COMPARE: sprintf(info->s, "Compare:%08X", (UINT32)mips->cpr[0][COP0_Compare]); break; case CPUINFO_STR_REGISTER + MIPS3_INDEX: sprintf(info->s, "Index:%08X", (UINT32)mips->cpr[0][COP0_Index]); break; case CPUINFO_STR_REGISTER + MIPS3_RANDOM: sprintf(info->s, "Random:%08X", (UINT32)mips->cpr[0][COP0_Random]); break; @@ -706,7 +708,7 @@ void mips3com_get_info(mips3_state *mips, UINT32 state, cpuinfo *info) static TIMER_CALLBACK( compare_int_callback ) { - cpunum_set_input_line(machine, param, MIPS3_IRQ5, ASSERT_LINE); + cpu_set_input_line(machine->cpu[param], MIPS3_IRQ5, ASSERT_LINE); } diff --git a/src/emu/cpu/mips/mips3com.h b/src/emu/cpu/mips/mips3com.h index c587d9a57a3..0544e6f0b66 100644 --- a/src/emu/cpu/mips/mips3com.h +++ b/src/emu/cpu/mips/mips3com.h @@ -14,6 +14,7 @@ #include "cpuintrf.h" #include "mips3.h" #include "cpu/vtlb.h" +#include "timer.h" /*************************************************************************** diff --git a/src/emu/cpu/mips/mips3drc.c b/src/emu/cpu/mips/mips3drc.c index 34e25590092..05dbc357af6 100644 --- a/src/emu/cpu/mips/mips3drc.c +++ b/src/emu/cpu/mips/mips3drc.c @@ -28,6 +28,7 @@ #include #include "cpuintrf.h" #include "debugger.h" +#include "cpuexec.h" #include "mips3com.h" #include "mips3fe.h" #include "deprecat.h" @@ -816,7 +817,7 @@ static void code_compile_block(drcuml_state *drcuml, UINT8 mode, offs_t pc) static void cfunc_get_cycles(void *param) { UINT64 *dest = param; - *dest = activecpu_gettotalcycles(); + *dest = cpu_get_total_cycles(Machine->activecpu); } diff --git a/src/emu/cpu/pdp1/pdp1.c b/src/emu/cpu/pdp1/pdp1.c index 8650e681567..f847c42d91a 100644 --- a/src/emu/cpu/pdp1/pdp1.c +++ b/src/emu/cpu/pdp1/pdp1.c @@ -1027,11 +1027,11 @@ CPU_GET_INFO( pdp1 ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &pdp1_ICount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "PDP1"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "DEC PDP-1"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "2.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), + case CPUINFO_STR_NAME: strcpy(info->s, "PDP1"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "DEC PDP-1"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "2.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Brian Silverman (original Java Source)\n" "Vadim Gerasimov (original Java Source)\n" "Chris Salomon (MESS driver)\n" @@ -1039,7 +1039,7 @@ CPU_GET_INFO( pdp1 ) break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c-%c%c%c%c%c%c", + sprintf(info->s, "%c%c%c%c%c%c-%c%c%c%c%c%c", (FLAGS & 040) ? '1' : '.', (FLAGS & 020) ? '2' : '.', (FLAGS & 010) ? '3' : '.', @@ -1055,42 +1055,42 @@ CPU_GET_INFO( pdp1 ) break; - case CPUINFO_STR_REGISTER + PDP1_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:0%06o", PC); break; - case CPUINFO_STR_REGISTER + PDP1_IR: sprintf(info->s = cpuintrf_temp_str(), "IR:0%02o", IR); break; - case CPUINFO_STR_REGISTER + PDP1_MB: sprintf(info->s = cpuintrf_temp_str(), "MB:0%06o", MB); break; - case CPUINFO_STR_REGISTER + PDP1_MA: sprintf(info->s = cpuintrf_temp_str(), "MA:0%06o", MA); break; - case CPUINFO_STR_REGISTER + PDP1_AC: sprintf(info->s = cpuintrf_temp_str(), "AC:0%06o", AC); break; - case CPUINFO_STR_REGISTER + PDP1_IO: sprintf(info->s = cpuintrf_temp_str(), "IO:0%06o", IO); break; - case CPUINFO_STR_REGISTER + PDP1_OV: sprintf(info->s = cpuintrf_temp_str(), "OV:%X", OV); break; - case CPUINFO_STR_REGISTER + PDP1_PF: sprintf(info->s = cpuintrf_temp_str(), "FLAGS:0%02o", FLAGS); break; - case CPUINFO_STR_REGISTER + PDP1_PF1: sprintf(info->s = cpuintrf_temp_str(), "FLAG1:%X", READFLAG(1)); break; - case CPUINFO_STR_REGISTER + PDP1_PF2: sprintf(info->s = cpuintrf_temp_str(), "FLAG2:%X", READFLAG(2)); break; - case CPUINFO_STR_REGISTER + PDP1_PF3: sprintf(info->s = cpuintrf_temp_str(), "FLAG3:%X", READFLAG(3)); break; - case CPUINFO_STR_REGISTER + PDP1_PF4: sprintf(info->s = cpuintrf_temp_str(), "FLAG4:%X", READFLAG(4)); break; - case CPUINFO_STR_REGISTER + PDP1_PF5: sprintf(info->s = cpuintrf_temp_str(), "FLAG5:%X", READFLAG(5)); break; - case CPUINFO_STR_REGISTER + PDP1_PF6: sprintf(info->s = cpuintrf_temp_str(), "FLAG6:%X", READFLAG(6)); break; - case CPUINFO_STR_REGISTER + PDP1_TA: sprintf(info->s = cpuintrf_temp_str(), "TA:0%06o", pdp1.ta); break; - case CPUINFO_STR_REGISTER + PDP1_TW: sprintf(info->s = cpuintrf_temp_str(), "TW:0%06o", pdp1.tw); break; - case CPUINFO_STR_REGISTER + PDP1_SS: sprintf(info->s = cpuintrf_temp_str(), "SS:0%02o", SENSE_SW); break; - case CPUINFO_STR_REGISTER + PDP1_SS1: sprintf(info->s = cpuintrf_temp_str(), "SENSE1:%X", READSENSE(1)); break; - case CPUINFO_STR_REGISTER + PDP1_SS2: sprintf(info->s = cpuintrf_temp_str(), "SENSE2:%X", READSENSE(2)); break; - case CPUINFO_STR_REGISTER + PDP1_SS3: sprintf(info->s = cpuintrf_temp_str(), "SENSE3:%X", READSENSE(3)); break; - case CPUINFO_STR_REGISTER + PDP1_SS4: sprintf(info->s = cpuintrf_temp_str(), "SENSE4:%X", READSENSE(4)); break; - case CPUINFO_STR_REGISTER + PDP1_SS5: sprintf(info->s = cpuintrf_temp_str(), "SENSE5:%X", READSENSE(5)); break; - case CPUINFO_STR_REGISTER + PDP1_SS6: sprintf(info->s = cpuintrf_temp_str(), "SENSE6:%X", READSENSE(6)); break; - case CPUINFO_STR_REGISTER + PDP1_SNGL_STEP: sprintf(info->s = cpuintrf_temp_str(), "SNGLSTEP:%X", pdp1.sngl_step); break; - case CPUINFO_STR_REGISTER + PDP1_SNGL_INST: sprintf(info->s = cpuintrf_temp_str(), "SNGLINST:%X", pdp1.sngl_inst); break; - case CPUINFO_STR_REGISTER + PDP1_EXTEND_SW: sprintf(info->s = cpuintrf_temp_str(), "EXS:%X", pdp1.extend_sw); break; - case CPUINFO_STR_REGISTER + PDP1_RUN: sprintf(info->s = cpuintrf_temp_str(), "RUN:%X", pdp1.run); break; - case CPUINFO_STR_REGISTER + PDP1_CYC: sprintf(info->s = cpuintrf_temp_str(), "CYC:%X", pdp1.cycle); break; - case CPUINFO_STR_REGISTER + PDP1_DEFER: sprintf(info->s = cpuintrf_temp_str(), "DF:%X", pdp1.defer); break; - case CPUINFO_STR_REGISTER + PDP1_BRK_CTR: sprintf(info->s = cpuintrf_temp_str(), "BRKCTR:%X", pdp1.brk_ctr); break; - case CPUINFO_STR_REGISTER + PDP1_RIM: sprintf(info->s = cpuintrf_temp_str(), "RIM:%X", pdp1.rim); break; - case CPUINFO_STR_REGISTER + PDP1_SBM: sprintf(info->s = cpuintrf_temp_str(), "SBM:%X", pdp1.sbm); break; - case CPUINFO_STR_REGISTER + PDP1_EXD: sprintf(info->s = cpuintrf_temp_str(), "EXD:%X", EXD); break; - case CPUINFO_STR_REGISTER + PDP1_IOC: sprintf(info->s = cpuintrf_temp_str(), "IOC:%X", pdp1.ioc); break; - case CPUINFO_STR_REGISTER + PDP1_IOH: sprintf(info->s = cpuintrf_temp_str(), "IOH:%X", pdp1.ioh); break; - case CPUINFO_STR_REGISTER + PDP1_IOS: sprintf(info->s = cpuintrf_temp_str(), "IOS:%X", pdp1.ios); break; + case CPUINFO_STR_REGISTER + PDP1_PC: sprintf(info->s, "PC:0%06o", PC); break; + case CPUINFO_STR_REGISTER + PDP1_IR: sprintf(info->s, "IR:0%02o", IR); break; + case CPUINFO_STR_REGISTER + PDP1_MB: sprintf(info->s, "MB:0%06o", MB); break; + case CPUINFO_STR_REGISTER + PDP1_MA: sprintf(info->s, "MA:0%06o", MA); break; + case CPUINFO_STR_REGISTER + PDP1_AC: sprintf(info->s, "AC:0%06o", AC); break; + case CPUINFO_STR_REGISTER + PDP1_IO: sprintf(info->s, "IO:0%06o", IO); break; + case CPUINFO_STR_REGISTER + PDP1_OV: sprintf(info->s, "OV:%X", OV); break; + case CPUINFO_STR_REGISTER + PDP1_PF: sprintf(info->s, "FLAGS:0%02o", FLAGS); break; + case CPUINFO_STR_REGISTER + PDP1_PF1: sprintf(info->s, "FLAG1:%X", READFLAG(1)); break; + case CPUINFO_STR_REGISTER + PDP1_PF2: sprintf(info->s, "FLAG2:%X", READFLAG(2)); break; + case CPUINFO_STR_REGISTER + PDP1_PF3: sprintf(info->s, "FLAG3:%X", READFLAG(3)); break; + case CPUINFO_STR_REGISTER + PDP1_PF4: sprintf(info->s, "FLAG4:%X", READFLAG(4)); break; + case CPUINFO_STR_REGISTER + PDP1_PF5: sprintf(info->s, "FLAG5:%X", READFLAG(5)); break; + case CPUINFO_STR_REGISTER + PDP1_PF6: sprintf(info->s, "FLAG6:%X", READFLAG(6)); break; + case CPUINFO_STR_REGISTER + PDP1_TA: sprintf(info->s, "TA:0%06o", pdp1.ta); break; + case CPUINFO_STR_REGISTER + PDP1_TW: sprintf(info->s, "TW:0%06o", pdp1.tw); break; + case CPUINFO_STR_REGISTER + PDP1_SS: sprintf(info->s, "SS:0%02o", SENSE_SW); break; + case CPUINFO_STR_REGISTER + PDP1_SS1: sprintf(info->s, "SENSE1:%X", READSENSE(1)); break; + case CPUINFO_STR_REGISTER + PDP1_SS2: sprintf(info->s, "SENSE2:%X", READSENSE(2)); break; + case CPUINFO_STR_REGISTER + PDP1_SS3: sprintf(info->s, "SENSE3:%X", READSENSE(3)); break; + case CPUINFO_STR_REGISTER + PDP1_SS4: sprintf(info->s, "SENSE4:%X", READSENSE(4)); break; + case CPUINFO_STR_REGISTER + PDP1_SS5: sprintf(info->s, "SENSE5:%X", READSENSE(5)); break; + case CPUINFO_STR_REGISTER + PDP1_SS6: sprintf(info->s, "SENSE6:%X", READSENSE(6)); break; + case CPUINFO_STR_REGISTER + PDP1_SNGL_STEP: sprintf(info->s, "SNGLSTEP:%X", pdp1.sngl_step); break; + case CPUINFO_STR_REGISTER + PDP1_SNGL_INST: sprintf(info->s, "SNGLINST:%X", pdp1.sngl_inst); break; + case CPUINFO_STR_REGISTER + PDP1_EXTEND_SW: sprintf(info->s, "EXS:%X", pdp1.extend_sw); break; + case CPUINFO_STR_REGISTER + PDP1_RUN: sprintf(info->s, "RUN:%X", pdp1.run); break; + case CPUINFO_STR_REGISTER + PDP1_CYC: sprintf(info->s, "CYC:%X", pdp1.cycle); break; + case CPUINFO_STR_REGISTER + PDP1_DEFER: sprintf(info->s, "DF:%X", pdp1.defer); break; + case CPUINFO_STR_REGISTER + PDP1_BRK_CTR: sprintf(info->s, "BRKCTR:%X", pdp1.brk_ctr); break; + case CPUINFO_STR_REGISTER + PDP1_RIM: sprintf(info->s, "RIM:%X", pdp1.rim); break; + case CPUINFO_STR_REGISTER + PDP1_SBM: sprintf(info->s, "SBM:%X", pdp1.sbm); break; + case CPUINFO_STR_REGISTER + PDP1_EXD: sprintf(info->s, "EXD:%X", EXD); break; + case CPUINFO_STR_REGISTER + PDP1_IOC: sprintf(info->s, "IOC:%X", pdp1.ioc); break; + case CPUINFO_STR_REGISTER + PDP1_IOH: sprintf(info->s, "IOH:%X", pdp1.ioh); break; + case CPUINFO_STR_REGISTER + PDP1_IOS: sprintf(info->s, "IOS:%X", pdp1.ios); break; } } diff --git a/src/emu/cpu/pdp1/tx0.c b/src/emu/cpu/pdp1/tx0.c index e7a0a383b4f..1e0320d2c73 100644 --- a/src/emu/cpu/pdp1/tx0.c +++ b/src/emu/cpu/pdp1/tx0.c @@ -521,24 +521,24 @@ CPU_GET_INFO( tx0_64kw ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tx0_ICount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Raphael Nabet"); break; + case CPUINFO_STR_NAME: strcpy(info->s, "TX-0"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "TX-0"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Raphael Nabet"); break; - case CPUINFO_STR_FLAGS: strcpy(info->s = cpuintrf_temp_str(), ""); break; + case CPUINFO_STR_FLAGS: strcpy(info->s, ""); break; - case CPUINFO_STR_REGISTER + TX0_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:0%06o", PC); break; - case CPUINFO_STR_REGISTER + TX0_IR: sprintf(info->s = cpuintrf_temp_str(), "IR:0%02o", IR); break; - case CPUINFO_STR_REGISTER + TX0_MBR: sprintf(info->s = cpuintrf_temp_str(), "MBR:0%06o", MBR); break; - case CPUINFO_STR_REGISTER + TX0_MAR: sprintf(info->s = cpuintrf_temp_str(), "MAR:0%06o", MAR); break; - case CPUINFO_STR_REGISTER + TX0_AC: sprintf(info->s = cpuintrf_temp_str(), "AC:0%06o", AC); break; - case CPUINFO_STR_REGISTER + TX0_LR: sprintf(info->s = cpuintrf_temp_str(), "LR:0%06o", LR); break; - case CPUINFO_STR_REGISTER + TX0_XR: sprintf(info->s = cpuintrf_temp_str(), "XR:0%05o", XR); break; - case CPUINFO_STR_REGISTER + TX0_PF: sprintf(info->s = cpuintrf_temp_str(), "PF:0%02o", PF); break; break; - case CPUINFO_STR_REGISTER + TX0_TBR: sprintf(info->s = cpuintrf_temp_str(), "TBR:0%06o", tx0.tbr); break; - case CPUINFO_STR_REGISTER + TX0_TAC: sprintf(info->s = cpuintrf_temp_str(), "TAC:0%06o", tx0.tac); break; + case CPUINFO_STR_REGISTER + TX0_PC: sprintf(info->s, "PC:0%06o", PC); break; + case CPUINFO_STR_REGISTER + TX0_IR: sprintf(info->s, "IR:0%02o", IR); break; + case CPUINFO_STR_REGISTER + TX0_MBR: sprintf(info->s, "MBR:0%06o", MBR); break; + case CPUINFO_STR_REGISTER + TX0_MAR: sprintf(info->s, "MAR:0%06o", MAR); break; + case CPUINFO_STR_REGISTER + TX0_AC: sprintf(info->s, "AC:0%06o", AC); break; + case CPUINFO_STR_REGISTER + TX0_LR: sprintf(info->s, "LR:0%06o", LR); break; + case CPUINFO_STR_REGISTER + TX0_XR: sprintf(info->s, "XR:0%05o", XR); break; + case CPUINFO_STR_REGISTER + TX0_PF: sprintf(info->s, "PF:0%02o", PF); break; break; + case CPUINFO_STR_REGISTER + TX0_TBR: sprintf(info->s, "TBR:0%06o", tx0.tbr); break; + case CPUINFO_STR_REGISTER + TX0_TAC: sprintf(info->s, "TAC:0%06o", tx0.tac); break; case CPUINFO_STR_REGISTER + TX0_TSS00: case CPUINFO_STR_REGISTER + TX0_TSS01: case CPUINFO_STR_REGISTER + TX0_TSS02: @@ -554,17 +554,17 @@ CPU_GET_INFO( tx0_64kw ) case CPUINFO_STR_REGISTER + TX0_TSS14: case CPUINFO_STR_REGISTER + TX0_TSS15: case CPUINFO_STR_REGISTER + TX0_TSS16: - case CPUINFO_STR_REGISTER + TX0_TSS17: sprintf(info->s = cpuintrf_temp_str(), "TSS%02o:0%06o", state-(CPUINFO_STR_REGISTER + TX0_TSS00), tx0.tss[state-(CPUINFO_STR_REGISTER + TX0_TSS00)]); break; - case CPUINFO_STR_REGISTER + TX0_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "CMSEL:0%06o", tx0.cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_LR_SEL: sprintf(info->s = cpuintrf_temp_str(), "LRSEL:0%06o", tx0.lr_sel); break; - case CPUINFO_STR_REGISTER + TX0_GBL_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "GBLCMSEL:%X", tx0.gbl_cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC0: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC0:%X", tx0.stop_cyc0); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC1: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC1:%X", tx0.stop_cyc1); break; - case CPUINFO_STR_REGISTER + TX0_RUN: sprintf(info->s = cpuintrf_temp_str(), "RUN:%X", tx0.run); break; - case CPUINFO_STR_REGISTER + TX0_RIM: sprintf(info->s = cpuintrf_temp_str(), "RIM:%X", tx0.rim); break; - case CPUINFO_STR_REGISTER + TX0_CYCLE: sprintf(info->s = cpuintrf_temp_str(), "CYCLE:%X", tx0.cycle); break; - case CPUINFO_STR_REGISTER + TX0_IOH: sprintf(info->s = cpuintrf_temp_str(), "IOH:%X", tx0.ioh); break; - case CPUINFO_STR_REGISTER + TX0_IOS: sprintf(info->s = cpuintrf_temp_str(), "IOS:%X", tx0.ios); break; + case CPUINFO_STR_REGISTER + TX0_TSS17: sprintf(info->s, "TSS%02o:0%06o", state-(CPUINFO_STR_REGISTER + TX0_TSS00), tx0.tss[state-(CPUINFO_STR_REGISTER + TX0_TSS00)]); break; + case CPUINFO_STR_REGISTER + TX0_CM_SEL: sprintf(info->s, "CMSEL:0%06o", tx0.cm_sel); break; + case CPUINFO_STR_REGISTER + TX0_LR_SEL: sprintf(info->s, "LRSEL:0%06o", tx0.lr_sel); break; + case CPUINFO_STR_REGISTER + TX0_GBL_CM_SEL: sprintf(info->s, "GBLCMSEL:%X", tx0.gbl_cm_sel); break; + case CPUINFO_STR_REGISTER + TX0_STOP_CYC0: sprintf(info->s, "STOPCYC0:%X", tx0.stop_cyc0); break; + case CPUINFO_STR_REGISTER + TX0_STOP_CYC1: sprintf(info->s, "STOPCYC1:%X", tx0.stop_cyc1); break; + case CPUINFO_STR_REGISTER + TX0_RUN: sprintf(info->s, "RUN:%X", tx0.run); break; + case CPUINFO_STR_REGISTER + TX0_RIM: sprintf(info->s, "RIM:%X", tx0.rim); break; + case CPUINFO_STR_REGISTER + TX0_CYCLE: sprintf(info->s, "CYCLE:%X", tx0.cycle); break; + case CPUINFO_STR_REGISTER + TX0_IOH: sprintf(info->s, "IOH:%X", tx0.ioh); break; + case CPUINFO_STR_REGISTER + TX0_IOS: sprintf(info->s, "IOS:%X", tx0.ios); break; } } @@ -647,24 +647,24 @@ CPU_GET_INFO( tx0_8kw ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tx0_ICount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "TX-0"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Raphael Nabet"); break; + case CPUINFO_STR_NAME: strcpy(info->s, "TX-0"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "TX-0"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Raphael Nabet"); break; - case CPUINFO_STR_FLAGS: strcpy(info->s = cpuintrf_temp_str(), ""); break; + case CPUINFO_STR_FLAGS: strcpy(info->s, ""); break; - case CPUINFO_STR_REGISTER + TX0_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:0%06o", PC); break; - case CPUINFO_STR_REGISTER + TX0_IR: sprintf(info->s = cpuintrf_temp_str(), "IR:0%02o", IR); break; - case CPUINFO_STR_REGISTER + TX0_MBR: sprintf(info->s = cpuintrf_temp_str(), "MBR:0%06o", MBR); break; - case CPUINFO_STR_REGISTER + TX0_MAR: sprintf(info->s = cpuintrf_temp_str(), "MAR:0%06o", MAR); break; - case CPUINFO_STR_REGISTER + TX0_AC: sprintf(info->s = cpuintrf_temp_str(), "AC:0%06o", AC); break; - case CPUINFO_STR_REGISTER + TX0_LR: sprintf(info->s = cpuintrf_temp_str(), "LR:0%06o", LR); break; - case CPUINFO_STR_REGISTER + TX0_XR: sprintf(info->s = cpuintrf_temp_str(), "XR:0%05o", XR); break; - case CPUINFO_STR_REGISTER + TX0_PF: sprintf(info->s = cpuintrf_temp_str(), "PF:0%02o", PF); break; break; - case CPUINFO_STR_REGISTER + TX0_TBR: sprintf(info->s = cpuintrf_temp_str(), "TBR:0%06o", tx0.tbr); break; - case CPUINFO_STR_REGISTER + TX0_TAC: sprintf(info->s = cpuintrf_temp_str(), "TAC:0%06o", tx0.tac); break; + case CPUINFO_STR_REGISTER + TX0_PC: sprintf(info->s, "PC:0%06o", PC); break; + case CPUINFO_STR_REGISTER + TX0_IR: sprintf(info->s, "IR:0%02o", IR); break; + case CPUINFO_STR_REGISTER + TX0_MBR: sprintf(info->s, "MBR:0%06o", MBR); break; + case CPUINFO_STR_REGISTER + TX0_MAR: sprintf(info->s, "MAR:0%06o", MAR); break; + case CPUINFO_STR_REGISTER + TX0_AC: sprintf(info->s, "AC:0%06o", AC); break; + case CPUINFO_STR_REGISTER + TX0_LR: sprintf(info->s, "LR:0%06o", LR); break; + case CPUINFO_STR_REGISTER + TX0_XR: sprintf(info->s, "XR:0%05o", XR); break; + case CPUINFO_STR_REGISTER + TX0_PF: sprintf(info->s, "PF:0%02o", PF); break; break; + case CPUINFO_STR_REGISTER + TX0_TBR: sprintf(info->s, "TBR:0%06o", tx0.tbr); break; + case CPUINFO_STR_REGISTER + TX0_TAC: sprintf(info->s, "TAC:0%06o", tx0.tac); break; case CPUINFO_STR_REGISTER + TX0_TSS00: case CPUINFO_STR_REGISTER + TX0_TSS01: case CPUINFO_STR_REGISTER + TX0_TSS02: @@ -680,17 +680,17 @@ CPU_GET_INFO( tx0_8kw ) case CPUINFO_STR_REGISTER + TX0_TSS14: case CPUINFO_STR_REGISTER + TX0_TSS15: case CPUINFO_STR_REGISTER + TX0_TSS16: - case CPUINFO_STR_REGISTER + TX0_TSS17: sprintf(info->s = cpuintrf_temp_str(), "TSS%02o:0%06o", state-(CPUINFO_STR_REGISTER + TX0_TSS00), tx0.tss[state-(CPUINFO_STR_REGISTER + TX0_TSS00)]); break; - case CPUINFO_STR_REGISTER + TX0_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "CMSEL:0%06o", tx0.cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_LR_SEL: sprintf(info->s = cpuintrf_temp_str(), "LRSEL:0%06o", tx0.lr_sel); break; - case CPUINFO_STR_REGISTER + TX0_GBL_CM_SEL: sprintf(info->s = cpuintrf_temp_str(), "GBLCMSEL:%X", tx0.gbl_cm_sel); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC0: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC0:%X", tx0.stop_cyc0); break; - case CPUINFO_STR_REGISTER + TX0_STOP_CYC1: sprintf(info->s = cpuintrf_temp_str(), "STOPCYC1:%X", tx0.stop_cyc1); break; - case CPUINFO_STR_REGISTER + TX0_RUN: sprintf(info->s = cpuintrf_temp_str(), "RUN:%X", tx0.run); break; - case CPUINFO_STR_REGISTER + TX0_RIM: sprintf(info->s = cpuintrf_temp_str(), "RIM:%X", tx0.rim); break; - case CPUINFO_STR_REGISTER + TX0_CYCLE: sprintf(info->s = cpuintrf_temp_str(), "CYCLE:%X", tx0.cycle); break; - case CPUINFO_STR_REGISTER + TX0_IOH: sprintf(info->s = cpuintrf_temp_str(), "IOH:%X", tx0.ioh); break; - case CPUINFO_STR_REGISTER + TX0_IOS: sprintf(info->s = cpuintrf_temp_str(), "IOS:%X", tx0.ios); break; + case CPUINFO_STR_REGISTER + TX0_TSS17: sprintf(info->s, "TSS%02o:0%06o", state-(CPUINFO_STR_REGISTER + TX0_TSS00), tx0.tss[state-(CPUINFO_STR_REGISTER + TX0_TSS00)]); break; + case CPUINFO_STR_REGISTER + TX0_CM_SEL: sprintf(info->s, "CMSEL:0%06o", tx0.cm_sel); break; + case CPUINFO_STR_REGISTER + TX0_LR_SEL: sprintf(info->s, "LRSEL:0%06o", tx0.lr_sel); break; + case CPUINFO_STR_REGISTER + TX0_GBL_CM_SEL: sprintf(info->s, "GBLCMSEL:%X", tx0.gbl_cm_sel); break; + case CPUINFO_STR_REGISTER + TX0_STOP_CYC0: sprintf(info->s, "STOPCYC0:%X", tx0.stop_cyc0); break; + case CPUINFO_STR_REGISTER + TX0_STOP_CYC1: sprintf(info->s, "STOPCYC1:%X", tx0.stop_cyc1); break; + case CPUINFO_STR_REGISTER + TX0_RUN: sprintf(info->s, "RUN:%X", tx0.run); break; + case CPUINFO_STR_REGISTER + TX0_RIM: sprintf(info->s, "RIM:%X", tx0.rim); break; + case CPUINFO_STR_REGISTER + TX0_CYCLE: sprintf(info->s, "CYCLE:%X", tx0.cycle); break; + case CPUINFO_STR_REGISTER + TX0_IOH: sprintf(info->s, "IOH:%X", tx0.ioh); break; + case CPUINFO_STR_REGISTER + TX0_IOS: sprintf(info->s, "IOS:%X", tx0.ios); break; } } diff --git a/src/emu/cpu/powerpc/ppccom.c b/src/emu/cpu/powerpc/ppccom.c index 212305ddbb2..639131a42d1 100644 --- a/src/emu/cpu/powerpc/ppccom.c +++ b/src/emu/cpu/powerpc/ppccom.c @@ -7,6 +7,7 @@ ***************************************************************************/ #include "ppccom.h" +#include "cpuexec.h" #include "mame.h" #include "deprecat.h" @@ -122,7 +123,7 @@ INLINE void set_xer(powerpc_state *ppc, UINT32 value) INLINE UINT64 get_timebase(powerpc_state *ppc) { - return (cpunum_gettotalcycles(ppc->cpunum) - ppc->tb_zero_cycles) / ppc->tb_divisor; + return (cpu_get_total_cycles(Machine->cpu[ppc->cpunum]) - ppc->tb_zero_cycles) / ppc->tb_divisor; } @@ -132,7 +133,7 @@ INLINE UINT64 get_timebase(powerpc_state *ppc) INLINE void set_timebase(powerpc_state *ppc, UINT64 newtb) { - ppc->tb_zero_cycles = activecpu_gettotalcycles() - newtb * ppc->tb_divisor; + ppc->tb_zero_cycles = cpu_get_total_cycles(Machine->activecpu) - newtb * ppc->tb_divisor; } @@ -143,7 +144,7 @@ INLINE void set_timebase(powerpc_state *ppc, UINT64 newtb) INLINE UINT32 get_decrementer(powerpc_state *ppc) { - INT64 cycles_until_zero = ppc->dec_zero_cycles - cpunum_gettotalcycles(ppc->cpunum); + INT64 cycles_until_zero = ppc->dec_zero_cycles - cpu_get_total_cycles(Machine->cpu[ppc->cpunum]); cycles_until_zero = MAX(cycles_until_zero, 0); return cycles_until_zero / ppc->tb_divisor; } @@ -160,13 +161,13 @@ INLINE void set_decrementer(powerpc_state *ppc, UINT32 newdec) if (PRINTF_DECREMENTER) { - UINT64 total = cpunum_gettotalcycles(ppc->cpunum); + UINT64 total = cpu_get_total_cycles(Machine->cpu[ppc->cpunum]); mame_printf_debug("set_decrementer: olddec=%08X newdec=%08X divisor=%d totalcyc=%08X%08X timer=%08X%08X\n", curdec, newdec, ppc->tb_divisor, (UINT32)(total >> 32), (UINT32)total, (UINT32)(cycles_until_done >> 32), (UINT32)cycles_until_done); } - ppc->dec_zero_cycles = cpunum_gettotalcycles(ppc->cpunum) + cycles_until_done; + ppc->dec_zero_cycles = cpu_get_total_cycles(Machine->cpu[ppc->cpunum]) + cycles_until_done; timer_adjust_oneshot(ppc->decrementer_int_timer, ATTOTIME_IN_CYCLES(cycles_until_done, ppc->cpunum), 0); if ((INT32)curdec >= 0 && (INT32)newdec < 0) @@ -281,7 +282,7 @@ void ppccom_reset(powerpc_state *ppc) ppc->msr = MSROEA_IP; /* reset the decrementer */ - ppc->dec_zero_cycles = cpunum_gettotalcycles(ppc->cpunum); + ppc->dec_zero_cycles = cpu_get_total_cycles(Machine->cpu[ppc->cpunum]); decrementer_int_callback(Machine, ppc, 0); } @@ -302,7 +303,7 @@ void ppccom_reset(powerpc_state *ppc) ppc->spr[SPR603_HID0] = 1; /* time base starts here */ - ppc->tb_zero_cycles = cpunum_gettotalcycles(ppc->cpunum); + ppc->tb_zero_cycles = cpu_get_total_cycles(Machine->cpu[ppc->cpunum]); /* clear interrupts */ ppc->irq_pending = 0; @@ -1256,7 +1257,7 @@ static TIMER_CALLBACK( decrementer_int_callback ) /* advance by another full rev */ ppc->dec_zero_cycles += (UINT64)ppc->tb_divisor << 32; - cycles_until_next = ppc->dec_zero_cycles - cpunum_gettotalcycles(ppc->cpunum); + cycles_until_next = ppc->dec_zero_cycles - cpu_get_total_cycles(machine->cpu[ppc->cpunum]); timer_adjust_oneshot(ppc->decrementer_int_timer, ATTOTIME_IN_CYCLES(cycles_until_next, ppc->cpunum), 0); } diff --git a/src/emu/cpu/powerpc/ppccom.h b/src/emu/cpu/powerpc/ppccom.h index c5dca694d4b..48298654197 100644 --- a/src/emu/cpu/powerpc/ppccom.h +++ b/src/emu/cpu/powerpc/ppccom.h @@ -13,6 +13,7 @@ #include "cpuintrf.h" #include "ppc.h" +#include "timer.h" #include "cpu/vtlb.h" diff --git a/src/emu/cpu/saturn/saturn.c b/src/emu/cpu/saturn/saturn.c index 9c4ac5bcd77..224e144cb71 100644 --- a/src/emu/cpu/saturn/saturn.c +++ b/src/emu/cpu/saturn/saturn.c @@ -376,39 +376,39 @@ CPU_GET_INFO( saturn ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &saturn_ICount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "Saturn"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "Saturn"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0alpha"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Copyright Peter Trauner, all rights reserved."); break; + case CPUINFO_STR_NAME: strcpy(info->s, "Saturn"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "Saturn"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0alpha"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Peter Trauner, all rights reserved."); break; - case CPUINFO_STR_REGISTER + SATURN_PC: sprintf(info->s = cpuintrf_temp_str(), "PC: %.5x", saturn.pc);break; - case CPUINFO_STR_REGISTER + SATURN_D0: sprintf(info->s = cpuintrf_temp_str(), "D0: %.5x", saturn.d[0]);break; - case CPUINFO_STR_REGISTER + SATURN_D1: sprintf(info->s = cpuintrf_temp_str(), "D1: %.5x", saturn.d[1]);break; - case CPUINFO_STR_REGISTER + SATURN_A: sprintf(info->s = cpuintrf_temp_str(), "A: " Reg64Format, Reg64Data(saturn.reg[A]));break; - case CPUINFO_STR_REGISTER + SATURN_B: sprintf(info->s = cpuintrf_temp_str(), "B: " Reg64Format, Reg64Data(saturn.reg[B]));break; - case CPUINFO_STR_REGISTER + SATURN_C: sprintf(info->s = cpuintrf_temp_str(), "C: " Reg64Format, Reg64Data(saturn.reg[C]));break; - case CPUINFO_STR_REGISTER + SATURN_D: sprintf(info->s = cpuintrf_temp_str(), "D: " Reg64Format, Reg64Data(saturn.reg[D]));break; - case CPUINFO_STR_REGISTER + SATURN_R0: sprintf(info->s = cpuintrf_temp_str(), "R0: " Reg64Format, Reg64Data(saturn.reg[R0]));break; - case CPUINFO_STR_REGISTER + SATURN_R1: sprintf(info->s = cpuintrf_temp_str(), "R1: " Reg64Format, Reg64Data(saturn.reg[R1]));break; - case CPUINFO_STR_REGISTER + SATURN_R2: sprintf(info->s = cpuintrf_temp_str(), "R2: " Reg64Format, Reg64Data(saturn.reg[R2]));break; - case CPUINFO_STR_REGISTER + SATURN_R3: sprintf(info->s = cpuintrf_temp_str(), "R3: " Reg64Format, Reg64Data(saturn.reg[R3]));break; - case CPUINFO_STR_REGISTER + SATURN_R4: sprintf(info->s = cpuintrf_temp_str(), "R4: " Reg64Format, Reg64Data(saturn.reg[R4]));break; - case CPUINFO_STR_REGISTER + SATURN_P: sprintf(info->s = cpuintrf_temp_str(), "P:%x", saturn.p);break; - case CPUINFO_STR_REGISTER + SATURN_OUT: sprintf(info->s = cpuintrf_temp_str(), "OUT:%.3x", saturn.out);break; - case CPUINFO_STR_REGISTER + SATURN_CARRY: sprintf(info->s = cpuintrf_temp_str(), "Carry: %d", saturn.carry);break; - case CPUINFO_STR_REGISTER + SATURN_ST: sprintf(info->s = cpuintrf_temp_str(), "ST:%.4x", saturn.st);break; - case CPUINFO_STR_REGISTER + SATURN_HST: sprintf(info->s = cpuintrf_temp_str(), "HST:%x", saturn.hst);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK0: sprintf(info->s = cpuintrf_temp_str(), "RSTK0:%.5x", saturn.rstk[0]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK1: sprintf(info->s = cpuintrf_temp_str(), "RSTK1:%.5x", saturn.rstk[1]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK2: sprintf(info->s = cpuintrf_temp_str(), "RSTK2:%.5x", saturn.rstk[2]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK3: sprintf(info->s = cpuintrf_temp_str(), "RSTK3:%.5x", saturn.rstk[3]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK4: sprintf(info->s = cpuintrf_temp_str(), "RSTK4:%.5x", saturn.rstk[4]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK5: sprintf(info->s = cpuintrf_temp_str(), "RSTK5:%.5x", saturn.rstk[5]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK6: sprintf(info->s = cpuintrf_temp_str(), "RSTK6:%.5x", saturn.rstk[6]);break; - case CPUINFO_STR_REGISTER + SATURN_RSTK7: sprintf(info->s = cpuintrf_temp_str(), "RSTK7:%.5x", saturn.rstk[7]);break; - case CPUINFO_STR_REGISTER + SATURN_IRQ_STATE: sprintf(info->s = cpuintrf_temp_str(), "IRQ:%c%c%c%i", saturn.in_irq?'S':'.', saturn.irq_enable?'e':'.', saturn.pending_irq?'p':'.', saturn.irq_state); break; - case CPUINFO_STR_FLAGS: sprintf(info->s = cpuintrf_temp_str(), "%c%c", saturn.decimal?'D':'.', saturn.carry ? 'C':'.'); break; - case CPUINFO_STR_REGISTER + SATURN_SLEEPING: sprintf(info->s = cpuintrf_temp_str(), "sleep:%c", saturn.sleeping?'S':'.'); break; + case CPUINFO_STR_REGISTER + SATURN_PC: sprintf(info->s, "PC: %.5x", saturn.pc);break; + case CPUINFO_STR_REGISTER + SATURN_D0: sprintf(info->s, "D0: %.5x", saturn.d[0]);break; + case CPUINFO_STR_REGISTER + SATURN_D1: sprintf(info->s, "D1: %.5x", saturn.d[1]);break; + case CPUINFO_STR_REGISTER + SATURN_A: sprintf(info->s, "A: " Reg64Format, Reg64Data(saturn.reg[A]));break; + case CPUINFO_STR_REGISTER + SATURN_B: sprintf(info->s, "B: " Reg64Format, Reg64Data(saturn.reg[B]));break; + case CPUINFO_STR_REGISTER + SATURN_C: sprintf(info->s, "C: " Reg64Format, Reg64Data(saturn.reg[C]));break; + case CPUINFO_STR_REGISTER + SATURN_D: sprintf(info->s, "D: " Reg64Format, Reg64Data(saturn.reg[D]));break; + case CPUINFO_STR_REGISTER + SATURN_R0: sprintf(info->s, "R0: " Reg64Format, Reg64Data(saturn.reg[R0]));break; + case CPUINFO_STR_REGISTER + SATURN_R1: sprintf(info->s, "R1: " Reg64Format, Reg64Data(saturn.reg[R1]));break; + case CPUINFO_STR_REGISTER + SATURN_R2: sprintf(info->s, "R2: " Reg64Format, Reg64Data(saturn.reg[R2]));break; + case CPUINFO_STR_REGISTER + SATURN_R3: sprintf(info->s, "R3: " Reg64Format, Reg64Data(saturn.reg[R3]));break; + case CPUINFO_STR_REGISTER + SATURN_R4: sprintf(info->s, "R4: " Reg64Format, Reg64Data(saturn.reg[R4]));break; + case CPUINFO_STR_REGISTER + SATURN_P: sprintf(info->s, "P:%x", saturn.p);break; + case CPUINFO_STR_REGISTER + SATURN_OUT: sprintf(info->s, "OUT:%.3x", saturn.out);break; + case CPUINFO_STR_REGISTER + SATURN_CARRY: sprintf(info->s, "Carry: %d", saturn.carry);break; + case CPUINFO_STR_REGISTER + SATURN_ST: sprintf(info->s, "ST:%.4x", saturn.st);break; + case CPUINFO_STR_REGISTER + SATURN_HST: sprintf(info->s, "HST:%x", saturn.hst);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK0: sprintf(info->s, "RSTK0:%.5x", saturn.rstk[0]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK1: sprintf(info->s, "RSTK1:%.5x", saturn.rstk[1]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK2: sprintf(info->s, "RSTK2:%.5x", saturn.rstk[2]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK3: sprintf(info->s, "RSTK3:%.5x", saturn.rstk[3]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK4: sprintf(info->s, "RSTK4:%.5x", saturn.rstk[4]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK5: sprintf(info->s, "RSTK5:%.5x", saturn.rstk[5]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK6: sprintf(info->s, "RSTK6:%.5x", saturn.rstk[6]);break; + case CPUINFO_STR_REGISTER + SATURN_RSTK7: sprintf(info->s, "RSTK7:%.5x", saturn.rstk[7]);break; + case CPUINFO_STR_REGISTER + SATURN_IRQ_STATE: sprintf(info->s, "IRQ:%c%c%c%i", saturn.in_irq?'S':'.', saturn.irq_enable?'e':'.', saturn.pending_irq?'p':'.', saturn.irq_state); break; + case CPUINFO_STR_FLAGS: sprintf(info->s, "%c%c", saturn.decimal?'D':'.', saturn.carry ? 'C':'.'); break; + case CPUINFO_STR_REGISTER + SATURN_SLEEPING: sprintf(info->s, "sleep:%c", saturn.sleeping?'S':'.'); break; } } diff --git a/src/emu/cpu/sc61860/sc61860.c b/src/emu/cpu/sc61860/sc61860.c index 9693e85a6d8..9734152d231 100644 --- a/src/emu/cpu/sc61860/sc61860.c +++ b/src/emu/cpu/sc61860/sc61860.c @@ -218,32 +218,32 @@ CPU_GET_INFO( sc61860 ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &sc61860_ICount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "SC61860"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "SC61860"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0beta"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Copyright Peter Trauner, all rights reserved."); break; + case CPUINFO_STR_NAME: strcpy(info->s, "SC61860"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "SC61860"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0beta"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Peter Trauner, all rights reserved."); break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c", sc61860.zero?'Z':'.', sc61860.carry ? 'C':'.'); + sprintf(info->s, "%c%c", sc61860.zero?'Z':'.', sc61860.carry ? 'C':'.'); break; - case CPUINFO_STR_REGISTER + SC61860_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:%.4x", sc61860.pc);break; - case CPUINFO_STR_REGISTER + SC61860_DP: sprintf(info->s = cpuintrf_temp_str(), "DP:%.4x", sc61860.dp);break; - case CPUINFO_STR_REGISTER + SC61860_P: sprintf(info->s = cpuintrf_temp_str(), "P:%.2x", sc61860.p);break; - case CPUINFO_STR_REGISTER + SC61860_Q: sprintf(info->s = cpuintrf_temp_str(), "Q:%.2x", sc61860.q);break; - case CPUINFO_STR_REGISTER + SC61860_R: sprintf(info->s = cpuintrf_temp_str(), "R:%.2x", sc61860.r);break; - case CPUINFO_STR_REGISTER + SC61860_I: sprintf(info->s = cpuintrf_temp_str(), "I:%.2x", sc61860.ram[I]);break; - case CPUINFO_STR_REGISTER + SC61860_J: sprintf(info->s = cpuintrf_temp_str(), "J:%.2x", sc61860.ram[J]);break; - case CPUINFO_STR_REGISTER + SC61860_K: sprintf(info->s = cpuintrf_temp_str(), "K:%.2x", sc61860.ram[K]);break; - case CPUINFO_STR_REGISTER + SC61860_L: sprintf(info->s = cpuintrf_temp_str(), "L:%.2x", sc61860.ram[L]);break; - case CPUINFO_STR_REGISTER + SC61860_V: sprintf(info->s = cpuintrf_temp_str(), "V:%.2x", sc61860.ram[V]);break; - case CPUINFO_STR_REGISTER + SC61860_W: sprintf(info->s = cpuintrf_temp_str(), "W:%.2x", sc61860.ram[W]);break; - case CPUINFO_STR_REGISTER + SC61860_H: sprintf(info->s = cpuintrf_temp_str(), "W:%.2x", sc61860.h);break; - case CPUINFO_STR_REGISTER + SC61860_BA: sprintf(info->s = cpuintrf_temp_str(), "BA:%.2x%.2x", sc61860.ram[B], sc61860.ram[A]);break; - case CPUINFO_STR_REGISTER + SC61860_X: sprintf(info->s = cpuintrf_temp_str(), "X: %.2x%.2x", sc61860.ram[XH], sc61860.ram[XL]);break; - case CPUINFO_STR_REGISTER + SC61860_Y: sprintf(info->s = cpuintrf_temp_str(), "Y: %.2x%.2x", sc61860.ram[YH], sc61860.ram[YL]);break; - case CPUINFO_STR_REGISTER + SC61860_CARRY: sprintf(info->s = cpuintrf_temp_str(), "Carry: %d", sc61860.carry);break; - case CPUINFO_STR_REGISTER + SC61860_ZERO: sprintf(info->s = cpuintrf_temp_str(), "Zero: %d", sc61860.zero);break; + case CPUINFO_STR_REGISTER + SC61860_PC: sprintf(info->s, "PC:%.4x", sc61860.pc);break; + case CPUINFO_STR_REGISTER + SC61860_DP: sprintf(info->s, "DP:%.4x", sc61860.dp);break; + case CPUINFO_STR_REGISTER + SC61860_P: sprintf(info->s, "P:%.2x", sc61860.p);break; + case CPUINFO_STR_REGISTER + SC61860_Q: sprintf(info->s, "Q:%.2x", sc61860.q);break; + case CPUINFO_STR_REGISTER + SC61860_R: sprintf(info->s, "R:%.2x", sc61860.r);break; + case CPUINFO_STR_REGISTER + SC61860_I: sprintf(info->s, "I:%.2x", sc61860.ram[I]);break; + case CPUINFO_STR_REGISTER + SC61860_J: sprintf(info->s, "J:%.2x", sc61860.ram[J]);break; + case CPUINFO_STR_REGISTER + SC61860_K: sprintf(info->s, "K:%.2x", sc61860.ram[K]);break; + case CPUINFO_STR_REGISTER + SC61860_L: sprintf(info->s, "L:%.2x", sc61860.ram[L]);break; + case CPUINFO_STR_REGISTER + SC61860_V: sprintf(info->s, "V:%.2x", sc61860.ram[V]);break; + case CPUINFO_STR_REGISTER + SC61860_W: sprintf(info->s, "W:%.2x", sc61860.ram[W]);break; + case CPUINFO_STR_REGISTER + SC61860_H: sprintf(info->s, "W:%.2x", sc61860.h);break; + case CPUINFO_STR_REGISTER + SC61860_BA: sprintf(info->s, "BA:%.2x%.2x", sc61860.ram[B], sc61860.ram[A]);break; + case CPUINFO_STR_REGISTER + SC61860_X: sprintf(info->s, "X: %.2x%.2x", sc61860.ram[XH], sc61860.ram[XL]);break; + case CPUINFO_STR_REGISTER + SC61860_Y: sprintf(info->s, "Y: %.2x%.2x", sc61860.ram[YH], sc61860.ram[YL]);break; + case CPUINFO_STR_REGISTER + SC61860_CARRY: sprintf(info->s, "Carry: %d", sc61860.carry);break; + case CPUINFO_STR_REGISTER + SC61860_ZERO: sprintf(info->s, "Zero: %d", sc61860.zero);break; } } diff --git a/src/emu/cpu/sh2/sh2comn.c b/src/emu/cpu/sh2/sh2comn.c index db726069cc4..083a284dbd2 100644 --- a/src/emu/cpu/sh2/sh2comn.c +++ b/src/emu/cpu/sh2/sh2comn.c @@ -8,6 +8,7 @@ #include "debugger.h" #include "deprecat.h" +#include "cpuexec.h" #include "sh2.h" #include "sh2comn.h" @@ -59,7 +60,7 @@ INLINE void WL(offs_t A, UINT32 V) static void sh2_timer_resync(void) { int divider = div_tab[(sh2->m[5] >> 8) & 3]; - UINT64 cur_time = cpunum_gettotalcycles(sh2->cpu_number); + UINT64 cur_time = cpu_get_total_cycles(Machine->cpu[sh2->cpu_number]); if(divider) sh2->frc += (cur_time - sh2->frc_base) >> divider; @@ -96,7 +97,7 @@ static void sh2_timer_activate(void) int divider = div_tab[(sh2->m[5] >> 8) & 3]; if(divider) { max_delta <<= divider; - sh2->frc_base = cpunum_gettotalcycles(sh2->cpu_number); + sh2->frc_base = cpu_get_total_cycles(Machine->cpu[sh2->cpu_number]); timer_adjust_oneshot(sh2->timer, ATTOTIME_IN_CYCLES(max_delta, sh2->cpu_number), sh2->cpu_number); } else { logerror("SH2.%d: Timer event in %d cycles of external clock", sh2->cpu_number, max_delta); diff --git a/src/emu/cpu/sh2/sh2comn.h b/src/emu/cpu/sh2/sh2comn.h index 8c88817ab41..1b339ab6db6 100644 --- a/src/emu/cpu/sh2/sh2comn.h +++ b/src/emu/cpu/sh2/sh2comn.h @@ -11,6 +11,8 @@ #ifndef __SH2COMN_H__ #define __SH2COMN_H__ +#include "timer.h" + #define USE_SH2DRC #ifdef USE_SH2DRC diff --git a/src/emu/cpu/sh4/sh4comn.c b/src/emu/cpu/sh4/sh4comn.c index a173a8f4f6e..b55e760ff76 100644 --- a/src/emu/cpu/sh4/sh4comn.c +++ b/src/emu/cpu/sh4/sh4comn.c @@ -8,6 +8,7 @@ #include "debugger.h" #include "deprecat.h" +#include "cpuexec.h" #include "sh4.h" #include "sh4regs.h" #include "sh4comn.h" @@ -1010,7 +1011,7 @@ void sh4_set_irln_input(int cpunum, int value) if (sh4.irln == value) return; sh4.irln = value; - cpunum_set_input_line(Machine, cpunum, SH4_IRLn, PULSE_LINE); + cpu_set_input_line(Machine->cpu[cpunum], SH4_IRLn, PULSE_LINE); } void sh4_set_irq_line(int irqline, int state) // set state of external interrupt line diff --git a/src/emu/cpu/sm8500/sm8500.c b/src/emu/cpu/sm8500/sm8500.c index b6975efe26e..a68c751cd48 100644 --- a/src/emu/cpu/sm8500/sm8500.c +++ b/src/emu/cpu/sm8500/sm8500.c @@ -502,13 +502,13 @@ CPU_GET_INFO( sm8500 ) case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(sm8500); break; case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &sm8500_icount; break; - case CPUINFO_STR_NAME: strcpy( info->s = cpuintrf_temp_str(), "sm8500" ); break; - case CPUINFO_STR_CORE_FAMILY: strcpy( info->s = cpuintrf_temp_str(), "Sharp SM8500" ); break; - case CPUINFO_STR_CORE_VERSION: strcpy( info->s = cpuintrf_temp_str(), "0.1" ); break; - case CPUINFO_STR_CORE_FILE: strcpy( info->s = cpuintrf_temp_str(), __FILE__ ); break; - case CPUINFO_STR_CORE_CREDITS: strcpy( info->s = cpuintrf_temp_str(), "Copyright The MESS Team." ); break; + case CPUINFO_STR_NAME: strcpy( info->s, "sm8500" ); break; + case CPUINFO_STR_CORE_FAMILY: strcpy( info->s, "Sharp SM8500" ); break; + case CPUINFO_STR_CORE_VERSION: strcpy( info->s, "0.1" ); break; + case CPUINFO_STR_CORE_FILE: strcpy( info->s, __FILE__ ); break; + case CPUINFO_STR_CORE_CREDITS: strcpy( info->s, "Copyright The MESS Team." ); break; case CPUINFO_STR_FLAGS: - sprintf( info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c%c%c", + sprintf( info->s, "%c%c%c%c%c%c%c%c", regs.PS1 & FLAG_C ? 'C' : '.', regs.PS1 & FLAG_Z ? 'Z' : '.', regs.PS1 & FLAG_S ? 'S' : '.', @@ -518,18 +518,18 @@ CPU_GET_INFO( sm8500 ) regs.PS1 & FLAG_B ? 'B' : '.', regs.PS1 & FLAG_I ? 'I' : '.' ); break; - case CPUINFO_STR_REGISTER + SM8500_RR0: sprintf(info->s = cpuintrf_temp_str(), "RR0:%04X", sm85cpu_mem_readword( 0x00 ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR2: sprintf(info->s = cpuintrf_temp_str(), "RR2:%04X", sm85cpu_mem_readword( 0x02 ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR4: sprintf(info->s = cpuintrf_temp_str(), "RR4:%04X", sm85cpu_mem_readword( 0x04 ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR6: sprintf(info->s = cpuintrf_temp_str(), "RR6:%04X", sm85cpu_mem_readword( 0x06 ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR8: sprintf(info->s = cpuintrf_temp_str(), "RR8:%04X", sm85cpu_mem_readword( 0x08 ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR10: sprintf(info->s = cpuintrf_temp_str(), "RR10:%04X", sm85cpu_mem_readword( 0x0A ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR12: sprintf(info->s = cpuintrf_temp_str(), "RR12:%04X", sm85cpu_mem_readword( 0x0C ) ); break; - case CPUINFO_STR_REGISTER + SM8500_RR14: sprintf(info->s = cpuintrf_temp_str(), "RR14:%04X", sm85cpu_mem_readword( 0x0E ) ); break; - case CPUINFO_STR_REGISTER + SM8500_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:%04X", regs.PC); break; - case CPUINFO_STR_REGISTER + SM8500_SP: sprintf(info->s = cpuintrf_temp_str(), "SP:%04X", regs.SP); break; - case CPUINFO_STR_REGISTER + SM8500_PS: sprintf(info->s = cpuintrf_temp_str(), "PS:%04X", ( regs.PS0 << 8 ) | regs.PS1 ); break; - case CPUINFO_STR_REGISTER + SM8500_SYS16: sprintf(info->s = cpuintrf_temp_str(), "SYS:%04X", regs.SYS ); break; + case CPUINFO_STR_REGISTER + SM8500_RR0: sprintf(info->s, "RR0:%04X", sm85cpu_mem_readword( 0x00 ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR2: sprintf(info->s, "RR2:%04X", sm85cpu_mem_readword( 0x02 ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR4: sprintf(info->s, "RR4:%04X", sm85cpu_mem_readword( 0x04 ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR6: sprintf(info->s, "RR6:%04X", sm85cpu_mem_readword( 0x06 ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR8: sprintf(info->s, "RR8:%04X", sm85cpu_mem_readword( 0x08 ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR10: sprintf(info->s, "RR10:%04X", sm85cpu_mem_readword( 0x0A ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR12: sprintf(info->s, "RR12:%04X", sm85cpu_mem_readword( 0x0C ) ); break; + case CPUINFO_STR_REGISTER + SM8500_RR14: sprintf(info->s, "RR14:%04X", sm85cpu_mem_readword( 0x0E ) ); break; + case CPUINFO_STR_REGISTER + SM8500_PC: sprintf(info->s, "PC:%04X", regs.PC); break; + case CPUINFO_STR_REGISTER + SM8500_SP: sprintf(info->s, "SP:%04X", regs.SP); break; + case CPUINFO_STR_REGISTER + SM8500_PS: sprintf(info->s, "PS:%04X", ( regs.PS0 << 8 ) | regs.PS1 ); break; + case CPUINFO_STR_REGISTER + SM8500_SYS16: sprintf(info->s, "SYS:%04X", regs.SYS ); break; } } diff --git a/src/emu/cpu/t11/t11dasm.c b/src/emu/cpu/t11/t11dasm.c index 2cd615268f7..60ab7533e2d 100644 --- a/src/emu/cpu/t11/t11dasm.c +++ b/src/emu/cpu/t11/t11dasm.c @@ -19,7 +19,7 @@ static offs_t pcbase; static unsigned MakeEA (char **ea, int lo, unsigned pc, int width) { - char *buffer = cpuintrf_temp_str(); + static char buffer[32]; int reg, pm; assert (width == 2 || width == 4); diff --git a/src/emu/cpu/tlcs90/tlcs90.c b/src/emu/cpu/tlcs90/tlcs90.c index 5e89b4c5acf..270f0a2307f 100644 --- a/src/emu/cpu/tlcs90/tlcs90.c +++ b/src/emu/cpu/tlcs90/tlcs90.c @@ -8,6 +8,7 @@ #include "debugger.h" #include "deprecat.h" +#include "cpuexec.h" #include "tlcs90.h" typedef struct @@ -2655,7 +2656,7 @@ static CPU_INIT( t90 ) T90.irq_callback = irqcallback; T90.device = device; - T90.timer_period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(cpunum_get_active())), 8); + T90.timer_period = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(device->machine->activecpu)), 8); // Reset registers to their initial values @@ -2792,14 +2793,14 @@ CPU_GET_INFO( tmp90840 ) /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TMP90840"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "Toshiba TLCS-90"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Luca Elia"); break; + case CPUINFO_STR_NAME: strcpy(info->s, "TMP90840"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "Toshiba TLCS-90"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Luca Elia"); break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c%c%c", + sprintf(info->s, "%c%c%c%c%c%c%c%c", F & 0x80 ? 'S':'.', F & 0x40 ? 'Z':'.', F & 0x20 ? 'I':'.', @@ -2810,21 +2811,21 @@ CPU_GET_INFO( tmp90840 ) F & 0x01 ? 'C':'.'); break; - case CPUINFO_STR_REGISTER + T90_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:%04X", T90.pc.w.l); break; - case CPUINFO_STR_REGISTER + T90_SP: sprintf(info->s = cpuintrf_temp_str(), "SP:%04X", T90.sp.w.l); break; - case CPUINFO_STR_REGISTER + T90_A: sprintf(info->s = cpuintrf_temp_str(), "~A:%02X", T90.af.b.h); break; - case CPUINFO_STR_REGISTER + T90_B: sprintf(info->s = cpuintrf_temp_str(), "~B:%02X", T90.bc.b.h); break; - case CPUINFO_STR_REGISTER + T90_C: sprintf(info->s = cpuintrf_temp_str(), "~C:%02X", T90.bc.b.l); break; - case CPUINFO_STR_REGISTER + T90_D: sprintf(info->s = cpuintrf_temp_str(), "~D:%02X", T90.de.b.h); break; - case CPUINFO_STR_REGISTER + T90_E: sprintf(info->s = cpuintrf_temp_str(), "~E:%02X", T90.de.b.l); break; - case CPUINFO_STR_REGISTER + T90_H: sprintf(info->s = cpuintrf_temp_str(), "~H:%02X", T90.hl.b.h); break; - case CPUINFO_STR_REGISTER + T90_L: sprintf(info->s = cpuintrf_temp_str(), "~L:%02X", T90.hl.b.l); break; - case CPUINFO_STR_REGISTER + T90_AF: sprintf(info->s = cpuintrf_temp_str(), "AF:%04X", T90.af.w.l); break; - case CPUINFO_STR_REGISTER + T90_BC: sprintf(info->s = cpuintrf_temp_str(), "BC:%04X", T90.bc.w.l); break; - case CPUINFO_STR_REGISTER + T90_DE: sprintf(info->s = cpuintrf_temp_str(), "DE:%04X", T90.de.w.l); break; - case CPUINFO_STR_REGISTER + T90_HL: sprintf(info->s = cpuintrf_temp_str(), "HL:%04X", T90.hl.w.l); break; - case CPUINFO_STR_REGISTER + T90_IX: sprintf(info->s = cpuintrf_temp_str(), "IX:%04X", T90.ix.w.l); break; - case CPUINFO_STR_REGISTER + T90_IY: sprintf(info->s = cpuintrf_temp_str(), "IY:%04X", T90.iy.w.l); break; + case CPUINFO_STR_REGISTER + T90_PC: sprintf(info->s, "PC:%04X", T90.pc.w.l); break; + case CPUINFO_STR_REGISTER + T90_SP: sprintf(info->s, "SP:%04X", T90.sp.w.l); break; + case CPUINFO_STR_REGISTER + T90_A: sprintf(info->s, "~A:%02X", T90.af.b.h); break; + case CPUINFO_STR_REGISTER + T90_B: sprintf(info->s, "~B:%02X", T90.bc.b.h); break; + case CPUINFO_STR_REGISTER + T90_C: sprintf(info->s, "~C:%02X", T90.bc.b.l); break; + case CPUINFO_STR_REGISTER + T90_D: sprintf(info->s, "~D:%02X", T90.de.b.h); break; + case CPUINFO_STR_REGISTER + T90_E: sprintf(info->s, "~E:%02X", T90.de.b.l); break; + case CPUINFO_STR_REGISTER + T90_H: sprintf(info->s, "~H:%02X", T90.hl.b.h); break; + case CPUINFO_STR_REGISTER + T90_L: sprintf(info->s, "~L:%02X", T90.hl.b.l); break; + case CPUINFO_STR_REGISTER + T90_AF: sprintf(info->s, "AF:%04X", T90.af.w.l); break; + case CPUINFO_STR_REGISTER + T90_BC: sprintf(info->s, "BC:%04X", T90.bc.w.l); break; + case CPUINFO_STR_REGISTER + T90_DE: sprintf(info->s, "DE:%04X", T90.de.w.l); break; + case CPUINFO_STR_REGISTER + T90_HL: sprintf(info->s, "HL:%04X", T90.hl.w.l); break; + case CPUINFO_STR_REGISTER + T90_IX: sprintf(info->s, "IX:%04X", T90.ix.w.l); break; + case CPUINFO_STR_REGISTER + T90_IY: sprintf(info->s, "IY:%04X", T90.iy.w.l); break; } } @@ -2838,7 +2839,7 @@ CPU_GET_INFO( tmp90841 ) /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TMP90841"); return; + case CPUINFO_STR_NAME: strcpy(info->s, "TMP90841"); return; } CPU_GET_INFO_CALL(tmp90840); @@ -2854,7 +2855,7 @@ CPU_GET_INFO( tmp91640 ) /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TMP91640"); return; + case CPUINFO_STR_NAME: strcpy(info->s, "TMP91640"); return; } CPU_GET_INFO_CALL(tmp90840); @@ -2870,7 +2871,7 @@ CPU_GET_INFO( tmp91641 ) /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TMP91641"); return; + case CPUINFO_STR_NAME: strcpy(info->s, "TMP91641"); return; } CPU_GET_INFO_CALL(tmp90840); diff --git a/src/emu/cpu/tms34010/34010ops.c b/src/emu/cpu/tms34010/34010ops.c index d732a9118a6..4e500d23e8d 100644 --- a/src/emu/cpu/tms34010/34010ops.c +++ b/src/emu/cpu/tms34010/34010ops.c @@ -97,7 +97,7 @@ static void unimpl(tms34010_state *tms, UINT16 op) /* extra check to prevent bad things */ if (tms->pc == 0 || opcode_table[cpu_readop16(TOBYTE(tms->pc)) >> 4] == unimpl) { - cpunum_set_input_line(tms->device->machine, cpunum_get_active(), INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(tms->device, INPUT_LINE_HALT, ASSERT_LINE); debugger_break(tms->device->machine); } } diff --git a/src/emu/cpu/tms34010/tms34010.c b/src/emu/cpu/tms34010/tms34010.c index fbc8167a0a7..a1f5afa7076 100644 --- a/src/emu/cpu/tms34010/tms34010.c +++ b/src/emu/cpu/tms34010/tms34010.c @@ -778,7 +778,7 @@ static TIMER_CALLBACK( internal_interrupt_callback ) for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) if (machine->cpu[cpunum] == tms->device) { - cpu_triggerint(machine, cpunum); + cpu_triggerint(machine->cpu[cpunum]); break; } } @@ -1508,7 +1508,7 @@ READ16_HANDLER( tms34010_io_register_r ) return result; case REG_REFCNT: - return (activecpu_gettotalcycles() / 16) & 0xfffc; + return (cpu_get_total_cycles(machine->activecpu) / 16) & 0xfffc; case REG_INTPEND: result = IOREG(tms, offset); @@ -1554,7 +1554,7 @@ READ16_HANDLER( tms34020_io_register_r ) { int refreshrate = (IOREG(tms, REG020_CONFIG) >> 8) & 7; if (refreshrate < 6) - return (activecpu_gettotalcycles() / refreshrate) & 0xffff; + return (cpu_get_total_cycles(machine->activecpu) / refreshrate) & 0xffff; break; } } @@ -1633,7 +1633,7 @@ void tms34010_host_w(const device_config *cpu, int reg, int data) /* swap back */ cpu_pop_context(); - activecpu_reset_banking(); + memory_set_opbase(cpu_get_physical_pc_byte(tms->device)); } diff --git a/src/emu/cpu/tms7000/tms7000.c b/src/emu/cpu/tms7000/tms7000.c index 8557ba6ac89..44d3d6121d8 100644 --- a/src/emu/cpu/tms7000/tms7000.c +++ b/src/emu/cpu/tms7000/tms7000.c @@ -29,6 +29,7 @@ // SJE: Implemented internal register file #include "cpuintrf.h" +#include "cpuexec.h" #include "debugger.h" #include "tms7000.h" #include "deprecat.h" @@ -338,14 +339,14 @@ CPU_GET_INFO( tms7000 ) case CPUINFO_PTR_INTERNAL_MEMORY_MAP: info->internal_map8 = ADDRESS_MAP_NAME(tms7000_mem); break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "TMS7000"); break; - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "Texas Instriuments TMS7000"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.0"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Copyright tim lindner"); break; + case CPUINFO_STR_NAME: strcpy(info->s, "TMS7000"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "Texas Instriuments TMS7000"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright tim lindner"); break; case CPUINFO_STR_FLAGS: - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c%c%c", + sprintf(info->s, "%c%c%c%c%c%c%c%c", tms7000.sr & 0x80 ? 'C':'c', tms7000.sr & 0x40 ? 'N':'n', tms7000.sr & 0x20 ? 'Z':'z', @@ -356,13 +357,13 @@ CPU_GET_INFO( tms7000 ) tms7000.sr & 0x01 ? '?':'.' ); break; - case CPUINFO_STR_REGISTER + TMS7000_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:%04X", tms7000.pc.w.l); break; - case CPUINFO_STR_REGISTER + TMS7000_SP: sprintf(info->s = cpuintrf_temp_str(), "S:%02X", tms7000.sp); break; - case CPUINFO_STR_REGISTER + TMS7000_ST: sprintf(info->s = cpuintrf_temp_str(), "ST:%02X", tms7000.sr); break; - case CPUINFO_STR_REGISTER + TMS7000_IDLE: sprintf(info->s = cpuintrf_temp_str(), "Idle:%02X", tms7000.idle_state); break; - case CPUINFO_STR_REGISTER + TMS7000_T1_CL: sprintf(info->s = cpuintrf_temp_str(), "T1CL:%02X", tms7000.t1_capture_latch); break; - case CPUINFO_STR_REGISTER + TMS7000_T1_PS: sprintf(info->s = cpuintrf_temp_str(), "T1PS:%02X", tms7000.t1_prescaler & 0x1f); break; - case CPUINFO_STR_REGISTER + TMS7000_T1_DEC: sprintf(info->s = cpuintrf_temp_str(), "T1DEC:%02X", tms7000.t1_decrementer & 0xff); break; + case CPUINFO_STR_REGISTER + TMS7000_PC: sprintf(info->s, "PC:%04X", tms7000.pc.w.l); break; + case CPUINFO_STR_REGISTER + TMS7000_SP: sprintf(info->s, "S:%02X", tms7000.sp); break; + case CPUINFO_STR_REGISTER + TMS7000_ST: sprintf(info->s, "ST:%02X", tms7000.sr); break; + case CPUINFO_STR_REGISTER + TMS7000_IDLE: sprintf(info->s, "Idle:%02X", tms7000.idle_state); break; + case CPUINFO_STR_REGISTER + TMS7000_T1_CL: sprintf(info->s, "T1CL:%02X", tms7000.t1_capture_latch); break; + case CPUINFO_STR_REGISTER + TMS7000_T1_PS: sprintf(info->s, "T1PS:%02X", tms7000.t1_prescaler & 0x1f); break; + case CPUINFO_STR_REGISTER + TMS7000_T1_DEC: sprintf(info->s, "T1DEC:%02X", tms7000.t1_decrementer & 0xff); break; } } @@ -562,14 +563,14 @@ static void tms7000_service_timer1( void ) if( --tms7000.t1_decrementer < 0 ) /* Decrement timer1 register and check for underflow */ { tms7000.t1_decrementer = tms7000.pf[2]; /* Reload decrementer (8 bit) */ - cpunum_set_input_line(Machine, cpunum_get_active(), TMS7000_IRQ2_LINE, HOLD_LINE); - //LOG( ("tms7000: trigger int2 (cycles: %d)\t%d\tdelta %d\n", activecpu_gettotalcycles(), activecpu_gettotalcycles() - tick, tms7000_cycles_per_INT2-(activecpu_gettotalcycles() - tick) ); - //tick = activecpu_gettotalcycles() ); + cpu_set_input_line(Machine->activecpu, TMS7000_IRQ2_LINE, HOLD_LINE); + //LOG( ("tms7000: trigger int2 (cycles: %d)\t%d\tdelta %d\n", cpu_get_total_cycles(machine->activecpu), cpu_get_total_cycles(machine->activecpu) - tick, tms7000_cycles_per_INT2-(cpu_get_total_cycles(machine->activecpu) - tick) ); + //tick = cpu_get_total_cycles(machine->activecpu) ); /* Also, cascade out to timer 2 - timer 2 unimplemented */ } } -// LOG( ( "tms7000: service timer1. 0x%2.2x 0x%2.2x (cycles %d)\t%d\t\n", tms7000.t1_prescaler, tms7000.t1_decrementer, activecpu_gettotalcycles(), activecpu_gettotalcycles() - tick2 ) ); -// tick2 = activecpu_gettotalcycles(); +// LOG( ( "tms7000: service timer1. 0x%2.2x 0x%2.2x (cycles %d)\t%d\t\n", tms7000.t1_prescaler, tms7000.t1_decrementer, cpu_get_total_cycles(machine->activecpu), cpu_get_total_cycles(machine->activecpu) - tick2 ) ); +// tick2 = cpu_get_total_cycles(machine->activecpu); } static WRITE8_HANDLER( tms70x0_pf_w ) /* Perpherial file write */ diff --git a/src/emu/cpu/v30mz/v30mz.c b/src/emu/cpu/v30mz/v30mz.c index 6333d3f91d3..5c4b380f5bc 100644 --- a/src/emu/cpu/v30mz/v30mz.c +++ b/src/emu/cpu/v30mz/v30mz.c @@ -1102,14 +1102,14 @@ CPU_GET_INFO( v30mz ) case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &nec_ICount; break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "NEC V-Series"); break; - case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.5"); break; - case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; - case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "NEC emulator v1.5 by Bryan McPhail"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s, "NEC V-Series"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s, "1.5"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s, "NEC emulator v1.5 by Bryan McPhail"); break; case CPUINFO_STR_FLAGS: flags = CompressFlags(); - sprintf(info->s = cpuintrf_temp_str(), "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", + sprintf(info->s, "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", flags & 0x8000 ? 'M':'.', flags & 0x4000 ? '?':'.', flags & 0x2000 ? '?':'.', @@ -1128,22 +1128,22 @@ CPU_GET_INFO( v30mz ) flags & 0x0001 ? 'C':'.'); break; - case CPUINFO_STR_REGISTER + NEC_PC: sprintf(info->s = cpuintrf_temp_str(), "PC:%04X", (I.sregs[CS]<<4) + I.ip); break; - case CPUINFO_STR_REGISTER + NEC_IP: sprintf(info->s = cpuintrf_temp_str(), "IP:%04X", I.ip); break; - case CPUINFO_STR_REGISTER + NEC_SP: sprintf(info->s = cpuintrf_temp_str(), "SP:%04X", I.regs.w[SP]); break; - case CPUINFO_STR_REGISTER + NEC_FLAGS: sprintf(info->s = cpuintrf_temp_str(), "F:%04X", CompressFlags()); break; - case CPUINFO_STR_REGISTER + NEC_AW: sprintf(info->s = cpuintrf_temp_str(), "AW:%04X", I.regs.w[AW]); break; - case CPUINFO_STR_REGISTER + NEC_CW: sprintf(info->s = cpuintrf_temp_str(), "CW:%04X", I.regs.w[CW]); break; - case CPUINFO_STR_REGISTER + NEC_DW: sprintf(info->s = cpuintrf_temp_str(), "DW:%04X", I.regs.w[DW]); break; - case CPUINFO_STR_REGISTER + NEC_BW: sprintf(info->s = cpuintrf_temp_str(), "BW:%04X", I.regs.w[BW]); break; - case CPUINFO_STR_REGISTER + NEC_BP: sprintf(info->s = cpuintrf_temp_str(), "BP:%04X", I.regs.w[BP]); break; - case CPUINFO_STR_REGISTER + NEC_IX: sprintf(info->s = cpuintrf_temp_str(), "IX:%04X", I.regs.w[IX]); break; - case CPUINFO_STR_REGISTER + NEC_IY: sprintf(info->s = cpuintrf_temp_str(), "IY:%04X", I.regs.w[IY]); break; - case CPUINFO_STR_REGISTER + NEC_ES: sprintf(info->s = cpuintrf_temp_str(), "ES:%04X", I.sregs[ES]); break; - case CPUINFO_STR_REGISTER + NEC_CS: sprintf(info->s = cpuintrf_temp_str(), "CS:%04X", I.sregs[CS]); break; - case CPUINFO_STR_REGISTER + NEC_SS: sprintf(info->s = cpuintrf_temp_str(), "SS:%04X", I.sregs[SS]); break; - case CPUINFO_STR_REGISTER + NEC_DS: sprintf(info->s = cpuintrf_temp_str(), "DS:%04X", I.sregs[DS]); break; - case CPUINFO_STR_REGISTER + NEC_VECTOR: sprintf(info->s = cpuintrf_temp_str(), "V:%02X", I.int_vector); break; + case CPUINFO_STR_REGISTER + NEC_PC: sprintf(info->s, "PC:%04X", (I.sregs[CS]<<4) + I.ip); break; + case CPUINFO_STR_REGISTER + NEC_IP: sprintf(info->s, "IP:%04X", I.ip); break; + case CPUINFO_STR_REGISTER + NEC_SP: sprintf(info->s, "SP:%04X", I.regs.w[SP]); break; + case CPUINFO_STR_REGISTER + NEC_FLAGS: sprintf(info->s, "F:%04X", CompressFlags()); break; + case CPUINFO_STR_REGISTER + NEC_AW: sprintf(info->s, "AW:%04X", I.regs.w[AW]); break; + case CPUINFO_STR_REGISTER + NEC_CW: sprintf(info->s, "CW:%04X", I.regs.w[CW]); break; + case CPUINFO_STR_REGISTER + NEC_DW: sprintf(info->s, "DW:%04X", I.regs.w[DW]); break; + case CPUINFO_STR_REGISTER + NEC_BW: sprintf(info->s, "BW:%04X", I.regs.w[BW]); break; + case CPUINFO_STR_REGISTER + NEC_BP: sprintf(info->s, "BP:%04X", I.regs.w[BP]); break; + case CPUINFO_STR_REGISTER + NEC_IX: sprintf(info->s, "IX:%04X", I.regs.w[IX]); break; + case CPUINFO_STR_REGISTER + NEC_IY: sprintf(info->s, "IY:%04X", I.regs.w[IY]); break; + case CPUINFO_STR_REGISTER + NEC_ES: sprintf(info->s, "ES:%04X", I.sregs[ES]); break; + case CPUINFO_STR_REGISTER + NEC_CS: sprintf(info->s, "CS:%04X", I.sregs[CS]); break; + case CPUINFO_STR_REGISTER + NEC_SS: sprintf(info->s, "SS:%04X", I.sregs[SS]); break; + case CPUINFO_STR_REGISTER + NEC_DS: sprintf(info->s, "DS:%04X", I.sregs[DS]); break; + case CPUINFO_STR_REGISTER + NEC_VECTOR: sprintf(info->s, "V:%02X", I.int_vector); break; /* --- the following bits of info are returned as pointers to data or functions --- */ case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(v30mz); @@ -1152,7 +1152,7 @@ CPU_GET_INFO( v30mz ) break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "V30MZ"); + case CPUINFO_STR_NAME: strcpy(info->s, "V30MZ"); break; } } diff --git a/src/emu/cpuexec.c b/src/emu/cpuexec.c index 47239af2a87..0d69eee1c75 100644 --- a/src/emu/cpuexec.c +++ b/src/emu/cpuexec.c @@ -14,8 +14,6 @@ #include "eminline.h" #include "debugger.h" -extern const cpu_irq_callback cpu_irq_callbacks[]; - @@ -29,23 +27,6 @@ extern const cpu_irq_callback cpu_irq_callbacks[]; -/*************************************************************************** - MACROS -***************************************************************************/ - -#define VERIFY_ACTIVECPU(name) \ - int activecpu = cpunum_get_active(); \ - assert_always(activecpu >= 0, #name "() called with no active cpu!") - -#define VERIFY_EXECUTINGCPU(name) \ - int activecpu = cpunum_get_executing(); \ - assert_always(activecpu >= 0, #name "() called with no executing cpu!") - -#define VERIFY_CPUNUM(name) \ - assert_always(cpunum >= 0 && cpunum < cpu_gettotalcpu(), #name "() called for invalid cpu num!") - - - /*************************************************************************** CONSTANTS ***************************************************************************/ @@ -64,29 +45,54 @@ enum TYPE DEFINITIONS ***************************************************************************/ -/* Internal CPU info structure */ -typedef struct _cpuexec_data cpuexec_data; -struct _cpuexec_data +/* internal information about the state of inputs */ +typedef struct _cpuinput_data cpuinput_data; +struct _cpuinput_data { - UINT8 suspend; /* suspend reason mask (0 = not suspended) */ - UINT8 nextsuspend; /* pending suspend reason mask */ - UINT8 eatcycles; /* true if we eat cycles while suspended */ - UINT8 nexteatcycles; /* pending value */ - INT32 trigger; /* pending trigger to release a trigger suspension */ + INT32 vector; /* most recently written vector */ + INT32 curvector; /* most recently processed vector */ + UINT8 curstate; /* most recently processed state */ + INT32 queue[MAX_INPUT_EVENTS]; /* queue of pending events */ + int qindex; /* index within the queue */ +}; - UINT64 totalcycles; /* total CPU cycles executed */ - attotime localtime; /* local time, relative to the timer system's global time */ - INT32 clock; /* current active clock */ - double clockscale; /* current active clock scale factor */ - INT32 divisor; /* 32-bit attoseconds_per_cycle divisor */ - UINT8 divshift; /* right shift amount to fit the divisor into 32 bits */ - emu_timer * timedint_timer; /* reference to this CPU's periodic interrupt timer */ +/* internal data hanging off of the classtoken */ +typedef struct _cpu_class_data cpu_class_data; +struct _cpu_class_data +{ + /* this item must remain first */ + cpu_class_header header; /* header containing public data */ + + /* core interface */ + device_config * device; /* dummy device for now */ + int * icount; /* pointer to the icount */ + + /* input states and IRQ callbacks */ + cpu_irq_callback driver_irq; /* driver-specific IRQ callback */ + cpuinput_data input[MAX_INPUT_LINES]; /* data about inputs */ + + /* suspend states */ + UINT8 suspend; /* suspend reason mask (0 = not suspended) */ + UINT8 nextsuspend; /* pending suspend reason mask */ + UINT8 eatcycles; /* true if we eat cycles while suspended */ + UINT8 nexteatcycles; /* pending value */ + INT32 trigger; /* pending trigger to release a trigger suspension */ + INT32 inttrigger; /* interrupt trigger index */ + + /* clock and timing information */ + UINT64 totalcycles; /* total CPU cycles executed */ + attotime localtime; /* local time, relative to the timer system's global time */ + INT32 clock; /* current active clock */ + double clockscale; /* current active clock scale factor */ + INT32 divisor; /* 32-bit attoseconds_per_cycle divisor */ + UINT8 divshift; /* right shift amount to fit the divisor into 32 bits */ + emu_timer * timedint_timer; /* reference to this CPU's periodic interrupt timer */ /* these below are hacks to support multiple interrupts per frame */ - INT32 iloops; /* number of interrupts remaining this frame */ - emu_timer * partial_frame_timer; /* the timer that triggers partial frame interrupts */ - attotime partial_frame_period; /* the length of one partial frame for interrupt purposes */ + INT32 iloops; /* number of interrupts remaining this frame */ + emu_timer * partial_frame_timer; /* the timer that triggers partial frame interrupts */ + attotime partial_frame_period; /* the length of one partial frame for interrupt purposes */ }; @@ -96,8 +102,6 @@ struct _cpuexec_data ***************************************************************************/ /* general CPU variables */ -static cpuexec_data cpu[MAX_CPU]; - static int cycles_running; static int cycles_stolen; @@ -109,10 +113,55 @@ static int cycles_stolen; static void cpuexec_exit(running_machine *machine); static void cpuexec_reset(running_machine *machine); -static void cpu_inittimers(running_machine *machine); -static void update_clock_information(running_machine *machine, int cpunum); -static TIMER_CALLBACK( trigger_partial_frame_interrupt ); + +static void cpu_timers_init(running_machine *machine); +static void update_clock_information(const device_config *device); static void compute_perfect_interleave(running_machine *machine); +static void on_vblank(const device_config *device, void *param, int vblank_state); +static TIMER_CALLBACK( trigger_partial_frame_interrupt ); +static TIMER_CALLBACK( trigger_periodic_interrupt ); +static TIMER_CALLBACK( triggertime_callback ); +static TIMER_CALLBACK( empty_event_queue ); +static IRQ_CALLBACK( standard_irq_callback ); +static void register_save_states(const device_config *device); + + + +/*************************************************************************** + INLINE FUNCTIONS +***************************************************************************/ + +/*------------------------------------------------- + get_safe_classtoken - makes sure that the + passed in device is, in fact, a CPU, and + return the class token +-------------------------------------------------*/ + +INLINE cpu_class_data *get_safe_classtoken(const device_config *device) +{ + assert(device != NULL); + assert(device->classtoken != NULL); + assert(device->class == DEVICE_CLASS_CPU_CHIP); + + return (cpu_class_data *)device->classtoken; +} + + +/*------------------------------------------------- + suspend_until_trigger - suspend execution + until the given trigger fires +-------------------------------------------------*/ + +INLINE void suspend_until_trigger(const device_config *device, int trigger, int eatcycles) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + + /* suspend the CPU immediately if it's not already */ + cpu_suspend(device, SUSPEND_REASON_TRIGGER, eatcycles); + + /* set the trigger */ + classdata->trigger = trigger; +} @@ -130,55 +179,96 @@ void cpuexec_init(running_machine *machine) int cpunum; /* loop over all our CPUs */ - memset(cpu, 0, sizeof(cpu)); - for (cpunum = 0; cpunum < MAX_CPU; cpunum++) + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->config->cpu); cpunum++) { + const cpu_config *config = &machine->config->cpu[cpunum]; cpu_type cputype = machine->config->cpu[cpunum].type; + cpu_class_data *classdata; int num_regs; + int line; /* if this is a dummy, stop looking */ if (cputype == CPU_DUMMY) break; - - /* initialize the cpuinfo struct */ - cpu[cpunum].suspend = SUSPEND_REASON_RESET; - cpu[cpunum].clock = (UINT64)machine->config->cpu[cpunum].clock * cputype_clock_multiplier(cputype) / cputype_clock_divider(cputype); - cpu[cpunum].clockscale = 1.0; - cpu[cpunum].localtime = attotime_zero; - - /* compute the cycle times */ - update_clock_information(machine, cpunum); - - /* register some of our variables for later */ - state_save_register_item("cpu", cpunum, cpu[cpunum].suspend); - state_save_register_item("cpu", cpunum, cpu[cpunum].nextsuspend); - state_save_register_item("cpu", cpunum, cpu[cpunum].eatcycles); - state_save_register_item("cpu", cpunum, cpu[cpunum].nexteatcycles); - state_save_register_item("cpu", cpunum, cpu[cpunum].trigger); - - state_save_register_item("cpu", cpunum, cpu[cpunum].iloops); - - state_save_register_item("cpu", cpunum, cpu[cpunum].totalcycles); - state_save_register_item("cpu", cpunum, cpu[cpunum].localtime.seconds); - state_save_register_item("cpu", cpunum, cpu[cpunum].localtime.attoseconds); - state_save_register_item("cpu", cpunum, cpu[cpunum].clock); - state_save_register_item("cpu", cpunum, cpu[cpunum].clockscale); + + /* allocate memory for our class state */ + classdata = auto_malloc(sizeof(*classdata)); + memset(classdata, 0, sizeof(*classdata)); + + /* fill in the header */ + classdata->header = *cputype_get_header_template(cputype); + + /* create a fake device for the CPU -- this will be done automatically in the future */ + classdata->device = auto_malloc(sizeof(*classdata->device) + strlen(config->tag)); + memset(classdata->device, 0, sizeof(*classdata->device)); + strcpy(classdata->device->tag, config->tag); + classdata->device->type = (device_type)cputype; + classdata->device->class = DEVICE_CLASS_CPU_CHIP; + classdata->device->inline_config = (void *)&machine->config->cpu[cpunum]; + classdata->device->static_config = config->reset_param; + classdata->device->started = TRUE; + classdata->device->machine = machine; + classdata->device->region = memory_region(machine, classdata->device->tag); + classdata->device->regionbytes = memory_region_length(machine, classdata->device->tag); + + /* allocate a context token */ + classdata->device->token = auto_malloc(cputype_get_context_size(cputype)); + memset(classdata->device->token, 0, cputype_get_context_size(cputype)); + + /* set up the class token */ + classdata->device->classtoken = classdata; + + /* fill in the input states and IRQ callback information */ + for (line = 0; line < ARRAY_LENGTH(classdata->input); line++) + { + cpuinput_data *inputline = &classdata->input[line]; + /* vector and curvector are initialized later */ + inputline->curstate = CLEAR_LINE; + inputline->qindex = 0; + } + + /* fill in the suspend states */ + classdata->suspend = SUSPEND_REASON_RESET; + classdata->inttrigger = cpunum + TRIGGER_INT; + + /* fill in the clock and timing information */ + classdata->clock = (UINT64)config->clock * classdata->header.clock_multiplier / classdata->header.clock_divider; + classdata->clockscale = 1.0; + + /* allocate timers if we need them */ + if (config->vblank_interrupts_per_frame > 1) + classdata->partial_frame_timer = timer_alloc(trigger_partial_frame_interrupt, (void *)classdata->device); + if (config->timed_interrupt_period != 0) + classdata->timedint_timer = timer_alloc(trigger_periodic_interrupt, (void *)classdata->device); /* initialize this CPU */ state_save_push_tag(cpunum + 1); num_regs = state_save_get_reg_count(); - if (cpuintrf_init_cpu(cpunum, cputype, cpu[cpunum].clock, machine->config->cpu[cpunum].reset_param, cpu_irq_callbacks[cpunum])) - fatalerror("Unable to initialize CPU #%d (%s)", cpunum, cputype_name(cputype)); + machine->cpu[cpunum] = classdata->device; + cpu_init(classdata->device, cpunum, classdata->clock, standard_irq_callback); num_regs = state_save_get_reg_count() - num_regs; state_save_pop_tag(); + /* fetch post-initialization data */ + classdata->icount = cpu_get_icount_ptr(classdata->device); + for (line = 0; line < ARRAY_LENGTH(classdata->input); line++) + { + cpuinput_data *inputline = &classdata->input[line]; + inputline->vector = cpu_get_default_irq_vector(classdata->device); + inputline->curvector = inputline->vector; + } + update_clock_information(classdata->device); + /* if no state registered for saving, we can't save */ if (num_regs == 0) { - logerror("CPU #%d (%s) did not register any state to save!\n", cpunum, cputype_name(cputype)); + logerror("CPU #%d (%s) did not register any state to save!\n", cpunum, cputype_get_name(cputype)); if (machine->gamedrv->flags & GAME_SUPPORTS_SAVE) - fatalerror("CPU #%d (%s) did not register any state to save!", cpunum, cputype_name(cputype)); + fatalerror("CPU #%d (%s) did not register any state to save!", cpunum, cputype_get_name(cputype)); } + + /* register some internal states as well */ + register_save_states(classdata->device); } add_reset_callback(machine, cpuexec_reset); add_exit_callback(machine, cpuexec_exit); @@ -194,24 +284,38 @@ static void cpuexec_reset(running_machine *machine) { int cpunum; - /* initialize the various timers (suspends all CPUs at startup) */ - cpu_inittimers(machine); + /* initialize the various timers */ + cpu_timers_init(machine); /* first pass over CPUs */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - { - /* enable all CPUs (except for disabled CPUs) */ - if (!(machine->config->cpu[cpunum].flags & CPU_DISABLE)) - cpunum_resume(cpunum, SUSPEND_ANY_REASON); - else - cpunum_suspend(cpunum, SUSPEND_REASON_DISABLE, 1); + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) + { + const device_config *device = machine->cpu[cpunum]; + const cpu_config *config = device->inline_config; + cpu_class_data *classdata = device->classtoken; + int line; - /* reset the total number of cycles */ - cpu[cpunum].totalcycles = 0; + /* enable all CPUs (except for disabled CPUs) */ + if (!(config->flags & CPU_DISABLE)) + cpu_resume(device, SUSPEND_ANY_REASON); + else + cpu_suspend(device, SUSPEND_REASON_DISABLE, 1); - /* then reset the CPU directly */ - cpu_reset(machine->cpu[cpunum]); - } + /* reset the total number of cycles */ + classdata->totalcycles = 0; + + /* then reset the CPU directly */ + cpu_reset(device); + + /* reset the interrupt vectors and queues */ + for (line = 0; line < ARRAY_LENGTH(classdata->input); line++) + { + cpuinput_data *inputline = &classdata->input[line]; + inputline->vector = cpu_get_default_irq_vector(device); + inputline->qindex = 0; + } + } } @@ -224,8 +328,9 @@ static void cpuexec_exit(running_machine *machine) int cpunum; /* shut down the CPU cores */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - cpuintrf_exit_cpu(cpunum); + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) + cpu_exit(machine->cpu[cpunum]); } @@ -245,25 +350,25 @@ void cpuexec_timeslice(running_machine *machine) LOG(("cpu_timeslice: target = %s\n", attotime_string(target, 9))); /* apply pending suspension changes */ - for (cpunum = 0; machine->config->cpu[cpunum].type != CPU_DUMMY; cpunum++) + for (cpunum = 0; machine->cpu[cpunum] != NULL; cpunum++) { - cpuexec_data *cpudata = &cpu[cpunum]; - cpudata->suspend = cpudata->nextsuspend; - cpudata->nextsuspend &= ~SUSPEND_REASON_TIMESLICE; - cpudata->eatcycles = cpudata->nexteatcycles; + cpu_class_data *classdata = machine->cpu[cpunum]->classtoken; + classdata->suspend = classdata->nextsuspend; + classdata->nextsuspend &= ~SUSPEND_REASON_TIMESLICE; + classdata->eatcycles = classdata->nexteatcycles; } /* loop over non-suspended CPUs */ - for (cpunum = 0; machine->config->cpu[cpunum].type != CPU_DUMMY; cpunum++) + for (cpunum = 0; machine->cpu[cpunum] != NULL; cpunum++) { - cpuexec_data *cpudata = &cpu[cpunum]; - if (cpudata->suspend == 0) + cpu_class_data *classdata = machine->cpu[cpunum]->classtoken; + if (classdata->suspend == 0) { - attotime delta = attotime_sub(target, cpudata->localtime); + attotime delta = attotime_sub(target, classdata->localtime); if (delta.seconds >= 0 && delta.attoseconds >= attoseconds_per_cycle[cpunum]) { /* compute how long to run */ - cycles_running = div_64x32(delta.attoseconds >> cpudata->divshift, cpudata->divisor); + cycles_running = div_64x32(delta.attoseconds >> classdata->divshift, classdata->divisor); LOG((" cpu %d: %d cycles\n", cpunum, cycles_running)); profiler_mark(PROFILER_CPU1 + cpunum); @@ -289,14 +394,14 @@ void cpuexec_timeslice(running_machine *machine) profiler_mark(PROFILER_END); /* account for these cycles */ - cpudata->totalcycles += ran; - cpudata->localtime = attotime_add_attoseconds(cpudata->localtime, ran * attoseconds_per_cycle[cpunum]); - LOG((" %d ran, %d total, time = %s\n", ran, (INT32)cpudata->totalcycles, attotime_string(cpudata->localtime, 9))); + classdata->totalcycles += ran; + classdata->localtime = attotime_add_attoseconds(classdata->localtime, ran * attoseconds_per_cycle[cpunum]); + LOG((" %d ran, %d total, time = %s\n", ran, (INT32)classdata->totalcycles, attotime_string(classdata->localtime, 9))); /* if the new local CPU time is less than our target, move the target up */ - if (attotime_compare(cpudata->localtime, target) < 0) + if (attotime_compare(classdata->localtime, target) < 0) { - target = attotime_max(cpudata->localtime, base); + target = attotime_max(classdata->localtime, base); LOG((" (new target)\n")); } } @@ -304,27 +409,27 @@ void cpuexec_timeslice(running_machine *machine) } /* update the local times of all CPUs */ - for (cpunum = 0; machine->config->cpu[cpunum].type != CPU_DUMMY; cpunum++) + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu) && machine->cpu[cpunum] != NULL; cpunum++) { - cpuexec_data *cpudata = &cpu[cpunum]; + cpu_class_data *classdata = machine->cpu[cpunum]->classtoken; /* if we're suspended and counting, process */ - if (cpudata->suspend != 0 && cpudata->eatcycles && attotime_compare(cpudata->localtime, target) < 0) + if (classdata->suspend != 0 && classdata->eatcycles && attotime_compare(classdata->localtime, target) < 0) { - attotime delta = attotime_sub(target, cpudata->localtime); + attotime delta = attotime_sub(target, classdata->localtime); /* compute how long to run */ - cycles_running = div_64x32(delta.attoseconds >> cpudata->divshift, cpudata->divisor); + cycles_running = div_64x32(delta.attoseconds >> classdata->divshift, classdata->divisor); LOG((" cpu %d: %d cycles (suspended)\n", cpunum, cycles_running)); - cpudata->totalcycles += cycles_running; - cpudata->localtime = attotime_add_attoseconds(cpudata->localtime, cycles_running * attoseconds_per_cycle[cpunum]); - LOG((" %d skipped, %d total, time = %s\n", cycles_running, (INT32)cpudata->totalcycles, attotime_string(cpudata->localtime, 9))); + classdata->totalcycles += cycles_running; + classdata->localtime = attotime_add_attoseconds(classdata->localtime, cycles_running * attoseconds_per_cycle[cpunum]); + LOG((" %d skipped, %d total, time = %s\n", cycles_running, (INT32)classdata->totalcycles, attotime_string(classdata->localtime, 9))); } /* update the suspend state (breaks steeltal if we don't) */ - cpudata->suspend = cpudata->nextsuspend; - cpudata->eatcycles = cpudata->nexteatcycles; + classdata->suspend = classdata->nextsuspend; + classdata->eatcycles = classdata->nexteatcycles; } /* update the global time */ @@ -332,17 +437,12 @@ void cpuexec_timeslice(running_machine *machine) } - -/*************************************************************************** - CPU SCHEDULING -***************************************************************************/ - /*------------------------------------------------- - cpu_boost_interleave - temporarily boosts the - interleave factor + cpuexec_boost_interleave - temporarily boosts + the interleave factor -------------------------------------------------*/ -void cpu_boost_interleave(running_machine *machine, attotime timeslice_time, attotime boost_duration) +void cpuexec_boost_interleave(running_machine *machine, attotime timeslice_time, attotime boost_duration) { /* ignore timeslices > 1 second */ if (timeslice_time.seconds > 0) @@ -352,67 +452,76 @@ void cpu_boost_interleave(running_machine *machine, attotime timeslice_time, att /*------------------------------------------------- - activecpu_abort_timeslice - abort execution - for the current timeslice, allowing other - CPUs to run before we run again + cputag_get_cpu - return a pointer to the given + CPU by tag -------------------------------------------------*/ -void activecpu_abort_timeslice(void) +const device_config *cputag_get_cpu(running_machine *machine, const char *tag) { - int current_icount; - - VERIFY_EXECUTINGCPU(activecpu_abort_timeslice); - LOG(("activecpu_abort_timeslice (CPU=%d, cycles_left=%d)\n", cpunum_get_executing(), activecpu_get_icount() + 1)); - - /* swallow the remaining cycles */ - current_icount = activecpu_get_icount() + 1; - cycles_stolen += current_icount; - cycles_running -= current_icount; - activecpu_adjust_icount(-current_icount); + int cpunum; + + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL && strcmp(tag, machine->cpu[cpunum]->tag) == 0) + return machine->cpu[cpunum]; + + return NULL; } + +/*************************************************************************** + CPU SCHEDULING +***************************************************************************/ + /*------------------------------------------------- - cpunum_suspend - set a suspend reason for the + cpu_suspend - set a suspend reason for the given CPU -------------------------------------------------*/ -void cpunum_suspend(int cpunum, int reason, int eatcycles) +void cpu_suspend(const device_config *device, int reason, int eatcycles) { - VERIFY_CPUNUM(cpunum_suspend); - LOG(("cpunum_suspend (CPU=%d, r=%X, eat=%d)\n", cpunum, reason, eatcycles)); - cpu[cpunum].nextsuspend |= reason; - cpu[cpunum].nexteatcycles = eatcycles; - if (cpunum_get_executing() >= 0) - activecpu_abort_timeslice(); + cpu_class_data *classdata = get_safe_classtoken(device); + + /* set the suspend reason and eat cycles flag */ + classdata->nextsuspend |= reason; + classdata->nexteatcycles = eatcycles; + + /* if we're active, synchronize */ + if (device == device->machine->activecpu) + cpu_abort_timeslice(device); } /*------------------------------------------------- - cpunum_resume - clear a suspend reason for the + cpu_resume - clear a suspend reason for the given CPU -------------------------------------------------*/ -void cpunum_resume(int cpunum, int reason) +void cpu_resume(const device_config *device, int reason) { - VERIFY_CPUNUM(cpunum_resume); - LOG(("cpunum_resume (CPU=%d, r=%X)\n", cpunum, reason)); - cpu[cpunum].nextsuspend &= ~reason; - if (cpunum_get_executing() >= 0) - activecpu_abort_timeslice(); + cpu_class_data *classdata = get_safe_classtoken(device); + + /* clear the suspend reason and eat cycles flag */ + classdata->nextsuspend &= ~reason; + + /* if we're active, synchronize */ + if (device == device->machine->activecpu) + cpu_abort_timeslice(device); } /*------------------------------------------------- - cpunum_is_suspended - returns true if the + cpu_is_suspended - returns true if the given CPU is suspended for any of the given reasons -------------------------------------------------*/ -int cpunum_is_suspended(int cpunum, int reason) +int cpu_is_suspended(const device_config *device, int reason) { - VERIFY_CPUNUM(cpunum_suspend); - return ((cpu[cpunum].nextsuspend & reason) != 0); + cpu_class_data *classdata = get_safe_classtoken(device); + + /* return true if the given reason is indicated */ + return ((classdata->nextsuspend & reason) != 0); } @@ -422,82 +531,60 @@ int cpunum_is_suspended(int cpunum, int reason) ***************************************************************************/ /*------------------------------------------------- - update_clock_information - recomputes clock - information for the specified CPU --------------------------------------------------*/ - -static void update_clock_information(running_machine *machine, int cpunum) -{ - INT64 attos; - - /* recompute cps and spc */ - cycles_per_second[cpunum] = (double)cpu[cpunum].clock * cpu[cpunum].clockscale; - attoseconds_per_cycle[cpunum] = ATTOSECONDS_PER_SECOND / ((double)cpu[cpunum].clock * cpu[cpunum].clockscale); - - /* update the CPU's divisor */ - attos = attoseconds_per_cycle[cpunum]; - cpu[cpunum].divshift = 0; - while (attos >= (1UL << 31)) - { - cpu[cpunum].divshift++; - attos >>= 1; - } - cpu[cpunum].divisor = attos; - - /* re-compute the perfect interleave factor */ - compute_perfect_interleave(machine); -} - - -/*------------------------------------------------- - cpunum_get_clock - gets the given CPU's + cpu_get_clock - gets the given CPU's clock speed -------------------------------------------------*/ -int cpunum_get_clock(int cpunum) +int cpu_get_clock(const device_config *device) { - VERIFY_CPUNUM(cpunum_get_clock); - return cpu[cpunum].clock; + cpu_class_data *classdata = get_safe_classtoken(device); + + /* return the current clock value */ + return classdata->clock; } /*------------------------------------------------- - cpunum_set_clock - sets the given CPU's + cpu_set_clock - sets the given CPU's clock speed -------------------------------------------------*/ -void cpunum_set_clock(running_machine *machine, int cpunum, int clock) +void cpu_set_clock(const device_config *device, int clock) { - VERIFY_CPUNUM(cpunum_set_clock); + cpu_class_data *classdata = get_safe_classtoken(device); - cpu[cpunum].clock = clock; - update_clock_information(machine, cpunum); + /* set the clock and update the information */ + classdata->clock = clock; + update_clock_information(device); } /*------------------------------------------------- - cpunum_get_clockscale - returns the current + cpu_get_clockscale - returns the current scaling factor for a CPU's clock speed -------------------------------------------------*/ -double cpunum_get_clockscale(int cpunum) +double cpu_get_clockscale(const device_config *device) { - VERIFY_CPUNUM(cpunum_get_clockscale); - return cpu[cpunum].clockscale; + cpu_class_data *classdata = get_safe_classtoken(device); + + /* return the current clock scale factor */ + return classdata->clockscale; } /*------------------------------------------------- - cpunum_set_clockscale - sets the current + cpu_set_clockscale - sets the current scaling factor for a CPU's clock speed -------------------------------------------------*/ -void cpunum_set_clockscale(running_machine *machine, int cpunum, double clockscale) +void cpu_set_clockscale(const device_config *device, double clockscale) { - VERIFY_CPUNUM(cpunum_set_clockscale); + cpu_class_data *classdata = get_safe_classtoken(device); - cpu[cpunum].clockscale = clockscale; - update_clock_information(machine, cpunum); + /* set the scale factor and update the information */ + classdata->clockscale = clockscale; + update_clock_information(device); } @@ -507,70 +594,96 @@ void cpunum_set_clockscale(running_machine *machine, int cpunum, double clocksca ***************************************************************************/ /*------------------------------------------------- - cpunum_get_localtime - returns the current + cpu_get_local_time - returns the current local time for a CPU -------------------------------------------------*/ -attotime cpunum_get_localtime(int cpunum) +attotime cpu_get_local_time(const device_config *device) { + cpu_class_data *classdata = get_safe_classtoken(device); attotime result; - VERIFY_CPUNUM(cpunum_get_localtime); - /* if we're active, add in the time from the current slice */ - result = cpu[cpunum].localtime; - if (cpunum == cpunum_get_executing()) + result = classdata->localtime; + if (device == device->machine->activecpu && classdata->icount != NULL) { - int cycles = cycles_running - activecpu_get_icount(); - result = attotime_add(result, ATTOTIME_IN_CYCLES(cycles, cpunum)); + int cycles = cycles_running - *classdata->icount; + result = attotime_add(result, ATTOTIME_IN_CYCLES(cycles, classdata->header.index)); } return result; } /*------------------------------------------------- - activecpu_gettotalcycles - return the total + cpu_get_total_cycles - return the total number of CPU cycles executed on the active CPU -------------------------------------------------*/ -UINT64 activecpu_gettotalcycles(void) +UINT64 cpu_get_total_cycles(const device_config *device) { - VERIFY_ACTIVECPU(activecpu_gettotalcycles); - if (activecpu == cpunum_get_executing()) - return cpu[activecpu].totalcycles + cycles_running - activecpu_get_icount(); + cpu_class_data *classdata = get_safe_classtoken(device); + + if (device == device->machine->activecpu) + return classdata->totalcycles + cycles_running - *classdata->icount; else - return cpu[activecpu].totalcycles; + return classdata->totalcycles; } /*------------------------------------------------- - cpunum_gettotalcycles - return the total - number of CPU cycles executed on the - specified CPU --------------------------------------------------*/ - -UINT64 cpunum_gettotalcycles(int cpunum) -{ - VERIFY_CPUNUM(cpunum_gettotalcycles); - if (cpunum == cpunum_get_executing()) - return cpu[cpunum].totalcycles + cycles_running - activecpu_get_icount(); - else - return cpu[cpunum].totalcycles; -} - - -/*------------------------------------------------- - activecpu_eat_cycles - safely eats cycles so + cpu_eat_cycles - safely eats cycles so we don't cross a timeslice boundary -------------------------------------------------*/ -void activecpu_eat_cycles(int cycles) +void cpu_eat_cycles(const device_config *device, int cycles) { - int cyclesleft = activecpu_get_icount(); - if (cycles > cyclesleft) - cycles = cyclesleft; - activecpu_adjust_icount(-cycles); + cpu_class_data *classdata = get_safe_classtoken(device); + + assert(device == device->machine->activecpu); + + if (cycles > *classdata->icount) + cycles = *classdata->icount + 1; + *classdata->icount -= cycles; +} + + +/*------------------------------------------------- + cpu_adjust_icount - apply a +/- to the current + icount +-------------------------------------------------*/ + +void cpu_adjust_icount(const device_config *device, int delta) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + + assert(device == device->machine->activecpu); + + *classdata->icount += delta; +} + + +/*------------------------------------------------- + cpu_abort_timeslice - abort execution + for the current timeslice, allowing other + CPUs to run before we run again +-------------------------------------------------*/ + +void cpu_abort_timeslice(const device_config *device) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + int delta; + + assert(device == device->machine->activecpu); + + /* swallow the remaining cycles */ + if (classdata->icount != NULL) + { + delta = *classdata->icount + 1; + cycles_stolen += delta; + cycles_running -= delta; + *classdata->icount -= delta; + } } @@ -580,29 +693,14 @@ void activecpu_eat_cycles(int cycles) ***************************************************************************/ /*------------------------------------------------- - cpu_suspend_until_trigger - suspend execution - until the given trigger fires + cpu_yield - yield the given CPU until the end + of the current timeslice -------------------------------------------------*/ -static void cpunum_suspend_until_trigger(int cpunum, int trigger, int eatcycles) +void cpu_yield(const device_config *device) { - /* suspend the CPU immediately if it's not already */ - cpunum_suspend(cpunum, SUSPEND_REASON_TRIGGER, eatcycles); - - /* set the trigger */ - cpu[cpunum].trigger = trigger; -} - - -/*------------------------------------------------- - cpu_yield - yield our current timeslice --------------------------------------------------*/ - -void cpu_yield(void) -{ - int cpunum = cpunum_get_executing(); - VERIFY_EXECUTINGCPU(cpu_yield); - cpunum_suspend(cpunum, SUSPEND_REASON_TIMESLICE, FALSE); + /* suspend against the timeslice */ + cpu_suspend(device, SUSPEND_REASON_TIMESLICE, FALSE); } @@ -611,36 +709,22 @@ void cpu_yield(void) is up -------------------------------------------------*/ -void cpu_spin(void) +void cpu_spin(const device_config *device) { - int cpunum = cpunum_get_executing(); - VERIFY_EXECUTINGCPU(cpu_spin); - cpunum_suspend(cpunum, SUSPEND_REASON_TIMESLICE, TRUE); + /* suspend against the timeslice */ + cpu_suspend(device, SUSPEND_REASON_TIMESLICE, TRUE); } /*------------------------------------------------- - cpu_spinuntil_trigger - burn CPU cycles until - a timer trigger --------------------------------------------------*/ - -void cpu_spinuntil_trigger(int trigger) -{ - int cpunum = cpunum_get_executing(); - VERIFY_EXECUTINGCPU(cpu_yielduntil_trigger); - cpunum_suspend_until_trigger(cpunum, trigger, TRUE); -} - - -/*------------------------------------------------- - cpunum_spinuntil_trigger - burn specified CPU + cpu_spinuntil_trigger - burn specified CPU cycles until a timer trigger -------------------------------------------------*/ -void cpunum_spinuntil_trigger(int cpunum, int trigger) +void cpu_spinuntil_trigger(const device_config *device, int trigger) { - VERIFY_CPUNUM(cpunum_spinuntil_trigger); - cpunum_suspend_until_trigger(cpunum, trigger, TRUE); + /* suspend until the given trigger fires */ + suspend_until_trigger(device, trigger, TRUE); } @@ -649,11 +733,12 @@ void cpunum_spinuntil_trigger(int cpunum, int trigger) next interrupt -------------------------------------------------*/ -void cpu_spinuntil_int(void) +void cpu_spinuntil_int(const device_config *device) { - int cpunum = cpunum_get_executing(); - VERIFY_EXECUTINGCPU(cpu_spinuntil_int); - cpunum_suspend_until_trigger(cpunum, TRIGGER_INT + cpunum, TRUE); + cpu_class_data *classdata = get_safe_classtoken(device); + + /* suspend until the given trigger fires */ + suspend_until_trigger(device, classdata->inttrigger, TRUE); } @@ -662,13 +747,15 @@ void cpu_spinuntil_int(void) specific period of time -------------------------------------------------*/ -void cpu_spinuntil_time(attotime duration) +void cpu_spinuntil_time(const device_config *device, attotime duration) { static int timetrig = 0; - int cpunum = cpunum_get_executing(); - VERIFY_EXECUTINGCPU(cpu_spinuntil_time); - cpunum_suspend_until_trigger(cpunum, TRIGGER_SUSPENDTIME + timetrig, TRUE); - cpu_triggertime(duration, TRIGGER_SUSPENDTIME + timetrig); + + /* suspend until the given trigger fires */ + suspend_until_trigger(device, TRIGGER_SUSPENDTIME + timetrig, TRUE); + + /* then set a timer for it */ + cpuexec_triggertime(device->machine, TRIGGER_SUSPENDTIME + timetrig, duration); timetrig = (timetrig + 1) % 256; } @@ -679,48 +766,40 @@ void cpu_spinuntil_time(attotime duration) ***************************************************************************/ /*------------------------------------------------- - cpu_trigger - generate a trigger now + cpuexec_trigger - generate a trigger now -------------------------------------------------*/ -void cpu_trigger(running_machine *machine, int trigger) +void cpuexec_trigger(running_machine *machine, int trigger) { int cpunum; /* cause an immediate resynchronization */ - if (cpunum_get_executing() >= 0) - activecpu_abort_timeslice(); + if (machine->activecpu != NULL) + cpu_abort_timeslice(machine->activecpu); /* look for suspended CPUs waiting for this trigger and unsuspend them */ - for (cpunum = 0; cpunum < MAX_CPU; cpunum++) + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu) && machine->cpu[cpunum] != NULL; cpunum++) { - /* if this is a dummy, stop looking */ - if (machine->config->cpu[cpunum].type == CPU_DUMMY) - break; - + cpu_class_data *classdata = machine->cpu[cpunum]->classtoken; + /* see if this is a matching trigger */ - if (cpu[cpunum].suspend && cpu[cpunum].trigger == trigger) + if (classdata->suspend != 0 && classdata->trigger == trigger) { - cpunum_resume(cpunum, SUSPEND_REASON_TRIGGER); - cpu[cpunum].trigger = 0; + cpu_resume(machine->cpu[cpunum], SUSPEND_REASON_TRIGGER); + classdata->trigger = 0; } } } /*------------------------------------------------- - cpu_triggertime - generate a trigger after a + cpuexec_triggertime - generate a trigger after a specific period of time -------------------------------------------------*/ -static TIMER_CALLBACK( cpu_triggertime_callback ) +void cpuexec_triggertime(running_machine *machine, int trigger, attotime duration) { - cpu_trigger(machine, param); -} - - -void cpu_triggertime(attotime duration, int trigger) -{ - timer_set(duration, NULL, trigger, cpu_triggertime_callback); + timer_set(duration, NULL, trigger, triggertime_callback); } @@ -729,15 +808,162 @@ void cpu_triggertime(attotime duration, int trigger) corresponding to an interrupt on the given CPU -------------------------------------------------*/ -void cpu_triggerint(running_machine *machine, int cpunum) +void cpu_triggerint(const device_config *device) { - cpu_trigger(machine, TRIGGER_INT + cpunum); + cpu_class_data *classdata = get_safe_classtoken(device); + + /* signal this CPU's interrupt trigger */ + cpuexec_trigger(device->machine, classdata->inttrigger); } /*************************************************************************** - CHEESY FAKE VIDEO TIMING + INTERRUPTS +***************************************************************************/ + +/*------------------------------------------------- + cpu_set_input_line - set the logical state + (ASSERT_LINE/CLEAR_LINE) of an input line + on a CPU +-------------------------------------------------*/ + +void cpu_set_input_line(const device_config *device, int line, int state) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + int vector = (line >= 0 && line < MAX_INPUT_LINES) ? classdata->input[line].vector : 0xff; + cpu_set_input_line_and_vector(device, line, state, vector); +} + + +/*------------------------------------------------- + cpu_set_input_line_vector - set the vector to + be returned during a CPU's interrupt + acknowledge cycle +-------------------------------------------------*/ + +void cpu_set_input_line_vector(const device_config *device, int line, int vector) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + if (line >= 0 && line < MAX_INPUT_LINES) + { + classdata->input[line].vector = vector; + return; + } + LOG(("cpunum_set_input_line_vector CPU '%s' line %d > max input lines\n", device->tag, line)); +} + + +/*------------------------------------------------- + cpu_set_input_line_and_vector - set the logical + state (ASSERT_LINE/CLEAR_LINE) of an input + line on a CPU and its associated vector +-------------------------------------------------*/ + +void cpu_set_input_line_and_vector(const device_config *device, int line, int state, int vector) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + +#ifdef MAME_DEBUG + /* catch errors where people use PULSE_LINE for CPUs that don't support it */ + if (state == PULSE_LINE && line != INPUT_LINE_NMI && line != INPUT_LINE_RESET) + { + switch ((cpu_type)device->type) + { + case CPU_Z80: + case CPU_Z180: + case CPU_M68000: + case CPU_M68008: + case CPU_M68010: + case CPU_M68EC020: + case CPU_M68020: + case CPU_M68040: + case CPU_R4600BE: + case CPU_R4600LE: + case CPU_R4650BE: + case CPU_R4650LE: + case CPU_R4700BE: + case CPU_R4700LE: + case CPU_R5000BE: + case CPU_R5000LE: + case CPU_QED5271BE: + case CPU_QED5271LE: + case CPU_RM7000BE: + case CPU_RM7000LE: + case CPU_PPC403GA: + case CPU_PPC403GCX: + case CPU_PPC601: + case CPU_PPC602: + case CPU_PPC603: + case CPU_PPC603E: + case CPU_PPC603R: + case CPU_PPC604: + case CPU_I8035: + case CPU_I8041: + case CPU_I8048: + case CPU_I8648: + case CPU_I8748: + case CPU_MB8884: + case CPU_N7751: + case CPU_TMS34010: + case CPU_TMS34020: + case CPU_TMS32010: + case CPU_TMS32025: + case CPU_TMS32026: + fatalerror("CPU %s: PULSE_LINE used with level-detected IRQ %d\n", device->tag, line); + break; + + default: + break; + } + } +#endif + + if (line >= 0 && line < MAX_INPUT_LINES) + { + cpuinput_data *inputline = &classdata->input[line]; + INT32 input_event = (state & 0xff) | (vector << 8); + int event_index = inputline->qindex++; + + LOG(("cpunum_set_input_line_and_vector('%s',%d,%d,%02x)\n", device->tag, line, state, vector)); + + /* if we're full of events, flush the queue and log a message */ + if (event_index >= ARRAY_LENGTH(inputline->queue)) + { + inputline->qindex--; + empty_event_queue(device->machine, (void *)device, line); + event_index = inputline->qindex++; + logerror("Exceeded pending input line event queue on CPU '%s'!\n", device->tag); + } + + /* enqueue the event */ + if (event_index < ARRAY_LENGTH(inputline->queue)) + { + inputline->queue[event_index] = input_event; + + /* if this is the first one, set the timer */ + if (event_index == 0) + timer_call_after_resynch((void *)device, line, empty_event_queue); + } + } +} + + +/*------------------------------------------------- + cpu_set_irq_callback - install a driver- + specific callback for IRQ acknowledge +-------------------------------------------------*/ + +void cpu_set_irq_callback(const device_config *device, cpu_irq_callback callback) +{ + cpu_class_data *classdata = get_safe_classtoken(device); + classdata->driver_irq = callback; +} + + + +/*************************************************************************** + CHEESY FAKE VIDEO TIMING (OBSOLETE) ***************************************************************************/ /*------------------------------------------------- @@ -745,119 +971,99 @@ void cpu_triggerint(running_machine *machine, int cpunum) interrupt counter (deprecated) -------------------------------------------------*/ -int cpu_getiloops(void) +int cpu_getiloops(const device_config *device) { - VERIFY_ACTIVECPU(cpu_getiloops); - return cpu[activecpu].iloops; + cpu_class_data *classdata = get_safe_classtoken(device); + return classdata->iloops; } + /*************************************************************************** - INTERNAL TIMING + INTERNAL FUNCTIONS ***************************************************************************/ /*------------------------------------------------- - on_vblank - calls any external callbacks - for this screen + cpu_timers_init - set up all the core timers -------------------------------------------------*/ -static void on_vblank(const device_config *device, void *param, int vblank_state) +static void cpu_timers_init(running_machine *machine) { - /* VBLANK starting */ - if (vblank_state) - { - int cpunum; + int numscreens = video_screen_count(machine->config); + attoseconds_t refresh_attosecs; + int cpunum, ipf; - /* find any CPUs that have this screen as their VBLANK interrupt source */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) + /* set the core scheduling quantum */ + ipf = machine->config->cpu_slices_per_frame; + if (ipf <= 0) + ipf = 1; + refresh_attosecs = (numscreens == 0) ? HZ_TO_ATTOSECONDS(60) : video_screen_get_frame_period(machine->primary_screen).attoseconds; + timer_add_scheduling_quantum(machine, refresh_attosecs / ipf, attotime_never); + + /* register the interrupt handler callbacks */ + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) { - int cpu_interested; - const cpu_config *config = device->machine->config->cpu + cpunum; + const device_config *device = machine->cpu[cpunum]; + const cpu_config *config = device->inline_config; + cpu_class_data *classdata = device->classtoken; - /* start the interrupt counter */ - if (!(cpu[cpunum].suspend & SUSPEND_REASON_DISABLE)) - cpu[cpunum].iloops = 0; - else - cpu[cpunum].iloops = -1; - - /* the hack style VBLANK decleration always uses the first screen */ - if (config->vblank_interrupts_per_frame > 1) - cpu_interested = TRUE; - - /* for new style decleration, we need to compare the tags */ - else if (config->vblank_interrupts_per_frame == 1) - cpu_interested = (strcmp(config->vblank_interrupt_screen, device->tag) == 0); - - /* no VBLANK interrupt, not interested */ - else - cpu_interested = FALSE; - - /* if interested, call the interrupt handler */ - if (cpu_interested) + /* VBLANK interrupts */ + if (config->vblank_interrupts_per_frame > 0) { - if (!cpunum_is_suspended(cpunum, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) - { - cpu_push_context(device->machine->cpu[cpunum]); - (*config->vblank_interrupt)(device->machine, cpunum); - cpu_pop_context(); - } + const device_config *screen; - /* if we have more than one interrupt per frame, start the timer now to trigger the rest of them */ - if ((config->vblank_interrupts_per_frame > 1) && - !(cpu[cpunum].suspend & SUSPEND_REASON_DISABLE)) - { - cpu[cpunum].partial_frame_period = attotime_div(video_screen_get_frame_period(device->machine->primary_screen), config->vblank_interrupts_per_frame); - timer_adjust_oneshot(cpu[cpunum].partial_frame_timer, cpu[cpunum].partial_frame_period, cpunum); - } + /* get the screen that will trigger the VBLANK */ + + /* new style - use screen tag directly */ + if (config->vblank_interrupts_per_frame == 1) + screen = device_list_find_by_tag(machine->config->devicelist, VIDEO_SCREEN, config->vblank_interrupt_screen); + + /* old style 'hack' setup - use screen #0 */ + else + screen = device_list_first(machine->config->devicelist, VIDEO_SCREEN); + + assert(screen != NULL); + video_screen_register_vblank_callback(screen, on_vblank, NULL); + } + + /* periodic interrupts */ + if (config->timed_interrupt_period != 0) + { + attotime timedint_period = attotime_make(0, config->timed_interrupt_period); + assert(classdata->timedint_timer != NULL); + timer_adjust_periodic(classdata->timedint_timer, timedint_period, cpunum, timedint_period); } } - } } /*------------------------------------------------- - trigger_partial_frame_interrupt - called to - trigger a partial frame interrupt + update_clock_information - recomputes clock + information for the specified CPU -------------------------------------------------*/ -static TIMER_CALLBACK( trigger_partial_frame_interrupt ) +static void update_clock_information(const device_config *device) { - int cpunum = param; - const cpu_config *config = machine->config->cpu + cpunum; + cpu_class_data *classdata = device->classtoken; + INT64 attos; - if (cpu[cpunum].iloops == 0) - cpu[cpunum].iloops = config->vblank_interrupts_per_frame; + /* recompute cps and spc */ + cycles_per_second[classdata->header.index] = (double)classdata->clock * classdata->clockscale; + attoseconds_per_cycle[classdata->header.index] = ATTOSECONDS_PER_SECOND / ((double)classdata->clock * classdata->clockscale); - cpu[cpunum].iloops--; - - /* call the interrupt handler */ - if (!cpunum_is_suspended(cpunum, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) + /* update the CPU's divisor */ + attos = attoseconds_per_cycle[classdata->header.index]; + classdata->divshift = 0; + while (attos >= (1UL << 31)) { - cpu_push_context(machine->cpu[cpunum]); - (*config->vblank_interrupt)(machine, cpunum); - cpu_pop_context(); + classdata->divshift++; + attos >>= 1; } + classdata->divisor = attos; - /* more? */ - if (cpu[cpunum].iloops > 1) - timer_adjust_oneshot(cpu[cpunum].partial_frame_timer, cpu[cpunum].partial_frame_period, cpunum); -} - - -/*------------------------------------------------- - cpu_timedintcallback - timer callback for - timed interrupts --------------------------------------------------*/ - -static TIMER_CALLBACK( cpu_timedintcallback ) -{ - /* bail if there is no routine */ - if (machine->config->cpu[param].timed_interrupt != NULL && !cpunum_is_suspended(param, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) - { - cpu_push_context(machine->cpu[param]); - (*machine->config->cpu[param].timed_interrupt)(machine, param); - cpu_pop_context(); - } + /* re-compute the perfect interleave factor */ + compute_perfect_interleave(device->machine); } @@ -870,15 +1076,15 @@ static void compute_perfect_interleave(running_machine *machine) { if (attoseconds_per_cycle[0] != 0) { - attoseconds_t smallest = attoseconds_per_cycle[0] * cputype_min_cycles(machine->config->cpu[0].type); + attoseconds_t smallest = attoseconds_per_cycle[0] * cputype_get_min_cycles(machine->config->cpu[0].type); attoseconds_t perfect = ATTOSECONDS_PER_SECOND - 1; int cpunum; /* start with a huge time factor and find the 2nd smallest cycle time */ - for (cpunum = 1; machine->config->cpu[cpunum].type != CPU_DUMMY; cpunum++) + for (cpunum = 1; cpunum < ARRAY_LENGTH(machine->cpu) && machine->cpu[cpunum] != NULL; cpunum++) if (attoseconds_per_cycle[cpunum] != 0) { - attoseconds_t curtime = attoseconds_per_cycle[cpunum] * cputype_min_cycles(machine->config->cpu[cpunum].type); + attoseconds_t curtime = attoseconds_per_cycle[cpunum] * cputype_get_min_cycles(machine->config->cpu[cpunum].type); /* find the 2nd smallest cycle interval */ if (curtime < smallest) @@ -899,58 +1105,289 @@ static void compute_perfect_interleave(running_machine *machine) /*------------------------------------------------- - cpu_inittimers - set up all the core timers + on_vblank - calls any external callbacks + for this screen -------------------------------------------------*/ -static void cpu_inittimers(running_machine *machine) +static void on_vblank(const device_config *device, void *param, int vblank_state) { - int numscreens = video_screen_count(machine->config); - attoseconds_t refresh_attosecs; - int cpunum, ipf; - - /* allocate a dummy timer at the minimum frequency to break things up */ - ipf = machine->config->cpu_slices_per_frame; - if (ipf <= 0) - ipf = 1; - refresh_attosecs = (numscreens == 0) ? HZ_TO_ATTOSECONDS(60) : video_screen_get_frame_period(machine->primary_screen).attoseconds; - timer_add_scheduling_quantum(machine, refresh_attosecs / ipf, attotime_never); - - /* register the interrupt handler callbacks */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) + /* VBLANK starting */ + if (vblank_state) { - const cpu_config *config = machine->config->cpu + cpunum; + int cpunum; - /* VBLANK interrupts */ - if (config->vblank_interrupts_per_frame > 0) - { - const device_config *screen; - - /* get the screen that will trigger the VBLANK */ - - /* new style - use screen tag directly */ - if (config->vblank_interrupts_per_frame == 1) - screen = device_list_find_by_tag(machine->config->devicelist, VIDEO_SCREEN, config->vblank_interrupt_screen); - - /* old style 'hack' setup - use screen #0 */ - else + /* find any CPUs that have this screen as their VBLANK interrupt source */ + for (cpunum = 0; cpunum < ARRAY_LENGTH(device->machine->cpu); cpunum++) + if (device->machine->cpu[cpunum] != NULL) { - screen = device_list_first(machine->config->devicelist, VIDEO_SCREEN); + const device_config *cpudevice = device->machine->cpu[cpunum]; + const cpu_config *config = cpudevice->inline_config; + cpu_class_data *classdata = cpudevice->classtoken; + int cpu_interested; - /* allocate timer that will trigger the partial frame updates */ - cpu[cpunum].partial_frame_timer = timer_alloc(trigger_partial_frame_interrupt, 0); + /* start the interrupt counter */ + if (!(classdata->suspend & SUSPEND_REASON_DISABLE)) + classdata->iloops = 0; + else + classdata->iloops = -1; + + /* the hack style VBLANK decleration always uses the first screen */ + if (config->vblank_interrupts_per_frame > 1) + cpu_interested = TRUE; + + /* for new style decleration, we need to compare the tags */ + else if (config->vblank_interrupts_per_frame == 1) + cpu_interested = (strcmp(config->vblank_interrupt_screen, device->tag) == 0); + + /* no VBLANK interrupt, not interested */ + else + cpu_interested = FALSE; + + /* if interested, call the interrupt handler */ + if (cpu_interested) + { + if (!(classdata->suspend & (SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE))) + { + cpu_push_context(cpudevice); + (*config->vblank_interrupt)(cpudevice); + cpu_pop_context(); + } + + /* if we have more than one interrupt per frame, start the timer now to trigger the rest of them */ + if (config->vblank_interrupts_per_frame > 1 && !(classdata->suspend & SUSPEND_REASON_DISABLE)) + { + classdata->partial_frame_period = attotime_div(video_screen_get_frame_period(device->machine->primary_screen), config->vblank_interrupts_per_frame); + timer_adjust_oneshot(classdata->partial_frame_timer, classdata->partial_frame_period, cpunum); + } + } } - - assert(screen != NULL); - - video_screen_register_vblank_callback(screen, on_vblank, NULL); - } - - /* periodic interrupts */ - if (config->timed_interrupt_period != 0) - { - attotime timedint_period = attotime_make(0, config->timed_interrupt_period); - cpu[cpunum].timedint_timer = timer_alloc(cpu_timedintcallback, NULL); - timer_adjust_periodic(cpu[cpunum].timedint_timer, timedint_period, cpunum, timedint_period); - } } } + + +/*------------------------------------------------- + trigger_partial_frame_interrupt - called to + trigger a partial frame interrupt +-------------------------------------------------*/ + +static TIMER_CALLBACK( trigger_partial_frame_interrupt ) +{ + const device_config *device = ptr; + const cpu_config *config = device->inline_config; + cpu_class_data *classdata = device->classtoken; + + if (classdata->iloops == 0) + classdata->iloops = config->vblank_interrupts_per_frame; + + classdata->iloops--; + + /* call the interrupt handler */ + if (!cpu_is_suspended(device, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) + { + cpu_push_context(device); + (*config->vblank_interrupt)(device); + cpu_pop_context(); + } + + /* more? */ + if (classdata->iloops > 1) + timer_adjust_oneshot(classdata->partial_frame_timer, classdata->partial_frame_period, 0); +} + + +/*------------------------------------------------- + trigger_periodic_interrupt - timer callback for + timed interrupts +-------------------------------------------------*/ + +static TIMER_CALLBACK( trigger_periodic_interrupt ) +{ + const device_config *device = ptr; + const cpu_config *config = device->inline_config; + + /* bail if there is no routine */ + if (config->timed_interrupt != NULL && !cpu_is_suspended(device, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) + { + cpu_push_context(device); + (*config->timed_interrupt)(device); + cpu_pop_context(); + } +} + + +/*------------------------------------------------- + triggertime_callback - signal a global trigger +-------------------------------------------------*/ + +static TIMER_CALLBACK( triggertime_callback ) +{ + cpuexec_trigger(machine, param); +} + + + +/*------------------------------------------------- + empty_event_queue - empty a CPU's event queue + for a specific input line +-------------------------------------------------*/ + +static TIMER_CALLBACK( empty_event_queue ) +{ + const device_config *device = ptr; + cpu_class_data *classdata = device->classtoken; + cpuinput_data *inputline = &classdata->input[param]; + int curevent; + + /* swap to the CPU's context */ + cpu_push_context(device); + + /* loop over all events */ + for (curevent = 0; curevent < inputline->qindex; curevent++) + { + INT32 input_event = inputline->queue[curevent]; + int state = input_event & 0xff; + int vector = input_event >> 8; + + /* set the input line state and vector */ + inputline->curstate = state; + inputline->curvector = vector; + + /* special case: RESET */ + if (param == INPUT_LINE_RESET) + { + /* if we're asserting the line, just halt the CPU */ + if (state == ASSERT_LINE) + cpu_suspend(device, SUSPEND_REASON_RESET, 1); + else + { + /* if we're clearing the line that was previously asserted, or if we're just */ + /* pulsing the line, reset the CPU */ + if ((state == CLEAR_LINE && cpu_is_suspended(device, SUSPEND_REASON_RESET)) || state == PULSE_LINE) + cpu_reset(device); + + /* if we're clearing the line, make sure the CPU is not halted */ + cpu_resume(device, SUSPEND_REASON_RESET); + } + } + + /* special case: HALT */ + else if (param == INPUT_LINE_HALT) + { + /* if asserting, halt the CPU */ + if (state == ASSERT_LINE) + cpu_suspend(device, SUSPEND_REASON_HALT, 1); + + /* if clearing, unhalt the CPU */ + else if (state == CLEAR_LINE) + cpu_resume(device, SUSPEND_REASON_HALT); + } + + /* all other cases */ + else + { + /* switch off the requested state */ + switch (state) + { + case PULSE_LINE: + /* temporary: PULSE_LINE only makes sense for NMI lines on Z80 */ + assert((cpu_type)device->type != CPU_Z80 || param == INPUT_LINE_NMI); + cpu_set_info_int(device, CPUINFO_INT_INPUT_STATE + param, ASSERT_LINE); + cpu_set_info_int(device, CPUINFO_INT_INPUT_STATE + param, CLEAR_LINE); + break; + + case HOLD_LINE: + case ASSERT_LINE: + cpu_set_info_int(device, CPUINFO_INT_INPUT_STATE + param, ASSERT_LINE); + break; + + case CLEAR_LINE: + cpu_set_info_int(device, CPUINFO_INT_INPUT_STATE + param, CLEAR_LINE); + break; + + default: + logerror("empty_event_queue cpu '%s', line %d, unknown state %d\n", device->tag, param, state); + break; + } + + /* generate a trigger to unsuspend any CPUs waiting on the interrupt */ + if (state != CLEAR_LINE) + cpu_triggerint(device); + } + } + + /* swap back */ + cpu_pop_context(); + + /* reset counter */ + inputline->qindex = 0; +} + + +/*------------------------------------------------- + standard_irq_callback - IRQ acknowledge + callback; handles HOLD_LINE case and signals + to the debugger +-------------------------------------------------*/ + +static IRQ_CALLBACK( standard_irq_callback ) +{ + cpu_class_data *classdata = device->classtoken; + cpuinput_data *inputline = &classdata->input[irqline]; + int vector = inputline->curvector; + + LOG(("standard_irq_callback('%s', %d) $%04x\n", device->tag, irqline, vector)); + + /* if the IRQ state is HOLD_LINE, clear it */ + if (inputline->curstate == HOLD_LINE) + { + LOG(("->set_irq_line('%s',%d,%d)\n", device->tag, irqline, CLEAR_LINE)); + cpu_set_info_int(device, CPUINFO_INT_INPUT_STATE + irqline, CLEAR_LINE); + inputline->curstate = CLEAR_LINE; + } + + /* if there's a driver callback, run it */ + if (classdata->driver_irq != NULL) + vector = (*classdata->driver_irq)(device, irqline); + + /* notify the debugger */ + debug_cpu_interrupt_hook(device->machine, classdata->header.index, irqline); + + /* otherwise, just return the current vector */ + return vector; +} + + +/*------------------------------------------------- + register_save_states - register for CPU- + specific save states +-------------------------------------------------*/ + +static void register_save_states(const device_config *device) +{ + cpu_class_data *classdata = device->classtoken; + int line; + + state_save_register_item("cpu", classdata->header.index, classdata->suspend); + state_save_register_item("cpu", classdata->header.index, classdata->nextsuspend); + state_save_register_item("cpu", classdata->header.index, classdata->eatcycles); + state_save_register_item("cpu", classdata->header.index, classdata->nexteatcycles); + state_save_register_item("cpu", classdata->header.index, classdata->trigger); + + state_save_register_item("cpu", classdata->header.index, classdata->iloops); + + state_save_register_item("cpu", classdata->header.index, classdata->totalcycles); + state_save_register_item("cpu", classdata->header.index, classdata->localtime.seconds); + state_save_register_item("cpu", classdata->header.index, classdata->localtime.attoseconds); + state_save_register_item("cpu", classdata->header.index, classdata->clock); + state_save_register_item("cpu", classdata->header.index, classdata->clockscale); + + for (line = 0; line < ARRAY_LENGTH(classdata->input); line++) + { + cpuinput_data *inputline = &classdata->input[line]; + int index = classdata->header.index * ARRAY_LENGTH(classdata->input) + line; + state_save_register_item("cpu", index, inputline->vector); + state_save_register_item("cpu", index, inputline->curvector); + state_save_register_item("cpu", index, inputline->curstate); + } +} + diff --git a/src/emu/cpuexec.h b/src/emu/cpuexec.h index 45b5462b3a1..fca6556f08a 100644 --- a/src/emu/cpuexec.h +++ b/src/emu/cpuexec.h @@ -14,7 +14,7 @@ #ifndef __CPUEXEC_H__ #define __CPUEXEC_H__ -#include "memory.h" +#include "cpuintrf.h" #include "timer.h" @@ -44,235 +44,6 @@ enum }; -/* list of all possible CPUs we might be compiled with */ -enum _cpu_type -{ - CPU_DUMMY, - CPU_Z80, - CPU_Z180, - CPU_8080, - CPU_8085A, - CPU_M6502, - CPU_M65C02, - CPU_M65SC02, - CPU_M65CE02, - CPU_M6509, - CPU_M6510, - CPU_M6510T, - CPU_M7501, - CPU_M8502, - CPU_N2A03, - CPU_DECO16, - CPU_M4510, - CPU_H6280, - CPU_I8086, - CPU_I8088, - CPU_I80186, - CPU_I80188, - CPU_I80286, - CPU_V20, - CPU_V25, - CPU_V30, - CPU_V33, - CPU_V35, - CPU_V60, - CPU_V70, - CPU_I8035, - CPU_I8048, - CPU_I8648, - CPU_I8748, - CPU_MB8884, - CPU_N7751, - CPU_I8039, - CPU_I8049, - CPU_I8749, - CPU_M58715, - CPU_I8041, - CPU_I8741, - CPU_I8042, - CPU_I8242, - CPU_I8742, - CPU_I8031, - CPU_I8032, - CPU_I8051, - CPU_I8052, - CPU_I8751, - CPU_I8752, - CPU_I80C31, - CPU_I80C32, - CPU_I80C51, - CPU_I80C52, - CPU_I87C51, - CPU_I87C52, - CPU_AT89C4051, - CPU_DS5002FP, - CPU_M6800, - CPU_M6801, - CPU_M6802, - CPU_M6803, - CPU_M6808, - CPU_HD63701, - CPU_NSC8105, - CPU_M6805, - CPU_M68705, - CPU_HD63705, - CPU_HD6309, - CPU_M6809, - CPU_M6809E, - CPU_KONAMI, - CPU_M68000, - CPU_M68008, - CPU_M68010, - CPU_M68EC020, - CPU_M68020, - CPU_M68040, - CPU_T11, - CPU_S2650, - CPU_TMS34010, - CPU_TMS34020, - CPU_TI990_10, - CPU_TMS9900, - CPU_TMS9940, - CPU_TMS9980, - CPU_TMS9985, - CPU_TMS9989, - CPU_TMS9995, - CPU_TMS99100, - CPU_TMS99105A, - CPU_TMS99110A, - CPU_TMS99000, - CPU_Z8000, - CPU_TMS32010, - CPU_TMS32025, - CPU_TMS32026, - CPU_TMS32031, - CPU_TMS32032, - CPU_TMS32051, - CPU_CCPU, - CPU_ADSP2100, - CPU_ADSP2101, - CPU_ADSP2104, - CPU_ADSP2105, - CPU_ADSP2115, - CPU_ADSP2181, - CPU_PSXCPU, - CPU_ASAP, - CPU_UPD7810, - CPU_UPD7807, - CPU_UPD7801, - CPU_UPD78C05, - CPU_UPD78C06, - CPU_JAGUARGPU, - CPU_JAGUARDSP, - CPU_CQUESTSND, - CPU_CQUESTROT, - CPU_CQUESTLIN, - CPU_R3000BE, - CPU_R3000LE, - CPU_R3041BE, - CPU_R3041LE, - CPU_R4600BE, - CPU_R4600LE, - CPU_R4650BE, - CPU_R4650LE, - CPU_R4700BE, - CPU_R4700LE, - CPU_R5000BE, - CPU_R5000LE, - CPU_QED5271BE, - CPU_QED5271LE, - CPU_RM7000BE, - CPU_RM7000LE, - CPU_ARM, - CPU_ARM7, - CPU_SH1, - CPU_SH2, - CPU_SH4, - CPU_DSP32C, - CPU_PIC16C54, - CPU_PIC16C55, - CPU_PIC16C56, - CPU_PIC16C57, - CPU_PIC16C58, - CPU_G65816, - CPU_SPC700, - CPU_E116T, - CPU_E116XT, - CPU_E116XS, - CPU_E116XSR, - CPU_E132N, - CPU_E132T, - CPU_E132XN, - CPU_E132XT, - CPU_E132XS, - CPU_E132XSR, - CPU_GMS30C2116, - CPU_GMS30C2132, - CPU_GMS30C2216, - CPU_GMS30C2232, - CPU_I386, - CPU_I486, - CPU_PENTIUM, - CPU_MEDIAGX, - CPU_I960, - CPU_H83002, - CPU_H83007, - CPU_H83044, - CPU_V810, - CPU_M37702, - CPU_M37710, - CPU_PPC403GA, - CPU_PPC403GCX, - CPU_PPC601, - CPU_PPC602, - CPU_PPC603, - CPU_PPC603E, - CPU_PPC603R, - CPU_PPC604, - CPU_MPC8240, - CPU_SE3208, - CPU_MC68HC11, - CPU_ADSP21062, - CPU_DSP56156, - CPU_RSP, - CPU_ALPHA8201, - CPU_ALPHA8301, - CPU_CDP1802, - CPU_COP420, - CPU_COP421, - CPU_COP410, - CPU_COP411, - CPU_TMP90840, - CPU_TMP90841, - CPU_TMP91640, - CPU_TMP91641, - CPU_APEXC, - CPU_CP1610, - CPU_F8, - CPU_LH5801, - CPU_PDP1, - CPU_SATURN, - CPU_SC61860, - CPU_TX0_64KW, - CPU_TX0_8KW, - CPU_LR35902, - CPU_TMS7000, - CPU_TMS7000_EXL, - CPU_SM8500, - CPU_V30MZ, - CPU_MB8841, - CPU_MB8842, - CPU_MB8843, - CPU_MB8844, - CPU_MB86233, - CPU_SSP1601, - CPU_MINX, - CPU_CXD8661R, - CPU_COUNT -}; -typedef enum _cpu_type cpu_type; - - /*************************************************************************** TYPE DEFINITIONS @@ -286,10 +57,10 @@ struct _cpu_config int flags; /* flags; see #defines below */ int clock; /* in Hertz */ const addrmap_token *address_map[ADDRESS_SPACES][2]; /* 2 memory maps per address space */ - void (*vblank_interrupt)(running_machine *machine, int cpunum); /* for interrupts tied to VBLANK */ + void (*vblank_interrupt)(const device_config *device); /* for interrupts tied to VBLANK */ int vblank_interrupts_per_frame;/* usually 1 */ const char * vblank_interrupt_screen; /* the screen that causes the VBLANK interrupt */ - void (*timed_interrupt)(running_machine *machine, int cpunum); /* for interrupts not tied to VBLANK */ + void (*timed_interrupt)(const device_config *device); /* for interrupts not tied to VBLANK */ attoseconds_t timed_interrupt_period; /* period for periodic interrupts */ const void * reset_param; /* parameter for cpu_reset */ const char * tag; @@ -297,6 +68,14 @@ struct _cpu_config +/*************************************************************************** + MACROS +***************************************************************************/ + +#define INTERRUPT_GEN(func) void func(const device_config *device) + + + /*************************************************************************** FUNCTION PROTOTYPES ***************************************************************************/ @@ -310,91 +89,136 @@ void cpuexec_init(running_machine *machine); /* execute for a single timeslice */ void cpuexec_timeslice(running_machine *machine); +/* temporarily boosts the interleave factor */ +void cpuexec_boost_interleave(running_machine *machine, attotime timeslice_time, attotime boost_duration); + +/* return a pointer to the given CPU by tag */ +const device_config *cputag_get_cpu(running_machine *machine, const char *tag); + /* ----- CPU scheduling----- */ -/* temporarily boosts the interleave factor */ -void cpu_boost_interleave(running_machine *machine, attotime timeslice_time, attotime boost_duration); - -/* aborts the timeslice for the active CPU */ -void activecpu_abort_timeslice(void); - /* suspend the given CPU for a specific reason */ -void cpunum_suspend(int cpunum, int reason, int eatcycles); +void cpu_suspend(const device_config *device, int reason, int eatcycles); /* resume the given CPU for a specific reason */ -void cpunum_resume(int cpunum, int reason); +void cpu_resume(const device_config *device, int reason); /* returns true if the given CPU is suspended for any of the given reasons */ -int cpunum_is_suspended(int cpunum, int reason); +int cpu_is_suspended(const device_config *device, int reason); /* ----- CPU clock management ----- */ /* returns the current CPU's unscaled running clock speed */ -int cpunum_get_clock(int cpunum); +int cpu_get_clock(const device_config *device); /* sets the current CPU's clock speed and then adjusts for scaling */ -void cpunum_set_clock(running_machine *machine, int cpunum, int clock); +void cpu_set_clock(const device_config *device, int clock); /* returns the current scaling factor for a CPU's clock speed */ -double cpunum_get_clockscale(int cpunum); +double cpu_get_clockscale(const device_config *device); /* sets the current scaling factor for a CPU's clock speed */ -void cpunum_set_clockscale(running_machine *machine, int cpunum, double clockscale); +void cpu_set_clockscale(const device_config *device, double clockscale); /* ----- CPU timing ----- */ /* returns the current local time for a CPU */ -attotime cpunum_get_localtime(int cpunum); - -/* returns the total number of CPU cycles */ -UINT64 activecpu_gettotalcycles(void); +attotime cpu_get_local_time(const device_config *device); /* returns the total number of CPU cycles for a given CPU */ -UINT64 cpunum_gettotalcycles(int cpunum); +UINT64 cpu_get_total_cycles(const device_config *device); /* safely eats cycles so we don't cross a timeslice boundary */ -void activecpu_eat_cycles(int cycles); +void cpu_eat_cycles(const device_config *device, int cycles); + +/* apply a +/- to the current icount */ +void cpu_adjust_icount(const device_config *device, int delta); + +/* aborts the timeslice for the active CPU */ +void cpu_abort_timeslice(const device_config *device); /* ----- synchronization helpers ----- */ -/* yield our current timeslice */ -void cpu_yield(void); +/* yield the given CPU until the end of the current timeslice */ +void cpu_yield(const device_config *device); -/* burn CPU cycles until our timeslice is up */ -void cpu_spin(void); +/* burn CPU cycles until the end of the current timeslice */ +void cpu_spin(const device_config *device); -/* burn CPU cycles until a timer trigger */ -void cpu_spinuntil_trigger(int trigger); - -/* burn specified CPU cycles until a timer trigger */ -void cpunum_spinuntil_trigger(int cpunum, int trigger); +/* burn specified CPU cycles until a trigger */ +void cpu_spinuntil_trigger(const device_config *device, int trigger); /* burn CPU cycles until the next interrupt */ -void cpu_spinuntil_int(void); +void cpu_spinuntil_int(const device_config *device); /* burn CPU cycles for a specific period of time */ -void cpu_spinuntil_time(attotime duration); +void cpu_spinuntil_time(const device_config *device, attotime duration); /* ----- triggers ----- */ -/* generate a trigger now */ -void cpu_trigger(running_machine *machine, int trigger); +/* generate a global trigger now */ +void cpuexec_trigger(running_machine *machine, int trigger); -/* generate a trigger after a specific period of time */ -void cpu_triggertime(attotime duration, int trigger); +/* generate a global trigger after a specific period of time */ +void cpuexec_triggertime(running_machine *machine, int trigger, attotime duration); /* generate a trigger corresponding to an interrupt on the given CPU */ -void cpu_triggerint(running_machine *machine, int cpunum); +void cpu_triggerint(const device_config *device); + + + +/* ----- interrupts ----- */ + +/* set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a CPU */ +void cpu_set_input_line(const device_config *cpu, int line, int state); + +/* set the vector to be returned during a CPU's interrupt acknowledge cycle */ +void cpu_set_input_line_vector(const device_config *cpu, int irqline, int vector); + +/* set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a CPU and its associated vector */ +void cpu_set_input_line_and_vector(const device_config *cpu, int line, int state, int vector); + +/* install a driver-specific callback for IRQ acknowledge */ +void cpu_set_irq_callback(const device_config *cpu, cpu_irq_callback callback); + + + +/*************************************************************************** + INLINE FUNCTIONS +***************************************************************************/ + +/*------------------------------------------------- + cputag_set_input_line - set the logical state + (ASSERT_LINE/CLEAR_LINE) of an input line + on a CPU specified by machine/tag +-------------------------------------------------*/ + +INLINE void cputag_set_input_line(running_machine *machine, const char *tag, int line, int state) +{ + cpu_set_input_line(cputag_get_cpu(machine, tag), line, state); +} + + +/*------------------------------------------------- + cputag_set_input_line_and_vector - set the + logical state (ASSERT_LINE/CLEAR_LINE) of an + input line on a CPU and its associated vector +-------------------------------------------------*/ + +INLINE void cputag_set_input_line_and_vector(running_machine *machine, const char *tag, int line, int state, int vector) +{ + cpu_set_input_line_and_vector(cputag_get_cpu(machine, tag), line, state, vector); +} diff --git a/src/emu/cpuint.c b/src/emu/cpuint.c deleted file mode 100644 index 93364dfe4f4..00000000000 --- a/src/emu/cpuint.c +++ /dev/null @@ -1,434 +0,0 @@ -/*************************************************************************** - - cpuint.c - - Core multi-CPU interrupt engine. - - Copyright Nicola Salmoria and the MAME Team. - Visit http://mamedev.org for licensing and usage restrictions. - -***************************************************************************/ - -#include "driver.h" -#include "deprecat.h" -#include "debug/debugcpu.h" - - - -/************************************* - * - * Debug logging - * - *************************************/ - -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - - - - -/************************************* - * - * CPU interrupt variables - * - *************************************/ - -/* current states for each CPU */ -static INT32 interrupt_vector[MAX_CPU][MAX_INPUT_LINES]; - -/* deferred states written in callbacks */ -static UINT8 input_line_state[MAX_CPU][MAX_INPUT_LINES]; -static INT32 input_line_vector[MAX_CPU][MAX_INPUT_LINES]; - -/* ick, interrupt event queues */ -#define MAX_INPUT_EVENTS 32 -static INT32 input_event_queue[MAX_CPU][MAX_INPUT_LINES][MAX_INPUT_EVENTS]; -static int input_event_index[MAX_CPU][MAX_INPUT_LINES]; - - - -/************************************* - * - * IRQ acknowledge callbacks - * - *************************************/ - -static int cpu_0_irq_callback(const device_config *device, int line); -static int cpu_1_irq_callback(const device_config *device, int line); -static int cpu_2_irq_callback(const device_config *device, int line); -static int cpu_3_irq_callback(const device_config *device, int line); -static int cpu_4_irq_callback(const device_config *device, int line); -static int cpu_5_irq_callback(const device_config *device, int line); -static int cpu_6_irq_callback(const device_config *device, int line); -static int cpu_7_irq_callback(const device_config *device, int line); - -cpu_irq_callback cpu_irq_callbacks[MAX_CPU] = -{ - cpu_0_irq_callback, - cpu_1_irq_callback, - cpu_2_irq_callback, - cpu_3_irq_callback, - cpu_4_irq_callback, - cpu_5_irq_callback, - cpu_6_irq_callback, - cpu_7_irq_callback -}; - -static int (*drv_irq_callbacks[MAX_CPU])(running_machine *, int); - - - -#if 0 -#pragma mark CORE CPU -#endif - -/************************************* - * - * Initialize a CPU's interrupt states - * - *************************************/ - -void cpuint_init(running_machine *machine) -{ - int cpunum; - int line; - - /* loop over all CPUs and input lines */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - { - /* reset any driver hooks into the IRQ acknowledge callbacks */ - drv_irq_callbacks[cpunum] = NULL; - - /* clear out all the CPU states */ - for (line = 0; line < MAX_INPUT_LINES; line++) - { - input_line_state[cpunum][line] = CLEAR_LINE; - interrupt_vector[cpunum][line] = - input_line_vector[cpunum][line] = cputype_default_irq_vector(machine->config->cpu[cpunum].type); - input_event_index[cpunum][line] = 0; - } - } - - /* set up some stuff to save */ - state_save_push_tag(0); - state_save_register_item_2d_array("cpu", 0, interrupt_vector); - state_save_register_item_2d_array("cpu", 0, input_line_state); - state_save_register_item_2d_array("cpu", 0, input_line_vector); - state_save_pop_tag(); -} - - - -/************************************* - * - * Reset a CPU's interrupt states - * - *************************************/ - -void cpuint_reset(running_machine *machine) -{ - int cpunum, line; - - /* loop over CPUs */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - for (line = 0; line < MAX_INPUT_LINES; line++) - { - interrupt_vector[cpunum][line] = cpu_get_default_irq_vector(machine->cpu[cpunum]); - input_event_index[cpunum][line] = 0; - } -} - - - -#if 0 -#pragma mark - -#pragma mark LINE STATES -#endif - - -/************************************* - * - * Empty a CPU's event queue for - * a specific input line - * - *************************************/ - -static TIMER_CALLBACK( cpunum_empty_event_queue ) -{ - int cpunum = param & 0xff; - int line = param >> 8; - int i; - - /* swap to the CPU's context */ - cpu_push_context(machine->cpu[cpunum]); - - /* loop over all events */ - for (i = 0; i < input_event_index[cpunum][line]; i++) - { - INT32 input_event = input_event_queue[cpunum][line][i]; - int state = input_event & 0xff; - int vector = input_event >> 8; - - LOG(("cpunum_empty_event_queue %d,%d,%d\n",cpunum,line,state)); - - /* set the input line state and vector */ - input_line_state[cpunum][line] = state; - input_line_vector[cpunum][line] = vector; - - /* special case: RESET */ - if (line == INPUT_LINE_RESET) - { - /* if we're asserting the line, just halt the CPU */ - if (state == ASSERT_LINE) - cpunum_suspend(cpunum, SUSPEND_REASON_RESET, 1); - else - { - /* if we're clearing the line that was previously asserted, or if we're just */ - /* pulsing the line, reset the CPU */ - if ((state == CLEAR_LINE && cpunum_is_suspended(cpunum, SUSPEND_REASON_RESET)) || state == PULSE_LINE) - cpu_reset(machine->cpu[cpunum]); - - /* if we're clearing the line, make sure the CPU is not halted */ - cpunum_resume(cpunum, SUSPEND_REASON_RESET); - } - } - - /* special case: HALT */ - else if (line == INPUT_LINE_HALT) - { - /* if asserting, halt the CPU */ - if (state == ASSERT_LINE) - cpunum_suspend(cpunum, SUSPEND_REASON_HALT, 1); - - /* if clearing, unhalt the CPU */ - else if (state == CLEAR_LINE) - cpunum_resume(cpunum, SUSPEND_REASON_HALT); - } - - /* all other cases */ - else - { - /* switch off the requested state */ - switch (state) - { - case PULSE_LINE: - /* temporary: PULSE_LINE only makes sense for NMI lines on Z80 */ - assert(machine->config->cpu[cpunum].type != CPU_Z80 || line == INPUT_LINE_NMI); - cpu_set_info_int(machine->activecpu, CPUINFO_INT_INPUT_STATE + line, ASSERT_LINE); - cpu_set_info_int(machine->activecpu, CPUINFO_INT_INPUT_STATE + line, CLEAR_LINE); - break; - - case HOLD_LINE: - case ASSERT_LINE: - cpu_set_info_int(machine->activecpu, CPUINFO_INT_INPUT_STATE + line, ASSERT_LINE); - break; - - case CLEAR_LINE: - cpu_set_info_int(machine->activecpu, CPUINFO_INT_INPUT_STATE + line, CLEAR_LINE); - break; - - default: - logerror("cpunum_empty_event_queue cpu #%d, line %d, unknown state %d\n", cpunum, line, state); - } - - /* generate a trigger to unsuspend any CPUs waiting on the interrupt */ - if (state != CLEAR_LINE) - cpu_triggerint(machine, cpunum); - } - } - - /* swap back */ - cpu_pop_context(); - - /* reset counter */ - input_event_index[cpunum][line] = 0; -} - - - -/************************************* - * - * Set the state of a CPU's input - * line - * - *************************************/ - -void cpunum_set_input_line(running_machine *machine, int cpunum, int line, int state) -{ - int vector = (line >= 0 && line < MAX_INPUT_LINES) ? interrupt_vector[cpunum][line] : 0xff; - cpunum_set_input_line_and_vector(machine, cpunum, line, state, vector); -} - - -void cputag_set_input_line(running_machine *machine, const char *tag, int line, int state) -{ - int cpunum = mame_find_cpu_index(machine, tag); - assert(cpunum != -1); - cpunum_set_input_line(machine, cpunum, line, state); -} - - -void cpunum_set_input_line_vector(int cpunum, int line, int vector) -{ - if (cpunum < cpu_gettotalcpu() && line >= 0 && line < MAX_INPUT_LINES) - { - LOG(("cpunum_set_input_line_vector(%d,%d,$%04x)\n",cpunum,line,vector)); - interrupt_vector[cpunum][line] = vector; - return; - } - LOG(("cpunum_set_input_line_vector CPU#%d line %d > max input lines\n", cpunum, line)); -} - - -void cpunum_set_input_line_and_vector(running_machine *machine, int cpunum, int line, int state, int vector) -{ -#ifdef MAME_DEBUG - /* catch errors where people use PULSE_LINE for CPUs that don't support it */ - if (state == PULSE_LINE && line != INPUT_LINE_NMI && line != INPUT_LINE_RESET) - { - switch (machine->config->cpu[cpunum].type) - { - case CPU_Z80: - case CPU_Z180: - case CPU_M68000: - case CPU_M68008: - case CPU_M68010: - case CPU_M68EC020: - case CPU_M68020: - case CPU_M68040: - case CPU_R4600BE: - case CPU_R4600LE: - case CPU_R4650BE: - case CPU_R4650LE: - case CPU_R4700BE: - case CPU_R4700LE: - case CPU_R5000BE: - case CPU_R5000LE: - case CPU_QED5271BE: - case CPU_QED5271LE: - case CPU_RM7000BE: - case CPU_RM7000LE: - case CPU_PPC403GA: - case CPU_PPC403GCX: - case CPU_PPC601: - case CPU_PPC602: - case CPU_PPC603: - case CPU_PPC603E: - case CPU_PPC603R: - case CPU_PPC604: - case CPU_I8035: - case CPU_I8041: - case CPU_I8048: - case CPU_I8648: - case CPU_I8748: - case CPU_MB8884: - case CPU_N7751: - case CPU_TMS34010: - case CPU_TMS34020: - case CPU_TMS32010: - case CPU_TMS32025: - case CPU_TMS32026: - fatalerror("CPU %s: PULSE_LINE used with level-detected IRQ %d\n", machine->config->cpu[cpunum].tag, line); - break; - - default: - break; - } - } -#endif - - if (line >= 0 && line < MAX_INPUT_LINES) - { - INT32 input_event = (state & 0xff) | (vector << 8); - int event_index = input_event_index[cpunum][line]++; - - LOG(("cpunum_set_input_line_and_vector(%d,%d,%d,%02x)\n", cpunum, line, state, vector)); - - /* if we're full of events, flush the queue and log a message */ - if (event_index >= MAX_INPUT_EVENTS) - { - input_event_index[cpunum][line]--; - cpunum_empty_event_queue(machine, NULL, cpunum | (line << 8)); - event_index = input_event_index[cpunum][line]++; - logerror("Exceeded pending input line event queue on CPU %d!\n", cpunum); - } - - /* enqueue the event */ - if (event_index < MAX_INPUT_EVENTS) - { - input_event_queue[cpunum][line][event_index] = input_event; - - /* if this is the first one, set the timer */ - if (event_index == 0) - timer_call_after_resynch(NULL, cpunum | (line << 8), cpunum_empty_event_queue); - } - } -} - - -void cputag_set_input_line_and_vector(running_machine *machine, const char *tag, int line, int state, int vector) -{ - int cpunum = mame_find_cpu_index(machine, tag); - assert(cpunum != -1); - cpunum_set_input_line_and_vector(machine, cpunum, line, state, vector); -} - - -#if 0 -#pragma mark - -#pragma mark INTERRUPT HANDLING -#endif - -/************************************* - * - * Set IRQ callback for drivers - * - *************************************/ - -void cpunum_set_irq_callback(int cpunum, int (*callback)(running_machine *, int)) -{ - drv_irq_callbacks[cpunum] = callback; -} - - - -/************************************* - * - * Internal IRQ callbacks - * - *************************************/ - -INLINE int generic_irq_callback(running_machine *machine, int cpunum, int line) -{ - int vector = input_line_vector[cpunum][line]; - - LOG(("cpu_%d_irq_callback(%d) $%04x\n", cpunum, line, vector)); - - /* if the IRQ state is HOLD_LINE, clear it */ - if (input_line_state[cpunum][line] == HOLD_LINE) - { - LOG(("->set_irq_line(%d,%d,%d)\n", cpunum, line, CLEAR_LINE)); - cpu_set_info_int(machine->activecpu, CPUINFO_INT_INPUT_STATE + line, CLEAR_LINE); - input_line_state[cpunum][line] = CLEAR_LINE; - } - - /* if there's a driver callback, run it */ - if (drv_irq_callbacks[cpunum]) - vector = (*drv_irq_callbacks[cpunum])(machine, line); - - /* notify the debugger */ - debug_cpu_interrupt_hook(machine, cpunum, line); - - /* otherwise, just return the current vector */ - return vector; -} - -static int cpu_0_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 0, line); } -static int cpu_1_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 1, line); } -static int cpu_2_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 2, line); } -static int cpu_3_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 3, line); } -static int cpu_4_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 4, line); } -static int cpu_5_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 5, line); } -static int cpu_6_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 6, line); } -static int cpu_7_irq_callback(const device_config *device, int line) { return generic_irq_callback(device->machine, 7, line); } diff --git a/src/emu/cpuint.h b/src/emu/cpuint.h deleted file mode 100644 index 2b58e1be58e..00000000000 --- a/src/emu/cpuint.h +++ /dev/null @@ -1,57 +0,0 @@ -/*************************************************************************** - - cpuint.h - - Core multi-CPU interrupt engine. - - Copyright Nicola Salmoria and the MAME Team. - Visit http://mamedev.org for licensing and usage restrictions. - -***************************************************************************/ - -#pragma once - -#ifndef __CPUINT_H__ -#define __CPUINT_H__ - -#include "memory.h" - -#define INTERRUPT_GEN(func) void func(running_machine *machine, int cpunum) -#define IRQ_CALLBACK(func) int func(running_machine *machine, int irqline) - - - -/************************************* - * - * Startup/shutdown - * - *************************************/ - -void cpuint_init(running_machine *machine); - -void cpuint_reset(running_machine *machine); - - - -/************************************* - * - * CPU lines - * - *************************************/ - -/* Set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a CPU */ -void cpunum_set_input_line(running_machine *machine, int cpunum, int line, int state); -void cputag_set_input_line(running_machine *machine, const char *tag, int line, int state); - -/* Set the vector to be returned during a CPU's interrupt acknowledge cycle */ -void cpunum_set_input_line_vector(int cpunum, int irqline, int vector); - -/* Set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a CPU and its associated vector */ -void cpunum_set_input_line_and_vector(running_machine *machine, int cpunum, int line, int state, int vector); -void cputag_set_input_line_and_vector(running_machine *machine, const char *tag, int line, int state, int vector); - -/* Install a driver callback for IRQ acknowledge */ -void cpunum_set_irq_callback(int cpunum, int (*callback)(running_machine *machine, int irqline)); - - -#endif /* __CPUINT_H__ */ diff --git a/src/emu/cpuintrf.c b/src/emu/cpuintrf.c index 86a52859379..c3dc26d43f8 100644 --- a/src/emu/cpuintrf.c +++ b/src/emu/cpuintrf.c @@ -16,11 +16,28 @@ #undef i386 -/************************************* - * - * Include headers from all CPUs - * - *************************************/ +/*************************************************************************** + DEBUGGING +***************************************************************************/ + +#define VERBOSE 0 + +#define LOG(x) do { if (VERBOSE) logerror x; } while (0) + + + +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +#define TEMP_STRING_POOL_ENTRIES 16 +#define MAX_STRING_LENGTH 256 + + + +/*************************************************************************** + PROTOTYPES FOR ALL CPU ENTRY POINTS +***************************************************************************/ CPU_GET_INFO( dummy ); CPU_GET_INFO( z80 ); @@ -245,62 +262,9 @@ CPU_GET_INFO( cxd8661r ); -/************************************* - * - * Debug logging - * - *************************************/ - -#define VERBOSE 0 - -#define LOG(x) do { if (VERBOSE) logerror x; } while (0) - - - -/************************************* - * - * Macros to help verify active CPU - * - *************************************/ - -#define VERIFY_CPU(name) \ - assert_always(cpu != NULL, #name "() called with invalid cpu!") - -#define VERIFY_ACTIVECPU(name) \ - assert_always(activecpunum >= 0, #name "() called with no active cpu!") - -#define VERIFY_CPUTYPE(name) \ - assert_always(cputype >= 0 && cputype < CPU_COUNT, #name "() called for invalid cpu type!") - - - -/************************************* - * - * Internal CPU info type - * - *************************************/ - -typedef struct _cpuintrf_data cpuintrf_data; -struct _cpuintrf_data -{ - int index; /* index of this CPU */ - int family; /* family index of this CPU */ - cpu_interface intf; /* copy of the interface data */ - cpu_type cputype; /* type index of this CPU */ - device_config *device; /* dummy device for now */ - int *icount; - cpu_disassemble_func dasm_override; -}; - - - -/************************************* - * - * The core list of CPU interfaces - * - *************************************/ - -cpu_interface cpuintrf[CPU_COUNT]; +/*************************************************************************** + MASTER CPU LIST +***************************************************************************/ static const struct { @@ -935,98 +899,30 @@ static const struct -/************************************* - * - * Other variables we own - * - *************************************/ +/*************************************************************************** + GLOBAL VARIABLES +***************************************************************************/ -const device_config *executingcpu; -int activecpunum; /* index of active CPU (or -1) */ -int executingcpunum; /* index of executing CPU (or -1) */ -int totalcpu; /* total number of CPUs */ - -static cpuintrf_data cpu[MAX_CPU]; +static cpu_class_header cpu_type_header[CPU_COUNT]; static const device_config *cpu_context_stack[4]; static int cpu_context_stack_ptr; -#define TEMP_STRING_POOL_ENTRIES 16 -static char temp_string_pool[TEMP_STRING_POOL_ENTRIES][256]; +static char temp_string_pool[TEMP_STRING_POOL_ENTRIES][MAX_STRING_LENGTH]; static int temp_string_pool_index; -/************************************* - * - * Set a new CPU context - * - *************************************/ +/*************************************************************************** + INLINE FUNCTIONS +***************************************************************************/ -INLINE void set_cpu_context(const device_config *oldcpu, const device_config *newcpu) -{ - cpuintrf_data *cpudata = NULL; - - /* if nothing is changing, quick exit */ - if (newcpu == NULL || oldcpu == newcpu) - return; +/*------------------------------------------------- + get_temp_string_buffer - return a pointer to + a temporary string buffer +-------------------------------------------------*/ - /* save the old context if we have one */ - if (oldcpu != NULL) - { - cpudata = oldcpu->classtoken; - (*cpudata->intf.get_context)(oldcpu->token); - } - - /* swap memory spaces */ - newcpu->machine->activecpu = newcpu; - - cpudata = newcpu->classtoken; - activecpunum = cpudata->index; - memory_set_context(newcpu->machine, activecpunum); - (*cpudata->intf.set_context)(newcpu->token); -} - - - -/************************************* - * - * Push/pop to a new CPU context - * - *************************************/ - -void cpu_push_context(const device_config *cpu) -{ - const device_config *oldcpu = cpu->machine->activecpu; - cpu_context_stack[cpu_context_stack_ptr++] = oldcpu; - set_cpu_context(oldcpu, cpu); -} - - -void cpu_pop_context(void) -{ - const device_config *cpu = cpu_context_stack[--cpu_context_stack_ptr]; - if (cpu != NULL) - { - const device_config *oldcpu = cpu->machine->activecpu; - set_cpu_context(oldcpu, cpu); - } - else - { - Machine->activecpu = NULL; - activecpunum = -1; - } -} - - - -/************************************* - * - * Global temp string pool - * - *************************************/ - -char *cpuintrf_temp_str(void) +INLINE char *get_temp_string_buffer(void) { char *string = &temp_string_pool[temp_string_pool_index++ % TEMP_STRING_POOL_ENTRIES][0]; string[0] = 0; @@ -1034,498 +930,452 @@ char *cpuintrf_temp_str(void) } +/*------------------------------------------------- + get_safe_classheader - makes sure that the + passed in device is, in fact, a CPU, and + return the class token +-------------------------------------------------*/ -/************************************* - * - * Initialize the global interface - * - *************************************/ +INLINE cpu_class_header *get_safe_classheader(const device_config *device) +{ + assert(device != NULL); + assert(device->classtoken != NULL); + assert(device->class == DEVICE_CLASS_CPU_CHIP); + + return (cpu_class_header *)device->classtoken; +} + + +/*------------------------------------------------- + set_cpu_context - set the current CPU context + swapping out the old one if necessary +-------------------------------------------------*/ + +INLINE void set_cpu_context(const device_config *oldcpu, const device_config *newcpu) +{ + cpu_class_header *classheader; + + /* if nothing is changing, quick exit */ + if (oldcpu == newcpu) + return; + + /* swap out the old context if we have one */ + if (oldcpu != NULL) + { + classheader = oldcpu->classtoken; + (*classheader->get_context)(oldcpu->token); + } + + /* swap in the new context if we have one */ + if (newcpu != NULL) + { + /* make this the activecpu */ + newcpu->machine->activecpu = newcpu; + + /* set the memory context and swap in the new */ + classheader = newcpu->classtoken; + memory_set_context(newcpu->machine, classheader->index); + (*classheader->set_context)(newcpu->token); + } + else + Machine->activecpu = NULL; +} + + + +/*************************************************************************** + GLOBAL MANAGEMENT +***************************************************************************/ + +/*------------------------------------------------- + cpuintrf_init - initialize global structures +-------------------------------------------------*/ void cpuintrf_init(running_machine *machine) { int mapindex; /* reset the cpuintrf array */ - memset(cpuintrf, 0, sizeof(cpuintrf)); + memset(cpu_type_header, 0, sizeof(cpu_type_header)); /* build the cpuintrf array */ - for (mapindex = 0; mapindex < sizeof(cpuintrf_map) / sizeof(cpuintrf_map[0]); mapindex++) + for (mapindex = 0; mapindex < ARRAY_LENGTH(cpuintrf_map); mapindex++) { cpu_type cputype = cpuintrf_map[mapindex].cputype; - cpu_interface *intf = &cpuintrf[cputype]; + cpu_class_header *header = &cpu_type_header[cputype]; cpuinfo info; + int spacenum; /* start with the get_info routine */ - intf->get_info = cpuintrf_map[mapindex].get_info; + header->cputype = cputype; + header->get_info = cpuintrf_map[mapindex].get_info; /* bootstrap the rest of the function pointers */ info.setinfo = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_SET_INFO, &info); - intf->set_info = info.setinfo; + (*header->get_info)(NULL, CPUINFO_PTR_SET_INFO, &info); + header->set_info = info.setinfo; info.getcontext = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_GET_CONTEXT, &info); - intf->get_context = info.getcontext; + (*header->get_info)(NULL, CPUINFO_PTR_GET_CONTEXT, &info); + header->get_context = info.getcontext; info.setcontext = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_SET_CONTEXT, &info); - intf->set_context = info.setcontext; + (*header->get_info)(NULL, CPUINFO_PTR_SET_CONTEXT, &info); + header->set_context = info.setcontext; info.init = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_INIT, &info); - intf->init = info.init; + (*header->get_info)(NULL, CPUINFO_PTR_INIT, &info); + header->init = info.init; info.reset = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_RESET, &info); - intf->reset = info.reset; + (*header->get_info)(NULL, CPUINFO_PTR_RESET, &info); + header->reset = info.reset; info.exit = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_EXIT, &info); - intf->exit = info.exit; + (*header->get_info)(NULL, CPUINFO_PTR_EXIT, &info); + header->exit = info.exit; info.execute = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_EXECUTE, &info); - intf->execute = info.execute; + (*header->get_info)(NULL, CPUINFO_PTR_EXECUTE, &info); + header->execute = info.execute; info.burn = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_BURN, &info); - intf->burn = info.burn; + (*header->get_info)(NULL, CPUINFO_PTR_BURN, &info); + header->burn = info.burn; info.disassemble = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_DISASSEMBLE, &info); - intf->disassemble = info.disassemble; + (*header->get_info)(NULL, CPUINFO_PTR_DISASSEMBLE, &info); + header->disassemble = info.disassemble; info.translate = NULL; - (*intf->get_info)(NULL, CPUINFO_PTR_TRANSLATE, &info); - intf->translate = info.translate; + (*header->get_info)(NULL, CPUINFO_PTR_TRANSLATE, &info); + header->translate = info.translate; /* get other miscellaneous stuff */ - intf->context_size = cputype_context_size(cputype); - intf->address_shift = cputype_addrbus_shift(cputype, ADDRESS_SPACE_PROGRAM); + for (spacenum = 0; spacenum < ARRAY_LENGTH(header->address_shift); spacenum++) + header->address_shift[spacenum] = cputype_get_addrbus_shift(cputype, spacenum); + header->clock_divider = cputype_get_clock_divider(cputype); + header->clock_multiplier = cputype_get_clock_multiplier(cputype); } /* fill in any empty entries with the dummy CPU */ for (mapindex = 0; mapindex < CPU_COUNT; mapindex++) - if (cpuintrf[mapindex].get_info == NULL) - cpuintrf[mapindex] = cpuintrf[CPU_DUMMY]; - - /* zap the CPU data structure */ - memset(cpu, 0, sizeof(cpu)); - totalcpu = 0; + if (cpu_type_header[mapindex].get_info == NULL) + cpu_type_header[mapindex] = cpu_type_header[CPU_DUMMY]; /* reset the context stack */ - memset(&cpu_context_stack[0], 0, sizeof(cpu_context_stack)); + memset((void *)&cpu_context_stack[0], 0, sizeof(cpu_context_stack)); cpu_context_stack_ptr = 0; +} - /* nothing active, nothing executing */ - activecpunum = -1; - executingcpu = NULL; - executingcpunum = -1; - totalcpu = 0; - /* compute information about the CPUs now if we have a machine */ - if (machine != NULL) + +/*************************************************************************** + LIVE CONTEXT CONTROL +***************************************************************************/ + +/*------------------------------------------------- + cpu_push_context - remember the current + context and push a new one on the stack +-------------------------------------------------*/ + +void cpu_push_context(const device_config *device) +{ + const device_config *oldcpu = device->machine->activecpu; + cpu_context_stack[cpu_context_stack_ptr++] = oldcpu; + set_cpu_context(oldcpu, device); +} + + +/*------------------------------------------------- + cpu_pop_context - restore a previously saved + context +-------------------------------------------------*/ + +void cpu_pop_context(void) +{ + const device_config *device = cpu_context_stack[--cpu_context_stack_ptr]; + set_cpu_context(Machine->activecpu, device); +} + + +/*------------------------------------------------- + cpunum_get_active - return the index of the + active CPU (deprecated soon) +-------------------------------------------------*/ + +int cpunum_get_active(void) +{ + return (Machine->activecpu == NULL) ? -1 : cpu_get_index(Machine->activecpu); +} + + + +/*************************************************************************** + LIVE CPU ACCESSORS +***************************************************************************/ + +/*------------------------------------------------- + cpu_init - initialize a live CPU +-------------------------------------------------*/ + +void cpu_init(const device_config *device, int index, int clock, cpu_irq_callback irqcallback) +{ + cpu_class_header *classheader = get_safe_classheader(device); + + cpu_push_context(device); + classheader->index = index; + (*classheader->init)(device, index, clock, irqcallback); + (*classheader->get_context)(device->token); + cpu_pop_context(); +} + + +/*------------------------------------------------- + cpu_exit - free a live CPU +-------------------------------------------------*/ + +void cpu_exit(const device_config *device) +{ + cpu_class_header *classheader = get_safe_classheader(device); + + if (classheader->exit != NULL) { - /* loop over all defined CPUs */ - for (totalcpu = 0; totalcpu < CPU_COUNT; totalcpu++) - { - cpu_type cputype = machine->config->cpu[totalcpu].type; - char familyname[256]; - int j; - - /* stop when we hit a dummy */ - if (cputype == CPU_DUMMY) - break; - - /* fill in the type and interface */ - cpu[totalcpu].index = totalcpu; - cpu[totalcpu].intf = cpuintrf[cputype]; - cpu[totalcpu].cputype = cputype; - - /* determine the family index */ - strcpy(familyname, cputype_core_file(cputype)); - for (j = 0; j < CPU_COUNT; j++) - if (!strcmp(familyname, cputype_core_file(j))) - { - cpu[totalcpu].family = j; - break; - } - } + set_cpu_context(device->machine->activecpu, device); + (*classheader->exit)(device); + device->machine->activecpu = NULL; } } +/*------------------------------------------------- + cpu_get_info_* - return information about a + live CPU +-------------------------------------------------*/ -/************************************* - * - * Set the disassembly override proc - * - *************************************/ - -void cpu_set_dasm_override(const device_config *cpu, cpu_disassemble_func dasm_override) +INT64 cpu_get_info_int(const device_config *device, UINT32 state) { - cpuintrf_data *cpudata = cpu->classtoken; - cpudata->dasm_override = dasm_override; -} - - - -/************************************* - * - * Initialize a single CPU - * - *************************************/ - -int cpuintrf_init_cpu(int cpunum, cpu_type cputype, int clock, const void *config, cpu_irq_callback irqcallback) -{ - cpuintrf_data *cpudata = &cpu[cpunum]; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - /* create a fake device for the CPU */ - cpudata->device = auto_malloc(sizeof(*cpudata->device) + strlen(Machine->config->cpu[cpunum].tag)); - memset(cpudata->device, 0, sizeof(*cpudata->device)); - strcpy(cpudata->device->tag, Machine->config->cpu[cpunum].tag); - cpudata->device->type = (device_type)cputype; - cpudata->device->class = DEVICE_CLASS_CPU_CHIP; - cpudata->device->static_config = config; - cpudata->device->started = TRUE; - cpudata->device->machine = Machine; - cpudata->device->region = memory_region(Machine, cpudata->device->tag); - cpudata->device->regionbytes = memory_region_length(Machine, cpudata->device->tag); - - /* allocate a context token */ - cpudata->device->token = auto_malloc(cpudata->intf.context_size); - memset(cpudata->device->token, 0, cpudata->intf.context_size); - - /* set up the class token */ - cpudata->device->classtoken = &cpu[cpunum]; - - /* put a pointer to the device in the machine */ - Machine->cpu[cpunum] = cpudata->device; - - /* initialize the CPU and stash the context */ - Machine->activecpu = Machine->cpu[cpunum]; - activecpunum = cpunum; - (*cpudata->intf.init)(cpudata->device, cpunum, clock, irqcallback); - (*cpudata->intf.get_context)(cpudata->device->token); - Machine->activecpu = NULL; - activecpunum = -1; - - /* get the instruction count pointer */ - info.icount = NULL; - (*cpudata->intf.get_info)(cpudata->device, CPUINFO_PTR_INSTRUCTION_COUNTER, &info); - cpudata->icount = info.icount; - return 0; -} - - - -/************************************* - * - * Exit/free a single CPU - * - *************************************/ - -void cpuintrf_exit_cpu(int cpunum) -{ - cpuintrf_data *cpudata = &cpu[cpunum]; - - /* if the CPU core defines an exit function, call it now */ - if (cpudata->intf.exit) - { - /* switch contexts to the CPU during the exit */ - cpu_push_context(cpu->device); - (*cpudata->intf.exit)(cpu->device); - cpu_pop_context(); - } -} - - - -/************************************* - * - * Interfaces to the active CPU - * - *************************************/ - -/*-------------------------- - Adjust/get icount ---------------------------*/ - -void activecpu_adjust_icount(int delta) -{ - VERIFY_ACTIVECPU(activecpu_adjust_icount); - *cpu[activecpunum].icount += delta; -} - - -int activecpu_get_icount(void) -{ - VERIFY_ACTIVECPU(activecpu_get_icount); - return *cpu[activecpunum].icount; -} - - -/*-------------------------- - Reset banking pointers ---------------------------*/ - -void activecpu_reset_banking(void) -{ - VERIFY_ACTIVECPU(activecpu_reset_banking); - memory_set_opbase(cpu_get_physical_pc_byte(Machine->activecpu)); -} - - -/************************************* - * - * Interfaces to a specific CPU - * - *************************************/ - -/*-------------------------- - Get info accessors ---------------------------*/ - -INT64 cpu_get_info_int(const device_config *cpu, UINT32 state) -{ - cpuintrf_data *cpudata = cpu->classtoken; - cpuinfo info; - - VERIFY_CPU(cpu_get_info_int); - cpu_push_context(cpu); + cpu_push_context(device); info.i = 0; - (*cpudata->intf.get_info)(cpu, state, &info); + (*classheader->get_info)(device, state, &info); cpu_pop_context(); return info.i; } -void *cpu_get_info_ptr(const device_config *cpu, UINT32 state) +void *cpu_get_info_ptr(const device_config *device, UINT32 state) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - VERIFY_CPU(cpu_get_info_ptr); - cpu_push_context(cpu); + cpu_push_context(device); info.p = NULL; - (*cpudata->intf.get_info)(cpu, state, &info); + (*classheader->get_info)(device, state, &info); cpu_pop_context(); return info.p; } -genf *cpu_get_info_fct(const device_config *cpu, UINT32 state) +genf *cpu_get_info_fct(const device_config *device, UINT32 state) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - VERIFY_CPU(cpu_get_info_fct); - cpu_push_context(cpu); + cpu_push_context(device); info.f = NULL; - (*cpudata->intf.get_info)(cpu, state, &info); + (*classheader->get_info)(device, state, &info); cpu_pop_context(); return info.f; } -const char *cpu_get_info_string(const device_config *cpu, UINT32 state) +const char *cpu_get_info_string(const device_config *device, UINT32 state) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - VERIFY_CPU(cpu_get_info_string); - cpu_push_context(cpu); - info.s = cpuintrf_temp_str(); - (*cpudata->intf.get_info)(cpu, state, &info); + cpu_push_context(device); + info.s = get_temp_string_buffer(); + (*classheader->get_info)(device, state, &info); cpu_pop_context(); return info.s; } -/*-------------------------- - Set info accessors ---------------------------*/ +/*------------------------------------------------- + cpu_set_info_* - set information about a + live CPU +-------------------------------------------------*/ -void cpu_set_info_int(const device_config *cpu, UINT32 state, INT64 data) +void cpu_set_info_int(const device_config *device, UINT32 state, INT64 data) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - VERIFY_CPU(cpu_set_info_int); info.i = data; - cpu_push_context(cpu); - (*cpudata->intf.set_info)(cpu, state, &info); + cpu_push_context(device); + (*classheader->set_info)(device, state, &info); cpu_pop_context(); } -void cpu_set_info_ptr(const device_config *cpu, UINT32 state, void *data) +void cpu_set_info_ptr(const device_config *device, UINT32 state, void *data) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - VERIFY_CPU(cpu_set_info_ptr); info.p = data; - cpu_push_context(cpu); - (*cpudata->intf.set_info)(cpu, state, &info); + cpu_push_context(device); + (*classheader->set_info)(device, state, &info); cpu_pop_context(); } -void cpu_set_info_fct(const device_config *cpu, UINT32 state, genf *data) +void cpu_set_info_fct(const device_config *device, UINT32 state, genf *data) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); cpuinfo info; - VERIFY_CPU(cpu_set_info_ptr); info.f = data; - cpu_push_context(cpu); - (*cpudata->intf.set_info)(cpu, state, &info); + cpu_push_context(device); + (*classheader->set_info)(device, state, &info); cpu_pop_context(); } -/*-------------------------- - Execute ---------------------------*/ -int cpu_execute(const device_config *cpu, int cycles) +/*------------------------------------------------- + cpu_execute - execute the requested cycles on + a given CPU +-------------------------------------------------*/ + +int cpu_execute(const device_config *device, int cycles) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); int ran; - VERIFY_CPU(cpu_execute); - cpu_push_context(cpu); - executingcpu = cpu; - executingcpunum = cpudata->index; - memory_set_opbase(cpu_get_physical_pc_byte(cpu)); - ran = (*cpudata->intf.execute)(cpu, cycles); - executingcpu = NULL; - executingcpunum = -1; + cpu_push_context(device); + memory_set_opbase(cpu_get_physical_pc_byte(device)); + ran = (*classheader->execute)(device, cycles); cpu_pop_context(); return ran; } -/*-------------------------- - Reset and set IRQ ack ---------------------------*/ +/*------------------------------------------------- + cpu_reset - signal a reset for a given CPU +-------------------------------------------------*/ -void cpu_reset(const device_config *cpu) +void cpu_reset(const device_config *device) { - cpuintrf_data *cpudata = cpu->classtoken; + cpu_class_header *classheader = get_safe_classheader(device); - VERIFY_CPU(cpu_reset); - cpu_push_context(cpu); + cpu_push_context(device); memory_set_opbase(0); - (*cpudata->intf.reset)(cpu); + (*classheader->reset)(device); cpu_pop_context(); } -/*-------------------------- - Read a byte ---------------------------*/ +/*------------------------------------------------- + cpu_read_byte - read a byte from another CPU's + memory space +-------------------------------------------------*/ -UINT8 cpu_read_byte(const device_config *cpu, offs_t address) +UINT8 cpu_read_byte(const device_config *device, offs_t address) { - int result; + UINT8 result; - VERIFY_CPU(cpu_read_byte); - cpu_push_context(cpu); + cpu_push_context(device); result = program_read_byte(address); cpu_pop_context(); return result; } -/*-------------------------- - Write a byte ---------------------------*/ +/*------------------------------------------------- + cpu_write_byte - write a byte to another CPU's + memory space +-------------------------------------------------*/ -void cpu_write_byte(const device_config *cpu, offs_t address, UINT8 data) +void cpu_write_byte(const device_config *device, offs_t address, UINT8 data) { - VERIFY_CPU(cpu_write_byte); - - cpu_push_context(cpu); + cpu_push_context(device); program_write_byte(address, data); cpu_pop_context(); } -/*-------------------------- - Get/set PC ---------------------------*/ +/*------------------------------------------------- + cpu_get_physical_pc_byte - return the PC, + corrected to a byte offset and translated to + physical space, on a given CPU +-------------------------------------------------*/ -offs_t cpu_get_physical_pc_byte(const device_config *cpu) +offs_t cpu_get_physical_pc_byte(const device_config *device) { - cpuintrf_data *cpudata = cpu->classtoken; offs_t pc; - int shift; - VERIFY_CPU(cpu_get_physical_pc_byte); - shift = cpudata->intf.address_shift; - cpu_push_context(cpu); - pc = cpu_get_info_int(cpu, CPUINFO_INT_PC); - if (shift < 0) - pc <<= -shift; - else - pc >>= shift; - if (cpudata->intf.translate != NULL) - (cpudata->intf.translate)(cpu, ADDRESS_SPACE_PROGRAM, TRANSLATE_FETCH, &pc); + cpu_push_context(device); + pc = cpu_address_to_byte(device, ADDRESS_SPACE_PROGRAM, cpu_get_info_int(device, CPUINFO_INT_PC)); + pc = cpu_address_physical(device, ADDRESS_SPACE_PROGRAM, TRANSLATE_FETCH, pc); cpu_pop_context(); return pc; } -void cpu_set_opbase(const device_config *cpu, unsigned val) -{ - VERIFY_CPU(cpu_set_opbase); +/*------------------------------------------------- + cpu_set_opbase - update the banking on a given + CPU +-------------------------------------------------*/ - cpu_push_context(cpu); +void cpu_set_opbase(const device_config *device, unsigned val) +{ + cpu_push_context(device); memory_set_opbase(val); cpu_pop_context(); } -/*-------------------------- - Disassembly ---------------------------*/ +/*------------------------------------------------- + cpu_dasm - disassemble a line at a given PC + on a given CPU +-------------------------------------------------*/ -offs_t cpu_dasm(const device_config *cpu, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram) +offs_t cpu_dasm(const device_config *device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram) { - cpuintrf_data *cpudata = cpu->classtoken; - offs_t result; + cpu_class_header *classheader = get_safe_classheader(device); + offs_t result = 0; - VERIFY_CPU(cpu_dasm); - cpu_push_context(cpu); + cpu_push_context(device); /* check for disassembler override */ - if (cpudata->dasm_override != NULL) - { - result = (*cpudata->dasm_override)(buffer, pc, oprom, opram); - if (result != 0) - return result; - } + if (classheader->dasm_override != NULL) + result = (*classheader->dasm_override)(buffer, pc, oprom, opram); - if (cpudata->intf.disassemble != NULL) - result = (*cpudata->intf.disassemble)(buffer, pc, oprom, opram); + /* if we have a disassembler, run it */ + if (result == 0 && classheader->disassemble != NULL) + result = (*classheader->disassemble)(buffer, pc, oprom, opram); - else + /* if we still have nothing, output vanilla bytes */ + if (result == 0) { - /* if no disassembler present, dump vanilla bytes */ - switch (cpu_get_min_opcode_bytes(cpu)) + result = cpu_get_min_opcode_bytes(device); + switch (result) { case 1: default: - sprintf(buffer, "$%02X", (unsigned) *((UINT8 *) oprom)); - result = 1; + sprintf(buffer, "$%02X", *(UINT8 *)oprom); break; case 2: - sprintf(buffer, "$%04X", (unsigned) *((UINT16 *) oprom)); - result = 2; + sprintf(buffer, "$%04X", *(UINT16 *)oprom); break; case 4: - sprintf(buffer, "$%08X", (unsigned) *((UINT32 *) oprom)); - result = 4; + sprintf(buffer, "$%08X", *(UINT32 *)oprom); + break; + + case 8: + sprintf(buffer, "$%08X%08X", (UINT32)(*(UINT64 *)oprom >> 32), (UINT32)(*(UINT64 *)oprom >> 0)); break; } } @@ -1534,10 +1384,9 @@ offs_t cpu_dasm(const device_config *cpu, char *buffer, offs_t pc, const UINT8 * assert((result & DASMFLAG_LENGTHMASK) != 0); #ifdef MAME_DEBUG { - int shift = cpu_get_addrbus_shift(cpu, ADDRESS_SPACE_PROGRAM); - int bytes = (shift < 0) ? ((result & DASMFLAG_LENGTHMASK) << -shift) : ((result & DASMFLAG_LENGTHMASK) >> shift); - assert(bytes >= cpu_get_min_opcode_bytes(cpu)); - assert(bytes <= cpu_get_max_opcode_bytes(cpu)); + int bytes = cpu_address_to_byte(device, ADDRESS_SPACE_PROGRAM, result & DASMFLAG_LENGTHMASK); + assert(bytes >= cpu_get_min_opcode_bytes(device)); + assert(bytes <= cpu_get_max_opcode_bytes(device)); (void) bytes; /* appease compiler */ } #endif @@ -1547,64 +1396,89 @@ offs_t cpu_dasm(const device_config *cpu, char *buffer, offs_t pc, const UINT8 * } +/*------------------------------------------------- + cpu_set_dasm_override - set a dasm override + handler +-------------------------------------------------*/ -/************************************* - * - * Interfaces to a specific CPU type - * - *************************************/ +void cpu_set_dasm_override(const device_config *device, cpu_disassemble_func dasm_override) +{ + cpu_class_header *classheader = get_safe_classheader(device); + classheader->dasm_override = dasm_override; +} -/*-------------------------- - Get info accessors ---------------------------*/ + + +/*************************************************************************** + CPU TYPE ACCESSORS +***************************************************************************/ + +/*------------------------------------------------- + cputype_get_header_template - return a header + template for a given CPU type +-------------------------------------------------*/ + +const cpu_class_header *cputype_get_header_template(cpu_type cputype) +{ + assert(cputype >= 0 && cputype < CPU_COUNT); + return &cpu_type_header[cputype]; +} + + +/*------------------------------------------------- + cputype_get_info_* - return information about a + given CPU type +-------------------------------------------------*/ INT64 cputype_get_info_int(cpu_type cputype, UINT32 state) { + cpu_class_header *classheader = &cpu_type_header[cputype]; cpuinfo info; - VERIFY_CPUTYPE(cputype_get_info_int); + assert(cputype >= 0 && cputype < CPU_COUNT); info.i = 0; - (*cpuintrf[cputype].get_info)(NULL, state, &info); + (*classheader->get_info)(NULL, state, &info); return info.i; } void *cputype_get_info_ptr(cpu_type cputype, UINT32 state) { + cpu_class_header *classheader = &cpu_type_header[cputype]; cpuinfo info; - VERIFY_CPUTYPE(cputype_get_info_ptr); + assert(cputype >= 0 && cputype < CPU_COUNT); info.p = NULL; - (*cpuintrf[cputype].get_info)(NULL, state, &info); + (*classheader->get_info)(NULL, state, &info); return info.p; } genf *cputype_get_info_fct(cpu_type cputype, UINT32 state) { + cpu_class_header *classheader = &cpu_type_header[cputype]; cpuinfo info; - VERIFY_CPUTYPE(cputype_get_info_fct); + assert(cputype >= 0 && cputype < CPU_COUNT); info.f = NULL; - (*cpuintrf[cputype].get_info)(NULL, state, &info); + (*classheader->get_info)(NULL, state, &info); return info.f; } const char *cputype_get_info_string(cpu_type cputype, UINT32 state) { + cpu_class_header *classheader = &cpu_type_header[cputype]; cpuinfo info; - VERIFY_CPUTYPE(cputype_get_info_string); - info.s = cpuintrf_temp_str(); - (*cpuintrf[cputype].get_info)(NULL, state, &info); + assert(cputype >= 0 && cputype < CPU_COUNT); + info.s = get_temp_string_buffer(); + (*classheader->get_info)(NULL, state, &info); return info.s; } -/************************************* - * - * Dummy CPU definition - * - *************************************/ +/*************************************************************************** + DUMMY CPU DEFINITION +***************************************************************************/ struct dummy_context { diff --git a/src/emu/cpuintrf.h b/src/emu/cpuintrf.h index b3927b75853..00aa3ef3322 100644 --- a/src/emu/cpuintrf.h +++ b/src/emu/cpuintrf.h @@ -15,8 +15,7 @@ #define __CPUINTRF_H__ #include "devintrf.h" -#include "cpuint.h" -#include "cpuexec.h" +#include "memory.h" #include "watchdog.h" #include "state.h" @@ -26,6 +25,7 @@ ***************************************************************************/ #define MAX_CPU 8 +#define MAX_INPUT_EVENTS 32 /* Interrupt line constants */ @@ -114,7 +114,7 @@ enum CPUINFO_PTR_SET_INFO = CPUINFO_PTR_FIRST, /* R/O: void (*set_info)(UINT32 state, INT64 data, void *ptr) */ CPUINFO_PTR_GET_CONTEXT, /* R/O: void (*get_context)(void *buffer) */ CPUINFO_PTR_SET_CONTEXT, /* R/O: void (*set_context)(void *buffer) */ - CPUINFO_PTR_INIT, /* R/O: void (*init)(int index, int clock, int (*irqcallback)(int)) */ + CPUINFO_PTR_INIT, /* R/O: void (*init)(int index, int clock, int (*irqcallback)(const device_config *device, int)) */ CPUINFO_PTR_RESET, /* R/O: void (*reset)(void) */ CPUINFO_PTR_EXIT, /* R/O: void (*exit)(void) */ CPUINFO_PTR_EXECUTE, /* R/O: int (*execute)(int cycles) */ @@ -201,11 +201,242 @@ enum #define DASMFLAG_STEP_OVER_EXTRA(x) ((x) << DASMFLAG_OVERINSTSHIFT) +/* list of all possible CPUs we might be compiled with */ +enum _cpu_type +{ + CPU_DUMMY, + CPU_Z80, + CPU_Z180, + CPU_8080, + CPU_8085A, + CPU_M6502, + CPU_M65C02, + CPU_M65SC02, + CPU_M65CE02, + CPU_M6509, + CPU_M6510, + CPU_M6510T, + CPU_M7501, + CPU_M8502, + CPU_N2A03, + CPU_DECO16, + CPU_M4510, + CPU_H6280, + CPU_I8086, + CPU_I8088, + CPU_I80186, + CPU_I80188, + CPU_I80286, + CPU_V20, + CPU_V25, + CPU_V30, + CPU_V33, + CPU_V35, + CPU_V60, + CPU_V70, + CPU_I8035, + CPU_I8048, + CPU_I8648, + CPU_I8748, + CPU_MB8884, + CPU_N7751, + CPU_I8039, + CPU_I8049, + CPU_I8749, + CPU_M58715, + CPU_I8041, + CPU_I8741, + CPU_I8042, + CPU_I8242, + CPU_I8742, + CPU_I8031, + CPU_I8032, + CPU_I8051, + CPU_I8052, + CPU_I8751, + CPU_I8752, + CPU_I80C31, + CPU_I80C32, + CPU_I80C51, + CPU_I80C52, + CPU_I87C51, + CPU_I87C52, + CPU_AT89C4051, + CPU_DS5002FP, + CPU_M6800, + CPU_M6801, + CPU_M6802, + CPU_M6803, + CPU_M6808, + CPU_HD63701, + CPU_NSC8105, + CPU_M6805, + CPU_M68705, + CPU_HD63705, + CPU_HD6309, + CPU_M6809, + CPU_M6809E, + CPU_KONAMI, + CPU_M68000, + CPU_M68008, + CPU_M68010, + CPU_M68EC020, + CPU_M68020, + CPU_M68040, + CPU_T11, + CPU_S2650, + CPU_TMS34010, + CPU_TMS34020, + CPU_TI990_10, + CPU_TMS9900, + CPU_TMS9940, + CPU_TMS9980, + CPU_TMS9985, + CPU_TMS9989, + CPU_TMS9995, + CPU_TMS99100, + CPU_TMS99105A, + CPU_TMS99110A, + CPU_TMS99000, + CPU_Z8000, + CPU_TMS32010, + CPU_TMS32025, + CPU_TMS32026, + CPU_TMS32031, + CPU_TMS32032, + CPU_TMS32051, + CPU_CCPU, + CPU_ADSP2100, + CPU_ADSP2101, + CPU_ADSP2104, + CPU_ADSP2105, + CPU_ADSP2115, + CPU_ADSP2181, + CPU_PSXCPU, + CPU_ASAP, + CPU_UPD7810, + CPU_UPD7807, + CPU_UPD7801, + CPU_UPD78C05, + CPU_UPD78C06, + CPU_JAGUARGPU, + CPU_JAGUARDSP, + CPU_CQUESTSND, + CPU_CQUESTROT, + CPU_CQUESTLIN, + CPU_R3000BE, + CPU_R3000LE, + CPU_R3041BE, + CPU_R3041LE, + CPU_R4600BE, + CPU_R4600LE, + CPU_R4650BE, + CPU_R4650LE, + CPU_R4700BE, + CPU_R4700LE, + CPU_R5000BE, + CPU_R5000LE, + CPU_QED5271BE, + CPU_QED5271LE, + CPU_RM7000BE, + CPU_RM7000LE, + CPU_ARM, + CPU_ARM7, + CPU_SH1, + CPU_SH2, + CPU_SH4, + CPU_DSP32C, + CPU_PIC16C54, + CPU_PIC16C55, + CPU_PIC16C56, + CPU_PIC16C57, + CPU_PIC16C58, + CPU_G65816, + CPU_SPC700, + CPU_E116T, + CPU_E116XT, + CPU_E116XS, + CPU_E116XSR, + CPU_E132N, + CPU_E132T, + CPU_E132XN, + CPU_E132XT, + CPU_E132XS, + CPU_E132XSR, + CPU_GMS30C2116, + CPU_GMS30C2132, + CPU_GMS30C2216, + CPU_GMS30C2232, + CPU_I386, + CPU_I486, + CPU_PENTIUM, + CPU_MEDIAGX, + CPU_I960, + CPU_H83002, + CPU_H83007, + CPU_H83044, + CPU_V810, + CPU_M37702, + CPU_M37710, + CPU_PPC403GA, + CPU_PPC403GCX, + CPU_PPC601, + CPU_PPC602, + CPU_PPC603, + CPU_PPC603E, + CPU_PPC603R, + CPU_PPC604, + CPU_MPC8240, + CPU_SE3208, + CPU_MC68HC11, + CPU_ADSP21062, + CPU_DSP56156, + CPU_RSP, + CPU_ALPHA8201, + CPU_ALPHA8301, + CPU_CDP1802, + CPU_COP420, + CPU_COP421, + CPU_COP410, + CPU_COP411, + CPU_TMP90840, + CPU_TMP90841, + CPU_TMP91640, + CPU_TMP91641, + CPU_APEXC, + CPU_CP1610, + CPU_F8, + CPU_LH5801, + CPU_PDP1, + CPU_SATURN, + CPU_SC61860, + CPU_TX0_64KW, + CPU_TX0_8KW, + CPU_LR35902, + CPU_TMS7000, + CPU_TMS7000_EXL, + CPU_SM8500, + CPU_V30MZ, + CPU_MB8841, + CPU_MB8842, + CPU_MB8843, + CPU_MB8844, + CPU_MB86233, + CPU_SSP1601, + CPU_MINX, + CPU_CXD8661R, + CPU_COUNT +}; +typedef enum _cpu_type cpu_type; + + /*************************************************************************** MACROS ***************************************************************************/ +#define IRQ_CALLBACK(func) int func(const device_config *device, int irqline) + #define CPU_GET_INFO_NAME(name) cpu_get_info_##name #define CPU_GET_INFO(name) void CPU_GET_INFO_NAME(name)(const device_config *device, UINT32 state, cpuinfo *info) #define CPU_GET_INFO_CALL(name) CPU_GET_INFO_NAME(name)(device, state, info) @@ -271,6 +502,64 @@ enum #define CPU_SET_CONTEXT_CALL(name) CPU_SET_CONTEXT_NAME(name)(buffer) +/* helpers for accessing common CPU state */ +#define cpu_get_context_size(cpu) cpu_get_info_int(cpu, CPUINFO_INT_CONTEXT_SIZE) +#define cpu_get_input_lines(cpu) cpu_get_info_int(cpu, CPUINFO_INT_INPUT_LINES) +#define cpu_get_output_lines(cpu) cpu_get_info_int(cpu, CPUINFO_INT_OUTPUT_LINES) +#define cpu_get_default_irq_vector(cpu) cpu_get_info_int(cpu, CPUINFO_INT_DEFAULT_IRQ_VECTOR) +#define cpu_get_endianness(cpu) cpu_get_info_int(cpu, CPUINFO_INT_ENDIANNESS) +#define cpu_get_clock_multiplier(cpu) cpu_get_info_int(cpu, CPUINFO_INT_CLOCK_MULTIPLIER) +#define cpu_get_clock_divider(cpu) cpu_get_info_int(cpu, CPUINFO_INT_CLOCK_DIVIDER) +#define cpu_get_min_opcode_bytes(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MIN_INSTRUCTION_BYTES) +#define cpu_get_max_opcode_bytes(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MAX_INSTRUCTION_BYTES) +#define cpu_get_min_cycles(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MIN_CYCLES) +#define cpu_get_max_cycles(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MAX_CYCLES) +#define cpu_get_databus_width(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_DATABUS_WIDTH + (space)) +#define cpu_get_addrbus_width(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_ADDRBUS_WIDTH + (space)) +#define cpu_get_addrbus_shift(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_ADDRBUS_SHIFT + (space)) +#define cpu_get_logaddr_width(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_LOGADDR_WIDTH + (space)) +#define cpu_get_page_shift(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_PAGE_SHIFT + (space)) +#define cpu_get_reg(cpu, reg) cpu_get_info_int(cpu, CPUINFO_INT_REGISTER + (reg)) +#define cpu_get_previouspc(cpu) ((offs_t)cpu_get_reg(cpu, REG_PREVIOUSPC)) +#define cpu_get_pc(cpu) ((offs_t)cpu_get_reg(cpu, REG_PC)) +#define cpu_get_sp(cpu) cpu_get_reg(cpu, REG_SP) +#define cpu_get_icount_ptr(cpu) (int *)cpu_get_info_ptr(cpu, CPUINFO_PTR_INSTRUCTION_COUNTER) +#define cpu_get_debug_register_list(cpu) cpu_get_info_ptr(cpu, CPUINFO_PTR_DEBUG_REGISTER_LIST) +#define cpu_get_name(cpu) cpu_get_info_string(cpu, CPUINFO_STR_NAME) +#define cpu_get_core_family(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_FAMILY) +#define cpu_get_core_version(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_VERSION) +#define cpu_get_core_file(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_FILE) +#define cpu_get_core_credits(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_CREDITS) +#define cpu_get_flags_string(cpu) cpu_get_info_string(cpu, CPUINFO_STR_FLAGS) +#define cpu_get_irq_string(cpu, irq) cpu_get_info_string(cpu, CPUINFO_STR_IRQ_STATE + (irq)) +#define cpu_get_reg_string(cpu, reg) cpu_get_info_string(cpu, CPUINFO_STR_REGISTER + (reg)) +#define cpu_set_reg(cpu, reg, val) cpu_set_info_int(cpu, CPUINFO_INT_REGISTER + (reg), (val)) + + +/* helpers for accessing common CPU type state */ +#define cputype_get_context_size(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CONTEXT_SIZE) +#define cputype_get_input_lines(cputype) cputype_get_info_int(cputype, CPUINFO_INT_INPUT_LINES) +#define cputype_get_output_lines(cputype) cputype_get_info_int(cputype, CPUINFO_INT_OUTPUT_LINES) +#define cputype_get_default_irq_vector(cputype) cputype_get_info_int(cputype, CPUINFO_INT_DEFAULT_IRQ_VECTOR) +#define cputype_get_endianness(cputype) cputype_get_info_int(cputype, CPUINFO_INT_ENDIANNESS) +#define cputype_get_clock_multiplier(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CLOCK_MULTIPLIER) +#define cputype_get_clock_divider(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CLOCK_DIVIDER) +#define cputype_get_min_instruction_bytes(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MIN_INSTRUCTION_BYTES) +#define cputype_get_max_instruction_bytes(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MAX_INSTRUCTION_BYTES) +#define cputype_get_min_cycles(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MIN_CYCLES) +#define cputype_get_max_cycles(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MAX_CYCLES) +#define cputype_get_databus_width(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_DATABUS_WIDTH + (space)) +#define cputype_get_addrbus_width(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_ADDRBUS_WIDTH + (space)) +#define cputype_get_addrbus_shift(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_ADDRBUS_SHIFT + (space)) +#define cputype_get_page_shift(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_PAGE_SHIFT + (space)) +#define cputype_get_debug_register_list(cputype) cputype_get_info_ptr(cputype, CPUINFO_PTR_DEBUG_REGISTER_LIST) +#define cputype_get_name(cputype) cputype_get_info_string(cputype, CPUINFO_STR_NAME) +#define cputype_get_core_family(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_FAMILY) +#define cputype_get_core_version(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_VERSION) +#define cputype_get_core_file(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_FILE) +#define cputype_get_core_credits(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_CREDITS) + + /*************************************************************************** TYPE DEFINITIONS @@ -333,9 +622,13 @@ union _cpuinfo }; -typedef struct _cpu_interface cpu_interface; -struct _cpu_interface +/* partial data hanging off of the classtoken */ +typedef struct _cpu_class_header cpu_class_header; +struct _cpu_class_header { + int index; /* index of this CPU */ + cpu_type cputype; /* type index of this CPU */ + /* table of core functions */ cpu_get_info_func get_info; cpu_set_info_func set_info; @@ -348,61 +641,59 @@ struct _cpu_interface cpu_burn_func burn; cpu_translate_func translate; cpu_disassemble_func disassemble; + cpu_disassemble_func dasm_override; - /* other info */ - size_t context_size; - INT8 address_shift; + /* other frequently-needed information */ + INT8 address_shift[ADDRESS_SPACES]; + UINT32 clock_divider; + UINT32 clock_multiplier; }; /*************************************************************************** - CORE CPU INTERFACE FUNCTIONS + FUNCTION PROTOTYPES ***************************************************************************/ + +/* ----- global management ----- */ + /* reset the internal CPU tracking */ void cpuintrf_init(running_machine *machine); -/* set up the interface for one CPU of a given type */ -int cpuintrf_init_cpu(int cpunum, cpu_type cputype, int clock, const void *config, cpu_irq_callback irqcallback); - -/* clean up the interface for one CPU */ -void cpuintrf_exit_cpu(int cpunum); - -/* remember the previous context and set a new one */ -void cpu_push_context(const device_config *cpu); - -/* restore the previous context */ -void cpu_pop_context(void); - /* circular string buffer */ char *cpuintrf_temp_str(void); -/* set the dasm override handler */ -void cpu_set_dasm_override(const device_config *cpu, cpu_disassemble_func dasm_override); -/* apply a +/- to the current icount */ -void activecpu_adjust_icount(int delta); -/* return the current icount */ -int activecpu_get_icount(void); +/* ----- live context control ----- */ -/* ensure banking is reset properly */ -void activecpu_reset_banking(void); +/* remember the current context and push a new one on the stack */ +void cpu_push_context(const device_config *cpu); + +/* restore the previously saved context */ +void cpu_pop_context(void); + +/* return the index of the active CPU (deprecated soon) */ +int cpunum_get_active(void); -/*************************************************************************** - CORE CPU ACCCESSORS -***************************************************************************/ +/* ----- live CPU accessors ----- */ -/* get info accessors */ +/* initialize a live CPU */ +void cpu_init(const device_config *cpu, int index, int clock, cpu_irq_callback irqcallback); + +/* free a live CPU */ +void cpu_exit(const device_config *cpu); + +/* return information about a live CPU */ INT64 cpu_get_info_int(const device_config *cpu, UINT32 state); void *cpu_get_info_ptr(const device_config *cpu, UINT32 state); genf *cpu_get_info_fct(const device_config *cpu, UINT32 state); const char *cpu_get_info_string(const device_config *cpu, UINT32 state); -/* set info accessors */ +/* set information about a live CPU */ void cpu_set_info_int(const device_config *cpu, UINT32 state, INT64 data); void cpu_set_info_ptr(const device_config *cpu, UINT32 state, void *data); void cpu_set_info_fct(const device_config *cpu, UINT32 state, genf *data); @@ -419,7 +710,7 @@ UINT8 cpu_read_byte(const device_config *cpu, offs_t address); /* write a byte from another CPU's memory space */ void cpu_write_byte(const device_config *cpu, offs_t address, UINT8 data); -/* return the PC, corrected to a byte offset, on a given CPU */ +/* return the PC, corrected to a byte offset and translated to physical space, on a given CPU */ offs_t cpu_get_physical_pc_byte(const device_config *cpu); /* update the banking on a given CPU */ @@ -428,123 +719,122 @@ void cpu_set_opbase(const device_config *cpu, offs_t val); /* disassemble a line at a given PC on a given CPU */ offs_t cpu_dasm(const device_config *cpu, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram); -#define cpu_get_context_size(cpu) cpu_get_info_int(cpu, CPUINFO_INT_CONTEXT_SIZE) -#define cpu_get_input_lines(cpu) cpu_get_info_int(cpu, CPUINFO_INT_INPUT_LINES) -#define cpu_get_output_lines(cpu) cpu_get_info_int(cpu, CPUINFO_INT_OUTPUT_LINES) -#define cpu_get_default_irq_vector(cpu) cpu_get_info_int(cpu, CPUINFO_INT_DEFAULT_IRQ_VECTOR) -#define cpu_get_endianness(cpu) cpu_get_info_int(cpu, CPUINFO_INT_ENDIANNESS) -#define cpu_get_clock_multiplier(cpu) cpu_get_info_int(cpu, CPUINFO_INT_CLOCK_MULTIPLIER) -#define cpu_get_clock_divider(cpu) cpu_get_info_int(cpu, CPUINFO_INT_CLOCK_DIVIDER) -#define cpu_get_min_opcode_bytes(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MIN_INSTRUCTION_BYTES) -#define cpu_get_max_opcode_bytes(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MAX_INSTRUCTION_BYTES) -#define cpu_get_min_cycles(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MIN_CYCLES) -#define cpu_get_max_cycles(cpu) cpu_get_info_int(cpu, CPUINFO_INT_MAX_CYCLES) -#define cpu_get_databus_width(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_DATABUS_WIDTH + (space)) -#define cpu_get_addrbus_width(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_ADDRBUS_WIDTH + (space)) -#define cpu_get_addrbus_shift(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_ADDRBUS_SHIFT + (space)) -#define cpu_get_logaddr_width(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_LOGADDR_WIDTH + (space)) -#define cpu_get_page_shift(cpu, space) cpu_get_info_int(cpu, CPUINFO_INT_PAGE_SHIFT + (space)) -#define cpu_get_reg(cpu, reg) cpu_get_info_int(cpu, CPUINFO_INT_REGISTER + (reg)) -#define cpu_get_previouspc(cpu) ((offs_t)cpu_get_info_int(cpu, REG_PREVIOUSPC)) -#define cpu_get_pc(cpu) ((offs_t)cpu_get_reg(cpu, REG_PC)) -#define cpu_get_sp(cpu) cpu_get_reg(cpu, REG_SP) -#define cpu_get_debug_register_list(cpu) cpu_get_info_ptr(cpu, CPUINFO_PTR_DEBUG_REGISTER_LIST) -#define cpu_get_name(cpu) cpu_get_info_string(cpu, CPUINFO_STR_NAME) -#define cpu_get_core_family(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_FAMILY) -#define cpu_get_core_version(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_VERSION) -#define cpu_get_core_file(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_FILE) -#define cpu_get_core_credits(cpu) cpu_get_info_string(cpu, CPUINFO_STR_CORE_CREDITS) -#define cpu_get_flags_string(cpu) cpu_get_info_string(cpu, CPUINFO_STR_FLAGS) -#define cpu_get_irq_string(cpu, irq) cpu_get_info_string(cpu, CPUINFO_STR_IRQ_STATE + (irq)) -#define cpu_get_reg_string(cpu, reg) cpu_get_info_string(cpu, CPUINFO_STR_REGISTER + (reg)) - -#define cpu_set_reg(cpu, reg, val) cpu_set_info_int(cpu, CPUINFO_INT_REGISTER + (reg), (val)) +/* set a dasm override handler */ +void cpu_set_dasm_override(const device_config *cpu, cpu_disassemble_func dasm_override); -/*************************************************************************** - CPU TYPE ACCCESSORS -***************************************************************************/ +/* ----- CPU type accessors ----- */ -/* get info accessors */ +/* return a header template for a given CPU type */ +const cpu_class_header *cputype_get_header_template(cpu_type cputype); + +/* return information about a given CPU type */ INT64 cputype_get_info_int(cpu_type cputype, UINT32 state); void *cputype_get_info_ptr(cpu_type cputype, UINT32 state); genf *cputype_get_info_fct(cpu_type cputype, UINT32 state); const char *cputype_get_info_string(cpu_type cputype, UINT32 state); -#define cputype_context_size(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CONTEXT_SIZE) -#define cputype_input_lines(cputype) cputype_get_info_int(cputype, CPUINFO_INT_INPUT_LINES) -#define cputype_output_lines(cputype) cputype_get_info_int(cputype, CPUINFO_INT_OUTPUT_LINES) -#define cputype_default_irq_vector(cputype) cputype_get_info_int(cputype, CPUINFO_INT_DEFAULT_IRQ_VECTOR) -#define cputype_endianness(cputype) cputype_get_info_int(cputype, CPUINFO_INT_ENDIANNESS) -#define cputype_clock_multiplier(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CLOCK_MULTIPLIER) -#define cputype_clock_divider(cputype) cputype_get_info_int(cputype, CPUINFO_INT_CLOCK_DIVIDER) -#define cputype_min_instruction_bytes(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MIN_INSTRUCTION_BYTES) -#define cputype_max_instruction_bytes(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MAX_INSTRUCTION_BYTES) -#define cputype_min_cycles(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MIN_CYCLES) -#define cputype_max_cycles(cputype) cputype_get_info_int(cputype, CPUINFO_INT_MAX_CYCLES) -#define cputype_databus_width(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_DATABUS_WIDTH + (space)) -#define cputype_addrbus_width(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_ADDRBUS_WIDTH + (space)) -#define cputype_addrbus_shift(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_ADDRBUS_SHIFT + (space)) -#define cputype_page_shift(cputype, space) cputype_get_info_int(cputype, CPUINFO_INT_PAGE_SHIFT + (space)) -#define cputype_debug_register_list(cputype) cputype_get_info_ptr(cputype, CPUINFO_PTR_DEBUG_REGISTER_LIST) -#define cputype_name(cputype) cputype_get_info_string(cputype, CPUINFO_STR_NAME) -#define cputype_core_family(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_FAMILY) -#define cputype_core_version(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_VERSION) -#define cputype_core_file(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_FILE) -#define cputype_core_credits(cputype) cputype_get_info_string(cputype, CPUINFO_STR_CORE_CREDITS) /*************************************************************************** - CPU INTERFACE ACCESSORS + INLINE FUNCTIONS ***************************************************************************/ -/* return a pointer to the interface struct for a given CPU type */ -INLINE const cpu_interface *cputype_get_interface(cpu_type cputype) -{ - extern cpu_interface cpuintrf[]; - return &cpuintrf[cputype]; -} +/*------------------------------------------------- + safe_cpu_get_pc - return the current PC or ~0 + if the CPU is invalid +-------------------------------------------------*/ - -/* return the index of the active CPU */ -INLINE int cpunum_get_active(void) -{ - extern int activecpunum; - return activecpunum; -} - - -/* return a pointer to the executing CPU */ -INLINE const device_config *cpu_get_executing(void) -{ - extern const device_config *executingcpu; - return executingcpu; -} - - -/* return the index of the executing CPU */ -INLINE int cpunum_get_executing(void) -{ - extern int executingcpunum; - return executingcpunum; -} - - -/* return a the total number of registered CPUs */ -INLINE int cpu_gettotalcpu(void) -{ - extern int totalcpu; - return totalcpu; -} - - -/* return the current PC or ~0 if no CPU is active */ INLINE offs_t safe_cpu_get_pc(const device_config *cpu) { return (cpu != NULL) ? cpu_get_pc(cpu) : ~0; } +/*------------------------------------------------- + cpu_get_index - return the index of the + specified CPU (deprecated soon) +-------------------------------------------------*/ + +INLINE int cpu_get_index(const device_config *cpu) +{ + cpu_class_header *classheader = cpu->classtoken; + return classheader->index; +} + + +/*------------------------------------------------- + cpu_address_to_byte - convert an address in + the specified address space to a byte offset +-------------------------------------------------*/ + +INLINE offs_t cpu_address_to_byte(const device_config *cpu, int space, offs_t address) +{ + cpu_class_header *classheader = cpu->classtoken; + int shift = classheader->address_shift[space]; + return (shift < 0) ? (address << -shift) : (address >> shift); +} + + +/*------------------------------------------------- + cpu_address_to_byte_end - convert an address + in the specified address space to a byte + offset specifying the last byte covered by + the address +-------------------------------------------------*/ + +INLINE offs_t cpu_address_to_byte_end(const device_config *cpu, int space, offs_t address) +{ + cpu_class_header *classheader = cpu->classtoken; + int shift = classheader->address_shift[space]; + return (shift < 0) ? ((address << -shift) | ((1 << -shift) - 1)) : (address >> shift); +} + + +/*------------------------------------------------- + cpu_byte_to_address - convert a byte offset + to an address in the specified address space +-------------------------------------------------*/ + +INLINE offs_t cpu_byte_to_address(const device_config *cpu, int space, offs_t address) +{ + cpu_class_header *classheader = cpu->classtoken; + int shift = classheader->address_shift[space]; + return (shift < 0) ? (address >> -shift) : (address << shift); +} + + +/*------------------------------------------------- + cpu_byte_to_address_end - convert a byte offset + to an address in the specified address space + specifying the last address covered by the + byte +-------------------------------------------------*/ + +INLINE offs_t cpu_byte_to_address_end(const device_config *cpu, int space, offs_t address) +{ + cpu_class_header *classheader = cpu->classtoken; + int shift = classheader->address_shift[space]; + return (shift < 0) ? (address >> -shift) : ((address << shift) | ((1 << shift) - 1)); +} + + +/*------------------------------------------------- + cpu_address_physical - return the physical + address corresponding to the given logical + address +-------------------------------------------------*/ + +INLINE offs_t cpu_address_physical(const device_config *cpu, int space, int intention, offs_t address) +{ + cpu_class_header *classheader = cpu->classtoken; + if (classheader->translate != NULL) + (*classheader->translate)(cpu, space, intention, &address); + return address; +} + + + #endif /* __CPUINTRF_H__ */ diff --git a/src/emu/debug/debugcmd.c b/src/emu/debug/debugcmd.c index dec9d8bf375..8676db17b96 100644 --- a/src/emu/debug/debugcmd.c +++ b/src/emu/debug/debugcmd.c @@ -245,13 +245,14 @@ void debug_command_init(running_machine *machine) debug_console_register_command(machine, "hardreset", CMDFLAG_NONE, 0, 0, 1, execute_hardreset); /* ask all the CPUs if they would like to register functions or symbols */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - { - cpu_debug_init_func debug_init; - debug_init = (cpu_debug_init_func)cpu_get_info_fct(machine->cpu[cpunum], CPUINFO_PTR_DEBUG_INIT); - if (debug_init != NULL) - (*debug_init)(machine->cpu[cpunum]); - } + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) + { + cpu_debug_init_func debug_init; + debug_init = (cpu_debug_init_func)cpu_get_info_fct(machine->cpu[cpunum], CPUINFO_PTR_DEBUG_INIT); + if (debug_init != NULL) + (*debug_init)(machine->cpu[cpunum]); + } add_exit_callback(machine, debug_command_exit); @@ -271,8 +272,9 @@ static void debug_command_exit(running_machine *machine) int cpunum; /* turn off all traces */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - debug_cpu_trace(cpunum, NULL, 0, NULL); + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) + debug_cpu_trace(cpunum, NULL, 0, NULL); } @@ -766,7 +768,7 @@ static void execute_focus(running_machine *machine, int ref, int params, const c /* validate params */ if (!debug_command_parameter_number(param[0], &cpuwhich)) return; - if (cpuwhich >= cpu_gettotalcpu()) + if (cpuwhich >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpuwhich] == NULL) { debug_console_printf("Invalid CPU number!\n"); return; @@ -827,7 +829,7 @@ static void execute_ignore(running_machine *machine, int ref, int params, const { if (!debug_command_parameter_number(param[paramnum], &cpuwhich[paramnum])) return; - if (cpuwhich[paramnum] >= cpu_gettotalcpu()) + if (cpuwhich[paramnum] >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpuwhich[paramnum]] == NULL) { debug_console_printf("Invalid CPU number! (%d)\n", (int)cpuwhich[paramnum]); return; @@ -898,7 +900,7 @@ static void execute_observe(running_machine *machine, int ref, int params, const { if (!debug_command_parameter_number(param[paramnum], &cpuwhich[paramnum])) return; - if (cpuwhich[paramnum] >= cpu_gettotalcpu()) + if (cpuwhich[paramnum] >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpuwhich[paramnum]] == NULL) { debug_console_printf("Invalid CPU number! (%d)\n", (int)cpuwhich[paramnum]); return; @@ -1453,7 +1455,7 @@ static void execute_dump(running_machine *machine, int ref, int params, const ch return; /* further validation */ - if (cpunum >= cpu_gettotalcpu()) + if (cpunum >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpunum] == NULL) { debug_console_printf("Invalid CPU number!\n"); return; @@ -1620,7 +1622,7 @@ static void execute_find(running_machine *machine, int ref, int params, const ch return; /* further validation */ - if (cpunum >= cpu_gettotalcpu()) + if (cpunum >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpunum] == NULL) { debug_console_printf("Invalid CPU number!\n"); return; @@ -1726,7 +1728,7 @@ static void execute_dasm(running_machine *machine, int ref, int params, const ch return; /* further validation */ - if (cpunum >= cpu_gettotalcpu()) + if (cpunum >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpunum] == NULL) { debug_console_printf("Invalid CPU number!\n"); return; @@ -1872,7 +1874,7 @@ static void execute_trace_internal(running_machine *machine, int ref, int params /* further validation */ if (!mame_stricmp(filename, "off")) filename = NULL; - if (cpunum >= cpu_gettotalcpu()) + if (cpunum >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpunum] == NULL) { debug_console_printf("Invalid CPU number!\n"); return; @@ -1957,7 +1959,7 @@ static void execute_history(running_machine *machine, int ref, int params, const return; /* further validation */ - if (cpunum >= cpu_gettotalcpu()) + if (cpunum >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpunum] == NULL) { debug_console_printf("Invalid CPU number!\n"); return; @@ -2137,7 +2139,7 @@ static void execute_symlist(running_machine *machine, int ref, int params, const /* validate parameters */ if (params > 0 && !debug_command_parameter_number(param[0], &cpunum)) return; - if (cpunum != 100000 && cpunum >= cpu_gettotalcpu()) + if (cpunum != 100000 && (cpunum >= ARRAY_LENGTH(machine->cpu) || machine->cpu[cpunum] == NULL)) { debug_console_printf("Invalid CPU number!\n"); return; diff --git a/src/emu/debug/debugcmt.c b/src/emu/debug/debugcmt.c index 77986a77426..c5af8eceabc 100644 --- a/src/emu/debug/debugcmt.c +++ b/src/emu/debug/debugcmt.c @@ -103,11 +103,16 @@ static void debug_comment_free(void); int debug_comment_init(running_machine *machine) { - if (cpu_gettotalcpu() > 0) + int numcpu; + + for (numcpu = 0; numcpu < ARRAY_LENGTH(machine->cpu); numcpu++) + if (machine->cpu[numcpu] == NULL) + break; + if (numcpu > 0) { /* allocate enough comment groups for the total # of cpu's */ - debug_comments = (comment_group*) auto_malloc(cpu_gettotalcpu() * sizeof(comment_group)); - memset(debug_comments, 0, cpu_gettotalcpu() * sizeof(comment_group)); + debug_comments = (comment_group*) auto_malloc(numcpu * sizeof(comment_group)); + memset(debug_comments, 0, numcpu * sizeof(comment_group)); /* automatically load em up */ debug_comment_load(machine); @@ -287,8 +292,9 @@ UINT32 debug_comment_all_change_count(void) int i ; UINT32 retVal = 0; - for (i = 0; i < cpu_gettotalcpu(); i++) - retVal += debug_comments[i].change_count ; + for (i = 0; i < ARRAY_LENGTH(Machine->cpu); i++) + if (Machine->cpu[i] != NULL) + retVal += debug_comments[i].change_count ; return retVal; } @@ -404,25 +410,26 @@ int debug_comment_save(running_machine *machine) xml_set_attribute(systemnode, "name", machine->gamedrv->name); /* for each cpu */ - for (i = 0; i < cpu_gettotalcpu(); i++) - { - xml_data_node *curnode = xml_add_child(systemnode, "cpu", NULL); - if (!curnode) - goto error; - xml_set_attribute_int(curnode, "num", i); - - for (j = 0; j < debug_comments[i].comment_count; j++) + for (i = 0; i < ARRAY_LENGTH(machine->cpu); i++) + if (machine->cpu[i] != NULL) { - xml_data_node *datanode = xml_add_child(curnode, "comment", xml_normalize_string(debug_comments[i].comment_info[j]->text)); - if (!datanode) + xml_data_node *curnode = xml_add_child(systemnode, "cpu", NULL); + if (!curnode) goto error; - xml_set_attribute_int(datanode, "address", debug_comments[i].comment_info[j]->address); - xml_set_attribute_int(datanode, "color", debug_comments[i].comment_info[j]->color); - sprintf(crc_buf, "%08X", debug_comments[i].comment_info[j]->crc); - xml_set_attribute(datanode, "crc", crc_buf); - total_comments++; + xml_set_attribute_int(curnode, "num", i); + + for (j = 0; j < debug_comments[i].comment_count; j++) + { + xml_data_node *datanode = xml_add_child(curnode, "comment", xml_normalize_string(debug_comments[i].comment_info[j]->text)); + if (!datanode) + goto error; + xml_set_attribute_int(datanode, "address", debug_comments[i].comment_info[j]->address); + xml_set_attribute_int(datanode, "color", debug_comments[i].comment_info[j]->color); + sprintf(crc_buf, "%08X", debug_comments[i].comment_info[j]->crc); + xml_set_attribute(datanode, "crc", crc_buf); + total_comments++; + } } - } /* flush the file */ if (total_comments > 0) @@ -557,13 +564,14 @@ static void debug_comment_free(void) { int i, j; - for (i = 0; i < cpu_gettotalcpu(); i++) - { - for (j = 0; j < debug_comments[i].comment_count; j++) + for (i = 0; i < ARRAY_LENGTH(Machine->cpu); i++) + if (Machine->cpu[i] != NULL) { - free(debug_comments[i].comment_info[j]); - } + for (j = 0; j < debug_comments[i].comment_count; j++) + { + free(debug_comments[i].comment_info[j]); + } - debug_comments[i].comment_count = 0; - } + debug_comments[i].comment_count = 0; + } } diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c index 8a67d3b8588..16962b3e18f 100644 --- a/src/emu/debug/debugcpu.c +++ b/src/emu/debug/debugcpu.c @@ -1242,7 +1242,7 @@ int debug_cpu_breakpoint_set(running_machine *machine, int cpunum, offs_t addres debug_cpu_info *info = &global.cpuinfo[cpunum]; debug_cpu_breakpoint *bp; - assert_always(cpunum >= 0 && cpunum < cpu_gettotalcpu(), "debug_cpu_breakpoint_set() called with invalid cpunum!"); + assert_always(cpunum >= 0 && cpunum < ARRAY_LENGTH(machine->cpu) && machine->cpu[cpunum] != NULL, "debug_cpu_breakpoint_set() called with invalid cpunum!"); /* allocate breakpoint */ bp = malloc_or_die(sizeof(*bp)); @@ -2726,11 +2726,12 @@ void debug_cpu_flush_traces(void) { int cpunum; - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - { - if (global.cpuinfo[cpunum].trace.file) - fflush(global.cpuinfo[cpunum].trace.file); - } + for (cpunum = 0; cpunum < ARRAY_LENGTH(Machine->cpu); cpunum++) + if (Machine->cpu[cpunum] != NULL) + { + if (global.cpuinfo[cpunum].trace.file) + fflush(global.cpuinfo[cpunum].trace.file); + } } @@ -2768,7 +2769,7 @@ static UINT64 get_wpdata(void *ref) static UINT64 get_cycles(void *ref) { - return activecpu_get_icount(); + return *cpu_get_icount_ptr(Machine->activecpu); } diff --git a/src/emu/debug/debugvw.c b/src/emu/debug/debugvw.c index d017906737c..42410d295c7 100644 --- a/src/emu/debug/debugvw.c +++ b/src/emu/debug/debugvw.c @@ -1081,7 +1081,7 @@ static void registers_update(debug_view *view) /* cannot update if no active CPU */ if (cpunum_get_active() < 0) return; - total_cycles = activecpu_gettotalcycles(); + total_cycles = cpu_get_total_cycles(Machine->activecpu); /* if our assumptions changed, revisit them */ if (regdata->recompute) @@ -1119,8 +1119,8 @@ static void registers_update(debug_view *view) break; case MAX_REGS + 1: - sprintf(dummy, "cycles:%-8d", activecpu_get_icount()); - reg->currval = activecpu_get_icount(); + sprintf(dummy, "cycles:%-8d", *cpu_get_icount_ptr(Machine->activecpu)); + reg->currval = *cpu_get_icount_ptr(Machine->activecpu); break; case MAX_REGS + 2: @@ -1270,8 +1270,9 @@ static int disasm_alloc(debug_view *view) memset(dasmdata, 0, sizeof(*dasmdata)); /* count the number of comments */ - for (i = 0; i < cpu_gettotalcpu(); i++) - total_comments += debug_comment_get_count(i); + for (i = 0; i < ARRAY_LENGTH(Machine->cpu); i++) + if (Machine->cpu[i] != NULL) + total_comments += debug_comment_get_count(i); /* initialize */ dasmdata->recompute = TRUE; diff --git a/src/emu/deprecat.h b/src/emu/deprecat.h index 17a75cede01..bb978605b93 100644 --- a/src/emu/deprecat.h +++ b/src/emu/deprecat.h @@ -16,6 +16,7 @@ #define __DEPRECAT_H__ #include "mamecore.h" +#include "devintrf.h" /************************************* @@ -64,7 +65,7 @@ extern running_machine *Machine; handlers to synchronize their operation. If you call this from outside an interrupt handler, add 1 to the result, i.e. if it returns 0, it means that the interrupt handler will be called once. */ -int cpu_getiloops(void); +int cpu_getiloops(const device_config *device); #endif /* __DEPRECAT_H__ */ diff --git a/src/emu/emu.mak b/src/emu/emu.mak index 09031760fe7..2deb5aba128 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -42,7 +42,6 @@ EMUOBJS = \ $(EMUOBJ)/clifront.o \ $(EMUOBJ)/config.o \ $(EMUOBJ)/cpuexec.o \ - $(EMUOBJ)/cpuint.o \ $(EMUOBJ)/cpuintrf.o \ $(EMUOBJ)/crsshair.o \ $(EMUOBJ)/debugger.o \ diff --git a/src/emu/info.c b/src/emu/info.c index 328c82c48ac..59873391123 100644 --- a/src/emu/info.c +++ b/src/emu/info.c @@ -578,7 +578,7 @@ static void print_game_chips(FILE *out, const game_driver *game, const machine_c fprintf(out, "\t\tcpu[chipnum].tag)); - fprintf(out, " name=\"%s\"", xml_normalize_string(cputype_name(config->cpu[chipnum].type))); + fprintf(out, " name=\"%s\"", xml_normalize_string(cputype_get_name(config->cpu[chipnum].type))); fprintf(out, " clock=\"%d\"", config->cpu[chipnum].clock); fprintf(out, "/>\n"); } diff --git a/src/emu/machine/6522via.c b/src/emu/machine/6522via.c index 3ca4fb62be2..ff584df0ae0 100644 --- a/src/emu/machine/6522via.c +++ b/src/emu/machine/6522via.c @@ -23,6 +23,7 @@ */ #include "driver.h" +#include "deprecat.h" #include "6522via.h" //#define TRACE_VIA @@ -165,7 +166,7 @@ void via_config(int which, const struct via6522_interface *intf) via[which].time2 = via[which].time1 = timer_get_time(); /* Default clock is from CPU1 */ - via_set_clock (which, cpunum_get_clock(0)); + via_set_clock (which, cpu_get_clock(Machine->cpu[0])); } /******************* external interrupt check *******************/ diff --git a/src/emu/machine/6526cia.c b/src/emu/machine/6526cia.c index 2ac3a3d5a1b..824912d6592 100644 --- a/src/emu/machine/6526cia.c +++ b/src/emu/machine/6526cia.c @@ -158,7 +158,7 @@ void cia_config(running_machine *machine, int which, const cia6526_interface *in memset(cia, 0, sizeof(*cia)); cia->active = TRUE; cia->type = intf->type; - cia->clock = (intf->clock != 0) ? intf->clock : cpunum_get_clock(0); + cia->clock = (intf->clock != 0) ? intf->clock : cpu_get_clock(machine->cpu[0]); cia->irq_func = intf->irq_func; /* setup ports */ diff --git a/src/emu/machine/8042kbdc.c b/src/emu/machine/8042kbdc.c index cf1fa3deca7..3325d65ec07 100644 --- a/src/emu/machine/8042kbdc.c +++ b/src/emu/machine/8042kbdc.c @@ -584,7 +584,7 @@ WRITE8_HANDLER(kbdc8042_8_w) * the bits low set in the command byte. The only pulse that has * an effect currently is bit 0, which pulses the CPU's reset line */ - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); at_8042_set_outport(kbdc8042.outport | 0x02, 0); break; } diff --git a/src/emu/machine/8237dma.c b/src/emu/machine/8237dma.c index 385fbfba3f4..78a1d2b01d1 100644 --- a/src/emu/machine/8237dma.c +++ b/src/emu/machine/8237dma.c @@ -176,7 +176,7 @@ static void dma8237_update_status(const device_config *device) /* set the halt line */ if (dma8237->intf && dma8237->intf->cpunum >= 0) { - cpunum_set_input_line(device->machine, dma8237->intf->cpunum, INPUT_LINE_HALT, + cpu_set_input_line(device->machine->cpu[dma8237->intf->cpunum], INPUT_LINE_HALT, pending_transfer ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/emu/machine/8257dma.c b/src/emu/machine/8257dma.c index 80e7053df8b..04cbd587936 100644 --- a/src/emu/machine/8257dma.c +++ b/src/emu/machine/8257dma.c @@ -220,7 +220,7 @@ static void dma8257_update_status(const device_config *device) /* set the halt line */ if (dma8257->intf && dma8257->intf->cpunum >= 0) { - cpunum_set_input_line(device->machine, dma8257->intf->cpunum, INPUT_LINE_HALT, + cpu_set_input_line(device->machine->cpu[dma8257->intf->cpunum], INPUT_LINE_HALT, pending_transfer ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/emu/machine/generic.c b/src/emu/machine/generic.c index eca67a6ec65..7d7ca448518 100644 --- a/src/emu/machine/generic.c +++ b/src/emu/machine/generic.c @@ -10,6 +10,7 @@ *********************************************************************/ #include "driver.h" +#include "deprecat.h" #include "config.h" #include "generic.h" @@ -566,7 +567,7 @@ static void interrupt_reset(running_machine *machine) int cpunum; /* on a reset, enable all interrupts */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) interrupt_enable[cpunum] = 1; } @@ -583,9 +584,9 @@ static TIMER_CALLBACK( clear_all_lines ) int line; /* clear NMI and all inputs */ - cpunum_set_input_line(machine, cpunum, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpunum], INPUT_LINE_NMI, CLEAR_LINE); for (line = 0; line < inputcount; line++) - cpunum_set_input_line(machine, cpunum, line, CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpunum], line, CLEAR_LINE); } @@ -596,7 +597,7 @@ static TIMER_CALLBACK( clear_all_lines ) void cpu_interrupt_enable(int cpunum, int enabled) { - assert_always(cpunum >= 0 && cpunum < cpu_gettotalcpu(), "cpu_interrupt_enable() called for invalid cpu num!"); + assert_always(cpunum >= 0 && cpunum < ARRAY_LENGTH(Machine->cpu) && Machine->cpu[cpunum] != NULL, "cpu_interrupt_enable() called for invalid cpu num!"); /* set the new state */ interrupt_enable[cpunum] = enabled; @@ -643,10 +644,10 @@ READ8_HANDLER( interrupt_enable_r ) specified state on the active CPU -------------------------------------------------*/ -INLINE void irqn_line_set(running_machine *machine, int cpunum, int line, int state) +INLINE void irqn_line_set(const device_config *device, int line, int state) { - if (interrupt_enable[cpunum]) - cpunum_set_input_line(machine, cpunum, line, state); + if (interrupt_enable[cpu_get_index(device)]) + cpu_set_input_line(device, line, state); } @@ -654,45 +655,45 @@ INLINE void irqn_line_set(running_machine *machine, int cpunum, int line, int st NMI callbacks -------------------------------------------------*/ -INTERRUPT_GEN( nmi_line_pulse ) { irqn_line_set(machine, cpunum, INPUT_LINE_NMI, PULSE_LINE); } -INTERRUPT_GEN( nmi_line_assert ) { irqn_line_set(machine, cpunum, INPUT_LINE_NMI, ASSERT_LINE); } +INTERRUPT_GEN( nmi_line_pulse ) { irqn_line_set(device, INPUT_LINE_NMI, PULSE_LINE); } +INTERRUPT_GEN( nmi_line_assert ) { irqn_line_set(device, INPUT_LINE_NMI, ASSERT_LINE); } /*------------------------------------------------- IRQn callbacks -------------------------------------------------*/ -INTERRUPT_GEN( irq0_line_hold ) { irqn_line_set(machine, cpunum, 0, HOLD_LINE); } -INTERRUPT_GEN( irq0_line_pulse ) { irqn_line_set(machine, cpunum, 0, PULSE_LINE); } -INTERRUPT_GEN( irq0_line_assert ) { irqn_line_set(machine, cpunum, 0, ASSERT_LINE); } +INTERRUPT_GEN( irq0_line_hold ) { irqn_line_set(device, 0, HOLD_LINE); } +INTERRUPT_GEN( irq0_line_pulse ) { irqn_line_set(device, 0, PULSE_LINE); } +INTERRUPT_GEN( irq0_line_assert ) { irqn_line_set(device, 0, ASSERT_LINE); } -INTERRUPT_GEN( irq1_line_hold ) { irqn_line_set(machine, cpunum, 1, HOLD_LINE); } -INTERRUPT_GEN( irq1_line_pulse ) { irqn_line_set(machine, cpunum, 1, PULSE_LINE); } -INTERRUPT_GEN( irq1_line_assert ) { irqn_line_set(machine, cpunum, 1, ASSERT_LINE); } +INTERRUPT_GEN( irq1_line_hold ) { irqn_line_set(device, 1, HOLD_LINE); } +INTERRUPT_GEN( irq1_line_pulse ) { irqn_line_set(device, 1, PULSE_LINE); } +INTERRUPT_GEN( irq1_line_assert ) { irqn_line_set(device, 1, ASSERT_LINE); } -INTERRUPT_GEN( irq2_line_hold ) { irqn_line_set(machine, cpunum, 2, HOLD_LINE); } -INTERRUPT_GEN( irq2_line_pulse ) { irqn_line_set(machine, cpunum, 2, PULSE_LINE); } -INTERRUPT_GEN( irq2_line_assert ) { irqn_line_set(machine, cpunum, 2, ASSERT_LINE); } +INTERRUPT_GEN( irq2_line_hold ) { irqn_line_set(device, 2, HOLD_LINE); } +INTERRUPT_GEN( irq2_line_pulse ) { irqn_line_set(device, 2, PULSE_LINE); } +INTERRUPT_GEN( irq2_line_assert ) { irqn_line_set(device, 2, ASSERT_LINE); } -INTERRUPT_GEN( irq3_line_hold ) { irqn_line_set(machine, cpunum, 3, HOLD_LINE); } -INTERRUPT_GEN( irq3_line_pulse ) { irqn_line_set(machine, cpunum, 3, PULSE_LINE); } -INTERRUPT_GEN( irq3_line_assert ) { irqn_line_set(machine, cpunum, 3, ASSERT_LINE); } +INTERRUPT_GEN( irq3_line_hold ) { irqn_line_set(device, 3, HOLD_LINE); } +INTERRUPT_GEN( irq3_line_pulse ) { irqn_line_set(device, 3, PULSE_LINE); } +INTERRUPT_GEN( irq3_line_assert ) { irqn_line_set(device, 3, ASSERT_LINE); } -INTERRUPT_GEN( irq4_line_hold ) { irqn_line_set(machine, cpunum, 4, HOLD_LINE); } -INTERRUPT_GEN( irq4_line_pulse ) { irqn_line_set(machine, cpunum, 4, PULSE_LINE); } -INTERRUPT_GEN( irq4_line_assert ) { irqn_line_set(machine, cpunum, 4, ASSERT_LINE); } +INTERRUPT_GEN( irq4_line_hold ) { irqn_line_set(device, 4, HOLD_LINE); } +INTERRUPT_GEN( irq4_line_pulse ) { irqn_line_set(device, 4, PULSE_LINE); } +INTERRUPT_GEN( irq4_line_assert ) { irqn_line_set(device, 4, ASSERT_LINE); } -INTERRUPT_GEN( irq5_line_hold ) { irqn_line_set(machine, cpunum, 5, HOLD_LINE); } -INTERRUPT_GEN( irq5_line_pulse ) { irqn_line_set(machine, cpunum, 5, PULSE_LINE); } -INTERRUPT_GEN( irq5_line_assert ) { irqn_line_set(machine, cpunum, 5, ASSERT_LINE); } +INTERRUPT_GEN( irq5_line_hold ) { irqn_line_set(device, 5, HOLD_LINE); } +INTERRUPT_GEN( irq5_line_pulse ) { irqn_line_set(device, 5, PULSE_LINE); } +INTERRUPT_GEN( irq5_line_assert ) { irqn_line_set(device, 5, ASSERT_LINE); } -INTERRUPT_GEN( irq6_line_hold ) { irqn_line_set(machine, cpunum, 6, HOLD_LINE); } -INTERRUPT_GEN( irq6_line_pulse ) { irqn_line_set(machine, cpunum, 6, PULSE_LINE); } -INTERRUPT_GEN( irq6_line_assert ) { irqn_line_set(machine, cpunum, 6, ASSERT_LINE); } +INTERRUPT_GEN( irq6_line_hold ) { irqn_line_set(device, 6, HOLD_LINE); } +INTERRUPT_GEN( irq6_line_pulse ) { irqn_line_set(device, 6, PULSE_LINE); } +INTERRUPT_GEN( irq6_line_assert ) { irqn_line_set(device, 6, ASSERT_LINE); } -INTERRUPT_GEN( irq7_line_hold ) { irqn_line_set(machine, cpunum, 7, HOLD_LINE); } -INTERRUPT_GEN( irq7_line_pulse ) { irqn_line_set(machine, cpunum, 7, PULSE_LINE); } -INTERRUPT_GEN( irq7_line_assert ) { irqn_line_set(machine, cpunum, 7, ASSERT_LINE); } +INTERRUPT_GEN( irq7_line_hold ) { irqn_line_set(device, 7, HOLD_LINE); } +INTERRUPT_GEN( irq7_line_pulse ) { irqn_line_set(device, 7, PULSE_LINE); } +INTERRUPT_GEN( irq7_line_assert ) { irqn_line_set(device, 7, ASSERT_LINE); } diff --git a/src/emu/machine/idectrl.c b/src/emu/machine/idectrl.c index db45ae0483d..20a21c72cd8 100644 --- a/src/emu/machine/idectrl.c +++ b/src/emu/machine/idectrl.c @@ -1266,7 +1266,7 @@ static UINT32 ide_controller_read(const device_config *device, offs_t offset, in } /* take a bit of time to speed up people who poll hard */ - activecpu_adjust_icount(-100); + cpu_adjust_icount(device->machine->activecpu, -100); break; /* log anything else */ diff --git a/src/emu/machine/ldpr8210.c b/src/emu/machine/ldpr8210.c index 8973625b553..0855e454724 100644 --- a/src/emu/machine/ldpr8210.c +++ b/src/emu/machine/ldpr8210.c @@ -857,7 +857,7 @@ static WRITE8_HANDLER( pr8210_port2_w ) player->slowtrg = timer_get_time(); /* bit 6 when low triggers an IRQ on the MCU */ - cpunum_set_input_line(machine, player->cpunum, MCS48_INPUT_IRQ, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[player->cpunum], MCS48_INPUT_IRQ, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); /* standby LED is set accordingl to bit 4 */ output_set_value("pr8210_standby", (data & 0x10) != 0); @@ -1109,7 +1109,7 @@ static TIMER_CALLBACK( irq_off ) { laserdisc_state *ld = ptr; ldplayer_data *player = ld->player; - cpunum_set_input_line(ld->device->machine, player->simutrek.cpunum, MCS48_INPUT_IRQ, CLEAR_LINE); + cpu_set_input_line(ld->device->machine->cpu[player->simutrek.cpunum], MCS48_INPUT_IRQ, CLEAR_LINE); if (LOG_SIMUTREK) printf("%3d:**** Simutrek IRQ clear\n", video_screen_get_vpos(ld->screen)); } @@ -1132,7 +1132,7 @@ static void simutrek_vsync(laserdisc_state *ld, const vbi_metadata *vbi, int fie { if (LOG_SIMUTREK) printf("%3d:VSYNC IRQ\n", video_screen_get_vpos(ld->screen)); - cpunum_set_input_line(ld->device->machine, player->simutrek.cpunum, MCS48_INPUT_IRQ, ASSERT_LINE); + cpu_set_input_line(ld->device->machine->cpu[player->simutrek.cpunum], MCS48_INPUT_IRQ, ASSERT_LINE); timer_set(video_screen_get_scan_period(ld->screen), ld, 0, irq_off); } } diff --git a/src/emu/machine/ldv1000.c b/src/emu/machine/ldv1000.c index dd78297fb81..e4466dbdc04 100644 --- a/src/emu/machine/ldv1000.c +++ b/src/emu/machine/ldv1000.c @@ -277,7 +277,7 @@ static void ldv1000_vsync(laserdisc_state *ld, const vbi_metadata *vbi, int fiel timer_set(video_screen_get_time_until_pos(ld->screen, 19*2, 0), ld, 0, vbi_data_fetch); /* boost interleave for the first 1ms to improve communications */ - cpu_boost_interleave(ld->device->machine, attotime_zero, ATTOTIME_IN_MSEC(1)); + cpuexec_boost_interleave(ld->device->machine, attotime_zero, ATTOTIME_IN_MSEC(1)); } @@ -437,7 +437,7 @@ static TIMER_DEVICE_CALLBACK( multijump_timer ) static void ctc_interrupt(const device_config *device, int state) { laserdisc_state *ld = find_ldv1000(device->machine); - cpunum_set_input_line(device->machine, ld->player->cpunum, 0, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[ld->player->cpunum], 0, state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/emu/machine/ldvp931.c b/src/emu/machine/ldvp931.c index 9be3dc5af63..52d54226784 100644 --- a/src/emu/machine/ldvp931.c +++ b/src/emu/machine/ldvp931.c @@ -298,7 +298,7 @@ static UINT8 vp931_data_r(laserdisc_state *ld) } /* also boost interleave for 4 scanlines to ensure proper communications */ - cpu_boost_interleave(ld->device->machine, attotime_zero, attotime_mul(video_screen_get_scan_period(ld->screen), 4)); + cpuexec_boost_interleave(ld->device->machine, attotime_zero, attotime_mul(video_screen_get_scan_period(ld->screen), 4)); return player->tocontroller; } @@ -350,7 +350,7 @@ static TIMER_CALLBACK( vbi_data_fetch ) /* at the start of each line, signal an interrupt and use a timer to turn it off */ if (which == 0) { - cpunum_set_input_line(machine, player->cpunum, MCS48_INPUT_IRQ, ASSERT_LINE); + cpu_set_input_line(machine->cpu[player->cpunum], MCS48_INPUT_IRQ, ASSERT_LINE); timer_set(ATTOTIME_IN_NSEC(5580), ld, 0, irq_off); } @@ -406,7 +406,7 @@ static TIMER_CALLBACK( deferred_data_w ) static TIMER_CALLBACK( irq_off ) { laserdisc_state *ld = ptr; - cpunum_set_input_line(machine, ld->player->cpunum, MCS48_INPUT_IRQ, CLEAR_LINE); + cpu_set_input_line(machine->cpu[ld->player->cpunum], MCS48_INPUT_IRQ, CLEAR_LINE); } @@ -632,7 +632,7 @@ static WRITE8_HANDLER( to_controller_w ) (*player->data_ready_cb)(ld->device, TRUE); /* also boost interleave for 4 scanlines to ensure proper communications */ - cpu_boost_interleave(ld->device->machine, attotime_zero, attotime_mul(video_screen_get_scan_period(ld->screen), 4)); + cpuexec_boost_interleave(ld->device->machine, attotime_zero, attotime_mul(video_screen_get_scan_period(ld->screen), 4)); } diff --git a/src/emu/machine/tmp68301.c b/src/emu/machine/tmp68301.c index eda514ebf8b..ec95e5d4ff0 100644 --- a/src/emu/machine/tmp68301.c +++ b/src/emu/machine/tmp68301.c @@ -47,7 +47,7 @@ static TIMER_CALLBACK( tmp68301_timer_callback ) tmp68301_irq_vector[level] = IVNR & 0x00e0; tmp68301_irq_vector[level] += 4+i; - cpunum_set_input_line(machine, 0,level,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],level,HOLD_LINE); } if (TCR & 0x0080) // N/1 @@ -90,7 +90,7 @@ static void tmp68301_update_timer( running_machine *machine, int i ) { int scale = (TCR & 0x3c00)>>10; // P4..1 if (scale > 8) scale = 8; - duration = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(0)), (1 << scale) * max); + duration = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(machine->cpu[0])), (1 << scale) * max); } break; } @@ -115,7 +115,7 @@ MACHINE_RESET( tmp68301 ) for (i = 0; i < 3; i++) tmp68301_IE[i] = 0; - cpunum_set_irq_callback(0, tmp68301_irq_callback); + cpu_set_irq_callback(machine->cpu[0], tmp68301_irq_callback); } /* Update the IRQ state based on all possible causes */ @@ -145,7 +145,7 @@ static void update_irq_state(running_machine *machine) tmp68301_IE[i] = 0; // Interrupts are edge triggerred - cpunum_set_input_line(machine, 0,level,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],level,HOLD_LINE); } } } diff --git a/src/emu/machine/z80dma.c b/src/emu/machine/z80dma.c index 876484b129a..c9c929acadf 100644 --- a/src/emu/machine/z80dma.c +++ b/src/emu/machine/z80dma.c @@ -257,7 +257,7 @@ static void z80dma_update_status(const device_config *device) if (z80dma->intf && z80dma->intf->cpunum >= 0) { //FIXME: Synchronization is done by BUSREQ! - cpunum_set_input_line(device->machine, z80dma->intf->cpunum, INPUT_LINE_HALT, + cpu_set_input_line(device->machine->cpu[z80dma->intf->cpunum], INPUT_LINE_HALT, pending_transfer ? ASSERT_LINE : CLEAR_LINE); } } diff --git a/src/emu/mame.c b/src/emu/mame.c index 4ef5236fc7b..e60579fb58c 100644 --- a/src/emu/mame.c +++ b/src/emu/mame.c @@ -47,7 +47,6 @@ - calls memory_init() [memory.c] to process the game's memory maps - calls cpuexec_init() [cpuexec.c] to initialize the CPUs - calls watchdog_init() [watchdog.c] to initialize the watchdog system - - calls cpuint_init() [cpuint.c] to initialize the CPU interrupts - calls the driver's DRIVER_INIT callback - calls device_list_start() [devintrf.c] to start any devices - calls video_init() [video.c] to start the video system @@ -560,8 +559,8 @@ void mame_schedule_exit(running_machine *machine) mame->exit_pending = TRUE; /* if we're executing, abort out immediately */ - if (cpunum_get_active() >= 0) - activecpu_adjust_icount(-activecpu_get_icount() - 1); + if (machine->activecpu != NULL) + cpu_eat_cycles(machine->activecpu, 1000000000); /* if we're autosaving on exit, schedule a save as well */ if (options_get_bool(mame_options(), OPTION_AUTOSAVE) && (machine->gamedrv->flags & GAME_SUPPORTS_SAVE)) @@ -580,8 +579,8 @@ void mame_schedule_hard_reset(running_machine *machine) mame->hard_reset_pending = TRUE; /* if we're executing, abort out immediately */ - if (cpunum_get_active() >= 0) - activecpu_adjust_icount(-activecpu_get_icount() - 1); + if (machine->activecpu != NULL) + cpu_eat_cycles(machine->activecpu, 1000000000); } @@ -601,7 +600,7 @@ void mame_schedule_soft_reset(running_machine *machine) /* if we're executing, abort out immediately */ if (cpunum_get_active() >= 0) - activecpu_adjust_icount(-activecpu_get_icount() - 1); + cpu_eat_cycles(machine->activecpu, 1000000000); } @@ -618,7 +617,7 @@ void mame_schedule_new_driver(running_machine *machine, const game_driver *drive /* if we're executing, abort out immediately */ if (cpunum_get_active() >= 0) - activecpu_adjust_icount(-activecpu_get_icount() - 1); + cpu_eat_cycles(machine->activecpu, 1000000000); } @@ -1542,7 +1541,6 @@ static void init_machine(running_machine *machine) memory_init(machine); cpuexec_init(machine); watchdog_init(machine); - cpuint_init(machine); #ifdef MESS /* first MESS initialization */ @@ -1621,10 +1619,9 @@ static TIMER_CALLBACK( soft_reset ) /* allow save state registrations during the reset */ state_save_allow_registration(TRUE); - /* unfortunately, we can't rely on callbacks to reset the interrupt */ - /* structures, as these need to happen before we call the reset */ - /* functions registered by the drivers */ - cpuint_reset(machine); + /* call all registered reset callbacks */ + for (cb = machine->mame_data->reset_callback_list; cb; cb = cb->next) + (*cb->func.reset)(machine); /* run the driver's reset callbacks */ if (machine->config->machine_reset != NULL) @@ -1634,10 +1631,6 @@ static TIMER_CALLBACK( soft_reset ) if (machine->config->video_reset != NULL) (*machine->config->video_reset)(machine); - /* call all registered reset callbacks */ - for (cb = machine->mame_data->reset_callback_list; cb; cb = cb->next) - (*cb->func.reset)(machine); - /* disallow save state registrations starting here */ state_save_allow_registration(FALSE); @@ -1737,20 +1730,21 @@ static void handle_save(running_machine *machine) state_save_pop_tag(); /* loop over CPUs */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - { - cpu_push_context(machine->cpu[cpunum]); + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) + { + cpu_push_context(machine->cpu[cpunum]); - /* make sure banking is set */ - activecpu_reset_banking(); + /* make sure banking is set */ + memory_set_opbase(cpu_get_physical_pc_byte(machine->activecpu)); - /* save the CPU data */ - state_save_push_tag(cpunum + 1); - state_save_save_continue(machine); - state_save_pop_tag(); + /* save the CPU data */ + state_save_push_tag(cpunum + 1); + state_save_save_continue(machine); + state_save_pop_tag(); - cpu_pop_context(); - } + cpu_pop_context(); + } /* finish and close */ state_save_save_finish(machine); @@ -1819,23 +1813,24 @@ static void handle_load(running_machine *machine) state_save_pop_tag(); /* loop over CPUs */ - for (cpunum = 0; cpunum < cpu_gettotalcpu(); cpunum++) - { - cpu_push_context(machine->cpu[cpunum]); + for (cpunum = 0; cpunum < ARRAY_LENGTH(machine->cpu); cpunum++) + if (machine->cpu[cpunum] != NULL) + { + cpu_push_context(machine->cpu[cpunum]); - /* make sure banking is set */ - activecpu_reset_banking(); + /* make sure banking is set */ + memory_set_opbase(cpu_get_physical_pc_byte(machine->activecpu)); - /* load the CPU data */ - state_save_push_tag(cpunum + 1); - state_save_load_continue(machine); - state_save_pop_tag(); + /* load the CPU data */ + state_save_push_tag(cpunum + 1); + state_save_load_continue(machine); + state_save_pop_tag(); - /* make sure banking is set */ - activecpu_reset_banking(); + /* make sure banking is set */ + memory_set_opbase(cpu_get_physical_pc_byte(machine->activecpu)); - cpu_pop_context(); - } + cpu_pop_context(); + } /* finish and close */ state_save_load_finish(); diff --git a/src/emu/mconfig.h b/src/emu/mconfig.h index 793a7fa2ef5..0f362ad1f2b 100644 --- a/src/emu/mconfig.h +++ b/src/emu/mconfig.h @@ -15,6 +15,7 @@ #define __MCONFIG_H__ #include "devintrf.h" +#include "cpuexec.h" #include @@ -170,7 +171,7 @@ union _machine_config_token const gfx_decode_entry *gfxdecode; const addrmap_token *addrmap; device_type devtype; - void (*interrupt)(running_machine *machine, int cpunum); + void (*interrupt)(const device_config *device); driver_init_func driver_init; nvram_handler_func nvram_handler; memcard_handler_func memcard_handler; diff --git a/src/emu/memory.c b/src/emu/memory.c index 29bbff21e86..df00bd3c3c8 100644 --- a/src/emu/memory.c +++ b/src/emu/memory.c @@ -1668,10 +1668,10 @@ static void memory_init_cpudata(running_machine *machine) /* determine the address and data bits */ space->cpunum = cpunum; space->spacenum = spacenum; - space->endianness = cputype_endianness(cputype); - space->ashift = cputype_addrbus_shift(cputype, spacenum); - space->abits = cputype_addrbus_width(cputype, spacenum); - space->dbits = cputype_databus_width(cputype, spacenum); + space->endianness = cputype_get_endianness(cputype); + space->ashift = cputype_get_addrbus_shift(cputype, spacenum); + space->abits = cputype_get_addrbus_width(cputype, spacenum); + space->dbits = cputype_get_databus_width(cputype, spacenum); space->addrmask = 0xffffffffUL >> (32 - space->abits); space->bytemask = ADDR2BYTE_END(space, space->addrmask); space->accessors = memory_get_accessors(spacenum, space->dbits, space->endianness); diff --git a/src/emu/romload.c b/src/emu/romload.c index 63d3cfb1f83..c63ae105cd5 100644 --- a/src/emu/romload.c +++ b/src/emu/romload.c @@ -1178,14 +1178,14 @@ static UINT32 normalize_flags_for_cpu(running_machine *machine, UINT32 startflag /* set the endianness */ startflags &= ~ROMREGION_ENDIANMASK; - if (cputype_endianness(cputype) == CPU_IS_LE) + if (cputype_get_endianness(cputype) == CPU_IS_LE) startflags |= ROMREGION_LE; else startflags |= ROMREGION_BE; /* set the width */ startflags &= ~ROMREGION_WIDTHMASK; - buswidth = cputype_databus_width(cputype, ADDRESS_SPACE_PROGRAM); + buswidth = cputype_get_databus_width(cputype, ADDRESS_SPACE_PROGRAM); if (buswidth <= 8) startflags |= ROMREGION_8BIT; else if (buswidth <= 16) diff --git a/src/emu/sound/scsp.c b/src/emu/sound/scsp.c index 0cff6e1afe8..654e6f379af 100644 --- a/src/emu/sound/scsp.c +++ b/src/emu/sound/scsp.c @@ -28,6 +28,7 @@ #include "sndintrf.h" #include "streams.h" #include "cpuintrf.h" +#include "cpuexec.h" #include "deprecat.h" #include "scsp.h" #include "scspdsp.h" @@ -1198,7 +1199,7 @@ static void dma_scsp(running_machine *machine, struct _SCSP *SCSP) /*Job done,request a dma end irq*/ if(scsp_regs[0x1e/2] & 0x10) - cpunum_set_input_line(machine, 2,dma_transfer_end,HOLD_LINE); + cpu_set_input_line(machine->cpu[2],dma_transfer_end,HOLD_LINE); } #ifdef UNUSED_FUNCTION @@ -1315,7 +1316,7 @@ WRITE16_HANDLER( scsp_0_w ) case 0x42a: if(stv_scu && !(stv_scu[40] & 0x40) /*&& scsp_regs[0x42c/2] & 0x20*/)/*Main CPU allow sound irq*/ { - cpunum_set_input_line_and_vector(machine, 0, 9, HOLD_LINE , 0x46); + cpu_set_input_line_and_vector(machine->cpu[0], 9, HOLD_LINE , 0x46); logerror("SCSP: Main CPU interrupt\n"); } break; diff --git a/src/emu/timer.c b/src/emu/timer.c index c5f400ec9c1..53a4b85928f 100644 --- a/src/emu/timer.c +++ b/src/emu/timer.c @@ -11,6 +11,7 @@ ***************************************************************************/ #include "driver.h" +#include "deprecat.h" #include "profiler.h" #include "pool.h" @@ -140,16 +141,13 @@ static void timer_remove(emu_timer *which); INLINE attotime get_current_time(void) { - int activecpu; - /* if we're currently in a callback, use the timer's expiration time as a base */ if (callback_timer != NULL) return callback_timer_expire_time; /* if we're executing as a particular CPU, use its local time as a base */ - activecpu = cpunum_get_active(); - if (activecpu >= 0) - return cpunum_get_localtime(activecpu); + if (Machine->activecpu != NULL) + return cpu_get_local_time(Machine->activecpu); /* otherwise, return the current global base time */ return global_basetime; @@ -734,8 +732,8 @@ void timer_adjust_periodic(emu_timer *which, attotime start_delay, INT32 param, /* if this was inserted as the head, abort the current timeslice and resync */ LOG(("timer_adjust_oneshot %s.%s:%d to expire @ %s\n", which->file, which->func, which->line, attotime_string(which->expire, 9))); - if (which == timer_head && cpunum_get_executing() >= 0) - activecpu_abort_timeslice(); + if (which == timer_head && Machine->activecpu != NULL) + cpu_abort_timeslice(Machine->activecpu); } diff --git a/src/emu/ui.c b/src/emu/ui.c index 329f2bfe501..26c51a7cec0 100644 --- a/src/emu/ui.c +++ b/src/emu/ui.c @@ -995,7 +995,7 @@ astring *game_info_astring(running_machine *machine, astring *string) /* if more than one, prepend a #x in front of the CPU name */ if (count > 1) astring_catprintf(string, "%d" UTF8_MULTIPLY, count); - astring_catc(string, cputype_name(type)); + astring_catc(string, cputype_get_name(type)); /* display clock in kHz or MHz */ if (clock >= 1000000) @@ -1454,13 +1454,13 @@ static slider_state *slider_init(running_machine *machine) /* add CPU overclocking (cheat only) */ if (options_get_bool(mame_options(), OPTION_CHEAT)) { - numitems = cpu_gettotalcpu(); - for (item = 0; item < numitems; item++) - { - astring_printf(string, "Overclock CPU %s", machine->config->cpu[item].tag); - *tailptr = slider_alloc(astring_c(string), 10, 1000, 2000, 1, slider_overclock, (void *)(FPTR)item); - tailptr = &(*tailptr)->next; - } + for (item = 0; item < ARRAY_LENGTH(machine->cpu); item++) + if (machine->cpu[item] != NULL) + { + astring_printf(string, "Overclock CPU %s", machine->cpu[item]->tag); + *tailptr = slider_alloc(astring_c(string), 10, 1000, 2000, 1, slider_overclock, (void *)(FPTR)item); + tailptr = &(*tailptr)->next; + } } /* add screen parameters */ @@ -1630,10 +1630,10 @@ static INT32 slider_overclock(running_machine *machine, void *arg, astring *stri { int which = (FPTR)arg; if (newval != SLIDER_NOCHANGE) - cpunum_set_clockscale(machine, which, (float)newval * 0.001f); + cpu_set_clockscale(machine->cpu[which], (float)newval * 0.001f); if (string != NULL) - astring_printf(string, "%3.0f%%", floor(cpunum_get_clockscale(which) * 100.0f + 0.5f)); - return floor(cpunum_get_clockscale(which) * 1000.0f + 0.5f); + astring_printf(string, "%3.0f%%", floor(cpu_get_clockscale(machine->cpu[which]) * 100.0f + 0.5f)); + return floor(cpu_get_clockscale(machine->cpu[which]) * 1000.0f + 0.5f); } diff --git a/src/emu/validity.c b/src/emu/validity.c index 96b4b126bd0..1cb48db7ef4 100644 --- a/src/emu/validity.c +++ b/src/emu/validity.c @@ -720,7 +720,6 @@ static int validate_cpu(int drivnum, const machine_config *config, const input_p /* loop over all the CPUs */ for (cpunum = 0; cpunum < MAX_CPU; cpunum++) { - extern CPU_GET_INFO( dummy ); const cpu_config *cpu = &config->cpu[cpunum]; int spacenum, checknum; @@ -750,7 +749,7 @@ static int validate_cpu(int drivnum, const machine_config *config, const input_p error |= validate_tag(driver, "CPU", cpu->tag); /* checks to see if this driver is using a dummy CPU */ - if (cputype_get_interface(cpu->type)->get_info == CPU_GET_INFO_NAME(dummy)) + if (cpu->type == CPU_DUMMY) { mame_printf_error("%s: %s uses non-present CPU\n", driver->source_file, driver->name); error = TRUE; @@ -781,8 +780,8 @@ static int validate_cpu(int drivnum, const machine_config *config, const input_p { #define SPACE_SHIFT(a) ((addr_shift < 0) ? ((a) << -addr_shift) : ((a) >> addr_shift)) #define SPACE_SHIFT_END(a) ((addr_shift < 0) ? (((a) << -addr_shift) | ((1 << -addr_shift) - 1)) : ((a) >> addr_shift)) - int databus_width = cputype_databus_width(cpu->type, spacenum); - int addr_shift = cputype_addrbus_shift(cpu->type, spacenum); + int databus_width = cputype_get_databus_width(cpu->type, spacenum); + int addr_shift = cputype_get_addrbus_shift(cpu->type, spacenum); int alignunit = databus_width/8; address_map_entry *entry; address_map *map; diff --git a/src/emu/video/voodoo.c b/src/emu/video/voodoo.c index 545b859d929..17ddc8071a7 100644 --- a/src/emu/video/voodoo.c +++ b/src/emu/video/voodoo.c @@ -2038,7 +2038,7 @@ static void check_stalled_cpu(voodoo_state *v, attotime current_time) if (v->pci.stall_callback) (*v->pci.stall_callback)(v->device, FALSE); else - cpu_trigger(v->device->machine, v->trigger); + cpuexec_trigger(v->device->machine, v->trigger); } /* if not, set a timer for the next one */ @@ -2062,7 +2062,7 @@ static void stall_cpu(voodoo_state *v, int state, attotime current_time) if (v->pci.stall_callback) (*v->pci.stall_callback)(v->device, TRUE); else - cpu_spinuntil_trigger(v->trigger); + cpu_spinuntil_trigger(v->device->machine->activecpu, v->trigger); /* set a timer to clear the stall */ timer_adjust_oneshot(v->pci.continue_timer, attotime_sub(v->pci.op_end_time, current_time), 0); @@ -3686,7 +3686,7 @@ static UINT32 register_r(voodoo_state *v, offs_t offset) /* bit 31 is not used */ /* eat some cycles since people like polling here */ - activecpu_eat_cycles(1000); + cpu_eat_cycles(v->device->machine->activecpu, 1000); break; /* bit 2 of the initEnable register maps this to dacRead */ @@ -3699,7 +3699,7 @@ static UINT32 register_r(voodoo_state *v, offs_t offset) case vRetrace: /* eat some cycles since people like polling here */ - activecpu_eat_cycles(10); + cpu_eat_cycles(v->device->machine->activecpu, 10); result = video_screen_get_vpos(v->screen); break; @@ -3714,7 +3714,7 @@ static UINT32 register_r(voodoo_state *v, offs_t offset) result = v->fbi.cmdfifo[0].rdptr; /* eat some cycles since people like polling here */ - activecpu_eat_cycles(1000); + cpu_eat_cycles(v->device->machine->activecpu, 1000); break; case cmdFifoAMin: diff --git a/src/mame/audio/aztarac.c b/src/mame/audio/aztarac.c index 4ec536e9d14..12d1a90d70f 100644 --- a/src/mame/audio/aztarac.c +++ b/src/mame/audio/aztarac.c @@ -23,7 +23,7 @@ WRITE16_HANDLER( aztarac_sound_w ) soundlatch_w(machine, offset, data); sound_status ^= 0x21; if (sound_status & 0x20) - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } } @@ -49,7 +49,7 @@ INTERRUPT_GEN( aztarac_snd_timed_irq ) sound_status ^= 0x10; if (sound_status & 0x10) - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(device,0,HOLD_LINE); } diff --git a/src/mame/audio/cage.c b/src/mame/audio/cage.c index 0a723cfa0f1..f1b1fbf0247 100644 --- a/src/mame/audio/cage.c +++ b/src/mame/audio/cage.c @@ -162,7 +162,7 @@ void cage_init(running_machine *machine, offs_t speedup) memory_set_bankptr(11, memory_region(machine, "cage")); cage_cpu = mame_find_cpu_index(machine, "cage"); - cage_cpu_clock_period = ATTOTIME_IN_HZ(cpunum_get_clock(cage_cpu)); + cage_cpu_clock_period = ATTOTIME_IN_HZ(cpu_get_clock(machine->cpu[cage_cpu])); cage_cpu_h1_clock_period = attotime_mul(cage_cpu_clock_period, 2); dma_timer = timer_alloc(dma_timer_callback, NULL); @@ -194,7 +194,7 @@ void cage_reset_w(int state) { if (state) cage_control_w(Machine, 0); - cpunum_set_input_line(Machine, cage_cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[cage_cpu], INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); } @@ -223,7 +223,7 @@ static TIMER_CALLBACK( dma_timer_callback ) tms32031_io_regs[DMA_SOURCE_ADDR] = param; /* set the interrupt */ - cpunum_set_input_line(machine, cage_cpu, TMS32031_DINT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[cage_cpu], TMS32031_DINT, ASSERT_LINE); dma_enabled = 0; } @@ -292,7 +292,7 @@ static TIMER_CALLBACK( cage_timer_callback ) int which = param; /* set the interrupt */ - cpunum_set_input_line(machine, cage_cpu, TMS32031_TINT0 + which, ASSERT_LINE); + cpu_set_input_line(machine->cpu[cage_cpu], TMS32031_TINT0 + which, ASSERT_LINE); cage_timer_enabled[which] = 0; update_timer(which); } @@ -477,7 +477,7 @@ static READ32_HANDLER( cage_from_main_r ) logerror("%06X:CAGE read command = %04X\n", cpu_get_pc(machine->activecpu), cage_from_main); cpu_to_cage_ready = 0; update_control_lines(machine); - cpunum_set_input_line(machine, cage_cpu, TMS32031_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[cage_cpu], TMS32031_IRQ0, CLEAR_LINE); return cage_from_main; } @@ -525,7 +525,7 @@ static TIMER_CALLBACK( deferred_cage_w ) cage_from_main = param; cpu_to_cage_ready = 1; update_control_lines(machine); - cpunum_set_input_line(machine, cage_cpu, TMS32031_IRQ0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[cage_cpu], TMS32031_IRQ0, ASSERT_LINE); } @@ -557,7 +557,7 @@ void cage_control_w(running_machine *machine, UINT16 data) /* CPU is reset if both control lines are 0 */ if (!(cage_control & 3)) { - cpunum_set_input_line(Machine, cage_cpu, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[cage_cpu], INPUT_LINE_RESET, ASSERT_LINE); dma_enabled = 0; dma_timer_enabled = 0; @@ -574,7 +574,7 @@ void cage_control_w(running_machine *machine, UINT16 data) cage_to_cpu_ready = 0; } else - cpunum_set_input_line(Machine, cage_cpu, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[cage_cpu], INPUT_LINE_RESET, CLEAR_LINE); /* update the control state */ update_control_lines(machine); @@ -590,7 +590,7 @@ void cage_control_w(running_machine *machine, UINT16 data) static WRITE32_HANDLER( speedup_w ) { - activecpu_eat_cycles(100); + cpu_eat_cycles(machine->activecpu, 100); COMBINE_DATA(&speedup_ram[offset]); } diff --git a/src/mame/audio/carnival.c b/src/mame/audio/carnival.c index b996f4ecc56..6858e838729 100644 --- a/src/mame/audio/carnival.c +++ b/src/mame/audio/carnival.c @@ -235,7 +235,7 @@ WRITE8_HANDLER( carnival_audio_2_w ) if ( bitsGoneHigh & OUT_PORT_2_MUSIC_RESET ) /* reset output is no longer asserted active low */ - cpunum_set_input_line(machine, CPU_MUSIC_ID, INPUT_LINE_RESET, PULSE_LINE ); + cpu_set_input_line(machine->cpu[CPU_MUSIC_ID], INPUT_LINE_RESET, PULSE_LINE ); } diff --git a/src/mame/audio/cchasm.c b/src/mame/audio/cchasm.c index 2be04d45e6c..9a513dbfc0e 100644 --- a/src/mame/audio/cchasm.c +++ b/src/mame/audio/cchasm.c @@ -72,7 +72,7 @@ WRITE8_HANDLER( cchasm_snd_io_w ) case 0x41: sound_flags |= 0x40; soundlatch4_w (machine, offset, data); - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 1, HOLD_LINE); break; case 0x61: @@ -100,7 +100,7 @@ WRITE16_HANDLER( cchasm_io_w ) sound_flags |= 0x80; soundlatch2_w (machine, offset, data); z80ctc_trg2_w (ctc, 0, 1); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); break; case 2: led = data; @@ -134,7 +134,7 @@ static int output[2]; static void ctc_interrupt (const device_config *device, int state) { - cpunum_set_input_line(device->machine, 1, 0, state); + cpu_set_input_line(device->machine->cpu[1], 0, state); } static WRITE8_DEVICE_HANDLER( ctc_timer_1_w ) diff --git a/src/mame/audio/cinemat.c b/src/mame/audio/cinemat.c index a5f59484783..2e9fc24094d 100644 --- a/src/mame/audio/cinemat.c +++ b/src/mame/audio/cinemat.c @@ -1494,7 +1494,7 @@ static const ay8910_interface demon_ay8910_interface_3 = static void ctc_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 1, 0, state); + cpu_set_input_line(device->machine->cpu[1], 0, state); } diff --git a/src/mame/audio/cyberbal.c b/src/mame/audio/cyberbal.c index ca0d3a274f3..a7db5ab6544 100644 --- a/src/mame/audio/cyberbal.c +++ b/src/mame/audio/cyberbal.c @@ -62,7 +62,7 @@ WRITE8_HANDLER( cyberbal_sound_bank_select_w ) memory_set_bankptr(8, &bank_base[0x1000 * ((data >> 6) & 3)]); coin_counter_w(1, (data >> 5) & 1); coin_counter_w(0, (data >> 4) & 1); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); if (!(data & 0x01)) sndti_reset(SOUND_YM2151, 0); } @@ -97,8 +97,8 @@ WRITE8_HANDLER( cyberbal_sound_68k_6502_w ) static void update_sound_68k_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 3, 6, fast_68k_int ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 3, 2, io_68k_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], 6, fast_68k_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], 2, io_68k_int ? ASSERT_LINE : CLEAR_LINE); } @@ -107,7 +107,7 @@ INTERRUPT_GEN( cyberbal_sound_68k_irq_gen ) if (!fast_68k_int) { fast_68k_int = 1; - update_sound_68k_interrupts(machine); + update_sound_68k_interrupts(device->machine); } } diff --git a/src/mame/audio/dcs.c b/src/mame/audio/dcs.c index c51ad861eef..d64d799921b 100644 --- a/src/mame/audio/dcs.c +++ b/src/mame/audio/dcs.c @@ -410,7 +410,7 @@ static void timer_enable_callback(int enable); static TIMER_CALLBACK( internal_timer_callback ); static TIMER_CALLBACK( dcs_irq ); static TIMER_CALLBACK( sport0_irq ); -static void recompute_sample_rate(void); +static void recompute_sample_rate(running_machine *machine); static void sound_tx_callback(int port, INT32 data); static READ16_HANDLER( dcs_polling_r ); @@ -761,7 +761,7 @@ static void dcs_boot(void) /* rev 3/4: HALT the ADSP-2181 until program is downloaded via IDMA */ case 3: case 4: - cpunum_set_input_line(Machine, dcs.cpunum, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[dcs.cpunum], INPUT_LINE_HALT, ASSERT_LINE); dsio.start_on_next_write = 0; break; } @@ -814,9 +814,9 @@ static TIMER_CALLBACK( dcs_reset ) memset(dcs.control_regs, 0, sizeof(dcs.control_regs)); /* clear all interrupts */ - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_IRQ0, CLEAR_LINE); - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_IRQ1, CLEAR_LINE); - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_IRQ2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_IRQ2, CLEAR_LINE); /* initialize the comm bits */ SET_INPUT_EMPTY(); @@ -1379,7 +1379,7 @@ static WRITE16_HANDLER( denver_w ) dmadac_enable(0, dcs.channels, enable); if (dcs.channels < 6) dmadac_enable(dcs.channels, 6 - dcs.channels, FALSE); - recompute_sample_rate(); + recompute_sample_rate(machine); } break; @@ -1436,7 +1436,7 @@ WRITE32_HANDLER( dsio_idma_data_w ) if (dsio.start_on_next_write && --dsio.start_on_next_write == 0) { logerror("Starting DSIO CPU\n"); - cpunum_set_input_line(machine, dcs.cpunum, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], INPUT_LINE_HALT, CLEAR_LINE); } } @@ -1476,7 +1476,7 @@ int dcs_control_r(void) { /* only boost for DCS2 boards */ if (!dcs.auto_ack && !transfer.hle_enabled) - cpu_boost_interleave(Machine, ATTOTIME_IN_NSEC(500), ATTOTIME_IN_USEC(5)); + cpuexec_boost_interleave(Machine, ATTOTIME_IN_NSEC(500), ATTOTIME_IN_USEC(5)); return dcs.latch_control; } @@ -1490,12 +1490,12 @@ void dcs_reset_w(int state) /* just run through the init code again */ timer_call_after_resynch(NULL, 0, dcs_reset); - cpunum_set_input_line(Machine, dcs.cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[dcs.cpunum], INPUT_LINE_RESET, ASSERT_LINE); } /* going low resets and reactivates the CPU */ else - cpunum_set_input_line(Machine, dcs.cpunum, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[dcs.cpunum], INPUT_LINE_RESET, CLEAR_LINE); } @@ -1534,10 +1534,10 @@ static void dcs_delayed_data_w(running_machine *machine, int data) logerror("%08X:dcs_data_w(%04X)\n", cpu_get_pc(machine->activecpu), data); /* boost the interleave temporarily */ - cpu_boost_interleave(machine, ATTOTIME_IN_NSEC(500), ATTOTIME_IN_USEC(5)); + cpuexec_boost_interleave(machine, ATTOTIME_IN_NSEC(500), ATTOTIME_IN_USEC(5)); /* set the IRQ line on the ADSP */ - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_IRQ2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_IRQ2, ASSERT_LINE); /* indicate we are no longer empty */ if (dcs.last_input_empty && dcs.input_empty_cb) @@ -1574,7 +1574,7 @@ static WRITE16_HANDLER( input_latch_ack_w ) if (!dcs.last_input_empty && dcs.input_empty_cb) (*dcs.input_empty_cb)(dcs.last_input_empty = 1); SET_INPUT_EMPTY(); - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_IRQ2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_IRQ2, CLEAR_LINE); } @@ -1666,7 +1666,7 @@ static WRITE16_HANDLER( output_control_w ) static READ16_HANDLER( output_control_r ) { - dcs.output_control_cycles = activecpu_gettotalcycles(); + dcs.output_control_cycles = cpu_get_total_cycles(machine->activecpu); return dcs.output_control; } @@ -1684,7 +1684,7 @@ int dcs_data2_r(void) * *************************************/ -static void update_timer_count(void) +static void update_timer_count(running_machine *machine) { UINT64 periods_since_start; UINT64 elapsed_cycles; @@ -1695,7 +1695,7 @@ static void update_timer_count(void) return; /* count cycles */ - elapsed_cycles = cpunum_gettotalcycles(dcs.cpunum) - dcs.timer_start_cycles; + elapsed_cycles = cpu_get_total_cycles(machine->cpu[dcs.cpunum]) - dcs.timer_start_cycles; elapsed_clocks = elapsed_cycles / dcs.timer_scale; /* if we haven't counted past the initial count yet, just do that */ @@ -1721,23 +1721,23 @@ static TIMER_CALLBACK( internal_timer_callback ) /* we do this to avoid drifting */ dcs.timers_fired++; target_cycles = dcs.timer_start_cycles + dcs.timer_scale * (dcs.timer_start_count + 1 + dcs.timers_fired * (dcs.timer_period + 1)); - target_cycles -= cpunum_gettotalcycles(dcs.cpunum); + target_cycles -= cpu_get_total_cycles(machine->cpu[dcs.cpunum]); /* set the next timer, but only if it's for a reasonable number */ if (!dcs.timer_ignore && (dcs.timer_period > 10 || dcs.timer_scale > 1)) timer_adjust_oneshot(dcs.internal_timer, ATTOTIME_IN_CYCLES(target_cycles, dcs.cpunum), 0); - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_TIMER, PULSE_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_TIMER, PULSE_LINE); } -static void reset_timer(void) +static void reset_timer(running_machine *machine) { /* if not enabled, skip */ if (!dcs.timer_enable) return; /* compute the time until the first firing */ - dcs.timer_start_cycles = cpunum_gettotalcycles(dcs.cpunum); + dcs.timer_start_cycles = cpu_get_total_cycles(machine->cpu[dcs.cpunum]); dcs.timers_fired = 0; /* if this is the first timer, check the IRQ routine for the DRAM refresh stub */ @@ -1771,7 +1771,7 @@ static void timer_enable_callback(int enable) if (enable) { // mame_printf_debug("Timer enabled @ %d cycles/int, or %f Hz\n", dcs.timer_scale * (dcs.timer_period + 1), 1.0 / ATTOTIME_IN_CYCLES(dcs.timer_scale * (dcs.timer_period + 1), dcs.cpunum)); - reset_timer(); + reset_timer(Machine); } else { @@ -1822,7 +1822,7 @@ static READ16_HANDLER( adsp_control_r ) break; case TIMER_COUNT_REG: - update_timer_count(); + update_timer_count(machine); result = dcs.control_regs[offset]; break; @@ -1845,7 +1845,7 @@ static WRITE16_HANDLER( adsp_control_w ) if (data & 0x0200) { logerror("%04X:Rebooting DCS due to SYSCONTROL write\n", cpu_get_pc(machine->activecpu)); - cpunum_set_input_line(machine, dcs.cpunum, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], INPUT_LINE_RESET, PULSE_LINE); dcs_boot(); dcs.control_regs[SYSCONTROL_REG] = 0; } @@ -1878,23 +1878,23 @@ static WRITE16_HANDLER( adsp_control_w ) data = (data & 0xff) + 1; if (data != dcs.timer_scale) { - update_timer_count(); + update_timer_count(machine); dcs.timer_scale = data; - reset_timer(); + reset_timer(machine); } break; case TIMER_COUNT_REG: dcs.timer_start_count = data; - reset_timer(); + reset_timer(machine); break; case TIMER_PERIOD_REG: if (data != dcs.timer_period) { - update_timer_count(); + update_timer_count(machine); dcs.timer_period = data; - reset_timer(); + reset_timer(machine); } break; @@ -1939,7 +1939,7 @@ static TIMER_CALLBACK( dcs_irq ) reg = dcs.ireg_base; /* generate the (internal, thats why the pulse) irq */ - cpunum_set_input_line(machine, dcs.cpunum, ADSP2105_IRQ1, PULSE_LINE); + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2105_IRQ1, PULSE_LINE); } /* store it */ @@ -1953,17 +1953,17 @@ static TIMER_CALLBACK( sport0_irq ) /* note that there is non-interrupt code that reads/modifies/writes the output_control */ /* register; if we don't interlock it, we will eventually lose sound (see CarnEvil) */ /* so we skip the SPORT interrupt if we read with output_control within the last 5 cycles */ - if ((cpunum_gettotalcycles(dcs.cpunum) - dcs.output_control_cycles) > 5) - cpunum_set_input_line(machine, dcs.cpunum, ADSP2115_SPORT0_RX, PULSE_LINE); + if ((cpu_get_total_cycles(machine->cpu[dcs.cpunum]) - dcs.output_control_cycles) > 5) + cpu_set_input_line(machine->cpu[dcs.cpunum], ADSP2115_SPORT0_RX, PULSE_LINE); } -static void recompute_sample_rate(void) +static void recompute_sample_rate(running_machine *machine) { /* calculate how long until we generate an interrupt */ /* frequency the time per each bit sent */ - attotime sample_period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(dcs.cpunum)), 2 * (dcs.control_regs[S1_SCLKDIV_REG] + 1)); + attotime sample_period = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(machine->cpu[dcs.cpunum])), 2 * (dcs.control_regs[S1_SCLKDIV_REG] + 1)); /* now put it down to samples, so we know what the channel frequency has to be */ sample_period = attotime_mul(sample_period, 16 * dcs.channels); @@ -2016,7 +2016,7 @@ static void sound_tx_callback(int port, INT32 data) dcs.ireg_base = source; /* recompute the sample rate and timer */ - recompute_sample_rate(); + recompute_sample_rate(Machine); return; } else @@ -2038,7 +2038,7 @@ static void sound_tx_callback(int port, INT32 data) static READ16_HANDLER( dcs_polling_r ) { - activecpu_eat_cycles(1000); + cpu_eat_cycles(machine->activecpu, 1000); return *dcs_polling_base; } diff --git a/src/mame/audio/dkong.c b/src/mame/audio/dkong.c index b52b90dcd2a..e6d8fd8c80f 100644 --- a/src/mame/audio/dkong.c +++ b/src/mame/audio/dkong.c @@ -1135,9 +1135,9 @@ static WRITE8_HANDLER( dkong_p1_w ) WRITE8_HANDLER( dkong_audio_irq_w ) { if (data) - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } diff --git a/src/mame/audio/exidy.c b/src/mame/audio/exidy.c index 8d08ad58bbc..eef52b3533a 100644 --- a/src/mame/audio/exidy.c +++ b/src/mame/audio/exidy.c @@ -114,7 +114,7 @@ static double freq_to_step; static void update_irq_state(running_machine *machine, /* unused */ int state) { - cpunum_set_input_line(machine, 1, M6502_IRQ_LINE, (pia_get_irq_b(1) | riot_irq_state) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6502_IRQ_LINE, (pia_get_irq_b(1) | riot_irq_state) ? ASSERT_LINE : CLEAR_LINE); } @@ -399,7 +399,7 @@ static void r6532_irq(const device_config *device, int state) static void r6532_porta_w(const device_config *device, UINT8 newdata, UINT8 olddata) { if (has_mc3417) - cpunum_set_input_line(device->machine, 2, INPUT_LINE_RESET, (newdata & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[2], INPUT_LINE_RESET, (newdata & 0x10) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/audio/exidy440.c b/src/mame/audio/exidy440.c index 41f4dcea72d..2015d928d92 100644 --- a/src/mame/audio/exidy440.c +++ b/src/mame/audio/exidy440.c @@ -340,7 +340,7 @@ static void channel_update(void *param, stream_sample_t **inputs, stream_sample_ static READ8_HANDLER( sound_command_r ) { /* clear the FIRQ that got us here and acknowledge the read to the main CPU */ - cpunum_set_input_line(machine, 1, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 1, CLEAR_LINE); exidy440_sound_command_ack = 1; return exidy440_sound_command; @@ -376,7 +376,7 @@ static WRITE8_HANDLER( sound_volume_w ) static WRITE8_HANDLER( sound_interrupt_clear_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } diff --git a/src/mame/audio/gottlieb.c b/src/mame/audio/gottlieb.c index 30a5471e156..180ba3629a3 100644 --- a/src/mame/audio/gottlieb.c +++ b/src/mame/audio/gottlieb.c @@ -96,7 +96,7 @@ static void gottlieb1_sh_w(const device_config *riot, UINT8 data) static void snd_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 1, M6502_IRQ_LINE, state); + cpu_set_input_line(device->machine->cpu[1], M6502_IRQ_LINE, state); } @@ -109,7 +109,7 @@ static UINT8 r6532_portb_r(const device_config *device, UINT8 olddata) static void r6532_portb_w(const device_config *device, UINT8 newdata, UINT8 olddata) { /* unsure if this is ever used, but the NMI is connected to the RIOT's PB7 */ - cpunum_set_input_line(device->machine, 1, INPUT_LINE_NMI, (newdata & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, (newdata & 0x80) ? CLEAR_LINE : ASSERT_LINE); } @@ -221,7 +221,7 @@ void gottlieb_knocker(void) /* callback for the timer */ static TIMER_CALLBACK( gottlieb_nmi_generate ) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } diff --git a/src/mame/audio/harddriv.c b/src/mame/audio/harddriv.c index 1cd8452e4dc..98e9e1c4380 100644 --- a/src/mame/audio/harddriv.c +++ b/src/mame/audio/harddriv.c @@ -67,8 +67,8 @@ void hdsnd_init(running_machine *machine) static void update_68k_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, hdcpu_sound, 1, mainflag ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, hdcpu_sound, 3, irq68k ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_sound], 1, mainflag ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_sound], 3, irq68k ? ASSERT_LINE : CLEAR_LINE); } @@ -110,8 +110,8 @@ WRITE16_HANDLER( hd68k_snd_data_w ) WRITE16_HANDLER( hd68k_snd_reset_w ) { - cpunum_set_input_line(machine, hdcpu_sound, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, hdcpu_sound, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_sound], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_sound], INPUT_LINE_RESET, CLEAR_LINE); mainflag = soundflag = 0; update_68k_interrupts(machine); logerror("%06X:Reset sound\n", cpu_get_previouspc(machine->activecpu)); @@ -214,7 +214,7 @@ WRITE16_HANDLER( hdsnd68k_latches_w ) case 4: /* RES320 */ logerror("%06X:RES320=%d\n", cpu_get_previouspc(machine->activecpu), data); if (hdcpu_sounddsp != -1) - cpunum_set_input_line(machine, hdcpu_sounddsp, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_sounddsp], INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE); break; case 7: /* LED */ @@ -301,17 +301,17 @@ WRITE16_HANDLER( hdsnd68k_320com_w ) READ16_HANDLER( hdsnddsp_get_bio ) { - UINT64 cycles_since_last_bio = activecpu_gettotalcycles() - last_bio_cycles; + UINT64 cycles_since_last_bio = cpu_get_total_cycles(machine->activecpu) - last_bio_cycles; INT32 cycles_until_bio = CYCLES_PER_BIO - cycles_since_last_bio; /* if we're not at the next BIO yet, advance us there */ if (cycles_until_bio > 0) { - activecpu_adjust_icount(-cycles_until_bio); + cpu_adjust_icount(machine->activecpu, -cycles_until_bio); last_bio_cycles += CYCLES_PER_BIO; } else - last_bio_cycles = activecpu_gettotalcycles(); + last_bio_cycles = cpu_get_total_cycles(machine->activecpu); return ASSERT_LINE; } diff --git a/src/mame/audio/irem.c b/src/mame/audio/irem.c index f04cf765aa5..93f5c966cd8 100644 --- a/src/mame/audio/irem.c +++ b/src/mame/audio/irem.c @@ -40,7 +40,7 @@ WRITE8_HANDLER( irem_sound_cmd_w ) if ((data & 0x80) == 0) soundlatch_w(machine, 0, data & 0x7f); else - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } @@ -147,7 +147,7 @@ static WRITE8_HANDLER( ay8910_1_porta_w ) static WRITE8_HANDLER( sound_irq_ack_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } @@ -175,7 +175,7 @@ static WRITE8_HANDLER( m62_adpcm_w ) static void adpcm_int(running_machine *machine, int data) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); /* the first MSM5205 clocks the second */ if (sndti_exists(SOUND_MSM5205, 1)) diff --git a/src/mame/audio/jaguar.c b/src/mame/audio/jaguar.c index bb7e833d752..6696fa779c9 100644 --- a/src/mame/audio/jaguar.c +++ b/src/mame/audio/jaguar.c @@ -190,15 +190,15 @@ static TIMER_CALLBACK( serial_callback ); * *************************************/ -void jaguar_dsp_suspend(void) +void jaguar_dsp_suspend(running_machine *machine) { - cpunum_suspend(2, SUSPEND_REASON_SPIN, 1); + cpu_suspend(machine->cpu[2], SUSPEND_REASON_SPIN, 1); } -void jaguar_dsp_resume(void) +void jaguar_dsp_resume(running_machine *machine) { - cpunum_resume(2, SUSPEND_REASON_SPIN); + cpu_resume(machine->cpu[2], SUSPEND_REASON_SPIN); } @@ -213,11 +213,11 @@ static void update_gpu_irq(void) { if (gpu_irq_state & dsp_regs[JINTCTRL] & 0x1f) { - cpunum_set_input_line(Machine, 1, 1, ASSERT_LINE); - jaguar_gpu_resume(); + cpu_set_input_line(Machine->cpu[1], 1, ASSERT_LINE); + jaguar_gpu_resume(Machine); } else - cpunum_set_input_line(Machine, 1, 1, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[1], 1, CLEAR_LINE); } @@ -374,7 +374,7 @@ static WRITE32_HANDLER( dsp_flags_w ) { UINT32 r30 = cpu_get_reg(machine->activecpu, JAGUAR_R30) & 0xffffff; if (r30 >= 0xf1b124 && r30 <= 0xf1b126) - jaguar_dsp_suspend(); + jaguar_dsp_suspend(machine); } } } @@ -394,8 +394,8 @@ static WRITE32_HANDLER( dsp_flags_w ) static TIMER_CALLBACK( serial_chunky_callback ) { /* assert the A2S IRQ on CPU #2 (DSP) */ - cpunum_set_input_line(machine, 2, 1, ASSERT_LINE); - jaguar_dsp_resume(); + cpu_set_input_line(machine->cpu[2], 1, ASSERT_LINE); + jaguar_dsp_resume(machine); /* fix flaky code in interrupt handler which thwarts our speedup */ if ((jaguar_dsp_ram[0x3e/4] & 0xffff) == 0xbfbc && @@ -413,8 +413,8 @@ static TIMER_CALLBACK( serial_chunky_callback ) static TIMER_CALLBACK( serial_callback ) { /* assert the A2S IRQ on CPU #2 (DSP) */ - cpunum_set_input_line(machine, 2, 1, ASSERT_LINE); - jaguar_dsp_resume(); + cpu_set_input_line(machine->cpu[2], 1, ASSERT_LINE); + jaguar_dsp_resume(machine); } #endif diff --git a/src/mame/audio/jedi.c b/src/mame/audio/jedi.c index 2c6b9050611..3724ce0fd83 100644 --- a/src/mame/audio/jedi.c +++ b/src/mame/audio/jedi.c @@ -60,7 +60,7 @@ static SOUND_RESET( jedi ) static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 1, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6502_IRQ_LINE, CLEAR_LINE); } @@ -73,7 +73,7 @@ static WRITE8_HANDLER( irq_ack_w ) WRITE8_HANDLER( jedi_audio_reset_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/audio/leland.c b/src/mame/audio/leland.c index 4411642457e..8e0ec6ba25b 100644 --- a/src/mame/audio/leland.c +++ b/src/mame/audio/leland.c @@ -616,7 +616,7 @@ static IRQ_CALLBACK(int_callback) if (LOG_INTERRUPTS) logerror("(%f) **** Acknowledged interrupt vector %02X\n", attotime_to_double(timer_get_time()), i80186.intr.poll_status & 0x1f); /* clear the interrupt */ - cpu_set_info_int(machine->activecpu, CPUINFO_INT_INPUT_STATE + 0, CLEAR_LINE); + cpu_set_info_int(device->machine->activecpu, CPUINFO_INT_INPUT_STATE + 0, CLEAR_LINE); i80186.intr.pending = 0; /* clear the request and set the in-service bit */ @@ -724,7 +724,7 @@ generate_int: /* generate the appropriate interrupt */ i80186.intr.poll_status = 0x8000 | new_vector; if (!i80186.intr.pending) - cpunum_set_input_line(Machine, 2, 0, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[2], 0, ASSERT_LINE); i80186.intr.pending = 1; if (LOG_INTERRUPTS) logerror("(%f) **** Requesting interrupt vector %02X\n", attotime_to_double(timer_get_time()), new_vector); } @@ -1093,7 +1093,7 @@ static READ16_HANDLER( i80186_internal_port_r ) case 0x24/2: if (LOG_PORTS) logerror("%05X:read 80186 interrupt poll\n", cpu_get_pc(machine->activecpu)); if (i80186.intr.poll_status & 0x8000) - int_callback(machine, 0); + int_callback(machine->activecpu, 0); return i80186.intr.poll_status; case 0x26/2: @@ -1429,7 +1429,7 @@ static WRITE16_HANDLER( i80186_internal_port_w ) /* we need to do this at a time when the 80186 context is swapped in */ /* this register is generally set once at startup and never again, so it's a good */ /* time to set it up */ - cpunum_set_irq_callback(cpunum_get_active(), int_callback); + cpu_set_irq_callback(machine->activecpu, int_callback); break; case 0xc0/2: @@ -1660,14 +1660,14 @@ WRITE8_HANDLER( leland_80186_control_w ) } /* /RESET */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, data & 0x80 ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, data & 0x80 ? CLEAR_LINE : ASSERT_LINE); /* /NMI */ /* If the master CPU doesn't get a response by the time it's ready to send the next command, it uses an NMI to force the issue; unfortunately, this seems to really screw up the sound system. It turns out it's better to just wait for the original interrupt to occur naturally */ -/* cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, data & 0x40 ? CLEAR_LINE : ASSERT_LINE);*/ +/* cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, data & 0x40 ? CLEAR_LINE : ASSERT_LINE);*/ /* INT0 */ if (data & 0x20) diff --git a/src/mame/audio/mcr.c b/src/mame/audio/mcr.c index 5feaa562803..5b67f791d7f 100644 --- a/src/mame/audio/mcr.c +++ b/src/mame/audio/mcr.c @@ -315,14 +315,14 @@ static INTERRUPT_GEN( ssio_14024_clock ) /* if the low 5 bits clocked to 0, bit 6 has changed state */ if ((ssio_14024_count & 0x3f) == 0) - cpunum_set_input_line(machine, ssio_sound_cpu, 0, (ssio_14024_count & 0x40) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(device, 0, (ssio_14024_count & 0x40) ? ASSERT_LINE : CLEAR_LINE); } static READ8_HANDLER( ssio_irq_clear ) { /* a read here asynchronously resets the 14024 count, clearing /SINT */ ssio_14024_count = 0; - cpunum_set_input_line(machine, ssio_sound_cpu, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[ssio_sound_cpu], 0, CLEAR_LINE); return 0xff; } @@ -398,7 +398,7 @@ void ssio_reset_w(int state) { int i; - cpunum_set_input_line(Machine, ssio_sound_cpu, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[ssio_sound_cpu], INPUT_LINE_RESET, ASSERT_LINE); /* latches also get reset */ for (i = 0; i < 4; i++) @@ -408,7 +408,7 @@ void ssio_reset_w(int state) } /* going low resets and reactivates the CPU */ else - cpunum_set_input_line(Machine, ssio_sound_cpu, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[ssio_sound_cpu], INPUT_LINE_RESET, CLEAR_LINE); } READ8_HANDLER( ssio_input_port_r ) @@ -534,7 +534,7 @@ static void csdeluxe_irq(running_machine *machine, int state) { int combined_state = pia_get_irq_a(0) | pia_get_irq_b(0); - cpunum_set_input_line(machine, csdeluxe_sound_cpu, 4, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[csdeluxe_sound_cpu], 4, combined_state ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( csdeluxe_delayed_data_w ) @@ -544,7 +544,7 @@ static TIMER_CALLBACK( csdeluxe_delayed_data_w ) /* oftentimes games will write one nibble at a time; the sync on this is very */ /* important, so we boost the interleave briefly while this happens */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } static READ16_HANDLER( csdeluxe_pia_r ) @@ -581,7 +581,7 @@ READ8_HANDLER( csdeluxe_status_r ) void csdeluxe_reset_w(int state) { - cpunum_set_input_line(Machine, csdeluxe_sound_cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[csdeluxe_sound_cpu], INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); } @@ -657,7 +657,7 @@ static void soundsgood_irq(running_machine *machine, int state) { int combined_state = pia_get_irq_a(1) | pia_get_irq_b(1); - cpunum_set_input_line(machine, soundsgood_sound_cpu, 4, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[soundsgood_sound_cpu], 4, combined_state ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( soundsgood_delayed_data_w ) @@ -667,7 +667,7 @@ static TIMER_CALLBACK( soundsgood_delayed_data_w ) /* oftentimes games will write one nibble at a time; the sync on this is very */ /* important, so we boost the interleave briefly while this happens */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(250)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(250)); } @@ -685,7 +685,7 @@ READ8_HANDLER( soundsgood_status_r ) void soundsgood_reset_w(int state) { //if (state) mame_printf_debug("SG Reset\n"); - cpunum_set_input_line(Machine, soundsgood_sound_cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[soundsgood_sound_cpu], INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); } @@ -751,7 +751,7 @@ static void turbocs_irq(running_machine *machine, int state) { int combined_state = pia_get_irq_a(0) | pia_get_irq_b(0); - cpunum_set_input_line(machine, turbocs_sound_cpu, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[turbocs_sound_cpu], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( turbocs_delayed_data_w ) @@ -761,7 +761,7 @@ static TIMER_CALLBACK( turbocs_delayed_data_w ) /* oftentimes games will write one nibble at a time; the sync on this is very */ /* important, so we boost the interleave briefly while this happens */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } @@ -778,7 +778,7 @@ READ8_HANDLER( turbocs_status_r ) void turbocs_reset_w(int state) { - cpunum_set_input_line(Machine, turbocs_sound_cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[turbocs_sound_cpu], INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); } @@ -884,7 +884,7 @@ static void squawkntalk_irq(running_machine *machine, int state) { int combined_state = pia_get_irq_a(0) | pia_get_irq_b(0) | pia_get_irq_a(1) | pia_get_irq_b(1); - cpunum_set_input_line(machine, squawkntalk_sound_cpu, M6808_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[squawkntalk_sound_cpu], M6808_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( squawkntalk_delayed_data_w ) @@ -902,7 +902,7 @@ WRITE8_HANDLER( squawkntalk_data_w ) void squawkntalk_reset_w(int state) { - cpunum_set_input_line(Machine, squawkntalk_sound_cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[squawkntalk_sound_cpu], INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/audio/n8080.c b/src/mame/audio/n8080.c index 4c8ac72520e..fc5dd5a8d9b 100644 --- a/src/mame/audio/n8080.c +++ b/src/mame/audio/n8080.c @@ -201,7 +201,7 @@ static void spacefev_sound_pins_changed(void) } if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) { - cpunum_set_input_line(Machine, 1, 0, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE); } } @@ -224,7 +224,7 @@ static void sheriff_sound_pins_changed(void) } if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5))) { - cpunum_set_input_line(Machine, 1, 0, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE); } } @@ -239,7 +239,7 @@ static void helifire_sound_pins_changed(void) if (changes & (1 << 6)) { - cpunum_set_input_line(Machine, 1, 0, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE); } } diff --git a/src/mame/audio/namco54.c b/src/mame/audio/namco54.c index 9048182c4cd..0e6266558df 100644 --- a/src/mame/audio/namco54.c +++ b/src/mame/audio/namco54.c @@ -110,7 +110,7 @@ ADDRESS_MAP_END static TIMER_CALLBACK( namco_54xx_irq_clear ) { - cpunum_set_input_line(machine, param, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[param], 0, CLEAR_LINE); } void namco_54xx_write(UINT8 data) @@ -122,7 +122,7 @@ void namco_54xx_write(UINT8 data) timer_call_after_resynch(NULL, data, namco_54xx_latch_callback); - cpunum_set_input_line(Machine, cpunum, 0, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[cpunum], 0, ASSERT_LINE); // The execution time of one instruction is ~4us, so we must make sure to // give the cpu time to poll the /IRQ input before we clear it. diff --git a/src/mame/audio/namcoc7x.c b/src/mame/audio/namcoc7x.c index e8b04cc300e..ecbd6edb878 100644 --- a/src/mame/audio/namcoc7x.c +++ b/src/mame/audio/namcoc7x.c @@ -38,7 +38,7 @@ static READ16_HANDLER( speedup_r ) { if ((cpu_get_pc(machine->activecpu) == 0xc12d) && (!(su_82 & 0xff00))) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return su_82; @@ -187,9 +187,9 @@ ADDRESS_MAP_END INTERRUPT_GEN( namcoc7x_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 1, M37710_LINE_IRQ0, HOLD_LINE); + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE); else - cpunum_set_input_line(machine, 1, M37710_LINE_IRQ2, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_IRQ2, HOLD_LINE); } diff --git a/src/mame/audio/polepos.c b/src/mame/audio/polepos.c index 36a4d45bc1c..6af25576548 100644 --- a/src/mame/audio/polepos.c +++ b/src/mame/audio/polepos.c @@ -64,7 +64,7 @@ static void engine_sound_update(void *param, stream_sample_t **inputs, stream_sa } /* determine the effective clock rate */ - clock = (cpunum_get_clock(0) / 16) * ((sample_msb + 1) * 64 + sample_lsb + 1) / (64*64); + clock = (cpu_get_clock(Machine->cpu[0]) / 16) * ((sample_msb + 1) * 64 + sample_lsb + 1) / (64*64); step = (clock << 12) / OUTPUT_RATE; /* determine the volume */ diff --git a/src/mame/audio/redalert.c b/src/mame/audio/redalert.c index 56f1c002793..c18d3420403 100644 --- a/src/mame/audio/redalert.c +++ b/src/mame/audio/redalert.c @@ -81,7 +81,7 @@ WRITE8_HANDLER( redalert_audio_command_w ) /* D7 is also connected to the NMI input of the CPU - the NMI is actually toggled by a 74121 */ if ((data & 0x80) == 0x00) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } @@ -165,7 +165,7 @@ static SOUND_START( redalert_audio ) WRITE8_HANDLER( redalert_voice_command_w ) { soundlatch2_w(machine, 0, (data & 0x78) >> 3); - cpunum_set_input_line(machine, 2, I8085_RST75_LINE, (~data & 0x80) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], I8085_RST75_LINE, (~data & 0x80) ? ASSERT_LINE : CLEAR_LINE); } @@ -290,7 +290,7 @@ WRITE8_HANDLER( demoneye_audio_command_w ) { /* the byte is connected to port A of the AY8910 */ soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/audio/scramble.c b/src/mame/audio/scramble.c index 20007d2328b..a796f5ffb56 100644 --- a/src/mame/audio/scramble.c +++ b/src/mame/audio/scramble.c @@ -47,7 +47,7 @@ static const int scramble_timer[10] = READ8_HANDLER( scramble_portB_r ) { - return scramble_timer[(activecpu_gettotalcycles()/512) % 10]; + return scramble_timer[(cpu_get_total_cycles(machine->activecpu)/512) % 10]; } @@ -76,7 +76,7 @@ static const int frogger_timer[10] = READ8_HANDLER( frogger_portB_r ) { - return frogger_timer[(activecpu_gettotalcycles()/512) % 10]; + return frogger_timer[(cpu_get_total_cycles(machine->activecpu)/512) % 10]; } @@ -145,24 +145,24 @@ static void scramble_sh_7474_callback(void) { /* the Q bar is connected to the Z80's INT line. But since INT is complemented, */ /* we need to complement Q bar */ - cpunum_set_input_line(Machine, 1, 0, !TTL7474_output_comp_r(2) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[1], 0, !TTL7474_output_comp_r(2) ? ASSERT_LINE : CLEAR_LINE); } static void sfx_sh_7474_callback(void) { /* the Q bar is connected to the Z80's INT line. But since INT is complemented, */ /* we need to complement Q bar */ - cpunum_set_input_line(Machine, 2, 0, !TTL7474_output_comp_r(3) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[2], 0, !TTL7474_output_comp_r(3) ? ASSERT_LINE : CLEAR_LINE); } WRITE8_HANDLER( hotshock_sh_irqtrigger_w ) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } READ8_HANDLER( hotshock_soundlatch_r ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); return soundlatch_r(machine,0); } @@ -211,7 +211,7 @@ static const struct TTL7474_interface sfx_sh_7474_intf = void scramble_sh_init(void) { - cpunum_set_irq_callback(1, scramble_sh_irq_callback); + cpu_set_irq_callback(Machine->cpu[1], scramble_sh_irq_callback); TTL7474_config(2, &scramble_sh_7474_intf); @@ -221,7 +221,7 @@ void scramble_sh_init(void) void sfx_sh_init(void) { - cpunum_set_irq_callback(2, sfx_sh_irq_callback); + cpu_set_irq_callback(Machine->cpu[2], sfx_sh_irq_callback); TTL7474_config(3, &sfx_sh_7474_intf); diff --git a/src/mame/audio/segag80r.c b/src/mame/audio/segag80r.c index ac1e3e23539..c6b6d174431 100644 --- a/src/mame/audio/segag80r.c +++ b/src/mame/audio/segag80r.c @@ -933,8 +933,8 @@ static WRITE8_DEVICE_HANDLER( n7751_command_w ) D3 = /INT line */ n7751_command = data & 0x07; - cpunum_set_input_line(device->machine, 1, 0, ((data & 0x08) == 0) ? ASSERT_LINE : CLEAR_LINE); - cpu_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpu_set_input_line(device->machine->cpu[1], 0, ((data & 0x08) == 0) ? ASSERT_LINE : CLEAR_LINE); + cpuexec_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(100)); } diff --git a/src/mame/audio/segasnd.c b/src/mame/audio/segasnd.c index f8826c1fffa..276f42cb76b 100644 --- a/src/mame/audio/segasnd.c +++ b/src/mame/audio/segasnd.c @@ -215,7 +215,7 @@ static TIMER_CALLBACK( delayed_speech_w ) speech_latch = data; /* the high bit goes directly to the INT line */ - cpunum_set_input_line(machine, 1, 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); /* a clock on the high bit clocks a 1 into T0 */ if (!(old & 0x80) && (data & 0x80)) @@ -314,7 +314,7 @@ static TIMER_CALLBACK( increment_t1_clock ) void sega_usb_reset(UINT8 t1_clock_mask) { /* halt the USB CPU at reset time */ - cpunum_set_input_line(Machine, usb.cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[usb.cpunum], INPUT_LINE_RESET, ASSERT_LINE); /* start the clock timer */ timer_pulse(attotime_mul(ATTOTIME_IN_HZ(USB_2MHZ_CLOCK), 256), NULL, 0, increment_t1_clock); @@ -333,7 +333,7 @@ READ8_HANDLER( sega_usb_status_r ) { LOG(("%04X:usb_data_r = %02X\n", cpu_get_pc(machine->activecpu), (usb.out_latch & 0x81) | (usb.in_latch & 0x7e))); - activecpu_adjust_icount(-200); + cpu_adjust_icount(machine->activecpu, -200); /* only bits 0 and 7 are controlled by the I8035; the remaining */ /* bits 1-6 reflect the current input latch values */ @@ -346,7 +346,7 @@ static TIMER_CALLBACK( delayed_usb_data_w ) int data = param; /* look for rising/falling edges of bit 7 to control the RESET line */ - cpunum_set_input_line(machine, usb.cpunum, INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[usb.cpunum], INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE); /* if the CLEAR line is set, the low 7 bits of the input are ignored */ if ((usb.last_p2_value & 0x40) == 0) @@ -363,7 +363,7 @@ WRITE8_HANDLER( sega_usb_data_w ) timer_call_after_resynch(NULL, data, delayed_usb_data_w); /* boost the interleave so that sequences can be sent */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(250)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(250)); } diff --git a/src/mame/audio/seibu.c b/src/mame/audio/seibu.c index 28b9b415827..6864d2c9755 100644 --- a/src/mame/audio/seibu.c +++ b/src/mame/audio/seibu.c @@ -317,9 +317,9 @@ static void update_irq_lines(running_machine *machine, int param) } if ((irq1 & irq2) == 0xff) /* no IRQs pending */ - cpunum_set_input_line(machine, sound_cpu,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpu],0,CLEAR_LINE); else /* IRQ pending */ - cpunum_set_input_line_and_vector(machine, sound_cpu,0,ASSERT_LINE,irq1 & irq2); + cpu_set_input_line_and_vector(machine->cpu[sound_cpu],0,ASSERT_LINE,irq1 & irq2); } WRITE8_HANDLER( seibu_irq_clear_w ) diff --git a/src/mame/audio/snes.c b/src/mame/audio/snes.c index 7550c28fc61..a7c3c293518 100644 --- a/src/mame/audio/snes.c +++ b/src/mame/audio/snes.c @@ -1311,7 +1311,7 @@ WRITE8_HANDLER( spc_io_w ) case 0x7: /* Port 3 */ // mame_printf_debug("SPC: %02x to APU @ %d (PC=%x)\n", data, offset&3, cpu_get_pc(machine->activecpu)); spc_port_out[offset - 4] = data; - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); break; case 0xA: /* Timer 0 */ case 0xB: /* Timer 1 */ diff --git a/src/mame/audio/spacefb.c b/src/mame/audio/spacefb.c index abeeb1f7d54..ed83066b920 100644 --- a/src/mame/audio/spacefb.c +++ b/src/mame/audio/spacefb.c @@ -36,7 +36,7 @@ READ8_HANDLER( spacefb_audio_t1_r ) WRITE8_HANDLER( spacefb_port_1_w ) { - cpunum_set_input_line(machine, 1, 0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE); /* enemy killed */ if (!(data & 0x01) && (spacefb_sound_latch & 0x01)) sample_start(0,0,0); diff --git a/src/mame/audio/starwars.c b/src/mame/audio/starwars.c index 51d4dbdd203..4b613feadce 100644 --- a/src/mame/audio/starwars.c +++ b/src/mame/audio/starwars.c @@ -63,7 +63,7 @@ static void r6532_porta_w(const device_config *device, UINT8 newdata, UINT8 oldd static void snd_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 1, M6809_IRQ_LINE, state); + cpu_set_input_line(device->machine->cpu[1], M6809_IRQ_LINE, state); } @@ -89,7 +89,7 @@ static TIMER_CALLBACK( sound_callback ) { riot6532_porta_in_set(riot, 0x40, 0x40); main_data = param; - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } @@ -132,7 +132,7 @@ static TIMER_CALLBACK( main_callback ) riot6532_porta_in_set(riot, 0x80, 0x80); sound_data = param; - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } WRITE8_HANDLER( starwars_main_wr_w ) @@ -146,5 +146,5 @@ WRITE8_HANDLER( starwars_soundrst_w ) riot6532_porta_in_set(riot, 0x00, 0xc0); /* reset sound CPU here */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } diff --git a/src/mame/audio/t5182.c b/src/mame/audio/t5182.c index bc3989f5b41..04fb70cf99d 100644 --- a/src/mame/audio/t5182.c +++ b/src/mame/audio/t5182.c @@ -197,9 +197,9 @@ static TIMER_CALLBACK( setirq_callback ) return; if (irqstate == 0) /* no IRQs pending */ - cpunum_set_input_line(machine, cpunum,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpunum],0,CLEAR_LINE); else /* IRQ pending */ - cpunum_set_input_line(machine, cpunum,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[cpunum],0,ASSERT_LINE); } diff --git a/src/mame/audio/taito_en.c b/src/mame/audio/taito_en.c index fd3d7c107d7..75a1437ee9f 100644 --- a/src/mame/audio/taito_en.c +++ b/src/mame/audio/taito_en.c @@ -73,8 +73,8 @@ static TIMER_CALLBACK( taito_en_timer_callback ) { /* Only cause IRQ if the mask is set to allow it */ if (m68681_imr&8) { - cpunum_set_input_line_vector(1, 6, vector_reg); - cpunum_set_input_line(machine, 1, 6, ASSERT_LINE); + cpu_set_input_line_vector(machine->cpu[1], 6, vector_reg); + cpu_set_input_line(machine->cpu[1], 6, ASSERT_LINE); imr_status|=0x8; } } @@ -97,7 +97,7 @@ READ16_HANDLER(f3_68681_r) /* IRQ ack */ if (offset==0xf) { - cpunum_set_input_line(machine, 1, 6, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 6, CLEAR_LINE); return 0; } @@ -258,7 +258,7 @@ void taito_f3_soundsystem_reset(running_machine *machine) sound_ram[2]=ROM[0x80002]; sound_ram[3]=ROM[0x80003]; - //cpunum_set_input_line(Machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + //cpu_set_input_line(Machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } const es5505_interface es5505_taito_f3_config = diff --git a/src/mame/audio/taitosnd.c b/src/mame/audio/taitosnd.c index 4d4162f1a8d..23611bc48af 100644 --- a/src/mame/audio/taitosnd.c +++ b/src/mame/audio/taitosnd.c @@ -45,7 +45,7 @@ static void Interrupt_Controller(void) { if ( tc0140syt.nmi_req && tc0140syt.nmi_enabled ) { - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); tc0140syt.nmi_req = 0; } } @@ -99,11 +99,11 @@ WRITE8_HANDLER( taitosound_comm_w ) //#endif /* this does a hi-lo transition to reset the sound cpu */ if (data) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); else { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); - cpu_spin(); /* otherwise no sound in driftout */ + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); + cpu_spin(machine->activecpu); /* otherwise no sound in driftout */ } break; @@ -176,7 +176,7 @@ WRITE8_HANDLER( taitosound_slave_comm_w ) tc0140syt.masterdata[tc0140syt.submode ++] = data; tc0140syt.status |= TC0140SYT_PORT01_FULL_MASTER; //logerror("taitosnd: Slave cpu sends 0/1 : %01x%01x\n",tc0140syt.masterdata[1],tc0140syt.masterdata[0]); - cpu_spin(); /* writing should take longer than emulated, so spin */ + cpu_spin(machine->activecpu); /* writing should take longer than emulated, so spin */ break; case 0x02: // mode #2 @@ -188,7 +188,7 @@ WRITE8_HANDLER( taitosound_slave_comm_w ) tc0140syt.masterdata[tc0140syt.submode ++] = data; tc0140syt.status |= TC0140SYT_PORT23_FULL_MASTER; //logerror("taitosnd: Slave cpu sends 2/3 : %01x%01x\n",tc0140syt.masterdata[3],tc0140syt.masterdata[2]); - cpu_spin(); /* writing should take longer than emulated, so spin */ + cpu_spin(machine->activecpu); /* writing should take longer than emulated, so spin */ break; case 0x04: // port status diff --git a/src/mame/audio/timeplt.c b/src/mame/audio/timeplt.c index 58484aec55f..810401045c6 100644 --- a/src/mame/audio/timeplt.c +++ b/src/mame/audio/timeplt.c @@ -65,7 +65,7 @@ static READ8_HANDLER( timeplt_portB_r ) { 0x00, 0x10, 0x20, 0x30, 0x40, 0x90, 0xa0, 0xb0, 0xa0, 0xd0 }; - return timeplt_timer[(activecpu_gettotalcycles() / 512) % 10]; + return timeplt_timer[(cpu_get_total_cycles(machine->activecpu) / 512) % 10]; } @@ -109,7 +109,7 @@ WRITE8_HANDLER( timeplt_sh_irqtrigger_w ) if (timeplt_last_irq_state == 0 && data) { /* setting bit 0 low then high triggers IRQ on the sound CPU */ - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } timeplt_last_irq_state = data; diff --git a/src/mame/audio/trackfld.c b/src/mame/audio/trackfld.c index eb00dcf7616..311663fcea5 100644 --- a/src/mame/audio/trackfld.c +++ b/src/mame/audio/trackfld.c @@ -22,7 +22,7 @@ static int SN76496_latch; READ8_HANDLER( trackfld_sh_timer_r ) { - UINT32 clock = activecpu_gettotalcycles() / TIMER_RATE; + UINT32 clock = cpu_get_total_cycles(machine->activecpu) / TIMER_RATE; return clock & 0xF; } @@ -55,7 +55,7 @@ WRITE8_HANDLER( trackfld_sound_w ) READ8_HANDLER( hyperspt_sh_timer_r ) { - UINT32 clock = activecpu_gettotalcycles() / TIMER_RATE; + UINT32 clock = cpu_get_total_cycles(machine->activecpu) / TIMER_RATE; return (clock & 0x3) | (vlm5030_bsy()? 0x04 : 0); } @@ -89,7 +89,7 @@ WRITE8_HANDLER( konami_sh_irqtrigger_w ) if (last == 0 && data) { /* setting bit 0 low then high triggers IRQ on the sound CPU */ - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } last = data; diff --git a/src/mame/audio/williams.c b/src/mame/audio/williams.c index fbee6504658..51d83e5fd0e 100644 --- a/src/mame/audio/williams.c +++ b/src/mame/audio/williams.c @@ -386,15 +386,15 @@ static void init_audio_state(running_machine *machine) williams_sound_int_state = 0; if (sound_cpunum != -1) { - cpunum_set_input_line(machine, sound_cpunum, M6809_FIRQ_LINE, CLEAR_LINE); - cpunum_set_input_line(machine, sound_cpunum, M6809_IRQ_LINE, CLEAR_LINE); - cpunum_set_input_line(machine, sound_cpunum, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], INPUT_LINE_NMI, CLEAR_LINE); } if (soundalt_cpunum != -1) { - cpunum_set_input_line(machine, soundalt_cpunum, M6809_FIRQ_LINE, CLEAR_LINE); - cpunum_set_input_line(machine, soundalt_cpunum, M6809_IRQ_LINE, CLEAR_LINE); - cpunum_set_input_line(machine, soundalt_cpunum, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[soundalt_cpunum], M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[soundalt_cpunum], M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[soundalt_cpunum], INPUT_LINE_NMI, CLEAR_LINE); } } @@ -412,13 +412,13 @@ static void cvsd_ym2151_irq(running_machine *machine, int state) static void cvsd_irqa(running_machine *machine, int state) { - cpunum_set_input_line(machine, sound_cpunum, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } static void cvsd_irqb(running_machine *machine, int state) { - cpunum_set_input_line(machine, sound_cpunum, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); } @@ -429,7 +429,7 @@ static void cvsd_irqb(running_machine *machine, int state) static void adpcm_ym2151_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, sound_cpunum, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -489,11 +489,11 @@ void williams_cvsd_reset_w(int state) { cvsd_bank_select_w(Machine, 0, 0); init_audio_state(Machine); - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_RESET, ASSERT_LINE); } /* going low resets and reactivates the CPU */ else - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_RESET, CLEAR_LINE); } @@ -516,7 +516,7 @@ static WRITE8_HANDLER( narc_slave_bank_select_w ) static READ8_HANDLER( narc_command_r ) { - cpunum_set_input_line(machine, sound_cpunum, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], M6809_IRQ_LINE, CLEAR_LINE); williams_sound_int_state = 0; return soundlatch_r(machine, 0); } @@ -525,13 +525,13 @@ static READ8_HANDLER( narc_command_r ) static WRITE8_HANDLER( narc_command2_w ) { soundlatch2_w(machine, 0, data & 0xff); - cpunum_set_input_line(machine, soundalt_cpunum, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[soundalt_cpunum], M6809_FIRQ_LINE, ASSERT_LINE); } static READ8_HANDLER( narc_command2_r ) { - cpunum_set_input_line(machine, soundalt_cpunum, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[soundalt_cpunum], M6809_FIRQ_LINE, CLEAR_LINE); return soundlatch2_r(machine, 0); } @@ -578,10 +578,10 @@ static WRITE8_HANDLER( narc_slave_sync_w ) void williams_narc_data_w(int data) { soundlatch_w(Machine, 0, data & 0xff); - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_NMI, (data & 0x100) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_NMI, (data & 0x100) ? CLEAR_LINE : ASSERT_LINE); if (!(data & 0x200)) { - cpunum_set_input_line(Machine, sound_cpunum, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], M6809_IRQ_LINE, ASSERT_LINE); williams_sound_int_state = 1; } } @@ -595,14 +595,14 @@ void williams_narc_reset_w(int state) narc_master_bank_select_w(Machine, 0, 0); narc_slave_bank_select_w(Machine, 0, 0); init_audio_state(Machine); - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(Machine, soundalt_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[soundalt_cpunum], INPUT_LINE_RESET, ASSERT_LINE); } /* going low resets and reactivates the CPU */ else { - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_RESET, CLEAR_LINE); - cpunum_set_input_line(Machine, soundalt_cpunum, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[soundalt_cpunum], INPUT_LINE_RESET, CLEAR_LINE); } } @@ -638,7 +638,7 @@ static TIMER_CALLBACK( clear_irq_state ) static READ8_HANDLER( adpcm_command_r ) { - cpunum_set_input_line(machine, sound_cpunum, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpunum], M6809_IRQ_LINE, CLEAR_LINE); /* don't clear the external IRQ state for a short while; this allows the self-tests to pass */ @@ -664,9 +664,9 @@ void williams_adpcm_data_w(int data) soundlatch_w(Machine, 0, data & 0xff); if (!(data & 0x200)) { - cpunum_set_input_line(Machine, sound_cpunum, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], M6809_IRQ_LINE, ASSERT_LINE); williams_sound_int_state = 1; - cpu_boost_interleave(Machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(Machine, attotime_zero, ATTOTIME_IN_USEC(100)); } } @@ -678,11 +678,11 @@ void williams_adpcm_reset_w(int state) { adpcm_bank_select_w(Machine, 0, 0); init_audio_state(Machine); - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_RESET, ASSERT_LINE); } /* going low resets and reactivates the CPU */ else - cpunum_set_input_line(Machine, sound_cpunum, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[sound_cpunum], INPUT_LINE_RESET, CLEAR_LINE); } diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c index 4915ba3902c..0458b3ddd33 100644 --- a/src/mame/drivers/1942.c +++ b/src/mame/drivers/1942.c @@ -106,10 +106,10 @@ static WRITE8_HANDLER( c1942_bankswitch_w ) static INTERRUPT_GEN( c1942_interrupt ) { - if (cpu_getiloops() != 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf);/* RST 08h */ + if (cpu_getiloops(device) != 0) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf);/* RST 08h */ else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ } diff --git a/src/mame/drivers/20pacgal.c b/src/mame/drivers/20pacgal.c index 383c9733e47..46c37104ffd 100644 --- a/src/mame/drivers/20pacgal.c +++ b/src/mame/drivers/20pacgal.c @@ -68,7 +68,7 @@ static WRITE8_HANDLER( irqack_w ) cpu_interrupt_enable(0, bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE ); } diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index 1ad6fec87fd..45ef22cbe3e 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -176,12 +176,12 @@ GFXDECODE_END static INTERRUPT_GEN( drill_interrupt ) { - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 0,5,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],5,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c index 6eb7e8dac47..064e0aa8d20 100644 --- a/src/mame/drivers/40love.c +++ b/src/mame/drivers/40love.c @@ -246,7 +246,7 @@ static int sound_nmi_enable,pending_nmi; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); else pending_nmi = 1; } @@ -266,7 +266,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c index ed52d6f04e0..fcc44834c9f 100644 --- a/src/mame/drivers/88games.c +++ b/src/mame/drivers/88games.c @@ -29,7 +29,7 @@ VIDEO_UPDATE( 88games ); static INTERRUPT_GEN( k88games_interrupt ) { if (K052109_is_IRQ_enabled()) - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } static int zoomreadroms; @@ -68,7 +68,7 @@ static WRITE8_HANDLER( k88games_5f84_w ) static WRITE8_HANDLER( k88games_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } /* handle fake button for speed cheat for players 1 and 2 */ diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index 9c2e259b4a8..462299aa395 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -26,7 +26,7 @@ static void acefruit_update_irq(running_machine *machine, int vpos ) switch( color ) { case 0x0c: - cpunum_set_input_line(machine, 0, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE ); break; } } @@ -53,7 +53,7 @@ static VIDEO_START( acefruit ) static INTERRUPT_GEN( acefruit_vblank ) { - cpunum_set_input_line(machine, 0, 0, HOLD_LINE ); + cpu_set_input_line(device, 0, HOLD_LINE ); timer_adjust_oneshot( acefruit_refresh_timer, attotime_zero, 0 ); } diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c index 37c8c69dc44..6ff37650a8d 100644 --- a/src/mame/drivers/acommand.c +++ b/src/mame/drivers/acommand.c @@ -550,10 +550,10 @@ GFXDECODE_END static INTERRUPT_GEN( acommand_irq ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); - case 1: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + case 0: cpu_set_input_line(device, 3, HOLD_LINE); + case 1: cpu_set_input_line(device, 2, HOLD_LINE); } } diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c index 7a458c405af..c8432364767 100644 --- a/src/mame/drivers/actfancr.c +++ b/src/mame/drivers/actfancr.c @@ -69,7 +69,7 @@ static READ8_HANDLER( triothep_control_r ) static WRITE8_HANDLER( actfancr_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } /******************************************************************************/ @@ -278,7 +278,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); /* IRQ */ + cpu_set_input_line(machine->cpu[1],0,linestate); /* IRQ */ } static const ym3812_interface ym3812_config = @@ -552,7 +552,7 @@ static READ8_HANDLER( cycle_r ) if (offset==1) return actfancr_ram[0x27]; if (pc==0xe29a && ret==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 1; } @@ -567,7 +567,7 @@ static READ8_HANDLER( cyclej_r ) if (offset==1) return actfancr_ram[0x27]; if (pc==0xe2b1 && ret==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 1; } diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c index fe23917f210..4fab703f446 100644 --- a/src/mame/drivers/adp.c +++ b/src/mame/drivers/adp.c @@ -164,7 +164,7 @@ static struct static void duart_irq_handler(const device_config *device, UINT8 vector) { - cpunum_set_input_line_and_vector(device->machine, 0, 4, HOLD_LINE, vector); + cpu_set_input_line_and_vector(device->machine->cpu[0], 4, HOLD_LINE, vector); }; static void duart_tx(const device_config *device, int channel, UINT8 data) @@ -492,7 +492,7 @@ INPUT_PORTS_END /* static INTERRUPT_GEN( adp_int ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); // ??? All irqs have the same vector, and the mask used is 0 or 7 + cpu_set_input_line(device, 1, HOLD_LINE); // ??? All irqs have the same vector, and the mask used is 0 or 7 } */ diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c index 4b8ded46e6a..c00b676d951 100644 --- a/src/mame/drivers/aeroboto.c +++ b/src/mame/drivers/aeroboto.c @@ -56,7 +56,7 @@ static READ8_HANDLER( aeroboto_201_r ) static INTERRUPT_GEN( aeroboto_interrupt ) { if (!disable_irq) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); else disable_irq--; } diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index 34fdc79caf4..b2c54b57d9e 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -74,7 +74,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -84,7 +84,7 @@ static WRITE16_HANDLER( turbofrc_sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,(data >> 8) & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -93,7 +93,7 @@ static WRITE16_HANDLER( aerfboot_soundlatch_w ) if(data & 0x8000) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -1267,7 +1267,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c index b1835ef755d..e1a536d52da 100644 --- a/src/mame/drivers/airbustr.c +++ b/src/mame/drivers/airbustr.c @@ -277,7 +277,7 @@ static READ8_HANDLER( devram_r ) static WRITE8_HANDLER( master_nmi_trigger_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static void airbustr_bankswitch(running_machine *machine, const char *cpu, int bank, int data) @@ -334,7 +334,7 @@ static WRITE8_HANDLER( soundcommand_w ) { soundlatch_w(machine, 0, data); soundlatch_status = 1; // soundlatch has been written - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); // cause a nmi to sub cpu + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); // cause a nmi to sub cpu } static WRITE8_HANDLER( soundcommand2_w ) @@ -578,13 +578,13 @@ static const ym2203_interface ym2203_config = static INTERRUPT_GEN( master_interrupt ) { master_addr ^= 0x02; - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, master_addr); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, master_addr); } static INTERRUPT_GEN( slave_interrupt ) { slave_addr ^= 0x02; - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, slave_addr); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, slave_addr); } /* Machine Initialization */ diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c index e6e6f387ab3..d1909725dab 100644 --- a/src/mame/drivers/aleck64.c +++ b/src/mame/drivers/aleck64.c @@ -417,7 +417,7 @@ static const mips3_config config = static INTERRUPT_GEN( n64_vblank ) { - signal_rcp_interrupt(machine, VI_INTERRUPT); + signal_rcp_interrupt(device->machine, VI_INTERRUPT); } static MACHINE_RESET( aleck64 ) diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c index eaf937d66fc..c5f502bcf9b 100644 --- a/src/mame/drivers/aliens.c +++ b/src/mame/drivers/aliens.c @@ -30,7 +30,7 @@ static UINT8 *ram; static INTERRUPT_GEN( aliens_interrupt ) { if (K051960_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } static READ8_HANDLER( bankedram_r ) @@ -74,7 +74,7 @@ static WRITE8_HANDLER( aliens_coin_counter_w ) static WRITE8_HANDLER( aliens_sh_irqtrigger_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } static WRITE8_HANDLER( aliens_snd_bankswitch_w ) diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c index 160d64acfbc..b4b6435566b 100644 --- a/src/mame/drivers/alpha68k.c +++ b/src/mame/drivers/alpha68k.c @@ -346,7 +346,7 @@ static WRITE16_HANDLER( paddlema_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } } @@ -355,7 +355,7 @@ static WRITE16_HANDLER( tnexspce_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } //ZT @@ -1876,7 +1876,7 @@ static const ym2203_interface ym2203_config = static void YM3812_irq(running_machine *machine, int param) { - cpunum_set_input_line(machine, 1, 0, (param) ? HOLD_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (param) ? HOLD_LINE : CLEAR_LINE); } static const ym3812_interface ym3812_config = @@ -1886,10 +1886,10 @@ static const ym3812_interface ym3812_config = static INTERRUPT_GEN( alpha68k_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 1, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } //ZT @@ -3030,7 +3030,7 @@ static READ16_HANDLER( timesold_cycle_r ) int ret=shared_ram[0x4]; if (cpu_get_pc(machine->activecpu)==0x9ea2 && (ret&0xff00)==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 0x100 | (ret&0xff); } @@ -3042,7 +3042,7 @@ static READ16_HANDLER( timesol1_cycle_r ) int ret=shared_ram[0x4]; if (cpu_get_pc(machine->activecpu)==0x9e20 && (ret&0xff00)==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 0x100 | (ret&0xff); } @@ -3054,7 +3054,7 @@ static READ16_HANDLER( btlfield_cycle_r ) int ret=shared_ram[0x4]; if (cpu_get_pc(machine->activecpu)==0x9e1c && (ret&0xff00)==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 0x100 | (ret&0xff); } @@ -3066,7 +3066,7 @@ static READ16_HANDLER( skysoldr_cycle_r ) int ret=shared_ram[0x4]; if (cpu_get_pc(machine->activecpu)==0x1f4e && (ret&0xff00)==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 0x100 | (ret&0xff); } @@ -3078,7 +3078,7 @@ static READ16_HANDLER( skyadvnt_cycle_r ) int ret=shared_ram[0x4]; if (cpu_get_pc(machine->activecpu)==0x1f78 && (ret&0xff00)==0) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return 0x100 | (ret&0xff); } @@ -3090,7 +3090,7 @@ static READ16_HANDLER( gangwars_cycle_r ) int ret=shared_ram[0x103]; if (cpu_get_pc(machine->activecpu)==0xbbb6) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return (ret+2) & 0xff; } @@ -3102,7 +3102,7 @@ static READ16_HANDLER( gangwarb_cycle_r ) int ret=shared_ram[0x103]; if (cpu_get_pc(machine->activecpu)==0xbbca) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return (ret+2) & 0xff; } diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c index 060646235a3..493ec44b22b 100644 --- a/src/mame/drivers/amspdwy.c +++ b/src/mame/drivers/amspdwy.c @@ -70,7 +70,7 @@ static READ8_HANDLER( amspdwy_sound_r ) static WRITE8_HANDLER( amspdwy_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( amspdwy_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -241,7 +241,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface amspdwy_ym2151_interface = diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c index 7c3f8bce2cc..c5d24d213a2 100644 --- a/src/mame/drivers/angelkds.c +++ b/src/mame/drivers/angelkds.c @@ -540,7 +540,7 @@ static READ8_HANDLER( angelkds_sub_sound_r ) static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c index 93a9827e242..b3b9a6311b5 100644 --- a/src/mame/drivers/aquarium.c +++ b/src/mame/drivers/aquarium.c @@ -96,7 +96,7 @@ static WRITE16_HANDLER( aquarium_sound_w ) // popmessage("sound write %04x",data); soundlatch_w(machine,1,data&0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } static WRITE8_HANDLER( aquarium_z80_bank_w ) @@ -330,7 +330,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0 , irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c index 3f25c543764..498741c8f4c 100644 --- a/src/mame/drivers/arcadecl.c +++ b/src/mame/drivers/arcadecl.c @@ -83,7 +83,7 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -91,7 +91,7 @@ static void scanline_update(const device_config *screen, int scanline) { /* generate 32V signals */ if ((scanline & 32) == 0) - atarigen_scanline_int_gen(screen->machine, 0); + atarigen_scanline_int_gen(screen->machine->cpu[0]); } diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c index cdcec41e6bc..1b2587ce0ae 100644 --- a/src/mame/drivers/argus.c +++ b/src/mame/drivers/argus.c @@ -100,16 +100,16 @@ Known issues : static INTERRUPT_GEN( argus_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h */ else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ } /* Handler called by the YM2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/artmagic.c b/src/mame/drivers/artmagic.c index 856294212e6..f60456bb8e2 100644 --- a/src/mame/drivers/artmagic.c +++ b/src/mame/drivers/artmagic.c @@ -57,8 +57,8 @@ static void (*protection_handler)(running_machine *); static void update_irq_state(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, tms_irq ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, hack_irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, tms_irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, hack_irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c index 13d9a5bcb94..3538b12abc5 100644 --- a/src/mame/drivers/ashnojoe.c +++ b/src/mame/drivers/ashnojoe.c @@ -292,7 +292,7 @@ GFXDECODE_END static void ym2203_irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static WRITE8_HANDLER( ym2203_write_a ) @@ -331,7 +331,7 @@ static void ashnojoe_vclk_cb(running_machine *machine, int data) else { msm5205_data_w(0, adpcm_byte & 0xf); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } msm5205_vclk_toggle ^= 1; diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c index e47b7123fe7..9acbcbe49c3 100644 --- a/src/mame/drivers/asterix.c +++ b/src/mame/drivers/asterix.c @@ -110,7 +110,7 @@ static INTERRUPT_GEN( asterix_interrupt ) // global interrupt masking if (!K056832_is_IRQ_enabled(0)) return; - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the + cpu_set_input_line(device, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the mask used is 0 or 7 */ } @@ -121,18 +121,18 @@ static READ16_HANDLER( asterix_sound_r ) static TIMER_CALLBACK( nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( sound_arm_nmi_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); timer_set(ATTOTIME_IN_USEC(5), NULL,0,nmi_callback); } static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } // Check the routine at 7f30 in the ead version. diff --git a/src/mame/drivers/asteroid.c b/src/mame/drivers/asteroid.c index b587cfd043f..96830740d7a 100644 --- a/src/mame/drivers/asteroid.c +++ b/src/mame/drivers/asteroid.c @@ -289,7 +289,7 @@ ADDRESS_MAP_END static CUSTOM_INPUT( clock_r ) { - return (cpunum_gettotalcycles(0) & 0x100) ? 1 : 0; + return (cpu_get_total_cycles(field->port->machine->cpu[0]) & 0x100) ? 1 : 0; } static INPUT_PORTS_START( asteroid ) diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c index a59d3f82947..3ced742ada0 100644 --- a/src/mame/drivers/astinvad.c +++ b/src/mame/drivers/astinvad.c @@ -187,14 +187,14 @@ static VIDEO_UPDATE( spaceint ) static TIMER_CALLBACK( kamikaze_int_off ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static TIMER_CALLBACK( kamizake_int_gen ) { /* interrupts are asserted on every state change of the 128V line */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); param ^= 128; timer_adjust_oneshot(int_timer, video_screen_get_time_until_pos(machine->primary_screen, param, 0), param); @@ -213,7 +213,7 @@ static MACHINE_START( kamikaze ) static INPUT_CHANGED( spaceint_coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c index cd099e0d562..1012e7a2e53 100644 --- a/src/mame/drivers/astrof.c +++ b/src/mame/drivers/astrof.c @@ -85,7 +85,7 @@ static UINT16 abattle_count; static READ8_HANDLER( irq_clear_r ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); return 0; } @@ -93,7 +93,7 @@ static READ8_HANDLER( irq_clear_r ) static TIMER_DEVICE_CALLBACK( irq_callback ) { - cpunum_set_input_line(timer->machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(timer->machine->cpu[0], 0, ASSERT_LINE); } @@ -107,7 +107,7 @@ static TIMER_DEVICE_CALLBACK( irq_callback ) static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); coin_counter_w(0, newval); } @@ -115,7 +115,7 @@ static INPUT_CHANGED( coin_inserted ) static INPUT_CHANGED( service_coin_inserted ) { /* service coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index 31ca4f0a142..7c4891cb7e5 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -241,13 +241,13 @@ static int adpcm_data; static TIMER_CALLBACK( cadash_interrupt5 ) { - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 5, HOLD_LINE); } static INTERRUPT_GEN( cadash_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(500,0), NULL, 0, cadash_interrupt5); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); /* interrupt vector 4 */ + cpu_set_input_line(device, 4, HOLD_LINE); /* interrupt vector 4 */ } @@ -753,7 +753,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c index 78ffb248d77..7d31cabf181 100644 --- a/src/mame/drivers/atarig1.c +++ b/src/mame/drivers/atarig1.c @@ -50,8 +50,8 @@ static UINT8 bslapstic_primed; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c index 0e4954cdb25..e9ddaa3b3fc 100644 --- a/src/mame/drivers/atarig42.c +++ b/src/mame/drivers/atarig42.c @@ -51,8 +51,8 @@ static UINT16 *sloop_base; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -112,7 +112,7 @@ static WRITE16_HANDLER( io_latch_w ) if (ACCESSING_BITS_0_7) { /* bit 4 resets the sound CPU */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); if (!(data & 0x10)) atarijsa_reset(); /* bit 5 is /XRESET, probably related to the ASIC */ diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c index 271b76889ca..3758ec474d9 100644 --- a/src/mame/drivers/atarigt.c +++ b/src/mame/drivers/atarigt.c @@ -56,9 +56,9 @@ static void cage_irq_callback(running_machine *machine, int reason); static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 3, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -80,7 +80,7 @@ static MACHINE_RESET( atarigt ) static void cage_irq_callback(running_machine *machine, int reason) { if (reason) - atarigen_sound_int_gen(machine, 0); + atarigen_sound_int_gen(machine->cpu[0]); else atarigen_sound_int_ack_w(machine,0,0,0xffff); } diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c index 7874e2d6883..ee13bdcfe62 100644 --- a/src/mame/drivers/atarigx2.c +++ b/src/mame/drivers/atarigx2.c @@ -49,8 +49,8 @@ static UINT32 * protection_base; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -135,7 +135,7 @@ static WRITE32_HANDLER( latch_w ) /* lower byte */ if (ACCESSING_BITS_16_23) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x100000) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x100000) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c index 0e68c2b3d98..ccfd4d3dce8 100644 --- a/src/mame/drivers/atarisy1.c +++ b/src/mame/drivers/atarisy1.c @@ -157,10 +157,10 @@ static TIMER_CALLBACK( delayed_joystick_int ); static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 2, joystick_int && joystick_int_enable ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, joystick_int && joystick_int_enable ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c index 2b4d2e2f5d5..1beb1a060dd 100644 --- a/src/mame/drivers/atarisy2.c +++ b/src/mame/drivers/atarisy2.c @@ -184,24 +184,24 @@ static STATE_POSTLOAD( bankselect_postload ); static void update_interrupts(running_machine *machine) { if (atarigen_video_int_state) - cpunum_set_input_line(machine, 0, 3, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 3, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 3, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, CLEAR_LINE); if (atarigen_scanline_int_state) - cpunum_set_input_line(machine, 0, 2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 2, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, CLEAR_LINE); if (p2portwr_state) - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); if (p2portrd_state) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -219,7 +219,7 @@ static void scanline_update(const device_config *screen, int scanline) /* generate the 32V interrupt (IRQ 2) */ if ((scanline % 64) == 0) if (interrupt_enable & 4) - atarigen_scanline_int_gen(screen->machine, 0); + atarigen_scanline_int_gen(screen->machine->cpu[0]); } } @@ -285,7 +285,7 @@ static INTERRUPT_GEN( vblank_int ) { /* clock the VBLANK through */ if (interrupt_enable & 8) - atarigen_video_int_gen(machine, cpunum); + atarigen_video_int_gen(device); } @@ -301,7 +301,7 @@ static WRITE16_HANDLER( int1_ack_w ) { /* reset sound CPU */ if (ACCESSING_BITS_0_7) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 1) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 1) ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c index 85e1389bd83..c5f5e461d9b 100644 --- a/src/mame/drivers/atetris.c +++ b/src/mame/drivers/atetris.c @@ -80,7 +80,7 @@ static TIMER_CALLBACK( interrupt_gen ) int scanline = param; /* assert/deassert the interrupt */ - cpunum_set_input_line(machine, 0, 0, (scanline & 32) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, (scanline & 32) ? ASSERT_LINE : CLEAR_LINE); /* set the next timer */ scanline += 32; @@ -92,7 +92,7 @@ static TIMER_CALLBACK( interrupt_gen ) static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c index b8ee9fc47f4..86d4a12c321 100644 --- a/src/mame/drivers/avalnche.c +++ b/src/mame/drivers/avalnche.c @@ -44,7 +44,7 @@ static INTERRUPT_GEN( avalnche_interrupt ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/aztarac.c b/src/mame/drivers/aztarac.c index c7c6274d1fb..15291ef4bb5 100644 --- a/src/mame/drivers/aztarac.c +++ b/src/mame/drivers/aztarac.c @@ -34,7 +34,7 @@ static IRQ_CALLBACK(aztarac_irq_callback) static MACHINE_RESET( aztarac ) { - cpunum_set_irq_callback(0, aztarac_irq_callback); + cpu_set_irq_callback(machine->cpu[0], aztarac_irq_callback); } diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c index 9333381aa37..cb0d71ee6ac 100644 --- a/src/mame/drivers/backfire.c +++ b/src/mame/drivers/backfire.c @@ -471,7 +471,7 @@ static const ymz280b_interface ymz280b_intf = static INTERRUPT_GEN( deco32_vbl_interrupt ) { - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE); } @@ -668,8 +668,8 @@ static READ32_HANDLER( backfire_speedup_r ) { // mame_printf_debug( "%08x\n",cpu_get_pc(machine->activecpu)); - if (cpu_get_pc(machine->activecpu)==0xce44) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); // backfire - if (cpu_get_pc(machine->activecpu)==0xcee4) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); // backfira + if (cpu_get_pc(machine->activecpu)==0xce44) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); // backfire + if (cpu_get_pc(machine->activecpu)==0xcee4) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); // backfira return backfire_mainram[0x18/4]; } @@ -680,7 +680,7 @@ static DRIVER_INIT( backfire ) deco56_decrypt_gfx(machine, "gfx1"); /* 141 */ deco56_decrypt_gfx(machine, "gfx2"); /* 141 */ deco156_decrypt(machine); - cpunum_set_clockscale(machine, 0, 4.0f); /* core timings aren't accurate */ + cpu_set_clockscale(machine->cpu[0], 4.0f); /* core timings aren't accurate */ descramble_sound(machine); memory_install_read32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0170018, 0x017001b, 0, 0, backfire_speedup_r ); } diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c index c55a60db2b5..82195d18090 100644 --- a/src/mame/drivers/badlands.c +++ b/src/mame/drivers/badlands.c @@ -120,8 +120,8 @@ static UINT8 *bank_source_data; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -131,7 +131,7 @@ static void scanline_update(const device_config *screen, int scanline) if (scanline & 32) atarigen_6502_irq_ack_r(screen->machine, 0); else if (!(input_port_read(screen->machine, "FE4000") & 0x40)) - atarigen_6502_irq_gen(screen->machine, 0); + atarigen_6502_irq_gen(screen->machine->cpu[1]); } @@ -157,7 +157,7 @@ static MACHINE_RESET( badlands ) static INTERRUPT_GEN( vblank_int ) { - int pedal_state = input_port_read(machine, "PEDALS"); + int pedal_state = input_port_read(device->machine, "PEDALS"); int i; /* update the pedals once per frame */ @@ -168,7 +168,7 @@ static INTERRUPT_GEN( vblank_int ) pedal_value[i]++; } - atarigen_video_int_gen(machine, cpunum); + atarigen_video_int_gen(device); } @@ -603,7 +603,7 @@ GFXDECODE_END static void update_interrupts_bootleg(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -613,7 +613,7 @@ static void scanline_update_bootleg(const device_config *screen, int scanline) // if (scanline & 32) // atarigen_6502_irq_ack_r(screen->machine, 0); // else if (!(input_port_read(machine, "FE4000") & 0x40)) -// atarigen_6502_irq_gen(screen->machine, 0); +// atarigen_6502_irq_gen(screen->machine->cpu[1]); } diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c index 1d5e806a00e..58b94473336 100644 --- a/src/mame/drivers/baraduke.c +++ b/src/mame/drivers/baraduke.c @@ -169,7 +169,7 @@ static WRITE8_HANDLER( baraduke_lamps_w ) static WRITE8_HANDLER( baraduke_irq_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c index 19cc01b5f89..f3d09f0d1ce 100644 --- a/src/mame/drivers/batman.c +++ b/src/mame/drivers/batman.c @@ -42,8 +42,8 @@ static UINT16 latch_data; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -102,9 +102,9 @@ static WRITE16_HANDLER( latch_w ) /* bit 4 is connected to the /RESET pin on the 6502 */ if (latch_data & 0x0010) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* alpha bank is selected by the upper 4 bits */ if ((oldword ^ latch_data) & 0x7000) diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c index ff9d643bd71..6f9863826ca 100644 --- a/src/mame/drivers/battlane.c +++ b/src/mame/drivers/battlane.c @@ -59,8 +59,8 @@ static WRITE8_HANDLER( battlane_cpu_command_w ) /* if (~battlane_cpu_control & 0x08) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } */ @@ -68,7 +68,7 @@ static WRITE8_HANDLER( battlane_cpu_command_w ) CPU2's SWI will trigger an 6809 IRQ on the master by resetting 0x04 Master will respond by setting the bit back again */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, data & 0x04 ? CLEAR_LINE : HOLD_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, data & 0x04 ? CLEAR_LINE : HOLD_LINE); /* Slave function call (e.g. ROM test): @@ -86,7 +86,7 @@ static WRITE8_HANDLER( battlane_cpu_command_w ) FA96: 27 FA BEQ $FA92 ; Wait for bit to be set */ - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, data & 0x02 ? CLEAR_LINE : HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, data & 0x02 ? CLEAR_LINE : HOLD_LINE); } static ADDRESS_MAP_START( battlane_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -110,8 +110,8 @@ static INTERRUPT_GEN( battlane_cpu1_interrupt ) if (~battlane_cpu_control & 0x08) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -243,7 +243,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c index 1f2ead68e2f..42fc6b4e0b1 100644 --- a/src/mame/drivers/battlera.c +++ b/src/mame/drivers/battlera.c @@ -48,7 +48,7 @@ static WRITE8_HANDLER( battlera_sound_w ) { if (offset==0) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } } @@ -112,7 +112,7 @@ static void battlera_adpcm_int(running_machine *machine, int data) toggle = 1 - toggle; if (toggle) - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 1, HOLD_LINE); } static WRITE8_HANDLER( battlera_adpcm_data_w ) diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c index 3998625a6e6..b46775cb95f 100644 --- a/src/mame/drivers/battlnts.c +++ b/src/mame/drivers/battlnts.c @@ -24,12 +24,12 @@ VIDEO_UPDATE( battlnts ); static INTERRUPT_GEN( battlnts_interrupt ) { if (K007342_is_INT_enabled()) - cpunum_set_input_line(machine, 0, HD6309_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( battlnts_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } static WRITE8_HANDLER( battlnts_bankswitch_w ) diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index 35f7e5470e9..e0440a6b20e 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -262,7 +262,7 @@ static WRITE16_HANDLER( sound_cpu_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine, 0, data&0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -641,7 +641,7 @@ GFXDECODE_END static void sound_irq( running_machine *machine, int irq ) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2608_interface ym2608_config = @@ -676,10 +676,10 @@ static NVRAM_HANDLER( bbusters ) static INTERRUPT_GEN( bbuster ) { - if (cpu_getiloops()==0) - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); /* VBL */ + if (cpu_getiloops(device)==0) + cpu_set_input_line(device, 6, HOLD_LINE); /* VBL */ else - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); /* at least 6 interrupts per frame to read gun controls */ + cpu_set_input_line(device, 2, HOLD_LINE); /* at least 6 interrupts per frame to read gun controls */ } static VIDEO_EOF( bbuster ) diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c index 5421f3b6f7b..b97de0f61ea 100644 --- a/src/mame/drivers/beaminv.c +++ b/src/mame/drivers/beaminv.c @@ -81,7 +81,7 @@ static TIMER_CALLBACK( interrupt_callback ) int next_interrupt_number; int next_vpos; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); /* set up for next interrupt */ next_interrupt_number = (interrupt_number + 1) % INTERRUPTS_PER_FRAME; diff --git a/src/mame/drivers/beathead.c b/src/mame/drivers/beathead.c index 713d678007a..5b13ca384b3 100644 --- a/src/mame/drivers/beathead.c +++ b/src/mame/drivers/beathead.c @@ -144,7 +144,7 @@ static TIMER_CALLBACK( scanline_callback ) /* on scanline zero, clear any halt condition */ if (scanline == 0) - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, CLEAR_LINE); /* wrap around at 262 */ scanline++; @@ -204,7 +204,7 @@ static void update_interrupts(running_machine *machine) { irq_line_state = gen_int; // if (irq_line_state != CLEAR_LINE) - cpunum_set_input_line(machine, 0, ASAP_IRQ0, irq_line_state); + cpu_set_input_line(machine->cpu[0], ASAP_IRQ0, irq_line_state); // else // asap_set_irq_line(ASAP_IRQ0, irq_line_state); } @@ -299,7 +299,7 @@ static WRITE32_HANDLER( sound_data_w ) static WRITE32_HANDLER( sound_reset_w ) { logerror("Sound reset = %d\n", !offset); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE); } @@ -480,7 +480,7 @@ static READ32_HANDLER( speedup_r ) { int result = *speedup_data; if ((cpu_get_previouspc(machine->activecpu) & 0xfffff) == 0x006f0 && result == cpu_get_reg(machine->activecpu, ASAP_R3)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return result; } @@ -494,7 +494,7 @@ static READ32_HANDLER( movie_speedup_r ) { UINT32 temp = (INT16)result + movie_speedup_data[4] * 262; if (temp - (UINT32)cpu_get_reg(machine->activecpu, ASAP_R15) < (UINT32)cpu_get_reg(machine->activecpu, ASAP_R23)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return result; } diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c index 8097d8ee40a..fa6d7fe5b99 100644 --- a/src/mame/drivers/berzerk.c +++ b/src/mame/drivers/berzerk.c @@ -159,7 +159,7 @@ static TIMER_CALLBACK( irq_callback ) /* set the IRQ line if enabled */ if (irq_enabled) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xfc); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, 0xfc); /* set up for next interrupt */ next_irq_number = (irq_number + 1) % IRQS_PER_FRAME; @@ -236,7 +236,7 @@ static TIMER_CALLBACK( nmi_callback ) /* pulse the NMI line if enabled */ if (nmi_enabled) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); /* set up for next interrupt */ next_nmi_number = (nmi_number + 1) % NMIS_PER_FRAME; diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c index 44b8fab50ad..1978bd80bbf 100644 --- a/src/mame/drivers/bfcobra.c +++ b/src/mame/drivers/bfcobra.c @@ -132,7 +132,7 @@ static void update_irqs(running_machine *machine) if (newstate != irq_state) { irq_state = newstate; - cpunum_set_input_line(machine, 0, 0, irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, irq_state ? ASSERT_LINE : CLEAR_LINE); } } @@ -692,7 +692,7 @@ static void RunBlit(running_machine *machine) } while (blitter.command & CMD_RUN); /* Burn Z80 cycles while blitter is in operation */ - cpu_spinuntil_time( ATTOTIME_IN_NSEC( (1000000000 / Z80_XTAL)*cycles_used * 2 ) ); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_NSEC( (1000000000 / Z80_XTAL)*cycles_used * 2 ) ); } @@ -1378,7 +1378,7 @@ static WRITE8_HANDLER( meter_w ) if (changed & (1 << i)) { Mechmtr_update(i, cycles, data & (1 << i) ); - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, PULSE_LINE ); } } } @@ -1585,7 +1585,7 @@ static void z80_acia_irq(int state) static void m6809_data_irq(int state) { - cpunum_set_input_line(Machine, 1, M6809_IRQ_LINE, state ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(Machine->cpu[1], M6809_IRQ_LINE, state ? CLEAR_LINE : ASSERT_LINE); } /* @@ -1701,14 +1701,14 @@ static DRIVER_INIT( bfcobra ) /* TODO */ static INTERRUPT_GEN( timer_irq ) { - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, PULSE_LINE); + cpu_set_input_line(device, M6809_IRQ_LINE, PULSE_LINE); } /* TODO */ static INTERRUPT_GEN( vblank_gen ) { vblank_irq = 1; - update_irqs(machine); + update_irqs(device->machine); } static MACHINE_DRIVER_START( bfcobra ) diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c index ad635083169..fb876707bb3 100644 --- a/src/mame/drivers/bfm_sc2.c +++ b/src/mame/drivers/bfm_sc2.c @@ -271,7 +271,7 @@ static void send_to_adder(running_machine *machine, int data) adder2_sc2data = data; adder2_acia_triggered = 1; - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, HOLD_LINE ); LOG_SERIAL(("sadder %02X (%c)\n",data, data )); } @@ -511,8 +511,8 @@ static INTERRUPT_GEN( timer_irq ) watchdog_cnt++; if ( watchdog_cnt > 2 ) // this is a hack, i don't know what the watchdog timeout is, 3 IRQ's works fine { // reset board - mame_schedule_soft_reset(machine); // reset entire machine. CPU 0 should be enough, but that doesn't seem to work !! - on_scorpion2_reset(machine); + mame_schedule_soft_reset(device->machine); // reset entire machine. CPU 0 should be enough, but that doesn't seem to work !! + on_scorpion2_reset(device->machine); return; } } @@ -522,7 +522,7 @@ static INTERRUPT_GEN( timer_irq ) irq_timer_stat = 0x01; irq_status = 0x02; - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, PULSE_LINE ); + cpu_set_input_line(device, M6809_IRQ_LINE, PULSE_LINE ); } } @@ -619,7 +619,7 @@ static WRITE8_HANDLER( mmtr_w ) } } } - if ( data & 0x1F ) cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE ); + if ( data & 0x1F ) cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE ); } /////////////////////////////////////////////////////////////////////////// diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c index 543df23a6e5..1f7437a0dd7 100644 --- a/src/mame/drivers/bigevglf.c +++ b/src/mame/drivers/bigevglf.c @@ -116,7 +116,7 @@ static READ8_HANDLER(soundstate_r) static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; sound_state &= ~1; } @@ -142,7 +142,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c index 520a9c0833a..b9583a63a76 100644 --- a/src/mame/drivers/bionicc.c +++ b/src/mame/drivers/bionicc.c @@ -138,10 +138,10 @@ static READ16_HANDLER( hacked_soundcommand_r ) static INTERRUPT_GEN( bionicc_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 2, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c index ed1b72a5e59..80f4a69aeb0 100644 --- a/src/mame/drivers/bishi.c +++ b/src/mame/drivers/bishi.c @@ -125,14 +125,14 @@ static INTERRUPT_GEN(bishi_interrupt) { if (cur_control & 0x800) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, MC68000_IRQ_3, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_3, HOLD_LINE); break; case 1: - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_4, HOLD_LINE); break; } } @@ -302,9 +302,9 @@ static MACHINE_RESET( bishi ) static void sound_irq_gen(running_machine *machine, int state) { if (state) - cpunum_set_input_line(machine, 0, MC68000_IRQ_1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], MC68000_IRQ_1, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, MC68000_IRQ_1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], MC68000_IRQ_1, CLEAR_LINE); } static const ymz280b_interface ymz280b_intf = diff --git a/src/mame/drivers/bishjan.c b/src/mame/drivers/bishjan.c index c5c32aeab2c..e1bd35989ec 100644 --- a/src/mame/drivers/bishjan.c +++ b/src/mame/drivers/bishjan.c @@ -429,10 +429,10 @@ INPUT_PORTS_END static INTERRUPT_GEN( bishjan_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + cpu_set_input_line(device, 0, PULSE_LINE); break; default: h8_3002_InterruptRequest(24); diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c index 1db8d13e514..0aed5d1e4d1 100644 --- a/src/mame/drivers/bking.c +++ b/src/mame/drivers/bking.c @@ -69,7 +69,7 @@ static WRITE8_HANDLER( bking_soundlatch_w ) if (data & (1 << i)) code |= 0x80 >> i; soundlatch_w(machine,offset,code); - if (sndnmi_enable) cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + if (sndnmi_enable) cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( bking3_addr_l_w ) @@ -198,7 +198,7 @@ static WRITE8_HANDLER( bking3_68705_portB_w ) if (~data & 0x02) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); main_sent = 0; } diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c index 98ed55a87ac..6e7f8f7aeea 100644 --- a/src/mame/drivers/bladestl.c +++ b/src/mame/drivers/bladestl.c @@ -42,12 +42,12 @@ WRITE8_HANDLER( bladestl_vreg_w ); static INTERRUPT_GEN( bladestl_interrupt ) { - if (cpu_getiloops() == 0){ + if (cpu_getiloops(device) == 0){ if (K007342_is_INT_enabled()) - cpunum_set_input_line(machine, 0, HD6309_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, HD6309_FIRQ_LINE, HOLD_LINE); } - else if (cpu_getiloops() % 2){ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + else if (cpu_getiloops(device) % 2){ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } @@ -90,7 +90,7 @@ static WRITE8_HANDLER( bladestl_bankswitch_w ) static WRITE8_HANDLER( bladestl_sh_irqtrigger_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, HOLD_LINE); //logerror("(sound) write %02x\n", data); } diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c index 1a170309ea5..d8e20024a68 100644 --- a/src/mame/drivers/blktiger.c +++ b/src/mame/drivers/blktiger.c @@ -230,7 +230,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c index 171d8e31623..ad58e0f367c 100644 --- a/src/mame/drivers/blockade.c +++ b/src/mame/drivers/blockade.c @@ -65,12 +65,12 @@ static DRIVER_INIT( blockade ) static INTERRUPT_GEN( blockade_interrupt ) { - cpunum_resume(0, SUSPEND_ANY_REASON); + cpu_resume(device, SUSPEND_ANY_REASON); - if ((input_port_read(machine, "IN0") & 0x80) == 0) + if ((input_port_read(device->machine, "IN0") & 0x80) == 0) { just_been_reset = 1; - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_RESET, PULSE_LINE); } } diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c index 8fa5e371e56..ebcb70d5430 100644 --- a/src/mame/drivers/blockhl.c +++ b/src/mame/drivers/blockhl.c @@ -40,7 +40,7 @@ static int rombank; static INTERRUPT_GEN( blockhl_interrupt ) { if (K052109_is_IRQ_enabled() && rombank == 0) /* kludge to prevent crashes */ - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } static READ8_HANDLER( bankedram_r ) @@ -61,7 +61,7 @@ static WRITE8_HANDLER( bankedram_w ) static WRITE8_HANDLER( blockhl_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c index 3dc54ee6beb..f511847f848 100644 --- a/src/mame/drivers/blockout.c +++ b/src/mame/drivers/blockout.c @@ -32,7 +32,7 @@ static INTERRUPT_GEN( blockout_interrupt ) /* interrupt 6 is vblank */ /* interrupt 5 reads coin inputs - might have to be triggered only */ /* when a coin is inserted */ - cpunum_set_input_line(machine, 0, 6 - cpu_getiloops(), HOLD_LINE); + cpu_set_input_line(device, 6 - cpu_getiloops(device), HOLD_LINE); } static WRITE16_HANDLER( blockout_sound_command_w ) @@ -40,7 +40,7 @@ static WRITE16_HANDLER( blockout_sound_command_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -171,7 +171,7 @@ INPUT_PORTS_END /* handler called by the 2151 emulator when the internal timers cause an IRQ */ static void blockout_irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line_and_vector(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE,0xff); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c index 371284a81e5..f1c08e5bddc 100644 --- a/src/mame/drivers/blstroid.c +++ b/src/mame/drivers/blstroid.c @@ -32,9 +32,9 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c index 91ac5a27016..22a93e3d2e9 100644 --- a/src/mame/drivers/blueprnt.c +++ b/src/mame/drivers/blueprnt.c @@ -86,7 +86,7 @@ static READ8_HANDLER( blueprnt_sh_dipsw_r ) static WRITE8_HANDLER( blueprnt_sound_command_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( blueprnt_coin_counter_w ) diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c index 4dc2957cf63..c0c9c8f8139 100644 --- a/src/mame/drivers/bmcbowl.c +++ b/src/mame/drivers/bmcbowl.c @@ -487,10 +487,10 @@ static MACHINE_RESET( bmcbowl ) static INTERRUPT_GEN( bmc_interrupt ) { - if (cpu_getiloops()) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + if (cpu_getiloops(device)) + cpu_set_input_line(device, 4, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } static MACHINE_DRIVER_START( bmcbowl ) diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c index b88e4085870..66a43759080 100644 --- a/src/mame/drivers/bnstars.c +++ b/src/mame/drivers/bnstars.c @@ -1286,28 +1286,28 @@ static IRQ_CALLBACK(irq_callback) for(i=15; i>=0 && !(irqreq & (1<cpu[0], 0, CLEAR_LINE); + cpu_set_irq_callback(machine->cpu[0], irq_callback); } static void irq_raise(running_machine *machine, int level) { irqreq |= (1<cpu[0], 0, ASSERT_LINE); } static INTERRUPT_GEN(ms32_interrupt) { - if( cpu_getiloops() == 0 ) irq_raise(machine, 10); - if( cpu_getiloops() == 1 ) irq_raise(machine, 9); + if( cpu_getiloops(device) == 0 ) irq_raise(device->machine, 10); + if( cpu_getiloops(device) == 1 ) irq_raise(device->machine, 9); /* hayaosi1 needs at least 12 IRQ 0 per frame to work (see code at FFE02289) kirarast needs it too, at least 8 per frame, but waits for a variable amount 47pi2 needs ?? per frame (otherwise it hangs when you lose) @@ -1316,7 +1316,7 @@ static INTERRUPT_GEN(ms32_interrupt) desertwr p47aces */ - if( cpu_getiloops() >= 3 && cpu_getiloops() <= 32 ) irq_raise(machine, 0); + if( cpu_getiloops(device) >= 3 && cpu_getiloops(device) <= 32 ) irq_raise(device->machine, 0); } static MACHINE_RESET( ms32 ) diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c index 2d36aea659f..a1c72e59cf1 100644 --- a/src/mame/drivers/boogwing.c +++ b/src/mame/drivers/boogwing.c @@ -279,7 +279,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static WRITE8_HANDLER( sound_bankswitch_w ) diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c index ac47b85d213..266553f732a 100644 --- a/src/mame/drivers/bottom9.c +++ b/src/mame/drivers/bottom9.c @@ -29,7 +29,7 @@ VIDEO_UPDATE( bottom9 ); static INTERRUPT_GEN( bottom9_interrupt ) { if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } @@ -101,7 +101,7 @@ static WRITE8_HANDLER( bottom9_1f90_w ) static WRITE8_HANDLER( bottom9_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static int nmienable; @@ -109,7 +109,7 @@ static int nmienable; static INTERRUPT_GEN( bottom9_sound_interrupt ) { if (nmienable) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( nmi_enable_w ) diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c index bcf52d15e33..0946a4ececb 100644 --- a/src/mame/drivers/boxer.c +++ b/src/mame/drivers/boxer.c @@ -24,7 +24,7 @@ static TIMER_CALLBACK( pot_interrupt ) int mask = param; if (pot_latch & mask) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); pot_state |= mask; } @@ -34,7 +34,7 @@ static TIMER_CALLBACK( periodic_callback ) { int scanline = param; - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); if (scanline == 0) { @@ -146,13 +146,13 @@ static WRITE8_HANDLER( boxer_pot_w ) pot_latch = data & 0x3f; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } static WRITE8_HANDLER( boxer_irq_reset_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c index df5b4555fcb..538a1df4d20 100644 --- a/src/mame/drivers/brkthru.c +++ b/src/mame/drivers/brkthru.c @@ -88,13 +88,13 @@ static WRITE8_HANDLER( darwin_0803_w ) static WRITE8_HANDLER( brkthru_soundlatch_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an IRQ */ - cpunum_set_input_line(field->port->machine, 0, 0, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], 0, newval ? CLEAR_LINE : ASSERT_LINE); } @@ -327,7 +327,7 @@ GFXDECODE_END /* handler called by the 3812 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,linestate); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,linestate); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index a4dbbe93f2b..e871bdf4639 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -351,25 +351,25 @@ ADDRESS_MAP_END static INPUT_CHANGED( coin_inserted_irq_hi ) { if (newval) - cpunum_set_input_line(field->port->machine, 0, 0, HOLD_LINE); + cpu_set_input_line(field->port->machine->cpu[0], 0, HOLD_LINE); } static INPUT_CHANGED( coin_inserted_irq_lo ) { if (!newval) - cpunum_set_input_line(field->port->machine, 0, 0, HOLD_LINE); + cpu_set_input_line(field->port->machine->cpu[0], 0, HOLD_LINE); } static INPUT_CHANGED( coin_inserted_nmi_lo ) { - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( audio_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } diff --git a/src/mame/drivers/btoads.c b/src/mame/drivers/btoads.c index 605b5b912c7..36ee46e32a5 100644 --- a/src/mame/drivers/btoads.c +++ b/src/mame/drivers/btoads.c @@ -67,7 +67,7 @@ static TIMER_CALLBACK( delayed_sound_w ) { main_to_sound_data = param; main_to_sound_ready = 1; - cpu_triggerint(machine, 1); + cpu_triggerint(machine->cpu[1]); /* use a timer to make long transfers faster */ timer_set(ATTOTIME_IN_USEC(50), NULL, 0, 0); @@ -129,7 +129,7 @@ static READ8_HANDLER( sound_ready_to_send_r ) static READ8_HANDLER( sound_data_ready_r ) { if (cpu_get_pc(machine->activecpu) == 0xd50 && !main_to_sound_ready) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return main_to_sound_ready ? 0x00 : 0x80; } @@ -148,7 +148,7 @@ static WRITE8_HANDLER( sound_int_state_w ) sndti_reset(SOUND_BSMT2000, 0); /* also clears interrupts */ - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); sound_int_state = data; } diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c index ef78d3abe2b..269aaf36a78 100644 --- a/src/mame/drivers/bublbobl.c +++ b/src/mame/drivers/bublbobl.c @@ -278,7 +278,7 @@ TODO: #if 0 // doesn't work for some reason static WRITE8_HANDLER(soundcpu_reset_w) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x01) ? ASSERT_LINE : CLEAR_LINE); } #endif @@ -671,7 +671,7 @@ GFXDECODE_END // handler called by the 2203 emulator when the internal timers cause an IRQ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c index 7748497364a..d2e4d88f7b1 100644 --- a/src/mame/drivers/buggychl.c +++ b/src/mame/drivers/buggychl.c @@ -98,7 +98,7 @@ static int sound_nmi_enable,pending_nmi; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -118,7 +118,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c index 11cd62f089f..ce9bbfb933d 100644 --- a/src/mame/drivers/bwidow.c +++ b/src/mame/drivers/bwidow.c @@ -304,7 +304,7 @@ static READ8_HANDLER( spacduel_IN3_r ) static CUSTOM_INPUT( clock_r ) { - return (cpunum_gettotalcycles(0) & 0x100) ? 1 : 0; + return (cpu_get_total_cycles(field->port->machine->cpu[0]) & 0x100) ? 1 : 0; } @@ -340,7 +340,7 @@ static WRITE8_HANDLER( bwidow_misc_w ) static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c index d9ea44dd71e..81d9eddd165 100644 --- a/src/mame/drivers/bwing.c +++ b/src/mame/drivers/bwing.c @@ -64,7 +64,7 @@ static INTERRUPT_GEN ( bwp1_interrupt ) static int coin = 0; UINT8 latch_data; - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: if (ffcount) @@ -72,33 +72,33 @@ static INTERRUPT_GEN ( bwp1_interrupt ) ffcount--; latch_data = sound_fifo[fftail]; fftail = (fftail + 1) & (MAX_SOUNDS - 1); - soundlatch_w(machine, 0, latch_data); - cpunum_set_input_line(machine, 2, DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ + soundlatch_w(device->machine, 0, latch_data); + cpu_set_input_line(device->machine->cpu[2], DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ } break; case 1: - if (~input_port_read(machine, "IN2") & 0x03) - { if (!coin) { coin = 1; cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); } } + if (~input_port_read(device->machine, "IN2") & 0x03) + { if (!coin) { coin = 1; cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } } else coin = 0; break; case 2: - if (input_port_read(machine, "IN3")) cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + if (input_port_read(device->machine, "IN3")) cpu_set_input_line(device, M6809_FIRQ_LINE, ASSERT_LINE); break; } } -static INTERRUPT_GEN ( bwp3_interrupt ) { if (!bwp3_nmimask) cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, ASSERT_LINE); } +static INTERRUPT_GEN ( bwp3_interrupt ) { if (!bwp3_nmimask) cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } //**************************************************************************** // Memory and I/O Handlers static WRITE8_HANDLER( bwp12_sharedram1_w ) { bwp1_sharedram1[offset] = bwp2_sharedram1[offset] = data; } static WRITE8_HANDLER( bwp3_u8F_w ) { bwp3_u8F_d = data; } // prepares custom chip for various operations -static WRITE8_HANDLER( bwp3_nmiack_w ) { cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, CLEAR_LINE); } +static WRITE8_HANDLER( bwp3_nmiack_w ) { cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, CLEAR_LINE); } static WRITE8_HANDLER( bwp3_nmimask_w ) { bwp3_nmimask = data & 0x80; } @@ -119,16 +119,16 @@ static WRITE8_HANDLER( bwp1_ctrl_w ) switch (offset) { // MSSTB - case 0: cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, ASSERT_LINE); break; + case 0: cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, ASSERT_LINE); break; // IRQACK - case 1: cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, CLEAR_LINE); break; + case 1: cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, CLEAR_LINE); break; // FIRQACK - case 2: cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); break; + case 2: cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); break; // NMIACK - case 3: cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); break; + case 3: cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); break; // SWAP(bank-swaps sprite RAM between 1800 & 1900; ignored bc. they're treated as a single chunk.) case 4: break; @@ -136,7 +136,7 @@ static WRITE8_HANDLER( bwp1_ctrl_w ) // SNDREQ case 5: if (data == 0x80) // protection trick to screw CPU1 & 3 - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); // SNMI + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); // SNMI else if (ffcount < MAX_SOUNDS) { @@ -163,13 +163,13 @@ static WRITE8_HANDLER( bwp2_ctrl_w ) { switch (offset) { - case 0: cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, ASSERT_LINE); break; // SMSTB + case 0: cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, ASSERT_LINE); break; // SMSTB - case 1: cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, CLEAR_LINE); break; + case 1: cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, CLEAR_LINE); break; - case 2: cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, CLEAR_LINE); break; + case 2: cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, CLEAR_LINE); break; - case 3: cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); break; + case 3: cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); break; } #if BW_DEBUG diff --git a/src/mame/drivers/bzone.c b/src/mame/drivers/bzone.c index f2e9ef7e8d1..c8d995f3f5d 100644 --- a/src/mame/drivers/bzone.c +++ b/src/mame/drivers/bzone.c @@ -254,8 +254,8 @@ static MACHINE_START( redbaron ) static INTERRUPT_GEN( bzone_interrupt ) { - if (input_port_read(machine, "IN0") & 0x10) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "IN0") & 0x10) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } @@ -268,7 +268,7 @@ static INTERRUPT_GEN( bzone_interrupt ) static CUSTOM_INPUT( clock_r ) { - return (cpunum_gettotalcycles(0) & 0x100) ? 1 : 0; + return (cpu_get_total_cycles(field->port->machine->cpu[0]) & 0x100) ? 1 : 0; } diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c index 3794d96f7d6..7c6f6bb4583 100644 --- a/src/mame/drivers/cabal.c +++ b/src/mame/drivers/cabal.c @@ -112,12 +112,12 @@ static WRITE16_HANDLER( cabal_sound_irq_trigger_word_w ) seibu_main_word_w(machine,4,data,mem_mask); /* spin for a while to let the Z80 read the command, otherwise coins "stick" */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); } static WRITE16_HANDLER( cabalbl_sound_irq_trigger_word_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } @@ -474,7 +474,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface cabalbl_ym2151_interface = diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c index becdeda2d8b..07454a9c994 100644 --- a/src/mame/drivers/capbowl.c +++ b/src/mame/drivers/capbowl.c @@ -110,8 +110,8 @@ static UINT8 last_trackball_val[2]; static INTERRUPT_GEN( capbowl_interrupt ) { - if (input_port_read(machine, "SERVICE") & 1) /* get status of the F2 key */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); /* trigger self test */ + if (input_port_read(device->machine, "SERVICE") & 1) /* get status of the F2 key */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); /* trigger self test */ } @@ -191,7 +191,7 @@ static WRITE8_HANDLER( track_reset_w ) static WRITE8_HANDLER( capbowl_sndcmd_w ) { - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, HOLD_LINE); soundlatch_w(machine, offset, data); } @@ -206,7 +206,7 @@ static WRITE8_HANDLER( capbowl_sndcmd_w ) static void firqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 1, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 1, irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index 19012a2149b..86b526c2b63 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -98,9 +98,9 @@ static UINT8 agallet_vblank_irq; static void update_irq_state(running_machine *machine) { if (vblank_irq || sound_irq || unknown_irq) - cpunum_set_input_line(machine, 0, irq_level, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], irq_level, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, irq_level, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], irq_level, CLEAR_LINE); } static TIMER_CALLBACK( cave_vblank_start ) @@ -222,8 +222,8 @@ static WRITE16_HANDLER( sound_cmd_w ) // sound_flag1 = 1; // sound_flag2 = 1; soundlatch_word_w(machine,offset,data,mem_mask); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); // Allow the other cpu to reply + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); // Allow the other cpu to reply } /* Sound CPU: read the low 8 bits of the 16 bit sound latch */ @@ -1068,7 +1068,7 @@ static READ16_HANDLER( agallet_irq_cause_r ) { // Speed hack for agallet if ((cpu_get_pc(machine->activecpu) == 0xcdca) && (irq_cause & 4)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return irq_cause; @@ -1961,7 +1961,7 @@ static const ymz280b_interface ymz280b_intf = static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index c9b217c227a..9710e60395d 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -55,7 +55,7 @@ static TIMER_CALLBACK( interrupt_callback ) { int scanline = param; - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE); scanline = scanline + 32; diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c index aa8bc46c995..d5b668a32c8 100644 --- a/src/mame/drivers/cbuster.c +++ b/src/mame/drivers/cbuster.c @@ -48,7 +48,7 @@ static WRITE16_HANDLER( twocrude_control_w ) case 2: /* Sound CPU write */ soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; case 4: /* Protection, maybe this is a PAL on the board? @@ -326,7 +326,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index b886931119d..92f28e13f14 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -173,7 +173,7 @@ static TIMER_CALLBACK( clock_irq ) /* assert the IRQ if not already asserted */ if (!irq_state) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); irq_state = 1; } @@ -248,7 +248,7 @@ static MACHINE_START( ccastles ) static MACHINE_RESET( ccastles ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); irq_state = 0; } @@ -264,7 +264,7 @@ static WRITE8_HANDLER( irq_ack_w ) { if (irq_state) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); irq_state = 0; } } diff --git a/src/mame/drivers/cchasm.c b/src/mame/drivers/cchasm.c index caedf877ebb..f9f3deac473 100644 --- a/src/mame/drivers/cchasm.c +++ b/src/mame/drivers/cchasm.c @@ -59,7 +59,7 @@ ADDRESS_MAP_END static void cchasm_6840_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, 4, state?ASSERT_LINE:CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, state?ASSERT_LINE:CLEAR_LINE); } static const ptm6840_interface cchasm_6840_intf = { diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c index c2d7699c0a4..efce3b071fc 100644 --- a/src/mame/drivers/cclimber.c +++ b/src/mame/drivers/cclimber.c @@ -210,7 +210,7 @@ static UINT8 toprollr_rombank; static WRITE8_HANDLER( swimmer_sh_soundlatch_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index 72f9bcb7241..a5923d12ae2 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -443,7 +443,7 @@ static TIMER_DEVICE_CALLBACK( generate_interrupt ) /* IRQ is clocked on the rising edge of 16V, equal to the previous 32V */ if (scanline & 16) - cpunum_set_input_line(timer->machine, 0, 0, ((scanline - 1) & 32) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(timer->machine->cpu[0], 0, ((scanline - 1) & 32) ? ASSERT_LINE : CLEAR_LINE); /* do a partial update now to handle sprite multiplexing (Maze Invaders) */ video_screen_update_partial(timer->machine->primary_screen, scanline); @@ -460,7 +460,7 @@ static MACHINE_START( centiped ) static MACHINE_RESET( centiped ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); dsw_select = 0; control_select = 0; } @@ -477,7 +477,7 @@ static MACHINE_RESET( magworm ) static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c index 56dce9675ef..f1e757a00b8 100644 --- a/src/mame/drivers/cham24.c +++ b/src/mame/drivers/cham24.c @@ -215,7 +215,7 @@ static PALETTE_INIT( cham24 ) static void ppu_irq( int num, int *ppu_regs ) { - cpunum_set_input_line(Machine, num, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[num], INPUT_LINE_NMI, PULSE_LINE ); } /* our ppu interface */ diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c index 73c3378a64a..c7e251126ae 100644 --- a/src/mame/drivers/champbas.c +++ b/src/mame/drivers/champbas.c @@ -130,13 +130,13 @@ static WRITE8_HANDLER( irq_enable_w ) cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static TIMER_CALLBACK( exctsccr_fm_callback ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); } static MACHINE_START( exctsccr ) @@ -178,7 +178,7 @@ static WRITE8_HANDLER( champbas_mcu_halt_w ) return; data &= 1; - cpunum_set_input_line(machine, cpunum, INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpunum], INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c index 5bebcc57457..50c09d0e3fb 100644 --- a/src/mame/drivers/chanbara.c +++ b/src/mame/drivers/chanbara.c @@ -312,7 +312,7 @@ static WRITE8_HANDLER(chanbara_ay_out_1_w) static void sound_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 0,0,linestate); + cpu_set_input_line(machine->cpu[0],0,linestate); } diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c index 8ca1606ad9d..8b8a8c9a109 100644 --- a/src/mame/drivers/changela.c +++ b/src/mame/drivers/changela.c @@ -470,17 +470,17 @@ static const ay8910_interface ay8910_interface_2 = static INTERRUPT_GEN( chl_interrupt ) { - int vector = video_screen_get_vblank(machine->primary_screen) ? 0xdf : 0xcf; /* 4 irqs per frame: 3 times 0xcf, 1 time 0xdf */ + int vector = video_screen_get_vblank(device->machine->primary_screen) ? 0xdf : 0xcf; /* 4 irqs per frame: 3 times 0xcf, 1 time 0xdf */ -// video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen)); +// video_screen_update_partial(device->machine->primary_screen, video_screen_get_vpos(device->machine->primary_screen)); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, vector); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, vector); /* it seems the V8 == Vblank and it is connected to the INT on the 68705 */ //so we should cause an INT on the cpu 1 here, as well. //but only once per frame ! if (vector == 0xdf) /* only on vblank */ - cpunum_set_input_line(machine, 1, 0, PULSE_LINE ); + cpu_set_input_line(device->machine->cpu[1], 0, PULSE_LINE ); } diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c index 875b22e24ff..00618c28b38 100644 --- a/src/mame/drivers/cheekyms.c +++ b/src/mame/drivers/cheekyms.c @@ -26,7 +26,7 @@ static INPUT_CHANGED( coin_inserted ) { /* this starts a 556 one-shot timer (and triggers a sound effect) */ if (newval) - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c index fa90444bd91..7f9722d8b67 100644 --- a/src/mame/drivers/chinagat.c +++ b/src/mame/drivers/chinagat.c @@ -142,13 +142,13 @@ static WRITE8_HANDLER( chinagat_sub_bankswitch_w ) static WRITE8_HANDLER( chinagat_sub_IRQ_w ) { - cpunum_set_input_line(machine, 1, sprite_irq, (sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], sprite_irq, (sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE ); } static WRITE8_HANDLER( chinagat_cpu_sound_cmd_w ) { soundlatch_w( machine, offset, data ); - cpunum_set_input_line(machine, 2, sound_irq, (sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE ); + cpu_set_input_line(machine->cpu[2], sound_irq, (sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE ); } static READ8_HANDLER( saiyugb1_mcu_command_r ) @@ -156,7 +156,7 @@ static READ8_HANDLER( saiyugb1_mcu_command_r ) #if 0 if (saiyugb1_mcu_command == 0x78) { - cpunum_suspend(3, SUSPEND_REASON_HALT, 1); /* Suspend (speed up) */ + cpu_suspend(machine->cpu[3], SUSPEND_REASON_HALT, 1); /* Suspend (speed up) */ } #endif return saiyugb1_mcu_command; @@ -168,7 +168,7 @@ static WRITE8_HANDLER( saiyugb1_mcu_command_w ) #if 0 if (data != 0x78) { - cpunum_resume(3, SUSPEND_REASON_HALT); /* Wake up */ + cpu_resume(machine->cpu[3], SUSPEND_REASON_HALT); /* Wake up */ } #endif } @@ -459,7 +459,7 @@ GFXDECODE_END static void chinagat_irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2, 0, irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[2], 0, irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = @@ -477,8 +477,8 @@ static const msm5205_interface msm5205_config = static INTERRUPT_GEN( chinagat_interrupt ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); /* hold the FIRQ line */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); /* pulse the NMI line */ + cpu_set_input_line(device, 1, HOLD_LINE); /* hold the FIRQ line */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); /* pulse the NMI line */ } /* This is only on the second bootleg board */ diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c index a1a017eb1dc..8458538f51b 100644 --- a/src/mame/drivers/chqflag.c +++ b/src/mame/drivers/chqflag.c @@ -30,15 +30,15 @@ VIDEO_UPDATE( chqflag ); static INTERRUPT_GEN( chqflag_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (K051960_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { if (K051960_is_NMI_enabled()) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } @@ -138,7 +138,7 @@ static READ8_HANDLER( analog_read_r ) static WRITE8_HANDLER( chqflag_sh_irqtrigger_w ) { - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } @@ -309,7 +309,7 @@ INPUT_PORTS_END static void chqflag_ym2151_irq_w(running_machine *machine, int data) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } diff --git a/src/mame/drivers/cidelsa.c b/src/mame/drivers/cidelsa.c index 029e154c51b..713282625cd 100644 --- a/src/mame/drivers/cidelsa.c +++ b/src/mame/drivers/cidelsa.c @@ -579,7 +579,7 @@ static MACHINE_START( draco ) static MACHINE_RESET( cidelsa ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); } /* Machine Drivers */ diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c index 36fef81116d..9b54a3736ca 100644 --- a/src/mame/drivers/circusc.c +++ b/src/mame/drivers/circusc.c @@ -89,21 +89,21 @@ static READ8_HANDLER( circusc_sh_timer_r ) * to D1-D4. * * The following: - * clock = activecpu_gettotalcycles() >> 10; + * clock = cpu_get_total_cycles(machine->activecpu) >> 10; * return (clock & 0x0f) << 1; * Can be shortened to: */ int clock; - clock = activecpu_gettotalcycles() >> 9; + clock = cpu_get_total_cycles(machine->activecpu) >> 9; return clock & 0x1e; } static WRITE8_HANDLER( circusc_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( circusc_coin_counter_w ) diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c index d2ebe977591..e173ce2c94f 100644 --- a/src/mame/drivers/cischeat.c +++ b/src/mame/drivers/cischeat.c @@ -1739,12 +1739,12 @@ GFXDECODE_END #define CISCHEAT_INTERRUPT_NUM 3 static INTERRUPT_GEN( cischeat_interrupt ) { - if (cpu_getiloops()==0) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); /* Once */ + if (cpu_getiloops(device)==0) + cpu_set_input_line(device, 4, HOLD_LINE); /* Once */ else { - if (cpu_getiloops()%2) cpunum_set_input_line(machine, 0, 2, HOLD_LINE); - else cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + if (cpu_getiloops(device)%2) cpu_set_input_line(device, 2, HOLD_LINE); + else cpu_set_input_line(device, 1, HOLD_LINE); } } @@ -1894,10 +1894,10 @@ MACHINE_DRIVER_END #define INTERRUPT_NUM_SCUDHAMM 30 static INTERRUPT_GEN( interrupt_scudhamm ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); // update palette, layers etc. Not the sprites. - case 14: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); // "real" vblank. It just sets a flag that + case 0: cpu_set_input_line(device, 3, HOLD_LINE); // update palette, layers etc. Not the sprites. + case 14: cpu_set_input_line(device, 2, HOLD_LINE); // "real" vblank. It just sets a flag that // the main loop polls before updating the sprites. } } @@ -1947,10 +1947,10 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( interrupt_armchmp2) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 0: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); - case 14: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + case 0: cpu_set_input_line(device, 4, HOLD_LINE); + case 14: cpu_set_input_line(device, 2, HOLD_LINE); } } diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c index 78b482f169e..e943066ef3d 100644 --- a/src/mame/drivers/cliffhgr.c +++ b/src/mame/drivers/cliffhgr.c @@ -136,7 +136,7 @@ static WRITE8_HANDLER( cliff_coin_counter_w ) static READ8_HANDLER( cliff_irq_ack_r ) { /* deassert IRQ on the CPU */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); return 0x00; } @@ -174,7 +174,7 @@ static WRITE8_HANDLER( cliff_ldwire_w ) static INTERRUPT_GEN( cliff_vsync ) { /* clock the video chip every 60Hz */ - TMS9928A_interrupt(machine); + TMS9928A_interrupt(device->machine); } static TIMER_CALLBACK( cliff_irq_callback ) @@ -196,14 +196,14 @@ static TIMER_CALLBACK( cliff_irq_callback ) /* if we have a valid code, trigger an IRQ */ if ( phillips_code & 0x800000 ) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); timer_adjust_oneshot(irq_timer, video_screen_get_time_until_pos(machine->primary_screen, param, 0), param); } static void vdp_interrupt (running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE ); } diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c index 4f4a66481ba..bef895413d5 100644 --- a/src/mame/drivers/cloak.c +++ b/src/mame/drivers/cloak.c @@ -140,12 +140,12 @@ static WRITE8_HANDLER( cloak_custom_w ) static WRITE8_HANDLER( cloak_irq_reset_0_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( cloak_irq_reset_1_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static WRITE8_HANDLER( cloak_nvram_enable_w ) diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index be97007f744..fc641b7e2d3 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -140,7 +140,7 @@ static TIMER_CALLBACK( clock_irq ) /* assert the IRQ if not already asserted */ if (!irq_state) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); irq_state = 1; } @@ -211,7 +211,7 @@ static MACHINE_START( cloud9 ) static MACHINE_RESET( cloud9 ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); irq_state = 0; } @@ -227,7 +227,7 @@ static WRITE8_HANDLER( irq_ack_w ) { if (irq_state) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); irq_state = 0; } } diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c index 7c23db0b7fe..63f15e7eb27 100644 --- a/src/mame/drivers/cninja.c +++ b/src/mame/drivers/cninja.c @@ -59,13 +59,13 @@ static UINT16 *cninja_ram; static WRITE16_HANDLER( cninja_sound_w ) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } static WRITE16_HANDLER( stoneage_sound_w ) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static TIMER_CALLBACK( interrupt_gen ) @@ -83,7 +83,7 @@ static TIMER_CALLBACK( interrupt_gen ) deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf34_control[3]&0xffff; deco16_raster_display_list[deco16_raster_display_position++]=deco16_pf34_control[4]&0xffff; - cpunum_set_input_line(machine, 0, (cninja_irq_mask&0x10) ? 3 : 4, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], (cninja_irq_mask&0x10) ? 3 : 4, ASSERT_LINE); timer_adjust_oneshot(raster_irq_timer,attotime_never,0); } @@ -95,8 +95,8 @@ static READ16_HANDLER( cninja_irq_r ) return cninja_scanline; case 2: /* Raster IRQ ACK - value read is not used */ - cpunum_set_input_line(machine, 0, 3, CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, CLEAR_LINE); return 0; } @@ -749,12 +749,12 @@ static MACHINE_RESET( cninja ) static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static void sound_irq2(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,0,state); + cpu_set_input_line(machine->cpu[1],0,state); } static WRITE8_HANDLER( sound_bankswitch_w ) diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c index 8b4c81681c8..d1e3e7511a5 100644 --- a/src/mame/drivers/cntsteer.c +++ b/src/mame/drivers/cntsteer.c @@ -282,24 +282,24 @@ static WRITE8_HANDLER( cntsteer_background_w ) static WRITE8_HANDLER( gekitsui_int_w ) { // if (errorlog) fprintf(errorlog,"%04x: CPU 2 causes NMI\n",cpu_get_pc()); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( gekitsui_int2_w ) // not used.. { // if (errorlog) fprintf(errorlog,"%04x: CPU 1 causes IRQ\n",cpu_get_pc()); - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, ASSERT_LINE); } #endif static WRITE8_HANDLER( gekitsui_sub_irq_ack ) { - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, CLEAR_LINE); } #if 0 static WRITE8_HANDLER( cntsteer_int_w ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, ASSERT_LINE); } #endif @@ -311,11 +311,11 @@ static WRITE8_HANDLER( cntsteer_sound_w ) static WRITE8_HANDLER( zerotrgt_ctrl_w ) { logerror("CTRL: %04x: %04x: %04x\n",cpu_get_pc(machine->activecpu),offset,data); -// if (offset==0) cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); +// if (offset==0) cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); // Wrong - bits 0 & 1 used on this - if (offset==1) cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, ASSERT_LINE); -// if (offset==2) cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + if (offset==1) cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, ASSERT_LINE); +// if (offset==2) cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } #if 0 @@ -470,7 +470,7 @@ ADDRESS_MAP_END static int nmimask; static WRITE8_HANDLER( nmimask_w ) { nmimask = data & 0x80; } -static INTERRUPT_GEN ( sound_interrupt ) { if (!nmimask) cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); } +static INTERRUPT_GEN ( sound_interrupt ) { if (!nmimask) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x01ff) AM_RAM diff --git a/src/mame/drivers/cojag.c b/src/mame/drivers/cojag.c index c1e68c8efc3..c2a55b1ad2f 100644 --- a/src/mame/drivers/cojag.c +++ b/src/mame/drivers/cojag.c @@ -364,8 +364,8 @@ static MACHINE_RESET( cojag ) } /* clear any spinuntil stuff */ - jaguar_gpu_resume(); - jaguar_dsp_resume(); + jaguar_gpu_resume(machine); + jaguar_dsp_resume(machine); /* halt the CPUs */ jaguargpu_ctrl_w(1, G_CTRL, 0, 0xffffffff); @@ -414,8 +414,8 @@ static WRITE32_HANDLER( misc_control_w ) if (!(data & 0x80)) { /* clear any spinuntil stuff */ - jaguar_gpu_resume(); - jaguar_dsp_resume(); + jaguar_gpu_resume(machine); + jaguar_dsp_resume(machine); /* halt the CPUs */ jaguargpu_ctrl_w(1, G_CTRL, 0, 0xffffffff); @@ -582,7 +582,7 @@ static WRITE32_HANDLER( gpu_jump_w ) logerror("%08X:GPU jump address = %08X\n", cpu_get_previouspc(machine->activecpu), *gpu_jump_address); /* if the GPU is suspended, release it now */ - jaguar_gpu_resume(); + jaguar_gpu_resume(machine); /* start the sync timer going, and note that there is a command pending */ timer_call_after_resynch(NULL, 0, gpu_sync_timer); @@ -598,7 +598,7 @@ static READ32_HANDLER( gpu_jump_r ) { #if ENABLE_SPEEDUP_HACKS /* spin if we're allowed */ - jaguar_gpu_suspend(); + jaguar_gpu_suspend(machine); #endif /* no command is pending */ @@ -637,7 +637,7 @@ static UINT64 main_speedup_max_cycles; static READ32_HANDLER( cojagr3k_main_speedup_r ) { - UINT64 curcycles = activecpu_gettotalcycles(); + UINT64 curcycles = cpu_get_total_cycles(machine->activecpu); /* if it's been less than main_speedup_max_cycles cycles since the last time */ if (curcycles - main_speedup_last_cycles < main_speedup_max_cycles) @@ -645,7 +645,7 @@ static READ32_HANDLER( cojagr3k_main_speedup_r ) /* increment the count; if we hit 5, we can spin until an interrupt comes */ if (main_speedup_hits++ > 5) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); main_speedup_hits = 0; } } @@ -687,7 +687,7 @@ static UINT32 *main_gpu_wait; static READ32_HANDLER( main_gpu_wait_r ) { if (gpu_command_pending) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return *main_gpu_wait; } @@ -712,7 +712,7 @@ static READ32_HANDLER( main_gpu_wait_r ) static WRITE32_HANDLER( area51_main_speedup_w ) { - UINT64 curcycles = activecpu_gettotalcycles(); + UINT64 curcycles = cpu_get_total_cycles(machine->activecpu); /* store the data */ COMBINE_DATA(main_speedup); @@ -723,7 +723,7 @@ static WRITE32_HANDLER( area51_main_speedup_w ) /* increment the count; if we hit 5, we can spin until an interrupt comes */ if (main_speedup_hits++ > 5) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); main_speedup_hits = 0; } } @@ -746,7 +746,7 @@ static WRITE32_HANDLER( area51_main_speedup_w ) static WRITE32_HANDLER( area51mx_main_speedup_w ) { - UINT64 curcycles = activecpu_gettotalcycles(); + UINT64 curcycles = cpu_get_total_cycles(machine->activecpu); /* store the data */ COMBINE_DATA(&main_speedup[offset]); @@ -757,7 +757,7 @@ static WRITE32_HANDLER( area51mx_main_speedup_w ) /* increment the count; if we hit 5, we can spin until an interrupt comes */ if (main_speedup_hits++ > 10) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); main_speedup_hits = 0; } } diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c index 6123e860523..87258f1ef96 100644 --- a/src/mame/drivers/combatsc.c +++ b/src/mame/drivers/combatsc.c @@ -31,7 +31,7 @@ TODO: interleaving is taken into account. A high resolution timer around the poll loop is probably the best bet. The driver sets its timer manually because strange enough, interleaving doesn't occur immediately when - cpu_boost_interleave() is called. Speculations are TIME_NOWs could have + cpuexec_boost_interleave() is called. Speculations are TIME_NOWs could have been used as the timer durations to force instant triggering. @@ -218,7 +218,7 @@ static WRITE8_HANDLER( protection_clock_w ) static WRITE8_HANDLER( combasc_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( combasc_play_w ) diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c index b38a84ca940..e9ae5fea03d 100644 --- a/src/mame/drivers/commando.c +++ b/src/mame/drivers/commando.c @@ -232,7 +232,7 @@ GFXDECODE_END static INTERRUPT_GEN( commando_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); // RST 10h - VBLANK + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); // RST 10h - VBLANK } /* Machine Driver */ diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c index 722b1171547..7f2f79cfcf7 100644 --- a/src/mame/drivers/compgolf.c +++ b/src/mame/drivers/compgolf.c @@ -192,7 +192,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 0,0,linestate); + cpu_set_input_line(machine->cpu[0],0,linestate); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c index f88bcef5c38..362d8e6abb6 100644 --- a/src/mame/drivers/contra.c +++ b/src/mame/drivers/contra.c @@ -52,7 +52,7 @@ static WRITE8_HANDLER( contra_bankswitch_w ) static WRITE8_HANDLER( contra_sh_irqtrigger_w ) { - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,HOLD_LINE); } static WRITE8_HANDLER( contra_coin_counter_w ) diff --git a/src/mame/drivers/coolpool.c b/src/mame/drivers/coolpool.c index 9ababdd2809..7b5dd083f10 100644 --- a/src/mame/drivers/coolpool.c +++ b/src/mame/drivers/coolpool.c @@ -220,7 +220,7 @@ static WRITE16_HANDLER( amerdart_misc_w ) coin_counter_w(0, ~data & 0x0001); coin_counter_w(1, ~data & 0x0002); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); /* bits 10-15 are counted down over time */ if (data & 0x0400) amerdart_iop_echo = 1; @@ -233,7 +233,7 @@ static TIMER_CALLBACK( amerdart_iop_response ) iop_answer = iop_cmd; if (amerdart_iop_echo && iop_cmd != 0x19) { - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); return; } amerdart_iop_echo = 0; @@ -271,7 +271,7 @@ static TIMER_CALLBACK( amerdart_iop_response ) break; } - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); } @@ -297,7 +297,7 @@ static WRITE16_HANDLER( coolpool_misc_w ) coin_counter_w(0, ~data & 0x0001); coin_counter_w(1, ~data & 0x0002); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x0400) ? ASSERT_LINE : CLEAR_LINE); } @@ -313,10 +313,10 @@ static TIMER_CALLBACK( deferred_iop_w ) { iop_cmd = param; cmd_pending = 1; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); /* ??? I have no idea who should generate this! */ + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); /* ??? I have no idea who should generate this! */ /* the DSP polls the status bit so it isn't strictly */ /* necessary to also have an IRQ */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); } @@ -330,7 +330,7 @@ static WRITE16_HANDLER( coolpool_iop_w ) static READ16_HANDLER( coolpool_iop_r ) { logerror("%08x:IOP read %04x\n",cpu_get_pc(machine->activecpu),iop_answer); - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); return iop_answer; } @@ -356,7 +356,7 @@ static WRITE16_HANDLER( dsp_answer_w ) { logerror("%08x:IOP answer %04x\n",cpu_get_pc(machine->activecpu),data); iop_answer = data; - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); } diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index 3bfe572bd91..c7769008b8e 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -128,30 +128,30 @@ GFXDECODE_END // IRQs 2 & 3 are valid on SH-2 static INTERRUPT_GEN( system_h1 ) { - if (cpu_getiloops()) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + if (cpu_getiloops(device)) + cpu_set_input_line(device, 4, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(device, 3, HOLD_LINE); } // not sure on SH-1 static INTERRUPT_GEN( system_h1_sub ) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { -// cpunum_set_input_line(machine, 2, 4, HOLD_LINE); +// cpu_set_input_line(device, 4, HOLD_LINE); } else { -// cpunum_set_input_line(machine, 2, 3, HOLD_LINE); +// cpu_set_input_line(device, 3, HOLD_LINE); } } static MACHINE_RESET ( coolridr ) { -// cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); +// cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c index bf85769c82c..f3836a2b1e5 100644 --- a/src/mame/drivers/cop01.c +++ b/src/mame/drivers/cop01.c @@ -69,7 +69,7 @@ WRITE8_HANDLER( cop01_vreg_w ); static WRITE8_HANDLER( cop01_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static READ8_HANDLER( cop01_sound_command_r ) @@ -82,7 +82,7 @@ static READ8_HANDLER( cop01_sound_command_r ) res = (soundlatch_r(machine,offset) & 0x7f) << 1; /* bit 0 seems to be a timer */ - if ((activecpu_gettotalcycles() / TIMER_RATE) & 1) + if ((cpu_get_total_cycles(machine->activecpu) / TIMER_RATE) & 1) { if (pulse == 0) res |= 1; pulse = 1; diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c index f9daa024962..d39a4b394ef 100644 --- a/src/mame/drivers/cosmic.c +++ b/src/mame/drivers/cosmic.c @@ -350,20 +350,20 @@ static WRITE8_HANDLER( cosmica_sound_output_w ) static INTERRUPT_GEN( panic_interrupt ) { - if (cpu_getiloops() != 0) + if (cpu_getiloops(device) != 0) { /* Coin insert - Trigger Sample */ /* mostly not noticed since sound is */ /* only enabled if game in progress! */ - if ((input_port_read(machine, "SYSTEM") & 0xc0) != 0xc0) - panic_sound_output_w(machine, 17, 1); + if ((input_port_read(device->machine, "SYSTEM") & 0xc0) != 0xc0) + panic_sound_output_w(device->machine, 17, 1); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ } else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h */ } static INTERRUPT_GEN( cosmica_interrupt ) @@ -372,8 +372,8 @@ static INTERRUPT_GEN( cosmica_interrupt ) if (pixel_clock == 0) { - if (input_port_read(machine, "FAKE") & 1) /* Left Coin */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "FAKE") & 1) /* Left Coin */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } @@ -386,27 +386,27 @@ static INTERRUPT_GEN( cosmicg_interrupt ) It makes sense and works fine, but I cannot be 100% sure this is correct, as I have no Cosmic Guerilla console :-) . */ - if ((input_port_read(machine, "IN2") & 1)) /* Coin */ + if ((input_port_read(device->machine, "IN2") & 1)) /* Coin */ /* on tms9980, a 6 on the interrupt bus means level 4 interrupt */ - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, 6); + cpu_set_input_line_and_vector(device, 0, ASSERT_LINE, 6); else - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(device, 0, CLEAR_LINE); } static INTERRUPT_GEN( magspot_interrupt ) { /* Coin 1 causes an IRQ, Coin 2 an NMI */ - if (input_port_read(machine, "COINS") & 0x01) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); - else if (input_port_read(machine, "COINS") & 0x02) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "COINS") & 0x01) + cpu_set_input_line(device, 0, HOLD_LINE); + else if (input_port_read(device->machine, "COINS") & 0x02) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static INTERRUPT_GEN( nomnlnd_interrupt ) { /* Coin causes an NMI */ - if (input_port_read(machine, "COIN") & 0x01) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "COIN") & 0x01) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/cowrace.c b/src/mame/drivers/cowrace.c index 8788fff3bdd..d83f3cd04aa 100644 --- a/src/mame/drivers/cowrace.c +++ b/src/mame/drivers/cowrace.c @@ -49,7 +49,7 @@ static VIDEO_UPDATE( cowrace ) static WRITE8_HANDLER( cowrace_soundlatch_w ) { soundlatch_w(0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } #endif diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c index b1a1bd979e6..01108aaec7b 100644 --- a/src/mame/drivers/cps1.c +++ b/src/mame/drivers/cps1.c @@ -330,7 +330,7 @@ INTERRUPT_GEN( cps1_interrupt ) { /* Strider also has a IRQ4 handler. It is input port related, but the game */ /* works without it. It is the *only* CPS1 game to have that. */ - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } /******************************************************************** @@ -344,7 +344,7 @@ static UINT8 *qsound_sharedram1,*qsound_sharedram2; INTERRUPT_GEN( cps1_qsound_interrupt ) { - cpunum_set_input_line(machine, cpunum, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } @@ -2736,7 +2736,7 @@ GFXDECODE_END static void cps1_irq_handler_mus(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = @@ -2892,7 +2892,7 @@ static void m5205_int1(running_machine *machine, int data) // sample_buffer1 >>= 4; // sample_select1 ^= 1; // if (sample_select1 == 0) -// cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); +// cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static void m5205_int2(running_machine *machine, int data) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index bd616a39e71..e56a8bcb8a8 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -658,9 +658,9 @@ static INTERRUPT_GEN( cps2_interrupt ) if(cps1_scanline1 == scancount || (cps1_scanline1 < scancount && !cps1_scancalls)) { cps1_cps_b_regs[0x10/2] = 0; - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); cps2_set_sprite_priorities(); - video_screen_update_partial(machine->primary_screen, 16 - 10 + scancount); /* visarea.min_y - [first visible line?] + scancount */ + video_screen_update_partial(device->machine->primary_screen, 16 - 10 + scancount); /* visarea.min_y - [first visible line?] + scancount */ cps1_scancalls++; // popmessage("IRQ4 scancounter = %04i",scancount); } @@ -669,9 +669,9 @@ static INTERRUPT_GEN( cps2_interrupt ) if(cps1_scanline2 == scancount || (cps1_scanline2 < scancount && !cps1_scancalls)) { cps1_cps_b_regs[0x12/2] = 0; - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); cps2_set_sprite_priorities(); - video_screen_update_partial(machine->primary_screen, 16 - 10 + scancount); /* visarea.min_y - [first visible line?] + scancount */ + video_screen_update_partial(device->machine->primary_screen, 16 - 10 + scancount); /* visarea.min_y - [first visible line?] + scancount */ cps1_scancalls++; // popmessage("IRQ4 scancounter = %04i",scancount); } @@ -680,11 +680,11 @@ static INTERRUPT_GEN( cps2_interrupt ) { cps1_cps_b_regs[0x10/2] = cps1_scanline1; cps1_cps_b_regs[0x12/2] = cps1_scanline2; - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); if(cps1_scancalls) { cps2_set_sprite_priorities(); - video_screen_update_partial(machine->primary_screen, 256); + video_screen_update_partial(device->machine->primary_screen, 256); } cps2_objram_latch(); } @@ -751,7 +751,7 @@ static WRITE16_HANDLER( cps2_eeprom_port_w ) /* bit 7 - */ /* Z80 Reset */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE); coin_counter_w(0, data & 0x0001); if( (strncmp(machine->gamedrv->name,"pzloop2",8)==0) || @@ -7312,7 +7312,7 @@ static DRIVER_INIT( cps2 ) DRIVER_INIT_CALL(cps2crpt); cps2networkpresent = 0; - cpunum_set_clockscale(machine, 0, 0.7375f); /* RAM access waitstates etc. aren't emulated - slow the CPU to compensate */ + cpu_set_clockscale(machine->cpu[0], 0.7375f); /* RAM access waitstates etc. aren't emulated - slow the CPU to compensate */ } static DRIVER_INIT( ssf2tb ) diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index c567c0a666d..8149e7398e4 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -1884,7 +1884,7 @@ static WRITE32_HANDLER( cps3_palettedma_w ) } - cpunum_set_input_line(machine, 0,10, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],10, ASSERT_LINE); } @@ -2105,14 +2105,14 @@ static void cps3_process_character_dma(running_machine *machine, UINT32 address) /* We should probably copy this, but a pointer to it is fine for our purposes as the data doesn't change */ current_table_address = real_source; } - cpunum_set_input_line(machine, 0,10, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],10, ASSERT_LINE); } else if ( (dat1&0x00e00000) ==0x00400000 ) { /* 6bpp DMA decompression - this is used for the majority of sprites and backgrounds */ cps3_do_char_dma( machine, real_source, real_destination, real_length ); - cpunum_set_input_line(machine, 0,10, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],10, ASSERT_LINE); } else if ( (dat1&0x00e00000) ==0x00600000 ) @@ -2120,7 +2120,7 @@ static void cps3_process_character_dma(running_machine *machine, UINT32 address) /* 8bpp DMA decompression - this is used on SFIII NG Sean's Stage ONLY */ cps3_do_alt_char_dma( machine, real_source, real_destination, real_length); - cpunum_set_input_line(machine, 0,10, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],10, ASSERT_LINE); } else { @@ -2177,12 +2177,12 @@ static WRITE32_HANDLER( cps3_characterdma_w ) static WRITE32_HANDLER( cps3_irq10_ack_w ) { - cpunum_set_input_line(machine, 0,10, CLEAR_LINE); return; + cpu_set_input_line(machine->cpu[0],10, CLEAR_LINE); return; } static WRITE32_HANDLER( cps3_irq12_ack_w ) { - cpunum_set_input_line(machine, 0,12, CLEAR_LINE); return; + cpu_set_input_line(machine->cpu[0],12, CLEAR_LINE); return; } static WRITE32_HANDLER( cps3_unk_vidregs_w ) @@ -2324,7 +2324,7 @@ INPUT_PORTS_END static INTERRUPT_GEN(cps3_vbl_interrupt) { - cpunum_set_input_line(machine, 0,12, ASSERT_LINE); + cpu_set_input_line(device,12, ASSERT_LINE); } static INTERRUPT_GEN(cps3_other_interrupt) @@ -2332,7 +2332,7 @@ static INTERRUPT_GEN(cps3_other_interrupt) // this seems to need to be periodic (see the life bar portraits in sfiii2 // but also triggered on certain dma events (or warzard locks up in attract) // what is the REAL source of IRQ10?? - cpunum_set_input_line(machine, 0,10, ASSERT_LINE); + cpu_set_input_line(device,10, ASSERT_LINE); } diff --git a/src/mame/drivers/crgolf.c b/src/mame/drivers/crgolf.c index 5a8aa444820..154a17d16f3 100644 --- a/src/mame/drivers/crgolf.c +++ b/src/mame/drivers/crgolf.c @@ -122,7 +122,7 @@ static WRITE8_HANDLER( unknown_w ) static TIMER_CALLBACK( main_to_sound_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); main_to_sound_data = param; } @@ -135,7 +135,7 @@ static WRITE8_HANDLER( main_to_sound_w ) static READ8_HANDLER( main_to_sound_r ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); return main_to_sound_data; } @@ -149,7 +149,7 @@ static READ8_HANDLER( main_to_sound_r ) static TIMER_CALLBACK( sound_to_main_callback ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); sound_to_main_data = param; } @@ -162,7 +162,7 @@ static WRITE8_HANDLER( sound_to_main_w ) static READ8_HANDLER( sound_to_main_r ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); return sound_to_main_data; } diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c index 527c0ffa0ab..1e4060a8e02 100644 --- a/src/mame/drivers/crimfght.c +++ b/src/mame/drivers/crimfght.c @@ -36,7 +36,7 @@ static WRITE8_HANDLER( crimfght_coin_w ) static WRITE8_HANDLER( crimfght_sh_irqtrigger_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( crimfght_snd_bankswitch_w ) diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c index f67c8ff0a3c..d2c41c3e089 100644 --- a/src/mame/drivers/crospang.c +++ b/src/mame/drivers/crospang.c @@ -316,7 +316,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c index 828db700fe7..a3bf044c5f0 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -169,7 +169,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -436,7 +436,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c index 5d9135b7fac..6eb1a977f1f 100644 --- a/src/mame/drivers/crystal.c +++ b/src/mame/drivers/crystal.c @@ -147,11 +147,11 @@ static void IntReq(running_machine *machine, int num) { IntPend|=(1<cpu[0],SE3208_INT,ASSERT_LINE); } #ifdef IDLE_LOOP_SPEEDUP FlipCntRead=0; - cpunum_resume(0,SUSPEND_REASON_SPIN); + cpu_resume(machine->cpu[0],SUSPEND_REASON_SPIN); #endif } @@ -161,7 +161,7 @@ static READ32_HANDLER(FlipCount_r) UINT32 IntPend=program_read_dword_32le(0x01800c0c); FlipCntRead++; if(FlipCntRead>=16 && !IntPend && FlipCount!=0) - cpunum_suspend(0,SUSPEND_REASON_SPIN,1); + cpu_suspend(machine->cpu[0],SUSPEND_REASON_SPIN,1); #endif return ((UINT32) FlipCount)<<16; } @@ -205,7 +205,7 @@ static WRITE32_HANDLER(IntAck_w) IntPend&=~(1<<(data&0x1f)); program_write_dword_32le(0x01800c0c,IntPend); if(!IntPend) - cpunum_set_input_line(machine, 0,SE3208_INT,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],SE3208_INT,CLEAR_LINE); } if(mem_mask&0xff00) IntHigh=(data>>8)&7; @@ -499,7 +499,7 @@ static MACHINE_START(crystal) { int i; - cpunum_set_irq_callback(0,icallback); + cpu_set_irq_callback(machine->cpu[0],icallback); for (i=0; i<4; i++) Timer[i] = timer_alloc(Timercb, (void*)(FPTR)i); @@ -514,7 +514,7 @@ static MACHINE_RESET(crystal) memset(vidregs,0,0x10000); FlipCount=0; IntHigh=0; - cpunum_set_irq_callback(0,icallback); + cpu_set_irq_callback(machine->cpu[0],icallback); Bank=0; memory_set_bankptr(1,memory_region(machine, "user1")+0); FlashCmd=0xff; @@ -640,7 +640,7 @@ static VIDEO_EOF(crystal) static INTERRUPT_GEN(crystal_interrupt) { - IntReq(machine, 24); //VRender0 VBlank + IntReq(device->machine, 24); //VRender0 VBlank } static INPUT_PORTS_START(crystal) diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c index 55af86aaace..03377ab6f86 100644 --- a/src/mame/drivers/cshooter.c +++ b/src/mame/drivers/cshooter.c @@ -198,13 +198,13 @@ static VIDEO_UPDATE(cshooter) static INTERRUPT_GEN( cshooter_interrupt ) { - if(cpu_getiloops()) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x08); + if(cpu_getiloops(device)) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x08); else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x10); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x10); if(mainram!=NULL) - ar_coin_hack(machine); + ar_coin_hack(device->machine); } diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index 9112ce22ef6..7900d496f49 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -188,7 +188,7 @@ static INTERRUPT_GEN( vblank ) { int int_level = video_field == 0 ? 5 : 6; - cputag_set_input_line(machine, "main_cpu", int_level, HOLD_LINE); + cpu_set_input_line(device, int_level, HOLD_LINE); /* Update the laserdisc */ video_field ^= 1; diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c index a65798ce37f..9e18fdb43bf 100644 --- a/src/mame/drivers/cultures.c +++ b/src/mame/drivers/cultures.c @@ -348,7 +348,7 @@ static PALETTE_INIT( cultures ) static INTERRUPT_GEN( cultures_interrupt ) { if (irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_RESET( cultures ) diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c index 125d4ac0688..5340d0c7688 100644 --- a/src/mame/drivers/cvs.c +++ b/src/mame/drivers/cvs.c @@ -245,8 +245,8 @@ WRITE8_HANDLER( cvs_s2636_2_or_character_ram_w ) static INTERRUPT_GEN( cvs_main_cpu_interrupt ) { - cpunum_set_input_line_vector(CVS_MAIN_CPU_INDEX, 0, 0x03); - cpunum_set_input_line(machine, CVS_MAIN_CPU_INDEX, 0, PULSE_LINE); + cpu_set_input_line_vector(device, 0, 0x03); + cpu_set_input_line(device, 0, PULSE_LINE); cvs_scroll_stars(); } @@ -254,8 +254,8 @@ static INTERRUPT_GEN( cvs_main_cpu_interrupt ) static void cvs_dac_cpu_interrupt(void) { - cpunum_set_input_line_vector(CVS_DAC_CPU_INDEX, 0, 0x03); - cpunum_set_input_line(Machine, CVS_DAC_CPU_INDEX, 0, HOLD_LINE); + cpu_set_input_line_vector(Machine->cpu[CVS_DAC_CPU_INDEX], 0, 0x03); + cpu_set_input_line(Machine->cpu[CVS_DAC_CPU_INDEX], 0, HOLD_LINE); } diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c index d950bfde3bb..bed05dfecbf 100644 --- a/src/mame/drivers/cyberbal.c +++ b/src/mame/drivers/cyberbal.c @@ -36,8 +36,8 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 2, 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -52,14 +52,14 @@ static MACHINE_RESET( cyberbal ) cyberbal_sound_reset(machine); /* CPU 2 doesn't run until reset */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } static void cyberb2p_update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -112,7 +112,7 @@ static READ16_HANDLER( sound_state_r ) static WRITE16_HANDLER( p2_reset_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); } diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c index cb166d85412..f1e1ea6813f 100644 --- a/src/mame/drivers/cybertnk.c +++ b/src/mame/drivers/cybertnk.c @@ -302,7 +302,7 @@ static WRITE16_HANDLER( io_w ) case 0: // sound data if (ACCESSING_BITS_0_7) - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE); else LOG_UNKNOWN_WRITE break; @@ -540,19 +540,19 @@ GFXDECODE_END static INTERRUPT_GEN( master_irq ) { - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0,1,HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0,3,HOLD_LINE); break; + case 0: cpu_set_input_line(device,1,HOLD_LINE); break; + case 1: cpu_set_input_line(device,3,HOLD_LINE); break; } } static INTERRUPT_GEN( slave_irq ) { - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0,3,HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0,1,HOLD_LINE); break; + case 0: cpu_set_input_line(device,3,HOLD_LINE); break; + case 1: cpu_set_input_line(device,1,HOLD_LINE); break; } } diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c index b451b8435b3..608b2d6012a 100644 --- a/src/mame/drivers/dacholer.c +++ b/src/mame/drivers/dacholer.c @@ -70,7 +70,7 @@ static WRITE8_HANDLER( coins_w ) static WRITE8_HANDLER(snd_w) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -375,11 +375,11 @@ static INTERRUPT_GEN( sound_irq ) { if(music_interrupt_enable == 1) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0x30); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x30); } } -static INTERRUPT_GEN(adpcm_int) +static void adpcm_int(running_machine *machine, int cpunum) { if(snd_interrupt_enable == 1 || (snd_interrupt_enable ==0 && msm_toggle==1)) { @@ -388,7 +388,7 @@ static INTERRUPT_GEN(adpcm_int) msm_toggle^=1; if (msm_toggle==0) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0x38); + cpu_set_input_line_and_vector(machine->cpu[cpunum], 0, HOLD_LINE, 0x38); } } } diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c index 4c4e21ad498..ca3bcdcec11 100644 --- a/src/mame/drivers/darius.c +++ b/src/mame/drivers/darius.c @@ -155,7 +155,7 @@ static void parse_control( running_machine *machine ) /* assumes Z80 sandwiched /* bit 0 enables cpu B */ /* however this fails when recovering from a save state if cpu B is disabled !! */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); } @@ -517,7 +517,7 @@ ADDRESS_MAP_END static void darius_adpcm_int (running_machine *machine, int data) { if (nmi_enable) - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, PULSE_LINE); } static const msm5205_interface msm5205_config = @@ -794,7 +794,7 @@ GFXDECODE_END /* handler called by the YM2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) /* assumes Z80 sandwiched between 68Ks */ { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_interface_1 = diff --git a/src/mame/drivers/darkhors.c b/src/mame/drivers/darkhors.c index 4791967125f..744a27bfeba 100644 --- a/src/mame/drivers/darkhors.c +++ b/src/mame/drivers/darkhors.c @@ -584,11 +584,11 @@ GFXDECODE_END static INTERRUPT_GEN( darkhors ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 2: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 5, HOLD_LINE); break; } } diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c index 24493ca3915..b48e119cec0 100644 --- a/src/mame/drivers/darkmist.c +++ b/src/mame/drivers/darkmist.c @@ -237,10 +237,10 @@ GFXDECODE_END static INTERRUPT_GEN( darkmist_interrupt ) { - if(cpu_getiloops()) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x08); + if(cpu_getiloops(device)) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x08); else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x10); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x10); } diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c index 85a8072961d..5bf5acf4d9b 100644 --- a/src/mame/drivers/darkseal.c +++ b/src/mame/drivers/darkseal.c @@ -44,7 +44,7 @@ static WRITE16_HANDLER( darkseal_control_w ) return; case 8: /* Sound CPU write */ soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; case 0xa: /* IRQ Ack (VBL) */ return; @@ -274,7 +274,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c index 81df29e6cb7..32c9cf65340 100644 --- a/src/mame/drivers/dassault.c +++ b/src/mame/drivers/dassault.c @@ -173,15 +173,15 @@ static READ16_HANDLER( dassault_sub_control_r ) static WRITE16_HANDLER( dassault_sound_w ) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 2,0,HOLD_LINE); /* IRQ1 */ + cpu_set_input_line(machine->cpu[2],0,HOLD_LINE); /* IRQ1 */ } /* The CPU-CPU irq controller is overlaid onto the end of the shared memory */ static READ16_HANDLER( dassault_irq_r ) { switch (offset) { - case 0: cpunum_set_input_line(machine, 0, 5, CLEAR_LINE); break; - case 1: cpunum_set_input_line(machine, 1, 6, CLEAR_LINE); break; + case 0: cpu_set_input_line(machine->cpu[0], 5, CLEAR_LINE); break; + case 1: cpu_set_input_line(machine->cpu[1], 6, CLEAR_LINE); break; } return shared_ram[(0xffc/2)+offset]; /* The values probably don't matter */ } @@ -189,8 +189,8 @@ static READ16_HANDLER( dassault_irq_r ) static WRITE16_HANDLER( dassault_irq_w ) { switch (offset) { - case 0: cpunum_set_input_line(machine, 0, 5, ASSERT_LINE); break; - case 1: cpunum_set_input_line(machine, 1, 6, ASSERT_LINE); break; + case 0: cpu_set_input_line(machine->cpu[0], 5, ASSERT_LINE); break; + case 1: cpu_set_input_line(machine->cpu[1], 6, ASSERT_LINE); break; } COMBINE_DATA(&shared_ram[(0xffc/2)+offset]); /* The values probably don't matter */ @@ -533,7 +533,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 2,1,state); + cpu_set_input_line(machine->cpu[2],1,state); } static WRITE8_HANDLER( sound_bankswitch_w ) @@ -812,7 +812,7 @@ static READ16_HANDLER( dassault_main_skip ) int ret=dassault_ram[0]; if (cpu_get_previouspc(machine->activecpu)==0x1170 && ret&0x8000) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return ret; } @@ -822,7 +822,7 @@ static READ16_HANDLER( thndzone_main_skip ) int ret=dassault_ram[0]; if (cpu_get_pc(machine->activecpu)==0x114c && ret&0x8000) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return ret; } diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c index d214a26c772..214cba001a7 100644 --- a/src/mame/drivers/dblewing.c +++ b/src/mame/drivers/dblewing.c @@ -282,7 +282,7 @@ static WRITE16_HANDLER( dblewing_prot_w ) if ((offset*2)==0x104) { dblwings_104_data = data; return; } // p1 inputs select screen OK if ((offset*2)==0x200) { dblwings_200_data = data; return; } if ((offset*2)==0x28c) { dblwings_28c_data = data; return; } - if ((offset*2)==0x380) { soundlatch_w(machine,0,data&0xff); /*cpunum_set_input_line(machine, 1,0,HOLD_LINE);*/ return; } // sound write + if ((offset*2)==0x380) { soundlatch_w(machine,0,data&0xff); /*cpu_set_input_line(machine->cpu[1],0,HOLD_LINE);*/ return; } // sound write if ((offset*2)==0x38e) { dblwings_38e_data = data; return; } if ((offset*2)==0x406) { dblwings_406_data = data; return; } // p2 inputs select screen OK if ((offset*2)==0x408) { dblwings_408_data = data; return; } // 3rd player 1st level? @@ -526,7 +526,7 @@ INPUT_PORTS_END static void sound_irq(running_machine *machine, int irq) { -// cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); +// cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); // mame_printf_debug("sound irq\n"); } diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c index 2d9a84193c6..a0c6dbcc33a 100644 --- a/src/mame/drivers/dbz.c +++ b/src/mame/drivers/dbz.c @@ -74,15 +74,15 @@ VIDEO_UPDATE(dbz); static INTERRUPT_GEN( dbz_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, MC68000_IRQ_2, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_2, HOLD_LINE); break; case 1: if (K053246_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_4, HOLD_LINE); break; } } @@ -120,15 +120,15 @@ static WRITE16_HANDLER( dbz_sound_command_w ) static WRITE16_HANDLER( dbz_sound_cause_nmi ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static void dbz_sound_irq(running_machine *machine, int irq) { if (irq) - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static ADDRESS_MAP_START( dbz_readmem, ADDRESS_SPACE_PROGRAM, 16 ) diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c index 5071f9c93ca..041b1c6fe07 100644 --- a/src/mame/drivers/dcheese.c +++ b/src/mame/drivers/dcheese.c @@ -59,11 +59,11 @@ static UINT8 sound_msb_latch; * *************************************/ -static void update_irq_state(running_machine *machine) +static void update_irq_state(const device_config *cpu) { int i; for (i = 1; i < 5; i++) - cpunum_set_input_line(machine, 0, i, irq_state[i] ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(cpu, i, irq_state[i] ? ASSERT_LINE : CLEAR_LINE); } @@ -71,7 +71,7 @@ static IRQ_CALLBACK(irq_callback) { /* auto-ack the IRQ */ irq_state[irqline] = 0; - update_irq_state(machine); + update_irq_state(device); /* vector is 0x40 + index */ return 0x40 + irqline; @@ -81,14 +81,14 @@ static IRQ_CALLBACK(irq_callback) void dcheese_signal_irq(running_machine *machine, int which) { irq_state[which] = 1; - update_irq_state(machine); + update_irq_state(machine->cpu[0]); } static INTERRUPT_GEN( dcheese_vblank ) { logerror("---- VBLANK ----\n"); - dcheese_signal_irq(machine, 4); + dcheese_signal_irq(device->machine, 4); } @@ -101,7 +101,7 @@ static INTERRUPT_GEN( dcheese_vblank ) static MACHINE_START( dcheese ) { - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); state_save_register_global_array(irq_state); state_save_register_global(soundlatch_full); @@ -143,7 +143,7 @@ static WRITE16_HANDLER( sound_command_w ) { /* write the latch and set the IRQ */ soundlatch_full = 1; - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); soundlatch_w(machine, 0, data & 0xff); } } @@ -160,7 +160,7 @@ static READ8_HANDLER( sound_command_r ) { /* read the latch and clear the IRQ */ soundlatch_full = 0; - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); return soundlatch_r(machine, 0); } diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c index 572fa86a029..cf2b3a2a75e 100644 --- a/src/mame/drivers/ddayjlc.c +++ b/src/mame/drivers/ddayjlc.c @@ -172,7 +172,7 @@ static WRITE8_HANDLER(bg2_w) static WRITE8_HANDLER( sound_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } static WRITE8_HANDLER( i8257_CH0_w ) @@ -390,13 +390,13 @@ static const ay8910_interface ay8910_config = static INTERRUPT_GEN( ddayjlc_interrupt ) { if(main_nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static INTERRUPT_GEN( ddayjlc_snd_interrupt ) { if(sound_nmi_enable) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( ddayjlc ) diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c index 9b1a4498053..df35157084c 100644 --- a/src/mame/drivers/ddealer.c +++ b/src/mame/drivers/ddealer.c @@ -578,7 +578,7 @@ static MACHINE_RESET (ddealer) static INTERRUPT_GEN( ddealer_interrupt ) { - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static MACHINE_DRIVER_START( ddealer ) diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 450c2ded314..628bb76df04 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -740,14 +740,14 @@ profiler_mark(PROFILER_VIDEO); if (irq_vector) /* quizchq */ - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, irq_vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, irq_vector); else { /* ddenlovr */ if (ddenlovr_blitter_irq_enable) { ddenlovr_blitter_irq_flag = 1; - cpunum_set_input_line(machine, 0,1,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],1,HOLD_LINE); } } break; @@ -907,7 +907,7 @@ profiler_mark(PROFILER_VIDEO); #endif } - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, irq_vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, irq_vector); break; default: @@ -1950,7 +1950,7 @@ static WRITE8_HANDLER( mmpanic_rombank_w ) static WRITE8_HANDLER( mmpanic_soundlatch_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( mmpanic_blitter_w ) @@ -6594,19 +6594,19 @@ static INTERRUPT_GEN( quizchq_irq ) /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ - if (cpu_get_info_int(machine->cpu[0],CPUINFO_INT_INPUT_STATE + 0)) + if (cpu_get_info_int(device,CPUINFO_INT_INPUT_STATE + 0)) return; if ((++count % 60) == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xfc); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xfc); else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xee); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xee); } #ifdef UNUSED_FUNCTION static INTERRUPT_GEN( rtc_irq ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xfc); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xfc); } #endif @@ -6674,13 +6674,13 @@ static INTERRUPT_GEN( mmpanic_irq ) /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise the game would lock up. */ - if (cpu_get_info_int(machine->cpu[0],CPUINFO_INT_INPUT_STATE + 0)) + if (cpu_get_info_int(device,CPUINFO_INT_INPUT_STATE + 0)) return; if ((++count % 60) == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xe7); // RST 20, clock + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xe7); // RST 20, clock else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); // RST 08, vblank + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); // RST 08, vblank } static MACHINE_DRIVER_START( mmpanic ) @@ -6746,13 +6746,13 @@ static INTERRUPT_GEN( hanakanz_irq ) /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ - if (cpu_get_info_int(machine->cpu[0],CPUINFO_INT_INPUT_STATE + 0)) + if (cpu_get_info_int(device,CPUINFO_INT_INPUT_STATE + 0)) return; if ((++count % 60) == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xe2); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xe2); else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xe0); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xe0); } static MACHINE_DRIVER_START( hanakanz ) @@ -6822,13 +6822,13 @@ static INTERRUPT_GEN( mjchuuka_irq ) /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ - if (cpu_get_info_int(machine->cpu[0],CPUINFO_INT_INPUT_STATE + 0)) + if (cpu_get_info_int(device,CPUINFO_INT_INPUT_STATE + 0)) return; if ((++count % 60) == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xfa); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xfa); else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xf8); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xf8); } @@ -6880,19 +6880,19 @@ static INTERRUPT_GEN( mjmyster_irq ) /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise quizchq would lock up. */ - if (cpu_get_info_int(machine->cpu[0],CPUINFO_INT_INPUT_STATE + 0)) + if (cpu_get_info_int(device,CPUINFO_INT_INPUT_STATE + 0)) return; - switch( cpu_getiloops() ) + switch( cpu_getiloops(device) ) { - case 0: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xf8); break; - case 1: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xfa); break; + case 0: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xf8); break; + case 1: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xfa); break; } } static INTERRUPT_GEN( rtc_nmi_irq ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static const ay8910_interface mjmyster_ay8910_interface = @@ -6936,13 +6936,13 @@ static INTERRUPT_GEN( hginga_irq ) /* I haven't found a irq ack register, so I need this kludge to make sure I don't lose any interrupt generated by the blitter, otherwise hginga would lock up. */ - if (cpu_get_info_int(machine->cpu[0],CPUINFO_INT_INPUT_STATE + 0)) + if (cpu_get_info_int(device,CPUINFO_INT_INPUT_STATE + 0)) return; if ((++count % 60) == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xee); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xee); else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xf8); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xf8); } static const ay8910_interface hginga_ay8910_interface = @@ -7019,15 +7019,15 @@ static INTERRUPT_GEN( mjflove_irq ) { mjflove_irq_cause = 1 | (1 << 1); - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: mjflove_irq_cause &= 1; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); break; case 1: mjflove_irq_cause &= 1 << 1; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); break; } } @@ -7050,7 +7050,7 @@ MACHINE_DRIVER_END 0xee is vblank */ static INTERRUPT_GEN( hparadis_irq ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xee); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xee); } static MACHINE_DRIVER_START( hparadis ) diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index a460ccf69a4..b7ad6f1d425 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -153,11 +153,11 @@ static TIMER_CALLBACK( ddragon_scanline_callback ) /* on the rising edge of VBLK (vcount == F8), signal an NMI */ if (vcount == 0xf8) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); /* set 1ms signal on rising edge of vcount & 8 */ if (!(vcount_old & 8) && (vcount & 8)) - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); /* adjust for next scanline */ if (++scanline >= screen_height) @@ -221,7 +221,7 @@ static WRITE8_HANDLER( ddragon_bankswitch_w ) if (data & 0x10) dd_sub_cpu_busy = 0; else if (dd_sub_cpu_busy == 0) - cpunum_set_input_line(machine, 1, sprite_irq, (sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); + cpu_set_input_line(machine->cpu[1], sprite_irq, (sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); memory_set_bank(1, (data & 0xe0) >> 5); } @@ -296,7 +296,7 @@ static WRITE8_HANDLER( darktowr_bankswitch_w ) if (data & 0x10) dd_sub_cpu_busy = 0; else if (dd_sub_cpu_busy == 0) - cpunum_set_input_line(machine, 1, sprite_irq, (sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); + cpu_set_input_line(machine->cpu[1], sprite_irq, (sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); memory_set_bank(1, newbank); if (newbank == 4 && oldbank != 4) @@ -318,20 +318,20 @@ static WRITE8_HANDLER( ddragon_interrupt_w ) switch (offset) { case 0: /* 380b - NMI ack */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); break; case 1: /* 380c - FIRQ ack */ - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); break; case 2: /* 380d - IRQ ack */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, CLEAR_LINE); break; case 3: /* 380e - SND irq */ soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, snd_cpu, sound_irq, (sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); + cpu_set_input_line(machine->cpu[snd_cpu], sound_irq, (sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE); break; case 4: /* 380f - ? */ @@ -343,19 +343,19 @@ static WRITE8_HANDLER( ddragon_interrupt_w ) static WRITE8_HANDLER( ddragon2_sub_irq_ack_w ) { - cpunum_set_input_line(machine, 1, sprite_irq, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], sprite_irq, CLEAR_LINE ); } static WRITE8_HANDLER( ddragon2_sub_irq_w ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, ASSERT_LINE); } static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, snd_cpu, ym_irq , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[snd_cpu], ym_irq , irq ? ASSERT_LINE : CLEAR_LINE ); } @@ -396,8 +396,8 @@ static WRITE8_HANDLER( ddragon_hd63701_internal_registers_w ) it's quite obvious from the Double Dragon 2 code, below). */ if (data & 3) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, ASSERT_LINE); - cpunum_set_input_line(machine, 1, sprite_irq, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], sprite_irq, CLEAR_LINE); } } } @@ -573,8 +573,8 @@ ADDRESS_MAP_END /* might not be 100% accurate, check bits written */ static WRITE8_HANDLER( ddragnba_port_w ) { - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,ASSERT_LINE); - cpunum_set_input_line(machine, 1,sprite_irq, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],sprite_irq, CLEAR_LINE ); } static ADDRESS_MAP_START( ddragnba_sub_portmap, ADDRESS_SPACE_IO, 8 ) diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index 4b085a071bf..a270ee1648e 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -69,7 +69,7 @@ static WRITE16_HANDLER( ddragon3_io16_w ) case 1: /* soundlatch_w */ soundlatch_w(machine,1,reg[1]&0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); break; case 2: @@ -453,7 +453,7 @@ GFXDECODE_END static void dd3_ymirq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0 , irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = @@ -468,11 +468,11 @@ static const ym2151_interface ym2151_config = *************************************/ static INTERRUPT_GEN( ddragon3_cpu_interrupt ) { /* 6:0x177e - 5:0x176a */ - if( cpu_getiloops() == 0 ){ - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); /* VBlank */ + if( cpu_getiloops(device) == 0 ){ + cpu_set_input_line(device, 6, HOLD_LINE); /* VBlank */ } else { - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); /* Input Ports */ + cpu_set_input_line(device, 5, HOLD_LINE); /* Input Ports */ } } diff --git a/src/mame/drivers/ddrible.c b/src/mame/drivers/ddrible.c index 4855bcc2701..89f09330e50 100644 --- a/src/mame/drivers/ddrible.c +++ b/src/mame/drivers/ddrible.c @@ -41,13 +41,13 @@ WRITE8_HANDLER( K005885_1_w ); static INTERRUPT_GEN( ddrible_interrupt_0 ) { if (ddrible_int_enable_0) - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE); } static INTERRUPT_GEN( ddrible_interrupt_1 ) { if (ddrible_int_enable_1) - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE); } diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c index 59c526c2893..f58741e6e9a 100644 --- a/src/mame/drivers/deadang.c +++ b/src/mame/drivers/deadang.c @@ -216,10 +216,10 @@ GFXDECODE_END static INTERRUPT_GEN( deadang_interrupt ) { - if (cpu_getiloops()) - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc8/4); /* VBL */ + if (cpu_getiloops(device)) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); /* VBL */ else - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc4/4); /* VBL */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc4/4); /* VBL */ } /* Machine Drivers */ diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c index 81f081692a2..cc7a99f0eeb 100644 --- a/src/mame/drivers/dec0.c +++ b/src/mame/drivers/dec0.c @@ -71,7 +71,7 @@ static WRITE16_HANDLER( dec0_control_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } break; @@ -107,7 +107,7 @@ static WRITE16_HANDLER( slyspy_control_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } break; case 2: @@ -121,7 +121,7 @@ static WRITE16_HANDLER( midres_sound_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -824,12 +824,12 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); /* IRQ */ + cpu_set_input_line(machine->cpu[1],0,linestate); /* IRQ */ } static void sound_irq2(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,1,linestate); /* IRQ2 */ + cpu_set_input_line(machine->cpu[1],1,linestate); /* IRQ2 */ } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c index 584d4db297a..a71c01c99bd 100644 --- a/src/mame/drivers/dec8.c +++ b/src/mame/drivers/dec8.c @@ -197,7 +197,7 @@ static WRITE8_HANDLER( gondo_i8751_w ) switch (offset) { case 0: /* High byte */ i8751_value=(i8751_value&0xff) | (data<<8); - if (int_enable) cpunum_set_input_line (machine, 0, M6809_IRQ_LINE, HOLD_LINE); /* IRQ on *high* byte only */ + if (int_enable) cpu_set_input_line (machine->cpu[0], M6809_IRQ_LINE, HOLD_LINE); /* IRQ on *high* byte only */ break; case 1: /* Low byte */ i8751_value=(i8751_value&0xff00) | data; @@ -230,7 +230,7 @@ static WRITE8_HANDLER( shackled_i8751_w ) switch (offset) { case 0: /* High byte */ i8751_value=(i8751_value&0xff) | (data<<8); - cpunum_set_input_line (machine, 1, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */ + cpu_set_input_line (machine->cpu[1], M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */ break; case 1: /* Low byte */ i8751_value=(i8751_value&0xff00) | data; @@ -258,7 +258,7 @@ static WRITE8_HANDLER( lastmiss_i8751_w ) switch (offset) { case 0: /* High byte */ i8751_value=(i8751_value&0xff) | (data<<8); - cpunum_set_input_line (machine, 0, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */ + cpu_set_input_line (machine->cpu[0], M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */ break; case 1: /* Low byte */ i8751_value=(i8751_value&0xff00) | data; @@ -289,7 +289,7 @@ static WRITE8_HANDLER( csilver_i8751_w ) switch (offset) { case 0: /* High byte */ i8751_value=(i8751_value&0xff) | (data<<8); - cpunum_set_input_line (machine, 0, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */ + cpu_set_input_line (machine->cpu[0], M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */ break; case 1: /* Low byte */ i8751_value=(i8751_value&0xff00) | data; @@ -386,13 +386,13 @@ static WRITE8_HANDLER( csilver_control_w ) static WRITE8_HANDLER( dec8_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static WRITE8_HANDLER( oscar_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); } static void csilver_adpcm_int(running_machine *machine, int data) @@ -401,7 +401,7 @@ static void csilver_adpcm_int(running_machine *machine, int data) toggle ^= 1; if (toggle) - cpunum_set_input_line(machine, 2,M6502_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[2],M6502_IRQ_LINE,HOLD_LINE); msm5205_data_w (0,msm5205next>>4); msm5205next<<=4; @@ -433,16 +433,16 @@ static WRITE8_HANDLER( oscar_int_w ) /* Deal with interrupts, coins also generate NMI to CPU 0 */ switch (offset) { case 0: /* IRQ2 */ - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,ASSERT_LINE); return; case 1: /* IRC 1 */ - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,CLEAR_LINE); return; case 2: /* IRQ 1 */ - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,ASSERT_LINE); return; case 3: /* IRC 2 */ - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,CLEAR_LINE); return; } } @@ -456,18 +456,18 @@ static WRITE8_HANDLER( shackled_int_w ) (The last interrupt has not finished and been ack'd when the new one occurs */ switch (offset) { case 0: /* CPU 2 - IRQ acknowledge */ - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,CLEAR_LINE); return; case 1: /* CPU 1 - IRQ acknowledge */ - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,CLEAR_LINE); return; case 2: /* i8751 - FIRQ acknowledge */ return; case 3: /* IRQ 1 */ - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,ASSERT_LINE); return; case 4: /* IRQ 2 */ - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,ASSERT_LINE); return; } #endif @@ -480,10 +480,10 @@ static WRITE8_HANDLER( shackled_int_w ) case 2: /* i8751 - FIRQ acknowledge */ return; case 3: /* IRQ 1 */ - cpunum_set_input_line (machine, 0, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line (machine->cpu[0], M6809_IRQ_LINE, HOLD_LINE); return; case 4: /* IRQ 2 */ - cpunum_set_input_line (machine, 1, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line (machine->cpu[1], M6809_IRQ_LINE, HOLD_LINE); return; } } @@ -1971,12 +1971,12 @@ GFXDECODE_END /* handler called by the 3812 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); /* M6502_IRQ_LINE */ + cpu_set_input_line(machine->cpu[1],0,linestate); /* M6502_IRQ_LINE */ } static void oscar_irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 2,0,linestate); /* M6502_IRQ_LINE */ + cpu_set_input_line(machine->cpu[2],0,linestate); /* M6502_IRQ_LINE */ } static const ym3526_interface ym3526_config = @@ -2005,7 +2005,7 @@ static const msm5205_interface msm5205_config = static INTERRUPT_GEN( ghostb_interrupt ) { static int latch[4]; - int i8751_out=input_port_read(machine, "I8751"); + int i8751_out=input_port_read(device->machine, "I8751"); /* Ghostbusters coins are controlled by the i8751 */ if ((i8751_out & 0x8) == 0x8) latch[0]=1; @@ -2013,18 +2013,18 @@ static INTERRUPT_GEN( ghostb_interrupt ) if ((i8751_out & 0x2) == 0x2) latch[2]=1; if ((i8751_out & 0x1) == 0x1) latch[3]=1; - if (((i8751_out & 0x8) != 0x8) && latch[0]) {latch[0]=0; cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x8001; } /* Player 1 coin */ - if (((i8751_out & 0x4) != 0x4) && latch[1]) {latch[1]=0; cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x4001; } /* Player 2 coin */ - if (((i8751_out & 0x2) != 0x2) && latch[2]) {latch[2]=0; cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x2001; } /* Player 3 coin */ - if (((i8751_out & 0x1) != 0x1) && latch[3]) {latch[3]=0; cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x1001; } /* Service */ + if (((i8751_out & 0x8) != 0x8) && latch[0]) {latch[0]=0; cpu_set_input_line(device,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x8001; } /* Player 1 coin */ + if (((i8751_out & 0x4) != 0x4) && latch[1]) {latch[1]=0; cpu_set_input_line(device,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x4001; } /* Player 2 coin */ + if (((i8751_out & 0x2) != 0x2) && latch[2]) {latch[2]=0; cpu_set_input_line(device,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x2001; } /* Player 3 coin */ + if (((i8751_out & 0x1) != 0x1) && latch[3]) {latch[3]=0; cpu_set_input_line(device,M6809_IRQ_LINE,HOLD_LINE); i8751_return=0x1001; } /* Service */ - if (nmi_enable) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); /* VBL */ + if (nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); /* VBL */ } static INTERRUPT_GEN( gondo_interrupt ) { if (nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); /* VBL */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); /* VBL */ } /* Coins generate NMI's */ @@ -2032,10 +2032,10 @@ static INTERRUPT_GEN( oscar_interrupt ) { static int latch=1; - if ((input_port_read(machine, "IN2") & 0x7) == 0x7) latch=1; - if (latch && (input_port_read(machine, "IN2") & 0x7) != 0x7) { + if ((input_port_read(device->machine, "IN2") & 0x7) == 0x7) latch=1; + if (latch && (input_port_read(device->machine, "IN2") & 0x7) != 0x7) { latch=0; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c index 3b23f1df2b1..18f3b32362b 100644 --- a/src/mame/drivers/deco156.c +++ b/src/mame/drivers/deco156.c @@ -402,7 +402,7 @@ static const ymz280b_interface ymz280b_intf = static INTERRUPT_GEN( deco32_vbl_interrupt ) { - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE); } static MACHINE_DRIVER_START( hvysmsh ) diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index 41cb1a10e52..c7a98e7349f 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -252,7 +252,7 @@ static TIMER_CALLBACK( interrupt_gen ) deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[3]&0xffff; deco32_raster_display_list[deco32_raster_display_position++]=deco32_pf12_control[4]&0xffff; - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], ARM_IRQ_LINE, HOLD_LINE); } static READ32_HANDLER( deco32_irq_controller_r ) @@ -261,7 +261,7 @@ static READ32_HANDLER( deco32_irq_controller_r ) switch (offset) { case 2: /* Raster IRQ ACK - value read is not used */ - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], ARM_IRQ_LINE, CLEAR_LINE); return 0; case 3: /* Irq controller @@ -282,7 +282,7 @@ static READ32_HANDLER( deco32_irq_controller_r ) if (vblank) return 0xffffff80 | 0x1 | 0x10; /* Assume VBL takes priority over possible raster/lightgun irq */ - return 0xffffff80 | vblank | (cpu_getiloops() ? 0x40 : 0x20); + return 0xffffff80 | vblank | (cpu_getiloops(machine->activecpu) ? 0x40 : 0x20); // return 0xffffff80 | vblank | (0x40); //test for lock load guns } @@ -315,7 +315,7 @@ static WRITE32_HANDLER( deco32_irq_controller_w ) static WRITE32_HANDLER( deco32_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } static READ32_HANDLER( deco32_71_r ) @@ -605,9 +605,9 @@ static WRITE32_HANDLER( tattass_control_w ) /* Sound board reset control */ if (data&0x80) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* bit 0x4 fade cancel? */ /* bit 0x8 ?? */ @@ -654,7 +654,7 @@ static WRITE32_HANDLER( nslasher_prot_w ) /* bit 1 of nslasher_sound_irq specifies IRQ command writes */ soundlatch_w(machine,0,(data>>16)&0xff); nslasher_sound_irq |= 0x02; - cpunum_set_input_line(machine, 1, 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); } } @@ -1132,7 +1132,7 @@ static WRITE8_HANDLER(deco32_bsmt0_w) static WRITE8_HANDLER(deco32_bsmt1_w) { bsmt2000_data_0_w(machine, offset^ 0xff, ((bsmt_latch<<8)|data), 0xffff); - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE); /* BSMT is ready */ + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, HOLD_LINE); /* BSMT is ready */ } static READ8_HANDLER(deco32_bsmt_status_r) @@ -1178,7 +1178,7 @@ static READ8_HANDLER(latch_r) { /* bit 1 of nslasher_sound_irq specifies IRQ command writes */ nslasher_sound_irq &= ~0x02; - cpunum_set_input_line(machine, 1, 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); return soundlatch_r(machine,0); } @@ -1777,7 +1777,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static void sound_irq_nslasher(running_machine *machine, int state) @@ -1787,7 +1787,7 @@ static void sound_irq_nslasher(running_machine *machine, int state) nslasher_sound_irq |= 0x01; else nslasher_sound_irq &= ~0x01; - cpunum_set_input_line(machine, 1, 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (nslasher_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE); } static WRITE8_HANDLER( sound_bankswitch_w ) @@ -1861,12 +1861,12 @@ static MACHINE_RESET( deco32 ) static INTERRUPT_GEN( deco32_vbl_interrupt ) { - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE); } static INTERRUPT_GEN( tattass_snd_interrupt ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE); } static MACHINE_DRIVER_START( captaven ) diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index 0b74c10d4d9..17c688f3f34 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -200,7 +200,7 @@ static READ32_HANDLER( mlc_scanline_r ) static TIMER_CALLBACK( interrupt_gen ) { // logerror("hit scanline IRQ %d (%08x)\n", video_screen_get_vpos(machine->primary_screen), info.i); - cpunum_set_input_line(machine, 0, mainCpuIsArm ? ARM_IRQ_LINE : 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], mainCpuIsArm ? ARM_IRQ_LINE : 1, HOLD_LINE); } static WRITE32_HANDLER( mlc_irq_w ) @@ -212,7 +212,7 @@ static WRITE32_HANDLER( mlc_irq_w ) switch (offset*4) { case 0x10: /* IRQ ack. Value written doesn't matter */ - cpunum_set_input_line(machine, 0, mainCpuIsArm ? ARM_IRQ_LINE : 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], mainCpuIsArm ? ARM_IRQ_LINE : 1, CLEAR_LINE); return; break; case 0x14: /* Prepare scanline interrupt */ @@ -715,7 +715,7 @@ static READ32_HANDLER( avengrgs_speedup_r ) UINT32 a=mlc_ram[0x89a0/4]; UINT32 p=cpu_get_pc(machine->activecpu); - if ((p==0x3234 || p==0x32dc) && (a&1)) cpu_spinuntil_int(); + if ((p==0x3234 || p==0x32dc) && (a&1)) cpu_spinuntil_int(machine->activecpu); return a; } @@ -741,7 +741,7 @@ static DRIVER_INIT( mlc ) /* The timing in the ARM core isn't as accurate as it should be, so bump up the effective clock rate here to compensate otherwise we have slowdowns in Skull Fung where there probably shouldn't be. */ - cpunum_set_clockscale(machine, 0, 2.0f); + cpu_set_clockscale(machine->cpu[0], 2.0f); mainCpuIsArm=1; deco156_decrypt(machine); descramble_sound(machine); diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c index 67ee3601e18..c52854bbc76 100644 --- a/src/mame/drivers/deniam.c +++ b/src/mame/drivers/deniam.c @@ -56,7 +56,7 @@ static WRITE16_HANDLER( sound_command_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine,offset,(data >> 8) & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -263,7 +263,7 @@ static void irqhandler(running_machine *machine, int linestate) { /* system 16c doesn't have the sound CPU */ if (machine->config->cpu[1].type != CPU_DUMMY) - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c index 37d1e6f3a4d..a9375428832 100644 --- a/src/mame/drivers/destroyr.c +++ b/src/mame/drivers/destroyr.c @@ -38,7 +38,7 @@ static TIMER_CALLBACK( destroyr_dial_callback ) if (destroyr_potmask[dial]) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } } @@ -87,7 +87,7 @@ static WRITE8_HANDLER( destroyr_cursor_load_w ) static WRITE8_HANDLER( destroyr_interrupt_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c index 2adf65dd0f4..e823cf0764a 100644 --- a/src/mame/drivers/dgpix.c +++ b/src/mame/drivers/dgpix.c @@ -179,7 +179,7 @@ static WRITE32_HANDLER( coin_w ) static READ32_HANDLER( vblank_r ) { /* burn a bunch of cycles because this is polled frequently during busy loops */ - activecpu_adjust_icount(-100); + cpu_adjust_icount(machine->activecpu, -100); return input_port_read(machine, "VBLANK"); } diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c index 4fe57e64810..e8c33a60d72 100644 --- a/src/mame/drivers/dietgo.c +++ b/src/mame/drivers/dietgo.c @@ -184,7 +184,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c index 598749fbc5c..fdb09fc053f 100644 --- a/src/mame/drivers/discoboy.c +++ b/src/mame/drivers/discoboy.c @@ -203,9 +203,9 @@ static WRITE8_HANDLER( discoboy_port_01_w ) static WRITE8_HANDLER( discoboy_port_03_w ) // sfx? (to sound cpu) { // printf("unk discoboy_port_03_w %02x\n",data); -// cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,HOLD_LINE); +// cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,HOLD_LINE); soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } static WRITE8_HANDLER( discoboy_port_06_w ) diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c index e6b109354e0..b8df1de229a 100644 --- a/src/mame/drivers/diverboy.c +++ b/src/mame/drivers/diverboy.c @@ -61,7 +61,7 @@ static WRITE16_HANDLER( soundcmd_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c index 83c346f12cd..8ee95eba01c 100644 --- a/src/mame/drivers/djboy.c +++ b/src/mame/drivers/djboy.c @@ -657,7 +657,7 @@ static DRIVER_INIT( djboyj ) static WRITE8_HANDLER( trigger_nmi_on_cpu0 ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( cpu0_bankswitch_w ) @@ -716,7 +716,7 @@ static WRITE8_HANDLER( cpu1_bankswitch_w ) static WRITE8_HANDLER( trigger_nmi_on_sound_cpu2 ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } /* trigger_nmi_on_sound_cpu2 */ static WRITE8_HANDLER( cpu2_bankswitch_w ) @@ -822,7 +822,7 @@ static INTERRUPT_GEN( djboy_interrupt ) { /* CPU1 uses interrupt mode 2. For now, just alternate the two interrupts. */ static int addr = 0xff; addr ^= 0x02; - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, addr); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, addr); } static MACHINE_DRIVER_START( djboy ) diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c index 26b7c4644b3..80b0e758499 100644 --- a/src/mame/drivers/djmain.c +++ b/src/mame/drivers/djmain.c @@ -258,7 +258,7 @@ static WRITE32_HANDLER( v_ctrl_w ) if (pending_vb_int && !DISABLE_VB_INT) { pending_vb_int = 0; - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], MC68000_IRQ_4, HOLD_LINE); } } } @@ -449,7 +449,7 @@ static INTERRUPT_GEN( vb_interrupt ) } //logerror("V-Blank interrupt\n"); - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_4, HOLD_LINE); } @@ -458,12 +458,12 @@ static void ide_interrupt(const device_config *device, int state) if (state != CLEAR_LINE) { //logerror("IDE interrupt asserted\n"); - cpunum_set_input_line(device->machine, 0, MC68000_IRQ_1, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[0], MC68000_IRQ_1, HOLD_LINE); } else { //logerror("IDE interrupt cleared\n"); - cpunum_set_input_line(device->machine, 0, MC68000_IRQ_1, CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], MC68000_IRQ_1, CLEAR_LINE); } } diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c index a0952bed388..3999cc79cd3 100644 --- a/src/mame/drivers/dkong.c +++ b/src/mame/drivers/dkong.c @@ -380,7 +380,7 @@ static const dma8257_interface hb_dma = static INTERRUPT_GEN( s2650_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x03); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03); } /************************************* @@ -711,13 +711,13 @@ static WRITE8_HANDLER( dkong3_2a03_reset_w ) { if (data & 1) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); } else { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } } diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c index c430dcf32ca..666e1837b6f 100644 --- a/src/mame/drivers/dlair.c +++ b/src/mame/drivers/dlair.c @@ -84,7 +84,7 @@ static const UINT8 led_map[16] = static void dleuro_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 0, 0, state); + cpu_set_input_line(device->machine->cpu[0], 0, state); } @@ -215,7 +215,7 @@ static INTERRUPT_GEN( vblank_callback ) /* also update the speaker on the European version */ if (sndti_exists(SOUND_BEEP, 0)) { - const device_config *ctc = devtag_get_device(machine, Z80CTC, "ctc"); + const device_config *ctc = devtag_get_device(device->machine, Z80CTC, "ctc"); beep_set_state(0, 1); beep_set_frequency(0, ATTOSECONDS_TO_HZ(z80ctc_getperiod(ctc, 0).attoseconds)); } diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c index b98e154fe4b..d0d767fe631 100644 --- a/src/mame/drivers/dmndrby.c +++ b/src/mame/drivers/dmndrby.c @@ -167,10 +167,10 @@ static VIDEO_UPDATE(dderby) static INTERRUPT_GEN( dderby_interrupt ) { -// cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x8); // almost certainly wrong? -// cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x10); // almost certainly wrong? -// cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x18); // almost certainly wrong? -// cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x20); // almost certainly wrong? +// cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x8); // almost certainly wrong? +// cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x10); // almost certainly wrong? +// cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x18); // almost certainly wrong? +// cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x20); // almost certainly wrong? } static MACHINE_DRIVER_START( dderby ) diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c index 8867aeea524..52eab3425db 100644 --- a/src/mame/drivers/dogfgt.c +++ b/src/mame/drivers/dogfgt.c @@ -31,12 +31,12 @@ static WRITE8_HANDLER( subirqtrigger_w ) /* bit 0 used but unknown */ if (data & 0x04) - cpunum_set_input_line(machine, 1,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],0,ASSERT_LINE); } static WRITE8_HANDLER( sub_irqack_w ) { - cpunum_set_input_line(machine, 1,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); } diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c index 29c25bbedfe..ff8760e9e75 100644 --- a/src/mame/drivers/dooyong.c +++ b/src/mame/drivers/dooyong.c @@ -812,7 +812,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static READ8_HANDLER( unk_r ) @@ -1088,10 +1088,10 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( rshark_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 5, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } static MACHINE_DRIVER_START( rshark ) diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c index 7641fe9dd70..4cff237a5a1 100644 --- a/src/mame/drivers/drgnmst.c +++ b/src/mame/drivers/drgnmst.c @@ -67,7 +67,7 @@ static WRITE16_HANDLER( drgnmst_snd_command_w ) { if (ACCESSING_BITS_0_7) { drgnmst_snd_command = (data & 0xff); - cpu_yield(); + cpu_yield(machine->activecpu); } } diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c index 95ade88e20b..a4337620994 100644 --- a/src/mame/drivers/dribling.c +++ b/src/mame/drivers/dribling.c @@ -55,7 +55,7 @@ static UINT8 di; static INTERRUPT_GEN( dribling_irq_gen ) { if (di) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } @@ -98,7 +98,7 @@ static WRITE8_DEVICE_HANDLER( misc_w ) /* bit 7 = di */ di = (data >> 7) & 1; if (!di) - cpunum_set_input_line(device->machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, CLEAR_LINE); /* bit 6 = parata */ diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c index c53a39527dd..9f7263268a8 100644 --- a/src/mame/drivers/drmicro.c +++ b/src/mame/drivers/drmicro.c @@ -32,7 +32,7 @@ static int drmicro_nmi_enable; static INTERRUPT_GEN( drmicro_interrupt ) { if (drmicro_nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( nmi_enable_w ) diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c index 803695421db..f8b2f7719fb 100644 --- a/src/mame/drivers/dwarfd.c +++ b/src/mame/drivers/dwarfd.c @@ -542,18 +542,18 @@ static void dwarfd_sod_callback(int nSO) #define NUM_LINES 25 static INTERRUPT_GEN( dwarfd_interrupt ) { - if(cpu_getiloops() < NUM_LINES) + if(cpu_getiloops(device) < NUM_LINES) { - cpu_set_info_fct(machine->cpu[0], CPUINFO_PTR_I8085_SOD_CALLBACK, (void*)dwarfd_sod_callback); - cpunum_set_input_line(machine, 0,I8085_RST65_LINE,HOLD_LINE); // 34 - every 8th line - line=cpu_getiloops(); + cpu_set_info_fct(device, CPUINFO_PTR_I8085_SOD_CALLBACK, (void*)dwarfd_sod_callback); + cpu_set_input_line(device,I8085_RST65_LINE,HOLD_LINE); // 34 - every 8th line + line=cpu_getiloops(device); idx=0; } else { - if(cpu_getiloops() == NUM_LINES) + if(cpu_getiloops(device) == NUM_LINES) { - cpunum_set_input_line(machine, 0,I8085_RST55_LINE,HOLD_LINE);//2c - generated by crt - end of frame + cpu_set_input_line(device,I8085_RST55_LINE,HOLD_LINE);//2c - generated by crt - end of frame } } } diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c index 7b44b220bc9..851c1ad4ef4 100644 --- a/src/mame/drivers/dynax.c +++ b/src/mame/drivers/dynax.c @@ -104,7 +104,7 @@ void sprtmtch_update_irq(running_machine *machine) int irq = ((dynax_sound_irq) ? 0x08 : 0) | ((dynax_vblank_irq) ? 0x10 : 0) | ((dynax_blitter_irq) ? 0x20 : 0) ; - cpunum_set_input_line_and_vector(machine, 0, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */ + cpu_set_input_line_and_vector(machine->cpu[0], 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */ } static WRITE8_HANDLER( dynax_vblank_ack_w ) @@ -122,7 +122,7 @@ static WRITE8_HANDLER( dynax_blitter_ack_w ) static INTERRUPT_GEN( sprtmtch_vblank_interrupt ) { dynax_vblank_irq = 1; - sprtmtch_update_irq(machine); + sprtmtch_update_irq(device->machine); } static void sprtmtch_sound_callback(running_machine *machine, int state) @@ -144,7 +144,7 @@ void jantouki_update_irq(running_machine *machine) int irq = ((dynax_blitter_irq) ? 0x08 : 0) | ((dynax_blitter2_irq) ? 0x10 : 0) | ((dynax_vblank_irq) ? 0x20 : 0) ; - cpunum_set_input_line_and_vector(machine, 0, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */ + cpu_set_input_line_and_vector(machine->cpu[0], 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */ } static WRITE8_HANDLER( jantouki_vblank_ack_w ) @@ -168,7 +168,7 @@ static WRITE8_HANDLER( jantouki_blitter2_ack_w ) static INTERRUPT_GEN( jantouki_vblank_interrupt ) { dynax_vblank_irq = 1; - jantouki_update_irq(machine); + jantouki_update_irq(device->machine); } @@ -184,13 +184,13 @@ static void jantouki_sound_update_irq(running_machine *machine) int irq = ((dynax_sound_irq) ? 0x08 : 0) | ((dynax_soundlatch_irq) ? 0x10 : 0) | ((dynax_sound_vblank_irq) ? 0x20 : 0) ; - cpunum_set_input_line_and_vector(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */ + cpu_set_input_line_and_vector(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */ } static INTERRUPT_GEN( jantouki_sound_vblank_interrupt ) { dynax_sound_vblank_irq = 1; - jantouki_sound_update_irq(machine); + jantouki_sound_update_irq(device->machine); } static WRITE8_HANDLER( jantouki_sound_vblank_ack_w ) @@ -407,7 +407,7 @@ static void adpcm_int(running_machine *machine, int data) if (toggle) { if (resetkludge) // don't know what's wrong, but NMIs when the 5205 is reset make the game crash - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } } static void adpcm_int_cpu1(running_machine *machine, int data) @@ -421,7 +421,7 @@ static void adpcm_int_cpu1(running_machine *machine, int data) if (toggle) { if (resetkludge) // don't know what's wrong, but NMIs when the 5205 is reset make the game crash - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); // cpu1 + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); // cpu1 } } @@ -3845,7 +3845,7 @@ static INTERRUPT_GEN( yarunara_clock_interrupt ) dynax_sound_irq = 1; } - sprtmtch_update_irq(machine); + sprtmtch_update_irq(device->machine); } static MACHINE_DRIVER_START( yarunara ) @@ -3989,7 +3989,7 @@ MACHINE_DRIVER_END void mjelctrn_update_irq(running_machine *machine) { dynax_blitter_irq = 1; - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xfa); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, 0xfa); } static INTERRUPT_GEN( mjelctrn_vblank_interrupt ) @@ -3997,7 +3997,7 @@ static INTERRUPT_GEN( mjelctrn_vblank_interrupt ) // This is a kludge to avoid losing blitter interrupts // there should be a vblank ack mechanism if (!dynax_blitter_irq) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xf8); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xf8); } static MACHINE_DRIVER_START( mjelctrn ) @@ -4023,7 +4023,7 @@ MACHINE_DRIVER_END void neruton_update_irq(running_machine *machine) { dynax_blitter_irq = 1; - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x42); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, 0x42); } static INTERRUPT_GEN( neruton_vblank_interrupt ) @@ -4032,10 +4032,10 @@ static INTERRUPT_GEN( neruton_vblank_interrupt ) // there should be a vblank ack mechanism if (dynax_blitter_irq) return; - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { - case 0: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x40); break; - default: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x46); + case 0: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x40); break; + default: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x46); } } @@ -4061,7 +4061,7 @@ static INTERRUPT_GEN( majxtal7_vblank_interrupt ) // there should be a vblank ack mechanism if (dynax_blitter_irq) return; - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x40); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x40); } static MACHINE_DRIVER_START( majxtal7 ) @@ -4132,11 +4132,11 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( tenkai_interrupt ) { - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, HOLD_LINE); break; - case 2: cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ2, HOLD_LINE); break; + case 0: cpu_set_input_line(device, INPUT_LINE_IRQ0, HOLD_LINE); break; + case 1: cpu_set_input_line(device, INPUT_LINE_IRQ1, HOLD_LINE); break; + case 2: cpu_set_input_line(device, INPUT_LINE_IRQ2, HOLD_LINE); break; } } diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c index 847255425c5..143a4654946 100644 --- a/src/mame/drivers/dynduke.c +++ b/src/mame/drivers/dynduke.c @@ -275,7 +275,7 @@ GFXDECODE_END static INTERRUPT_GEN( dynduke_interrupt ) { - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc8/4); // VBL + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); // VBL } /* Machine Driver */ diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c index 7145fb98aa1..86716f82373 100644 --- a/src/mame/drivers/egghunt.c +++ b/src/mame/drivers/egghunt.c @@ -173,7 +173,7 @@ static WRITE8_HANDLER( egghunt_vidram_bank_w ) static WRITE8_HANDLER( egghunt_soundlatch_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } static READ8_HANDLER( egghunt_okibanking_r ) diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c index 026b80fa9f6..eb59072ef5c 100644 --- a/src/mame/drivers/enigma2.c +++ b/src/mame/drivers/enigma2.c @@ -86,7 +86,7 @@ INLINE int vysnc_chain_counter_to_vpos(UINT16 counter) static TIMER_CALLBACK( interrupt_clear_callback ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -99,7 +99,7 @@ static TIMER_CALLBACK( interrupt_assert_callback ) int vpos = video_screen_get_vpos(machine->primary_screen); UINT16 counter = vpos_to_vysnc_chain_counter(vpos); UINT8 vector = 0xc7 | ((counter & 0x80) >> 3) | ((~counter & 0x80) >> 4); - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, ASSERT_LINE, vector); /* set up for next interrupt */ if (counter == INT_TRIGGER_COUNT_1) @@ -137,7 +137,7 @@ static MACHINE_START( enigma2 ) static MACHINE_RESET( enigma2 ) { last_sound_data = 0; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); engima2_flip_screen = 0; @@ -349,7 +349,7 @@ static WRITE8_HANDLER( sound_data_w ) if (!(data & 0x04) && (last_sound_data & 0x04)) sound_latch = (sound_latch << 1) | (~data & 0x01); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE); last_sound_data = data; } diff --git a/src/mame/drivers/eolithsp.c b/src/mame/drivers/eolithsp.c index bedc0b2a94b..2d78629d3a2 100644 --- a/src/mame/drivers/eolithsp.c +++ b/src/mame/drivers/eolithsp.c @@ -25,7 +25,7 @@ void eolith_speedup_read(running_machine *machine) if (cpu_get_pc(machine->activecpu)==eolith_speedup_address && eolith_vblank==0 && eolith_scanline < eolith_speedup_resume_scanline) { - cpu_spinuntil_trigger(1000); + cpu_spinuntil_trigger(machine->activecpu, 1000); } } @@ -78,7 +78,7 @@ void init_eolith_speedup(running_machine *machine) /* todo, use timers instead! */ INTERRUPT_GEN( eolith_speedup ) { - eolith_scanline = 261 - cpu_getiloops(); + eolith_scanline = 261 - cpu_getiloops(device); if (eolith_scanline==0) { @@ -87,7 +87,7 @@ INTERRUPT_GEN( eolith_speedup ) if (eolith_scanline==eolith_speedup_resume_scanline) { - cpu_trigger(machine, 1000); + cpuexec_trigger(device->machine, 1000); } if (eolith_scanline==240) diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c index 53fe3e750f5..92af0bc858c 100644 --- a/src/mame/drivers/eprom.c +++ b/src/mame/drivers/eprom.c @@ -44,9 +44,9 @@ static UINT16 *sync_data; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -110,9 +110,9 @@ static WRITE16_HANDLER( eprom_latch_w ) if (ACCESSING_BITS_0_7) { if (data & 1) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } } @@ -138,7 +138,7 @@ static WRITE16_HANDLER( sync_w ) sync_data[offset] = newword; if ((oldword & 0xff00) != (newword & 0xff00)) - cpu_yield(); + cpu_yield(machine->activecpu); } diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c index dc7b9da48dd..200ce434530 100644 --- a/src/mame/drivers/equites.c +++ b/src/mame/drivers/equites.c @@ -408,7 +408,7 @@ static emu_timer *nmi_timer, *adjuster_timer; static TIMER_CALLBACK( equites_nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } @@ -440,17 +440,17 @@ static WRITE8_HANDLER(equites_c0f8_w) switch (offset) { case 0: // c0f8: NMI ack (written by NMI handler) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); break; case 1: // c0f9: RST75 trigger (written by NMI handler) // Note: solder pad CP3 on the pcb would allow to disable this - cpunum_set_input_line(machine, 1, I8085_RST75_LINE, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], I8085_RST75_LINE, PULSE_LINE); break; case 2: // c0fa: INTR trigger (written by NMI handler) // verified on PCB: - cpunum_set_input_line(machine, 1, I8085_INTR_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], I8085_INTR_LINE, HOLD_LINE); break; case 3: // c0fb: n.c. @@ -588,10 +588,10 @@ static void equites_msm5232_gate(int state) // Equites Hardware static INTERRUPT_GEN( equites_interrupt ) { - if (cpu_getiloops()) - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (cpu_getiloops(device)) + cpu_set_input_line(device, 2, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } static WRITE8_HANDLER(equites_8155_w) @@ -694,12 +694,12 @@ static WRITE16_HANDLER(mcu_w) static WRITE16_HANDLER( mcu_halt_assert_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); } static WRITE16_HANDLER( mcu_halt_clear_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); } diff --git a/src/mame/drivers/ertictac.c b/src/mame/drivers/ertictac.c index 53852a5155a..442afeed5c5 100644 --- a/src/mame/drivers/ertictac.c +++ b/src/mame/drivers/ertictac.c @@ -133,7 +133,7 @@ static TIMER_CALLBACK( ertictacTimer ) IRQSTA|=0x40; if(IRQMSKA&0x40) { - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], ARM_IRQ_LINE, HOLD_LINE); } startTimer(); } @@ -334,7 +334,7 @@ static INTERRUPT_GEN( ertictac_interrupt ) IRQSTA|=0x08; if(IRQMSKA&0x08) { - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE); } } diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c index 507906a9589..1d1d534efb0 100644 --- a/src/mame/drivers/esd16.c +++ b/src/mame/drivers/esd16.c @@ -82,8 +82,8 @@ static WRITE16_HANDLER( esd16_sound_command_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,ASSERT_LINE); // Generate an IRQ - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); // Allow the other CPU to reply + cpu_set_input_line(machine->cpu[1],0,ASSERT_LINE); // Generate an IRQ + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); // Allow the other CPU to reply } } @@ -298,7 +298,7 @@ ADDRESS_MAP_END static READ8_HANDLER( esd16_sound_command_r ) { /* Clear IRQ only after reading the command, or some get lost */ - cpunum_set_input_line(machine, 1,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); return soundlatch_r(machine,0); } diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c index 0ba13badcf3..5d32fd1b06f 100644 --- a/src/mame/drivers/esh.c +++ b/src/mame/drivers/esh.c @@ -129,9 +129,9 @@ static WRITE8_HANDLER(led_writes) static WRITE8_HANDLER(nmi_line_w) { if (data == 0x00) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); if (data == 0x01) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); if (data != 0x00 && data != 0x01) logerror("NMI line got a weird value!\n"); @@ -259,13 +259,13 @@ GFXDECODE_END static TIMER_CALLBACK( irq_stop ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( vblank_callback_esh ) { // IRQ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL, 0, irq_stop); } diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c index ebc8d805357..ff32958c389 100644 --- a/src/mame/drivers/espial.c +++ b/src/mame/drivers/espial.c @@ -45,23 +45,23 @@ WRITE8_HANDLER( espial_sound_nmi_enable_w ) INTERRUPT_GEN( espial_sound_nmi_gen ) { if (sound_nmi_enabled) - nmi_line_pulse(machine, cpunum); + nmi_line_pulse(device); } INTERRUPT_GEN( zodiac_master_interrupt ) { - if (cpu_getiloops() == 0) - nmi_line_pulse(machine, cpunum); + if (cpu_getiloops(device) == 0) + nmi_line_pulse(device); else - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } WRITE8_HANDLER( zodiac_master_soundlatch_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c index 22279d5cc5b..78cde991d8d 100644 --- a/src/mame/drivers/ettrivia.c +++ b/src/mame/drivers/ettrivia.c @@ -230,10 +230,10 @@ static const ay8910_interface ay8912_interface_3 = static INTERRUPT_GEN( ettrivia_interrupt ) { - if( input_port_read(machine, "COIN") & 0x01 ) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if( input_port_read(device->machine, "COIN") & 0x01 ) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); else - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_DRIVER_START( ettrivia ) diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c index 76f0248b8a7..8ecfa20856f 100644 --- a/src/mame/drivers/exedexes.c +++ b/src/mame/drivers/exedexes.c @@ -33,10 +33,10 @@ extern VIDEO_EOF( exedexes ); static INTERRUPT_GEN( exedexes_interrupt ) { - if (cpu_getiloops() != 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + if (cpu_getiloops(device) != 0) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ } diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c index 1cb87c5fe73..e4937b00dbc 100644 --- a/src/mame/drivers/exerion.c +++ b/src/mame/drivers/exerion.c @@ -38,7 +38,7 @@ static READ8_HANDLER( exerion_port01_r ) static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/exidy440.c b/src/mame/drivers/exidy440.c index edd4532b6b3..8c3495cdf81 100644 --- a/src/mame/drivers/exidy440.c +++ b/src/mame/drivers/exidy440.c @@ -265,7 +265,7 @@ static INPUT_CHANGED( coin_inserted ) { /* if we got a coin, set the IRQ on the main CPU */ if (newval == 0) - cpunum_set_input_line(field->port->machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], 0, ASSERT_LINE); } @@ -343,7 +343,7 @@ static WRITE8_HANDLER( bankram_w ) static READ8_HANDLER( exidy440_input_port_3_r ) { /* I/O1 accesses clear the CIRQ flip/flop */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); return input_port_read(machine, "IN3"); } @@ -368,7 +368,7 @@ static TIMER_CALLBACK( delayed_sound_command_w ) exidy440_sound_command_ack = 0; /* cause an FIRQ on the sound CPU */ - cpunum_set_input_line(machine, 1, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 1, ASSERT_LINE); } @@ -381,7 +381,7 @@ static WRITE8_HANDLER( sound_command_w ) static WRITE8_HANDLER( exidy440_input_port_3_w ) { /* I/O1 accesses clear the CIRQ flip/flop */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c index cd10ea0294c..a48403e91ef 100644 --- a/src/mame/drivers/expro02.c +++ b/src/mame/drivers/expro02.c @@ -428,7 +428,7 @@ ADDRESS_MAP_END static INTERRUPT_GEN( galsnew_interrupt ) { - cpunum_set_input_line(machine, 0, cpu_getiloops() + 3, HOLD_LINE); /* IRQs 5, 4, and 3 */ + cpu_set_input_line(device, cpu_getiloops(device) + 3, HOLD_LINE); /* IRQs 5, 4, and 3 */ } static MACHINE_RESET( galsnew ) diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c index 7fa272c9adf..a2ccaeee436 100644 --- a/src/mame/drivers/exprraid.c +++ b/src/mame/drivers/exprraid.c @@ -247,7 +247,7 @@ static READ8_HANDLER( exprraid_protection_r ) static WRITE8_HANDLER( sound_cpu_command_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static READ8_HANDLER( vblank_r ) @@ -436,7 +436,7 @@ GFXDECODE_END /* handler called by the 3812 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line_and_vector(machine, 1,0,linestate,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,linestate,0xff); } static const ym3526_interface ym3526_config = @@ -448,12 +448,12 @@ static INTERRUPT_GEN( exprraid_interrupt ) { static int coin = 0; - if ((~input_port_read(machine, "IN2")) & 0xc0 ) + if ((~input_port_read(device->machine, "IN2")) & 0xc0 ) { if ( coin == 0 ) { coin = 1; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } else diff --git a/src/mame/drivers/exterm.c b/src/mame/drivers/exterm.c index 07f0aa269ab..811a44c9141 100644 --- a/src/mame/drivers/exterm.c +++ b/src/mame/drivers/exterm.c @@ -198,7 +198,7 @@ static WRITE16_HANDLER( exterm_output_port_0_w ) { /* Bit 13 = Resets the slave CPU */ if ((data & 0x2000) && !(last & 0x2000)) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); /* Bits 14-15 = Coin counters */ coin_counter_w(0, data & 0x8000); @@ -213,8 +213,8 @@ static TIMER_CALLBACK( sound_delayed_w ) { /* data is latched independently for both sound CPUs */ master_sound_latch = slave_sound_latch = param; - cpunum_set_input_line(machine, 2, M6502_IRQ_LINE, ASSERT_LINE); - cpunum_set_input_line(machine, 3, M6502_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], M6502_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], M6502_IRQ_LINE, ASSERT_LINE); } @@ -236,7 +236,7 @@ static TIMER_CALLBACK( master_sound_nmi_callback ) { /* bit 0 of the sound control determines if the NMI is actually delivered */ if (sound_control & 0x01) - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } @@ -263,7 +263,7 @@ static WRITE8_HANDLER( sound_nmi_rate_w ) static READ8_HANDLER( sound_master_latch_r ) { /* read latch and clear interrupt */ - cpunum_set_input_line(machine, 2, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], M6502_IRQ_LINE, CLEAR_LINE); return master_sound_latch; } @@ -271,7 +271,7 @@ static READ8_HANDLER( sound_master_latch_r ) static READ8_HANDLER( sound_slave_latch_r ) { /* read latch and clear interrupt */ - cpunum_set_input_line(machine, 3, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], M6502_IRQ_LINE, CLEAR_LINE); return slave_sound_latch; } @@ -287,7 +287,7 @@ static WRITE8_HANDLER( sound_slave_dac_w ) static READ8_HANDLER( sound_nmi_to_slave_r ) { /* a read from here triggers an NMI pulse to the slave */ - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, PULSE_LINE); return 0xff; } diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c index 895a2e51308..67589ea254c 100644 --- a/src/mame/drivers/exzisus.c +++ b/src/mame/drivers/exzisus.c @@ -131,7 +131,7 @@ static WRITE8_HANDLER( exzisus_sharedram_ac_w ) static WRITE8_HANDLER( exzisus_cpub_reset_w ) { - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, PULSE_LINE); } #if 0 @@ -312,7 +312,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c index a7a59b4463b..1c15eda968e 100644 --- a/src/mame/drivers/f-32.c +++ b/src/mame/drivers/f-32.c @@ -96,7 +96,7 @@ static READ32_HANDLER( f32_input_port_1_r ) { /* burn a bunch of cycles because this is polled frequently during busy loops */ if ((cpu_get_pc(machine->activecpu) == 0x000379de) || - (cpu_get_pc(machine->activecpu) == 0x000379cc) ) activecpu_adjust_icount(-100); + (cpu_get_pc(machine->activecpu) == 0x000379cc) ) cpu_adjust_icount(machine->activecpu, -100); //else printf("PC %08x\n", cpu_get_pc(machine->activecpu) ); return input_port_read(machine, "SYSTEM_P2"); } diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index 372d4d66753..730c6f5a6a4 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -72,7 +72,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } } @@ -458,7 +458,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index 2996a81f77f..e04611e2b9f 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -76,7 +76,7 @@ static WRITE16_HANDLER( fantland_nmi_enable_16_w ) static WRITE8_HANDLER( fantland_soundlatch_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE16_HANDLER( fantland_soundlatch_16_w ) @@ -798,12 +798,12 @@ static MACHINE_RESET( fantland ) static INTERRUPT_GEN( fantland_irq ) { if (fantland_nmi_enable & 8) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static INTERRUPT_GEN( fantland_sound_irq ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0x80/4); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x80/4); } static MACHINE_DRIVER_START( fantland ) @@ -849,7 +849,7 @@ MACHINE_DRIVER_END static void galaxygn_sound_irq(running_machine *machine, int line) { - cpunum_set_input_line_and_vector(machine, 1, 0, line ? ASSERT_LINE : CLEAR_LINE, 0x80/4); + cpu_set_input_line_and_vector(machine->cpu[1], 0, line ? ASSERT_LINE : CLEAR_LINE, 0x80/4); } static const ym2151_interface galaxygn_ym2151_interface = @@ -947,7 +947,7 @@ MACHINE_DRIVER_END static void wheelrun_ym3526_irqhandler(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ0, state); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ0, state); } static const ym3526_interface wheelrun_ym3526_interface = diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c index 15ff31f171c..5b6dcfbab11 100644 --- a/src/mame/drivers/fastfred.c +++ b/src/mame/drivers/fastfred.c @@ -119,7 +119,7 @@ static UINT8 imago_sprites_bank = 0; static WRITE8_HANDLER( imago_dma_irq_w ) { - cpunum_set_input_line(machine, 0, 0, data & 1 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, data & 1 ? ASSERT_LINE : CLEAR_LINE); } static WRITE8_HANDLER( imago_sprites_bank_w ) diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c index b5adebeb36f..af1c3164b02 100644 --- a/src/mame/drivers/fastlane.c +++ b/src/mame/drivers/fastlane.c @@ -26,15 +26,15 @@ VIDEO_UPDATE( fastlane ); static INTERRUPT_GEN( fastlane_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (K007121_ctrlram[0][0x07] & 0x02) - cpunum_set_input_line(machine, 0, HD6309_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { if (K007121_ctrlram[0][0x07] & 0x01) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c index b379b8bb55d..56a07135771 100644 --- a/src/mame/drivers/fcombat.c +++ b/src/mame/drivers/fcombat.c @@ -60,7 +60,7 @@ extern int fcombat_sv; static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c index 3deab7687b3..e7ea14afe02 100644 --- a/src/mame/drivers/fcrash.c +++ b/src/mame/drivers/fcrash.c @@ -47,7 +47,7 @@ static WRITE16_HANDLER( fcrash_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } } @@ -69,7 +69,7 @@ static void m5205_int1(running_machine *machine, int data) sample_buffer1 >>= 4; sample_select1 ^= 1; if (sample_select1 == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static void m5205_int2(running_machine *machine, int data) diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index 80c3e794355..54fc3e204ff 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -83,10 +83,10 @@ static TIMER_CALLBACK( interrupt_callback ) int scanline; int coin = (input_port_read(machine, "IN1") & 2); - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); if (!coin && prev_coin) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); prev_coin = coin; @@ -126,7 +126,7 @@ static CUSTOM_INPUT( fgoal_80_r ) static READ8_HANDLER( fgoal_nmi_reset_r ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); return 0; } @@ -134,7 +134,7 @@ static READ8_HANDLER( fgoal_nmi_reset_r ) static READ8_HANDLER( fgoal_irq_reset_r ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); return 0; } diff --git a/src/mame/drivers/filetto.c b/src/mame/drivers/filetto.c index 44a8491f41d..08619a300c8 100644 --- a/src/mame/drivers/filetto.c +++ b/src/mame/drivers/filetto.c @@ -429,7 +429,7 @@ static READ8_DEVICE_HANDLER( port_a_r ) } else//keyboard emulation { - //cpunum_set_input_line(device->machine, 0,1,PULSE_LINE); + //cpu_set_input_line(device->machine->cpu[0],1,PULSE_LINE); return 0x00;//Keyboard is disconnected //return 0xaa;//Keyboard code } @@ -465,7 +465,7 @@ static WRITE8_DEVICE_HANDLER( wss_2_w ) static WRITE8_DEVICE_HANDLER( sys_reset_w ) { - cpunum_set_input_line(device->machine, 0,INPUT_LINE_RESET,PULSE_LINE); + cpu_set_input_line(device->machine->cpu[0],INPUT_LINE_RESET,PULSE_LINE); } @@ -623,7 +623,7 @@ static const struct dma8237_interface dma8237_1_config = ******************/ static PIC8259_SET_INT_LINE( pic8259_1_set_int_line ) { - cpunum_set_input_line(device->machine, 0, 0, interrupt ? HOLD_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, interrupt ? HOLD_LINE : CLEAR_LINE); } static const struct pic8259_interface pic8259_1_config = { @@ -816,11 +816,11 @@ static INTERRUPT_GEN( filetto_vblank ) { /*TODO: Timings are guessed*/ /*H-Blank*/ - if((cpu_getiloops() % 8) == 0){ HBLANK_1; } + if((cpu_getiloops(device) % 8) == 0){ HBLANK_1; } else { HBLANK_0; } /*V-Blank*/ - if(cpu_getiloops() >= 180) { VBLANK_1; } + if(cpu_getiloops(device) >= 180) { VBLANK_1; } else { VBLANK_0; } } @@ -830,7 +830,7 @@ static MACHINE_RESET( filetto ) bank = -1; lastvalue = -1; hv_blank = 0; - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); filetto_devices.pit8254 = device_list_find_by_tag( machine->config->devicelist, PIT8254, "pit8254" ); filetto_devices.pic8259_1 = device_list_find_by_tag( machine->config->devicelist, PIC8259, "pic8259_1" ); filetto_devices.pic8259_2 = device_list_find_by_tag( machine->config->devicelist, PIC8259, "pic8259_2" ); diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c index 80e1a4ec283..4e14dd31aea 100644 --- a/src/mame/drivers/finalizr.c +++ b/src/mame/drivers/finalizr.c @@ -30,15 +30,15 @@ VIDEO_UPDATE( finalizr ); static INTERRUPT_GEN( finalizr_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (*finalizr_interrupt_enable & 2) - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { if (*finalizr_interrupt_enable & 1) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } @@ -50,7 +50,7 @@ static WRITE8_HANDLER( finalizr_coin_w ) static WRITE8_HANDLER( finalizr_i8039_irq_w ) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } static WRITE8_HANDLER( i8039_irqen_w ) @@ -61,7 +61,7 @@ static WRITE8_HANDLER( i8039_irqen_w ) */ if ((data & 0x80) == 0) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static READ8_HANDLER( i8039_T1_r ) diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c index 0ef470688ee..86e5fc32659 100644 --- a/src/mame/drivers/firebeat.c +++ b/src/mame/drivers/firebeat.c @@ -589,7 +589,7 @@ static void GCU_w(running_machine *machine, int chip, UINT32 offset, UINT32 data /* IRQ clear/enable; ppd writes bit off then on in response to interrupt */ /* it enables bits 0x41, but 0x01 seems to be the one it cares about */ if (ACCESSING_BITS_16_31 && (data & 0x0001) == 0) - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); break; case 0x30: @@ -857,12 +857,12 @@ static int atapi_drivesel; static void atapi_cause_irq(running_machine *machine) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ4, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ4, ASSERT_LINE); } static void atapi_clear_irq(running_machine *machine) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ4, CLEAR_LINE); } static void atapi_exit(running_machine* machine) @@ -1277,7 +1277,7 @@ static WRITE32_HANDLER( comm_uart_w ) static void comm_uart_irq_callback(running_machine *machine, int channel, int value) { // TODO - //cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ2, ASSERT_LINE); + //cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ2, ASSERT_LINE); } /*****************************************************************************/ @@ -1432,20 +1432,20 @@ static void midi_uart_irq_callback(running_machine *machine, int channel, int va if ((extend_board_irq_enable & 0x02) == 0 && value != CLEAR_LINE) { extend_board_irq_active |= 0x02; - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, ASSERT_LINE); } else - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); } else { if ((extend_board_irq_enable & 0x01) == 0 && value != CLEAR_LINE) { extend_board_irq_active |= 0x01; - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, ASSERT_LINE); } else - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); } } @@ -1996,7 +1996,7 @@ static INTERRUPT_GEN(firebeat_interrupt) // IRQ 2: Main board UART // IRQ 4: ATAPI - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE); } static MACHINE_RESET( firebeat ) diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c index bb743844cbe..adc1f748e80 100644 --- a/src/mame/drivers/firetrap.c +++ b/src/mame/drivers/firetrap.c @@ -146,7 +146,7 @@ static WRITE8_HANDLER( firetrap_8751_w ) if (data==0x26) { i8751_current_command=0; i8751_return=0xff; /* This value is XOR'd and must equal 0 */ - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[0],0,HOLD_LINE,0xff); return; } @@ -193,14 +193,14 @@ static WRITE8_HANDLER( firetrap_8751_w ) } /* Signal main cpu task is complete */ - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[0],0,HOLD_LINE,0xff); i8751_current_command=data; } static WRITE8_HANDLER( firetrap_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static WRITE8_HANDLER( firetrap_sound_2400_w ) @@ -229,7 +229,7 @@ static void firetrap_adpcm_int (running_machine *machine, int data) toggle ^= 1; if (firetrap_irq_enable && toggle) - cpunum_set_input_line (machine, 1, M6502_IRQ_LINE, HOLD_LINE); + cpu_set_input_line (machine->cpu[1], M6502_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( firetrap_adpcm_data_w ) @@ -544,33 +544,33 @@ static INTERRUPT_GEN( firetrap ) static int coin_command_pending=0; /* Check for coin IRQ */ - if (cpu_getiloops()) + if (cpu_getiloops(device)) { - if ((input_port_read(machine, "COIN") & 0x7) != 0x7 && !latch) + if ((input_port_read(device->machine, "COIN") & 0x7) != 0x7 && !latch) { - coin_command_pending = ~input_port_read(machine, "COIN"); + coin_command_pending = ~input_port_read(device->machine, "COIN"); latch=1; } - if ((input_port_read(machine, "COIN") & 0x7) == 0x7) + if ((input_port_read(device->machine, "COIN") & 0x7) == 0x7) latch=0; /* Make sure coin IRQ's aren't generated when another command is pending, the main cpu definitely doesn't expect them as it locks out the coin routine */ if (coin_command_pending && !i8751_current_command) { i8751_return=coin_command_pending; - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xff); coin_command_pending=0; } } - if (firetrap_nmi_enable && !cpu_getiloops()) - cpunum_set_input_line (machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (firetrap_nmi_enable && !cpu_getiloops(device)) + cpu_set_input_line (device, INPUT_LINE_NMI, PULSE_LINE); } static INTERRUPT_GEN( bootleg ) { if (firetrap_nmi_enable) - cpunum_set_input_line (machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line (device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( firetrap ) diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index 8a6146821a5..fdac8bb6138 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -28,7 +28,7 @@ static void set_service_mode(running_machine *machine, int enable) watchdog_enable(machine, !enable); /* change CPU clock speed according to service switch change */ - cpunum_set_clock(machine, 0, enable ? FIRETRK_CPU_CLOCK_750KZ : FIRETRK_CPU_CLOCK_1MHZ); + cpu_set_clock(machine->cpu[0], enable ? FIRETRK_CPU_CLOCK_750KZ : FIRETRK_CPU_CLOCK_1MHZ); } @@ -58,7 +58,7 @@ static INTERRUPT_GEN( firetrk_interrupt ) /* NMI interrupts are disabled during service mode in firetrk and montecar */ if (!in_service_mode) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } @@ -66,7 +66,7 @@ static TIMER_CALLBACK( periodic_callback ) { int scanline = param; - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE); /* IRQs are generated by inverse 16V signal */ scanline += 32; diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c index 976117138e1..8f7ca85ac5c 100644 --- a/src/mame/drivers/fitfight.c +++ b/src/mame/drivers/fitfight.c @@ -266,7 +266,7 @@ ADDRESS_MAP_END static INTERRUPT_GEN( snd_irq ) { - cpunum_set_input_line(machine, 1,UPD7810_INTF2,HOLD_LINE); + cpu_set_input_line(device,UPD7810_INTF2,HOLD_LINE); } static const UPD7810_CONFIG sound_cpu_config = diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c index dbd49e751c2..ecd440931bf 100644 --- a/src/mame/drivers/flkatck.c +++ b/src/mame/drivers/flkatck.c @@ -37,7 +37,7 @@ static MACHINE_RESET( flkatck ) static INTERRUPT_GEN( flkatck_interrupt ) { if (flkatck_irq_enabled) - cpunum_set_input_line(machine, 0, HD6309_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( flkatck_bankswitch_w ) @@ -85,7 +85,7 @@ static WRITE8_HANDLER( flkatck_ls138_w ) soundlatch_w(machine, 0, data); break; case 0x06: /* Cause interrupt on audio CPU */ - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); break; case 0x07: /* watchdog reset */ watchdog_reset_w(machine, 0, data); diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c index a4764870196..212414ca3a0 100644 --- a/src/mame/drivers/flower.c +++ b/src/mame/drivers/flower.c @@ -78,27 +78,27 @@ static UINT8 *sn_nmi_enable; static WRITE8_HANDLER( flower_irq_ack ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( sn_irq_enable_w ) { *sn_irq_enable = data; - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); } static INTERRUPT_GEN( sn_irq ) { if ((*sn_irq_enable & 1) == 1) - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(machine,0,data); if ((*sn_nmi_enable & 1) == 1) - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( flower_cpu1_2, ADDRESS_SPACE_PROGRAM, 8 ) @@ -238,7 +238,7 @@ static const custom_sound_interface custom_interface = static INTERRUPT_GEN( flower_cpu0_interrupt ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } static MACHINE_DRIVER_START( flower ) diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c index dce8557b139..3561f95122a 100644 --- a/src/mame/drivers/flstory.c +++ b/src/mame/drivers/flstory.c @@ -46,7 +46,7 @@ static int sound_nmi_enable,pending_nmi; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -67,7 +67,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index 6f323834ee8..e634e8e1947 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.c @@ -28,7 +28,7 @@ static TIMER_CALLBACK( flyball_joystick_callback ) int potsense = param; if (potsense & ~flyball_potmask) - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE); flyball_potsense |= potsense; } diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index 021ffce79f6..601610f7f60 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -114,9 +114,9 @@ static READ16_HANDLER( nvram_r ) static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, atarigen_scanline_int_state && atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, atarigen_scanline_int_state && atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -130,7 +130,7 @@ static TIMER_CALLBACK( scanline_update ) mystery yet */ /* INT 1 is on 32V */ - atarigen_scanline_int_gen(machine, 0); + atarigen_scanline_int_gen(machine->cpu[0]); /* advance to the next interrupt */ scanline += 64; diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c index 426024a8818..c791960933f 100644 --- a/src/mame/drivers/freekick.c +++ b/src/mame/drivers/freekick.c @@ -102,7 +102,7 @@ static WRITE8_HANDLER( nmi_enable_w ) static INTERRUPT_GEN( freekick_irqgen ) { - if (nmi_en) cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,PULSE_LINE); + if (nmi_en) cpu_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE); } static WRITE8_HANDLER(oigas_5_w) diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index 3a3c0e8babf..5650a90b2a4 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -84,7 +84,7 @@ static DRIVER_INIT( fromanc4 ) static INTERRUPT_GEN( fromanc2_interrupt ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } @@ -97,7 +97,7 @@ static WRITE16_HANDLER( fromanc2_sndcmd_w ) soundlatch_w(machine, offset, (data >> 8) & 0xff); // 1P (LEFT) soundlatch2_w(machine, offset, data & 0xff); // 2P (RIGHT) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); fromanc2_sndcpu_nmi_flag = 0; } @@ -194,13 +194,13 @@ static WRITE16_HANDLER( fromanc2_subcpu_w ) { fromanc2_datalatch1 = data; - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE); fromanc2_subcpu_int_flag = 0; } static READ16_HANDLER( fromanc2_subcpu_r ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); fromanc2_subcpu_nmi_flag = 0; return (fromanc2_datalatch_2h << 8) | fromanc2_datalatch_2l; @@ -602,7 +602,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c index f2c52faa60c..36b077cde58 100644 --- a/src/mame/drivers/fromance.c +++ b/src/mame/drivers/fromance.c @@ -180,7 +180,7 @@ static void fromance_adpcm_int(running_machine *machine, int irq) /* generate an NMI if we're out of data */ if (!fromance_vclk_left) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c index 6c5551e1a5a..c97739f8172 100644 --- a/src/mame/drivers/funkyjet.c +++ b/src/mame/drivers/funkyjet.c @@ -299,7 +299,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c index 1e398d11a7a..f90e1b2fd0a 100644 --- a/src/mame/drivers/funybubl.c +++ b/src/mame/drivers/funybubl.c @@ -80,7 +80,7 @@ static WRITE8_HANDLER ( funybubl_cpurombank_w ) static WRITE8_HANDLER( funybubl_soundcommand_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0, HOLD_LINE); } static WRITE8_HANDLER( funybubl_oki_bank_sw ) diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index 481dc99eb77..be777613d93 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -82,9 +82,9 @@ static WRITE16_HANDLER( fuuki16_sound_command_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); -// cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); // Allow the other CPU to reply - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); // Fixes glitching in rasters + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); +// cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); // Allow the other CPU to reply + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); // Fixes glitching in rasters } } @@ -407,7 +407,7 @@ GFXDECODE_END static void soundirq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, 0, state); + cpu_set_input_line(machine->cpu[1], 0, state); } static const ym3812_interface fuuki16_ym3812_intf = @@ -429,21 +429,21 @@ static const ym3812_interface fuuki16_ym3812_intf = static TIMER_CALLBACK( level_1_interrupt_callback ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 1, HOLD_LINE); timer_set(video_screen_get_time_until_pos(machine->primary_screen, 248, 0), NULL, 0, level_1_interrupt_callback); } static TIMER_CALLBACK( vblank_interrupt_callback ) { - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); // VBlank IRQ + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); // VBlank IRQ timer_set(video_screen_get_time_until_vblank_start(machine->primary_screen), NULL, 0, vblank_interrupt_callback); } static TIMER_CALLBACK( raster_interrupt_callback ) { - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); // Raster Line IRQ + cpu_set_input_line(machine->cpu[0], 5, HOLD_LINE); // Raster Line IRQ video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen)); timer_adjust_oneshot(raster_interrupt_timer, video_screen_get_frame_period(machine->primary_screen), 0); } diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index 140c0c4523f..6a02aa0aa2f 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -545,21 +545,21 @@ GFXDECODE_END static TIMER_CALLBACK( level_1_interrupt_callback ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 1, HOLD_LINE); timer_set(video_screen_get_time_until_pos(machine->primary_screen, 248, 0), NULL, 0, level_1_interrupt_callback); } static TIMER_CALLBACK( vblank_interrupt_callback ) { - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); // VBlank IRQ + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); // VBlank IRQ timer_set(video_screen_get_time_until_vblank_start(machine->primary_screen), NULL, 0, vblank_interrupt_callback); } static TIMER_CALLBACK( raster_interrupt_callback ) { - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); // Raster Line IRQ + cpu_set_input_line(machine->cpu[0], 5, HOLD_LINE); // Raster Line IRQ video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen)); timer_adjust_oneshot(raster_interrupt_timer, video_screen_get_frame_period(machine->primary_screen), 0); } @@ -583,7 +583,7 @@ static MACHINE_RESET( fuuki32 ) static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ymf262_interface fuuki32_ymf262_interface = diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c index 996a9430545..f4b4955ab94 100644 --- a/src/mame/drivers/gaelco.c +++ b/src/mame/drivers/gaelco.c @@ -129,7 +129,7 @@ static WRITE16_HANDLER( bigkarnk_sound_command_w ) { if (ACCESSING_BITS_0_7){ soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_FIRQ_LINE,HOLD_LINE); } } diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index 10401534cb7..99dc117ca21 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -204,7 +204,7 @@ static MACHINE_RESET( common ) memory_set_bank(1, 0); /* keep the TMS32031 halted until the code is ready to go */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* Save state support */ state_save_register_global(sound_data); @@ -244,13 +244,13 @@ static MACHINE_RESET( gaelco3d2 ) static INTERRUPT_GEN( vblank_gen ) { gaelco3d_render(); - cpunum_set_input_line(machine, 0, 2, ASSERT_LINE); + cpu_set_input_line(device, 2, ASSERT_LINE); } static WRITE16_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 0, 2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, CLEAR_LINE); } @@ -303,7 +303,7 @@ static TIMER_CALLBACK( delayed_sound_w ) { logerror("delayed_sound_w(%02X)\n", param); sound_data = param; - cpunum_set_input_line(machine, 2, ADSP2115_IRQ2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], ADSP2115_IRQ2, ASSERT_LINE); } @@ -318,7 +318,7 @@ static WRITE16_HANDLER( sound_data_w ) static READ16_HANDLER( sound_data_r ) { logerror("sound_data_r(%02X)\n", sound_data); - cpunum_set_input_line(machine, 2, ADSP2115_IRQ2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], ADSP2115_IRQ2, CLEAR_LINE); return sound_data; } @@ -412,7 +412,7 @@ static WRITE32_HANDLER( tms_m68k_ram_w ) static void iack_w(UINT8 state, offs_t addr) { logerror("iack_w(%d) - %06X\n", state, addr); - cpunum_set_input_line(Machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[1], 0, CLEAR_LINE); } @@ -428,7 +428,7 @@ static WRITE16_HANDLER( tms_reset_w ) /* this is set to 0 while data is uploaded, then set to $ffff after it is done */ /* it does not ever appear to be touched after that */ logerror("%06X:tms_reset_w(%02X) = %08X & %08X\n", cpu_get_pc(machine->activecpu), offset, data, mem_mask); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data == 0xffff) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data == 0xffff) ? CLEAR_LINE : ASSERT_LINE); } @@ -438,7 +438,7 @@ static WRITE16_HANDLER( tms_irq_w ) /* done after uploading, and after modifying the comm area */ logerror("%06X:tms_irq_w(%02X) = %08X & %08X\n", cpu_get_pc(machine->activecpu), offset, data, mem_mask); if (ACCESSING_BITS_0_7) - cpunum_set_input_line(machine, 1, 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } @@ -562,7 +562,7 @@ static TIMER_CALLBACK( adsp_autobuffer_irq ) reg = adsp_ireg_base; /* generate the (internal, thats why the pulse) irq */ - cpunum_set_input_line(machine, 2, ADSP2105_IRQ1, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], ADSP2105_IRQ1, PULSE_LINE); } /* store it */ @@ -610,7 +610,7 @@ static void adsp_tx_callback(int port, INT32 data) /* calculate how long until we generate an interrupt */ /* period per each bit sent */ - sample_period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(2)), 2 * (adsp_control_regs[S1_SCLKDIV_REG] + 1)); + sample_period = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(Machine->cpu[2])), 2 * (adsp_control_regs[S1_SCLKDIV_REG] + 1)); /* now put it down to samples, so we know what the channel frequency has to be */ sample_period = attotime_mul(sample_period, 16 * SOUND_CHANNELS); diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c index dce31138f42..7d737e99d78 100644 --- a/src/mame/drivers/gaiden.c +++ b/src/mame/drivers/gaiden.c @@ -164,7 +164,7 @@ static WRITE16_HANDLER( gaiden_sound_command_w ) { if (ACCESSING_BITS_0_7) soundlatch_w(machine,0,data & 0xff); /* Ninja Gaiden */ if (ACCESSING_BITS_8_15) soundlatch_w(machine,0,data >> 8); /* Tecmo Knight */ - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static WRITE16_HANDLER( drgnbowl_sound_command_w ) @@ -172,7 +172,7 @@ static WRITE16_HANDLER( drgnbowl_sound_command_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine,0,data >> 8); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } @@ -857,7 +857,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index 12df6ab05e3..8e87499a5b3 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -742,13 +742,13 @@ static WRITE8_HANDLER( bosco_latch_w ) case 0x00: /* IRQ1 */ cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 0x01: /* IRQ2 */ cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); break; case 0x02: /* NMION */ @@ -756,8 +756,8 @@ static WRITE8_HANDLER( bosco_latch_w ) break; case 0x03: /* RESET */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x04: /* n.c. */ @@ -807,7 +807,7 @@ static TIMER_CALLBACK( cpu3_interrupt_callback ) { int scanline = param; - nmi_line_pulse(machine, 2); + nmi_line_pulse(machine->cpu[2]); scanline = scanline + 128; if (scanline >= 272) diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c index c502eb058aa..706ec058002 100644 --- a/src/mame/drivers/galastrm.c +++ b/src/mame/drivers/galastrm.c @@ -59,12 +59,12 @@ extern INT16 galastrm_tc0610_ctrl_reg[2][8]; static INTERRUPT_GEN( galastrm_interrupt ) { frame_counter ^= 1; - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static TIMER_CALLBACK( galastrm_interrupt6 ) { - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 6, HOLD_LINE); } diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index 4105b6b1db7..76d2c41f0ef 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -178,7 +178,7 @@ GFXDECODE_END static INTERRUPT_GEN( galaxia_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x03); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03); } static MACHINE_DRIVER_START( galaxia ) diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index db035eae371..b2d20966796 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -237,7 +237,7 @@ static INTERRUPT_GEN( interrupt_gen ) /* interrupt line is clocked at VBLANK */ /* a flip-flop at 6F is held in the preset state based on the NMI ON signal */ if (irq_enabled) - cpunum_set_input_line(machine, 0, irq_line, ASSERT_LINE); + cpu_set_input_line(device, irq_line, ASSERT_LINE); } @@ -248,7 +248,7 @@ static WRITE8_HANDLER( irq_enable_w ) /* if CLEAR is held low, we must make sure the interrupt signal is clear */ if (!irq_enabled) - cpunum_set_input_line(machine, 0, irq_line, CLEAR_LINE); + cpu_set_input_line(machine->activecpu, irq_line, CLEAR_LINE); } @@ -326,7 +326,7 @@ static WRITE8_DEVICE_HANDLER( konami_sound_control_w ) /* the inverse of bit 3 clocks the flip flop to signal an INT */ /* it is automatically cleared on the acknowledge */ if ((old & 0x08) && !(data & 0x08)) - cpunum_set_input_line(device->machine, 1, 0, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], 0, HOLD_LINE); /* bit 4 is sound disable */ sound_global_enable(~data & 0x10); @@ -349,7 +349,7 @@ static READ8_HANDLER( konami_sound_timer_r ) current counter index, we use the sound cpu clock times 8 mod 16*16*2*8*5*2. */ - UINT32 cycles = (cpunum_gettotalcycles(1) * 8) % (UINT64)(16*16*2*8*5*2); + UINT32 cycles = (cpu_get_total_cycles(machine->cpu[1]) * 8) % (UINT64)(16*16*2*8*5*2); UINT8 hibit = 0; /* separate the high bit from the others */ @@ -536,13 +536,13 @@ static const ppi8255_interface scramble_ppi8255_1_intf = static WRITE8_HANDLER( explorer_sound_control_w ) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } static READ8_HANDLER( explorer_sound_latch_r ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); return soundlatch_r(machine, 0); } @@ -579,7 +579,7 @@ static WRITE8_HANDLER( sfx_sample_control_w ) /* the inverse of bit 0 clocks the flip flop to signal an INT */ /* it is automatically cleared on the acknowledge */ if ((old & 0x01) && !(data & 0x01)) - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } @@ -654,7 +654,7 @@ static READ8_HANDLER( frogger_sound_timer_r ) static WRITE8_HANDLER( froggrmc_sound_control_w ) { - cpunum_set_input_line(machine, 1, 0, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, (data & 1) ? CLEAR_LINE : ASSERT_LINE); } @@ -809,7 +809,7 @@ static INPUT_CHANGED( gmgalax_game_changed ) galaxian_stars_enable_w(field->port->machine, 0, 0); /* reset the CPU */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); } @@ -993,13 +993,13 @@ static READ8_HANDLER( jumpbug_protection_r ) static WRITE8_HANDLER( checkman_sound_command_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static TIMER_CALLBACK( checkmaj_irq0_gen ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c index 747e0bbf351..9e59f2646bb 100644 --- a/src/mame/drivers/galpani2.c +++ b/src/mame/drivers/galpani2.c @@ -435,12 +435,12 @@ GFXDECODE_END #define GALPANI2_INTERRUPTS_NUM 4 static INTERRUPT_GEN( galpani2_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 3: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 2: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; // vblank? - case 0: cpunum_set_input_line(machine, 0, 6, HOLD_LINE); break; // hblank? + case 3: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 5, HOLD_LINE); break; // vblank? + case 0: cpu_set_input_line(device, 6, HOLD_LINE); break; // hblank? } } @@ -449,11 +449,11 @@ static INTERRUPT_GEN( galpani2_interrupt ) #define GALPANI2_INTERRUPTS_NUM2 3 static INTERRUPT_GEN( galpani2_interrupt2 ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 2: cpunum_set_input_line(machine, 1, 3, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 1, 4, HOLD_LINE); break; - case 0: cpunum_set_input_line(machine, 1, 5, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 5, HOLD_LINE); break; } } diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c index e5f8cbb06e7..774b2710724 100644 --- a/src/mame/drivers/galpani3.c +++ b/src/mame/drivers/galpani3.c @@ -81,11 +81,11 @@ static bitmap_t *sprite_bitmap_1; static INTERRUPT_GEN( galpani3_vblank ) // 2, 3, 5 ? { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 2: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 0: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 2, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 5, HOLD_LINE); break; } } diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 97d6662bd5b..6d475eb0139 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -142,19 +142,19 @@ static VIDEO_EOF( galpanic ) static INTERRUPT_GEN( galpanic_interrupt ) { /* IRQ 3 drives the game, IRQ 5 updates the palette */ - if (cpu_getiloops() != 0) - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + if (cpu_getiloops(device) != 0) + cpu_set_input_line(device, 5, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(device, 3, HOLD_LINE); } static INTERRUPT_GEN( galhustl_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 2: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 5, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 3, HOLD_LINE); break; } } diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c index 662b38880db..88a0a89beb7 100644 --- a/src/mame/drivers/galspnbl.c +++ b/src/mame/drivers/galspnbl.c @@ -38,7 +38,7 @@ static WRITE16_HANDLER( soundcommand_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -196,7 +196,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c index ba6848804a6..cc0c21c2c2a 100644 --- a/src/mame/drivers/gamecstl.c +++ b/src/mame/drivers/gamecstl.c @@ -588,7 +588,7 @@ static MACHINE_RESET(gamecstl) { memory_set_bankptr(1, memory_region(machine, "user1") + 0x30000); - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); gamecstl_devices.pit8254 = device_list_find_by_tag( machine->config->devicelist, PIT8254, "pit8254" ); gamecstl_devices.pic8259_1 = device_list_find_by_tag( machine->config->devicelist, PIC8259, "pic8259_1" ); @@ -605,7 +605,7 @@ static MACHINE_RESET(gamecstl) *************************************************************/ static PIC8259_SET_INT_LINE( gamecstl_pic8259_1_set_int_line ) { - cpunum_set_input_line(device->machine, 0, 0, interrupt ? HOLD_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, interrupt ? HOLD_LINE : CLEAR_LINE); } @@ -709,7 +709,7 @@ static const struct pci_device_info intel82371ab = static void set_gate_a20(int a20) { - cpunum_set_input_line(Machine, 0, INPUT_LINE_A20, a20); + cpu_set_input_line(Machine->cpu[0], INPUT_LINE_A20, a20); } static void keyboard_interrupt(int state) diff --git a/src/mame/drivers/gameplan.c b/src/mame/drivers/gameplan.c index e74ddc47cf1..ac9f0228344 100644 --- a/src/mame/drivers/gameplan.c +++ b/src/mame/drivers/gameplan.c @@ -128,11 +128,11 @@ static const struct via6522_interface via_1_interface = static WRITE8_HANDLER( audio_reset_w ) { gameplan_state *state = machine->driver_data; - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); if (data == 0) { device_reset(state->riot); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); } } @@ -170,9 +170,9 @@ static const struct via6522_interface via_2_interface = static void r6532_irq(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 1, 0, state); + cpu_set_input_line(device->machine->cpu[1], 0, state); if (state == ASSERT_LINE) - cpu_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(10)); + cpuexec_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(10)); } diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c index da66d0d1e36..64e4db590fd 100644 --- a/src/mame/drivers/gaplus.c +++ b/src/mame/drivers/gaplus.c @@ -257,7 +257,7 @@ static WRITE8_HANDLER( gaplus_irq_1_ctrl_w ) int bit = !BIT(offset,11); cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( gaplus_irq_3_ctrl_w ) @@ -265,7 +265,7 @@ static WRITE8_HANDLER( gaplus_irq_3_ctrl_w ) int bit = !BIT(offset,13); cpu_interrupt_enable(2,bit); if (!bit) - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); } static WRITE8_HANDLER( gaplus_irq_2_ctrl_w ) @@ -273,14 +273,14 @@ static WRITE8_HANDLER( gaplus_irq_2_ctrl_w ) int bit = offset & 1; cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static WRITE8_HANDLER( gaplus_sreset_w ) { int bit = !BIT(offset,11); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); mappy_sound_enable(bit); } @@ -296,13 +296,13 @@ static MACHINE_RESET( gaplus ) { /* on reset, VINTON is reset, while the other flags don't seem to be affected */ cpu_interrupt_enable(1,0); - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static INTERRUPT_GEN( gaplus_interrupt_1 ) { - irq0_line_assert(machine, cpunum); // this also checks if irq is enabled - IMPORTANT! - // so don't replace with cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + irq0_line_assert(device); // this also checks if irq is enabled - IMPORTANT! + // so don't replace with cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); namcoio_set_irq_line(0,PULSE_LINE); namcoio_set_irq_line(1,PULSE_LINE); diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c index ea63ab6ca79..4f4249cc68d 100644 --- a/src/mame/drivers/gauntlet.c +++ b/src/mame/drivers/gauntlet.c @@ -147,8 +147,8 @@ static UINT16 sound_reset_val; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -156,7 +156,7 @@ static void scanline_update(const device_config *screen, int scanline) { /* sound IRQ is on 32V */ if (scanline & 32) - atarigen_6502_irq_gen(screen->machine, 0); + atarigen_6502_irq_gen(screen->machine->cpu[1]); else atarigen_6502_irq_ack_r(screen->machine, 0); } @@ -207,7 +207,7 @@ static WRITE16_HANDLER( sound_reset_w ) if ((oldword ^ sound_reset_val) & 1) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (sound_reset_val & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (sound_reset_val & 1) ? CLEAR_LINE : ASSERT_LINE); atarigen_sound_reset(); } } diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c index 17a2f82f232..3f0044bc996 100644 --- a/src/mame/drivers/gberet.c +++ b/src/mame/drivers/gberet.c @@ -91,16 +91,16 @@ static UINT8 nmi_enable, irq_enable; static INTERRUPT_GEN( gberet_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } - if (cpu_getiloops() % 2) + if (cpu_getiloops(device) % 2) { if (nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c index 26de864e41b..664945e990a 100644 --- a/src/mame/drivers/gbusters.c +++ b/src/mame/drivers/gbusters.c @@ -30,7 +30,7 @@ static UINT8 *ram; static INTERRUPT_GEN( gbusters_interrupt ) { if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } static READ8_HANDLER( bankedram_r ) @@ -103,7 +103,7 @@ char baf[40]; static WRITE8_HANDLER( gbusters_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( gbusters_snd_bankswitch_w ) diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c index c2c014763e0..65ac2c33178 100644 --- a/src/mame/drivers/gcpinbal.c +++ b/src/mame/drivers/gcpinbal.c @@ -46,7 +46,7 @@ static int start, end, bank; static TIMER_CALLBACK( gcpinbal_interrupt1 ) { - cpunum_set_input_line(machine, 0,1,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],1,HOLD_LINE); } #ifdef UNUSED_FUNCTION @@ -55,7 +55,7 @@ static TIMER_CALLBACK( gcpinbal_interrupt3 ) // IRQ3 is from the M6585 // if (!ADPCM_playing(0)) { - cpunum_set_input_line(machine, 0,3,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],3,HOLD_LINE); } } #endif @@ -66,7 +66,7 @@ static INTERRUPT_GEN( gcpinbal_interrupt ) timer_set(ATTOTIME_IN_CYCLES(500,0), NULL, 0, gcpinbal_interrupt1); // timer_set(ATTOTIME_IN_CYCLES(1000,0), NULL, 0, gcpinbal_interrupt3); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } diff --git a/src/mame/drivers/genesis.c b/src/mame/drivers/genesis.c index a07408e0bb8..d988be08857 100644 --- a/src/mame/drivers/genesis.c +++ b/src/mame/drivers/genesis.c @@ -69,9 +69,9 @@ UINT8 *genesis_z80_ram; /* call this whenever the interrupt state has changed */ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 2, irq2_int ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, scanline_int ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, vblank_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, irq2_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, scanline_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, vblank_int ? ASSERT_LINE : CLEAR_LINE); } @@ -122,10 +122,10 @@ INTERRUPT_GEN( genesis_vblank_interrupt ) { /* generate the interrupt */ vblank_int = 1; - update_interrupts(machine); + update_interrupts(device->machine); /* set a timer to turn it off */ - timer_set(video_screen_get_time_until_pos(machine->primary_screen, video_screen_get_vpos(machine->primary_screen), 22), NULL, 0, vdp_int6_off); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, video_screen_get_vpos(device->machine->primary_screen), 22), NULL, 0, vdp_int6_off); } @@ -155,7 +155,7 @@ MACHINE_RESET( genesis ) genesis_z80_ram[0] = 0x76; genesis_z80_ram[0x38] = 0x76; - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); z80running = 0; } @@ -207,7 +207,7 @@ WRITE16_HANDLER(genesis_ctrl_w) if (data == 0x100) { z80running = 0; - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); /* halt Z80 */ + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); /* halt Z80 */ /* logerror("z80 stopped by 68k BusReq\n"); */ } else @@ -215,7 +215,7 @@ WRITE16_HANDLER(genesis_ctrl_w) z80running = 1; // memory_set_bankptr(1, &genesis_z80_ram[0]); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); /* logerror("z80 started, BusReq ends\n"); */ } return; @@ -223,10 +223,10 @@ WRITE16_HANDLER(genesis_ctrl_w) case 0x100: /* Z80 CPU Reset */ if (data == 0x00) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); /* logerror("z80 reset, ram is %p\n", &genesis_z80_ram[0]); */ z80running = 0; return; diff --git a/src/mame/drivers/ghosteo.c b/src/mame/drivers/ghosteo.c index 474f1d33f28..139d0fa1f57 100644 --- a/src/mame/drivers/ghosteo.c +++ b/src/mame/drivers/ghosteo.c @@ -480,8 +480,8 @@ static VIDEO_UPDATE( bballoon ) static INTERRUPT_GEN( bballoon_interrupt ) { if(irq_en) - cpunum_set_input_line(machine, 0, ARM7_IRQ_LINE, HOLD_LINE); - //cpunum_set_input_line(machine, 0, ARM7_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, ARM7_IRQ_LINE, HOLD_LINE); + //cpu_set_input_line(device, ARM7_FIRQ_LINE, HOLD_LINE); // irq_en = 0; } diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c index 4eeb468cbdd..f21941072ac 100644 --- a/src/mame/drivers/gijoe.c +++ b/src/mame/drivers/gijoe.c @@ -159,7 +159,7 @@ static void gijoe_objdma(void) static TIMER_CALLBACK( dmaend_callback ) { if (cur_control2 & 0x0020) - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 6, HOLD_LINE); } static INTERRUPT_GEN( gijoe_interrupt ) @@ -177,7 +177,7 @@ static INTERRUPT_GEN( gijoe_interrupt ) // trigger V-blank interrupt if (cur_control2 & 0x0080) - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static WRITE16_HANDLER( sound_cmd_w ) @@ -190,7 +190,7 @@ static WRITE16_HANDLER( sound_cmd_w ) static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ16_HANDLER( sound_status_r ) @@ -200,7 +200,7 @@ static READ16_HANDLER( sound_status_r ) static void sound_nmi(running_machine *machine) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_START( gijoe ) diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c index 77a868f4ab9..3e95c275a98 100644 --- a/src/mame/drivers/ginganin.c +++ b/src/mame/drivers/ginganin.c @@ -324,7 +324,7 @@ static INTERRUPT_GEN( ginganin_sound_interrupt ) if (MC6809_CTR > S_TEMPO) { MC6809_CTR = 0; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } else { diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c index 50b7ef0b416..d33d65cf33d 100644 --- a/src/mame/drivers/gladiatr.c +++ b/src/mame/drivers/gladiatr.c @@ -290,7 +290,7 @@ static WRITE8_HANDLER( gladiator_int_control_w ) static void gladiator_ym_irq(running_machine *machine, int irq) { /* NMI IRQ is not used by gladiator sound program */ - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); } /*Sound Functions*/ @@ -309,12 +309,12 @@ static WRITE8_HANDLER( glad_adpcm_w ) static WRITE8_HANDLER( glad_cpu_sound_command_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, ASSERT_LINE); } static READ8_HANDLER( glad_cpu_sound_command_r ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, CLEAR_LINE); return soundlatch_r(machine,0); } @@ -328,7 +328,7 @@ static WRITE8_HANDLER( gladiatr_flipscreen_w ) /* !!!!! patch to IRQ timming for 2nd CPU !!!!! */ static WRITE8_HANDLER( gladiatr_irq_patch_w ) { - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } #endif diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c index 30933144689..fd1922eccfd 100644 --- a/src/mame/drivers/glass.c +++ b/src/mame/drivers/glass.c @@ -39,7 +39,7 @@ static WRITE16_HANDLER( clr_int_w ) static INTERRUPT_GEN( glass_interrupt ) { if (cause_interrupt){ - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); cause_interrupt = 0; } } diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c index 03a4b186afd..0c1558f17ac 100644 --- a/src/mame/drivers/goal92.c +++ b/src/mame/drivers/goal92.c @@ -31,7 +31,7 @@ static WRITE16_HANDLER( goal92_sound_command_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine, 0, (data >> 8) & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } @@ -234,7 +234,7 @@ INPUT_PORTS_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = @@ -256,7 +256,7 @@ static void goal92_adpcm_int(running_machine *machine, int data) toggle ^= 1; if(toggle) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static const msm5205_interface msm5205_config = diff --git a/src/mame/drivers/goodejan.c b/src/mame/drivers/goodejan.c index e955363a82c..1fee282b931 100644 --- a/src/mame/drivers/goodejan.c +++ b/src/mame/drivers/goodejan.c @@ -266,10 +266,10 @@ GFXDECODE_END static INTERRUPT_GEN( goodejan_interrupt ) { - if (cpu_getiloops()) - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0x208/4); + if (cpu_getiloops(device)) + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0x208/4); else - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0x00c/4); + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0x00c/4); } static MACHINE_DRIVER_START( goodejan ) diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c index de79aff9d9f..41d8df92493 100644 --- a/src/mame/drivers/gotcha.c +++ b/src/mame/drivers/gotcha.c @@ -261,7 +261,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index 56228603943..d49f7bce239 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -664,15 +664,15 @@ static void laserdisc_audio_process(const device_config *device, int samplerate, static TIMER_CALLBACK( nmi_clear ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } static INTERRUPT_GEN( gottlieb_interrupt ) { /* assert the NMI and set a timer to clear it at the first visible line */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); - timer_set(video_screen_get_time_until_pos(machine->primary_screen, 0, 0), NULL, 0, nmi_clear); + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, 0, 0), NULL, 0, nmi_clear); /* if we have a laserdisc, update it */ if (laserdisc != NULL) diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c index 8b4f59b0667..49f3581ee6e 100644 --- a/src/mame/drivers/gpworld.c +++ b/src/mame/drivers/gpworld.c @@ -405,7 +405,7 @@ INPUT_PORTS_END static TIMER_CALLBACK( irq_stop ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( vblank_callback_gpworld ) @@ -415,11 +415,11 @@ static INTERRUPT_GEN( vblank_callback_gpworld ) { laserdisc_data_w(laserdisc,ldp_write_latch); ldp_read_latch = laserdisc_data_r(laserdisc); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } /* The time the IRQ line stays high is set just long enough to happen after the NMI - hacky? */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(100), NULL, 0, irq_stop); } diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c index eb94a4e6e4d..eb41a6b8f77 100644 --- a/src/mame/drivers/gradius3.c +++ b/src/mame/drivers/gradius3.c @@ -80,7 +80,7 @@ static int irqAen,irqBmask; static MACHINE_RESET( gradius3 ) { /* start with cpu B halted */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); irqAen = 0; irqBmask = 0; } @@ -99,7 +99,7 @@ static WRITE16_HANDLER( cpuA_ctrl_w ) gradius3_priority = data & 0x04; /* bit 3 enables cpu B */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); /* bit 5 enables irq */ irqAen = data & 0x20; @@ -118,20 +118,20 @@ static WRITE16_HANDLER( cpuB_irqenable_w ) static INTERRUPT_GEN( cpuA_interrupt ) { if (irqAen) - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } static INTERRUPT_GEN( cpuB_interrupt ) { - if (cpu_getiloops() & 1) /* ??? */ + if (cpu_getiloops(device) & 1) /* ??? */ { if (irqBmask & 2) - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } else { if (irqBmask & 1) - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } } @@ -140,7 +140,7 @@ static WRITE16_HANDLER( cpuB_irqtrigger_w ) if (irqBmask & 4) { logerror("%04x trigger cpu B irq 4 %02x\n",cpu_get_pc(machine->activecpu),data); - cpunum_set_input_line(machine, 1,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],4,HOLD_LINE); } else logerror("%04x MISSED cpu B irq 4 %02x\n",cpu_get_pc(machine->activecpu),data); @@ -154,7 +154,7 @@ static WRITE16_HANDLER( sound_command_w ) static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line_and_vector(machine, 2,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[2],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( sound_bank_w ) diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c index e4f00229d34..71ebb2b0f9e 100644 --- a/src/mame/drivers/grchamp.c +++ b/src/mame/drivers/grchamp.c @@ -91,19 +91,19 @@ static MACHINE_RESET( grchamp ) static INTERRUPT_GEN( grchamp_cpu0_interrupt ) { - grchamp_state *state = machine->driver_data; + grchamp_state *state = device->machine->driver_data; if (state->cpu0_out[0] & 0x01) - cpunum_set_input_line(machine, cpunum, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } static INTERRUPT_GEN( grchamp_cpu1_interrupt ) { - grchamp_state *state = machine->driver_data; + grchamp_state *state = device->machine->driver_data; if (state->cpu1_out[4] & 0x01) - cpunum_set_input_line(machine, cpunum, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } @@ -131,7 +131,7 @@ static WRITE8_HANDLER( cpu0_outputs_w ) /* bit 6: FOG OUT */ /* bit 7: RADARON */ if ((diff & 0x01) && !(data & 0x01)) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); if ((diff & 0x02) && !(data & 0x02)) state->collide = state->collmode = 0; break; @@ -190,7 +190,7 @@ static WRITE8_HANDLER( cpu0_outputs_w ) case 0x0e: /* OUT14 */ /* O-21 connector */ soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); break; } } @@ -270,7 +270,7 @@ static WRITE8_HANDLER( cpu1_outputs_w ) case 0x04: /* OUT4 */ /* bit 0: interrupt enable for CPU 1 */ if ((diff & 0x01) && !(data & 0x01)) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); break; case 0x05: /* OUT5 - unused */ diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index a4ad3024c0a..39c5bc8be07 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -111,7 +111,7 @@ static void poly17_init(void); static TIMER_CALLBACK( irq_off ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, CLEAR_LINE); } @@ -124,7 +124,7 @@ static TIMER_CALLBACK( irq_timer ) timer_set(video_screen_get_time_until_pos(machine->primary_screen, param + 64, 0), NULL, param + 64, irq_timer); /* IRQ starts on scanline 0, 64, 128, etc. */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ timer_set(video_screen_get_time_until_pos(machine->primary_screen, param, BALSENTE_HBSTART), NULL, 0, irq_off); @@ -133,7 +133,7 @@ static TIMER_CALLBACK( irq_timer ) static TIMER_CALLBACK( firq_off ) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); } @@ -143,7 +143,7 @@ static TIMER_CALLBACK( firq_timer ) timer_set(video_screen_get_time_until_pos(machine->primary_screen, FIRQ_SCANLINE, 0), NULL, 0, firq_timer); /* IRQ starts on scanline FIRQ_SCANLINE? */ - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ timer_set(video_screen_get_time_until_pos(machine->primary_screen, FIRQ_SCANLINE, BALSENTE_HBSTART), NULL, 0, firq_off); @@ -254,7 +254,7 @@ static READ8_HANDLER( random_num_r ) UINT32 cc; /* CPU runs at 1.25MHz, noise source at 100kHz --> multiply by 12.5 */ - cc = activecpu_gettotalcycles(); + cc = cpu_get_total_cycles(machine->activecpu); /* 12.5 = 8 + 4 + 0.5 */ cc = (cc << 3) + (cc << 2) + (cc >> 1); diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c index 4c2e1eff845..604871a98b4 100644 --- a/src/mame/drivers/groundfx.c +++ b/src/mame/drivers/groundfx.c @@ -107,7 +107,7 @@ static WRITE32_HANDLER( color_ram_w ) static TIMER_CALLBACK( groundfx_interrupt5 ) { - cpunum_set_input_line(machine, 0,5,HOLD_LINE); //from 5... ADC port + cpu_set_input_line(machine->cpu[0],5,HOLD_LINE); //from 5... ADC port } @@ -390,7 +390,7 @@ static MACHINE_RESET( groundfx ) static INTERRUPT_GEN( groundfx_interrupt ) { frame_counter^=1; - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static MACHINE_DRIVER_START( groundfx ) @@ -472,7 +472,7 @@ static READ32_HANDLER( irq_speedup_r_groundfx ) (groundfx_ram[((cpu_get_sp(machine->activecpu)&0x1ffff)/4)+1]>>16); if (cpu_get_pc(machine->activecpu)==0x1ece && ptr==0x1b9a) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return groundfx_ram[0xb574/4]; } diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c index 1225b819215..ef00e1ccc9a 100644 --- a/src/mame/drivers/gstream.c +++ b/src/mame/drivers/gstream.c @@ -480,7 +480,7 @@ static READ32_HANDLER( gstream_speedup_r ) { if (cpu_get_pc(machine->activecpu)==0xc0001592) { - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return gstream_workram[0xd1ee0/4]; diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c index 01003dd1223..bb84c0b1427 100644 --- a/src/mame/drivers/gstriker.c +++ b/src/mame/drivers/gstriker.c @@ -201,7 +201,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -268,9 +268,9 @@ GFXDECODE_END static void gs_ym2610_irq(running_machine *machine, int irq) { if (irq) - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c index 7823643de5b..caa7829227a 100644 --- a/src/mame/drivers/gsword.c +++ b/src/mame/drivers/gsword.c @@ -275,7 +275,7 @@ static INTERRUPT_GEN( josvolly_snd_interrupt ) { if(josvolly_nmi_enable) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); josvolly_nmi_enable = 0; } } @@ -285,7 +285,7 @@ static INTERRUPT_GEN( gsword_snd_interrupt ) { if(gsword_nmi_enable) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } @@ -359,7 +359,7 @@ static WRITE8_HANDLER( gsword_adpcm_data_w ) static WRITE8_HANDLER( adpcm_soundcommand_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( cpu1_map, 0 , 8 ) diff --git a/src/mame/drivers/gticlub.c b/src/mame/drivers/gticlub.c index 40709bf640d..c739246097e 100644 --- a/src/mame/drivers/gticlub.c +++ b/src/mame/drivers/gticlub.c @@ -257,12 +257,12 @@ static WRITE32_HANDLER( paletteram32_w ) static void voodoo_vblank_0(const device_config *device, int param) { - cpunum_set_input_line(device->machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_IRQ0, ASSERT_LINE); } static void voodoo_vblank_1(const device_config *device, int param) { - cpunum_set_input_line(device->machine, 0, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_IRQ1, ASSERT_LINE); } static VIDEO_START( hangplt ) @@ -515,10 +515,10 @@ static WRITE8_HANDLER( sysreg_w ) case 4: if (data & 0x80) /* CG Board 1 IRQ Ack */ - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); if (data & 0x40) /* CG Board 0 IRQ Ack */ - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); adc1038_di_w((data >> 0) & 1); adc1038_clk_w(machine, (data >> 1) & 1); @@ -546,7 +546,7 @@ READ8_HANDLER( K056230_r ) static TIMER_CALLBACK( network_irq_clear ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ2, CLEAR_LINE); } WRITE8_HANDLER( K056230_w ) @@ -564,12 +564,12 @@ WRITE8_HANDLER( K056230_w ) // Thunder Hurricane breaks otherwise... if (mame_stricmp(machine->gamedrv->name, "thunderh") != 0) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ2, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(10), NULL, 0, network_irq_clear); } } // else -// cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ2, CLEAR_LINE); +// cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ2, CLEAR_LINE); break; } case 2: // Sub ID register @@ -896,7 +896,7 @@ INPUT_PORTS_END */ static INTERRUPT_GEN( gticlub_vblank ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE); } @@ -907,7 +907,7 @@ static const sharc_config sharc_cfg = static MACHINE_RESET( gticlub ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } static MACHINE_DRIVER_START( gticlub ) @@ -951,8 +951,8 @@ MACHINE_DRIVER_END static MACHINE_RESET( hangplt ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); } static MACHINE_DRIVER_START( hangplt ) @@ -1153,13 +1153,13 @@ ROM_END static TIMER_CALLBACK( irq_off ) { - cpunum_set_input_line(machine, 1, param, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], param, CLEAR_LINE); } static void sound_irq_callback(running_machine *machine, int irq) { int line = (irq == 0) ? INPUT_LINE_IRQ1 : INPUT_LINE_IRQ2; - cpunum_set_input_line(machine, 1, line, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], line, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(1), NULL, line, irq_off); } diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c index ada760a7710..e0053d013ab 100644 --- a/src/mame/drivers/guab.c +++ b/src/mame/drivers/guab.c @@ -55,7 +55,7 @@ enum int_levels static void ptm_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, INT_6840PTM, state); + cpu_set_input_line(machine->cpu[0], INT_6840PTM, state); } static const ptm6840_interface ptm_intf = @@ -79,7 +79,7 @@ static const ptm6840_interface ptm_intf = static void tms_interrupt(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, INT_TMS34061, state); + cpu_set_input_line(machine->cpu[0], INT_TMS34061, state); } static const struct tms34061_interface tms34061intf = @@ -346,7 +346,7 @@ static TIMER_CALLBACK( fdc_data_callback ) } fdc.status |= DATA_REQUEST; - cpunum_set_input_line(machine, 0, INT_FLOPPYCTRL, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INT_FLOPPYCTRL, ASSERT_LINE); } @@ -440,7 +440,7 @@ static WRITE16_HANDLER( wd1770_w ) fdc.sector)); /* Trigger a DRQ interrupt on the CPU */ - cpunum_set_input_line(machine, 0, INT_FLOPPYCTRL, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INT_FLOPPYCTRL, ASSERT_LINE); fdc.status |= DATA_REQUEST; break; } @@ -485,7 +485,7 @@ static WRITE16_HANDLER( wd1770_w ) fdc.data = data; /* Clear the DRQ */ - cpunum_set_input_line(machine, 0, INT_FLOPPYCTRL, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INT_FLOPPYCTRL, CLEAR_LINE); /* Queue an event to write the data if write command was specified */ if (fdc.cmd & 0x20) @@ -522,7 +522,7 @@ static READ16_HANDLER( wd1770_r ) retval = fdc.data; /* Clear the DRQ */ - cpunum_set_input_line(machine, 0, INT_FLOPPYCTRL, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INT_FLOPPYCTRL, CLEAR_LINE); fdc.status &= ~DATA_REQUEST; break; } diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c index 02eca71f374..71549e2af62 100644 --- a/src/mame/drivers/gunbustr.c +++ b/src/mame/drivers/gunbustr.c @@ -64,13 +64,13 @@ static UINT32 *gunbustr_ram; static TIMER_CALLBACK( gunbustr_interrupt5 ) { - cpunum_set_input_line(machine, 0,5,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],5,HOLD_LINE); } static INTERRUPT_GEN( gunbustr_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, gunbustr_interrupt5); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static WRITE32_HANDLER( gunbustr_palette_w ) @@ -423,7 +423,7 @@ ROM_END static READ32_HANDLER( main_cycle_r ) { if (cpu_get_pc(machine->activecpu)==0x55a && (gunbustr_ram[0x3acc/4]&0xff000000)==0) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return gunbustr_ram[0x3acc/4]; } diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c index c62ee2126cb..306837e2915 100644 --- a/src/mame/drivers/gundealr.c +++ b/src/mame/drivers/gundealr.c @@ -69,18 +69,18 @@ static int input_ports_hack; static INTERRUPT_GEN( yamyam_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (input_ports_hack) { - rambase[0x004] = input_port_read(machine, "IN2"); - rambase[0x005] = input_port_read(machine, "IN1"); - rambase[0x006] = input_port_read(machine, "IN0"); + rambase[0x004] = input_port_read(device->machine, "IN2"); + rambase[0x005] = input_port_read(device->machine, "IN1"); + rambase[0x006] = input_port_read(device->machine, "IN0"); } - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h vblank */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h vblank */ } - else if ((cpu_getiloops() & 1) == 1) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h sound (hand tuned) */ + else if ((cpu_getiloops(device) & 1) == 1) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h sound (hand tuned) */ } static WRITE8_HANDLER( yamyam_bankswitch_w ) diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c index 66f85ab160d..a2968fbe55d 100644 --- a/src/mame/drivers/gunpey.c +++ b/src/mame/drivers/gunpey.c @@ -113,7 +113,7 @@ ADDRESS_MAP_END static INTERRUPT_GEN( gunpey_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0x200/4); + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0x200/4); } /***************************************************************************************/ diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c index 7a5cdddfd41..df5f5c05008 100644 --- a/src/mame/drivers/gyruss.c +++ b/src/mame/drivers/gyruss.c @@ -96,7 +96,7 @@ static const int gyruss_timer[10] = static READ8_HANDLER( gyruss_portA_r ) { - return gyruss_timer[(activecpu_gettotalcycles()/1024) % 10]; + return gyruss_timer[(cpu_get_total_cycles(machine->activecpu)/1024) % 10]; } diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c index 483b9c2f544..c0272f63814 100644 --- a/src/mame/drivers/halleys.c +++ b/src/mame/drivers/halleys.c @@ -1003,7 +1003,7 @@ static WRITE8_HANDLER( blitter_w ) if (i==0 || (i==4 && !data)) { blitter_busy = 0; - if (firq_level) cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); // make up delayed FIRQ's + if (firq_level) cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); // make up delayed FIRQ's } else { @@ -1480,7 +1480,7 @@ static INTERRUPT_GEN( halleys_interrupt ) static int latch_delay = 0; UINT8 latch_data; - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: /* @@ -1503,8 +1503,8 @@ static INTERRUPT_GEN( halleys_interrupt ) latch_data = sound_fifo[fftail]; fftail = (fftail + 1) & (MAX_SOUNDS - 1); latch_delay = (latch_data) ? 0 : 4; - soundlatch_w(machine, 0, latch_data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + soundlatch_w(device->machine, 0, latch_data); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } // clear collision list of this frame unconditionally @@ -1513,16 +1513,16 @@ static INTERRUPT_GEN( halleys_interrupt ) // In Halley's Comet, NMI is used exclusively to handle coin input case 1: - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); break; // FIRQ drives gameplay; we need both types of NMI each frame. case 2: - mVectorType = 1; cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + mVectorType = 1; cpu_set_input_line(device, M6809_FIRQ_LINE, ASSERT_LINE); break; case 3: - mVectorType = 0; cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + mVectorType = 0; cpu_set_input_line(device, M6809_FIRQ_LINE, ASSERT_LINE); break; } } @@ -1533,7 +1533,7 @@ static INTERRUPT_GEN( benberob_interrupt ) static int latch_delay = 0; UINT8 latch_data; - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: if (latch_delay) latch_delay--; else @@ -1543,19 +1543,19 @@ static INTERRUPT_GEN( benberob_interrupt ) latch_data = sound_fifo[fftail]; fftail = (fftail + 1) & (MAX_SOUNDS - 1); latch_delay = (latch_data) ? 0 : 4; - soundlatch_w(machine, 0, latch_data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + soundlatch_w(device->machine, 0, latch_data); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } break; case 1: - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); break; case 2: case 3: // FIRQ must not happen when the blitter is being updated or it'll cause serious screen artifacts - if (!blitter_busy) cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); else firq_level++; + if (!blitter_busy) cpu_set_input_line(device, M6809_FIRQ_LINE, ASSERT_LINE); else firq_level++; break; } } @@ -1572,7 +1572,7 @@ static WRITE8_HANDLER( firq_ack_w ) io_ram[0x9c] = data; if (firq_level) firq_level--; - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); } diff --git a/src/mame/drivers/harddriv.c b/src/mame/drivers/harddriv.c index d09237fdc9a..ddbb7f35664 100644 --- a/src/mame/drivers/harddriv.c +++ b/src/mame/drivers/harddriv.c @@ -3714,10 +3714,7 @@ static READ32_HANDLER( rddsp32_speedup_r ) int cycles_to_burn = 17 * 4 * (0x2bc - r1 - 2); if (cycles_to_burn > 20 * 4) { - int icount_remaining = activecpu_get_icount(); - if (cycles_to_burn > icount_remaining) - cycles_to_burn = icount_remaining; - activecpu_adjust_icount(-cycles_to_burn); + cpu_eat_cycles(machine->activecpu, cycles_to_burn); program_write_word(r14 - 0x14, r1 + cycles_to_burn / 17); } msp_speedup_count[0]++; diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c index 1bdc9365d97..dccb452e305 100644 --- a/src/mame/drivers/hcastle.c +++ b/src/mame/drivers/hcastle.c @@ -37,7 +37,7 @@ static WRITE8_HANDLER( hcastle_bankswitch_w ) static WRITE8_HANDLER( hcastle_soundirq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } static WRITE8_HANDLER( hcastle_coin_w ) @@ -243,7 +243,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { -// cpunum_set_input_line(machine, 1,0,linestate); +// cpu_set_input_line(machine->cpu[1],0,linestate); } static void volume_callback(int v) diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c index 72bffc2c2fb..19273f19a5d 100644 --- a/src/mame/drivers/hexion.c +++ b/src/mame/drivers/hexion.c @@ -273,10 +273,10 @@ GFXDECODE_END static INTERRUPT_GEN( hexion_interrupt ) { /* NMI handles start and coin inputs, origin unknown */ - if (cpu_getiloops()) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (cpu_getiloops(device)) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); else - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_DRIVER_START( hexion ) diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c index 7de9183f900..b33d1efcb95 100644 --- a/src/mame/drivers/higemaru.c +++ b/src/mame/drivers/higemaru.c @@ -26,10 +26,10 @@ extern VIDEO_UPDATE( higemaru ); static INTERRUPT_GEN( higemaru_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xcf); /* RST 08h */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xcf); /* RST 08h */ else - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xd7); /* RST 10h */ + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xd7); /* RST 10h */ } diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c index 1cb3233bb24..4f7d9a0ab3f 100644 --- a/src/mame/drivers/hnayayoi.c +++ b/src/mame/drivers/hnayayoi.c @@ -537,7 +537,7 @@ INPUT_PORTS_END static void irqhandler(running_machine *machine, int irq) { popmessage("irq"); -// cpunum_set_input_line(machine, 2,0,irq ? ASSERT_LINE : CLEAR_LINE); +// cpu_set_input_line(machine->cpu[2],0,irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 3e9e560f5ee..8672b62418c 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -1427,15 +1427,15 @@ static const mips3_config config = static TIMER_CALLBACK( irq_stop ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( irq_start ) { - logerror("HNG64 interrupt level %x\n", cpu_getiloops()); + logerror("HNG64 interrupt level %x\n", cpu_getiloops(device)); /* there are more, the sources are unknown at the moment */ - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0x00: hng64_interrupt_level_request = 0; break; @@ -1445,7 +1445,7 @@ static INTERRUPT_GEN( irq_start ) break; } - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL, 0, irq_stop); } @@ -1461,8 +1461,8 @@ static MACHINE_RESET(hyperneo) UINT8 *RAM = (UINT8*)hng64_soundram; memory_set_bankptr(1,&RAM[0x1e0000]); memory_set_bankptr(2,&RAM[0x001000]); // where.. - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* Comm CPU */ @@ -1479,8 +1479,8 @@ static MACHINE_RESET(hyperneo) KL5C80_virtual_mem_sync(); memory_set_opbase_handler(2, KL5C80_opbase_handler); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, PULSE_LINE); // reset the CPU and let 'er rip -// cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); // hold on there pardner... + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, PULSE_LINE); // reset the CPU and let 'er rip +// cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); // hold on there pardner... diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c index 126f2ad6a2a..d8065dae4c0 100644 --- a/src/mame/drivers/homedata.c +++ b/src/mame/drivers/homedata.c @@ -233,12 +233,12 @@ static int vblank; static INTERRUPT_GEN( homedata_irq ) { vblank = 1; - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(device,M6809_FIRQ_LINE,HOLD_LINE); } static INTERRUPT_GEN( upd7807_irq ) { - cpunum_set_input_line(machine, 1,UPD7810_INTF1,HOLD_LINE); + cpu_set_input_line(device,UPD7810_INTF1,HOLD_LINE); } @@ -327,7 +327,7 @@ static WRITE8_HANDLER( mrokumei_sound_io_w ) static WRITE8_HANDLER( mrokumei_sound_cmd_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c index 7b7aa458b20..0bf0790a398 100644 --- a/src/mame/drivers/hornet.c +++ b/src/mame/drivers/hornet.c @@ -603,12 +603,12 @@ static WRITE32_HANDLER(K037122_reg_w) static void voodoo_vblank_0(const device_config *device, int param) { - cpunum_set_input_line(device->machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_IRQ0, ASSERT_LINE); } static void voodoo_vblank_1(const device_config *device, int param) { - cpunum_set_input_line(device->machine, 0, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_IRQ1, ASSERT_LINE); } static VIDEO_START( hornet ) @@ -742,7 +742,7 @@ static WRITE8_HANDLER( sysreg_w ) 0x02 = ADDI (ADC DI) 0x01 = ADDSCLK (ADC SCLK) */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); mame_printf_debug("System register 1 = %02X\n", data); break; @@ -777,9 +777,9 @@ static WRITE8_HANDLER( sysreg_w ) 0x01 = EXRGB */ if (data & 0x80) - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); if (data & 0x40) - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); set_cgboard_id((data >> 4) & 3); break; } @@ -1032,7 +1032,7 @@ static MACHINE_RESET( hornet ) memory_set_bank(1, 0); } - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); if (usr5) memory_set_bankptr(5, usr5); @@ -1104,8 +1104,8 @@ static MACHINE_RESET( hornet_2board ) memory_configure_bank(1, 0, memory_region_length(machine, "user3") / 0x40000, usr3, 0x40000); memory_set_bank(1, 0); } - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); if (usr5) memory_set_bankptr(5, usr5); @@ -1307,13 +1307,13 @@ static void jamma_jvs_cmd_exec(void) static TIMER_CALLBACK( irq_off ) { - cpunum_set_input_line(machine, 1, param, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], param, CLEAR_LINE); } static void sound_irq_callback(running_machine *machine, int irq) { int line = (irq == 0) ? INPUT_LINE_IRQ1 : INPUT_LINE_IRQ2; - cpunum_set_input_line(machine, 1, line, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], line, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(1), NULL, line, irq_off); } diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c index 14b1ee7119e..bce39396866 100644 --- a/src/mame/drivers/hotblock.c +++ b/src/mame/drivers/hotblock.c @@ -173,7 +173,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( hotblocks_irq ) /* right? */ { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static const ay8910_interface ay8910_config = diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c index 99c6ac53b2e..4d0dd85ef5d 100644 --- a/src/mame/drivers/hyprduel.c +++ b/src/mame/drivers/hyprduel.c @@ -108,7 +108,7 @@ static void update_irq_state(running_machine *machine) { int irq = requested_int & ~*hypr_irq_enable; - cpunum_set_input_line(machine, 0, 3, (irq & int_num) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, (irq & int_num) ? ASSERT_LINE : CLEAR_LINE); } static READ16_HANDLER( hyprduel_irq_cause_r ) @@ -139,24 +139,24 @@ static WRITE16_HANDLER( hypr_subcpu_control_w ) { if (pc != 0x95f2) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); subcpu_resetline = 1; } else { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); subcpu_resetline = -1; } } } else { if (subcpu_resetline == 1 && (data != 0x0c)) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); subcpu_resetline = 0; if (pc == 0xbb0 || pc == 0x9d30 || pc == 0xb19c) - cpu_spinuntil_time(ATTOTIME_IN_USEC(15000)); /* sync semaphore */ + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(15000)); /* sync semaphore */ } else if (subcpu_resetline == -1) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); subcpu_resetline = 0; } } @@ -194,19 +194,19 @@ static WRITE16_HANDLER( hypr_scrollreg_init_w ) static TIMER_CALLBACK( vblank_end_callback ) { requested_int &= ~param; - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 2, HOLD_LINE); } static INTERRUPT_GEN( hyprduel_interrupt ) { - int line = RASTER_LINES - cpu_getiloops(); + int line = RASTER_LINES - cpu_getiloops(device); if (line == RASTER_LINES) { requested_int |= 0x01; /* vblank */ requested_int |= 0x20; - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], 1, HOLD_LINE); /* the duration is a guess */ timer_set(ATTOTIME_IN_USEC(2500), NULL, 0x20, vblank_end_callback); rastersplit = 0; @@ -215,13 +215,13 @@ static INTERRUPT_GEN( hyprduel_interrupt ) rastersplit = line + 1; } - update_irq_state(machine); + update_irq_state(device->machine); } static MACHINE_RESET( hyprduel ) { /* start with cpu2 halted */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); subcpu_resetline = 1; } @@ -704,7 +704,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 1, HOLD_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index de13b779108..122736bd44c 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -441,7 +441,7 @@ static MACHINE_RESET( jingbell ) static INTERRUPT_GEN( jingbell_interrupt ) { if (nmi_enable & 0x80) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( jingbell ) diff --git a/src/mame/drivers/igs_180.c b/src/mame/drivers/igs_180.c index 539fa862d4d..c54f0b927d6 100644 --- a/src/mame/drivers/igs_180.c +++ b/src/mame/drivers/igs_180.c @@ -654,15 +654,15 @@ GFXDECODE_END static INTERRUPT_GEN( igs_180_interrupt ) { - if (cpu_getiloops() & 1) + if (cpu_getiloops(device) & 1) { if (nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } else { if (irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } } diff --git a/src/mame/drivers/igs_blit.c b/src/mame/drivers/igs_blit.c index 6aa7ae42fb0..fd3af6de22f 100644 --- a/src/mame/drivers/igs_blit.c +++ b/src/mame/drivers/igs_blit.c @@ -2432,11 +2432,11 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( chmplst2_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 6, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 6, HOLD_LINE); break; default: - case 1: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 5, HOLD_LINE); break; } } @@ -2466,10 +2466,10 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( grtwall_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 6, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 6, HOLD_LINE); break; } } @@ -2487,13 +2487,13 @@ static INTERRUPT_GEN( lhb_interrupt ) if (!lhb_irq_enable) return; - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 2: cpunum_set_input_line(machine, 0, 6, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 6, HOLD_LINE); break; default: // It reads the inputs. Must be called more than once for test mode on boot to work - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; + cpu_set_input_line(device, 5, HOLD_LINE); break; } } @@ -2508,7 +2508,7 @@ MACHINE_DRIVER_END static void sound_irq(running_machine *machine, int state) { -// cpunum_set_input_line(machine, 0, 3, state); +// cpu_set_input_line(machine->cpu[0], 3, state); } static const ics2115_interface vbowl_ics2115_interface = { @@ -2517,13 +2517,13 @@ static const ics2115_interface vbowl_ics2115_interface = { static INTERRUPT_GEN( vbowl_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; - case 2: cpunum_set_input_line(machine, 0, 6, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 5, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 6, HOLD_LINE); break; default: - case 3: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; // sound + case 3: cpu_set_input_line(device, 3, HOLD_LINE); break; // sound } } diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c index d8fdd7b8608..0e7426cfeef 100644 --- a/src/mame/drivers/igs_m027.c +++ b/src/mame/drivers/igs_m027.c @@ -359,7 +359,7 @@ GFXDECODE_END static INTERRUPT_GEN( igs_majhong_interrupt ) { - cpunum_set_input_line(machine, 0, ARM7_FIRQ_LINE, PULSE_LINE); + cpu_set_input_line(device, ARM7_FIRQ_LINE, PULSE_LINE); } diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c index bb1a0700a54..0bcf2e50fc6 100644 --- a/src/mame/drivers/ikki.c +++ b/src/mame/drivers/ikki.c @@ -28,7 +28,7 @@ static READ8_HANDLER( ikki_e000_r ) { /* bit1: interrupt type?, bit0: CPU2 busack? */ - if (cpu_getiloops() == 0) + if (cpu_getiloops(machine->activecpu) == 0) return 0; return 2; } diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c index e4ef92fdf05..81ffd74845b 100644 --- a/src/mame/drivers/imolagp.c +++ b/src/mame/drivers/imolagp.c @@ -113,7 +113,7 @@ static WRITE8_HANDLER( transmit_data_w ) } static READ8_HANDLER( trigger_slave_nmi_r ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); return 0; } @@ -359,19 +359,19 @@ ADDRESS_MAP_END static INTERRUPT_GEN( master_interrupt ) { - int which = cpu_getiloops(); + int which = cpu_getiloops(device); if( which==0 ) { #ifdef HLE_COM memcpy( &slave_workram[0x80], mComData, mComCount ); mComCount = 0; #endif - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } else { static int oldsteer; - int newsteer = input_port_read(machine, "2802") & 0xf; + int newsteer = input_port_read(device->machine, "2802") & 0xf; if( newsteer!=oldsteer ) { if( imola_steerlatch==0 ) @@ -387,7 +387,7 @@ static INTERRUPT_GEN( master_interrupt ) { oldsteer = (oldsteer+1)&0xf; } - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } } /* master_interrupt */ diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index a0ab5c38356..61d20a4e52e 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -99,7 +99,7 @@ static WRITE16_HANDLER( inufuku_soundcommand_w ) pending_command = 1; soundlatch_w(machine, 0, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -353,7 +353,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c index e20f6b0c507..fd9a221ca93 100644 --- a/src/mame/drivers/iqblock.c +++ b/src/mame/drivers/iqblock.c @@ -75,15 +75,15 @@ static WRITE8_HANDLER( grndtour_prot_w ) static INTERRUPT_GEN( iqblock_interrupt ) { - if (cpu_getiloops() & 1) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); /* ???? */ + if (cpu_getiloops(device) & 1) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); /* ???? */ else - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); /* ???? */ + cpu_set_input_line(device, 0, ASSERT_LINE); /* ???? */ } static WRITE8_HANDLER( iqblock_irqack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static READ8_HANDLER( extrarom_r ) diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c index a4149564e28..e86e91184e9 100644 --- a/src/mame/drivers/irobot.c +++ b/src/mame/drivers/irobot.c @@ -102,13 +102,13 @@ static WRITE8_HANDLER( irobot_nvram_w ) static WRITE8_HANDLER( irobot_clearirq_w ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE ,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE ,CLEAR_LINE); } static WRITE8_HANDLER( irobot_clearfirq_w ) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE ,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE ,CLEAR_LINE); } diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c index 4ccdee04586..11e50bff680 100644 --- a/src/mame/drivers/ironhors.c +++ b/src/mame/drivers/ironhors.c @@ -28,21 +28,21 @@ extern VIDEO_UPDATE( ironhors ); static INTERRUPT_GEN( ironhors_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (*ironhors_interrupt_enable & 4) - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { if (*ironhors_interrupt_enable & 1) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } static WRITE8_HANDLER( ironhors_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( ironhors_filter_w ) diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c index 65c71ac1bb3..eb6fbc886f3 100644 --- a/src/mame/drivers/istellar.c +++ b/src/mame/drivers/istellar.c @@ -101,7 +101,7 @@ static WRITE8_HANDLER(z80_0_latch2_write) if (z80_2_nmi_enable) { logerror("Executing an NMI on CPU2\n"); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); /* Maybe this is a ASSERT_LINE, CLEAR_LINE combo? */ + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); /* Maybe this is a ASSERT_LINE, CLEAR_LINE combo? */ z80_2_nmi_enable = 0; } } @@ -312,10 +312,10 @@ GFXDECODE_END static INTERRUPT_GEN( vblank_callback_istellar ) { /* Interrupt presumably comes from VBlank */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); /* Interrupt presumably comes from the LDP's status strobe */ - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[2], 0, ASSERT_LINE); } diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index ba007d44529..f0f3f5789ff 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -337,8 +337,8 @@ static UINT32 *tms1_ram, *tms2_ram; static UINT32 *tms1_boot; static UINT8 tms_spinning[2]; -#define START_TMS_SPINNING(n) do { cpu_spinuntil_trigger(7351 + n); tms_spinning[n] = 1; } while (0) -#define STOP_TMS_SPINNING(machine, n) do { cpu_trigger(machine, 7351 + n); tms_spinning[n] = 0; } while (0) +#define START_TMS_SPINNING(n) do { cpu_spinuntil_trigger(machine->activecpu, 7351 + n); tms_spinning[n] = 1; } while (0) +#define STOP_TMS_SPINNING(machine, n) do { cpuexec_trigger(machine, 7351 + n); tms_spinning[n] = 0; } while (0) @@ -373,13 +373,13 @@ void itech32_update_interrupts(running_machine *machine, int vint, int xint, int if (qint != -1) qint_state = qint; if (is_drivedge) { - cpunum_set_input_line(machine, 0, 3, vint_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, xint_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, qint_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, vint_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, xint_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, qint_state ? ASSERT_LINE : CLEAR_LINE); } else { - cpunum_set_input_line(machine, 0, 1, vint_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, xint_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, qint_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, vint_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, xint_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, qint_state ? ASSERT_LINE : CLEAR_LINE); } } @@ -387,8 +387,8 @@ void itech32_update_interrupts(running_machine *machine, int vint, int xint, int static INTERRUPT_GEN( generate_int1 ) { /* signal the NMI */ - itech32_update_interrupts(machine, 1, -1, -1); - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", video_screen_get_vpos(machine->primary_screen)); + itech32_update_interrupts(device->machine, 1, -1, -1); + if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", video_screen_get_vpos(device->machine->primary_screen)); } @@ -424,8 +424,8 @@ static MACHINE_RESET( drivedge ) { MACHINE_RESET_CALL(itech32); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); STOP_TMS_SPINNING(machine, 0); STOP_TMS_SPINNING(machine, 1); } @@ -616,7 +616,7 @@ static TIMER_CALLBACK( delayed_sound_data_w ) { sound_data = param; sound_int_state = 1; - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, ASSERT_LINE); } @@ -642,7 +642,7 @@ static WRITE32_HANDLER( sound_data32_w ) static READ8_HANDLER( sound_data_r ) { - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, CLEAR_LINE); sound_int_state = 0; return sound_data; } @@ -713,9 +713,9 @@ static WRITE8_HANDLER( pia_portb_out ) static void via_irq(running_machine *machine, int state) { if (state) - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, CLEAR_LINE); } @@ -748,7 +748,7 @@ static const struct via6522_interface drivedge_via_interface = static WRITE8_HANDLER( firq_clear_w ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, CLEAR_LINE); } @@ -761,8 +761,8 @@ static WRITE8_HANDLER( firq_clear_w ) static WRITE32_HANDLER( tms_reset_assert_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); } @@ -771,12 +771,12 @@ static WRITE32_HANDLER( tms_reset_clear_w ) /* kludge to prevent crash on first boot */ if ((tms1_ram[0] & 0xff000000) == 0) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); STOP_TMS_SPINNING(machine, 0); } if ((tms2_ram[0] & 0xff000000) == 0) { - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, CLEAR_LINE); STOP_TMS_SPINNING(machine, 1); } } @@ -788,7 +788,7 @@ static WRITE32_HANDLER( tms1_68k_ram_w ) if (offset == 0) COMBINE_DATA(tms1_boot); if (offset == 0x382 && tms_spinning[0]) STOP_TMS_SPINNING(machine, 0); if (!tms_spinning[0]) - cpu_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); } @@ -797,21 +797,21 @@ static WRITE32_HANDLER( tms2_68k_ram_w ) COMBINE_DATA(&tms2_ram[offset]); if (offset == 0x382 && tms_spinning[1]) STOP_TMS_SPINNING(machine, 1); if (!tms_spinning[1]) - cpu_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); } static WRITE32_HANDLER( tms1_trigger_w ) { COMBINE_DATA(&tms1_ram[offset]); - cpu_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); } static WRITE32_HANDLER( tms2_trigger_w ) { COMBINE_DATA(&tms2_ram[offset]); - cpu_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, ATTOTIME_IN_HZ(CPU020_CLOCK/256), ATTOTIME_IN_USEC(20)); } diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index 43b10cad76f..8c2494fe144 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -591,16 +591,16 @@ void itech8_update_interrupts(running_machine *machine, int periodic, int tms340 if (machine->config->cpu[0].type == CPU_M6809 || machine->config->cpu[0].type == CPU_HD6309) { /* just modify lines that have changed */ - if (periodic != -1) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, periodic ? ASSERT_LINE : CLEAR_LINE); - if (tms34061 != -1) cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, tms34061 ? ASSERT_LINE : CLEAR_LINE); - if (blitter != -1) cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, blitter ? ASSERT_LINE : CLEAR_LINE); + if (periodic != -1) cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, periodic ? ASSERT_LINE : CLEAR_LINE); + if (tms34061 != -1) cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, tms34061 ? ASSERT_LINE : CLEAR_LINE); + if (blitter != -1) cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, blitter ? ASSERT_LINE : CLEAR_LINE); } /* handle the 68000 case */ else { - cpunum_set_input_line(machine, 0, 2, blitter_int ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, periodic_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, blitter_int ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, periodic_int ? ASSERT_LINE : CLEAR_LINE); } } @@ -621,23 +621,23 @@ static TIMER_CALLBACK( irq_off ) static INTERRUPT_GEN( generate_nmi ) { /* signal the NMI */ - itech8_update_interrupts(machine, 1, -1, -1); + itech8_update_interrupts(device->machine, 1, -1, -1); timer_set(ATTOTIME_IN_USEC(1), NULL, 0, irq_off); - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", video_screen_get_vpos(machine->primary_screen)); + if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", video_screen_get_vpos(device->machine->primary_screen)); } static WRITE8_HANDLER( itech8_nmi_ack_w ) { /* doesn't seem to hold for every game (e.g., hstennis) */ -/* cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE);*/ +/* cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE);*/ } static void generate_sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -668,7 +668,10 @@ static MACHINE_RESET( itech8 ) { /* make sure bank 0 is selected */ if (machine->config->cpu[0].type == CPU_M6809 || machine->config->cpu[0].type == CPU_HD6309) + { memory_set_bankptr(1, &memory_region(machine, "main")[0x4000]); + cpu_reset(machine->cpu[0]); + } /* reset the PIA (if used) */ pia_reset(); @@ -806,7 +809,7 @@ static WRITE8_HANDLER( ym2203_portb_out ) static TIMER_CALLBACK( delayed_sound_data_w ) { sound_data = param; - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, ASSERT_LINE); } @@ -829,7 +832,7 @@ static WRITE8_HANDLER( gtg2_sound_data_w ) static READ8_HANDLER( sound_data_r ) { - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, CLEAR_LINE); return sound_data; } @@ -844,9 +847,9 @@ static READ8_HANDLER( sound_data_r ) static void via_irq(running_machine *machine, int state) { if (state) - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, CLEAR_LINE); } diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c index 6e615fcdf27..1fe479eb4e3 100644 --- a/src/mame/drivers/itgambl2.c +++ b/src/mame/drivers/itgambl2.c @@ -172,7 +172,7 @@ GFXDECODE_END static MACHINE_RESET( itgambl2 ) { /* stop the CPU, we have no code for it anyway */ - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c index fab0e73931a..30a2380111a 100644 --- a/src/mame/drivers/itgambl3.c +++ b/src/mame/drivers/itgambl3.c @@ -161,7 +161,7 @@ GFXDECODE_END static MACHINE_RESET( itgambl3 ) { /* stop the CPU, we have no code for it anyway */ - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } diff --git a/src/mame/drivers/itgamble.c b/src/mame/drivers/itgamble.c index 429cebaca02..8c809f6d646 100644 --- a/src/mame/drivers/itgamble.c +++ b/src/mame/drivers/itgamble.c @@ -171,7 +171,7 @@ GFXDECODE_END static MACHINE_RESET( itgamble ) { /* stop the CPU, we have no code for it anyway */ - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c index 558a71427c4..463d8cbdf0c 100644 --- a/src/mame/drivers/jack.c +++ b/src/mame/drivers/jack.c @@ -66,14 +66,14 @@ static READ8_HANDLER( timer_r ) { /* wrong! there should be no need for timer_rate, the same function */ /* should work for both games */ - return activecpu_gettotalcycles() / timer_rate; + return cpu_get_total_cycles(machine->activecpu) / timer_rate; } static WRITE8_HANDLER( jack_sh_command_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } @@ -894,12 +894,12 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( joinem_interrupts ) { - if(cpu_getiloops() > 0) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if(cpu_getiloops(device) > 0) + cpu_set_input_line(device, 0, HOLD_LINE); else { - if(!(input_port_read(machine, "IN2") & 0x80)) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if(!(input_port_read(device->machine, "IN2") & 0x80)) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c index a063951116e..41aa79ccd7f 100644 --- a/src/mame/drivers/jackal.c +++ b/src/mame/drivers/jackal.c @@ -291,8 +291,8 @@ static INTERRUPT_GEN( jackal_interrupt ) { if (irq_enable) { - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c index 9ea82f31169..91dd1ff7839 100644 --- a/src/mame/drivers/jackpool.c +++ b/src/mame/drivers/jackpool.c @@ -168,7 +168,7 @@ GFXDECODE_END /* verify */ static INTERRUPT_GEN( jackpool_interrupt ) { - cpunum_set_input_line(machine, 0, cpu_getiloops()+1, HOLD_LINE); /* IRQs 3, 2, and 1 */ + cpu_set_input_line(device, cpu_getiloops(device)+1, HOLD_LINE); /* IRQs 3, 2, and 1 */ } diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c index f0bc9e39f0e..3ce768b3920 100644 --- a/src/mame/drivers/jailbrek.c +++ b/src/mame/drivers/jailbrek.c @@ -67,13 +67,13 @@ static WRITE8_HANDLER( ctrl_w ) static INTERRUPT_GEN( jb_interrupt ) { if (irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static INTERRUPT_GEN( jb_interrupt_nmi ) { if (nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c index 8dd036998ec..8cebab6179c 100644 --- a/src/mame/drivers/jchan.c +++ b/src/mame/drivers/jchan.c @@ -360,16 +360,16 @@ static READ16_HANDLER( jchan_mcu_status_r ) // interrupt generation is NOT understood static INTERRUPT_GEN( jchan_vblank ) { - int i = cpu_getiloops(); + int i = cpu_getiloops(device); switch (i) { case 0: - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); break; case 220: - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); break; } @@ -380,15 +380,15 @@ static INTERRUPT_GEN( jchan_vblank ) { case 0: - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], 1, HOLD_LINE); break; case 100: - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], 2, HOLD_LINE); break; case 220: - cpunum_set_input_line(machine, 1, 3, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], 3, HOLD_LINE); break; } @@ -520,7 +520,7 @@ static WRITE16_HANDLER( main2sub_cmd_w ) //printf("main2sub\n"); COMBINE_DATA(&mainsub_shared_ram[0x03ffe/2]); - cpunum_set_input_line(machine, 1, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 4, HOLD_LINE); } // is this called? @@ -528,7 +528,7 @@ static WRITE16_HANDLER( sub2main_cmd_w ) { //printf("sub2main\n"); COMBINE_DATA(&mainsub_shared_ram[0x0000/2]); - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); } /* ram convert for suprnova (requires 32-bit stuff) */ diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c index 82444bf2b2b..f902dcd642c 100644 --- a/src/mame/drivers/jedi.c +++ b/src/mame/drivers/jedi.c @@ -128,8 +128,8 @@ static TIMER_CALLBACK( generate_interrupt ) int scanline = param; /* IRQ is set by /32V */ - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, (scanline & 32) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 1, M6502_IRQ_LINE, (scanline & 32) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6502_IRQ_LINE, (scanline & 32) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6502_IRQ_LINE, (scanline & 32) ? CLEAR_LINE : ASSERT_LINE); /* set up for the next */ scanline += 32; @@ -141,7 +141,7 @@ static TIMER_CALLBACK( generate_interrupt ) static WRITE8_HANDLER( main_irq_ack_w ) { - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6502_IRQ_LINE, CLEAR_LINE); } diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c index 88c2e48c020..ab09dc6ba04 100644 --- a/src/mame/drivers/jollyjgr.c +++ b/src/mame/drivers/jollyjgr.c @@ -394,7 +394,7 @@ GFXDECODE_END static INTERRUPT_GEN( jollyjgr_interrupt ) { if(nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( jollyjgr ) diff --git a/src/mame/drivers/jpmimpct.c b/src/mame/drivers/jpmimpct.c index eb56e3a3c67..a6552773c5f 100644 --- a/src/mame/drivers/jpmimpct.c +++ b/src/mame/drivers/jpmimpct.c @@ -156,8 +156,8 @@ static struct static void update_irqs(running_machine *machine) { - cpunum_set_input_line(machine, 0, 2, tms_irq ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, duart_1_irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, tms_irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, duart_1_irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c index 0fec8f8dd11..77d26057629 100644 --- a/src/mame/drivers/jrpacman.c +++ b/src/mame/drivers/jrpacman.c @@ -105,8 +105,8 @@ static WRITE8_HANDLER( jrpacman_interrupt_vector_w ) { - cpunum_set_input_line_vector(0, 0, data); - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line_vector(machine->cpu[0], 0, data); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c index 0679af321ce..024c908f93c 100644 --- a/src/mame/drivers/junofrst.c +++ b/src/mame/drivers/junofrst.c @@ -105,7 +105,7 @@ static READ8_HANDLER( junofrst_portA_r ) /* divided by 1024 to get this timer */ /* (divide by (1024/2), and not 1024, because the CPU cycle counter is */ /* incremented every other state change of the clock) */ - timer = (activecpu_gettotalcycles() / (1024/2)) & 0x0f; + timer = (cpu_get_total_cycles(machine->activecpu) / (1024/2)) & 0x0f; /* low three bits come from the 8039 */ @@ -140,7 +140,7 @@ static WRITE8_HANDLER( junofrst_sh_irqtrigger_w ) if (last == 0 && data == 1) { /* setting bit 0 low then high triggers IRQ on the sound CPU */ - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } last = data; @@ -149,14 +149,14 @@ static WRITE8_HANDLER( junofrst_sh_irqtrigger_w ) static WRITE8_HANDLER( junofrst_i8039_irq_w ) { - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], 0, ASSERT_LINE); } static WRITE8_HANDLER( i8039_irqen_and_status_w ) { if ((data & 0x80) == 0) - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); i8039_status = (data & 0x70) >> 4; } diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c index 90da92abd3e..bb5adda2ab7 100644 --- a/src/mame/drivers/kaneko16.c +++ b/src/mame/drivers/kaneko16.c @@ -268,7 +268,7 @@ static WRITE16_HANDLER( kaneko16_soundlatch_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine, 0, (data & 0xff00) >> 8 ); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -1638,11 +1638,11 @@ GFXDECODE_END #define KANEKO16_INTERRUPTS_NUM 3 static INTERRUPT_GEN( kaneko16_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 2: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 0: cpunum_set_input_line(machine, 0, 5, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 5, HOLD_LINE); break; } } @@ -1990,11 +1990,11 @@ MACHINE_DRIVER_END #define SHOGWARR_INTERRUPTS_NUM 3 static INTERRUPT_GEN( shogwarr_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 2: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; -// case 0: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 2, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 3, HOLD_LINE); break; +// case 0: cpu_set_input_line(device, 4, HOLD_LINE); break; } } diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c index 1db5d0b679a..45020ce4071 100644 --- a/src/mame/drivers/kangaroo.c +++ b/src/mame/drivers/kangaroo.c @@ -204,7 +204,7 @@ static MACHINE_RESET( kangaroo ) /* the copy protection. */ /* Anyway, what I do here is just immediately generate the NMI, so the game */ /* properly starts. */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c index 8b9f0c18298..9757a0ff3b9 100644 --- a/src/mame/drivers/karnov.c +++ b/src/mame/drivers/karnov.c @@ -86,7 +86,7 @@ static void karnov_i8751_w(running_machine *machine, int data) // if (!i8751_return && data!=0x300) logerror("CPU %04x - Unknown Write %02x intel\n",cpu_get_pc(machine->activecpu),data); - cpunum_set_input_line(machine, 0,6,HOLD_LINE); /* Signal main cpu task is complete */ + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); /* Signal main cpu task is complete */ i8751_needs_ack=1; } @@ -140,7 +140,7 @@ static void wndrplnt_i8751_w(running_machine *machine, int data) if (data==0x501) i8751_return=0x6bf8; if (data==0x500) i8751_return=0x4e75; - cpunum_set_input_line(machine, 0,6,HOLD_LINE); /* Signal main cpu task is complete */ + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); /* Signal main cpu task is complete */ i8751_needs_ack=1; } @@ -250,7 +250,7 @@ static void chelnov_i8751_w(running_machine *machine, int data) // logerror("CPU %04x - Unknown Write %02x intel\n",cpu_get_pc(machine->activecpu),data); - cpunum_set_input_line(machine, 0,6,HOLD_LINE); /* Signal main cpu task is complete */ + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); /* Signal main cpu task is complete */ i8751_needs_ack=1; } @@ -261,14 +261,14 @@ static WRITE16_HANDLER( karnov_control_w ) /* Mnemonics filled in from the schematics, brackets are my comments */ switch (offset<<1) { case 0: /* SECLR (Interrupt ack for Level 6 i8751 interrupt) */ - cpunum_set_input_line(machine, 0,6,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],6,CLEAR_LINE); if (i8751_needs_ack) { /* If a command and coin insert happen at once, then the i8751 will queue the coin command until the previous command is ACK'd */ if (i8751_coin_pending) { i8751_return=i8751_coin_pending; - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); i8751_coin_pending=0; } else if (i8751_command_queue) { /* Pending control command - just write it back as SECREQ */ @@ -283,7 +283,7 @@ static WRITE16_HANDLER( karnov_control_w ) case 2: /* SONREQ (Sound CPU byte) */ soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line (machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line (machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); break; case 4: /* DM (DMA to buffer spriteram) */ @@ -314,7 +314,7 @@ static WRITE16_HANDLER( karnov_control_w ) break; case 0xe: /* INTCLR (Interrupt ack for Level 7 vbl interrupt) */ - cpunum_set_input_line(machine, 0,7,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],7,CLEAR_LINE); break; } } @@ -672,25 +672,25 @@ static INTERRUPT_GEN( karnov_interrupt ) static int latch; /* Coin input to the i8751 generates an interrupt to the main cpu */ - if (input_port_read(machine, "FAKE") == coin_mask) latch=1; - if (input_port_read(machine, "FAKE") != coin_mask && latch) { + if (input_port_read(device->machine, "FAKE") == coin_mask) latch=1; + if (input_port_read(device->machine, "FAKE") != coin_mask && latch) { if (i8751_needs_ack) { /* i8751 is busy - queue the command */ - i8751_coin_pending=input_port_read(machine, "FAKE") | 0x8000; + i8751_coin_pending=input_port_read(device->machine, "FAKE") | 0x8000; } else { - i8751_return=input_port_read(machine, "FAKE") | 0x8000; - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + i8751_return=input_port_read(device->machine, "FAKE") | 0x8000; + cpu_set_input_line(device,6,HOLD_LINE); i8751_needs_ack=1; } latch=0; } - cpunum_set_input_line(machine, 0,7,HOLD_LINE); /* VBL */ + cpu_set_input_line(device,7,HOLD_LINE); /* VBL */ } static void sound_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); /* IRQ */ + cpu_set_input_line(machine->cpu[1],0,linestate); /* IRQ */ } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c index e052f638e54..d752fb9e4e5 100644 --- a/src/mame/drivers/kchamp.c +++ b/src/mame/drivers/kchamp.c @@ -118,7 +118,7 @@ static WRITE8_HANDLER( control_w ) { static WRITE8_HANDLER( sound_reset_w ) { if ( !( data & 1 ) ) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } static WRITE8_HANDLER( sound_control_w ) { @@ -128,7 +128,7 @@ static WRITE8_HANDLER( sound_control_w ) { static WRITE8_HANDLER( sound_command_w ) { soundlatch_w( machine, 0, data ); - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); } static int msm_data = 0; @@ -192,7 +192,7 @@ static ADDRESS_MAP_START( kc_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_END static READ8_HANDLER( sound_reset_r ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); return 0; } @@ -377,7 +377,7 @@ GFXDECODE_END static INTERRUPT_GEN( kc_interrupt ) { if ( nmi_enable ) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static void msmint( running_machine *machine, int data ) { @@ -393,7 +393,7 @@ static void msmint( running_machine *machine, int data ) { if ( !( counter ^= 1 ) ) { if ( sound_nmi_enable ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } } } @@ -411,7 +411,7 @@ static const msm5205_interface msm_interface = static INTERRUPT_GEN( sound_int ) { if ( sound_nmi_enable ) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c index f63733d8bed..ec141b260bd 100644 --- a/src/mame/drivers/kickgoal.c +++ b/src/mame/drivers/kickgoal.c @@ -305,7 +305,7 @@ static int m6295_bank; static UINT16 m6295_key_delay; static INTERRUPT_GEN( kickgoal_interrupt ) { - if ((okim6295_status_0_r(machine,0) & 0x08) == 0) + if ((okim6295_status_0_r(device->machine,0) & 0x08) == 0) { switch(kickgoal_melody_loop) { @@ -334,8 +334,8 @@ static INTERRUPT_GEN( kickgoal_interrupt ) if (kickgoal_melody_loop) { // logerror("Changing to sample %02x\n",kickgoal_melody_loop); - okim6295_data_0_w(machine,0,((0x80 | kickgoal_melody_loop) & 0xff)); - okim6295_data_0_w(machine,0,0x81); + okim6295_data_0_w(device->machine,0,((0x80 | kickgoal_melody_loop) & 0xff)); + okim6295_data_0_w(device->machine,0,0x81); } } if ( input_code_pressed_once(KEYCODE_PGUP) ) @@ -412,9 +412,9 @@ static INTERRUPT_GEN( kickgoal_interrupt ) { if (m6295_key_delay >= (0x80 * oki_time_base)) { - okim6295_data_0_w(machine,0,0x78); - okim6295_data_0_w(machine,0,(0x80 | m6295_comm)); - okim6295_data_0_w(machine,0,0x11); + okim6295_data_0_w(device->machine,0,0x78); + okim6295_data_0_w(device->machine,0,(0x80 | m6295_comm)); + okim6295_data_0_w(device->machine,0,0x11); popmessage("Playing sound %02x on Bank %02x",m6295_comm,m6295_bank); diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c index 6685339742f..d5c3e50f2a0 100644 --- a/src/mame/drivers/kingobox.c +++ b/src/mame/drivers/kingobox.c @@ -60,11 +60,11 @@ static WRITE8_HANDLER( sprite_shared_w ) { } static WRITE8_HANDLER( video_interrupt_w ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); } static WRITE8_HANDLER( sprite_interrupt_w ) { - cpunum_set_input_line_and_vector(machine, 2, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[2], 0, HOLD_LINE, 0xff ); } static WRITE8_HANDLER( scroll_interrupt_w ) { @@ -74,7 +74,7 @@ static WRITE8_HANDLER( scroll_interrupt_w ) { static WRITE8_HANDLER( sound_command_w ) { soundlatch_w( machine, 0, data ); - cpunum_set_input_line_and_vector(machine, 3, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[3], 0, HOLD_LINE, 0xff ); } @@ -536,7 +536,7 @@ static const ay8910_interface ay8910_config = static INTERRUPT_GEN( kingofb_interrupt ) { if ( kingofb_nmi_enable ) - cpunum_set_input_line(machine, cpunum_get_active(), INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( kingofb ) diff --git a/src/mame/drivers/kingpin.c b/src/mame/drivers/kingpin.c index eeb339c5215..3af707e93f7 100644 --- a/src/mame/drivers/kingpin.c +++ b/src/mame/drivers/kingpin.c @@ -121,12 +121,12 @@ ADDRESS_MAP_END static INTERRUPT_GEN( kingpin_video_interrupt ) { - TMS9928A_interrupt(machine); + TMS9928A_interrupt(device->machine); } static void vdp_interrupt (running_machine *machine, int state) { - cpunum_set_input_line(machine, 0,0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0],0, HOLD_LINE); } static const TMS9928a_interface tms9928a_interface = diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c index 3266c175147..4579beaa00a 100644 --- a/src/mame/drivers/kinst.c +++ b/src/mame/drivers/kinst.c @@ -268,20 +268,20 @@ static VIDEO_UPDATE( kinst ) static TIMER_CALLBACK( irq0_stop ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( irq0_start ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL, 0, irq0_stop); } static void ide_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 0, 1, state); + cpu_set_input_line(device->machine->cpu[0], 1, state); } @@ -350,7 +350,7 @@ static READ32_HANDLER( kinst_control_r ) case 4: /* $a0 */ result = input_port_read(machine, portnames[offset]); if (cpu_get_pc(machine->activecpu) == 0x802d428) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); break; } diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c index 9b04d8aff40..f9da92b969f 100644 --- a/src/mame/drivers/klax.c +++ b/src/mame/drivers/klax.c @@ -32,7 +32,7 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_video_int_state || atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_video_int_state || atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -40,7 +40,7 @@ static void scanline_update(const device_config *screen, int scanline) { /* generate 32V signals */ if ((scanline & 32) == 0 && !(input_port_read(screen->machine, "P1") & 0x800)) - atarigen_scanline_int_gen(screen->machine, 0); + atarigen_scanline_int_gen(screen->machine->cpu[0]); } diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c index 50b30610a10..b35f8b3d6ca 100644 --- a/src/mame/drivers/kncljoe.c +++ b/src/mame/drivers/kncljoe.c @@ -48,7 +48,7 @@ static WRITE8_HANDLER( sound_cmd_w ) if ((data & 0x80) == 0) soundlatch_w(machine, 0, data & 0x7f); else - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } @@ -111,7 +111,7 @@ static READ8_HANDLER( m6803_port2_r ) static WRITE8_HANDLER( sound_irq_ack_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static WRITE8_HANDLER(unused_w) @@ -256,7 +256,7 @@ static const ay8910_interface ay8910_config = static INTERRUPT_GEN (sound_nmi) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( kncljoe ) diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c index ea5f1491d57..aa2a15f9b52 100644 --- a/src/mame/drivers/koftball.c +++ b/src/mame/drivers/koftball.c @@ -182,7 +182,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( bmc_interrupt ) { static const int bmcints[]={2,3,6}; - cpunum_set_input_line(machine, 0, bmcints[cpu_getiloops()], HOLD_LINE); + cpu_set_input_line(device, bmcints[cpu_getiloops(device)], HOLD_LINE); } static const gfx_layout tilelayout = diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c index 0dc299021e5..9d2439cac77 100644 --- a/src/mame/drivers/konamigq.c +++ b/src/mame/drivers/konamigq.c @@ -66,7 +66,7 @@ static WRITE32_HANDLER( soundr3k_w ) sndto000[ ( offset << 1 ) + 1 ] = data >> 16; if( offset == 3 ) { - cpunum_set_input_line(machine, 1, 1, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 1, HOLD_LINE ); } } if( ACCESSING_BITS_0_15 ) @@ -140,7 +140,7 @@ static WRITE32_HANDLER( eeprom_w ) eeprom_write_bit( ( data & 0x01 ) ? 1 : 0 ); eeprom_set_clock_line( ( data & 0x04 ) ? ASSERT_LINE : CLEAR_LINE ); eeprom_set_cs_line( ( data & 0x02 ) ? CLEAR_LINE : ASSERT_LINE ); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ( data & 0x40 ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ( data & 0x40 ) ? CLEAR_LINE : ASSERT_LINE ); } /* PCM RAM */ diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index 0988b44eabe..b7fad0d97c7 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -440,7 +440,7 @@ static WRITE32_HANDLER( esc_w ) if (konamigx_wrport1_1 & 0x10) { gx_rdport1_3 &= ~8; - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); } } else @@ -552,13 +552,13 @@ static WRITE32_HANDLER( control_w ) { // enable 68k // clear the halt condition and reset the 68000 - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } else { // disable 68k - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } K053246_set_OBJCHA_line((data&0x100000) ? ASSERT_LINE : CLEAR_LINE); @@ -590,7 +590,7 @@ static READ32_HANDLER(waitskip_r) if (cpu_get_pc(machine->activecpu) == waitskip.pc && (data & mem_mask) == (waitskip.data & mem_mask)) { - cpu_spinuntil_trigger(resume_trigger); + cpu_spinuntil_trigger(machine->activecpu, resume_trigger); suspension_active = 1; } @@ -621,14 +621,14 @@ static WRITE32_HANDLER( ccu_w ) // vblank interrupt ACK if (ACCESSING_BITS_24_31) { - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); gx_syncen |= 0x20; } // hblank interrupt ACK if (ACCESSING_BITS_8_15) { - cpunum_set_input_line(machine, 0, 2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, CLEAR_LINE); gx_syncen |= 0x40; } } @@ -646,7 +646,7 @@ static WRITE32_HANDLER( ccu_w ) static TIMER_CALLBACK( dmaend_callback ) { // foul-proof (CPU0 could be deactivated while we wait) - if (resume_trigger && suspension_active) { suspension_active = 0; cpu_trigger(machine, resume_trigger); } + if (resume_trigger && suspension_active) { suspension_active = 0; cpuexec_trigger(machine, resume_trigger); } // DMA busy flag must be cleared before triggering IRQ 3 gx_rdport1_3 &= ~2; @@ -658,7 +658,7 @@ static TIMER_CALLBACK( dmaend_callback ) // lower OBJINT-REQ flag and trigger interrupt gx_rdport1_3 &= ~0x80; - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); } } @@ -682,7 +682,7 @@ static void dmastart_callback(int data) static INTERRUPT_GEN(konamigx_vbinterrupt) { // lift idle suspension - if (resume_trigger && suspension_active) { suspension_active = 0; cpu_trigger(machine, resume_trigger); } + if (resume_trigger && suspension_active) { suspension_active = 0; cpuexec_trigger(device->machine, resume_trigger); } // IRQ 1 is the main 60hz vblank interrupt if (gx_syncen & 0x20) @@ -692,7 +692,7 @@ static INTERRUPT_GEN(konamigx_vbinterrupt) if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1)) { gx_syncen &= ~1; - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } } @@ -702,7 +702,7 @@ static INTERRUPT_GEN(konamigx_vbinterrupt) static INTERRUPT_GEN(konamigx_vbinterrupt_type4) { // lift idle suspension - if (resume_trigger && suspension_active) { suspension_active = 0; cpu_trigger(machine, resume_trigger); } + if (resume_trigger && suspension_active) { suspension_active = 0; cpuexec_trigger(device->machine, resume_trigger); } // IRQ 1 is the main 60hz vblank interrupt // the gx_syncen & 0x20 test doesn't work on type 3 or 4 ROM boards, likely because the ROM board @@ -714,7 +714,7 @@ static INTERRUPT_GEN(konamigx_vbinterrupt_type4) if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1)) { gx_syncen &= ~1; - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } } @@ -723,9 +723,9 @@ static INTERRUPT_GEN(konamigx_vbinterrupt_type4) static INTERRUPT_GEN(konamigx_hbinterrupt) { - if (!cpu_getiloops()) + if (!cpu_getiloops(device)) { - konamigx_vbinterrupt_type4(machine, cpunum); + konamigx_vbinterrupt_type4(device); } else // hblank { @@ -737,7 +737,7 @@ static INTERRUPT_GEN(konamigx_hbinterrupt) if ((konamigx_wrport1_1 & 0x82) == 0x82 || (gx_syncen & 2)) { gx_syncen &= ~2; - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } } } @@ -816,7 +816,7 @@ INLINE void write_snd_020(running_machine *machine, int reg, int val) if (reg == 7) { - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 1, HOLD_LINE); } } @@ -1087,7 +1087,7 @@ static WRITE32_HANDLER( type4_prot_w ) if (konamigx_wrport1_1 & 0x10) { gx_rdport1_3 &= ~8; - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); } // don't accidentally do a phony command @@ -3259,7 +3259,7 @@ static MACHINE_RESET(konamigx) tms57002_init(); // sound CPU initially disabled? - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); if (!strcmp(machine->gamedrv->name, "tkmmpzdm")) { diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c index c4989009585..622c7187e8e 100644 --- a/src/mame/drivers/konamim2.c +++ b/src/mame/drivers/konamim2.c @@ -318,7 +318,7 @@ static WRITE64_HANDLER(unk4_w) if (data & 0x800000) { mame_printf_debug("CPU%d: CPU1 IRQ at %08X\n", cpunum_get_active(), cpu_get_pc(machine->activecpu)); - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ0, ASSERT_LINE); } unk20004 = (UINT32)(data); @@ -413,7 +413,7 @@ static WRITE64_HANDLER(reset_w) { if (data & U64(0x100000000)) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); unk3 = 0; } } @@ -1127,7 +1127,7 @@ static INTERRUPT_GEN(m2) irq_active |= 0x8; }*/ - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE); } static MACHINE_DRIVER_START( m2 ) diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c index 07756e04a6c..3978eaa5402 100644 --- a/src/mame/drivers/kopunch.c +++ b/src/mame/drivers/kopunch.c @@ -16,21 +16,21 @@ extern VIDEO_UPDATE( kopunch ); static INTERRUPT_GEN( kopunch_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - if (~input_port_read(machine, "SYSTEM") & 0x80) /* coin 1 */ + if (~input_port_read(device->machine, "SYSTEM") & 0x80) /* coin 1 */ { - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xf7); /* RST 30h */ + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xf7); /* RST 30h */ return; } - else if (~input_port_read(machine, "SYSTEM") & 0x08) /* coin 2 */ + else if (~input_port_read(device->machine, "SYSTEM") & 0x08) /* coin 2 */ { - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xef); /* RST 28h */ + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xef); /* RST 28h */ return; } } - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xff); /* RST 38h */ + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xff); /* RST 38h */ } static READ8_HANDLER( kopunch_in_r ) diff --git a/src/mame/drivers/ksys573.c b/src/mame/drivers/ksys573.c index 7eb48837275..59d82d1d572 100644 --- a/src/mame/drivers/ksys573.c +++ b/src/mame/drivers/ksys573.c @@ -1129,7 +1129,7 @@ static UINT64 m_p_n_root_start[ 3 ]; static UINT64 psxcpu_gettotalcycles( void ) { /* TODO: should return the start of the current tick. */ - return cpunum_gettotalcycles(0) * 2; + return cpu_get_total_cycles(Machine->cpu[0]) * 2; } static int root_divider( int n_counter ) @@ -1569,9 +1569,9 @@ static void update_mode( running_machine *machine ) static INTERRUPT_GEN( sys573_vblank ) { - update_mode(machine); + update_mode(device->machine); - if( strcmp( machine->gamedrv->name, "ddr2ml" ) == 0 ) + if( strcmp( device->machine->gamedrv->name, "ddr2ml" ) == 0 ) { /* patch out security-plate error */ @@ -1583,7 +1583,7 @@ static INTERRUPT_GEN( sys573_vblank ) } } - psx_vblank(machine, cpunum); + psx_vblank(device); } /* diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c index 6aa0c93a844..07777e4dcb2 100644 --- a/src/mame/drivers/kyugo.c +++ b/src/mame/drivers/kyugo.c @@ -46,7 +46,7 @@ MACHINE_RESET( kyugo ) WRITE8_HANDLER( kyugo_sub_cpu_control_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c index 01495248a74..1e2e92b928b 100644 --- a/src/mame/drivers/labyrunr.c +++ b/src/mame/drivers/labyrunr.c @@ -25,15 +25,15 @@ VIDEO_UPDATE( labyrunr ); static INTERRUPT_GEN( labyrunr_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if (K007121_ctrlram[0][0x07] & 0x02) - cpunum_set_input_line(machine, 0, HD6309_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { if (K007121_ctrlram[0][0x07] & 0x01) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c index 957b9a7f3e0..c15b6fdfe9d 100644 --- a/src/mame/drivers/ladybug.c +++ b/src/mame/drivers/ladybug.c @@ -149,14 +149,14 @@ ADDRESS_MAP_END static INPUT_CHANGED( coin1_inserted ) { /* left coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); } static INPUT_CHANGED( coin2_inserted ) { /* right coin insertion causes an IRQ */ if (newval) - cpunum_set_input_line(field->port->machine, 0, 0, HOLD_LINE); + cpu_set_input_line(field->port->machine->cpu[0], 0, HOLD_LINE); } diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c index ab479468eea..295d428369c 100644 --- a/src/mame/drivers/ladyfrog.c +++ b/src/mame/drivers/ladyfrog.c @@ -86,12 +86,12 @@ static WRITE8_HANDLER( to_main_w ) static WRITE8_HANDLER( sound_cpu_reset_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -111,7 +111,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c index 6f96bceac57..b81b2c74fe4 100644 --- a/src/mame/drivers/laserbas.c +++ b/src/mame/drivers/laserbas.c @@ -121,10 +121,10 @@ INPUT_PORTS_END static INTERRUPT_GEN( laserbas_interrupt ) { - if(video_screen_get_vblank(machine->primary_screen)) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if(video_screen_get_vblank(device->machine->primary_screen)) + cpu_set_input_line(device, 0, HOLD_LINE); else - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( laserbas ) diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c index d12723b37b5..1919f58bdea 100644 --- a/src/mame/drivers/laserbat.c +++ b/src/mame/drivers/laserbat.c @@ -594,8 +594,8 @@ static const sn76477_interface laserbat_sn76477_interface = /* Cat'N Mouse sound ***********************************/ -static void zaccaria_irq0a(running_machine *machine, int state) { cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); } -static void zaccaria_irq0b(running_machine *machine, int state) { cpunum_set_input_line(machine, 1,0,state ? ASSERT_LINE : CLEAR_LINE); } +static void zaccaria_irq0a(running_machine *machine, int state) { cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); } +static void zaccaria_irq0b(running_machine *machine, int state) { cpu_set_input_line(machine->cpu[1],0,state ? ASSERT_LINE : CLEAR_LINE); } static int active_8910,port0a; @@ -681,14 +681,14 @@ static MACHINE_RESET( catnmous ) static INTERRUPT_GEN( laserbat_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0,0,PULSE_LINE,0x0a); + cpu_set_input_line_and_vector(device,0,PULSE_LINE,0x0a); } static INTERRUPT_GEN( zaccaria_cb1_toggle ) { static int toggle; - pia_0_cb1_w(machine,0,toggle & 1); + pia_0_cb1_w(device->machine,0,toggle & 1); toggle ^= 1; } diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c index e27593c78f6..fe30f0f4354 100644 --- a/src/mame/drivers/lasso.c +++ b/src/mame/drivers/lasso.c @@ -38,7 +38,7 @@ DIP locations verified for: static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } @@ -50,13 +50,13 @@ static UINT8 *lasso_chip_data; static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1, 0, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], 0, PULSE_LINE); } static WRITE8_HANDLER( pinbo_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ8_HANDLER( sound_status_r ) diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c index 8e439cf6e0a..fbfcef084d2 100644 --- a/src/mame/drivers/lastduel.c +++ b/src/mame/drivers/lastduel.c @@ -234,7 +234,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = @@ -249,18 +249,18 @@ static const ym2203_interface ym2203_config = static INTERRUPT_GEN( lastduel_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); /* VBL */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 2, HOLD_LINE); /* VBL */ else - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); /* Controls */ + cpu_set_input_line(device, 4, HOLD_LINE); /* Controls */ } static INTERRUPT_GEN( madgear_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); /* VBL */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 5, HOLD_LINE); /* VBL */ else - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); /* Controls */ + cpu_set_input_line(device, 6, HOLD_LINE); /* Controls */ } static MACHINE_DRIVER_START( lastduel ) diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c index 9ddd61af77c..ff4d191a892 100644 --- a/src/mame/drivers/lastfght.c +++ b/src/mame/drivers/lastfght.c @@ -449,10 +449,10 @@ INPUT_PORTS_END static INTERRUPT_GEN( unknown_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + cpu_set_input_line(device, 0, PULSE_LINE); break; default: h8_3002_InterruptRequest(24); diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c index a68bcedf0e8..b0dfdaaeccd 100644 --- a/src/mame/drivers/lazercmd.c +++ b/src/mame/drivers/lazercmd.c @@ -249,7 +249,7 @@ static INTERRUPT_GEN( lazercmd_timer ) if( ++timer_count >= 64*128 ) { timer_count = 0; sense_state ^= 1; - cpunum_set_input_line(machine, 0, 1, (sense_state) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(device, 1, (sense_state) ? ASSERT_LINE : CLEAR_LINE ); } } diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c index c240ca3ec8a..0433e6486a0 100644 --- a/src/mame/drivers/lemmings.c +++ b/src/mame/drivers/lemmings.c @@ -74,12 +74,12 @@ static WRITE16_HANDLER( lemmings_palette_24bit_w ) static WRITE16_HANDLER( lemmings_sound_w ) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,1,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],1,HOLD_LINE); } static WRITE8_HANDLER( lemmings_sound_ack_w ) { - cpunum_set_input_line(machine, 1,1,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],1,CLEAR_LINE); } /******************************************************************************/ @@ -256,7 +256,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,0,state); + cpu_set_input_line(machine->cpu[1],0,state); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index b8b4bc024f6..85c51fc8707 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -249,7 +249,7 @@ static WRITE8_HANDLER( control2_w ) static INTERRUPT_GEN(lethalen_interrupt) { - if (K056832_is_IRQ_enabled(0)) cpunum_set_input_line(machine, 0, HD6309_IRQ_LINE, HOLD_LINE); + if (K056832_is_IRQ_enabled(0)) cpu_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( sound_cmd_w ) @@ -259,7 +259,7 @@ static WRITE8_HANDLER( sound_cmd_w ) static WRITE8_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ8_HANDLER( sound_status_r ) @@ -269,7 +269,7 @@ static READ8_HANDLER( sound_status_r ) static void sound_nmi(running_machine *machine) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( le_bankswitch_w ) diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c index e45b86bf8c3..b7bad5b9acc 100644 --- a/src/mame/drivers/lgp.c +++ b/src/mame/drivers/lgp.c @@ -316,16 +316,16 @@ GFXDECODE_END static TIMER_CALLBACK( irq_stop ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( vblank_callback_lgp ) { // NMI - //cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + //cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); // IRQ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL, 0, irq_stop); } diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c index f60f876e4bb..0262132fd2d 100644 --- a/src/mame/drivers/liberate.c +++ b/src/mame/drivers/liberate.c @@ -494,10 +494,10 @@ GFXDECODE_END static INTERRUPT_GEN( deco16_interrupt ) { static int latch = 0; - int p = ~input_port_read(machine, "IN3"); + int p = ~input_port_read(device->machine, "IN3"); if ((p & 0x43) && !latch) { - cpunum_set_input_line(machine, 0, DECO16_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(device, DECO16_IRQ_LINE, ASSERT_LINE); latch = 1; } else diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c index e74d6763bed..802301b4c76 100644 --- a/src/mame/drivers/limenko.c +++ b/src/mame/drivers/limenko.c @@ -969,7 +969,7 @@ static READ32_HANDLER( dynabomb_speedup_r ) { if(cpu_get_pc(machine->activecpu) == 0xc25b8) { - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return mainram[0xe2784/4]; @@ -979,7 +979,7 @@ static READ32_HANDLER( legendoh_speedup_r ) { if(cpu_get_pc(machine->activecpu) == 0x23e32) { - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return mainram[0x32ab0/4]; @@ -989,7 +989,7 @@ static READ32_HANDLER( sb2003_speedup_r ) { if(cpu_get_pc(machine->activecpu) == 0x26da4) { - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return mainram[0x135800/4]; @@ -999,7 +999,7 @@ static READ32_HANDLER( spotty_speedup_r ) { if(cpu_get_pc(machine->activecpu) == 0x8560) { - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return mainram[0x6626c/4]; diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c index 973c2722584..7f5271c6679 100644 --- a/src/mame/drivers/lkage.c +++ b/src/mame/drivers/lkage.c @@ -89,7 +89,7 @@ static int sound_nmi_enable,pending_nmi; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -109,7 +109,7 @@ static WRITE8_HANDLER( lkage_sh_nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { /* probably wrong but commands may go lost otherwise */ - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } @@ -358,7 +358,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c index 81c57e14f1f..943b1aae513 100644 --- a/src/mame/drivers/lockon.c +++ b/src/mame/drivers/lockon.c @@ -64,9 +64,9 @@ static WRITE16_HANDLER( adrst_w ) lockon_ctrl_reg = data & 0xff; /* Bus mastering for shared access */ - cpunum_set_input_line(machine, GROUND_CPU, INPUT_LINE_HALT, data & 0x04 ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, OBJECT_CPU, INPUT_LINE_HALT, data & 0x20 ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, SOUND_CPU, INPUT_LINE_HALT, data & 0x40 ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[GROUND_CPU], INPUT_LINE_HALT, data & 0x04 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[OBJECT_CPU], INPUT_LINE_HALT, data & 0x20 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[SOUND_CPU], INPUT_LINE_HALT, data & 0x40 ? CLEAR_LINE : ASSERT_LINE); } static READ16_HANDLER( main_gnd_r ) @@ -445,7 +445,7 @@ static WRITE8_HANDLER( sound_vol ) static void ym2203_irq(running_machine *machine, int irq) { - cpunum_set_input_line(machine, SOUND_CPU, 0, irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[SOUND_CPU], 0, irq ? ASSERT_LINE : CLEAR_LINE ); } static WRITE8_HANDLER( ym2203_out_b ) diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c index 7532f563d95..109cca4899c 100644 --- a/src/mame/drivers/looping.c +++ b/src/mame/drivers/looping.c @@ -306,41 +306,41 @@ static MACHINE_START( looping ) static INTERRUPT_GEN( looping_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, 4); + cpu_set_input_line_and_vector(device, 0, ASSERT_LINE, 4); } static WRITE8_HANDLER( level2_irq_set ) { if (!(data & 1)) - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, 4); + cpu_set_input_line_and_vector(machine->cpu[0], 0, ASSERT_LINE, 4); } static WRITE8_HANDLER( main_irq_ack_w ) { if (data == 0) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( looping_souint_clr ) { if (data == 0) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static void looping_spcint(running_machine *machine, int state) { - cpunum_set_input_line_and_vector(machine, 1, 0, state, 6); + cpu_set_input_line_and_vector(machine->cpu[1], 0, state, 6); } static WRITE8_HANDLER( looping_soundlatch_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line_and_vector(machine, 1, 0, ASSERT_LINE, 4); + cpu_set_input_line_and_vector(machine->cpu[1], 0, ASSERT_LINE, 4); } diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index c36779f1791..6094612d05b 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -161,7 +161,7 @@ static WRITE16_HANDLER( lordgun_soundlatch_w ) if (ACCESSING_BITS_0_7) soundlatch_w (machine, 0, (data >> 0) & 0xff); if (ACCESSING_BITS_8_15) soundlatch2_w(machine, 0, (data >> 8) & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( lordgun_map, ADDRESS_SPACE_PROGRAM, 16 ) @@ -423,7 +423,7 @@ static const ppi8255_interface ppi8255_intf[2] = static void soundirq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, 0, state); + cpu_set_input_line(machine->cpu[1], 0, state); } static const ym3812_interface lordgun_ym3812_interface = diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c index 0f9142a8244..38ffc5d25f7 100644 --- a/src/mame/drivers/lsasquad.c +++ b/src/mame/drivers/lsasquad.c @@ -533,7 +533,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static WRITE8_HANDLER( unk ) diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c index 5dbd604e67a..f8e829b0b13 100644 --- a/src/mame/drivers/lucky74.c +++ b/src/mame/drivers/lucky74.c @@ -808,7 +808,7 @@ static INTERRUPT_GEN( nmi_interrupt ) { if ((ym2149_portb & 0x10) == 0) /* ym2149 portB bit 4 trigger the NMI */ { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c index 8d5068d37d8..f734d572173 100644 --- a/src/mame/drivers/lwings.c +++ b/src/mame/drivers/lwings.c @@ -97,8 +97,8 @@ static WRITE8_HANDLER( lwings_bankswitch_w ) static INTERRUPT_GEN( lwings_interrupt ) { - if (interrupt_enable_r(machine, 0)) - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xd7); /* RST 10h */ + if (interrupt_enable_r(device->machine, 0)) + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xd7); /* RST 10h */ } diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c index 0af6dbf8d1e..c037392fbe8 100644 --- a/src/mame/drivers/m10.c +++ b/src/mame/drivers/m10.c @@ -128,7 +128,7 @@ Notes (couriersud) static WRITE8_DEVICE_HANDLER(ic8j1_output_changed) { printf("ic8j1: %d %d\n", data, video_screen_get_vpos(device->machine->primary_screen)); - cpunum_set_input_line(device->machine, 0, 0, !data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, !data ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_DEVICE_HANDLER(ic8j2_output_changed) @@ -469,7 +469,7 @@ static READ8_HANDLER( m10_a700_r ) static READ8_HANDLER( m11_a700_r ) { //printf("rd:%d\n",video_screen_get_vpos(machine->primary_screen)); - //cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + //cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); printf("clear\n"); ttl74123_clear_w(devtag_get_device(machine, TTL74123, "ic8j1"), 0, 0); ttl74123_clear_w(devtag_get_device(machine, TTL74123, "ic8j1"), 0, 1); @@ -485,7 +485,7 @@ static READ8_HANDLER( m11_a700_r ) static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE); } @@ -493,36 +493,36 @@ static TIMER_CALLBACK( interrupt_callback ) { if (param==0) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); timer_set(video_screen_get_time_until_pos(machine->primary_screen, IREMM10_VBSTART+16, 0), NULL, 1,interrupt_callback); } if (param==1) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); timer_set(video_screen_get_time_until_pos(machine->primary_screen, IREMM10_VBSTART+24, 0), NULL, 2,interrupt_callback); } if (param==-1) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } #if 0 static INTERRUPT_GEN( m11_interrupt ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); //timer_set(video_screen_get_time_until_pos(machine->primary_screen, IREMM10_VBEND, 0), NULL, -1,interrupt_callback); } static INTERRUPT_GEN( m10_interrupt ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } #endif static INTERRUPT_GEN( m15_interrupt ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); - timer_set(video_screen_get_time_until_pos(machine->primary_screen, IREMM10_VBSTART+1, 80), NULL, -1,interrupt_callback); + cpu_set_input_line(device, 0, ASSERT_LINE); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, IREMM10_VBSTART+1, 80), NULL, -1,interrupt_callback); } /************************************* diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index baf7a997a26..7def0130de9 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -75,14 +75,14 @@ static TIMER_CALLBACK( m107_scanline_interrupt ) if (scanline == m107_raster_irq_position) { video_screen_update_partial(machine->primary_screen, scanline); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M107_IRQ_2); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M107_IRQ_2); } /* VBLANK interrupt */ else if (scanline == video_screen_get_visible_area(machine->primary_screen)->max_y + 1) { video_screen_update_partial(machine->primary_screen, scanline); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M107_IRQ_0); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M107_IRQ_0); } /* adjust for next scanline */ @@ -119,14 +119,14 @@ static TIMER_CALLBACK( setvector_callback ) } if (irqvector & 0x2) /* YM2151 has precedence */ - cpunum_set_input_line_vector(1,0,0x18); + cpu_set_input_line_vector(machine->cpu[1],0,0x18); else if (irqvector & 0x1) /* V30 */ - cpunum_set_input_line_vector(1,0,0x19); + cpu_set_input_line_vector(machine->cpu[1],0,0x19); if (irqvector == 0) /* no IRQs pending */ - cpunum_set_input_line(machine, 1,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); else /* IRQ pending */ - cpunum_set_input_line(machine, 1,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],0,ASSERT_LINE); } static WRITE16_HANDLER( m107_soundlatch_w ) @@ -156,7 +156,7 @@ static WRITE16_HANDLER( m107_sound_irq_ack_w ) static WRITE16_HANDLER( m107_sound_status_w ) { COMBINE_DATA(&sound_status); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M107_IRQ_3); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M107_IRQ_3); } /*****************************************************************************/ diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c index b0e518207a0..d3c8b54137c 100644 --- a/src/mame/drivers/m63.c +++ b/src/mame/drivers/m63.c @@ -322,7 +322,7 @@ static WRITE8_HANDLER( coin_w ) static WRITE8_HANDLER( snd_irq_w ) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); timer_call_after_resynch(NULL, 0, NULL); } @@ -352,7 +352,7 @@ static WRITE8_HANDLER( p2_w ) p2 = data; if((p2&0xf0)==0x50) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } } @@ -629,7 +629,7 @@ static const samples_interface fghtbskt_samples_interface = fghtbskt_sh_start }; -static void snd_irq(running_machine *machine, int num) +static INTERRUPT_GEN( snd_irq ) { sound_irq = 1; } diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index 7f9ef341713..cb96daea7ef 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -113,8 +113,8 @@ static MACHINE_START( m72 ) static TIMER_CALLBACK( synch_callback ) { - //cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(8000000)); - cpu_boost_interleave(machine, ATTOTIME_IN_HZ(MASTER_CLOCK/4/12), ATTOTIME_IN_SEC(25)); + //cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(8000000)); + cpuexec_boost_interleave(machine, ATTOTIME_IN_HZ(MASTER_CLOCK/4/12), ATTOTIME_IN_SEC(25)); } static MACHINE_RESET( m72 ) @@ -257,7 +257,7 @@ static INTERRUPT_GEN( m72_mcu_int ) { //mcu_snd_cmd_latch |= 0x11; /* 0x10 is special as well - FIXME */ mcu_snd_cmd_latch = 0x11;// | (mame_rand(machine) & 1); /* 0x10 is special as well - FIXME */ - cputag_set_input_line(machine, "mcu", 1, ASSERT_LINE); + cpu_set_input_line(device, 1, ASSERT_LINE); } static READ8_HANDLER(m72_mcu_sample_r ) @@ -402,9 +402,9 @@ static int find_sample(int num) static INTERRUPT_GEN(fake_nmi) { - int sample = m72_sample_r(machine,0); + int sample = m72_sample_r(device->machine,0); if (sample) - m72_sample_w(machine,0,sample); + m72_sample_w(device->machine,0,sample); } diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c index 80a4159395f..65ac6ceb1a1 100644 --- a/src/mame/drivers/m79amb.c +++ b/src/mame/drivers/m79amb.c @@ -161,7 +161,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( m79amb_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ } static DRIVER_INIT( m79amb ) diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c index c7c46073e4e..4b11d6bed4f 100644 --- a/src/mame/drivers/m90.c +++ b/src/mame/drivers/m90.c @@ -697,12 +697,12 @@ static const ym2151_interface ym2151_config = static INTERRUPT_GEN( m90_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x60/4); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x60/4); } static INTERRUPT_GEN( bomblord_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x50/4); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x50/4); } diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index 65eb70d2335..1b8a4ae9af4 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -254,14 +254,14 @@ static TIMER_CALLBACK( m92_scanline_interrupt ) if (scanline == m92_raster_irq_position) { video_screen_update_partial(machine->primary_screen, scanline); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M92_IRQ_2); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M92_IRQ_2); } /* VBLANK interrupt */ else if (scanline == video_screen_get_visible_area(machine->primary_screen)->max_y + 1) { video_screen_update_partial(machine->primary_screen, scanline); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M92_IRQ_0); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M92_IRQ_0); } /* adjust for next scanline */ @@ -329,14 +329,14 @@ static TIMER_CALLBACK( setvector_callback ) } if (irqvector & 0x2) /* YM2151 has precedence */ - cpunum_set_input_line_vector(1, 0, 0x18); + cpu_set_input_line_vector(machine->cpu[1], 0, 0x18); else if (irqvector & 0x1) /* V30 */ - cpunum_set_input_line_vector(1, 0, 0x19); + cpu_set_input_line_vector(machine->cpu[1], 0, 0x19); if (irqvector == 0) /* no IRQs pending */ - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); else /* IRQ pending */ - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } static WRITE16_HANDLER( m92_soundlatch_w ) @@ -364,7 +364,7 @@ static WRITE16_HANDLER( m92_sound_irq_ack_w ) static WRITE16_HANDLER( m92_sound_status_w ) { COMBINE_DATA(&sound_status); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M92_IRQ_3); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M92_IRQ_3); } /*****************************************************************************/ @@ -908,7 +908,7 @@ static const ym2151_interface ym2151_config = void m92_sprite_interrupt(running_machine *machine) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, M92_IRQ_1); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, M92_IRQ_1); } static MACHINE_DRIVER_START( m92 ) diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c index eba01ab2ad7..1d5c66c9c42 100644 --- a/src/mame/drivers/macrossp.c +++ b/src/mame/drivers/macrossp.c @@ -355,9 +355,9 @@ static WRITE32_HANDLER( macrossp_soundcmd_w ) //logerror("%08x write soundcmd %08x (%08x)\n",cpu_get_pc(machine->activecpu),data,mem_mask); soundlatch_word_w(machine,0,data >> 16,0xffff); sndpending = 1; - cpunum_set_input_line(machine, 1,2,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],2,HOLD_LINE); /* spin for a while to let the sound CPU read the command */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); } } @@ -618,7 +618,7 @@ static void irqhandler(running_machine *machine, int irq) /* IRQ lines 1 & 4 on the sound 68000 are definitely triggered by the ES5506, but I haven't noticed the ES5506 ever assert the line - maybe only used when developing the game? */ -// cpunum_set_input_line(machine, 1,1,irq ? ASSERT_LINE : CLEAR_LINE); +// cpu_set_input_line(machine->cpu[1],1,irq ? ASSERT_LINE : CLEAR_LINE); } static const es5506_interface es5506_config = @@ -778,14 +778,14 @@ PC :0001810A 01810A: cmp.w $f10140.l, D0 PC :00018110 018110: beq 18104 */ COMBINE_DATA(¯ossp_mainram[0x10158/4]); - if (cpu_get_pc(machine->activecpu)==0x001810A) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x001810A) cpu_spinuntil_int(machine->activecpu); } #ifdef UNUSED_FUNCTION static WRITE32_HANDLER( quizmoon_speedup_w ) { COMBINE_DATA(¯ossp_mainram[0x00020/4]); - if (cpu_get_pc(machine->activecpu)==0x1cc) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x1cc) cpu_spinuntil_int(machine->activecpu); } #endif diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c index 8cf7079a292..556a16371db 100644 --- a/src/mame/drivers/madalien.c +++ b/src/mame/drivers/madalien.c @@ -22,7 +22,7 @@ static UINT8 *shift_lo; static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } @@ -57,14 +57,14 @@ static WRITE8_HANDLER( madalien_output_w ) static WRITE8_HANDLER( madalien_sound_command_w ) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); soundlatch_w(machine, offset, data); } static READ8_HANDLER(madalien_sound_command_r ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); return soundlatch_r(machine, offset); } diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c index c1569f4c12a..7418b7e78b9 100644 --- a/src/mame/drivers/madmotor.c +++ b/src/mame/drivers/madmotor.c @@ -43,7 +43,7 @@ static WRITE16_HANDLER( madmotor_sound_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } @@ -273,7 +273,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c index bd962c4ac02..970dc065211 100644 --- a/src/mame/drivers/magmax.c +++ b/src/mame/drivers/magmax.c @@ -48,13 +48,13 @@ static WRITE16_HANDLER( magmax_sound_w ) if (ACCESSING_BITS_0_7) { sound_latch = (data & 0xff) << 1; - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } } static READ8_HANDLER( magmax_sound_irq_ack ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); return 0; } diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c index ebbcf8640db..bf108a14b01 100644 --- a/src/mame/drivers/mainevt.c +++ b/src/mame/drivers/mainevt.c @@ -39,7 +39,7 @@ VIDEO_START( dv ); static INTERRUPT_GEN( mainevt_interrupt ) { if (K052109_is_IRQ_enabled()) - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } @@ -53,7 +53,7 @@ static WRITE8_HANDLER( dv_nmienable_w ) static INTERRUPT_GEN( dv_interrupt ) { if (nmi_enable) - nmi_line_pulse(machine, cpunum); + nmi_line_pulse(device); } @@ -89,7 +89,7 @@ static WRITE8_HANDLER( mainevt_coin_w ) static WRITE8_HANDLER( mainevt_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( mainevt_sh_irqcontrol_w ) diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c index 9cce3453688..cae89e00de6 100644 --- a/src/mame/drivers/mainsnk.c +++ b/src/mame/drivers/mainsnk.c @@ -127,7 +127,7 @@ static WRITE8_HANDLER( sound_command_w ) { sound_cpu_busy = 1; soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static READ8_HANDLER( sound_command_r ) diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c index f0035635213..4bd8da16a6b 100644 --- a/src/mame/drivers/mappy.c +++ b/src/mame/drivers/mappy.c @@ -704,13 +704,13 @@ static WRITE8_HANDLER( superpac_latch_w ) case 0x00: /* INT ON 2 */ cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); break; case 0x02: /* INT ON */ cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 0x04: /* n.c. */ @@ -726,7 +726,7 @@ static WRITE8_HANDLER( superpac_latch_w ) break; case 0x0a: /* SUB RESET */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x0c: /* n.c. */ @@ -746,19 +746,19 @@ static WRITE8_HANDLER( phozon_latch_w ) case 0x00: cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); break; case 0x02: cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 0x04: cpu_interrupt_enable(2,bit); if (!bit) - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); break; case 0x06: @@ -771,11 +771,11 @@ static WRITE8_HANDLER( phozon_latch_w ) break; case 0x0a: - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x0c: - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x0e: @@ -792,13 +792,13 @@ static WRITE8_HANDLER( mappy_latch_w ) case 0x00: /* INT ON 2 */ cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); break; case 0x02: /* INT ON */ cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 0x04: /* FLIP */ @@ -815,7 +815,7 @@ static WRITE8_HANDLER( mappy_latch_w ) break; case 0x0a: /* SUB RESET */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x0c: /* n.c. */ @@ -855,8 +855,8 @@ static MACHINE_RESET( mappy ) static INTERRUPT_GEN( mappy_interrupt_1 ) { - irq0_line_assert(machine, cpunum); // this also checks if irq is enabled - IMPORTANT! - // so don't replace with cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + irq0_line_assert(device); // this also checks if irq is enabled - IMPORTANT! + // so don't replace with cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); namcoio_set_irq_line(0,PULSE_LINE); namcoio_set_irq_line(1,PULSE_LINE); diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c index 1c83826274e..464e539056a 100644 --- a/src/mame/drivers/mastboy.c +++ b/src/mame/drivers/mastboy.c @@ -640,7 +640,7 @@ static void mastboy_adpcm_int(running_machine *machine, int data) mastboy_m5205_part ^= 1; if(!mastboy_m5205_part) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } @@ -655,14 +655,14 @@ static const msm5205_interface msm5205_config = static WRITE8_HANDLER( mastboy_irq0_ack_w ) { mastboy_irq0_ack = data; - if ((data&1)==1) cpunum_set_input_line(machine, 0,0, CLEAR_LINE); + if ((data&1)==1) cpu_set_input_line(machine->cpu[0],0, CLEAR_LINE); } static INTERRUPT_GEN( mastboy_interrupt ) { if ((mastboy_irq0_ack&1)==1) { - cpunum_set_input_line(machine, 0,0, ASSERT_LINE); + cpu_set_input_line(device,0, ASSERT_LINE); } } diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c index a3129ee6c35..001c94b14d7 100644 --- a/src/mame/drivers/matmania.c +++ b/src/mame/drivers/matmania.c @@ -42,7 +42,7 @@ The driver has been updated accordingly. static WRITE8_HANDLER( matmania_sh_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,M6502_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6502_IRQ_LINE,HOLD_LINE); } static WRITE8_HANDLER( matmania_dac_w ) @@ -54,7 +54,7 @@ static WRITE8_HANDLER( matmania_dac_w ) static WRITE8_HANDLER( maniach_sh_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,HOLD_LINE); } @@ -364,7 +364,7 @@ MACHINE_DRIVER_END /* handler called by the 3526 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,1,linestate); + cpu_set_input_line(machine->cpu[1],1,linestate); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/maxaflex.c b/src/mame/drivers/maxaflex.c index 038494c56aa..5525794bf67 100644 --- a/src/mame/drivers/maxaflex.c +++ b/src/mame/drivers/maxaflex.c @@ -79,14 +79,14 @@ static WRITE8_HANDLER( mcu_portB_w ) /* clear coin interrupt */ if (data & 0x04) - cpunum_set_input_line(machine, 1, M6805_IRQ_LINE, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], M6805_IRQ_LINE, CLEAR_LINE ); /* AUDMUTE */ sound_global_enable((data >> 5) & 1); /* RES600 */ if (diff & 0x10) - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); /* latch for lamps */ if ((diff & 0x40) && !(data & 0x40)) @@ -154,7 +154,7 @@ static TIMER_CALLBACK( mcu_timer_proc ) if ( (tcr & 0x40) == 0 ) { //timer interrupt! - cpunum_set_input_line(machine, 1, M68705_INT_TIMER, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], M68705_INT_TIMER, PULSE_LINE ); } } } @@ -226,7 +226,7 @@ static MACHINE_RESET(supervisor_board) static INPUT_CHANGED( coin_inserted ) { if (!newval) - cpunum_set_input_line(field->port->machine, 1, M6805_IRQ_LINE, HOLD_LINE ); + cpu_set_input_line(field->port->machine->cpu[1], M6805_IRQ_LINE, HOLD_LINE ); } int atari_input_disabled(void) diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c index d2486985c14..6d4acda3ed7 100644 --- a/src/mame/drivers/mayumi.c +++ b/src/mame/drivers/mayumi.c @@ -25,7 +25,7 @@ static int input_sel; static INTERRUPT_GEN( mayumi_interrupt ) { if (int_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static WRITE8_HANDLER( bank_sel_w ) diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c index 9e81b43faa1..5103bb9c528 100644 --- a/src/mame/drivers/mazerbla.c +++ b/src/mame/drivers/mazerbla.c @@ -283,7 +283,7 @@ static WRITE8_HANDLER( cfb_zpu_int_req_set_w ) { zpu_int_vector &= ~2; /* clear D1 on INTA (interrupt acknowledge) */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); /* main cpu interrupt (comes from CFB (generated at the start of INT routine on CFB) - vblank?) */ + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); /* main cpu interrupt (comes from CFB (generated at the start of INT routine on CFB) - vblank?) */ } static READ8_HANDLER( cfb_zpu_int_req_clr ) @@ -292,7 +292,7 @@ static READ8_HANDLER( cfb_zpu_int_req_clr ) /* clear the INT line when there are no more interrupt requests */ if (zpu_int_vector==0xff) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); return 0; } @@ -1064,7 +1064,7 @@ static TIMER_CALLBACK( delayed_sound_w ) soundlatch = param; /* cause NMI on sound CPU */ - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } @@ -1088,16 +1088,16 @@ ADDRESS_MAP_END /* frequency is 14.318 MHz/16/16/16/16 */ static INTERRUPT_GEN( sound_interrupt ) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } static WRITE8_HANDLER( sound_int_clear_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static WRITE8_HANDLER( sound_nmi_clear_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } static WRITE8_HANDLER( gg_led_ctrl_w ) @@ -1426,7 +1426,7 @@ static MACHINE_RESET( mazerbla ) { game_id = MAZERBLA; zpu_int_vector = 0xff; - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); } @@ -1435,7 +1435,7 @@ static MACHINE_RESET( greatgun ) UINT8 *rom = memory_region(machine, "sub2"); game_id = GREATGUN; zpu_int_vector = 0xff; - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); //patch VCU test diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 63334ca5a27..262d9ea5a29 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -149,7 +149,7 @@ UINT16* mcatadv_vidregs; static WRITE16_HANDLER( mcat_soundlatch_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } #if 0 // mcat only.. install read handler? @@ -460,7 +460,7 @@ GFXDECODE_END /* Stolen from Psikyo.c */ static void sound_irq( running_machine *machine, int irq ) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface mcatadv_ym2610_interface = { diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c index 131b65e1858..d5d51f71f73 100644 --- a/src/mame/drivers/mcr.c +++ b/src/mame/drivers/mcr.c @@ -2548,7 +2548,7 @@ static DRIVER_INIT( demoderb ) ssio_set_custom_output(4, 0xff, demoderb_op4_w); /* the SSIO Z80 doesn't have any program to execute */ - cpunum_suspend(1, SUSPEND_REASON_DISABLE, 1); + cpu_suspend(machine->cpu[1], SUSPEND_REASON_DISABLE, 1); } diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index c9636068545..6a5a0b629d9 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -1597,7 +1597,7 @@ static DRIVER_INIT( turbotag ) spyhunt_scroll_offset = 88; /* the SSIO Z80 doesn't have any program to execute */ - cpunum_suspend(1, SUSPEND_REASON_DISABLE, 1); + cpu_suspend(machine->cpu[1], SUSPEND_REASON_DISABLE, 1); /* kludge for bad ROM read */ memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0b53, 0x0b53, 0, 0, turbotag_kludge_r); diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c index bd35369a1ec..164b02de9a2 100644 --- a/src/mame/drivers/mcr68.c +++ b/src/mame/drivers/mcr68.c @@ -91,7 +91,7 @@ static READ16_HANDLER( zwackery_6840_r ) /* It expects D1 to end up between 0 and 5; in order to */ /* make this happen, we must assume that reads from the */ /* 6840 take 14 additional cycles */ - activecpu_adjust_icount(-14); + cpu_adjust_icount(machine->activecpu, -14); return mcr68_6840_upper_r(machine,offset,0xffff); } @@ -1384,7 +1384,7 @@ static DRIVER_INIT( zwackery ) mcr68_common_init(machine, MCR_CHIP_SQUEAK_DELUXE, 0, 0); /* Zwackery doesn't care too much about this value; currently taken from Blasted */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * (256 + 16)); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * (256 + 16)); } @@ -1393,7 +1393,7 @@ static DRIVER_INIT( xenophob ) mcr68_common_init(machine, MCR_SOUNDS_GOOD, 0, -4); /* Xenophobe doesn't care too much about this value; currently taken from Blasted */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * (256 + 16)); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * (256 + 16)); /* install control port handler */ memory_install_write16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0c0000, 0x0cffff, 0, 0, xenophobe_control_w); @@ -1405,7 +1405,7 @@ static DRIVER_INIT( spyhunt2 ) mcr68_common_init(machine, MCR_TURBO_CHIP_SQUEAK | MCR_SOUNDS_GOOD, 0, -6); /* Spy Hunter 2 doesn't care too much about this value; currently taken from Blasted */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * (256 + 16)); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * (256 + 16)); /* analog port handling is a bit tricky */ memory_install_write16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0c0000, 0x0cffff, 0, 0, spyhunt2_control_w); @@ -1421,7 +1421,7 @@ static DRIVER_INIT( blasted ) /* Blasted checks the timing of VBLANK relative to the 493 interrupt */ /* VBLANK is required to come within 220-256 E clocks (i.e., 2200-2560 CPU clocks) */ /* after the 493; we also allow 16 E clocks for latency */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * (256 + 16)); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * (256 + 16)); /* handle control writes */ memory_install_write16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0c0000, 0x0cffff, 0, 0, blasted_control_w); @@ -1436,7 +1436,7 @@ static DRIVER_INIT( archrivl ) mcr68_common_init(machine, MCR_WILLIAMS_SOUND, 16, 0); /* Arch Rivals doesn't care too much about this value; currently taken from Blasted */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * (256 + 16)); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * (256 + 16)); /* handle control writes */ memory_install_write16_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0c0000, 0x0cffff, 0, 0, archrivl_control_w); @@ -1454,7 +1454,7 @@ static DRIVER_INIT( pigskin ) mcr68_common_init(machine, MCR_WILLIAMS_SOUND, 16, 0); /* Pigskin doesn't care too much about this value; currently taken from Tri-Sports */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * 115); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * 115); state_save_register_global_array(protection_data); } @@ -1467,7 +1467,7 @@ static DRIVER_INIT( trisport ) /* Tri-Sports checks the timing of VBLANK relative to the 493 interrupt */ /* VBLANK is required to come within 87-119 E clocks (i.e., 870-1190 CPU clocks) */ /* after the 493 */ - mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpunum_get_clock(0) / 10) * 115); + mcr68_timing_factor = attotime_make(0, HZ_TO_ATTOSECONDS(cpu_get_clock(machine->cpu[0]) / 10) * 115); } diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c index e89e61f64df..c81f771297f 100644 --- a/src/mame/drivers/meadows.c +++ b/src/mame/drivers/meadows.c @@ -207,7 +207,7 @@ static WRITE8_HANDLER( meadows_audio_w ) static INPUT_CHANGED( coin_inserted ) { - cpunum_set_input_line_and_vector(field->port->machine, 0, 0, (newval ? ASSERT_LINE : CLEAR_LINE), 0x82); + cpu_set_input_line_and_vector(field->port->machine->cpu[0], 0, (newval ? ASSERT_LINE : CLEAR_LINE), 0x82); } @@ -222,7 +222,7 @@ static INTERRUPT_GEN( meadows_interrupt ) { /* fake something toggling the sense input line of the S2650 */ main_sense_state ^= 1; - cpunum_set_input_line(machine, 0, 1, main_sense_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(device, 1, main_sense_state ? ASSERT_LINE : CLEAR_LINE); } @@ -236,7 +236,7 @@ static INTERRUPT_GEN( meadows_interrupt ) static INTERRUPT_GEN( minferno_interrupt ) { main_sense_state++; - cpunum_set_input_line(machine, 0, 1, (main_sense_state & 0x40) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(device, 1, (main_sense_state & 0x40) ? ASSERT_LINE : CLEAR_LINE ); } @@ -318,7 +318,7 @@ static INTERRUPT_GEN( audio_interrupt ) { /* fake something toggling the sense input line of the S2650 */ audio_sense_state ^= 1; - cpunum_set_input_line(machine, 1, 1, audio_sense_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(device, 1, audio_sense_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index cbf97661fda..ff0a51b1b7a 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -344,7 +344,7 @@ static READ32_HANDLER( disp_ctrl_r ) #if SPEEDUP_HACKS // wait for vblank speedup - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); #endif break; } @@ -959,7 +959,7 @@ static MACHINE_RESET(mediagx) { UINT8 *rom = memory_region(machine, "bios"); - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); memcpy(bios_ram, rom, 0x40000); @@ -980,7 +980,7 @@ static MACHINE_RESET(mediagx) *************************************************************/ static PIC8259_SET_INT_LINE( mediagx_pic8259_1_set_int_line ) { - cpunum_set_input_line(device->machine, 0, 0, interrupt ? HOLD_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, interrupt ? HOLD_LINE : CLEAR_LINE); } @@ -1082,7 +1082,7 @@ MACHINE_DRIVER_END static void set_gate_a20(int a20) { - cpunum_set_input_line(Machine, 0, INPUT_LINE_A20, a20); + cpu_set_input_line(Machine->cpu[0], INPUT_LINE_A20, a20); } static void keyboard_interrupt(int state) @@ -1145,7 +1145,7 @@ INLINE UINT32 generic_speedup(running_machine *machine, speedup_entry *entry) if (cpu_get_pc(machine->activecpu) == entry->pc) { entry->hits++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return main_ram[entry->offset/4]; } diff --git a/src/mame/drivers/megadriv.c b/src/mame/drivers/megadriv.c index 74aed2c3c3a..42d4201a241 100644 --- a/src/mame/drivers/megadriv.c +++ b/src/mame/drivers/megadriv.c @@ -592,9 +592,9 @@ static void megadrive_vdp_set_register(running_machine *machine, int regnum, UIN if (megadrive_irq4_pending) { if (MEGADRIVE_REG0_IRQ4_ENABLE) - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); else - cpunum_set_input_line(machine, 0,4,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],4,CLEAR_LINE); } /* ??? Fatal Rewind needs this but I'm not sure it's accurate behavior @@ -609,9 +609,9 @@ static void megadrive_vdp_set_register(running_machine *machine, int regnum, UIN if (megadrive_irq6_pending) { if (MEGADRIVE_REG01_IRQ6_ENABLE ) - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); else - cpunum_set_input_line(machine, 0,6,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],6,CLEAR_LINE); } /* ??? */ @@ -719,7 +719,7 @@ static void megadrive_do_insta_68k_to_vram_dma(UINT32 source,int length) if (length==0x00) length = 0xffff; /* This is a hack until real DMA timings are implemented */ - cpu_spinuntil_time(ATTOTIME_IN_NSEC(length*1000/3500)); + cpu_spinuntil_time(Machine->activecpu, ATTOTIME_IN_NSEC(length*1000/3500)); for (count = 0;count<(length>>1);count++) { @@ -2330,13 +2330,13 @@ static WRITE16_HANDLER( megadriv_68k_req_z80_bus ) { //logerror("%06x: 68000 request z80 Bus (byte MSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_has_bus=0; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, ASSERT_LINE); } else { //logerror("%06x: 68000 return z80 Bus (byte MSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_has_bus=1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE); } } @@ -2346,13 +2346,13 @@ static WRITE16_HANDLER( megadriv_68k_req_z80_bus ) { //logerror("%06x: 68000 request z80 Bus (byte LSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_has_bus=0; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, ASSERT_LINE); } else { //logerror("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_has_bus=1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE); } } else // word access @@ -2361,13 +2361,13 @@ static WRITE16_HANDLER( megadriv_68k_req_z80_bus ) { //logerror("%06x: 68000 request z80 Bus (word access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_has_bus=0; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, ASSERT_LINE); } else { //logerror("%06x: 68000 return z80 Bus (byte LSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_has_bus=1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE); } } } @@ -2380,13 +2380,13 @@ static WRITE16_HANDLER ( megadriv_68k_req_z80_reset ) { //logerror("%06x: 68000 clear z80 reset (byte MSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_is_reset=0; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, CLEAR_LINE); } else { //logerror("%06x: 68000 start z80 reset (byte MSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_is_reset=1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE); sndti_reset(SOUND_YM2612, 0); } } @@ -2396,13 +2396,13 @@ static WRITE16_HANDLER ( megadriv_68k_req_z80_reset ) { //logerror("%06x: 68000 clear z80 reset (byte LSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_is_reset=0; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, CLEAR_LINE); } else { //logerror("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_is_reset=1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE); sndti_reset(SOUND_YM2612, 0); } @@ -2413,13 +2413,13 @@ static WRITE16_HANDLER ( megadriv_68k_req_z80_reset ) { //logerror("%06x: 68000 clear z80 reset (word access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_is_reset=0; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, CLEAR_LINE ); } else { //logerror("%06x: 68000 start z80 reset (byte LSB access) %04x %04x\n", cpu_get_pc(machine->activecpu),data,mem_mask); genz80.z80_is_reset=1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE); sndti_reset(SOUND_YM2612, 0); } } @@ -2734,8 +2734,8 @@ static WRITE16_HANDLER( _32x_68k_a15100_w ) if (data & 0x02) { - cpunum_set_input_line(machine, _32x_master_cpu_number, INPUT_LINE_RESET, CLEAR_LINE); - cpunum_set_input_line(machine, _32x_slave_cpu_number, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[_32x_master_cpu_number], INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], INPUT_LINE_RESET, CLEAR_LINE); } if (data & 0x01) @@ -2805,12 +2805,12 @@ static WRITE16_HANDLER( _32x_68k_a15102_w ) if (data&0x1) { - if (sh2_master_cmdint_enable) cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_CINT_IRQ_LEVEL,ASSERT_LINE); + if (sh2_master_cmdint_enable) cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_CINT_IRQ_LEVEL,ASSERT_LINE); } if (data&0x2) { - if (sh2_slave_cmdint_enable) cpunum_set_input_line(machine, _32x_slave_cpu_number,SH2_CINT_IRQ_LEVEL,ASSERT_LINE); + if (sh2_slave_cmdint_enable) cpu_set_input_line(machine->cpu[_32x_slave_cpu_number],SH2_CINT_IRQ_LEVEL,ASSERT_LINE); } } } @@ -3228,40 +3228,40 @@ static WRITE16_HANDLER( _32x_sh2_common_4002_w ) // VRES (md reset button interrupt) clear /**********************************************************************************************/ -static WRITE16_HANDLER( _32x_sh2_master_4014_w ){cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_VRES_IRQ_LEVEL,CLEAR_LINE);} -static WRITE16_HANDLER( _32x_sh2_slave_4014_w ) { cpunum_set_input_line(machine, _32x_slave_cpu_number, SH2_VRES_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_master_4014_w ){cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_VRES_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_slave_4014_w ) { cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], SH2_VRES_IRQ_LEVEL,CLEAR_LINE);} /**********************************************************************************************/ // SH2 side 4016 // VINT (vertical interrupt) clear /**********************************************************************************************/ -static WRITE16_HANDLER( _32x_sh2_master_4016_w ){cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_VINT_IRQ_LEVEL,CLEAR_LINE);} -static WRITE16_HANDLER( _32x_sh2_slave_4016_w ) { cpunum_set_input_line(machine, _32x_slave_cpu_number, SH2_VINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_master_4016_w ){cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_VINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_slave_4016_w ) { cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], SH2_VINT_IRQ_LEVEL,CLEAR_LINE);} /**********************************************************************************************/ // SH2 side 4018 // HINT (horizontal interrupt) clear /**********************************************************************************************/ -static WRITE16_HANDLER( _32x_sh2_master_4018_w ){ cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_HINT_IRQ_LEVEL,CLEAR_LINE);} -static WRITE16_HANDLER( _32x_sh2_slave_4018_w ) { cpunum_set_input_line(machine, _32x_slave_cpu_number, SH2_HINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_master_4018_w ){ cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_HINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_slave_4018_w ) { cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], SH2_HINT_IRQ_LEVEL,CLEAR_LINE);} /**********************************************************************************************/ // SH2 side 401A // HINT (control register interrupt) clear /**********************************************************************************************/ -static WRITE16_HANDLER( _32x_sh2_master_401a_w ){ cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_CINT_IRQ_LEVEL,CLEAR_LINE);} -static WRITE16_HANDLER( _32x_sh2_slave_401a_w ) { cpunum_set_input_line(machine, _32x_slave_cpu_number, SH2_CINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_master_401a_w ){ cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_CINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_slave_401a_w ) { cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], SH2_CINT_IRQ_LEVEL,CLEAR_LINE);} /**********************************************************************************************/ // SH2 side 401C // PINT (PWM timer interrupt) clear /**********************************************************************************************/ -static WRITE16_HANDLER( _32x_sh2_master_401c_w ){ cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_PINT_IRQ_LEVEL,CLEAR_LINE);} -static WRITE16_HANDLER( _32x_sh2_slave_401c_w ) { cpunum_set_input_line(machine, _32x_slave_cpu_number, SH2_PINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_master_401c_w ){ cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_PINT_IRQ_LEVEL,CLEAR_LINE);} +static WRITE16_HANDLER( _32x_sh2_slave_401c_w ) { cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], SH2_PINT_IRQ_LEVEL,CLEAR_LINE);} /**********************************************************************************************/ // SH2 side 401E @@ -3923,7 +3923,7 @@ static UINT8 megadrive_io_read_data_port_svp(int portnum) static READ16_HANDLER( svp_speedup_r ) { - cpu_spinuntil_time(ATTOTIME_IN_USEC(100)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(100)); return 0x0425; } @@ -5925,8 +5925,8 @@ static TIMER_CALLBACK( scanline_timer_callback ) // 32x interrupt! if (_32x_is_connected) { - if (sh2_master_vint_enable) cpunum_set_input_line(machine, _32x_master_cpu_number,SH2_VINT_IRQ_LEVEL,ASSERT_LINE); - if (sh2_slave_vint_enable) cpunum_set_input_line(machine, _32x_slave_cpu_number,SH2_VINT_IRQ_LEVEL,ASSERT_LINE); + if (sh2_master_vint_enable) cpu_set_input_line(machine->cpu[_32x_master_cpu_number],SH2_VINT_IRQ_LEVEL,ASSERT_LINE); + if (sh2_slave_vint_enable) cpu_set_input_line(machine->cpu[_32x_slave_cpu_number],SH2_VINT_IRQ_LEVEL,ASSERT_LINE); } } @@ -5975,11 +5975,11 @@ static TIMER_CALLBACK( scanline_timer_callback ) { if (genesis_scanline_counter==megadrive_z80irq_scanline) { - if ((genz80.z80_has_bus==1) && (genz80.z80_is_reset==0)) cpunum_set_input_line(machine, 1,0,HOLD_LINE); + if ((genz80.z80_has_bus==1) && (genz80.z80_is_reset==0)) cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } if (genesis_scanline_counter==megadrive_z80irq_scanline+1) { - cpunum_set_input_line(machine, 1,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); } } @@ -5997,14 +5997,14 @@ static TIMER_CALLBACK( irq6_on_callback ) { // megadrive_irq6_pending = 1; - if (MEGADRIVE_REG01_IRQ6_ENABLE || genesis_always_irq6) cpunum_set_input_line(machine, 0,6,HOLD_LINE); + if (MEGADRIVE_REG01_IRQ6_ENABLE || genesis_always_irq6) cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } } static TIMER_CALLBACK( irq4_on_callback ) { //mame_printf_debug("irq4 active on %d\n",genesis_scanline_counter); - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); } /*****************************************************************************************/ @@ -6055,9 +6055,9 @@ MACHINE_RESET( megadriv ) if (genesis_has_z80) { genz80.z80_is_reset = 1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_RESET, ASSERT_LINE); genz80.z80_has_bus = 1; - cpunum_set_input_line(machine, genz80.z80_cpunum, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[genz80.z80_cpunum], INPUT_LINE_HALT, CLEAR_LINE); genz80.z80_bank_pos = 0; genz80.z80_bank_addr = 0; genesis_scanline_counter = -1; @@ -6080,8 +6080,8 @@ MACHINE_RESET( megadriv ) if (genesis_other_hacks) { // set_refresh_rate(megadriv_framerate); - cpunum_set_clockscale(machine, 0, 0.9950f); /* Fatal Rewind is very fussy... */ - // cpunum_set_clockscale(machine, 0, 0.3800f); /* Fatal Rewind is very fussy... */ + cpu_set_clockscale(machine->cpu[0], 0.9950f); /* Fatal Rewind is very fussy... */ + // cpu_set_clockscale(machine->cpu[0], 0.3800f); /* Fatal Rewind is very fussy... */ memset(megadrive_ram,0x00,0x10000); } @@ -6096,18 +6096,18 @@ MACHINE_RESET( megadriv ) /* if any of these extra CPUs exist, pause them until we actually turn them on */ if (_32x_master_cpu_number != -1) { - cpunum_set_input_line(machine, _32x_master_cpu_number, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[_32x_master_cpu_number], INPUT_LINE_RESET, ASSERT_LINE); } if (_32x_slave_cpu_number != -1) { - cpunum_set_input_line(machine, _32x_slave_cpu_number, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[_32x_slave_cpu_number], INPUT_LINE_RESET, ASSERT_LINE); } if (_segacd_68k_cpu_number != -1 ) { - cpunum_set_input_line(machine, _segacd_68k_cpu_number, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, _segacd_68k_cpu_number, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[_segacd_68k_cpu_number], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[_segacd_68k_cpu_number], INPUT_LINE_HALT, ASSERT_LINE); } } @@ -6140,9 +6140,9 @@ VIDEO_EOF(megadriv) megadrive_sprite_collision=0;//? when to reset this .. megadrive_imode = MEGADRIVE_REG0C_INTERLEAVE; // can't change mid-frame.. megadrive_imode_odd_frame^=1; -// cpunum_set_input_line(machine, 1,0,CLEAR_LINE); // if the z80 interrupt hasn't happened by now, clear it.. +// cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); // if the z80 interrupt hasn't happened by now, clear it.. - if (MD_RESET_BUTTON) cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + if (MD_RESET_BUTTON) cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); /* int megadrive_total_scanlines = 262; @@ -6483,7 +6483,7 @@ static void megadriv_init_common(running_machine *machine) memory_set_bankptr( 1, genz80.z80_prgram ); } - cpunum_set_irq_callback(0, genesis_int_callback); + cpu_set_irq_callback(machine->cpu[0], genesis_int_callback); megadriv_backupram = NULL; megadriv_backupram_length = 0; diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index 71b79d6ec11..eb8c3e63a69 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -77,7 +77,7 @@ extern UINT8 *segae_vdp_regs[]; /* pointer to vdp's registers */ static INTERRUPT_GEN (megaplay_bios_irq) { int sline; - sline = 261 - cpu_getiloops(); + sline = 261 - cpu_getiloops(device); if (sline ==0) { hintcount = segae_vdp_regs[0][10]; @@ -95,7 +95,7 @@ static INTERRUPT_GEN (megaplay_bios_irq) segae_hintpending = 1; if ((segae_vdp_regs[0][0] & 0x10)) { - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); return; } @@ -108,7 +108,7 @@ static INTERRUPT_GEN (megaplay_bios_irq) hintcount = segae_vdp_regs[0][10]; if ( (sline<0xe0) && (segae_vintpending) ) { - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } } @@ -632,7 +632,7 @@ static READ8_HANDLER( megaplay_bios_6404_r ) static WRITE8_HANDLER( megaplay_bios_6404_w ) { if(((bios_6404 & 0x0c) == 0x00) && ((data & 0x0c) == 0x0c)) - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); bios_6404 = data; // logerror("BIOS: 0x6404 write: 0x%02x\n",data); diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c index af9081a2ec0..6126ea43268 100644 --- a/src/mame/drivers/megasys1.c +++ b/src/mame/drivers/megasys1.c @@ -160,11 +160,11 @@ static MACHINE_RESET( megasys1_hachoo ) #define INTERRUPT_NUM_A 3 static INTERRUPT_GEN( interrupt_A ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; - case 2: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 3, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 2, HOLD_LINE); break; + case 2: cpu_set_input_line(device, 1, HOLD_LINE); break; } } @@ -207,11 +207,11 @@ ADDRESS_MAP_END #define INTERRUPT_NUM_B 3 static INTERRUPT_GEN( interrupt_B ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; - default: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 1, HOLD_LINE); break; + default: cpu_set_input_line(device, 2, HOLD_LINE); break; } } @@ -258,7 +258,7 @@ static READ16_HANDLER( ip_select_r ) static WRITE16_HANDLER( ip_select_w ) { COMBINE_DATA(&ip_select); - cpunum_set_input_line(machine, 0,2,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],2,HOLD_LINE); } @@ -335,7 +335,7 @@ ADDRESS_MAP_END static INTERRUPT_GEN( interrupt_D ) { - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } static ADDRESS_MAP_START( readmem_D, ADDRESS_SPACE_PROGRAM, 16 ) @@ -431,7 +431,7 @@ ADDRESS_MAP_END static void megasys1_sound_irq(running_machine *machine, int irq) { if (irq) - cpunum_set_input_line(machine, 1, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 4, HOLD_LINE); } static READ16_HANDLER( oki_status_0_r ) @@ -751,7 +751,7 @@ MACHINE_DRIVER_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } @@ -3061,7 +3061,7 @@ static WRITE16_HANDLER( protection_peekaboo_w ) } } - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); } diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c index 49d41b2ccf1..64e000371b5 100644 --- a/src/mame/drivers/megatech.c +++ b/src/mame/drivers/megatech.c @@ -358,10 +358,10 @@ static void megatech_select_game(running_machine *machine, int gameno) printf("game 0 selected\n"); - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); sndti_reset(SOUND_YM2612, 0); sprintf(tempname, "game%d", gameno); @@ -387,8 +387,8 @@ static void megatech_select_game(running_machine *machine, int gameno) printf("SMS cart!!, CPU not running\n"); current_game_is_sms = 1; megatech_set_genz80_as_sms_standard_map(machine); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } @@ -397,8 +397,8 @@ static void megatech_select_game(running_machine *machine, int gameno) printf("Genesis Cart, CPU0 running\n"); current_game_is_sms = 0; megatech_set_megadrive_z80_as_megadrive_z80(machine); - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, CLEAR_LINE); - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, CLEAR_LINE); } else { @@ -407,10 +407,10 @@ static void megatech_select_game(running_machine *machine, int gameno) } else { - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); - // cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, ASSERT_LINE); - // cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); + // cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, ASSERT_LINE); + // cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* no cart.. */ memset(memory_region(machine, "mtbios")+0x8000, 0x00, 0x8000); diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c index 7260b33eeab..04eb0624cf7 100644 --- a/src/mame/drivers/megazone.c +++ b/src/mame/drivers/megazone.c @@ -46,7 +46,7 @@ static READ8_HANDLER( megazone_portA_r ) /* (divide by (1024/2), and not 1024, because the CPU cycle counter is */ /* incremented every other state change of the clock) */ - clock = activecpu_gettotalcycles() * 7159/12288; /* = (14318/8)/(18432/6) */ + clock = cpu_get_total_cycles(machine->activecpu) * 7159/12288; /* = (14318/8)/(18432/6) */ timer = (clock / (1024/2)) & 0x0f; /* low three bits come from the 8039 */ @@ -74,13 +74,13 @@ static WRITE8_HANDLER( megazone_portB_w ) static WRITE8_HANDLER( megazone_i8039_irq_w ) { - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], 0, ASSERT_LINE); } static WRITE8_HANDLER( i8039_irqen_and_status_w ) { if ((data & 0x80) == 0) - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); i8039_status = (data & 0x70) >> 4; } diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c index d8817074336..42d3ff07559 100644 --- a/src/mame/drivers/meijinsn.c +++ b/src/mame/drivers/meijinsn.c @@ -283,10 +283,10 @@ static VIDEO_UPDATE(meijinsn) static INTERRUPT_GEN( meijinsn_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 1, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } static const ay8910_interface ay8910_config = diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index dd05fbf0a15..011e99cd457 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -240,7 +240,7 @@ static MC6845_ON_HSYNC_CHANGED(hsync_changed) static MC6845_ON_VSYNC_CHANGED(vsync_changed) { - cpunum_set_input_line(device->machine, 0, 0, vsync ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, vsync ? ASSERT_LINE : CLEAR_LINE); } static const mc6845_interface mc6845_intf = diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c index 192685d8026..e6898e236eb 100644 --- a/src/mame/drivers/meritm.c +++ b/src/mame/drivers/meritm.c @@ -752,13 +752,13 @@ static const ay8910_interface ay8910_config = static void meritm_audio_pio_interrupt(const device_config *device, int state) { //logerror( "PIO(0) interrupt line: %d, V = %d, H = %d\n", state, video_screen_get_vpos(0), video_screen_get_hpos(0) ); - cpunum_set_input_line(device->machine, 0, 0, state); + cpu_set_input_line(device->machine->cpu[0], 0, state); } static void meritm_io_pio_interrupt(const device_config *device, int state) { //logerror( "PIO(1) interrupt line: %d, V = %d, H = %d\n", state, video_screen_get_vpos(0), video_screen_get_hpos(0) ); - cpunum_set_input_line(device->machine, 0, 0, state); + cpu_set_input_line(device->machine->cpu[0], 0, state); } diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c index bfe9f3caa22..fe1032ceaee 100644 --- a/src/mame/drivers/metlclsh.c +++ b/src/mame/drivers/metlclsh.c @@ -64,12 +64,12 @@ static WRITE8_HANDLER( sharedram_w ) { sharedram[offset] = data; } static WRITE8_HANDLER( metlclsh_cause_irq ) { - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,ASSERT_LINE); } static WRITE8_HANDLER( metlclsh_ack_nmi ) { - cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],INPUT_LINE_NMI,CLEAR_LINE); } static ADDRESS_MAP_START( metlclsh_readmem, ADDRESS_SPACE_PROGRAM, 8 ) @@ -115,17 +115,17 @@ ADDRESS_MAP_END static WRITE8_HANDLER( metlclsh_cause_nmi2 ) { - cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],INPUT_LINE_NMI,ASSERT_LINE); } static WRITE8_HANDLER( metlclsh_ack_irq2 ) { - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,CLEAR_LINE); } static WRITE8_HANDLER( metlclsh_ack_nmi2 ) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,CLEAR_LINE); } static WRITE8_HANDLER( metlclsh_flipscreen_w ) @@ -289,7 +289,7 @@ GFXDECODE_END static void metlclsh_irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,linestate); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,linestate); } static const ym3526_interface ym3526_config = @@ -299,11 +299,11 @@ static const ym3526_interface ym3526_config = static INTERRUPT_GEN( metlclsh_interrupt2 ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) return; /* generate NMI on coin insertion */ - if ((~input_port_read(machine, "IN2") & 0xc0) || (~input_port_read(machine, "DSW") & 0x40)) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + if ((~input_port_read(device->machine, "IN2") & 0xc0) || (~input_port_read(device->machine, "DSW") & 0x40)) + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } static MACHINE_RESET( metlclsh ) diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 7bda3cb5e02..ec29ffbddc9 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -168,7 +168,7 @@ static void update_irq_state(running_machine *machine) if (irq & (1 << i)) irq_level[metro_irq_levels[i]&7] = 1; for (i = 0; i < 8; i++) - cpunum_set_input_line(machine, 0, i, irq_level[i] ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], i, irq_level[i] ? ASSERT_LINE : CLEAR_LINE); } else { @@ -177,7 +177,7 @@ static void update_irq_state(running_machine *machine) source by peeking a register (metro_irq_cause_r) */ int state = (irq ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, irq_line, state); + cpu_set_input_line(machine->cpu[0], irq_line, state); } } @@ -192,7 +192,7 @@ static IRQ_CALLBACK(metro_irq_callback) static MACHINE_RESET( metro ) { if (irq_line == -1) - cpunum_set_irq_callback(0, metro_irq_callback); + cpu_set_irq_callback(machine->cpu[0], metro_irq_callback); } @@ -220,16 +220,16 @@ static WRITE16_HANDLER( metro_irq_cause_w ) static INTERRUPT_GEN( metro_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: requested_int[0] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; default: requested_int[4] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; } } @@ -239,7 +239,7 @@ static INTERRUPT_GEN( bangball_interrupt ) { requested_int[0] = 1; // set scroll regs if a flag is set requested_int[4] = 1; // clear that flag - update_irq_state(machine); + update_irq_state(device->machine); } @@ -251,19 +251,19 @@ static TIMER_CALLBACK( vblank_end_callback ) /* lev 2-7 (lev 1 seems sound related) */ static INTERRUPT_GEN( karatour_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: requested_int[0] = 1; requested_int[5] = 1; // write the scroll registers /* the duration is a guess */ timer_set(ATTOTIME_IN_USEC(2500), NULL, 0, vblank_end_callback); - update_irq_state(machine); + update_irq_state(device->machine); break; default: requested_int[4] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; } } @@ -285,39 +285,39 @@ static WRITE16_HANDLER( mouja_irq_timer_ctrl_w ) static INTERRUPT_GEN( mouja_interrupt ) { requested_int[1] = 1; - update_irq_state(machine); + update_irq_state(device->machine); } static INTERRUPT_GEN( gakusai_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: requested_int[1] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; } } static INTERRUPT_GEN( dokyusei_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: requested_int[1] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; case 1: // needed? requested_int[5] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; } } static void ymf278b_interrupt(running_machine *machine, int active) { - cpunum_set_input_line(machine, 0, 2, active); + cpu_set_input_line(machine->cpu[0], 2, active); } /*************************************************************************** @@ -354,8 +354,8 @@ static WRITE16_HANDLER( metro_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_int(); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); + cpu_spinuntil_int(machine->activecpu); busy_sndcpu = 1; } } @@ -512,7 +512,7 @@ static WRITE8_HANDLER( daitorid_portb_w ) static void metro_sound_irq_handler(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, UPD7810_INTF2, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], UPD7810_INTF2, state ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = @@ -1918,7 +1918,7 @@ ADDRESS_MAP_END static WRITE16_HANDLER( blzntrnd_sound_w ) { soundlatch_w(machine, offset, data>>8); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( blzntrnd_sh_bankswitch_w ) @@ -1932,7 +1932,7 @@ static WRITE8_HANDLER( blzntrnd_sh_bankswitch_w ) static void blzntrnd_irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface blzntrnd_ym2610_interface = @@ -4587,26 +4587,26 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( puzzlet_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: requested_int[1] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; case 1: requested_int[3] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; case 2: requested_int[5] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; case 3: requested_int[2] = 1; - update_irq_state(machine); + update_irq_state(device->machine); break; default: diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index 2e046630c56..3f483e37bf8 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -81,7 +81,7 @@ static void update_plunger(running_machine *machine) time_released = timer_get_time(); if (!mask) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } else time_pushed = timer_get_time(); @@ -97,7 +97,7 @@ static TIMER_CALLBACK( interrupt_callback ) update_plunger(machine); - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE); scanline = scanline + 32; diff --git a/src/mame/drivers/mhavoc.c b/src/mame/drivers/mhavoc.c index c283e57a36a..5cee201611f 100644 --- a/src/mame/drivers/mhavoc.c +++ b/src/mame/drivers/mhavoc.c @@ -337,7 +337,7 @@ ADDRESS_MAP_END static CUSTOM_INPUT( clock_r ) { /* 2.4kHz (divide 2.5MHz by 1024) */ - return (cpunum_gettotalcycles(0) & 0x400) ? 0 : 1; + return (cpu_get_total_cycles(field->port->machine->cpu[0]) & 0x400) ? 0 : 1; } diff --git a/src/mame/drivers/micro3d.c b/src/mame/drivers/micro3d.c index 34a9d1888cf..f9d003d5974 100644 --- a/src/mame/drivers/micro3d.c +++ b/src/mame/drivers/micro3d.c @@ -113,7 +113,7 @@ static int data_to_i8031(void) // Write to sound board if(M68681.IMR & 0x1000) { - cpunum_set_input_line_and_vector(Machine, 0,3, HOLD_LINE, M68681.IVR); // Generate an interrupt, if allowed. + cpu_set_input_line_and_vector(Machine->cpu[0],3, HOLD_LINE, M68681.IVR); // Generate an interrupt, if allowed. } return M68681.TBB; } @@ -124,7 +124,7 @@ static void data_from_i8031(int data) M68681.SRB |= 0x0100; // Set Receiver B ready. if(M68681.IMR & 0x1000) { - cpunum_set_input_line_and_vector(Machine, 0,3, HOLD_LINE, M68681.IVR); // Generate a receiver interrupt. + cpu_set_input_line_and_vector(Machine->cpu[0],3, HOLD_LINE, M68681.IVR); // Generate a receiver interrupt. mame_printf_debug("INTERRUPT!!!\n"); } mame_printf_debug("8031 sent data: %x\n",data); @@ -404,7 +404,7 @@ static void tms_interrupt(int state) static INTERRUPT_GEN( micro3d_vblank ) { - m68901_int_gen(machine, GPIP7); + m68901_int_gen(device->machine, GPIP7); } @@ -458,7 +458,7 @@ int bit=1 << (source-8*(int)(source/8)); if(m68901_base[IMASK_REG] & (bit<<8)) // If interrupt is not masked by MFD, trigger a 68k INT { - cpunum_set_input_line(machine, 0,4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4, HOLD_LINE); // logerror("M68901 interrupt %d serviced.\n",source); } } @@ -518,7 +518,7 @@ switch(offset) case 0x03: M68681.TBA = value; // Fill transmit buffer M68681.SRA |=0x0400; // Data has been sent - TX ready for more. - if(M68681.IMR & 1) cpunum_set_input_line_and_vector(machine, 0,3, HOLD_LINE, M68681.IVR); // Generate an interrupt, if allowed. + if(M68681.IMR & 1) cpu_set_input_line_and_vector(machine->cpu[0],3, HOLD_LINE, M68681.IVR); // Generate an interrupt, if allowed. #if HOST_MONITOR_DISPLAY mame_printf_debug("%c",value); // Port A - Monitor @@ -547,13 +547,13 @@ switch(offset) // Write to sound board if(M68681.IMR & 0x1000) { - cpunum_set_input_line_and_vector(machine, 0,3, HOLD_LINE, M68681.IVR); // Generate an interrupt, if allowed. + cpu_set_input_line_and_vector(machine->cpu[0],3, HOLD_LINE, M68681.IVR); // Generate an interrupt, if allowed. } - cpunum_set_input_line(machine, 2, MCS51_RX_LINE, ASSERT_LINE); // Generate 8031 interrupt + cpu_set_input_line(machine->cpu[2], MCS51_RX_LINE, ASSERT_LINE); // Generate 8031 interrupt mame_printf_debug("Sound board TX: %4X at PC=%4X\n",value,cpu_get_pc(machine->activecpu)); #endif M68681.SRB &=~0x0400; // Data has been sent - TX ready for more. - cpunum_set_input_line(machine, 2, MCS51_RX_LINE, ASSERT_LINE); // Generate 8031 interrupt + cpu_set_input_line(machine->cpu[2], MCS51_RX_LINE, ASSERT_LINE); // Generate 8031 interrupt mame_printf_debug("Sound board TX: %4X at PC=%4X\n",value,cpu_get_pc(machine->activecpu)); break; diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c index 41ff3e0b308..52cab823ebf 100644 --- a/src/mame/drivers/midvunit.c +++ b/src/mame/drivers/midvunit.c @@ -133,7 +133,7 @@ static READ32_HANDLER( midvunit_adc_r ) { if (!(control_data & 0x40)) { - cpunum_set_input_line(machine, 0, 3, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, CLEAR_LINE); return adc_data << adc_shift; } else @@ -144,7 +144,7 @@ static READ32_HANDLER( midvunit_adc_r ) static TIMER_CALLBACK( adc_ready ) { - cpunum_set_input_line(machine, 0, 3, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 3, ASSERT_LINE); } @@ -290,7 +290,7 @@ static WRITE32_HANDLER( tms32031_control_w ) /* bit 0x200 selects internal clocking, which is 1/2 the main CPU clock rate */ if (data & 0x200) - timer_rate = (double)(cpunum_get_clock(0) * 0.5); + timer_rate = (double)(cpu_get_clock(machine->cpu[0]) * 0.5); else timer_rate = 10000000.; } @@ -1517,7 +1517,7 @@ ROM_END static UINT32 *generic_speedup; static READ32_HANDLER( generic_speedup_r ) { - activecpu_eat_cycles(100); + cpu_eat_cycles(machine->activecpu, 100); return generic_speedup[offset]; } diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index fab3a01d30f..2406ae00be8 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -107,12 +107,12 @@ static MACHINE_RESET( midzeus ) static TIMER_CALLBACK( display_irq_off ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( display_irq ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_HZ(30000000), NULL, 0, display_irq_off); } @@ -498,9 +498,9 @@ static void update_gun_irq(running_machine *machine) { /* low 2 bits of gun_control seem to enable IRQs */ if (gun_irq_state & gun_control & 0x03) - cpunum_set_input_line(machine, 0, 3, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 3, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 3, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, CLEAR_LINE); } diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c index 05006e17026..36e85c776cd 100644 --- a/src/mame/drivers/mikie.c +++ b/src/mame/drivers/mikie.c @@ -37,7 +37,7 @@ static READ8_HANDLER( mikie_sh_timer_r ) #define TIMER_RATE 512 - clock = activecpu_gettotalcycles() / TIMER_RATE; + clock = cpu_get_total_cycles(machine->activecpu) / TIMER_RATE; return clock; } @@ -49,7 +49,7 @@ static WRITE8_HANDLER( mikie_sh_irqtrigger_w ) if (last == 0 && data == 1) { // setting bit 0 low then high triggers IRQ on the sound CPU - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } last = data; diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c index 9e0e32e6a97..0c50caf41cf 100644 --- a/src/mame/drivers/mirax.c +++ b/src/mame/drivers/mirax.c @@ -78,7 +78,7 @@ static VIDEO_UPDATE(mirax) //audio tester if(input_code_pressed_once(KEYCODE_Q)) { - cpunum_set_input_line(screen->machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(screen->machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } #endif return 0; diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c index aed71a451b1..672e1a52732 100644 --- a/src/mame/drivers/missb2.c +++ b/src/mame/drivers/missb2.c @@ -336,7 +336,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { logerror("YM3526 firing an IRQ\n"); -// cpunum_set_input_line(machine, 2,0,irq ? ASSERT_LINE : CLEAR_LINE); +// cpu_set_input_line(machine->cpu[2],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym3526_interface ym3526_config = @@ -348,7 +348,7 @@ static const ym3526_interface ym3526_config = static INTERRUPT_GEN( missb2_interrupt ) { - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } /* Machine Driver */ diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c index c139749e07c..e94ce490d80 100644 --- a/src/mame/drivers/missile.c +++ b/src/mame/drivers/missile.c @@ -404,7 +404,7 @@ static TIMER_CALLBACK( clock_irq ) /* assert the IRQ if not already asserted */ irq_state = (~curv >> 5) & 1; - cpunum_set_input_line(machine, 0, 0, irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, irq_state ? ASSERT_LINE : CLEAR_LINE); /* force an update while we're here */ video_screen_update_partial(machine->primary_screen, v_to_scanline(curv)); @@ -434,9 +434,9 @@ static TIMER_CALLBACK( adjust_cpu_speed ) /* starting at scanline 224, the CPU runs at half speed */ if (curv == 224) - cpunum_set_clock(machine, 0, MASTER_CLOCK/16); + cpu_set_clock(machine->cpu[0], MASTER_CLOCK/16); else - cpunum_set_clock(machine, 0, MASTER_CLOCK/8); + cpu_set_clock(machine->cpu[0], MASTER_CLOCK/8); /* scanline for the next run */ curv ^= 224; @@ -498,7 +498,7 @@ static MACHINE_START( missile ) static MACHINE_RESET( missile ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); irq_state = 0; } @@ -547,7 +547,7 @@ INLINE offs_t get_bit3_addr(offs_t pixaddr) } -static void write_vram(offs_t address, UINT8 data) +static void write_vram(running_machine *machine, offs_t address, UINT8 data) { static const UINT8 data_lookup[4] = { 0x00, 0x0f, 0xf0, 0xff }; offs_t vramaddr; @@ -572,12 +572,12 @@ static void write_vram(offs_t address, UINT8 data) videoram[vramaddr] = (videoram[vramaddr] & vrammask) | (vramdata & ~vrammask); /* account for the extra clock cycle */ - activecpu_adjust_icount(-1); + cpu_adjust_icount(machine->activecpu, -1); } } -static UINT8 read_vram(offs_t address) +static UINT8 read_vram(running_machine *machine, offs_t address) { offs_t vramaddr; UINT8 vramdata; @@ -606,7 +606,7 @@ static UINT8 read_vram(offs_t address) result &= ~0x20; /* account for the extra clock cycle */ - activecpu_adjust_icount(-1); + cpu_adjust_icount(machine->activecpu, -1); } return result; } @@ -665,7 +665,7 @@ static WRITE8_HANDLER( missile_w ) /* if we're in MADSEL mode, write to video RAM */ if (get_madsel(machine)) { - write_vram(offset, data); + write_vram(machine, offset, data); return; } @@ -705,7 +705,7 @@ static WRITE8_HANDLER( missile_w ) { if (irq_state) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); irq_state = 0; } } @@ -722,7 +722,7 @@ static READ8_HANDLER( missile_r ) /* if we're in MADSEL mode, read from video RAM */ if (get_madsel(machine)) - return read_vram(offset); + return read_vram(machine, offset); /* otherwise, strip A15 and handle manually */ offset &= 0x7fff; diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c index 6ba25d4e0d2..bc75c3a4078 100644 --- a/src/mame/drivers/mitchell.c +++ b/src/mame/drivers/mitchell.c @@ -175,7 +175,7 @@ static READ8_HANDLER( pang_port5_r ) /* bit 3 is checked before updating the palette so it really seems to be vblank. */ /* Many games require two interrupts per frame and for these bits to toggle, */ /* otherwise music doesn't work. */ - if (cpu_getiloops() & 1) bit |= 0x01; + if (cpu_getiloops(machine->activecpu) & 1) bit |= 0x01; else bit |= 0x08; if (pang_port5_kludge) /* hack... music doesn't work otherwise */ @@ -473,7 +473,7 @@ ADDRESS_MAP_END static WRITE8_HANDLER(mstworld_sound_w) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } extern WRITE8_HANDLER( mstworld_gfxctrl_w ); @@ -1207,7 +1207,7 @@ static void spangbl_adpcm_int(running_machine *machine, int data) sample_buffer >>= 4; sample_select ^= 1; if(sample_select == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c index bf919edd269..22b0d74b0fc 100644 --- a/src/mame/drivers/mlanding.c +++ b/src/mame/drivers/mlanding.c @@ -81,7 +81,7 @@ static WRITE16_HANDLER(ml_subreset_w) { //wrong if(cpu_get_pc(machine->activecpu)==0x822) - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, PULSE_LINE); } static WRITE8_HANDLER( sound_bankswitch_w ) @@ -332,7 +332,7 @@ INPUT_PORTS_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static GFXDECODE_START( mlanding ) diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c index 424de9d1201..2a0e23f6ce1 100644 --- a/src/mame/drivers/model1.c +++ b/src/mame/drivers/model1.c @@ -689,7 +689,7 @@ static void irq_raise(running_machine *machine, int level) // logerror("irq: raising %d\n", level); // irq_status |= (1 << level); last_irq = level; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); } static IRQ_CALLBACK(irq_callback) @@ -712,24 +712,24 @@ static IRQ_CALLBACK(irq_callback) static void irq_init(running_machine *machine) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); - cpunum_set_irq_callback(0, irq_callback); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); + cpu_set_irq_callback(machine->cpu[0], irq_callback); } static INTERRUPT_GEN(model1_interrupt) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { - irq_raise(machine, 1); + irq_raise(device->machine, 1); } else { - irq_raise(machine, model1_sound_irq); + irq_raise(device->machine, model1_sound_irq); // if the FIFO has something in it, signal the 68k too if (fifo_rptr != fifo_wptr) { - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], 2, HOLD_LINE); } } } @@ -842,7 +842,7 @@ static READ16_HANDLER( snd_68k_ready_r ) if ((sr & 0x0700) > 0x0100) { - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); return 0; // not ready yet, interrupts disabled } @@ -856,9 +856,9 @@ static WRITE16_HANDLER( snd_latch_to_68k_w ) if (fifo_wptr >= FIFO_SIZE) fifo_wptr = 0; // signal the 68000 that there's data waiting - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 2, HOLD_LINE); // give the 68k time to reply - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } static ADDRESS_MAP_START( model1_mem, ADDRESS_SPACE_PROGRAM, 16 ) diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index f209b83f1e2..e7e5ce5faa2 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -175,7 +175,7 @@ static UINT32 copro_fifoout_pop(void) i960_stall(Machine->activecpu); /* spin the main cpu and let the TGP catch up */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(100)); + cpu_spinuntil_time(Machine->activecpu, ATTOTIME_IN_USEC(100)); return 0; } @@ -239,7 +239,7 @@ static void copro_fifoout_push(UINT32 data) sharc_set_flag_input(1, ASSERT_LINE); cpu_pop_context(); - //cpunum_set_input_line(Machine, 2, SHARC_INPUT_FLAG1, ASSERT_LINE); + //cpu_set_input_line(Machine->cpu[2], SHARC_INPUT_FLAG1, ASSERT_LINE); } else { @@ -247,7 +247,7 @@ static void copro_fifoout_push(UINT32 data) sharc_set_flag_input(1, CLEAR_LINE); cpu_pop_context(); - //cpunum_set_input_line(Machine, 2, SHARC_INPUT_FLAG1, CLEAR_LINE); + //cpu_set_input_line(Machine->cpu[2], SHARC_INPUT_FLAG1, CLEAR_LINE); } } } @@ -316,7 +316,7 @@ static TIMER_CALLBACK( model2_timer_cb ) model2_intreq |= (1<cpu[0], I960_IRQ2, ASSERT_LINE); } model2_timervals[tnum] = 0; @@ -355,7 +355,7 @@ static MACHINE_RESET(model2o) MACHINE_RESET_CALL(model2_common); // hold TGP in halt until we have code - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); dsp_type = DSP_TYPE_TGP; } @@ -375,7 +375,7 @@ static MACHINE_RESET(model2) MACHINE_RESET_CALL(model2_scsp); // hold TGP in halt until we have code - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); dsp_type = DSP_TYPE_TGP; } @@ -385,12 +385,12 @@ static MACHINE_RESET(model2b) MACHINE_RESET_CALL(model2_common); MACHINE_RESET_CALL(model2_scsp); - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); // set FIFOIN empty flag on SHARC - cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG0, ASSERT_LINE); // clear FIFOOUT buffer full flag on SHARC - cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, CLEAR_LINE); dsp_type = DSP_TYPE_SHARC; } @@ -540,7 +540,7 @@ static WRITE32_HANDLER( copro_ctl1_w ) logerror("Boot copro, %d dwords\n", model2_coprocnt); if (dsp_type != DSP_TYPE_TGPX4) { - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); } } } @@ -662,8 +662,8 @@ static WRITE32_HANDLER( geo_sharc_ctl1_w ) else { logerror("Boot geo, %d dwords\n", model2_geocnt); - cpunum_set_input_line(machine, 3, INPUT_LINE_HALT, CLEAR_LINE); - //cpu_spinuntil_time(ATTOTIME_IN_USEC(1000)); // Give the SHARC enough time to boot itself + cpu_set_input_line(machine->cpu[3], INPUT_LINE_HALT, CLEAR_LINE); + //cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(1000)); // Give the SHARC enough time to boot itself } } @@ -905,7 +905,7 @@ static int snd_68k_ready_r(void) if ((sr & 0x0700) > 0x0100) { - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(Machine->activecpu, ATTOTIME_IN_USEC(40)); return 0; // not ready yet, interrupts disabled } @@ -916,15 +916,15 @@ static void snd_latch_to_68k_w(running_machine *machine, int data) { while (!snd_68k_ready_r()) { - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } to_68k = data; - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 2, HOLD_LINE); // give the 68k time to notice - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } static READ32_HANDLER( model2_serial_r ) @@ -952,7 +952,7 @@ static WRITE32_HANDLER( model2_serial_w ) scsp_midi_in(machine, 0, data&0xff, 0); // give the 68k time to notice - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } } @@ -1553,20 +1553,20 @@ INPUT_PORTS_END static INTERRUPT_GEN(model2_interrupt) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: model2_intreq |= (1<<10); if (model2_intena & (1<<10)) { - cpunum_set_input_line(machine, 0, I960_IRQ3, ASSERT_LINE); + cpu_set_input_line(device, I960_IRQ3, ASSERT_LINE); } break; case 1: model2_intreq |= (1<<0); if (model2_intena & (1<<0)) { - cpunum_set_input_line(machine, 0, I960_IRQ0, ASSERT_LINE); + cpu_set_input_line(device, I960_IRQ0, ASSERT_LINE); } break; } @@ -1574,23 +1574,23 @@ static INTERRUPT_GEN(model2_interrupt) static INTERRUPT_GEN(model2c_interrupt) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: model2_intreq |= (1<<10); if (model2_intena & (1<<10)) - cpunum_set_input_line(machine, 0, I960_IRQ3, ASSERT_LINE); + cpu_set_input_line(device, I960_IRQ3, ASSERT_LINE); break; case 1: model2_intreq |= (1<<2); if (model2_intena & (1<<2)) - cpunum_set_input_line(machine, 0, I960_IRQ2, ASSERT_LINE); + cpu_set_input_line(device, I960_IRQ2, ASSERT_LINE); break; case 2: model2_intreq |= (1<<0); if (model2_intena & (1<<0)) - cpunum_set_input_line(machine, 0, I960_IRQ0, ASSERT_LINE); + cpu_set_input_line(device, I960_IRQ0, ASSERT_LINE); break; } } @@ -1724,10 +1724,10 @@ static void scsp_irq(running_machine *machine, int irq) if (irq > 0) { scsp_last_line = irq; - cpunum_set_input_line(machine, 1, irq, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], irq, ASSERT_LINE); } else - cpunum_set_input_line(machine, 1, -irq, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], -irq, CLEAR_LINE); } static const scsp_interface scsp_config = diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index c9e1cbb2b0f..141e5f9e213 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -387,9 +387,9 @@ static UINT16 *model3_soundram; static void update_irq_state(running_machine *machine) { if ((irq_enable & irq_state) || scsi_irq_state) - cpunum_set_input_line(machine, 0, PPC_IRQ, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], PPC_IRQ, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, PPC_IRQ, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], PPC_IRQ, CLEAR_LINE); } void model3_set_irq_line(running_machine *machine, UINT8 bit, int state) @@ -1345,7 +1345,7 @@ static WRITE64_HANDLER(model3_sound_w) scsp_midi_in(machine, 0, (data>>56)&0xff, 0); // give the 68k time to notice - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } } @@ -4269,10 +4269,10 @@ static void scsp_irq(running_machine *machine, int irq) if (irq > 0) { scsp_last_line = irq; - cpunum_set_input_line(machine, 1, irq, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], irq, ASSERT_LINE); } else - cpunum_set_input_line(machine, 1, -irq, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], -irq, CLEAR_LINE); } static const scsp_interface scsp_config = @@ -4302,9 +4302,9 @@ static int model3_vblank = 0; static INTERRUPT_GEN(model3_interrupt) { if (model3_vblank == 0) { - model3_set_irq_line(machine, 0x42, ASSERT_LINE); + model3_set_irq_line(device->machine, 0x42, ASSERT_LINE); } else { - model3_set_irq_line(machine, 0x0d, ASSERT_LINE); + model3_set_irq_line(device->machine, 0x0d, ASSERT_LINE); } model3_vblank++; diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index 06511dd245c..af80332292e 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -168,7 +168,7 @@ static void moo_objdma(int type) static TIMER_CALLBACK( dmaend_callback ) { if (cur_control2 & 0x800) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); } static INTERRUPT_GEN(moo_interrupt) @@ -183,7 +183,7 @@ static INTERRUPT_GEN(moo_interrupt) // trigger V-blank interrupt if (cur_control2 & 0x20) - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static INTERRUPT_GEN(moobl_interrupt) @@ -194,7 +194,7 @@ static INTERRUPT_GEN(moobl_interrupt) timer_set(ATTOTIME_IN_USEC(MOO_DMADELAY), NULL, 0, dmaend_callback); // trigger V-blank interrupt - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static WRITE16_HANDLER( sound_cmd1_w ) @@ -214,7 +214,7 @@ static WRITE16_HANDLER( sound_cmd2_w ) static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ16_HANDLER( sound_status_r ) diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c index 7c6e7a2295f..2adb8d9e9d1 100644 --- a/src/mame/drivers/mouser.c +++ b/src/mame/drivers/mouser.c @@ -38,7 +38,7 @@ static WRITE8_HANDLER( mouser_nmi_enable_w ) static INTERRUPT_GEN( mouser_nmi_interrupt ) { if ((mouser_nmi_enable & 1) == 1) - nmi_line_pulse(machine, cpunum); + nmi_line_pulse(device); } /* Sound CPU interrupted on write */ @@ -46,7 +46,7 @@ static INTERRUPT_GEN( mouser_nmi_interrupt ) static WRITE8_HANDLER( mouser_sound_interrupt_w ) { mouser_sound_byte = data; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ8_HANDLER( mouser_sound_byte_r ) diff --git a/src/mame/drivers/mpu4.c b/src/mame/drivers/mpu4.c index 24c3427a946..f2532f2c7d3 100644 --- a/src/mame/drivers/mpu4.c +++ b/src/mame/drivers/mpu4.c @@ -453,12 +453,12 @@ static void cpu0_irq(running_machine *machine, int state) if (!serial_card_connected) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); LOG(("6809 int%d \n", combined_state)); } else { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); LOG(("6809 fint%d \n", combined_state)); } } diff --git a/src/mame/drivers/mpu4drvr.c b/src/mame/drivers/mpu4drvr.c index 305f9a23fb9..9dd30dde354 100644 --- a/src/mame/drivers/mpu4drvr.c +++ b/src/mame/drivers/mpu4drvr.c @@ -230,7 +230,7 @@ static MACHINE_RESET( mpu4_vid ) { ROC10937_reset(0); -/* cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); */ +/* cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); */ mpu4_stepper_reset(); lamp_strobe = 0; @@ -271,9 +271,9 @@ static MACHINE_RESET( mpu4_vid ) static void update_mpu68_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 1, 1, m6840_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 2, m6850_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 3, scn2674_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 1, m6840_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 2, m6850_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 3, scn2674_irq_state ? ASSERT_LINE : CLEAR_LINE); } /* Communications with 6809 board */ @@ -282,7 +282,7 @@ static void update_mpu68_interrupts(running_machine *machine) static void m6809_acia_irq(int state) { m68k_acia_cts = state; - cpunum_set_input_line(Machine, 0, M6809_IRQ_LINE, state?ASSERT_LINE:CLEAR_LINE); + cpu_set_input_line(Machine->cpu[0], M6809_IRQ_LINE, state?ASSERT_LINE:CLEAR_LINE); } @@ -1328,7 +1328,7 @@ INPUT_PORTS_END static INTERRUPT_GEN(mpu4_vid_irq) { LOGSTUFF(("scn2674_irq_mask %02x\n",scn2674_irq_mask)); - if (cpu_getiloops()==0) /* vbl */ + if (cpu_getiloops(device)==0) /* vbl */ { /* if (scn2674_display_enabled) ? */ { @@ -1336,7 +1336,7 @@ static INTERRUPT_GEN(mpu4_vid_irq) { LOGSTUFF(("vblank irq\n")); scn2674_irq_state = 1; - update_mpu68_interrupts(machine); + update_mpu68_interrupts(device->machine); scn2674_irq_register |= 0x10; } @@ -1607,7 +1607,7 @@ static VIDEO_UPDATE(dealem) static MC6845_ON_VSYNC_CHANGED( dealem_vsync_changed ) { - cpunum_set_input_line(device->machine, 0, INPUT_LINE_NMI, vsync); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_NMI, vsync); } /************************************* diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c index 4070626031d..a101c48f700 100644 --- a/src/mame/drivers/mrflea.c +++ b/src/mame/drivers/mrflea.c @@ -127,7 +127,7 @@ static WRITE8_HANDLER( mrflea_main_w ){ static WRITE8_HANDLER( mrflea_io_w ){ mrflea_status |= 0x08; // pending command to IO CPU mrflea_io = data; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } static READ8_HANDLER( mrflea_main_r ){ @@ -155,8 +155,8 @@ static READ8_HANDLER( mrflea_io_status_r ){ } static INTERRUPT_GEN( mrflea_io_interrupt ){ - if( cpu_getiloops()==0 || (mrflea_status&0x08) ) - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + if( cpu_getiloops(device)==0 || (mrflea_status&0x08) ) + cpu_set_input_line(device, 0, HOLD_LINE); } static READ8_HANDLER( mrflea_interrupt_type_r ){ diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c index 6f3cdd3d7ea..2d6051d130d 100644 --- a/src/mame/drivers/ms32.c +++ b/src/mame/drivers/ms32.c @@ -222,10 +222,10 @@ static READ32_HANDLER( ms32_read_inputs3 ) static WRITE32_HANDLER( ms32_sound_w ) { soundlatch_w(machine,0, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); // give the Z80 time to respond - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } static READ32_HANDLER( ms32_sound_r ) @@ -235,7 +235,7 @@ static READ32_HANDLER( ms32_sound_r ) static WRITE32_HANDLER( reset_sub_w ) { - if(data) cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); // 0 too ? + if(data) cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); // 0 too ? } @@ -1097,27 +1097,27 @@ static IRQ_CALLBACK(irq_callback) for(i=15; i>=0 && !(irqreq & (1<cpu[0], 0, CLEAR_LINE); + cpu_set_irq_callback(machine->cpu[0], irq_callback); } static void irq_raise(running_machine *machine, int level) { irqreq |= (1<cpu[0], 0, ASSERT_LINE); } static INTERRUPT_GEN(ms32_interrupt) { - if( cpu_getiloops() == 0 ) irq_raise(machine, 10); - if( cpu_getiloops() == 1 ) irq_raise(machine, 9); + if( cpu_getiloops(device) == 0 ) irq_raise(device->machine, 10); + if( cpu_getiloops(device) == 1 ) irq_raise(device->machine, 9); /* hayaosi2 needs at least 12 IRQ 0 per frame to work (see code at FFE02289) kirarast needs it too, at least 8 per frame, but waits for a variable amount 47pi2 needs ?? per frame (otherwise it hangs when you lose) @@ -1126,7 +1126,7 @@ static INTERRUPT_GEN(ms32_interrupt) desertwr p47aces */ - if( cpu_getiloops() >= 3 && cpu_getiloops() <= 32 ) irq_raise(machine, 0); + if( cpu_getiloops(device) >= 3 && cpu_getiloops(device) <= 32 ) irq_raise(device->machine, 0); } /********** SOUND **********/ @@ -1154,7 +1154,7 @@ static INTERRUPT_GEN(ms32_interrupt) static READ8_HANDLER( latch_r ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); return soundlatch_r(machine,0)^0xff; } diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c index 2171aa230d6..272d84e8b3b 100644 --- a/src/mame/drivers/msisaac.c +++ b/src/mame/drivers/msisaac.c @@ -48,7 +48,7 @@ static int sound_nmi_enable,pending_nmi; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -68,7 +68,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c index 4e44194bb0a..1928dcedf37 100644 --- a/src/mame/drivers/mugsmash.c +++ b/src/mame/drivers/mugsmash.c @@ -62,7 +62,7 @@ static WRITE16_HANDLER( mugsmash_reg2_w ) { case 1: soundlatch_w(machine,1,data&0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); break; default: @@ -418,7 +418,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0 , irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c index 58e3c427b94..34a0652b9d4 100644 --- a/src/mame/drivers/multigam.c +++ b/src/mame/drivers/multigam.c @@ -213,7 +213,7 @@ static void multigam3_mmc3_scanline_cb( int num, int scanline, int vblank, int b if ( --multigam3_mmc3_scanline_counter == -1 ) { multigam3_mmc3_scanline_counter = multigam3_mmc3_scanline_latch; - cpunum_set_input_line(Machine, 0, 0, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[0], 0, PULSE_LINE ); } } } @@ -515,7 +515,7 @@ static PALETTE_INIT( multigam ) static void ppu_irq( int num, int *ppu_regs ) { - cpunum_set_input_line(Machine, num, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[num], INPUT_LINE_NMI, PULSE_LINE ); } /* our ppu interface */ diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c index 73316df710e..7564aa08487 100644 --- a/src/mame/drivers/munchmo.c +++ b/src/mame/drivers/munchmo.c @@ -56,19 +56,19 @@ static INTERRUPT_GEN( mnchmobl_interrupt ) { static int which; which = !which; - if( which ) cpunum_set_input_line(machine, 0, 0, HOLD_LINE); - else if( mnchmobl_nmi_enable ) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if( which ) cpu_set_input_line(device, 0, HOLD_LINE); + else if( mnchmobl_nmi_enable ) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( mnchmobl_soundlatch_w ) { soundlatch_w( machine, offset, data ); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } static WRITE8_HANDLER( sound_nmi_ack_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } static CUSTOM_INPUT( mnchmobl_bonus_r ) diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c index cb26cbcdb64..f5045825741 100644 --- a/src/mame/drivers/mustache.c +++ b/src/mame/drivers/mustache.c @@ -175,12 +175,12 @@ GFXDECODE_END static TIMER_CALLBACK( clear_irq_cb ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( assert_irq ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); timer_set(ATTOTIME_IN_CYCLES(14288, 0), NULL, 0, clear_irq_cb); /* Timing here is an educated GUESS, Z80 /INT must stay high so the irq fires no less than TWICE per frame, else game doesn't work right. diff --git a/src/mame/drivers/mystston.c b/src/mame/drivers/mystston.c index c15b2e8d255..b2bd03a7cbb 100644 --- a/src/mame/drivers/mystston.c +++ b/src/mame/drivers/mystston.c @@ -38,13 +38,13 @@ void mystston_on_scanline_interrupt(running_machine *machine) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } static WRITE8_HANDLER( irq_clear_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -58,7 +58,7 @@ static WRITE8_HANDLER( irq_clear_w ) static INPUT_CHANGED( coin_inserted ) { /* coin insertion causes an NMI */ - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index 151335cb108..c195ebcfae6 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -198,36 +198,36 @@ static INTERRUPT_GEN(mystwarr_interrupt) { if (!(mw_irq_control & 0x01)) return; - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, MC68000_IRQ_2, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_2, HOLD_LINE); break; case 1: - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_4, HOLD_LINE); break; case 2: - cpunum_set_input_line(machine, 0, MC68000_IRQ_6, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_6, HOLD_LINE); break; } } static INTERRUPT_GEN(metamrph_interrupt) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_4, HOLD_LINE); break; case 15: - cpunum_set_input_line(machine, 0, MC68000_IRQ_6, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_6, HOLD_LINE); break; case 39: - if (K053246_is_IRQ_enabled()) cpunum_set_input_line(machine, 0, MC68000_IRQ_5, HOLD_LINE); + if (K053246_is_IRQ_enabled()) cpu_set_input_line(device, MC68000_IRQ_5, HOLD_LINE); break; } } @@ -236,21 +236,21 @@ static INTERRUPT_GEN(mchamp_interrupt) { if (!(mw_irq_control & 0x02)) return; - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - if (K053246_is_IRQ_enabled()) cpunum_set_input_line(machine, 0, MC68000_IRQ_6, HOLD_LINE); + if (K053246_is_IRQ_enabled()) cpu_set_input_line(device, MC68000_IRQ_6, HOLD_LINE); break; case 1: - cpunum_set_input_line(machine, 0, MC68000_IRQ_2, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_2, HOLD_LINE); break; } } static INTERRUPT_GEN(ddd_interrupt) { - cpunum_set_input_line(machine, 0, MC68000_IRQ_5, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_5, HOLD_LINE); } @@ -280,7 +280,7 @@ static WRITE16_HANDLER( sound_cmd2_msb_w ) static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ16_HANDLER( sound_status_r ) diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c index 5386a3fba30..2117a59b8c9 100644 --- a/src/mame/drivers/n8080.c +++ b/src/mame/drivers/n8080.c @@ -36,10 +36,10 @@ static READ8_HANDLER( n8080_shift_r ) static INTERRUPT_GEN( interrupt ) { - if (video_screen_get_vblank(machine->primary_screen)) - cpunum_set_input_line_and_vector(machine, 0, 0, PULSE_LINE, 0xcf); /* RST $08 */ + if (video_screen_get_vblank(device->machine->primary_screen)) + cpu_set_input_line_and_vector(device, 0, PULSE_LINE, 0xcf); /* RST $08 */ else - cpunum_set_input_line_and_vector(machine, 0, 0, PULSE_LINE, 0xd7); /* RST $10 */ + cpu_set_input_line_and_vector(device, 0, PULSE_LINE, 0xd7); /* RST $10 */ } diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 4e428f233f5..ed7f080980c 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -348,14 +348,14 @@ GFXDECODE_END static TIMER_CALLBACK( network_interrupt_callback ) { - cpunum_set_input_line(machine, 0, I960_IRQ0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], I960_IRQ0, ASSERT_LINE); timer_set(video_screen_get_frame_period(machine->primary_screen), NULL, 0, network_interrupt_callback); } static TIMER_CALLBACK( vblank_interrupt_callback ) { - cpunum_set_input_line(machine, 0, I960_IRQ2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], I960_IRQ2, ASSERT_LINE); timer_set(video_screen_get_frame_period(machine->primary_screen), NULL, 0, vblank_interrupt_callback); } @@ -363,7 +363,7 @@ static TIMER_CALLBACK( vblank_interrupt_callback ) static TIMER_CALLBACK( raster_interrupt_callback ) { video_screen_update_partial(machine->primary_screen, video_screen_get_vpos(machine->primary_screen)); - cpunum_set_input_line(machine, 0, I960_IRQ1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], I960_IRQ1, ASSERT_LINE); timer_adjust_oneshot(raster_interrupt_timer, video_screen_get_frame_period(machine->primary_screen), 0); } diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index 235f21c32e1..a19873760d9 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -721,7 +721,7 @@ static WRITE16_HANDLER( mcu_mailbox_w_68k ) // logerror("mailbox_w_68k: %x @ %x\n", data, offset); if (offset == 4) - cpunum_set_input_line(machine, 1, M37710_LINE_IRQ0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M37710_LINE_IRQ0, HOLD_LINE); COMBINE_DATA(&mcu_mailbox[offset%8]); @@ -846,7 +846,7 @@ static WRITE8_HANDLER( port4_w ) logerror("launching 68k, PC=%x\n", cpu_get_pc(machine->activecpu)); // reset and launch the 68k - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, CLEAR_LINE); } mcu_port4 = data; @@ -925,7 +925,7 @@ static MACHINE_START( namcona1 ) // for games with the MCU emulated, the MCU boots the 68000. don't allow it before that. static MACHINE_RESET( namcona1_mcu ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, ASSERT_LINE); mcu_port5 = 1; } @@ -960,10 +960,10 @@ ADDRESS_MAP_END static INTERRUPT_GEN( namcona1_interrupt ) { - int level = cpu_getiloops(); /* 0,1,2,3,4 */ + int level = cpu_getiloops(device); /* 0,1,2,3,4 */ if( level==0 ) { - simulate_mcu( machine ); + simulate_mcu( device->machine ); } if( mEnableInterrupts ) { @@ -974,10 +974,10 @@ static INTERRUPT_GEN( namcona1_interrupt ) int scanline = namcona1_vreg[0x8a/2]&0xff; if( scanline ) { - video_screen_update_partial(machine->primary_screen, scanline ); + video_screen_update_partial(device->machine->primary_screen, scanline ); } } - cpunum_set_input_line(machine, 0, level+1, HOLD_LINE); + cpu_set_input_line(device, level+1, HOLD_LINE); } } } @@ -988,13 +988,13 @@ static INTERRUPT_GEN( namcona1_interrupt ) static INTERRUPT_GEN( mcu_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - cpunum_set_input_line(machine, 1, M37710_LINE_IRQ1, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_IRQ1, HOLD_LINE); } - else if (cpu_getiloops() == 1) + else if (cpu_getiloops(device) == 1) { - cpunum_set_input_line(machine, 1, M37710_LINE_ADC, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_ADC, HOLD_LINE); } } diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index 98f86468755..9e40a9f18e5 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -297,7 +297,7 @@ static TIMER_CALLBACK( namconb1_TriggerPOSIRQ ) video_screen_update_partial(machine->primary_screen, param); pos_irq_active = 1; - cpunum_set_input_line(machine, 0, namconb_cpureg[0x02] & 0xf, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], namconb_cpureg[0x02] & 0xf, ASSERT_LINE); } static INTERRUPT_GEN( namconb1_interrupt ) @@ -339,7 +339,7 @@ static INTERRUPT_GEN( namconb1_interrupt ) int scanline = (paletteram32[0x1808/4]&0xffff)-32; if((!vblank_irq_active) && (namconb_cpureg[0x04] & 0xf0)) { - cpunum_set_input_line(machine, 0, namconb_cpureg[0x04] & 0xf, ASSERT_LINE); + cpu_set_input_line(device, namconb_cpureg[0x04] & 0xf, ASSERT_LINE); vblank_irq_active = 1; } @@ -349,23 +349,23 @@ static INTERRUPT_GEN( namconb1_interrupt ) } if( scanline < NAMCONB1_VBSTART ) { - timer_set( video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, namconb1_TriggerPOSIRQ ); + timer_set( video_screen_get_time_until_pos(device->machine->primary_screen, scanline, 0), NULL, scanline, namconb1_TriggerPOSIRQ ); } } /* namconb1_interrupt */ static INTERRUPT_GEN( mcu_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - cpunum_set_input_line(machine, 1, M37710_LINE_IRQ0, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE); } - else if (cpu_getiloops() == 1) + else if (cpu_getiloops(device) == 1) { - cpunum_set_input_line(machine, 1, M37710_LINE_IRQ2, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_IRQ2, HOLD_LINE); } else { - cpunum_set_input_line(machine, 1, M37710_LINE_ADC, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_ADC, HOLD_LINE); } } @@ -373,7 +373,7 @@ static TIMER_CALLBACK( namconb2_TriggerPOSIRQ ) { video_screen_update_partial(machine->primary_screen, param); pos_irq_active = 1; - cpunum_set_input_line(machine, 0, namconb_cpureg[0x02], ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], namconb_cpureg[0x02], ASSERT_LINE); } static INTERRUPT_GEN( namconb2_interrupt ) @@ -410,7 +410,7 @@ static INTERRUPT_GEN( namconb2_interrupt ) int scanline = (paletteram32[0x1808/4]&0xffff)-32; if((!vblank_irq_active) && namconb_cpureg[0x00]) { - cpunum_set_input_line(machine, 0, namconb_cpureg[0x00], ASSERT_LINE); + cpu_set_input_line(device, namconb_cpureg[0x00], ASSERT_LINE); vblank_irq_active = 1; } @@ -418,7 +418,7 @@ static INTERRUPT_GEN( namconb2_interrupt ) scanline = 0; if( scanline < NAMCONB1_VBSTART ) - timer_set( video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, namconb2_TriggerPOSIRQ ); + timer_set( video_screen_get_time_until_pos(device->machine->primary_screen, scanline, 0), NULL, scanline, namconb2_TriggerPOSIRQ ); } /* namconb2_interrupt */ static void namconb1_cpureg8_w(running_machine *machine, int reg, UINT8 data) @@ -428,9 +428,9 @@ static void namconb1_cpureg8_w(running_machine *machine, int reg, UINT8 data) switch(reg) { case 0x02: // POS IRQ level/enable if(pos_irq_active && (((prev & 0xf) != (data & 0xf)) || !(data & 0xf0))) { - cpunum_set_input_line(machine, 0, prev & 0xf, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], prev & 0xf, CLEAR_LINE); if(data & 0xf0) - cpunum_set_input_line(machine, 0, data & 0xf, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], data & 0xf, ASSERT_LINE); else pos_irq_active = 0; } @@ -438,9 +438,9 @@ static void namconb1_cpureg8_w(running_machine *machine, int reg, UINT8 data) case 0x04: // VBLANK IRQ level/enable if(vblank_irq_active && (((prev & 0xf) != (data & 0xf)) || !(data & 0xf0))) { - cpunum_set_input_line(machine, 0, prev & 0xf, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], prev & 0xf, CLEAR_LINE); if(data & 0xf0) - cpunum_set_input_line(machine, 0, data & 0xf, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], data & 0xf, ASSERT_LINE); else vblank_irq_active = 0; } @@ -448,14 +448,14 @@ static void namconb1_cpureg8_w(running_machine *machine, int reg, UINT8 data) case 0x07: // POS ack if(pos_irq_active) { - cpunum_set_input_line(machine, 0, namconb_cpureg[0x02] & 0xf, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], namconb_cpureg[0x02] & 0xf, CLEAR_LINE); pos_irq_active = 0; } break; case 0x09: // VBLANK ack if(vblank_irq_active) { - cpunum_set_input_line(machine, 0, namconb_cpureg[0x04] & 0xf, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], namconb_cpureg[0x04] & 0xf, CLEAR_LINE); vblank_irq_active = 0; } break; @@ -465,11 +465,11 @@ static void namconb1_cpureg8_w(running_machine *machine, int reg, UINT8 data) case 0x18: // C75 Control if(data & 1) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } else - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); break; } } @@ -494,9 +494,9 @@ static void namconb2_cpureg8_w(running_machine *machine, int reg, UINT8 data) switch(reg) { case 0x00: // VBLANK IRQ level if(vblank_irq_active && (prev != data)) { - cpunum_set_input_line(machine, 0, prev, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], prev, CLEAR_LINE); if(data) - cpunum_set_input_line(machine, 0, data, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], data, ASSERT_LINE); else vblank_irq_active = 0; } @@ -504,9 +504,9 @@ static void namconb2_cpureg8_w(running_machine *machine, int reg, UINT8 data) case 0x02: // POS IRQ level if(pos_irq_active && (prev != data)) { - cpunum_set_input_line(machine, 0, prev, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], prev, CLEAR_LINE); if(data) - cpunum_set_input_line(machine, 0, data, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], data, ASSERT_LINE); else pos_irq_active = 0; } @@ -514,14 +514,14 @@ static void namconb2_cpureg8_w(running_machine *machine, int reg, UINT8 data) case 0x04: // VBLANK ack if(vblank_irq_active) { - cpunum_set_input_line(machine, 0, namconb_cpureg[0x00], CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], namconb_cpureg[0x00], CLEAR_LINE); vblank_irq_active = 0; } break; case 0x06: // POS ack if(pos_irq_active) { - cpunum_set_input_line(machine, 0, namconb_cpureg[0x02], CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], namconb_cpureg[0x02], CLEAR_LINE); pos_irq_active = 0; } break; @@ -531,11 +531,11 @@ static void namconb2_cpureg8_w(running_machine *machine, int reg, UINT8 data) case 0x16: // C75 Control if(data & 1) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } else { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } break; } @@ -893,7 +893,7 @@ static WRITE16_HANDLER( nbmcu_shared_w ) // C74 BIOS has a very short window on the CPU sync signal, so immediately let the '020 at it if ((offset == 0x6000/2) && (data & 0x80)) { - cpu_spinuntil_time(ATTOTIME_IN_CYCLES(300, 1)); // was 300 + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_CYCLES(300, 1)); // was 300 } } diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c index 11c47fcaafb..2c9803dbd1e 100644 --- a/src/mame/drivers/namcond1.c +++ b/src/mame/drivers/namcond1.c @@ -268,7 +268,7 @@ static INTERRUPT_GEN( mcu_interrupt ) { if( namcond1_h8_irq5_enabled ) { - cpunum_set_input_line(machine, 1, H8_IRQ5, PULSE_LINE); + cpu_set_input_line(device, H8_IRQ5, PULSE_LINE); } } diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c index 8c1aff901f8..10758a87da6 100644 --- a/src/mame/drivers/namcos1.c +++ b/src/mame/drivers/namcos1.c @@ -353,17 +353,17 @@ static int dac0_value, dac1_value, dac0_gain, dac1_gain; static WRITE8_HANDLER( namcos1_sub_firq_w ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, ASSERT_LINE); } static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, cpunum_get_active(), 0, CLEAR_LINE); + cpu_set_input_line(machine->activecpu, 0, CLEAR_LINE); } static WRITE8_HANDLER( firq_ack_w ) { - cpunum_set_input_line(machine, cpunum_get_active(), M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->activecpu, M6809_FIRQ_LINE, CLEAR_LINE); } @@ -949,7 +949,7 @@ GFXDECODE_END static void namcos1_sound_interrupt( running_machine *machine, int irq ) { - cpunum_set_input_line(machine, 2, M6809_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], M6809_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c index 0af6f72d176..dc2ea308b30 100644 --- a/src/mame/drivers/namcos11.c +++ b/src/mame/drivers/namcos11.c @@ -574,16 +574,16 @@ static INTERRUPT_GEN( namcos11_vblank ) UINT16 n_coin; UINT32 n_input; - n_input = ( input_port_read(machine, "PLAYER1" ) << 16 ); + n_input = ( input_port_read(device->machine, "PLAYER1" ) << 16 ); SHRAM( 0xbd00 ) = n_input | ( ( n_input & ~SHRAM( 0xbd00 ) ) >> 8 ) | ( SHRAM( 0xbd00 ) & 0x0000ffff ); - n_input = input_port_read(machine, "PLAYER2" ) | ( input_port_read(machine, "PLAYER3" ) << 16 ); + n_input = input_port_read(device->machine, "PLAYER2" ) | ( input_port_read(device->machine, "PLAYER3" ) << 16 ); SHRAM( 0xbd04 ) = n_input | ( ( n_input & ~SHRAM( 0xbd04 ) ) >> 8 ); - n_input = input_port_read(machine, "PLAYER4" ); + n_input = input_port_read(device->machine, "PLAYER4" ); SHRAM( 0xbd08 ) = n_input | ( ( n_input & ~SHRAM( 0xbd08 ) ) >> 8 ) | ( SHRAM( 0xbd08 ) & 0xffff0000 ); - n_coin = input_port_read(machine, "COIN" ); + n_coin = input_port_read(device->machine, "COIN" ); if( ( n_coin & m_n_oldcoin & 0x08 ) != 0 ) { @@ -603,7 +603,7 @@ static INTERRUPT_GEN( namcos11_vblank ) } m_n_oldcoin = ~n_coin; - if( strcmp( machine->gamedrv->name, "pocketrc" ) == 0 ) + if( strcmp( device->machine->gamedrv->name, "pocketrc" ) == 0 ) { if( g_p_n_psxram[ 0x12c74 / 4 ] == 0x1440fff9 ) { @@ -616,7 +616,7 @@ static INTERRUPT_GEN( namcos11_vblank ) if( ( SHRAM( 0xbe88 ) & 0x0000ffff ) == 2 ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE ); + cpu_set_input_line(device, INPUT_LINE_RESET, PULSE_LINE ); memset( namcos11_keycus, 0, namcos11_keycus_size ); SHRAM( 0xbe88 ) = ( SHRAM( 0xbe88 ) & 0xffff0000 ); @@ -624,11 +624,11 @@ static INTERRUPT_GEN( namcos11_vblank ) SHRAM( 0xbd30 ) = ( SHRAM( 0xbd30 ) & 0x0000ffff ) | ( 0x0080 << 16 ); - SHRAM( 0xbd08 ) = ( SHRAM( 0xbd08 ) & 0x0000ffff ) | ( ( input_port_read(machine, "STEERING" ) - 0x8000 ) << 16 ); - SHRAM( 0xbd0c ) = ( SHRAM( 0xbd0c ) & 0xffff0000 ) | ( input_port_read(machine, "GAS" ) << 0 ); + SHRAM( 0xbd08 ) = ( SHRAM( 0xbd08 ) & 0x0000ffff ) | ( ( input_port_read(device->machine, "STEERING" ) - 0x8000 ) << 16 ); + SHRAM( 0xbd0c ) = ( SHRAM( 0xbd0c ) & 0xffff0000 ) | ( input_port_read(device->machine, "GAS" ) << 0 ); } - psx_vblank(machine, cpunum); + psx_vblank(device); } static TIMER_CALLBACK( mcu_timer ) diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c index 2b8a60be1b8..099980c7830 100644 --- a/src/mame/drivers/namcos21.c +++ b/src/mame/drivers/namcos21.c @@ -552,8 +552,8 @@ namcos21_kickstart( running_machine *machine, int internal ) mpDspState->slaveOutputSize = 0; mpDspState->masterFinished = 0; mpDspState->slaveActive = 0; - cpunum_set_input_line(machine, 4, 0, HOLD_LINE); /* DSP: master */ - cpunum_set_input_line(machine, 5, INPUT_LINE_RESET, PULSE_LINE); /* DSP: slave */ + cpu_set_input_line(machine->cpu[4], 0, HOLD_LINE); /* DSP: master */ + cpu_set_input_line(machine->cpu[5], INPUT_LINE_RESET, PULSE_LINE); /* DSP: slave */ } static UINT16 @@ -609,7 +609,7 @@ static WRITE16_HANDLER( dspram16_w ) offset == 0x103 && cpunum_get_active()==0 ) { /* hack; synchronization for solvalou */ - cpu_yield(); + cpu_yield(machine->activecpu); } } } /* dspram16_w */ @@ -1261,7 +1261,7 @@ static WRITE16_HANDLER( winrun_dsp_complete_w ) if( data ) { winrun_flushpoly(); - cpunum_set_input_line(machine, 4, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[4], INPUT_LINE_RESET, PULSE_LINE); namcos21_ClearPolyFrameBuffer(); } } diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index 2a019a75f71..d5b1da4f74a 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -1338,9 +1338,9 @@ static void InitDSP( running_machine *machine, int bSuperSystem22 ) { mbSuperSystem22 = bSuperSystem22; - cpunum_set_input_line(machine, 1,INPUT_LINE_RESET,ASSERT_LINE); /* master DSP */ - cpunum_set_input_line(machine, 2,INPUT_LINE_RESET,ASSERT_LINE); /* slave DSP */ - cpunum_set_input_line(machine, 3,INPUT_LINE_RESET,ASSERT_LINE); /* MCU */ + cpu_set_input_line(machine->cpu[1],INPUT_LINE_RESET,ASSERT_LINE); /* master DSP */ + cpu_set_input_line(machine->cpu[2],INPUT_LINE_RESET,ASSERT_LINE); /* slave DSP */ + cpu_set_input_line(machine->cpu[3],INPUT_LINE_RESET,ASSERT_LINE); /* MCU */ } /* InitDSP */ static READ16_HANDLER( pdp_status_r ) @@ -1520,12 +1520,12 @@ static WRITE16_HANDLER( slave_external_ram_w ) static void HaltSlaveDSP( running_machine *machine ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } static void EnableSlaveDSP( void ) { -// cpunum_set_input_line(Machine, 2, INPUT_LINE_RESET, CLEAR_LINE); +// cpu_set_input_line(Machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); } static READ16_HANDLER( dsp_HOLD_signal_r ) @@ -1703,14 +1703,14 @@ static INTERRUPT_GEN( dsp_serial_pulse1 ) { mSerialDataSlaveToMasterCurrent = mSerialDataSlaveToMasterNext; - if( cpu_getiloops()==0 ) + if( cpu_getiloops(device)==0 ) { - cpunum_set_input_line(machine, 1, TMS32025_INT0, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], TMS32025_INT0, HOLD_LINE); } - cpunum_set_input_line(machine, 1, TMS32025_RINT, HOLD_LINE); - cpunum_set_input_line(machine, 1, TMS32025_XINT, HOLD_LINE); - cpunum_set_input_line(machine, 2, TMS32025_RINT, HOLD_LINE); - cpunum_set_input_line(machine, 2, TMS32025_XINT, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], TMS32025_RINT, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[1], TMS32025_XINT, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[2], TMS32025_RINT, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[2], TMS32025_XINT, HOLD_LINE); } } @@ -2098,7 +2098,7 @@ GetDspControlRegister( void ) */ static TIMER_CALLBACK( start_subcpu ) { - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, CLEAR_LINE); } static WRITE32_HANDLER( namcos22_system_controller_w ) @@ -2135,11 +2135,11 @@ static WRITE32_HANDLER( namcos22_system_controller_w ) { /* SUBCPU enable for Super System 22 */ if (data) { - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, CLEAR_LINE); } else { - cpunum_set_input_line(machine, 3,INPUT_LINE_RESET,ASSERT_LINE); /* M37710 MCU */ + cpu_set_input_line(machine->cpu[3],INPUT_LINE_RESET,ASSERT_LINE); /* M37710 MCU */ } } } @@ -2161,19 +2161,19 @@ static WRITE32_HANDLER( namcos22_system_controller_w ) { if( newReg == 0 ) { /* disable DSPs */ - cpunum_set_input_line(machine, 1,INPUT_LINE_RESET,ASSERT_LINE); /* master DSP */ - cpunum_set_input_line(machine, 2,INPUT_LINE_RESET,ASSERT_LINE); /* slave DSP */ + cpu_set_input_line(machine->cpu[1],INPUT_LINE_RESET,ASSERT_LINE); /* master DSP */ + cpu_set_input_line(machine->cpu[2],INPUT_LINE_RESET,ASSERT_LINE); /* slave DSP */ mbEnableDspIrqs = 0; } else if( newReg==1 ) { /*enable dsp and rendering subsystem */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); namcos22_enable_slave_simulation(); mbEnableDspIrqs = 1; } else if( newReg==0xff ) { /* used to upload game-specific code to master/slave dsps */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); mbEnableDspIrqs = 0; } } @@ -2193,10 +2193,10 @@ static WRITE32_HANDLER( namcos22_system_controller_w ) */ static INTERRUPT_GEN( namcos22s_interrupt ) { - if( cpu_getiloops() == 0 ) + if( cpu_getiloops(device) == 0 ) { int vblank_level = nthbyte(namcos22_system_controller,0x00)&0x7; /* $700004: ack */ - cpunum_set_input_line(machine, 0, vblank_level, HOLD_LINE); + cpu_set_input_line(device, vblank_level, HOLD_LINE); mFrameCount++; } else @@ -2204,7 +2204,7 @@ static INTERRUPT_GEN( namcos22s_interrupt ) //int scanline_level = nthbyte(namcos22_system_controller,0x01)&0x7; /* $700005: ack */ //int sci_level = nthbyte(namcos22_system_controller,0x02)&0x7; /* $700006: ack */ //int unk_irq = nthbyte(namcos22_system_controller,0x03)&0x7; /* $700007: ack */ - //cpunum_set_input_line(machine, 0, sci_level, HOLD_LINE); + //cpu_set_input_line(device, sci_level, HOLD_LINE); } } @@ -2600,7 +2600,7 @@ static READ8_HANDLER( propcycle_mcu_adc_r ) int i; for (i = 0; i < 16; i++) { - cpunum_set_input_line(machine, 3, M37710_LINE_TIMERA3TICK, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], M37710_LINE_TIMERA3TICK, PULSE_LINE); } } @@ -2755,17 +2755,17 @@ ADDRESS_MAP_END static INTERRUPT_GEN( mcu_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - cpunum_set_input_line(machine, 3, M37710_LINE_IRQ0, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_IRQ0, HOLD_LINE); } - else if (cpu_getiloops() == 1) + else if (cpu_getiloops(device) == 1) { - cpunum_set_input_line(machine, 3, M37710_LINE_IRQ2, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_IRQ2, HOLD_LINE); } else { - cpunum_set_input_line(machine, 3, M37710_LINE_ADC, HOLD_LINE); + cpu_set_input_line(device, M37710_LINE_ADC, HOLD_LINE); } } @@ -3091,7 +3091,7 @@ static INTERRUPT_GEN( namcos22_interrupt ) switch( namcos22_gametype ) { case NAMCOS22_RIDGE_RACER: - HandleDrivingIO(machine); + HandleDrivingIO(device->machine); irq_level1 = 4; irq_level2 = 5; // 1:0a0b6 @@ -3104,7 +3104,7 @@ static INTERRUPT_GEN( namcos22_interrupt ) break; case NAMCOS22_RIDGE_RACER2: - HandleDrivingIO(machine); + HandleDrivingIO(device->machine); irq_level1 = 1; irq_level2 = 5; //1:0d10c 40000005 @@ -3117,11 +3117,11 @@ static INTERRUPT_GEN( namcos22_interrupt ) break; case NAMCOS22_RAVE_RACER: - HandleDrivingIO(machine); + HandleDrivingIO(device->machine); break; case NAMCOS22_VICTORY_LAP: - HandleDrivingIO(machine); + HandleDrivingIO(device->machine); // a54 indir to 21c2 (hblank?) // a5a (rte) // a5c (rte) @@ -3134,7 +3134,7 @@ static INTERRUPT_GEN( namcos22_interrupt ) break; case NAMCOS22_ACE_DRIVER: - HandleDrivingIO(machine); + HandleDrivingIO(device->machine); // 9f8 (rte) // 9fa (rte) // 9fc (rte) @@ -3152,7 +3152,7 @@ static INTERRUPT_GEN( namcos22_interrupt ) //move.b #$35, $40000004.l // //move.b #$34, $40000004.l - HandleCyberCommandoIO(machine); + HandleCyberCommandoIO(device->machine); irq_level1 = nthbyte(namcos22_system_controller,0x04)&0x7; irq_level2 = nthbyte(namcos22_system_controller,0x02)&0x7; break; @@ -3161,18 +3161,18 @@ static INTERRUPT_GEN( namcos22_interrupt ) break; } - switch( cpu_getiloops() ) + switch( cpu_getiloops(device) ) { case 0: if( irq_level1 ) { - cpunum_set_input_line(machine, 0, irq_level1, HOLD_LINE); /* vblank */ + cpu_set_input_line(device, irq_level1, HOLD_LINE); /* vblank */ } break; case 1: if( irq_level2 ) { - cpunum_set_input_line(machine, 0, irq_level2, HOLD_LINE); /* SCI */ + cpu_set_input_line(device, irq_level2, HOLD_LINE); /* SCI */ } break; } @@ -5057,7 +5057,7 @@ static READ16_HANDLER( mcu141_speedup_r ) { if ((cpu_get_pc(machine->activecpu) == 0xc12d) && (!(su_82 & 0xff00))) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return su_82; @@ -5073,7 +5073,7 @@ static READ16_HANDLER( mcu130_speedup_r ) { if ((cpu_get_pc(machine->activecpu) == 0xc12a) && (!(su_82 & 0xff00))) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return su_82; @@ -5084,7 +5084,7 @@ static READ16_HANDLER( mcuc74_speedup_r ) { if (((cpu_get_pc(machine->activecpu) == 0xc0df) || (cpu_get_pc(machine->activecpu) == 0xc101)) && (!(su_82 & 0xff00))) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return su_82; diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index c7f0f44d138..c14f9e2c550 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -1013,12 +1013,12 @@ static WRITE32_HANDLER( s23_mcuen_w ) if (data) { logerror("S23: booting H8/3002\n"); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } else { logerror("S23: stopping H8/3002\n"); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } } } diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c index 4937b6448be..12ce79b1411 100644 --- a/src/mame/drivers/namcos86.c +++ b/src/mame/drivers/namcos86.c @@ -265,12 +265,12 @@ static READ8_HANDLER( dsw1_r ) static WRITE8_HANDLER( int_ack1_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( int_ack2_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c index ea5642a4537..93ea8ba69bf 100644 --- a/src/mame/drivers/naomi.c +++ b/src/mame/drivers/naomi.c @@ -671,7 +671,7 @@ UINT32 dma_offset; static INTERRUPT_GEN( naomi_vblank ) { - dc_vblank(machine); + dc_vblank(device->machine); } static READ64_HANDLER( naomi_arm_r ) @@ -939,7 +939,7 @@ static READ32_HANDLER( test1 ) static void aica_irq(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, ARM7_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], ARM7_FIRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); } static ADDRESS_MAP_START( dc_audio_map, ADDRESS_SPACE_PROGRAM, 32 ) diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c index 1670bf683fb..6e11a052482 100644 --- a/src/mame/drivers/naughtyb.c +++ b/src/mame/drivers/naughtyb.c @@ -217,8 +217,8 @@ ADDRESS_MAP_END static INTERRUPT_GEN( naughtyb_interrupt ) { - if (input_port_read(machine, "FAKE") & 1) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "FAKE") & 1) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static INPUT_PORTS_START( naughtyb ) diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c index 228e3132046..f3c2972edcc 100644 --- a/src/mame/drivers/nbmj9195.c +++ b/src/mame/drivers/nbmj9195.c @@ -472,18 +472,18 @@ static WRITE8_HANDLER( tmpz84c011_1_dir_pe_w ) { pio_dir[9] = data; } static void ctc0_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 0, 0, state); + cpu_set_input_line(device->machine->cpu[0], 0, state); } static void ctc1_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 1, 0, state); + cpu_set_input_line(device->machine->cpu[1], 0, state); } /* CTC of main cpu, ch0 trigger is vblank */ static INTERRUPT_GEN( ctc0_trg1 ) { - const device_config *ctc = devtag_get_device(machine, Z80CTC, "main_ctc"); + const device_config *ctc = devtag_get_device(device->machine, Z80CTC, "main_ctc"); z80ctc_trg1_w(ctc, 0, 1); z80ctc_trg1_w(ctc, 0, 0); } diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index 5da2e2cff90..e1fe83e7ce6 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -72,7 +72,7 @@ static MACHINE_RESET( nemesis ) static INTERRUPT_GEN( nemesis_interrupt ) { if (irq_on) - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } @@ -80,7 +80,7 @@ static WRITE16_HANDLER( salamand_soundlatch_word_w ) { if(ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } @@ -88,30 +88,30 @@ static int gx400_irq1_cnt; static INTERRUPT_GEN( konamigt_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - if ( (irq_on) && (gx400_irq1_cnt++ & 1) ) cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + if ( (irq_on) && (gx400_irq1_cnt++ & 1) ) cpu_set_input_line(device, 1, HOLD_LINE); } else { - if (irq2_on) cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (irq2_on) cpu_set_input_line(device, 2, HOLD_LINE); } } static INTERRUPT_GEN( gx400_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - if (irq2_on) cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (irq2_on) cpu_set_input_line(device, 2, HOLD_LINE); break; case 1: - if ( (irq1_on) && (gx400_irq1_cnt++ & 1) ) cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + if ( (irq1_on) && (gx400_irq1_cnt++ & 1) ) cpu_set_input_line(device, 1, HOLD_LINE); break; case 2: - if (irq4_on) cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + if (irq4_on) cpu_set_input_line(device, 4, HOLD_LINE); break; } } @@ -158,13 +158,13 @@ static WRITE16_HANDLER( gx400_sharedram_word_w ) static INTERRUPT_GEN( salamand_interrupt ) { if (irq_on) - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } static INTERRUPT_GEN( blkpnthr_interrupt ) { if (irq_on) - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } static WRITE16_HANDLER( nemesis_irq_enable_word_w ) @@ -315,7 +315,7 @@ static READ8_HANDLER( nemesis_portA_r ) bit 7: unused by this software version. Bubble Memory version uses this bit. */ - int res = (activecpu_gettotalcycles() / 1024) & 0x2f; // this should be 0x0f, but it doesn't work + int res = (cpu_get_total_cycles(machine->activecpu) / 1024) & 0x2f; // this should be 0x0f, but it doesn't work res |= 0xd0; @@ -2083,7 +2083,7 @@ static const ay8910_interface ay8910_interface_2 = static void sound_irq(running_machine *machine, int state) { /* Interrupts _are_ generated, I wonder where they go.. */ -/*cpunum_set_input_line(machine, 1,0,HOLD_LINE);*/ +/*cpu_set_input_line(machine->cpu[1],0,HOLD_LINE);*/ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index d55b474ea9b..e5a652e8397 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -199,9 +199,9 @@ void neogeo_set_display_counter_lsb(running_machine *machine, UINT16 data) static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, irq3_pending ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, vblank_interrupt_pending ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, display_position_interrupt_pending ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, irq3_pending ? ASSERT_LINE : CLEAR_LINE); } @@ -287,19 +287,19 @@ static void start_interrupt_timers(running_machine *machine) static void audio_cpu_irq(running_machine *machine, int assert) { - cpunum_set_input_line(machine, 1, 0, assert ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, assert ? ASSERT_LINE : CLEAR_LINE); } static void audio_cpu_assert_nmi(running_machine *machine) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( audio_cpu_clear_nmi_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } @@ -559,7 +559,7 @@ static WRITE16_HANDLER( audio_command_w ) audio_cpu_assert_nmi(machine); /* boost the interleave to let the audio CPU read the command */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); if (LOG_CPU_COMM) logerror("MAIN CPU PC %06x: audio_command_w %04x - %04x\n", cpu_get_pc(machine->activecpu), data, mem_mask); } @@ -740,7 +740,7 @@ static void _set_audio_cpu_rom_source(running_machine *machine) { audio_cpu_rom_source_last = audio_cpu_rom_source; - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); if (LOG_AUDIO_CPU_BANKING) logerror("Audio CPU PC %03x: selectign %s ROM\n", safe_cpu_get_pc(machine->activecpu), audio_cpu_rom_source ? "CARTRIDGE" : "BIOS"); } diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c index a11a8aaa27a..fb9be5e7f34 100644 --- a/src/mame/drivers/ninjakd2.c +++ b/src/mame/drivers/ninjakd2.c @@ -145,7 +145,7 @@ static void omegaf_io_protection_reset(void); static INTERRUPT_GEN( ninjakd2_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h */ } @@ -191,7 +191,7 @@ static WRITE8_HANDLER( robokid_bankselect_w ) static WRITE8_HANDLER( ninjakd2_soundreset_w ) { // bit 4 resets sound CPU - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); // bit 7 flips screen flip_screen_set(data & 0x80); @@ -899,7 +899,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index 09eecc16473..42121f181e9 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -212,7 +212,7 @@ static void parse_control(running_machine *machine) /* assumes Z80 sandwiched be /* bit 0 enables cpu B */ /* however this fails when recovering from a save state if cpu B is disabled !! */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); } @@ -570,7 +570,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c index be3d5aee854..b84d7574288 100644 --- a/src/mame/drivers/niyanpai.c +++ b/src/mame/drivers/niyanpai.c @@ -835,7 +835,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( niyanpai_interrupt ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); } static const z80_daisy_chain daisy_chain_sound[] = diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c index 59a1c7b5b80..29a55ddc072 100644 --- a/src/mame/drivers/nmg5.c +++ b/src/mame/drivers/nmg5.c @@ -245,7 +245,7 @@ static WRITE16_HANDLER( nmg5_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -958,7 +958,7 @@ GFXDECODE_END static void soundirq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, 0, state); + cpu_set_input_line(machine->cpu[1], 0, state); } static const ym3812_interface ym3812_intf = diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c index 64f39dc295d..fc1f49349fb 100644 --- a/src/mame/drivers/nmk16.c +++ b/src/mame/drivers/nmk16.c @@ -223,7 +223,7 @@ static WRITE16_HANDLER ( ssmissin_sound_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0, HOLD_LINE); } } @@ -282,7 +282,7 @@ static WRITE16_HANDLER( macross2_sound_reset_w ) { /* PCB behaviour verified by Corrado Tomaselli at MAME Italia Forum: every time music changes Z80 is resetted */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); } static WRITE16_HANDLER( macross2_sound_command_w ) @@ -321,7 +321,7 @@ static WRITE16_HANDLER( afega_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } } @@ -3431,7 +3431,7 @@ static const ym2203_interface ym2203_nmk004_interface = static void ym2203_irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = @@ -3446,8 +3446,8 @@ static const ym2203_interface ym2203_config = static INTERRUPT_GEN( nmk_interrupt ) { - if (cpu_getiloops() == 0) cpunum_set_input_line(machine, 0, 4, HOLD_LINE); - else cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (cpu_getiloops(device) == 0) cpu_set_input_line(device, 4, HOLD_LINE); + else cpu_set_input_line(device, 2, HOLD_LINE); } @@ -4774,7 +4774,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface afega_ym2151_intf = diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c index aebec3acb71..247eaad5ee3 100644 --- a/src/mame/drivers/nwk-tr.c +++ b/src/mame/drivers/nwk-tr.c @@ -707,7 +707,7 @@ READ32_HANDLER(K001604_reg_r) static void voodoo_vblank_0(const device_config *device, int param) { - cpunum_set_input_line(device->machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_IRQ0, ASSERT_LINE); } static VIDEO_START( nwktr ) @@ -813,11 +813,11 @@ static WRITE32_HANDLER( sysreg_w ) { if (data & 0x80) // CG Board 1 IRQ Ack { - //cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + //cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); } if (data & 0x40) // CG Board 0 IRQ Ack { - //cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + //cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); } } return; @@ -1087,7 +1087,7 @@ static const sharc_config sharc_cfg = static MACHINE_RESET( nwktr ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } static const timekeeper_config timekeeper_intf = @@ -1145,9 +1145,9 @@ MACHINE_DRIVER_END static void sound_irq_callback(running_machine *machine, int irq) { if (irq == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ1, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ1, PULSE_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ2, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ2, PULSE_LINE); } static DRIVER_INIT(nwktr) diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c index 70ff56e4840..bd4562c5ab6 100644 --- a/src/mame/drivers/nycaptor.c +++ b/src/mame/drivers/nycaptor.c @@ -161,7 +161,7 @@ int nyc_gametype=0; static WRITE8_HANDLER( sub_cpu_halt_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, (data )? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, (data )? ASSERT_LINE : CLEAR_LINE); } static UINT8 snd_data; @@ -209,7 +209,7 @@ static READ8_HANDLER( nycaptor_bx_r ) static WRITE8_HANDLER( sound_cpu_reset_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE); } static int vol_ctrl[16]; @@ -233,7 +233,7 @@ static MACHINE_RESET( ta7630 ) static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -253,7 +253,7 @@ static WRITE8_HANDLER( nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index cb227bc66a9..e7fe7f66719 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -115,13 +115,13 @@ static void main_cpu_irq(running_machine *machine, int state) { int combined_state = pia_get_irq_a(1) | pia_get_irq_b(1) | pia_get_irq_b(2); - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } static void main_cpu_firq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -137,13 +137,13 @@ static INTERRUPT_GEN( update_pia_1 ) /* update the different PIA pins from the input ports */ /* CA1 - copy of PA0 (COIN1) */ - pia_1_ca1_w(machine, 0, input_port_read(machine, "IN0") & 0x01); + pia_1_ca1_w(device->machine, 0, input_port_read(device->machine, "IN0") & 0x01); /* CA2 - copy of PA1 (SERVICE1) */ - pia_1_ca2_w(machine, 0, input_port_read(machine, "IN0") & 0x02); + pia_1_ca2_w(device->machine, 0, input_port_read(device->machine, "IN0") & 0x02); /* CB1 - (crosshatch) */ - pia_1_cb1_w(machine, 0, input_port_read(machine, "CROSS")); + pia_1_cb1_w(device->machine, 0, input_port_read(device->machine, "CROSS")); /* CB2 - NOT CONNECTED */ } @@ -430,14 +430,14 @@ static VIDEO_UPDATE( nyny ) static WRITE8_HANDLER( audio_1_command_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, M6802_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6802_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( audio_1_answer_w ) { soundlatch3_w(machine, 0, data); - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, HOLD_LINE); } @@ -487,7 +487,7 @@ static const ay8910_interface ay8910_64_interface = static WRITE8_HANDLER( audio_2_command_w ) { soundlatch2_w(machine, 0, (data & 0x60) >> 5); - cpunum_set_input_line(machine, 2, M6802_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], M6802_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c index 8f192476d89..623db739e0a 100644 --- a/src/mame/drivers/offtwall.c +++ b/src/mame/drivers/offtwall.c @@ -32,8 +32,8 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -93,7 +93,7 @@ static WRITE16_HANDLER( io_latch_w ) if (ACCESSING_BITS_0_7) { /* bit 4 resets the sound CPU */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); if (!(data & 0x10)) atarijsa_reset(); } diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c index 0a86d33f6ec..d254100ea3f 100644 --- a/src/mame/drivers/ojankohs.c +++ b/src/mame/drivers/ojankohs.c @@ -120,7 +120,7 @@ static void ojankohs_adpcm_int(running_machine *machine, int irq) /* generate an NMI if we're out of data */ if (!ojankohs_vclk_left) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( ojankoc_ctrl_w ) diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c index f12b3dfcfb2..beb26f0ec40 100644 --- a/src/mame/drivers/olibochu.c +++ b/src/mame/drivers/olibochu.c @@ -357,10 +357,10 @@ GFXDECODE_END static INTERRUPT_GEN( olibochu_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h */ } static MACHINE_DRIVER_START( olibochu ) diff --git a/src/mame/drivers/omegrace.c b/src/mame/drivers/omegrace.c index d2af745ed2d..aae6c96ce7a 100644 --- a/src/mame/drivers/omegrace.c +++ b/src/mame/drivers/omegrace.c @@ -315,7 +315,7 @@ static WRITE8_HANDLER( omegrace_leds_w ) static WRITE8_HANDLER( omegrace_soundlatch_w ) { soundlatch_w (machine, offset, data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c index ca007ae099c..231ac7a0cb1 100644 --- a/src/mame/drivers/oneshot.c +++ b/src/mame/drivers/oneshot.c @@ -351,7 +351,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c index 9f1157bd893..b56d5443367 100644 --- a/src/mame/drivers/onetwo.c +++ b/src/mame/drivers/onetwo.c @@ -79,7 +79,7 @@ static WRITE8_HANDLER( onetwo_coin_counters_w ) static WRITE8_HANDLER( onetwo_soundlatch_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static void setColor(running_machine *machine, int offset) @@ -265,7 +265,7 @@ static VIDEO_UPDATE( onetwo ) static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c index b2f9ec4313a..317a63f21a8 100644 --- a/src/mame/drivers/opwolf.c +++ b/src/mame/drivers/opwolf.c @@ -550,7 +550,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index 25cffe0b502..34abcb4ef84 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -39,20 +39,20 @@ static TIMER_CALLBACK( nmi_32v ) { int scanline = param; int nmistate = (scanline & 32) && (orbit_misc_flags & 4); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, nmistate ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, nmistate ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( irq_off ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( orbit_interrupt ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); - timer_set(video_screen_get_time_until_vblank_end(machine->primary_screen), NULL, 0, irq_off); + cpu_set_input_line(device, 0, ASSERT_LINE); + timer_set(video_screen_get_time_until_vblank_end(device->machine->primary_screen), NULL, 0, irq_off); } diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index d16343e8f4c..da1b2fe4ab2 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -257,8 +257,8 @@ static MACHINE_RESET( othunder ) static void update_irq(running_machine *machine) { - cpunum_set_input_line(machine, 0, 6, ad_irq ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, vblank_irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, ad_irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, vblank_irq ? ASSERT_LINE : CLEAR_LINE); } static WRITE16_HANDLER( irq_ack_w ) @@ -280,7 +280,7 @@ static WRITE16_HANDLER( irq_ack_w ) static INTERRUPT_GEN( vblank_interrupt ) { vblank_irq = 1; - update_irq(machine); + update_irq(device->machine); } static TIMER_CALLBACK( ad_interrupt ) @@ -675,7 +675,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index 256592031f2..64347303f3a 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -143,20 +143,20 @@ static WRITE16_HANDLER( eeprom_w ) static INTERRUPT_GEN( cpuA_interrupt ) { - if (cpu_getiloops()) cpunum_set_input_line(machine, 0, 5, HOLD_LINE); - else cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + if (cpu_getiloops(device)) cpu_set_input_line(device, 5, HOLD_LINE); + else cpu_set_input_line(device, 4, HOLD_LINE); } static INTERRUPT_GEN( cpuB_interrupt ) { - if (K053246_is_IRQ_enabled()) cpunum_set_input_line(machine, 1, 4, HOLD_LINE); + if (K053246_is_IRQ_enabled()) cpu_set_input_line(device, 4, HOLD_LINE); } static MACHINE_RESET( overdriv ) { /* start with cpu B halted */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } static WRITE16_HANDLER( cpuA_ctrl_w ) @@ -164,7 +164,7 @@ static WRITE16_HANDLER( cpuA_ctrl_w ) if (ACCESSING_BITS_0_7) { /* bit 0 probably enables the second 68000 */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); /* bit 1 is clear during service mode - function unknown */ @@ -226,17 +226,17 @@ static READ16_HANDLER( overdriv_sound_1_r ) static WRITE16_HANDLER( overdriv_soundirq_w ) { - cpunum_set_input_line(machine, 2,M6809_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[2],M6809_IRQ_LINE,HOLD_LINE); } static WRITE16_HANDLER( overdriv_cpuB_irq5_w ) { - cpunum_set_input_line(machine, 1,5,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],5,HOLD_LINE); } static WRITE16_HANDLER( overdriv_cpuB_irq6_w ) { - cpunum_set_input_line(machine, 1,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],6,HOLD_LINE); } diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c index 35cab11a752..8a591c33d13 100644 --- a/src/mame/drivers/pacland.c +++ b/src/mame/drivers/pacland.c @@ -193,7 +193,7 @@ VIDEO_UPDATE( pacland ); static WRITE8_HANDLER( pacland_subreset_w ) { int bit = !BIT(offset,11); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( pacland_flipscreen_w ) @@ -234,7 +234,7 @@ static WRITE8_HANDLER( pacland_irq_1_ctrl_w ) int bit = !BIT(offset,11); cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( pacland_irq_2_ctrl_w ) @@ -242,7 +242,7 @@ static WRITE8_HANDLER( pacland_irq_2_ctrl_w ) int bit = !BIT(offset,13); cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c index 155420670ff..25502bc6c2e 100644 --- a/src/mame/drivers/pacman.c +++ b/src/mame/drivers/pacman.c @@ -387,24 +387,24 @@ static MACHINE_RESET( mschamp ) static WRITE8_HANDLER( pacman_interrupt_vector_w ) { - cpunum_set_input_line_vector(0, 0, data); - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line_vector(machine->cpu[0], 0, data); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static INTERRUPT_GEN( pacman_interrupt ) { /* always signal a normal VBLANK */ - if (cpu_getiloops() == 0) - irq0_line_hold(machine, cpunum); + if (cpu_getiloops(device) == 0) + irq0_line_hold(device); /* on other "VBLANK" opportunities, check to make sure the cheat is enabled */ /* and that the speedup button is pressed */ else { - UINT8 value = input_port_read_safe(machine, "FAKE", 0); + UINT8 value = input_port_read_safe(device->machine, "FAKE", 0); if ((value & 7) == 5 || (value & 6) == 2) - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } } @@ -469,7 +469,7 @@ static WRITE8_HANDLER( piranha_interrupt_vector_w) { if (data==0xfa) data=0x78; if (data==0xfc) data=0xfc; - cpunum_set_input_line_vector( 0, 0, data ); + cpu_set_input_line_vector(machine->cpu[0], 0, data ); } @@ -478,7 +478,7 @@ static WRITE8_HANDLER( nmouse_interrupt_vector_w) if (data==0xbf) data=0x3c; if (data==0xc6) data=0x40; if (data==0xfc) data=0xfc; - cpunum_set_input_line_vector( 0, 0, data ); + cpu_set_input_line_vector(machine->cpu[0], 0, data ); } @@ -680,7 +680,7 @@ static READ8_HANDLER( bigbucks_question_r ) static INTERRUPT_GEN( s2650_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x03); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03); } static WRITE8_HANDLER( porky_banking_w ) diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c index 163153b0135..16114b9ee84 100644 --- a/src/mame/drivers/pandoras.c +++ b/src/mame/drivers/pandoras.c @@ -35,12 +35,12 @@ VIDEO_UPDATE( pandoras ); static INTERRUPT_GEN( pandoras_interrupt_a ){ if (irq_enable_a) - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE); } static INTERRUPT_GEN( pandoras_interrupt_b ){ if (irq_enable_b) - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( pandoras_int_control_w ){ @@ -54,7 +54,7 @@ static WRITE8_HANDLER( pandoras_int_control_w ){ other bytes unknown */ switch (offset){ - case 0x00: if (!data) cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, CLEAR_LINE); + case 0x00: if (!data) cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, CLEAR_LINE); irq_enable_a = data; break; case 0x02: coin_counter_w(0,data & 0x01); @@ -63,10 +63,10 @@ static WRITE8_HANDLER( pandoras_int_control_w ){ break; case 0x05: pandoras_flipscreen_w(machine, 0, data); break; - case 0x06: if (!data) cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, CLEAR_LINE); + case 0x06: if (!data) cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, CLEAR_LINE); irq_enable_b = data; break; - case 0x07: cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + case 0x07: cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); break; default: @@ -76,7 +76,7 @@ static WRITE8_HANDLER( pandoras_int_control_w ){ static WRITE8_HANDLER( pandoras_cpua_irqtrigger_w ){ if (!firq_old_data_a && data){ - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); } firq_old_data_a = data; @@ -84,7 +84,7 @@ static WRITE8_HANDLER( pandoras_cpua_irqtrigger_w ){ static WRITE8_HANDLER( pandoras_cpub_irqtrigger_w ){ if (!firq_old_data_b && data){ - cpunum_set_input_line(machine, 1,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_FIRQ_LINE,HOLD_LINE); } firq_old_data_b = data; @@ -92,14 +92,14 @@ static WRITE8_HANDLER( pandoras_cpub_irqtrigger_w ){ static WRITE8_HANDLER( pandoras_i8039_irqtrigger_w ) { - cpunum_set_input_line(machine, 3, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], 0, ASSERT_LINE); } static WRITE8_HANDLER( i8039_irqen_and_status_w ) { /* bit 7 enables IRQ */ if ((data & 0x80) == 0) - cpunum_set_input_line(machine, 3, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], 0, CLEAR_LINE); /* bit 5 goes to 8910 port A */ i8039_status = (data & 0x20) >> 5; @@ -107,7 +107,7 @@ static WRITE8_HANDLER( i8039_irqen_and_status_w ) static WRITE8_HANDLER( pandoras_z80_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 2,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[2],0,HOLD_LINE,0xff); } @@ -361,7 +361,7 @@ static READ8_HANDLER( pandoras_portA_r ) static READ8_HANDLER( pandoras_portB_r ) { - return (activecpu_gettotalcycles() / 512) & 0x0f; + return (cpu_get_total_cycles(machine->activecpu) / 512) & 0x0f; } static const ay8910_interface ay8910_config = diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c index 800ead36aaf..1e887678a29 100644 --- a/src/mame/drivers/panicr.c +++ b/src/mame/drivers/panicr.c @@ -232,10 +232,10 @@ static VIDEO_UPDATE( panicr) static INTERRUPT_GEN( panicr_interrupt ) { - if (cpu_getiloops()) - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc8/4); + if (cpu_getiloops(device)) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); else - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc4/4); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc4/4); } static INPUT_PORTS_START( panicr ) diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c index ff2153093ee..45020cf9200 100644 --- a/src/mame/drivers/parodius.c +++ b/src/mame/drivers/parodius.c @@ -24,7 +24,7 @@ static UINT8 *ram; static INTERRUPT_GEN( parodius_interrupt ) { - if (K052109_is_IRQ_enabled()) cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if (K052109_is_IRQ_enabled()) cpu_set_input_line(device, 0, HOLD_LINE); } static READ8_HANDLER( bankedram_r ) @@ -100,7 +100,7 @@ static READ8_HANDLER( parodius_sound_r ) static WRITE8_HANDLER( parodius_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } #if 0 @@ -108,7 +108,7 @@ static int nmi_enabled; static void sound_nmi_callback( int param ) { - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, ( nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, ( nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); nmi_enabled = 0; } @@ -116,13 +116,13 @@ static void sound_nmi_callback( int param ) static TIMER_CALLBACK( nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( sound_arm_nmi_w ) { // sound_nmi_enabled = 1; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL,0,nmi_callback); /* kludge until the K053260 is emulated correctly */ } diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c index 11773638a36..9c610f6dc9f 100644 --- a/src/mame/drivers/pasha2.c +++ b/src/mame/drivers/pasha2.c @@ -456,7 +456,7 @@ static READ16_HANDLER( pasha2_speedup_r ) { if(cpu_get_pc(machine->activecpu) == 0x8302) { - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return wram[(0x95744/2)+offset]; diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c index 1255e6ca9f6..9ee85aae929 100644 --- a/src/mame/drivers/pbaction.c +++ b/src/mame/drivers/pbaction.c @@ -55,7 +55,7 @@ extern VIDEO_UPDATE( pbaction ); static WRITE8_HANDLER( pbaction_sh_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0x00); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0x00); } @@ -250,7 +250,7 @@ GFXDECODE_END static INTERRUPT_GEN( pbaction_interrupt ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0x02); /* the CPU is in Interrupt Mode 2 */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x02); /* the CPU is in Interrupt Mode 2 */ } diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c index 11040084719..d21a35a6c21 100644 --- a/src/mame/drivers/pcktgal.c +++ b/src/mame/drivers/pcktgal.c @@ -46,7 +46,7 @@ static WRITE8_HANDLER( pcktgal_sound_bank_w ) static WRITE8_HANDLER( pcktgal_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static int msm5205next; @@ -60,7 +60,7 @@ static void pcktgal_adpcm_int(running_machine *machine, int data) toggle = 1 - toggle; if (toggle) - cpunum_set_input_line(machine, 1,M6502_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6502_IRQ_LINE,HOLD_LINE); } static WRITE8_HANDLER( pcktgal_adpcm_data_w ) diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index 1b32081e692..4ecd7d413a6 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -513,7 +513,7 @@ static READ8_HANDLER( peplus_input_bank_a_r ) UINT8 bank_a = 0x50; // Turn Off Low Battery and Hopper Full Statuses UINT8 coin_optics = 0x00; UINT8 coin_out = 0x00; - UINT64 curr_cycles = activecpu_gettotalcycles(); + UINT64 curr_cycles = cpu_get_total_cycles(machine->activecpu); UINT8 sda = 0; if(!sda_dir) @@ -523,14 +523,14 @@ static READ8_HANDLER( peplus_input_bank_a_r ) if ((input_port_read_safe(machine, "SENSOR",0x00) & 0x01) == 0x01 && coin_state == 0) { coin_state = 1; // Start Coin Cycle - last_cycles = activecpu_gettotalcycles(); + last_cycles = cpu_get_total_cycles(machine->activecpu); } else { /* Process Next Coin Optic State */ if (curr_cycles - last_cycles > 600000/6 && coin_state != 0) { coin_state++; if (coin_state > 5) coin_state = 0; - last_cycles = activecpu_gettotalcycles(); + last_cycles = cpu_get_total_cycles(machine->activecpu); } } @@ -562,7 +562,7 @@ static READ8_HANDLER( peplus_input_bank_a_r ) } else { door_open = 1; } - last_door = activecpu_gettotalcycles(); + last_door = cpu_get_total_cycles(machine->activecpu); } if (curr_cycles - last_coin_out > 600000/12 && coin_out_state != 0) { // Guessing with 600000 @@ -572,7 +572,7 @@ static READ8_HANDLER( peplus_input_bank_a_r ) coin_out_state = 3; // Coin-Out On } - last_coin_out = activecpu_gettotalcycles(); + last_coin_out = cpu_get_total_cycles(machine->activecpu); } switch (coin_out_state) diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c index fd84a3f459d..95b492f4c2c 100644 --- a/src/mame/drivers/pgm.c +++ b/src/mame/drivers/pgm.c @@ -308,7 +308,7 @@ static READ32_HANDLER( arm7_latch_arm_r ) #ifdef PGMARM7SPEEDHACK static TIMER_CALLBACK( arm_irq ) { - cpunum_set_input_line(machine, 2, ARM7_FIRQ_LINE, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], ARM7_FIRQ_LINE, PULSE_LINE); } #endif @@ -319,12 +319,12 @@ static WRITE32_HANDLER( arm7_latch_arm_w ) COMBINE_DATA(&arm7_latch); #ifdef PGMARM7SPEEDHACK -// cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); - if (data!=0xaa) cpu_spinuntil_trigger(1000); - cpu_trigger(machine, 1002); +// cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + if (data!=0xaa) cpu_spinuntil_trigger(machine->activecpu, 1000); + cpuexec_trigger(machine, 1002); #else - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); - cpu_spinuntil_time(ATTOTIME_IN_CYCLES(100, 0)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_CYCLES(100, 0)); #endif } @@ -352,13 +352,13 @@ static WRITE16_HANDLER( arm7_latch_68k_w ) COMBINE_DATA(&arm7_latch); #ifdef PGMARM7SPEEDHACK - cpu_trigger(machine, 1000); + cpuexec_trigger(machine, 1000); timer_set(ATTOTIME_IN_USEC(50), NULL, 0, arm_irq); // i don't know how long.. - cpu_spinuntil_trigger(1002); + cpu_spinuntil_trigger(machine->activecpu, 1002); #else - cpunum_set_input_line(machine, 2, ARM7_FIRQ_LINE, PULSE_LINE); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(200)); - cpu_spinuntil_time(ATTOTIME_IN_CYCLES(200, 2)); // give the arm time to respond (just boosting the interleave doesn't help + cpu_set_input_line(machine->cpu[2], ARM7_FIRQ_LINE, PULSE_LINE); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(200)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_CYCLES(200, 2)); // give the arm time to respond (just boosting the interleave doesn't help #endif } @@ -395,8 +395,8 @@ static WRITE16_HANDLER ( z80_reset_w ) if(data == 0x5050) { sndti_reset(SOUND_ICS2115, 0); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); if(0) { FILE *out; out = fopen("z80ram.bin", "wb"); @@ -408,7 +408,7 @@ static WRITE16_HANDLER ( z80_reset_w ) { /* this might not be 100% correct, but several of the games (ddp2, puzzli2 etc. expect the z80 to be turned off during data uploads, they write here before the upload */ - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } } @@ -422,7 +422,7 @@ static WRITE16_HANDLER ( m68k_l1_w ) if(ACCESSING_BITS_0_7) { if (PGMLOGERROR) logerror("SL 1 m68.w %02x (%06x) IRQ\n", data & 0xff, cpu_get_pc(machine->activecpu)); soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } } @@ -434,7 +434,7 @@ static WRITE8_HANDLER( z80_l3_w ) static void sound_irq(running_machine *machine, int level) { - cpunum_set_input_line(machine, 1, 0, level); + cpu_set_input_line(machine->cpu[1], 0, level); } static const ics2115_interface pgm_ics2115_interface = { @@ -739,14 +739,14 @@ static WRITE32_HANDLER( kovsh_arm7_protlatch_w ) kovsh_lowlatch = data; } -// cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); -// cpu_spinuntil_time(ATTOTIME_IN_CYCLES(100, 0)); +// cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); +// cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_CYCLES(100, 0)); } static READ16_HANDLER( kovsh_68k_protlatch_r ) { - //cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(200)); - cpu_spinuntil_time(ATTOTIME_IN_CYCLES(600, 0)); + //cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(200)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_CYCLES(600, 0)); switch (offset) { @@ -1133,15 +1133,15 @@ GFXDECODE_END /* only dragon world 2 NEEDs irq4, Puzzli 2 explicitly doesn't want it, what is the source? maybe the protection device? */ static INTERRUPT_GEN( drgw_interrupt ) { - if( cpu_getiloops() == 0 ) - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + if( cpu_getiloops(device) == 0 ) + cpu_set_input_line(device, 6, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static MACHINE_RESET ( pgm ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } static MACHINE_DRIVER_START( pgm ) diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c index c732865f10b..35cd9bae59c 100644 --- a/src/mame/drivers/pingpong.c +++ b/src/mame/drivers/pingpong.c @@ -74,13 +74,13 @@ static WRITE8_HANDLER( coin_w ) static INTERRUPT_GEN( pingpong_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - if (intenable & 0x04) cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if (intenable & 0x04) cpu_set_input_line(device, 0, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { - if (intenable & 0x08) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (intenable & 0x08) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c index 412efe0ef10..f2b73d44e06 100644 --- a/src/mame/drivers/pipedrm.c +++ b/src/mame/drivers/pipedrm.c @@ -181,7 +181,7 @@ static TIMER_CALLBACK( delayed_command_w ) /* sound commands. It's possible the NMI isn't really hooked up on the YM2608 */ /* sound board. */ if (param & 0x100) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } @@ -200,7 +200,7 @@ static WRITE8_HANDLER( sound_command_nonmi_w ) static WRITE8_HANDLER( pending_command_clear_w ) { pending_command = 0; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } @@ -526,7 +526,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c index 74e3396b91e..1049dfb77bb 100644 --- a/src/mame/drivers/pipeline.c +++ b/src/mame/drivers/pipeline.c @@ -210,7 +210,7 @@ static TIMER_CALLBACK( protection_deferred_w ) static WRITE8_DEVICE_HANDLER(protection_w) { timer_call_after_resynch(NULL, data, protection_deferred_w); - cpu_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(100)); } static ADDRESS_MAP_START( cpu0_mem, ADDRESS_SPACE_PROGRAM, 8 ) diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c index 6f5400ed7b8..e29077ad9e8 100644 --- a/src/mame/drivers/pitnrun.c +++ b/src/mame/drivers/pitnrun.c @@ -72,7 +72,7 @@ static int pitnrun_nmi; static INTERRUPT_GEN( pitnrun_nmi_source ) { - if(pitnrun_nmi) cpunum_set_input_line(machine, 0,INPUT_LINE_NMI, PULSE_LINE); + if(pitnrun_nmi) cpu_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( nmi_enable_w ) diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index 8187ef7fca6..ac70d0d6c97 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -86,7 +86,7 @@ static WRITE16_HANDLER( pkscramble_output_w ) if (!(out & 0x2000) && interrupt_line_active) { - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); interrupt_line_active = 0; } @@ -210,14 +210,14 @@ static TIMER_CALLBACK( scanline_callback ) if (param==interrupt_scanline) { if (out&0x2000) - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, param+1, 0), param+1); interrupt_line_active = 1; } else { if (interrupt_line_active) - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, interrupt_scanline, 0), interrupt_scanline); interrupt_line_active = 0; } @@ -260,7 +260,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { if(out & 0x10) - cpunum_set_input_line(machine, 0,2,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],2,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c index b47a0a59c8b..69b73c14a95 100644 --- a/src/mame/drivers/playch10.c +++ b/src/mame/drivers/playch10.c @@ -670,11 +670,11 @@ static INTERRUPT_GEN( playch10_interrupt ) { /* LS161A, Sheet 1 - bottom left of Z80 */ if ( !pc10_dog_di && !pc10_nmi_enable ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE ); + cpu_set_input_line(device, INPUT_LINE_RESET, PULSE_LINE ); } else if ( pc10_nmi_enable ) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static const nes_interface nes_config = diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c index deb50d9fcc7..d31ad5d8068 100644 --- a/src/mame/drivers/playmark.c +++ b/src/mame/drivers/playmark.c @@ -144,7 +144,7 @@ static WRITE16_HANDLER( playmark_snd_command_w ) if (ACCESSING_BITS_0_7) { playmark_snd_command = (data & 0xff); playmark_snd_flag = 1; - cpu_yield(); + cpu_yield(machine->activecpu); } } diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c index daf4493b53b..f1a92d0e9b5 100644 --- a/src/mame/drivers/plygonet.c +++ b/src/mame/drivers/plygonet.c @@ -156,7 +156,7 @@ static READ32_HANDLER( psac_rom_r ) static INTERRUPT_GEN(polygonet_interrupt) { - cpunum_set_input_line(machine, 0, MC68000_IRQ_5, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_5, HOLD_LINE); } /* sound CPU communications */ @@ -184,7 +184,7 @@ static WRITE32_HANDLER( sound_w ) static WRITE32_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, mame_find_cpu_index(machine, "sound"), 0, HOLD_LINE); + cputag_set_input_line(machine, "sound", 0, HOLD_LINE); } /* DSP communications */ @@ -238,16 +238,16 @@ static WRITE32_HANDLER( dsp_w_lines ) if ((data >> 24) & 0x01) { logerror("RESET CLEARED\n"); - cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), DSP56K_IRQ_RESET, CLEAR_LINE); + cputag_set_input_line(machine, "dsp", DSP56K_IRQ_RESET, CLEAR_LINE); } else { logerror("RESET ASSERTED\n"); - cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), DSP56K_IRQ_RESET, ASSERT_LINE); + cputag_set_input_line(machine, "dsp", DSP56K_IRQ_RESET, ASSERT_LINE); /* A little hacky - I can't seem to set these lines anywhere else where reset is asserted, so i do it here */ - cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), DSP56K_IRQ_MODA, ASSERT_LINE); - cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), DSP56K_IRQ_MODB, CLEAR_LINE); + cputag_set_input_line(machine, "dsp", DSP56K_IRQ_MODA, ASSERT_LINE); + cputag_set_input_line(machine, "dsp", DSP56K_IRQ_MODB, CLEAR_LINE); } /* 0x04000000 is the ??? line */ @@ -535,7 +535,7 @@ static WRITE8_HANDLER( sound_bankswitch_w ) static INTERRUPT_GEN(audio_interrupt) { - cpunum_set_input_line(machine, mame_find_cpu_index(machine, "sound"), INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -586,9 +586,9 @@ static MACHINE_START(polygonet) /* It's presumed the hardware has hard-wired operating mode 1 (MODA = 1, MODB = 0) */ /* TODO: This should work, but the MAME core appears to do something funny. Not a big deal - it's hacked in dsp_w_lines. */ - //cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), INPUT_LINE_RESET, ASSERT_LINE); - //cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), DSP56K_IRQ_MODA, ASSERT_LINE); - //cpunum_set_input_line(machine, mame_find_cpu_index(machine, "dsp"), DSP56K_IRQ_MODB, CLEAR_LINE); + //cputag_set_input_line(machine, "dsp", INPUT_LINE_RESET, ASSERT_LINE); + //cputag_set_input_line(machine, "dsp", DSP56K_IRQ_MODA, ASSERT_LINE); + //cputag_set_input_line(machine, "dsp", DSP56K_IRQ_MODB, CLEAR_LINE); } static MACHINE_DRIVER_START( plygonet ) diff --git a/src/mame/drivers/pntnpuzl.c b/src/mame/drivers/pntnpuzl.c index c5917321410..f78aae63afc 100644 --- a/src/mame/drivers/pntnpuzl.c +++ b/src/mame/drivers/pntnpuzl.c @@ -411,12 +411,12 @@ ADDRESS_MAP_END static INTERRUPT_GEN( pntnpuzl_irq ) { - if (input_port_read(machine, "IN0") & 0x02) /* coin */ - cpunum_set_input_line(machine, 0, 1, PULSE_LINE); - else if (input_port_read(machine, "IN0") & 0x04) /* service */ - cpunum_set_input_line(machine, 0, 2, PULSE_LINE); - else if (input_port_read(machine, "IN0") & 0x08) /* coin */ - cpunum_set_input_line(machine, 0, 4, PULSE_LINE); + if (input_port_read(device->machine, "IN0") & 0x02) /* coin */ + cpu_set_input_line(device, 1, PULSE_LINE); + else if (input_port_read(device->machine, "IN0") & 0x04) /* service */ + cpu_set_input_line(device, 2, PULSE_LINE); + else if (input_port_read(device->machine, "IN0") & 0x08) /* coin */ + cpu_set_input_line(device, 4, PULSE_LINE); } static INPUT_PORTS_START( pntnpuzl ) diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c index f4123345b77..0e6763f2d5e 100644 --- a/src/mame/drivers/pokechmp.c +++ b/src/mame/drivers/pokechmp.c @@ -94,7 +94,7 @@ static WRITE8_HANDLER( pokechmp_sound_bank_w ) static WRITE8_HANDLER( pokechmp_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index 3fbd1a1dfdb..bb55700d690 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -288,7 +288,7 @@ static WRITE8_HANDLER( polepos_latch_w ) case 0x00: /* IRQON */ cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 0x01: /* IOSEL */ @@ -309,11 +309,11 @@ static WRITE8_HANDLER( polepos_latch_w ) break; case 0x04: /* RESB */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x05: /* RESA */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); break; case 0x06: /* SB0 */ @@ -334,7 +334,7 @@ static WRITE16_HANDLER( polepos_z8002_nvi_enable_w ) cpu_interrupt_enable(which,data); if (!data) - cpunum_set_input_line(machine, which, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[which], 0, CLEAR_LINE); } @@ -387,8 +387,8 @@ static MACHINE_RESET( polepos ) NAMCOIO_54XX, NULL); /* set the interrupt vectors (this shouldn't be needed) */ - cpunum_set_input_line_vector(1, 0, Z8000_NVI); - cpunum_set_input_line_vector(2, 0, Z8000_NVI); + cpu_set_input_line_vector(machine->cpu[1], 0, Z8000_NVI); + cpu_set_input_line_vector(machine->cpu[2], 0, Z8000_NVI); } diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index eb891f19d1f..d9d10e06faf 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -121,14 +121,14 @@ static offs_t speedup_pc; static TIMER_CALLBACK( irq5_gen ) { - cpunum_set_input_line(machine, 0, R3000_IRQ5, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], R3000_IRQ5, ASSERT_LINE); } static INTERRUPT_GEN( irq4_gen ) { - cpunum_set_input_line(machine, 0, R3000_IRQ4, ASSERT_LINE); - timer_set(video_screen_get_time_until_pos(machine->primary_screen, 0, 0), NULL, 0, irq5_gen); + cpu_set_input_line(device, R3000_IRQ4, ASSERT_LINE); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, 0, 0), NULL, 0, irq5_gen); } @@ -218,7 +218,7 @@ static WRITE32_HANDLER( speedup_w ) /* see if the PC matches */ if ((cpu_get_previouspc(machine->activecpu) & 0x1fffffff) == speedup_pc) { - UINT64 curr_cycles = activecpu_gettotalcycles(); + UINT64 curr_cycles = cpu_get_total_cycles(machine->activecpu); /* if less than 50 cycles from the last time, count it */ if (curr_cycles - last_cycles < 50) @@ -227,7 +227,7 @@ static WRITE32_HANDLER( speedup_w ) /* more than 2 in a row and we spin */ if (loop_count > 2) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } else loop_count = 0; diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c index e8d220a6398..77c862ca8cb 100644 --- a/src/mame/drivers/polyplay.c +++ b/src/mame/drivers/polyplay.c @@ -129,7 +129,7 @@ static MACHINE_RESET( polyplay ) static INTERRUPT_GEN( periodic_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x4e); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x4e); } @@ -137,12 +137,12 @@ static INTERRUPT_GEN( coin_interrupt ) { static int last = 0; - if (input_port_read(machine, "INPUT") & 0x80) + if (input_port_read(device->machine, "INPUT") & 0x80) last = 0; else { if (last == 0) /* coin inserted */ - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x50); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x50); last = 1; } @@ -355,7 +355,7 @@ ROM_END static TIMER_CALLBACK( polyplay_timer_callback ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x4c); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, 0x4c); } /* game driver */ diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c index 4a8b8f8a954..098a8278f82 100644 --- a/src/mame/drivers/poolshrk.c +++ b/src/mame/drivers/poolshrk.c @@ -91,7 +91,7 @@ static READ8_HANDLER( poolshrk_input_r ) static READ8_HANDLER( poolshrk_irq_reset_r ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); return 0; } diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c index dc5eddae2a2..e1706b841ea 100644 --- a/src/mame/drivers/pooyan.c +++ b/src/mame/drivers/pooyan.c @@ -35,7 +35,7 @@ static MACHINE_START( pooyan ) static INTERRUPT_GEN( pooyan_interrupt ) { if (irq_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } @@ -43,7 +43,7 @@ static WRITE8_HANDLER( irq_enable_w ) { irq_enable = data & 1; if (!irq_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c index 8195f0d0a95..8eef2b38544 100644 --- a/src/mame/drivers/popeye.c +++ b/src/mame/drivers/popeye.c @@ -41,8 +41,8 @@ extern VIDEO_UPDATE( popeye ); static INTERRUPT_GEN( popeye_interrupt ) { /* NMIs are enabled by the I register?? How can that be? */ - if (cpu_get_reg(machine->activecpu, Z80_I) & 1) /* skyskipr: 0/1, popeye: 2/3 but also 0/1 */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (cpu_get_reg(device, Z80_I) & 1) /* skyskipr: 0/1, popeye: 2/3 but also 0/1 */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c index ed4414af015..a0fa08b561b 100644 --- a/src/mame/drivers/popper.c +++ b/src/mame/drivers/popper.c @@ -150,7 +150,7 @@ static READ8_HANDLER( popper_input_ports_r ) static READ8_HANDLER( popper_soundcpu_nmi_r ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); return 0; } diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c index 18d0c623ce8..bb0ae0989d4 100644 --- a/src/mame/drivers/powerins.c +++ b/src/mame/drivers/powerins.c @@ -334,7 +334,7 @@ static MACHINE_RESET( powerins ) static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c index 02f565d2229..5260357efb7 100644 --- a/src/mame/drivers/prehisle.c +++ b/src/mame/drivers/prehisle.c @@ -27,7 +27,7 @@ extern UINT16 *prehisle_bg_videoram16; static WRITE16_HANDLER( prehisle_sound16_w ) { soundlatch_w(machine, 0, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } /*******************************************************************************/ @@ -195,7 +195,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c index 6b1f216d32f..dfde9404898 100644 --- a/src/mame/drivers/progolf.c +++ b/src/mame/drivers/progolf.c @@ -183,7 +183,7 @@ GFXDECODE_END static INTERRUPT_GEN( progolf_interrupt ) { //if (input_port_read(machine, "IN2") & 0xc0) - cpunum_set_input_line(machine, 0, /*0*/INPUT_LINE_NMI, /*HOLD_LINE*/PULSE_LINE); + cpu_set_input_line(device, /*0*/INPUT_LINE_NMI, /*HOLD_LINE*/PULSE_LINE); } #endif diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 166677fc769..92edd5b9c42 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -170,7 +170,7 @@ static READ32_HANDLER( gunbird_input_r ) static TIMER_CALLBACK( psikyo_soundlatch_callback ) { psikyo_soundlatch = param; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); z80_nmi = 1; } @@ -376,7 +376,7 @@ ADDRESS_MAP_END static void sound_irq( running_machine *machine, int irq ) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static READ8_HANDLER( psikyo_soundlatch_r ) @@ -386,7 +386,7 @@ static READ8_HANDLER( psikyo_soundlatch_r ) static WRITE8_HANDLER( psikyo_clear_nmi_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); z80_nmi = 0; } @@ -1313,9 +1313,9 @@ MACHINE_DRIVER_END static void irqhandler(running_machine *machine, int linestate) { if (linestate) - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static const ymf278b_interface ymf278b_config = diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c index eb71ee06247..57a4be66ecd 100644 --- a/src/mame/drivers/psikyo4.c +++ b/src/mame/drivers/psikyo4.c @@ -225,7 +225,7 @@ static READ32_HANDLER( ps4_eeprom_r ) static INTERRUPT_GEN(psikyosh_interrupt) { - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static CUSTOM_INPUT( system_port_r ) @@ -478,9 +478,9 @@ ADDRESS_MAP_END static void irqhandler(running_machine *machine, int linestate) { if (linestate) - cpunum_set_input_line(machine, 0, 12, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 12, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 12, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 12, CLEAR_LINE); } static const ymf278b_interface ymf278b_config = @@ -1056,7 +1056,7 @@ PC :00001B46: TST R2,R2 PC :00001B48: BT $00001B3C */ - if (cpu_get_pc(machine->activecpu)==0x00001B3E) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x00001B3E) cpu_spinuntil_int(machine->activecpu); return ps4_ram[0x000020/4]; } @@ -1072,7 +1072,7 @@ PC :00001B52: TST R2,R2 PC :00001B54: BT $00001B48 */ - if (cpu_get_pc(machine->activecpu)==0x00001B4A) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x00001B4A) cpu_spinuntil_int(machine->activecpu); return ps4_ram[0x000020/4]; } @@ -1088,7 +1088,7 @@ PC :000029F6: TST R3,R3 PC :000029F8: BT $000029EC */ - if (cpu_get_pc(machine->activecpu)==0x000029EE) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x000029EE) cpu_spinuntil_int(machine->activecpu); return ps4_ram[0x00001c/4]; } diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c index fb22c765b02..0bd0688d8f4 100644 --- a/src/mame/drivers/psikyosh.c +++ b/src/mame/drivers/psikyosh.c @@ -423,7 +423,7 @@ static READ32_HANDLER( psh_eeprom_r ) static INTERRUPT_GEN(psikyosh_interrupt) { - cpunum_set_input_line(machine, 0, 4, ASSERT_LINE); + cpu_set_input_line(device, 4, ASSERT_LINE); } // VBL handler writes 0x00 on entry, 0xc0 on exit @@ -432,7 +432,7 @@ static WRITE32_HANDLER( psikyosh_irqctrl_w ) { if (!(data & 0x00c00000)) { - cpunum_set_input_line(machine, 0, 4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, CLEAR_LINE); } } @@ -597,9 +597,9 @@ ADDRESS_MAP_END static void irqhandler(running_machine *machine, int linestate) { if (linestate) - cpunum_set_input_line(machine, 0, 12, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 12, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 12, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 12, CLEAR_LINE); } static const ymf278b_interface ymf278b_config = diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c index a0092d9de55..45af761c684 100644 --- a/src/mame/drivers/psychic5.c +++ b/src/mame/drivers/psychic5.c @@ -351,10 +351,10 @@ static MACHINE_RESET( psychic5 ) static INTERRUPT_GEN( psychic5_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h */ else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ } @@ -667,7 +667,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c index 4c904ae1c13..9501bd86dec 100644 --- a/src/mame/drivers/pturn.c +++ b/src/mame/drivers/pturn.c @@ -427,7 +427,7 @@ static INTERRUPT_GEN( pturn_sub_intgen ) { if(nmi_sub) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE); } } @@ -435,7 +435,7 @@ static INTERRUPT_GEN( pturn_main_intgen ) { if (nmi_main) { - cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE); } } diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c index 64a147a0a0b..3098682a714 100644 --- a/src/mame/drivers/punchout.c +++ b/src/mame/drivers/punchout.c @@ -160,9 +160,9 @@ static WRITE8_HANDLER( punchout_speech_vcu_w ) static WRITE8_HANDLER( punchout_2a03_reset_w ) { if (data & 1) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } static int prot_mode_sel; /* Mode selector */ diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c index f45105423bb..b401fb20357 100644 --- a/src/mame/drivers/pushman.c +++ b/src/mame/drivers/pushman.c @@ -74,8 +74,8 @@ static WRITE16_HANDLER( pushman_68705_w ) if (offset==1) { - cpunum_set_input_line(machine, 2,M68705_IRQ_LINE,HOLD_LINE); - cpu_spin(); + cpu_set_input_line(machine->cpu[2],M68705_IRQ_LINE,HOLD_LINE); + cpu_spin(machine->activecpu); new_latch=0; } } @@ -434,7 +434,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index c7fab7790ca..cb3158f24d7 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -274,17 +274,17 @@ static READ16_DEVICE_HANDLER( gp2_ide_std_r ) static INTERRUPT_GEN(qdrmfgp_interrupt) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: if (control & 0x0001) - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(device, 1, HOLD_LINE); break; case 1: /* trigger V-blank interrupt */ if (control & 0x0004) - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(device, 3, HOLD_LINE); break; } } @@ -294,9 +294,9 @@ static void ide_interrupt(const device_config *device, int state) if (control & 0x0008) { if (state != CLEAR_LINE) - cpunum_set_input_line(device->machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[0], 4, HOLD_LINE); else - cpunum_set_input_line(device->machine, 0, 4, CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 4, CLEAR_LINE); } } @@ -305,14 +305,14 @@ static void ide_interrupt(const device_config *device, int state) static TIMER_CALLBACK( gp2_timer_callback ) { if (control & 0x0004) - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); } static INTERRUPT_GEN(qdrmfgp2_interrupt) { /* trigger V-blank interrupt */ if (control & 0x0008) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static void gp2_ide_interrupt(const device_config *device, int state) @@ -324,9 +324,9 @@ static void gp2_ide_interrupt(const device_config *device, int state) if (gp2_irq_control) gp2_irq_control = 0; else - cpunum_set_input_line(device->machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device->machine->cpu[0], 5, HOLD_LINE); } else { - cpunum_set_input_line(device->machine, 0, 5, CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 5, CLEAR_LINE); } } } @@ -601,7 +601,7 @@ INPUT_PORTS_END static void sound_irq(running_machine *machine) { if (control & 0x0001) - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 1, HOLD_LINE); } static const k054539_interface k054539_config = diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c index 42035368af6..3a52e8938e3 100644 --- a/src/mame/drivers/quasar.c +++ b/src/mame/drivers/quasar.c @@ -315,7 +315,7 @@ GFXDECODE_END static INTERRUPT_GEN( quasar_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0,0,PULSE_LINE,0x03); + cpu_set_input_line_and_vector(device,0,PULSE_LINE,0x03); } // ************************(*************** diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c index afcd3d6cbf4..8a975cfc599 100644 --- a/src/mame/drivers/quizpun2.c +++ b/src/mame/drivers/quizpun2.c @@ -279,13 +279,13 @@ static WRITE8_HANDLER( quizpun2_rombank_w ) static WRITE8_HANDLER( quizpun2_irq_ack ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); } static WRITE8_HANDLER( quizpun2_soundlatch_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( quizpun2_map, ADDRESS_SPACE_PROGRAM, 8 ) diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c index b1f6eb59912..e3c331e27d2 100644 --- a/src/mame/drivers/r2dtank.c +++ b/src/mame/drivers/r2dtank.c @@ -76,7 +76,7 @@ static void main_cpu_irq(running_machine *machine, int state) int combined_state = pia_get_irq_a(0) | pia_get_irq_b(0) | pia_get_irq_a(1) | pia_get_irq_b(1); - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -100,7 +100,7 @@ if (LOG_AUDIO_COMM) logerror("%08X CPU#1 Audio Command Read: %x\n", safe_cpu_g static WRITE8_HANDLER( audio_command_w ) { soundlatch_w(machine, 0, ~data); - cpunum_set_input_line(machine, 1, M6802_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6802_IRQ_LINE, HOLD_LINE); if (LOG_AUDIO_COMM) logerror("%08X CPU#0 Audio Command Write: %x\n", safe_cpu_get_pc(machine->activecpu), data^0xff); } @@ -122,7 +122,7 @@ static WRITE8_HANDLER( audio_answer_w ) data = 0x00; soundlatch2_w(machine, 0, data); - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, HOLD_LINE); if (LOG_AUDIO_COMM) logerror("%08X CPU#1 Audio Answer Write: %x\n", safe_cpu_get_pc(machine->activecpu), data); } diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c index 6869816821d..292d707e4e1 100644 --- a/src/mame/drivers/rabbit.c +++ b/src/mame/drivers/rabbit.c @@ -592,7 +592,7 @@ if (VERBOSE_AUDIO_LOG) static TIMER_CALLBACK( rabbit_blit_done ) { - cpunum_set_input_line(machine, 0, rabbit_bltirqlevel, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], rabbit_bltirqlevel, HOLD_LINE); } static void rabbit_do_blit(running_machine *machine) @@ -1031,7 +1031,7 @@ static INTERRUPT_GEN( rabbit_interrupts ) { int intlevel = 0; - int line = 262 - cpu_getiloops(); + int line = 262 - cpu_getiloops(device); if(line==262) { @@ -1042,7 +1042,7 @@ static INTERRUPT_GEN( rabbit_interrupts ) return; } - cpunum_set_input_line(machine, 0, intlevel, HOLD_LINE); + cpu_set_input_line(device, intlevel, HOLD_LINE); } static MACHINE_DRIVER_START( rabbit ) @@ -1165,12 +1165,12 @@ static INTERRUPT_GEN( tmmjprd_interrupt ) { int intlevel = 0; - if (cpu_getiloops()==0) + if (cpu_getiloops(device)==0) intlevel = 5; else intlevel = 3; - cpunum_set_input_line(machine, 0, intlevel, HOLD_LINE); + cpu_set_input_line(device, intlevel, HOLD_LINE); } static MACHINE_DRIVER_START( tmmjprd ) diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c index 169dbbc4a28..2d2d9672a24 100644 --- a/src/mame/drivers/raiden.c +++ b/src/mame/drivers/raiden.c @@ -222,7 +222,7 @@ GFXDECODE_END static INTERRUPT_GEN( raiden_interrupt ) { - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc8/4); /* VBL */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); /* VBL */ } static VIDEO_EOF( raiden ) @@ -454,7 +454,7 @@ static READ16_HANDLER( sub_cpu_spin_r ) int ret=raiden_shared_ram[0x4]; if (pc==0xfcde6 && ret!=0x40) - cpu_spin(); + cpu_spin(machine->activecpu); return ret; } @@ -465,7 +465,7 @@ static READ16_HANDLER( sub_cpu_spina_r ) int ret=raiden_shared_ram[0x4]; if (pc==0xfcde8 && ret!=0x40) - cpu_spin(); + cpu_spin(machine->activecpu); return ret; } diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c index 996324b3a24..fff72486483 100644 --- a/src/mame/drivers/raiden2.c +++ b/src/mame/drivers/raiden2.c @@ -566,7 +566,7 @@ static VIDEO_UPDATE ( raiden2 ) static INTERRUPT_GEN( raiden2_interrupt ) { - cpunum_set_input_line_and_vector(machine, cpunum, 0, HOLD_LINE, 0xc0/4); /* VBL */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc0/4); /* VBL */ logerror("VSYNC\n"); } @@ -2049,7 +2049,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( rdx_v33_interrupt ) { - cpunum_set_input_line_and_vector(machine, cpunum_get_active(), 0, HOLD_LINE, 0xc0/4); /* VBL */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc0/4); /* VBL */ logerror("VSYNC\n"); } diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c index 4049da887a2..ec7c16de750 100644 --- a/src/mame/drivers/rainbow.c +++ b/src/mame/drivers/rainbow.c @@ -261,7 +261,7 @@ static WRITE16_HANDLER( jumping_sound_w ) if (ACCESSING_BITS_0_7) { jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/ - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } @@ -592,7 +592,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c index 9fce044befb..12b9ab3fd33 100644 --- a/src/mame/drivers/rallyx.c +++ b/src/mame/drivers/rallyx.c @@ -212,8 +212,8 @@ VIDEO_UPDATE( locomotn ); static WRITE8_HANDLER( rallyx_interrupt_vector_w ) { - cpunum_set_input_line_vector(0, 0, data); - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line_vector(machine->cpu[0], 0, data); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -242,7 +242,7 @@ static WRITE8_HANDLER( rallyx_latch_w ) case 0x01: /* INT ON */ cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 0x02: /* SOUND ON */ diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c index b83f9bde2ef..67bcabb6120 100644 --- a/src/mame/drivers/rampart.c +++ b/src/mame/drivers/rampart.c @@ -40,7 +40,7 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -48,7 +48,7 @@ static void scanline_update(const device_config *screen, int scanline) { /* generate 32V signals */ if ((scanline & 32) == 0) - atarigen_scanline_int_gen(screen->machine, 0); + atarigen_scanline_int_gen(screen->machine->cpu[0]); } diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c index 2b335b1398b..e337f261a69 100644 --- a/src/mame/drivers/rastan.c +++ b/src/mame/drivers/rastan.c @@ -358,7 +358,7 @@ GFXDECODE_END /* handler called by the YM2151 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/re900.c b/src/mame/drivers/re900.c index d038fb34985..431da60ef3a 100644 --- a/src/mame/drivers/re900.c +++ b/src/mame/drivers/re900.c @@ -234,12 +234,12 @@ ADDRESS_MAP_END static INTERRUPT_GEN( re900_video_interrupt ) { - TMS9928A_interrupt(machine); + TMS9928A_interrupt(device->machine); } static void vdp_interrupt (running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE ); } diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c index f68d8101754..15429ebf891 100644 --- a/src/mame/drivers/realbrk.c +++ b/src/mame/drivers/realbrk.c @@ -663,11 +663,11 @@ GFXDECODE_END static INTERRUPT_GEN( realbrk_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: /* VBlank is connected to INT1 (external interrupts pin 1) */ - tmp68301_external_interrupt_1(machine); + tmp68301_external_interrupt_1(device->machine); break; } } diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c index 027f4319580..483f582ef17 100644 --- a/src/mame/drivers/redalert.c +++ b/src/mame/drivers/redalert.c @@ -105,17 +105,17 @@ static INTERRUPT_GEN( redalert_vblank_interrupt ) { - if( input_port_read(machine, "COIN") ) + if( input_port_read(device->machine, "COIN") ) /* the service coin as conntected to the CPU's RDY pin as well */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(device, M6502_IRQ_LINE, ASSERT_LINE); } static READ8_HANDLER( redalert_interrupt_clear_r ) { - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6502_IRQ_LINE, CLEAR_LINE); /* the result never seems to be actually used */ return video_screen_get_vpos(machine->primary_screen); diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c index 01d64c306ea..d78a7ccf327 100644 --- a/src/mame/drivers/redclash.c +++ b/src/mame/drivers/redclash.c @@ -44,15 +44,15 @@ extern VIDEO_EOF( redclash ); */ static INTERRUPT_GEN( redclash_interrupt ) { - if (input_port_read(machine, "FAKE") & 1) /* Left Coin */ - cpunum_set_input_line(machine, 0,0,ASSERT_LINE); - else if (input_port_read(machine, "FAKE") & 2) /* Right Coin */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "FAKE") & 1) /* Left Coin */ + cpu_set_input_line(device,0,ASSERT_LINE); + else if (input_port_read(device->machine, "FAKE") & 2) /* Right Coin */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( irqack_w ) { - cpunum_set_input_line(machine, 0,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],0,CLEAR_LINE); } diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c index c7959f43ad6..7f9c73dedde 100644 --- a/src/mame/drivers/relief.c +++ b/src/mame/drivers/relief.c @@ -44,7 +44,7 @@ static UINT32 adpcm_bank_base; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c index d7e6c0ee3e1..1d7fe6c6925 100644 --- a/src/mame/drivers/renegade.c +++ b/src/mame/drivers/renegade.c @@ -201,7 +201,7 @@ static WRITE8_HANDLER( adpcm_play_w ) static WRITE8_HANDLER( sound_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, HOLD_LINE); } /********************************************************************************************/ @@ -506,10 +506,10 @@ static INTERRUPT_GEN( renegade_interrupt ) else coin = 0; */ - if (cpu_getiloops()) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (cpu_getiloops(device)) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); else - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static WRITE8_HANDLER( renegade_coin_counter_w ) @@ -765,7 +765,7 @@ GFXDECODE_END /* handler called by the 3526 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, linestate); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, linestate); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c index d8cb122aa60..ba0a75553d6 100644 --- a/src/mame/drivers/retofinv.c +++ b/src/mame/drivers/retofinv.c @@ -39,19 +39,19 @@ static UINT8 cpu2_m6000=0; static WRITE8_HANDLER( cpu1_reset_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( cpu2_reset_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( mcu_reset_w ) { /* the bootlegs don't have a MCU, so make sure it's there before trying to reset it */ - if (cpu_gettotalcpu() >= 4) - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + if (machine->cpu[3] != NULL) + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( cpu2_m6000_w ) @@ -67,7 +67,7 @@ static READ8_HANDLER( cpu0_mf800_r ) static WRITE8_HANDLER( soundcommand_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE); } static WRITE8_HANDLER( irq0_ack_w ) @@ -76,7 +76,7 @@ static WRITE8_HANDLER( irq0_ack_w ) cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( irq1_ack_w ) @@ -85,7 +85,7 @@ static WRITE8_HANDLER( irq1_ack_w ) cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static WRITE8_HANDLER( coincounter_w ) diff --git a/src/mame/drivers/rockola.c b/src/mame/drivers/rockola.c index 4b8750e2014..e4a1a64cc29 100644 --- a/src/mame/drivers/rockola.c +++ b/src/mame/drivers/rockola.c @@ -722,35 +722,35 @@ GFXDECODE_END static INTERRUPT_GEN( satansat_interrupt ) { - if (cpu_getiloops() != 0) + if (cpu_getiloops(device) != 0) { - UINT8 val = input_port_read(machine, "IN2"); + UINT8 val = input_port_read(device->machine, "IN2"); coin_counter_w(0, val & 1); /* user asks to insert coin: generate a NMI interrupt. */ if (val & 0x01) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } else - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ + cpu_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ } static INTERRUPT_GEN( rockola_interrupt ) { - if (cpu_getiloops() != 0) + if (cpu_getiloops(device) != 0) { - UINT8 val = input_port_read(machine, "IN2"); + UINT8 val = input_port_read(device->machine, "IN2"); coin_counter_w(0, val & 1); coin_counter_w(1, val & 2); /* user asks to insert coin: generate a NMI interrupt. */ if (val & 0x03) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } else - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ + cpu_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE); /* one IRQ per frame */ } diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c index 7f75c6b727c..c24f4854e02 100644 --- a/src/mame/drivers/rockrage.c +++ b/src/mame/drivers/rockrage.c @@ -65,7 +65,7 @@ PALETTE_INIT( rockrage ); static INTERRUPT_GEN( rockrage_interrupt ) { if (K007342_is_INT_enabled()) - cpunum_set_input_line(machine, 0, HD6309_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE); } static WRITE8_HANDLER( rockrage_bankswitch_w ) @@ -87,7 +87,7 @@ static WRITE8_HANDLER( rockrage_bankswitch_w ) static WRITE8_HANDLER( rockrage_sh_irqtrigger_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,HOLD_LINE); } static READ8_HANDLER( rockrage_VLM5030_busy_r ) { diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c index e7283a2ad56..837f54dabfa 100644 --- a/src/mame/drivers/rohga.c +++ b/src/mame/drivers/rohga.c @@ -790,7 +790,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static WRITE8_HANDLER( sound_bankswitch_w ) diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c index c0e3f840cb2..c229b48690f 100644 --- a/src/mame/drivers/rollerg.c +++ b/src/mame/drivers/rollerg.c @@ -57,17 +57,17 @@ static READ8_HANDLER( rollerg_sound_r ) static WRITE8_HANDLER( soundirq_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static TIMER_CALLBACK( nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( sound_arm_nmi_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL,0,nmi_callback); /* kludge until the K053260 is emulated correctly */ } diff --git a/src/mame/drivers/rotaryf.c b/src/mame/drivers/rotaryf.c index 76c367d3c84..1a948acd468 100644 --- a/src/mame/drivers/rotaryf.c +++ b/src/mame/drivers/rotaryf.c @@ -28,10 +28,10 @@ static size_t rotaryf_videoram_size; static INTERRUPT_GEN( rotaryf_interrupt ) { - if (video_screen_get_vblank(machine->primary_screen)) - cpunum_set_input_line(machine, 0, I8085_RST55_LINE, HOLD_LINE); + if (video_screen_get_vblank(device->machine->primary_screen)) + cpu_set_input_line(device, I8085_RST55_LINE, HOLD_LINE); else - cpunum_set_input_line(machine, 0, I8085_RST75_LINE, HOLD_LINE); + cpu_set_input_line(device, I8085_RST75_LINE, HOLD_LINE); } diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c index 81204061394..e04ce9bf691 100644 --- a/src/mame/drivers/route16.c +++ b/src/mame/drivers/route16.c @@ -117,7 +117,7 @@ static WRITE8_HANDLER( route16_sharedram_w ) if (offset >= 0x0313 && offset <= 0x0319 && data == 0xff) { // Let the other CPU run - cpu_yield(); + cpu_yield(machine->activecpu); } } diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c index 91110383d74..89ce64d7416 100644 --- a/src/mame/drivers/royalmah.c +++ b/src/mame/drivers/royalmah.c @@ -2258,7 +2258,7 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( suzume_irq ) { if ( suzume_bank & 0x40 ) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( suzume ) @@ -2306,11 +2306,11 @@ MACHINE_DRIVER_END /* It runs in IM 2, thus needs a vector on the data bus */ static INTERRUPT_GEN( janptr96_interrupt ) { - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { - case 0: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x80); break; // vblank - case 1: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x82); break; // rtc - default: cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0x84); // demo + case 0: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x80); break; // vblank + case 1: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x82); break; // rtc + default: cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0x84); // demo } } @@ -2355,10 +2355,10 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( mjtensin_interrupt ) { - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, HOLD_LINE); break; // vblank - case 1: cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, HOLD_LINE); break; // rtc + case 0: cpu_set_input_line(device, INPUT_LINE_IRQ0, HOLD_LINE); break; // vblank + case 1: cpu_set_input_line(device, INPUT_LINE_IRQ1, HOLD_LINE); break; // rtc } } diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c index c238473eebd..2c383d020a4 100644 --- a/src/mame/drivers/rpunch.c +++ b/src/mame/drivers/rpunch.c @@ -145,7 +145,7 @@ WRITE16_HANDLER( rpunch_crtc_register_w ); static void ym2151_irq_gen(running_machine *machine, int state) { ym2151_irq = state; - cpunum_set_input_line(machine, 1, 0, (ym2151_irq | sound_busy) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (ym2151_irq | sound_busy) ? ASSERT_LINE : CLEAR_LINE); } @@ -179,7 +179,7 @@ static TIMER_CALLBACK( sound_command_w_callback ) { sound_busy = 1; sound_data = param; - cpunum_set_input_line(machine, 1, 0, (ym2151_irq | sound_busy) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (ym2151_irq | sound_busy) ? ASSERT_LINE : CLEAR_LINE); } @@ -193,7 +193,7 @@ static WRITE16_HANDLER( sound_command_w ) static READ8_HANDLER( sound_command_r ) { sound_busy = 0; - cpunum_set_input_line(machine, 1, 0, (ym2151_irq | sound_busy) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (ym2151_irq | sound_busy) ? ASSERT_LINE : CLEAR_LINE); return sound_data; } diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c index 035570f32de..46384d8968d 100644 --- a/src/mame/drivers/runaway.c +++ b/src/mame/drivers/runaway.c @@ -32,7 +32,7 @@ static TIMER_CALLBACK( interrupt_callback ) /* assume Centipede-style interrupt timing */ int scanline = param; - cpunum_set_input_line(machine, 0, 0, (scanline & 32) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, (scanline & 32) ? ASSERT_LINE : CLEAR_LINE); scanline += 32; @@ -80,7 +80,7 @@ static WRITE8_HANDLER( runaway_led_w ) static WRITE8_HANDLER( runaway_irq_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c index a6b7c9d26d4..48016071580 100644 --- a/src/mame/drivers/rungun.c +++ b/src/mame/drivers/rungun.c @@ -162,7 +162,7 @@ static WRITE16_HANDLER( rng_sysregs_w ) } if (!(data & 0x40)) - cpunum_set_input_line(machine, 0, MC68000_IRQ_5, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], MC68000_IRQ_5, CLEAR_LINE); break; case 0x0c/2: @@ -192,7 +192,7 @@ static WRITE16_HANDLER( sound_cmd2_w ) static WRITE16_HANDLER( sound_irq_w ) { if (ACCESSING_BITS_8_15) - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ16_HANDLER( sound_status_msb_r ) @@ -206,7 +206,7 @@ static READ16_HANDLER( sound_status_msb_r ) static INTERRUPT_GEN(rng_interrupt) { if (rng_sysreg[0x0c/2] & 0x09) - cpunum_set_input_line(machine, 0, MC68000_IRQ_5, ASSERT_LINE); + cpu_set_input_line(device, MC68000_IRQ_5, ASSERT_LINE); } static ADDRESS_MAP_START( rngreadmem, ADDRESS_SPACE_PROGRAM, 16 ) @@ -265,14 +265,14 @@ static WRITE8_HANDLER( z80ctrl_w ) memory_set_bankptr(2, memory_region(machine, "sound") + 0x10000 + (data & 0x07) * 0x4000); if (data & 0x10) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } static INTERRUPT_GEN(audio_interrupt) { if (rng_z80_control & 0x80) return; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } /* sound (this should be split into audio/xexex.c or pregx.c or so someday) */ diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c index 49cdc4355dc..fe67df108a0 100644 --- a/src/mame/drivers/sandscrp.c +++ b/src/mame/drivers/sandscrp.c @@ -103,9 +103,9 @@ static UINT8 vblank_irq; static void update_irq_state(running_machine *machine) { if (vblank_irq || sprite_irq || unknown_irq) - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); } @@ -114,7 +114,7 @@ static void update_irq_state(running_machine *machine) static INTERRUPT_GEN( sandscrp_interrupt ) { vblank_irq = 1; - update_irq_state(machine); + update_irq_state(device->machine); } @@ -195,8 +195,8 @@ static WRITE16_HANDLER( sandscrp_soundlatch_word_w ) { latch1_full = 1; soundlatch_w(machine, 0, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_time(ATTOTIME_IN_USEC(100)); // Allow the other cpu to reply + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(100)); // Allow the other cpu to reply } } @@ -413,7 +413,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_intf_sandscrp = diff --git a/src/mame/drivers/sangho.c b/src/mame/drivers/sangho.c index 1da56b360eb..565c9f5aafa 100644 --- a/src/mame/drivers/sangho.c +++ b/src/mame/drivers/sangho.c @@ -205,7 +205,7 @@ static MACHINE_RESET(sexyboom) static void msx_vdp_interrupt(running_machine *machine, int i) { - cpunum_set_input_line (machine, 0, 0, (i ? HOLD_LINE : CLEAR_LINE)); + cpu_set_input_line (machine->cpu[0], 0, (i ? HOLD_LINE : CLEAR_LINE)); } static INTERRUPT_GEN( sangho_interrupt ) diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c index 85025df6017..658811e3065 100644 --- a/src/mame/drivers/sauro.c +++ b/src/mame/drivers/sauro.c @@ -137,8 +137,8 @@ static WRITE8_HANDLER( adpcm_w ) static void lrq_callback(int state) { - //cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE); - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, state); + //cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, state); } static ADDRESS_MAP_START( sauro_readmem, ADDRESS_SPACE_PROGRAM, 8 ) @@ -353,7 +353,7 @@ GFXDECODE_END static INTERRUPT_GEN( sauro_interrupt ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_DRIVER_START( tecfri ) diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c index 964307f122e..640c6939aaa 100644 --- a/src/mame/drivers/sbasketb.c +++ b/src/mame/drivers/sbasketb.c @@ -66,7 +66,7 @@ READ8_HANDLER( hyperspt_sh_timer_r ); static WRITE8_HANDLER( sbasketb_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( sbasketb_coin_counter_w ) diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c index d6acba7ac80..195cd1c8198 100644 --- a/src/mame/drivers/sbowling.c +++ b/src/mame/drivers/sbowling.c @@ -133,9 +133,9 @@ static READ8_HANDLER( pix_data_r ) static INTERRUPT_GEN( sbw_interrupt ) { - int vector = video_screen_get_vblank(machine->primary_screen) ? 0xcf : 0xd7; /* RST 08h/10h */ + int vector = video_screen_get_vblank(device->machine->primary_screen) ? 0xcf : 0xd7; /* RST 08h/10h */ - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, vector); + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, vector); } static WRITE8_HANDLER (system_w) diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index b7ca7939615..e2f27afd057 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -116,7 +116,7 @@ static TIMER_CALLBACK( scanline_callback ) /* if this is a rising edge of 16V, assert the CPU interrupt */ if (scanline % 32 == 16) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); /* update the DAC state */ dac_data_w(0, (videoram[0x380 + 0x11] & (scanline >> 2)) ? 255 : 0); @@ -138,7 +138,7 @@ static TIMER_CALLBACK( scanline_callback ) static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -182,9 +182,9 @@ static READ8_HANDLER( switches_r ) static void update_nmi_state(running_machine *machine) { if ((pot_trigger[0] & ~pot_mask[0]) | (pot_trigger[1] & ~pot_mask[1])) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c index 4d6c3ce27d2..ef295b0b95f 100644 --- a/src/mame/drivers/scotrsht.c +++ b/src/mame/drivers/scotrsht.c @@ -31,13 +31,13 @@ static WRITE8_HANDLER( ctrl_w ) static INTERRUPT_GEN( scotrsht_interrupt ) { if (irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static WRITE8_HANDLER( scotrsht_soundlatch_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static ADDRESS_MAP_START( scotrsht_map, ADDRESS_SPACE_PROGRAM, 8 ) diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c index e3aba6b678e..84e1e64308b 100644 --- a/src/mame/drivers/seattle.c +++ b/src/mame/drivers/seattle.c @@ -594,7 +594,7 @@ static MACHINE_RESET( seattle ) static void ide_interrupt(const device_config *device, int state) { - cpunum_set_input_line(device->machine, 0, IDE_IRQ_NUM, state); + cpu_set_input_line(device->machine->cpu[0], IDE_IRQ_NUM, state); } @@ -612,7 +612,7 @@ static void ethernet_interrupt(running_machine *machine, int state) { UINT8 assert = ethernet_irq_state && (*interrupt_enable & (1 << ETHERNET_IRQ_SHIFT)); if (ethernet_irq_num != 0) - cpunum_set_input_line(machine, 0, ethernet_irq_num, assert ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], ethernet_irq_num, assert ? ASSERT_LINE : CLEAR_LINE); } else if (board_config == SEATTLE_WIDGET_CONFIG) update_widget_irq(machine); @@ -628,7 +628,7 @@ static void ethernet_interrupt(running_machine *machine, int state) static void ioasic_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, IOASIC_IRQ_NUM, state); + cpu_set_input_line(machine->cpu[0], IOASIC_IRQ_NUM, state); } @@ -663,7 +663,7 @@ static WRITE32_HANDLER( interrupt_config_w ) /* VBLANK: clear anything pending on the old IRQ */ if (vblank_irq_num != 0) - cpunum_set_input_line(machine, 0, vblank_irq_num, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], vblank_irq_num, CLEAR_LINE); /* VBLANK: compute the new IRQ vector */ irq = (*interrupt_config >> (2*VBLANK_IRQ_SHIFT)) & 3; @@ -674,7 +674,7 @@ static WRITE32_HANDLER( interrupt_config_w ) { /* Widget: clear anything pending on the old IRQ */ if (widget.irq_num != 0) - cpunum_set_input_line(machine, 0, widget.irq_num, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], widget.irq_num, CLEAR_LINE); /* Widget: compute the new IRQ vector */ irq = (*interrupt_config >> (2*WIDGET_IRQ_SHIFT)) & 3; @@ -686,7 +686,7 @@ static WRITE32_HANDLER( interrupt_config_w ) { /* Ethernet: clear anything pending on the old IRQ */ if (ethernet_irq_num != 0) - cpunum_set_input_line(machine, 0, ethernet_irq_num, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], ethernet_irq_num, CLEAR_LINE); /* Ethernet: compute the new IRQ vector */ irq = (*interrupt_config >> (2*ETHERNET_IRQ_SHIFT)) & 3; @@ -731,7 +731,7 @@ static void update_vblank_irq(running_machine *machine) /* if the VBLANK has been latched, and the interrupt is enabled, assert */ if (vblank_latch && (*interrupt_enable & (1 << VBLANK_IRQ_SHIFT))) state = ASSERT_LINE; - cpunum_set_input_line(machine, 0, vblank_irq_num, state); + cpu_set_input_line(machine->cpu[0], vblank_irq_num, state); } @@ -892,7 +892,7 @@ static void update_galileo_irqs(running_machine *machine) /* if any unmasked interrupts are live, we generate */ if (galileo.reg[GREG_INT_STATE] & galileo.reg[GREG_INT_MASK]) state = ASSERT_LINE; - cpunum_set_input_line(machine, 0, GALILEO_IRQ_NUM, state); + cpu_set_input_line(machine->cpu[0], GALILEO_IRQ_NUM, state); if (LOG_GALILEO) logerror("Galileo IRQ %s\n", (state == ASSERT_LINE) ? "asserted" : "cleared"); @@ -1099,7 +1099,7 @@ static READ32_HANDLER( galileo_r ) } /* eat some time for those which poll this register */ - activecpu_eat_cycles(100); + cpu_eat_cycles(machine->activecpu, 100); if (LOG_TIMERS) logerror("%08X:hires_timer_r = %08X\n", cpu_get_pc(machine->activecpu), result); @@ -1319,7 +1319,7 @@ static WRITE32_DEVICE_HANDLER( seattle_voodoo_w ) cpu_stalled_mem_mask = mem_mask; /* spin until we send the magic trigger */ - cpunum_spinuntil_trigger(0, 45678); + cpu_spinuntil_trigger(device->machine->cpu[0], 45678); if (LOG_DMA) logerror("%08X:Stalling CPU on voodoo (already stalled)\n", cpu_get_pc(device->machine->activecpu)); } @@ -1340,7 +1340,7 @@ static void voodoo_stall(const device_config *device, int stall) else { if (LOG_DMA) logerror("%08X:Stalling CPU on voodoo\n", cpu_get_pc(device->machine->activecpu)); - cpunum_spinuntil_trigger(0, 45678); + cpu_spinuntil_trigger(device->machine->cpu[0], 45678); } } @@ -1375,7 +1375,7 @@ static void voodoo_stall(const device_config *device, int stall) /* resume CPU execution */ if (LOG_DMA) logerror("Resuming CPU on voodoo\n"); - cpu_trigger(device->machine, 45678); + cpuexec_trigger(device->machine, 45678); } } } @@ -1511,7 +1511,7 @@ static void update_widget_irq(running_machine *machine) /* update the IRQ state */ if (widget.irq_num != 0) - cpunum_set_input_line(machine, 0, widget.irq_num, assert ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], widget.irq_num, assert ? ASSERT_LINE : CLEAR_LINE); } @@ -1614,7 +1614,7 @@ static READ32_HANDLER( cmos_protect_r ) static WRITE32_HANDLER( seattle_watchdog_w ) { - activecpu_eat_cycles(100); + cpu_eat_cycles(machine->activecpu, 100); } diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index c619aa02868..750fcd5f977 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -1350,7 +1350,7 @@ INPUT_PORTS_END void segac2_irq2_interrupt(running_machine *machine, int state) { //printf("sound irq %d\n", state); - cpunum_set_input_line(machine, 0, 2, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, state ? ASSERT_LINE : CLEAR_LINE); } static const ym3438_interface ym3438_intf = { diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c index 30c33abc214..617e2741ec7 100644 --- a/src/mame/drivers/segae.c +++ b/src/mame/drivers/segae.c @@ -578,9 +578,9 @@ static int sms_vdp_null_irq_callback(int status) static int sms_vdp_cpu0_irq_callback(int status) { if (status==1) - cpunum_set_input_line(Machine, 0,0,HOLD_LINE); + cpu_set_input_line(Machine->cpu[0],0,HOLD_LINE); else - cpunum_set_input_line(Machine, 0,0,CLEAR_LINE); + cpu_set_input_line(Machine->cpu[0],0,CLEAR_LINE); return 0; } @@ -588,9 +588,9 @@ static int sms_vdp_cpu0_irq_callback(int status) static int sms_vdp_cpu1_irq_callback(int status) { if (status==1) - cpunum_set_input_line(Machine, 1,0,HOLD_LINE); + cpu_set_input_line(Machine->cpu[1],0,HOLD_LINE); else - cpunum_set_input_line(Machine, 1,0,CLEAR_LINE); + cpu_set_input_line(Machine->cpu[1],0,CLEAR_LINE); return 0; } @@ -599,9 +599,9 @@ static int sms_vdp_cpu1_irq_callback(int status) static int sms_vdp_cpu2_irq_callback(int status) { if (status==1) - cpunum_set_input_line(Machine, 2,0,HOLD_LINE); + cpu_set_input_line(Machine->cpu[2],0,HOLD_LINE); else - cpunum_set_input_line(Machine, 2,0,CLEAR_LINE); + cpu_set_input_line(Machine->cpu[2],0,CLEAR_LINE); return 0; } @@ -1461,7 +1461,7 @@ static void end_of_frame(running_machine *machine, struct sms_vdp *chip) VIDEO_EOF(sms) { end_of_frame(machine, vdp1); - //if (SMS_PAUSE_BUTTON) cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,PULSE_LINE); // not on systeme!!! + //if (SMS_PAUSE_BUTTON) cpu_set_input_line(machine->cpu[0],INPUT_LINE_NMI,PULSE_LINE); // not on systeme!!! } #endif diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c index e214e6d683b..e51f3a614d5 100644 --- a/src/mame/drivers/segag80r.c +++ b/src/mame/drivers/segag80r.c @@ -160,7 +160,7 @@ static INPUT_CHANGED( service_switch ) { /* pressing the service switch sends an NMI */ if (newval) - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } @@ -303,8 +303,8 @@ static WRITE8_HANDLER( coin_count_w ) static WRITE8_DEVICE_HANDLER( sindbadm_soundport_w ) { soundlatch_w(device->machine,0,data); - cpunum_set_input_line(device->machine, 1, INPUT_LINE_NMI, PULSE_LINE); - cpu_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(50)); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); + cpuexec_boost_interleave(device->machine, attotime_zero, ATTOTIME_IN_USEC(50)); } diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c index 6c449d694c9..f7329d9d797 100644 --- a/src/mame/drivers/segag80v.c +++ b/src/mame/drivers/segag80v.c @@ -182,7 +182,7 @@ static INPUT_CHANGED( service_switch ) { /* pressing the service switch sends an NMI */ if (newval) - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } @@ -217,7 +217,7 @@ static offs_t decrypt_offset(running_machine *machine, offs_t offset) offs_t pc; /* if no active CPU, don't do anything */ - if (cpunum_get_active() == -1) + if (machine->activecpu == NULL) return offset; /* ignore anything but accesses via opcode $32 (LD $(XXYY),A) */ diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c index f21d489eb4f..d430095a20a 100644 --- a/src/mame/drivers/segahang.c +++ b/src/mame/drivers/segahang.c @@ -102,7 +102,7 @@ static void hangon_generic_init(void) static TIMER_CALLBACK( suspend_i8751 ) { - cpunum_suspend(mame_find_cpu_index(machine, "mcu"), SUSPEND_REASON_DISABLE, 1); + cpu_suspend(machine->cpu[mame_find_cpu_index(machine, "mcu")], SUSPEND_REASON_DISABLE, 1); } @@ -130,10 +130,10 @@ static MACHINE_RESET( hangon ) static INTERRUPT_GEN( hangon_irq ) { /* according to the schematics, IRQ2 is generated every 16 scanlines */ - if (cpu_getiloops() != 0) - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (cpu_getiloops(device) != 0) + cpu_set_input_line(device, 2, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } #endif @@ -298,7 +298,7 @@ static WRITE8_DEVICE_HANDLER( tilemap_sound_w ) /* D2 : SCONT1 - Tilemap origin bit 1 */ /* D1 : SCONT0 - Tilemap origin bit 0 */ /* D0 : MUTE (1= audio on, 0= audio off) */ - cpunum_set_input_line(device->machine, 2, INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[2], INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); segaic16_tilemap_set_colscroll(0, ~data & 0x04); segaic16_tilemap_set_rowscroll(0, ~data & 0x02); sound_global_enable(data & 0x01); @@ -311,8 +311,8 @@ static WRITE8_DEVICE_HANDLER( sub_control_adc_w ) /* D6 : INTR line on second CPU */ /* D5 : RESET line on second CPU */ /* D3-D2 : ADC_SELECT */ - cpunum_set_input_line(device->machine, 1, 4, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(device->machine, 1, INPUT_LINE_RESET, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[1], 4, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_RESET, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); adc_select = (data >> 2) & 3; } @@ -338,8 +338,8 @@ static INTERRUPT_GEN( i8751_main_cpu_vblank ) { /* if we have a fake 8751 handler, call it on VBLANK */ if (i8751_vblank_hook != NULL) - (*i8751_vblank_hook)(machine); - irq4_line_hold(machine, cpunum); + (*i8751_vblank_hook)(device->machine); + irq4_line_hold(device); } @@ -365,7 +365,7 @@ static void sharrier_i8751_sim(running_machine *machine) static void sound_irq(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c index 282fafb9a78..404460af434 100644 --- a/src/mame/drivers/segaorun.c +++ b/src/mame/drivers/segaorun.c @@ -120,7 +120,7 @@ static const struct segaic16_memory_map_entry outrun_info[] = static TIMER_CALLBACK( delayed_sound_data_w ) { soundlatch_w(machine, 0, param); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, ASSERT_LINE); } @@ -132,7 +132,7 @@ static void sound_data_w(UINT8 data) static READ8_HANDLER( sound_data_r ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, CLEAR_LINE); return soundlatch_r(machine,offset); } @@ -169,12 +169,12 @@ static void outrun_generic_init(running_machine *machine) static void update_main_irqs(running_machine *machine) { - cpunum_set_input_line(machine, 0, 2, irq2_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, vblank_irq_state && irq2_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, irq2_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, vblank_irq_state && irq2_state ? ASSERT_LINE : CLEAR_LINE); if(vblank_irq_state || irq2_state) - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } @@ -214,14 +214,14 @@ static TIMER_CALLBACK( scanline_callback ) case 223: vblank_irq_state = 1; next_scanline = scanline + 1; - cpunum_set_input_line(machine, 1, 4, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 4, ASSERT_LINE); break; /* VBLANK turns off at the start of scanline 224 */ case 224: vblank_irq_state = 0; next_scanline = 65; - cpunum_set_input_line(machine, 1, 4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 4, CLEAR_LINE); break; } @@ -242,13 +242,13 @@ static TIMER_CALLBACK( scanline_callback ) static void outrun_reset(void) { - cpunum_set_input_line(Machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } static MACHINE_RESET( outrun ) { - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); /* reset misc components */ segaic16_memory_mapper_reset(machine); @@ -332,7 +332,7 @@ static WRITE8_DEVICE_HANDLER( video_control_w ) */ segaic16_set_display_enable(device->machine, data & 0x20); adc_select = (data >> 2) & 7; - cpunum_set_input_line(device->machine, 2, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[2], INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } @@ -472,7 +472,7 @@ static WRITE16_HANDLER( shangon_custom_io_w ) /* Output port: D0: Sound section reset (1= normal operation, 0= reset) */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); return; case 0x3000/2: diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index da8d348bb5e..8c700534dbe 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -230,7 +230,7 @@ static void system16a_generic_init(running_machine *machine) static TIMER_CALLBACK( suspend_i8751 ) { - cpunum_suspend(mame_find_cpu_index(machine, "mcu"), SUSPEND_REASON_DISABLE, 1); + cpu_suspend(machine->cpu[mame_find_cpu_index(machine, "mcu")], SUSPEND_REASON_DISABLE, 1); } @@ -243,7 +243,7 @@ static TIMER_CALLBACK( suspend_i8751 ) static MACHINE_RESET( system16a ) { - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); /* if we have a fake i8751 handler, disable the actual 8751 */ if (i8751_vblank_hook != NULL) @@ -383,7 +383,7 @@ static WRITE8_DEVICE_HANDLER( tilemap_sound_w ) 0= Sound is disabled 1= sound is enabled */ - cpunum_set_input_line(device->machine, 1, INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); segaic16_tilemap_set_colscroll(0, ~data & 0x04); segaic16_tilemap_set_rowscroll(0, ~data & 0x02); } @@ -435,9 +435,9 @@ static WRITE8_HANDLER( n7751_control_w ) D1 = /RESET line on 7751 D0 = /IRQ line on 7751 */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 2, 0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], 0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } @@ -494,7 +494,7 @@ static INTERRUPT_GEN( i8751_main_cpu_vblank ) { /* if we have a fake 8751 handler, call it on VBLANK */ if (i8751_vblank_hook != NULL) - (*i8751_vblank_hook)(machine); + (*i8751_vblank_hook)(device->machine); } @@ -513,7 +513,7 @@ static void bodyslam_i8751_sim(running_machine *machine) UINT8 min = workram[0x202/2] & 0xff; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* out of time? set the flag */ if (tick == 0 && sec == 0 && min == 0) @@ -553,7 +553,7 @@ static void bodyslam_i8751_sim(running_machine *machine) static void quartet_i8751_sim(running_machine *machine) { /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* X scroll values */ segaic16_textram_0_w(machine, 0xff8/2, workram[0x0d14/2], 0xffff); diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index d56981b0c56..532980fae7c 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -1038,7 +1038,7 @@ static void sound_w(UINT8 data) if (has_sound_cpu) { soundlatch_w(Machine, 0, data & 0xff); - cpunum_set_input_line(Machine, 1, 0, HOLD_LINE); + cpu_set_input_line(Machine->cpu[1], 0, HOLD_LINE); } } @@ -1075,7 +1075,7 @@ static void system16b_generic_init(running_machine *machine, int _rom_board) static TIMER_CALLBACK( suspend_i8751 ) { - cpunum_suspend(mame_find_cpu_index(machine, "mcu"), SUSPEND_REASON_DISABLE, 1); + cpu_suspend(machine->cpu[mame_find_cpu_index(machine, "mcu")], SUSPEND_REASON_DISABLE, 1); } @@ -1097,7 +1097,7 @@ static MACHINE_RESET( system16b ) segaic16_memory_mapper_config(machine, i8751_initial_config); segaic16_tilemap_reset(0); - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); /* if we have a fake i8751 handler, disable the actual 8751 */ if (i8751_vblank_hook != NULL) @@ -1111,7 +1111,7 @@ static MACHINE_RESET( system16b ) static TIMER_CALLBACK( atomicp_sound_irq ) { - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 2, HOLD_LINE); } @@ -1344,7 +1344,7 @@ static READ8_HANDLER( upd7759_status_r ) static void upd7759_generate_nmi(int state) { if (state) - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } @@ -1352,7 +1352,7 @@ static void upd7759_generate_nmi(int state) static WRITE8_HANDLER( mcu_data_w ) { mcu_data = data; - cpunum_set_input_line(machine, 2, 1, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], 1, PULSE_LINE); } #endif @@ -1367,7 +1367,7 @@ static INTERRUPT_GEN( i8751_main_cpu_vblank ) { /* if we have a fake 8751 handler, call it on VBLANK */ if (i8751_vblank_hook != NULL) - (*i8751_vblank_hook)(machine); + (*i8751_vblank_hook)(device->machine); } @@ -1383,7 +1383,7 @@ static void altbeast_common_i8751_sim(running_machine *machine, offs_t soundoffs UINT16 temp; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* set tile banks */ rom_5704_bank_w(machine, 1, workram[0x3094/2] & 0x00ff, 0x00ff); @@ -1421,7 +1421,7 @@ static void ddux_i8751_sim(running_machine *machine) UINT16 temp; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* process any new sound data */ temp = workram[0x0bd0/2]; @@ -1456,7 +1456,7 @@ static void goldnaxe_i8751_sim(running_machine *machine) UINT16 temp; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* they periodically clear the data at 2cd8,2cda,2cdc,2cde and expect the MCU to fill it in */ if (workram[0x2cd8/2] == 0 && workram[0x2cda/2] == 0 && workram[0x2cdc/2] == 0 && workram[0x2cde/2] == 0) @@ -1486,7 +1486,7 @@ static void tturf_i8751_sim(running_machine *machine) UINT16 temp; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* process any new sound data */ temp = workram[0x01d0/2]; @@ -1508,7 +1508,7 @@ static void wb3_i8751_sim(running_machine *machine) UINT16 temp; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* process any new sound data */ temp = workram[0x0008/2]; @@ -1525,7 +1525,7 @@ static void wrestwar_i8751_sim(running_machine *machine) UINT16 temp; /* signal a VBLANK to the main CPU */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); /* process any new sound data */ temp = workram[0x208e/2]; diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 2f22c91a3ab..8d3cd587380 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -147,7 +147,7 @@ static const struct segaic16_memory_map_entry *const region_info_list[] = static void sound_w(UINT8 data) { soundlatch_w(Machine, 0, data & 0xff); - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } @@ -190,7 +190,7 @@ static void system18_generic_init(running_machine *machine, int _rom_board) static TIMER_CALLBACK( boost_interleave ) { - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_MSEC(10)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_MSEC(10)); } @@ -198,7 +198,7 @@ static MACHINE_RESET( system18 ) { segaic16_memory_mapper_reset(machine); segaic16_tilemap_reset(0); - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); /* if we are running with a real live 8751, we need to boost the interleave at startup */ if (machine->config->cpu[2].type == CPU_I8751) @@ -557,7 +557,7 @@ static WRITE8_HANDLER( soundbank_w ) static WRITE8_HANDLER( mcu_data_w ) { mcu_data = data; - cpunum_set_input_line(machine, 2, 1, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], 1, PULSE_LINE); } diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c index 29e4b90387c..a303c9b296f 100644 --- a/src/mame/drivers/segas24.c +++ b/src/mame/drivers/segas24.c @@ -689,14 +689,14 @@ static void reset_reset(running_machine *machine) int changed = resetcontrol ^ prev_resetcontrol; if(changed & 2) { if(resetcontrol & 2) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); // mame_printf_debug("enable 2nd cpu!\n"); // debugger_break(machine); s24_fd1094_machine_init(); } else - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } if(changed & 4) sndti_reset(SOUND_YM2151, 0); @@ -821,18 +821,18 @@ static TIMER_CALLBACK( irq_timer_cb ) { irq_timer_pend0 = irq_timer_pend1 = 1; if(irq_allow0 & (1 << IRQ_TIMER)) - cpunum_set_input_line(machine, 0, IRQ_TIMER+1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_TIMER+1, ASSERT_LINE); if(irq_allow1 & (1 << IRQ_TIMER)) - cpunum_set_input_line(machine, 1, IRQ_TIMER+1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_TIMER+1, ASSERT_LINE); } static TIMER_CALLBACK( irq_timer_clear_cb ) { irq_sprite = irq_vblank = 0; - cpunum_set_input_line(machine, 0, IRQ_VBLANK+1, CLEAR_LINE); - cpunum_set_input_line(machine, 0, IRQ_SPRITE+1, CLEAR_LINE); - cpunum_set_input_line(machine, 1, IRQ_VBLANK+1, CLEAR_LINE); - cpunum_set_input_line(machine, 1, IRQ_SPRITE+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_VBLANK+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_SPRITE+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_VBLANK+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_SPRITE+1, CLEAR_LINE); } static void irq_init(void) @@ -879,18 +879,18 @@ static WRITE16_HANDLER(irq_w) case 2: irq_allow0 = data; irq_timer_pend0 = 0; - cpunum_set_input_line(machine, 0, IRQ_TIMER+1, CLEAR_LINE); - cpunum_set_input_line(machine, 0, IRQ_YM2151+1, irq_yms && (irq_allow0 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, IRQ_VBLANK+1, irq_vblank && (irq_allow0 & (1 << IRQ_VBLANK)) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, IRQ_SPRITE+1, irq_sprite && (irq_allow0 & (1 << IRQ_SPRITE)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_TIMER+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_YM2151+1, irq_yms && (irq_allow0 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_VBLANK+1, irq_vblank && (irq_allow0 & (1 << IRQ_VBLANK)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_SPRITE+1, irq_sprite && (irq_allow0 & (1 << IRQ_SPRITE)) ? ASSERT_LINE : CLEAR_LINE); break; case 3: irq_allow1 = data; irq_timer_pend1 = 0; - cpunum_set_input_line(machine, 1, IRQ_TIMER+1, CLEAR_LINE); - cpunum_set_input_line(machine, 1, IRQ_YM2151+1, irq_yms && (irq_allow1 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, IRQ_VBLANK+1, irq_vblank && (irq_allow1 & (1 << IRQ_VBLANK)) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, IRQ_SPRITE+1, irq_sprite && (irq_allow1 & (1 << IRQ_SPRITE)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_TIMER+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_YM2151+1, irq_yms && (irq_allow1 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_VBLANK+1, irq_vblank && (irq_allow1 & (1 << IRQ_VBLANK)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_SPRITE+1, irq_sprite && (irq_allow1 & (1 << IRQ_SPRITE)) ? ASSERT_LINE : CLEAR_LINE); break; } } @@ -919,11 +919,11 @@ static READ16_HANDLER(irq_r) } case 2: irq_timer_pend0 = 0; - cpunum_set_input_line(machine, 0, IRQ_TIMER+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_TIMER+1, CLEAR_LINE); break; case 3: irq_timer_pend1 = 0; - cpunum_set_input_line(machine, 1, IRQ_TIMER+1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_TIMER+1, CLEAR_LINE); break; } return 0xffff; @@ -933,7 +933,7 @@ static INTERRUPT_GEN(irq_vbl) { int irq, mask; - if(cpu_getiloops()) { + if(cpu_getiloops(device)) { irq = IRQ_SPRITE; irq_sprite = 1; } else { @@ -946,12 +946,12 @@ static INTERRUPT_GEN(irq_vbl) mask = 1 << irq; if(irq_allow0 & mask) - cpunum_set_input_line(machine, 0, 1+irq, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], 1+irq, ASSERT_LINE); if(irq_allow1 & mask) - cpunum_set_input_line(machine, 1, 1+irq, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], 1+irq, ASSERT_LINE); - if(!cpu_getiloops()) { + if(!cpu_getiloops(device)) { // Ensure one index pulse every 20 frames // The is some code in bnzabros at 0x852 that makes it crash // if the pulse train is too fast @@ -964,8 +964,8 @@ static INTERRUPT_GEN(irq_vbl) static void irq_ym(running_machine *machine, int irq) { irq_yms = irq; - cpunum_set_input_line(machine, 0, IRQ_YM2151+1, irq_yms && (irq_allow0 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, IRQ_YM2151+1, irq_yms && (irq_allow1 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], IRQ_YM2151+1, irq_yms && (irq_allow0 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], IRQ_YM2151+1, irq_yms && (irq_allow1 & (1 << IRQ_YM2151)) ? ASSERT_LINE : CLEAR_LINE); } @@ -1116,7 +1116,7 @@ static MACHINE_START( system24 ) static MACHINE_RESET( system24 ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); prev_resetcontrol = resetcontrol = 0x06; fdc_init(); curbank = 0; diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index b7944434625..d8d56ad0d60 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -396,7 +396,7 @@ static MACHINE_RESET( system32 ) v60_irq_timer[1] = timer_alloc(signal_v60_irq_callback, NULL); /* clear IRQ lines */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -417,13 +417,13 @@ static void update_irq_state(running_machine *machine) for (vector = 0; vector < 5; vector++) if (effirq & (1 << vector)) { - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, ASSERT_LINE, vector); break; } /* if we didn't find any, clear the interrupt line */ if (vector == 5) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -569,9 +569,9 @@ static TIMER_CALLBACK( end_of_vblank_int ) static INTERRUPT_GEN( start_of_vblank_int ) { - signal_v60_irq(machine, MAIN_IRQ_VBSTART); + signal_v60_irq(device->machine, MAIN_IRQ_VBSTART); system32_set_vblank(1); - timer_set(video_screen_get_time_until_pos(machine->primary_screen, 0, 0), NULL, 0, end_of_vblank_int); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, 0, 0), NULL, 0, end_of_vblank_int); if (system32_prot_vblank) (*system32_prot_vblank)(); } @@ -690,7 +690,7 @@ static void common_io_chip_w(running_machine *machine, int which, offs_t offset, case 0x1c/2: system32_displayenable[which] = (data & 0x02); if (which == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); break; } } @@ -1035,13 +1035,13 @@ static void update_sound_irq_state(running_machine *machine) for (vector = 0; vector < 3; vector++) if (effirq & (1 << vector)) { - cpunum_set_input_line_and_vector(machine, 1, 0, ASSERT_LINE, 2 * vector); + cpu_set_input_line_and_vector(machine->cpu[1], 0, ASSERT_LINE, 2 * vector); break; } /* if we didn't find any, clear the interrupt line */ if (vector == 3) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c index a5fa153397c..aee96806ae3 100644 --- a/src/mame/drivers/segaxbd.c +++ b/src/mame/drivers/segaxbd.c @@ -91,23 +91,23 @@ static void update_main_irqs(running_machine *machine) if (timer_irq_state) irq |= 2; else - cpunum_set_input_line(machine, 0, 2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, CLEAR_LINE); if (vblank_irq_state) irq |= 4; else - cpunum_set_input_line(machine, 0, 4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, CLEAR_LINE); if (gprider_hack && irq > 4) irq = 4; if (!(irq==6)) - cpunum_set_input_line(machine, 0, 6, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, CLEAR_LINE); if (irq) { - cpunum_set_input_line(machine, 0, irq, ASSERT_LINE); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpu_set_input_line(machine->cpu[0], irq, ASSERT_LINE); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } } @@ -126,7 +126,7 @@ static TIMER_CALLBACK( scanline_callback ) if (scanline == 223) { vblank_irq_state = update = 1; - cpunum_set_input_line(machine, 1, 4, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 4, ASSERT_LINE); next_scanline = scanline + 1; } @@ -135,7 +135,7 @@ static TIMER_CALLBACK( scanline_callback ) { vblank_irq_state = 0; update = 1; - cpunum_set_input_line(machine, 1, 4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 4, CLEAR_LINE); next_scanline = scanline + 1; } @@ -166,7 +166,7 @@ static void timer_ack_callback(running_machine *machine) static TIMER_CALLBACK( delayed_sound_data_w ) { soundlatch_w(machine, 0, param); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, ASSERT_LINE); } @@ -178,13 +178,13 @@ static void sound_data_w(UINT8 data) static void sound_cpu_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 2, 0, state); + cpu_set_input_line(machine->cpu[2], 0, state); } static READ8_HANDLER( sound_data_r ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, CLEAR_LINE); return soundlatch_r(machine, offset); } @@ -198,14 +198,14 @@ static READ8_HANDLER( sound_data_r ) static void xboard_reset(void) { - cpunum_set_input_line(Machine, 1, INPUT_LINE_RESET, PULSE_LINE); - cpu_boost_interleave(Machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); + cpuexec_boost_interleave(Machine, attotime_zero, ATTOTIME_IN_USEC(100)); } static MACHINE_RESET( xboard ) { - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); segaic16_tilemap_reset(0); /* hook the RESET line, which resets CPU #1 */ @@ -345,7 +345,7 @@ static WRITE16_HANDLER( iochip_0_w ) */ if (((oldval ^ data) & 0x40) && !(data & 0x40)) watchdog_reset_w(machine,0,0); segaic16_set_display_enable(machine, data & 0x20); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); return; case 3: @@ -455,7 +455,7 @@ static UINT16 *loffire_sync; static WRITE16_HANDLER( loffire_sync0_w ) { COMBINE_DATA(&loffire_sync[offset]); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); } diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c index 6d16a515e9b..3bdcf2577e4 100644 --- a/src/mame/drivers/segaybd.c +++ b/src/mame/drivers/segaybd.c @@ -66,18 +66,18 @@ static void yboard_generic_init(void) static void update_main_irqs(running_machine *machine) { - cpunum_set_input_line(machine, 0, 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 2, 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 2, 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 2, 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 2, timer_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 4, vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 6, timer_irq_state && vblank_irq_state ? ASSERT_LINE : CLEAR_LINE); if(timer_irq_state || vblank_irq_state) - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); } @@ -193,14 +193,14 @@ static MACHINE_RESET( yboard ) static void sound_cpu_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 3, 0, state); + cpu_set_input_line(machine->cpu[3], 0, state); } static TIMER_CALLBACK( delayed_sound_data_w ) { soundlatch_w(machine, 0, param); - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, ASSERT_LINE); } @@ -213,7 +213,7 @@ static WRITE16_HANDLER( sound_data_w ) static READ8_HANDLER( sound_data_r ) { - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, CLEAR_LINE); return soundlatch_r(machine,offset); } @@ -305,9 +305,9 @@ static WRITE16_HANDLER( io_chip_w ) */ segaic16_set_display_enable(machine, data & 0x80); if (((old ^ data) & 0x20) && !(data & 0x20)) watchdog_reset_w(machine,0,0); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x04) ? ASSERT_LINE : CLEAR_LINE); break; /* mute */ diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c index 42c72756754..8963dca7299 100644 --- a/src/mame/drivers/seibuspi.c +++ b/src/mame/drivers/seibuspi.c @@ -809,7 +809,7 @@ static READ32_HANDLER( sound_fifo_status_r ) static READ32_HANDLER( spi_int_r ) { - cpunum_set_input_line(machine, 0, 0,CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], 0,CLEAR_LINE ); return 0xffffffff; } @@ -881,9 +881,9 @@ logerror("z80 data = %08x mask = %08x\n",data,mem_mask); if( ACCESSING_BITS_0_7 ) { if( data & 0x1 ) { z80_prg_fifo_pos = 0; - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE ); } else { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE ); } } } @@ -1078,9 +1078,9 @@ static WRITE8_HANDLER( flashrom_write ) static void irqhandler(running_machine *machine, int state) { if (state) - cpunum_set_input_line_and_vector(machine, 1, 0, ASSERT_LINE, 0xd7); // IRQ is RST10 + cpu_set_input_line_and_vector(machine->cpu[1], 0, ASSERT_LINE, 0xd7); // IRQ is RST10 else - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static const ymf271_interface ymf271_config = @@ -1687,7 +1687,7 @@ static NVRAM_HANDLER( sxx2f ) static INTERRUPT_GEN( spi_interrupt ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE ); + cpu_set_input_line(device, 0, ASSERT_LINE ); } static IRQ_CALLBACK(spi_irq_callback) @@ -1705,8 +1705,8 @@ static MACHINE_RESET( spi ) UINT8 *rombase = memory_region(machine, "user1"); UINT8 flash_data = rombase[0x1ffffc]; - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE ); - cpunum_set_irq_callback(0, spi_irq_callback); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE ); + cpu_set_irq_callback(machine->cpu[0], spi_irq_callback); memory_install_read32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x00000680, 0x00000683, 0, 0, sound_fifo_r); memory_install_write32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x00000688, 0x0000068b, 0, 0, z80_prg_fifo_w); @@ -1783,7 +1783,7 @@ static MACHINE_RESET( sxx2f ) memory_install_write32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0000068c, 0x0000068f, 0, 0, eeprom_w); memory_install_read32_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x00000680, 0x00000683, 0, 0, sb_coin_r); - cpunum_set_irq_callback(0, spi_irq_callback); + cpu_set_irq_callback(machine->cpu[0], spi_irq_callback); sb_coin_latch = 0; } @@ -1818,13 +1818,13 @@ MACHINE_DRIVER_END static READ32_HANDLER ( senkyu_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x00305bb2) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x00305bb2) cpu_spinuntil_int(machine->activecpu); // idle return spimainram[(0x0018cb4-0x800)/4]; } static READ32_HANDLER( senkyua_speedup_r ) { - if (cpu_get_pc(machine->activecpu)== 0x30582e) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)== 0x30582e) cpu_spinuntil_int(machine->activecpu); // idle return spimainram[(0x0018c9c-0x800)/4]; } @@ -1833,10 +1833,10 @@ static READ32_HANDLER ( batlball_speedup_r ) // printf("cpu_get_pc(machine->activecpu) %06x\n", cpu_get_pc(machine->activecpu)); /* batlbalu */ - if (cpu_get_pc(machine->activecpu)==0x00305996) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x00305996) cpu_spinuntil_int(machine->activecpu); // idle /* batlball */ - if (cpu_get_pc(machine->activecpu)==0x003058aa) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x003058aa) cpu_spinuntil_int(machine->activecpu); // idle return spimainram[(0x0018db4-0x800)/4]; } @@ -1844,19 +1844,19 @@ static READ32_HANDLER ( batlball_speedup_r ) static READ32_HANDLER ( rdft_speedup_r ) { /* rdft */ - if (cpu_get_pc(machine->activecpu)==0x0203f0a) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0203f0a) cpu_spinuntil_int(machine->activecpu); // idle /* rdftau */ - if (cpu_get_pc(machine->activecpu)==0x0203f16) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0203f16) cpu_spinuntil_int(machine->activecpu); // idle /* rdftj */ - if (cpu_get_pc(machine->activecpu)==0x0203f22) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0203f22) cpu_spinuntil_int(machine->activecpu); // idle /* rdftdi */ - if (cpu_get_pc(machine->activecpu)==0x0203f46) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0203f46) cpu_spinuntil_int(machine->activecpu); // idle /* rdftu */ - if (cpu_get_pc(machine->activecpu)==0x0203f3a) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0203f3a) cpu_spinuntil_int(machine->activecpu); // idle // mame_printf_debug("%08x\n",cpu_get_pc(machine->activecpu)); @@ -1866,13 +1866,13 @@ static READ32_HANDLER ( rdft_speedup_r ) static READ32_HANDLER ( viprp1_speedup_r ) { /* viprp1 */ - if (cpu_get_pc(machine->activecpu)==0x0202769) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0202769) cpu_spinuntil_int(machine->activecpu); // idle /* viprp1s */ - if (cpu_get_pc(machine->activecpu)==0x02027e9) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x02027e9) cpu_spinuntil_int(machine->activecpu); // idle /* viprp1ot */ - if (cpu_get_pc(machine->activecpu)==0x02026bd) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x02026bd) cpu_spinuntil_int(machine->activecpu); // idle // mame_printf_debug("%08x\n",cpu_get_pc(machine->activecpu)); @@ -1882,7 +1882,7 @@ static READ32_HANDLER ( viprp1_speedup_r ) static READ32_HANDLER ( viprp1o_speedup_r ) { /* viperp1o */ - if (cpu_get_pc(machine->activecpu)==0x0201f99) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0201f99) cpu_spinuntil_int(machine->activecpu); // idle // mame_printf_debug("%08x\n",cpu_get_pc(machine->activecpu)); return spimainram[(0x001d49c-0x800)/4]; } @@ -1892,7 +1892,7 @@ static READ32_HANDLER ( viprp1o_speedup_r ) READ32_HANDLER ( ejanhs_speedup_r ) { // mame_printf_debug("%08x\n",cpu_get_pc(machine->activecpu)); - if (cpu_get_pc(machine->activecpu)==0x03032c7) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x03032c7) cpu_spinuntil_int(machine->activecpu); // idle return spimainram[(0x002d224-0x800)/4]; } #endif @@ -1901,16 +1901,16 @@ static READ32_HANDLER ( rf2_speedup_r ) { /* rdft22kc */ - if (cpu_get_pc(machine->activecpu)==0x0203926) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0203926) cpu_spinuntil_int(machine->activecpu); // idle /* rdft2, rdft2j */ - if (cpu_get_pc(machine->activecpu)==0x0204372) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0204372) cpu_spinuntil_int(machine->activecpu); // idle /* rdft2us */ - if (cpu_get_pc(machine->activecpu)==0x020420e) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x020420e) cpu_spinuntil_int(machine->activecpu); // idle /* rdft2a */ - if (cpu_get_pc(machine->activecpu)==0x0204366) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0204366) cpu_spinuntil_int(machine->activecpu); // idle // mame_printf_debug("%08x\n",cpu_get_pc(machine->activecpu)); @@ -1920,20 +1920,20 @@ static READ32_HANDLER ( rf2_speedup_r ) static READ32_HANDLER ( rfjet_speedup_r ) { /* rfjet, rfjetu, rfjeta */ - if (cpu_get_pc(machine->activecpu)==0x0206082) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0206082) cpu_spinuntil_int(machine->activecpu); // idle /* rfjetus */ if (cpu_get_pc(machine->activecpu)==0x0205b39) { UINT32 r; - cpu_spinuntil_int(); // idle + cpu_spinuntil_int(machine->activecpu); // idle // Hack to enter test mode r = spimainram[(0x002894c-0x800)/4] & (~0x400); return r | (((input_port_read(machine, "SYSTEM") ^ 0xff)<<8) & 0x400); } /* rfjetj */ - if (cpu_get_pc(machine->activecpu)==0x0205f2e) cpu_spinuntil_int(); // idle + if (cpu_get_pc(machine->activecpu)==0x0205f2e) cpu_spinuntil_int(machine->activecpu); // idle // mame_printf_debug("%08x\n",cpu_get_pc(machine->activecpu)); @@ -2049,7 +2049,7 @@ static DRIVER_INIT( rdft22kc ) static MACHINE_RESET( seibu386 ) { - cpunum_set_irq_callback(0, spi_irq_callback); + cpu_set_irq_callback(machine->cpu[0], spi_irq_callback); } static MACHINE_DRIVER_START( seibu386 ) diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c index 6688c3391ad..81d3d91cce4 100644 --- a/src/mame/drivers/seicross.c +++ b/src/mame/drivers/seicross.c @@ -84,7 +84,7 @@ static NVRAM_HANDLER( seicross ) static MACHINE_RESET( friskyt ) { /* start with the protection mcu halted */ - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } @@ -106,8 +106,8 @@ static WRITE8_HANDLER( friskyt_portB_w ) if (((portb & 4) == 0) && (data & 4)) { /* reset and start the protection mcu */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); } /* other bits unknown */ diff --git a/src/mame/drivers/sengokmj.c b/src/mame/drivers/sengokmj.c index 6dd863c7c0b..de75401f538 100644 --- a/src/mame/drivers/sengokmj.c +++ b/src/mame/drivers/sengokmj.c @@ -284,7 +284,7 @@ GFXDECODE_END static INTERRUPT_GEN( sengokmj_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xcb/4); + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xcb/4); } static MACHINE_DRIVER_START( sengokmj ) diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c index bd1acb21c78..b6c5f1e7e0d 100644 --- a/src/mame/drivers/senjyo.c +++ b/src/mame/drivers/senjyo.c @@ -88,7 +88,7 @@ static MACHINE_RESET( senjyo ) static INTERRUPT_GEN( senjyo_interrupt ) { - if (int_delay_kludge == 0) cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if (int_delay_kludge == 0) cpu_set_input_line(device, 0, HOLD_LINE); else int_delay_kludge--; } diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c index 5f1dd10d3a3..f45a385e148 100644 --- a/src/mame/drivers/seta.c +++ b/src/mame/drivers/seta.c @@ -1327,7 +1327,7 @@ static void uPD71054_update_timer( running_machine *machine, int no ) UINT16 max = uPD71054.max[no]&0xffff; if( max != 0 ) { - attotime period = attotime_mul(ATTOTIME_IN_HZ(cpunum_get_clock(0)), 16 * max); + attotime period = attotime_mul(ATTOTIME_IN_HZ(cpu_get_clock(machine->cpu[0])), 16 * max); timer_adjust_oneshot( uPD71054.timer[no], period, no ); } else { timer_adjust_oneshot( uPD71054.timer[no], attotime_never, no); @@ -1343,7 +1343,7 @@ static void uPD71054_update_timer( running_machine *machine, int no ) ------------------------------*/ static TIMER_CALLBACK( uPD71054_timer_callback ) { - cpunum_set_input_line(machine, 0, 4, HOLD_LINE ); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE ); uPD71054_update_timer( machine, param ); } @@ -1426,7 +1426,7 @@ static const x1_010_interface seta_sound_intf2 = static void utoukond_ym3438_interrupt(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, linestate); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, linestate); } static const ym3438_interface utoukond_ym3438_intf = @@ -1499,7 +1499,7 @@ static WRITE16_HANDLER( sub_ctrl_w ) if (ACCESSING_BITS_0_7) { if ( !(old_data&1) && (data&1) ) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); old_data = data; } break; @@ -1682,8 +1682,8 @@ static WRITE16_HANDLER( calibr50_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_word_w(machine,0,data,mem_mask); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); // Allow the other cpu to reply + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); // Allow the other cpu to reply } } @@ -2711,7 +2711,7 @@ static READ8_HANDLER( wiggie_soundlatch_r ) static WRITE16_HANDLER( wiggie_soundlatch_w ) { wiggie_soundlatch = data >> 8; - cpunum_set_input_line(machine, 1,0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0, HOLD_LINE); } @@ -2769,7 +2769,7 @@ static WRITE16_HANDLER( utoukond_soundlatch_w ) { if (ACCESSING_BITS_0_7) { - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); soundlatch_w(machine,0,data & 0xff); } } @@ -2943,7 +2943,7 @@ static MACHINE_RESET(calibr50) static WRITE8_HANDLER( calibr50_soundlatch2_w ) { soundlatch2_w(machine,0,data); - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); // Allow the other cpu to reply + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); // Allow the other cpu to reply } static ADDRESS_MAP_START( calibr50_sub_readmem, ADDRESS_SPACE_PROGRAM, 8 ) @@ -6651,19 +6651,19 @@ GFXDECODE_END static INTERRUPT_GEN( seta_interrupt_1_and_2 ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 1, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 2, HOLD_LINE); break; } } static INTERRUPT_GEN( seta_interrupt_2_and_4 ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 2, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 4, HOLD_LINE); break; } } @@ -6672,10 +6672,10 @@ static INTERRUPT_GEN( seta_interrupt_2_and_4 ) static INTERRUPT_GEN( seta_sub_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); break; - case 1: cpunum_set_input_line(machine, 1, 0, HOLD_LINE); break; + case 0: cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); break; + case 1: cpu_set_input_line(device, 0, HOLD_LINE); break; } } @@ -6701,10 +6701,10 @@ static const ym2203_interface tndrcade_ym2203_interface = #define TNDRCADE_SUB_INTERRUPTS_NUM 32 /* 16 IRQ, 1 NMI */ static INTERRUPT_GEN( tndrcade_sub_interrupt ) { - if (cpu_getiloops() & 1) - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); - else if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + if (cpu_getiloops(device) & 1) + cpu_set_input_line(device, 0, HOLD_LINE); + else if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( tndrcade ) @@ -6848,13 +6848,13 @@ MACHINE_DRIVER_END #define calibr50_INTERRUPTS_NUM (4+1) static INTERRUPT_GEN( calibr50_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: case 1: case 2: - case 3: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; - case 4: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; + case 3: cpu_set_input_line(device, 4, HOLD_LINE); break; + case 4: cpu_set_input_line(device, 2, HOLD_LINE); break; } } @@ -7327,7 +7327,7 @@ MACHINE_DRIVER_END #if __uPD71054_TIMER static INTERRUPT_GEN( wrofaero_interrupt ) { - cpunum_set_input_line(machine, 0, 2, HOLD_LINE ); + cpu_set_input_line(device, 2, HOLD_LINE ); } static MACHINE_RESET( wrofaero ) { uPD71054_timer_init(); } @@ -8072,10 +8072,10 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( crazyfgt_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; - default: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; // should this be triggered by the 3812? + case 0: cpu_set_input_line(device, 1, HOLD_LINE); break; + default: cpu_set_input_line(device, 2, HOLD_LINE); break; // should this be triggered by the 3812? } } @@ -8119,7 +8119,7 @@ MACHINE_DRIVER_END // Test mode shows a 16ms and 2ms counters static INTERRUPT_GEN( inttoote_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: case 1: @@ -8128,13 +8128,13 @@ static INTERRUPT_GEN( inttoote_interrupt ) case 4: case 5: case 6: - case 7: cpunum_set_input_line(machine, 0, 6, HOLD_LINE); break; + case 7: cpu_set_input_line(device, 6, HOLD_LINE); break; - case 8: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; + case 8: cpu_set_input_line(device, 2, HOLD_LINE); break; - case 9: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; + case 9: cpu_set_input_line(device, 1, HOLD_LINE); break; - case 10: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; + case 10: cpu_set_input_line(device, 4, HOLD_LINE); break; } } diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index 31028d74efd..a9b000420db 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -1779,24 +1779,24 @@ GFXDECODE_END static INTERRUPT_GEN( seta2_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: /* VBlank is connected to INT0 (external interrupts pin 0) */ - tmp68301_external_interrupt_0(machine); + tmp68301_external_interrupt_0(device->machine); break; } } static INTERRUPT_GEN( samshoot_interrupt ) { - switch ( cpu_getiloops() ) + switch ( cpu_getiloops(device) ) { case 0: - tmp68301_external_interrupt_0(machine); // vblank + tmp68301_external_interrupt_0(device->machine); // vblank break; case 1: - tmp68301_external_interrupt_2(machine); // to do: hook up x1-10 interrupts + tmp68301_external_interrupt_2(device->machine); // to do: hook up x1-10 interrupts break; } } diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c index 9d060d20c67..c990dca332b 100644 --- a/src/mame/drivers/sf.c +++ b/src/mame/drivers/sf.c @@ -53,7 +53,7 @@ static WRITE16_HANDLER( soundcmd_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -795,7 +795,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/sg1000a.c b/src/mame/drivers/sg1000a.c index aec9c90a26c..c3b373f7be8 100644 --- a/src/mame/drivers/sg1000a.c +++ b/src/mame/drivers/sg1000a.c @@ -225,12 +225,12 @@ INPUT_PORTS_END static INTERRUPT_GEN( sg1000a_interrupt ) { - TMS9928A_interrupt(machine); + TMS9928A_interrupt(device->machine); } static void vdp_interrupt(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, state); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, state); } static const TMS9928a_interface tms9928a_interface = diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c index c372c336dd5..990084536e5 100644 --- a/src/mame/drivers/shadfrce.c +++ b/src/mame/drivers/shadfrce.c @@ -217,7 +217,7 @@ static WRITE16_HANDLER ( shadfrce_sound_brt_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine,1,data >> 8); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } else { @@ -238,13 +238,13 @@ static TIMER_CALLBACK( raster_interrupt ) shadfrce_scanline = (shadfrce_scanline + 1) % 256; // fire another raster irq for the next scanline - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); timer_adjust_oneshot(raster_irq_timer, video_screen_get_time_until_pos(machine->primary_screen, shadfrce_scanline, 0), 0); } static WRITE16_HANDLER( shadfrce_irq_ack_w ) { - cpunum_set_input_line(machine, 0, offset ^ 3, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], offset ^ 3, CLEAR_LINE); } static WRITE16_HANDLER( shadfrce_irq_w ) @@ -470,7 +470,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = @@ -483,7 +483,7 @@ static const ym2151_interface ym2151_config = */ static INTERRUPT_GEN( shadfrce_interrupt ) { - int scanline = 255 - cpu_getiloops(); + int scanline = 255 - cpu_getiloops(device); /* Vblank is lowered on scanline 0 (8) */ if (scanline == 0) @@ -499,14 +499,14 @@ static INTERRUPT_GEN( shadfrce_interrupt ) else if (scanline==248) { if(shadfrce_irqs_enable) - cpunum_set_input_line(machine, 0, 3, ASSERT_LINE); + cpu_set_input_line(device, 3, ASSERT_LINE); } /* An interrupt is generated every 16 scanlines */ if (scanline%16 == 0) { if(shadfrce_irqs_enable) - cpunum_set_input_line(machine, 0, 2, ASSERT_LINE); + cpu_set_input_line(device, 2, ASSERT_LINE); } } diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c index 7dab2d5cde9..172537e7767 100644 --- a/src/mame/drivers/shangha3.c +++ b/src/mame/drivers/shangha3.c @@ -119,7 +119,7 @@ static WRITE16_HANDLER( heberpop_sound_command_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); /* RST 38h */ + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); /* RST 38h */ } } @@ -496,7 +496,7 @@ static const ay8910_interface ay8910_config = static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, linestate); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, linestate); } static const ym3438_interface ym3438_config = diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c index c20e258d021..4fe0554ab14 100644 --- a/src/mame/drivers/shanghai.c +++ b/src/mame/drivers/shanghai.c @@ -107,7 +107,7 @@ static VIDEO_UPDATE( shanghai ) static INTERRUPT_GEN( shanghai_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0x80); + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0x80); } static WRITE16_HANDLER( shanghai_coin_w ) diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c index b72c9fcafb6..fc7c4952360 100644 --- a/src/mame/drivers/shangkid.c +++ b/src/mame/drivers/shangkid.c @@ -79,18 +79,18 @@ static WRITE8_HANDLER( shangkid_maincpu_bank_w ) static WRITE8_HANDLER( shangkid_bbx_enable_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, data?0:1 ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, data?0:1 ); } static WRITE8_HANDLER( shangkid_cpu_reset_w ) { if( data == 0 ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } else if( data == 1 ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); } } @@ -114,7 +114,7 @@ static WRITE8_HANDLER( chinhero_bbx_AY8910_write_w ) { if( data == 0x01 ) /* 0->1 transition triggers interrupt on Sound CPU */ - cpunum_set_input_line(machine, 2, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE ); } break; @@ -137,7 +137,7 @@ static WRITE8_HANDLER( shangkid_bbx_AY8910_write_w ) { if( data == 0x01 ) /* 0->1 transition triggers interrupt on Sound CPU */ - cpunum_set_input_line(machine, 2, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE ); } else memory_set_bank(2, data ? 0 : 1); @@ -180,12 +180,12 @@ static DRIVER_INIT( shangkid ) static MACHINE_RESET( chinhero ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, 1 ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, 1 ); } static MACHINE_RESET( shangkid ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, 1 ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, 1 ); memory_set_bank(1, 0); memory_set_bank(2, 0); diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c index 3b2ffc4d1a2..a2b169f65df 100644 --- a/src/mame/drivers/shaolins.c +++ b/src/mame/drivers/shaolins.c @@ -26,10 +26,10 @@ VIDEO_UPDATE( shaolins ); static INTERRUPT_GEN( shaolins_interrupt ) { - if (cpu_getiloops() == 0) cpunum_set_input_line(machine, 0, 0, HOLD_LINE); - else if (cpu_getiloops() % 2) + if (cpu_getiloops(device) == 0) cpu_set_input_line(device, 0, HOLD_LINE); + else if (cpu_getiloops(device) % 2) { - if (shaolins_nmi_enable & 0x02) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (shaolins_nmi_enable & 0x02) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c index c4fab3d9ed0..6bae21ccc98 100644 --- a/src/mame/drivers/shootout.c +++ b/src/mame/drivers/shootout.c @@ -61,7 +61,7 @@ static WRITE8_HANDLER( shootout_bankswitch_w ) static WRITE8_HANDLER( sound_cpu_command_w ) { soundlatch_w( machine, offset, data ); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } static WRITE8_HANDLER( shootout_flipscreen_w ) @@ -264,12 +264,12 @@ GFXDECODE_END static void shootout_snd_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static void shootout_snd2_irq(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 0,0,linestate); + cpu_set_input_line(machine->cpu[0],0,linestate); } static const ym2203_interface ym2203_config = @@ -299,10 +299,10 @@ static INTERRUPT_GEN( shootout_interrupt ) { static int coin = 0; - if ( input_port_read(machine, "P2") & 0xc0 ) { + if ( input_port_read(device->machine, "P2") & 0xc0 ) { if ( coin == 0 ) { coin = 1; - nmi_line_pulse(machine, cpunum); + nmi_line_pulse(device); } } else coin = 0; diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c index 877970aeb28..ae8760bd34f 100644 --- a/src/mame/drivers/shougi.c +++ b/src/mame/drivers/shougi.c @@ -220,13 +220,13 @@ static WRITE8_HANDLER( shougi_watchdog_reset_w ) static WRITE8_HANDLER( shougi_mcu_halt_off_w ) { /* logerror("mcu HALT OFF"); */ - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); } static WRITE8_HANDLER( shougi_mcu_halt_on_w ) { /* logerror("mcu HALT ON"); */ - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT,ASSERT_LINE); } @@ -237,8 +237,8 @@ static WRITE8_HANDLER( nmi_disable_and_clear_line_w ) nmi_enabled = 0; /* disable NMIs */ /* NMI lines are tied together on both CPUs and connected to the LS74 /Q output */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } static WRITE8_HANDLER( nmi_enable_w ) @@ -251,8 +251,8 @@ static INTERRUPT_GEN( shougi_vblank_nmi ) if ( nmi_enabled == 1 ) { /* NMI lines are tied together on both CPUs and connected to the LS74 /Q output */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } } diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c index 2f456409f65..7f9f41d94ef 100644 --- a/src/mame/drivers/shuuz.c +++ b/src/mame/drivers/shuuz.c @@ -32,7 +32,7 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c index 8160afde076..ed6f3146545 100644 --- a/src/mame/drivers/sidearms.c +++ b/src/mame/drivers/sidearms.c @@ -693,7 +693,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c index c06f28cdd6f..b5acc174509 100644 --- a/src/mame/drivers/sidepckt.c +++ b/src/mame/drivers/sidepckt.c @@ -33,7 +33,7 @@ static int i8751_return; static WRITE8_HANDLER( sound_cpu_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static READ8_HANDLER( sidepckt_i8751_r ) @@ -48,7 +48,7 @@ static WRITE8_HANDLER( sidepckt_i8751_w ) static const int table_3[]={0xbd,0x73,0x80,0xbd,0x73,0xa7,0xbd,0x73,0xe0,0x7e,0x72,0x56,0xff,0xff,0xff,0xff}; static int current_ptr=0,current_table=0,in_math=0,math_param; - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); /* i8751 triggers FIRQ on main cpu */ + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); /* i8751 triggers FIRQ on main cpu */ /* This function takes multiple parameters */ if (in_math==1) { @@ -89,7 +89,7 @@ static WRITE8_HANDLER( sidepctj_i8751_w ) static const int table_3[]={0xbd,0x71,0xc8,0xbd,0x71,0xef,0xbd,0x72,0x28,0x7e,0x70,0x9e,0xff,0xff,0xff,0xff}; static int current_ptr=0,current_table=0,in_math,math_param; - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); /* i8751 triggers FIRQ on main cpu */ + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); /* i8751 triggers FIRQ on main cpu */ /* This function takes multiple parameters */ if (in_math==1) { @@ -279,7 +279,7 @@ GFXDECODE_END /* handler called by the 3526 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c index e06fc5e1485..9b479c22fcd 100644 --- a/src/mame/drivers/simpl156.c +++ b/src/mame/drivers/simpl156.c @@ -472,7 +472,7 @@ static NVRAM_HANDLER( simpl156 ) static INTERRUPT_GEN( simpl156_vbl_interrupt ) { - cpunum_set_input_line(machine, 0, ARM_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE); } @@ -1151,7 +1151,7 @@ static const UINT8 gangonta_eeprom[128] = { /* Everything seems more stable if we run the CPU speed x4 and use Idle skips.. maybe it has an internal multipler? */ static READ32_HANDLER( joemacr_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x284) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); + if (cpu_get_pc(machine->activecpu)==0x284) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); return simpl156_systemram[0x18/4]; } @@ -1164,7 +1164,7 @@ static DRIVER_INIT (joemacr) static READ32_HANDLER( chainrec_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x2d4) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); + if (cpu_get_pc(machine->activecpu)==0x2d4) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); return simpl156_systemram[0x18/4]; } @@ -1177,7 +1177,7 @@ static DRIVER_INIT (chainrec) static READ32_HANDLER( prtytime_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x4f0) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); + if (cpu_get_pc(machine->activecpu)==0x4f0) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); return simpl156_systemram[0xae0/4]; } @@ -1198,7 +1198,7 @@ static DRIVER_INIT (gangonta) static READ32_HANDLER( charlien_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0xc8c8) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); + if (cpu_get_pc(machine->activecpu)==0xc8c8) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); return simpl156_systemram[0x10/4]; } @@ -1210,7 +1210,7 @@ static DRIVER_INIT (charlien) static READ32_HANDLER( osman_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x5974) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); + if (cpu_get_pc(machine->activecpu)==0x5974) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); return simpl156_systemram[0x10/4]; } diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c index 2f91229f0fe..4ec66659a5b 100644 --- a/src/mame/drivers/simpsons.c +++ b/src/mame/drivers/simpsons.c @@ -114,7 +114,7 @@ static int nmi_enabled; static void sound_nmi_callback( running_machine *machine, int param ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ( nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ( nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); nmi_enabled = 0; } @@ -122,13 +122,13 @@ static void sound_nmi_callback( running_machine *machine, int param ) static TIMER_CALLBACK( nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( z80_arm_nmi_w ) { // sound_nmi_enabled = 1; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); timer_set(ATTOTIME_IN_USEC(25), NULL,0,nmi_callback); /* kludge until the K053260 is emulated correctly */ } @@ -295,7 +295,7 @@ static void simpsons_objdma(void) static TIMER_CALLBACK( dmaend_callback ) { if (simpsons_firq_enabled) - cpunum_set_input_line(machine, 0, KONAMI_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], KONAMI_FIRQ_LINE, HOLD_LINE); } static INTERRUPT_GEN( simpsons_irq ) @@ -309,7 +309,7 @@ static INTERRUPT_GEN( simpsons_irq ) } if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } static MACHINE_DRIVER_START( simpsons ) diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c index 5c4734754f8..c7183bf4f34 100644 --- a/src/mame/drivers/skullxbo.c +++ b/src/mame/drivers/skullxbo.c @@ -32,15 +32,15 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } static TIMER_CALLBACK( irq_gen ) { - atarigen_scanline_int_gen(machine, 0); + atarigen_scanline_int_gen(machine->cpu[0]); } diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c index 6bf31594c44..2d9352ce351 100644 --- a/src/mame/drivers/skyarmy.c +++ b/src/mame/drivers/skyarmy.c @@ -143,7 +143,7 @@ static int skyarmy_nmi=0; static INTERRUPT_GEN( skyarmy_nmi_source ) { - if(skyarmy_nmi) cpunum_set_input_line(machine, 0,INPUT_LINE_NMI, PULSE_LINE) ; + if(skyarmy_nmi) cpu_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE) ; } diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c index c8cda328738..451bd791336 100644 --- a/src/mame/drivers/skydiver.c +++ b/src/mame/drivers/skydiver.c @@ -145,14 +145,14 @@ static WRITE8_HANDLER( skydiver_nmion_w ) static INTERRUPT_GEN( skydiver_interrupt ) { /* Convert range data to divide value and write to sound */ - discrete_sound_w(machine, SKYDIVER_RANGE_DATA, (0x01 << (~skydiver_videoram[0x394] & 0x07)) & 0xff); // Range 0-2 + discrete_sound_w(device->machine, SKYDIVER_RANGE_DATA, (0x01 << (~skydiver_videoram[0x394] & 0x07)) & 0xff); // Range 0-2 - discrete_sound_w(machine, SKYDIVER_RANGE3_EN, skydiver_videoram[0x394] & 0x08); // Range 3 - note disable - discrete_sound_w(machine, SKYDIVER_NOTE_DATA, ~skydiver_videoram[0x395] & 0xff); // Note - freq - discrete_sound_w(machine, SKYDIVER_NOISE_DATA, skydiver_videoram[0x396] & 0x0f); // NAM - Noise Amplitude + discrete_sound_w(device->machine, SKYDIVER_RANGE3_EN, skydiver_videoram[0x394] & 0x08); // Range 3 - note disable + discrete_sound_w(device->machine, SKYDIVER_NOTE_DATA, ~skydiver_videoram[0x395] & 0xff); // Note - freq + discrete_sound_w(device->machine, SKYDIVER_NOISE_DATA, skydiver_videoram[0x396] & 0x0f); // NAM - Noise Amplitude if (skydiver_nmion) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c index 28a63709d3d..44a316cc4d5 100644 --- a/src/mame/drivers/skyfox.c +++ b/src/mame/drivers/skyfox.c @@ -249,7 +249,7 @@ static INTERRUPT_GEN( skyfox_interrupt ) skyfox_bg_pos += (skyfox_bg_ctrl >> 1) & 0x7; // maybe.. /* Check coin 1 & 2 */ - if ((input_port_read(machine, "COINS") & 3) != 3) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if ((input_port_read(device->machine, "COINS") & 3) != 3) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( skyfox ) diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c index 660dd355cb9..5309bb9e71a 100644 --- a/src/mame/drivers/skykid.c +++ b/src/mame/drivers/skykid.c @@ -79,7 +79,7 @@ static WRITE8_HANDLER( skykid_led_w ) static WRITE8_HANDLER( skykid_subreset_w ) { int bit = !BIT(offset,11); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, bit ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( skykid_bankswitch_w ) @@ -92,7 +92,7 @@ static WRITE8_HANDLER( skykid_irq_1_ctrl_w ) int bit = !BIT(offset,11); cpu_interrupt_enable(0,bit); if (!bit) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( skykid_irq_2_ctrl_w ) @@ -100,7 +100,7 @@ static WRITE8_HANDLER( skykid_irq_2_ctrl_w ) int bit = !BIT(offset,13); cpu_interrupt_enable(1,bit); if (!bit) - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static MACHINE_START( skykid ) diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 80d606dbd64..16f347664a5 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -491,7 +491,7 @@ static const ay8910_interface ay8910_config = // It runs in IM 0, thus needs an opcode on the data bus static INTERRUPT_GEN( skylncr_vblank_interrupt ) { - if (skylncr_nmi_enable) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (skylncr_nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( skylncr ) diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index fb8b271f3d3..429830214d4 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -181,14 +181,14 @@ static WRITE16_HANDLER( color_ram_word_w ) static TIMER_CALLBACK( slapshot_interrupt6 ) { - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } static INTERRUPT_GEN( slapshot_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, slapshot_interrupt6); - cpunum_set_input_line(machine, 0,5,HOLD_LINE); + cpu_set_input_line(device,5,HOLD_LINE); } @@ -219,7 +219,7 @@ static READ16_HANDLER( opwolf3_adc_r ) static WRITE16_HANDLER( opwolf3_adc_req_w ) { /* 4 writes a frame - one for each analogue port */ - cpunum_set_input_line(machine, 0,3,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],3,HOLD_LINE); } /***************************************************** @@ -512,7 +512,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c index 67aa03b88da..6394b7c5bc2 100644 --- a/src/mame/drivers/sliver.c +++ b/src/mame/drivers/sliver.c @@ -391,7 +391,7 @@ static WRITE16_HANDLER(io_data_w) static WRITE16_HANDLER(sound_w) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, MCS51_INT0_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], MCS51_INT0_LINE, HOLD_LINE); } static ADDRESS_MAP_START( sliver_map, ADDRESS_SPACE_PROGRAM, 16 ) @@ -528,7 +528,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( sliver_int ) { //valid interrupts are 2,3,4 - cpunum_set_input_line(machine, 0, 2+cpu_getiloops(), HOLD_LINE); + cpu_set_input_line(device, 2+cpu_getiloops(device), HOLD_LINE); } static MACHINE_DRIVER_START( sliver ) diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c index 179d79b70f0..09c1195ead9 100644 --- a/src/mame/drivers/snk.c +++ b/src/mame/drivers/snk.c @@ -275,24 +275,24 @@ static int sound_status; READ8_HANDLER ( snk_cpuA_nmi_trigger_r ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); return 0xff; } WRITE8_HANDLER( snk_cpuA_nmi_ack_w ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } READ8_HANDLER ( snk_cpuB_nmi_trigger_r ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); return 0xff; } WRITE8_HANDLER( snk_cpuB_nmi_ack_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } /*********************************************************************/ @@ -314,7 +314,7 @@ static WRITE8_HANDLER( marvins_soundlatch_w ) { marvins_sound_busy_flag = 1; soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE); } static READ8_HANDLER( marvins_soundlatch_r ) @@ -330,7 +330,7 @@ static CUSTOM_INPUT( marvins_sound_busy ) static READ8_HANDLER( marvins_sound_nmi_ack_r ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, CLEAR_LINE); return 0xff; } @@ -353,7 +353,7 @@ static TIMER_CALLBACK( sgladiat_sndirq_update_callback ) break; } - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, (sound_status & 0x8) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, (sound_status & 0x8) ? ASSERT_LINE : CLEAR_LINE); } @@ -377,7 +377,7 @@ static READ8_HANDLER( sgladiat_sound_nmi_ack_r ) static READ8_HANDLER( sgladiat_sound_irq_ack_r ) { - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); return 0xff; } @@ -438,7 +438,7 @@ static TIMER_CALLBACK( sndirq_update_callback ) break; } - cpunum_set_input_line(machine, 2, 0, (sound_status & 0xb) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, (sound_status & 0xb) ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c index 8702e0ef9a8..5a58d974f86 100644 --- a/src/mame/drivers/snk68.c +++ b/src/mame/drivers/snk68.c @@ -119,7 +119,7 @@ static WRITE16_HANDLER( sound_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine, 0, data >> 8); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -581,7 +581,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c index e6efc738e2c..c18ac878ffc 100644 --- a/src/mame/drivers/snowbros.c +++ b/src/mame/drivers/snowbros.c @@ -106,21 +106,21 @@ static int sb3_music; static INTERRUPT_GEN( snowbros_interrupt ) { - cpunum_set_input_line(machine, 0, cpu_getiloops() + 2, HOLD_LINE); /* IRQs 4, 3, and 2 */ + cpu_set_input_line(device, cpu_getiloops(device) + 2, HOLD_LINE); /* IRQs 4, 3, and 2 */ } static INTERRUPT_GEN( snowbro3_interrupt ) { - int status = okim6295_status_0_r(machine,0); + int status = okim6295_status_0_r(device->machine,0); - cpunum_set_input_line(machine, 0, cpu_getiloops() + 2, HOLD_LINE); /* IRQs 4, 3, and 2 */ + cpu_set_input_line(device, cpu_getiloops(device) + 2, HOLD_LINE); /* IRQs 4, 3, and 2 */ if (sb3_music_is_playing) { if ((status&0x08)==0x00) { - okim6295_data_0_w(machine,0,0x80|sb3_music); - okim6295_data_0_w(machine,0,0x00|0x82); + okim6295_data_0_w(device->machine,0,0x80|sb3_music); + okim6295_data_0_w(device->machine,0,0x00|0x82); } } @@ -128,7 +128,7 @@ static INTERRUPT_GEN( snowbro3_interrupt ) { if ((status&0x08)==0x08) { - okim6295_data_0_w(machine,0,0x40); /* Stop playing music */ + okim6295_data_0_w(device->machine,0,0x40); /* Stop playing music */ } } @@ -148,7 +148,7 @@ static WRITE16_HANDLER( snowbros_68000_sound_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -278,7 +278,7 @@ static WRITE16_HANDLER( twinadv_68000_sound_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -1496,7 +1496,7 @@ GFXDECODE_END /* handler called by the 3812/2151 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } /* SnowBros Sound */ diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c index 7677a9e1d6b..e858b160c79 100644 --- a/src/mame/drivers/solomon.c +++ b/src/mame/drivers/solomon.c @@ -25,7 +25,7 @@ extern VIDEO_UPDATE( solomon ); static WRITE8_HANDLER( solomon_sh_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } /* this is checked on the title screen and when you reach certain scores in the game diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c index 5164066b4b5..4541b9b9f3d 100644 --- a/src/mame/drivers/sonson.c +++ b/src/mame/drivers/sonson.c @@ -71,7 +71,7 @@ static WRITE8_HANDLER( sonson_sh_irqtrigger_w ) if (last == 0 && data == 1) { /* setting bit 0 low then high triggers IRQ on the sound CPU */ - cpunum_set_input_line(machine, 1,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_FIRQ_LINE,HOLD_LINE); } last = data; diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c index 973ac7ab4a3..527f4d603fe 100644 --- a/src/mame/drivers/spacefb.c +++ b/src/mame/drivers/spacefb.c @@ -127,7 +127,7 @@ static TIMER_CALLBACK( interrupt_callback ) /* compute vector and set the interrupt line */ int vpos = video_screen_get_vpos(machine->primary_screen); UINT8 vector = 0xc7 | ((vpos & 0x40) >> 2) | ((~vpos & 0x40) >> 3); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, vector); /* set up for next interrupt */ if (vpos == SPACEFB_INT_TRIGGER_COUNT_1) diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c index dc472302683..f629758fd52 100644 --- a/src/mame/drivers/spbactn.c +++ b/src/mame/drivers/spbactn.c @@ -139,7 +139,7 @@ static WRITE16_HANDLER( soundcommand_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -343,7 +343,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c index e683d1b8291..a7ab5629f68 100644 --- a/src/mame/drivers/spcforce.c +++ b/src/mame/drivers/spcforce.c @@ -74,7 +74,7 @@ static READ8_HANDLER( spcforce_t0_r ) static WRITE8_HANDLER( spcforce_soundtrigger_w ) { - cpunum_set_input_line(machine, 1, 0, (~data & 0x08) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (~data & 0x08) ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c index 0312492921f..10c3b7ea475 100644 --- a/src/mame/drivers/spdodgeb.c +++ b/src/mame/drivers/spdodgeb.c @@ -54,7 +54,7 @@ static UINT8 last_dash[2] = {0,0}; static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,HOLD_LINE); } static WRITE8_HANDLER( spd_adpcm_w ) @@ -413,7 +413,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine,1,M6809_FIRQ_LINE,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],M6809_FIRQ_LINE,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c index bf2363dfbee..55e6649b3db 100644 --- a/src/mame/drivers/speedspn.c +++ b/src/mame/drivers/speedspn.c @@ -103,7 +103,7 @@ static WRITE8_HANDLER(speedspn_banked_rom_change) static WRITE8_HANDLER(speedspn_sound_w) { soundlatch_w(machine,1,data); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } static WRITE8_HANDLER( oki_banking_w ) diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c index c4d3e85a7f9..4a5a5441d64 100644 --- a/src/mame/drivers/speglsht.c +++ b/src/mame/drivers/speglsht.c @@ -303,7 +303,7 @@ static const st0016_interface st0016_config = static INTERRUPT_GEN( irq4_gen ) { - cpunum_set_input_line(machine, 1, R3000_IRQ4, ASSERT_LINE); + cpu_set_input_line(device, R3000_IRQ4, ASSERT_LINE); } static const r3000_cpu_core config = diff --git a/src/mame/drivers/spiders.c b/src/mame/drivers/spiders.c index b99765b1113..fd98f935ac3 100644 --- a/src/mame/drivers/spiders.c +++ b/src/mame/drivers/spiders.c @@ -235,19 +235,19 @@ static void main_cpu_irq(running_machine *machine, int state) pia_get_irq_b(2) | pia_get_irq_a(3) | pia_get_irq_b(3); - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } static void main_cpu_firq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } static void audio_cpu_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, M6802_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6802_IRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -271,13 +271,13 @@ static INTERRUPT_GEN( update_pia_1 ) /* update the different PIA pins from the input ports */ /* CA1 - copy of PA1 (COIN1) */ - pia_1_ca1_w(machine, 0, input_port_read(machine, "IN0") & 0x02); + pia_1_ca1_w(device->machine, 0, input_port_read(device->machine, "IN0") & 0x02); /* CA2 - copy of PA0 (SERVICE1) */ - pia_1_ca2_w(machine, 0, input_port_read(machine, "IN0") & 0x01); + pia_1_ca2_w(device->machine, 0, input_port_read(device->machine, "IN0") & 0x01); /* CB1 - (crosshatch) */ - pia_1_cb1_w(machine, 0, input_port_read(machine, "XHATCH")); + pia_1_cb1_w(device->machine, 0, input_port_read(device->machine, "XHATCH")); /* CB2 - NOT CONNECTED */ } diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c index f67d46af2a3..33328ab768c 100644 --- a/src/mame/drivers/splash.c +++ b/src/mame/drivers/splash.c @@ -72,7 +72,7 @@ static WRITE16_HANDLER( splash_sh_irqtrigger_w ) { if (ACCESSING_BITS_0_7){ soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } } @@ -80,11 +80,11 @@ static WRITE16_HANDLER( roldf_sh_irqtrigger_w ) { if (ACCESSING_BITS_0_7){ soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } // give the z80 time to see it - cpu_spinuntil_time(ATTOTIME_IN_USEC(40)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(40)); } static ADDRESS_MAP_START( splash_readmem, ADDRESS_SPACE_PROGRAM, 16 ) diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c index b643fe87d84..6abb8887cbe 100644 --- a/src/mame/drivers/sprcros2.c +++ b/src/mame/drivers/sprcros2.c @@ -267,22 +267,22 @@ GFXDECODE_END static INTERRUPT_GEN( sprcros2_m_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { if(sprcros2_m_port7&0x01) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } else { if(sprcros2_m_port7&0x08) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } } static INTERRUPT_GEN( sprcros2_s_interrupt ) { if(sprcros2_s_port3&0x01) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_START( sprcros2 ) diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index 245404ade01..494f8e08648 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -80,7 +80,7 @@ static INTERRUPT_GEN( sprint2 ) for (i = 0; i < 2; i++) { - signed char delta = input_port_read(machine, i ? "DIAL_P2" : "DIAL_P1") - dial[i]; + signed char delta = input_port_read(device->machine, i ? "DIAL_P2" : "DIAL_P1") - dial[i]; if (delta < 0) { @@ -93,7 +93,7 @@ static INTERRUPT_GEN( sprint2 ) dial[i] += delta; - switch (input_port_read(machine, i ? "GEAR_P2" : "GEAR_P1") & 15) + switch (input_port_read(device->machine, i ? "GEAR_P2" : "GEAR_P1") & 15) { case 1: gear[i] = 1; break; case 2: gear[i] = 2; break; @@ -103,16 +103,16 @@ static INTERRUPT_GEN( sprint2 ) } } - discrete_sound_w(machine, SPRINT2_MOTORSND1_DATA, sprint2_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA - discrete_sound_w(machine, SPRINT2_MOTORSND2_DATA, sprint2_video_ram[0x395] & 15); - discrete_sound_w(machine, SPRINT2_CRASHSND_DATA, sprint2_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA + discrete_sound_w(device->machine, SPRINT2_MOTORSND1_DATA, sprint2_video_ram[0x394] & 15); // also DOMINOS_FREQ_DATA + discrete_sound_w(device->machine, SPRINT2_MOTORSND2_DATA, sprint2_video_ram[0x395] & 15); + discrete_sound_w(device->machine, SPRINT2_CRASHSND_DATA, sprint2_video_ram[0x396] & 15); // also DOMINOS_AMP_DATA /* interrupts and watchdog are disabled during service mode */ - watchdog_enable(machine, !service_mode(machine)); + watchdog_enable(device->machine, !service_mode(device->machine)); - if (!service_mode(machine)) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (!service_mode(device->machine)) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index 8e32af7fabc..0035c370801 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -118,7 +118,7 @@ static TIMER_CALLBACK( nmi_callback ) watchdog_enable(machine, input_port_read(machine, "IN0") & 0x40); if (input_port_read(machine, "IN0") & 0x40) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); timer_set(video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, nmi_callback); } diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c index 8a21856eed7..0e1224da2b4 100644 --- a/src/mame/drivers/sprint8.c +++ b/src/mame/drivers/sprint8.c @@ -18,7 +18,7 @@ void sprint8_set_collision(running_machine *machine, int n) { if (collision_reset == 0) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); collision_index = n; } @@ -98,7 +98,7 @@ static WRITE8_HANDLER( sprint8_int_reset_w ) collision_reset = !(data & 1); if (collision_reset) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c index 2fc92e7acf6..07e34e5f979 100644 --- a/src/mame/drivers/spy.c +++ b/src/mame/drivers/spy.c @@ -33,7 +33,7 @@ static UINT8 *pmcram; static INTERRUPT_GEN( spy_interrupt ) { if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } @@ -324,7 +324,7 @@ static WRITE8_HANDLER( spy_3f90_w ) } spy_collision(); //ZT - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); } old = data; @@ -333,7 +333,7 @@ static WRITE8_HANDLER( spy_3f90_w ) static WRITE8_HANDLER( spy_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( sound_bank_w ) @@ -521,7 +521,7 @@ static const k007232_interface k007232_interface_2 = static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, linestate); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c index 03eaf2b0563..d57a78fce75 100644 --- a/src/mame/drivers/srmp2.c +++ b/src/mame/drivers/srmp2.c @@ -94,10 +94,10 @@ static int srmp2_port_select; static INTERRUPT_GEN( srmp2_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 4, HOLD_LINE); break; /* vblank */ - default: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; /* sound */ + case 0: cpu_set_input_line(device, 4, HOLD_LINE); break; /* vblank */ + default: cpu_set_input_line(device, 2, HOLD_LINE); break; /* sound */ } } diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c index d055047c242..2560240c808 100644 --- a/src/mame/drivers/srmp5.c +++ b/src/mame/drivers/srmp5.c @@ -618,7 +618,7 @@ static const st0016_interface st0016_config = static INTERRUPT_GEN( irq4_gen ) { - cpunum_set_input_line(machine, 1, R3000_IRQ4, ASSERT_LINE); + cpu_set_input_line(device, R3000_IRQ4, ASSERT_LINE); } static const r3000_cpu_core config = diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c index d7c4e1ed712..b3e546fa112 100644 --- a/src/mame/drivers/srmp6.c +++ b/src/mame/drivers/srmp6.c @@ -670,10 +670,10 @@ INPUT_PORTS_END static INTERRUPT_GEN(srmp6_interrupt) { - if(!cpu_getiloops()) - cpunum_set_input_line(machine, 0,3,HOLD_LINE); + if(!cpu_getiloops(device)) + cpu_set_input_line(device,3,HOLD_LINE); else - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(device,4,HOLD_LINE); } static MACHINE_DRIVER_START( srmp6 ) diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c index bb14b3ffd1b..bc13b3a1ad5 100644 --- a/src/mame/drivers/srumbler.c +++ b/src/mame/drivers/srumbler.c @@ -58,10 +58,10 @@ static MACHINE_RESET( srumbler ) static INTERRUPT_GEN( srumbler_interrupt ) { - if (cpu_getiloops()==0) - cpunum_set_input_line(machine, 0,0,HOLD_LINE); + if (cpu_getiloops(device)==0) + cpu_set_input_line(device,0,HOLD_LINE); else - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(device,M6809_FIRQ_LINE,HOLD_LINE); } diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c index f955340d3ca..e0f7ff2bc72 100644 --- a/src/mame/drivers/ssfindo.c +++ b/src/mame/drivers/ssfindo.c @@ -258,7 +258,7 @@ static TIMER_CALLBACK( PS7500_Timer0_callback ) PS7500_IO[IRQSTA]|=0x20; if(PS7500_IO[IRQMSKA]&0x20) { - cpunum_set_input_line(machine, 0, ARM7_IRQ_LINE, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], ARM7_IRQ_LINE, PULSE_LINE); } } @@ -277,7 +277,7 @@ static TIMER_CALLBACK( PS7500_Timer1_callback ) PS7500_IO[IRQSTA]|=0x40; if(PS7500_IO[IRQMSKA]&0x40) { - cpunum_set_input_line(machine, 0, ARM7_IRQ_LINE, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], ARM7_IRQ_LINE, PULSE_LINE); } } @@ -295,7 +295,7 @@ static INTERRUPT_GEN( ssfindo_interrupt ) PS7500_IO[IRQSTA]|=0x08; if(PS7500_IO[IRQMSKA]&0x08) { - cpunum_set_input_line(machine, 0, ARM7_IRQ_LINE, PULSE_LINE); + cpu_set_input_line(device, ARM7_IRQ_LINE, PULSE_LINE); } } diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c index cc6d91998b3..8180e4cca5a 100644 --- a/src/mame/drivers/sshangha.c +++ b/src/mame/drivers/sshangha.c @@ -82,14 +82,14 @@ static WRITE16_HANDLER( sshangha_protection16_w ) if (offset == (0x260 >> 1)) { //soundlatch_w(0,data&0xff); - //cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + //cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } static WRITE16_HANDLER( sshangha_sound_w ) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } /* Protection/IO chip 146 */ @@ -323,7 +323,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,0,state); + cpu_set_input_line(machine->cpu[1],0,state); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c index 7aab43f268a..12559c2631e 100644 --- a/src/mame/drivers/sslam.c +++ b/src/mame/drivers/sslam.c @@ -395,7 +395,7 @@ static WRITE16_HANDLER( sslam_snd_w ) static WRITE16_HANDLER( powerbls_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,MCS51_INT1_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],MCS51_INT1_LINE,HOLD_LINE); } /* Memory Maps */ diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c index a456737dea2..4ba88f7c9cd 100644 --- a/src/mame/drivers/ssozumo.c +++ b/src/mame/drivers/ssozumo.c @@ -34,25 +34,25 @@ static INTERRUPT_GEN( ssozumo_interrupt ) { static int coin; - if ((input_port_read(machine, "P1") & 0xc0) != 0xc0) + if ((input_port_read(device->machine, "P1") & 0xc0) != 0xc0) { if (coin == 0) { coin = 1; - nmi_line_pulse(machine, cpunum); + nmi_line_pulse(device); return; } } else coin = 0; - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } static WRITE8_HANDLER( ssozumo_sh_command_w ) { soundlatch_w(machine, offset, data); - cpunum_set_input_line(machine, 1, M6502_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6502_IRQ_LINE, HOLD_LINE); } diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c index 02932087b96..64dd7e6b52c 100644 --- a/src/mame/drivers/sspeedr.c +++ b/src/mame/drivers/sspeedr.c @@ -36,7 +36,7 @@ static PALETTE_INIT( sspeedr ) static WRITE8_HANDLER( sspeedr_int_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c index d0fe1e4a5bc..e63b60e4771 100644 --- a/src/mame/drivers/ssv.c +++ b/src/mame/drivers/ssv.c @@ -201,7 +201,7 @@ static UINT16 *ssv_mainram; /* Update the IRQ state based on all possible causes */ static void update_irq_state(running_machine *machine) { - cpunum_set_input_line(machine, 0, 0, (requested_int & irq_enable)? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, (requested_int & irq_enable)? ASSERT_LINE : CLEAR_LINE); } static IRQ_CALLBACK(ssv_irq_callback) @@ -253,32 +253,32 @@ static int interrupt_ultrax; static INTERRUPT_GEN( ssv_interrupt ) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { if(interrupt_ultrax) { requested_int |= 1 << 1; // needed by ultrax to coin up, breaks cairblad - update_irq_state(machine); + update_irq_state(device->machine); } } else { requested_int |= 1 << 3; // vblank - update_irq_state(machine); + update_irq_state(device->machine); } } static INTERRUPT_GEN( gdfs_interrupt ) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { requested_int |= 1 << 6; // reads lightgun (4 times for 4 axis) - update_irq_state(machine); + update_irq_state(device->machine); } else { requested_int |= 1 << 3; // vblank - update_irq_state(machine); + update_irq_state(device->machine); } } @@ -337,7 +337,7 @@ static WRITE16_HANDLER( ssv_lockout_inv_w ) static MACHINE_RESET( ssv ) { requested_int = 0; - cpunum_set_irq_callback(0, ssv_irq_callback); + cpu_set_irq_callback(machine->cpu[0], ssv_irq_callback); memory_set_bankptr(1, memory_region(machine, "user1")); } diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c index 55cf89a5a85..9299c0ad6b7 100644 --- a/src/mame/drivers/st0016.c +++ b/src/mame/drivers/st0016.c @@ -397,11 +397,11 @@ GFXDECODE_END static INTERRUPT_GEN(st0016_int) { - if(!cpu_getiloops()) - cpunum_set_input_line(machine, 0,0,HOLD_LINE); + if(!cpu_getiloops(device)) + cpu_set_input_line(device,0,HOLD_LINE); else - if(cpu_get_reg(machine->activecpu, Z80_IFF1)) /* dirty hack ... */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE ); + if(cpu_get_reg(device, Z80_IFF1)) /* dirty hack ... */ + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE ); } extern UINT8 *st0016_charram; diff --git a/src/mame/drivers/stactics.c b/src/mame/drivers/stactics.c index c4a3ababb09..d40feaed30d 100644 --- a/src/mame/drivers/stactics.c +++ b/src/mame/drivers/stactics.c @@ -155,11 +155,11 @@ static WRITE8_HANDLER( stactics_coin_lockout_w ) static INTERRUPT_GEN( stactics_interrupt ) { - stactics_state *state = machine->driver_data; + stactics_state *state = device->machine->driver_data; - move_motor(machine, state); + move_motor(device->machine, state); - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c index 3c4777ab5bc..93f9e0f72a3 100644 --- a/src/mame/drivers/stadhero.c +++ b/src/mame/drivers/stadhero.c @@ -52,7 +52,7 @@ static WRITE16_HANDLER( stadhero_control_w ) break; case 6: /* 6502 sound cpu */ soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); break; default: logerror("CPU #0 PC %06x: warning - write %02x to unmapped memory address %06x\n",cpu_get_pc(machine->activecpu),data,0x30c010+offset); @@ -232,7 +232,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c index 93b1fb91356..dc820128ded 100644 --- a/src/mame/drivers/starshp1.c +++ b/src/mame/drivers/starshp1.c @@ -17,8 +17,8 @@ static int starshp1_analog_in_select; static INTERRUPT_GEN( starshp1_interrupt ) { - if ((input_port_read(machine, "SYSTEM") & 0x90) != 0x90) - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + if ((input_port_read(device->machine, "SYSTEM") & 0x90) != 0x90) + cpu_set_input_line(device, 0, PULSE_LINE); } diff --git a/src/mame/drivers/starwars.c b/src/mame/drivers/starwars.c index dcd77b731df..4feb3ed3af3 100644 --- a/src/mame/drivers/starwars.c +++ b/src/mame/drivers/starwars.c @@ -79,7 +79,7 @@ static MACHINE_RESET( starwars ) static WRITE8_HANDLER( irq_ack_w ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, CLEAR_LINE); } diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index 81fd0bbbb62..b554b3ed289 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -598,7 +598,7 @@ GFXDECODE_END static INTERRUPT_GEN( statriv2_interrupt ) { - cpunum_set_input_line(machine, 0, I8085_RST75_LINE, HOLD_LINE); + cpu_set_input_line(device, I8085_RST75_LINE, HOLD_LINE); } static MACHINE_DRIVER_START( statriv2 ) diff --git a/src/mame/drivers/steaser.c b/src/mame/drivers/steaser.c index f961a0f90c3..f22b5a4fdd3 100644 --- a/src/mame/drivers/steaser.c +++ b/src/mame/drivers/steaser.c @@ -224,8 +224,8 @@ INPUT_PORTS_END static INTERRUPT_GEN( steaser_irq ) { - int num=cpu_getiloops()+3; - cpunum_set_input_line(machine, 0, num, HOLD_LINE); + int num=cpu_getiloops(device)+3; + cpu_set_input_line(device, num, HOLD_LINE); } static MACHINE_DRIVER_START( steaser ) diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c index c2bd276b24f..7ee00388db4 100644 --- a/src/mame/drivers/strnskil.c +++ b/src/mame/drivers/strnskil.c @@ -35,7 +35,7 @@ static READ8_HANDLER( strnskil_d800_r ) { /* bit0: interrupt type?, bit1: CPU2 busack? */ - if (cpu_getiloops() == 0) + if (cpu_getiloops(machine->activecpu) == 0) return 0; return 1; } diff --git a/src/mame/drivers/stv.c b/src/mame/drivers/stv.c index a51aeda5101..8b57a98bf1b 100644 --- a/src/mame/drivers/stv.c +++ b/src/mame/drivers/stv.c @@ -95,7 +95,7 @@ ToDo / Notes: -Add the RS232c interface (serial port),needed by fhboxers. -(PCB owners) check if the clocks documented in the manuals are really right for ST-V. -SCSP to master irq: see if there is a sound cpu mask bit. --Does the cpunum_set_clock really works?Investigate. +-Does the cpu_set_clock really works?Investigate. -We need to check every game if can be completed or there are any hanging/crash/protection issues on them. -Memo: Some tests done on the original & working PCB,to be implemented: @@ -234,7 +234,7 @@ static int scanline; /*A-Bus IRQ checks,where they could be located these?*/ #define ABUSIRQ(_irq_,_vector_,_mask_) \ - if(!(stv_scu[40] & _mask_)) { cpunum_set_input_line_and_vector(machine, 0, _irq_, HOLD_LINE , _vector_); } + if(!(stv_scu[40] & _mask_)) { cpu_set_input_line_and_vector(machine->cpu[0], _irq_, HOLD_LINE , _vector_); } #if 0 if(stv_scu[42] & 1)//IRQ ACK { @@ -503,13 +503,13 @@ static void stv_SMPC_w8 (running_machine *machine, int offset, UINT8 data) if(!(smpc_ram[0x77] & 0x10)) { if(LOG_SMPC) logerror("SMPC: M68k on\n"); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); en_68k = 1; } else { if(LOG_SMPC) logerror("SMPC: M68k off\n"); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); en_68k = 0; } //if(LOG_SMPC) logerror("SMPC: ram [0x77] = %02x\n",smpc_ram[0x77]); @@ -538,7 +538,7 @@ static void stv_SMPC_w8 (running_machine *machine, int offset, UINT8 data) if(!(stv_scu[40] & 0x0100)) /*Pad irq*/ { if(LOG_SMPC) logerror ("Interrupt: PAD irq at scanline %04x, Vector 0x48 Level 0x08\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 8, HOLD_LINE , 0x48); + cpu_set_input_line_and_vector(machine->cpu[0], 8, HOLD_LINE , 0x48); } } @@ -556,21 +556,21 @@ static void stv_SMPC_w8 (running_machine *machine, int offset, UINT8 data) smpc_ram[0x5f]=0x02; #if USE_SLAVE stv_enable_slave_sh2 = 1; - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); #endif break; case 0x03: if(LOG_SMPC) logerror ("SMPC: Slave OFF\n"); smpc_ram[0x5f]=0x03; stv_enable_slave_sh2 = 0; - cpu_trigger(machine, 1000); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpuexec_trigger(machine, 1000); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); break; case 0x06: if(LOG_SMPC) logerror ("SMPC: Sound ON\n"); /* wrong? */ smpc_ram[0x5f]=0x06; - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); break; case 0x07: if(LOG_SMPC) logerror ("SMPC: Sound OFF\n"); @@ -582,24 +582,24 @@ static void stv_SMPC_w8 (running_machine *machine, int offset, UINT8 data) case 0x0d: if(LOG_SMPC) logerror ("SMPC: System Reset\n"); smpc_ram[0x5f]=0x0d; - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); system_reset(); break; case 0x0e: if(LOG_SMPC) logerror ("SMPC: Change Clock to 352\n"); smpc_ram[0x5f]=0x0e; - cpunum_set_clock(machine, 0, MASTER_CLOCK_352/2); - cpunum_set_clock(machine, 1, MASTER_CLOCK_352/2); - cpunum_set_clock(machine, 2, MASTER_CLOCK_352/5); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); // ff said this causes nmi, should we set a timer then nmi? + cpu_set_clock(machine->cpu[0], MASTER_CLOCK_352/2); + cpu_set_clock(machine->cpu[1], MASTER_CLOCK_352/2); + cpu_set_clock(machine->cpu[2], MASTER_CLOCK_352/5); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); // ff said this causes nmi, should we set a timer then nmi? break; case 0x0f: if(LOG_SMPC) logerror ("SMPC: Change Clock to 320\n"); smpc_ram[0x5f]=0x0f; - cpunum_set_clock(machine, 0, MASTER_CLOCK_320/2); - cpunum_set_clock(machine, 1, MASTER_CLOCK_320/2); - cpunum_set_clock(machine, 2, MASTER_CLOCK_320/5); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); // ff said this causes nmi, should we set a timer then nmi? + cpu_set_clock(machine->cpu[0], MASTER_CLOCK_320/2); + cpu_set_clock(machine->cpu[1], MASTER_CLOCK_320/2); + cpu_set_clock(machine->cpu[2], MASTER_CLOCK_320/5); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); // ff said this causes nmi, should we set a timer then nmi? break; /*"Interrupt Back"*/ case 0x10: @@ -645,7 +645,7 @@ static void stv_SMPC_w8 (running_machine *machine, int offset, UINT8 data) // if(!(stv_scu[40] & 0x0080)) /*System Manager(SMPC) irq*/ /* we can't check this .. breaks controls .. probably issues elsewhere? */ { if(LOG_SMPC) logerror ("Interrupt: System Manager (SMPC) at scanline %04x, Vector 0x47 Level 0x08\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 8, HOLD_LINE , 0x47); + cpu_set_input_line_and_vector(machine->cpu[0], 8, HOLD_LINE , 0x47); } break; /* RTC write*/ @@ -669,7 +669,7 @@ static void stv_SMPC_w8 (running_machine *machine, int offset, UINT8 data) if(LOG_SMPC) logerror ("SMPC: NMI request\n"); smpc_ram[0x5f]=0x18; /*NMI is unconditionally requested?*/ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); break; case 0x19: if(LOG_SMPC) logerror ("SMPC: NMI Enable\n"); @@ -754,7 +754,7 @@ SCU register[40] is for IRQ masking. static INTERRUPT_GEN( stv_interrupt ) { - scanline = 261-cpu_getiloops(); + scanline = 261-cpu_getiloops(device); stv_hblank = 0; @@ -763,7 +763,7 @@ static INTERRUPT_GEN( stv_interrupt ) if(!(stv_scu[40] & 2))/*VBLANK-OUT*/ { if(LOG_IRQ) logerror ("Interrupt: VBlank-OUT at scanline %04x, Vector 0x41 Level 0x0e\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xe, HOLD_LINE , 0x41); + cpu_set_input_line_and_vector(device, 0xe, HOLD_LINE , 0x41); } stv_vblank = 0; } @@ -779,14 +779,14 @@ static INTERRUPT_GEN( stv_interrupt ) if((!(stv_scu[40] & 0x10)) && (!(stv_scu[38] & 0x80))) { if(LOG_IRQ) logerror ("Interrupt: Timer 1 at scanline %04x, Vector 0x44 Level 0x0b\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xb, HOLD_LINE, 0x44 ); + cpu_set_input_line_and_vector(device, 0xb, HOLD_LINE, 0x44 ); } else if((!(stv_scu[40] & 0x10)) && (stv_scu[38] & 0x80)) { if(timer_1 == (stv_scu[36] & 0x1ff)) { if(LOG_IRQ) logerror ("Interrupt: Timer 1 at scanline %04x, Vector 0x44 Level 0x0b\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xb, HOLD_LINE, 0x44 ); + cpu_set_input_line_and_vector(device, 0xb, HOLD_LINE, 0x44 ); } } } @@ -795,7 +795,7 @@ static INTERRUPT_GEN( stv_interrupt ) if(!(stv_scu[40] & 8))/*Timer 0*/ { if(LOG_IRQ) logerror ("Interrupt: Timer 0 at scanline %04x, Vector 0x43 Level 0x0c\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xc, HOLD_LINE, 0x43 ); + cpu_set_input_line_and_vector(device, 0xc, HOLD_LINE, 0x43 ); } } @@ -803,7 +803,7 @@ static INTERRUPT_GEN( stv_interrupt ) if(!(stv_scu[40] & 4))/*HBLANK-IN*/ { if(LOG_IRQ) logerror ("Interrupt: HBlank-In at scanline %04x, Vector 0x42 Level 0x0d\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xd, HOLD_LINE , 0x42); + cpu_set_input_line_and_vector(device, 0xd, HOLD_LINE , 0x42); } } else if(scanline == 224) @@ -814,7 +814,7 @@ static INTERRUPT_GEN( stv_interrupt ) if(!(stv_scu[40] & 1))/*VBLANK-IN*/ { if(LOG_IRQ) logerror ("Interrupt: VBlank IN at scanline %04x, Vector 0x40 Level 0x0f\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xf, HOLD_LINE , 0x40); + cpu_set_input_line_and_vector(device, 0xf, HOLD_LINE , 0x40); } stv_vblank = 1; @@ -823,11 +823,11 @@ static INTERRUPT_GEN( stv_interrupt ) if(!(stv_scu[40] & 8))/*Timer 0*/ { if(LOG_IRQ) logerror ("Interrupt: Timer 0 at scanline %04x, Vector 0x43 Level 0x0c\n",scanline); - cpunum_set_input_line_and_vector(machine, 0, 0xc, HOLD_LINE, 0x43 ); + cpu_set_input_line_and_vector(device, 0xc, HOLD_LINE, 0x43 ); } } if(!(stv_scu[40] & 0x2000)) /*Sprite draw end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 2, HOLD_LINE , 0x4d); + cpu_set_input_line_and_vector(device, 2, HOLD_LINE , 0x4d); } } @@ -1236,14 +1236,14 @@ static WRITE32_HANDLER( stv_scu_w32 ) /*Sound IRQ*/ if(/*(!(stv_scu[40] & 0x40)) &&*/ scsp_to_main_irq == 1) { - //cpunum_set_input_line_and_vector(machine, 0, 9, HOLD_LINE , 0x46); + //cpu_set_input_line_and_vector(machine->cpu[0], 9, HOLD_LINE , 0x46); logerror("SCSP: Main CPU interrupt\n"); #if 0 if((scu_dst_0 & 0x7ffffff) != 0x05a00000) { if(!(stv_scu[40] & 0x1000)) { - cpunum_set_input_line_and_vector(machine, 0, 3, HOLD_LINE, 0x4c); + cpu_set_input_line_and_vector(machine->cpu[0], 3, HOLD_LINE, 0x4c); logerror("SCU: Illegal DMA interrupt\n"); } } @@ -1297,7 +1297,7 @@ static WRITE32_HANDLER( stv_scu_w32 ) /*Sound IRQ*/ if(/*(!(stv_scu[40] & 0x40)) &&*/ scsp_to_main_irq == 1) { - //cpunum_set_input_line_and_vector(machine, 0, 9, HOLD_LINE , 0x46); + //cpu_set_input_line_and_vector(machine->cpu[0], 9, HOLD_LINE , 0x46); logerror("SCSP: Main CPU interrupt\n"); } } @@ -1347,7 +1347,7 @@ static WRITE32_HANDLER( stv_scu_w32 ) /*Sound IRQ*/ if(/*(!(stv_scu[40] & 0x40)) &&*/ scsp_to_main_irq == 1) { - //cpunum_set_input_line_and_vector(machine, 0, 9, HOLD_LINE , 0x46); + //cpu_set_input_line_and_vector(machine->cpu[0], 9, HOLD_LINE , 0x46); logerror("SCSP: Main CPU interrupt\n"); } } @@ -1526,7 +1526,7 @@ static void dma_direct_lv0(running_machine *machine) if(LOG_SCU) logerror("DMA transfer END\n"); if(!(stv_scu[40] & 0x800))/*Lv 0 DMA end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 5, HOLD_LINE , 0x4b); + cpu_set_input_line_and_vector(machine->cpu[0], 5, HOLD_LINE , 0x4b); if(scu_add_tmp & 0x80000000) { @@ -1629,7 +1629,7 @@ static void dma_direct_lv1(running_machine *machine) if(LOG_SCU) logerror("DMA transfer END\n"); if(!(stv_scu[40] & 0x400))/*Lv 1 DMA end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 6, HOLD_LINE , 0x4a); + cpu_set_input_line_and_vector(machine->cpu[0], 6, HOLD_LINE , 0x4a); if(scu_add_tmp & 0x80000000) { @@ -1732,7 +1732,7 @@ static void dma_direct_lv2(running_machine *machine) if(LOG_SCU) logerror("DMA transfer END\n"); if(!(stv_scu[40] & 0x200))/*Lv 2 DMA end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 6, HOLD_LINE , 0x49); + cpu_set_input_line_and_vector(machine->cpu[0], 6, HOLD_LINE , 0x49); if(scu_add_tmp & 0x80000000) { @@ -1810,7 +1810,7 @@ static void dma_indirect_lv0(running_machine *machine) }while(job_done == 0); if(!(stv_scu[40] & 0x800))/*Lv 0 DMA end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 5, HOLD_LINE , 0x4b); + cpu_set_input_line_and_vector(machine->cpu[0], 5, HOLD_LINE , 0x4b); D0MV_0; } @@ -1882,7 +1882,7 @@ static void dma_indirect_lv1(running_machine *machine) }while(job_done == 0); if(!(stv_scu[40] & 0x400))/*Lv 1 DMA end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 6, HOLD_LINE , 0x4a); + cpu_set_input_line_and_vector(machine->cpu[0], 6, HOLD_LINE , 0x4a); D1MV_0; } @@ -1953,7 +1953,7 @@ static void dma_indirect_lv2(running_machine *machine) }while(job_done == 0); if(!(stv_scu[40] & 0x200))/*Lv 2 DMA end irq*/ - cpunum_set_input_line_and_vector(machine, 0, 6, HOLD_LINE , 0x49); + cpu_set_input_line_and_vector(machine->cpu[0], 6, HOLD_LINE , 0x49); D2MV_0; } @@ -1992,15 +1992,15 @@ static WRITE32_HANDLER( stv_scsp_regs_w32 ) static WRITE32_HANDLER( minit_w ) { logerror("cpu #%d (PC=%08X) MINIT write = %08x\n",cpunum_get_active(), cpu_get_pc(machine->activecpu),data); - cpu_boost_interleave(machine, minit_boost_timeslice, ATTOTIME_IN_USEC(minit_boost)); - cpu_trigger(machine, 1000); + cpuexec_boost_interleave(machine, minit_boost_timeslice, ATTOTIME_IN_USEC(minit_boost)); + cpuexec_trigger(machine, 1000); cpu_set_info_int(machine->cpu[1], CPUINFO_INT_SH2_FRT_INPUT, PULSE_LINE); } static WRITE32_HANDLER( sinit_w ) { logerror("cpu #%d (PC=%08X) SINIT write = %08x\n",cpunum_get_active(), cpu_get_pc(machine->activecpu),data); - cpu_boost_interleave(machine, sinit_boost_timeslice, ATTOTIME_IN_USEC(sinit_boost)); + cpuexec_boost_interleave(machine, sinit_boost_timeslice, ATTOTIME_IN_USEC(sinit_boost)); cpu_set_info_int(machine->cpu[0], CPUINFO_INT_SH2_FRT_INPUT, PULSE_LINE); } @@ -2509,15 +2509,15 @@ static void scsp_irq(running_machine *machine, int irq) if (irq > 0) { scsp_last_line = irq; - cpunum_set_input_line(machine, 2, irq, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], irq, ASSERT_LINE); } else if (irq < 0) { - cpunum_set_input_line(machine, 2, -irq, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], -irq, CLEAR_LINE); } else { - cpunum_set_input_line(machine, 2, scsp_last_line, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], scsp_last_line, CLEAR_LINE); } } @@ -2561,9 +2561,9 @@ static MACHINE_START( stv ) static MACHINE_RESET( stv ) { // don't let the slave cpu and the 68k go anywhere - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); stv_enable_slave_sh2 = 0; - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); timer_0 = 0; timer_1 = 0; @@ -2574,9 +2574,9 @@ static MACHINE_RESET( stv ) port_sel = mux_data = 0; port_i = -1; - cpunum_set_clock(machine, 0, MASTER_CLOCK_320/2); - cpunum_set_clock(machine, 1, MASTER_CLOCK_320/2); - cpunum_set_clock(machine, 2, MASTER_CLOCK_320/5); + cpu_set_clock(machine->cpu[0], MASTER_CLOCK_320/2); + cpu_set_clock(machine->cpu[1], MASTER_CLOCK_320/2); + cpu_set_clock(machine->cpu[2], MASTER_CLOCK_320/5); stvcd_reset(machine); } diff --git a/src/mame/drivers/stvinit.c b/src/mame/drivers/stvinit.c index dd320d17dea..cbd1f7b4a95 100644 --- a/src/mame/drivers/stvinit.c +++ b/src/mame/drivers/stvinit.c @@ -120,17 +120,17 @@ NVRAM_HANDLER( stv ) static READ32_HANDLER( stv_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x60154b2) cpu_spinuntil_int(); // bios menus.. - cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x60154b2) cpu_spinuntil_int(machine->activecpu); // bios menus.. + cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x0335d0/4]; } static READ32_HANDLER( stv_speedup2_r ) { - if (cpu_get_pc(machine->activecpu)==0x6013aee) cpu_spinuntil_int(); // for use in japan + if (cpu_get_pc(machine->activecpu)==0x6013aee) cpu_spinuntil_int(machine->activecpu); // for use in japan - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x0335bc/4]; } @@ -156,7 +156,7 @@ void install_stvbios_speedups(running_machine *machine) static READ32_HANDLER( shienryu_slave_speedup_r ) { if (cpu_get_pc(machine->activecpu)==0x0600440e) - cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); // is this safe... we can't skip till vbl because its not a vbl wait loop + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); // is this safe... we can't skip till vbl because its not a vbl wait loop return stv_workram_h[0x0ae8e4/4]; } @@ -164,7 +164,7 @@ static READ32_HANDLER( shienryu_slave_speedup_r ) static READ32_HANDLER( shienryu_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x060041C6) cpu_spinuntil_int(); // after you enable the sound cpu ... + if (cpu_get_pc(machine->activecpu)==0x060041C6) cpu_spinuntil_int(machine->activecpu); // after you enable the sound cpu ... return stv_workram_h[0x0ae8e0/4]; } @@ -189,7 +189,7 @@ DRIVER_INIT(shienryu) static READ32_HANDLER( prikura_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x6018640) cpu_spinuntil_int(); // after you enable the sound cpu ... + if (cpu_get_pc(machine->activecpu)==0x6018640) cpu_spinuntil_int(machine->activecpu); // after you enable the sound cpu ... return stv_workram_h[0x0b9228/4]; } @@ -197,7 +197,7 @@ static void prikura_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x06018c6e ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(prikura) @@ -229,7 +229,7 @@ DRIVER_INIT(prikura) static READ32_HANDLER( hanagumi_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x06010160) cpu_spinuntil_int(); // title logos + if (cpu_get_pc(machine->activecpu)==0x06010160) cpu_spinuntil_int(machine->activecpu); // title logos return stv_workram_h[0x94188/4]; } @@ -237,7 +237,7 @@ static READ32_HANDLER( hanagumi_speedup_r ) static READ32_HANDLER( hanagumi_slave_off ) { /* just turn the slave off, i don't think the game needs it */ - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); return stv_workram_h[0x015438/4]; } @@ -291,7 +291,7 @@ CPU0: Aids Screen static READ32_HANDLER( puyosun_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x6021CF0) cpu_spinuntil_time(ATTOTIME_IN_USEC(400)); // spinuntilint breaks controls again .. urgh + if (cpu_get_pc(machine->activecpu)==0x6021CF0) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(400)); // spinuntilint breaks controls again .. urgh return stv_workram_h[0x0ffc10/4]; @@ -301,7 +301,7 @@ static void puyosun_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x60236fe ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(puyosun) @@ -333,7 +333,7 @@ CPU0 Data East Logo: static READ32_HANDLER( mausuke_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x060461A0) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); // spinuntilint breaks controls again .. urgh + if (cpu_get_pc(machine->activecpu)==0x060461A0) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); // spinuntilint breaks controls again .. urgh return stv_workram_h[0x0ffc10/4]; } @@ -354,7 +354,7 @@ DRIVER_INIT(mausuke) #if 0 static READ32_HANDLER( cottonbm_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x06030EE2) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); // spinuntilint breaks lots of things + if (cpu_get_pc(machine->activecpu)==0x06030EE2) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); // spinuntilint breaks lots of things return stv_workram_h[0x0ffc10/4]; } @@ -373,7 +373,7 @@ static void cottonbm_slave_speedup( UINT32 data ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } } @@ -396,7 +396,7 @@ DRIVER_INIT(cottonbm) static READ32_HANDLER( cotton2_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x06031c7a) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); // spinuntilint breaks lots of things + if (cpu_get_pc(machine->activecpu)==0x06031c7a) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); // spinuntilint breaks lots of things return stv_workram_h[0x0ffc10/4]; } @@ -415,7 +415,7 @@ static void cotton2_slave_speedup( UINT32 data ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } } @@ -439,7 +439,7 @@ static int dnmtdeka_pending_commands; static READ32_HANDLER( dnmtdeka_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x6027c90) cpu_spinuntil_int();//cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x6027c90) cpu_spinuntil_int(machine->activecpu);//cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0985a0/4]; } @@ -451,7 +451,7 @@ static WRITE32_HANDLER(dnmtdeka_cmd_write) if ( data != 0 ) dnmtdeka_pending_commands++; //logerror( "CMD: Written by cpu=%d, at = %08X, offset = %08X, data = %08X, commands = %d\n", cpunum_get_active(), cpu_get_pc(machine->activecpu), offset, data, dnmtdeka_pending_commands ); - cpu_trigger(machine, 1000); + cpuexec_trigger(machine, 1000); } static READ32_HANDLER(dnmtdeka_cmd_read) @@ -462,7 +462,7 @@ static READ32_HANDLER(dnmtdeka_cmd_read) if ( stv_workram_h[0x0e0ad4/4 + offset] == 0 ) { if ( dnmtdeka_pending_commands == 0 ) - cpu_spinuntil_trigger(1000); + cpu_spinuntil_trigger(machine->activecpu, 1000); } else { @@ -503,7 +503,7 @@ static int diehard_pending_commands; static READ32_HANDLER(diehard_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x06027c98 ) cpu_spinuntil_int(); + if ( cpu_get_pc(machine->activecpu) == 0x06027c98 ) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x000986ac/4]; } @@ -515,7 +515,7 @@ static WRITE32_HANDLER(diehard_cmd_write) if ( data != 0 ) diehard_pending_commands++; //logerror( "CMD: Written by cpu=%d, at = %08X, offset = %08X, data = %08X, commands = %d\n", cpunum_get_active(), cpu_get_pc(machine->activecpu), offset, data, diehard_pending_commands ); - cpu_trigger(machine, 1000); + cpuexec_trigger(machine, 1000); } static READ32_HANDLER(diehard_cmd_read) @@ -526,7 +526,7 @@ static READ32_HANDLER(diehard_cmd_read) if ( stv_workram_h[0xe0bd0/4 + offset] == 0 ) { if ( diehard_pending_commands == 0 ) - cpu_spinuntil_trigger(1000); + cpu_spinuntil_trigger(machine->activecpu, 1000); } } @@ -539,7 +539,7 @@ static READ32_HANDLER(diehard_cmd_ack_read) if ( (stv_workram_h[0x000e0dd8/4] & 0xff000000) == 0 && diehard_pending_commands == 0 ) { - cpu_trigger(machine, 1000); + cpuexec_trigger(machine, 1000); } return stv_workram_h[0x000e0dd8/4]; } @@ -558,7 +558,7 @@ static WRITE32_HANDLER(diehard_cmd_ack_write_cpu0) { //logerror( "CMDACK: Write by cpu=%d, at = %08X, offset = %08X, data = %08X, commands = %d\n", cpunum_get_active(), cpu_get_pc(machine->activecpu), offset, data, diehard_pending_commands ); COMBINE_DATA(&stv_workram_h[0x000e0dd8/4]); - cpu_trigger(machine, 1000); + cpuexec_trigger(machine, 1000); } DRIVER_INIT(diehard) @@ -594,14 +594,14 @@ DRIVER_INIT(diehard) static READ32_HANDLER( fhboxers_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x060041c2) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x060041c2) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x00420c/4]; } static READ32_HANDLER( fhboxers_speedup2_r ) { - if (cpu_get_pc(machine->activecpu)==0x0600bb0a) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x0600bb0a) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x090740/4]; @@ -610,7 +610,7 @@ static READ32_HANDLER( fhboxers_speedup2_r ) static READ32_HANDLER( fhboxers_speedup3_r ) { if (cpu_get_pc(machine->activecpu)==0x0600b31e ) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x90bb4/4]; } @@ -653,7 +653,7 @@ static READ32_HANDLER( groovef_speedup_r ) // logerror ("groove speedup \n"); if (cpu_get_pc(machine->activecpu)==0x060a4970) { - cpu_spinuntil_int(); // title logos + cpu_spinuntil_int(machine->activecpu); // title logos // logerror ("groove speedup skipping\n"); } @@ -664,7 +664,7 @@ static READ32_HANDLER( groovef_speedup_r ) #ifdef UNUSED_FUNCTION static READ32_HANDLER( groovef_second_cpu_off_r ) { - if (cpu_get_pc(machine->activecpu)==0x060060c2) cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + if (cpu_get_pc(machine->activecpu)==0x060060c2) cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); return 0; } #endif @@ -673,7 +673,7 @@ static void groovef_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x060060c2 ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT( groovef ) @@ -739,7 +739,7 @@ static READ32_HANDLER( danchih_hack_r ) static READ32_HANDLER( danchih_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x06028c8e) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x06028c8e) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -747,7 +747,7 @@ static void danchih_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x0602ae26 ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT( danchih ) @@ -802,7 +802,7 @@ static READ32_HANDLER( astrass_hack_r ) static READ32_HANDLER( astrass_speedup_r ) { if(cpu_get_pc(machine->activecpu) == 0x0605b9da ) - cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x8e4d8/4]; } @@ -827,13 +827,13 @@ DRIVER_INIT( astrass ) static READ32_HANDLER(thunt_speedup_r) { - if (cpu_get_pc(machine->activecpu) == 0x0602A024) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu) == 0x0602A024) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x00031424/4]; } static READ32_HANDLER(thunt_speedup2_r) { - if (cpu_get_pc(machine->activecpu) == 0x06013EEA) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu) == 0x06013EEA) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x00075958/4]; } @@ -841,7 +841,7 @@ static void thunt_slave_speedup(UINT32 data) { if (cpu_get_pc(Machine->activecpu) == 0x0602AAF8) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(thunt) @@ -889,13 +889,13 @@ DRIVER_INIT(thunt) static READ32_HANDLER(sandor_speedup_r) { - if (cpu_get_pc(machine->activecpu) == 0x0602a0f8) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu) == 0x0602a0f8) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x000314f8/4]; } static READ32_HANDLER(sandor_speedup2_r) { - if (cpu_get_pc(machine->activecpu) == 0x06013fbe) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu) == 0x06013fbe) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x00075a2c/4]; } @@ -904,7 +904,7 @@ static void sandor_slave_speedup(UINT32 data) { if (cpu_get_pc(Machine->activecpu) == 0x0602abcc) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(sandor) @@ -926,7 +926,7 @@ DRIVER_INIT(sandor) static READ32_HANDLER(grdforce_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x06041E32 ) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if ( cpu_get_pc(machine->activecpu) == 0x06041E32 ) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x000ffc10/4]; } @@ -944,8 +944,8 @@ static void grdforce_slave_speedup( UINT32 data ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - //cpu_spinuntil_time(ATTOTIME_IN_USEC(200)); - cpunum_spinuntil_trigger(1, 1000); + //cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(200)); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } } @@ -979,7 +979,7 @@ static READ32_HANDLER( batmanfr_speedup_r ) { //logerror( "batmanfr speedup: pc = %08x, mem = %08x\n", cpu_get_pc(machine->activecpu), stv_workram_h[0x0002acf0/4] ); if ( cpu_get_pc(machine->activecpu) != 0x060121c0 ) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x0002acf0/4]; } @@ -988,7 +988,7 @@ static void batmanfr_slave_speedup( UINT32 data ) { if (cpu_get_pc(Machine->activecpu) == 0x060125bc ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } @@ -1015,7 +1015,7 @@ static void colmns97_slave_speedup( UINT32 data ) if ( (stv_workram_h[0x0ffc48/4] != 0x260ef3fc) ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } @@ -1035,7 +1035,7 @@ DRIVER_INIT(colmns97) static READ32_HANDLER(winterht_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x06098aea ) cpu_spinuntil_time(ATTOTIME_IN_USEC(20));//cpu_spinuntil_int(); + if ( cpu_get_pc(machine->activecpu) == 0x06098aea ) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20));//cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x000ffc10/4]; } @@ -1043,7 +1043,7 @@ static void winterht_slave_speedup( UINT32 data ) { if (cpu_get_pc(Machine->activecpu) == 0x0609ae4e ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(winterht) @@ -1064,7 +1064,7 @@ DRIVER_INIT(winterht) static READ32_HANDLER(seabass_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x0602cbfa ) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if ( cpu_get_pc(machine->activecpu) == 0x0602cbfa ) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x000ffc10/4]; } @@ -1072,7 +1072,7 @@ static void seabass_slave_speedup( UINT32 data ) { if (cpu_get_pc(Machine->activecpu) == 0x060321ee ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } @@ -1096,12 +1096,12 @@ static void vfremix_slave_speedup( UINT32 data ) { if (cpu_get_pc(Machine->activecpu) == 0x0604C332 ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } static READ32_HANDLER(vfremix_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x0602c30c ) cpu_spinuntil_int(); + if ( cpu_get_pc(machine->activecpu) == 0x0602c30c ) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x00074f98/4]; } @@ -1123,7 +1123,7 @@ DRIVER_INIT(vfremix) static READ32_HANDLER(sss_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x06026398 ) cpu_spinuntil_int(); + if ( cpu_get_pc(machine->activecpu) == 0x06026398 ) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x000ffc10/4]; } @@ -1131,7 +1131,7 @@ static void sss_slave_speedup( UINT32 data ) { if (cpu_get_pc(Machine->activecpu) == 0x06028cd6 ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(sss) @@ -1152,7 +1152,7 @@ DRIVER_INIT(sss) static READ32_HANDLER(othellos_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x0602bcbe ) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if ( cpu_get_pc(machine->activecpu) == 0x0602bcbe ) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x000ffc10/4]; } @@ -1163,7 +1163,7 @@ static void othellos_slave_speedup( UINT32 data ) if ( (stv_workram_h[0x0ffc48/4] != 0x260fd25c ) ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } @@ -1187,7 +1187,7 @@ static void sasissu_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x060710be ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(sasissu) @@ -1204,7 +1204,7 @@ DRIVER_INIT(sasissu) static READ32_HANDLER(gaxeduel_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x06012ee4 ) cpu_spinuntil_int(); + if ( cpu_get_pc(machine->activecpu) == 0x06012ee4 ) cpu_spinuntil_int(machine->activecpu); return stv_workram_l[0x000f4068 / 4]; } @@ -1219,7 +1219,7 @@ DRIVER_INIT(gaxeduel) static READ32_HANDLER(suikoenb_speedup_r) { - if ( cpu_get_pc(machine->activecpu) == 0x06013f7a ) cpu_spinuntil_int(); + if ( cpu_get_pc(machine->activecpu) == 0x06013f7a ) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x000705d0 / 4]; } @@ -1242,7 +1242,7 @@ DRIVER_INIT(sokyugrt) static READ32_HANDLER( znpwfv_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x6012ec2) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x6012ec2) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -1259,7 +1259,7 @@ static void znpwfv_slave_speedup( UINT32 data ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } } @@ -1280,7 +1280,7 @@ DRIVER_INIT(znpwfv) static READ32_HANDLER( twcup98_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x605edde) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x605edde) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -1288,7 +1288,7 @@ static void twcup98_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x06062bca ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(twcup98) @@ -1309,7 +1309,7 @@ DRIVER_INIT(twcup98) static READ32_HANDLER( smleague_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x6063bf4) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x6063bf4) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -1317,7 +1317,7 @@ static void smleague_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x06062bca ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(smleague) @@ -1337,7 +1337,7 @@ DRIVER_INIT(smleague) static READ32_HANDLER( finlarch_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x6064d60) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x6064d60) cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x0ffc10/4]; } @@ -1355,7 +1355,7 @@ DRIVER_INIT(finlarch) static READ32_HANDLER( maruchan_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x06012a52) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x06012a52) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -1370,7 +1370,7 @@ static void maruchan_slave_speedup( UINT32 data ) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } @@ -1394,7 +1394,7 @@ static READ32_HANDLER( pblbeach_speedup_r ) { if (cpu_get_pc(machine->activecpu)==0x0605eb78) if (stv_workram_h[0x006c398/4] != 0) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x006c398/4]; } @@ -1411,7 +1411,7 @@ DRIVER_INIT(pblbeach) static READ32_HANDLER( shanhigw_speedup_r ) { if (cpu_get_pc(machine->activecpu)==0x06020c5c) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return stv_workram_h[0x95cd8/4]; } @@ -1427,7 +1427,7 @@ DRIVER_INIT(shanhigw) static READ32_HANDLER( elandore_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x0604eac0) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x0604eac0) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -1440,7 +1440,7 @@ static void elandore_slave_speedup(UINT32 data) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } @@ -1461,7 +1461,7 @@ DRIVER_INIT(elandore) static READ32_HANDLER( rsgun_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x06034d04) cpu_spinuntil_time(ATTOTIME_IN_USEC(20)); + if (cpu_get_pc(machine->activecpu)==0x06034d04) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(20)); return stv_workram_h[0x0ffc10/4]; } @@ -1473,7 +1473,7 @@ static void rsgun_slave_speedup(UINT32 data) { logerror("cpu1 skip %08x %08x\n",stv_workram_h[0x0ffc44/4],stv_workram_h[0x0ffc48/4]); - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } } @@ -1508,7 +1508,7 @@ DRIVER_INIT(decathlt) static READ32_HANDLER( nameclv3_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x601eb4c) cpu_spinuntil_time(ATTOTIME_IN_USEC(30)); + if (cpu_get_pc(machine->activecpu)==0x601eb4c) cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(30)); return stv_workram_h[0x0452c0/4]; } @@ -1516,7 +1516,7 @@ static void nameclv3_slave_speedup( UINT32 data ) { if ( cpu_get_pc(Machine->activecpu) == 0x0602B80e ) if ( (data & 0x00800000) == 0 ) - cpunum_spinuntil_trigger(1, 1000); + cpu_spinuntil_trigger(Machine->cpu[1], 1000); } DRIVER_INIT(nameclv3) diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c index 47d8eacd9c5..454e1209e24 100644 --- a/src/mame/drivers/suna16.c +++ b/src/mame/drivers/suna16.c @@ -827,10 +827,10 @@ GFXDECODE_END static INTERRUPT_GEN( bssoccer_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 1, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 2, HOLD_LINE); break; } } @@ -997,7 +997,7 @@ MACHINE_DRIVER_END static void bestbest_ym3526_irqhandler(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ0, state); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ0, state); } static const ym3526_interface bestbest_ym3526_interface = diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index a8b4b12b018..6407cd09dff 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -1446,7 +1446,7 @@ GFXDECODE_END static void soundirq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, 0, state); + cpu_set_input_line(machine->cpu[1], 0, state); } /* In games with only 2 CPUs, port A&B of the AY8910 are used @@ -1581,8 +1581,8 @@ static const ym3812_interface brickzn_ym3812_interface = static INTERRUPT_GEN( brickzn_interrupt ) { - if (cpu_getiloops()) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); - else cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if (cpu_getiloops(device)) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); + else cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_DRIVER_START( brickzn ) @@ -1648,11 +1648,11 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( hardhea2_interrupt ) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { - if (suna8_nmi_enable) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (suna8_nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } - else cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + else cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_RESET( hardhea2 ) @@ -1738,11 +1738,11 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( sparkman_interrupt ) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { - if (suna8_nmi_enable) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (suna8_nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } - else cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + else cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_DRIVER_START( sparkman ) diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c index 7bc9c2d0341..4c769ae5abf 100644 --- a/src/mame/drivers/supbtime.c +++ b/src/mame/drivers/supbtime.c @@ -53,7 +53,7 @@ static READ16_HANDLER( supbtime_controls_r ) static WRITE16_HANDLER( sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } /******************************************************************************/ @@ -354,7 +354,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c index 711baeb66b8..8d933058e9f 100644 --- a/src/mame/drivers/superchs.c +++ b/src/mame/drivers/superchs.c @@ -87,8 +87,8 @@ static WRITE32_HANDLER( cpua_ctrl_w ) if (ACCESSING_BITS_8_15) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data &0x200) ? CLEAR_LINE : ASSERT_LINE); - if (data&0x8000) cpunum_set_input_line(machine, 0,3,HOLD_LINE); /* Guess */ + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data &0x200) ? CLEAR_LINE : ASSERT_LINE); + if (data&0x8000) cpu_set_input_line(machine->cpu[0],3,HOLD_LINE); /* Guess */ } if (ACCESSING_BITS_0_7) @@ -220,7 +220,7 @@ static WRITE32_HANDLER( superchs_stick_w ) different byte in this long word before the RTE. I assume all but the last (top) byte cause an IRQ with the final one being an ACK. (Total guess but it works). */ if (mem_mask!=0xff000000) - cpunum_set_input_line(machine, 0,3,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],3,HOLD_LINE); } /*********************************************************** @@ -485,7 +485,7 @@ ROM_END static READ32_HANDLER( main_cycle_r ) { if (cpu_get_pc(machine->activecpu)==0x702) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return superchs_ram[0]; } @@ -493,7 +493,7 @@ static READ32_HANDLER( main_cycle_r ) static READ16_HANDLER( sub_cycle_r ) { if (cpu_get_pc(machine->activecpu)==0x454) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return superchs_ram[2]&0xffff; } diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c index 9ada3a09b1c..6e8c03cea70 100644 --- a/src/mame/drivers/superdq.c +++ b/src/mame/drivers/superdq.c @@ -118,7 +118,7 @@ static INTERRUPT_GEN( superdq_vblank ) toggles (680usec after the vblank). We could set up a timer to do that, but this works as well */ laserdisc_data_w(laserdisc, superdq_ld_out_latch); - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } static WRITE8_HANDLER( superdq_videoram_w ) @@ -133,7 +133,7 @@ static WRITE8_HANDLER( superdq_io_w ) static const UINT8 black_color_entries[] = {7,15,16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; if ( data & 0x40 ) /* bit 6 = irqack */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); coin_counter_w( 0, data & 0x08 ); coin_counter_w( 1, data & 0x04 ); diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c index 4babf6c621c..7b7a91fa329 100644 --- a/src/mame/drivers/superqix.c +++ b/src/mame/drivers/superqix.c @@ -292,7 +292,7 @@ static WRITE8_HANDLER( mcu_p3_w ) static READ8_HANDLER( nmi_ack_r ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); return 0; } @@ -346,8 +346,8 @@ static TIMER_CALLBACK( delayed_z80_mcu_w ) logerror("Z80 sends command %02x\n",param); from_z80 = param; from_mcu_pending = 0; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(200)); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(200)); } static TIMER_CALLBACK( delayed_mcu_z80_w ) @@ -966,15 +966,15 @@ static const ay8910_interface bootleg_ay8910_interface_2 = static INTERRUPT_GEN( sqix_interrupt ) { /* highly suspicious... */ - if (cpu_getiloops() <= 3) - nmi_line_assert(machine, cpunum); + if (cpu_getiloops(device) <= 3) + nmi_line_assert(device); } static INTERRUPT_GEN( bootleg_interrupt ) { /* highly suspicious... */ - if (cpu_getiloops() <= 3) - nmi_line_pulse(machine, cpunum); + if (cpu_getiloops(device) <= 3) + nmi_line_pulse(device); } diff --git a/src/mame/drivers/supertnk.c b/src/mame/drivers/supertnk.c index 4779a707488..a3f0e6a819c 100644 --- a/src/mame/drivers/supertnk.c +++ b/src/mame/drivers/supertnk.c @@ -152,13 +152,13 @@ static WRITE8_HANDLER( supertnk_bankswitch_1_w ) static INTERRUPT_GEN( supertnk_interrupt ) { /* On a TMS9980, a 6 on the interrupt bus means a level 4 interrupt */ - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, 6); + cpu_set_input_line_and_vector(device, 0, ASSERT_LINE, 6); } static WRITE8_HANDLER( supertnk_interrupt_ack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c index d882f258bf2..f4feb38488e 100644 --- a/src/mame/drivers/suprgolf.c +++ b/src/mame/drivers/suprgolf.c @@ -258,7 +258,7 @@ static WRITE8_HANDLER( suprgolf_writeB ) static void irqhandler(running_machine *machine, int irq) { -// cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); +// cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c index 0e83ceea695..624604b6d06 100644 --- a/src/mame/drivers/suprloco.c +++ b/src/mame/drivers/suprloco.c @@ -33,9 +33,9 @@ READ8_HANDLER( suprloco_control_r ); static WRITE8_HANDLER( suprloco_soundport_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); } static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c index 3584d3061d4..2b32bdc1d05 100644 --- a/src/mame/drivers/suprnova.c +++ b/src/mame/drivers/suprnova.c @@ -452,7 +452,7 @@ static READ32_HANDLER( skns_hit_r ) static TIMER_CALLBACK( interrupt_callback ) { - cpunum_set_input_line(machine, 0,param,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],param,HOLD_LINE); } static MACHINE_RESET(skns) @@ -468,7 +468,7 @@ static MACHINE_RESET(skns) static INTERRUPT_GEN(skns_interrupt) { UINT8 interrupt = 5; - switch(cpu_getiloops()) + switch(cpu_getiloops(device)) { case 0: interrupt = 5; // VBLANK @@ -477,7 +477,7 @@ static INTERRUPT_GEN(skns_interrupt) interrupt = 1; // SPC break; } - cpunum_set_input_line(machine, 0,interrupt,HOLD_LINE); + cpu_set_input_line(device,interrupt,HOLD_LINE); } /********************************************************************************** @@ -671,28 +671,28 @@ static WRITE32_HANDLER( skns_io_w ) if(ACCESSING_BITS_8_15) { /* Interrupt Clear, do we need these? */ /* if(data&0x01) - cpunum_set_input_line(machine, 0,1,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],1,CLEAR_LINE); if(data&0x02) - cpunum_set_input_line(machine, 0,3,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],3,CLEAR_LINE); if(data&0x04) - cpunum_set_input_line(machine, 0,5,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],5,CLEAR_LINE); if(data&0x08) - cpunum_set_input_line(machine, 0,7,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],7,CLEAR_LINE); if(data&0x10) - cpunum_set_input_line(machine, 0,9,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],9,CLEAR_LINE); if(data&0x20) - cpunum_set_input_line(machine, 0,0xb,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],0xb,CLEAR_LINE); if(data&0x40) - cpunum_set_input_line(machine, 0,0xd,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],0xd,CLEAR_LINE); if(data&0x80) - cpunum_set_input_line(machine, 0,0xf,CLEAR_LINE);*/ + cpu_set_input_line(machine->cpu[0],0xf,CLEAR_LINE);*/ /* idle skip for vblokbrk/sarukani, i can't find a better place to put it :-( but i think it works ok unless its making the game too fast */ if (cpu_get_pc(machine->activecpu)==0x04013B42) { if (!strcmp(machine->gamedrv->name,"vblokbrk") || !strcmp(machine->gamedrv->name,"sarukani")) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } } @@ -924,26 +924,26 @@ static READ32_HANDLER( gutsn_speedup_r ) if (cpu_get_pc(machine->activecpu)==0x402206e) { if(skns_main_ram[0x00078/4] == skns_main_ram[0x0c780/4]) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return skns_main_ram[0x0c780/4]; } static READ32_HANDLER( cyvern_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x402ebd2) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x402ebd2) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x4d3c8/4]; } static READ32_HANDLER( puzloopj_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x401dca0) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x401dca0) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x86714/4]; } static READ32_HANDLER( puzloopu_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x401dab0) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x401dab0) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x85cec/4]; } @@ -956,61 +956,61 @@ static READ32_HANDLER( puzzloop_speedup_r ) 0401DA18: BF $0401DA26 0401DA26: BRA $0401DA12 */ - if (cpu_get_pc(machine->activecpu)==0x401da14) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x401da14) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x81d38/4]; } static READ32_HANDLER( senknow_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x4017dce) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x4017dce) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x0000dc/4]; } static READ32_HANDLER( teljan_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x401ba32) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x401ba32) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x002fb4/4]; } static READ32_HANDLER( jjparads_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x4015e84) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x4015e84) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x000994/4]; } static READ32_HANDLER( jjparad2_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x401620a) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x401620a) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x000984/4]; } static READ32_HANDLER( ryouran_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x40182ce) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x40182ce) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x000a14/4]; } static READ32_HANDLER( galpans2_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x4049ae2) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x4049ae2) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x0fb6bc/4]; } static READ32_HANDLER( panicstr_speedup_r ) { - if (cpu_get_pc(machine->activecpu)==0x404e68a) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x404e68a) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0x0f19e4/4]; } static READ32_HANDLER( sengekis_speedup_r ) // 60006ee 600308e { - if (cpu_get_pc(machine->activecpu)==0x60006ec) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x60006ec) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0xb74bc/4]; } static READ32_HANDLER( sengekij_speedup_r ) // 60006ee 600308e { - if (cpu_get_pc(machine->activecpu)==0x60006ec) cpu_spinuntil_int(); + if (cpu_get_pc(machine->activecpu)==0x60006ec) cpu_spinuntil_int(machine->activecpu); return skns_main_ram[0xb7380/4]; } diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c index a943edf7401..63ea01258be 100644 --- a/src/mame/drivers/suprridr.c +++ b/src/mame/drivers/suprridr.c @@ -103,7 +103,7 @@ static WRITE8_HANDLER( nmi_enable_w ) static INTERRUPT_GEN( main_nmi_gen ) { if (nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } @@ -117,7 +117,7 @@ static INTERRUPT_GEN( main_nmi_gen ) static TIMER_CALLBACK( delayed_sound_w ) { sound_data = param; - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } @@ -135,7 +135,7 @@ static READ8_HANDLER( sound_data_r ) static WRITE8_HANDLER( sound_irq_ack_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c index e69f28175cd..f7c9b11d036 100644 --- a/src/mame/drivers/suprslam.c +++ b/src/mame/drivers/suprslam.c @@ -106,7 +106,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -305,7 +305,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c index d4cb2f78dcf..f823be60cc6 100644 --- a/src/mame/drivers/surpratk.c +++ b/src/mame/drivers/surpratk.c @@ -26,7 +26,7 @@ static UINT8 *ram; static INTERRUPT_GEN( surpratk_interrupt ) { - if (K052109_is_IRQ_enabled()) cpunum_set_input_line(machine, 0,0,HOLD_LINE); + if (K052109_is_IRQ_enabled()) cpu_set_input_line(device,0,HOLD_LINE); } static READ8_HANDLER( bankedram_r ) @@ -224,7 +224,7 @@ INPUT_PORTS_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 0,KONAMI_FIRQ_LINE,linestate); + cpu_set_input_line(machine->cpu[0],KONAMI_FIRQ_LINE,linestate); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c index 7ad5744b4c7..d8cdaf79e51 100644 --- a/src/mame/drivers/system1.c +++ b/src/mame/drivers/system1.c @@ -116,9 +116,9 @@ static WRITE8_HANDLER( chplft_videomode_w ) static WRITE8_HANDLER( system1_soundport_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(50)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(50)); } /* protection values from real hardware, these were verified to be the same on the title diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c index cff323d5e73..5ae7151aec0 100644 --- a/src/mame/drivers/system16.c +++ b/src/mame/drivers/system16.c @@ -207,7 +207,7 @@ static WRITE16_HANDLER( sys16_3d_coinctrl_w ) static INTERRUPT_GEN( sys16_interrupt ) { - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); /* Interrupt vector 4, used by VBlank */ + cpu_set_input_line(device, 4, HOLD_LINE); /* Interrupt vector 4, used by VBlank */ } @@ -255,7 +255,7 @@ static void tturfbl_msm5205_callback(running_machine *machine, int data) sample_buffer <<= 4; sample_select ^= 1; if(sample_select == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static const msm5205_interface tturfbl_msm5205_interface = @@ -392,7 +392,7 @@ static WRITE16_HANDLER( sound_command_w ) if( ACCESSING_BITS_0_7 ) { soundlatch_w( machine,0,data&0xff ); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } } @@ -401,7 +401,7 @@ static WRITE16_HANDLER( sound_command_nmi_w ) if( ACCESSING_BITS_0_7 ) { soundlatch_w( machine,0,data&0xff ); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -1198,7 +1198,7 @@ static WRITE16_HANDLER( ga_sound_command_w ) if( ACCESSING_BITS_8_15 ) { soundlatch_w( machine,0,data>>8 ); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } } diff --git a/src/mame/drivers/system18.c b/src/mame/drivers/system18.c index 1033a4faea4..e9e19609bd1 100644 --- a/src/mame/drivers/system18.c +++ b/src/mame/drivers/system18.c @@ -174,7 +174,7 @@ static void shdancbl_msm5205_callback(running_machine *machine, int data) sample_buffer >>= 4; sample_select ^= 1; if(sample_select == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static const msm5205_interface shdancbl_msm5205_interface = @@ -188,7 +188,7 @@ static UINT8* shdancbl_soundbank_ptr = NULL; /* Pointer to currently selected p static WRITE16_HANDLER( sound_command_irq_w ){ if( ACCESSING_BITS_0_7 ){ soundlatch_w( machine,0,data&0xff ); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } } @@ -322,7 +322,7 @@ ADDRESS_MAP_END static WRITE16_HANDLER( sound_command_nmi_w ){ if( ACCESSING_BITS_0_7 ){ soundlatch_w( machine,0,data&0xff ); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -738,7 +738,7 @@ static MACHINE_RESET( shdancbl ) } static READ16_HANDLER( shdancbl_skip_r ){ - if (cpu_get_pc(machine->activecpu)==0x2f76) {cpu_spinuntil_int(); return 0xffff;} + if (cpu_get_pc(machine->activecpu)==0x2f76) {cpu_spinuntil_int(machine->activecpu); return 0xffff;} return sys16_workingram[0]; } @@ -771,7 +771,7 @@ static DRIVER_INIT( shdancbl ) /***************************************************************************/ static READ16_HANDLER( mwalkbl_skip_r ){ - if (cpu_get_pc(machine->activecpu)==0x308a) {cpu_spinuntil_int(); return 0xffff;} + if (cpu_get_pc(machine->activecpu)==0x308a) {cpu_spinuntil_int(machine->activecpu); return 0xffff;} return sys16_workingram[0x202c/2]; } diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c index a54f67f2cc9..28970d24deb 100644 --- a/src/mame/drivers/tagteam.c +++ b/src/mame/drivers/tagteam.c @@ -47,7 +47,7 @@ extern VIDEO_UPDATE( tagteam ); static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,M6502_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6502_IRQ_LINE,HOLD_LINE); } @@ -84,14 +84,14 @@ static INTERRUPT_GEN( tagteam_interrupt ) static int coin; int port; - port = input_port_read(machine, "P1") & 0xc0; + port = input_port_read(device->machine, "P1") & 0xc0; if (port != 0xc0) /* Coin */ { if (coin == 0) { coin = 1; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } } else coin = 0; diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c index d46154f19f6..9ff5110c7ca 100644 --- a/src/mame/drivers/tail2nos.c +++ b/src/mame/drivers/tail2nos.c @@ -41,7 +41,7 @@ static WRITE16_HANDLER( sound_command_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -218,7 +218,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2608_interface ym2608_config = diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index 3cef461b958..e2ae477ef9e 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -187,116 +187,116 @@ static WRITE8_HANDLER( bankswitch_w ) static TIMER_CALLBACK( rsaga2_interrupt2 ) { - cpunum_set_input_line(machine, 0,2,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],2,HOLD_LINE); } static INTERRUPT_GEN( rastansaga2_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, rsaga2_interrupt2); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static TIMER_CALLBACK( crimec_interrupt3 ) { - cpunum_set_input_line(machine, 0,3,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],3,HOLD_LINE); } static INTERRUPT_GEN( crimec_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, crimec_interrupt3); - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static TIMER_CALLBACK( hitice_interrupt6 ) { - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } static INTERRUPT_GEN( hitice_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, hitice_interrupt6); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static TIMER_CALLBACK( rambo3_interrupt1 ) { - cpunum_set_input_line(machine, 0,1,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],1,HOLD_LINE); } static INTERRUPT_GEN( rambo3_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, rambo3_interrupt1); - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } static TIMER_CALLBACK( pbobble_interrupt5 ) { - cpunum_set_input_line(machine, 0,5,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],5,HOLD_LINE); } static INTERRUPT_GEN( pbobble_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, pbobble_interrupt5); - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + cpu_set_input_line(device, 3, HOLD_LINE); } static TIMER_CALLBACK( viofight_interrupt1 ) { - cpunum_set_input_line(machine, 0,1,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],1,HOLD_LINE); } static INTERRUPT_GEN( viofight_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, viofight_interrupt1); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static TIMER_CALLBACK( masterw_interrupt4 ) { - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); } static INTERRUPT_GEN( masterw_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, masterw_interrupt4); - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static TIMER_CALLBACK( silentd_interrupt4 ) { - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); } static INTERRUPT_GEN( silentd_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, silentd_interrupt4); - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } static TIMER_CALLBACK( selfeena_interrupt4 ) { - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); } static INTERRUPT_GEN( selfeena_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(5000,0), NULL, 0, selfeena_interrupt4); - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } static TIMER_CALLBACK( sbm_interrupt5 )//4 { - cpunum_set_input_line(machine, 0,5,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],5,HOLD_LINE); } static INTERRUPT_GEN( sbm_interrupt )//5 { timer_set(ATTOTIME_IN_CYCLES(10000,0), NULL, 0, sbm_interrupt5); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } @@ -2355,7 +2355,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c index 4ba7acc3b7d..d4988114282 100644 --- a/src/mame/drivers/taito_f2.c +++ b/src/mame/drivers/taito_f2.c @@ -788,13 +788,13 @@ driftout 8000 0000/8 0000 0000 The first control changes from 8000 to 0000 static TIMER_CALLBACK( taitof2_interrupt6 ) { - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } static INTERRUPT_GEN( taitof2_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(500,0), NULL, 0, taitof2_interrupt6); - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } @@ -838,7 +838,7 @@ static INT32 driveout_sound_latch = 0; static READ8_HANDLER( driveout_sound_command_r) { - cpunum_set_input_line(machine, 1,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); // logerror("sound IRQ OFF (sound command=%02x)\n",driveout_sound_latch); return driveout_sound_latch; } @@ -879,7 +879,7 @@ static WRITE16_HANDLER ( driveout_sound_command_w ) else { driveout_sound_latch = ((data<<4) & 0xf0) | (driveout_sound_latch & 0x0f); - cpunum_set_input_line (machine, 1, 0, ASSERT_LINE); + cpu_set_input_line (machine->cpu[1], 0, ASSERT_LINE); } } } @@ -3660,7 +3660,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c index 0f6b7c3bed2..4d687116e2b 100644 --- a/src/mame/drivers/taito_f3.c +++ b/src/mame/drivers/taito_f3.c @@ -125,12 +125,12 @@ static WRITE32_HANDLER( f3_control_w ) static WRITE32_HANDLER( f3_sound_reset_0_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } static WRITE32_HANDLER( f3_sound_reset_1_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } static WRITE32_HANDLER( f3_sound_bankswitch_w ) @@ -352,19 +352,19 @@ GFXDECODE_END static TIMER_CALLBACK( f3_interrupt3 ) { - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); // some signal from video hardware? + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); // some signal from video hardware? } static INTERRUPT_GEN( f3_interrupt2 ) { - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); // vblank + cpu_set_input_line(device, 2, HOLD_LINE); // vblank timer_set( ATTOTIME_IN_CYCLES(10000,0), NULL, 0, f3_interrupt3); } static MACHINE_RESET( f3 ) { taito_f3_soundsystem_reset(machine); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); f3_68681_reset(); } @@ -3466,7 +3466,7 @@ static void tile_decode(running_machine *machine) static READ32_HANDLER( irq_speedup_r_##GAME ) \ { \ if (cpu_get_pc(machine->activecpu)==counter && (f3_ram[mem_addr]&mask)!=0) \ - cpu_spinuntil_int(); \ + cpu_spinuntil_int(machine->activecpu); \ return f3_ram[mem_addr]; \ } @@ -3474,7 +3474,7 @@ static READ32_HANDLER( irq_speedup_r_##GAME ) \ static READ32_HANDLER( irq_speedup_r_##GAME ) \ { \ if (cpu_get_pc(machine->activecpu)==counter && (f3_ram[mem_addr]&mask)==0) \ - cpu_spinuntil_int(); \ + cpu_spinuntil_int(machine->activecpu); \ return f3_ram[mem_addr]; \ } @@ -3486,7 +3486,7 @@ static READ32_HANDLER( irq_speedup_r_##GAME ) \ else ptr=(((f3_ram[(cpu_get_sp(machine->activecpu)&0x1ffff)/4])&0x1ffff)<<16) | \ (f3_ram[((cpu_get_sp(machine->activecpu)&0x1ffff)/4)+1]>>16); \ if (cpu_get_pc(machine->activecpu)==counter && ptr==stack) \ - cpu_spinuntil_int(); \ + cpu_spinuntil_int(machine->activecpu); \ return f3_ram[mem_addr]; \ } diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c index 66a80cff162..e106c9f6369 100644 --- a/src/mame/drivers/taito_h.c +++ b/src/mame/drivers/taito_h.c @@ -160,7 +160,7 @@ VIDEO_UPDATE( dleague ); /* Handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index 0ae89738348..8f0cf37f173 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -295,27 +295,27 @@ static IRQ_CALLBACK(irq_callback) static INTERRUPT_GEN( vbl_interrupt ) { - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(device, irq_callback); /* kludge to make plgirls boot */ - if (cpu_get_reg(machine->cpu[0],Z80_IM) != 2) return; + if (cpu_get_reg(device,Z80_IM) != 2) return; // What is really generating interrupts 0 and 1 is still to be found - if (cpu_getiloops() == 1 && (irq_enable & 1)) + if (cpu_getiloops(device) == 1 && (irq_enable & 1)) { last_irq_level = 0; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } - else if (cpu_getiloops() == 2 && (irq_enable & 2)) + else if (cpu_getiloops(device) == 2 && (irq_enable & 2)) { last_irq_level = 1; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } - else if (cpu_getiloops() == 0 && (irq_enable & 4)) + else if (cpu_getiloops(device) == 0 && (irq_enable & 4)) { last_irq_level = 2; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } } @@ -337,7 +337,7 @@ static WRITE8_HANDLER( irq_enable_w ) // fix Plotting test mode if ((irq_enable & (1 << last_irq_level)) == 0) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static READ8_HANDLER( irq_enable_r ) @@ -1057,7 +1057,7 @@ ADDRESS_MAP_END static WRITE8_HANDLER (evilston_snd_w) { shared_ram[0x7fe]=data&0x7f; - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } @@ -2055,7 +2055,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static WRITE8_HANDLER( portA_w ) diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c index 5908e71f91d..2cadf5356cb 100644 --- a/src/mame/drivers/taito_x.c +++ b/src/mame/drivers/taito_x.c @@ -966,7 +966,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index b1cf40cb231..b9d334f6a16 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -912,7 +912,7 @@ static void parse_control(running_machine *machine) /* bit 0 enables cpu B */ /* however this fails when recovering from a save state if cpu B is disabled !! */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); } @@ -921,7 +921,7 @@ static void parse_control_noz80(running_machine *machine) /* bit 0 enables cpu B */ /* however this fails when recovering from a save state if cpu B is disabled !! */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); } @@ -963,7 +963,7 @@ static WRITE16_HANDLER( cpua_noz80_ctrl_w ) /* assumes no Z80 */ static TIMER_CALLBACK( taitoz_interrupt6 ) { - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } /* 68000 B */ @@ -971,19 +971,19 @@ static TIMER_CALLBACK( taitoz_interrupt6 ) #if 0 static TIMER_CALLBACK( taitoz_cpub_interrupt5 ) { - cpunum_set_input_line(machine, 2,5,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ + cpu_set_input_line(machine->cpu[2],5,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ } #endif static TIMER_CALLBACK( taitoz_sg_cpub_interrupt5 ) { - cpunum_set_input_line(machine, 1,5,HOLD_LINE); /* assumes no Z80 */ + cpu_set_input_line(machine->cpu[1],5,HOLD_LINE); /* assumes no Z80 */ } #if 0 static TIMER_CALLBACK( taitoz_cpub_interrupt6 ) { - cpunum_set_input_line(machine, 2,6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ + cpu_set_input_line(machine->cpu[2],6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ } #endif @@ -1001,7 +1001,7 @@ static INTERRUPT_GEN( sci_interrupt ) if (sci_int6) timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, taitoz_interrupt6); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } /* Double Axle seems to keep only 1 sprite frame in sprite ram, @@ -1017,14 +1017,14 @@ static INTERRUPT_GEN( dblaxle_interrupt ) if (dblaxle_int6) timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, taitoz_interrupt6); - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static INTERRUPT_GEN( dblaxle_cpub_interrupt ) { // Unsure how many int6's per frame timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, taitoz_interrupt6); - cpunum_set_input_line(machine, 2, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } @@ -3044,14 +3044,14 @@ Interface B is for games which lack a Z80 (Spacegun, Bshark). /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) // assumes Z80 sandwiched between 68Ks { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandlerb(running_machine *machine, int irq) { // DG: this is probably specific to Z80 and wrong? -// cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); +// cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index f98a3605194..958dd9ffe9c 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -246,7 +246,7 @@ static WRITE16_HANDLER( system_control_w ) dsp_HOLD_signal = (data & 4) ? CLEAR_LINE : ASSERT_LINE; - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); logerror("68K:%06x writing %04x to TMS32025. %s HOLD , %s RESET\n",cpu_get_previouspc(machine->activecpu),data,((data & 4) ? "Clear" : "Assert"),((data & 1) ? "Clear" : "Assert")); } @@ -583,7 +583,7 @@ GFXDECODE_END /* Handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface airsys_ym2610_interface = diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c index 2fcad460eff..40ef46f1dd7 100644 --- a/src/mame/drivers/taitojc.c +++ b/src/mame/drivers/taitojc.c @@ -773,13 +773,13 @@ static WRITE32_HANDLER(dsp_shared_w) { if (!first_dsp_reset) { - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, CLEAR_LINE); } first_dsp_reset = 0; } else { - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); } } } @@ -1278,17 +1278,17 @@ static MACHINE_RESET( taitojc ) f3_68681_reset(); // hold the TMS in reset until we have code - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); } static INTERRUPT_GEN( taitojc_vblank ) { - cpunum_set_input_line_and_vector(machine, 0, 2, HOLD_LINE, 130); + cpu_set_input_line_and_vector(device, 2, HOLD_LINE, 130); } static INTERRUPT_GEN( taitojc_int6 ) { - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } static MACHINE_DRIVER_START( taitojc ) diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c index 0b986b447fc..a33a6f4532a 100644 --- a/src/mame/drivers/taitosj.c +++ b/src/mame/drivers/taitosj.c @@ -181,7 +181,7 @@ static WRITE8_HANDLER( taitosj_sndnmi_msk_w ) static WRITE8_HANDLER( taitosj_soundcommand_w ) { soundlatch_w(machine,offset,data); - if (!sndnmi_disable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (!sndnmi_disable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static UINT8 input_port_4_f0; diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c index b1ceb8d2b8a..84d9548ed52 100644 --- a/src/mame/drivers/taitowlf.c +++ b/src/mame/drivers/taitowlf.c @@ -533,7 +533,7 @@ static MACHINE_RESET(taitowlf) { memory_set_bankptr(1, memory_region(machine, "user1") + 0x30000); - cpunum_set_irq_callback(0, irq_callback); + cpu_set_irq_callback(machine->cpu[0], irq_callback); taitowlf_devices.pit8254 = device_list_find_by_tag( machine->config->devicelist, PIT8254, "pit8254" ); taitowlf_devices.pic8259_1 = device_list_find_by_tag( machine->config->devicelist, PIC8259, "pic8259_1" ); @@ -550,7 +550,7 @@ static MACHINE_RESET(taitowlf) *************************************************************/ static PIC8259_SET_INT_LINE( taitowlf_pic8259_1_set_int_line ) { - cpunum_set_input_line(device->machine, 0, 0, interrupt ? HOLD_LINE : CLEAR_LINE); + cpu_set_input_line(device->machine->cpu[0], 0, interrupt ? HOLD_LINE : CLEAR_LINE); } @@ -654,7 +654,7 @@ static const struct pci_device_info intel82371ab = static void set_gate_a20(int a20) { - cpunum_set_input_line(Machine, 0, INPUT_LINE_A20, a20); + cpu_set_input_line(Machine->cpu[0], INPUT_LINE_A20, a20); } static void keyboard_interrupt(int state) diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c index afc6abd0482..1305337543e 100644 --- a/src/mame/drivers/tank8.c +++ b/src/mame/drivers/tank8.c @@ -13,7 +13,7 @@ static int collision_index; void tank8_set_collision(running_machine *machine, int index) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); collision_index = index; } @@ -40,7 +40,7 @@ static WRITE8_HANDLER( tank8_int_reset_w ) { collision_index &= ~0x3f; - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( tank8_crash_w ) diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c index 42e0e766734..17a37254524 100644 --- a/src/mame/drivers/tankbatt.c +++ b/src/mame/drivers/tankbatt.c @@ -106,8 +106,8 @@ static WRITE8_HANDLER( tankbatt_interrupt_enable_w ) tankbatt_sound_enable = !data; if (data != 0) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } /* hack - turn off the engine noise if the normal game nmi's are disabled */ if (data) sample_stop (2); @@ -119,8 +119,8 @@ static WRITE8_HANDLER( tankbatt_demo_interrupt_enable_w ) tankbatt_nmi_enable = data; if (data != 0) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } // interrupt_enable_w (offset, data); } @@ -173,8 +173,8 @@ ADDRESS_MAP_END static INTERRUPT_GEN( tankbatt_interrupt ) { - if ((input_port_read(machine, "P1") & 0x60) == 0) cpunum_set_input_line(machine, 0,0,HOLD_LINE); - else if (tankbatt_nmi_enable) cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,PULSE_LINE); + if ((input_port_read(device->machine, "P1") & 0x60) == 0) cpu_set_input_line(device,0,HOLD_LINE); + else if (tankbatt_nmi_enable) cpu_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE); } static INPUT_PORTS_START( tankbatt ) diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c index 3fc4a99b5d7..6426b32e6b9 100644 --- a/src/mame/drivers/tankbust.c +++ b/src/mame/drivers/tankbust.c @@ -70,7 +70,7 @@ static TIMER_CALLBACK( soundirqline_callback ) //logerror("sound_irq_line write = %2x (after CPUs synced) \n",param); if ((param&1) == 0) - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index 0661f94da36..b2aabd797a2 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -83,7 +83,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine,offset,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) @@ -309,7 +309,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c index f18d0c2c03a..606b207b57d 100644 --- a/src/mame/drivers/targeth.c +++ b/src/mame/drivers/targeth.c @@ -41,15 +41,15 @@ GFXDECODE_END static INTERRUPT_GEN(targeth_interrupt ) { - switch(cpu_getiloops()){ + switch(cpu_getiloops(device)){ case 0: /* IRQ 2: drives the game */ - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); break; case 1: /* IRQ 4: Read 1P Gun */ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); break; case 2: /* IRQ 6: Read 2P Gun */ - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); break; } } diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c index 68dc748693d..b604b932b4e 100644 --- a/src/mame/drivers/tatsumi.c +++ b/src/mame/drivers/tatsumi.c @@ -180,7 +180,7 @@ static READ16_HANDLER(cyclwarr_input2_r) static WRITE16_HANDLER(cyclwarr_sound_w) { soundlatch_w(machine, 0, data >> 8); - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } /***************************************************************************/ @@ -817,7 +817,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 2, INPUT_LINE_IRQ0, state); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_IRQ0, state); } static const ym2151_interface ym2151_config = @@ -827,7 +827,7 @@ static const ym2151_interface ym2151_config = static INTERRUPT_GEN( roundup5_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xc8/4); /* VBL */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4); /* VBL */ } static MACHINE_DRIVER_START( apache3 ) @@ -1202,7 +1202,7 @@ static DRIVER_INIT( apache3 ) UINT8 *src2 = memory_region(machine, "gfx3"); int i; - cpunum_set_input_line(machine, 3, INPUT_LINE_HALT, ASSERT_LINE); // ? + cpu_set_input_line(machine->cpu[3], INPUT_LINE_HALT, ASSERT_LINE); // ? for (i=0; i<0x100000; i+=32) { memcpy(dst,src1,32); diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c index 45f3f22a914..db80f3ac614 100644 --- a/src/mame/drivers/tbowl.c +++ b/src/mame/drivers/tbowl.c @@ -88,7 +88,7 @@ static WRITE8_HANDLER( shared_w ) static WRITE8_HANDLER( tbowl_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); } @@ -141,7 +141,7 @@ ADDRESS_MAP_END static WRITE8_HANDLER ( tbowl_trigger_nmi ) { /* trigger NMI on 6206B's Cpu? (guess but seems to work..) */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } static ADDRESS_MAP_START( 6206C_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -443,7 +443,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 2,0,linestate); + cpu_set_input_line(machine->cpu[2],0,linestate); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c index 35b885ed8d5..a19938d1188 100644 --- a/src/mame/drivers/tceptor.c +++ b/src/mame/drivers/tceptor.c @@ -62,7 +62,7 @@ static WRITE16_HANDLER( m68k_shared_word_w ) static INTERRUPT_GEN( m6809_vb_interrupt ) { if (m6809_irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); else m6809_irq_enable = 1; } @@ -81,7 +81,7 @@ static WRITE8_HANDLER( m6809_irq_disable_w ) static INTERRUPT_GEN( m68k_vb_interrupt ) { if (m68k_irq_enable) - cpunum_set_input_line(machine, 3, MC68000_IRQ_1, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_1, HOLD_LINE); } static WRITE16_HANDLER( m68k_irq_enable_w ) @@ -93,7 +93,7 @@ static WRITE16_HANDLER( m68k_irq_enable_w ) static INTERRUPT_GEN( mcu_vb_interrupt ) { if (mcu_irq_enable) - cpunum_set_input_line(machine, 4, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); else mcu_irq_enable = 1; } diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c index df4b9dfe6d1..41fb836b6f3 100644 --- a/src/mame/drivers/tecmo.c +++ b/src/mame/drivers/tecmo.c @@ -81,7 +81,7 @@ static WRITE8_HANDLER( tecmo_bankswitch_w ) static WRITE8_HANDLER( tecmo_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } static WRITE8_HANDLER( tecmo_adpcm_start_w ) @@ -544,7 +544,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3526_interface ym3526_config = diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c index 10f8462af93..6537de4f606 100644 --- a/src/mame/drivers/tecmo16.c +++ b/src/mame/drivers/tecmo16.c @@ -62,7 +62,7 @@ static WRITE16_HANDLER( tecmo16_sound_command_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0x00,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -427,7 +427,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index f3a10991bbb..d8679634a98 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -299,7 +299,7 @@ static WRITE16_HANDLER( sound_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0x00,data & 0xff); - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } } @@ -891,7 +891,7 @@ static VIDEO_UPDATE(deroon) static void sound_irq(running_machine *machine, int irq) { /* IRQ */ - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ymf262_interface tecmosys_ymf262_interface = diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c index 99a116c19e1..745872f2b93 100644 --- a/src/mame/drivers/tehkanwc.c +++ b/src/mame/drivers/tehkanwc.c @@ -119,9 +119,9 @@ extern VIDEO_UPDATE( tehkanwc ); static WRITE8_HANDLER( sub_cpu_halt_w ) { if (data) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } @@ -165,12 +165,12 @@ static WRITE8_HANDLER( tehkanwc_track_1_reset_w ) static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); } static TIMER_CALLBACK( reset_callback ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, PULSE_LINE); } static WRITE8_HANDLER( sound_answer_w ) diff --git a/src/mame/drivers/tempest.c b/src/mame/drivers/tempest.c index 157673720b7..2322469944a 100644 --- a/src/mame/drivers/tempest.c +++ b/src/mame/drivers/tempest.c @@ -303,7 +303,7 @@ static UINT8 tempest_player_select; static WRITE8_HANDLER( wdclr_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); watchdog_reset(machine); } @@ -329,7 +329,7 @@ static CUSTOM_INPUT( tempest_buttons_r ) static CUSTOM_INPUT( clock_r ) { /* Emulate the 3kHz source on bit 7 (divide 1.5MHz by 512) */ - return (cpunum_gettotalcycles(0) & 0x100) ? 1 : 0; + return (cpu_get_total_cycles(field->port->machine->cpu[0]) & 0x100) ? 1 : 0; } diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c index 2bb2b2793fc..185c30fad5d 100644 --- a/src/mame/drivers/tetrisp2.c +++ b/src/mame/drivers/tetrisp2.c @@ -1130,23 +1130,23 @@ GFXDECODE_END static TIMER_CALLBACK( rockn_timer_level4_callback ) { - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 4, HOLD_LINE); } static TIMER_CALLBACK( rockn_timer_sub_level4_callback ) { - cpunum_set_input_line(machine, 1, 4, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 4, HOLD_LINE); } static TIMER_CALLBACK( rockn_timer_level1_callback ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 1, HOLD_LINE); } static TIMER_CALLBACK( rockn_timer_sub_level1_callback ) { - cpunum_set_input_line(machine, 1, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 1, HOLD_LINE); } static void init_rockn_timer(running_machine *machine) diff --git a/src/mame/drivers/thayers.c b/src/mame/drivers/thayers.c index dfecaade1ce..a01aea31233 100644 --- a/src/mame/drivers/thayers.c +++ b/src/mame/drivers/thayers.c @@ -44,24 +44,24 @@ static void check_interrupt(running_machine *machine) { if (!timer_int || !data_rdy_int || !ssi_data_request) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, HOLD_LINE); } else { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); } } static TIMER_CALLBACK( intrq_tick ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); } static WRITE8_HANDLER( intrq_w ) { // T = 1.1 * R30 * C53 = 1.1 * 750K * 0.01uF = 8.25 ms - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, HOLD_LINE); timer_set(ATTOTIME_IN_USEC(8250), NULL, 0, intrq_tick); } @@ -301,7 +301,7 @@ static WRITE8_HANDLER( control2_w ) if (!BIT(data, 2) & cart_present) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, HOLD_LINE); } } diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c index 9c1022ef6b8..f4e7d9f45b1 100644 --- a/src/mame/drivers/thedeep.c +++ b/src/mame/drivers/thedeep.c @@ -45,7 +45,7 @@ static WRITE8_HANDLER( thedeep_nmi_w ) static WRITE8_HANDLER( thedeep_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static UINT8 protection_command, protection_data; @@ -307,7 +307,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface thedeep_ym2203_intf = @@ -322,11 +322,11 @@ static const ym2203_interface thedeep_ym2203_intf = static INTERRUPT_GEN( thedeep_interrupt ) { - if (cpu_getiloops()) + if (cpu_getiloops(device)) { if (protection_command != 0x59) { - int coins = input_port_read(machine, "MCU"); + int coins = input_port_read(device->machine, "MCU"); if (coins & 1) protection_data = 1; else if (coins & 2) protection_data = 2; else if (coins & 4) protection_data = 3; @@ -336,14 +336,14 @@ static INTERRUPT_GEN( thedeep_interrupt ) protection_irq = 1; } if (protection_irq) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } else { if (nmi_enable) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, CLEAR_LINE); } } } diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c index 80d68230d69..c456ec3c83a 100644 --- a/src/mame/drivers/thief.c +++ b/src/mame/drivers/thief.c @@ -53,10 +53,10 @@ VIDEO_UPDATE( thief ); static INTERRUPT_GEN( thief_interrupt ) { /* SLAM switch causes an NMI if it's pressed */ - if( (input_port_read(machine, "P2") & 0x10) == 0 ) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if( (input_port_read(device->machine, "P2") & 0x10) == 0 ) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); else - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } /**********************************************************/ diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c index 8183f14d77a..dbdac8e123e 100644 --- a/src/mame/drivers/thunderj.c +++ b/src/mame/drivers/thunderj.c @@ -36,9 +36,9 @@ static UINT16 *rom_base[2]; static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } @@ -81,9 +81,9 @@ static WRITE16_HANDLER( latch_w ) { /* 0 means hold CPU 2's reset low */ if (data & 1) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* bits 2-5 are the alpha bank */ if (thunderj_alpha_tile_bank != ((data >> 2) & 7)) @@ -151,7 +151,7 @@ static READ16_HANDLER( thunderj_atarivc_r ) the beginning of interrupt and once near the end. It stores these values in a table starting at $163484. CPU #2 periodically looks at this table to make sure that it is getting interrupts at the appropriate times, and that the - VBLANK bit is set appropriately. Unfortunately, due to all the cpu_yield() + VBLANK bit is set appropriately. Unfortunately, due to all the cpu_yield(machine->activecpu) calls we make to synchronize the two CPUs, we occasionally get out of time and generate the interrupt outside of the tight tolerances CPU #2 expects. diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c index 2d290325568..494b55d72ab 100644 --- a/src/mame/drivers/thunderx.c +++ b/src/mame/drivers/thunderx.c @@ -30,12 +30,12 @@ static UINT8 thunderx_1f98_data = 0; static INTERRUPT_GEN( scontra_interrupt ) { if (K052109_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } static TIMER_CALLBACK( thunderx_firq_callback ) { - cpunum_set_input_line(machine, 0, KONAMI_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], KONAMI_FIRQ_LINE, HOLD_LINE); } @@ -355,7 +355,7 @@ static WRITE8_HANDLER( thunderx_videobank_w ) static WRITE8_HANDLER( thunderx_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( scontra_snd_bankswitch_w ) diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c index 102fff549d9..69840fadc1e 100644 --- a/src/mame/drivers/tickee.c +++ b/src/mame/drivers/tickee.c @@ -58,14 +58,14 @@ INLINE void get_crosshair_xy(running_machine *machine, int player, int *x, int * static TIMER_CALLBACK( trigger_gun_interrupt ) { /* fire the IRQ at the correct moment */ - cpunum_set_input_line(machine, 0, param, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], param, ASSERT_LINE); } static TIMER_CALLBACK( clear_gun_interrupt ) { /* clear the IRQ on the next scanline? */ - cpunum_set_input_line(machine, 0, param, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], param, CLEAR_LINE); } diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c index 56f759dcbf1..37dd36c1d32 100644 --- a/src/mame/drivers/tigeroad.c +++ b/src/mame/drivers/tigeroad.c @@ -502,7 +502,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c index 4c4dfe3a8be..f1fc540c26f 100644 --- a/src/mame/drivers/timelimt.c +++ b/src/mame/drivers/timelimt.c @@ -49,7 +49,7 @@ static WRITE8_HANDLER( nmi_enable_w ) static WRITE8_HANDLER( sound_reset_w ) { if ( data & 1 ) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE ); } /***************************************************************************/ @@ -252,7 +252,7 @@ static const ay8910_interface ay8910_config = static INTERRUPT_GEN( timelimt_irq ) { if ( nmi_enabled ) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } /***************************************************************************/ diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c index fa51fc80eb7..833648fca69 100644 --- a/src/mame/drivers/timeplt.c +++ b/src/mame/drivers/timeplt.c @@ -71,7 +71,7 @@ static MACHINE_START( timeplt ) static INTERRUPT_GEN( timeplt_interrupt ) { if (nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } @@ -79,7 +79,7 @@ static WRITE8_HANDLER( timeplt_nmi_enable_w ) { nmi_enable = data & 1; if (!nmi_enable) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); } diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index 9135fe056d5..f6de2b44559 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -146,7 +146,7 @@ static WRITE16_HANDLER( tmaster_oki_bank_w ) static void duart_irq_handler(const device_config *device, UINT8 vector) { - cpunum_set_input_line_and_vector(device->machine, 0, 4, HOLD_LINE, vector); + cpu_set_input_line_and_vector(device->machine->cpu[0], 4, HOLD_LINE, vector); }; static void duart_tx(const device_config *device, int channel, UINT8 data) @@ -407,7 +407,7 @@ static WRITE16_HANDLER( tmaster_blitter_w ) { case 0x0e: tmaster_draw(machine); - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 2, HOLD_LINE); break; } } @@ -754,11 +754,11 @@ static MACHINE_RESET( tmaster ) static INTERRUPT_GEN( tm3k_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 2, HOLD_LINE); break; - case 1: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; - default: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 2, HOLD_LINE); break; + case 1: cpu_set_input_line(device, 3, HOLD_LINE); break; + default: cpu_set_input_line(device, 1, HOLD_LINE); break; } } @@ -816,11 +816,11 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( galgames_interrupt ) { - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { - case 0: cpunum_set_input_line(machine, 0, 3, HOLD_LINE); break; + case 0: cpu_set_input_line(device, 3, HOLD_LINE); break; // lev 2 triggered at the end of a blit - default: cpunum_set_input_line(machine, 0, 1, HOLD_LINE); break; + default: cpu_set_input_line(device, 1, HOLD_LINE); break; } } diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index c2b6555d007..1f94bfb0025 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -165,28 +165,28 @@ static WRITE16_HANDLER( K053244_word_noA1_w ) static INTERRUPT_GEN(cuebrick_interrupt) { // cheap IRQ multiplexing to avoid losing sound IRQs - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: - cpunum_set_input_line(machine, 0, MC68000_IRQ_5, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_5, HOLD_LINE); break; default: if (cuebrick_snd_irqlatch) - cpunum_set_input_line(machine, 0, MC68000_IRQ_6, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_6, HOLD_LINE); break; } } static INTERRUPT_GEN( punkshot_interrupt ) { - if (K052109_is_IRQ_enabled()) irq4_line_hold(machine, cpunum); + if (K052109_is_IRQ_enabled()) irq4_line_hold(device); } static INTERRUPT_GEN( lgtnfght_interrupt ) { - if (K052109_is_IRQ_enabled()) irq5_line_hold(machine, cpunum); + if (K052109_is_IRQ_enabled()) irq5_line_hold(device); } @@ -225,7 +225,7 @@ static WRITE16_HANDLER( glfgreat_sound_w ) k053260_0_w(machine, offset, (data >> 8) & 0xff); if (offset) - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static READ16_HANDLER( prmrsocr_sound_r ) @@ -245,7 +245,7 @@ static WRITE16_HANDLER( prmrsocr_sound_cmd_w ) static WRITE16_HANDLER( prmrsocr_sound_irq_w ) { - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static WRITE8_HANDLER( prmrsocr_audio_bankswitch_w ) @@ -315,7 +315,7 @@ static int sound_nmi_enabled; static void sound_nmi_callback( int param ) { - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, ( sound_nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, ( sound_nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE ); sound_nmi_enabled = 0; } @@ -323,13 +323,13 @@ static void sound_nmi_callback( int param ) static TIMER_CALLBACK( nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } static WRITE8_HANDLER( sound_arm_nmi_w ) { // sound_nmi_enabled = 1; - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); timer_set(ATTOTIME_IN_USEC(50), NULL,0,nmi_callback); /* kludge until the K053260 is emulated correctly */ } @@ -597,7 +597,7 @@ static WRITE16_HANDLER( thndrx2_eeprom_w ) /* bit 5 triggers IRQ on sound cpu */ if (last == 0 && (data & 0x20) != 0) - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); last = data & 0x20; /* bit 6 = enable char ROM reading through the video RAM */ @@ -778,7 +778,7 @@ ADDRESS_MAP_END static WRITE16_HANDLER( ssriders_soundkludge_w ) { /* I think this is more than just a trigger */ - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static ADDRESS_MAP_START( blswhstl_main_map, ADDRESS_SPACE_PROGRAM, 16 ) @@ -2582,7 +2582,7 @@ MACHINE_DRIVER_END static void sound_nmi(running_machine *machine) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static const k054539_interface k054539_config = diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c index 38d7c1636ba..246e521f073 100644 --- a/src/mame/drivers/tnzs.c +++ b/src/mame/drivers/tnzs.c @@ -840,7 +840,7 @@ ADDRESS_MAP_END static WRITE8_HANDLER( tnzsb_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 2,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[2],0,HOLD_LINE,0xff); } static ADDRESS_MAP_START( tnzsb_cpu1_map, ADDRESS_SPACE_PROGRAM, 8 ) @@ -1592,7 +1592,7 @@ static const ym2203_interface ym2203_config = /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface kageki_ym2203_interface = diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c index 4223ba1a597..dee3e1a410d 100644 --- a/src/mame/drivers/toaplan1.c +++ b/src/mame/drivers/toaplan1.c @@ -1228,7 +1228,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index 4c094608685..770144dfb37 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -296,8 +296,8 @@ static WRITE16_HANDLER( batsugun_share2_w ); static void toaplan2_reset(void) { - if ( cpu_gettotalcpu() > 1 ) - cpunum_set_input_line(Machine, 1, INPUT_LINE_RESET, PULSE_LINE); + if (Machine->cpu[1] != NULL) + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } static MACHINE_RESET( toaplan2 ) @@ -521,7 +521,7 @@ static READ16_HANDLER( toaplan2_inputport_0_word_r ) static TIMER_CALLBACK( toaplan2_raise_irq ) { - cpunum_set_input_line(machine, 0, param, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], param, HOLD_LINE); } static void toaplan2_vblank_irq(running_machine *machine, int irq_line) @@ -530,9 +530,9 @@ static void toaplan2_vblank_irq(running_machine *machine, int irq_line) timer_set(video_screen_get_time_until_pos(machine->primary_screen, 0xe6, 0), NULL, irq_line, toaplan2_raise_irq); } -static INTERRUPT_GEN( toaplan2_vblank_irq1 ) { toaplan2_vblank_irq(machine, 1); } -static INTERRUPT_GEN( toaplan2_vblank_irq2 ) { toaplan2_vblank_irq(machine, 2); } -static INTERRUPT_GEN( toaplan2_vblank_irq4 ) { toaplan2_vblank_irq(machine, 4); } +static INTERRUPT_GEN( toaplan2_vblank_irq1 ) { toaplan2_vblank_irq(device->machine, 1); } +static INTERRUPT_GEN( toaplan2_vblank_irq2 ) { toaplan2_vblank_irq(device->machine, 2); } +static INTERRUPT_GEN( toaplan2_vblank_irq4 ) { toaplan2_vblank_irq(device->machine, 4); } static READ16_HANDLER( video_count_r ) { @@ -609,8 +609,8 @@ static WRITE16_HANDLER( toaplan2_v25_coin_word_w ) #if USE_V25 /* only the ram-based V25 based games access the following bits */ - //cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x0020) ? CLEAR_LINE : ASSERT_LINE ); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, (data & 0x0010) ? CLEAR_LINE : ASSERT_LINE); + //cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x0020) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, (data & 0x0010) ? CLEAR_LINE : ASSERT_LINE); #endif } @@ -1008,7 +1008,7 @@ static WRITE16_HANDLER( bgaregga_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine, offset, data & 0xff); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } } @@ -1123,7 +1123,7 @@ static WRITE16_HANDLER( batrider_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine, offset, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } } @@ -1133,7 +1133,7 @@ static WRITE16_HANDLER( batrider_soundlatch2_w ) if (ACCESSING_BITS_0_7) { soundlatch2_w(machine, offset, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); } } @@ -1149,20 +1149,20 @@ static WRITE16_HANDLER( raizing_clear_sndirq_w ) { // not sure whether this is correct // the 68K writes here during the sound IRQ handler, and nowhere else... - cpunum_set_input_line(machine, 0, raizing_sndirq_line, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], raizing_sndirq_line, CLEAR_LINE); } static WRITE8_HANDLER( raizing_sndirq_w ) { // if raizing_clear_sndirq_w() is correct, should this be ASSERT_LINE? - cpunum_set_input_line(machine, 0, raizing_sndirq_line, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], raizing_sndirq_line, HOLD_LINE); } static WRITE8_HANDLER( raizing_clear_nmi_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); } @@ -1288,7 +1288,7 @@ static void bbakraid_irqhandler(running_machine *machine, int state) static INTERRUPT_GEN( bbakraid_snd_interrupt ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } @@ -1488,7 +1488,7 @@ ADDRESS_MAP_END WRITE16_HANDLER( fixeight_subcpu_ctrl ) { /* 0x18 used */ - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, (data & 0x0010) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, (data & 0x0010) ? CLEAR_LINE : ASSERT_LINE); } #endif @@ -3319,7 +3319,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = @@ -3809,7 +3809,7 @@ MACHINE_DRIVER_END static MACHINE_RESET(batsugun) { #if USE_V25 - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); #endif } diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c index 1f91d3cde9a..c566bc87be8 100644 --- a/src/mame/drivers/toki.c +++ b/src/mame/drivers/toki.c @@ -61,7 +61,7 @@ WRITE16_HANDLER( toki_foreground_videoram16_w ); static WRITE16_HANDLER( tokib_soundcommand16_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ16_HANDLER( pip16_r ) @@ -81,7 +81,7 @@ static void toki_adpcm_int (running_machine *machine, int data) toggle ^= 1; if (toggle) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static WRITE8_HANDLER( toki_adpcm_control_w ) diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c index cb90b967f4e..324792d2a83 100644 --- a/src/mame/drivers/topspeed.c +++ b/src/mame/drivers/topspeed.c @@ -272,7 +272,7 @@ static void parse_control(running_machine *machine) /* assumes Z80 sandwiched be /* bit 0 enables cpu B */ /* however this fails when recovering from a save state if cpu B is disabled !! */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); } @@ -296,14 +296,14 @@ static WRITE16_HANDLER( cpua_ctrl_w ) static TIMER_CALLBACK( topspeed_interrupt6 ) { - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } /* 68000 B */ static TIMER_CALLBACK( topspeed_cpub_interrupt6 ) { - cpunum_set_input_line(machine, 2,6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ + cpu_set_input_line(machine->cpu[2],6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ } @@ -311,14 +311,14 @@ static INTERRUPT_GEN( topspeed_interrupt ) { /* Unsure how many int6's per frame */ timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, topspeed_interrupt6); - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } static INTERRUPT_GEN( topspeed_cpub_interrupt ) { /* Unsure how many int6's per frame */ timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, topspeed_cpub_interrupt6); - cpunum_set_input_line(machine, 2, 5, HOLD_LINE); + cpu_set_input_line(device, 5, HOLD_LINE); } @@ -655,7 +655,7 @@ GFXDECODE_END static void irq_handler(running_machine *machine, int irq) /* assumes Z80 sandwiched between 68Ks */ { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/toratora.c b/src/mame/drivers/toratora.c index 3d901243074..34fef36f961 100644 --- a/src/mame/drivers/toratora.c +++ b/src/mame/drivers/toratora.c @@ -121,7 +121,7 @@ static void main_cpu_irq(running_machine *machine, int state) int combined_state = pia_get_irq_a(0) | pia_get_irq_b(0); logerror("GEN IRQ: %x\n", combined_state); - cpunum_set_input_line(machine, 0, 0, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -139,16 +139,16 @@ static UINT8 last = 0; if (timer & 0x100) popmessage("watchdog!"); - if (last != (input_port_read(machine, "INPUT") & 0x0f)) + if (last != (input_port_read(device->machine, "INPUT") & 0x0f)) { - last = input_port_read(machine, "INPUT") & 0x0f; - cpunum_set_input_line(machine, 0, 0, PULSE_LINE); + last = input_port_read(device->machine, "INPUT") & 0x0f; + cpu_set_input_line(device, 0, PULSE_LINE); } - pia_set_input_a(0, input_port_read(machine, "INPUT") & 0x0f, 0); + pia_set_input_a(0, input_port_read(device->machine, "INPUT") & 0x0f, 0); - pia_set_input_ca1(0, input_port_read(machine, "INPUT") & 0x10); + pia_set_input_ca1(0, input_port_read(device->machine, "INPUT") & 0x10); - pia_set_input_ca2(0, input_port_read(machine, "INPUT") & 0x20); + pia_set_input_ca2(0, input_port_read(device->machine, "INPUT") & 0x20); } static READ8_HANDLER( timer_r ) diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c index 7c299a066d0..26aa3f6d04a 100644 --- a/src/mame/drivers/toypop.c +++ b/src/mame/drivers/toypop.c @@ -161,7 +161,7 @@ static READ8_HANDLER( toypop_main_interrupt_enable_r ) static WRITE8_HANDLER( toypop_main_interrupt_enable_w ) { cpu_interrupt_enable(0,1); - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } static WRITE8_HANDLER( toypop_main_interrupt_disable_w ) @@ -172,7 +172,7 @@ static WRITE8_HANDLER( toypop_main_interrupt_disable_w ) static WRITE8_HANDLER( toypop_sound_interrupt_enable_acknowledge_w ) { cpu_interrupt_enable(1,1); - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); } static WRITE8_HANDLER( toypop_sound_interrupt_disable_w ) @@ -182,8 +182,8 @@ static WRITE8_HANDLER( toypop_sound_interrupt_disable_w ) static INTERRUPT_GEN( toypop_main_interrupt ) { - irq0_line_assert(machine, cpunum); // this also checks if irq is enabled - IMPORTANT! - // so don't replace with cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + irq0_line_assert(device); // this also checks if irq is enabled - IMPORTANT! + // so don't replace with cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); namcoio_set_irq_line(0,PULSE_LINE); namcoio_set_irq_line(1,PULSE_LINE); @@ -192,30 +192,30 @@ static INTERRUPT_GEN( toypop_main_interrupt ) static WRITE8_HANDLER( toypop_sound_clear_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } static WRITE8_HANDLER( toypop_sound_assert_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } static WRITE8_HANDLER( toypop_m68000_clear_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, CLEAR_LINE); } static WRITE8_HANDLER( toypop_m68000_assert_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } static TIMER_CALLBACK( disable_interrupts ) { cpu_interrupt_enable(0,0); - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); cpu_interrupt_enable(1,0); - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); interrupt_enable_68k = 0; } @@ -229,7 +229,7 @@ static MACHINE_RESET( toypop ) static INTERRUPT_GEN( toypop_m68000_interrupt ) { if (interrupt_enable_68k) - cpunum_set_input_line(machine, 2, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } static WRITE16_HANDLER( toypop_m68000_interrupt_enable_w ) diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c index 1e4d141999a..b54891b4534 100644 --- a/src/mame/drivers/tp84.c +++ b/src/mame/drivers/tp84.c @@ -95,7 +95,7 @@ static READ8_HANDLER( tp84_sh_timer_r ) /* divided by 2048 to get this timer */ /* (divide by (2048/2), and not 1024, because the CPU cycle counter is */ /* incremented every other state change of the clock) */ - return (activecpu_gettotalcycles() / (2048/2)) & 0x0f; + return (cpu_get_total_cycles(machine->activecpu) / (2048/2)) & 0x0f; } @@ -128,7 +128,7 @@ static WRITE8_HANDLER( tp84_filter_w ) static WRITE8_HANDLER( tp84_sh_irqtrigger_w ) { - cpunum_set_input_line_and_vector(machine, 2,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[2],0,HOLD_LINE,0xff); } diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c index a08daa7aacf..bd70d7b0226 100644 --- a/src/mame/drivers/triplhnt.c +++ b/src/mame/drivers/triplhnt.c @@ -31,7 +31,7 @@ void triplhnt_set_collision(running_machine *machine, int code) { triplhnt_hit_code = code; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); } diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c index 2b1aef2cd56..43dadb0aaea 100644 --- a/src/mame/drivers/truco.c +++ b/src/mame/drivers/truco.c @@ -123,11 +123,11 @@ static INTERRUPT_GEN( truco_interrupt ) /* coinup */ static int trigger = 0; - if ( input_port_read(machine, "COIN") & 1 ) + if ( input_port_read(device->machine, "COIN") & 1 ) { if ( trigger == 0 ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, PULSE_LINE ); + cpu_set_input_line(device, M6809_IRQ_LINE, PULSE_LINE ); trigger++; } } else diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c index 877bc0af544..268b47a3b4c 100644 --- a/src/mame/drivers/trucocl.c +++ b/src/mame/drivers/trucocl.c @@ -53,7 +53,7 @@ static int cur_dac_address_index = 0; static TIMER_CALLBACK( dac_irq ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE ); } static WRITE8_HANDLER( audio_dac_w) @@ -130,7 +130,7 @@ GFXDECODE_END static INTERRUPT_GEN( trucocl_interrupt ) { - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } static MACHINE_DRIVER_START( trucocl ) diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c index 552053d36ab..4fa9e4c1bcd 100644 --- a/src/mame/drivers/trvmadns.c +++ b/src/mame/drivers/trvmadns.c @@ -185,7 +185,7 @@ static WRITE8_HANDLER( trvmadns_tileram_w ) { if(cpu_get_previouspc(machine->activecpu)==0x29e9)// || cpu_get_previouspc(machine->activecpu)==0x1b3f) //29f5 { - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); } // else // printf("%x \n", cpu_get_previouspc(machine->activecpu)); diff --git a/src/mame/drivers/trvquest.c b/src/mame/drivers/trvquest.c index 967ca48a1a1..7d6497fb43d 100644 --- a/src/mame/drivers/trvquest.c +++ b/src/mame/drivers/trvquest.c @@ -149,7 +149,7 @@ INPUT_PORTS_END static TIMER_CALLBACK( via_irq_delayed ) { - cpunum_set_input_line(machine, 0, 0, param); + cpu_set_input_line(machine->cpu[0], 0, param); } static void via_irq(running_machine *machine, int state) @@ -195,8 +195,8 @@ static MACHINE_RESET( trvquest ) static INTERRUPT_GEN( trvquest_interrupt ) { - via_2_ca1_w(machine,0,1); - via_2_ca1_w(machine,0,0); + via_2_ca1_w(device->machine,0,1); + via_2_ca1_w(device->machine,0,0); } static MACHINE_DRIVER_START( trvquest ) diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c index 6ade8da6542..1eaa249fd71 100644 --- a/src/mame/drivers/tryout.c +++ b/src/mame/drivers/tryout.c @@ -30,18 +30,18 @@ extern VIDEO_UPDATE( tryout ); static WRITE8_HANDLER( tryout_nmi_ack_w ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE ); } static WRITE8_HANDLER( tryout_sound_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, 0, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], 0, PULSE_LINE ); } static WRITE8_HANDLER( tryout_sound_irq_ack_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE ); } static WRITE8_HANDLER( tryout_bankswitch_w ) @@ -183,8 +183,8 @@ GFXDECODE_END static INTERRUPT_GEN( tryout_interrupt ) { - if ((input_port_read(machine, "SYSTEM") & 0x1c) != 0x1c) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + if ((input_port_read(device->machine, "SYSTEM") & 0x1c) != 0x1c) + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } static MACHINE_DRIVER_START( tryout ) diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c index 6c014cdb788..b8194d34369 100644 --- a/src/mame/drivers/tsamurai.c +++ b/src/mame/drivers/tsamurai.c @@ -73,7 +73,7 @@ static WRITE8_HANDLER( nmi_enable_w ){ } static INTERRUPT_GEN( samurai_interrupt ){ - if (nmi_enabled) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (nmi_enabled) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static READ8_HANDLER( unknown_d803_r ) @@ -104,19 +104,19 @@ static READ8_HANDLER( unknown_d938_r ) static WRITE8_HANDLER( sound_command1_w ) { sound_command1 = data; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE ); } static WRITE8_HANDLER( sound_command2_w ) { sound_command2 = data; - cpunum_set_input_line(machine, 2, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE ); } static WRITE8_HANDLER( sound_command3_w ) { sound_command3 = data; - cpunum_set_input_line(machine, 3, 0, HOLD_LINE ); + cpu_set_input_line(machine->cpu[3], 0, HOLD_LINE ); } static WRITE8_HANDLER( flip_screen_w ) @@ -356,7 +356,7 @@ static WRITE8_HANDLER( vsgongf_sound_nmi_enable_w ){ } static INTERRUPT_GEN( vsgongf_sound_interrupt ){ - if (vsgongf_sound_nmi_enabled) cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + if (vsgongf_sound_nmi_enabled) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } /* what are these, protection of some kind? */ @@ -383,7 +383,7 @@ static READ8_HANDLER( vsgongf_a100_r ){ static WRITE8_HANDLER( vsgongf_sound_command_w ){ soundlatch_w( machine, offset, data ); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } static ADDRESS_MAP_START( readmem_vsgongf, ADDRESS_SPACE_PROGRAM, 8 ) diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c index 793240a13be..18f0d01932e 100644 --- a/src/mame/drivers/ttchamp.c +++ b/src/mame/drivers/ttchamp.c @@ -218,7 +218,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( ttchamp_irq ) /* right? */ { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } static MACHINE_DRIVER_START( ttchamp ) diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c index 06f8cabbc3a..d94803ad3df 100644 --- a/src/mame/drivers/tubep.c +++ b/src/mame/drivers/tubep.c @@ -167,7 +167,7 @@ ADDRESS_MAP_END static WRITE8_HANDLER( main_cpu_irq_line_clear_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); logerror("CPU#0 VBLANK int clear at scanline=%3i\n", curr_scanline); return; } @@ -203,7 +203,7 @@ ADDRESS_MAP_END static WRITE8_HANDLER( second_cpu_irq_line_clear_w ) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); logerror("CPU#1 VBLANK int clear at scanline=%3i\n", curr_scanline); return; } @@ -238,7 +238,7 @@ static READ8_HANDLER( tubep_soundlatch_r ) static READ8_HANDLER( tubep_sound_irq_ack ) { - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); return 0; } @@ -281,7 +281,7 @@ curr_scanline = scanline;//for debugging if (scanline==240) { logerror("VBLANK CPU#0\n"); - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } @@ -290,7 +290,7 @@ curr_scanline = scanline;//for debugging if (scanline==16) { logerror("/VBLANK CPU#1\n"); - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } @@ -300,14 +300,14 @@ curr_scanline = scanline;//for debugging { logerror("/nmi CPU#3\n"); tubep_vblank_end(); /* switch buffered sprite RAM page */ - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, ASSERT_LINE); } /* CPU #3 MS2010-A NMI */ /* deactivates at the start of VBLANK signal which happens at the beginning of scanline number 240*/ if (scanline==240) { logerror("CPU#3 nmi clear\n"); - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, CLEAR_LINE); } @@ -315,7 +315,7 @@ curr_scanline = scanline;//for debugging /* activates whenever line V6 from video part goes lo->hi that is when the scanline becomes 64 and 192 */ if ((scanline==64) || (scanline==192)) { - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); /* sound cpu interrupt (music tempo) */ + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); /* sound cpu interrupt (music tempo) */ } @@ -408,7 +408,7 @@ static WRITE8_HANDLER( rjammer_LS259_w ) static WRITE8_HANDLER( rjammer_soundlatch_w ) { sound_latch = data; - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } @@ -463,7 +463,7 @@ curr_scanline = scanline;//for debugging if (scanline==240) { logerror("VBLANK CPU#0\n"); - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } @@ -472,7 +472,7 @@ curr_scanline = scanline;//for debugging if (scanline==16) { logerror("/VBLANK CPU#1\n"); - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } @@ -482,14 +482,14 @@ curr_scanline = scanline;//for debugging { logerror("/nmi CPU#3\n"); tubep_vblank_end(); /* switch buffered sprite RAM page */ - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, ASSERT_LINE); } /* CPU #3 MS2010-A NMI */ /* deactivates at the start of VBLANK signal which happens at the beginning of scanline number 240*/ if (scanline==240) { logerror("CPU#3 nmi clear\n"); - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, CLEAR_LINE); } @@ -497,7 +497,7 @@ curr_scanline = scanline;//for debugging /* activates whenever line V6 from video part goes lo->hi that is when the scanline becomes 64 and 192 */ if ((scanline==64) || (scanline==192)) { - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); /* sound cpu interrupt (music tempo) */ + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); /* sound cpu interrupt (music tempo) */ } @@ -571,7 +571,7 @@ static void rjammer_adpcm_vck (running_machine *machine, int data) if (ls74==1) { msm5205_data_w(0, (ls377>>0) & 15 ); - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[2], 0, ASSERT_LINE ); } else { @@ -593,7 +593,7 @@ static WRITE8_HANDLER( rjammer_voice_input_w ) I do it here because this port (0x80) is first one accessed in the interrupt routine. */ - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE ); return; } diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c index 979c0683f9e..4cf36a03f8b 100644 --- a/src/mame/drivers/tugboat.c +++ b/src/mame/drivers/tugboat.c @@ -167,7 +167,7 @@ static const pia6821_interface pia1_intf = static TIMER_CALLBACK( interrupt_gen ) { - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); timer_set(video_screen_get_frame_period(machine->primary_screen), NULL, 0, interrupt_gen); } diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c index 7ee99e30572..29034c9cc5d 100644 --- a/src/mame/drivers/tumbleb.c +++ b/src/mame/drivers/tumbleb.c @@ -350,14 +350,14 @@ static READ16_HANDLER( tumblepb_prot_r ) static WRITE16_HANDLER( tumblepb_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } #endif static WRITE16_HANDLER( jumppop_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE ); } /******************************************************************************/ @@ -471,8 +471,8 @@ static void tumbleb2_playmusic(running_machine *machine) static INTERRUPT_GEN( tumbleb2_interrupt ) { - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); - tumbleb2_playmusic(machine); + cpu_set_input_line(device, 6, HOLD_LINE); + tumbleb2_playmusic(device->machine); } static const int tumbleb_sound_lookup[256] = { @@ -750,7 +750,7 @@ ADDRESS_MAP_END static WRITE16_HANDLER( jumpkids_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } @@ -804,8 +804,8 @@ static WRITE16_HANDLER( semicom_soundcmd_w ) { soundlatch_w(machine,0,data & 0xff); // needed for Super Trio which reads the sound with polling -// cpu_spinuntil_time(ATTOTIME_IN_USEC(100)); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); +// cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); } } @@ -840,7 +840,7 @@ ADDRESS_MAP_END static READ8_HANDLER(jumppop_z80latch_r) { - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); return soundlatch_r(machine, 0); } @@ -2127,7 +2127,7 @@ MACHINE_DRIVER_END static void semicom_irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c index b0067a0d530..a2d4b39a1c3 100644 --- a/src/mame/drivers/tumblep.c +++ b/src/mame/drivers/tumblep.c @@ -72,14 +72,14 @@ static READ16_HANDLER( tumblep_prot_r ) static WRITE16_HANDLER( tumblep_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } #ifdef UNUSED_FUNCTION static WRITE16_HANDLER( jumppop_sound_w ) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE ); } #endif @@ -287,7 +287,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c index a323d73c2ce..4c7e9aecf9c 100644 --- a/src/mame/drivers/turbo.c +++ b/src/mame/drivers/turbo.c @@ -402,7 +402,7 @@ static WRITE8_DEVICE_HANDLER( buckrog_ppi0c_w ) /* bit 7 = /INT on the 2nd CPU */ turbo_state *state = device->machine->driver_data; state->buckrog_fchg = data & 0x07; - cpunum_set_input_line(device->machine, 1, 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/drivers/turbosub.c b/src/mame/drivers/turbosub.c index cd8d4a94629..5ceea2264ee 100644 --- a/src/mame/drivers/turbosub.c +++ b/src/mame/drivers/turbosub.c @@ -125,8 +125,8 @@ static WRITE8_HANDLER( G_STATUS_W ) bankaddress = 0x10000 + (data & 0x03) * 0x10000; memory_set_bankptr(1,&ROM[bankaddress]); - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, (data&0x80) ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, (data&0x80) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, (data&0x80) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, (data&0x80) ? ASSERT_LINE : CLEAR_LINE); } /* diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c index 736ec33ee41..9eb90b90c67 100644 --- a/src/mame/drivers/tutankhm.c +++ b/src/mame/drivers/tutankhm.c @@ -35,7 +35,7 @@ static INTERRUPT_GEN( tutankhm_interrupt ) /* flip flops cause the interrupt to be signalled every other frame */ irq_toggle ^= 1; if (irq_toggle && irq_enable) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } @@ -43,7 +43,7 @@ static WRITE8_HANDLER( irq_enable_w ) { irq_enable = data & 1; if (!irq_enable) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c index 6c8c61235e2..f065d8ca634 100644 --- a/src/mame/drivers/twin16.c +++ b/src/mame/drivers/twin16.c @@ -157,13 +157,13 @@ static WRITE16_HANDLER( twin16_CPUA_register_w ) if( twin16_CPUA_register!=old ) { if( (old&0x08)==0 && (twin16_CPUA_register&0x08) ) - cpunum_set_input_line_and_vector(machine, CPU_SOUND, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[CPU_SOUND], 0, HOLD_LINE, 0xff ); if( (old&0x40) && (twin16_CPUA_register&0x40)==0 ) twin16_spriteram_process(); if( (old&0x10)==0 && (twin16_CPUA_register&0x10) ) - cpunum_set_input_line(machine, CPU_B, MC68000_IRQ_6, HOLD_LINE ); + cpu_set_input_line(machine->cpu[CPU_B], MC68000_IRQ_6, HOLD_LINE ); coin_counter_w( 0, twin16_CPUA_register&0x01 ); coin_counter_w( 1, twin16_CPUA_register&0x02 ); @@ -185,7 +185,7 @@ static WRITE16_HANDLER( twin16_CPUB_register_w ) { if( (old&0x01)==0 && (twin16_CPUB_register&0x1) ) { - cpunum_set_input_line(machine, CPU_A, MC68000_IRQ_6, HOLD_LINE ); + cpu_set_input_line(machine->cpu[CPU_A], MC68000_IRQ_6, HOLD_LINE ); } } } @@ -197,7 +197,7 @@ static WRITE16_HANDLER( fround_CPU_register_w ) if( twin16_CPUA_register!=old ) { if( (old&0x08)==0 && (twin16_CPUA_register&0x08) ) - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); // trigger IRQ on sound CPU + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); // trigger IRQ on sound CPU } } @@ -882,12 +882,12 @@ static const k007232_interface k007232_config = static INTERRUPT_GEN( CPUA_interrupt ) { - if (CPUA_IRQ_ENABLE) cpunum_set_input_line(machine, cpunum, 5, HOLD_LINE); + if (CPUA_IRQ_ENABLE) cpu_set_input_line(device, 5, HOLD_LINE); } static INTERRUPT_GEN( CPUB_interrupt ) { - if (CPUB_IRQ_ENABLE) cpunum_set_input_line(machine, cpunum, 5, HOLD_LINE); + if (CPUB_IRQ_ENABLE) cpu_set_input_line(device, 5, HOLD_LINE); } /* Machine Drivers */ diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c index 92dfe42a8a8..b8f2f998a59 100644 --- a/src/mame/drivers/twincobr.c +++ b/src/mame/drivers/twincobr.c @@ -690,7 +690,7 @@ GFXDECODE_END /* handler called by the 3812 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 6829c3a7764..b3fb86c6d51 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -70,29 +70,29 @@ static UINT32 ts; /* Main CPU and Z80 synchronisation */ static WRITE16_HANDLER( z80_busreq_w ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, (data & 1) ? CLEAR_LINE : ASSERT_LINE); } static WRITE16_HANDLER( resume_math_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_TEST, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_TEST, ASSERT_LINE); } static WRITE16_HANDLER( halt_math_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_TEST, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_TEST, CLEAR_LINE); } /* Z80 can trigger its own interrupts */ static WRITE8_HANDLER( z80_intreq_w ) { - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE); } /* Periodic Z80 interrupt */ static INTERRUPT_GEN( z80_irq ) { - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static READ16_HANDLER( z80_shared_r ) diff --git a/src/mame/drivers/uapce.c b/src/mame/drivers/uapce.c index 1199d1d5c07..2a9be920254 100644 --- a/src/mame/drivers/uapce.c +++ b/src/mame/drivers/uapce.c @@ -41,7 +41,7 @@ static WRITE8_HANDLER( jamma_if_control_latch_w ) if ( diff & 0x40 ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_RESET, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_RESET, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); } // bit 3 - enable 752 Hz (D-3) square wave output diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c index 5e0c00f26a1..3269ea62534 100644 --- a/src/mame/drivers/ultraman.c +++ b/src/mame/drivers/ultraman.c @@ -104,7 +104,7 @@ static WRITE16_HANDLER( sound_cmd_w ) static WRITE16_HANDLER( sound_irq_trigger_w ) { if (ACCESSING_BITS_0_7) - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 1b1e81c4918..6c9e31db44f 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -55,7 +55,7 @@ static TIMER_CALLBACK( nmi_callback ) watchdog_enable(machine, input_port_read(machine, "IN0") & 0x40); if (input_port_read(machine, "IN0") & 0x40) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); timer_set(video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, nmi_callback); } diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c index 1076b5b5477..2d9fdc45096 100644 --- a/src/mame/drivers/ultrsprt.c +++ b/src/mame/drivers/ultrsprt.c @@ -75,7 +75,7 @@ static CUSTOM_INPUT( analog_ctrl_r ) static WRITE32_HANDLER( int_ack_w ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); } static MACHINE_START( ultrsprt ) @@ -228,7 +228,7 @@ static NVRAM_HANDLER(ultrsprt) static INTERRUPT_GEN( ultrsprt_vblank ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_IRQ1, ASSERT_LINE); } @@ -270,14 +270,14 @@ MACHINE_DRIVER_END static void sound_irq_callback(running_machine *machine, int irq) { if (irq == 0) - /*cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ5, PULSE_LINE)*/; + /*cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ5, PULSE_LINE)*/; else - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ6, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ6, PULSE_LINE); } static DRIVER_INIT( ultrsprt ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); K056800_init(sound_irq_callback); } diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c index b9b95cd0225..692a00ba9ed 100644 --- a/src/mame/drivers/undrfire.c +++ b/src/mame/drivers/undrfire.c @@ -236,7 +236,7 @@ static WRITE32_HANDLER( color_ram_w ) static TIMER_CALLBACK( interrupt5 ) { - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 5, HOLD_LINE); } @@ -470,7 +470,7 @@ static WRITE32_HANDLER( cbombers_cpua_ctrl_w ) ........ .x...... Vibration */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x1000) ? CLEAR_LINE : ASSERT_LINE); } static READ32_HANDLER( cbombers_adc_r ) @@ -726,7 +726,7 @@ static MACHINE_RESET( undrfire ) static INTERRUPT_GEN( undrfire_interrupt ) { frame_counter^=1; - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } static MACHINE_DRIVER_START( undrfire ) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 38456b26589..3c492fd9114 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -1150,9 +1150,9 @@ static READ16_HANDLER( vamphalf_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0x82de) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0x4a6d0/2)+offset]; @@ -1163,9 +1163,9 @@ static READ16_HANDLER( misncrft_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0xecc8) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0x72eb4/2)+offset]; @@ -1176,9 +1176,9 @@ static READ16_HANDLER( coolmini_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0x75f7a) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0xd2e80/2)+offset]; @@ -1189,9 +1189,9 @@ static READ16_HANDLER( suplup_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0xaf18a ) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0x11605c/2)+offset]; @@ -1202,9 +1202,9 @@ static READ16_HANDLER( luplup_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0xaefac ) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0x115e84/2)+offset]; @@ -1215,9 +1215,9 @@ static READ16_HANDLER( luplup29_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0xae6c0 ) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0x113f08/2)+offset]; @@ -1228,9 +1228,9 @@ static READ16_HANDLER( puzlbang_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0xae6d2 ) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0x113ecc/2)+offset]; @@ -1241,9 +1241,9 @@ static READ32_HANDLER( wyvernwg_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0x10758 ) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram32[0x00b56fc/4]; @@ -1254,9 +1254,9 @@ static READ32_HANDLER( finalgdr_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0x1c212 ) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram32[0x005e874/4]; @@ -1267,9 +1267,9 @@ static READ16_HANDLER( dquizgo2_speedup_r ) if(cpu_get_pc(machine->activecpu) == 0xaa622) { if(irq_active(machine)) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); else - activecpu_eat_cycles(50); + cpu_eat_cycles(machine->activecpu, 50); } return wram[(0xcde70/2)+offset]; diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c index 95ca83dd3ec..9061b97872f 100644 --- a/src/mame/drivers/vaportra.c +++ b/src/mame/drivers/vaportra.c @@ -29,7 +29,7 @@ static WRITE16_HANDLER( vaportra_sound_w ) /* Force synchronisation between CPUs with fake timer */ timer_call_after_resynch(NULL, 0, NULL); soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],0,ASSERT_LINE); } static READ16_HANDLER( vaportra_control_r ) @@ -74,7 +74,7 @@ ADDRESS_MAP_END static READ8_HANDLER( vaportra_soundlatch_r ) { - cpunum_set_input_line(machine, 1,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,CLEAR_LINE); return soundlatch_r(machine, offset); } @@ -229,7 +229,7 @@ GFXDECODE_END static void sound_irq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1,1,state); /* IRQ 2 */ + cpu_set_input_line(machine->cpu[1],1,state); /* IRQ 2 */ } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c index 9a63c05b365..26b3ea47eee 100644 --- a/src/mame/drivers/vastar.c +++ b/src/mame/drivers/vastar.c @@ -85,16 +85,16 @@ static UINT8 *vastar_sharedram; static MACHINE_RESET( vastar ) { /* we must start with the second CPU halted */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } static WRITE8_HANDLER( vastar_hold_cpu2_w ) { /* I'm not sure that this works exactly like this */ if (data & 1) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } static READ8_HANDLER( vastar_sharedram_r ) diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index 6cdad70f566..b5dda571caa 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -122,7 +122,7 @@ static WRITE8_HANDLER( vb_bankswitch_w ) static WRITE8_HANDLER( cpu_sound_command_w ) { soundlatch_w( machine, offset, data ); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } @@ -371,7 +371,7 @@ GFXDECODE_END static void vball_irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0 , irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c index b73a3f2a22d..d79da8251e1 100644 --- a/src/mame/drivers/vegas.c +++ b/src/mame/drivers/vegas.c @@ -933,12 +933,12 @@ static void update_nile_irqs(running_machine *machine) if (irq[i]) { if (LOG_NILE_IRQS) logerror(" 1"); - cpunum_set_input_line(machine, 0, MIPS3_IRQ0 + i, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], MIPS3_IRQ0 + i, ASSERT_LINE); } else { if (LOG_NILE_IRQS) logerror(" 0"); - cpunum_set_input_line(machine, 0, MIPS3_IRQ0 + i, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], MIPS3_IRQ0 + i, CLEAR_LINE); } } if (LOG_NILE_IRQS) logerror("\n"); @@ -1459,7 +1459,7 @@ static WRITE32_HANDLER( analog_port_w ) static WRITE32_HANDLER( vegas_watchdog_w ) { - activecpu_eat_cycles(100); + cpu_eat_cycles(machine->activecpu, 100); } diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c index 4d46cfbe067..b3bf6dc562f 100644 --- a/src/mame/drivers/vendetta.c +++ b/src/mame/drivers/vendetta.c @@ -233,24 +233,24 @@ static WRITE8_HANDLER( vendetta_5fe0_w ) static TIMER_CALLBACK( z80_nmi_callback ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE ); } static WRITE8_HANDLER( z80_arm_nmi_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE ); timer_set( ATTOTIME_IN_USEC( 25 ), NULL, 0, z80_nmi_callback ); } static WRITE8_HANDLER( z80_irq_w ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); } static READ8_HANDLER( vendetta_sound_interrupt_r ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); return 0x00; } @@ -517,7 +517,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( vendetta_irq ) { if (irq_enabled) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } static MACHINE_DRIVER_START( vendetta ) diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c index 66cd01c27f0..42dfa9e918b 100644 --- a/src/mame/drivers/vicdual.c +++ b/src/mame/drivers/vicdual.c @@ -95,7 +95,7 @@ static INPUT_CHANGED( coin_changed ) coin_counter_w(0, 1); coin_counter_w(0, 0); - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_RESET, PULSE_LINE); /* simulate the coin switch being closed for a while */ timer_set(double_to_attotime(4 * attotime_to_double(video_screen_get_frame_period(field->port->machine->primary_screen))), NULL, 0, clear_coin_status); diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c index 3857465697a..0530264940e 100644 --- a/src/mame/drivers/videopin.c +++ b/src/mame/drivers/videopin.c @@ -36,7 +36,7 @@ static void update_plunger(running_machine *machine) time_released = timer_get_time(); if (!mask) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); } else time_pushed = timer_get_time(); @@ -52,7 +52,7 @@ static TIMER_CALLBACK( interrupt_callback ) update_plunger(machine); - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); scanline = scanline + 32; @@ -131,7 +131,7 @@ static WRITE8_HANDLER( videopin_led_w ) if (i == 7) set_led_status(0, data & 8); /* start button */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -149,7 +149,7 @@ static WRITE8_HANDLER( videopin_out1_w ) mask = ~data & 0x10; if (mask) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); coin_lockout_global_w(~data & 0x08); diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c index e53b2c54491..f5ba1e0cddd 100644 --- a/src/mame/drivers/videopkr.c +++ b/src/mame/drivers/videopkr.c @@ -863,7 +863,7 @@ static TIMER_CALLBACK(sound_t1_callback) if (dc_40103 == 0) { - cpunum_set_input_line(machine, 1, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, ASSERT_LINE); } } } diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c index 176c33f23a0..f93b5d02867 100644 --- a/src/mame/drivers/vindictr.c +++ b/src/mame/drivers/vindictr.c @@ -32,8 +32,8 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, atarigen_scanline_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c index 817c415ecf7..cf4630bd4e5 100644 --- a/src/mame/drivers/volfied.c +++ b/src/mame/drivers/volfied.c @@ -210,7 +210,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c index 82d28f6e2f5..5e93224313b 100644 --- a/src/mame/drivers/vulgus.c +++ b/src/mame/drivers/vulgus.c @@ -60,10 +60,10 @@ VIDEO_UPDATE( vulgus ); static INTERRUPT_GEN( vulgus_interrupt ) { - if (cpu_getiloops() != 0) - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xcf); /* RST 08h */ + if (cpu_getiloops(device) != 0) + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf); /* RST 08h */ else - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ + cpu_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h - vblank */ } diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c index 8d5052d1be4..c4f910337ff 100644 --- a/src/mame/drivers/wardner.c +++ b/src/mame/drivers/wardner.c @@ -413,7 +413,7 @@ static const gfx_layout spritelayout = /* handler called by the 3812 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int linestate) { - cpunum_set_input_line(machine, 1,0,linestate); + cpu_set_input_line(machine->cpu[1],0,linestate); } static const ym3812_interface ym3812_config = diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c index 00a032fcce2..6a72c996062 100644 --- a/src/mame/drivers/warpwarp.c +++ b/src/mame/drivers/warpwarp.c @@ -290,7 +290,7 @@ static WRITE8_HANDLER( warpwarp_out3_w ) warpwarp_ball_on = data & 1; cpu_interrupt_enable(0,data & 1); if (~data & 1) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; case 7: flip_screen_set(data & 1); diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index 2da38d63baa..e978c0a5cf0 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -402,7 +402,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c index ed4d2fb7bf3..9bf194068c3 100644 --- a/src/mame/drivers/wc90.c +++ b/src/mame/drivers/wc90.c @@ -92,7 +92,7 @@ static WRITE8_HANDLER( wc90_bankswitch1_w ) static WRITE8_HANDLER( wc90_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); } @@ -285,7 +285,7 @@ GFXDECODE_END /* handler called by the 2608 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2608_interface ym2608_config = diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c index cdd2ecc68c6..a38801f89c1 100644 --- a/src/mame/drivers/wc90b.c +++ b/src/mame/drivers/wc90b.c @@ -141,7 +141,7 @@ static WRITE8_HANDLER( wc90b_bankswitch1_w ) static WRITE8_HANDLER( wc90b_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 2,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[2],0,HOLD_LINE); } static WRITE8_HANDLER( adpcm_control_w ) @@ -349,7 +349,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = @@ -371,7 +371,7 @@ static void adpcm_int(running_machine *machine, int data) toggle ^= 1; if(toggle) - cpunum_set_input_line(machine, 2, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c index 3733419cd65..7c1a4c6664b 100644 --- a/src/mame/drivers/wecleman.c +++ b/src/mame/drivers/wecleman.c @@ -372,11 +372,11 @@ static WRITE16_HANDLER( irqctrl_w ) // Bit 0 : SUBINT if ( (wecleman_irqctrl & 1) && (!(data & 1)) ) // 1->0 transition - cpunum_set_input_line(machine, 1,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],4,HOLD_LINE); // Bit 1 : NSUBRST - if (data & 2) cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE ); - else cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE ); + if (data & 2) cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE ); + else cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE ); // Bit 2 : SOUND-ON // Bit 3 : SOUNDRST @@ -652,7 +652,7 @@ WRITE16_HANDLER( wecleman_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xFF); - cpunum_set_input_line(machine, 2,0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2],0, HOLD_LINE); } } @@ -713,7 +713,7 @@ static WRITE16_HANDLER( hotchase_soundlatch_w ) if (ACCESSING_BITS_0_7) { soundlatch_w(machine,0,data & 0xFF); - cpunum_set_input_line(machine, 2,M6809_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[2],M6809_IRQ_LINE, HOLD_LINE); } } @@ -1064,10 +1064,10 @@ GFXDECODE_END static INTERRUPT_GEN( wecleman_interrupt ) { - if (cpu_getiloops() == 0) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); /* once */ + if (cpu_getiloops(device) == 0) + cpu_set_input_line(device, 4, HOLD_LINE); /* once */ else - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); /* to read input ports */ + cpu_set_input_line(device, 5, HOLD_LINE); /* to read input ports */ } static MACHINE_RESET( wecleman ) @@ -1127,7 +1127,7 @@ MACHINE_DRIVER_END static INTERRUPT_GEN( hotchase_sound_timer ) { - cpunum_set_input_line(machine, 2, M6809_FIRQ_LINE, PULSE_LINE ); + cpu_set_input_line(device, M6809_FIRQ_LINE, PULSE_LINE ); } static MACHINE_DRIVER_START( hotchase ) diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index 1d00834c6a4..80388c28262 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -347,7 +347,7 @@ static WRITE16_HANDLER( sound_command_w ) { pending_command = 1; soundlatch_w(machine, 0, data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } @@ -689,7 +689,7 @@ GFXDECODE_END static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0, irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c index dddb317fa89..50f7d842824 100644 --- a/src/mame/drivers/wgp.c +++ b/src/mame/drivers/wgp.c @@ -437,7 +437,7 @@ static void parse_control(running_machine *machine) /* bit 0 enables cpu B */ /* however this fails when recovering from a save state if cpu B is disabled !! */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE); /* bit 1 is "vibration" acc. to test mode */ } @@ -463,20 +463,20 @@ static WRITE16_HANDLER( cpua_ctrl_w ) /* assumes Z80 sandwiched between 68Ks */ #ifdef UNUSED_FUNCTION static TIMER_CALLBACK( wgp_interrupt4 ) { - cpunum_set_input_line(machine, 0,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],4,HOLD_LINE); } #endif static TIMER_CALLBACK( wgp_interrupt6 ) { - cpunum_set_input_line(machine, 0,6,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],6,HOLD_LINE); } /* 68000 B */ static TIMER_CALLBACK( wgp_cpub_interrupt6 ) { - cpunum_set_input_line(machine, 2,6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ + cpu_set_input_line(machine->cpu[2],6,HOLD_LINE); /* assumes Z80 sandwiched between the 68Ks */ } @@ -489,7 +489,7 @@ static TIMER_CALLBACK( wgp_cpub_interrupt6 ) static INTERRUPT_GEN( wgp_cpub_interrupt ) { timer_set(ATTOTIME_IN_CYCLES(200000-500,0), NULL, 0, wgp_cpub_interrupt6); - cpunum_set_input_line(machine, 2, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } @@ -915,7 +915,7 @@ GFXDECODE_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) // assumes Z80 sandwiched between 68Ks { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c index ae5092e4959..bc4b822d8d3 100644 --- a/src/mame/drivers/wheelfir.c +++ b/src/mame/drivers/wheelfir.c @@ -575,7 +575,7 @@ static TIMER_CALLBACK( scanline_timer_callback ) if (scanline_counter!=(total_scanlines-1)) { scanline_counter++; - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); // raster IRQ, changes scroll values for road + cpu_set_input_line(machine->cpu[0], 5, HOLD_LINE); // raster IRQ, changes scroll values for road timer_adjust_oneshot(scanline_timer, attotime_div(ATTOTIME_IN_HZ(60), total_scanlines), 0); if (scanline_counter<256) @@ -585,7 +585,7 @@ static TIMER_CALLBACK( scanline_timer_callback ) if (scanline_counter==256) { - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); // vblank IRQ? + cpu_set_input_line(machine->cpu[0], 3, HOLD_LINE); // vblank IRQ? toggle_bit = 0x8000; // must toggle.. } @@ -623,7 +623,7 @@ static MACHINE_RESET(wheelfir) static INTERRUPT_GEN( wheelfir_irq ) { // we seem to need this interrupt at least once for every object drawn on the screen, otherwise things flicker + slowdown - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); // blitter IRQ? + cpu_set_input_line(device, 1, HOLD_LINE); // blitter IRQ? } diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c index 223d159f920..e71122743fd 100644 --- a/src/mame/drivers/wink.c +++ b/src/mame/drivers/wink.c @@ -55,7 +55,7 @@ static READ8_HANDLER( player_inputs_r ) static WRITE8_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); //sync with sound cpu (but it still loses some soundlatches...) //timer_call_after_resynch(NULL, 0, NULL); } diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c index deddc65e351..1a915df19e0 100644 --- a/src/mame/drivers/wiping.c +++ b/src/mame/drivers/wiping.c @@ -86,9 +86,9 @@ static READ8_HANDLER( ports_r ) static WRITE8_HANDLER( subcpu_reset_w ) { if (data & 1) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c index 5ae136390d9..0c27f5d5078 100644 --- a/src/mame/drivers/witch.c +++ b/src/mame/drivers/witch.c @@ -365,7 +365,7 @@ static WRITE8_HANDLER(write_a00x) break; case 0x08: //A008 - cpunum_set_input_line(machine, cpunum_get_active(),0,CLEAR_LINE); + cpu_set_input_line(machine->activecpu,0,CLEAR_LINE); break; } } @@ -758,12 +758,12 @@ static VIDEO_UPDATE(witch) static INTERRUPT_GEN( witch_main_interrupt ) { - cpunum_set_input_line(machine, 0,0,ASSERT_LINE); + cpu_set_input_line(device,0,ASSERT_LINE); } static INTERRUPT_GEN( witch_sub_interrupt ) { - cpunum_set_input_line(machine, 1,0,ASSERT_LINE); + cpu_set_input_line(device,0,ASSERT_LINE); } static MACHINE_DRIVER_START( witch ) diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index 2a6b14e8eca..1a0825c57f0 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -34,7 +34,7 @@ static TIMER_CALLBACK( periodic_callback ) { int scanline = param; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); scanline += 64; diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c index 1baf20e3d2a..2dfbd920ab0 100644 --- a/src/mame/drivers/wwfsstar.c +++ b/src/mame/drivers/wwfsstar.c @@ -217,7 +217,7 @@ static WRITE16_HANDLER ( wwfsstar_scrollwrite ) static WRITE16_HANDLER ( wwfsstar_soundwrite ) { soundlatch_w(machine,1,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } static WRITE16_HANDLER( wwfsstar_flipscreen_w ) @@ -228,10 +228,10 @@ static WRITE16_HANDLER( wwfsstar_flipscreen_w ) static WRITE16_HANDLER( wwfsstar_irqack_w ) { if(offset == 0) - cpunum_set_input_line(machine, 0, 6, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, CLEAR_LINE); else - cpunum_set_input_line(machine, 0, 5, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, CLEAR_LINE); } /* @@ -249,7 +249,7 @@ static WRITE16_HANDLER( wwfsstar_irqack_w ) static INTERRUPT_GEN( wwfsstars_interrupt ) { - int scanline = 271 - cpu_getiloops(); + int scanline = 271 - cpu_getiloops(device); /* Vblank is lowered on scanline 0 (8) */ if (scanline == 0) @@ -264,15 +264,15 @@ static INTERRUPT_GEN( wwfsstars_interrupt ) /* Vblank is raised on scanline 240 (248) */ else if (scanline==240) { - video_screen_update_partial(machine->primary_screen, scanline); - cpunum_set_input_line(machine, 0, 6, ASSERT_LINE); + video_screen_update_partial(device->machine->primary_screen, scanline); + cpu_set_input_line(device, 6, ASSERT_LINE); } /* An interrupt is generated every 16 scanlines */ if (scanline%16 == 0) { - video_screen_update_partial(machine->primary_screen, scanline); - cpunum_set_input_line(machine, 0, 5, ASSERT_LINE); + video_screen_update_partial(device->machine->primary_screen, scanline); + cpu_set_input_line(device, 5, ASSERT_LINE); } } @@ -417,7 +417,7 @@ GFXDECODE_END static void wwfsstar_ymirq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0 , irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c index 624646b25b8..0d876894c79 100644 --- a/src/mame/drivers/wwfwfest.c +++ b/src/mame/drivers/wwfwfest.c @@ -154,7 +154,7 @@ static WRITE8_HANDLER( oki_bankswitch_w ) static WRITE16_HANDLER ( wwfwfest_soundwrite ) { soundlatch_w(machine,1,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); } /******************************************************************************* @@ -332,10 +332,10 @@ GFXDECODE_END *******************************************************************************/ static INTERRUPT_GEN( wwfwfest_interrupt ) { - if( cpu_getiloops() == 0 ) - cpunum_set_input_line(machine, 0, 3, HOLD_LINE); + if( cpu_getiloops(device) == 0 ) + cpu_set_input_line(device, 3, HOLD_LINE); else - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } /******************************************************************************* @@ -346,7 +346,7 @@ static INTERRUPT_GEN( wwfwfest_interrupt ) { static void dd3_ymirq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1, 0 , irq ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[1], 0 , irq ? ASSERT_LINE : CLEAR_LINE ); } static const ym2151_interface ym2151_config = diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index ab46ef17065..e6116d5e6bc 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -175,7 +175,7 @@ static WRITE8_HANDLER( xain_sharedram_w ) /* so let's resync every time they are changed to avoid deadlocks */ if ((offset == 0x003d || offset == 0x003e) && xain_sharedram[offset] != data) - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); xain_sharedram[offset] = data; } @@ -200,7 +200,7 @@ static WRITE8_HANDLER( xainCPUB_bankswitch_w ) static WRITE8_HANDLER( xain_sound_command_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line(machine, 2,M6809_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[2],M6809_IRQ_LINE,HOLD_LINE); } static WRITE8_HANDLER( xain_main_irq_w ) @@ -208,28 +208,28 @@ static WRITE8_HANDLER( xain_main_irq_w ) switch (offset) { case 0: /* 0x3a09 - NMI clear */ - cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],INPUT_LINE_NMI,CLEAR_LINE); break; case 1: /* 0x3a0a - FIRQ clear */ - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,CLEAR_LINE); break; case 2: /* 0x3a0b - IRQ clear */ - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,CLEAR_LINE); break; case 3: /* 0x3a0c - IRQB assert */ - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,ASSERT_LINE); break; } } static WRITE8_HANDLER( xain_irqA_assert_w ) { - cpunum_set_input_line(machine, 0,M6809_IRQ_LINE,ASSERT_LINE); + cpu_set_input_line(machine->cpu[0],M6809_IRQ_LINE,ASSERT_LINE); } static WRITE8_HANDLER( xain_irqB_clear_w ) { - cpunum_set_input_line(machine, 1,M6809_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],M6809_IRQ_LINE,CLEAR_LINE); } static READ8_HANDLER( xain_68705_r ) @@ -250,15 +250,15 @@ static CUSTOM_INPUT( xain_vblank_r ) static INTERRUPT_GEN( xain_interrupt ) { - int scanline = 255 - cpu_getiloops(); + int scanline = 255 - cpu_getiloops(device); /* FIRQ (IMS) fires every on every 8th scanline (except 0) */ if (scanline & 0x08) - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, ASSERT_LINE); /* NMI fires on scanline 248 (VBL) and is latched */ if (scanline == 248) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); /* VBLANK input bit is held high from scanlines 248-255 */ if (scanline >= 248-1) // -1 is a hack - see notes above @@ -434,7 +434,7 @@ GFXDECODE_END /* handler called by the 2203 emulator when the internal timers cause an IRQ */ static void irqhandler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 2,M6809_FIRQ_LINE,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],M6809_FIRQ_LINE,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2203_interface ym2203_config = diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index 310117bab87..ba95a0ea1ac 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -191,7 +191,7 @@ static READ16_HANDLER( xexex_waitskip_r ) { if (cpu_get_pc(machine->activecpu) == 0x1158) { - cpu_spinuntil_trigger(resume_trigger); + cpu_spinuntil_trigger(machine->activecpu, resume_trigger); suspension_active = 1; } @@ -271,7 +271,7 @@ static WRITE16_HANDLER( sound_cmd2_w ) static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } static READ16_HANDLER( sound_status_r ) @@ -303,31 +303,31 @@ static TIMER_CALLBACK( dmaend_callback ) if (cur_control2 & 0x0040) { // foul-proof (CPU0 could be deactivated while we wait) - if (suspension_active) { suspension_active = 0; cpu_trigger(machine, resume_trigger); } + if (suspension_active) { suspension_active = 0; cpuexec_trigger(machine, resume_trigger); } // IRQ 5 is the "object DMA end interrupt" and shouldn't be triggered // if object data isn't ready for DMA within the frame. - cpunum_set_input_line(machine, 0, 5, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 5, HOLD_LINE); } } static INTERRUPT_GEN( xexex_interrupt ) { - if (suspension_active) { suspension_active = 0; cpu_trigger(machine, resume_trigger); } + if (suspension_active) { suspension_active = 0; cpuexec_trigger(device->machine, resume_trigger); } - switch (cpu_getiloops()) + switch (cpu_getiloops(device)) { case 0: // IRQ 6 is for test mode only if (cur_control2 & 0x0020) - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); break; case 1: if (K053246_is_IRQ_enabled()) { // OBJDMA starts at the beginning of V-blank - xexex_objdma(machine, 0); + xexex_objdma(device->machine, 0); // schedule DMA end interrupt timer_adjust_oneshot(dmadelay_timer, XE_DMADELAY, 0); @@ -336,7 +336,7 @@ static INTERRUPT_GEN( xexex_interrupt ) // IRQ 4 is the V-blank interrupt. It controls color, sound and // vital game logics that shouldn't be interfered by frame-drop. if (cur_control2 & 0x0800) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); break; } } diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 9c6e5fbe5aa..d5cd7841cdb 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -126,7 +126,7 @@ static WRITE16_HANDLER( sound_cmd_w ) static WRITE16_HANDLER( sound_irq_w ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); } //int xmen_irqenabled; @@ -414,8 +414,8 @@ INPUT_PORTS_END static INTERRUPT_GEN( xmen_interrupt ) { - if (cpu_getiloops() == 0) irq5_line_hold(machine, cpunum); - else irq3_line_hold(machine, cpunum); + if (cpu_getiloops(device) == 0) irq5_line_hold(device); + else irq3_line_hold(device); } static STATE_POSTLOAD( xmen_postload ) @@ -477,9 +477,9 @@ static MACHINE_RESET(xmen6p) static INTERRUPT_GEN( xmen6p_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - irq5_line_hold(machine, cpunum); + irq5_line_hold(device); } @@ -487,7 +487,7 @@ static INTERRUPT_GEN( xmen6p_interrupt ) { // if (xmen_irqenabled&0x04) // { - irq3_line_hold(machine, cpunum); + irq3_line_hold(device); // xmen_current_frame = 0x00; // } diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c index 41c6af9af96..d5f47496c79 100644 --- a/src/mame/drivers/xorworld.c +++ b/src/mame/drivers/xorworld.c @@ -188,13 +188,13 @@ GFXDECODE_END static INTERRUPT_GEN( xorworld_interrupt ) { - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + cpu_set_input_line(device, 2, HOLD_LINE); } - else if (cpu_getiloops() % 2) + else if (cpu_getiloops(device) % 2) { - cpunum_set_input_line(machine, 0, 6, HOLD_LINE); + cpu_set_input_line(device, 6, HOLD_LINE); } } diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c index b739a66e66e..dac83b5ae4a 100644 --- a/src/mame/drivers/xxmissio.c +++ b/src/mame/drivers/xxmissio.c @@ -52,7 +52,7 @@ static WRITE8_HANDLER ( xxmissio_status_m_w ) case 0x40: xxmissio_status &= ~0x08; - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0x10); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0x10); break; case 0x80: @@ -75,7 +75,7 @@ static WRITE8_HANDLER ( xxmissio_status_s_w ) case 0x80: xxmissio_status &= ~0x04; - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0x10); + cpu_set_input_line_and_vector(machine->cpu[0],0,HOLD_LINE,0x10); break; } } @@ -83,13 +83,13 @@ static WRITE8_HANDLER ( xxmissio_status_s_w ) static INTERRUPT_GEN( xxmissio_interrupt_m ) { xxmissio_status &= ~0x20; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static INTERRUPT_GEN( xxmissio_interrupt_s ) { xxmissio_status &= ~0x10; - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static MACHINE_START( xxmissio ) diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c index ebb14e44f3a..331997f96e7 100644 --- a/src/mame/drivers/xybots.c +++ b/src/mame/drivers/xybots.c @@ -32,8 +32,8 @@ static void update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, atarigen_video_int_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c index 6c221ea9e65..f9e5c54970b 100644 --- a/src/mame/drivers/xyonix.c +++ b/src/mame/drivers/xyonix.c @@ -34,7 +34,7 @@ VIDEO_UPDATE(xyonix); static WRITE8_HANDLER( xyonix_irqack_w ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c index 169de8f1046..fc56f9147ec 100644 --- a/src/mame/drivers/yiear.c +++ b/src/mame/drivers/yiear.c @@ -82,7 +82,7 @@ static WRITE8_HANDLER( yiear_VLM5030_control_w ) static INTERRUPT_GEN( yiear_nmi_interrupt ) { /* can't use nmi_line_pulse() because interrupt_enable_w() effects it */ - if (yiear_nmi_enable) cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (yiear_nmi_enable) cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c index fd69d20a157..e0e2c5366bd 100644 --- a/src/mame/drivers/yunsun16.c +++ b/src/mame/drivers/yunsun16.c @@ -159,7 +159,7 @@ number 0 on each voice. That sample is 00000-00000. if ((data&0xff)!=0x3a) { soundlatch_w(machine,0,data & 0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } } } @@ -572,7 +572,7 @@ GFXDECODE_END static void soundirq(running_machine *machine, int state) { - cpunum_set_input_line(machine, 1, 0, state); + cpu_set_input_line(machine->cpu[1], 0, state); } static const ym3812_interface magicbub_ym3812_intf = diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c index f0e79a5a08d..62692e43033 100644 --- a/src/mame/drivers/yunsung8.c +++ b/src/mame/drivers/yunsung8.c @@ -487,7 +487,7 @@ static void yunsung8_adpcm_int(running_machine *machine, int irq) toggle ^= 1; if (toggle) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static const msm5205_interface yunsung8_msm5205_interface = diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c index e5806a2f1df..4517f685716 100644 --- a/src/mame/drivers/zaccaria.c +++ b/src/mame/drivers/zaccaria.c @@ -101,8 +101,8 @@ static WRITE8_HANDLER( ay8910_port0a_w ) } -static void zaccaria_irq0a(running_machine *machine, int state) { cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); } -static void zaccaria_irq0b(running_machine *machine, int state) { cpunum_set_input_line(machine, 1,0,state ? ASSERT_LINE : CLEAR_LINE); } +static void zaccaria_irq0a(running_machine *machine, int state) { cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE); } +static void zaccaria_irq0b(running_machine *machine, int state) { cpu_set_input_line(machine->cpu[1],0,state ? ASSERT_LINE : CLEAR_LINE); } static int active_8910, port0a, acs; @@ -162,7 +162,7 @@ static INTERRUPT_GEN( zaccaria_cb1_toggle ) { static int toggle; - pia_0_cb1_w(machine,0,toggle & 1); + pia_0_cb1_w(device->machine,0,toggle & 1); toggle ^= 1; } @@ -257,7 +257,7 @@ static MACHINE_RESET( zaccaria ) static WRITE8_HANDLER( sound_command_w ) { soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 2,0,(data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,(data & 0x80) ? CLEAR_LINE : ASSERT_LINE); } static WRITE8_HANDLER( sound1_command_w ) diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c index 781579f4087..a617c608448 100644 --- a/src/mame/drivers/zaxxon.c +++ b/src/mame/drivers/zaxxon.c @@ -360,14 +360,14 @@ static INPUT_CHANGED( service_switch ) { /* pressing the service switch sends an NMI */ if (newval) - cpunum_set_input_line(field->port->machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(field->port->machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } static INTERRUPT_GEN( vblank_int ) { if (int_enabled) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } @@ -375,7 +375,7 @@ static WRITE8_HANDLER( int_enable_w ) { int_enabled = data & 1; if (!int_enabled) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/drivers/zerozone.c b/src/mame/drivers/zerozone.c index 430b126598a..036e0017c5e 100644 --- a/src/mame/drivers/zerozone.c +++ b/src/mame/drivers/zerozone.c @@ -61,7 +61,7 @@ static WRITE16_HANDLER( zerozone_sound_w ) if (ACCESSING_BITS_8_15) { soundlatch_w(machine,offset,data >> 8); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } } diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 91786d9fc05..cd32d2b242f 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -651,13 +651,13 @@ static WRITE8_HANDLER( qsound_bankswitch_w ) static INTERRUPT_GEN( qsound_interrupt ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } static WRITE32_HANDLER( zn_qsound_w ) { soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } static DRIVER_INIT( coh1000c ) @@ -678,7 +678,7 @@ static DRIVER_INIT( coh1000c ) /* disable: the QSound CPU for glpracr as it doesn't have any roms & the link cpu for glprac2l as the h/w is not emulated yet. */ - cpunum_suspend( 1, SUSPEND_REASON_DISABLE, 1 ); + cpu_suspend( machine->cpu[1], SUSPEND_REASON_DISABLE, 1 ); } } @@ -1224,7 +1224,7 @@ ADDRESS_MAP_END /* handler called by the YM2610 emulator when the internal timers cause an IRQ */ static void irq_handler(running_machine *machine, int irq) { - cpunum_set_input_line(machine, 1,0,irq ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1],0,irq ? ASSERT_LINE : CLEAR_LINE); } static const ym2610_interface ym2610_config = @@ -1819,7 +1819,7 @@ static WRITE32_HANDLER( coh1002e_bank_w ) static WRITE32_HANDLER( coh1002e_latch_w ) { if (offset) - cpunum_set_input_line(machine, 1, 2, HOLD_LINE); // irq 2 on the 68k + cpu_set_input_line(machine->cpu[1], 2, HOLD_LINE); // irq 2 on the 68k else soundlatch_w(machine, 0, data); } @@ -2252,13 +2252,13 @@ static INTERRUPT_GEN( jdredd_vblank ) if( jdredd_gun_mux == 0 ) { - x = input_port_read(machine, "GUN1X"); - y = input_port_read(machine, "GUN1Y"); + x = input_port_read(device->machine, "GUN1X"); + y = input_port_read(device->machine, "GUN1Y"); } else { - x = input_port_read(machine, "GUN2X"); - y = input_port_read(machine, "GUN2Y"); + x = input_port_read(device->machine, "GUN2X"); + y = input_port_read(device->machine, "GUN2Y"); } if( x > 0x393 && x < 0xcb2 && @@ -2267,7 +2267,7 @@ static INTERRUPT_GEN( jdredd_vblank ) psx_lightgun_set( x, y ); } - psx_vblank( machine, cpunum ); + psx_vblank( device ); } static size_t nbajamex_eeprom_size; diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c index dc511cec6cc..0e4fa379662 100644 --- a/src/mame/drivers/zr107.c +++ b/src/mame/drivers/zr107.c @@ -366,7 +366,7 @@ static WRITE8_HANDLER( sysreg_w ) eeprom_write_bit((data & 0x01) ? 1 : 0); eeprom_set_clock_line((data & 0x02) ? ASSERT_LINE : CLEAR_LINE); eeprom_set_cs_line((data & 0x04) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); mame_printf_debug("System register 0 = %02X\n", data); break; @@ -382,9 +382,9 @@ static WRITE8_HANDLER( sysreg_w ) 0x01 = ADDSCLK (ADC SCLK) */ if (data & 0x80) /* CG Board 1 IRQ Ack */ - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ1, CLEAR_LINE); if (data & 0x40) /* CG Board 0 IRQ Ack */ - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); set_cgboard_id((data >> 4) & 3); adc083x_cs_write(0, (data >> 2) & 1); adc083x_di_write(0, (data >> 1) & 1); @@ -731,11 +731,11 @@ static const sharc_config sharc_cfg = */ static INTERRUPT_GEN( zr107_vblank ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE); } static MACHINE_RESET( zr107 ) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); } static MACHINE_DRIVER_START( zr107 ) @@ -832,13 +832,13 @@ MACHINE_DRIVER_END static TIMER_CALLBACK( irq_off ) { - cpunum_set_input_line(machine, 1, param, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], param, CLEAR_LINE); } static void sound_irq_callback(running_machine *machine, int irq) { int line = (irq == 0) ? INPUT_LINE_IRQ1 : INPUT_LINE_IRQ2; - cpunum_set_input_line(machine, 1, line, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], line, ASSERT_LINE); timer_set(ATTOTIME_IN_USEC(1), NULL, line, irq_off); } diff --git a/src/mame/etc/jrcrypt.c b/src/mame/etc/jrcrypt.c index 13d74628573..4b5f185840b 100644 --- a/src/mame/etc/jrcrypt.c +++ b/src/mame/etc/jrcrypt.c @@ -427,7 +427,7 @@ doesn't use an interrupt vector */ INTERRUPT_GEN( jrpacman_interrupt ) { - irq0_line_hold(); + irq0_line_hold(device); } diff --git a/src/mame/includes/jaguar.h b/src/mame/includes/jaguar.h index 3d45cced34a..5387353083f 100644 --- a/src/mame/includes/jaguar.h +++ b/src/mame/includes/jaguar.h @@ -29,8 +29,8 @@ extern UINT32 *jaguar_wave_rom; /*----------- defined in audio/jaguar.c -----------*/ -void jaguar_dsp_suspend(void); -void jaguar_dsp_resume(void); +void jaguar_dsp_suspend(running_machine *machine); +void jaguar_dsp_resume(running_machine *machine); void cojag_sound_init(running_machine *machine); void cojag_sound_reset(void); @@ -48,8 +48,8 @@ WRITE32_HANDLER( jaguar_serial_w ); /*----------- defined in video/jaguar.c -----------*/ -void jaguar_gpu_suspend(void); -void jaguar_gpu_resume(void); +void jaguar_gpu_suspend(running_machine *machine); +void jaguar_gpu_resume(running_machine *machine); void jaguar_gpu_cpu_int(void); void jaguar_dsp_cpu_int(void); diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h index 4819f5793f3..ceb4ea13106 100644 --- a/src/mame/includes/system16.h +++ b/src/mame/includes/system16.h @@ -85,7 +85,7 @@ extern int sys16_sprite_quartet2( struct sys16_sprite_attributes *sprite, const /*----------- defined in machine/s16fd.c -----------*/ void *fd1094_get_decrypted_base(void); -void fd1094_machine_init(void); +void fd1094_machine_init(const device_config *device); void fd1094_driver_init(running_machine *machine, void (*set_decrypted)(running_machine *, UINT8 *)); /*----------- defined in machine/system16.c -----------*/ diff --git a/src/mame/machine/ajax.c b/src/mame/machine/ajax.c index 2564b8e3551..51a9c536545 100644 --- a/src/mame/machine/ajax.c +++ b/src/mame/machine/ajax.c @@ -142,11 +142,11 @@ WRITE8_HANDLER( ajax_ls138_f10_w ) watchdog_reset_w(machine, 0, data); else{ if (firq_enable) /* Cause interrupt on slave CPU */ - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, HOLD_LINE); } break; case 0x01: /* Cause interrupt on audio CPU */ - cpunum_set_input_line(machine, 2, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[2], 0, HOLD_LINE); break; case 0x02: /* Sound command number */ soundlatch_w(machine,offset,data); @@ -207,5 +207,5 @@ MACHINE_RESET( ajax ) INTERRUPT_GEN( ajax_interrupt ) { if (K051960_is_IRQ_enabled()) - cpunum_set_input_line(machine, 0, KONAMI_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE); } diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c index 77da2b4f7e4..e2244c0654a 100644 --- a/src/mame/machine/amiga.c +++ b/src/mame/machine/amiga.c @@ -34,7 +34,7 @@ *************************************/ /* 715909 Hz for NTSC, 709379 for PAL */ -#define O2_CLOCK (cpunum_get_clock(0) / 10) +#define O2_CLOCK (cpu_get_clock(machine->cpu[0]) / 10) /* How many CPU cycles we delay until we fire a pending interrupt */ #define AMIGA_IRQ_DELAY_CYCLES 24 @@ -413,31 +413,31 @@ static void update_irqs(running_machine *machine) if (CUSTOM_REG(REG_INTENA) & 0x4000) { /* Serial transmit buffer empty, disk block finished, software interrupts */ - cpunum_set_input_line(machine, 0, 1, ints & 0x0007 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, ints & 0x0007 ? ASSERT_LINE : CLEAR_LINE); /* I/O ports and timer interrupts */ - cpunum_set_input_line(machine, 0, 2, ints & 0x0008 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, ints & 0x0008 ? ASSERT_LINE : CLEAR_LINE); /* Copper, VBLANK, blitter interrupts */ - cpunum_set_input_line(machine, 0, 3, ints & 0x0070 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, ints & 0x0070 ? ASSERT_LINE : CLEAR_LINE); /* Audio interrupts */ - cpunum_set_input_line(machine, 0, 4, ints & 0x0780 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, ints & 0x0780 ? ASSERT_LINE : CLEAR_LINE); /* Serial receive buffer full, disk sync match */ - cpunum_set_input_line(machine, 0, 5, ints & 0x1800 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, ints & 0x1800 ? ASSERT_LINE : CLEAR_LINE); /* External interrupts */ - cpunum_set_input_line(machine, 0, 6, ints & 0x2000 ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, ints & 0x2000 ? ASSERT_LINE : CLEAR_LINE); } else { - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); - cpunum_set_input_line(machine, 0, 2, CLEAR_LINE); - cpunum_set_input_line(machine, 0, 3, CLEAR_LINE); - cpunum_set_input_line(machine, 0, 4, CLEAR_LINE); - cpunum_set_input_line(machine, 0, 5, CLEAR_LINE); - cpunum_set_input_line(machine, 0, 6, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 3, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 5, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 6, CLEAR_LINE); } } @@ -1032,7 +1032,7 @@ static void blitter_setup(void) if ( CUSTOM_REG(REG_DMACON) & 0x0400 ) { /* simulate the 68k not running while the blit is going */ - activecpu_adjust_icount( -(blittime/2) ); + cpu_adjust_icount( Machine->activecpu, -(blittime/2) ); blittime = BLITTER_NASTY_DELAY; } @@ -1150,7 +1150,7 @@ static void amiga_cia_1_irq(running_machine *machine, int state) static void custom_reset(void) { - int clock = cpunum_get_clock(0); + int clock = cpu_get_clock(Machine->cpu[0]); UINT16 vidmode = (clock == AMIGA_68000_NTSC_CLOCK || clock == AMIGA_68EC020_NTSC_CLOCK ) ? 0x1000 : 0x0000; /* NTSC or PAL? */ CUSTOM_REG(REG_DDFSTRT) = 0x18; @@ -1525,7 +1525,7 @@ void amiga_serial_in_w(UINT16 data) attotime amiga_get_serial_char_period(void) { UINT32 divisor = (CUSTOM_REG(REG_SERPER) & 0x7fff) + 1; - UINT32 baud = cpunum_get_clock(0) / 2 / divisor; + UINT32 baud = cpu_get_clock(Machine->cpu[0]) / 2 / divisor; UINT32 numbits = 2 + ((CUSTOM_REG(REG_SERPER) & 0x8000) ? 9 : 8); return attotime_mul(ATTOTIME_IN_HZ(baud), numbits); } diff --git a/src/mame/machine/arkanoid.c b/src/mame/machine/arkanoid.c index 4dc6a606bde..2451b322750 100644 --- a/src/mame/machine/arkanoid.c +++ b/src/mame/machine/arkanoid.c @@ -62,7 +62,7 @@ WRITE8_HANDLER( arkanoid_Z80_mcu_w ) { timer_call_after_resynch(NULL, data, test); /* boost the interleave for a few usecs to make sure it is read successfully */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); } READ8_HANDLER( arkanoid_68705_portA_r ) diff --git a/src/mame/machine/asic65.c b/src/mame/machine/asic65.c index f22c5ea9002..6c89a8ecad6 100644 --- a/src/mame/machine/asic65.c +++ b/src/mame/machine/asic65.c @@ -147,12 +147,12 @@ void asic65_reset(running_machine *machine, int state) { /* rom-based means reset and clear states */ if (asic65.type == ASIC65_ROMBASED) - cpunum_set_input_line(machine, asic65.cpunum, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[asic65.cpunum], INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); /* otherwise, do it manually */ else { - cpunum_suspend(mame_find_cpu_index(machine, "asic65"), SUSPEND_REASON_DISABLE, 1); + cpu_suspend(machine->cpu[mame_find_cpu_index(machine, "asic65")], SUSPEND_REASON_DISABLE, 1); /* if reset is being signalled, clear everything */ if (state && !asic65.reset_state) @@ -183,7 +183,7 @@ static TIMER_CALLBACK( m68k_asic65_deferred_w ) asic65.tfull = 1; asic65.cmd = param >> 16; asic65.tdata = param; - cpunum_set_input_line(machine, asic65.cpunum, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[asic65.cpunum], 0, ASSERT_LINE); } @@ -196,7 +196,7 @@ WRITE16_HANDLER( asic65_data_w ) if (asic65.type == ASIC65_ROMBASED) { timer_call_after_resynch(NULL, data | (offset << 16), m68k_asic65_deferred_w); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); return; } @@ -234,7 +234,7 @@ READ16_HANDLER( asic65_r ) if (asic65.type == ASIC65_ROMBASED) { asic65._68full = 0; - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(5)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(5)); return asic65._68data; } @@ -452,7 +452,7 @@ READ16_HANDLER( asic65_io_r ) /* bit 14 = 68FULL */ /* bit 13 = XFLG */ /* bit 12 = controlled by jumper */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(5)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(5)); return (asic65.tfull << 15) | (asic65._68full << 14) | (asic65.xflg << 13) | 0x0000; } else @@ -480,7 +480,7 @@ static WRITE16_HANDLER( asic65_68k_w ) static READ16_HANDLER( asic65_68k_r ) { asic65.tfull = 0; - cpunum_set_input_line(machine, asic65.cpunum, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[asic65.cpunum], 0, CLEAR_LINE); return asic65.tdata; } @@ -504,7 +504,7 @@ static READ16_HANDLER( asic65_stat_r ) static READ16_HANDLER( asci65_get_bio ) { if (!asic65.tfull) - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); return asic65.tfull ? CLEAR_LINE : ASSERT_LINE; } diff --git a/src/mame/machine/asteroid.c b/src/mame/machine/asteroid.c index 2d32aaf55be..fc1c61f2007 100644 --- a/src/mame/machine/asteroid.c +++ b/src/mame/machine/asteroid.c @@ -17,22 +17,22 @@ UINT8 *asteroid_ram1, *asteroid_ram2; INTERRUPT_GEN( asteroid_interrupt ) { /* Turn off interrupts if self-test is enabled */ - if (!(input_port_read(machine, "IN0") & 0x80)) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (!(input_port_read(device->machine, "IN0") & 0x80)) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } INTERRUPT_GEN( asterock_interrupt ) { /* Turn off interrupts if self-test is enabled */ - if ((input_port_read(machine, "IN0") & 0x80)) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if ((input_port_read(device->machine, "IN0") & 0x80)) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } INTERRUPT_GEN( llander_interrupt ) { /* Turn off interrupts if self-test is enabled */ - if (input_port_read(machine, "IN0") & 0x02) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + if (input_port_read(device->machine, "IN0") & 0x02) + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } READ8_HANDLER( asteroid_IN0_r ) diff --git a/src/mame/machine/atari.c b/src/mame/machine/atari.c index f5355c96c3f..b1ac9306e53 100644 --- a/src/mame/machine/atari.c +++ b/src/mame/machine/atari.c @@ -69,7 +69,7 @@ void atari_interrupt_cb(running_machine *machine, int mask) logerror("atari interrupt_cb TIMR1\n"); } - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); } /************************************************************** diff --git a/src/mame/machine/atarifb.c b/src/mame/machine/atarifb.c index 1d8ff854361..38e79c4ef7e 100644 --- a/src/mame/machine/atarifb.c +++ b/src/mame/machine/atarifb.c @@ -113,7 +113,7 @@ WRITE8_HANDLER( soccer_out2_w ) WRITE8_HANDLER( atarifb_out3_w ) { - int loop = cpu_getiloops(); + int loop = cpu_getiloops(machine->cpu[0]); switch (loop) { diff --git a/src/mame/machine/atarigen.c b/src/mame/machine/atarigen.c index 8244669cef9..721feacf26a 100644 --- a/src/mame/machine/atarigen.c +++ b/src/mame/machine/atarigen.c @@ -228,7 +228,7 @@ void atarigen_scanline_int_set(const device_config *screen, int scanline) INTERRUPT_GEN( atarigen_scanline_int_gen ) { atarigen_scanline_int_state = 1; - (*update_int_callback)(machine); + (*update_int_callback)(device->machine); } @@ -258,7 +258,7 @@ WRITE32_HANDLER( atarigen_scanline_int_ack32_w ) INTERRUPT_GEN( atarigen_sound_int_gen ) { atarigen_sound_int_state = 1; - (*update_int_callback)(machine); + (*update_int_callback)(device->machine); } @@ -288,7 +288,7 @@ WRITE32_HANDLER( atarigen_sound_int_ack32_w ) INTERRUPT_GEN( atarigen_video_int_gen ) { atarigen_video_int_state = 1; - (*update_int_callback)(machine); + (*update_int_callback)(device->machine); } @@ -320,7 +320,7 @@ static TIMER_CALLBACK( scanline_interrupt_callback ) emu_timer *timer = get_scanline_interrupt_timer_for_screen(screen); /* generate the interrupt */ - atarigen_scanline_int_gen(machine, 0); + atarigen_scanline_int_gen(machine->cpu[0]); /* set a new timer to go off at the same scan line next frame */ timer_adjust_oneshot(timer, video_screen_get_frame_period(screen), 0); @@ -639,7 +639,7 @@ void atarigen_sound_io_reset(int cpu_num) INTERRUPT_GEN( atarigen_6502_irq_gen ) { timed_int = 1; - update_6502_irq(machine); + update_6502_irq(device->machine); } @@ -770,7 +770,7 @@ WRITE8_HANDLER( atarigen_6502_sound_w ) READ8_HANDLER( atarigen_6502_sound_r ) { atarigen_cpu_to_sound_ready = 0; - cpunum_set_input_line(machine, sound_cpu_num, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpu_num], INPUT_LINE_NMI, CLEAR_LINE); return atarigen_cpu_to_sound; } @@ -785,9 +785,9 @@ READ8_HANDLER( atarigen_6502_sound_r ) static void update_6502_irq(running_machine *machine) { if (timed_int || ym2151_int) - cpunum_set_input_line(machine, sound_cpu_num, M6502_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[sound_cpu_num], M6502_IRQ_LINE, ASSERT_LINE); else - cpunum_set_input_line(machine, sound_cpu_num, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpu_num], M6502_IRQ_LINE, CLEAR_LINE); } @@ -801,8 +801,8 @@ static TIMER_CALLBACK( delayed_sound_reset ) /* unhalt and reset the sound CPU */ if (param == 0) { - cpunum_set_input_line(machine, sound_cpu_num, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, sound_cpu_num, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[sound_cpu_num], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[sound_cpu_num], INPUT_LINE_RESET, PULSE_LINE); } /* reset the sound write state */ @@ -811,7 +811,7 @@ static TIMER_CALLBACK( delayed_sound_reset ) /* allocate a high frequency timer until a response is generated */ /* the main CPU is *very* sensistive to the timing of the response */ - cpu_boost_interleave(machine, SOUND_TIMER_RATE, SOUND_TIMER_BOOST); + cpuexec_boost_interleave(machine, SOUND_TIMER_RATE, SOUND_TIMER_BOOST); } @@ -829,11 +829,11 @@ static TIMER_CALLBACK( delayed_sound_w ) /* set up the states and signal an NMI to the sound CPU */ atarigen_cpu_to_sound = param; atarigen_cpu_to_sound_ready = 1; - cpunum_set_input_line(machine, sound_cpu_num, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[sound_cpu_num], INPUT_LINE_NMI, ASSERT_LINE); /* allocate a high frequency timer until a response is generated */ /* the main CPU is *very* sensistive to the timing of the response */ - cpu_boost_interleave(machine, SOUND_TIMER_RATE, SOUND_TIMER_BOOST); + cpuexec_boost_interleave(machine, SOUND_TIMER_RATE, SOUND_TIMER_BOOST); } @@ -851,7 +851,7 @@ static TIMER_CALLBACK( delayed_6502_sound_w ) /* set up the states and signal the sound interrupt to the main CPU */ atarigen_sound_to_cpu = param; atarigen_sound_to_cpu_ready = 1; - atarigen_sound_int_gen(machine, 0); + atarigen_sound_int_gen(machine->cpu[0]); } @@ -1479,7 +1479,7 @@ void atarigen_halt_until_hblank_0(const device_config *screen) /* halt and set a timer to wake up */ fraction = (double)(hblank - hpos) / (double)width; timer_set(double_to_attotime(attotime_to_double(video_screen_get_scan_period(screen)) * fraction), NULL, 0, unhalt_cpu); - cpunum_set_input_line(screen->machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(screen->machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } @@ -1567,7 +1567,7 @@ WRITE32_HANDLER( atarigen_666_paletteram32_w ) static TIMER_CALLBACK( unhalt_cpu ) { - cpunum_set_input_line(machine, param, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[param], INPUT_LINE_HALT, CLEAR_LINE); } diff --git a/src/mame/machine/balsente.c b/src/mame/machine/balsente.c index 759cfae8c9d..f08136ce750 100644 --- a/src/mame/machine/balsente.c +++ b/src/mame/machine/balsente.c @@ -102,7 +102,7 @@ static UINT8 grudge_last_steering[3]; static TIMER_CALLBACK( irq_off ) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, CLEAR_LINE); } @@ -115,7 +115,7 @@ static TIMER_CALLBACK( interrupt_timer ) timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, param + 64, 0), param + 64); /* IRQ starts on scanline 0, 64, 128, etc. */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ timer_set(video_screen_get_time_until_pos(machine->primary_screen, param, BALSENTE_HBSTART), NULL, 0, irq_off); @@ -312,7 +312,7 @@ READ8_HANDLER( balsente_random_num_r ) UINT32 cc; /* CPU runs at 1.25MHz, noise source at 100kHz --> multiply by 12.5 */ - cc = activecpu_gettotalcycles(); + cc = cpu_get_total_cycles(machine->activecpu); /* 12.5 = 8 + 4 + 0.5 */ cc = (cc << 3) + (cc << 2) + (cc >> 1); @@ -447,12 +447,12 @@ static void m6850_update_io(running_machine *machine) /* apply the change */ if (new_state && !(m6850_status & 0x80)) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); m6850_status |= 0x80; } else if (!new_state && (m6850_status & 0x80)) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); m6850_status &= ~0x80; } @@ -465,12 +465,12 @@ static void m6850_update_io(running_machine *machine) /* apply the change */ if (new_state && !(m6850_sound_status & 0x80)) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, ASSERT_LINE); m6850_sound_status |= 0x80; } else if (!new_state && (m6850_sound_status & 0x80)) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, CLEAR_LINE); m6850_sound_status &= ~0x80; } } @@ -611,7 +611,7 @@ INTERRUPT_GEN( balsente_update_analog_inputs ) /* ports are read once a frame, just at varying intervals. To get around this, we */ /* read all the analog inputs at VBLANK time and just return the cached values. */ for (i = 0; i < 4; i++) - analog_input_data[i] = input_port_read(machine, analog[i]); + analog_input_data[i] = input_port_read(device->machine, analog[i]); } @@ -756,7 +756,7 @@ static void counter_set_out(running_machine *machine, int which, int out) { /* OUT on counter 2 is hooked to the /INT line on the Z80 */ if (which == 2) - cpunum_set_input_line(machine, 1, 0, out ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, out ? ASSERT_LINE : CLEAR_LINE); /* OUT on counter 0 is hooked to the GATE line on counter 1 */ else if (which == 0) diff --git a/src/mame/machine/beezer.c b/src/mame/machine/beezer.c index 583a27057ef..21a8d8e7563 100644 --- a/src/mame/machine/beezer.c +++ b/src/mame/machine/beezer.c @@ -47,7 +47,7 @@ static WRITE8_HANDLER( b_via_0_ca2_w ) static void b_via_0_irq (running_machine *machine, int level) { - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, level); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, level); } static READ8_HANDLER( b_via_0_pb_r ) @@ -58,9 +58,9 @@ static READ8_HANDLER( b_via_0_pb_r ) static WRITE8_HANDLER( b_via_0_pa_w ) { if ((data & 0x08) == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); if ((data & 0x04) == 0) { @@ -89,7 +89,7 @@ static WRITE8_HANDLER( b_via_0_pb_w ) static void b_via_1_irq (running_machine *machine, int level) { - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, level); + cpu_set_input_line(machine->cpu[1], M6809_IRQ_LINE, level); } static READ8_HANDLER( b_via_1_pa_r ) diff --git a/src/mame/machine/bigevglf.c b/src/mame/machine/bigevglf.c index 1af901c89fa..40c5467f36b 100644 --- a/src/mame/machine/bigevglf.c +++ b/src/mame/machine/bigevglf.c @@ -45,7 +45,7 @@ WRITE8_HANDLER( bigevglf_68705_portB_w ) if ((ddrB & 0x02) && (~portB_out & 0x02) && (data & 0x02)) /* positive going transition of the clock */ { - cpunum_set_input_line(machine, 3,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[3],0,CLEAR_LINE); main_sent = 0; } @@ -86,7 +86,7 @@ WRITE8_HANDLER( bigevglf_mcu_w ) { portA_in = data; main_sent = 1; - cpunum_set_input_line(machine, 3,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[3],0,ASSERT_LINE); } diff --git a/src/mame/machine/bsktball.c b/src/mame/machine/bsktball.c index 0b52edb0368..8e09187aae5 100644 --- a/src/mame/machine/bsktball.c +++ b/src/mame/machine/bsktball.c @@ -31,9 +31,9 @@ INTERRUPT_GEN( bsktball_interrupt ) i256V=(i256V+1) % 8; if (i256V==0) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); else if (NMION) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } /*************************************************************************** diff --git a/src/mame/machine/bublbobl.c b/src/mame/machine/bublbobl.c index b3d7aba022f..d9d4a7c9ca7 100644 --- a/src/mame/machine/bublbobl.c +++ b/src/mame/machine/bublbobl.c @@ -26,11 +26,11 @@ WRITE8_HANDLER( bublbobl_bankswitch_w ) /* bit 3 n.c. */ /* bit 4 resets second Z80 */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); /* bit 5 resets mcu */ if (machine->config->cpu[3].type != CPU_DUMMY) // only if we have a MCU - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE); /* bit 6 enables display */ bublbobl_video_enable = data & 0x40; @@ -59,7 +59,7 @@ WRITE8_HANDLER( tokio_videoctrl_w ) WRITE8_HANDLER( bublbobl_nmitrigger_w ) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } @@ -98,7 +98,7 @@ static int sound_nmi_enable,pending_nmi; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -118,7 +118,7 @@ WRITE8_HANDLER( bublbobl_sh_nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 2,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[2],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } @@ -198,8 +198,8 @@ WRITE8_HANDLER( bublbobl_mcu_port1_w ) if ((port1_out & 0x40) && (~data & 0x40)) { // logerror("triggering IRQ on main CPU\n"); - cpunum_set_input_line_vector(0,0,bublbobl_mcu_sharedram[0]); - cpunum_set_input_line(machine, 0,0,HOLD_LINE); + cpu_set_input_line_vector(machine->cpu[0],0,bublbobl_mcu_sharedram[0]); + cpu_set_input_line(machine->cpu[0],0,HOLD_LINE); } // bit 7: select read or write shared RAM @@ -370,10 +370,10 @@ READ8_HANDLER( boblbobl_ic43_b_r ) INTERRUPT_GEN( bublbobl_m68705_interrupt ) { /* I don't know how to handle the interrupt line so I just toggle it every time. */ - if (cpu_getiloops() & 1) - cpunum_set_input_line(machine, 3,0,CLEAR_LINE); + if (cpu_getiloops(device) & 1) + cpu_set_input_line(device,0,CLEAR_LINE); else - cpunum_set_input_line(machine, 3,0,ASSERT_LINE); + cpu_set_input_line(device,0,ASSERT_LINE); } @@ -478,8 +478,8 @@ logerror("%04x: 68705 unknown write to address %04x\n",cpu_get_pc(machine->activ /* hack to get random EXTEND letters (who is supposed to do this? 68705? PAL?) */ bublbobl_mcu_sharedram[0x7c] = mame_rand(machine)%6; - cpunum_set_input_line_vector(0,0,bublbobl_mcu_sharedram[0]); - cpunum_set_input_line(machine, 0,0,HOLD_LINE); + cpu_set_input_line_vector(machine->cpu[0],0,bublbobl_mcu_sharedram[0]); + cpu_set_input_line(machine->cpu[0],0,HOLD_LINE); } if ((ddrB & 0x40) && (~data & 0x40) && (portB_out & 0x40)) { diff --git a/src/mame/machine/buggychl.c b/src/mame/machine/buggychl.c index 7cf6378fd47..cbd9ecc3bef 100644 --- a/src/mame/machine/buggychl.c +++ b/src/mame/machine/buggychl.c @@ -10,7 +10,7 @@ MACHINE_RESET( buggychl ) { mcu_sent = 0; main_sent = 0; - cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); } @@ -75,7 +75,7 @@ logerror("%04x: 68705 port B write %02x\n",cpu_get_pc(machine->activecpu),data); if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); main_sent = 0; logerror("read command %02x from main cpu\n",portA_in); } @@ -132,7 +132,7 @@ WRITE8_HANDLER( buggychl_mcu_w ) logerror("%04x: mcu_w %02x\n",cpu_get_pc(machine->activecpu),data); from_main = data; main_sent = 1; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); } READ8_HANDLER( buggychl_mcu_r ) diff --git a/src/mame/machine/carpolo.c b/src/mame/machine/carpolo.c index 32e4f742d7a..6de4c01d3b9 100644 --- a/src/mame/machine/carpolo.c +++ b/src/mame/machine/carpolo.c @@ -90,7 +90,7 @@ static UINT8 last_wheel_value[4]; static void TTL74148_3S_cb(void) { - cpunum_set_input_line(Machine, 0, M6502_IRQ_LINE, TTL74148_output_valid_r(TTL74148_3S) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(Machine->cpu[0], M6502_IRQ_LINE, TTL74148_output_valid_r(TTL74148_3S) ? CLEAR_LINE : ASSERT_LINE); } @@ -241,7 +241,7 @@ INTERRUPT_GEN( carpolo_timer_interrupt ) /* check the coins here as well - they drive the clock of the flip-flops */ - port_value = input_port_read(machine, "IN0"); + port_value = input_port_read(device->machine, "IN0"); TTL7474_clock_w(TTL7474_2S_1, port_value & 0x01); TTL7474_clock_w(TTL7474_2S_2, port_value & 0x02); @@ -261,7 +261,7 @@ INTERRUPT_GEN( carpolo_timer_interrupt ) int dir_flip_flop = movement_flip_flop + 1; static const char *const portnames[] = { "DIAL0", "DIAL1", "DIAL2", "DIAL3" }; - port_value = input_port_read(machine, portnames[player]); + port_value = input_port_read(device->machine, portnames[player]); if (port_value != last_wheel_value[player]) { @@ -282,7 +282,7 @@ INTERRUPT_GEN( carpolo_timer_interrupt ) /* finally read the accelerator pedals */ - port_value = input_port_read(machine, "PEDALS"); + port_value = input_port_read(device->machine, "PEDALS"); for (player = 0; player < 4; player++) { diff --git a/src/mame/machine/dc.c b/src/mame/machine/dc.c index 04abebded5f..b55d88ececc 100644 --- a/src/mame/machine/dc.c +++ b/src/mame/machine/dc.c @@ -894,7 +894,7 @@ MACHINE_RESET( dc ) int a; /* halt the ARM7 */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); memset(dc_sysctrl_regs, 0, sizeof(dc_sysctrl_regs)); memset(maple_regs, 0, sizeof(maple_regs)); @@ -941,12 +941,12 @@ WRITE64_HANDLER( dc_aica_reg_w ) if (dat & 1) { /* halt the ARM7 */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } else { /* it's alive ! */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } } diff --git a/src/mame/machine/dec0.c b/src/mame/machine/dec0.c index 4b96d5b075b..f12c8d7275d 100644 --- a/src/mame/machine/dec0.c +++ b/src/mame/machine/dec0.c @@ -280,7 +280,7 @@ WRITE8_HANDLER( hippodrm_shared_w ) static READ16_HANDLER( hippodrm_68000_share_r ) { - if (offset==0) cpu_yield(); /* A wee helper */ + if (offset==0) cpu_yield(machine->activecpu); /* A wee helper */ return share[offset]&0xff; } @@ -463,7 +463,7 @@ static emu_timer *i8751_timer; static TIMER_CALLBACK( i8751_callback ) { /* Signal main cpu microcontroller task is complete */ - cpunum_set_input_line(machine, 0,5,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],5,HOLD_LINE); i8751_timer=NULL; logerror("i8751: Timer called!!!\n"); @@ -477,7 +477,7 @@ void dec0_i8751_write(running_machine *machine, int data) if (GAME==2) baddudes_i8751_write(machine, data); if (GAME==3) birdtry_i8751_write(machine, data); - cpunum_set_input_line(machine, 0,5,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],5,HOLD_LINE); /* Simulate the processing time of the i8751, time value is guessed if (i8751_timer) @@ -526,7 +526,7 @@ static WRITE16_HANDLER( robocop_68000_share_w ) robocop_shared_ram[offset]=data&0xff; if (offset==0x7ff) /* A control address - not standard ram */ - cpunum_set_input_line(machine, 2,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[2],0,HOLD_LINE); } /******************************************************************************/ diff --git a/src/mame/machine/decocass.c b/src/mame/machine/decocass.c index ddf9e04ad80..3699c359374 100644 --- a/src/mame/machine/decocass.c +++ b/src/mame/machine/decocass.c @@ -108,7 +108,7 @@ WRITE8_HANDLER( decocass_sound_command_w ) decocass_sound_ack |= 0x80; /* remove snd cpu data ack bit. i don't see it in the schems, but... */ decocass_sound_ack &= ~0x40; - cpunum_set_input_line(machine, 1, M6502_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6502_IRQ_LINE, ASSERT_LINE); } READ8_HANDLER( decocass_sound_data_r ) @@ -136,14 +136,14 @@ READ8_HANDLER( decocass_sound_command_r ) { UINT8 data = soundlatch_r(machine, 0); LOG(4,("CPU #%d sound command <- $%02x\n", cpunum_get_active(), data)); - cpunum_set_input_line(machine, 1, M6502_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6502_IRQ_LINE, CLEAR_LINE); decocass_sound_ack &= ~0x80; return data; } static TIMER_CALLBACK( decocass_sound_nmi_pulse ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } WRITE8_HANDLER( decocass_sound_nmi_enable_w ) @@ -176,7 +176,7 @@ WRITE8_HANDLER( decocass_sound_data_ack_reset_w ) WRITE8_HANDLER( decocass_nmi_reset_w ) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE ); } WRITE8_HANDLER( decocass_quadrature_decoder_reset_w ) @@ -284,14 +284,14 @@ WRITE8_HANDLER( decocass_reset_w ) decocass_reset = data; /* CPU #1 active hight reset */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, data & 0x01 ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, data & 0x01 ); /* on reset also remove the sound timer */ if (data & 1) timer_adjust_oneshot(decocass_sound_timer, attotime_never, 0); /* 8041 active low reset */ - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x08) ^ 0x08 ); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x08) ^ 0x08 ); } static const char *dirnm(int speed) diff --git a/src/mame/machine/decoprot.c b/src/mame/machine/decoprot.c index c3afe6aa6e2..e54aceddf59 100644 --- a/src/mame/machine/decoprot.c +++ b/src/mame/machine/decoprot.c @@ -110,7 +110,7 @@ WRITE16_HANDLER( deco16_104_prot_w ) /* Wizard Fire */ { if (offset==(0x150/2)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } @@ -228,7 +228,7 @@ WRITE16_HANDLER( deco16_60_prot_w ) /* Edward Randy */ { if (offset==(0x64/2)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); } COMBINE_DATA(&deco16_prot_ram[offset]); @@ -417,7 +417,7 @@ WRITE16_HANDLER( deco16_66_prot_w ) /* Mutant Fighter */ { if (offset==(0x64/2)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } @@ -603,7 +603,7 @@ WRITE16_HANDLER( deco16_104_cninja_prot_w ) { if (offset==(0xa8/2)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } @@ -665,7 +665,7 @@ WRITE16_HANDLER( deco16_146_funkyjet_prot_w ) if (offset == (0x10a >> 1)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } } @@ -784,7 +784,7 @@ WRITE16_HANDLER( deco16_104_rohga_prot_w ) if (offset==(0xa8/2)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } @@ -1213,7 +1213,7 @@ static WRITE16_HANDLER( deco16_146_core_prot_w ) const int maskport=0x6c0; if (writeport==sndport) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } @@ -1741,7 +1741,7 @@ WRITE16_HANDLER( dietgo_104_prot_w ) { if (offset==(0x380/2)) { soundlatch_w(machine,0,data&0xff); - cpunum_set_input_line(machine, 1,0,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],0,HOLD_LINE); return; } logerror("Protection PC %06x: warning - write unmapped memory address %04x %04x\n",cpu_get_pc(machine->activecpu),offset<<1,data); diff --git a/src/mame/machine/docastle.c b/src/mame/machine/docastle.c index a77b2821ca6..d25f89083ff 100644 --- a/src/mame/machine/docastle.c +++ b/src/mame/machine/docastle.c @@ -35,14 +35,14 @@ if it was a small shared buffer. The order of operations is: */ READ8_HANDLER( docastle_shared0_r ) { - if (offset == 8) logerror("CPU #0 shared0r clock = %d\n",(UINT32)activecpu_gettotalcycles()); + if (offset == 8) logerror("CPU #0 shared0r clock = %d\n",(UINT32)cpu_get_total_cycles(machine->activecpu)); return buffer0[offset]; } READ8_HANDLER( docastle_shared1_r ) { - if (offset == 8) logerror("CPU #1 shared1r clock = %d\n",(UINT32)activecpu_gettotalcycles()); + if (offset == 8) logerror("CPU #1 shared1r clock = %d\n",(UINT32)cpu_get_total_cycles(machine->activecpu)); return buffer1[offset]; } @@ -50,13 +50,13 @@ READ8_HANDLER( docastle_shared1_r ) WRITE8_HANDLER( docastle_shared0_w ) { if (offset == 8) logerror("CPU #1 shared0w %02x %02x %02x %02x %02x %02x %02x %02x %02x clock = %d\n", - buffer0[0],buffer0[1],buffer0[2],buffer0[3],buffer0[4],buffer0[5],buffer0[6],buffer0[7],data,(UINT32)activecpu_gettotalcycles()); + buffer0[0],buffer0[1],buffer0[2],buffer0[3],buffer0[4],buffer0[5],buffer0[6],buffer0[7],data,(UINT32)cpu_get_total_cycles(machine->activecpu)); buffer0[offset] = data; if (offset == 8) /* awake the master CPU */ - cpu_trigger(machine, 500); + cpuexec_trigger(machine, 500); } @@ -67,10 +67,10 @@ WRITE8_HANDLER( docastle_shared1_w ) if (offset == 8) { logerror("CPU #0 shared1w %02x %02x %02x %02x %02x %02x %02x %02x %02x clock = %d\n", - buffer1[0],buffer1[1],buffer1[2],buffer1[3],buffer1[4],buffer1[5],buffer1[6],buffer1[7],data,(UINT32)activecpu_gettotalcycles()); + buffer1[0],buffer1[1],buffer1[2],buffer1[3],buffer1[4],buffer1[5],buffer1[6],buffer1[7],data,(UINT32)cpu_get_total_cycles(machine->activecpu)); /* freeze execution of the master CPU until the slave has used the shared memory */ - cpu_spinuntil_trigger(500); + cpu_spinuntil_trigger(machine->activecpu, 500); } } @@ -78,5 +78,5 @@ WRITE8_HANDLER( docastle_shared1_w ) WRITE8_HANDLER( docastle_nmitrigger_w ) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); } diff --git a/src/mame/machine/flstory.c b/src/mame/machine/flstory.c index 57be2a823ea..c6f8fbbc74c 100644 --- a/src/mame/machine/flstory.c +++ b/src/mame/machine/flstory.c @@ -68,7 +68,7 @@ WRITE8_HANDLER( flstory_68705_portB_w ) if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); main_sent = 0; logerror("read command %02x from main cpu\n",portA_in); } @@ -115,7 +115,7 @@ WRITE8_HANDLER( flstory_mcu_w ) logerror("%04x: mcu_w %02x\n",cpu_get_pc(machine->activecpu),data); from_main = data; main_sent = 1; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); } READ8_HANDLER( flstory_mcu_r ) diff --git a/src/mame/machine/gaelco2.c b/src/mame/machine/gaelco2.c index 73284304103..97f78b0552e 100644 --- a/src/mame/machine/gaelco2.c +++ b/src/mame/machine/gaelco2.c @@ -190,14 +190,14 @@ WRITE16_HANDLER( bang_clr_gun_int_w ) INTERRUPT_GEN( bang_interrupt ) { - if (cpu_getiloops() == 0){ - cpunum_set_input_line(machine, 0, 2, HOLD_LINE); + if (cpu_getiloops(device) == 0){ + cpu_set_input_line(device, 2, HOLD_LINE); clr_gun_int = 0; } - else if (cpu_getiloops() % 2){ + else if (cpu_getiloops(device) % 2){ if (clr_gun_int){ - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } } } diff --git a/src/mame/machine/galaxold.c b/src/mame/machine/galaxold.c index 7223a621857..3c24e4a216c 100644 --- a/src/mame/machine/galaxold.c +++ b/src/mame/machine/galaxold.c @@ -28,7 +28,7 @@ static void galaxold_7474_9M_2_callback(void) static void galaxold_7474_9M_1_callback(void) { /* Q goes to the NMI line */ - cpunum_set_input_line(Machine, 0, irq_line, TTL7474_output_r(1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(Machine->cpu[0], irq_line, TTL7474_output_r(1) ? CLEAR_LINE : ASSERT_LINE); } static const struct TTL7474_interface galaxold_7474_9M_2_intf = @@ -403,7 +403,7 @@ DRIVER_INIT( 4in1 ) INTERRUPT_GEN( hunchbks_vh_interrupt ) { - cpunum_set_input_line_and_vector(machine, 0,0,PULSE_LINE,0x03); + cpu_set_input_line_and_vector(device,0,PULSE_LINE,0x03); } DRIVER_INIT( ladybugg ) diff --git a/src/mame/machine/harddriv.c b/src/mame/machine/harddriv.c index 56835511e45..47b11a89f34 100644 --- a/src/mame/machine/harddriv.c +++ b/src/mame/machine/harddriv.c @@ -173,9 +173,9 @@ MACHINE_RESET( harddriv ) atarigen_interrupt_reset(hd68k_update_interrupts); /* halt several of the DSPs to start */ - if (hdcpu_adsp != -1) cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, ASSERT_LINE); - if (hdcpu_dsp32 != -1) cpunum_set_input_line(machine, hdcpu_dsp32, INPUT_LINE_HALT, ASSERT_LINE); - if (hdcpu_sounddsp != -1) cpunum_set_input_line(machine, hdcpu_sounddsp, INPUT_LINE_HALT, ASSERT_LINE); + if (hdcpu_adsp != -1) cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, ASSERT_LINE); + if (hdcpu_dsp32 != -1) cpu_set_input_line(machine->cpu[hdcpu_dsp32], INPUT_LINE_HALT, ASSERT_LINE); + if (hdcpu_sounddsp != -1) cpu_set_input_line(machine->cpu[hdcpu_sounddsp], INPUT_LINE_HALT, ASSERT_LINE); /* if we found a 6502, reset the JSA board */ if (hdcpu_jsa != -1) @@ -210,19 +210,19 @@ MACHINE_RESET( harddriv ) static void hd68k_update_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, hdcpu_main, 1, msp_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, hdcpu_main, 2, adsp_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, hdcpu_main, 3, gsp_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, hdcpu_main, 4, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); /* /LINKIRQ on STUN Runner */ - cpunum_set_input_line(machine, hdcpu_main, 5, irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, hdcpu_main, 6, duart_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_main], 1, msp_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_main], 2, adsp_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_main], 3, gsp_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_main], 4, atarigen_sound_int_state ? ASSERT_LINE : CLEAR_LINE); /* /LINKIRQ on STUN Runner */ + cpu_set_input_line(machine->cpu[hdcpu_main], 5, irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_main], 6, duart_irq_state ? ASSERT_LINE : CLEAR_LINE); } INTERRUPT_GEN( hd68k_irq_gen ) { irq_state = 1; - atarigen_update_interrupts(machine); + atarigen_update_interrupts(device->machine); } @@ -514,12 +514,12 @@ WRITE16_HANDLER( hd68k_nwr_w ) case 6: /* /GSPRES */ logerror("Write to /GSPRES(%d)\n", data); if (hdcpu_gsp != -1) - cpunum_set_input_line(machine, hdcpu_gsp, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_gsp], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); break; case 7: /* /MSPRES */ logerror("Write to /MSPRES(%d)\n", data); if (hdcpu_msp != -1) - cpunum_set_input_line(machine, hdcpu_msp, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_msp], INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE); break; } } @@ -713,7 +713,7 @@ WRITE16_HANDLER( hdgsp_io_w ) { last_gsp_shiftreg = new_shiftreg; if (new_shiftreg) - cpu_yield(); + cpu_yield(machine->activecpu); } } @@ -754,7 +754,7 @@ static TIMER_CALLBACK( stmsp_sync_update ) offs_t offset = (param >> 16) & 0xfff; UINT16 data = param; stmsp_sync[which][offset] = data; - cpu_triggerint(machine, hdcpu_msp); + cpu_triggerint(machine->cpu[hdcpu_msp]); } @@ -854,7 +854,7 @@ WRITE16_HANDLER( hd68k_adsp_data_w ) { logerror("%06X:ADSP sync address written (%04X)\n", cpu_get_previouspc(machine->activecpu), data); timer_call_after_resynch(NULL, 0, 0); - cpu_triggerint(machine, hdcpu_adsp); + cpu_triggerint(machine->cpu[hdcpu_adsp]); } else logerror("%06X:ADSP W@%04X (%04X)\n", cpu_get_previouspc(machine->activecpu), offset, data); @@ -964,14 +964,14 @@ WRITE16_HANDLER( hd68k_adsp_control_w ) adsp_br = !val; logerror("ADSP /BR = %d\n", !adsp_br); if (adsp_br || adsp_halt) - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, ASSERT_LINE); else { - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, CLEAR_LINE); /* a yield in this case is not enough */ /* we would need to increase the interleaving otherwise */ /* note that this only affects the test mode */ - cpu_spin(); + cpu_spin(machine->activecpu); } break; @@ -981,21 +981,21 @@ WRITE16_HANDLER( hd68k_adsp_control_w ) adsp_halt = !val; logerror("ADSP /HALT = %d\n", !adsp_halt); if (adsp_br || adsp_halt) - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, ASSERT_LINE); else { - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, CLEAR_LINE); /* a yield in this case is not enough */ /* we would need to increase the interleaving otherwise */ /* note that this only affects the test mode */ - cpu_spin(); + cpu_spin(machine->activecpu); } break; case 7: logerror("ADSP reset = %d\n", val); - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE); - cpu_yield(); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE); + cpu_yield(machine->activecpu); break; default: @@ -1110,9 +1110,9 @@ static void update_ds3_irq(void) { /* update the IRQ2 signal to the ADSP2101 */ if (!(!ds3_g68flag && ds3_g68irqs) && !(ds3_gflag && ds3_gfirqs)) - cpunum_set_input_line(Machine, hdcpu_adsp, ADSP2100_IRQ2, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[hdcpu_adsp], ADSP2100_IRQ2, ASSERT_LINE); else - cpunum_set_input_line(Machine, hdcpu_adsp, ADSP2100_IRQ2, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[hdcpu_adsp], ADSP2100_IRQ2, CLEAR_LINE); } @@ -1135,19 +1135,19 @@ WRITE16_HANDLER( hd68k_ds3_control_w ) /* the ADSP at the next instruction boundary */ adsp_br = !val; if (adsp_br) - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, ASSERT_LINE); else { - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_HALT, CLEAR_LINE); /* a yield in this case is not enough */ /* we would need to increase the interleaving otherwise */ /* note that this only affects the test mode */ - cpu_spin(); + cpu_spin(machine->activecpu); } break; case 3: - cpunum_set_input_line(machine, hdcpu_adsp, INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_adsp], INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE); if (val && !ds3_reset) { ds3_gflag = 0; @@ -1158,7 +1158,7 @@ WRITE16_HANDLER( hd68k_ds3_control_w ) update_ds3_irq(); } ds3_reset = val; - cpu_yield(); + cpu_yield(machine->activecpu); logerror("DS III reset = %d\n", val); break; @@ -1231,8 +1231,8 @@ READ16_HANDLER( hd68k_ds3_gdata_r ) /* if we just cleared the IRQ, we are going to do some VERY timing critical reads */ /* it is important that all the CPUs be in sync before we continue, so spin a little */ /* while to let everyone else catch up */ - cpu_spinuntil_trigger(DS3_TRIGGER); - cpu_triggertime(ATTOTIME_IN_USEC(5), DS3_TRIGGER); + cpu_spinuntil_trigger(machine->activecpu, DS3_TRIGGER); + cpuexec_triggertime(machine, DS3_TRIGGER, ATTOTIME_IN_USEC(5)); return ds3_gdata; } @@ -1245,7 +1245,7 @@ WRITE16_HANDLER( hd68k_ds3_gdata_w ) COMBINE_DATA(&ds3_g68data); ds3_g68flag = 1; ds3_gcmd = offset & 1; - cpu_triggerint(machine, hdcpu_adsp); + cpu_triggerint(machine->cpu[hdcpu_adsp]); update_ds3_irq(); } @@ -1323,7 +1323,7 @@ WRITE16_HANDLER( hdds3_special_w ) update_ds3_irq(); /* once we've written data, trigger the main CPU to wake up again */ - cpu_trigger(machine, DS3_TRIGGER); + cpuexec_trigger(machine, DS3_TRIGGER); break; case 1: @@ -1436,11 +1436,11 @@ WRITE16_HANDLER( hd68k_dsk_control_w ) switch (offset & 7) { case 0: /* DSPRESTN */ - cpunum_set_input_line(machine, hdcpu_dsp32, INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_dsp32], INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE); break; case 1: /* DSPZN */ - cpunum_set_input_line(machine, hdcpu_dsp32, INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[hdcpu_dsp32], INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE); break; case 2: /* ZW1 */ @@ -1765,7 +1765,7 @@ READ16_HANDLER( hdgsp_speedup_r ) cpunum_get_active() == hdcpu_gsp && cpu_get_pc(machine->activecpu) == hdgsp_speedup_pc) { gsp_speedup_count[0]++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return result; @@ -1778,7 +1778,7 @@ WRITE16_HANDLER( hdgsp_speedup1_w ) /* if $ffff is written, send an "interrupt" trigger to break us out of the spin loop */ if (hdgsp_speedup_addr[0][offset] == 0xffff) - cpu_triggerint(machine, hdcpu_gsp); + cpu_triggerint(machine->cpu[hdcpu_gsp]); } @@ -1788,7 +1788,7 @@ WRITE16_HANDLER( hdgsp_speedup2_w ) /* if $ffff is written, send an "interrupt" trigger to break us out of the spin loop */ if (hdgsp_speedup_addr[1][offset] == 0xffff) - cpu_triggerint(machine, hdcpu_gsp); + cpu_triggerint(machine->cpu[hdcpu_gsp]); } @@ -1810,7 +1810,7 @@ READ16_HANDLER( rdgsp_speedup1_r ) (result & 0xff) < cpu_get_reg(machine->activecpu, TMS34010_A1)) { gsp_speedup_count[0]++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return result; @@ -1821,7 +1821,7 @@ WRITE16_HANDLER( rdgsp_speedup1_w ) { COMBINE_DATA(&hdgsp_speedup_addr[0][offset]); if (cpunum_get_active() != hdcpu_gsp) - cpu_triggerint(machine, hdcpu_gsp); + cpu_triggerint(machine->cpu[hdcpu_gsp]); } @@ -1844,7 +1844,7 @@ READ16_HANDLER( hdmsp_speedup_r ) if (data == 0 && cpu_get_pc(machine->activecpu) == hdmsp_speedup_pc && cpunum_get_active() == hdcpu_msp) { msp_speedup_count[0]++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return data; @@ -1855,7 +1855,7 @@ WRITE16_HANDLER( hdmsp_speedup_w ) { COMBINE_DATA(&hdmsp_speedup_addr[offset]); if (offset == 0 && hdmsp_speedup_addr[offset] != 0) - cpu_triggerint(machine, hdcpu_msp); + cpu_triggerint(machine->cpu[hdcpu_msp]); } @@ -1876,7 +1876,7 @@ READ16_HANDLER( stmsp_speedup_r ) cpu_get_pc(machine->activecpu) == 0x3c0) { msp_speedup_count[0]++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return stmsp_sync[0][1]; } @@ -1901,7 +1901,7 @@ READ16_HANDLER( hdadsp_speedup_r ) if (data == 0xffff && cpu_get_pc(machine->activecpu) <= 0x3b && cpunum_get_active() == hdcpu_adsp) { adsp_speedup_count[0]++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return data; @@ -1915,7 +1915,7 @@ READ16_HANDLER( hdds3_speedup_r ) if (data != 0 && cpu_get_pc(machine->activecpu) == hdds3_speedup_pc && cpunum_get_active() == hdcpu_adsp) { adsp_speedup_count[2]++; - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } return data; diff --git a/src/mame/machine/irobot.c b/src/mame/machine/irobot.c index b6beddf142e..9303b27ac7d 100644 --- a/src/mame/machine/irobot.c +++ b/src/mame/machine/irobot.c @@ -180,7 +180,7 @@ static TIMER_CALLBACK( scanline_callback ) if (scanline == 224) irvg_vblank=1; logerror("SCANLINE CALLBACK %d\n",scanline); /* set the IRQ line state based on the 32V line state */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, (scanline & 32) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, (scanline & 32) ? ASSERT_LINE : CLEAR_LINE); /* set a callback for the next 32-scanline increment */ scanline += 32; @@ -457,7 +457,7 @@ static TIMER_CALLBACK( irmb_done_callback ) { logerror("mb done. "); irmb_running = 0; - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); } @@ -861,7 +861,7 @@ default: case 0x3f: IXOR(irmb_din(curop), 0); break; timer_adjust_oneshot(irmb_timer, attotime_mul(ATTOTIME_IN_NSEC(200), icount), 0); } #else - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); #endif irmb_running=1; } diff --git a/src/mame/machine/jackal.c b/src/mame/machine/jackal.c index 64fe6e67757..c14128a9a46 100644 --- a/src/mame/machine/jackal.c +++ b/src/mame/machine/jackal.c @@ -23,7 +23,7 @@ MACHINE_RESET( jackal ) // HACK: running at the nominal clock rate, music stops working // at the beginning of the game. This fixes it. - cpunum_set_clockscale(machine, 1, 1.2f); + cpu_set_clockscale(machine->cpu[1], 1.2f); memory_set_bankptr(1,&rgn[0x4000]); jackal_rambank = rgn; diff --git a/src/mame/machine/konppc.c b/src/mame/machine/konppc.c index 5133fe88e26..967c4d860a4 100644 --- a/src/mame/machine/konppc.c +++ b/src/mame/machine/konppc.c @@ -161,15 +161,15 @@ WRITE32_HANDLER( cgboard_dsp_comm_w_ppc ) pci_bridge_enable[cgboard_id] = (data & 0x20000000) ? 1 : 0; if (data & 0x10000000) - cpunum_set_input_line(machine, dsp, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[dsp], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, dsp, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[dsp], INPUT_LINE_RESET, ASSERT_LINE); if (data & 0x02000000) - cpunum_set_input_line(machine, dsp, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[dsp], INPUT_LINE_IRQ0, ASSERT_LINE); if (data & 0x04000000) - cpunum_set_input_line(machine, dsp, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[dsp], INPUT_LINE_IRQ1, ASSERT_LINE); } if (ACCESSING_BITS_0_7) @@ -198,7 +198,7 @@ WRITE32_HANDLER( cgboard_dsp_shared_w_ppc ) { if (cgboard_id < MAX_CG_BOARDS) { - cpu_trigger(machine, 10000); // Remove the timeout (a part of the GTI Club FIFO test workaround) + cpuexec_trigger(machine, 10000); // Remove the timeout (a part of the GTI Club FIFO test workaround) COMBINE_DATA(dsp_shared_ram[cgboard_id] + (offset + (dsp_shared_ram_bank[cgboard_id] * DSP_BANK_SIZE_WORD))); } } @@ -224,7 +224,7 @@ static void dsp_comm_sharc_w(running_machine *machine, int board, int offset, UI case CGBOARD_TYPE_ZR107: case CGBOARD_TYPE_GTICLUB: { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG0, ASSERT_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG0, ASSERT_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(0, ASSERT_LINE); cpu_pop_context(); @@ -232,7 +232,7 @@ static void dsp_comm_sharc_w(running_machine *machine, int board, int offset, UI if (offset == 1) { if (data & 0x03) - cpunum_set_input_line(machine, 2, INPUT_LINE_IRQ2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_IRQ2, ASSERT_LINE); } break; } diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index a2256311d55..f2007a0b549 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -473,7 +473,7 @@ static TIMER_CALLBACK( leland_interrupt_callback ) /* interrupts generated on the VA10 line, which is every */ /* 16 scanlines starting with scanline #8 */ - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); /* set a timer for the next one */ scanline += 16; @@ -488,7 +488,7 @@ static TIMER_CALLBACK( ataxx_interrupt_callback ) int scanline = param; /* interrupts generated according to the interrupt control register */ - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); /* set a timer for the next one */ timer_adjust_oneshot(master_int_timer, video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), scanline); @@ -498,8 +498,8 @@ static TIMER_CALLBACK( ataxx_interrupt_callback ) INTERRUPT_GEN( leland_master_interrupt ) { /* check for coins here */ - if ((input_port_read(machine, "IN1") & 0x0e) != 0x0e) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + if ((input_port_read(device->machine, "IN1") & 0x0e) != 0x0e) + cpu_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE); } @@ -1163,7 +1163,7 @@ READ8_HANDLER( leland_master_input_r ) case 0x02: /* /GIN2 */ case 0x12: - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, CLEAR_LINE); break; case 0x03: /* /IGID */ @@ -1194,10 +1194,10 @@ WRITE8_HANDLER( leland_master_output_w ) switch (offset) { case 0x09: /* /MCONT */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); wcol_enable = (data & 0x02); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 1, 0, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); if (LOG_EEPROM) logerror("%04X:EE write %d%d%d\n", safe_cpu_get_pc(machine->activecpu), (data >> 6) & 1, (data >> 5) & 1, (data >> 4) & 1); @@ -1272,9 +1272,9 @@ WRITE8_HANDLER( ataxx_master_output_w ) break; case 0x05: /* /SLV0 */ - cpunum_set_input_line(machine, 1, 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], 0, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); break; case 0x08: /* */ diff --git a/src/mame/machine/lkage.c b/src/mame/machine/lkage.c index e1288732df1..719ae809443 100644 --- a/src/mame/machine/lkage.c +++ b/src/mame/machine/lkage.c @@ -68,7 +68,7 @@ WRITE8_HANDLER( lkage_68705_portB_w ) if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); main_sent = 0; logerror("read command %02x from main cpu\n",portA_in); } @@ -116,7 +116,7 @@ WRITE8_HANDLER( lkage_mcu_w ) logerror("%04x: mcu_w %02x\n",cpu_get_pc(machine->activecpu),data); from_main = data; main_sent = 1; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); } READ8_HANDLER( lkage_mcu_r ) diff --git a/src/mame/machine/lsasquad.c b/src/mame/machine/lsasquad.c index 43a7492e248..3c579ef4494 100644 --- a/src/mame/machine/lsasquad.c +++ b/src/mame/machine/lsasquad.c @@ -18,7 +18,7 @@ int lsasquad_sound_pending; static TIMER_CALLBACK( nmi_callback ) { - if (sound_nmi_enable) cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + if (sound_nmi_enable) cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); else pending_nmi = 1; } @@ -32,7 +32,7 @@ WRITE8_HANDLER( lsasquad_sh_nmi_enable_w ) sound_nmi_enable = 1; if (pending_nmi) { - cpunum_set_input_line(machine, 1,INPUT_LINE_NMI,PULSE_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_NMI,PULSE_LINE); pending_nmi = 0; } } @@ -145,7 +145,7 @@ WRITE8_HANDLER( lsasquad_68705_portB_w ) if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); main_sent = 0; //logerror("read command %02x from main cpu\n",portA_in); } @@ -169,7 +169,7 @@ WRITE8_HANDLER( lsasquad_mcu_w ) //logerror("%04x: mcu_w %02x\n",cpu_get_pc(machine->activecpu),data); from_main = data; main_sent = 1; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); } READ8_HANDLER( lsasquad_mcu_r ) diff --git a/src/mame/machine/mcr.c b/src/mame/machine/mcr.c index 57c45427ad3..7f38c180a3a 100644 --- a/src/mame/machine/mcr.c +++ b/src/mame/machine/mcr.c @@ -329,7 +329,7 @@ MACHINE_START( mcr68 ) } -static void mcr68_common_init(void) +static void mcr68_common_init(running_machine *machine) { int i; @@ -354,7 +354,7 @@ static void mcr68_common_init(void) } /* initialize the clock */ - m6840_internal_counter_period = ATTOTIME_IN_HZ(cpunum_get_clock(0) / 10); + m6840_internal_counter_period = ATTOTIME_IN_HZ(cpu_get_clock(machine->cpu[0]) / 10); /* reset cocktail flip */ mcr_cocktail_flip = 0; @@ -367,7 +367,7 @@ static void mcr68_common_init(void) MACHINE_RESET( mcr68 ) { /* for the most part all MCR/68k games are the same */ - mcr68_common_init(); + mcr68_common_init(machine); v493_callback = mcr68_493_callback; /* vectors are 1 and 2 */ @@ -390,7 +390,7 @@ MACHINE_START( zwackery ) MACHINE_RESET( zwackery ) { /* for the most part all MCR/68k games are the same */ - mcr68_common_init(); + mcr68_common_init(machine); v493_callback = zwackery_493_callback; /* append our PIA state onto the existing one and reinit */ @@ -411,7 +411,7 @@ MACHINE_RESET( zwackery ) INTERRUPT_GEN( mcr_interrupt ) { - const device_config *ctc = devtag_get_device(machine, Z80CTC, "ctc"); + const device_config *ctc = devtag_get_device(device->machine, Z80CTC, "ctc"); /* CTC line 2 is connected to VBLANK, which is once every 1/2 frame */ /* for the 30Hz interlaced display */ @@ -420,7 +420,7 @@ INTERRUPT_GEN( mcr_interrupt ) /* CTC line 3 is connected to 493, which is signalled once every */ /* frame at 30Hz */ - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { z80ctc_trg3_w(ctc, 0, 1); z80ctc_trg3_w(ctc, 0, 0); @@ -430,11 +430,11 @@ INTERRUPT_GEN( mcr_interrupt ) INTERRUPT_GEN( mcr_ipu_interrupt ) { - const device_config *ctc = devtag_get_device(machine, Z80CTC, "ipu_ctc"); + const device_config *ctc = devtag_get_device(device->machine, Z80CTC, "ipu_ctc"); /* CTC line 3 is connected to 493, which is signalled once every */ /* frame at 30Hz */ - if (cpu_getiloops() == 0) + if (cpu_getiloops(device) == 0) { z80ctc_trg3_w(ctc, 0, 1); z80ctc_trg3_w(ctc, 0, 0); @@ -446,7 +446,7 @@ INTERRUPT_GEN( mcr68_interrupt ) { /* update the 6840 VBLANK clock */ if (!m6840_state[0].timer_active) - subtract_from_counter(machine, 0, 1); + subtract_from_counter(device->machine, 0, 1); logerror("--- VBLANK ---\n"); @@ -466,8 +466,8 @@ INTERRUPT_GEN( mcr68_interrupt ) static void update_mcr68_interrupts(running_machine *machine) { - cpunum_set_input_line(machine, 0, v493_irq_vector, v493_irq_state ? ASSERT_LINE : CLEAR_LINE); - cpunum_set_input_line(machine, 0, m6840_irq_vector, m6840_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], v493_irq_vector, v493_irq_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], m6840_irq_vector, m6840_irq_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/machine/mexico86.c b/src/mame/machine/mexico86.c index d1aeb6cc82b..57c0031900a 100644 --- a/src/mame/machine/mexico86.c +++ b/src/mame/machine/mexico86.c @@ -22,11 +22,11 @@ bit 0 = ? (unused?) */ WRITE8_HANDLER( mexico86_f008_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 4) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 4) ? CLEAR_LINE : ASSERT_LINE); if (machine->config->cpu[2].type != CPU_DUMMY) { // mexico 86, knight boy - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 2) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 2) ? CLEAR_LINE : ASSERT_LINE); } else { @@ -155,10 +155,10 @@ logerror("initialising MCU\n"); INTERRUPT_GEN( kikikai_interrupt ) { if (kikikai_mcu_running) - mcu_simulate(machine); + mcu_simulate(device->machine); - cpunum_set_input_line_vector(0,0,mexico86_protection_ram[0]); - cpunum_set_input_line(machine, 0,0,HOLD_LINE); + cpu_set_input_line_vector(device,0,mexico86_protection_ram[0]); + cpu_set_input_line(device,0,HOLD_LINE); } @@ -224,10 +224,10 @@ static void kiki_clogic(int address, int latch) INTERRUPT_GEN( mexico86_m68705_interrupt ) { /* I don't know how to handle the interrupt line so I just toggle it every time. */ - if (cpu_getiloops() & 1) - cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (cpu_getiloops(device) & 1) + cpu_set_input_line(device,0,CLEAR_LINE); else - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(device,0,ASSERT_LINE); } @@ -314,9 +314,9 @@ WRITE8_HANDLER( mexico86_68705_portB_w ) } if ((ddrB & 0x20) && (data & 0x20) && (~portB_out & 0x20)) { - cpunum_set_input_line_vector(0,0,mexico86_protection_ram[0]); - //cpunum_set_input_line(machine, 0,0,PULSE_LINE); - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); //AT: HOLD_LINE works better in Z80 interrupt mode 1. + cpu_set_input_line_vector(machine->cpu[0],0,mexico86_protection_ram[0]); + //cpu_set_input_line(machine->cpu[0],0,PULSE_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); //AT: HOLD_LINE works better in Z80 interrupt mode 1. } if ((ddrB & 0x40) && (~data & 0x40) && (portB_out & 0x40)) { diff --git a/src/mame/machine/mhavoc.c b/src/mame/machine/mhavoc.c index 9a878e07929..e18a68f6991 100644 --- a/src/mame/machine/mhavoc.c +++ b/src/mame/machine/mhavoc.c @@ -44,7 +44,7 @@ static TIMER_CALLBACK( cpu_irq_clock ) alpha_irq_clock++; if ((alpha_irq_clock & 0x0c) == 0x0c) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); alpha_irq_clock_enable = 0; } } @@ -53,7 +53,7 @@ static TIMER_CALLBACK( cpu_irq_clock ) if (has_gamma_cpu) { gamma_irq_clock++; - cpunum_set_input_line(machine, 1, 0, (gamma_irq_clock & 0x08) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, (gamma_irq_clock & 0x08) ? ASSERT_LINE : CLEAR_LINE); } } @@ -61,7 +61,7 @@ static TIMER_CALLBACK( cpu_irq_clock ) WRITE8_HANDLER( mhavoc_alpha_irq_ack_w ) { /* clear the line and reset the clock */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); alpha_irq_clock = 0; alpha_irq_clock_enable = 1; } @@ -70,7 +70,7 @@ WRITE8_HANDLER( mhavoc_alpha_irq_ack_w ) WRITE8_HANDLER( mhavoc_gamma_irq_ack_w ) { /* clear the line and reset the clock */ - cpunum_set_input_line(machine, 1, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], 0, CLEAR_LINE); gamma_irq_clock = 0; } @@ -84,7 +84,7 @@ WRITE8_HANDLER( mhavoc_gamma_irq_ack_w ) MACHINE_RESET( mhavoc ) { - has_gamma_cpu = (cpu_gettotalcpu() > 1); + has_gamma_cpu = (machine->cpu[1] != NULL); memory_configure_bank(1, 0, 1, mhavoc_zram0, 0); memory_configure_bank(1, 1, 1, mhavoc_zram1, 0); @@ -143,7 +143,7 @@ static TIMER_CALLBACK( delayed_gamma_w ) alpha_data = param; /* signal with an NMI pulse */ - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); /* the sound CPU needs to reply in 250microseconds (according to Neil Bradley) */ timer_set(ATTOTIME_IN_USEC(250), NULL, 0, 0); @@ -268,7 +268,7 @@ WRITE8_HANDLER( mhavoc_out_0_w ) player_1 = (data >> 5) & 1; /* Bit 3 = Gamma reset */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE); if (!(data & 0x08)) { logerror("\t\t\t\t*** resetting gamma processor. ***\n"); diff --git a/src/mame/machine/midwunit.c b/src/mame/machine/midwunit.c index db52ac6fbf5..2599f8dc637 100644 --- a/src/mame/machine/midwunit.c +++ b/src/mame/machine/midwunit.c @@ -258,7 +258,7 @@ void midxunit_dcs_output_full(int state) { /* only signal if not in loopback state */ if (uart[1] != 0x66) - cpunum_set_input_line(Machine, 0, 1, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(Machine->cpu[0], 1, state ? ASSERT_LINE : CLEAR_LINE); } @@ -436,7 +436,7 @@ static WRITE16_HANDLER( umk3_palette_hack_w ) without significantly impacting the rest of the system. */ COMBINE_DATA(&umk3_palette[offset]); - activecpu_adjust_icount(-100); + cpu_adjust_icount(machine->activecpu, -100); /* printf("in=%04X%04X out=%04X%04X\n", umk3_palette[3], umk3_palette[2], umk3_palette[1], umk3_palette[0]); */ } diff --git a/src/mame/machine/midyunit.c b/src/mame/machine/midyunit.c index 22db2aacf6e..1e3e87e670a 100644 --- a/src/mame/machine/midyunit.c +++ b/src/mame/machine/midyunit.c @@ -583,7 +583,7 @@ WRITE16_HANDLER( midyunit_sound_w ) case SOUND_YAWDIM: soundlatch_w(machine, 0, data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); break; } } diff --git a/src/mame/machine/model1.c b/src/mame/machine/model1.c index f022ff5d538..fa639cc24fc 100644 --- a/src/mame/machine/model1.c +++ b/src/mame/machine/model1.c @@ -2078,7 +2078,7 @@ READ16_HANDLER( model1_tgp_vr_adr_r ) if ( ram_adr == 0 && copro_fifoin_num != 0 ) { /* spin the main cpu and let the TGP catch up */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(100)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(100)); } return ram_adr; @@ -2104,7 +2104,7 @@ READ16_HANDLER( model1_vr_tgp_ram_r ) if ( ram_adr == 0 && r == 0xffff ) { /* if the TGP is busy, spin some more */ - cpu_spinuntil_time(ATTOTIME_IN_USEC(100)); + cpu_spinuntil_time(machine->activecpu, ATTOTIME_IN_USEC(100)); } if ( ram_adr & 0x8000 ) diff --git a/src/mame/machine/mw8080bw.c b/src/mame/machine/mw8080bw.c index 3b3bbbbc6a2..97ef0ecbd23 100644 --- a/src/mame/machine/mw8080bw.c +++ b/src/mame/machine/mw8080bw.c @@ -66,7 +66,7 @@ static TIMER_CALLBACK( mw8080bw_interrupt_callback ) int vpos = video_screen_get_vpos(machine->primary_screen); UINT8 counter = vpos_to_vysnc_chain_counter(vpos); UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3); - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, vector); /* set up for next interrupt */ if (counter == MW8080BW_INT_TRIGGER_COUNT_1) diff --git a/src/mame/machine/n64.c b/src/mame/machine/n64.c index cf4155bb896..e08bb927759 100644 --- a/src/mame/machine/n64.c +++ b/src/mame/machine/n64.c @@ -33,7 +33,7 @@ void signal_rcp_interrupt(running_machine *machine, int interrupt) { mi_interrupt |= interrupt; - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, ASSERT_LINE); } } @@ -43,7 +43,7 @@ void clear_rcp_interrupt(running_machine *machine, int interrupt) //if (!mi_interrupt) { - cpunum_set_input_line(machine, 0, INPUT_LINE_IRQ0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_IRQ0, CLEAR_LINE); } } @@ -210,9 +210,9 @@ static void sp_set_status(UINT32 status) { if (status & 0x1) { - //cpu_trigger(Machine, 6789); + //cpuexec_trigger(Machine, 6789); - cpunum_set_input_line(Machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); cpu_set_reg(Machine->cpu[1], RSP_SR, cpu_get_reg(Machine->cpu[1], RSP_SR) | RSP_STATUS_HALT); //rsp_sp_status |= SP_STATUS_HALT; } @@ -309,10 +309,10 @@ WRITE32_HANDLER( n64_sp_reg_w ) { //if (first_rsp) //{ - // cpu_spinuntil_trigger(6789); + // cpu_spinuntil_trigger(machine->activecpu, 6789); // printf( "Clearing RSP_STATUS_HALT\n" ); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); cpu_set_reg(machine->cpu[1], RSP_SR, cpu_get_reg(machine->cpu[1], RSP_SR) & ~RSP_STATUS_HALT ); // RSP_STATUS &= ~RSP_STATUS_HALT; //} @@ -324,7 +324,7 @@ WRITE32_HANDLER( n64_sp_reg_w ) if (data & 0x00000002) // set halt { // printf( "Setting RSP_STATUS_HALT\n" ); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); cpu_set_reg(machine->cpu[1], RSP_SR, cpu_get_reg(machine->cpu[1], RSP_SR) | RSP_STATUS_HALT ); // RSP_STATUS |= RSP_STATUS_HALT; } @@ -1642,7 +1642,7 @@ void n64_machine_reset(running_machine *machine) audio_timer = timer_alloc(audio_timer_callback, NULL); timer_adjust_oneshot(audio_timer, attotime_never, 0); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); // bootcode differs between CIC-chips, so we can use its checksum to detect the CIC-chip boot_checksum = 0; diff --git a/src/mame/machine/namco50.c b/src/mame/machine/namco50.c index 93d446f7c71..6b73b26a143 100644 --- a/src/mame/machine/namco50.c +++ b/src/mame/machine/namco50.c @@ -254,12 +254,12 @@ ADDRESS_MAP_END static TIMER_CALLBACK( namco_50xx_irq_clear ) { - cpunum_set_input_line(machine, param, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[param], 0, CLEAR_LINE); } static void namco_50xx_irq_set(running_machine *machine, int cpunum) { - cpunum_set_input_line(machine, cpunum, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[cpunum], 0, ASSERT_LINE); // The execution time of one instruction is ~4us, so we must make sure to // give the cpu time to poll the /IRQ input before we clear it. diff --git a/src/mame/machine/namcoio.c b/src/mame/machine/namcoio.c index 88573ab5e9e..d200b341080 100644 --- a/src/mame/machine/namcoio.c +++ b/src/mame/machine/namcoio.c @@ -826,11 +826,11 @@ void namcoio_init(int chipnum, int type, const struct namcoio_interface *intf) static TIMER_CALLBACK( nmi_generate ) { - if (!cpunum_is_suspended(param, SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) + if (!cpu_is_suspended(machine->cpu[param], SUSPEND_REASON_HALT | SUSPEND_REASON_RESET | SUSPEND_REASON_DISABLE)) { LOG(("NMI cpu %d\n",nmi_cpu[param])); - cpunum_set_input_line(machine, nmi_cpu[param], INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[nmi_cpu[param]], INPUT_LINE_NMI, PULSE_LINE); } else LOG(("NMI not generated because cpu %d is suspended\n",nmi_cpu[param])); diff --git a/src/mame/machine/namcond1.c b/src/mame/machine/namcond1.c index c7103a64f42..09175cd95f6 100644 --- a/src/mame/machine/namcond1.c +++ b/src/mame/machine/namcond1.c @@ -48,7 +48,7 @@ MACHINE_RESET( namcond1 ) namcond1_h8_irq5_enabled = 0; // halt the MCU - cpunum_set_input_line(machine, 1,INPUT_LINE_RESET,ASSERT_LINE); + cpu_set_input_line(machine->cpu[1],INPUT_LINE_RESET,ASSERT_LINE); } // instance of the shared ram pointer @@ -97,7 +97,7 @@ WRITE16_HANDLER( namcond1_cuskey_w ) // this is a kludge until we emulate the h8 if ((namcond1_h8_irq5_enabled == 0) && (data != 0x0000)) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } namcond1_h8_irq5_enabled = ( data != 0x0000 ); break; diff --git a/src/mame/machine/namcos1.c b/src/mame/machine/namcos1.c index e876b342107..4011fa3de73 100644 --- a/src/mame/machine/namcos1.c +++ b/src/mame/machine/namcos1.c @@ -601,9 +601,9 @@ WRITE8_HANDLER( namcos1_cpu_control_w ) namcos1_reset = data & 1; } - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); } @@ -876,9 +876,9 @@ MACHINE_RESET( namcos1 ) namcos1_bankswitch(machine, 1, 0x0e01, 0xff); /* stop all CPUs */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, ASSERT_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, ASSERT_LINE); /* mcu patch data clear */ mcu_patch_data = 0; diff --git a/src/mame/machine/namcos2.c b/src/mame/machine/namcos2.c index 4b0a58311c8..805d9c3001d 100644 --- a/src/mame/machine/namcos2.c +++ b/src/mame/machine/namcos2.c @@ -79,16 +79,16 @@ READ16_HANDLER( namcos2_flap_prot_r ) static void ResetAllSubCPUs( running_machine *machine, int state ) { - cpunum_set_input_line(machine, CPU_SLAVE, INPUT_LINE_RESET, state); - cpunum_set_input_line(machine, CPU_MCU, INPUT_LINE_RESET, state); + cpu_set_input_line(machine->cpu[CPU_SLAVE], INPUT_LINE_RESET, state); + cpu_set_input_line(machine->cpu[CPU_MCU], INPUT_LINE_RESET, state); switch( namcos2_gametype ) { case NAMCOS21_SOLVALOU: case NAMCOS21_STARBLADE: case NAMCOS21_AIRCOMBAT: case NAMCOS21_CYBERSLED: - cpunum_set_input_line(machine, 4,INPUT_LINE_RESET,state); /* MASTER DSP */ - cpunum_set_input_line(machine, 5,INPUT_LINE_RESET,state); /* SLAVE DSP */ + cpu_set_input_line(machine->cpu[4],INPUT_LINE_RESET,state); /* MASTER DSP */ + cpu_set_input_line(machine->cpu[5],INPUT_LINE_RESET,state); /* SLAVE DSP */ break; // case NAMCOS21_WINRUN91: @@ -115,7 +115,7 @@ MACHINE_RESET( namcos2 ) /* Initialise the bank select in the sound CPU */ namcos2_sound_bankselect_w(machine,0,0); /* Page in bank 0 */ - cpunum_set_input_line(machine, CPU_SOUND, INPUT_LINE_RESET, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[CPU_SOUND], INPUT_LINE_RESET, ASSERT_LINE ); /* Place CPU2 & CPU3 into the reset condition */ ResetAllSubCPUs( machine, ASSERT_LINE ); @@ -521,20 +521,20 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in case 0x1d0000: if( bWrite ) { - cpunum_set_input_line(machine, altCPU, pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE); - } cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_0], CLEAR_LINE); + cpu_set_input_line(machine->cpu[altCPU], pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE); + } cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_0], CLEAR_LINE); break; case 0x1d2000: - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_1], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_1], CLEAR_LINE); break; case 0x1d4000: if( bWrite ) { - cpunum_set_input_line(machine, altCPU, pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE); + cpu_set_input_line(machine->cpu[altCPU], pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE); } - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_2], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_2], CLEAR_LINE); break; case 0x1d6000: @@ -542,7 +542,7 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in { // mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data ); } - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_CPUIRQ], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_CPUIRQ], CLEAR_LINE); break; case 0x1d8000: /* ack EXIRQ */ @@ -550,7 +550,7 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in { // mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data ); } - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_EXIRQ], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_EXIRQ], CLEAR_LINE); break; case 0x1da000: /* ack POSIRQ */ @@ -558,7 +558,7 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in { // mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data ); } - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_POSIRQ], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_POSIRQ], CLEAR_LINE); break; case 0x1dc000: /* ack SCIRQ */ @@ -566,11 +566,11 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in { // mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data ); } - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_SERIRQ], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_SERIRQ], CLEAR_LINE); break; case 0x1de000: /* ack VBLANK */ - cpunum_set_input_line(machine, cpu, pC148Reg[NAMCOS2_C148_VBLANKIRQ], CLEAR_LINE); + cpu_set_input_line(machine->cpu[cpu], pC148Reg[NAMCOS2_C148_VBLANKIRQ], CLEAR_LINE); break; case 0x1e0000: /* EEPROM Status Register */ @@ -583,13 +583,13 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in if( data&0x01 ) { /* Resume execution */ - cpunum_set_input_line(machine, CPU_SOUND, INPUT_LINE_RESET, CLEAR_LINE); - cpu_yield(); + cpu_set_input_line(machine->cpu[CPU_SOUND], INPUT_LINE_RESET, CLEAR_LINE); + cpu_yield(machine->activecpu); } else { /* Suspend execution */ - cpunum_set_input_line(machine, CPU_SOUND, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[CPU_SOUND], INPUT_LINE_RESET, ASSERT_LINE); } if( IsSystem21() ) { @@ -609,7 +609,7 @@ ReadWriteC148( running_machine *machine, int cpu, offs_t offset, UINT16 data, in { /* Resume execution */ ResetAllSubCPUs( machine, CLEAR_LINE ); /* Give the new CPU an immediate slice of the action */ - cpu_yield(); + cpu_yield(machine->activecpu); } else { /* Suspend execution */ @@ -661,7 +661,7 @@ READ16_HANDLER( namcos2_68k_gpu_C148_r ) static TIMER_CALLBACK( namcos2_68k_master_posirq ) { video_screen_update_partial(machine->primary_screen, param); - cpunum_set_input_line(machine, CPU_MASTER , namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); + cpu_set_input_line(machine->cpu[CPU_MASTER ], namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } static int @@ -675,33 +675,33 @@ INTERRUPT_GEN( namcos2_68k_master_vblank ) { if( IsSystem21()==0 && namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ] ) { - int scanline = GetPosIRQScanline(machine); - timer_set(video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, namcos2_68k_master_posirq ); + int scanline = GetPosIRQScanline(device->machine); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, scanline, 0), NULL, scanline, namcos2_68k_master_posirq ); } - cpunum_set_input_line(machine, CPU_MASTER, namcos2_68k_master_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE); + cpu_set_input_line(device, namcos2_68k_master_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE); } static TIMER_CALLBACK( namcos2_68k_slave_posirq ) { video_screen_update_partial(machine->primary_screen, param); - cpunum_set_input_line(machine, CPU_SLAVE , namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); + cpu_set_input_line(machine->cpu[CPU_SLAVE ], namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } INTERRUPT_GEN( namcos2_68k_slave_vblank ) { if( IsSystem21()==0 && namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ] ) { - int scanline = GetPosIRQScanline(machine); - timer_set(video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, namcos2_68k_slave_posirq ); + int scanline = GetPosIRQScanline(device->machine); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, scanline, 0), NULL, scanline, namcos2_68k_slave_posirq ); } - cpunum_set_input_line(machine, CPU_SLAVE, namcos2_68k_slave_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE); + cpu_set_input_line(device, namcos2_68k_slave_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE); } static TIMER_CALLBACK( namcos2_68k_gpu_posirq ) { //printf( "namcos2_68k_gpu_posirq(%d)\n", param ); video_screen_update_partial(machine->primary_screen, param); - cpunum_set_input_line(machine, CPU_GPU, namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); + cpu_set_input_line(machine->cpu[CPU_GPU], namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } INTERRUPT_GEN( namcos2_68k_gpu_vblank ) @@ -710,9 +710,9 @@ INTERRUPT_GEN( namcos2_68k_gpu_vblank ) if( namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ] ) { int scanline = 0x50+0x89; /* HACK for Winning Run */ - timer_set(video_screen_get_time_until_pos(machine->primary_screen, scanline, 0), NULL, scanline, namcos2_68k_gpu_posirq ); + timer_set(video_screen_get_time_until_pos(device->machine->primary_screen, scanline, 0), NULL, scanline, namcos2_68k_gpu_posirq ); } - cpunum_set_input_line(machine, CPU_GPU, namcos2_68k_gpu_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE); + cpu_set_input_line(device, namcos2_68k_gpu_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE); } /**************************************************************/ @@ -783,7 +783,7 @@ WRITE8_HANDLER( namcos2_mcu_analog_ctrl_w ) /* If the interrupt enable bit is set trigger an A/D IRQ */ if(data & 0x20) { - cpunum_set_input_line(machine, CPU_MCU, HD63705_INT_ADCONV , PULSE_LINE); + cpu_set_input_line(machine->cpu[CPU_MCU], HD63705_INT_ADCONV , PULSE_LINE); } } } diff --git a/src/mame/machine/nb1413m3.c b/src/mame/machine/nb1413m3.c index 0a53f52f60f..fcaad5db56d 100644 --- a/src/mame/machine/nb1413m3.c +++ b/src/mame/machine/nb1413m3.c @@ -55,7 +55,7 @@ static TIMER_CALLBACK( nb1413m3_timer_callback ) if (nb1413m3_nmi_enable) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); nb1413m3_nmi_count++; } @@ -195,15 +195,15 @@ WRITE8_HANDLER( nb1413m3_nmi_clock_w ) INTERRUPT_GEN( nb1413m3_interrupt ) { #if 0 - if (!cpu_getiloops()) + if (!cpu_getiloops(device)) { // nb1413m3_busyflag = 1; // nb1413m3_busyctr = 0; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } if (nb1413m3_nmi_enable) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } #if NB1413M3_CHEAT @@ -212,7 +212,7 @@ INTERRUPT_GEN( nb1413m3_interrupt ) #else // nb1413m3_busyflag = 1; // nb1413m3_busyctr = 0; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); #if NB1413M3_DEBUG popmessage("NMI SW:%01X CLOCK:%02X COUNT:%02X", nb1413m3_nmi_enable, nb1413m3_nmi_clock, nb1413m3_nmi_count); diff --git a/src/mame/machine/nycaptor.c b/src/mame/machine/nycaptor.c index 24956460ac5..054a2424608 100644 --- a/src/mame/machine/nycaptor.c +++ b/src/mame/machine/nycaptor.c @@ -56,7 +56,7 @@ WRITE8_HANDLER( nycaptor_68705_portB_w ) if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 3,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[3],0,CLEAR_LINE); main_sent = 0; } @@ -103,7 +103,7 @@ WRITE8_HANDLER( nycaptor_mcu_w ) from_main = data; main_sent = 1; - cpunum_set_input_line(machine, 3,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[3],0,ASSERT_LINE); } READ8_HANDLER( nycaptor_mcu_r ) diff --git a/src/mame/machine/pitnrun.c b/src/mame/machine/pitnrun.c index ef343875cf9..d06defa0597 100644 --- a/src/mame/machine/pitnrun.c +++ b/src/mame/machine/pitnrun.c @@ -19,7 +19,7 @@ MACHINE_RESET( pitnrun ) { zaccept = 1; zready = 0; - cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); } static TIMER_CALLBACK( pitnrun_mcu_real_data_r ) @@ -36,14 +36,14 @@ READ8_HANDLER( pitnrun_mcu_data_r ) static TIMER_CALLBACK( pitnrun_mcu_real_data_w ) { zready = 1; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); fromz80 = param; } WRITE8_HANDLER( pitnrun_mcu_data_w ) { timer_call_after_resynch(NULL, data,pitnrun_mcu_real_data_w); - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(5)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(5)); } READ8_HANDLER( pitnrun_mcu_status_r ) @@ -110,7 +110,7 @@ WRITE8_HANDLER( pitnrun_68705_portB_w ) { /* 68705 is going to read data from the Z80 */ timer_call_after_resynch(NULL, 0,pitnrun_mcu_data_real_r); - cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); portA_in = fromz80; } if (~data & 0x04) diff --git a/src/mame/machine/playch10.c b/src/mame/machine/playch10.c index 047b3c42f29..8a5f4a94d7e 100644 --- a/src/mame/machine/playch10.c +++ b/src/mame/machine/playch10.c @@ -104,12 +104,12 @@ WRITE8_HANDLER( pc10_DOGDI_w ) WRITE8_HANDLER( pc10_GAMERES_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ( data & 1 ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ( data & 1 ) ? CLEAR_LINE : ASSERT_LINE ); } WRITE8_HANDLER( pc10_GAMESTOP_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ( data & 1 ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ( data & 1 ) ? CLEAR_LINE : ASSERT_LINE ); } WRITE8_HANDLER( pc10_PPURES_w ) @@ -674,7 +674,7 @@ static void gboard_scanline_cb( int num, int scanline, int vblank, int blanked ) if ( --gboard_scanline_counter == -1 ) { gboard_scanline_counter = gboard_scanline_latch; - cpunum_set_input_line(Machine, 1, 0, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE ); } } } diff --git a/src/mame/machine/psx.c b/src/mame/machine/psx.c index 69a44f50896..c867de0523f 100644 --- a/src/mame/machine/psx.c +++ b/src/mame/machine/psx.c @@ -72,12 +72,12 @@ static void psx_irq_update( running_machine *machine ) if( ( m_n_irqdata & m_n_irqmask ) != 0 ) { verboselog( 2, "psx irq assert\n" ); - cpunum_set_input_line(machine, 0, MIPS_IRQ0, ASSERT_LINE ); + cpu_set_input_line(machine->cpu[0], MIPS_IRQ0, ASSERT_LINE ); } else { verboselog( 2, "psx irq clear\n" ); - cpunum_set_input_line(machine, 0, MIPS_IRQ0, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], MIPS_IRQ0, CLEAR_LINE ); } } @@ -487,7 +487,7 @@ static UINT64 m_p_n_root_start[ 3 ]; static UINT64 psxcpu_gettotalcycles( void ) { /* TODO: should return the start of the current tick. */ - return cpunum_gettotalcycles(0) * 2; + return cpu_get_total_cycles(Machine->cpu[0]) * 2; } static int root_divider( int n_counter ) diff --git a/src/mame/machine/qix.c b/src/mame/machine/qix.c index 4e67c91a043..e3e4d281589 100644 --- a/src/mame/machine/qix.c +++ b/src/mame/machine/qix.c @@ -290,26 +290,26 @@ WRITE8_HANDLER( zookeep_bankswitch_w ) WRITE8_HANDLER( qix_data_firq_w ) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); } WRITE8_HANDLER( qix_data_firq_ack_w ) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); } READ8_HANDLER( qix_data_firq_r ) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, ASSERT_LINE); return 0xff; } READ8_HANDLER( qix_data_firq_ack_r ) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, CLEAR_LINE); return 0xff; } @@ -323,26 +323,26 @@ READ8_HANDLER( qix_data_firq_ack_r ) WRITE8_HANDLER( qix_video_firq_w ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, ASSERT_LINE); } WRITE8_HANDLER( qix_video_firq_ack_w ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, CLEAR_LINE); } READ8_HANDLER( qix_video_firq_r ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, ASSERT_LINE); return 0xff; } READ8_HANDLER( qix_video_firq_ack_r ) { - cpunum_set_input_line(machine, 1, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6809_FIRQ_LINE, CLEAR_LINE); return 0xff; } @@ -379,7 +379,7 @@ static void qix_pia_dint(running_machine *machine, int state) int combined_state = pia_get_irq_a(3) | pia_get_irq_b(3); /* DINT is connected to the data CPU's IRQ line */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -388,7 +388,7 @@ static void qix_pia_sint(running_machine *machine, int state) int combined_state = pia_get_irq_a(4) | pia_get_irq_b(4); /* SINT is connected to the sound CPU's IRQ line */ - cpunum_set_input_line(machine, 2, M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], M6802_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -425,13 +425,13 @@ static WRITE8_HANDLER( qixmcu_coinctrl_w ) if (!(data & 0x04)) { - cpunum_set_input_line(machine, 3, M68705_IRQ_LINE, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], M68705_IRQ_LINE, ASSERT_LINE); /* temporarily boost the interleave to sync things up */ /* note: I'm using 50 because 30 is not enough for space dungeon at game over */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(50)); } else - cpunum_set_input_line(machine, 3, M68705_IRQ_LINE, CLEAR_LINE); + cpu_set_input_line(machine->cpu[3], M68705_IRQ_LINE, CLEAR_LINE); /* this is a callback called by pia_0_w(), so I don't need to synchronize */ /* the CPUs - they have already been synchronized by qix_pia_0_w() */ diff --git a/src/mame/machine/retofinv.c b/src/mame/machine/retofinv.c index 48465a821b8..b37ead26c18 100644 --- a/src/mame/machine/retofinv.c +++ b/src/mame/machine/retofinv.c @@ -57,7 +57,7 @@ WRITE8_HANDLER( retofinv_68705_portB_w ) if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 3,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[3],0,CLEAR_LINE); main_sent = 0; //logerror("read command %02x from main cpu\n",portA_in); } @@ -114,7 +114,7 @@ WRITE8_HANDLER( retofinv_mcu_w ) logerror("%04x: mcu_w %02x\n",cpu_get_pc(machine->activecpu),data); from_main = data; main_sent = 1; - cpunum_set_input_line(machine, 3,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[3],0,ASSERT_LINE); } READ8_HANDLER( retofinv_mcu_r ) diff --git a/src/mame/machine/s16fd.c b/src/mame/machine/s16fd.c index e407c53d8d3..42a909116d9 100644 --- a/src/mame/machine/s16fd.c +++ b/src/mame/machine/s16fd.c @@ -141,7 +141,7 @@ static void fd1094_kludge_reset_values(void) /* function, to be called from MACHINE_RESET (every reset) */ -void fd1094_machine_init(void) +void fd1094_machine_init(const device_config *device) { /* punt if no key; this allows us to be called even for non-FD1094 games */ if (!fd1094_key) @@ -150,9 +150,11 @@ void fd1094_machine_init(void) fd1094_setstate_and_decrypt(FD1094_STATE_RESET); fd1094_kludge_reset_values(); - cpu_set_info_fct(Machine->cpu[0], CPUINFO_PTR_M68K_CMPILD_CALLBACK, (genf *)fd1094_cmp_callback); - cpu_set_info_fct(Machine->cpu[0], CPUINFO_PTR_M68K_RTE_CALLBACK, (genf *)fd1094_rte_callback); - cpunum_set_irq_callback(0, fd1094_int_callback); + cpu_set_info_fct(device, CPUINFO_PTR_M68K_CMPILD_CALLBACK, (genf *)fd1094_cmp_callback); + cpu_set_info_fct(device, CPUINFO_PTR_M68K_RTE_CALLBACK, (genf *)fd1094_rte_callback); + cpu_set_irq_callback(device, fd1094_int_callback); + + cpu_reset(device); } static STATE_POSTLOAD( fd1094_postload ) @@ -162,7 +164,7 @@ static STATE_POSTLOAD( fd1094_postload ) int selected_state = fd1094_selected_state; int state = fd1094_state; - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); fd1094_setstate_and_decrypt(selected_state); fd1094_setstate_and_decrypt(state); diff --git a/src/mame/machine/s24fd.c b/src/mame/machine/s24fd.c index 69b207a2119..575dea15e9b 100644 --- a/src/mame/machine/s24fd.c +++ b/src/mame/machine/s24fd.c @@ -134,7 +134,9 @@ void s24_fd1094_machine_init(void) cpu_set_info_fct(Machine->cpu[1], CPUINFO_PTR_M68K_CMPILD_CALLBACK, (genf *)s24_fd1094_cmp_callback); cpu_set_info_fct(Machine->cpu[1], CPUINFO_PTR_M68K_RTE_CALLBACK, (genf *)s24_fd1094_rte_callback); - cpunum_set_irq_callback(1, s24_fd1094_int_callback); + cpu_set_irq_callback(Machine->cpu[1], s24_fd1094_int_callback); + + cpu_reset(Machine->cpu[1]); } static STATE_POSTLOAD( s24_fd1094_postload ) diff --git a/src/mame/machine/scramble.c b/src/mame/machine/scramble.c index 1fcf3138a26..52895dba1de 100644 --- a/src/mame/machine/scramble.c +++ b/src/mame/machine/scramble.c @@ -20,10 +20,8 @@ MACHINE_RESET( scramble ) { MACHINE_RESET_CALL(galaxold); - if (cpu_gettotalcpu() > 1) - { + if (machine->cpu[1] != NULL) scramble_sh_init(); - } security_2B_counter = 0; } diff --git a/src/mame/machine/scudsp.c b/src/mame/machine/scudsp.c index 54a2e25e3cd..05b45852ede 100644 --- a/src/mame/machine/scudsp.c +++ b/src/mame/machine/scudsp.c @@ -318,7 +318,7 @@ void dsp_prg_ctrl(running_machine *machine, UINT32 data) if(LEF) dsp_reg.pc = (data & 0xff); if(EXF) dsp_execute_program(); if(EF && (!(stv_scu[40] & 0x0020))) - cpunum_set_input_line_and_vector(machine, 0, 0xa, HOLD_LINE , 0x45); + cpu_set_input_line_and_vector(machine->cpu[0], 0xa, HOLD_LINE , 0x45); } void dsp_prg_data(UINT32 data) diff --git a/src/mame/machine/segaic16.c b/src/mame/machine/segaic16.c index e769063efe5..27b78348ff5 100644 --- a/src/mame/machine/segaic16.c +++ b/src/mame/machine/segaic16.c @@ -215,9 +215,9 @@ static void memory_mapper_w(running_machine *machine, struct memory_mapper_chip /* 03 - maybe controls halt and reset lines together? */ if ((oldval ^ chip->regs[offset]) & 3) { - cpunum_set_input_line(machine, mame_find_cpu_index(machine, chip->cpu), INPUT_LINE_RESET, (chip->regs[offset] & 3) == 3 ? ASSERT_LINE : CLEAR_LINE); + cputag_set_input_line(machine, chip->cpu, INPUT_LINE_RESET, (chip->regs[offset] & 3) == 3 ? ASSERT_LINE : CLEAR_LINE); if ((chip->regs[offset] & 3) == 3) - fd1094_machine_init(); + fd1094_machine_init(machine->cpu[0]); } break; @@ -229,7 +229,7 @@ static void memory_mapper_w(running_machine *machine, struct memory_mapper_chip case 0x04: /* controls IRQ lines to 68000, negative logic -- write $B to signal IRQ4 */ if ((chip->regs[offset] & 7) != 7) - cpunum_set_input_line(machine, mame_find_cpu_index(machine, chip->cpu), (~chip->regs[offset] & 7), HOLD_LINE); + cputag_set_input_line(machine, chip->cpu, (~chip->regs[offset] & 7), HOLD_LINE); break; case 0x05: diff --git a/src/mame/machine/seicop.c b/src/mame/machine/seicop.c index 7591ab36ca3..1fac11303fe 100644 --- a/src/mame/machine/seicop.c +++ b/src/mame/machine/seicop.c @@ -872,7 +872,7 @@ WRITE16_HANDLER( copdxbl_0_w ) case (0x65c/2): { soundlatch_w(machine,1,data&0xff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); break; } /*video regs (not scrollram,something else)*/ @@ -889,7 +889,7 @@ WRITE16_HANDLER( copdxbl_0_w ) /*case (0x740/2): { soundlatch_w(1,data&0x00ff); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); break; }*/ } diff --git a/src/mame/machine/simpsons.c b/src/mame/machine/simpsons.c index a96d988e050..c32ee62ad44 100644 --- a/src/mame/machine/simpsons.c +++ b/src/mame/machine/simpsons.c @@ -98,7 +98,7 @@ WRITE8_HANDLER( simpsons_coin_counter_w ) READ8_HANDLER( simpsons_sound_interrupt_r ) { - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff ); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff ); return 0x00; } diff --git a/src/mame/machine/slapfght.c b/src/mame/machine/slapfght.c index e55b216c7c7..ef1eb8b6d62 100644 --- a/src/mame/machine/slapfght.c +++ b/src/mame/machine/slapfght.c @@ -44,7 +44,7 @@ MACHINE_RESET( slapfight ) getstar_sh_intenabled = 0; /* disable sound cpu interrupts */ /* SOUND CPU */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* MCU */ mcu_val = 0; @@ -73,14 +73,14 @@ READ8_HANDLER( slapfight_dpram_r ) /* Reset and hold sound CPU */ WRITE8_HANDLER( slapfight_port_00_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); getstar_sh_intenabled = 0; } /* Release reset on sound CPU */ WRITE8_HANDLER( slapfight_port_01_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } /* Disable and clear hardware interrupt */ @@ -692,7 +692,7 @@ WRITE8_HANDLER( getstar_sh_intenable_w ) INTERRUPT_GEN( getstar_interrupt ) { if (getstar_sh_intenabled) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } #ifdef UNUSED_FUNCTION @@ -739,7 +739,7 @@ WRITE8_HANDLER( tigerh_68705_portB_w ) if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02)) { portA_in = from_main; - if (main_sent) cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + if (main_sent) cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); main_sent = 0; } if ((ddrB & 0x04) && (data & 0x04) && (~portB_out & 0x04)) @@ -780,7 +780,7 @@ WRITE8_HANDLER( tigerh_mcu_w ) from_main = data; main_sent = 1; mcu_sent=0; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); } READ8_HANDLER( tigerh_mcu_r ) diff --git a/src/mame/machine/slikshot.c b/src/mame/machine/slikshot.c index d970de97054..fc8abc16a10 100644 --- a/src/mame/machine/slikshot.c +++ b/src/mame/machine/slikshot.c @@ -508,7 +508,7 @@ static TIMER_CALLBACK( delayed_z80_control_w ) /* at its endpoint; otherwise, we never get a result from the Z80 */ if ((data & 0x10) || cpu_get_reg(machine->cpu[2], Z80_PC) == 0x13a) { - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); /* on the rising edge, make the crosshair visible again */ if ((data & 0x10) && !(z80_ctrl & 0x10)) @@ -516,7 +516,7 @@ static TIMER_CALLBACK( delayed_z80_control_w ) } /* boost the interleave whenever this is written to */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); /* stash the new value */ z80_ctrl = data; diff --git a/src/mame/machine/snes.c b/src/mame/machine/snes.c index c7ec594c6b1..ff9115fdd16 100644 --- a/src/mame/machine/snes.c +++ b/src/mame/machine/snes.c @@ -81,7 +81,7 @@ static void snes_latch_counters(running_machine *machine) static TIMER_CALLBACK( snes_nmi_tick ) { // pull NMI - cpunum_set_input_line(machine, 0, G65816_LINE_NMI, HOLD_LINE ); + cpu_set_input_line(machine->cpu[0], G65816_LINE_NMI, HOLD_LINE ); // don't happen again timer_adjust_oneshot(snes_nmi_timer, attotime_never, 0); @@ -93,7 +93,7 @@ static void snes_hirq_tick(running_machine *machine) // (don't need to switch to the 65816 context, we don't do anything dependant on it) snes_latch_counters(machine); snes_ram[TIMEUP] = 0x80; /* Indicate that irq occured */ - cpunum_set_input_line(machine, 0, G65816_LINE_IRQ, HOLD_LINE ); + cpu_set_input_line(machine->cpu[0], G65816_LINE_IRQ, HOLD_LINE ); // don't happen again timer_adjust_oneshot(snes_hirq_timer, attotime_never, 0); @@ -123,7 +123,7 @@ static TIMER_CALLBACK( snes_scanline_tick ) snes_ram[TIMEUP] = 0x80; /* Indicate that irq occured */ // IRQ latches the counters, do it now snes_latch_counters(machine); - cpunum_set_input_line(machine, 0, G65816_LINE_IRQ, HOLD_LINE ); + cpu_set_input_line(machine->cpu[0], G65816_LINE_IRQ, HOLD_LINE ); } } /* Horizontal IRQ timer */ @@ -229,7 +229,7 @@ static TIMER_CALLBACK( snes_scanline_tick ) snes_ram[STAT77] &= 0x3f; /* Clear Time Over and Range Over bits */ snes_ram[STAT78] ^= 0x80; /* Toggle field flag */ - cpunum_set_input_line(machine, 0, G65816_LINE_NMI, CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], G65816_LINE_NMI, CLEAR_LINE ); } cpu_pop_context(); @@ -593,7 +593,7 @@ WRITE8_HANDLER( snes_w_io ) { // printf("816: %02x to APU @ %d\n", data, offset&3); spc_port_in[offset & 0x3] = data; - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(20)); return; } @@ -1043,7 +1043,7 @@ WRITE8_HANDLER( snes_w_io ) case MEMSEL: /* Access cycle designation in memory (2) area */ /* FIXME: Need to adjust the speed only during access of banks 0x80+ * Currently we are just increasing it no matter what */ -// cpunum_set_clockscale(machine, 0, (data & 0x1) ? 1.335820896 : 1.0 ); +// cpu_set_clockscale(machine->cpu[0], (data & 0x1) ? 1.335820896 : 1.0 ); #ifdef SNES_DBG_REG_W if( (data & 0x1) != (snes_ram[MEMSEL] & 0x1) ) mame_printf_debug( "CPU speed: %f Mhz\n", (data & 0x1) ? 3.58 : 2.68 ); diff --git a/src/mame/machine/stfight.c b/src/mame/machine/stfight.c index 8641de5f52f..585ae9addca 100644 --- a/src/mame/machine/stfight.c +++ b/src/mame/machine/stfight.c @@ -121,13 +121,13 @@ static WRITE8_HANDLER( stfight_bank_w ) static TIMER_CALLBACK( stfight_interrupt_1 ) { // Do a RST08 - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xcf); + cpu_set_input_line_and_vector(machine->cpu[0],0,HOLD_LINE,0xcf); } INTERRUPT_GEN( stfight_vb_interrupt ) { // Do a RST10 - cpunum_set_input_line_and_vector(machine, 0,0,HOLD_LINE,0xd7); + cpu_set_input_line_and_vector(device,0,HOLD_LINE,0xd7); timer_set(ATTOTIME_IN_HZ(120), NULL, 0, stfight_interrupt_1); } diff --git a/src/mame/machine/subs.c b/src/mame/machine/subs.c index 0c1846053c1..2ba2faeb303 100644 --- a/src/mame/machine/subs.c +++ b/src/mame/machine/subs.c @@ -29,8 +29,8 @@ subs_interrupt INTERRUPT_GEN( subs_interrupt ) { /* only do NMI interrupt if not in TEST mode */ - if ((input_port_read(machine, "IN1") & 0x40)==0x40) - cpunum_set_input_line(machine, 0,INPUT_LINE_NMI,PULSE_LINE); + if ((input_port_read(device->machine, "IN1") & 0x40)==0x40) + cpu_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE); } /*************************************************************************** diff --git a/src/mame/machine/system16.c b/src/mame/machine/system16.c index a8e985e6d91..565ac8463aa 100644 --- a/src/mame/machine/system16.c +++ b/src/mame/machine/system16.c @@ -56,7 +56,7 @@ GFXDECODE_END static void sound_cause_nmi( int chip ){ /* upd7759 callback */ - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/machine/tait8741.c b/src/mame/machine/tait8741.c index ea620051dfe..6ce44bc337b 100644 --- a/src/mame/machine/tait8741.c +++ b/src/mame/machine/tait8741.c @@ -495,7 +495,7 @@ static void josvolly_8741_w(running_machine *machine,int num,int offset,int data { if(josvolly_nmi_enable) { - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); josvolly_nmi_enable = 0; } } diff --git a/src/mame/machine/taitosj.c b/src/mame/machine/taitosj.c index bdadb8bd082..289f978418f 100644 --- a/src/mame/machine/taitosj.c +++ b/src/mame/machine/taitosj.c @@ -53,7 +53,7 @@ MACHINE_RESET( taitosj ) zready = 0; busreq = 0; if (machine->config->cpu[2].type != CPU_DUMMY) - cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); spacecr_prot_value = 0; } @@ -112,7 +112,7 @@ READ8_HANDLER( taitosj_mcu_data_r ) static TIMER_CALLBACK( taitosj_mcu_real_data_w ) { zready = 1; - cpunum_set_input_line(machine, 2,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[2],0,ASSERT_LINE); fromz80 = param; } @@ -121,13 +121,13 @@ WRITE8_HANDLER( taitosj_mcu_data_w ) LOG(("%04x: protection write %02x\n",cpu_get_pc(machine->activecpu),data)); timer_call_after_resynch(NULL, data,taitosj_mcu_real_data_w); /* temporarily boost the interleave to sync things up */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); } READ8_HANDLER( taitosj_mcu_status_r ) { /* temporarily boost the interleave to sync things up */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(10)); /* bit 0 = the 68705 has read data from the Z80 */ /* bit 1 = the 68705 has written data for the Z80 */ @@ -198,7 +198,7 @@ WRITE8_HANDLER( taitosj_68705_portB_w ) { /* 68705 is going to read data from the Z80 */ timer_call_after_resynch(NULL, 0,taitosj_mcu_data_real_r); - cpunum_set_input_line(machine, 2,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[2],0,CLEAR_LINE); portA_in = fromz80; LOG(("%04x: 68705 <- Z80 %02x\n",cpu_get_pc(machine->activecpu),portA_in)); } diff --git a/src/mame/machine/tatsumi.c b/src/mame/machine/tatsumi.c index e97adcfcf3f..27a76ee203e 100644 --- a/src/mame/machine/tatsumi.c +++ b/src/mame/machine/tatsumi.c @@ -48,37 +48,37 @@ WRITE16_HANDLER( apache3_bank_w ) if (tatsumi_control_word&0x7f00) { logerror("Unknown control Word: %04x\n",tatsumi_control_word); - cpunum_set_input_line(machine, 3, INPUT_LINE_HALT, CLEAR_LINE); // ? + cpu_set_input_line(machine->cpu[3], INPUT_LINE_HALT, CLEAR_LINE); // ? } if ((tatsumi_control_word&0x8)==0 && !(tatsumi_last_control&0x8)) - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ4, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ4, ASSERT_LINE); if (tatsumi_control_word&0x10) - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); if (tatsumi_control_word&0x80) - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); else - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); tatsumi_last_control=tatsumi_control_word; } WRITE16_HANDLER( apache3_irq_ack_w ) { - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ4, CLEAR_LINE); if ((data&2) && (tatsumi_last_irq&2)==0) { - cpunum_set_input_line(machine, 3, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_HALT, ASSERT_LINE); } if ((tatsumi_last_irq&2) && (data&2)==0) { - cpunum_set_input_line(machine, 3, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line_and_vector(machine, 3, 0, HOLD_LINE, 0xc7 | 0x10); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line_and_vector(machine->cpu[3], 0, HOLD_LINE, 0xc7 | 0x10); } tatsumi_last_irq=data; @@ -186,14 +186,14 @@ WRITE16_HANDLER( roundup5_control_w ) COMBINE_DATA(&tatsumi_control_word); if (tatsumi_control_word&0x10) - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); if (tatsumi_control_word&0x4) - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); else - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); // if (offset==1 && (tatsumi_control_w&0xfeff)!=(last_bank&0xfeff)) // logerror("%08x: Changed bank to %04x (%d)\n",cpu_get_pc(machine->activecpu),tatsumi_control_w,offset); @@ -219,7 +219,7 @@ WRITE16_HANDLER( roundup5_control_w ) */ if ((tatsumi_control_word&0x8)==0 && !(tatsumi_last_control&0x8)) - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ4, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ4, ASSERT_LINE); // if (tatsumi_control_w&0x200) // cpu_set_reset_line(1, CLEAR_LINE); // else @@ -252,7 +252,7 @@ WRITE16_HANDLER( roundup5_e0000_w ) */ COMBINE_DATA(&roundup5_e0000_ram[offset]); - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ4, CLEAR_LINE); // guess, probably wrong + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ4, CLEAR_LINE); // guess, probably wrong // logerror("d_68k_e0000_w %06x %04x\n",cpu_get_pc(machine->activecpu),data); } @@ -283,12 +283,12 @@ WRITE16_HANDLER(cyclwarr_control_w) if ((tatsumi_control_word&4)==4 && (tatsumi_last_control&4)==0) { // logerror("68k 2 halt\n"); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, ASSERT_LINE); } if ((tatsumi_control_word&4)==0 && (tatsumi_last_control&4)==4) { // logerror("68k 2 irq go\n"); - cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); } diff --git a/src/mame/machine/tnzs.c b/src/mame/machine/tnzs.c index 3908e93df06..3e87f5db23a 100644 --- a/src/mame/machine/tnzs.c +++ b/src/mame/machine/tnzs.c @@ -47,12 +47,12 @@ static READ8_HANDLER( mcu_tnzs_r ) if (offset == 0) { data = cpu_get_reg(machine->cpu[2], I8X41_DATA); - cpu_yield(); + cpu_yield(machine->activecpu); } else { data = cpu_get_reg(machine->cpu[2], I8X41_STAT); - cpu_yield(); + cpu_yield(machine->activecpu); } // logerror("PC %04x: read %02x from mcu $c00%01x\n", cpu_get_previouspc(machine->activecpu), data, offset); @@ -660,9 +660,9 @@ INTERRUPT_GEN( arknoid2_interrupt ) case MCU_DRTOPPEL: case MCU_PLUMPOP: coin = 0; - coin |= ((input_port_read(machine, "COIN1") & 1) << 0); - coin |= ((input_port_read(machine, "COIN2") & 1) << 1); - coin |= ((input_port_read(machine, "IN2") & 3) << 2); + coin |= ((input_port_read(device->machine, "COIN1") & 1) << 0); + coin |= ((input_port_read(device->machine, "COIN2") & 1) << 1); + coin |= ((input_port_read(device->machine, "IN2") & 3) << 2); coin ^= 0x0c; mcu_handle_coins(coin); break; @@ -670,7 +670,7 @@ INTERRUPT_GEN( arknoid2_interrupt ) break; } - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } MACHINE_RESET( tnzs ) @@ -721,9 +721,9 @@ WRITE8_HANDLER( tnzs_bankswitch_w ) /* bit 4 resets the second CPU */ if (data & 0x10) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); /* bits 0-2 select RAM/ROM bank */ memory_set_bankptr (1, &RAM[0x10000 + 0x4000 * (data & 0x07)]); @@ -743,7 +743,7 @@ WRITE8_HANDLER( tnzs_bankswitch1_w ) if (data & 0x04) { if (machine->config->cpu[2].type == CPU_I8742) - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, PULSE_LINE); } /* Coin count and lockout is handled by the i8742 */ break; diff --git a/src/mame/machine/toaplan1.c b/src/mame/machine/toaplan1.c index dc0eb767b97..0eac305ed8b 100644 --- a/src/mame/machine/toaplan1.c +++ b/src/mame/machine/toaplan1.c @@ -30,7 +30,7 @@ UINT8 *toaplan1_sharedram; INTERRUPT_GEN( toaplan1_interrupt ) { if (toaplan1_intenable) - cpunum_set_input_line(machine, 0, 4, HOLD_LINE); + cpu_set_input_line(device, 4, HOLD_LINE); } WRITE16_HANDLER( toaplan1_intenable_w ) @@ -98,7 +98,7 @@ WRITE16_HANDLER( demonwld_dsp_bio_w ) if (data == 0) { if (dsp_execute) { logerror("Turning 68000 on\n"); - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, CLEAR_LINE); dsp_execute = 0; } demonwld_dsp_BIO = ASSERT_LINE; @@ -117,15 +117,15 @@ static void demonwld_dsp(running_machine *machine, int enable) if (enable) { logerror("Turning DSP on and 68000 off\n"); - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); /* TMS32010 INT */ - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, ASSERT_LINE); /* TMS32010 INT */ + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } else { logerror("Turning DSP off\n"); - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); /* TMS32010 INT */ - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); /* TMS32010 INT */ + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); } } static STATE_POSTLOAD( demonwld_restore_dsp ) @@ -228,7 +228,7 @@ WRITE16_HANDLER( toaplan1_reset_sound ) if (machine->config->sound[0].type == SOUND_YM3812) sndti_reset(SOUND_YM3812, 0); if (machine->config->cpu[1].type == CPU_Z80) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } } diff --git a/src/mame/machine/twincobr.c b/src/mame/machine/twincobr.c index 11e0890b688..119f8bf7efd 100644 --- a/src/mame/machine/twincobr.c +++ b/src/mame/machine/twincobr.c @@ -34,7 +34,7 @@ INTERRUPT_GEN( twincobr_interrupt ) { if (twincobr_intenable) { twincobr_intenable = 0; - cpunum_set_input_line(machine, 0, MC68000_IRQ_4, HOLD_LINE); + cpu_set_input_line(device, MC68000_IRQ_4, HOLD_LINE); } } @@ -42,7 +42,7 @@ INTERRUPT_GEN( wardner_interrupt ) { if (twincobr_intenable) { twincobr_intenable = 0; - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } } @@ -158,7 +158,7 @@ WRITE16_HANDLER( twincobr_dsp_bio_w ) if (data == 0) { if (dsp_execute) { LOG(("Turning the main CPU on\n")); - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, CLEAR_LINE); dsp_execute = 0; } twincobr_dsp_BIO = ASSERT_LINE; @@ -195,14 +195,14 @@ static void twincobr_dsp(running_machine *machine, int enable) twincobr_dsp_on = enable; if (enable) { LOG(("Turning DSP on and main CPU off\n")); - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); /* TMS32010 INT */ - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, ASSERT_LINE); /* TMS32010 INT */ + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } else { LOG(("Turning DSP off\n")); - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); /* TMS32010 INT */ - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); /* TMS32010 INT */ + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); } } @@ -281,14 +281,14 @@ static void toaplan0_coin_dsp_w(running_machine *machine, int offset, int data) /****** The following apply to Flying Shark/Wardner only ******/ case 0x00: /* This means assert the INT line to the DSP */ LOG(("Turning DSP on and main CPU off\n")); - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, CLEAR_LINE); - cpunum_set_input_line(machine, 2, 0, ASSERT_LINE); /* TMS32010 INT */ - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, CLEAR_LINE); + cpu_set_input_line(machine->cpu[2], 0, ASSERT_LINE); /* TMS32010 INT */ + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); break; case 0x01: /* This means inhibit the INT line to the DSP */ LOG(("Turning DSP off\n")); - cpunum_set_input_line(machine, 2, 0, CLEAR_LINE); /* TMS32010 INT */ - cpunum_set_input_line(machine, 2, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[2], 0, CLEAR_LINE); /* TMS32010 INT */ + cpu_set_input_line(machine->cpu[2], INPUT_LINE_HALT, ASSERT_LINE); break; } } diff --git a/src/mame/machine/tx1.c b/src/mame/machine/tx1.c index 791b9086863..3e4a7e58913 100644 --- a/src/mame/machine/tx1.c +++ b/src/mame/machine/tx1.c @@ -65,7 +65,7 @@ INLINE UINT8 reverse_nibble(UINT8 nibble) */ static TIMER_CALLBACK( interrupt_callback ) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, 0xff); timer_adjust_oneshot(interrupt_timer, video_screen_get_time_until_pos(machine->primary_screen, CURSOR_YPOS, CURSOR_XPOS), 0); } diff --git a/src/mame/machine/vertigo.c b/src/mame/machine/vertigo.c index a58d5bf2872..d57b8fd2ed0 100644 --- a/src/mame/machine/vertigo.c +++ b/src/mame/machine/vertigo.c @@ -78,12 +78,12 @@ static const struct TTL74148_interface irq_encoder = static void update_irq(void) { if (irq_state < 7) - cpunum_set_input_line(Machine, 0, irq_state ^ 7, CLEAR_LINE); + cpu_set_input_line(Machine->cpu[0], irq_state ^ 7, CLEAR_LINE); irq_state = TTL74148_output_r(0); if (irq_state < 7) - cpunum_set_input_line(Machine, 0, irq_state ^ 7, ASSERT_LINE); + cpu_set_input_line(Machine->cpu[0], irq_state ^ 7, ASSERT_LINE); } @@ -105,7 +105,7 @@ static PIT8253_OUTPUT_CHANGED( v_irq4_w ) static PIT8253_OUTPUT_CHANGED( v_irq3_w ) { if (state) - cpunum_set_input_line(device->machine, 1, INPUT_LINE_IRQ0, ASSERT_LINE); + cpu_set_input_line(device->machine->cpu[1], INPUT_LINE_IRQ0, ASSERT_LINE); update_irq_encoder(INPUT_LINE_IRQ3, state); } @@ -149,7 +149,7 @@ READ16_HANDLER( vertigo_coin_r ) INTERRUPT_GEN( vertigo_interrupt ) { /* Coin inputs cause IRQ6 */ - if ((input_port_read(machine, "COIN") & 0x7) < 0x7) + if ((input_port_read(device->machine, "COIN") & 0x7) < 0x7) update_irq_encoder(INPUT_LINE_IRQ6, ASSERT_LINE); } @@ -165,9 +165,9 @@ WRITE16_HANDLER( vertigo_wsot_w ) { /* Reset sound cpu */ if ((data & 2) == 0) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); } @@ -175,13 +175,13 @@ static TIMER_CALLBACK( sound_command_w ) { exidy440_sound_command = param; exidy440_sound_command_ack = 0; - cpunum_set_input_line(machine, 1, INPUT_LINE_IRQ1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ1, ASSERT_LINE); /* It is important that the sound cpu ACKs the sound command quickly. Otherwise the main CPU gives up with sound. Boosting the interleave for a while helps. */ - cpu_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); + cpuexec_boost_interleave(machine, attotime_zero, ATTOTIME_IN_USEC(100)); } diff --git a/src/mame/machine/vsnes.c b/src/mame/machine/vsnes.c index 4d62c07006d..183ba90fcce 100644 --- a/src/mame/machine/vsnes.c +++ b/src/mame/machine/vsnes.c @@ -849,7 +849,7 @@ static void mapper4_irq ( int num, int scanline, int vblank, int blanked ) if (IRQ_count == 0) { IRQ_count = IRQ_count_latch; - cpunum_set_input_line (Machine, 0, 0, HOLD_LINE); + cpu_set_input_line (Machine->cpu[0], 0, HOLD_LINE); } IRQ_count --; } @@ -1186,7 +1186,7 @@ static int ret; static WRITE8_HANDLER ( set_bnglngby_irq_w ) { ret = data; - cpunum_set_input_line(machine, 0, 0, ( data & 2 ) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[0], 0, ( data & 2 ) ? ASSERT_LINE : CLEAR_LINE ); /* other values ??? */ /* 0, 4, 84 */ } @@ -1272,7 +1272,7 @@ static WRITE8_HANDLER( vstennis_vrom_banking ) ppu2c0x_set_videorom_bank( cpunum_get_active(), 0, 8, ( data & 4 ) ? 1 : 0, 512 ); /* bit 1 ( data & 2 ) triggers irq on the other cpu */ - cpunum_set_input_line(machine, other_cpu, 0, ( data & 2 ) ? CLEAR_LINE : ASSERT_LINE ); + cpu_set_input_line(machine->cpu[other_cpu], 0, ( data & 2 ) ? CLEAR_LINE : ASSERT_LINE ); /* move along */ if ( cpunum_get_active() == 0 ) diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c index 9f30429e941..374b47d756d 100644 --- a/src/mame/machine/williams.c +++ b/src/mame/machine/williams.c @@ -293,14 +293,14 @@ static void williams_main_irq(running_machine *machine, int state) int combined_state = pia_get_irq_a(1) | pia_get_irq_b(1); /* IRQ to the main CPU */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } static void williams_main_firq(running_machine *machine, int state) { /* FIRQ to the main CPU */ - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE); } @@ -309,7 +309,7 @@ static void williams_snd_irq(running_machine *machine, int state) int combined_state = pia_get_irq_a(2) | pia_get_irq_b(2); /* IRQ to the sound CPU */ - cpunum_set_input_line(machine, 1, M6800_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], M6800_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -325,7 +325,7 @@ static void mysticm_main_irq(running_machine *machine, int state) int combined_state = pia_get_irq_b(0) | pia_get_irq_a(1) | pia_get_irq_b(1); /* IRQ to the main CPU */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } @@ -334,7 +334,7 @@ static void tshoot_main_irq(running_machine *machine, int state) int combined_state = pia_get_irq_a(0) | pia_get_irq_b(0) | pia_get_irq_a(1) | pia_get_irq_b(1); /* IRQ to the main CPU */ - cpunum_set_input_line(machine, 0, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE); } diff --git a/src/mame/machine/xevious.c b/src/mame/machine/xevious.c index 02f6e636810..46ed894fffb 100644 --- a/src/mame/machine/xevious.c +++ b/src/mame/machine/xevious.c @@ -47,14 +47,14 @@ static TIMER_CALLBACK( battles_nmi_generate ) if( battles_customio_command & 0x10 ){ if( battles_customio_command_count == 0 ){ - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, PULSE_LINE); }else{ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, PULSE_LINE); } }else{ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); - cpunum_set_input_line(machine, 3, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_NMI, PULSE_LINE); } battles_customio_command_count++; } @@ -180,6 +180,6 @@ READ8_HANDLER( battles_input_port_r ) INTERRUPT_GEN( battles_interrupt_4 ) { - cpunum_set_input_line(machine, 3, 0, HOLD_LINE); + cpu_set_input_line(device, 0, HOLD_LINE); } diff --git a/src/mame/video/1942.c b/src/mame/video/1942.c index d62ee9d093a..b21cf483496 100644 --- a/src/mame/video/1942.c +++ b/src/mame/video/1942.c @@ -185,7 +185,7 @@ WRITE8_HANDLER( c1942_c804_w ) coin_counter_w(0,data & 0x01); - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); flip_screen_set(data & 0x80); } diff --git a/src/mame/video/antic.c b/src/mame/video/antic.c index 3ac47ba95e1..5985c6eb4c5 100644 --- a/src/mame/video/antic.c +++ b/src/mame/video/antic.c @@ -91,7 +91,7 @@ READ8_HANDLER ( atari_antic_r ) data = antic.r.antic09; break; case 10: /* WSYNC read */ - cpunum_spinuntil_trigger(0, TRIGGER_HSYNC); + cpu_spinuntil_trigger(machine->cpu[0], TRIGGER_HSYNC); antic.w.wsync = 1; data = antic.r.antic0a; break; @@ -201,7 +201,7 @@ WRITE8_HANDLER ( atari_antic_w ) break; case 10: /* WSYNC write */ LOG(("ANTIC 0A write WSYNC $%02X\n", data)); - cpunum_spinuntil_trigger(0, TRIGGER_HSYNC); + cpu_spinuntil_trigger(machine->cpu[0], TRIGGER_HSYNC); antic.w.wsync = 1; break; case 11: diff --git a/src/mame/video/arkanoid.c b/src/mame/video/arkanoid.c index 2814692c5b9..b92c79776fa 100644 --- a/src/mame/video/arkanoid.c +++ b/src/mame/video/arkanoid.c @@ -65,8 +65,8 @@ WRITE8_HANDLER( arkanoid_d008_w ) leaving the tilt screen (as the MCU is now out of sync with main CPU which resets itself). This bit is the likely candidate as it is flipped early in bootup just prior to accessing the MCU for the first time. */ - if (cpu_gettotalcpu()>1) // Bootlegs don't have the MCU but still set this bit - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); + if (machine->cpu[1] != NULL) // Bootlegs don't have the MCU but still set this bit + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); } static TILE_GET_INFO( get_bg_tile_info ) diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c index f0bd9915c7a..24b0a1a9014 100644 --- a/src/mame/video/astrocde.c +++ b/src/mame/video/astrocde.c @@ -427,7 +427,7 @@ VIDEO_UPDATE( profpac ) static TIMER_CALLBACK( interrupt_off ) { - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -440,14 +440,14 @@ static void astrocade_trigger_lightpen(running_machine *machine, UINT8 vfeedback /* bit 0 controls the interrupt mode: mode 0 means assert until acknowledged */ if ((interrupt_enable & 0x01) == 0) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, interrupt_vector & 0xf0); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, interrupt_vector & 0xf0); timer_set(video_screen_get_time_until_vblank_end(machine->primary_screen), NULL, 0, interrupt_off); } /* mode 1 means assert for 1 instruction */ else { - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, interrupt_vector & 0xf0); + cpu_set_input_line_and_vector(machine->cpu[0], 0, ASSERT_LINE, interrupt_vector & 0xf0); timer_set(ATTOTIME_IN_CYCLES(1, 0), NULL, 0, interrupt_off); } @@ -480,14 +480,14 @@ static TIMER_CALLBACK( scanline_callback ) /* bit 2 controls the interrupt mode: mode 0 means assert until acknowledged */ if ((interrupt_enable & 0x04) == 0) { - cpunum_set_input_line_and_vector(machine, 0, 0, HOLD_LINE, interrupt_vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, HOLD_LINE, interrupt_vector); timer_set(video_screen_get_time_until_vblank_end(machine->primary_screen), NULL, 0, interrupt_off); } /* mode 1 means assert for 1 instruction */ else { - cpunum_set_input_line_and_vector(machine, 0, 0, ASSERT_LINE, interrupt_vector); + cpu_set_input_line_and_vector(machine->cpu[0], 0, ASSERT_LINE, interrupt_vector); timer_set(ATTOTIME_IN_CYCLES(1, 0), NULL, 0, interrupt_off); } } @@ -788,7 +788,7 @@ INLINE void increment_dest(UINT8 curwidth) } -static void execute_blit(void) +static void execute_blit(running_machine *machine) { /* pattern_source = counter set U7/U16/U25/U34 @@ -880,7 +880,7 @@ static void execute_blit(void) } while (pattern_height-- != 0); /* count cycles we ran the bus */ - activecpu_adjust_icount(-cycles); + cpu_adjust_icount(machine->activecpu, -cycles); } @@ -915,7 +915,7 @@ WRITE8_HANDLER( astrocade_pattern_board_w ) case 6: /* height of blit and initiator */ pattern_height = data; - execute_blit(); + execute_blit(machine); break; } } diff --git a/src/mame/video/atari.c b/src/mame/video/atari.c index 626fac3d66d..9a04ae74ba6 100644 --- a/src/mame/video/atari.c +++ b/src/mame/video/atari.c @@ -1074,7 +1074,7 @@ static TIMER_CALLBACK( antic_issue_dli ) { LOG((" @cycle #%3d issue DLI\n", cycle(machine))); antic.r.nmist |= DLI_NMI; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } else { @@ -1143,13 +1143,13 @@ static TIMER_CALLBACK( antic_line_done ) { LOG((" @cycle #%3d release WSYNC\n", cycle(machine))); /* release the CPU if it was actually waiting for HSYNC */ - cpu_trigger(machine, TRIGGER_HSYNC); + cpuexec_trigger(machine, TRIGGER_HSYNC); /* and turn off the 'wait for hsync' flag */ antic.w.wsync = 0; } LOG((" @cycle #%3d release CPU\n", cycle(machine))); /* release the CPU (held for emulating cycles stolen by ANTIC DMA) */ - cpu_trigger(machine, TRIGGER_STEAL); + cpuexec_trigger(machine, TRIGGER_STEAL); /* refresh the display (translate color clocks to pixels) */ antic_linerefresh(machine); @@ -1169,7 +1169,7 @@ static TIMER_CALLBACK( antic_steal_cycles ) LOG((" @cycle #%3d steal %d cycles\n", cycle(machine), antic.steal_cycles)); after(machine, antic.steal_cycles, antic_line_done, "antic_line_done"); antic.steal_cycles = 0; - cpunum_spinuntil_trigger( 0, TRIGGER_STEAL ); + cpu_spinuntil_trigger( machine->cpu[0], TRIGGER_STEAL ); } @@ -1532,7 +1532,7 @@ static void generic_atari_interrupt(running_machine *machine, void (*handle_keyb LOG((" cause VBL NMI\n")); /* set the VBL NMI status bit */ antic.r.nmist |= VBL_NMI; - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_NMI, PULSE_LINE); } } @@ -1544,20 +1544,20 @@ static void generic_atari_interrupt(running_machine *machine, void (*handle_keyb INTERRUPT_GEN( a400_interrupt ) { - generic_atari_interrupt(machine, a800_handle_keyboard, 4); + generic_atari_interrupt(device->machine, a800_handle_keyboard, 4); } INTERRUPT_GEN( a800_interrupt ) { - generic_atari_interrupt(machine, a800_handle_keyboard, 4); + generic_atari_interrupt(device->machine, a800_handle_keyboard, 4); } INTERRUPT_GEN( a800xl_interrupt ) { - generic_atari_interrupt(machine, a800_handle_keyboard, 2); + generic_atari_interrupt(device->machine, a800_handle_keyboard, 2); } INTERRUPT_GEN( a5200_interrupt ) { - generic_atari_interrupt(machine, a5200_handle_keypads, 4); + generic_atari_interrupt(device->machine, a5200_handle_keypads, 4); } diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c index 65ce42ebf60..5943f889ae4 100644 --- a/src/mame/video/atarisy1.c +++ b/src/mame/video/atarisy1.c @@ -248,7 +248,7 @@ WRITE16_HANDLER( atarisy1_bankselect_w ) /* sound CPU reset */ if (diff & 0x0080) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (newselect & 0x0080) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (newselect & 0x0080) ? CLEAR_LINE : ASSERT_LINE); if (!(newselect & 0x0080)) atarigen_sound_reset(); } @@ -415,7 +415,7 @@ static TIMER_CALLBACK( int3_callback ) int scanline = param; /* update the state */ - atarigen_scanline_int_gen(machine, 0); + atarigen_scanline_int_gen(machine->cpu[0]); /* set a timer to turn it off */ timer_adjust_oneshot(int3off_timer, video_screen_get_scan_period(machine->primary_screen), 0); diff --git a/src/mame/video/battlera.c b/src/mame/video/battlera.c index 14074e502e5..aebe16d58b2 100644 --- a/src/mame/video/battlera.c +++ b/src/mame/video/battlera.c @@ -387,20 +387,20 @@ VIDEO_UPDATE( battlera ) INTERRUPT_GEN( battlera_interrupt ) { - current_scanline=255-cpu_getiloops(); /* 8 lines clipped at top */ + current_scanline=255-cpu_getiloops(device); /* 8 lines clipped at top */ /* If raster interrupt occurs, refresh screen _up_ to this point */ if (rcr_enable && (current_scanline+56)==HuC6270_registers[6]) { - video_screen_update_partial(machine->primary_screen, current_scanline); - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); /* RCR interrupt */ + video_screen_update_partial(device->machine->primary_screen, current_scanline); + cpu_set_input_line(device, 0, HOLD_LINE); /* RCR interrupt */ } /* Start of vblank */ else if (current_scanline==240) { bldwolf_vblank=1; - video_screen_update_partial(machine->primary_screen, 240); + video_screen_update_partial(device->machine->primary_screen, 240); if (irq_enable) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); /* VBL */ + cpu_set_input_line(device, 0, HOLD_LINE); /* VBL */ } /* End of vblank */ diff --git a/src/mame/video/beathead.c b/src/mame/video/beathead.c index cbff5f6a96d..30415648425 100644 --- a/src/mame/video/beathead.c +++ b/src/mame/video/beathead.c @@ -114,7 +114,7 @@ WRITE32_HANDLER( beathead_finescroll_w ) if ((oldword & 8) && !(newword & 8) && video_screen_get_vpos(machine->primary_screen) != 261) { logerror("Suspending time! (scanline = %d)\n", video_screen_get_vpos(machine->primary_screen)); - cpunum_set_input_line(machine, 0, INPUT_LINE_HALT, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], INPUT_LINE_HALT, ASSERT_LINE); } } diff --git a/src/mame/video/beezer.c b/src/mame/video/beezer.c index e1634fc21a6..254e5de7027 100644 --- a/src/mame/video/beezer.c +++ b/src/mame/video/beezer.c @@ -8,11 +8,11 @@ static int scanline=0; INTERRUPT_GEN( beezer_interrupt ) { scanline = (scanline + 1) % 0x80; - via_0_ca2_w (machine, 0, scanline & 0x10); + via_0_ca2_w (device->machine, 0, scanline & 0x10); if ((scanline & 0x78) == 0x78) - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, ASSERT_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, CLEAR_LINE); + cpu_set_input_line(device, M6809_FIRQ_LINE, CLEAR_LINE); } VIDEO_UPDATE( beezer ) diff --git a/src/mame/video/bfm_adr2.c b/src/mame/video/bfm_adr2.c index 205469bb5b0..e5e199371eb 100644 --- a/src/mame/video/bfm_adr2.c +++ b/src/mame/video/bfm_adr2.c @@ -262,7 +262,7 @@ INTERRUPT_GEN( adder2_vbl ) if ( adder2_c101 & 0x01 ) { adder_vbl_triggered = 1; - cpunum_set_input_line(machine, 1, M6809_IRQ_LINE, HOLD_LINE ); + cpu_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE ); } } diff --git a/src/mame/video/blktiger.c b/src/mame/video/blktiger.c index 8e2d8a92a25..709ede019ff 100644 --- a/src/mame/video/blktiger.c +++ b/src/mame/video/blktiger.c @@ -160,7 +160,7 @@ WRITE8_HANDLER( blktiger_video_control_w ) coin_counter_w(1,data & 2); /* bit 5 resets the sound CPU */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE); /* bit 6 flips screen */ flip_screen_set(data & 0x40); diff --git a/src/mame/video/blockade.c b/src/mame/video/blockade.c index 9d1145dae7e..f6f2522e0fd 100644 --- a/src/mame/video/blockade.c +++ b/src/mame/video/blockade.c @@ -11,7 +11,7 @@ WRITE8_HANDLER( blockade_videoram_w ) if (input_port_read(machine, "IN3") & 0x80) { logerror("blockade_videoram_w: scanline %d\n", video_screen_get_vpos(machine->primary_screen)); - cpu_spinuntil_int(); + cpu_spinuntil_int(machine->activecpu); } } diff --git a/src/mame/video/blstroid.c b/src/mame/video/blstroid.c index fd3cec126d9..7529a66b74e 100644 --- a/src/mame/video/blstroid.c +++ b/src/mame/video/blstroid.c @@ -106,7 +106,7 @@ static TIMER_CALLBACK( irq_off ) static TIMER_CALLBACK( irq_on ) { /* generate the interrupt */ - atarigen_scanline_int_gen(machine, 0); + atarigen_scanline_int_gen(machine->cpu[0]); atarigen_update_interrupts(machine); } diff --git a/src/mame/video/btime.c b/src/mame/video/btime.c index d6793747482..9c54aaa6f8a 100644 --- a/src/mame/video/btime.c +++ b/src/mame/video/btime.c @@ -320,7 +320,7 @@ WRITE8_HANDLER( disco_video_control_w ) INTERRUPT_GEN( lnc_sound_interrupt ) { if (lnc_sound_interrupt_enabled) - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/video/btoads.c b/src/mame/video/btoads.c index 199115f0f19..1d65b0a7e59 100644 --- a/src/mame/video/btoads.c +++ b/src/mame/video/btoads.c @@ -78,7 +78,7 @@ WRITE16_HANDLER( btoads_misc_control_w ) COMBINE_DATA(&misc_control); /* bit 3 controls sound reset line */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (misc_control & 8) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (misc_control & 8) ? CLEAR_LINE : ASSERT_LINE); } diff --git a/src/mame/video/capbowl.c b/src/mame/video/capbowl.c index 20fcf74c6bc..124ab14d464 100644 --- a/src/mame/video/capbowl.c +++ b/src/mame/video/capbowl.c @@ -23,7 +23,7 @@ static offs_t blitter_addr; static void generate_interrupt(running_machine *machine, int state) { - cpunum_set_input_line(machine, 0, M6809_FIRQ_LINE, state); + cpu_set_input_line(machine->cpu[0], M6809_FIRQ_LINE, state); } static const struct tms34061_interface tms34061intf = diff --git a/src/mame/video/cchasm.c b/src/mame/video/cchasm.c index 8d3b7df60f7..200b02e28f2 100644 --- a/src/mame/video/cchasm.c +++ b/src/mame/video/cchasm.c @@ -23,7 +23,7 @@ static int xcenter, ycenter; static TIMER_CALLBACK( cchasm_refresh_end ) { - cpunum_set_input_line (machine, 0, 2, ASSERT_LINE); + cpu_set_input_line (machine->cpu[0], 2, ASSERT_LINE); } static void cchasm_refresh (void) @@ -114,7 +114,7 @@ WRITE16_HANDLER( cchasm_refresh_control_w ) cchasm_refresh(); break; case 0xf7: - cpunum_set_input_line (machine, 0, 2, CLEAR_LINE); + cpu_set_input_line (machine->cpu[0], 2, CLEAR_LINE); break; } } diff --git a/src/mame/video/cidelsa.c b/src/mame/video/cidelsa.c index b97464e16ea..6295be8d9ef 100644 --- a/src/mame/video/cidelsa.c +++ b/src/mame/video/cidelsa.c @@ -141,7 +141,7 @@ static CDP1869_ON_PRD_CHANGED(cidelsa_prd_changed) // PRD is inverted - cpunum_set_input_line(device->machine, 0, INPUT_LINE_IRQ0, !prd); + cpu_set_input_line(device->machine->cpu[0], INPUT_LINE_IRQ0, !prd); state->cdp1869_prd = !prd; } diff --git a/src/mame/video/circus.c b/src/mame/video/circus.c index 432e02d4d9f..4d8b6278409 100644 --- a/src/mame/video/circus.c +++ b/src/mame/video/circus.c @@ -248,8 +248,8 @@ static void ripcord_draw_skydiver(running_machine *machine, bitmap_t *bitmap, co // report collision only when the character is not blank and within display area if (collision && code!=0xf && clown_x>0 && clown_x<240 && clown_y>-12 && clown_y<240) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); // interrupt accuracy is critical in Ripcord - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); // interrupt accuracy is critical in Ripcord + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } } diff --git a/src/mame/video/cischeat.c b/src/mame/video/cischeat.c index ad800ca6f5a..e85981e22ee 100644 --- a/src/mame/video/cischeat.c +++ b/src/mame/video/cischeat.c @@ -296,9 +296,9 @@ WRITE16_HANDLER( bigrun_vregs_w ) case 0x2208/2 : break; // watchdog reset /* Not sure about this one.. */ - case 0x2308/2 : cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (new_data & 1) ? ASSERT_LINE : CLEAR_LINE ); + case 0x2308/2 : cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (new_data & 1) ? ASSERT_LINE : CLEAR_LINE ); break; default: SHOW_WRITE_ERROR("vreg %04X <- %04X",offset*2,data); @@ -384,13 +384,13 @@ WRITE16_HANDLER( cischeat_vregs_w ) case 0x2300/2 : /* Sound CPU: reads latch during int 4, and stores command */ soundlatch_word_w(machine,0,new_data,0xffff); - cpunum_set_input_line(machine, 3,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[3],4,HOLD_LINE); break; /* Not sure about this one.. */ - case 0x2308/2 : cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (new_data & 1) ? ASSERT_LINE : CLEAR_LINE ); + case 0x2308/2 : cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (new_data & 1) ? ASSERT_LINE : CLEAR_LINE ); break; default: SHOW_WRITE_ERROR("vreg %04X <- %04X",offset*2,data); @@ -499,7 +499,7 @@ CPU #0 PC 00235C : Warning, vreg 0006 <- 0000 /* Usually written in sequence, but not always */ case 0x0008/2 : soundlatch_word_w(machine,0,new_data,0xffff); break; - case 0x0018/2 : cpunum_set_input_line(machine, 3,4,HOLD_LINE); break; + case 0x0018/2 : cpu_set_input_line(machine->cpu[3],4,HOLD_LINE); break; case 0x0010/2 : break; @@ -519,9 +519,9 @@ CPU #0 PC 00235C : Warning, vreg 0006 <- 0000 case 0x2208/2 : break; // watchdog reset /* Not sure about this one. Values: $10 then 0, $7 then 0 */ - case 0x2308/2 : cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (new_data & 1) ? ASSERT_LINE : CLEAR_LINE ); - cpunum_set_input_line(machine, 2, INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); - cpunum_set_input_line(machine, 3, INPUT_LINE_RESET, (new_data & 4) ? ASSERT_LINE : CLEAR_LINE ); + case 0x2308/2 : cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (new_data & 1) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[2], INPUT_LINE_RESET, (new_data & 2) ? ASSERT_LINE : CLEAR_LINE ); + cpu_set_input_line(machine->cpu[3], INPUT_LINE_RESET, (new_data & 4) ? ASSERT_LINE : CLEAR_LINE ); break; default: SHOW_WRITE_ERROR("vreg %04X <- %04X",offset*2,data); @@ -541,8 +541,8 @@ WRITE16_HANDLER( f1gpstr2_vregs_w ) case 0x0000/2 : if (ACCESSING_BITS_0_7) { - cpunum_set_input_line(machine, 4,4,(new_data & 4)?ASSERT_LINE:CLEAR_LINE); - cpunum_set_input_line(machine, 4,2,(new_data & 2)?ASSERT_LINE:CLEAR_LINE); + cpu_set_input_line(machine->cpu[4],4,(new_data & 4)?ASSERT_LINE:CLEAR_LINE); + cpu_set_input_line(machine->cpu[4],2,(new_data & 2)?ASSERT_LINE:CLEAR_LINE); } break; diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c index 7fe1b6b8517..9976c2106c9 100644 --- a/src/mame/video/combatsc.c +++ b/src/mame/video/combatsc.c @@ -341,7 +341,7 @@ WRITE8_HANDLER( combasc_vreg_w ) static WRITE8_HANDLER( combascb_sh_irqtrigger_w ) { soundlatch_w(machine,offset,data); - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); } static READ8_HANDLER( combascb_io_r ) diff --git a/src/mame/video/commando.c b/src/mame/video/commando.c index b81a494c421..3712f1e0e62 100644 --- a/src/mame/video/commando.c +++ b/src/mame/video/commando.c @@ -59,7 +59,7 @@ WRITE8_HANDLER( commando_c804_w ) coin_counter_w(1, data & 0x02); // bit 4 resets the sound CPU - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE); // bit 7 flips screen flip_screen_set(data & 0x80); diff --git a/src/mame/video/csk.c b/src/mame/video/csk.c index 19bee71bada..c38c8139ebe 100644 --- a/src/mame/video/csk.c +++ b/src/mame/video/csk.c @@ -112,15 +112,15 @@ MACHINE_RESET (cpk) INTERRUPT_GEN( cpoker_interrupt ) { - if (cpu_getiloops() % 2) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if (cpu_getiloops(device) % 2) + cpu_set_input_line(device, 0, HOLD_LINE); else - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } INTERRUPT_GEN( cska_interrupt ) { - UINT8 * RAM = memory_region(machine, "main"); + UINT8 * RAM = memory_region(device->machine, "main"); RAM[ hopperOK ] = 1; /* simulate hopper working! */ @@ -133,10 +133,10 @@ INTERRUPT_GEN( cska_interrupt ) abilityflag = (oldstate == 5 || (RAM[ intstate1 ] == 1 && RAM[ intstate2 ] == 5)) ? 1 : 0; - if (cpu_getiloops() % 2) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + if (cpu_getiloops(device) % 2) + cpu_set_input_line(device, 0, HOLD_LINE); else - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } diff --git a/src/mame/video/dec8.c b/src/mame/video/dec8.c index aca60277bad..911454a433f 100644 --- a/src/mame/video/dec8.c +++ b/src/mame/video/dec8.c @@ -196,9 +196,9 @@ WRITE8_HANDLER( lastmiss_control_w ) scroll2[2]=(data>>6)&1; if (data&0x80) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); } WRITE8_HANDLER( shackled_control_w ) diff --git a/src/mame/video/decocass.c b/src/mame/video/decocass.c index da0c3a0652c..d902faa18e1 100644 --- a/src/mame/video/decocass.c +++ b/src/mame/video/decocass.c @@ -608,7 +608,7 @@ VIDEO_UPDATE( decocass ) rectangle clip; if (0xc0 != (input_port_read(screen->machine, "IN2") & 0xc0)) /* coin slots assert an NMI */ - cpunum_set_input_line(screen->machine, 0, INPUT_LINE_NMI, ASSERT_LINE); + cpu_set_input_line(screen->machine->cpu[0], INPUT_LINE_NMI, ASSERT_LINE); if (0 == (watchdog_flip & 0x04)) watchdog_reset(screen->machine); diff --git a/src/mame/video/exidy.c b/src/mame/video/exidy.c index 230f247994d..2bca874ed5b 100644 --- a/src/mame/video/exidy.c +++ b/src/mame/video/exidy.c @@ -80,29 +80,29 @@ INLINE void latch_condition(running_machine *machine, int collision) INTERRUPT_GEN( exidy_vblank_interrupt ) { /* latch the current condition */ - latch_condition(machine, 0); + latch_condition(device->machine, 0); int_condition &= ~0x80; /* set the IRQ line */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(device, 0, ASSERT_LINE); } INTERRUPT_GEN( teetert_vblank_interrupt ) { /* standard stuff */ - if (cpu_getiloops() == 0) - exidy_vblank_interrupt(machine, cpunum); + if (cpu_getiloops(device) == 0) + exidy_vblank_interrupt(device); /* plus a pulse on the NMI line */ - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); } READ8_HANDLER( exidy_interrupt_r ) { /* clear any interrupts */ - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); /* return the latched condition */ return int_condition; @@ -286,7 +286,7 @@ static TIMER_CALLBACK( collision_irq_callback ) latch_condition(machine, param); /* set the IRQ line */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } diff --git a/src/mame/video/exidy440.c b/src/mame/video/exidy440.c index ed9ab1d536a..7dec7f8decd 100644 --- a/src/mame/video/exidy440.c +++ b/src/mame/video/exidy440.c @@ -244,9 +244,9 @@ WRITE8_HANDLER( exidy440_interrupt_clear_w ) static void exidy440_update_firq(running_machine *machine) { if (exidy440_firq_vblank || (firq_enable && exidy440_firq_beam)) - cpunum_set_input_line(machine, 0, 1, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 1, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 1, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 1, CLEAR_LINE); } @@ -254,7 +254,7 @@ INTERRUPT_GEN( exidy440_vblank_interrupt ) { /* set the FIRQ line on a VBLANK */ exidy440_firq_vblank = 1; - exidy440_update_firq(machine); + exidy440_update_firq(device->machine); } diff --git a/src/mame/video/fromance.c b/src/mame/video/fromance.c index e363da73f16..9d245a73755 100644 --- a/src/mame/video/fromance.c +++ b/src/mame/video/fromance.c @@ -269,7 +269,7 @@ WRITE8_HANDLER( fromance_scroll_w ) static TIMER_CALLBACK( crtc_interrupt_gen ) { - cpunum_set_input_line(machine, 1, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[1], 0, HOLD_LINE); if (param != 0) timer_adjust_periodic(crtc_timer, attotime_div(video_screen_get_frame_period(machine->primary_screen), param), 0, attotime_div(video_screen_get_frame_period(machine->primary_screen), param)); } diff --git a/src/mame/video/gameplan.c b/src/mame/video/gameplan.c index 783327b2091..f3fa5d97868 100644 --- a/src/mame/video/gameplan.c +++ b/src/mame/video/gameplan.c @@ -209,7 +209,7 @@ static WRITE8_HANDLER( video_command_trigger_w ) static TIMER_CALLBACK( via_irq_delayed ) { - cpunum_set_input_line(machine, 0, 0, param); + cpu_set_input_line(machine->cpu[0], 0, param); } diff --git a/src/mame/video/ginganin.c b/src/mame/video/ginganin.c index fbb09823458..2adc08501a6 100644 --- a/src/mame/video/ginganin.c +++ b/src/mame/video/ginganin.c @@ -182,7 +182,7 @@ WRITE16_HANDLER( ginganin_vregs16_w ) break; case 7: soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE); break; default: logerror("CPU #0 PC %06X : Warning, videoreg %04X <- %04X\n",cpu_get_pc(machine->activecpu),offset,data); diff --git a/src/mame/video/gticlub.c b/src/mame/video/gticlub.c index be2289bdcbd..29443cc3940 100644 --- a/src/mame/video/gticlub.c +++ b/src/mame/video/gticlub.c @@ -316,14 +316,14 @@ READ32_HANDLER( K001005_r ) { if (K001005_fifo_read_ptr < 0x3ff) { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, CLEAR_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, CLEAR_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(1, CLEAR_LINE); cpu_pop_context(); } else { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, ASSERT_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, ASSERT_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(1, ASSERT_LINE); cpu_pop_context(); @@ -331,7 +331,7 @@ READ32_HANDLER( K001005_r ) } else { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, ASSERT_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, ASSERT_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(1, ASSERT_LINE); cpu_pop_context(); @@ -375,14 +375,14 @@ WRITE32_HANDLER( K001005_w ) { if (K001005_fifo_write_ptr < 0x400) { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, ASSERT_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, ASSERT_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(1, ASSERT_LINE); cpu_pop_context(); } else { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, CLEAR_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, CLEAR_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(1, CLEAR_LINE); cpu_pop_context(); @@ -390,7 +390,7 @@ WRITE32_HANDLER( K001005_w ) } else { - //cpunum_set_input_line(machine, 2, SHARC_INPUT_FLAG1, ASSERT_LINE); + //cpu_set_input_line(machine->cpu[2], SHARC_INPUT_FLAG1, ASSERT_LINE); cpu_push_context(machine->cpu[2]); sharc_set_flag_input(1, ASSERT_LINE); cpu_pop_context(); @@ -407,13 +407,13 @@ WRITE32_HANDLER( K001005_w ) if (cpu_get_pc(machine->activecpu) == 0x201ee) { // This is used to make the SHARC timeout - cpu_spinuntil_trigger(10000); + cpu_spinuntil_trigger(machine->activecpu, 10000); } // !!! HACK to get past the FIFO B test (Winding Heat & Midnight Run) !!! if (cpu_get_pc(machine->activecpu) == 0x201e6) { // This is used to make the SHARC timeout - cpu_spinuntil_trigger(10000); + cpu_spinuntil_trigger(machine->activecpu, 10000); } break; @@ -1058,7 +1058,7 @@ VIDEO_UPDATE( gticlub ) draw_7segment_led(bitmap, 3, 3, gticlub_led_reg0); draw_7segment_led(bitmap, 9, 3, gticlub_led_reg1); - //cpunum_set_input_line(screen->machine, 2, SHARC_INPUT_FLAG1, ASSERT_LINE); + //cpu_set_input_line(screen->machine->cpu[2], SHARC_INPUT_FLAG1, ASSERT_LINE); cpu_push_context(screen->machine->cpu[2]); sharc_set_flag_input(1, ASSERT_LINE); cpu_pop_context(); diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c index 25c9c430dde..ec674a15214 100644 --- a/src/mame/video/hng64.c +++ b/src/mame/video/hng64.c @@ -1282,8 +1282,8 @@ VIDEO_UPDATE( hng64 ) /* hack to enable 2nd cpu when key is pressed */ // if ( input_code_pressed_once(KEYCODE_L) ) // { -// cpunum_set_input_line(machine, 1, INPUT_LINE_HALT, CLEAR_LINE); -// cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); +// cpu_set_input_line(machine->cpu[1], INPUT_LINE_HALT, CLEAR_LINE); +// cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); // } /* AJG */ diff --git a/src/mame/video/homedata.c b/src/mame/video/homedata.c index 41ac733cf7f..79ecf1fcd46 100644 --- a/src/mame/video/homedata.c +++ b/src/mame/video/homedata.c @@ -132,7 +132,7 @@ static void mrokumei_handleblit( running_machine *machine, int rom_base ) } /* for(;;) */ finish: - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); } static void reikaids_handleblit( running_machine *machine, int rom_base ) @@ -232,7 +232,7 @@ static void reikaids_handleblit( running_machine *machine, int rom_base ) } finish: - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); } static void pteacher_handleblit( running_machine *machine, int rom_base ) @@ -320,7 +320,7 @@ static void pteacher_handleblit( running_machine *machine, int rom_base ) } /* for(;;) */ finish: - cpunum_set_input_line(machine, 0,M6809_FIRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[0],M6809_FIRQ_LINE,HOLD_LINE); } diff --git a/src/mame/video/jaguar.c b/src/mame/video/jaguar.c index 38e046e38b7..1d2984cd34f 100644 --- a/src/mame/video/jaguar.c +++ b/src/mame/video/jaguar.c @@ -307,15 +307,15 @@ INLINE int adjust_object_timer(running_machine *machine, int vc) * *************************************/ -void jaguar_gpu_suspend(void) +void jaguar_gpu_suspend(running_machine *machine) { - cpunum_suspend(1, SUSPEND_REASON_SPIN, 1); + cpu_suspend(machine->cpu[1], SUSPEND_REASON_SPIN, 1); } -void jaguar_gpu_resume(void) +void jaguar_gpu_resume(running_machine *machine) { - cpunum_resume(1, SUSPEND_REASON_SPIN); + cpu_resume(machine->cpu[1], SUSPEND_REASON_SPIN); } @@ -329,9 +329,9 @@ void jaguar_gpu_resume(void) static void update_cpu_irq(running_machine *machine) { if (cpu_irq_state & gpu_regs[INT1] & 0x1f) - cpunum_set_input_line(machine, 0, cojag_is_r3000 ? R3000_IRQ4 : MC68000_IRQ_6, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], cojag_is_r3000 ? R3000_IRQ4 : MC68000_IRQ_6, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, cojag_is_r3000 ? R3000_IRQ4 : MC68000_IRQ_6, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], cojag_is_r3000 ? R3000_IRQ4 : MC68000_IRQ_6, CLEAR_LINE); } diff --git a/src/mame/video/lethalj.c b/src/mame/video/lethalj.c index 9c62dfd25ef..d7363368de4 100644 --- a/src/mame/video/lethalj.c +++ b/src/mame/video/lethalj.c @@ -108,7 +108,7 @@ VIDEO_START( lethalj ) static TIMER_CALLBACK( gen_ext1_int ) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } @@ -170,7 +170,7 @@ WRITE16_HANDLER( lethalj_blitter_w ) /* clear the IRQ on offset 0 */ else if (offset == 0) - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/video/liberate.c b/src/mame/video/liberate.c index 218b264aefb..de64e284beb 100644 --- a/src/mame/video/liberate.c +++ b/src/mame/video/liberate.c @@ -99,11 +99,11 @@ WRITE8_HANDLER( deco16_io_w ) /* Todo */ break; case 8: /* Irq ack */ - cpunum_set_input_line(machine, 0,DECO16_IRQ_LINE,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],DECO16_IRQ_LINE,CLEAR_LINE); break; case 9: /* Sound */ soundlatch_w(machine,0,data); - cpunum_set_input_line(machine, 1,M6502_IRQ_LINE,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],M6502_IRQ_LINE,HOLD_LINE); break; } } diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index 57ef793eee8..6b67850c7b1 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -115,7 +115,7 @@ WRITE16_HANDLER( lockon_crtc_w ) static TIMER_CALLBACK( cursor_callback ) { if (lockon_main_inten) - cpunum_set_input_line_and_vector(machine, MAIN_CPU, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[MAIN_CPU], 0, HOLD_LINE, 0xff); timer_adjust_oneshot(cursor_timer, video_screen_get_time_until_pos(machine->primary_screen, CURSOR_YPOS, CURSOR_XPOS), 0); } @@ -329,8 +329,8 @@ WRITE16_HANDLER( lockon_ground_ctrl_w ) static TIMER_CALLBACK( bufend_callback ) { - cpunum_set_input_line_and_vector(machine, GROUND_CPU, 0, HOLD_LINE, 0xff); - cpunum_set_input_line(machine, OBJECT_CPU, NEC_INPUT_LINE_POLL, ASSERT_LINE); + cpu_set_input_line_and_vector(machine->cpu[GROUND_CPU], 0, HOLD_LINE, 0xff); + cpu_set_input_line(machine->cpu[OBJECT_CPU], NEC_INPUT_LINE_POLL, ASSERT_LINE); } /* Get data for a each 8x8x3 ground tile */ @@ -658,7 +658,7 @@ WRITE16_HANDLER( lockon_tza112_w ) READ16_HANDLER( lockon_obj_4000_r ) { - cpunum_set_input_line(machine, OBJECT_CPU, NEC_INPUT_LINE_POLL, CLEAR_LINE); + cpu_set_input_line(machine->cpu[OBJECT_CPU], NEC_INPUT_LINE_POLL, CLEAR_LINE); return 0xffff; } diff --git a/src/mame/video/megasys1.c b/src/mame/video/megasys1.c index 2e01fb21e5c..7302c8c8452 100644 --- a/src/mame/video/megasys1.c +++ b/src/mame/video/megasys1.c @@ -449,13 +449,13 @@ WRITE16_HANDLER( megasys1_vregs_A_w ) case 0x300/2 : megasys1_screen_flag = new_data; if (new_data & 0x10) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); break; case 0x308/2 : soundlatch_word_w(machine,0,new_data,0xffff); - cpunum_set_input_line(machine, 1,4,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],4,HOLD_LINE); break; default : SHOW_WRITE_ERROR("vreg %04X <- %04X",offset*2,data); @@ -500,14 +500,14 @@ WRITE16_HANDLER( megasys1_vregs_C_w ) case 0x2308/2 : megasys1_screen_flag = new_data; if (new_data & 0x10) - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, ASSERT_LINE); else - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, CLEAR_LINE); break; case 0x8000/2 : /* Cybattler reads sound latch on irq 2 */ soundlatch_word_w(machine,0,new_data,0xffff); - cpunum_set_input_line(machine, 1,2,HOLD_LINE); + cpu_set_input_line(machine->cpu[1],2,HOLD_LINE); break; default: SHOW_WRITE_ERROR("vreg %04X <- %04X",offset*2,data); diff --git a/src/mame/video/midtunit.c b/src/mame/video/midtunit.c index a7b80f82e2a..1becda85a70 100644 --- a/src/mame/video/midtunit.c +++ b/src/mame/video/midtunit.c @@ -594,7 +594,7 @@ DECLARE_BLITTER_SET(dma_draw_noskip_noscale, dma_state.bpp, EXTRACTGEN, SKIP static TIMER_CALLBACK( dma_callback ) { dma_register[DMA_COMMAND] &= ~0x8000; /* tell the cpu we're done */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } @@ -684,7 +684,7 @@ WRITE16_HANDLER( midtunit_dma_w ) /* high bit triggers action */ command = dma_register[DMA_COMMAND]; - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); if (!(command & 0x8000)) return; diff --git a/src/mame/video/midvunit.c b/src/mame/video/midvunit.c index 8518f57e13d..e3eeb354b88 100644 --- a/src/mame/video/midvunit.c +++ b/src/mame/video/midvunit.c @@ -59,12 +59,12 @@ static TIMER_CALLBACK( scanline_timer_cb ) if (scanline != -1) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); timer_adjust_oneshot(scanline_timer, video_screen_get_time_until_pos(machine->primary_screen, scanline + 1, 0), scanline); timer_set(ATTOTIME_IN_HZ(25000000), NULL, -1, scanline_timer_cb); } else - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } diff --git a/src/mame/video/midyunit.c b/src/mame/video/midyunit.c index 486f9b35776..30b8e297b20 100644 --- a/src/mame/video/midyunit.c +++ b/src/mame/video/midyunit.c @@ -390,7 +390,7 @@ static void dma_draw(UINT16 command) static TIMER_CALLBACK( dma_callback ) { dma_register[DMA_COMMAND] &= ~0x8000; /* tell the cpu we're done */ - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } @@ -453,7 +453,7 @@ WRITE16_HANDLER( midyunit_dma_w ) /* high bit triggers action */ command = dma_register[DMA_COMMAND]; - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); if (!(command & 0x8000)) return; diff --git a/src/mame/video/midzeus.c b/src/mame/video/midzeus.c index 4db9b4a09bf..1cd5767d908 100644 --- a/src/mame/video/midzeus.c +++ b/src/mame/video/midzeus.c @@ -655,9 +655,9 @@ static void zeus_register_update(running_machine *machine, offs_t offset) we simply assert immediately if this is enabled. invasn needs this for proper operations */ if (zeusbase[0x80] & 0x02000000) - cpunum_set_input_line(machine, 0, 2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 2, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 2, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 2, CLEAR_LINE); break; case 0x84: diff --git a/src/mame/video/midzeus2.c b/src/mame/video/midzeus2.c index 449ed00ca99..25115aff73f 100644 --- a/src/mame/video/midzeus2.c +++ b/src/mame/video/midzeus2.c @@ -257,7 +257,7 @@ INLINE UINT8 get_texel_4bit(const void *base, int y, int x, int width) static TIMER_CALLBACK( int_timer_callback ) { - cpunum_set_input_line(machine, 0, 2, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 2, ASSERT_LINE); } diff --git a/src/mame/video/nemesis.c b/src/mame/video/nemesis.c index e34df61e750..93da8fe9a75 100644 --- a/src/mame/video/nemesis.c +++ b/src/mame/video/nemesis.c @@ -95,7 +95,7 @@ WRITE16_HANDLER( nemesis_gfx_flipx_w ) else { if (data & 0x100) - cpunum_set_input_line_and_vector(machine, 1, 0, HOLD_LINE, 0xff); + cpu_set_input_line_and_vector(machine->cpu[1], 0, HOLD_LINE, 0xff); } } diff --git a/src/mame/video/playch10.c b/src/mame/video/playch10.c index 34f2399f6fc..954da615666 100644 --- a/src/mame/video/playch10.c +++ b/src/mame/video/playch10.c @@ -60,7 +60,7 @@ PALETTE_INIT( playch10 ) static void ppu_irq( int num, int *ppu_regs ) { - cpunum_set_input_line(Machine, 1, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[1], INPUT_LINE_NMI, PULSE_LINE ); pc10_int_detect = 1; } diff --git a/src/mame/video/policetr.c b/src/mame/video/policetr.c index 497e674c442..00183dd7c00 100644 --- a/src/mame/video/policetr.c +++ b/src/mame/video/policetr.c @@ -245,12 +245,12 @@ WRITE32_HANDLER( policetr_video_w ) /* latch 0x50 clears IRQ4 */ case 0x50: - cpunum_set_input_line(machine, 0, R3000_IRQ4, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], R3000_IRQ4, CLEAR_LINE); break; /* latch 0x60 clears IRQ5 */ case 0x60: - cpunum_set_input_line(machine, 0, R3000_IRQ5, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], R3000_IRQ5, CLEAR_LINE); break; /* log anything else */ diff --git a/src/mame/video/ppu2c0x.c b/src/mame/video/ppu2c0x.c index e9a8ce85bd1..2f06f7ed104 100644 --- a/src/mame/video/ppu2c0x.c +++ b/src/mame/video/ppu2c0x.c @@ -1333,7 +1333,7 @@ void ppu2c0x_spriteram_dma (int num, const UINT8 page) } // should last 513 CPU cycles. - activecpu_adjust_icount(-513); + cpu_adjust_icount(chips[num].machine->activecpu, -513); // ????TODO : need to account for PPU rendering - this is roughly 4.5 scanlines eaten up. // Because the DMA is only useful during vblank, this may not be strictly necessary since diff --git a/src/mame/video/psx.c b/src/mame/video/psx.c index c8f1f34adeb..44d019f365a 100644 --- a/src/mame/video/psx.c +++ b/src/mame/video/psx.c @@ -3898,11 +3898,11 @@ READ32_HANDLER( psx_gpu_r ) INTERRUPT_GEN( psx_vblank ) { #if defined( MAME_DEBUG ) - DebugCheckKeys(machine); + DebugCheckKeys(device->machine); #endif m_n_gpustatus ^= ( 1L << 31 ); - psx_irq_set( machine, 0x0001 ); + psx_irq_set( device->machine, 0x0001 ); } void psx_gpu_reset( running_machine *machine ) diff --git a/src/mame/video/rpunch.c b/src/mame/video/rpunch.c index 91c90806102..c9653f00615 100644 --- a/src/mame/video/rpunch.c +++ b/src/mame/video/rpunch.c @@ -76,7 +76,7 @@ static TILE_GET_INFO( get_bg1_tile_info ) static TIMER_CALLBACK( crtc_interrupt_gen ) { - cpunum_set_input_line(machine, 0, 1, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 1, HOLD_LINE); if (param != 0) timer_adjust_periodic(crtc_timer, attotime_div(video_screen_get_frame_period(machine->primary_screen), param), 0, attotime_div(video_screen_get_frame_period(machine->primary_screen), param)); } diff --git a/src/mame/video/segag80r.c b/src/mame/video/segag80r.c index 4cfc2eec198..63473d485e3 100644 --- a/src/mame/video/segag80r.c +++ b/src/mame/video/segag80r.c @@ -66,7 +66,7 @@ INTERRUPT_GEN( segag80r_vblank_start ) /* if interrupts are enabled, clock one */ if (video_control & 0x04) - irq0_line_hold(machine, cpunum); + irq0_line_hold(device); } @@ -77,7 +77,7 @@ INTERRUPT_GEN( sindbadm_vblank_start ) /* interrupts appear to always be enabled, but they have a manual */ /* acknowledge rather than an automatic ack; they are also not masked */ /* by bit 2 of video_control like a standard G80 */ - irq0_line_assert(machine, cpunum); + irq0_line_assert(device); } @@ -611,7 +611,7 @@ WRITE8_HANDLER( sindbadm_back_port_w ) { /* port 0: irq ack */ case 0: - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); break; /* port 1: background control diff --git a/src/mame/video/sidearms.c b/src/mame/video/sidearms.c index ceeff2dc2ce..c2e681912f0 100644 --- a/src/mame/video/sidearms.c +++ b/src/mame/video/sidearms.c @@ -52,7 +52,7 @@ WRITE8_HANDLER( sidearms_c804_w ) /* bit 4 resets the sound CPU */ if (data & 0x10) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); } /* bit 5 enables starfield */ diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index 9c6fc0fdc7e..ce9e5dfde29 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -93,18 +93,18 @@ static int lastscroll; INTERRUPT_GEN( spdodgeb_interrupt ) { - int iloop = cpu_getiloops(); + int iloop = cpu_getiloops(device); int scanline = (32-iloop) * 8; if (iloop > 1 && iloop < 32) { - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, HOLD_LINE); - video_screen_update_partial(machine->primary_screen, scanline+7); + cpu_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE); + video_screen_update_partial(device->machine->primary_screen, scanline+7); } else if (!iloop) { - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); - video_screen_update_partial(machine->primary_screen, 256); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); + video_screen_update_partial(device->machine->primary_screen, 256); } } diff --git a/src/mame/video/stvvdp1.c b/src/mame/video/stvvdp1.c index b140dbc5f01..7dd86ce4500 100644 --- a/src/mame/video/stvvdp1.c +++ b/src/mame/video/stvvdp1.c @@ -318,7 +318,7 @@ WRITE32_HANDLER( stv_vdp1_regs_w ) if(!(stv_scu[40] & 0x2000)) /*Sprite draw end irq*/ { logerror( "Interrupt: Sprite draw end, Vector 0x4d, Level 0x02\n" ); - cpunum_set_input_line_and_vector(machine, 0, 2, HOLD_LINE , 0x4d); + cpu_set_input_line_and_vector(machine->cpu[0], 2, HOLD_LINE , 0x4d); } } } @@ -1994,7 +1994,7 @@ static void stv_vdp1_process_list() /* not here! this is done every frame drawn even if the cpu isn't running eg in the debugger */ // if(!(stv_scu[40] & 0x2000)) /*Sprite draw end irq*/ -// cpunum_set_input_line_and_vector(Machine, 0, 2, HOLD_LINE , 0x4d); +// cpu_set_input_line_and_vector(Machine->cpu[0], 2, HOLD_LINE , 0x4d); if (vdp1_sprite_log) logerror ("End of list processing!\n"); } diff --git a/src/mame/video/taito_z.c b/src/mame/video/taito_z.c index 21d4e35828c..de4bcb15234 100644 --- a/src/mame/video/taito_z.c +++ b/src/mame/video/taito_z.c @@ -831,7 +831,7 @@ WRITE16_HANDLER( contcirc_out_w ) if (ACCESSING_BITS_0_7) { /* bit 0 = reset sub CPU */ - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE); /* bits 1-3 n.c. */ diff --git a/src/mame/video/tia.c b/src/mame/video/tia.c index 74bd4e66e39..d22c23b2a4d 100644 --- a/src/mame/video/tia.c +++ b/src/mame/video/tia.c @@ -506,15 +506,15 @@ static int collision_check(UINT8* p1, UINT8* p2, int x1, int x2) } -INLINE int current_x(void) +INLINE int current_x(running_machine *machine) { - return 3 * ((activecpu_gettotalcycles() - frame_cycles) % 76) - 68; + return 3 * ((cpu_get_total_cycles(machine->activecpu) - frame_cycles) % 76) - 68; } -INLINE int current_y(void) +INLINE int current_y(running_machine *machine) { - return (activecpu_gettotalcycles() - frame_cycles) / 76; + return (cpu_get_total_cycles(machine->activecpu) - frame_cycles) / 76; } @@ -853,11 +853,11 @@ static void update_bitmap(int next_x, int next_y) static WRITE8_HANDLER( WSYNC_w ) { - int cycles = activecpu_gettotalcycles() - frame_cycles; + int cycles = cpu_get_total_cycles(machine->activecpu) - frame_cycles; if (cycles % 76) { - activecpu_adjust_icount(cycles % 76 - 76); + cpu_adjust_icount(machine->activecpu, cycles % 76 - 76); } } @@ -868,7 +868,7 @@ static WRITE8_HANDLER( VSYNC_w ) { if (!(VSYNC & 2)) { - int curr_y = current_y(); + int curr_y = current_y(machine); if ( curr_y > 5 ) update_bitmap( @@ -882,7 +882,7 @@ static WRITE8_HANDLER( VSYNC_w ) prev_y = 0; prev_x = 0; - frame_cycles += 76 * current_y(); + frame_cycles += 76 * current_y(machine); } } @@ -894,7 +894,7 @@ static WRITE8_HANDLER( VBLANK_w ) { if (data & 0x80) { - paddle_cycles = activecpu_gettotalcycles(); + paddle_cycles = cpu_get_total_cycles(machine->activecpu); } if ( ! ( VBLANK & 0x40 ) ) { INPT4 = 0x80; @@ -906,7 +906,7 @@ static WRITE8_HANDLER( VBLANK_w ) static WRITE8_HANDLER( CTRLPF_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); CTRLPF = data; if ( curr_x < 80 ) { @@ -916,7 +916,7 @@ static WRITE8_HANDLER( CTRLPF_w ) static WRITE8_HANDLER( HMP0_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); data &= 0xF0; @@ -948,7 +948,7 @@ static WRITE8_HANDLER( HMP0_w ) static WRITE8_HANDLER( HMP1_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); data &= 0xF0; @@ -980,7 +980,7 @@ static WRITE8_HANDLER( HMP1_w ) static WRITE8_HANDLER( HMM0_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); data &= 0xF0; @@ -1011,7 +1011,7 @@ static WRITE8_HANDLER( HMM0_w ) static WRITE8_HANDLER( HMM1_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); data &= 0xF0; @@ -1042,7 +1042,7 @@ static WRITE8_HANDLER( HMM1_w ) static WRITE8_HANDLER( HMBL_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); data &= 0xF0; @@ -1073,8 +1073,8 @@ static WRITE8_HANDLER( HMBL_w ) static WRITE8_HANDLER( HMOVE_w ) { - int curr_x = current_x(); - int curr_y = current_y(); + int curr_x = current_x(machine); + int curr_y = current_y(machine); HMOVE_started = curr_x; @@ -1204,7 +1204,7 @@ static WRITE8_HANDLER( RSYNC_w ) static WRITE8_HANDLER( NUSIZ0_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); /* Check if relevant bits have changed */ if ( ( data & 7 ) != ( NUSIZ0 & 7 ) ) { @@ -1219,7 +1219,7 @@ static WRITE8_HANDLER( NUSIZ0_w ) /* This copy has started drawing */ if ( p0gfx.size[i] == 1 && nusiz[data & 7][1] > 1 ) { int delay = 1 + ( ( p0gfx.start_pixel[i] + ( curr_x - p0gfx.start_drawing[i] ) ) & 1 ); - update_bitmap( curr_x + delay, current_y() ); + update_bitmap( curr_x + delay, current_y(machine) ); p0gfx.start_pixel[i] += ( curr_x + delay - p0gfx.start_drawing[i] ); if ( p0gfx.start_pixel[i] > 8 ) p0gfx.start_pixel[i] = 8; @@ -1229,7 +1229,7 @@ static WRITE8_HANDLER( NUSIZ0_w ) if ( delay ) { delay = p0gfx.size[i] - delay; } - update_bitmap( curr_x + delay, current_y() ); + update_bitmap( curr_x + delay, current_y(machine) ); p0gfx.start_pixel[i] += ( curr_x - p0gfx.start_drawing[i] ) / p0gfx.size[i]; p0gfx.start_drawing[i] = curr_x + delay; } else { @@ -1282,7 +1282,7 @@ static WRITE8_HANDLER( NUSIZ0_w ) static WRITE8_HANDLER( NUSIZ1_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); /* Check if relevant bits have changed */ if ( ( data & 7 ) != ( NUSIZ1 & 7 ) ) { @@ -1297,7 +1297,7 @@ static WRITE8_HANDLER( NUSIZ1_w ) /* This copy has started drawing */ if ( p1gfx.size[i] == 1 && nusiz[data & 7][1] > 1 ) { int delay = 1 + ( ( p0gfx.start_pixel[i] + ( curr_x - p0gfx.start_drawing[i] ) ) & 1 ); - update_bitmap( curr_x + delay, current_y() ); + update_bitmap( curr_x + delay, current_y(machine) ); p1gfx.start_pixel[i] += ( curr_x + delay - p1gfx.start_drawing[i] ); if ( p1gfx.start_pixel[i] > 8 ) p1gfx.start_pixel[i] = 8; @@ -1307,7 +1307,7 @@ static WRITE8_HANDLER( NUSIZ1_w ) if ( delay ) { delay = p1gfx.size[i] - delay; } - update_bitmap( curr_x + delay, current_y() ); + update_bitmap( curr_x + delay, current_y(machine) ); p1gfx.start_pixel[i] += ( curr_x - p1gfx.start_drawing[i] ) / p1gfx.size[i]; p1gfx.start_drawing[i] = curr_x + delay; } else { @@ -1405,7 +1405,7 @@ static WRITE8_HANDLER( CXCLR_w ) static WRITE8_HANDLER( RESP0_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); int new_horzP0; /* Check if HMOVE is activated during this line */ @@ -1465,7 +1465,7 @@ static WRITE8_HANDLER( RESP0_w ) static WRITE8_HANDLER( RESP1_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); int new_horzP1; /* Check if HMOVE is activated during this line */ @@ -1525,7 +1525,7 @@ static WRITE8_HANDLER( RESP1_w ) static WRITE8_HANDLER( RESM0_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); int new_horzM0; /* Check if HMOVE is activated during this line */ @@ -1547,7 +1547,7 @@ static WRITE8_HANDLER( RESM0_w ) static WRITE8_HANDLER( RESM1_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); int new_horzM1; /* Check if HMOVE is activated during this line */ @@ -1569,7 +1569,7 @@ static WRITE8_HANDLER( RESM1_w ) static WRITE8_HANDLER( RESBL_w ) { - int curr_x = current_x(); + int curr_x = current_x(machine); /* Check if HMOVE is activated during this line */ if ( HMOVE_started != HMOVE_INACTIVE ) { @@ -1647,7 +1647,7 @@ static WRITE8_HANDLER( GRP1_w ) static READ8_HANDLER( INPT_r ) { - UINT64 elapsed = activecpu_gettotalcycles() - paddle_cycles; + UINT64 elapsed = cpu_get_total_cycles(machine->activecpu) - paddle_cycles; int input = TIA_INPUT_PORT_ALWAYS_ON; if ( tia_read_input_port ) { @@ -1679,7 +1679,7 @@ READ8_HANDLER( tia_r ) if (!(offset & 0x8)) { - update_bitmap(current_x(), current_y()); + update_bitmap(current_x(machine), current_y(machine)); } switch (offset & 0xF) @@ -1776,8 +1776,8 @@ WRITE8_HANDLER( tia_w ) 0, // HMCLR 0, // CXCLR }; - int curr_x = current_x(); - int curr_y = current_y(); + int curr_x = current_x(machine); + int curr_y = current_y(machine); offset &= 0x3F; diff --git a/src/mame/video/tmnt.c b/src/mame/video/tmnt.c index 0d1f21b25bd..2f518253a65 100644 --- a/src/mame/video/tmnt.c +++ b/src/mame/video/tmnt.c @@ -340,7 +340,7 @@ WRITE16_HANDLER( tmnt_0a0000_w ) /* bit 3 high then low triggers irq on sound CPU */ if (last == 0x08 && (data & 0x08) == 0) - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); last = data & 0x08; @@ -366,7 +366,7 @@ WRITE16_HANDLER( punkshot_0a0020_w ) /* bit 2 = trigger irq on sound CPU */ if (last == 0x04 && (data & 0x04) == 0) - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); last = data & 0x04; @@ -388,7 +388,7 @@ WRITE16_HANDLER( lgtnfght_0a0018_w ) /* bit 2 = trigger irq on sound CPU */ if (last == 0x00 && (data & 0x04) == 0x04) - cpunum_set_input_line_and_vector(machine, 1,0,HOLD_LINE,0xff); + cpu_set_input_line_and_vector(machine->cpu[1],0,HOLD_LINE,0xff); last = data & 0x04; diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c index d1a61e686da..c5aed79cb27 100644 --- a/src/mame/video/toaplan1.c +++ b/src/mame/video/toaplan1.c @@ -1242,5 +1242,5 @@ VIDEO_EOF( samesame ) { buffer_spriteram16_w(machine, 0, 0, 0xffff); memcpy(toaplan1_buffered_spritesizeram16, toaplan1_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE); - cpunum_set_input_line(machine, 0, MC68000_IRQ_2, HOLD_LINE); /* Frame done */ + cpu_set_input_line(machine->cpu[0], MC68000_IRQ_2, HOLD_LINE); /* Frame done */ } diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index c3082228eda..55700795167 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -1005,7 +1005,7 @@ static void toaplan2_scroll_reg_data_w(running_machine *machine, offs_t offset, /* HACK! When tilted, sound CPU needs to be reset. */ if (machine->config->sound[0].type == SOUND_YM3812) { - cpunum_set_input_line(machine, 1, INPUT_LINE_RESET, PULSE_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_RESET, PULSE_LINE); sndti_reset(SOUND_YM3812, 0); } } diff --git a/src/mame/video/tubep.c b/src/mame/video/tubep.c index 268f2ff9ffc..076bd4de919 100644 --- a/src/mame/video/tubep.c +++ b/src/mame/video/tubep.c @@ -454,7 +454,7 @@ WRITE8_HANDLER( tubep_background_c000_w ) static TIMER_CALLBACK( sprite_timer_callback ) { - cpunum_set_input_line(machine, 3,0,ASSERT_LINE); + cpu_set_input_line(machine->cpu[3],0,ASSERT_LINE); } @@ -583,7 +583,7 @@ WRITE8_HANDLER( tubep_sprite_control_w ) /SINT line will be reasserted in XSize * YSize cycles (RH0 signal cycles) */ /* 1.clear the /SINT interrupt line */ - cpunum_set_input_line(machine, 3,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[3],0,CLEAR_LINE); /* 2.assert /SINT again after this time */ timer_set( attotime_mul(ATTOTIME_IN_HZ(19968000/8), (XSize+1)*(YSize+1)), NULL, 0, sprite_timer_callback); diff --git a/src/mame/video/tx1.c b/src/mame/video/tx1.c index 8dcce042eb7..fa058cb781e 100644 --- a/src/mame/video/tx1.c +++ b/src/mame/video/tx1.c @@ -2312,7 +2312,7 @@ WRITE16_HANDLER( buggyboy_gas_w ) } case 0xe0: { - cpunum_set_input_line(machine, 1, INPUT_LINE_TEST, CLEAR_LINE); + cpu_set_input_line(machine->cpu[1], INPUT_LINE_TEST, CLEAR_LINE); vregs.flags = data; break; } diff --git a/src/mame/video/vball.c b/src/mame/video/vball.c index a2a988cc6ee..b2b9403f772 100644 --- a/src/mame/video/vball.c +++ b/src/mame/video/vball.c @@ -183,11 +183,11 @@ VIDEO_UPDATE( vb ) */ INTERRUPT_GEN( vball_interrupt ) { - int line = 31 - cpu_getiloops(); + int line = 31 - cpu_getiloops(device); if (line < 13) - cpunum_set_input_line(machine, 0, M6502_IRQ_LINE, HOLD_LINE); + cpu_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE); else if (line == 13) - cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, PULSE_LINE); + cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); //save the scroll x register value if(line<32) scrollx[31-line] = (vb_scrollx_hi + vb_scrollx_lo+4); } diff --git a/src/mame/video/vdc.c b/src/mame/video/vdc.c index 2190cdf7cf5..81cd28c4dcf 100644 --- a/src/mame/video/vdc.c +++ b/src/mame/video/vdc.c @@ -106,17 +106,17 @@ INTERRUPT_GEN( pce_interrupt ) /* Draw VDC #0 sprite layer */ if(vdc[0].vdc_data[CR].w & CR_SB) { - pce_refresh_sprites(machine, 0, vdc[0].current_segment_line, drawn, line_buffer); + pce_refresh_sprites(device->machine, 0, vdc[0].current_segment_line, drawn, line_buffer); } } } else { /* We are in one of the blanking areas */ - draw_black_line(machine, vce.current_bitmap_line ); + draw_black_line(device->machine, vce.current_bitmap_line ); } /* bump current scanline */ vce.current_bitmap_line = ( vce.current_bitmap_line + 1 ) % VDC_LPF; - vdc_advance_line(machine, 0 ); + vdc_advance_line(device->machine, 0 ); } INTERRUPT_GEN( sgx_interrupt ) @@ -148,7 +148,7 @@ INTERRUPT_GEN( sgx_interrupt ) /* Draw VDC #0 sprite layer */ if(vdc[0].vdc_data[CR].w & CR_SB) { - pce_refresh_sprites(machine, 0, vdc[0].current_segment_line, drawn[0], temp_buffer[0]); + pce_refresh_sprites(device->machine, 0, vdc[0].current_segment_line, drawn[0], temp_buffer[0]); } /* Draw VDC #1 background layer */ @@ -156,7 +156,7 @@ INTERRUPT_GEN( sgx_interrupt ) /* Draw VDC #1 sprite layer */ if ( vdc[1].vdc_data[CR].w & CR_SB ) { - pce_refresh_sprites(machine, 1, vdc[1].current_segment_line, drawn[1], temp_buffer[1]); + pce_refresh_sprites(device->machine, 1, vdc[1].current_segment_line, drawn[1], temp_buffer[1]); } line_buffer = BITMAP_ADDR16( vce.bmp, vce.current_bitmap_line, 86 ); @@ -226,13 +226,13 @@ INTERRUPT_GEN( sgx_interrupt ) } } else { /* We are in one of the blanking areas */ - draw_black_line(machine, vce.current_bitmap_line ); + draw_black_line(device->machine, vce.current_bitmap_line ); } /* bump current scanline */ vce.current_bitmap_line = ( vce.current_bitmap_line + 1 ) % VDC_LPF; - vdc_advance_line(machine, 0 ); - vdc_advance_line(machine, 1 ); + vdc_advance_line(device->machine, 0 ); + vdc_advance_line(device->machine, 1 ); } static void vdc_advance_line(running_machine *machine, int which) { @@ -341,7 +341,7 @@ static void vdc_advance_line(running_machine *machine, int which) { } if (ret) - cpunum_set_input_line(machine, 0, 0, HOLD_LINE); + cpu_set_input_line(machine->cpu[0], 0, HOLD_LINE); } VIDEO_START( pce ) @@ -540,7 +540,7 @@ static UINT8 vdc_r( running_machine *machine, int which, offs_t offset ) case 0x00: temp = vdc[which].status; vdc[which].status &= ~(VDC_VD | VDC_RR | VDC_CR | VDC_OR | VDC_DS); - cpunum_set_input_line(machine, 0,0,CLEAR_LINE); + cpu_set_input_line(machine->cpu[0],0,CLEAR_LINE); break; case 0x02: @@ -806,7 +806,7 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U if(sprites_drawn > 16) { vdc[which].status |= VDC_OR; if(vdc[which].vdc_data[CR].w&CR_OV) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); continue; /* Should cause an interrupt */ } @@ -843,7 +843,7 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U else if (drawn[pixel_x]==2) { if(vdc[which].vdc_data[CR].w&CR_CC) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); vdc[which].status|=VDC_CR; } } @@ -884,7 +884,7 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U /* Check for sprite #0 collision */ else if ( drawn[pixel_x] == 2 ) { if(vdc[which].vdc_data[CR].w&CR_CC) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); vdc[which].status|=VDC_CR; } } @@ -903,7 +903,7 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U if( sprites_drawn > 16 ) { vdc[which].status |= VDC_OR; if(vdc[which].vdc_data[CR].w&CR_OV) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } else { conv_obj(which, obj_i + (cgypos << 2) + (hf ? 0 : 2), obj_l, hf, vf, buf); for(x=0;x<16;x++) @@ -928,7 +928,7 @@ static void pce_refresh_sprites(running_machine *machine, int which, int line, U /* Check for sprite #0 collision */ else if ( drawn[pixel_x]==2 ) { if(vdc[which].vdc_data[CR].w&CR_CC) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); vdc[which].status|=VDC_CR; } } @@ -980,7 +980,7 @@ static void vdc_do_dma(running_machine *machine, int which) vdc[which].vdc_data[LENR].w = len; if(dvc) { - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); } } diff --git a/src/mame/video/victory.c b/src/mame/video/victory.c index 95485303548..11741f49ce6 100644 --- a/src/mame/video/victory.c +++ b/src/mame/video/victory.c @@ -103,9 +103,9 @@ VIDEO_START( victory ) static void victory_update_irq(running_machine *machine) { if (vblank_irq || fgcoll || (bgcoll && (video_control & 0x20))) - cpunum_set_input_line(machine, 0, 0, ASSERT_LINE); + cpu_set_input_line(machine->cpu[0], 0, ASSERT_LINE); else - cpunum_set_input_line(machine, 0, 0, CLEAR_LINE); + cpu_set_input_line(machine->cpu[0], 0, CLEAR_LINE); } @@ -113,7 +113,7 @@ INTERRUPT_GEN( victory_vblank_interrupt ) { vblank_irq = 1; - victory_update_irq(machine); + victory_update_irq(device->machine); } diff --git a/src/mame/video/vindictr.c b/src/mame/video/vindictr.c index e8404c13b29..5ccfee9a9bb 100644 --- a/src/mame/video/vindictr.c +++ b/src/mame/video/vindictr.c @@ -191,7 +191,7 @@ void vindictr_scanline_update(const device_config *screen, int scanline) break; case 6: /* /VIRQ */ - atarigen_scanline_int_gen(screen->machine, 0); + atarigen_scanline_int_gen(screen->machine->cpu[0]); break; case 7: /* /PFVS */ diff --git a/src/mame/video/vsnes.c b/src/mame/video/vsnes.c index 84ee378ddf7..23cbffb23e1 100644 --- a/src/mame/video/vsnes.c +++ b/src/mame/video/vsnes.c @@ -17,7 +17,7 @@ PALETTE_INIT( vsdual ) static void ppu_irq( int num, int *ppu_regs ) { - cpunum_set_input_line(Machine, num, INPUT_LINE_NMI, PULSE_LINE ); + cpu_set_input_line(Machine->cpu[num], INPUT_LINE_NMI, PULSE_LINE ); } /* our ppu interface */ diff --git a/src/mame/video/williams.c b/src/mame/video/williams.c index cdadf1a4383..c95173c9b54 100644 --- a/src/mame/video/williams.c +++ b/src/mame/video/williams.c @@ -577,7 +577,7 @@ WRITE8_HANDLER( williams_blitter_w ) /* based on the number of memory accesses needed to do the blit, compute how long the blit will take */ /* this is just a guess */ estimated_clocks_at_4MHz = 20 + 2 * accesses; - activecpu_adjust_icount(-((estimated_clocks_at_4MHz + 3) / 4)); + cpu_adjust_icount(machine->activecpu, -((estimated_clocks_at_4MHz + 3) / 4)); /* Log blits */ logerror("%04X:Blit @ %3d : %02X%02X -> %02X%02X, %3dx%3d, mask=%02X, flags=%02X, icount=%d, win=%d\n", diff --git a/src/mame/video/ygv608.c b/src/mame/video/ygv608.c index 886d672e2c7..053ff3761d3 100644 --- a/src/mame/video/ygv608.c +++ b/src/mame/video/ygv608.c @@ -79,7 +79,7 @@ INTERRUPT_GEN( ygv608_timed_interrupt ) { ygv608.ports.s.p6 |= p6_fv; if (ygv608.regs.s.r14 & r14_iev) - irq2_line_hold(machine, cpunum); + irq2_line_hold(device); } /* once every 60Hz, set the position detection flag (somewhere) */ @@ -87,7 +87,7 @@ INTERRUPT_GEN( ygv608_timed_interrupt ) { ygv608.ports.s.p6 |= p6_fp; if (ygv608.regs.s.r14 & r14_iep) - irq2_line_hold(machine, cpunum); + irq2_line_hold(device); } } diff --git a/src/mame/video/zaxxon.c b/src/mame/video/zaxxon.c index 77646443fa9..df4fbcfdfc7 100644 --- a/src/mame/video/zaxxon.c +++ b/src/mame/video/zaxxon.c @@ -281,7 +281,7 @@ WRITE8_HANDLER( congo_sprite_custom_w ) int count = congo_custom[2]; /* count cycles (just a guess) */ - activecpu_adjust_icount(-count * 5); + cpu_adjust_icount(machine->activecpu, -count * 5); /* this is just a guess; the chip is hardwired to the spriteram */ while (count-- >= 0)