НОВОЕ: OS/2 GURU - Вопросы и ответы

Reviews / articles about OS/2

Operating systems:
ArcaOS, eComStation, IBM OS/2 Warp
Мифы о eComStation 

Unsorted

 

 

Обновите ArcaOS до уровня NeoWPS

  • Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
  • Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе

Путь к 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 почему бы не сделать? Удобно ведь.

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

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

eCo Tunes - интернет-радио. Слушай музыку других народов, любых жанров.

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

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

eComStation 2.0 работает быстрее (поддержка SMP x файловая система JFS) Что нового в eCS 2.0?

 


 

(C) OS2.GURU 2001-2021