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 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> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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