#pragma message ( "including jfctgcpu.cc" );
/***************************************/
/*         MULTI Instruction TICK START            */
/***************************************/
#if defined SEQUENCER_LIGHTPEN || defined CLAY_ONLY
 if (iCount)
 {
  u6522Timer1.uCount.tW-=iCount;
  u6522Timer2.uCount.tW-=iCount;
  lwGblSystemTickTotal+=iCount;
  iCount=0;
 }
else
#endif
//treck 2 stuerzt ab
do
{
     static T_SWORD ticks_at_once;
     static T_PUWORD hpoint;
     ticks_at_once=cycle_count[*(hpoint=(T_PUWORD)(atSystemImage+(tsCPURegisters.tPC++)))];
     lwGblSystemTickTotal+=(++ticks_at_once);

     u6522Timer1.uCount.tW-=(++ticks_at_once); /* plus 1 because instruction fetch takes one tick */
     u6522Timer2.uCount.tW-=ticks_at_once;
//printf("-%X-",*((UBYTE *)hpoint));
     i6809status=(apfExecuteInstruction[*((T_PUCHAR)hpoint)])();
//printf("=%X=",i6809status);
     fDebug(LOW,("f6809MultiInstructionTick() - FETCH & DECODE CYCLE- Ret  #$%02x",i6809status));
     lwGblSystemTickTotal++;
     if (i6809status)
     if (i6809status<CPU_WAIT)
     {
      u6522Timer1.uCount.tW-=i6809status;
      u6522Timer2.uCount.tW-=i6809status;
      lwGblSystemTickTotal+=i6809status;
      i6809status=0;
     }

}
while ((!i6809status)&&(!t6522SHFTREGACT)&&(((T_UWORD)u6522Timer2.uCount.tW)>(T_UWORD)(limit+1))&&((T_UWORD) ((T_UWORD)(u6522Timer1.uCount.tW)+(T_UWORD)1)>((T_UWORD)limit+1)));
