- A20 handler
The A20 handler is
IBM PC memory manager software controlling access to theHigh Memory Area .Extended memory managers usually provide this functionality. A20 handlers are named after the 21st address line of the microprocessor, theA20 line .The
Intel 8088 CPU used in the original IBM PC was capable of addressing memory using 20 binary digits ("bits"). But the registers in the 8088 were only 16 bits wide. A 20-bitmemory address was created by left shifting the 16-bit Segment Address (in effect multiplying it by 16) and adding the 16-bit offset address to it yielding a 20-bit result.For example, using
hexadecimal values with a Code Segment (CS) of 1000 and an Instruction Pointer (IP) of 2000, the actual memory address of CS:IP is, as follows:CS : 1000 shifted left by 4 bits gives 10000 So the result is 10000 + 2000 = 12000
In reality, the result can be 21 bits wide since the total of the two registers can be more than FFFFF hexadecimal, e.g. repeating the above example with CS = FF00 and IP = FFFF. It is possible to generate references to slightly less than 64
KiB that are outside the addressing range of the 8088. When the 80286 CPU which had more than 20 address lines was developed, it became necessary to deal with code that referenced the 64 KiB addressable by ordinary addressing but not present in the 8088. As it turned out, it was sometimes desirable to set the 21st address line, and sometimes desirable not to. Alogic gate was added on themotherboard to control the 21st address line. Not surprisingly, this was called the "A20 gate".Controlling the A20 line was an important feature at one stage in the growth of the IBM PC architecture, as it added access to an additional 65520 bytes (64 KiB - 16 B) of memory in
real mode without dramatic software changes.ee also
*
Computer storage
*Computer software References
*
Intel 8086
*Intel 80286 External links
* [http://www.win.tue.nl/~aeb/linux/kbd/A20.html A20 - a pain from the past]
Wikimedia Foundation. 2010.