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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? keywatch.c

?? 匯編源代碼大全
?? C
字號(hào):
/* keywatch.c 12-29-91 Robert Mashlan, Public Domain                *\

   DOS compiler portability modifications added by Bob Stout,
   1:106/2000.6

   This program monitors the keyboard interrupt, and stores the
   status of each key as to whether it is pressed or released.

   This is done by capturing interrupt 9, and watching the make/break
   codes.  The status is updated in the keys array, where 1 means
   that the key is pressed, while 0 means the key is released.  The
   key array is uses the scan code for an index instead of the ascii
   character.  It is simple enough to find the scan code for a key,
   just run this program and watch the display.

   The ekeys array will reflect the status of keys found on an AT
   keyboard.  For instance, the left and right alt keys are
   differentiated, as well as the edit control keys on the numeric
   keypad and the one not on the numeric keypad.

   Since this program installs an interrupt handler, it should be
   terminated normally, such the keyboard handler can be removed.
   The ^C/^Break exit is captured via signal(), but all possible
   exits should be trapped.

\*                                                                  */

#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <signal.h>

#define BYTE unsigned char
#if defined(__TURBOC__)
 #define _interrupt interrupt
 #define _far far
 #define IN_PORT(port)           inportb(port)
 #define IN_PORTW(port)          inport(port)
 #define OUT_PORT(port, val)     outportb(port, val)
 #define OUT_PORTW(port, val)    outport(port, val)
#else
 #if defined(__ZTC__)
  #include <int.h>
 #else /* MSC, QC, Watcom */
  #define getvect(n) _dos_getvect(n)
  #define setvect(n,v) _dos_setvect(n,v)
 #endif
 #define IN_PORT(port)           inp(port)
 #define IN_PORTW(port)          inpw(port)
 #define OUT_PORT(port, val)     outp(port, val)
 #define OUT_PORTW(port, val)    outpw(port, val)
#endif

volatile char keys[128];           /* array of key states           */
volatile char ekeys[128];          /* array of AT key states        */

#define KEYPORT        0x60        /* keyboard scan code port       */
#define keyport()      IN_PORT(KEYPORT)
        /* macro that returns the scancode of the key that caused   */
        /* the interrupt                                            */

/* Define:                                                          *\

   installisr()
         installation macro, installs newkbisr() in the keyboard
         interrupt chain

   removeisr()
         removal macro, call to remove newkbisr() from interrupt
         chain.  oldkbisr()  must be removed before program ends
\*                                                                  */

#ifdef __ZTC__
 #define installisr() int_intercept(0x09, newkbisr, 0)
 #define removeisr()  int_restore(0x09);
#else
 #define installisr()  (oldkbisr=getvect(0x09),setvect(0x09,newkbisr))
 #define removeisr()   setvect(0x09,oldkbisr)
 #ifdef __TURBOC__
  void _interrupt (_far *oldkbisr)(void);    /* address of old ISR   */
 #else
  void (_interrupt _far *oldkbisr)(void);    /* address of old ISR   */
 #endif
#endif

#ifdef __ZTC__
 int newkbisr(struct INT_DATA *pd)
#elif defined(__TURBOC__)
 void _interrupt newkbisr(void)
#else
 void _interrupt _far newkbisr(void)
#endif
{
      static extkey;
      BYTE scancode = (BYTE)keyport();         /* read keyboard scan code */

      if (scancode == 0xe0)
            extkey = 1;               /* use ekey array on next scan code */
      else
      {
            if (scancode & 0x80)                          /* key released */
                  (extkey ? ekeys : keys)[scancode & 0x7f] = 0;
            else  (extkey ? ekeys : keys)[scancode] = 1;
            extkey = 0;
      }

#ifdef __ZTC__
      return 0;                         /* chain to previous keyboard ISR */
#else
      oldkbisr();                       /* chain to previous keyboard ISR */
#endif
}

int keyspressed(void)           /* returns number of keys being held down */
{
      int i, result = 0;

      for (i = 0; i < 128; i++)
      {
            result += keys[i];
            result += ekeys[i];
      }
      return result;
}

int main(void)
{
      int lastkeycount = 0;

      signal(SIGINT,SIG_IGN);  /* ingnore ^C and ^Break */
      installisr();            /* install interrupt handler */
      while(1)
      {
            int i;

            if (keyspressed() != lastkeycount) /* change in keystatus */
            {
                  lastkeycount = keyspressed();
                  puts("---");
                  for(i = 0; i < 128; i++)
                  {
                        if (keys[i])
                              printf("key with scan code %02x "
                                    "has been pressed\n", i);
                        if (ekeys[i])
                              printf("key with scan codes e0 %02x "
                                    "had been pressed\n", i);
                  }
            }
            if (kbhit() && getch()==0x1b) /* terminate when Esc pressed */
                  break;
      }
      removeisr();   /* remove interrupt handler */
      return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费高清在线| 风流少妇一区二区| 国产精品网友自拍| 精品视频在线视频| 国产一区二区三区av电影| 亚洲摸摸操操av| ww久久中文字幕| 欧美日韩久久不卡| 99久久精品免费看| 国模娜娜一区二区三区| 亚洲va欧美va人人爽午夜| 中文字幕高清一区| 日韩免费高清电影| 欧美日韩性生活| 色综合久久久久综合体| 国产二区国产一区在线观看| 日本中文在线一区| 亚洲福利视频一区| 亚洲精品国产成人久久av盗摄 | 国产综合色在线视频区| 亚洲综合免费观看高清完整版在线| 精品成人在线观看| 91精品国产91久久久久久最新毛片| 色综合中文字幕国产 | 在线欧美一区二区| 91视频.com| 成人精品电影在线观看| 韩日精品视频一区| 精品亚洲porn| 九色综合国产一区二区三区| 日韩精品亚洲专区| 天天色图综合网| 亚洲丰满少妇videoshd| 亚洲二区在线视频| 亚洲国产视频一区| 亚洲第一搞黄网站| 亚洲国产婷婷综合在线精品| 亚洲第一福利视频在线| 亚洲国产精品一区二区久久恐怖片| 亚洲嫩草精品久久| 一区二区三区免费看视频| 亚洲欧美另类小说| 亚洲综合自拍偷拍| 性感美女久久精品| 日韩va欧美va亚洲va久久| 日韩高清欧美激情| 日本不卡免费在线视频| 美女网站视频久久| 国产一区二区三区蝌蚪| 国产精品夜夜爽| 成人h精品动漫一区二区三区| 懂色av一区二区三区蜜臀| 成人午夜电影久久影院| av在线不卡电影| 色香蕉成人二区免费| 欧美综合一区二区| 91精品国产91久久综合桃花| 日韩精品一区二区在线观看| 亚洲精品一区二区三区在线观看| 久久精品日韩一区二区三区| 中文字幕不卡一区| 一区二区三区小说| 日韩精品五月天| 国产一区二区视频在线| www.成人网.com| 欧美三级三级三级爽爽爽| 日韩欧美中文字幕精品| 国产拍欧美日韩视频二区| 国产精品久久国产精麻豆99网站| 亚洲乱码中文字幕| 亚洲成av人片在线观看| 精品系列免费在线观看| 波多野结衣的一区二区三区| 欧美亚洲综合在线| 精品国产一区二区三区忘忧草| 欧美国产激情二区三区| 亚洲 欧美综合在线网络| 国产乱淫av一区二区三区| 一本一本久久a久久精品综合麻豆| 欧美性感一区二区三区| 久久一二三国产| 亚洲精品成人a在线观看| 日本在线播放一区二区三区| 从欧美一区二区三区| 欧美三级电影网站| 国产日本欧美一区二区| 午夜久久久影院| 成人夜色视频网站在线观看| 欧美日韩国产天堂| 久久综合久色欧美综合狠狠| 亚洲免费观看高清完整版在线观看| 蜜臀精品久久久久久蜜臀| av午夜精品一区二区三区| 日韩视频不卡中文| 亚洲男女一区二区三区| 国产一区二区按摩在线观看| 欧美三级中文字幕在线观看| 国产日韩v精品一区二区| 日韩黄色免费电影| 91丨国产丨九色丨pron| 日韩你懂的电影在线观看| 亚洲欧美区自拍先锋| 国产呦萝稀缺另类资源| 欧美精品粉嫩高潮一区二区| 亚洲少妇中出一区| 国产精品1024久久| 日韩区在线观看| 亚洲国产中文字幕在线视频综合 | 色吧成人激情小说| 国产喂奶挤奶一区二区三区| 日韩黄色免费网站| 欧美日韩国产综合久久 | 亚洲图片另类小说| 国产一区二区三区免费观看| 91精品婷婷国产综合久久竹菊| 亚洲免费观看高清完整版在线| 高清视频一区二区| 久久亚洲一区二区三区明星换脸 | 日韩精品福利网| 欧美色综合网站| 亚洲精品日日夜夜| 成人黄色大片在线观看| 久久九九久精品国产免费直播| 日av在线不卡| 精品视频一区二区三区免费| 一区二区三区在线视频播放| proumb性欧美在线观看| 久久久久久久网| 国内精品久久久久影院薰衣草 | 国内一区二区视频| 7777精品伊人久久久大香线蕉完整版 | 久久久久久久久久美女| 看电视剧不卡顿的网站| 在线播放日韩导航| 日日骚欧美日韩| 在线成人av影院| 日本免费新一区视频| 884aa四虎影成人精品一区| 日韩不卡一二三区| 欧美mv和日韩mv国产网站| 美日韩一区二区| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美亚州韩日在线看免费版国语版| 最新成人av在线| 一本大道久久a久久精品综合| 日韩美女精品在线| 欧美图片一区二区三区| 五月天丁香久久| 日韩一区二区电影网| 久久97超碰色| 久久久久久久久久久久久女国产乱| 国产美女精品在线| 国产精品第五页| 在线看日本不卡| 日韩精品久久久久久| 精品国一区二区三区| 国产成人高清在线| 亚洲日本va午夜在线影院| 欧洲一区二区三区在线| 日韩福利电影在线观看| 欧美不卡激情三级在线观看| 毛片av一区二区| 国产欧美久久久精品影院| 9色porny自拍视频一区二区| 一区二区三区精品视频| 91精品福利在线一区二区三区 | 国产亚洲福利社区一区| av亚洲精华国产精华精华| 亚洲成人av资源| 精品国产免费人成电影在线观看四季 | 国产精品无人区| 欧美亚洲综合一区| 国产在线精品视频| 亚洲天堂福利av| 欧美一级高清大全免费观看| 国产精品1区二区.| 亚洲一区二区三区四区在线免费观看| 欧美一区二区视频网站| 岛国av在线一区| 午夜欧美2019年伦理| 国产欧美综合在线观看第十页| 欧美性大战xxxxx久久久| 国产精一品亚洲二区在线视频| 亚洲视频香蕉人妖| 精品欧美一区二区三区精品久久| 成人激情免费视频| 欧美aaaaaa午夜精品| 亚洲欧洲av一区二区三区久久| 欧美裸体一区二区三区| 成人中文字幕电影| 蜜桃久久精品一区二区| 亚洲欧美一区二区三区极速播放| 日韩一级片在线播放| 色综合久久中文综合久久牛| 精品影视av免费| 亚洲成人av福利| 国产精品久99| 久久综合网色—综合色88| 欧美日韩精品免费观看视频| 成人小视频在线|