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

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

?? ptd.c

?? 此為philip 1362 USB DOS下的驅(qū)動(dòng)程式包, 已經(jīng)共測(cè)試並內(nèi)含有說(shuō)明文件
?? C
字號(hào):
#include "isp1362.h"

unsigned int port1speed=0;
unsigned int port2speed=0;
unsigned int port_speed=0;

unsigned int wait_time=20;
unsigned int retry=50000;

unsigned int c_ptd[4];

void send_iso(unsigned int *a_ptr,unsigned int bytesize,unsigned int ptl,unsigned int addr)
{
 random_write(a_ptr,addr,920);
}

unsigned int error_recorder(char mode,int ccode1, int ccode2)
{
 static int cnt=0;
 static int c1[2048];
 static int c2[2048];

 int data2return;

 if(mode=='W')
 {
  c1[cnt]=ccode1;
  c2[cnt]=ccode2;
  cnt++;

  if(cnt>2047) {cnt=2047;}
 }

 if(mode=='R')
 {
  data2return=c1[ccode1];
  data2return=data2return<<8;
  data2return|=c2[ccode2];
 }

 if(mode=='C')
 {
  data2return=cnt;
 }

 if(mode=='Z')
 {
  cnt=0;
 }

 return(data2return);
}

unsigned int addr_info(int addr,int mode,int dtype,int para)
{
 static unsigned int speed[8];
 static unsigned int maxpac[8];
 static unsigned int iman[8];
 static unsigned int ipro[8];

 unsigned int data2return;

 //Displaying data
 if(mode=='D')
 {
  printf("\nPort 1 : Speed[%2d] MPS[%4d] iMan[%2d] iPro[%2d]",speed[1],maxpac[1],iman[1],ipro[1]);
  printf("\nPort 2 : Speed[%2d] MPS[%4d] iMan[%2d] iPro[%2d]",speed[2],maxpac[2],iman[2],ipro[2]);
 }

 //Writing data
 if(mode=='W')
 {
  if(dtype=='S')
  {
   speed[addr]=para;
  }

  if(dtype=='M')
  {
   maxpac[addr]=para;
  }

  if(dtype=='O') //Manufaturer
  {
   iman[addr]=para;
  }

  if(dtype=='P') //Product
  {
   ipro[addr]=para;
  }
 }

 //Reading data
 if(mode=='R')
 {
  if(dtype=='S')
  {
   data2return=speed[addr];
  }

  if(dtype=='M')
  {
   data2return=maxpac[addr];
  }

  if(dtype=='O')
  {
   data2return=iman[addr];
  }

  if(dtype=='P')
  {
   data2return=ipro[addr];
  }
 }

 return(data2return);
}

unsigned int get_port_speed(unsigned int port)
{
 if(port==1) {return(port1speed);}
 if(port==2) {return(port2speed);}
}

void set_port_speed(unsigned int port, unsigned int speed)
{
 if(port==1)
 {
  port1speed=speed;
  addr_info(1,'W','S',speed);
 }

 if(port==2)
 {
  port2speed=speed;
  addr_info(2,'W','S',speed);
 }

 port_speed=speed;
}



void poll(unsigned int poll_len)
{
 unsigned int temp=0;

 do
  {
   temp++;
  }
 while(temp<poll_len);
}

struct ptd_struct
{
 unsigned int c_code;
 unsigned int active_bit;
 unsigned int toggle;
 unsigned int actual_size;
 unsigned int endpoint;
 unsigned int last_ptd;
 unsigned int speed;
 unsigned int max_size;
 unsigned int pid;
 unsigned int total_size;
 unsigned int format;
 unsigned int func_addr;
 unsigned char fm;
}
ptd2send;

unsigned int send_control(unsigned int *a_ptr,unsigned int *r_ptr)
{
 unsigned int cnt=retry;
 unsigned int active_bit;
 unsigned int abuf[128];
 unsigned int UpInt;
 unsigned int ccode;
 unsigned int timeout=9;
 unsigned int ccode1=0,ccode2=0;

 do
 {
  cnt=retry;

  write_atl(a_ptr,8);  //write 16 bytes
  w16(HcUpInt,0x100);
  r32(HcATLDone); //read and clear done map, enables ATL interrupt
  r32(HcATLDone); //read and clear done map, enables ATL interrupt
  w16(HcBufStatus,0x08);
  do
   {
	UpInt=r16(HcUpInt);
	if( (UpInt&0x100)!=0) {active_bit=0;}
	else {active_bit=1;}

	poll(50);
	cnt--;
   }
  while((cnt!=0)   &&   (active_bit!=0));
  w16(HcBufStatus,0x00);
  read_atl(r_ptr,72);

  //This part does 1 retry if ccode!=0, and records the errors
  ccode=((*r_ptr)&(0xF000))>>12;
  if(timeout==9) {ccode1=ccode;}
  if(timeout==8) {ccode2=ccode;}

  timeout--;
 }
 while(  (ccode!=0) && (timeout!=0)  );

 if(ccode1!=0 && ccode2!=0)
 {
  error_recorder('W',ccode1,ccode2);
 }
 return(cnt);
}

unsigned int send_int(unsigned int *a_ptr,unsigned int *r_ptr)
{
 unsigned int cnt=retry;
 unsigned int active_bit;
 unsigned int abuf[128];
 unsigned int UpInt;

 unsigned int far *dptr;

 dptr=a_ptr;

 write_int(a_ptr,8);  //write 16 bytes

 w16(HcUpInt,0x0080);
 w16(HcBufStatus,0x04);

 r32(HcIntDone); //read and clear done map, enables ATL interrupt

 do
  {
   UpInt=r16(HcUpInt);
   if( (UpInt&0x80)!=0) {active_bit=0;}
   else {active_bit=1;}

   poll(50);
   cnt--;
  }
 while((cnt>0)   &&   (active_bit!=0));

 w16(HcBufStatus,0x00);

 read_int(r_ptr,72);

 return(cnt);
}

void full_ptd(int *rptr,char token,char ep,int max,int total,char tog,char addr,char port)
{
 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=tog;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=0;

 ptd2send.speed=port_speed;
 if(port==1) {ptd2send.speed=port1speed;}
 if(port==2) {ptd2send.speed=port2speed;}

 ptd2send.max_size=max;
 ptd2send.total_size=total;
 ptd2send.pid= token;
 ptd2send.format=0;
 ptd2send.fm=0;
 ptd2send.func_addr=addr;

 *(rptr+0)=	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 *(rptr+1)=  (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 *(rptr+2)=  (0x0000             	&0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 *(rptr+3)=  (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);
}

void make_ptd(int *rptr,char token,char ep,int max,char tog,char addr,char port)
{
 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=tog;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=0;

 ptd2send.speed=port_speed;
 if(port==1) {ptd2send.speed=port1speed;}
 if(port==2) {ptd2send.speed=port2speed;}

 ptd2send.max_size=max;
 ptd2send.total_size=max;
 ptd2send.pid= token;
 ptd2send.format=0;
 ptd2send.fm=0;
 ptd2send.func_addr=addr;

 *(rptr+0)=	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 *(rptr+1)=  (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 *(rptr+2)=  (0x0000             	&0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 *(rptr+3)=  (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);
}

void new_make_ptd(int *rptr,char token,char ep,int max,char tog,char addr,char port, unsigned int total)
{
 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=tog;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=0;

 ptd2send.speed=port_speed;
 if(port==1) {ptd2send.speed=port1speed;}
 if(port==2) {ptd2send.speed=port2speed;}

 ptd2send.max_size=max;
 ptd2send.total_size=total;
 ptd2send.pid= token;
 ptd2send.format=0;
 ptd2send.fm=0;
 ptd2send.func_addr=addr;

 *(rptr+0)=	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 *(rptr+1)=  (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 *(rptr+2)=  (0x0000             	&0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 *(rptr+3)=  (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);
}



void make_int_ptd(int *rptr,char token,char ep,int max,char tog,char addr,char port,int freq)
{
 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=tog;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=0;

 ptd2send.speed=port_speed;
 if(port==1) {ptd2send.speed=port1speed;}
 if(port==2) {ptd2send.speed=port2speed;}

 ptd2send.max_size=max;
 ptd2send.total_size=max;
 ptd2send.pid= token;
 ptd2send.format=0;
 ptd2send.fm=freq;
 ptd2send.func_addr=addr;

 *(rptr+0)=	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 *(rptr+1)=  (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 *(rptr+2)=  (0x0000             	&0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 *(rptr+3)=  (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);
}


//This PTD is used to simple bulk test to check the mechanism of Skip/Last
void make_xbulk(char ep,char addr,int *rptr)
{
 unsigned int *ptd_ptr;

 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=0;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=0;
 ptd2send.speed=0;
 ptd2send.max_size=128;
 ptd2send.total_size=128;
 ptd2send.pid= OUT;
 ptd2send.format=0;
 ptd2send.fm=0;
 ptd2send.func_addr=addr;

 *(rptr+0)=	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 *(rptr+1)= (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 *(rptr+2)= (0x0002                 &0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 *(rptr+3)= (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);
}

void send_ptl(unsigned int *a_ptr,unsigned int bytesize,unsigned int ptl,unsigned int addr)
{
 unsigned int abuf[8];

 abuf[0]=*(a_ptr+0);
 abuf[1]=*(a_ptr+1);
 abuf[2]=*(a_ptr+2);
 abuf[3]=*(a_ptr+3);

 random_write(abuf,addr,176);
}

unsigned int ptl_ptd(char type_ptd,char last,char ep,unsigned int max,char tog,char addr,unsigned char frame_no)
{
 unsigned int *ptd_ptr;

 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=tog;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=last;
 ptd2send.speed=port1speed;
 ptd2send.max_size=max;
 ptd2send.total_size=max;
 ptd2send.pid= type_ptd;
 ptd2send.format=1;
 ptd2send.fm=frame_no;
 ptd2send.func_addr=addr;

 c_ptd[0]= 	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 c_ptd[1]=  (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 c_ptd[2]=  (0x0000             	&0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 c_ptd[3]=  (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);

 ptd_ptr=c_ptd;

 return(ptd_ptr);
}

void iso_ptd(unsigned int *iso,char type_ptd,char last,char ep,unsigned int max,char tog,char addr,unsigned char frame_no)
{
 ptd2send.c_code=0x0F;
 ptd2send.active_bit=1;
 ptd2send.toggle=tog;
 ptd2send.actual_size=0;
 ptd2send.endpoint=ep;
 ptd2send.last_ptd=last;
 ptd2send.speed=port1speed;
 ptd2send.max_size=max;
 ptd2send.total_size=max;
 ptd2send.pid= type_ptd;
 ptd2send.format=1;
 ptd2send.fm=frame_no;
 ptd2send.func_addr=addr;

 *(iso+0)= 	(ptd2send.c_code     	&0x0000)<<12
		   |(ptd2send.active_bit 	&0x0001)<<11
		   |(ptd2send.toggle		&0x0001)<<10
		   |(ptd2send.actual_size   &0x03FF);

 *(iso+1)=  (ptd2send.endpoint		&0x000F)<<12
		   |(ptd2send.last_ptd		&0x0001)<<11
		   |(ptd2send.speed			&0x0001)<<10
		   |(ptd2send.max_size		&0x03FF);

 *(iso+2)=  (0x0000             	&0x000F)<<12
		   |(ptd2send.pid     		&0x0003)<<10
		   |(ptd2send.total_size	&0x03FF);

 *(iso+3)=  (ptd2send.fm            &0x00FF)<<8
		   |(ptd2send.format		&0x0001)<<7
		   |(ptd2send.func_addr     &0x007F);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚日韩国产aⅴ精品中极品| 这里只有精品免费| 国产不卡一区视频| 韩国女主播成人在线观看| 蜜臀久久99精品久久久画质超高清| 午夜国产不卡在线观看视频| 亚洲大尺度视频在线观看| 亚洲影视在线观看| 亚洲mv在线观看| 石原莉奈在线亚洲二区| 麻豆免费看一区二区三区| 久久成人精品无人区| 国产乱子伦一区二区三区国色天香| 精品无人区卡一卡二卡三乱码免费卡| 黄色日韩三级电影| 成人国产精品视频| 色琪琪一区二区三区亚洲区| 欧美日韩久久一区二区| 日韩一区二区三区四区| 精品不卡在线视频| 中文文精品字幕一区二区| 日韩理论片在线| 亚洲一区二区三区四区在线观看 | 欧美自拍丝袜亚洲| 欧美妇女性影城| 亚洲精品在线观看网站| 国产蜜臀97一区二区三区 | 国产一区二区三区在线观看精品| 国产suv一区二区三区88区| 亚瑟在线精品视频| 国内精品国产成人国产三级粉色 | 中文子幕无线码一区tr| 国产毛片精品视频| 成人av影视在线观看| 日本精品一区二区三区四区的功能| 欧美日韩精品福利| 久久综合狠狠综合| 一区二区三区四区av| 蜜桃av噜噜一区| 91在线播放网址| 欧美成人精品1314www| 国产精品久久久久久久久快鸭 | 综合av第一页| 日产精品久久久久久久性色| 国产成人精品免费| 欧美日韩国产小视频在线观看| 久久综合久久综合久久综合| 亚洲天堂福利av| 久久国产麻豆精品| 色哟哟在线观看一区二区三区| 精品欧美一区二区三区精品久久| 亚洲色图一区二区| 蜜臀av性久久久久蜜臀av麻豆| 成人a区在线观看| 91精品啪在线观看国产60岁| 国产精品乱人伦中文| 免费成人小视频| av网站一区二区三区| 精品国产区一区| 一区二区三区精品视频| 国产98色在线|日韩| 91麻豆精品国产91久久久久久| 中文字幕一区二区日韩精品绯色| 蜜桃精品视频在线观看| 91国偷自产一区二区三区观看| 国产女人aaa级久久久级| 日韩成人精品在线观看| 欧洲精品视频在线观看| 亚洲国产精品av| 国内精品久久久久影院薰衣草| 欧美人体做爰大胆视频| 亚洲人成小说网站色在线| 狠狠久久亚洲欧美| 6080国产精品一区二区| 亚洲免费观看高清在线观看| 国产成人高清视频| 欧美tk—视频vk| 视频一区二区三区中文字幕| 色妹子一区二区| 国产精品国产三级国产普通话三级 | 欧美精品亚洲一区二区在线播放| 国产成人综合网站| 日韩欧美的一区| 婷婷开心激情综合| 91免费小视频| 中文字幕一区二区视频| 成人污视频在线观看| 久久精品一区二区| 韩国三级电影一区二区| 精品成a人在线观看| 久久国产尿小便嘘嘘尿| 日韩亚洲欧美成人一区| 午夜久久久久久久久| 欧美这里有精品| 亚洲女人****多毛耸耸8| 色呦呦国产精品| 亚洲乱码国产乱码精品精小说 | 欧美日韩久久一区| 亚洲h动漫在线| 欧美日韩在线精品一区二区三区激情| 亚洲免费观看高清完整版在线观看熊 | 91免费看视频| 一区二区不卡在线视频 午夜欧美不卡在| 不卡欧美aaaaa| 亚洲欧美日韩国产综合在线 | 综合久久久久综合| youjizz久久| 亚洲欧美一区二区久久| 欧美午夜不卡视频| 天涯成人国产亚洲精品一区av| 欧美色精品在线视频| 天天综合网 天天综合色| 5月丁香婷婷综合| 国模无码大尺度一区二区三区| 日本一区二区三区久久久久久久久不| 国产成人免费在线视频| 国产精品的网站| 在线免费av一区| 日韩精品乱码免费| 欧美xingq一区二区| 国产精品综合二区| 中文字幕一区二区三| 在线观看一区二区视频| 日本欧美加勒比视频| 久久综合国产精品| 91视频一区二区| 性欧美疯狂xxxxbbbb| 日韩女优av电影在线观看| 国产黄色成人av| 亚洲精品老司机| 欧美一区二区三区播放老司机| 国产精品77777| 亚洲柠檬福利资源导航| 欧美一区二区成人| 成人妖精视频yjsp地址| 一区二区三区四区在线免费观看| 欧美一区日韩一区| 福利一区福利二区| 亚洲超碰精品一区二区| 久久99久久久久| 中文字幕久久午夜不卡| 欧美视频精品在线观看| 黄一区二区三区| 亚洲黄色小视频| 久久伊99综合婷婷久久伊| 色综合天天综合网天天看片| 男女男精品网站| 国产精品久久久久影院色老大| 欧美久久久久久蜜桃| 国产suv一区二区三区88区| 亚洲电影第三页| 国产欧美日韩另类视频免费观看| 在线视频一区二区三区| 韩国毛片一区二区三区| 亚洲福利视频一区| 国产女同性恋一区二区| 91精品国产一区二区三区香蕉| 99精品欧美一区| 精品在线观看视频| 亚洲国产三级在线| 亚洲国产精品99久久久久久久久| 欧美美女激情18p| 99久久久国产精品免费蜜臀| 麻豆国产欧美一区二区三区| 亚洲精品亚洲人成人网| 久久久久青草大香线综合精品| 欧美日韩一区高清| www.综合网.com| 国产一区二区不卡在线| 午夜国产不卡在线观看视频| 18成人在线观看| 久久久777精品电影网影网 | 亚洲视频一二三| 久久综合狠狠综合久久激情 | 亚洲一级不卡视频| 国产精品久久久久久久久免费桃花 | 4hu四虎永久在线影院成人| 99视频热这里只有精品免费| 久久国产欧美日韩精品| 日韩国产在线一| 亚洲国产精品一区二区www| 国产精品日韩精品欧美在线| 久久综合色8888| 欧美一级一区二区| 欧美日韩你懂的| 一本到不卡精品视频在线观看| 成人一道本在线| 国产91在线看| 国产精品18久久久久久久久久久久| 日本亚洲三级在线| 午夜av一区二区三区| 亚洲国产欧美另类丝袜| 一区二区三区在线高清| 亚洲精品国产高清久久伦理二区| 中文字幕巨乱亚洲| 亚洲国产经典视频| 欧美激情综合五月色丁香 | 久久66热偷产精品| 免费观看30秒视频久久| 无码av中文一区二区三区桃花岛|