Я обновляю в C # некоторое программное обеспечение, которое изначально было написано на VC ++ V1.0 для 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?
Буду признателен, если у кого-то есть помощь / совет по этому вопросу, пожалуйста.Большое спасибо