阅读:1187回复:10
ISA通过9052转PCI后,以前的软件是否还能够使用呢
对于一个简单的只读写IO的ISA卡来说,转成PCI板卡后以前的软件是否就用不了了?
|
|
沙发#
发布于:2003-07-06 20:59
忘记说了,是98下的软件。
是不是一定要编写驱动,然后改写上层应用程序才能够继续使用呢。 小生不太清楚,还请大侠指点。 |
|
板凳#
发布于:2003-07-06 21:00
忘记说了,以前软件是98下的。
是不是一定要编写驱动,然后改写上层应用程序才能够继续使用呢。 小生不太清楚,还请大侠指点。 |
|
地板#
发布于:2003-07-07 09:10
因在98下还可直接对IO口进行读写,所以你的ISA卡转成PCI卡后,只要你知道你现在的PCI卡的IO口地址,你就可以用该地址进行IO读写。你以前的程序也可不做什么改动。
|
|
|
地下室#
发布于:2003-07-07 11:55
因在98下还可直接对IO口进行读写,所以你的ISA卡转成PCI卡后,只要你知道你现在的PCI卡的IO口地址,你就可以用该地址进行IO读写。你以前的程序也可不做什么改动。
~~~~~~~~~~~~~~~~~~~~~~ 还是有些不太明白,PCI的资源不是由主机分配到的吗,以前ISA的软件都是写成固定的一个IO端口地址,但是PCI上的端口地址是变化的呀,这样以前的软件在转成PCI卡后不是就要改动了吗? |
|
5楼#
发布于:2003-07-07 12:42
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2003-07-07 20:22
Tom老兄的意思是说以前的软件没用了,
必须重新获取到PCI驱动提供的地址才能读写板子吗? |
|
7楼#
发布于:2003-07-09 18:47
那请问TOM大哥,在2000下呢?
|
|
8楼#
发布于:2003-07-10 14:02
在98下你可用下面的程序得到你的PCI卡的端口地址:
DWORD io_CF8=0x80000000; //for every card\'s address DWORD io_CFC; for(;;) { DWORD val1,val; DWORD_Out(0xcf8,io_CF8); io_CFC=DWORD_In(0xcfc); if(io_CFC==0x905210b5) //found the address of cards VID=0X01EB DID=0X9052 { DWORD_Out(0xcf8,io_CF8+4*6); val1=DWORD_In(0xcfc); DWORD_Out(0xcf8,io_CF8+4*7); val=DWORD_In(0xcfc); if(StandardCard.flagExit==false) { StandardCard.addPA=val-1; StandardCard.addPB=val; StandardCard.addPC=val+1; StandardCard.addCW=val+2; StandardCard.flagExit=true; outportb(StandardCard.addCW,0x99); } else if(Card1.flagExit==false) { Card1.addPA=val-1; Card1.addPB=val; Card1.addPC=val+1; Card1.addCW=val+2; Card1.flagExit=true; outportb(Card1.addCW,0x99); } else if(Card2.flagExit==false) { Card2.addPA=val-1; Card2.addPB=val; Card2.addPC=val+1; Card2.addCW=val+2; Card2.flagExit=true; outportb(Card2.addCW,0x99); } else break; } else if(io_CF8>=0x80ffff00) break; io_CF8+=0x800; } 2000下也可得到,但2000不支持直接IO读写,所以在2000下你一定得做驱动,应用程序也得重写。 |
|
|
9楼#
发布于:2003-10-05 16:03
龙大哥
你能不能把你的完整程序发给我吗! 谢谢了。 我的email;nigp@sohu.com |
|
|
10楼#
发布于:2003-10-05 22:33
用户被禁言,该主题自动屏蔽! |
|