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
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.
DPMS
DPMS was originally developed by
The DPMS server must be loaded after the memory managers (and before the drivers using it), either as a "DPMSXXX0"
Depending on circumstances the server will occupy between about 700 to 1400 bytes of conventional memory by itself and cannot be loaded into
The DPMS server will require at least aDPMS will allocate memory either through VCPI or
DPMS registering services can be disabled 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.[1][7]
There are basically three revisions of the DPMS specification, DPMS beta,[9][10] DPMS 1.0 (original Novell DOS 7 shipment)[1] and DPMS 1.1 (since March 1994 update).[11] The 1.0 specification continued to support the beta specification as well, whereas the 1.1 (and higher) implementation does not.[11]
DPMS saw its debut in beta versions of
DR-DOS 7.03 contains the latest version of DPMS 1.44.DPMS was also provided by
Stac Electronics also produced a DPMS-enabled stand-alone version of Stacker 4.[14]
PC-Kwik Corporation's Super PC-Kwik 6.xx for DOS[15] and their Power Pak 4.0 for Windows also included the DPMS-enabled disk cache SUPERPCK in 1994.[16]
Some third-party DOS driver suites such as the
In 1999, Funk Software introduced a DPMS-enabled version of their remote control software Proxy Host, allowing PHOST to occupy only 9 KB of conventional memory.[23] The Remote Dial-in Client software REMOTE for the 833 Remote Access Server by Perle Systems could take advantage of DPMS for the same purpose at least since 2002.[24] SciTech Software's Kendall Bennett investigated the possibility to add DPMS support to their DOS driver suite around 2000 as well, but this was never published.
Bret Johnson developed DPMS-enabled Print Screen to file (PRTSCR) and USB drivers for DOS.[25][26]
CLOAKING
In 1993,
A CLOAKING developer's kit was available which included a NuMega SoftICE debugger.[29][30] Cloaked driver or TSR software hooking interrupts had to leave a small 11-byte stub in conventional memory which would invoke the CLOAKING server to pass execution to the protected mode portion of the driver software.[27]CLOAKING includes support for operation under Windows 3.x and Windows 95, providing compatible INT 2Ch services to protected mode drivers via a Windows VxD, as well as debugging through Windows start-up using SoftICE. This ability to transition between protected mode host environments is also the subject of a patent.[31]
CLOAKING integrates into and works with existing virtual memory control programs, without switching descriptor tables or resetting the control registers. This allows for faster interrupt processing, according to Helix's documentation.[30][31]
In contrast to Novell's DPMS, Helix's CLOAKING driver can be loaded high,[7][nb 2] but it does not run on 286 machines,[7][nb 2] though it does support 16-bit services and program structure on a 386. Also, CLOAKING 2.01 has been found to be incompatible with the DR-DOS multitasker (EMM386 /MULTI[=ON] + TASKMGR).[7]
If no DPMS server is present when CLOAKING.EXE loads, CLOAKING will, by default, also provide a cloaked DPMS server at a mere 100 bytes increase of its DOS memory footprint.[14][7] 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.[7] DPMS-enabled drivers will work with both DPMS or CLOAKING, but not vice versa.[7]
In NETROOM v3.04, the Supplemental Disk distribution dated 10 February 1995 included the password-protected resource file NR.ZIP (679,271 KB) as an undocumented file; DPMSCLK.EXE (13,904 KB), "Cloaked DPMS Server v3.03". The file does not reveal support for any options or parameters when queried using the standard help option, DPMSCLK /? . This file is not unzipped by the NETROOM 3 SETUP.EXE program and does not install. There is no hint of the file's existence in the NETROOM 3 software manual[32] or any of the on-disk program documentation and human-readable files.[33] This final version of NETROOM as released basically ignored DPMS.
Helix licensed a version of
As part of their
There was also a product named
The Logitech DOS mouse driver since MouseWare 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.[7]
CLOAKING was also licensed to
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's 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.[7]
NIOS
In 1993, Novell had announced plans to convert their resident workstation management utilities as well as their DOS network driver stacks (shells, redirectors and requestors) to use DPMS,[10] however, only the Personal NetWare server component was modified to actually take advantage of it.
Announced in 1993,
NIOS neither required nor used DPMS or Cloaking directly, and it did not provide a generic interface which could be used by non-NLM modules, however, it was certainly inspired by the DPMS technology and it can coexist with both of them.
While Novell's Personal NetWare was published unmodified as part of the DR-DOS suite by its newer owners Caldera, Lineo and DeviceLogics up to 2018, Personal NetWare had been abandoned since 1995 within Novell itself. This led to the situation that Novell never published a PNW.NLM driver to support the Personal NetWare protocol under the newer 32-bit ODI32/NIOS stack, so that users of Personal NetWare, who could take advantage of the PNW server module's DPMS capabilities already, were bound to continue to use the memory-consuming ODI/VLM 16-bit client with its PNW.VLM protocol driver.[7]
See also
- DOS Protected Mode Interface (DPMI)
- Virtual Control Program Interface (VCPI)
- Extended Virtual Control Program Interface(XVCPI)
Notes
- ^ DR DOS "Panther"shows a "1985,1992" copyright and refers to an embedded DPMS.SYS device driver.
- ^ loaded high, but this was deliberately defeated in later versions (by artificially letting the driver declare an impossible to satisfy amount of memory during initialization, so that the operating system could not load it high and had to leave it in conventional memory during initialization) for compatibility reasons. It could cause stability problems in some scenarios on 286 and 386 machines supporting chipset-level memory backfillingmechanisms.
References
- ^ Caldera, Inc. August 1997 [1994]. Caldera Part No. 200-DODG-005. Archived from the originalon 2016-05-22. Retrieved 2016-05-21.
- ^ Brown, Ralf D.; Schulman, Andrew (July 1994). "QPI: The QEMM-386 Programming Interface". Dr. Dobb's Journal. Undocumented Corner. San Mateo, California, USA: Miller Freeman, Inc.: 123–131. Archivedfrom the original on 2017-08-23. Retrieved 2017-08-23.
- ^ IDG Business Media GmbH. Archivedfrom the original on 2022-01-02. Retrieved 2022-01-02.
- Network World: 10. Archivedfrom the original on 2018-09-16. Retrieved 2017-09-09.
- InfoWorld Media Group, Inc.: 63. Archivedfrom the original on 2018-09-16. Retrieved 2017-09-09.
- ^ DR DOS 6.0[…] Designed and implemented DPMS protected mode extender for device drivers for DR DOS 7. […]
- ^ OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)
- ^ a b c d e f g h i j k l m n Paul, Matthias R. (2001-04-09). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. Release 183 (in German) (3 ed.).
{{cite book}}
:|work=
ignored (help) - ^ PC Magazine: 124. Archivedfrom the original on 2018-09-16. Retrieved 2018-09-16.
- ^
- ^ Brown, Ralf D. (2002-12-29). "The x86 Interrupt List". Ralf Brown's Interrupt List (61 ed.). Archivedfrom the original on 2016-05-22. Retrieved 2012-01-14.
- ^ from the original on 2019-04-22. Retrieved 2017-09-09.
- ^ IBM Corporation, International Technical Support Organization, Boca Raton Center. February 1995. pp. 313–324. Document Number GG24-4459-00. Archived(PDF) from the original on 2018-09-18. Retrieved 2018-09-17.
- ^ Stacker 4.0, Stac provided DOS Protected Mode Services (DPMS) support, which allows most of the Stacker driver to move into extended memory. […]
- ^ "Dùng Cache để nâng cao tốc độ" [Cache to improve speed]. VIETBOOK (in Vietnamese). 1994. Archived from the original on 2018-09-17. Retrieved 2018-09-16.
- ^ Conley, Frank (1994-07-25). "Windows Performance Utility - Power Pak 4.0 for Windows helps bring slower PC models up to speed". InfoWorld: 117. Archived from the original on 2018-09-17. Retrieved 2018-09-16.
- ^ "Saphir ISDN-Adapterfamilie Bedienungsanleitung" (PDF) (in German) (5 ed.). HST High Soft Tech Gesellschaft für Telekommunikation mbH. February 2003. D2.1R01. Archived (PDF) from the original on 2018-09-20. Retrieved 2018-09-20.
- ^ Paul, Matthias R. (2002-01-17). "PCMCIA drivers for DR-DOS". www.delorie.com/opendos. Archived from the original on 2018-09-20. Retrieved 2018-09-20.
- ^ APSoft CardWare for Windows 3.x R7.00 (PDF). 7.00. Feldkirchen, Germany: APSoft. 2004-03-04 [1993]. Archived (PDF) from the original on 2018-09-18. Retrieved 2018-09-17.
- LXE Inc. (EMS Technologies). January 2004 [January 2002]. Archived(PDF) from the original on 2019-03-29. Retrieved 2018-09-16.
- LXE Inc. (EMS Technologies). March 2004. Archived(PDF) from the original on 2019-03-29. Retrieved 2018-09-16.
- LXE Inc. (EMS Technologies). December 2005. Archived(PDF) from the original on 2018-09-17. Retrieved 2018-09-16.
- Funk Software, Inc. May 1999. Retrieved 2018-09-16.[permanent dead link]
- Perle Systems Limited. 2002 [1995]. 5500118-10. Archived(PDF) from the original on 2018-09-17. Retrieved 2018-09-17.
- ^ Johnson, Bret (2011-09-24). "My Source Code: PRTSCR". Archived from the original on 2017-09-11. Retrieved 2017-09-11. [3] (NB. Source code for PRTSCR program to modify PrintScreen to copy to a file. Loads itself into upper memory and uses DPMS or EMS memory.)
- ^ Johnson, Bret (2015-11-03). "Have you heard from USB yet?". Archived from the original on 2018-09-16. Retrieved 2017-09-11. (NB. About a DPMS-enabled USB TSR suite for DOS.)
- ^ ISBN 0-12-627230-1.
- ^ PC Magazine. 12 (13): 40. Retrieved 2014-12-12.
- Ziff-Davis Publishing Company. p. 269. Retrieved 2014-12-04.
- ^ a b Helix Cloaking API Services, 1.01, Helix Software Company, 1993-10-01
- ^ a b US patent 5459869 [4]
- ^ NETROOM Version 3 Guide to Operations (6 ed.), October 1994, MPN N03,1094
- ^ NETROOM Version 3 Supplemental Disk, all (11) *.BAT/*.DOC/*.HLP/*.INF/*.TXT files, 1995-02-10
- Ziff-Davis Publishing Company. p. 48. Archivedfrom the original on 2022-01-05. Retrieved 2014-12-04.
- Network World. 10 (13): 17. 1993-03-29. Archivedfrom the original on 2019-04-22. Retrieved 2018-09-20.
- ^ Tittel, Ed (1994-11-04). "Novell at a crossroads". InfoWorld: 116, 118. Archived from the original on 2018-09-16. Retrieved 2018-09-16.
- ^ Network World. 12 (13): 141. 1995-03-27. Retrieved 2018-08-18.
- PC Magazine: NE27. 1995-10-24. Archivedfrom the original on 2018-09-16. Retrieved 2018-08-18.
- ^ a b Liebing, Edward A. (1996-05-01). "NetWare Client 32 for DOS/Windows: Overview of Architecture and Features". Novell AppNotes. Novell. Archived from the original on 2018-08-18. Retrieved 2018-08-18.
- ^ Hendrick, Ben (1996-11-01). "Overview of NetWare Client 32 for Windows 95". Novell AppNotes. Novell. Archived from the original on 2018-08-18. Retrieved 2018-08-18.
Further reading
- "DPMS causes error in CP Backup 7.2 for Win" (Revision 2 ed.). Novell. 1995-07-01 [1994-09-14]. 1000039. Archived from the original on 2018-09-16. Retrieved 2018-09-16.
External links
- "Online issue of Caldera DR-DOS 7.03 DPMS 1.0 SDK". Unofficial DR-DOS site. 1999 [1994, 1997]. Archived from the original on 2016-05-22. Retrieved 2016-05-22.
- "Appendix E. DOS Protected Mode Services". PC DOS 7 Technical Update (PDF) (1 ed.). Boca Raton, FL, USA: IBM Corporation, International Technical Support Organization, Boca Raton Center. February 1995. pp. 313–324. Document Number GG24-4459-00. Archived(PDF) from the original on 2018-09-18. Retrieved 2018-09-17.