Ресурс занимает 2 диапазона адресов ввода/вывода: Код (Text): 0378 - 037F Тут, вроде бы, расположены 3 стандартных 8-битных регистра LPT. Код (Text): 0778 - 077F А тут что??? Смотрел на разных машинах: эти адреса (второй диапазон) не совпадают.
Quantum Нет, это порты для работы с LPT в режиме ECP. В книге "Интерфейсы ПК" (М. Гук) неплохо параллельный порт рассмотрен, включая и режимы SPP/EPP/ECP. Есть в эл. виде кстати.
_BC_ Я же не про режимы спрашивал, а про диапазон. Если я вас правильно понял, то через второй диапазон я могу общаться с периферией по протоколу ECP (и в режиме ECP, естественно), если меня туда пустит драйвер принтера, так? И ничего в биосе конфигурировать не надо? А почему этот диапазон на некоторых машинах выглядит как 0778 - 077B?
В биосах можно менять базу для LTP, и, возможно, режим работы порта (SPP/EPP/ECP). Там всего 3 порта используются (+400h..+402h), увеличение верхней границы по идее роли не играет.
надо переключить в режим EPP (режим двунаправленной передачи данных): BIOS->INTEGRATED PERIPHERALS->PARALLEL PORT MODE режим работы порта на EPP или SPP/EPP; это чтоб считывать можно было через LPT, а иначе только на выдачу.
Как раз в текучке написание собственного драйвера для своего проекта оси, посему попробую завалить инфой... повезло комуто, а я то долго тужился, блин. Итак, никуда, особенно без надобности переключаться не надо(да и не получится из SPP), если нужно, скажем только стандартно отослать десяток байт в 0x378. Доки говорят (и приктика), что НИЖНИЕ порты ВСЕГДА в работе по КЛАССИКЕ, что от XT тянется и везде пиcано-переписано 1000 раз... А вот EPP и ECP - скоростные аппаратно-реализованные ДУПЛЕКСНЫЕ порты передачи-приема байт. Причем самый интеллектуальный и скоростной ECP. Пишут, что при хорошем кабеле и девайсе до 20мБ/сек достигает. Именно у него и есть эти ВЕРХНИЕ адреса! Особое внимание тут порту для регистра ECR (0x77A), через который вся песня заводится: сервис, конфиг, статусы FIFO, прерываний, DMA канала... Нормальный сервис на ECP, я вот Plug&Play для него в плане вынюхивания DMAn и IRQn пишу, вроде получается, а вот EPP... зараза туповатая. У него то собственно верхних и не найдешь! Там просто расширили нижние! Т.е.есть еще 0x37B, 0x37C - 100%. Если есть поддержка пересылок WORD, DWORD(!) данными, то присутствуют сдедующие адреса только для порта данных 0x37С (как базовый для данных)... Ну ладно тут все не раскажешь, да и нужно ли? Теперь даю доки, чтоб пытливые сразу в яблочко попадали: http://www.lvr.com/parport.htm http://programmer.newmail.ru/programs/LPT/LPT.htm http://www.rusdoc.ru/material/hardware/iee/ieee_1284.htm http://www.ee.washington.edu/circuit_archive/text/para-port.html http://www.cgu.chel.su/faculties/phys/maelab/_frames/_lpt_1.htm http://emfl.nm.ru/menu/hard/constructions.html http://www.entechtaiwan.com/tools.htm http://emanual.ru/download2/2717.html Кулакова тоже можно почитать... А вообще везде примитив рассматривается, а вот скоростных то вещей обмена по ECP на нижнем уровне никто не любит, а жаль