How to evaluate the value "0x7C00" ?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
gapry
Posts: 10
Joined: Sat Aug 25, 2012 7:42 pm

How to evaluate the value "0x7C00" ?

Post by gapry »

As we know the BIOS Interrupt (INT) 0x19 which searches for a boot signiture (0xAA55).Loads and executes our bootloader at 0x7C00 if it found.

My Question : Why 0x7C00? What is the reason ? How to evaluate it through some methods?
User avatar
TightCoderEx
Member
Member
Posts: 90
Joined: Sun Jan 13, 2013 6:24 pm
Location: Grande Prairie AB

Re: How to evaluate the value "0x7C00" ?

Post by TightCoderEx »

The general rule of thumb, for no other reason that it can be that way, was to put disposable code in high memory. That way, once it's served its purpose it could be overwritten. At the time of the first BIOS in the mid 70's for the IBM compatibles, 32K was a big deal. Hence 7C00H is right near the top of 8000H. As technology evolved, this paradigm should possibly have changed, but there is something to be said for backward compatibility and as time went on, this location didn't seem to be a burden on more advanced architectures, so why change, but change it did and along came EUFI.
Post Reply