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

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

?? dongle.c

?? WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*

  Copyright(c) 1998,1999 SIC/Hitachi,Ltd.

	Module Name:

		dongle.c

	Revision History:

		26th May   1999		Released

*/
//#define OUTMSG
#define DPRINT

#include <stdio.h>
#include <stdlib.h>
#ifndef UNDER_CE
#include <time.h>
#include <dos.h>
#endif // !UNDER_CE
#include "newdong.h"
#ifdef NDIS40_MINIPORT
#include "nsc.h"
#else
extern void  NSC_WriteBankReg(UINT ComPort, const iBank, int iRegNum, UCHAR iVal);
extern UCHAR  NSC_ReadBankReg(UINT ComPort,const iBank, int iRegNum);
#endif
#include "settings.h"		

UIR          uir;
DongleParam  Dingle[2];

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Function prototypes                                                  //
//////////////////////////////////////////////////////////////////////////
DongleParam *GetDongleCapabilities(UIR Com);
int SetDongleCapabilities(UIR Com);

void delay(unsigned int period);    // a delay loop

UINT DoPlugPlayDongle(UINT UirPort);

// Called from SetDongleCapabilities
int SetReqMode(UIR Com);
void SetHpDongle(UINT UirPort,int Mode);
void SetTemicDongle(UINT UirPort,int Mode);
void SetSharpDongle(UINT UirPort,int Mode);
void SetDellDongle(UINT UirPort,int Mode);
void SetHpMuxDongle(UINT UirPort, int Mode);

// Pauses for a specified number of microseconds.
#ifndef UNDER_CE
void Sleep( clock_t wait );
#endif // !UNDER_CE
void PrintDongleParam(DongleParam *Dongle);


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Function:    GetDongleCapabilities                                   //
//                                                                      //
// Description:                                                         //
//                                                                      //
//  This routine fill up the DongleParam structure interpreting the     //
//  dongle oem's code and returns a pointer the structure.              //
//                                                                      //
// Input       : UIR structure with XcvrNumber ,Com Port and IR mode    //
//               offset                                                 //
// OutPut      : DongleParam Structure                                  //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


DongleParam *GetDongleCapabilities(UIR Com)
{

    UINT   Signature;

	DEBUGMSG(ZONE_FIRMODE, (TEXT("GetDongleCapabilities -->\r\n")));

    //  Check for validity of the Com port address
    if (Com.ComPort == 0) return (NULL);

    // Com.XcvrNum only has either 0 or 1 co
    // Check for validity of the Port Number address
    if (Com.XcvrNum > 1) return (NULL);

    //  Check for first time
    if (Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG)
        return (&Dingle[Com.XcvrNum]);

    // Signature is a word long ID information
    // bit 15 = 1 -- Plug and Play
    // bit 0, 1, 2, 3 -- ID number for different Manufactures
    Signature = Com.Signature;
    Dingle[Com.XcvrNum].PlugPlay = 0;
    Dingle[Com.XcvrNum].WORD0.bits.GCERR = TRUE;

    if (GetBit(Com.Signature,15)) {
        // Make the Pins IRSL1-2 as Inputs
        // bit 3 (ID/IRSL(2-1) pin) = 0 means Pins direction is Input
        NSC_WriteBankReg(Com.ComPort,BANK7,7,0x00);

        // Check whether Disconnect
        // ID/IRSL(2-1) as Input upon READ bit 0-3 return the logic
        // level of the pins(allowing external devices to identify
        // themselves.)
        if ((NSC_ReadBankReg(Com.ComPort,BANK7,4) & 0xf) == 0xf) {
            Dingle[Com.XcvrNum].WORD0.bits.GCERR = XCVR_DISCONNECT;
            Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG = 1;
            return (&Dingle[Com.XcvrNum]);
        }
#ifdef DPRINT
        printf(" Plug and Play Dongle\n");
#endif
        Signature = DoPlugPlayDongle(Com.ComPort);
        Dingle[Com.XcvrNum].PlugPlay = 1;

#ifdef DPRINT
        printf(" Sig %x\n",Signature);
#endif
        Dingle[Com.XcvrNum].WORD0.bits.GCERR = TRUE;
    }

    // Identify the dongle OEM
    switch (Signature & 0xf) {
        case 0:
#ifdef DPRINT
            printf(" Reserved ");
#endif
            return (NULL);
            break;

        case 1:
#ifdef DPRINT
            printf(" Rohm");
#endif
            return (NULL);
            break;

        case 2:
        case 3:
        case 10:
        case 11:
#ifdef DPRINT
            printf(" Intelligent Adapter");
#endif
            Dingle[Com.XcvrNum].WORD0.bits.IADP = 1;
            return (NULL);
            break;

        case 4:
#ifdef DPRINT
            printf(" Sharp , Linear Technology Module");
#endif
            Dingle[Com.XcvrNum].WORD0.bits.GCERR = TRUE; 
            Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG = 1;
            Dingle[Com.XcvrNum].WORD0.bits.TrcvrCode = SHARP;
            Dingle[Com.XcvrNum].WORD4.Data = TemicRecovery;
            Dingle[Com.XcvrNum].WORD6.Data = TemicBofs;
            Dingle[Com.XcvrNum].WORD7.bits.FIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.MIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.SIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.Sharp_IR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrHiSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrMedSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrLowSpeed = TRUE;
            break;

        case 5:
#ifdef DPRINT
            printf(" Irvine Sensors ");
#endif
            return (NULL);
            break;


        case 6:
#ifdef DPRINT
            printf(" Reserved ");
#endif
            return (NULL);
            break;

        case 7:
#ifdef DPRINT
            printf(" CIR Only");
#endif
            return (NULL);
            break;

        case 0x8:
            // HP HSDL-2300
            Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG = 1;
            Dingle[Com.XcvrNum].WORD0.bits.TrcvrCode = HPMUX;
            Dingle[Com.XcvrNum].WORD6.Data = HpBofs;
            Dingle[Com.XcvrNum].WORD4.Data = HpRecovery;
            Dingle[Com.XcvrNum].WORD7.bits.FIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.MIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.SIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.Sharp_IR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrHiSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrMedSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrLowSpeed = TRUE;
            break;

        case 0x9:
            // IBM 31T1100 or TEMIC TFDS-6000
#ifdef DPRINT
            printf(" TEMIC");
#endif
            Dingle[Com.XcvrNum].WORD0.bits.GCERR = TRUE; 
            Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG = 1;
            Dingle[Com.XcvrNum].WORD0.bits.TrcvrCode = TEMIC;
            Dingle[Com.XcvrNum].WORD4.Data = TemicRecovery;
            Dingle[Com.XcvrNum].WORD6.Data = TemicBofs;
            Dingle[Com.XcvrNum].WORD7.bits.FIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.MIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.SIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.Sharp_IR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrHiSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrMedSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrLowSpeed = TRUE;
            break;

        case 0xc:
        case 0xd:
#ifdef DPRINT
            printf(" HP ");
#endif
            Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG = 1;
            Dingle[Com.XcvrNum].WORD0.bits.TrcvrCode = HP;
            Dingle[Com.XcvrNum].WORD6.Data = HpBofs;
            Dingle[Com.XcvrNum].WORD4.Data = HpRecovery;
            Dingle[Com.XcvrNum].WORD7.bits.FIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.MIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.SIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.Sharp_IR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrHiSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrMedSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrLowSpeed = TRUE;
            break;
        case 0xe:
#ifdef DPRINT
            printf(" SIR Only");
#endif
            Dingle[Com.XcvrNum].WORD0.bits.GCERR = TRUE; 
            Dingle[Com.XcvrNum].WORD0.bits.DSVFLAG = 1;
            Dingle[Com.XcvrNum].WORD0.bits.TrcvrCode = DELL;
            Dingle[Com.XcvrNum].WORD4.Data = TemicRecovery;
            Dingle[Com.XcvrNum].WORD6.Data = TemicBofs;
            Dingle[Com.XcvrNum].WORD7.bits.FIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.MIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.SIR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.Sharp_IR = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrHiSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrMedSpeed = TRUE;
            Dingle[Com.XcvrNum].WORD7.bits.CirOvrLowSpeed = TRUE;
            break;

        case 0xf:


            break;

        default:
#ifdef DPRINT
            printf(" Default 0");
#endif
            break;

    }

    // Look for CIR support
    //
    if (GetBit(Signature,5))
        Dingle[Com.XcvrNum].WORD8.bits.Cir36k = 1;
    if (GetBit(Signature,6))
        Dingle[Com.XcvrNum].WORD8.bits.Cir40k = 1;
    if (GetBit(Signature,7)) {
        Dingle[Com.XcvrNum].WORD8.bits.Cir38k = 1; 
#ifdef DPRINT
        printf(" 38K \n");
#endif
    }
    if (GetBit(Signature,9))
        Dingle[Com.XcvrNum].WORD9.bits.Cir57k = 1;

    Dingle[Com.XcvrNum].WORD0.bits.GCERR = TRUE; 

	DEBUGMSG(ZONE_FIRMODE, (TEXT("GetDongleCapabilities <--\r\n")));

    // Everything O.K return the structure
    return (&Dingle[Com.XcvrNum]);

}

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Function:    SetDongleCapabilities                                   //
//                                                                      //
// Description:                                                         //
//                                                                      //
// Input  : UIR structure with XcvrNumber ,Com Port and IR mode offset  //
// Result : If successfull will set the dongle to the appropriate mode. //
//          Returns TRUE for success and error codes defined in dongle.h//
//              UNSUPPORTED     2                                       //
//              ERROR_GETCAPAB  7                                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

int SetDongleCapabilities(UIR Com)
{
    DongleParam *Dongle;

	DEBUGMSG(ZONE_FIRMODE, (TEXT("SetDongleCapabilities <--\r\n")));
    Dongle = GetDongleCapabilities(Com);
    // Check whether Dongle is NULL
    if (Dongle == NULL) {
#ifdef DPRINT
        printf(" Returning ERROR"); 
#endif
        return (ERROR_GETCAPAB);
    }

    if (Dingle[Com.XcvrNum].WORD0.bits.GCERR != TRUE)
        return (ERROR_GETCAPAB);

	DEBUGMSG(ZONE_FIRMODE, (TEXT("SetDongleCapabilities <--\r\n")));
    return (SetReqMode(Com));

}

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// Function:    SetRegMode                                              //
//                                                                      //
// Description:                                                         //
//                                                                      //
// Input    : Structure Com  with ComPort, ModeReq and XcvrNum set.     //
// OutPut   : True if successfull                                       //
//            UNIMPLEMENTED if so                                       //
//                                                                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

int SetReqMode(UIR Com)
{

	DEBUGMSG(ZONE_FIRMODE, (TEXT("SetRegMode -->\r\n")));
#ifdef DPRINT
    printf("ModeReq %d ",Com.ModeReq);
#endif

    if (Dingle[Com.XcvrNum].WORD0.bits.IADP)
        return (UNSUPPORTED);

	/*	
    if (Dingle[Com.XcvrNum].WORD0.bits.TrcvrCode == HP)
        // Make the Pins IRSL1-2 as output
        NSC_WriteBankReg(Com.ComPort,BANK7,7,0x08);
    else
        // Make the Pins IRSL0-2 as output

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国精产品一区一区三区mba视频 | 337p日本欧洲亚洲大胆色噜噜| 国产精品久久久久婷婷 | 综合久久一区二区三区| 成人美女在线观看| 亚洲精品在线观看网站| 国内久久精品视频| 欧美电影精品一区二区| 蜜桃久久精品一区二区| 欧美另类久久久品| 视频一区在线播放| 69堂亚洲精品首页| 日韩av电影天堂| 日韩一区二区在线看| 三级一区在线视频先锋 | 久久免费偷拍视频| 国产电影一区二区三区| 久久久久9999亚洲精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美国产一区二区在线播放| 亚洲午夜电影在线观看| 欧美精品123区| 麻豆成人免费电影| 精品国产第一区二区三区观看体验| 毛片av中文字幕一区二区| 2023国产精品| 91在线播放网址| 亚洲综合一二区| 91精品国产色综合久久不卡蜜臀| 国产自产v一区二区三区c| 2024国产精品视频| 色噜噜狠狠一区二区三区果冻| 天天影视网天天综合色在线播放| 欧美一激情一区二区三区| 国产美女av一区二区三区| 国产精品乱码一区二区三区软件| 91年精品国产| 麻豆精品蜜桃视频网站| 国产精品麻豆一区二区| 正在播放亚洲一区| 国产a视频精品免费观看| 亚洲一区二区在线免费看| 日韩午夜在线观看| 成人午夜激情视频| 在线观看欧美精品| 美女网站一区二区| 中文字幕视频一区| 7777精品伊人久久久大香线蕉最新版| 国产一区亚洲一区| 夜夜嗨av一区二区三区中文字幕| 欧美成人一区二区| 91在线播放网址| 久久99深爱久久99精品| 亚洲精品免费视频| 精品成人a区在线观看| 色婷婷综合在线| 日韩制服丝袜av| 国产精品久久久久影院老司| 日韩午夜精品电影| 日本韩国欧美一区二区三区| 国产一区999| 午夜精品久久久久久久99樱桃| 久久精品网站免费观看| 欧美在线观看视频一区二区三区| 国产成a人亚洲| 另类小说欧美激情| 亚洲乱码国产乱码精品精98午夜| 6080亚洲精品一区二区| 91小视频在线观看| 粉嫩一区二区三区性色av| 97久久精品人人做人人爽| 国产精品对白交换视频 | 香蕉乱码成人久久天堂爱免费| 一区二区激情小说| 亚洲欧洲韩国日本视频| 亚洲一级二级三级| 日韩国产欧美一区二区三区| 日韩在线一区二区三区| 国产在线国偷精品产拍免费yy| 成人毛片视频在线观看| 欧美日韩在线观看一区二区| 欧美一区二区三级| 中文字幕精品在线不卡| 亚洲摸摸操操av| 亚洲综合网站在线观看| 麻豆精品在线看| 高清成人在线观看| 色综合久久久久久久久久久| 欧美日韩国产综合一区二区三区 | 亚洲亚洲精品在线观看| 一区二区三区影院| 日本欧洲一区二区| 丁香桃色午夜亚洲一区二区三区| 91免费版在线看| 91精品婷婷国产综合久久竹菊| 精品久久久久久久久久久院品网| 欧美激情一区在线观看| 亚洲成人1区2区| 国产成都精品91一区二区三| 欧美综合视频在线观看| 精品精品欲导航| 亚洲欧洲av另类| 免费不卡在线视频| av在线不卡免费看| 欧美一区二区三区精品| 成人免费一区二区三区在线观看| 日韩不卡一区二区三区 | 亚洲欧洲www| 黑人巨大精品欧美一区| 99国产精品国产精品毛片| 欧美一区二区福利在线| 中文字幕亚洲不卡| 首页综合国产亚洲丝袜| 粉嫩一区二区三区性色av| 欧美影院一区二区| 久久久三级国产网站| 亚洲自拍偷拍av| 成人动漫一区二区| 日韩精品一区二区三区视频在线观看 | 国产精品伦一区二区三级视频| 日韩avvvv在线播放| 91在线免费播放| 日本一区二区三区免费乱视频 | 国产精品影视在线观看| 欧美日韩亚洲综合一区| 亚洲视频综合在线| 国产成人在线影院| 日韩免费观看高清完整版| 亚洲午夜电影在线观看| 成人国产亚洲欧美成人综合网| 日韩一区二区麻豆国产| 亚洲三级电影全部在线观看高清| 国产麻豆视频精品| 日韩欧美色综合网站| 亚洲一区二区三区不卡国产欧美 | 老司机免费视频一区二区三区| av电影在线观看完整版一区二区| 久久蜜桃av一区精品变态类天堂| 日韩电影免费在线观看网站| 欧美色图免费看| 亚洲在线视频网站| 欧美中文字幕一区二区三区亚洲| 中文字幕在线视频一区| 国产精品99久久久久久有的能看 | 91精品国产aⅴ一区二区| 亚洲国产欧美在线人成| 在线观看www91| 一二三区精品福利视频| 日本高清不卡在线观看| 亚洲欧美成aⅴ人在线观看| 99精品桃花视频在线观看| 国产精品午夜在线| www.日韩大片| 国产精品美女久久久久久| 成人禁用看黄a在线| 国产精品视频一二三区| 国内精品伊人久久久久av影院| 日韩久久久精品| 一区二区三区 在线观看视频| 成人爱爱电影网址| **欧美大码日韩| 91国产免费观看| 亚洲成人黄色影院| 67194成人在线观看| 精品制服美女丁香| 久久精品免费在线观看| 99久久精品免费看国产免费软件| 亚洲欧洲综合另类| 91免费视频观看| 美女视频网站黄色亚洲| 国产欧美精品国产国产专区| 色94色欧美sute亚洲线路二 | 日韩视频免费观看高清完整版在线观看 | 日韩免费观看高清完整版| 国产91高潮流白浆在线麻豆| 亚洲永久精品国产| 精品国产一区二区三区久久影院| 成人免费视频免费观看| 性做久久久久久免费观看欧美| 久久亚洲精精品中文字幕早川悠里| 91在线视频观看| 狠狠色丁香久久婷婷综合_中 | 国产黄色91视频| 亚洲sss视频在线视频| 国产午夜亚洲精品不卡| 欧美日韩精品系列| 成人精品视频一区二区三区尤物| 亚洲国产精品欧美一二99| 国产午夜精品久久久久久久 | 亚洲精品高清视频在线观看| 日韩视频一区二区在线观看| 99视频精品全部免费在线| 老司机精品视频线观看86| 亚洲免费观看高清完整版在线观看 | 97久久精品人人做人人爽50路| 美女免费视频一区| 亚洲午夜影视影院在线观看| 国产欧美综合在线观看第十页| 欧美肥妇bbw| 在线亚洲免费视频|