亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test.c

?? 一個多任務操作系統(tǒng)CTask的源代碼 用C語言編寫
?? C
字號:

/*
   Test program for checking basic CTask functions.

   Keyboard input:

      e  Terminates program
      d  Snapshot dump to STDOUT
      h  Stop screen output
      c  Resume screen output
      b  Beep (Turbo C only)
      m  Snapshot dump to mono screen
      s  Snapshot dump to colour screen

*/

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <time.h>

#include "tsk.h"
#include "tsksup.h"
#include "tskprf.h"

#define STACKSIZE 2048

unsigned int _stklen = 6 * STACKSIZE;  /* For Turbo C: Five tasks + main Task Stack */

typedef struct {
               farptr xx;
               char str [20];
               } message;

tcb tcb1, tcb2, tcb3, tcb4, tcb5;
mailbox box;
message msg;
flag halt;
pipe pip;
buffer buf;

byte pipbuf [10];
word bufbuf [40];

int endrun;


/*
   Task1 sends a mail to Task3, and waits for a response in the buffer.
   The response is then displayed.
   Task1 will stop while the halt flag is set.
*/

void far task1 (void)
{
   char str [20];

   tprintf ("Task 1 started\n");
   while (!endrun)
      {
      wait_flag_clear (&halt, 0L);

      t_delay (20L);
      tputch ('1');
      strcpy (msg.str, "From T1");
      send_mail (&box, &msg);

      read_buffer (&buf, str, 20, 0L);
      tprintf ("Task 1 read buf: <%s>\n", str);
      }
}

/*
   Task2 reads the keyboard. If a character has been read, it is passed
   to Task4 via a pipe. Entering 'h' will set the halt flag (stopping Task1),
   entering 'c' will clear the halt flag.
   'e' stops the program.
*/

void far task2 (void)
{
   int ch;

   tprintf ("Task 2 started\n");
   while (!endrun)
      {
      ch = t_wait_key (30L);
      if (ch < 0)
         tputch (0x04);
      else
         {
         switch (tolower (ch & 0xff))
            {
            case 'h':   set_flag (&halt);
                        break;
            case 'c':   clear_flag (&halt);
                        break;
            case 'e':   wake_task (NULL);
                        break;
   #if (TSK_NAMED)
            case 'd':   csnapshot ();
                        break;
            case 'm':   tsk_set_mono (25, 80);
                        screensnap (25);
                        break;
            case 's':   tsk_set_colour (25, 80);
                        screensnap (25);
                        break;
   #endif
   #if (TSK_TURBO)
            case 'b':   sound (2000);
                        t_delay (2);
                        nosound ();
                        break;
   #endif
            }

         if (!endrun)
            write_pipe (&pip, (char)ch, 0L);
         tputch ('2');
         }
      }
}


/*
   Task3 waits for mail, then sends it back through a buffer.
*/

void far task3 (void)
{
   message far *m;

   tprintf ("Task 3 started\n");
   while (!endrun)
      {
      m = wait_mail (&box, 0L);
      tprintf ("Task 3 received <%Fs>\n", m->str);

      m->str [6] = '3';
      write_buffer (&buf, m->str, 7, 0L);
      }
}


/*
   Task4 waits for a character in the pipe and displays it. To make
   things livelier, it uses a timeout while waiting, and will display
   faces when the timeout occurred before the character.
*/

void far task4 (void)
{
   int ch;

   tprintf ("Task 4 started\n");
   while (!endrun)
      {
      ch = read_pipe (&pip, 10L);
      if (ch < 0)
         tputch (0x02);
      else
         tprintf ("Task 4 got <%c>\n", ch);
      }
}

/*
   Task 5 checks the memory watch capability by waiting for the
   BIOS keyboard status byte at 40:17 to contain 1 in the lower two
   bits, signalling that both the left and right shift keys are pressed.
*/

void far task5 (void)
{
   tprintf ("Task 5 started\n");
   while (!endrun)
      {
         wait_memory ((farptr)0x417L, 0x03, 0x03, TCMP_EQ);
         tprintf ("Task 5: Both Shift keys pressed\n");
         wait_memory ((farptr)0x417L, 0x03, 0x03, TCMP_NE);
         tprintf ("Task 5: Shift keys released\n");
      }
}


int main (void)
{
   char stack1 [STACKSIZE];
   char stack2 [STACKSIZE];
   char stack3 [STACKSIZE];
   char stack4 [STACKSIZE];
   char stack5 [STACKSIZE];
   int i;

#if(TSK_TURBO)
   directvideo = 0;
#endif
   endrun = 0;
   tsk_cprint_init (2, 1152);

   if ((i = install_tasker (0, 0, IFL_DISK | IFL_INT8_DIR | IFL_PRINTER, "Test")) < 0)
      {
      printf ("Can't install, returncode = %d\n", i);
      return 1;
      }

   init_conout ();

   create_mailbox (&box TN("Mailbox"));
   create_flag (&halt TN("Halt"));
   create_pipe (&pip, pipbuf, sizeof (pipbuf) TN("Pipe"));
   create_buffer (&buf, bufbuf, sizeof (bufbuf) TN("Buffer"));

   create_task (&tcb1, task1, stack1, STACKSIZE, PRI_STD, NULL TN("TASK1"));
   create_task (&tcb2, task2, stack2, STACKSIZE, PRI_STD, NULL TN("TASK2"));
   create_task (&tcb3, task3, stack3, STACKSIZE, PRI_STD, NULL TN("TASK3"));
   create_task (&tcb4, task4, stack4, STACKSIZE, PRI_STD, NULL TN("TASK4"));
   create_task (&tcb5, task5, stack5, STACKSIZE, PRI_STD, NULL TN("TASK5"));
   start_task (&tcb1);
   start_task (&tcb2);
   start_task (&tcb3);
   start_task (&tcb4);
   start_task (&tcb5);
   preempt_on ();

   t_delay (0L);

   endrun = 1;
   tputs ("******** Main Task *********");

   kill_task (&tcb1);
   kill_task (&tcb2);
   kill_task (&tcb3);
   kill_task (&tcb4);
   kill_task (&tcb5);

   delete_mailbox (&box);
   delete_pipe (&pip);
   delete_buffer (&buf);
   delete_flag (&halt);

   schedule ();

   end_conout ();

   remove_tasker ();
   puts ("******** End Run *********");
   return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女同女同女同女同女同69| 欧洲激情一区二区| 久久九九99视频| 国产精品资源在线看| 欧美精品一区二区在线播放| 国产精品综合二区| 国产精品美女久久久久高潮| 91麻豆123| 亚洲成人激情av| 精品久久久久久综合日本欧美 | 国产酒店精品激情| 欧美激情综合五月色丁香 | 国产欧美精品在线观看| 成人免费看视频| 亚洲综合自拍偷拍| 日韩一卡二卡三卡四卡| 粉嫩av一区二区三区| 亚洲精品国产a| 欧美一区三区二区| 国产iv一区二区三区| 玉米视频成人免费看| 欧美一级视频精品观看| 粉嫩高潮美女一区二区三区| 亚洲精品视频一区| 欧美videossexotv100| av高清不卡在线| 亚洲电影在线免费观看| 久久蜜臀精品av| 欧美中文字幕不卡| 国产激情视频一区二区在线观看| 亚洲色图视频网站| 精品国产第一区二区三区观看体验| 成人午夜碰碰视频| 老司机精品视频一区二区三区| 久久综合色播五月| 91久久人澡人人添人人爽欧美 | 日韩免费看的电影| 99久久精品情趣| 久久99精品国产.久久久久| 国产精品久久久久久久久快鸭| 欧美日韩国产综合一区二区 | 日韩高清不卡在线| 中文字幕免费一区| 欧美一区三区四区| 欧美这里有精品| 成人午夜视频在线| 久久99最新地址| 一区二区成人在线| 国产精品久久久久久户外露出| 欧美日韩1区2区| 91蜜桃在线免费视频| 国产精品456露脸| 日本在线观看不卡视频| 亚洲综合在线第一页| 国产亚洲欧美色| 26uuu另类欧美亚洲曰本| 欧美亚洲动漫另类| 成人激情综合网站| 国产酒店精品激情| 国产精品一卡二| 极品少妇一区二区三区精品视频| 午夜精品在线视频一区| 一区二区三区四区中文字幕| 中文字幕乱码亚洲精品一区| 精品国产乱码久久久久久1区2区| 69av一区二区三区| 欧美日韩精品一区二区三区蜜桃| 91蜜桃视频在线| 97久久精品人人爽人人爽蜜臀| 国产成人免费视频一区| 国产一区二区三区黄视频 | 国产精品久久久久久亚洲毛片| 2020国产精品| 精品成人私密视频| 欧美国产综合一区二区| 欧美精品一区二区三区很污很色的| 欧美三级午夜理伦三级中视频| 色综合视频在线观看| 成人av小说网| 不卡一区在线观看| 99精品视频一区二区| 91在线视频18| 91麻豆成人久久精品二区三区| av中文字幕一区| 色欧美片视频在线观看| 在线观看国产91| 欧美日韩精品欧美日韩精品 | 成人免费看片app下载| 成人免费观看视频| 成人黄色777网| 97精品视频在线观看自产线路二| 一本到高清视频免费精品| 色婷婷亚洲婷婷| 欧美三级电影一区| 91精品黄色片免费大全| 精品国产91亚洲一区二区三区婷婷| 精品国产一区二区三区av性色| 久久综合久久综合久久综合| 国产日韩v精品一区二区| 国产精品不卡视频| 亚洲永久免费视频| 久久国产精品免费| 成人动漫中文字幕| 欧美无乱码久久久免费午夜一区| 日韩欧美亚洲一区二区| 久久精品视频在线免费观看| 一区二区中文字幕在线| 亚洲一区二区三区爽爽爽爽爽| 热久久久久久久| 国产不卡视频一区| 欧美三级中文字| 久久久国际精品| 一区二区三区久久久| 麻豆精品久久精品色综合| 高清视频一区二区| 欧美绝品在线观看成人午夜影视| 精品久久久影院| 一区二区三区四区视频精品免费 | 国产一区二区0| 欧美又粗又大又爽| 精品国产免费视频| 亚洲自拍都市欧美小说| 国产一区二区三区四区五区美女| 色噜噜久久综合| 久久综合色一综合色88| 亚洲午夜在线视频| 成人免费看的视频| 精品嫩草影院久久| 韩国精品主播一区二区在线观看 | 日韩高清电影一区| 99国产精品一区| 精品蜜桃在线看| 亚洲高清视频在线| 成人网在线播放| 日韩一区国产二区欧美三区| 亚洲视频综合在线| 国产一区二区伦理| 678五月天丁香亚洲综合网| 自拍偷拍欧美精品| 国产成a人无v码亚洲福利| 欧美一区二区在线视频| 夜夜操天天操亚洲| 99re成人精品视频| 欧美高清一级片在线观看| 免费观看在线综合色| 欧美在线制服丝袜| 综合av第一页| www.亚洲色图.com| 国产丝袜在线精品| 国产尤物一区二区在线 | 欧美成人a在线| 视频一区视频二区中文| 91福利视频网站| 亚洲精品成人在线| 99re亚洲国产精品| 亚洲色图在线播放| 99久久久国产精品免费蜜臀| 国产精品免费av| 成人午夜精品一区二区三区| 久久久久久99精品| 国产酒店精品激情| 国产三级精品三级在线专区| 极品瑜伽女神91| 久久综合久久99| 国产米奇在线777精品观看| 日韩免费成人网| 久久精工是国产品牌吗| 欧美成人一区二区三区| 狠狠网亚洲精品| 久久久久久一级片| 国产成人午夜精品影院观看视频| 久久久久国产精品人| 国产精品99久久久久久有的能看| 久久女同性恋中文字幕| 国产ts人妖一区二区| 国产精品网站在线| 91丨国产丨九色丨pron| 亚洲免费在线观看| 欧美午夜不卡视频| 青青草精品视频| 久久久天堂av| fc2成人免费人成在线观看播放| 国产精品九色蝌蚪自拍| 色视频欧美一区二区三区| 亚洲午夜久久久久久久久电影网 | xfplay精品久久| 国产成人h网站| 亚洲欧洲日韩综合一区二区| 色哟哟精品一区| 日韩精品电影一区亚洲| 日韩欧美在线一区二区三区| 激情久久五月天| 中文字幕在线一区| 欧美日韩亚洲综合一区二区三区| 全部av―极品视觉盛宴亚洲| 久久亚洲一级片| 色婷婷av一区二区| 美女脱光内衣内裤视频久久影院| 国产性色一区二区| 精品视频一区 二区 三区|