はじめに HMAの説明で80286の不具合として挙げられていることが多いA20マスクがらみの話。しかし、これは仕様であって不具合ではないという解説をしてみたいと思います。 ※本稿では16進数表現を「0000h」のように終端に「h」を付けて表現します。数値の先頭が0から9ではない場合には0を補います。ただし、参考文献からの引用は原文通りとします。 A20マスクとは MS-DOS時代にメモリを拡張する方式の一つとして広く使われた規格にXMS(eXtended Memory Specification)があります。これにはXMB(Extended Memory Block)、UMB(Upper Memory Block)、HMA(High Memory Area)という3種類のメモリを管理するものです。 このうち、HMAはIntel 80286(以下、80286)のアドレス空間がIntel 80