DOS Protected Mode Services

DOS Protected Mode Services (DPMS) is a set of extended DOS memory management services to allow DPMS-enabled DOS drivers to load and execute in extended memory and protected mode.[1][2][3]

Not being a DOS extender by itself, DPMS is a minimal set of extended DOS memory management services to allow slightly modified DOS resident system extensions (RSX) such as device drivers or terminate-and-stay-resident programs (TSRs) (as so called DPMS clients) to relocate themselves into extended memory and run in 16-bit or 32-bit protected mode while leaving only a tiny stub in conventional memory as an interface to communicate with the conventional DOS environment.[2][4][5] The DPMS clients do so through DPMS services provided by a previously loaded DPMS server.[1] The necessary size of the remaining stub depends on the type of driver, but often can be reduced to a few hundred bytes for just the header even for complex drivers.

By executing the driver in extended memory and freeing up conventional memory, DPMS not only allows very large drivers to load and take advantage of the available memory, but also to leave more memory available for normal DOS drivers to load or non-extended DOS applications to execute within the space constraints of the conventional memory area. This will also help increase the amount of free system resources under Windows. Providing unified interfaces for the software to allocate and use memory in protected mode[1] without having to tunnel all requests through real mode DOS, DPMS at the same time can help improve system performance as well.

  1. ^ a b c Cite error: The named reference Caldera_1997_DPMS was invoked but never defined (see the help page).
  2. ^ a b Cite error: The named reference Brown_1994 was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference Schneider_1994 was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference Gillooly_1993_NWDOS7 was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference Goodman_1994_NWDOS7 was invoked but never defined (see the help page).