IBM PC(5150)には、Microsoftが開発したPC-DOS(MS-DOS)が搭載されたが、その前身はSeattle Computer Products の Tim Paterson が開発した 86-DOS だった。 86-DOSはCP/Mの8086対応版が中々リリースされないため、Tim Paterson がとにもかくにもで開発したOSで、当初は"QDOS"(Quick and Dirty Operating System)とも呼ばれていた。 86-DOSのPDFマニュアルが現在も入手可能で、"86-DOS Programmers Manual"の"BOOTSTRAP LOADER LISTING"に、BOOTSTRAP用のコードが載っている。 - Early DOS Manuals -- http://www.patersontech.com/dos/manuals.aspx これを見ると、200Hに最初のセクタがロードされ、そこにJMPするようになっている。 ようやくここで、"7C00H"が最初に現れたのが IBM PC 5150 のROM BIOS INT 19hであることが判明した。 (もちろん、それ以前のコンピュータシステムで、偶々 7C00 が使われていた可能性も否めない。しかし、現在のx86ベースPCの歴史の中で初めて出てきたのは、5150のROM BIOSで確定して良いだろう) いよいよパズルのピースが残り一つ、になってきた。 IBM PC 5150 のROM BIOS自体は IBM の David Bradley が開発した。同氏は有名な"Alt-Ctrl-Del"キーコンビネーションをBIOSで導入した人物としても知られている。 最後のピース、7C00Hというアドレスを決定したのはDavid Bradleyなのか?なぜそのアドレスにしたのか?は同氏に質問してみるしかない。 特に、5150の最小メモリモデルは16KBのRAMしか搭載していない。ROM BIOSは固定で高位アドレスに割り当てられるので関係ないとしても、7C00H(=32KB - 1024B)へMBRをロードしようとしてもアクセス出来ない筈である。 少なくとも割り込みベクタを確保する為、最小の16KBはアドレス0から割り当てられる。つまり32KB - 1024Bにはどう頑張っても届かない筈。(16KBの場合はMAXで3FFFHまで) あと少しで"0x7C00"の謎が解ける・・・と良いなあ。