delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2006/02/02/09:27:59

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-ID: <43E216B4.70509@mainstreetsoftworks.com>
Date: Thu, 02 Feb 2006 09:27:00 -0500
From: Brad House <brad AT mainstreetsoftworks DOT com>
User-Agent: Mail/News 1.5 (X11/20060201)
MIME-Version: 1.0
To: djgpp AT delorie DOT com
Subject: Re: TSR issues (with code)
References: <43E12016 DOT 2070308 AT mainstreetsoftworks DOT com> <7t88b3-d2q DOT ln1 AT news DOT infowest DOT com> <43E1863D DOT 8080308 AT mainstreetsoftworks DOT com> <fgt8b3-c4u DOT ln1 AT news DOT infowest DOT com>
In-Reply-To: <fgt8b3-c4u.ln1@news.infowest.com>
Reply-To: djgpp AT delorie DOT com

Wow, either you're not in the US, or you're up waaaay to late :)

> Yes, and yes.  DJGPP checks for a compatible installed DPMI host first
> (Win98SE) before starting up CWSDPMI etc.  (i.e., OpenWATCOM hosts won't
> work.)

Great, that's what I thought.

> I'm running DJGPP 2.03 with (DJGPP versions of) gcc 3.4.1, binutils 2.15
> (plus older versions overinstalled...)

ok, so maybe it's a 2.04 issue too, not sure... Though no major
differences in gcc or binutils...

> Are the versions you're running the most current?  I thought gcc was upto
> 4.0.2 or 4.0.3 perhaps?

Yeah, I wouldn't consider gcc 4 to be stable yet.  I'm just sticking
with the most current GCC 3.x branch which is 3.4 ...

> 
> 2.04 beta? Where is the beta? on www.delorie.com?  I've seen a couple people
> mention it and asked DJ, but he didn't point me in the correct direction.  I
> looked there but didn't see it...(Yes, I know I can be blind.)

I got it from here:
http://www.delorie.com/pub/djgpp/beta/v2/
Last update seems to be in 2003 though :/  I mainly went the 2.04 route
because of the DXE (shared object/loadable module) support.

> Getting the exe to you may be a problem.  How are you expecting the exe to
> get to you?
> 
> I don't have true email, at the moment and I am not planning on correcting
> that issue soon.  I prefer ftp/http.
> I can outbound email to open newservers, send outbound email to email
> servers which don't confirm my PC's server identity, i.e., spam-able, (DJ
> email relay blocks), anonymous ftp, http-put(?), telnet(rz-sz), xx/uuencode
> and post...  I think Winzip/PKZIP, perhaps 7-zip, now handle xx/uuencode.

Hmm, well, that would pose a problem.  I would probably say if you ziped
and uuencoded it, and posted it to this newsgroup it might be ok ...
other than that, my email server  mail.monetra.com  won't do any
identity matching as long as the e-mail comes directly to a @monetra.com
e-mail address (for which I'm just 'brad').  We don't do any of that
'confirmation' stuff (but it does require SMTP auth if you try to send
out anywhere else ;)).

> 
> DOS/4G and CWSDPMI, PMODEDJ(pmodetsr) don't support them either.  In fact, I
> haven't found any DPMI host for any platform which supports the DPMI 1.0 TSR
> calls, that includes all the DPMI 1.0 hosts.

Yeah, I noticed I hadn't found a single DPMI 1.0 host (even DPMIONE
doesn't support the TSR stuff in DPMI 1.0).  I  thought that there was a
limitation in DOS/4GW that prevented you from using like what DJGPP does
to become a TSR, and the main selling point of DOS/4G (not W) was that
it did allow TSRs (though I didn't find any docs, so I'm not sure what
calls they wanted you to make ... if they don't do DPMI 1.0, I'd assume
it's still int 21/3100)...

> 
> Yes, DOS/4GW, PMODEW, and others come with OW.  Most of the OW crowd have
> switched to Devore's Causeway, Kumar's DOS/32A (not to be confused
> w/DOS32/A),  and Japheth's HXRT.  I continue to use DOS/4G and PMODEW...  I
> think PMODEW is faster than DOS/32A.  As for DOS/4G, except for one bug, it
> is very reliable.  Most of the more advanced calls can be implement with the
> simple subset in DOS/4G, but people don't seem to know/care/spend the time.

Actually HXRT looks very interesting, it says DJGPP apps can run under
it, and it appears that the last update was in 2006, so I guess it's
definitely maintained, I may give it a shot to see if it resolves my
problems (and try PMODETSR too).

> 
>> Are there any suggestions you can make if all else fails? My DOS 6.22
>> environment is pretty much a fresh install, I think the only thing
> 
> 1) beta DJGPP 2) memory 3) DPMI host 3) DOS issue 4) ????
> 
> My first thought is to back out beta DJGPP since it is new.  However,
> testing memory, changing the DPMI host, and switches DOS versions are
> probably much easier.

Well, the memory in the machine is good, I've got DOS on a removable
harddrive, but that machine runs SCO OpenServer, Linux, Windows, all
flawlessly, so I'd doubt it's memory related.  It is a PIII though,
maybe those OS's work around bugs in the CPU that DOS can't...

> 
> Reentrancy can be an issue.  DJGPP uses about 170 DOS, BIOS, DPMI calls.  OW
> 1.3 uses about 100.  I don't know about OpenWatcom 1.4.  I've been intending
> to download it, but I suspect not much has been done for DOS.

Yeah, that's why I've modified the code to check the InDos and CritErr
flags.  From what I've read one of those MUST be set if an interrupt
occurs while DOS is executing a call/interrupt, so it should fully
prevent reentrancy problems (because my callbacks won't be executed
if either one of those flags is set).

> I've written a couple of DJGPP TSR's.  They all work well, except int 0x21.
> When it comes to int 0x21, everything works except one interrupt call.  They
> lockup on DOS exec, int 0x31, ah=4b00.  I don't know how to workaround that
> issue.  Hopefully, it is something I forgot or implemented incorrectly with
> reentrancy or locking...  perhaps PSP, perhaps not saving/restoring the
> SDA... I don't know.  I found it easier to just write DOS TSR's in NASM, so
> I haven't returned to the issue.

Hmm, ok ... well, I hope I'm not running into anything like that :/

> 
> I boot into DOS clean, and use different batch files for OW, DJGPP, etc.  I
> use a less popular device driver loader, P. Frost's DDL, to get the drivers
> loaded after I'm at the command prompt.  The Freedos crowd uses something
> similar (asleep, don't recall).

Ok, well thanks for your input! I'll try some other DPMI environments
first, then I'll see about trying different DOS versions and possibly
different hardware, then finally back out DJGPP versions...
(That is unless you happen to see something blazingly obvious that is
wrong in my code :/)

Thanks again!
-Brad

- Raw text -


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