реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Базовые адреса LPT портов ?
rihkov
сообщение Mar 3 2006, 16:14
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Проблема такая: я установил дополнительный LPT порт (PCI плата), и не могу найти адрес этого порта ?
Есть тут одна книга под рукой, в ней написано что адреса LPT портов находятся в следующих ячейках памяти: для LPT1 0x0408, для LPT2 0x040A, для LPT3 0x040C, для LPT4 0x040E. Пробовал считывать содержимое этих ячеек, в 0x0408 всё правильно находится базовый адрес 888 (0x378) порта LPT1, в 0x040A находится 0, в 0x040C находится 2680160256 (если перевести в Hex то 9FC00000), в 0x040E находится 1076338624 (если перевести в Hex то 40279FC0), что это за данные находятся в ячейках 0x040C и 0x040E ?

Как узнать базовый адрес LPT порта который я установил?

Ещё проблема с определением количества LPT портов, в книге написано что 0x0411 содержит информацию о количестве установленных LPT портов (информацию несут только биты 6 и 7) считываю содержимое 0x0411 без установки дополнительного LPT порта, бит 6 = 0, а бит 7 = 1 соответствует что установлено 2 LPT порта, устанавливаю дополнительный LPT порт и ничего не меняется. В чём тут проблема?
Go to the top of the page
 
+Quote Post
DSIoffe
сообщение Mar 6 2006, 08:59
Сообщение #2


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



У тех плат, что я пользовал, это было прописано в документации.
И ещё: к такой плате положен свой драйвер. Если он установлен, то просто надо найти это устройство в Диспетчере устройств и посмотреть на закладку "Ресурсы". Первый адрес там и будет базовый.
Правда, я за всю жизнь пробовал только две такие платы, так что возможны варианты.


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 6 2006, 09:04
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(rihkov @ Mar 3 2006, 20:14) *
Проблема такая: я установил дополнительный LPT порт (PCI плата), и не могу найти адрес этого порта ?
Есть тут одна книга под рукой, в ней написано что адреса LPT портов находятся в следующих ячейках памяти: для LPT1 0x0408, для LPT2 0x040A, для LPT3 0x040C, для LPT4 0x040E. Пробовал считывать содержимое этих ячеек, в 0x0408 всё правильно находится базовый адрес 888 (0x378) порта LPT1, в 0x040A находится 0, в 0x040C находится 2680160256 (если перевести в Hex то 9FC00000), в 0x040E находится 1076338624 (если перевести в Hex то 40279FC0), что это за данные находятся в ячейках 0x040C и 0x040E ?

Как узнать базовый адрес LPT порта который я установил?

Ещё проблема с определением количества LPT портов, в книге написано что 0x0411 содержит информацию о количестве установленных LPT портов (информацию несут только биты 6 и 7) считываю содержимое 0x0411 без установки дополнительного LPT порта, бит 6 = 0, а бит 7 = 1 соответствует что установлено 2 LPT порта, устанавливаю дополнительный LPT порт и ничего не меняется. В чём тут проблема?


А какими средствами информация считывается ? Я при помощи debug читаю всё нормально...
Go to the top of the page
 
+Quote Post
rihkov
сообщение Mar 6 2006, 10:01
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Цитата
А какими средствами информация считывается ?


Что вы имеете в виду?
Если то как я считываю содержимое ячеек памяти, то я пользую WinIO, и считываю из ячеек двухбайтовые слова.
Я под Windows XP работаю.
Go to the top of the page
 
+Quote Post
okela
сообщение Mar 6 2006, 10:20
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(rihkov @ Mar 6 2006, 14:01) *
Цитата

А какими средствами информация считывается ?


Что вы имеете в виду?
Если то как я считываю содержимое ячеек памяти, то я пользую WinIO, и считываю из ячеек двухбайтовые слова.
Я под Windows XP работаю.


Попробуйте запустить команду debug и затем набрать d 0:0400.
Будет выведен дамп области данных BIOSa .
Go to the top of the page
 
+Quote Post
rihkov
сообщение Mar 6 2006, 10:55
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Цитата
У тех плат, что я пользовал, это было прописано в документации.
И ещё: к такой плате положен свой драйвер. Если он установлен, то просто надо найти это устройство в Диспетчере устройств и посмотреть на закладку "Ресурсы". Первый адрес там и будет базовый.
Правда, я за всю жизнь пробовал только две такие платы, так что возможны варианты.


Дакументации нет.
Плата стоит такая: NetMos 9835 PCI Multi-I/O Controller
Драйвер установлен и нормално работает, в диспетчере устройств в "Ресурсы" первым стоит
диапазон I/O A800 - A807 а второй диапазон I/O AC00 - AC07, если у меня в родном LPT порту в диспетчере устройств в "Ресурсы" первым стоит диапазон I/O 0378 - 037F а второй диапазон
I/O 0778 - 077B , здесь понятно что базовый адрес 0378 и я обращаюсь к нему как 0x378, если предположить что базовый адрес установленного мной LPT порта A800 как мне к нему обращаться?
Диапазоны I/O которые стоят вторыми в диспетчере устройств в "Ресурсы" это что за адреса, FIFO буфера чтоли ?

Сообщение отредактировал rihkov - Mar 6 2006, 10:57
Go to the top of the page
 
+Quote Post
DSIoffe
сообщение Mar 6 2006, 15:01
Сообщение #7


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



A800 - базовый, A801 - порт управления, A802 - порт состояния и т.д. Или наоборот, не помню. Должны читаться debug без проблем. И записываться тоже. Или своим софтом можно доставать, если под XP, то через левый драйвер, как здесь писали.
Второй диапазон - это адреса ECP. Здесь не стоит расписывать, подробнее есть у меня на http://www.dsioffe.narod.ru/stuff/stuff.htm#parport и ещё много где.
Кстати, у меня тоже NetMos, работает прекрасно.


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
BVU
сообщение Mar 6 2006, 15:45
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Наверно мода у нас какая-то на LPT с недавнего времени (updata - LPT++). На форуме уде столько синонимных тем в которых предаставлено исчерпывающее количество информации и ссылок по LPT просто непонятно чего там еще можно выяснять!!! Наверно поиск не работает... sad.gif


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
rihkov
сообщение Mar 6 2006, 15:52
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 25-01-06
Пользователь №: 13 617



Спасибо что уделили мне время!
С адресами я разобрался, всё работает, но остаётся проблема с определением количества установленных LPT портов?
Считываю содержимое 0x0411 без установки дополнительного LPT порта, бит 6 = 0, а бит 7 = 1 соответствует что установлено 2 LPT порта, устанавливаю дополнительный LPT порт и ничего не меняется. В чём тут проблема?
Go to the top of the page
 
+Quote Post
BVU
сообщение Mar 6 2006, 16:19
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(rihkov @ Mar 6 2006, 18:52) *
Спасибо что уделили мне время!
С адресами я разобрался, всё работает, но остаётся проблема с определением количества установленных LPT портов?
Считываю содержимое 0x0411 без установки дополнительного LPT порта, бит 6 = 0, а бит 7 = 1 соответствует что установлено 2 LPT порта, устанавливаю дополнительный LPT порт и ничего не меняется. В чём тут проблема?

Если не получается plug-and-play (Windows) необходимо вручную сделать поиск вновь установленного оборудования и система прераспределит имеющиеся адреса на LPT. Возможно нужен новый драйвер для LPT, который обычно идет в комплекте с платой расширителем LPT.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
alekseykoj
сообщение Mar 17 2006, 08:43
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 8-11-05
Пользователь №: 10 602



Ну если ты пишешь программу для Windows тебе вообще не надо знать адреса портов. Вставляешь в вызов API наименование порта и вперед.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016