$ZA
Synopsis
$ZA
概要
$ZA には、現在のデバイス上の最後の READ の状況が含まれます。
この特殊変数は、SET コマンドを使用して変更することはできません。変更を試みると、<SYNTAX> エラーが返されます。
メモ
ターミナル入出力での $ZA
$ZA は、各ビットが特定の情報を示すビット・フラグのシーケンスとして解釈されます。以下のテーブルは、可能な値、その意味、およびモジュロ (#) 演算子と整数除算 (\) 演算子を使用してそれらをテストする方法を示します。
ビット | テスト | 意味 |
---|---|---|
0 | $ZA#2 | ブレークが有効であったか否かにかかわらず、<CTRL-C> を受信しました。 |
1 | $ZA\2#2 | READ がタイムアウトになりました。 |
2 | $ZA\4#2 | 入出力エラー |
8 | $ZA\256#2 | Caché が無効なエスケープ・シーケンスを検出しました。 |
9 | $ZA\512#2 | ハードウェアがパリティ・エラーもしくはフレーミング・エラーを検出しました。 |
11 | $ZA\2048#2 | プロセスが主デバイスから切断されました。 |
12 | $ZA\4096#2 | COM ポートの場合 : CTS (送信可)。モデムからそのコンピュータに送信される、転送が続行可能であることを示すシグナル。TCP デバイスの場合 : デバイスはサーバ・モードで機能しています。 |
13 | $ZA\8192#2 | COM ポートの場合 : DSR (データ・セット・レディ)。モデムからそのコンピュータに送信される、処理の準備が整っていることを示すシグナル。TCP デバイスの場合 : デバイスは現在、リモート・ホストと対話している接続状態です。 |
14 | $ZA\16384#2 | True の場合、リングが設定されます。 |
15 | $ZA\32768#2 | True の場合、キャリア検出が設定されます。 |
16 | $ZA\65536#2 | CE_BREAK COM ポート・エラー状態 |
17 | $ZA\131072#2 | CE_FRAME COM ポート・エラー状態 |
18 | $ZA\262144#2 | CE_IOE COM ポート・エラー状態 |
19 | $ZA\524288#2 | CE_OVERRUN COM ポート・エラー状態 |
20 | $ZA\1048576#2 | CE_RXPARITY COM ポート・エラー状態 |
21 | $ZA\2097152#2 | CE_TXFULL COM ポート・エラー状態 |
22 | $ZA\4194304#2 | TXHOLD COM ポート・エラー状態。ClearCommError() によって返されるエラー・マスクで、fCtsHold、fDsrHold、fRlsdHold、fXoffHold、fXoffSent のいずれかのフィールドが True の場合に、設定されます。 |
24 & 25 | $ZA\16777216#4 | Caché で要求された DTR (データ端末レディ) 設定 : 0 = DTR オフ。1 = DTR オン。2 = DTR ハンドシェーク。(1) に設定されている場合、データの転送および受信の準備が整っていることを示します。 |
$ZA がエラーを示す状況は多くありますが、$ZTRAP にトラップして、プログラム・フローに割り込むことはありません。(ブレークを有効にして <CTRL-C> を実行すると、$ZTRAP にトラップします)。これらのエラーに関係するプログラムは、READ を実行するたびに $ZA をチェックする必要があります。
COM ポートではビット 12 ~ 15、24 および 25 を使用して、モデム制御ピンのステータスを報告します。これは、ポートの Caché モデム制御チェックがオンになっているかどうかにかかわらず実行できます。ユーザは OPEN または USE コマンドの portstate パラメータ (バイト 8) を設定して、COM ポートの $ZA エラー報告を有効または無効にできます。エラー報告が有効になっている場合は、ポートのエラー状態がビット 16 ~ 22 で報告されます。詳細は、"Caché 入出力デバイス・ガイド" の "ターミナル入出力" を参照してください。
%SYSTEM.ProcessOpens in a new tab クラスの DisconnectErr()Opens in a new tab メソッドを使用すると、現在のプロセスでのモデム切断が検知されるようになります。システム全体の既定の動作は、Config.MiscellaneousOpens in a new tab クラスの DisconnectErrOpens in a new tab プロパティで設定できます。
磁気テープ入出力と $ZA
磁気テープ入出力で、$ZA のビット・フィールドは、エラーと特別な状態を示します。Caché は各コマンドごとに $ZA を更新して、磁気テープ・デバイスを参照します。
次のテーブルは、磁気テープ入出力の $ZA ビットの意味を示しています。トラップ列に注意してください。Y が<MAGTAPE> エラーを示しています。$ZTRAP 変数を設定すると、Caché は関連する $ZTRAP エラー・コードを発行します。
ビット | 値 | トラップ | 意味 | メモ |
---|---|---|---|---|
0 | 1 | Y | 論理的エラー (Read と Write の混合) | 読み取りと書き込みを切り替えるときは、デバイスを Close あるいは Open するか、Forward Space コマンド、Backspace コマンド、Rewind コマンドのいずれかを使用します。 |
2 | 4 | N | Write 保護 | 常に OPEN または USE の読み取り専用パラメータの状態を表します。このビットは、テープの物理書き込み保護 (書き込みリングまたは書き込みロック) の状態は表しません。UNIX® の多くのバージョンで、テープへの実際の書き込みが試行されるまでテープの書き込み保護が通知されないためです。読み取り専用のパラメータなしで、書き込み保護の 9 トラックのテープを開こうとすると、このビットが設定され、読み取り専用でテープが開きます。エラーは発生しません。 |
3 | 8 | Y | エラー要約 | エラー要約は、Caché エラーを生じるすべての状態の論理和です (すべての状態は Trap で Y と記されます)。 |
5 | 32 | N | テープの先頭 [BOT] | UNIX® システムでは、このビットは巻き戻し時に設定され、テープが開くとクリアされます。 |
6 | 64 | N | オンライン | |
7 | 128 | Y | コントローラ、あるいはドライブ・エラー | |
10 | 1024 | N | テープの最後 [EOT] | ほとんどの UNIX® プラットフォームでサポートされません。 |
14 | 16384 | Y | テープ・マーク | Caché は、Read、Read Block、Forward Space、Backspace にテープ・マークがあると、テープ・マーク・ビットを設定します。これは、エラー・サマリー・ビットを設定して、Read、Read Label、Read Block で $ZTRAP にトラップします。 |
15 | 32768 | Y | テープの準備ができていません。 |
ビットは、エラー状況を示すものと、必ずしもエラーを生成するとは限らない状況を示すものがあります。エラーのない状態を監視するには、磁気テープ処理のたびに $ZA の適切なビットをテストする必要があります。例えば、プログラムがテープの最後を超えて書き込まないように、ビット 10 (テープの最後) を確認しなければなりません。
ビットをテストするには、テーブルにあるビットにリストされている値で $ZA を割り、モジュロ 2 オペレーションを実行します。例えば、以下のコマンドは、ビット14 (テープ・マーク) が設定されるときにチェックします。
USE 47 IF $ZA\16384#2 {DO Endfile}
16384 は 2 の 14 乗と同じで、#2 はモジュロ 2 オペレーションを示しています。数字の 0 乗は 1 と同じで、ビット0 (論理エラー) を検査するための除数は必要ありません。例えば以下のようになります。
USE 47 GOTO Logerr:$ZA#2
関連項目
-
READ コマンド
-
$ZB 特殊変数
-
$ZTRAP 特殊変数
-
Caché 入出力デバイス・ガイド の 入出力デバイスとコマンド
-
"Caché 入出力デバイス・ガイド" の "ターミナル入出力"
-
"Caché 入出力デバイス・ガイド" の "磁気テープ入出力"
-
"Caché 入出力デバイス・ガイド" の "シーケンシャル・ファイル入出力"