On 11/22/2010 09:08 AM, Stefan Berger wrote:
// enable a20
inb $PORT_A20, %al
orb $A20_ENABLE_BIT, %al
outb %al, $PORT_A20
Let me *strongly* recommend isolate A20M handling in a single module for the following reasons:
1. it is necessary to handle INT 15h, AX=2400/2401h; 2. different platforms have different requirements (port 92h is not universally supported) and even if it is the amount of time until it is active varies; 3. some newer CPUs (e.g. Core i3/5/7) don't even have A20M so there is absolutely no reason to waste time poking it at all; 4. testing for A20M active may be advisable for speed purposes.
-hpa