68 lines
3.7 KiB
Plaintext
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...
|
|
|