Подскажите пожалуйста, как прочитать данные из девайса через регистр DATA LPT порта. Меня интересует алгоритм действий формата: "записать такое-то число в такой-то регистр...". Или пошлите куда нибудь, где можно это прочитать. Может кто этим занимался? А то ничего конкретнее описания выводов, (причём иногда даже без нумерации) я не нашёл. Информации много, а как конкретно её применить непонятно. Заранее спасибо
Спасибо, но не выходит. Вывод по адресу 0x378 сколько угодно. В идеале железка типа КР580ВВ55 должна получать с него данные и выдавать обратно другие данные. На практике же выставляю байт с помощью "крокодильчиков" при отключенной железке и по команде in получаю в лучшем случае то что было положено в регистр DATA ранее командой OUT. Материнка у меня не очень древняя т.е. двунаправленность поддерживается. В BIOSе стоит режим EPP. Копался с сетке на эту тему, везде только общие описания. Какие то дополнительные регистры, FIFO?, DMA?, ничего не понял. Может надо что то включить или какой то сигнал на регистр STATUS подать?
Т.е. как я понял перед тем как читать байт из порта 0х378 нужно сначала записать по адресу 0х37А число 10h. Это установит бит 5 регистра Control в единицу, что в свою очередь переведёт линии D0..D7 в высокоимпедансное состояние. (светодиоды, подлюченные к кабелю должны погаснуть). Тогда можно выставлять данные извне. Всё равно ей, гадине, что то ненравится. Что я не так делаю?
Всё! Разобрался!! Всё работает. Если кому интересно, то у контроллера LPT кроме стандартных регистров Data (смещение 0h), Status (1h) и Control (2h) есть ещё гнусный дополнительный регистр управления со смещением 402h в котором 3 старших бита это код режима работы порта. Если записать туда код 001 (число 34h) то порт переходит в режим PS/2 в котором возможен ввод информации. Теперь можно переключать направление регистра Data битом 5 регистра Control (0-вывод 1-ввод). Подробнее можно прочитать в книге М.Гук "Аппаратные интерфейсы ПК", а лучше В.Кулаков "Программирование на аппаратном уровне".
Игорь Игорь! А как прочитать из порта в среде Си-Билдер. Пробовал, как ты пишешь не получается! У меня есть п/программка записи в ЛПТ. По адресу 378h пишет хорошо, но если я пытаюсь сделать как ты говоришь: 1) посылаю по адресу 77Ah число 34h 2) посылаю по адресу 37A число 10h то на линиях D0-D7 нет высокоимп. состояния. Почему? Может я те так тебя понял? Сообщи пожалуйста. Хорошо бы, если бы ты дал свой телефон для оперативности.