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

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

?? p16_drv.h

?? 一種基于16位單片機的tcp/ip協議源碼
?? H
字號:
/* Low-level driver functions for PIC Web server 
** Copyright (c) Iosoft Ltd 2001
** This software is only licensed for distribution in the Iosoft ChipWeb package
** and may only be used for personal experimentation by the purchaser 
** of that package, on condition that this copyright notice is retained. 
** For commercial licensing, contact license@iosoft.co.uk
**
** This is experimental software; use it entirely at your own risk */

/* Revisions:
** v0.01 JPB 17/12/00 Functions extracted from PIC_SLIP v0.01
*/

/* Globals */
BOOL checkflag;             // Checksum flag & byte values
BYTE checkhi, checklo;

BYTE ungot_byte;
BOOL ungot;

/* Prototypes for this file */
int get_data(BYTE *ptr, int maxlen);
BOOL get_byte(BYTE &b);
void unget_byte(BYTE &b);
BOOL get_word(WORD &w);
BOOL get_lword(LWORD &lw);
void discard_data(void);
BOOL match_byte(BYTE b);
BOOL match_word(WORD w);
void skip_space(void);
BOOL skip_byte();
BOOL skip_word();
BOOL skip_lword();
int check_str(char *s);
void check_byte(BYTE b);
void check_word(WORD w);
void check_lword(LWORD &lw);
void check_bytes(BYTE *dat, int len);
void put_byte(BYTE b);
void put_str(char *s);
void put_word(WORD w);
void put_data(BYTE *data, int len);
void put_lword(LWORD &lw);
void swapw(WORD &val);

/* Get incoming data in buffer; discard any buffer overflow */
int get_data(BYTE *ptr, int maxlen)
{
    BYTE b;
    int n=0;

    while (maxlen-- > 0 && get_byte(b))
    {
        *ptr++ = b;
        n++;
    }
    discard_data();
    return(n);
}

/* Discard incoming data */
void discard_data(void)
{
    while (!atend)
        getch_net();
}

/* Get an incoming byte value, return 0 if end of message */
BOOL get_byte(BYTE &b)
{
    if (ungot)
        b = ungot_byte;
    else
        b = getch_net();
    ungot = 0;
    return(!atend);
}

/* Unget (push back) an incoming byte value */
void unget_byte(BYTE &b)
{
    ungot_byte = b;
    ungot = 1;
}

/* Get an incoming word value, return 0 if end of message */
BOOL get_word(WORD &w)
{
    BYTE hi, lo;

    hi = getch_net();
    lo = getch_net();
    w = ((WORD)hi<<8) | (WORD)lo;
    return(!atend);
}
/* Get an incoming lword value, return 0 if end of message */
BOOL get_lword(LWORD &lw)
{
    lw.b[3] = getch_net();
    lw.b[2] = getch_net();
    lw.b[1] = getch_net();
    lw.b[0] = getch_net();
    return(!atend);
}

/* Match an incoming byte value, return 0 not matched, or end of message */
BOOL match_byte(BYTE b)
{
    return(b==getch_net() && !atend);
}
/* Match an incoming byte value, return 0 not matched, or end of message */
BOOL match_word(WORD w)
{
    WORD inw;

    return(get_word(inw) && inw==w);
}

/* Match longword */
BOOL match_lword(LWORD &lw)
{
    return (match_byte(lw.b[3]) && match_byte(lw.b[2]) && 
        match_byte(lw.b[1]) && match_byte(lw.b[0]));
}

/* Skip whitespace & ctrl chars in incoming data, return 0 if none */
void skip_space(void)
{          
    BYTE b;
    BOOL ok=0;
    
    while (get_byte(b) && b<=' ')
        ok = 1;
    if (ok)
        unget_byte(b);
}

/* Skip an incoming byte value, return 0 if end of message */
BOOL skip_byte(void)
{
    getch_net();
    return(!atend);
}
/* Skip an incoming word value, return 0 if end of message */
BOOL skip_word(void)
{
    getch_net();
    getch_net();
    return(!atend);
}
/* Skip an incoming lword value, return 0 if end of message */
BOOL skip_lword(void)
{
    getch_net();
    getch_net();
    getch_net();
    getch_net();
    return(!atend);
}
 
/* Compute checksum of a string, return its length */
int check_str(char *s)
{
    char c;
    int n=0;

    while ((c = s[n])!=0)
    {
        check_byte(c);
        n++;
    }
    return(n);
}

/* Add byte to checksum value */
void check_byte(BYTE b)
{
    if (checkflag)
    {
        if ((checklo = b+checklo) < b)
        {
            if (++checkhi == 0)
                checklo++;
        }
    }
    else
    {
        if ((checkhi = b+checkhi) < b)
        {
            if (++checklo == 0)
                checkhi++;
        }
    }
    checkflag = !checkflag;
}
/* Add word to checksum value */
void check_word(WORD w)
{
    check_byte(w>>8);
    check_byte(w);
}
/* Add longword to checksum value */
void check_lword(LWORD &lw)
{
    check_byte(lw.b[3]);
    check_byte(lw.b[2]);
    check_byte(lw.b[1]);
    check_byte(lw.b[0]);
}

/* Add array of bytes to checksum value */
void check_bytes(BYTE *dat, int len)
{
    while (len--)
        check_byte(*dat++);
}

/* Send a byte to the network buffer */
void put_byte(BYTE b)
{
    putch_net(b);
}

/* Send a string out to the SLIP link, add to checksum */
void put_str(char *s)
{
    while (*s)
        putch_net(*s++);
}

/* Send a word out to the SLIP link, then add to checksum */
void put_word(WORD w)
{
    putch_net(w >> 8);
    putch_net(w);
}

void put_lword(LWORD &lw)
{
    putch_net(lw.b[3]);
    putch_net(lw.b[2]);
    putch_net(lw.b[1]);
    putch_net(lw.b[0]);
}

void put_data(BYTE *data, int len)
{
    while (len--)
        putch_net(*data++);
}

/* Swap the bytes in a word */
void swapw(WORD &val)
{
    val = (val >> 8) | ((val << 8) & 0xff00);
}

/* EOF */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2020日本不卡一区二区视频| 欧美性猛片aaaaaaa做受| 久久一日本道色综合| 国产一区二区精品久久91| 欧美成人午夜电影| 国产高清不卡一区二区| 国产精品理论片| 日韩你懂的在线播放| 国模冰冰炮一区二区| 亚洲国产精品av| 91久久香蕉国产日韩欧美9色| 亚洲午夜在线观看视频在线| 欧美卡1卡2卡| 国产精品白丝jk白祙喷水网站| 国产欧美日韩精品a在线观看| 99精品欧美一区二区蜜桃免费 | 国产高清精品久久久久| 国产精品福利一区| 欧美日韩国产综合草草| 久久精品国产亚洲a| 中日韩免费视频中文字幕| 91美女福利视频| 蜜臂av日日欢夜夜爽一区| 欧美国产日本视频| 欧美亚洲动漫精品| 狠狠色综合播放一区二区| |精品福利一区二区三区| 欧美剧情电影在线观看完整版免费励志电影| 日韩激情一二三区| 国产精品久久精品日日| 欧美日韩国产区一| 成人黄色一级视频| 裸体歌舞表演一区二区| 亚洲欧美偷拍另类a∨色屁股| 日韩一级免费观看| 色哟哟精品一区| 国产精品正在播放| 日日夜夜免费精品| 久久99精品一区二区三区| 成人免费视频在线观看| 欧美va亚洲va香蕉在线| 欧美在线免费播放| 成人av综合一区| 激情亚洲综合在线| 亚洲超丰满肉感bbw| 国产精品理伦片| 精品久久久久香蕉网| 欧美无砖砖区免费| aaa亚洲精品| 国产成人午夜片在线观看高清观看| 亚洲一区二区三区小说| 国产精品进线69影院| 亚洲精品在线电影| 91精品国产综合久久蜜臀| 欧美亚洲综合久久| 一本色道久久综合狠狠躁的推荐| 国产福利一区二区三区视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品少妇30p| 国产精品久久久久影院色老大| 日韩欧美一级片| 欧美一区日韩一区| 欧美日韩激情一区| 欧美视频一区二区| 欧美亚洲一区二区在线| 91看片淫黄大片一级| 成人精品gif动图一区| 国产精品一二三四区| 久草中文综合在线| 久久电影国产免费久久电影| 青青草伊人久久| 青青青爽久久午夜综合久久午夜 | 亚洲国产日韩a在线播放性色| 亚洲男同1069视频| 亚洲精品第一国产综合野| ...av二区三区久久精品| 中文字幕一区二区5566日韩| 午夜伊人狠狠久久| 日韩国产一二三区| 免费在线观看成人| 狠狠狠色丁香婷婷综合激情| 另类小说欧美激情| 国内精品国产三级国产a久久| 精品一区二区三区在线播放 | 亚洲成人高清在线| 日韩二区三区四区| 久久99久久99小草精品免视看| 精品中文字幕一区二区小辣椒| 久久www免费人成看片高清| 国产资源在线一区| 成人国产精品视频| 欧美在线视频日韩| 欧美一区二区久久| 国产欧美一区视频| 综合在线观看色| 午夜不卡在线视频| 韩国成人在线视频| 97精品久久久久中文字幕| 色一情一伦一子一伦一区| 欧美日韩精品欧美日韩精品| 精品日韩成人av| 国产精品免费视频观看| 一区二区三区资源| 久久er精品视频| 99视频精品在线| 欧美精品乱码久久久久久按摩| 欧美一区二区三区视频免费| 久久精品日产第一区二区三区高清版 | 日韩欧美一区二区三区在线| 久久久青草青青国产亚洲免观| 亚洲日本在线天堂| 欧美最猛性xxxxx直播| 欧美高清视频不卡网| 久久久噜噜噜久久人人看 | 伊人一区二区三区| 石原莉奈一区二区三区在线观看| 久久精品国产99| 91视频免费观看| 91精品国产综合久久久蜜臀图片 | 亚洲国产成人自拍| 亚洲777理论| 成人高清在线视频| 欧美亚日韩国产aⅴ精品中极品| 日韩午夜电影av| 中文字幕亚洲精品在线观看| 日韩在线一二三区| 91视频国产资源| 精品日本一线二线三线不卡| 日韩美女久久久| 久久精品国产77777蜜臀| 91猫先生在线| 久久久国产精品午夜一区ai换脸| 亚洲伊人色欲综合网| 国产成人在线色| 欧美一区二区三区视频在线观看| ...中文天堂在线一区| 玖玖九九国产精品| 欧美网站大全在线观看| 欧美国产日本视频| 免费视频最近日韩| 色国产综合视频| 国产女同互慰高潮91漫画| 日韩精品一级二级| 91日韩一区二区三区| 国产欧美精品在线观看| 九九**精品视频免费播放| 欧美男生操女生| 亚洲综合一区二区| 97久久超碰国产精品电影| 久久久精品免费免费| 日韩av一二三| 在线观看不卡视频| 国产精品久久久久久福利一牛影视 | 日韩三级高清在线| 亚洲精品美腿丝袜| 成人av手机在线观看| 久久久影视传媒| 国产乱子伦视频一区二区三区| 欧美一级电影网站| 日本欧美在线看| 91精品国产欧美一区二区18| 午夜精品久久久久久久99樱桃| 91久久精品日日躁夜夜躁欧美| 中文字幕不卡的av| a在线播放不卡| 亚洲欧洲精品天堂一级| 成人精品一区二区三区四区| 国产欧美日产一区| 成人av电影免费观看| 中文字幕一区二区在线观看| av电影在线观看一区| 国产精品理论在线观看| eeuss鲁片一区二区三区在线观看| 国产午夜精品一区二区三区视频| 精品一区二区影视| 国产三级一区二区三区| 粉嫩在线一区二区三区视频| 国产日韩精品一区| 成人av动漫在线| 亚洲精品美腿丝袜| 欧美精品123区| 日本aⅴ亚洲精品中文乱码| 日韩一区二区三区电影在线观看| 久久精品国产亚洲高清剧情介绍 | 国产三级精品视频| 波多野结衣中文一区| 亚洲天堂精品在线观看| 日本电影亚洲天堂一区| 日日骚欧美日韩| 久久久噜噜噜久久中文字幕色伊伊| 国产真实乱对白精彩久久| 国产精品久久久久久久久久久免费看 | 暴力调教一区二区三区| 亚洲区小说区图片区qvod| 欧美日韩在线观看一区二区 | 亚洲国产欧美在线| 精品人在线二区三区| 成人性生交大片免费看视频在线| 亚洲人成亚洲人成在线观看图片| 欧美日韩在线三级|