[comp.sys.ibm.pc.hardware] Memory above 640K being redundant

jdb@reef.cis.ufl.edu (Brian K. W. Hook) (03/14/91)

Okay, I have been running saying that the VGA memory area is at A000,
right?  And this is above 640K....but what about systems with 512K?  Where
do all the ROM extensions and stuff go?  Are they on the cards?  If they
are, is that memory above 640K really there as far as applications are
concerned?  Couldn't you recover it for use with applications?

Just wondering,

Brian

imp@Solbourne.COM (Warner Losh) (03/14/91)

In article <27437@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>Couldn't you recover it for use with applications?

I suppose that it could.  However, the standard MS-DOS that get
shipped with PCs would recognize it.  I do know there is at least one
system (The DEC Rainbow) that allows you to have up to 896K and lets
all programs see all this memory w/o any XMS or EMS or anything at all
like that.  Too bad the Rainbow isn't PC compatable (it is a 8088 that
runs MS-DOS or CP/M).

Warner
-- 
Warner Losh		imp@Solbourne.COM
We sing about Beauty and we sing about Truth at $10,000 a show.

imp@Solbourne.COM (Warner Losh) (03/14/91)

In article <1991Mar13.231856.4307@Solbourne.COM> imp@Solbourne.COM
(Warner Losh) writes:
>I suppose that it could.  However, the standard MS-DOS that get
>shipped with PCs would recognize it.
                      ^^^ NOT

Sorry about that.

Warner
-- 
Warner Losh		imp@Solbourne.COM
We sing about Beauty and we sing about Truth at $10,000 a show.

klingler@triton.unm.edu (David Klingler) (03/14/91)

First let me make sure I understand your question:  On most modern mother
boards, any memory left over after the standard 640k base memory is assigned
can be configured in some combination of 3 different ways:

1) Extended Memory, which is in the 1 meg+ region of the address space of
   an AT class or higher computer.

2) Expanded (LIM spec) memory, which sits out by itself but has a kind of
   "movable window" that shows up in the under 1 meg address space.

3) Shadow RAM, Hi-Mem(?), etc, (I'm not too sure about the terms used here)
   This memory actually goes in the 640-1meg space, which is what I think
   you are talking about.  They serve 2 functions,  first (Shadow RAM) your
   machine may copy the contents from the slow ROMS that are in your machine
   during boot-up time and copy them to your much faster RAM.  This way your
   machine is accessing this fast RAM when it thinks it is accessing slow
   ROMs.  Second, there is a lot of blank spaces in the 640-1meg area that
   is between these blocks of ROM.  You can fill this with RAM then SOME
   programs that are designed to go look for it can use it.  It is popular
   to load TSRs in this space.  Also DOS extenders, Desqview & Windows
   seem to know how to put this to good use too.
D

resnicks@netcom.COM (Steve Resnick) (03/15/91)

In article <27437@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>
>Okay, I have been running saying that the VGA memory area is at A000,
>right?  And this is above 640K....but what about systems with 512K?  Where
>do all the ROM extensions and stuff go?  Are they on the cards?  If they
>are, is that memory above 640K really there as far as applications are
>concerned?  Couldn't you recover it for use with applications?
>

Devices and ROM extensions still go into adresses >A000. Even if you had 128K 
in the machine (I used to have a 128K PC) the hardware addresses are
pretty much the same. There are some devices which will put themselves in
various addresses depending on jumpers and such, but no device should attempt
to map itself to an address < A000. As far as the ROM goes, the 8086
at reset jumps to address FFFF:0000. The 286/386/486 go to a higher memory
address, but at boot time, the upper address lines are masked off, and the
reset vector still works out to be FFFF:0000. This is "hard-coded" to the
chip itself....


Cheers!
Steve




-- 
-------------------------------------------------------------------------------
	resnicks@netcom.com, steve@camphq, IFNA:	1:143/105.0, 
USNail: 530 Lawrence Expressway, Suite 374 
        Sunnyvale, Ca 94086
- In real life: Steve Resnick. Flames, grammar and spelling errors >/dev/null
0x2b |~ 0x2b, THAT is the question.
The Asylum OS/2 BBS - (408)263-8017 12/2400,8,1 - Running Maximus CBCS 1.2
-------------------------------------------------------------------------------

rwsoukoreff@trillium.uwaterloo.ca (Rob Soukoreff) (03/21/91)

In article <28292@netcom.COM> resnicks@netcom.COM (Steve Resnick) writes:
>In article <27437@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>to map itself to an address < A000. As far as the ROM goes, the 8086
>at reset jumps to address FFFF:0000. The 286/386/486 go to a higher memory
>address, but at boot time, the upper address lines are masked off, and the
>reset vector still works out to be FFFF:0000. This is "hard-coded" to the
>chip itself....


Ok, so WHAT address does a 286/386/486 jump to when it resets, (or at
boot time)??

  Thanks in advance,
   Rob Soukoreff
   rwsoukoreff@trillium.uwaterloo.ca

ralf+@cs.cmu.edu (Ralf Brown) (03/21/91)

In article <1991Mar20.185914.11656@watdragon.waterloo.edu> rwsoukoreff@trillium.uwaterloo.ca (Rob Soukoreff) writes:
}Ok, so WHAT address does a 286/386/486 jump to when it resets, (or at
}boot time)??

286 = FFFFFF:0
386/486 = FFFFFFFF:0

In other words, the start of the highest segment in the address space.


--
{backbone}!cs.cmu.edu!ralf  ARPA: RALF@CS.CMU.EDU   FIDO: Ralf Brown 1:129/3.1
BITnet: RALF%CS.CMU.EDU@CMUCCVMA   AT&Tnet: (412)268-3053 (school)   FAX: ask
DISCLAIMER?  Did  | It isn't what we don't know that gives us trouble, it's
I claim something?| what we know that ain't so.  --Will Rogers

jerry@polygen.uucp (Jerry Sheckel) (03/28/91)

ralf+@cs.cmu.edu (Ralf Brown) writes:
>
>>Ok, so WHAT address does a 286/386/486 jump to when it resets, (or at
>>boot time)??
>
>286 = FFFFFF:0
>386/486 = FFFFFFFF:0
>
>In other words, the start of the highest segment in the address space.
>

What!?  I always thought that both the 286 and the 386/486 are in real mode
when they reset, so they still jump to FFFF:0.  Am I wrong?  How can the
286 (or 386/486) jump to an address above 1MB if the protected mode selectors
for the segment registers haven't been created yet?  If the 386/486 supports
4GB segments, what does "highest segment in the address space" mean?

>
>{backbone}!cs.cmu.edu!ralf  ARPA: RALF@CS.CMU.EDU   FIDO: Ralf Brown 1:129/3.1
>
--
+-------------------+----------------------+---------------------------------+
| JERRY J. SHEKHEL  | POLYGEN CORPORATION  | When I was young, I had to walk |
| Drummers do it... | Waltham, MA USA      | to school and back every day -- |
|    ... In rhythm! | (617) 890-2175       | 20 miles, uphill both ways.     |
+-------------------+----------------------+---------------------------------+
|           ...! [ princeton mit-eddie bu sunne ] !polygen!jerry             |
|                            jerry@polygen.com                               |
+----------------------------------------------------------------------------+

resnicks@netcom.COM (Steve Resnick) (03/29/91)

In article <1019@stewart.UUCP> jerry@stewart.UUCP (Jerry Shekhel) writes:
>ralf+@cs.cmu.edu (Ralf Brown) writes:
>>
>>>Ok, so WHAT address does a 286/386/486 jump to when it resets, (or at
>>>boot time)??
>>
>>286 = FFFFFF:0
>>386/486 = FFFFFFFF:0
>>
>>In other words, the start of the highest segment in the address space.
>>
>
>What!?  I always thought that both the 286 and the 386/486 are in real mode
>when they reset, so they still jump to FFFF:0.  Am I wrong?  How can the
>286 (or 386/486) jump to an address above 1MB if the protected mode selectors
>for the segment registers haven't been created yet?  If the 386/486 supports
>4GB segments, what does "highest segment in the address space" mean?

That information seems to jibe with teh intel documentation. 


- Steve

-- 
-------------------------------------------------------------------------------
	resnicks@netcom.com, steve@camphq, IFNA:	1:143/105.0, 
USNail: 530 Lawrence Expressway, Suite 374 
        Sunnyvale, Ca 94086
- In real life: Steve Resnick. Flames, grammar and spelling errors >/dev/null
0x2b |~ 0x2b, THAT is the question.
The Asylum OS/2 BBS - (408)263-8017 12/2400,8,1 - Running Maximus CBCS 1.2
-------------------------------------------------------------------------------

ralf+@cs.cmu.edu (Ralf Brown) (03/29/91)

In article <1019@stewart.UUCP> jerry@stewart.UUCP (Jerry Shekhel) writes:
}ralf+@cs.cmu.edu (Ralf Brown) writes:
}>>Ok, so WHAT address does a 286/386/486 jump to when it resets, (or at
}>>boot time)??
}>
}>286 = FFFFFF:0
}>386/486 = FFFFFFFF:0
}>
}>In other words, the start of the highest segment in the address space.
}
}What!?  I always thought that both the 286 and the 386/486 are in real mode
}when they reset, so they still jump to FFFF:0.  Am I wrong?  How can the
}286 (or 386/486) jump to an address above 1MB if the protected mode selectors
}for the segment registers haven't been created yet?  If the 386/486 supports
}4GB segments, what does "highest segment in the address space" mean?

Well, I've double-checked my copies of the 286 and 486 PRMs, and found that
I was slightly off:

	286 = FF000:FFF0 = FFFFF0h absolute
	486 = FFFF0000:0000FFF0 = FFFFFFF0h absolute
(in both cases, 16 bytes before the top of the address space).  As to how this
is possible in the real mode in which the processor starts, the CS register
is set to F000h, but the invisible descriptor cache for CS holds the full
address.  After the first far jump, the high four (twelve) bits of the
descriptor cache address field are forced to zero.
--
{backbone}!cs.cmu.edu!ralf  ARPA: RALF@CS.CMU.EDU   FIDO: Ralf Brown 1:129/3.1
BITnet: RALF%CS.CMU.EDU@CMUCCVMA   AT&Tnet: (412)268-3053 (school)   FAX: ask
DISCLAIMER?  Did  | It isn't what we don't know that gives us trouble, it's
I claim something?| what we know that ain't so.  --Will Rogers