RE: [PATCH] x86/Kconfig: decrease maximum of X86_RESERVE_LOW to 512K

From: H. Peter Anvin
Date: Mon May 31 2021 - 09:00:37 EST


Sorry... very few correct answers here.

The load address is 0x7c00. The MBR is relocated to 0x600 by DOS.

MS-DOS doesn't *have* a TPR base, you are thinking of CP/M-80.

The IBM PC memory map reserved 640-768K for video, but the first generation adapters (CGA and MDA) didn't use the bottom 96K/64K (respectively) so it was possible to add a little more RAM. The ROM BIOS wouldn't enumerate it, though, so you had to hack around that. EGA took that away, though, but it seems that virtually no machines including clones had taken advantage of it anyway.

As far as affording it: the first IBM PC 5150 I personally used had 512K RAM. Not cheap, but not unheard of either; this was still before the 64K DRAM market crashed in early 1985.


On May 31, 2021 2:32:22 AM PDT, David Laight <David.Laight@xxxxxxxxxx> wrote:
>From: H. Peter Anvin
>> Sent: 28 May 2021 03:13
>....
>> BIOSes have been known to clobber more than 64K. They aren't supposed
>to
>> clobber any.
>
>They probably shouldn't need anything above the base of the DOS
>transient program area preserved.
>Can't remember where that is though :-(
>
>It is hard enough finding a safe memory area for the MBR
>code to relocate itself to before loading the PBR.
>Both the MBR and PBR load at the same address - 0xc00.
>
>> 640K is the limit because that is the address of the EGA/VGA frame
>> buffer. In the words of Bill Gates "640K ought to be enough for
>anyone."
>
>I thought the original memory map allocated 512K for memory
>and 512k for memory mapped I/O.
>No one could afford more then 512K DRAM :-)
>
>The 640K limit appears because nothing was actually mapped
>as the bottom of the 'I/O area' so memory could expand up
>that far.
>
> David
>
>-
>Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes,
>MK1 1PT, UK
>Registration No: 1397386 (Wales)

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.