C integral types [was Re: Semi-OT: Why Kids Can't use Computers] (fwd)
Walter Dnes
waltdnes-SLHPyeZ9y/tg9hUCZPvPmw at public.gmane.org
Wed Aug 21 01:02:10 UTC 2013
On Tue, Aug 20, 2013 at 12:47:33PM -0400, Lennart Sorensen wrote
> Well that is intel's fault actually. The reset start address of x86
> is 16 bytes before end of memory. So where else should the BIOS code
> be located? Given the 8088/8086 had a 20 bit address, that meant the
> start address was 0xFFFF0 which is the last 16 bytes of the BIOS places
> at the end of memory. So I don't know what intel's guidelines were,
> but given the reset PC of the CPU, I don't think there was much choice.
>
> A lot of CPU designs start at 0, which makes that a convinient place
> for the boot ROM. Yet another stupid design decision on intel's part.
What could have been... Intel's 20-bit addressing scheme consisted of
a real address that was defined by 2 16-bit registers, i.e...
( 16 * base_reg ) + offset_reg
16 = 2^4, so that only gave 1 megabyte of address space in "real mode"
for DOS (20 bits). Now imagine if they had made it
( 256 * base_reg ) + offset_reg
which would give 16 megabytes of real mode for DOS (24 bits). Even
better would be...
( 4096 * base_reg ) + offset_reg
which would give 256 megabytes of real mode for DOS (28 bits). OS/2,
EMS, XMS, HIMEM, etc would never have seen the light of day.
--
Walter Dnes <waltdnes-SLHPyeZ9y/tg9hUCZPvPmw at public.gmane.org>
I don't run "desktop environments"; I run useful applications
--
The Toronto Linux Users Group. Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
More information about the Legacy
mailing list