Previous 199869 Revisions Next

r17815 Wednesday 12th September, 2012 at 06:07:51 UTC by Aaron Giles
Clear out remaining global inlines in diexec.h.
[src/emu]diexec.c diexec.h
[src/emu/cpu/cp1610]cp1610.c
[src/emu/cpu/i386]i386.c x87ops.c
[src/emu/cpu/i86]instr286.c
[src/emu/cpu/jaguar]jaguar.c
[src/emu/cpu/m37710]m37710.c
[src/emu/cpu/m6502]m6502.h m6509.h
[src/emu/cpu/m68000]m68kcpu.c
[src/emu/cpu/mips]mips3com.c
[src/emu/cpu/sh4]sh4comn.c
[src/emu/cpu/tms34010]34010ops.c tms34010.c
[src/emu/cpu/tms7000]tms7000.c
[src/emu/machine]8042kbdc.c k056230.c tmp68301.c
[src/emu/sound]scsp.c
[src/emu/video]voodoo.c
[src/mame/audio]aztarac.c beezer.c cage.c dcs.c decobsmt.c dsbz80.c exidy.c harddriv.c leland.c namco52.c namco54.c scramble.c segasnd.c seibu.c t5182.c taito_en.c taitosnd.c timeplt.c trackfld.c
[src/mame/drivers]1942.c 20pacgal.c 2mindril.c 3do.c 40love.c 88games.c acefruit.c aces1.c actfancr.c adp.c aeroboto.c aerofgt.c airbustr.c aliens.c alpha68k.c amaticmg.c amspdwy.c angelkds.c appoooh.c aquarium.c ashnojoe.c asterix.c astinvad.c astrof.c asuka.c atarifb.c avt.c aztarac.c backfire.c bagman.c bankp.c battlane.c battlex.c battlnts.c bbusters.c beaminv.c beathead.c beezer.c bfcobra.c bfm_sc5.c bigevglf.c bingor.c bishi.c bking.c bladestl.c blktiger.c blockade.c blockhl.c blockout.c blueprnt.c bnstars.c bombjack.c boogwing.c bottom9.c boxer.c brkthru.c btime.c bublbobl.c buggychl.c bwing.c byvid.c bzone.c cabal.c cabaret.c calchase.c capbowl.c carjmbre.c cave.c cball.c cbuster.c ccastles.c cclimber.c cesclass.c champbas.c chanbara.c cheekyms.c chihiro.c chinagat.c chqflag.c circus.c circusc.c citycon.c cloud9.c cmmb.c cninja.c cntsteer.c cobra.c coinmvga.c combatsc.c commando.c contra.c coolpool.c coolridr.c cop01.c cps1.c cps2.c cps3.c crbaloon.c crgolf.c crimfght.c crospang.c crystal.c csplayh5.c cubeqst.c cultures.c cvs.c cyclemb.c dacholer.c darius.c dassault.c dblewing.c dbz.c dcheese.c ddayjlc.c ddealer.c ddenlovr.c ddragon.c ddragon3.c ddribble.c dec8.c deco156.c deco32.c deco_ld.c deco_mlc.c deniam.c deshoros.c destroyr.c dfruit.c dgpix.c dietgo.c discoboy.c diverboy.c djboy.c djmain.c dkong.c dogfgt.c drgnmst.c dribling.c drmicro.c dwarfd.c dynax.c dynduke.c egghunt.c enigma2.c eolithsp.c eprom.c equites.c esd16.c esh.c espial.c ettrivia.c exerion.c exprraid.c f1gp.c fantland.c fastfred.c fastlane.c fcombat.c fcrash.c fgoal.c finalizr.c firebeat.c firetrap.c firetrk.c fitfight.c flipjack.c flkatck.c flstory.c flyball.c freekick.c fromanc2.c fromance.c funkball.c funkyjet.c funybubl.c fuukifg2.c fuukifg3.c gaelco.c gaelco3d.c gaiden.c galaga.c galastrm.c galaxia.c galaxian.c galaxold.c galgame.c galpani2.c galpani3.c galspnbl.c gamecstl.c gameplan.c gbusters.c gcpinbal.c gei.c ghosteo.c gijoe.c ginganin.c glass.c go2000.c goal92.c goldstar.c goodejan.c gotcha.c gottlieb.c gpworld.c gradius3.c grchamp.c groundfx.c gsword.c gticlub.c gunbustr.c gunpey.c gyruss.c hcastle.c highvdeo.c himesiki.c hitpoker.c hng64.c homedata.c hotblock.c hvyunit.c hyperspt.c hyprduel.c igs009.c igs011.c igs017.c igspoker.c ikki.c imolagp.c inufuku.c iqblock.c ironhors.c istellar.c itech32.c jack.c jackal.c jackie.c jackpool.c jaguar.c jailbrek.c jangou.c jchan.c jclub2.c jollyjgr.c jrpacman.c jubilee.c junofrst.c kaneko16.c karnov.c kas89.c kchamp.c kingobox.c kingpin.c kinst.c kncljoe.c koftball.c konamigx.c konamim2.c kontest.c kopunch.c kungfur.c kyugo.c labyrunr.c ladybug.c ladyfrog.c laserbat.c lasso.c lastbank.c lastduel.c lastfght.c lazercmd.c lemmings.c lethal.c lgp.c liberate.c littlerb.c lkage.c lockon.c looping.c lsasquad.c lucky74.c lwings.c m10.c m14.c m63.c m72.c m79amb.c m90.c m92.c macrossp.c madmotor.c magicard.c magictg.c magtouch.c mainevt.c marineb.c mario.c mastboy.c matmania.c mayumi.c mazerbla.c mcatadv.c mcr68.c meadows.c mediagx.c megaplay.c megasys1.c megazone.c meijinsn.c mermaid.c metalmx.c metlclsh.c metro.c mexico86.c mgolf.c midqslvr.c midvunit.c midzeus.c mikie.c mirax.c missb2.c missile.c mitchell.c mjkjidai.c mjsister.c model1.c model2.c mogura.c moo.c mouser.c mrflea.c ms32.c msisaac.c mugsmash.c munchmo.c mustache.c mystwarr.c n8080.c namcofl.c namcona1.c namconb1.c namcos1.c namcos11.c namcos21.c namcos22.c namcos23.c nemesis.c neogeo.c nightgal.c ninjakd2.c ninjaw.c niyanpai.c nmg5.c nsmpoker.c nss.c nycaptor.c nyny.c ojankohs.c oneshot.c onetwo.c opwolf.c orbit.c othello.c othunder.c overdriv.c pacman.c pandoras.c pangofun.c parodius.c pasha2.c pastelg.c pbaction.c pcat_dyn.c pcat_nit.c pcxt.c pengo.c pgm.c photon.c photon2.c photoply.c pingpong.c pipedrm.c pitnrun.c pktgaldx.c playch10.c playmark.c plygonet.c pntnpuzl.c polepos.c policetr.c polyplay.c pooyan.c popeye.c popobear.c popper.c psikyo.c psikyo4.c psikyosh.c pturn.c punchout.c pushman.c qdrmfgp.c quakeat.c quasar.c queen.c r2dx_v33.c raiden.c raiden2.c rainbow.c rallyx.c rastan.c redalert.c redclash.c renegade.c retofinv.c rltennis.c rockrage.c rocnrope.c rohga.c rollerg.c rollrace.c rotaryf.c route16.c royalmah.c rungun.c sandscrp.c saturn.c sauro.c savquest.c sbasketb.c sbowling.c scotrsht.c scregg.c seattle.c seibuspi.c seicross.c sengokmj.c senjyo.c seta.c seta2.c sf.c sfcbox.c shanghai.c shaolins.c sigmab98.c silvmil.c simpl156.c simpsons.c skimaxx.c skyarmy.c skydiver.c skyfox.c skykid.c skylncr.c slapfght.c slapshot.c sliver.c snk6502.c snowbros.c solomon.c sonson.c spcforce.c splash.c spoker.c sprcros2.c sprint2.c spy.c srumbler.c ssfindo.c ssozumo.c ssv.c st0016.c stactics.c statriv2.c strnskil.c su2000.c subsino2.c suna16.c suna8.c supbtime.c superchs.c superdq.c superqix.c supertnk.c superwng.c suprloco.c suprnova.c suprridr.c suprslam.c surpratk.c system1.c system16.c tagteam.c tail2nos.c taito_b.c taito_f2.c taito_f3.c taito_h.c taito_l.c taito_o.c taito_z.c taitoair.c taitojc.c taitotz.c taitowlf.c tankbatt.c tankbust.c targeth.c tasman.c tatsumi.c tceptor.c tetrisp2.c thedeep.c thepit.c thief.c thunderx.c timelimt.c timeplt.c timetrv.c tmaster.c tmnt.c tmspoker.c tnzs.c toaplan2.c tomcat.c topspeed.c toratora.c toypop.c tp84.c trackfld.c trucocl.c trvquest.c tsamurai.c ttchamp.c tumbleb.c tumblep.c turbo.c tutankhm.c twin16.c twinkle.c tx1.c ultraman.c ultrsprt.c undrfire.c unkhorse.c vamphalf.c vaportra.c vastar.c vcombat.c vegas.c vendetta.c volfied.c voyager.c vulgus.c warpwarp.c warriorb.c wgp.c wheelfir.c whitestar.c wiping.c witch.c wiz.c xexex.c xmen.c xtom3d.c xxmissio.c yiear.c yunsun16.c yunsung8.c zac_1.c zaccaria.c zaxxon.c zerozone.c zn.c zodiack.c zr107.c
[src/mame/includes]1942.h 20pacgal.h 40love.h 88games.h actfancr.h aerofgt.h airbustr.h ajax.h aliens.h alpha68k.h amspdwy.h angelkds.h aquarium.h ashnojoe.h asterix.h astrof.h asuka.h atarifb.h battlane.h battlnts.h beezer.h bigevglf.h bishi.h bking.h bladestl.h blktiger.h blockhl.h blockout.h blueprnt.h bottom9.h brkthru.h btime.h bublbobl.h buggychl.h bwing.h capbowl.h cave.h cbuster.h champbas.h cheekyms.h chqflag.h circus.h citycon.h commando.h contra.h coolpool.h cps1.h crgolf.h crimfght.h crospang.h cvs.h darius.h dbz.h dcheese.h ddragon.h ddragon3.h dec8.h dietgo.h djboy.h dogfgt.h dynax.h espial.h exerion.h exprraid.h f1gp.h fcombat.h fgoal.h firetrap.h flkatck.h flstory.h fromanc2.h fromance.h funkyjet.h funybubl.h fuukifg2.h fuukifg3.h gaelco.h gaiden.h galspnbl.h gameplan.h gbusters.h gijoe.h ginganin.h goal92.h gotcha.h gradius3.h hcastle.h himesiki.h homedata.h hyprduel.h inufuku.h ironhors.h jackal.h karnov.h kchamp.h kncljoe.h kopunch.h kyugo.h ladybug.h ladyfrog.h lasso.h lemmings.h lethal.h liberate.h lkage.h lockon.h lsasquad.h m10.h macrossp.h madmotor.h mainevt.h marineb.h matmania.h mcatadv.h mermaid.h metlclsh.h mexico86.h moo.h mouser.h mrflea.h msisaac.h mugsmash.h munchmo.h n8080.h neogeo.h ninjaw.h nitedrvr.h nycaptor.h ojankohs.h oneshot.h orbit.h othunder.h overdriv.h parodius.h pbaction.h pktgaldx.h popper.h psikyo.h psikyo4.h psikyosh.h pushman.h rainbow.h rastan.h rltennis.h rockrage.h rollerg.h rungun.h sf.h simpsons.h skyfox.h slapshot.h sonson.h spy.h supbtime.h suprslam.h surpratk.h system16.h tail2nos.h taito_b.h taito_f2.h taito_h.h taito_l.h taito_o.h taito_z.h taitoair.h thunderx.h tmnt.h tnzs.h topspeed.h tumbleb.h tumblep.h ultraman.h vaportra.h vendetta.h volfied.h warriorb.h wgp.h xexex.h xmen.h yunsun16.h yunsung8.h
[src/mame/machine]ajax.c amiga.c asic65.c asteroid.c atarigen.c bigevglf.c bublbobl.c buggychl.c cdi070.c cdicdic.c cdislave.c dec0.c decocass.c decocass.h docastle.c fd1094.c flstory.c gaelco2.c galaxold.c harddriv.c konppc.c leland.c lkage.c lsasquad.c mega32x.c megacd.c megadriv.c megasvp.c megavdp.c mexico86.c midwunit.c model1.c mw8080bw.c n64.c namco06.c namco50.c namco53.c namcos2.c naomi.c nb1413m3.c nitedrvr.c nycaptor.c pgmprot2.c pgmprot3.c playch10.c scudsp.c simpsons.c slapfght.c smpc.c snes.c stfight.c subs.c tnzs.c toaplan1.c twincobr.c vsnes.c xevious.c
[src/mame/video]1942.c antic.c arkanoid.c astrocde.c atari.c battlera.c beezer.c bfm_adr2.c bfm_dm01.c blktiger.c blockade.c capbowl.c circus.c commando.c dec8.c decocass.c exidy.c fromance.c gameplan.c ginganin.c gticlub.c homedata.c konicdev.c liberate.c lockon.c mcd212.c nemesis.c ppu2c0x.c rltennis.c spdodgeb.c system1.c taito_z.c tia.c tmnt.c williams.c zaxxon.c
[src/mess/drivers]abc1600.c adam.c alphatro.c apollo.c apple2.c apple2gs.c apricot.c apricotp.c atarist.c avigo.c bml3.c bw2.c cat.c cxhumax.c d6800.c dc.c dmv.c eacc.c elwro800.c enterp.c esq5505.c exelv.c fidelz80.c fk1.c fm7.c fmtowns.c gba.c geneve.c gp32.c h8.c h89.c homelab.c homez80.c iq151.c jr200.c kyocera.c m20.c m5.c mac.c micronic.c mikromik.c mirage.c mk1.c mod8.c mstation.c multi16.c mz2500.c nakajies.c ng_aes.c ngp.c ondra.c osbexec.c paso1600.c pasogo.c pc100.c pc1512.c pc6001.c pc8801.c pc88va.c pc9801.c pce220.c pcfx.c pcw.c pdp1.c pegasus.c pk8000.c pockstat.c portfoli.c prestige.c pv1000.c pv2000.c pyl601.c ql.c qx10.c rainbow.c rex6000.c samcoupe.c sm1800.c smc777.c socrates.c spectrum.c supracan.c svision.c tandy2k.c tek405x.c ti99_2.c ti99_4p.c trs80m2.c tsispch.c tvc.c v1050.c vboy.c victor9k.c vidbrain.c vixen.c vk100.c vt100.c vt240.c wangpc.c x07.c x1.c x1twin.c x68k.c xerox820.c xor100.c z100.c
[src/mess/includes]fmtowns.h nes.h pc.h
[src/mess/machine]a2bus.c a2bus.h a2eauxslot.c a2eauxslot.h a2softcard.c a2themill.c abc77.c abc99.c advision.c amigacrt.c amstrad.c at.c b2m.c bbc.c bk.c c64_cpm.c compis.c cuda.c dec_lk201.c dgn_beta.c ecbbus.c ecbbus.h egret.c galaxy.c genpc.c hd63450.c i82371ab.c i82371sb.c intv.c isa.c isa.h kb_keytro.c kc_d004.c lisa.c mac.c macpci.c mbc55x.c mboard.c mc68328.c mc80.c mpc105.c mpc105.h msx.c nes.c nes_ines.c nes_pcb.c nubus.c nubus.h orion.c pc.c pc1512kb.c pet.c pk8020.c poly88.c primo.c rmnimbus.c s100.c s100.h sms.c southbridge.c svi318.c tf20.c ti85.c trs80.c vector06.c x68k_neptunex.c zx.c
[src/mess/machine/ti99]spchsyn.c speech8.c
[src/mess/video]a7800.c atarist.c mac.c mos6566.c v1050.c vic6567.c zx8301.c

trunk/src/mame/audio/cage.c
r17814r17815
209209   cage_t *sndstate = &cage;
210210   if (state)
211211      cage_control_w(space->machine(), 0);
212   device_set_input_line(sndstate->cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
212   sndstate->cpu->set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
213213}
214214
215215
r17814r17815
241241   tms32031_io_regs[DMA_SOURCE_ADDR] = param;
242242
243243   /* set the interrupt */
244   device_set_input_line(state->cpu, TMS3203X_DINT, ASSERT_LINE);
244   state->cpu->set_input_line(TMS3203X_DINT, ASSERT_LINE);
245245   state->dma_enabled = 0;
246246}
247247
r17814r17815
314314   int which = param;
315315
316316   /* set the interrupt */
317   device_set_input_line(state->cpu, TMS3203X_TINT0 + which, ASSERT_LINE);
317   state->cpu->set_input_line(TMS3203X_TINT0 + which, ASSERT_LINE);
318318   state->timer_enabled[which] = 0;
319319   update_timer(which);
320320}
r17814r17815
509509      logerror("%06X:CAGE read command = %04X\n", space->device().safe_pc(), state->from_main);
510510   state->cpu_to_cage_ready = 0;
511511   update_control_lines(space->machine());
512   device_set_input_line(state->cpu, TMS3203X_IRQ0, CLEAR_LINE);
512   state->cpu->set_input_line(TMS3203X_IRQ0, CLEAR_LINE);
513513   return state->from_main;
514514}
515515
r17814r17815
566566   state->from_main = param;
567567   state->cpu_to_cage_ready = 1;
568568   update_control_lines(machine);
569   device_set_input_line(state->cpu, TMS3203X_IRQ0, ASSERT_LINE);
569   state->cpu->set_input_line(TMS3203X_IRQ0, ASSERT_LINE);
570570}
571571
572572
r17814r17815
602602   /* CPU is reset if both control lines are 0 */
603603   if (!(state->control & 3))
604604   {
605      device_set_input_line(state->cpu, INPUT_LINE_RESET, ASSERT_LINE);
605      state->cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
606606
607607      state->dma_enabled = 0;
608608      state->dma_timer_enabled = 0;
r17814r17815
619619      state->cage_to_cpu_ready = 0;
620620   }
621621   else
622      device_set_input_line(state->cpu, INPUT_LINE_RESET, CLEAR_LINE);
622      state->cpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
623623
624624   /* update the control state */
625625   update_control_lines(machine);
r17814r17815
637637{
638638   cage_t *state = &cage;
639639
640   device_eat_cycles(&space->device(), 100);
640   space->device().execute().eat_cycles(100);
641641   COMBINE_DATA(&state->speedup_ram[offset]);
642642}
643643
trunk/src/mame/audio/namco52.c
r17814r17815
135135static TIMER_CALLBACK( namco_52xx_irq_clear )
136136{
137137   namco_52xx_state *state = get_safe_token((device_t *)ptr);
138   device_set_input_line(state->m_cpu, 0, CLEAR_LINE);
138   state->m_cpu->execute().set_input_line(0, CLEAR_LINE);
139139}
140140
141141WRITE8_DEVICE_HANDLER( namco_52xx_write )
r17814r17815
144144
145145   device->machine().scheduler().synchronize(FUNC(namco_52xx_latch_callback), data, (void *)device);
146146
147   device_set_input_line(state->m_cpu, 0, ASSERT_LINE);
147   state->m_cpu->execute().set_input_line(0, ASSERT_LINE);
148148
149149   // The execution time of one instruction is ~4us, so we must make sure to
150150   // give the cpu time to poll the /IRQ input before we clear it.
trunk/src/mame/audio/segasnd.c
r17814r17815
447447   usb_state *usb = get_safe_token(device);
448448
449449   /* halt the USB CPU at reset time */
450   device_set_input_line(usb->cpu, INPUT_LINE_RESET, ASSERT_LINE);
450   usb->cpu->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
451451
452452   /* start the clock timer */
453453   usb->t1_clock_mask = 0x10;
r17814r17815
467467
468468   LOG(("%04X:usb_data_r = %02X\n", usb->maincpu->safe_pc(), (usb->out_latch & 0x81) | (usb->in_latch & 0x7e)));
469469
470   device_adjust_icount(usb->maincpu, -200);
470   usb->maincpu->execute().adjust_icount(-200);
471471
472472   /* only bits 0 and 7 are controlled by the I8035; the remaining */
473473   /* bits 1-6 reflect the current input latch values */
r17814r17815
481481   int data = param;
482482
483483   /* look for rising/falling edges of bit 7 to control the RESET line */
484   device_set_input_line(usb->cpu, INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
484   usb->cpu->execute().set_input_line(INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
485485
486486   /* if the CLEAR line is set, the low 7 bits of the input are ignored */
487487   if ((usb->last_p2_value & 0x40) == 0)
trunk/src/mame/audio/taitosnd.c
r17814r17815
5959
6060   if (tc0140syt->nmi_req && tc0140syt->nmi_enabled)
6161   {
62      device_set_input_line(tc0140syt->slavecpu, INPUT_LINE_NMI, PULSE_LINE);
62      tc0140syt->slavecpu->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
6363      tc0140syt->nmi_req = 0;
6464   }
6565}
r17814r17815
113113         //logerror("taitosnd: Master issued control value %02x (PC = %08x) \n",data, space->device().safe_pc() );
114114         /* this does a hi-lo transition to reset the sound cpu */
115115         if (data)
116            device_set_input_line(tc0140syt->slavecpu, INPUT_LINE_RESET, ASSERT_LINE);
116            tc0140syt->slavecpu->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
117117         else
118118         {
119            device_set_input_line(tc0140syt->slavecpu, INPUT_LINE_RESET, CLEAR_LINE);
120            device_spin(tc0140syt->mastercpu); /* otherwise no sound in driftout */
119            tc0140syt->slavecpu->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
120            tc0140syt->mastercpu->execute().spin(); /* otherwise no sound in driftout */
121121         }
122122         break;
123123
r17814r17815
191191         tc0140syt->masterdata[tc0140syt->submode ++] = data;
192192         tc0140syt->status |= TC0140SYT_PORT01_FULL_MASTER;
193193         //logerror("taitosnd: Slave cpu sends 0/1 : %01x%01x\n" , tc0140syt->masterdata[1] , tc0140syt->masterdata[0]);
194         device_spin(tc0140syt->slavecpu); /* writing should take longer than emulated, so spin */
194         tc0140syt->slavecpu->execute().spin(); /* writing should take longer than emulated, so spin */
195195         break;
196196
197197      case 0x02:      // mode #2
r17814r17815
203203         tc0140syt->masterdata[tc0140syt->submode ++] = data;
204204         tc0140syt->status |= TC0140SYT_PORT23_FULL_MASTER;
205205         //logerror("taitosnd: Slave cpu sends 2/3 : %01x%01x\n" , tc0140syt->masterdata[3] , tc0140syt->masterdata[2]);
206         device_spin(tc0140syt->slavecpu); /* writing should take longer than emulated, so spin */
206         tc0140syt->slavecpu->execute().spin(); /* writing should take longer than emulated, so spin */
207207         break;
208208
209209      case 0x04:      // port status
trunk/src/mame/audio/leland.c
r17814r17815
778778   if (LOG_INTERRUPTS) logerror("(%f) **** Acknowledged interrupt vector %02X\n", device->machine().time().as_double(), state->m_i80186.intr.poll_status & 0x1f);
779779
780780   /* clear the interrupt */
781   device_set_input_line(state->m_i80186.cpu, 0, CLEAR_LINE);
781   state->m_i80186.cpu->execute().set_input_line(0, CLEAR_LINE);
782782   state->m_i80186.intr.pending = 0;
783783
784784   /* clear the request and set the in-service bit */
r17814r17815
16031603         /* we need to do this at a time when the 80186 context is swapped in */
16041604         /* this register is generally set once at startup and never again, so it's a good */
16051605         /* time to set it up */
1606         device_set_irq_callback(state->m_i80186.cpu, int_callback);
1606         state->m_i80186.cpu->execute().set_irq_acknowledge_callback(int_callback);
16071607         break;
16081608
16091609      case 0xc0/2:
trunk/src/mame/audio/taito_en.c
r17814r17815
267267{
268268   if (state == ASSERT_LINE)
269269   {
270      device_set_input_line_vector(device->machine().device("audiocpu"), M68K_IRQ_6, vector);
271      device_set_input_line(device->machine().device("audiocpu"), M68K_IRQ_6, ASSERT_LINE);
270      device->machine().device("audiocpu")->execute().set_input_line_vector(M68K_IRQ_6, vector);
271      device->machine().device("audiocpu")->execute().set_input_line(M68K_IRQ_6, ASSERT_LINE);
272272   }
273273   else
274274   {
275      device_set_input_line(device->machine().device("audiocpu"), M68K_IRQ_6, CLEAR_LINE);
275      device->machine().device("audiocpu")->execute().set_input_line(M68K_IRQ_6, CLEAR_LINE);
276276   }
277277}
278278
trunk/src/mame/audio/seibu.c
r17814r17815
289289   }
290290
291291   if ((irq1 & irq2) == 0xff)   /* no IRQs pending */
292      device_set_input_line(sound_cpu,0,CLEAR_LINE);
292      sound_cpu->execute().set_input_line(0,CLEAR_LINE);
293293   else   /* IRQ pending */
294      device_set_input_line_and_vector(sound_cpu,0,ASSERT_LINE,irq1 & irq2);
294      sound_cpu->execute().set_input_line_and_vector(0,ASSERT_LINE,irq1 & irq2);
295295}
296296
297297WRITE8_HANDLER( seibu_irq_clear_w )
trunk/src/mame/audio/scramble.c
r17814r17815
163163
164164void scramble_sh_init(running_machine &machine)
165165{
166   device_set_irq_callback(machine.device("audiocpu"), scramble_sh_irq_callback);
166   machine.device("audiocpu")->execute().set_irq_acknowledge_callback(scramble_sh_irq_callback);
167167
168168   /* PR is always 0, D is always 1 */
169169   machine.device<ttl7474_device>("konami_7474")->d_w(1);
trunk/src/mame/audio/dcs.c
r17814r17815
796796      /* rev 3/4: HALT the ADSP-2181 until program is downloaded via IDMA */
797797      case 3:
798798      case 4:
799         device_set_input_line(dcs.cpu, INPUT_LINE_HALT, ASSERT_LINE);
799         dcs.cpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
800800         dcs.dsio.start_on_next_write = 0;
801801         break;
802802   }
r17814r17815
849849   memset(dcs.control_regs, 0, sizeof(dcs.control_regs));
850850
851851   /* clear all interrupts */
852   device_set_input_line(dcs.cpu, ADSP2105_IRQ0, CLEAR_LINE);
853   device_set_input_line(dcs.cpu, ADSP2105_IRQ1, CLEAR_LINE);
854   device_set_input_line(dcs.cpu, ADSP2105_IRQ2, CLEAR_LINE);
852   dcs.cpu->set_input_line(ADSP2105_IRQ0, CLEAR_LINE);
853   dcs.cpu->set_input_line(ADSP2105_IRQ1, CLEAR_LINE);
854   dcs.cpu->set_input_line(ADSP2105_IRQ2, CLEAR_LINE);
855855
856856   /* initialize the comm bits */
857857   SET_INPUT_EMPTY();
r17814r17815
14771477   if (dsio.start_on_next_write && --dsio.start_on_next_write == 0)
14781478   {
14791479      logerror("Starting DSIO CPU\n");
1480      device_set_input_line(dcs.cpu, INPUT_LINE_HALT, CLEAR_LINE);
1480      dcs.cpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
14811481   }
14821482}
14831483
r17814r17815
15291529
15301530      /* just run through the init code again */
15311531      machine.scheduler().synchronize(FUNC(dcs_reset));
1532      device_set_input_line(dcs.cpu, INPUT_LINE_RESET, ASSERT_LINE);
1532      dcs.cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
15331533   }
15341534
15351535   /* going low resets and reactivates the CPU */
15361536   else
1537      device_set_input_line(dcs.cpu, INPUT_LINE_RESET, CLEAR_LINE);
1537      dcs.cpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
15381538}
15391539
15401540
r17814r17815
15761576   machine.scheduler().boost_interleave(attotime::from_nsec(500), attotime::from_usec(5));
15771577
15781578   /* set the IRQ line on the ADSP */
1579   device_set_input_line(dcs.cpu, ADSP2105_IRQ2, ASSERT_LINE);
1579   dcs.cpu->set_input_line(ADSP2105_IRQ2, ASSERT_LINE);
15801580
15811581   /* indicate we are no longer empty */
15821582   if (dcs.last_input_empty && dcs.input_empty_cb)
r17814r17815
16131613   if (!dcs.last_input_empty && dcs.input_empty_cb)
16141614      (*dcs.input_empty_cb)(space->machine(), dcs.last_input_empty = 1);
16151615   SET_INPUT_EMPTY();
1616   device_set_input_line(dcs.cpu, ADSP2105_IRQ2, CLEAR_LINE);
1616   dcs.cpu->set_input_line(ADSP2105_IRQ2, CLEAR_LINE);
16171617}
16181618
16191619
r17814r17815
17671767      timer.adjust(dcs.cpu->cycles_to_attotime(target_cycles));
17681768
17691769   /* the IRQ line is edge triggered */
1770   device_set_input_line(dcs.cpu, ADSP2105_TIMER, ASSERT_LINE);
1771   device_set_input_line(dcs.cpu, ADSP2105_TIMER, CLEAR_LINE);
1770   dcs.cpu->set_input_line(ADSP2105_TIMER, ASSERT_LINE);
1771   dcs.cpu->set_input_line(ADSP2105_TIMER, CLEAR_LINE);
17721772}
17731773
17741774
r17814r17815
18851885         if (data & 0x0200)
18861886         {
18871887            logerror("%04X:Rebooting DCS due to SYSCONTROL write\n", space->device().safe_pc());
1888            device_set_input_line(dcs.cpu, INPUT_LINE_RESET, PULSE_LINE);
1888            dcs.cpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
18891889            dcs_boot(space->machine());
18901890            dcs.control_regs[SYSCONTROL_REG] = 0;
18911891         }
r17814r17815
19931993   /* so we skip the SPORT interrupt if we read with output_control within the last 5 cycles */
19941994   if ((dcs.cpu->total_cycles() - dcs.output_control_cycles) > 5)
19951995   {
1996      device_set_input_line(dcs.cpu, ADSP2115_SPORT0_RX, ASSERT_LINE);
1997      device_set_input_line(dcs.cpu, ADSP2115_SPORT0_RX, CLEAR_LINE);
1996      dcs.cpu->set_input_line(ADSP2115_SPORT0_RX, ASSERT_LINE);
1997      dcs.cpu->set_input_line(ADSP2115_SPORT0_RX, CLEAR_LINE);
19981998   }
19991999}
20002000
r17814r17815
20802080static READ16_HANDLER( dcs_polling_r )
20812081{
20822082   if (dcs.polling_count++ > 5)
2083      device_eat_cycles(&space->device(), 10000);
2083      space->device().execute().eat_cycles(10000);
20842084   return *dcs.polling_base;
20852085}
20862086
trunk/src/mame/audio/dsbz80.c
r17814r17815
9494
9595WRITE8_MEMBER(dsbz80_device::latch_w)
9696{
97   device_set_input_line(m_ourcpu, INPUT_LINE_IRQ0, ASSERT_LINE);
97   m_ourcpu->set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
9898    m_dsb_latch = data;
9999    status |= 2;
100100//    printf("%02x to DSB latch\n", data);
r17814r17815
102102
103103READ8_MEMBER(dsbz80_device::latch_r)
104104{
105   device_set_input_line(m_ourcpu, INPUT_LINE_IRQ0, CLEAR_LINE);
105   m_ourcpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
106106//    printf("DSB Z80 read %02x\n", m_dsb_latch);
107107   status &= ~2;
108108    return m_dsb_latch;
trunk/src/mame/audio/exidy.c
r17814r17815
7676typedef struct _exidy_sound_state exidy_sound_state;
7777struct _exidy_sound_state
7878{
79   device_t *m_maincpu;
79   cpu_device *m_maincpu;
8080
8181   /* IRQ variable */
8282   UINT8 m_riot_irq_state;
r17814r17815
402402
403403   /* allocate the stream */
404404   state->m_stream = device->machine().sound().stream_alloc(*device, 0, 1, sample_rate, NULL, exidy_stream_update);
405   state->m_maincpu = device->machine().device("maincpu");
405   state->m_maincpu = device->machine().device<cpu_device>("maincpu");
406406
407407   sh6840_register_state_globals(device);
408408}
r17814r17815
686686      return 0;
687687      /* offset 1 reads the status register: bits 2 1 0 correspond to ints on channels 2,1,0, and bit 7 is an 'OR' of bits 2,1,0 */
688688      case 1:
689      logerror("%04X:exidy_sh6840_r - unexpected read, status register is TODO!\n", state->m_maincpu->safe_pc());
689      logerror("%04X:exidy_sh6840_r - unexpected read, status register is TODO!\n", state->m_maincpu->pc());
690690      return 0;
691691      /* offsets 2,4,6 read channel 0,1,2 MSBs and latch the LSB*/
692692      case 2: case 4: case 6:
r17814r17815
10431043   exidy_sound_state *state = get_safe_token(device);
10441044   UINT8 ret = state->m_pia1->b_output();
10451045
1046   if (VICTORY_LOG_SOUND) logerror("%04X:!!!! Sound response read = %02X\n", state->m_maincpu->safe_pcbase(), ret);
1046   if (VICTORY_LOG_SOUND) logerror("%04X:!!!! Sound response read = %02X\n", state->m_maincpu->pcbase(), ret);
10471047
10481048   state->m_pia1->cb1_w(0);
10491049
r17814r17815
10561056   exidy_sound_state *state = get_safe_token(device);
10571057   UINT8 ret = (state->m_pia1->ca1_r() << 7) | (state->m_pia1->cb1_r() << 6);
10581058
1059   if (VICTORY_LOG_SOUND) logerror("%04X:!!!! Sound status read = %02X\n", state->m_maincpu->safe_pcbase(), ret);
1059   if (VICTORY_LOG_SOUND) logerror("%04X:!!!! Sound status read = %02X\n", state->m_maincpu->pcbase(), ret);
10601060
10611061   return ret;
10621062}
r17814r17815
10731073{
10741074   exidy_sound_state *state = get_safe_token(device);
10751075
1076   if (VICTORY_LOG_SOUND) logerror("%04X:!!!! Sound command = %02X\n", state->m_maincpu->safe_pcbase(), data);
1076   if (VICTORY_LOG_SOUND) logerror("%04X:!!!! Sound command = %02X\n", state->m_maincpu->pcbase(), data);
10771077
10781078   device->machine().scheduler().synchronize(FUNC(delayed_command_w), data, state->m_pia1);
10791079}
trunk/src/mame/audio/timeplt.c
r17814r17815
151151   if (state->m_last_irq_state == 0 && data)
152152   {
153153      /* setting bit 0 low then high triggers IRQ on the sound CPU */
154      device_set_input_line_and_vector(state->m_soundcpu, 0, HOLD_LINE, 0xff);
154      state->m_soundcpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
155155   }
156156
157157   state->m_last_irq_state = data;
trunk/src/mame/audio/trackfld.c
r17814r17815
148148   if (state->m_last_irq == 0 && data)
149149   {
150150      /* setting bit 0 low then high triggers IRQ on the sound CPU */
151      device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
151      state->m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
152152   }
153153
154154   state->m_last_irq = data;
trunk/src/mame/audio/decobsmt.c
r17814r17815
2929
3030static INTERRUPT_GEN( decobsmt_firq_interrupt )
3131{
32   device_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE);
32   device->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
3333}
3434
3535static void bsmt_ready_callback(bsmt2000_device &device)
3636{
3737   decobsmt_device *decobsmt = device.machine().device<decobsmt_device>(DECOBSMT_TAG);
38   device_set_input_line(decobsmt->m_ourcpu, M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */
38   decobsmt->m_ourcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* BSMT is ready */
3939}
4040
4141MACHINE_CONFIG_FRAGMENT( decobsmt )
r17814r17815
119119{
120120   m_bsmt->write_reg(offset ^ 0xff);
121121   m_bsmt->write_data((m_bsmt_latch << 8) | data);
122   device_set_input_line(m_ourcpu, M6809_IRQ_LINE, CLEAR_LINE); /* BSMT is not ready */
122   m_ourcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); /* BSMT is not ready */
123123}
124124
125125READ8_MEMBER(decobsmt_device::bsmt_status_r)
r17814r17815
139139
140140WRITE_LINE_MEMBER(decobsmt_device::bsmt_reset_line)
141141{
142    device_set_input_line(m_ourcpu, INPUT_LINE_RESET, state);
142    m_ourcpu->set_input_line(INPUT_LINE_RESET, state);
143143}
144144
trunk/src/mame/audio/namco54.c
r17814r17815
113113static TIMER_CALLBACK( namco_54xx_irq_clear )
114114{
115115   namco_54xx_state *state = get_safe_token((device_t *)ptr);
116   device_set_input_line(state->m_cpu, 0, CLEAR_LINE);
116   state->m_cpu->execute().set_input_line(0, CLEAR_LINE);
117117}
118118
119119WRITE8_DEVICE_HANDLER( namco_54xx_write )
r17814r17815
122122
123123   device->machine().scheduler().synchronize(FUNC(namco_54xx_latch_callback), data, (void *)device);
124124
125   device_set_input_line(state->m_cpu, 0, ASSERT_LINE);
125   state->m_cpu->execute().set_input_line(0, ASSERT_LINE);
126126
127127   // The execution time of one instruction is ~4us, so we must make sure to
128128   // give the cpu time to poll the /IRQ input before we clear it.
trunk/src/mame/audio/t5182.c
r17814r17815
205205      return;
206206
207207   if (irqstate == 0)   /* no IRQs pending */
208      device_set_input_line(cpu,0,CLEAR_LINE);
208      cpu->execute().set_input_line(0,CLEAR_LINE);
209209   else   /* IRQ pending */
210      device_set_input_line(cpu,0,ASSERT_LINE);
210      cpu->execute().set_input_line(0,ASSERT_LINE);
211211}
212212
213213
trunk/src/mame/audio/aztarac.c
r17814r17815
4949    state->m_sound_status ^= 0x10;
5050
5151    if (state->m_sound_status & 0x10)
52        device_set_input_line(device,0,HOLD_LINE);
52        device->execute().set_input_line(0,HOLD_LINE);
5353}
trunk/src/mame/audio/harddriv.c
r17814r17815
3939static void update_68k_interrupts(running_machine &machine)
4040{
4141   harddriv_state *state = machine.driver_data<harddriv_state>();
42   device_set_input_line(state->m_soundcpu, 1, state->m_mainflag ? ASSERT_LINE : CLEAR_LINE);
43   device_set_input_line(state->m_soundcpu, 3, state->m_irq68k   ? ASSERT_LINE : CLEAR_LINE);
42   state->m_soundcpu->set_input_line(1, state->m_mainflag ? ASSERT_LINE : CLEAR_LINE);
43   state->m_soundcpu->set_input_line(3, state->m_irq68k   ? ASSERT_LINE : CLEAR_LINE);
4444}
4545
4646
r17814r17815
8383
8484WRITE16_MEMBER(harddriv_state::hd68k_snd_reset_w)
8585{
86   device_set_input_line(m_soundcpu, INPUT_LINE_RESET, ASSERT_LINE);
87   device_set_input_line(m_soundcpu, INPUT_LINE_RESET, CLEAR_LINE);
86   m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
87   m_soundcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
8888   m_mainflag = m_soundflag = 0;
8989   update_68k_interrupts(machine());
9090   logerror("%06X:Reset sound\n", space.device().safe_pcbase());
r17814r17815
188188      case 4:   /* RES320 */
189189         logerror("%06X:RES320=%d\n", space.device().safe_pcbase(), data);
190190         if (m_sounddsp != NULL)
191            device_set_input_line(m_sounddsp, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
191            m_sounddsp->set_input_line(INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
192192         break;
193193
194194      case 7:   /* LED */
r17814r17815
277277   /* if we're not at the next BIO yet, advance us there */
278278   if (cycles_until_bio > 0)
279279   {
280      device_adjust_icount(&space.device(), -cycles_until_bio);
280      space.device().execute().adjust_icount(-cycles_until_bio);
281281      m_last_bio_cycles += CYCLES_PER_BIO;
282282   }
283283   else
trunk/src/mame/audio/beezer.c
r17814r17815
9595typedef struct _beezer_sound_state beezer_sound_state;
9696struct _beezer_sound_state
9797{
98   device_t *m_maincpu;
98   cpu_device *m_maincpu;
9999
100100   /* IRQ variable */
101101   UINT8 m_ptm_irq_state;
r17814r17815
384384
385385   /* allocate the stream */
386386   state->m_stream = device->machine().sound().stream_alloc(*device, 0, 1, sample_rate, NULL, beezer_stream_update);
387   state->m_maincpu = device->machine().device("maincpu");
387   state->m_maincpu = device->machine().device<cpu_device>("maincpu");
388388
389389   sh6840_register_state_globals(device);
390390}
r17814r17815
499499      return 0;
500500      /* offset 1 reads the status register: bits 2 1 0 correspond to ints on channels 2,1,0, and bit 7 is an 'OR' of bits 2,1,0 */
501501      case 1:
502      logerror("%04X:beezer_sh6840_r - unexpected read, status register is TODO!\n", state->m_maincpu->safe_pc());
502      logerror("%04X:beezer_sh6840_r - unexpected read, status register is TODO!\n", state->m_maincpu->pc());
503503      return 0;
504504      /* offsets 2,4,6 read channel 0,1,2 MSBs and latch the LSB*/
505505      case 2: case 4: case 6:
trunk/src/mame/machine/nycaptor.c
r17814r17815
4747      m_port_a_in = m_from_main;
4848
4949      if (m_main_sent)
50         device_set_input_line(m_mcu, 0, CLEAR_LINE);
50         m_mcu->execute().set_input_line(0, CLEAR_LINE);
5151      m_main_sent = 0;
5252
5353   }
r17814r17815
9494
9595   m_from_main = data;
9696   m_main_sent = 1;
97   device_set_input_line(m_mcu, 0, ASSERT_LINE);
97   m_mcu->execute().set_input_line(0, ASSERT_LINE);
9898}
9999
100100READ8_MEMBER(nycaptor_state::nycaptor_mcu_r)
trunk/src/mame/machine/scudsp.c
r17814r17815
754754   saturn_state *state = machine.driver_data<saturn_state>();
755755
756756   if(!(state->m_scu.ism & IRQ_DSP_END))
757      device_set_input_line_and_vector(state->m_maincpu, 0xa, HOLD_LINE, 0x45);
757      state->m_maincpu->set_input_line_and_vector(0xa, HOLD_LINE, 0x45);
758758   else
759759      state->m_scu.ist |= (IRQ_DSP_END);
760760
trunk/src/mame/machine/xevious.c
r17814r17815
184184
185185INTERRUPT_GEN( battles_interrupt_4 )
186186{
187   device_set_input_line(device, 0, HOLD_LINE);
187   device->execute().set_input_line(0, HOLD_LINE);
188188}
189189
trunk/src/mame/machine/bublbobl.c
r17814r17815
2121   /* bit 3 n.c. */
2222
2323   /* bit 4 resets second Z80 */
24   device_set_input_line(m_slave, INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
24   m_slave->execute().set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
2525
2626   /* bit 5 resets mcu */
2727   if (m_mcu != NULL) // only if we have a MCU
28      device_set_input_line(m_mcu, INPUT_LINE_RESET, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
28      m_mcu->execute().set_input_line(INPUT_LINE_RESET, (data & 0x20) ? CLEAR_LINE : ASSERT_LINE);
2929
3030   /* bit 6 enables display */
3131   m_video_enable = data & 0x40;
r17814r17815
5252
5353WRITE8_MEMBER(bublbobl_state::bublbobl_nmitrigger_w)
5454{
55   device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
55   m_slave->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5656}
5757
5858
r17814r17815
9191   bublbobl_state *state = machine.driver_data<bublbobl_state>();
9292
9393   if (state->m_sound_nmi_enable)
94      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
94      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9595   else
9696      state->m_pending_nmi = 1;
9797}
r17814r17815
113113   m_sound_nmi_enable = 1;
114114   if (m_pending_nmi)
115115   {
116      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
116      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
117117      m_pending_nmi = 0;
118118   }
119119}
120120
121121WRITE8_MEMBER(bublbobl_state::bublbobl_soundcpu_reset_w)
122122{
123   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, data ? ASSERT_LINE : CLEAR_LINE);
123   m_audiocpu->set_input_line(INPUT_LINE_RESET, data ? ASSERT_LINE : CLEAR_LINE);
124124}
125125
126126READ8_MEMBER(bublbobl_state::bublbobl_sound_status_r)
r17814r17815
203203   if ((m_port1_out & 0x40) && (~data & 0x40))
204204   {
205205      // logerror("triggering IRQ on main CPU\n");
206      device_set_input_line_vector(m_maincpu, 0, m_mcu_sharedram[0]);
207      device_set_input_line(m_maincpu, 0, HOLD_LINE);
206      m_maincpu->set_input_line_vector(0, m_mcu_sharedram[0]);
207      m_maincpu->set_input_line(0, HOLD_LINE);
208208   }
209209
210210   // bit 7: select read or write shared RAM
r17814r17815
374374
375375INTERRUPT_GEN( bublbobl_m68705_interrupt )
376376{
377   device_set_input_line(device, 0, ASSERT_LINE);
377   device->execute().set_input_line(0, ASSERT_LINE);
378378
379379   device->machine().scheduler().timer_set(attotime::from_msec(1000/60), FUNC(bublbobl_m68705_irq_ack)); /* TODO: understand how this is ack'ed */
380380}
r17814r17815
474474      /* hack to get random EXTEND letters (who is supposed to do this? 68705? PAL?) */
475475      m_mcu_sharedram[0x7c] = machine().rand() % 6;
476476
477      device_set_input_line_vector(m_maincpu, 0, m_mcu_sharedram[0]);
478      device_set_input_line(m_maincpu, 0, HOLD_LINE);
477      m_maincpu->set_input_line_vector(0, m_mcu_sharedram[0]);
478      m_maincpu->set_input_line(0, HOLD_LINE);
479479   }
480480   if ((m_ddr_b & 0x40) && (~data & 0x40) && (m_port_b_out & 0x40))
481481   {
trunk/src/mame/machine/asic65.c
r17814r17815
142142
143143   /* rom-based means reset and clear states */
144144   if (asic65.cpu != NULL)
145      device_set_input_line(asic65.cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
145      asic65.cpu->execute().set_input_line(INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE);
146146
147147   /* otherwise, do it manually */
148148   else
r17814r17815
179179   asic65.cmd = param >> 16;
180180   asic65.tdata = param;
181181   if (asic65.cpu != NULL)
182      device_set_input_line(asic65.cpu, 0, ASSERT_LINE);
182      asic65.cpu->execute().set_input_line(0, ASSERT_LINE);
183183}
184184
185185
r17814r17815
477477{
478478   asic65.tfull = 0;
479479   if (asic65.cpu != NULL)
480      device_set_input_line(asic65.cpu, 0, CLEAR_LINE);
480      asic65.cpu->execute().set_input_line(0, CLEAR_LINE);
481481   return asic65.tdata;
482482}
483483
r17814r17815
501501static READ16_HANDLER( asci65_get_bio )
502502{
503503   if (!asic65.tfull)
504      device_spin_until_interrupt(&space->device());
504      space->device().execute().spin_until_interrupt();
505505   return asic65.tfull ? CLEAR_LINE : ASSERT_LINE;
506506}
507507
trunk/src/mame/machine/tnzs.c
r17814r17815
4848   UINT8 data;
4949
5050   data = upi41_master_r(m_mcu, offset & 1);
51   device_yield(&space.device());
51   space.device().execute().yield();
5252
5353//  logerror("PC %04x: read %02x from mcu $c00%01x\n", space.device().safe_pcbase(), data, offset);
5454
r17814r17815
636636         break;
637637   }
638638
639   device_set_input_line(device, 0, HOLD_LINE);
639   device->execute().set_input_line(0, HOLD_LINE);
640640}
641641
642642MACHINE_RESET( tnzs )
r17814r17815
687687   state->membank("subbank")->configure_entries(0, 4, &SUB[0x08000], 0x2000);
688688   state->membank("subbank")->set_entry(state->m_bank2);
689689
690   state->m_subcpu = machine.device("sub");
690   state->m_subcpu = machine.device<cpu_device>("sub");
691691   state->m_mcu = NULL;
692692
693693   state->m_bank1 = 2;
r17814r17815
707707
708708   MACHINE_START_CALL( jpopnics );
709709
710   state->m_audiocpu = machine.device("audiocpu");
710   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
711711   state->m_mcu = machine.device("mcu");
712712
713713   state->save_item(NAME(state->m_kageki_csport_sel));
r17814r17815
733733
734734   /* bit 4 resets the second CPU */
735735   if (data & 0x10)
736      device_set_input_line(m_subcpu, INPUT_LINE_RESET, CLEAR_LINE);
736      m_subcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
737737   else
738      device_set_input_line(m_subcpu, INPUT_LINE_RESET, ASSERT_LINE);
738      m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
739739
740740   /* bits 0-2 select RAM/ROM bank */
741741   m_bank1 = data & 0x07;
r17814r17815
753753            if (data & 0x04)
754754            {
755755               if (m_mcu != NULL && m_mcu->type() == I8742)
756                  device_set_input_line(m_mcu, INPUT_LINE_RESET, PULSE_LINE);
756                  m_mcu->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
757757            }
758758            /* Coin count and lockout is handled by the i8742 */
759759            break;
trunk/src/mame/machine/docastle.c
r17814r17815
6868            data, (UINT32)m_maincpu->total_cycles());
6969
7070      /* freeze execution of the master CPU until the slave has used the shared memory */
71      device_spin_until_trigger(&space.device(), 500);
71      space.device().execute().spin_until_trigger(500);
7272   }
7373}
7474
r17814r17815
7676
7777WRITE8_MEMBER(docastle_state::docastle_nmitrigger_w)
7878{
79   device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
79   m_slave->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8080}
trunk/src/mame/machine/naomi.c
r17814r17815
2929static READ64_HANDLER( naomi_biose_idle_skip_r )
3030{
3131   if (space->device().safe_pc()==0xc04173c)
32      device_spin_until_time(&space->device(), attotime::from_usec(500));
33      //device_spin_until_interrupt(&space->device());
32      space->device().execute().spin_until_time(attotime::from_usec(500));
33      //space->device().execute().spin_until_interrupt();
3434//  else
3535//      printf("%08x\n", space->device().safe_pc());
3636
r17814r17815
4040static READ64_HANDLER( naomi_biosh_idle_skip_r )
4141{
4242   if (space->device().safe_pc()==0xc045ffc)
43      device_spin_until_time(&space->device(), attotime::from_usec(500));
43      space->device().execute().spin_until_time(attotime::from_usec(500));
4444
4545//   printf("%08x\n", space->device().safe_pc());
4646
r17814r17815
5050static READ64_HANDLER( naomi2_biose_idle_skip_r )
5151{
5252   if (space->device().safe_pc()==0xc04637c)
53      device_spin_until_time(&space->device(), attotime::from_usec(500));
54      //device_spin_until_interrupt(&space->device());
53      space->device().execute().spin_until_time(attotime::from_usec(500));
54      //space->device().execute().spin_until_interrupt();
5555//  else
5656//      printf("%08x\n", space->device().safe_pc());
5757
r17814r17815
244244static READ64_HANDLER( naomigd_ggxxsla_idle_skip_r )
245245{
246246   if (space->device().safe_pc()==0x0c0c9adc)
247      device_spin_until_time(&space->device(), attotime::from_usec(500));
247      space->device().execute().spin_until_time(attotime::from_usec(500));
248248
249249   return naomi_ram64[0x1aae18/8];
250250}
r17814r17815
258258static READ64_HANDLER( naomigd_ggxx_idle_skip_r )
259259{
260260   if (space->device().safe_pc()==0xc0b5c3c) // or 0xc0bab0c
261      device_spin_until_time(&space->device(), attotime::from_usec(500));
261      space->device().execute().spin_until_time(attotime::from_usec(500));
262262
263263   return naomi_ram64[0x1837b8/8];
264264}
r17814r17815
273273static READ64_HANDLER( naomigd_ggxxrl_idle_skip_r )
274274{
275275   if (space->device().safe_pc()==0xc0b84bc) // or 0xc0bab0c
276      device_spin_until_time(&space->device(), attotime::from_usec(500));
276      space->device().execute().spin_until_time(attotime::from_usec(500));
277277
278278   //printf("%08x\n", space->device().safe_pc());
279279
r17814r17815
290290static READ64_HANDLER( naomigd_sfz3ugd_idle_skip_r )
291291{
292292   if (space->device().safe_pc()==0xc36a2dc)
293      device_spin_until_time(&space->device(), attotime::from_usec(500));
293      space->device().execute().spin_until_time(attotime::from_usec(500));
294294
295295   return naomi_ram64[0x5dc900/8];
296296}
r17814r17815
335335static READ64_HANDLER( hotd2_idle_skip_r )
336336{
337337   if (space->device().safe_pc()==0xc0cfcbc)
338      device_spin_until_time(&space->device(), attotime::from_usec(500));
339      //device_spin_until_interrupt(&space->device());
338      space->device().execute().spin_until_time(attotime::from_usec(500));
339      //space->device().execute().spin_until_interrupt();
340340//  else
341341//  printf("%08x\n", space->device().safe_pc());
342342
trunk/src/mame/machine/asteroid.c
r17814r17815
1717{
1818   /* Turn off interrupts if self-test is enabled */
1919   if (!(device->machine().root_device().ioport("IN0")->read() & 0x80))
20      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
20      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2121}
2222
2323INTERRUPT_GEN( asterock_interrupt )
2424{
2525   /* Turn off interrupts if self-test is enabled */
2626   if ((device->machine().root_device().ioport("IN0")->read() & 0x80))
27      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
27      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2828}
2929
3030INTERRUPT_GEN( llander_interrupt )
3131{
3232   /* Turn off interrupts if self-test is enabled */
3333   if (device->machine().root_device().ioport("IN0")->read() & 0x02)
34      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
34      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3535}
3636
3737READ8_MEMBER(asteroid_state::asteroid_IN0_r)
trunk/src/mame/machine/twincobr.c
r17814r17815
1919   twincobr_state *state = device->machine().driver_data<twincobr_state>();
2020   if (state->m_intenable) {
2121      state->m_intenable = 0;
22      device_set_input_line(device, M68K_IRQ_4, HOLD_LINE);
22      device->execute().set_input_line(M68K_IRQ_4, HOLD_LINE);
2323   }
2424}
2525
r17814r17815
2828   twincobr_state *state = device->machine().driver_data<twincobr_state>();
2929   if (state->m_intenable) {
3030      state->m_intenable = 0;
31      device_set_input_line(device, 0, HOLD_LINE);
31      device->execute().set_input_line(0, HOLD_LINE);
3232   }
3333}
3434
trunk/src/mame/machine/megasvp.c
r17814r17815
333333
334334static READ16_HANDLER( svp_speedup_r )
335335{
336    device_spin_until_time(&space->device(), attotime::from_usec(100));
336    space->device().execute().spin_until_time(attotime::from_usec(100));
337337   return 0x0425;
338338}
339339
trunk/src/mame/machine/namco06.c
r17814r17815
123123   {
124124      LOG(("NMI cpu '%s'\n",state->m_nmicpu->tag()));
125125
126      device_set_input_line(state->m_nmicpu, INPUT_LINE_NMI, PULSE_LINE);
126      state->m_nmicpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
127127   }
128128   else
129129      LOG(("NMI not generated because cpu '%s' is suspended\n",state->m_nmicpu->tag()));
trunk/src/mame/machine/mega32x.c
r17814r17815
666666
667667      if (data & 0x02)
668668      {
669         device_set_input_line(_32x_master_cpu, INPUT_LINE_RESET, CLEAR_LINE);
670         device_set_input_line(_32x_slave_cpu, INPUT_LINE_RESET, CLEAR_LINE);
669         _32x_master_cpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
670         _32x_slave_cpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
671671      }
672672
673673      if (data & 0x01)
r17814r17815
727727
728728      if (data&0x1)
729729      {
730         if (m_sh2_master_cmdint_enable) device_set_input_line(_32x_master_cpu,SH2_CINT_IRQ_LEVEL,ASSERT_LINE);
730         if (m_sh2_master_cmdint_enable) _32x_master_cpu->set_input_line(SH2_CINT_IRQ_LEVEL,ASSERT_LINE);
731731         else printf("master cmdint when masked!\n");
732732      }
733733
734734      if (data&0x2)
735735      {
736         if (m_sh2_slave_cmdint_enable) device_set_input_line(_32x_slave_cpu,SH2_CINT_IRQ_LEVEL,ASSERT_LINE);
736         if (m_sh2_slave_cmdint_enable) _32x_slave_cpu->set_input_line(SH2_CINT_IRQ_LEVEL,ASSERT_LINE);
737737         else printf("slave cmdint when masked!\n");
738738      }
739739   }
r17814r17815
859859   if(m_pwm_timer_tick == m_pwm_tm_reg)
860860   {
861861      m_pwm_timer_tick = 0;
862      if(sh2_master_pwmint_enable) { device_set_input_line(_32x_master_cpu, SH2_PINT_IRQ_LEVEL,ASSERT_LINE); }
863      if(sh2_slave_pwmint_enable) { device_set_input_line(_32x_slave_cpu, SH2_PINT_IRQ_LEVEL,ASSERT_LINE); }
862      if(sh2_master_pwmint_enable) { _32x_master_cpu->set_input_line(SH2_PINT_IRQ_LEVEL,ASSERT_LINE); }
863      if(sh2_slave_pwmint_enable) { _32x_slave_cpu->set_input_line(SH2_PINT_IRQ_LEVEL,ASSERT_LINE); }
864864   }
865865
866866   m_32x_pwm_timer->adjust(attotime::from_hz((PWM_CLOCK) / (m_pwm_cycle - 1)));
r17814r17815
13221322// VRES (md reset button interrupt) clear
13231323/**********************************************************************************************/
13241324
1325WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_4014_w ){ device_set_input_line(_32x_master_cpu,SH2_VRES_IRQ_LEVEL,CLEAR_LINE);}
1326WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_4014_w ) { device_set_input_line(_32x_slave_cpu, SH2_VRES_IRQ_LEVEL,CLEAR_LINE);}
1325WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_4014_w ){ _32x_master_cpu->set_input_line(SH2_VRES_IRQ_LEVEL,CLEAR_LINE);}
1326WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_4014_w ) { _32x_slave_cpu->set_input_line(SH2_VRES_IRQ_LEVEL,CLEAR_LINE);}
13271327
13281328/**********************************************************************************************/
13291329// SH2 side 4016
r17814r17815
13381338// HINT (horizontal interrupt) clear
13391339/**********************************************************************************************/
13401340
1341WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_4018_w ){ device_set_input_line(_32x_master_cpu,SH2_HINT_IRQ_LEVEL,CLEAR_LINE);}
1342WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_4018_w ) { device_set_input_line(_32x_slave_cpu, SH2_HINT_IRQ_LEVEL,CLEAR_LINE);}
1341WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_4018_w ){ _32x_master_cpu->set_input_line(SH2_HINT_IRQ_LEVEL,CLEAR_LINE);}
1342WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_4018_w ) { _32x_slave_cpu->set_input_line(SH2_HINT_IRQ_LEVEL,CLEAR_LINE);}
13431343
13441344/**********************************************************************************************/
13451345// SH2 side 401A
r17814r17815
13471347// Note: flag cleared here is a guess, according to After Burner behaviour
13481348/**********************************************************************************************/
13491349
1350WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_401a_w ){ m_32x_68k_a15102_reg &= ~1; device_set_input_line(_32x_master_cpu,SH2_CINT_IRQ_LEVEL,CLEAR_LINE);}
1351WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_401a_w ) { m_32x_68k_a15102_reg &= ~2; device_set_input_line(_32x_slave_cpu, SH2_CINT_IRQ_LEVEL,CLEAR_LINE);}
1350WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_401a_w ){ m_32x_68k_a15102_reg &= ~1; _32x_master_cpu->set_input_line(SH2_CINT_IRQ_LEVEL,CLEAR_LINE);}
1351WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_401a_w ) { m_32x_68k_a15102_reg &= ~2; _32x_slave_cpu->set_input_line(SH2_CINT_IRQ_LEVEL,CLEAR_LINE);}
13521352
13531353/**********************************************************************************************/
13541354// SH2 side 401C
13551355// PINT (PWM timer interrupt) clear
13561356/**********************************************************************************************/
13571357
1358WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_401c_w ){ device_set_input_line(_32x_master_cpu,SH2_PINT_IRQ_LEVEL,CLEAR_LINE);}
1359WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_401c_w ) { device_set_input_line(_32x_slave_cpu, SH2_PINT_IRQ_LEVEL,CLEAR_LINE);}
1358WRITE16_MEMBER( sega_32x_device::_32x_sh2_master_401c_w ){ _32x_master_cpu->set_input_line(SH2_PINT_IRQ_LEVEL,CLEAR_LINE);}
1359WRITE16_MEMBER( sega_32x_device::_32x_sh2_slave_401c_w ) { _32x_slave_cpu->set_input_line(SH2_PINT_IRQ_LEVEL,CLEAR_LINE);}
13601360
13611361/**********************************************************************************************/
13621362// SH2 side 401E
r17814r17815
15691569void sega_32x_device::_32x_check_irqs(running_machine& machine)
15701570{
15711571
1572   if (m_sh2_master_vint_enable && m_sh2_master_vint_pending) device_set_input_line(_32x_master_cpu,SH2_VINT_IRQ_LEVEL,ASSERT_LINE);
1573   else device_set_input_line(_32x_master_cpu,SH2_VINT_IRQ_LEVEL,CLEAR_LINE);
1572   if (m_sh2_master_vint_enable && m_sh2_master_vint_pending) _32x_master_cpu->set_input_line(SH2_VINT_IRQ_LEVEL,ASSERT_LINE);
1573   else _32x_master_cpu->set_input_line(SH2_VINT_IRQ_LEVEL,CLEAR_LINE);
15741574
1575   if (m_sh2_slave_vint_enable && m_sh2_slave_vint_pending) device_set_input_line(_32x_slave_cpu,SH2_VINT_IRQ_LEVEL,ASSERT_LINE);
1576   else device_set_input_line(_32x_slave_cpu,SH2_VINT_IRQ_LEVEL,CLEAR_LINE);
1575   if (m_sh2_slave_vint_enable && m_sh2_slave_vint_pending) _32x_slave_cpu->set_input_line(SH2_VINT_IRQ_LEVEL,ASSERT_LINE);
1576   else _32x_slave_cpu->set_input_line(SH2_VINT_IRQ_LEVEL,CLEAR_LINE);
15771577}
15781578
15791579void sega_32x_device::_32x_scanline_cb0(running_machine& machine)
r17814r17815
15941594
15951595      if(genesis_scanline_counter < 224 || m_sh2_hint_in_vbl)
15961596      {
1597         if(m_sh2_master_hint_enable) { device_set_input_line(_32x_master_cpu,SH2_HINT_IRQ_LEVEL,ASSERT_LINE); }
1598         if(m_sh2_slave_hint_enable) { device_set_input_line(_32x_slave_cpu,SH2_HINT_IRQ_LEVEL,ASSERT_LINE); }
1597         if(m_sh2_master_hint_enable) { _32x_master_cpu->set_input_line(SH2_HINT_IRQ_LEVEL,ASSERT_LINE); }
1598         if(m_sh2_slave_hint_enable) { _32x_slave_cpu->set_input_line(SH2_HINT_IRQ_LEVEL,ASSERT_LINE); }
15991599      }
16001600   }
16011601}
trunk/src/mame/machine/cdicdic.c
r17814r17815
553553
554554        // Set the CDIC interrupt line
555555        verboselog(machine(), 0, "Setting CDIC interrupt line for soundmap decode\n" );
556        device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_4, 128);
556        machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_4, 128);
557557        machine().device("maincpu")->execute().set_input_line(M68K_IRQ_4, ASSERT_LINE);
558558    }
559559    else
r17814r17815
707707
708708                    //printf( "Setting CDIC interrupt line\n" );
709709                    verboselog(machine(), 0, "Setting CDIC interrupt line for audio sector\n" );
710                    device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_4, 128);
710                    machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_4, 128);
711711                    machine().device("maincpu")->execute().set_input_line(M68K_IRQ_4, ASSERT_LINE);
712712                }
713713                else if((buffer[CDIC_SECTOR_SUBMODE2] & (CDIC_SUBMODE_DATA | CDIC_SUBMODE_AUDIO | CDIC_SUBMODE_VIDEO)) == 0x00)
r17814r17815
726726                    {
727727                        //printf( "Setting CDIC interrupt line\n" );
728728                        verboselog(machine(), 0, "Setting CDIC interrupt line for message sector\n" );
729                        device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_4, 128);
729                        machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_4, 128);
730730                        machine().device("maincpu")->execute().set_input_line(M68K_IRQ_4, ASSERT_LINE);
731731                    }
732732                    else
r17814r17815
746746
747747                    //printf( "Setting CDIC interrupt line\n" );
748748                    verboselog(machine(), 0, "Setting CDIC interrupt line for data sector\n" );
749                    device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_4, 128);
749                    machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_4, 128);
750750                    machine().device("maincpu")->execute().set_input_line(M68K_IRQ_4, ASSERT_LINE);
751751                }
752752
r17814r17815
841841         }
842842
843843            verboselog(machine(), 0, "Setting CDIC interrupt line for CDDA sector\n" );
844            device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_4, 128);
844            machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_4, 128);
845845            machine().device("maincpu")->execute().set_input_line(M68K_IRQ_4, ASSERT_LINE);
846846         break;
847847      }
r17814r17815
892892            m_time = next_msf << 8;
893893
894894            verboselog(machine(), 0, "Setting CDIC interrupt line for Seek sector\n" );
895            device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_4, 128);
895            machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_4, 128);
896896            machine().device("maincpu")->execute().set_input_line(M68K_IRQ_4, ASSERT_LINE);
897897         break;
898898      }
trunk/src/mame/machine/megadriv.c
r17814r17815
10191019   /* if any of these extra CPUs exist, pause them until we actually turn them on */
10201020   if (_32x_master_cpu != NULL)
10211021   {
1022      device_set_input_line(_32x_master_cpu, INPUT_LINE_RESET, ASSERT_LINE);
1022      _32x_master_cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
10231023   }
10241024
10251025   if (_32x_slave_cpu != NULL)
10261026   {
1027      device_set_input_line(_32x_slave_cpu, INPUT_LINE_RESET, ASSERT_LINE);
1027      _32x_slave_cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
10281028   }
10291029
10301030   if (_segacd_68k_cpu != NULL )
r17814r17815
14271427      printf("SVP (cpu) found '%s'\n", _svp_cpu->tag() );
14281428   }
14291429
1430   device_set_irq_callback(machine.device("maincpu"), genesis_int_callback);
1430   machine.device("maincpu")->execute().set_irq_acknowledge_callback(genesis_int_callback);
14311431   megadriv_backupram = NULL;
14321432   megadriv_backupram_length = 0;
14331433
trunk/src/mame/machine/vsnes.c
r17814r17815
10021002   (&space.device() == machine().device("maincpu")) ? membank("bank2")->set_entry(BIT(data, 2)) : membank("bank3")->set_entry(BIT(data, 2));
10031003
10041004   /* bit 1 ( data & 2 ) triggers irq on the other cpu */
1005   device_set_input_line(other_cpu, 0, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
1005   other_cpu->execute().set_input_line(0, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
10061006
10071007   /* move along */
10081008   if (&space.device() == machine().device("maincpu"))
trunk/src/mame/machine/mexico86.c
r17814r17815
1515WRITE8_MEMBER(mexico86_state::mexico86_f008_w)
1616{
1717
18   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 4) ? CLEAR_LINE : ASSERT_LINE);
18   m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 4) ? CLEAR_LINE : ASSERT_LINE);
1919
2020   if (m_mcu != NULL)
2121   {
2222      // mexico 86, knight boy
23      device_set_input_line(m_mcu, INPUT_LINE_RESET, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
23      m_mcu->execute().set_input_line(INPUT_LINE_RESET, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
2424   }
2525   else
2626   {
r17814r17815
157157   if (state->m_mcu_running)
158158      mcu_simulate(device->machine());
159159
160   device_set_input_line_vector(device, 0, state->m_protection_ram[0]);
161   device_set_input_line(device, 0, HOLD_LINE);
160   device->execute().set_input_line_vector(0, state->m_protection_ram[0]);
161   device->execute().set_input_line(0, HOLD_LINE);
162162}
163163
164164
r17814r17815
220220
221221INTERRUPT_GEN( mexico86_m68705_interrupt )
222222{
223   device_set_input_line(device, 0, ASSERT_LINE);
223   device->execute().set_input_line(0, ASSERT_LINE);
224224}
225225
226226
r17814r17815
305305
306306   if (BIT(m_ddr_b, 5) && BIT(data, 5) && BIT(~m_port_b_out, 5))
307307   {
308      device_set_input_line_vector(m_maincpu, 0, m_protection_ram[0]);
309      device_set_input_line(m_maincpu, 0, HOLD_LINE);        // HOLD_LINE works better in Z80 interrupt mode 1.
310      device_set_input_line(m_mcu, 0, CLEAR_LINE);
308      m_maincpu->set_input_line_vector(0, m_protection_ram[0]);
309      m_maincpu->set_input_line(0, HOLD_LINE);        // HOLD_LINE works better in Z80 interrupt mode 1.
310      m_mcu->execute().set_input_line(0, CLEAR_LINE);
311311   }
312312
313313   if (BIT(m_ddr_b, 6) && BIT(~data, 6) && BIT(m_port_b_out, 6))
trunk/src/mame/machine/amiga.c
r17814r17815
995995   if ( CUSTOM_REG(REG_DMACON) & 0x0400 )
996996   {
997997      /* simulate the 68k not running while the blit is going */
998      device_adjust_icount( &space->device(), -(blittime/2) );
998      space->device().execute().adjust_icount(-(blittime/2) );
999999
10001000      blittime = BLITTER_NASTY_DELAY;
10011001   }
trunk/src/mame/machine/lkage.c
r17814r17815
6464   {
6565      m_port_a_in = m_from_main;
6666      if (m_main_sent)
67         device_set_input_line(m_mcu, 0, CLEAR_LINE);
67         m_mcu->execute().set_input_line(0, CLEAR_LINE);
6868
6969      m_main_sent = 0;
7070      logerror("read command %02x from main cpu\n", m_port_a_in);
r17814r17815
119119   logerror("%04x: mcu_w %02x\n", space.device().safe_pc(), data);
120120   m_from_main = data;
121121   m_main_sent = 1;
122   device_set_input_line(m_mcu, 0, ASSERT_LINE);
122   m_mcu->execute().set_input_line(0, ASSERT_LINE);
123123}
124124
125125READ8_MEMBER(lkage_state::lkage_mcu_r)
trunk/src/mame/machine/cdislave.c
r17814r17815
5959void cdislave_device::readback_trigger()
6060{
6161    verboselog(machine(), 0, "Asserting IRQ2\n" );
62    device_set_input_line_vector(machine().device("maincpu"), M68K_IRQ_2, 26);
62    machine().device("maincpu")->execute().set_input_line_vector(M68K_IRQ_2, 26);
6363    machine().device("maincpu")->execute().set_input_line(M68K_IRQ_2, ASSERT_LINE);
6464    m_interrupt_timer->adjust(attotime::never);
6565}
trunk/src/mame/machine/midwunit.c
r17814r17815
190190        without significantly impacting the rest of the system.
191191    */
192192   COMBINE_DATA(&m_umk3_palette[offset]);
193   device_adjust_icount(&space.device(), -100);
193   space.device().execute().adjust_icount(-100);
194194/*  printf("in=%04X%04X  out=%04X%04X\n", m_umk3_palette[3], m_umk3_palette[2], m_umk3_palette[1], m_umk3_palette[0]); */
195195}
196196
trunk/src/mame/machine/namco50.c
r17814r17815
205205static TIMER_CALLBACK( namco_50xx_irq_clear )
206206{
207207   namco_50xx_state *state = get_safe_token((device_t *)ptr);
208   device_set_input_line(state->m_cpu, 0, CLEAR_LINE);
208   state->m_cpu->execute().set_input_line(0, CLEAR_LINE);
209209}
210210
211211static void namco_50xx_irq_set(device_t *device)
212212{
213213   namco_50xx_state *state = get_safe_token(device);
214214
215   device_set_input_line(state->m_cpu, 0, ASSERT_LINE);
215   state->m_cpu->execute().set_input_line(0, ASSERT_LINE);
216216
217217   // The execution time of one instruction is ~4us, so we must make sure to
218218   // give the cpu time to poll the /IRQ input before we clear it.
trunk/src/mame/machine/namcos2.c
r17814r17815
501501      // If writing an IRQ priority register, clear any pending IRQs.
502502      // Dirt Fox and Winning Run require this behaviour
503503      if (reg < 8)
504         device_set_input_line(&space->device(), pC148Reg[reg], CLEAR_LINE);
504         space->device().execute().set_input_line(pC148Reg[reg], CLEAR_LINE);
505505
506506      pC148Reg[reg] = data & 0x0007;
507507   }
r17814r17815
525525         // mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data );
526526         /* Dubious to assert IRQ for other CPU here, but Starblade seems to rely on it.
527527               It fails to show large polygons otherwise. */
528         device_set_input_line(altcpu, pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE);
528         altcpu->execute().set_input_line(pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE);
529529      }
530530      break;
531531
r17814r17815
536536      {
537537         // mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data );
538538         /* Dubious to assert IRQ for other CPU here: Rolling Thunder 2 and Fine Hour break. */
539         // device_set_input_line(altcpu, pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE);
539         // altcpu->execute().set_input_line(pC148RegAlt[NAMCOS2_C148_CPUIRQ], ASSERT_LINE);
540540      }
541541      break;
542542
r17814r17815
544544   /* IRQ ack */
545545   case 0x1d6000: /* NAMCOS2_C148_CPUIRQ */
546546      // if( bWrite ) mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data );
547      device_set_input_line(&space->device(), pC148Reg[NAMCOS2_C148_CPUIRQ], CLEAR_LINE);
547      space->device().execute().set_input_line(pC148Reg[NAMCOS2_C148_CPUIRQ], CLEAR_LINE);
548548      break;
549549
550550   case 0x1d8000: /* NAMCOS2_C148_EXIRQ */
551551      // if( bWrite ) mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data );
552      device_set_input_line(&space->device(), pC148Reg[NAMCOS2_C148_EXIRQ], CLEAR_LINE);
552      space->device().execute().set_input_line(pC148Reg[NAMCOS2_C148_EXIRQ], CLEAR_LINE);
553553      break;
554554
555555   case 0x1da000: /* NAMCOS2_C148_POSIRQ */
556556      // if( bWrite ) mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data );
557      device_set_input_line(&space->device(), pC148Reg[NAMCOS2_C148_POSIRQ], CLEAR_LINE);
557      space->device().execute().set_input_line(pC148Reg[NAMCOS2_C148_POSIRQ], CLEAR_LINE);
558558      break;
559559
560560   case 0x1dc000: /* NAMCOS2_C148_SERIRQ */
561561      // if( bWrite ) mame_printf_debug( "cpu(%d) RAM[0x%06x] = 0x%x\n", cpu, addr, data );
562      device_set_input_line(&space->device(), pC148Reg[NAMCOS2_C148_SERIRQ], CLEAR_LINE);
562      space->device().execute().set_input_line(pC148Reg[NAMCOS2_C148_SERIRQ], CLEAR_LINE);
563563      break;
564564
565565   case 0x1de000: /* NAMCOS2_C148_VBLANKIRQ */
566      device_set_input_line(&space->device(), pC148Reg[NAMCOS2_C148_VBLANKIRQ], CLEAR_LINE);
566      space->device().execute().set_input_line(pC148Reg[NAMCOS2_C148_VBLANKIRQ], CLEAR_LINE);
567567      break;
568568
569569
r17814r17815
578578         {
579579            /* Resume execution */
580580            space->machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
581            device_yield(&space->device());
581            space->device().execute().yield();
582582         }
583583         else
584584         {
r17814r17815
603603         { /* Resume execution */
604604            ResetAllSubCPUs(space->machine(), CLEAR_LINE);
605605            /* Give the new CPU an immediate slice of the action */
606            device_yield(&space->device());
606            space->device().execute().yield();
607607         }
608608         else
609609         { /* Suspend execution */
r17814r17815
687687{
688688   namcos2_shared_state *state = device->machine().driver_data<namcos2_shared_state>();
689689   if (!state->is_system21()) namcos2_adjust_posirq_timer(device->machine(), GetPosIRQScanline(device->machine()));
690   device_set_input_line(device, namcos2_68k_master_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE);
690   device->execute().set_input_line(namcos2_68k_master_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE);
691691}
692692
693693INTERRUPT_GEN( namcos2_68k_slave_vblank )
694694{
695695   namcos2_shared_state *state = device->machine().driver_data<namcos2_shared_state>();
696696   if (!state->is_system21()) namcos2_adjust_posirq_timer(device->machine(), GetPosIRQScanline(device->machine()));
697   device_set_input_line(device, namcos2_68k_slave_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE);
697   device->execute().set_input_line(namcos2_68k_slave_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE);
698698}
699699
700700INTERRUPT_GEN( namcos2_68k_gpu_vblank )
r17814r17815
705705
706706   //printf( "namcos2_68k_gpu_vblank(%d)\n",namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ] );
707707   namcos2_adjust_posirq_timer(device->machine(), scanline);
708   device_set_input_line(device, namcos2_68k_gpu_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE);
708   device->execute().set_input_line(namcos2_68k_gpu_C148[NAMCOS2_C148_VBLANKIRQ], HOLD_LINE);
709709}
710710
711711/**************************************************************/
trunk/src/mame/machine/pgmprot2.c
r17814r17815
3737{
3838   pgm_arm_type2_state *state = space->machine().driver_data<pgm_arm_type2_state>();
3939
40   device_set_input_line(state->m_prot, ARM7_FIRQ_LINE, CLEAR_LINE ); // guess
40   state->m_prot->set_input_line(ARM7_FIRQ_LINE, CLEAR_LINE ); // guess
4141
4242   if (PGMARM7LOGERROR)
4343      logerror("ARM7: Latch read: %08x (%08x) (%06x)\n", state->m_kov2_latchdata_68k_w, mem_mask, space->device().safe_pc());
r17814r17815
8989      logerror("M68K: Latch write: %04x (%04x) (%06x)\n", data & 0x0000ffff, mem_mask, space->device().safe_pc());
9090   COMBINE_DATA(&state->m_kov2_latchdata_68k_w);
9191
92   device_set_input_line(state->m_prot, ARM7_FIRQ_LINE, ASSERT_LINE ); // guess
92   state->m_prot->set_input_line(ARM7_FIRQ_LINE, ASSERT_LINE ); // guess
9393}
9494
9595static READ16_HANDLER( arm7_ram_r )
r17814r17815
271271      if (r4==0x18002f9e)
272272      {
273273         UINT32 data2 =  state->m_arm_ram[0x2F9C/4]&0xffff0000;
274         if ((data==0x00000000) && (data2==0x00000000)) device_spin_until_interrupt(&space->device());
274         if ((data==0x00000000) && (data2==0x00000000)) space->device().execute().spin_until_interrupt();
275275      }
276276   }
277277
r17814r17815
284284   UINT16 data = pgm_mainram[0x0ee54/2];
285285   int pc = space->device().safe_pc();
286286
287   if (pc == 0x149dce) device_spin_until_interrupt(&space->device());
288   if (pc == 0x149cfe) device_spin_until_interrupt(&space->device());
287   if (pc == 0x149dce) space->device().execute().spin_until_interrupt();
288   if (pc == 0x149cfe) space->device().execute().spin_until_interrupt();
289289
290290   return data;
291291
trunk/src/mame/machine/harddriv.c
r17814r17815
7474   atarigen_interrupt_reset(state, hd68k_update_interrupts);
7575
7676   /* halt several of the DSPs to start */
77   if (state->m_adsp != NULL) device_set_input_line(state->m_adsp, INPUT_LINE_HALT, ASSERT_LINE);
78   if (state->m_dsp32 != NULL) device_set_input_line(state->m_dsp32, INPUT_LINE_HALT, ASSERT_LINE);
79   if (state->m_sounddsp != NULL) device_set_input_line(state->m_sounddsp, INPUT_LINE_HALT, ASSERT_LINE);
77   if (state->m_adsp != NULL) state->m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
78   if (state->m_dsp32 != NULL) state->m_dsp32->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
79   if (state->m_sounddsp != NULL) state->m_sounddsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
8080
8181   /* if we found a 6502, reset the JSA board */
8282   if (state->m_jsacpu != NULL)
r17814r17815
106106static void hd68k_update_interrupts(running_machine &machine)
107107{
108108   harddriv_state *state = machine.driver_data<harddriv_state>();
109   device_set_input_line(state->m_maincpu, 1, state->m_msp_irq_state ? ASSERT_LINE : CLEAR_LINE);
110   device_set_input_line(state->m_maincpu, 2, state->m_adsp_irq_state ? ASSERT_LINE : CLEAR_LINE);
111   device_set_input_line(state->m_maincpu, 3, state->m_gsp_irq_state ? ASSERT_LINE : CLEAR_LINE);
112   device_set_input_line(state->m_maincpu, 4, state->m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);   /* /LINKIRQ on STUN Runner */
113   device_set_input_line(state->m_maincpu, 5, state->m_irq_state ? ASSERT_LINE : CLEAR_LINE);
114   device_set_input_line(state->m_maincpu, 6, state->m_duart_irq_state ? ASSERT_LINE : CLEAR_LINE);
109   state->m_maincpu->set_input_line(1, state->m_msp_irq_state ? ASSERT_LINE : CLEAR_LINE);
110   state->m_maincpu->set_input_line(2, state->m_adsp_irq_state ? ASSERT_LINE : CLEAR_LINE);
111   state->m_maincpu->set_input_line(3, state->m_gsp_irq_state ? ASSERT_LINE : CLEAR_LINE);
112   state->m_maincpu->set_input_line(4, state->m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);   /* /LINKIRQ on STUN Runner */
113   state->m_maincpu->set_input_line(5, state->m_irq_state ? ASSERT_LINE : CLEAR_LINE);
114   state->m_maincpu->set_input_line(6, state->m_duart_irq_state ? ASSERT_LINE : CLEAR_LINE);
115115}
116116
117117
r17814r17815
428428      case 6:   /* /GSPRES */
429429         logerror("Write to /GSPRES(%d)\n", data);
430430         if (state->m_gsp != NULL)
431            device_set_input_line(state->m_gsp, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
431            state->m_gsp->set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
432432         break;
433433      case 7:   /* /MSPRES */
434434         logerror("Write to /MSPRES(%d)\n", data);
435435         if (state->m_msp != NULL)
436            device_set_input_line(state->m_msp, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
436            state->m_msp->set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
437437         break;
438438   }
439439}
r17814r17815
502502      {
503503         state->m_last_gsp_shiftreg = new_shiftreg;
504504         if (new_shiftreg)
505            device_yield(&space->device());
505            space->device().execute().yield();
506506      }
507507   }
508508
r17814r17815
599599   {
600600      logerror("%06X:ADSP sync address written (%04X)\n", space->device().safe_pcbase(), data);
601601      space->machine().scheduler().synchronize();
602      device_triggerint(state->m_adsp);
602      state->m_adsp->signal_interrupt_trigger();
603603   }
604604   else
605605      logerror("%06X:ADSP W@%04X (%04X)\n", space->device().safe_pcbase(), offset, data);
r17814r17815
714714         state->m_adsp_br = !val;
715715         logerror("ADSP /BR = %d\n", !state->m_adsp_br);
716716         if (state->m_adsp_br || state->m_adsp_halt)
717            device_set_input_line(state->m_adsp, INPUT_LINE_HALT, ASSERT_LINE);
717            state->m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
718718         else
719719         {
720            device_set_input_line(state->m_adsp, INPUT_LINE_HALT, CLEAR_LINE);
720            state->m_adsp->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
721721            /* a yield in this case is not enough */
722722            /* we would need to increase the interleaving otherwise */
723723            /* note that this only affects the test mode */
724            device_spin(&space->device());
724            space->device().execute().spin();
725725         }
726726         break;
727727
r17814r17815
731731         state->m_adsp_halt = !val;
732732         logerror("ADSP /HALT = %d\n", !state->m_adsp_halt);
733733         if (state->m_adsp_br || state->m_adsp_halt)
734            device_set_input_line(state->m_adsp, INPUT_LINE_HALT, ASSERT_LINE);
734            state->m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
735735         else
736736         {
737            device_set_input_line(state->m_adsp, INPUT_LINE_HALT, CLEAR_LINE);
737            state->m_adsp->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
738738            /* a yield in this case is not enough */
739739            /* we would need to increase the interleaving otherwise */
740740            /* note that this only affects the test mode */
741            device_spin(&space->device());
741            space->device().execute().spin();
742742         }
743743         break;
744744
745745      case 7:
746746         logerror("ADSP reset = %d\n", val);
747         device_set_input_line(state->m_adsp, INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
748         device_yield(&space->device());
747         state->m_adsp->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
748         space->device().execute().yield();
749749         break;
750750
751751      default:
r17814r17815
864864{
865865   /* update the IRQ2 signal to the ADSP2101 */
866866   if (!(!state->m_ds3_g68flag && state->m_ds3_g68irqs) && !(state->m_ds3_gflag && state->m_ds3_gfirqs))
867      device_set_input_line(state->m_adsp, ADSP2100_IRQ2, ASSERT_LINE);
867      state->m_adsp->set_input_line(ADSP2100_IRQ2, ASSERT_LINE);
868868   else
869      device_set_input_line(state->m_adsp, ADSP2100_IRQ2, CLEAR_LINE);
869      state->m_adsp->set_input_line(ADSP2100_IRQ2, CLEAR_LINE);
870870}
871871
872872
r17814r17815
890890         /* the ADSP at the next instruction boundary */
891891         state->m_adsp_br = !val;
892892         if (state->m_adsp_br)
893            device_set_input_line(state->m_adsp, INPUT_LINE_HALT, ASSERT_LINE);
893            state->m_adsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
894894         else
895895         {
896            device_set_input_line(state->m_adsp, INPUT_LINE_HALT, CLEAR_LINE);
896            state->m_adsp->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
897897            /* a yield in this case is not enough */
898898            /* we would need to increase the interleaving otherwise */
899899            /* note that this only affects the test mode */
900            device_spin(&space->device());
900            space->device().execute().spin();
901901         }
902902         break;
903903
904904      case 3:
905         device_set_input_line(state->m_adsp, INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
905         state->m_adsp->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
906906         if (val && !state->m_ds3_reset)
907907         {
908908            state->m_ds3_gflag = 0;
r17814r17815
913913            update_ds3_irq(state);
914914         }
915915         state->m_ds3_reset = val;
916         device_yield(&space->device());
916         space->device().execute().yield();
917917         logerror("DS III reset = %d\n", val);
918918         break;
919919
r17814r17815
988988   /* if we just cleared the IRQ, we are going to do some VERY timing critical reads */
989989   /* it is important that all the CPUs be in sync before we continue, so spin a little */
990990   /* while to let everyone else catch up */
991   device_spin_until_trigger(&space->device(), DS3_TRIGGER);
991   space->device().execute().spin_until_trigger(DS3_TRIGGER);
992992   space->machine().scheduler().trigger(DS3_TRIGGER, attotime::from_usec(5));
993993
994994   return state->m_ds3_gdata;
r17814r17815
10041004   COMBINE_DATA(&state->m_ds3_g68data);
10051005   state->m_ds3_g68flag = 1;
10061006   state->m_ds3_gcmd = offset & 1;
1007   device_triggerint(state->m_adsp);
1007   state->m_adsp->signal_interrupt_trigger();
10081008   update_ds3_irq(state);
10091009}
10101010
r17814r17815
12021202   switch (offset & 7)
12031203   {
12041204      case 0:   /* DSPRESTN */
1205         device_set_input_line(state->m_dsp32, INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
1205         state->m_dsp32->set_input_line(INPUT_LINE_RESET, val ? CLEAR_LINE : ASSERT_LINE);
12061206         break;
12071207
12081208      case 1:   /* DSPZN */
1209         device_set_input_line(state->m_dsp32, INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE);
1209         state->m_dsp32->set_input_line(INPUT_LINE_HALT, val ? CLEAR_LINE : ASSERT_LINE);
12101210         break;
12111211
12121212      case 2:   /* ZW1 */
r17814r17815
15491549      &space->device() == state->m_gsp && space->device().safe_pc() == state->m_gsp_speedup_pc)
15501550   {
15511551      state->m_gsp_speedup_count[0]++;
1552      device_spin_until_interrupt(&space->device());
1552      space->device().execute().spin_until_interrupt();
15531553   }
15541554
15551555   return result;
r17814r17815
15641564
15651565   /* if $ffff is written, send an "interrupt" trigger to break us out of the spin loop */
15661566   if (state->m_gsp_speedup_addr[0][offset] == 0xffff)
1567      device_triggerint(state->m_gsp);
1567      state->m_gsp->signal_interrupt_trigger();
15681568}
15691569
15701570
r17814r17815
15761576
15771577   /* if $ffff is written, send an "interrupt" trigger to break us out of the spin loop */
15781578   if (state->m_gsp_speedup_addr[1][offset] == 0xffff)
1579      device_triggerint(state->m_gsp);
1579      state->m_gsp->signal_interrupt_trigger();
15801580}
15811581
15821582
r17814r17815
15991599      (result & 0xff) < space->device().state().state_int(TMS34010_A1))
16001600   {
16011601      state->m_gsp_speedup_count[0]++;
1602      device_spin_until_interrupt(&space->device());
1602      space->device().execute().spin_until_interrupt();
16031603   }
16041604
16051605   return result;
r17814r17815
16111611   harddriv_state *state = space->machine().driver_data<harddriv_state>();
16121612   COMBINE_DATA(&state->m_gsp_speedup_addr[0][offset]);
16131613   if (&space->device() != state->m_gsp)
1614      device_triggerint(state->m_gsp);
1614      state->m_gsp->signal_interrupt_trigger();
16151615}
16161616
16171617
r17814r17815
16351635   if (data == 0 && &space->device() == state->m_msp && space->device().safe_pc() == state->m_msp_speedup_pc)
16361636   {
16371637      state->m_msp_speedup_count[0]++;
1638      device_spin_until_interrupt(&space->device());
1638      space->device().execute().spin_until_interrupt();
16391639   }
16401640
16411641   return data;
r17814r17815
16471647   harddriv_state *state = space->machine().driver_data<harddriv_state>();
16481648   COMBINE_DATA(&state->m_msp_speedup_addr[offset]);
16491649   if (offset == 0 && state->m_msp_speedup_addr[offset] != 0)
1650      device_triggerint(state->m_msp);
1650      state->m_msp->signal_interrupt_trigger();
16511651}
16521652
16531653
r17814r17815
16701670   if (data == 0xffff && &space->device() == state->m_adsp && space->device().safe_pc() <= 0x3b)
16711671   {
16721672      state->m_adsp_speedup_count[0]++;
1673      device_spin_until_interrupt(&space->device());
1673      space->device().execute().spin_until_interrupt();
16741674   }
16751675
16761676   return data;
r17814r17815
16851685   if (data != 0 && &space->device() == state->m_adsp && space->device().safe_pc() == state->m_ds3_speedup_pc)
16861686   {
16871687      state->m_adsp_speedup_count[2]++;
1688      device_spin_until_interrupt(&space->device());
1688      space->device().execute().spin_until_interrupt();
16891689   }
16901690
16911691   return data;
trunk/src/mame/machine/megacd.c
r17814r17815
22662266
22672267
22682268
2269   device_set_irq_callback(machine.device("segacd_68k"), segacd_sub_int_callback);
2269   machine.device("segacd_68k")->execute().set_irq_acknowledge_callback(segacd_sub_int_callback);
22702270
22712271   space->install_legacy_read_handler (0x0000070, 0x0000073, FUNC(scd_hint_vector_r) );
22722272
r17814r17815
23312331
23322332MACHINE_RESET( segacd )
23332333{
2334   device_set_input_line(_segacd_68k_cpu, INPUT_LINE_RESET, ASSERT_LINE);
2335   device_set_input_line(_segacd_68k_cpu, INPUT_LINE_HALT, ASSERT_LINE);
2334   _segacd_68k_cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
2335   _segacd_68k_cpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
23362336
23372337   segacd_hint_register = 0xffff; // -1
23382338
trunk/src/mame/machine/simpsons.c
r17814r17815
4747
4848READ8_MEMBER(simpsons_state::simpsons_sound_interrupt_r)
4949{
50   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff );
50   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff );
5151   return 0x00;
5252}
5353
r17814r17815
8383   state->m_xtraram = auto_alloc_array_clear(machine, UINT8, 0x1000);
8484   state->m_spriteram = auto_alloc_array_clear(machine, UINT16, 0x1000 / 2);
8585
86   state->m_maincpu = machine.device("maincpu");
87   state->m_audiocpu = machine.device("audiocpu");
86   state->m_maincpu = machine.device<cpu_device>("maincpu");
87   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
8888   state->m_k053260 = machine.device("k053260");
8989   state->m_k052109 = machine.device("k052109");
9090   state->m_k053246 = machine.device("k053246");
trunk/src/mame/machine/pgmprot3.c
r17814r17815
270270{
271271   pgm_arm_type3_state *state = space->machine().driver_data<pgm_arm_type3_state>();
272272   int pc = space->device().safe_pc();
273   if (pc == 0x8000fea) device_eat_cycles(&space->device(), 500);
273   if (pc == 0x8000fea) space->device().execute().eat_cycles(500);
274274//  else printf("dmn_speedup_r %08x\n", pc);
275275   return state->m_arm_ram[0x000444/4];
276276}
r17814r17815
279279{
280280   UINT16 data = pgm_mainram[0xa03c/2];
281281   int pc = space->device().safe_pc();
282   if (pc == 0x10193a) device_spin_until_interrupt(&space->device());
283   else if (pc == 0x1019a4) device_spin_until_interrupt(&space->device());
282   if (pc == 0x10193a) space->device().execute().spin_until_interrupt();
283   else if (pc == 0x1019a4) space->device().execute().spin_until_interrupt();
284284   return data;
285285}
286286
trunk/src/mame/machine/model1.c
r17814r17815
21522152   if ( m_ram_adr == 0 && m_copro_fifoin_num != 0 )
21532153   {
21542154      /* spin the main cpu and let the TGP catch up */
2155      device_spin_until_time(&space.device(), attotime::from_usec(100));
2155      space.device().execute().spin_until_time(attotime::from_usec(100));
21562156   }
21572157
21582158   return m_ram_adr;
r17814r17815
21782178      if ( m_ram_adr == 0 && r == 0xffff )
21792179      {
21802180         /* if the TGP is busy, spin some more */
2181         device_spin_until_time(&space.device(), attotime::from_usec(100));
2181         space.device().execute().spin_until_time(attotime::from_usec(100));
21822182      }
21832183
21842184      if ( m_ram_adr & 0x8000 )
trunk/src/mame/machine/megavdp.c
r17814r17815
570570   if (length==0x00) length = 0xffff;
571571
572572   /* This is a hack until real DMA timings are implemented */
573   device_spin_until_time(m_cpu68k, attotime::from_nsec(length * 1000 / 3500));
573   m_cpu68k->spin_until_time(attotime::from_nsec(length * 1000 / 3500));
574574
575575   for (count = 0;count<(length>>1);count++)
576576   {
trunk/src/mame/machine/mw8080bw.c
r17814r17815
5353   int vpos = machine.primary_screen->vpos();
5454   UINT8 counter = vpos_to_vysnc_chain_counter(vpos);
5555   UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3);
56   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, vector);
56   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector);
5757
5858   /* set up for next interrupt */
5959   if (counter == MW8080BW_INT_TRIGGER_COUNT_1)
trunk/src/mame/machine/playch10.c
r17814r17815
843843
844844      if (state->m_IRQ_enable && !blanked && (state->m_IRQ_count == 0) && priorCount) // according to blargg the latter should be present as well, but it breaks Rampart and Joe & Mac US: they probably use the alt irq!
845845      {
846         device_set_input_line(device->machine().device("cart"), 0, HOLD_LINE);
846         device->machine().device("cart")->execute().set_input_line(0, HOLD_LINE);
847847      }
848848   }
849849}
trunk/src/mame/machine/flstory.c
r17814r17815
6363   {
6464      m_port_a_in = m_from_main;
6565      if (m_main_sent)
66         device_set_input_line(m_mcu, 0, CLEAR_LINE);
66         m_mcu->execute().set_input_line(0, CLEAR_LINE);
6767      m_main_sent = 0;
6868      logerror("read command %02x from main cpu\n", m_port_a_in);
6969   }
r17814r17815
114114   logerror("%04x: mcu_w %02x\n", space.device().safe_pc(), data);
115115   m_from_main = data;
116116   m_main_sent = 1;
117   device_set_input_line(m_mcu, 0, ASSERT_LINE);
117   m_mcu->execute().set_input_line(0, ASSERT_LINE);
118118}
119119
120120READ8_MEMBER(flstory_state::flstory_mcu_r)
trunk/src/mame/machine/smpc.c
r17814r17815
215215{
216216   saturn_state *state = machine.driver_data<saturn_state>();
217217
218   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, CLEAR_LINE);
218   state->m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
219219}
220220
221221static TIMER_CALLBACK( smpc_slave_enable )
222222{
223223   saturn_state *state = machine.driver_data<saturn_state>();
224224
225   device_set_input_line(state->m_slave, INPUT_LINE_RESET, param ? ASSERT_LINE : CLEAR_LINE);
225   state->m_slave->set_input_line(INPUT_LINE_RESET, param ? ASSERT_LINE : CLEAR_LINE);
226226   state->m_smpc.OREG[31] = param + 0x02; //read-back for last command issued
227227   state->m_smpc.SF = 0x00; //clear hand-shake flag
228228}
r17814r17815
231231{
232232   saturn_state *state = machine.driver_data<saturn_state>();
233233
234   device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, param ? ASSERT_LINE : CLEAR_LINE);
234   state->m_audiocpu->set_input_line(INPUT_LINE_RESET, param ? ASSERT_LINE : CLEAR_LINE);
235235   state->m_en_68k = param ^ 1;
236236   state->m_smpc.OREG[31] = param + 0x06; //read-back for last command issued
237237   state->m_smpc.SF = 0x00; //clear hand-shake flag
r17814r17815
253253   memset(state->m_vdp1_vram,0x00,0x100000);
254254   //A-Bus
255255
256   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, PULSE_LINE);
256   state->m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
257257}
258258
259259static TIMER_CALLBACK( smpc_change_clock )
r17814r17815
272272   stv_vdp2_dynamic_res_change(machine);
273273
274274   if(!state->m_NMI_reset)
275      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
276   device_set_input_line(state->m_slave, INPUT_LINE_RESET, ASSERT_LINE);
275      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
276   state->m_slave->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
277277
278278   /* put issued command in OREG31 */
279279   state->m_smpc.OREG[31] = 0x0e + param;
r17814r17815
316316   //  /*This is for RTC,cartridge code and similar stuff...*/
317317   //if(LOG_SMPC) printf ("Interrupt: System Manager (SMPC) at scanline %04x, Vector 0x47 Level 0x08\n",scanline);
318318   if(!(state->m_scu.ism & IRQ_SMPC))
319      device_set_input_line_and_vector(state->m_maincpu, 8, HOLD_LINE, 0x47);
319      state->m_maincpu->set_input_line_and_vector(8, HOLD_LINE, 0x47);
320320   else
321321      state->m_scu.ist |= (IRQ_SMPC);
322322
r17814r17815
515515   }
516516
517517   if(!(state->m_scu.ism & IRQ_SMPC))
518      device_set_input_line_and_vector(state->m_maincpu, 8, HOLD_LINE, 0x47);
518      state->m_maincpu->set_input_line_and_vector(8, HOLD_LINE, 0x47);
519519   else
520520      state->m_scu.ist |= (IRQ_SMPC);
521521
r17814r17815
563563      state->m_smpc.pmode = state->m_smpc.IREG[0]>>4;
564564
565565      if(!(state->m_scu.ism & IRQ_SMPC))
566         device_set_input_line_and_vector(state->m_maincpu, 8, HOLD_LINE, 0x47);
566         state->m_maincpu->set_input_line_and_vector(8, HOLD_LINE, 0x47);
567567      else
568568         state->m_scu.ist |= (IRQ_SMPC);
569569
r17814r17815
609609   saturn_state *state = machine.driver_data<saturn_state>();
610610
611611   /*NMI is unconditionally requested */
612   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
612   state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
613613}
614614
615615static void smpc_nmi_set(running_machine &machine,UINT8 cmd)
r17814r17815
810810
811811      if(LOG_SMPC) printf("SMPC: M68k %s\n",(data & 0x10) ? "off" : "on");
812812      //space->machine().scheduler().timer_set(attotime::from_usec(100), FUNC(smpc_sound_enable),(state->m_smpc_ram[0x77] & 0x10) >> 4);
813      device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
813      state->m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
814814      state->m_en_68k = ((data & 0x10) >> 4) ^ 1;
815815
816816      //if(LOG_SMPC) printf("SMPC: ram [0x77] = %02x\n",data);
trunk/src/mame/machine/fd1094.c
r17814r17815
721721   // register for the state changing callbacks we need in the m68000
722722   m68k_set_cmpild_callback(this, &fd1094_device::cmp_callback);
723723   m68k_set_rte_callback(this, &fd1094_device::rte_callback);
724   device_set_irq_callback(this, &fd1094_device::irq_callback);
724   set_irq_acknowledge_callback(&fd1094_device::irq_callback);
725725
726726   // save state
727727   save_item(NAME(m_state));
trunk/src/mame/machine/slapfght.c
r17814r17815
766766{
767767   slapfght_state *state = device->machine().driver_data<slapfght_state>();
768768   if (state->m_getstar_sh_intenabled)
769      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
769      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
770770}
771771
772772#ifdef UNUSED_FUNCTION
trunk/src/mame/machine/decocass.c
r17814r17815
6565   state->m_sound_ack |= 0x80;
6666   /* remove snd cpu data ack bit. i don't see it in the schems, but... */
6767   state->m_sound_ack &= ~0x40;
68   device_set_input_line(state->m_audiocpu, M6502_IRQ_LINE, ASSERT_LINE);
68   state->m_audiocpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
6969}
7070
7171READ8_HANDLER( decocass_sound_data_r )
r17814r17815
9797   decocass_state *state = space->machine().driver_data<decocass_state>();
9898   UINT8 data = state->soundlatch_byte_r(*space, 0);
9999   LOG(4,("CPU %s sound command <- $%02x\n", space->device().tag(), data));
100   device_set_input_line(state->m_audiocpu, M6502_IRQ_LINE, CLEAR_LINE);
100   state->m_audiocpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
101101   state->m_sound_ack &= ~0x80;
102102   return data;
103103}
r17814r17815
107107   decocass_state *state = timer.machine().driver_data<decocass_state>();
108108   int scanline = param;
109109   state->m_audio_nmi_state = scanline & 8;
110   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
110   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
111111}
112112
113113WRITE8_HANDLER( decocass_sound_nmi_enable_w )
114114{
115115   decocass_state *state = space->machine().driver_data<decocass_state>();
116116   state->m_audio_nmi_enabled = 1;
117   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
117   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
118118}
119119
120120READ8_HANDLER( decocass_sound_nmi_enable_r )
121121{
122122   decocass_state *state = space->machine().driver_data<decocass_state>();
123123   state->m_audio_nmi_enabled = 1;
124   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
124   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
125125   return 0xff;
126126}
127127
r17814r17815
144144WRITE8_HANDLER( decocass_nmi_reset_w )
145145{
146146   decocass_state *state = space->machine().driver_data<decocass_state>();
147   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE );
147   state->m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE );
148148}
149149
150150WRITE8_HANDLER( decocass_quadrature_decoder_reset_w )
r17814r17815
214214   state->m_decocass_reset = data;
215215
216216   /* CPU #1 active high reset */
217   device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, data & 0x01);
217   state->m_audiocpu->set_input_line(INPUT_LINE_RESET, data & 0x01);
218218
219219   /* on reset also disable audio NMI */
220220   if (data & 1)
221221   {
222222      state->m_audio_nmi_enabled = 0;
223      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
223      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
224224   }
225225
226226   /* 8041 active low reset */
227   device_set_input_line(state->m_mcu, INPUT_LINE_RESET, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
227   state->m_mcu->execute().set_input_line(INPUT_LINE_RESET, (data & 0x08) ? ASSERT_LINE : CLEAR_LINE);
228228}
229229
230230
r17814r17815
13521352{
13531353   decocass_state *state = machine.driver_data<decocass_state>();
13541354
1355   state->m_maincpu = machine.device("maincpu");
1356   state->m_audiocpu = machine.device("audiocpu");
1355   state->m_maincpu = machine.device<cpu_device>("maincpu");
1356   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
13571357   state->m_mcu = machine.device("mcu");
13581358   state->m_cassette = machine.device("cassette");
13591359}
trunk/src/mame/machine/decocass.h
r17814r17815
131131   UINT8     m_mux_data;
132132
133133   /* devices */
134   device_t *m_maincpu;
135   device_t *m_audiocpu;
134   cpu_device *m_maincpu;
135   cpu_device *m_audiocpu;
136136   device_t *m_mcu;
137137   device_t *m_cassette;
138138   DECLARE_DRIVER_INIT(decocass);
trunk/src/mame/machine/konppc.c
r17814r17815
161161               k033906_set_reg(k033906, (data & 0x20000000) ? 1 : 0);
162162
163163            if (data & 0x10000000)
164               device_set_input_line(dsp, INPUT_LINE_RESET, CLEAR_LINE);
164               dsp->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
165165            else
166               device_set_input_line(dsp, INPUT_LINE_RESET, ASSERT_LINE);
166               dsp->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
167167
168168            if (data & 0x02000000)
169               device_set_input_line(dsp, INPUT_LINE_IRQ0, ASSERT_LINE);
169               dsp->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
170170
171171            if (data & 0x04000000)
172               device_set_input_line(dsp, INPUT_LINE_IRQ1, ASSERT_LINE);
172               dsp->execute().set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
173173         }
174174
175175         if (ACCESSING_BITS_0_7)
trunk/src/mame/machine/leland.c
r17814r17815
453453{
454454   /* check for coins here */
455455   if ((device->machine().root_device().ioport("IN1")->read() & 0x0e) != 0x0e)
456      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
456      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
457457}
458458
459459
trunk/src/mame/machine/toaplan1.c
r17814r17815
4444   toaplan1_state *state = device->machine().driver_data<toaplan1_state>();
4545
4646   if (state->m_intenable)
47      device_set_input_line(device, 4, HOLD_LINE);
47      device->execute().set_input_line(4, HOLD_LINE);
4848}
4949
5050WRITE16_MEMBER(toaplan1_state::toaplan1_intenable_w)
r17814r17815
317317      devtag_reset(machine(), "ymsnd");
318318      device_t *audiocpu = machine().device("audiocpu");
319319      if (audiocpu != NULL && audiocpu->type() == Z80)
320         device_set_input_line(audiocpu, INPUT_LINE_RESET, PULSE_LINE);
320         audiocpu->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
321321   }
322322}
323323
trunk/src/mame/machine/buggychl.c
r17814r17815
9494   {
9595      state->m_port_a_in = state->m_from_main;
9696      if (state->m_main_sent)
97         device_set_input_line(state->m_mcu, 0, CLEAR_LINE);
97         state->m_mcu->execute().set_input_line(0, CLEAR_LINE);
9898      state->m_main_sent = 0;
9999      logerror("read command %02x from main cpu\n", state->m_port_a_in);
100100   }
r17814r17815
156156   logerror("%04x: mcu_w %02x\n", state->m_mcu->safe_pc(), data);
157157   state->m_from_main = data;
158158   state->m_main_sent = 1;
159   device_set_input_line(state->m_mcu, 0, ASSERT_LINE);
159   state->m_mcu->execute().set_input_line(0, ASSERT_LINE);
160160}
161161
162162READ8_DEVICE_HANDLER( buggychl_mcu_r )
trunk/src/mame/machine/namco53.c
r17814r17815
113113static TIMER_CALLBACK( namco_53xx_irq_clear )
114114{
115115   namco_53xx_state *state = get_safe_token((device_t *)ptr);
116   device_set_input_line(state->m_cpu, 0, CLEAR_LINE);
116   state->m_cpu->execute().set_input_line(0, CLEAR_LINE);
117117}
118118
119119void namco_53xx_read_request(device_t *device)
120120{
121121   namco_53xx_state *state = get_safe_token(device);
122   device_set_input_line(state->m_cpu, 0, ASSERT_LINE);
122   state->m_cpu->execute().set_input_line(0, ASSERT_LINE);
123123
124124   // The execution time of one instruction is ~4us, so we must make sure to
125125   // give the cpu time to poll the /IRQ input before we clear it.
trunk/src/mame/machine/n64.c
r17814r17815
564564   //printf("sp_set_status: %08x\n", status);
565565   if (status & 0x1)
566566   {
567      device_set_input_line(rspcpu, INPUT_LINE_HALT, ASSERT_LINE);
567      rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
568568        rspcpu->state().set_state_int(RSP_SR, rspcpu->state().state_int(RSP_SR) | RSP_STATUS_HALT);
569569   }
570570
r17814r17815
612612
613613      case 0x1c/4:      // SP_SEMAPHORE_REG
614614         //machine().scheduler().boost_interleave(attotime::from_usec(1), attotime::from_usec(1));
615         device_yield(machine().device("maincpu"));
615         machine().device("maincpu")->execute().yield();
616616            if( sp_semaphore )
617617            {
618618                ret = 1;
r17814r17815
724724                // printf( "RSP_STATUS_REG Write; %08x\n", data );
725725                if (data & 0x00000001)      // clear halt
726726                {
727               device_set_input_line(rspcpu, INPUT_LINE_HALT, CLEAR_LINE);
727               rspcpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
728728               newstatus &= ~RSP_STATUS_HALT;
729729               //printf("***SP HALT CLR***\n"); fflush(stdout);
730730                }
731731                if (data & 0x00000002)      // set halt
732732                {
733                    device_set_input_line(rspcpu, INPUT_LINE_HALT, ASSERT_LINE);
733                    rspcpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
734734                    newstatus |= RSP_STATUS_HALT;
735735               //printf("***SP HALT SET***\n"); fflush(stdout);
736736                }
r17814r17815
761761                    if(!(oldstatus & (RSP_STATUS_BROKE | RSP_STATUS_HALT)))
762762                    {
763763                        rspcpu->state().set_state_int(RSP_STEPCNT, 1 );
764                        device_yield(machine().device("rsp"));
764                        machine().device("rsp")->execute().yield();
765765                    }
766766                }
767767                if (data & 0x00000080)
r17814r17815
14071407static TIMER_CALLBACK(pi_dma_callback)
14081408{
14091409   machine.device<n64_periphs>("rcp")->pi_dma_tick();
1410   device_yield(machine.device("rsp"));
1410   machine.device("rsp")->execute().yield();
14111411}
14121412
14131413void n64_periphs::pi_dma_tick()
trunk/src/mame/machine/stfight.c
r17814r17815
119119INTERRUPT_GEN( stfight_vb_interrupt )
120120{
121121    // Do a RST10
122    device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7);
122    device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7);
123123    device->machine().scheduler().timer_set(attotime::from_hz(120), FUNC(stfight_interrupt_1));
124124}
125125
trunk/src/mame/machine/snes.c
r17814r17815
106106   snes_state *state = machine.driver_data<snes_state>();
107107
108108   // pull NMI
109   device_set_input_line(state->m_maincpu, G65816_LINE_NMI, ASSERT_LINE);
109   state->m_maincpu->set_input_line(G65816_LINE_NMI, ASSERT_LINE);
110110
111111   // don't happen again
112112   state->m_nmi_timer->adjust(attotime::never);
r17814r17815
120120   // (don't need to switch to the 65816 context, we don't do anything dependant on it)
121121   snes_latch_counters(machine);
122122   snes_ram[TIMEUP] = 0x80;   /* Indicate that irq occurred */
123   device_set_input_line(state->m_maincpu, G65816_LINE_IRQ, ASSERT_LINE);
123   state->m_maincpu->set_input_line(G65816_LINE_IRQ, ASSERT_LINE);
124124
125125   // don't happen again
126126   state->m_hirq_timer->adjust(attotime::never);
r17814r17815
180180         snes_ram[TIMEUP] = 0x80;   /* Indicate that irq occurred */
181181         // IRQ latches the counters, do it now
182182         snes_latch_counters(machine);
183         device_set_input_line(state->m_maincpu, G65816_LINE_IRQ, ASSERT_LINE );
183         state->m_maincpu->set_input_line(G65816_LINE_IRQ, ASSERT_LINE );
184184      }
185185   }
186186   /* Horizontal IRQ timer */
r17814r17815
244244      snes_ram[STAT78] ^= 0x80;      /* Toggle field flag */
245245      snes_ppu.stat77_flags &= 0x3f;   /* Clear Time Over and Range Over bits */
246246
247      device_set_input_line(state->m_maincpu, G65816_LINE_NMI, CLEAR_LINE );
247      state->m_maincpu->set_input_line(G65816_LINE_NMI, CLEAR_LINE );
248248   }
249249
250250   state->m_scanline_timer->adjust(attotime::never);
r17814r17815
511511         return value | 2; //CPU version number
512512      case TIMEUP:      /* IRQ flag by H/V count timer */
513513         value = (snes_open_bus_r(space, 0) & 0x7f) | (snes_ram[TIMEUP] & 0x80);
514         device_set_input_line(state->m_maincpu, G65816_LINE_IRQ, CLEAR_LINE );
514         state->m_maincpu->set_input_line(G65816_LINE_IRQ, CLEAR_LINE );
515515         snes_ram[TIMEUP] = 0;   // flag is cleared on both read and write
516516         return value;
517517      case HVBJOY:      /* H/V blank and joypad controller enable */
r17814r17815
688688      case NMITIMEN:   /* Flag for v-blank, timer int. and joy read */
689689         if((data & 0x30) == 0x00)
690690         {
691            device_set_input_line(state->m_maincpu, G65816_LINE_IRQ, CLEAR_LINE );
691            state->m_maincpu->set_input_line(G65816_LINE_IRQ, CLEAR_LINE );
692692            snes_ram[TIMEUP] = 0;   // clear pending IRQ if irq is disabled here, 3x3 Eyes - Seima Korin Den behaves on this
693693         }
694694         break;
r17814r17815
726726            space->machine().scheduler().timer_set(space->machine().primary_screen->time_until_pos(snes_ppu.beam.current_vert + 1), FUNC(snes_reset_hdma));
727727         break;
728728      case TIMEUP:   // IRQ Flag is cleared on both read and write
729         device_set_input_line(state->m_maincpu, G65816_LINE_IRQ, CLEAR_LINE );
729         state->m_maincpu->set_input_line(G65816_LINE_IRQ, CLEAR_LINE );
730730         snes_ram[TIMEUP] = 0;
731731         return;
732732      /* Following are read-only */
r17814r17815
759759WRITE_LINE_DEVICE_HANDLER( snes_extern_irq_w )
760760{
761761   snes_state *driver_state = device->machine().driver_data<snes_state>();
762   device_set_input_line(driver_state->m_maincpu, G65816_LINE_IRQ, state);
762   driver_state->m_maincpu->set_input_line(G65816_LINE_IRQ, state);
763763}
764764
765765/*************************************
trunk/src/mame/machine/atarigen.c
r17814r17815
734734{
735735   atarigen_state *state = space->machine().driver_data<atarigen_state>();
736736   state->m_cpu_to_sound_ready = 0;
737   device_set_input_line(state->m_sound_cpu, INPUT_LINE_NMI, CLEAR_LINE);
737   state->m_sound_cpu->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
738738   return state->m_cpu_to_sound;
739739}
740740
r17814r17815
750750{
751751   atarigen_state *state = machine.driver_data<atarigen_state>();
752752   if (state->m_timed_int || state->m_ym2151_int)
753      device_set_input_line(state->m_sound_cpu, M6502_IRQ_LINE, ASSERT_LINE);
753      state->m_sound_cpu->execute().set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
754754   else
755      device_set_input_line(state->m_sound_cpu, M6502_IRQ_LINE, CLEAR_LINE);
755      state->m_sound_cpu->execute().set_input_line(M6502_IRQ_LINE, CLEAR_LINE);
756756}
757757
758758
r17814r17815
769769   /* unhalt and reset the sound CPU */
770770   if (param == 0)
771771   {
772      device_set_input_line(state->m_sound_cpu, INPUT_LINE_HALT, CLEAR_LINE);
773      device_set_input_line(state->m_sound_cpu, INPUT_LINE_RESET, PULSE_LINE);
772      state->m_sound_cpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
773      state->m_sound_cpu->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
774774   }
775775
776776   /* reset the sound write state */
r17814r17815
799799   /* set up the states and signal an NMI to the sound CPU */
800800   state->m_cpu_to_sound = param;
801801   state->m_cpu_to_sound_ready = 1;
802   device_set_input_line(state->m_sound_cpu, INPUT_LINE_NMI, ASSERT_LINE);
802   state->m_sound_cpu->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
803803
804804   /* allocate a high frequency timer until a response is generated */
805805   /* the main CPU is *very* sensistive to the timing of the response */
r17814r17815
13851385
13861386   /* halt and set a timer to wake up */
13871387   screen.machine().scheduler().timer_set(screen.scan_period() * (hblank - hpos) / width, FUNC(unhalt_cpu), 0, (void *)cpu);
1388   device_set_input_line(cpu, INPUT_LINE_HALT, ASSERT_LINE);
1388   cpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
13891389}
13901390
13911391
r17814r17815
14771477static TIMER_CALLBACK( unhalt_cpu )
14781478{
14791479   device_t *cpu = (device_t *)ptr;
1480   device_set_input_line(cpu, INPUT_LINE_HALT, CLEAR_LINE);
1480   cpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
14811481}
14821482
14831483
trunk/src/mame/machine/gaelco2.c
r17814r17815
192192   int scanline = param;
193193
194194   if (scanline == 256){
195      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
195      state->m_maincpu->set_input_line(2, HOLD_LINE);
196196      state->m_clr_gun_int = 0;
197197   }
198198
199199   if ((scanline % 64) == 0 && state->m_clr_gun_int)
200      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
200      state->m_maincpu->set_input_line(4, HOLD_LINE);
201201}
202202
203203/***************************************************************************
trunk/src/mame/machine/galaxold.c
r17814r17815
1818   /* for some reason a call to cputag_set_input_line
1919     * is significantly delayed ....
2020     *
21     * device->machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
21     * device->machine().device("maincpu")->set_input_line(0, CLEAR_LINE);
2222     *
2323     * Therefore we reset the line without any detour ....
2424     */
25   device_set_input_line(device->machine().firstcpu, 0, CLEAR_LINE);
25   device->machine().firstcpu->set_input_line(0, CLEAR_LINE);
2626   //cpu_set_info(device->machine().firstcpu, CPUINFO_INT_INPUT_STATE + state->m_irq_line, CLEAR_LINE);
2727   return 0x03;
2828}
r17814r17815
9898MACHINE_RESET( hunchbkg )
9999{
100100   machine_reset_common(machine, 0);
101   device_set_irq_callback(machine.device("maincpu"), hunchbkg_irq_callback);
101   machine.device("maincpu")->execute().set_irq_acknowledge_callback(hunchbkg_irq_callback);
102102}
103103
104104WRITE8_MEMBER(galaxold_state::galaxold_coin_lockout_w)
trunk/src/mame/machine/dec0.c
r17814r17815
118118
119119READ16_MEMBER(dec0_state::hippodrm_68000_share_r)
120120{
121   if (offset==0) device_yield(&space.device()); /* A wee helper */
121   if (offset==0) space.device().execute().yield(); /* A wee helper */
122122   return m_share[offset]&0xff;
123123}
124124
trunk/src/mame/machine/lsasquad.c
r17814r17815
1313   lsasquad_state *state = machine.driver_data<lsasquad_state>();
1414
1515   if (state->m_sound_nmi_enable)
16      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
16      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
1717   else
1818      state->m_pending_nmi = 1;
1919}
r17814r17815
2929   m_sound_nmi_enable = 1;
3030   if (m_pending_nmi)
3131   {
32      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
32      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3333      m_pending_nmi = 0;
3434   }
3535}
r17814r17815
142142   {
143143      m_port_a_in = m_from_main;
144144      if (m_main_sent)
145         device_set_input_line(m_mcu, 0, CLEAR_LINE);
145         m_mcu->execute().set_input_line(0, CLEAR_LINE);
146146      m_main_sent = 0;
147147      //logerror("read command %02x from main cpu\n", m_port_a_in);
148148   }
r17814r17815
168168   //logerror("%04x: mcu_w %02x\n", space.device().safe_pc(), data);
169169   m_from_main = data;
170170   m_main_sent = 1;
171   device_set_input_line(m_mcu, 0, ASSERT_LINE);
171   m_mcu->execute().set_input_line(0, ASSERT_LINE);
172172}
173173
174174READ8_MEMBER(lsasquad_state::lsasquad_mcu_r)
trunk/src/mame/machine/nb1413m3.c
r17814r17815
192192{
193193//  nb1413m3_busyflag = 1;
194194//  nb1413m3_busyctr = 0;
195   device_set_input_line(device, 0, HOLD_LINE);
195   device->execute().set_input_line(0, HOLD_LINE);
196196
197197#if NB1413M3_DEBUG
198198   popmessage("NMI SW:%01X CLOCK:%02X COUNT:%02X", nb1413m3_nmi_enable, nb1413m3_nmi_clock, nb1413m3_nmi_count);
trunk/src/mame/machine/subs.c
r17814r17815
2727{
2828   /* only do NMI interrupt if not in TEST mode */
2929   if ((device->machine().root_device().ioport("IN1")->read() & 0x40)==0x40)
30      device_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE);
30      device->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE);
3131}
3232
3333/***************************************************************************
trunk/src/mame/machine/ajax.c
r17814r17815
142142            watchdog_reset_w(space, 0, data);
143143         else{
144144            if (m_firq_enable)   /* Cause interrupt on slave CPU */
145               device_set_input_line(m_subcpu, M6809_FIRQ_LINE, HOLD_LINE);
145               m_subcpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
146146         }
147147         break;
148148      case 0x01:   /* Cause interrupt on audio CPU */
149         device_set_input_line(m_audiocpu, 0, HOLD_LINE);
149         m_audiocpu->set_input_line(0, HOLD_LINE);
150150         break;
151151      case 0x02:   /* Sound command number */
152152         soundlatch_byte_w(space, offset, data);
r17814r17815
206206   state->membank("bank1")->set_entry(0);
207207   state->membank("bank2")->set_entry(0);
208208
209   state->m_maincpu = machine.device("maincpu");
210   state->m_audiocpu = machine.device("audiocpu");
211   state->m_subcpu = machine.device("sub");
209   state->m_maincpu = machine.device<cpu_device>("maincpu");
210   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
211   state->m_subcpu = machine.device<cpu_device>("sub");
212212   state->m_k007232_1 = machine.device("k007232_1");
213213   state->m_k007232_2 = machine.device("k007232_2");
214214   state->m_k052109 = machine.device("k052109");
r17814r17815
232232   ajax_state *state = device->machine().driver_data<ajax_state>();
233233
234234   if (k051960_is_irq_enabled(state->m_k051960))
235      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
235      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
236236}
trunk/src/mame/machine/bigevglf.c
r17814r17815
3636
3737   if ((m_ddr_b & 0x02) && (~m_port_b_out & 0x02) && (data & 0x02)) /* positive going transition of the clock */
3838   {
39      device_set_input_line(m_mcu, 0, CLEAR_LINE);
39      m_mcu->execute().set_input_line(0, CLEAR_LINE);
4040      m_main_sent = 0;
4141
4242   }
r17814r17815
8181
8282   m_port_a_in = data;
8383   m_main_sent = 1;
84   device_set_input_line(m_mcu, 0, ASSERT_LINE);
84   m_mcu->execute().set_input_line(0, ASSERT_LINE);
8585}
8686
8787
trunk/src/mame/machine/cdi070.c
r17814r17815
8383        scc68070->timers.timer_status_register |= TSR_OV0;
8484        if(interrupt)
8585        {
86           device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
86           machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
8787           machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
8888      }
8989    }
r17814r17815
170170         UINT8 interrupt = (scc68070->picr2 >> 4) & 7;
171171         if(interrupt)
172172         {
173            device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
173            machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
174174            machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
175175         }
176176
r17814r17815
381381      UINT8 interrupt = scc68070->picr2 & 7;
382382      if(interrupt)
383383      {
384         device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
384         machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
385385         machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
386386      }
387387
trunk/src/mame/machine/nitedrvr.c
r17814r17815
278278{
279279   nitedrvr_state *state = machine.driver_data<nitedrvr_state>();
280280
281   state->m_maincpu = machine.device("maincpu");
281   state->m_maincpu = machine.device<cpu_device>("maincpu");
282282   state->m_discrete = machine.device("discrete");
283283
284284   state->save_item(NAME(state->m_gear));
trunk/src/mame/video/antic.c
r17814r17815
9090      data = antic.r.antic09;
9191      break;
9292   case 10: /* WSYNC read */
93      device_spin_until_trigger(space->machine().device("maincpu"), TRIGGER_HSYNC);
93      space->machine().device("maincpu")->execute().spin_until_trigger(TRIGGER_HSYNC);
9494      antic.w.wsync = 1;
9595      data = antic.r.antic0a;
9696      break;
r17814r17815
200200      break;
201201   case 10: /* WSYNC write */
202202      LOG(("ANTIC 0A write WSYNC  $%02X\n", data));
203      device_spin_until_trigger(space->machine().device("maincpu"), TRIGGER_HSYNC);
203      space->machine().device("maincpu")->execute().spin_until_trigger(TRIGGER_HSYNC);
204204      antic.w.wsync = 1;
205205      break;
206206   case 11:
trunk/src/mame/video/blktiger.c
r17814r17815
153153   coin_counter_w(machine(), 1,data & 2);
154154
155155   /* bit 5 resets the sound CPU */
156   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
156   m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
157157
158158   /* bit 6 flips screen */
159159   flip_screen_set(data & 0x40);
trunk/src/mame/video/mcd212.c
r17814r17815
623623                    UINT8 interrupt = (state->m_scc68070_regs.lir >> 4) & 7;
624624                    if(interrupt)
625625                    {
626                        device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
626                        machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
627627                        machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
628628                    }
629629                }
r17814r17815
633633                    UINT8 interrupt = state->m_scc68070_regs.lir & 7;
634634                    if(interrupt)
635635                    {
636                        device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 24 + interrupt);
636                        machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 24 + interrupt);
637637                        machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
638638                    }
639639                }
r17814r17815
714714                    UINT8 interrupt = (state->m_scc68070_regs.lir >> 4) & 7;
715715                    if(interrupt)
716716                    {
717                        device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
717                        machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 56 + interrupt);
718718                        machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
719719                    }
720720                }
r17814r17815
724724                    UINT8 interrupt = state->m_scc68070_regs.lir & 7;
725725                    if(interrupt)
726726                    {
727                        device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_1 + (interrupt - 1), 24 + interrupt);
727                        machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_1 + (interrupt - 1), 24 + interrupt);
728728                        machine.device("maincpu")->execute().set_input_line(M68K_IRQ_1 + (interrupt - 1), ASSERT_LINE);
729729                    }
730730                }
trunk/src/mame/video/system1.c
r17814r17815
250250   const UINT32 fixst_offset = 2 * 4;
251251   UINT32 cycles_until_next_fixst = cpu_cycles_per_fixst - ((cpu->total_cycles() - fixst_offset) % cpu_cycles_per_fixst);
252252
253   device_adjust_icount(cpu, -cycles_until_next_fixst);
253   cpu->adjust_icount(-cycles_until_next_fixst);
254254}
255255
256256READ8_MEMBER(system1_state::system1_videoram_r)
trunk/src/mame/video/zaxxon.c
r17814r17815
288288      int count = m_congo_custom[2];
289289
290290      /* count cycles (just a guess) */
291      device_adjust_icount(&space.device(), -count * 5);
291      space.device().execute().adjust_icount(-count * 5);
292292
293293      /* this is just a guess; the chip is hardwired to the spriteram */
294294      while (count-- >= 0)
trunk/src/mame/video/gticlub.c
r17814r17815
449449         if (space->device().safe_pc() == 0x201ee)
450450         {
451451            // This is used to make the SHARC timeout
452            device_spin_until_trigger(&space->device(), 10000);
452            space->device().execute().spin_until_trigger(10000);
453453         }
454454         // !!! HACK to get past the FIFO B test (Winding Heat & Midnight Run) !!!
455455         if (space->device().safe_pc() == 0x201e6)
456456         {
457457            // This is used to make the SHARC timeout
458            device_spin_until_trigger(&space->device(), 10000);
458            space->device().execute().spin_until_trigger(10000);
459459         }
460460
461461         break;
trunk/src/mame/video/beezer.c
r17814r17815
1313   via_0->write_ca2((scanline & 0x20) ? 1 : 0);
1414   #if 0
1515   if (scanline == 240) // actually unused by the game! (points to a tight loop)
16      device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, ASSERT_LINE);
16      state->m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
1717   else
18      device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE);
18      state->m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
1919   #endif
2020}
2121
trunk/src/mame/video/tia.c
r17814r17815
798798
799799   if (cycles % 76)
800800   {
801      device_adjust_icount(&space.device(), cycles % 76 - 76);
801      space.device().execute().adjust_icount(cycles % 76 - 76);
802802   }
803803}
804804
trunk/src/mame/video/blockade.c
r17814r17815
99   if (ioport("IN3")->read() & 0x80)
1010   {
1111      logerror("blockade_videoram_w: scanline %d\n", machine().primary_screen->vpos());
12      device_spin_until_interrupt(&space.device());
12      space.device().execute().spin_until_interrupt();
1313   }
1414}
1515
trunk/src/mame/video/tmnt.c
r17814r17815
334334
335335      /* bit 3 high then low triggers irq on sound CPU */
336336      if (m_last == 0x08 && (data & 0x08) == 0)
337         device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
337         m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
338338
339339      m_last = data & 0x08;
340340
r17814r17815
358358
359359      /* bit 2 = trigger irq on sound CPU */
360360      if (m_last == 0x04 && (data & 0x04) == 0)
361         device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
361         m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
362362
363363      m_last = data & 0x04;
364364
r17814r17815
378378
379379      /* bit 2 = trigger irq on sound CPU */
380380      if (m_last == 0x00 && (data & 0x04) == 0x04)
381         device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
381         m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
382382
383383      m_last = data & 0x04;
384384
trunk/src/mame/video/gameplan.c
r17814r17815
214214static TIMER_CALLBACK( via_irq_delayed )
215215{
216216   gameplan_state *state = machine.driver_data<gameplan_state>();
217   device_set_input_line(state->m_maincpu, 0, param);
217   state->m_maincpu->set_input_line(0, param);
218218}
219219
220220
trunk/src/mame/video/capbowl.c
r17814r17815
1919static void generate_interrupt( running_machine &machine, int state )
2020{
2121   capbowl_state *driver = machine.driver_data<capbowl_state>();
22   device_set_input_line(driver->m_maincpu, M6809_FIRQ_LINE, state);
22   driver->m_maincpu->set_input_line(M6809_FIRQ_LINE, state);
2323}
2424
2525static const struct tms34061_interface tms34061intf =
trunk/src/mame/video/commando.c
r17814r17815
6060   coin_counter_w(machine(), 1, data & 0x02);
6161
6262   // bit 4 resets the sound CPU
63   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
63   m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
6464
6565   // bit 7 flips screen
6666   flip_screen_set(data & 0x80);
trunk/src/mame/video/bfm_adr2.c
r17814r17815
253253   if ( adder2_c101 & 0x01 )
254254   {
255255      adder_vbl_triggered = 1;
256      device_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE );
256      device->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE );
257257   }
258258}
259259
trunk/src/mame/video/spdodgeb.c
r17814r17815
9090
9191   if (scanline == 256)
9292   {
93      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
93      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9494      timer.machine().primary_screen->update_partial(256);
9595   }
9696   else if ((scanline % 8) == 0)
9797   {
98      device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
98      state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
9999      timer.machine().primary_screen->update_partial(scanline+16); /* TODO: pretty off ... */
100100   }
101101}
trunk/src/mame/video/liberate.c
r17814r17815
120120         /* Todo */
121121         break;
122122      case 8: /* Irq ack */
123         device_set_input_line(m_maincpu, DECO16_IRQ_LINE, CLEAR_LINE);
123         m_maincpu->set_input_line(DECO16_IRQ_LINE, CLEAR_LINE);
124124         break;
125125      case 9: /* Sound */
126126         soundlatch_byte_w(space, 0, data);
127         device_set_input_line(m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
127         m_audiocpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
128128         break;
129129   }
130130}
r17814r17815
148148         /* x--- ---- used on the attract mode */
149149         break;
150150      case 8: /* Irq ack */
151         device_set_input_line(m_maincpu, DECO16_IRQ_LINE, CLEAR_LINE);
151         m_maincpu->set_input_line(DECO16_IRQ_LINE, CLEAR_LINE);
152152         break;
153153      case 9: /* Sound */
154154         soundlatch_byte_w(space, 0, data);
155         device_set_input_line(m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
155         m_audiocpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
156156         break;
157157   }
158158}
r17814r17815
171171         break;
172172      case 2: /* Sound */
173173         soundlatch_byte_w(space, 0, data);
174         device_set_input_line(m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
174         m_audiocpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
175175         break;
176176      case 4: /* Irq ack */
177         device_set_input_line(m_maincpu, DECO16_IRQ_LINE, CLEAR_LINE);
177         m_maincpu->set_input_line(DECO16_IRQ_LINE, CLEAR_LINE);
178178         break;
179179   }
180180}
trunk/src/mame/video/nemesis.c
r17814r17815
110110   if (ACCESSING_BITS_8_15)
111111   {
112112      if (data & 0x0100)
113         device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
113         m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
114114   }
115115}
116116
r17814r17815
162162      coin_lockout_w(machine(), 1, data & 0x0400);
163163
164164      if (data & 0x0800)
165         device_set_input_line(m_audiocpu, 0, HOLD_LINE);
165         m_audiocpu->set_input_line(0, HOLD_LINE);
166166
167167      m_selected_ip = (~data & 0x1000) >> 12;      /* citybomb steering & accel */
168168   }
trunk/src/mame/video/1942.c
r17814r17815
180180
181181   coin_counter_w(machine(), 0,data & 0x01);
182182
183   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
183   m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? ASSERT_LINE : CLEAR_LINE);
184184
185185   flip_screen_set(data & 0x80);
186186}
trunk/src/mame/video/battlera.c
r17814r17815
371371   /* If raster interrupt occurs, refresh screen _up_ to this point */
372372   if (state->m_rcr_enable && (state->m_current_scanline+56)==state->m_HuC6270_registers[6]) {
373373      timer.machine().primary_screen->update_partial(state->m_current_scanline);
374      device_set_input_line(state->m_maincpu, 0, HOLD_LINE); /* RCR interrupt */
374      state->m_maincpu->set_input_line(0, HOLD_LINE); /* RCR interrupt */
375375   }
376376
377377   /* Start of vblank */
r17814r17815
379379      state->m_bldwolf_vblank=1;
380380      timer.machine().primary_screen->update_partial(240);
381381      if (state->m_irq_enable)
382         device_set_input_line(state->m_maincpu, 0, HOLD_LINE); /* VBL */
382         state->m_maincpu->set_input_line(0, HOLD_LINE); /* VBL */
383383   }
384384
385385   /* End of vblank */
trunk/src/mame/video/astrocde.c
r17814r17815
835835   } while (state->m_pattern_height-- != 0);
836836
837837   /* count cycles we ran the bus */
838   device_adjust_icount(&space->device(), -cycles);
838   space->device().execute().adjust_icount(-cycles);
839839}
840840
841841
trunk/src/mame/video/ginganin.c
r17814r17815
175175      break;
176176   case 7:
177177      soundlatch_byte_w(space, 0, data);
178      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
178      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
179179      break;
180180   default:
181181      logerror("CPU #0 PC %06X : Warning, videoreg %04X <- %04X\n", space.device().safe_pc(), offset, data);
trunk/src/mame/video/taito_z.c
r17814r17815
824824   if (ACCESSING_BITS_0_7)
825825   {
826826      /* bit 0 = reset sub CPU */
827      device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
827      m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
828828
829829      /* bits 1-3 n.c. */
830830
trunk/src/mame/video/lockon.c
r17814r17815
6767   lockon_state *state = machine.driver_data<lockon_state>();
6868
6969   if (state->m_main_inten)
70      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xff);
70      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
7171
7272   state->m_cursor_timer->adjust(machine.primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS));
7373}
r17814r17815
284284static TIMER_CALLBACK( bufend_callback )
285285{
286286   lockon_state *state = machine.driver_data<lockon_state>();
287   device_set_input_line_and_vector(state->m_ground, 0, HOLD_LINE, 0xff);
288   device_set_input_line(state->m_object, NEC_INPUT_LINE_POLL, ASSERT_LINE);
287   state->m_ground->execute().set_input_line_and_vector(0, HOLD_LINE, 0xff);
288   state->m_object->execute().set_input_line(NEC_INPUT_LINE_POLL, ASSERT_LINE);
289289}
290290
291291/* Get data for a each 8x8x3 ground tile */
r17814r17815
618618READ16_MEMBER(lockon_state::lockon_obj_4000_r)
619619{
620620
621   device_set_input_line(m_object, NEC_INPUT_LINE_POLL, CLEAR_LINE);
621   m_object->execute().set_input_line(NEC_INPUT_LINE_POLL, CLEAR_LINE);
622622   return 0xffff;
623623}
624624
trunk/src/mame/video/rltennis.c
r17814r17815
133133
134134   if(offset == BLT_START && (((new_data ^ old_data ) & new_data) & BLTSTRT_TRIGGER))  /* blit strobe 0->1 */
135135   {
136      device_set_input_line(m_maincpu, 1, HOLD_LINE);
136      m_maincpu->set_input_line(1, HOLD_LINE);
137137
138138      int src_x0=(m_blitter[BLT_X_START]>>SRC_SHIFT)+((m_blitter[BLT_FLAGS] & BLTFLAG_SRC_LR)?256:0);
139139      int src_y0=(m_blitter[BLT_Y_START]>>SRC_SHIFT)+((m_blitter[BLT_FLAGS]>>3)&0xff00)+(((m_blitter[BLT_START]) & BLTSTRT_ROM_MSB)?(1<<0xd):0);
trunk/src/mame/video/atari.c
r17814r17815
11601160   LOG(("           @cycle #%3d steal %d cycles\n", cycle(machine), antic.steal_cycles));
11611161   after(machine, antic.steal_cycles, FUNC(antic_line_done));
11621162    antic.steal_cycles = 0;
1163   device_spin_until_trigger( machine.device("maincpu"), TRIGGER_STEAL );
1163   machine.device("maincpu")->execute().spin_until_trigger(TRIGGER_STEAL );
11641164}
11651165
11661166
trunk/src/mame/video/decocass.c
r17814r17815
524524   rectangle clip;
525525
526526   if (0xc0 != (screen.machine().root_device().ioport("IN2")->read() & 0xc0))  /* coin slots assert an NMI */
527      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
527      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
528528
529529   if (0 == (state->m_watchdog_flip & 0x04))
530530      screen.machine().watchdog_reset();
trunk/src/mame/video/bfm_dm01.c
r17814r17815
238238
239239INTERRUPT_GEN( bfm_dm01_vbl )
240240{
241   device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE );
241   device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE );
242242}
243243
244244///////////////////////////////////////////////////////////////////////////
trunk/src/mame/video/fromance.c
r17814r17815
258258static TIMER_CALLBACK( crtc_interrupt_gen )
259259{
260260   fromance_state *state = machine.driver_data<fromance_state>();
261   device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
261   state->m_subcpu->set_input_line(0, HOLD_LINE);
262262   if (param != 0)
263263      state->m_crtc_timer->adjust(machine.primary_screen->frame_period() / param, 0, machine.primary_screen->frame_period() / param);
264264}
trunk/src/mame/video/konicdev.c
r17814r17815
93469346         {
93479347            if (k001005->fifo_read_ptr < 0x3ff)
93489348            {
9349               //device_set_input_line(k001005->dsp, SHARC_INPUT_FLAG1, CLEAR_LINE);
9349               //k001005->dsp->execute().set_input_line(SHARC_INPUT_FLAG1, CLEAR_LINE);
93509350               sharc_set_flag_input(k001005->dsp, 1, CLEAR_LINE);
93519351            }
93529352            else
93539353            {
9354               //device_set_input_line(k001005->dsp, SHARC_INPUT_FLAG1, ASSERT_LINE);
9354               //k001005->dsp->execute().set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE);
93559355               sharc_set_flag_input(k001005->dsp, 1, ASSERT_LINE);
93569356            }
93579357         }
93589358         else
93599359         {
9360            //device_set_input_line(k001005->dsp, SHARC_INPUT_FLAG1, ASSERT_LINE);
9360            //k001005->dsp->execute().set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE);
93619361            sharc_set_flag_input(k001005->dsp, 1, ASSERT_LINE);
93629362         }
93639363
r17814r17815
94019401         {
94029402            if (k001005->fifo_write_ptr < 0x400)
94039403            {
9404               //device_set_input_line(k001005->dsp, SHARC_INPUT_FLAG1, ASSERT_LINE);
9404               //k001005->dsp->execute().set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE);
94059405               sharc_set_flag_input(k001005->dsp, 1, ASSERT_LINE);
94069406            }
94079407            else
94089408            {
9409               //device_set_input_line(k001005->dsp, SHARC_INPUT_FLAG1, CLEAR_LINE);
9409               //k001005->dsp->execute().set_input_line(SHARC_INPUT_FLAG1, CLEAR_LINE);
94109410               sharc_set_flag_input(k001005->dsp, 1, CLEAR_LINE);
94119411            }
94129412         }
94139413         else
94149414         {
9415            //device_set_input_line(k001005->dsp, SHARC_INPUT_FLAG1, ASSERT_LINE);
9415            //k001005->dsp->execute().set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE);
94169416            sharc_set_flag_input(k001005->dsp, 1, ASSERT_LINE);
94179417         }
94189418
r17814r17815
94279427         if (k001005->cpu->safe_pc() == 0x201ee)
94289428         {
94299429            // This is used to make the SHARC timeout
9430            device_spin_until_trigger(k001005->cpu, 10000);
9430            k001005->cpu->execute().spin_until_trigger(10000);
94319431         }
94329432         // !!! HACK to get past the FIFO B test (Winding Heat & Midnight Run) !!!
94339433         if (k001005->cpu->safe_pc() == 0x201e6)
94349434         {
94359435            // This is used to make the SHARC timeout
9436            device_spin_until_trigger(k001005->cpu, 10000);
9436            k001005->cpu->execute().spin_until_trigger(10000);
94379437         }
94389438
94399439         break;
trunk/src/mame/video/ppu2c0x.c
r17814r17815
12831283   }
12841284
12851285   // should last 513 CPU cycles.
1286   device_adjust_icount(&space->device(), -513);
1286   space->device().execute().adjust_icount(-513);
12871287}
12881288
12891289/*************************************
trunk/src/mame/video/exidy.c
r17814r17815
7474   state->m_int_condition &= ~0x80;
7575
7676   /* set the IRQ line */
77   device_set_input_line(device, 0, ASSERT_LINE);
77   device->execute().set_input_line(0, ASSERT_LINE);
7878}
7979
8080
trunk/src/mame/video/homedata.c
r17814r17815
116116   } /* for(;;) */
117117
118118finish:
119   device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
119   state->m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
120120}
121121
122122static void reikaids_handleblit( address_space *space, int rom_base )
r17814r17815
214214   }
215215
216216finish:
217   device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
217   state->m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
218218}
219219
220220static void pteacher_handleblit( address_space *space, int rom_base )
r17814r17815
301301   } /* for(;;) */
302302
303303finish:
304   device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
304   state->m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
305305}
306306
307307
trunk/src/mame/video/circus.c
r17814r17815
9090   }
9191
9292   if (collision)
93      device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
93      state->m_maincpu->set_input_line(0, ASSERT_LINE);
9494}
9595
9696static void circus_draw_fg( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
trunk/src/mame/video/arkanoid.c
r17814r17815
6767     which resets itself).  This bit is the likely candidate as it is flipped
6868     early in bootup just prior to accessing the MCU for the first time. */
6969   if (m_mcu != NULL)   // Bootlegs don't have the MCU but still set this bit
70      device_set_input_line(m_mcu, INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
70      m_mcu->execute().set_input_line(INPUT_LINE_RESET, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
7171}
7272
7373/* different hook-up, everything except for bits 0-1 and 7 aren't tested afaik. */
trunk/src/mame/video/williams.c
r17814r17815
539539   /* based on the number of memory accesses needed to do the blit, compute how long the blit will take */
540540   /* this is just a guess */
541541   estimated_clocks_at_4MHz = 20 + ((data & 4) ? 4 : 2) * accesses;
542   device_adjust_icount(&space.device(), -((estimated_clocks_at_4MHz + 3) / 4));
542   space.device().execute().adjust_icount(-((estimated_clocks_at_4MHz + 3) / 4));
543543
544544   /* Log blits */
545545   logerror("%04X:Blit @ %3d : %02X%02X -> %02X%02X, %3dx%3d, mask=%02X, flags=%02X, icount=%d, win=%d\n",
trunk/src/mame/video/dec8.c
r17814r17815
166166   m_scroll2[2] = (data >> 6) & 1;
167167
168168   if (data & 0x80)
169      device_set_input_line(m_subcpu, INPUT_LINE_RESET, CLEAR_LINE);
169      m_subcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
170170   else
171      device_set_input_line(m_subcpu, INPUT_LINE_RESET, ASSERT_LINE);
171      m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
172172}
173173
174174WRITE8_MEMBER(dec8_state::shackled_control_w)
trunk/src/mame/includes/m10.h
r17814r17815
6161   int                 m_last;
6262
6363   /* devices */
64   device_t *m_maincpu;
64   cpu_device *m_maincpu;
6565   device_t *m_ic8j1;
6666   device_t *m_ic8j2;
6767   samples_device *m_samples;
trunk/src/mame/includes/nitedrvr.h
r17814r17815
4242   INT32 m_last_steering_val;
4343
4444   /* devices */
45   device_t *m_maincpu;
45   cpu_device *m_maincpu;
4646   device_t *m_discrete;
4747   DECLARE_READ8_MEMBER(nitedrvr_steering_reset_r);
4848   DECLARE_WRITE8_MEMBER(nitedrvr_steering_reset_w);
trunk/src/mame/includes/nycaptor.h
r17814r17815
4646   int m_mask;
4747
4848   /* devices */
49   device_t *m_maincpu;
50   device_t *m_audiocpu;
51   device_t *m_subcpu;
49   cpu_device *m_maincpu;
50   cpu_device *m_audiocpu;
51   cpu_device *m_subcpu;
5252   device_t *m_mcu;
5353   DECLARE_WRITE8_MEMBER(sub_cpu_halt_w);
5454   DECLARE_READ8_MEMBER(from_snd_r);
trunk/src/mame/includes/rainbow.h
r17814r17815
2828   UINT8       m_current_bank;
2929
3030   /* devices */
31   device_t *m_maincpu;
32   device_t *m_audiocpu;
31   cpu_device *m_maincpu;
32   cpu_device *m_audiocpu;
3333   device_t *m_pc080sn;
3434   device_t *m_pc090oj;
3535   DECLARE_WRITE16_MEMBER(jumping_sound_w);
trunk/src/mame/includes/galspnbl.h
r17814r17815
2525//  UINT16 *    paletteram; // currently this uses generic palette handling
2626
2727   /* devices */
28   device_t *m_audiocpu;
28   cpu_device *m_audiocpu;
2929   DECLARE_WRITE16_MEMBER(soundcommand_w);
3030};
3131
trunk/src/mame/includes/blktiger.h
r17814r17815
3939
4040   /* devices */
4141   device_t *m_mcu;
42   device_t *m_audiocpu;
42   cpu_device *m_audiocpu;
4343   DECLARE_READ8_MEMBER(blktiger_from_mcu_r);
4444   DECLARE_WRITE8_MEMBER(blktiger_to_mcu_w);
4545   DECLARE_READ8_MEMBER(blktiger_from_main_r);
trunk/src/mame/includes/rungun.h
r17814r17815
2929   int         m_sound_status;
3030
3131   /* devices */
32   device_t *m_maincpu;
33   device_t *m_audiocpu;
32   cpu_device *m_maincpu;
33   cpu_device *m_audiocpu;
3434   device_t *m_k054539_1;
3535   device_t *m_k054539_2;
3636   device_t *m_k053936;
trunk/src/mame/includes/madmotor.h
r17814r17815
1919   int             m_flipscreen;
2020
2121   /* devices */
22   device_t *m_maincpu;
23   device_t *m_audiocpu;
22   cpu_device *m_maincpu;
23   cpu_device *m_audiocpu;
2424   DECLARE_WRITE16_MEMBER(madmotor_sound_w);
2525   DECLARE_DRIVER_INIT(madmotor);
2626};
trunk/src/mame/includes/bublbobl.h
r17814r17815
5252   int      m_ic43_b;
5353
5454   /* devices */
55   device_t *m_maincpu;
55   cpu_device *m_maincpu;
5656   device_t *m_mcu;
57   device_t *m_audiocpu;
57   cpu_device *m_audiocpu;
5858   device_t *m_slave;
5959   DECLARE_WRITE8_MEMBER(bublbobl_bankswitch_w);
6060   DECLARE_WRITE8_MEMBER(tokio_bankswitch_w);
trunk/src/mame/includes/skyfox.h
r17814r17815
2323   int        m_palette_selected;
2424
2525   /* devices */
26   device_t *m_maincpu;
26   cpu_device *m_maincpu;
2727   DECLARE_READ8_MEMBER(skyfox_vregs_r);
2828   DECLARE_WRITE8_MEMBER(skyfox_vregs_w);
2929   DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
trunk/src/mame/includes/aerofgt.h
r17814r17815
4343   int       m_pending_command;
4444
4545   /* devices */
46   device_t *m_audiocpu;
46   cpu_device *m_audiocpu;
4747   DECLARE_WRITE16_MEMBER(sound_command_w);
4848   DECLARE_WRITE16_MEMBER(turbofrc_sound_command_w);
4949   DECLARE_WRITE16_MEMBER(aerfboot_soundlatch_w);
trunk/src/mame/includes/fgoal.h
r17814r17815
2424   int        m_prev_coin;
2525
2626   /* devices */
27   device_t *m_maincpu;
27   cpu_device *m_maincpu;
2828   device_t *m_mb14241;
2929   DECLARE_READ8_MEMBER(fgoal_analog_r);
3030   DECLARE_READ8_MEMBER(fgoal_nmi_reset_r);
trunk/src/mame/includes/sonson.h
r17814r17815
2525   int        m_last_irq;
2626
2727   /* devices */
28   device_t *m_audiocpu;
28   cpu_device *m_audiocpu;
2929   DECLARE_WRITE8_MEMBER(sonson_sh_irqtrigger_w);
3030   DECLARE_WRITE8_MEMBER(sonson_coin1_counter_w);
3131   DECLARE_WRITE8_MEMBER(sonson_coin2_counter_w);
trunk/src/mame/includes/hcastle.h
r17814r17815
3434   int        m_gfx_bank;
3535
3636   /* devices */
37   device_t *m_audiocpu;
37   cpu_device *m_audiocpu;
3838   device_t *m_k007121_1;
3939   device_t *m_k007121_2;
4040
trunk/src/mame/includes/bking.h
r17814r17815
3737   int         m_addr_l;
3838
3939   /* devices */
40   device_t *m_audiocpu;
40   cpu_device *m_audiocpu;
4141
4242#if 0
4343   /* 68705 */
trunk/src/mame/includes/battlnts.h
r17814r17815
1919
2020
2121   /* devices */
22   device_t *m_audiocpu;
22   cpu_device *m_audiocpu;
2323   device_t *m_k007342;
2424   device_t *m_k007420;
2525   DECLARE_WRITE8_MEMBER(battlnts_sh_irqtrigger_w);
trunk/src/mame/includes/taito_o.h
r17814r17815
1414//  UINT16 *    paletteram;    // currently this uses generic palette handling
1515
1616   /* devices */
17   device_t *m_maincpu;
17   cpu_device *m_maincpu;
1818   device_t *m_tc0080vco;
1919   DECLARE_WRITE16_MEMBER(io_w);
2020   DECLARE_READ16_MEMBER(io_r);
trunk/src/mame/includes/ddragon3.h
r17814r17815
3434   UINT16          m_io_reg[8];
3535
3636   /* devices */
37   device_t *m_maincpu;
38   device_t *m_audiocpu;
37   cpu_device *m_maincpu;
38   cpu_device *m_audiocpu;
3939   DECLARE_WRITE16_MEMBER(ddragon3_io_w);
4040   DECLARE_WRITE16_MEMBER(ddragon3_scroll_w);
4141   DECLARE_READ16_MEMBER(ddragon3_scroll_r);
trunk/src/mame/includes/orbit.h
r17814r17815
3535   UINT8      m_misc_flags;
3636
3737   /* devices */
38   device_t *m_maincpu;
38   cpu_device *m_maincpu;
3939   device_t *m_discrete;
4040   DECLARE_WRITE8_MEMBER(orbit_misc_w);
4141   DECLARE_WRITE8_MEMBER(orbit_playfield_w);
trunk/src/mame/includes/coolpool.h
r17814r17815
2626   UINT16 m_result;
2727   UINT16 m_lastresult;
2828
29   device_t *m_maincpu;
29   cpu_device *m_maincpu;
3030   device_t *m_dsp;
3131   UINT16 m_nvram_write_seq[NVRAM_UNLOCK_SEQ_LEN];
3232   UINT8 m_nvram_write_enable;
trunk/src/mame/includes/flkatck.h
r17814r17815
2424   int        m_multiply_reg[2];
2525
2626   /* devices */
27   device_t *m_audiocpu;
27   cpu_device *m_audiocpu;
2828   device_t *m_k007121;
2929   DECLARE_WRITE8_MEMBER(flkatck_bankswitch_w);
3030   DECLARE_READ8_MEMBER(flkatck_ls138_r);
trunk/src/mame/includes/dynax.h
r17814r17815
154154
155155
156156   /* devices */
157   device_t *m_maincpu;
158   device_t *m_soundcpu;
157   cpu_device *m_maincpu;
158   cpu_device *m_soundcpu;
159159   device_t *m_rtc;
160160   device_t *m_ymsnd;
161161   okim6295_device *m_oki;
trunk/src/mame/includes/contra.h
r17814r17815
3939   rectangle m_tx_clip;
4040
4141   /* devices */
42   device_t *m_audiocpu;
42   cpu_device *m_audiocpu;
4343   device_t *m_k007121_1;
4444   device_t *m_k007121_2;
4545   DECLARE_WRITE8_MEMBER(contra_bankswitch_w);
trunk/src/mame/includes/volfied.h
r17814r17815
2626   UINT8       m_current_cmd;
2727
2828   /* devices */
29   device_t *m_maincpu;
30   device_t *m_audiocpu;
29   cpu_device *m_maincpu;
30   cpu_device *m_audiocpu;
3131   device_t *m_pc090oj;
3232   DECLARE_WRITE16_MEMBER(volfied_cchip_ctrl_w);
3333   DECLARE_WRITE16_MEMBER(volfied_cchip_bank_w);
trunk/src/mame/includes/mexico86.h
r17814r17815
3232   int      m_coin_last;
3333
3434   /* devices */
35   device_t *m_maincpu;
36   device_t *m_audiocpu;
37   device_t *m_subcpu;
35   cpu_device *m_maincpu;
36   cpu_device *m_audiocpu;
37   cpu_device *m_subcpu;
3838   device_t *m_mcu;
3939
4040   /* queue */
trunk/src/mame/includes/ashnojoe.h
r17814r17815
4545   int         m_msm5205_vclk_toggle;
4646
4747   /* devices */
48   device_t *m_audiocpu;
48   cpu_device *m_audiocpu;
4949   DECLARE_READ16_MEMBER(fake_4a00a_r);
5050   DECLARE_WRITE16_MEMBER(ashnojoe_soundlatch_w);
5151   DECLARE_WRITE8_MEMBER(adpcm_w);
trunk/src/mame/includes/mouser.h
r17814r17815
2323   UINT8      m_nmi_enable;
2424
2525   /* devices */
26   device_t *m_maincpu;
27   device_t *m_audiocpu;
26   cpu_device *m_maincpu;
27   cpu_device *m_audiocpu;
2828   DECLARE_WRITE8_MEMBER(mouser_nmi_enable_w);
2929   DECLARE_WRITE8_MEMBER(mouser_sound_interrupt_w);
3030   DECLARE_READ8_MEMBER(mouser_sound_byte_r);
trunk/src/mame/includes/lkage.h
r17814r17815
4949   int m_mcu_ready;   /* cpu data/mcu ready status */
5050
5151   /* devices */
52   device_t *m_maincpu;
53   device_t *m_audiocpu;
52   cpu_device *m_maincpu;
53   cpu_device *m_audiocpu;
5454   device_t *m_mcu;
5555   DECLARE_WRITE8_MEMBER(lkage_sound_command_w);
5656   DECLARE_WRITE8_MEMBER(lkage_sh_nmi_disable_w);
trunk/src/mame/includes/gaiden.h
r17814r17815
4545   const int   *m_raiga_jumppoints;
4646
4747   /* devices */
48   device_t *m_audiocpu;
48   cpu_device *m_audiocpu;
4949   DECLARE_WRITE16_MEMBER(gaiden_sound_command_w);
5050   DECLARE_WRITE16_MEMBER(drgnbowl_sound_command_w);
5151   DECLARE_WRITE16_MEMBER(wildfang_protection_w);
trunk/src/mame/includes/astrof.h
r17814r17815
3636   UINT8      m_astrof_bosskill_playing;
3737
3838   /* devices */
39   device_t *m_maincpu;
39   cpu_device *m_maincpu;
4040   samples_device *m_samples;   // astrof & abattle
4141   device_t *m_sn;   // tomahawk
4242   DECLARE_READ8_MEMBER(irq_clear_r);
trunk/src/mame/includes/karnov.h
r17814r17815
3939   int         m_latch;
4040
4141   /* devices */
42   device_t *m_maincpu;
43   device_t *m_audiocpu;
42   cpu_device *m_maincpu;
43   cpu_device *m_audiocpu;
4444   DECLARE_WRITE16_MEMBER(karnov_control_w);
4545   DECLARE_READ16_MEMBER(karnov_control_r);
4646   DECLARE_WRITE16_MEMBER(karnov_videoram_w);
trunk/src/mame/includes/kopunch.h
r17814r17815
2525   int        m_gfxbank;
2626
2727   /* devices */
28   device_t *m_maincpu;
28   cpu_device *m_maincpu;
2929   DECLARE_READ8_MEMBER(kopunch_in_r);
3030   DECLARE_WRITE8_MEMBER(kopunch_lamp_w);
3131   DECLARE_WRITE8_MEMBER(kopunch_coin_w);
trunk/src/mame/includes/aliens.h
r17814r17815
2323   int        m_palette_selected;
2424
2525   /* devices */
26   device_t *m_maincpu;
27   device_t *m_audiocpu;
26   cpu_device *m_maincpu;
27   cpu_device *m_audiocpu;
2828   device_t *m_k007232;
2929   device_t *m_k052109;
3030   device_t *m_k051960;
trunk/src/mame/includes/metlclsh.h
r17814r17815
3030   UINT8          m_gfxbank;
3131
3232   /* devices */
33   device_t *m_maincpu;
34   device_t *m_subcpu;
33   cpu_device *m_maincpu;
34   cpu_device *m_subcpu;
3535   DECLARE_WRITE8_MEMBER(metlclsh_cause_irq);
3636   DECLARE_WRITE8_MEMBER(metlclsh_ack_nmi);
3737   DECLARE_WRITE8_MEMBER(metlclsh_cause_nmi2);
trunk/src/mame/includes/beezer.h
r17814r17815
1111   int m_pbus;
1212   int m_banklatch;
1313
14   device_t *m_maincpu;
14   cpu_device *m_maincpu;
1515   DECLARE_WRITE8_MEMBER(beezer_bankswitch_w);
1616   DECLARE_WRITE8_MEMBER(beezer_map_w);
1717   DECLARE_READ8_MEMBER(beezer_line_r);
trunk/src/mame/includes/88games.h
r17814r17815
3030   int          m_speech_chip;
3131
3232   /* devices */
33   device_t *m_audiocpu;
33   cpu_device *m_audiocpu;
3434   device_t *m_k052109;
3535   device_t *m_k051960;
3636   device_t *m_k051316;
trunk/src/mame/includes/dbz.h
r17814r17815
2828   int           m_control;
2929
3030   /* devices */
31   device_t *m_maincpu;
32   device_t *m_audiocpu;
31   cpu_device *m_maincpu;
32   cpu_device *m_audiocpu;
3333   device_t *m_k053246;
3434   device_t *m_k053251;
3535   device_t *m_k056832;
trunk/src/mame/includes/20pacgal.h
r17814r17815
2929   UINT8 m_game_selected;   /* 0 = Ms. Pac-Man, 1 = Galaga */
3030
3131   /* devices */
32   device_t *m_maincpu;
32   cpu_device *m_maincpu;
3333   device_t *m_eeprom;
3434
3535   /* memory */
trunk/src/mame/includes/system16.h
r17814r17815
108108   UINT8 *m_decrypted_region;   // goldnaxeb1 & bayrouteb1
109109
110110   /* devices */
111   device_t *m_maincpu;
112   device_t *m_soundcpu;
111   cpu_device *m_maincpu;
112   cpu_device *m_soundcpu;
113113   DECLARE_WRITE16_MEMBER(sound_command_nmi_w);
114114   DECLARE_WRITE16_MEMBER(sound_command_w);
115115   DECLARE_WRITE16_MEMBER(sys16_coinctrl_w);
trunk/src/mame/includes/simpsons.h
r17814r17815
2222   //int        m_nmi_enabled;
2323
2424   /* devices */
25   device_t *m_maincpu;
26   device_t *m_audiocpu;
25   cpu_device *m_maincpu;
26   cpu_device *m_audiocpu;
2727   device_t *m_k053260;
2828   device_t *m_k052109;
2929   device_t *m_k053246;
trunk/src/mame/includes/taito_b.h
r17814r17815
3030   UINT16        m_realpunc_video_ctrl;
3131
3232   /* devices */
33   device_t *m_maincpu;
34   device_t *m_audiocpu;
33   cpu_device *m_maincpu;
34   cpu_device *m_audiocpu;
3535   device_t *m_mb87078;
3636   device_t *m_ym;
3737   device_t *m_tc0180vcu;
trunk/src/mame/includes/actfancr.h
r17814r17815
2222   int            m_trio_control_select;
2323
2424   /* devices */
25   device_t *m_maincpu;
26   device_t *m_audiocpu;
25   cpu_device *m_maincpu;
26   cpu_device *m_audiocpu;
2727   DECLARE_WRITE8_MEMBER(triothep_control_select_w);
2828   DECLARE_READ8_MEMBER(triothep_control_r);
2929   DECLARE_WRITE8_MEMBER(actfancr_sound_w);
trunk/src/mame/includes/jackal.h
r17814r17815
2626   UINT8    *m_spritebank;
2727
2828   /* devices */
29   device_t *m_mastercpu;
30   device_t *m_slavecpu;
29   cpu_device *m_mastercpu;
30   cpu_device *m_slavecpu;
3131   DECLARE_READ8_MEMBER(topgunbl_rotary_r);
3232   DECLARE_WRITE8_MEMBER(jackal_flipscreen_w);
3333   DECLARE_READ8_MEMBER(jackal_zram_r);
trunk/src/mame/includes/vaportra.h
r17814r17815
2323   UINT16    m_priority[2];
2424
2525   /* devices */
26   device_t *m_maincpu;
27   device_t *m_audiocpu;
26   cpu_device *m_maincpu;
27   cpu_device *m_audiocpu;
2828   device_t *m_deco_tilegen1;
2929   device_t *m_deco_tilegen2;
3030   required_device<buffered_spriteram16_device> m_spriteram;
trunk/src/mame/includes/btime.h
r17814r17815
5252   int      m_protection_ret;
5353
5454   /* devices */
55   device_t *m_maincpu;
56   device_t *m_audiocpu;
55   cpu_device *m_maincpu;
56   cpu_device *m_audiocpu;
5757
5858   DECLARE_WRITE8_MEMBER(audio_nmi_enable_w);
5959   DECLARE_WRITE8_MEMBER(lnc_w);
trunk/src/mame/includes/cps1.h
r17814r17815
141141   int          m_cps_version;
142142
143143   /* devices */
144   device_t *m_maincpu;
145   device_t *m_audiocpu;
144   cpu_device *m_maincpu;
145   cpu_device *m_audiocpu;
146146   msm5205_device *m_msm_1;   // fcrash
147147   msm5205_device *m_msm_2;   // fcrash
148148   DECLARE_READ16_MEMBER(cps1_hack_dsw_r);
trunk/src/mame/includes/yunsun16.h
r17814r17815
3232   int         m_sprites_scrolldy;
3333
3434   /* devices */
35   device_t *m_audiocpu;
35   cpu_device *m_audiocpu;
3636   DECLARE_WRITE16_MEMBER(yunsun16_sound_bank_w);
3737   DECLARE_WRITE16_MEMBER(magicbub_sound_command_w);
3838   DECLARE_WRITE16_MEMBER(yunsun16_vram_0_w);
trunk/src/mame/includes/mermaid.h
r17814r17815
4949   UINT8    m_adpcm_play_reg;
5050
5151   /* devices */
52   device_t *m_maincpu;
52   cpu_device *m_maincpu;
5353   device_t *m_ay1;
5454   device_t *m_ay2;
5555
trunk/src/mame/includes/hyprduel.h
r17814r17815
5959   int       m_int_num;
6060
6161   /* devices */
62   device_t *m_maincpu;
63   device_t *m_subcpu;
62   cpu_device *m_maincpu;
63   cpu_device *m_subcpu;
6464   DECLARE_READ16_MEMBER(hyprduel_irq_cause_r);
6565   DECLARE_WRITE16_MEMBER(hyprduel_irq_cause_w);
6666   DECLARE_WRITE16_MEMBER(hyprduel_subcpu_control_w);
trunk/src/mame/includes/flstory.h
r17814r17815
5252   int      m_mcu_select;
5353
5454   /* devices */
55   device_t *m_maincpu;
56   device_t *m_audiocpu;
55   cpu_device *m_maincpu;
56   cpu_device *m_audiocpu;
5757   device_t *m_mcu;
5858
5959   /* mcu */
trunk/src/mame/includes/suprslam.h
r17814r17815
3535   int         m_pending_command;
3636
3737   /* devices */
38   device_t *m_audiocpu;
38   cpu_device *m_audiocpu;
3939   device_t *m_k053936;
4040   DECLARE_WRITE16_MEMBER(sound_command_w);
4141   DECLARE_READ16_MEMBER(pending_command_r);
trunk/src/mame/includes/kyugo.h
r17814r17815
3636   const UINT8 *m_color_codes;
3737
3838   /* devices */
39   device_t *m_maincpu;
40   device_t *m_subcpu;
39   cpu_device *m_maincpu;
40   cpu_device *m_subcpu;
4141
4242   UINT8       m_nmi_mask;
4343   DECLARE_WRITE8_MEMBER(kyugo_nmi_mask_w);
trunk/src/mame/includes/lemmings.h
r17814r17815
2121   UINT16 m_sprite_triple_buffer_1[0x800];
2222   UINT8 m_vram_buffer[2048 * 64];   // 64 bytes per VRAM character
2323   /* devices */
24   device_t *m_audiocpu;
24   cpu_device *m_audiocpu;
2525   required_device<buffered_spriteram16_device> m_spriteram;
2626   required_device<buffered_spriteram16_device> m_spriteram2;
2727   /* memory pointers */
trunk/src/mame/includes/pushman.h
r17814r17815
2828   UINT16     m_new_latch;
2929
3030   /* devices */
31   device_t *m_maincpu;
32   device_t *m_audiocpu;
31   cpu_device *m_maincpu;
32   cpu_device *m_audiocpu;
3333   device_t *m_mcu;
3434   DECLARE_WRITE16_MEMBER(pushman_flipscreen_w);
3535   DECLARE_WRITE16_MEMBER(pushman_control_w);
trunk/src/mame/includes/espial.h
r17814r17815
3535   UINT8     m_sound_nmi_enabled;
3636
3737   /* devices */
38   device_t *m_maincpu;
39   device_t *m_audiocpu;
38   cpu_device *m_maincpu;
39   cpu_device *m_audiocpu;
4040   DECLARE_WRITE8_MEMBER(espial_master_interrupt_mask_w);
4141   DECLARE_WRITE8_MEMBER(espial_master_soundlatch_w);
4242   DECLARE_WRITE8_MEMBER(espial_sound_nmi_mask_w);
trunk/src/mame/includes/tmnt.h
r17814r17815
4747   UINT16      m_cuebrick_nvram[0x400 * 0x20];   // 32k paged in a 1k window
4848
4949   /* devices */
50   device_t *m_maincpu;
51   device_t *m_audiocpu;
50   cpu_device *m_maincpu;
51   cpu_device *m_audiocpu;
5252   device_t *m_k007232;
5353   device_t *m_k053260;
5454   device_t *m_k054539;
trunk/src/mame/includes/citycon.h
r17814r17815
2727   int            m_bg_image;
2828
2929   /* devices */
30   device_t *m_maincpu;
30   cpu_device *m_maincpu;
3131   DECLARE_READ8_MEMBER(citycon_in_r);
3232   DECLARE_READ8_MEMBER(citycon_irq_ack_r);
3333   DECLARE_WRITE8_MEMBER(citycon_videoram_w);
trunk/src/mame/includes/spy.h
r17814r17815
2727   int        m_old_3f90;
2828
2929   /* devices */
30   device_t *m_maincpu;
31   device_t *m_audiocpu;
30   cpu_device *m_maincpu;
31   cpu_device *m_audiocpu;
3232   device_t *m_k007232_1;
3333   device_t *m_k007232_2;
3434   device_t *m_k052109;
trunk/src/mame/includes/psikyo.h
r17814r17815
4444   int            m_mcu_status;
4545
4646   /* devices */
47   device_t *m_audiocpu;
47   cpu_device *m_audiocpu;
4848
4949   /* game-specific */
5050   // 1945 MCU
trunk/src/mame/includes/gameplan.h
r17814r17815
4545   emu_timer *m_via_0_ca1_timer;
4646
4747   /* devices */
48   device_t *m_maincpu;
49   device_t *m_audiocpu;
48   cpu_device *m_maincpu;
49   cpu_device *m_audiocpu;
5050   device_t *m_riot;
5151   required_device<via6522_device> m_via_0;
5252   required_device<via6522_device> m_via_1;
trunk/src/mame/includes/darius.h
r17814r17815
3333   UINT8      m_pan[DARIUS_PAN_MAX];
3434
3535   /* devices */
36   device_t *m_maincpu;
37   device_t *m_audiocpu;
36   cpu_device *m_maincpu;
37   cpu_device *m_audiocpu;
3838   device_t *m_cpub;
3939   device_t *m_adpcm;
4040   device_t *m_tc0140syt;
trunk/src/mame/includes/capbowl.h
r17814r17815
2525   UINT8 m_last_trackball_val[2];
2626
2727   /* devices */
28   device_t *m_maincpu;
29   device_t *m_audiocpu;
28   cpu_device *m_maincpu;
29   cpu_device *m_audiocpu;
3030   DECLARE_WRITE8_MEMBER(capbowl_rom_select_w);
3131   DECLARE_READ8_MEMBER(track_0_r);
3232   DECLARE_READ8_MEMBER(track_1_r);
trunk/src/mame/includes/funkyjet.h
r17814r17815
2020//  UINT16 *  paletteram;    // currently this uses generic palette handling (in decocomn.c)
2121
2222   /* devices */
23   device_t *m_maincpu;
24   device_t *m_audiocpu;
23   cpu_device *m_maincpu;
24   cpu_device *m_audiocpu;
2525   device_t *m_deco_tilegen1;
2626   DECLARE_DRIVER_INIT(funkyjet);
2727};
trunk/src/mame/includes/xexex.h
r17814r17815
3535   int        m_frame;
3636
3737   /* devices */
38   device_t *m_maincpu;
39   device_t *m_audiocpu;
38   cpu_device *m_maincpu;
39   cpu_device *m_audiocpu;
4040   device_t *m_k054539;
4141   device_t *m_filter1l;
4242   device_t *m_filter1r;
trunk/src/mame/includes/himesiki.h
r17814r17815
2323   int        m_flipscreen;
2424
2525   /* devices */
26   device_t *m_subcpu;
26   cpu_device *m_subcpu;
2727   DECLARE_WRITE8_MEMBER(himesiki_rombank_w);
2828   DECLARE_WRITE8_MEMBER(himesiki_sound_w);
2929   DECLARE_WRITE8_MEMBER(himesiki_bg_ram_w);
trunk/src/mame/includes/ironhors.h
r17814r17815
3131   int        m_spriterambank;
3232
3333   /* devices */
34   device_t *m_maincpu;
35   device_t *m_soundcpu;
34   cpu_device *m_maincpu;
35   cpu_device *m_soundcpu;
3636   DECLARE_WRITE8_MEMBER(ironhors_sh_irqtrigger_w);
3737   DECLARE_WRITE8_MEMBER(ironhors_videoram_w);
3838   DECLARE_WRITE8_MEMBER(ironhors_colorram_w);
trunk/src/mame/includes/mrflea.h
r17814r17815
2727   int m_select1;
2828
2929   /* devices */
30   device_t *m_maincpu;
31   device_t *m_subcpu;
30   cpu_device *m_maincpu;
31   cpu_device *m_subcpu;
3232   DECLARE_WRITE8_MEMBER(mrflea_main_w);
3333   DECLARE_WRITE8_MEMBER(mrflea_io_w);
3434   DECLARE_READ8_MEMBER(mrflea_main_r);
trunk/src/mame/includes/mcatadv.h
r17814r17815
2929   int m_palette_bank2;
3030
3131   /* devices */
32   device_t *m_maincpu;
33   device_t *m_soundcpu;
32   cpu_device *m_maincpu;
33   cpu_device *m_soundcpu;
3434   DECLARE_WRITE16_MEMBER(mcat_soundlatch_w);
3535   DECLARE_WRITE16_MEMBER(mcat_coin_w);
3636   DECLARE_READ16_MEMBER(mcat_wd_r);
trunk/src/mame/includes/gaelco.h
r17814r17815
2525   tilemap_t      *m_tilemap[2];
2626
2727   /* devices */
28   device_t *m_audiocpu;
28   cpu_device *m_audiocpu;
2929   DECLARE_WRITE16_MEMBER(bigkarnk_sound_command_w);
3030   DECLARE_WRITE16_MEMBER(bigkarnk_coin_w);
3131   DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w);
trunk/src/mame/includes/munchmo.h
r17814r17815
3333   int          m_nmi_enable;
3434
3535   /* devices */
36   device_t *m_maincpu;
37   device_t *m_audiocpu;
36   cpu_device *m_maincpu;
37   cpu_device *m_audiocpu;
3838   DECLARE_WRITE8_MEMBER(mnchmobl_nmi_enable_w);
3939   DECLARE_WRITE8_MEMBER(mnchmobl_soundlatch_w);
4040   DECLARE_WRITE8_MEMBER(sound_nmi_ack_w);
trunk/src/mame/includes/alpha68k.h
r17814r17815
4343   unsigned    m_game_id;   // see below
4444
4545   /* devices */
46   device_t *m_audiocpu;
46   cpu_device *m_audiocpu;
4747   UINT8       m_sound_nmi_mask;
4848   UINT8       m_sound_pa_latch;
4949   DECLARE_WRITE16_MEMBER(tnextspc_coin_counters_w);
trunk/src/mame/includes/wgp.h
r17814r17815
4040   INT32       m_banknum;
4141
4242   /* devices */
43   device_t *m_maincpu;
44   device_t *m_audiocpu;
45   device_t *m_subcpu;
43   cpu_device *m_maincpu;
44   cpu_device *m_audiocpu;
45   cpu_device *m_subcpu;
4646   device_t *m_tc0100scn;
4747   device_t *m_tc0140syt;
4848   DECLARE_READ16_MEMBER(sharedram_r);
trunk/src/mame/includes/taitoair.h
r17814r17815
4343   INT32         m_banknum;
4444
4545   /* devices */
46   device_t *m_audiocpu;
46   cpu_device *m_audiocpu;
4747   device_t *m_dsp;
4848   device_t *m_tc0080vco;
4949
trunk/src/mame/includes/aquarium.h
r17814r17815
2929   int m_aquarium_snd_ack;
3030
3131   /* devices */
32   device_t *m_audiocpu;
32   cpu_device *m_audiocpu;
3333   DECLARE_READ16_MEMBER(aquarium_coins_r);
3434   DECLARE_WRITE8_MEMBER(aquarium_snd_ack_w);
3535   DECLARE_WRITE16_MEMBER(aquarium_sound_w);
trunk/src/mame/includes/angelkds.h
r17814r17815
3434   UINT8      m_layer_ctrl;
3535
3636   /* devices */
37   device_t *m_subcpu;
37   cpu_device *m_subcpu;
3838   DECLARE_WRITE8_MEMBER(angelkds_cpu_bank_write);
3939   DECLARE_READ8_MEMBER(angelkds_input_r);
4040   DECLARE_WRITE8_MEMBER(angelkds_main_sound_w);
trunk/src/mame/includes/surpratk.h
r17814r17815
2424   int        m_videobank;
2525
2626   /* devices */
27   device_t *m_maincpu;
27   cpu_device *m_maincpu;
2828   device_t *m_k052109;
2929   device_t *m_k053244;
3030   device_t *m_k053251;
trunk/src/mame/includes/bigevglf.h
r17814r17815
4848   UINT8    m_port_select;     /* for muxed controls */
4949
5050   /* devices */
51   device_t *m_audiocpu;
51   cpu_device *m_audiocpu;
5252   device_t *m_mcu;
5353   DECLARE_WRITE8_MEMBER(beg_banking_w);
5454   DECLARE_WRITE8_MEMBER(beg_fromsound_w);
trunk/src/mame/includes/inufuku.h
r17814r17815
3333   UINT16    m_pending_command;
3434
3535   /* devices */
36   device_t *m_audiocpu;
36   cpu_device *m_audiocpu;
3737   DECLARE_WRITE16_MEMBER(inufuku_soundcommand_w);
3838   DECLARE_WRITE8_MEMBER(pending_command_clear_w);
3939   DECLARE_WRITE8_MEMBER(inufuku_soundrombank_w);
trunk/src/mame/includes/commando.h
r17814r17815
3131   UINT8 m_scroll_y[2];
3232
3333   /* devices */
34   device_t *m_audiocpu;
34   cpu_device *m_audiocpu;
3535   DECLARE_WRITE8_MEMBER(commando_videoram_w);
3636   DECLARE_WRITE8_MEMBER(commando_colorram_w);
3737   DECLARE_WRITE8_MEMBER(commando_videoram2_w);
trunk/src/mame/includes/yunsung8.h
r17814r17815
2323   int         m_toggle;
2424
2525   /* devices */
26   device_t *m_audiocpu;
26   cpu_device *m_audiocpu;
2727
2828   /* memory */
2929   UINT8      m_videoram[0x4000];
trunk/src/mame/includes/cbuster.h
r17814r17815
3030   int       m_pri;
3131
3232   /* devices */
33   device_t *m_maincpu;
34   device_t *m_audiocpu;
33   cpu_device *m_maincpu;
34   cpu_device *m_audiocpu;
3535   device_t *m_deco_tilegen1;
3636   device_t *m_deco_tilegen2;
3737   DECLARE_WRITE16_MEMBER(twocrude_control_w);
trunk/src/mame/includes/ojankohs.h
r17814r17815
3535   int       m_vclk_left;
3636
3737   /* devices */
38   device_t *m_maincpu;
38   cpu_device *m_maincpu;
3939   device_t *m_msm;
4040   DECLARE_WRITE8_MEMBER(ojankohs_rombank_w);
4141   DECLARE_WRITE8_MEMBER(ojankoy_rombank_w);
trunk/src/mame/includes/n8080.h
r17814r17815
3939   int m_inte;
4040
4141   /* devices */
42   device_t *m_maincpu;
42   cpu_device *m_maincpu;
4343   DECLARE_WRITE8_MEMBER(n8080_shift_bits_w);
4444   DECLARE_WRITE8_MEMBER(n8080_shift_data_w);
4545   DECLARE_READ8_MEMBER(n8080_shift_r);
trunk/src/mame/includes/kncljoe.h
r17814r17815
2929   UINT8      m_port2;
3030
3131   /* devices */
32   device_t *m_soundcpu;
32   cpu_device *m_soundcpu;
3333   DECLARE_WRITE8_MEMBER(sound_cmd_w);
3434   DECLARE_WRITE8_MEMBER(sound_irq_ack_w);
3535   DECLARE_WRITE8_MEMBER(kncljoe_videoram_w);
trunk/src/mame/includes/liberate.h
r17814r17815
2929   tilemap_t *m_back_tilemap;
3030   tilemap_t *m_fix_tilemap;
3131
32   device_t *m_maincpu;
33   device_t *m_audiocpu;
32   cpu_device *m_maincpu;
33   cpu_device *m_audiocpu;
3434   DECLARE_READ8_MEMBER(deco16_bank_r);
3535   DECLARE_READ8_MEMBER(deco16_io_r);
3636   DECLARE_WRITE8_MEMBER(deco16_bank_w);
trunk/src/mame/includes/cvs.h
r17814r17815
5555   UINT16     m_speech_rom_bit_address;
5656
5757   /* devices */
58   device_t *m_maincpu;
59   device_t *m_audiocpu;
58   cpu_device *m_maincpu;
59   cpu_device *m_audiocpu;
6060   device_t *m_speech;
6161   dac_device *m_dac3;
6262   device_t *m_tms;
trunk/src/mame/includes/tnzs.h
r17814r17815
5252   UINT8*    m_ROM;
5353
5454   /* devices */
55   device_t *m_audiocpu;
56   device_t *m_subcpu;
55   cpu_device *m_audiocpu;
56   cpu_device *m_subcpu;
5757   device_t *m_mcu;
5858   DECLARE_WRITE8_MEMBER(tnzsb_sound_command_w);
5959   DECLARE_WRITE8_MEMBER(jpopnics_palette_w);
trunk/src/mame/includes/cheekyms.h
r17814r17815
2424   bitmap_ind16       *m_bitmap_buffer;
2525
2626   /* devices */
27   device_t *m_maincpu;
27   cpu_device *m_maincpu;
2828   dac_device *m_dac;
2929
3030   UINT8          m_irq_mask;
trunk/src/mame/includes/warriorb.h
r17814r17815
1919   int        m_pandata[4];
2020
2121   /* devices */
22   device_t *m_maincpu;
23   device_t *m_audiocpu;
22   cpu_device *m_maincpu;
23   cpu_device *m_audiocpu;
2424   device_t *m_tc0140syt;
2525   device_t *m_tc0100scn_1;
2626   device_t *m_tc0100scn_2;
trunk/src/mame/includes/goal92.h
r17814r17815
3535   int         m_adpcm_toggle;
3636
3737   /* devices */
38   device_t *m_audiocpu;
38   cpu_device *m_audiocpu;
3939   DECLARE_WRITE16_MEMBER(goal92_sound_command_w);
4040   DECLARE_READ16_MEMBER(goal92_inputs_r);
4141   DECLARE_WRITE8_MEMBER(adpcm_data_w);
trunk/src/mame/includes/bishi.h
r17814r17815
2525   UINT16     m_cur_control2;
2626
2727   /* devices */
28   device_t *m_maincpu;
29   device_t *m_audiocpu;
28   cpu_device *m_maincpu;
29   cpu_device *m_audiocpu;
3030   device_t *m_k007232;
3131   device_t *m_k056832;
3232   device_t *m_k054338;
trunk/src/mame/includes/1942.h
r17814r17815
2525   UINT8 m_scroll[2];
2626
2727   /* devices */
28   device_t *m_audiocpu;
28   cpu_device *m_audiocpu;
2929   DECLARE_WRITE8_MEMBER(c1942_bankswitch_w);
3030   DECLARE_WRITE8_MEMBER(c1942_fgvideoram_w);
3131   DECLARE_WRITE8_MEMBER(c1942_bgvideoram_w);
trunk/src/mame/includes/fromanc2.h
r17814r17815
2525   UINT8    m_datalatch_2l;
2626
2727   /* devices */
28   device_t *m_audiocpu;
29   device_t *m_subcpu;
28   cpu_device *m_audiocpu;
29   cpu_device *m_subcpu;
3030   device_t *m_eeprom;
3131   device_t *m_left_screen;
3232   device_t *m_right_screen;
trunk/src/mame/includes/blockhl.h
r17814r17815
2424   int        m_rombank;
2525
2626   /* devices */
27   device_t *m_maincpu;
28   device_t *m_audiocpu;
27   cpu_device *m_maincpu;
28   cpu_device *m_audiocpu;
2929   device_t *m_k052109;
3030   device_t *m_k051960;
3131   DECLARE_READ8_MEMBER(bankedram_r);
trunk/src/mame/includes/bottom9.h
r17814r17815
2525   int        m_nmienable;
2626
2727   /* devices */
28   device_t *m_maincpu;
29   device_t *m_audiocpu;
28   cpu_device *m_maincpu;
29   cpu_device *m_audiocpu;
3030   device_t *m_k007232_1;
3131   device_t *m_k007232_2;
3232   device_t *m_k052109;
trunk/src/mame/includes/mainevt.h
r17814r17815
2222   UINT8      m_sound_irq_mask;
2323
2424   /* devices */
25   device_t *m_maincpu;
26   device_t *m_audiocpu;
25   cpu_device *m_maincpu;
26   cpu_device *m_audiocpu;
2727   device_t *m_upd;
2828   device_t *m_k007232;
2929   device_t *m_k052109;
trunk/src/mame/includes/40love.h
r17814r17815
5656   UINT8      m_snd_ctrl3;
5757
5858   /* devices */
59   device_t *m_audiocpu;
59   cpu_device *m_audiocpu;
6060   DECLARE_WRITE8_MEMBER(sound_command_w);
6161   DECLARE_WRITE8_MEMBER(nmi_disable_w);
6262   DECLARE_WRITE8_MEMBER(nmi_enable_w);
trunk/src/mame/includes/lasso.h
r17814r17815
3939   UINT8    m_track_enable;   /* used by wwjgtin */
4040
4141   /* devices */
42   device_t *m_maincpu;
43   device_t *m_audiocpu;
42   cpu_device *m_maincpu;
43   cpu_device *m_audiocpu;
4444   optional_device<sn76489_new_device> m_sn_1;
4545   optional_device<sn76489_new_device> m_sn_2;
4646   DECLARE_WRITE8_MEMBER(sound_command_w);
trunk/src/mame/includes/taito_h.h
r17814r17815
1919   INT32       m_banknum;
2020
2121   /* devices */
22   device_t *m_maincpu;
23   device_t *m_audiocpu;
22   cpu_device *m_maincpu;
23   cpu_device *m_audiocpu;
2424   device_t *m_tc0080vco;
2525   device_t *m_tc0220ioc;
2626   DECLARE_READ8_MEMBER(syvalion_input_bypass_r);
trunk/src/mame/includes/othunder.h
r17814r17815
3737   int        m_pan[4];
3838
3939   /* devices */
40   device_t *m_maincpu;
41   device_t *m_audiocpu;
40   cpu_device *m_maincpu;
41   cpu_device *m_audiocpu;
4242   eeprom_device *m_eeprom;
4343   device_t *m_tc0220ioc;
4444   device_t *m_tc0100scn;
trunk/src/mame/includes/ginganin.h
r17814r17815
3333#endif
3434
3535   /* devices */
36   device_t *m_audiocpu;
36   cpu_device *m_audiocpu;
3737   DECLARE_WRITE16_MEMBER(ginganin_fgram16_w);
3838   DECLARE_WRITE16_MEMBER(ginganin_txtram16_w);
3939   DECLARE_WRITE16_MEMBER(ginganin_vregs16_w);
trunk/src/mame/includes/tail2nos.h
r17814r17815
2525   int         m_video_enable;
2626
2727   /* devices */
28   device_t *m_maincpu;
29   device_t *m_audiocpu;
28   cpu_device *m_maincpu;
29   cpu_device *m_audiocpu;
3030   device_t *m_k051316;
3131   DECLARE_WRITE16_MEMBER(sound_command_w);
3232   DECLARE_WRITE16_MEMBER(tail2nos_bgvideoram_w);
trunk/src/mame/includes/slapshot.h
r17814r17815
4747   INT32      m_banknum;
4848
4949   /* devices */
50   device_t *m_maincpu;
51   device_t *m_audiocpu;
50   cpu_device *m_maincpu;
51   cpu_device *m_audiocpu;
5252   device_t *m_tc0140syt;
5353   device_t *m_tc0480scp;
5454   device_t *m_tc0360pri;
trunk/src/mame/includes/psikyo4.h
r17814r17815
3434   double         m_oldbrt2;
3535
3636   /* devices */
37   device_t *m_maincpu;
37   cpu_device *m_maincpu;
3838   DECLARE_WRITE32_MEMBER(ps4_paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w);
3939   DECLARE_WRITE32_MEMBER(ps4_bgpen_1_dword_w);
4040   DECLARE_WRITE32_MEMBER(ps4_bgpen_2_dword_w);
trunk/src/mame/includes/popper.h
r17814r17815
3333   rectangle m_tilemap_clip;
3434
3535   /* devices */
36   device_t *m_audiocpu;
36   cpu_device *m_audiocpu;
3737
3838   UINT8 m_nmi_mask;
3939   DECLARE_READ8_MEMBER(popper_input_ports_r);
trunk/src/mame/includes/ladyfrog.h
r17814r17815
3232   UINT8      m_snd_data;
3333
3434   /* devices */
35   device_t *m_audiocpu;
35   cpu_device *m_audiocpu;
3636   DECLARE_READ8_MEMBER(from_snd_r);
3737   DECLARE_WRITE8_MEMBER(to_main_w);
3838   DECLARE_WRITE8_MEMBER(sound_cpu_reset_w);
trunk/src/mame/includes/djboy.h
r17814r17815
3939   UINT8      m_beast_p3;
4040
4141   /* devices */
42   device_t *m_maincpu;
42   cpu_device *m_maincpu;
4343   device_t *m_cpu1;
4444   device_t *m_cpu2;
4545   device_t *m_pandora;
trunk/src/mame/includes/tumblep.h
r17814r17815
2020//  UINT16 *  m_paletteram;    // currently this uses generic palette handling (in decocomn.c)
2121
2222   /* devices */
23   device_t *m_maincpu;
24   device_t *m_audiocpu;
23   cpu_device *m_maincpu;
24   cpu_device *m_audiocpu;
2525   device_t *m_deco_tilegen1;
2626   DECLARE_READ16_MEMBER(tumblep_prot_r);
2727   DECLARE_WRITE16_MEMBER(tumblep_sound_w);
trunk/src/mame/includes/dogfgt.h
r17814r17815
3333   int       m_last_snd_ctrl;
3434
3535   /* devices */
36   device_t *m_subcpu;
36   cpu_device *m_subcpu;
3737   DECLARE_READ8_MEMBER(sharedram_r);
3838   DECLARE_WRITE8_MEMBER(sharedram_w);
3939   DECLARE_WRITE8_MEMBER(subirqtrigger_w);
trunk/src/mame/includes/dietgo.h
r17814r17815
2020//  UINT16 *  m_paletteram;    // currently this uses generic palette handling (in decocomn.c)
2121
2222   /* devices */
23   device_t *m_maincpu;
24   device_t *m_audiocpu;
23   cpu_device *m_maincpu;
24   cpu_device *m_audiocpu;
2525   device_t *m_deco_tilegen1;
2626   DECLARE_DRIVER_INIT(dietgo);
2727};
trunk/src/mame/includes/blockout.h
r17814r17815
2323   UINT16   m_color;
2424
2525   /* devices */
26   device_t *m_maincpu;
27   device_t *m_audiocpu;
26   cpu_device *m_maincpu;
27   cpu_device *m_audiocpu;
2828   DECLARE_WRITE16_MEMBER(blockout_sound_command_w);
2929   DECLARE_WRITE16_MEMBER(blockout_irq6_ack_w);
3030   DECLARE_WRITE16_MEMBER(blockout_irq5_ack_w);
trunk/src/mame/includes/f1gp.h
r17814r17815
4545   int       m_pending_command;
4646
4747   /* devices */
48   device_t *m_audiocpu;
48   cpu_device *m_audiocpu;
4949   device_t *m_k053936;
5050   DECLARE_READ16_MEMBER(sharedram_r);
5151   DECLARE_WRITE16_MEMBER(sharedram_w);
trunk/src/mame/includes/supbtime.h
r17814r17815
2222   /* video-related */
2323
2424   /* devices */
25   device_t *m_maincpu;
26   device_t *m_audiocpu;
25   cpu_device *m_maincpu;
26   cpu_device *m_audiocpu;
2727   device_t *m_deco_tilegen1;
2828   DECLARE_READ16_MEMBER(supbtime_controls_r);
2929   DECLARE_WRITE16_MEMBER(sound_w);
trunk/src/mame/includes/gbusters.h
r17814r17815
2323   int        m_priority;
2424
2525   /* devices */
26   device_t *m_maincpu;
27   device_t *m_audiocpu;
26   cpu_device *m_maincpu;
27   cpu_device *m_audiocpu;
2828   device_t *m_k007232;
2929   device_t *m_k052109;
3030   device_t *m_k051960;
trunk/src/mame/includes/firetrap.h
r17814r17815
4040   int           m_coin_command_pending;
4141
4242   /* devices */
43   device_t *m_maincpu;
44   device_t *m_audiocpu;
43   cpu_device *m_maincpu;
44   cpu_device *m_audiocpu;
4545   device_t *m_msm;
4646   DECLARE_WRITE8_MEMBER(firetrap_nmi_disable_w);
4747   DECLARE_WRITE8_MEMBER(firetrap_bankselect_w);
trunk/src/mame/includes/crgolf.h
r17814r17815
3535   UINT8    m_sample_count;
3636
3737   /* devices */
38   device_t *m_maincpu;
39   device_t *m_audiocpu;
38   cpu_device *m_maincpu;
39   cpu_device *m_audiocpu;
4040   DECLARE_WRITE8_MEMBER(rom_bank_select_w);
4141   DECLARE_READ8_MEMBER(switch_input_r);
4242   DECLARE_READ8_MEMBER(analog_input_r);
trunk/src/mame/includes/oneshot.h
r17814r17815
3232   int m_p2_wobble;
3333
3434   /* devices */
35   device_t *m_maincpu;
36   device_t *m_audiocpu;
35   cpu_device *m_maincpu;
36   cpu_device *m_audiocpu;
3737   DECLARE_READ16_MEMBER(oneshot_in0_word_r);
3838   DECLARE_READ16_MEMBER(oneshot_gun_x_p1_r);
3939   DECLARE_READ16_MEMBER(oneshot_gun_y_p1_r);
trunk/src/mame/includes/topspeed.h
r17814r17815
3535   INT32      m_banknum;
3636
3737   /* devices */
38   device_t *m_maincpu;
39   device_t *m_audiocpu;
40   device_t *m_subcpu;
38   cpu_device *m_maincpu;
39   cpu_device *m_audiocpu;
40   cpu_device *m_subcpu;
4141   device_t *m_pc080sn_1;
4242   device_t *m_pc080sn_2;
4343   device_t *m_tc0220ioc;
trunk/src/mame/includes/amspdwy.h
r17814r17815
2828   UINT8      m_wheel_return[2];
2929
3030   /* devices */
31   device_t *m_audiocpu;
31   cpu_device *m_audiocpu;
3232   DECLARE_READ8_MEMBER(amspdwy_wheel_0_r);
3333   DECLARE_READ8_MEMBER(amspdwy_wheel_1_r);
3434   DECLARE_WRITE8_MEMBER(amspdwy_sound_w);
trunk/src/mame/includes/bladestl.h
r17814r17815
2222   int        m_last_track[4];
2323
2424   /* devices */
25   device_t *m_audiocpu;
25   cpu_device *m_audiocpu;
2626   device_t *m_k007342;
2727   device_t *m_k007420;
2828   DECLARE_READ8_MEMBER(trackball_r);
trunk/src/mame/includes/pbaction.h
r17814r17815
3131   int        m_scroll;
3232
3333   /* devices */
34   device_t *m_maincpu;
35   device_t *m_audiocpu;
34   cpu_device *m_maincpu;
35   cpu_device *m_audiocpu;
3636
3737   UINT8      m_nmi_mask;
3838   DECLARE_WRITE8_MEMBER(pbaction_sh_command_w);
trunk/src/mame/includes/overdriv.h
r17814r17815
2222   UINT16     m_cpuB_ctrl;
2323
2424   /* devices */
25   device_t *m_maincpu;
26   device_t *m_subcpu;
27   device_t *m_audiocpu;
25   cpu_device *m_maincpu;
26   cpu_device *m_subcpu;
27   cpu_device *m_audiocpu;
2828   device_t *m_k053260_1;
2929   device_t *m_k053260_2;
3030   device_t *m_k051316_1;
trunk/src/mame/includes/thunderx.h
r17814r17815
2828   int        m_pmcbank;
2929
3030   /* devices */
31   device_t *m_maincpu;
32   device_t *m_audiocpu;
31   cpu_device *m_maincpu;
32   cpu_device *m_audiocpu;
3333   device_t *m_k007232;
3434   device_t *m_k052109;
3535   device_t *m_k051960;
trunk/src/mame/includes/xmen.h
r17814r17815
3131   UINT8       m_vblank_irq_mask;
3232
3333   /* devices */
34   device_t *m_maincpu;
35   device_t *m_audiocpu;
34   cpu_device *m_maincpu;
35   cpu_device *m_audiocpu;
3636   device_t *m_k054539;
3737   device_t *m_k052109;
3838   device_t *m_k053246;
trunk/src/mame/includes/atarifb.h
r17814r17815
5757   int m_counter_y_in2b;
5858
5959   /* devices */
60   device_t *m_maincpu;
60   cpu_device *m_maincpu;
6161   DECLARE_WRITE8_MEMBER(atarifb_out1_w);
6262   DECLARE_WRITE8_MEMBER(atarifb4_out1_w);
6363   DECLARE_WRITE8_MEMBER(abaseb_out1_w);
trunk/src/mame/includes/lethal.h
r17814r17815
1818   UINT8      m_cur_control2;
1919
2020   /* devices */
21   device_t *m_maincpu;
22   device_t *m_audiocpu;
21   cpu_device *m_maincpu;
22   cpu_device *m_audiocpu;
2323   device_t *m_k054539;
2424   device_t *m_k056832;
2525   device_t *m_k053244;
trunk/src/mame/includes/exprraid.h
r17814r17815
3030   //int          m_coin;    // used in the commented out INTERRUPT_GEN - can this be removed?
3131
3232   /* devices */
33   device_t *m_maincpu;
33   cpu_device *m_maincpu;
3434   device_t *m_slave;
3535   DECLARE_READ8_MEMBER(exprraid_protection_r);
3636   DECLARE_WRITE8_MEMBER(sound_cpu_command_w);
trunk/src/mame/includes/tumbleb.h
r17814r17815
3333   UINT16      m_tilebank;
3434
3535   /* devices */
36   device_t *m_maincpu;
37   device_t *m_audiocpu;
36   cpu_device *m_maincpu;
37   cpu_device *m_audiocpu;
3838   device_t *m_oki;
3939   UINT8 m_semicom_prot_offset;
4040   UINT16 m_protbase;
trunk/src/mame/includes/kchamp.h
r17814r17815
2929   int        m_counter;
3030
3131   /* devices */
32   device_t *m_audiocpu;
32   cpu_device *m_audiocpu;
3333   DECLARE_WRITE8_MEMBER(control_w);
3434   DECLARE_WRITE8_MEMBER(sound_reset_w);
3535   DECLARE_WRITE8_MEMBER(sound_command_w);
trunk/src/mame/includes/taito_z.h
r17814r17815
3030   UINT16      m_eep_latch;
3131
3232   /* devices */
33   device_t *m_maincpu;
34   device_t *m_audiocpu;
35   device_t *m_subcpu;
33   cpu_device *m_maincpu;
34   cpu_device *m_audiocpu;
35   cpu_device *m_subcpu;
3636   eeprom_device *m_eeprom;
3737   device_t *m_tc0480scp;
3838   device_t *m_tc0150rod;
trunk/src/mame/includes/msisaac.h
r17814r17815
4242   UINT8       m_snd_ctrl3;
4343
4444   /* devices */
45   device_t *m_audiocpu;
45   cpu_device *m_audiocpu;
4646   DECLARE_WRITE8_MEMBER(sound_command_w);
4747   DECLARE_WRITE8_MEMBER(nmi_disable_w);
4848   DECLARE_WRITE8_MEMBER(nmi_enable_w);
trunk/src/mame/includes/lockon.h
r17814r17815
6464   UINT32      m_main_inten;
6565
6666   /* devices */
67   device_t *m_maincpu;
68   device_t *m_audiocpu;
67   cpu_device *m_maincpu;
68   cpu_device *m_audiocpu;
6969   device_t *m_ground;
7070   device_t *m_object;
7171   device_t *m_f2203_1l;
trunk/src/mame/includes/rastan.h
r17814r17815
2222   int         m_adpcm_data;
2323
2424   /* devices */
25   device_t *m_maincpu;
26   device_t *m_audiocpu;
25   cpu_device *m_maincpu;
26   cpu_device *m_audiocpu;
2727   device_t *m_pc090oj;
2828   device_t *m_pc080sn;
2929   DECLARE_WRITE8_MEMBER(rastan_msm5205_address_w);
trunk/src/mame/includes/gijoe.h
r17814r17815
3030   emu_timer   *m_dmadelay_timer;
3131
3232   /* devices */
33   device_t *m_maincpu;
34   device_t *m_audiocpu;
33   cpu_device *m_maincpu;
34   cpu_device *m_audiocpu;
3535   device_t *m_k054539;
3636   device_t *m_k056832;
3737   device_t *m_k053246;
trunk/src/mame/includes/rltennis.h
r17814r17815
1111      m_data760000(0), m_data740000(0), m_dac_counter(0), m_sample_rom_offset_1(0), m_sample_rom_offset_2(0),
1212      m_offset_shift(0){ }
1313
14   device_t *m_maincpu;
14   cpu_device *m_maincpu;
1515   device_t *m_screen;
1616
1717   UINT16 m_blitter[RLT_NUM_BLITTER_REGS];
trunk/src/mame/includes/psikyosh.h
r17814r17815
4545   UINT8          m_alphatable[256];
4646
4747   /* devices */
48   device_t *m_maincpu;
48   cpu_device *m_maincpu;
4949
5050   DECLARE_WRITE32_MEMBER(psikyosh_irqctrl_w);
5151   DECLARE_WRITE32_MEMBER(paletteram32_RRRRRRRRGGGGGGGGBBBBBBBBxxxxxxxx_dword_w);
trunk/src/mame/includes/gradius3.h
r17814r17815
2525   int         m_irqBmask;
2626
2727   /* devices */
28   device_t *m_maincpu;
29   device_t *m_audiocpu;
30   device_t *m_subcpu;
28   cpu_device *m_maincpu;
29   cpu_device *m_audiocpu;
30   cpu_device *m_subcpu;
3131   device_t *m_k007232;
3232   device_t *m_k052109;
3333   device_t *m_k051960;
trunk/src/mame/includes/fromance.h
r17814r17815
5050   UINT8    m_sound_command;
5151
5252   /* devices */
53   device_t *m_subcpu;
53   cpu_device *m_subcpu;
5454   DECLARE_READ8_MEMBER(fromance_commanddata_r);
5555   DECLARE_WRITE8_MEMBER(fromance_commanddata_w);
5656   DECLARE_READ8_MEMBER(fromance_busycheck_main_r);
trunk/src/mame/includes/neogeo.h
r17814r17815
109109   int        m_fixed_layer_bank_type;
110110
111111   /* devices */
112   device_t *m_maincpu;
113   device_t *m_audiocpu;
112   cpu_device *m_maincpu;
113   cpu_device *m_audiocpu;
114114   device_t *m_upd4990a;
115115   DECLARE_WRITE8_MEMBER(audio_cpu_clear_nmi_w);
116116   DECLARE_WRITE16_MEMBER(io_control_w);
trunk/src/mame/includes/ultraman.h
r17814r17815
2121   int        m_bank2;
2222
2323   /* devices */
24   device_t *m_maincpu;
25   device_t *m_audiocpu;
24   cpu_device *m_maincpu;
25   cpu_device *m_audiocpu;
2626   device_t *m_k051316_1;
2727   device_t *m_k051316_2;
2828   device_t *m_k051316_3;
trunk/src/mame/includes/parodius.h
r17814r17815
2525   //int        m_nmi_enabled;
2626
2727   /* devices */
28   device_t *m_maincpu;
29   device_t *m_audiocpu;
28   cpu_device *m_maincpu;
29   cpu_device *m_audiocpu;
3030   device_t *m_k053260;
3131   device_t *m_k052109;
3232   device_t *m_k053245;
trunk/src/mame/includes/ladybug.h
r17814r17815
4343   UINT8      m_sraider_0x38;
4444
4545   /* devices */
46   device_t *m_maincpu;
46   cpu_device *m_maincpu;
4747   DECLARE_READ8_MEMBER(sraider_sound_low_r);
4848   DECLARE_READ8_MEMBER(sraider_sound_high_r);
4949   DECLARE_WRITE8_MEMBER(sraider_sound_low_w);
trunk/src/mame/includes/blueprnt.h
r17814r17815
2828   int     m_dipsw;
2929
3030   /* devices */
31   device_t *m_audiocpu;
31   cpu_device *m_audiocpu;
3232   DECLARE_READ8_MEMBER(blueprnt_sh_dipsw_r);
3333   DECLARE_WRITE8_MEMBER(blueprnt_sound_command_w);
3434   DECLARE_WRITE8_MEMBER(blueprnt_coin_counter_w);
trunk/src/mame/includes/rockrage.h
r17814r17815
1919   int        m_vreg;
2020
2121   /* devices */
22   device_t *m_audiocpu;
22   cpu_device *m_audiocpu;
2323   device_t *m_k007342;
2424   device_t *m_k007420;
2525   DECLARE_WRITE8_MEMBER(rockrage_bankswitch_w);
trunk/src/mame/includes/buggychl.h
r17814r17815
3636   int         m_pending_nmi;
3737
3838   /* devices */
39   device_t *m_audiocpu;
39   cpu_device *m_audiocpu;
4040   DECLARE_WRITE8_MEMBER(bankswitch_w);
4141   DECLARE_WRITE8_MEMBER(sound_command_w);
4242   DECLARE_WRITE8_MEMBER(nmi_disable_w);
trunk/src/mame/includes/gotcha.h
r17814r17815
2727   UINT16      m_scroll[4];
2828
2929   /* devices */
30   device_t *m_audiocpu;
30   cpu_device *m_audiocpu;
3131   DECLARE_WRITE16_MEMBER(gotcha_lamps_w);
3232   DECLARE_WRITE16_MEMBER(gotcha_fgvideoram_w);
3333   DECLARE_WRITE16_MEMBER(gotcha_bgvideoram_w);
trunk/src/mame/includes/taito_f2.h
r17814r17815
7171   INT32           m_oki_bank;
7272
7373   /* devices */
74   device_t *m_maincpu;
75   device_t *m_audiocpu;
74   cpu_device *m_maincpu;
75   cpu_device *m_audiocpu;
7676   optional_device<okim6295_device> m_oki;
7777   device_t *m_tc0100scn;
7878   device_t *m_tc0100scn_1;
trunk/src/mame/includes/ddragon.h
r17814r17815
5959#endif
6060
6161   /* devices */
62   device_t *m_maincpu;
62   cpu_device *m_maincpu;
6363   device_t *m_snd_cpu;
6464   device_t *m_sub_cpu;
6565   device_t *m_adpcm_1;
trunk/src/mame/includes/asterix.h
r17814r17815
2626   UINT16      m_prot[2];
2727
2828   /* devices */
29   device_t *m_maincpu;
30   device_t *m_audiocpu;
29   cpu_device *m_maincpu;
30   cpu_device *m_audiocpu;
3131   device_t *m_k053260;
3232   device_t *m_k056832;
3333   device_t *m_k053244;
trunk/src/mame/includes/homedata.h
r17814r17815
3636   int      m_from_cpu;
3737
3838   /* device */
39   device_t *m_maincpu;
40   device_t *m_audiocpu;
39   cpu_device *m_maincpu;
40   cpu_device *m_audiocpu;
4141   dac_device *m_dac;
4242   device_t *m_ym;
4343   sn76489a_new_device *m_sn;
trunk/src/mame/includes/mugsmash.h
r17814r17815
1919   tilemap_t *m_tilemap1;
2020   tilemap_t *m_tilemap2;
2121
22   device_t *m_maincpu;
23   device_t *m_audiocpu;
22   cpu_device *m_maincpu;
23   cpu_device *m_audiocpu;
2424   DECLARE_WRITE16_MEMBER(mugsmash_reg2_w);
2525   DECLARE_READ16_MEMBER(mugsmash_input_ports_r);
2626   DECLARE_WRITE16_MEMBER(mugsmash_videoram1_w);
trunk/src/mame/includes/macrossp.h
r17814r17815
4949   INT32          m_old_fade;
5050
5151   /* devices */
52   device_t *m_maincpu;
53   device_t *m_audiocpu;
52   cpu_device *m_maincpu;
53   cpu_device *m_audiocpu;
5454   DECLARE_WRITE32_MEMBER(paletteram32_macrossp_w);
5555   DECLARE_READ32_MEMBER(macrossp_soundstatus_r);
5656   DECLARE_WRITE32_MEMBER(macrossp_soundcmd_w);
trunk/src/mame/includes/moo.h
r17814r17815
2929   UINT16      m_cur_control2;
3030
3131   /* devices */
32   device_t *m_maincpu;
33   device_t *m_audiocpu;
32   cpu_device *m_maincpu;
33   cpu_device *m_audiocpu;
3434   device_t *m_k054539;
3535   device_t *m_k053246;
3636   device_t *m_k053251;
trunk/src/mame/includes/taito_l.h
r17814r17815
5252   const char *m_portf1_tag;
5353
5454   /* devices */
55   device_t *m_maincpu;
56   device_t *m_audiocpu;
55   cpu_device *m_maincpu;
56   cpu_device *m_audiocpu;
5757
5858   /* memory buffers */
5959   UINT8         m_rambanks[0x1000 * 12];
trunk/src/mame/includes/vendetta.h
r17814r17815
2424   offs_t     m_video_banking_base;
2525
2626   /* devices */
27   device_t *m_maincpu;
28   device_t *m_audiocpu;
27   cpu_device *m_maincpu;
28   cpu_device *m_audiocpu;
2929   device_t *m_k053260;
3030   device_t *m_k052109;
3131   device_t *m_k053246;
trunk/src/mame/includes/fcombat.h
r17814r17815
4848   int        m_ty;
4949
5050   /* devices */
51   device_t *m_maincpu;
51   cpu_device *m_maincpu;
5252   DECLARE_READ8_MEMBER(fcombat_protection_r);
5353   DECLARE_READ8_MEMBER(fcombat_port01_r);
5454   DECLARE_WRITE8_MEMBER(e900_w);
trunk/src/mame/includes/marineb.h
r17814r17815
2121   UINT8     m_marineb_active_low_flipscreen;
2222
2323   /* devices */
24   device_t *m_maincpu;
25   device_t *m_audiocpu;
24   cpu_device *m_maincpu;
25   cpu_device *m_audiocpu;
2626
2727   UINT8     m_irq_mask;
2828   DECLARE_WRITE8_MEMBER(irq_mask_w);
trunk/src/mame/includes/pktgaldx.h
r17814r17815
2525   optional_shared_ptr<UINT16> m_pktgaldb_sprites;
2626
2727   /* devices */
28   device_t *m_maincpu;
28   cpu_device *m_maincpu;
2929   device_t *m_deco_tilegen1;
3030   DECLARE_READ16_MEMBER(pckgaldx_unknown_r);
3131   DECLARE_READ16_MEMBER(pckgaldx_protection_r);
trunk/src/mame/includes/fuukifg2.h
r17814r17815
2626   emu_timer   *m_raster_interrupt_timer;
2727
2828   /* devices */
29   device_t *m_maincpu;
30   device_t *m_audiocpu;
29   cpu_device *m_maincpu;
30   cpu_device *m_audiocpu;
3131   DECLARE_WRITE16_MEMBER(fuuki16_vregs_w);
3232   DECLARE_WRITE16_MEMBER(fuuki16_sound_command_w);
3333   DECLARE_WRITE8_MEMBER(fuuki16_sound_rombank_w);
trunk/src/mame/includes/circus.h
r17814r17815
1717   int m_clown_z;
1818
1919   /* devices */
20   device_t *m_maincpu;
20   cpu_device *m_maincpu;
2121   samples_device *m_samples;
2222   device_t *m_discrete;
2323
trunk/src/mame/includes/champbas.h
r17814r17815
3131   int            m_watchdog_count;
3232
3333   /* devices */
34   device_t *m_maincpu;
35   device_t *m_audiocpu;
34   cpu_device *m_maincpu;
35   cpu_device *m_audiocpu;
3636   device_t *m_mcu;
3737
3838   UINT8          m_irq_mask;
trunk/src/mame/includes/ninjaw.h
r17814r17815
2020   int        m_pandata[4];
2121
2222   /* devices */
23   device_t *m_maincpu;
24   device_t *m_audiocpu;
25   device_t *m_subcpu;
23   cpu_device *m_maincpu;
24   cpu_device *m_audiocpu;
25   cpu_device *m_subcpu;
2626   device_t *m_tc0140syt;
2727   device_t *m_tc0100scn_1;
2828   device_t *m_tc0100scn_2;
trunk/src/mame/includes/matmania.h
r17814r17815
4848   int             m_main_sent;
4949
5050   /* devices */
51   device_t *m_maincpu;
52   device_t *m_audiocpu;
51   cpu_device *m_maincpu;
52   cpu_device *m_audiocpu;
5353   device_t *m_mcu;
5454   DECLARE_WRITE8_MEMBER(matmania_sh_command_w);
5555   DECLARE_WRITE8_MEMBER(maniach_sh_command_w);
trunk/src/mame/includes/airbustr.h
r17814r17815
4141   /* devices */
4242   device_t *m_master;
4343   device_t *m_slave;
44   device_t *m_audiocpu;
44   cpu_device *m_audiocpu;
4545   device_t *m_pandora;
4646   DECLARE_READ8_MEMBER(devram_r);
4747   DECLARE_WRITE8_MEMBER(master_nmi_trigger_w);
trunk/src/mame/includes/dcheese.h
r17814r17815
2727   UINT8    m_sound_msb_latch;
2828
2929   /* devices */
30   device_t *m_maincpu;
31   device_t *m_audiocpu;
30   cpu_device *m_maincpu;
31   cpu_device *m_audiocpu;
3232   device_t *m_bsmt;
3333   DECLARE_WRITE16_MEMBER(eeprom_control_w);
3434   DECLARE_WRITE16_MEMBER(sound_command_w);
trunk/src/mame/includes/chqflag.h
r17814r17815
2626   int        m_wheel;
2727
2828   /* devices */
29   device_t *m_maincpu;
30   device_t *m_audiocpu;
29   cpu_device *m_maincpu;
30   cpu_device *m_audiocpu;
3131   device_t *m_k007232_1;
3232   device_t *m_k007232_2;
3333   device_t *m_k051960;
trunk/src/mame/includes/bwing.h
r17814r17815
4848   UINT8 *m_bwp123_membase[3];
4949
5050   /* device */
51   device_t *m_maincpu;
52   device_t *m_subcpu;
53   device_t *m_audiocpu;
51   cpu_device *m_maincpu;
52   cpu_device *m_subcpu;
53   cpu_device *m_audiocpu;
5454   DECLARE_WRITE8_MEMBER(bwp12_sharedram1_w);
5555   DECLARE_WRITE8_MEMBER(bwp3_u8F_w);
5656   DECLARE_WRITE8_MEMBER(bwp3_nmimask_w);
trunk/src/mame/includes/sf.h
r17814r17815
2626   UINT16      m_fgscroll;
2727
2828   /* devices */
29   device_t *m_maincpu;
30   device_t *m_audiocpu;
29   cpu_device *m_maincpu;
30   cpu_device *m_audiocpu;
3131   DECLARE_READ16_MEMBER(dummy_r);
3232   DECLARE_WRITE16_MEMBER(sf_coin_w);
3333   DECLARE_WRITE16_MEMBER(soundcmd_w);
trunk/src/mame/includes/lsasquad.h
r17814r17815
3333   UINT8 m_ddr_b;
3434
3535   /* devices */
36   device_t *m_maincpu;
37   device_t *m_audiocpu;
36   cpu_device *m_maincpu;
37   cpu_device *m_audiocpu;
3838   device_t *m_mcu;
3939   DECLARE_WRITE8_MEMBER(lsasquad_bankswitch_w);
4040   DECLARE_WRITE8_MEMBER(lsasquad_sh_nmi_disable_w);
trunk/src/mame/includes/cave.h
r17814r17815
110110   int          m_hopper;
111111
112112   /* devices */
113   device_t *m_maincpu;
114   device_t *m_audiocpu;
113   cpu_device *m_maincpu;
114   cpu_device *m_audiocpu;
115115   required_device<timer_device> m_int_timer;
116116   int m_rasflag;
117117   int m_old_rasflag;
trunk/src/mame/includes/brkthru.h
r17814r17815
2727   //UINT8 *m_brkthru_nmi_enable; /* needs to be tracked down */
2828
2929   /* devices */
30   device_t *m_maincpu;
31   device_t *m_audiocpu;
30   cpu_device *m_maincpu;
31   cpu_device *m_audiocpu;
3232
3333   UINT8   m_nmi_mask;
3434   DECLARE_WRITE8_MEMBER(brkthru_1803_w);
trunk/src/mame/includes/fuukifg3.h
r17814r17815
4040   UINT8       m_shared_ram[16];
4141
4242   /* devices */
43   device_t *m_maincpu;
44   device_t *m_audiocpu;
43   cpu_device *m_maincpu;
44   cpu_device *m_audiocpu;
4545   DECLARE_WRITE32_MEMBER(paletteram32_xRRRRRGGGGGBBBBB_dword_w);
4646   DECLARE_READ32_MEMBER(snd_020_r);
4747   DECLARE_WRITE32_MEMBER(snd_020_w);
trunk/src/mame/includes/dec8.h
r17814r17815
1010      m_bg_data(*this, "bg_data"){ }
1111
1212   /* devices */
13   device_t *m_maincpu;
14   device_t *m_subcpu;
15   device_t *m_audiocpu;
13   cpu_device *m_maincpu;
14   cpu_device *m_subcpu;
15   cpu_device *m_audiocpu;
1616   device_t *m_mcu;
1717   required_device<buffered_spriteram8_device> m_spriteram;
1818
trunk/src/mame/includes/battlane.h
r17814r17815
2323   int         m_cpu_control;   /* CPU interrupt control register */
2424
2525   /* devices */
26   device_t *m_maincpu;
27   device_t *m_subcpu;
26   cpu_device *m_maincpu;
27   cpu_device *m_subcpu;
2828   DECLARE_WRITE8_MEMBER(battlane_cpu_command_w);
2929   DECLARE_WRITE8_MEMBER(battlane_palette_w);
3030   DECLARE_WRITE8_MEMBER(battlane_scrollx_w);
trunk/src/mame/includes/crimfght.h
r17814r17815
1818   int        m_sprite_colorbase;
1919
2020   /* devices */
21   device_t *m_maincpu;
22   device_t *m_audiocpu;
21   cpu_device *m_maincpu;
22   cpu_device *m_audiocpu;
2323   device_t *m_k007232;
2424   device_t *m_k052109;
2525   device_t *m_k051960;
trunk/src/mame/includes/asuka.h
r17814r17815
3030   int         m_adpcm_data;
3131
3232   /* devices */
33   device_t *m_maincpu;
34   device_t *m_audiocpu;
33   cpu_device *m_maincpu;
34   cpu_device *m_audiocpu;
3535   device_t *m_pc090oj;
3636   device_t *m_tc0100scn;
3737   DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
trunk/src/mame/includes/rollerg.h
r17814r17815
2121   int        m_readzoomroms;
2222
2323   /* devices */
24   device_t *m_maincpu;
25   device_t *m_audiocpu;
24   cpu_device *m_maincpu;
25   cpu_device *m_audiocpu;
2626   device_t *m_k053260;
2727   device_t *m_k053244;
2828   device_t *m_k051316;
trunk/src/mame/includes/exerion.h
r17814r17815
4646   UINT8 m_portb;
4747
4848   /* devices */
49   device_t *m_maincpu;
49   cpu_device *m_maincpu;
5050   DECLARE_READ8_MEMBER(exerion_protection_r);
5151   DECLARE_WRITE8_MEMBER(exerion_videoreg_w);
5252   DECLARE_WRITE8_MEMBER(exerion_video_latch_w);
trunk/src/mame/includes/crospang.h
r17814r17815
2525   int       m_bestri_tilebank;
2626
2727   /* devices */
28   device_t *m_audiocpu;
28   cpu_device *m_audiocpu;
2929   DECLARE_WRITE16_MEMBER(crospang_soundlatch_w);
3030   DECLARE_WRITE16_MEMBER(bestri_tilebank_w);
3131   DECLARE_WRITE16_MEMBER(bestri_bg_scrolly_w);
trunk/src/mame/includes/ajax.h
r17814r17815
1818   int        m_firq_enable;
1919
2020   /* devices */
21   device_t *m_maincpu;
22   device_t *m_audiocpu;
23   device_t *m_subcpu;
21   cpu_device *m_maincpu;
22   cpu_device *m_audiocpu;
23   cpu_device *m_subcpu;
2424   device_t *m_k007232_1;
2525   device_t *m_k007232_2;
2626   device_t *m_k052109;
trunk/src/mame/includes/funybubl.h
r17814r17815
1111   required_shared_ptr<UINT8> m_paletteram;
1212
1313   /* devices */
14   device_t *m_audiocpu;
14   cpu_device *m_audiocpu;
1515
1616   /* memory */
1717   UINT8      m_banked_vram[0x2000];
trunk/src/mame/drivers/bfcobra.c
r17814r17815
740740   } while (blitter.command  & CMD_RUN);
741741
742742   /* Burn Z80 cycles while blitter is in operation */
743   device_spin_until_time(&space->device(),  attotime::from_nsec( (1000000000 / Z80_XTAL)*cycles_used * 2 ) );
743   space->device().execute().spin_until_time(attotime::from_nsec( (1000000000 / Z80_XTAL)*cycles_used * 2 ) );
744744}
745745
746746
trunk/src/mame/drivers/nycaptor.c
r17814r17815
202202
203203WRITE8_MEMBER(nycaptor_state::sub_cpu_halt_w)
204204{
205   device_set_input_line(m_subcpu, INPUT_LINE_HALT, (data) ? ASSERT_LINE : CLEAR_LINE);
205   m_subcpu->set_input_line(INPUT_LINE_HALT, (data) ? ASSERT_LINE : CLEAR_LINE);
206206}
207207
208208READ8_MEMBER(nycaptor_state::from_snd_r)
r17814r17815
249249
250250WRITE8_MEMBER(nycaptor_state::sound_cpu_reset_w)
251251{
252   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE);
252   m_audiocpu->set_input_line(INPUT_LINE_RESET, (data&1 )? ASSERT_LINE : CLEAR_LINE);
253253}
254254
255255
r17814r17815
275275{
276276   nycaptor_state *state = machine.driver_data<nycaptor_state>();
277277   if (state->m_sound_nmi_enable)
278      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
278      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
279279   else
280280      state->m_pending_nmi = 1;
281281}
r17814r17815
297297
298298   if (m_pending_nmi)
299299   {
300      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
300      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
301301      m_pending_nmi = 0;
302302   }
303303}
r17814r17815
767767{
768768   nycaptor_state *state = machine.driver_data<nycaptor_state>();
769769
770   state->m_maincpu = machine.device("maincpu");
771   state->m_audiocpu = machine.device("audiocpu");
772   state->m_subcpu = machine.device("sub");
770   state->m_maincpu = machine.device<cpu_device>("maincpu");
771   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
772   state->m_subcpu = machine.device<cpu_device>("sub");
773773   state->m_mcu = machine.device("mcu");
774774
775775   state->save_item(NAME(state->m_generic_control_reg));
trunk/src/mame/drivers/mitchell.c
r17814r17815
394394WRITE8_MEMBER(mitchell_state::mstworld_sound_w)
395395{
396396   soundlatch_byte_w(space, 0, data);
397   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
397   m_audiocpu->set_input_line(0, HOLD_LINE);
398398}
399399
400400static ADDRESS_MAP_START( mstworld_io_map, AS_IO, 8, mitchell_state )
r17814r17815
11051105
11061106   if (scanline == 240 || scanline == 0)
11071107   {
1108      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
1108      state->m_maincpu->set_input_line(0, HOLD_LINE);
11091109
11101110      state->m_irq_source = (scanline == 240);
11111111   }
r17814r17815
12111211   state->m_sample_buffer >>= 4;
12121212   state->m_sample_select ^= 1;
12131213   if(state->m_sample_select == 0)
1214      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
1214      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
12151215}
12161216
12171217
trunk/src/mame/drivers/dynduke.c
r17814r17815
265265
266266static INTERRUPT_GEN( dynduke_interrupt )
267267{
268   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4);   // VBL
268   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xc8/4);   // VBL
269269}
270270
271271/* Machine Driver */
trunk/src/mame/drivers/blktiger.c
r17814r17815
3333
3434WRITE8_MEMBER(blktiger_state::blktiger_to_mcu_w)
3535{
36   device_set_input_line(m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
36   m_mcu->execute().set_input_line(MCS51_INT1_LINE, ASSERT_LINE);
3737   m_z80_latch = data;
3838}
3939
4040READ8_MEMBER(blktiger_state::blktiger_from_main_r)
4141{
42   device_set_input_line(m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
42   m_mcu->execute().set_input_line(MCS51_INT1_LINE, CLEAR_LINE);
4343   //printf("%02x read\n",latch);
4444   return m_z80_latch;
4545}
r17814r17815
262262static void irqhandler( device_t *device, int irq )
263263{
264264   blktiger_state *state = device->machine().driver_data<blktiger_state>();
265   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
265   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
266266}
267267
268268static const ym2203_interface ym2203_config =
r17814r17815
279279{
280280   blktiger_state *state = machine.driver_data<blktiger_state>();
281281
282   state->m_audiocpu = machine.device("audiocpu");
282   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
283283   state->m_mcu = machine.device("mcu");
284284
285285   /* configure bankswitching */
trunk/src/mame/drivers/mgolf.c
r17814r17815
2727   attotime m_time_released;
2828
2929   /* devices */
30   device_t *m_maincpu;
30   cpu_device *m_maincpu;
3131   DECLARE_WRITE8_MEMBER(mgolf_vram_w);
3232   DECLARE_READ8_MEMBER(mgolf_wram_r);
3333   DECLARE_READ8_MEMBER(mgolf_dial_r);
r17814r17815
100100         state->m_time_released = machine.time();
101101
102102         if (!state->m_mask)
103            device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
103            state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
104104      }
105105      else
106106         state->m_time_pushed = machine.time();
r17814r17815
306306{
307307   mgolf_state *state = machine.driver_data<mgolf_state>();
308308
309   state->m_maincpu = machine.device("maincpu");
309   state->m_maincpu = machine.device<cpu_device>("maincpu");
310310
311311   state->save_item(NAME(state->m_prev));
312312   state->save_item(NAME(state->m_mask));
trunk/src/mame/drivers/deco_mlc.c
r17814r17815
724724   UINT32 a=m_mlc_ram[0x89a0/4];
725725   UINT32 p=space.device().safe_pc();
726726
727   if ((p==0x3234 || p==0x32dc) && (a&1)) device_spin_until_interrupt(&space.device());
727   if ((p==0x3234 || p==0x32dc) && (a&1)) space.device().execute().spin_until_interrupt();
728728
729729   return a;
730730}
trunk/src/mame/drivers/pasha2.c
r17814r17815
477477{
478478
479479   if(space.device().safe_pc() == 0x8302)
480      device_spin_until_interrupt(&space.device());
480      space.device().execute().spin_until_interrupt();
481481
482482   return m_wram[(0x95744 / 2) + offset];
483483}
trunk/src/mame/drivers/bublbobl.c
r17814r17815
699699static void irqhandler(device_t *device, int irq)
700700{
701701   bublbobl_state *state = device->machine().driver_data<bublbobl_state>();
702   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
702   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
703703}
704704
705705static const ym2203_interface ym2203_config =
r17814r17815
724724{
725725   bublbobl_state *state = machine.driver_data<bublbobl_state>();
726726
727   state->m_maincpu = machine.device("maincpu");
727   state->m_maincpu = machine.device<cpu_device>("maincpu");
728728   state->m_mcu = machine.device("mcu");
729   state->m_audiocpu = machine.device("audiocpu");
729   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
730730   state->m_slave = machine.device("slave");
731731
732732   state->save_item(NAME(state->m_sound_nmi_enable));
trunk/src/mame/drivers/skyfox.c
r17814r17815
8484
8585INPUT_CHANGED_MEMBER(skyfox_state::coin_inserted)
8686{
87   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
87   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
8888}
8989
9090static INPUT_PORTS_START( skyfox )
r17814r17815
223223{
224224   skyfox_state *state = machine.driver_data<skyfox_state>();
225225
226   state->m_maincpu = machine.device("maincpu");
226   state->m_maincpu = machine.device<cpu_device>("maincpu");
227227
228228   state->save_item(NAME(state->m_bg_pos));
229229   state->save_item(NAME(state->m_bg_ctrl));
trunk/src/mame/drivers/fgoal.c
r17814r17815
7575   int scanline;
7676   int coin = (state->ioport("IN1")->read() & 2);
7777
78   device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
78   state->m_maincpu->set_input_line(0, ASSERT_LINE);
7979
8080   if (!coin && state->m_prev_coin)
81      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
81      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
8282
8383   state->m_prev_coin = coin;
8484
r17814r17815
113113
114114READ8_MEMBER(fgoal_state::fgoal_nmi_reset_r)
115115{
116   device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
116   m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
117117
118118   return 0;
119119}
r17814r17815
121121
122122READ8_MEMBER(fgoal_state::fgoal_irq_reset_r)
123123{
124   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
124   m_maincpu->set_input_line(0, CLEAR_LINE);
125125
126126   return 0;
127127}
r17814r17815
332332{
333333   fgoal_state *state = machine.driver_data<fgoal_state>();
334334
335   state->m_maincpu = machine.device("maincpu");
335   state->m_maincpu = machine.device<cpu_device>("maincpu");
336336   state->m_mb14241 = machine.device("mb14241");
337337
338338   state->save_item(NAME(state->m_xpos));
trunk/src/mame/drivers/magicard.c
r17814r17815
709709static INTERRUPT_GEN( magicard_irq )
710710{
711711   if(device->machine().input().code_pressed(KEYCODE_Z)) //vblank?
712      device_set_input_line_and_vector(device, 1, HOLD_LINE,0xe4/4);
712      device->execute().set_input_line_and_vector(1, HOLD_LINE,0xe4/4);
713713   if(device->machine().input().code_pressed(KEYCODE_X)) //uart irq
714      device_set_input_line_and_vector(device, 1, HOLD_LINE,0xf0/4);
714      device->execute().set_input_line_and_vector(1, HOLD_LINE,0xf0/4);
715715}
716716
717717static MACHINE_CONFIG_START( magicard, magicard_state )
trunk/src/mame/drivers/yiear.c
r17814r17815
126126   yiear_state *state = device->machine().driver_data<yiear_state>();
127127
128128   if (state->m_yiear_irq_enable)
129      device_set_input_line(device, 0, HOLD_LINE);
129      device->execute().set_input_line(0, HOLD_LINE);
130130}
131131
132132
r17814r17815
135135   yiear_state *state = device->machine().driver_data<yiear_state>();
136136
137137   if (state->m_yiear_nmi_enable)
138      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
138      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
139139}
140140
141141
trunk/src/mame/drivers/snowbros.c
r17814r17815
126126   int scanline = param;
127127
128128   if(scanline == 240)
129      device_set_input_line(state->m_maincpu, 2, ASSERT_LINE);
129      state->m_maincpu->set_input_line(2, ASSERT_LINE);
130130
131131   if(scanline == 128)
132      device_set_input_line(state->m_maincpu, 3, ASSERT_LINE);
132      state->m_maincpu->set_input_line(3, ASSERT_LINE);
133133
134134   if(scanline == 32)
135      device_set_input_line(state->m_maincpu, 4, ASSERT_LINE);
135      state->m_maincpu->set_input_line(4, ASSERT_LINE);
136136}
137137
138138static TIMER_DEVICE_CALLBACK( snowbros3_irq )
r17814r17815
143143   int scanline = param;
144144
145145   if(scanline == 240)
146      device_set_input_line(state->m_maincpu, 2, ASSERT_LINE);
146      state->m_maincpu->set_input_line(2, ASSERT_LINE);
147147
148148   if(scanline == 128)
149      device_set_input_line(state->m_maincpu, 3, ASSERT_LINE);
149      state->m_maincpu->set_input_line(3, ASSERT_LINE);
150150
151151   if(scanline == 32)
152      device_set_input_line(state->m_maincpu, 4, ASSERT_LINE);
152      state->m_maincpu->set_input_line(4, ASSERT_LINE);
153153
154154   if (state->m_sb3_music_is_playing)
155155   {
trunk/src/mame/drivers/sonson.c
r17814r17815
6161   if (m_last_irq == 0 && data == 1)
6262   {
6363      /* setting bit 0 low then high triggers IRQ on the sound CPU */
64      device_set_input_line(m_audiocpu, M6809_FIRQ_LINE, HOLD_LINE);
64      m_audiocpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
6565   }
6666
6767   m_last_irq = data;
r17814r17815
229229{
230230   sonson_state *state = machine.driver_data<sonson_state>();
231231
232   state->m_audiocpu = machine.device("audiocpu");
232   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
233233
234234   state->save_item(NAME(state->m_last_irq));
235235}
trunk/src/mame/drivers/hcastle.c
r17814r17815
2424
2525WRITE8_MEMBER(hcastle_state::hcastle_soundirq_w)
2626{
27   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
27   m_audiocpu->set_input_line(0, HOLD_LINE);
2828}
2929
3030WRITE8_MEMBER(hcastle_state::hcastle_coin_w)
r17814r17815
184184
185185   state->membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
186186
187   state->m_audiocpu = machine.device("audiocpu");
187   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
188188   state->m_k007121_1 = machine.device("k007121_1");
189189   state->m_k007121_2 = machine.device("k007121_2");
190190
trunk/src/mame/drivers/cntsteer.c
r17814r17815
6363   int      m_nmimask;   // zerotrgt only
6464
6565   /* devices */
66   device_t *m_maincpu;
67   device_t *m_audiocpu;
68   device_t *m_subcpu;
66   cpu_device *m_maincpu;
67   cpu_device *m_audiocpu;
68   cpu_device *m_subcpu;
6969   DECLARE_WRITE8_MEMBER(zerotrgt_vregs_w);
7070   DECLARE_WRITE8_MEMBER(cntsteer_vregs_w);
7171   DECLARE_WRITE8_MEMBER(cntsteer_foreground_vram_w);
r17814r17815
460460
461461WRITE8_MEMBER(cntsteer_state::gekitsui_sub_irq_ack)
462462{
463   device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
463   m_subcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
464464}
465465
466466WRITE8_MEMBER(cntsteer_state::cntsteer_sound_w)
467467{
468468   soundlatch_byte_w(space, 0, data);
469   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
469   m_audiocpu->set_input_line(0, HOLD_LINE);
470470}
471471
472472WRITE8_MEMBER(cntsteer_state::zerotrgt_ctrl_w)
473473{
474474   /*TODO: check this.*/
475475   logerror("CTRL: %04x: %04x: %04x\n", space.device().safe_pc(), offset, data);
476//  if (offset == 0) device_set_input_line(m_subcpu, INPUT_LINE_RESET, ASSERT_LINE);
476//  if (offset == 0) m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
477477
478478   // Wrong - bits 0 & 1 used on this
479   if (offset == 1) device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
480//  if (offset == 2) device_set_input_line(m_subcpu, INPUT_LINE_RESET, CLEAR_LINE);
479   if (offset == 1) m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
480//  if (offset == 2) m_subcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
481481}
482482
483483WRITE8_MEMBER(cntsteer_state::cntsteer_sub_irq_w)
484484{
485   device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
485   m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
486486//  printf("%02x IRQ\n", data);
487487}
488488
489489WRITE8_MEMBER(cntsteer_state::cntsteer_sub_nmi_w)
490490{
491491//  if (data)
492//  device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
492//  m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
493493//  popmessage("%02x", data);
494494}
495495
496496WRITE8_MEMBER(cntsteer_state::cntsteer_main_irq_w)
497497{
498   device_set_input_line(m_maincpu, M6809_IRQ_LINE, HOLD_LINE);
498   m_maincpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
499499}
500500
501501/* Convert weird input handling with MAME standards.*/
r17814r17815
594594{
595595   cntsteer_state *state = device->machine().driver_data<cntsteer_state>();
596596   if (!state->m_nmimask)
597      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
597      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
598598}
599599
600600static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cntsteer_state )
r17814r17815
681681
682682INPUT_CHANGED_MEMBER(cntsteer_state::coin_inserted)
683683{
684   device_set_input_line(m_subcpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
684   m_subcpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
685685}
686686
687687static INPUT_PORTS_START( cntsteer )
r17814r17815
815815{
816816   cntsteer_state *state = machine.driver_data<cntsteer_state>();
817817
818   state->m_maincpu = machine.device("maincpu");
819   state->m_audiocpu = machine.device("audiocpu");
820   state->m_subcpu = machine.device("subcpu");
818   state->m_maincpu = machine.device<cpu_device>("maincpu");
819   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
820   state->m_subcpu = machine.device<cpu_device>("subcpu");
821821
822822   state->save_item(NAME(state->m_flipscreen));
823823   state->save_item(NAME(state->m_bg_bank));
trunk/src/mame/drivers/csplayh5.c
r17814r17815
602602   int scanline = param;
603603
604604   if(scanline == 212*2)
605      device_set_input_line_and_vector(state->m_maincpu, 1, HOLD_LINE,0x100/4);
605      state->m_maincpu->set_input_line_and_vector(1, HOLD_LINE,0x100/4);
606606
607607   if((scanline % 2) == 0)
608608   {
trunk/src/mame/drivers/bking.c
r17814r17815
4444
4545   soundlatch_byte_w(space, offset, code);
4646   if (m_sound_nmi_enable)
47      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
47      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
4848}
4949
5050WRITE8_MEMBER(bking_state::bking3_addr_l_w)
r17814r17815
392392{
393393   bking_state *state = machine.driver_data<bking_state>();
394394
395   state->m_audiocpu = machine.device("audiocpu");
395   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
396396
397397   /* video */
398398   state->save_item(NAME(state->m_pc3259_output));
trunk/src/mame/drivers/dblewing.c
r17814r17815
7474   UINT8 m_sound_irq;
7575
7676   /* devices */
77   device_t *m_maincpu;
78   device_t *m_audiocpu;
77   cpu_device *m_maincpu;
78   cpu_device *m_audiocpu;
7979   device_t *m_deco_tilegen1;
8080   DECLARE_READ16_MEMBER(dblewing_prot_r);
8181   DECLARE_WRITE16_MEMBER(dblewing_prot_w);
r17814r17815
245245      case 0x380: // sound write
246246         soundlatch_byte_w(space, 0, data & 0xff);
247247         m_sound_irq |= 0x02;
248         device_set_input_line(m_audiocpu, 0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
248         m_audiocpu->set_input_line(0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
249249         return;
250250      case 0x384:
251251         m_384_data = data;
r17814r17815
341341
342342   /* bit 1 of dblewing_sound_irq specifies IRQ command writes */
343343   m_sound_irq &= ~0x02;
344   device_set_input_line(m_audiocpu, 0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
344   m_audiocpu->set_input_line(0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
345345   return m_sound_irq;
346346}
347347
r17814r17815
536536      driver_state->m_sound_irq |= 0x01;
537537   else
538538      driver_state->m_sound_irq &= ~0x01;
539   device_set_input_line(driver_state->m_audiocpu, 0, (driver_state->m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
539   driver_state->m_audiocpu->set_input_line(0, (driver_state->m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
540540}
541541
542542static const ym2151_interface ym2151_config =
r17814r17815
565565{
566566   dblewing_state *state = machine.driver_data<dblewing_state>();
567567
568   state->m_maincpu = machine.device("maincpu");
569   state->m_audiocpu = machine.device("audiocpu");
568   state->m_maincpu = machine.device<cpu_device>("maincpu");
569   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
570570   state->m_deco_tilegen1 = machine.device("tilegen1");
571571
572572   state->save_item(NAME(state->m_008_data));
trunk/src/mame/drivers/labyrunr.c
r17814r17815
2020{
2121   labyrunr_state *state = device->machine().driver_data<labyrunr_state>();
2222   if (k007121_ctrlram_r(state->m_k007121, 7) & 0x02)
23      device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
23      device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
2424}
2525
2626static INTERRUPT_GEN( labyrunr_timer_interrupt )
2727{
2828   labyrunr_state *state = device->machine().driver_data<labyrunr_state>();
2929   if (k007121_ctrlram_r(state->m_k007121, 7) & 0x01)
30      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
30      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3131}
3232
3333
trunk/src/mame/drivers/taito_o.c
r17814r17815
218218   int scanline = param;
219219
220220   if(scanline == 448)
221      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
221      state->m_maincpu->set_input_line(4, HOLD_LINE);
222222
223223   if(scanline == 0)
224      device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
224      state->m_maincpu->set_input_line(5, HOLD_LINE);
225225}
226226
227227static const ym2203_interface ym2203_config =
r17814r17815
246246{
247247   taitoo_state *state = machine.driver_data<taitoo_state>();
248248
249   state->m_maincpu = machine.device("maincpu");
249   state->m_maincpu = machine.device<cpu_device>("maincpu");
250250   state->m_tc0080vco = machine.device("tc0080vco");
251251}
252252
trunk/src/mame/drivers/thief.c
r17814r17815
3737{
3838   /* SLAM switch causes an NMI if it's pressed */
3939   if( (device->machine().root_device().ioport("P2")->read() & 0x10) == 0 )
40      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
40      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
4141   else
42      device_set_input_line(device, 0, HOLD_LINE);
42      device->execute().set_input_line(0, HOLD_LINE);
4343}
4444
4545/**********************************************************/
trunk/src/mame/drivers/pipedrm.c
r17814r17815
219219   /* sound commands. It's possible the NMI isn't really hooked up on the YM2608 */
220220   /* sound board. */
221221   if (param & 0x100)
222      device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, ASSERT_LINE);
222      state->m_subcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
223223}
224224
225225
r17814r17815
239239{
240240   fromance_state *state = space->machine().driver_data<fromance_state>();
241241   state->m_pending_command = 0;
242   device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, CLEAR_LINE);
242   state->m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
243243}
244244
245245
r17814r17815
560560static void irqhandler( device_t *device, int irq )
561561{
562562   fromance_state *state = device->machine().driver_data<fromance_state>();
563   device_set_input_line(state->m_subcpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
563   state->m_subcpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
564564}
565565
566566
r17814r17815
592592{
593593   fromance_state *state = machine.driver_data<fromance_state>();
594594
595   state->m_subcpu = machine.device("sub");
595   state->m_subcpu = machine.device<cpu_device>("sub");
596596
597597   /* initialize main Z80 bank */
598598   state->membank("bank1")->configure_entries(0, 8, state->memregion("maincpu")->base() + 0x10000, 0x2000);
trunk/src/mame/drivers/ddragon3.c
r17814r17815
174174
175175      case 1: /* soundlatch_byte_w */
176176         soundlatch_byte_w(space, 1, m_io_reg[1] & 0xff);
177         device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
177         m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
178178      break;
179179
180180      case 2:
181181         /*  this gets written to on startup and at the end of IRQ6
182182            **  possibly trigger IRQ on sound CPU
183183            */
184         device_set_input_line(m_maincpu, 6, CLEAR_LINE);
184         m_maincpu->set_input_line(6, CLEAR_LINE);
185185         break;
186186
187187      case 3:
188188         /*  this gets written to on startup,
189189            **  and at the end of IRQ5 (input port read) */
190         device_set_input_line(m_maincpu, 5, CLEAR_LINE);
190         m_maincpu->set_input_line(5, CLEAR_LINE);
191191         break;
192192
193193      case 4:
194194         /* this gets written to at the end of IRQ6 only */
195         device_set_input_line(m_maincpu, 6, CLEAR_LINE);
195         m_maincpu->set_input_line(6, CLEAR_LINE);
196196         break;
197197
198198      default:
r17814r17815
517517static void dd3_ymirq_handler(device_t *device, int irq)
518518{
519519   ddragon3_state *state = device->machine().driver_data<ddragon3_state>();
520   device_set_input_line(state->m_audiocpu, 0 , irq ? ASSERT_LINE : CLEAR_LINE );
520   state->m_audiocpu->set_input_line(0 , irq ? ASSERT_LINE : CLEAR_LINE );
521521}
522522
523523static const ym2151_interface ym2151_config =
r17814r17815
541541   {
542542      if (scanline > 0)
543543         timer.machine().primary_screen->update_partial(scanline - 1);
544      device_set_input_line(state->m_maincpu, 5, ASSERT_LINE);
544      state->m_maincpu->set_input_line(5, ASSERT_LINE);
545545   }
546546
547547   /* Vblank is raised on scanline 248 */
548548   if (scanline == 248)
549549   {
550550      timer.machine().primary_screen->update_partial(scanline - 1);
551      device_set_input_line(state->m_maincpu, 6, ASSERT_LINE);
551      state->m_maincpu->set_input_line(6, ASSERT_LINE);
552552   }
553553}
554554
r17814r17815
562562{
563563   ddragon3_state *state = machine.driver_data<ddragon3_state>();
564564
565   state->m_maincpu = machine.device("maincpu");
566   state->m_audiocpu = machine.device("audiocpu");
565   state->m_maincpu = machine.device<cpu_device>("maincpu");
566   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
567567
568568   state->save_item(NAME(state->m_vreg));
569569   state->save_item(NAME(state->m_bg_scrollx));
trunk/src/mame/drivers/ccastles.c
r17814r17815
159159   /* assert the IRQ if not already asserted */
160160   if (!state->m_irq_state)
161161   {
162      device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
162      state->m_maincpu->set_input_line(0, ASSERT_LINE);
163163      state->m_irq_state = 1;
164164   }
165165
r17814r17815
245245{
246246   if (m_irq_state)
247247   {
248      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
248      m_maincpu->set_input_line(0, CLEAR_LINE);
249249      m_irq_state = 0;
250250   }
251251}
trunk/src/mame/drivers/discoboy.c
r17814r17815
6060   UINT8    m_toggle;
6161
6262   /* devices */
63   device_t *m_audiocpu;
63   cpu_device *m_audiocpu;
6464
6565   /* memory */
6666   UINT8    m_ram_1[0x800];
r17814r17815
233233WRITE8_MEMBER(discoboy_state::discoboy_port_03_w)// sfx? (to sound cpu)
234234{
235235   //  printf("unk discoboy_port_03_w %02x\n", data);
236   //  device_set_input_line(m_audiocpu, INPUT_LINE_NMI, HOLD_LINE);
236   //  m_audiocpu->set_input_line(INPUT_LINE_NMI, HOLD_LINE);
237237   soundlatch_byte_w(space, 0, data);
238   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
238   m_audiocpu->set_input_line(0, HOLD_LINE);
239239}
240240
241241WRITE8_MEMBER(discoboy_state::discoboy_port_06_w)
r17814r17815
455455{
456456   discoboy_state *state = machine.driver_data<discoboy_state>();
457457
458   state->m_audiocpu = machine.device("audiocpu");
458   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
459459
460460   state->save_item(NAME(state->m_ram_bank));
461461   state->save_item(NAME(state->m_port_00));
trunk/src/mame/drivers/mediagx.c
r17814r17815
405405
406406#if SPEEDUP_HACKS
407407         // wait for vblank speedup
408         device_spin_until_interrupt(&space.device());
408         space.device().execute().spin_until_interrupt();
409409#endif
410410         break;
411411   }
r17814r17815
10691069   mediagx_state *state = machine.driver_data<mediagx_state>();
10701070   UINT8 *rom = state->memregion("bios")->base();
10711071
1072   device_set_irq_callback(machine.device("maincpu"), irq_callback);
1072   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
10731073
10741074   memcpy(state->m_bios_ram, rom, 0x40000);
10751075   machine.device("maincpu")->reset();
r17814r17815
12691269   if (space->device().safe_pc() == state->m_speedup_table[idx].pc)
12701270   {
12711271      state->m_speedup_hits[idx]++;
1272      device_spin_until_interrupt(&space->device());
1272      space->device().execute().spin_until_interrupt();
12731273   }
12741274   return state->m_main_ram[state->m_speedup_table[idx].offset/4];
12751275}
trunk/src/mame/drivers/orbit.c
r17814r17815
3636   orbit_state *state = timer.machine().driver_data<orbit_state>();
3737   int scanline = param;
3838   int nmistate = (scanline & 32) && (state->m_misc_flags & 4);
39   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, nmistate ? ASSERT_LINE : CLEAR_LINE);
39   state->m_maincpu->set_input_line(INPUT_LINE_NMI, nmistate ? ASSERT_LINE : CLEAR_LINE);
4040}
4141
4242
4343static TIMER_CALLBACK( irq_off )
4444{
4545   orbit_state *state = machine.driver_data<orbit_state>();
46   device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
46   state->m_maincpu->set_input_line(0, CLEAR_LINE);
4747}
4848
4949
5050static INTERRUPT_GEN( orbit_interrupt )
5151{
52   device_set_input_line(device, 0, ASSERT_LINE);
52   device->execute().set_input_line(0, ASSERT_LINE);
5353   device->machine().scheduler().timer_set(device->machine().primary_screen->time_until_vblank_end(), FUNC(irq_off));
5454}
5555
r17814r17815
275275{
276276   orbit_state *state = machine.driver_data<orbit_state>();
277277
278   state->m_maincpu = machine.device("maincpu");
278   state->m_maincpu = machine.device<cpu_device>("maincpu");
279279   state->m_discrete = machine.device("discrete");
280280
281281   state->save_item(NAME(state->m_misc_flags));
trunk/src/mame/drivers/policetr.c
r17814r17815
109109
110110static INTERRUPT_GEN( irq4_gen )
111111{
112   device_set_input_line(device, R3000_IRQ4, ASSERT_LINE);
112   device->execute().set_input_line(R3000_IRQ4, ASSERT_LINE);
113113   device->machine().scheduler().timer_set(device->machine().primary_screen->time_until_pos(0), FUNC(irq5_gen));
114114}
115115
r17814r17815
214214
215215         /* more than 2 in a row and we spin */
216216         if (m_loop_count > 2)
217            device_spin_until_interrupt(&space.device());
217            space.device().execute().spin_until_interrupt();
218218      }
219219      else
220220         m_loop_count = 0;
trunk/src/mame/drivers/skimaxx.c
r17814r17815
292292   {
293293      device_t *subcpu = machine().device("subcpu");
294294
295      device_set_input_line(subcpu, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
296      device_set_input_line(subcpu, INPUT_LINE_HALT,  (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
295      subcpu->execute().set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
296      subcpu->execute().set_input_line(INPUT_LINE_HALT,  (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
297297   }
298298}
299299
trunk/src/mame/drivers/coinmvga.c
r17814r17815
657657static INTERRUPT_GEN( vblank_irq )
658658{
659659   //printf("1\n");
660   device_set_input_line(device, 2, HOLD_LINE);
660   device->execute().set_input_line(2, HOLD_LINE);
661661}
662662
663663
trunk/src/mame/drivers/cultures.c
r17814r17815
364364{
365365   cultures_state *state = device->machine().driver_data<cultures_state>();
366366   if (state->m_irq_enable)
367      device_set_input_line(device, 0, HOLD_LINE);
367      device->execute().set_input_line(0, HOLD_LINE);
368368}
369369
370370static MACHINE_START( cultures )
trunk/src/mame/drivers/seta2.c
r17814r17815
21682168   int scanline = param;
21692169
21702170   if(scanline == 368)
2171      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
2171      state->m_maincpu->set_input_line(1, HOLD_LINE);
21722172
21732173   if(scanline == 0)
2174      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
2174      state->m_maincpu->set_input_line(2, HOLD_LINE);
21752175}
21762176
21772177static INTERRUPT_GEN( funcube_sub_timer_irq )
r17814r17815
21802180
21812181   if ( state->m_funcube_serial_count )
21822182   {
2183      device_set_input_line(device, H8_SCI_1_RX, HOLD_LINE);
2183      device->execute().set_input_line(H8_SCI_1_RX, HOLD_LINE);
21842184   }
21852185   else
21862186   {
r17814r17815
21992199      state->m_funcube_press = press;
22002200   }
22012201
2202   device_set_input_line(device, H8_METRO_TIMER_HACK, HOLD_LINE);
2202   device->execute().set_input_line(H8_METRO_TIMER_HACK, HOLD_LINE);
22032203}
22042204
22052205static MACHINE_RESET( funcube )
trunk/src/mame/drivers/flkatck.c
r17814r17815
2525   flkatck_state *state = device->machine().driver_data<flkatck_state>();
2626
2727   if (state->m_irq_enabled)
28      device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
28      device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
2929}
3030
3131WRITE8_MEMBER(flkatck_state::flkatck_bankswitch_w)
r17814r17815
7272         soundlatch_byte_w(space, 0, data);
7373         break;
7474      case 0x06:   /* Cause interrupt on audio CPU */
75         device_set_input_line(m_audiocpu, 0, HOLD_LINE);
75         m_audiocpu->set_input_line(0, HOLD_LINE);
7676         break;
7777      case 0x07:   /* watchdog reset */
7878         watchdog_reset_w(space, 0, data);
r17814r17815
199199
200200   state->membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x2000);
201201
202   state->m_audiocpu = machine.device("audiocpu");
202   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
203203   state->m_k007121 = machine.device("k007121");
204204
205205   state->save_item(NAME(state->m_irq_enabled));
trunk/src/mame/drivers/sfcbox.c
r17814r17815
237237
238238WRITE8_MEMBER( sfcbox_state::port_81_w )
239239{
240   device_set_input_line(m_maincpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
241   device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
240   m_maincpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
241   m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
242242
243243   ioport("OSD_CS")->write(data, 0xff);
244244}
r17814r17815
478478   MACHINE_RESET_CALL( snes );
479479
480480   /* start with both CPUs disabled */
481   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, ASSERT_LINE);
482   device_set_input_line(state->m_soundcpu, INPUT_LINE_RESET, ASSERT_LINE);
481   state->m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
482   state->m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
483483}
484484
485485static MACHINE_CONFIG_DERIVED( sfcbox, snes )
trunk/src/mame/drivers/contra.c
r17814r17815
2929{
3030   contra_state *state = device->machine().driver_data<contra_state>();
3131   if (k007121_ctrlram_r(state->m_k007121_1, 7) & 0x02)
32      device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
32      device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
3333}
3434
3535WRITE8_MEMBER(contra_state::contra_bankswitch_w)
r17814r17815
3939
4040WRITE8_MEMBER(contra_state::contra_sh_irqtrigger_w)
4141{
42   device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
42   m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
4343}
4444
4545WRITE8_MEMBER(contra_state::contra_coin_counter_w)
r17814r17815
182182
183183   state->membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x2000);
184184
185   state->m_audiocpu = machine.device("audiocpu");
185   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
186186   state->m_k007121_1 = machine.device("k007121_1");
187187   state->m_k007121_2 = machine.device("k007121_2");
188188}
trunk/src/mame/drivers/zn.c
r17814r17815
710710
711711static INTERRUPT_GEN( qsound_interrupt )
712712{
713   device_set_input_line(device, 0, HOLD_LINE);
713   device->execute().set_input_line(0, HOLD_LINE);
714714}
715715
716716WRITE32_MEMBER(zn_state::zn_qsound_w)
trunk/src/mame/drivers/galpani3.c
r17814r17815
128128   int scanline = param;
129129
130130   if(scanline == 240)
131      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
131      state->m_maincpu->set_input_line(2, HOLD_LINE);
132132
133133   if(scanline == 0)
134      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
134      state->m_maincpu->set_input_line(3, HOLD_LINE);
135135
136136   if(scanline == 128)
137      device_set_input_line(state->m_maincpu, 5, HOLD_LINE); // timer, related to sound chip?
137      state->m_maincpu->set_input_line(5, HOLD_LINE); // timer, related to sound chip?
138138}
139139
140140
trunk/src/mame/drivers/fitfight.c
r17814r17815
259259
260260static INTERRUPT_GEN( snd_irq )
261261{
262   device_set_input_line(device, UPD7810_INTF2, HOLD_LINE);
262   device->execute().set_input_line(UPD7810_INTF2, HOLD_LINE);
263263}
264264
265265static const UPD7810_CONFIG sound_cpu_config =
trunk/src/mame/drivers/ddribble.c
r17814r17815
2222{
2323   ddribble_state *state = device->machine().driver_data<ddribble_state>();
2424   if (state->m_int_enable_0)
25      device_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE);
25      device->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
2626}
2727
2828static INTERRUPT_GEN( ddribble_interrupt_1 )
2929{
3030   ddribble_state *state = device->machine().driver_data<ddribble_state>();
3131   if (state->m_int_enable_1)
32      device_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE);
32      device->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
3333}
3434
3535
trunk/src/mame/drivers/deco32.c
r17814r17815
16731673
16741674static INTERRUPT_GEN( deco32_vbl_interrupt )
16751675{
1676   device_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE);
1676   device->execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
16771677}
16781678
16791679UINT16 captaven_pri_callback(UINT16 x)
r17814r17815
20002000   if(scanline == 31*8)
20012001   {
20022002      state->m_irq_source = 0;
2003      device_set_input_line(state->m_maincpu, ARM_IRQ_LINE, HOLD_LINE);
2003      state->m_maincpu->set_input_line(ARM_IRQ_LINE, HOLD_LINE);
20042004   }
20052005
20062006   if(scanline == 0)
20072007   {
20082008      state->m_irq_source = 1;
2009      device_set_input_line(state->m_maincpu, ARM_IRQ_LINE, HOLD_LINE);
2009      state->m_maincpu->set_input_line(ARM_IRQ_LINE, HOLD_LINE);
20102010   }
20112011}
20122012
trunk/src/mame/drivers/midzeus.c
r17814r17815
117117
118118static INTERRUPT_GEN( display_irq )
119119{
120   device_set_input_line(device, 0, ASSERT_LINE);
120   device->execute().set_input_line(0, ASSERT_LINE);
121121   device->machine().scheduler().timer_set(attotime::from_hz(30000000), FUNC(display_irq_off));
122122}
123123
trunk/src/mame/drivers/superdq.c
r17814r17815
142142       toggles (680usec after the vblank). We could set up a
143143       timer to do that, but this works as well */
144144   state->m_laserdisc->data_w(state->m_ld_out_latch);
145   device_set_input_line(device, 0, ASSERT_LINE);
145   device->execute().set_input_line(0, ASSERT_LINE);
146146}
147147
148148WRITE8_MEMBER(superdq_state::superdq_videoram_w)
trunk/src/mame/drivers/zaxxon.c
r17814r17815
302302   zaxxon_state *state = device->machine().driver_data<zaxxon_state>();
303303
304304   if (state->m_int_enabled)
305      device_set_input_line(device, 0, ASSERT_LINE);
305      device->execute().set_input_line(0, ASSERT_LINE);
306306}
307307
308308
trunk/src/mame/drivers/tomcat.c
r17814r17815
182182{
183183   // 320 Reset Low         (Address Strobe)
184184   // Reset TMS320
185   device_set_input_line(machine().device("dsp"), INPUT_LINE_RESET, ASSERT_LINE);
185   machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
186186}
187187
188188WRITE16_MEMBER(tomcat_state::tomcat_mresh_w)
r17814r17815
190190   // 320 Reset high        (Address Strobe)
191191   // Release reset of TMS320
192192   m_dsp_BIO = 0;
193   device_set_input_line(machine().device("dsp"), INPUT_LINE_RESET, CLEAR_LINE);
193   machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
194194}
195195
196196WRITE16_MEMBER(tomcat_state::tomcat_irqclr_w)
trunk/src/mame/drivers/fastfred.c
r17814r17815
632632   fastfred_state *state = device->machine().driver_data<fastfred_state>();
633633
634634   if(state->m_nmi_mask)
635      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
635      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
636636}
637637
638638static INTERRUPT_GEN( sound_timer_irq )
r17814r17815
640640   fastfred_state *state = device->machine().driver_data<fastfred_state>();
641641
642642   if(state->m_sound_nmi_mask)
643      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
643      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
644644}
645645
646646static MACHINE_CONFIG_START( fastfred, fastfred_state )
trunk/src/mame/drivers/karnov.c
r17814r17815
126126
127127//  if (!state->m_i8751_return && data != 0x300) logerror("%s - Unknown Write %02x intel\n", machine.describe_context(), data);
128128
129   device_set_input_line(state->m_maincpu, 6, HOLD_LINE); /* Signal main cpu task is complete */
129   state->m_maincpu->set_input_line(6, HOLD_LINE); /* Signal main cpu task is complete */
130130   state->m_i8751_needs_ack = 1;
131131}
132132
r17814r17815
186186   if (data == 0x501) state->m_i8751_return = 0x6bf8;
187187   if (data == 0x500) state->m_i8751_return = 0x4e75;
188188
189   device_set_input_line(state->m_maincpu, 6, HOLD_LINE); /* Signal main cpu task is complete */
189   state->m_maincpu->set_input_line(6, HOLD_LINE); /* Signal main cpu task is complete */
190190   state->m_i8751_needs_ack = 1;
191191}
192192
r17814r17815
318318
319319   //  logerror("%s - Unknown Write %02x intel\n", machine.describe_context(), data);
320320
321   device_set_input_line(state->m_maincpu, 6, HOLD_LINE); /* Signal main cpu task is complete */
321   state->m_maincpu->set_input_line(6, HOLD_LINE); /* Signal main cpu task is complete */
322322   state->m_i8751_needs_ack = 1;
323323}
324324
r17814r17815
335335   switch (offset << 1)
336336   {
337337      case 0: /* SECLR (Interrupt ack for Level 6 i8751 interrupt) */
338         device_set_input_line(m_maincpu, 6, CLEAR_LINE);
338         m_maincpu->set_input_line(6, CLEAR_LINE);
339339
340340         if (m_i8751_needs_ack)
341341         {
r17814r17815
343343            if (m_i8751_coin_pending)
344344            {
345345               m_i8751_return = m_i8751_coin_pending;
346               device_set_input_line(m_maincpu, 6, HOLD_LINE);
346               m_maincpu->set_input_line(6, HOLD_LINE);
347347               m_i8751_coin_pending = 0;
348348            }
349349            else if (m_i8751_command_queue)
r17814r17815
362362
363363      case 2: /* SONREQ (Sound CPU byte) */
364364         soundlatch_byte_w(space, 0, data & 0xff);
365         device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
365         m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
366366         break;
367367
368368      case 4: /* DM (DMA to buffer spriteram) */
r17814r17815
396396         break;
397397
398398      case 0xe: /* INTCLR (Interrupt ack for Level 7 vbl interrupt) */
399         device_set_input_line(m_maincpu, 7, CLEAR_LINE);
399         m_maincpu->set_input_line(7, CLEAR_LINE);
400400         break;
401401   }
402402}
r17814r17815
744744      else
745745      {
746746         state->m_i8751_return = port | 0x8000;
747         device_set_input_line(device, 6, HOLD_LINE);
747         device->execute().set_input_line(6, HOLD_LINE);
748748         state->m_i8751_needs_ack = 1;
749749      }
750750
751751      state->m_latch = 0;
752752   }
753753
754   device_set_input_line(device, 7, HOLD_LINE);   /* VBL */
754   device->execute().set_input_line(7, HOLD_LINE);   /* VBL */
755755}
756756
757757static const ym3526_interface ym3526_config =
r17814r17815
769769{
770770   karnov_state *state = machine.driver_data<karnov_state>();
771771
772   state->m_maincpu = machine.device("maincpu");
773   state->m_audiocpu = machine.device("audiocpu");
772   state->m_maincpu = machine.device<cpu_device>("maincpu");
773   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
774774
775775   state->save_item(NAME(state->m_flipscreen));
776776   state->save_item(NAME(state->m_scroll));
trunk/src/mame/drivers/lwings.c
r17814r17815
9292   lwings_state *state = device->machine().driver_data<lwings_state>();
9393
9494   if(state->m_nmi_mask)
95      device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7); /* RST 10h */
95      device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7); /* RST 10h */
9696}
9797
9898static INTERRUPT_GEN( avengers_interrupt )
r17814r17815
100100   lwings_state *state = device->machine().driver_data<lwings_state>();
101101
102102   if(state->m_nmi_mask)
103      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
103      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
104104}
105105
106106
trunk/src/mame/drivers/punchout.c
r17814r17815
934934   punchout_state *state = device->machine().driver_data<punchout_state>();
935935
936936   if(state->m_nmi_mask)
937      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
937      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
938938}
939939
940940
trunk/src/mame/drivers/kopunch.c
r17814r17815
1010
1111static INTERRUPT_GEN( kopunch_interrupt )
1212{
13   device_set_input_line(device, I8085_RST75_LINE, ASSERT_LINE);
14   device_set_input_line(device, I8085_RST75_LINE, CLEAR_LINE);
13   device->execute().set_input_line(I8085_RST75_LINE, ASSERT_LINE);
14   device->execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE);
1515}
1616
1717READ8_MEMBER(kopunch_state::kopunch_in_r)
r17814r17815
7373
7474   /* left coin insertion causes a rst6.5 (vector 0x34) */
7575   if (newval)
76      device_set_input_line(m_maincpu, I8085_RST65_LINE, HOLD_LINE);
76      m_maincpu->set_input_line(I8085_RST65_LINE, HOLD_LINE);
7777}
7878
7979INPUT_CHANGED_MEMBER(kopunch_state::right_coin_inserted)
r17814r17815
8181
8282   /* right coin insertion causes a rst5.5 (vector 0x2c) */
8383   if (newval)
84      device_set_input_line(m_maincpu, I8085_RST55_LINE, HOLD_LINE);
84      m_maincpu->set_input_line(I8085_RST55_LINE, HOLD_LINE);
8585}
8686
8787static INPUT_PORTS_START( kopunch )
r17814r17815
173173{
174174   kopunch_state *state = machine.driver_data<kopunch_state>();
175175
176   state->m_maincpu = machine.device("maincpu");
176   state->m_maincpu = machine.device<cpu_device>("maincpu");
177177
178178   state->save_item(NAME(state->m_gfxbank));
179179}
trunk/src/mame/drivers/cclimber.c
r17814r17815
979979   cclimber_state *state = device->machine().driver_data<cclimber_state>();
980980
981981   if(state->m_nmi_mask)
982      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
982      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
983983}
984984
985985static MACHINE_CONFIG_START( root, cclimber_state )
trunk/src/mame/drivers/cesclass.c
r17814r17815
9090
9191WRITE16_MEMBER( cesclassic_state::irq2_ack_w )
9292{
93   device_set_input_line(m_maincpu, 2, CLEAR_LINE);
93   m_maincpu->set_input_line(2, CLEAR_LINE);
9494}
9595
9696WRITE16_MEMBER( cesclassic_state::irq3_ack_w )
9797{
98   device_set_input_line(m_maincpu, 3, CLEAR_LINE);
98   m_maincpu->set_input_line(3, CLEAR_LINE);
9999}
100100
101101WRITE16_MEMBER( cesclassic_state::lamps_w )
trunk/src/mame/drivers/aliens.c
r17814r17815
2424   aliens_state *state = device->machine().driver_data<aliens_state>();
2525
2626   if (k051960_is_irq_enabled(state->m_k051960))
27      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
27      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
2828}
2929
3030READ8_MEMBER(aliens_state::bankedram_r)
r17814r17815
7070{
7171
7272   soundlatch_byte_w(space, offset, data);
73   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
73   m_audiocpu->set_input_line(0, HOLD_LINE);
7474}
7575
7676WRITE8_MEMBER(aliens_state::aliens_snd_bankswitch_w)
r17814r17815
234234   state->membank("bank1")->configure_entries(0, 20, &ROM[0x10000], 0x2000);
235235   state->membank("bank1")->set_entry(0);
236236
237   state->m_maincpu = machine.device("maincpu");
238   state->m_audiocpu = machine.device("audiocpu");
237   state->m_maincpu = machine.device<cpu_device>("maincpu");
238   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
239239   state->m_k007232 = machine.device("k007232");
240240   state->m_k052109 = machine.device("k052109");
241241   state->m_k051960 = machine.device("k051960");
trunk/src/mame/drivers/88games.c
r17814r17815
7070
7171WRITE8_MEMBER(_88games_state::k88games_sh_irqtrigger_w)
7272{
73   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
73   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
7474}
7575
7676
r17814r17815
309309{
310310   _88games_state *state = machine.driver_data<_88games_state>();
311311
312   state->m_audiocpu = machine.device("audiocpu");
312   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
313313   state->m_k052109 = machine.device("k052109");
314314   state->m_k051960 = machine.device("k051960");
315315   state->m_k051316 = machine.device("k051316");
trunk/src/mame/drivers/beezer.c
r17814r17815
8181{
8282   beezer_state *state = machine.driver_data<beezer_state>();
8383
84   state->m_maincpu = machine.device("maincpu");
84   state->m_maincpu = machine.device<cpu_device>("maincpu");
8585}
8686
8787static MACHINE_CONFIG_START( beezer, beezer_state )
trunk/src/mame/drivers/ddenlovr.c
r17814r17815
830830
831831         if (irq_vector)
832832            /* quizchq */
833            device_set_input_line_and_vector(&space->device(), 0, HOLD_LINE, irq_vector);
833            space->device().execute().set_input_line_and_vector(0, HOLD_LINE, irq_vector);
834834         else
835835         {
836836            /* ddenlovr */
837837            if (state->m_ddenlovr_blitter_irq_enable)
838838            {
839839               state->m_ddenlovr_blitter_irq_flag = 1;
840               device_set_input_line(&space->device(), 1, HOLD_LINE);
840               space->device().execute().set_input_line(1, HOLD_LINE);
841841            }
842842         }
843843         break;
r17814r17815
996996            #endif
997997         }
998998
999         device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, irq_vector);
999         state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, irq_vector);
10001000         break;
10011001
10021002      default:
r17814r17815
20772077WRITE8_MEMBER(dynax_state::mmpanic_soundlatch_w)
20782078{
20792079   soundlatch_byte_w(space, 0, data);
2080   device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
2080   m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
20812081}
20822082
20832083WRITE8_MEMBER(dynax_state::mmpanic_blitter_w)
r17814r17815
83608360{
83618361   dynax_state *state = machine.driver_data<dynax_state>();
83628362
8363   state->m_maincpu = machine.device("maincpu");
8364   state->m_soundcpu = machine.device("soundcpu");
8363   state->m_maincpu = machine.device<cpu_device>("maincpu");
8364   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
83658365   state->m_oki = machine.device<okim6295_device>("oki");
83668366
83678367   state->save_item(NAME(state->m_input_sel));
r17814r17815
86088608//  if (downcast<cpu_device *>(state->m_maincpu)->input_state(0))
86098609//      return;
86108610
8611   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xee);
8611   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xee);
86128612}
86138613
86148614static WRITE_LINE_DEVICE_HANDLER( quizchq_rtc_irq )
86158615{
86168616   dynax_state *drvstate = device->machine().driver_data<dynax_state>();
86178617
8618   device_set_input_line_and_vector(drvstate->m_maincpu, 0, HOLD_LINE, 0xfc);
8618   drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfc);
86198619}
86208620
86218621static MSM6242_INTERFACE( quizchq_rtc_intf )
r17814r17815
86928692   //if (downcast<cpu_device *>(state->m_maincpu)->input_state(0))
86938693   //  return;
86948694
8695   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xcf); // RST 08, vblank
8695   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf); // RST 08, vblank
86968696}
86978697
86988698
r17814r17815
87008700{
87018701   dynax_state *drvstate = device->machine().driver_data<dynax_state>();
87028702
8703   device_set_input_line_and_vector(drvstate->m_maincpu, 0, HOLD_LINE, 0xdf); // RST 18, clock
8703   drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xdf); // RST 18, clock
87048704}
87058705
87068706static MSM6242_INTERFACE( mmpanic_rtc_intf )
r17814r17815
87778777   //if (downcast<cpu_device *>(state->m_maincpu)->input_state(0))
87788778   //  return;
87798779
8780   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xe0);
8780   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe0);
87818781}
87828782
87838783static WRITE_LINE_DEVICE_HANDLER(hanakanz_rtc_irq)
r17814r17815
87908790   //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0))
87918791   //  return;
87928792
8793   device_set_input_line_and_vector(drvstate->m_maincpu, 0, HOLD_LINE, 0xe2);
8793   drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe2);
87948794}
87958795
87968796static MSM6242_INTERFACE( hanakanz_rtc_intf )
r17814r17815
88698869   //if (downcast<cpu_device *>(state->m_maincpu)->input_state(0))
88708870   //  return;
88718871
8872   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xf8);
8872   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xf8);
88738873}
88748874
88758875static WRITE_LINE_DEVICE_HANDLER(mjchuuka_rtc_irq)
r17814r17815
88828882   //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0))
88838883   //  return;
88848884
8885   device_set_input_line_and_vector(drvstate->m_maincpu, 0, HOLD_LINE, 0xfa);
8885   drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfa);
88868886}
88878887
88888888static MSM6242_INTERFACE( mjchuuka_rtc_intf )
r17814r17815
89538953      return;
89548954
89558955   if(scanline == 245)
8956      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xf8);
8956      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xf8);
89578957
89588958   if(scanline == 0)
8959      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xfa);
8959      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfa);
89608960}
89618961
89628962static const ay8910_interface mjmyster_ay8910_interface =
r17814r17815
89788978   //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0))
89798979   //  return;
89808980
8981   device_set_input_line(drvstate->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
8981   drvstate->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
89828982}
89838983
89848984static MSM6242_INTERFACE( mjmyster_rtc_intf )
r17814r17815
90289028//  if (downcast<cpu_device *>(state->m_maincpu)->input_state(0))
90299029//      return;
90309030
9031   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xf8);
9031   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xf8);
90329032}
90339033
90349034static const ay8910_interface hginga_ay8910_interface =
r17814r17815
90509050   //if (downcast<cpu_device *>(drvstate->m_maincpu)->input_state(0))
90519051   //  return;
90529052
9053   device_set_input_line_and_vector(drvstate->m_maincpu, 0, HOLD_LINE, 0xee);
9053   drvstate->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xee);
90549054}
90559055
90569056static MSM6242_INTERFACE( hginga_rtc_intf )
r17814r17815
91579157   dynax_state *state = device->machine().driver_data<dynax_state>();
91589158
91599159   state->m_mjflove_irq_cause = 1;
9160   device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
9160   state->m_maincpu->set_input_line(0, HOLD_LINE);
91619161}
91629162
91639163static WRITE_LINE_DEVICE_HANDLER(mjflove_rtc_irq)
r17814r17815
91659165   dynax_state *drvstate = device->machine().driver_data<dynax_state>();
91669166
91679167   drvstate->m_mjflove_irq_cause = 2;
9168   device_set_input_line(drvstate->m_maincpu, 0, HOLD_LINE);
9168   drvstate->m_maincpu->set_input_line(0, HOLD_LINE);
91699169}
91709170
91719171static MSM6242_INTERFACE( mjflove_rtc_intf )
r17814r17815
91989198    0xee is vblank  */
91999199static INTERRUPT_GEN( hparadis_irq )
92009200{
9201   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xee);
9201   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xee);
92029202}
92039203
92049204static MACHINE_CONFIG_DERIVED( hparadis, quizchq )
trunk/src/mame/drivers/chinagat.c
r17814r17815
122122
123123   /* on the rising edge of VBLK (vcount == F8), signal an NMI */
124124   if (vcount == 0xf8)
125      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
125      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
126126
127127   /* set 1ms signal on rising edge of vcount & 8 */
128128   if (!(vcount_old & 8) && (vcount & 8))
129      device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, ASSERT_LINE);
129      state->m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
130130
131131   /* adjust for next scanline */
132132   if (++scanline >= screen_height)
r17814r17815
141141   {
142142      case 0: /* 3e00 - SND irq */
143143         state->soundlatch_byte_w(*space, 0, data);
144         device_set_input_line(state->m_snd_cpu, state->m_sound_irq, (state->m_sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE );
144         state->m_snd_cpu->execute().set_input_line(state->m_sound_irq, (state->m_sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE );
145145         break;
146146
147147      case 1: /* 3e01 - NMI ack */
148         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
148         state->m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
149149         break;
150150
151151      case 2: /* 3e02 - FIRQ ack */
152         device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE);
152         state->m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
153153         break;
154154
155155      case 3: /* 3e03 - IRQ ack */
156         device_set_input_line(state->m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
156         state->m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
157157         break;
158158
159159      case 4: /* 3e04 - sub CPU IRQ ack */
160         device_set_input_line(state->m_sub_cpu, state->m_sprite_irq, (state->m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE );
160         state->m_sub_cpu->execute().set_input_line(state->m_sprite_irq, (state->m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE );
161161         break;
162162   }
163163}
r17814r17815
495495static void chinagat_irq_handler( device_t *device, int irq )
496496{
497497   ddragon_state *state = device->machine().driver_data<ddragon_state>();
498   device_set_input_line(state->m_snd_cpu, 0, irq ? ASSERT_LINE : CLEAR_LINE );
498   state->m_snd_cpu->execute().set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE );
499499}
500500
501501static const ym2151_interface ym2151_config =
r17814r17815
526526{
527527   ddragon_state *state = machine.driver_data<ddragon_state>();
528528
529   state->m_maincpu = machine.device("maincpu");
529   state->m_maincpu = machine.device<cpu_device>("maincpu");
530530   state->m_sub_cpu = machine.device("sub");
531531   state->m_snd_cpu = machine.device("audiocpu");
532532
trunk/src/mame/drivers/kaneko16.c
r17814r17815
15871587
15881588   // main vblank interrupt
15891589   if(scanline == 224)
1590      device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
1590      state->m_maincpu->set_input_line(5, HOLD_LINE);
15911591
15921592   // each of these 2 int are responsible of translating a part of sprite buffer
15931593   // from work ram to sprite ram. How these are scheduled is unknown.
15941594   if(scanline == 64)
1595      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
1595      state->m_maincpu->set_input_line(4, HOLD_LINE);
15961596
15971597   if(scanline == 144)
1598      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
1598      state->m_maincpu->set_input_line(3, HOLD_LINE);
15991599}
16001600
16011601static const ay8910_interface ay8910_intf_dsw =
r17814r17815
20192019   if(scanline == 224)
20202020   {
20212021      // the code for this interrupt is provided by the MCU..
2022      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
2022      state->m_maincpu->set_input_line(4, HOLD_LINE);
20232023   }
20242024
20252025   if(scanline == 64)
2026      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
2026      state->m_maincpu->set_input_line(3, HOLD_LINE);
20272027
20282028   if(scanline == 144)
2029      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
2029      state->m_maincpu->set_input_line(2, HOLD_LINE);
20302030}
20312031
20322032/*
trunk/src/mame/drivers/ms32.c
r17814r17815
223223   machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
224224
225225   // give the Z80 time to respond
226   device_spin_until_time(&space.device(), attotime::from_usec(40));
226   space.device().execute().spin_until_time(attotime::from_usec(40));
227227}
228228
229229READ32_MEMBER(ms32_state::ms32_sound_r)
r17814r17815
12841284   for(i=15; i>=0 && !(state->m_irqreq & (1<<i)); i--);
12851285   state->m_irqreq &= ~(1<<i);
12861286   if(!state->m_irqreq)
1287      device_set_input_line(device, 0, CLEAR_LINE);
1287      device->execute().set_input_line(0, CLEAR_LINE);
12881288   return i;
12891289}
12901290
r17814r17815
12931293   ms32_state *state = machine.driver_data<ms32_state>();
12941294   state->m_irqreq = 0;
12951295   machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
1296   device_set_irq_callback(machine.device("maincpu"), irq_callback);
1296   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
12971297}
12981298
12991299static void irq_raise(running_machine &machine, int level)
trunk/src/mame/drivers/deniam.c
r17814r17815
5353   if (ACCESSING_BITS_8_15)
5454   {
5555      soundlatch_byte_w(space,offset, (data >> 8) & 0xff);
56      device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
56      m_audio_cpu->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5757   }
5858}
5959
r17814r17815
228228
229229   /* system 16c doesn't have the sound CPU */
230230   if (state->m_audio_cpu != NULL)
231      device_set_input_line(state->m_audio_cpu, 0, linestate);
231      state->m_audio_cpu->execute().set_input_line(0, linestate);
232232}
233233
234234static const ym3812_interface ym3812_config =
trunk/src/mame/drivers/redalert.c
r17814r17815
111111{
112112   if( device->machine().root_device().ioport("COIN")->read() )
113113      /* the service coin as conntected to the CPU's RDY pin as well */
114      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
114      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
115115
116   device_set_input_line(device, M6502_IRQ_LINE, ASSERT_LINE);
116   device->execute().set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
117117}
118118
119119
trunk/src/mame/drivers/kungfur.c
r17814r17815
8888{
8989   kungfur_state *state = device->machine().driver_data<kungfur_state>();
9090   if (state->m_control & 0x10)
91      device_set_input_line(device, M6809_IRQ_LINE, ASSERT_LINE);
91      device->execute().set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
9292}
9393
9494
trunk/src/mame/drivers/taito_b.c
r17814r17815
199199static TIMER_CALLBACK( rsaga2_interrupt2 )
200200{
201201   taitob_state *state = machine.driver_data<taitob_state>();
202   device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
202   state->m_maincpu->set_input_line(2, HOLD_LINE);
203203}
204204
205205static INTERRUPT_GEN( rastansaga2_interrupt )
206206{
207207   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(rsaga2_interrupt2));
208   device_set_input_line(device, 4, HOLD_LINE);
208   device->execute().set_input_line(4, HOLD_LINE);
209209}
210210
211211
212212static TIMER_CALLBACK( crimec_interrupt3 )
213213{
214214   taitob_state *state = machine.driver_data<taitob_state>();
215   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
215   state->m_maincpu->set_input_line(3, HOLD_LINE);
216216}
217217
218218static INTERRUPT_GEN( crimec_interrupt )
219219{
220220   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(crimec_interrupt3));
221   device_set_input_line(device, 5, HOLD_LINE);
221   device->execute().set_input_line(5, HOLD_LINE);
222222}
223223
224224
225225static TIMER_CALLBACK( hitice_interrupt6 )
226226{
227227   taitob_state *state = machine.driver_data<taitob_state>();
228   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
228   state->m_maincpu->set_input_line(6, HOLD_LINE);
229229}
230230
231231static INTERRUPT_GEN( hitice_interrupt )
232232{
233233   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(hitice_interrupt6));
234   device_set_input_line(device, 4, HOLD_LINE);
234   device->execute().set_input_line(4, HOLD_LINE);
235235}
236236
237237
238238static TIMER_CALLBACK( rambo3_interrupt1 )
239239{
240240   taitob_state *state = machine.driver_data<taitob_state>();
241   device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
241   state->m_maincpu->set_input_line(1, HOLD_LINE);
242242}
243243
244244static INTERRUPT_GEN( rambo3_interrupt )
245245{
246246   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(rambo3_interrupt1));
247   device_set_input_line(device, 6, HOLD_LINE);
247   device->execute().set_input_line(6, HOLD_LINE);
248248}
249249
250250
251251static TIMER_CALLBACK( pbobble_interrupt5 )
252252{
253253   taitob_state *state = machine.driver_data<taitob_state>();
254   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
254   state->m_maincpu->set_input_line(5, HOLD_LINE);
255255}
256256
257257static INTERRUPT_GEN( pbobble_interrupt )
258258{
259259   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(pbobble_interrupt5));
260   device_set_input_line(device, 3, HOLD_LINE);
260   device->execute().set_input_line(3, HOLD_LINE);
261261}
262262
263263static TIMER_CALLBACK( viofight_interrupt1 )
264264{
265265   taitob_state *state = machine.driver_data<taitob_state>();
266   device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
266   state->m_maincpu->set_input_line(1, HOLD_LINE);
267267}
268268
269269static INTERRUPT_GEN( viofight_interrupt )
270270{
271271   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(viofight_interrupt1));
272   device_set_input_line(device, 4, HOLD_LINE);
272   device->execute().set_input_line(4, HOLD_LINE);
273273}
274274
275275static TIMER_CALLBACK( masterw_interrupt4 )
276276{
277277   taitob_state *state = machine.driver_data<taitob_state>();
278   device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
278   state->m_maincpu->set_input_line(4, HOLD_LINE);
279279}
280280
281281static INTERRUPT_GEN( masterw_interrupt )
282282{
283283   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(masterw_interrupt4));
284   device_set_input_line(device, 5, HOLD_LINE);
284   device->execute().set_input_line(5, HOLD_LINE);
285285}
286286
287287static TIMER_CALLBACK( silentd_interrupt4 )
288288{
289289   taitob_state *state = machine.driver_data<taitob_state>();
290   device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
290   state->m_maincpu->set_input_line(4, HOLD_LINE);
291291}
292292
293293static INTERRUPT_GEN( silentd_interrupt )
294294{
295295   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(silentd_interrupt4));
296   device_set_input_line(device, 6, HOLD_LINE);
296   device->execute().set_input_line(6, HOLD_LINE);
297297}
298298
299299static TIMER_CALLBACK( selfeena_interrupt4 )
300300{
301301   taitob_state *state = machine.driver_data<taitob_state>();
302   device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
302   state->m_maincpu->set_input_line(4, HOLD_LINE);
303303}
304304
305305static INTERRUPT_GEN( selfeena_interrupt )
306306{
307307   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(5000), FUNC(selfeena_interrupt4));
308   device_set_input_line(device, 6, HOLD_LINE);
308   device->execute().set_input_line(6, HOLD_LINE);
309309}
310310
311311static TIMER_CALLBACK( sbm_interrupt5 )//4
312312{
313313   taitob_state *state = machine.driver_data<taitob_state>();
314   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
314   state->m_maincpu->set_input_line(5, HOLD_LINE);
315315}
316316
317317static INTERRUPT_GEN( sbm_interrupt )//5
318318{
319319   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(10000), FUNC(sbm_interrupt5));
320   device_set_input_line(device, 4, HOLD_LINE);
320   device->execute().set_input_line(4, HOLD_LINE);
321321}
322322
323323static TIMER_CALLBACK( realpunc_interrupt3 )//3
324324{
325325   taitob_state *state = machine.driver_data<taitob_state>();
326   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
326   state->m_maincpu->set_input_line(3, HOLD_LINE);
327327}
328328
329329static INTERRUPT_GEN( realpunc_interrupt )//2
330330{
331331   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(10000), FUNC(realpunc_interrupt3));
332   device_set_input_line(device, 2, HOLD_LINE);
332   device->execute().set_input_line(2, HOLD_LINE);
333333}
334334
335335
r17814r17815
394394
395395INPUT_CHANGED_MEMBER(taitob_state::realpunc_sensor)
396396{
397   device_set_input_line(m_maincpu, 4, HOLD_LINE);
397   m_maincpu->set_input_line(4, HOLD_LINE);
398398}
399399
400400/***************************************************************************
r17814r17815
19061906static void irqhandler( device_t *device, int irq )
19071907{
19081908   taitob_state *state = device->machine().driver_data<taitob_state>();
1909   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
1909   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
19101910}
19111911
19121912static const ym2610_interface ym2610_config =
r17814r17815
20172017{
20182018   taitob_state *state = machine.driver_data<taitob_state>();
20192019
2020   state->m_maincpu = machine.device("maincpu");
2021   state->m_audiocpu = machine.device("audiocpu");
2020   state->m_maincpu = machine.device<cpu_device>("maincpu");
2021   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
20222022   state->m_mb87078 = machine.device("mb87078");
20232023   state->m_ym = machine.device("ymsnd");
20242024   state->m_tc0180vcu = machine.device("tc0180vcu");
trunk/src/mame/drivers/jackal.c
r17814r17815
313313
314314   if (state->m_irq_enable)
315315   {
316      device_set_input_line(device, 0, HOLD_LINE);
317      device_set_input_line(state->m_slavecpu, INPUT_LINE_NMI, PULSE_LINE);
316      device->execute().set_input_line(0, HOLD_LINE);
317      state->m_slavecpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
318318   }
319319}
320320
r17814r17815
334334   state->membank("bank1")->configure_entry(1, &ROM[0x14000]);
335335   state->membank("bank1")->set_entry(0);
336336
337   state->m_mastercpu = machine.device("master");
338   state->m_slavecpu = machine.device("slave");
337   state->m_mastercpu = machine.device<cpu_device>("master");
338   state->m_slavecpu = machine.device<cpu_device>("slave");
339339
340340   state->save_item(NAME(state->m_irq_enable));
341341}
trunk/src/mame/drivers/vaportra.c
r17814r17815
2626   /* Force synchronisation between CPUs with fake timer */
2727   machine().scheduler().synchronize();
2828   soundlatch_byte_w(space, 0, data & 0xff);
29   device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
29   m_audiocpu->set_input_line(0, ASSERT_LINE);
3030}
3131
3232READ16_MEMBER(vaportra_state::vaportra_control_r)
r17814r17815
7171
7272READ8_MEMBER(vaportra_state::vaportra_soundlatch_r)
7373{
74   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
74   m_audiocpu->set_input_line(0, CLEAR_LINE);
7575   return soundlatch_byte_r(space, offset);
7676}
7777
r17814r17815
202202static void sound_irq( device_t *device, int state )
203203{
204204   vaportra_state *driver_state = device->machine().driver_data<vaportra_state>();
205   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
205   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
206206}
207207
208208static const ym2151_interface ym2151_config =
r17814r17815
245245{
246246   vaportra_state *state = machine.driver_data<vaportra_state>();
247247
248   state->m_maincpu = machine.device("maincpu");
249   state->m_audiocpu = machine.device("audiocpu");
248   state->m_maincpu = machine.device<cpu_device>("maincpu");
249   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
250250   state->m_deco_tilegen1 = machine.device("tilegen1");
251251   state->m_deco_tilegen2 = machine.device("tilegen2");
252252
trunk/src/mame/drivers/suna8.c
r17814r17815
17431743   int scanline = param;
17441744
17451745   if(scanline == 240)
1746      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
1746      state->m_maincpu->set_input_line(0, HOLD_LINE);
17471747   if(scanline == 112)
1748      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
1748      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
17491749
17501750   // TODO: NMI enable
17511751}
r17814r17815
18261826   int scanline = param;
18271827
18281828   if(scanline == 240)
1829      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
1829      state->m_maincpu->set_input_line(0, HOLD_LINE);
18301830   if(scanline == 112)
1831      if (state->m_nmi_enable)   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
1831      if (state->m_nmi_enable)   state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
18321832}
18331833
18341834static MACHINE_RESET( hardhea2 )
trunk/src/mame/drivers/chanbara.c
r17814r17815
7878   UINT8    m_scrollhi;
7979
8080   /* devices */
81   device_t *m_maincpu;
81   cpu_device *m_maincpu;
8282   DECLARE_WRITE8_MEMBER(chanbara_videoram_w);
8383   DECLARE_WRITE8_MEMBER(chanbara_colorram_w);
8484   DECLARE_WRITE8_MEMBER(chanbara_videoram2_w);
r17814r17815
366366static void sound_irq( device_t *device, int linestate )
367367{
368368   chanbara_state *state = device->machine().driver_data<chanbara_state>();
369   device_set_input_line(state->m_maincpu, 0, linestate);
369   state->m_maincpu->set_input_line(0, linestate);
370370}
371371
372372
r17814r17815
388388{
389389   chanbara_state *state = machine.driver_data<chanbara_state>();
390390
391   state->m_maincpu = machine.device("maincpu");
391   state->m_maincpu = machine.device<cpu_device>("maincpu");
392392
393393   state->save_item(NAME(state->m_scroll));
394394   state->save_item(NAME(state->m_scrollhi));
trunk/src/mame/drivers/btime.c
r17814r17815
169169   if (m_audio_nmi_enable_type == AUDIO_ENABLE_DIRECT)
170170   {
171171      m_audio_nmi_enabled = data & 1;
172      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, (m_audio_nmi_enabled && m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
172      m_audiocpu->set_input_line(INPUT_LINE_NMI, (m_audio_nmi_enabled && m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
173173   }
174174}
175175
r17814r17815
179179   if (m_audio_nmi_enable_type == AUDIO_ENABLE_AY8910)
180180   {
181181      m_audio_nmi_enabled = ~data & 1;
182      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, (m_audio_nmi_enabled && m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
182      m_audiocpu->set_input_line(INPUT_LINE_NMI, (m_audio_nmi_enabled && m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
183183   }
184184}
185185
r17814r17815
188188   btime_state *state = timer.machine().driver_data<btime_state>();
189189   int scanline = param;
190190   state->m_audio_nmi_state = scanline & 8;
191   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
191   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, (state->m_audio_nmi_enabled && state->m_audio_nmi_state) ? ASSERT_LINE : CLEAR_LINE);
192192}
193193
194194
r17814r17815
506506INPUT_CHANGED_MEMBER(btime_state::coin_inserted_irq_hi)
507507{
508508   if (newval)
509      device_set_input_line(m_maincpu, 0, HOLD_LINE);
509      m_maincpu->set_input_line(0, HOLD_LINE);
510510}
511511
512512INPUT_CHANGED_MEMBER(btime_state::coin_inserted_irq_lo)
513513{
514514   if (!newval)
515      device_set_input_line(m_maincpu, 0, HOLD_LINE);
515      m_maincpu->set_input_line(0, HOLD_LINE);
516516}
517517
518518INPUT_CHANGED_MEMBER(btime_state::coin_inserted_nmi_lo)
519519{
520   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
520   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
521521}
522522
523523
524524WRITE8_MEMBER(btime_state::audio_command_w)
525525{
526526   soundlatch_byte_w(space, offset, data);
527   device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
527   m_audiocpu->set_input_line(0, ASSERT_LINE);
528528}
529529
530530READ8_MEMBER(btime_state::audio_command_r)
531531{
532   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
532   m_audiocpu->set_input_line(0, CLEAR_LINE);
533533   return soundlatch_byte_r(space, offset);
534534}
535535
r17814r17815
14001400{
14011401   btime_state *state = machine.driver_data<btime_state>();
14021402
1403   state->m_maincpu = machine.device("maincpu");
1404   state->m_audiocpu = machine.device("audiocpu");
1403   state->m_maincpu = machine.device<cpu_device>("maincpu");
1404   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
14051405
14061406   state->save_item(NAME(state->m_btime_palette));
14071407   state->save_item(NAME(state->m_bnj_scroll1));
trunk/src/mame/drivers/m14.c
r17814r17815
7171   UINT8 m_hop_mux;
7272
7373   /* devices */
74   device_t *m_maincpu;
74   cpu_device *m_maincpu;
7575   DECLARE_WRITE8_MEMBER(m14_vram_w);
7676   DECLARE_WRITE8_MEMBER(m14_cram_w);
7777   DECLARE_READ8_MEMBER(m14_rng_r);
r17814r17815
230230{
231231   /* left coin insertion causes a rst6.5 (vector 0x34) */
232232   if (newval)
233      device_set_input_line(m_maincpu, I8085_RST65_LINE, HOLD_LINE);
233      m_maincpu->set_input_line(I8085_RST65_LINE, HOLD_LINE);
234234}
235235
236236INPUT_CHANGED_MEMBER(m14_state::right_coin_inserted)
237237{
238238   /* right coin insertion causes a rst5.5 (vector 0x2c) */
239239   if (newval)
240      device_set_input_line(m_maincpu, I8085_RST55_LINE, HOLD_LINE);
240      m_maincpu->set_input_line(I8085_RST55_LINE, HOLD_LINE);
241241}
242242
243243static INPUT_PORTS_START( m14 )
r17814r17815
312312
313313static INTERRUPT_GEN( m14_irq )
314314{
315   device_set_input_line(device, I8085_RST75_LINE, ASSERT_LINE);
316   device_set_input_line(device, I8085_RST75_LINE, CLEAR_LINE);
315   device->execute().set_input_line(I8085_RST75_LINE, ASSERT_LINE);
316   device->execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE);
317317}
318318
319319static MACHINE_START( m14 )
320320{
321321   m14_state *state = machine.driver_data<m14_state>();
322322
323   state->m_maincpu = machine.device("maincpu");
323   state->m_maincpu = machine.device<cpu_device>("maincpu");
324324
325325   state->save_item(NAME(state->m_hop_mux));
326326}
trunk/src/mame/drivers/mermaid.c
r17814r17815
366366{
367367   mermaid_state *state = machine.driver_data<mermaid_state>();
368368
369   state->m_maincpu = machine.device("maincpu");
369   state->m_maincpu = machine.device<cpu_device>("maincpu");
370370   state->m_ay1 = machine.device("ay1");
371371   state->m_ay2 = machine.device("ay2");
372372
r17814r17815
446446   mermaid_state *state = device->machine().driver_data<mermaid_state>();
447447
448448   if(state->m_nmi_mask)
449      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
449      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
450450}
451451
452452static MACHINE_CONFIG_START( mermaid, mermaid_state )
trunk/src/mame/drivers/gaelco3d.c
r17814r17815
257257static INTERRUPT_GEN( vblank_gen )
258258{
259259   gaelco3d_render(*device->machine().primary_screen);
260   device_set_input_line(device, 2, ASSERT_LINE);
260   device->execute().set_input_line(2, ASSERT_LINE);
261261}
262262
263263
trunk/src/mame/drivers/photon2.c
r17814r17815
299299
300300   if (scanline == SPEC_SCREEN_HEIGHT/2)
301301   {
302      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
302      state->m_maincpu->set_input_line(0, HOLD_LINE);
303303   }
304304   else if(scanline == 0)
305305   {
306306      if ( state->m_nmi_enable )
307307      {
308         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
308         state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
309309      }
310310   }
311311}
trunk/src/mame/drivers/highvdeo.c
r17814r17815
921921
922922static INTERRUPT_GEN( vblank_irq )
923923{
924   device_set_input_line_and_vector(device,0,HOLD_LINE,0x08/4);
924   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x08/4);
925925}
926926
927927static MACHINE_CONFIG_START( tv_vcf, highvdeo_state )
trunk/src/mame/drivers/namconb1.c
r17814r17815
347347   int scanline = (state->m_generic_paletteram_32[0x1808/4]&0xffff)-32;
348348
349349   if((!state->m_vblank_irq_active) && (state->m_namconb_cpureg[0x04] & 0xf0)) {
350      device_set_input_line(device, state->m_namconb_cpureg[0x04] & 0xf, ASSERT_LINE);
350      device->execute().set_input_line(state->m_namconb_cpureg[0x04] & 0xf, ASSERT_LINE);
351351      state->m_vblank_irq_active = 1;
352352   }
353353
r17814r17815
405405   int scanline = (state->m_generic_paletteram_32[0x1808/4]&0xffff)-32;
406406
407407   if((!state->m_vblank_irq_active) && state->m_namconb_cpureg[0x00]) {
408      device_set_input_line(device, state->m_namconb_cpureg[0x00], ASSERT_LINE);
408      device->execute().set_input_line(state->m_namconb_cpureg[0x00], ASSERT_LINE);
409409      state->m_vblank_irq_active = 1;
410410   }
411411
r17814r17815
904904   // C74 BIOS has a very short window on the CPU sync signal, so immediately let the '020 at it
905905   if ((offset == 0x6000/2) && (data & 0x80))
906906   {
907      device_spin_until_time(&space.device(), downcast<cpu_device *>(&space.device())->cycles_to_attotime(300));   // was 300
907      space.device().execute().spin_until_time(downcast<cpu_device *>(&space.device())->cycles_to_attotime(300));   // was 300
908908   }
909909}
910910
trunk/src/mame/drivers/nsmpoker.c
r17814r17815
146146
147147static INTERRUPT_GEN( nsmpoker_interrupt )
148148{
149   device_set_input_line_and_vector(device, 0, ASSERT_LINE, 3);//2=nmi  3,4,5,6
149   device->execute().set_input_line_and_vector(0, ASSERT_LINE, 3);//2=nmi  3,4,5,6
150150}
151151
152152//WRITE8_MEMBER(nsmpoker_state::debug_w)
trunk/src/mame/drivers/othello.c
r17814r17815
6969   int m_n7751_busy;
7070
7171   /* devices */
72   device_t *m_maincpu;
72   cpu_device *m_maincpu;
7373   mc6845_device *m_mc6845;
7474   device_t *m_n7751;
7575   device_t *m_ay1;
r17814r17815
153153
154154
155155    m_n7751_command = (data & 0x07);
156    device_set_input_line(m_n7751, 0, ((data & 0x08) == 0) ? ASSERT_LINE : CLEAR_LINE);
157    //device_set_input_line(m_n7751, 0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE);
156    m_n7751->execute().set_input_line(0, ((data & 0x08) == 0) ? ASSERT_LINE : CLEAR_LINE);
157    //m_n7751->execute().set_input_line(0, (data & 0x02) ? CLEAR_LINE : ASSERT_LINE);
158158    machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
159159    */
160160
r17814r17815
384384{
385385   othello_state *state = machine.driver_data<othello_state>();
386386
387   state->m_maincpu = machine.device("maincpu");
387   state->m_maincpu = machine.device<cpu_device>("maincpu");
388388   state->m_mc6845 = machine.device<mc6845_device>("crtc");
389389   state->m_n7751 = machine.device("n7751");
390390   state->m_ay1 = machine.device("ay1");
trunk/src/mame/drivers/fcrash.c
r17814r17815
4747   if (ACCESSING_BITS_0_7)
4848   {
4949      state->soundlatch_byte_w(*space, 0, data & 0xff);
50      device_set_input_line(state->m_audiocpu, 0, HOLD_LINE);
50      state->m_audiocpu->set_input_line(0, HOLD_LINE);
5151   }
5252}
5353
r17814r17815
6969   state->m_sample_buffer1 >>= 4;
7070   state->m_sample_select1 ^= 1;
7171   if (state->m_sample_select1 == 0)
72      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
72      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7373}
7474
7575static void m5205_int2( device_t *device )
r17814r17815
697697
698698   state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
699699
700   state->m_maincpu = machine.device("maincpu");
701   state->m_audiocpu = machine.device("soundcpu");
700   state->m_maincpu = machine.device<cpu_device>("maincpu");
701   state->m_audiocpu = machine.device<cpu_device>("soundcpu");
702702   state->m_msm_1 = machine.device<msm5205_device>("msm1");
703703   state->m_msm_2 = machine.device<msm5205_device>("msm2");
704704
r17814r17815
712712{
713713   cps_state *state = machine.driver_data<cps_state>();
714714
715   state->m_maincpu = machine.device("maincpu");
716   state->m_audiocpu = machine.device("soundcpu");
715   state->m_maincpu = machine.device<cpu_device>("maincpu");
716   state->m_audiocpu = machine.device<cpu_device>("soundcpu");
717717}
718718
719719static MACHINE_RESET( fcrash )
trunk/src/mame/drivers/strnskil.c
r17814r17815
324324
325325   if(scanline == 240 || scanline == 96)
326326   {
327      device_set_input_line(state->m_maincpu,0,HOLD_LINE);
327      state->m_maincpu->set_input_line(0,HOLD_LINE);
328328
329329      state->m_irq_source = (scanline != 240);
330330   }
trunk/src/mame/drivers/bfm_sc5.c
r17814r17815
4848static INTERRUPT_GEN( sc5_fake_timer_int )
4949{
5050   // this should be coming from the Timer / SIM modules of the Coldfire
51   device_set_input_line_and_vector((legacy_cpu_device*)device->machine().device("maincpu"), 5, HOLD_LINE, 0x8c);
51   device->machine().device("maincpu")->execute().set_input_line_and_vector(5, HOLD_LINE, 0x8c);
5252}
5353
5454static MACHINE_CONFIG_START( sc5, sc5_state )
trunk/src/mame/drivers/model2.c
r17814r17815
187187      i960_stall(&space->device());
188188
189189      /* spin the main cpu and let the TGP catch up */
190      device_spin_until_time(&space->device(), attotime::from_usec(100));
190      space->device().execute().spin_until_time(attotime::from_usec(100));
191191
192192      return 0;
193193   }
r17814r17815
246246      {
247247         sharc_set_flag_input(device, 1, ASSERT_LINE);
248248
249         //device_set_input_line(device, SHARC_INPUT_FLAG1, ASSERT_LINE);
249         //device->execute().set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE);
250250      }
251251      else
252252      {
253253         sharc_set_flag_input(device, 1, CLEAR_LINE);
254254
255         //device_set_input_line(device, SHARC_INPUT_FLAG1, CLEAR_LINE);
255         //device->execute().set_input_line(SHARC_INPUT_FLAG1, CLEAR_LINE);
256256      }
257257   }
258258}
r17814r17815
747747        {
748748            logerror("Boot geo, %d dwords\n", m_geocnt);
749749            machine().device("dsp2")->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
750            //device_spin_until_time(&space.device(), attotime::from_usec(1000));       // Give the SHARC enough time to boot itself
750            //space.device().execute().spin_until_time(attotime::from_usec(1000));       // Give the SHARC enough time to boot itself
751751        }
752752    }
753753
r17814r17815
976976
977977   if ((sr & 0x0700) > 0x0100)
978978   {
979      device_spin_until_time(&space->device(), attotime::from_usec(40));
979      space->device().execute().spin_until_time(attotime::from_usec(40));
980980      return 0;   // not ready yet, interrupts disabled
981981   }
982982
r17814r17815
988988   model2_state *state = space->machine().driver_data<model2_state>();
989989   if (!snd_68k_ready_r(space))
990990   {
991      device_spin_until_time(&space->device(), attotime::from_usec(40));
991      space->device().execute().spin_until_time(attotime::from_usec(40));
992992   }
993993
994994   state->m_to_68k = data;
r17814r17815
996996   space->machine().device("audiocpu")->execute().set_input_line(2, HOLD_LINE);
997997
998998   // give the 68k time to notice
999   device_spin_until_time(&space->device(), attotime::from_usec(40));
999   space->device().execute().spin_until_time(attotime::from_usec(40));
10001000}
10011001
10021002READ32_MEMBER(model2_state::model2_serial_r)
r17814r17815
10241024      scsp_midi_in(machine().device("scsp"), 0, data&0xff, 0);
10251025
10261026      // give the 68k time to notice
1027      device_spin_until_time(&space.device(), attotime::from_usec(40));
1027      space.device().execute().spin_until_time(attotime::from_usec(40));
10281028   }
10291029}
10301030
r17814r17815
17621762   {
17631763      state->m_intreq |= (1<<10);
17641764      if (state->m_intena & (1<<10))
1765         device_set_input_line(state->m_maincpu, I960_IRQ3, ASSERT_LINE);
1765         state->m_maincpu->set_input_line(I960_IRQ3, ASSERT_LINE);
17661766   }
17671767
17681768   if(scanline == 384/2)
17691769   {
17701770      state->m_intreq |= (1<<0);
17711771      if (state->m_intena & (1<<0))
1772         device_set_input_line(state->m_maincpu, I960_IRQ0, ASSERT_LINE);
1772         state->m_maincpu->set_input_line(I960_IRQ0, ASSERT_LINE);
17731773   }
17741774}
17751775
r17814r17815
17821782   {
17831783      state->m_intreq |= (1<<10);
17841784      if (state->m_intena & (1<<10))
1785         device_set_input_line(state->m_maincpu, I960_IRQ3, ASSERT_LINE);
1785         state->m_maincpu->set_input_line(I960_IRQ3, ASSERT_LINE);
17861786   }
17871787
17881788   if(scanline == 256)
17891789   {
17901790      state->m_intreq |= (1<<2);
17911791      if (state->m_intena & (1<<2))
1792         device_set_input_line(state->m_maincpu, I960_IRQ2, ASSERT_LINE);
1792         state->m_maincpu->set_input_line(I960_IRQ2, ASSERT_LINE);
17931793   }
17941794
17951795   if(scanline == 128)
17961796   {
17971797      state->m_intreq |= (1<<0);
17981798      if (state->m_intena & (1<<0))
1799         device_set_input_line(state->m_maincpu, I960_IRQ0, ASSERT_LINE);
1799         state->m_maincpu->set_input_line(I960_IRQ0, ASSERT_LINE);
18001800   }
18011801}
18021802
trunk/src/mame/drivers/wiping.c
r17814r17815
267267   wiping_state *state = device->machine().driver_data<wiping_state>();
268268
269269   if(state->m_main_irq_mask)
270      device_set_input_line(device, 0, HOLD_LINE);
270      device->execute().set_input_line(0, HOLD_LINE);
271271}
272272
273273static INTERRUPT_GEN( sound_timer_irq )
r17814r17815
275275   wiping_state *state = device->machine().driver_data<wiping_state>();
276276
277277   if(state->m_sound_irq_mask)
278      device_set_input_line(device, 0, HOLD_LINE);
278      device->execute().set_input_line(0, HOLD_LINE);
279279}
280280
281281
trunk/src/mame/drivers/popeye.c
r17814r17815
2525{
2626   /* NMIs are enabled by the I register?? How can that be? */
2727   if (device->state().state_int(Z80_I) & 1)   /* skyskipr: 0/1, popeye: 2/3 but also 0/1 */
28      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
28      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2929}
3030
3131
trunk/src/mame/drivers/cps2.c
r17814r17815
641641   if (state->m_scanline1 == param || (state->m_scanline1 < param && !state->m_scancalls))
642642   {
643643      state->m_cps_b_regs[0x10/2] = 0;
644      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
644      state->m_maincpu->set_input_line(4, HOLD_LINE);
645645      cps2_set_sprite_priorities(timer.machine());
646646      timer.machine().primary_screen->update_partial(param);
647647      state->m_scancalls++;
r17814r17815
652652   if(state->m_scanline2 == param || (state->m_scanline2 < param && !state->m_scancalls))
653653   {
654654      state->m_cps_b_regs[0x12 / 2] = 0;
655      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
655      state->m_maincpu->set_input_line(4, HOLD_LINE);
656656      cps2_set_sprite_priorities(timer.machine());
657657      timer.machine().primary_screen->update_partial(param);
658658      state->m_scancalls++;
r17814r17815
663663   {
664664      state->m_cps_b_regs[0x10 / 2] = state->m_scanline1;
665665      state->m_cps_b_regs[0x12 / 2] = state->m_scanline2;
666      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
666      state->m_maincpu->set_input_line(2, HOLD_LINE);
667667      if(state->m_scancalls)
668668      {
669669         cps2_set_sprite_priorities(timer.machine());
r17814r17815
722722
723723           /* Z80 Reset */
724724      if (state->m_audiocpu != NULL)
725         device_set_input_line(state->m_audiocpu, INPUT_LINE_RESET, (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE);
725         state->m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x0008) ? CLEAR_LINE : ASSERT_LINE);
726726
727727      coin_counter_w(space->machine(), 0, data & 0x0001);
728728      if ((strncmp(space->machine().system().name, "pzloop2", 8) == 0) ||
r17814r17815
12141214{
12151215   cps_state *state = machine.driver_data<cps_state>();
12161216
1217   state->m_maincpu = machine.device("maincpu");
1218   state->m_audiocpu = machine.device("audiocpu");
1217   state->m_maincpu = machine.device<cpu_device>("maincpu");
1218   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
12191219
12201220   if (state->m_audiocpu != NULL)   // gigaman2 has no audiocpu
12211221      state->membank("bank1")->configure_entries(0, (QSOUND_SIZE - 0x10000) / 0x4000, state->memregion("audiocpu")->base() + 0x10000, 0x4000);
trunk/src/mame/drivers/igs017.c
r17814r17815
32243224   int scanline = param;
32253225
32263226   if(scanline == 240 && state->m_irq_enable)
3227      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
3227      state->m_maincpu->set_input_line(0, HOLD_LINE);
32283228
32293229   if(scanline == 0 && state->m_nmi_enable)
3230      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
3230      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
32313231}
32323232
32333233
r17814r17815
32943294   int scanline = param;
32953295
32963296   if(scanline == 240 && state->m_irq1_enable)
3297      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
3297      state->m_maincpu->set_input_line(1, HOLD_LINE);
32983298
32993299   if(scanline == 0 && state->m_irq2_enable)
3300      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
3300      state->m_maincpu->set_input_line(2, HOLD_LINE);
33013301}
33023302
33033303static MACHINE_RESET( mgcs )
r17814r17815
35153515   int scanline = param;
35163516
35173517   if(scanline == 240 && state->m_irq1_enable)
3518      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
3518      state->m_maincpu->set_input_line(1, HOLD_LINE);
35193519
35203520   if(scanline == 0 && state->m_irq2_enable)
3521      device_set_input_line(state->m_maincpu, 3, HOLD_LINE); // lev 3 instead of 2
3521      state->m_maincpu->set_input_line(3, HOLD_LINE); // lev 3 instead of 2
35223522}
35233523
35243524static I8255A_INTERFACE( mgdh_ppi8255_intf )
trunk/src/mame/drivers/pushman.c
r17814r17815
7474
7575   if (offset == 1)
7676   {
77      device_set_input_line(m_mcu, M68705_IRQ_LINE, HOLD_LINE);
78      device_spin(&space.device());
77      m_mcu->execute().set_input_line(M68705_IRQ_LINE, HOLD_LINE);
78      space.device().execute().spin();
7979      m_new_latch = 0;
8080   }
8181}
r17814r17815
386386static void irqhandler(device_t *device, int irq)
387387{
388388   pushman_state *state = device->machine().driver_data<pushman_state>();
389   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
389   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
390390}
391391
392392static const ym2203_interface ym2203_config =
r17814r17815
404404{
405405   pushman_state *state = machine.driver_data<pushman_state>();
406406
407   state->m_maincpu = machine.device("maincpu");
408   state->m_audiocpu = machine.device("audiocpu");
407   state->m_maincpu = machine.device<cpu_device>("maincpu");
408   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
409409   state->m_mcu = machine.device("mcu");
410410
411411   state->save_item(NAME(state->m_control));
trunk/src/mame/drivers/hyperspt.c
r17814r17815
277277   hyperspt_state *state = device->machine().driver_data<hyperspt_state>();
278278
279279   if(state->m_irq_mask)
280      device_set_input_line(device, 0, HOLD_LINE);
280      device->execute().set_input_line(0, HOLD_LINE);
281281}
282282
283283//-------------------------------------------------
trunk/src/mame/drivers/amaticmg.c
r17814r17815
908908   amaticmg_state *state = device->machine().driver_data<amaticmg_state>();
909909
910910   if(state->m_nmi_mask)
911      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
911      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
912912}
913913
914914
trunk/src/mame/drivers/shanghai.c
r17814r17815
122122
123123static INTERRUPT_GEN( shanghai_interrupt )
124124{
125   device_set_input_line_and_vector(device,0,HOLD_LINE,0x80);
125   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x80);
126126}
127127
128128WRITE16_MEMBER(shanghai_state::shanghai_coin_w)
trunk/src/mame/drivers/avt.c
r17814r17815
884884{
885885   avt_state *state = device->machine().driver_data<avt_state>();
886886
887   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x06);
887   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x06);
888888}
889889
890890static MACHINE_CONFIG_START( avt, avt_state )
trunk/src/mame/drivers/missb2.c
r17814r17815
428428
429429static INTERRUPT_GEN( missb2_interrupt )
430430{
431   device_set_input_line(device, 0, HOLD_LINE);
431   device->execute().set_input_line(0, HOLD_LINE);
432432}
433433
434434/* Machine Driver */
r17814r17815
437437{
438438   missb2_state *state = machine.driver_data<missb2_state>();
439439
440   state->m_maincpu = machine.device("maincpu");
441   state->m_audiocpu = machine.device("audiocpu");
440   state->m_maincpu = machine.device<cpu_device>("maincpu");
441   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
442442   state->m_slave = machine.device("slave");
443443   state->m_mcu = NULL;
444444
trunk/src/mame/drivers/pitnrun.c
r17814r17815
7373static INTERRUPT_GEN( pitnrun_nmi_source )
7474{
7575   pitnrun_state *state = device->machine().driver_data<pitnrun_state>();
76   if(state->m_nmi) device_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE);
76   if(state->m_nmi) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7777}
7878
7979WRITE8_MEMBER(pitnrun_state::nmi_enable_w)
trunk/src/mame/drivers/photon.c
r17814r17815
184184
185185static INTERRUPT_GEN( pk8000_interrupt )
186186{
187   device_set_input_line(device, 0, HOLD_LINE);
187   device->execute().set_input_line(0, HOLD_LINE);
188188}
189189
190190static IRQ_CALLBACK(pk8000_irq_callback)
r17814r17815
196196static MACHINE_RESET(pk8000)
197197{
198198   pk8000_set_bank(machine,0);
199   device_set_irq_callback(machine.device("maincpu"), pk8000_irq_callback);
199   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pk8000_irq_callback);
200200}
201201
202202static VIDEO_START( photon )
trunk/src/mame/drivers/citycon.c
r17814r17815
2121
2222READ8_MEMBER(citycon_state::citycon_irq_ack_r)
2323{
24   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
24   m_maincpu->set_input_line(0, CLEAR_LINE);
2525
2626   return 0;
2727}
r17814r17815
190190{
191191   citycon_state *state = machine.driver_data<citycon_state>();
192192
193   state->m_maincpu = machine.device("maincpu");
193   state->m_maincpu = machine.device<cpu_device>("maincpu");
194194
195195   state->save_item(NAME(state->m_bg_image));
196196}
trunk/src/mame/drivers/playmark.c
r17814r17815
124124   {
125125      m_snd_command = (data & 0xff);
126126      m_snd_flag = 1;
127      device_yield(&space.device());
127      space.device().execute().yield();
128128   }
129129}
130130
trunk/src/mame/drivers/pgm.c
r17814r17815
245245   if (data == 0x5050)
246246   {
247247      m_ics->reset();
248      device_set_input_line(m_soundcpu, INPUT_LINE_HALT, CLEAR_LINE);
249      device_set_input_line(m_soundcpu, INPUT_LINE_RESET, PULSE_LINE);
248      m_soundcpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
249      m_soundcpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
250250      if(0)
251251      {
252252         FILE *out;
r17814r17815
259259   {
260260      /* this might not be 100% correct, but several of the games (ddp2, puzzli2 etc. expect the z80 to be turned
261261           off during data uploads, they write here before the upload */
262      device_set_input_line(m_soundcpu, INPUT_LINE_HALT, ASSERT_LINE);
262      m_soundcpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
263263   }
264264}
265265
r17814r17815
277277      if (PGMLOGERROR)
278278         logerror("SL 1 m68.w %02x (%06x) IRQ\n", data & 0xff, space.device().safe_pc());
279279      soundlatch_byte_w(space, 0, data);
280      device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE );
280      m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
281281   }
282282}
283283
r17814r17815
291291void pgm_sound_irq( device_t *device, int level )
292292{
293293   pgm_state *state = device->machine().driver_data<pgm_state>();
294   device_set_input_line(state->m_soundcpu, 0, level);
294   state->m_soundcpu->set_input_line(0, level);
295295}
296296
297297/*static const ics2115_interface pgm_ics2115_interface =
r17814r17815
497497   int scanline = param;
498498
499499   if(scanline == 224)
500      device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
500      state->m_maincpu->set_input_line(6, HOLD_LINE);
501501
502502   if(scanline == 0)
503      if (!state->m_irq4_disabled) device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
503      if (!state->m_irq4_disabled) state->m_maincpu->set_input_line(4, HOLD_LINE);
504504}
505505
506506MACHINE_START( pgm )
trunk/src/mame/drivers/namcos21.c
r17814r17815
578578               offset == 0x103 &&
579579               &space.device() == machine().device("maincpu"))
580580      { /* hack; synchronization for solvalou */
581         device_yield(&space.device());
581         space.device().execute().yield();
582582      }
583583   }
584584} /* dspram16_w */
trunk/src/mame/drivers/jangou.c
r17814r17815
306306WRITE8_MEMBER(jangou_state::sound_latch_w)
307307{
308308   soundlatch_byte_w(space, 0, data & 0xff);
309   device_set_input_line(m_cpu_1, INPUT_LINE_NMI, ASSERT_LINE);
309   m_cpu_1->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
310310}
311311
312312READ8_MEMBER(jangou_state::sound_latch_r)
313313{
314   device_set_input_line(m_cpu_1, INPUT_LINE_NMI, CLEAR_LINE);
314   m_cpu_1->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
315315   return soundlatch_byte_r(space, 0);
316316}
317317
r17814r17815
331331
332332   /* Trigger an IRQ for every 8 shifted bits */
333333   if ((++state->m_cvsd_shift_cnt & 7) == 0)
334      device_set_input_line(state->m_cpu_1, 0, HOLD_LINE);
334      state->m_cpu_1->execute().set_input_line(0, HOLD_LINE);
335335}
336336
337337
r17814r17815
350350   else
351351   {
352352      msm5205_data_w(device, state->m_adpcm_byte & 0xf);
353      device_set_input_line(state->m_cpu_1, 0, HOLD_LINE);
353      state->m_cpu_1->execute().set_input_line(0, HOLD_LINE);
354354   }
355355
356356   state->m_msm5205_vclk_toggle ^= 1;
r17814r17815
371371WRITE8_MEMBER(jangou_state::master_com_w)
372372{
373373
374   device_set_input_line(m_nsc, 0, HOLD_LINE);
374   m_nsc->execute().set_input_line(0, HOLD_LINE);
375375   m_nsc_latch = data;
376376}
377377
trunk/src/mame/drivers/gameplan.c
r17814r17815
138138WRITE8_MEMBER(gameplan_state::audio_reset_w)
139139{
140140
141   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
141   m_audiocpu->set_input_line(INPUT_LINE_RESET, data ? CLEAR_LINE : ASSERT_LINE);
142142
143143   if (data == 0)
144144   {
r17814r17815
179179
180180WRITE_LINE_MEMBER(gameplan_state::r6532_irq)
181181{
182   device_set_input_line(m_audiocpu, 0, state);
182   m_audiocpu->set_input_line(0, state);
183183   if (state == ASSERT_LINE)
184184      machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
185185}
r17814r17815
977977{
978978   gameplan_state *state = machine.driver_data<gameplan_state>();
979979
980   state->m_maincpu = machine.device("maincpu");
981   state->m_audiocpu = machine.device("audiocpu");
980   state->m_maincpu = machine.device<cpu_device>("maincpu");
981   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
982982   state->m_riot = machine.device("riot");
983983
984984   /* register for save states */
trunk/src/mame/drivers/darius.c
r17814r17815
145145   /* however this fails when recovering from a save state
146146       if cpu B is disabled !! */
147147   darius_state *state = machine.driver_data<darius_state>();
148   device_set_input_line(state->m_cpub, INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x01) ? CLEAR_LINE : ASSERT_LINE);
148   state->m_cpub->execute().set_input_line(INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x01) ? CLEAR_LINE : ASSERT_LINE);
149149}
150150
151151WRITE16_MEMBER(darius_state::cpua_ctrl_w)
r17814r17815
504504   darius_state *state = device->machine().driver_data<darius_state>();
505505
506506   if (state->m_nmi_enable)
507      device_set_input_line(state->m_adpcm, INPUT_LINE_NMI, PULSE_LINE);
507      state->m_adpcm->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
508508}
509509
510510static const msm5205_interface msm5205_config =
r17814r17815
785785static void irqhandler( device_t *device, int irq )   /* assumes Z80 sandwiched between 68Ks */
786786{
787787   darius_state *state = device->machine().driver_data<darius_state>();
788   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
788   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
789789}
790790
791791static const ym2203_interface ym2203_interface_1 =
r17814r17815
844844   state->membank("bank1")->configure_entry(4, state->memregion("audiocpu")->base());
845845   state->membank("bank1")->set_entry(4);
846846
847   state->m_maincpu = machine.device("maincpu");
848   state->m_audiocpu = machine.device("audiocpu");
847   state->m_maincpu = machine.device<cpu_device>("maincpu");
848   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
849849   state->m_cpub = machine.device("cpub");
850850   state->m_adpcm = machine.device("adpcm");
851851   state->m_pc080sn = machine.device("pc080sn");
trunk/src/mame/drivers/capbowl.c
r17814r17815
108108static INTERRUPT_GEN( capbowl_interrupt )
109109{
110110   if (device->machine().root_device().ioport("SERVICE")->read() & 1)                  /* get status of the F2 key */
111      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);   /* trigger self test */
111      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);   /* trigger self test */
112112}
113113
114114
r17814r17815
182182
183183WRITE8_MEMBER(capbowl_state::capbowl_sndcmd_w)
184184{
185   device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
185   m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
186186   soundlatch_byte_w(space, offset, data);
187187}
188188
r17814r17815
198198static void firqhandler( device_t *device, int irq )
199199{
200200   capbowl_state *state = device->machine().driver_data<capbowl_state>();
201   device_set_input_line(state->m_audiocpu, 1, irq ? ASSERT_LINE : CLEAR_LINE);
201   state->m_audiocpu->set_input_line(1, irq ? ASSERT_LINE : CLEAR_LINE);
202202}
203203
204204
r17814r17815
338338{
339339   capbowl_state *state = machine.driver_data<capbowl_state>();
340340
341   state->m_maincpu = machine.device("maincpu");
342   state->m_audiocpu = machine.device("audiocpu");
341   state->m_maincpu = machine.device<cpu_device>("maincpu");
342   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
343343
344344   state->save_item(NAME(state->m_blitter_addr));
345345   state->save_item(NAME(state->m_last_trackball_val[0]));
trunk/src/mame/drivers/ikki.c
r17814r17815
248248
249249   if(scanline == 240 || scanline == 120) // TODO: where non-timer IRQ happens?
250250   {
251      device_set_input_line(state->m_maincpu,0,HOLD_LINE);
251      state->m_maincpu->set_input_line(0,HOLD_LINE);
252252
253253      state->m_irq_source = (scanline != 240);
254254   }
trunk/src/mame/drivers/kinst.c
r17814r17815
283283
284284static INTERRUPT_GEN( irq0_start )
285285{
286   device_set_input_line(device, 0, ASSERT_LINE);
286   device->execute().set_input_line(0, ASSERT_LINE);
287287   device->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(irq0_stop));
288288}
289289
r17814r17815
363363      case 4:      /* $a0 */
364364         result = ioport(portnames[offset])->read();
365365         if (space.device().safe_pc() == 0x802d428)
366            device_spin_until_interrupt(&space.device());
366            space.device().execute().spin_until_interrupt();
367367         break;
368368   }
369369
trunk/src/mame/drivers/st0016.c
r17814r17815
423423   int scanline = param;
424424
425425   if(scanline == 240)
426      device_set_input_line(state->m_maincpu,0,HOLD_LINE);
426      state->m_maincpu->set_input_line(0,HOLD_LINE);
427427   else if((scanline % 64) == 0)
428428      if(state->m_maincpu->state_int(Z80_IFF1)) /* dirty hack ... */
429         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE );
429         state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
430430}
431431
432432static const st0016_interface st0016_config =
trunk/src/mame/drivers/beathead.c
r17814r17815
499499{
500500   int result = *m_speedup_data;
501501   if ((space.device().safe_pcbase() & 0xfffff) == 0x006f0 && result == space.device().state().state_int(ASAP_R3))
502      device_spin_until_interrupt(&space.device());
502      space.device().execute().spin_until_interrupt();
503503   return result;
504504}
505505
r17814r17815
512512   {
513513      UINT32 temp = (INT16)result + m_movie_speedup_data[4] * 262;
514514      if (temp - (UINT32)space.device().state().state_int(ASAP_R15) < (UINT32)space.device().state().state_int(ASAP_R23))
515         device_spin_until_interrupt(&space.device());
515         space.device().execute().spin_until_interrupt();
516516   }
517517   return result;
518518}
trunk/src/mame/drivers/sbasketb.c
r17814r17815
5252
5353WRITE8_MEMBER(sbasketb_state::sbasketb_sh_irqtrigger_w)
5454{
55   device_set_input_line_and_vector(machine().device<cpu_device>("audiocpu"), 0, HOLD_LINE, 0xff);
55   machine().device<cpu_device>("audiocpu")->set_input_line_and_vector(0, HOLD_LINE, 0xff);
5656}
5757
5858WRITE8_MEMBER(sbasketb_state::sbasketb_coin_counter_w)
r17814r17815
181181   sbasketb_state *state = device->machine().driver_data<sbasketb_state>();
182182
183183   if(state->m_irq_mask)
184      device_set_input_line(device, 0, HOLD_LINE);
184      device->execute().set_input_line(0, HOLD_LINE);
185185}
186186
187187//-------------------------------------------------
trunk/src/mame/drivers/lastbank.c
r17814r17815
440440
441441   if (scanline == 240 && (state->m_irq_enable & 4))
442442   {
443      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, state->m_irq_vector[2]);
443      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[2]);
444444   }
445445
446446   if (scanline == 0 && (state->m_irq_enable & 2))
447447   {
448      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, state->m_irq_vector[1]);
448      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[1]);
449449   }
450450}
451451
trunk/src/mame/drivers/skyarmy.c
r17814r17815
158158{
159159   skyarmy_state *state = device->machine().driver_data<skyarmy_state>();
160160
161   if(state->m_nmi) device_set_input_line(device,INPUT_LINE_NMI, PULSE_LINE);
161   if(state->m_nmi) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
162162}
163163
164164
trunk/src/mame/drivers/himesiki.c
r17814r17815
100100WRITE8_MEMBER(himesiki_state::himesiki_sound_w)
101101{
102102   soundlatch_byte_w(space, offset, data);
103   device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
103   m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
104104}
105105
106106/****************************************************************************/
r17814r17815
273273
274274   state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
275275
276   state->m_subcpu = machine.device("sub");
276   state->m_subcpu = machine.device<cpu_device>("sub");
277277
278278   state->save_item(NAME(state->m_scrollx));
279279   state->save_item(NAME(state->m_flipscreen));
trunk/src/mame/drivers/battlex.c
r17814r17815
5252{
5353   battlex_state *state = device->machine().driver_data<battlex_state>();
5454   state->m_in0_b4 = 1;
55   device_set_input_line(device, 0, ASSERT_LINE);
55   device->execute().set_input_line(0, ASSERT_LINE);
5656}
5757
5858CUSTOM_INPUT_MEMBER(battlex_state::battlex_in0_b4_r)
trunk/src/mame/drivers/adp.c
r17814r17815
173173   struct { int r,g,b,offs,offs_internal; } m_pal;
174174
175175   /* devices */
176   device_t *m_maincpu;
176   cpu_device *m_maincpu;
177177   device_t *m_duart;
178178   DECLARE_READ16_MEMBER(test_r);
179179   DECLARE_WRITE16_MEMBER(wh2_w);
r17814r17815
269269static void duart_irq_handler( device_t *device, int state, UINT8 vector )
270270{
271271   adp_state *adp = device->machine().driver_data<adp_state>();
272   device_set_input_line_and_vector(adp->m_maincpu, 4, state, vector);
272   adp->m_maincpu->set_input_line_and_vector(4, state, vector);
273273}
274274
275275static void duart_tx( device_t *device, int channel, UINT8 data )
r17814r17815
301301{
302302   adp_state *state = machine.driver_data<adp_state>();
303303
304   state->m_maincpu = machine.device("maincpu");
304   state->m_maincpu = machine.device<cpu_device>("maincpu");
305305   state->m_duart = machine.device("duart68681");
306306   //state->m_h63484 = machine.device("h63484");
307307
r17814r17815
623623/*
624624static INTERRUPT_GEN( adp_int )
625625{
626    device_set_input_line(device, 1, HOLD_LINE); // ??? All irqs have the same vector, and the mask used is 0 or 7
626    device->execute().set_input_line(1, HOLD_LINE); // ??? All irqs have the same vector, and the mask used is 0 or 7
627627}
628628*/
629629static const ay8910_interface ay8910_config =
trunk/src/mame/drivers/pcxt.c
r17814r17815
719719   device_t *speaker = machine.device("speaker");
720720   state->m_bank = -1;
721721   state->m_lastvalue = -1;
722   device_set_irq_callback(machine.device("maincpu"), irq_callback);
722   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
723723
724724   state->m_pc_spkrdata = 0;
725725   state->m_pc_input = 0;
trunk/src/mame/drivers/mcatadv.c
r17814r17815
148148{
149149
150150   soundlatch_byte_w(space, 0, data);
151   device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
151   m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
152152}
153153
154154#if 0 // mcat only.. install read handler?
r17814r17815
416416static void sound_irq( device_t *device, int irq )
417417{
418418   mcatadv_state *state = device->machine().driver_data<mcatadv_state>();
419   device_set_input_line(state->m_soundcpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
419   state->m_soundcpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
420420}
421421
422422static const ym2610_interface mcatadv_ym2610_interface =
r17814r17815
433433   state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
434434   state->membank("bank1")->set_entry(1);
435435
436   state->m_maincpu = machine.device("maincpu");
437   state->m_soundcpu = machine.device("soundcpu");
436   state->m_maincpu = machine.device<cpu_device>("maincpu");
437   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
438438
439439   state->save_item(NAME(state->m_palette_bank1));
440440   state->save_item(NAME(state->m_palette_bank2));
trunk/src/mame/drivers/toaplan2.c
r17814r17815
387387   toaplan2_state *state = device->machine().driver_data<toaplan2_state>();
388388
389389   if (state->m_sub_cpu != NULL)
390      device_set_input_line(state->m_sub_cpu, INPUT_LINE_RESET, PULSE_LINE);
390      state->m_sub_cpu->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
391391}
392392
393393
r17814r17815
491491{
492492   toaplan2_state *state = machine.driver_data<toaplan2_state>();
493493
494   device_set_input_line(state->m_main_cpu, param, HOLD_LINE);
494   state->m_main_cpu->execute().set_input_line(param, HOLD_LINE);
495495}
496496
497497static void toaplan2_vblank_irq(running_machine &machine, int irq_line)
r17814r17815
588588
589589      toaplan2_coin_w(space, offset, data & 0x0f);
590590
591      device_set_input_line(m_sub_cpu, INPUT_LINE_RESET,  (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
591      m_sub_cpu->execute().set_input_line(INPUT_LINE_RESET,  (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
592592   }
593593   if (ACCESSING_BITS_8_15 && (data & 0xff00) )
594594   {
r17814r17815
759759WRITE16_MEMBER(toaplan2_state::fixeight_subcpu_ctrl_w)
760760{
761761
762   device_set_input_line(m_sub_cpu, INPUT_LINE_RESET, (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
762   m_sub_cpu->execute().set_input_line(INPUT_LINE_RESET, (data & m_v25_reset_line) ? CLEAR_LINE : ASSERT_LINE);
763763}
764764
765765
r17814r17815
869869   {
870870
871871      soundlatch_byte_w(space, offset, data & 0xff);
872      device_set_input_line(m_sub_cpu, 0, HOLD_LINE);
872      m_sub_cpu->execute().set_input_line(0, HOLD_LINE);
873873   }
874874}
875875
r17814r17815
927927   {
928928
929929      soundlatch_byte_w(space, offset, data & 0xff);
930      device_set_input_line(m_sub_cpu, INPUT_LINE_NMI, ASSERT_LINE);
930      m_sub_cpu->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
931931   }
932932}
933933
r17814r17815
938938   {
939939
940940      soundlatch2_byte_w(space, offset, data & 0xff);
941      device_set_input_line(m_sub_cpu, INPUT_LINE_NMI, ASSERT_LINE);
941      m_sub_cpu->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
942942   }
943943}
944944
r17814r17815
955955
956956   // not sure whether this is correct
957957   // the 68K writes here during the sound IRQ handler, and nowhere else...
958   device_set_input_line(m_main_cpu, m_sndirq_line, CLEAR_LINE);
958   m_main_cpu->execute().set_input_line(m_sndirq_line, CLEAR_LINE);
959959}
960960
961961
r17814r17815
963963{
964964
965965   // if batrider_clear_sndirq_w() is correct, should this be ASSERT_LINE?
966   device_set_input_line(m_main_cpu, m_sndirq_line, HOLD_LINE);
966   m_main_cpu->execute().set_input_line(m_sndirq_line, HOLD_LINE);
967967}
968968
969969
970970WRITE8_MEMBER(toaplan2_state::batrider_clear_nmi_w)
971971{
972972
973   device_set_input_line(m_sub_cpu, INPUT_LINE_NMI, CLEAR_LINE);
973   m_sub_cpu->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
974974}
975975
976976
r17814r17815
10231023
10241024static INTERRUPT_GEN( bbakraid_snd_interrupt )
10251025{
1026   device_set_input_line(device, 0, HOLD_LINE);
1026   device->execute().set_input_line(0, HOLD_LINE);
10271027}
10281028
10291029
r17814r17815
30053005   toaplan2_state *state = device->machine().driver_data<toaplan2_state>();
30063006
30073007   if (state->m_sub_cpu != NULL)      // wouldn't tekipaki have problem without this? "mcu" is not generally added
3008      device_set_input_line(state->m_sub_cpu, 0, linestate);
3008      state->m_sub_cpu->execute().set_input_line(0, linestate);
30093009}
30103010
30113011static const ym3812_interface ym3812_config =
trunk/src/mame/drivers/mjkjidai.c
r17814r17815
420420   mjkjidai_state *state = device->machine().driver_data<mjkjidai_state>();
421421
422422   if(state->m_nmi_mask)
423      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
423      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
424424}
425425
426426
trunk/src/mame/drivers/jailbrek.c
r17814r17815
105105   jailbrek_state *state = device->machine().driver_data<jailbrek_state>();
106106
107107   if (state->m_irq_enable)
108      device_set_input_line(device, 0, HOLD_LINE);
108      device->execute().set_input_line(0, HOLD_LINE);
109109}
110110
111111static INTERRUPT_GEN( jb_interrupt_nmi )
r17814r17815
113113   jailbrek_state *state = device->machine().driver_data<jailbrek_state>();
114114
115115   if (state->m_nmi_enable)
116      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
116      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
117117}
118118
119119
trunk/src/mame/drivers/su2000.c
r17814r17815
279279   space->install_write_bank(0x100000, ram_limit - 1, "hma_bank");
280280   state->membank("hma_bank")->set_base(state->m_pc_ram + 0xa0000);
281281
282   device_set_irq_callback(machine.device("maincpu"), pc_irq_callback);
282   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc_irq_callback);
283283
284284   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, su2000_set_keyb_int);
285285
trunk/src/mame/drivers/gaelco.c
r17814r17815
3737   if (ACCESSING_BITS_0_7)
3838   {
3939      soundlatch_byte_w(space, 0, data & 0xff);
40      device_set_input_line(m_audiocpu, M6809_FIRQ_LINE, HOLD_LINE);
40      m_audiocpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
4141   }
4242}
4343
r17814r17815
499499{
500500   gaelco_state *state = machine.driver_data<gaelco_state>();
501501
502   state->m_audiocpu = machine.device("audiocpu");
502   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
503503}
504504
505505static MACHINE_CONFIG_START( bigkarnk, gaelco_state )
trunk/src/mame/drivers/zac_1.c
r17814r17815
163163
164164WRITE8_MEMBER( zac_1_state::reset_int_w )
165165{
166   device_set_input_line(m_maincpu, INPUT_LINE_IRQ0, CLEAR_LINE);
166   m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
167167}
168168
169169READ8_MEMBER( zac_1_state::serial_r )
r17814r17815
199199   if (state->m_t_c > 0x40)
200200   {
201201      UINT8 vector = (state->ioport("TEST")->read() ) ? 0x10 : 0x18;
202      device_set_input_line_and_vector(state->m_maincpu, INPUT_LINE_IRQ0, ASSERT_LINE, vector);
202      state->m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, vector);
203203   }
204204   else
205205      state->m_t_c++;
r17814r17815
253253
254254READ8_MEMBER( zac_1_state::reset_int_r )
255255{
256   device_set_input_line(m_maincpu, INPUT_LINE_IRQ0, CLEAR_LINE);
256   m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
257257   return 0;
258258}
259259
trunk/src/mame/drivers/crbaloon.c
r17814r17815
361361   crbaloon_state *state = device->machine().driver_data<crbaloon_state>();
362362
363363   if(state->m_irq_mask)
364      device_set_input_line(device, 0, HOLD_LINE);
364      device->execute().set_input_line(0, HOLD_LINE);
365365}
366366
367367
trunk/src/mame/drivers/kas89.c
r17814r17815
214214   UINT8 m_leds_mux_data;
215215   UINT8 m_outdata;         /* Muxed with the sound latch. Output to a sign? */
216216
217   device_t *m_maincpu;
218   device_t *m_audiocpu;
217   cpu_device *m_maincpu;
218   cpu_device *m_audiocpu;
219219
220220   required_device<v9938_device> m_v9938;
221221   DECLARE_WRITE8_MEMBER(mux_w);
r17814r17815
257257static MACHINE_START( kas89 )
258258{
259259   kas89_state *state = machine.driver_data<kas89_state>();
260   state->m_maincpu = machine.device("maincpu");
261   state->m_audiocpu = machine.device("audiocpu");
260   state->m_maincpu = machine.device<cpu_device>("maincpu");
261   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
262262
263263   output_set_lamp_value(37, 0);   /* turning off the operator led */
264264}
r17814r17815
315315   kas89_state *state = timer.machine().driver_data<kas89_state>();
316316
317317   if (state->m_main_nmi_enable)
318      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
318      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
319319}
320320
321321static TIMER_DEVICE_CALLBACK ( kas89_sound_nmi_cb )
322322{
323323   kas89_state *state = timer.machine().driver_data<kas89_state>();
324324
325   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
325   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
326326}
327327
328328
r17814r17815
379379   else
380380   {
381381      soundlatch_byte_w(space, 0, data);
382      device_set_input_line(m_audiocpu, 0, ASSERT_LINE );
382      m_audiocpu->set_input_line(0, ASSERT_LINE );
383383   }
384384}
385385
386386WRITE8_MEMBER(kas89_state::int_ack_w)
387387{
388   device_set_input_line(m_audiocpu, 0, CLEAR_LINE );
388   m_audiocpu->set_input_line(0, CLEAR_LINE );
389389}
390390
391391
trunk/src/mame/drivers/munchmo.c
r17814r17815
4646   munchmo_state *state = device->machine().driver_data<munchmo_state>();
4747
4848   if (state->m_nmi_enable)
49      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
49      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5050
51   device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
51   state->m_maincpu->set_input_line(0, HOLD_LINE);
5252}
5353
5454static INTERRUPT_GEN( mnchmobl_sound_irq )
5555{
5656   //munchmo_state *state = device->machine().driver_data<munchmo_state>();
5757
58   device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
58   device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
5959}
6060
6161WRITE8_MEMBER(munchmo_state::mnchmobl_soundlatch_w)
6262{
6363
6464   soundlatch_byte_w(space, 0, data);
65   device_set_input_line(m_audiocpu, 0, HOLD_LINE );
65   m_audiocpu->set_input_line(0, HOLD_LINE );
6666}
6767
6868
6969WRITE8_MEMBER(munchmo_state::sound_nmi_ack_w)
7070{
71   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
71   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
7272}
7373
7474READ8_MEMBER(munchmo_state::munchmo_ay1reset_r)
r17814r17815
310310{
311311   munchmo_state *state = machine.driver_data<munchmo_state>();
312312
313   state->m_maincpu = machine.device("maincpu");
314   state->m_audiocpu = machine.device("audiocpu");
313   state->m_maincpu = machine.device<cpu_device>("maincpu");
314   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
315315
316316   state->save_item(NAME(state->m_palette_bank));
317317   state->save_item(NAME(state->m_flipscreen));
trunk/src/mame/drivers/voyager.c
r17814r17815
653653static MACHINE_START(voyager)
654654{
655655   voyager_state *state = machine.driver_data<voyager_state>();
656   device_set_irq_callback(machine.device("maincpu"), irq_callback);
656   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
657657
658658   state->m_pit8254 = machine.device( "pit8254" );
659659   state->m_pic8259_1 = machine.device( "pic8259_1" );
trunk/src/mame/drivers/lastduel.c
r17814r17815
442442static void irqhandler( device_t *device, int irq )
443443{
444444   lastduel_state *state = device->machine().driver_data<lastduel_state>();
445   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
445   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
446446}
447447
448448static const ym2203_interface ym2203_config =
r17814r17815
459459{
460460   lastduel_state *state = timer.machine().driver_data<lastduel_state>();
461461
462   device_set_input_line(state->m_maincpu, 4, HOLD_LINE); /* Controls */
462   state->m_maincpu->set_input_line(4, HOLD_LINE); /* Controls */
463463}
464464
465465static TIMER_DEVICE_CALLBACK( madgear_timer_cb )
466466{
467467   lastduel_state *state = timer.machine().driver_data<lastduel_state>();
468468
469   device_set_input_line(state->m_maincpu, 6, HOLD_LINE); /* Controls */
469   state->m_maincpu->set_input_line(6, HOLD_LINE); /* Controls */
470470}
471471
472472static MACHINE_START( lastduel )
trunk/src/mame/drivers/drgnmst.c
r17814r17815
5454   if (ACCESSING_BITS_0_7)
5555   {
5656      m_snd_command = (data & 0xff);
57      device_yield(&space.device());
57      space.device().execute().yield();
5858   }
5959}
6060
trunk/src/mame/drivers/cmmb.c
r17814r17815
303303{
304304   //if(device->machine().input().code_pressed_once(KEYCODE_Z))
305305   //if(device->machine().input().code_pressed(KEYCODE_Z))
306//      device_set_input_line(device, 0, HOLD_LINE);
306//      device->execute().set_input_line(0, HOLD_LINE);
307307}
308308
309309static MACHINE_RESET( cmmb )
trunk/src/mame/drivers/boxer.c
r17814r17815
3737   UINT8 m_pot_latch;
3838
3939   /* devices */
40   device_t *m_maincpu;
40   cpu_device *m_maincpu;
4141   DECLARE_READ8_MEMBER(boxer_input_r);
4242   DECLARE_READ8_MEMBER(boxer_misc_r);
4343   DECLARE_WRITE8_MEMBER(boxer_bell_w);
r17814r17815
6060   int mask = param;
6161
6262   if (state->m_pot_latch & mask)
63      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
63      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
6464
6565   state->m_pot_state |= mask;
6666}
r17814r17815
7171   boxer_state *state = machine.driver_data<boxer_state>();
7272   int scanline = param;
7373
74   device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
74   state->m_maincpu->set_input_line(0, ASSERT_LINE);
7575
7676   if (scanline == 0)
7777   {
r17814r17815
262262
263263   m_pot_latch = data & 0x3f;
264264
265   device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
265   m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
266266}
267267
268268
269269WRITE8_MEMBER(boxer_state::boxer_irq_reset_w)
270270{
271   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
271   m_maincpu->set_input_line(0, CLEAR_LINE);
272272}
273273
274274
r17814r17815
426426{
427427   boxer_state *state = machine.driver_data<boxer_state>();
428428
429   state->m_maincpu = machine.device("maincpu");
429   state->m_maincpu = machine.device<cpu_device>("maincpu");
430430
431431   state->save_item(NAME(state->m_pot_state));
432432   state->save_item(NAME(state->m_pot_latch));
trunk/src/mame/drivers/freekick.c
r17814r17815
8080{
8181   freekick_state *state = device->machine().driver_data<freekick_state>();
8282   if (state->m_nmi_en)
83      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
83      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8484}
8585
8686WRITE8_MEMBER(freekick_state::oigas_5_w)
trunk/src/mame/drivers/redclash.c
r17814r17815
2828static WRITE8_HANDLER( irqack_w )
2929{
3030   ladybug_state *state = space->machine().driver_data<ladybug_state>();
31   device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
31   state->m_maincpu->set_input_line(0, CLEAR_LINE);
3232}
3333
3434static ADDRESS_MAP_START( zerohour_map, AS_PROGRAM, 8, ladybug_state )
r17814r17815
7979INPUT_CHANGED_MEMBER( ladybug_state::left_coin_inserted )
8080{
8181   if(newval)
82      device_set_input_line(m_maincpu, 0, ASSERT_LINE);
82      m_maincpu->set_input_line(0, ASSERT_LINE);
8383}
8484
8585INPUT_CHANGED_MEMBER( ladybug_state::right_coin_inserted )
8686{
8787   if(newval)
88      device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
88      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8989}
9090
9191static INPUT_PORTS_START( redclash )
r17814r17815
328328{
329329   ladybug_state *state = machine.driver_data<ladybug_state>();
330330
331   state->m_maincpu = machine.device("maincpu");
331   state->m_maincpu = machine.device<cpu_device>("maincpu");
332332
333333   state->save_item(NAME(state->m_star_speed));
334334   state->save_item(NAME(state->m_gfxbank));
trunk/src/mame/drivers/wgp.c
r17814r17815
419419   /* however this fails when recovering from a save state
420420       if cpu B is disabled !! */
421421   wgp_state *state = machine.driver_data<wgp_state>();
422   device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
422   state->m_subcpu->set_input_line(INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
423423
424424   /* bit 1 is "vibration" acc. to test mode */
425425}
r17814r17815
447447static TIMER_CALLBACK( wgp_interrupt4 )
448448{
449449   wgp_state *state = machine.driver_data<wgp_state>();
450   device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
450   state->m_maincpu->set_input_line(4, HOLD_LINE);
451451}
452452#endif
453453
454454static TIMER_CALLBACK( wgp_interrupt6 )
455455{
456456   wgp_state *state = machine.driver_data<wgp_state>();
457   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
457   state->m_maincpu->set_input_line(6, HOLD_LINE);
458458}
459459
460460/* 68000 B */
r17814r17815
462462static TIMER_CALLBACK( wgp_cpub_interrupt6 )
463463{
464464   wgp_state *state = machine.driver_data<wgp_state>();
465   device_set_input_line(state->m_subcpu, 6, HOLD_LINE);   /* assumes Z80 sandwiched between the 68Ks */
465   state->m_subcpu->set_input_line(6, HOLD_LINE);   /* assumes Z80 sandwiched between the 68Ks */
466466}
467467
468468
r17814r17815
475475static INTERRUPT_GEN( wgp_cpub_interrupt )
476476{
477477   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(200000-500), FUNC(wgp_cpub_interrupt6));
478   device_set_input_line(device, 4, HOLD_LINE);
478   device->execute().set_input_line(4, HOLD_LINE);
479479}
480480
481481
r17814r17815
899899static void irqhandler( device_t *device, int irq )   // assumes Z80 sandwiched between 68Ks
900900{
901901   wgp_state *state = device->machine().driver_data<wgp_state>();
902   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
902   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
903903}
904904
905905static const ym2610_interface ym2610_config =
r17814r17815
948948
949949   state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
950950
951   state->m_maincpu = machine.device("maincpu");
952   state->m_audiocpu = machine.device("audiocpu");
953   state->m_subcpu = machine.device("sub");
951   state->m_maincpu = machine.device<cpu_device>("maincpu");
952   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
953   state->m_subcpu = machine.device<cpu_device>("sub");
954954   state->m_tc0140syt = machine.device("tc0140syt");
955955   state->m_tc0100scn = machine.device("tc0100scn");
956956
trunk/src/mame/drivers/scregg.c
r17814r17815
7272{
7373   // assume that the irq generator is similar to burgertime hw
7474   scregg_state *state = timer.machine().driver_data<scregg_state>();
75   device_set_input_line(state->m_maincpu, 0, (param & 8) ? ASSERT_LINE : CLEAR_LINE);
75   state->m_maincpu->set_input_line(0, (param & 8) ? ASSERT_LINE : CLEAR_LINE);
7676}
7777
7878WRITE8_MEMBER(scregg_state::scregg_irqack_w)
7979{
80   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
80   m_maincpu->set_input_line(0, CLEAR_LINE);
8181}
8282
8383READ8_MEMBER(scregg_state::scregg_irqack_r)
8484{
85   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
85   m_maincpu->set_input_line(0, CLEAR_LINE);
8686   return 0;
8787}
8888
r17814r17815
235235{
236236   scregg_state *state = machine.driver_data<scregg_state>();
237237
238   state->m_maincpu = machine.device("maincpu");
238   state->m_maincpu = machine.device<cpu_device>("maincpu");
239239   state->m_audiocpu = NULL;
240240
241241   state->save_item(NAME(state->m_btime_palette));
trunk/src/mame/drivers/taitoair.c
r17814r17815
238238
239239   m_dsp_hold_signal = (data & 4) ? CLEAR_LINE : ASSERT_LINE;
240240
241   device_set_input_line(m_dsp, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
241   m_dsp->execute().set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
242242
243243   logerror("68K:%06x writing %04x to TMS32025.  %s HOLD , %s RESET\n", space.device().safe_pcbase(), data, ((data & 4) ? "Clear" : "Assert"), ((data & 1) ? "Clear" : "Assert"));
244244}
r17814r17815
635635static void irqhandler( device_t *device, int irq )
636636{
637637   taitoair_state *state = device->machine().driver_data<taitoair_state>();
638   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
638   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
639639}
640640
641641static const ym2610_interface airsys_ym2610_interface =
r17814r17815
674674
675675   state->membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
676676
677   state->m_audiocpu = machine.device("audiocpu");
677   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
678678   state->m_dsp = machine.device("dsp");
679679   state->m_tc0080vco = machine.device("tc0080vco");
680680
trunk/src/mame/drivers/tceptor.c
r17814r17815
4141{
4242   tceptor_state *state = device->machine().driver_data<tceptor_state>();
4343   if (state->m_m6809_irq_enable)
44      device_set_input_line(device, 0, HOLD_LINE);
44      device->execute().set_input_line(0, HOLD_LINE);
4545   else
4646      state->m_m6809_irq_enable = 1;
4747}
r17814r17815
6161{
6262   tceptor_state *state = device->machine().driver_data<tceptor_state>();
6363   if (state->m_m68k_irq_enable)
64      device_set_input_line(device, M68K_IRQ_1, HOLD_LINE);
64      device->execute().set_input_line(M68K_IRQ_1, HOLD_LINE);
6565}
6666
6767WRITE16_MEMBER(tceptor_state::m68k_irq_enable_w)
r17814r17815
7474{
7575   tceptor_state *state = device->machine().driver_data<tceptor_state>();
7676   if (state->m_mcu_irq_enable)
77      device_set_input_line(device, 0, HOLD_LINE);
77      device->execute().set_input_line(0, HOLD_LINE);
7878   else
7979      state->m_mcu_irq_enable = 1;
8080}
trunk/src/mame/drivers/aquarium.c
r17814r17815
6363//  popmessage("sound write %04x",data);
6464
6565   soundlatch_byte_w(space, 1, data & 0xff);
66   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
66   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
6767}
6868
6969WRITE8_MEMBER(aquarium_state::aquarium_z80_bank_w)
r17814r17815
291291static void irq_handler( device_t *device, int irq )
292292{
293293   aquarium_state *state = device->machine().driver_data<aquarium_state>();
294   device_set_input_line(state->m_audiocpu, 0 , irq ? ASSERT_LINE : CLEAR_LINE);
294   state->m_audiocpu->set_input_line(0 , irq ? ASSERT_LINE : CLEAR_LINE);
295295}
296296
297297static const ym2151_interface ym2151_config =
r17814r17815
304304{
305305   aquarium_state *state = machine.driver_data<aquarium_state>();
306306
307   state->m_audiocpu = machine.device("audiocpu");
307   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
308308
309309   state->save_item(NAME(state->m_aquarium_snd_ack));
310310}
trunk/src/mame/drivers/metro.c
r17814r17815
149149            irq_level[state->m_irq_levels[i] & 7] = 1;
150150
151151      for (i = 0; i < 8; i++)
152         device_set_input_line(state->m_maincpu, i, irq_level[i] ? ASSERT_LINE : CLEAR_LINE);
152         state->m_maincpu->set_input_line(i, irq_level[i] ? ASSERT_LINE : CLEAR_LINE);
153153   }
154154   else
155155   {
r17814r17815
157157            then reads the actual source by peeking a register (metro_irq_cause_r) */
158158
159159      int irq_state = (irq ? ASSERT_LINE : CLEAR_LINE);
160      device_set_input_line(state->m_maincpu, state->m_irq_line, irq_state);
160      state->m_maincpu->set_input_line(state->m_irq_line, irq_state);
161161   }
162162}
163163
r17814r17815
245245   state->m_requested_int[state->m_vblank_bit] = 1;
246246   update_irq_state(device->machine());
247247
248   device_set_input_line(state->m_maincpu, H8_METRO_TIMER_HACK, HOLD_LINE);
248   state->m_maincpu->set_input_line(H8_METRO_TIMER_HACK, HOLD_LINE);
249249}
250250
251251static void ymf278b_interrupt( device_t *device, int active )
252252{
253253   metro_state *state = device->machine().driver_data<metro_state>();
254   device_set_input_line(state->m_maincpu, 2, active);
254   state->m_maincpu->set_input_line(2, active);
255255}
256256
257257
r17814r17815
288288   if (ACCESSING_BITS_0_7)
289289   {
290290      soundlatch_byte_w(space, 0, data & 0xff);
291      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
292      device_spin_until_interrupt(&space.device());
291      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
292      space.device().execute().spin_until_interrupt();
293293      m_busy_sndcpu = 1;
294294   }
295295}
r17814r17815
445445static void metro_sound_irq_handler( device_t *device, int state )
446446{
447447   metro_state *driver_state = device->machine().driver_data<metro_state>();
448   device_set_input_line(driver_state->m_audiocpu, UPD7810_INTF2, state ? ASSERT_LINE : CLEAR_LINE);
448   driver_state->m_audiocpu->set_input_line(UPD7810_INTF2, state ? ASSERT_LINE : CLEAR_LINE);
449449}
450450
451451static const ym2151_interface ym2151_config =
r17814r17815
16101610{
16111611
16121612   soundlatch_byte_w(space, offset, data >> 8);
1613   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
1613   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
16141614}
16151615
16161616WRITE8_MEMBER(metro_state::blzntrnd_sh_bankswitch_w)
r17814r17815
16251625static void blzntrnd_irqhandler(device_t *device, int irq)
16261626{
16271627   metro_state *state = device->machine().driver_data<metro_state>();
1628   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
1628   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
16291629}
16301630
16311631static const ym2610_interface blzntrnd_ym2610_interface =
r17814r17815
34083408   metro_state *state = machine.driver_data<metro_state>();
34093409
34103410   if (state->m_irq_line == -1)
3411      device_set_irq_callback(machine.device("maincpu"), metro_irq_callback);
3411      machine.device("maincpu")->execute().set_irq_acknowledge_callback(metro_irq_callback);
34123412}
34133413
34143414
trunk/src/mame/drivers/angelkds.c
r17814r17815
510510static void irqhandler( device_t *device, int irq )
511511{
512512   angelkds_state *state = device->machine().driver_data<angelkds_state>();
513   device_set_input_line(state->m_subcpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
513   state->m_subcpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
514514}
515515
516516static const ym2203_interface ym2203_config =
r17814r17815
572572{
573573   angelkds_state *state = machine.driver_data<angelkds_state>();
574574
575   state->m_subcpu = machine.device("sub");
575   state->m_subcpu = machine.device<cpu_device>("sub");
576576
577577   state->save_item(NAME(state->m_layer_ctrl));
578578   state->save_item(NAME(state->m_txbank));
trunk/src/mame/drivers/jrpacman.c
r17814r17815
118118
119119WRITE8_MEMBER(jrpacman_state::jrpacman_interrupt_vector_w)
120120{
121   device_set_input_line_vector(machine().device("maincpu"), 0, data);
121   machine().device("maincpu")->execute().set_input_line_vector(0, data);
122122   machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
123123}
124124
r17814r17815
285285   jrpacman_state *state = device->machine().driver_data<jrpacman_state>();
286286
287287   if(state->m_irq_mask)
288      device_set_input_line(device, 0, HOLD_LINE);
288      device->execute().set_input_line(0, HOLD_LINE);
289289}
290290
291291static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
trunk/src/mame/drivers/nightgal.c
r17814r17815
4848   required_shared_ptr<UINT8> m_comms_ram;
4949
5050   /* devices */
51   device_t *m_maincpu;
52   device_t *m_subcpu;
51   cpu_device *m_maincpu;
52   cpu_device *m_subcpu;
5353
5454   /* memory */
5555   UINT8      m_blit_buffer[256*256];
r17814r17815
246246                  count++;
247247            }
248248         }
249         //device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE );
249         //m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
250250      }
251251   }
252252}
r17814r17815
322322#ifdef UNUSED_CODE
323323WRITE8_MEMBER(nightgal_state::nsc_latch_w)
324324{
325   device_set_input_line(m_subcpu, 0, HOLD_LINE );
325   m_subcpu->set_input_line(0, HOLD_LINE );
326326}
327327
328328READ8_MEMBER(nightgal_state::nsc_latch_r)
r17814r17815
369369WRITE8_MEMBER(nightgal_state::royalqn_blitter_2_w)
370370{
371371   m_blit_raw_data[2] = data;
372   device_set_input_line(m_subcpu, 0, ASSERT_LINE );
372   m_subcpu->set_input_line(0, ASSERT_LINE );
373373}
374374
375375READ8_MEMBER(nightgal_state::royalqn_nsc_blit_r)
376376{
377377
378378   if(offset == 2)
379      device_set_input_line(m_subcpu, 0, CLEAR_LINE );
379      m_subcpu->set_input_line(0, CLEAR_LINE );
380380
381381   return m_blit_raw_data[offset];
382382}
r17814r17815
834834{
835835   nightgal_state *state = machine.driver_data<nightgal_state>();
836836
837   state->m_maincpu = machine.device("maincpu");
838   state->m_subcpu = machine.device("sub");
837   state->m_maincpu = machine.device<cpu_device>("maincpu");
838   state->m_subcpu = machine.device<cpu_device>("sub");
839839
840840   state->save_item(NAME(state->m_nsc_latch));
841841   state->save_item(NAME(state->m_z80_latch));
trunk/src/mame/drivers/surpratk.c
r17814r17815
2222{
2323   surpratk_state *state = device->machine().driver_data<surpratk_state>();
2424   if (k052109_is_irq_enabled(state->m_k052109))
25      device_set_input_line(device, 0, HOLD_LINE);
25      device->execute().set_input_line(0, HOLD_LINE);
2626}
2727
2828READ8_MEMBER(surpratk_state::bankedram_r)
r17814r17815
161161static void irqhandler( device_t *device, int linestate )
162162{
163163   surpratk_state *state = device->machine().driver_data<surpratk_state>();
164   device_set_input_line(state->m_maincpu, KONAMI_FIRQ_LINE, linestate);
164   state->m_maincpu->set_input_line(KONAMI_FIRQ_LINE, linestate);
165165}
166166
167167static const ym2151_interface ym2151_config =
r17814r17815
199199
200200   state->m_generic_paletteram_8.allocate(0x1000);
201201
202   state->m_maincpu = machine.device("maincpu");
202   state->m_maincpu = machine.device<cpu_device>("maincpu");
203203   state->m_k053244 = machine.device("k053244");
204204   state->m_k053251 = machine.device("k053251");
205205   state->m_k052109 = machine.device("k052109");
trunk/src/mame/drivers/zaccaria.c
r17814r17815
575575   zaccaria_state *state = device->machine().driver_data<zaccaria_state>();
576576
577577   if(state->m_nmi_mask)
578      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
578      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
579579}
580580
581581
trunk/src/mame/drivers/littlerb.c
r17814r17815
587587//  logerror("IRQ\n");
588588   if(scanline == 288)
589589   {
590      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
590      state->m_maincpu->set_input_line(4, HOLD_LINE);
591591   }
592592}
593593
trunk/src/mame/drivers/tagteam.c
r17814r17815
200200   tagteam_state *state = device->machine().driver_data<tagteam_state>();
201201
202202   if(state->m_sound_nmi_mask)
203      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
203      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
204204}
205205
206206
trunk/src/mame/drivers/chihiro.c
r17814r17815
18101810   chst->smbus_register_device(0x10,smbus_callback_pic16lc);
18111811   chst->smbus_register_device(0x45,smbus_callback_cx25871);
18121812   chst->smbus_register_device(0x54,smbus_callback_eeprom);
1813   device_set_irq_callback(machine.device("maincpu"), irq_callback);
1813   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
18141814   chst->chihiro_devs.pic8259_1 = machine.device( "pic8259_1" );
18151815   chst->chihiro_devs.pic8259_2 = machine.device( "pic8259_2" );
18161816   chst->chihiro_devs.ide = machine.device( "ide" );
trunk/src/mame/drivers/namcos23.c
r17814r17815
17111711   case 5:
17121712      if(m_ctl_vbl_active) {
17131713         m_ctl_vbl_active = false;
1714         device_set_input_line(&space.device(), MIPS3_IRQ0, CLEAR_LINE);
1714         space.device().execute().set_input_line(MIPS3_IRQ0, CLEAR_LINE);
17151715      }
17161716      break;
17171717
r17814r17815
24372437
24382438   if(!state->m_ctl_vbl_active) {
24392439      state->m_ctl_vbl_active = true;
2440      device_set_input_line(device, MIPS3_IRQ0, ASSERT_LINE);
2440      device->execute().set_input_line(MIPS3_IRQ0, ASSERT_LINE);
24412441   }
24422442
24432443   render.cur = !render.cur;
trunk/src/mame/drivers/commando.c
r17814r17815
218218
219219static INTERRUPT_GEN( commando_interrupt )
220220{
221   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7);   // RST 10h - VBLANK
221   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7);   // RST 10h - VBLANK
222222}
223223
224224/* Machine Driver */
r17814r17815
227227{
228228   commando_state *state = machine.driver_data<commando_state>();
229229
230   state->m_audiocpu = machine.device("audiocpu");
230   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
231231
232232   state->save_item(NAME(state->m_scroll_x));
233233   state->save_item(NAME(state->m_scroll_y));
trunk/src/mame/drivers/skydiver.c
r17814r17815
156156   discrete_sound_w(discrete, SKYDIVER_NOISE_DATA,  state->m_videoram[0x396] & 0x0f);   // NAM - Noise Amplitude
157157
158158   if (state->m_nmion)
159      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
159      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
160160}
161161
162162
trunk/src/mame/drivers/ninjakd2.c
r17814r17815
168168
169169static INTERRUPT_GEN( ninjakd2_interrupt )
170170{
171   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7);   /* RST 10h */
171   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7);   /* RST 10h */
172172}
173173
174174
trunk/src/mame/drivers/mjsister.c
r17814r17815
4343   UINT32 m_dac_busy;
4444
4545   /* devices */
46   device_t *m_maincpu;
46   cpu_device *m_maincpu;
4747   dac_device *m_dac;
4848
4949   /* memory */
r17814r17815
453453
454454   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000);
455455
456   state->m_maincpu = machine.device("maincpu");
456   state->m_maincpu = machine.device<cpu_device>("maincpu");
457457   state->m_dac = machine.device<dac_device>("dac");
458458
459459   state->save_item(NAME(state->m_dac_busy));
trunk/src/mame/drivers/yunsung8.c
r17814r17815
454454
455455   state->m_toggle ^= 1;
456456   if (state->m_toggle)
457      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
457      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
458458}
459459
460460static const msm5205_interface yunsung8_msm5205_interface =
r17814r17815
478478   state->membank("bank2")->configure_entries(0, 3, &AUDIO[0x00000], 0x4000);
479479   state->membank("bank2")->configure_entries(3, 5, &AUDIO[0x10000], 0x4000);
480480
481   state->m_audiocpu = machine.device("audiocpu");
481   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
482482
483483   state->save_item(NAME(state->m_videoram));
484484   state->save_item(NAME(state->m_layers_ctrl));
trunk/src/mame/drivers/warpwarp.c
r17814r17815
144144   warpwarp_state *state = device->machine().driver_data<warpwarp_state>();
145145
146146   if(state->m_ball_on)
147      device_set_input_line(device, 0, ASSERT_LINE);
147      device->execute().set_input_line(0, ASSERT_LINE);
148148}
149149
150150
trunk/src/mame/drivers/wheelfir.c
r17814r17815
231231   wheelfir_state(const machine_config &mconfig, device_type type, const char *tag)
232232      : driver_device(mconfig, type, tag) { }
233233
234   device_t *m_maincpu;
235   device_t *m_subcpu;
234   cpu_device *m_maincpu;
235   cpu_device *m_subcpu;
236236   device_t *m_screen;
237237   device_t *m_eeprom;
238238
r17814r17815
772772{
773773   wheelfir_state *state = machine.driver_data<wheelfir_state>();
774774
775   state->m_maincpu = machine.device( "maincpu");
776   state->m_subcpu = machine.device(  "subcpu");
775   state->m_maincpu = machine.device<cpu_device>( "maincpu");
776   state->m_subcpu = machine.device<cpu_device>(  "subcpu");
777777   state->m_screen = machine.device(  "screen");
778778   state->m_eeprom = machine.device(  "eeprom");
779779
trunk/src/mame/drivers/jaguar.c
r17814r17815
895895      /* increment the count; if we hit 5, we can spin until an interrupt comes */
896896      if (m_main_speedup_hits++ > 5)
897897      {
898         device_spin_until_interrupt(&space.device());
898         space.device().execute().spin_until_interrupt();
899899         m_main_speedup_hits = 0;
900900      }
901901   }
r17814r17815
936936READ32_MEMBER(jaguar_state::main_gpu_wait_r)
937937{
938938   if (m_gpu_command_pending)
939      device_spin_until_interrupt(&space.device());
939      space.device().execute().spin_until_interrupt();
940940   return *m_main_gpu_wait;
941941}
942942
r17814r17815
972972      /* increment the count; if we hit 5, we can spin until an interrupt comes */
973973      if (m_main_speedup_hits++ > 5)
974974      {
975         device_spin_until_interrupt(&space.device());
975         space.device().execute().spin_until_interrupt();
976976         m_main_speedup_hits = 0;
977977      }
978978   }
r17814r17815
10061006      /* increment the count; if we hit 5, we can spin until an interrupt comes */
10071007      if (m_main_speedup_hits++ > 10)
10081008      {
1009         device_spin_until_interrupt(&space.device());
1009         space.device().execute().spin_until_interrupt();
10101010         m_main_speedup_hits = 0;
10111011      }
10121012   }
trunk/src/mame/drivers/onetwo.c
r17814r17815
6464   tilemap_t *m_fg_tilemap;
6565
6666   /* devices */
67   device_t *m_maincpu;
68   device_t *m_audiocpu;
67   cpu_device *m_maincpu;
68   cpu_device *m_audiocpu;
6969   DECLARE_WRITE8_MEMBER(onetwo_fgram_w);
7070   DECLARE_WRITE8_MEMBER(onetwo_cpubank_w);
7171   DECLARE_WRITE8_MEMBER(onetwo_coin_counters_w);
r17814r17815
133133WRITE8_MEMBER(onetwo_state::onetwo_soundlatch_w)
134134{
135135   soundlatch_byte_w(space, 0, data);
136   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
136   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
137137}
138138
139139static void set_color(running_machine &machine, int offset)
r17814r17815
331331static void irqhandler(device_t *device, int linestate)
332332{
333333   onetwo_state *state = device->machine().driver_data<onetwo_state>();
334   device_set_input_line(state->m_audiocpu, 0, linestate);
334   state->m_audiocpu->set_input_line(0, linestate);
335335}
336336
337337static const ym3812_interface ym3812_config =
r17814r17815
352352
353353   state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
354354
355   state->m_maincpu = machine.device("maincpu");
356   state->m_audiocpu = machine.device("audiocpu");
355   state->m_maincpu = machine.device<cpu_device>("maincpu");
356   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
357357}
358358
359359static MACHINE_CONFIG_START( onetwo, onetwo_state )
trunk/src/mame/drivers/liberate.c
r17814r17815
6969   m_bank = data;
7070
7171   if (m_bank)
72      m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
72      m_maincpu->space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
7373   else
74      m_maincpu->memory().space(AS_PROGRAM)->install_read_bank(0x8000, 0x800f, "bank1");
74      m_maincpu->space(AS_PROGRAM)->install_read_bank(0x8000, 0x800f, "bank1");
7575}
7676
7777READ8_MEMBER(liberate_state::prosoccr_bank_r)
r17814r17815
174174   m_bank = data & 1;
175175
176176   if (m_bank)
177      m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
177      m_maincpu->space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::deco16_io_r),this));
178178   else
179      m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::prosoccr_charram_r),this));
179      m_maincpu->space(AS_PROGRAM)->install_read_handler(0x8000, 0x800f, read8_delegate(FUNC(liberate_state::prosoccr_charram_r),this));
180180
181181}
182182
r17814r17815
766766   int p = ~state->ioport("IN3")->read();
767767   if ((p & 0x43) && !state->m_latch)
768768   {
769      device_set_input_line(device, DECO16_IRQ_LINE, ASSERT_LINE);
769      device->execute().set_input_line(DECO16_IRQ_LINE, ASSERT_LINE);
770770      state->m_latch = 1;
771771   }
772772   else
r17814r17815
780780static INTERRUPT_GEN( prosport_interrupt )
781781{
782782   /* ??? */
783   device_set_input_line(device, DECO16_IRQ_LINE, ASSERT_LINE);
783   device->execute().set_input_line(DECO16_IRQ_LINE, ASSERT_LINE);
784784}
785785#endif
786786
r17814r17815
794794{
795795   liberate_state *state = machine.driver_data<liberate_state>();
796796
797   state->m_maincpu = machine.device("maincpu");
798   state->m_audiocpu = machine.device("audiocpu");
797   state->m_maincpu = machine.device<cpu_device>("maincpu");
798   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
799799
800800   state->save_item(NAME(state->m_background_disable));
801801   state->save_item(NAME(state->m_background_color));
trunk/src/mame/drivers/seta.c
r17814r17815
17091709   {
17101710      soundlatch_word_w(space, 0, data, mem_mask);
17111711      machine().device("sub")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
1712      device_spin_until_time(&space.device(), attotime::from_usec(50));   // Allow the other cpu to reply
1712      space.device().execute().spin_until_time(attotime::from_usec(50));   // Allow the other cpu to reply
17131713   }
17141714}
17151715
r17814r17815
31863186WRITE8_MEMBER(seta_state::calibr50_soundlatch2_w)
31873187{
31883188   soundlatch2_byte_w(space,0,data);
3189   device_spin_until_time(&space.device(), attotime::from_usec(50));   // Allow the other cpu to reply
3189   space.device().execute().spin_until_time(attotime::from_usec(50));   // Allow the other cpu to reply
31903190}
31913191
31923192static ADDRESS_MAP_START( calibr50_sub_map, AS_PROGRAM, 8, seta_state )
r17814r17815
74207420   int scanline = param;
74217421
74227422   if(scanline == 240)
7423      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
7423      state->m_maincpu->set_input_line(1, HOLD_LINE);
74247424
74257425   if(scanline == 112)
7426      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
7426      state->m_maincpu->set_input_line(2, HOLD_LINE);
74277427}
74287428
74297429static TIMER_DEVICE_CALLBACK( seta_interrupt_2_and_4 )
r17814r17815
74327432   int scanline = param;
74337433
74347434   if(scanline == 240)
7435      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
7435      state->m_maincpu->set_input_line(2, HOLD_LINE);
74367436
74377437   if(scanline == 112)
7438      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
7438      state->m_maincpu->set_input_line(4, HOLD_LINE);
74397439}
74407440
74417441
r17814r17815
74457445   int scanline = param;
74467446
74477447   if(scanline == 240)
7448      device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
7448      state->m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
74497449
74507450   if(scanline == 112)
7451      device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
7451      state->m_subcpu->set_input_line(0, HOLD_LINE);
74527452}
74537453
74547454
r17814r17815
74767476   int scanline = param;
74777477
74787478   if(scanline == 240)
7479      device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
7479      state->m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
74807480
74817481   if((scanline % 16) == 0)
7482      device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
7482      state->m_subcpu->set_input_line(0, HOLD_LINE);
74837483}
74847484
74857485static MACHINE_CONFIG_START( tndrcade, seta_state )
r17814r17815
76247624   int scanline = param;
76257625
76267626   if((scanline % 64) == 0)
7627      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
7627      state->m_maincpu->set_input_line(4, HOLD_LINE);
76287628
76297629   if(scanline == 248)
7630      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
7630      state->m_maincpu->set_input_line(2, HOLD_LINE);
76317631}
76327632
76337633
r17814r17815
80298029   int scanline = param;
80308030
80318031   if(scanline == 248)
8032      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
8032      state->m_maincpu->set_input_line(4, HOLD_LINE);
80338033
80348034   if(scanline == 112)
8035      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
8035      state->m_maincpu->set_input_line(2, HOLD_LINE);
80368036}
80378037
80388038
r17814r17815
81568156#if __uPD71054_TIMER
81578157static INTERRUPT_GEN( wrofaero_interrupt )
81588158{
8159   device_set_input_line(device, 2, HOLD_LINE );
8159   device->execute().set_input_line(2, HOLD_LINE );
81608160}
81618161
81628162static MACHINE_START( wrofaero ) { uPD71054_timer_init(machine); }
r17814r17815
90889088   int scanline = param;
90899089
90909090   if((scanline % 48) == 0)
9091      device_set_input_line(state->m_maincpu, 2, HOLD_LINE); // should this be triggered by the 3812?
9091      state->m_maincpu->set_input_line(2, HOLD_LINE); // should this be triggered by the 3812?
90929092
90939093   if(scanline == 240)
9094      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
9094      state->m_maincpu->set_input_line(1, HOLD_LINE);
90959095}
90969096
90979097static MACHINE_CONFIG_START( crazyfgt, seta_state )
r17814r17815
91399139
91409140   /* ACIA irq */
91419141   if(scanline == 15)
9142      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
9142      state->m_maincpu->set_input_line(4, HOLD_LINE);
91439143
91449144   if(scanline == 38)
9145      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
9145      state->m_maincpu->set_input_line(1, HOLD_LINE);
91469146
91479147   if(scanline == 61)
9148      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
9148      state->m_maincpu->set_input_line(2, HOLD_LINE);
91499149
91509150   if(scanline >= 85 && (scanline % 23) == 0)
9151      device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
9151      state->m_maincpu->set_input_line(6, HOLD_LINE);
91529152}
91539153
91549154static const pia6821_interface inttoote_pia0_intf =
trunk/src/mame/drivers/laserbat.c
r17814r17815
572572
573573WRITE_LINE_MEMBER(laserbat_state::zaccaria_irq0a)
574574{
575   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
575   m_audiocpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
576576}
577577
578578WRITE_LINE_MEMBER(laserbat_state::zaccaria_irq0b)
579579{
580   device_set_input_line(m_audiocpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
580   m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
581581}
582582
583583READ8_MEMBER(laserbat_state::zaccaria_port0a_r)
r17814r17815
650650
651651static INTERRUPT_GEN( laserbat_interrupt )
652652{
653   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x0a);
653   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x0a);
654654}
655655
656656static INTERRUPT_GEN( zaccaria_cb1_toggle )
trunk/src/mame/drivers/tp84.c
r17814r17815
284284   tp84_state *state = device->machine().driver_data<tp84_state>();
285285
286286   if(state->m_sub_irq_mask)
287      device_set_input_line(device, 0, HOLD_LINE);
287      device->execute().set_input_line(0, HOLD_LINE);
288288}
289289
290290
trunk/src/mame/drivers/cheekyms.c
r17814r17815
1717
1818   /* this starts a 556 one-shot timer (and triggers a sound effect) */
1919   if (newval)
20      device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
20      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2121}
2222
2323
r17814r17815
112112{
113113   cheekyms_state *state = machine.driver_data<cheekyms_state>();
114114
115   state->m_maincpu = machine.device("maincpu");
115   state->m_maincpu = machine.device<cpu_device>("maincpu");
116116   state->m_dac = machine.device<dac_device>("dac");
117117}
118118
r17814r17815
121121   cheekyms_state *state = device->machine().driver_data<cheekyms_state>();
122122
123123   if(state->m_irq_mask)
124      device_set_input_line(device, 0, HOLD_LINE);
124      device->execute().set_input_line(0, HOLD_LINE);
125125}
126126
127127
trunk/src/mame/drivers/queen.c
r17814r17815
566566
567567WRITE_LINE_MEMBER(queen_state::queen_pic8259_1_set_int_line)
568568{
569   device_set_input_line(m_maincpu, 0, state ? HOLD_LINE : CLEAR_LINE);
569   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
570570}
571571
572572READ8_MEMBER( queen_state::get_slave_ack )
r17814r17815
596596{
597597   queen_state *state = machine.driver_data<queen_state>();
598598
599   device_set_input_line(state->m_maincpu, INPUT_LINE_A20, a20);
599   state->m_maincpu->set_input_line(INPUT_LINE_A20, a20);
600600}
601601
602602static void keyboard_interrupt(running_machine &machine, int state)
r17814r17815
650650
651651   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, queen_set_keyb_int);
652652
653   device_set_irq_callback(state->m_maincpu, irq_callback);
653   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
654654   intel82439tx_init(machine);
655655
656656   kbdc8042_init(machine, &at8042);
trunk/src/mame/drivers/timelimt.c
r17814r17815
220220{
221221   timelimt_state *state = device->machine().driver_data<timelimt_state>();
222222   if ( state->m_nmi_enabled )
223      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
223      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
224224}
225225
226226/***************************************************************************/
trunk/src/mame/drivers/vamphalf.c
r17814r17815
22212221   if(space.device().safe_pc() == 0x82de)
22222222   {
22232223      if(irq_active(&space))
2224         device_spin_until_interrupt(&space.device());
2224         space.device().execute().spin_until_interrupt();
22252225      else
2226         device_eat_cycles(&space.device(), 50);
2226         space.device().execute().eat_cycles(50);
22272227   }
22282228
22292229   return m_wram[(0x4a840/2)+offset];
r17814r17815
22342234   if(space.device().safe_pc() == 0x82de)
22352235   {
22362236      if(irq_active(&space))
2237         device_spin_until_interrupt(&space.device());
2237         space.device().execute().spin_until_interrupt();
22382238      else
2239         device_eat_cycles(&space.device(), 50);
2239         space.device().execute().eat_cycles(50);
22402240   }
22412241
22422242   return m_wram[(0x4a6d0/2)+offset];
r17814r17815
22472247   if(space.device().safe_pc() == 0xecc8)
22482248   {
22492249      if(irq_active(&space))
2250         device_spin_until_interrupt(&space.device());
2250         space.device().execute().spin_until_interrupt();
22512251      else
2252         device_eat_cycles(&space.device(), 50);
2252         space.device().execute().eat_cycles(50);
22532253   }
22542254
22552255   return m_wram[(0x72eb4/2)+offset];
r17814r17815
22602260   if(space.device().safe_pc() == 0x75f7a)
22612261   {
22622262      if(irq_active(&space))
2263         device_spin_until_interrupt(&space.device());
2263         space.device().execute().spin_until_interrupt();
22642264      else
2265         device_eat_cycles(&space.device(), 50);
2265         space.device().execute().eat_cycles(50);
22662266   }
22672267
22682268   return m_wram[(0xd2e80/2)+offset];
r17814r17815
22732273   if(space.device().safe_pc() == 0xaf18a )
22742274   {
22752275      if(irq_active(&space))
2276         device_spin_until_interrupt(&space.device());
2276         space.device().execute().spin_until_interrupt();
22772277      else
2278         device_eat_cycles(&space.device(), 50);
2278         space.device().execute().eat_cycles(50);
22792279   }
22802280
22812281   return m_wram[(0x11605c/2)+offset];
r17814r17815
22862286   if(space.device().safe_pc() == 0xaefac )
22872287   {
22882288      if(irq_active(&space))
2289         device_spin_until_interrupt(&space.device());
2289         space.device().execute().spin_until_interrupt();
22902290      else
2291         device_eat_cycles(&space.device(), 50);
2291         space.device().execute().eat_cycles(50);
22922292   }
22932293
22942294   return m_wram[(0x115e84/2)+offset];
r17814r17815
22992299   if(space.device().safe_pc() == 0xae6c0 )
23002300   {
23012301      if(irq_active(&space))
2302         device_spin_until_interrupt(&space.device());
2302         space.device().execute().spin_until_interrupt();
23032303      else
2304         device_eat_cycles(&space.device(), 50);
2304         space.device().execute().eat_cycles(50);
23052305   }
23062306
23072307   return m_wram[(0x113f08/2)+offset];
r17814r17815
23122312   if(space.device().safe_pc() == 0xae6d2 )
23132313   {
23142314      if(irq_active(&space))
2315         device_spin_until_interrupt(&space.device());
2315         space.device().execute().spin_until_interrupt();
23162316      else
2317         device_eat_cycles(&space.device(), 50);
2317         space.device().execute().eat_cycles(50);
23182318   }
23192319
23202320   return m_wram[(0x113ecc/2)+offset];
r17814r17815
23272327   if(pc == 0x10758)
23282328   {
23292329      if(irq_active(&space))
2330         device_spin_until_interrupt(&space.device());
2330         space.device().execute().spin_until_interrupt();
23312331      else
2332         device_eat_cycles(&space.device(), 50);
2332         space.device().execute().eat_cycles(50);
23332333   }
23342334
23352335   return m_wram32[0x00b56fc/4];
r17814r17815
23422342   if(pc == 0x10758)
23432343   {
23442344      if(irq_active(&space))
2345         device_spin_until_interrupt(&space.device());
2345         space.device().execute().spin_until_interrupt();
23462346      else
2347         device_eat_cycles(&space.device(), 50);
2347         space.device().execute().eat_cycles(50);
23482348   }
23492349
23502350   return m_wram32[0x00b74f8/4];
r17814r17815
23572357   if(space.device().safe_pc() == 0x1c212)
23582358   {
23592359      if(irq_active(&space))
2360         device_spin_until_interrupt(&space.device());
2360         space.device().execute().spin_until_interrupt();
23612361      else
2362         device_eat_cycles(&space.device(), 50);
2362         space.device().execute().eat_cycles(50);
23632363   }
23642364
23652365   return m_wram32[0x005e874/4];
r17814r17815
23712371   if(pc == 0x469de || pc == 0x46a36)
23722372   {
23732373//      if(irq_active(&space))
2374//          device_spin_until_interrupt(&space.device());
2374//          space.device().execute().spin_until_interrupt();
23752375//      else
2376         device_eat_cycles(&space.device(), 50);
2376         space.device().execute().eat_cycles(50);
23772377   }
23782378
23792379   return m_wram32[0x00701a4/4];
r17814r17815
23852385   if(space.device().safe_pc() == 0xaa622)
23862386   {
23872387      if(irq_active(&space))
2388         device_spin_until_interrupt(&space.device());
2388         space.device().execute().spin_until_interrupt();
23892389      else
2390         device_eat_cycles(&space.device(), 50);
2390         space.device().execute().eat_cycles(50);
23912391   }
23922392
23932393   return m_wram[(0xcde70/2)+offset];
r17814r17815
23972397{
23982398   if(space.device().safe_pc() == 0xb994 )
23992399   {
2400      device_eat_cycles(&space.device(), 500);
2400      space.device().execute().eat_cycles(500);
24012401   }
24022402   else if (space.device().safe_pc() == 0xba40 )
24032403   {
2404      device_eat_cycles(&space.device(), 500);
2404      space.device().execute().eat_cycles(500);
24052405   }
24062406
24072407
r17814r17815
24132413   if(space.device().safe_pc() == 0x983c)
24142414   {
24152415      if(irq_active(&space))
2416         device_spin_until_interrupt(&space.device());
2416         space.device().execute().spin_until_interrupt();
24172417      else
2418         device_eat_cycles(&space.device(), 50);
2418         space.device().execute().eat_cycles(50);
24192419   }
24202420
24212421   return m_wram[(0x00906fc / 2)+offset];
r17814r17815
24262426   if(space.device().safe_pc() == 0x1710)
24272427   {
24282428      if(irq_active(&space))
2429         device_spin_until_interrupt(&space.device());
2429         space.device().execute().spin_until_interrupt();
24302430      else
2431         device_eat_cycles(&space.device(), 50);
2431         space.device().execute().eat_cycles(50);
24322432   }
24332433
24342434   return m_wram[(0x00a99c / 2)+offset];
r17814r17815
24402440   int pc = space.device().safe_pc();
24412441
24422442   if (pc == 0x12fa6)
2443      device_spin_until_interrupt(&space.device());
2443      space.device().execute().spin_until_interrupt();
24442444
24452445   return m_wram[0xcc2a8 / 2];
24462446
r17814r17815
24502450{
24512451
24522452   if (space.device().safe_pc() == 0x130c2)
2453      device_spin_until_interrupt(&space.device());
2453      space.device().execute().spin_until_interrupt();
24542454
24552455   return m_wram[0x780d8 / 2];
24562456
r17814r17815
24612461   if(space.device().safe_pc() == 0x13198)
24622462   {
24632463      if(irq_active(&space))
2464         device_spin_until_interrupt(&space.device());
2464         space.device().execute().spin_until_interrupt();
24652465   }
24662466
24672467   return m_wram[(0xf1b7c / 2)+offset];
trunk/src/mame/drivers/bishi.c
r17814r17815
363363{
364364   bishi_state *bishi = device->machine().driver_data<bishi_state>();
365365
366   device_set_input_line(bishi->m_maincpu, M68K_IRQ_1, (state) ? ASSERT_LINE : CLEAR_LINE);
366   bishi->m_maincpu->set_input_line(M68K_IRQ_1, (state) ? ASSERT_LINE : CLEAR_LINE);
367367}
368368
369369static const ymz280b_interface ymz280b_intf =
r17814r17815
392392{
393393   bishi_state *state = machine.driver_data<bishi_state>();
394394
395   state->m_maincpu = machine.device("maincpu");
395   state->m_maincpu = machine.device<cpu_device>("maincpu");
396396   state->m_k056832 = machine.device("k056832");
397397   state->m_k054338 = machine.device("k054338");
398398   state->m_k055555 = machine.device("k055555");
trunk/src/mame/drivers/1942.c
r17814r17815
240240{
241241   _1942_state *state = machine.driver_data<_1942_state>();
242242
243   state->m_audiocpu = machine.device("audiocpu");
243   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
244244
245245   state->save_item(NAME(state->m_palette_bank));
246246   state->save_item(NAME(state->m_scroll));
trunk/src/mame/drivers/mayumi.c
r17814r17815
8989   mayumi_state *state = device->machine().driver_data<mayumi_state>();
9090
9191   if (state->m_int_enable)
92       device_set_input_line(device, 0, HOLD_LINE);
92       device->execute().set_input_line(0, HOLD_LINE);
9393}
9494
9595/*************************************
trunk/src/mame/drivers/raiden.c
r17814r17815
239239
240240static INTERRUPT_GEN( raiden_interrupt )
241241{
242   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4);   /* VBL */
242   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xc8/4);   /* VBL */
243243}
244244
245245static MACHINE_CONFIG_START( raiden, raiden_state )
r17814r17815
560560
561561   // main set
562562   if (pc==0xfcde6 && ret!=0x40)
563      device_spin(&space.device());
563      space.device().execute().spin();
564564
565565   // alt sets
566566   if (pc==0xfcde8 && ret!=0x40)
567      device_spin(&space.device());
567      space.device().execute().spin();
568568
569569   return ret;
570570}
trunk/src/mame/drivers/galaxia.c
r17814r17815
6969
7070static INTERRUPT_GEN( galaxia_interrupt )
7171{
72   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03);
72   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
7373   cvs_scroll_stars(device->machine());
7474}
7575
trunk/src/mame/drivers/fromanc2.c
r17814r17815
3333
3434static INTERRUPT_GEN( fromanc2_interrupt )
3535{
36   device_set_input_line(device, 1, HOLD_LINE);
36   device->execute().set_input_line(1, HOLD_LINE);
3737}
3838
3939
r17814r17815
4343   soundlatch_byte_w(space, offset, (data >> 8) & 0xff);   // 1P (LEFT)
4444   soundlatch2_byte_w(space, offset, data & 0xff);         // 2P (RIGHT)
4545
46   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
46   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
4747   m_sndcpu_nmi_flag = 0;
4848}
4949
r17814r17815
110110{
111111   m_datalatch1 = data;
112112
113   device_set_input_line(m_subcpu, 0, HOLD_LINE);
113   m_subcpu->set_input_line(0, HOLD_LINE);
114114   m_subcpu_int_flag = 0;
115115}
116116
117117READ16_MEMBER(fromanc2_state::fromanc2_subcpu_r)
118118{
119   device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
119   m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
120120   m_subcpu_nmi_flag = 0;
121121
122122   return (m_datalatch_2h << 8) | m_datalatch_2l;
r17814r17815
486486static void irqhandler(device_t *device, int irq)
487487{
488488   fromanc2_state *state = device->machine().driver_data<fromanc2_state>();
489   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
489   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
490490}
491491
492492static const ym2610_interface ym2610_config =
r17814r17815
505505{
506506   fromanc2_state *state = machine.driver_data<fromanc2_state>();
507507
508   state->m_audiocpu = machine.device("audiocpu");
509   state->m_subcpu = machine.device("sub");
508   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
509   state->m_subcpu = machine.device<cpu_device>("sub");
510510   state->m_eeprom = machine.device("eeprom");
511511   state->m_left_screen = machine.device("lscreen");
512512   state->m_right_screen = machine.device("rscreen");
trunk/src/mame/drivers/rallyx.c
r17814r17815
207207WRITE8_MEMBER(rallyx_state::rallyx_interrupt_vector_w)
208208{
209209
210   device_set_input_line_vector(m_maincpu, 0, data);
211   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
210   m_maincpu->set_input_line_vector(0, data);
211   m_maincpu->set_input_line(0, CLEAR_LINE);
212212}
213213
214214
r17814r17815
234234      case 0x01:   /* INT ON */
235235         m_main_irq_mask = bit;
236236         if (!bit)
237            device_set_input_line(m_maincpu, 0, CLEAR_LINE);
237            m_maincpu->set_input_line(0, CLEAR_LINE);
238238         break;
239239
240240      case 0x02:   /* SOUND ON */
r17814r17815
895895   rallyx_state *state = device->machine().driver_data<rallyx_state>();
896896
897897   if(state->m_main_irq_mask)
898      device_set_input_line(device, 0, ASSERT_LINE);
898      device->execute().set_input_line(0, ASSERT_LINE);
899899}
900900
901901static INTERRUPT_GEN( jungler_vblank_irq )
r17814r17815
903903   rallyx_state *state = device->machine().driver_data<rallyx_state>();
904904
905905   if(state->m_main_irq_mask)
906      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
906      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
907907}
908908
909909static MACHINE_CONFIG_START( rallyx, rallyx_state )
trunk/src/mame/drivers/bnstars.c
r17814r17815
13301330   for(i=15; i>=0 && !(state->m_irqreq & (1<<i)); i--);
13311331   state->m_irqreq &= ~(1<<i);
13321332   if(!state->m_irqreq)
1333      device_set_input_line(device, 0, CLEAR_LINE);
1333      device->execute().set_input_line(0, CLEAR_LINE);
13341334   return i;
13351335}
13361336
r17814r17815
13391339   bnstars_state *state = machine.driver_data<bnstars_state>();
13401340   state->m_irqreq = 0;
13411341   machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
1342   device_set_irq_callback(machine.device("maincpu"), irq_callback);
1342   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
13431343}
13441344
13451345static void irq_raise(running_machine &machine, int level)
trunk/src/mame/drivers/diverboy.c
r17814r17815
6565//  UINT16 *  m_paletteram;   // currently this uses generic palette handling
6666
6767   /* devices */
68   device_t *m_audiocpu;
68   cpu_device *m_audiocpu;
6969   DECLARE_WRITE16_MEMBER(soundcmd_w);
7070   DECLARE_WRITE8_MEMBER(okibank_w);
7171};
r17814r17815
125125   if (ACCESSING_BITS_0_7)
126126   {
127127      soundlatch_byte_w(space, 0, data & 0xff);
128      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
128      m_audiocpu->set_input_line(0, HOLD_LINE);
129129   }
130130}
131131
r17814r17815
248248{
249249   diverboy_state *state = machine.driver_data<diverboy_state>();
250250
251   state->m_audiocpu = machine.device("audiocpu");
251   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
252252}
253253
254254static MACHINE_CONFIG_START( diverboy, diverboy_state )
trunk/src/mame/drivers/carjmbre.c
r17814r17815
196196   carjmbre_state *state = device->machine().driver_data<carjmbre_state>();
197197
198198   if(state->m_nmi_mask)
199      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
199      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
200200}
201201
202202static MACHINE_CONFIG_START( carjmbre, carjmbre_state )
trunk/src/mame/drivers/superchs.c
r17814r17815
438438READ32_MEMBER(superchs_state::main_cycle_r)
439439{
440440   if (space.device().safe_pc()==0x702)
441      device_spin_until_interrupt(&space.device());
441      space.device().execute().spin_until_interrupt();
442442
443443   return m_ram[0];
444444}
r17814r17815
446446READ16_MEMBER(superchs_state::sub_cycle_r)
447447{
448448   if (space.device().safe_pc()==0x454)
449      device_spin_until_interrupt(&space.device());
449      space.device().execute().spin_until_interrupt();
450450
451451   return m_ram[2]&0xffff;
452452}
trunk/src/mame/drivers/namcos1.c
r17814r17815
357357
358358WRITE8_MEMBER(namcos1_state::irq_ack_w)
359359{
360   device_set_input_line(&space.device(), 0, CLEAR_LINE);
360   space.device().execute().set_input_line(0, CLEAR_LINE);
361361}
362362
363363WRITE8_MEMBER(namcos1_state::firq_ack_w)
364364{
365   device_set_input_line(&space.device(), M6809_FIRQ_LINE, CLEAR_LINE);
365   space.device().execute().set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
366366}
367367
368368
trunk/src/mame/drivers/mainevt.c
r17814r17815
8282
8383WRITE8_MEMBER(mainevt_state::mainevt_sh_irqtrigger_w)
8484{
85   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
85   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
8686}
8787
8888READ8_MEMBER(mainevt_state::mainevt_sh_busy_r)
r17814r17815
418418
419419   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
420420
421   state->m_maincpu = machine.device("maincpu");
422   state->m_audiocpu = machine.device("audiocpu");
421   state->m_maincpu = machine.device<cpu_device>("maincpu");
422   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
423423   state->m_upd = machine.device("upd");
424424   state->m_k007232 = machine.device("k007232");
425425   state->m_k052109 = machine.device("k052109");
r17814r17815
440440   mainevt_state *state = device->machine().driver_data<mainevt_state>();
441441
442442   if(state->m_sound_irq_mask)
443      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
443      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
444444}
445445
446446static INTERRUPT_GEN( devstors_sound_timer_irq )
r17814r17815
448448   mainevt_state *state = device->machine().driver_data<mainevt_state>();
449449
450450   if(state->m_sound_irq_mask)
451      device_set_input_line(device, 0, HOLD_LINE);
451      device->execute().set_input_line(0, HOLD_LINE);
452452}
453453
454454static MACHINE_CONFIG_START( mainevt, mainevt_state )
trunk/src/mame/drivers/deco156.c
r17814r17815
315315
316316static INTERRUPT_GEN( deco32_vbl_interrupt )
317317{
318   device_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE);
318   device->execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
319319}
320320
321321static int deco156_bank_callback(const int bank)
trunk/src/mame/drivers/dwarfd.c
r17814r17815
875875
876876   if (scanline < 25*8)
877877   {
878      device_set_input_line(state->m_maincpu, I8085_RST65_LINE, HOLD_LINE); // 34 - every 8th line
878      state->m_maincpu->set_input_line(I8085_RST65_LINE, HOLD_LINE); // 34 - every 8th line
879879      state->m_line = scanline/8;
880880      state->m_idx = 0;
881881   }
r17814r17815
883883   {
884884      if (scanline == 25*8)
885885      {
886         device_set_input_line(state->m_maincpu, I8085_RST55_LINE, HOLD_LINE);//2c - generated by  crt - end of frame
886         state->m_maincpu->set_input_line(I8085_RST55_LINE, HOLD_LINE);//2c - generated by  crt - end of frame
887887      }
888888   }
889889}
trunk/src/mame/drivers/renegade.c
r17814r17815
672672   int scanline = param;
673673
674674   if (scanline == 112) // ???
675      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
675      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
676676   else if(scanline == 240)
677      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
677      state->m_maincpu->set_input_line(0, HOLD_LINE);
678678}
679679
680680WRITE8_MEMBER(renegade_state::renegade_coin_counter_w)
trunk/src/mame/drivers/junofrst.c
r17814r17815
240240   if (m_last_irq == 0 && data == 1)
241241   {
242242      /* setting bit 0 low then high triggers IRQ on the sound CPU */
243      device_set_input_line_and_vector(m_soundcpu, 0, HOLD_LINE, 0xff);
243      m_soundcpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
244244   }
245245
246246   m_last_irq = data;
r17814r17815
250250WRITE8_MEMBER(junofrst_state::junofrst_i8039_irq_w)
251251{
252252
253   device_set_input_line(m_i8039, 0, ASSERT_LINE);
253   m_i8039->execute().set_input_line(0, ASSERT_LINE);
254254}
255255
256256
r17814r17815
259259
260260
261261   if ((data & 0x80) == 0)
262      device_set_input_line(m_i8039, 0, CLEAR_LINE);
262      m_i8039->execute().set_input_line(0, CLEAR_LINE);
263263   m_i8039_status = (data & 0x70) >> 4;
264264}
265265
r17814r17815
283283
284284   m_irq_enable = data & 1;
285285   if (!m_irq_enable)
286      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
286      m_maincpu->set_input_line(0, CLEAR_LINE);
287287}
288288
289289static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, junofrst_state )
r17814r17815
425425   /* flip flops cause the interrupt to be signalled every other frame */
426426   state->m_irq_toggle ^= 1;
427427   if (state->m_irq_toggle && state->m_irq_enable)
428      device_set_input_line(device, 0, ASSERT_LINE);
428      device->execute().set_input_line(0, ASSERT_LINE);
429429}
430430
431431static MACHINE_CONFIG_START( junofrst, junofrst_state )
trunk/src/mame/drivers/hitpoker.c
r17814r17815
487487
488488static INTERRUPT_GEN( hitpoker_irq )
489489{
490   device_set_input_line(device, MC68HC11_IRQ_LINE, HOLD_LINE);
490   device->execute().set_input_line(MC68HC11_IRQ_LINE, HOLD_LINE);
491491}
492492
493493static MACHINE_CONFIG_START( hitpoker, hitpoker_state )
trunk/src/mame/drivers/taito_h.c
r17814r17815
159159static void irqhandler( device_t *device, int irq )
160160{
161161   taitoh_state *state = device->machine().driver_data<taitoh_state>();
162   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
162   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
163163}
164164
165165static const ym2610_interface ym2610_config =
r17814r17815
529529
530530   state->membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000);
531531
532   state->m_audiocpu = machine.device("audiocpu");
532   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
533533   state->m_tc0220ioc = machine.device("tc0220ioc");
534534   state->m_tc0080vco = machine.device("tc0080vco");
535535
trunk/src/mame/drivers/ginganin.c
r17814r17815
230230{
231231   ginganin_state *state = machine.driver_data<ginganin_state>();
232232
233   state->m_audiocpu = machine.device("audiocpu");
233   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
234234
235235   state->save_item(NAME(state->m_layers_ctrl));
236236   state->save_item(NAME(state->m_flipscreen));
trunk/src/mame/drivers/tail2nos.c
r17814r17815
2323   if (ACCESSING_BITS_0_7)
2424   {
2525      soundlatch_byte_w(space, offset, data & 0xff);
26      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
26      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2727   }
2828}
2929
r17814r17815
180180static void irqhandler( device_t *device, int irq )
181181{
182182   tail2nos_state *state = device->machine().driver_data<tail2nos_state>();
183   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
183   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
184184}
185185
186186static const ym2608_interface ym2608_config =
r17814r17815
213213   state->membank("bank3")->configure_entries(0, 2, &ROM[0x10000], 0x8000);
214214   state->membank("bank3")->set_entry(0);
215215
216   state->m_maincpu = machine.device("maincpu");
217   state->m_audiocpu = machine.device("audiocpu");
216   state->m_maincpu = machine.device<cpu_device>("maincpu");
217   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
218218   state->m_k051316 = machine.device("k051316");
219219
220220   state->save_item(NAME(state->m_charbank));
trunk/src/mame/drivers/m79amb.c
r17814r17815
204204
205205static INTERRUPT_GEN( m79amb_interrupt )
206206{
207   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xcf);  /* RST 08h */
207   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xcf);  /* RST 08h */
208208}
209209
210210static MACHINE_CONFIG_START( m79amb, m79amb_state )
trunk/src/mame/drivers/slapshot.c
r17814r17815
174174static TIMER_CALLBACK( slapshot_interrupt6 )
175175{
176176   slapshot_state *state = machine.driver_data<slapshot_state>();
177   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
177   state->m_maincpu->set_input_line(6, HOLD_LINE);
178178}
179179
180180
181181static INTERRUPT_GEN( slapshot_interrupt )
182182{
183183   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(200000 - 500), FUNC(slapshot_interrupt6));
184   device_set_input_line(device, 5, HOLD_LINE);
184   device->execute().set_input_line(5, HOLD_LINE);
185185}
186186
187187
r17814r17815
232232   }
233233
234234   /* 4 writes a frame - one for each analogue port */
235   device_set_input_line(m_maincpu, 3, HOLD_LINE);
235   m_maincpu->set_input_line(3, HOLD_LINE);
236236}
237237
238238/*****************************************************
r17814r17815
486486static void irqhandler( device_t *device, int irq )
487487{
488488   slapshot_state *state = device->machine().driver_data<slapshot_state>();
489   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
489   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
490490}
491491
492492static const ym2610_interface ym2610_config =
r17814r17815
526526
527527   state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
528528
529   state->m_maincpu = machine.device("maincpu");
530   state->m_audiocpu = machine.device("audiocpu");
529   state->m_maincpu = machine.device<cpu_device>("maincpu");
530   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
531531   state->m_tc0140syt = machine.device("tc0140syt");
532532   state->m_tc0480scp = machine.device("tc0480scp");
533533   state->m_tc0360pri = machine.device("tc0360pri");
trunk/src/mame/drivers/koftball.c
r17814r17815
215215   int scanline = param;
216216
217217   if(scanline == 240)
218      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
218      state->m_maincpu->set_input_line(2, HOLD_LINE);
219219
220220   if(scanline == 128)
221      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
221      state->m_maincpu->set_input_line(3, HOLD_LINE);
222222
223223   if(scanline == 64)
224      device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
224      state->m_maincpu->set_input_line(6, HOLD_LINE);
225225}
226226
227227static const gfx_layout tilelayout =
trunk/src/mame/drivers/lucky74.c
r17814r17815
906906   lucky74_state *state = device->machine().driver_data<lucky74_state>();
907907   if ((state->m_ym2149_portb & 0x10) == 0)   /* ym2149 portB bit 4 trigger the NMI */
908908   {
909      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
909      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
910910   }
911911}
912912
trunk/src/mame/drivers/cninja.c
r17814r17815
5858{
5959
6060   soundlatch_byte_w(space, 0, data & 0xff);
61   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
61   m_audiocpu->set_input_line(0, HOLD_LINE);
6262}
6363
6464WRITE16_MEMBER(cninja_state::stoneage_sound_w)
6565{
6666
6767   soundlatch_byte_w(space, 0, data & 0xff);
68   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
68   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
6969}
7070
7171static TIMER_DEVICE_CALLBACK( interrupt_gen )
7272{
7373   cninja_state *state = timer.machine().driver_data<cninja_state>();
7474
75   device_set_input_line(state->m_maincpu, (state->m_irq_mask & 0x10) ? 3 : 4, ASSERT_LINE);
75   state->m_maincpu->set_input_line((state->m_irq_mask & 0x10) ? 3 : 4, ASSERT_LINE);
7676   state->m_raster_irq_timer->reset();
7777}
7878
r17814r17815
8686      return m_scanline;
8787
8888   case 2: /* Raster IRQ ACK - value read is not used */
89      device_set_input_line(m_maincpu, 3, CLEAR_LINE);
90      device_set_input_line(m_maincpu, 4, CLEAR_LINE);
89      m_maincpu->set_input_line(3, CLEAR_LINE);
90      m_maincpu->set_input_line(4, CLEAR_LINE);
9191      return 0;
9292   }
9393
r17814r17815
712712static void sound_irq(device_t *device, int state)
713713{
714714   cninja_state *driver_state = device->machine().driver_data<cninja_state>();
715   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
715   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
716716}
717717
718718static void sound_irq2(device_t *device, int state)
719719{
720720   cninja_state *driver_state = device->machine().driver_data<cninja_state>();
721   device_set_input_line(driver_state->m_audiocpu, 0, state);
721   driver_state->m_audiocpu->set_input_line(0, state);
722722}
723723
724724WRITE8_MEMBER(cninja_state::sound_bankswitch_w)
trunk/src/mame/drivers/missile.c
r17814r17815
440440
441441   /* assert the IRQ if not already asserted */
442442   state->m_irq_state = (~curv >> 5) & 1;
443   device_set_input_line(state->m_maincpu, 0, state->m_irq_state ? ASSERT_LINE : CLEAR_LINE);
443   state->m_maincpu->set_input_line(0, state->m_irq_state ? ASSERT_LINE : CLEAR_LINE);
444444
445445   /* force an update while we're here */
446446   machine.primary_screen->update_partial(v_to_scanline(state, curv));
r17814r17815
540540static MACHINE_RESET( missile )
541541{
542542   missile_state *state = machine.driver_data<missile_state>();
543   device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
543   state->m_maincpu->set_input_line(0, CLEAR_LINE);
544544   state->m_irq_state = 0;
545545}
546546
r17814r17815
617617      videoram[vramaddr] = (videoram[vramaddr] & vrammask) | (vramdata & ~vrammask);
618618
619619      /* account for the extra clock cycle */
620      device_adjust_icount(&space->device(), -1);
620      space->device().execute().adjust_icount(-1);
621621   }
622622}
623623
r17814r17815
653653         result &= ~0x20;
654654
655655      /* account for the extra clock cycle */
656      device_adjust_icount(&space->device(), -1);
656      space->device().execute().adjust_icount(-1);
657657   }
658658   return result;
659659}
r17814r17815
759759   {
760760      if (m_irq_state)
761761      {
762         device_set_input_line(m_maincpu, 0, CLEAR_LINE);
762         m_maincpu->set_input_line(0, CLEAR_LINE);
763763         m_irq_state = 0;
764764      }
765765   }
trunk/src/mame/drivers/go2000.c
r17814r17815
4848//  UINT16 *  m_paletteram;   // currently this uses generic palette handling
4949
5050   /* devices */
51   device_t *m_soundcpu;
51   cpu_device *m_soundcpu;
5252   DECLARE_WRITE16_MEMBER(sound_cmd_w);
5353   DECLARE_WRITE8_MEMBER(go2000_pcm_1_bankswitch_w);
5454};
r17814r17815
5757WRITE16_MEMBER(go2000_state::sound_cmd_w)
5858{
5959   soundlatch_byte_w(space, offset, data & 0xff);
60   device_set_input_line(m_soundcpu, 0, HOLD_LINE);
60   m_soundcpu->set_input_line(0, HOLD_LINE);
6161}
6262
6363static ADDRESS_MAP_START( go2000_map, AS_PROGRAM, 16, go2000_state )
r17814r17815
318318
319319   state->membank("bank1")->set_entry(0);
320320
321   state->m_soundcpu = machine.device("soundcpu");
321   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
322322}
323323
324324static MACHINE_CONFIG_START( go2000, go2000_state )
trunk/src/mame/drivers/jack.c
r17814r17815
6464WRITE8_MEMBER(jack_state::jack_sh_command_w)
6565{
6666   soundlatch_byte_w(space, 0, data);
67   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
67   m_audiocpu->set_input_line(0, HOLD_LINE);
6868}
6969
7070
r17814r17815
856856{
857857    /* TODO: looks hackish to me ... */
858858   if (!(device->machine().root_device().ioport("IN2")->read() & 0x80))
859      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
859      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
860860}
861861
862862static MACHINE_CONFIG_DERIVED( joinem, jack )
trunk/src/mame/drivers/dogfgt.c
r17814r17815
2828{
2929   /* bit 0 used but unknown */
3030   if (data & 0x04)
31      device_set_input_line(m_subcpu, 0, ASSERT_LINE);
31      m_subcpu->set_input_line(0, ASSERT_LINE);
3232}
3333
3434WRITE8_MEMBER(dogfgt_state::sub_irqack_w)
3535{
36   device_set_input_line(m_subcpu, 0, CLEAR_LINE);
36   m_subcpu->set_input_line(0, CLEAR_LINE);
3737}
3838
3939WRITE8_MEMBER(dogfgt_state::dogfgt_soundlatch_w)
r17814r17815
210210{
211211   dogfgt_state *state = machine.driver_data<dogfgt_state>();
212212
213   state->m_subcpu = machine.device("sub");
213   state->m_subcpu = machine.device<cpu_device>("sub");
214214
215215   state->save_item(NAME(state->m_bm_plane));
216216   state->save_item(NAME(state->m_lastflip));
trunk/src/mame/drivers/deshoros.c
r17814r17815
8989
9090WRITE8_MEMBER(destiny_state::firq_ack_w)
9191{
92   device_set_input_line(m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE);
92   m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
9393}
9494
9595WRITE8_MEMBER(destiny_state::nmi_ack_w)
9696{
97   device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
97   m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
9898}
9999
100100READ8_MEMBER(destiny_state::printer_status_r)
r17814r17815
147147{
148148   // NMI on Coin SW or Service SW
149149   if (oldval)
150      device_set_input_line(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
150      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
151151
152152   // coincounter on coin insert
153153   if (((int)(FPTR)param) == 0)
trunk/src/mame/drivers/splash.c
r17814r17815
6767   }
6868
6969   // give the z80 time to see it
70   device_spin_until_time(&space.device(), attotime::from_usec(40));
70   space.device().execute().spin_until_time(attotime::from_usec(40));
7171}
7272
7373WRITE16_MEMBER(splash_state::splash_coin_w)
r17814r17815
148148{
149149   splash_state * state = machine.driver_data<splash_state>();
150150   int irq = (state->m_sound_irq ? 0x08 : 0) | ((state->m_vblank_irq) ? 0x18 : 0);
151   device_set_input_line_and_vector(machine.device("audiocpu"), 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq);
151   machine.device("audiocpu")->execute().set_input_line_and_vector(0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq);
152152}
153153
154154WRITE8_MEMBER(splash_state::roldfrog_vblank_ack_w)
r17814r17815
600600      if (state->m_msm_toggle1 == 0)
601601      {
602602         state->m_msm_source|=1;
603         device_set_input_line_and_vector(device->machine().device("audiocpu"), 0, HOLD_LINE, 0x38);
603         device->machine().device("audiocpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0x38);
604604      }
605605   }
606606}
r17814r17815
616616      if (state->m_msm_toggle2 == 0)
617617      {
618618         state->m_msm_source|=2;
619         device_set_input_line_and_vector(device->machine().device("audiocpu"), 0, HOLD_LINE, 0x38);
619         device->machine().device("audiocpu")->execute().set_input_line_and_vector(0, HOLD_LINE, 0x38);
620620      }
621621   }
622622}
trunk/src/mame/drivers/subsino2.c
r17814r17815
866866   subsino2_state *state = device->machine().driver_data<subsino2_state>();
867867   if ( ((state->m_am188em_regs[AM188EM_IMASK+0] & 0x10) == 0) ||   // IMASK.I0 mask
868868       ((state->m_am188em_regs[AM188EM_I0CON+0] & 0x08) == 0) )   // I0CON.MSK mask
869      device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x0c);   // INT0 (background scrolling in xplan)
869      device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x0c);   // INT0 (background scrolling in xplan)
870870}
871871
872872static TIMER_DEVICE_CALLBACK( am188em_timer2_irq )
trunk/src/mame/drivers/m63.c
r17814r17815
155155   INT16    *m_samplebuf;
156156
157157   /* sound devices */
158   device_t *m_soundcpu;
158   cpu_device *m_soundcpu;
159159   device_t *m_ay1;
160160   device_t *m_ay2;
161161   samples_device *m_samples;
r17814r17815
379379
380380WRITE8_MEMBER(m63_state::snd_irq_w)
381381{
382   device_set_input_line(m_soundcpu, 0, ASSERT_LINE);
382   m_soundcpu->set_input_line(0, ASSERT_LINE);
383383   machine().scheduler().synchronize();
384384}
385385
r17814r17815
409409   m_p2 = data;
410410   if((m_p2 & 0xf0) == 0x50)
411411   {
412      device_set_input_line(m_soundcpu, 0, CLEAR_LINE);
412      m_soundcpu->set_input_line(0, CLEAR_LINE);
413413   }
414414}
415415
r17814r17815
725725{
726726   m63_state *state = machine.driver_data<m63_state>();
727727
728   state->m_soundcpu = machine.device("soundcpu");
728   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
729729   state->m_ay1 = machine.device("ay1");
730730   state->m_ay2 = machine.device("ay2");
731731   state->m_samples = machine.device<samples_device>("samples");
r17814r17815
759759   m63_state *state = device->machine().driver_data<m63_state>();
760760
761761   if(state->m_nmi_mask)
762      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
762      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
763763}
764764
765765static MACHINE_CONFIG_START( m63, m63_state )
trunk/src/mame/drivers/route16.c
r17814r17815
107107   if (offset >= 0x0313 && offset <= 0x0319 && data == 0xff)
108108   {
109109      // Let the other CPU run
110      device_yield(&space.device());
110      space.device().execute().yield();
111111   }
112112}
113113
trunk/src/mame/drivers/snk6502.c
r17814r17815
745745   snk6502_state *state = device->machine().driver_data<snk6502_state>();
746746
747747   if(state->m_irq_mask)
748      device_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE);   /* one IRQ per frame */
748      device->execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE);   /* one IRQ per frame */
749749}
750750
751751static INTERRUPT_GEN( snk6502_interrupt )
752752{
753   device_set_input_line(device, M6502_IRQ_LINE, HOLD_LINE);   /* one IRQ per frame */
753   device->execute().set_input_line(M6502_IRQ_LINE, HOLD_LINE);   /* one IRQ per frame */
754754}
755755
756756
trunk/src/mame/drivers/polyplay.c
r17814r17815
121121
122122static INTERRUPT_GEN( periodic_interrupt )
123123{
124   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x4e);
124   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x4e);
125125}
126126
127127
r17814r17815
134134   else
135135   {
136136      if (state->m_last == 0)    /* coin inserted */
137         device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x50);
137         device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x50);
138138
139139      state->m_last = 1;
140140   }
trunk/src/mame/drivers/dassault.c
r17814r17815
178178WRITE16_MEMBER(dassault_state::dassault_sound_w)
179179{
180180   soundlatch_byte_w(space, 0, data & 0xff);
181   device_set_input_line(m_audiocpu, 0, HOLD_LINE); /* IRQ1 */
181   m_audiocpu->set_input_line(0, HOLD_LINE); /* IRQ1 */
182182}
183183
184184/* The CPU-CPU irq controller is overlaid onto the end of the shared memory */
r17814r17815
186186{
187187   switch (offset)
188188   {
189   case 0: device_set_input_line(m_maincpu, 5, CLEAR_LINE); break;
190   case 1: device_set_input_line(m_subcpu, 6, CLEAR_LINE); break;
189   case 0: m_maincpu->set_input_line(5, CLEAR_LINE); break;
190   case 1: m_subcpu->set_input_line(6, CLEAR_LINE); break;
191191   }
192192   return m_shared_ram[(0xffc / 2) + offset]; /* The values probably don't matter */
193193}
r17814r17815
196196{
197197   switch (offset)
198198   {
199   case 0: device_set_input_line(m_maincpu, 5, ASSERT_LINE); break;
200   case 1: device_set_input_line(m_subcpu, 6, ASSERT_LINE); break;
199   case 0: m_maincpu->set_input_line(5, ASSERT_LINE); break;
200   case 1: m_subcpu->set_input_line(6, ASSERT_LINE); break;
201201   }
202202
203203   COMBINE_DATA(&m_shared_ram[(0xffc / 2) + offset]); /* The values probably don't matter */
r17814r17815
448448static void sound_irq(device_t *device, int state)
449449{
450450   dassault_state *driver_state = device->machine().driver_data<dassault_state>();
451   device_set_input_line(driver_state->m_audiocpu, 1, state);
451   driver_state->m_audiocpu->set_input_line(1, state);
452452}
453453
454454WRITE8_MEMBER(dassault_state::sound_bankswitch_w)
trunk/src/mame/drivers/tatsumi.c
r17814r17815
851851
852852static INTERRUPT_GEN( roundup5_interrupt )
853853{
854   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc8/4);   /* VBL */
854   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xc8/4);   /* VBL */
855855}
856856
857857static void apache3_68000_reset(device_t *device)
trunk/src/mame/drivers/supbtime.c
r17814r17815
5353WRITE16_MEMBER(supbtime_state::sound_w)
5454{
5555   soundlatch_byte_w(space, 0, data & 0xff);
56   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
56   m_audiocpu->set_input_line(0, HOLD_LINE);
5757}
5858
5959/******************************************************************************/
r17814r17815
311311static void sound_irq(device_t *device, int state)
312312{
313313   supbtime_state *driver_state = device->machine().driver_data<supbtime_state>();
314   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
314   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
315315}
316316
317317static const ym2151_interface ym2151_config =
r17814r17815
334334{
335335   supbtime_state *state = machine.driver_data<supbtime_state>();
336336
337   state->m_maincpu = machine.device("maincpu");
338   state->m_audiocpu = machine.device("audiocpu");
337   state->m_maincpu = machine.device<cpu_device>("maincpu");
338   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
339339   state->m_deco_tilegen1 = machine.device("tilegen1");
340340}
341341
trunk/src/mame/drivers/toratora.c
r17814r17815
3939   UINT8      m_clear_tv;
4040
4141   /* devices */
42   device_t *m_maincpu;
42   cpu_device *m_maincpu;
4343   pia6821_device *m_pia_u1;
4444   pia6821_device *m_pia_u2;
4545   pia6821_device *m_pia_u3;
r17814r17815
144144   int combined_state = pia->irq_a_state() | pia->irq_b_state();
145145
146146   logerror("GEN IRQ: %x\n", combined_state);
147   device_set_input_line(m_maincpu, 0, combined_state ? ASSERT_LINE : CLEAR_LINE);
147   m_maincpu->set_input_line(0, combined_state ? ASSERT_LINE : CLEAR_LINE);
148148}
149149
150150
r17814r17815
425425{
426426   toratora_state *state = machine.driver_data<toratora_state>();
427427
428   state->m_maincpu = machine.device("maincpu");
428   state->m_maincpu = machine.device<cpu_device>("maincpu");
429429   state->m_pia_u1 = machine.device<pia6821_device>("pia_u1");
430430   state->m_pia_u2 = machine.device<pia6821_device>("pia_u2");
431431   state->m_pia_u3 = machine.device<pia6821_device>("pia_u3");
trunk/src/mame/drivers/gbusters.c
r17814r17815
2424   gbusters_state *state = device->machine().driver_data<gbusters_state>();
2525
2626   if (k052109_is_irq_enabled(state->m_k052109))
27      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
27      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
2828}
2929
3030READ8_MEMBER(gbusters_state::bankedram_r)
r17814r17815
101101
102102WRITE8_MEMBER(gbusters_state::gbusters_sh_irqtrigger_w)
103103{
104   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
104   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
105105}
106106
107107WRITE8_MEMBER(gbusters_state::gbusters_snd_bankswitch_w)
r17814r17815
276276
277277   state->m_generic_paletteram_8.allocate(0x800);
278278
279   state->m_maincpu = machine.device("maincpu");
280   state->m_audiocpu = machine.device("audiocpu");
279   state->m_maincpu = machine.device<cpu_device>("maincpu");
280   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
281281   state->m_k052109 = machine.device("k052109");
282282   state->m_k051960 = machine.device("k051960");
283283   state->m_k007232 = machine.device("k007232");
trunk/src/mame/drivers/megaplay.c
r17814r17815
8787         segae_hintpending = 1;
8888
8989         if  ((segae_vdp_regs[0][0] & 0x10)) {
90            device_set_input_line(device, 0, HOLD_LINE);
90            device->execute().set_input_line(0, HOLD_LINE);
9191            return;
9292         }
9393
r17814r17815
100100      hintcount = segae_vdp_regs[0][10];
101101
102102      if ( (sline<0xe0) && (segae_vintpending) ) {
103         device_set_input_line(device, 0, HOLD_LINE);
103         device->execute().set_input_line(0, HOLD_LINE);
104104      }
105105   }
106106
trunk/src/mame/drivers/m72.c
r17814r17815
293293   m72_state *state = device->machine().driver_data<m72_state>();
294294   //state->m_mcu_snd_cmd_latch |= 0x11; /* 0x10 is special as well - FIXME */
295295   state->m_mcu_snd_cmd_latch = 0x11;// | (machine.rand() & 1); /* 0x10 is special as well - FIXME */
296   device_set_input_line(device, 1, ASSERT_LINE);
296   device->execute().set_input_line(1, ASSERT_LINE);
297297}
298298
299299READ8_MEMBER(m72_state::m72_mcu_sample_r)
trunk/src/mame/drivers/crgolf.c
r17814r17815
7575{
7676   crgolf_state *state = machine.driver_data<crgolf_state>();
7777
78   state->m_maincpu = machine.device("maincpu");
79   state->m_audiocpu = machine.device("audiocpu");
78   state->m_maincpu = machine.device<cpu_device>("maincpu");
79   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
8080
8181   /* configure the banking */
8282   state->membank("bank1")->configure_entries(0, 16, state->memregion("maincpu")->base() + 0x10000, 0x2000);
r17814r17815
153153{
154154   crgolf_state *state = machine.driver_data<crgolf_state>();
155155
156   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
156   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
157157   state->m_main_to_sound_data = param;
158158}
159159
r17814r17815
167167READ8_MEMBER(crgolf_state::main_to_sound_r)
168168{
169169
170   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
170   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
171171   return m_main_to_sound_data;
172172}
173173
r17814r17815
183183{
184184   crgolf_state *state = machine.driver_data<crgolf_state>();
185185
186   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
186   state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
187187   state->m_sound_to_main_data = param;
188188}
189189
r17814r17815
197197READ8_MEMBER(crgolf_state::sound_to_main_r)
198198{
199199
200   device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
200   m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
201201   return m_sound_to_main_data;
202202}
203203
trunk/src/mame/drivers/mastboy.c
r17814r17815
697697   mastboy_state *state = device->machine().driver_data<mastboy_state>();
698698   if ((state->m_irq0_ack & 1) == 1)
699699   {
700      device_set_input_line(device, 0, ASSERT_LINE);
700      device->execute().set_input_line(0, ASSERT_LINE);
701701   }
702702}
703703
trunk/src/mame/drivers/jclub2.c
r17814r17815
674674   int scanline = param;
675675
676676   if(scanline == 248)
677      device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
677      state->m_maincpu->set_input_line(5, HOLD_LINE);
678678
679679   if(scanline == 0)
680      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
680      state->m_maincpu->set_input_line(3, HOLD_LINE);
681681
682682   if(scanline == 128)
683      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
683      state->m_maincpu->set_input_line(4, HOLD_LINE);
684684}
685685
686686static MACHINE_CONFIG_START( darkhors, darkhors_state )
trunk/src/mame/drivers/topspeed.c
r17814r17815
300300   /* however this fails when recovering from a save state
301301       if cpu B is disabled !! */
302302   topspeed_state *state = machine.driver_data<topspeed_state>();
303   device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (state->m_cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE);
303   state->m_subcpu->set_input_line(INPUT_LINE_RESET, (state->m_cpua_ctrl &0x1) ? CLEAR_LINE : ASSERT_LINE);
304304}
305305
306306WRITE16_MEMBER(topspeed_state::cpua_ctrl_w)
r17814r17815
325325static TIMER_CALLBACK( topspeed_interrupt6  )
326326{
327327   topspeed_state *state = machine.driver_data<topspeed_state>();
328   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
328   state->m_maincpu->set_input_line(6, HOLD_LINE);
329329}
330330
331331/* 68000 B */
r17814r17815
333333static TIMER_CALLBACK( topspeed_cpub_interrupt6 )
334334{
335335   topspeed_state *state = machine.driver_data<topspeed_state>();
336   device_set_input_line(state->m_subcpu, 6, HOLD_LINE);   /* assumes Z80 sandwiched between the 68Ks */
336   state->m_subcpu->set_input_line(6, HOLD_LINE);   /* assumes Z80 sandwiched between the 68Ks */
337337}
338338
339339
r17814r17815
341341{
342342   /* Unsure how many int6's per frame */
343343   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(200000 - 500), FUNC(topspeed_interrupt6));
344   device_set_input_line(device, 5, HOLD_LINE);
344   device->execute().set_input_line(5, HOLD_LINE);
345345}
346346
347347static INTERRUPT_GEN( topspeed_cpub_interrupt )
348348{
349349   /* Unsure how many int6's per frame */
350350   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(200000 - 500), FUNC(topspeed_cpub_interrupt6));
351   device_set_input_line(device, 5, HOLD_LINE);
351   device->execute().set_input_line(5, HOLD_LINE);
352352}
353353
354354
r17814r17815
661661static void irq_handler( device_t *device, int irq )   /* assumes Z80 sandwiched between 68Ks */
662662{
663663   topspeed_state *state = device->machine().driver_data<topspeed_state>();
664   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
664   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
665665}
666666
667667static const ym2151_interface ym2151_config =
r17814r17815
699699
700700   state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
701701
702   state->m_maincpu = machine.device("maincpu");
703   state->m_subcpu = machine.device("subcpu");
704   state->m_audiocpu = machine.device("audiocpu");
702   state->m_maincpu = machine.device<cpu_device>("maincpu");
703   state->m_subcpu = machine.device<cpu_device>("subcpu");
704   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
705705   state->m_tc0220ioc = machine.device("tc0220ioc");
706706   state->m_pc080sn_1 = machine.device("pc080sn_1");
707707   state->m_pc080sn_2 = machine.device("pc080sn_2");
trunk/src/mame/drivers/amspdwy.c
r17814r17815
7171WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w)
7272{
7373   soundlatch_byte_w(space, 0, data);
74   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
74   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7575}
7676
7777static ADDRESS_MAP_START( amspdwy_map, AS_PROGRAM, 8, amspdwy_state )
r17814r17815
242242static void irq_handler( device_t *device, int irq )
243243{
244244   amspdwy_state *state = device->machine().driver_data<amspdwy_state>();
245   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
245   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
246246}
247247
248248static const ym2151_interface amspdwy_ym2151_interface =
r17814r17815
254254{
255255   amspdwy_state *state = machine.driver_data<amspdwy_state>();
256256
257   state->m_audiocpu = machine.device("audiocpu");
257   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
258258
259259   state->save_item(NAME(state->m_flipscreen));
260260   state->save_item(NAME(state->m_wheel_old));
trunk/src/mame/drivers/fantland.c
r17814r17815
7676WRITE8_MEMBER(fantland_state::fantland_soundlatch_w)
7777{
7878   soundlatch_byte_w(space, 0, data);
79   device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, PULSE_LINE);
79   m_audio_cpu->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8080}
8181
8282WRITE16_MEMBER(fantland_state::fantland_soundlatch_16_w)
r17814r17815
835835{
836836   fantland_state *state = device->machine().driver_data<fantland_state>();
837837   if (state->m_nmi_enable & 8)
838      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
838      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
839839}
840840
841841static INTERRUPT_GEN( fantland_sound_irq )
842842{
843   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x80 / 4);
843   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x80 / 4);
844844}
845845
846846static MACHINE_CONFIG_START( fantland, fantland_state )
r17814r17815
888888static void galaxygn_sound_irq( device_t *device, int line )
889889{
890890   fantland_state *state = device->machine().driver_data<fantland_state>();
891   device_set_input_line_and_vector(state->m_audio_cpu, 0, line ? ASSERT_LINE : CLEAR_LINE, 0x80/4);
891   state->m_audio_cpu->execute().set_input_line_and_vector(0, line ? ASSERT_LINE : CLEAR_LINE, 0x80/4);
892892}
893893
894894static const ym2151_interface galaxygn_ym2151_interface =
trunk/src/mame/drivers/thunderx.c
r17814r17815
2626   thunderx_state *state = device->machine().driver_data<thunderx_state>();
2727
2828   if (k052109_is_irq_enabled(state->m_k052109))
29      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
29      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
3030}
3131
3232static TIMER_CALLBACK( thunderx_firq_callback )
3333{
3434   thunderx_state *state = machine.driver_data<thunderx_state>();
35   device_set_input_line(state->m_maincpu, KONAMI_FIRQ_LINE, HOLD_LINE);
35   state->m_maincpu->set_input_line(KONAMI_FIRQ_LINE, HOLD_LINE);
3636}
3737
3838READ8_MEMBER(thunderx_state::scontra_bankedram_r)
r17814r17815
353353
354354WRITE8_MEMBER(thunderx_state::thunderx_sh_irqtrigger_w)
355355{
356   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
356   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
357357}
358358
359359WRITE8_MEMBER(thunderx_state::scontra_snd_bankswitch_w)
r17814r17815
609609
610610   state->m_generic_paletteram_8.allocate(0x800);
611611
612   state->m_maincpu = machine.device("maincpu");
613   state->m_audiocpu = machine.device("audiocpu");
612   state->m_maincpu = machine.device<cpu_device>("maincpu");
613   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
614614   state->m_k007232 = machine.device("k007232");
615615   state->m_k052109 = machine.device("k052109");
616616   state->m_k051960 = machine.device("k051960");
trunk/src/mame/drivers/toypop.c
r17814r17815
107107   device_t *namcoio_2 = device->machine().device("56xx_2");
108108
109109   if(state->m_main_irq_mask)
110      device_set_input_line(device, 0, HOLD_LINE);
110      device->execute().set_input_line(0, HOLD_LINE);
111111
112112   if (!namcoio_read_reset_line(namcoio_0))      /* give the cpu a tiny bit of time to write the command before processing it */
113113      device->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(namcoio_run));
r17814r17815
125125   toypop_state *state = device->machine().driver_data<toypop_state>();
126126
127127   if(state->m_sound_irq_mask)
128      device_set_input_line(device, 0, HOLD_LINE);
128      device->execute().set_input_line(0, HOLD_LINE);
129129}
130130
131131WRITE8_MEMBER(toypop_state::toypop_sound_clear_w)
r17814r17815
165165{
166166   toypop_state *state = device->machine().driver_data<toypop_state>();
167167   if (state->m_interrupt_enable_68k)
168      device_set_input_line(device, 6, HOLD_LINE);
168      device->execute().set_input_line(6, HOLD_LINE);
169169}
170170
171171WRITE16_MEMBER(toypop_state::toypop_m68000_interrupt_enable_w)
trunk/src/mame/drivers/tumbleb.c
r17814r17815
441441static INTERRUPT_GEN( tumbleb2_interrupt )
442442{
443443   tumbleb_state *state = device->machine().driver_data<tumbleb_state>();
444   device_set_input_line(device, 6, HOLD_LINE);
444   device->execute().set_input_line(6, HOLD_LINE);
445445   tumbleb2_playmusic(state->m_oki);
446446}
447447
r17814r17815
701701WRITE16_MEMBER(tumbleb_state::jumpkids_sound_w)
702702{
703703   soundlatch_byte_w(space, 0, data & 0xff);
704   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
704   m_audiocpu->set_input_line(0, HOLD_LINE);
705705}
706706
707707static ADDRESS_MAP_START( suprtrio_main_map, AS_PROGRAM, 16, tumbleb_state )
r17814r17815
740740   {
741741      soundlatch_byte_w(space, 0, data & 0xff);
742742      // needed for Super Trio which reads the sound with polling
743      // device_spin_until_time(&space.device(), attotime::from_usec(100));
743      // space.device().execute().spin_until_time(attotime::from_usec(100));
744744      machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(20));
745745
746746   }
r17814r17815
18671867{
18681868   tumbleb_state *state = machine.driver_data<tumbleb_state>();
18691869
1870   state->m_maincpu = machine.device("maincpu");
1871   state->m_audiocpu = machine.device("audiocpu");
1870   state->m_maincpu = machine.device<cpu_device>("maincpu");
1871   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
18721872   state->m_oki = machine.device("oki");
18731873
18741874   state->save_item(NAME(state->m_music_command));
r17814r17815
20442044static void semicom_irqhandler( device_t *device, int irq )
20452045{
20462046   tumbleb_state *state = device->machine().driver_data<tumbleb_state>();
2047   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
2047   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
20482048}
20492049
20502050
trunk/src/mame/drivers/taitotz.c
r17814r17815
18451845         if (m_io_share_ram[0xfff] == 0x1010 || m_io_share_ram[0xfff] == 0x1020 ||
18461846            m_io_share_ram[0xfff] == 0x6000 || m_io_share_ram[0xfff] == 0x6010)
18471847         {
1848            //device_spin_until_trigger(machine().device("maincpu"), PPC_TLCS_COMM_TRIGGER);
1849            device_spin_until_interrupt(machine().device("maincpu"));
1848            //machine().device("maincpu")->execute().spin_until_trigger(PPC_TLCS_COMM_TRIGGER);
1849            machine().device("maincpu")->execute().spin_until_interrupt();
18501850         }
18511851
18521852         // pwrshovl sometimes writes commands during command handling... make sure that doesn't happen
18531853         if (m_io_share_ram[0xfff] == 0x0000)
18541854         {
1855            device_spin_until_time(machine().device("maincpu"), attotime::from_usec(50));
1855            machine().device("maincpu")->execute().spin_until_time(attotime::from_usec(50));
18561856         }
18571857
18581858         machine().scheduler().trigger(TLCS_PPC_COMM_TRIGGER);
r17814r17815
19311931
19321932      // The PPC is now free to continue running
19331933      //machine().scheduler().trigger(PPC_TLCS_COMM_TRIGGER);
1934      //device_yield(machine().device("iocpu"));
1934      //machine().device("iocpu")->execute().yield();
19351935   }
19361936
19371937   if (offset == 0x1ffe)
19381938   {
19391939      if (m_io_share_ram[0xfff] == 0 && m_io_share_ram[0xffe] == 0x1012)
19401940      {
1941         //device_spin_until_trigger(machine().device("iocpu"), TLCS_PPC_COMM_TRIGGER);
1942         device_yield(machine().device("iocpu"));
1941         //machine().device("iocpu")->execute().spin_until_trigger(TLCS_PPC_COMM_TRIGGER);
1942         machine().device("iocpu")->execute().yield();
19431943         machine().scheduler().trigger(PPC_TLCS_COMM_TRIGGER);
19441944      }
19451945   }
trunk/src/mame/drivers/cabaret.c
r17814r17815
328328{
329329   cabaret_state *state = device->machine().driver_data<cabaret_state>();
330330    if (state->m_nmi_enable & 0x80)
331      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
331      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
332332}
333333
334334static MACHINE_CONFIG_START( cabaret, cabaret_state )
trunk/src/mame/drivers/kchamp.c
r17814r17815
8282WRITE8_MEMBER(kchamp_state::sound_reset_w)
8383{
8484   if (!(data & 1))
85      device_set_input_line(m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
85      m_audiocpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
8686}
8787
8888WRITE8_MEMBER(kchamp_state::sound_control_w)
r17814r17815
9595WRITE8_MEMBER(kchamp_state::sound_command_w)
9696{
9797   soundlatch_byte_w(space, 0, data);
98   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
98   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
9999}
100100
101101WRITE8_MEMBER(kchamp_state::sound_msm_w)
r17814r17815
144144********************/
145145READ8_MEMBER(kchamp_state::sound_reset_r)
146146{
147   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, PULSE_LINE);
147   m_audiocpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
148148   return 0;
149149}
150150
r17814r17815
344344{
345345   kchamp_state *state = device->machine().driver_data<kchamp_state>();
346346   if (state->m_nmi_enable)
347      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
347      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
348348}
349349
350350static void msmint( device_t *device )
r17814r17815
361361   if (!(state->m_counter ^= 1))
362362   {
363363      if (state->m_sound_nmi_enable)
364         device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
364         state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
365365   }
366366}
367367
r17814r17815
379379{
380380   kchamp_state *state = device->machine().driver_data<kchamp_state>();
381381   if (state->m_sound_nmi_enable)
382      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
382      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
383383}
384384
385385
r17814r17815
387387{
388388   kchamp_state *state = machine.driver_data<kchamp_state>();
389389
390   state->m_audiocpu = machine.device("audiocpu");
390   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
391391
392392   state->save_item(NAME(state->m_nmi_enable));
393393   state->save_item(NAME(state->m_sound_nmi_enable));
trunk/src/mame/drivers/m90.c
r17814r17815
701701
702702static INTERRUPT_GEN( dynablsb_interrupt )
703703{
704   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x60/4);
704   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x60/4);
705705}
706706
707707static INTERRUPT_GEN( bomblord_interrupt )
708708{
709   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x50/4);
709   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x50/4);
710710}
711711
712712
trunk/src/mame/drivers/r2dx_v33.c
r17814r17815
500500
501501static INTERRUPT_GEN( rdx_v33_interrupt )
502502{
503   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc0/4);   /* VBL */
503   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xc0/4);   /* VBL */
504504}
505505
506506static const gfx_layout rdx_v33_charlayout =
trunk/src/mame/drivers/lastfght.c
r17814r17815
529529{
530530   lastfght_state *state = device->machine().driver_data<lastfght_state>();
531531
532   device_set_input_line(state->m_maincpu, H8_METRO_TIMER_HACK, HOLD_LINE);
532   state->m_maincpu->set_input_line(H8_METRO_TIMER_HACK, HOLD_LINE);
533533}
534534
535535static MACHINE_START( lastfght )
trunk/src/mame/drivers/superqix.c
r17814r17815
987987   superqix_state *state = device->machine().driver_data<superqix_state>();
988988
989989   if(state->m_nmi_mask)
990      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
990      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
991991}
992992
993993static INTERRUPT_GEN( sqix_timer_irq )
r17814r17815
995995   superqix_state *state = device->machine().driver_data<superqix_state>();
996996
997997   if (state->m_nmi_mask)
998      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
998      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
999999}
10001000
10011001
trunk/src/mame/drivers/lockon.c
r17814r17815
5656   m_ctrl_reg = data & 0xff;
5757
5858   /* Bus mastering for shared access */
59   device_set_input_line(m_ground, INPUT_LINE_HALT, data & 0x04 ? ASSERT_LINE : CLEAR_LINE);
60   device_set_input_line(m_object, INPUT_LINE_HALT, data & 0x20 ? ASSERT_LINE : CLEAR_LINE);
61   device_set_input_line(m_audiocpu, INPUT_LINE_HALT, data & 0x40 ? CLEAR_LINE : ASSERT_LINE);
59   m_ground->execute().set_input_line(INPUT_LINE_HALT, data & 0x04 ? ASSERT_LINE : CLEAR_LINE);
60   m_object->execute().set_input_line(INPUT_LINE_HALT, data & 0x20 ? ASSERT_LINE : CLEAR_LINE);
61   m_audiocpu->set_input_line(INPUT_LINE_HALT, data & 0x40 ? CLEAR_LINE : ASSERT_LINE);
6262}
6363
6464READ16_MEMBER(lockon_state::main_gnd_r)
r17814r17815
115115
116116READ16_MEMBER(lockon_state::main_z80_r)
117117{
118   address_space *sndspace = m_audiocpu->memory().space(AS_PROGRAM);
118   address_space *sndspace = m_audiocpu->space(AS_PROGRAM);
119119   return 0xff00 | sndspace->read_byte(offset);
120120}
121121
122122WRITE16_MEMBER(lockon_state::main_z80_w)
123123{
124   address_space *sndspace = m_audiocpu->memory().space(AS_PROGRAM);
124   address_space *sndspace = m_audiocpu->space(AS_PROGRAM);
125125   sndspace->write_byte(offset, data);
126126}
127127
r17814r17815
418418static void ym2203_irq(device_t *device, int irq)
419419{
420420   lockon_state *state = device->machine().driver_data<lockon_state>();
421   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE );
421   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE );
422422}
423423
424424WRITE8_MEMBER(lockon_state::ym2203_out_b)
r17814r17815
455455{
456456   lockon_state *state = machine.driver_data<lockon_state>();
457457
458   state->m_maincpu = machine.device("maincpu");
459   state->m_audiocpu = machine.device("audiocpu");
458   state->m_maincpu = machine.device<cpu_device>("maincpu");
459   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
460460   state->m_ground = machine.device("ground");
461461   state->m_object = machine.device("object");
462462   state->m_f2203_1l = machine.device("f2203.1l");
trunk/src/mame/drivers/kontest.c
r17814r17815
154154   // other bits: ?
155155   m_control = data;
156156
157   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
157   m_maincpu->set_input_line(0, CLEAR_LINE);
158158}
159159
160160static ADDRESS_MAP_START( kontest_map, AS_PROGRAM, 8, kontest_state )
r17814r17815
243243{
244244   kontest_state *state = device->machine().driver_data<kontest_state>();
245245   if (state->m_control & 8)
246      device_set_input_line(device, 0, ASSERT_LINE);
246      device->execute().set_input_line(0, ASSERT_LINE);
247247}
248248
249249void kontest_state::machine_start()
trunk/src/mame/drivers/gijoe.c
r17814r17815
113113   gijoe_state *state = machine.driver_data<gijoe_state>();
114114
115115   if (state->m_cur_control2 & 0x0020)
116      device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
116      state->m_maincpu->set_input_line(6, HOLD_LINE);
117117}
118118
119119static INTERRUPT_GEN( gijoe_interrupt )
r17814r17815
134134
135135   // trigger V-blank interrupt
136136   if (state->m_cur_control2 & 0x0080)
137      device_set_input_line(device, 5, HOLD_LINE);
137      device->execute().set_input_line(5, HOLD_LINE);
138138}
139139
140140WRITE16_MEMBER(gijoe_state::sound_cmd_w)
r17814r17815
148148
149149WRITE16_MEMBER(gijoe_state::sound_irq_w)
150150{
151   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
151   m_audiocpu->set_input_line(0, HOLD_LINE);
152152}
153153
154154READ16_MEMBER(gijoe_state::sound_status_r)
r17814r17815
159159static void sound_nmi( device_t *device )
160160{
161161   gijoe_state *state = device->machine().driver_data<gijoe_state>();
162   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
162   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
163163}
164164
165165static ADDRESS_MAP_START( gijoe_map, AS_PROGRAM, 16, gijoe_state )
r17814r17815
275275{
276276   gijoe_state *state = machine.driver_data<gijoe_state>();
277277
278   state->m_maincpu = machine.device("maincpu");
279   state->m_audiocpu = machine.device("audiocpu");
278   state->m_maincpu = machine.device<cpu_device>("maincpu");
279   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
280280   state->m_k054539 = machine.device("k054539");
281281   state->m_k056832 = machine.device("k056832");
282282   state->m_k053246 = machine.device("k053246");
trunk/src/mame/drivers/rltennis.c
r17814r17815
151151{
152152   rltennis_state *state = device->machine().driver_data<rltennis_state>();
153153   ++state->m_unk_counter; /* frame counter? verify */
154   device_set_input_line(device, 4, HOLD_LINE);
155   device_set_input_line(device, 1, HOLD_LINE); /* hack, to avoid dead loop */
154   device->execute().set_input_line(4, HOLD_LINE);
155   device->execute().set_input_line(1, HOLD_LINE); /* hack, to avoid dead loop */
156156}
157157
158158static MACHINE_START( rltennis )
159159{
160160   rltennis_state *state = machine.driver_data<rltennis_state>();
161   state->m_maincpu = machine.device( "maincpu");
161   state->m_maincpu = machine.device<cpu_device>( "maincpu");
162162   state->m_screen = machine.device(  "screen");
163163   state->m_dac_1 = machine.device<dac_device>("dac1");
164164   state->m_dac_2 = machine.device<dac_device>("dac2");
trunk/src/mame/drivers/gei.c
r17814r17815
11081108   gei_state *state = device->machine().driver_data<gei_state>();
11091109
11101110   if(state->m_nmi_mask)
1111      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
1111      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
11121112}
11131113
11141114
trunk/src/mame/drivers/looping.c
r17814r17815
334334
335335static INTERRUPT_GEN( looping_interrupt )
336336{
337   device_set_input_line_and_vector(device, 0, ASSERT_LINE, 4);
337   device->execute().set_input_line_and_vector(0, ASSERT_LINE, 4);
338338}
339339
340340
trunk/src/mame/drivers/slapfght.c
r17814r17815
739739   slapfght_state *state = device->machine().driver_data<slapfght_state>();
740740
741741   if(state->m_irq_mask)
742      device_set_input_line(device, 0, HOLD_LINE);
742      device->execute().set_input_line(0, HOLD_LINE);
743743}
744744
745745
trunk/src/mame/drivers/psikyosh.c
r17814r17815
349349
350350static INTERRUPT_GEN(psikyosh_interrupt)
351351{
352   device_set_input_line(device, 4, ASSERT_LINE);
352   device->execute().set_input_line(4, ASSERT_LINE);
353353}
354354
355355// VBL handler writes 0x00 on entry, 0xc0 on exit
r17814r17815
358358{
359359   if (!(data & 0x00c00000))
360360   {
361      device_set_input_line(m_maincpu, 4, CLEAR_LINE);
361      m_maincpu->set_input_line(4, CLEAR_LINE);
362362   }
363363}
364364
r17814r17815
785785static void irqhandler(device_t *device, int linestate)
786786{
787787   psikyosh_state *state = device->machine().driver_data<psikyosh_state>();
788   device_set_input_line(state->m_maincpu, 12, linestate ? ASSERT_LINE : CLEAR_LINE);
788   state->m_maincpu->set_input_line(12, linestate ? ASSERT_LINE : CLEAR_LINE);
789789}
790790
791791static const ymf278b_interface ymf278b_config =
r17814r17815
798798{
799799   psikyosh_state *state = machine.driver_data<psikyosh_state>();
800800
801   state->m_maincpu = machine.device("maincpu");
801   state->m_maincpu = machine.device<cpu_device>("maincpu");
802802
803803   state->membank("bank2")->configure_entries(0, 0x1000, state->memregion("gfx1")->base(), 0x20000);
804804}
trunk/src/mame/drivers/astinvad.c
r17814r17815
218218static TIMER_CALLBACK( kamikaze_int_off )
219219{
220220   astinvad_state *state = machine.driver_data<astinvad_state>();
221   device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
221   state->m_maincpu->set_input_line(0, CLEAR_LINE);
222222}
223223
224224
r17814r17815
226226{
227227   astinvad_state *state = machine.driver_data<astinvad_state>();
228228   /* interrupts are asserted on every state change of the 128V line */
229   device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
229   state->m_maincpu->set_input_line(0, ASSERT_LINE);
230230   param ^= 128;
231231   state->m_int_timer->adjust(machine.primary_screen->time_until_pos(param), param);
232232
r17814r17815
284284INPUT_CHANGED_MEMBER(astinvad_state::spaceint_coin_inserted)
285285{
286286   /* coin insertion causes an NMI */
287   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
287   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
288288}
289289
290290
trunk/src/mame/drivers/supertnk.c
r17814r17815
167167static INTERRUPT_GEN( supertnk_interrupt )
168168{
169169   /* On a TMS9980, a 6 on the interrupt bus means a level 4 interrupt */
170   device_set_input_line_and_vector(device, 0, ASSERT_LINE, 6);
170   device->execute().set_input_line_and_vector(0, ASSERT_LINE, 6);
171171}
172172
173173
trunk/src/mame/drivers/boogwing.c
r17814r17815
278278static void sound_irq(device_t *device, int state)
279279{
280280   boogwing_state *driver_state = device->machine().driver_data<boogwing_state>();
281   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
281   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
282282}
283283
284284WRITE8_MEMBER(boogwing_state::sound_bankswitch_w)
trunk/src/mame/drivers/esh.c
r17814r17815
284284static INTERRUPT_GEN( vblank_callback_esh )
285285{
286286   // IRQ
287   device_set_input_line(device, 0, ASSERT_LINE);
287   device->execute().set_input_line(0, ASSERT_LINE);
288288   device->machine().scheduler().timer_set(attotime::from_usec(50), FUNC(irq_stop));
289289}
290290
trunk/src/mame/drivers/eolithsp.c
r17814r17815
3030
3131      if ((pc==eolith_speedup_address) || (pc==eolith_speedup_address2))
3232      {
33         device_spin_until_trigger(&space->device(), 1000);
33         space->device().execute().spin_until_trigger(1000);
3434      }
3535   }
3636}
r17814r17815
121121
122122   if (pc==0x400081ec)
123123      if(!eolith_vblank)
124         device_eat_cycles(m_maincpu, 500);
124         m_maincpu->eat_cycles(500);
125125
126126   return (machine().primary_screen->vpos() >= 240);
127127}
trunk/src/mame/drivers/fromance.c
r17814r17815
158158
159159   /* generate an NMI if we're out of data */
160160   if (!state->m_vclk_left)
161      device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
161      state->m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
162162}
163163
164164
r17814r17815
958958
959959   state->membank("bank1")->configure_entries(0, 0x100, &ROM[0x10000], 0x4000);
960960
961   state->m_subcpu = machine.device("sub");
961   state->m_subcpu = machine.device<cpu_device>("sub");
962962
963963   state->save_item(NAME(state->m_directionflag));
964964   state->save_item(NAME(state->m_commanddata));
trunk/src/mame/drivers/skykid.c
r17814r17815
428428   skykid_state *state = device->machine().driver_data<skykid_state>();
429429
430430   if(state->m_main_irq_mask)
431      device_set_input_line(device, 0, ASSERT_LINE);
431      device->execute().set_input_line(0, ASSERT_LINE);
432432}
433433
434434
r17814r17815
437437   skykid_state *state = device->machine().driver_data<skykid_state>();
438438
439439   if(state->m_mcu_irq_mask)
440      device_set_input_line(device, 0, ASSERT_LINE);
440      device->execute().set_input_line(0, ASSERT_LINE);
441441}
442442
443443
trunk/src/mame/drivers/djmain.c
r17814r17815
408408   }
409409
410410   //logerror("V-Blank interrupt\n");
411   device_set_input_line(device, M68K_IRQ_4, HOLD_LINE);
411   device->execute().set_input_line(M68K_IRQ_4, HOLD_LINE);
412412}
413413
414414
trunk/src/mame/drivers/mustache.c
r17814r17815
165165static INTERRUPT_GEN( assert_irq )
166166{
167167   mustache_state *state = device->machine().driver_data<mustache_state>();
168   device_set_input_line(device, 0, ASSERT_LINE);
168   device->execute().set_input_line(0, ASSERT_LINE);
169169    state->m_clear_irq_timer->adjust(downcast<cpu_device *>(device)->cycles_to_attotime(14288));
170170       /* Timing here is an educated GUESS, Z80 /INT must stay high so the irq
171171          fires no less than TWICE per frame, else game doesn't work right.
trunk/src/mame/drivers/neogeo.c
r17814r17815
351351static void audio_cpu_irq(device_t *device, int assert)
352352{
353353   neogeo_state *state = device->machine().driver_data<neogeo_state>();
354   device_set_input_line(state->m_audiocpu, 0, assert ? ASSERT_LINE : CLEAR_LINE);
354   state->m_audiocpu->set_input_line(0, assert ? ASSERT_LINE : CLEAR_LINE);
355355}
356356
357357
358358static void audio_cpu_assert_nmi(running_machine &machine)
359359{
360360   neogeo_state *state = machine.driver_data<neogeo_state>();
361   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
361   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
362362}
363363
364364
365365WRITE8_MEMBER(neogeo_state::audio_cpu_clear_nmi_w)
366366{
367   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
367   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
368368}
369369
370370
r17814r17815
10121012   state->m_irq3_pending = 1;
10131013
10141014   /* get devices */
1015   state->m_maincpu = machine.device("maincpu");
1016   state->m_audiocpu = machine.device("audiocpu");
1015   state->m_maincpu = machine.device<cpu_device>("maincpu");
1016   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
10171017   state->m_upd4990a = machine.device("upd4990a");
10181018
10191019   /* register state save */
trunk/src/mame/drivers/statriv2.c
r17814r17815
217217   state->m_latched_coin |= new_coin & (new_coin ^ state->m_last_coin);
218218   state->m_last_coin = new_coin;
219219
220   device_set_input_line(device, I8085_RST75_LINE, ASSERT_LINE);
221   device_set_input_line(device, I8085_RST75_LINE, CLEAR_LINE);
220   device->execute().set_input_line(I8085_RST75_LINE, ASSERT_LINE);
221   device->execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE);
222222}
223223
224224
trunk/src/mame/drivers/ultraman.c
r17814r17815
2727{
2828
2929   if (ACCESSING_BITS_0_7)
30      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
30      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3131}
3232
3333
r17814r17815
194194{
195195   ultraman_state *state = machine.driver_data<ultraman_state>();
196196
197   state->m_maincpu = machine.device("maincpu");
198   state->m_audiocpu = machine.device("audiocpu");
197   state->m_maincpu = machine.device<cpu_device>("maincpu");
198   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
199199   state->m_k051960 = machine.device("k051960");
200200   state->m_k051316_1 = machine.device("k051316_1");
201201   state->m_k051316_2 = machine.device("k051316_2");
trunk/src/mame/drivers/ladybug.c
r17814r17815
186186{
187187
188188   /* left coin insertion causes an NMI */
189   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
189   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
190190}
191191
192192INPUT_CHANGED_MEMBER(ladybug_state::coin2_inserted)
r17814r17815
194194
195195   /* right coin insertion causes an IRQ */
196196   if (newval)
197      device_set_input_line(m_maincpu, 0, HOLD_LINE);
197      m_maincpu->set_input_line(0, HOLD_LINE);
198198}
199199
200200
r17814r17815
729729static MACHINE_START( ladybug )
730730{
731731   ladybug_state *state = machine.driver_data<ladybug_state>();
732   state->m_maincpu = machine.device("maincpu");
732   state->m_maincpu = machine.device<cpu_device>("maincpu");
733733}
734734
735735static MACHINE_START( sraider )
736736{
737737   ladybug_state *state = machine.driver_data<ladybug_state>();
738738
739   state->m_maincpu = machine.device("maincpu");
739   state->m_maincpu = machine.device<cpu_device>("maincpu");
740740
741741   state->save_item(NAME(state->m_grid_color));
742742   state->save_item(NAME(state->m_sound_low));
trunk/src/mame/drivers/blueprnt.c
r17814r17815
7070WRITE8_MEMBER(blueprnt_state::blueprnt_sound_command_w)
7171{
7272   soundlatch_byte_w(space, offset, data);
73   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
73   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7474}
7575
7676WRITE8_MEMBER(blueprnt_state::blueprnt_coin_counter_w)
r17814r17815
279279{
280280   blueprnt_state *state = machine.driver_data<blueprnt_state>();
281281
282   state->m_audiocpu = machine.device("audiocpu");
282   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
283283
284284   state->save_item(NAME(state->m_dipsw));
285285}
trunk/src/mame/drivers/ttchamp.c
r17814r17815
271271
272272static INTERRUPT_GEN( ttchamp_irq ) /* right? */
273273{
274   device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
274   device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
275275}
276276
277277static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
trunk/src/mame/drivers/buggychl.c
r17814r17815
9696   buggychl_state *state = machine.driver_data<buggychl_state>();
9797
9898   if (state->m_sound_nmi_enable)
99      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
99      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
100100   else
101101      state->m_pending_nmi = 1;
102102}
r17814r17815
117117   m_sound_nmi_enable = 1;
118118   if (m_pending_nmi)
119119   {
120      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
120      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
121121      m_pending_nmi = 0;
122122   }
123123}
r17814r17815
363363
364364   state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x2000);
365365
366   state->m_audiocpu = machine.device("audiocpu");
366   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
367367
368368   state->save_item(NAME(state->m_sound_nmi_enable));
369369   state->save_item(NAME(state->m_pending_nmi));
trunk/src/mame/drivers/gotcha.c
r17814r17815
241241static void irqhandler( device_t *device, int linestate )
242242{
243243   gotcha_state *state = device->machine().driver_data<gotcha_state>();
244   device_set_input_line(state->m_audiocpu, 0, linestate);
244   state->m_audiocpu->set_input_line(0, linestate);
245245}
246246
247247static const ym2151_interface ym2151_config =
r17814r17815
254254{
255255   gotcha_state *state = machine.driver_data<gotcha_state>();
256256
257   state->m_audiocpu = machine.device("audiocpu");
257   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
258258
259259   state->save_item(NAME(state->m_banksel));
260260   state->save_item(NAME(state->m_gfxbank));
trunk/src/mame/drivers/taito_f2.c
r17814r17815
575575static TIMER_CALLBACK( taitof2_interrupt6 )
576576{
577577   taitof2_state *state = machine.driver_data<taitof2_state>();
578   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
578   state->m_maincpu->set_input_line(6, HOLD_LINE);
579579}
580580
581581static INTERRUPT_GEN( taitof2_interrupt )
582582{
583583   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(500), FUNC(taitof2_interrupt6));
584   device_set_input_line(device, 5, HOLD_LINE);
584   device->execute().set_input_line(5, HOLD_LINE);
585585}
586586
587587
r17814r17815
603603READ8_MEMBER(taitof2_state::driveout_sound_command_r)
604604{
605605
606   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
606   m_audiocpu->set_input_line(0, CLEAR_LINE);
607607//  logerror("sound IRQ OFF (sound command=%02x)\n", m_driveout_sound_latch);
608608   return m_driveout_sound_latch;
609609}
r17814r17815
644644         else
645645         {
646646            m_driveout_sound_latch = ((data << 4) & 0xf0) | (m_driveout_sound_latch & 0x0f);
647            device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
647            m_audiocpu->set_input_line(0, ASSERT_LINE);
648648         }
649649      }
650650   }
r17814r17815
28112811static void irq_handler( device_t *device, int irq )
28122812{
28132813   taitof2_state *state = device->machine().driver_data<taitof2_state>();
2814   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
2814   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
28152815}
28162816
28172817static const ym2610_interface ym2610_config =
r17814r17815
30203020{
30213021   taitof2_state *state = machine.driver_data<taitof2_state>();
30223022
3023   state->m_maincpu = machine.device("maincpu");
3024   state->m_audiocpu = machine.device("audiocpu");;
3023   state->m_maincpu = machine.device<cpu_device>("maincpu");
3024   state->m_audiocpu = machine.device<cpu_device>("audiocpu");;
30253025   state->m_tc0100scn = machine.device("tc0100scn");;
30263026   state->m_tc0100scn_1 = machine.device("tc0100scn_1");;
30273027   state->m_tc0100scn_2 = machine.device("tc0100scn_2");;
trunk/src/mame/drivers/pandoras.c
r17814r17815
4040   pandoras_state *state = device->machine().driver_data<pandoras_state>();
4141
4242   if (state->m_irq_enable_a)
43      device_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE);
43      device->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE);
4444}
4545
4646static INTERRUPT_GEN( pandoras_slave_interrupt )
r17814r17815
4848   pandoras_state *state = device->machine().driver_data<pandoras_state>();
4949
5050   if (state->m_irq_enable_b)
51      device_set_input_line(device, M6809_IRQ_LINE, HOLD_LINE);
51      device->execute().set_input_line(M6809_IRQ_LINE, HOLD_LINE);
5252}
5353
5454WRITE8_MEMBER(pandoras_state::pandoras_int_control_w)
r17814r17815
6666   switch (offset)
6767   {
6868      case 0x00:   if (!data)
69               device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
69               m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
7070            m_irq_enable_a = data;
7171            break;
7272      case 0x02:   coin_counter_w(machine(), 0,data & 0x01);
r17814r17815
7676      case 0x05:   pandoras_flipscreen_w(space, 0, data);
7777            break;
7878      case 0x06:   if (!data)
79               device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
79               m_subcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
8080            m_irq_enable_b = data;
8181            break;
82      case 0x07:   device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
82      case 0x07:   m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8383            break;
8484
8585      default:   logerror("%04x: (irq_ctrl) write %02x to %02x\n",space.device().safe_pc(), data, offset);
r17814r17815
9191{
9292
9393   if (!m_firq_old_data_a && data)
94      device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
94      m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
9595
9696   m_firq_old_data_a = data;
9797}
r17814r17815
100100{
101101
102102   if (!m_firq_old_data_b && data)
103      device_set_input_line(m_subcpu, M6809_FIRQ_LINE, HOLD_LINE);
103      m_subcpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
104104
105105   m_firq_old_data_b = data;
106106}
107107
108108WRITE8_MEMBER(pandoras_state::pandoras_i8039_irqtrigger_w)
109109{
110   device_set_input_line(m_mcu, 0, ASSERT_LINE);
110   m_mcu->set_input_line(0, ASSERT_LINE);
111111}
112112
113113WRITE8_MEMBER(pandoras_state::i8039_irqen_and_status_w)
r17814r17815
115115
116116   /* bit 7 enables IRQ */
117117   if ((data & 0x80) == 0)
118      device_set_input_line(m_mcu, 0, CLEAR_LINE);
118      m_mcu->set_input_line(0, CLEAR_LINE);
119119
120120   /* bit 5 goes to 8910 port A */
121121   m_i8039_status = (data & 0x20) >> 5;
r17814r17815
123123
124124WRITE8_MEMBER(pandoras_state::pandoras_z80_irqtrigger_w)
125125{
126   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
126   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
127127}
128128
129129
trunk/src/mame/drivers/gottlieb.c
r17814r17815
663663{
664664   gottlieb_state *state = device->machine().driver_data<gottlieb_state>();
665665   /* assert the NMI and set a timer to clear it at the first visible line */
666   device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
666   device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
667667   device->machine().scheduler().timer_set(device->machine().primary_screen->time_until_pos(0), FUNC(nmi_clear));
668668
669669   /* if we have a laserdisc, update it */
trunk/src/mame/drivers/ddragon.c
r17814r17815
130130
131131   /* on the rising edge of VBLK (vcount == F8), signal an NMI */
132132   if (vcount == 0xf8)
133      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
133      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
134134
135135   /* set 1ms signal on rising edge of vcount & 8 */
136136   if (!(vcount_old & 8) && (vcount & 8))
137      device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, ASSERT_LINE);
137      state->m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
138138}
139139
140140
r17814r17815
152152   /* configure banks */
153153   state->membank("bank1")->configure_entries(0, 8, state->memregion("maincpu")->base() + 0x10000, 0x4000);
154154
155   state->m_maincpu = machine.device("maincpu");
155   state->m_maincpu = machine.device<cpu_device>("maincpu");
156156   state->m_sub_cpu = machine.device("sub");
157157   state->m_snd_cpu = machine.device("soundcpu");
158158   state->m_adpcm_1 = machine.device("adpcm1");
r17814r17815
201201   if (data & 0x10)
202202      m_dd_sub_cpu_busy = 0;
203203   else if (m_dd_sub_cpu_busy == 0)
204      device_set_input_line(m_sub_cpu, m_sprite_irq, (m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
204      m_sub_cpu->execute().set_input_line(m_sprite_irq, (m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
205205
206206   membank("bank1")->set_entry((data & 0xe0) >> 5);
207207}
r17814r17815
276276   if (data & 0x10)
277277      m_dd_sub_cpu_busy = 0;
278278   else if (m_dd_sub_cpu_busy == 0)
279      device_set_input_line(m_sub_cpu, m_sprite_irq, (m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
279      m_sub_cpu->execute().set_input_line(m_sprite_irq, (m_sprite_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
280280
281281   membank("bank1")->set_entry(newbank);
282282   if (newbank == 4 && oldbank != 4)
r17814r17815
298298   switch (offset)
299299   {
300300      case 0: /* 380b - NMI ack */
301         device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
301         m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
302302         break;
303303
304304      case 1: /* 380c - FIRQ ack */
305         device_set_input_line(m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE);
305         m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
306306         break;
307307
308308      case 2: /* 380d - IRQ ack */
309         device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
309         m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
310310         break;
311311
312312      case 3: /* 380e - SND irq */
313313         soundlatch_byte_w(space, 0, data);
314         device_set_input_line(m_snd_cpu, m_sound_irq, (m_sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
314         m_snd_cpu->execute().set_input_line(m_sound_irq, (m_sound_irq == INPUT_LINE_NMI) ? PULSE_LINE : HOLD_LINE);
315315         break;
316316
317317      case 4: /* 380f - ? */
r17814r17815
323323
324324WRITE8_MEMBER(ddragon_state::ddragon2_sub_irq_ack_w)
325325{
326   device_set_input_line(m_sub_cpu, m_sprite_irq, CLEAR_LINE );
326   m_sub_cpu->execute().set_input_line(m_sprite_irq, CLEAR_LINE );
327327}
328328
329329
330330WRITE8_MEMBER(ddragon_state::ddragon2_sub_irq_w)
331331{
332   device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
332   m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
333333}
334334
335335
336336static void irq_handler( device_t *device, int irq )
337337{
338338   ddragon_state *state = device->machine().driver_data<ddragon_state>();
339   device_set_input_line(state->m_snd_cpu, state->m_ym_irq , irq ? ASSERT_LINE : CLEAR_LINE );
339   state->m_snd_cpu->execute().set_input_line(state->m_ym_irq , irq ? ASSERT_LINE : CLEAR_LINE );
340340}
341341
342342
r17814r17815
378378        it's quite obvious from the Double Dragon 2 code, below). */
379379      if (data & 3)
380380      {
381         device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
382         device_set_input_line(m_sub_cpu, m_sprite_irq, CLEAR_LINE);
381         m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
382         m_sub_cpu->execute().set_input_line(m_sprite_irq, CLEAR_LINE);
383383      }
384384   }
385385}
r17814r17815
561561/* might not be 100% accurate, check bits written */
562562WRITE8_MEMBER(ddragon_state::ddragonba_port_w)
563563{
564   device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
565   device_set_input_line(m_sub_cpu, m_sprite_irq, CLEAR_LINE );
564   m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
565   m_sub_cpu->execute().set_input_line(m_sprite_irq, CLEAR_LINE );
566566}
567567
568568static ADDRESS_MAP_START( ddragonba_sub_portmap, AS_IO, 8, ddragon_state )
trunk/src/mame/drivers/asterix.c
r17814r17815
6161   if (!k056832_is_irq_enabled(state->m_k056832, 0))
6262      return;
6363
64   device_set_input_line(device, 5, HOLD_LINE); /* ??? All irqs have the same vector, and the mask used is 0 or 7 */
64   device->execute().set_input_line(5, HOLD_LINE); /* ??? All irqs have the same vector, and the mask used is 0 or 7 */
6565}
6666
6767READ8_MEMBER(asterix_state::asterix_sound_r)
r17814r17815
7373static TIMER_CALLBACK( nmi_callback )
7474{
7575   asterix_state *state = machine.driver_data<asterix_state>();
76   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
76   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
7777}
7878
7979WRITE8_MEMBER(asterix_state::sound_arm_nmi_w)
8080{
8181
82   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
82   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
8383   machine().scheduler().timer_set(attotime::from_usec(5), FUNC(nmi_callback));
8484}
8585
8686WRITE16_MEMBER(asterix_state::sound_irq_w)
8787{
88   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
88   m_audiocpu->set_input_line(0, HOLD_LINE);
8989}
9090
9191// Check the routine at 7f30 in the ead version.
r17814r17815
247247{
248248   asterix_state *state = machine.driver_data<asterix_state>();
249249
250   state->m_maincpu = machine.device("maincpu");
251   state->m_audiocpu = machine.device("audiocpu");
250   state->m_maincpu = machine.device<cpu_device>("maincpu");
251   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
252252   state->m_k053260 = machine.device("k053260");
253253   state->m_k056832 = machine.device("k056832");
254254   state->m_k053244 = machine.device("k053244");
trunk/src/mame/drivers/xxmissio.c
r17814r17815
6767{
6868   xxmissio_state *state = device->machine().driver_data<xxmissio_state>();
6969   state->m_status &= ~0x20;
70   device_set_input_line(device, 0, HOLD_LINE);
70   device->execute().set_input_line(0, HOLD_LINE);
7171}
7272
7373static INTERRUPT_GEN( xxmissio_interrupt_s )
7474{
7575   xxmissio_state *state = device->machine().driver_data<xxmissio_state>();
7676   state->m_status &= ~0x10;
77   device_set_input_line(device, 0, HOLD_LINE);
77   device->execute().set_input_line(0, HOLD_LINE);
7878}
7979
8080static MACHINE_START( xxmissio )
trunk/src/mame/drivers/moo.c
r17814r17815
122122{
123123   moo_state *state = machine.driver_data<moo_state>();
124124   if (state->m_cur_control2 & 0x800)
125      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
125      state->m_maincpu->set_input_line(4, HOLD_LINE);
126126}
127127
128128static INTERRUPT_GEN( moo_interrupt )
r17814r17815
138138
139139   // trigger V-blank interrupt
140140   if (state->m_cur_control2 & 0x20)
141      device_set_input_line(device, 5, HOLD_LINE);
141      device->execute().set_input_line(5, HOLD_LINE);
142142}
143143
144144static INTERRUPT_GEN( moobl_interrupt )
r17814r17815
150150    state->m_dmaend_timer->adjust(attotime::from_usec(MOO_DMADELAY));
151151
152152   // trigger V-blank interrupt
153   device_set_input_line(device, 5, HOLD_LINE);
153   device->execute().set_input_line(5, HOLD_LINE);
154154}
155155
156156WRITE16_MEMBER(moo_state::sound_cmd1_w)
r17814r17815
170170
171171WRITE16_MEMBER(moo_state::sound_irq_w)
172172{
173   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
173   m_audiocpu->set_input_line(0, HOLD_LINE);
174174}
175175
176176READ16_MEMBER(moo_state::sound_status_r)
r17814r17815
427427{
428428   moo_state *state = machine.driver_data<moo_state>();
429429
430   state->m_maincpu = machine.device("maincpu");
431   state->m_audiocpu = machine.device("soundcpu");
430   state->m_maincpu = machine.device<cpu_device>("maincpu");
431   state->m_audiocpu = machine.device<cpu_device>("soundcpu");
432432   state->m_k054539 = machine.device("k054539");
433433   state->m_k053246 = machine.device("k053246");
434434   state->m_k053251 = machine.device("k053251");
trunk/src/mame/drivers/taito_l.c
r17814r17815
144144{
145145   taitol_state *state = machine.driver_data<taitol_state>();
146146
147   state->m_maincpu = machine.device("maincpu");
148   state->m_audiocpu = machine.device("audiocpu");
147   state->m_maincpu = machine.device<cpu_device>("maincpu");
148   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
149149
150150   state->save_item(NAME(state->m_rambanks));
151151   state->save_item(NAME(state->m_palette_ram));
r17814r17815
312312{
313313   taitol_state *state = timer.machine().driver_data<taitol_state>();
314314   int scanline = param;
315   device_set_irq_callback(state->m_maincpu, irq_callback);
315   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
316316
317317   /* kludge to make plgirls boot */
318   if (state->m_maincpu->state().state_int(Z80_IM) != 2)
318   if (state->m_maincpu->state_int(Z80_IM) != 2)
319319      return;
320320
321321   // What is really generating interrupts 0 and 1 is still to be found
r17814r17815
323323   if (scanline == 120 && (state->m_irq_enable & 1))
324324   {
325325      state->m_last_irq_level = 0;
326      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
326      state->m_maincpu->set_input_line(0, HOLD_LINE);
327327   }
328328   else if (scanline == 0 && (state->m_irq_enable & 2))
329329   {
330330      state->m_last_irq_level = 1;
331      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
331      state->m_maincpu->set_input_line(0, HOLD_LINE);
332332   }
333333   else if (scanline == 240 && (state->m_irq_enable & 4))
334334   {
335335      state->m_last_irq_level = 2;
336      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
336      state->m_maincpu->set_input_line(0, HOLD_LINE);
337337   }
338338}
339339
r17814r17815
355355
356356   // fix Plotting test mode
357357   if ((m_irq_enable & (1 << m_last_irq_level)) == 0)
358      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
358      m_maincpu->set_input_line(0, CLEAR_LINE);
359359}
360360
361361READ8_MEMBER(taitol_state::irq_enable_r)
r17814r17815
17741774static void irqhandler( device_t *device, int irq )
17751775{
17761776   taitol_state *state = device->machine().driver_data<taitol_state>();
1777   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
1777   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
17781778}
17791779
17801780WRITE8_MEMBER(taitol_state::portA_w)
trunk/src/mame/drivers/groundfx.c
r17814r17815
358358{
359359   groundfx_state *state = device->machine().driver_data<groundfx_state>();
360360   state->m_frame_counter^=1;
361   device_set_input_line(device, 4, HOLD_LINE);
361   device->execute().set_input_line(4, HOLD_LINE);
362362}
363363
364364static MACHINE_CONFIG_START( groundfx, groundfx_state )
trunk/src/mame/drivers/suprloco.c
r17814r17815
2222   soundlatch_byte_w(space, 0, data);
2323   machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2424   /* spin for a while to let the Z80 read the command (fixes hanging sound in Regulus) */
25   device_spin_until_time(&space.device(), attotime::from_usec(50));
25   space.device().execute().spin_until_time(attotime::from_usec(50));
2626}
2727
2828static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, suprloco_state )
trunk/src/mame/drivers/m92.c
r17814r17815
237237   if (scanline == state->m_raster_irq_position)
238238   {
239239      machine.primary_screen->update_partial(scanline);
240      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, M92_IRQ_2);
240      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_2);
241241   }
242242
243243   /* VBLANK interrupt */
244244   else if (scanline == machine.primary_screen->visible_area().max_y + 1)
245245   {
246246      machine.primary_screen->update_partial(scanline);
247      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, M92_IRQ_0);
247      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_0);
248248   }
249249}
250250
r17814r17815
297297WRITE16_MEMBER(m92_state::m92_soundlatch_w)
298298{
299299   if (m_soundcpu)
300      device_set_input_line(m_soundcpu, NEC_INPUT_LINE_INTP1, ASSERT_LINE);
300      m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP1, ASSERT_LINE);
301301
302302   soundlatch_byte_w(space, 0, data & 0xff);
303303}
r17814r17815
311311READ16_MEMBER(m92_state::m92_soundlatch_r)
312312{
313313   if (m_soundcpu)
314      device_set_input_line(m_soundcpu, NEC_INPUT_LINE_INTP1, CLEAR_LINE);
314      m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP1, CLEAR_LINE);
315315
316316   return soundlatch_byte_r(space, offset) | 0xff00;
317317}
r17814r17815
319319WRITE16_MEMBER(m92_state::m92_sound_irq_ack_w)
320320{
321321   if (m_soundcpu)
322      device_set_input_line(m_soundcpu, NEC_INPUT_LINE_INTP1, CLEAR_LINE);
322      m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP1, CLEAR_LINE);
323323}
324324
325325WRITE16_MEMBER(m92_state::m92_sound_status_w)
326326{
327327   COMBINE_DATA(&m_sound_status);
328   device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, M92_IRQ_3);
328   m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_3);
329329
330330}
331331
332332WRITE16_MEMBER(m92_state::m92_sound_reset_w)
333333{
334334   if (m_soundcpu)
335      device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
335      m_soundcpu->set_input_line(INPUT_LINE_RESET, (data) ? CLEAR_LINE : ASSERT_LINE);
336336}
337337
338338/*****************************************************************************/
r17814r17815
916916{
917917   m92_state *state = device->machine().driver_data<m92_state>();
918918
919   device_set_input_line(state->m_soundcpu, NEC_INPUT_LINE_INTP0, pinstate ? ASSERT_LINE : CLEAR_LINE);
919   state->m_soundcpu->set_input_line(NEC_INPUT_LINE_INTP0, pinstate ? ASSERT_LINE : CLEAR_LINE);
920920}
921921
922922static const ym2151_interface ym2151_config =
r17814r17815
930930{
931931   m92_state *state = machine.driver_data<m92_state>();
932932
933   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, M92_IRQ_1);
933   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_1);
934934}
935935
936936static MACHINE_CONFIG_START( m92, m92_state )
trunk/src/mame/drivers/fcombat.c
r17814r17815
3838{
3939
4040   /* coin insertion causes an NMI */
41   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
41   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
4242}
4343
4444
r17814r17815
261261{
262262   fcombat_state *state = machine.driver_data<fcombat_state>();
263263
264   state->m_maincpu = machine.device("maincpu");
264   state->m_maincpu = machine.device<cpu_device>("maincpu");
265265
266266   state->save_item(NAME(state->m_cocktail_flip));
267267   state->save_item(NAME(state->m_char_palette));
trunk/src/mame/drivers/destroyr.c
r17814r17815
4141   int            m_noise;
4242
4343   /* devices */
44   device_t *m_maincpu;
44   cpu_device *m_maincpu;
4545   DECLARE_WRITE8_MEMBER(destroyr_misc_w);
4646   DECLARE_WRITE8_MEMBER(destroyr_cursor_load_w);
4747   DECLARE_WRITE8_MEMBER(destroyr_interrupt_ack_w);
r17814r17815
134134
135135   if (state->m_potmask[dial])
136136   {
137      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
137      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
138138   }
139139}
140140
r17814r17815
194194
195195WRITE8_MEMBER(destroyr_state::destroyr_interrupt_ack_w)
196196{
197   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
197   m_maincpu->set_input_line(0, CLEAR_LINE);
198198}
199199
200200
r17814r17815
435435{
436436   destroyr_state *state = machine.driver_data<destroyr_state>();
437437
438   state->m_maincpu = machine.device("maincpu");
438   state->m_maincpu = machine.device<cpu_device>("maincpu");
439439
440440   state->save_item(NAME(state->m_cursor));
441441   state->save_item(NAME(state->m_wavemod));
trunk/src/mame/drivers/fuukifg2.c
r17814r17815
7979   if (ACCESSING_BITS_0_7)
8080   {
8181      soundlatch_byte_w(space,0,data & 0xff);
82      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
83//      device_spin_until_time(&space.device(), attotime::from_usec(50));   // Allow the other CPU to reply
82      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
83//      space.device().execute().spin_until_time(attotime::from_usec(50));   // Allow the other CPU to reply
8484      machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(50)); // Fixes glitching in rasters
8585   }
8686}
r17814r17815
394394static void soundirq( device_t *device, int state )
395395{
396396   fuuki16_state *fuuki16 = device->machine().driver_data<fuuki16_state>();
397   device_set_input_line(fuuki16->m_audiocpu, 0, state);
397   fuuki16->m_audiocpu->set_input_line(0, state);
398398}
399399
400400static const ym3812_interface fuuki16_ym3812_intf =
r17814r17815
417417static TIMER_CALLBACK( level_1_interrupt_callback )
418418{
419419   fuuki16_state *state = machine.driver_data<fuuki16_state>();
420   device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
420   state->m_maincpu->set_input_line(1, HOLD_LINE);
421421   machine.scheduler().timer_set(machine.primary_screen->time_until_pos(248), FUNC(level_1_interrupt_callback));
422422}
423423
r17814r17815
425425static TIMER_CALLBACK( vblank_interrupt_callback )
426426{
427427   fuuki16_state *state = machine.driver_data<fuuki16_state>();
428   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);   // VBlank IRQ
428   state->m_maincpu->set_input_line(3, HOLD_LINE);   // VBlank IRQ
429429   machine.scheduler().timer_set(machine.primary_screen->time_until_vblank_start(), FUNC(vblank_interrupt_callback));
430430}
431431
r17814r17815
433433static TIMER_CALLBACK( raster_interrupt_callback )
434434{
435435   fuuki16_state *state = machine.driver_data<fuuki16_state>();
436   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);   // Raster Line IRQ
436   state->m_maincpu->set_input_line(5, HOLD_LINE);   // Raster Line IRQ
437437   machine.primary_screen->update_partial(machine.primary_screen->vpos());
438438   state->m_raster_interrupt_timer->adjust(machine.primary_screen->frame_period());
439439}
r17814r17815
446446
447447   state->membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x8000);
448448
449   state->m_maincpu = machine.device("maincpu");
450   state->m_audiocpu = machine.device("audiocpu");
449   state->m_maincpu = machine.device<cpu_device>("maincpu");
450   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
451451
452452   state->m_raster_interrupt_timer = machine.scheduler().timer_alloc(FUNC(raster_interrupt_callback));
453453}
trunk/src/mame/drivers/vulgus.c
r17814r17815
4949
5050static INTERRUPT_GEN( vulgus_vblank_irq )
5151{
52   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xd7);   /* RST 10h - vblank */
52   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xd7);   /* RST 10h - vblank */
5353}
5454
5555static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, vulgus_state )
trunk/src/mame/drivers/vcombat.c
r17814r17815
256256READ16_MEMBER(vcombat_state::main_irqiack_r)
257257{
258258   //fprintf(stderr, "M0: irq iack\n");
259   device_set_input_line(machine().device("maincpu"), M68K_IRQ_1, CLEAR_LINE);
260   //device_set_input_line(machine().device("maincpu"), INPUT_LINE_RESET, CLEAR_LINE);
259   machine().device("maincpu")->execute().set_input_line(M68K_IRQ_1, CLEAR_LINE);
260   //machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
261261   return 0;
262262}
263263
264264READ16_MEMBER(vcombat_state::sound_resetmain_r)
265265{
266266   //fprintf(stderr, "M1: reset line to M0\n");
267   //device_set_input_line(machine().device("maincpu"), INPUT_LINE_RESET, PULSE_LINE);
267   //machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
268268   return 0;
269269}
270270
r17814r17815
559559WRITE_LINE_MEMBER(vcombat_state::sound_update)
560560{
561561   /* Seems reasonable */
562   device_set_input_line(machine().device("soundcpu"), M68K_IRQ_1, state ? ASSERT_LINE : CLEAR_LINE);
562   machine().device("soundcpu")->execute().set_input_line(M68K_IRQ_1, state ? ASSERT_LINE : CLEAR_LINE);
563563}
564564
565565static const mc6845_interface mc6845_intf =
trunk/src/mame/drivers/vastar.c
r17814r17815
294294   vastar_state *state = device->machine().driver_data<vastar_state>();
295295
296296   if(state->m_nmi_mask)
297      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
297      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
298298}
299299
300300static MACHINE_CONFIG_START( vastar, vastar_state )
trunk/src/mame/drivers/gunpey.c
r17814r17815
356356
357357static INTERRUPT_GEN( gunpey_interrupt )
358358{
359   device_set_input_line_and_vector(device,0,HOLD_LINE,0x200/4);
359   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x200/4);
360360}
361361
362362/***************************************************************************************/
trunk/src/mame/drivers/superwng.c
r17814r17815
212212WRITE8_MEMBER(superwng_state::superwng_sound_interrupt_w)
213213{
214214   m_sound_byte = data;
215   device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
215   m_audiocpu->set_input_line(0, ASSERT_LINE);
216216}
217217
218218READ8_MEMBER(superwng_state::superwng_sound_byte_r)
219219{
220   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
220   m_audiocpu->set_input_line(0, CLEAR_LINE);
221221   return m_sound_byte;
222222}
223223
224224WRITE8_MEMBER(superwng_state::superwng_sound_nmi_clear_w)
225225{
226   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
226   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
227227}
228228
229229static INTERRUPT_GEN( superwng_sound_nmi_assert )
230230{
231231   superwng_state *state = device->machine().driver_data<superwng_state>();
232232   if (BIT(state->m_nmi_enable, 0))
233      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
233      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
234234}
235235
236236WRITE8_MEMBER(superwng_state::superwng_bg_vram_w)
trunk/src/mame/drivers/cyclemb.c
r17814r17815
379379WRITE8_MEMBER(cyclemb_state::sound_cmd_w)
380380{
381381   soundlatch_byte_w(space, 0, data & 0xff);
382   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
382   m_audiocpu->set_input_line(0, HOLD_LINE);
383383}
384384#endif
385385
r17814r17815
393393WRITE8_MEMBER(cyclemb_state::sound_cmd_w)//actually ciom
394394{
395395   soundlatch_byte_w(space, 0, data & 0xff);
396   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
396   m_audiocpu->set_input_line(0, HOLD_LINE);
397397}
398398#endif
399399
r17814r17815
419419{
420420   if(offset == 1) //status port
421421   {
422      //printf("STATUS PC=%04x\n",m_maincpu->safe_pc());
422      //printf("STATUS PC=%04x\n",m_maincpu->pc());
423423
424424      return 1;
425425   }
r17814r17815
427427   {
428428      UINT8 i,pt;
429429
430      //printf("%04x\n",m_maincpu->safe_pc());
430      //printf("%04x\n",m_maincpu->pc());
431431
432432      /* TODO: internal state of this */
433433      if(m_maincpu->pc() == m_dsw_pc_hack)
434434         m_mcu[0].rxd = (ioport("DSW1")->read() & 0x1f) << 2;
435435      else if(m_mcu[0].rst)
436436      {
437         //printf("READ PC=%04x\n",m_maincpu->safe_pc());
437         //printf("READ PC=%04x\n",m_maincpu->pc());
438438         {
439439
440440            switch(m_mcu[0].state)
r17814r17815
500500{
501501   if(offset == 1) //command port
502502   {
503      //printf("%02x CMD PC=%04x\n",data,m_maincpu->safe_pc());
503      //printf("%02x CMD PC=%04x\n",data,m_maincpu->pc());
504504      switch(data)
505505      {
506506         case 0:
r17814r17815
535535   }
536536   else
537537   {
538      //printf("%02x DATA PC=%04x\n",data,m_maincpu->safe_pc());
538      //printf("%02x DATA PC=%04x\n",data,m_maincpu->pc());
539539
540540      m_mcu[0].txd = data;
541541
trunk/src/mame/drivers/bingor.c
r17814r17815
588588
589589static INTERRUPT_GEN( vblank_irq )
590590{
591//  device_set_input_line_and_vector(device,0,HOLD_LINE,0x08/4); // reads i/o 0x200 and puts the result in ram, pic irq?
592   device_set_input_line_and_vector(device,0,HOLD_LINE,0x4c/4); // ?
591//  device->execute().set_input_line_and_vector(0,HOLD_LINE,0x08/4); // reads i/o 0x200 and puts the result in ram, pic irq?
592   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x4c/4); // ?
593593}
594594
595595static INTERRUPT_GEN( unk_irq )
596596{
597   device_set_input_line_and_vector(device,0,HOLD_LINE,0x48/4); // ?
597   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x48/4); // ?
598598}
599599
600600
trunk/src/mame/drivers/beaminv.c
r17814r17815
7373   UINT8      m_controller_select;
7474
7575   /* devices */
76   device_t *m_maincpu;
76   cpu_device *m_maincpu;
7777   DECLARE_READ8_MEMBER(v128_r);
7878   DECLARE_WRITE8_MEMBER(controller_select_w);
7979   DECLARE_READ8_MEMBER(controller_r);
r17814r17815
101101   int next_interrupt_number;
102102   int next_vpos;
103103
104   device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
104   state->m_maincpu->set_input_line(0, HOLD_LINE);
105105
106106   /* set up for next interrupt */
107107   next_interrupt_number = (interrupt_number + 1) % INTERRUPTS_PER_FRAME;
r17814r17815
138138   beaminv_state *state = machine.driver_data<beaminv_state>();
139139   create_interrupt_timer(machine);
140140
141   state->m_maincpu = machine.device("maincpu");
141   state->m_maincpu = machine.device<cpu_device>("maincpu");
142142
143143   /* setup for save states */
144144   state->save_item(NAME(state->m_controller_select));
trunk/src/mame/drivers/matmania.c
r17814r17815
4747WRITE8_MEMBER(matmania_state::matmania_sh_command_w)
4848{
4949   soundlatch_byte_w(space, offset, data);
50   device_set_input_line(m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
50   m_audiocpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
5151}
5252
5353WRITE8_MEMBER(matmania_state::maniach_sh_command_w)
5454{
5555   soundlatch_byte_w(space, offset, data);
56   device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
56   m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
5757}
5858
5959
r17814r17815
300300{
301301   matmania_state *state = machine.driver_data<matmania_state>();
302302
303   state->m_maincpu = machine.device("maincpu");
304   state->m_audiocpu = machine.device("audiocpu");
303   state->m_maincpu = machine.device<cpu_device>("maincpu");
304   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
305305   state->m_mcu = machine.device("mcu");
306306}
307307
trunk/src/mame/drivers/dcheese.c
r17814r17815
5353
5454   int i;
5555   for (i = 1; i < 5; i++)
56      device_set_input_line(cpu, i, state->m_irq_state[i] ? ASSERT_LINE : CLEAR_LINE);
56      cpu->execute().set_input_line(i, state->m_irq_state[i] ? ASSERT_LINE : CLEAR_LINE);
5757}
5858
5959
r17814r17815
9797{
9898   dcheese_state *state = machine.driver_data<dcheese_state>();
9999
100   state->m_maincpu = machine.device("maincpu");
101   state->m_audiocpu = machine.device("audiocpu");
100   state->m_maincpu = machine.device<cpu_device>("maincpu");
101   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
102102   state->m_bsmt = machine.device("bsmt");
103103
104   device_set_irq_callback(state->m_maincpu, irq_callback);
104   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
105105
106106   state->save_item(NAME(state->m_irq_state));
107107   state->save_item(NAME(state->m_soundlatch_full));
r17814r17815
142142   {
143143      /* write the latch and set the IRQ */
144144      m_soundlatch_full = 1;
145      device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
145      m_audiocpu->set_input_line(0, ASSERT_LINE);
146146      soundlatch_byte_w(space, 0, data & 0xff);
147147   }
148148}
r17814r17815
160160
161161   /* read the latch and clear the IRQ */
162162   m_soundlatch_full = 0;
163   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
163   m_audiocpu->set_input_line(0, CLEAR_LINE);
164164   return soundlatch_byte_r(space, 0);
165165}
166166
trunk/src/mame/drivers/chqflag.c
r17814r17815
132132WRITE8_MEMBER(chqflag_state::chqflag_sh_irqtrigger_w)
133133{
134134   soundlatch2_byte_w(space, 0, data);
135   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
135   m_audiocpu->set_input_line(0, HOLD_LINE);
136136}
137137
138138
r17814r17815
260260static void chqflag_ym2151_irq_w( device_t *device, int data )
261261{
262262   chqflag_state *state = device->machine().driver_data<chqflag_state>();
263   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, data ? ASSERT_LINE : CLEAR_LINE);
263   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, data ? ASSERT_LINE : CLEAR_LINE);
264264}
265265
266266
r17814r17815
327327
328328   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
329329
330   state->m_maincpu = machine.device("maincpu");
331   state->m_audiocpu = machine.device("audiocpu");
330   state->m_maincpu = machine.device<cpu_device>("maincpu");
331   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
332332   state->m_k051316_1 = machine.device("k051316_1");
333333   state->m_k051316_2 = machine.device("k051316_2");
334334   state->m_k051960 = machine.device("k051960");
trunk/src/mame/drivers/lsasquad.c
r17814r17815
541541static void irqhandler(device_t *device, int irq)
542542{
543543   lsasquad_state *state = device->machine().driver_data<lsasquad_state>();
544   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
544   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
545545}
546546
547547WRITE8_MEMBER(lsasquad_state::unk)
r17814r17815
571571
572572   state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000);
573573
574   state->m_maincpu = machine.device("maincpu");
575   state->m_audiocpu = machine.device("audiocpu");
574   state->m_maincpu = machine.device<cpu_device>("maincpu");
575   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
576576   state->m_mcu = machine.device("mcu");
577577
578578   state->save_item(NAME(state->m_port_a_in));
trunk/src/mame/drivers/sengokmj.c
r17814r17815
287287
288288static INTERRUPT_GEN( sengokmj_interrupt )
289289{
290   device_set_input_line_and_vector(device,0,HOLD_LINE,0xc8/4);
290   device->execute().set_input_line_and_vector(0,HOLD_LINE,0xc8/4);
291291}
292292
293293static MACHINE_CONFIG_START( sengokmj, sengokmj_state )
trunk/src/mame/drivers/silvmil.c
r17814r17815
302302
303303static void silvmil_irqhandler( device_t *device, int irq )
304304{
305   device_set_input_line(device->machine().device("audiocpu"), 0, irq ? ASSERT_LINE : CLEAR_LINE);
305   device->machine().device("audiocpu")->execute().set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
306306}
307307
308308
trunk/src/mame/drivers/brkthru.c
r17814r17815
7272   m_nmi_mask = ~data & 1;
7373
7474   if(data & 2)
75      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
75      m_maincpu->set_input_line(0, CLEAR_LINE);
7676
7777   /* bit 1 = ? maybe IRQ acknowledge */
7878}
r17814r17815
8484   logerror("0803 %02X\n",data);
8585
8686   if(data & 2)
87      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
87      m_maincpu->set_input_line(0, CLEAR_LINE);
8888
8989
9090   /* bit 1 = ? maybe IRQ acknowledge */
r17814r17815
9393WRITE8_MEMBER(brkthru_state::brkthru_soundlatch_w)
9494{
9595   soundlatch_byte_w(space, offset, data);
96   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
96   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9797}
9898
9999INPUT_CHANGED_MEMBER(brkthru_state::coin_inserted)
100100{
101101   /* coin insertion causes an IRQ */
102102   if (oldval)
103      device_set_input_line(m_maincpu, 0, ASSERT_LINE);
103      m_maincpu->set_input_line(0, ASSERT_LINE);
104104}
105105
106106
r17814r17815
366366{
367367   brkthru_state *state = machine.driver_data<brkthru_state>();
368368
369   state->m_maincpu = machine.device("maincpu");
370   state->m_audiocpu = machine.device("audiocpu");
369   state->m_maincpu = machine.device<cpu_device>("maincpu");
370   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
371371
372372   state->save_item(NAME(state->m_bgscroll));
373373   state->save_item(NAME(state->m_bgbasecolor));
r17814r17815
388388   brkthru_state *state = device->machine().driver_data<brkthru_state>();
389389
390390   if(state->m_nmi_mask)
391      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
391      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
392392}
393393
394394static MACHINE_CONFIG_START( brkthru, brkthru_state )
trunk/src/mame/drivers/thepit.c
r17814r17815
640640   thepit_state *state = device->machine().driver_data<thepit_state>();
641641
642642   if(state->m_nmi_mask)
643      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
643      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
644644}
645645
646646static MACHINE_CONFIG_START( thepit, thepit_state )
trunk/src/mame/drivers/cloud9.c
r17814r17815
128128   /* assert the IRQ if not already asserted */
129129   if (!state->m_irq_state)
130130   {
131      device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
131      state->m_maincpu->set_input_line(0, ASSERT_LINE);
132132      state->m_irq_state = 1;
133133   }
134134
r17814r17815
210210{
211211   if (m_irq_state)
212212   {
213      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
213      m_maincpu->set_input_line(0, CLEAR_LINE);
214214      m_irq_state = 0;
215215   }
216216}
trunk/src/mame/drivers/backfire.c
r17814r17815
4242   bitmap_ind16  *m_right;
4343
4444   /* devices */
45   device_t *m_maincpu;
45   cpu_device *m_maincpu;
4646   device_t *m_deco_tilegen1;
4747   device_t *m_deco_tilegen2;
4848
r17814r17815
433433
434434static INTERRUPT_GEN( deco32_vbl_interrupt )
435435{
436   device_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE);
436   device->execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
437437}
438438
439439
r17814r17815
475475{
476476   backfire_state *state = machine.driver_data<backfire_state>();
477477
478   state->m_maincpu = machine.device("maincpu");
478   state->m_maincpu = machine.device<cpu_device>("maincpu");
479479   state->m_deco_tilegen1 = machine.device("tilegen1");
480480   state->m_deco_tilegen2 = machine.device("tilegen2");
481481   state->m_lscreen = machine.device("lscreen");
r17814r17815
701701
702702   //mame_printf_debug( "%08x\n",space.device().safe_pc());
703703
704   if (space.device() .safe_pc()== 0xce44)  device_spin_until_time(&space.device(), attotime::from_usec(400)); // backfire
705   if (space.device().safe_pc() == 0xcee4)  device_spin_until_time(&space.device(), attotime::from_usec(400)); // backfirea
704   if (space.device() .safe_pc()== 0xce44)  space.device().execute().spin_until_time(attotime::from_usec(400)); // backfire
705   if (space.device().safe_pc() == 0xcee4)  space.device().execute().spin_until_time(attotime::from_usec(400)); // backfirea
706706
707707   return m_mainram[0x18/4];
708708}
trunk/src/mame/drivers/cubeqst.c
r17814r17815
195195   cubeqst_state *state = device->machine().driver_data<cubeqst_state>();
196196   int int_level = state->m_video_field == 0 ? 5 : 6;
197197
198   device_set_input_line(device, int_level, HOLD_LINE);
198   device->execute().set_input_line(int_level, HOLD_LINE);
199199
200200   /* Update the laserdisc */
201201   state->m_video_field ^= 1;
trunk/src/mame/drivers/exerion.c
r17814r17815
140140INPUT_CHANGED_MEMBER(exerion_state::coin_inserted)
141141{
142142   /* coin insertion causes an NMI */
143   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
143   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
144144}
145145
146146
r17814r17815
381381{
382382   exerion_state *state = machine.driver_data<exerion_state>();
383383
384   state->m_maincpu = machine.device("maincpu");
384   state->m_maincpu = machine.device<cpu_device>("maincpu");
385385
386386   state->save_item(NAME(state->m_porta));
387387   state->save_item(NAME(state->m_portb));
trunk/src/mame/drivers/savquest.c
r17814r17815
446446
447447WRITE_LINE_MEMBER(savquest_state::savquest_pic8259_1_set_int_line)
448448{
449   device_set_input_line(m_maincpu, 0, state ? HOLD_LINE : CLEAR_LINE);
449   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
450450}
451451
452452READ8_MEMBER( savquest_state::get_slave_ack )
r17814r17815
476476{
477477   savquest_state *state = machine.driver_data<savquest_state>();
478478
479   device_set_input_line(state->m_maincpu, INPUT_LINE_A20, a20);
479   state->m_maincpu->set_input_line(INPUT_LINE_A20, a20);
480480}
481481
482482static void keyboard_interrupt(running_machine &machine, int state)
r17814r17815
523523
524524   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, savquest_set_keyb_int);
525525
526   device_set_irq_callback(state->m_maincpu, irq_callback);
526   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
527527   intel82439tx_init(machine);
528528
529529   kbdc8042_init(machine, &at8042);
trunk/src/mame/drivers/meijinsn.c
r17814r17815
318318   int scanline = param;
319319
320320   if(scanline == 240)
321      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
321      state->m_maincpu->set_input_line(1, HOLD_LINE);
322322
323323   if(scanline == 0)
324      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
324      state->m_maincpu->set_input_line(2, HOLD_LINE);
325325}
326326
327327static const ay8910_interface ay8910_config =
trunk/src/mame/drivers/coolridr.c
r17814r17815
11381138// IRQs 4, 6 (& 8?) are valid on SH-2
11391139static INTERRUPT_GEN( system_h1 )
11401140{
1141   device_set_input_line(device, 4, HOLD_LINE);
1141   device->execute().set_input_line(4, HOLD_LINE);
11421142}
11431143
11441144//IRQs 10,12 and 14 are valid on SH-1 instead
r17814r17815
11491149
11501150   switch(scanline)
11511151   {
1152       case 512:device_set_input_line(state->m_subcpu, 0xa, HOLD_LINE); break;
1153        case 256:device_set_input_line(state->m_subcpu, 0xc, HOLD_LINE); break;
1154        case 0:device_set_input_line(state->m_subcpu, 0xe, HOLD_LINE); break;
1152       case 512:state->m_subcpu->set_input_line(0xa, HOLD_LINE); break;
1153        case 256:state->m_subcpu->set_input_line(0xc, HOLD_LINE); break;
1154        case 0:state->m_subcpu->set_input_line(0xe, HOLD_LINE); break;
11551155   }
11561156}
11571157
trunk/src/mame/drivers/cobra.c
r17814r17815
12341234         machine().device("subcpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
12351235
12361236         // give sub cpu a bit more time to stabilize on the current fifo status
1237         device_spin_until_time(machine().device("maincpu"), attotime::from_usec(1));
1237         machine().device("maincpu")->execute().spin_until_time(attotime::from_usec(1));
12381238
12391239         if (m_m2s_int_enable & 0x80)
12401240         {
r17814r17815
16011601   if ((address & 0xf0000000) == 0xc0000000)
16021602   {
16031603      // force sync when writing to GFX board main ram
1604      device_spin_until_time(cobra->m_maincpu, attotime::from_usec(80));
1604      cobra->m_maincpu->spin_until_time(attotime::from_usec(80));
16051605   }
16061606}
16071607
trunk/src/mame/drivers/tutankhm.c
r17814r17815
6868   /* flip flops cause the interrupt to be signalled every other frame */
6969   state->m_irq_toggle ^= 1;
7070   if (state->m_irq_toggle && state->m_irq_enable)
71      device_set_input_line(device, 0, ASSERT_LINE);
71      device->execute().set_input_line(0, ASSERT_LINE);
7272}
7373
7474
r17814r17815
7777
7878   m_irq_enable = data & 1;
7979   if (!m_irq_enable)
80      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
80      m_maincpu->set_input_line(0, CLEAR_LINE);
8181}
8282
8383
trunk/src/mame/drivers/targeth.c
r17814r17815
3737   if(scanline == 240)
3838   {
3939      /* IRQ 2: drives the game */
40      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
40      state->m_maincpu->set_input_line(2, HOLD_LINE);
4141   }
4242
4343   if(scanline == 0)
4444   {
4545      /* IRQ 4: Read 1P Gun */
46      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
46      state->m_maincpu->set_input_line(4, HOLD_LINE);
4747      /* IRQ 6: Read 2P Gun */
48      device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
48      state->m_maincpu->set_input_line(6, HOLD_LINE);
4949   }
5050}
5151
trunk/src/mame/drivers/rainbow.c
r17814r17815
335335   if (ACCESSING_BITS_0_7)
336336   {
337337      m_jumping_latch = data & 0xff; /*M68000 writes .b to $400007*/
338      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
338      m_audiocpu->set_input_line(0, HOLD_LINE);
339339   }
340340}
341341
r17814r17815
626626static void irqhandler( device_t *device, int irq )
627627{
628628   rbisland_state *state = device->machine().driver_data<rbisland_state>();
629   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
629   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
630630}
631631
632632static const ym2151_interface ym2151_config =
r17814r17815
666666{
667667   rbisland_state *state = machine.driver_data<rbisland_state>();
668668
669   state->m_maincpu = machine.device("maincpu");
670   state->m_audiocpu = machine.device("audiocpu");
669   state->m_maincpu = machine.device<cpu_device>("maincpu");
670   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
671671   state->m_pc080sn = machine.device("pc080sn");
672672   state->m_pc090oj = machine.device("pc090oj");
673673}
trunk/src/mame/drivers/galspnbl.c
r17814r17815
4949   if (ACCESSING_BITS_0_7)
5050   {
5151      soundlatch_byte_w(space,offset,data & 0xff);
52      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
52      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5353   }
5454}
5555
r17814r17815
209209static void irqhandler( device_t *device, int linestate )
210210{
211211   galspnbl_state *state = device->machine().driver_data<galspnbl_state>();
212   device_set_input_line(state->m_audiocpu, 0, linestate);
212   state->m_audiocpu->set_input_line(0, linestate);
213213}
214214
215215static const ym3812_interface ym3812_config =
r17814r17815
222222{
223223   galspnbl_state *state = machine.driver_data<galspnbl_state>();
224224
225   state->m_audiocpu = machine.device("audiocpu");
225   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
226226}
227227
228228static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
trunk/src/mame/drivers/photoply.c
r17814r17815
309309static MACHINE_START( photoply )
310310{
311311   photoply_state *state = machine.driver_data<photoply_state>();
312   device_set_irq_callback(machine.device("maincpu"), irq_callback);
312   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
313313   state->m_pit8253 = machine.device( "pit8254" );
314314   state->m_pic8259_1 = machine.device( "pic8259_1" );
315315   state->m_pic8259_2 = machine.device( "pic8259_2" );
trunk/src/mame/drivers/rungun.c
r17814r17815
128128            ioport("EEPROMOUT")->write(data, 0xff);
129129
130130         if (!(data & 0x40))
131            device_set_input_line(m_maincpu, M68K_IRQ_5, CLEAR_LINE);
131            m_maincpu->set_input_line(M68K_IRQ_5, CLEAR_LINE);
132132      break;
133133
134134      case 0x0c/2:
r17814r17815
159159{
160160
161161   if (ACCESSING_BITS_8_15)
162      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
162      m_audiocpu->set_input_line(0, HOLD_LINE);
163163}
164164
165165READ16_MEMBER(rungun_state::sound_status_msb_r)
r17814r17815
176176   rungun_state *state = device->machine().driver_data<rungun_state>();
177177
178178   if (state->m_sysreg[0x0c / 2] & 0x09)
179      device_set_input_line(device, M68K_IRQ_5, ASSERT_LINE);
179      device->execute().set_input_line(M68K_IRQ_5, ASSERT_LINE);
180180}
181181
182182static ADDRESS_MAP_START( rungun_map, AS_PROGRAM, 16, rungun_state )
r17814r17815
223223   membank("bank2")->set_entry(data & 0x07);
224224
225225   if (data & 0x10)
226      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
226      m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
227227}
228228
229229static INTERRUPT_GEN(audio_interrupt)
r17814r17815
233233   if (state->m_z80_control & 0x80)
234234      return;
235235
236   device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
236   device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
237237}
238238
239239/* sound (this should be split into audio/xexex.c or pregx.c or so someday) */
r17814r17815
370370
371371   state->membank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
372372
373   state->m_maincpu = machine.device("maincpu");
374   state->m_audiocpu = machine.device("soundcpu");
373   state->m_maincpu = machine.device<cpu_device>("maincpu");
374   state->m_audiocpu = machine.device<cpu_device>("soundcpu");
375375   state->m_k053936 = machine.device("k053936");
376376   state->m_k055673 = machine.device("k055673");
377377   state->m_k053252 = machine.device("k053252");
trunk/src/mame/drivers/crystal.c
r17814r17815
160160   UINT32    m_DMActrl[2];
161161   UINT8     m_OldPort4;
162162
163   device_t *m_maincpu;
163   cpu_device *m_maincpu;
164164   ds1302_device *m_ds1302;
165165   device_t *m_vr0video;
166166   DECLARE_READ32_MEMBER(FlipCount_r);
r17814r17815
193193static void IntReq( running_machine &machine, int num )
194194{
195195   crystal_state *state = machine.driver_data<crystal_state>();
196   address_space *space = state->m_maincpu->memory().space(AS_PROGRAM);
196   address_space *space = state->m_maincpu->space(AS_PROGRAM);
197197   UINT32 IntEn = space->read_dword(0x01800c08);
198198   UINT32 IntPend = space->read_dword(0x01800c0c);
199199   if (IntEn & (1 << num))
200200   {
201201      IntPend |= (1 << num);
202202      space->write_dword(0x01800c0c, IntPend);
203      device_set_input_line(state->m_maincpu, SE3208_INT, ASSERT_LINE);
203      state->m_maincpu->set_input_line(SE3208_INT, ASSERT_LINE);
204204   }
205205#ifdef IDLE_LOOP_SPEEDUP
206206   state->m_FlipCntRead = 0;
207   device_resume(state->m_maincpu, SUSPEND_REASON_SPIN);
207   state->m_maincpu->resume(SUSPEND_REASON_SPIN);
208208#endif
209209}
210210
r17814r17815
215215   UINT32 IntPend = space.read_dword(0x01800c0c);
216216   m_FlipCntRead++;
217217   if (m_FlipCntRead >= 16 && !IntPend && m_FlipCount != 0)
218      device_suspend(m_maincpu, SUSPEND_REASON_SPIN, 1);
218      m_maincpu->suspend(SUSPEND_REASON_SPIN, 1);
219219#endif
220220   return ((UINT32) m_FlipCount) << 16;
221221}
r17814r17815
262262      IntPend &= ~(1 << (data & 0x1f));
263263      space.write_dword(0x01800c0c, IntPend);
264264      if (!IntPend)
265         device_set_input_line(m_maincpu, SE3208_INT, CLEAR_LINE);
265         m_maincpu->set_input_line(SE3208_INT, CLEAR_LINE);
266266   }
267267   if (mem_mask & 0xff00)
268268      m_IntHigh = (data >> 8) & 7;
r17814r17815
579579   crystal_state *state = machine.driver_data<crystal_state>();
580580   int i;
581581
582   state->m_maincpu = machine.device("maincpu");
582   state->m_maincpu = machine.device<cpu_device>("maincpu");
583583   state->m_ds1302 = machine.device<ds1302_device>("rtc");
584584   state->m_vr0video = machine.device("vr0");
585585
586   device_set_irq_callback(machine.device("maincpu"), icallback);
586   machine.device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
587587   for (i = 0; i < 4; i++)
588588      state->m_Timer[i] = machine.scheduler().timer_alloc(FUNC(Timercb), (void*)(FPTR)i);
589589
r17814r17815
613613   memset(state->m_vidregs, 0, 0x10000);
614614   state->m_FlipCount = 0;
615615   state->m_IntHigh = 0;
616   device_set_irq_callback(machine.device("maincpu"), icallback);
616   machine.device("maincpu")->execute().set_irq_acknowledge_callback(icallback);
617617   state->m_Bank = 0;
618618   state->membank("bank1")->set_base(state->memregion("user1")->base() + 0);
619619   state->m_FlashCmd = 0xff;
trunk/src/mame/drivers/eprom.c
r17814r17815
144144
145145   m_sync_data[offset] = newword;
146146   if ((oldword & 0xff00) != (newword & 0xff00))
147      device_yield(&space.device());
147      space.device().execute().yield();
148148}
149149
150150
trunk/src/mame/drivers/madmotor.c
r17814r17815
3030   if (ACCESSING_BITS_0_7)
3131   {
3232      soundlatch_byte_w(space, 0, data & 0xff);
33      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
33      m_audiocpu->set_input_line(0, HOLD_LINE);
3434   }
3535}
3636
r17814r17815
222222static void sound_irq(device_t *device, int state)
223223{
224224   madmotor_state *driver_state = device->machine().driver_data<madmotor_state>();
225   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
225   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
226226}
227227
228228static const ym2151_interface ym2151_config =
r17814r17815
234234{
235235   madmotor_state *state = machine.driver_data<madmotor_state>();
236236
237   state->m_maincpu = machine.device("maincpu");
238   state->m_audiocpu = machine.device("audiocpu");
237   state->m_maincpu = machine.device<cpu_device>("maincpu");
238   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
239239
240240   state->save_item(NAME(state->m_flipscreen));
241241}
trunk/src/mame/drivers/rocnrope.c
r17814r17815
191191   rocnrope_state *state = device->machine().driver_data<rocnrope_state>();
192192
193193   if(state->m_irq_mask)
194      device_set_input_line(device, 0, HOLD_LINE);
194      device->execute().set_input_line(0, HOLD_LINE);
195195}
196196
197197
trunk/src/mame/drivers/aerofgt.c
r17814r17815
7272   {
7373      m_pending_command = 1;
7474      soundlatch_byte_w(space, offset, data & 0xff);
75      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
75      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7676   }
7777}
7878
r17814r17815
8282   {
8383      m_pending_command = 1;
8484      soundlatch_byte_w(space, offset, (data >> 8) & 0xff);
85      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
85      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8686   }
8787}
8888
r17814r17815
9191   if(ACCESSING_BITS_8_15)
9292   {
9393      soundlatch_byte_w(space, 0, (data >> 8) & 0xff);
94      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
94      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9595   }
9696}
9797
r17814r17815
12801280static void irqhandler( device_t *device, int irq )
12811281{
12821282   aerofgt_state *state = device->machine().driver_data<aerofgt_state>();
1283   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
1283   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
12841284}
12851285
12861286static const ym2610_interface ym2610_config =
r17814r17815
12981298{
12991299   aerofgt_state *state = machine.driver_data<aerofgt_state>();
13001300
1301   state->m_audiocpu = machine.device("audiocpu");
1301   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
13021302   state->save_item(NAME(state->m_pending_command));
13031303}
13041304
trunk/src/mame/drivers/quakeat.c
r17814r17815
158158static MACHINE_START(quakeat)
159159{
160160   quakeat_state *state = machine.driver_data<quakeat_state>();
161   device_set_irq_callback(machine.device("maincpu"), irq_callback);
161   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
162162
163163   state->m_pic8259_1 = machine.device( "pic8259_1" );
164164   state->m_pic8259_2 = machine.device( "pic8259_2" );
trunk/src/mame/drivers/ultrsprt.c
r17814r17815
205205
206206static INTERRUPT_GEN( ultrsprt_vblank )
207207{
208   device_set_input_line(device, INPUT_LINE_IRQ1, ASSERT_LINE);
208   device->execute().set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
209209}
210210
211211static void sound_irq_callback(running_machine &machine, int irq)
trunk/src/mame/drivers/senjyo.c
r17814r17815
9393{
9494   senjyo_state *state = device->machine().driver_data<senjyo_state>();
9595
96   if (state->m_int_delay_kludge == 0) device_set_input_line(device, 0, HOLD_LINE);
96   if (state->m_int_delay_kludge == 0) device->execute().set_input_line(0, HOLD_LINE);
9797   else state->m_int_delay_kludge--;
9898}
9999
trunk/src/mame/drivers/twinkle.c
r17814r17815
702702
703703   if ((!(data & 0x0080)) && (m_spu_ctrl & 0x0080))
704704   {
705      device_set_input_line(&space.device(), M68K_IRQ_1, CLEAR_LINE);
705      space.device().execute().set_input_line(M68K_IRQ_1, CLEAR_LINE);
706706   }
707707   else if ((!(data & 0x0100)) && (m_spu_ctrl & 0x0100))
708708   {
709      device_set_input_line(&space.device(), M68K_IRQ_2, CLEAR_LINE);
709      space.device().execute().set_input_line(M68K_IRQ_2, CLEAR_LINE);
710710   }
711711   else if ((!(data & 0x0200)) && (m_spu_ctrl & 0x0200))
712712   {
713      device_set_input_line(&space.device(), M68K_IRQ_4, CLEAR_LINE);
713      space.device().execute().set_input_line(M68K_IRQ_4, CLEAR_LINE);
714714   }
715715   else if ((!(data & 0x0400)) && (m_spu_ctrl & 0x0400))
716716   {
717      device_set_input_line(&space.device(), M68K_IRQ_6, CLEAR_LINE);
717      space.device().execute().set_input_line(M68K_IRQ_6, CLEAR_LINE);
718718   }
719719
720720   m_spu_ctrl = data;
trunk/src/mame/drivers/bzone.c
r17814r17815
249249static INTERRUPT_GEN( bzone_interrupt )
250250{
251251   if (device->machine().root_device().ioport("IN0")->read() & 0x10)
252      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
252      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
253253}
254254
255255
trunk/src/mame/drivers/simpl156.c
r17814r17815
385385
386386static INTERRUPT_GEN( simpl156_vbl_interrupt )
387387{
388   device_set_input_line(device, ARM_IRQ_LINE, HOLD_LINE);
388   device->execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
389389}
390390
391391
r17814r17815
10551055READ32_MEMBER(simpl156_state::joemacr_speedup_r)
10561056{
10571057   if (space.device().safe_pc() == 0x284)
1058      device_spin_until_time(&space.device(), attotime::from_usec(400));
1058      space.device().execute().spin_until_time(attotime::from_usec(400));
10591059   return m_systemram[0x18/4];
10601060}
10611061
r17814r17815
10691069READ32_MEMBER(simpl156_state::chainrec_speedup_r)
10701070{
10711071   if (space.device().safe_pc() == 0x2d4)
1072      device_spin_until_time(&space.device(), attotime::from_usec(400));
1072      space.device().execute().spin_until_time(attotime::from_usec(400));
10731073   return m_systemram[0x18/4];
10741074}
10751075
r17814r17815
10821082READ32_MEMBER(simpl156_state::prtytime_speedup_r)
10831083{
10841084   if (space.device().safe_pc() == 0x4f0)
1085      device_spin_until_time(&space.device(), attotime::from_usec(400));
1085      space.device().execute().spin_until_time(attotime::from_usec(400));
10861086   return m_systemram[0xae0/4];
10871087}
10881088
r17814r17815
10961096READ32_MEMBER(simpl156_state::charlien_speedup_r)
10971097{
10981098   if (space.device().safe_pc() == 0xc8c8)
1099      device_spin_until_time(&space.device(), attotime::from_usec(400));
1099      space.device().execute().spin_until_time(attotime::from_usec(400));
11001100   return m_systemram[0x10/4];
11011101}
11021102
r17814r17815
11091109READ32_MEMBER(simpl156_state::osman_speedup_r)
11101110{
11111111   if (space.device().safe_pc() == 0x5974)
1112      device_spin_until_time(&space.device(), attotime::from_usec(400));
1112      space.device().execute().spin_until_time(attotime::from_usec(400));
11131113   return m_systemram[0x10/4];
11141114}
11151115
trunk/src/mame/drivers/lgp.c
r17814r17815
339339{
340340   lgp_state *state = device->machine().driver_data<lgp_state>();
341341   // NMI
342   //device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
342   //device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
343343
344344   // IRQ
345   device_set_input_line(device, 0, ASSERT_LINE);
345   device->execute().set_input_line(0, ASSERT_LINE);
346346   state->m_irq_timer->adjust(attotime::from_usec(50));
347347}
348348
trunk/src/mame/drivers/battlnts.c
r17814r17815
2929{
3030   battlnts_state *state = device->machine().driver_data<battlnts_state>();
3131   if (k007342_is_int_enabled(state->m_k007342))
32      device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
32      device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
3333}
3434
3535WRITE8_MEMBER(battlnts_state::battlnts_sh_irqtrigger_w)
3636{
37   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
37   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
3838}
3939
4040WRITE8_MEMBER(battlnts_state::battlnts_bankswitch_w)
r17814r17815
228228
229229   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000);
230230
231   state->m_audiocpu = machine.device("audiocpu");
231   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
232232   state->m_k007342 = machine.device("k007342");
233233   state->m_k007420 = machine.device("k007420");
234234
trunk/src/mame/drivers/galpani2.c
r17814r17815
548548   int scanline = param;
549549
550550   if(scanline == 240)
551       device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
551       state->m_maincpu->set_input_line(5, HOLD_LINE);
552552
553553   /* MCU related? */
554554   if(scanline == 128)
555555   {
556      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
557      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
556      state->m_maincpu->set_input_line(3, HOLD_LINE);
557      state->m_maincpu->set_input_line(4, HOLD_LINE);
558558   }
559559
560560   if(scanline == 0)
561       device_set_input_line(state->m_maincpu, 6, HOLD_LINE); // hblank?
561       state->m_maincpu->set_input_line(6, HOLD_LINE); // hblank?
562562}
563563
564564/* CPU#2 interrupts, lev 3,4 & 5 are tested on power up. The rest is rte, but lev 7 */
r17814r17815
568568   int scanline = param;
569569
570570   if(scanline == 240)
571      device_set_input_line(state->m_subcpu, 5, HOLD_LINE);
571      state->m_subcpu->set_input_line(5, HOLD_LINE);
572572
573573   if(scanline == 128)
574      device_set_input_line(state->m_subcpu, 4, HOLD_LINE);
574      state->m_subcpu->set_input_line(4, HOLD_LINE);
575575
576576   if(scanline == 0)
577      device_set_input_line(state->m_subcpu, 3, HOLD_LINE);
577      state->m_subcpu->set_input_line(3, HOLD_LINE);
578578}
579579
580580static MACHINE_CONFIG_START( galpani2, galpani2_state )
trunk/src/mame/drivers/sprint2.c
r17814r17815
111111   device->machine().watchdog_enable(!service_mode(device->machine()));
112112
113113   if (!service_mode(device->machine()))
114      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
114      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
115115}
116116
117117
trunk/src/mame/drivers/midqslvr.c
r17814r17815
582582
583583WRITE_LINE_MEMBER(midqslvr_state::midqslvr_pic8259_1_set_int_line)
584584{
585   device_set_input_line(m_maincpu, 0, state ? HOLD_LINE : CLEAR_LINE);
585   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
586586}
587587
588588READ8_MEMBER( midqslvr_state::get_slave_ack )
r17814r17815
612612{
613613   midqslvr_state *state = machine.driver_data<midqslvr_state>();
614614
615   device_set_input_line(state->m_maincpu, INPUT_LINE_A20, a20);
615   state->m_maincpu->set_input_line(INPUT_LINE_A20, a20);
616616}
617617
618618static void keyboard_interrupt(running_machine &machine, int state)
r17814r17815
666666
667667   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, midqslvr_set_keyb_int);
668668
669   device_set_irq_callback(state->m_maincpu, irq_callback);
669   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
670670   intel82439tx_init(machine);
671671
672672   kbdc8042_init(machine, &at8042);
trunk/src/mame/drivers/seibuspi.c
r17814r17815
17911791
17921792static INTERRUPT_GEN( spi_interrupt )
17931793{
1794   device_set_input_line(device, 0, ASSERT_LINE );
1794   device->execute().set_input_line(0, ASSERT_LINE );
17951795}
17961796
17971797static IRQ_CALLBACK(spi_irq_callback)
r17814r17815
18171817   UINT8 flash_data = rombase[0x1ffffc];
18181818
18191819   machine.device("soundcpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE );
1820   device_set_irq_callback(machine.device("maincpu"), spi_irq_callback);
1820   machine.device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
18211821
18221822   machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sound_fifo_r),state));
18231823   machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x00000688, 0x0000068b, write32_delegate(FUNC(seibuspi_state::z80_prg_fifo_w),state));
r17814r17815
19061906   machine.device("maincpu")->memory().space(AS_PROGRAM)->install_write_handler(0x0000068c, 0x0000068f, write32_delegate(FUNC(seibuspi_state::eeprom_w),state));
19071907   machine.device("maincpu")->memory().space(AS_PROGRAM)->install_read_handler(0x00000680, 0x00000683, read32_delegate(FUNC(seibuspi_state::sb_coin_r),state));
19081908
1909   device_set_irq_callback(machine.device("maincpu"), spi_irq_callback);
1909   machine.device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
19101910
19111911   state->m_sb_coin_latch = 0;
19121912}
r17814r17815
19451945
19461946READ32_MEMBER(seibuspi_state::senkyu_speedup_r)
19471947{
1948   if (space.device().safe_pc()==0x00305bb2) device_spin_until_interrupt(&space.device()); // idle
1948   if (space.device().safe_pc()==0x00305bb2) space.device().execute().spin_until_interrupt(); // idle
19491949   return m_spimainram[(0x0018cb4-0x800)/4];
19501950}
19511951
19521952READ32_MEMBER(seibuspi_state::senkyua_speedup_r)
19531953{
1954   if (space.device().safe_pc()== 0x30582e) device_spin_until_interrupt(&space.device()); // idle
1954   if (space.device().safe_pc()== 0x30582e) space.device().execute().spin_until_interrupt(); // idle
19551955   return m_spimainram[(0x0018c9c-0x800)/4];
19561956}
19571957
r17814r17815
19601960//  printf("space.device().safe_pc() %06x\n", space.device().safe_pc());
19611961
19621962   /* batlbalu */
1963   if (space.device().safe_pc()==0x00305996) device_spin_until_interrupt(&space.device()); // idle
1963   if (space.device().safe_pc()==0x00305996) space.device().execute().spin_until_interrupt(); // idle
19641964
19651965   /* batlball */
1966   if (space.device().safe_pc()==0x003058aa) device_spin_until_interrupt(&space.device()); // idle
1966   if (space.device().safe_pc()==0x003058aa) space.device().execute().spin_until_interrupt(); // idle
19671967
19681968   return m_spimainram[(0x0018db4-0x800)/4];
19691969}
r17814r17815
19711971READ32_MEMBER(seibuspi_state::rdft_speedup_r)
19721972{
19731973   /* rdft */
1974   if (space.device().safe_pc()==0x0203f0a) device_spin_until_interrupt(&space.device()); // idle
1974   if (space.device().safe_pc()==0x0203f0a) space.device().execute().spin_until_interrupt(); // idle
19751975
19761976   /* rdftau */
1977   if (space.device().safe_pc()==0x0203f16) device_spin_until_interrupt(&space.device()); // idle
1977   if (space.device().safe_pc()==0x0203f16) space.device().execute().spin_until_interrupt(); // idle
19781978
19791979   /* rdftj */
1980   if (space.device().safe_pc()==0x0203f22) device_spin_until_interrupt(&space.device()); // idle
1980   if (space.device().safe_pc()==0x0203f22) space.device().execute().spin_until_interrupt(); // idle
19811981
19821982   /* rdftdi */
1983   if (space.device().safe_pc()==0x0203f46) device_spin_until_interrupt(&space.device()); // idle
1983   if (space.device().safe_pc()==0x0203f46) space.device().execute().spin_until_interrupt(); // idle
19841984
19851985   /* rdftu */
1986   if (space.device().safe_pc()==0x0203f3a) device_spin_until_interrupt(&space.device()); // idle
1986   if (space.device().safe_pc()==0x0203f3a) space.device().execute().spin_until_interrupt(); // idle
19871987
19881988//  mame_printf_debug("%08x\n",space.device().safe_pc());
19891989
r17814r17815
19931993READ32_MEMBER(seibuspi_state::viprp1_speedup_r)
19941994{
19951995   /* viprp1 */
1996   if (space.device().safe_pc()==0x0202769) device_spin_until_interrupt(&space.device()); // idle
1996   if (space.device().safe_pc()==0x0202769) space.device().execute().spin_until_interrupt(); // idle
19971997
19981998   /* viprp1s */
1999   if (space.device().safe_pc()==0x02027e9) device_spin_until_interrupt(&space.device()); // idle
1999   if (space.device().safe_pc()==0x02027e9) space.device().execute().spin_until_interrupt(); // idle
20002000
20012001   /* viprp1ot */
2002   if (space.device().safe_pc()==0x02026bd) device_spin_until_interrupt(&space.device()); // idle
2002   if (space.device().safe_pc()==0x02026bd) space.device().execute().spin_until_interrupt(); // idle
20032003
20042004//  mame_printf_debug("%08x\n",space.device().safe_pc());
20052005
r17814r17815
20092009READ32_MEMBER(seibuspi_state::viprp1o_speedup_r)
20102010{
20112011   /* viperp1o */
2012   if (space.device().safe_pc()==0x0201f99) device_spin_until_interrupt(&space.device()); // idle
2012   if (space.device().safe_pc()==0x0201f99) space.device().execute().spin_until_interrupt(); // idle
20132013//  mame_printf_debug("%08x\n",space.device().safe_pc());
20142014   return m_spimainram[(0x001d49c-0x800)/4];
20152015}
r17814r17815
20192019READ32_MEMBER(seibuspi_state::ejanhs_speedup_r)
20202020{
20212021// mame_printf_debug("%08x\n",space.device().safe_pc());
2022 if (space.device().safe_pc()==0x03032c7) device_spin_until_interrupt(&space.device()); // idle
2022 if (space.device().safe_pc()==0x03032c7) space.device().execute().spin_until_interrupt(); // idle
20232023 return m_spimainram[(0x002d224-0x800)/4];
20242024}
20252025#endif
r17814r17815
20282028{
20292029
20302030   /* rdft22kc */
2031   if (space.device().safe_pc()==0x0203926) device_spin_until_interrupt(&space.device()); // idle
2031   if (space.device().safe_pc()==0x0203926) space.device().execute().spin_until_interrupt(); // idle
20322032
20332033   /* rdft2, rdft2j */
2034   if (space.device().safe_pc()==0x0204372) device_spin_until_interrupt(&space.device()); // idle
2034   if (space.device().safe_pc()==0x0204372) space.device().execute().spin_until_interrupt(); // idle
20352035
20362036   /* rdft2us */
2037   if (space.device().safe_pc()==0x020420e) device_spin_until_interrupt(&space.device()); // idle
2037   if (space.device().safe_pc()==0x020420e) space.device().execute().spin_until_interrupt(); // idle
20382038
20392039   /* rdft2a */
2040   if (space.device().safe_pc()==0x0204366) device_spin_until_interrupt(&space.device()); // idle
2040   if (space.device().safe_pc()==0x0204366) space.device().execute().spin_until_interrupt(); // idle
20412041
20422042//  mame_printf_debug("%08x\n",space.device().safe_pc());
20432043
r17814r17815
20472047READ32_MEMBER(seibuspi_state::rfjet_speedup_r)
20482048{
20492049   /* rfjet, rfjetu, rfjeta */
2050   if (space.device().safe_pc()==0x0206082) device_spin_until_interrupt(&space.device()); // idle
2050   if (space.device().safe_pc()==0x0206082) space.device().execute().spin_until_interrupt(); // idle
20512051
20522052   /* rfjetus */
20532053   if (space.device().safe_pc()==0x0205b39)
20542054   {
20552055      UINT32 r;
2056      device_spin_until_interrupt(&space.device()); // idle
2056      space.device().execute().spin_until_interrupt(); // idle
20572057      // Hack to enter test mode
20582058      r = m_spimainram[(0x002894c-0x800)/4] & (~0x400);
20592059      return r | (((ioport("SYSTEM")->read() ^ 0xff)<<8) & 0x400);
20602060   }
20612061
20622062   /* rfjetj */
2063   if (space.device().safe_pc()==0x0205f2e) device_spin_until_interrupt(&space.device()); // idle
2063   if (space.device().safe_pc()==0x0205f2e) space.device().execute().spin_until_interrupt(); // idle
20642064
20652065//  mame_printf_debug("%08x\n",space.device().safe_pc());
20662066
r17814r17815
21892189
21902190static MACHINE_RESET( seibu386 )
21912191{
2192   device_set_irq_callback(machine.device("maincpu"), spi_irq_callback);
2192   machine.device("maincpu")->execute().set_irq_acknowledge_callback(spi_irq_callback);
21932193}
21942194
21952195static MACHINE_CONFIG_START( seibu386, seibuspi_state )
trunk/src/mame/drivers/coolpool.c
r17814r17815
136136{
137137   coolpool_state *state = machine.driver_data<coolpool_state>();
138138
139   state->m_maincpu = machine.device("maincpu");
139   state->m_maincpu = machine.device<cpu_device>("maincpu");
140140   state->m_dsp = machine.device("dsp");
141141
142142   state->m_nvram_write_enable = 0;
r17814r17815
211211{
212212   coolpool_state *state = timer.machine().driver_data<coolpool_state>();
213213
214   device_set_input_line(state->m_dsp, 0, ASSERT_LINE);
215   device_set_input_line(state->m_dsp, 0, CLEAR_LINE);
214   state->m_dsp->execute().set_input_line(0, ASSERT_LINE);
215   state->m_dsp->execute().set_input_line(0, CLEAR_LINE);
216216}
217217
218218
r17814r17815
240240   if (m_same_cmd_count >= 5)
241241   {
242242      m_same_cmd_count = 5;
243      device_spin(&space.device());
243      space.device().execute().spin();
244244   }
245245   m_old_cmd = m_cmd_pending;
246246
trunk/src/mame/drivers/sauro.c
r17814r17815
369369
370370static INTERRUPT_GEN( sauro_interrupt )
371371{
372   device_set_input_line(device, 0, HOLD_LINE);
372   device->execute().set_input_line(0, HOLD_LINE);
373373}
374374
375375static MACHINE_CONFIG_START( tecfri, sauro_state )
trunk/src/mame/drivers/timetrv.c
r17814r17815
135135
136136static INTERRUPT_GEN( vblank_irq )
137137{
138   device_set_input_line_and_vector(device,0,HOLD_LINE,0x20/4); //vblank bit flag clear
138   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x20/4); //vblank bit flag clear
139139}
140140
141141static INTERRUPT_GEN( ld_irq )
142142{
143   device_set_input_line_and_vector(device,0,HOLD_LINE,0x48/4); //ld irq
143   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x48/4); //ld irq
144144}
145145
146146static MACHINE_CONFIG_START( timetrv, timetrv_state )
trunk/src/mame/drivers/drmicro.c
r17814r17815
2828   drmicro_state *state = device->machine().driver_data<drmicro_state>();
2929
3030   if (state->m_nmi_enable)
31       device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
31       device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3232}
3333
3434WRITE8_MEMBER(drmicro_state::nmi_enable_w)
trunk/src/mame/drivers/system1.c
r17814r17815
417417
418418   /* bit 6 is connected to the 8751 IRQ */
419419   if (i8751 != NULL)
420      device_set_input_line(i8751, MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
420      i8751->execute().set_input_line(MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE);
421421
422422   /* handle any custom banking or other stuff */
423423   if (m_videomode_custom != NULL)
r17814r17815
597597static INTERRUPT_GEN( mcu_irq_assert )
598598{
599599   /* toggle the INT0 line on the MCU */
600   device_set_input_line(device, MCS51_INT0_LINE, ASSERT_LINE);
601   device_set_input_line(device, MCS51_INT0_LINE, CLEAR_LINE);
600   device->execute().set_input_line(MCS51_INT0_LINE, ASSERT_LINE);
601   device->execute().set_input_line(MCS51_INT0_LINE, CLEAR_LINE);
602602
603603   /* boost interleave to ensure that the MCU can break the Z80 out of a HALT */
604604   device->machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(10));
r17814r17815
614614    */
615615
616616   device_t *mcu = timer.machine().device("mcu");
617   device_set_input_line(mcu, MCS51_T0_LINE, ASSERT_LINE);
618   device_set_input_line(mcu, MCS51_T0_LINE, CLEAR_LINE);
617   mcu->execute().set_input_line(MCS51_T0_LINE, ASSERT_LINE);
618   mcu->execute().set_input_line(MCS51_T0_LINE, CLEAR_LINE);
619619}
620620
621621
r17814r17815
638638
639639   /* bit 2 is toggled once near the end of an IRQ */
640640   if (((m_mcu_control ^ data) & 0x04) && !(data & 0x04))
641      device_set_input_line(&space.device(), MCS51_INT0_LINE, CLEAR_LINE);
641      space.device().execute().set_input_line(MCS51_INT0_LINE, CLEAR_LINE);
642642
643643   /* bit 3 is toggled once at the start of an IRQ, and again at the end */
644644   if (((m_mcu_control ^ data) & 0x08) && !(data & 0x08))
trunk/src/mame/drivers/niyanpai.c
r17814r17815
929929
930930static INTERRUPT_GEN( niyanpai_interrupt )
931931{
932   device_set_input_line_and_vector(device, 1, HOLD_LINE,0x100/4);
932   device->execute().set_input_line_and_vector(1, HOLD_LINE,0x100/4);
933933}
934934
935935static const z80_daisy_config daisy_chain_sound[] =
trunk/src/mame/drivers/suprnova.c
r17814r17815
441441   int scanline = param;
442442
443443   if(scanline == 240)
444      device_set_input_line(state->m_maincpu,5,HOLD_LINE); //vblank
444      state->m_maincpu->set_input_line(5,HOLD_LINE); //vblank
445445   else if(scanline == 0)
446      device_set_input_line(state->m_maincpu,1,HOLD_LINE); // spc
446      state->m_maincpu->set_input_line(1,HOLD_LINE); // spc
447447}
448448
449449/**********************************************************************************
r17814r17815
646646         {
647647            if (!strcmp(machine().system().name,"vblokbrk") ||
648648               !strcmp(machine().system().name,"sarukani"))
649               device_spin_until_interrupt(&space.device());
649               space.device().execute().spin_until_interrupt();
650650         }
651651
652652      }
r17814r17815
870870   if (space.device().safe_pc()==0x402206e)
871871   {
872872      if(m_main_ram[0x00078/4] == m_main_ram[0x0c780/4])
873         device_spin_until_interrupt(&space.device());
873         space.device().execute().spin_until_interrupt();
874874   }
875875   return m_main_ram[0x0c780/4];
876876}
877877
878878READ32_MEMBER(skns_state::cyvern_speedup_r)
879879{
880   if (space.device().safe_pc()==0x402ebd2) device_spin_until_interrupt(&space.device());
880   if (space.device().safe_pc()==0x402ebd2) space.device().execute().spin_until_interrupt();
881881   return m_main_ram[0x4d3c8/4];
882882}
883883
884884READ32_MEMBER(skns_state::puzzloopj_speedup_r)
885885{
886   if (space.device().safe_pc()==0x401dca0) device_spin_until_interrupt(&space.device());
886   if (space.device().safe_pc()==0x401dca0) space.device().execute().spin_until_interrupt();
887887   return m_main_ram[0x86714/4];
888888}
889889
890890READ32_MEMBER(skns_state::puzzloopa_speedup_r)
891891{
892   if (space.device().safe_pc()==0x401d9d4) device_spin_until_interrupt(&space.device());
892   if (space.device().safe_pc()==0x401d9d4) space.device().execute().spin_until_interrupt();
893893   return m_main_ram[0x85bcc/4];
894894}
895895
896896READ32_MEMBER(skns_state::puzzloopu_speedup_r)
897897{
898   if (space.device().safe_pc()==0x401dab0) device_spin_until_interrupt(&space.device());
898   if (space.device().safe_pc()==0x401dab0) space.device().execute().spin_until_interrupt();
899899   return m_main_ram[0x85cec/4];
900900}
901901
r17814r17815
908908    0401DA18: BF      $0401DA26
909909    0401DA26: BRA     $0401DA12
910910*/
911   if (space.device().safe_pc()==0x401da14) device_spin_until_interrupt(&space.device());
911   if (space.device().safe_pc()==0x401da14) space.device().execute().spin_until_interrupt();
912912   return m_main_ram[0x81d38/4];
913913}
914914
915915READ32_MEMBER(skns_state::senknow_speedup_r)
916916{
917   if (space.device().safe_pc()==0x4017dce) device_spin_until_interrupt(&space.device());
917   if (space.device().safe_pc()==0x4017dce) space.device().execute().spin_until_interrupt();
918918   return m_main_ram[0x0000dc/4];
919919}
920920
921921READ32_MEMBER(skns_state::teljan_speedup_r)
922922{
923   if (space.device().safe_pc()==0x401ba32) device_spin_until_interrupt(&space.device());
923   if (space.device().safe_pc()==0x401ba32) space.device().execute().spin_until_interrupt();
924924   return m_main_ram[0x002fb4/4];
925925}
926926
927927READ32_MEMBER(skns_state::jjparads_speedup_r)
928928{
929   if (space.device().safe_pc()==0x4015e84) device_spin_until_interrupt(&space.device());
929   if (space.device().safe_pc()==0x4015e84) space.device().execute().spin_until_interrupt();
930930   return m_main_ram[0x000994/4];
931931}
932932
933933READ32_MEMBER(skns_state::jjparad2_speedup_r)
934934{
935   if (space.device().safe_pc()==0x401620a) device_spin_until_interrupt(&space.device());
935   if (space.device().safe_pc()==0x401620a) space.device().execute().spin_until_interrupt();
936936   return m_main_ram[0x000984/4];
937937}
938938
939939READ32_MEMBER(skns_state::ryouran_speedup_r)
940940{
941   if (space.device().safe_pc()==0x40182ce) device_spin_until_interrupt(&space.device());
941   if (space.device().safe_pc()==0x40182ce) space.device().execute().spin_until_interrupt();
942942   return m_main_ram[0x000a14/4];
943943}
944944
945945READ32_MEMBER(skns_state::galpans2_speedup_r)
946946{
947   if (space.device().safe_pc()==0x4049ae2) device_spin_until_interrupt(&space.device());
947   if (space.device().safe_pc()==0x4049ae2) space.device().execute().spin_until_interrupt();
948948   return m_main_ram[0x0fb6bc/4];
949949}
950950
951951READ32_MEMBER(skns_state::panicstr_speedup_r)
952952{
953   if (space.device().safe_pc()==0x404e68a) device_spin_until_interrupt(&space.device());
953   if (space.device().safe_pc()==0x404e68a) space.device().execute().spin_until_interrupt();
954954   return m_main_ram[0x0f19e4/4];
955955}
956956
957957READ32_MEMBER(skns_state::sengekis_speedup_r)// 60006ee  600308e
958958{
959   if (space.device().safe_pc()==0x60006ec) device_spin_until_interrupt(&space.device());
959   if (space.device().safe_pc()==0x60006ec) space.device().execute().spin_until_interrupt();
960960   return m_main_ram[0xb74bc/4];
961961}
962962
963963READ32_MEMBER(skns_state::sengekij_speedup_r)// 60006ee  600308e
964964{
965   if (space.device().safe_pc()==0x60006ec) device_spin_until_interrupt(&space.device());
965   if (space.device().safe_pc()==0x60006ec) space.device().execute().spin_until_interrupt();
966966   return m_main_ram[0xb7380/4];
967967}
968968
trunk/src/mame/drivers/witch.c
r17814r17815
396396      break;
397397
398398      case 0x08: //A008
399         device_set_input_line(&space.device(),0,CLEAR_LINE);
399         space.device().execute().set_input_line(0,CLEAR_LINE);
400400      break;
401401   }
402402}
r17814r17815
781781
782782static INTERRUPT_GEN( witch_main_interrupt )
783783{
784   device_set_input_line(device,0,ASSERT_LINE);
784   device->execute().set_input_line(0,ASSERT_LINE);
785785}
786786
787787static INTERRUPT_GEN( witch_sub_interrupt )
788788{
789   device_set_input_line(device,0,ASSERT_LINE);
789   device->execute().set_input_line(0,ASSERT_LINE);
790790}
791791
792792static MACHINE_CONFIG_START( witch, witch_state )
trunk/src/mame/drivers/namcofl.c
r17814r17815
261261   // C75 BIOS has a very short window on the CPU sync signal, so immediately let the i960 at it
262262   if ((offset == 0x6000/2) && (data & 0x80))
263263   {
264      device_yield(&space.device());
264      space.device().execute().yield();
265265   }
266266}
267267
r17814r17815
548548{
549549   namcofl_state *state = timer.machine().driver_data<namcofl_state>();
550550
551   device_set_input_line(state->m_mcu, M37710_LINE_IRQ0, HOLD_LINE);
551   state->m_mcu->set_input_line(M37710_LINE_IRQ0, HOLD_LINE);
552552}
553553
554554static TIMER_DEVICE_CALLBACK( mcu_irq2_cb )
555555{
556556   namcofl_state *state = timer.machine().driver_data<namcofl_state>();
557557
558   device_set_input_line(state->m_mcu, M37710_LINE_IRQ2, HOLD_LINE);
558   state->m_mcu->set_input_line(M37710_LINE_IRQ2, HOLD_LINE);
559559}
560560
561561static TIMER_DEVICE_CALLBACK( mcu_adc_cb )
562562{
563563   namcofl_state *state = timer.machine().driver_data<namcofl_state>();
564564
565   device_set_input_line(state->m_mcu, M37710_LINE_ADC, HOLD_LINE);
565   state->m_mcu->set_input_line(M37710_LINE_ADC, HOLD_LINE);
566566}
567567
568568
trunk/src/mame/drivers/sigmab98.c
r17814r17815
16901690
16911691static INTERRUPT_GEN( gegege_vblank_interrupt )
16921692{
1693   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x5a);
1693   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x5a);
16941694}
16951695
16961696static MACHINE_CONFIG_START( gegege, sigmab98_state )
r17814r17815
17881788   int scanline = param;
17891789
17901790   if(scanline == 240)
1791      device_set_input_line_and_vector(state->m_maincpu,0,HOLD_LINE, state->m_vblank_vector);
1791      state->m_maincpu->set_input_line_and_vector(0,HOLD_LINE, state->m_vblank_vector);
17921792
17931793   if(scanline == 128)
1794      device_set_input_line_and_vector(state->m_maincpu,0,HOLD_LINE, state->m_timer0_vector);
1794      state->m_maincpu->set_input_line_and_vector(0,HOLD_LINE, state->m_timer0_vector);
17951795
17961796   if(scanline == 32)
1797      device_set_input_line_and_vector(state->m_maincpu,0,HOLD_LINE, state->m_timer1_vector);
1797      state->m_maincpu->set_input_line_and_vector(0,HOLD_LINE, state->m_timer1_vector);
17981798}
17991799
18001800static MACHINE_CONFIG_DERIVED( animalc, sammymdl )
trunk/src/mame/drivers/dynax.c
r17814r17815
102102{
103103   dynax_state *state = machine.driver_data<dynax_state>();
104104   int irq = (state->m_sound_irq ? 0x08 : 0) | ((state->m_vblank_irq) ? 0x10 : 0) | ((state->m_blitter_irq) ? 0x20 : 0) ;
105   device_set_input_line_and_vector(state->m_maincpu, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
105   state->m_maincpu->set_input_line_and_vector(0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
106106}
107107
108108WRITE8_MEMBER(dynax_state::dynax_vblank_ack_w)
r17814r17815
141141{
142142   dynax_state *state = machine.driver_data<dynax_state>();
143143   int irq = ((state->m_blitter_irq) ? 0x08 : 0) | ((state->m_blitter2_irq) ? 0x10 : 0) | ((state->m_vblank_irq) ? 0x20 : 0) ;
144   device_set_input_line_and_vector(state->m_maincpu, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
144   state->m_maincpu->set_input_line_and_vector(0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
145145}
146146
147147WRITE8_MEMBER(dynax_state::jantouki_vblank_ack_w)
r17814r17815
178178{
179179   dynax_state *state = machine.driver_data<dynax_state>();
180180   int irq = ((state->m_sound_irq) ? 0x08 : 0) | ((state->m_soundlatch_irq) ? 0x10 : 0) | ((state->m_sound_vblank_irq) ? 0x20 : 0) ;
181   device_set_input_line_and_vector(state->m_soundcpu, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
181   state->m_soundcpu->set_input_line_and_vector(0, irq ? ASSERT_LINE : CLEAR_LINE, 0xc7 | irq); /* rst $xx */
182182}
183183
184184static INTERRUPT_GEN( jantouki_sound_vblank_interrupt )
r17814r17815
407407   if (state->m_toggle)
408408   {
409409      if (state->m_resetkludge)   // don't know what's wrong, but NMIs when the 5205 is reset make the game crash
410      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
410      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
411411   }
412412}
413413
r17814r17815
421421   if (state->m_toggle_cpu1)
422422   {
423423      if (state->m_resetkludge)   // don't know what's wrong, but NMIs when the 5205 is reset make the game crash
424      device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);   // cpu1
424      state->m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);   // cpu1
425425   }
426426}
427427
r17814r17815
41574157{
41584158   dynax_state *state = machine.driver_data<dynax_state>();
41594159
4160   state->m_maincpu = machine.device("maincpu");
4161   state->m_soundcpu = machine.device("soundcpu");
4160   state->m_maincpu = machine.device<cpu_device>("maincpu");
4161   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
41624162   state->m_rtc = machine.device("rtc");
41634163   state->m_ymsnd = machine.device("ymsnd");
41644164
r17814r17815
47164716{
47174717   dynax_state *state = machine.driver_data<dynax_state>();
47184718   state->m_blitter_irq = 1;
4719   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xfa);
4719   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfa);
47204720}
47214721
47224722static INTERRUPT_GEN( mjelctrn_vblank_interrupt )
r17814r17815
47264726   // This is a kludge to avoid losing blitter interrupts
47274727   // there should be a vblank ack mechanism
47284728   if (!state->m_blitter_irq)
4729      device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xf8);
4729      device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xf8);
47304730}
47314731
47324732static MACHINE_CONFIG_DERIVED( mjelctrn, hnoridur )
r17814r17815
47514751{
47524752   dynax_state *state = machine.driver_data<dynax_state>();
47534753   state->m_blitter_irq = 1;
4754   device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x42);
4754   state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x42);
47554755}
47564756
47574757static TIMER_DEVICE_CALLBACK( neruton_irq_scanline )
r17814r17815
47644764   if (state->m_blitter_irq)   return;
47654765
47664766   if(scanline == 256)
4767      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x40);
4767      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x40);
47684768   else if((scanline % 32) == 0)
4769      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x46);
4769      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x46);
47704770}
47714771
47724772static MACHINE_CONFIG_DERIVED( neruton, mjelctrn )
r17814r17815
47944794   if (state->m_blitter_irq)   return;
47954795
47964796   if(scanline == 256)
4797      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x40);
4797      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x40);
47984798   else if((scanline % 32) == 0)
4799      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x44); // temp kludge
4799      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x44); // temp kludge
48004800}
48014801
48024802static MACHINE_CONFIG_DERIVED( majxtal7, neruton )
r17814r17815
48764876   int scanline = param;
48774877
48784878   if(scanline == 256)
4879      device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE);
4879      state->m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
48804880
48814881   if(scanline == 0)
4882      device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ1, HOLD_LINE);
4882      state->m_maincpu->set_input_line(INPUT_LINE_IRQ1, HOLD_LINE);
48834883}
48844884
48854885static const ay8910_interface tenkai_ay8910_interface =
r17814r17815
49004900
49014901WRITE_LINE_MEMBER(dynax_state::tenkai_rtc_irq)
49024902{
4903   device_set_input_line(m_maincpu, INPUT_LINE_IRQ2, HOLD_LINE);
4903   m_maincpu->set_input_line(INPUT_LINE_IRQ2, HOLD_LINE);
49044904}
49054905
49064906static MSM6242_INTERFACE( tenkai_rtc_intf )
trunk/src/mame/drivers/volfied.c
r17814r17815
210210static void irqhandler( device_t *device, int irq )
211211{
212212   volfied_state *state = device->machine().driver_data<volfied_state>();
213   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
213   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
214214}
215215
216216static const ym2203_interface ym2203_config =
r17814r17815
237237
238238   volfied_cchip_init(machine);
239239
240   state->m_maincpu = machine.device("maincpu");
241   state->m_audiocpu = machine.device("audiocpu");
240   state->m_maincpu = machine.device<cpu_device>("maincpu");
241   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
242242   state->m_pc090oj = machine.device("pc090oj");
243243}
244244
trunk/src/mame/drivers/dribling.c
r17814r17815
4242{
4343   dribling_state *state = device->machine().driver_data<dribling_state>();
4444   if (state->m_di)
45      device_set_input_line(device, 0, ASSERT_LINE);
45      device->execute().set_input_line(0, ASSERT_LINE);
4646}
4747
4848
r17814r17815
8888   /* bit 7 = di */
8989   m_di = (data >> 7) & 1;
9090   if (!m_di)
91      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
91      m_maincpu->set_input_line(0, CLEAR_LINE);
9292
9393   /* bit 6 = parata */
9494
trunk/src/mame/drivers/itech32.c
r17814r17815
363363
364364
365365
366#define START_TMS_SPINNING(n)         do { device_spin_until_trigger(&space.device(), 7351 + n); m_tms_spinning[n] = 1; } while (0)
366#define START_TMS_SPINNING(n)         do { space.device().execute().spin_until_trigger(7351 + n); m_tms_spinning[n] = 1; } while (0)
367367#define STOP_TMS_SPINNING(machine, n)   do { (machine).scheduler().trigger(7351 + n); (machine).driver_data<itech32_state>()->m_tms_spinning[n] = 0; } while (0)
368368
369369
trunk/src/mame/drivers/mexico86.c
r17814r17815
426426
427427   state->membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000);
428428
429   state->m_maincpu = machine.device("maincpu");
430   state->m_audiocpu = machine.device("audiocpu");
431   state->m_subcpu = machine.device("sub");
429   state->m_maincpu = machine.device<cpu_device>("maincpu");
430   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
431   state->m_subcpu = machine.device<cpu_device>("sub");
432432   state->m_mcu = machine.device("mcu");
433433
434434   state->save_item(NAME(state->m_port_a_in));
trunk/src/mame/drivers/calchase.c
r17814r17815
807807static MACHINE_START(calchase)
808808{
809809   calchase_state *state = machine.driver_data<calchase_state>();
810   device_set_irq_callback(machine.device("maincpu"), irq_callback);
810   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
811811
812812   state->m_pit8254 = machine.device( "pit8254" );
813813   state->m_pic8259_1 = machine.device( "pic8259_1" );
r17814r17815
962962{
963963
964964   if(space.device().safe_pc()==0x1406f48)
965      device_spin_until_interrupt(m_maincpu);
965      m_maincpu->spin_until_interrupt();
966966
967967   return m_idle_skip_ram;
968968}
trunk/src/mame/drivers/ashnojoe.c
r17814r17815
273273static void ym2203_irq_handler( device_t *device, int irq )
274274{
275275   ashnojoe_state *state = device->machine().driver_data<ashnojoe_state>();
276   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
276   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
277277}
278278
279279WRITE8_MEMBER(ashnojoe_state::ym2203_write_a)
r17814r17815
314314   else
315315   {
316316      msm5205_data_w(device, state->m_adpcm_byte & 0xf);
317      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
317      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
318318   }
319319
320320   state->m_msm5205_vclk_toggle ^= 1;
r17814r17815
331331{
332332   ashnojoe_state *state = machine.driver_data<ashnojoe_state>();
333333
334   state->m_audiocpu = machine.device("audiocpu");
334   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
335335
336336   state->save_item(NAME(state->m_adpcm_byte));
337337   state->save_item(NAME(state->m_soundlatch_status));
trunk/src/mame/drivers/popobear.c
r17814r17815
285285   for(i=0;i<8;i++)
286286   {
287287      if(data & 1 << i)
288         device_set_input_line(m_maincpu, i, CLEAR_LINE);
288         m_maincpu->set_input_line(i, CLEAR_LINE);
289289   }
290290}
291291
r17814r17815
443443
444444   /* Order is trusted (5 as vblank-out makes the title screen logo spinning to behave wrongly) */
445445   if(scanline == 240)
446      device_set_input_line(state->m_maincpu, 3, ASSERT_LINE);
446      state->m_maincpu->set_input_line(3, ASSERT_LINE);
447447
448448   if(scanline == 0)
449      device_set_input_line(state->m_maincpu, 5, ASSERT_LINE);
449      state->m_maincpu->set_input_line(5, ASSERT_LINE);
450450
451451   /* TODO: actually a timer irq, tied with YM2413 sound chip (controls BGM tempo) */
452452   if(scanline == 64 || scanline == 192)
453      device_set_input_line(state->m_maincpu, 2, ASSERT_LINE);
453      state->m_maincpu->set_input_line(2, ASSERT_LINE);
454454}
455455
456456static MACHINE_CONFIG_START( popobear, popobear_state )
trunk/src/mame/drivers/mouser.c
r17814r17815
3939{
4040   //logerror("int %02x\n", data);
4141   m_sound_byte = data;
42   device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
42   m_audiocpu->set_input_line(0, ASSERT_LINE);
4343}
4444
4545READ8_MEMBER(mouser_state::mouser_sound_byte_r)
4646{
4747   //logerror("sound r\n");
48   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
48   m_audiocpu->set_input_line(0, CLEAR_LINE);
4949   return m_sound_byte;
5050}
5151
5252WRITE8_MEMBER(mouser_state::mouser_sound_nmi_clear_w)
5353{
54   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
54   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
5555}
5656
5757static INTERRUPT_GEN( mouser_sound_nmi_assert )
5858{
5959   mouser_state *state = device->machine().driver_data<mouser_state>();
6060   if (BIT(state->m_nmi_enable, 0))
61      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
61      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
6262}
6363
6464static ADDRESS_MAP_START( mouser_map, AS_PROGRAM, 8, mouser_state )
r17814r17815
187187{
188188   mouser_state *state = machine.driver_data<mouser_state>();
189189
190   state->m_maincpu = machine.device("maincpu");
191   state->m_audiocpu = machine.device("audiocpu");
190   state->m_maincpu = machine.device<cpu_device>("maincpu");
191   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
192192
193193   state->save_item(NAME(state->m_sound_byte));
194194   state->save_item(NAME(state->m_nmi_enable));
trunk/src/mame/drivers/undrfire.c
r17814r17815
701701{
702702   undrfire_state *state = device->machine().driver_data<undrfire_state>();
703703   state->m_frame_counter ^= 1;
704   device_set_input_line(device, 4, HOLD_LINE);
704   device->execute().set_input_line(4, HOLD_LINE);
705705}
706706
707707static const tc0100scn_interface undrfire_tc0100scn_intf =
trunk/src/mame/drivers/grchamp.c
r17814r17815
9595   grchamp_state *state = device->machine().driver_data<grchamp_state>();
9696
9797   if (state->m_cpu0_out[0] & 0x01)
98      device_set_input_line(device, 0, ASSERT_LINE);
98      device->execute().set_input_line(0, ASSERT_LINE);
9999}
100100
101101
r17814r17815
104104   grchamp_state *state = device->machine().driver_data<grchamp_state>();
105105
106106   if (state->m_cpu1_out[4] & 0x01)
107      device_set_input_line(device, 0, ASSERT_LINE);
107      device->execute().set_input_line(0, ASSERT_LINE);
108108}
109109
110110
trunk/src/mame/drivers/lkage.c
r17814r17815
9999{
100100   lkage_state *state = machine.driver_data<lkage_state>();
101101   if (state->m_sound_nmi_enable)
102      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
102      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
103103   else
104104      state->m_pending_nmi = 1;
105105}
r17814r17815
122122   if (m_pending_nmi)
123123   {
124124      /* probably wrong but commands may go lost otherwise */
125      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
125      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
126126      m_pending_nmi = 0;
127127   }
128128}
r17814r17815
479479static void irqhandler(device_t *device, int irq)
480480{
481481   lkage_state *state = device->machine().driver_data<lkage_state>();
482   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
482   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
483483}
484484
485485static const ym2203_interface ym2203_config =
r17814r17815
496496{
497497   lkage_state *state = machine.driver_data<lkage_state>();
498498
499   state->m_maincpu = machine.device("maincpu");
500   state->m_audiocpu = machine.device("audiocpu");
499   state->m_maincpu = machine.device<cpu_device>("maincpu");
500   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
501501   state->m_mcu = machine.device("mcu");
502502
503503   state->save_item(NAME(state->m_bg_tile_bank));
trunk/src/mame/drivers/goodejan.c
r17814r17815
331331
332332static INTERRUPT_GEN( goodejan_irq )
333333{
334   device_set_input_line_and_vector(device,0,HOLD_LINE,0x208/4);
334   device->execute().set_input_line_and_vector(0,HOLD_LINE,0x208/4);
335335/* vector 0x00c is just a reti */
336336}
337337
trunk/src/mame/drivers/gaiden.c
r17814r17815
143143      soundlatch_byte_w(space, 0, data & 0xff);   /* Ninja Gaiden */
144144   if (ACCESSING_BITS_8_15)
145145      soundlatch_byte_w(space, 0, data >> 8);   /* Tecmo Knight */
146   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
146   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
147147}
148148
149149WRITE16_MEMBER(gaiden_state::drgnbowl_sound_command_w)
r17814r17815
152152   if (ACCESSING_BITS_8_15)
153153   {
154154      soundlatch_byte_w(space, 0, data >> 8);
155      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
155      m_audiocpu->set_input_line(0, HOLD_LINE);
156156   }
157157}
158158
r17814r17815
312312static MACHINE_START( raiga )
313313{
314314   gaiden_state *state = machine.driver_data<gaiden_state>();
315   state->m_audiocpu = machine.device("audiocpu");
315   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
316316
317317   state->save_item(NAME(state->m_prot));
318318   state->save_item(NAME(state->m_jumpcode));
r17814r17815
748748static void irqhandler( device_t *device, int irq )
749749{
750750   gaiden_state *state = device->machine().driver_data<gaiden_state>();
751   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
751   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
752752}
753753
754754static const ym2203_interface ym2203_config =
trunk/src/mame/drivers/trackfld.c
r17814r17815
890890   trackfld_state *state = device->machine().driver_data<trackfld_state>();
891891
892892   if(state->m_irq_mask)
893      device_set_input_line(device, 0, HOLD_LINE);
893      device->execute().set_input_line(0, HOLD_LINE);
894894}
895895
896896static INTERRUPT_GEN( vblank_nmi )
r17814r17815
898898   trackfld_state *state = device->machine().driver_data<trackfld_state>();
899899
900900   if(state->m_irq_mask)
901      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
901      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
902902}
903903
904904//-------------------------------------------------
r17814r17815
960960   trackfld_state *state = device->machine().driver_data<trackfld_state>();
961961
962962   if (state->m_yieartf_nmi_mask)
963      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
963      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
964964}
965965
966966static MACHINE_CONFIG_START( yieartf, trackfld_state )
trunk/src/mame/drivers/aces1.c
r17814r17815
154154{
155155   aces1_state *state = machine.driver_data<aces1_state>();
156156//  printf("irq\n");
157   device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE);
157   state->m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
158158   state->aces1_reset_irq_timer();
159159}
160160
r17814r17815
162162{
163163   aces1_state *state = machine.driver_data<aces1_state>();
164164//  printf("nmi\n");
165   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
165   state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
166166   state->aces1_reset_nmi_timer();
167167}
168168
trunk/src/mame/drivers/astrof.c
r17814r17815
8181
8282READ8_MEMBER(astrof_state::irq_clear_r)
8383{
84   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
84   m_maincpu->set_input_line(0, CLEAR_LINE);
8585
8686   return 0;
8787}
r17814r17815
9090static TIMER_DEVICE_CALLBACK( irq_callback )
9191{
9292   astrof_state *state = timer.machine().driver_data<astrof_state>();
93   device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
93   state->m_maincpu->set_input_line(0, ASSERT_LINE);
9494}
9595
9696
r17814r17815
105105{
106106
107107   /* coin insertion causes an NMI */
108   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
108   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
109109   coin_counter_w(machine(), 0, newval);
110110}
111111
r17814r17815
114114{
115115
116116   /* service coin insertion causes an NMI */
117   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
117   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
118118}
119119
120120
r17814r17815
490490   /* the 74175 outputs all HI's if not otherwise set */
491491   astrof_set_video_control_2(machine, 0xff);
492492
493   state->m_maincpu = machine.device("maincpu");
493   state->m_maincpu = machine.device<cpu_device>("maincpu");
494494   state->m_samples = machine.device<samples_device>("samples");
495495
496496   /* register for state saving */
r17814r17815
524524   /* the 74175 outputs all HI's if not otherwise set */
525525   spfghmk2_set_video_control_2(machine, 0xff);
526526
527   state->m_maincpu = machine.device("maincpu");
527   state->m_maincpu = machine.device<cpu_device>("maincpu");
528528
529529   /* the red background circuit is disabled */
530530   state->m_red_on = FALSE;
r17814r17815
543543   /* the 74175 outputs all HI's if not otherwise set */
544544   tomahawk_set_video_control_2(machine, 0xff);
545545
546   state->m_maincpu = machine.device("maincpu");
546   state->m_maincpu = machine.device<cpu_device>("maincpu");
547547   state->m_sn = machine.device("snsnd");
548548
549549   /* register for state saving */
trunk/src/mame/drivers/vegas.c
r17814r17815
14521452
14531453static WRITE32_HANDLER( vegas_watchdog_w )
14541454{
1455   device_eat_cycles(&space->device(), 100);
1455   space->device().execute().eat_cycles(100);
14561456}
14571457
14581458
trunk/src/mame/drivers/magictg.c
r17814r17815
804804            m_adsp_regs.bdma_control |= ((src_addr >> 14) & 0xff) << 8;
805805
806806            if (m_adsp_regs.bdma_control & 8)
807               device_set_input_line(m_adsp, INPUT_LINE_RESET, PULSE_LINE);
807               m_adsp->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
808808         }
809809         break;
810810      }
trunk/src/mame/drivers/finalizr.c
r17814r17815
5050
5151WRITE8_MEMBER(finalizr_state::finalizr_i8039_irq_w)
5252{
53   device_set_input_line(m_audio_cpu, 0, ASSERT_LINE);
53   m_audio_cpu->execute().set_input_line(0, ASSERT_LINE);
5454}
5555
5656WRITE8_MEMBER(finalizr_state::i8039_irqen_w)
r17814r17815
6262    */
6363
6464   if ((data & 0x80) == 0)
65      device_set_input_line(m_audio_cpu, 0, CLEAR_LINE);
65      m_audio_cpu->execute().set_input_line(0, CLEAR_LINE);
6666}
6767
6868READ8_MEMBER(finalizr_state::i8039_T1_r)
trunk/src/mame/drivers/xtom3d.c
r17814r17815
574574
575575WRITE_LINE_MEMBER(xtom3d_state::xtom3d_pic8259_1_set_int_line)
576576{
577   device_set_input_line(m_maincpu, 0, state ? HOLD_LINE : CLEAR_LINE);
577   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
578578}
579579
580580READ8_MEMBER( xtom3d_state::get_slave_ack )
r17814r17815
604604{
605605   xtom3d_state *state = machine.driver_data<xtom3d_state>();
606606
607   device_set_input_line(state->m_maincpu, INPUT_LINE_A20, a20);
607   state->m_maincpu->set_input_line(INPUT_LINE_A20, a20);
608608}
609609
610610static void keyboard_interrupt(running_machine &machine, int state)
r17814r17815
658658
659659   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, xtom3d_set_keyb_int);
660660
661   device_set_irq_callback(state->m_maincpu, irq_callback);
661   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
662662   intel82439tx_init(machine);
663663
664664   kbdc8042_init(machine, &at8042);
trunk/src/mame/drivers/enigma2.c
r17814r17815
7777   emu_timer *m_interrupt_assert_timer;
7878
7979   /* devices */
80   device_t *m_maincpu;
81   device_t *m_audiocpu;
80   cpu_device *m_maincpu;
81   cpu_device *m_audiocpu;
8282   DECLARE_READ8_MEMBER(dip_switch_r);
8383   DECLARE_WRITE8_MEMBER(sound_data_w);
8484   DECLARE_WRITE8_MEMBER(enigma2_flip_screen_w);
r17814r17815
112112static TIMER_CALLBACK( interrupt_clear_callback )
113113{
114114   enigma2_state *state = machine.driver_data<enigma2_state>();
115   device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
115   state->m_maincpu->set_input_line(0, CLEAR_LINE);
116116}
117117
118118
r17814r17815
126126   int vpos = machine.primary_screen->vpos();
127127   UINT16 counter = vpos_to_vysnc_chain_counter(vpos);
128128   UINT8 vector = 0xc7 | ((counter & 0x80) >> 3) | ((~counter & 0x80) >> 4);
129   device_set_input_line_and_vector(state->m_maincpu, 0, ASSERT_LINE, vector);
129   state->m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, vector);
130130
131131   /* set up for next interrupt */
132132   if (counter == INT_TRIGGER_COUNT_1)
r17814r17815
162162   enigma2_state *state = machine.driver_data<enigma2_state>();
163163   create_interrupt_timers(machine);
164164
165   state->m_maincpu = machine.device("maincpu");
166   state->m_audiocpu = machine.device("audiocpu");
165   state->m_maincpu = machine.device<cpu_device>("maincpu");
166   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
167167
168168   state->save_item(NAME(state->m_blink_count));
169169   state->save_item(NAME(state->m_sound_latch));
r17814r17815
393393   if (!(data & 0x04) && (m_last_sound_data & 0x04))
394394      m_sound_latch = (m_sound_latch << 1) | (~data & 0x01);
395395
396   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
396   m_audiocpu->set_input_line(INPUT_LINE_NMI, (data & 0x02) ? ASSERT_LINE : CLEAR_LINE);
397397
398398   m_last_sound_data = data;
399399}
trunk/src/mame/drivers/igspoker.c
r17814r17815
137137      return;
138138
139139   if((scanline % 64) == 32)
140      device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
140      state->m_maincpu->set_input_line(0, ASSERT_LINE);
141141
142142   if((scanline % 64) == 0 && state->m_nmi_enable)
143      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
143      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
144144}
145145
146146
147147READ8_MEMBER(igspoker_state::igs_irqack_r)
148148{
149   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
149   m_maincpu->set_input_line(0, CLEAR_LINE);
150150   return 0;
151151}
152152
trunk/src/mame/drivers/gticlub.c
r17814r17815
695695*/
696696static INTERRUPT_GEN( gticlub_vblank )
697697{
698   device_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE);
698   device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
699699}
700700
701701
trunk/src/mame/drivers/namcona1.c
r17814r17815
968968   {
969969      simulate_mcu( timer.machine() );
970970      if (enabled & 8)
971         device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
971         state->m_maincpu->set_input_line(4, HOLD_LINE);
972972   }
973973
974974   // posirq, used with dolphin in Emeraldia's "how to play" attract mode
r17814r17815
978978      if (posirq_scanline)
979979         timer.machine().primary_screen->update_partial(posirq_scanline);
980980
981      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
981      state->m_maincpu->set_input_line(3, HOLD_LINE);
982982   }
983983}
984984
r17814r17815
993993
994994   // vblank
995995   if (scanline == 224)
996      device_set_input_line(state->m_mcu, M37710_LINE_IRQ1, HOLD_LINE);
996      state->m_mcu->set_input_line(M37710_LINE_IRQ1, HOLD_LINE);
997997
998998   // adc (timing guessed, when does this trigger?)
999999   if (scanline == 0)
1000      device_set_input_line(state->m_mcu, M37710_LINE_ADC, HOLD_LINE);
1000      state->m_mcu->set_input_line(M37710_LINE_ADC, HOLD_LINE);
10011001}
10021002
10031003static const c140_interface C140_interface_typeA =
trunk/src/mame/drivers/mazerbla.c
r17814r17815
9898   UINT8 m_soundlatch;
9999
100100   /* devices */
101   device_t *m_maincpu;
102   device_t *m_subcpu;
101   cpu_device *m_maincpu;
102   cpu_device *m_subcpu;
103103
104104#if 0
105105   int m_dbg_info;
r17814r17815
763763
764764   m_zpu_int_vector &= ~2;   /* clear D1 on INTA (interrupt acknowledge) */
765765
766   device_set_input_line(m_maincpu, 0, ASSERT_LINE);   /* main cpu interrupt (comes from CFB (generated at the start of INT routine on CFB) - vblank?) */
766   m_maincpu->set_input_line(0, ASSERT_LINE);   /* main cpu interrupt (comes from CFB (generated at the start of INT routine on CFB) - vblank?) */
767767}
768768
769769READ8_MEMBER(mazerbla_state::cfb_zpu_int_req_clr)
r17814r17815
773773
774774   /* clear the INT line when there are no more interrupt requests */
775775   if (m_zpu_int_vector == 0xff)
776      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
776      m_maincpu->set_input_line(0, CLEAR_LINE);
777777
778778   return 0;
779779}
r17814r17815
958958   state->m_soundlatch = param;
959959
960960   /* cause NMI on sound CPU */
961   device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, ASSERT_LINE);
961   state->m_subcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
962962}
963963
964964WRITE8_MEMBER(mazerbla_state::main_sound_w)
r17814r17815
968968
969969WRITE8_MEMBER(mazerbla_state::sound_int_clear_w)
970970{
971   device_set_input_line(m_subcpu, 0, CLEAR_LINE);
971   m_subcpu->set_input_line(0, CLEAR_LINE);
972972}
973973
974974WRITE8_MEMBER(mazerbla_state::sound_nmi_clear_w)
975975{
976   device_set_input_line(m_subcpu, INPUT_LINE_NMI, CLEAR_LINE);
976   m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
977977}
978978
979979
r17814r17815
14211421/* frequency is 14.318 MHz/16/16/16/16 */
14221422static INTERRUPT_GEN( sound_interrupt )
14231423{
1424   device_set_input_line(device, 0, ASSERT_LINE);
1424   device->execute().set_input_line(0, ASSERT_LINE);
14251425}
14261426
14271427
r17814r17815
14351435{
14361436   mazerbla_state *state = machine.driver_data<mazerbla_state>();
14371437
1438   state->m_maincpu = machine.device("maincpu");
1439   state->m_subcpu = machine.device("sub");
1438   state->m_maincpu = machine.device<cpu_device>("maincpu");
1439   state->m_subcpu = machine.device<cpu_device>("sub");
14401440
14411441   state->save_item(NAME(state->m_vcu_video_reg));
14421442   state->save_item(NAME(state->m_vcu_gfx_addr));
r17814r17815
15021502
15031503   memset(state->m_lookup_ram, 0, ARRAY_LENGTH(state->m_lookup_ram));
15041504
1505   device_set_irq_callback(machine.device("maincpu"), irq_callback);
1505   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
15061506}
15071507
15081508
trunk/src/mame/drivers/pcat_dyn.c
r17814r17815
133133static MACHINE_START( pcat_dyn )
134134{
135135
136   device_set_irq_callback(machine.device("maincpu"), pcat_irq_callback);
136   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
137137   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, pcat_dyn_set_keyb_int);
138138   kbdc8042_init(machine, &at8042);
139139}
trunk/src/mame/drivers/acefruit.c
r17814r17815
8484static INTERRUPT_GEN( acefruit_vblank )
8585{
8686   acefruit_state *state = device->machine().driver_data<acefruit_state>();
87   device_set_input_line(device, 0, HOLD_LINE );
87   device->execute().set_input_line(0, HOLD_LINE );
8888   state->m_refresh_timer->adjust( attotime::zero );
8989}
9090
trunk/src/mame/drivers/dkong.c
r17814r17815
391391
392392static INTERRUPT_GEN( s2650_interrupt )
393393{
394    device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03);
394    device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
395395}
396396
397397/*************************************
r17814r17815
711711
712712   if (data & 1)
713713   {
714      device_set_input_line(m_dev_n2a03a, INPUT_LINE_RESET, CLEAR_LINE);
715      device_set_input_line(m_dev_n2a03b, INPUT_LINE_RESET, CLEAR_LINE);
714      m_dev_n2a03a->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
715      m_dev_n2a03b->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
716716   }
717717   else
718718   {
719      device_set_input_line(m_dev_n2a03a, INPUT_LINE_RESET, ASSERT_LINE);
720      device_set_input_line(m_dev_n2a03b, INPUT_LINE_RESET, ASSERT_LINE);
719      m_dev_n2a03a->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
720      m_dev_n2a03b->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
721721   }
722722}
723723
r17814r17815
16501650   dkong_state *state = device->machine().driver_data<dkong_state>();
16511651
16521652   if(state->m_nmi_mask)
1653      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
1653      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
16541654}
16551655
16561656static MACHINE_CONFIG_START( dkong_base, dkong_state )
trunk/src/mame/drivers/appoooh.c
r17814r17815
436436   appoooh_state *state = device->machine().driver_data<appoooh_state>();
437437
438438   if(state->m_nmi_mask)
439      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
439      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
440440}
441441
442442static MACHINE_CONFIG_START( appoooh_common, appoooh_state )
trunk/src/mame/drivers/metlclsh.c
r17814r17815
4646
4747WRITE8_MEMBER(metlclsh_state::metlclsh_cause_irq)
4848{
49   device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
49   m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
5050}
5151
5252WRITE8_MEMBER(metlclsh_state::metlclsh_ack_nmi)
5353{
54   device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
54   m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
5555}
5656
5757static ADDRESS_MAP_START( metlclsh_master_map, AS_PROGRAM, 8, metlclsh_state )
r17814r17815
8383
8484WRITE8_MEMBER(metlclsh_state::metlclsh_cause_nmi2)
8585{
86   device_set_input_line(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
86   m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
8787}
8888
8989WRITE8_MEMBER(metlclsh_state::metlclsh_ack_irq2)
9090{
91   device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
91   m_subcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
9292}
9393
9494WRITE8_MEMBER(metlclsh_state::metlclsh_ack_nmi2)
9595{
96   device_set_input_line(m_subcpu, INPUT_LINE_NMI, CLEAR_LINE);
96   m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
9797}
9898
9999WRITE8_MEMBER(metlclsh_state::metlclsh_flipscreen_w)
r17814r17815
264264{
265265   metlclsh_state *state = machine.driver_data<metlclsh_state>();
266266
267   state->m_maincpu = machine.device("maincpu");
268   state->m_subcpu = machine.device("sub");
267   state->m_maincpu = machine.device<cpu_device>("maincpu");
268   state->m_subcpu = machine.device<cpu_device>("sub");
269269
270270   state->save_item(NAME(state->m_write_mask));
271271   state->save_item(NAME(state->m_gfxbank));
trunk/src/mame/drivers/dbz.c
r17814r17815
102102
103103WRITE16_MEMBER(dbz_state::dbz_sound_cause_nmi)
104104{
105   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
105   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
106106}
107107
108108static void dbz_sound_irq( device_t *device, int irq )
109109{
110110   dbz_state *state = device->machine().driver_data<dbz_state>();
111111
112   device_set_input_line(state->m_audiocpu, 0, (irq) ? ASSERT_LINE : CLEAR_LINE);
112   state->m_audiocpu->set_input_line(0, (irq) ? ASSERT_LINE : CLEAR_LINE);
113113}
114114
115115static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state )
r17814r17815
351351{
352352   dbz_state *state = machine.driver_data<dbz_state>();
353353
354   state->m_maincpu = machine.device("maincpu");
355   state->m_audiocpu = machine.device("audiocpu");
354   state->m_maincpu = machine.device<cpu_device>("maincpu");
355   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
356356   state->m_k053936_1 = machine.device("k053936_1");
357357   state->m_k053936_2 = machine.device("k053936_2");
358358   state->m_k056832 = machine.device("k056832");
trunk/src/mame/drivers/goldstar.c
r17814r17815
62516251   goldstar_state *state = device->machine().driver_data<goldstar_state>();
62526252
62536253   if(state->m_lucky8_nmi_enable)
6254      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
6254      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
62556255}
62566256
62576257static MACHINE_CONFIG_START( lucky8, goldstar_state )
trunk/src/mame/drivers/skylncr.c
r17814r17815
698698static INTERRUPT_GEN( skylncr_vblank_interrupt )
699699{
700700   skylncr_state *state = device->machine().driver_data<skylncr_state>();
701   if (state->m_nmi_enable) device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
701   if (state->m_nmi_enable) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
702702}
703703
704704
trunk/src/mame/drivers/20pacgal.c
r17814r17815
113113   m_irq_mask = data & 1;
114114
115115   if (!m_irq_mask)
116      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
116      m_maincpu->set_input_line(0, CLEAR_LINE);
117117}
118118
119119WRITE8_MEMBER(_20pacgal_state::timer_pulse_w)
r17814r17815
345345{
346346   _20pacgal_state *state = machine.driver_data<_20pacgal_state>();
347347
348   state->m_maincpu = machine.device("maincpu");
348   state->m_maincpu = machine.device<cpu_device>("maincpu");
349349   state->m_eeprom = machine.device("eeprom");
350350
351351   state->save_item(NAME(state->m_game_selected));
r17814r17815
367367   _20pacgal_state *state = device->machine().driver_data<_20pacgal_state>();
368368
369369   if(state->m_irq_mask)
370      device_set_input_line(device, 0, HOLD_LINE); // TODO: assert breaks the inputs in 25pacman test mode
370      device->execute().set_input_line(0, HOLD_LINE); // TODO: assert breaks the inputs in 25pacman test mode
371371}
372372
373373static MACHINE_CONFIG_START( 20pacgal, _20pacgal_state )
trunk/src/mame/drivers/seicross.c
r17814r17815
393393   seicross_state *state = device->machine().driver_data<seicross_state>();
394394
395395   if(state->m_irq_mask)
396      device_set_input_line(device, 0, HOLD_LINE);
396      device->execute().set_input_line(0, HOLD_LINE);
397397
398398}
399399
trunk/src/mame/drivers/system16.c
r17814r17815
102102
103103static INTERRUPT_GEN( sys16_interrupt )
104104{
105   device_set_input_line(device, 4, HOLD_LINE); /* Interrupt vector 4, used by VBlank */
105   device->execute().set_input_line(4, HOLD_LINE); /* Interrupt vector 4, used by VBlank */
106106}
107107
108108
r17814r17815
114114   if (ACCESSING_BITS_0_7)
115115   {
116116      soundlatch_byte_w(space, 0, data & 0xff);
117      device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
117      m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
118118   }
119119}
120120
r17814r17815
152152   if (ACCESSING_BITS_0_7)
153153   {
154154      soundlatch_byte_w(space, 0, data & 0xff);
155      device_set_input_line(m_soundcpu, 0, HOLD_LINE);
155      m_soundcpu->set_input_line(0, HOLD_LINE);
156156   }
157157}
158158
r17814r17815
369369   state->m_sample_buffer <<=  4;
370370   state->m_sample_select ^=  1;
371371   if(state->m_sample_select == 0)
372      device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
372      state->m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
373373}
374374
375375static const msm5205_interface tturfbl_msm5205_interface  =
r17814r17815
11091109   if (ACCESSING_BITS_0_7)
11101110   {
11111111      soundlatch_byte_w(space, 0, data & 0xff);
1112      device_set_input_line(m_soundcpu, 0, HOLD_LINE);
1112      m_soundcpu->set_input_line(0, HOLD_LINE);
11131113   }
11141114}
11151115
r17814r17815
11851185   state->m_sample_buffer >>=  4;
11861186   state->m_sample_select ^=  1;
11871187   if (state->m_sample_select == 0)
1188      device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
1188      state->m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
11891189}
11901190
11911191static const msm5205_interface shdancbl_msm5205_interface  =
r17814r17815
20482048   segas1x_bootleg_state *state = device->machine().driver_data<segas1x_bootleg_state>();
20492049
20502050   /* upd7759 callback */
2051   device_set_input_line(state->m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
2051   state->m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
20522052}
20532053
20542054
r17814r17815
32553255
32563256   m_beautyb_unkx = 0;
32573257
3258   m_maincpu = machine().device("maincpu");
3259   m_soundcpu = machine().device("soundcpu");
3258   m_maincpu = machine().device<cpu_device>("maincpu");
3259   m_soundcpu = machine().device<cpu_device>("soundcpu");
32603260}
32613261
32623262/* Sys16A */
trunk/src/mame/drivers/nyny.c
r17814r17815
107107   UINT16   m_star_shift_reg;
108108
109109   /* devices */
110   device_t *m_maincpu;
111   device_t *m_audiocpu;
110   cpu_device *m_maincpu;
111   cpu_device *m_audiocpu;
112112   device_t *m_audiocpu2;
113113   device_t *m_ic48_1;
114114   mc6845_device *m_mc6845;
r17814r17815
150150{
151151   int combined_state = m_pia1->irq_a_state() | m_pia1->irq_b_state() | m_pia2->irq_b_state();
152152
153   device_set_input_line(m_maincpu, M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
153   m_maincpu->set_input_line(M6809_IRQ_LINE, combined_state ? ASSERT_LINE : CLEAR_LINE);
154154}
155155
156156
157157WRITE_LINE_MEMBER(nyny_state::main_cpu_firq)
158158{
159   device_set_input_line(m_maincpu, M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
159   m_maincpu->set_input_line(M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
160160}
161161
162162
r17814r17815
226226   m_star_enable = data & 0x10;
227227
228228   /* bits 5-7 go to the music board connector */
229   audio_2_command_w(*m_maincpu->memory().space(AS_PROGRAM), 0, data & 0xe0);
229   audio_2_command_w(*m_maincpu->space(AS_PROGRAM), 0, data & 0xe0);
230230}
231231
232232
r17814r17815
448448{
449449
450450   soundlatch_byte_w(space, 0, data);
451   device_set_input_line(m_audiocpu, M6800_IRQ_LINE, HOLD_LINE);
451   m_audiocpu->set_input_line(M6800_IRQ_LINE, HOLD_LINE);
452452}
453453
454454
r17814r17815
456456{
457457
458458   soundlatch3_byte_w(space, 0, data);
459   device_set_input_line(m_maincpu, M6809_IRQ_LINE, HOLD_LINE);
459   m_maincpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
460460}
461461
462462
r17814r17815
501501{
502502
503503   soundlatch2_byte_w(space, 0, (data & 0x60) >> 5);
504   device_set_input_line(m_audiocpu2, M6800_IRQ_LINE, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE);
504   m_audiocpu2->execute().set_input_line(M6800_IRQ_LINE, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE);
505505}
506506
507507
r17814r17815
677677{
678678   nyny_state *state = machine.driver_data<nyny_state>();
679679
680   state->m_maincpu = machine.device("maincpu");
681   state->m_audiocpu = machine.device("audiocpu");
680   state->m_maincpu = machine.device<cpu_device>("maincpu");
681   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
682682   state->m_audiocpu2 = machine.device("audio2");
683683   state->m_ic48_1 = machine.device("ic48_1");
684684   state->m_mc6845 = machine.device<mc6845_device>("crtc");
trunk/src/mame/drivers/pengo.c
r17814r17815
374374   pengo_state *state = device->machine().driver_data<pengo_state>();
375375
376376   if(state->m_irq_mask)
377      device_set_input_line(device, 0, HOLD_LINE);
377      device->execute().set_input_line(0, HOLD_LINE);
378378}
379379
380380
trunk/src/mame/drivers/whitestar.c
r17814r17815
110110READ8_MEMBER(whitestar_state::dmd_latch_r)
111111{
112112   m_dmd_busy = 0;
113   device_set_input_line(m_dmdcpu, M6809_IRQ_LINE, CLEAR_LINE);
113   m_dmdcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
114114   return m_dmd_latch;
115115}
116116
r17814r17815
118118{
119119   m_dmd_latch = data;
120120   m_dmd_busy = 1;
121   device_set_input_line(m_dmdcpu, M6809_IRQ_LINE, CLEAR_LINE);
122   device_set_input_line(m_dmdcpu, M6809_IRQ_LINE, ASSERT_LINE);
121   m_dmdcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
122   m_dmdcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
123123}
124124
125125READ8_MEMBER(whitestar_state::dmd_ctrl_r)
r17814r17815
130130WRITE8_MEMBER(whitestar_state::dmd_ctrl_w)
131131{
132132   m_dmd_ctrl = data;
133   device_set_input_line(m_dmdcpu, M6809_IRQ_LINE, CLEAR_LINE);
133   m_dmdcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
134134   if (data!=0) {
135135      bank_w(space,0,0);
136136      m_dmdcpu->reset();
r17814r17815
182182// the appropriate device is passed in, so we can share this routine
183183static INTERRUPT_GEN( whitestar_firq_interrupt )
184184{
185   device_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE);
185   device->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
186186}
187187
188188#define DMD_CHUNK_SIZE 10
trunk/src/mame/drivers/simpsons.c
r17814r17815
115115static void sound_nmi_callback( running_machine &machine, int param )
116116{
117117   simpsons_state *state = machine.driver_data<simpsons_state>();
118   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, (state->m_nmi_enabled) ? CLEAR_LINE : ASSERT_LINE );
118   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, (state->m_nmi_enabled) ? CLEAR_LINE : ASSERT_LINE );
119119   state->m_nmi_enabled = 0;
120120}
121121#endif
r17814r17815
123123static TIMER_CALLBACK( nmi_callback )
124124{
125125   simpsons_state *state = machine.driver_data<simpsons_state>();
126   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
126   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
127127}
128128
129129WRITE8_MEMBER(simpsons_state::z80_arm_nmi_w)
130130{
131   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
131   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
132132   machine().scheduler().timer_set(attotime::from_usec(25), FUNC(nmi_callback));   /* kludge until the K053260 is emulated correctly */
133133}
134134
r17814r17815
256256{
257257   simpsons_state *state = machine.driver_data<simpsons_state>();
258258   if (state->m_firq_enabled)
259      device_set_input_line(state->m_maincpu, KONAMI_FIRQ_LINE, HOLD_LINE);
259      state->m_maincpu->set_input_line(KONAMI_FIRQ_LINE, HOLD_LINE);
260260}
261261
262262
r17814r17815
272272   }
273273
274274   if (k052109_is_irq_enabled(state->m_k052109))
275      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
275      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
276276}
277277
278278static const k052109_interface simpsons_k052109_intf =
trunk/src/mame/drivers/byvid.c
r17814r17815
8484INPUT_CHANGED_MEMBER(by133_state::video_test)
8585{
8686   if(newval)
87      device_set_input_line(m_videocpu, INPUT_LINE_NMI, PULSE_LINE);
87      m_videocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8888}
8989
9090INPUT_CHANGED_MEMBER(by133_state::sound_test)
9191{
9292   if(newval)
93      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
93      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9494}
9595
9696static INPUT_PORTS_START( by133 )
r17814r17815
115115
116116WRITE_LINE_MEMBER(by133_state::by133_firq)
117117{
118   device_set_input_line(m_videocpu, M6809_FIRQ_LINE, (m_videopia->irq_a_state() || m_videopia->irq_b_state()) ? ASSERT_LINE : CLEAR_LINE);
118   m_videocpu->set_input_line(M6809_FIRQ_LINE, (m_videopia->irq_a_state() || m_videopia->irq_b_state()) ? ASSERT_LINE : CLEAR_LINE);
119119}
120120
121121WRITE_LINE_MEMBER(by133_state::by133_cb2)
122122{
123123   // to M6803 port 2 d0?
124//  device_set_input_line(m_audiocpu, M6801_TIN_LINE, state ? ASSERT_LINE : CLEAR_LINE);
124//  m_audiocpu->set_input_line(M6801_TIN_LINE, state ? ASSERT_LINE : CLEAR_LINE);
125125}
126126
127127READ8_MEMBER(by133_state::by133_portb_r)
trunk/src/mame/drivers/model1.c
r17814r17815
722722static void irq_init(running_machine &machine)
723723{
724724   machine.device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
725   device_set_irq_callback(machine.device("maincpu"), irq_callback);
725   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
726726}
727727
728728static TIMER_DEVICE_CALLBACK( model1_interrupt )
r17814r17815
854854
855855   if ((sr & 0x0700) > 0x0100)
856856   {
857      device_spin_until_time(&space.device(), attotime::from_usec(40));
857      space.device().execute().spin_until_time(attotime::from_usec(40));
858858      return 0;   // not ready yet, interrupts disabled
859859   }
860860
r17814r17815
875875   // signal the 68000 that there's data waiting
876876   machine().device("audiocpu")->execute().set_input_line(2, HOLD_LINE);
877877   // give the 68k time to reply
878   device_spin_until_time(&space.device(), attotime::from_usec(40));
878   space.device().execute().spin_until_time(attotime::from_usec(40));
879879}
880880
881881static ADDRESS_MAP_START( model1_mem, AS_PROGRAM, 16, model1_state )
trunk/src/mame/drivers/polepos.c
r17814r17815
336336
337337   m_sub_irq_mask = data;
338338   if (!data)
339      device_set_input_line(&space.device(), 0, CLEAR_LINE);
339      space.device().execute().set_input_line(0, CLEAR_LINE);
340340}
341341
342342
r17814r17815
472472      state->polepos_latch_w(*space, i, 0);
473473
474474   /* set the interrupt vectors (this shouldn't be needed) */
475   device_set_input_line_vector(machine.device("sub"), 0, Z8000_NVI);
476   device_set_input_line_vector(machine.device("sub2"), 0, Z8000_NVI);
475   machine.device("sub")->execute().set_input_line_vector(0, Z8000_NVI);
476   machine.device("sub2")->execute().set_input_line_vector(0, Z8000_NVI);
477477}
478478
479479
trunk/src/mame/drivers/actfancr.c
r17814r17815
5656WRITE8_MEMBER(actfancr_state::actfancr_sound_w)
5757{
5858   soundlatch_byte_w(space, 0, data & 0xff);
59   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
59   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
6060}
6161
6262/******************************************************************************/
r17814r17815
279279static void sound_irq(device_t *device, int linestate)
280280{
281281   actfancr_state *state = device->machine().driver_data<actfancr_state>();
282   device_set_input_line(state->m_audiocpu, 0, linestate); /* IRQ */
282   state->m_audiocpu->set_input_line(0, linestate); /* IRQ */
283283}
284284
285285static const ym3812_interface ym3812_config =
r17814r17815
293293{
294294   actfancr_state *state = machine.driver_data<actfancr_state>();
295295
296   state->m_maincpu = machine.device("maincpu");
297   state->m_audiocpu = machine.device("audiocpu");
296   state->m_maincpu = machine.device<cpu_device>("maincpu");
297   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
298298}
299299
300300static MACHINE_START( triothep )
trunk/src/mame/drivers/galgame.c
r17814r17815
295295
296296static IRQ_CALLBACK(galaxygame_irq_callback)
297297{
298   device_set_input_line(device, 0, CLEAR_LINE);
298   device->execute().set_input_line(0, CLEAR_LINE);
299299   return 0x40;
300300}
301301
r17814r17815
304304   galaxygame_state *state = device->machine().driver_data<galaxygame_state>();
305305   if ( state->m_clk & 0x40 )
306306   {
307      device_set_input_line(device, 0, ASSERT_LINE);
307      device->execute().set_input_line(0, ASSERT_LINE);
308308      state->m_interrupt = 1;
309309   }
310310}
r17814r17815
317317   state->m_point_display_list_index = 0;
318318   state->m_interrupt = 0;
319319
320   device_set_irq_callback(machine.device("maincpu"), galaxygame_irq_callback);
320   machine.device("maincpu")->execute().set_irq_acknowledge_callback(galaxygame_irq_callback);
321321}
322322
323323static const struct t11_setup t11_data =
trunk/src/mame/drivers/qdrmfgp.c
r17814r17815
271271
272272   if(scanline == 0)
273273      if (state->m_control & 0x0001)
274         device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
274         state->m_maincpu->set_input_line(1, HOLD_LINE);
275275
276276   /* trigger V-blank interrupt */
277277   if(scanline == 240)
278278      if (state->m_control & 0x0004)
279         device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
279         state->m_maincpu->set_input_line(3, HOLD_LINE);
280280}
281281
282282static void ide_interrupt(device_t *device, int state)
r17814r17815
305305   qdrmfgp_state *state = device->machine().driver_data<qdrmfgp_state>();
306306   /* trigger V-blank interrupt */
307307   if (state->m_control & 0x0008)
308      device_set_input_line(device, 4, HOLD_LINE);
308      device->execute().set_input_line(4, HOLD_LINE);
309309}
310310
311311static void gp2_ide_interrupt(device_t *device, int state)
trunk/src/mame/drivers/cps1.c
r17814r17815
330330{
331331   /* Strider also has a IRQ4 handler. It is input port related, but the game */
332332   /* works without it. It is the *only* CPS1 game to have that. */
333   device_set_input_line(device, 2, HOLD_LINE);
333   device->execute().set_input_line(2, HOLD_LINE);
334334}
335335
336336/********************************************************************
r17814r17815
343343
344344static INTERRUPT_GEN( cps1_qsound_interrupt )
345345{
346   device_set_input_line(device, 2, HOLD_LINE);
346   device->execute().set_input_line(2, HOLD_LINE);
347347}
348348
349349
r17814r17815
30113011static void cps1_irq_handler_mus(device_t *device, int irq)
30123012{
30133013   cps_state *state = device->machine().driver_data<cps_state>();
3014   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
3014   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
30153015}
30163016
30173017static const ym2151_interface ym2151_config =
r17814r17815
30343034{
30353035   cps_state *state = machine.driver_data<cps_state>();
30363036
3037   state->m_maincpu = machine.device("maincpu");
3038   state->m_audiocpu = machine.device("audiocpu");
3037   state->m_maincpu = machine.device<cpu_device>("maincpu");
3038   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
30393039}
30403040
30413041static MACHINE_START( cps1 )
trunk/src/mame/drivers/yunsun16.c
r17814r17815
148148      if ((data & 0xff) != 0x3a)
149149      {
150150         soundlatch_byte_w(space, 0, data & 0xff);
151         device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
151         m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
152152      }
153153   }
154154}
r17814r17815
558558{
559559   yunsun16_state *state = machine.driver_data<yunsun16_state>();
560560
561   state->m_audiocpu = machine.device("audiocpu");
561   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
562562
563563   state->save_item(NAME(state->m_sprites_scrolldx));
564564   state->save_item(NAME(state->m_sprites_scrolldy));
r17814r17815
579579static void soundirq(device_t *device, int state)
580580{
581581   yunsun16_state *yunsun16 = device->machine().driver_data<yunsun16_state>();
582   device_set_input_line(yunsun16->m_audiocpu, 0, state);
582   yunsun16->m_audiocpu->set_input_line(0, state);
583583}
584584
585585static const ym3812_interface magicbub_ym3812_intf =
trunk/src/mame/drivers/wiz.c
r17814r17815
706706   wiz_state *state = device->machine().driver_data<wiz_state>();
707707
708708   if(state->m_main_nmi_mask & 1)
709      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
709      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
710710}
711711
712712static INTERRUPT_GEN( wiz_sound_interrupt )
r17814r17815
714714   wiz_state *state = device->machine().driver_data<wiz_state>();
715715
716716   if(state->m_sound_nmi_mask & 1)
717      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
717      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
718718}
719719
720720
trunk/src/mame/drivers/stactics.c
r17814r17815
157157
158158   move_motor(device->machine(), state);
159159
160    device_set_input_line(device, 0, HOLD_LINE);
160    device->execute().set_input_line(0, HOLD_LINE);
161161}
162162
163163
trunk/src/mame/drivers/namcos11.c
r17814r17815
857857
858858   if ((space.device().safe_pc() == 0xc153) && (!(m_su_83 & 0xff00)))
859859   {
860      device_spin_until_interrupt(&space.device());
860      space.device().execute().spin_until_interrupt();
861861   }
862862
863863   return m_su_83;
r17814r17815
10041004{
10051005   namcos11_state *state = timer.machine().driver_data<namcos11_state>();
10061006
1007   device_set_input_line(state->m_mcu, M37710_LINE_IRQ0, HOLD_LINE);
1007   state->m_mcu->set_input_line(M37710_LINE_IRQ0, HOLD_LINE);
10081008}
10091009
10101010static TIMER_DEVICE_CALLBACK( mcu_irq2_cb )
10111011{
10121012   namcos11_state *state = timer.machine().driver_data<namcos11_state>();
10131013
1014   device_set_input_line(state->m_mcu, M37710_LINE_IRQ2, HOLD_LINE);
1014   state->m_mcu->set_input_line(M37710_LINE_IRQ2, HOLD_LINE);
10151015}
10161016
10171017static TIMER_DEVICE_CALLBACK( mcu_adc_cb )
10181018{
10191019   namcos11_state *state = timer.machine().driver_data<namcos11_state>();
10201020
1021   device_set_input_line(state->m_mcu, M37710_LINE_ADC, HOLD_LINE);
1021   state->m_mcu->set_input_line(M37710_LINE_ADC, HOLD_LINE);
10221022}
10231023
10241024static MACHINE_CONFIG_START( coh100, namcos11_state )
trunk/src/mame/drivers/galaxian.c
r17814r17815
444444   /* interrupt line is clocked at VBLANK */
445445   /* a flip-flop at 6F is held in the preset state based on the NMI ON signal */
446446   if (state->m_irq_enabled)
447      device_set_input_line(device, state->m_irq_line, ASSERT_LINE);
447      device->execute().set_input_line(state->m_irq_line, ASSERT_LINE);
448448}
449449
450450static INTERRUPT_GEN( fakechange_interrupt_gen )
r17814r17815
468468
469469   /* if CLEAR is held low, we must make sure the interrupt signal is clear */
470470   if (!m_irq_enabled)
471      device_set_input_line(&space.device(), m_irq_line, CLEAR_LINE);
471      space.device().execute().set_input_line(m_irq_line, CLEAR_LINE);
472472}
473473
474474/*************************************
trunk/src/mame/drivers/bbusters.c
r17814r17815
281281
282282   logerror("%08x: gun r\n",space.device().safe_pc());
283283
284   device_set_input_line(&space.device(), 2, HOLD_LINE);
284   space.device().execute().set_input_line(2, HOLD_LINE);
285285
286286   m_gun_select = data & 0xff;
287287}
trunk/src/mame/drivers/hyprduel.c
r17814r17815
5050   hyprduel_state *state = machine.driver_data<hyprduel_state>();
5151   int irq = state->m_requested_int & ~*state->m_irq_enable;
5252
53   device_set_input_line(state->m_maincpu, 3, (irq & state->m_int_num) ? ASSERT_LINE : CLEAR_LINE);
53   state->m_maincpu->set_input_line(3, (irq & state->m_int_num) ? ASSERT_LINE : CLEAR_LINE);
5454}
5555
5656static TIMER_CALLBACK( vblank_end_callback )
r17814r17815
6868   {
6969      state->m_requested_int |= 0x01;      /* vblank */
7070      state->m_requested_int |= 0x20;
71      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
71      state->m_maincpu->set_input_line(2, HOLD_LINE);
7272      /* the duration is a guess */
7373      timer.machine().scheduler().timer_set(attotime::from_usec(2500), FUNC(vblank_end_callback), 0x20);
7474   }
r17814r17815
107107      case 0x01:
108108         if (!m_subcpu_resetline)
109109         {
110            device_set_input_line(m_subcpu, INPUT_LINE_RESET, ASSERT_LINE);
110            m_subcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
111111            m_subcpu_resetline = 1;
112112         }
113113         break;
r17814r17815
115115      case 0x00:
116116         if (m_subcpu_resetline)
117117         {
118            device_set_input_line(m_subcpu, INPUT_LINE_RESET, CLEAR_LINE);
118            m_subcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
119119            m_subcpu_resetline = 0;
120120         }
121         device_spin_until_interrupt(&space.device());
121         space.device().execute().spin_until_interrupt();
122122         break;
123123
124124      case 0x0c:
125125      case 0x80:
126         device_set_input_line(m_subcpu, 2, HOLD_LINE);
126         m_subcpu->set_input_line(2, HOLD_LINE);
127127         break;
128128   }
129129}
r17814r17815
148148   {
149149      if (!m_cpu_trigger && !m_subcpu_resetline)
150150      {
151         device_spin_until_trigger(&space.device(), 1001);
151         space.device().execute().spin_until_trigger(1001);
152152         m_cpu_trigger = 1001;
153153      }
154154   }
r17814r17815
174174   {
175175      if (!m_cpu_trigger && !m_subcpu_resetline)
176176      {
177         device_spin_until_trigger(&space.device(), 1002);
177         space.device().execute().spin_until_trigger(1002);
178178         m_cpu_trigger = 1002;
179179      }
180180   }
r17814r17815
184184static TIMER_CALLBACK( magerror_irq_callback )
185185{
186186   hyprduel_state *state = machine.driver_data<hyprduel_state>();
187   device_set_input_line(state->m_subcpu, 1, HOLD_LINE);
187   state->m_subcpu->set_input_line(1, HOLD_LINE);
188188}
189189
190190/***************************************************************************
r17814r17815
623623static void sound_irq( device_t *device, int state )
624624{
625625   hyprduel_state *hyprduel = device->machine().driver_data<hyprduel_state>();
626   device_set_input_line(hyprduel->m_subcpu, 1, HOLD_LINE);
626   hyprduel->m_subcpu->set_input_line(1, HOLD_LINE);
627627}
628628
629629static const ym2151_interface ym2151_config =
r17814r17815
653653{
654654   hyprduel_state *state = machine.driver_data<hyprduel_state>();
655655
656   state->m_maincpu = machine.device("maincpu");
657   state->m_subcpu = machine.device("sub");
656   state->m_maincpu = machine.device<cpu_device>("maincpu");
657   state->m_subcpu = machine.device<cpu_device>("sub");
658658
659659   state->save_item(NAME(state->m_blitter_bit));
660660   state->save_item(NAME(state->m_requested_int));
trunk/src/mame/drivers/flstory.c
r17814r17815
3838{
3939   flstory_state *state = machine.driver_data<flstory_state>();
4040   if (state->m_sound_nmi_enable)
41      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
41      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
4242   else
4343      state->m_pending_nmi = 1;
4444}
r17814r17815
6060   m_sound_nmi_enable = 1;
6161   if (m_pending_nmi)
6262   {
63      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
63      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
6464      m_pending_nmi = 0;
6565   }
6666}
r17814r17815
119119
120120CUSTOM_INPUT_MEMBER(flstory_state::victnine_mcu_status_bit01_r)
121121{
122   address_space *space = m_maincpu->memory().space(AS_PROGRAM);
122   address_space *space = m_maincpu->space(AS_PROGRAM);
123123
124124   return (victnine_mcu_status_r(*space, 0) & 3);
125125}
r17814r17815
10061006{
10071007   flstory_state *state = machine.driver_data<flstory_state>();
10081008
1009   state->m_maincpu = machine.device("maincpu");
1010   state->m_audiocpu = machine.device("audiocpu");
1009   state->m_maincpu = machine.device<cpu_device>("maincpu");
1010   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
10111011   state->m_mcu = machine.device("mcu");
10121012
10131013   /* video */
trunk/src/mame/drivers/suprslam.c
r17814r17815
9696   {
9797      m_pending_command = 1;
9898      soundlatch_byte_w(space, offset, data & 0xff);
99      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
99      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
100100   }
101101}
102102
r17814r17815
278278static void irqhandler(device_t *device, int irq)
279279{
280280   suprslam_state *state = device->machine().driver_data<suprslam_state>();
281   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
281   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
282282}
283283
284284static const ym2610_interface ym2610_config =
r17814r17815
297297{
298298   suprslam_state *state = machine.driver_data<suprslam_state>();
299299
300   state->m_audiocpu = machine.device("audiocpu");
300   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
301301   state->m_k053936 = machine.device("k053936");
302302
303303   state->save_item(NAME(state->m_screen_bank));
trunk/src/mame/drivers/dgpix.c
r17814r17815
197197READ32_MEMBER(dgpix_state::vblank_r)
198198{
199199   /* burn a bunch of cycles because this is polled frequently during busy loops */
200   device_eat_cycles(&space.device(), 100);
200   space.device().execute().eat_cycles(100);
201201   return ioport("VBLANK")->read();
202202}
203203
trunk/src/mame/drivers/shaolins.c
r17814r17815
1919   int scanline = param;
2020
2121   if(scanline == 240)
22       device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
22       state->m_maincpu->set_input_line(0, HOLD_LINE);
2323   else if((scanline % 32) == 0)
24      if (state->m_nmi_enable & 0x02) device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
24      if (state->m_nmi_enable & 0x02) state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2525}
2626
2727
trunk/src/mame/drivers/kyugo.c
r17814r17815
6262
6363WRITE8_MEMBER(kyugo_state::kyugo_sub_cpu_control_w)
6464{
65   device_set_input_line(m_subcpu, INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
65   m_subcpu->set_input_line(INPUT_LINE_HALT, data ? CLEAR_LINE : ASSERT_LINE);
6666}
6767
6868static ADDRESS_MAP_START( kyugo_main_portmap, AS_IO, 8, kyugo_state )
r17814r17815
498498{
499499   kyugo_state *state = machine.driver_data<kyugo_state>();
500500
501   state->m_maincpu = machine.device("maincpu");
502   state->m_subcpu = machine.device("sub");
501   state->m_maincpu = machine.device<cpu_device>("maincpu");
502   state->m_subcpu = machine.device<cpu_device>("sub");
503503
504504   state->save_item(NAME(state->m_scroll_x_lo));
505505   state->save_item(NAME(state->m_scroll_x_hi));
r17814r17815
530530   kyugo_state *state = device->machine().driver_data<kyugo_state>();
531531
532532   if(state->m_nmi_mask)
533      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
533      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
534534}
535535
536536
trunk/src/mame/drivers/pcat_nit.c
r17814r17815
230230
231231static MACHINE_START( streetg2 )
232232{
233   device_set_irq_callback(machine.device("maincpu"), pcat_irq_callback);
233   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
234234
235235   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, streetg2_set_keyb_int);
236236
trunk/src/mame/drivers/lazercmd.c
r17814r17815
248248   {
249249      state->m_timer_count = 0;
250250      state->m_sense_state ^= 1;
251      device_set_input_line(state->m_maincpu, 1, (state->m_sense_state) ? ASSERT_LINE : CLEAR_LINE);
251      state->m_maincpu->set_input_line(1, (state->m_sense_state) ? ASSERT_LINE : CLEAR_LINE);
252252   }
253253}
254254
trunk/src/mame/drivers/blockade.c
r17814r17815
6161static INTERRUPT_GEN( blockade_interrupt )
6262{
6363   blockade_state *state = device->machine().driver_data<blockade_state>();
64   device_resume(device, SUSPEND_ANY_REASON);
64   device->execute().resume(SUSPEND_ANY_REASON);
6565
6666   if ((state->ioport("IN0")->read() & 0x80) == 0)
6767   {
6868      state->m_just_been_reset = 1;
69      device_set_input_line(device, INPUT_LINE_RESET, PULSE_LINE);
69      device->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE);
7070   }
7171}
7272
trunk/src/mame/drivers/zerozone.c
r17814r17815
4040   if (ACCESSING_BITS_8_15)
4141   {
4242      soundlatch_byte_w(space, offset, data >> 8);
43      device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
43      m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
4444   }
4545}
4646
trunk/src/mame/drivers/lemmings.c
r17814r17815
8080WRITE16_MEMBER(lemmings_state::lemmings_sound_w)
8181{
8282   soundlatch_byte_w(space, 0, data & 0xff);
83   device_set_input_line(m_audiocpu, 1, HOLD_LINE);
83   m_audiocpu->set_input_line(1, HOLD_LINE);
8484}
8585
8686WRITE8_MEMBER(lemmings_state::lemmings_sound_ack_w)
8787{
88   device_set_input_line(m_audiocpu, 1, CLEAR_LINE);
88   m_audiocpu->set_input_line(1, CLEAR_LINE);
8989}
9090
9191/******************************************************************************/
r17814r17815
244244static void sound_irq( device_t *device, int state )
245245{
246246   lemmings_state *lemmings = device->machine().driver_data<lemmings_state>();
247   device_set_input_line(lemmings->m_audiocpu, 0, state);
247   lemmings->m_audiocpu->set_input_line(0, state);
248248}
249249
250250static const ym2151_interface ym2151_config =
r17814r17815
256256{
257257   lemmings_state *state = machine.driver_data<lemmings_state>();
258258
259   state->m_audiocpu = machine.device("audiocpu");
259   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
260260}
261261
262262static MACHINE_CONFIG_START( lemmings, lemmings_state )
trunk/src/mame/drivers/espial.c
r17814r17815
5858{
5959   espial_state *state = machine.driver_data<espial_state>();
6060
61   state->m_maincpu = machine.device("maincpu");
62   state->m_audiocpu = machine.device("audiocpu");
61   state->m_maincpu = machine.device<cpu_device>("maincpu");
62   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
6363
6464   //state_save_register_global_array(machine, mcu_out[1]);
6565   state->save_item(NAME(state->m_sound_nmi_enabled));
r17814r17815
102102WRITE8_MEMBER(espial_state::espial_master_soundlatch_w)
103103{
104104   soundlatch_byte_w(space, offset, data);
105   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
105   m_audiocpu->set_input_line(0, HOLD_LINE);
106106}
107107
108108
trunk/src/mame/drivers/tmnt.c
r17814r17815
169169   tmnt_state *state = device->machine().driver_data<tmnt_state>();
170170
171171   if (state->m_irq5_mask)
172      device_set_input_line(device, M68K_IRQ_5, HOLD_LINE);
172      device->execute().set_input_line(M68K_IRQ_5, HOLD_LINE);
173173}
174174
175175static INTERRUPT_GEN( punkshot_interrupt )
r17814r17815
210210   k053260_w(device, offset, data);
211211
212212   if (offset)
213      device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
213      m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
214214}
215215
216216READ16_MEMBER(tmnt_state::prmrsocr_sound_r)
r17814r17815
232232
233233WRITE16_MEMBER(tmnt_state::prmrsocr_sound_irq_w)
234234{
235   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
235   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
236236}
237237
238238WRITE8_MEMBER(tmnt_state::prmrsocr_audio_bankswitch_w)
r17814r17815
321321static TIMER_CALLBACK( nmi_callback )
322322{
323323   tmnt_state *state = machine.driver_data<tmnt_state>();
324   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
324   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
325325}
326326
327327WRITE8_MEMBER(tmnt_state::sound_arm_nmi_w)
328328{
329329//  sound_nmi_enabled = 1;
330   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
330   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
331331   machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback));   /* kludge until the K053260 is emulated correctly */
332332}
333333
r17814r17815
518518
519519      /* bit 5 triggers IRQ on sound cpu */
520520      if (m_last == 0 && (data & 0x20) != 0)
521         device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
521         m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
522522      m_last = data & 0x20;
523523
524524      /* bit 6 = enable char ROM reading through the video RAM */
r17814r17815
666666{
667667
668668   /* I think this is more than just a trigger */
669   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
669   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
670670}
671671
672672static ADDRESS_MAP_START( blswhstl_main_map, AS_PROGRAM, 16, tmnt_state )
r17814r17815
20362036{
20372037   tmnt_state *tmnt = device->machine().driver_data<tmnt_state>();
20382038
2039   device_set_input_line(tmnt->m_maincpu, M68K_IRQ_6, (state) ? ASSERT_LINE : CLEAR_LINE);
2039   tmnt->m_maincpu->set_input_line(M68K_IRQ_6, (state) ? ASSERT_LINE : CLEAR_LINE);
20402040}
20412041
20422042static const ym2151_interface ym2151_interface_cbj =
r17814r17815
22072207{
22082208   tmnt_state *state = machine.driver_data<tmnt_state>();
22092209
2210   state->m_maincpu = machine.device("maincpu");
2211   state->m_audiocpu = machine.device("audiocpu");
2210   state->m_maincpu = machine.device<cpu_device>("maincpu");
2211   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
22122212   state->m_k007232 = machine.device("k007232");
22132213   state->m_k053260 = machine.device("k053260");
22142214   state->m_k054539 = machine.device("k054539");
r17814r17815
22492249   tmnt_state *state = device->machine().driver_data<tmnt_state>();
22502250
22512251   if(state->m_irq5_mask)
2252      device_set_input_line(device, 5, HOLD_LINE);
2252      device->execute().set_input_line(5, HOLD_LINE);
22532253}
22542254
22552255
r17814r17815
25942594static void sound_nmi( device_t *device )
25952595{
25962596   tmnt_state *state = device->machine().driver_data<tmnt_state>();
2597   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
2597   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
25982598}
25992599
26002600static const k054539_interface k054539_config =
trunk/src/mame/drivers/tasman.c
r17814r17815
584584   int scanline = param;
585585
586586   if(scanline == 512)
587      device_set_input_line(state->m_maincpu, 1, HOLD_LINE); // vblank?
587      state->m_maincpu->set_input_line(1, HOLD_LINE); // vblank?
588588
589589   if(scanline == 0)
590      device_set_input_line(state->m_maincpu, 3, HOLD_LINE); // sprite irq?
590      state->m_maincpu->set_input_line(3, HOLD_LINE); // sprite irq?
591591}
592592
593593static MACHINE_CONFIG_START( kongambl, kongambl_state )
trunk/src/mame/drivers/zodiack.c
r17814r17815
127127WRITE8_MEMBER( zodiack_state::master_soundlatch_w )
128128{
129129   soundlatch_byte_w(space, offset, data);
130   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
130   m_audiocpu->set_input_line(0, HOLD_LINE);
131131}
132132
133133WRITE8_MEMBER( zodiack_state::control_w )
trunk/src/mame/drivers/raiden2.c
r17814r17815
975975
976976static INTERRUPT_GEN( raiden2_interrupt )
977977{
978   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xc0/4);   /* VBL */
978   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xc0/4);   /* VBL */
979979}
980980
981981
trunk/src/mame/drivers/mogura.c
r17814r17815
2121   tilemap_t *m_tilemap;
2222
2323   /* devices */
24   device_t *m_maincpu;
24   cpu_device *m_maincpu;
2525   dac_device *m_dac1;
2626   dac_device *m_dac2;
2727   DECLARE_WRITE8_MEMBER(mogura_tileram_w);
r17814r17815
192192{
193193   mogura_state *state = machine.driver_data<mogura_state>();
194194
195   state->m_maincpu = machine.device("maincpu");
195   state->m_maincpu = machine.device<cpu_device>("maincpu");
196196   state->m_dac1 = machine.device<dac_device>("dac1");
197197   state->m_dac2 = machine.device<dac_device>("dac2");
198198}
trunk/src/mame/drivers/taitojc.c
r17814r17815
538538#endif
539539
540540   if (offset == 0x1ff8/4)
541      device_set_input_line(m_maincpu, 6, CLEAR_LINE);
541      m_maincpu->set_input_line(6, CLEAR_LINE);
542542
543543   if (offset == 0x1ffc/4)
544544   {
r17814r17815
556556            */
557557         if (!m_first_dsp_reset || !m_has_dsp_hack)
558558         {
559            device_set_input_line(m_dsp, INPUT_LINE_RESET, CLEAR_LINE);
559            m_dsp->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
560560         }
561561         m_first_dsp_reset = 0;
562562      }
563563      else
564564      {
565         device_set_input_line(m_dsp, INPUT_LINE_RESET, ASSERT_LINE);
565         m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
566566      }
567567   }
568568}
r17814r17815
10101010
10111011WRITE16_MEMBER(taitojc_state::dsp_to_main_w)
10121012{
1013   device_set_input_line(m_maincpu, 6, ASSERT_LINE);
1013   m_maincpu->set_input_line(6, ASSERT_LINE);
10141014
10151015   COMBINE_DATA(&m_dsp_shared_ram[0x7fe]);
10161016}
r17814r17815
12151215   memset(state->m_intersection_data, 0, sizeof(state->m_intersection_data));
12161216
12171217   // hold the TMS in reset until we have code
1218   device_set_input_line(state->m_dsp, INPUT_LINE_RESET, ASSERT_LINE);
1218   state->m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
12191219}
12201220
12211221static INTERRUPT_GEN( taitojc_vblank )
12221222{
1223   device_set_input_line_and_vector(device, 2, HOLD_LINE, 130);
1223   device->execute().set_input_line_and_vector(2, HOLD_LINE, 130);
12241224}
12251225
12261226static const tc0640fio_interface taitojc_io_intf =
r17814r17815
13021302READ16_MEMBER(taitojc_state::taitojc_dsp_idle_skip_r)
13031303{
13041304   if(space.device().safe_pc()==0x404c)
1305      device_spin_until_time(&space.device(), attotime::from_usec(500));
1305      space.device().execute().spin_until_time(attotime::from_usec(500));
13061306
13071307   return m_dsp_shared_ram[0x7f0];
13081308}
r17814r17815
13101310READ16_MEMBER(taitojc_state::dendego2_dsp_idle_skip_r)
13111311{
13121312   if(space.device().safe_pc()==0x402e)
1313      device_spin_until_time(&space.device(), attotime::from_usec(500));
1313      space.device().execute().spin_until_time(attotime::from_usec(500));
13141314
13151315   return m_dsp_shared_ram[0x7f0];
13161316}
trunk/src/mame/drivers/ddealer.c
r17814r17815
620620
621621static INTERRUPT_GEN( ddealer_interrupt )
622622{
623   device_set_input_line(device, 4, HOLD_LINE);
623   device->execute().set_input_line(4, HOLD_LINE);
624624}
625625
626626static MACHINE_CONFIG_START( ddealer, ddealer_state )
trunk/src/mame/drivers/magtouch.c
r17814r17815
199199
200200static MACHINE_START( magtouch )
201201{
202   device_set_irq_callback(machine.device("maincpu"), pcat_irq_callback);
202   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
203203
204204   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, magtouch_set_keyb_int);
205205
trunk/src/mame/drivers/suprridr.c
r17814r17815
103103{
104104   suprridr_state *state = device->machine().driver_data<suprridr_state>();
105105   if (state->m_nmi_enable)
106      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
106      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
107107}
108108
109109
trunk/src/mame/drivers/igs009.c
r17814r17815
737737{
738738   igs009_state *state = device->machine().driver_data<igs009_state>();
739739    if (state->m_nmi_enable & 0x80)
740      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
740      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
741741}
742742
743743static MACHINE_CONFIG_START( jingbell, igs009_state )
trunk/src/mame/drivers/spy.c
r17814r17815
3131   spy_state *state = device->machine().driver_data<spy_state>();
3232
3333   if (k052109_is_irq_enabled(state->m_k052109))
34      device_set_input_line(device, 0, HOLD_LINE);
34      device->execute().set_input_line(0, HOLD_LINE);
3535}
3636
3737READ8_MEMBER(spy_state::spy_bankedram1_r)
r17814r17815
324324      }
325325      spy_collision(machine());
326326//ZT
327      device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
327      m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
328328   }
329329
330330   m_old_3f90 = data;
r17814r17815
333333
334334WRITE8_MEMBER(spy_state::spy_sh_irqtrigger_w)
335335{
336   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
336   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
337337}
338338
339339WRITE8_MEMBER(spy_state::sound_bank_w)
r17814r17815
470470static void irqhandler( device_t *device, int linestate )
471471{
472472   spy_state *state = device->machine().driver_data<spy_state>();
473   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, linestate);
473   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, linestate);
474474}
475475
476476static const ym3812_interface ym3812_config =
r17814r17815
505505   state->m_generic_paletteram_8.allocate(0x800);
506506   memset(state->m_pmcram, 0, sizeof(state->m_pmcram));
507507
508   state->m_maincpu = machine.device("maincpu");
509   state->m_audiocpu = machine.device("audiocpu");
508   state->m_maincpu = machine.device<cpu_device>("maincpu");
509   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
510510   state->m_k052109 = machine.device("k052109");
511511   state->m_k051960 = machine.device("k051960");
512512   state->m_k007232_1 = machine.device("k007232_1");
trunk/src/mame/drivers/psikyo.c
r17814r17815
148148{
149149   psikyo_state *state = machine.driver_data<psikyo_state>();
150150   state->m_soundlatch = param;
151   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
151   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
152152   state->m_z80_nmi = 1;
153153}
154154
r17814r17815
382382static void sound_irq( device_t *device, int irq )
383383{
384384   psikyo_state *state = device->machine().driver_data<psikyo_state>();
385   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
385   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
386386}
387387
388388READ8_MEMBER(psikyo_state::psikyo_soundlatch_r)
r17814r17815
392392
393393WRITE8_MEMBER(psikyo_state::psikyo_clear_nmi_w)
394394{
395   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
395   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
396396   m_z80_nmi = 0;
397397}
398398
r17814r17815
10171017{
10181018   psikyo_state *state = machine.driver_data<psikyo_state>();
10191019
1020   state->m_audiocpu = machine.device("audiocpu");
1020   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
10211021
10221022   state->save_item(NAME(state->m_soundlatch));
10231023   state->save_item(NAME(state->m_z80_nmi));
r17814r17815
11781178static void irqhandler( device_t *device, int linestate )
11791179{
11801180   psikyo_state *state = device->machine().driver_data<psikyo_state>();
1181   device_set_input_line(state->m_audiocpu, 0, linestate ? ASSERT_LINE : CLEAR_LINE);
1181   state->m_audiocpu->set_input_line(0, linestate ? ASSERT_LINE : CLEAR_LINE);
11821182}
11831183
11841184static const ymf278b_interface ymf278b_config =
trunk/src/mame/drivers/dacholer.c
r17814r17815
205205WRITE8_MEMBER(dacholer_state::snd_w)
206206{
207207   soundlatch_byte_w(space, offset, data);
208   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
208   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
209209}
210210
211211WRITE8_MEMBER(dacholer_state::main_irq_ack_w)
212212{
213   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
213   m_maincpu->set_input_line(0, CLEAR_LINE);
214214}
215215
216216
r17814r17815
551551   dacholer_state *state = device->machine().driver_data<dacholer_state>();
552552   if (state->m_music_interrupt_enable == 1)
553553   {
554      device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x30);
554      device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x30);
555555   }
556556}
557557
r17814r17815
565565      state->m_msm_toggle ^= 1;
566566      if (state->m_msm_toggle == 0)
567567      {
568         device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0x38);
568         state->m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0x38);
569569      }
570570   }
571571}
trunk/src/mame/drivers/esd16.c
r17814r17815
8686   if (ACCESSING_BITS_0_7)
8787   {
8888      soundlatch_byte_w(space, 0, data & 0xff);
89      device_set_input_line(m_audio_cpu, 0, ASSERT_LINE);      // Generate an IRQ
90      device_spin_until_time(&space.device(), attotime::from_usec(50));   // Allow the other CPU to reply
89      m_audio_cpu->execute().set_input_line(0, ASSERT_LINE);      // Generate an IRQ
90      space.device().execute().spin_until_time(attotime::from_usec(50));   // Allow the other CPU to reply
9191   }
9292}
9393
r17814r17815
254254{
255255
256256   /* Clear IRQ only after reading the command, or some get lost */
257   device_set_input_line(m_audio_cpu, 0, CLEAR_LINE);
257   m_audio_cpu->execute().set_input_line(0, CLEAR_LINE);
258258   return soundlatch_byte_r(space, 0);
259259}
260260
trunk/src/mame/drivers/iqblock.c
r17814r17815
8282      return;
8383
8484   if((scanline % 32) == 16)
85      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
85      state->m_maincpu->set_input_line(0, HOLD_LINE);
8686   else if   ((scanline % 32) == 0)
87      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
87      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8888}
8989
9090
trunk/src/mame/drivers/funkyjet.c
r17814r17815
278278static void sound_irq( device_t *device, int state )
279279{
280280   funkyjet_state *driver_state = device->machine().driver_data<funkyjet_state>();
281   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
281   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
282282}
283283
284284static const ym2151_interface ym2151_config =
r17814r17815
301301{
302302   funkyjet_state *state = machine.driver_data<funkyjet_state>();
303303
304   state->m_maincpu = machine.device("maincpu");
305   state->m_audiocpu = machine.device("audiocpu");
304   state->m_maincpu = machine.device<cpu_device>("maincpu");
305   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
306306   state->m_deco_tilegen1 = machine.device("tilegen1");
307307}
308308
trunk/src/mame/drivers/xexex.c
r17814r17815
165165
166166   if (space.device().safe_pc() == 0x1158)
167167   {
168      device_spin_until_trigger(&space.device(), m_resume_trigger);
168      space.device().execute().spin_until_trigger(m_resume_trigger);
169169      m_suspension_active = 1;
170170   }
171171
r17814r17815
226226
227227WRITE16_MEMBER(xexex_state::sound_irq_w)
228228{
229   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
229   m_audiocpu->set_input_line(0, HOLD_LINE);
230230}
231231
232232READ16_MEMBER(xexex_state::sound_status_r)
r17814r17815
270270
271271      // IRQ 5 is the "object DMA end interrupt" and shouldn't be triggered
272272      // if object data isn't ready for DMA within the frame.
273      device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
273      state->m_maincpu->set_input_line(5, HOLD_LINE);
274274   }
275275}
276276
r17814r17815
289289   {
290290      // IRQ 6 is for test mode only
291291         if (state->m_cur_control2 & 0x0020)
292            device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
292            state->m_maincpu->set_input_line(6, HOLD_LINE);
293293   }
294294
295295   /* TODO: vblank is at 256! (enable CCU then have fun in fixing offsetted layers) */
r17814r17815
307307      // IRQ 4 is the V-blank interrupt. It controls color, sound and
308308      // vital game logics that shouldn't be interfered by frame-drop.
309309      if (state->m_cur_control2 & 0x0800)
310         device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
310         state->m_maincpu->set_input_line(4, HOLD_LINE);
311311   }
312312}
313313
r17814r17815
461461   state->membank("bank2")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
462462   state->membank("bank2")->set_entry(0);
463463
464   state->m_maincpu = machine.device("maincpu");
465   state->m_audiocpu = machine.device("audiocpu");
464   state->m_maincpu = machine.device<cpu_device>("maincpu");
465   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
466466   state->m_k053246 = machine.device("k053246");
467467   state->m_k053250 = machine.device<k053250_t>("k053250");
468468   state->m_k053251 = machine.device("k053251");
trunk/src/mame/drivers/ironhors.c
r17814r17815
2828   if (scanline == 240)
2929   {
3030      if (*state->m_interrupt_enable & 4)
31         device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
31         state->m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
3232   }
3333   else if (((scanline+16) % 64) == 0)
3434   {
3535      if (*state->m_interrupt_enable & 1)
36         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
36         state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3737   }
3838}
3939
4040WRITE8_MEMBER(ironhors_state::ironhors_sh_irqtrigger_w)
4141{
4242
43   device_set_input_line_and_vector(m_soundcpu, 0, HOLD_LINE, 0xff);
43   m_soundcpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
4444}
4545
4646WRITE8_MEMBER(ironhors_state::ironhors_filter_w)
r17814r17815
360360{
361361   ironhors_state *state = machine.driver_data<ironhors_state>();
362362
363   state->m_maincpu = machine.device("maincpu");
364   state->m_soundcpu = machine.device("soundcpu");
363   state->m_maincpu = machine.device<cpu_device>("maincpu");
364   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
365365
366366   state->save_item(NAME(state->m_palettebank));
367367   state->save_item(NAME(state->m_charbank));
r17814r17815
430430   if ((scanline % 2) == 1)
431431   {
432432      if (*state->m_interrupt_enable & 4)
433         device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, HOLD_LINE);
433         state->m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
434434   }
435435   else if ((scanline % 2) == 0)
436436   {
437437      if (*state->m_interrupt_enable & 1)
438         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
438         state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
439439   }
440440}
441441
442442READ8_MEMBER(ironhors_state::farwest_soundlatch_r)
443443{
444444
445   return soundlatch_byte_r(*m_soundcpu->memory().space(AS_PROGRAM), 0);
445   return soundlatch_byte_r(*m_soundcpu->space(AS_PROGRAM), 0);
446446}
447447
448448static const ym2203_interface farwest_ym2203_config =
trunk/src/mame/drivers/sliver.c
r17814r17815
467467{
468468   sliver_state *state = timer.machine().driver_data<sliver_state>();
469469
470   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
470   state->m_maincpu->set_input_line(3, HOLD_LINE);
471471}
472472
473473static MACHINE_CONFIG_START( sliver, sliver_state )
trunk/src/mame/drivers/mrflea.c
r17814r17815
8585{
8686   m_status |= 0x08; // pending command to IO CPU
8787   m_io = data;
88   device_set_input_line(m_subcpu, 0, HOLD_LINE );
88   m_subcpu->set_input_line(0, HOLD_LINE );
8989}
9090
9191READ8_MEMBER(mrflea_state::mrflea_main_r)
r17814r17815
122122   int scanline = param;
123123
124124   if ((scanline == 248) || (scanline == 248/2 && (state->m_status & 0x08)))
125      device_set_input_line(state->m_subcpu, 0, HOLD_LINE);
125      state->m_subcpu->set_input_line(0, HOLD_LINE);
126126}
127127
128128READ8_MEMBER(mrflea_state::mrflea_interrupt_type_r)
r17814r17815
332332{
333333   mrflea_state *state = machine.driver_data<mrflea_state>();
334334
335   state->m_maincpu = machine.device("maincpu");
336   state->m_subcpu = machine.device("sub");
335   state->m_maincpu = machine.device<cpu_device>("maincpu");
336   state->m_subcpu = machine.device<cpu_device>("sub");
337337
338338   state->save_item(NAME(state->m_gfx_bank));
339339   state->save_item(NAME(state->m_io));
trunk/src/mame/drivers/cps3.c
r17814r17815
22472247
22482248static INTERRUPT_GEN(cps3_vbl_interrupt)
22492249{
2250   device_set_input_line(device,12, ASSERT_LINE);
2250   device->execute().set_input_line(12, ASSERT_LINE);
22512251}
22522252
22532253static INTERRUPT_GEN(cps3_other_interrupt)
r17814r17815
22552255   // this seems to need to be periodic (see the life bar portraits in sfiii2
22562256   // but also triggered on certain dma events (or warzard locks up in attract)
22572257   // what is the REAL source of IRQ10??
2258   device_set_input_line(device,10, ASSERT_LINE);
2258   device->execute().set_input_line(10, ASSERT_LINE);
22592259}
22602260
22612261
trunk/src/mame/drivers/glass.c
r17814r17815
2424
2525   if (state->m_cause_interrupt)
2626   {
27      device_set_input_line(device, 6, HOLD_LINE);
27      device->execute().set_input_line(6, HOLD_LINE);
2828      state->m_cause_interrupt = 0;
2929   }
3030}
trunk/src/mame/drivers/jchan.c
r17814r17815
247247   int scanline = param;
248248
249249   if(scanline == 240)
250      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
250      state->m_maincpu->set_input_line(1, HOLD_LINE);
251251
252252   if(scanline == 11)
253      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
253      state->m_maincpu->set_input_line(2, HOLD_LINE);
254254
255255   if (state->m_irq_sub_enable)
256256   {
257257      if(scanline == 240)
258         device_set_input_line(state->m_subcpu, 1, HOLD_LINE);
258         state->m_subcpu->set_input_line(1, HOLD_LINE);
259259
260260      if(scanline == 249)
261         device_set_input_line(state->m_subcpu, 2, HOLD_LINE);
261         state->m_subcpu->set_input_line(2, HOLD_LINE);
262262
263263      if(scanline == 11)
264         device_set_input_line(state->m_subcpu, 3, HOLD_LINE);
264         state->m_subcpu->set_input_line(3, HOLD_LINE);
265265   }
266266}
267267
trunk/src/mame/drivers/bankp.c
r17814r17815
295295   bankp_state *state = device->machine().driver_data<bankp_state>();
296296
297297   if(state->m_nmi_mask)
298      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
298      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
299299}
300300
301301static MACHINE_CONFIG_START( bankp, bankp_state )
trunk/src/mame/drivers/tankbust.c
r17814r17815
323323   tankbust_state *state = device->machine().driver_data<tankbust_state>();
324324
325325   if(state->m_irq_mask)
326      device_set_input_line(device, 0, HOLD_LINE);
326      device->execute().set_input_line(0, HOLD_LINE);
327327}
328328
329329static MACHINE_CONFIG_START( tankbust, tankbust_state )
trunk/src/mame/drivers/pastelg.c
r17814r17815
5757
5858READ8_MEMBER(pastelg_state::pastelg_irq_ack_r)
5959{
60   device_set_input_line(&space.device(), 0, CLEAR_LINE);
60   space.device().execute().set_input_line(0, CLEAR_LINE);
6161   return 0;
6262}
6363
trunk/src/mame/drivers/seattle.c
r17814r17815
11501150         }
11511151
11521152         /* eat some time for those which poll this register */
1153         device_eat_cycles(&space.device(), 100);
1153         space.device().execute().eat_cycles(100);
11541154
11551155         if (LOG_TIMERS)
11561156            logerror("%08X:hires_timer_r = %08X\n", space.device().safe_pc(), result);
r17814r17815
13711371   m_cpu_stalled_mem_mask = mem_mask;
13721372
13731373   /* spin until we send the magic trigger */
1374   device_spin_until_trigger(&space.device(), 45678);
1374   space.device().execute().spin_until_trigger(45678);
13751375   if (LOG_DMA) logerror("%08X:Stalling CPU on voodoo (already stalled)\n", space.device().safe_pc());
13761376}
13771377
r17814r17815
13931393      else
13941394      {
13951395         if (LOG_DMA) logerror("%08X:Stalling CPU on voodoo\n", device->machine().device("maincpu")->safe_pc());
1396         device_spin_until_trigger(device->machine().device("maincpu"), 45678);
1396         device->machine().device("maincpu")->execute().spin_until_trigger(45678);
13971397      }
13981398   }
13991399
r17814r17815
16721672
16731673WRITE32_MEMBER(seattle_state::seattle_watchdog_w)
16741674{
1675   device_eat_cycles(&space.device(), 100);
1675   space.device().execute().eat_cycles(100);
16761676}
16771677
16781678
r17814r17815
17861786   device_t *device = machine().device("ide");
17871787   /* note that blitz times out if we don't have this cycle stealing */
17881788   if (offset == 0x3f6/4)
1789      device_eat_cycles(machine().device("maincpu"), 100);
1789      machine().device("maincpu")->execute().eat_cycles(100);
17901790   return ide_controller32_r(device, offset, mem_mask);
17911791}
17921792
trunk/src/mame/drivers/galastrm.c
r17814r17815
5252{
5353   galastrm_state *state = device->machine().driver_data<galastrm_state>();
5454   state->m_frame_counter ^= 1;
55   device_set_input_line(device, 5, HOLD_LINE);
55   device->execute().set_input_line(5, HOLD_LINE);
5656}
5757
5858static TIMER_CALLBACK( galastrm_interrupt6 )
trunk/src/mame/drivers/tetrisp2.c
r17814r17815
566566
567567   state->soundlatch_word_w(space, offset, data, mem_mask);
568568
569   device_set_input_line(machine().device("sub"), M68K_IRQ_6, HOLD_LINE);
569   machine().device("sub")->execute().set_input_line(M68K_IRQ_6, HOLD_LINE);
570570
571571   machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
572572}
trunk/src/mame/drivers/alpha68k.c
r17814r17815
315315   if (ACCESSING_BITS_0_7)
316316   {
317317      soundlatch_byte_w(space, 0, data);
318      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
318      m_audiocpu->set_input_line(0, HOLD_LINE);
319319   }
320320}
321321
r17814r17815
324324   if (ACCESSING_BITS_0_7)
325325   {
326326      soundlatch_byte_w(space, 0, data);
327      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
327      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
328328   }
329329}
330330//ZT
r17814r17815
18511851static void YM3812_irq( device_t *device, int param )
18521852{
18531853   alpha68k_state *state = device->machine().driver_data<alpha68k_state>();
1854   device_set_input_line(state->m_audiocpu, 0, (param) ? HOLD_LINE : CLEAR_LINE);
1854   state->m_audiocpu->set_input_line(0, (param) ? HOLD_LINE : CLEAR_LINE);
18551855}
18561856
18571857static const ym3812_interface ym3812_config =
r17814r17815
18671867{
18681868   alpha68k_state *state = machine.driver_data<alpha68k_state>();
18691869
1870   state->m_audiocpu = machine.device("audiocpu");
1870   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
18711871
18721872   state->save_item(NAME(state->m_trigstate));
18731873   state->save_item(NAME(state->m_deposits1));
r17814r17815
21282128   alpha68k_state *state = device->machine().driver_data<alpha68k_state>();
21292129
21302130   if(state->m_sound_nmi_mask)
2131      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
2131      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
21322132}
21332133
21342134static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
trunk/src/mame/drivers/tmaster.c
r17814r17815
907907   int scanline = param;
908908
909909   if(scanline == 0) // vblank, FIXME
910      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
910      state->m_maincpu->set_input_line(3, HOLD_LINE);
911911   else if((scanline % 16) == 0)
912      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
912      state->m_maincpu->set_input_line(1, HOLD_LINE);
913913
914914   // lev 2 triggered at the end of the blit
915915}
trunk/src/mame/drivers/namcos22.c
r17814r17815
13561356InitDSP( running_machine &machine )
13571357{
13581358   namcos22_state *state = machine.driver_data<namcos22_state>();
1359   device_set_input_line(state->m_master, INPUT_LINE_RESET, ASSERT_LINE); /* master DSP */
1360   device_set_input_line(state->m_slave, INPUT_LINE_RESET, ASSERT_LINE); /* slave DSP */
1361   device_set_input_line(state->m_mcu, INPUT_LINE_RESET, ASSERT_LINE); /* MCU */
1359   state->m_master->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* master DSP */
1360   state->m_slave->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* slave DSP */
1361   state->m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* MCU */
13621362} /* InitDSP */
13631363
13641364READ16_MEMBER(namcos22_state::pdp_status_r)
r17814r17815
15131513static void HaltSlaveDSP( running_machine &machine )
15141514{
15151515   namcos22_state *state = machine.driver_data<namcos22_state>();
1516   device_set_input_line(state->m_slave, INPUT_LINE_RESET, ASSERT_LINE);
1516   state->m_slave->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
15171517   namcos22_enable_slave_simulation(machine, 0);
15181518}
15191519
15201520static void EnableSlaveDSP( running_machine &machine )
15211521{
15221522//  namcos22_state *state = machine.driver_data<namcos22_state>();
1523//  device_set_input_line(state->m_slave, INPUT_LINE_RESET, CLEAR_LINE);
1523//  state->m_slave->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
15241524   namcos22_enable_slave_simulation(machine, 1);
15251525}
15261526
r17814r17815
16931693      state->m_mSerialDataSlaveToMasterCurrent = state->m_mSerialDataSlaveToMasterNext;
16941694
16951695      if(scanline == 480)
1696         device_set_input_line(state->m_master, TMS32025_INT0, HOLD_LINE);
1696         state->m_master->set_input_line(TMS32025_INT0, HOLD_LINE);
16971697      else if((scanline % 2) == 0)
16981698      {
1699         device_set_input_line(state->m_master, TMS32025_RINT, HOLD_LINE);
1700         device_set_input_line(state->m_master, TMS32025_XINT, HOLD_LINE);
1699         state->m_master->set_input_line(TMS32025_RINT, HOLD_LINE);
1700         state->m_master->set_input_line(TMS32025_XINT, HOLD_LINE);
17011701      }
17021702   }
17031703}
r17814r17815
17111711   {
17121712      if((scanline % 2) == 0)
17131713      {
1714         device_set_input_line(state->m_slave, TMS32025_RINT, HOLD_LINE);
1715         device_set_input_line(state->m_slave, TMS32025_XINT, HOLD_LINE);
1714         state->m_slave->set_input_line(TMS32025_RINT, HOLD_LINE);
1715         state->m_slave->set_input_line(TMS32025_XINT, HOLD_LINE);
17161716      }
17171717   }
17181718}
r17814r17815
21092109   {
21102110      // vblank
21112111      m_irq_state &= ~1;
2112      device_set_input_line(m_maincpu, nthbyte(m_system_controller, 0x00) & 7, CLEAR_LINE);
2112      m_maincpu->set_input_line(nthbyte(m_system_controller, 0x00) & 7, CLEAR_LINE);
21132113   }
21142114
21152115   // irq level / enable irqs
r17814r17815
21202120      newreg = data >> 24 & 7;
21212121      if (m_irq_state & 1 && oldreg != newreg)
21222122      {
2123         device_set_input_line(m_maincpu, oldreg, CLEAR_LINE);
2123         m_maincpu->set_input_line(oldreg, CLEAR_LINE);
21242124         if (newreg)
2125            device_set_input_line(m_maincpu, newreg, ASSERT_LINE);
2125            m_maincpu->set_input_line(newreg, ASSERT_LINE);
21262126         else
21272127            m_irq_state &= ~1;
21282128      }
r17814r17815
21322132   if (offset == 0x16/4 && mem_mask & 0x0000ff00)
21332133   {
21342134      if (data & 0x0000ff00)
2135         device_set_input_line(m_mcu, INPUT_LINE_RESET, CLEAR_LINE);
2135         m_mcu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
21362136      else
2137         device_set_input_line(m_mcu, INPUT_LINE_RESET, ASSERT_LINE);
2137         m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
21382138   }
21392139
21402140   // dsp control
r17814r17815
21462146      {
21472147         if( newreg == 0 )
21482148         { /* disable DSPs */
2149            device_set_input_line(m_master, INPUT_LINE_RESET, ASSERT_LINE); /* master DSP */
2150            device_set_input_line(m_slave, INPUT_LINE_RESET, ASSERT_LINE); /* slave DSP */
2149            m_master->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* master DSP */
2150            m_slave->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* slave DSP */
21512151            namcos22_enable_slave_simulation(machine(), 0);
21522152            m_mbEnableDspIrqs = 0;
21532153         }
21542154         else if( newreg == 1 )
21552155         { /* enable dsp and rendering subsystem */
2156            device_set_input_line(m_master, INPUT_LINE_RESET, CLEAR_LINE);
2156            m_master->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
21572157            namcos22_enable_slave_simulation(machine(), 1);
21582158            m_mbEnableDspIrqs = 1;
21592159         }
21602160         else if( newreg == 0xff )
21612161         { /* used to upload game-specific code to master/slave dsps */
2162            device_set_input_line(m_master, INPUT_LINE_RESET, CLEAR_LINE);
2162            m_master->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
21632163            m_mbEnableDspIrqs = 0;
21642164         }
21652165      }
r17814r17815
21892189   {
21902190      // vblank irq
21912191      state->m_irq_state |= 1;
2192      device_set_input_line(device, nthbyte(state->m_system_controller, 0x00) & 7, ASSERT_LINE);
2192      device->execute().set_input_line(nthbyte(state->m_system_controller, 0x00) & 7, ASSERT_LINE);
21932193   }
21942194}
21952195
r17814r17815
22392239   {
22402240      // vblank
22412241      m_irq_state &= ~1;
2242      device_set_input_line(m_maincpu, nthbyte(m_system_controller, 0x04) & 7, CLEAR_LINE);
2242      m_maincpu->set_input_line(nthbyte(m_system_controller, 0x04) & 7, CLEAR_LINE);
22432243   }
22442244
22452245   // irq level / enable irqs
r17814r17815
22502250      newreg = data >> 24 & 7;
22512251      if (m_irq_state & 1 && oldreg != newreg)
22522252      {
2253         device_set_input_line(m_maincpu, oldreg, CLEAR_LINE);
2253         m_maincpu->set_input_line(oldreg, CLEAR_LINE);
22542254         if (newreg)
2255            device_set_input_line(m_maincpu, newreg, ASSERT_LINE);
2255            m_maincpu->set_input_line(newreg, ASSERT_LINE);
22562256         else
22572257            m_irq_state &= ~1;
22582258      }
r17814r17815
22622262   if (offset == 0x1a/4 && mem_mask & 0xff000000)
22632263   {
22642264      if (data & 0xff000000)
2265         device_set_input_line(m_mcu, INPUT_LINE_RESET, CLEAR_LINE);
2265         m_mcu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
22662266      else
2267         device_set_input_line(m_mcu, INPUT_LINE_RESET, ASSERT_LINE);
2267         m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
22682268   }
22692269
22702270   // dsp control
r17814r17815
22762276      {
22772277         if( newreg == 0 )
22782278         { /* disable DSPs */
2279            device_set_input_line(m_master, INPUT_LINE_RESET, ASSERT_LINE); /* master DSP */
2280            device_set_input_line(m_slave, INPUT_LINE_RESET, ASSERT_LINE); /* slave DSP */
2279            m_master->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* master DSP */
2280            m_slave->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); /* slave DSP */
22812281            namcos22_enable_slave_simulation(machine(), 0);
22822282            m_mbEnableDspIrqs = 0;
22832283         }
22842284         else if( newreg == 1 )
22852285         { /* enable dsp and rendering subsystem */
2286            device_set_input_line(m_master, INPUT_LINE_RESET, CLEAR_LINE);
2286            m_master->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
22872287            namcos22_enable_slave_simulation(machine(), 1);
22882288            m_mbEnableDspIrqs = 1;
22892289         }
22902290         else if( newreg == 0xff )
22912291         { /* used to upload game-specific code to master/slave dsps */
2292            device_set_input_line(m_master, INPUT_LINE_RESET, CLEAR_LINE);
2292            m_master->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
22932293            m_mbEnableDspIrqs = 0;
22942294         }
22952295      }
r17814r17815
23692369   {
23702370      // vblank irq
23712371      state->m_irq_state |= 1;
2372      device_set_input_line(device, nthbyte(state->m_system_controller, 0x04) & 7, ASSERT_LINE);
2372      device->execute().set_input_line(nthbyte(state->m_system_controller, 0x04) & 7, ASSERT_LINE);
23732373   }
23742374}
23752375
r17814r17815
29302930
29312931   /* TODO: real sources of these */
29322932   if(scanline == 480)
2933      device_set_input_line(state->m_mcu, M37710_LINE_IRQ0, HOLD_LINE);
2933      state->m_mcu->set_input_line(M37710_LINE_IRQ0, HOLD_LINE);
29342934   else if(scanline == 500)
2935      device_set_input_line(state->m_mcu, M37710_LINE_ADC, HOLD_LINE);
2935      state->m_mcu->set_input_line(M37710_LINE_ADC, HOLD_LINE);
29362936   else if(scanline == 0)
2937      device_set_input_line(state->m_mcu, M37710_LINE_IRQ2, HOLD_LINE);
2937      state->m_mcu->set_input_line(M37710_LINE_IRQ2, HOLD_LINE);
29382938}
29392939
29402940static MACHINE_RESET(namcos22)
r17814r17815
54115411{
54125412   if ((space.device().safe_pc() == 0xc12d) && (!(m_su_82 & 0xff00)))
54135413   {
5414      device_spin_until_interrupt(&space.device());
5414      space.device().execute().spin_until_interrupt();
54155415   }
54165416
54175417   return m_su_82;
r17814r17815
54275427{
54285428   if ((space.device().safe_pc() == 0xc12a) && (!(m_su_82 & 0xff00)))
54295429   {
5430      device_spin_until_interrupt(&space.device());
5430      space.device().execute().spin_until_interrupt();
54315431   }
54325432
54335433   return m_su_82;
r17814r17815
54385438{
54395439   if (((space.device().safe_pc() == 0xc0df) || (space.device().safe_pc() == 0xc101)) && (!(m_su_82 & 0xff00)))
54405440   {
5441      device_spin_until_interrupt(&space.device());
5441      space.device().execute().spin_until_interrupt();
54425442   }
54435443
54445444   return m_su_82;
trunk/src/mame/drivers/flyball.c
r17814r17815
4343   UINT8    m_potsense;
4444
4545   /* devices */
46   device_t *m_maincpu;
46   cpu_device *m_maincpu;
4747   DECLARE_READ8_MEMBER(flyball_input_r);
4848   DECLARE_READ8_MEMBER(flyball_scanline_r);
4949   DECLARE_READ8_MEMBER(flyball_potsense_r);
r17814r17815
373373{
374374   flyball_state *state = machine.driver_data<flyball_state>();
375375
376   state->m_maincpu = machine.device("maincpu");
376   state->m_maincpu = machine.device<cpu_device>("maincpu");
377377
378378   state->save_item(NAME(state->m_pitcher_vert));
379379   state->save_item(NAME(state->m_pitcher_horz));
trunk/src/mame/drivers/galaxold.c
r17814r17815
23892389   galaxold_state *state = device->machine().driver_data<galaxold_state>();
23902390
23912391   if(state->m_nmi_mask)
2392      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
2392      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
23932393}
23942394
23952395static MACHINE_CONFIG_DERIVED( harem, galaxold_base )
trunk/src/mame/drivers/unkhorse.c
r17814r17815
192192
193193static INTERRUPT_GEN( horse_interrupt )
194194{
195   device_set_input_line(device, I8085_RST75_LINE, ASSERT_LINE);
196   device_set_input_line(device, I8085_RST75_LINE, CLEAR_LINE);
195   device->execute().set_input_line(I8085_RST75_LINE, ASSERT_LINE);
196   device->execute().set_input_line(I8085_RST75_LINE, CLEAR_LINE);
197197}
198198
199199static MACHINE_CONFIG_START( horse, horse_state )
trunk/src/mame/drivers/pturn.c
r17814r17815
463463   pturn_state *state = device->machine().driver_data<pturn_state>();
464464   if(state->m_nmi_sub)
465465   {
466      device_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE);
466      device->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE);
467467   }
468468}
469469
r17814r17815
472472   pturn_state *state = device->machine().driver_data<pturn_state>();
473473   if (state->m_nmi_main)
474474   {
475      device_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE);
475      device->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE);
476476   }
477477}
478478
trunk/src/mame/drivers/ssv.c
r17814r17815
325325{
326326   ssv_state *state = machine.driver_data<ssv_state>();
327327   state->m_requested_int = 0;
328   device_set_irq_callback(machine.device("maincpu"), ssv_irq_callback);
328   machine.device("maincpu")->execute().set_irq_acknowledge_callback(ssv_irq_callback);
329329   state->membank("bank1")->set_base(state->memregion("user1")->base());
330330}
331331
trunk/src/mame/drivers/jubilee.c
r17814r17815
154154static INTERRUPT_GEN( jubileep_interrupt )
155155{
156156   /* doesn't seems to work properly. need to set level1 interrupts */
157   device_set_input_line_and_vector(device, 0, ASSERT_LINE, 3);//2=nmi  3,4,5,6
157   device->execute().set_input_line_and_vector(0, ASSERT_LINE, 3);//2=nmi  3,4,5,6
158158}
159159
160160
trunk/src/mame/drivers/cop01.c
r17814r17815
7373WRITE8_MEMBER(cop01_state::cop01_sound_command_w)
7474{
7575   soundlatch_byte_w(space, offset, data);
76   device_set_input_line(m_audiocpu, 0, ASSERT_LINE );
76   m_audiocpu->set_input_line(0, ASSERT_LINE );
7777}
7878
7979READ8_MEMBER(cop01_state::cop01_sound_command_r)
r17814r17815
104104WRITE8_MEMBER(cop01_state::cop01_irq_ack_w)
105105{
106106
107   device_set_input_line(m_maincpu, 0, CLEAR_LINE );
107   m_maincpu->set_input_line(0, CLEAR_LINE );
108108}
109109
110110READ8_MEMBER(cop01_state::cop01_sound_irq_ack_w)
111111{
112112
113   device_set_input_line(m_audiocpu, 0, CLEAR_LINE );
113   m_audiocpu->set_input_line(0, CLEAR_LINE );
114114   return 0;
115115}
116116
trunk/src/mame/drivers/circusc.c
r17814r17815
9595
9696WRITE8_MEMBER(circusc_state::circusc_sh_irqtrigger_w)
9797{
98   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
98   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
9999}
100100
101101WRITE8_MEMBER(circusc_state::circusc_coin_counter_w)
r17814r17815
352352   circusc_state *state = device->machine().driver_data<circusc_state>();
353353
354354   if(state->m_irq_mask)
355      device_set_input_line(device, 0, HOLD_LINE);
355      device->execute().set_input_line(0, HOLD_LINE);
356356}
357357
358358static MACHINE_CONFIG_START( circusc, circusc_state )
trunk/src/mame/drivers/mikie.c
r17814r17815
7070   if (m_last_irq == 0 && data == 1)
7171   {
7272      // setting bit 0 low then high triggers IRQ on the sound CPU
73      device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
73      m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
7474   }
7575
7676   m_last_irq = data;
r17814r17815
271271   mikie_state *state = device->machine().driver_data<mikie_state>();
272272
273273   if(state->m_irq_mask)
274      device_set_input_line(device, 0, HOLD_LINE);
274      device->execute().set_input_line(0, HOLD_LINE);
275275}
276276
277277static MACHINE_CONFIG_START( mikie, mikie_state )
trunk/src/mame/drivers/midvunit.c
r17814r17815
17201720
17211721READ32_MEMBER(midvunit_state::generic_speedup_r)
17221722{
1723   device_eat_cycles(&space.device(), 100);
1723   space.device().execute().eat_cycles(100);
17241724   return m_generic_speedup[offset];
17251725}
17261726
trunk/src/mame/drivers/kingpin.c
r17814r17815
5656WRITE8_MEMBER(kingpin_state::sound_nmi_w)
5757{
5858   soundlatch_byte_w(space, 0, data);
59   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
59   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
6060}
6161
6262static ADDRESS_MAP_START( kingpin_program_map, AS_PROGRAM, 8, kingpin_state )
r17814r17815
144144
145145WRITE_LINE_MEMBER(kingpin_state::vdp_interrupt)
146146{
147   device_set_input_line(m_maincpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
147   m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
148148}
149149
150150static TMS9928A_INTERFACE(kingpin_tms9928a_interface)
trunk/src/mame/drivers/opwolf.c
r17814r17815
693693static void irq_handler( device_t *device, int irq )
694694{
695695   opwolf_state *state = device->machine().driver_data<opwolf_state>();
696   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
696   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
697697}
698698
699699
trunk/src/mame/drivers/pangofun.c
r17814r17815
187187
188188static MACHINE_START( pangofun )
189189{
190   device_set_irq_callback(machine.device("maincpu"), pcat_irq_callback);
190   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pcat_irq_callback);
191191   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, pangofun_set_keyb_int);
192192   kbdc8042_init(machine, &at8042);
193193}
trunk/src/mame/drivers/suna16.c
r17814r17815
760760   int scanline = param;
761761
762762   if(scanline == 240)
763      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
763      state->m_maincpu->set_input_line(1, HOLD_LINE);
764764
765765   if(scanline == 0)
766      device_set_input_line(state->m_maincpu, 2, HOLD_LINE); // does RAM to sprite buffer copy here
766      state->m_maincpu->set_input_line(2, HOLD_LINE); // does RAM to sprite buffer copy here
767767}
768768
769769static MACHINE_CONFIG_START( bssoccer, suna16_state )
trunk/src/mame/drivers/firebeat.c
r17814r17815
19411941   // IRQ 2: Main board UART
19421942   // IRQ 4: ATAPI
19431943
1944   device_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE);
1944   device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
19451945}
19461946
19471947static MACHINE_RESET( firebeat )
trunk/src/mame/drivers/bigevglf.c
r17814r17815
112112   bigevglf_state *state = machine.driver_data<bigevglf_state>();
113113
114114   if (state->m_sound_nmi_enable)
115      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
115      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
116116   else
117117      state->m_pending_nmi = 1;
118118   state->m_sound_state &= ~1;
r17814r17815
140140   m_sound_nmi_enable = 1;
141141   if (m_pending_nmi)
142142   {
143      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
143      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
144144      m_pending_nmi = 0;
145145   }
146146}
r17814r17815
420420{
421421   bigevglf_state *state = machine.driver_data<bigevglf_state>();
422422
423   state->m_audiocpu = machine.device("audiocpu");
423   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
424424   state->m_mcu = machine.device("mcu");
425425
426426   state->save_item(NAME(state->m_vidram_bank));
trunk/src/mame/drivers/bagman.c
r17814r17815
467467   bagman_state *state = device->machine().driver_data<bagman_state>();
468468
469469   if(state->m_irq_mask)
470      device_set_input_line(device, 0, HOLD_LINE);
470      device->execute().set_input_line(0, HOLD_LINE);
471471}
472472
473473
trunk/src/mame/drivers/inufuku.c
r17814r17815
9191
9292      m_pending_command = 1;
9393      soundlatch_byte_w(space, 0, data & 0xff);
94      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
94      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9595   }
9696}
9797
r17814r17815
296296static void irqhandler( device_t *device, int irq )
297297{
298298   inufuku_state *state = device->machine().driver_data<inufuku_state>();
299   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
299   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
300300}
301301
302302static const ym2610_interface ym2610_config =
r17814r17815
319319   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x8000);
320320   state->membank("bank1")->set_entry(0);
321321
322   state->m_audiocpu = machine.device("audiocpu");
322   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
323323
324324   state->save_item(NAME(state->m_pending_command));
325325   state->save_item(NAME(state->m_bg_scrollx));
trunk/src/mame/drivers/cbuster.c
r17814r17815
4040
4141    case 2: /* Sound CPU write */
4242      soundlatch_byte_w(space, 0, data & 0xff);
43      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
43      m_audiocpu->set_input_line(0, HOLD_LINE);
4444       return;
4545
4646   case 4: /* Protection, maybe this is a PAL on the board?
r17814r17815
265265static void sound_irq(device_t *device, int state)
266266{
267267   cbuster_state *driver_state = device->machine().driver_data<cbuster_state>();
268   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
268   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
269269}
270270
271271static const ym2151_interface ym2151_config =
r17814r17815
306306{
307307   cbuster_state *state = machine.driver_data<cbuster_state>();
308308
309   state->m_maincpu = machine.device("maincpu");
310   state->m_audiocpu = machine.device("audiocpu");
309   state->m_maincpu = machine.device<cpu_device>("maincpu");
310   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
311311   state->m_deco_tilegen1 = machine.device("tilegen1");
312312   state->m_deco_tilegen2 = machine.device("tilegen2");
313313
trunk/src/mame/drivers/ghosteo.c
r17814r17815
565565   if (pc == 0x3001c0e4 || pc == 0x3001c0d8)
566566   {
567567      // BnB Arcade
568      device_spin_until_time(&space.device(), attotime::from_usec(20));
568      space.device().execute().spin_until_time(attotime::from_usec(20));
569569   }
570570   else if (pc == 0x3002b580 || pc == 0x3002b550)
571571   {
572572      // Happy Tour
573      device_spin_until_time(&space.device(), attotime::from_usec(20));
573      space.device().execute().spin_until_time(attotime::from_usec(20));
574574   }
575575   //else
576576   //  printf("speedup %08x %08x\n", pc, ret);
trunk/src/mame/drivers/ojankohs.c
r17814r17815
8989
9090   /* generate an NMI if we're out of data */
9191   if (!state->m_vclk_left)
92      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
92      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9393}
9494
9595WRITE8_MEMBER(ojankohs_state::ojankoc_ctrl_w)
r17814r17815
793793{
794794   ojankohs_state *state = machine.driver_data<ojankohs_state>();
795795
796   state->m_maincpu = machine.device("maincpu");
796   state->m_maincpu = machine.device<cpu_device>("maincpu");
797797   state->m_msm = machine.device("msm");
798798
799799   state->save_item(NAME(state->m_gfxreg));
trunk/src/mame/drivers/n8080.c
r17814r17815
434434   int state = n8080->m_inte ? ASSERT_LINE : CLEAR_LINE;
435435
436436   /* V7 = 1, V6 = 0 */
437   device_set_input_line_and_vector(n8080->m_maincpu, INPUT_LINE_IRQ0, state, 0xcf);
437   n8080->m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, state, 0xcf);
438438}
439439
440440static TIMER_DEVICE_CALLBACK( rst2_tick )
r17814r17815
443443   int state = n8080->m_inte ? ASSERT_LINE : CLEAR_LINE;
444444
445445   /* vblank */
446   device_set_input_line_and_vector(n8080->m_maincpu, INPUT_LINE_IRQ0, state, 0xd7);
446   n8080->m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, state, 0xd7);
447447}
448448
449449WRITE_LINE_MEMBER(n8080_state::n8080_inte_callback)
r17814r17815
457457   if (data & I8085_STATUS_INTA)
458458   {
459459      /* interrupt acknowledge */
460      device_set_input_line(device, INPUT_LINE_IRQ0, CLEAR_LINE);
460      device->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
461461   }
462462}
463463
r17814r17815
473473{
474474   n8080_state *state = machine.driver_data<n8080_state>();
475475
476   state->m_maincpu = machine.device("maincpu");
476   state->m_maincpu = machine.device<cpu_device>("maincpu");
477477
478478   state->save_item(NAME(state->m_shift_data));
479479   state->save_item(NAME(state->m_shift_bits));
trunk/src/mame/drivers/kncljoe.c
r17814r17815
3939   if ((data & 0x80) == 0)
4040      soundlatch_byte_w(space, 0, data & 0x7f);
4141   else
42      device_set_input_line(m_soundcpu, 0, ASSERT_LINE);
42      m_soundcpu->set_input_line(0, ASSERT_LINE);
4343}
4444
4545
r17814r17815
9797
9898WRITE8_MEMBER(kncljoe_state::sound_irq_ack_w)
9999{
100   device_set_input_line(m_soundcpu, 0, CLEAR_LINE);
100   m_soundcpu->set_input_line(0, CLEAR_LINE);
101101}
102102
103103WRITE8_MEMBER(kncljoe_state::unused_w)
r17814r17815
259259
260260static INTERRUPT_GEN (sound_nmi)
261261{
262   device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
262   device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
263263}
264264
265265static MACHINE_START( kncljoe )
266266{
267267   kncljoe_state *state = machine.driver_data<kncljoe_state>();
268268
269   state->m_soundcpu = machine.device("soundcpu");
269   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
270270
271271   state->save_item(NAME(state->m_port1));
272272   state->save_item(NAME(state->m_port2));
trunk/src/mame/drivers/3do.c
r17814r17815
133133{
134134   _3do_state *state = machine.driver_data<_3do_state>();
135135
136   state->m_maincpu = downcast<legacy_cpu_device*>( machine.device("maincpu") );
136   state->m_maincpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("maincpu") );
137137
138138   state->membank("bank2")->set_base(state->memregion("user1")->base());
139139
trunk/src/mame/drivers/deco_ld.c
r17814r17815
249249WRITE8_MEMBER(deco_ld_state::decold_sound_cmd_w)
250250{
251251   soundlatch_byte_w(space, 0, data);
252   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
252   m_audiocpu->set_input_line(0, HOLD_LINE);
253253}
254254
255255/* same as Burger Time HW */
r17814r17815
297297static INTERRUPT_GEN ( sound_interrupt )
298298{
299299   deco_ld_state *state = device->machine().driver_data<deco_ld_state>();
300   if (!state->m_nmimask) device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
300   if (!state->m_nmimask) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
301301}
302302
303303
r17814r17815
318318
319319INPUT_CHANGED_MEMBER(deco_ld_state::coin_inserted)
320320{
321   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
321   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
322322}
323323
324324static INPUT_PORTS_START( begas )
trunk/src/mame/drivers/turbo.c
r17814r17815
393393   /* bit   6 = /IOREQ on the 2nd CPU */
394394   /* bit   7 = /INT on the 2nd CPU */
395395   m_buckrog_fchg = data & 0x07;
396   device_set_input_line(m_subcpu, 0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
396   m_subcpu->set_input_line(0, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
397397}
398398
399399
trunk/src/mame/drivers/cvs.c
r17814r17815
228228
229229static INTERRUPT_GEN( cvs_main_cpu_interrupt )
230230{
231   device_set_input_line_vector(device, 0, 0x03);
231   device->execute().set_input_line_vector(0, 0x03);
232232   generic_pulse_irq_line(device, 0, 1);
233233
234234   cvs_scroll_stars(device->machine());
r17814r17815
237237
238238static void cvs_slave_cpu_interrupt( device_t *cpu, int state )
239239{
240   device_set_input_line_vector(cpu, 0, 0x03);
241   //device_set_input_line(cpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
242   device_set_input_line(cpu, 0, state ? HOLD_LINE : CLEAR_LINE);
240   cpu->execute().set_input_line_vector(0, 0x03);
241   //cpu->execute().set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
242   cpu->execute().set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
243243}
244244
245245
r17814r17815
999999   start_393hz_timer(machine);
10001000
10011001   /* set devices */
1002   state->m_maincpu = machine.device("maincpu");
1003   state->m_audiocpu = machine.device("audiocpu");
1002   state->m_maincpu = machine.device<cpu_device>("maincpu");
1003   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
10041004   state->m_speech = machine.device("speech");
10051005   state->m_dac3 = machine.device<dac_device>("dac3");
10061006   state->m_tms = machine.device("tms");
trunk/src/mame/drivers/trvquest.c
r17814r17815
150150static TIMER_CALLBACK( via_irq_delayed )
151151{
152152   gameplan_state *state = machine.driver_data<gameplan_state>();
153   device_set_input_line(state->m_maincpu, 0, param);
153   state->m_maincpu->set_input_line(0, param);
154154}
155155
156156static void via_irq( device_t *device, int state )
r17814r17815
187187{
188188   gameplan_state *state = machine.driver_data<gameplan_state>();
189189
190   state->m_maincpu = machine.device("maincpu");
190   state->m_maincpu = machine.device<cpu_device>("maincpu");
191191
192192   /* register for save states */
193193   state->save_item(NAME(state->m_video_x));
trunk/src/mame/drivers/tnzs.c
r17814r17815
808808WRITE8_MEMBER(tnzs_state::tnzsb_sound_command_w)
809809{
810810   soundlatch_byte_w(space, offset, data);
811   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
811   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
812812}
813813
814814static ADDRESS_MAP_START( tnzsb_cpu1_map, AS_PROGRAM, 8, tnzs_state )
r17814r17815
15691569static void irqhandler( device_t *device, int irq )
15701570{
15711571   tnzs_state *state = device->machine().driver_data<tnzs_state>();
1572   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE);
1572   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE);
15731573}
15741574
15751575static const ym2203_interface kageki_ym2203_interface =
trunk/src/mame/drivers/rohga.c
r17814r17815
118118READ16_MEMBER(rohga_state::rohga_irq_ack_r)
119119{
120120
121   device_set_input_line(m_maincpu, 6, CLEAR_LINE);
121   m_maincpu->set_input_line(6, CLEAR_LINE);
122122   return 0;
123123}
124124
r17814r17815
127127   /* This might actually do more, nitrobal for example sets 0xca->0xffff->0x80 at startup then writes 7 all the time
128128       except when a credit is inserted (writes 6 twice).
129129       Wizard Fire / Dark Seal 2 just writes 1 all the time, so I just don't trust it much for now... -AS */
130   device_set_input_line(m_maincpu, 6, CLEAR_LINE);
130   m_maincpu->set_input_line(6, CLEAR_LINE);
131131}
132132
133133/**********************************************************************************/
r17814r17815
720720static void sound_irq(device_t *device, int state)
721721{
722722   rohga_state *driver_state = device->machine().driver_data<rohga_state>();
723   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
723   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
724724}
725725
726726WRITE8_MEMBER(rohga_state::sound_bankswitch_w)
trunk/src/mame/drivers/plygonet.c
r17814r17815
156156/* irq 7 does nothing (it jsrs to a rts and then rte) */
157157static INTERRUPT_GEN(polygonet_interrupt)
158158{
159   device_set_input_line(device, M68K_IRQ_5, HOLD_LINE);
159   device->execute().set_input_line(M68K_IRQ_5, HOLD_LINE);
160160}
161161
162162/* sound CPU communications */
r17814r17815
557557
558558static INTERRUPT_GEN(audio_interrupt)
559559{
560   device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
560   device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
561561}
562562
563563static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, polygonet_state )
trunk/src/mame/drivers/nemesis.c
r17814r17815
6161   nemesis_state *state = device->machine().driver_data<nemesis_state>();
6262
6363   if (state->m_irq_on)
64      device_set_input_line(device, 1, HOLD_LINE);
64      device->execute().set_input_line(1, HOLD_LINE);
6565}
6666
6767static INTERRUPT_GEN( blkpnthr_interrupt )
r17814r17815
6969   nemesis_state *state = device->machine().driver_data<nemesis_state>();
7070
7171   if (state->m_irq_on)
72      device_set_input_line(device, 2, HOLD_LINE);
72      device->execute().set_input_line(2, HOLD_LINE);
7373}
7474
7575static TIMER_DEVICE_CALLBACK( konamigt_interrupt )
r17814r17815
7878   int scanline = param;
7979
8080   if (scanline == 240 && state->m_irq_on && (timer.machine().primary_screen->frame_number() & 1) == 0)
81      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
81      state->m_maincpu->set_input_line(1, HOLD_LINE);
8282
8383   if (scanline == 0 && state->m_irq2_on)
84      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
84      state->m_maincpu->set_input_line(2, HOLD_LINE);
8585}
8686
8787static TIMER_DEVICE_CALLBACK( gx400_interrupt )
r17814r17815
9090   int scanline = param;
9191
9292   if (scanline == 240 && state->m_irq1_on && (timer.machine().primary_screen->frame_number() & 1) == 0)
93      device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
93      state->m_maincpu->set_input_line(1, HOLD_LINE);
9494
9595   if (scanline == 0 && state->m_irq2_on)
96      device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
96      state->m_maincpu->set_input_line(2, HOLD_LINE);
9797
9898   if (scanline == 120 && state->m_irq4_on)
99      device_set_input_line(state->m_maincpu, 4, HOLD_LINE);
99      state->m_maincpu->set_input_line(4, HOLD_LINE);
100100}
101101
102102
r17814r17815
14901490{
14911491/* Interrupts _are_ generated, I wonder where they go.. */
14921492// nemesis_state *driver_state = device->machine().driver_data<nemesis_state>();
1493// device_set_input_line(driver_state->audiocpu, 0, HOLD_LINE);
1493// driver_state->audiocpu->set_input_line(0, HOLD_LINE);
14941494}
14951495
14961496static const ym2151_interface ym2151_config =
trunk/src/mame/drivers/jackie.c
r17814r17815
566566      return;
567567
568568   if((scanline % 64) == 32 && state->m_irq_enable)
569      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
569      state->m_maincpu->set_input_line(0, HOLD_LINE);
570570   else if   ((scanline % 64) == 0 && state->m_nmi_enable)
571      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
571      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
572572}
573573
574574static MACHINE_CONFIG_START( jackie, jackie_state )
trunk/src/mame/drivers/warriorb.c
r17814r17815
427427static void irqhandler( device_t *device, int irq )
428428{
429429   warriorb_state *state = device->machine().driver_data<warriorb_state>();
430   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
430   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
431431}
432432
433433static const ym2610_interface ym2610_config =
r17814r17815
514514
515515   state->membank("bank10")->configure_entries(0, 8, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
516516
517   state->m_maincpu = machine.device("maincpu");
518   state->m_audiocpu = machine.device("audiocpu");
517   state->m_maincpu = machine.device<cpu_device>("maincpu");
518   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
519519   state->m_tc0140syt = machine.device("tc0140syt");
520520   state->m_tc0100scn_1 = machine.device("tc0100scn_1");
521521   state->m_tc0100scn_2 = machine.device("tc0100scn_2");
trunk/src/mame/drivers/goal92.c
r17814r17815
2020   if (ACCESSING_BITS_8_15)
2121   {
2222      soundlatch_byte_w(space, 0, (data >> 8) & 0xff);
23      device_set_input_line(m_audiocpu, 0, HOLD_LINE);
23      m_audiocpu->set_input_line(0, HOLD_LINE);
2424   }
2525}
2626
r17814r17815
213213{
214214   /* NMI writes to MSM ports *only*! -AS */
215215   //goal92_state *state = device->machine().driver_data<goal92_state>();
216   //device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE);
216   //state->m_audiocpu->set_input_line(INPUT_LINE_NMI, irq ? ASSERT_LINE : CLEAR_LINE);
217217}
218218
219219static const ym2203_interface ym2203_config =
r17814r17815
234234   state->m_adpcm_toggle^= 1;
235235
236236   if (state->m_adpcm_toggle)
237      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
237      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
238238}
239239
240240static const msm5205_interface msm5205_config =
r17814r17815
296296
297297   state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000);
298298
299   state->m_audiocpu = machine.device("audiocpu");
299   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
300300
301301   state->save_item(NAME(state->m_fg_bank));
302302   state->save_item(NAME(state->m_msm5205next));
trunk/src/mame/drivers/bombjack.c
r17814r17815
354354   bombjack_state *state = device->machine().driver_data<bombjack_state>();
355355
356356   if(state->m_nmi_mask)
357      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
357      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
358358}
359359
360360static MACHINE_CONFIG_START( bombjack, bombjack_state )
trunk/src/mame/drivers/trucocl.c
r17814r17815
127127   trucocl_state *state = device->machine().driver_data<trucocl_state>();
128128
129129   if(state->m_irq_mask)
130      device_set_input_line(device, 0, HOLD_LINE);
130      device->execute().set_input_line(0, HOLD_LINE);
131131
132132}
133133
trunk/src/mame/drivers/blockhl.c
r17814r17815
3535   blockhl_state *state = device->machine().driver_data<blockhl_state>();
3636
3737   if (k052109_is_irq_enabled(state->m_k052109) && state->m_rombank == 0)   /* kludge to prevent crashes */
38      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
38      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
3939}
4040
4141READ8_MEMBER(blockhl_state::bankedram_r)
r17814r17815
5858
5959WRITE8_MEMBER(blockhl_state::blockhl_sh_irqtrigger_w)
6060{
61   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
61   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
6262}
6363
6464
r17814r17815
193193
194194   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
195195
196   state->m_maincpu = machine.device("maincpu");
197   state->m_audiocpu = machine.device("audiocpu");
196   state->m_maincpu = machine.device<cpu_device>("maincpu");
197   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
198198   state->m_k052109 = machine.device("k052109");
199199   state->m_k051960 = machine.device("k051960");
200200
trunk/src/mame/drivers/gcpinbal.c
r17814r17815
5050static TIMER_CALLBACK( gcpinbal_interrupt1 )
5151{
5252   gcpinbal_state *state = machine.driver_data<gcpinbal_state>();
53   device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
53   state->m_maincpu->set_input_line(1, HOLD_LINE);
5454}
5555
5656#ifdef UNUSED_FUNCTION
r17814r17815
6060   // IRQ3 is from the M6585
6161//  if (!ADPCM_playing(0))
6262   {
63      device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
63      state->m_maincpu->set_input_line(3, HOLD_LINE);
6464   }
6565}
6666#endif
r17814r17815
7171
7272   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(500), FUNC(gcpinbal_interrupt1));
7373//  device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(1000), FUNC(gcpinbal_interrupt3));
74   device_set_input_line(device, 4, HOLD_LINE);
74   device->execute().set_input_line(4, HOLD_LINE);
7575}
7676
7777
trunk/src/mame/drivers/bottom9.c
r17814r17815
2525   bottom9_state *state = device->machine().driver_data<bottom9_state>();
2626
2727   if (k052109_is_irq_enabled(state->m_k052109))
28      device_set_input_line(device, 0, HOLD_LINE);
28      device->execute().set_input_line(0, HOLD_LINE);
2929}
3030
3131READ8_MEMBER(bottom9_state::k052109_051960_r)
r17814r17815
135135
136136WRITE8_MEMBER(bottom9_state::bottom9_sh_irqtrigger_w)
137137{
138   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
138   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
139139}
140140
141141static INTERRUPT_GEN( bottom9_sound_interrupt )
142142{
143143   bottom9_state *state = device->machine().driver_data<bottom9_state>();
144144   if (state->m_nmienable)
145      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
145      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
146146}
147147
148148WRITE8_MEMBER(bottom9_state::nmi_enable_w)
r17814r17815
326326
327327   state->membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
328328
329   state->m_maincpu = machine.device("maincpu");
330   state->m_audiocpu = machine.device("audiocpu");
329   state->m_maincpu = machine.device<cpu_device>("maincpu");
330   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
331331   state->m_k052109 = machine.device("k052109");
332332   state->m_k051960 = machine.device("k051960");
333333   state->m_k051316 = machine.device("k051316");
trunk/src/mame/drivers/megazone.c
r17814r17815
5757
5858WRITE8_MEMBER(megazone_state::megazone_i8039_irq_w)
5959{
60   device_set_input_line(m_daccpu, 0, ASSERT_LINE);
60   m_daccpu->set_input_line(0, ASSERT_LINE);
6161}
6262
6363WRITE8_MEMBER(megazone_state::i8039_irqen_and_status_w)
6464{
6565
6666   if ((data & 0x80) == 0)
67      device_set_input_line(m_daccpu, 0, CLEAR_LINE);
67      m_daccpu->set_input_line(0, CLEAR_LINE);
6868   m_i8039_status = (data & 0x70) >> 4;
6969}
7070
r17814r17815
251251   megazone_state *state = device->machine().driver_data<megazone_state>();
252252
253253   if(state->m_irq_mask)
254      device_set_input_line(device, 0, HOLD_LINE);
254      device->execute().set_input_line(0, HOLD_LINE);
255255}
256256
257257
trunk/src/mame/drivers/40love.c
r17814r17815
235235{
236236   fortyl_state *state = machine.driver_data<fortyl_state>();
237237   if (state->m_sound_nmi_enable)
238      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
238      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
239239   else
240240      state->m_pending_nmi = 1;
241241}
r17814r17815
256256   m_sound_nmi_enable = 1;
257257   if (m_pending_nmi)
258258   {
259      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
259      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
260260      m_pending_nmi = 0;
261261   }
262262}
r17814r17815
978978{
979979   fortyl_state *state = machine.driver_data<fortyl_state>();
980980
981   state->m_audiocpu = machine.device("audiocpu");
981   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
982982
983983   /* video */
984984   state->save_item(NAME(state->m_pix1));
trunk/src/mame/drivers/galaga.c
r17814r17815
16441644   galaga_state *state = device->machine().driver_data<galaga_state>();
16451645
16461646   if(state->m_main_irq_mask)
1647      device_set_input_line(device, 0, ASSERT_LINE);
1647      device->execute().set_input_line(0, ASSERT_LINE);
16481648}
16491649
16501650static INTERRUPT_GEN( sub_vblank_irq )
r17814r17815
16521652   galaga_state *state = device->machine().driver_data<galaga_state>();
16531653
16541654   if(state->m_sub_irq_mask)
1655      device_set_input_line(device, 0, ASSERT_LINE);
1655      device->execute().set_input_line(0, ASSERT_LINE);
16561656}
16571657
16581658const namco_06xx_config bosco_namco_06xx_0_intf =
trunk/src/mame/drivers/istellar.c
r17814r17815
317317static INTERRUPT_GEN( vblank_callback_istellar )
318318{
319319   /* Interrupt presumably comes from VBlank */
320   device_set_input_line(device, 0, HOLD_LINE);
320   device->execute().set_input_line(0, HOLD_LINE);
321321
322322   /* Interrupt presumably comes from the LDP's status strobe */
323323   device->machine().device("sub")->execute().set_input_line(0, ASSERT_LINE);
trunk/src/mame/drivers/lasso.c
r17814r17815
4040{
4141
4242   /* coin insertion causes an NMI */
43   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
43   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
4444}
4545
4646
r17814r17815
4848WRITE8_MEMBER(lasso_state::sound_command_w)
4949{
5050   soundlatch_byte_w(space, offset, data);
51   generic_pulse_irq_line(m_audiocpu->execute(), 0, 1);
51   generic_pulse_irq_line(*m_audiocpu, 0, 1);
5252}
5353
5454WRITE8_MEMBER(lasso_state::pinbo_sound_command_w)
5555{
5656   soundlatch_byte_w(space, offset, data);
57   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
57   m_audiocpu->set_input_line(0, HOLD_LINE);
5858}
5959
6060READ8_MEMBER(lasso_state::sound_status_r)
r17814r17815
479479{
480480   lasso_state *state = machine.driver_data<lasso_state>();
481481
482   state->m_maincpu = machine.device("maincpu");
483   state->m_audiocpu = machine.device("audiocpu");
482   state->m_maincpu = machine.device<cpu_device>("maincpu");
483   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
484484   
485485   state->save_item(NAME(state->m_gfxbank));
486486}
trunk/src/mame/drivers/sbowling.c
r17814r17815
165165   int scanline = param;
166166
167167   if(scanline == 256)
168      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xcf); /* RST 08h */
168      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf); /* RST 08h */
169169
170170   if(scanline == 128)
171      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xd7); /* RST 10h */
171      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xd7); /* RST 10h */
172172
173173}
174174
trunk/src/mame/drivers/othunder.c
r17814r17815
252252static void update_irq( running_machine &machine )
253253{
254254   othunder_state *state = machine.driver_data<othunder_state>();
255   device_set_input_line(state->m_maincpu, 6, state->m_ad_irq ? ASSERT_LINE : CLEAR_LINE);
256   device_set_input_line(state->m_maincpu, 5, state->m_vblank_irq ? ASSERT_LINE : CLEAR_LINE);
255   state->m_maincpu->set_input_line(6, state->m_ad_irq ? ASSERT_LINE : CLEAR_LINE);
256   state->m_maincpu->set_input_line(5, state->m_vblank_irq ? ASSERT_LINE : CLEAR_LINE);
257257}
258258
259259WRITE16_MEMBER(othunder_state::irq_ack_w)
r17814r17815
630630static void irqhandler( device_t *device, int irq )
631631{
632632   othunder_state *state = device->machine().driver_data<othunder_state>();
633   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
633   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
634634}
635635
636636static const ym2610_interface ym2610_config =
r17814r17815
676676
677677   state->membank("bank10")->configure_entries(0, 4, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
678678
679   state->m_maincpu = machine.device("maincpu");
680   state->m_audiocpu = machine.device("audiocpu");
679   state->m_maincpu = machine.device<cpu_device>("maincpu");
680   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
681681   state->m_eeprom = machine.device<eeprom_device>("eeprom");
682682   state->m_tc0220ioc = machine.device("tc0220ioc");
683683   state->m_tc0100scn = machine.device("tc0100scn");
trunk/src/mame/drivers/quasar.c
r17814r17815
270270
271271static INTERRUPT_GEN( quasar_interrupt )
272272{
273   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03);
273   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
274274}
275275
276276static const s2636_interface s2636_0_config =
trunk/src/mame/drivers/psikyo4.c
r17814r17815
193193
194194static INTERRUPT_GEN(psikyosh_interrupt)
195195{
196   device_set_input_line(device, 4, HOLD_LINE);
196   device->execute().set_input_line(4, HOLD_LINE);
197197}
198198
199199CUSTOM_INPUT_MEMBER(psikyo4_state::system_port_r)
r17814r17815
651651static void irqhandler( device_t *device, int linestate )
652652{
653653   psikyo4_state *state = device->machine().driver_data<psikyo4_state>();
654   device_set_input_line(state->m_maincpu, 12, linestate ? ASSERT_LINE : CLEAR_LINE);
654   state->m_maincpu->set_input_line(12, linestate ? ASSERT_LINE : CLEAR_LINE);
655655}
656656
657657static const ymf278b_interface ymf278b_config =
r17814r17815
664664{
665665   psikyo4_state *state = machine.driver_data<psikyo4_state>();
666666
667   state->m_maincpu = machine.device("maincpu");
667   state->m_maincpu = machine.device<cpu_device>("maincpu");
668668
669669   state->save_item(NAME(state->m_oldbrt1));
670670   state->save_item(NAME(state->m_oldbrt2));
trunk/src/mame/drivers/nss.c
r17814r17815
556556
557557   m_cart_sel = (data & 0xc) >> 2;
558558
559   device_set_input_line(m_maincpu, INPUT_LINE_HALT, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
560   device_set_input_line(m_soundcpu, INPUT_LINE_HALT, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
561   device_set_input_line(m_maincpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
562   device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
559   m_maincpu->set_input_line(INPUT_LINE_HALT, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
560   m_soundcpu->set_input_line(INPUT_LINE_HALT, (data & 2) ? CLEAR_LINE : ASSERT_LINE);
561   m_maincpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
562   m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? CLEAR_LINE : ASSERT_LINE);
563563   /* also reset the device */
564564   if((data & 1) == 0)
565565      spc700_reset(machine().device("spc700"));
r17814r17815
821821   nss_state *state = device->machine().driver_data<nss_state>();
822822
823823   if(state->m_nmi_enable)
824      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
824      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
825825}
826826
827827static MACHINE_RESET( nss )
r17814r17815
831831   MACHINE_RESET_CALL( snes );
832832
833833   /* start with both CPUs disabled */
834   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, ASSERT_LINE);
835   device_set_input_line(state->m_soundcpu, INPUT_LINE_RESET, ASSERT_LINE);
834   state->m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
835   state->m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
836836
837837   state->m_game_over_flag = 1;
838838   state->m_joy_flag = 1;
trunk/src/mame/drivers/rollrace.c
r17814r17815
213213   rollrace_state *state = device->machine().driver_data<rollrace_state>();
214214
215215   if(state->m_nmi_mask)
216      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
216      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
217217}
218218
219219static INTERRUPT_GEN( sound_timer_irq )
r17814r17815
221221   rollrace_state *state = device->machine().driver_data<rollrace_state>();
222222
223223   if(state->m_sound_nmi_mask)
224      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
224      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
225225}
226226
227227static MACHINE_CONFIG_START( rollrace, rollrace_state )
trunk/src/mame/drivers/popper.c
r17814r17815
140140
141141READ8_MEMBER(popper_state::popper_soundcpu_nmi_r)
142142{
143   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
143   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
144144   return 0;
145145}
146146
r17814r17815
314314{
315315   popper_state *state = machine.driver_data<popper_state>();
316316
317   state->m_audiocpu = machine.device("audiocpu");
317   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
318318
319319   state->save_item(NAME(state->m_flipscreen));
320320   state->save_item(NAME(state->m_e002));
r17814r17815
335335   popper_state *state = device->machine().driver_data<popper_state>();
336336
337337   if(state->m_nmi_mask)
338      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
338      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
339339}
340340
341341
trunk/src/mame/drivers/ladyfrog.c
r17814r17815
6767
6868WRITE8_MEMBER(ladyfrog_state::sound_cpu_reset_w)
6969{
70   device_set_input_line(m_audiocpu, INPUT_LINE_RESET, (data & 1 ) ? ASSERT_LINE : CLEAR_LINE);
70   m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 1 ) ? ASSERT_LINE : CLEAR_LINE);
7171}
7272
7373static TIMER_CALLBACK( nmi_callback )
r17814r17815
7575   ladyfrog_state *state = machine.driver_data<ladyfrog_state>();
7676
7777   if (state->m_sound_nmi_enable)
78      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
78      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7979   else
8080      state->m_pending_nmi = 1;
8181}
r17814r17815
9797   m_sound_nmi_enable = 1;
9898   if (m_pending_nmi)
9999   {
100      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
100      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
101101      m_pending_nmi = 0;
102102   }
103103}
r17814r17815
280280{
281281   ladyfrog_state *state = machine.driver_data<ladyfrog_state>();
282282
283   state->m_audiocpu = machine.device("audiocpu");
283   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
284284
285285   state->save_item(NAME(state->m_tilebank));
286286   state->save_item(NAME(state->m_palette_bank));
trunk/src/mame/drivers/djboy.c
r17814r17815
153153   m_data_to_beast = data;
154154   m_z80_to_beast_full = 1;
155155   m_beast_int0_l = 0;
156   device_set_input_line(m_beast, INPUT_LINE_IRQ0, ASSERT_LINE);
156   m_beast->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
157157}
158158
159159READ8_MEMBER(djboy_state::beast_data_r)
r17814r17815
172172
173173WRITE8_MEMBER(djboy_state::trigger_nmi_on_cpu0)
174174{
175   device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
175   m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
176176}
177177
178178WRITE8_MEMBER(djboy_state::cpu0_bankswitch_w)
r17814r17815
233233WRITE8_MEMBER(djboy_state::trigger_nmi_on_sound_cpu2)
234234{
235235   soundlatch_byte_w(space, 0, data);
236   device_set_input_line(m_cpu2, INPUT_LINE_NMI, PULSE_LINE);
236   m_cpu2->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
237237} /* trigger_nmi_on_sound_cpu2 */
238238
239239WRITE8_MEMBER(djboy_state::cpu2_bankswitch_w)
r17814r17815
336336   if (data == 0xff)
337337   {
338338      m_beast_int0_l = 1;
339      device_set_input_line(m_beast, INPUT_LINE_IRQ0, CLEAR_LINE);
339      m_beast->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
340340   }
341341
342342   m_beast_p1 = data;
r17814r17815
380380{
381381
382382   m_beast_p3 = data;
383   device_set_input_line(m_cpu1, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
383   m_cpu1->execute().set_input_line(INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
384384}
385385/* Program/data maps are defined in the 8051 core */
386386
r17814r17815
534534   state->membank("bank3")->configure_entries(3, 5,  &CPU2[0x10000], 0x4000);
535535   state->membank("bank4")->configure_entry(0, &MAIN[0x10000]); /* unsure if/how this area is banked */
536536
537   state->m_maincpu = machine.device("maincpu");
537   state->m_maincpu = machine.device<cpu_device>("maincpu");
538538   state->m_cpu1 = machine.device("cpu1");
539539   state->m_cpu2 = machine.device("cpu2");
540540   state->m_beast = machine.device("beast");
trunk/src/mame/drivers/tumblep.c
r17814r17815
7171WRITE16_MEMBER(tumblep_state::tumblep_sound_w)
7272{
7373   soundlatch_byte_w(space, 0, data & 0xff);
74   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
74   m_audiocpu->set_input_line(0, HOLD_LINE);
7575}
7676
7777#ifdef UNUSED_FUNCTION
r17814r17815
275275static void sound_irq(device_t *device, int state)
276276{
277277   tumblep_state *driver_state = device->machine().driver_data<tumblep_state>();
278   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
278   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
279279}
280280
281281static const ym2151_interface ym2151_config =
r17814r17815
298298{
299299   tumblep_state *state = machine.driver_data<tumblep_state>();
300300
301   state->m_maincpu = machine.device("maincpu");
302   state->m_audiocpu = machine.device("audiocpu");
301   state->m_maincpu = machine.device<cpu_device>("maincpu");
302   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
303303   state->m_deco_tilegen1 = machine.device("tilegen1");
304304}
305305
trunk/src/mame/drivers/dietgo.c
r17814r17815
163163static void sound_irq(device_t *device, int state)
164164{
165165   dietgo_state *driver_state = device->machine().driver_data<dietgo_state>();
166   device_set_input_line(driver_state->m_audiocpu, 1, state); /* IRQ 2 */
166   driver_state->m_audiocpu->set_input_line(1, state); /* IRQ 2 */
167167}
168168
169169static const ym2151_interface ym2151_config =
r17814r17815
199199{
200200   dietgo_state *state = machine.driver_data<dietgo_state>();
201201
202   state->m_maincpu = machine.device("maincpu");
203   state->m_audiocpu = machine.device("audiocpu");
202   state->m_maincpu = machine.device<cpu_device>("maincpu");
203   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
204204   state->m_deco_tilegen1 = machine.device("tilegen1");
205205}
206206
trunk/src/mame/drivers/kingobox.c
r17814r17815
2323
2424WRITE8_MEMBER(kingofb_state::video_interrupt_w)
2525{
26   device_set_input_line_and_vector(m_video_cpu, 0, HOLD_LINE, 0xff);
26   m_video_cpu->execute().set_input_line_and_vector(0, HOLD_LINE, 0xff);
2727}
2828
2929WRITE8_MEMBER(kingofb_state::sprite_interrupt_w)
3030{
31   device_set_input_line_and_vector(m_sprite_cpu, 0, HOLD_LINE, 0xff);
31   m_sprite_cpu->execute().set_input_line_and_vector(0, HOLD_LINE, 0xff);
3232}
3333
3434WRITE8_MEMBER(kingofb_state::scroll_interrupt_w)
r17814r17815
4040WRITE8_MEMBER(kingofb_state::sound_command_w)
4141{
4242   soundlatch_byte_w(space, 0, data);
43   device_set_input_line_and_vector(m_audio_cpu, 0, HOLD_LINE, 0xff);
43   m_audio_cpu->execute().set_input_line_and_vector(0, HOLD_LINE, 0xff);
4444}
4545
4646
r17814r17815
447447   kingofb_state *state = device->machine().driver_data<kingofb_state>();
448448
449449   if (state->m_nmi_enable)
450      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
450      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
451451}
452452
453453static MACHINE_START( kingofb )
trunk/src/mame/drivers/blockout.c
r17814r17815
8080   if (ACCESSING_BITS_0_7)
8181   {
8282      soundlatch_byte_w(space, offset, data & 0xff);
83      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
83      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8484   }
8585}
8686
8787WRITE16_MEMBER(blockout_state::blockout_irq6_ack_w)
8888{
8989
90   device_set_input_line(m_maincpu, 6, CLEAR_LINE);
90   m_maincpu->set_input_line(6, CLEAR_LINE);
9191}
9292
9393WRITE16_MEMBER(blockout_state::blockout_irq5_ack_w)
9494{
9595
96   device_set_input_line(m_maincpu, 5, CLEAR_LINE);
96   m_maincpu->set_input_line(5, CLEAR_LINE);
9797}
9898
9999/*************************************
r17814r17815
263263static void blockout_irq_handler(device_t *device, int irq)
264264{
265265   blockout_state *state = device->machine().driver_data<blockout_state>();
266   device_set_input_line_and_vector(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE, 0xff);
266   state->m_audiocpu->set_input_line_and_vector(0, irq ? ASSERT_LINE : CLEAR_LINE, 0xff);
267267}
268268
269269static const ym2151_interface ym2151_config =
r17814r17815
282282{
283283   blockout_state *state = machine.driver_data<blockout_state>();
284284
285   state->m_maincpu = machine.device("maincpu");
286   state->m_audiocpu = machine.device("audiocpu");
285   state->m_maincpu = machine.device<cpu_device>("maincpu");
286   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
287287
288288   state->save_item(NAME(state->m_color));
289289}
r17814r17815
301301   int scanline = param;
302302
303303   if(scanline == 248) // vblank-out irq
304      device_set_input_line(state->m_maincpu, 6, ASSERT_LINE);
304      state->m_maincpu->set_input_line(6, ASSERT_LINE);
305305
306306   if(scanline == 0) // vblank-in irq or directly tied to coin inputs (TODO: check)
307      device_set_input_line(state->m_maincpu, 5, ASSERT_LINE);
307      state->m_maincpu->set_input_line(5, ASSERT_LINE);
308308}
309309
310310static MACHINE_CONFIG_START( blockout, blockout_state )
trunk/src/mame/drivers/tsamurai.c
r17814r17815
4949static INTERRUPT_GEN( samurai_interrupt )
5050{
5151   tsamurai_state *state = device->machine().driver_data<tsamurai_state>();
52   if (state->m_nmi_enabled) device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
52   if (state->m_nmi_enabled) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5353}
5454
5555READ8_MEMBER(tsamurai_state::unknown_d803_r)
r17814r17815
270270static INTERRUPT_GEN( vsgongf_sound_interrupt )
271271{
272272   tsamurai_state *state = device->machine().driver_data<tsamurai_state>();
273   if (state->m_vsgongf_sound_nmi_enabled) device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
273   if (state->m_vsgongf_sound_nmi_enabled) device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
274274}
275275
276276/* what are these, protection of some kind? */
trunk/src/mame/drivers/ettrivia.c
r17814r17815
291291static INTERRUPT_GEN( ettrivia_interrupt )
292292{
293293   if( device->machine().root_device().ioport("COIN")->read() & 0x01 )
294      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
294      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
295295   else
296      device_set_input_line(device, 0, HOLD_LINE);
296      device->execute().set_input_line(0, HOLD_LINE);
297297}
298298
299299static MACHINE_CONFIG_START( ettrivia, ettrivia_state )
trunk/src/mame/drivers/f1gp.c
r17814r17815
7272   {
7373      m_pending_command = 1;
7474      soundlatch_byte_w(space, offset, data & 0xff);
75      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
75      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7676   }
7777}
7878
r17814r17815
394394static void irqhandler( device_t *device, int irq )
395395{
396396   f1gp_state *state = device->machine().driver_data<f1gp_state>();
397   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
397   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
398398}
399399
400400static const ym2610_interface ym2610_config =
r17814r17815
431431
432432   state->membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x8000);
433433
434   state->m_audiocpu = machine.device("audiocpu");
434   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
435435   state->m_k053936 = machine.device("k053936");
436436
437437   MACHINE_START_CALL(f1gpb);
trunk/src/mame/drivers/tx1.c
r17814r17815
8383/* Periodic Z80 interrupt */
8484static INTERRUPT_GEN( z80_irq )
8585{
86   device_set_input_line(device, 0, HOLD_LINE);
86   device->execute().set_input_line(0, HOLD_LINE);
8787}
8888
8989READ16_MEMBER(tx1_state::z80_shared_r)
trunk/src/mame/drivers/pingpong.c
r17814r17815
6262
6363   if (scanline == 240)
6464   {
65      if (state->m_intenable & 0x04) device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
65      if (state->m_intenable & 0x04) state->m_maincpu->set_input_line(0, HOLD_LINE);
6666   }
6767   else if ((scanline % 32) == 0)
6868   {
69      if (state->m_intenable & 0x08) device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
69      if (state->m_intenable & 0x08) state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
7070   }
7171}
7272
r17814r17815
7777
7878   if (scanline == 240)
7979   {
80      if (state->m_intenable & 0x04) device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
80      if (state->m_intenable & 0x04) state->m_maincpu->set_input_line(0, HOLD_LINE);
8181   }
8282   else if (scanline == 0)
8383   {
84      if (state->m_intenable & 0x08) device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
84      if (state->m_intenable & 0x08) state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
8585   }
8686}
8787
trunk/src/mame/drivers/aztarac.c
r17814r17815
3737
3838static MACHINE_RESET( aztarac )
3939{
40   device_set_irq_callback(machine.device("maincpu"), aztarac_irq_callback);
40   machine.device("maincpu")->execute().set_irq_acknowledge_callback(aztarac_irq_callback);
4141}
4242
4343
trunk/src/mame/drivers/retofinv.c
r17814r17815
333333   retofinv_state *state = device->machine().driver_data<retofinv_state>();
334334
335335   if(state->m_main_irq_mask)
336      device_set_input_line(device, 0, ASSERT_LINE);
336      device->execute().set_input_line(0, ASSERT_LINE);
337337}
338338
339339static INTERRUPT_GEN( sub_vblank_irq )
r17814r17815
341341   retofinv_state *state = device->machine().driver_data<retofinv_state>();
342342
343343   if(state->m_sub_irq_mask)
344      device_set_input_line(device, 0, ASSERT_LINE);
344      device->execute().set_input_line(0, ASSERT_LINE);
345345}
346346
347347
trunk/src/mame/drivers/meadows.c
r17814r17815
214214   meadows_state *state = device->machine().driver_data<meadows_state>();
215215    /* fake something toggling the sense input line of the S2650 */
216216   state->m_main_sense_state ^= 1;
217   device_set_input_line(device, 1, state->m_main_sense_state ? ASSERT_LINE : CLEAR_LINE);
217   device->execute().set_input_line(1, state->m_main_sense_state ? ASSERT_LINE : CLEAR_LINE);
218218}
219219
220220
r17814r17815
229229{
230230   meadows_state *state = device->machine().driver_data<meadows_state>();
231231   state->m_main_sense_state++;
232   device_set_input_line(device, 1, (state->m_main_sense_state & 0x40) ? ASSERT_LINE : CLEAR_LINE );
232   device->execute().set_input_line(1, (state->m_main_sense_state & 0x40) ? ASSERT_LINE : CLEAR_LINE );
233233}
234234
235235
r17814r17815
312312   meadows_state *state = device->machine().driver_data<meadows_state>();
313313    /* fake something toggling the sense input line of the S2650 */
314314   state->m_audio_sense_state ^= 1;
315   device_set_input_line(device, 1, state->m_audio_sense_state ? ASSERT_LINE : CLEAR_LINE);
315   device->execute().set_input_line(1, state->m_audio_sense_state ? ASSERT_LINE : CLEAR_LINE);
316316}
317317
318318
trunk/src/mame/drivers/spoker.c
r17814r17815
523523{
524524//  spoker_state *state = device->machine().driver_data<spoker_state>();
525525
526   device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
526   device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
527527}
528528
529529static MACHINE_CONFIG_START( spoker, spoker_state )
trunk/src/mame/drivers/aeroboto.c
r17814r17815
4444   aeroboto_state *state = device->machine().driver_data<aeroboto_state>();
4545
4646   if (!state->m_disable_irq)
47      device_set_input_line(device, 0, ASSERT_LINE);
47      device->execute().set_input_line(0, ASSERT_LINE);
4848   else
4949      state->m_disable_irq--;
5050}
trunk/src/mame/drivers/firetrap.c
r17814r17815
246246   {
247247      m_i8751_current_command = 0;
248248      m_i8751_return = 0xff; /* This value is XOR'd and must equal 0 */
249      device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, 0xff);
249      m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
250250      return;
251251   }
252252
r17814r17815
297297   }
298298
299299   /* Signal main cpu task is complete */
300   device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, 0xff);
300   m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
301301   m_i8751_current_command=data;
302302}
303303
304304WRITE8_MEMBER(firetrap_state::firetrap_sound_command_w)
305305{
306306   soundlatch_byte_w(space, offset, data);
307   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
307   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
308308}
309309
310310WRITE8_MEMBER(firetrap_state::firetrap_sound_2400_w)
r17814r17815
327327
328328   state->m_adpcm_toggle ^= 1;
329329   if (state->m_sound_irq_enable && state->m_adpcm_toggle)
330      device_set_input_line(state->m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
330      state->m_audiocpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
331331}
332332
333333WRITE8_MEMBER(firetrap_state::firetrap_adpcm_data_w)
r17814r17815
418418      if (m_coin_command_pending && !m_i8751_current_command)
419419      {
420420         m_i8751_return = m_coin_command_pending;
421         device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, 0xff);
421         m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
422422         m_coin_command_pending = 0;
423423      }
424424   }
r17814r17815
586586   firetrap_state *state = device->machine().driver_data<firetrap_state>();
587587
588588   if (state->m_nmi_enable)
589      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
589      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
590590}
591591
592592
r17814r17815
596596   UINT8 *MAIN = state->memregion("maincpu")->base();
597597   UINT8 *SOUND = state->memregion("audiocpu")->base();
598598
599   state->m_maincpu = machine.device("maincpu");
600   state->m_audiocpu = machine.device("audiocpu");
599   state->m_maincpu = machine.device<cpu_device>("maincpu");
600   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
601601   state->m_msm = machine.device("msm");
602602
603603   state->membank("bank1")->configure_entries(0, 4, &MAIN[0x10000], 0x4000);
trunk/src/mame/drivers/thedeep.c
r17814r17815
232232
233233   /* bit 0 0->1 transition IRQ0 to main */
234234   if((!(m_mcu_p3_reg & 0x01)) && data & 0x01)
235      device_set_input_line(m_maincpu, 0, HOLD_LINE);
235      m_maincpu->set_input_line(0, HOLD_LINE);
236236
237237   /* bit 6 0->1 transition INT1 IRQ ACK */
238238   if((!(m_mcu_p3_reg & 0x40)) && data & 0x40)
239      device_set_input_line(m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
239      m_mcu->set_input_line(MCS51_INT1_LINE, CLEAR_LINE);
240240
241241   /* bit 7 0->1 transition INT0 IRQ ACK */
242242   if((!(m_mcu_p3_reg & 0x80)) && data & 0x80)
243      device_set_input_line(m_mcu, MCS51_INT0_LINE, CLEAR_LINE);
243      m_mcu->set_input_line(MCS51_INT0_LINE, CLEAR_LINE);
244244
245245   m_mcu_p3_reg = data;
246246   logerror("P3 %02x\n",data);
r17814r17815
426426            state->m_protection_irq = 1;
427427      }
428428      if (state->m_protection_irq)
429         device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
429         state->m_maincpu->set_input_line(0, HOLD_LINE);
430430   }
431431   else if(scanline == 0)
432432   {
433433      if (state->m_nmi_enable)
434434      {
435         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
436         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
435         state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
436         state->m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
437437      }
438438   }
439439}
r17814r17815
442442{
443443   thedeep_state *state = device->machine().driver_data<thedeep_state>();
444444
445   device_set_input_line(state->m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
445   state->m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE);
446446}
447447
448448static MACHINE_CONFIG_START( thedeep, thedeep_state )
trunk/src/mame/drivers/oneshot.c
r17814r17815
332332static void irq_handler(device_t *device, int irq)
333333{
334334   oneshot_state *state = device->machine().driver_data<oneshot_state>();
335   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
335   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
336336}
337337
338338static const ym3812_interface ym3812_config =
r17814r17815
344344{
345345   oneshot_state *state = machine.driver_data<oneshot_state>();
346346
347   state->m_maincpu = machine.device("maincpu");
348   state->m_audiocpu = machine.device("audiocpu");
347   state->m_maincpu = machine.device<cpu_device>("maincpu");
348   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
349349
350350   state->save_item(NAME(state->m_gun_x_p1));
351351   state->save_item(NAME(state->m_gun_y_p1));
trunk/src/mame/drivers/zr107.c
r17814r17815
715715*/
716716static INTERRUPT_GEN( zr107_vblank )
717717{
718   device_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE);
718   device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
719719}
720720
721721static MACHINE_RESET( zr107 )
trunk/src/mame/drivers/flipjack.c
r17814r17815
261261
262262READ8_MEMBER(flipjack_state::flipjack_soundlatch_r)
263263{
264   device_set_input_line(m_audiocpu, 0, CLEAR_LINE);
264   m_audiocpu->set_input_line(0, CLEAR_LINE);
265265   return m_soundlatch;
266266}
267267
268268WRITE8_MEMBER(flipjack_state::flipjack_soundlatch_w)
269269{
270270   m_soundlatch = data;
271   device_set_input_line(m_audiocpu, 0, ASSERT_LINE);
271   m_audiocpu->set_input_line(0, ASSERT_LINE);
272272}
273273
274274WRITE8_MEMBER(flipjack_state::flipjack_sound_nmi_ack_w)
275275{
276   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
276   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
277277}
278278
279279WRITE8_MEMBER(flipjack_state::flipjack_portc_w)
r17814r17815
284284INPUT_CHANGED_MEMBER(flipjack_state::flipjack_coin)
285285{
286286   if (newval)
287      device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
287      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
288288}
289289
290290
trunk/src/mame/drivers/bladestl.c
r17814r17815
9191{
9292
9393   soundlatch_byte_w(space, offset, data);
94   device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
94   m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
9595   //logerror("(sound) write %02x\n", data);
9696}
9797
r17814r17815
308308
309309   state->membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x2000);
310310
311   state->m_audiocpu = machine.device("audiocpu");
311   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
312312   state->m_k007342 = machine.device("k007342");
313313   state->m_k007420 = machine.device("k007420");
314314
trunk/src/mame/drivers/srumbler.c
r17814r17815
5757   int scanline = param;
5858
5959   if (scanline == 248)
60      device_set_input_line(state->m_maincpu,0,HOLD_LINE);
60      state->m_maincpu->set_input_line(0,HOLD_LINE);
6161
6262   if (scanline == 0)
63      device_set_input_line(state->m_maincpu,M6809_FIRQ_LINE,HOLD_LINE);
63      state->m_maincpu->set_input_line(M6809_FIRQ_LINE,HOLD_LINE);
6464}
6565
6666/*
trunk/src/mame/drivers/mcr68.c
r17814r17815
8686   /* It expects D1 to end up between 0 and 5; in order to */
8787   /* make this happen, we must assume that reads from the */
8888   /* 6840 take 14 additional cycles                       */
89   device_adjust_icount(&space.device(), -14);
89   space.device().execute().adjust_icount(-14);
9090   return mcr68_6840_upper_r(space,offset,0xffff);
9191}
9292
trunk/src/mame/drivers/pbaction.c
r17814r17815
7373WRITE8_MEMBER(pbaction_state::pbaction_sh_command_w)
7474{
7575   soundlatch_byte_w(space, offset, data);
76   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0x00);
76   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0x00);
7777}
7878
7979WRITE8_MEMBER(pbaction_state::nmi_mask_w)
r17814r17815
251251
252252static INTERRUPT_GEN( pbaction_interrupt )
253253{
254   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x02);   /* the CPU is in Interrupt Mode 2 */
254   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x02);   /* the CPU is in Interrupt Mode 2 */
255255}
256256
257257
r17814r17815
259259{
260260   pbaction_state *state = machine.driver_data<pbaction_state>();
261261
262   state->m_maincpu = machine.device("maincpu");
263   state->m_audiocpu = machine.device("audiocpu");
262   state->m_maincpu = machine.device<cpu_device>("maincpu");
263   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
264264
265265   state->save_item(NAME(state->m_scroll));
266266}
r17814r17815
277277   pbaction_state *state = device->machine().driver_data<pbaction_state>();
278278
279279   if(state->m_nmi_mask)
280      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
280      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
281281}
282282
283283static MACHINE_CONFIG_START( pbaction, pbaction_state )
trunk/src/mame/drivers/overdriv.c
r17814r17815
9191   overdriv_state *state = device->machine().driver_data<overdriv_state>();
9292
9393   if (k053246_is_irq_enabled(state->m_k053246))
94      device_set_input_line(device, 4, HOLD_LINE);
94      device->execute().set_input_line(4, HOLD_LINE);
9595}
9696
9797
r17814r17815
101101   if (ACCESSING_BITS_0_7)
102102   {
103103      /* bit 0 probably enables the second 68000 */
104      device_set_input_line(m_subcpu, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
104      m_subcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
105105
106106      /* bit 1 is clear during service mode - function unknown */
107107
r17814r17815
148148
149149WRITE16_MEMBER(overdriv_state::overdriv_soundirq_w)
150150{
151   device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
151   m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
152152}
153153
154154WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq5_w)
155155{
156   device_set_input_line(m_subcpu, 5, HOLD_LINE);
156   m_subcpu->set_input_line(5, HOLD_LINE);
157157}
158158
159159WRITE16_MEMBER(overdriv_state::overdriv_cpuB_irq6_w)
160160{
161   device_set_input_line(m_subcpu, 6, HOLD_LINE);
161   m_subcpu->set_input_line(6, HOLD_LINE);
162162}
163163
164164static ADDRESS_MAP_START( overdriv_master_map, AS_PROGRAM, 16, overdriv_state )
r17814r17815
284284{
285285   overdriv_state *state = machine.driver_data<overdriv_state>();
286286
287   state->m_maincpu = machine.device("maincpu");
288   state->m_audiocpu = machine.device("audiocpu");
289   state->m_subcpu = machine.device("sub");
287   state->m_maincpu = machine.device<cpu_device>("maincpu");
288   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
289   state->m_subcpu = machine.device<cpu_device>("sub");
290290   state->m_k051316_1 = machine.device("k051316_1");
291291   state->m_k051316_2 = machine.device("k051316_2");
292292   state->m_k053260_1 = machine.device("k053260_1");
trunk/src/mame/drivers/jackpool.c
r17814r17815
249249/*irq 2 used for communication stuff.3 is just a rte*/
250250static INTERRUPT_GEN( jackpool_interrupt )
251251{
252   device_set_input_line(device, 1, HOLD_LINE);
252   device->execute().set_input_line(1, HOLD_LINE);
253253}
254254
255255
trunk/src/mame/drivers/spcforce.c
r17814r17815
258258   spcforce_state *state = device->machine().driver_data<spcforce_state>();
259259
260260   if(state->m_irq_mask)
261      device_set_input_line(device, 3, HOLD_LINE);
261      device->execute().set_input_line(3, HOLD_LINE);
262262}
263263
264264static MACHINE_CONFIG_START( spcforce, spcforce_state )
trunk/src/mame/drivers/gsword.c
r17814r17815
253253   gsword_state *state = device->machine().driver_data<gsword_state>();
254254
255255   if(state->m_nmi_enable)
256      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
256      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
257257}
258258
259259WRITE8_MEMBER(gsword_state::gsword_nmi_set_w)
trunk/src/mame/drivers/nmg5.c
r17814r17815
256256   UINT8 m_gfx_bank;
257257
258258   /* devices */
259   device_t *m_maincpu;
260   device_t *m_soundcpu;
259   cpu_device *m_maincpu;
260   cpu_device *m_soundcpu;
261261   DECLARE_WRITE16_MEMBER(fg_videoram_w);
262262   DECLARE_WRITE16_MEMBER(bg_videoram_w);
263263   DECLARE_WRITE16_MEMBER(nmg5_soundlatch_w);
r17814r17815
294294   if (ACCESSING_BITS_0_7)
295295   {
296296      soundlatch_byte_w(space, 0, data & 0xff);
297      device_set_input_line(m_soundcpu, INPUT_LINE_NMI, PULSE_LINE);
297      m_soundcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
298298   }
299299}
300300
r17814r17815
974974static void soundirq( device_t *device, int state )
975975{
976976   nmg5_state *driver_state = device->machine().driver_data<nmg5_state>();
977   device_set_input_line(driver_state->m_soundcpu, 0, state);
977   driver_state->m_soundcpu->set_input_line(0, state);
978978}
979979
980980static const ym3812_interface ym3812_intf =
r17814r17815
986986{
987987   nmg5_state *state = machine.driver_data<nmg5_state>();
988988
989   state->m_maincpu = machine.device("maincpu");
990   state->m_soundcpu = machine.device("soundcpu");
989   state->m_maincpu = machine.device<cpu_device>("maincpu");
990   state->m_soundcpu = machine.device<cpu_device>("soundcpu");
991991
992992   state->save_item(NAME(state->m_gfx_bank));
993993   state->save_item(NAME(state->m_priority_reg));
trunk/src/mame/drivers/xmen.c
r17814r17815
8181
8282WRITE16_MEMBER(xmen_state::sound_irq_w)
8383{
84   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
84   m_audiocpu->set_input_line(0, HOLD_LINE);
8585}
8686
8787WRITE16_MEMBER(xmen_state::xmen_18fa00_w)
r17814r17815
300300   state->membank("bank4")->configure_entries(0, 8, &ROM[0x10000], 0x4000);
301301   state->membank("bank4")->set_entry(0);
302302
303   state->m_maincpu = machine.device("maincpu");
304   state->m_audiocpu = machine.device("audiocpu");
303   state->m_maincpu = machine.device<cpu_device>("maincpu");
304   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
305305   state->m_k053246 = machine.device("k053246");
306306   state->m_k053251 = machine.device("k053251");
307307   state->m_k052109 = machine.device("k052109");
trunk/src/mame/drivers/mario.c
r17814r17815
328328   mario_state *state = device->machine().driver_data<mario_state>();
329329
330330   if(state->m_nmi_mask)
331      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
331      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
332332}
333333
334334static MACHINE_CONFIG_START( mario_base, mario_state )
trunk/src/mame/drivers/atarifb.c
r17814r17815
508508{
509509   atarifb_state *state = machine.driver_data<atarifb_state>();
510510
511   state->m_maincpu = machine.device("maincpu");
511   state->m_maincpu = machine.device<cpu_device>("maincpu");
512512
513513   state->save_item(NAME(state->m_CTRLD));
514514   state->save_item(NAME(state->m_sign_x_1));
trunk/src/mame/drivers/lethal.c
r17814r17815
208208   lethal_state *state = device->machine().driver_data<lethal_state>();
209209
210210   if (k056832_is_irq_enabled(state->m_k056832, 0))
211      device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
211      device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
212212}
213213
214214WRITE8_MEMBER(lethal_state::sound_cmd_w)
r17814r17815
218218
219219WRITE8_MEMBER(lethal_state::sound_irq_w)
220220{
221   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
221   m_audiocpu->set_input_line(0, HOLD_LINE);
222222}
223223
224224READ8_MEMBER(lethal_state::sound_status_r)
r17814r17815
229229static void sound_nmi( device_t *device )
230230{
231231   lethal_state *state = device->machine().driver_data<lethal_state>();
232   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
232   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
233233}
234234
235235WRITE8_MEMBER(lethal_state::le_bankswitch_w)
r17814r17815
586586
587587   state->m_generic_paletteram_8.allocate(0x3800 + 0x02);
588588
589   state->m_maincpu = machine.device("maincpu");
590   state->m_audiocpu = machine.device("soundcpu");
589   state->m_maincpu = machine.device<cpu_device>("maincpu");
590   state->m_audiocpu = machine.device<cpu_device>("soundcpu");
591591   state->m_k054539 = machine.device("k054539");
592592   state->m_k053244 = machine.device("k053244");
593593   state->m_k056832 = machine.device("k056832");
trunk/src/mame/drivers/exprraid.c
r17814r17815
233233WRITE8_MEMBER(exprraid_state::sound_cpu_command_w)
234234{
235235   soundlatch_byte_w(space, 0, data);
236   device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
236   m_slave->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
237237}
238238
239239READ8_MEMBER(exprraid_state::vblank_r)
r17814r17815
278278
279279INPUT_CHANGED_MEMBER(exprraid_state::coin_inserted_deco16)
280280{
281   device_set_input_line(m_maincpu, DECO16_IRQ_LINE, oldval ? ASSERT_LINE : CLEAR_LINE);
281   m_maincpu->set_input_line(DECO16_IRQ_LINE, oldval ? ASSERT_LINE : CLEAR_LINE);
282282}
283283
284284INPUT_CHANGED_MEMBER(exprraid_state::coin_inserted_nmi)
285285{
286   device_set_input_line(m_maincpu, INPUT_LINE_NMI, oldval ? ASSERT_LINE : CLEAR_LINE);
286   m_maincpu->set_input_line(INPUT_LINE_NMI, oldval ? ASSERT_LINE : CLEAR_LINE);
287287}
288288
289289static INPUT_PORTS_START( exprraid )
r17814r17815
437437/* handler called by the 3812 emulator when the internal timers cause an IRQ */
438438WRITE_LINE_MEMBER(exprraid_state::irqhandler)
439439{
440   device_set_input_line_and_vector(m_slave, 0, state, 0xff);
440   m_slave->execute().set_input_line_and_vector(0, state, 0xff);
441441}
442442
443443static const ym3526_interface ym3526_config =
r17814r17815
455455      if (state->m_coin == 0)
456456      {
457457         state->m_coin = 1;
458         //device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
459         device_set_input_line(device, DECO16_IRQ_LINE, ASSERT_LINE);
458         //device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
459         device->execute().set_input_line(DECO16_IRQ_LINE, ASSERT_LINE);
460460      }
461461   }
462462   else
463463   {
464      device_set_input_line(device, DECO16_IRQ_LINE, CLEAR_LINE);
464      device->execute().set_input_line(DECO16_IRQ_LINE, CLEAR_LINE);
465465      state->m_coin = 0;
466466   }
467467}
r17814r17815
472472{
473473   exprraid_state *state = machine.driver_data<exprraid_state>();
474474
475   state->m_maincpu = machine.device("maincpu");
475   state->m_maincpu = machine.device<cpu_device>("maincpu");
476476   state->m_slave = machine.device("slave");
477477
478478   state->save_item(NAME(state->m_bg_index));
trunk/src/mame/drivers/2mindril.c
r17814r17815
5454   UINT16        irq_reg;
5555
5656   /* devices */
57   device_t *m_maincpu;
57   cpu_device *m_maincpu;
5858   DECLARE_READ16_MEMBER(drill_io_r);
5959   DECLARE_WRITE16_MEMBER(drill_io_w);
6060   DECLARE_WRITE16_MEMBER(sensors_w);
r17814r17815
399399
400400static INTERRUPT_GEN( drill_vblank_irq )
401401{
402   device_set_input_line(device, 4, ASSERT_LINE);
402   device->execute().set_input_line(4, ASSERT_LINE);
403403}
404404
405405#if 0
406406static INTERRUPT_GEN( drill_device_irq )
407407{
408   device_set_input_line(device, 5, ASSERT_LINE);
408   device->execute().set_input_line(5, ASSERT_LINE);
409409}
410410#endif
411411
r17814r17815
413413static void irqhandler(device_t *device, int irq)
414414{
415415//  _2mindril_state *state = machine.driver_data<_2mindril_state>();
416//  device_set_input_line(state->m_maincpu, 5, irq ? ASSERT_LINE : CLEAR_LINE);
416//  state->m_maincpu->set_input_line(5, irq ? ASSERT_LINE : CLEAR_LINE);
417417}
418418
419419static const ym2610_interface ym2610_config =
r17814r17815
426426{
427427   _2mindril_state *state = machine.driver_data<_2mindril_state>();
428428
429   state->m_maincpu = machine.device("maincpu");
429   state->m_maincpu = machine.device<cpu_device>("maincpu");
430430
431431   state->save_item(NAME(state->m_defender_sensor));
432432   state->save_item(NAME(state->m_shutter_sensor));
trunk/src/mame/drivers/taitowlf.c
r17814r17815
530530static MACHINE_START(taitowlf)
531531{
532532   taitowlf_state *state = machine.driver_data<taitowlf_state>();
533   device_set_irq_callback(machine.device("maincpu"), irq_callback);
533   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
534534
535535   state->m_pit8254 = machine.device( "pit8254" );
536536   state->m_pic8259_1 = machine.device( "pic8259_1" );
trunk/src/mame/drivers/dfruit.c
r17814r17815
354354
355355   if (scanline == 240 && (state->m_irq_enable & 4))
356356   {
357      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, state->m_irq_vector[2]);
357      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[2]);
358358   }
359359
360360   if (scanline == 0 && (state->m_irq_enable & 2))
361361   {
362      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, state->m_irq_vector[1]);
362      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[1]);
363363   }
364364
365365   if (scanline == 196 && (state->m_irq_enable & 1))
366366   {
367      //device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, state->m_irq_vector[0]);
367      //state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[0]);
368368   }
369369}
370370
trunk/src/mame/drivers/taito_z.c
r17814r17815
983983{
984984   /* bit 0 enables cpu B */
985985   taitoz_state *state = machine.driver_data<taitoz_state>();
986   device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
986   state->m_subcpu->set_input_line(INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
987987}
988988
989989WRITE16_MEMBER(taitoz_state::cpua_ctrl_w)
r17814r17815
10221022static TIMER_CALLBACK( taitoz_interrupt6 )
10231023{
10241024   taitoz_state *state = machine.driver_data<taitoz_state>();
1025   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
1025   state->m_maincpu->set_input_line(6, HOLD_LINE);
10261026}
10271027
10281028/* 68000 B */
r17814r17815
10301030static TIMER_CALLBACK( taitoz_cpub_interrupt5 )
10311031{
10321032   taitoz_state *state = machine.driver_data<taitoz_state>();
1033   device_set_input_line(state->m_subcpu, 5, HOLD_LINE);
1033   state->m_subcpu->set_input_line(5, HOLD_LINE);
10341034}
10351035
10361036
r17814r17815
10481048   if (state->m_sci_int6)
10491049      device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(200000 - 500), FUNC(taitoz_interrupt6));
10501050
1051   device_set_input_line(device, 4, HOLD_LINE);
1051   device->execute().set_input_line(4, HOLD_LINE);
10521052}
10531053
10541054
r17814r17815
29002900static void irqhandler(device_t *device, int irq)
29012901{
29022902   taitoz_state *state = device->machine().driver_data<taitoz_state>();
2903   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
2903   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
29042904}
29052905
29062906/* handler called by the YM2610 emulator when the internal timers cause an IRQ */
r17814r17815
29082908{
29092909   // DG: this is probably specific to Z80 and wrong?
29102910//  taitoz_state *state = device->machine().driver_data<taitoz_state>();
2911//  device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
2911//  state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
29122912}
29132913
29142914static const ym2610_interface ym2610_config =
r17814r17815
30313031{
30323032   taitoz_state *state = machine.driver_data<taitoz_state>();
30333033
3034   state->m_maincpu = machine.device("maincpu");
3035   state->m_subcpu = machine.device("sub");
3036   state->m_audiocpu = machine.device("audiocpu");
3034   state->m_maincpu = machine.device<cpu_device>("maincpu");
3035   state->m_subcpu = machine.device<cpu_device>("sub");
3036   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
30373037   state->m_eeprom = machine.device<eeprom_device>("eeprom");
30383038   state->m_tc0100scn = machine.device("tc0100scn");
30393039   state->m_tc0150rod = machine.device("tc0150rod");
trunk/src/mame/drivers/scotrsht.c
r17814r17815
5151   scotrsht_state *state = device->machine().driver_data<scotrsht_state>();
5252
5353   if (state->m_irq_enable)
54      device_set_input_line(device, 0, HOLD_LINE);
54      device->execute().set_input_line(0, HOLD_LINE);
5555}
5656
5757WRITE8_MEMBER(scotrsht_state::scotrsht_soundlatch_w)
trunk/src/mame/drivers/gunbustr.c
r17814r17815
6060static INTERRUPT_GEN( gunbustr_interrupt )
6161{
6262   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(200000-500), FUNC(gunbustr_interrupt5));
63   device_set_input_line(device, 4, HOLD_LINE);
63   device->execute().set_input_line(4, HOLD_LINE);
6464}
6565
6666WRITE32_MEMBER(gunbustr_state::gunbustr_palette_w)
r17814r17815
435435READ32_MEMBER(gunbustr_state::main_cycle_r)
436436{
437437   if (space.device().safe_pc()==0x55a && (m_ram[0x3acc/4]&0xff000000)==0)
438      device_spin_until_interrupt(&space.device());
438      space.device().execute().spin_until_interrupt();
439439
440440   return m_ram[0x3acc/4];
441441}
trunk/src/mame/drivers/msisaac.c
r17814r17815
2626{
2727   msisaac_state *state = machine.driver_data<msisaac_state>();
2828   if (state->m_sound_nmi_enable)
29      device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
29      state->m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3030   else
3131      state->m_pending_nmi = 1;
3232}
r17814r17815
4747   m_sound_nmi_enable = 1;
4848   if (m_pending_nmi)
4949   {
50      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
50      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5151      m_pending_nmi = 0;
5252   }
5353}
r17814r17815
435435{
436436   msisaac_state *state = machine.driver_data<msisaac_state>();
437437
438   state->m_audiocpu = machine.device("audiocpu");
438   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
439439
440440   /* video */
441441   state->save_item(NAME(state->m_bg2_textbank));
trunk/src/mame/drivers/playch10.c
r17814r17815
661661
662662   /* LS161A, Sheet 1 - bottom left of Z80 */
663663   if ( !state->m_pc10_dog_di && !state->m_pc10_nmi_enable ) {
664      device_set_input_line(device, INPUT_LINE_RESET, PULSE_LINE );
664      device->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE );
665665   }
666666
667667   else if ( state->m_pc10_nmi_enable )
668      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
668      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
669669}
670670
671671static const nes_interface nes_config =
trunk/src/mame/drivers/rastan.c
r17814r17815
342342static void irqhandler( device_t *device, int irq )
343343{
344344   rastan_state *state = device->machine().driver_data<rastan_state>();
345   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
345   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
346346}
347347
348348static const ym2151_interface ym2151_config =
r17814r17815
365365   state->membank("bank1")->configure_entry(0, &ROM[0x00000]);
366366   state->membank("bank1")->configure_entries(1, 3, &ROM[0x10000], 0x4000);
367367
368   state->m_maincpu = machine.device("maincpu");
369   state->m_audiocpu = machine.device("audiocpu");
368   state->m_maincpu = machine.device<cpu_device>("maincpu");
369   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
370370   state->m_pc080sn = machine.device("pc080sn");
371371   state->m_pc090oj = machine.device("pc090oj");
372372
trunk/src/mame/drivers/pntnpuzl.c
r17814r17815
274274
275275READ16_MEMBER(pntnpuzl_state::irq1_ack_r)
276276{
277//  device_set_input_line(m_maincpu, 1, CLEAR_LINE);
277//  m_maincpu->set_input_line(1, CLEAR_LINE);
278278   return 0;
279279}
280280
281281READ16_MEMBER(pntnpuzl_state::irq2_ack_r)
282282{
283//  device_set_input_line(m_maincpu, 2, CLEAR_LINE);
283//  m_maincpu->set_input_line(2, CLEAR_LINE);
284284   return 0;
285285}
286286
287287READ16_MEMBER(pntnpuzl_state::irq4_ack_r)
288288{
289//  device_set_input_line(m_maincpu, 4, CLEAR_LINE);
289//  m_maincpu->set_input_line(4, CLEAR_LINE);
290290   return 0;
291291}
292292
trunk/src/mame/drivers/funkball.c
r17814r17815
10351035
10361036WRITE_LINE_MEMBER(funkball_state::funkball_pic8259_1_set_int_line)
10371037{
1038   device_set_input_line(m_maincpu, 0, state ? HOLD_LINE : CLEAR_LINE);
1038   m_maincpu->set_input_line(0, state ? HOLD_LINE : CLEAR_LINE);
10391039}
10401040
10411041READ8_MEMBER( funkball_state::get_slave_ack )
r17814r17815
10651065{
10661066   funkball_state *state = machine.driver_data<funkball_state>();
10671067
1068   device_set_input_line(state->m_maincpu, INPUT_LINE_A20, a20);
1068   state->m_maincpu->set_input_line(INPUT_LINE_A20, a20);
10691069}
10701070
10711071static void keyboard_interrupt(running_machine &machine, int state)
r17814r17815
11111111
11121112   init_pc_common(machine, PCCOMMON_KEYBOARD_AT, funkball_set_keyb_int);
11131113
1114   device_set_irq_callback(state->m_maincpu, irq_callback);
1114   state->m_maincpu->set_irq_acknowledge_callback(irq_callback);
11151115
11161116   kbdc8042_init(machine, &at8042);
11171117
trunk/src/mame/drivers/tmspoker.c
r17814r17815
284284
285285static INTERRUPT_GEN( tmspoker_interrupt )
286286{
287   device_set_input_line_and_vector(device, 0, ASSERT_LINE, 3);//2=nmi  3,4,5,6
287   device->execute().set_input_line_and_vector(0, ASSERT_LINE, 3);//2=nmi  3,4,5,6
288288}
289289
290290
trunk/src/mame/drivers/metalmx.c
r17814r17815
333333   if (ACCESSING_BITS_16_31)
334334   {
335335      data >>= 16;
336      device_set_input_line(m_dsp32c_1, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
337      device_set_input_line(m_dsp32c_2, INPUT_LINE_RESET, data & 1 ? CLEAR_LINE : ASSERT_LINE);
336      m_dsp32c_1->set_input_line(INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
337      m_dsp32c_2->set_input_line(INPUT_LINE_RESET, data & 1 ? CLEAR_LINE : ASSERT_LINE);
338338   }
339339}
340340
r17814r17815
782782{
783783   metalmx_state *state = machine.driver_data<metalmx_state>();
784784
785   device_set_input_line(state->m_dsp32c_1, INPUT_LINE_RESET, ASSERT_LINE);
786   device_set_input_line(state->m_dsp32c_2, INPUT_LINE_RESET, ASSERT_LINE);
785   state->m_dsp32c_1->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
786   state->m_dsp32c_2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
787787}
788788
789789
trunk/src/mame/drivers/equites.c
r17814r17815
398398static TIMER_CALLBACK( equites_nmi_callback )
399399{
400400   equites_state *state = machine.driver_data<equites_state>();
401   device_set_input_line(state->m_audio_cpu, INPUT_LINE_NMI, ASSERT_LINE);
401   state->m_audio_cpu->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
402402}
403403
404404static TIMER_CALLBACK( equites_frq_adjuster_callback )
r17814r17815
430430   switch (offset)
431431   {
432432      case 0:   // c0f8: NMI ack (written by NMI handler)
433         device_set_input_line(m_audio_cpu, INPUT_LINE_NMI, CLEAR_LINE);
433         m_audio_cpu->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
434434         break;
435435
436436      case 1: // c0f9: RST75 trigger (written by NMI handler)
r17814r17815
440440
441441      case 2: // c0fa: INTR trigger (written by NMI handler)
442442         // verified on PCB:
443         device_set_input_line(m_audio_cpu, I8085_INTR_LINE, HOLD_LINE);
443         m_audio_cpu->execute().set_input_line(I8085_INTR_LINE, HOLD_LINE);
444444         break;
445445
446446      case 3: // c0fb: n.c.
r17814r17815
692692
693693WRITE16_MEMBER(equites_state::mcu_halt_assert_w)
694694{
695   device_set_input_line(m_mcu, INPUT_LINE_HALT, ASSERT_LINE);
695   m_mcu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
696696}
697697
698698WRITE16_MEMBER(equites_state::mcu_halt_clear_w)
699699{
700   device_set_input_line(m_mcu, INPUT_LINE_HALT, CLEAR_LINE);
700   m_mcu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
701701}
702702
703703
trunk/src/mame/drivers/mirax.c
r17814r17815
446446{
447447   mirax_state *state = device->machine().driver_data<mirax_state>();
448448   if(state->m_nmi_mask)
449      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
449      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
450450}
451451
452452static MACHINE_CONFIG_START( mirax, mirax_state )
trunk/src/mame/drivers/gradius3.c
r17814r17815
8282      m_priority = data & 0x04;
8383
8484      /* bit 3 enables cpu B */
85      device_set_input_line(m_subcpu, INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
85      m_subcpu->set_input_line(INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
8686
8787      /* bit 5 enables irq */
8888      m_irqAen = data & 0x20;
r17814r17815
103103{
104104   gradius3_state *state = device->machine().driver_data<gradius3_state>();
105105   if (state->m_irqAen)
106      device_set_input_line(device, 2, HOLD_LINE);
106      device->execute().set_input_line(2, HOLD_LINE);
107107}
108108
109109
r17814r17815
125125   if (m_irqBmask & 4)
126126   {
127127      logerror("%04x trigger cpu B irq 4 %02x\n",space.device().safe_pc(),data);
128      device_set_input_line(m_subcpu, 4, HOLD_LINE);
128      m_subcpu->set_input_line(4, HOLD_LINE);
129129   }
130130   else
131131      logerror("%04x MISSED cpu B irq 4 %02x\n",space.device().safe_pc(),data);
r17814r17815
139139
140140WRITE16_MEMBER(gradius3_state::sound_irq_w)
141141{
142   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
142   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
143143}
144144
145145WRITE8_MEMBER(gradius3_state::sound_bank_w)
r17814r17815
290290{
291291   gradius3_state *state = machine.driver_data<gradius3_state>();
292292
293   state->m_maincpu = machine.device("maincpu");
294   state->m_audiocpu = machine.device("audiocpu");
295   state->m_subcpu = machine.device("sub");
293   state->m_maincpu = machine.device<cpu_device>("maincpu");
294   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
295   state->m_subcpu = machine.device<cpu_device>("sub");
296296   state->m_k007232 = machine.device("k007232");
297297   state->m_k052109 = machine.device("k052109");
298298   state->m_k051960 = machine.device("k051960");
trunk/src/mame/drivers/mystwarr.c
r17814r17815
112112   if (!(state->m_mw_irq_control & 0x01)) return;
113113
114114   if(scanline == 240)
115      device_set_input_line(state->m_maincpu, M68K_IRQ_2, HOLD_LINE);
115      state->m_maincpu->set_input_line(M68K_IRQ_2, HOLD_LINE);
116116
117117   if(scanline == 0)
118      device_set_input_line(state->m_maincpu, M68K_IRQ_4, HOLD_LINE);
118      state->m_maincpu->set_input_line(M68K_IRQ_4, HOLD_LINE);
119119
120120   /* writes to LSB of 0x410000 port and clears a work RAM flag, almost likely not really necessary. */
121//  device_set_input_line(state->m_maincpu, M68K_IRQ_6, HOLD_LINE);
121//  state->m_maincpu->set_input_line(M68K_IRQ_6, HOLD_LINE);
122122}
123123
124124static TIMER_DEVICE_CALLBACK(metamrph_interrupt)
r17814r17815
127127   int scanline = param;
128128
129129   /* irq 4 has an irq routine in metamrph, but it's not really called */
130//  device_set_input_line(state->m_maincpu, M68K_IRQ_4, HOLD_LINE);
130//  state->m_maincpu->set_input_line(M68K_IRQ_4, HOLD_LINE);
131131
132132   if(scanline == 24)
133      device_set_input_line(state->m_maincpu, M68K_IRQ_6, HOLD_LINE);
133      state->m_maincpu->set_input_line(M68K_IRQ_6, HOLD_LINE);
134134
135135   if(scanline == 248)
136      if (K053246_is_IRQ_enabled()) device_set_input_line(state->m_maincpu, M68K_IRQ_5, HOLD_LINE);
136      if (K053246_is_IRQ_enabled()) state->m_maincpu->set_input_line(M68K_IRQ_5, HOLD_LINE);
137137}
138138
139139static TIMER_DEVICE_CALLBACK(mchamp_interrupt)
r17814r17815
145145
146146   if(scanline == 247)
147147   {
148      if (K053246_is_IRQ_enabled()) device_set_input_line(state->m_maincpu, M68K_IRQ_6, HOLD_LINE);
148      if (K053246_is_IRQ_enabled()) state->m_maincpu->set_input_line(M68K_IRQ_6, HOLD_LINE);
149149   }
150150
151151   if(scanline == 23)
152      device_set_input_line(state->m_maincpu, M68K_IRQ_2, HOLD_LINE);
152      state->m_maincpu->set_input_line(M68K_IRQ_2, HOLD_LINE);
153153}
154154
155155static INTERRUPT_GEN(ddd_interrupt)
156156{
157   device_set_input_line(device, M68K_IRQ_5, HOLD_LINE);
157   device->execute().set_input_line(M68K_IRQ_5, HOLD_LINE);
158158}
159159
160160
trunk/src/mame/drivers/jollyjgr.c
r17814r17815
622622{
623623   jollyjgr_state *state = device->machine().driver_data<jollyjgr_state>();
624624   if(state->m_nmi_enable)
625      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
625      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
626626}
627627
628628
trunk/src/mame/drivers/ssfindo.c
r17814r17815
355355static void ssfindo_speedups(address_space* space)
356356{
357357   if (space->device().safe_pc()==0x2d6c8) // ssfindo
358      device_spin_until_time(&space->device(), attotime::from_usec(20));
358      space->device().execute().spin_until_time(attotime::from_usec(20));
359359   else if (space->device().safe_pc()==0x2d6bc) // ssfindo
360      device_spin_until_time(&space->device(), attotime::from_usec(20));
360      space->device().execute().spin_until_time(attotime::from_usec(20));
361361}
362362
363363static void ppcar_speedups(address_space* space)
364364{
365365   if (space->device().safe_pc()==0x000bc8) // ppcar
366      device_spin_until_time(&space->device(), attotime::from_usec(20));
366      space->device().execute().spin_until_time(attotime::from_usec(20));
367367   else if (space->device().safe_pc()==0x000bbc) // ppcar
368      device_spin_until_time(&space->device(), attotime::from_usec(20));
368      space->device().execute().spin_until_time(attotime::from_usec(20));
369369}
370370
371371
trunk/src/mame/drivers/firetrk.c
r17814r17815
5353
5454   /* NMI interrupts are disabled during service mode in firetrk and montecar */
5555   if (!state->m_in_service_mode)
56      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
56      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5757}
5858
5959
trunk/src/mame/drivers/ddayjlc.c
r17814r17815
8585   UINT8    m_prot_addr;
8686
8787   /* devices */
88   device_t *m_audiocpu;
88   cpu_device *m_audiocpu;
8989   DECLARE_WRITE8_MEMBER(prot_w);
9090   DECLARE_WRITE8_MEMBER(char_bank_w);
9191   DECLARE_WRITE8_MEMBER(ddayjlc_bgram_w);
r17814r17815
212212{
213213
214214   soundlatch_byte_w(space, offset, data);
215   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
215   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
216216}
217217
218218WRITE8_MEMBER(ddayjlc_state::i8257_CH0_w)
r17814r17815
436436{
437437   ddayjlc_state *state = device->machine().driver_data<ddayjlc_state>();
438438   if(state->m_main_nmi_enable)
439      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
439      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
440440}
441441
442442static INTERRUPT_GEN( ddayjlc_snd_interrupt )
443443{
444444   ddayjlc_state *state = device->machine().driver_data<ddayjlc_state>();
445445   if(state->m_sound_nmi_enable)
446      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
446      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
447447}
448448
449449
r17814r17815
451451{
452452   ddayjlc_state *state = machine.driver_data<ddayjlc_state>();
453453
454   state->m_audiocpu = machine.device("audiocpu");
454   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
455455
456456   state->save_item(NAME(state->m_char_bank));
457457   state->save_item(NAME(state->m_bgadr));
trunk/src/mame/drivers/sprcros2.c
r17814r17815
253253   if (scanline == 240)
254254   {
255255      if(state->m_port7&0x01)
256         device_set_input_line(state->m_master, INPUT_LINE_NMI, PULSE_LINE);
256         state->m_master->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
257257   }
258258   else if(scanline == 0)
259259   {
260260      if(state->m_port7&0x08)
261         device_set_input_line(state->m_master, 0, HOLD_LINE);
261         state->m_master->set_input_line(0, HOLD_LINE);
262262   }
263263}
264264
r17814r17815
267267   sprcros2_state *state = device->machine().driver_data<sprcros2_state>();
268268
269269   if(state->m_s_port3&0x01)
270      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
270      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
271271}
272272
273273static MACHINE_START( sprcros2 )
trunk/src/mame/drivers/konamigx.c
r17814r17815
548548
549549   if (space.device().safe_pc() == waitskip.pc && (data & mem_mask) == (waitskip.data & mem_mask))
550550   {
551      device_spin_until_trigger(&space.device(), resume_trigger);
551      space.device().execute().spin_until_trigger(resume_trigger);
552552      suspension_active = 1;
553553   }
554554
r17814r17815
650650      if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1))
651651      {
652652         gx_syncen &= ~1;
653         device_set_input_line(device, 1, HOLD_LINE);
653         device->execute().set_input_line(1, HOLD_LINE);
654654      }
655655   }
656656
r17814r17815
681681         if ((konamigx_wrport1_1 & 0x81) == 0x81 || (gx_syncen & 1))
682682         {
683683            gx_syncen &= ~1;
684            device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
684            state->m_maincpu->set_input_line(1, HOLD_LINE);
685685
686686         }
687687      }
r17814r17815
698698         if ((konamigx_wrport1_1 & 0x82) == 0x82 || (gx_syncen & 2))
699699         {
700700            gx_syncen &= ~2;
701            device_set_input_line(state->m_maincpu, 2, HOLD_LINE);
701            state->m_maincpu->set_input_line(2, HOLD_LINE);
702702         }
703703      }
704704   }
trunk/src/mame/drivers/parodius.c
r17814r17815
2323{
2424   parodius_state *state = device->machine().driver_data<parodius_state>();
2525   if (k052109_is_irq_enabled(state->m_k052109))
26      device_set_input_line(device, 0, HOLD_LINE);
26      device->execute().set_input_line(0, HOLD_LINE);
2727}
2828
2929READ8_MEMBER(parodius_state::bankedram_r)
r17814r17815
108108
109109WRITE8_MEMBER(parodius_state::parodius_sh_irqtrigger_w)
110110{
111   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
111   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
112112}
113113
114114#if 0
r17814r17815
116116static void sound_nmi_callback( running_machine &machine, int param )
117117{
118118   parodius_state *state = machine.driver_data<parodius_state>();
119   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ( state->m_nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE );
119   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ( state->m_nmi_enabled ) ? CLEAR_LINE : ASSERT_LINE );
120120
121121   nmi_enabled = 0;
122122}
r17814r17815
125125static TIMER_CALLBACK( nmi_callback )
126126{
127127   parodius_state *state = machine.driver_data<parodius_state>();
128   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
128   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
129129}
130130
131131WRITE8_MEMBER(parodius_state::sound_arm_nmi_w)
132132{
133133
134   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
134   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
135135   machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback));   /* kludge until the K053260 is emulated correctly */
136136}
137137
r17814r17815
257257
258258   state->m_generic_paletteram_8.allocate(0x1000);
259259
260   state->m_maincpu = machine.device("maincpu");
261   state->m_audiocpu = machine.device("audiocpu");
260   state->m_maincpu = machine.device<cpu_device>("maincpu");
261   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
262262   state->m_k053260 = machine.device("k053260");
263263   state->m_k053245 = machine.device("k053245");
264264   state->m_k053251 = machine.device("k053251");
trunk/src/mame/drivers/combatsc.c
r17814r17815
151151WRITE8_MEMBER(combatsc_state::combatscb_sh_irqtrigger_w)
152152{
153153   soundlatch_byte_w(space, offset, data);
154   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
154   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
155155}
156156
157157READ8_MEMBER(combatsc_state::combatscb_io_r)
r17814r17815
322322
323323WRITE8_MEMBER(combatsc_state::combatsc_sh_irqtrigger_w)
324324{
325   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
325   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
326326}
327327
328328READ8_MEMBER(combatsc_state::combatsc_busy_r)
trunk/src/mame/drivers/rockrage.c
r17814r17815
6161{
6262   rockrage_state *state = device->machine().driver_data<rockrage_state>();
6363   if (k007342_is_int_enabled(state->m_k007342))
64      device_set_input_line(device, HD6309_IRQ_LINE, HOLD_LINE);
64      device->execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
6565}
6666
6767WRITE8_MEMBER(rockrage_state::rockrage_bankswitch_w)
r17814r17815
7979WRITE8_MEMBER(rockrage_state::rockrage_sh_irqtrigger_w)
8080{
8181   soundlatch_byte_w(space, offset, data);
82   device_set_input_line(m_audiocpu, M6809_IRQ_LINE, HOLD_LINE);
82   m_audiocpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
8383}
8484
8585READ8_MEMBER(rockrage_state::rockrage_VLM5030_busy_r)
r17814r17815
243243
244244   state->membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000);
245245
246   state->m_audiocpu = machine.device("audiocpu");
246   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
247247   state->m_k007342 = machine.device("k007342");
248248   state->m_k007420 = machine.device("k007420");
249249
trunk/src/mame/drivers/egghunt.c
r17814r17815
6161   UINT8     m_gfx_banking;
6262
6363   /* devices */
64   device_t *m_audiocpu;
64   cpu_device *m_audiocpu;
6565
6666   /* memory */
6767   required_shared_ptr<UINT8> m_atram;
r17814r17815
203203WRITE8_MEMBER(egghunt_state::egghunt_soundlatch_w)
204204{
205205   soundlatch_byte_w(space, 0, data);
206   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
206   m_audiocpu->set_input_line(0, HOLD_LINE);
207207}
208208
209209READ8_MEMBER(egghunt_state::egghunt_okibanking_r)
r17814r17815
391391{
392392   egghunt_state *state = machine.driver_data<egghunt_state>();
393393
394   state->m_audiocpu = machine.device("audiocpu");
394   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
395395
396396   state->save_item(NAME(state->m_gfx_banking));
397397   state->save_item(NAME(state->m_okibanking));
trunk/src/mame/drivers/sandscrp.c
r17814r17815
255255      m_latch1_full = 1;
256256      soundlatch_byte_w(space, 0, data & 0xff);
257257      machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
258      device_spin_until_time(&space.device(), attotime::from_usec(100));   // Allow the other cpu to reply
258      space.device().execute().spin_until_time(attotime::from_usec(100));   // Allow the other cpu to reply
259259   }
260260}
261261
trunk/src/mame/drivers/gpworld.c
r17814r17815
435435   {
436436      state->m_laserdisc->data_w(state->m_ldp_write_latch);
437437      state->m_ldp_read_latch = state->m_laserdisc->status_r();
438      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
438      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
439439   }
440440
441441   /* The time the IRQ line stays high is set just long enough to happen after the NMI - hacky? */
442   device_set_input_line(device, 0, ASSERT_LINE);
442   device->execute().set_input_line(0, ASSERT_LINE);
443443   device->machine().scheduler().timer_set(attotime::from_usec(100), FUNC(irq_stop));
444444}
445445
trunk/src/mame/drivers/homedata.c
r17814r17815
227227{
228228   homedata_state *state = device->machine().driver_data<homedata_state>();
229229   state->m_vblank = 1;
230   device_set_input_line(device, M6809_FIRQ_LINE, HOLD_LINE);
230   device->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
231231}
232232
233233static INTERRUPT_GEN( upd7807_irq )
234234{
235   device_set_input_line(device, UPD7810_INTF1, HOLD_LINE);
235   device->execute().set_input_line(UPD7810_INTF1, HOLD_LINE);
236236}
237237
238238
r17814r17815
317317WRITE8_MEMBER(homedata_state::mrokumei_sound_cmd_w)
318318{
319319   soundlatch_byte_w(space, offset, data);
320   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
320   m_audiocpu->set_input_line(0, HOLD_LINE);
321321}
322322
323323
r17814r17815
11441144{
11451145   homedata_state *state = machine.driver_data<homedata_state>();
11461146
1147   state->m_maincpu = machine.device("maincpu");
1148   state->m_audiocpu = machine.device("audiocpu");
1147   state->m_maincpu = machine.device<cpu_device>("maincpu");
1148   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
11491149   state->m_ym = machine.device("ymsnd");
11501150   state->m_sn = machine.device<sn76489a_new_device>("snsnd");
11511151   state->m_dac = machine.device<dac_device>("dac");
trunk/src/mame/drivers/mugsmash.c
r17814r17815
5656   {
5757   case 1:
5858      soundlatch_byte_w(space, 1, data & 0xff);
59      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE );
59      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
6060      break;
6161
6262   default:
r17814r17815
391391static void irq_handler(device_t *device, int irq)
392392{
393393   mugsmash_state *state = device->machine().driver_data<mugsmash_state>();
394   device_set_input_line(state->m_audiocpu, 0 , irq ? ASSERT_LINE : CLEAR_LINE );
394   state->m_audiocpu->set_input_line(0 , irq ? ASSERT_LINE : CLEAR_LINE );
395395}
396396
397397static const ym2151_interface ym2151_config =
r17814r17815
403403{
404404   mugsmash_state *state = machine.driver_data<mugsmash_state>();
405405
406   state->m_maincpu = machine.device("maincpu");
407   state->m_audiocpu = machine.device("audiocpu");
406   state->m_maincpu = machine.device<cpu_device>("maincpu");
407   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
408408}
409409
410410static MACHINE_CONFIG_START( mugsmash, mugsmash_state )
trunk/src/mame/drivers/hng64.c
r17814r17815
17511751         }
17521752      }
17531753
1754      device_set_input_line(m_maincpu, 0, ASSERT_LINE);
1754      m_maincpu->set_input_line(0, ASSERT_LINE);
17551755   }
17561756   else
1757      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
1757      m_maincpu->set_input_line(0, CLEAR_LINE);
17581758}
17591759
17601760static TIMER_DEVICE_CALLBACK( hng64_irq )
trunk/src/mame/drivers/solomon.c
r17814r17815
198198   solomon_state *state = device->machine().driver_data<solomon_state>();
199199
200200   if(state->m_nmi_mask)
201      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
201      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
202202}
203203
204204
trunk/src/mame/drivers/macrossp.c
r17814r17815
338338      //logerror("%08x write soundcmd %08x (%08x)\n",space.device().safe_pc(),data,mem_mask);
339339      soundlatch_word_w(space, 0, data >> 16, 0xffff);
340340      m_sndpending = 1;
341      device_set_input_line(m_audiocpu, 2, HOLD_LINE);
341      m_audiocpu->set_input_line(2, HOLD_LINE);
342342      /* spin for a while to let the sound CPU read the command */
343      device_spin_until_time(&space.device(), attotime::from_usec(50));
343      space.device().execute().spin_until_time(attotime::from_usec(50));
344344   }
345345}
346346
r17814r17815
584584
585585   /* IRQ lines 1 & 4 on the sound 68000 are definitely triggered by the ES5506,
586586    but I haven't noticed the ES5506 ever assert the line - maybe only used when developing the game? */
587   //  device_set_input_line(state->m_audiocpu, 1, irq ? ASSERT_LINE : CLEAR_LINE);
587   //  state->m_audiocpu->set_input_line(1, irq ? ASSERT_LINE : CLEAR_LINE);
588588}
589589
590590static const es5506_interface es5506_config =
r17814r17815
601601{
602602   macrossp_state *state = machine.driver_data<macrossp_state>();
603603
604   state->m_maincpu = machine.device("maincpu");
605   state->m_audiocpu = machine.device("audiocpu");
604   state->m_maincpu = machine.device<cpu_device>("maincpu");
605   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
606606
607607   state->save_item(NAME(state->m_sndpending));
608608   state->save_item(NAME(state->m_snd_toggle));
r17814r17815
770770*/
771771
772772   COMBINE_DATA(&m_mainram[0x10158 / 4]);
773   if (space.device().safe_pc() == 0x001810A) device_spin_until_interrupt(&space.device());
773   if (space.device().safe_pc() == 0x001810A) space.device().execute().spin_until_interrupt();
774774}
775775
776776#ifdef UNUSED_FUNCTION
r17814r17815
778778{
779779
780780   COMBINE_DATA(&m_mainram[0x00020 / 4]);
781   if (space.device().safe_pc() == 0x1cc) device_spin_until_interrupt(&space.device());
781   if (space.device().safe_pc() == 0x1cc) space.device().execute().spin_until_interrupt();
782782}
783783#endif
784784
trunk/src/mame/drivers/imolagp.c
r17814r17815
108108   int   m_oldsteer;
109109
110110   /* devices */
111   device_t *m_slavecpu;
111   cpu_device *m_slavecpu;
112112
113113   /* memory */
114114   UINT8  m_videoram[3][0x4000];
r17814r17815
155155}
156156READ8_MEMBER(imolagp_state::trigger_slave_nmi_r)
157157{
158   device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
158   m_slave->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
159159   return 0;
160160}
161161
r17814r17815
486486         {
487487            state->m_oldsteer = (state->m_oldsteer + 1) & 0xf;
488488         }
489         device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
489         state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
490490      }
491491   }
492492}
r17814r17815
499499   memcpy(&state->m_slave_workram[0x80], state->m_mComData, state->m_mComCount);
500500   state->m_mComCount = 0;
501501#endif
502   device_set_input_line(device, 0, HOLD_LINE);
502   device->execute().set_input_line(0, HOLD_LINE);
503503} /* master_interrupt */
504504
505505
r17814r17815
518518{
519519   imolagp_state *state = machine.driver_data<imolagp_state>();
520520
521   state->m_slavecpu = machine.device("slave");
521   state->m_slavecpu = machine.device<cpu_device>("slave");
522522
523523   state->save_item(NAME(state->m_control));
524524   state->save_item(NAME(state->m_scroll));
trunk/src/mame/drivers/gyruss.c
r17814r17815
118118
119119WRITE8_MEMBER(gyruss_state::gyruss_irq_clear_w)
120120{
121   device_set_input_line(m_audiocpu_2, 0, CLEAR_LINE);
121   m_audiocpu_2->set_input_line(0, CLEAR_LINE);
122122}
123123
124124static void filter_w( device_t *device, int chip, int data )
r17814r17815
149149WRITE8_MEMBER(gyruss_state::gyruss_sh_irqtrigger_w)
150150{
151151   /* writing to this register triggers IRQ on the sound CPU */
152   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
152   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
153153}
154154
155155WRITE8_MEMBER(gyruss_state::gyruss_i8039_irq_w)
156156{
157   device_set_input_line(m_audiocpu_2, 0, ASSERT_LINE);
157   m_audiocpu_2->set_input_line(0, ASSERT_LINE);
158158}
159159
160160WRITE8_MEMBER(gyruss_state::master_nmi_mask_w)
r17814r17815
501501   gyruss_state *state = device->machine().driver_data<gyruss_state>();
502502
503503   if (state->m_master_nmi_mask)
504      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
504      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
505505}
506506
507507static INTERRUPT_GEN( slave_vblank_irq )
r17814r17815
509509   gyruss_state *state = device->machine().driver_data<gyruss_state>();
510510
511511   if (state->m_slave_irq_mask)
512      device_set_input_line(device, 0, HOLD_LINE);
512      device->execute().set_input_line(0, HOLD_LINE);
513513}
514514
515515static MACHINE_CONFIG_START( gyruss, gyruss_state )
trunk/src/mame/drivers/fastlane.c
r17814r17815
2222   int scanline = param;
2323
2424   if(scanline == 240 && k007121_ctrlram_r(state->m_k007121, 7) & 0x02) // vblank irq
25      device_set_input_line(state->m_maincpu, HD6309_IRQ_LINE, HOLD_LINE);
25      state->m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
2626   else if(((scanline % 32) == 0) && k007121_ctrlram_r(state->m_k007121, 7) & 0x01) // timer irq
27      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
27      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
2828}
2929
3030
trunk/src/mame/drivers/gamecstl.c
r17814r17815
622622{
623623   machine.root_device().membank("bank1")->set_base(machine.root_device().memregion("bios")->base() + 0x30000);
624624
625   device_set_irq_callback(machine.device("maincpu"), irq_callback);
625   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
626626}
627627
628628
trunk/src/mame/drivers/cabal.c
r17814r17815
106106   seibu_main_word_w(&space,4,data,mem_mask);
107107
108108   /* spin for a while to let the Z80 read the command, otherwise coins "stick" */
109   device_spin_until_time(&space.device(), attotime::from_usec(50));
109   space.device().execute().spin_until_time(attotime::from_usec(50));
110110}
111111
112112WRITE16_MEMBER(cabal_state::cabalbl_sound_irq_trigger_word_w)
trunk/src/mame/drivers/hotblock.c
r17814r17815
197197
198198static INTERRUPT_GEN( hotblocks_irq ) /* right? */
199199{
200   device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
200   device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
201201}
202202
203203static const ay8910_interface ay8910_config =
trunk/src/mame/drivers/vendetta.c
r17814r17815
201201static TIMER_CALLBACK( z80_nmi_callback )
202202{
203203   vendetta_state *state = machine.driver_data<vendetta_state>();
204   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
204   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
205205}
206206
207207WRITE8_MEMBER(vendetta_state::z80_arm_nmi_w)
208208{
209   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
209   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
210210
211211   machine().scheduler().timer_set(attotime::from_usec(25), FUNC(z80_nmi_callback));
212212}
213213
214214WRITE8_MEMBER(vendetta_state::z80_irq_w)
215215{
216   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
216   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
217217}
218218
219219READ8_MEMBER(vendetta_state::vendetta_sound_interrupt_r)
220220{
221   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
221   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
222222   return 0x00;
223223}
224224
r17814r17815
408408{
409409   vendetta_state *state = device->machine().driver_data<vendetta_state>();
410410   if (state->m_irq_enabled)
411      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
411      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
412412}
413413
414414static const k052109_interface vendetta_k052109_intf =
r17814r17815
467467
468468   state->m_generic_paletteram_8.allocate(0x1000);
469469
470   state->m_maincpu = machine.device("maincpu");
471   state->m_audiocpu = machine.device("audiocpu");
470   state->m_maincpu = machine.device<cpu_device>("maincpu");
471   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
472472   state->m_k053246 = machine.device("k053246");
473473   state->m_k053251 = machine.device("k053251");
474474   state->m_k052109 = machine.device("k052109");
trunk/src/mame/drivers/saturn.c
r17814r17815
272272      {
273273         if(irq_level[i] != -1) /* TODO: cheap check for undefined irqs */
274274         {
275            device_set_input_line_and_vector(state->m_maincpu, irq_level[i], HOLD_LINE, 0x40 + i);
275            state->m_maincpu->set_input_line_and_vector(irq_level[i], HOLD_LINE, 0x40 + i);
276276            state->m_scu.ist &= ~(1 << i);
277277            return; /* avoid spurious irqs, correct? */
278278         }
r17814r17815
408408   saturn_state *state = machine.driver_data<saturn_state>();
409409
410410   if(!(state->m_scu.ism & IRQ_DMALV0))
411      device_set_input_line_and_vector(state->m_maincpu, 5, HOLD_LINE, 0x4b);
411      state->m_maincpu->set_input_line_and_vector(5, HOLD_LINE, 0x4b);
412412   else
413413      state->m_scu.ist |= (IRQ_DMALV0);
414414
r17814r17815
421421   saturn_state *state = machine.driver_data<saturn_state>();
422422
423423   if(!(state->m_scu.ism & IRQ_DMALV1))
424      device_set_input_line_and_vector(state->m_maincpu, 6, HOLD_LINE, 0x4a);
424      state->m_maincpu->set_input_line_and_vector(6, HOLD_LINE, 0x4a);
425425   else
426426      state->m_scu.ist |= (IRQ_DMALV1);
427427
r17814r17815
434434   saturn_state *state = machine.driver_data<saturn_state>();
435435
436436   if(!(state->m_scu.ism & IRQ_DMALV2))
437      device_set_input_line_and_vector(state->m_maincpu, 6, HOLD_LINE, 0x49);
437      state->m_maincpu->set_input_line_and_vector(6, HOLD_LINE, 0x49);
438438   else
439439      state->m_scu.ist |= (IRQ_DMALV2);
440440
r17814r17815
901901
902902   /* TODO: NMI doesn't stay held on SH-2 core so we can't use ASSERT_LINE/CLEAR_LINE with that yet */
903903   if(newval)
904      device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
904      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
905905}
906906
907907INPUT_CHANGED_MEMBER(saturn_state::tray_open)
r17814r17815
16611661
16621662   if(!(drvstate->m_scu.ism & IRQ_SOUND_REQ))
16631663   {
1664      device_set_input_line_and_vector(drvstate->m_maincpu, 9, HOLD_LINE, 0x46);
1664      drvstate->m_maincpu->set_input_line_and_vector(9, HOLD_LINE, 0x46);
16651665      scu_do_transfer(device->machine(),5);
16661666   }
16671667   else
r17814r17815
17511751   system_time systime;
17521752   machine.base_datetime(systime);
17531753
1754   state->m_maincpu = downcast<legacy_cpu_device*>( machine.device("maincpu") );
1754   state->m_maincpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("maincpu") );
17551755   state->m_slave = downcast<legacy_cpu_device*>( machine.device("slave") );
1756   state->m_audiocpu = downcast<legacy_cpu_device*>( machine.device("audiocpu") );
1756   state->m_audiocpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("audiocpu") );
17571757
17581758   scsp_set_ram_base(machine.device("scsp"), state->m_sound_ram);
17591759
r17814r17815
17951795   system_time systime;
17961796   machine.base_datetime(systime);
17971797
1798   state->m_maincpu = downcast<legacy_cpu_device*>( machine.device("maincpu") );
1798   state->m_maincpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("maincpu") );
17991799   state->m_slave = downcast<legacy_cpu_device*>( machine.device("slave") );
1800   state->m_audiocpu = downcast<legacy_cpu_device*>( machine.device("audiocpu") );
1800   state->m_audiocpu = downcast<legacy_cpu_device*>( machine.device<cpu_device>("audiocpu") );
18011801
18021802   scsp_set_ram_base(machine.device("scsp"), state->m_sound_ram);
18031803
r17814r17815
18831883
18841884      if(!(state->m_scu.ism & IRQ_VDP1_END))
18851885      {
1886         device_set_input_line_and_vector(state->m_maincpu, 0x2, HOLD_LINE, 0x4d);
1886         state->m_maincpu->set_input_line_and_vector(0x2, HOLD_LINE, 0x4d);
18871887         scu_do_transfer(timer.machine(),6);
18881888      }
18891889      else
r17814r17815
18941894   {
18951895      if(!(state->m_scu.ism & IRQ_VBLANK_OUT))
18961896      {
1897         device_set_input_line_and_vector(state->m_maincpu, 0xe, HOLD_LINE, 0x41);
1897         state->m_maincpu->set_input_line_and_vector(0xe, HOLD_LINE, 0x41);
18981898         scu_do_transfer(timer.machine(),1);
18991899      }
19001900      else
r17814r17815
19051905   {
19061906      if(!(state->m_scu.ism & IRQ_VBLANK_IN))
19071907      {
1908         device_set_input_line_and_vector(state->m_maincpu, 0xf, HOLD_LINE ,0x40);
1908         state->m_maincpu->set_input_line_and_vector(0xf, HOLD_LINE ,0x40);
19091909         scu_do_transfer(timer.machine(),0);
19101910      }
19111911      else
r17814r17815
19151915   {
19161916      if(!(state->m_scu.ism & IRQ_HBLANK_IN))
19171917      {
1918         device_set_input_line_and_vector(state->m_maincpu, 0xd, HOLD_LINE, 0x42);
1918         state->m_maincpu->set_input_line_and_vector(0xd, HOLD_LINE, 0x42);
19191919         scu_do_transfer(timer.machine(),2);
19201920      }
19211921      else
r17814r17815
19261926   {
19271927      if(!(state->m_scu.ism & IRQ_TIMER_0))
19281928      {
1929         device_set_input_line_and_vector(state->m_maincpu, 0xc, HOLD_LINE, 0x43 );
1929         state->m_maincpu->set_input_line_and_vector(0xc, HOLD_LINE, 0x43 );
19301930         scu_do_transfer(timer.machine(),3);
19311931      }
19321932      else
r17814r17815
19411941      {
19421942         if(!(state->m_scu.ism & IRQ_TIMER_1))
19431943         {
1944            device_set_input_line_and_vector(state->m_maincpu, 0xb, HOLD_LINE, 0x44 );
1944            state->m_maincpu->set_input_line_and_vector(0xb, HOLD_LINE, 0x44 );
19451945            scu_do_transfer(timer.machine(),4);
19461946         }
19471947         else
r17814r17815
19651965   vblank_line = (state->m_vdp2.pal) ? 288 : 240;
19661966
19671967   if(scanline == vblank_line*y_step)
1968      device_set_input_line_and_vector(state->m_slave, 0x6, HOLD_LINE, 0x43);
1968      state->m_slave->set_input_line_and_vector(0x6, HOLD_LINE, 0x43);
19691969   else if((scanline % y_step) == 0 && scanline < vblank_line*y_step)
1970      device_set_input_line_and_vector(state->m_slave, 0x2, HOLD_LINE, 0x41);
1970      state->m_slave->set_input_line_and_vector(0x2, HOLD_LINE, 0x41);
19711971}
19721972
19731973/* Die Hard Trilogy tests RAM address 0x25e7ffe bit 2 with Slave during FRT minit irq, in-development tool for breaking execution of it? */
trunk/src/mame/drivers/marineb.c
r17814r17815
6565{
6666   marineb_state *state = machine.driver_data<marineb_state>();
6767
68   state->m_maincpu = machine.device("maincpu");
68   state->m_maincpu = machine.device<cpu_device>("maincpu");
6969   state->m_audiocpu = NULL;
7070
7171   state->save_item(NAME(state->m_marineb_active_low_flipscreen));
r17814r17815
531531   marineb_state *state = device->machine().driver_data<marineb_state>();
532532
533533   if(state->m_irq_mask)
534      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
534      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
535535}
536536
537537static INTERRUPT_GEN( wanted_vblank_irq )
r17814r17815
539539   marineb_state *state = device->machine().driver_data<marineb_state>();
540540
541541   if(state->m_irq_mask)
542      device_set_input_line(device, 0, HOLD_LINE);
542      device->execute().set_input_line(0, HOLD_LINE);
543543}
544544
545545
trunk/src/mame/drivers/pktgaldx.c
r17814r17815
318318{
319319   pktgaldx_state *state = machine.driver_data<pktgaldx_state>();
320320
321   state->m_maincpu = machine.device("maincpu");
321   state->m_maincpu = machine.device<cpu_device>("maincpu");
322322   state->m_deco_tilegen1 = machine.device("tilegen1");
323323}
324324
trunk/src/mame/drivers/timeplt.c
r17814r17815
6464   timeplt_state *state = device->machine().driver_data<timeplt_state>();
6565
6666   if (state->m_nmi_enable)
67      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
67      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
6868}
6969
7070
r17814r17815
7272{
7373   m_nmi_enable = data & 1;
7474   if (!m_nmi_enable)
75      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
75      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
7676}
7777
7878
trunk/src/mame/drivers/circus.c
r17814r17815
265265{
266266   circus_state *state = machine.driver_data<circus_state>();
267267
268   state->m_maincpu = machine.device("maincpu");
268   state->m_maincpu = machine.device<cpu_device>("maincpu");
269269   state->m_samples = machine.device<samples_device>("samples");
270270   state->m_discrete = machine.device("discrete");
271271
trunk/src/mame/drivers/taito_f3.c
r17814r17815
397397
398398static INTERRUPT_GEN( f3_interrupt2 )
399399{
400   device_set_input_line(device, 2, HOLD_LINE);   // vblank
400   device->execute().set_input_line(2, HOLD_LINE);   // vblank
401401   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(10000), FUNC(f3_interrupt3));
402402}
403403
trunk/src/mame/drivers/champbas.c
r17814r17815
132132   m_irq_mask = data & 1;
133133
134134   if (!m_irq_mask)
135      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
135      m_maincpu->set_input_line(0, CLEAR_LINE);
136136}
137137
138138static TIMER_CALLBACK( exctsccr_fm_callback )
139139{
140140   champbas_state *state = machine.driver_data<champbas_state>();
141   device_set_input_line_and_vector(state->m_audiocpu, 0, HOLD_LINE, 0xff);
141   state->m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
142142}
143143
144144// Champion Baseball has only one DAC
r17814r17815
180180      return;
181181
182182   data &= 1;
183   device_set_input_line(m_mcu, INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE);
183   m_mcu->execute().set_input_line(INPUT_LINE_HALT, data ? ASSERT_LINE : CLEAR_LINE);
184184}
185185
186186
r17814r17815
580580{
581581   champbas_state *state = machine.driver_data<champbas_state>();
582582
583   state->m_maincpu = machine.device("maincpu");
583   state->m_maincpu = machine.device<cpu_device>("maincpu");
584584   state->m_mcu = machine.device(CPUTAG_MCU);
585585
586586   state->save_item(NAME(state->m_watchdog_count));
r17814r17815
591591static MACHINE_START( exctsccr )
592592{
593593   champbas_state *state = machine.driver_data<champbas_state>();
594   state->m_audiocpu = machine.device("audiocpu");
594   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
595595
596596   // FIXME
597597   machine.scheduler().timer_pulse(attotime::from_hz(75), FUNC(exctsccr_fm_callback)); /* updates fm */
r17814r17815
613613   champbas_state *state = device->machine().driver_data<champbas_state>();
614614
615615   if(state->m_irq_mask)
616      device_set_input_line(device, 0, ASSERT_LINE);
616      device->execute().set_input_line(0, ASSERT_LINE);
617617}
618618
619619
trunk/src/mame/drivers/ssozumo.c
r17814r17815
185185   ssozumo_state *state = device->machine().driver_data<ssozumo_state>();
186186
187187   if(state->m_sound_nmi_mask)
188      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
188      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
189189}
190190
191191static MACHINE_CONFIG_START( ssozumo, ssozumo_state )
trunk/src/mame/drivers/ninjaw.c
r17814r17815
331331   /* however this fails when recovering from a save state
332332       if cpu B is disabled !! */
333333   ninjaw_state *state = machine.driver_data<ninjaw_state>();
334   device_set_input_line(state->m_subcpu, INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
334   state->m_subcpu->set_input_line(INPUT_LINE_RESET, (state->m_cpua_ctrl & 0x1) ? CLEAR_LINE : ASSERT_LINE);
335335
336336}
337337
r17814r17815
645645static void irqhandler( device_t *device, int irq )
646646{
647647   ninjaw_state *state = device->machine().driver_data<ninjaw_state>();
648   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
648   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
649649}
650650
651651static const ym2610_interface ym2610_config =
r17814r17815
806806
807807   state->membank("bank10")->configure_entries(0, 8, state->memregion("audiocpu")->base() + 0xc000, 0x4000);
808808
809   state->m_maincpu = machine.device("maincpu");
810   state->m_audiocpu = machine.device("audiocpu");
811   state->m_subcpu = machine.device("sub");
809   state->m_maincpu = machine.device<cpu_device>("maincpu");
810   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
811   state->m_subcpu = machine.device<cpu_device>("sub");
812812   state->m_tc0140syt = machine.device("tc0140syt");
813813   state->m_tc0100scn_1 = machine.device("tc0100scn_1");
814814   state->m_tc0100scn_2 = machine.device("tc0100scn_2");
trunk/src/mame/drivers/twin16.c
r17814r17815
688688static INTERRUPT_GEN( CPUA_interrupt )
689689{
690690   twin16_state *state = device->machine().driver_data<twin16_state>();
691   if (CPUA_IRQ_ENABLE) device_set_input_line(device, 5, HOLD_LINE);
691   if (CPUA_IRQ_ENABLE) device->execute().set_input_line(5, HOLD_LINE);
692692}
693693
694694static INTERRUPT_GEN( CPUB_interrupt )
695695{
696696   twin16_state *state = device->machine().driver_data<twin16_state>();
697   if (CPUB_IRQ_ENABLE) device_set_input_line(device, 5, HOLD_LINE);
697   if (CPUB_IRQ_ENABLE) device->execute().set_input_line(5, HOLD_LINE);
698698}
699699
700700/* Machine Drivers */
trunk/src/mame/drivers/megasys1.c
r17814r17815
296296
297297static INTERRUPT_GEN( megasys1D_irq )
298298{
299   device_set_input_line(device, 2, HOLD_LINE);
299   device->execute().set_input_line(2, HOLD_LINE);
300300}
301301
302302static ADDRESS_MAP_START( megasys1D_map, AS_PROGRAM, 16, megasys1_state )
trunk/src/mame/drivers/airbustr.c
r17814r17815
261261
262262WRITE8_MEMBER(airbustr_state::master_nmi_trigger_w)
263263{
264   device_set_input_line(m_slave, INPUT_LINE_NMI, PULSE_LINE);
264   m_slave->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
265265}
266266
267267WRITE8_MEMBER(airbustr_state::master_bankswitch_w)
r17814r17815
308308{
309309   soundlatch_byte_w(space, 0, data);
310310   m_soundlatch_status = 1;   // soundlatch has been written
311   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);   // cause a nmi to sub cpu
311   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);   // cause a nmi to sub cpu
312312}
313313
314314WRITE8_MEMBER(airbustr_state::soundcommand2_w)
r17814r17815
563563/* Sub Z80 uses IM2 too, but 0xff irq routine just contains an irq ack in it */
564564static INTERRUPT_GEN( slave_interrupt )
565565{
566   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0xfd);
566   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0xfd);
567567}
568568
569569/* Machine Initialization */
r17814r17815
584584
585585   state->m_master = machine.device("master");
586586   state->m_slave = machine.device("slave");
587   state->m_audiocpu = machine.device("audiocpu");
587   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
588588   state->m_pandora = machine.device("pandora");
589589
590590   state->save_item(NAME(state->m_soundlatch_status));
trunk/src/mame/drivers/pacman.c
r17814r17815
405405   pacman_state *state = device->machine().driver_data<pacman_state>();
406406
407407   if(state->m_irq_mask)
408      device_set_input_line(device, 0, HOLD_LINE);
408      device->execute().set_input_line(0, HOLD_LINE);
409409}
410410
411411static INTERRUPT_GEN( vblank_nmi )
r17814r17815
413413   pacman_state *state = device->machine().driver_data<pacman_state>();
414414
415415   if(state->m_irq_mask)
416      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
416      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
417417}
418418
419419WRITE8_MEMBER(pacman_state::irq_mask_w)
r17814r17815
423423
424424WRITE8_MEMBER(pacman_state::pacman_interrupt_vector_w)
425425{
426   device_set_input_line_vector(m_maincpu, 0, data);
427   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
426   m_maincpu->set_input_line_vector(0, data);
427   m_maincpu->set_input_line(0, CLEAR_LINE);
428428}
429429
430430
r17814r17815
488488{
489489   if (data == 0xfa) data = 0x78;
490490   if (data == 0xfc) data = 0xfc;
491   device_set_input_line_vector(m_maincpu, 0, data );
491   m_maincpu->set_input_line_vector(0, data );
492492}
493493
494494
r17814r17815
497497   if (data == 0xbf) data = 0x3c;
498498   if (data == 0xc6) data = 0x40;
499499   if (data == 0xfc) data = 0xfc;
500   device_set_input_line_vector(m_maincpu, 0, data );
500   m_maincpu->set_input_line_vector(0, data );
501501}
502502
503503
r17814r17815
697697
698698static INTERRUPT_GEN( s2650_interrupt )
699699{
700   device_set_input_line_and_vector(device, 0, HOLD_LINE, 0x03);
700   device->execute().set_input_line_and_vector(0, HOLD_LINE, 0x03);
701701}
702702
703703WRITE8_MEMBER(pacman_state::porky_banking_w)
trunk/src/mame/drivers/igs011.c
r17814r17815
38273827{
38283828   igs011_state *state = timer.machine().driver_data<igs011_state>();
38293829
3830   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
3830   state->m_maincpu->set_input_line(5, HOLD_LINE);
38313831}
38323832
38333833static MACHINE_CONFIG_DERIVED( drgnwrld, igs011_base )
r17814r17815
38533853   if (!state->m_lhb_irq_enable)
38543854      return;
38553855
3856   device_set_input_line(state->m_maincpu, 6, HOLD_LINE);
3856   state->m_maincpu->set_input_line(6, HOLD_LINE);
38573857}
38583858
38593859static TIMER_DEVICE_CALLBACK ( lhb_timer_irq_cb )
r17814r17815
38623862   if (!state->m_lhb_irq_enable)
38633863      return;
38643864
3865   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
3865   state->m_maincpu->set_input_line(5, HOLD_LINE);
38663866}
38673867
38683868static MACHINE_CONFIG_DERIVED( lhb, igs011_base )
r17814r17815
38793879{
38803880   igs011_state *state = timer.machine().driver_data<igs011_state>();
38813881
3882   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
3882   state->m_maincpu->set_input_line(3, HOLD_LINE);
38833883}
38843884
38853885
trunk/src/mame/drivers/bwing.c
r17814r17815
3737   bwing_state *state = device->machine().driver_data<bwing_state>();
3838
3939   if (!state->m_bwp3_nmimask)
40      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
40      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
4141}
4242
4343//****************************************************************************
r17814r17815
6060
6161WRITE8_MEMBER(bwing_state::bwp3_nmiack_w)
6262{
63   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
63   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
6464}
6565
6666
r17814r17815
8383   switch (offset)
8484   {
8585      // MSSTB
86      case 0: device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE); break;
86      case 0: m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); break;
8787
8888      // IRQACK
89      case 1: device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE); break;
89      case 1: m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); break;
9090
9191      // FIRQACK
92      case 2: device_set_input_line(m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE); break;
92      case 2: m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); break;
9393
9494      // NMIACK
95      case 3: device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE); break;
95      case 3: m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); break;
9696
9797      // SWAP(bank-swaps sprite RAM between 1800 & 1900; ignored bc. they're treated as a single chunk.)
9898      case 4: break;
r17814r17815
100100      // SNDREQ
101101      case 5:
102102         if (data == 0x80) // protection trick to screw CPU1 & 3
103            device_set_input_line(m_subcpu, INPUT_LINE_NMI, ASSERT_LINE); // SNMI
103            m_subcpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); // SNMI
104104         else
105105         {
106106            soundlatch_byte_w(space, 0, data);
107            device_set_input_line(m_audiocpu, DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ
107            m_audiocpu->set_input_line(DECO16_IRQ_LINE, HOLD_LINE); // SNDREQ
108108         }
109109      break;
110110
r17814r17815
125125{
126126   switch (offset)
127127   {
128      case 0: device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE); break; // SMSTB
128      case 0: m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); break; // SMSTB
129129
130      case 1: device_set_input_line(m_subcpu, M6809_FIRQ_LINE, CLEAR_LINE); break;
130      case 1: m_subcpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); break;
131131
132      case 2: device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE); break;
132      case 2: m_subcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); break;
133133
134      case 3: device_set_input_line(m_subcpu, INPUT_LINE_NMI, CLEAR_LINE); break;
134      case 3: m_subcpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE); break;
135135   }
136136
137137   #if BW_DEBUG
r17814r17815
337337{
338338   bwing_state *state = machine.driver_data<bwing_state>();
339339
340   state->m_maincpu = machine.device("maincpu");
341   state->m_subcpu = machine.device("sub");
342   state->m_audiocpu = machine.device("audiocpu");
340   state->m_maincpu = machine.device<cpu_device>("maincpu");
341   state->m_subcpu = machine.device<cpu_device>("sub");
342   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
343343
344344   state->save_item(NAME(state->m_palatch));
345345   state->save_item(NAME(state->m_srbank));
trunk/src/mame/drivers/sf.c
r17814r17815
4545   if (ACCESSING_BITS_0_7)
4646   {
4747      soundlatch_byte_w(space, offset, data & 0xff);
48      device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
48      m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
4949   }
5050}
5151
r17814r17815
799799static void irq_handler( device_t *device, int irq )
800800{
801801   sf_state *state = device->machine().driver_data<sf_state>();
802   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
802   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
803803}
804804
805805static const ym2151_interface ym2151_config =
r17814r17815
818818   sf_state *state = machine.driver_data<sf_state>();
819819
820820   /* devices */
821   state->m_maincpu = machine.device("maincpu");
822   state->m_audiocpu = machine.device("audiocpu");
821   state->m_maincpu = machine.device<cpu_device>("maincpu");
822   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
823823
824824   state->save_item(NAME(state->m_sf_active));
825825   state->save_item(NAME(state->m_bgscroll));
trunk/src/mame/drivers/cball.c
r17814r17815
2323   tilemap_t* m_bg_tilemap;
2424
2525   /* devices */
26   device_t *m_maincpu;
26   cpu_device *m_maincpu;
2727   DECLARE_WRITE8_MEMBER(cball_vram_w);
2828   DECLARE_READ8_MEMBER(cball_wram_r);
2929   DECLARE_WRITE8_MEMBER(cball_wram_w);
r17814r17815
9090static MACHINE_START( cball )
9191{
9292   cball_state *state = machine.driver_data<cball_state>();
93   state->m_maincpu = machine.device("maincpu");
93   state->m_maincpu = machine.device<cpu_device>("maincpu");
9494}
9595
9696static MACHINE_RESET( cball )
trunk/src/mame/drivers/konamim2.c
r17814r17815
11621162        state->m_irq_active |= 0x8;
11631163    }*/
11641164
1165   device_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE);
1165   device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
11661166}
11671167
11681168static MACHINE_CONFIG_START( m2, konamim2_state )
trunk/src/mame/drivers/cave.c
r17814r17815
108108{
109109   cave_state *state = machine.driver_data<cave_state>();
110110   if (state->m_vblank_irq || state->m_sound_irq || state->m_unknown_irq)
111      device_set_input_line(state->m_maincpu, state->m_irq_level, ASSERT_LINE);
111      state->m_maincpu->set_input_line(state->m_irq_level, ASSERT_LINE);
112112   else
113      device_set_input_line(state->m_maincpu, state->m_irq_level, CLEAR_LINE);
113      state->m_maincpu->set_input_line(state->m_irq_level, CLEAR_LINE);
114114}
115115
116116static TIMER_CALLBACK( cave_vblank_end )
r17814r17815
233233//  m_sound_flag1 = 1;
234234//  m_sound_flag2 = 1;
235235   soundlatch_word_w(space, offset, data, mem_mask);
236   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
237   device_spin_until_time(&space.device(), attotime::from_usec(50));   // Allow the other cpu to reply
236   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
237   space.device().execute().spin_until_time(attotime::from_usec(50));   // Allow the other cpu to reply
238238}
239239
240240/* Sound CPU: read the low 8 bits of the 16 bit sound latch */
r17814r17815
17971797{
17981798   cave_state *state = machine.driver_data<cave_state>();
17991799
1800   state->m_maincpu = machine.device("maincpu");
1801   state->m_audiocpu = machine.device("audiocpu");
1800   state->m_maincpu = machine.device<cpu_device>("maincpu");
1801   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
18021802
18031803   state->save_item(NAME(state->m_soundbuf_len));
18041804   state->save_item(NAME(state->m_soundbuf_data));
trunk/src/mame/drivers/dec8.c
r17814r17815
135135   // The schematics show a clocked LS194 shift register (3A) is used to automatically
136136   // clear the IRQ request.  The MCU does not clear it itself.
137137   dec8_state *state = machine.driver_data<dec8_state>();
138   device_set_input_line(state->m_mcu, MCS51_INT1_LINE, CLEAR_LINE);
138   state->m_mcu->execute().set_input_line(MCS51_INT1_LINE, CLEAR_LINE);
139139}
140140
141141WRITE8_MEMBER(dec8_state::dec8_i8751_w)
r17814r17815
145145   {
146146   case 0: /* High byte - SECIRQ is trigged on activating this latch */
147147      m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
148      device_set_input_line(m_mcu, MCS51_INT1_LINE, ASSERT_LINE);
148      m_mcu->execute().set_input_line(MCS51_INT1_LINE, ASSERT_LINE);
149149      machine().scheduler().timer_set(m_mcu->clocks_to_attotime(64), FUNC(dec8_i8751_timer_callback)); // 64 clocks not confirmed
150150      break;
151151   case 1: /* Low byte */
r17814r17815
175175   {
176176   case 0: /* High byte */
177177      m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
178      device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
178      m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
179179      break;
180180   case 1: /* Low byte */
181181      m_i8751_value = (m_i8751_value & 0xff00) | data;
r17814r17815
238238   {
239239   case 0: /* High byte */
240240      m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
241      device_set_input_line(m_subcpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal sub cpu */
241      m_subcpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE); /* Signal sub cpu */
242242      break;
243243   case 1: /* Low byte */
244244      m_i8751_value = (m_i8751_value & 0xff00) | data;
r17814r17815
276276   {
277277   case 0: /* High byte */
278278      m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
279      device_set_input_line(m_maincpu, M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
279      m_maincpu->set_input_line(M6809_FIRQ_LINE, HOLD_LINE); /* Signal main cpu */
280280      break;
281281   case 1: /* Low byte */
282282      m_i8751_value = (m_i8751_value & 0xff00) | data;
r17814r17815
459459
460460   membank("bank1")->set_entry(data >> 4);
461461
462   if ((data&1)==0) device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
462   if ((data&1)==0) m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
463463   if (data & 2) m_nmi_enable =1; else m_nmi_enable = 0;
464464   flip_screen_set(data & 0x08);
465465}
r17814r17815
479479WRITE8_MEMBER(dec8_state::dec8_sound_w)
480480{
481481   soundlatch_byte_w(space, 0, data);
482   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
482   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
483483}
484484
485485static void csilver_adpcm_int( device_t *device )
r17814r17815
487487   dec8_state *state = device->machine().driver_data<dec8_state>();
488488   state->m_toggle ^= 1;
489489   if (state->m_toggle)
490      device_set_input_line(state->m_audiocpu, M6502_IRQ_LINE, HOLD_LINE);
490      state->m_audiocpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
491491
492492   msm5205_data_w(device, state->m_msm5205next >> 4);
493493   state->m_msm5205next <<= 4;
r17814r17815
518518   switch (offset)
519519   {
520520   case 0: /* IRQ2 */
521      device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
521      m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
522522      return;
523523   case 1: /* IRC 1 */
524      device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
524      m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
525525      return;
526526   case 2: /* IRQ 1 */
527      device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
527      m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
528528      return;
529529   case 3: /* IRC 2 */
530      device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
530      m_subcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
531531      return;
532532   }
533533}
r17814r17815
542542   switch (offset)
543543   {
544544   case 0: /* CPU 2 - IRQ acknowledge */
545      device_set_input_line(m_subcpu, M6809_IRQ_LINE, CLEAR_LINE);
545      m_subcpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
546546      return;
547547   case 1: /* CPU 1 - IRQ acknowledge */
548      device_set_input_line(m_maincpu, M6809_IRQ_LINE, CLEAR_LINE);
548      m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
549549      return;
550550   case 2: /* i8751 - FIRQ acknowledge */
551551      return;
552552   case 3: /* IRQ 1 */
553      device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
553      m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
554554      return;
555555   case 4: /* IRQ 2 */
556      device_set_input_line(m_subcpu, M6809_IRQ_LINE, ASSERT_LINE);
556      m_subcpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
557557      return;
558558   }
559559#endif
r17814r17815
567567   case 2: /* i8751 - FIRQ acknowledge */
568568      return;
569569   case 3: /* IRQ 1 */
570      device_set_input_line(m_maincpu, M6809_IRQ_LINE, HOLD_LINE);
570      m_maincpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
571571      return;
572572   case 4: /* IRQ 2 */
573      device_set_input_line(m_subcpu, M6809_IRQ_LINE, HOLD_LINE);
573      m_subcpu->set_input_line(M6809_IRQ_LINE, HOLD_LINE);
574574      return;
575575   }
576576}
r17814r17815
960960
961961   // P2 - IRQ to main CPU
962962   if (offset==2 && (data&4)==0)
963      device_set_input_line(m_maincpu, M6809_IRQ_LINE, ASSERT_LINE);
963      m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
964964}
965965
966966static ADDRESS_MAP_START( dec8_mcu_io_map, AS_IO, 8, dec8_state )
r17814r17815
19351935static void irqhandler( device_t *device, int linestate )
19361936{
19371937   dec8_state *state = device->machine().driver_data<dec8_state>();
1938   device_set_input_line(state->m_audiocpu, 0, linestate); /* M6502_IRQ_LINE */
1938   state->m_audiocpu->set_input_line(0, linestate); /* M6502_IRQ_LINE */
19391939}
19401940
19411941static const ym3526_interface ym3526_config =
r17814r17815
19601960{
19611961   dec8_state *state = device->machine().driver_data<dec8_state>();
19621962   if (state->m_nmi_enable)
1963      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE); /* VBL */
1963      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); /* VBL */
19641964}
19651965
19661966/* Coins generate NMI's */
r17814r17815
19711971   if (state->m_latch && (state->ioport("IN2")->read() & 0x7) != 0x7)
19721972   {
19731973      state->m_latch = 0;
1974      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
1974      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
19751975   }
19761976}
19771977
r17814r17815
19821982{
19831983   dec8_state *state = machine.driver_data<dec8_state>();
19841984
1985   state->m_maincpu = machine.device("maincpu");
1986   state->m_subcpu = machine.device("sub");
1987   state->m_audiocpu = machine.device("audiocpu");
1985   state->m_maincpu = machine.device<cpu_device>("maincpu");
1986   state->m_subcpu = machine.device<cpu_device>("sub");
1987   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
19881988   state->m_mcu = machine.device("mcu");
19891989
19901990   state->save_item(NAME(state->m_latch));
trunk/src/mame/drivers/fuukifg3.c
r17814r17815
525525static TIMER_CALLBACK( level_1_interrupt_callback )
526526{
527527   fuuki32_state *state = machine.driver_data<fuuki32_state>();
528   device_set_input_line(state->m_maincpu, 1, HOLD_LINE);
528   state->m_maincpu->set_input_line(1, HOLD_LINE);
529529   machine.scheduler().timer_set(machine.primary_screen->time_until_pos(248), FUNC(level_1_interrupt_callback));
530530}
531531
r17814r17815
533533static TIMER_CALLBACK( vblank_interrupt_callback )
534534{
535535   fuuki32_state *state = machine.driver_data<fuuki32_state>();
536   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);   // VBlank IRQ
536   state->m_maincpu->set_input_line(3, HOLD_LINE);   // VBlank IRQ
537537   machine.scheduler().timer_set(machine.primary_screen->time_until_vblank_start(), FUNC(vblank_interrupt_callback));
538538}
539539
r17814r17815
541541static TIMER_CALLBACK( raster_interrupt_callback )
542542{
543543   fuuki32_state *state = machine.driver_data<fuuki32_state>();
544   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);   // Raster Line IRQ
544   state->m_maincpu->set_input_line(5, HOLD_LINE);   // Raster Line IRQ
545545   machine.primary_screen->update_partial(machine.primary_screen->vpos());
546546   state->m_raster_interrupt_timer->adjust(machine.primary_screen->frame_period());
547547}
r17814r17815
554554
555555   state->membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000);
556556
557   state->m_maincpu = machine.device("maincpu");
558   state->m_audiocpu = machine.device("soundcpu");
557   state->m_maincpu = machine.device<cpu_device>("maincpu");
558   state->m_audiocpu = machine.device<cpu_device>("soundcpu");
559559
560560   state->m_raster_interrupt_timer = machine.scheduler().timer_alloc(FUNC(raster_interrupt_callback));
561561
r17814r17815
578578static void irqhandler( device_t *device, int irq )
579579{
580580   fuuki32_state *state = device->machine().driver_data<fuuki32_state>();
581   device_set_input_line(state->m_audiocpu, 0, irq ? ASSERT_LINE : CLEAR_LINE);
581   state->m_audiocpu->set_input_line(0, irq ? ASSERT_LINE : CLEAR_LINE);
582582}
583583
584584static const ymf278b_interface fuuki32_ymf278b_interface =
trunk/src/mame/drivers/battlane.c
r17814r17815
4848    /*
4949    if (~m_cpu_control & 0x08)
5050    {
51        device_set_input_line(m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
52        device_set_input_line(m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
51        m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
52        m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
5353    }
5454    */
5555
r17814r17815
5757        CPU2's SWI will trigger an 6809 IRQ on the master by resetting 0x04
5858        Master will respond by setting the bit back again
5959    */
60    device_set_input_line(m_maincpu, M6809_IRQ_LINE,  data & 0x04 ? CLEAR_LINE : HOLD_LINE);
60    m_maincpu->set_input_line(M6809_IRQ_LINE,  data & 0x04 ? CLEAR_LINE : HOLD_LINE);
6161
6262   /*
6363    Slave function call (e.g. ROM test):
r17814r17815
7575    FA96: 27 FA       BEQ   $FA92   ; Wait for bit to be set
7676    */
7777
78   device_set_input_line(m_subcpu, M6809_IRQ_LINE, data & 0x02 ? CLEAR_LINE : HOLD_LINE);
78   m_subcpu->set_input_line(M6809_IRQ_LINE, data & 0x02 ? CLEAR_LINE : HOLD_LINE);
7979}
8080
8181static INTERRUPT_GEN( battlane_cpu1_interrupt )
r17814r17815
8585   /* See note in battlane_cpu_command_w */
8686   if (~state->m_cpu_control & 0x08)
8787   {
88      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
89      device_set_input_line(state->m_subcpu, INPUT_LINE_NMI, PULSE_LINE);
88      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
89      state->m_subcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
9090   }
9191}
9292
r17814r17815
271271{
272272   battlane_state *state = machine.driver_data<battlane_state>();
273273
274   state->m_maincpu = machine.device("maincpu");
275   state->m_subcpu = machine.device("sub");
274   state->m_maincpu = machine.device<cpu_device>("maincpu");
275   state->m_subcpu = machine.device<cpu_device>("sub");
276276
277277   state->save_item(NAME(state->m_video_ctrl));
278278   state->save_item(NAME(state->m_cpu_control));
trunk/src/mame/drivers/crimfght.c
r17814r17815
2828   crimfght_state *state = device->machine().driver_data<crimfght_state>();
2929
3030   if (k051960_is_irq_enabled(state->m_k051960))
31      device_set_input_line(device, KONAMI_IRQ_LINE, HOLD_LINE);
31      device->execute().set_input_line(KONAMI_IRQ_LINE, HOLD_LINE);
3232}
3333
3434WRITE8_MEMBER(crimfght_state::crimfght_coin_w)
r17814r17815
4040WRITE8_MEMBER(crimfght_state::crimfght_sh_irqtrigger_w)
4141{
4242   soundlatch_byte_w(space, offset, data);
43   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
43   m_audiocpu->set_input_line(0, HOLD_LINE);
4444}
4545
4646WRITE8_MEMBER(crimfght_state::crimfght_snd_bankswitch_w)
r17814r17815
266266   state->membank("bank2")->configure_entries(0, 12, &ROM[0x10000], 0x2000);
267267   state->membank("bank2")->set_entry(0);
268268
269   state->m_maincpu = machine.device("maincpu");
270   state->m_audiocpu = machine.device("audiocpu");
269   state->m_maincpu = machine.device<cpu_device>("maincpu");
270   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
271271   state->m_k052109 = machine.device("k052109");
272272   state->m_k051960 = machine.device("k051960");
273273   state->m_k007232 = machine.device("k007232");
trunk/src/mame/drivers/asuka.c
r17814r17815
233233static TIMER_CALLBACK( cadash_interrupt5 )
234234{
235235   asuka_state *state = machine.driver_data<asuka_state>();
236   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
236   state->m_maincpu->set_input_line(5, HOLD_LINE);
237237}
238238
239239static INTERRUPT_GEN( cadash_interrupt )
240240{
241241   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(500), FUNC(cadash_interrupt5));
242   device_set_input_line(device, 4, HOLD_LINE);  /* interrupt vector 4 */
242   device->execute().set_input_line(4, HOLD_LINE);  /* interrupt vector 4 */
243243}
244244
245245
r17814r17815
837837{
838838   asuka_state *state = machine.driver_data<asuka_state>();
839839
840   state->m_maincpu = machine.device("maincpu");
841   state->m_audiocpu = machine.device("audiocpu");
840   state->m_maincpu = machine.device<cpu_device>("maincpu");
841   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
842842   state->m_pc090oj = machine.device("pc090oj");
843843   state->m_tc0100scn = machine.device("tc0100scn");
844844
trunk/src/mame/drivers/pooyan.c
r17814r17815
2929   pooyan_state *state = device->machine().driver_data<pooyan_state>();
3030
3131   if (state->m_irq_enable)
32      device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
32      device->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
3333}
3434
3535
r17814r17815
3838
3939   m_irq_enable = data & 1;
4040   if (!m_irq_enable)
41      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
41      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
4242}
4343
4444
trunk/src/mame/drivers/rollerg.c
r17814r17815
5858
5959WRITE8_MEMBER(rollerg_state::soundirq_w)
6060{
61   device_set_input_line_and_vector(m_audiocpu, 0, HOLD_LINE, 0xff);
61   m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff);
6262}
6363
6464static TIMER_CALLBACK( nmi_callback )
6565{
6666   rollerg_state *state = machine.driver_data<rollerg_state>();
67   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
67   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
6868}
6969
7070WRITE8_MEMBER(rollerg_state::sound_arm_nmi_w)
7171{
72   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
72   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
7373   machine().scheduler().timer_set(attotime::from_usec(50), FUNC(nmi_callback));   /* kludge until the K053260 is emulated correctly */
7474}
7575
r17814r17815
256256   state->membank("bank1")->configure_entries(6, 2, &ROM[0x10000], 0x4000);
257257   state->membank("bank1")->set_entry(0);
258258
259   state->m_maincpu = machine.device("maincpu");
260   state->m_audiocpu = machine.device("audiocpu");
259   state->m_maincpu = machine.device<cpu_device>("maincpu");
260   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
261261   state->m_k053244 = machine.device("k053244");
262262   state->m_k051316 = machine.device("k051316");
263263   state->m_k053260 = machine.device("k053260");
trunk/src/mame/drivers/hvyunit.c
r17814r17815
211211
212212WRITE8_MEMBER(hvyunit_state::trigger_nmi_on_slave_cpu)
213213{
214   device_set_input_line(m_slave_cpu, INPUT_LINE_NMI, PULSE_LINE);
214   m_slave_cpu->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
215215}
216216
217217WRITE8_MEMBER(hvyunit_state::master_bankswitch_w)
r17814r17815
228228   m_data_to_mermaid = data;
229229   m_z80_to_mermaid_full = 1;
230230   m_mermaid_int0_l = 0;
231   device_set_input_line(m_mermaid, INPUT_LINE_IRQ0, ASSERT_LINE);
231   m_mermaid->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
232232}
233233
234234READ8_MEMBER(hvyunit_state::mermaid_data_r)
r17814r17815
255255{
256256
257257   soundlatch_byte_w(space, 0, data);
258   device_set_input_line(m_sound_cpu, INPUT_LINE_NMI, PULSE_LINE);
258   m_sound_cpu->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
259259}
260260
261261WRITE8_MEMBER(hvyunit_state::hu_videoram_w)
r17814r17815
358358   if (data == 0xff)
359359   {
360360      m_mermaid_int0_l = 1;
361      device_set_input_line(m_mermaid, INPUT_LINE_IRQ0, CLEAR_LINE);
361      m_mermaid->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
362362   }
363363
364364   m_mermaid_p[1] = data;
r17814r17815
404404{
405405
406406   m_mermaid_p[3] = data;
407   device_set_input_line(m_slave_cpu, INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
407   m_slave_cpu->execute().set_input_line(INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
408408}
409409
410410
r17814r17815
630630   int scanline = param;
631631
632632   if(scanline == 240) // vblank-out irq
633      device_set_input_line_and_vector(state->m_master_cpu, 0, HOLD_LINE, 0xfd);
633      state->m_master_cpu->execute().set_input_line_and_vector(0, HOLD_LINE, 0xfd);
634634
635635   /* Pandora "sprite end dma" irq? TODO: timing is likely off */
636636   if(scanline == 64)
637      device_set_input_line_and_vector(state->m_master_cpu, 0, HOLD_LINE, 0xff);
637      state->m_master_cpu->execute().set_input_line_and_vector(0, HOLD_LINE, 0xff);
638638}
639639
640640static const kaneko_pandora_interface hvyunit_pandora_config =
trunk/src/mame/drivers/tankbatt.c
r17814r17815
182182static INTERRUPT_GEN( tankbatt_interrupt )
183183{
184184   tankbatt_state *state = device->machine().driver_data<tankbatt_state>();
185   if (state->m_nmi_enable) device_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE);
185   if (state->m_nmi_enable) device->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE);
186186}
187187
188188INPUT_CHANGED_MEMBER(tankbatt_state::coin_inserted)
trunk/src/mame/drivers/royalmah.c
r17814r17815
32493249{
32503250   royalmah_state *state = device->machine().driver_data<royalmah_state>();
32513251   if ( state->m_suzume_bank & 0x40 )
3252      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
3252      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
32533253}
32543254
32553255static MACHINE_CONFIG_DERIVED( suzume, dondenmj )
r17814r17815
32953295   int scanline = param;
32963296
32973297   if(scanline == 248)
3298      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x80);   // vblank
3298      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x80);   // vblank
32993299
33003300   if(scanline == 0)
3301      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0x84);   // demo
3301      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x84);   // demo
33023302}
33033303
33043304WRITE_LINE_MEMBER(royalmah_state::janptr96_rtc_irq)
33053305{
3306   device_set_input_line_and_vector(m_maincpu, 0, HOLD_LINE, 0x82);   // rtc
3306   m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0x82);   // rtc
33073307}
33083308
33093309static MSM6242_INTERFACE( janptr96_rtc_intf )
r17814r17815
33533353{
33543354   royalmah_state *state = device->machine().driver_data<royalmah_state>();
33553355
3356   device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE);   // vblank
3356   state->m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);   // vblank
33573357}
33583358
33593359WRITE_LINE_MEMBER(royalmah_state::mjtensin_rtc_irq)
33603360{
3361   device_set_input_line(m_maincpu, INPUT_LINE_IRQ1, HOLD_LINE);   // rtc
3361   m_maincpu->set_input_line(INPUT_LINE_IRQ1, HOLD_LINE);   // rtc
33623362}
33633363
33643364
trunk/src/mame/drivers/crospang.c
r17814r17815
318318static void irqhandler( device_t *device, int linestate )
319319{
320320   crospang_state *state = device->machine().driver_data<crospang_state>();
321   device_set_input_line(state->m_audiocpu, 0, linestate);
321   state->m_audiocpu->set_input_line(0, linestate);
322322}
323323
324324static const ym3812_interface ym3812_config =
r17814r17815
331331{
332332   crospang_state *state = machine.driver_data<crospang_state>();
333333
334   state->m_audiocpu = machine.device("audiocpu");
334   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
335335
336336   state->save_item(NAME(state->m_bestri_tilebank));
337337
trunk/src/mame/drivers/funybubl.c
r17814r17815
6868WRITE8_MEMBER(funybubl_state::funybubl_soundcommand_w)
6969{
7070   soundlatch_byte_w(space, 0, data);
71   device_set_input_line(m_audiocpu, 0, HOLD_LINE);
71   m_audiocpu->set_input_line(0, HOLD_LINE);
7272}
7373
7474WRITE8_MEMBER(funybubl_state::funybubl_oki_bank_sw)
r17814r17815
205205   funybubl_state *state = machine.driver_data<funybubl_state>();
206206   UINT8 *ROM = state->memregion("maincpu")->base();
207207
208   state->m_audiocpu = machine.device("audiocpu");
208   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
209209
210210   state->save_item(NAME(state->m_banked_vram));
211211
trunk/src/mame/drivers/rotaryf.c
r17814r17815
4545   int scanline = param;
4646
4747   if (scanline == 256)
48      device_set_input_line(state->m_maincpu, I8085_RST55_LINE, HOLD_LINE);
48      state->m_maincpu->set_input_line(I8085_RST55_LINE, HOLD_LINE);
4949   else if((scanline % 64) == 0)
5050   {
51      device_set_input_line(state->m_maincpu, I8085_RST75_LINE, ASSERT_LINE);
52      device_set_input_line(state->m_maincpu, I8085_RST75_LINE, CLEAR_LINE);
51      state->m_maincpu->set_input_line(I8085_RST75_LINE, ASSERT_LINE);
52      state->m_maincpu->set_input_line(I8085_RST75_LINE, CLEAR_LINE);
5353   }
5454}
5555
trunk/src/mame/drivers/m10.c
r17814r17815
132132{
133133   m10_state *state = device->machine().driver_data<m10_state>();
134134   LOG(("ic8j1: %d %d\n", data, device->machine().primary_screen->vpos()));
135   device_set_input_line(state->m_maincpu, 0, !data ? CLEAR_LINE : ASSERT_LINE);
135   state->m_maincpu->set_input_line(0, !data ? CLEAR_LINE : ASSERT_LINE);
136136}
137137
138138static WRITE8_DEVICE_HANDLER( ic8j2_output_changed )
r17814r17815
196196{
197197   m10_state *state = machine.driver_data<m10_state>();
198198
199   state->m_maincpu = machine.device("maincpu");
199   state->m_maincpu = machine.device<cpu_device>("maincpu");
200200   state->m_ic8j1 = machine.device("ic8j1");
201201   state->m_ic8j2 = machine.device("ic8j2");
202202   state->m_samples = machine.device<samples_device>("samples");
r17814r17815
486486READ8_MEMBER(m10_state::m11_a700_r)
487487{
488488   //LOG(("rd:%d\n",machine().primary_screen->vpos()));
489   //device_set_input_line(m_maincpu, 0, CLEAR_LINE);
489   //m_maincpu->set_input_line(0, CLEAR_LINE);
490490   LOG(("clear\n"));
491491   ttl74123_clear_w(m_ic8j1, 0, 0);
492492   ttl74123_clear_w(m_ic8j1, 0, 1);
r17814r17815
502502INPUT_CHANGED_MEMBER(m10_state::coin_inserted)
503503{
504504   /* coin insertion causes an NMI */
505   device_set_input_line(m_maincpu, INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
505   m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
506506}
507507
508508
r17814r17815
511511   m10_state *state = machine.driver_data<m10_state>();
512512   if (param == 0)
513513   {
514      device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
514      state->m_maincpu->set_input_line(0, ASSERT_LINE);
515515      machine.scheduler().timer_set(machine.primary_screen->time_until_pos(IREMM10_VBSTART + 16), FUNC(interrupt_callback), 1);
516516   }
517517   if (param == 1)
518518   {
519      device_set_input_line(state->m_maincpu, 0, ASSERT_LINE);
519      state->m_maincpu->set_input_line(0, ASSERT_LINE);
520520      machine.scheduler().timer_set(machine.primary_screen->time_until_pos(IREMM10_VBSTART + 24), FUNC(interrupt_callback), 2);
521521   }
522522   if (param == -1)
523      device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
523      state->m_maincpu->set_input_line(0, CLEAR_LINE);
524524
525525}
526526
527527#if 0
528528static INTERRUPT_GEN( m11_interrupt )
529529{
530   device_set_input_line(device, 0, ASSERT_LINE);
530   device->execute().set_input_line(0, ASSERT_LINE);
531531   //device->machine().scheduler().timer_set(machine.primary_screen->time_until_pos(IREMM10_VBEND), FUNC(interrupt_callback), -1);
532532}
533533
534534static INTERRUPT_GEN( m10_interrupt )
535535{
536   device_set_input_line(device, 0, ASSERT_LINE);
536   device->execute().set_input_line(0, ASSERT_LINE);
537537}
538538#endif
539539
540540static INTERRUPT_GEN( m15_interrupt )
541541{
542   device_set_input_line(device, 0, ASSERT_LINE);
542   device->execute().set_input_line(0, ASSERT_LINE);
543543   device->machine().scheduler().timer_set(device->machine().primary_screen->time_until_pos(IREMM10_VBSTART + 1, 80), FUNC(interrupt_callback), -1);
544544}
545545
trunk/src/emu/cpu/m68000/m68kcpu.c
r17814r17815
19941994
19951995void m68307_set_interrupt(device_t *device, int level, int vector)
19961996{
1997   device_set_input_line_and_vector(device, level, HOLD_LINE, vector);
1997   device->execute().set_input_line_and_vector(level, HOLD_LINE, vector);
19981998}
19991999
20002000void m68307_timer0_interrupt(legacy_cpu_device *cpudev)
trunk/src/emu/cpu/tms34010/34010ops.c
r17814r17815
9696   /* extra check to prevent bad things */
9797   if (tms->pc == 0 || opcode_table[tms->direct->read_decrypted_word(TOBYTE(tms->pc)) >> 4] == unimpl)
9898   {
99      device_set_input_line(tms->device, INPUT_LINE_HALT, ASSERT_LINE);
99      tms->device->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
100100      debugger_break(tms->device->machine());
101101   }
102102}
trunk/src/emu/cpu/tms34010/tms34010.c
r17814r17815
769769   LOG(("TMS34010 '%s' set internal interrupt $%04x\n", tms->device->tag(), type));
770770
771771   /* generate triggers so that spin loops can key off them */
772   device_triggerint(tms->device);
772   tms->device->signal_interrupt_trigger();
773773}
774774
775775
r17814r17815
12351235         /* if the CPU is halting itself, stop execution right away */
12361236         if ((data & 0x8000) && !tms->external_host_access)
12371237            tms->icount = 0;
1238         device_set_input_line(tms->device, INPUT_LINE_HALT, (data & 0x8000) ? ASSERT_LINE : CLEAR_LINE);
1238         tms->device->set_input_line(INPUT_LINE_HALT, (data & 0x8000) ? ASSERT_LINE : CLEAR_LINE);
12391239
12401240         /* NMI issued? */
12411241         if (data & 0x0100)
r17814r17815
13861386         /* if the CPU is halting itself, stop execution right away */
13871387         if ((data & 0x8000) && !tms->external_host_access)
13881388            tms->icount = 0;
1389         device_set_input_line(tms->device, INPUT_LINE_HALT, (data & 0x8000) ? ASSERT_LINE : CLEAR_LINE);
1389         tms->device->set_input_line(INPUT_LINE_HALT, (data & 0x8000) ? ASSERT_LINE : CLEAR_LINE);
13901390
13911391         /* NMI issued? */
13921392         if (data & 0x0100)
trunk/src/emu/cpu/m37710/m37710.c
r17814r17815
269269   cpustate->timers[which]->adjust(cpustate->reload[which], param);
270270
271271   m37710_set_irq_line(cpustate, curirq, HOLD_LINE);
272   device_triggerint(cpustate->device);
272   cpustate->device->signal_interrupt_trigger();
273273}
274274
275275static void m37710_external_tick(m37710i_cpu_struct *cpustate, int timer, int state)
trunk/src/emu/cpu/i86/instr286.c
r17814r17815
111111      // this is supposed to triggered by support hardware
112112      // create a shutdown output line that causes a reset
113113      // NMI can wake processor without reset
114      device_set_input_line(cpustate->device, INPUT_LINE_RESET, PULSE_LINE);
114      cpustate->device->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
115115   cpustate->trap_level = 0;
116116}
117117
trunk/src/emu/cpu/i386/x87ops.c
r17814r17815
292292
293293   if ((cpustate->x87_sw & ~cpustate->x87_cw) & 0x3f)
294294   {
295      // device_set_input_line(cpustate->device, INPUT_LINE_FERR, RAISE_LINE);
295      // cpustate->device->execute().set_input_line(INPUT_LINE_FERR, RAISE_LINE);
296296      logerror("Unmasked x87 exception (CW:%.4x, SW:%.4x)\n", cpustate->x87_cw, cpustate->x87_sw);
297297      if (cpustate->cr[0] & 0x20) // FIXME: 486 and up only
298298      {
trunk/src/emu/cpu/i386/i386.c
r17814r17815
646646      if(trap_level >= 3)
647647      {
648648         logerror("IRQ: Triple fault. CPU reset.\n");
649         device_set_input_line(cpustate->device, INPUT_LINE_RESET, PULSE_LINE);
649         cpustate->device->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
650650         return;
651651      }
652652
trunk/src/emu/cpu/m6502/m6502.h
r17814r17815
4646};
4747
4848#define M6502_IRQ_LINE      0
49/* use device_set_input_line(cpudevice, M6502_SET_OVERFLOW, level)
49/* use cpudevice->execute().set_input_line(M6502_SET_OVERFLOW, level)
5050   to change level of the so input line
5151   positiv edge sets overflow flag */
5252#define M6502_SET_OVERFLOW   1
trunk/src/emu/cpu/m6502/m6509.h
r17814r17815
3434};
3535
3636#define M6509_IRQ_LINE               M6502_IRQ_LINE
37/* use device_set_input_line(cpudevice, M6509_SET_OVERFLOW, level)
37/* use cpudevice->execute().set_input_line(M6509_SET_OVERFLOW, level)
3838   to change level of the so input line
3939   positiv edge sets overflow flag */
4040#define M6509_SET_OVERFLOW 3
trunk/src/emu/cpu/jaguar/jaguar.c
r17814r17815
479479   /* if we're halted, we shouldn't be here */
480480   if (!(jaguar->ctrl[G_CTRL] & 1))
481481   {
482      //device_set_input_line(device, INPUT_LINE_HALT, ASSERT_LINE);
482      //device->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
483483      jaguar->icount = 0;
484484      return;
485485   }
r17814r17815
518518   /* if we're halted, we shouldn't be here */
519519   if (!(jaguar->ctrl[G_CTRL] & 1))
520520   {
521      //device_set_input_line(device, INPUT_LINE_HALT, ASSERT_LINE);
521      //device->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
522522      jaguar->icount = 0;
523523      return;
524524   }
r17814r17815
12961296         jaguar->ctrl[offset] = newval;
12971297         if ((oldval ^ newval) & 0x01)
12981298         {
1299            device_set_input_line(device, INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE);
1300            device_yield(device);
1299            device->execute().set_input_line(INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE);
1300            device->execute().yield();
13011301         }
13021302         if (newval & 0x02)
13031303         {
r17814r17815
13951395         jaguar->ctrl[offset] = newval;
13961396         if ((oldval ^ newval) & 0x01)
13971397         {
1398            device_set_input_line(device, INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE);
1399            device_yield(device);
1398            device->execute().set_input_line(INPUT_LINE_HALT, (newval & 1) ? CLEAR_LINE : ASSERT_LINE);
1399            device->execute().yield();
14001400         }
14011401         if (newval & 0x02)
14021402         {
trunk/src/emu/cpu/sh4/sh4comn.c
r17814r17815
10411041   if (sh4->irln == value)
10421042      return;
10431043   sh4->irln = value;
1044   device_set_input_line(device, SH4_IRLn, ASSERT_LINE);
1045   device_set_input_line(device, SH4_IRLn, CLEAR_LINE);
1044   device->execute().set_input_line(SH4_IRLn, ASSERT_LINE);
1045   device->execute().set_input_line(SH4_IRLn, CLEAR_LINE);
10461046}
10471047
10481048void sh4_set_irq_line(sh4_state *sh4, int irqline, int state) // set state of external interrupt line
trunk/src/emu/cpu/mips/mips3com.c
r17814r17815
753753static TIMER_CALLBACK( compare_int_callback )
754754{
755755   legacy_cpu_device *device = (legacy_cpu_device *)ptr;
756   device_set_input_line(device, MIPS3_IRQ5, ASSERT_LINE);
756   device->set_input_line(MIPS3_IRQ5, ASSERT_LINE);
757757}
758758
759759
trunk/src/emu/cpu/tms7000/tms7000.c
r17814r17815
545545        if( --cpustate->t1_decrementer < 0 ) /* Decrement timer1 register and check for underflow */
546546        {
547547            cpustate->t1_decrementer = cpustate->pf[2]; /* Reload decrementer (8 bit) */
548         device_set_input_line(device, TMS7000_IRQ2_LINE, HOLD_LINE);
548         device->execute().set_input_line(TMS7000_IRQ2_LINE, HOLD_LINE);
549549            //LOG( ("tms7000: trigger int2 (cycles: %d)\t%d\tdelta %d\n", cpustate->device->total_cycles(), cpustate->device->total_cycles() - tick, cpustate->cycles_per_INT2-(cpustate->device->total_cycles() - tick) );
550550         //tick = cpustate->device->total_cycles() );
551551            /* Also, cascade out to timer 2 - timer 2 unimplemented */
trunk/src/emu/cpu/cp1610/cp1610.c
r17814r17815
15611561static CPU_RESET( cp1610 )
15621562{
15631563   /* This is how we set the reset vector */
1564   device_set_input_line(device, CP1610_RESET, PULSE_LINE);
1564   device->set_input_line(CP1610_RESET, PULSE_LINE);
15651565}
15661566
15671567/***************************************************
trunk/src/emu/video/voodoo.c
r17814r17815
21592159   if (v->pci.stall_callback)
21602160      (*v->pci.stall_callback)(v->device, TRUE);
21612161   else
2162      device_spin_until_trigger(v->cpu, v->trigger);
2162      v->cpu->execute().spin_until_trigger(v->trigger);
21632163
21642164   /* set a timer to clear the stall */
21652165   v->pci.continue_timer->adjust(v->pci.op_end_time - current_time);
r17814r17815
38003800         /* bit 31 is not used */
38013801
38023802         /* eat some cycles since people like polling here */
3803         device_eat_cycles(v->cpu, 1000);
3803         v->cpu->execute().eat_cycles(1000);
38043804         break;
38053805
38063806      /* bit 2 of the initEnable register maps this to dacRead */
r17814r17815
38133813      case vRetrace:
38143814
38153815         /* eat some cycles since people like polling here */
3816         device_eat_cycles(v->cpu, 10);
3816         v->cpu->execute().eat_cycles(10);
38173817         result = v->screen->vpos();
38183818         break;
38193819
r17814r17815
38283828         result = v->fbi.cmdfifo[0].rdptr;
38293829
38303830         /* eat some cycles since people like polling here */
3831         device_eat_cycles(v->cpu, 1000);
3831         v->cpu->execute().eat_cycles(1000);
38323832         break;
38333833
38343834      case cmdFifoAMin:
trunk/src/emu/sound/scsp.c
r17814r17815
12411241   if(scsp->udata.data[0x1e/2] & 0x10)
12421242   {
12431243      popmessage("SCSP DMA IRQ triggered, contact MAMEdev");
1244      device_set_input_line(space->machine().device("audiocpu"),DecodeSCI(scsp,SCIDMA),HOLD_LINE);
1244      space->machine().device("audiocpu")->execute().set_input_line(DecodeSCI(scsp,SCIDMA),HOLD_LINE);
12451245   }
12461246}
12471247
trunk/src/emu/machine/k056230.c
r17814r17815
9696{
9797   if(m_cpu)
9898   {
99      device_set_input_line(m_cpu, INPUT_LINE_IRQ2, CLEAR_LINE);
99      m_cpu->execute().set_input_line(INPUT_LINE_IRQ2, CLEAR_LINE);
100100   }
101101}
102102
r17814r17815
118118            {
119119               if(m_cpu)
120120               {
121                  device_set_input_line(m_cpu, INPUT_LINE_IRQ2, ASSERT_LINE);
121                  m_cpu->execute().set_input_line(INPUT_LINE_IRQ2, ASSERT_LINE);
122122               }
123123               machine().scheduler().timer_set(attotime::from_usec(10), FUNC(network_irq_clear_callback), 0, (void*)this);
124124            }
125125         }
126126//          else
127//              device_set_input_line(k056230->cpu, INPUT_LINE_IRQ2, CLEAR_LINE);
127//              k056230->cpu->execute().set_input_line(INPUT_LINE_IRQ2, CLEAR_LINE);
128128         break;
129129      }
130130      case 2:      // Sub ID register
trunk/src/emu/machine/8042kbdc.c
r17814r17815
597597             * the bits low set in the command byte.  The only pulse that has
598598             * an effect currently is bit 0, which pulses the CPU's reset line
599599             */
600         device_set_input_line(space->machine().firstcpu, INPUT_LINE_RESET, PULSE_LINE);
600         space->machine().firstcpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
601601         at_8042_set_outport(space->machine(), kbdc8042.outport | 0x02, 0);
602602         break;
603603      }
trunk/src/emu/machine/tmp68301.c
r17814r17815
4747      tmp68301_irq_vector[level]   =   IVNR & 0x00e0;
4848      tmp68301_irq_vector[level]   +=   4+i;
4949
50      device_set_input_line(machine.firstcpu,level,HOLD_LINE);
50      machine.firstcpu->set_input_line(level,HOLD_LINE);
5151   }
5252
5353   if (TCR & 0x0080)   // N/1
r17814r17815
120120   for (i = 0; i < 3; i++)
121121      tmp68301_IE[i] = 0;
122122
123   device_set_irq_callback(machine.firstcpu, tmp68301_irq_callback);
123   machine.firstcpu->set_irq_acknowledge_callback(tmp68301_irq_callback);
124124}
125125
126126/* Update the IRQ state based on all possible causes */
r17814r17815
150150
151151         tmp68301_IE[i] = 0;      // Interrupts are edge triggerred
152152
153         device_set_input_line(machine.firstcpu,level,HOLD_LINE);
153         machine.firstcpu->set_input_line(level,HOLD_LINE);
154154      }
155155   }
156156}
trunk/src/emu/diexec.c
r17814r17815
643643
644644IRQ_CALLBACK( device_execute_interface::static_standard_irq_callback )
645645{
646   return device_execute(device)->standard_irq_callback(irqline);
646   return device->execute().standard_irq_callback(irqline);
647647}
648648
649649int device_execute_interface::standard_irq_callback(int irqline)
trunk/src/emu/diexec.h
r17814r17815
341341typedef device_interface_iterator<device_execute_interface> execute_interface_iterator;
342342
343343
344
345//**************************************************************************
346//  INLINE HELPERS
347//**************************************************************************
348
349//-------------------------------------------------
350//  device_execute - return a pointer to the device
351//  execute interface for this device
352//-------------------------------------------------
353
354inline device_execute_interface *device_execute(device_t *device)
355{
356   device_execute_interface *intf;
357   if (!device->interface(intf))
358      throw emu_fatalerror("Device '%s' does not have execute interface", device->tag());
359   return intf;
360}
361
362
363
364// ======================> device scheduling
365
366// suspend the given device for a specific reason
367inline void device_suspend(device_t *device, int reason, bool eatcycles)
368{
369   device_execute(device)->suspend(reason, eatcycles);
370}
371
372// resume the given device for a specific reason
373inline void device_resume(device_t *device, int reason)
374{
375   device_execute(device)->resume(reason);
376}
377
378
379
380// ======================> synchronization helpers
381
382// yield the given device until the end of the current timeslice
383inline void device_yield(device_t *device)
384{
385   device_execute(device)->yield();
386}
387
388// burn device cycles until the end of the current timeslice
389inline void device_spin(device_t *device)
390{
391   device_execute(device)->spin();
392}
393
394// burn specified device cycles until a trigger
395inline void device_spin_until_trigger(device_t *device, int trigger)
396{
397   device_execute(device)->spin_until_trigger(trigger);
398}
399
400// burn device cycles for a specific period of time
401inline void device_spin_until_time(device_t *device, attotime duration)
402{
403   device_execute(device)->spin_until_time(duration);
404}
405
406
407
408// ======================> device timing
409
410// returns the current local time for a device
411inline attotime device_get_local_time(device_t *device)
412{
413   return device_execute(device)->local_time();
414}
415
416// safely eats cycles so we don't cross a timeslice boundary
417inline void device_eat_cycles(device_t *device, int cycles)
418{
419   device_execute(device)->eat_cycles(cycles);
420}
421
422// apply a +/- to the current icount
423inline void device_adjust_icount(device_t *device, int delta)
424{
425   device_execute(device)->adjust_icount(delta);
426}
427
428// abort execution for the current timeslice, allowing other devices to run before we run again
429inline void device_abort_timeslice(device_t *device)
430{
431   device_execute(device)->abort_timeslice();
432}
433
434
435
436// ======================> triggers
437
438// generate a trigger corresponding to an interrupt on the given device
439inline void device_triggerint(device_t *device)
440{
441   device_execute(device)->signal_interrupt_trigger();
442}
443
444
445
446// ======================> interrupts
447
448// set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a device
449inline void device_set_input_line(device_t *device, int line, int state)
450{
451   device_execute(device)->set_input_line(line, state);
452}
453
454// set the vector to be returned during a device's interrupt acknowledge cycle
455inline void device_set_input_line_vector(device_t *device, int line, int vector)
456{
457   device_execute(device)->set_input_line_vector(line, vector);
458}
459
460// set the logical state (ASSERT_LINE/CLEAR_LINE) of the an input line on a device and its associated vector
461inline void device_set_input_line_and_vector(device_t *device, int line, int state, int vector)
462{
463   device_execute(device)->set_input_line_and_vector(line, state, vector);
464}
465
466// install a driver-specific callback for IRQ acknowledge
467inline void device_set_irq_callback(device_t *device, device_irq_acknowledge_callback callback)
468{
469   device_execute(device)->set_irq_acknowledge_callback(callback);
470}
471
472
473
474// ======================> additional helpers
475
476// burn device cycles until the next interrupt
477inline void device_spin_until_interrupt(device_t *device)
478{
479   device_execute(device)->spin_until_interrupt();
480}
481
482
483
484344#endif   /* __DIEXEC_H__ */
trunk/src/mess/machine/dgn_beta.c
r17814r17815
702702
703703      /* CPU un-halted let it run ! */
704704      if (HALT_DMA == CLEAR_LINE)
705         device_yield(device->machine().device(MAINCPU_TAG));
705         device->machine().device(MAINCPU_TAG)->execute().yield();
706706
707707      state->m_d_pia1_pa_last = data & 0x80;
708708   }
r17814r17815
741741
742742      /* CPU un-halted let it run ! */
743743      if (HALT_CPU == CLEAR_LINE)
744         device_yield(device->machine().device(DMACPU_TAG));
744         device->machine().device(DMACPU_TAG)->execute().yield();
745745   }
746746}
747747
r17814r17815
789789      {
790790         device->machine().device(DMACPU_TAG)->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
791791         logerror("device_yield()\n");
792         device_yield(device->machine().device(DMACPU_TAG));   /* Let DMA CPU run */
792         device->machine().device(DMACPU_TAG)->execute().yield();   /* Let DMA CPU run */
793793      }
794794      else
795795      {
trunk/src/mess/machine/c64_cpm.c
r17814r17815
8989{
9090   if (m_enabled)
9191   {
92        device_set_input_line(m_maincpu, INPUT_LINE_HALT, CLEAR_LINE);
93        device_set_input_line(machine().firstcpu, INPUT_LINE_HALT, ASSERT_LINE);
92        m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
93        machine().firstcpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
9494
9595        if (m_reset)
9696        {
r17814r17815
101101   }
102102   else
103103   {
104        device_set_input_line(m_maincpu, INPUT_LINE_HALT, ASSERT_LINE);
105        device_set_input_line(machine().firstcpu, INPUT_LINE_HALT, CLEAR_LINE);
104        m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
105        machine().firstcpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
106106   }
107107
108108/*
trunk/src/mess/machine/i82371ab.c
r17814r17815
224224   /* setup save states */
225225   save_item(NAME(m_regs));
226226
227   device_set_irq_callback(machine().device(":maincpu"), at_irq_callback);
227   machine().device(":maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
228228}
229229
230230//-------------------------------------------------
trunk/src/mess/machine/egret.c
r17814r17815
137137            if (xcvr_session != ((data>>1)&1))
138138            {
139139               #ifdef EGRET_SUPER_VERBOSE
140                    printf("EG-> XCVR_SESSION: %d (PC=%x)\n", (data>>1)&1, m_maincpu->safe_pc());
140                    printf("EG-> XCVR_SESSION: %d (PC=%x)\n", (data>>1)&1, m_maincpu->pc());
141141               #endif
142142               xcvr_session = (data>>1) & 1;
143143            }
144144                if (via_data != ((data>>5)&1))
145145                {
146146               #ifdef EGRET_SUPER_VERBOSE
147                    printf("EG-> VIA_DATA: %d (PC=%x)\n", (data>>5)&1, m_maincpu->safe_pc());
147                    printf("EG-> VIA_DATA: %d (PC=%x)\n", (data>>5)&1, m_maincpu->pc());
148148               #endif
149149               via_data = (data>>5) & 1;
150150                }
151151                if (via_clock != ((data>>4)&1))
152152                {
153153               #ifdef EGRET_SUPER_VERBOSE
154                    printf("EG-> VIA_CLOCK: %d (PC=%x)\n", ((data>>4)&1)^1, m_maincpu->safe_pc());
154                    printf("EG-> VIA_CLOCK: %d (PC=%x)\n", ((data>>4)&1)^1, m_maincpu->pc());
155155               #endif
156156               via_clock = (data>>4) & 1;
157157               via6522_device *via1 = machine().device<via6522_device>("via6522_0");
r17814r17815
312312
313313   if ((onesec & 0x40) && !(data & 0x40))
314314   {
315      device_set_input_line(m_maincpu, M68HC05EG_INT_CPI, CLEAR_LINE);
315      m_maincpu->set_input_line(M68HC05EG_INT_CPI, CLEAR_LINE);
316316   }
317317
318318   onesec = data;
r17814r17815
419419
420420   if (onesec & 0x10)
421421   {
422      device_set_input_line(m_maincpu, M68HC05EG_INT_CPI, ASSERT_LINE);
422      m_maincpu->set_input_line(M68HC05EG_INT_CPI, ASSERT_LINE);
423423   }
424424}
425425
trunk/src/mess/machine/at.c
r17814r17815
155155
156156WRITE_LINE_MEMBER( at_state::pc_dma_hrq_changed )
157157{
158   device_set_input_line(m_maincpu, INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
158   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
159159
160160   /* Assert HLDA */
161161   m_dma8237_2->hack_w(state);
r17814r17815
354354
355355MACHINE_START( at )
356356{
357   device_set_irq_callback(machine.device("maincpu"), at_irq_callback);
357   machine.device("maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
358358}
359359
360360MACHINE_RESET( at )
trunk/src/mess/machine/orion.c
r17814r17815
374374   orion_state *state = device->machine().driver_data<orion_state>();
375375   if ((state->m_orionz80_dispatcher & 0x40)==0x40)
376376   {
377      device_set_input_line(device, 0, HOLD_LINE);
377      device->execute().set_input_line(0, HOLD_LINE);
378378   }
379379}
380380
trunk/src/mess/machine/pc1512kb.c
r17814r17815
299299
300300void pc1512_keyboard_device::device_reset()
301301{
302   device_set_input_line(m_maincpu, MCS48_INPUT_EA, CLEAR_LINE);
302   m_maincpu->set_input_line(MCS48_INPUT_EA, CLEAR_LINE);
303303}
304304
305305
r17814r17815
311311{
312312   if (!m_clock_in)
313313   {
314      device_set_input_line(m_maincpu, INPUT_LINE_RESET, ASSERT_LINE);
314      m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
315315   }
316316}
317317
r17814r17815
340340      }
341341      else
342342      {
343         device_set_input_line(m_maincpu, INPUT_LINE_RESET, CLEAR_LINE);
343         m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
344344      }
345345   }
346346
trunk/src/mess/machine/poly88.c
r17814r17815
1616{
1717   poly88_state *state = machine.driver_data<poly88_state>();
1818   state->m_int_vector = 0xe7;
19   device_set_input_line(machine.device("maincpu"), 0, HOLD_LINE);
19   machine.device("maincpu")->execute().set_input_line(0, HOLD_LINE);
2020}
2121
2222WRITE8_MEMBER(poly88_state::poly88_baud_rate_w)
r17814r17815
210210MACHINE_RESET(poly88)
211211{
212212   poly88_state *state = machine.driver_data<poly88_state>();
213   device_set_irq_callback(machine.device("maincpu"), poly88_irq_callback);
213   machine.device("maincpu")->execute().set_irq_acknowledge_callback(poly88_irq_callback);
214214   state->m_intr = 0;
215215   state->m_last_code = 0;
216216
r17814r17815
221221{
222222   poly88_state *state = device->machine().driver_data<poly88_state>();
223223   state->m_int_vector = 0xf7;
224   device_set_input_line(device, 0, HOLD_LINE);
224   device->execute().set_input_line(0, HOLD_LINE);
225225}
226226
227227static WRITE_LINE_DEVICE_HANDLER( poly88_usart_rxready )
228228{
229229   //poly88_state *drvstate = device->machine().driver_data<poly88_state>();
230230   //drvstate->m_int_vector = 0xe7;
231   //device_set_input_line(device, 0, HOLD_LINE);
231   //device->execute().set_input_line(0, HOLD_LINE);
232232}
233233
234234const i8251_interface poly88_usart_interface=
trunk/src/mess/machine/trs80.c
r17814r17815
636636      if (state->m_mask & IRQ_M4_RTC)
637637      {
638638         state->m_irq |= IRQ_M4_RTC;
639         device_set_input_line(device, 0, HOLD_LINE);
639         device->execute().set_input_line(0, HOLD_LINE);
640640      }
641641   }
642642   else      // Model 1
643643   {
644644      state->m_irq |= IRQ_M1_RTC;
645      device_set_input_line(device, 0, HOLD_LINE);
645      device->execute().set_input_line(0, HOLD_LINE);
646646   }
647647}
648648
trunk/src/mess/machine/primo.c
r17814r17815
3535{
3636   primo_state *state = device->machine().driver_data<primo_state>();
3737   if (state->m_nmi)
38      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
38      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
3939}
4040
4141/*******************************************************************************
trunk/src/mess/machine/x68k_neptunex.c
r17814r17815
146146
147147WRITE_LINE_MEMBER(x68k_neptune_device::x68k_neptune_irq_w)
148148{
149   device_set_input_line_vector(machine().device("maincpu"),2, NEPTUNE_IRQ_VECTOR);
149   machine().device("maincpu")->execute().set_input_line_vector(2, NEPTUNE_IRQ_VECTOR);
150150   m_slot->irq2_w(state);
151151   logerror("Neptune: IRQ2 set to %i\n",state);
152152}
trunk/src/mess/machine/a2softcard.c
r17814r17815
8585    m_bEnabled = false;
8686    m_6502space = NULL;
8787    m_FirstZ80Boot = true;
88    device_set_input_line(m_z80, INPUT_LINE_HALT, ASSERT_LINE);
88    m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
8989}
9090
9191void a2bus_softcard_device::write_cnxx(address_space &space, UINT8 offset, UINT8 data)
r17814r17815
9797        // steal the 6502's address space
9898        m_6502space = &space;
9999
100        device_set_input_line(m_z80, INPUT_LINE_HALT, CLEAR_LINE);
101        device_set_input_line(state->m_maincpu, INPUT_LINE_HALT, ASSERT_LINE);
100        m_z80->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
101        state->m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
102102
103103        if (m_FirstZ80Boot)
104104        {
r17814r17815
110110    }
111111    else
112112    {
113        device_set_input_line(m_z80, INPUT_LINE_HALT, ASSERT_LINE);
114        device_set_input_line(state->m_maincpu, INPUT_LINE_HALT, CLEAR_LINE);
113        m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
114        state->m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
115115        m_bEnabled = false;
116116    }
117117}
trunk/src/mess/machine/svi318.c
r17814r17815
540540      m_svi.svi318 = 1;
541541   }
542542
543   device_set_input_line_vector(machine().device("maincpu"), 0, 0xff);
543   machine().device("maincpu")->execute().set_input_line_vector(0, 0xff);
544544
545545   /* memory */
546546   m_svi.empty_bank = auto_alloc_array(machine(), UINT8, 0x8000);
trunk/src/mess/machine/dec_lk201.c
r17814r17815
107107
108108WRITE8_MEMBER( lk201_device::ddr_w )
109109{
110//    printf("%02x to PORT %c DDR (PC=%x)\n", data, 'A' + offset, m_maincpu->safe_pc());
110//    printf("%02x to PORT %c DDR (PC=%x)\n", data, 'A' + offset, m_maincpu->pc());
111111
112112   send_port(space, offset, ports[offset] & data);
113113
r17814r17815
135135   // add in ddr-masked version of port writes
136136   incoming |= (ports[offset] & ddrs[offset]);
137137
138//    printf("PORT %c read = %02x (DDR = %02x latch = %02x) (PC=%x)\n", 'A' + offset, ports[offset], ddrs[offset], ports[offset], m_maincpu->safe_pc());
138//    printf("PORT %c read = %02x (DDR = %02x latch = %02x) (PC=%x)\n", 'A' + offset, ports[offset], ddrs[offset], ports[offset], m_maincpu->pc());
139139
140140   return incoming;
141141}
r17814r17815
149149
150150void lk201_device::send_port(address_space &space, UINT8 offset, UINT8 data)
151151{
152//    printf("PORT %c write %02x (DDR = %02x) (PC=%x)\n", 'A' + offset, data, ddrs[offset], m_maincpu->safe_pc());
152//    printf("PORT %c write %02x (DDR = %02x) (PC=%x)\n", 'A' + offset, data, ddrs[offset], m_maincpu->pc());
153153
154154   switch (offset)
155155   {
r17814r17815
187187            break;
188188   }
189189
190//    printf("SCI read @ %x = %02x (PC=%x)\n", offset, incoming, m_maincpu->safe_pc());
190//    printf("SCI read @ %x = %02x (PC=%x)\n", offset, incoming, m_maincpu->pc());
191191
192192   return incoming;
193193}
r17814r17815
212212            break;
213213   }
214214
215//    printf("SCI %02x to %x (PC=%x)\n", data, offset, m_maincpu->safe_pc());
215//    printf("SCI %02x to %x (PC=%x)\n", data, offset, m_maincpu->pc());
216216}
217217
218218READ8_MEMBER( lk201_device::spi_r )
r17814r17815
232232         break;
233233   }
234234
235//    printf("SPI read @ %x = %02x (PC=%x)\n", offset, incoming, m_maincpu->safe_pc());
235//    printf("SPI read @ %x = %02x (PC=%x)\n", offset, incoming, m_maincpu->pc());
236236
237237   return incoming;
238238}
r17814r17815
251251         break;
252252   }
253253
254//    printf("SPI %02x to %x (PC=%x)\n", data, offset, m_maincpu->safe_pc());
254//    printf("SPI %02x to %x (PC=%x)\n", data, offset, m_maincpu->pc());
255255}
256256
257257/*
trunk/src/mess/machine/mpc105.c
r17814r17815
4040
4141void mpc105_device::device_start()
4242{
43   m_maincpu = machine().device(m_cputag);
43   m_maincpu = machine().device<cpu_device>(m_cputag);
4444}
4545
4646//-------------------------------------------------
r17814r17815
9494
9595   if (m_bank_base > 0)
9696   {
97      address_space *space = m_maincpu->memory().space(AS_PROGRAM);
97      address_space *space = m_maincpu->space(AS_PROGRAM);
9898
9999      /* first clear everything out */
100100      space->nop_read(0x00000000, 0x3FFFFFFF);
trunk/src/mess/machine/mpc105.h
r17814r17815
4747   UINT8 m_bank_enable;
4848   UINT32 m_bank_registers[8];
4949
50   device_t*   m_maincpu;
50   cpu_device*   m_maincpu;
5151};
5252
5353
trunk/src/mess/machine/nes.c
r17814r17815
222222static TIMER_CALLBACK( nes_irq_callback )
223223{
224224   nes_state *state = machine.driver_data<nes_state>();
225   device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
225   state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
226226   state->m_irq_timer->adjust(attotime::never);
227227}
228228
r17814r17815
296296   init_nes_core(machine);
297297   machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(nes_machine_stop),&machine));
298298
299   state->m_maincpu = machine.device("maincpu");
299   state->m_maincpu = machine.device<cpu_device>("maincpu");
300300   state->m_sound = machine.device("nessound");
301301   state->m_cart = machine.device("cart");
302302
r17814r17815
15381538   nes_state *state = device->machine().driver_data<nes_state>();
15391539
15401540   if (state->m_IRQ_enable_latch)
1541      device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
1541      state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
15421542
15431543   if (state->m_IRQ_enable)
15441544   {
15451545      if (state->m_IRQ_count <= 114)
15461546      {
1547         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
1547         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
15481548         state->m_IRQ_enable = 0;
15491549         state->m_fds_status0 |= 0x01;
15501550      }
trunk/src/mess/machine/nes_ines.c
r17814r17815
3838   {
3939      if ((0xffff - state->m_IRQ_count) < 114)
4040      {
41         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
41         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
4242         state->m_IRQ_count = 0xffff;
4343         state->m_IRQ_enable = 0;
4444      }
trunk/src/mess/machine/mc68328.c
r17814r17815
4242
4343            if(mc68328->regs.isr & INT_M68K_LINE7)
4444            {
45                device_set_input_line_and_vector(cpu, M68K_IRQ_7, ASSERT_LINE, mc68328->regs.ivr | 0x07);
45                cpu->execute().set_input_line_and_vector(M68K_IRQ_7, ASSERT_LINE, mc68328->regs.ivr | 0x07);
4646            }
4747            else if(mc68328->regs.isr & INT_M68K_LINE6)
4848            {
49                device_set_input_line_and_vector(cpu, M68K_IRQ_6, ASSERT_LINE, mc68328->regs.ivr | 0x06);
49                cpu->execute().set_input_line_and_vector(M68K_IRQ_6, ASSERT_LINE, mc68328->regs.ivr | 0x06);
5050            }
5151            else if(mc68328->regs.isr & INT_M68K_LINE5)
5252            {
53                device_set_input_line_and_vector(cpu, M68K_IRQ_5, ASSERT_LINE, mc68328->regs.ivr | 0x05);
53                cpu->execute().set_input_line_and_vector(M68K_IRQ_5, ASSERT_LINE, mc68328->regs.ivr | 0x05);
5454            }
5555            else if(mc68328->regs.isr & INT_M68K_LINE4)
5656            {
57                device_set_input_line_and_vector(cpu, M68K_IRQ_4, ASSERT_LINE, mc68328->regs.ivr | 0x04);
57                cpu->execute().set_input_line_and_vector(M68K_IRQ_4, ASSERT_LINE, mc68328->regs.ivr | 0x04);
5858            }
5959            else if(mc68328->regs.isr & INT_M68K_LINE3)
6060            {
61                device_set_input_line_and_vector(cpu, M68K_IRQ_3, ASSERT_LINE, mc68328->regs.ivr | 0x03);
61                cpu->execute().set_input_line_and_vector(M68K_IRQ_3, ASSERT_LINE, mc68328->regs.ivr | 0x03);
6262            }
6363            else if(mc68328->regs.isr & INT_M68K_LINE2)
6464            {
65                device_set_input_line_and_vector(cpu, M68K_IRQ_2, ASSERT_LINE, mc68328->regs.ivr | 0x02);
65                cpu->execute().set_input_line_and_vector(M68K_IRQ_2, ASSERT_LINE, mc68328->regs.ivr | 0x02);
6666            }
6767            else if(mc68328->regs.isr & INT_M68K_LINE1)
6868            {
69                device_set_input_line_and_vector(cpu, M68K_IRQ_1, ASSERT_LINE, mc68328->regs.ivr | 0x01);
69                cpu->execute().set_input_line_and_vector(M68K_IRQ_1, ASSERT_LINE, mc68328->regs.ivr | 0x01);
7070            }
7171        }
7272    }
r17814r17815
7676
7777        if((line & INT_M68K_LINE7) && !(mc68328->regs.isr & INT_M68K_LINE7))
7878        {
79            device_set_input_line(cpu, M68K_IRQ_7, CLEAR_LINE);
79            cpu->execute().set_input_line(M68K_IRQ_7, CLEAR_LINE);
8080        }
8181        if((line & INT_M68K_LINE6) && !(mc68328->regs.isr & INT_M68K_LINE6))
8282        {
83            device_set_input_line(cpu, M68K_IRQ_6, CLEAR_LINE);
83            cpu->execute().set_input_line(M68K_IRQ_6, CLEAR_LINE);
8484        }
8585        if((line & INT_M68K_LINE5) && !(mc68328->regs.isr & INT_M68K_LINE5))
8686        {
87            device_set_input_line(cpu, M68K_IRQ_5, CLEAR_LINE);
87            cpu->execute().set_input_line(M68K_IRQ_5, CLEAR_LINE);
8888        }
8989        if((line & INT_M68K_LINE4) && !(mc68328->regs.isr & INT_M68K_LINE4))
9090        {
91            device_set_input_line(cpu, M68K_IRQ_4, CLEAR_LINE);
91            cpu->execute().set_input_line(M68K_IRQ_4, CLEAR_LINE);
9292        }
9393        if((line & INT_M68K_LINE3) && !(mc68328->regs.isr & INT_M68K_LINE3))
9494        {
95            device_set_input_line(cpu, M68K_IRQ_3, CLEAR_LINE);
95            cpu->execute().set_input_line(M68K_IRQ_3, CLEAR_LINE);
9696        }
9797        if((line & INT_M68K_LINE2) && !(mc68328->regs.isr & INT_M68K_LINE2))
9898        {
99            device_set_input_line(cpu, M68K_IRQ_2, CLEAR_LINE);
99            cpu->execute().set_input_line(M68K_IRQ_2, CLEAR_LINE);
100100        }
101101        if((line & INT_M68K_LINE1) && !(mc68328->regs.isr & INT_M68K_LINE1))
102102        {
103            device_set_input_line(cpu, M68K_IRQ_1, CLEAR_LINE);
103            cpu->execute().set_input_line(M68K_IRQ_1, CLEAR_LINE);
104104        }
105105    }
106106}
trunk/src/mess/machine/intv.c
r17814r17815
618618/* Set Reset and INTR/INTRM Vector */
619619MACHINE_RESET( intv )
620620{
621   device_set_input_line_vector(machine.device("maincpu"), CP1610_RESET, 0x1000);
621   machine.device("maincpu")->execute().set_input_line_vector(CP1610_RESET, 0x1000);
622622
623623   /* These are actually the same vector, and INTR is unused */
624   device_set_input_line_vector(machine.device("maincpu"), CP1610_INT_INTRM, 0x1004);
625   device_set_input_line_vector(machine.device("maincpu"), CP1610_INT_INTR,  0x1004);
624   machine.device("maincpu")->execute().set_input_line_vector(CP1610_INT_INTRM, 0x1004);
625   machine.device("maincpu")->execute().set_input_line_vector(CP1610_INT_INTR,  0x1004);
626626
627627   /* Set initial PC */
628628   machine.device("maincpu")->state().set_state_int(CP1610_R7, 0x1000);
r17814r17815
638638   state->membank("bank3")->set_base(machine.root_device().memregion("maincpu")->base() + (0xE000 << 1));
639639   state->membank("bank4")->set_base(machine.root_device().memregion("maincpu")->base() + (0xF000 << 1));
640640
641   device_set_input_line_vector(machine.device("maincpu"), CP1610_RESET, 0x1000);
641   machine.device("maincpu")->execute().set_input_line_vector(CP1610_RESET, 0x1000);
642642
643643   /* These are actually the same vector, and INTR is unused */
644   device_set_input_line_vector(machine.device("maincpu"), CP1610_INT_INTRM, 0x1004);
645   device_set_input_line_vector(machine.device("maincpu"), CP1610_INT_INTR,  0x1004);
644   machine.device("maincpu")->execute().set_input_line_vector(CP1610_INT_INTRM, 0x1004);
645   machine.device("maincpu")->execute().set_input_line_vector(CP1610_INT_INTR,  0x1004);
646646
647647   /* Set initial PC */
648648   machine.device("maincpu")->state().set_state_int(CP1610_R7, 0x1000);
r17814r17815
663663   intv_state *state = machine.driver_data<intv_state>();
664664   UINT8 column;
665665   UINT8 row = state->m_backtab_row;
666   //device_adjust_icount(machine.device("maincpu"), -STIC_ROW_FETCH);
666   //machine.device("maincpu")->execute().adjust_icount(-STIC_ROW_FETCH);
667667   for(column=0; column < STIC_BACKTAB_WIDTH; column++)
668668   {
669669      state->m_backtab_buffer[row][column] = state->m_ram16[column + row * STIC_BACKTAB_WIDTH];
r17814r17815
680680   state->m_bus_copy_mode = 1;
681681   state->m_backtab_row = 0;
682682   UINT8 row;
683   device_adjust_icount(device->machine().device("maincpu"), -(12*STIC_ROW_BUSRQ+STIC_FRAME_BUSRQ)); // Account for stic cycle stealing
683   device->machine().device("maincpu")->execute().adjust_icount(-(12*STIC_ROW_BUSRQ+STIC_FRAME_BUSRQ)); // Account for stic cycle stealing
684684   device->machine().scheduler().timer_set(device->machine().device<cpu_device>("maincpu")
685685      ->cycles_to_attotime(STIC_VBLANK_END), FUNC(intv_interrupt_complete));
686686   for (row=0; row < STIC_BACKTAB_HEIGHT; row++)
r17814r17815
691691
692692   if (state->m_row_delay == 0)
693693   {
694      device_adjust_icount(device->machine().device("maincpu"), -STIC_ROW_BUSRQ); // extra row fetch occurs if vertical delay == 0
694      device->machine().device("maincpu")->execute().adjust_icount(-STIC_ROW_BUSRQ); // extra row fetch occurs if vertical delay == 0
695695   }
696696
697697   intv_stic_screenrefresh(device->machine());
trunk/src/mess/machine/s100.c
r17814r17815
126126
127127void s100_device::device_start()
128128{
129   m_maincpu = machine().device(m_cputag);
129   m_maincpu = machine().device<cpu_device>(m_cputag);
130130
131131   // resolve callbacks
132132   m_out_int_func.resolve(m_out_int_cb, *this);
trunk/src/mess/machine/a2eauxslot.c
r17814r17815
112112
113113void a2eauxslot_device::device_start()
114114{
115   m_maincpu = machine().device(m_cputag);
115   m_maincpu = machine().device<cpu_device>(m_cputag);
116116
117117    // resolve callbacks
118118   m_out_irq_func.resolve(m_out_irq_cb, *this);
trunk/src/mess/machine/s100.h
r17814r17815
206206
207207private:
208208   // internal state
209   device_t   *m_maincpu;
209   cpu_device   *m_maincpu;
210210
211211   devcb_resolved_write_line   m_out_int_func;
212212   devcb_resolved_write_line   m_out_nmi_func;
trunk/src/mess/machine/nubus.c
r17814r17815
116116
117117void nubus_device::device_start()
118118{
119   m_maincpu = machine().device(m_cputag);
119   m_maincpu = machine().device<cpu_device>(m_cputag);
120120   // resolve callbacks
121121   m_out_irq9_func.resolve(m_out_irq9_cb, *this);
122122   m_out_irqa_func.resolve(m_out_irqa_cb, *this);
r17814r17815
141141
142142void nubus_device::install_device(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler, UINT32 mask)
143143{
144   m_maincpu = machine().device(m_cputag);
145   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
144   m_maincpu = machine().device<cpu_device>(m_cputag);
145   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
146146   switch(buswidth)
147147   {
148148      case 32:
149         m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, mask);
149         m_maincpu->space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, mask);
150150         break;
151151      case 64:
152         m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, ((UINT64)mask<<32)|mask);
152         m_maincpu->space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, ((UINT64)mask<<32)|mask);
153153         break;
154154      default:
155155         fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
r17814r17815
159159
160160void nubus_device::install_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler, UINT32 mask)
161161{
162   m_maincpu = machine().device(m_cputag);
163   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
162   m_maincpu = machine().device<cpu_device>(m_cputag);
163   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
164164   switch(buswidth)
165165   {
166166      case 32:
167         m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, mask);
167         m_maincpu->space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, mask);
168168         break;
169169      case 64:
170         m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, ((UINT64)mask<<32)|mask);
170         m_maincpu->space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, ((UINT64)mask<<32)|mask);
171171         break;
172172      default:
173173         fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
r17814r17815
177177
178178void nubus_device::install_device(offs_t start, offs_t end, read32_delegate rhandler, write32_delegate whandler, UINT32 mask)
179179{
180   m_maincpu = machine().device(m_cputag);
181   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
180   m_maincpu = machine().device<cpu_device>(m_cputag);
181   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
182182   switch(buswidth)
183183   {
184184      case 32:
185         m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, mask);
185         m_maincpu->space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, mask);
186186         break;
187187      case 64:
188         m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, ((UINT64)mask<<32)|mask);
188         m_maincpu->space(AS_PROGRAM)->install_readwrite_handler(start, end, rhandler, whandler, ((UINT64)mask<<32)|mask);
189189         break;
190190      default:
191191         fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
r17814r17815
195195
196196void nubus_device::install_readonly_device(offs_t start, offs_t end, read32_delegate rhandler, UINT32 mask)
197197{
198   m_maincpu = machine().device(m_cputag);
199   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
198   m_maincpu = machine().device<cpu_device>(m_cputag);
199   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
200200   switch(buswidth)
201201   {
202202      case 32:
203         m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(start, end, rhandler, mask);
203         m_maincpu->space(AS_PROGRAM)->install_read_handler(start, end, rhandler, mask);
204204         break;
205205      case 64:
206         m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(start, end, rhandler, ((UINT64)mask<<32)|mask);
206         m_maincpu->space(AS_PROGRAM)->install_read_handler(start, end, rhandler, ((UINT64)mask<<32)|mask);
207207         break;
208208      default:
209209         fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
r17814r17815
213213
214214void nubus_device::install_writeonly_device(offs_t start, offs_t end, write32_delegate whandler, UINT32 mask)
215215{
216   m_maincpu = machine().device(m_cputag);
217   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
216   m_maincpu = machine().device<cpu_device>(m_cputag);
217   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
218218   switch(buswidth)
219219   {
220220      case 32:
221         m_maincpu->memory().space(AS_PROGRAM)->install_write_handler(start, end, whandler, mask);
221         m_maincpu->space(AS_PROGRAM)->install_write_handler(start, end, whandler, mask);
222222         break;
223223      case 64:
224         m_maincpu->memory().space(AS_PROGRAM)->install_write_handler(start, end, whandler, ((UINT64)mask<<32)|mask);
224         m_maincpu->space(AS_PROGRAM)->install_write_handler(start, end, whandler, ((UINT64)mask<<32)|mask);
225225         break;
226226      default:
227227         fatalerror("NUBUS: Bus width %d not supported\n", buswidth);
r17814r17815
232232void nubus_device::install_bank(offs_t start, offs_t end, offs_t mask, offs_t mirror, const char *tag, UINT8 *data)
233233{
234234//  printf("install_bank: %s @ %x->%x mask %x mirror %x\n", tag, start, end, mask, mirror);
235   m_maincpu = machine().device(m_cputag);
236   address_space *space = m_maincpu->memory().space(AS_PROGRAM);
235   m_maincpu = machine().device<cpu_device>(m_cputag);
236   address_space *space = m_maincpu->space(AS_PROGRAM);
237237   space->install_readwrite_bank(start, end, mask, mirror, tag );
238238   machine().root_device().membank(tag)->set_base(data);
239239}
trunk/src/mess/machine/a2eauxslot.h
r17814r17815
9797   virtual void device_config_complete();
9898
9999   // internal state
100   device_t   *m_maincpu;
100   cpu_device   *m_maincpu;
101101
102102   devcb_resolved_write_line   m_out_irq_func;
103103   devcb_resolved_write_line   m_out_nmi_func;
trunk/src/mess/machine/nubus.h
r17814r17815
113113   virtual void device_config_complete();
114114
115115   // internal state
116   device_t   *m_maincpu;
116   cpu_device   *m_maincpu;
117117
118118   devcb_resolved_write_line   m_out_irq9_func;
119119   devcb_resolved_write_line   m_out_irqa_func;
trunk/src/mess/machine/abc77.c
r17814r17815
498498   int ea = BIT(ioport("DSW")->read(), 7);
499499
500500   // trigger reset
501   device_set_input_line(m_maincpu, INPUT_LINE_RESET, ASSERT_LINE);
501   m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
502502   m_reset_timer->adjust(attotime::from_msec(t));
503503
504   device_set_input_line(m_maincpu, MCS48_INPUT_EA, ea ? CLEAR_LINE : ASSERT_LINE);
504   m_maincpu->set_input_line(MCS48_INPUT_EA, ea ? CLEAR_LINE : ASSERT_LINE);
505505}
506506
507507
r17814r17815
518518      break;
519519
520520   case TIMER_RESET:
521      device_set_input_line(m_maincpu, INPUT_LINE_RESET, CLEAR_LINE);
521      m_maincpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
522522      break;
523523   }
524524}
r17814r17815
638638
639639WRITE_LINE_MEMBER( abc77_device::rxd_w )
640640{
641   device_set_input_line(m_maincpu, MCS48_INPUT_IRQ, state ? CLEAR_LINE : ASSERT_LINE);
641   m_maincpu->set_input_line(MCS48_INPUT_IRQ, state ? CLEAR_LINE : ASSERT_LINE);
642642}
643643
644644
trunk/src/mess/machine/tf20.c
r17814r17815
330330   device_t *cpu = device->subdevice("tf20");
331331   address_space *prg = cpu->memory().space(AS_PROGRAM);
332332
333   device_set_irq_callback(cpu, tf20_irq_ack);
333   cpu->execute().set_irq_acknowledge_callback(tf20_irq_ack);
334334
335335   /* ram device */
336336   tf20->ram = device->subdevice<ram_device>("ram");
trunk/src/mess/machine/a2bus.c
r17814r17815
175175
176176void a2bus_device::device_start()
177177{
178   m_maincpu = machine().device(m_cputag);
178   m_maincpu = machine().device<cpu_device>(m_cputag);
179179
180180    // resolve callbacks
181181   m_out_irq_func.resolve(m_out_irq_cb, *this);
trunk/src/mess/machine/a2bus.h
r17814r17815
105105   virtual void device_config_complete();
106106
107107   // internal state
108   device_t   *m_maincpu;
108   cpu_device   *m_maincpu;
109109
110110   devcb_resolved_write_line   m_out_irq_func;
111111   devcb_resolved_write_line   m_out_nmi_func;
trunk/src/mess/machine/hd63450.c
r17814r17815
258258   if((dmac->reg[channel].dcr & 0xc0) == 0x00)  // Burst transfer
259259   {
260260      device_t *cpu = device->machine().device(dmac->intf->cpu_tag);
261      device_set_input_line(cpu, INPUT_LINE_HALT, ASSERT_LINE);
261      cpu->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
262262      dmac->timer[channel]->adjust(attotime::zero, channel, dmac->burst_clock[channel]);
263263   }
264264   else
r17814r17815
440440            if((dmac->reg[x].dcr & 0xc0) == 0x00)
441441            {
442442               device_t *cpu = device->machine().device(dmac->intf->cpu_tag);
443               device_set_input_line(cpu, INPUT_LINE_HALT, CLEAR_LINE);
443               cpu->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
444444            }
445445
446446            if(dmac->intf->dma_end)
trunk/src/mess/machine/pc.c
r17814r17815
171171static WRITE_LINE_DEVICE_HANDLER( pc_dma_hrq_changed )
172172{
173173   pc_state *st = device->machine().driver_data<pc_state>();
174   device_set_input_line(st->m_maincpu, INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
174   st->m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
175175
176176   /* Assert HLDA */
177177   i8237_hlda_w( device, state );
r17814r17815
291291
292292static TIMER_CALLBACK( pcjr_delayed_pic8259_irq )
293293{
294    device_set_input_line(machine.firstcpu, 0, param ? ASSERT_LINE : CLEAR_LINE);
294    machine.firstcpu->set_input_line(0, param ? ASSERT_LINE : CLEAR_LINE);
295295}
296296
297297static WRITE_LINE_DEVICE_HANDLER( pcjr_pic8259_set_int_line )
r17814r17815
302302   }
303303   else
304304   {
305      device_set_input_line(device->machine().firstcpu, 0, state ? ASSERT_LINE : CLEAR_LINE);
305      device->machine().firstcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
306306   }
307307}
308308
r17814r17815
645645         pcjr_keyb.latch = 1;
646646         if ( nmi_enabled & 0x80 )
647647         {
648            device_set_input_line( st->m_pit8253->machine().firstcpu, INPUT_LINE_NMI, PULSE_LINE );
648            st->m_pit8253->machine().firstcpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
649649         }
650650      }
651651   }
r17814r17815
14471447{
14481448   device_t *speaker = machine.device(SPEAKER_TAG);
14491449   pc_state *st = machine.driver_data<pc_state>();
1450   st->m_maincpu = machine.device("maincpu" );
1451   device_set_irq_callback(st->m_maincpu, pc_irq_callback);
1450   st->m_maincpu = machine.device<cpu_device>("maincpu" );
1451   st->m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
14521452
14531453   st->m_u73_q2 = 0;
14541454   st->m_out1 = 0;
r17814r17815
14731473MACHINE_START( mc1502 )
14741474{
14751475   pc_state *st = machine.driver_data<pc_state>();
1476   st->m_maincpu = machine.device("maincpu" );
1477   device_set_irq_callback(st->m_maincpu, pc_irq_callback);
1476   st->m_maincpu = machine.device<cpu_device>("maincpu" );
1477   st->m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
14781478
14791479   st->m_pic8259 = machine.device("pic8259");
14801480   st->m_dma8237 = NULL;
r17814r17815
14991499   pc_fdc_init( machine, &pcjr_fdc_interface_nc );
15001500   pcjr_keyb.keyb_signal_timer = machine.scheduler().timer_alloc(FUNC(pcjr_keyb_signal_callback));
15011501   pc_int_delay_timer = machine.scheduler().timer_alloc(FUNC(pcjr_delayed_pic8259_irq));
1502   st->m_maincpu = machine.device("maincpu" );
1503   device_set_irq_callback(st->m_maincpu, pc_irq_callback);
1502   st->m_maincpu = machine.device<cpu_device>("maincpu" );
1503   st->m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
15041504
15051505   st->m_pic8259 = machine.device("pic8259");
15061506   st->m_dma8237 = NULL;
trunk/src/mess/machine/bbc.c
r17814r17815
14251425      {
14261426         /* I'll pulse it because if I used hold-line I'm not sure
14271427            it would clear - to be checked */
1428         device_set_input_line(device->machine().device("maincpu"), INPUT_LINE_NMI,PULSE_LINE);
1428         device->machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE);
14291429      }
14301430   }
14311431
trunk/src/mess/machine/cuda.c
r17814r17815
108108
109109void cuda_device::send_port(address_space &space, UINT8 offset, UINT8 data)
110110{
111//    printf("PORT %c write %02x (DDR = %02x) (PC=%x)\n", 'A' + offset, data, ddrs[offset], m_maincpu->safe_pc());
111//    printf("PORT %c write %02x (DDR = %02x) (PC=%x)\n", 'A' + offset, data, ddrs[offset], m_maincpu->pc());
112112
113113   switch (offset)
114114   {
r17814r17815
138138            if (treq != ((data>>1)&1))
139139            {
140140               #ifdef CUDA_SUPER_VERBOSE
141                    printf("CU-> TREQ: %d (PC=%x)\n", (data>>1)&1, m_maincpu->safe_pc());
141                    printf("CU-> TREQ: %d (PC=%x)\n", (data>>1)&1, m_maincpu->pc());
142142               #endif
143143               treq = (data>>1) & 1;
144144            }
145145                if (via_data != ((data>>5)&1))
146146                {
147147               #ifdef CUDA_SUPER_VERBOSE
148                    printf("CU-> VIA_DATA: %d (PC=%x)\n", (data>>5)&1, m_maincpu->safe_pc());
148                    printf("CU-> VIA_DATA: %d (PC=%x)\n", (data>>5)&1, m_maincpu->pc());
149149               #endif
150150               via_data = (data>>5) & 1;
151151                }
152152                if (via_clock != ((data>>4)&1))
153153                {
154154               #ifdef CUDA_SUPER_VERBOSE
155                    printf("CU-> VIA_CLOCK: %d (PC=%x)\n", ((data>>4)&1)^1, m_maincpu->safe_pc());
155                    printf("CU-> VIA_CLOCK: %d (PC=%x)\n", ((data>>4)&1)^1, m_maincpu->pc());
156156               #endif
157157               via_clock = (data>>4) & 1;
158158               via6522_device *via1 = machine().device<via6522_device>("via6522_0");
r17814r17815
165165         if ((data & 8) != reset_line)
166166         {
167167            #ifdef CUDA_SUPER_VERBOSE
168            printf("680x0 reset: %d -> %d (PC=%x)\n", (ports[2] & 8)>>3, (data & 8)>>3, m_maincpu->safe_pc());
168            printf("680x0 reset: %d -> %d (PC=%x)\n", (ports[2] & 8)>>3, (data & 8)>>3, m_maincpu->pc());
169169            #endif
170170            reset_line = (data & 8);
171171            // falling edge, should reset the machine too
r17814r17815
193193
194194WRITE8_MEMBER( cuda_device::ddr_w )
195195{
196//    printf("%02x to PORT %c DDR (PC=%x)\n", data, 'A' + offset, m_maincpu->safe_pc());
196//    printf("%02x to PORT %c DDR (PC=%x)\n", data, 'A' + offset, m_maincpu->pc());
197197
198198   send_port(space, offset, ports[offset] & data);
199199
r17814r17815
251251        incoming |= 0x01;
252252    }
253253
254//    printf("PORT %c read = %02x (DDR = %02x latch = %02x) (PC=%x)\n", 'A' + offset, ports[offset], ddrs[offset], ports[offset], m_maincpu->safe_pc());
254//    printf("PORT %c read = %02x (DDR = %02x latch = %02x) (PC=%x)\n", 'A' + offset, ports[offset], ddrs[offset], ports[offset], m_maincpu->pc());
255255
256256   return incoming;
257257}
r17814r17815
279279         (data & 0x40) ? 1 : 0,
280280         (data & 0x20) ? 1 : 0,
281281         (data & 0x10) ? 1 : 0,
282         (data & 0x08) ? 1 : 0, m_maincpu->safe_pc());
282         (data & 0x08) ? 1 : 0, m_maincpu->pc());
283283   }
284284   #endif
285285   pll_ctrl = data;
r17814r17815
300300        { attotime::from_seconds(8), attotime::from_msec(250.0f), attotime::from_msec(125.1f), attotime::from_msec(62.5f), attotime::from_msec(31.3f) },
301301    };
302302
303//    printf("%02x to timer control (PC=%x)\n", data, m_maincpu->safe_pc());
303//    printf("%02x to timer control (PC=%x)\n", data, m_maincpu->pc());
304304
305305    if (data & 0x50)
306306    {
r17814r17815
314314
315315   if ((timer_ctrl & 0x80) && !(data & 0x80))
316316    {
317        device_set_input_line(m_maincpu, M68HC05EG_INT_TIMER, CLEAR_LINE);
317        m_maincpu->set_input_line(M68HC05EG_INT_TIMER, CLEAR_LINE);
318318        timer_ctrl &= ~0x80;
319319    }
320320   else if ((timer_ctrl & 0x40) && !(data & 0x40))
321321    {
322        device_set_input_line(m_maincpu, M68HC05EG_INT_TIMER, CLEAR_LINE);
322        m_maincpu->set_input_line(M68HC05EG_INT_TIMER, CLEAR_LINE);
323323        timer_ctrl &= ~0x40;
324324    }
325325
r17814r17815
334334
335335WRITE8_MEMBER( cuda_device::timer_counter_w )
336336{
337//    printf("%02x to timer counter (PC=%x)\n", data, m_maincpu->safe_pc());
337//    printf("%02x to timer counter (PC=%x)\n", data, m_maincpu->pc());
338338   timer_counter = data;
339339    ripple_counter = timer_counter;
340340}
r17814r17815
350350
351351   if ((onesec & 0x40) && !(data & 0x40))
352352   {
353      device_set_input_line(m_maincpu, M68HC05EG_INT_CPI, CLEAR_LINE);
353      m_maincpu->set_input_line(M68HC05EG_INT_CPI, CLEAR_LINE);
354354   }
355355
356356   onesec = data;
r17814r17815
464464
465465        if (onesec & 0x10)
466466        {
467            device_set_input_line(m_maincpu, M68HC05EG_INT_CPI, ASSERT_LINE);
467            m_maincpu->set_input_line(M68HC05EG_INT_CPI, ASSERT_LINE);
468468        }
469469    }
470470    else
r17814r17815
473473
474474        if (timer_ctrl & 0x20)
475475        {
476            device_set_input_line(m_maincpu, M68HC05EG_INT_TIMER, ASSERT_LINE);
476            m_maincpu->set_input_line(M68HC05EG_INT_TIMER, ASSERT_LINE);
477477        }
478478
479479        ripple_counter--;
r17814r17815
485485
486486            if (timer_ctrl & 0x10)
487487            {
488                device_set_input_line(m_maincpu, M68HC05EG_INT_TIMER, ASSERT_LINE);
488                m_maincpu->set_input_line(M68HC05EG_INT_TIMER, ASSERT_LINE);
489489            }
490490        }
491491    }
trunk/src/mess/machine/macpci.c
r17814r17815
101101      printf("mac_via_r: offset=0x%02x (PC=%x)\n", offset, m_maincpu->pc());
102102   data = m_via1->read(space, offset);
103103
104   device_adjust_icount(m_maincpu, m_via_cycles);
104   m_maincpu->adjust_icount(m_via_cycles);
105105
106106    return data | (data<<8);
107107}
r17814r17815
119119   if (ACCESSING_BITS_8_15)
120120      m_via1->write(space, offset, (data >> 8) & 0xff);
121121
122   device_adjust_icount(m_maincpu, m_via_cycles);
122   m_maincpu->adjust_icount(m_via_cycles);
123123}
124124
125125static READ8_DEVICE_HANDLER(mac_adb_via_in_cb2)
trunk/src/mess/machine/mc80.c
r17814r17815
2020
2121MACHINE_RESET( mc8020 )
2222{
23   device_set_irq_callback(machine.device("maincpu"), mc8020_irq_callback);
23   machine.device("maincpu")->execute().set_irq_acknowledge_callback(mc8020_irq_callback);
2424}
2525
2626WRITE_LINE_MEMBER( mc80_state::ctc_z0_w )
r17814r17815
114114
115115MACHINE_RESET( mc8030 )
116116{
117   device_set_irq_callback(machine.device("maincpu"), mc8030_irq_callback);
117   machine.device("maincpu")->execute().set_irq_acknowledge_callback(mc8030_irq_callback);
118118}
119119
120120READ8_MEMBER( mc80_state::zve_port_a_r )
trunk/src/mess/machine/ti99/speech8.c
r17814r17815
7272{
7373   if ((offset & m_select_mask)==m_select_value)
7474   {
75      device_adjust_icount(machine().device("maincpu"),-(18+3));      /* this is just a minimum, it can be more */
75      machine().device("maincpu")->execute().adjust_icount(-(18+3));      /* this is just a minimum, it can be more */
7676      *value = m_vsp->read(space, offset, 0xff) & 0xff;
7777      if (VERBOSE>4) LOG("speech8: read value = %02x\n", *value);
7878   }
r17814r17815
8585{
8686   if ((offset & m_select_mask)==(m_select_value | 0x0400))
8787   {
88      device_adjust_icount(machine().device("maincpu"),-(54+3));      /* this is just an approx. minimum, it can be much more */
88      machine().device("maincpu")->execute().adjust_icount(-(54+3));      /* this is just an approx. minimum, it can be much more */
8989
9090      /* RN: the stupid design of the tms5220 core means that ready is cleared */
9191      /* when there are 15 bytes in FIFO.  It should be 16.  Of course, if */
r17814r17815
9797         int cycles_to_ready = machine().device<cpu_device>("maincpu")->attotime_to_cycles(time_to_ready);
9898         if (VERBOSE>8) LOG("speech8: time to ready: %f -> %d\n", time_to_ready.as_double(), (int) cycles_to_ready);
9999
100         device_adjust_icount(machine().device("maincpu"),-cycles_to_ready);
100         machine().device("maincpu")->execute().adjust_icount(-cycles_to_ready);
101101         machine().scheduler().timer_set(attotime::zero, FUNC_NULL);
102102      }
103103      if (VERBOSE>4) LOG("speech8: write value = %02x\n", data);
trunk/src/mess/machine/ti99/spchsyn.c
r17814r17815
108108{
109109   if ((offset & m_select_mask)==m_select_value)
110110   {
111      device_adjust_icount(machine().device("maincpu"),-(18+3));      /* this is just a minimum, it can be more */
111      machine().device("maincpu")->execute().adjust_icount(-(18+3));      /* this is just a minimum, it can be more */
112112      *value = m_vsp->read(space, offset, 0xff) & 0xff;
113113      if (VERBOSE>4) LOG("spchsyn: read value = %02x\n", *value);
114114   }
r17814r17815
121121{
122122   if ((offset & m_select_mask)==(m_select_value | 0x0400))
123123   {
124      device_adjust_icount(machine().device("maincpu"),-(54+3));      /* this is just an approx. minimum, it can be much more */
124      machine().device("maincpu")->execute().adjust_icount(-(54+3));      /* this is just an approx. minimum, it can be much more */
125125
126126      /* RN: the stupid design of the tms5220 core means that ready is cleared */
127127      /* when there are 15 bytes in FIFO.  It should be 16.  Of course, if */
r17814r17815
133133         int cycles_to_ready = machine().device<cpu_device>("maincpu")->attotime_to_cycles(time_to_ready);
134134         if (VERBOSE>8) LOG("spchsyn: time to ready: %f -> %d\n", time_to_ready.as_double(), (int) cycles_to_ready);
135135
136         device_adjust_icount(machine().device("maincpu"),-cycles_to_ready);
136         machine().device("maincpu")->execute().adjust_icount(-cycles_to_ready);
137137         machine().scheduler().timer_set(attotime::zero, FUNC_NULL);
138138      }
139139      if (VERBOSE>4) LOG("spchsyn: write value = %02x\n", data);
trunk/src/mess/machine/a2themill.c
r17814r17815
108108    m_flipAddrSpace = false;
109109    m_6809Mode = false;
110110    m_status = 0xc0;    // OS9 loader relies on this
111    device_set_input_line(m_6809, INPUT_LINE_HALT, ASSERT_LINE);
112    device_set_input_line(m_6809, INPUT_LINE_RESET, ASSERT_LINE);
111    m_6809->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
112    m_6809->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
113113}
114114
115115UINT8 a2bus_themill_device::read_c0nx(address_space &space, UINT8 offset)
r17814r17815
141141                m_6502space = &space;
142142                m_6809->reset();
143143
144                device_set_input_line(m_6809, INPUT_LINE_HALT, CLEAR_LINE);
145                device_set_input_line(m_6809, INPUT_LINE_RESET, CLEAR_LINE);
144                m_6809->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
145                m_6809->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
146146
147147                m_bEnabled = true;
148148                m_status &= ~0x04;
149149            }
150150            else
151151            {
152                device_set_input_line(m_6809, INPUT_LINE_HALT, ASSERT_LINE);
152                m_6809->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
153153                m_bEnabled = false;
154154                m_status |= 0x04;
155155            }
r17814r17815
170170        case 3: // 6809 NMI
171171            if (data & 0x80)
172172            {
173                device_set_input_line(m_6809, INPUT_LINE_NMI, CLEAR_LINE);
173                m_6809->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
174174                m_status |= 0x08;
175175            }
176176            else
177177            {
178                device_set_input_line(m_6809, INPUT_LINE_NMI, ASSERT_LINE);
178                m_6809->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
179179                m_status &= ~0x08;
180180            }
181181            break;
r17814r17815
183183        case 4: // 6809 FIRQ
184184            if (data & 0x80)
185185            {
186                device_set_input_line(m_6809, M6809_FIRQ_LINE, CLEAR_LINE);
186                m_6809->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
187187                m_status |= 0x10;
188188            }
189189            else
190190            {
191                device_set_input_line(m_6809, M6809_FIRQ_LINE, ASSERT_LINE);
191                m_6809->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
192192                m_status &= ~0x10;
193193            }
194194            break;
r17814r17815
196196        case 5: // 6809 IRQ
197197            if (data & 0x80)
198198            {
199                device_set_input_line(m_6809, M6809_IRQ_LINE, CLEAR_LINE);
199                m_6809->set_input_line(M6809_IRQ_LINE, CLEAR_LINE);
200200                m_status |= 0x20;
201201            }
202202            else
203203            {
204                device_set_input_line(m_6809, M6809_IRQ_LINE, ASSERT_LINE);
204                m_6809->set_input_line(M6809_IRQ_LINE, ASSERT_LINE);
205205                m_status &= ~0x20;
206206            }
207207            break;
trunk/src/mess/machine/ecbbus.c
r17814r17815
144144
145145void ecbbus_device::device_start()
146146{
147   m_maincpu = machine().device(m_cputag);
147   m_maincpu = machine().device<cpu_device>(m_cputag);
148148
149149   // resolve callbacks
150150   m_out_int_func.resolve(m_out_int_cb, *this);
trunk/src/mess/machine/ecbbus.h
r17814r17815
123123
124124private:
125125   // internal state
126   device_t   *m_maincpu;
126   cpu_device   *m_maincpu;
127127
128128   devcb_resolved_write_line   m_out_int_func;
129129   devcb_resolved_write_line   m_out_nmi_func;
trunk/src/mess/machine/advision.c
r17814r17815
4040void advision_state::machine_reset()
4141{
4242   /* enable internal ROM */
43   device_set_input_line(m_maincpu, MCS48_INPUT_EA, CLEAR_LINE);
43   m_maincpu->set_input_line(MCS48_INPUT_EA, CLEAR_LINE);
4444   membank("bank1")->set_entry(0);
4545
4646   /* reset sound CPU */
47   device_set_input_line(m_soundcpu, INPUT_LINE_RESET, ASSERT_LINE);
47   m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
4848
4949   m_rambank = 0x300;
5050   m_frame_start = 0;
r17814r17815
5858{
5959   int ea = BIT(data, 2);
6060
61   device_set_input_line(m_maincpu, MCS48_INPUT_EA, ea ? ASSERT_LINE : CLEAR_LINE);
61   m_maincpu->set_input_line(MCS48_INPUT_EA, ea ? ASSERT_LINE : CLEAR_LINE);
6262
6363   membank("bank1")->set_entry(ea);
6464
r17814r17815
7979
8080   if (m_video_bank == 0x06)
8181   {
82      device_set_input_line(m_soundcpu, INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
82      m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE);
8383   }
8484
8585   return data;
trunk/src/mess/machine/b2m.c
r17814r17815
372372   state->m_b2m_side = 0;
373373   state->m_b2m_drive = 0;
374374
375   device_set_irq_callback(machine.device("maincpu"), b2m_irq_callback);
375   machine.device("maincpu")->execute().set_irq_acknowledge_callback(b2m_irq_callback);
376376   b2m_set_bank(machine, 7);
377377}
trunk/src/mess/machine/pet.c
r17814r17815
198198   driver_state->m_pia0_irq = state;
199199   int level = (driver_state->m_pia0_irq | driver_state->m_pia1_irq | driver_state->m_via_irq) ? ASSERT_LINE : CLEAR_LINE;
200200
201   device_set_input_line(device->machine().firstcpu, INPUT_LINE_IRQ0, level);
201   device->machine().firstcpu->set_input_line(INPUT_LINE_IRQ0, level);
202202}
203203
204204const pia6821_interface pet_pia0 =
r17814r17815
249249   driver_state->m_pia1_irq = state;
250250   int level = (driver_state->m_pia0_irq | driver_state->m_pia1_irq | driver_state->m_via_irq) ? ASSERT_LINE : CLEAR_LINE;
251251
252   device_set_input_line(device->machine().firstcpu, INPUT_LINE_IRQ0, level);
252   device->machine().firstcpu->set_input_line(INPUT_LINE_IRQ0, level);
253253}
254254
255255const pia6821_interface pet_pia1 =
r17814r17815
382382   driver_state->m_via_irq = state;
383383   int level = (driver_state->m_pia0_irq | driver_state->m_pia1_irq | driver_state->m_via_irq) ? ASSERT_LINE : CLEAR_LINE;
384384
385   device_set_input_line(device->machine().firstcpu, INPUT_LINE_IRQ0, level);
385   device->machine().firstcpu->set_input_line(INPUT_LINE_IRQ0, level);
386386}
387387
388388const via6522_interface pet_via =
r17814r17815
770770   {
771771      if (state->ioport("CFG")->read() & 0x04)
772772      {
773         device_set_input_line(device, INPUT_LINE_HALT, 1);
774         device_set_input_line(device, INPUT_LINE_HALT, 0);
773         device->execute().set_input_line(INPUT_LINE_HALT, 1);
774         device->execute().set_input_line(INPUT_LINE_HALT, 0);
775775         state->m_font |= 2;
776776      }
777777      else
778778      {
779         device_set_input_line(device, INPUT_LINE_HALT, 0);
780         device_set_input_line(device, INPUT_LINE_HALT, 1);
779         device->execute().set_input_line(INPUT_LINE_HALT, 0);
780         device->execute().set_input_line(INPUT_LINE_HALT, 1);
781781         state->m_font &= ~2;
782782      }
783783   }
trunk/src/mess/machine/genpc.c
r17814r17815
6060
6161WRITE_LINE_MEMBER( ibm5160_mb_device::pc_dma_hrq_changed )
6262{
63   device_set_input_line(m_maincpu, INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
63   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
6464
6565   /* Assert HLDA */
6666   m_dma8237->hack_w(state);
r17814r17815
665665
666666void ibm5160_mb_device::device_reset()
667667{
668   device_set_irq_callback(m_maincpu, pc_irq_callback);
668   m_maincpu->set_irq_acknowledge_callback(pc_irq_callback);
669669
670670   m_u73_q2 = 0;
671671   m_out1 = 2; // initial state of pit output is undefined
trunk/src/mess/machine/vector06.c
r17814r17815
127127   vector06_state *state = device->machine().driver_data<vector06_state>();
128128   state->m_vblank_state++;
129129   if (state->m_vblank_state>1) state->m_vblank_state=0;
130   device_set_input_line(device,0,state->m_vblank_state ? HOLD_LINE : CLEAR_LINE);
130   device->execute().set_input_line(0,state->m_vblank_state ? HOLD_LINE : CLEAR_LINE);
131131
132132}
133133
r17814r17815
173173   vector06_state *state = machine.driver_data<vector06_state>();
174174   address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
175175
176   device_set_irq_callback(machine.device("maincpu"), vector06_irq_callback);
176   machine.device("maincpu")->execute().set_irq_acknowledge_callback(vector06_irq_callback);
177177   space->install_read_bank (0x0000, 0x7fff, "bank1");
178178   space->install_write_bank(0x0000, 0x7fff, "bank2");
179179   space->install_read_bank (0x8000, 0xffff, "bank3");
trunk/src/mess/machine/kb_keytro.c
r17814r17815
468468
469469WRITE_LINE_MEMBER( pc_kbd_keytronic_pc3270_device::clock_write )
470470{
471   device_set_input_line( m_cpu, MCS51_INT0_LINE, state );
471   m_cpu->set_input_line(MCS51_INT0_LINE, state );
472472}
473473
474474
475475WRITE_LINE_MEMBER( pc_kbd_keytronic_pc3270_device::data_write )
476476{
477   device_set_input_line( m_cpu, MCS51_T0_LINE, state);
477   m_cpu->set_input_line(MCS51_T0_LINE, state);
478478}
479479
480480
trunk/src/mess/machine/bk.c
r17814r17815
7474static IRQ_CALLBACK(bk0010_irq_callback)
7575{
7676   bk_state *state = device->machine().driver_data<bk_state>();
77   device_set_input_line(device, 0, CLEAR_LINE);
77   device->execute().set_input_line(0, CLEAR_LINE);
7878   return state->m_key_irq_vector;
7979}
8080
8181MACHINE_RESET( bk0010 )
8282{
8383   bk_state *state = machine.driver_data<bk_state>();
84   device_set_irq_callback(machine.device("maincpu"), bk0010_irq_callback);
84   machine.device("maincpu")->execute().set_irq_acknowledge_callback(bk0010_irq_callback);
8585
8686   state->m_kbd_state = 0;
8787   state->m_scrool = 01330;
trunk/src/mess/machine/amigacrt.c
r17814r17815
166166   amigacrt.ar1_spurious = 0;
167167
168168   /* Install IRQ ACK callback */
169   device_set_irq_callback(machine.device("maincpu"), amiga_ar1_irqack);
169   machine.device("maincpu")->execute().set_irq_acknowledge_callback(amiga_ar1_irqack);
170170}
171171
172172/***************************************************************************
trunk/src/mess/machine/amstrad.c
r17814r17815
14461446         if ( m_asic.enabled )
14471447         {
14481448            vector = (data & 0xf8) + (m_plus_irq_cause);
1449            device_set_input_line_vector(m_maincpu, 0, vector);
1449            m_maincpu->set_input_line_vector(0, vector);
14501450            logerror("ASIC: IM 2 vector write %02x, data = &%02x\n",vector,data);
14511451         }
14521452         m_asic.dma_clear = data & 0x01;
r17814r17815
28882888
28892889   state->m_maincpu->reset();
28902890   if ( state->m_system_type == SYSTEM_CPC || state->m_system_type == SYSTEM_ALESTE )
2891      device_set_input_line_vector(state->m_maincpu, 0, 0xff);
2891      state->m_maincpu->set_input_line_vector(0, 0xff);
28922892   else
2893      device_set_input_line_vector(state->m_maincpu, 0, 0x00);
2893      state->m_maincpu->set_input_line_vector(0, 0x00);
28942894
28952895   /* The opcode timing in the Amstrad is different to the opcode
28962896    timing in the core for the Z80 CPU.
r17814r17815
29112911      (const UINT8*)amstrad_cycle_table_ex);
29122912
29132913   /* Juergen is a cool dude! */
2914   device_set_irq_callback(state->m_maincpu, amstrad_cpu_acknowledge_int);
2914   state->m_maincpu->set_irq_acknowledge_callback(amstrad_cpu_acknowledge_int);
29152915}
29162916
29172917static TIMER_CALLBACK( cb_set_resolution )
trunk/src/mess/machine/sms.c
r17814r17815
21042104WRITE_LINE_DEVICE_HANDLER( sms_store_int_callback )
21052105{
21062106   sms_state *driver_state = device->machine().driver_data<sms_state>();
2107   device_set_input_line(driver_state->m_store_control & 0x01 ? driver_state->m_control_cpu : driver_state->m_main_cpu, 0, state);
2107   (driver_state->m_store_control & 0x01 ? driver_state->m_control_cpu : driver_state->m_main_cpu)->execute().set_input_line(0, state);
21082108}
21092109
21102110
trunk/src/mess/machine/nes_pcb.c
r17814r17815
12921292      {
12931293         LOG_MMC(("irq fired, scanline: %d (MAME %d, beam pos: %d)\n", scanline,
12941294                device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()));
1295         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
1295         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
12961296      }
12971297   }
12981298   state->m_IRQ_clear = 0;
r17814r17815
18221822   if (scanline == state->m_IRQ_count)
18231823   {
18241824      if (state->m_IRQ_enable)
1825         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
1825         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
18261826
18271827      state->m_IRQ_status = 0xff;
18281828   }
r17814r17815
24612461      if (state->m_IRQ_count <= 114)
24622462      {
24632463         state->m_IRQ_count = 0xffff;
2464         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
2464         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
24652465      }
24662466      else
24672467         state->m_IRQ_count -= 114;
r17814r17815
28342834   {
28352835      if (state->m_IRQ_count <= 114)
28362836      {
2837         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
2837         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
28382838         state->m_IRQ_count = (0xffff - 114 + state->m_IRQ_count);   // wrap around the 16 bits counter
28392839      }
28402840      state->m_IRQ_count -= 114;
r17814r17815
30923092      if (state->m_IRQ_count <= 114)
30933093      {
30943094         state->m_IRQ_enable = 0;
3095         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3095         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
30963096      }
30973097   }
30983098}
r17814r17815
31753175      {
31763176         if ((state->m_IRQ_count & 0x000f) < 114)   // always true, but we only update the IRQ once per scanlines so we cannot be more precise :(
31773177         {
3178            device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3178            state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
31793179            state->m_IRQ_count = (state->m_IRQ_count & ~0x000f) | (0x0f - (114 & 0x0f) + (state->m_IRQ_count & 0x000f)); // sort of wrap around the counter
31803180         }
31813181         // decrements should not affect upper bits, so we don't do anything here (114 > 0x0f)
r17814r17815
31843184      {
31853185         if ((state->m_IRQ_count & 0x00ff) < 114)
31863186         {
3187            device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3187            state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
31883188            state->m_IRQ_count = (state->m_IRQ_count & ~0x00ff) | (0xff - 114 + (state->m_IRQ_count & 0x00ff));   // wrap around the 8 bits counter
31893189         }
31903190         else
r17814r17815
31943194      {
31953195         if ((state->m_IRQ_count & 0x0fff)  < 114)
31963196         {
3197            device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3197            state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
31983198            state->m_IRQ_count = (state->m_IRQ_count & ~0x0fff) | (0xfff - 114 + (state->m_IRQ_count & 0x0fff));   // wrap around the 12 bits counter
31993199         }
32003200         else
r17814r17815
32023202      }
32033203      else if (state->m_IRQ_count < 114)
32043204      {
3205         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3205         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
32063206         state->m_IRQ_count = (0xffff - 114 + state->m_IRQ_count);   // wrap around the 16 bits counter
32073207      }
32083208      else
r17814r17815
35863586   {
35873587      state->m_IRQ_count = state->m_IRQ_count_latch;
35883588      state->m_IRQ_enable = state->m_IRQ_enable_latch;
3589      device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3589      state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
35903590   }
35913591}
35923592
r17814r17815
38553855   {
38563856      if (state->m_IRQ_count >= (0x7fff - 114))
38573857      {
3858         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
3858         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
38593859         state->m_IRQ_count = 0;
38603860      }
38613861      else
r17814r17815
40284028      {
40294029         state->m_IRQ_enable = 0;
40304030         state->m_IRQ_count = 0xffff;
4031         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
4031         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
40324032      }
40334033      else
40344034         state->m_IRQ_count -= 114;
r17814r17815
51005100      {
51015101         state->m_IRQ_count--;
51025102         if (!state->m_IRQ_count)
5103            device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
5103            state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
51045104      }
51055105   }
51065106}
r17814r17815
54815481      {
54825482         state->m_IRQ_enable = 0;
54835483         state->m_IRQ_count = state->m_IRQ_count_latch;
5484         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
5484         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
54855485      }
54865486      else
54875487         state->m_IRQ_count += 114;
r17814r17815
55945594   {
55955595      if (state->m_IRQ_count <= 114)
55965596      {
5597         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
5597         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
55985598         state->m_IRQ_enable = 0;
55995599         state->m_IRQ_status |= 0x01;
56005600      }
r17814r17815
72267226               {
72277227                  LOG_MMC(("irq fired, scanline: %d (MAME %d, beam pos: %d)\n", scanline,
72287228                         device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()));
7229                  device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
7229                  state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
72307230               }
72317231            }
72327232         }
r17814r17815
72537253            {
72547254               LOG_MMC(("irq fired, scanline: %d (MAME %d, beam pos: %d)\n", scanline,
72557255                      device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()));
7256               device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
7256               state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
72577257            }
72587258         }
72597259      }
r17814r17815
89368936      {
89378937         LOG_MMC(("irq fired, scanline: %d (MAME %d, beam pos: %d)\n", scanline,
89388938                device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()));
8939         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
8939         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
89408940         state->m_IRQ_enable = 0;
89418941      }
89428942   }
r17814r17815
90759075      if (state->m_IRQ_count < 0x1000)
90769076      {
90779077         if ((0x1000 - state->m_IRQ_count) <= 114)
9078            device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
9078            state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
90799079         else
90809080            state->m_IRQ_count += 114;
90819081      }
r17814r17815
93619361      {
93629362         state->m_IRQ_count = (state->m_IRQ_count + 1) & 0xfff;
93639363         state->m_IRQ_enable = 0;
9364         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
9364         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
93659365      }
93669366      else
93679367         state->m_IRQ_count += 114;
r17814r17815
94479447   {
94489448      if ((0xffff - state->m_IRQ_count) < 114)
94499449      {
9450         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
9450         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
94519451         state->m_IRQ_enable = 0;
94529452      }
94539453
r17814r17815
95269526      state->m_IRQ_count = 0;
95279527      LOG_MMC(("irq fired, scanline: %d (MAME %d, beam pos: %d)\n", scanline,
95289528             device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()));
9529      device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
9529      state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
95309530   }
95319531}
95329532
r17814r17815
1140811408      {
1140911409         state->m_IRQ_count = state->m_IRQ_count_latch;
1141011410         state->m_IRQ_enable = state->m_IRQ_enable | ((state->m_IRQ_enable & 0x01) << 1);
11411         device_set_input_line(state->m_maincpu, M6502_IRQ_LINE, HOLD_LINE);
11411         state->m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE);
1141211412      }
1141311413      else
1141411414         state->m_IRQ_count++;
trunk/src/mess/machine/kc_d004.c
r17814r17815
245245   switch(id)
246246   {
247247      case TIMER_RESET:
248         device_set_input_line(m_cpu, INPUT_LINE_RESET, ASSERT_LINE);
248         m_cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
249249         break;
250250      case TIMER_TC_CLEAR:
251251         upd765_tc_w(m_fdc, 0x00);
r17814r17815
331331            break;
332332         case 0xf4:
333333            if (data & 0x01)
334               device_set_input_line(m_cpu, INPUT_LINE_RESET, CLEAR_LINE);
334               m_cpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
335335
336336            if (data & 0x02)
337337            {
338338               for (int i=0; i<0xfc00; i++)
339339                  m_cpu->space(AS_PROGRAM)->write_byte(i, 0);
340340
341               device_set_input_line(m_cpu, INPUT_LINE_RESET, ASSERT_LINE);
341               m_cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
342342            }
343343
344344            if (data & 0x04)
345               device_set_input_line(m_cpu, INPUT_LINE_RESET, HOLD_LINE);
345               m_cpu->set_input_line(INPUT_LINE_RESET, HOLD_LINE);
346346
347347            if (data & 0x08)
348               device_set_input_line(m_cpu, INPUT_LINE_NMI, HOLD_LINE);
348               m_cpu->set_input_line(INPUT_LINE_NMI, HOLD_LINE);
349349
350350            //printf("D004 CPU state: %x\n", data & 0x0f);
351351            break;
trunk/src/mess/machine/ti85.c
r17814r17815
2222   {
2323      if (state->m_ON_interrupt_mask && !state->m_ON_pressed)
2424      {
25         device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
25         state->m_maincpu->set_input_line(0, HOLD_LINE);
2626         state->m_ON_interrupt_status = 1;
2727         if (!state->m_timer_interrupt_mask) state->m_timer_interrupt_mask = 1;
2828      }
r17814r17815
3333      state->m_ON_pressed = 0;
3434   if (state->m_timer_interrupt_mask)
3535   {
36      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
36      state->m_maincpu->set_input_line(0, HOLD_LINE);
3737      state->m_timer_interrupt_status = 1;
3838   }
3939}
r17814r17815
604604
605605   state->m_maincpu->set_state_int(Z80_R, (reg[0x44]&0x7f) | (reg[0x48]&0x80));
606606
607   device_set_input_line(state->m_maincpu, 0, 0);
608   device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, 0);
609   device_set_input_line(state->m_maincpu, INPUT_LINE_HALT, 0);
607   state->m_maincpu->set_input_line(0, 0);
608   state->m_maincpu->set_input_line(INPUT_LINE_NMI, 0);
609   state->m_maincpu->set_input_line(INPUT_LINE_HALT, 0);
610610}
611611
612612static void ti85_setup_snapshot (running_machine &machine, UINT8 * data)
trunk/src/mess/machine/galaxy.c
r17814r17815
4747
4848INTERRUPT_GEN( galaxy_interrupt )
4949{
50   device_set_input_line(device, 0, HOLD_LINE);
50   device->execute().set_input_line(0, HOLD_LINE);
5151}
5252
5353static IRQ_CALLBACK ( galaxy_irq_callback )
r17814r17815
123123         break;
124124   }
125125
126   device_set_input_line(cpu, INPUT_LINE_NMI, CLEAR_LINE);
127   device_set_input_line(cpu, INPUT_LINE_IRQ0, CLEAR_LINE);
126   cpu->execute().set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
127   cpu->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
128128}
129129
130130SNAPSHOT_LOAD( galaxy )
r17814r17815
185185   if (machine.root_device().ioport("ROM2")->read())
186186      state->membank("bank10")->set_base(machine.root_device().memregion("maincpu")->base() + 0x1000);
187187
188   device_set_irq_callback(machine.device("maincpu"), galaxy_irq_callback);
188   machine.device("maincpu")->execute().set_irq_acknowledge_callback(galaxy_irq_callback);
189189   state->m_interrupts_enabled = TRUE;
190190}
191191
r17814r17815
200200   UINT8 *ROM = machine.root_device().memregion("maincpu")->base();
201201   address_space *space = machine.device("maincpu")->memory().space(AS_PROGRAM);
202202
203   device_set_irq_callback(machine.device("maincpu"), galaxy_irq_callback);
203   machine.device("maincpu")->execute().set_irq_acknowledge_callback(galaxy_irq_callback);
204204
205205   ROM[0x0037] = 0x29;
206206   ROM[0x03f9] = 0xcd;
trunk/src/mess/machine/compis.c
r17814r17815
414414      logerror("(%f) **** Acknowledged interrupt vector %02X\n", device->machine().time().as_double(), state->m_i186.intr.poll_status & 0x1f);
415415
416416   /* clear the interrupt */
417   device_set_input_line(device, 0, CLEAR_LINE);
417   device->execute().set_input_line(0, CLEAR_LINE);
418418   state->m_i186.intr.pending = 0;
419419
420420   /* clear the request and set the in-service bit */
r17814r17815
12161216         /* we need to do this at a time when the I86 context is swapped in */
12171217         /* this register is generally set once at startup and never again, so it's a good */
12181218         /* time to set it up */
1219         device_set_irq_callback(m_maincpu, int_callback);
1219         m_maincpu->set_irq_acknowledge_callback(int_callback);
12201220         break;
12211221
12221222      case 0x60:
r17814r17815
13671367DRIVER_INIT_MEMBER(compis_state,compis)
13681368{
13691369
1370   device_set_irq_callback(machine().device("maincpu"), compis_irq_callback);
1370   machine().device("maincpu")->execute().set_irq_acknowledge_callback(compis_irq_callback);
13711371   memset (&m_compis, 0, sizeof (m_compis) );
13721372}
13731373
r17814r17815
13901390   compis_keyb_init(state);
13911391
13921392   /* OSP PIC 8259 */
1393   device_set_irq_callback(state->m_maincpu, compis_irq_callback);
1393   state->m_maincpu->set_irq_acknowledge_callback(compis_irq_callback);
13941394}
13951395
13961396/*-------------------------------------------------------------------------*/
trunk/src/mess/machine/zx.c
r17814r17815
388388      zx_ula_bkgnd(1);
389389      if (m_ula_frame_vsync == 2)
390390      {
391         device_spin_until_time(&mem->device(),machine().primary_screen->time_until_pos(height - 1, 0));
391         mem->device().execute().spin_until_time(machine().primary_screen->time_until_pos(height - 1, 0));
392392         m_ula_scanline_count = height - 1;
393393         logerror ("S: %d B: %d\n", machine().primary_screen->vpos(), machine().primary_screen->hpos());
394394      }
trunk/src/mess/machine/abc99.c
r17814r17815
239239
240240INPUT_CHANGED_MEMBER( abc99_device::keyboard_reset )
241241{
242   device_set_input_line(m_mousecpu, INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
242   m_mousecpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
243243}
244244
245245
r17814r17815
459459
460460inline void abc99_device::serial_input()
461461{
462   device_set_input_line(m_maincpu, MCS48_INPUT_IRQ, (m_si | m_si_en) ? CLEAR_LINE : ASSERT_LINE);
463   device_set_input_line(m_mousecpu, MCS48_INPUT_IRQ, m_si ? CLEAR_LINE : ASSERT_LINE);
462   m_maincpu->set_input_line(MCS48_INPUT_IRQ, (m_si | m_si_en) ? CLEAR_LINE : ASSERT_LINE);
463   m_mousecpu->set_input_line(MCS48_INPUT_IRQ, m_si ? CLEAR_LINE : ASSERT_LINE);
464464}
465465
466466
r17814r17815
578578void abc99_device::device_reset()
579579{
580580   // set EA lines
581   device_set_input_line(m_maincpu, MCS48_INPUT_EA, ASSERT_LINE);
582   device_set_input_line(m_mousecpu, MCS48_INPUT_EA, ASSERT_LINE);
581   m_maincpu->set_input_line(MCS48_INPUT_EA, ASSERT_LINE);
582   m_mousecpu->set_input_line(MCS48_INPUT_EA, ASSERT_LINE);
583583}
584584
585585
r17814r17815
786786   if (m_reset != reset)
787787   {
788788      m_reset = reset;
789      device_set_input_line(m_maincpu, INPUT_LINE_RESET, m_reset ? CLEAR_LINE : ASSERT_LINE);
789      m_maincpu->set_input_line(INPUT_LINE_RESET, m_reset ? CLEAR_LINE : ASSERT_LINE);
790790   }
791791
792792   // serial output
r17814r17815
854854
855855WRITE_LINE_MEMBER( abc99_device::reset_w )
856856{
857   device_set_input_line(m_mousecpu, INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE);
857   m_mousecpu->set_input_line(INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE);
858858}
trunk/src/mess/machine/mac.c
r17814r17815
15681568      logerror("mac_via_r: offset=0x%02x\n", offset);
15691569   data = m_via1->read(space, offset);
15701570
1571   device_adjust_icount(m_maincpu, m_via_cycles);
1571   m_maincpu->adjust_icount(m_via_cycles);
15721572
15731573   return (data & 0xff) | (data << 8);
15741574}
r17814r17815
15861586   if (ACCESSING_BITS_8_15)
15871587      m_via1->write(space, offset, (data >> 8) & 0xff);
15881588
1589   device_adjust_icount(m_maincpu, m_via_cycles);
1589   m_maincpu->adjust_icount(m_via_cycles);
15901590}
15911591
15921592/* *************************************************************************
trunk/src/mess/machine/i82371sb.c
r17814r17815
154154   /* setup save states */
155155   save_item(NAME(m_regs));
156156
157   device_set_irq_callback(machine().device(":maincpu"), at_irq_callback);
157   machine().device(":maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
158158}
159159
160160//-------------------------------------------------
trunk/src/mess/machine/mboard.c
r17814r17815
219219WRITE8_HANDLER( mboard_write_LED_8 )
220220{
221221   write_LED(data);
222   device_spin_until_time(&space->device(), attotime::from_usec(7));
222   space->device().execute().spin_until_time(attotime::from_usec(7));
223223}
224224
225225WRITE16_HANDLER( mboard_write_LED_16 )
226226{
227227    write_LED(data >> 8);
228    device_spin_until_time(&space->device(), attotime::from_usec(9));
228    space->device().execute().spin_until_time(attotime::from_usec(9));
229229}
230230
231231WRITE32_HANDLER( mboard_write_LED_32 )
r17814r17815
235235   if (offset) write_LED(data);
236236   else write_LED(data >> 24);
237237   logerror("write LED   32 o: %08x d: %08x\n",offset,data);
238//  device_spin_until_time(&space->device(), ATTOTIME_IN_USEC(20));
238//  space->device().execute().spin_until_time(ATTOTIME_IN_USEC(20));
239239}
240240
241241
trunk/src/mess/machine/msx.c
r17814r17815
520520
521521DRIVER_INIT_MEMBER(msx_state,msx)
522522{
523   device_set_input_line_vector (machine().device("maincpu"), 0, 0xff);
523   machine().device("maincpu")->execute().set_input_line_vector(0, 0xff);
524524
525525   msx_memory_init (machine());
526526
trunk/src/mess/machine/lisa.c
r17814r17815
328328                  if (keycode == state->m_NMIcode)
329329                  {   /* generate NMI interrupt */
330330                     machine.device("maincpu")->execute().set_input_line(M68K_IRQ_7, PULSE_LINE);
331                     device_set_input_line_vector(machine.device("maincpu"), M68K_IRQ_7, M68K_INT_ACK_AUTOVECTOR);
331                     machine.device("maincpu")->execute().set_input_line_vector(M68K_IRQ_7, M68K_INT_ACK_AUTOVECTOR);
332332                  }
333333#endif
334334                  COPS_queue_data(machine, & keycode, 1);
trunk/src/mess/machine/isa.c
r17814r17815
133133       memset(&m_out_drq2_cb, 0, sizeof(m_out_drq2_cb));
134134       memset(&m_out_drq3_cb, 0, sizeof(m_out_drq3_cb));
135135   }
136   m_maincpu = mconfig().device(m_cputag);
136   m_maincpu = mconfig().device<cpu_device>(m_cputag);
137137}
138138
139139//**************************************************************************
r17814r17815
201201
202202void isa8_device::install_space(address_spacenum spacenum, offs_t start, offs_t end, offs_t mask, offs_t mirror, read8_space_func rhandler, const char* rhandler_name, write8_space_func whandler, const char *whandler_name)
203203{
204   int buswidth = m_maincpu->memory().space_config(spacenum)->m_databus_width;
204   int buswidth = m_maincpu->space_config(spacenum)->m_databus_width;
205205   switch(buswidth)
206206   {
207207      case 8:
208         m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0);
208         m_maincpu->space(spacenum)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0);
209209         break;
210210      case 16:
211         m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff);
211         m_maincpu->space(spacenum)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff);
212212         break;
213213      case 32:
214214         if ((start % 4) == 0) {
215215            if ((end-start)==1) {
216               m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0x0000ffff);
216               m_maincpu->space(spacenum)->install_legacy_readwrite_handler(start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0x0000ffff);
217217            } else {
218               m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffffffff);
218               m_maincpu->space(spacenum)->install_legacy_readwrite_handler(start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffffffff);
219219            }
220220         } else {
221221            // we handle just misalligned by 2
222            m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff0000);
222            m_maincpu->space(spacenum)->install_legacy_readwrite_handler(start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff0000);
223223         }
224224         break;
225225      default:
r17814r17815
231231
232232void isa8_device::install_space(address_spacenum spacenum, offs_t start, offs_t end, offs_t mask, offs_t mirror, read8_delegate rhandler, write8_delegate whandler)
233233{
234   int buswidth = m_maincpu->memory().space_config(spacenum)->m_databus_width;
234   int buswidth = m_maincpu->space_config(spacenum)->m_databus_width;
235235   switch(buswidth)
236236   {
237237      case 8:
238         m_maincpu->memory().space(spacenum)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0);
238         m_maincpu->space(spacenum)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0);
239239         break;
240240      case 16:
241         m_maincpu->memory().space(spacenum)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0xffff);
241         m_maincpu->space(spacenum)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0xffff);
242242         break;
243243      case 32:
244244         if ((start % 4) == 0) {
245245            if ((end-start)==1) {
246               m_maincpu->memory().space(spacenum)->install_readwrite_handler(start, end+2, mask, mirror, rhandler, whandler, 0x0000ffff);
246               m_maincpu->space(spacenum)->install_readwrite_handler(start, end+2, mask, mirror, rhandler, whandler, 0x0000ffff);
247247            } else {
248               m_maincpu->memory().space(spacenum)->install_readwrite_handler(start, end,   mask, mirror, rhandler, whandler, 0xffffffff);
248               m_maincpu->space(spacenum)->install_readwrite_handler(start, end,   mask, mirror, rhandler, whandler, 0xffffffff);
249249            }
250250         } else {
251251            // we handle just misalligned by 2
252            m_maincpu->memory().space(spacenum)->install_readwrite_handler(start-2, end, mask, mirror, rhandler, whandler, 0xffff0000);
252            m_maincpu->space(spacenum)->install_readwrite_handler(start-2, end, mask, mirror, rhandler, whandler, 0xffff0000);
253253         }
254254         break;
255255      default:
r17814r17815
261261
262262void isa8_device::install_space(address_spacenum spacenum, device_t *dev, offs_t start, offs_t end, offs_t mask, offs_t mirror, read8_device_func rhandler, const char* rhandler_name, write8_device_func whandler, const char *whandler_name)
263263{
264   int buswidth = m_maincpu->memory().space_config(spacenum)->m_databus_width;
264   int buswidth = m_maincpu->space_config(spacenum)->m_databus_width;
265265   switch(buswidth)
266266   {
267267      case 8:
268         m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(*dev, start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0);
268         m_maincpu->space(spacenum)->install_legacy_readwrite_handler(*dev, start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0);
269269         break;
270270      case 16:
271         m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(*dev, start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff);
271         m_maincpu->space(spacenum)->install_legacy_readwrite_handler(*dev, start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff);
272272         break;
273273      case 32:
274274         if ((start % 4) == 0) {
275275            if ((end-start)==1) {
276               m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(*dev, start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0x0000ffff);
276               m_maincpu->space(spacenum)->install_legacy_readwrite_handler(*dev, start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0x0000ffff);
277277            } else {
278               m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(*dev, start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffffffff);
278               m_maincpu->space(spacenum)->install_legacy_readwrite_handler(*dev, start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffffffff);
279279            }
280280         } else {
281281            // we handle just misalligned by 2
282            m_maincpu->memory().space(spacenum)->install_legacy_readwrite_handler(*dev, start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff0000);
282            m_maincpu->space(spacenum)->install_legacy_readwrite_handler(*dev, start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff0000);
283283         }
284284         break;
285285      default:
r17814r17815
327327
328328void isa8_device::install_bank(offs_t start, offs_t end, offs_t mask, offs_t mirror, const char *tag, UINT8 *data)
329329{
330   address_space *space = m_maincpu->memory().space(AS_PROGRAM);
330   address_space *space = m_maincpu->space(AS_PROGRAM);
331331   space->install_readwrite_bank(start, end, mask, mirror, tag );
332332   machine().root_device().membank(tag)->set_base(data);
333333}
334334
335335void isa8_device::unmap_bank(offs_t start, offs_t end, offs_t mask, offs_t mirror)
336336{
337   address_space *space = m_maincpu->memory().space(AS_PROGRAM);
337   address_space *space = m_maincpu->space(AS_PROGRAM);
338338   space->unmap_readwrite(start, end, mask, mirror);
339339}
340340
r17814r17815
346346      UINT8 *dest = machine().root_device().memregion("isa")->base() + start - 0xc0000;
347347      memcpy(dest,src, end - start + 1);
348348   } else {
349      address_space *space = m_maincpu->memory().space(AS_PROGRAM);
349      address_space *space = m_maincpu->space(AS_PROGRAM);
350350      space->install_read_bank(start, end, mask, mirror, tag);
351351      space->unmap_write(start, end, mask, mirror);
352352      machine().root_device().membank(tag)->set_base(machine().root_device().memregion(dev->subtag(tempstring, region))->base());
r17814r17815
355355
356356void isa8_device::unmap_rom(offs_t start, offs_t end, offs_t mask, offs_t mirror)
357357{
358   address_space *space = m_maincpu->memory().space(AS_PROGRAM);
358   address_space *space = m_maincpu->space(AS_PROGRAM);
359359   space->unmap_read(start, end, mask, mirror);
360360}
361361
362362bool isa8_device::is_option_rom_space_available(offs_t start, int size)
363363{
364   m_maincpu = machine().device(m_cputag);
365   address_space *space = m_maincpu->memory().space(AS_PROGRAM);
364   m_maincpu = machine().device<cpu_device>(m_cputag);
365   address_space *space = m_maincpu->space(AS_PROGRAM);
366366   for(int i = 0; i < size; i += 4096) // 4KB granularity should be enough
367367      if(space->get_read_ptr(start + i)) return false;
368368   return true;
r17814r17815
404404{
405405   if (m_nmi_enabled)
406406   {
407      device_set_input_line( m_maincpu, INPUT_LINE_NMI, PULSE_LINE );
407      m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
408408   }
409409}
410410//**************************************************************************
r17814r17815
518518       memset(&m_out_drq6_cb, 0, sizeof(m_out_drq6_cb));
519519       memset(&m_out_drq7_cb, 0, sizeof(m_out_drq7_cb));
520520   }
521   m_maincpu = mconfig().device(m_cputag);
521   m_maincpu = mconfig().device<cpu_device>(m_cputag);
522522}
523523
524524//-------------------------------------------------
r17814r17815
544544
545545void isa16_device::install16_device(device_t *dev, offs_t start, offs_t end, offs_t mask, offs_t mirror, read16_device_func rhandler, const char* rhandler_name, write16_device_func whandler, const char *whandler_name)
546546{
547   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
547   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
548548   switch(buswidth)
549549   {
550550      case 16:
551         m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(*dev, start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0);
551         m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(*dev, start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0);
552552         break;
553553      case 32:
554554         if ((start % 4) == 0) {
555555            if ((end-start)==1) {
556               m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(*dev, start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0x0000ffff);
556               m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(*dev, start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0x0000ffff);
557557            } else {
558               m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(*dev, start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffffffff);
558               m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(*dev, start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffffffff);
559559            }
560560         } else {
561561            // we handle just misalligned by 2
562            m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(*dev, start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff0000);
562            m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(*dev, start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name,0xffff0000);
563563         }
564564
565565         break;
r17814r17815
571571
572572void isa16_device::install16_device(offs_t start, offs_t end, offs_t mask, offs_t mirror, read16_delegate rhandler, write16_delegate whandler)
573573{
574   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
574   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
575575   switch(buswidth)
576576   {
577577      case 16:
578         m_maincpu->memory().space(AS_IO)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0);
578         m_maincpu->space(AS_IO)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0);
579579         break;
580580      case 32:
581         m_maincpu->memory().space(AS_IO)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0xffffffff);
581         m_maincpu->space(AS_IO)->install_readwrite_handler(start, end, mask, mirror, rhandler, whandler, 0xffffffff);
582582         if ((start % 4) == 0) {
583583            if ((end-start)==1) {
584               m_maincpu->memory().space(AS_IO)->install_readwrite_handler(start, end+2, mask, mirror, rhandler, whandler, 0x0000ffff);
584               m_maincpu->space(AS_IO)->install_readwrite_handler(start, end+2, mask, mirror, rhandler, whandler, 0x0000ffff);
585585            } else {
586               m_maincpu->memory().space(AS_IO)->install_readwrite_handler(start, end,   mask, mirror, rhandler, whandler, 0xffffffff);
586               m_maincpu->space(AS_IO)->install_readwrite_handler(start, end,   mask, mirror, rhandler, whandler, 0xffffffff);
587587            }
588588         } else {
589589            // we handle just misalligned by 2
590            m_maincpu->memory().space(AS_IO)->install_readwrite_handler(start-2, end, mask, mirror, rhandler, whandler, 0xffff0000);
590            m_maincpu->space(AS_IO)->install_readwrite_handler(start-2, end, mask, mirror, rhandler, whandler, 0xffff0000);
591591         }
592592
593593         break;
r17814r17815
599599
600600void isa16_device::install16_device(offs_t start, offs_t end, offs_t mask, offs_t mirror, read16_space_func rhandler, const char* rhandler_name, write16_space_func whandler, const char *whandler_name)
601601{
602   int buswidth = m_maincpu->memory().space_config(AS_PROGRAM)->m_databus_width;
602   int buswidth = m_maincpu->space_config(AS_PROGRAM)->m_databus_width;
603603   switch(buswidth)
604604   {
605605      case 16:
606         m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0);
606         m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0);
607607         break;
608608      case 32:
609         m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0xffffffff);
609         m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(start, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0xffffffff);
610610         if ((start % 4) == 0) {
611611            if ((end-start)==1) {
612               m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0x0000ffff);
612               m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(start, end+2, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0x0000ffff);
613613            } else {
614               m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0xffffffff);
614               m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(start, end,   mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0xffffffff);
615615            }
616616         } else {
617617            // we handle just misalligned by 2
618            m_maincpu->memory().space(AS_IO)->install_legacy_readwrite_handler(start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0xffff0000);
618            m_maincpu->space(AS_IO)->install_legacy_readwrite_handler(start-2, end, mask, mirror, rhandler, rhandler_name, whandler, whandler_name, 0xffff0000);
619619         }
620620
621621         break;
trunk/src/mess/machine/isa.h
r17814r17815
190190   virtual void device_config_complete();
191191
192192   // internal state
193   device_t   *m_maincpu;
193   cpu_device   *m_maincpu;
194194
195195   devcb_resolved_write_line   m_out_irq2_func;
196196   devcb_resolved_write_line   m_out_irq3_func;
trunk/src/mess/machine/mbc55x.c
r17814r17815
388388{
389389   set_ram_size(machine);
390390   keyboard_reset(machine);
391   device_set_irq_callback(machine.device(MAINCPU_TAG), mbc55x_irq_callback);
391   machine.device(MAINCPU_TAG)->execute().set_irq_acknowledge_callback(mbc55x_irq_callback);
392392}
393393
394394MACHINE_START( mbc55x )
trunk/src/mess/machine/southbridge.c
r17814r17815
209209
210210
211211   m_at_offset1 = 0xff;
212   //device_set_irq_callback(machine().device(":maincpu"), at_irq_callback);
212   //machine().device(":maincpu")->execute().set_irq_acknowledge_callback(at_irq_callback);
213213}
214214
215215//-------------------------------------------------
r17814r17815
330330
331331WRITE_LINE_MEMBER( southbridge_device::pc_dma_hrq_changed )
332332{
333   device_set_input_line(m_maincpu, INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
333   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
334334
335335   /* Assert HLDA */
336336   i8237_hlda_w( m_dma8237_2, state );
trunk/src/mess/machine/rmnimbus.c
r17814r17815
203203      logerror("(%f) **** Acknowledged interrupt vector %02X\n", device->machine().time().as_double(), state->m_i186.intr.poll_status & 0x1f);
204204
205205   /* clear the interrupt */
206   device_set_input_line(device, 0, CLEAR_LINE);
206   device->execute().set_input_line(0, CLEAR_LINE);
207207   state->m_i186.intr.pending = 0;
208208
209209   oldreq=state->m_i186.intr.request;
r17814r17815
11781178         /* we need to do this at a time when the I86 context is swapped in */
11791179         /* this register is generally set once at startup and never again, so it's a good */
11801180         /* time to set it up */
1181         device_set_irq_callback(&space.device(), int_callback);
1181         space.device().execute().set_irq_acknowledge_callback(int_callback);
11821182         break;
11831183
11841184      case 0x60:
trunk/src/mess/machine/pk8020.c
r17814r17815
998998{
999999   pk8020_state *state = machine.driver_data<pk8020_state>();
10001000   pk8020_set_bank(machine,0);
1001   device_set_irq_callback(machine.device("maincpu"), pk8020_irq_callback);
1001   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pk8020_irq_callback);
10021002
10031003   state->m_sound_gate = 0;
10041004   state->m_sound_level = 0;
trunk/src/mess/includes/nes.h
r17814r17815
126126   nes_chr_callback    m_mmc3_chr_cb;
127127
128128   /* devices */
129   device_t      *m_maincpu;
129   cpu_device      *m_maincpu;
130130   ppu2c0x_device      *m_ppu;
131131   device_t      *m_sound;
132132   device_t      *m_cart;
trunk/src/mess/includes/fmtowns.h
r17814r17815
103103   { }
104104
105105   /* devices */
106   device_t* m_maincpu;
106   cpu_device* m_maincpu;
107107   device_t* m_dma_1;
108108   device_t* m_dma_2;
109109   device_t* m_fdc;
trunk/src/mess/includes/pc.h
r17814r17815
2323   {
2424   }
2525
26   device_t *m_maincpu;
26   cpu_device *m_maincpu;
2727   device_t *m_pic8259;
2828   device_t *m_dma8237;
2929   device_t *m_pit8253;
trunk/src/mess/video/mac.c
r17814r17815
714714
715715READ32_MEMBER(mac_state::dafb_r)
716716{
717//  if (offset != 0x108/4) printf("DAFB: Read @ %x (mask %x PC=%x)\n", offset*4, mem_mask, m_maincpu->safe_pc());
717//  if (offset != 0x108/4) printf("DAFB: Read @ %x (mask %x PC=%x)\n", offset*4, mem_mask, m_maincpu->pc());
718718
719719   switch (offset<<2)
720720   {
r17814r17815
745745
746746WRITE32_MEMBER(mac_state::dafb_w)
747747{
748//  if (offset != 0x10c/4) printf("DAFB: Write %08x @ %x (mask %x PC=%x)\n", data, offset*4, mem_mask, m_maincpu->safe_pc());
748//  if (offset != 0x10c/4) printf("DAFB: Write %08x @ %x (mask %x PC=%x)\n", data, offset*4, mem_mask, m_maincpu->pc());
749749
750750   switch (offset<<2)
751751   {
r17814r17815
809809
810810READ32_MEMBER(mac_state::dafb_dac_r)
811811{
812//  printf("DAFB: Read DAC @ %x (mask %x PC=%x)\n", offset*4, mem_mask, m_maincpu->safe_pc());
812//  printf("DAFB: Read DAC @ %x (mask %x PC=%x)\n", offset*4, mem_mask, m_maincpu->pc());
813813
814814   return 0;
815815}
816816
817817WRITE32_MEMBER(mac_state::dafb_dac_w)
818818{
819//  if ((offset > 0) && (offset != 0x10/4)) printf("DAFB: Write %08x to DAC @ %x (mask %x PC=%x)\n", data, offset*4, mem_mask, m_maincpu->safe_pc());
819//  if ((offset > 0) && (offset != 0x10/4)) printf("DAFB: Write %08x to DAC @ %x (mask %x PC=%x)\n", data, offset*4, mem_mask, m_maincpu->pc());
820820
821821   switch (offset<<2)
822822   {
r17814r17815
10181018            break;
10191019
10201020        default:
1021//            printf("macwd_r: @ %x, mask %08x (PC=%x)\n", offset, mem_mask, m_maincpu->safe_pc());
1021//            printf("macwd_r: @ %x, mask %08x (PC=%x)\n", offset, mem_mask, m_maincpu->pc());
10221022            break;
10231023    }
10241024    return 0;
r17814r17815
10521052            break;
10531053
10541054        default:
1055//            printf("macwd_w: %x @ %x, mask %08x (PC=%x)\n", data, offset, mem_mask, m_maincpu->safe_pc());
1055//            printf("macwd_w: %x @ %x, mask %08x (PC=%x)\n", data, offset, mem_mask, m_maincpu->pc());
10561056            break;
10571057    }
10581058}
trunk/src/mess/video/atarist.c
r17814r17815
235235
236236   if ((y == m_shifter_vblank_start) && (x == 0))
237237   {
238      device_set_input_line(m_maincpu, M68K_IRQ_4, HOLD_LINE);
238      m_maincpu->set_input_line(M68K_IRQ_4, HOLD_LINE);
239239      m_shifter_ofs = m_shifter_base;
240240   }
241241
242242   if (x == m_shifter_hblank_start)
243243   {
244      device_set_input_line(m_maincpu, M68K_IRQ_2, HOLD_LINE);
244      m_maincpu->set_input_line(M68K_IRQ_2, HOLD_LINE);
245245//      m_shifter_ofs += (m_shifter_lineofs * 2); // STe
246246   }
247247
trunk/src/mess/video/v1050.c
r17814r17815
8989
9090WRITE_LINE_MEMBER( v1050_state::crtc_vs_w )
9191{
92   device_set_input_line(m_subcpu, INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
92   m_subcpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
9393
9494   set_interrupt(INT_VSYNC, state);
9595}
trunk/src/mess/video/zx8301.c
r17814r17815
226226
227227   if (m_vda)
228228   {
229      device_spin_until_time(m_cpu, m_screen->time_until_pos(256, 0));
229      m_cpu->spin_until_time(m_screen->time_until_pos(256, 0));
230230   }
231231
232232   return readbyte(offset);
r17814r17815
243243
244244   if (m_vda)
245245   {
246      device_spin_until_time(m_cpu, m_screen->time_until_pos(256, 0));
246      m_cpu->spin_until_time(m_screen->time_until_pos(256, 0));
247247   }
248248
249249   writebyte(offset, data);
trunk/src/mess/video/a7800.c
r17814r17815
418418   if( state->m_maria_dli )
419419   {
420420      state->m_maria_dli = 0;
421      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, PULSE_LINE);
421      state->m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
422422   }
423423
424424}
r17814r17815
481481         m_maria_palette[0][3] = data;
482482         break;
483483      case 0x04:
484         device_spin_until_trigger(machine().device("maincpu"), TRIGGER_HSYNC);
484         machine().device("maincpu")->execute().spin_until_trigger(TRIGGER_HSYNC);
485485         m_maria_wsync=1;
486486         break;
487487
trunk/src/mess/video/vic6567.c
r17814r17815
377377      vic2->first_ba_cycle = vic2->cycles_counter;
378378      if (vic2->in_rdy_workaround_func(0) != 7 )
379379      {
380//          device_suspend(machine.firstcpu, SUSPEND_REASON_SPIN, 0);
380//          machine.firstcpu->suspend(SUSPEND_REASON_SPIN, 0);
381381      }
382382      vic2->device_suspended = 1;
383383   }
r17814r17815
388388{
389389   if (vic2->device_suspended == 1)
390390   {
391   //  device_resume(machine.firstcpu, SUSPEND_REASON_SPIN);
391   //  machine.firstcpu->resume(SUSPEND_REASON_SPIN);
392392      vic2->device_suspended = 0;
393393   }
394394}
r17814r17815
16071607
16081608   if ((cpu_cycles == vic_cycles) && (vic2->rdy_cycles > 0))
16091609   {
1610      device_spin_until_time (machine.firstcpu, vic2->cpu->cycles_to_attotime(vic2->rdy_cycles));
1610      machine.firstcpu->spin_until_time(vic2->cpu->cycles_to_attotime(vic2->rdy_cycles));
16111611      vic2->rdy_cycles = 0;
16121612   }
16131613
trunk/src/mess/video/mos6566.c
r17814r17815
330330      m_first_ba_cycle = m_cycles_counter;
331331      if (m_in_rdy_workaround_func(0) != 7 )
332332      {
333//          device_suspend(machine.firstcpu, SUSPEND_REASON_SPIN, 0);
333//          machine.firstcpu->suspend(SUSPEND_REASON_SPIN, 0);
334334      }
335335      m_device_suspended = 1;
336336   }
r17814r17815
341341{
342342   if (m_device_suspended == 1)
343343   {
344   //  device_resume(machine.firstcpu, SUSPEND_REASON_SPIN);
344   //  machine.firstcpu->resume(SUSPEND_REASON_SPIN);
345345      m_device_suspended = 0;
346346   }
347347}
r17814r17815
20252025
20262026      if ((cpu_cycles == vic_cycles) && (m_rdy_cycles > 0))
20272027      {
2028         device_spin_until_time (m_cpu, m_cpu->cycles_to_attotime(m_rdy_cycles));
2028         m_cpu->spin_until_time(m_cpu->cycles_to_attotime(m_rdy_cycles));
20292029         m_rdy_cycles = 0;
20302030      }
20312031
trunk/src/mess/drivers/rainbow.c
r17814r17815
194194{
195195    rainbow_state *state = machine.driver_data<rainbow_state>();
196196
197    device_set_input_line(state->m_z80, INPUT_LINE_HALT, ASSERT_LINE);
197    state->m_z80->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
198198
199199    state->m_zflip = true;
200200    state->m_z80_halted = true;
r17814r17815
274274READ8_MEMBER(rainbow_state::i8088_latch_r)
275275{
276276//    printf("Read %02x from 8088 mailbox\n", m_8088_mailbox);
277    device_set_input_line(m_i8088, INPUT_LINE_INT1, CLEAR_LINE);
277    m_i8088->execute().set_input_line(INPUT_LINE_INT1, CLEAR_LINE);
278278    return m_8088_mailbox;
279279}
280280
281281WRITE8_MEMBER(rainbow_state::i8088_latch_w)
282282{
283283//    printf("%02x to Z80 mailbox\n", data);
284    device_set_input_line_and_vector(m_z80, 0, ASSERT_LINE, 0xf7);
284    m_z80->execute().set_input_line_and_vector(0, ASSERT_LINE, 0xf7);
285285    m_z80_mailbox = data;
286286}
287287
288288READ8_MEMBER(rainbow_state::z80_latch_r)
289289{
290290//    printf("Read %02x from Z80 mailbox\n", m_z80_mailbox);
291    device_set_input_line(m_z80, 0, CLEAR_LINE);
291    m_z80->execute().set_input_line(0, CLEAR_LINE);
292292    return m_z80_mailbox;
293293}
294294
295295WRITE8_MEMBER(rainbow_state::z80_latch_w)
296296{
297297//    printf("%02x to 8088 mailbox\n", data);
298    device_set_input_line_and_vector(m_i8088, INPUT_LINE_INT1, ASSERT_LINE, 0x27);
298    m_i8088->execute().set_input_line_and_vector(INPUT_LINE_INT1, ASSERT_LINE, 0x27);
299299    m_8088_mailbox = data;
300300}
301301
r17814r17815
316316
317317static INTERRUPT_GEN( vblank_irq )
318318{
319    device_set_input_line_and_vector(device, INPUT_LINE_INT0, ASSERT_LINE, 0x20);
319    device->execute().set_input_line_and_vector(INPUT_LINE_INT0, ASSERT_LINE, 0x20);
320320}
321321
322322WRITE8_MEMBER( rainbow_state::clear_video_interrupt )
323323{
324    device_set_input_line(m_i8088, INPUT_LINE_INT0, CLEAR_LINE);
324    m_i8088->execute().set_input_line(INPUT_LINE_INT0, CLEAR_LINE);
325325}
326326
327327READ8_MEMBER( rainbow_state::diagnostic_r )
r17814r17815
335335
336336    if (!(data & 1))
337337    {
338        device_set_input_line(m_z80, INPUT_LINE_HALT, ASSERT_LINE);
338        m_z80->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
339339        m_z80_halted = true;
340340    }
341341
r17814r17815
343343    {
344344        m_zflip = true;
345345        m_z80_halted = false;
346        device_set_input_line(m_z80, INPUT_LINE_HALT, CLEAR_LINE);
346        m_z80->execute().set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
347347        m_z80->reset();
348348    }
349349
r17814r17815
354354{
355355    if ((m_kbd_rx_ready) || (m_kbd_tx_ready))
356356    {
357        device_set_input_line_and_vector(m_i8088, INPUT_LINE_INT2, ASSERT_LINE, 0x26);
357        m_i8088->execute().set_input_line_and_vector(INPUT_LINE_INT2, ASSERT_LINE, 0x26);
358358    }
359359    else
360360    {
361        device_set_input_line(m_i8088, INPUT_LINE_INT2, CLEAR_LINE);
361        m_i8088->execute().set_input_line(INPUT_LINE_INT2, CLEAR_LINE);
362362    }
363363}
364364
trunk/src/mess/drivers/pdp1.c
r17814r17815
16041604      if (state->m_parallel_drum.wc)
16051605         delay = delay + PARALLEL_DRUM_WORD_TIME;
16061606   } while (state->m_parallel_drum.wc);
1607   device_adjust_icount(device->machine().device("maincpu"),-device->machine().device<cpu_device>("maincpu")->attotime_to_cycles(delay));
1607   device->machine().device("maincpu")->execute().adjust_icount(-device->machine().device<cpu_device>("maincpu")->attotime_to_cycles(delay));
16081608   /* if no error, skip */
16091609   device->machine().device("maincpu")->state().set_state_int(PDP1_PC, device->machine().device("maincpu")->state().state_int(PDP1_PC)+1);
16101610}
trunk/src/mess/drivers/homelab.c
r17814r17815
7272{
7373   homelab_state *state = device->machine().driver_data<homelab_state>();
7474   if (state->m_nmi)
75      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
75      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
7676}
7777
7878READ8_MEMBER( homelab_state::key_r ) // offset 27F-2FE
7979{
8080   if (offset == 0x38) // 0x3838
8181   {
82      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
82      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
8383      return 0;
8484   }
8585
trunk/src/mess/drivers/pc100.c
r17814r17815
331331{
332332   pc100_state *state = machine.driver_data<pc100_state>();
333333
334   device_set_irq_callback(machine.device("maincpu"), pc100_irq_callback);
334   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc100_irq_callback);
335335   state->m_kanji_rom = (UINT16 *)(*machine.root_device().memregion("kanji"));
336336   state->m_vram = (UINT16 *)(*state->memregion("vram"));
337337}
trunk/src/mess/drivers/pc9801.c
r17814r17815
719719         printf("Read to undefined port [%02x]\n",offset+0x40);
720720      else
721721      {
722         //printf("Read to 8251 kbd port [%02x] %08x\n",offset+0x40,m_maincpu->safe_pc());
722         //printf("Read to 8251 kbd port [%02x] %08x\n",offset+0x40,m_maincpu->pc());
723723         if(offset == 1)
724724         {
725725            UINT8 res;
r17814r17815
25252525{
25262526   pc9801_state *state = machine.driver_data<pc9801_state>();
25272527
2528   device_set_irq_callback(machine.device("maincpu"), irq_callback);
2528   machine.device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
25292529
25302530   state->m_rtc->cs_w(1);
25312531   state->m_rtc->oe_w(1);
trunk/src/mess/drivers/nakajies.c
r17814r17815
419419
420420   if ( vector >= 0xf8 )
421421   {
422      device_set_input_line_and_vector( m_maincpu, 0, ASSERT_LINE, vector );
422      m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, vector );
423423   }
424424   else
425425   {
426      device_set_input_line( m_maincpu, 0, CLEAR_LINE );
426      m_maincpu->set_input_line(0, CLEAR_LINE );
427427   }
428428}
429429
trunk/src/mess/drivers/osbexec.c
r17814r17815
9898   void update_irq_state(running_machine &machine)
9999   {
100100      if ( m_pia0_irq_state || m_pia1_irq_state )
101         device_set_input_line( m_maincpu, 0, ASSERT_LINE );
101         m_maincpu->set_input_line(0, ASSERT_LINE );
102102      else
103         device_set_input_line( m_maincpu, 0, CLEAR_LINE );
103         m_maincpu->set_input_line(0, CLEAR_LINE );
104104   }
105105   DECLARE_WRITE8_MEMBER(osbexec_0000_w);
106106   DECLARE_READ8_MEMBER(osbexec_c000_r);
trunk/src/mess/drivers/z100.c
r17814r17815
750750{
751751   z100_state *state = machine.driver_data<z100_state>();
752752
753   device_set_irq_callback(machine.device("maincpu"), z100_irq_callback);
753   machine.device("maincpu")->execute().set_irq_acknowledge_callback(z100_irq_callback);
754754   state->m_mc6845 = machine.device<mc6845_device>("crtc");
755755}
756756
trunk/src/mess/drivers/multi16.c
r17814r17815
133133
134134static MACHINE_START(multi16)
135135{
136   device_set_irq_callback(machine.device("maincpu"), multi16_irq_callback);
136   machine.device("maincpu")->execute().set_irq_acknowledge_callback(multi16_irq_callback);
137137}
138138
139139
trunk/src/mess/drivers/adam.c
r17814r17815
11711171
11721172   // TODO: improve irq behaviour (see drivers/coleco.c)
11731173   if (coleco_scan_paddles(timer.machine(), &state->m_joy_status0, &state->m_joy_status1))
1174      device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE);
1174      state->m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
11751175}
11761176
11771177
r17814r17815
16061606
16071607         //logerror("Master 6801 read from %04x data %02x\n", m_ba, m_data_out);
16081608
1609         device_set_input_line(m_netcpu, M6801_SC1_LINE, ASSERT_LINE);
1610         device_set_input_line(m_netcpu, M6801_SC1_LINE, CLEAR_LINE);
1609         m_netcpu->set_input_line(M6801_SC1_LINE, ASSERT_LINE);
1610         m_netcpu->set_input_line(M6801_SC1_LINE, CLEAR_LINE);
16111611      }
16121612   }
16131613}
trunk/src/mess/drivers/pc88va.c
r17814r17815
15281528static MACHINE_START( pc88va )
15291529{
15301530   pc88va_state *state = machine.driver_data<pc88va_state>();
1531   device_set_irq_callback(machine.device("maincpu"), pc88va_irq_callback);
1531   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc88va_irq_callback);
15321532
15331533   state->m_t3_mouse_timer = machine.scheduler().timer_alloc(FUNC(t3_mouse_callback));
15341534   state->m_t3_mouse_timer->adjust(attotime::never);
r17814r17815
15581558   state->m_fdc_mode = 0;
15591559   state->m_fdc_irq_opcode = 0x00; //0x7f ld a,a !
15601560
1561   device_set_input_line_vector(machine.device("fdccpu"), 0, 0);
1561   machine.device("fdccpu")->execute().set_input_line_vector(0, 0);
15621562}
15631563
15641564static INTERRUPT_GEN( pc88va_vrtc_irq )
trunk/src/mess/drivers/pc6001.c
r17814r17815
18451845   state->m_cur_keycode = check_joy_press(device->machine());
18461846   if(IRQ_LOG) printf("Stick IRQ called 0x16\n");
18471847   state->m_irq_vector = 0x16;
1848   device_set_input_line(device, 0, ASSERT_LINE);
1848   device->execute().set_input_line(0, ASSERT_LINE);
18491849}
18501850
18511851static INTERRUPT_GEN( pc6001sr_interrupt )
r17814r17815
18561856   state->m_cur_keycode = check_joy_press(device->machine());
18571857   if(IRQ_LOG) printf("VRTC IRQ called 0x16\n");
18581858   state->m_irq_vector = (state->m_kludge) ? 0x22 : 0x16;
1859   device_set_input_line(device, 0, ASSERT_LINE);
1859   device->execute().set_input_line(0, ASSERT_LINE);
18601860}
18611861
18621862static IRQ_CALLBACK ( pc6001_irq_callback )
18631863{
18641864   pc6001_state *state = device->machine().driver_data<pc6001_state>();
1865   device_set_input_line(device, 0, CLEAR_LINE);
1865   device->execute().set_input_line(0, CLEAR_LINE);
18661866   return state->m_irq_vector;
18671867}
18681868
r17814r17815
21142114
21152115   state->m_port_c_8255=0;
21162116
2117   device_set_irq_callback(machine.device("maincpu"),pc6001_irq_callback);
2117   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc6001_irq_callback);
21182118   state->m_cas_switch = 0;
21192119   state->m_cas_offset = 0;
21202120   state->m_timer_irq_mask = 1;
r17814r17815
21322132
21332133   state->m_port_c_8255=0;
21342134
2135   device_set_irq_callback(machine.device("maincpu"),pc6001_irq_callback);
2135   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc6001_irq_callback);
21362136   state->m_cas_switch = 0;
21372137   state->m_cas_offset = 0;
21382138
r17814r17815
21682168
21692169   state->m_port_c_8255=0;
21702170
2171   device_set_irq_callback(machine.device("maincpu"),pc6001_irq_callback);
2171   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc6001_irq_callback);
21722172   state->m_cas_switch = 0;
21732173   state->m_cas_offset = 0;
21742174
trunk/src/mess/drivers/pc1512.c
r17814r17815
12031203void pc1512_state::machine_start()
12041204{
12051205   // register CPU IRQ callback
1206   device_set_irq_callback(m_maincpu, pc1512_irq_callback);
1206   m_maincpu->set_irq_acknowledge_callback(pc1512_irq_callback);
12071207
12081208   // set RAM size
12091209   size_t ram_size = m_ram->size();
r17814r17815
12861286void pc1640_state::machine_start()
12871287{
12881288   // register CPU IRQ callback
1289   device_set_irq_callback(m_maincpu, pc1512_irq_callback);
1289   m_maincpu->set_irq_acknowledge_callback(pc1512_irq_callback);
12901290
12911291   // state saving
12921292   save_item(NAME(m_pit1));
trunk/src/mess/drivers/apricotp.c
r17814r17815
557557void fp_state::machine_start()
558558{
559559   // register CPU IRQ callback
560   device_set_irq_callback(m_maincpu, fp_irq_callback);
560   m_maincpu->set_irq_acknowledge_callback(fp_irq_callback);
561561
562562   // allocate memory
563563   m_work_ram = auto_alloc_array(machine(), UINT16, m_ram->size() / 2);
trunk/src/mess/drivers/mk1.c
r17814r17815
166166
167167static void mk1_interrupt( device_t *device, UINT16 addr, int level )
168168{
169   device_set_input_line_vector(device->machine().device("maincpu"), F8_INPUT_LINE_INT_REQ, addr );
169   device->machine().device("maincpu")->execute().set_input_line_vector(F8_INPUT_LINE_INT_REQ, addr );
170170
171171   device->machine().device("maincpu")->execute().set_input_line(F8_INPUT_LINE_INT_REQ, level ? ASSERT_LINE : CLEAR_LINE );
172172}
trunk/src/mess/drivers/x1.c
r17814r17815
19421942   //address_space *space = field.machine().device("x1_cpu")->memory().space(AS_PROGRAM);
19431943   x1_state *state = field.machine().driver_data<x1_state>();
19441944
1945   device_set_input_line(state->m_x1_cpu, INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
1945   state->m_x1_cpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
19461946
19471947   state->m_ram_bank = 0x00;
19481948   if(state->m_is_turbo) { state->m_ex_bank = 0x10; }
r17814r17815
19541954{
19551955   x1_state *state = field.machine().driver_data<x1_state>();
19561956
1957   device_set_input_line(state->m_x1_cpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
1957   state->m_x1_cpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
19581958}
19591959
19601960INPUT_PORTS_START( x1 )
r17814r17815
23912391    {
23922392        state->m_ctc_irq_flag = 0;
23932393        if(state->m_key_irq_flag == 0)  // if no other devices are pulling the IRQ line high
2394            device_set_input_line(device, 0, CLEAR_LINE);
2394            device->execute().set_input_line(0, CLEAR_LINE);
23952395        return state->m_irq_vector;
23962396    }
23972397    if(state->m_key_irq_flag != 0)
23982398    {
23992399        state->m_key_irq_flag = 0;
24002400        if(state->m_ctc_irq_flag == 0)  // if no other devices are pulling the IRQ line high
2401            device_set_input_line(device, 0, CLEAR_LINE);
2401            device->execute().set_input_line(0, CLEAR_LINE);
24022402        return state->m_key_irq_vector;
24032403    }
24042404    return state->m_irq_vector;
r17814r17815
24832483
24842484   state->m_io_bank_mode = 0;
24852485
2486   //device_set_irq_callback(machine.device("x1_cpu"), x1_irq_callback);
2486   //machine.device("x1_cpu")->execute().set_irq_acknowledge_callback(x1_irq_callback);
24872487
24882488   state->m_cmt_current_cmd = 0;
24892489   state->m_cmt_test = 0;
trunk/src/mess/drivers/xor100.c
r17814r17815
191191   if (!m_fdc_irq && !m_fdc_drq)
192192   {
193193      /* TODO: this is really connected to the Z80 _RDY line */
194      device_set_input_line(m_maincpu, INPUT_LINE_HALT, ASSERT_LINE);
194      m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
195195   }
196196
197197   return !m_fdc_irq << 7;
r17814r17815
493493   if (state)
494494   {
495495      /* TODO: this is really connected to the Z80 _RDY line */
496      device_set_input_line(m_maincpu, INPUT_LINE_HALT, CLEAR_LINE);
496      m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
497497   }
498498}
499499
r17814r17815
504504   if (state)
505505   {
506506      /* TODO: this is really connected to the Z80 _RDY line */
507      device_set_input_line(m_maincpu, INPUT_LINE_HALT, CLEAR_LINE);
507      m_maincpu->set_input_line(INPUT_LINE_HALT, CLEAR_LINE);
508508   }
509509}
510510
trunk/src/mess/drivers/d6800.c
r17814r17815
183183{
184184   d6800_state *state = timer.machine().driver_data<d6800_state>();
185185   state->m_rtc++;
186   device_set_input_line(state->m_maincpu, M6800_IRQ_LINE, (state->m_rtc > 0xf8) ? ASSERT_LINE : CLEAR_LINE);
186   state->m_maincpu->set_input_line(M6800_IRQ_LINE, (state->m_rtc > 0xf8) ? ASSERT_LINE : CLEAR_LINE);
187187}
188188
189189
trunk/src/mess/drivers/smc777.c
r17814r17815
10491049   smc777_state *state = device->machine().driver_data<smc777_state>();
10501050
10511051   if(state->m_irq_mask)
1052      device_set_input_line(device,0,HOLD_LINE);
1052      device->execute().set_input_line(0,HOLD_LINE);
10531053}
10541054
10551055
trunk/src/mess/drivers/m20.c
r17814r17815
6161      m_wd177x(*this, "fd1797"),
6262      m_p_videoram(*this, "p_videoram"){ }
6363
64    required_device<device_t> m_maincpu;
64    required_device<z8001_device> m_maincpu;
6565    required_device<i8251_device> m_kbdi8251;
6666    required_device<i8251_device> m_ttyi8251;
6767    required_device<i8255_device> m_i8255;
r17814r17815
243243    if (state)
244244    {
245245      //printf ("PIC raised VI\n");
246      device_set_input_line(m_maincpu, 1, ASSERT_LINE);
246      m_maincpu->set_input_line(1, ASSERT_LINE);
247247    }
248248    else
249249    {
250250      //printf ("PIC lowered VI\n");
251      device_set_input_line(m_maincpu, 1, CLEAR_LINE);
251      m_maincpu->set_input_line(1, CLEAR_LINE);
252252    }
253253}
254254
r17814r17815
274274     * 8253 is programmed in square wave mode, not rate
275275     * generator mode.
276276     */
277   device_set_input_line(m_maincpu, 0, state ? HOLD_LINE /*ASSERT_LINE*/ : CLEAR_LINE);
277   m_maincpu->set_input_line(0, state ? HOLD_LINE /*ASSERT_LINE*/ : CLEAR_LINE);
278278}
279279
280280/* from the M20 hardware reference manual:
r17814r17815
376376   m_port21 = 0xff;
377377   m_port21_sd = 1;
378378
379   device_set_irq_callback(m_maincpu, m20_irq_callback);
379   m_maincpu->set_irq_acknowledge_callback(m20_irq_callback);
380380
381381   wd17xx_mr_w(m_wd177x, 0);
382382   //wd17xx_mr_w(m_wd177x, 1);
trunk/src/mess/drivers/spectrum.c
r17814r17815
663663
664664static INTERRUPT_GEN( spec_interrupt )
665665{
666   device_set_input_line(device, 0, HOLD_LINE);
666   device->execute().set_input_line(0, HOLD_LINE);
667667}
668668
669669static const cassette_interface spectrum_cassette_interface =
trunk/src/mess/drivers/cat.c
r17814r17815
312312static MACHINE_RESET(cat)
313313{
314314   cat_state *state = machine.driver_data<cat_state>();
315   device_set_irq_callback(machine.device("maincpu"), cat_int_ack);
315   machine.device("maincpu")->execute().set_irq_acknowledge_callback(cat_int_ack);
316316   state->m_keyboard_timer->adjust(attotime::zero, 0, attotime::from_hz(120));
317317}
318318
trunk/src/mess/drivers/atarist.c
r17814r17815
22052205   configure_memory();
22062206
22072207   // set CPU interrupt callback
2208   device_set_irq_callback(m_maincpu, atarist_int_ack);
2208   m_maincpu->set_irq_acknowledge_callback(atarist_int_ack);
22092209
22102210   // allocate timers
22112211   m_mouse_timer = machine().scheduler().timer_alloc(FUNC(st_mouse_tick));
r17814r17815
22622262   configure_memory();
22632263
22642264   /* set CPU interrupt callback */
2265   device_set_irq_callback(m_maincpu, atarist_int_ack);
2265   m_maincpu->set_irq_acknowledge_callback(atarist_int_ack);
22662266
22672267   /* allocate timers */
22682268   m_dmasound_timer = machine().scheduler().timer_alloc(FUNC(atariste_dmasound_tick));
r17814r17815
23022302   }
23032303
23042304   /* set CPU interrupt callback */
2305   device_set_irq_callback(m_maincpu, atarist_int_ack);
2305   m_maincpu->set_irq_acknowledge_callback(atarist_int_ack);
23062306
23072307   /* register for state saving */
23082308   ste_state::state_save();
trunk/src/mess/drivers/h89.c
r17814r17815
101101   h89_state *state = timer.machine().driver_data<h89_state>();
102102
103103   if (state->m_port_f2 & 0x02)
104      device_set_input_line_and_vector(state->m_maincpu, 0, HOLD_LINE, 0xcf);
104      state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xcf);
105105}
106106
107107WRITE8_MEMBER( h89_state::port_f2_w )
trunk/src/mess/drivers/mikromik.c
r17814r17815
491491
492492WRITE_LINE_MEMBER( mm1_state::dma_hrq_changed )
493493{
494   device_set_input_line(m_maincpu, INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
494   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
495495
496496   // Assert HLDA
497497   m_dmac->hack_w(state);
trunk/src/mess/drivers/pcw.c
r17814r17815
10871087
10881088DRIVER_INIT_MEMBER(pcw_state,pcw)
10891089{
1090   device_set_input_line_vector(machine().device("maincpu"), 0, 0x0ff);
1090   machine().device("maincpu")->execute().set_input_line_vector(0, 0x0ff);
10911091
10921092   /* lower 4 bits are interrupt counter */
10931093   m_system_status = 0x000;
trunk/src/mess/drivers/rex6000.c
r17814r17815
141141   }
142142   else
143143   {
144      //logerror("%04x: unkonwn memory bank %x\n", m_maincpu->safe_pc(), bank);
144      //logerror("%04x: unkonwn memory bank %x\n", m_maincpu->pc(), bank);
145145      return BANK_UNKNOWN;
146146   }
147147}
r17814r17815
413413   {
414414      state->m_irq_flag |= IRQ_FLAG_KEYCHANGE;
415415
416      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
416      state->m_maincpu->set_input_line(0, HOLD_LINE);
417417   }
418418}
419419
r17814r17815
519519   {
520520      state->m_irq_flag |= IRQ_FLAG_IRQ2;
521521
522      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
522      state->m_maincpu->set_input_line(0, HOLD_LINE);
523523   }
524524
525525}
r17814r17815
532532   {
533533      state->m_irq_flag |= IRQ_FLAG_IRQ1;
534534
535      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
535      state->m_maincpu->set_input_line(0, HOLD_LINE);
536536   }
537537}
538538
r17814r17815
544544   {
545545      state->m_irq_flag |= IRQ_FLAG_1HZ;
546546
547      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
547      state->m_maincpu->set_input_line(0, HOLD_LINE);
548548   }
549549}
550550
r17814r17815
553553   if (!(m_irq_mask & IRQ_FLAG_ALARM) && state)
554554   {
555555      m_irq_flag |= IRQ_FLAG_ALARM;
556      device_set_input_line(m_maincpu, 0, HOLD_LINE);
556      m_maincpu->set_input_line(0, HOLD_LINE);
557557   }
558558}
559559
trunk/src/mess/drivers/mirage.c
r17814r17815
8383    m_fdc(*this, "wd1772")
8484    { }
8585
86    required_device<device_t> m_maincpu;
86    required_device<m6809e_device> m_maincpu;
8787    required_device<wd1772_t> m_fdc;
8888
8989   virtual void machine_reset();
r17814r17815
107107
108108void mirage_state::fdc_intrq_w(bool state)
109109{
110    device_set_input_line(m_maincpu, INPUT_LINE_NMI, state);
110    m_maincpu->set_input_line(INPUT_LINE_NMI, state);
111111}
112112
113113static void mirage_doc_irq(device_t *device, int state)
trunk/src/mess/drivers/v1050.c
r17814r17815
343343
344344WRITE8_MEMBER( v1050_state::dvint_clr_w )
345345{
346   device_set_input_line(m_subcpu, INPUT_LINE_IRQ0, CLEAR_LINE);
346   m_subcpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
347347}
348348
349349READ8_MEMBER( v1050_state::sasi_status_r )
r17814r17815
604604{
605605   if (state == ASSERT_LINE)
606606   {
607      device_set_input_line(device, INPUT_LINE_IRQ0, ASSERT_LINE);
607      device->execute().set_input_line(INPUT_LINE_IRQ0, ASSERT_LINE);
608608   }
609609}
610610
r17814r17815
756756   if (!m_f_int_enb)
757757   {
758758      set_interrupt(INT_FLOPPY, 0);
759      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
759      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
760760   }
761761
762762   // baud select
r17814r17815
948948{
949949   if (m_f_int_enb)
950950   {
951      device_set_input_line(m_maincpu, INPUT_LINE_NMI, state);
951      m_maincpu->set_input_line(INPUT_LINE_NMI, state);
952952   }
953953   else
954954   {
955      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
955      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
956956   }
957957}
958958
r17814r17815
10131013
10141014   //logerror("Interrupt Acknowledge Vector: %02x\n", vector);
10151015
1016   device_set_input_line(state->m_maincpu, INPUT_LINE_IRQ0, CLEAR_LINE);
1016   state->m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
10171017
10181018   return vector;
10191019}
r17814r17815
10331033   m_rtc->cs1_w(1);
10341034
10351035   // set CPU interrupt callback
1036   device_set_irq_callback(m_maincpu, v1050_int_ack);
1036   m_maincpu->set_irq_acknowledge_callback(v1050_int_ack);
10371037
10381038   // setup memory banking
10391039   UINT8 *ram = machine().device<ram_device>(RAM_TAG)->pointer();
trunk/src/mess/drivers/ql.c
r17814r17815
163163   {
164164      switch (ipl)
165165      {
166      case 0:   device_set_input_line(m_maincpu, M68K_IRQ_7, ASSERT_LINE);   break;
167      case 1:   device_set_input_line(m_maincpu, M68K_IRQ_5, ASSERT_LINE);   break; // CTRL-ALT-7 pressed
168      case 2:   device_set_input_line(m_maincpu, M68K_IRQ_2, ASSERT_LINE);   break;
169      case 3:   device_set_input_line(m_maincpu, M68K_IRQ_7, CLEAR_LINE);   break;
166      case 0:   m_maincpu->set_input_line(M68K_IRQ_7, ASSERT_LINE);   break;
167      case 1:   m_maincpu->set_input_line(M68K_IRQ_5, ASSERT_LINE);   break; // CTRL-ALT-7 pressed
168      case 2:   m_maincpu->set_input_line(M68K_IRQ_2, ASSERT_LINE);   break;
169      case 3:   m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE);   break;
170170      }
171171
172172      m_ipl = ipl;
r17814r17815
208208
209209//  int irq = (m_ser2_rxd | m_ser1_txd);
210210
211//  device_set_input_line(m_ipc, INPUT_LINE_IRQ0, irq);
211//  m_ipc->execute().set_input_line(INPUT_LINE_IRQ0, irq);
212212
213213   return (m_comdata << 7);
214214}
trunk/src/mess/drivers/qx10.c
r17814r17815
899899
900900void qx10_state::machine_start()
901901{
902   device_set_irq_callback(machine().device("maincpu"), irq_callback);
902   machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
903903}
904904
905905void qx10_state::machine_reset()
trunk/src/mess/drivers/tvc.c
r17814r17815
193193{
194194   // every write here clears the vblank flipflop
195195   m_int_flipflop = 1;
196   device_set_input_line(m_maincpu, 0, CLEAR_LINE);
196   m_maincpu->set_input_line(0, CLEAR_LINE);
197197}
198198
199199READ8_MEMBER(tvc_state::tvc_exp_id_r)
r17814r17815
605605   if (state)
606606   {
607607      m_int_flipflop = 0;
608      device_set_input_line(m_maincpu, 0, ASSERT_LINE);
608      m_maincpu->set_input_line(0, ASSERT_LINE);
609609   }
610610}
611611
trunk/src/mess/drivers/mz2500.c
r17814r17815
18231823{
18241824   mz2500_state *state = device->machine().driver_data<mz2500_state>();
18251825   if(state->m_irq_mask[0])
1826      device_set_input_line_and_vector(device, 0, HOLD_LINE, state->m_irq_vector[0]);
1826      device->execute().set_input_line_and_vector(0, HOLD_LINE, state->m_irq_vector[0]);
18271827
18281828   state->m_cg_clear_flag = 0;
18291829}
trunk/src/mess/drivers/fmtowns.c
r17814r17815
374374
375375void towns_state::wait_end()
376376{
377   device_set_input_line(m_maincpu,INPUT_LINE_HALT,CLEAR_LINE);
377   m_maincpu->set_input_line(INPUT_LINE_HALT,CLEAR_LINE);
378378}
379379
380380READ8_MEMBER(towns_state::towns_sys6c_r)
r17814r17815
386386WRITE8_MEMBER(towns_state::towns_sys6c_w)
387387{
388388   // halts the CPU for 1 microsecond
389   device_set_input_line(m_maincpu,INPUT_LINE_HALT,ASSERT_LINE);
389   m_maincpu->set_input_line(INPUT_LINE_HALT,ASSERT_LINE);
390390   m_towns_wait_timer->adjust(attotime::from_usec(1),0,attotime::never);
391391}
392392
r17814r17815
24582458   // CD-ROM init
24592459   m_towns_cd.read_timer = machine().scheduler().timer_alloc(FUNC(towns_cdrom_read_byte), (void*)machine().device("dma_1"));
24602460
2461   device_set_irq_callback(machine().device("maincpu"), towns_irq_callback);
2461   machine().device("maincpu")->execute().set_irq_acknowledge_callback(towns_irq_callback);
24622462   machine().device("maincpu")->memory().space(AS_PROGRAM)->install_ram(0x100000,machine().device<ram_device>(RAM_TAG)->size()-1,0xffffffff,0,NULL);
24632463
24642464}
r17814r17815
24742474{
24752475   address_space *program;
24762476
2477   m_maincpu = machine().device("maincpu");
2478   program = m_maincpu->memory().space(AS_PROGRAM);
2477   m_maincpu = machine().device<cpu_device>("maincpu");
2478   program = m_maincpu->space(AS_PROGRAM);
24792479   m_dma_1 = machine().device("dma_1");
24802480   m_dma_2 = machine().device("dma_2");
24812481   m_fdc = machine().device("fdc");
trunk/src/mess/drivers/wangpc.c
r17814r17815
11651165void wangpc_state::machine_start()
11661166{
11671167   // register CPU IRQ callback
1168   device_set_irq_callback(m_maincpu, wangpc_irq_callback);
1168   m_maincpu->set_irq_acknowledge_callback(wangpc_irq_callback);
11691169
11701170   // connect serial keyboard
11711171   m_uart->connect(m_kb);
trunk/src/mess/drivers/vboy.c
r17814r17815
616616            */
617617            if (!(data & 0x08))
618618            {
619                device_set_input_line(m_maincpu, 1, CLEAR_LINE);
619                m_maincpu->set_input_line(1, CLEAR_LINE);
620620            }
621621
622622            if (data & 1)
r17814r17815
12011201        m_vboy_regs.tcr |= 0x02;
12021202        if(m_vboy_regs.tcr & 8)
12031203        {
1204            device_set_input_line(m_maincpu, 1, ASSERT_LINE);
1204            m_maincpu->set_input_line(1, ASSERT_LINE);
12051205        }
12061206    }
12071207
r17814r17815
12271227   vboy_state *state = timer.machine().driver_data<vboy_state>();
12281228
12291229   if((state->m_vboy_regs.kcr & 0x80) == 0)
1230      device_set_input_line(state->m_maincpu, 0, HOLD_LINE);
1230      state->m_maincpu->set_input_line(0, HOLD_LINE);
12311231}
12321232
12331233static PALETTE_INIT( vboy )
r17814r17815
12431243   m_vip_regs.INTPND |= irq_vector;
12441244
12451245   if(m_vip_regs.INTENB & m_vip_regs.INTPND)
1246      device_set_input_line(m_maincpu, 4, ASSERT_LINE);
1246      m_maincpu->set_input_line(4, ASSERT_LINE);
12471247
12481248   if((m_vip_regs.INTENB & m_vip_regs.INTPND) == 0)
1249      device_set_input_line(m_maincpu, 4, CLEAR_LINE);
1249      m_maincpu->set_input_line(4, CLEAR_LINE);
12501250}
12511251
12521252/* TODO: obviously all of this needs clean-ups and better implementation ... */
trunk/src/mess/drivers/ti99_2.c
r17814r17815
131131static INTERRUPT_GEN( ti99_2_vblank_interrupt )
132132{
133133   ti99_2_state *state = device->machine().driver_data<ti99_2_state>();
134   device_set_input_line(device, 1, state->m_irq_state);
134   device->execute().set_input_line(1, state->m_irq_state);
135135   state->m_irq_state = (state->m_irq_state == ASSERT_LINE) ? CLEAR_LINE : ASSERT_LINE;
136136}
137137
trunk/src/mess/drivers/fk1.c
r17814r17815
434434   membank("bank3")->set_base(ram + 0x8000);
435435   membank("bank4")->set_base(ram + 0xc000);
436436
437   device_set_irq_callback(machine().device("maincpu"), fk1_irq_callback);
437   machine().device("maincpu")->execute().set_irq_acknowledge_callback(fk1_irq_callback);
438438}
439439
440440SCREEN_UPDATE16_MEMBER( fk1_state )
trunk/src/mess/drivers/ng_aes.c
r17814r17815
248248static void audio_cpu_irq(device_t *device, int assert)
249249{
250250   neogeo_state *state = device->machine().driver_data<neogeo_state>();
251   device_set_input_line(state->m_audiocpu, 0, assert ? ASSERT_LINE : CLEAR_LINE);
251   state->m_audiocpu->set_input_line(0, assert ? ASSERT_LINE : CLEAR_LINE);
252252}
253253
254254
255255static void audio_cpu_assert_nmi(running_machine &machine)
256256{
257257   neogeo_state *state = machine.driver_data<neogeo_state>();
258   device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, ASSERT_LINE);
258   state->m_audiocpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
259259}
260260
261261
262262WRITE8_MEMBER(ng_aes_state::audio_cpu_clear_nmi_w)
263263{
264   device_set_input_line(m_audiocpu, INPUT_LINE_NMI, CLEAR_LINE);
264   m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
265265}
266266
267267
r17814r17815
11661166   state->m_irq3_pending = 1;
11671167
11681168   /* get devices */
1169   state->m_maincpu = machine.device("maincpu");
1170   state->m_audiocpu = machine.device("audiocpu");
1169   state->m_maincpu = machine.device<cpu_device>("maincpu");
1170   state->m_audiocpu = machine.device<cpu_device>("audiocpu");
11711171   state->m_upd4990a = machine.device("upd4990a");
11721172
11731173   /* register state save */
trunk/src/mess/drivers/kyocera.c
r17814r17815
12911291{
12921292   tandy200_state *state = timer.machine().driver_data<tandy200_state>();
12931293
1294   device_set_input_line(state->m_maincpu, I8085_RST75_LINE, state->m_tp);
1294   state->m_maincpu->set_input_line(I8085_RST75_LINE, state->m_tp);
12951295
12961296   state->m_tp = !state->m_tp;
12971297}
trunk/src/mess/drivers/bml3.c
r17814r17815
381381   if(m_firq_mask)
382382   {
383383      m_firq_status = 0; // clear pending firq
384      device_set_input_line(m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE);
384      m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
385385   }
386386}
387387
r17814r17815
389389{
390390   UINT8 res = m_firq_status << 7;
391391   m_firq_status = 0;
392   device_set_input_line(m_maincpu, M6809_FIRQ_LINE, CLEAR_LINE);
392   m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE);
393393   return res;
394394}
395395
r17814r17815
610610
611611   if(!state->m_firq_mask)
612612   {
613      device_set_input_line(state->m_maincpu, M6809_FIRQ_LINE, ASSERT_LINE);
613      state->m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE);
614614      state->m_firq_status = 1;
615615   }
616616}
trunk/src/mess/drivers/samcoupe.c
r17814r17815
342342   samcoupe_state *state = device->machine().driver_data<samcoupe_state>();
343343
344344   /* assert irq and a timer to set it off again */
345   device_set_input_line(device, 0, ASSERT_LINE);
345   device->execute().set_input_line(0, ASSERT_LINE);
346346   device->machine().scheduler().timer_set(attotime::from_usec(20), FUNC(irq_off), src);
347347
348348   /* adjust STATUS register */
trunk/src/mess/drivers/pockstat.c
r17814r17815
337337   }
338338   if(drvstate->m_intc_regs.hold & drvstate->m_intc_regs.enable & PS_INT_IRQ_MASK)
339339   {
340      device_set_input_line(machine.device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
340      machine.device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
341341   }
342342   else
343343   {
344      device_set_input_line(machine.device("maincpu"), ARM7_IRQ_LINE, CLEAR_LINE);
344      machine.device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, CLEAR_LINE);
345345   }
346346   if(drvstate->m_intc_regs.hold & drvstate->m_intc_regs.enable & PS_INT_FIQ_MASK)
347347   {
348      device_set_input_line(machine.device("maincpu"), ARM7_FIRQ_LINE, ASSERT_LINE);
348      machine.device("maincpu")->execute().set_input_line(ARM7_FIRQ_LINE, ASSERT_LINE);
349349   }
350350   else
351351   {
352      device_set_input_line(machine.device("maincpu"), ARM7_FIRQ_LINE, CLEAR_LINE);
352      machine.device("maincpu")->execute().set_input_line(ARM7_FIRQ_LINE, CLEAR_LINE);
353353   }
354354}
355355
trunk/src/mess/drivers/homez80.c
r17814r17815
277277static INTERRUPT_GEN( homez80_interrupt )
278278{
279279   homez80_state *state = device->machine().driver_data<homez80_state>();
280   device_set_input_line(device, 0, (state->m_irq) ? HOLD_LINE : CLEAR_LINE);
280   device->execute().set_input_line(0, (state->m_irq) ? HOLD_LINE : CLEAR_LINE);
281281   state->m_irq ^= 1;
282282}
283283
trunk/src/mess/drivers/abc1600.c
r17814r17815
18491849void abc1600_state::machine_start()
18501850{
18511851   // interrupt callback
1852   device_set_irq_callback(m_maincpu, abc1600_int_ack);
1852   m_maincpu->set_irq_acknowledge_callback(abc1600_int_ack);
18531853
18541854   // HACK fill segment RAM with non-zero values or no boot
18551855   memset(m_segment_ram, 0xcd, 0x400);
trunk/src/mess/drivers/mod8.c
r17814r17815
8888
8989static MACHINE_RESET(mod8)
9090{
91   device_set_irq_callback(machine.device("maincpu"), mod8_irq_callback);
91   machine.device("maincpu")->execute().set_irq_acknowledge_callback(mod8_irq_callback);
9292}
9393
9494WRITE8_MEMBER( mod8_state::kbd_put )
trunk/src/mess/drivers/tandy2k.c
r17814r17815
121121   upd765_reset_w(m_fdc, BIT(data, 5));
122122
123123   // timer 0 enable
124   device_set_input_line(m_maincpu, INPUT_LINE_TMRIN0, BIT(data, 6));
124   m_maincpu->set_input_line(INPUT_LINE_TMRIN0, BIT(data, 6));
125125
126126   // timer 1 enable
127   device_set_input_line(m_maincpu, INPUT_LINE_TMRIN1, BIT(data, 7));
127   m_maincpu->set_input_line(INPUT_LINE_TMRIN1, BIT(data, 7));
128128}
129129
130130WRITE8_MEMBER( tandy2k_state::dma_mux_w )
trunk/src/mess/drivers/x07.c
r17814r17815
579579      m_regs_r[0]  = 0x40;
580580      m_regs_r[1] = m_out.data[m_out.read];
581581      m_regs_r[2] |= 0x01;
582      device_set_input_line(m_maincpu, NSC800_RSTA, ASSERT_LINE);
582      m_maincpu->set_input_line(NSC800_RSTA, ASSERT_LINE);
583583      m_rsta_clear->adjust(attotime::from_msec(50));
584584   }
585585}
r17814r17815
648648            m_regs_r[0]  = 0x40;
649649            m_regs_r[1] = m_out.data[m_out.read];
650650            m_regs_r[2] |= 0x01;
651            device_set_input_line(m_maincpu, NSC800_RSTA, ASSERT_LINE);
651            m_maincpu->set_input_line(NSC800_RSTA, ASSERT_LINE);
652652            m_rsta_clear->adjust(attotime::from_msec(50));
653653         }
654654      }
r17814r17815
805805      m_cass_data = 0;
806806      m_bit_count = 0;
807807
808      device_set_input_line(m_maincpu, NSC800_RSTB, ASSERT_LINE);
808      m_maincpu->set_input_line(NSC800_RSTB, ASSERT_LINE);
809809      m_rstb_clear->adjust(attotime::from_usec(200));
810810
811811   }
r17814r17815
982982         m_regs_r[0] = 0x80;
983983         m_regs_r[1] = 0x05;
984984         m_regs_r[2] |= 0x01;
985         device_set_input_line(m_maincpu, NSC800_RSTA, ASSERT_LINE );
985         m_maincpu->set_input_line(NSC800_RSTA, ASSERT_LINE );
986986         m_rsta_clear->adjust(attotime::from_msec(50));
987987      }
988988   }
r17814r17815
998998      memcpy(m_t6834_ram + 0x400, m_t6834_ram + 0x401, 0xff);
999999      m_kb_size--;
10001000      m_regs_r[2] |= 0x01;
1001      device_set_input_line(m_maincpu, NSC800_RSTA, ASSERT_LINE);
1001      m_maincpu->set_input_line(NSC800_RSTA, ASSERT_LINE);
10021002      m_rsta_clear->adjust(attotime::from_msec(50));
10031003   }
10041004}
r17814r17815
13701370static TIMER_CALLBACK( rsta_clear )
13711371{
13721372   x07_state *state = machine.driver_data<x07_state>();
1373   device_set_input_line(state->m_maincpu, NSC800_RSTA, CLEAR_LINE);
1373   state->m_maincpu->set_input_line(NSC800_RSTA, CLEAR_LINE);
13741374
13751375   if (state->m_kb_size)
13761376      state->kb_irq();
r17814r17815
13791379static TIMER_CALLBACK( rstb_clear )
13801380{
13811381   x07_state *state = machine.driver_data<x07_state>();
1382   device_set_input_line(state->m_maincpu, NSC800_RSTB, CLEAR_LINE);
1382   state->m_maincpu->set_input_line(NSC800_RSTB, CLEAR_LINE);
13831383}
13841384
13851385static TIMER_CALLBACK( beep_stop )
trunk/src/mess/drivers/sm1800.c
r17814r17815
7474
7575MACHINE_RESET_MEMBER(sm1800_state)
7676{
77   device_set_irq_callback(m_maincpu, sm1800_irq_callback);
77   m_maincpu->set_irq_acknowledge_callback(sm1800_irq_callback);
7878}
7979
8080void sm1800_state::video_start()
trunk/src/mess/drivers/fm7.c
r17814r17815
18381838   m_subtimer = machine().scheduler().timer_alloc(FUNC(fm7_subtimer_irq));
18391839   m_keyboard_timer = machine().scheduler().timer_alloc(FUNC(fm7_keyboard_poll));
18401840   m_fm77av_vsync_timer = machine().scheduler().timer_alloc(FUNC(fm77av_vsync));
1841   device_set_irq_callback(machine().device("maincpu"),fm7_irq_ack);
1842   device_set_irq_callback(machine().device("sub"),fm7_sub_irq_ack);
1841   machine().device("maincpu")->execute().set_irq_acknowledge_callback(fm7_irq_ack);
1842   machine().device("sub")->execute().set_irq_acknowledge_callback(fm7_sub_irq_ack);
18431843}
18441844
18451845static MACHINE_START(fm7)
trunk/src/mess/drivers/vidbrain.c
r17814r17815
530530void vidbrain_state::machine_start()
531531{
532532   // register IRQ callback
533   device_set_irq_callback(m_maincpu, vidbrain_int_ack);
533   m_maincpu->set_irq_acknowledge_callback(vidbrain_int_ack);
534534
535535   // allocate timers
536536   m_timer_ne555 = timer_alloc(TIMER_JOYSTICK);
trunk/src/mess/drivers/apple2gs.c
r17814r17815
198198{
199199    apple2gs_state *a2 = device->machine().driver_data<apple2gs_state>();
200200
201    device_set_input_line(a2->m_maincpu, INPUT_LINE_NMI, data);
201    a2->m_maincpu->set_input_line(INPUT_LINE_NMI, data);
202202}
203203
204204static WRITE8_DEVICE_HANDLER(a2bus_inh_w)
trunk/src/mess/drivers/trs80m2.c
r17814r17815
956956   trs80m2_state::machine_start();
957957
958958   // register CPU IRQ callback
959   device_set_irq_callback(m_maincpu, trs80m16_irq_callback);
959   m_maincpu->set_irq_acknowledge_callback(trs80m16_irq_callback);
960960
961961   // register for state saving
962962   save_item(NAME(m_ual));
trunk/src/mess/drivers/m5.c
r17814r17815
521521
522522   if (data == 0xf0)
523523   {
524      device_set_input_line(m_fd5cpu, INPUT_LINE_RESET, ASSERT_LINE);
525      device_set_input_line(m_fd5cpu, INPUT_LINE_RESET, CLEAR_LINE);
524      m_fd5cpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
525      m_fd5cpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
526526   }
527527}
528528
trunk/src/mess/drivers/pv1000.c
r17814r17815
349349   int next_vpos = vpos + 12;
350350
351351   /* Set IRQ line and schedule release of IRQ line */
352   device_set_input_line( state->m_maincpu, 0, ASSERT_LINE );
352   state->m_maincpu->set_input_line(0, ASSERT_LINE );
353353   state->m_irq_off_timer->adjust( state->m_screen->time_until_pos(vpos, 380/2 ) );
354354
355355   /* Schedule next IRQ trigger */
r17814r17815
365365{
366366   pv1000_state *state = machine.driver_data<pv1000_state>();
367367
368   device_set_input_line( state->m_maincpu, 0, CLEAR_LINE );
368   state->m_maincpu->set_input_line(0, CLEAR_LINE );
369369}
370370
371371
trunk/src/mess/drivers/mac.c
r17814r17815
182182{
183183   if (offset == 2)
184184   {
185//        printf("Sonora: read monitor ID at PC=%x\n", m_maincpu->safe_pc());
185//        printf("Sonora: read monitor ID at PC=%x\n", m_maincpu->pc());
186186      return (6 << 4);   // 640x480 RGB monitor
187187   }
188188
r17814r17815
256256      switch (offset)
257257      {
258258         case 13:   // IFR
259//              printf("Read IER = %02x (PC=%x) 2=%02x\n", m_rbv_ier, m_maincpu->safe_pc(), m_rbv_regs[2]);
259//              printf("Read IER = %02x (PC=%x) 2=%02x\n", m_rbv_ier, m_maincpu->pc(), m_rbv_regs[2]);
260260            data = m_rbv_ifr;
261261            break;
262262
263263         case 14:   // IER
264//              printf("Read IFR = %02x (PC=%x) 2=%02x\n", m_rbv_ifr, m_maincpu->safe_pc(), m_rbv_regs[2]);
264//              printf("Read IFR = %02x (PC=%x) 2=%02x\n", m_rbv_ifr, m_maincpu->pc(), m_rbv_regs[2]);
265265            data = m_rbv_ier;
266266            break;
267267
r17814r17815
271271      }
272272   }
273273
274//  printf("rbv_r: %x = %02x (PC=%x)\n", offset, data, m_maincpu->safe_pc());
274//  printf("rbv_r: %x = %02x (PC=%x)\n", offset, data, m_maincpu->pc());
275275
276276   return data;
277277}
r17814r17815
281281   if (offset < 0x100)
282282   {
283283//      if (offset == 0x10)
284//      printf("rbv_w: %02x to offset %x (PC=%x)\n", data, offset, m_maincpu->safe_pc());
284//      printf("rbv_w: %02x to offset %x (PC=%x)\n", data, offset, m_maincpu->pc());
285285      switch (offset)
286286      {
287287         case 0x00:
r17814r17815
364364      switch (offset)
365365      {
366366         case 13:   // IFR
367//              printf("%02x to IFR (PC=%x)\n", data, m_maincpu->safe_pc());
367//              printf("%02x to IFR (PC=%x)\n", data, m_maincpu->pc());
368368            if (data & 0x80)
369369            {
370370               data = 0x7f;
r17814r17815
373373            break;
374374
375375         case 14:   // IER
376//              printf("%02x to IER (PC=%x)\n", data, m_maincpu->safe_pc());
376//              printf("%02x to IER (PC=%x)\n", data, m_maincpu->pc());
377377            if (data & 0x80)   // 1 bits write 1s
378378            {
379379               m_rbv_ier |= data & 0x7f;
r17814r17815
440440
441441READ8_MEMBER(mac_state::scciop_r)
442442{
443//  printf("scciop_r @ %x (PC=%x)\n", offset, m_maincpu->safe_pc());
443//  printf("scciop_r @ %x (PC=%x)\n", offset, m_maincpu->pc());
444444   return 0;
445445}
446446
447447WRITE8_MEMBER(mac_state::scciop_w)
448448{
449//  printf("scciop_w %x @ %x (PC=%x)\n", data, offset, m_maincpu->safe_pc());
449//  printf("scciop_w %x @ %x (PC=%x)\n", data, offset, m_maincpu->pc());
450450}
451451
452452READ8_MEMBER(mac_state::swimiop_r)
453453{
454//  printf("swimiop_r @ %x (PC=%x)\n", offset, m_maincpu->safe_pc());
454//  printf("swimiop_r @ %x (PC=%x)\n", offset, m_maincpu->pc());
455455   return 0;
456456}
457457
458458WRITE8_MEMBER(mac_state::swimiop_w)
459459{
460//  printf("swimiop_w %x @ %x (PC=%x)\n", data, offset, m_maincpu->safe_pc());
460//  printf("swimiop_w %x @ %x (PC=%x)\n", data, offset, m_maincpu->pc());
461461}
462462
463463READ8_MEMBER(mac_state::pmac_diag_r)
r17814r17815
478478
479479WRITE8_MEMBER(mac_state::amic_dma_w)
480480{
481//  printf("amic_dma_w: %02x at %x (PC=%x)\n", data, offset+0x1000, m_maincpu->safe_pc());
481//  printf("amic_dma_w: %02x at %x (PC=%x)\n", data, offset+0x1000, m_maincpu->pc());
482482}
483483
484484// HMC has one register: a 35-bit shift register which is accessed one bit at a time (see pmac6100 code at 4030383c which makes this obvious)
trunk/src/mess/drivers/pk8000.c
r17814r17815
307307
308308static INTERRUPT_GEN( pk8000_interrupt )
309309{
310   device_set_input_line(device, 0, HOLD_LINE);
310   device->execute().set_input_line(0, HOLD_LINE);
311311}
312312
313313static IRQ_CALLBACK(pk8000_irq_callback)
r17814r17815
319319static MACHINE_RESET(pk8000)
320320{
321321   pk8000_set_bank(machine,0);
322   device_set_irq_callback(machine.device("maincpu"), pk8000_irq_callback);
322   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pk8000_irq_callback);
323323}
324324
325325static VIDEO_START( pk8000 )
trunk/src/mess/drivers/prestige.c
r17814r17815
396396   UINT32 vector;
397397   prestige_state *state = device->machine().driver_data<prestige_state>();
398398
399   device_set_input_line(state->m_maincpu, 0, CLEAR_LINE);
399   state->m_maincpu->set_input_line(0, CLEAR_LINE);
400400
401401   if (state->m_irq_counter == 0x02)
402402   {
r17814r17815
417417   UINT8 *ram = m_ram->pointer();
418418   memset(ram, 0x00, m_ram->size());
419419
420   device_set_irq_callback(m_maincpu, prestige_int_ack);
420   m_maincpu->set_irq_acknowledge_callback(prestige_int_ack);
421421
422422   membank("bank1")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
423423   membank("bank2")->configure_entries(0, 64, memregion("maincpu")->base(), 0x4000);
trunk/src/mess/drivers/ngp.c
r17814r17815
258258      switch( data )
259259      {
260260      case 0x55:      /* Enable Z80 */
261         device_resume( m_z80, SUSPEND_REASON_HALT );
261         m_z80->execute().resume(SUSPEND_REASON_HALT );
262262         m_z80->reset();
263         device_set_input_line( m_z80, 0, CLEAR_LINE );
263         m_z80->execute().set_input_line(0, CLEAR_LINE );
264264         break;
265265      case 0xAA:      /* Disable Z80 */
266         device_suspend( m_z80, SUSPEND_REASON_HALT, 1 );
266         m_z80->execute().suspend(SUSPEND_REASON_HALT, 1 );
267267         break;
268268      }
269269      break;
270270
271271   case 0x3a:   /* Trigger Z80 NMI */
272      device_set_input_line( m_z80, INPUT_LINE_NMI, PULSE_LINE );
272      m_z80->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE );
273273      break;
274274   }
275275   m_io_reg[offset] = data;
r17814r17815
525525
526526WRITE8_MEMBER( ngp_state::ngp_z80_signal_main_w )
527527{
528   device_set_input_line( m_tlcs900, TLCS900_INT5, ASSERT_LINE );
528   m_tlcs900->execute().set_input_line(TLCS900_INT5, ASSERT_LINE );
529529}
530530
531531
r17814r17815
539539
540540WRITE8_MEMBER( ngp_state::ngp_z80_clear_irq )
541541{
542   device_set_input_line( m_z80, 0, CLEAR_LINE );
542   m_z80->execute().set_input_line(0, CLEAR_LINE );
543543
544544   /* I am not exactly sure what causes the maincpu INT5 signal to be cleared. This will do for now. */
545   device_set_input_line( m_tlcs900, TLCS900_INT5, CLEAR_LINE );
545   m_tlcs900->execute().set_input_line(TLCS900_INT5, CLEAR_LINE );
546546}
547547
548548
r17814r17815
557557
558558   if ( state->m_io_reg[0x33] & 0x04 )
559559   {
560      device_set_input_line( state->m_tlcs900, TLCS900_NMI,
560      state->m_tlcs900->execute().set_input_line(TLCS900_NMI,
561561         (field.machine().root_device().ioport("Power")->read() & 0x01 ) ? CLEAR_LINE : ASSERT_LINE );
562562   }
563563}
r17814r17815
581581
582582WRITE8_MEMBER( ngp_state::ngp_vblank_pin_w )
583583{
584   device_set_input_line( m_tlcs900, TLCS900_INT4, data ? ASSERT_LINE : CLEAR_LINE );
584   m_tlcs900->execute().set_input_line(TLCS900_INT4, data ? ASSERT_LINE : CLEAR_LINE );
585585}
586586
587587
588588WRITE8_MEMBER( ngp_state::ngp_hblank_pin_w )
589589{
590   device_set_input_line( m_tlcs900, TLCS900_TIO, data ? ASSERT_LINE : CLEAR_LINE );
590   m_tlcs900->execute().set_input_line(TLCS900_TIO, data ? ASSERT_LINE : CLEAR_LINE );
591591}
592592
593593
594594WRITE8_MEMBER( ngp_state::ngp_tlcs900_to3 )
595595{
596596   if ( data && ! m_old_to3 )
597      device_set_input_line( m_z80, 0, ASSERT_LINE );
597      m_z80->execute().set_input_line(0, ASSERT_LINE );
598598
599599   m_old_to3 = data;
600600}
r17814r17815
617617   m_dac_r = machine().device<dac_device>( "dac_r" );
618618   m_k1ge = machine().device( "k1ge" );
619619
620   device_suspend( m_z80, SUSPEND_REASON_HALT, 1 );
621   device_set_input_line( m_z80, 0, CLEAR_LINE );
620   m_z80->execute().suspend(SUSPEND_REASON_HALT, 1 );
621   m_z80->execute().set_input_line(0, CLEAR_LINE );
622622}
623623
624624
trunk/src/mess/drivers/pce220.c
r17814r17815
618618
619619   if (state->m_irq_mask & IRQ_FLAG_KEY)
620620   {
621      device_set_input_line( state->m_maincpu, 0, newval ? ASSERT_LINE : CLEAR_LINE );
621      state->m_maincpu->set_input_line(0, newval ? ASSERT_LINE : CLEAR_LINE );
622622
623623      state->m_irq_flag = (state->m_irq_flag & 0xfe) | (newval & 0x01);
624624   }
r17814r17815
630630
631631   if (state->m_irq_mask & IRQ_FLAG_ON)
632632   {
633      device_set_input_line( state->m_maincpu, 0, newval ? ASSERT_LINE : CLEAR_LINE );
633      state->m_maincpu->set_input_line(0, newval ? ASSERT_LINE : CLEAR_LINE );
634634
635635      state->m_irq_flag = (state->m_irq_flag & 0xfd) | ((newval & 0x01)<<1);
636636   }
r17814r17815
907907
908908   if (state->m_irq_mask & IRQ_FLAG_TIMER)
909909   {
910      device_set_input_line( state->m_maincpu, 0, HOLD_LINE );
910      state->m_maincpu->set_input_line(0, HOLD_LINE );
911911
912912      state->m_irq_flag = (state->m_irq_flag & 0xfb) | (state->m_timer_status<<2);
913913   }
trunk/src/mess/drivers/paso1600.c
r17814r17815
292292static MACHINE_START(paso1600)
293293{
294294   paso1600_state *state = machine.driver_data<paso1600_state>();
295   device_set_irq_callback(state->m_maincpu, paso1600_irq_callback);
295   state->m_maincpu->set_irq_acknowledge_callback(paso1600_irq_callback);
296296}
297297
298298
trunk/src/mess/drivers/vt100.c
r17814r17815
356356
357357   state->m_key_scan = 0;
358358
359   device_set_irq_callback(machine.device("maincpu"), vt100_irq_callback);
359   machine.device("maincpu")->execute().set_irq_acknowledge_callback(vt100_irq_callback);
360360}
361361
362362READ8_MEMBER( vt100_state::vt100_read_video_ram_r )
r17814r17815
381381{
382382   vt100_state *state = device->machine().driver_data<vt100_state>();
383383   state->m_vertical_int = 1;
384   device_set_input_line(device, 0, HOLD_LINE);
384   device->execute().set_input_line(0, HOLD_LINE);
385385}
386386
387387/* F4 Character Displayer */
trunk/src/mess/drivers/cxhumax.c
r17814r17815
101101
102102         if((m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)])
103103            || (m_intctrl_regs[INTREG(INTGROUP1, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)]))
104               device_set_input_line(machine().device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
104               machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
105105
106106         break;
107107      default:
r17814r17815
322322
323323         /* Interrupt if Timer interrupt is not masked in ITC_INTENABLE_REG */
324324         if (state->m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)] & INT_TIMER_BIT)
325            device_set_input_line(machine.device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
325            machine.device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
326326      }
327327   }
328328   attotime period = attotime::from_hz(XTAL_54MHz)*state->m_timer_regs.timer[param].timebase;
r17814r17815
418418
419419               /* If INT is enabled at INT Ctrl raise it */
420420               if(m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)]&INT_UART2_BIT) {
421                  device_set_input_line(machine().device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
421                  machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
422422               }
423423            }
424424         }
r17814r17815
548548   /* check if */
549549   if((m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)])
550550      || (m_intctrl_regs[INTREG(INTGROUP1, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)]))
551      device_set_input_line(machine().device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
551      machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
552552   else
553      device_set_input_line(machine().device("maincpu"), ARM7_IRQ_LINE, CLEAR_LINE);
553      machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, CLEAR_LINE);
554554
555555}
556556
r17814r17815
734734         m_intctrl_regs[INTREG(INTGROUP1, INTSTATSET)] |= 1<<7;
735735         if (m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)] & (1<<7)) {
736736               verboselog( machine(), 9, "(I2C1) Int\n" );
737               device_set_input_line(machine().device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
737               machine().device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
738738         }
739739         break;
740740      case I2C_STAT_REG:
trunk/src/mess/drivers/vt240.c
r17814r17815
142142
143143static INTERRUPT_GEN( vt240_irq )
144144{
145   //device_set_input_line(device, I8085_RST65_LINE, ASSERT_LINE);
145   //device->execute().set_input_line(I8085_RST65_LINE, ASSERT_LINE);
146146}
147147
148148static const gfx_layout vt240_chars_8x8 =
trunk/src/mess/drivers/apollo.c
r17814r17815
10801080{
10811081//  MLOG1(("driver_init_dn3500"));
10821082
1083   device_set_irq_callback(machine().device(MAINCPU), apollo_irq_acknowledge);
1083   machine().device(MAINCPU)->execute().set_irq_acknowledge_callback(apollo_irq_acknowledge);
10841084
10851085   /* hook the RESET line, which resets a slew of other components */
10861086   m68k_set_reset_callback(machine().device(MAINCPU), apollo_reset_instr_callback);
trunk/src/mess/drivers/dc.c
r17814r17815
4545static READ64_HANDLER( dcus_idle_skip_r )
4646{
4747   if (space->device().safe_pc()==0xc0ba52a)
48      device_spin_until_time(&space->device(), attotime::from_usec(2500));
48      space->device().execute().spin_until_time(attotime::from_usec(2500));
4949   //  device_spinuntil_int(&space->device());
5050
5151   return dc_ram[0x2303b0/8];
r17814r17815
5454static READ64_HANDLER( dcjp_idle_skip_r )
5555{
5656   if (space->device().safe_pc()==0xc0bac62)
57      device_spin_until_time(&space->device(), attotime::from_usec(2500));
57      space->device().execute().spin_until_time(attotime::from_usec(2500));
5858   //  device_spinuntil_int(&space->device());
5959
6060   return dc_ram[0x2302f8/8];
trunk/src/mess/drivers/pasogo.c
r17814r17815
460460
461461static MACHINE_RESET( pasogo )
462462{
463   device_set_irq_callback(machine.device("maincpu"), pasogo_irq_callback);
463   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pasogo_irq_callback);
464464}
465465
466466//static const unsigned i86_address_mask = 0x000fffff;
trunk/src/mess/drivers/x1twin.c
r17814r17815
110110   //address_space *space = field.machine().device("x1_cpu")->memory().space(AS_PROGRAM);
111111   x1twin_state *state = field.machine().driver_data<x1twin_state>();
112112
113   device_set_input_line(state->m_x1_cpu, INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
113   state->m_x1_cpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
114114
115115   state->m_ram_bank = 0x00;
116116   if(state->m_is_turbo) { state->m_ex_bank = 0x10; }
r17814r17815
122122{
123123   x1twin_state *state = field.machine().driver_data<x1twin_state>();
124124
125   device_set_input_line(state->m_x1_cpu, INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
125   state->m_x1_cpu->set_input_line(INPUT_LINE_NMI, newval ? CLEAR_LINE : ASSERT_LINE);
126126}
127127
128128INPUT_PORTS_START( x1twin )
trunk/src/mess/drivers/eacc.c
r17814r17815
138138   eacc_state *state = timer.machine().driver_data<eacc_state>();
139139   state->m_cb1 ^= 1; // 15hz
140140   if (state->m_cb2)
141      device_set_input_line(state->m_maincpu, M6800_IRQ_LINE, ASSERT_LINE);
141      state->m_maincpu->set_input_line(M6800_IRQ_LINE, ASSERT_LINE);
142142}
143143
144144static TIMER_DEVICE_CALLBACK( eacc_nmi )
r17814r17815
148148   if (state->m_cb2)
149149   {
150150      state->m_nmi = true;
151      device_set_input_line(state->m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
151      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
152152   }
153153}
154154
r17814r17815
226226{
227227   if (m_nmi)
228228   {
229      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
229      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
230230      m_nmi = false;
231231   }
232232   m_digit = data & 0xf8;
trunk/src/mess/drivers/x68k.c
r17814r17815
27062706
27072707   mfp_init(machine());
27082708
2709   device_set_irq_callback(machine().device("maincpu"), x68k_int_ack);
2709   machine().device("maincpu")->execute().set_irq_acknowledge_callback(x68k_int_ack);
27102710
27112711   // init keyboard
27122712   m_keyboard.delay = 500;  // 3*100+200
trunk/src/mess/drivers/ondra.c
r17814r17815
107107
108108static INTERRUPT_GEN( ondra_interrupt )
109109{
110   device_set_input_line(device, 0, HOLD_LINE);
110   device->execute().set_input_line(0, HOLD_LINE);
111111}
112112
113113static const cassette_interface ondra_cassette_interface =
trunk/src/mess/drivers/geneve.c
r17814r17815
541541WRITE8_MEMBER( geneve::tms9901_interrupt )
542542{
543543   /* INTREQ is connected to INT1. */
544   device_execute(m_cpu)->set_input_line(INPUT_LINE_99XX_INT1, data);
544   m_cpu->set_input_line(INPUT_LINE_99XX_INT1, data);
545545}
546546
547547/* tms9901 setup */
r17814r17815
585585{
586586   m_inta = (state!=0)? ASSERT_LINE : CLEAR_LINE;
587587   m_tms9901->set_single_int(1, state);
588   device_execute(m_cpu)->set_input_line(INPUT_LINE_99XX_INT4, state);
588   m_cpu->set_input_line(INPUT_LINE_99XX_INT4, state);
589589}
590590
591591/*
trunk/src/mess/drivers/victor9k.c
r17814r17815
825825    */
826826
827827   // motor speed controller reset
828   device_set_input_line(m_fdc_cpu, INPUT_LINE_RESET, BIT(data, 2));
828   m_fdc_cpu->set_input_line(INPUT_LINE_RESET, BIT(data, 2));
829829
830830   // stepper enable A
831831   m_se[0] = BIT(data, 6);
r17814r17815
923923void victor9k_state::machine_start()
924924{
925925   // set interrupt callback
926   device_set_irq_callback(m_maincpu, victor9k_irq_callback);
926   m_maincpu->set_irq_acknowledge_callback(victor9k_irq_callback);
927927
928928   // memory banking
929929   address_space *program = m_maincpu->space(AS_PROGRAM);
trunk/src/mess/drivers/socrates.c
r17814r17815
268268
269269WRITE8_MEMBER(socrates_state::kbmcu_strobe) // strobe the keyboard MCU
270270{
271   //logerror("0x%04X: kbmcu written with %02X!\n", m_maincpu->safe_pc(), data); //if (m_maincpu->safe_pc() != 0x31D)
271   //logerror("0x%04X: kbmcu written with %02X!\n", m_maincpu->pc(), data); //if (m_maincpu->pc() != 0x31D)
272272   // if two writes happen within one frame, reset the keyboard latches
273273   m_kbmcu_rscount++;
274274   if (m_kbmcu_rscount > 1)
r17814r17815
912912static INTERRUPT_GEN( assert_irq )
913913{
914914   socrates_state *state = device->machine().driver_data<socrates_state>();
915   device_set_input_line(device, 0, ASSERT_LINE);
915   device->execute().set_input_line(0, ASSERT_LINE);
916916   device->machine().scheduler().timer_set(downcast<cpu_device *>(device)->cycles_to_attotime(44), FUNC(clear_irq_cb));
917917// 44 is a complete and total guess, need to properly measure how many clocks/microseconds the int line is high for.
918918   state->m_vblankstate = 1;
trunk/src/mess/drivers/pc8801.c
r17814r17815
18871887
18881888READ8_MEMBER(pc8801_state::upd765_tc_r)
18891889{
1890   //printf("%04x 1\n",m_fdccpu->safe_pc());
1890   //printf("%04x 1\n",m_fdccpu->pc());
18911891
18921892   upd765_tc_w(machine().device("upd765"), 1);
18931893    //TODO: I'm not convinced that this works correctly with current hook-up ... 1000 usec is needed by Aploon, a bigger value breaks Alpha.
r17814r17815
24112411   {
24122412      state->m_vrtc_irq_latch = 1;
24132413      //IRQ_LOG(("vrtc\n"));
2414      device_set_input_line(device,0,HOLD_LINE);
2414      device->execute().set_input_line(0,HOLD_LINE);
24152415   }
24162416}
24172417#endif
r17814r17815
24202420{
24212421   pc8801_state *state = machine.driver_data<pc8801_state>();
24222422
2423   device_set_irq_callback(machine.device("maincpu"), pc8801_irq_callback);
2423   machine.device("maincpu")->execute().set_irq_acknowledge_callback(pc8801_irq_callback);
24242424
24252425   state->m_rtc->cs_w(1);
24262426   state->m_rtc->oe_w(1);
r17814r17815
24472447   state->m_fdc_irq_opcode = 0; //TODO: copied from PC-88VA, could be wrong here ... should be 0x7f ld a,a in the latter case
24482448   state->m_mouse.phase = 0;
24492449
2450   device_set_input_line_vector(machine.device("fdccpu"), 0, 0);
2450   machine.device("fdccpu")->execute().set_input_line_vector(0, 0);
24512451
24522452   {
24532453      state->m_txt_color = 2;
trunk/src/mess/drivers/bw2.c
r17814r17815
226226   {
227227      if (m_maincpu->state_int(Z80_HALT))
228228      {
229         device_set_input_line(m_maincpu, INPUT_LINE_NMI, HOLD_LINE);
229         m_maincpu->set_input_line(INPUT_LINE_NMI, HOLD_LINE);
230230      }
231231   }
232232   else
233233   {
234      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
234      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
235235   }
236236}
237237
trunk/src/mess/drivers/enterp.c
r17814r17815
172172
173173static MACHINE_RESET( enterprise )
174174{
175   device_set_input_line_vector(machine.device("maincpu"), 0, 0xff);
175   machine.device("maincpu")->execute().set_input_line_vector(0, 0xff);
176176}
177177
178178
trunk/src/mess/drivers/jr200.c
r17814r17815
281281
282282static TIMER_CALLBACK(timer_d_callback)
283283{
284   device_set_input_line(machine.firstcpu, 0, HOLD_LINE);
284   machine.firstcpu->set_input_line(0, HOLD_LINE);
285285}
286286
287287READ8_MEMBER(jr200_state::mn1271_io_r)
trunk/src/mess/drivers/portfoli.c
r17814r17815
114114{
115115   int level = (m_ip & m_ie) ? ASSERT_LINE : CLEAR_LINE;
116116
117   device_set_input_line(m_maincpu, INPUT_LINE_INT0, level);
117   m_maincpu->set_input_line(INPUT_LINE_INT0, level);
118118}
119119
120120//-------------------------------------------------
r17814r17815
766766   address_space *program = m_maincpu->space(AS_PROGRAM);
767767
768768   /* set CPU interrupt vector callback */
769   device_set_irq_callback(m_maincpu, portfolio_int_ack);
769   m_maincpu->set_irq_acknowledge_callback(portfolio_int_ack);
770770
771771   /* memory expansions */
772772   switch (machine().device<ram_device>(RAM_TAG)->size())
trunk/src/mess/drivers/apricot.c
r17814r17815
264264   prg->unmap_readwrite(0x40000, 0xeffff);
265265   prg->install_ram(0x00000, ram_size - 1, ram);
266266
267   device_set_irq_callback(m_maincpu, apricot_irq_ack);
267   m_maincpu->set_irq_acknowledge_callback(apricot_irq_ack);
268268
269269   m_video_mode = 0;
270270   m_display_on = 1;
trunk/src/mess/drivers/gp32.c
r17814r17815
492492      }
493493      state->m_s3c240x_irq_regs[4] |= (1 << int_type); // INTPND
494494      state->m_s3c240x_irq_regs[5] = int_type; // INTOFFSET
495      device_set_input_line( machine.device( "maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
495      machine.device( "maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
496496   }
497497   else
498498   {
499      device_set_input_line( machine.device( "maincpu"), ARM7_IRQ_LINE, CLEAR_LINE);
499      machine.device( "maincpu")->execute().set_input_line(ARM7_IRQ_LINE, CLEAR_LINE);
500500   }
501501}
502502
r17814r17815
509509      state->m_s3c240x_irq_regs[0] |= (1 << int_type); // SRCPND
510510      state->m_s3c240x_irq_regs[4] |= (1 << int_type); // INTPND
511511      state->m_s3c240x_irq_regs[5] = int_type; // INTOFFSET
512      device_set_input_line( machine.device( "maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
512      machine.device( "maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
513513   }
514514   else
515515   {
trunk/src/mess/drivers/supracan.c
r17814r17815
11421142         {
11431143            if(m_sound_irq_enable_reg & m_sound_irq_source_reg)
11441144            {
1145               device_set_input_line(machine().device("soundcpu"), 0, ASSERT_LINE);
1145               machine().device("soundcpu")->execute().set_input_line(0, ASSERT_LINE);
11461146            }
11471147            else
11481148            {
1149               device_set_input_line(machine().device("soundcpu"), 0, CLEAR_LINE);
1149               machine().device("soundcpu")->execute().set_input_line(0, CLEAR_LINE);
11501150            }
11511151         }
11521152         break;
r17814r17815
11561156         if(!mem->debugger_access()) verboselog(m_hack_68k_to_6502_access ? "maincpu" : "soundcpu", machine(), 3, "supracan_soundreg_r: IRQ source: %04x\n", data);
11571157         if(!mem->debugger_access())
11581158         {
1159            device_set_input_line(machine().device("soundcpu"), 0, CLEAR_LINE);
1159            machine().device("soundcpu")->execute().set_input_line(0, CLEAR_LINE);
11601160         }
11611161         break;
11621162      case 0x420:
r17814r17815
11901190         if(m_sound_cpu_68k_irq_reg &~ data)
11911191         {
11921192            verboselog(m_hack_68k_to_6502_access ? "maincpu" : "soundcpu", machine(), 0, "supracan_soundreg_w: sound_cpu_68k_irq_reg: %04x: Triggering M68k IRQ\n", data);
1193            device_set_input_line(m_maincpu, 7, HOLD_LINE);
1193            m_maincpu->set_input_line(7, HOLD_LINE);
11941194         }
11951195         else
11961196         {
r17814r17815
14201420   switch ( offset )
14211421   {
14221422      case 0x000a/2:  /* Sound cpu IRQ request. */
1423         device_set_input_line(machine().device("soundcpu"), 0, ASSERT_LINE);
1423         machine().device("soundcpu")->execute().set_input_line(0, ASSERT_LINE);
14241424         break;
14251425      case 0x001c/2:   /* Sound cpu control. Bit 0 tied to sound cpu RESET line */
14261426         if(data & 0x01)
r17814r17815
14601460         if(!mem->debugger_access())
14611461         {
14621462            //verboselog("maincpu", machine(), 0, "read video IRQ flags (%04x)\n", data);
1463            device_set_input_line(m_maincpu, 7, CLEAR_LINE);
1463            m_maincpu->set_input_line(7, CLEAR_LINE);
14641464         }
14651465         break;
14661466      case 0x02/2: // Current scanline
r17814r17815
14891489{
14901490   supracan_state *state = machine.driver_data<supracan_state>();
14911491
1492   device_set_input_line(state->m_maincpu, 3, HOLD_LINE);
1492   state->m_maincpu->set_input_line(3, HOLD_LINE);
14931493
14941494   state->m_hbl_timer->adjust(attotime::never);
14951495}
r17814r17815
14981498{
14991499   supracan_state *state = machine.driver_data<supracan_state>();
15001500
1501   device_set_input_line(state->m_maincpu, 5, HOLD_LINE);
1501   state->m_maincpu->set_input_line(5, HOLD_LINE);
15021502
15031503   state->m_line_on_timer->adjust(attotime::never);
15041504}
r17814r17815
15071507{
15081508   supracan_state *state = machine.driver_data<supracan_state>();
15091509
1510   device_set_input_line(state->m_maincpu, 5, CLEAR_LINE);
1510   state->m_maincpu->set_input_line(5, CLEAR_LINE);
15111511
15121512   state->m_line_on_timer->adjust(attotime::never);
15131513}
r17814r17815
15411541      if(state->m_irq_mask & 1)
15421542      {
15431543         verboselog("maincpu", machine, 0, "Triggering VBL IRQ\n\n");
1544         device_set_input_line(state->m_maincpu, 7, HOLD_LINE);
1544         state->m_maincpu->set_input_line(7, HOLD_LINE);
15451545      }
15461546      break;
15471547   }
r17814r17815
17241724#if 0
17251725         if(!m_irq_mask && !m_hbl_mask)
17261726         {
1727            device_set_input_line(m_maincpu, 7, CLEAR_LINE);
1727            m_maincpu->set_input_line(7, CLEAR_LINE);
17281728         }
17291729#endif
17301730         verboselog("maincpu", machine(), 3, "irq_mask = %04x\n", data);
r17814r17815
18781878
18791879   if(state->m_irq_mask)
18801880   {
1881      device_set_input_line(device, 7, HOLD_LINE);
1881      device->execute().set_input_line(7, HOLD_LINE);
18821882   }
18831883#endif
18841884}
r17814r17815
18911891
18921892   if(state->m_sound_irq_enable_reg & state->m_sound_irq_source_reg)
18931893   {
1894      device_set_input_line(device->machine().device("soundcpu"), 0, ASSERT_LINE);
1894      device->machine().device("soundcpu")->execute().set_input_line(0, ASSERT_LINE);
18951895   }
18961896   else
18971897   {
1898      device_set_input_line(device->machine().device("soundcpu"), 0, CLEAR_LINE);
1898      device->machine().device("soundcpu")->execute().set_input_line(0, CLEAR_LINE);
18991899   }
19001900}
19011901
trunk/src/mess/drivers/vk100.c
r17814r17815
561561{
562562   UINT8 dipswitchLUT[8] = { 1,3,5,7,6,4,2,0 }; // the dipswitches map in a weird order to offsets
563563#ifdef SYSTAT_A_VERBOSE
564   if (m_maincpu->safe_pc() != 0x31D) logerror("0x%04X: SYSTAT_A Read!\n", m_maincpu->safe_pc());
564   if (m_maincpu->pc() != 0x31D) logerror("0x%04X: SYSTAT_A Read!\n", m_maincpu->pc());
565565#endif
566566   return ((m_vgGO?0:1)<<7)|(vram_read(machine())<<3)|(((ioport("SWITCHES")->read()>>dipswitchLUT[offset])&1)?0x4:0)|(m_vsync?0x2:0);
567567}
r17814r17815
585585READ8_MEMBER(vk100_state::SYSTAT_B)
586586{
587587#ifdef SYSTAT_B_VERBOSE
588   logerror("0x%04X: SYSTAT_B Read!\n", m_maincpu->safe_pc());
588   logerror("0x%04X: SYSTAT_B Read!\n", m_maincpu->pc());
589589#endif
590590   return (m_ACTS<<7)|0x7F;
591591}
r17814r17815
875875static WRITE_LINE_DEVICE_HANDLER(crtc_vsync)
876876{
877877   vk100_state *m_state = device->machine().driver_data<vk100_state>();
878   device_set_input_line(m_state->m_maincpu, I8085_RST75_LINE, state? ASSERT_LINE : CLEAR_LINE);
878   m_state->m_maincpu->set_input_line(I8085_RST75_LINE, state? ASSERT_LINE : CLEAR_LINE);
879879   m_state->m_vsync = state;
880880}
881881
882882static WRITE_LINE_DEVICE_HANDLER(i8251_rxrdy_int)
883883{
884884   vk100_state *m_state = device->machine().driver_data<vk100_state>();
885   device_set_input_line(m_state->m_maincpu, I8085_RST65_LINE, state?ASSERT_LINE:CLEAR_LINE);
885   m_state->m_maincpu->set_input_line(I8085_RST65_LINE, state?ASSERT_LINE:CLEAR_LINE);
886886}
887887
888888static WRITE_LINE_DEVICE_HANDLER(i8251_txrdy_int)
889889{
890890   vk100_state *m_state = device->machine().driver_data<vk100_state>();
891   device_set_input_line(m_state->m_maincpu, I8085_RST55_LINE, state?ASSERT_LINE:CLEAR_LINE);
891   m_state->m_maincpu->set_input_line(I8085_RST55_LINE, state?ASSERT_LINE:CLEAR_LINE);
892892}
893893
894894static WRITE_LINE_DEVICE_HANDLER(i8251_rts)
trunk/src/mess/drivers/tek405x.c
r17814r17815
6464{
6565   int state = m_kb_pia_irqa | m_kb_pia_irqb | m_x_pia_irqa | m_x_pia_irqb | m_gpib_pia_irqa | m_gpib_pia_irqb | m_com_pia_irqa | m_com_pia_irqb | m_acia_irq;
6666
67   device_set_input_line(m_maincpu, INPUT_LINE_IRQ0, state);
67   m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
6868}
6969
7070
r17814r17815
7676{
7777   int state = m_y_pia_irqa | m_y_pia_irqb | m_tape_pia_irqa | m_tape_pia_irqb;
7878
79   device_set_input_line(m_maincpu, INPUT_LINE_NMI, state);
79   m_maincpu->set_input_line(INPUT_LINE_NMI, state);
8080}
8181
8282
trunk/src/mess/drivers/esq5505.c
r17814r17815
7676        m_dmac(*this, "mc68450")
7777    { }
7878
79    required_device<device_t> m_maincpu;
79    required_device<m68000_device> m_maincpu;
8080    required_device<device_t> m_duart;
8181    optional_device<wd1772_t> m_fdc;
8282    optional_device<esq1x22_t> m_epsvfd;
r17814r17815
270270//    printf("\nDUART IRQ: state %d vector %d\n", state, vector);
271271    if (state == ASSERT_LINE)
272272    {
273        device_set_input_line_vector(esq5505->m_maincpu, 1, vector);
274        device_set_input_line(esq5505->m_maincpu, 1, ASSERT_LINE);
273        esq5505->m_maincpu->set_input_line_vector(1, vector);
274        esq5505->m_maincpu->set_input_line(1, ASSERT_LINE);
275275    }
276276    else
277277    {
278        device_set_input_line(esq5505->m_maincpu, 1, CLEAR_LINE);
278        esq5505->m_maincpu->set_input_line(1, CLEAR_LINE);
279279    }
280280};
281281
r17814r17815
299299        floppy->ss_w((data & 2)>>1);
300300    }
301301
302//    printf("DUART output: %02x (PC=%x)\n", data, state->m_maincpu->safe_pc());
302//    printf("DUART output: %02x (PC=%x)\n", data, state->m_maincpu->pc());
303303}
304304
305305static void duart_tx(device_t *device, int channel, UINT8 data)
r17814r17815
308308
309309    if (channel == 1)
310310    {
311//        printf("ch %d: [%02x] (PC=%x)\n", channel, data, state->m_maincpu->safe_pc());
311//        printf("ch %d: [%02x] (PC=%x)\n", channel, data, state->m_maincpu->pc());
312312        switch (state->m_system_type)
313313        {
314314            case GENERIC:
trunk/src/mess/drivers/pegasus.c
r17814r17815
9090static TIMER_DEVICE_CALLBACK( pegasus_firq )
9191{
9292   device_t *cpu = timer.machine().device( "maincpu" );
93   device_set_input_line(cpu, M6809_FIRQ_LINE, HOLD_LINE);
93   cpu->execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
9494}
9595
9696WRITE_LINE_MEMBER( pegasus_state::pegasus_firq_clr )
trunk/src/mess/drivers/tsispch.c
r17814r17815
272272   int i;
273273   for (i=0; i<32; i++) m_infifo[i] = 0;
274274   m_infifo_tail_ptr = m_infifo_head_ptr = 0;
275   device_set_irq_callback(machine().device("maincpu"), irq_callback);
275   machine().device("maincpu")->execute().set_irq_acknowledge_callback(irq_callback);
276276   fprintf(stderr,"machine reset\n");
277277}
278278
trunk/src/mess/drivers/elwro800.c
r17814r17815
537537
538538static INTERRUPT_GEN( elwro800jr_interrupt )
539539{
540   device_set_input_line(device, 0, HOLD_LINE);
540   device->execute().set_input_line(0, HOLD_LINE);
541541}
542542
543543static const floppy_interface elwro800jr_floppy_interface =
trunk/src/mess/drivers/exelv.c
r17814r17815
321321   tms5220_wsq_w(m_tms5220c, (data & 0x01) ? 1 : 0);
322322   tms5220_rsq_w(m_tms5220c, (data & 0x02) ? 1 : 0);
323323
324   device_set_input_line(m_maincpu, TMS7000_IRQ1_LINE, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE);
324   m_maincpu->set_input_line(TMS7000_IRQ1_LINE, (data & 0x04) ? CLEAR_LINE : ASSERT_LINE);
325325
326326   /* Check for low->high transition on B6 */
327327   if (!(m_tms7041_portb & 0x40) && (data & 0x40))
trunk/src/mess/drivers/fidelz80.c
r17814r17815
10871087{
10881088   fidelz80_state *state = field.machine().driver_data<fidelz80_state>();
10891089
1090   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
1090   state->m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
10911091}
10921092
10931093static INPUT_CHANGED( abc_trigger_reset )
10941094{
10951095   fidelz80_state *state = field.machine().driver_data<fidelz80_state>();
10961096
1097   device_set_input_line(state->m_maincpu, INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
1098   device_set_input_line(state->m_i8041, INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
1097   state->m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
1098   state->m_i8041->set_input_line(INPUT_LINE_RESET, newval ? CLEAR_LINE : ASSERT_LINE);
10991099}
11001100
11011101static INPUT_PORTS_START( fidelz80 )
trunk/src/mess/drivers/pv2000.c
r17814r17815
373373   state->m_key_pressed = 0;
374374   state->m_keyb_column = 0;
375375
376   device_set_input_line_vector(machine.device("maincpu"), INPUT_LINE_IRQ0, 0xff);
376   machine.device("maincpu")->execute().set_input_line_vector(INPUT_LINE_IRQ0, 0xff);
377377   memset(&state->memregion("maincpu")->base()[0x7000], 0xff, 0x1000);   // initialize RAM
378378}
379379
trunk/src/mess/drivers/pyl601.c
r17814r17815
518518{
519519   pyl601_state *state = device->machine().driver_data<pyl601_state>();
520520   state->m_tick50_mark = 0x80;
521   device_set_input_line(device, 0, HOLD_LINE);
521   device->execute().set_input_line(0, HOLD_LINE);
522522}
523523
524524static LEGACY_FLOPPY_OPTIONS_START(pyldin)
trunk/src/mess/drivers/mstation.c
r17814r17815
262262void mstation_state::refresh_ints()
263263{
264264   if (m_irq != 0)
265      device_set_input_line(m_maincpu, 0, HOLD_LINE);
265      m_maincpu->set_input_line(0, HOLD_LINE);
266266   else
267      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
267      m_maincpu->set_input_line(0, CLEAR_LINE);
268268}
269269
270270READ8_MEMBER( mstation_state::irq_r )
trunk/src/mess/drivers/iq151.c
r17814r17815
318318
319319WRITE_LINE_MEMBER( iq151_state::pic_set_int_line )
320320{
321   device_set_input_line(m_maincpu, 0, state ?  HOLD_LINE : CLEAR_LINE);
321   m_maincpu->set_input_line(0, state ?  HOLD_LINE : CLEAR_LINE);
322322}
323323
324324static INTERRUPT_GEN( iq151_vblank_interrupt )
r17814r17815
352352   membank("boot")->configure_entry(0, RAM + 0xf800);
353353   membank("boot")->configure_entry(1, RAM + 0x0000);
354354
355   device_set_irq_callback(m_maincpu, iq151_irq_callback);
355   m_maincpu->set_irq_acknowledge_callback(iq151_irq_callback);
356356
357357   // keep machine pointers to slots
358358   m_carts[0] = machine().device<iq151cart_slot_device>("slot1");
trunk/src/mess/drivers/pcfx.c
r17814r17815
375375
376376   if ( highest_prio >= 0 )
377377   {
378      device_set_input_line( m_maincpu, 8 + highest_prio, ASSERT_LINE );
378      m_maincpu->set_input_line(8 + highest_prio, ASSERT_LINE );
379379   }
380380   else
381381   {
382      device_set_input_line( m_maincpu, 0, CLEAR_LINE );
382      m_maincpu->set_input_line(0, CLEAR_LINE );
383383   }
384384}
385385
trunk/src/mess/drivers/avigo.c
r17814r17815
129129void avigo_state::refresh_ints()
130130{
131131   if (m_irq!=0)
132      device_set_input_line(m_maincpu, 0, HOLD_LINE);
132      m_maincpu->set_input_line(0, HOLD_LINE);
133133   else
134      device_set_input_line(m_maincpu, 0, CLEAR_LINE);
134      m_maincpu->set_input_line(0, CLEAR_LINE);
135135}
136136
137137/* does not do anything yet */
trunk/src/mess/drivers/apple2.c
r17814r17815
225225{
226226    apple2_state *a2 = device->machine().driver_data<apple2_state>();
227227
228    device_set_input_line(a2->m_maincpu, M6502_IRQ_LINE, data);
228    a2->m_maincpu->set_input_line(M6502_IRQ_LINE, data);
229229}
230230
231231static WRITE8_DEVICE_HANDLER(a2bus_nmi_w)
232232{
233233    apple2_state *a2 = device->machine().driver_data<apple2_state>();
234234
235    device_set_input_line(a2->m_maincpu, INPUT_LINE_NMI, data);
235    a2->m_maincpu->set_input_line(INPUT_LINE_NMI, data);
236236}
237237
238238static WRITE8_DEVICE_HANDLER(a2bus_inh_w)
trunk/src/mess/drivers/svision.c
r17814r17815
418418{
419419   svision_state *state = device->machine().driver_data<svision_state>();
420420   if (state->BANK&1)
421      device_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
421      device->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
422422
423423   svision_sound_decrement(state->m_sound);
424424}
trunk/src/mess/drivers/xerox820.c
r17814r17815
599599   m_fdc_irq = state;
600600
601601   if (halt && state)
602      device_set_input_line(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
602      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
603603   else
604      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
604      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
605605}
606606
607607WRITE_LINE_MEMBER( xerox820_state::drq_w )
r17814r17815
611611   m_fdc_drq = state;
612612
613613   if (halt && state)
614      device_set_input_line(m_maincpu, INPUT_LINE_NMI, ASSERT_LINE);
614      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
615615   else
616      device_set_input_line(m_maincpu, INPUT_LINE_NMI, CLEAR_LINE);
616      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
617617}
618618
619619static const wd17xx_interface fdc_intf =
trunk/src/mess/drivers/ti99_4p.c
r17814r17815
335335
336336WRITE16_MEMBER( ti99_4p::memwrite )
337337{
338//  device_adjust_icount(m_cpu, -4);
338//  m_cpu->execute().adjust_icount(-4);
339339
340340   int addroff = offset << 1;
341341   UINT16 zone = addroff & 0xe000;
trunk/src/mess/drivers/micronic.c
r17814r17815
348348
349349WRITE_LINE_MEMBER( micronic_state::mc146818_irq )
350350{
351   device_set_input_line(m_maincpu, 0, !state ? HOLD_LINE : CLEAR_LINE);
351   m_maincpu->set_input_line(0, !state ? HOLD_LINE : CLEAR_LINE);
352352}
353353
354354const struct mc146818_interface micronic_mc146818_config =
trunk/src/mess/drivers/alphatro.c
r17814r17815
178178
179179INPUT_CHANGED_MEMBER( alphatro_state::alphatro_break )
180180{
181   device_set_input_line(m_maincpu, INPUT_LINE_IRQ0, HOLD_LINE);
181   m_maincpu->set_input_line(INPUT_LINE_IRQ0, HOLD_LINE);
182182}
183183
184184static ADDRESS_MAP_START( alphatro_map, AS_PROGRAM, 8, alphatro_state )
trunk/src/mess/drivers/h8.c
r17814r17815
5757{
5858   h8_state *state = timer.machine().driver_data<h8_state>();
5959   if (state->m_irq_ctl & 1)
60      device_set_input_line_and_vector(timer.machine().device("maincpu"), INPUT_LINE_IRQ0, ASSERT_LINE, 0xcf);
60      timer.machine().device("maincpu")->execute().set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xcf);
6161}
6262
6363READ8_MEMBER( h8_state::h8_f0_r )
r17814r17815
105105   output_set_value("mon_led",(data & 0x20) ? 0 : 1);
106106   beep_set_state(m_beep, (data & 0x80) ? 0 : 1);
107107
108   device_set_input_line(machine().device("maincpu"), INPUT_LINE_IRQ0, CLEAR_LINE);
108   machine().device("maincpu")->execute().set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
109109   m_irq_ctl &= 0xf0;
110110   if (data & 0x40) m_irq_ctl |= 1;
111111   if (~data & 0x10) m_irq_ctl |= 2;
r17814r17815
197197         c=m_ff_b^1; // from /Q of 2nd flipflop
198198         m_ff_b=a; // from Q of 1st flipflop
199199         if (c)
200            device_set_input_line_and_vector(machine().device("maincpu"), INPUT_LINE_IRQ0, ASSERT_LINE, 0xd7);
200            machine().device("maincpu")->execute().set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xd7);
201201      }
202202   }
203203   else
trunk/src/mess/drivers/dmv.c
r17814r17815
271271
272272WRITE_LINE_MEMBER( dmv_state::dma_hrq_changed )
273273{
274   device_set_input_line(m_maincpu, INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
274   m_maincpu->set_input_line(INPUT_LINE_HALT, state ? ASSERT_LINE : CLEAR_LINE);
275275
276276   // Assert HLDA
277277   i8237_hlda_w(m_dmac, state);
trunk/src/mess/drivers/gba.c
r17814r17815
9898      // master enable?
9999      if (state->m_IME & 1)
100100      {
101         device_set_input_line(machine.device("maincpu"), ARM7_IRQ_LINE, ASSERT_LINE);
102         device_set_input_line(machine.device("maincpu"), ARM7_IRQ_LINE, CLEAR_LINE);
101         machine.device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
102         machine.device("maincpu")->execute().set_input_line(ARM7_IRQ_LINE, CLEAR_LINE);
103103      }
104104   }
105105}
r17814r17815
18891889               m_HALTCNT = data & 0x000000ff;
18901890
18911891               // either way, wait for an IRQ
1892               device_spin_until_interrupt(machine().device("maincpu"));
1892               machine().device("maincpu")->execute().spin_until_interrupt();
18931893            }
18941894         }
18951895         if( (mem_mask) & 0xffff0000 )
trunk/src/mess/drivers/vixen.c
r17814r17815
7979{
8080   int state = (m_cmd_d1 && m_fdint) || m_vsync || (!m_enb_srq_int && !m_srq) || (!m_enb_atn_int && !m_atn) || (!m_enb_xmt_int && m_txrdy) || (!m_enb_rcv_int && m_rxrdy);
8181
82   device_set_input_line(m_maincpu, INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
82   m_maincpu->set_input_line(INPUT_LINE_IRQ0, state ? ASSERT_LINE : CLEAR_LINE);
8383}
8484
8585
r17814r17815
778778void vixen_state::machine_start()
779779{
780780   // interrupt callback
781   device_set_irq_callback(m_maincpu, vixen_int_ack);
781   m_maincpu->set_irq_acknowledge_callback(vixen_int_ack);
782782
783783   // configure memory banking
784784   UINT8 *ram = m_ram->pointer();

Previous 199869 Revisions Next


© 1997-2024 The MAME Team