MSX-DOS2PIS 03 05

From Z80 Machines Wiki
Jump to: navigation, search

3.5.環境文字列

MSX-DOSはそのデータセグメントに「環境文字列」の一覧を保持します。環境文字列は、それに関連付けられた値を持つ名前付き項目です。名前と値はどちらもユーザー定義です。環境文字列は、「環境文字列の取得」(機能6BH)、「環境文字列の設定」(機能6CH)、および「環境文字列の検索」(機能6DH)の各機能を介して、関数呼び出しレベルでアクセスできます。

環境文字列の名前は、ファイル名で有効な任意の文字で構成されるnull以外の文字列です。名前は最大255文字です。名前の比較では、大文字と小文字は区別されませんが、文字列が定義されると、名前の文字は大文字になります。

環境文字列の値は、null以外の文字の文字列で構成され、最大255文字まで指定できます。環境文字列の値がNULL文字列に設定されている場合、その名前は環境文字列のリストから削除されます。同様に、定義されていない環境文字列の値が読み込まれると、NULL文字列が返されます。値は大文字ではなく、値ストリング内の文字に解釈はありません。

一時プログラムがCOMMAND2.COMから読み込まれて実行されると、2つの特別な環境文字列が設定され、それを読み取ることができます。 実際のコマンド名を含まないコマンドラインには、PARAMETERSという環境文字列が設定されています。これは、CP / M互換性のために80hに設定されているものと似ていますが、大文字ではありません。

PROGRAMと呼ばれる別の環境文字列も設定されており、これはディスク上のプログラムを見つけるために使用されるパス全体です。ドライブが最初にあり、その後にルートからのパスが続き、次にプログラムの実際のファイル名が続きます。ドライブ、パス、およびファイル名は、必要に応じて "Parse Pathname"機能呼び出し(機能5CH)を使用して分離できます。

PROGRAM環境文字列にはいくつかの用途があります。主な用途は、プログラムがそれを使用してオーバーレイファイルをロード元と同じディレクトリからロードできることです。 PROGRAMの最後の項目(つまり実際のプログラムのファイル名)はオーバーレイファイルの名前に置き換えられ、新しい文字列はASCIIZ文字列を受け取る新しいMSX-DOS 2関数( "Open"など)に渡すことができます。ファイル")。

いくつかのCP / Mプログラムは一時的なプログラムをロードして実行することができます、そしてこの場合それらは明らかにPROGRAMとPARAMETERS環境文字列を設定しなかったでしょう、そして実際にはCP / Mプログラムがいつから設定されるでしょうロードされました。プログラムがPROGRAMおよびPARAMETERSを使用し、それでもCP / Mプログラムからロード可能であることを望んでいる場合は、アドレス0037hのページ0にある「LOAD_FLAG」という変数を調べることができます。 MSX-DOS 2の関数呼び出しごとにゼロに設定されますが、一時プログラムがコマンドインタプリタによって実行される直前にゼロ以外に設定されます。同様に、新しい一時プログラムに他の一時プログラムをロードする機能があり、それがPROGRAMとPARAMETERSをセットアップする場合は、LOAD_FLAG tonon-zeroも設定する必要があります。

他の特別な環境文字列はAPPENDと呼ばれるものです。これは、ユーザーがコマンド・インタープリターからセットアップすることができ、CP / Mの「ファイルを開く(FCB)」機能によって使用されます。この関数呼び出しが行われてファイルが見つからない場合は、APPENDで指定された代替ディレクトリが検索されます。しかし、新しい一時プログラムがこの関数呼び出しまたはAPPEND環境ストリングを使用することは予想されていません。

いくつかの環境文字列は、起動時にコマンドインタプリタによって設定され、さまざまなシステム機能やオプションを制御するためにユーザによって変更されます。一時的なプログラムがこれらのいくつかを読むのに役立ちます。たとえば、プログラムが日付と時刻を表示する場合は、PATH環境文字列、またはDATE環境文字列とTIME環境文字列を読み取ると便利です。コマンド仕様には、これらのデフォルト環境文字列の詳細が含まれています。