4 ms·
Thanks for this description. An extra logic gate (A20) was added to the keyboard controller that would enable or disable access to memory above 1MB. Yes, the
by a-priori 16y ago
Thanks for this description.
An extra logic gate (A20) was added to the keyboard controller that would enable or disable access to memory above 1MB.
Yes, the fact that it's on the keyboard controller is the single biggest WTF about the whole thing.
This still happens, even on your top of the range 64-bit quad core behemoth if you're running a 32-bit Operating System. I'm not sure whether this still applies to 64-bit Operating Systems as they were after my time, but if anyone here can tell me I'd love to know.
As far as I know, yes it's still part of the boot process even for operating systems that run in long mode (i.e, x86-64).
Personally I've always felt that the A20 part wasn't that hard - perhaps it's the wrong term but the hardest thing for me was all the checks for the right hardware, I kept finding stuff that works fine in bochs or qemu then barfs on real kit.
It's not so much that it's hard... if you're like me, you spend a good half an hour trying to make sense of what it is, then copy-paste some code to do it. I was just using it as an example of a seriously weird 'feature' of the architecture.