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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zmodem.c

?? vxworks不支持ZMODEM協(xié)議
?? C
?? 第 1 頁 / 共 4 頁
字號:
    iCharHigh = zTimedRead( ); 
    if ( gbTimeOut )
    {
    	return ZZTIMEOUT;
    }
    iCharHigh -= '0';
    if ( iCharHigh > 9 )
    {
    	iCharHigh -= ( 'a' - ':' );
    }
    if ( iCharHigh & 0xf0 )
    {
    	return ZZERROR;
    }
    iCharLow = zTimedRead( );
    if ( gbTimeOut )
    {
    	return ZZTIMEOUT;
    }
    iCharLow -= '0';
    if ( iCharLow > 9 )
    {
    	iCharLow -= ( 'a' - ':' );
    }
    if ( iCharLow & 0xf0 )
    {
    	return ( ZZERROR );
    }
    return ( ( iCharHigh << 4) | iCharLow );
}

/*--------------------------------------------------------------------------*/
/* Z GET HEX HEADER                                                         */
/* Receive a hex style header (type and position)                           */
/*--------------------------------------------------------------------------*/
static int zGetHexHeader( char *pcHdr )
{
	 int iRecChar, iHdrBits; 
	 unsigned short int usCrc;

     if ( ( iRecChar   = zGetHex() ) < 0 ) 
     {
     	 return ( iRecChar );
     }
     giRxType   = iRecChar;
     usCrc      = Z_UpdateCRC( iRecChar, 0 );
     for ( iHdrBits=4; --iHdrBits >= 0; ) 
     {
        if ( ( iRecChar = zGetHex() ) < 0 )
        {
        	return ( iRecChar );
        }	
        usCrc      = Z_UpdateCRC( iRecChar, usCrc );
        *pcHdr++   = iRecChar;
     }
     if ( ( iRecChar = zGetHex() ) < 0 ) 
     {
         return ( iRecChar );
     }
     usCrc = Z_UpdateCRC( iRecChar, usCrc );
     if ( ( iRecChar = zGetHex() ) < 0 ) 
     {
         return ( iRecChar );
     }
     usCrc = Z_UpdateCRC( iRecChar, usCrc );
     if ( usCrc & 0xFFFF )
     {
     	 return ( ZZERROR );                          /*CRC錯誤*/
     }
     iRecChar = zGetByte( 1000 );
     if ( !gbTimeOut ) 
     { 
     	 if ( iRecChar == '\x0d' ) 
     	 {
     	 	 zGetByte( 1000 );                  /*丟棄可能的cr/lf*/
         }
     }
     return ( giRxType );
}


/*--------------------------------------------------------------------------*/
/* Z PULL LONG FROM HEADER                                                  */
/* Recover a long integer from a header                                     */         
/*--------------------------------------------------------------------------*/
static int zPullLongFromHeader( char *pcHdr )
{
    int iPos;

    ipos = pcHdr[ZP3];
    ipos = ( iPos << 8 ) | pcHdr[ZP2];
    ipos = ( iPos << 8 ) | pcHdr[ZP1];
    ipos = ( iPos << 8 ) | pcHdr[ZP0];
    return ( iPos );
}


/*--------------------------------------------------------------------------*/
/* Z LONG TO HEADER                                                         */
/* Store long integer pos in gpcTxhdr                                       */
/*--------------------------------------------------------------------------*/
static void zPutLongIntoHeader( int ipos )
{
  gpcTxhdr[ZP0] = ipos;
  gpcTxhdr[ZP1] = ipos>>8;
  gpcTxhdr[ZP2] = ipos>>16;
  gpcTxhdr[ZP3] = ipos>>24;
}


/*--------------------------------------------------------------------------*/
/* Z GET HEADER                                                             */
/* Read a ZMODEM header to hdr, either binary or hex.                       */
/*   On success, set Zmodem to 1 and return type of header.                 */ 
/*   Otherwise return negative on error                                     */ 
/*--------------------------------------------------------------------------*/
/*將zodem設為1,然后返回header的類型,否則返回negative on error*/

static int zGetHeader( char *pcHdr )                 /* 收一個二進制或十六進制的HEAD */
{ 
	int iRecChar, iMaxChars, iCanCount;
    iMaxChars = 10;                            /* Max characters before start of frame */
    iCanCount = 5;

Again:
    gcRxframeType = giRxType = 0;
    iRecChar   = zTimedRead( );
    if ( gbTimeOut )
    {
    	iRecChar = ZZTIMEOUT;
    }
    switch ( iRecChar )
    {
        case ZPAD:
        	break;                              /*這是我們要求的*/
        case ZZRCDO:
        case ZZTIMEOUT:
        	goto Done;                          /*時間用完*/
        case CAN:
        	if ( --iCanCount <= 0 )
        	{
        		iRecChar = ZCAN;
        	    goto Done;                      /*取消,而不是間斷*/     
        	}
        default:
Agn2:
	    if ( --iMaxChars <= 0 )
	    {
	    	return ( ZCAN );
	    }
        if ( iRecChar != CAN )
        {
        	iCanCount = 5;
        }
        goto Again;
    }
    iCanCount = 5;
Splat:
    iRecChar = zTimedRead( );
    if ( gbTimeOut )
    {
    	iRecChar = ZZTIMEOUT;
    }
    switch ( iRecChar )
    {
        case ZDLE:
        	break;                              /*這是我們要求的*/
        case ZPAD:
        	goto Splat;
        case ZZRCDO:
        case ZZTIMEOUT:
        	goto Done;                          /*時間用完*/
        default:
        	goto Agn2;
    }
    iRecChar = zTimedRead( );
    if ( gbTimeOut )
    {
    	iRecChar = ZZTIMEOUT;
    }
    switch ( iRecChar )
    {
        case ZBIN:                     /*BIN head*/
            gcRxframeType = ZBIN;
            iRecChar =  zGetBinaryHeader( pcHdr );
            break;
        case ZHEX:                     /*HEX head*/
            gcRxframeType = ZHEX;
            iRecChar =  zGetHexHeader( pcHdr );
            break;
        case CAN:                      /*Cancel*/
            if ( --iCanCount <= 0 )
            {
            	iRecChar = ZCAN;
            	goto Done;
            }
            goto Agn2;
        case ZZRCDO:
        case ZZTIMEOUT:
        	goto Done;                 /*Timeout*/
        default:
        	goto Agn2;
    }
    giRxpos = zPullLongFromHeader( pcHdr );
Done:
    return ( iRecChar );
}


/*--------------------------------------------------------------------------*/
/* RZ RECEIVE DATA(Subpacket)                                               */
/* Receive array buf of max length with ending ZDLE sequence                */ 
/* and CRC.  Returns the ending character or error code.                    */
/*--------------------------------------------------------------------------*/
/*RZ接收數(shù)據(jù)*/
/*用zdle和CRC接收陣列緩存,返回結(jié)束字符或錯誤*/

static int zReceiveData( char *pcBuf, int iLength )        /* 收data subpacket文件數(shù)據(jù) */
{
    int iRecChar, iTempChar;
    unsigned short int usCrc;

    usCrc   = giRxCount   = 0;
    while( 1 ) 
    {
        if ( ( iRecChar = zGetZDL() ) & ~0xff )
        {
CRCfoo:
            switch ( iRecChar ) 
            {
                case GOTCRCE:
                case GOTCRCG:
                case GOTCRCQ:
                case GOTCRCW:                 /* C R C s */
                    usCrc = Z_UpdateCRC( ( ( iTempChar = iRecChar ) & 0xff ), usCrc );
                    if ( ( iRecChar = zGetZDL() ) & ~0xff ) 
                    {
                    	goto CRCfoo;
                    }
                    usCrc = Z_UpdateCRC( iRecChar, usCrc );
                    if ( ( iRecChar = zGetZDL() ) & ~0xff ) 
                    {
                    	goto CRCfoo;
                    }
                    usCrc = Z_UpdateCRC( iRecChar, usCrc );
                    if ( usCrc & 0xffff ) 
                    {
                    	return ( ZZERROR );
                    }
                    return ( iTempChar );
                case GOTCAN:
                	return ( ZCAN );           /* Cancel  */
                case ZZTIMEOUT:
                	return ( iRecChar );       /* Timeout  */
                case ZZRCDO:
                	return ( iRecChar );       /* No Carrier           沒有載體*/
                default:
                	return ( iRecChar );       /* Something bizarre    有異常*/
            }
        }
      if ( --iLength < 0 )
      {
      	  return ( ZZERROR );                  /* Long pkt */
          ++giRxCount;
          *pcBuf ++= iRecChar;
          usCrc = Z_UpdateCRC( iRecChar, usCrc );
          continue;
      }
    }
}

/*--------------------------------------------------------------------------*/
/* RZ ACK BIBI                                                              */
/* Ack a ZFIN packet, let byegones be byegones                              */
/*--------------------------------------------------------------------------*/
static void zAckBibi( void )                 /*Ack a ZFIN packet*/
{
	int iHdrBits;
    zPutLongIntoHeader( 0L );
    for ( iHdrBits = 4; --iHdrBits; )
    {
    	 char cRecChar;
         zSendHexHeader( ZFIN, gpcTxhdr );
         cRecChar = zGetByte( 1000 );
         if ( gbTimeOut )
         {
             return;
         }
         if ( cRecChar == 'O' )
         { 
             zGetByte( 1000 );            /* Discard 2nd 'O' */
         }
    }
}


/*--------------------------------------------------------------------------*/
/* RZ INIT RECEIVER                                                         */
/* Initialize for Zmodem receive attempt, try to activate Zmodem sender     */
/* Handles ZSINIT, ZFREECNT, and ZCOMMAND frames                            */
/*                                                                          */
/* Return codes:                                                            */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩影视精品| 激情伊人五月天久久综合| 麻豆91在线观看| 色老汉一区二区三区| 欧美大片在线观看一区二区| 亚洲你懂的在线视频| 狠狠色丁香久久婷婷综合_中| 91麻豆视频网站| 久久精品夜夜夜夜久久| 视频一区欧美精品| 在线日韩国产精品| 国产精品视频一二三区 | 在线视频国内自拍亚洲视频| 久久亚洲私人国产精品va媚药| 亚洲国产视频网站| 在线视频国产一区| 一区二区三区精品视频在线| 成人福利视频在线| 国产女人18毛片水真多成人如厕 | 亚洲色图欧美偷拍| 成人中文字幕合集| 国产欧美综合色| 国产精品一区在线| 久久午夜国产精品| 国产美女一区二区| 国产天堂亚洲国产碰碰| 狠狠色综合色综合网络| 日韩欧美视频一区| 精品一区二区三区不卡 | 欧美日韩在线播放| 亚洲国产成人tv| 欧美日韩高清在线播放| 亚洲二区在线视频| 欧美一区中文字幕| 免费在线观看一区| 欧美精品一区二区三区蜜臀| 国产精品 欧美精品| 欧美激情综合在线| 色综合视频在线观看| 亚洲福利视频一区二区| 欧美日韩日日骚| 青青草成人在线观看| 精品国精品国产| 高清不卡在线观看| 综合中文字幕亚洲| 欧美视频中文字幕| 麻豆久久一区二区| 亚洲国产精品二十页| 色综合天天综合网天天狠天天| 一区二区三区中文字幕| 国产精品国产三级国产aⅴ中文| 成人av在线一区二区三区| 亚洲免费观看高清完整版在线| 欧美在线不卡视频| 久久99久久久久| 国产精品免费丝袜| 欧美日韩一区二区不卡| 韩国午夜理伦三级不卡影院| 中文字幕一区二区三中文字幕| 欧美性色aⅴ视频一区日韩精品| 日本特黄久久久高潮| 国产人妖乱国产精品人妖| 色88888久久久久久影院按摩| 天天操天天色综合| 欧美国产精品一区二区| 欧美专区亚洲专区| 国产一区二区毛片| 亚洲国产婷婷综合在线精品| 久久色.com| 日本韩国一区二区三区视频| 久久99久久精品| 亚洲精品国产一区二区精华液 | 日韩精品国产精品| 中文av一区二区| 91精品国产综合久久香蕉麻豆| 国产99久久久精品| 奇米888四色在线精品| 中文字幕中文字幕在线一区 | 看电影不卡的网站| 综合自拍亚洲综合图不卡区| 精品国免费一区二区三区| 欧美亚洲国产bt| 成人app网站| 久久国产精品72免费观看| 亚洲精选在线视频| 国产精品嫩草99a| 精品国产一区二区三区不卡| 欧美午夜片在线看| 91美女片黄在线观看| 国产一区二区三区不卡在线观看 | 国产精品无圣光一区二区| 91精品国产高清一区二区三区| 色天天综合色天天久久| 国产超碰在线一区| 极品销魂美女一区二区三区| 日韩中文欧美在线| 亚洲6080在线| 一级中文字幕一区二区| 自拍av一区二区三区| 中文字幕日韩精品一区| 国产三级精品视频| 国产亚洲欧美日韩日本| 久久伊人中文字幕| 2021中文字幕一区亚洲| 欧美成人女星排名| 欧美一区二区久久久| 91精品一区二区三区在线观看| 欧美色图片你懂的| 欧美色网一区二区| 91国产视频在线观看| 91丨九色丨尤物| 91麻豆精东视频| 色婷婷久久久久swag精品| 91碰在线视频| 在线欧美小视频| 精品视频一区二区不卡| 欧美日韩在线综合| 欧美丰满一区二区免费视频| 正在播放亚洲一区| 欧美成人vr18sexvr| 久久久久久免费| 国产精品伦理在线| 亚洲黄色av一区| 五月天中文字幕一区二区| 日本特黄久久久高潮| 国产一区二区不卡在线 | 免费在线看成人av| 极品少妇xxxx精品少妇偷拍| 国产精一区二区三区| 国产精品亚洲综合一区在线观看| 盗摄精品av一区二区三区| proumb性欧美在线观看| 欧美私人免费视频| 91精品国产色综合久久| 久久蜜桃av一区二区天堂| 中文成人av在线| 亚洲成人动漫av| 国产一区视频在线看| www.视频一区| 欧美老女人第四色| 久久久久久久久久电影| 国产精品久久久久久户外露出| 亚洲中国最大av网站| 老司机免费视频一区二区| 成人美女视频在线观看18| 精品视频一区二区三区免费| 精品国产乱码久久久久久老虎| 中文一区二区在线观看| 亚洲国产日产av| 国产伦理精品不卡| 91精品办公室少妇高潮对白| 日韩一级欧美一级| 亚洲视频狠狠干| 久久精品免费观看| 色婷婷综合久久久中文字幕| 精品少妇一区二区三区视频免付费| 国产精品免费免费| 美女国产一区二区三区| 91免费视频网| 久久久精品综合| 婷婷国产在线综合| gogogo免费视频观看亚洲一| 在线综合+亚洲+欧美中文字幕| 国产精品情趣视频| 久色婷婷小香蕉久久| 欧洲亚洲精品在线| 国产精品视频九色porn| 久久99热99| 91精品国产一区二区三区香蕉| 亚洲三级理论片| 国产福利一区在线观看| 欧美精品色综合| 亚洲激情六月丁香| av成人免费在线观看| 精品国产第一区二区三区观看体验| 亚洲一区二区免费视频| aaa欧美大片| 中文欧美字幕免费| 国产成人免费高清| 欧美xxxx老人做受| 蜜桃91丨九色丨蝌蚪91桃色| 欧美三日本三级三级在线播放| 亚洲三级小视频| 99re成人在线| 中文字幕一区视频| 波多野结衣亚洲| 中文字幕一区二区不卡 | 亚洲精品国久久99热| 成人av在线播放网站| 国产日韩在线不卡| 国产精品一区二区久久精品爱涩 | 精品国产免费人成电影在线观看四季 | 久久久久久久av麻豆果冻| 美腿丝袜一区二区三区| 欧美一级欧美一级在线播放| 天堂午夜影视日韩欧美一区二区| 欧美少妇一区二区| 亚洲成a人在线观看| 欧美久久一区二区| 轻轻草成人在线|