CWSDPMI a PMODE
                               -=-=-=-=-=-=-=-=-

      The nice thing about standards is that there are so many of them to
                                  choose from.
                             -- Andrew S. Tanenbaum

          Abych shrnul  poznatky z předchozích  odtavců.  Pokud chcete mít
      program v protected  módu,  musíte  zvládnout jeho inicializaci, V86
      režim, VCPI a DPMI.

          To je důvod,  proč bežně  vznikaji  extendery, což jsou  externí
      programy,   které  se  postarají  o  nastartování   protected   módu
      a spuštění  32 bitové  aplikace.  Ve Watcomu to je Dos4GW, v EMX/GCC
      to je EMX a RSX, ve starém DJGPP to bylo go32 apod.

          V DJGPP v2 se  rozhodli to udělat  jinak.  Programy  kompilované
      pod DJGPP jsou proste DPMI clienty.  Používají DPMI jako "extender".
      V případě, že používáte  Windows,  nebo Qemm s DPMI, není tedy třeba
      žádný externí  program. V případě, že DPMI server neběží, program se
      pokusí spustit  externí  program  (cwsdpmi). Teprve v případě, že to
      nejde napíše hlášku o tom, že potřebuje DPMI a zkončí. Protože běžný
      extender musí běžet pod DPMI a může tedy obsahovat pouze  podmnožinu
      jeho služeb, zdá se mi to jako dobré řešení.

          CWSDPMI je velmi kvalitní  implementace DPMI - běží téměř všude,
      je  relativně  krátké  (20KB)  a umí  velké  množství  DPMI  volání.
      Neemuluje vůbec 16ti bitové DPMI, to ale v případě DJGPP není třeba.

          Důležitá věc je, že nesmíte zapomenout  přibalit CWSDPMI ke všem
      programům.

          Je možné ještě  použít mezi Watcomisty  velmi  rozšířeny  tranův
      pmode. Ten je ještě  kratší a o něco málo  ryclejší.  Existuje  také
      utilitka,  co ho přidá  přímo do EXE  souboru a proto ho hodně  lidí
      používá.  Neemuluje ale celé  DPMI, je poměrně  nesnášenlivý a neumí
      swapovat na disk. Proto ho nedoporučuju.

          Vlastní   distribuce   CWSDPMI   obsahuje  ještě  dva  programy.
      Prvním je CWSDPR0. Pokud  použijete tento DPMI server,  program běží
      v privilegovaném  módu, proto je možné  například  použít  pentiácké
      časovací  instrukce.  Ale pro  běžné  použití to je kničemu.  Nemůže
      swapovat na disk, neodpovídá přesně DPMI specifikaci apod.

          Druhým  programem  je  CWSPARAM.  Ten  umožňuje  nastavit  mnoho
      užitečných  věcí. Jako první je cesta k swapovacímu  souboru.  Běžně
      se swapuje na c:, ale  hodně  lidí to potřebuje  přenastavit.  Další
      důležítá věc je položka  "Minimum  application memory desired before
      640K paging". Běžně totiž DPMI programy vůbec nepoužívají  paměť pod
      640KB.  Hodně lidí ale má přes téměř celou  extendedku  cache  apod.
      Tato položka určuje minimální velikost XMS, kdy se ještě dolní paměť
      nepoužije. Pokud Váš program  nepoužívá moc DOSácké  paměti  (nevolá
      nějaké DOSové utilitky apod.) Je dobré tuto hodnotu  nastavit na to,
      kolik  paměti  potřebuje Váš program.  Další  položka  určuje  kolik
      paměti  se má nechat  pro  DOS v případě,  že se začne  dolní  paměť
      používat. Pokud nepoužíváte DMA, soubory atd., je možné tuto hodnotu
      nastavit dokonce na 0.

          Tento  program  spolu s  dokumentací k  CWSDPMI  je  take  dobré
      přibalit k Vašemu programu.


            výheň