Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!olivea!samsung!balrog!ctron.com From: dj@ctron.com (DJ Delorie) Newsgroups: comp.sys.ibm.pc.hardware Subject: Re: What is A20 ? Keywords: A20 Message-ID: <1521@balrog.ctron.com> Date: 22 May 91 20:40:08 GMT References: <1991May22.202206.3923@magnus.acs.ohio-state.edu> Sender: news@balrog.ctron.com Reply-To: dj@ctron.com Organization: None whatsoever Lines: 36 Nntp-Posting-Host: bragi In article <1991May22.202206.3923@magnus.acs.ohio-state.edu>, smsmith@magnus.acs.ohio-state.edu (Stephen M Smith) writes: > >I have a 386DX and when I boot I get a message saying > >something like 'A20 handler active'. > >I can turn it on or off in the setup, but what is it ? > >-- > >boquist@cs.chalmers.se > > This is new to me too...I just found an explanation for it in > my Quarterdeck's Manifest document (p. 51): Here's more "history" on the A20 line: The 8088 (yes, this goes *way* back) had only 20 address lines, A0 through A19. The segmentation method was "segment * 16 + offset", which, given the right values, could generate addresses above 1 Meg (0xffff * 16 + 0xffff = 0x10ffef). On the 8088, the bits above A19 were stripped, leaving addresses that pointed to low RAM (0x0ffef, in this example). Some software actually took advantage of this! When IBM came out with the 286, which actually had those address lines, they decided that they needed to add backwards compatibility, so they added Gate-A20. What this does is mask off the A20 line coming out of the 286 so that the addresses will appear to be wrapping to the hardware. If you wanted to actually use the memory above 1 Meg, you had to re-enable the A20 line first. The signal used to enable/disable is the GateA20 signal. What they *should* have done is left A20 alone and said "screw the folks who use this brain-damage", except that those folks were CP/M and Microsoft. Thus, we humble developers must contend with hardware that handicaps the powerful CPU for "compatibility". DJ dj@ctron.com