MSX-DOS2PIS 03 02

From Z80 Machines Wiki
Jump to: navigation, search

3.2.デバイスと文字の入出力

ファイル名がMSX-DOS機能に与えられるところはどこでも、デバイス名もまた与えられるかもしれません。これらのデバイスはキャラクタベースのI / Oに使用され、プログラムがディスクファイルまたはキャラクタデバイスにまったく同じ方法でアクセスすることを可能にします。

デバイス名の構文はファイル名の構文と同じであるため、プログラムはデバイス名を使用するための特別な処理を必要としません。これは、新しいMSX-DOS 2機能とCP/M互換FCB機能の両方に当てはまります。デバイスに使用される予約済みのファイル名は次のとおりです。


    CON  - screen output, keyboard input
    PRN  - printer output
    LST  - printer output
    AUX  - auxiliary output/input
    NUL  - null device

これらのうちのどれかがファイル名の主要部分として現れるとき、それは実際にデバイスを参照します。拡張子は無視されます。ファイルを使用するほとんどの関数呼び出しはデバイスも使用できます。たとえば、CONというファイル名を「ファイル名の変更」機能または「ファイルの削除」機能に正常に指定できます。エラーは返されませんが、デバイスは影響を受けません。

上記のAUXデバイスは、デフォルトでは何もしませんが、たとえばシリアルドライバを参照するように、ルーチンがそこにフックされることがあります。 NULデバイスは実際には何もしません。出力文字は無視され、ファイルの終わりが常に入力されます。 LSTデバイスとPRNデバイスは同じです。 CONデバイスはキーボードからの読み取りや画面への書き込みに使用されます。 CON装置から読み取るとき、システムは一度に1行ずつ読み取り、ユーザーが行編集機能を使用できるようにします。ユーザーがCR(キャリッジリターン)を入力した場合にのみ行が入力されます。入力の終わりは、行の先頭にあるCtrl + Z文字で表されます。

システムはこれらの標準デバイスへのいくつかのファイルハンドルを自動的に開きます(詳細はセクション3.3を参照してください)。これらのファイルハンドルは、標準デバイスにアクセスするためにアッププログラムによって使用されることがあります。あるいは、プログラムは従来のCP M文字関数(関数01h ... 0Bh)を使用して文字入出力を行うことができます。これら2つの方法はどちらも使用できますが、別々のバッファリング方式を使用しているため、これらのバッファで文字が失われる可能性があるため、通常は混在させないでください。

リダイレクトはコマンドラインで指定され、これらの方法(標準ファイルハンドルと文字関数)の両方がリダイレクトされます。ただし、標準のファイルハンドルを使用し、大きなブロックで読み書きすることをお勧めします。ディスクファイルにアクセスするときは、文字関数を使用するよりもはるかに高速になるからです。

リダイレクトがコマンドラインで指定されたとしても、プログラムは時々リダイレクトを迂回するスクリーン出力とキーボード入力をする必要があるかもしれません。例えば、ディスクエラー処理ルーチンはこれを行う必要があるかもしれません。これを容易にするために、文字機能のリダイレクトを一時的に取り消すことを可能にする機能が提供される。これは "機能仕様"ドキュメント(機能番号70h)で説明されています。