;посылаем в LPT-1 значение 01
mov al,01h
out 03BCh,al
MASM (работа с LPT)
Код:
я так понимаю ему не нравится номер порта 03BCh. Как с этим бороться?
Код:
;посылаем в LPT-1 значение 01
mov al,1h
mov dx,3BCh
out dx,al
mov al,1h
mov dx,3BCh
out dx,al
Всёравно ругается: error A2070: invalid instruction operands
на какую инструкцию именно ?
Код:
out 03BCh,al
тебеж сказали уже что через DX надо делать .
Код:
mov dx,3BCh
mov al,0FFh
out dx,al
mov al,0FFh
out dx,al
мерею напряжение на физическом LPT1, но там нет 5 вольт, т.е. логической еденицы. Подскажите, плиз, в чём дело.
p.s. ос- WinXP, код внутри драйвера (права на вывод в порт есть).
наверно в том что активный сигнал (лог. 1) низкий в лпт .
Скорее всего нет, как был низкий (до команды), так и остался низкий (после команды).
какие пины смотриш ?
Вот схема.
В LPT (АКА ИРПР-М) логическоу "1" соответствует +5В относительно корпуса, соответственно лог. "0" около ноля вольт.
Цитата: Vov4ick
В LPT (АКА ИРПР-М) логическоу "1" соответствует +5В относительно корпуса, соответственно лог. "0" около ноля вольт.
Разводка здесь
http://www.hardwarebook.info/Parallel_(PC)
http://www.hardwarebook.info/ECP_Parallel
Разводка здесь
http://www.hardwarebook.info/Parallel_(PC)
http://www.hardwarebook.info/ECP_Parallel
Да это я знаю, лучше подскажи как код исправить чтоб всё работало...
Я всегда думал, что базовый адрес LPT1 - 378h. Адрес, который ты использовал он имеет если располагается на плате MDA.
соответственно Base+0 - регистр данных, base+1 - регистр состояния, base+2 - регистр управления. Если нужно подробнее, могу запостить доку.
Vov4ick, спасибо огромное. 378h - действительно тот адрес.
мдя ... а я не заметил . :) память у мну дырявая . :)
Код:
mov cx,1024
mov dx,378h
loopWrite:
mov bx,cx
in al,dx
mov buffer[bx],al
loop loopWrite
mov dx,378h
loopWrite:
mov bx,cx
in al,dx
mov buffer[bx],al
loop loopWrite
Но не смотря какое напряжение на PIN'ах физического порта, он показывает 04h. В чём может быть дело?
Порт по умолчанию стоит в режиме SPP, то есть линии данных работают только на передачу. Нужно поставить его в режим EPP, или читать данные с ножек, для этого предназначенных (37a-й порт)
А как перевесть порт в EPP состояние?
У меня только бумажная документация по ИРПР-М. В электронном виде, причём родную можно взять здесь:
Цитата: Vov4ick
Там на английском всё, а я в ним не очень дружу :( .
Объясните, плиз, в двух словах как это сделать...
Вот дока по ECP
Vov4ick, огромное спасибо за доку, на конец то разобрался!
Пожалуйста ;-)