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で質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- Windows 10 MicrosoftIMEでトラブル、助けてください m(_._)m 4 2023/05/16 14:11
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- リフォーム・リノベーション 汚水枡改修工事の見積額は妥当でしょうか? 2 2022/06/30 09:01
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
回復ドライブってアップデート...
-
デスクトップに、to do 事項を...
-
windows11におけるファイルの並...
-
MS-DOS 6.22のダウンロード
-
エクスプローラのアクティブウ...
-
Windows Media Playerを開くと...
-
写真をコピーしたら作成日時が...
-
Windowsの"legacy"ってなんです...
-
windows11 きれいなロック画面...
-
windows11でクイックスキャン等...
-
windowsxpより軽いLinux探して...
-
Windowsの古いゲーム(32bit OS...
-
windows11プロダクトキー購入に...
-
Raspberry Pi 3 A+ ブラウザ遅い
-
すべてのアプリを起動直後に「A...
-
win11回復ドライブを起動するが...
-
ウィンドウズPCは、頻繁に「...
-
Windows11で共有プリンタの印刷...
-
Windows11のデスクトップのアプ...
-
なぜ、Windows OSは重たいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ubuntuで デイスク/deb/loopと...
-
磁気ディスクのアクセス時間に...
-
ブロック長について
-
磁気ディスク装置についての計算
-
ブロック化因数(ブロッキング...
-
この二つの問題とける人いませ...
-
6MBのデータをダウンロードする...
-
MOの容量って、どうなってい...
-
磁気ディスクの平均アクセス時...
-
磁気ディスクのアクセス時間の...
-
プログラムの規模を表す単位「k...
-
パソコンでインターネット接続...
-
ステップ数について
-
ライン数とステップ数の違いに...
-
VB.netでDLLを読み込んで実行す...
-
hdmiはパラレル?シリアル?
-
エラー?メッセージ
-
ステップ数??
-
ネットワークアイコンが黄色三...
-
最大スタックサイズを大きくす...
おすすめ情報