[HN Gopher] Xbox Hacks: The A20 (2021)
       ___________________________________________________________________
        
       Xbox Hacks: The A20 (2021)
        
       Author : mattweinberg
       Score  : 96 points
       Date   : 2025-07-17 03:22 UTC (19 hours ago)
        
 (HTM) web link (connortumbleson.com)
 (TXT) w3m dump (connortumbleson.com)
        
       | pwdisswordfishz wrote:
       | I was confused as to why Xbox would ever enable a feature
       | intended for backwards compatibility with systems it does not
       | need to be compatible with. Especially at boot time. Turns out it
       | did not; this apparently required a hardware modification to pull
       | off.
       | 
       | https://xboxdevwiki.net/Exploits#A20M.23_hack
        
       | userbinator wrote:
       | For those wondering what software depended on A20 wraparound,
       | there is this interesting series of articles:
       | 
       | https://www.os2museum.com/wp/who-needs-the-address-wraparoun...
       | 
       | https://www.os2museum.com/wp/the-a20-gate-it-wasnt-wordstar/
       | 
       | https://www.os2museum.com/wp/exepack-and-the-a20-gate/
       | 
       | https://www.os2museum.com/wp/the-a20-gate-fallout/
        
         | bigstrat2003 wrote:
         | It's always blown my mind that software would depend on that
         | behavior. What possessed people to do that? It's _very
         | obviously_ a bad idea.
        
           | toast0 wrote:
           | If the system behavior is defined to wrap around, using
           | _defined system behavior_ to reduce code complexity makes
           | perfect sense.
           | 
           | This was in an era where new computer systems usually meant
           | throwing away all the existing software and rewriting it (or
           | doing a fresh port anyway). Why would you assume someone
           | would extend the system and cause trouble.
        
       | mjg59 wrote:
       | A20 bugs were still with us until at least 2009, when I tripped
       | over one: https://mjg59.livejournal.com/118098.html . I love the
       | visualisations in this post, it makes it much clearer what's
       | actually going on.
        
         | diffuse_l wrote:
         | Indeed, more than you ever wanted to know about the A20 line:
         | https://aeb.win.tue.nl/linux/kbd/A20.html (from your article)
         | 
         | This is one hell of a rabbit hole...
        
       | messe wrote:
       | Something this article doesn't mention is how the A20 gate was
       | toggled: by writing to registers on the _keyboard controller_.
       | 
       | I was always thought this was a completely inexplicable design
       | choice, until I started working in embedded, working with
       | hardware engineers, and having to go through schematics myself. I
       | now entirely understand the choice of wanting to minimize the
       | redesign work and going with the one free pin available (our
       | product has made similar choices too at this stage).
        
         | st_goliath wrote:
         | The original IBM PC used an Intel 8048 microcontroller inside
         | the keyboard and an 8255 I/O controller on the main board to
         | communicate with the keyboard.
         | 
         | The PC AT (which had an 80286), later replaced the 8255 with an
         | 8042 microcontroller too. It was running firmware, so re-
         | purposing it for a Hodge-poge of other tasks became trivial. A
         | single GPIO pin was used for masking the A20 line and another
         | for handling CPU reset. Having a total of 24 programmable I/O
         | lines, I _guess_ this could have been done with the 8255 too,
         | but the microcontroller probably allowed simpler interfacing
         | with the CPU and bought them more flexibility for future
         | expansion.
         | 
         | For the article, this is mostly irrelevant. As somebody else
         | noted, the Xbox wasn't supposed to be able to toggle/mask the
         | A20 line, but later x86 CPUs had already integrated the A20
         | masking feature into the CPU itself and exposed an A20 control
         | line. The Xbox simply tied the A20 enable line to a fixed
         | potential, the hack described in the article requires a simple
         | hardware modification to change that
         | (https://xboxdevwiki.net/File:Haxar-a20m.jpg).
        
         | wrs wrote:
         | Similarly, on the original Macintosh one of the mouse axis
         | encoders was connected to the carrier detect pin of the serial
         | port chip. Thus, in early versions of the OS, if you closed the
         | serial driver, the mouse would only move horizontally (or was
         | it vertically?).
        
       | msk-lywenn wrote:
       | I highly recommend watching the deconstructing xbox talk. It gets
       | very funny.
       | 
       | https://m.youtube.com/watch?v=9NqLljaHc80
        
       | heraldgeezer wrote:
       | What a machine. Would have liked to see PS2 games maxed out on
       | XBOX if possible. Imagine RE4/FFXII versions of those games on
       | xbox?
       | 
       | Still, Halo 2 legendary is unmatched.
        
       | junon wrote:
       | Building an operating system currently. This isn't just Xbox, we
       | _still_ have to do this in bootloaders.
        
       ___________________________________________________________________
       (page generated 2025-07-17 23:01 UTC)