Hi, as suggested, I did some extra DOS extender testing. First a
few replies to the EMM386 2.01 thread: Fox, why is the name of
your Pascal Kitten "cubs"? Michael: Borland Museum has Turbo Pascal 5.5,
Turbo C 2.01, Turbo C++ 1.02 and the FRENCH version has Borland Pascal 7
(French). Or had. As far as I remember, BP7 used RTM/DPMI16BI ("Ergo")
DOS extender. Just as Jazz Jackrabbit and AuGoS do. For AuGoS, make sure
to have TEMP and TMP point to a writeable directory (otherwise, AuGoS
hangs at start-up). Weird RSX problem indeed... You should try to find
out which is the real limit (/max=??? one or amount of free RAM, and if
the latter, in which category - XMS, EMS, VCPI...), maybe, Fox.
> RAR32 also runs okay for me IF I limit free XMS to 429M. If I have more
> than 429M available, RAR32 say it's "out of memory".
Now for my test results: RTM DOS extender spontaneously reboots if you
have a specific XMS configuration and have no EMM386 or DPMI loaded.
The "specific" turned out to be far more complex than expected, and I
hope that somebody has some more ideas or test results about that.
- RTM always works if I have neither XMSDSK nor TDSK ramdisk loaded, no
matter how much XMS is free. The "limit to 0xffc0" trick in our XMS 2
interface avoids other problems (RTM would crash if it could alloc a
full 65535k of XMS in one alloc).
- If I do load ramdisks, the only way to make it work so far has been to
use "devload tdsk.exe 32767" several times until you get an error that
memory got exhausted (do NOT try one more time: The 0 kB TDSK drive of
the next drive letter would crash DOS when you access it and/or fails
to resize to non-0 size later for some reason).
NOTE that TDSK cannot be more than 65534 sectors, so the help screen
which tells that 65534 kilobytes would be possible is WRONG. You get
a crash (hang) if you try anyway.
As the NEXT step, I use "tdsk f: 5120" (where f: is the drive letter
of the FIRST TDSK ramdisk) to smallify that allocation. For some odd
reason, RTM works even if ramdisks are present ONLY if you have a
memory hole early in the chain??? If I only load one 5 MB TDSK at all
(without filling most of the rest of XMS with other TDSKs) - crash.
Really weird. Maybe you can find some other ways to make RTM work with
ramdisks. I always thought this would be a bug with FreeDOS, but maybe
it is a bug with RTM itself? Note that RTM does not seem to actually
access the disks (??). Using the XMS for other purposes, like caches,
does not trigger crashes. If there are ramdisks in a crash-prone way,
it does not make a difference whether TEMP and TMP point to it or not...
Next stuff: Running Descent with default DOS4GW 1.97 DOS extender fails
with GPF at cs:24d7 if you have no EMM386 loaded. It does not really
matter how much XMS you have. Actually, the problem seems to be again
the weird "fill all, then make some free in early drive letter" ramdisk
related one?? As you only get a GPF instead of a crash, this one is
easier to test :-). Whatever - the fill-and-free method works around
the DOS4GW "crash" (return to DOS prompt with GPF).
Finally: Why the ... do RTM based apps fail to load if DPMIONE is on?
I tracked down the "return to prompt, no error message, errorlevel 66"
to "int 2f has no effect" in a call to int 2f.fb42.1002.dx=14, really
strange. The handler is there in RAM, and if you use DEBUG "t" to
trace to the int 2f, things DO suddenly work. You also get unexpected
breakpoints / single-step interrupts caused by something with the
string HPDA in it and several int f3 calls in it. That HPDA something
belongs to DPMIONE and hooks one or more interrupts, I think.
The best way to test this is to load RTM from the DOS prompt with the
small (google for it, 8k or something) RTMRES tool. If things work,
you enter a new FreeCOM instance and RTM is resident until you exit
the FreeCOM. If it does not work, it returns to the prompt without
a message and, guess what, errorlevel 66.
Did not test the "why can Lemmings 3d hang at exit unless DPMIONE is
loaded" thing yet, and did not figure out why Raptor DOS16M (DOS4GW)
gives error 40, not enough memory / XMIN, sometimes, but can be "fixed"
by doing "rap /?" instead of "rap". Only noticed that Descent DOS4GW
shows the same DOS16M error if there is REALLY not enough memory free.
Never saw it show the error erroneously yet - only Raptor does that
from time to time. Maybe XMS fragmentation related (does not happen if
EMM386 is loaded)... DOS extenders are weird!
Conclusion so far: Descent needs dos32a or emm386, otherwise it cannot
cope with ramdisks being present, unless the ramdisks use a very
specific XMS allocation pattern. Jazz Jackrabbit and AuGoS need emm386
as well, otherwise they have the same weird ramdisk problem. Lemmings
3d needs DPMIONE to avoid hang on exit (I think this also depends on
your emm386/himem config, did not find the time to test yet), but on
the other hand, RTM fails to load if DPMIONE is present, unless you
"cheat" the load process in a way which should not make a difference?
Involved players: dos32a, dos4gw, tdsk 2.3, xmsdsk, rtm / dpmi16bi,
dpmione, maybe others. Too many, actually - testing is no fun here :-|.
Eric
PS: HIMEM should show (in verbose mode) how much XMS you get, and
if the /max=... argument is too high (more than RAM found to be useable
for XMS), the actual amount instead of the /max= argument should be
displayed. MEM should not include the HMA in the "used XMS" statistics
(of the "mem" without command line args output) and should show the XMS
size instead of the BIOS RAM size as the "total XMS" size. Or am I mis-
understanding MEM 1.7 (mem17bet) here and it is HIMEM which fails to
limit some value to the /max=... selected one?). MEM should also show
the /X XMS info in both bytes and kbytes (or mbytes, if values are big),
as should the /E EMS info. Only the always-displayed summary info already
converts to kbytes / mbytes.
-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel