WP2K3
驱动牛犊
驱动牛犊
  • 注册日期2003-03-07
  • 最后登录2003-08-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:928回复:0

感谢arthurtu,在运行此VxD之前,先运行DOS下的程序才行,为何?

楼主#
更多 发布于:2003-03-10 10:37
感谢arthurtu,由于我将不重要的部分删了,因此造成变量没有初始化,其实语句:
pi=(WORD *)(0x400+i);
可看成:
pi=(WORD *)0x400;
主要是从物理地址0x400处取出串口的地址
现在的问题是,只要我先运行DOS下的程序:
/*
--------------------------
仅运行,直到按Esc键
--------------------------
*/
#include \"stdio.h\"
#include \"stdlib.h\"
#include \"conio.h\"
#include \"dos.h\"
#include \"io.h\"
#include \"string.h\"


/*===============================================*/

int i,j,k,m,n;
main()
{
i=0x2f8;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
i=0x3f8;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
i=0x2f8;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
i=0x3f8;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
outportb(i,0); i++;
k=0;
while(k!=0x1b) k=bioskey(0)&0xff;
exit(0);
}
而且不能退出,再调用VxD,运行就一切正常,一旦退出DOS程序,VxD就不工作了,为何?
靠天靠地靠神仙 不如一切靠自己 自力更生,艰苦奋斗!
游客

返回顶部