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

📄 mnpevent.c

📁 根据MICROCOM网络协议进行网络开发的C语言程序库
💻 C
字号:

/*GLOBAL********************************************************************

	_event_wait - wait for event or timeout

***************************************************************************/

#include <dos.h>
#include <mnpdat.h>

extern USIGN_16 frame_snt,
	frame_rcvd,
	frame_dne;

SIGN_16 event_wait(time,flag)

USIGN_16 time,
	flag;
{

register USIGN_16 i;

i = 0;
time -= 2;		/* to offset overhead in this routine */
				/* 2/10 of a second - just an estimate */

switch (flag)
	{
	
	case FRAME_SND:
		if (frame_snt)
			{
			frame_snt = FALSE;
			break;
			}
		set_int();
		for (;(frame_snt == FALSE) && (i <= time); i++)
			{
			suspend (1);
			if (lne_stat())
				return (NO_PHYSICAL);
			}
		if (frame_snt)
			{
			frame_snt = FALSE;
			return(SUCCESS);
			}
		else
			return(TIME_OUT);

	case FRAME_RCV:
		if (frame_rcvd)
			{
			frame_rcvd = FALSE;
			break;
			}
		set_int();
		for (;(frame_rcvd == FALSE) && (i <=time); i++)
			{
			suspend(1);
			if (lne_stat())
				return (NO_PHYSICAL);
			}
		if (frame_rcvd)
			{
			frame_rcvd = FALSE;
			return(SUCCESS);
			}
		else
			return(TIME_OUT);

	case FRAME_DN:
		if (frame_dne)
			{
			frame_dne = FALSE;
			break;
			}
		set_int();
		for (;(frame_dne == FALSE) && (i <= time); i++)
			{
			suspend (1);
			if (lne_stat())
				return (NO_PHYSICAL);
			}
		if (frame_dne)
			{
			frame_dne = FALSE;
			return(SUCCESS);
			}
		else
			return(TIME_OUT);

	default:
		set_int();
		return(FAILURE);
	}

set_int();
return(SUCCESS);

}

⌨️ 快捷键说明

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