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