|
Канал данных LPT порта (EPP/ECP) двунаправленный и никаких дополнительных настроек для записи/чтения вроде бы не требуется. Управление состоянием линий осуществляется записью в порт нужного числа:
0 -- на всех линиях устанавливается лог."0";
1 выход - 1
2 выход - 2
3 выход - 4
4 выход - 8
5 выход - 16
6 выход - 32
7 выход - 64
8 выход - 128
255 -- на всех выводах устанавливается лог. "1"
Минимальная отсылаемыя и принимаемая в регистр данных величина - 1 байт, а отослать одновременно только 7 бит и в это же время принять 1 бит, я думаю неполучится.
Можно зарезервировать 7 линий LPT порта для передачи и одну для приема и контролировать посылку байт так, чтобы данные передавались всегда только на выбранные лнии и считывались только с выбранной линии.
Наверное, это можно сделать так:
_asm{
MOV DX,0378H
MOV AL,data
cmp al,127
mov ah,al
sub ah,128
jg re
OUT DX,AL
jmp nx
re:
OUT DX,AL
mov al,ah
OUT DX,AL
nx:xor al,al
in al, dx
mov data,al }
__________________
Старые игры раздают здесь
|