delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2006/02/02/12:41:09

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-ID: <43E243F8.7060401@mainstreetsoftworks.com>
Date: Thu, 02 Feb 2006 12:40:08 -0500
From: Brad House <brad AT mainstreetsoftworks DOT com>
User-Agent: Mail/News 1.5 (X11/20060131)
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> <43E216B4 DOT 70509 AT mainstreetsoftworks DOT com>
In-Reply-To: <43E216B4.70509@mainstreetsoftworks.com>
Reply-To: djgpp AT delorie DOT com

Here are some updates on the status...

1) Unloading most drivers I don't absolutely require, I
    got CWSDPMI and the test program to run to completion
    once if you just let it sit.  If you try to run commands
    like 'dir' or 'choice' consecutively, it will eventually
    lock the entire machine
2) With PMODETSR the program seems to terminate totally instead
    of becoming a TSR.  DOS is still fully functional, just my
    program seems to go away.
3) HDPMI32 from HXRT seems to run until completion if I don't
    touch anything, but doing continuous 'dir' commands will
    make it lock ... pretty much the same symptoms as #1

I'm not too sure what to try other than a different DOS version
or different hardware. Since I did get CWSDPMI to complete,
I think that may be what you saw, and would infact have issues
if you tried to put any sort of load on the system when you
tested my app :/  I'm still almost convinced I'm reading the
inDos or CritErr flags wrong, or am totally misunderstanding
how they are to be used (e.g. limitations of such).

A DPMI 1.0 host would be nice :)

Any suggestions would be very welcome!

Thanks!
-Brad


Brad House wrote:
> 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