Re: TSR issues (with code)
Thanks for replying (and testing)!
I've actually not yet tested any DPMI other than cwsdpmi (I was
assuming it was me, totally). On your tests, I assume the Win98
DosBox test used the Windows DPMI env, and the RM MS-DOS 7.10
used cwsdpmi? I only have MS-DOS 6.22 here, so I'll have to find
a Win98 disk somewhere and see if it's 6.22 giving the issue. I'll
also test PMODETSR to see if that resolves it as well.
One other thought. I'm using DJGPP 2.04 beta with gcc 3.4.4 and
binutils-2.16.1. What versions are you running? If you're running
something other than that, could you send me the testtsr.exe that you
generated so I can verify if maybe it's my development environment?
Oh, and, I really don't plan on using WatcomC, we were just doing some
testing to see if that would be a feasible option if all else fails,
but I think we'd like to stick with DJGPP and GCC if at all possible
(besides DOS/4GW doesn't support protected mode TSRs, so we'd have
to see if DOS/4G is still out there).
Thanks for the suggestion on enable() and disable(), I'll go ahead and
implement that since disable() returns whether or not the interrupts
were already disabled, and is probably a safer route to go (to not
reenable interrupts unless they were enabled upon entry).
Sorry about the messyness on the #ifdefs ... there were originally a
lot more embedded in there for a lot of testing I was doing, so it
was hard to see how they were nested without the indentation (which
I'm pretty sure is legal), but it does look out of place with
only the few that are still remaining.
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
I might have loaded extra (over the basis like HIMEM.SYS is a
packet driver for a Intel Pro 100 NIC, I'll try unloading all that
stuff just in case).
Thanks again!
-Brad
Rod Pemberton wrote:
Sorry,
It ran to completion after roughly 8 minutes in a both a Win98SE DOS-box and
in RM MS-DOS 7.10 (Win98SE). I had to hit return to get the prompt back.
Perhaps, something else is interrupting the process or running at the same
time?
I did notice that CWSDPMI created a swap file on my machine, so maybe the
6.22 DOS machine doesn't have enough memory?
You can also try running stubedit and changing the DPMI host to
PMODETSR.EXE. If the problem goes away, there is an issue with the way you
are using DPMI w/CWSDPMI. I can provide more help, if this is the issue.
Other than that, I have a few comments:
1) _go32_my_cs maps to _my_cs() in go32.h
2) It appears that you eventually want this to work for DJGPP and OW. In
which case, you should use 'disable' or '_disable' for 'cli' and 'enable' or
'_enable' for 'sti'. DJGPP maps to one assembly instruction, but OW uses
_two_ assembly instructions for one of them...
3) It was hard to tell what was C code and preprocessor code because you use
spaces between '#' and the rest of the preprocessor directive. I don't even
think that is legal, although it works.
Rod Pemberton
.
Relevant Pages
- Re: TSR issues (with code)
... > I've actually not yet tested any DPMI other than cwsdpmi (I was ... DJGPP checks for a compatible installed DPMI host first ... DOS/4G and CWSDPMI, ... My DOS 6.22 ... (comp.os.msdos.djgpp) - Re: Adding 64-bit file support to DJGPP
... I find it really interesting that with all the POSIX code you wrote, ... compiles with DJGPP, and OW1.3, small amount of NASM ... dumps the DJGPP DPMI host or the OW DPMI host/dos-extender and ... initializes keyboard and mouse routines (working on the ... (comp.os.msdos.djgpp) - Re: 32.bit com
... > system back to real mode. ... Windows DPMI server and QDPMI under pure DOS will switch the system ... 32RTM.EXE and CWSDPMI may be run from real ... (alt.lang.asm) - Re: Good news for SPARC
... Hands up everyone who a) supports a Windows application ... There are DOS-based programs such as Norton Ghost that are DJGPP ... only a DPMI server to run; DJGPP includes a free 32-bit DPMI ... (comp.unix.solaris) - Re: Good news for SPARC
... Hands up everyone who a) supports a Windows application ... There are DOS-based programs such as Norton Ghost that are DJGPP ... only a DPMI server to run; DJGPP includes a free 32-bit DPMI ... (comp.sys.sun.hardware) |
|