DOS Protected Mode Interface

from Wikipedia, the free encyclopedia

Dos protected mode interface , short DPMI is an API for the development of DOS based applications that are more than the so-called " conventional memory " of 640  KiB (655360 bytes also see UMB ) utilized directly, without detours via bank switching , XMS , EMS and the like.


The DPMI API exists as 16- and 32- bit API and hides all the technical details of the programming of the protected mode of the newer Intel - processors (from the Intel 80286 ) prior to the application program. The DPMI-API is usually provided by an external utility program supplied, the so-called DOS extender . This means that a real mode program (such as a DOS program) can use the functions of the protected mode by calling up the corresponding DPMI functions. The DOS-Extender then switches to Protected Mode, executes the desired function, switches back to Real Mode, and transfers control back to the application program.

In Windows, DPMI is provided directly by the operating system. The DOS extenders recognize this case and then limit themselves to passing on the corresponding calls.

DOS extender implementations

Well-known DOS extenders:

  • RTM.EXE (16-bit) and RTM32.EXE ( 32-bit , only in Turbo C ) used in Borland compilers (including Borland Pascal 7.0 )
  • DOS4GW.EXE ( supplied with Watcom C / C ++ , very popular until 1995, afterwards development stopped, today obsolete)
  • PMODE / W
  • Causeway
  • DOS / 32A (compatible with DOS4GW.EXE, last version 9.12 from 2006)
  • CWSDPMI (part of DJGPP , there also referred to as GO32.)
  • PMODE / DJ
  • HDPMI16 (16-bit) and HDPMI32 (32-bit) from the HX DOS Extender
  • TNT DOS-Extender SDK from Phar Lap
  • 386 | DOS-Extender SDK from Phar Lap
  • emx by Eberhard Mattes
  • Zortech C ++