T602 od verze 3 již pracoval v režimu DPMI, tj. běžel v chráněném režimu. Když byla uvedena první verze T602, standart dpmi nebyl ještě specifikován. Programy v chráněném režimu si museli řídit všechno sami a s oblibou kolabovali na rezidentech a nových a jiných verzích DOSu, různých QEMM apod.
Pokud si pamatuji DPMI standart bylo jakési rozšíření DOSu, které nebylo součástí DOSu, ale přímo linkovalo k programu v chráněném režimu. Programy v tomto režimu spolu komunikovali přes volání služeb této knihovny. Byla zajištěna kompatibilita se službami Dosu i s voláním Himem a EMM386 i s rezideními programy.
To je asi vše co o tom vím. Docela by mě zajímalo jak to přesně fungovalo.
Jak si program pod DOSEm zajistil přepnutí do Standart nebo Ext režimu a
jak to rozhraní DMPI ( Dos Protecten Mode Interface ) běhalo.
Nooo onoho casu som sa pokusal robit par veci v Protected mode a moznosti boli myslim 3 :) ... Urobit si prepnutie sam pomocou par prikazov v assembleri alebo pouzit 2 rozne DPMI "komponenty". Svojho casu pouzivali skoro vsetky lepsie hry (doom a podobne).
Problem vlastneho prepnutia bol v tom ze pred prepnutim bolo potrebne pripravit zopar tabuliek koli spravnemu rozdeleniu segmentov pameti a potom si to spravne spravovat.
Pokial si tiez dobre pamatam tak pokial bol procesor prepnuty do protected modu uz nebolo mozne ho prepnut naspat do standart (v case dosu to mohlo obcas vadit pretoze sa nedalo pouzivat niektore veci zrovna jednoducho - bios volania myslim a prave rezidenty)
Ono to uz bolo davno co som to studoval. Pokial si dobre pamatam tak to bolo popisane v knihe Mikroprocesory Intel 8086 - 80486,Grada, 1991?
Z protected mode se přepnput do real mode dalo... tedy z hlediska uživatele a OS, nikoliv CPU jako takového, pokud bychom chtěli jít do úplných detailů.
Od 386 výš to uměly procesory rovnou "z fabriky" a u 286 k tomu AFAIK sloužil externí obvod, který při resetu CPU "podržel" v paměti potřebná data (reset CPU se tím pádem nerovnal resetu celého OS).
Už si to tedy přesně nepamatuju, ale takhle nějak to být prostě muselo (je to 15+ let, co jsem to řešil naposledy), jinak by uživatelé autory programů v protected mode jednoduše ukamenovali, pokud by museli pkaždé restartovat počítač jen kvůli ukončení programu (příklad za všechny - Windows 3.1x jely v protected mode exkluzivně, přesto je bylo možno "típnout" a mít mašinu v real mode po jejich ukončení bez resetu DOSu jako takového).
286 se do real mode přepnula pouze pomocí resetu. Takže se prostě provedl reset a v proměnných BIOSu se nastavilo, že jde jen o přepnutí do real mode, nikoli skutečný reset.
BIOS i DOS s tím časem počítaly.
386 už uměla vše přímo, ale také uměla V86 mód, takže tak jste při pokusu do přepnutí do real či protected módu měli smolenku.
Pokud v 386 a výše nastartoval už DOS na začátku driver protected módu a DOS a programy pouštěl ve V86, což bylo v 99,999% případů, tak samozřejmě pokus o šachování s módy byl zamítnut – programu se to nepodařilo a nebylo mu to povoleno.
Takže stejně od 386 výše byla nutnost volat služby standardu. Dokonce jedna že služeb bylo přepnutí do jiného módu. :-)
On vlastně DOS skončil hlavně proto, že měl nedostatek standardů a všechno si programátor musel dělat sám. Viz hry, u kterých bylo nutné nastavovat grafický režim, zvukovku a její ovládání a x dalšího. To evidentně všechno drželo vše pozadu.
A taky proto, že Microsoft chtěl DOS zlikvidovat. 10 let před koncem DOSu už stejně skoro všechny větší programy startovaly v protected módu, byly schopné používat mnoho megabajtů paměti a dalšího. MS bez problémů mohl přepsat DOS do protected módu jako standard, umožnit volat služby DOSu přímo z protected módu a staré DOS programy umožnit spouštět ve V86, což se stejně dělo. Pak by všechny DOS programy jely několikanásobně rychleji, což by na tehdejších strojích a slabém hw bylo něco.
Stejně tak nebyl problém udělat multitaskový DOS, řada produktů to uměla udělat i z normálního DOSu.
DR-DOS také uměl práva k souborům a adresářům včetně hesla. Ovšem ten jsem zlikvidoval velmi záhy poté co jsem zjistil, že přepisuje MBR disku a likviduje Linux, Windows i další systémy instalované na kompu. Přišel jsem na to tak, že antivirová ochrana neustále po instalaci DR-DOSu hlásila přepisování MBR a podezření na virus.
Tehdejší Windows byla slabota. MS ale potřeboval prorazit s Windows, takže DOS dále nevyvíjel.