コード例 #1
0
ファイル: mcs96.cpp プロジェクト: motoschifo/mame
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();
    }
}
コード例 #2
0
ファイル: mcs96.c プロジェクト: thomas41546/mame4raspi
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;
}