Mail Archives: djgpp/1995/06/07/20:33:38
> I've been following the talk about go32 going away in DJGPP v2+ and I'm not
> entirely clear on what the new convention will be. I know it has something to
> do with DPMI, but the details are vague to me.
OK. GO32 does the following in V1.x
1) Protected mode memory/paging/mode switches
2) Command line expansion
3) A built in "extender"
4) Loads 387 emulator if needed
5) Graphics driver loading and page fault to bank swap emulation
6) Writing to the mono monitor if present and requested
7) Handling HW interrupts which happen in protected mode
8) Loading debuggers
9) Loading the image
10) And lots of other stuff
The Protected Mode (PM) memory/paging/mode switching code is only used
if you are not running under DPMI. DPMI provides those functions for you
so GO32 does not need to provide them.
In V2, virtually all of the functions above are handled in 32 bit GCC
or GAS code intead of Go32 code built with TCC. There is a micro-stub
which is appended to the start of each image which loads the image into
PM memory using DPMI services. If DPMI is not available, a free DPMI
server called CWSDPMI is loaded so the image can run.
So, there is no need for "custom" go32.exe versions in V2, since all
of the custom code would be built into the image itself. A single .EXE
file should run under any DPMI system (no need to have GO32 in the path).
If DPMI is not available, puting CWSDPMI in the same directory as the
image or in your path will load it (or it can be used as a TSR).
CWSDPMI is based on GO32, but is reentrant so only one copy is needed
in memory for multiple nested DJGPP apps, and has all of the non-essential
goodies removed so it has a smaller memory footprint (50K instead of 130K).
CWSDPMI is not DJGPP specific - it can be used with other software.
If you are using Windows (or some other DPMI) CWSDPMI is not needed at all.
The only 16 bit code (if you have DPMI) is in the micro-stub (about 2Kb)
and is assembled by djasm, a free assembler DJ provides with V2. So V2
should be completely buildable with FSF tools.
At some future date, I will finish the re-write of CWSDPMI into djasm
and GCC code, so the entire package will be builable with FSF tools.
- Raw text -