[comp.windows.ms] QEMM's page frame position confuses Windows

goun@ddif.dec.com (Roger H. Goun) (06/17/91)

Setup: 386 clone, AMI BIOS, 4 Mb, QEMM 5.12 with RALLOC and FUNC24 patches, DR
DOS 5.0, Windows 3.0

By terrible trial and much error, I learned something about QEMM and Windows
that I thought I'd share in the hope that it helps someone else.  I've
forwarded this info to Quarterdeck, with the suggestion that it might be
helpful to include it in a future technical note.

I ran the QEMM Analysis procedure to find more High RAM; it suggested
including F000-F5FF, F700-F7FF, and FD00-FDFF.  When I did this,
Windows startup in enhanced mode spewed garbage on the screen and hung.

I tried adding to my SYSTEM.INI the lines:

DualDisplay=True
EMMExclude=E000-FFFF

as one of Quarterdeck's technical notes suggested, but this didn't help. 
Eventually I noticed that QEMM had placed the page frame at E800-F7FF. 
It occurred to me that this location might be confusing Windows, so I
added FRAME=C800 to QEMM's startup line, and Lo! and behold, all was
well.  (I chose C800 to maximize contiguous High RAM on my system.)

The closest thing to a warning about the location of the page frame I
can find in the technical notes is:  "If the frame is at 9000, see if
you can move it somewhere between C000 and E000."  My apologies if I
missed a more explicit caution somewhere else.

Though I learned a lot about QEMM and about my system from this
experience, it took many frustrating hours.  I hope this information
saves some other poor user the trouble.

Regards,

--
Roger H. Goun, Digital Equipment Corporation, 110 Spit Brook Road, ZKO2-2/O23, 
Nashua, NH 03062 USA, +1 603 881 0022, goun@ddif.enet.dec.com or 
goun%ddif.enet@decwrl.dec.com, {uunet,sun,pyramid}!decwrl!ddif.enet!goun

smsmith@magnus.acs.ohio-state.edu (Stephen M Smith) (06/17/91)

goun@ddif.dec.com (Roger H. Goun) writes:
>
>I ran the QEMM Analysis procedure to find more High RAM; it suggested
>including F000-F5FF, F700-F7FF, and FD00-FDFF.  When I did this,
>Windows startup in enhanced mode spewed garbage on the screen and hung.

This is the area of your shadowed ROM BIOS.  QEMM examines this area
to detect whether any of it is unused, and if so then it grabs some
of it for its own use (or at least it tells you to include it so that
it CAN use it).

>I tried adding to my SYSTEM.INI the lines:
>
>DualDisplay=True
>EMMExclude=E000-FFFF

The better way to preserve this area might be to use the 'NRH' parameter
in your QEMM386 line in your config.sys file.   This will keep QEMM from
mucking up F000-FFFF.

Why did you exclude E000-EFFF?  I don't know much about the way Windows
handles high memory, but shouldn't you be controlling inclusions and
exclusions with QEMM? 
 
>Eventually I noticed that QEMM had placed the page frame at E800-F7FF. 
>It occurred to me that this location might be confusing Windows, so I
>added FRAME=C800 to QEMM's startup line, and Lo! and behold, all was
>well.  (I chose C800 to maximize contiguous High RAM on my system.)

It seems to me that your problem was a conflict between your page frame
and your shadowed BIOS.  Therefore it was a conflict between QEMM
and your system, not between Windows and QEMM.

I had to move my page frame too because my motherboard utility for 
setting cache on/off checks the E000-EFFF address and if the page 
frame is there it screams at me and won't work properly.  So I just 
moved it to C800 (which means it is now in the C800-D7FF area).
But I left E000-EFFF free and there aren't any conflicts now.
I wouldn't exclude E000-EFFF.  Why did you do that?  There shoudn't
be any conflict anymore since your upper high ram area would look
like this:

     C000-C7FF    VGA
     C800-D7FF    Page Frame
     D800-EFFF    Free High RAM
     F000-FFFF    Shadowed ROM BIOS

Or am I missing something here? 

>Though I learned a lot about QEMM and about my system from this
>experience, it took many frustrating hours.  I hope this information
>saves some other poor user the trouble.

Yeah... it took me a week and several phone calls to my comp. company
and to Micronics to figure out my page frame and ROM BIOS problems.

Stephen M. Smith  \  +  /
<smsmith@hpuxa.   \+++++/    " #*&<-[89s]*(k#$@-_=//a2$]'+=.(2_&*%>,,@
 ircc.ohio-state. \  +  /      {7%*@,..":27g)-=,#*:.#,/6&1*.4-,l@#9:-)  "
 edu>             \  +  / 
 BTW, WYSInaWYG   \  +  /                              --witty.saying.ARC

roger@oogasm.enet.dec.com (Roger H. Goun) (06/17/91)

In article <1991Jun17.141504.1032@magnus.acs.ohio-state.edu>, smsmith@magnus.acs.ohio-state.edu (Stephen M Smith) writes:
>goun@ddif.dec.com (Roger H. Goun) writes:
>>
>>I ran the QEMM Analysis procedure to find more High RAM; it suggested
>>including F000-F5FF, F700-F7FF, and FD00-FDFF.  When I did this,
>>Windows startup in enhanced mode spewed garbage on the screen and hung.
>
>This is the area of your shadowed ROM BIOS.  QEMM examines this area
>to detect whether any of it is unused, and if so then it grabs some
>of it for its own use (or at least it tells you to include it so that
>it CAN use it).
>

Yup.  It turns out I was only using a little bit of the F000-FFFF range for
ROM BIOS shadowing.

>>I tried adding to my SYSTEM.INI the lines:
>>
>>DualDisplay=True
>>EMMExclude=E000-FFFF
>
>The better way to preserve this area might be to use the 'NRH' parameter
>in your QEMM386 line in your config.sys file.   This will keep QEMM from
>mucking up F000-FFFF.
>
>Why did you exclude E000-EFFF?  I don't know much about the way Windows
>handles high memory, but shouldn't you be controlling inclusions and
>exclusions with QEMM? 

You've got it slightly backwards.  EMMExclude in SYSTEM.INI tells *Windows* not
to try to use that area, in this case because QEMM is using it.  Those
particular lines are described in a Quarterdeck technical note as solving
certain unspecified problems with QEMM and Windows, so I tried 'em.  This
turned out not to be the magic incantation I needed, and I've since removed
those lines from my SYSTEM.INI.  Remember, I was searching for High RAM; I
*want* QEMM to 'muck with' as much of F000-FFFF as it can get away with.

>>Eventually I noticed that QEMM had placed the page frame at E800-F7FF. 
>>It occurred to me that this location might be confusing Windows, so I
>>added FRAME=C800 to QEMM's startup line, and Lo! and behold, all was
>>well.  (I chose C800 to maximize contiguous High RAM on my system.)
>
>It seems to me that your problem was a conflict between your page frame
>and your shadowed BIOS.  Therefore it was a conflict between QEMM
>and your system, not between Windows and QEMM.

If this is the whole story then there remains something I'm not understanding.
Only Windows got upset by this placement of the page frame; everything else on
my system ran fine.  It's entirely possible that on some other system, this
placement of the page frame might not upset Windows.  On the other hand, I
chose to document it here in case someone else runs into the problem.

>I wouldn't exclude E000-EFFF.  Why did you do that?

Again, I did it just to see if it would solve my problem, because the
Quarterdeck technical note suggested that it might.  My problem turned out to
be the page frame position; I'm not excluding E000-EFFF now.

The story has a happy ending:  I found so much unused High RAM that I now have
over 64K contiguous memory free up there, even after adding Hyperdisk (which
was the original purpose of this exercise).  Anybody care to suggest some
device drivers or TSRs that I've just gotta try? :-)

Regards,
--
Roger H. Goun, Digital Equipment Corporation, 110 Spit Brook Road, ZKO2-2/O23, 
Nashua, NH 03062 USA, +1 603 881 0022, goun@ddif.enet.dec.com or 
goun%ddif.enet@decwrl.dec.com, {uunet,sun,pyramid}!decwrl!ddif.enet!goun