#include"tcpdl.h"

#define debug_task(x) ;

STATIC VOID __saveds
safe_task( void )
{
   while( mmpoint->task_safe_kill==FALSE )
   {
      Delay(50);
      safe();
   }
   mmpoint->task_safe_taskid=0;
   return;
}

STATIC VOID __saveds
update_window( void )
{
   while( mmpoint->task_update_window_kill==FALSE )
   {
      Render();
      Delay(150);
   }
   mmpoint->task_update_window_taskid=0;
   return;
}

STATIC VOID __saveds
task_0( void )
{
int task=0;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_1( void )
{
int task=1;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_2( void )
{
int task=2;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_3( void )
{
int task=3;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_4( void )
{
int task=4;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_5( void )
{
int task=5;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_6( void )
{
int task=6;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_7( void )
{
int task=7;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_8( void )
{
int task=8;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_9( void )
{
int task=9;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_10( void )
{
int task=10;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_11( void )
{
int task=11;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_12( void )
{
int task=12;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_13( void )
{
int task=13;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

STATIC VOID __saveds
task_14( void )
{
int task=14;
   
   while( mmpoint->point[task].kill==FALSE )
   {
      Delay(10);
      if( mmpoint->point[task].busy==TRUE )
      {
         dotcpline( task );
         
         mmpoint->point[task].finalsize=-1;
         mmpoint->point[task].currentsize=-1;
         mmpoint->point[task].starttimecps=0;
         mmpoint->point[task].starttime=0;
         
         mmpoint->point[task].busy=FALSE;
      }
   }
   mmpoint->point[task].taskid=0;
   return;
}

void  __regargs
starttask1( void )
{
   Forbid();
   mmpoint->task_safe_taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, safe_task,
             NP_StackSize, 16384,
             NP_Name, (char*)"tcpdl-safe_task",
             NP_Priority, -1,
             NP_WindowPtr, -2,
             TAG_DONE  );
   
   mmpoint->task_update_window_taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, update_window,
             NP_StackSize, 16384,
             NP_Name, (char*)"tcpdl-update_window",
             NP_Priority, 3,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[0].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_0,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_0",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[1].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_1,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_1",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[2].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_2,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_2",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[3].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_3,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_3",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[4].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_4,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_4",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[5].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_5,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_5",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[6].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_6,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_6",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[7].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_7,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_7",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[8].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_8,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_8",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[9].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_9,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_9",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[10].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_10,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_10",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[11].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_11,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_11",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[12].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_12,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_12",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[13].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_13,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_13",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   mmpoint->point[14].taskid = (struct Task*) CreateNewProcTags(
             NP_Entry, task_14,
             NP_StackSize, 32768,
             NP_Name, (char*)"tcpdl-client_14",
             NP_Priority, 4,
             NP_WindowPtr, -1,
             TAG_DONE  );
   
   Permit();
   return;
}

void  __saveds
starttask( void )
{
   starttask1();
}

