詳細
_bios_disk の引数 service には, 次の定数のうちの 1 つを設定してディスク操作
を指定します。
_DISK_READ (0x06)
ディスク上のデータを、sector で指定された開始セクタから、nsectors で指定され
たセクタ数だけデータを読み取ります。
diskinfo_t 型構造体の command フィールドに _CMD_2HD、_CMD_2DD、_CMD_2D
_CMD_HD のいずれかが指定されているときに使用できます。
読み取ったデータは、 buffer が示す領域に格納されます。 正常に終了したときは
戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表します。 正常
に終了しなかったときは、戻り値の上位バイトが 0 でない値になり、下位バイトが
ステータス情報を表します(ステータス情報については、戻り値の説明を参照)。
また、 result で示される領域にはリザルトステータス情報が格納されます(この情
報についても、戻り値の説明を参照)。
_DISK_WRITE (0x05)
sector で指定された開始セクタから、nsectors で指定されたセクタ数だけ buffer が
示す領域のデータをディスク上に書き込みます。diskinfo_t 型構造体の command フ
ィールドに _CMD_2HD、_CMD_2DD、_CMD_2D、_CMD_HD のいずれかが指定されていると
きに使用できます。
正常に終了したときは、戻り値の上位バイトが 0 になり、下位バイトがステータス
情報を表します。 正常に終了しなかったときは、戻り値の上位バイトが 0 でない
値になり、 下位バイトがステータス情報を表します(ステータス情報については、
戻り値の説明を参照)。また、result で示される領域にはリザルトステータス情報
が格納されます(この情報についても、 戻り値の説明を参照)。
_DISK_SEEK (0x10)
シークを行います。diskinfo_t 型構造体の command フィールドに _CMD_2HD
_CMD_2DD のいずれかが指定されているときに使用できます。正常に終了したときは、
戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表します。
正常に終了しなかったときは、戻り値の上位バイトが 0 でない値になり、下位バイト
がステータス情報を表します(ステータス情報については、 戻り値の説明を参照)。
また、 result で示される領域にはリザルトステータス情報が格納されます(この情
報についても、 戻り値の説明を参照)。
_DISK_RECALIBRATE (0x07)
シリンダ 0 へシークします。diskinfo_t 型構造体の command フィールドに
_CMD_2HD、_CMD_2DD、_CMD_HD のいずれかが指定されているときに使用できます。
diskinfo_t 型構造体の drive フィールド以外は使用しません。正常に終了したとき
は、戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表します。 正
常に終了しなかったときは、戻り値の上位バイトが 0 でない値になり、下位バイトが
ステータス情報を表します(ステータス情報については、 戻り値の説明を参照)。
_DISK_FORMATTRACK (0x0D)
指定された 1 トラック分のフォーマットを行います。diskinfo_t 型構造体の
command フィールドに _CMD_2HD、_CMD_2DD、_CMD_HD のいずれかが指定されていると
きに使用できます。diskinfo_t 型構造体の buffer フィールドには、指定トラックに
書き込むセクタ ID 情報を設定します。 正常に終了したときは、戻り値の上位バイト
が 0 になり、下位バイトがステータス情報を表します。正常に終了しなかったときは
戻り値の上位バイトが 0 でない値になり、下位バイトがステータス情報を表します
(ステータス情報については、戻り値の説明を参照)。
_DISK_FORMATDRIVE (0x8D)
ディスクのフォーマットを行います。diskinfo_t 型構造体の command フィールドに
_CMD_2D、_CMD_HD のいずれかが指定されているときに使用できます。
diskinfo_t 型構造体の data_len フィールドには、インタリーブファクタを設定しま
す。正常に終了したときは、戻り値の上位バイトが 0 になり、下位バイトがステー
タス情報を表します。正常に終了しなかったときは、戻り値の上位バイトが 0 でな
い値になり、下位バイトがステータス情報を表します(ステータス情報については
戻り値の説明を参照)。
_DISK_INITIALIZE (0x03)
指定ドライブの初期化を行います。diskinfo_t 型構造体の command フィールドに
_CMD_2HD、_CMD_2DD、_CMD_2D、_CMD_HD のいずれかが指定されているときに使用でき
ます。diskinfo_t 型構造体の drive フィールド以外は使用しません。正常に終了し
たときは、戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表します
(ステータス情報については、 戻り値の説明を参照)。正常に終了しなかったときは
戻り値の上位バイトが 0 でない値になり、下位バイトが 0 になります。
_DISK_VERIFY (0x01)
ディスク上のデータを、sector で指定された開始セクタから、nsectors で指定された
セクタ数だけ読み取ります。ただし、メモリ転送は行いません。diskinfo_t 型構造体
の command フィールドに _CMD_2HD、_CMD_2DD、_CMD_2D、_CMD_HD のいずれかが指定
されているときに使用できます。正常に終了したときは、戻り値の上位バイトが 0 に
なり、下位バイトがステータス情報を表します。 正常に終了しなかったときは、戻り
値の上位バイトが 0 でない値になり、下位バイトがステータス情報を表します(ステ
ータス情報については、 戻り値の説明を参照)。また result で示される領域にはリ
ザルトステータス情報が格納されます(この情報についても、 戻り値の説明を参
照) 。
_DISK_SENSE (0x04)
指定したデバイスの状態を調べます。diskinfo_t 型構造体の command フィールドに
_CMD_2HD、_CMD_2DD、_CMD_2D、_CMD_HD のいずれかが指定されているときに使用でき
ます。diskinfo_t 型構造体の drive フィールド以外は使用しません。正常に終了し
たときは、 戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表しま
す。正常に終了しなかったときは、戻り値の上位バイトが 0 でない値になり、下位
バイトがステータス情報を表します(ステータス情報については、戻り値の説明を参
照)。
_DISK_READID (0x0A)
ID の読出しを行います。diskinfo_t 型構造体の command フィールドに、_CMD_2HD
_CMD_2DD のいずれかが指定されているときに使用できます。正常に終了したときは
戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表します。正常に
終了しなかったときは、戻り値の上位バイトが 0 でない値になり、下位バイトがス
テータス情報を表します(ステータス情報については、戻り値の説明を参照)。
また、result で示される領域には ID 情報が格納されます(この情報についても、
戻り値の説明を参照)。
_DISK_WRITEDDAM (0x09)
削除データアドレスマークを書き込みます。diskinfo_t 型構造体の command フィー
ルドに _CMD_2HD、_CMD_2DD のいずれかが指定されているときに使用できます。正常
に終了したときは、戻り値の上位バイトが 0 になり、下位バイトがステータス情報を
表します。正常に終了しなかったときは、戻り値の上位バイトが 0 でない値になり、
下バイトがステータス情報を表します(ステータス情報については、戻り値の説明を
参照)。また、result で示される領域にはリザルトステータス情報が格納されます
(この情報についても、戻り値の説明を参照)。
_DISK_ALTERNATE (0x08)
代替トラックの指定を行います。diskinfo_t 型構造体の command フィールドが
_CMD_HD のときに使用できます。diskinfo_t 型構造体の buffer フィールドには、
代替トラックアドレスが格納されます。 エラーを表す戻り値はありません。
_DISK_BADTRACK (0x0B)
不良トラックのフォーマットを行います。diskinfo_t 型構造体の command フィール
ドが、 _CMD_HD のときに使用できます。代替トラックは、_DISK_ALTERNATE によっ
て指定されたトラックです。正常に終了したときは、戻り値の上位バイトが 0 にな
り、下位バイトがステータス情報を表します。正常に終了しなかったときは、戻り値
の上位バイトが 0 でない値になり、下位バイトがステータス情報を表します(ステ
ータス情報については、 戻り値の説明を参照)。
_DISK_READDDAM (0x0C)
削除データアドレスマークが付いたデータを読み込みます。diskinfo_t 型構造体の
command フィールドに _CMD_2HD、_CMD_2DD のいずれかが指定されているときに使用
できます。読み取ったデータは、diskinfo_t 型構造体の buffer が示す領域に格納
されます。 正常に終了したときは、 戻り値の上位バイトが 0 になり、下位バイト
がステータス情報を表します。正常に終了しなかったときは、戻り値の上位バイトが
0 でない値になり、下位バイトがステータス情報を表します(ステータス情報につ
いては、戻り値の説明を参照)。また、result で示される領域にはリザルトステー
タス情報が格納されます(この情報についても、 戻り値の説明を参照)。
_DISK_DIAGNOSTIC (0x02)
診断のための読み出しを行います。diskinfo_t 型構造体の command フィールドに
_CMD_2HD、_CMD_2DD のいずれかが指定されているときに使用できます。読み取ったデ
ータは、diskinfo_t 型構造体の buffer が示す領域に格納されます。正常に終了した
ときは、戻り値の上位バイトが 0 になり、下位バイトがステータス情報を表します。
正常に終了しなかったときは、戻り値の上位バイトが 0 でない値になり下位バイトが
ステータス情報を表します(ステータス情報については、戻り値の説明を参照)。ま
た、result で示される領域にはリザルトステータス情報が格納されます(この情報に
ついても、 戻り値の説明を参照)。
_DISK_RETRACT (0x0F)
ヘッドを、使用されないシリンダへ移動します。diskinfo_t 型構造体の command が
_CMD_HD のときに使用できます。正常に終了したときは、戻り値の上位バイトが 0
になり、下位バイトがステータス情報を表します。正常に終了しなかったときは戻り
値の上位バイトが 0 でない値になり、下位バイトがステータス情報を表します(ス
テータス情報については、戻り値の説明を参照)。
_DISK_OPMODE (0x0E)
1MB インターフェイスモードにおいて、640KB のフロッピーディスクをアクセスす
るときの動作を指定します。diskinfo_t 型構造体の command フィールドに
_CMD_2HD、_CMD_2DD、_CMD_2D のいずれかが指定されているときに使用できます。
正常に終了したときは、戻り値の上位バイトが 0 になり、下位バイトがステータス
情報を表します。正常に終了しなかったときは、戻り値の上位バイトが 0 でない値
になり、下位バイトがステータス情報を表します(ステータス情報については、戻
り値の説明を参照)。
diskinfo_t 型構造体変数の command フィールドに指定して、処理を行うディス
クのメディアの定数。
記号定数 意味
===========================================
_CMD_2HD 1MB のフロッピーディスク
_CMD_2DD 640KB のフロッピーディスク
_CMD_2D 320KB のフロッピーディスク
_CMD_HD ハードディスク
_CMD_SEEK シーク動作あり
_CMD_MF 倍密度
_CMD_MT マルチトラック
_CMD_RETRY 再試行あり
_bios_disk は DISK BIOS ( INT 1BH )に制御を渡しています。詳細な動作に
ついては、市販の BIOS 関係の書籍などを参照してください。