MS-DOS(Ver7.1)のイニシャルプログラムローダを解析すると、
BIOSから制御が移された直後に
割り込み1EHの設定を変更しているくだりがあるのですが、
これは一体何をやっているのでしょうか?
以下に詳細を書きます。
・0000:0078からの4バイト(すなわちINT 1Eに対する割り込みベクタテーブル)を
スタックに保存し、新たに0000:0522というポインタを設定する。
・旧ジャンプ先の先頭から11バイトを新ジャンプ先にコピーする。
5バイト目(0000:0526)にディスクのトラックあたりのセクタ数を上書きし、
10バイト目(0000:052B)に即値0FHを格納する。
最終的には下のようなバイト列になる。
DF 02 25 02 12 1B FF 54 F6 0F 08
(トラックあたり18(=12H)セクタの場合)
これをディスアセンブルしても意味のある命令列にならない。
・この後、IO.SYSの探索に入る。スタックに積まれた旧ポインタは
エラーメッセージのあとのキー入力待ちを経て復元される。
御存知の方がいらっしゃいましたら教えてください。
No.1ベストアンサー
- 回答日時:
INT 1Eh は割り込み処理アドレスではなく
フロッピーディスクパラメータアドレスです
内容は全て byte で下記の通りです
オフセット 内容
00h bit 7-4:ステップレート
bit 3-0:ヘッドアンロード時間
01h bit 7-1:ヘッドロード時間
bit 0 :DMAを使わない
02h モータ回転停止までの待ち時間(Tick単位)
03h セクタ長(00h:128バイト 01h:256バイト 02h:512バイト 03h:1024バイト)
04h トラックあたりのセクタ数
05h セクタ間のギャップ長
06h データ長
07h フォーマット時のギャップ長
08h フォーマットデータ
09h ヘッドセトリング時間(ミリ秒単位)
0Ah モータ回転開始時間(1/8秒単位)
なお
INT 1Dh は ビデオパラメータテーブルアドレス
INT 1Fh は 8x8ドットグラフィックフォントテーブルアドレス
となっています
ありがとうございます!なんで割り込みジャンプ先なのに命令列になっていないのだろう?とずっと悩んでおりました。ディスクのパラメータだったんですね。私は全くの趣味で解析をしているのですが、AT互換機の仕様が分からないせいで何日も進まないことがあり、本当に助かりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ubuntuで デイスク/deb/loopと...
-
パソコンでインターネット接続...
-
エラー?メッセージ
-
固定電話機のパソコンとの連動
-
サブネットマスクが255.255.255...
-
プログラムの規模を表す単位「k...
-
PICマイコンで、ピンが足りませ...
-
pthreadのスタックサイズ設定取...
-
c言語でスタック領域の使われ方...
-
15パズルゲームについて
-
VB6.0で #の意味
-
最大スタックサイズを大きくす...
-
同じサブネットに属するIPアドレス
-
VB.netでDLLを読み込んで実行す...
-
タッチタイプの拗音が苦手です...
-
ステップ数??
-
ステップ数について
-
L2スイッチの管理VLANに...
-
タイピング速度を上げる方法に...
-
MACアドレスとは何ですか?パソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntuで デイスク/deb/loopと...
-
ブロック化因数(ブロッキング...
-
ブロック長について
-
磁気ディスクの計算問題です
-
磁気ディスク装置についての計算
-
磁気ディスクのアクセス時間の...
-
情報処理の問題
-
512MB・1Gとは・・・
-
磁気ディスクのアクセス時間に...
-
MS-DOSのイニシャルプログラム...
-
MBRとGPT
-
MOの容量って、どうなってい...
-
プログラムの規模を表す単位「k...
-
パソコンでインターネット接続...
-
ライン数とステップ数の違いに...
-
hdmiはパラレル?シリアル?
-
VB.netでDLLを読み込んで実行す...
-
時には命令してくれる人も必要...
-
最大スタックサイズを大きくす...
-
昔したタイピングソフトが思い...
おすすめ情報