Welcome to eComStation.RU site!

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:

eComStation.RU

ru · en · de · es · it · pt · cz · pl · fr
eComStation - это совершенно другая операционная система для PC (IBM OS/2 Warp)
Программы, новости, статьи, поддержка пользователей, оборудование, вопросы и ответы.
 
      Что такое OS/2?НовостиУстановкаОбновлениеПрименениеБудущееСообществоКупить    
(Карта сайта)

 
 
Списки протестированного OS/2 оборудования
Как получить драйверы OS/2 бесплатно

 
Обновление

 
Программы

 
(Санкт-Петербург)

 
Преимущества (1)

 
Разработчику (1)

 
(Пайпы программ)

 
Компании: (1)

 
История (1):

 
(Бонусы)

 
Советы:

 
(Барьеры и решения)

 
Технологии: (1)

 
(Применение в науке, лаборатории, ..)

 

 
Готовые решения:

 
Новая eComStation:

 
Будущее: (1)

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
Артефакты OS/2

 
Гаджеты

 

Путь к Plug'n'Play


TITLE: Путь к Plug'n'Play

DATE: 2001-09-10 18:24:22

AUTHOR: Дмитрий Поляков

С OS/2 я познакомился в 1998 году, чему поспособствовал сисоп BBS LimeLight station, который записал мне компакт диск с кучей осевого софта. Видимо, если бы ни это событие, OS/2 до сих пор являлась бы для меня просто ещё одной операционной системой как BeOS, Linux, QNX и т.п. В то время меня сильно привлекло качество программного обеспечения, сделанного для этой системы, такого как ZOC или к примеру, Lotus SmartSuite. Как оказалось, ситуация с драйверами была куда хуже чем с просто приложениями. В первую очередь, я начал устанавливать драйвер для своей звуковой карты (в то время это была Gravis Ultrasound PnP Pro), что не явилось для меня тривиальной задачей. Только после прочтения документации, я наконец-то выяснил, что оказывается необходимо запустить какую то программу под названием minstall. Догадаться до этого было сложно. Слово PnP в названии звуковой карты на её работу в OS/2 не повлияло никак, чего нельзя сказать о работе карты в MS Windows. В Windows карточка сразу же определялась при запуске системы. Всё это говорило мне, что в OS/2 с драйверами дела плохи. С тех пор накопилось достаточно много опыта, да и проблемы с драйверами сами по себе пропали, например взять тот же SDD. Если ранее приходилось искать драйвер на сайте производителя, версии которого под OS/2 могло не оказаться (как часто и происходило), то с появлением SDD нехватка драйверов для видеоадаптеров исчезла. Наверное, всем понятно, что с драйверами в Windows проблем вообще нет и, наверное теперь уже не будет. Нет сложностей, как в установке, так и в поиске. На фоне таких статей как "Стратегия развития OS/2" ко мне пришла мысль реализовать такую же систему определения устройств, как это сделано в Windows, но отсутствие знаний API OS/2, документации и времени всё погубило. Далее я расскажу мои мысли по поводу того, как можно реализовать Plug'n'Play в OS/2 и если кто то сможет это реализовать - пускай попробует. Я думаю, что многие люди будут благодарны этому человеку.

Путь к Plug'n'Play

Драйверы, как правило, устанавливаются для устройств, которые подключены к шинам ISA и PCI. Для получения списка и ресурсов устройств на этих шинах существуют различные способы. При поиске устройств мы получаем его идентификатор. Существует постоянно обновляемая база данных соответствия идентификаторов устройств самим устройствам. С получением списка для шины PCI особенных проблем нет. В OS/2 для этого всё есть. В файле pddref.inf из DDK (раздел Generic IOCtl Commands \ Category 80h OEMHLP IOCtls) описаны функции для работы с PCI, в том числе и поиск устройств на шине. Также список можно получить с помощью прерывания BIOS 1Ah, которое в OS/2 непонятно как выполнить (разве что в VDM, но это не путь), и можно ещё таким образом:

  PCItype:=0;
  outp($CF8,0);
  outp($CFA,0);
  if (inp($CF8)=0) and (inp($CFA)=0) then PCItype:=2
  else begin
    tmp:=inpl($CF8);
    outpl($CF8,$80000000);
    if inpl($CF8)=$80000000 then PCItype:=1;
    outpl($CF8,tmp);
  end;
  case PCItype of
    1:begin   {PCI type 1}
        for i:=0 to 511 do
        begin
          outpl($CF8,$80000000+i*longint(2048));
          tmp:=inpl($CFC);
          if ((tmp and $FFFF)<>$FFFF) and ((tmp shr 16)<>$FFFF) then
            {_PCI Device: Vendor: (l and $FFFF)  Device: (l shr 16)_}
        end;
      end;
    2:begin   {PCI type 2}
        outp($CF8,$80);
        outp($CFA,0);   {Bus select?}
        for i:=0 to 15 do
        begin
          tmp:=inpl(i*256 +$C000);
          if ((tmp and $FFFF)<>$FFFF) and ((tmp shr 16)<>$FFFF) then
            {_PCI Device: Vendor: (l and $FFFF)  Device: (l shr 16)_}
        end;
        outp($CF8,0);
      end;
  end;

С шиной ISA ситуация несколько сложнее. Каких либо специальных функций в OS/2 я к сожалению не нашел. По поводу ISA/PnP есть документация от Microsoft, найти котрую можно по адресу ftp://ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs. Второй способ - это использовать PnP BIOS. Но тут возникает небольшая проблема - код 16-и битный и находится ниже первого мегабайта. На вопрос, как его выполнить, мне ответить никто не смог. Так что остаётся надеяться на документацию от Microsoft.

Вообще, о том, каким образом организуется Plug'n'Play можно прочитать по следующему адресу: http://members.hyperlink.net.au/~chart. Там же есть и исходники, правда под DOS.

Как это реализовать в OS/2

Можно написать объект для Presentation Manager, который при загрузки самого PM будет опрашивать драйвер (который, разумеется тоже нужно написать), на предмет списка устройств и сверять его с результатом предыдущей загрузки системы. Если он (список) не совпадает, то смотрим, какие новые устройства у нас появились. В соответствии с этим начинаем устанавливать те или иные драйверы. Можно не использовать никакой драйвер, а просто взять с этой странички уже готовые программы, несколько изменить, да и всё. Единственное что смущает - это то, что они будут работать в VDM. Где и как хранить драйверы - нужно ещё подумать. А можно пойти по примеру Windows и взять за основу идентификации устройства .inf-файл.

P.S. Вообще, всё это уже должен был кто-то реализовать. Вот например в eComStation почему бы не сделать? Удобно ведь.

Автор: Поляков Дмитрий

Попробуй программу:

Благодаря тулкиту Qt4 в eComStation будут портированы десятки современных графических программ, Вложить 5 евро в разработку Qt4

Комментарии:

Alex G.
2001-09-10 19:06:08

А надо? iSA как бы умерла уже. Может лучше доделать USB support в оси - благо сырцы открыли...

Yuri Prokushev
2001-09-11 10:24:02

Есть одна сложность - сами драйвера. Определение устройств - это хорошо. Ну, нашли мы его. А дальше что делать?


2001-09-11 11:28:02

Что делать ?

1. Иметь с дистрибутивом оси множество драйверов.
2. Открывать браузер с URL'ом драйвера.

Василий А. Сидоров
2001-09-11 16:05:46

1. Int1A "закрыто". Intel'ом. "Читайте конфигурационные регистры напрямую". Его же (Intel'а) рекомендация.
2. "rmview /da". Чего, говоришь, нет в OS/2? Виндовозного "Обнаружено новое устройство"? "В сад" (c).
3. С любым PnP nonPnP-aware драйвер создаст кучу проблем. Кто будет писать "правильные" драйверы?

Автор
2001-09-11 16:18:21

Речь ведь не идёт о создании той же rmview или чего то подобного, а всего лишь об упрощении установки
драйверов. За основу можно взять тот же rmview,
кстати.

Василий А. Сидоров
2001-09-11 18:47:42

"Процесс установки драйверов" заключается в прописывании device/basedev в CONFIG.SYS.
Если не хочется "делать это" ручками - есть DDINSTALL.
Вопрос в другом - где взять PnP-aware драйверы?

GA
2002-02-23 14:10:53

For Plug and Play one needs

(1.)Plug and Play bios, P&P OS, and P&P Hardware

(2.)Hardware Tree: Built by BUS enumerators. RAM record of all devices on system

(3.)Bus Enumerator: Driver based on BUS (i.e. SCSI, IDE). Allows unique and constant ID of each device on system

(4.)An auto-detection which BUS enumerators are in effect

(5.)Hardware tree is displayed as the device manager (stored in hkey_local_machine)

(6.)Plug and Play OS requires: Configuration Mgr., Hardware Tree, BUS Enumerator, Resource Arbitrators

(7.)Plug and Play Device drivers must: Register with configuration mgr., wait for resources (device) before becoming active, and respond to dynamic config (not jumper-laden)

(8.)P&P finds legacy cards by checking specific I/O ports and memory addresses.

(9.)Legacy cards can only be found by setup and "Add New Hardware"

This should be a model for development...

GA
2002-02-23 14:22:18

Updating ESCD...About Plug n Pray

see: [url]

with some detailed advices

GA
2002-02-23 15:00:30

A tool for PCI hardware recognition:

PCI044VK.ZIP 300K 2-22-02

A PCI & AGP bus sniffer v0.44.vk with recognition of hardware types. PCI.EXE and CHKPCI.EXE are command line

programs with VIO output(Jan., 5th 2002)

One can download it from [url]

If one has no registration one can download free with telnet

See the direct call for a telnet session on the site

Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).


Ваше имя:

Ваш E-Mail:

CODE:
......

  

Ваш комментарий:


eComStation 2.0: все фиксы от корпорации IBM + настройки всех системных служб и драйверов оптимизированы, Что нового в eCS 2.0?

Статьи

Операционная система
Программное обеспечение
Оборудование
Для разработчика
Разное
Колонка редактора


Готовая eComStation на SSD диске

 





Последний активный опрос: Какая высота барьера RPM?

IBM OS/2 Warp

 
Обучение новичков

Отчет: OS/2 совместимое оборудование

 
Статьи


   
  Почему eComStation?
Возможности
Особенности
Применение
Ролики и скриншоты
   eComStation для
для бизнесменов
для студентов и инженеров
для продавцов компьютеров
сообщество пользователей
   Разработчик
Распространить программу
Описание API, библиотеки
Начать новый проект
Конкурсы
   Программы
Он-лайн каталог
Выбрать через eCo Market
   Служба поддержки
Отправить вопрос
Купить eComStation
Вопросы и ответы
Обучение новичков
 
 
© 2001 - 2014 eCo Software, All rights reserved
eComStation is a registered trademark of Serenity Systems International
OS/2 Warp is a registered trademark of IBM Corporation
 

 

 
Картинка дня: