📄 waitfor.c
字号:
/* A module of ASYNCx.LIB version 1.02 */
#include <ctype.h>
#include <dos.h>
#include "asyncdef.h"
/*************************************************************
Wait for the string pointed to by s to be received on the
specified port. Wait for up to between t and t+1 18ths of a
second for the string to arrive. If mode is 0, the string
must match exactly. If the mode is 1, the case of the
received string may vary from that of the string s points to.
*************************************************************/
int a_waitfor(ASYNC *p,char *s,int t,int mode)
{unsigned long t0,far *t1;
char c,*cp;
if (p)
{cp=s;
t1=(unsigned long far *)MK_FP(0x40,0x6c);
t0=*t1;
while(*cp && (*t1)-t0<=(unsigned long)t)
if (a_icount(p)) /* a character is available from the port */
{c=a_getc(p); /* read the character */
if (mode) /* the case of the character does not matter */
if (toupper(*cp)==toupper(c)) /* this is the right character */
cp++; /* point cp to the next character to look for */
else /* this is not the right character */
cp=s; /* start cp back at the beginning of the string */
else /* the case of the character does matter */
if (*cp==c) /* this is the character I was looking for */
cp++; /* point cp to the next character to look for */
else /* this is not the right character */
cp=s; /* start cp back at the beginning of the string */
}
return (int)(*cp); /* return 0 if the string was found */
}
return -1;
} /* end of a_waitfor(p,s,t,mode) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -