Есть потребность, чтобы при записи в порт 0x378 на выходном разьеме установились заданные уровни (пока рассмотрим только линии данных LPT порта).
Это сделать можно.
Это потребует определенных усилий.
Даже не исключено, что это можно реализовать на микросхеме PL-2305, задействовав их недокументированные, а только провозглашенные в datasheet возможности Vendor-Specific Device Requests (см. пункт 5.3 PL-2305 Product Datasheet Document Revision 1.1) -- это дает возможность использовать готовые кабели исполненные с применением указанной микросхемы.
Однако, если даже такой Virtual Printer Port Driver будет реализован, надо оценить, как быстро сможет происходить передача данных по usb и будет ли это удовлетворительно для программатора.
Почему я думаю, что это возможно?
Примерно в 1992-1996 году я написал некие тестовые программы под DOS, где обмен по последовательному каналу был реализован как-то так (фрагменты):
Case COM of
1 : Base := $3f8 ;
2 : Base := $2f8 ;
3 : Base := $3e8 ;
4 : Base := $2e8 ;
else Halt ( 1 ) ;
end ;
Procedure T8250 . PutData ( Data : Byte ) ;
Begin
Port [ Base + DataBufferOffset ] := Data ;
inline ( $eb / $00 ) ;
end ;
[\pre]
Так вот те 1996 года exe работают сейчас под Win XP, будучи запущены из Far. Работают на usb-com кабелях, если они установлены как COM2 .. COM4. (COM1 есть в машине натуральный). То есть кто-то перехватывает обращение к несуществующим портам виртуальных COM и направляет куда надо.
P.S. Я с трудом поверил бы, если бы мне такое сказали. Но это на моем столе с моими написанными и скомпилированными в 1996 году программами.