www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/06/07/20:33:38

Xref: news-dnh.mv.net comp.os.msdos.djgpp:223
Path: news-dnh.mv.net!mv!news.sprintlink.net!howland.reston.ans.net!swrinde!news.uh.edu!uuneo.neosoft.com!news!sandmann
From: Charles Sandmann <sandmann AT praline DOT no DOT NeoSoft DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: GO32 leaving, here comes ???
Date: Wed, 07 Jun 1995 15:52:12 CDT
Organization: NeoSoft Internet Services +1 713 968 5800
Lines: 44
References: <D9tDAE DOT F4 AT jade DOT mv DOT net>
Reply-To: sandmann AT praline DOT no DOT NeoSoft DOT com
Nntp-Posting-Host: praline.no.neosoft.com
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Dj-Gateway: from newsgroup comp.os.msdos.djgpp

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


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019