各位好。
最近设计了一个基于ISA总线的板卡。在DOS7.1下用TC++3.0作为开发工具,编写了一段程序,对板卡上的端口地址进行读写操作。基地址为0x280,各个寄存器的地址都是偶数。但对端口进行读写时须一次读写16位数据,现在读正常,但写不正常,不能将16位数据写入板卡上的寄存器中。我用的是TC++3.0中的inpw和outpw这两个函数来对板卡上的寄存器进行读写。但我看了TC++3.0关于这两个函数的解释,说,这两个函数都是分两次将16位数据写入和读出,第一次是对给定地址的端口进行8位读写(作为低8位),第二次是对给定地址+1的端口进行读写(作为高8位)。
请教各位,在DOS下,用TC++3.0,怎样才能做到一次读写16位数据?
[ Last edited by ymzheng on 2010-2-8 at 23:37 ]
最近设计了一个基于ISA总线的板卡。在DOS7.1下用TC++3.0作为开发工具,编写了一段程序,对板卡上的端口地址进行读写操作。基地址为0x280,各个寄存器的地址都是偶数。但对端口进行读写时须一次读写16位数据,现在读正常,但写不正常,不能将16位数据写入板卡上的寄存器中。我用的是TC++3.0中的inpw和outpw这两个函数来对板卡上的寄存器进行读写。但我看了TC++3.0关于这两个函数的解释,说,这两个函数都是分两次将16位数据写入和读出,第一次是对给定地址的端口进行8位读写(作为低8位),第二次是对给定地址+1的端口进行读写(作为高8位)。
请教各位,在DOS下,用TC++3.0,怎样才能做到一次读写16位数据?
[ Last edited by ymzheng on 2010-2-8 at 23:37 ]
