MSX-DOS2 FCS 03 80

From Z80 Machines Wiki
Jump to: navigation, search

3.80定義ディスクエラーハンドラールーチン(64H)

パラメータ:C = 64H(_DEFER)

DE =ディスクエラールーチンのアドレス

ルーチンを未定義にするには0000H

結果:A = 0(エラーを生成しません)


この関数は、ディスクエラーが発生した場合に呼び出されるユーザールーチンのアドレスを指定します。ルーチンは全TPAをページインした状態で入力されますが、ページ3のシステムスタックはアクティブになっており、MSX-DOS関数呼び出しが行われた時点からレジスタは保存されません。

エラールーチンはMSX-DOS呼び出しを行うことができますが再帰を避けるために非常に注意しなければなりません。このドキュメントのセクション2の関数呼び出しのリストは、ユーザーエラールーチンから安全に実行できる関数呼び出しを示しています。このルーチンは、標準I / Oチャネルがリダイレクトされた場合に、リダイレクトステータスが一時的に無効にされて呼び出されます。この詳細については、「リダイレクト状態の取得/設定」機能(機能70h)を参照してください。 ルーチン自体のパラメータと結果の指定は以下のとおりです。 IX、IY、および代替レジスタセットを含むすべてのレジスタは破棄される可能性がありますが、ページングとスタックは保持される必要があります。ルーチンはシステムに戻る必要があります。一時プログラムを続行するためにジャンプしてはいけません。これを実行したい場合は、A = 1( "abort")を返す必要があります。ユーザーアボートルーチンが制御を取得します。

パラメータ:A =エラーの原因となったエラーコード

B =物理ドライブ

C = b0 - 書き込む場合に設定

b1 - 無視しないことを推奨する場合に設定

b2 - 自動中止が提案された場合に設定

b3 - セクタ番号が有効な場合に設定

DE =セクター番号(Cのb3が設定されている場合)

結果:A = 0 =>システムエラー処理ルーチンを呼び出す

1 =>中止

2 =>再試行

3 =>無視する