我正在用 C# 更新一些最初用 VC++ V1.0 for DOS6 编写的软件。
该软件的一个方面是检查并行端口,其中连接了一个简单的按钮开关。我目前不知道开关连接到哪两个引脚,但我有旧程序的源代码,其相关部分如下...
#define switch_mask 0x10
void main(int argc, char *argv[])
{
int NewState = 0, OldState = 0;
/* Check switch */
NewState = _bios_printer (_PRINTER_STATUS, 0, 0);
if (NewState != OldState)
{
checkParallelPort (NewState);
OldState = NewState;
}
}
void checkParallelPort (int portState)
{
int SwitchState;
/* Switch bit is Active LOW */
SwitchState = (portState & switch_mask) ? 1 : 0;
}
现在 _bios_printer(在 bios.h 中)显然在 C# 中对我不可用,但我正在努力寻找可以完成这项简单任务的替代方案。
_bios_printer 的信息在这里。我已经在 .Net 中对并行端口的读/写进行了大量搜索,但似乎没有任何东西可以为我提供端口状态。
此外,您能否从这段代码(以及它如何检查“状态”)中得出结论,两条开关线连接在 DB25 插头上的位置?
如果有人对此有帮助/建议,我将不胜感激。非常感谢