CWSDPMI is a 32-bit
DPMI host written by Charles W. Sandmann from 1996 to 2010, currently at r7. It is loosely based upon prior
GO32.EXE code used in
DJGPP
DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a porting, port of t ...
v1. It can provide DPMI 0.90+ 32-bit services for programs compiled with latest versions of DJGPP etc. compilers. Since r5, it can also be used for programs requiring a DPMI stub in lieu of PMODE/DJ. It supports up to 4 GB,
virtual memory
In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very ...
, and
hardware interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted, ...
reflection from
real mode
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit s ...
to
protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as virtual memory, paging and safe multi-taskin ...
. Programs compiled with DJGPP v2 require a DPMI host, which is usually CWSDPMI.EXE or CWSDPR0.EXE. In case of CWSDPMI.EXE, the default
paging
In computer operating systems, memory paging is a memory management scheme by which a computer stores and retrieves data from secondary storage for use in main memory. In this scheme, the operating system retrieves data from secondary storag ...
/virtual memory file is C:\CWSDPMI.SWP. It is capable of running on a 386 in under 512 KB of RAM.
CWSDPMI is functionally similar to other 32-bit DPMI hosts such as HDPMI32, which is part of
HX DOS Extender.
CWSDPMI r7 is
free and open-source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
.
CWSDPMI editions
CWSDSTUB.EXE is a stub loader image for DJGPP which includes CWSDPMI.
CWSDPR0.EXE is an alternative version, implemented at request of
id Software
id Software LLC () is an American video game developer based in Richardson, Texas. It was founded on February 1, 1991, by four members of the computer company Softdisk: game programmer, programmers John Carmack and John Romero, game designer T ...
when writing ''
Quake'', which runs at ring 0 with virtual memory disabled. It may be used if access to
''ring 0'' features are desired. It currently does not switch stacks on hardware interrupts, so some
DJGPP
DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a porting, port of t ...
features such as
SIGINT
Signals intelligence (SIGINT) is intelligence-gathering by interception of '' signals'', whether communications between people (communications intelligence—abbreviated to COMINT) or from electronic signals not directly used in communication ...
and
SIGFPE
Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling. They are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-comp ...
are not supported and will generate a
double fault
On the x86 architecture, a double fault exception occurs if the processor encounters a problem while trying to service a pending interrupt or exception. An example situation when a double fault would occur is when an interrupt is triggered but ...
or stack fault error.
Developer Charles W. Sandmann also hoped to eventually supply code for CWSDPMI r7 that allows CWSDPMI to map up to 64 GB memory into the address space upon request.
> 3 GB of RAM (hypothetical), CWSDPMI
/ref>
See also
*DOS extender
A DOS extender is a computer software program running under DOS that enables software to run in a protected mode environment even though the host operating system is only capable of operating in real mode.
DOS extenders were initially developed ...
References
External links
Official CWSDPMI website
DOS extenders
DOS software
1996 software
{{Comp-eng-stub