home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2010/03/11/まだ0x7C00の謎が解けていない。

作成日: 2010-03-11 18:10:34   /   last updated at: 2010-03-11 18:36:19
カテゴリ:

Assembler/なぜx86ではMBRが"0x7C00"にロードされるのか?

で「ようやく0x7C00の起源が分かった」・・・と力を抜きかけたけど、よくよく考えたら

5160では0x7C00が使われている

のが判明しただけで、

5150「から」0x7C00が使われている

のは未だに不明のまま。

本当に証明したいなら、「ここまでは0x7C00が使われて居らず、この時点から0x7C00が使われ始めた」という境界線を見つけないといけない。

それともう一つ、0x7C00の値の意味も未だに不明。ちょうど32KB、0x8000から1024バイト分(=512バイトx2)マイナスされたのが0x7C00になるが、なぜわざわざこのアドレスになったのか?どういう意味があるのか?

CP/Mまで手を広げて探索中。そもそも、IBMはPC-5150のOSとしてDigital Research社のCP/Mを狙っていた。

ROM BASICはMicrosoftが開発し、結局OSもMicrosoftが開発している。ただしOSについては、Digital Research社によるCP/Mの8086対応の遅れにしびれを切らしたSCPが、Tim Paterson作成の86-DOS (QDOS)を1980年に発表する。で、これをビル・ゲイツが買い取ってIBM PCに載せた。

ということはMS-DOSの源は86-DOSということになり、さらにその基本的な設計はCP/Mまで遡ることになる。
CP/Mでは"BIOS"という概念がOSの中に取り込まれていた。

・・・ということは、86-DOSの中にもBIOSに相当する部分があったのだろうか?ROM BASICも、OSもMicrosoftが作っている。当然、ROM BASICを起動する為のインターフェイス、INT 18h 割り込みの部分もMicrosoftが絡んでいて間違いなさそう。ということは・・・もしかして、ROM BIOSもMicrosoft製なのかな?86-DOSからBIOSに相当する部分を抽出し、BASICからもDOSからも呼べるように整えられる・・・という非常に自然な流れに思える。

original url: https://www.glamenv-septzen.net/view/611