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

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

?? x1.c

?? 此為philip 1362 USB DOS下的驅動程式包, 已經共測試並內含有說明文件
?? C
字號:

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
#include <bios.h>
#include <mem.h>
#include <graphics.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>

#include "isp1362.h"
#include "isa290.h"
#include "reg.h"
#include "cheeyu.h"

#define 	version 	1.18
//	1.18	Release Version

#define 	TRUE  	1
#define 	FALSE 	0

unsigned int		temp;
unsigned int		hc_data;
unsigned int		hc_com;
unsigned int		dc_data;
unsigned int		dc_com;
unsigned int		g_ISA_base_address;
unsigned int		g_1161_command_address;
unsigned int		g_1161_data_address;
unsigned char		g_host_IRQ_num;
unsigned char 	g_is_PCI;

#ifdef __cplusplus
	#define __CPPARGS ...
#else
	#define __CPPARGS
#endif

#define PIC1_base 0x20		// Master Interrupt Controller
#define PIC1_mask 0x21
#define PIC2_base 0xA0		// Slave Interrupt Controller
#define PIC2_mask 0xA1
#define EOI 0x20			// Non-specific End Of Interrupt

void open_interrupt(void);
void close_interrupt(void);
void end_interrupt(void);
void interrupt far intserv(__CPPARGS);
void interrupt far(*oldfunc)(__CPPARGS);
int		get_int_num( int irq_num );
void	get_PIC_masks( int *m_lower , int *m_higher, int irq_num );

int x=0;
int global_upint=0;
long global_intstatus=0;
int int_q=0;

void interrupt far intserv(__CPPARGS)
{
 disable();
 end_interrupt();

 x++;
 if(int_q==0)
 {
  global_upint=r16(HcUpInt);
  global_intstatus=r32(HcIntStatus);
  int_q++;
 }

 w16(HcUpInt, 0xFFFF);
 w32(HcIntStatus, 0xFFFFFFFF);
 w16(HcUpInt, 0xFFFF);
 w32(HcIntStatus, 0xFFFFFFFF);

 enable();
}

int get_int_num( int irq_num )
{
#define		LowerINTOffset		0x08
#define		HigherINTOffset		0x68

	return ( ( irq_num < 8 ) ? irq_num + LowerINTOffset : irq_num + HigherINTOffset );
}


void get_PIC_masks( int *m_lower , int *m_higher, int irq_num )
{
	if ( irq_num < 8 )
	{
		*m_lower	= 0x01 << irq_num;
		*m_higher	= 0x00;
	}
	else
	{
		*m_lower	= 0x04;		/*	for cascaded IRQ(IRQ2)  */
		*m_higher	= 0x01 << (irq_num - 8);
	}
}

void open_interrupt(void)
{
 unsigned int temp;
 int mask1, mask2;
 int			int_num, irq_num;
 int			PIC_mask1, 	PIC_mask2;

 disable();		// Disable all ints
 outportb(PIC2_base,EOI);	// Reset PIC2
 outportb(PIC1_base,EOI);	// Reset PIC1

 irq_num = g_host_IRQ_num;
 int_num		= get_int_num( irq_num );
 get_PIC_masks( &PIC_mask1, &PIC_mask2, irq_num );

 oldfunc=getvect(int_num);	// Save old interrupt vector
 setvect(int_num, intserv);	// intserv is new ISR

 mask1=inportb(PIC1_mask);
 outportb(PIC1_mask, mask1&~PIC_mask1);	// Clear bit 2(IRQ2) - Enable Master IRQ2
 mask2= inportb(PIC2_mask);
 outportb(PIC2_mask, mask2&~PIC_mask2);	// Clear bit 2(IRQ10) (Enable IRQ10)

 end_interrupt();
 enable();
}

void close_interrupt()
{
 int mask, irq_num, int_num;
 int			PIC_mask1, 	PIC_mask2;
 disable();

 irq_num = g_host_IRQ_num;
 int_num		= get_int_num( irq_num );
 get_PIC_masks( &PIC_mask1, &PIC_mask2, irq_num );


 setvect(int_num, oldfunc);	// Set back to old vector address
 outportb( 0x21, inportb( 0x21 ) | PIC_mask1 );
 outportb( 0xA1, inportb( 0xA1 ) | PIC_mask2 );
 enable();
}

void end_interrupt(void)
{
 outportb(PIC2_base,EOI);	// Send EOI to PIC2
 outportb(PIC1_base,EOI);	// Send EOI to PIC1
}


void decode_dev(unsigned int *reply,char mode,char startx)
{
 int starty;

 starty=5;

 if(mode==1)
 {
  gotoxy(startx,starty + 1);
  printf("DescriptorType :0x%8X "       ,(reply[0]&0xFF00)>>8);
  gotoxy(startx,starty + 2);
  printf("DescriptorSize :  %8d "       ,reply[0]&0x00FF);
  gotoxy(startx,starty + 3);
  printf("USB DeviceType :     %2X.%2X ",(reply[1]&0xFF00)>>8,reply[1]&0x00FF);
  gotoxy(startx,starty + 4);
  printf("Class          :0x%8X "       ,reply[2]&0x00FF);
  gotoxy(startx,starty + 5);
  printf("SubClass       :0x%8X "       ,(reply[2]&0xFF00)>>8);
  gotoxy(startx,starty + 6);
  printf("bDeviceProtocol:0x%8X "       ,reply[3]&0x00FF);
  gotoxy(startx,starty + 7);
  printf("bMaxPacSize 0  :0x%8X "       ,(reply[3]&0xFF00)>>8);
  gotoxy(startx,starty + 8);
  printf("VendorID       :0x%8X "       ,reply[4]);
  gotoxy(startx,starty + 9);
  printf("ProductID      :0x%8X "       ,reply[5]);
  gotoxy(startx,starty +10);
  printf("BCD Device     :0x%8X "       ,reply[6]);
  gotoxy(startx,starty +11);
  printf("iManufacturer  :0x%8X "       ,(reply[7]&0x00FF)   );
  gotoxy(startx,starty +12);
  printf("iProduct       :0x%8X "       ,(reply[7]&0xFF00)>>8);
  gotoxy(startx,starty +13);
  printf("SerialNumber   :0x%8X "       ,(reply[8]&0x00FF));
  gotoxy(startx,starty +14);
  printf("No of Config   :0x%8X "       ,(reply[8]&0xFF00)>>8);
 }
}

void enu(void)
{
 unsigned int cbuf[128];
 unsigned int rbuf[128];

 unsigned char udn[64];

 //atl parameters
 unsigned long atl_skip=0xFFFFFFFE;
 unsigned long atl_last=0x00000001;

 unsigned int  atl_blk_size=64;
 unsigned int  atl_cnt=1;
 unsigned int  atl_timeout=200;
 unsigned int  mycode;
 unsigned int  cnt,name_length;
 unsigned int  iManufacturer,iProduct;
 unsigned long rhp1,rhp2;
 unsigned int user_in=0;

 clrscr();
 set_operational();
 enable_port();
 delay(300);

 reset_usb();
 erase_all();
 set_operational();
 enable_port();
 delay(300);


 w16(HcBufStatus,0x00);

 //Setup ATL Parameters
 w32(HcATLSkip,atl_skip);
 w32(HcATLLast,atl_last);
 w16(HcATLBlkSize,atl_blk_size);
 w16(HcATLThrsCnt,atl_cnt);
 w16(HcATLTimeOut,atl_timeout);
 w16(HcUpIntEnable,0x100);

 mycode=assign_address(1,2,0);

 if((mycode&(0xF0F0))!=0)
 {
  printf("\nError in assigning address to USB devices, MyCode:%04X",mycode);
  getch();
  clrscr();
  return 0;
 }

 mycode=get_control(rbuf,1,'D',0,1);
 gotoxy(1,2);
 printf("GetDesc 1:%4X",mycode);
 if(mycode==0x0300)
 {
  decode_dev(rbuf,1,1);
  iManufacturer = rbuf[7]&0xFF;
  iProduct = (rbuf[7]&0xFF00)>>8;

  addr_info(1,'W','O',iManufacturer);
  addr_info(1,'W','P',iProduct);
 }

 mycode=get_control(rbuf,2,'D',0,2);
 gotoxy(41,2);
 printf("GetDesc 2:%4X",mycode);
 if(mycode==0x0300)
 {
  decode_dev(rbuf,1,41);
  iManufacturer = rbuf[7]&0xFF;
  iProduct = (rbuf[7]&0xFF00)>>8;

  addr_info(2,'W','O',iManufacturer);
  addr_info(2,'W','P',iProduct);
 }

 mycode=get_control(rbuf,1,'S',addr_info(1,'R','O',0),1);

 if(mycode==0x0300)
 {
  convert_string(udn,rbuf);
  gotoxy(1,3);
  printf("Manufr   : %s ",udn);
 }

 mycode=get_control(rbuf,1,'S',addr_info(1,'R','P',0),1);

 if(mycode==0x0300)
 {
  convert_string(udn,rbuf);
  gotoxy(1,4);
  printf("Product  : %s ",udn);
 }

 mycode=get_control(rbuf,2,'S',addr_info(2,'R','O',0),2);

 if(mycode==0x0300)
 {
  convert_string(udn,rbuf);
  gotoxy(41,3);
  printf("Manufr   : %s ",udn);
 }

 mycode=get_control(rbuf,2,'S',addr_info(2,'R','P',0),2);

 if(mycode==0x0300)
 {
  convert_string(udn,rbuf);
  gotoxy(41,4);
  printf("Product T: %s ",udn);
 }

 gotoxy(1,20);
 addr_info(0,'D',0,0);

 do
  {
   gotoxy(1,25);
   printf("Frame Number = %8lX           Press '1' to go back to main menu",r32(HcFmNo));

   user_in=read_key(0);
  }
 while(user_in!='1');
}



void bmat(void)
{
 int user_in;
 int basey=370;
 int line_space=10;

 gui();

 clrscr();
 cleardevice();

 mem_init_mem();
 mem_map();

 do
 {
  e_box(320,418,638,110);

  outtextxy(10,basey               ,"Press 1 to reset memory using ABSOLUTE address");
  outtextxy(10,basey+line_space    ,"Press 2 to run TortureTest on 1362");

  outtextxy(10,basey+(line_space*3),"Press 4 to display memory content details");
  outtextxy(10,basey+(line_space*4),"Press 5 to write sequential values");
  outtextxy(10,basey+(line_space*5),"Press 6 to perform randomised Write/Read");
  outtextxy(10,basey+(line_space*6),"Press 7 to refresh memory snapshot");
  outtextxy(10,basey+(line_space*7),"");

  outtextxy(10,basey+(line_space*9),"Press 9 to exit submenu");

  do
   {
	delay(1);
	user_in=read_key(0);
   }
  while(user_in==0);

  switch(user_in)
  {
   case '1': erase_all(); mem_map();		break;
   case '2': torture_test();				break;

   case '4': see_buf();						break;
   case '5': set_all();  mem_map();			break;
   case '6': r_test();						break;
   case '7': mem_map();						break;
   case '8': break;

   case '9': break;

  }
 }
 while(user_in!='9');

 close_gui();
}

void chip_reset(void)
{
 w16(HcReset,0x00F6);
}

void suspend(void)
{
 unsigned int mode;
 unsigned int otgcontrol;
 unsigned int user_in;

 clrscr();

 gotoxy(35,12);
 printf("\nSuspend");


if (g_is_PCI == FALSE)  w16(HcHWCfg		, 0x002D	);
else 				w16(HcHWCfg		, 0x0029	);
 w32(HcFmItv  		, 0x25002EDF);
 w32(HcControl		, 0x00000680);
 w32(HcControl		, 0x000006C0);

 do
  {
   delay(10);

   gotoxy(1,1);
   printf("HcIntStatus = %8lX",r32(HcIntStatus) );

   delay(2);
   gotoxy(1,1);
   printf("HcIntStatus = %8lX",r32(HcIntStatus) );

   user_in=read_key(0);
  }
 while(user_in!='1');

 getch();
}

void main(void)
{
 unsigned int cnt;
 unsigned int user_in;
 unsigned int chip_id;
 unsigned int hw_cfg;
 unsigned int temp;

 clrscr();

 if ( 0 != (findPCIdev(0x00068000, &g_ISA_base_address, &g_host_IRQ_num)))	//jason add PnP
 {
 g_is_PCI = TRUE;
 hc_data = g_ISA_base_address;
 hc_com = g_ISA_base_address + 2;
 dc_data = g_ISA_base_address + 4;
 dc_com = g_ISA_base_address + 6;
 set_pci_bridge();
 }
 else
 {
 g_is_PCI = FALSE;
 hc_data=0x290;
 hc_com=0x292;
 dc_data=0x294;
 dc_com=0x296;
 g_ISA_base_address=hc_data;
 g_host_IRQ_num=0xa;
 }

 delay(100);

 w16(HcATLLen,0x100);
 w16(HcPTLLen,0x1840);
 w16(HcINTLen,0x100);

 _setcursortype(_NOCURSOR);

 do
  {
   clrscr();
   printf("\nISP1362 %s HOST Controller - X2 Release Version %.2f",g_is_PCI ? "PCI" : "ISA",version);
   printf("\n=====================================================");
   printf("\n0 Chip Reset");
   printf("\n2 Port Monitor");
   printf("\n3 Enumeration");
   printf("\n4 Read HC Registers");
   printf("\n5 Mouse");
   printf("\n6 Register Read/Write Test");
   printf("\n7 BMAT Bitmapped Memory Analysis Tool");

   printf("\n\n9 Exit");
   chip_reset();
   printf("\n\n  HcChipID : 0x%4X",r16(HcChipID));

   printf("\n\n  HC base address: 0x%4X",g_ISA_base_address);
   printf("\n  HC IRQ used: 0x%X",g_host_IRQ_num);

   user_in=read_key(1);

   if(user_in=='0') {chip_reset();}

   if(user_in=='2') {port_monitor();}
   if(user_in=='3') {enu();}
   if(user_in=='4') {load_def(); gui(); read_registers(); close_gui();}
   if(user_in=='5') {mouse();}
   if(user_in=='6') {load_def(); gui(); wr_reg(); close_gui();}
   if(user_in=='7') {bmat();}
  }
 while(user_in!='9');
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品欧美日韩| 日本亚洲三级在线| 夜夜嗨av一区二区三区网页| 午夜电影一区二区三区| 久久99九九99精品| 欧美视频中文字幕| 国产欧美1区2区3区| 日本午夜一区二区| 色8久久精品久久久久久蜜| 久久男人中文字幕资源站| 亚洲gay无套男同| 国产成人精品网址| 欧美一区二区三区免费| 亚洲另类春色校园小说| 国产成人综合亚洲91猫咪| 欧美日韩三级在线| 亚洲三级电影网站| 国产一区福利在线| 91精品国产综合久久婷婷香蕉| 国产精品另类一区| 国产福利精品一区二区| 日韩欧美国产一区二区在线播放| 亚洲精品福利视频网站| av一二三不卡影片| 国产精品网站在线播放| 国产一区美女在线| 日韩欧美一卡二卡| 日本aⅴ亚洲精品中文乱码| 欧美丝袜丝交足nylons| 亚洲欧美电影一区二区| 不卡一二三区首页| 日本一区二区三区四区在线视频 | 人人狠狠综合久久亚洲| 色噜噜久久综合| 亚洲激情图片小说视频| a4yy欧美一区二区三区| 国产精品二区一区二区aⅴ污介绍| 国内精品免费**视频| 日韩视频免费观看高清完整版| 日韩国产精品久久久| 欧美日韩国产首页| 日韩精品一卡二卡三卡四卡无卡| 欧美无砖砖区免费| 午夜一区二区三区视频| 欧美精选午夜久久久乱码6080| 亚洲国产毛片aaaaa无费看| 欧美无乱码久久久免费午夜一区| 亚洲午夜羞羞片| 欧美高清性hdvideosex| 看电影不卡的网站| 成人免费精品视频| 国产女人18水真多18精品一级做| 日韩欧美国产1| 婷婷成人激情在线网| 7777精品久久久大香线蕉| 欧美人成免费网站| 欧美高清www午色夜在线视频| 色综合一区二区| 久久久亚洲综合| 亚洲国产日日夜夜| 成人综合婷婷国产精品久久蜜臀| 91精品福利在线一区二区三区| 中文字幕视频一区| 国产精品一区三区| 精品国产乱码久久久久久久| 亚洲.国产.中文慕字在线| 91年精品国产| 综合网在线视频| 成人av午夜电影| 亚洲国产精品ⅴa在线观看| 精品一区二区三区日韩| 日韩一区二区三区高清免费看看| 亚洲大尺度视频在线观看| 色悠悠久久综合| 北条麻妃一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产精品久久久久四虎| 成人在线综合网| 国产视频亚洲色图| 国产精品白丝jk白祙喷水网站| 精品久久久三级丝袜| 精东粉嫩av免费一区二区三区| 宅男在线国产精品| 青青草伊人久久| 日韩欧美一级二级三级久久久| 日本欧美久久久久免费播放网| 在线播放91灌醉迷j高跟美女| 天天影视涩香欲综合网| 欧美一区二区三区日韩| 激情综合一区二区三区| 久久久精品综合| 成人丝袜视频网| 亚洲激情av在线| 欧美久久免费观看| 久久99精品国产麻豆婷婷洗澡| 337p粉嫩大胆噜噜噜噜噜91av| 国产成人免费网站| 亚洲欧美日本在线| 欧美日本国产一区| 精品一区二区三区的国产在线播放| 欧美大片拔萝卜| 成人黄色在线看| 一区二区三区影院| 日韩精品一区在线| 国产91高潮流白浆在线麻豆| 亚洲女同女同女同女同女同69| 欧美日韩一级黄| 久久99国产精品尤物| 国产精品国产三级国产a| 欧美亚洲精品一区| 久久电影网站中文字幕| 久久久一区二区三区捆绑**| 97久久精品人人做人人爽50路 | 国产麻豆欧美日韩一区| 亚洲欧洲日韩一区二区三区| 欧美浪妇xxxx高跟鞋交| 国产成人精品免费一区二区| 亚洲一二三级电影| 精品国产伦一区二区三区观看体验 | 中文字幕亚洲成人| 日韩一级免费观看| av成人免费在线观看| 久久国产精品99精品国产 | 色综合久久久久综合体| 秋霞成人午夜伦在线观看| 国产精品久久网站| 日韩欧美电影在线| 色999日韩国产欧美一区二区| 韩国成人在线视频| 天天亚洲美女在线视频| 中文文精品字幕一区二区| 777久久久精品| 在线一区二区观看| 懂色av一区二区三区免费观看| 日本不卡一二三| 亚洲国产欧美在线| 亚洲欧美在线aaa| 国产喂奶挤奶一区二区三区 | 狠狠色丁香久久婷婷综合丁香| 夜夜亚洲天天久久| 亚洲人快播电影网| 中文字幕免费在线观看视频一区| 日韩免费视频线观看| 欧美性猛交一区二区三区精品 | 亚洲高清在线精品| 亚洲天天做日日做天天谢日日欢| 国产婷婷色一区二区三区在线| 日韩一区二区三区在线视频| 欧美视频第二页| 色就色 综合激情| 色琪琪一区二区三区亚洲区| 成人av资源下载| 成人深夜在线观看| 99麻豆久久久国产精品免费优播| 丰满少妇久久久久久久| 国产99一区视频免费| 国产露脸91国语对白| 国产一区二区三区免费看| 国产米奇在线777精品观看| 久久国产乱子精品免费女| 久久成人久久爱| 国模大尺度一区二区三区| 国产在线播放一区| 高清在线观看日韩| 成人性生交大片免费| av在线播放一区二区三区| 色综合一个色综合| 欧美性大战久久久| 欧美一区二区三区播放老司机| 日韩欧美一区二区视频| 久久久综合九色合综国产精品| 久久久久久久久久看片| 中文字幕免费观看一区| 亚洲天堂成人在线观看| 亚洲自拍欧美精品| 免费一级片91| 国产99精品视频| 色噜噜狠狠色综合欧洲selulu| 欧美日韩日本视频| 精品国产免费人成在线观看| 国产日韩欧美麻豆| 一区二区三区不卡在线观看| 视频精品一区二区| 国产成人免费视频网站高清观看视频| 99视频精品在线| 777欧美精品| 中文字幕精品在线不卡| 亚洲一区二区在线免费看| 麻豆成人在线观看| av激情成人网| 欧美一级二级三级蜜桃| 麻豆成人免费电影| 日韩高清不卡一区二区| 成人免费观看男女羞羞视频| 欧美日韩免费一区二区三区视频| 久久久久久久久岛国免费| 亚洲一区二区三区国产| 精品一区中文字幕| 91亚洲资源网| 久久色中文字幕|