Enabling A20 unlocks half the RAM; and some device drivers (e.g. video) won't work well when A20 is disabled because A20 also effects memory mapped IO. For an example, a computer with 4 GiB of RAM that is capable of using 1600*1200 with millions of colours might be left with only 2 GiB of RAM and might be stuck with 640*480 with 16 colours (because VBE modes that use a linear frame buffer may not be usable).egos wrote:It's wonderful for me if this works If so, why do you try to enable A20?Brendan wrote:If none of that works I boot with A20 disabled (which is easy for me, as I enable paging before kernel is loaded and don't care what physical addresses are used ).
It works (with reduced functionality), which may only a be little better than not working (e.g. refusing to boot).
It's a bit like a car manufacturer showing videos of their car crashing into a huge concrete block to demonstrate the car's safety features. The manufacturer doesn't expect people to drive into huge concrete blocks very often, but they do want people to think they'll be safe if they're in an accident. In a similar way I don't expect my OS to be used with A20 disabled, but I do want people to think the OS is able to continue functioning despite hardware failures (note: the OS is designed to detect and avoid faulty RAM, and it's the ability to continue functioning when areas of RAM are missing/faulty that the "keep running when A20 is disabled" feature is intended to demonstrate).
Cheers,
Brendan