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

日記/2010/03/15/7C00の記事を近日公開

作成日: 2010-03-15 23:17:39   /   last updated at: 2010-03-15 23:29:56
カテゴリ:

86-DOSがなぜディスクの先頭セクタを200Hにロードするのか、なぜIBM PC 5150のROM BIOSおよび現在に至る互換BIOSがMBRを7C00Hにロードするのか、その値の意味は何か。

一通り謎が解けたので、現在まとめ記事を書いてます。今週中に公開予定。

それにしても当時のアセンブラって・・・現在とは少し違います。
86-DOSのコードで頻出していて、悩まされたのが

UP


PUT 100H

の二つ。
UPは現在の"CLD"のことでした。(シミュレータ上で86-DOSのMonitorコードをステップ実行してて、シミュレータの逆アセンブリ結果を見て初めて理解)

PUTの方は擬似コードなのですが、正直よく分からないです。ORGも併用されてるので、そのコードがどこのメモリに展開されるのか分かりづらい。

86-DOSのMonitorやbootstrapって、割り込みベクタが調整される前に動作するコード・・・つまり、キーボード入力やディスクI/Oを、I/Oポートの読み書きを駆使し、割り込みは一切使わずに書かれている・・・スゲー。

こういうのを目の当たりにすると、つくづく「たった四半世紀でここまで変わるものなのか・・・」と感心というかあっけにとられます。これからの25年、50年はどうなっちゃうんでしょうね。

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