DJGPP
                                    ^^^^^

          Tak  kompiler  máme  za  sebou.  Ted něco napíšu o jeho dosáckem
      portu.  Ten začal dělat Dj Delorie. Jak on píše začal o tom uvažovat
      v  roce  1986(tehdy se jmenovalo djgcc), kdy se ptal RMS, jestli GNU
      plánuje dosácký port. Ten se mu ale jen vysmál, že na tak ošklivý OS
      GNU nikdy dělat nebude.

          Napřed trochu historie. Jako první verzi zkompiloval gcc pod ICS
      Unixem  na 386/16. Přepsal systémová volání, potom slinkoval s ICS c
      knihovnou a pomocí programu výsledek předelal do 32 bitového EXE pro
      Phar  Lab  extender.  Protože  ale  Phar  Lab neměl virtualní pamět,
      napsal  vlastní extended go32. A byla na světě první verze gcc(1.32)
      která  sama sebe zkompilovala. Potom vzal BSD zdrojáky a preportil c
      knihovnu  pro DOS. První použitelná verze byla 1.03. Práce mu trvala
      opravdu  dlouho,  protože  1.03  vyšla  před  třema  rokama. Verze 1
      používala  go32. Ten ale nebyl zrovna nejlepší. Vyznačoval se velkou
      nesnášenlivostí   (neběžel  ani  pod  emm386).  Potom  přidal  G++ a
      přejmenoval  výtvor  na  DJGPP. Verze 1.05 už podporovala VCPI, 1.10
      DPMI a 1.11 přidala DPMIEMU. Byl tu ale pořád jeden nedostatek. Go32
      se  kompilovalo  v Borlandech a to nebylo zrovna nejlepší - vůbec to
      nebyl  IMO  dobrý  extender.  Dost nesnášenlivý. Verze 1.03 mě tehdy
      dost  zklamala.  Prací  na  odstranění  tohoto nedostatku začala pro
      verzi  2. Jako první napsali assembler, který vygeneruje 16ti bitový
      zavadeč.  Tento  zavaděč  ale  vyžadoval DPMI a tak aplikace už zase
      neběžely všude. A tak se go32 používalo dál, jako DPMI server. To se
      vyřešílo  až pomoci CWSDPMI, to je dost dobrý DPMI server dodávaný z
      djgpp.  Zavaděč ho umí sám spustit když dpmi není k dizpozici, takže
      vpodstatě  to vypadá skoro jako extender, ale není. Vyvinout verzi 2
      trvalo celé dva roky. Byla vypuštěna v polovině roku 1996.

          Verzi  2  jsem  si  ztáhnul  jen  tak ze zvedavosti a opravdu mě
      nadchla. Jen několik parametrů:

         Plně 32 bitový (jako Watcom)
         Funguje jako DPMI client (tedy se snáší z windowsema atd)
         Nepoužívá extender (ušetří se cca 200KB za něco jako dos4gw. Taky
                      by to mělo být rychlejší - uštří se context switch
                      mezi programem a extenderem.)
         Má vlastní DPMI server - takže stejne .exe navíc ale jenom 20KB
                      místo 200..
         DPMI server umí swapovat..tedy 4GB ram...
         Podpora win95kových dlouhých názvů atd..

          To  dělá  z djgpp nejlepší mně známý kompiler pro dos. Je velice
      podobný  watcomu.  Vyznačuje se opravdu slušnou stabilitou. Testoval
      jsem  ho  pod windows, čistým dosem, emm386, qemm386, qemm386 s jeho
      DPMI  serverem,  Linuxovým  dosemulátorem  a  všude fungoval skvěle.
      Autoři  uvádějí problémy s novell dos DPMI serverem, který ma bugy a
      tak  to  moc  nefunguje.  Stačí  ho  jenom  vypnout a už to funguje.
      Potobný problém je se starým QEMM DPMI serverem.

          Poslední  verze  je  dneska  2.01. Ta odstraňuje pár chyb, které
      byly ve verzi 2. Zejména kolem dlouhých názvů ve woknech.

          Ve srovnání s watcomem mě opravdu žádná výhoda watcomu nenapadá.
      U  Borlandů  jsem  jednu  vymyslel.  To  je  rychlost  volání služeb
      dosu/biosu.   Každé   takové   volání  si  vynucuje  několikanásobné
      přepínaní  mezi  v86 a realným modem. (to je u každé DPMI aplikace).
      Takže  čtení  souboru je asi o 10% pomalejší. Druhá, co mě napadí je
      velikost  exe souboru. U klasického hello word jde velikost stáhnout
      na  cca  10KB což ke sice hodně ale je v tom celý 32 bitový zavaděč.
      Oproti 200KB dos4gw to je ale pořád krásné.

          Bylo  samozdřejmě  přeportěno  hodně  programů  pod  GNU (EMACS,
      indent,  make  ...)  ale  vzniklo i hodně zajímavých nových dosových
      věcí:

      Allegro  - grafická knihovna specializovaná na hry a dema. Umí jenom
            256  barevný  mody ale zato je dost rychlá, umí hodně modu X (
            třeba  256x256), práci s fonty, sprajty, zvuky (SB), VESA mody
            ale  má  i  svoje drivery pro S3, tridenta atd.. v případě, že
            vesa  není,  podporuje  VESA2,  3D  grafiku,  jednoduchá  GUI,
            časování atd.
      Rhide  -  To  je  docela  věrná kopie Borlandího prostředí. Je sice
            často   plná   bug   (alespoň   poslední  verze,  kterou  jsem
            testoval..nepoužívám  ho)  Umí  skoro  všechno  co  borland9 -
            debugovaní,  syntax  highigting  (  pro  C, C++, pascal, ASM a
            další,  co  si  nadefinujete)  atd..  Volá samozdřejmě externí
            kompiler,  takže  to  není taková prasárna. A ma některá hezká
            rozšíření, jako další textové mody apod.
      Gpc - Pascal byl předělán tak, aby se co nejvíc podobal borlandímu.
      Grx  - něco jako gnu verze bgiček. Je pomalejší než alegro. Stejně v
            tom  jde ale napsat akční hry. Umí ale víc bgi style grafickej
            funkcí,  taky  pracuje  s  VESA  a  má  svoje  drivery a umí i
            černobíle,  16ti  barevné, 256ti barevné, hi color a truecolor
            mody.
      Djp  -  Velice kvalitní pakovač exáčů-rozbalí 10MB do sekundy, takže
            ja tím mam zabalenej i kompiler
      jptui - celkem hezke GUI co vypadá jako z nortonových utilit
      mikmod - player modu apod. Nechá se použít pro zvuk ve hrách/demách
      ta2as - převaděč klasického assembleru to AT&T syntaxe
      djgpptsr- ukázka, že v djgpp lze psát i rezidenty.
      cwsdpmi - velmi kvalitní DPMI server
      pmode   -   port  watcomího  extenderu,  když  nechcete  cwsdpmi(víc
            nesnášenlivý než cwsdpmi ale trochu rychlejší. Má víc bug)
      xlib - port borlandí xliby
      jlib - jiná herní knihovna
      midas - přeportěný zvukový server (zatím v alpha verzi)

          A samozdřejmě fůra dalších (jako třeba turbovision, emulace BGI,
      3D knihovny apod).

          Pokud  chcete  nějaký  příklad  programu pod DJGPP můžete zkusit
      třeba Quake, demo Hard Rox, Info-ZIP (teď archivuje i dlouhé názvy),
      GhostScript,  Executor  -  emul8tor  MACu,  WatTCP, Xemu, DESQview/X
      developers kit, náš zoomer XaoS, naše demo BB atd.

          Djgpp funguje také pod okny ale to jsem netestoval.

          Ti,  co  dočetli až sem se možná už zajímají o tak, jak se DJGPP
      instaluje


            výheň