Jump to content

    
Sign in to follow this  
Nik_Rihkov

Базовые адреса LPT портов ?

Recommended Posts

Проблема такая: я установил дополнительный 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 порт и ничего не меняется. В чём тут проблема?

Share this post


Link to post
Share on other sites

У тех плат, что я пользовал, это было прописано в документации.

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

Правда, я за всю жизнь пробовал только две такие платы, так что возможны варианты.

Share this post


Link to post
Share on other sites
Проблема такая: я установил дополнительный 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 читаю всё нормально...

Share this post


Link to post
Share on other sites
А какими средствами информация считывается ?

 

Что вы имеете в виду?

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

Я под Windows XP работаю.

Share this post


Link to post
Share on other sites

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

 

Что вы имеете в виду?

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

Я под Windows XP работаю.

 

Попробуйте запустить команду debug и затем набрать d 0:0400.

Будет выведен дамп области данных BIOSa .

Share this post


Link to post
Share on other sites
У тех плат, что я пользовал, это было прописано в документации.

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

Правда, я за всю жизнь пробовал только две такие платы, так что возможны варианты.

 

Дакументации нет.

Плата стоит такая: 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 буфера чтоли ?

Edited by rihkov

Share this post


Link to post
Share on other sites

A800 - базовый, A801 - порт управления, A802 - порт состояния и т.д. Или наоборот, не помню. Должны читаться debug без проблем. И записываться тоже. Или своим софтом можно доставать, если под XP, то через левый драйвер, как здесь писали.

Второй диапазон - это адреса ECP. Здесь не стоит расписывать, подробнее есть у меня на http://www.dsioffe.narod.ru/stuff/stuff.htm#parport и ещё много где.

Кстати, у меня тоже NetMos, работает прекрасно.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Спасибо что уделили мне время!

С адресами я разобрался, всё работает, но остаётся проблема с определением количества установленных LPT портов?

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

Share this post


Link to post
Share on other sites
Спасибо что уделили мне время!

С адресами я разобрался, всё работает, но остаётся проблема с определением количества установленных LPT портов?

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this