Новости

Чи бувають "залізні" PCI модеми та чи потрібні їм драйвери під Windows?


Ця стаття продовжує цикл , Розпочатий нами раніше, покликаний познайомити зацікавлених читачів з маловідомими особливостями роботи модемів. У ній ми спробуємо розповісти про особливості реалізації послідовних портів у модемів взагалі, і про особливості реалізації внутрішніх модемів нового покоління, призначених для роботи на шині PCI.

Спочатку про те, як працюють класичні зовнішні модеми. Якщо у Вас зовнішній модем, то Ви підключаєте його до комп'ютера через роз'єм послідовного порту ( "COM"-порту). При цьому модем - зовні, порт - всередині. Будемо вважати для простоти, що всередині порт підключений до шини ISA. За часів 386-их машин так і було насправді: всередині комп'ютера, в роз'ємі ISA-шини стояла карта "multi I / O", на якій був реалізований, серед іншого, COM порт. Роз'єм від порту виходив на корпус комп'ютера, туди і включався зовнішній модем.

Кожен COM-порт, з точки зору програм всередині комп'ютера, представляється набором послідовно розташованих регістрів-портів в просторі введення-виведення процесора, до яких програми мають доступ для читання / запису даних, що передаються, зміни властивостей COM-порту, читання стану порту. Оскільки ці регістри-порти розташовуються один за одним у фіксованій послідовності, зазвичай говорять тільки про адресу першого з них, тобто, базовому адресу для всього блоку регістрів. Він називається "базовим адресою COM порту". Крім того, кожен COM-порт може генерувати одне переривання для центрального процесора, призначене для сигналізації програмі про те, що порт завершив виконання тієї чи іншої операції. У комп'ютері може бути присутнім кілька COM-портів, при цьому для їх безконфліктної роботи необхідно, щоб вони використовували різні адреси портів в просторі введення-виведення і різні лінії переривань. До створення технології "Plug'n'Play" відповідальність за правильну конфігурацію адрес портів і ліній переривань цілком лежала на користувача, що встановлював нову плату в комп'ютер.

Базова адреса COM порту задавався перемикачами на мультикарта, і був, як правило, вибором 1 з 4 стандартних адрес для портів COM1..COM4, ​​відповідно: 3F8h, 2F8h, 3E8h, 2E8h. Оскільки, відповідно до специфікації, пристрої на ISA шині, що працюють в просторі введення-виведення, можуть, з метою спрощення, перевіряти лише молодші 10 розрядів адреси (хоча, насправді, ніщо не заважає їм перевіряти всі 16 розрядів), ці ж порти відгукувалися і за адресами типу 13F8h, 23F8h, E3F8h і т.п. Це призводило до конфліктів з деякими відеоадаптерами, наприклад, популярного сімейства S3, оскільки ті використовували у власних потребах саме старші дзеркальні відображення від адреси 2E8h, що належить COM4. Коли ми створювали наш ISA-модем, ми зробили перевірку всіх 16 розрядів адреси, і багаторічна практика показала, що конфліктів не виникає ні з чим. Ми не зустрічали такої материнської плати, на якій би при роботі з портами на шину видавалося лише 10 бітів адреси, тому можна зі значною мірою впевненості стверджувати, що така рекомендація - це лише якесь послаблення розробникам периферійних пристроїв.

Номер лінії переривання порту також задавався перемикачами, і, як правило, вибір був невеликим. За замовчуванням вважається, що переривання порти COM1..COM4 використовують відповідно 4,3,4,3. Тобто, COM2 і COM4 поділяють IRQ3, а COM1 і COM3 поділяють IRQ4. Оскільки за часів, коли PS / 2 мишок ще не було, і мишка зазвичай підключалася до COM1, модем можна було поставити або на COM2 або на COM4 або вибрати для нього нестандартне переривання, що розуміли далеко не всі програми. Характерно, що навіть сьогодні, якщо Ви загляньте в налаштування Setup'а Вашої материнської плати, то вибір можливих адрес і переривань для COM портів, розташованих на платі, буде все тим же самим.

Тепер розглянемо, що ми маємо з внутрішніми ISA модемами. Зроблені вони досить оригінально - як сума зовнішнього модему і Мультикарти! Тобто, на модемного платі зібраний сам модем, потім його COM порт, яким він би в зовнішньому виконанні підключався до мультикарта, як описано вище, а потім "шматок" Мультикарти, що виходить на шину ISA, з ще одним портом. Причому на деяких модемах це зроблено абсолютно дослівно: наприклад старі, 14400 Спортстер, були зроблені саме як зовнішній Спортстер, і класичний послідовний порт, що виходить на шину ISA. Якщо плату такого модему умовно розрізати, і поставити в розрив буфери-перехідники на 12 вольт, то її модемну частина можна легко підключити до звичайної мультикарта, а до залишилася портовій частині можна підключити мишку. І те й інше буде працювати! Такий підхід має безсумнівний плюс - повну сумісність. Оскільки на модемі варто "чесний" послідовний порт, то веде він себе в точності так само, як і мультикарта. Включаючи затримки, помилки, визначення швидкості і т.п. А недоліків - два. По-перше, це досить дороге рішення, а по-друге - максимальна швидкість обмежується 115200 біт / с.

З деяких пір виробники модемів почали ставити замість двох портів один двонаправлений емулятор порту. Тобто, з точки зору машини він виглядає як порт, а з точки зору модему - неважливо як, оскільки це внутрішня справа виробника модему. Головна особливість такого порту - необмежена швидкість обміну. Якщо не брати спеціальних заходів, можна отримати швидкість роботи такого порту кілобайт 500 в секунду замість 11 кілобайт для класичного порту. Оскільки саме такий емулятор ми і поставили на наш внутрішній модем HTS Express Xs12, то можу з власного досвіду сказати, що не всі тут так просто. З одного боку, такий порт - це справжнє щастя для тих, хто любить оновлювати прошивки в модемі, хто ходить по Інтернету, і для тих, кому потрібні всякі додаткові можливості на кшталт збору онлайн-статистики. Але, з іншого боку, з'ясувалося, що якість драйверів відомої фірми, яка написала всі популярні нині операційні системи, залишає бажати кращого. Наприклад, у DOS вікна під Win98 просто "дах зриває", якщо з модему з величезною швидкістю приходить всього якийсь кілобайт текстового повідомлення. Те, що отримує користувач у своїй термінальній програмі, є лише жалюгідні залишки того, що посилав йому модем. Деякі FOSSIL-драйвери при роботі під DOS втрачають дані, якщо вони йдуть з такою швидкістю, оскільки неправильно працюють з апаратним управлінням потоком - вони забувають, що треба перевірити стан сигналу CTS перед посилкою чергового байта і спокійно засилають в модем десятки кілобайт того, що лежить у них в буфері, незважаючи ні на які спроби модему цьому опиратися. Були відзначені проблеми з Linux'ом, але подробиці нам невідомі, оскільки інформація ця зі слів наших користувачів. І, нарешті, верхи чудес програмування можна визнати програму RapidCommVoice старих версій, автори якої, ймовірно, так і не розібралися, як працює COM порт, а тому замість управління потоком підбирають за таймером швидкість передачі байт в модем так, щоб вона збіглася з фізичною швидкістю роботи порту! Загалом, все це змусило нас і, наскільки нам відомо, інших виробників модемів з емуляторами порту примусово обмежувати швидкості передачі до рівнів, подібних зі швидкістю роботи справжніх портів. Як показала практика, це повністю усунуло всі проблеми такого роду з драйверами і програмами. Правда, нам вдалося зробити все ж набагато швидший COM порт, на рівні 20-30 кілобайт в секунду.

Тим часом, об'єктивно адже порт, обмежений швидкістю 115200 - шкідливо! По-перше, чим швидше йдуть дані, і чим більше за розміром блок даних, тим менше виникає накладних витрат в системі, оскільки впродовж одного переривання (перемикання контексту, припинення завдань і т.п.) драйвер може отримати / прийняти більше даних, і , отже, таких перемикань в системі буде набагато менше. По-друге, чомусь ходить думка, що протокол V.42Bis упаковує дані в 4 рази. Це не так. Алгоритм компресії, застосовуваний протоколом V.42Bis, звичайно ж, поступається за ефективністю в більшості випадків алгоритмам популярних програм-архіваторів на кшталт PkZip, але файл з одних "прогалин" або нулів він може стиснути і в 10 разів, і більше. Так само як і файл з великим числом однакових подстрок. Швидкість 33600 біт / с протоколу V.34 відповідає приблизно 4000 з невеликим байтам в секунду для упакованого потоку (оскільки байти передаються без старт і стоп бітів, блоками досить великого розміру, і накладні витрати протоколу канального рівня V.42 в цьому випадку не дуже помітні ). Навіть чотириразова розпакування дасть уже 16 кілобайт в секунду, в той час як швидкість роботи порту 115200 біт / с - це тільки 11 кілобайт / c (при передачі через послідовний порт кожен 8-бітовий байт обрамляється додатково старт-бітом і стоп-бітом, тому швидкість в байтах розраховується як 115200/10).

Нескладно порахувати, що буде на протоколі V.90. Також нескладно порахувати, що навіть подвоєння швидкості COM порту справі не допоможе. Треба більше. Звичайно, звичайно www-сторінки набагато довше читають, ніж скачують, а то, що скачують не для читання, а в архів, зазвичай запаковано, але ідея залишається незмінною - апаратний емулятор COM порту не заважає роботі модему, а справжній COM порт, хоч це внутрішній модем, хоч зовнішній - заважає.

Але ось прийшов час виробникам зробити щось і для PCI шини. Здавалося б, що простіше - взяти той же емулятор порту, і вивести з нього сигнали для роботи на PCI. Але тут є одна принципова проблема: на PCI шині виробник не може фіксувати адреси пристрою! Якщо на шині ISA виробник ставив дешифратор адреси, який реагував на якийсь діапазон адрес, що задаються перемичками на платі, а користувач прописував цей діапазон адрес в налаштування операційної системи (або ж система шукала його сама методом перебору), то на шині PCI все інакше. Крім простору пам'яті і простору вводу / виводу, на шині PCI є ще простір конфігурації. Причому, на відміну від двох перших, сигнали управління ім розведені не у вигляді шини, а на кожен PCI слот окремо. Саме тому не все одно, в який саме слот Ви включили Ваше PCI пристрій. Наприклад, якщо Ви переставите Вашу мережеву карту з одного слота в інший (сусідній), то Windows знайде її ще раз, і це буде вже інший, другий за рахунком, мережевою картою в системі. Все це зроблено для того, щоб реалізувати відомий принцип Plug'N'Play, тобто звільнити користувача від необхідності вручну розподіляти адреси та лінії переривання на пристроях, і потім прописувати це у систему. Коли Ви вмикаєте комп'ютер, то PCI BIOS сам сканує простору конфігурації всіх слотів, знаходить, що там стоїть (всяке PCI пристрій повинен на вимогу видавати свій клас, підклас, перелік необхідних йому адресних вікон, переривань і т.п.), після чого розподіляє все адресний простір між пристроями. Так само відбувається і розподіл переривань. Причому, як правило, якщо на розподіл адрес Ви не можете впливати ніяк, то переривання в більшості материнських плат можна призначити буквально руками: просто вибрати, для якого PCI слота яке саме переривання використовувати. Або вже, принаймні, обмежити список переривань, які будуть використовуватися для PCI пристроїв. Ще багато материнських плат запитують тип завантажується операційної системи. Це робиться для того, щоб взагалі не форматувати другорядні контролери на PCI до завантаження системи, щоб вона сама їх розподілила, як їй "подобається". Але, так чи інакше, про розташування COM портів на звично-стандартних адресах і лініях переривань на шині PCI можна забути назавжди, у всякому разі, в рамках нині діючого стандарту і практики його реалізації в материнських платах.

Що з цим робити? Адже якщо, незважаючи ні на що, випустити модем з PCI COM портом, то жодна DOS програма сама з ним працювати не зможе. Як мінімум, Ви повинні будете прописати їй руками адреса цього порту і номер лінії переривання. Причому, якщо номер лінії переривання зазвичай ще пишеться BIOS'ом після самотестування комп'ютера в табличці, то адреса взагалі незрозуміло звідки брати. Але насправді зрозуміло. Є так званий інтерфейс згаданого вище PCI BIOS'а, через який можна не тільки отримати адресу на шині будь-якого PCI пристрої, але навіть і поміняти його. Для нашого модема HTS Express був свого часу написаний оптимізований для роботи на 386 машинах драйвер FOSSIL (називається HtFossil, лежить на http://www.hts-spb.com ). Заради інтересу, ми додали туди недавно автоматичний пошук таких портів на шині PCI, і це чудово працює: порт знаходиться, визначається його адресу і лінія переривання, після чого FOSSIL працює з ним так само, як і з будь-яким ISA'шним. Але що робити зі стандартними DOS програмами, в половині яких можна лише вибрати порт за номером 1..4 або в кращому випадку вибрати адресу зі списку, а в решті половині - не можна ввести адресу більше ніж 3FFh, в той час як PCI BIOS норовить " засунути "порт куди-небудь в B000h? Очевидно, що нічого з цим не зробити, крім як що змусити працювати таку програму через FOSSIL, в якому можна прописати всі необхідні параметри. Якщо ж таку програму неможливо змусити працювати через FOSSIL, то залишається намагатися переконфигурировать адреса PCI COM порту під стандарт, про що докладніше йтиметься нижче.

Сказане вище про можливість роботи під ДОС відноситься тільки до повних апаратним модемів. Однак, в природі існують і інші пристрої, які теж можна вставити в PCI-слот і яким виробник наказав грати роль модему. Hа тлі відсутності достатньої інформації з проблеми DOS-PCI-модем, а також навмисно вводячи користувачів в оману ( "Hе може працювати під ДОСом жоден PCI-модем!"), Ряд зацікавлених виробників і постачальників продовжує проштовхувати в маси неабияк дискредитувала себе ідею WinModem 'a. Деякі з цих виробники і зовсім відмовляються від створення повних PCI модемів, вважаючи за краще випускати замість них WinModem'и.

Що таке WinModem? Це половина модему. Та половина, яка демодулирует сигнал з лінії. Та, що пищить, набирає номер, і т.п. А другої половини - тієї, що розбирає команди, виправляє помилки (V.42), запаковує / розпаковує дані (V.42bis), і реалізує всі допоміжні функції, в модемі просто немає. Її відрізали разом з тією апаратурою, яка їй займалася. Ідея, прямо скажемо, не нова. Багато років тому були спроби ощасливити публіку модемами WinRPI, і навіть софт-модемами (у яких відрізав половина, а 3/4 схеми, включаючи і власне обробку сигналу), але ці спроби успішно провалилася - користувач просто проголосував ногами. Ті ж "щасливі" володарі, які встигли купити подібні пристрої, назавжди запам'ятали, що таке пошук драйвера від свого WinRPI для якої-небудь нової операційної системи, наприклад Win95. Навіщо потрібен драйвер? А потім, що відрізану половину функцій все ж потрібно десь реалізувати. Ось її і реалізували в драйвері. Тобто, частина модему - в залозі, частина - в драйвері. І без відповідного драйвера таке залізо абсолютно марно. Зроблено це все заради здешевлення, і це єдина причина. Оскільки за модемну залізяку клієнту платити потрібно, а за півсотні кілобайт ОЗУ в його комп'ютері він вже заплатив, коли комп'ютер купував. Те ж стосується і кількох відсотків його швидкодії.

У Теорії ідея нічім НЕ погана, Аджея Працюють же точно за такою схемою все відеоадаптері. Альо на практике все набагато гірше. По-перше, модеми вімагають жорсткий лімітованого часу Реакції на події в Лінії. Смороду НЕ могут чекати, поки розкрутіться Ваш CD-Rom або "зніметься з гальма" драйвер TCP / IP. Все це виробляти до збоїв в зв'язку. Відеоадаптер-то почекає, ну перемалюю Вам курсор від ведмедика на 200 мілісекунд пізніше, и все. А вісь віддаленій модем чекати не стану, ВІН вірішіть, что у Вас в телефонній Лінії проблеми, и почни з ними боротися, например, запустити ретрейн. Як і друга, драйвер послідовного порту для Windows - то ще Пристрій! Просто повторити его так, щоб ВІН працював з усіма програмами, у всех режимах, и в тонкощів повторював НЕ только функціональність, но и помилки драйвера оригінального - до чого звіклі все програми - далеко не трівіальна завдання. Як показала практика, фірми-виробника WinModem'ов зовсім НЕ збіраються кідаті на ЦІ здешевлені пристрої своих кращих розробніків. І якість Другої половини модему в драйвері Вихід "відмінне" - аж до зависання всієї системи. І, Нарешті, Третє: если, набуваючі повний модем, у Вас є Впевненість, что куди б Ви его ні включили, и якові б систему НЕ завантажено, ВІН там буде працювати, оскількі підтримка послідовного порту булу, є и буде у всех операційних системах ; то з WinModem'ом Ві точно и заздалегідь можете буті впевнені в тому, что в тій день, коли фірмі-виробнику з тих чи других причин набрідне перепісуваті драйвери для Вашої моделі модему під черговий нову операційну систему або ее версію, Ви зможете сміліво використовуват его в якості музейного експонат або набору запчастин. Причому, зважаючи на складність драйвера, цілком ймовірно, що вистачить навіть випуску черговий підверсії вже існуючої операційної системи. Ну, а причин перестати підтримувати Вашу модель модему у фірм може бути 1000 і одна. Наприклад щоб Ви купили у неї нову версію, або просто тому, що фірма закриється, або її хтось купить. Все це відноситься і до інших версіях WinModem'ов, наприклад, працюють через шину USB.

Однак, справжні повні PCI модеми все ж існують. Наприклад, USR Faxmodem (колишній Sportster) моделей 2977, 2976, 3298, 5610, 5610A (останній без трансформатора). WinModem'ная пропаганда останніх років настільки переконала багатьох в тому, що справжні модеми тепер залишилися тільки в зовнішньому виконанні, що ми неодноразово чули не тільки впевнені висловлювання користувачів, але і заяви деяких авторитетних "залізних" видань, що цей модем працює теж тільки зі спеціальними драйверами. Сподіваюся, що ця стаття допоможе Вам переконатися особисто, що це не так. Ми не в курсі, що і як робити під Unix'ам, але для DOS і для Win98 Ви можете самі повторити все описувані нижче процедури.

Спочатку для DOS. По-перше, переконайтеся, що цей модем ініціалізованим першим PCI BIOS'ом. Зазвичай так і відбувається "за замовчуванням", тому, якщо все ж BIOS цього не зробив, подивіться, чи немає в ньому налаштувань на кшталт "Boot to PNP OS?", "PNP OS installed" і т.п. Вони по-різному можуть називатися, але сенс в тому, щоб змусити BIOS проинициализировать всю периферію, а не тільки жорсткий диск з адаптером. Після цього BIOS (зазвичай перед завантаженням системи) видає в табличці перелік PCI пристроїв з їх коротким описом. Модем там повинен значитися як "Simple communication adapter" або щось схоже.

Тепер завантажуємо власне DOS. Все равно какой - 5, 6 або 7 від Win98 (це коли "Command prompt only" після натискання клавіші <F8> в процесі завантаження). Головне, щоб не DOS вікно під Windows. Беремо FOSSIL з нашого інтернет-сайту , Називається він HtFossil версії 5.00 і вище. І запускаємо його з ключем / PC. Це змушує HtFossil самостійно просканувати всі адаптери в комп'ютері, знайти серед них COM-порти, і визначити їх адреси та переривання. На кожен такий знайдений адаптер HtFossil виведе рядок, що адаптер знайдений, покаже його адресу і переривання, а також на який COM порт він призначений. Далі Ви або можете працювати з цим портом через будь-яку програму, яка дозволяє працювати з FOSSIL'ом з номерами портів більше 4, або просто взяти і перебити базовий адреса і номер переривання в який-небудь інший FOSSIL, DOS програму і взагалі куди завгодно. Для програми TeleMate, наприклад, треба в її файлі конфігурації виправити для обраного порту, наприклад п'ятого, три параметра - базовий адреса, номер вектора переривання, і апаратний номер переривання. Перше і останнє можна взяти з рядка, що виводиться HtFossil'ом, а номер вектора вважається так: для переривань від 0 до 7 він дорівнює 8 плюс номер переривання, а для переривань від 8 до 15 він дорівнює 70h + номер переривання - 8. Втім, Telemate може працювати і з FOSSIL'ом, якщо швидкість COM порту в цій програмі задана не вище 38400.

Можна також замість ключа / PC задати ці параметри якого-небудь молодшому порту в тому ж HtFossil. Звертаємо Вашу увагу на те, що поміняти примусово адреси і переривання в програмі HtFossil можна тільки для стандартних, перших чотирьох, портів. HtFossil має також можливість змінити базову адресу у автоматично знайденого PCI COM порту, що може виявитися корисним при роботі з комунікаційними програмами, які не разрешающими працювати з нестандартними адресами портів. Це робиться шляхом вказівки ключа зміни базового адреси до ключа / PC. Hапример, так:

HtFossil.Com / B5: 1234h / Pc

При цьому відбудеться наступне: коли HtFossil виявить PCI COM порт, то перед тим, як прочитати звідти його базовий адреса, встановлений BIOS'ом, він спробує спочатку змінити цю адресу на заданий (1234h), і лише після цього прочитає його знову і виведе на екран. Якщо пристрій дозволяє змінити свій базовий адреса, то він стане 1234h, а якщо не дозволяє, то адреса залишиться таким, яким його запрограмував PCI BIOS. І в тому, і в іншому випадку все буде працювати, швидше за все, коректно. Якщо ж ключ модифікації адреси задати після ключа / Pc, то базовий адресу в пристрої ніхто змінювати не стане, а замість цього HtFossil проігнорує адреса, прочитаний з пристрою, і буде, безумовно, працювати з тією адресою, який задали Ви, також як і в випадку з молодшими, стандартними, портами (1..4).

Ви можете задати будь-якій базовий адреса і яке завгодно переривання, але використовуйте для цього будь-якої з перших чотирьох портів. В принципі Вам ніщо не заважає перепризначити їх навіть один на одного, наприклад, задавши для COM2 в якості базового адреси 2E8h, тобто адреса четвертого порту.

Для того, щоб використовувати повний PCI модем під Win98, досить вибрати стандартний драйвер Windows. Робиться це так: вставляєте модем в комп'ютер, завантажуєте Windows. Вона знайде модем як новий пристрій і запропонує вибрати драйвер. Самостійно вона не бажає використовувати стандартний драйвер, Вам доведеться їй допомогти. Скажіть, щоб вона показала Вам список всіх драйверів в системі, потім виберіть стандартні драйвери, з них - простий COM порт. Система запитає Вас, чи добре Ви подумали, і попередить, що драйвер не від цього пристрою. Скажіть, що Ви завжди добре думаєте, і вона чудово почне працювати з Вашим новим модемом, назвавши його черговим по рахунку COM портом, наприклад, п'ятим.

Заради інтересу Ви можете подивитися ресурси цього порту, тобто базова адреса і переривання, в Device Manager.

Єдине, з чим можуть бути проблеми - з роботою DOS і старих 16-бітних програм у вікні Windows. Однак, на нинішній історичний момент це і не особливо актуально, а через деякий час чи взагалі залишаться цікавлять когось DOS програми для роботи з модемом, які потрібно запускати у вікні Windows. І ще, зверніть увагу: адреси портів і номер лінії переривання можуть бути різними під DOS і Windows, бо і те, і інше є результатом автораспределенія ресурсів при ініціалізації PCI адаптерів, і не обов'язково збігається в різних операційних системах.

Якщо Вам хочеться працювати з Вашим модемом саме як з модемом, а не просто як з портом, то Вам ще може знадобитися призначити на цей порт модем. Якщо такої не знайшовся сам (модеми теж мають механізм PNP), Ви можете зробити це через "Control Panel", зайшовши в розділ "Modems" і попросивши пошукати новий. Якщо новий буде називатися "Standard modem", то ми рекомендуємо Вам змінити його вручну на що-небудь більш схоже на Ваш справжній модем. Взагалі, подібне відбувається в ситуаціях, коли .Inf файл від виробника модему невірний, не відповідає поточній версії прошивки в модемі або зовсім відсутня в підкаталозі \ Windows \ Inf.

Тепер кілька слів про DOS-вікнах під Windows. Взагалі кажучи, в такому режимі PCI BIOS працювати не зобов'язаний, оскільки все управління апаратурою бере на себе Windows. Буває так, що час від часу, в залежності від малостабільних і малозрозумілих причин, PCI BIOS (точніше те, що від нього залишилося при емуляції DOS вікна) видає нерозумну інформацію про параметрах PCI пристроїв, наприклад, нульові адреси порту і переривання. При цьому запущений з ключем / PC Htfossil видасть повідомлення про помилку: "Bad PCI COM port IRQ found". Якщо Ви зустрілися з таким явищем, то Вам навряд чи вдасться пристосувати наш FOSSIL для автоматичного пошуку PCI модему. Проте, Ви можете спробувати це зробити вручну. Просто подивіться в Device Manager'е від Windows, які адреси портів і які номери переривань розподілені для потрібного Вам порту, і пропишіть їх руками в командному рядку у FOSSIL'а для якогось непотрібного Вам в даний момент COM порту. Непотрібного в тому сенсі, що Ви не збираєтеся з ним працювати через FOSSIL. Таким може бути, наприклад, порт з мишкою. Припустимо, що це у Вас COM1. А Ваш PCI модем виявлений Windows за адресою DB08h і має переривання 10. Тоді рядок ...

HtFossil.Com / B1: DB08h / I1: 10

... завантажить FOSSIL і змусить його при зверненні до COM 1 використовувати не адреса 3F8h і IRQ 4, а адреса DB08h і IRQ 10. Тепер Ви можете вказати Вашої DOS програмі COM 1 в якості порту, з яким вона повинна працювати. На жаль, в DOS вікні не обов'язково все буде працювати і в такому випадку:

Windows може не захотіти емулювати нестандартні адреси портів.

У цьому випадку Ви можете спробувати протилежний спосіб - зробити ці адреси стандартними! Якщо в Device Manager'е вибрати "властивості" (Properties) порту Вашого PCI модему, підпункт "Resources" і відключити галочку "Use automatic settings", то Ви можете спробувати прописати в якості параметра будь-який стандартний адреса (діапазон адрес) порту, наприклад від COM 4, тобто, 2E8h-2EFh.

Якщо Windows не дає Вам їх міняти, спробуйте вибрати іншу "Basic configuration", зазвичай Windows дозволяє змінювати параметри чомусь для непарної по номеру конфігурації. Питання зі стандартним перериванням трохи складніше - змінити його в Windows не вийде. На щастя, багато сучасних BIOS дозволяють призначати переривання 3 і 4 для плат PCI.

Якщо Вам в результаті вдалося змінити адресу порту і переривання, то Windows спробує переконфигурировать Ваше пристрій так, щоб адреси збіглися з вибраними Вами. У разі успіху Ви взагалі отримуєте повністю стандартний послідовний порт, на стандартом адресу і зі стандартним номером переривання. При цьому Windows може перенумерувати Ваш порт також в стандартний діапазон 1..4.

І, нарешті, як все повернути назад. Найпростіший спосіб для Windows - це видалити пристрій в Deivce manager'е. Не бійтеся видалити щось потрібне - все, що потрібно, Windows знайде Вам знову при наступному перезавантаженні. Можете видалити взагалі все COM порти - все знайдеться заново. А все не-PNPное обладнання знайдеться після запуску Вами стандартного Wizard'а по додаванню нового обладнання, в режимі "знайди сама". Єдине, що Вам може знадобитися після цього - знайти заново і "модеми", після чого повторити вибір модему в настройках для дзвінків в Інтернет, оскільки, хоча Windows буде там показувати правильну модель, насправді ж при видаленні-запропоновано додати пристрій вона втрачає посилання на нього, і при спробі зателефонувати через такий модем буде витворяти досить дивні речі, повідомляючи Вам, що модема чи ні, то чи він зайнятий і т.п. Однак вибір того ж модему, що і колишнього раніше в настройках "DialUp networking" ( "Видаленого доступу") повністю усуває проблему.

Що з цим робити?
Або в кращому випадку вибрати адресу зі списку, а в решті половині - не можна ввести адресу більше ніж 3FFh, в той час як PCI BIOS норовить " засунути "порт куди-небудь в B000h?
Що таке WinModem?
95. Навіщо потрібен драйвер?
Зазвичай так і відбувається "за замовчуванням", тому, якщо все ж BIOS цього не зробив, подивіться, чи немає в ньому налаштувань на кшталт "Boot to PNP OS?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: