FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Вс Апр 20 2003 21:53 Заголовок сообщения: Re: Программка запускающая по появлению сигнала на входе COM или LPT порта |
|
|
>>Короче говоря нужно чтоб эта программа запускалась при появлении, например, >>прямоугольного импульса на последовательном или параллельном порту.
Чтобы она "запускалась", нужно чтоб её кто-то запускал - сидел в резиденте и отслеживал состояние сигнальной цепи, т.е. либо эта программка должна не запускаться по событию, а активизироваться, уже будучи запущенной, либо, если она сильно большая, то в резиденте должна сидеть отдельная программка-запускалка, хотя для MS DOS этот способ представляется весьма сомнительным - из резидента, обрабатывающего только аппаратные прерывания, негоже вызывать ОС, или нужно ещё и с COMMAND.COM как-то интегрироваться, чтобы сэмулировать запуск программы пользователем - а если в данный момент другая программа выполняется, что тогда? Или тогда уж лучше составить bat-файл, в котором первая прога будет ждать появления сигнала, по нему завершаться, после чего будет запускаться основная программа. А что касается механизма ловли сигнала от COM-порта, то при базовом адресе 3F8 (COM1) нужно следить за портом 3FE: в старших 4 битах у него текущее состояние модемных линий CTS, DSR, RI, DCD (соответственно контакты 8, 6, 9, 1 на 9-контактном разъёме, хотя на советских 9-к. разъёмах нумерация контактов зеркальная была, тогда 7, 9, 6, 5), а в 4 младших признак, что состояние соответствующей линии изменилось с момента последнего чтения из этого порта, вот их и надо проверять. |
|