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

📄 genie.c

📁 ZMODEM协议的实现
💻 C
字号:
/* * *  Rev 5-25-89 *  This file contains GEnie specific code for setting terminal modes, *  very little is specific to ZMODEM or YMODEM per se (that code is in *  sz.c and rz.c).  The CRC-16 routines used by XMODEM, YMODEM, and ZMODEM *  are also in this file, a fast table driven macro version * *   This file is #included so the main file can set parameters such as HOWMANY. *   See the main file rz.c for compile instructions. */#include <string.h>#include <fcntl.h>#define XARGSFILE "/"#define XXSTATIC char Myattn[] = { 0335, 0336, 0336, 0,	 0335, 0336, 0336, 24,24,24,24,24,24,24,24,24,24,13};#define ALTCANOFF 4/*extern unsigned int _fmode = O_BINARY;*//* * return 1 iff stdout and stderr are different devices *  indicating this program operating with a modem on a *  different line */int Fromcu;		/* Were called from cu or yam */from_cu(){	return 0;}cucheck(){}int Twostop;		/* Use two stop bits *//* * mode(n) *  3: save old tty stat, set raw mode with flow control *  2: set XON/XOFF for sb/sz with ZMODEM or YMODEM-g *  1: save old tty stat, set raw mode  *  0: restore original tty mode */mode(n){	static did0 = FALSE;	vfile("mode:%d", n);	switch(n) {	case 2:		/* Un-raw mode used by sz, sb when -g detected */	case 1:	case 3:		did0 = TRUE;		system("set x on");		system("set e off");		system("set t13,10");/*		system("set b3");*/		reset(1);		binary(1); 		/* Assume fd 1 is stdout (not documented in GEnie) */		fcntl(1, F_SETFL,		  ((fcntl(1, F_GETFL, 0)|O_BINARY)& ~O_POST_BREAK));		return OK;	case 0:		if(!did0)			return ERROR;		return OK;	default:		return ERROR;	}}sendbrk(){}/* * readline(timeout) reads character(s) from file descriptor 0 * timeout is in tenths of seconds */readline(timeout){	static char byt[1];	fflush(stdout);	read(0, byt, 1);	return (byt[0]&0377);}flushmo(){	fflush(stdout);}purgeline() {}/* End of genie.c */

⌨️ 快捷键说明

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