void asic65_reset(running_machine *machine, int state) { const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM); /* rom-based means reset and clear states */ if (asic65.cpu != NULL) cpu_set_input_line(asic65.cpu, INPUT_LINE_RESET, state ? ASSERT_LINE : CLEAR_LINE); /* otherwise, do it manually */ else { cputag_suspend(machine, "asic65", SUSPEND_REASON_DISABLE, 1); /* if reset is being signalled, clear everything */ if (state && !asic65.reset_state) asic65.command = -1; /* if reset is going high, latch the command */ else if (!state && asic65.reset_state) { if (asic65.command != -1) asic65_data_w(space, 1, asic65.command, 0xffff); } /* update the state */ asic65.reset_state = state; } }
static READ32_HANDLER(FlipCount_r) { #ifdef IDLE_LOOP_SPEEDUP UINT32 IntPend = memory_read_dword(space, 0x01800c0c); FlipCntRead++; if(FlipCntRead >= 16 && !IntPend && FlipCount != 0) cputag_suspend(space->machine, "maincpu", SUSPEND_REASON_SPIN, 1); #endif return ((UINT32) FlipCount)<<16; }
static READ16_HANDLER(tomcat_320bio_r) { dsp_BIO = 1; cputag_suspend(space->machine, "maincpu", SUSPEND_REASON_SPIN, 1); return 0; }
void jaguar_dsp_suspend(running_machine *machine) { cputag_suspend(machine, "audiocpu", SUSPEND_REASON_SPIN, 1); }