Может вопрос не совсем по VB, но может кто знает, какой регистр LPT в режиме EPP отвечает за сообщение об ошибке передачи данных?
Вот цитата с одного сайта:
Если Вы хотите работать с EPP совместимым устройством, тогда все, что Вы должны сделать - это поместить Ваши данные по адресу База + 4, и плата произведет все необходимые действия для подтверждения связи. Аналогично, если Вы желаете послать адрес вашему устройству, то используйте регистр адреса EPP со смещением +3.
Таким образом, и через регистр адреса EPP, и через регистр данных EPP читаются и пишутся данные вашего устройства, и Вы можете использовать одни и те же регистры и для чтения, и для записи. Однако контроллер EPP должен начать цикл чтения, поскольку и nDataStrobe и nAddressStrobe - выходы. Ваше устройство может запросить чтение через использование прерывания и, таким образом, выполнить операцию чтения.
Порт состояния имеет одно небольшое отличие. Бит 0, который был зарезервирован в наборе регистров SPP, теперь становится битом прерывания EPP. Этот бит будет установлен, когда произойдёт прерывание EPP. Это случается, когда линия nWait не деактивируется в течение приблизительно 10uS (в зависимости от порта) при активной линии IOW или IOR. IOW и IOR - это линии, представляющие чтение и запись портов ввода-вывода на ISA шине.
Режим EPP очень зависит от временной диаграммы шины ISA. Когда выполняется цикл чтения, порт должен предпринять соответствующее подтверждение связи и возвратить данные в этом цикле ISA. Конечно, это не происходит в пределах одного ISA цикла. Таким образом, порт использует сигнал IOCHRDY (Готовность канала ввода - вывода) на шине ISA, чтобы войти в состояние ожидание, пока цикл не закончится. Теперь представьте, что чтение или запись EPP начато без подключённой периферии. Порт никогда не получит подтверждения (nWait), останется в состоянии ожидания, и ваш компьютер остановится. Поэтому в EPP реализован сторожевой таймер, который срабатывает приблизительно через 10 мкс.
Три регистра, База + 5, База + 6 и База + 7, могут использоваться для операций 16- и 32- разрядного ввода-вывода, если ваш порт это поддерживает. Это может уменьшить количество операций ввода - вывода. Параллельный порт может передавать только 8 битов одновременно, таким образом, любое слово из 32 или 16 битов, записанное в параллельный порту, будет разделено на блоки размером в байт и послано через 8 линий данных параллельного порта.
Из всего сказанного трудно понять, какой регистр надо проверить, чтобы понять, дошли данные или не дошли...