Как программно(на ассемблере) в DOS можно управлять всеми выводами LPT порта в отдельности? И кто может подсказать сколько тактов проца проходит от подачи сигнала на вывод 10 LPT порта до срабатывания обработчика прерывания?И еще можно ли запретить все прерывания ,кроме прерывания от LPT порта , чтобы моя прога ничем не прерывалась? Задача такая,с помощью компа в ДОС через LPT порт нужно измерить период сигнала с max точностью(может быть даже при помощи каких либо внешних устройств(счетчиков,делителей,таймеров и т.д))?Подскажите как это можно выполнить?
Код (Text): Parallel Printer Port Port 3BC printer data output (readable) │7│6│5│4│3│2│1│0│ ports 278, 378, 3BC │ │ │ │ │ │ │ └──── data bit 0, hardware pin 2 │ │ │ │ │ │ └───── data bit 1, hardware pin 3 │ │ │ │ │ └────── data bit 2, hardware pin 4 │ │ │ │ └─────── data bit 3, hardware pin 5 │ │ │ └──────── data bit 4, hardware pin 6 │ │ └───────── data bit 5, hardware pin 7 │ └────────── data bit 6, hardware pin 8 └─────────── data bit 7, hardware pin 9 Port 3BD printer status register (Parallel Printer Port) │7│6│5│4│3│2│1│0│ ports 279, 379, 3BD │ │ │ │ │ │ │ └──── 1 = time-out │ │ │ │ │ └─┴───── unused │ │ │ │ └──────── 1 = error, pin 15 │ │ │ └───────── 1 = on-line, pin 13 │ │ └────────── 1 = out of paper, pin 12 │ └─────────── 0 = Acknowledge, pin 10 └──────────── 0 = busy, pin 11 Port 3BE printer control register (Parallel Printer Port) │7│6│5│4│3│2│1│0│ ports 27A, 37A, 3BE │ │ │ │ │ │ │ └──── 1 = output data to printer, (pin 1) │ │ │ │ │ │ └───── 1 = auto line feed, (pin 14) │ │ │ │ │ └────── 0 = initialize printer, (pin 16) │ │ │ │ └─────── 1 = printer reads output, (pin 17) │ │ │ └──────── 0 = IRQ disable,1=IRQ enable for ACK └─┴─┴───────── unused Через младшие 4 бита регистра управления можно осуществлять вывод данных на соответствующие линии, а через старшие 5 бит регистра состояния производить ввод. Сигналы на выводах pin1, pin11, pin14 и pin17 инвертированы, то есть высокому уровню на линии соответствует 0 в регистре и наоборот. Линия ack через резистор 10К подключена к питанию +5В. Максимальная скорость чтения/записи регистров управления и состояния составляет где-то 600К комманд in/out в секунду. То есть теоретически можно получить точность 1,5 мкс. Запрет прерываний можно выполнить при помощи команды CLI.