Files
2024-02-19 00:25:23 -05:00

68 lines
3.7 KiB
Plaintext

Greetings, Tran (a.k.a. Thomas Pytel) typing here. This bunch of files
comprises two versions of my protected mode DOS extender PMODE. They are both
publicly available and are not confidential or proprietary. I, Thomas Pytel,
reserve all rights to the source code. However, feel free to use or distribute
them in any manner you wish. All I ask, if you use this code in some
production, is credits.
This package is meant mainly as an update for coders already using PMODE,
But you can use it to start from scratch. The code and documentation may not
be thoroughly clear, in this case if you need more examples get some of the
other PMODE releases (like PMC or any demo source codes I have released) for
more practical examples.
------------------------------------------------------------------------------
PMODE v2.5 and PMODE v3.03 are provided here in the form of source code,
along with various examples of their use. Why two versions? PMODE 2 is the
predecessor to PMODE 3, but it is also slightly different in intended
functionality. PMODE 2 is a dedicated ASM DOS extender, a protected mode
system for game/demo code and other standalone programs. PMODE 3 is a more
general purpose protected mode kernel, suitable for almost any protected mode
need (high level language extender).
PMODE 3 can do what PMODE 2 does, in fact, I converted PMODE 2.4 to a shell
which uses PMODE 3 as its kernel and it is included here. The drawback to this
is that PMODE 3 gobbles up more low memory. PMODE 2 has proven itself quite
stable through the time its been in use. It is a small, fast, stable, albeit
a tad bit limited extender. There is no sense in trashing it just because
something newer and cleaner (in source) has come along. Each version has its
appropriate uses, it is up to you to decide.
The major difference between PMODE 2 and PMODE 3 is that PMODE 2 is a more
complete system. It sets up 32bit execution and memory pools (low and high)
and handles other minor nuances of going from the DOS command line to
protected mode code and back. PMODE 3 is designed to be the low level end of
a more complete system (such as PMC, an extender for Borland C++ 4.0 I did
with it). Technically speaking, more can be done with PMODE 3. But I still
suggest using PMODE 2 for games and demos (if you don't mind all ASM coding).
It would be nice if someone out there used PMODE 3 in an extender for Watcom
C++. I am not pursuing PMC because BC4 is just plain crap (though it is usable
in some instances). Don't worry about using/supporting one version over the
other. Taking code between two different protected mode systems is trivial
compared to going from real mode to protected mode.
------------------------------------------------------------------------------
The source, documentation, and appropriate examples are included for both
versions of PMODE in their appropriate separate archives. The batch files
which build the examples assume you have TASM and TLINK in your path.
One word of caution, QEMMs DPMI host QDPMI has serious problems with memory
allocation, mode switching, and IRQs. Keep this in mind when testing stuff
under it. If something screws up (usually gives you a QDPMI exception), try it
with a different DPMI host.
TLINK also has problems with protected mode. Segment alignment has had its
share of problems over time, as has referencing real mode segment addresses
above the first 64k of a 32bit segment (fixup overflows).
This package is dated as of the beginning of September of 1994. Enjoy
protected mode. You can send me mail (but don't expect a response, it is not
possible due to account restrictions) at tran@phantom.com, so don't bother...
Oh well...
Tran...