13.1.1 画面表示命令(汎用関数)
関数の形式,処理内容,およびリターンコードについて説明します。
- 〈この項の構成〉
(1) XmapDrvCreateOpen関数
インタフェース用メモリを確保したり,仮想端末をオープンしたりします。
- 形式
long APIENTRY XmapDrvCreateOpen(tname) unsigned char *tname; /* 仮想端末名 */
仮想端末名(tname):仮想端末定義ファイルで指定した名称を指定します。
- 処理内容
-
XMAP_COM,XMAP_REQ,XMAP_OPNおよびXMAP_MDOテーブルを確保し,仮想端末をオープンする。
- リターンコード
-
0:異常終了
1以上:正常終了(仮想端末識別子:確保した領域の先頭アドレス)
- 注意事項
-
仮想端末名は8バイト以内で指定し,最後にNULLで終わる文字列を指定してください。
一つのAP(プロセス)内で同時にオープンできる端末数の上限は15個です。
データ有無コードには標準値「1F」が仮定されます。
(2) XmapDrvClose関数
仮想端末をクローズします。
- 形式
long APIENTRY XmapDrvClose(termid) long termid; /* 仮想端末識別子 */
仮想端末識別子(termid):オープン要求関数の戻り値を指定します。
- 処理内容
-
-
仮想端末をクローズする。
-
XMAP_COM,XMAP_REQ,XMAP_OPN,XMAP_MDOテーブル領域を解放する。
-
- リターンコード
-
0:正常終了
−1:異常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
(3) XmapDrvSend関数
画面を表示します。
- 形式
long APIENTRY XmapDrvSend(termid, pmpname, olog); long termid; /* 仮想端末識別子 */ unsigned char *pmpname; /* 物理マップ名 */ unsigned char *olog; /* 出力論理マップ */
-
仮想端末識別子(termid) :オープン要求関数の戻り値を指定する。
-
物理マップ名(pmpname) :出力する物理マップ名を指定する。
-
出力論理マップ(olog) :出力論理セグメントを指定する。
-
- 処理内容
-
画面を表示します。
- リターンコード
-
0:正常終了
−1:異常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
エラーが発生した場合,自動的にクローズ処理が実行されます。
(4) XmapDrvReceive関数
画面に入力されたデータを取得します。
- 形式
long APIENTRY XmapDrvReceive(termid, ilog); long termid; /* 仮想端末識別子 */ unsigned char *ilog; /* 入力論理マップ */
-
仮想端末識別子(termid):オープン要求関数の戻り値を指定する。
-
入力論理マップ(ilog):入力論理マップを指定する。
-
入力論理マップの全体長を入力論理マップの先頭(2バイト)に指定する。
-
- 処理内容
-
画面に入力されたデータを取得します。
- リターンコード
-
0:正常終了
−1:異常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
エラーが発生した場合,自動的にクローズ処理が実行されます。
入力論理マップ長として実際より短い値を指定した場合,エラーを返します。
(5) XmapDrvTransceive関数
画面を表示したり,画面に入力されたデータを取得したりします。
- 形式
long APIENTRY XmapDrvTransceive(termid, pmpname, olog, ilog); long termid; /* 仮想端末識別子 */ unsigned char *pmpname; /* 物理マップ名 */ unsigned char *olog; /* 出力論理マップ */ unsigned char *ilog; /* 入力論理マップ */
-
仮想端末識別子(termid):オープン要求関数の戻り値を指定する。
-
物理マップ名(pmpname):出力する物理マップ名を指定する。
-
出力論理マップ(olog):出力論理マップを指定する。
-
入力論理マップ(ilog):入力論理マップを指定する。
-
入力論理マップの全体長を入力論理マップの先頭(2バイト)に指定する。
-
- 処理内容
-
画面を表示したり,画面に入力されたデータを取得したりします。
- リターンコード
-
0:正常終了
−1:異常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
エラーが発生した場合,自動的にクローズ処理が実行されます。
入力論理マップ長として実際より短い値を指定した場合,エラーを返します。
(6) XmapDrvGetError関数
エラーの詳細を取得します。
- 形式
long APIENTRY XmapDrvGetError()
- 処理内容
-
直前に発行された関数のエラー詳細を取得します。
- リターンコード
-
0以上:正常終了(詳細エラーコード)
(7) XmapDrvCreate関数
メモリを確保します。
- 形式
long APIENTRY XmapDrvCreate()
- 処理内容
-
XMAP_COM, XMAP_REQ, XMAP_OPN, XMAP_MDOテーブル領域を確保します。
- リターンコード
-
0:異常終了
1以上:正常終了(仮想端末識別子:確保した領域の先頭アドレス)
(8) XmapDrvOpen関数
仮想端末をオープンします。
- 形式
long APIENTRY XmapDrvOpen(termid, tname) long termid; /* 仮想端末識別子 */ unsigned char *tname; /* 仮想端末名 */
-
仮想端末識別子(termid):XmapDrvCreateの戻り値を指定する。
-
仮想端末名(tname):仮想端末定義ファイルで指定した名称を指定する。
-
- 処理内容
-
仮想端末をオープンします。
- リターンコード
-
0:正常終了
−1:異常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
仮想端末名には,最後にヌルで終わる文字列を指定してください。9バイト以上の場合,9バイト以降は切り捨てられます。
一つのAP(プロセス)内で同時にオープンできる端末数の上限は15個です。
(9) XmapDrvSetMapOption関数
マッピングオプションを指定する。
- 形式
long APIENTRY XmapDrvSetMapOption(termid, mode) long termid; /* 仮想端末識別子 */ long mode; /* マッピングオプション */
-
仮想端末識別子(termid):オープン要求関数の戻り値を指定する。
-
マッピングオプション(mode):マッピングオプションを指定する。
指定できるマッピングオプションは,次のとおりです。
内容
指定値
マージ
0
論理マップだけ
2
物理マップだけ
3
-
- 処理内容
-
マッピングオプションを設定します。
- リターンコード
-
0:正常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
modeに不当な値を指定した場合,「マージ」を仮定します。
(10) XmapDrvSetDataCode関数
データ有無コードを設定する。
- 形式
long APIENTRY XmapDrvSetDataCode(termid, code) long termid; /* 仮想端末識別子 */ unsigned char code; /* データ有無コード */
-
仮想端末識別子(termid):オープン要求関数の戻り値を指定する。
-
データ有無コード(code):データ有無コードを指定する。
-
- 処理内容
-
データ有無コード((00)16〜(1F)16または(FF)16)を設定します。データ有無コードはすべてのAPにかかわるコードのため,できるだけ標準値((1F)16)を利用することをお勧めします。
- リターンコード
-
0:正常終了
- 注意事項
-
クローズ済みの仮想端末識別子を指定した場合,アクセス違反を起こす場合があります。
この関数を発行しない場合,データ有無コードには標準値「1F」が仮定されます。