loading the kernel to 1MB

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.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Re:loading the kernel to 1MB

Post by Pype.Clicker »

Perica Senjak wrote: Yes i know, 0x100000 = 24 Bits.

I Did a typo. What i meant to say is: it is not inacessible when the A20-Gate is Enabled.
I suppose this is another typo !? A20-gate is enabled when memory > 1MB can be accessed. The default 8086 "wrapping" behaviour is known as A20-gate disabled.
Perica
Member
Member
Posts: 454
Joined: Sat Nov 25, 2006 12:50 am

Re:loading the kernel to 1MB

Post by Perica »

..
Last edited by Perica on Sun Dec 03, 2006 8:47 pm, edited 1 time in total.
DynatOS

Re:loading the kernel to 1MB

Post by DynatOS »

My best guess on a hardware level is that A20 is the 21st line (A0-A19 = first 20) and by disable they don't mean just to zero-out... if A20 is disabled all the bits over it are ignored.
Tim

Re:loading the kernel to 1MB

Post by Tim »

To gate a signal means to enable or disable it; the A20 gate lets you enable or disable the A20 line. Enabling the A20 line means that the 21st memory line acts like any other; disabling it means to hold it low (i.e. keep it equal to zero). All other bits above A20 are unaffected by the A20 gate.

The upshot of this is that if A20 is disabled you can only access odd-numbered megabytes of memory (the first, third, fifth, etc.).
DynatOS

Re:loading the kernel to 1MB

Post by DynatOS »

The Pentium class is where they should have introduced newer architectual standards and just emulate the old ones. Then again... you can't make money when you are not forcing people to constantly upgrade from one sub-standard to another :)
Post Reply