亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? zm.c

?? 支持ZModem協(xié)議的串口通訊程序
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* *   Z M . C *    Copyright 1994 Omen Technology Inc All Rights Reserved *    ZMODEM protocol primitives * * Entry point Functions: *	zsbhdr(type, hdr) send binary header *	zshhdr(type, hdr) send hex header *	zgethdr(hdr) receive header - binary or hex *	zsdata(buf, len, frameend) send data *	zrdata(buf, len) receive data *	stohdr(pos) store position data in Txhdr *	long rclhdr(hdr) recover position offset from header *  * *	This version implements numerous enhancements including ZMODEM *	Run Length Encoding and variable length headers.  These *	features were not funded by the original Telenet development *	contract. *  *  This software may be freely used for educational (didactic *  only) purposes.  This software may also be freely used to *  support file transfer operations to or from licensed Omen *  Technology products.  Use with other commercial or shareware *  programs (Crosstalk, Procomm, etc.) REQUIRES REGISTRATION. * *  Any programs which use part or all of this software must be *  provided in source form with this notice intact except by *  written permission from Omen Technology Incorporated. *  * Use of this software for commercial or administrative purposes * except when exclusively limited to interfacing Omen Technology * products requires a per port license payment of $20.00 US per * port (less in quantity).  Use of this code by inclusion, * decompilation, reverse engineering or any other means * constitutes agreement to these conditions and acceptance of * liability to license the materials and payment of reasonable * legal costs necessary to enforce this license agreement. * * *		Omen Technology Inc *		Post Office Box 4681 *		Portland OR 97208 * *	This code is made available in the hope it will be useful, *	BUT WITHOUT ANY WARRANTY OF ANY KIND OR LIABILITY FOR ANY *	DAMAGES OF ANY KIND. * */#ifndef CANFDX#include "zmodem.h"int Rxtimeout = 100;		/* Tenths of seconds to wait for something */#endif/* Globals used by ZMODEM functions */int Rxframeind;		/* ZBIN ZBIN32, or ZHEX type of frame */int Rxtype;		/* Type of header received */int Rxhlen;		/* Length of header received */int Rxcount;		/* Count of data bytes received */char Rxhdr[ZMAXHLEN];	/* Received header */char Txhdr[ZMAXHLEN];	/* Transmitted header */long Rxpos;		/* Received file position */long Txpos;		/* Transmitted file position */int Txfcs32;		/* TURE means send binary frames with 32 bit FCS */int Crc32t;		/* Controls 32 bit CRC being sent */			/* 1 == CRC32,  2 == CRC32 + RLE */int Crc32r;		/* Indicates/controls 32 bit CRC being received */			/* 0 == CRC16,  1 == CRC32,  2 == CRC32 + RLE */int Usevhdrs;		/* Use variable length headers */int Znulls;		/* Number of nulls to send at beginning of ZDATA hdr */char Attn[ZATTNLEN+1];	/* Attention string rx sends to tx on err */char *Altcan;		/* Alternate canit string */static lastsent;	/* Last char we sent */static char *frametypes[] = {	"No Response to Error Correction Request",	/* -4 */	"No Carrier Detect",		/* -3 */	"TIMEOUT",		/* -2 */	"ERROR",		/* -1 */#define FTOFFSET 4	"ZRQINIT",	"ZRINIT",	"ZSINIT",	"ZACK",	"ZFILE",	"ZSKIP",	"ZNAK",	"ZABORT",	"ZFIN",	"ZRPOS",	"ZDATA",	"ZEOF",	"ZFERR",	"ZCRC",	"ZCHALLENGE",	"ZCOMPL",	"ZCAN",	"ZFREECNT",	"ZCOMMAND",	"ZSTDERR",	"xxxxx"#define FRTYPES 22	/* Total number of frame types in this array */			/*  not including psuedo negative entries */};static char badcrc[] = "Bad CRC";/* Send ZMODEM binary header hdr of type type */zsbhdr(len, type, hdr)register char *hdr;{	register int n;	register unsigned short crc;#ifndef DSZ	vfile("zsbhdr: %c %d %s %lx", Usevhdrs?'v':'f', len,	  frametypes[type+FTOFFSET], rclhdr(hdr));#endif	if (type == ZDATA)		for (n = Znulls; --n >=0; )			xsendline(0);	xsendline(ZPAD); xsendline(ZDLE);	switch (Crc32t=Txfcs32) {	case 2:		zsbh32(len, hdr, type, Usevhdrs?ZVBINR32:ZBINR32);		flushmo();  break;	case 1:		zsbh32(len, hdr, type, Usevhdrs?ZVBIN32:ZBIN32);  break;	default:		if (Usevhdrs) {			xsendline(ZVBIN);			zsendline(len);		}		else			xsendline(ZBIN);		zsendline(type);		crc = updcrc(type, 0);		for (n=len; --n >= 0; ++hdr) {			zsendline(*hdr);			crc = updcrc((0377& *hdr), crc);		}		crc = updcrc(0,updcrc(0,crc));		zsendline(crc>>8);		zsendline(crc);	}	if (type != ZDATA)		flushmo();}/* Send ZMODEM binary header hdr of type type */zsbh32(len, hdr, type, flavour)register char *hdr;{	register int n;	register unsigned long crc;	xsendline(flavour); 	if (Usevhdrs) 		zsendline(len);	zsendline(type);	crc = 0xFFFFFFFFL; crc = UPDC32(type, crc);	for (n=len; --n >= 0; ++hdr) {		crc = UPDC32((0377 & *hdr), crc);		zsendline(*hdr);	}	crc = ~crc;	for (n=4; --n >= 0;) {		zsendline((int)crc);		crc >>= 8;	}}/* Send ZMODEM HEX header hdr of type type */zshhdr(len, type, hdr)register char *hdr;{	register int n;	register unsigned short crc;#ifndef DSZ	vfile("zshhdr: %c %d %s %lx", Usevhdrs?'v':'f', len,	  frametypes[type+FTOFFSET], rclhdr(hdr));#endif	sendline(ZPAD); sendline(ZPAD); sendline(ZDLE);	if (Usevhdrs) {		sendline(ZVHEX);		zputhex(len);	}	else		sendline(ZHEX);	zputhex(type);	Crc32t = 0;	crc = updcrc(type, 0);	for (n=len; --n >= 0; ++hdr) {		zputhex(*hdr); crc = updcrc((0377 & *hdr), crc);	}	crc = updcrc(0,updcrc(0,crc));	zputhex(crc>>8); zputhex(crc);	/* Make it printable on remote machine */	sendline(015); sendline(0212);	/*	 * Uncork the remote in case a fake XOFF has stopped data flow	 */	if (type != ZFIN && type != ZACK)		sendline(021);	flushmo();}/* * Send binary array buf of length length, with ending ZDLE sequence frameend */static char *Zendnames[] = { "ZCRCE", "ZCRCG", "ZCRCQ", "ZCRCW"};zsdata(buf, length, frameend)register char *buf;{	register unsigned short crc;#ifndef DSZ	vfile("zsdata: %d %s", length, Zendnames[frameend-ZCRCE&3]);#endif	switch (Crc32t) {	case 1:		zsda32(buf, length, frameend);  break;	case 2:		zsdar32(buf, length, frameend);  break;	default:		crc = 0;		for (;--length >= 0; ++buf) {			zsendline(*buf); crc = updcrc((0377 & *buf), crc);		}		xsendline(ZDLE); xsendline(frameend);		crc = updcrc(frameend, crc);		crc = updcrc(0,updcrc(0,crc));		zsendline(crc>>8); zsendline(crc);	}	if (frameend == ZCRCW)		xsendline(XON);	if (frameend != ZCRCG)		flushmo();}zsda32(buf, length, frameend)register char *buf;{	register int c;	register unsigned long crc;	crc = 0xFFFFFFFFL;	for (;--length >= 0; ++buf) {		c = *buf & 0377;		if (c & 0140)			xsendline(lastsent = c);		else			zsendline(c);		crc = UPDC32(c, crc);	}	xsendline(ZDLE); xsendline(frameend);	crc = UPDC32(frameend, crc);	crc = ~crc;	for (c=4; --c >= 0;) {		zsendline((int)crc);  crc >>= 8;	}}/* * Receive array buf of max length with ending ZDLE sequence *  and CRC.  Returns the ending character or error code. *  NB: On errors may store length+1 bytes! */zrdata(buf, length)register char *buf;{	register int c;	register unsigned short crc;	register char *end;	register int d;	switch (Crc32r) {	case 1:		return zrdat32(buf, length);	case 2:		return zrdatr32(buf, length);	}	crc = Rxcount = 0;  end = buf + length;	while (buf <= end) {		if ((c = zdlread()) & ~0377) {crcfoo:			switch (c) {			case GOTCRCE:			case GOTCRCG:			case GOTCRCQ:			case GOTCRCW:				crc = updcrc((d=c)&0377, crc);				if ((c = zdlread()) & ~0377)					goto crcfoo;				crc = updcrc(c, crc);				if ((c = zdlread()) & ~0377)					goto crcfoo;				crc = updcrc(c, crc);				if (crc & 0xFFFF) {					zperr(badcrc);					return ERROR;				}				Rxcount = length - (end - buf);#ifndef DSZ				vfile("zrdata: %d  %s", Rxcount,				 Zendnames[d-GOTCRCE&3]);#endif				return d;			case GOTCAN:				zperr("Sender Canceled");				return ZCAN;			case TIMEOUT:				zperr("TIMEOUT");				return c;			default:				garbitch(); return c;			}		}		*buf++ = c;		crc = updcrc(c, crc);	}#ifdef DSZ	garbitch(); #else	zperr("Data subpacket too long");#endif	return ERROR;}zrdat32(buf, length)register char *buf;{	register int c;	register unsigned long crc;	register char *end;	register int d;	crc = 0xFFFFFFFFL;  Rxcount = 0;  end = buf + length;	while (buf <= end) {		if ((c = zdlread()) & ~0377) {crcfoo:			switch (c) {			case GOTCRCE:			case GOTCRCG:			case GOTCRCQ:			case GOTCRCW:				d = c;  c &= 0377;				crc = UPDC32(c, crc);				if ((c = zdlread()) & ~0377)					goto crcfoo;				crc = UPDC32(c, crc);				if ((c = zdlread()) & ~0377)					goto crcfoo;				crc = UPDC32(c, crc);				if ((c = zdlread()) & ~0377)					goto crcfoo;				crc = UPDC32(c, crc);				if ((c = zdlread()) & ~0377)					goto crcfoo;				crc = UPDC32(c, crc);				if (crc != 0xDEBB20E3) {					zperr(badcrc);					return ERROR;				}				Rxcount = length - (end - buf);#ifndef DSZ				vfile("zrdat32: %d %s", Rxcount,				 Zendnames[d-GOTCRCE&3]);#endif				return d;			case GOTCAN:				zperr("Sender Canceled");				return ZCAN;			case TIMEOUT:				zperr("TIMEOUT");				return c;			default:				garbitch(); return c;			}		}		*buf++ = c;		crc = UPDC32(c, crc);	}	zperr("Data subpacket too long");	return ERROR;}garbitch(){	zperr("Garbled data subpacket");}/* * Read a ZMODEM header to hdr, either binary or hex. * *   Set Rxhlen to size of header (default 4) (valid iff good hdr) *  On success, set Zmodem to 1, set Rxpos and return type of header. *   Otherwise return negative on error. *   Return ERROR instantly if ZCRCW sequence, for fast error recovery. */zgethdr(hdr)char *hdr;{	register int c, n, cancount;	n = Zrwindow + Effbaud;		/* Max bytes before start of frame */	Rxframeind = Rxtype = 0;startover:	cancount = 5;again:	/* Return immediate ERROR if ZCRCW sequence seen */	switch (c = readline(Rxtimeout)) {	case 021: case 0221:		goto again;	case RCDO:	case TIMEOUT:		goto fifi;	case CAN:gotcan:		if (--cancount <= 0) {			c = ZCAN; goto fifi;		}		switch (c = readline(Rxtimeout)) {		case TIMEOUT:			goto again;		case ZCRCW:			switch (readline(Rxtimeout)) {

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产首页在线观看| 一区二区三区在线播| 久久综合色之久久综合| 久久影院午夜片一区| 国产精品久久久久久久久久久免费看 | 成人国产精品免费观看| 色综合一个色综合| 777色狠狠一区二区三区| 26uuu亚洲| 一区二区三区波多野结衣在线观看| 亚洲成人资源网| 国产一区二区精品久久99| aaa亚洲精品| 欧美一级黄色片| 综合久久一区二区三区| 日韩国产精品久久| jvid福利写真一区二区三区| 欧美另类z0zxhd电影| 国产婷婷精品av在线| 亚洲一线二线三线视频| 日韩av一级片| 91在线视频免费观看| 欧美日韩精品高清| 精品国产不卡一区二区三区| 亚洲视频免费在线| 精品夜夜嗨av一区二区三区| 在线视频你懂得一区二区三区| 欧美精品一区二区三区在线| 最新中文字幕一区二区三区| 久久91精品国产91久久小草| 在线欧美小视频| 国产喂奶挤奶一区二区三区| 视频一区中文字幕| 91在线视频网址| 国产欧美精品国产国产专区| 日韩中文字幕区一区有砖一区 | 日韩一区二区在线看| 1024成人网色www| 国产乱国产乱300精品| 欧美日韩精品欧美日韩精品 | 91视频.com| 日韩三级在线免费观看| 亚洲精品乱码久久久久久黑人| 国产一区在线视频| 欧美在线视频全部完| 国产三级精品三级在线专区| 日本不卡免费在线视频| 91久久精品网| 中文字幕av在线一区二区三区| 久久精品国产成人一区二区三区| 欧美中文字幕不卡| **性色生活片久久毛片| 福利电影一区二区| 久久免费视频一区| 蜜桃免费网站一区二区三区| 欧美日韩精品免费| 亚洲色图一区二区| 97久久超碰国产精品电影| 国产欧美精品一区二区色综合朱莉| 激情欧美一区二区三区在线观看| 欧美电影在哪看比较好| 亚洲成人激情综合网| 91蝌蚪国产九色| 中文字幕一区二区日韩精品绯色| 国产一区二区三区四| 日韩精品一区二区三区在线观看| 水蜜桃久久夜色精品一区的特点| 色94色欧美sute亚洲线路一ni| 亚洲欧洲精品一区二区精品久久久 | 日本丶国产丶欧美色综合| 中文字幕人成不卡一区| 国产69精品久久99不卡| 国产欧美一区二区三区鸳鸯浴| 国产最新精品免费| 久久久久久电影| 精品夜夜嗨av一区二区三区| 精品久久一二三区| 国产一区二区三区在线看麻豆| 日韩精品一区二区三区视频在线观看| 亚洲成av人在线观看| 色婷婷久久一区二区三区麻豆| 亚洲手机成人高清视频| 91老师国产黑色丝袜在线| 一区二区三区高清不卡| 欧美性猛交xxxx乱大交退制版| 亚洲国产视频直播| 欧美一区二区三区小说| 美女网站视频久久| 2024国产精品| www.欧美亚洲| 亚洲自拍另类综合| 欧美日韩在线观看一区二区 | 欧美日韩五月天| 日韩精品成人一区二区三区 | 美女高潮久久久| 久久久亚洲精品石原莉奈| 成人一道本在线| 亚洲另类春色校园小说| 欧美日韩国产片| 麻豆成人久久精品二区三区小说| 欧美一级xxx| 国产白丝精品91爽爽久久| 国产精品你懂的| 欧洲色大大久久| 美女视频黄a大片欧美| 久久久精品国产免大香伊| 成人免费看视频| 亚洲成av人片| 久久精品亚洲精品国产欧美| 99久久伊人网影院| 亚洲 欧美综合在线网络| 777午夜精品视频在线播放| 国内国产精品久久| 亚洲色图欧美偷拍| 欧美一级免费观看| 国产精品18久久久久久久网站| 日韩一区日韩二区| 日韩欧美国产1| 成人app在线| 日本不卡视频一二三区| 国产精品乱码一区二区三区软件| 在线观看国产91| 国产精品一区专区| 一卡二卡三卡日韩欧美| 欧美一区二区三区电影| 国产成人在线影院| 五月婷婷另类国产| 国产精品欧美一级免费| 欧美剧在线免费观看网站| 国产91露脸合集magnet| 亚洲国产精品一区二区www| 精品处破学生在线二十三| 日本道色综合久久| 韩国午夜理伦三级不卡影院| 一区二区三区日韩在线观看| 日韩精品一区二区三区中文不卡| 国产suv精品一区二区三区| 成人免费在线播放视频| 亚洲精品一线二线三线无人区| 日本国产一区二区| 国产精品66部| 蜜桃视频在线一区| 亚洲无线码一区二区三区| 欧美精品一区二区在线观看| 在线观看日产精品| www.一区二区| 国产成人免费av在线| 日日夜夜精品视频免费| 亚洲欧洲美洲综合色网| 国产婷婷精品av在线| 欧美精品在线视频| 色婷婷综合五月| 成人美女在线观看| 国产九色sp调教91| 麻豆91小视频| 一级精品视频在线观看宜春院| 欧美激情一区二区三区| 欧美大片一区二区| 欧美精品三级日韩久久| 色香蕉久久蜜桃| 国产suv精品一区二区883| 国产一区二区免费视频| 老鸭窝一区二区久久精品| 亚洲一区在线观看免费观看电影高清| 国产精品久久久久久亚洲伦| 精品国产免费一区二区三区四区| 欧美另类videos死尸| 在线看日韩精品电影| 91在线云播放| k8久久久一区二区三区| 不卡一二三区首页| 成人精品视频一区二区三区尤物| 韩国中文字幕2020精品| 精品一区二区三区在线视频| 免费在线观看不卡| 亚洲 欧美综合在线网络| 亚洲bt欧美bt精品| 亚洲影视在线观看| 一区二区三区精品| 亚洲精品综合在线| 亚洲免费在线电影| 一片黄亚洲嫩模| 亚洲一区在线看| 亚洲成va人在线观看| 三级影片在线观看欧美日韩一区二区| 亚洲一区二区三区四区在线观看| 亚洲女人****多毛耸耸8| 亚洲色图在线播放| 亚洲香肠在线观看| 亚洲高清久久久| 日韩和欧美一区二区三区| 丝袜美腿亚洲一区二区图片| 亚洲不卡在线观看| 麻豆国产欧美一区二区三区| 国内精品国产三级国产a久久| 男女男精品视频网| 国产真实乱子伦精品视频| 国产精品一区2区| 国产精品91一区二区| 波多野结衣亚洲|