void mcs96_device::execute_run() { internal_update(total_cycles()); // if(inst_substate) // do_exec_partial(); while(icount > 0) { while(icount > bcount) { int picount = inst_state >= 0x200 ? -1 : icount; do_exec_full(); if(icount == picount) { fatalerror("Unhandled %x (%04x)\n", inst_state, PPC); } } while(bcount && icount <= bcount) internal_update(total_cycles() + icount - bcount); // if(inst_substate) // do_exec_partial(); } }
void mcs96_device::execute_run() { UINT64 start_cycles = machine().time().as_ticks(clock()); end_cycles = start_cycles + icount; internal_update(start_cycles); if(/*inst_substate*/ 0) do_exec_partial(); while(icount > 0) { while(icount > bcount) { int picount = inst_state >= 0x200 ? -1 : icount; do_exec_full(); if(icount == picount) { fprintf(stderr, "Unhandled %x (%04x)\n", inst_state, PPC); exit(0); } } while(bcount && icount <= bcount) internal_update(end_cycles - bcount); } end_cycles = 0; }