![](http://image.absoluteastronomy.com/images//topicimages/noimage.gif)
DOS Protected Mode Services
Encyclopedia
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
.
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 TSR
s (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. The DPMS clients do so through DPMS services provided by a previously loaded DPMS server.
The necessary size of the remaining stub depends on the type of driver, but often can be reduced downto 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 left 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 to increase the amount of free system resources under Windows.
Providing unified interfaces for the software to allocate and use memory in protected mode without having to tunnel all requests through real mode DOS, DPMS at the same time can help to improve system performance as well.
's Digital Research
GmbH, Germany, in 1992. It is compatible with any DOS
and can coexist with memory managers and DOS extenders such as DPMI, VCPI, etc. The DPMS API is reentrant and compatible with multitaskers such as the DR-DOS multitasker or DESQview
. By providing a built-in DPMS VxD
-driver, it is also compatible with Windows 3.x and Windows 9x.
The DPMS server must be loaded after the memory managers (and before the drivers using it), either as a "DPMSXXX0" device driver per DEVICE statement in CONFIG.SYS
(preferred method), or later as a TSR. For debug purposes (for example in conjunction with Microsoft's WDEB386.EXE), SDK-versions of EMM386.EXE 3.00 can alternatively provide DPMS services via EMM386 [/]DPMS[=ON] through a built-in DPMS.SYS module, then running at ring 1
instead of ring 0, as with the stand-alone version of DPMS.EXE. The DPMS [/]NOCR3 option allows debugging under Nu-Mega
's SoftICE
.
Depending on circumstances the server will occupy between about 700 to 1400 bytes of conventional memory by itself and cannot be loaded into UMBs.
The DPMS server will require at least a 286
machine to run, but since DPMS-enabled software can be designed in a way so that it continues to execute in conventional memory if DPMS services are not available, the software does not need to give up compatibility with systems not providing DPMS services, either because DPMS is not loaded or not available (for example on pre-286 processors). On 386
CPUs (and higher), the DPMS server will not only provide a set of 16-bit, but also a set of 32-bit services. Even on these machines, DPMS can be forced to load only its 16-bit services using the DPMS [/]2[86] option.
DPMS will allocate memory either through VCPI or XMS, depending on what kind of memory is available. VCPI will typically call down to XMS as well. Newer versions of DPMS can be forced to utilize one of these interfaces using the DPMS [/]MEM=XMS|VCPI option. In some versions, it is possible to specify the maximum amount of extended memory to be allocated with DPMS [/]MB=nnnn.
DPMS registering services can be diabled or re-enabled at any time after load using the DPMS [/]OFF or DPMS [/]ON command, however, this will only affect new drivers loaded, not those already running and using DPMS.
There are basically three revisions of the DPMS specificaton, DPMS beta, DPMS 1.0 (original Novell DOS 7 shipment) and DPMS 1.1 (since March 1994 update). The 1.0 specification continued to support the beta specification as well, whereas the 1.1 (and higher) implementation does not.
DPMS saw its debut in beta versions of DR DOS "Panther" in October 1992, which, besides others, came with DPMS-enabled versions of the Super PC-Kwik disk cache, the SuperStor disk compression, and DEBUG as "stealth" protected mode system debugger. The PCMCIA card services CS in PalmDOS were DPMS-enabled as well. Later retail products such as Novell DOS 7 and Personal NetWare 1.0 in December 1993 also came with many DPMS-enabled drivers such as the file deletion tracking component DELWATCH 2.00, the adaptive disk cache NWCACHE 1.00, NWCDEX 1.00, a CD-ROM redirector
extension, the peer-to-peer networking server SERVER 1.20, and STACKER 3.12, the disk compression component. DPMS was also provided by Caldera
OpenDOS 7.01, DR-DOS
7.02 and 7.03, which, at least in some releases, added DPMS-enabled issues of DRFAT32 (a FAT32 redirector extension), LONGNAME (VFAT long filename
support) and VDISK (virtual RAM disk
). DR-DOS 7.03 contains the latest version of DPMS 1.44.
DPMS was also provided by IBM
's PC DOS 7.0 and PC DOS 2000, which came with an older version of Novell's DPMS server and a DPMS-enabled version of Stacker 4.02 bundled.
Stac Electronics
also produced a DPMS-enabled stand-alone version of Stacker 4.
Some third-party DOS driver suites such as the Eicon
Diva CAPI
ISDN drivers or PCMCIA driver stacks such as Award
's CardWare 2.5 (or higher) are known to support DPMS as well. After Phoenix
' aquisation of Award, their PCMCIA drivers 6.0 (and higher) have been sold off to UniCore
.
was used to relocate Helix' network drivers into extended memory. Together with Award, Helix developed cloaked BIOS
es to reduce their conventional memory footprint and use them as mapped-in overlays in conjunction with their memory managers.
As part of their Multimedia Cloaking product, Helix provided cloaked versions of Microsoft's MOUSE, MSCDEX
, and SmartDrive
drivers.
There was also a product named Multimedia Stacker consisting of Stac's DPMS-enabled Stacker 4.01 with Helix' suite of cloaked DOS utilities.
The Logitech DOS mouse driver since 6.50 was enabled to take advantage of CLOAKING as well, thereby reducing the mouse driver's memory footprint visible to DOS applications from 27 KB to 1 KB.
CLOAKING was also licensed to Symantec
for their utility suite and to Corel
for their CD Creator and Corel SCSI products.
In contrast to Novell's DPMS, Helix' CLOAKING can be loaded high, but it does not run on 286 machines and does not provide 16-bit services. Also, CLOAKING 2.01 has been found to be incompatible with the DR-DOS multitasker (EMM386 /MULTI[=ON] + TASKMGR).
If no DPMS server is present when CLOAKING.EXE loads, it will, by default, also provide a cloaked DPMS server at a mere 100 bytes increase of its DOS memory footprint. However, it can also coexist with a DPMS server loaded before CLOAKING. The loading of its built-in DPMS server can be suppressed using the CLOAKING /NODPMS parameter. Therefore, DPMS-enabled drivers will work with both, DPMS or CLOAKING, but not vice versa.
Novell's DPMS utility may not be used to temporarily disable DPMS with a DPMS [/]OFF command if those DPMS services are provided by CLOAKING instead of DPMS itself, because Helix' implementation will erroneously not only disallow new drivers to register with DPMS, but completely switch off DPMS services even for already loaded drivers, leading to a system crash.
/VLM. The NIOS (NetWare Input/Output System) client used techniques very similar to DPMS or Cloaking to relocate and run the code of the loaded NLMs (NetWare Loadable Modules) in protected mode and extended memory in order to reduce the conventional memory footprint of the network stack downto about 2 to 5 KB. However, NIOS neither required nor used DPMS or Cloaking, and it did not provide a generic interface which could be utilized by non-NLM modules, however, it can coexist with both of them.
Extended memory
In DOS memory management, extended memory refers to memory above the first megabyte of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems...
and protected mode
Protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units...
.
Not being a DOS extender
DOS extender
A DOS extender is a computer software program which enables software to run under a protected mode environment even though the host operating system is only capable of operating in real mode....
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 TSR
Terminate and Stay Resident
Terminate and Stay Resident is a computer system call in DOS computer operating systems that returns control to the system as if the program has quit, but keeps the program in memory...
s (as so called DPMS clients) to relocate themselves into extended memory and run in 16-bit
16-bit application
A 16 bit application is any software written for MS-DOS, OS/2 1.x or early versions of Microsoft Windows which originally ran on the 16-bit Intel 8088 and Intel 80286 microprocessors. Such applications used a 20-bit or 24-bit segment or selector-offset address representation to extend the range of...
or 32-bit
32-bit application
On the x86 architecture, a 32-bit application normally means software that typically uses the 32-bit linear address space possible with the 80386 and later chips...
protected mode while leaving only a tiny stub in conventional memory
Conventional memory
In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of the memory on IBM PC or compatible systems. It is the read-write memory usable by the operating system and application programs...
as an interface to communicate with the conventional DOS environment. The DPMS clients do so through DPMS services provided by a previously loaded DPMS server.
The necessary size of the remaining stub depends on the type of driver, but often can be reduced downto 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 left 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 to increase the amount of free system resources under Windows.
Providing unified interfaces for the software to allocate and use memory in protected mode without having to tunnel all requests through real mode DOS, DPMS at the same time can help to improve system performance as well.
DPMS
DPMS was originally developed by NovellNovell
Novell, Inc. is a multinational software and services company. It is a wholly owned subsidiary of The Attachmate Group. It specializes in network operating systems, such as Novell NetWare; systems management solutions, such as Novell ZENworks; and collaboration solutions, such as Novell Groupwise...
's Digital Research
Digital Research
Digital Research, Inc. was the company created by Dr. Gary Kildall to market and develop his CP/M operating system and related products. It was the first large software company in the microcomputer world...
GmbH, Germany, in 1992. It is compatible with any DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...
and can coexist with memory managers and DOS extenders such as DPMI, VCPI, etc. The DPMS API is reentrant and compatible with multitaskers such as the DR-DOS multitasker or DESQview
DESQview
DESQview was a text mode multitasking program developed by Quarterdeck Office Systems which enjoyed modest popularity in the late 1980s and early 1990s...
. By providing a built-in DPMS VxD
VxD
VxD is the device driver model used in Microsoft Windows/386, the 386 enhanced mode of Windows 3.x, Windows 9x, and to some extend also by the Novell DOS 7, OpenDOS 7.01, and DR-DOS 7.02 multitasker...
-driver, it is also compatible with Windows 3.x and Windows 9x.
The DPMS server must be loaded after the memory managers (and before the drivers using it), either as a "DPMSXXX0" device driver per DEVICE statement in CONFIG.SYS
CONFIG.SYS
CONFIG.SYS is the primary configuration file for the DOS, OS/2 as well as similar operating systems. It is a special file that contains setup or configuration instructions for the computer system.- Usage :...
(preferred method), or later as a TSR. For debug purposes (for example in conjunction with Microsoft's WDEB386.EXE), SDK-versions of EMM386.EXE 3.00 can alternatively provide DPMS services via EMM386 [/]DPMS[=ON] through a built-in DPMS.SYS module, then running at ring 1
Ring (computer security)
In computer science, hierarchical protection domains, often called protection rings, are a mechanism to protect data and functionality from faults and malicious behaviour . This approach is diametrically opposite to that of capability-based security.Computer operating systems provide different...
instead of ring 0, as with the stand-alone version of DPMS.EXE. The DPMS [/]NOCR3 option allows debugging under Nu-Mega
Nu-Mega Technologies
NuMega Technologies was a software company founded in 1987 by Frank Grossman and Jim Moskun in Nashua, New Hampshire, USA.The company developed Kernel mode debugger, now SoftICE, for DOS and the Windows NT family....
's SoftICE
SoftICE
SoftICE is a kernel mode debugger for Microsoft Windows. Crucially, it is designed to run underneath Windows such that the operating system is unaware of its presence. Unlike an application debugger, SoftICE is capable of suspending all operations in Windows when instructed...
.
Depending on circumstances the server will occupy between about 700 to 1400 bytes of conventional memory by itself and cannot be loaded into UMBs.
The DPMS server will require at least a 286
Intel 80286
The Intel 80286 , introduced on 1 February 1982, was a 16-bit x86 microprocessor with 134,000 transistors. Like its contemporary simpler cousin, the 80186, it could correctly execute most software written for the earlier Intel 8086 and 8088...
machine to run, but since DPMS-enabled software can be designed in a way so that it continues to execute in conventional memory if DPMS services are not available, the software does not need to give up compatibility with systems not providing DPMS services, either because DPMS is not loaded or not available (for example on pre-286 processors). On 386
Intel 80386
The Intel 80386, also known as the i386, or just 386, was a 32-bit microprocessor introduced by Intel in 1985. The first versions had 275,000 transistors and were used as the central processing unit of many workstations and high-end personal computers of the time...
CPUs (and higher), the DPMS server will not only provide a set of 16-bit, but also a set of 32-bit services. Even on these machines, DPMS can be forced to load only its 16-bit services using the DPMS [/]2[86] option.
DPMS will allocate memory either through VCPI or XMS, depending on what kind of memory is available. VCPI will typically call down to XMS as well. Newer versions of DPMS can be forced to utilize one of these interfaces using the DPMS [/]MEM=XMS|VCPI option. In some versions, it is possible to specify the maximum amount of extended memory to be allocated with DPMS [/]MB=nnnn.
DPMS registering services can be diabled or re-enabled at any time after load using the DPMS [/]OFF or DPMS [/]ON command, however, this will only affect new drivers loaded, not those already running and using DPMS.
There are basically three revisions of the DPMS specificaton, DPMS beta, DPMS 1.0 (original Novell DOS 7 shipment) and DPMS 1.1 (since March 1994 update). The 1.0 specification continued to support the beta specification as well, whereas the 1.1 (and higher) implementation does not.
DPMS saw its debut in beta versions of DR DOS "Panther" in October 1992, which, besides others, came with DPMS-enabled versions of the Super PC-Kwik disk cache, the SuperStor disk compression, and DEBUG as "stealth" protected mode system debugger. The PCMCIA card services CS in PalmDOS were DPMS-enabled as well. Later retail products such as Novell DOS 7 and Personal NetWare 1.0 in December 1993 also came with many DPMS-enabled drivers such as the file deletion tracking component DELWATCH 2.00, the adaptive disk cache NWCACHE 1.00, NWCDEX 1.00, a CD-ROM redirector
Network redirector
A network redirector, or redirector, is an operating system driver that sends data to and receives data from a remote device. A network redirector provides mechanisms to locate, open, read, write, and delete files and submit print jobs....
extension, the peer-to-peer networking server SERVER 1.20, and STACKER 3.12, the disk compression component. DPMS was also provided by Caldera
Caldera (company)
Caldera was a US-based software company founded in 1994 to develop Linux- and DOS-based operating system products.- Caldera :Caldera, Inc...
OpenDOS 7.01, DR-DOS
DR-DOS
DR-DOS is an MS-DOS-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86...
7.02 and 7.03, which, at least in some releases, added DPMS-enabled issues of DRFAT32 (a FAT32 redirector extension), LONGNAME (VFAT long filename
Long filename
Long filenames , are Microsoft's way of implementing filenames longer than the 8.3 filename, or short-filename, naming scheme used in Microsoft DOS in their modern FAT and NTFS filesystems. Because these filenames can be longer than an 8.3 filename, they can be more descriptive...
support) and VDISK (virtual RAM disk
RAM disk
A RAM disk or RAM drive is a block of RAM that a computer's software is treating as if the memory were a disk drive...
). DR-DOS 7.03 contains the latest version of DPMS 1.44.
DPMS was also provided by IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
's PC DOS 7.0 and PC DOS 2000, which came with an older version of Novell's DPMS server and a DPMS-enabled version of Stacker 4.02 bundled.
Stac Electronics
Stac Electronics
Stac Electronics, originally incorporated as State of the Art Consulting and later shortened to Stac, Inc, was a technology company founded in 1983...
also produced a DPMS-enabled stand-alone version of Stacker 4.
Some third-party DOS driver suites such as the Eicon
Eicon
Eicon Networks Corporation was a privately owned designer, developer and manufacturer of communication products founded in 1984 with headquarters in Montreal, Canada...
Diva CAPI
Common ISDN Application Programming Interface
The Common ISDN Application Programming Interface is an ISDN-conform standardized software interface. With the help of the CAPI-Interface computer software intended for the use with ISDN can be provided, without knowledge of the deployed, proprietary ISDN card.CAPI was designed from 1989 by German...
ISDN drivers or PCMCIA driver stacks such as Award
Award Software
Award Software International Inc. was a BIOS manufacturer headquartered in Mountain View, California, United States.In June 1997 Award announced that it acquired a BIOS upgrade provider called Unicore, making it a subsidiary of Award....
's CardWare 2.5 (or higher) are known to support DPMS as well. After Phoenix
Phoenix Technologies
Phoenix Technologies Ltd designs, develops and supports core system software for personal computers and other computing devices. Phoenix's products — commonly referred to as BIOS or firmware — support and enable the compatibility, connectivity, security and management of the various components and...
' aquisation of Award, their PCMCIA drivers 6.0 (and higher) have been sold off to UniCore
Unicore
Unicore is the name of a computer instruction set architecture designed by Microprocessor Research and Development Center of Peking University in the PRC. The computer built on this architecture is called the Unity-863....
.
CLOAKING
In 1993, Helix Software's memory manager Netroom 3 introduced a feature very similar to Novell's DPMS: CLOAKINGCloaking
Cloaking is a search engine optimization technique in which the content presented to the search engine spider is different from that presented to the user's browser. This is done by delivering content based on the IP addresses or the User-Agent HTTP header of the user requesting the page...
was used to relocate Helix' network drivers into extended memory. Together with Award, Helix developed cloaked BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....
es to reduce their conventional memory footprint and use them as mapped-in overlays in conjunction with their memory managers.
As part of their Multimedia Cloaking product, Helix provided cloaked versions of Microsoft's MOUSE, MSCDEX
MSCDEX
MSCDEX or Microsoft MS-DOS CD-ROM Extensions is a software program produced by Microsoft and included with MS-DOS 6.x and certain versions of Microsoft Windows. Earlier versions of MSCDEX were installable add-ons beginning with MSDOS 3.1...
, and SmartDrive
SmartDrive
SmartDrive was a disk caching program that shipped with MS-DOS versions 4.01 through 6.22 and Windows 3.x. It improved disk transfer rates by storing frequently accessed data in the main memory. Early versions of SmartDrive were loaded through a CONFIG.SYS device driver named SMARTDRV.SYS...
drivers.
There was also a product named Multimedia Stacker consisting of Stac's DPMS-enabled Stacker 4.01 with Helix' suite of cloaked DOS utilities.
The Logitech DOS mouse driver since 6.50 was enabled to take advantage of CLOAKING as well, thereby reducing the mouse driver's memory footprint visible to DOS applications from 27 KB to 1 KB.
CLOAKING was also licensed to Symantec
Symantec
Symantec Corporation is the largest maker of security software for computers. The company is headquartered in Mountain View, California, and is a Fortune 500 company and a member of the S&P 500 stock market index.-History:...
for their utility suite and to Corel
Corel
Corel Corporation from the abbreviation is a computer software company headquartered in Ottawa, Ontario, that specializes in graphics processing, similar to Adobe Systems...
for their CD Creator and Corel SCSI products.
In contrast to Novell's DPMS, Helix' CLOAKING can be loaded high, but it does not run on 286 machines and does not provide 16-bit services. Also, CLOAKING 2.01 has been found to be incompatible with the DR-DOS multitasker (EMM386 /MULTI[=ON] + TASKMGR).
If no DPMS server is present when CLOAKING.EXE loads, it will, by default, also provide a cloaked DPMS server at a mere 100 bytes increase of its DOS memory footprint. However, it can also coexist with a DPMS server loaded before CLOAKING. The loading of its built-in DPMS server can be suppressed using the CLOAKING /NODPMS parameter. Therefore, DPMS-enabled drivers will work with both, DPMS or CLOAKING, but not vice versa.
Novell's DPMS utility may not be used to temporarily disable DPMS with a DPMS [/]OFF command if those DPMS services are provided by CLOAKING instead of DPMS itself, because Helix' implementation will erroneously not only disallow new drivers to register with DPMS, but completely switch off DPMS services even for already loaded drivers, leading to a system crash.
NIOS
In 1996, Novell introduced a new 32-bit DOS/Windows NetWare client (Client32) based on ODI32/NIOS, replacing the former 16-bit client based on ODIOpen Data-Link Interface
The Open Data-Link Interface , developed by Apple and Novell, serves the same function as Microsoft and 3COM's Network Driver Interface Specification . Originally, ODI was written for NetWare and Macintosh environments. Like NDIS, ODI provides rules that establish a vendor-neutral interface between...
/VLM. The NIOS (NetWare Input/Output System) client used techniques very similar to DPMS or Cloaking to relocate and run the code of the loaded NLMs (NetWare Loadable Modules) in protected mode and extended memory in order to reduce the conventional memory footprint of the network stack downto about 2 to 5 KB. However, NIOS neither required nor used DPMS or Cloaking, and it did not provide a generic interface which could be utilized by non-NLM modules, however, it can coexist with both of them.
See also
- DOS Protected Mode InterfaceDOS Protected Mode InterfaceIn computing, the DOS Protected Mode Interface is a specification introduced in 1989 which allows a DOS program to run in protected mode, giving access to many features of the processor not available in real mode...
(DPMI) - Virtual Control Program InterfaceVirtual Control Program InterfaceIn computing, the Virtual Control Program Interface is a specification published in 1989 by Phar Lap Software that allows a DOS program to run in protected mode, granting access to many features of the processor not available in real mode...
(VCPI)