А вот тут не понял. Вообще-то я говорил про чтение байта из порта 0x378+0.
Чтот же порт служит для вывода данных! Что же в него писать можно?
Запросто (писать - имеется ввиду снаружи)! Результат чтения с адреса +0 зависит от бита 5 в байте по смещению +2. Если он нуль, то результат - то что мы записали в порт последний раз. Если единица, то линии порта переходят на вход (Z-состояние), а читается то, что подано снаружи.
Да, кстати, теперь я понимаю, что для чтения данных достаточно одной точки снизу.
Я не знаю, как обрабатывать прерывание по ACK, но есть предположение, что такая ф-ция будет работать только в 98, хотя я могу и ошибаться
В винде тоже не знаю, кроме того, что на моем компе это 7-й вектор.
Поэтому будем ждать прозрения. Теоретически, подпрограмма прерывания должна обладать 0-м приоритетом, и если винда позволяет это сделать приложению, значит оно может сделать с виндой все, что угодно. В 98-й DOS-овские задачи эмулируются настолько хорошо, что сесть на вектор прерывания - запросто.
------------------------------------------------
P.S. В принципе существует одна тонкость.
Однонаправленные принтерные порты были только на самой заре цивилизации. Это еще мультипорты на ISA-шных картах. Да и тогда уже в магазинах продавались мультипорты только с двунаправленным LPT (еще раньше я не застал). Далее появились EPP-порты, а потом и ECP. В ECP-портах существуют адреса со смещением +0x400... И какой-то из них (по моему +0x402) задает режимы LPT-порта (а может и похитрее). Один из режимов - "классический" (однонаправленный - там бит 5 по смещению +2 не работает), второй - "двунаправленный", третий включает какие-то режимы EPP, есть какие-то еще свои режимы. Сколько я не встречал виндов - если в биосе настроен режим ECP - то он стоит в режиме "двунаправленный". То есть, практически, проблем не должно быть. Но теоретически возможно, что кто-то загнал порт в непонятный режим, и тогда надо честно настраивать LPT по всем правилам ECP (а для этого их еще надо изучить). Ну а моя информация про LPT этим практически и закончилась.