Nik_Rihkov 0 3 марта, 2006 Опубликовано 3 марта, 2006 · Жалоба Проблема такая: я установил дополнительный 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 порт и ничего не меняется. В чём тут проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 5 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба У тех плат, что я пользовал, это было прописано в документации. И ещё: к такой плате положен свой драйвер. Если он установлен, то просто надо найти это устройство в Диспетчере устройств и посмотреть на закладку "Ресурсы". Первый адрес там и будет базовый. Правда, я за всю жизнь пробовал только две такие платы, так что возможны варианты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okela 0 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба Проблема такая: я установил дополнительный 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 читаю всё нормально... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nik_Rihkov 0 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба А какими средствами информация считывается ? Что вы имеете в виду? Если то как я считываю содержимое ячеек памяти, то я пользую WinIO, и считываю из ячеек двухбайтовые слова. Я под Windows XP работаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okela 0 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба А какими средствами информация считывается ? Что вы имеете в виду? Если то как я считываю содержимое ячеек памяти, то я пользую WinIO, и считываю из ячеек двухбайтовые слова. Я под Windows XP работаю. Попробуйте запустить команду debug и затем набрать d 0:0400. Будет выведен дамп области данных BIOSa . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nik_Rihkov 0 6 марта, 2006 Опубликовано 6 марта, 2006 (изменено) · Жалоба У тех плат, что я пользовал, это было прописано в документации. И ещё: к такой плате положен свой драйвер. Если он установлен, то просто надо найти это устройство в Диспетчере устройств и посмотреть на закладку "Ресурсы". Первый адрес там и будет базовый. Правда, я за всю жизнь пробовал только две такие платы, так что возможны варианты. Дакументации нет. Плата стоит такая: 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 буфера чтоли ? Изменено 6 марта, 2006 пользователем rihkov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DSIoffe 5 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба A800 - базовый, A801 - порт управления, A802 - порт состояния и т.д. Или наоборот, не помню. Должны читаться debug без проблем. И записываться тоже. Или своим софтом можно доставать, если под XP, то через левый драйвер, как здесь писали. Второй диапазон - это адреса ECP. Здесь не стоит расписывать, подробнее есть у меня на http://www.dsioffe.narod.ru/stuff/stuff.htm#parport и ещё много где. Кстати, у меня тоже NetMos, работает прекрасно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба Наверно мода у нас какая-то на LPT с недавнего времени (updata - LPT++). На форуме уде столько синонимных тем в которых предаставлено исчерпывающее количество информации и ссылок по LPT просто непонятно чего там еще можно выяснять!!! Наверно поиск не работает... :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nik_Rihkov 0 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба Спасибо что уделили мне время! С адресами я разобрался, всё работает, но остаётся проблема с определением количества установленных LPT портов? Считываю содержимое 0x0411 без установки дополнительного LPT порта, бит 6 = 0, а бит 7 = 1 соответствует что установлено 2 LPT порта, устанавливаю дополнительный LPT порт и ничего не меняется. В чём тут проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BVU 0 6 марта, 2006 Опубликовано 6 марта, 2006 · Жалоба Спасибо что уделили мне время! С адресами я разобрался, всё работает, но остаётся проблема с определением количества установленных LPT портов? Считываю содержимое 0x0411 без установки дополнительного LPT порта, бит 6 = 0, а бит 7 = 1 соответствует что установлено 2 LPT порта, устанавливаю дополнительный LPT порт и ничего не меняется. В чём тут проблема? Если не получается plug-and-play (Windows) необходимо вручную сделать поиск вновь установленного оборудования и система прераспределит имеющиеся адреса на LPT. Возможно нужен новый драйвер для LPT, который обычно идет в комплекте с платой расширителем LPT. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kojevnikov 0 17 марта, 2006 Опубликовано 17 марта, 2006 · Жалоба Ну если ты пишешь программу для Windows тебе вообще не надо знать адреса портов. Вставляешь в вызов API наименование порта и вперед. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться