home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / pcwk_09_96.iso / demo / wgelectr / pk51demo / files.2 / EXAMPLES / TRAFFIC / DBG_TINY.DSW next >
Text File  |  1995-09-22  |  2KB  |  44 lines

  1.  
  2.  
  3. func void tasks ()  {
  4.   uchar i;
  5.   uint  adr;
  6.  
  7.   printf ("+----------+-------+---------+------------------+--------+-------+-------+\n");
  8.   printf ("| Task ID  | Start | State   | Wait for Event   | Signal | Timer | Stack |\n");
  9.   printf ("+----------+-------+---------+------------------+--------+-------+-------+\n");
  10.  
  11.   for (i = 0; i <= ?RTX_TASKIDX; i++)  {
  12.     printf ("|    %2d    | ", i);
  13.     adr = &?RTX_TASKENTRY + i*2;
  14.     printf ("%04XH | ", uint (c:adr));
  15.     adr = &?RTX_TASKSTATUS + i*2;
  16.     if (RTX_CURRENTTASK == i  &&
  17.         (uchar (i:adr+1) & 0x10))     printf ("RUNNING | ");
  18.     else if (uchar (i:adr+1) & 0x40)  printf ("TIMEOUT | ");
  19.     else if (uchar (i:adr+1) & 0x10)  printf ("READY   | ");
  20.     else if (uchar (i:adr+1) & 0x03)  printf ("WAITING | ");
  21.     else if (uchar (i:adr+1) == 0)    printf ("DELETED | ");
  22.     else                              printf ("ILLEGAL | ");
  23.  
  24.     switch (uchar (i:adr+1) & 0x03)  {
  25.       case 0:  printf ("                "); break;
  26.       case 1:  printf ("SIGNAL          "); break;
  27.       case 2:  printf ("TIMEOUT         "); break;
  28.       case 3:  printf ("SIGNAL & TIMEOUT"); break;
  29.     }
  30.  
  31.     if (uchar (i:adr+1) & 0x04)  printf (" |    1");
  32.     else                         printf (" |    0");
  33.   
  34.     printf ("   |   %3d |", uchar (i:adr));
  35.     adr = &?RTX_TASKSP + i;
  36.     printf ("   %02XH |", uchar (i:adr));
  37.     printf ("\n");
  38.   }
  39.   printf ("+----------+-------+---------+------------------+--------+-------+-------+\n");
  40. }
  41.  
  42. define button "Task State", "tasks ()"
  43. bs ?RTX_NEXTTASK, 1, "printf (\"Switch to Task %d\\n\", R7)"
  44.