[comp.sys.ibm.pc] 640KB + 3072KB = 4 MB?

ndeng@EULER.BERKELEY.EDU (Nan Deng) (09/17/89)

Recently I have seen a number of 386 motherboards all using PHEONIX BIOS.
(MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All
boards reported 640KB of base memory and 3072KB extended memory when boot up.

My question is: where is the additional 384KB?

michelbi@oregon.uoregon.edu (Michel Biedermann) (09/17/89)

In article <8909170749.AA26779@euler.Berkeley.EDU>, ndeng@EULER.BERKELEY.EDU (Nan Deng) writes:
> Recently I have seen a number of 386 motherboards all using PHEONIX BIOS.
> (MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All
> boards reported 640KB of base memory and 3072KB extended memory when boot up.
> 
> My question is: where is the additional 384KB?

The mistery of the disappearing 384K is one of DOS's problems.  Extended memory
only starts at 1Mb.  The 384K between base memory (640K) and extended memory
(> 1Mb) is used by DOS as video system memory.  Certain computer manufacturers allow
part or all of this memory to be used as EMS (expanded memory), for BIOS
shadowing, or for printspooler or RAM disk.

I hope this helps!
 
Michel Biedermann	michelbi@oregon.uoregon.edu
U. of Oregon

cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (09/18/89)

In article <8909170749.AA26779@euler.Berkeley.EDU> ndeng@EULER.BERKELEY.EDU (Nan Deng) writes:
$Recently I have seen a number of 386 motherboards all using PHEONIX BIOS.
$(MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All
$boards reported 640KB of base memory and 3072KB extended memory when boot up.

$My question is: where is the additional 384KB?

   My guess is that it's between 640K and 1M.  Some programs (and the BIOS is
a program) will say this is extended memory, and some won't.  In general, I
believe, most won't.

   A sort-of related thought:  over the summer, I was using a lot of PS/2
machines, mostly model 30 286s.  In almost all cases, these machines were
reported by DOS to have 639K of memory (?!)  Such utilities as PCTools and
Norton's SI reported similar to the following:

DOS reports 639K conventional memory
I find 640K

   This occured on virtually all of the PS/2s (running DOS 3.30 or 4.01).
Any ideas why?

-- 
Stephen M. Dunn                              cs4g6ag@maccs.McMaster.CA
**********************************************************************
       <std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
"VM is like an orgasm:  the less you have to fake, the better." - S.C.

freak@cbnewsc.ATT.COM (c.e.malloy..iii) (09/18/89)

In article <8909170749.AA26779@euler.Berkeley.EDU>, ndeng@EULER.BERKELEY.EDU (Nan Deng) writes:
> 
> Recently I have seen a number of 386 motherboards all using PHEONIX BIOS.
> (MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All
> boards reported 640KB of base memory and 3072KB extended memory when boot up.
> 
> My question is: where is the additional 384KB?

On my AT&T 6386E WGS system the additional 384K is listed at startup
as dedicated memory.  However the new AT&T MS-DOS 4.01 operating
system recovered that memory.  Now at start-up the system shows 640K
base memory and 5504 extended memory (I have 6Mb).

Clancy Malloy
AT&T Bell Labs
att!ihlpf!cem

schow@bmers58.UUCP (Stanley Chow) (09/18/89)

In article <8909170749.AA26779@euler.Berkeley.EDU>, ndeng@EULER.BERKELEY.EDU (Nan Deng) writes:
> Recently I have seen a number of 386 motherboards all using PHEONIX BIOS.
> (MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All
> boards reported 640KB of base memory and 3072KB extended memory when boot up.
> 
> My question is: where is the additional 384KB?
>

The standard PC memory map has this 384KB reserved for BIOS ROM, I/O card
ROM/RAM, etc. What happens to it is complicated and depends on the chip
set, BIOS. I have AMI BIOS with the NEAT chip set so that is what I will
talk about.

The Chips & Technology NEAT chip set acts as a traffic cop for memory
references to that address range. It can map the references to the mother
board DRAM, mother board ROM, expansion I/O bus, etc. All this is  under
program control (by writing to registers on the chips).  The
intention is that on boot up, all references are to ROM, then BIOS copies
itself to DRAM, BIOS will then tell NEAT to map BIOS references
to DRAM. Simalar thing for EGA ROM. (This is known at ROM shadowing).

Note that Video RAM must be left alone and not mapped out, otherwise the
program will run real fast, but nothing will show on the screen! 

The NEAT chip set can map individual 16K blocks as well as write-protect
each block. AMI BIOS (at least mine) chooses to map the lower 640K to 
motherboard DRAM, and the upper 384K is mapped to a combination of:
  - Protected DRAM, for BIOS ROM shadowing
		    or Video ROM shadowing
  - I/O bus for Video RAM
	    or  other cards

Unfortunately, all the unused address range is protected. This means
eventhough the DRAM is sitting on the motherboard, no program will
find it. There is nothing to stop me from writing a program to fiddle
the registers so that NEAT will map the unused address range back to
unprotected DRAM. But looking at the address map, there is not that
much that can be recovered:
   64K  BIOS ROM Shadowing
   32K  Video ROM Shadowing (remember 16K block size)
   64K  EMS page frame
  128K  Video RAM (at least I think it is 128K)
--------
  288K  used.

So the most that can be recovered is around 96K. (Hmm, I remember the
days when 48K was the maximum for an Apple II).



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

mlord@bmers58.UUCP (Mark Lord) (09/19/89)

In article <240@bmers58.UUCP> schow%BNR.CA.bitnet@relay.cs.net (Stanley Chow) writes:
>In article <8909170749.AA26779@euler.Berkeley.EDU>, ndeng@EULER.BERKELEY.EDU (Nan Deng) writes:
>> Recently I have seen a number of 386 motherboards all using PHEONIX BIOS.
>> (MICRONICS, GENE, etc.) All boards have 4MB memory chips installed. All
>> boards reported 640KB of base memory and 3072KB extended memory when boot up.
>> My question is: where is the additional 384KB?
>
>The standard PC memory map has this 384KB reserved for BIOS ROM, I/O card
>ROM/RAM, etc. What happens to it is complicated and depends on the chip
>set, BIOS. I have AMI BIOS with the NEAT chip set so that is what I will
>talk about.
>
...lots of good stuff deleted...
>
>Unfortunately, all the unused address range is protected. This means
>eventhough the DRAM is sitting on the motherboard, no program will
>find it. There is nothing to stop me from writing a program to fiddle
>the registers so that NEAT will map the unused address range back to
>unprotected DRAM. But looking at the address map, there is not that
>much that can be recovered:
>   64K  BIOS ROM Shadowing
>   32K  Video ROM Shadowing (remember 16K block size)
>   64K  EMS page frame
>  128K  Video RAM (at least I think it is 128K)
>--------
>  288K  used.
>So the most that can be recovered is around 96K. (Hmm, I remember the
>days when 48K was the maximum for an Apple II).

Hmm.. well, that tells us lots about the *address space* but not much about
the missing 384K of *physical memory* that is still hidden away somewhere.
In the above example, we have 64K+32K used for shadowing, but that is only
96K of the missing 384K, leaving 288K unaccounted for.  There have been 
several postings recently about how to *recover* that last 288K as useable
extended/expanded memory.  On some systems, 386MAX can find it and remap
it into XMS/EMS for use by Windows/DOS4/DesqView/Caches etc.

Apparantly this memory actually does exist way up high in the extended memory
map when not being used by the NEAT/BIOS, and 386MAX knows where to look for it.
QEMM on the other hand, can only find contiguous extended memory from the 
1024K boundary (it isn't smart enough to skip over *holes*.. not even a command
line option for this -- too bad).

My 386sx motherboard uses an Intel ChipSet instead of NEAT, and the AWARD bios
remaps the unused portions of the famous 384K as extended memory begining after
the end of the rest of the motherboard (extended) memory.  The board currently
has 6Meg installed, with room for another 2Meg.  I get 640K, some shadowing
(which can be disabled to free up more memory), and 5Meg extended, plus up to
another 384K extended tacked onto the end.

What might be needed for NEAT board users is a little program to fiddle the 
NEAT registers to remap the rest of the RAM onto the end of the "normal"
extended memory (plus fiddle the BIOS so it knows it is there).

Any takers ?

-Mark

dmurdoch@watstat.waterloo.edu (Duncan Murdoch) (09/19/89)

In article <241@bmers58.UUCP> mlord@bmers58.UUCP (Mark Lord) writes:
>
>Apparantly this memory actually does exist way up high in the extended memory
>map when not being used by the NEAT/BIOS, and 386MAX knows where to look for it.
...
>What might be needed for NEAT board users is a little program to fiddle the 
>NEAT registers to remap the rest of the RAM onto the end of the "normal"
>extended memory (plus fiddle the BIOS so it knows it is there).

According to my reading of the NEAT documentation, mapping can only be done
in 1 Meg chunks.  By "mapping", I mean changing the physical address.  Since
you have to have some memory physically addressed in the first megabyte,
with this chipset you have to have a whole megabyte there.  The only way
to avoid conflicts is to disable the parts needed for video, EMS, etc.
The disabling is done in 16K blocks.

Duncan Murdoch