PMODE
From Wikipedia, the free encyclopedia
PMODE is a DOS extender used in several IBM PC compatible DOS applications in the mid and late 1990s. It was created by Thomas "Tran" Pytel, and the first version became publicly available in 1994. It was designed as a small replacement for DOS/4G, the most popular DOS extender of the time.
The source code of PMODE was available since the first public version, and the licencing allows free use in all applications other than commercial DOS extender products as long as the original author is credited.
Contents |
[edit] Features
Like other DOS extenders, PMODE was used to create DOS applications that run under the 32-bit protected mode rather than the 16-bit real mode that was native to DOS. In particular, this removed a lot of complications in memory addressing, making it possible to use the flat memory model and to easily overcome the 640-kibibyte memory limit inherent to DOS.
A major difference between PMODE and other popular extenders was its small footprint, increasing the size of the standalone executable by less than 10 kilobytes even before applying executable compression. PMODE was therefore useful in small programs where the compactness of the final distribution version was a concern. Other major concerns in the development were speed and stability.
Unlike most other popular DOS extenders, the original PMODE was always statically linked to the final executable file rather than using a separate driver (such as DOS4GW.EXE or CWSDPMI.EXE).
PMODE conforms to a subset of the DOS Protected Mode Interface specification version 0.9. It is also compatible with the earlier VCPI and XMS specifications. PMODE programs can therefore be run from Windows as well as under various DOS memory configurations. However, the limited DPMI implementation caused some compatibility problems, and there was no support for virtual memory either.
PMODE was entirely written in x86 assembly language.
[edit] Derived versions
PMODE/W is a version of PMODE for the Watcom C/C++ compilers. It was developed by Charles "Daredevil" Scheffold and Thomas Pytel. Its footprint in the final executable file is slightly larger than that of the original PMODE because of the added functionality, but it is still less than 12 kilobytes according to its own documentation.
PMODE/DJ is a DOS extender derived from PMODE 3.07 by Matthias Grimrath for use with the DJGPP compilers. PMODE/DJ can also be used with Free Pascal.
[edit] Applications using PMODE
PMODE was originally designed to be used with demoscene demos, and this was the area of application where it became extremely popular because of its performance and compactness. These features of PMODE also made it relevant for the developers of games and embedded systems.
PMODE/W is one of the four DOS extenders included in the Open Watcom compiler distribution. PMODE/W is also the default DOS extender used by TMT Pascal.
[edit] External links
- The original distribution package of PMODE 3.07 at filegate.net
- Charles Scheffold's PMODE/W page
- PMODE/W information in TMT Pascal documentation
- DJGPP FAQ part 4 briefly lists some pros and cons of PMODE/DJ compared to CWSDPMI.