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

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

?? bat4fsc.c

?? C中嵌入?yún)R編
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include <time.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>

#define EC_TIMER    3000                    /* 3000 * 15usec = 15 msec */
#define EC_OK       0
#define EC_TIMEOUT  1
#define EC_INVALID_PORT 2
#define PPI 0x61
typedef unsigned char   BYTE;
typedef unsigned int    WORD;
typedef unsigned long   DWORD;

typedef enum {
              ec_sc=0x66,
              ec_data=0x62
             }ECIOPORT;

int WaitECOBFReady();
int WaitECIBFReady();
int WriteEC(ECIOPORT port, BYTE cmd);
int ReadEC(BYTE * const data);
void ClearKBDBuf (void);

DWORD SMBIOSEntry=0;
WORD  SMBIOSLen  =0;

typedef struct
{   
  BYTE  type;                    /*The special HEADER type*/
  BYTE  length;                  /*The special HEADER from Begin*/
  WORD  handle;
} HEADER;


typedef struct
{
 int datasize;
 int start;
 int end;
 BYTE type;
 BYTE length;
 WORD handle;
} szType;


typedef struct
{
    BYTE    dbType;
    BYTE    dbLength;
    WORD    dwHandle;
    BYTE    dbVendor;
    BYTE    dbBiosVersion;
    WORD    dwBiosStartAddress;
    BYTE    dbBiosReleaseDate;
    BYTE    dbBiosRomSize;
    BYTE    szBiosCharacteristics[8];
    BYTE    szBiosExtensionCharacteristics[2];
    char    szString[3][100];
}   TYPE0;

typedef struct
{
    BYTE    dbType;
    BYTE    dbLength;
    WORD    dwHandle;
    BYTE    dbManufacture;
    BYTE    dbProductName;
    BYTE    dbVersion;
    BYTE    dbSerialNumber;
    BYTE    szUUID[16];
    BYTE    dbWakeUpType;
    char    szString[4][100];
}   TYPE1;

typedef struct
{
    BYTE    dbType;
    BYTE    dbLength;
    WORD    dwHandle;
    BYTE    dbLocation;
    BYTE    dbManufacturer;
    BYTE    dbManufactureDate;
    BYTE    dbSerialNumber;
    BYTE    dbDeviceName;
    BYTE    dbDeviceChemistry;
    WORD    dwDesignCapacity;
    WORD    dwDesignVoltage;
    BYTE    dbSBDSVersionNumber;
    BYTE    dbMaxErrorinBatteryData;
    WORD    dwSBDSSerialNumber;
    WORD    dwSBDSManufactureDate;
    BYTE    dbSBDSDeviceChemistry;
    BYTE    dbDesignCapacityMultiplier;
    DWORD   ddOEMSpecific;
    char    szString[6][100];
}   TYPE16;

typedef struct
{
    BYTE    dbType;
    BYTE    dbLength;
    WORD    dwHandle;
    BYTE    dbManufacture;
    BYTE    dbProduct;
    BYTE    dbVersion;
    BYTE    dbSerialNumber;
    char    szString[4][100];
}   TYPE2;

typedef struct
{
    BYTE    dbType;
    BYTE    dbLength;
    WORD    dwHandle;
    BYTE    dbManufacture;
    BYTE    dbTypeinfo;
    BYTE    dbVersion;
    BYTE    dbSerialNumber;
    BYTE    dbAssetTagNumber;
    BYTE    dbBootupState;
    BYTE    dbPowerSupplyState;
    BYTE    dbThermalState;
    BYTE    dbSecurityState;
    char    szString[4][100];
}   TYPE3;

typedef struct _Descriptor
{
   unsigned wSegLimit;
   unsigned wLowPhyAddr;
   unsigned char bMidPhyAddr;
   unsigned char bAccess;
   unsigned char bFlag_SegLimit;
   unsigned char bHiPhyAddr;
} DT;

typedef struct _GDT
{
   unsigned long dwUnused1;
   unsigned long dwUnused2;
   unsigned long dwGDT_BIOS1;
   unsigned long dwGDT_BIOS2;
   DT SDT;
   DT DDT;
   unsigned long dwCodeDescriptor1_BIOS;
   unsigned long dwCodeDescriptor2_BIOS;
   unsigned long dwStackDescriptor1_BIOS;
   unsigned long dwStackDescriptor2_BIOS;
}  GDT;






/********************************************************************/
/*Function: Read data from physical memory address                  */
/*                                                                  */
/*Input:  unsigned long dwAddr....physical memory address           */
/*        char *Buffer............data buffer in current address    */
/*        int Size................data *buffer size                 */
/*                                                                  */
/*Output :Rlt.....................Return errorlevel code            */
/*          1.....................read physical memory fail         */
/*          0.....................read physical memory successful   */
/********************************************************************/
int ReadRAM(DWORD dwAddr,BYTE *Buffer,WORD Size)
{
   GDT gdt;
   unsigned wSegment,wOffset;
   unsigned long dwPhyAddr;
   int Rlt=0;

   memset(&gdt,0,sizeof(GDT));

   dwPhyAddr=(unsigned long)FP_SEG(Buffer);
   dwPhyAddr<<=4;
   dwPhyAddr+=FP_OFF(Buffer);

   gdt.DDT.wSegLimit=0xFFFF;
   gdt.DDT.bFlag_SegLimit=0x0001;
   gdt.DDT.bAccess=0x93;
   gdt.DDT.wLowPhyAddr=dwPhyAddr&0xFFFF;
   gdt.DDT.bMidPhyAddr=(unsigned char)((dwPhyAddr)>>16);

   gdt.SDT.wSegLimit=0xFFFF;
   gdt.SDT.bFlag_SegLimit=0x01;
   gdt.SDT.bAccess=0x93;
   gdt.SDT.wLowPhyAddr=(unsigned)(dwAddr&0xFFFF);
   gdt.SDT.bMidPhyAddr=(unsigned char)((dwAddr>>16)&0xff);
   gdt.SDT.bHiPhyAddr=(unsigned char)(dwAddr>>24);

   wSegment=FP_SEG(&gdt);
   wOffset=FP_OFF(&gdt);
   asm push es
   asm push si
   asm mov ah,87h
   asm mov cx,Size
   asm mov es,wSegment
   asm mov si,wOffset
   asm int 15h
   asm jnc  OK
   asm mov Rlt,1
OK:
   asm pop si
   asm pop es
   return Rlt;
}


int FindSMBIOS()
{   
    DWORD i=0;
    BYTE  str[7];
    BYTE  far *ptr;
    WORD  str1,str2,str3,str4,str5,str6,segment,offset;
    ptr=(BYTE far *)MK_FP(0xF000,0x0000);
    str[0]=*ptr;str[1]=*(ptr+1);str[2]=*(ptr+2);str[3]=*(ptr+3);str[4]=*(ptr+4);str[5]=*(ptr+5);str[6]=*(ptr+6);
    while((strncmp(str,"_SM_",4)!=0)&&(i<0xFFF))
    {   
        ptr+=0x10;
        str[0]=*ptr;str[1]=*(ptr+1);str[2]=*(ptr+2);str[3]=*(ptr+3);str[4]='\0';
        i++;
    }
    if (i==0xFFF)
      return 1;
        else
         {
           str1    =(int)(*(ptr+0x18));
           str2    =(int)(*(ptr+0x19));
           str3    =(int)(*(ptr+0x1A));
           str4    =(int)(*(ptr+0x1B));
           str5    =(int)(*(ptr+0x16));
           str6    =(int)(*(ptr+0x17));
           segment =(str4*0x100+str3);
           offset  =str2*0x100+str1;
           SMBIOSEntry=segment*0x10000+offset;
           SMBIOSLen  =str6*0x100+str5;
           /*
           printf("SMBIOS DMI is mapped to offset 0x%lX , Total 0x%04X bytes\n",SMBIOSEntry,SMBIOSLen);
           */
           ptr=(unsigned char far *)MK_FP(segment,offset);
           return 0;
         }
}


int GetStructureTable(szType *myType,BYTE far *b,BYTE sztype)
{
  int i,i_bak;
  int flag=0;

  i=0;
  while(i<SMBIOSLen)
  {

    i_bak=i;

    i+=b[i_bak+1];

    while(!((b[i]==0)&&(b[i+1]==0)))
    {
       i++;
    }
    i+=2;

    myType->type    =b[i_bak];
    myType->length  =b[i_bak+1];
    myType->handle  =b[i_bak+3]*0x100+b[i_bak+2];
    myType->start   =i_bak;
    myType->end     =i-2;
    myType->datasize=myType->end-myType->start;

    textcolor(WHITE);
    cprintf("Type :0x%02X    Length :0x%02X     Handle :0x%04X     Size :0x%02X\r",myType->type,myType->length,myType->handle,myType->datasize);
    if(myType->type==sztype)
    {
      flag=1;
      break;
    }
  }
  printf("\r\n");
  return flag;
}



void GetType0(TYPE0 *Type0, BYTE far *buffer ,szType *szmy)
{
 int i,j,_i,_j;

  Type0->dbType            =szmy->type;
  Type0->dbLength          =szmy->length;
  Type0->dwHandle          =szmy->handle;
  Type0->dbVendor          =buffer[szmy->start+4];
  Type0->dbBiosVersion     =buffer[szmy->start+5];
  Type0->dwBiosStartAddress=buffer[szmy->start+7]*0x100+buffer[szmy->start+6];
  Type0->dbBiosReleaseDate =buffer[szmy->start+8];
  Type0->dbBiosRomSize     =buffer[szmy->start+9];

  _i=0;
  j=szmy->start+szmy->length;
  while (_i<3)
  {
      _j=0;
      while ((buffer[j]!=0)&&(_j<100))
      {
        Type0->szString[_i][_j++]=buffer[j++];
      }
      Type0->szString[_i][_j]=0;
      _i++;
      if(buffer[j]==0x00)
        j++;

  }

}


void GetType1(TYPE1 *Type1, BYTE far *buffer ,szType *szmy)
{
 int i,j,_i,_j;

  Type1->dbType            =szmy->type;
  Type1->dbLength          =szmy->length;
  Type1->dwHandle          =szmy->handle;
  Type1->dbManufacture     =buffer[szmy->start+4];
  Type1->dbProductName     =buffer[szmy->start+5];
  Type1->dbVersion         =buffer[szmy->start+6];
  Type1->dbSerialNumber    =buffer[szmy->start+7];

  for(i=szmy->start+0x08;i<szmy->start+0x18;i++)
    Type1->szUUID[i-szmy->start-0x08]=buffer[i];


  Type1->dbWakeUpType=buffer[szmy->start+0x18];

  _i=0;
  j=szmy->start+szmy->length;
  while (_i<4)
  {
      _j=0;
      while ((buffer[j]!=0)&&(_j<100))
      {
        Type1->szString[_i][_j++]=buffer[j++];
      }
      Type1->szString[_i][_j]=0;
      _i++;
      if(buffer[j]==0x00)
        j++;

  }
}

void GetType2(TYPE2 *Type2, BYTE far *buffer ,szType *szmy)
{
 int i,j,_i,_j;

 Type2->dbType            =szmy->type;
 Type2->dbLength          =szmy->length;
 Type2->dwHandle          =szmy->handle;
 Type2->dbManufacture     =buffer[szmy->start+4];
 Type2->dbProduct         =buffer[szmy->start+5];
 Type2->dbVersion         =buffer[szmy->start+6];
 Type2->dbSerialNumber    =buffer[szmy->start+7];

  _i=0;
  j=szmy->start+szmy->length;
  while (_i<4)
  {
      _j=0;
      while ((buffer[j]!=0)&&(_j<100))
      {
        Type2->szString[_i][_j++]=buffer[j++];
      }
      Type2->szString[_i][_j]=0;
      _i++;
      if(buffer[j]==0x00)
        j++;

  }

}


void GetType3(TYPE3 *Type3, BYTE far *buffer ,szType *szmy)
{
 int i,j,_i,_j;

 Type3->dbType            =szmy->type;
 Type3->dbLength          =szmy->length;
 Type3->dwHandle          =szmy->handle;
 Type3->dbManufacture     =buffer[szmy->start+4];
 Type3->dbTypeinfo        =buffer[szmy->start+5];
 Type3->dbVersion         =buffer[szmy->start+6];
 Type3->dbSerialNumber    =buffer[szmy->start+7];
 Type3->dbAssetTagNumber  =buffer[szmy->start+8];
 Type3->dbBootupState     =buffer[szmy->start+9];
 Type3->dbPowerSupplyState=buffer[szmy->start+10];
 Type3->dbThermalState    =buffer[szmy->start+11];
 Type3->dbSecurityState   =buffer[szmy->start+12];

  _i=0;
  j=szmy->start+szmy->length;
  while (_i<4)
  {
      _j=0;
      while ((buffer[j]!=0)&&(_j<100))
      {
        Type3->szString[_i][_j++]=buffer[j++];
      }
      Type3->szString[_i][_j]=0;
      _i++;
      if(buffer[j]==0x00)
        j++;

  }
}


void GetType16(TYPE16 *Type16, BYTE far *buffer ,szType *szmy)
{
 int i,j,_i,_j;


 Type16->dbType            =szmy->type;
 Type16->dbLength          =szmy->length;
 Type16->dwHandle          =szmy->handle;
 Type16->dbLocation        =buffer[szmy->start+4];
 Type16->dbManufacturer    =buffer[szmy->start+5];
 Type16->dbManufactureDate =buffer[szmy->start+6];
 Type16->dbSerialNumber    =buffer[szmy->start+7];
 Type16->dbDeviceName      =buffer[szmy->start+8];
 Type16->dbDeviceChemistry   =buffer[szmy->start+9];
 Type16->dwDesignCapacity    =buffer[szmy->start+11]*0x100+buffer[szmy->start+10];
 Type16->dwDesignVoltage   =buffer[szmy->start+13]*0x100+buffer[szmy->start+12];

 Type16->dbSBDSVersionNumber      =buffer[szmy->start+14];
 Type16->dbMaxErrorinBatteryData  =buffer[szmy->start+15];

 Type16->dwSBDSSerialNumber    =buffer[szmy->start+17]*0x100+buffer[szmy->start+16];
 Type16->dwSBDSManufactureDate =buffer[szmy->start+19]*0x100+buffer[szmy->start+18];

 Type16->dbSBDSDeviceChemistry       =buffer[szmy->start+20];
 Type16->dbDesignCapacityMultiplier  =buffer[szmy->start+21];


  _i=0;
  j=szmy->start+szmy->length;
  while (_i<7)
  {
      _j=0;
      while ((buffer[j]!=0)&&(_j<100))
      {
        Type16->szString[_i][_j++]=buffer[j++];
      }
      Type16->szString[_i][_j]=0;
      _i++;
      if(buffer[j]==0x00)
        j++;

  }
}


int Return2Dos()
{
 union   REGS    regs;
 regs.h.ah=0x4c;
 intdos(&regs,&regs);

}

void Showline(int n)
{
 int i=0;
 for(i=1;i<n;i++)
 {
   textcolor(i+1);
   cprintf("%c",196);
 }
 printf("\r\n");
}



int SendKBCCmd(int cmd)
{
  outportb(0x64,cmd);
  return 0;
}


unsigned int scancode;
int smart=0;
int dumb=0;

int main(int argc,char *argv[])
{
     BYTE P1;
     BYTE DATA_L[1]={NULL},DATA_H[1]={NULL};
     float Bat_Temp=0,BAT1_FCC=0,BAT1_RC=0,CHARGE_VOLTAGE=0,CHARGE_CURRENT=0,CHARGE_State=0,LCD_Brightness_AC=0,LCD_Brightness_DC=0,SM_TEMP=0,CPU_TEMP=0,Designed_FCC=0,PER=0;
     WORD Date=0;
     int RET=0,i=0,j=0,h=0,m=0,s=0,C1=0,C2=0;
     union REGS rs;
     int ERROR=0;
     float per=0,maxcur=0,mincur=0;
     int pack_year,pack_month,pack_day,year,week;
     int now_year,now_month,now_day;
     int cycle;
     int E1,E2;

     DWORD temp;
     char buffer[0x100]={NULL};

     TYPE16 *stpType16;
     szType *szmy;
     BYTE far *buf;
     FILE *pfHANDEL;

     outportb(0x70,0x32);
     temp=(inportb(0x71)&0xff)*0x100;
     outportb(0x70,0x09);
     temp+=inportb(0x71)&0xff;
     sprintf(buffer,"%04X",temp);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久66热re国产| 欧美另类久久久品| 国产精品资源在线观看| 高清久久久久久| 99久久er热在这里只有精品15| 色噜噜久久综合| 日韩欧美黄色影院| 久久综合给合久久狠狠狠97色69| 亚洲欧洲精品一区二区三区不卡 | 99久久精品情趣| 日韩毛片视频在线看| 久久黄色级2电影| 日本精品裸体写真集在线观看| 亚洲黄色免费网站| 国产综合久久久久久久久久久久| 91豆麻精品91久久久久久| 亚洲国产精品影院| 国产福利91精品| 91精品国产色综合久久不卡蜜臀 | 日本亚洲最大的色成网站www| 福利91精品一区二区三区| 中文字幕一区二区在线播放| 欧美三级电影网站| 国产精品电影一区二区三区| 久久电影网站中文字幕| 欧美国产精品一区二区| 捆绑调教一区二区三区| 国产色综合久久| 国精产品一区一区三区mba视频 | 欧美精品国产精品| 国产综合久久久久影院| 亚洲欧美福利一区二区| 成人毛片老司机大片| 久久久精品黄色| 国精产品一区一区三区mba桃花| 国产精品不卡视频| 欧美一区二区三区啪啪| 成人sese在线| 1024亚洲合集| 日韩女同互慰一区二区| 色播五月激情综合网| 国内精品写真在线观看| 亚洲综合免费观看高清完整版| 色播五月激情综合网| 久久国产精品免费| 一级日本不卡的影视| 在线不卡免费欧美| 99精品视频在线免费观看| 麻豆精品一区二区三区| 精品久久久久av影院| 国产精品白丝av| 日本美女视频一区二区| 一区二区三区精密机械公司| 久久久激情视频| 精品免费一区二区三区| 欧美日韩一区二区三区在线| 99久久婷婷国产综合精品| 国产剧情一区二区| 裸体在线国模精品偷拍| 肉色丝袜一区二区| 精品国产91乱码一区二区三区| 国产乱人伦偷精品视频不卡| 日韩av中文字幕一区二区| 一区二区三区在线观看动漫| 国产精品国产三级国产a | 日韩一区二区视频在线观看| 国内精品免费在线观看| 日韩国产精品久久久| 亚洲在线视频一区| 亚洲欧美国产三级| 亚洲桃色在线一区| 亚洲素人一区二区| 综合电影一区二区三区| 国产精品家庭影院| 国产精品青草综合久久久久99| 欧美性受xxxx黑人xyx| 九九视频精品免费| 美女网站色91| 免费观看日韩电影| √…a在线天堂一区| 国产精品久久毛片a| 国产女人水真多18毛片18精品视频| 色综合亚洲欧洲| 日本在线播放一区二区三区| 天天综合色天天| 国产精品久久久久久久久免费桃花 | 欧美一区二区成人| 69堂精品视频| a级精品国产片在线观看| 亚洲第一成年网| 国产亚洲一本大道中文在线| 久久只精品国产| 欧美激情综合在线| 国产精品成人免费在线| 一区二区高清视频在线观看| 亚洲成av人在线观看| 日韩中文欧美在线| 精品在线一区二区三区| 国产aⅴ综合色| 99久久综合国产精品| 色婷婷综合久久久久中文| 国产黑丝在线一区二区三区| 国产精品538一区二区在线| 成人在线视频一区| 91激情在线视频| 欧美一区二区三区在线观看 | 欧美日韩国产一区二区三区地区| 国产成人综合在线播放| 99久久精品免费看国产免费软件| 欧美日韩一区精品| 2023国产精品| 亚洲人被黑人高潮完整版| 午夜精品久久久久久不卡8050| 极品尤物av久久免费看| 成人性视频免费网站| 欧美日韩精品一区二区| 2017欧美狠狠色| 亚洲欧美国产三级| 久久99精品国产麻豆婷婷洗澡| 成人免费的视频| 91麻豆精品国产综合久久久久久| 国产亚洲综合色| 亚洲国产欧美日韩另类综合 | 成人免费视频app| 欧美日韩一二区| 国产日韩欧美a| 天天av天天翘天天综合网| 国产精品123| 制服丝袜亚洲播放| 中文在线一区二区 | 国产一区二区三区日韩| 毛片av一区二区| 一本色道久久综合精品竹菊| 精品成人免费观看| 亚洲国产成人91porn| 丁香婷婷综合色啪| 日韩小视频在线观看专区| 亚洲色图制服丝袜| 国产一区二区三区香蕉| 91精品国产91久久久久久最新毛片 | 久久精品国产精品青草| 色噜噜久久综合| 亚洲天堂久久久久久久| 国产成人综合在线| 精品欧美乱码久久久久久1区2区 | 一区视频在线播放| 国产在线播放一区三区四| 欧美日韩专区在线| 亚洲嫩草精品久久| jlzzjlzz亚洲日本少妇| 精品粉嫩超白一线天av| 欧美aⅴ一区二区三区视频| 在线观看国产一区二区| 欧美高清精品3d| 亚洲在线视频一区| 一本到一区二区三区| 国产精品午夜免费| 国产成人av自拍| 久久久久国产成人精品亚洲午夜| 欧美a级一区二区| 91精品国产一区二区三区蜜臀| 亚洲成人自拍偷拍| 色婷婷亚洲精品| 日韩美女久久久| 99精品一区二区三区| 中文字幕中文字幕一区二区| 成人激情开心网| 国产精品久久久爽爽爽麻豆色哟哟| 国产成人精品亚洲午夜麻豆| 久久综合久久综合九色| 精品在线观看视频| 久久久久久久久久看片| 韩国三级在线一区| 久久精品一二三| 丁香婷婷综合激情五月色| 中文字幕成人在线观看| 9i看片成人免费高清| 亚洲欧美国产毛片在线| 欧美性色黄大片| 午夜免费欧美电影| 日韩一区二区三| 国产一区二区三区在线观看免费| 国产日韩欧美一区二区三区乱码| 国产成人自拍网| 国产精品大尺度| 在线观看中文字幕不卡| 午夜精品免费在线| 日韩美女视频在线| 国产不卡视频一区| 一区二区三区中文在线| 欧美精品在线观看一区二区| 美女在线视频一区| 欧美激情一区二区| 色一情一乱一乱一91av| 亚洲超碰97人人做人人爱| 精品欧美乱码久久久久久1区2区| 国产91在线观看| 亚洲一区二区三区视频在线播放 | 亚洲欧美电影院| 91精品免费观看|