[comp.sys.ibm.pc] NEAT chips fiddling

schow@bcarh61.bnr.ca (Stanley T.H. Chow) (11/13/89)

In article <371@ucsvc.ucs.unimelb.edu.au> U5533129@ucsvc.ucs.unimelb.edu.au (CARDIOLOGY, R.M.H.) writes:
>There was a rumour some months back that a program could be written which
>fiddled the NEAT chip set registers to enable the block of RAM between 640k
>and 704k (for those without EGA).  Does anyone know if this has been done, or
>alternatively how it could be done?
>
>Peter S.

Yes, it is possible to fiddle the NEAT chip set to make it hand the
memory back. DOS would still have to be told to use it. If you can't find
the program (or if no one has written it), I can whip it up real quick.
This is useful only if you have on a 286 or a 386 *not* running QEMM.


Now a question of my own: 

      Is QEMM truly brain-damaged or have I just not found the right
      magic spell?

      Specifically, I am trying to recover the "hidden" 384K of RAM (you
      know, the stuff above 640K that NEAT dedicates to ROM shadowing).

One my system: NEAT chipset with AMI bios, the ROM bios turns off all 
the hidden 384K (except for shadowing), so QEMM thinks there is no 
memory there. Oh, that's easy, I said. So I play around with the NEAT
registers and turned the memory back on. Now QEMM recognizes the memory.
*However*, QEMM now also marks the LOGICAL address range as "Unavailable"!
It seems I can have either the physical memory or the logical address 
space. I want *both*.

A friend (hi Mark) tells me this has been discussed before in the group
and the conclusion was that QEMM is not up to the job. Please tell me this
ain't so. [I did not follow the earlier discussion since I only got my 
386 a couple of months ago :-)].

Stanley Chow        BitNet:  schow@BNR.CA
BNR		    UUCP:    ..!psuvax1!BNR.CA.bitnet!schow
(613) 763-2831		     ..!utgpu!bnr-vpa!bnr-rsc!schow%bcarh61
Me? Represent other people? Don't make them laugh so hard.

michaelk@copper.WR.TEK.COM (Michael D. Kersenbrock) (11/14/89)

>Yes, it is possible to fiddle the NEAT chip set to make it hand the
>memory back. DOS would still have to be told to use it. If you can't find
>the program (or if no one has written it), I can whip it up real quick.
>This is useful only if you have on a 286 or a 386 *not* running QEMM.

There's a program "EEMRAM" available archived as "eemram21.arc" that 
will use LIM 4.0 expanded memory to add memory past 640K.  It's not
a TSR, it just fills in memory past 640K, tells DOS about it, and exits.

My XT-clone has 704K (720,896 bytes), and works just fine.  Seems that
if the NEAT chip set were set up for expanded memory (and QEMM supplying
the LIM driver ???), that this program might work on other machines as
well (w/o EGA/VGA).

--
Mike Kersenbrock
Tektronix Microprocessor Development Products
michaelk@copper.WR.TEK.COM
Aloha, Oregon

burkett@csd4.csd.uwm.edu (Edward W Burkett) (11/14/89)

In article <700@wrgate.WR.TEK.COM> michaelk@copper.WR.TEK.COM (Michael D. Kersenbrock) writes:
>
>
>>Yes, it is possible to fiddle the NEAT chip set to make it hand the
>>memory back. DOS would still have to be told to use it. If you can't find
>>the program (or if no one has written it), I can whip it up real quick.
>>This is useful only if you have on a 286 or a 386 *not* running QEMM.
>
>There's a program "EEMRAM" available archived as "eemram21.arc" that 
>will use LIM 4.0 expanded memory to add memory past 640K.  It's not
>a TSR, it just fills in memory past 640K, tells DOS about it, and exits.
>

The only problem most people have with expanded memory is that it must
be "True" LIM 4.0.  Most expanded memory cards are not hardware LIM 4.0
compatable but rather LIM 3.2 cards that have a LIM 4.0 driver.  I have one
of these cards, tried EEMRAM and the card is not capable of addressing the
correct BIOS address.  I have talked with many EMS card owners and this is a
common problem.  True hardware compatable LIM 4.0 cards tend to be much more
expensive than LIM 3.2 cards with a LIM 4.0 driver.

Just a note for those of you about to run out and by an inexpensive EMS card.

Ed Burkett
University of Wisconsin -- Milwaukee
Department of Biological Sciences

schow@bcarh61.bnr.ca (Stanley T.H. Chow) (11/15/89)

In article <700@wrgate.WR.TEK.COM> michaelk@copper.WR.TEK.COM (Michael D. Kersenbrock) writes:
>
>>Yes, it is possible to fiddle the NEAT chip set to make it hand the
>>memory back. DOS would still have to be told to use it. If you can't find
>>the program (or if no one has written it), I can whip it up real quick.
>>This is useful only if you have on a 286 or a 386 *not* running QEMM.
>
>There's a program "EEMRAM" available archived as "eemram21.arc" that 
>will use LIM 4.0 expanded memory to add memory past 640K.  It's not
>a TSR, it just fills in memory past 640K, tells DOS about it, and exits.
>
>My XT-clone has 704K (720,896 bytes), and works just fine.  Seems that
>if the NEAT chip set were set up for expanded memory (and QEMM supplying
>the LIM driver ???), that this program might work on other machines as
>well (w/o EGA/VGA).
>
>--
>Mike Kersenbrock
>Tektronix Microprocessor Development Products
>michaelk@copper.WR.TEK.COM
>Aloha, Oregon

The problem is not quite what you think it is.

On systems with NEAT & AMI bios (like my 386), the memory is *missing*.
There are 2 Meg worth of memory chips in my machine, the POST memory
test confirms there is 2048K. By the time DOS gets control, there is
only 640K of conventional memory and 1024K of extended memory. The
region between 640K and 1 Meg is gone.

Some of the missing 384K is used for ROM shadowing. The rest is just
plain "turned-off". It is not hiding in extended memory. The CPU really
cannot talk to that memory. This is a quirk of how AMI handles NEAT.
As a consequence, QEMM cannot use that memory.

What I said in the original article is that it is possible to set the
NEAT registers so that the missing memory shows up again. You can then
use it anyway you see fit. (I also complained that QEMM does the wrong
thing with it, so that it is *better* to leave it missing).

Also, the NEAT chip set knows nothing about expanded memory. QEMM (or
some other 386 memory manager) is using the 386 MMU to implement EMS.

BTW, all these things are true for *my* 386 system. I only expect
other 386 and 286 systems to be like that.

--
Stanley Chow        BitNet:  schow@BNR.CA
BNR		    UUCP:    ..!psuvax1!BNR.CA.bitnet!schow
(613) 763-2831		     ..!utgpu!bnr-vpa!bnr-rsc!schow%bcarh61
Me? Represent other people? Don't make them laugh so hard.