プログラムコーディングのコメント:
先に与えられるプログラムコーディングでは基本的に私達は次の仕事を一歩ずつ行うことを進んでいる:
- dinfoは_bios_disk機能によって行われる操作によって必要な変数の情報を含んでいるdiskinfo_tの構造を指す。
- 私達が従ってディスクの最初のセクターで情報を書こうと思っているのでセクターの位置は次の通りある:
変数 |
それが意味する何を |
dinfo.drive = 0x00 |
それはフロッピーディスク・ドライブ(a:)であるドライブ0を示す |
dinfo.head = 0 |
それはヘッド第0を指す |
dinfo.track = 0 |
それはトラック0を指す |
dinfo.sector = 1 |
セクター1であるフロッピィの最初セクター |
dinfo.sector = 1 |
のために考慮するべきセクターの数は操作を= 1書く |
dinfo.buffer = dbuf |
操作のためのデータバッファ |
- 新しいフロッピィの512バイトのブーツのイメージ情報が前のプログラムによって貯えられたファイルを開けなさい。 ファイル名前および道は文字配列のfnameで貯えられる。
- regs.h.ah = 0x00が機能00 hを指し、regs.h.dl = 0x00がaのために使用されるところ割り込み13H (機能00h)を使用してディスクシステムを初期設定しなさい: だらしない。 そしてint86 (0x13の®s、®s)はMS-DOS割り込みサービスINT 13 h.を実施する。
- _bios_disk (_DISK_WRITE、&dinfo)は指定ファイルからのフロッピー・ディスクの最初の(指定)セクターにブーツ情報を書く。
- 戻る状態は巧妙な操作のためのメッセージを表示するか、またはスクリーンのエラーメッセージを表示するのに使用されている結果でどの間違いでも生じれば貯えられる。
私達を単一プログラムとのそれをすることを許可しなさい
私は、今理解してしまったそのようなタイプのフロッピー・ディスクからのデータ回復の後ろの概念を望む。 これが私達が私達が前に2つのプログラム論議されるの助けによって得た同じ結果を与える単一プログラムを想像することを可能にした後。
私達は最近論議されたプログラムの次の仕事をしていた:
- よいフロッピー・ディスクからのファイルにブーツ情報を貯えなさい
- 現在判読不可能なフロッピィの最初のセクターにこの情報を貼りなさい
ブーツのイメージを貯えるのに私達が使用していたファイルは中間橋として両方の操作を接続するためにプログラム働いていた。 しかし私達のプログラムコーディングのこのブーツ情報自体を定義すれば、私達は私達がファイルからのフロッピィのブーツ情報を読む必要はない、またファイルを作成する必要はない。
私達の次のプログラムで私達はこうして同じ仕事をするために私達が2つのプログラムを避けられる書かなければならない私達が新しい単一プログラムからか判読不可能なフロッピー・ディスクの最初のセクターに私達のデータをと同様に前に回復してもいいものをについての私達のプログラムを言って。
プログラムはこうしてより少ないコーディングと簡単になり、私達は読まれるファイルの発生の確率を減らせる間違い書いたりまたは作成の。 私達はこのプログラムの次の4つの重要な仕事をしている:
dbuf [512]の512バイト16進法情報を見ることによって書き、理解すること困難なプログラムを考えてはいけない。 後で、私達はあなたのプログラムコーディングのためにこの情報を書く簡単な方法を論議する。 |
- 現在判読不可能なフロッピィの最初のセクターに書かれるべき16進法システムのdosのブートレコード情報を定義しなさい。
- フロッピー・ディスクを初期設定するためにディスクシステムを再調節しなさい(INT 13Hの機能00H)。
- フロッピィの最初のセクターにdosのブートレコードを書きなさい
- 起こられたら操作および間違いの巧妙な完了のための点検。
|