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...