⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 键盘.txt

📁 中断
💻 TXT
字号:
#include<stdio.h>
#include<bios.h>
#include<conio.h>

#define ESC 1
#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77

#define NUM_KEYS 4
#define INDEX_UP 0
#define INDEX_DOWN 1
#define INDEX_LEFT 2
#define INDEX_RIGHT 3
char *key_name[NUM_KEYS]={"up","down","left","right"};

int key_scan_code;
int key_table[NUM_KEYS];

void interrupt newhandler()
{
  int status;
  key_scan_code=inp(0x60);
  status=inp(0x61);
  outp(0x61,status&0x80);
  outp(0x61,status);
  outp(0x20,0x20); 
  switch(key_scan_code)
 {
   case UP: key_table[INDEX_UP]=1;break;
   case DOWN: key_table[INDEX_DOWN]=1;break;
   case LEFT: key_table[INDEX_LEFT]=1;break;
   case RIGHT: key_table[INDEX_RIGHT]=1;break;
 }
}
void init_key()
{
  int i;
  for(i=0;i<NUM_KEYS;i++)
   key_table[i]=0;
}
void main()
{
  int i;
  void interrupt(*oldhandler)(void);
  oldhandler=getvect(9);
  setvect(9,newhandler);
 while(key_scan_code!=ESC)
{init_key();
 for(i=0;i<NUM_KEYS;i++)
 {
  if(key_table[i]!=0)
  printf("%s",key_name[i]);
  }
 printf("..");
}
  setvect(9,oldhandler);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -