С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Не путаете с последовательным портом (COM) ? Для COM то достаточно TX замкнуть на RX, что бы проверить "эхо" - то что выводится, то и вводится. А на LPT порт я такого что-то не припомню, хотя конечно можно приблизительно то же самое нагородить.
Я думаю CheckIt поступает примерно так же, как и BIOS'ы, а именно пишет в порт эталонное значение, а затем читает из порта и сравнивает с записанным. Конечно, на нормальных портах это работает, так как там защелка подключена и на чтение... Хм, стоп, а вот в схеме у нас интересно - куда идет сигнал SEL_DAT с РТ4 дешифратора LPT ? По схеме - никуда не идет. Может быть он должен идти на /OE ногу ИР23 (сейчас нога подключена на землю по схеме)...
А насчет детекта - вот так BIOS примерно это делает:
Код:mov si, offset lpt_ports ; si --> LPT port table xor di, di ; offset into data seg mov cl, 3 ; number of printers @@next_lpt: mov dx, [cs:si] ; Get LPT port mov al, 10101010b ; write value out dx, al ; to the LPT mov al, 11111111b ; Dummy data value out 0C0h, al ; on the bus in al, dx ; Read code back cmp al, 10101010b ; check code jnz @@no_lpt ; no printer found mov [di+8], dx ; Save printer port inc di inc di @@no_lpt: inc si inc si loop @@next_lpt lpt_ports dw 03BCh, 0378h, 0278h ; Possible line printer ports
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)