1/2 OFF
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено John 01 марта 2003 г. 11:58

Периодически встает задача дергать ножками LPT-порта под виндами. Ну есть несколько устройств, к нему подключаемых, но не являющихся принтерами - эмулятор ПЗУ, программаторы. А проблемы две - собственно обращение к портам и автоматическое определение их адресов.

Первая проблема решается довольно просто - для 98 вообще проблем нет, а для NT-образных есть готовые решения - тут много раз обсуждали.
А вот вторая... Некоторое время назад нашел решение как искать базовые адреса портов в реестре. Раком там все, правда, но работает и для 98, и для NT, и для 2000 и XP. Проблема появилась для компов, в которых уставновлены PCI-платы с дополнительными LPT-портами. Вот как у меня - на основе м/с от NetMos, например. Найденными ранее методами такие порты оппределяются только под 98 - стоит уйти на NT - программа их не видит. То есть в стандартных записях реестра таких портов нет. Но принтер-то работает, если его туда воткнуть!!!
Я обратился на фирму-производитель указанных м/с с данным вопросом - как найти адреса. После 2-х месячного жевания соплей мне ответили! Однако нет в жизни полного "щастья". Мне показали, как найти запись в реестре с информацией о номере порта, затем перейти туда-то, а потом еще - и получи:
"PCI bus 2, device 12, function 0".
По мнению ответившего, этого достаточно.
Но, поскольку я это уже плохо понимаю, может мне кто-нибудь объяснить - где тут адрес-то??? Что нужно подставлять в
asm
MOV DX,Addr
MOV AL,B
OUT DX,AL
end;
вместо Addr???

З.Ы. Если кому интересно, могу прислать модуль для Дельфи со способом поиска портов - то, что работает.
З.З.Ы. Писать в конфы по Дельфи такие вопросы без толку - я пробовал - они таким не занимаются, там все больше базы данных или круглые окна обсуждают.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru