📄 8-10.c
字号:
#include"stdio.h"
#include"dos.h"
#include"time.h"
void interrupt (*oldint_1C)();
int i=0,key=65,count=0;
void LocateCur(int x,int y)
{
_AH=2; /*功能号为2*/
_DH=x; /*定位行号为x*/
_DL=y; /*定位列号为y*/
_BH=0; /*BH置0*/
geninterrupt(0x10); /*产生10H号中断*/
}
void show(int key) /*调用0x10号中断,显示ASCII码值key对应的字符*/
{
_AH=14;
_AL=key;
geninterrupt(0x10);
}
void interrupt newint_1C() /*定义新的0x1C号中断函数*/
{
count++;
if(count==18) /*如果产生了18次时钟中断,则认为间隔了1秒钟*/
{
count=0;
if(i==0) /*在程序刚开始运行时清屏*/
clrscr();
LocateCur(10,i); /*定位光标*/
show(key); /*显示key所对应的字符*/
if(key>=91) /*如果key值等于91,表示当前显示字符为'Z'*/
{/*如果已经显示到了字母'Z',则清屏后光标重新回到行首来显示字母'A'*/
clrscr();
key=65;
i=0;
}
else
{
key++;
i++;
}
}
if(inportb(0x60)==0x39) /*如果按下了"Space"键*/
setvect(0x1c,oldint_1C); /*则将原0x1C号中断向量值重新放回中断向量表*/
(*oldint_1C)(); /*调用原0x1C号中断程序*/
}
main()
{
oldint_1C=getvect(0x1C); /*首先取得原来的0x1c号中断向量值*/
setvect(0x1C,newint_1C);
/*将指向用户定义的新中断函数的指针放入中断向量表的0x1C号中断处*/
keep(0,255); /*退出程序运行,返回DOS下,并使程序驻留在内存*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -