日本語DEC SNA 3270データ・ストリーム・プログラ ミング・インタフェースfor_DEC_OSF/1_________________ ユーザーズ・ガイド/インストレーション・ガイド AA-QCZ5A-TE 1995年1月 オペレーティング・システム: OSF/1 V3.0A ソフトウェア・バージョン: 日本語DEC SNA 3270デー タ・ストリーム・プログラ ミング・インタフェース for DEC OSF/1 V1.0 マニュアル・バージョン: V1.0 日本ディジタル イクイップメント株式会社 ________________________________________________________________ 1995年1月 本書の著作権は日本ディジタル イクイップメント株式会社(日本 DEC)が保有しており,本書中の解説および図,表は日本DECの文書 による許可なしに,その全体または一部を,いかなる場合にも再 版あるいは複製することを禁じます。 また,本書に記載されている事項は,予告なく変更されることが ありますので,あらかじめご承知おきください。万一,本書の記 述に誤りがあった場合でも,日本DECは一切その責任を負いかねま す。 本書で解説するソフトウェア(対象ソフトウェア)は,所定のライ センス契約が締結された場合に限り,その使用あるいは複製が許 可されます。 日本DECは,日本DECまたは日本DECの指定する会社から納入された 機器以外の機器で対象ソフトウェアを使用した場合,その性能あ るいは信頼性について一切責任を負いかねます。 (c) Digital Equipment Corporation Japan 1995. All Rights Reserved. Printed in Japan. 以下は米国Digital Equipment Corporationの商標です。 DEC ULTRIX VT DECnet ULTRIX Worksystem Software DECUS UNIBUS DECwindows VAX DIGITAL VAXcluster PDP VMS DIGITAL 以下は他社の商標です。 IBMは米国International Business Machines社の商標です。 _________________________________________________________________ 目次 まえがき................................................. xi 1 製品の概要 1.1 3270拡張データ・ストリームのサポート......... 1-1 1.2 インタフェース・アプリケーション例........... 1-2 1.3 データ・ストリーム・モード................... 1-3 1.4 フィールド・モード........................... 1-3 1.5 SNAの概念の理解.............................. 1-4 2 日本語3270 DSPIの使用方法 2.1 LU-LUタイプ2セッションの確立................. 2-1 2.2 セッションとの接続........................... 2-2 2.2.1 セッションへのアクティブ接続の要求....... 2-3 2.2.2 セッションへのパッシブ接続の要求......... 2-4 2.3 接続モードの指定方法......................... 2-5 2.4 データ・ストリーム・モード................... 2-5 2.4.1 3270データ・ストリームの送信方法......... 2-7 2.4.2 3270拡張データ・ストリームの受信方法..... 2-8 2.4.2.1 ストリームの確認応答................... 2-9 2.4.2.2 複数の連続ストリームの送信要求を受信し た場合.................................. 2-9 2.5 フィールド・モード........................... 2-10 2.5.1 文字ベクタ............................... 2-11 iii 2.5.2 拡張属性ベクタ........................... 2-12 2.5.2.1 拡張強調表示........................... 2-14 2.5.2.2 拡張カラー............................. 2-14 2.5.2.3 文字セット............................. 2-15 2.5.2.4 罫線................................... 2-15 2.5.2.5 透過................................... 2-17 2.5.3 スクリーン・ディスクリプタ・ブロック..... 2-17 2.5.4 書込み制御文字データ構造................. 2-19 2.5.5 3270画面イメージの受信方法............... 2-19 2.6 3270画面イメージからフィールドを検索する方法. 2-20 2.6.1 FDBのフィールド.......................... 2-20 2.6.2 読取り操作と検索操作の指定方法........... 2-23 2.6.3 FDBの使用例(1)........................ 2-25 2.6.4 FDBの使用例(2)........................ 2-33 2.6.5 3270画面イメージへフィールドを書き込む... 2-40 2.7 3270画面イメージを送信する方法............... 2-40 2.8 セッションの終了方法......................... 2-41 3 日本語3270 DSPIの機能 3.1 リターン・ステータス情報..................... 3-1 3.1.1 関数の戻り値............................. 3-2 3.1.2 ステータス・ベクタの使用方法............. 3-2 3.2 IBMホストにアクセス情報を提供する方法........ 3-3 3.3 コールバック機能の使用方法................... 3-4 3.4 ブロックおよび非ブロック受信の使用方法....... 3-5 4 OSF/1アプリケーション・プログラムの作成 4.1 アプリケーションのリンク方法................. 4-1 4.2 プログラミング例............................. 4-2 4.3 DEC/IBMコード変換............................ 4-4 4.3.1 IBM付加文字とIBMユーザ定義文字........... 4-4 4.3.2 カスタマイズされた変換テーブルの作成方法. 4-4 iv 5 プロシージャ呼び出し形式 5.1 日本語3270 DSPIを呼び出す場合の一般形式...... 5-2 5.1.1 session_id............................... 5-2 jsna3270_acknowledge................................ 5-3 jsna3270_free_buffer................................ 5-6 jsna3270_lock_screen................................ 5-9 jsna3270_read_field................................. 5-11 jsna3270_receive_screen............................. 5-14 jsna3270_receive_stream............................. 5-18 jsna3270_request_connect............................ 5-22 jsna3270_request_disconnect......................... 5-27 jsna3270_return_io_port............................. 5-30 jsna3270_set_owner.................................. 5-33 jsna3270_transmit_screen............................ 5-36 jsna3270_transmit_sna_cmd........................... 5-40 jsna3270_transmit_stream............................ 5-43 jsna3270_write_field................................ 5-46 sna_as2eb........................................... 5-49 sna_eb2as........................................... 5-51 jsna_put_msg........................................ 5-53 jsna_get_msg........................................ 5-56 6 日本語3270 DSPIのインストレーション 6.1 インストレーション必要事項の確認............. 6-1 6.2 必須ソフトウェア・サブセットの確認........... 6-2 6.3 IBMホスト・システムへのアクセスの確認........ 6-3 6.4 システム・ディスクのバックアップ............. 6-4 6.5 ライセンスPAKの登録.......................... 6-4 6.6 問題点の通知................................. 6-4 6.7 インストレーション方法....................... 6-5 6.7.1 CD-ROMからのインストレーション........... 6-5 6.7.2 IVPの実行方法............................ 6-13 6.7.3 IVPが失敗した場合........................ 6-13 6.8 内部コマンド・テーブルの再構築............... 6-14 v 6.9 インストレーション後の日本語3270 DSPIファイル の配置........................................ 6-14 6.10 インストレーション例......................... 6-22 A アテンション識別の値 B 日本語3270 DSPIの定義 C ステータス・コード C.1 成功コード................................... C-1 C.2 情報コード................................... C-2 C.3 エラー・コード............................... C-3 C.4 重大エラー・コード........................... C-8 D 下位レベルのステータス・コード D.1 一般的なエラー・コード....................... D-1 D.2 一般的な2次障害コード........................ D-2 D.3 ゲートウェイから返される異常終了理由のステー タス・コード.................................. D-6 D.4 重大エラー・コード........................... D-10 E 日本語3270 DSPIデータ構造 F jsnacodeユーティリティ F.1 jsnacodeユーティリティ....................... F-1 F.1.1 起動方法................................. F-1 F.1.2 jsnacodeコマンド形式..................... F-1 F.1.3 KMAPファイル............................. F-10 F.1.4 1バイトコード変換テーブル............... F-11 F.1.5 jsnacodeエラーメッセージ一覧............. F-13 vi G jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ..................... G-1 G.1.1 起動方法................................. G-1 G.1.2 jsnaknjdefコマンド形式................... G-1 G.1.3 jsnaknjdefユーティリティ内のコマンド形式. G-2 G.1.3.1 useコマンド............................ G-2 G.1.3.2 listコマンド........................... G-3 G.1.3.3 defineコマンド......................... G-5 G.1.3.4 undefineコマンド....................... G-8 G.1.3.5 helpコマンド........................... G-9 G.1.3.6 exitコマンド........................... G-9 G.1.3.7 quitコマンド........................... G-10 G.1.4 jsnaknjdefエラーメッセージ一覧........... G-11 H jsnatratblユーティリティ H.1 jsnatratblユーティリティ..................... H-1 H.1.1 変換テーブル修正マクロ................... H-1 H.1.1.1 マクロ................................. H-2 H.1.1.2 コメント............................... H-4 H.1.2 変換テーブルの作成....................... H-4 H.1.3 変換テーブル作成例....................... H-6 H.1.4 jsnatratblエラーメッセージ一覧........... H-7 I DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ.................. I-1 I.1.1 コード変換ライブラリの概要............... I-1 I.1.1.1 サポートされる漢字コード............... I-2 I.1.1.2 ライブラリ構成......................... I-2 I.1.1.3 リンク方法............................. I-2 I.1.2 コード変換ライブラリの詳細............... I-2 I.1.2.1 Item List.............................. I-2 I.1.2.2 Item Code.............................. I-3 I.1.2.3 変換モードBitmask...................... I-4 I.1.2.3.1 文字列の初期/最終モード............... I-5 I.1.2.3.2 シフト・コード........................ I-6 I.1.2.3.3 Replaceモード(IBMからDECへの変換の場 合のみ)............................... I-7 I.1.2.4 コード変換の例......................... I-7 I.1.2.5 外字の変換............................. I-8 I.1.2.6 制限事項............................... I-8 vii I.1.2.7 DEC/IBMコード変換ルーチンのインタフェー ス...................................... I-8 tra_dec_ibm_init.................................... I-9 tra_dec_ibm_free .................................. I-13 tra_dec_ibm ....................................... I-15 tra_ibm_dec ....................................... I-18 I.1.3 省略時変換テーブル....................... I-21 I.1.4 プログラム例............................. I-23 J DEC拡張漢字セット内のIBM付加文字 索引 例 2-1 拡張フィールド属性データ構造.............. 2-13 3-1 コールバック・ルーチンのシンタックス...... 3-5 E-1 構造化フィールド・データ構造.............. E-1 E-2 拡張フィールド属性データ構造.............. E-2 E-3 フィールド属性データ構造.................. E-3 E-4 フラグ定義データ構造...................... E-4 E-5 スクリーン・ディスクリプタ・ブロック・デー タ構造.................................... E-5 E-6 書込み制御文字(WCC)データ構造............. E-6 E-7 フィールド・ディスクリプタ・ブロック・デー タ構造.................................... E-6 図 1-1 DECnet/SNAネットワークを通したIBMとOSF/1の 接続例.................................... 1-3 2-1 An Active Connect Request................. 2-4 2-2 文字ベクタ................................ 2-11 2-3 罫線属性構造.............................. 2-16 2-4 WCCデータ構造............................. 2-19 2-5 AMNUトランザクション画面.................. 2-28 viii 2-6 AMNU操作員画面............................ 2-29 2-7 オプション画面上のトランザクション・ナンバ ー・フィールド............................ 2-29 2-8 AMNUファイルbrowse画面.................... 2-30 3-1 ステータス・ベクタ........................ 3-3 F-1 -k 2の場合のKMAPファイルと変更対象ファイ ル........................................ F-10 F-2 KMAPファイルの出力例...................... F-11 F-3 jsnacodeが提供する変換テーブル (EBCDICJIS)............................ F-12 G-1 list表示例−1............................ G-4 I-1 Item List structure....................... I-2 I-2 変換例.................................... I-7 I-3 DEC -> IBM 1バイトコード変換テーブル...... I-21 I-4 IBM -> DEC 1バイトコード変換テーブル...... I-22 表 2-1 拡張強調表示設定.......................... 2-14 2-2 カラー設定................................ 2-14 2-3 文字セット................................ 2-15 2-4 拡張属性とマスク定数...................... 2-22 2-5 フィールド・ディスクリプタ・ブロックの操作 選択フィールドのシンボルと意味............ 2-23 6-1 日本語3270 DSPIのインストレーション必要事 項........................................ 6-1 6-2 必要なサブセット.......................... 6-2 6-3 日本語3270 DSPIファイル................... 6-14 A-1 アテンション識別の値...................... A-1 B-1 接続関連定数.............................. B-2 B-2 省略時の拡張属性タイプと値................ B-3 B-3 リプライ・モード定数...................... B-3 B-4 カラー定数................................ B-3 B-5 文字セット定数............................ B-4 B-6 GCID定数.................................. B-4 B-7 フィールド/文字属性....................... B-4 B-8 アウトバウンド構造化フィールド............ B-5 ix B-9 区分読取りでのアウトバウンド構造化フィール ド........................................ B-7 B-10 アウトバウンド/インバウンド構造化フィール ド........................................ B-7 B-11 インバウンド構造化フィールド.............. B-8 B-12 セッション送信状態........................ B-9 B-13 セッション受信連鎖状態.................... B-10 B-14 セッション送信連鎖状態.................... B-10 B-15 ブラケット状態............................ B-10 B-16 LUSTATで使用するフラグ.................... B-11 B-17 アウト・オブ・バウンド要求のSNAコマンド... B-11 B-18 画面所有権................................ B-11 B-19 フィールド操作............................ B-12 B-20 区画定数.................................. B-12 B-21 3270指令定義.............................. B-12 B-22 3270副指令定義............................ B-14 B-23 拡張属性タイプ............................ B-15 B-24 AIDキー定義............................... B-17 I-1 Item Code一覧............................. I-3 I-2 変換モード................................ I-4 I-3 文字列モードの値.......................... I-5 I-4 指定可能なItem Code....................... I-10 I-5 指定可能なItem Code....................... I-16 I-6 指定可能なItem Code....................... I-19 x _________________________________________________________________ まえがき 日本語DEC SNA 3270データ・ストリーム・プログラミング・イ ンタフェースfor DEC OSF/1を使用することにより,OSF/1システ ム・ユーザは,IBMホスト上で動作するプログラムとのデータ交換 可能なアプリケーションを開発することができます。以下,日本 語DEC SNA 3270データ・ストリーム・プログラミング・インタフ ェースfor DEC OSF/1を日本語3270 DSPIと表記します。 本書の目的 本書では,日本語3270 DSPIをインストールし,Cプログラミング言 語を使用してIBMホスト上で動作するプログラムと通信するOSF/1 システム・アプリケーションを作成するのに必要な情報について 解説します。本書は,一般的なプログラミング学習書ではありま せん。ユーザがCでのプログラミング方法を知っていることを前提 としています。 対象読者 本書は,OSF/1システム・プログラマを対象としています。本プロ ダクトを使用するには,IBMのシステム・ネットワーク体系(SNA ) を理解しておくこととCプログラミング言語の知識が必要です。 xi 本書の構成 本書は,以下に示す章と付録から構成されています。第1章から 第5章までがユーザーズ・ガイドであり,製品の概要,使用方法に ついて説明しています。第6章がインストレーション・ガイドで あり,製品のインストレーションについて説明しています。よっ て,初めにインストレーションを実行したいお客様は,まず第6章 をお読み下さい。 第1章 日本語3270 DSPIとその機能について説明します。 第2章 日本語3270 DSPIの2つの操作モードとOSF/1アプリケ ーションがそれをどのようにして呼び出すかについ て説明します。 第3章 アプリケーションを作成したり実行したりするとき に役に立つプロダクトの機能について説明します。 第4章 シェアラブル・イメージを使用してOSF/1アプリケー ションに日本語3270 DSPIをリンクする方法について 説明します。この章では,オンラインで提供されるC 言語の5つのプログラミング例について説明されてい ます。これらのプログラムは,本プロダクトに含ま れる各種のプログラミング・コールとデータ構造の 使い方を示したものです。 第5章 日本語3270 DSPI環境を構成するルーチンと呼び出し 形式について説明します。 第6章 日本語3270 DSPIソフトウェアをインストールすると きの前提条件を示します。次に,setldプロシージャ を使用して日本語3270 DSPIソフトウェアをインスト ールし,インストレーションを検証する方法につい て説明します。また,インストレーション時にシス テムにコピーされるファイルの名前と位置の一覧を 示すとともに,システム上で実行されるインストレ ーション例も示します。 付録 A アテンション識別(AID)キー値とシンボル,それに対 応するキーボード上のキーを示します。 xii 付録 B 使用したい言語に対して定義ファイルが提供されて いない場合に,アプリケーションを作成するのに使 用するシンボル,値,意味を示します。 付録 C OSF/1アプリケーションに返されるステータス・コー ドについて説明します。 付録 D 本プロダクトを使用するときに受け取る下位レベル のステータス・コードを示します。 付録 E 日本語3270 DSPI環境を構成するデータ構造の例を示 します。 付録 F jsnacodeユーティリティの使用方法について説明し ます。 付録 G jsnaknjdefユーティリティの使用方法について説明 します。 付録 H jsnatratblユーティリティの使用方法について説明 します。 第I.1節 DEC/IBMコード変換ライブラリについて説明します。 付録 J DEC拡張漢字セット内のIBM付加文字の割り当てを表 で示します。 ________________________ 注意 ________________________ 本書における'DEC SNA Gateway'は特に断らない限り, DECnet SNA Gateway ST , DECnet SNA Gateway CT及び DEC SNA Peer Serverを意味します. ______________________________________________________ xiii 関連資料 日本語3270 DSPIを使用する上で,以下のマニュアルも必要に応じ て参照してください。 DEC SNA Peer Serverについては,以下のマニュアルを参照してく ださい。 o DEC SNA Peer Server Installation and Configuration Guide o DEC SNA Peer Server Management Guide o DEC SNA Peer Server Guide to IBM Resource Definition o DEC SNA Peer Server Network Control Language Reference 以下のIBM社のマニュアルも必要に応じて参照してください。 o IBM 3270 Information Display System Data Stream Programmer's Reference, Order No. GA23-0059 o IBM 3270 Information Display System 3274 Control Unit Description and Programmer's Guide, Order No. GA23- 0061 o IBM 3179-G/3192-G Color Graphics Display, Order No. GA18-2589-1 o Systems Network Architecture-Format and Protocol Reference Manual: Architectural Logic, Order No. GC30- 3112 o Systems Network Architecture-Sessions Between Logical Units, Order No. GC20-1868 xiv 表記法 本書では次の表記法を使用します。 xv xvi ___________________________________________________________ 表記________説明___________________________________________ 大文字アル 定数の値やシンボルを示します。明記されていると ファベット おりにコーディングする必要があります。 小文字のイ コマンド行や例におけるイタリック体テキストはそ タリック体 れが示している実際の値を与えなくてはならないこ (italics) とを示します。 [] 大括弧はオプションまたはコンディショナルのパ ラメータやシンボルを囲んでいます。コンディショ ンを適用する場合は,パラメータと値を明記してく ださい。その際,大括弧は入力しないでください。 通常,次のようなルールがパラメータに適用されま す。 o オプション・パラメータは削除することが可能 です。オプション・パラメータを削除すると, 関連しているパラメータに影響がでたり,省略 時の値に設定されたりします。 o コンディション・パラメータは削除することが 可能です。選択されたパラメータは,他のパラ メータがどの様に指定されたかによって,その 意味が決定されます。 () 括弧は引数の羅列の範囲を決めます。引数は指示 に従ってコード・ラインに入力しなければなりませ ん。また,括弧もコード・ライン上に指示されたと おりに入力しなければなりません。 英字の特殊 この特殊タイプは,システム出力かユーザ入力の例 活字 を示します。 …Special type 数字 特に断らない限り,数字は10進数です。 RETURNキーを押すことを示します。特に断らない限 り,すべてのコマンドは,Returnキーを押すことに よって終了します。 等のキーの組み合せは,キーを押し ____________た状態で別のキー(x)を押すことを示します。______ xvii 略称 本書では次の略称を使用します。 ___________________________________________________________ 名称__________________________________略称_________________ IBMシステム・ネットワーク体系 SNA 論理装置 LU 1次論理装置 PLU 2次論理装置 SLU システム・サービス制御点 SSCP ソフトウェア性能レポート SPR 書込み制御文字 WCC 日本語DEC SNA 3270データ・ストリー 日本語3270 DSPI ム・プログラミング・インタフェース for_DEC_OSF/1______________________________________________ xviii 1 _________________________________________________________________ 製品の概要 日本語3270 DSPIを使用すると,IBMホスト上で動作するアプリケ ーションとデータを交換するOSF/1アプリケーションを開発するこ とができます。日本語3270 DSPIで開発可能なOSF/1システム・ア プリケーションには,次のようなものがあります。 o IBM 3270端末用に設計された既存のIBMアプリケーションと 通信しなければならないアプリケーション o IBM 3270端末,あるいは3279-S3Gまたは3192-Gグラフィック 表示システム,IBMパーソナルシステム/55日本語3270パーソ ナル・コンピュータ(日本語3270 PC)の諸機能をエミュレ ートするアプリケーション o 3270拡張データ・ストリームを使用してIBMホスト・システ ム上で動作する他社のソフトウェア・プロダクトと通信する ファイル転送アプリケーション 日本語3270 DSPIでは,アプリケーションを開発するときに,スト リーム・モード(第1.3節を参照)とフィールド・モード(第1.4 節を参照)の2つのモードを提供します。使用するモードは,アプ リケーションに実行させたい機能によって決まります。 _________________________________________________________________ 1.1 3270拡張データ・ストリームのサポート OSF/1システム・アプリケーションは,日本語3270 DSPIプロダク トを構成するプログラミング・プロシージャを使用して,次のよ うな機能を実行できます。 o 仮想3270ディスプレイを作成する o 未解析のIBM 3270拡張データ・ストリームを受信する o OSF/1とIBMの両方のコンピュータ・システム上のデータをア クセスする 製品の概要 1-1 製品の概要 1.1 3270拡張データ・ストリームのサポート o IBMホストにすでに常駐している3270トランザクションに接 続する o 照会/応答トランザクションを実行する o 3279-S3G,3192-Gカラー・グラフィック表示システムまたは IBMパーソナルシステム/55日本語3270 PCで使用可能な拡張 フィールド属性やwrite structured fieldをサポートする o 3270グラフィック・データ・ストリームをサポートする ________________________ 注意 ________________________ この日本語3270 DSPIプロダクトを使用して分散データベー スを更新しないてください。セッションを失敗した場合障害 が生じたポイントから,セッションを再開することができな いため,この日本語3270 DSPIプロダクトは分散データベー スの更新には向いていません。 ______________________________________________________ _________________________________________________________________ 1.2 インタフェース・アプリケーション例 日本語3270 DSPIを使用すると,LUタイプ2セッションで2次側論理 装置(SLU)ハーフ・セッション・パートナーとして動作するアプリ ケーションを作成することができます。たとえば,次のようなア プリケーションを作成できます。 o IBM 3270端末の機能をエミュレートするアプリケーション o 3270拡張データ・ストリームを使用してIBMホスト上で動作 する他社のソフトウェア・プロダクトと通信するファイル転 送アプリケーション o 3270端末入出力用に設計された既存のIBMアプリケーション と通信する必要のある OSF/1アプリケーション 図 1-1は,日本語3270 DSPIとDEC SNA Gatewayを使用してIBMホス ト上のトランザクションに接続する方法を示しています。 1-2 製品の概要 製品の概要 1.2インタフェース・アプリケーション例 図 1-1 DECnet/SNAネットワークを通したIBMとOSF/1の接続例 _________________________________________________________________ 1.3 データ・ストリーム・モード データ・ストリーム・モードでは,日本語3270 DSPIは,LU-LUタ イプ2セッションを確立して未解析の3270拡張データ・ストリーム を送受信します。このモードでは,データ・フロー制御レイヤま でのSNAサービスを実行します。次のことは,OSF/1ユーザ側で行 ってください。 o データ・ストリームを指令や副指令に合わせて解析する。デ ータ・ストリームについては,『IBM 3270情報表示システム 3274制御装置解説とプログラマーの手引き』,IBM注文番号 N:GA23-0061または『IBM 3270漢字データ・ストリーム』, IBM注文番号N:GA18-2980を参照のこと。 o 画面イメージを構築して処理する(必要な場合)。 o 画面イメージからデータ・ストリームを構築し,それをIBM ホストに送信する。 _________________________________________________________________ 1.4 フィールド・モード フィールド・モードでは,日本語3270 DSPIは,受信したデータ・ ストリームを仮想画面イメージに変換します。このモードでは, プレゼンテーション・サービス・レイヤまでのSNAサービスを実行 します。アプリケーションは,日本語3270 DSPIを呼び出して指定 されたフィールドの読取りや書込みをすることによって画面を更 新できます。また更新済み画面をIBMホストに返すため,画面イメ ージを3270拡張データ・ストリームに変換して送信します。 製品の概要 1-3 製品の概要 1.5 SNAの概念の理解 _________________________________________________________________ 1.5 SNAの概念の理解 日本語3270 DSPIを使用すると,各種のアプリケーションを開発す ることができます。日本語3270 DSPIがSNAプロトコル・メッセー ジを送受信したり解釈したりするので,ユーザはSNAメッセージの 形式やプロトコルに注意を払う必要はありません。したがって, 本書を読む際は,SNAの一般的な知識があれば十分です。次の概念 を理解しておくと,この日本語3270 DSPIプロダクトを効率良く使 用するのに役立ちます。 o IBM LUタイプ2セッション−LUタイプ2セッションは3270タイ プの表示を提供し,3270拡張データ・ストリームを使用して データを送信します。 o 半2重フリップフロップ通信−相互に通信し合う2つのLU は,このメカニズムを使用してデータの送信側と受信側を交 替します。 o セッション処理状態−この状態は,SNA指令,応答,ユー ザ・データ送信の処理を制御します。 o ブラケッティング−SNAがデータを論理要素にまとめる方法 (完全なトランザクション)。 o チェインニング−SNAが大きなデータ・ブロックをいくつか に分割して送信する方法。 これらの概念についての詳細は以下のマニュアルを参照してくだ さい。 o 『IBM 3270情報表示システム3274制御装置解説とプログラマ ーの手引き』,IBM注文番号N:GA23-0061 o 『Systems Network Architecture Sessions Between Logical Units』,IBM注文番号GC20-1868 1-4 製品の概要 2 _________________________________________________________________ 日本語3270 DSPIの使用方法 日本語3270 DSPIは,OSF/1アプリケーションがLU-LUタイプ2セッ ションで次のような動作を要求するために呼び出されるいくつか のプロシージャから構成されています。 o IBMアプリケーションとのセッションを確立する o 3270データ・ストリームを送受信する o 仮想3270画面イメージを送受信する o 3270画面イメージの中のフィールドを読み取ったり書き込ん だりする o IBMアプリケーションとのセッションを終了する _________________________________________________________________ 2.1 LU-LUタイプ2セッションの確立 SNAネットワークのエンド・ユーザは,それぞれの論理装置(LU) がSNAプロトコルに従ってLU-LUセッションを確立してからでない と,メッセージを交換できません。 LUは,システム・サービス制御点(SSCP)に他のLUとのセッション を要求できます。このためには,要求側のLUが,希望するLUを指 定する自己開始(INITS)要求をSSCPに送信します。SSCPは,セッシ ョンの1次LU (PLU)と2次LU (SLU)になるLUを選択してから,PLUに 制御開始(CINIT)要求を送信します。PLUは次にBIND要求をSLUに送 信して,セッションの条件を提案します。SLUは,BIND要求を調べ て,そのセッションを受け入れるか,または拒否します。 DEC SNA Gatewayが関わるタイプ2セッションでは,日本語3270 DSPIはユーザ・アプリケーションのLU機能を実行します。このよ うなセッションでは,日本語3270 DSPIは常にSLUになります。こ れは,日本語3270 DSPIが常にBINDの受信側になることを意味して います。 日本語3270 DSPIの使用方法 2-1 日本語3270 DSPIの使用方法 2.1 LU-LUタイプ2セッションの確立 OSF/1アプリケーションは,LUタイプ2セッションを確立する為ア クティブ接続要求とパッシブ接続要求の2つの種類の要求を日本語 3270 DSPIに出すことができます。 o アクティブ接続要求は,指定されたIBMアプリケーション とのセッションを開始するのに,OSF/1アプリケーションが INITSをSSCPに送信したいことを日本語3270 DSPIに知らせま す。 o パッシブ接続要求は,OSF/1アプリケーションがIBMアプリケ ーションによって開始されたセッションをいつでもスタート できることを日本語3270 DSPIに知らせます。 _________________________________________________________________ 2.2 セッションとの接続 アクティブまたはパッシブ接続要求を出すには,OSF/1アプリケー ションは jsna3270_request_connectプロシージャを呼び出しま す。入力パラメータには,アプリケーションが日本語3270 DSPIに 渡す次のような情報が入っています。 o アクティブ/パッシブ接続指示 アクティブ接続要求なのか,パッシブ接続要求なのかを示す 値。 o モード・タイプ指示 データ・ストリーム・モード接続なのか,フィールド・モー ド接続なのかを示す値。データ・ストリーム・モードについ ては第2.4節に,フィールド・モードについては第2.5節に説 明があります。 o ゲートウェイ・ノード名 OSF/1アプリケーションがセッションを確立するのに使用す るゲートウェイ・ノードの名前。 o IBMアクセス情報 この省略可能なパラメータは,IBMホストにアクセスするの に必要な省略時の情報リストに関連付けられた識別子です。 これが省略されているときは,パラメータ・リストは必要な 値を明示的に指定しなければなりません。アクセス名とIBM アクセス情報について詳しくは,第3.2節を参照してくださ い。 2-2 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.2セッションとの接続 o ブロック・モードまたは非ブロック・モード アプリケーションは,ブロック・モードで動作しているの か,非ブロック・モードで動作しているのかを示さなくては なりません。 jsna3270_request_connectプロシージャの出力パラメータには, IBMシステムから次の情報を受信するロケーションが入っていま す。 o セッション識別子 日本語3270 DSPIがセッションに割り当てたユニークな識別 子を受信するロケーション。アプリケーションがこのセッシ ョン上での拡張データ・ストリームの送受信,シグナル要求 の送信,セッションの終了を要求するたびに,呼び出し時の パラメータ・リストにセッション識別子を入れなくてはなり ません。 o ステータス・ベクタ 日本語3270 DSPIがユーザに完全なステータス情報を提供す るためにOSF/1アプリケーションが割り当てるデータ・タイ プSTATUS_RTNとサイズSNA3270_C_SV_SIZEのベクタ。詳しく は,第3.1.2項を参照してください。 jsna3270_request_connectプロシージャのパラメータ・リスト は,第5章を参照してください。 2.2.1 セッションへのアクティブ接続の要求 セッションの典型的なアクティブ要求は,次のようにして行われ ます(図 2-1を参照)。 1. OSF/1アプリケーションがjsna3270_request_connectプロシ ージャを呼び出し,アクティブ要求指示を設定して,他の必 須パラメータを提供する。 2. 日本語3270 DSPIが接続要求をDEC SNA Gatewayに送信する。 3. ゲートウェイがINITS要求をSSCPに送信する。SSCPはPLUに知 らせる。 4. PLUがBIND要求をゲートウェイに送信する。 日本語3270 DSPIの使用方法 2-3 日本語3270 DSPIの使用方法 2.2セッションとの接続 5. ゲートウェイがBIND要求を日本語3270 DSPIに送信する。日 本語3270 DSPIはBINDを調べて,セッションを受け入れ,応 答をゲートウェイに送信する。 6. ゲートウェイが肯定応答をPLUに送信する。 7. 日本語3270 DSPIは,ステータス・ベクタにステータスを設 定してユーザに制御を戻すことによって,接続要求を完了す る。 図 2-1 An Active Connect Request 2.2.2 セッションへのパッシブ接続の要求 セッションの典型的なパッシブ要求は,次のようにして行われま す。 1. OSF/1アプリケーションがjsna3270_request_connectプロシ ージャを呼び出し,パッシブ要求指示を設定して,他の必須 パラメータを提供する。 2. 日本語3270 DSPIがDEC SNA Gatewayを介してIBMホストとの SSCP-LUセッションを確立してから,制御をOSF/1アプリケー ションに戻す。 3. OSF/1アプリケーションがUSS画面を受信するためにNOTIFY OFFLINEとNOTIFY ONLINEをIBMホストに送信するか,または PLUからのバインドを待つ。 4. OSF/1アプリケーションがUSS画面を受信することを選択した 場合には,ここでIBMのアプリケーションを選択する。 5. ある時点で,PLUがBIND要求をゲートウェイに送信する。 6. ゲートウェイがBIND要求を日本語3270 DSPIに送信する。 日本語3270 DSPIは,BIND要求を調べてセッションを受け入 れ,ゲートウェイに知らせる。 7. ゲートウェイが肯定応答をPLUに送信する。 2-4 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.2セッションとの接続 8. 日本語3270 DSPIは,ステータス・ベクタにステータスを設 定してOSF/1アプリケーションに制御を戻すことによって, 接続要求を完了する。 _________________________________________________________________ 2.3 接続モードの指定方法 日本語3270 DSPIでは,OSF/1アプリケーションとIBMアプリケーシ ョン・サブシステムとの間に確立されるセッションに,データ・ ストリーム・モードとフィールド・モードの2つの接続モードを用 意しています。 o データ・ストリーム・モードでは(本書では,ストリーム・ モードと呼ぶことが多い),OSF/1アプリケーションとアプ リケーション・サブシステムが完全な3270拡張データ・スト リームを交換します。データ・ストリーム・モードについて は,第2.4節で説明します。 o フィールド・モードでは,OSF/1アプリケーションとアプリ ケーション・サブシステムは,各種のデータ・フィールド から構成される仮想画面イメージの形式でデータを交換し ます。フィールド・モードについては,第2.5節で説明しま す。 _________________________________________________________________ 2.4 データ・ストリーム・モード IBM社は完全な3270拡張データ・ストリームを,通常は完全な画面 バッファを形成するアプリケーション・データ,指令,構造化フ ィールド機能,副指令,制御情報のシーケンスとして定義してい ます。完全なストリームは,クラスタ・コントローラとホスト間 で送信されます。OSF/1アプリケーションは,3270データ・ストリ ームの指令と副指令を解析します。3270拡張データ・ストリーム についての詳細は,『IBM 3270情報表示システム3274制御装置解 説とプログラマーの手引き』を参照してください。 3270拡張データ・ストリームをIBMホストとの間で交換する ためにセッションを確立するには,OSF/1アプリケーション は,jsna3270_request_connectプロシージャを呼び出して,パ ラメータ・リストの接続モード指示をデータ・ストリーム・モー ドに設定します。 日本語3270 DSPIの使用方法 2-5 日本語3270 DSPIの使用方法 2.4データ・ストリーム・モード 一度セッションが確立されれば,OSF/1アプリケーションは日本語 3270 DSPIによって提供されるプロシージャを呼び出すことによ り,3270拡張データ・ストリームを送受信することができます。 2-6 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.4データ・ストリーム・モード 2.4.1 3270データ・ストリームの送信方法 3270データ・ストリームを送信するには,OSF/1アプリケーション は,jsna3270_transmit_stream プロシージャを呼び出してセッシ ョンを指定し,完全なまたは部分的なデータ・ストリームが入っ ているバッファを指定します。OSF/1アプリケーションは,SNAヘ ッダ情報用にバッファの先頭に余裕を残しておかなくてはなりま せん。この時残さなければならない予備のバイト数は,シンボル SNA_C_HDRSIZEによって定義されます。 o OSF/1アプリケシーョンが,バッファに完全なデータ・スト リームが入っていることを示している場合には,日本語3270 DSPIがデータを送信して,OSF/1アプリケーションのturn to sendを解除します。 o アプリケシーョンが部分的なデータ・ストリームしかもた ない場合には,日本語3270 DSPIはデータを送信しますが, OSF/1アプリケーションがIBMホストへデータを送る為のturn to sendは,解除されません。 プロシージャが完了すれば,バッファはただちに再使用できま す。 通常のLUタイプ2の通信では,OSF/1アプリケーションとIBMアプリ ケーション・サブシステムはデータ・ストリームの送信,受信を毎 回交替します。ただし,場合によっては,OSF/1アプリケーション が2つ以上の連続したストリームを送信しなければならないことが あります。もしOSF/1アプリケーションがturn to sendを解除して しまった場合,アプリケーションはさらに別のストリームを送信 することを次のいずれかの方法で要求できます。 o 最後の送信が終了したときにステータスがSNA3270_C_OKで, かつSDB構造のSENDステートがSNA3270_C_CAN_SENDの場合に は,OSF/1アプリケーションは別のストリームを送信できま す。 o 最後の送信が終了したときにステータスがSNA3270_C_OKの場 合には,今度はIBMアプリケーションがデータをOSF/1アプリ ケーションに送信する番です。OSF/1アプリケーションは, IBMアプリケーションに対して,データを送信する順番を譲 るようSIGNAL要求をIBMホストに送信できます。 日本語3270 DSPIの使用方法 2-7 日本語3270 DSPIの使用方法 2.4データ・ストリーム・モード 2番目の場合には,IBMアプリケーションはSIGNAL要求を引 き受ける必要はありません。したがって,日本語3270 DSPI は,jsna3270_transmit_sna_cmd プロシージャ・コールから戻 る前に誰が送信できるのかを示すフラグの受信を待っていませ ん。このため,OSF/1アプリケーションには,IBMアプリケーシ ョンがSIGNAL要求を受け入れたのか,送信の順番を譲ったのか が知らされません。アプリケーションは,順番を待たずに送信 しようとすると,常にエラーを受け取りますので,SIGNAL要求 を送信したら,アプリケーションは受信を呼び出して,最終的に SNA3270_C_OKで終了するようにしなければなりません。 2.4.2 3270拡張データ・ストリームの受信方法 3270拡張データ・ストリームを受信するには,OSF/1アプリケーシ ョンは,jsna3270_receive_stream プロシージャを呼び出して, セッションを指定します。日本語3270 DSPIによって受信用バッフ ァが割り当てられるため,アプリケーションは,受信用バッファ のアドレスを得るためのバッファ・ポインタ・アドレスを日本語 3270 DSPIに渡さなくてはなりません。 最も簡単な例では,日本語3270 DSPIは,受信したデータ・ストリ ームのアドレスをパラメータを介してアプリケーションに返し, 完全な3270データ・ストリームが受信されたことを示すステー タス・コードを返します。受信したデータ・ストリームの最初の SNA_C_HDRSIZEバイトにはSNAヘッダ情報が入っていますが,ユー ザはこれを無視できます。 日本語3270 DSPIには,ブロッキングと非ブロッキングの2つの受 信タイプがあります。OSF/1アプリケーションがブロック・モード を指定しているときには,何らかのデータを受信するまで受信は 返りません。OSF/1アプリケーションが非ブロック・モードを指定 しているときには,日本語3270 DSPIは,受信するデータがなけれ ば,SNA3270_S_OK_SELECTを返します。この場合,アプリケーショ ンは,日本語3270 DSPIがデータ・ストリームを受信するまで,さ らにjsna3270_receive_streamプロシージャを呼び出さなくてはな りません。 2-8 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.4データ・ストリーム・モード 2.4.2.1 ストリームの確認応答 一度完全なストリームが受信されたら,OSF/1アプリケーションは 受信したデータが受諾可能か受諾不可能かをIBMアプリケーショ ン・サブシステムに知らせなくてはなりません。このためには, OSF/1アプリケーションは jsna3270_acknowledgeプロシージャを 呼び出して,肯定または否定応答を指定します。 アプリケーションが,jsna3270_acknowledgeプロシージャを呼び 出す前に jsna3270_transmit_streamプロシージャを呼び出すと,日本語 3270 DSPIは暗黙の肯定応答を実行します。つまり,このプロシー ジャを使用する必要があるのは,受信したストリームに否定応答 するときだけです。 2.4.2.2 複数の連続ストリームの送信要求を受信した場合 通常のLUタイプ2の通信では,OSF/1アプリケーションとIBMアプリ ケーション・サブシステムは,データ・ストリームの送信,受信を 毎回交替します。 ただし,IBMサブシステムは,いつでもデータ・ストリームを送信 した後ただちに別のデータ・ストリームを送信する要求を日本語 3270 DSPIに出すことができます。IBMアプリケーションが送信の 順番を譲ってしまった時には,次のいずれかの方法でさらに別の ストリームを送信するように要求できます。 o 最後の送受信が完了したときにステータスがSNA3270_C_OK, 送信ステートがSNA3270_C_ CAN_SEND,SDB構造のブラケッ ト・ステートがSNA3270_C_BETBの場合には,IBMアプリケー ションは別のストリームの送信をするためにBIDできます。 日本語3270 DSPIは,BID要求を受け取ると,データをいつ受 信したかをOSF/1アプリケーションに通知します。OSF/1アプ リケーションは,BID要求を受信する前に jsna3270_lock_ screenプロシージャを呼び出すことにより,日本語3270 DSPIにBIDを拒否させることができます。jsna3270_lock_ screenを使用すると,OSF/1アプリケーションは,OSF/1アプ リケーションがデータの送信準備をしている間にPLUがさら にデータを送信しないようにできます。一度BID要求が受け 入れられてしまうと,jsna3270_lock_screenプロシージャへ のコールは効果がなくなります。 日本語3270 DSPIの使用方法 2-9 日本語3270 DSPIの使用方法 2.4データ・ストリーム・モード o 最後の受信が完了したときにステータスがSNA3270_OKの場合 には,今度はOSF/1アプリケーションが送信する番です。IBM は,turn to sendを譲るようにOSF/1アプリケーションに求 めるSIGNAL要求を送信することができます。 SIGNAL要求を受信したときには,日本語3270 DSPIは要求を受け入 れてIBMアプリケーションにturn to sendを譲らなければなりませ ん。この場合,日本語3270 DSPIは,turn to sendを譲ってしまっ たことをOSF/1アプリケーションに通知します。OSF/1アプリケー ションは jsna3270_lock_screenプロシージャを呼び出すことがで きないため,日本語3270 DSPIにSIGNAL要求を拒否させます。 _________________________________________________________________ 2.5 フィールド・モード フィールド・モードでは,日本語3270 DSPIは,文字ベクタと属性 ベクタの2つの表示ベクタを使用して,データを3270ブロック・モ ード画面イメージで表します。 ブロック・モード画面イメージは,1つ以上のフィールドから構 成されます。2つのベクタにはVT100タイプの端末上で3270ブロ ック・モード画面イメージを生成するのに必要なすべての情報が 入っており,それらは仮想3270画面イメージを表しています。デ ータ・ストリームにwrite structured fieldが入っている場合, それぞれのwrite structured fieldはコールバック・ルーチンを 使用してOSF/1アプリケーションと日本語3270 DSPI間で渡されま す。コールバック・ルーチンについては,第3.3節を参照してくだ さい。 仮想3270画面イメージや構造化フィールドを送受信するためのセ ッションを確立するには,OSF/1アプリケーションは,jsna3270_ request_connectプロシージャを呼び出して,パラメータ・リスト の中の接続モード指示をフィールド・モードに設定します。OSF/1 アプリケーションは,jsna3270_request_connectプロシージャを 呼び出す前に,文字ベクタ,属性ベクタ,ならびに次のデータ構 造にメモリを割り当てなくてはなりません。 o スクリーン・ディスクリプタ・ブロック構造(SDB)。送受信 ステート,チェインニング,ブラケットステートなどのベク タについての情報を提供する。 2-10 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.5フィールド・モード o フィールド・ディスクリプタ・ブロック構造(FDB)。どのフ ィールドを読み取ったり書き込んだりするかを識別する。 o 端末特性ブロックのフラグと端末特性ブロック(TCB)。OSF/1 アプリケーションがIBMホストへの照会応答についての情報 を日本語3270 DSPIに知らせるときに使用する。 日本語3270 DSPIは,アプリケーションによって作成されたデータ 構造を jsna3270_request_connectプロシージャの一部として初期 化します。OSF/1アプリケーションは,このプロシージャを呼び出 す前に,sdb.scr_sizeを文字および属性ベクタのサイズに初期化 して,日本語3270 DSPIが画面イメージとして割り当てるためのメ モリ量を確保できるようにもします。 セッションが確立されると通常,OSF/1アプリケーションは,次の 一連の操作を要求するコールを出します。 o IBMホストのアプリケーション・サブシステムから3270画面 イメージを受信する。 o 画面イメージの中のフィールドを読み取る。 o 画面イメージの中のフィールドに書き込む。 o 画面イメージをIBMホストに送信する。 2.5.1 文字ベクタ 文字ベクタには,画面イメージに表示される文字に対応する一連 の8ビットEBCDIC文字が入っています。それぞれの文字には,画面 位置に対応するベクタ・アドレスが割り当てられています。 図 2-2 文字ベクタ 日本語3270 DSPIの使用方法 2-11 日本語3270 DSPIの使用方法 2.5フィールド・モード ________________________ 注意 ________________________ 画面位置は,通常,0から始まる列と桁から成るxとyの座標 によって記述されます。これらの座標をベクタ・アドレスに 変換するには,次の公式を使用します。 i = cx+y ここで,iはベクタ位置を,cはディスプレイ画面の桁数を表 しています。たとえば,80桁からなるディスプレイ画面で は,列4(x=4),桁21(y=21)にある文字は,ベクタ位置で は80×4+21,すなわち341となります。 ______________________________________________________ 2.5.2 拡張属性ベクタ 属性ベクタは,3270拡張データ・ストリームの中の拡張フィール ド属性構造を使用して日本語3270 DSPIによって構築されます。属 性ベクタは,ext_attr_def_dbcs構造の配列から構成されます。 それぞれのエントリは,文字ベクタの中の対応する文字の属性を 表しています。たとえば,データ構造の中の各フィールドは,文 字がフィールドの先頭に位置しているかどうか,保護か,無保護 か,IBMホストまたはOSF/1アプリケーションによって変更された かどうかを表しています。 属性ベクタは,次のようなフィールドの拡張属性も定義していま す。 o 拡張強調表示 o 拡張カラー o 文字セット o 罫線 o 透過 o 漢字入力可能 以下の4つの項で示す表は,拡張強調表示,拡張カラー,文字セ ット,罫線,漢字入力可能の各属性に指定できる値を示していま す。 2-12 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.5フィールド・モード 例 2-1は,拡張フィールド属性データ構造を示しています。 例 2-1 拡張フィールド属性データ構造 /* * Extended Field Attribute Definition */ typedef unsigned int BIT; typedef unsigned char UINT8; struct ext_attr_def_dbcs { BIT attr_mdt : 1; /* Modified Data Tag */ BIT attr_fil1 : 1; /* Reserved Field */ BIT attr_dsp : 2; /* Display */ BIT attr_num : 1; /* Numeric Field */ BIT attr_pro : 1; /* Protected Field */ BIT attr_grh : 2; /* graphic converter */ BIT attr_mbh : 1; /* Modified by Host */ BIT attr_sof : 1; /* Start of field */ BIT attr_ext : 1; /* have the ext attrs changed */ BIT attr_sosi : 1; /* SO/SI creation enabled/disabled */ BIT filler : 4; /* word align */ UINT8 attr_hlt; /* extended highlighting */ UINT8 attr_btrn; /* background transparency */ UINT8 attr_fcol; /* forground color */ UINT8 attr_bcol; /* background color */ UINT8 attr_chs; /* character set */ union { struct eattr_bits attr_bits; UINT8 attr_fbit; } attr_fb; /* field bits */ }; 日本語3270 DSPIの使用方法 2-13 日本語3270 DSPIの使用方法 2.5フィールド・モード 2.5.2.1 拡張強調表示 この属性タイプは,フィールドまたは文字の強調表示属性を表し ます。表 2-1は,フィールド値とそれに関連する属性を示してい ます。 表 2-1 拡張強調表示設定 ___________________________________________________________ 値____________________拡張強調表示属性_____________________ SNA3270_C_DEF_HLT 省略時 SNA3270_C_DEF_NORMAL 普通輝度 SNA3270_C_BLINK 明滅 SNA3270_C_REVERSE 反転表示 SNA3270_C_UNDRSCR_____下線_________________________________ 2.5.2.2 拡張カラー この属性タイプは,フィールドまたは文字のカラー属性を表して います。表 2-2は,フィールド値とそれに関連する属性を示して います。 表 2-2 カラー設定 ___________________________________________________________ 値____________________拡張カラー属性_______________________ SNA3270_C_DEF_COL 省略時 SNA3270_C_BLUE 青 SNA3270_C_RED 赤 SNA3270_C_PINK ピンク SNA3270_C_GREEN 緑 ___________________________________________________________ (次ページに続く) 2-14 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.5フィールド・モード 表 2-2 (続き) カラー設定 ___________________________________________________________ 値____________________拡張カラー属性_______________________ SNA3270_C_TURQUOISE 空色 SNA3270_C_YELLOW 黄 SNA3270_C_NEUTRAL_____白___________________________________ 2.5.2.3 文字セット この属性タイプは,フィールドまたは文字を表示するために装置 が使用する文字セットを表しています。表 2-3は,フィールド値 とそれに関連する文字セット属性を示しています。 表 2-3 文字セット ___________________________________________________________ 値____________________文字セット属性_______________________ SNA3270_C_DEF_CHS 省略時文字セット(半角文字) SNA3270_C_CHS_APL APL文字 SNA3270_C_CHS_KANJI___漢字_________________________________ 文字セットの定義については,『IBM Information Display System Data Stream Programmers Reference』を参照してくだ さい。 2.5.2.4 罫線 罫線は,画面やプリントアウトを読み取りやすくするための,水 平線と垂直線の組み合わせによるフィールド・フレームの表示お よび印刷機能です。図 2-3は,罫線属性構造を示しています。 日本語3270 DSPIの使用方法 2-15 日本語3270 DSPIの使用方法 2.5フィールド・モード 図 2-3 罫線属性構造 2-16 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.5フィールド・モード 2.5.2.5 透過 透過属性は,文字を取り巻くスペースを透過,または非透過と指 定できます。 透過属性については,『IBM Information Display System Data Steram Programmers Reference』を参照してください。 2.5.3 スクリーン・ディスクリプタ・ブロック OSF/1アプリケーションは,要求されたフィールド・モード・セッ ションごとに,スクリーン・ディスクリプタ・ブロック(SDB)とい われるデータ構造を割り当てます。日本語3270 DSPIは,このブロ ックを使用することにより,表示ベクタ中にある3270画面イメー ジについての情報をアプリケーションに提供します。それぞれの SDB構成要素について以下に簡単に説明します。 o Current cursor address−OSF/1アプリケーションが jsna3270_read_fieldと jsna3270_write_fieldプロシージャを使用しているときに は,日本語3270 DSPIはこのアドレスを自動的に更新しま す。OSF/1アプリケーションが表示ベクタを直接に変更する 場合は,カーソル・アドレスも更新しなければなりません。 最初に,IBMシステムはこのフィールドの値をデータ・スト リーム中のInsert Cursor(IC)副指令によって設定します。 o Current screen size−ディスプレイの全文字数。 o Default columns−BIND時に指定される省略時の桁数。 o Default rows−BIND時に指定される省略時の列数。 o Alternate columns−BIND時に指定される代替桁数。 o Alternate rows−BIND時に指定される代替列数。 o Current columns−ディスプレイの現在の全桁数。 o Current rows−ディスプレイの現在の全列数。 o Write control character−3270データ・ストリームからの 書込み制御文字。この値は,アプリケーションが変更しては なりません。 o Flags that describe the action that affected the screen image−実際のデータ構造は付録Fに示してありま す。 日本語3270 DSPIの使用方法 2-17 日本語3270 DSPIの使用方法 2.5フィールド・モード o Partition−区画情報。 o Send state−現在のセッション送信状態。 o Chain state−受信チェイン状態。 o Bracket state−現在のブラケット状態。 o Screen ownership−画面の所有権。 o Partition state−区画状態。 o Character vector−文字ベクタへのポインタ。 o Attribute vector−属性ベクタへのポインタ。日本語3270 DSPIによって予約されています。 o Extended attribute vector−拡張属性ベクタへのポイン タ。 o Field desciptor block−フィールド・ディスクリプタ・ブ ロック(FDB)へのポインタ。 o Character sets−文字セット。 o Terminal characteristics block−端末特性ブロック(TCB) へのポインタ。 o TCB flags−TCBフラグへのポインタ。 o OEM devices−OEM装置数。最大値は2。 o Ports−ポート数。最大値は4。 o Graphic character sets−グラフィック文字セット数。最大 値は8。 o Alpha numeric character sets−英数文字セット数。最大値 は9 。 SDBを構成するフィールドの実際のデータ構造は,付録 Eに示して あります。 2-18 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.5フィールド・モード 2.5.4 書込み制御文字データ構造 書込み制御文字(WCC)は,端末アラームを鳴らしたりキーボードを 使用可能にしたりする機能を実行するのに使用されます。図 2-4 は,WCCデータ構造を示しています。詳細は,付録 Eを参照してく ださい。 図 2-4 WCCデータ構造 2.5.5 3270画面イメージの受信方法 OSF/1システム・アプリケーションは,jsna3270_receive_ screenプロシージャを呼び出して,IBMホストから仮想3270画 面イメージとwrite structured fieldデータを受信します。日本 語3270 DSPIは,セッションに指定された表示ベクタに完全な仮想 画面イメージを配置することによってこれに応答します。構造化 フィールドが関係するときには,OSF/1アプリケーションはwrite structured fieldを受信して処理するためのコールバック・ルー チンを提供しなければなりません。日本語3270 DSPIは,セッショ ンに指定された表示ベクタに完全な仮想画面イメージを配置しま す。 表示ベクタが画面イメージを受信している間は,ユーザがベクタ の中の情報を変更できないようにSDB構造のフラグ・フィールドに 入力禁止フラグが設定されます。日本語3270 DSPIが表示ベクタに 画面イメージを置くと,OSF/1アプリケーションは,表示ベクタ の中のフィールドを読み取ったり変更したりできるようになりま す。 jsna3270_receive_stream と同様に,jsna3270_receive_screen プロシージャもブロックおよび非ブロックの両方の受信モードを サポートします。 日本語3270 DSPIの使用方法 2-19 日本語3270 DSPIの使用方法 2.5フィールド・モード ________________________ 注意 ________________________ jsna3270_read_fieldとjsna3270_write_fieldプロシージャ は,キーボード・リストア・ビットがオフに設定されてい るときには,ベクタ変更を許可しません。jsna3270_read_ fieldと jsna3270_write_fieldを使用しない場合には, OSF/1アプリケーションがこの機能を行う必要があります。 たとえば,データの受信が続くときには,ユーザは,不完全 な画面を変更することになります。 ______________________________________________________ _________________________________________________________________ 2.6 3270画面イメージからフィールドを検索する方法 3270仮想画面イメージからフィールドを検索するには,OSF/1アプ リケーションは,jsna3270_read_field プロシージャをフィール ド・ディスクリプタ・ブロック(FDB)とともに呼び出します。FDB は,jsna3270_request_connectプロシージャによって指定されて おり,セッション全体で使用されます。FDBは,ターゲット・フィ ールドのオフセット・アドレス,日本語3270 DSPIがフィールドの 位置を検索するのに使用する属性,希望する操作を指定するシン ボル等を格納するために使用されます。OSF/1アプリケーション は,検索によって得られたデータ用のバッファも指定します。 付録 Eの例 E-7に,フィールド・ディスクリプタ・データ・ブロ ックの構造を示します。 2.6.1 FDBのフィールド FDB中のフィールドについて以下に説明します。 o Requested extended attributes value−このフィールドは Requested attributes maskフィールドとともに働きます。 アプリケーションは,検索したい属性フィールドをFDBに設 定します。たとえば,数字用フィールドを探すには,OSF/1 アプリケーションはfield_def.req_ext_attrをセットしま す。 2-20 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 o Requested extended attributes mask−このフィールドは Requested attributes valueフィールドと一緒に働きます。 アプリケーションがどの属性をチェックしようとしているの かを指定するのに使用されます。 このフィールドがセットされていると,日本語3270 DSPI は,Requested attributes valueフィールドに指定された値 と該当する属性とを比較します。このフィールドがクリア されていると,日本語3270 DSPIは該当する属性を無視しま す。たとえば,jsna3270.hファイルを使用して定義された FDBとともにC言語で無保護数字フィールドを指定するには, 要求する値および属性フィールドを次のように設定します。 field_def.ext_attr_mask.attr_pro = TRUE; field_def.req_ext_attr.attr_pro = FALSE; field_def.ext_attr_mask.attr_num = TRUE; field_def.req_ext_attr.attr_num = TRUE; この例では,マスクは,ユーザが数字および保護属性のみに 関心をもっていることを指定し,値は,数字属性フラグをセ ットして,保護属性フラグをクリアすることを指定していま す。 また,拡張属性を検索する場合は,次のように設定します。 【漢字フィールドを検索する場合】 field_def.ext_attr_mask.attr_chs= MASK; field_def.req_ext_attr.attr_chs= SNA3270_C_CHS_KANJI; 【漢字入力可能フィールドを検索する場合】 field_def.ext_attr_mask.attr_kani= TRUE; field_def.req_ext_attr.attr_kani = TRUE; Requested extended attribute maskをマスクする時は,各 拡張属性によってjsna3270.hで定義されている以下の定数を 使用してください。 日本語3270 DSPIの使用方法 2-21 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 表 2-4 拡張属性とマスク定数 ___________________________________________________________ FDBフィー 拡張属性__________ルド________マスク定数___________________ 漢字入力可能 attr_sosi TRUE (or 1) 罫線 attr_fo MASK (or 0xFF) 拡張カラー attr_fcol MASK (or 0xFF) 透過 attr_btrn MASK (or 0xFF) 拡張強調表示 attr_hlt MASK (or 0xFF) 文字セット attr_chs MASK (or 0xFF) 変更フィールド____attr_ext____MASK_(or_0xFF)_____________ o Requested operation−アプリケーションが実行したい操作 を示しています。表 2-5に,FDBの操作選択フィールドに指 定できるシンボルとその意味を示します。 o Requested displacement−フィールドの検索や読取りを始め たいオフセット。 o Reserved for user−ポインタやカウンタなどの情報を入れ ることのできるユーザ用に予約されたフィールド。 o Actual attributes−読み取った,または書き込もうとして いるフィールドの実際の基本属性と拡張属性。 o Actual displacement−検索したり読み取ったりしたフィー ルドの実際のオフセットがここに返されます。 o Byte count−フィールドから読み取った,またはフィールド に書き込もうとしている実際のバイト数。 o Last-field-read displacement−日本語3270 DSPIによって 読み取られた最後のフィールドのオフセット。このフィール ドは,sel_read_nextまたはsel_search_next操作の検索操作 に使用されます。 2-22 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 表 2-5は,FDBの操作選択フィールドのシンボルとそれに対応する 意味を示しています。FDBの実際のデータ構造については,付録 E を参照してください。 表 2-5 フィールド・ディスクリプタ・ブロックの操作選択フィー ルドのシンボルと意味 ___________________________________________________________ シンボル__________________意味_____________________________ SNA3270_C_READ 指定したオフセットを読み取る SNA3270_C_SEARCH 指定したオフセットから検索する SNA3270_C_READ_NEXT 次のフィールドを読み取る SNA3270_C_SEARCH_NEXT_____次のフィールドから検索する_______ 2.6.2 読取り操作と検索操作の指定方法 OSF/1アプリケーションは,FDBを使用して,フィールドを検索す るために次のような読み取り操作と検索操作を指定できます。指 定されたdisplacementが常にフィールドの属性文字のアドレスに なるようにします。 o 指定されたオフセット・アドレスから始まるフィールドを読 み取る OSF/1アプリケーションは,オペレーションを指定するため に,Requested operationフィールドがreadに設定されたオ フセット・アドレスを含むFDBを提供します。オフセットが フィールドの先頭位置である場合には,日本語3270 DSPIは そのフィールドの内容を指定されたバッファに返します。オ フセットがフィールドの先頭位置でない場合には,日本語 3270 DSPIはSNA3270_S_BADOFFSETステータス値を返します。 o フィールドが指定された属性をもつときに,指定されたオフ セット・アドレスから始まるフィールドを読み取る 日本語3270 DSPIの使用方法 2-23 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 OSF/1アプリケーションは,オフセット・アドレス,属性の マスクと値,readに設定されたRequested operationフィー ルドが指定されているFDBを提供することによって,操作を 指定します。オフセットがフィールドの先頭位置であり,な おかつフィールドが指定された属性をもつ場合には,日本語 3270 DSPIはそのフィールドをバッファに返します。オフセ ットがフィールドの先頭に位置していない場合には,日本語 3270 DSPIはSNA3270_S_BADOFFSETステータス値を返します。 フィールドが指定された属性をもたない場合には,日本語 3270 DSPIはSNA3270_S_NOFIELDステータス値を返します。 o 次のフィールドを読み取る OSF/1アプリケーションは,操作を指定するためにRequested operationフィールド read_nextを設定したFDBを提供しま す。日本語3270 DSPIは次のフィールドを返します。最後に 読み取ったフィールドの後にフィールドがないときには,日 本語3270 DSPIはSNA3270_S_NOFIELDステータス値を返しま す。 o フィールドが指定された属性をもつ場合に,次のフィールド を読み取る OSF/1アプリケーションは,Requested operationフィールド がread_nextに設定され,属性のマスクと値が指定されてい るFDBを提供して,操作を指定します。次のフィールドが指 定された属性をもつときには,日本語3270 DSPIはそのフィ ールドを返します。そうでない場合には,日本語3270 DSPI はSNA3270_S_NOFIELDステータス値を返します。 o 指定されたオフセット・アドレスからフィールドの検索を始 める OSF/1アプリケーションは,Requested operationフィールド がsearchに設定され,オフセット・アドレスが指定されて いるFDBを提供して,操作を指定します。日本語3270 DSPI は,フィールドの先頭がみつかるまでこのオフセットから 順に画面イメージを検索します。そして見つかったフィー ルドをOSF/1アプリケーションに返します。指定されたオ フセットが範囲外の場合には,日本語3270 DSPIはSNA3270_ S_BADOFFSETステータス値を返します。指定されたオフセ ットの後に始まるフィールドがない場合には,SNA3270_S_ NOFIELDステータス値を返します。 o 指定されたオフセットから順に,指定された属性をもつフィ ールドの検索する 2-24 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 OSF/1アプリケーションは,オフセット・アドレス,属性の マスクと値,searchに設定されたRequested operationフィ ールドが指定されたFDBを提供して,操作を指定します。日 本語3270 DSPIは,指定されたオフセットから順に,画面イ メージを検索して指定された属性をもつフィールドを探しま す。指定されたフィールドがみつかると,それをOSF/1アプ リケーションに返します。指定されたオフセットが範囲外に ある場合には,日本語3270 DSPIはSNA3270_S_BADOFFSETステ ータス値を返します。日本語3270 DSPIがフィールドをみつ けられない場合には,SNA3270_S_NOFIELDステータス値を返 します。 o 最後に読み取ったフィールド以降のフィールドを検索する OSF/1アプリケーションは,Requested operationフィールド がsearch_nextに設定されたFDBを提供して操作を指定しま す。日本語3270 DSPIは,最後に読み取ったフィールド以降 のフィールドを順次検索します。画面イメージの中で,最後 に読み取ったフィールドの後に別のフィールドが存在する場 合には,日本語3270 DSPIはそれをOSF/1アプリケーションに 返します。そうでない場合には,SNA3270_S_NOFIELDステー タス値を返します。 o 最後に読み取ったフィールド以降に指定された属性をもつフ ィールドを検索する OSF/1アプリケーションは,属性のマスクと値,search_next に設定されたRequested operationフィールドが指定されて いるFDBを提供して,操作を指定します。日本語3270 DSPI は,最後に読み取ったフィールド以降に指定された属性をも つフィールドを順次検索します。画面イメージにこのような フィールドが存在するときには,日本語3270 DSPIはそれを 返します。そうでない場合には,SNA3270_S_NOFIELDステー タス値を返します。 2.6.3 FDBの使用例(1) 次に示すCプログラミングの例は,FDBの使用方法を示していま す。この項では,FDBを使用して典型的なIBMアプリケーション画 面からフィールドを取り出す方法を示します。 日本語3270 DSPIの使用方法 2-25 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 プログラム例は,IBMとのセッションを確立してFDBを提供するこ とから始まり,次に最初の無保護フィールドを探します。このサ ンプルOSF/1プログラムは AMNU IBMトランザクションを書き込み ます。これが終了すると,画面データ全体をIBMホストに送信しま す。ホストは,プログラムが操作の選択を行う為の情報を画面に 表示して応答します。プログラムは,最初の無保護フィールドを 検索し,次にABRW browseオプションを要求してから次の無保護フ ィールドを検索し,トランザクション番号をそのフィールドに書 き込みます。IBMホストは,browse画面を表示してこれに応答しま す。 ヘッダ・ファイルを読み込む プログラムは,最初に必要なヘッダ・ファイルを読み込みます。 #include #include フィールド・モード接続を要求する 次に,フィールド・モード接続要求を出します。NULLパラメータ は明示的なアクセス・パラメータなので,代わりにアクセス名が 使用されます。 2-26 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 . . . main() { . . . return_code = jsna3270_request_connect (&session_id, SNA3270_C_ACT, SNA3270_C_FIELD_MODE, SNA3270_C_BLOCK, transport, node_name, acc_name, NULL, /* LU name */ NULL, /* PLU name */ NULL, /* log mode */ NULL, /* user data */ NULL, /* authorization password */ char_vec, attr_vec, &fdb, &sdb, &tcb_flag, &tcb, status_ret); . . . AMNUトランザクション要求をIBMホストに送信する アプリケーションは,ここで,後述のwrite_next_fieldルーチン を呼び出して画面上に"AMNU" を書き込んでから,トランザクシ ョン名(AMNU)をIBMホストに送信します。図 2-5は,この時点で AMNUトランザクション画面がどのように表示されるかを示してい ます。 日本語3270 DSPIの使用方法 2-27 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 strcpy (field_data,"AMNU"); write_next_field (session_id,field_data,&fdb); return_code = jsna3270_transmit_screen (session_id, idx, SNA3270_C_BLOCK, SNA3270_C_AID_ENTER, status_ret, NULL); . . . 図 2-5 AMNUトランザクション画面 操作員画面を受信する 次の一連のソースコードによって,AMNU操作員画面を受信しま す。図 2-6を参照してください。 return_code = jsna3270_receive_screen (session_id, &idx, SNA3270_C_BLOCK, status_ret, NULL); . . . 2-28 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 図 2-6 AMNU操作員画面 browse操作を要求する 日本語3270 DSPIがこの画面を受信すると,アプリケーションは browse操作を要求します。write_next_fieldルーチンを呼び出 すことによって操作員の画面にある最初の無保護フィールドに "ABRW"を書き込んでから,次の無保護フーィルドに"000001"を書 込みます。 strcpy (field_data,"ABRW"); write_next_field (session_id,field_data,&fdb); /* * Write "000001" to the next unprotected field. */ strcpy (field_data,"000001"); write_next_field (session_id,field_data,&fdb); 図 2-7 オプション画面上のトランザクション・ナンバー・フィー ルド トランザクション画面をIBMホストに送信する 次に,アプリケーションは,図 2-7のようなトランザクション画 面をIBMホストに送信します。 日本語3270 DSPIの使用方法 2-29 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 return_code = jsna3270_transmit_screen (session_id, idx, SNA3270_C_BLOCK, SNA3270_C_AID_ENTER, status_ret, NULL); . . . IBMホストは,図 2-8のようなデータ画面を日本語3270 DSPIに送 信することによって応答します。 return_code = jsna3270_receive_screen (session_id, &idx, SNA3270_C_BLOCK, status_ret, NULL); . . . 図 2-8 AMNUファイルbrowse画面 2-30 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 read_fieldルーチンを使用してフィールドを検索する アプリケーションは,read_fieldルーチンを呼び出して,画面上 のすべての保護フィールドを検索します。この時点で,AMNU画面 上のフィールドはすべて保護フィールドのため,ルーチンはすべ てのフィールドを検索することができます。IBMホストから受信し たデータはすべて EBCDIC形式になっています。アプリケーション は,sna_eb2asを呼び出して,データを ASCIIに変換します。変換 された後,データが画面上に表示されます。 fdb.req_ext_attr.attr_pro = 1; fdb.ext_attr_mask.attr_pro = 1; fdb.op.req_op = SNA3270_C_SEARCH_NEXT; for (i=0; i<20; i++) { length = 255; return_code = jsna3270_read_field (session_id, field_data,length,status_ret); . . . return_code = sna_eb2as (field_data,field_data,length); . . . } return_code = jsna3270_request_disconnect (session_id, SNA3270_C_BLOCK, status_ret); . . . } write_next_fieldルーチンを使用してデータを書き込む このプログラム例の残りの部分では,プログラムの始めの方で呼 び出されていたwrite_next_fieldルーチンのコードを示していま す。アプリケーションは,最初にjsna3270_read_fieldを呼び出し て,FDBポインタを次の無保護フィールドの位置に置きます。次に データをASCIIからEBCD ICに変換し,jsna3270_write_fieldを呼 び出してデータを画面イメージに書き込みます。 日本語3270 DSPIの使用方法 2-31 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 void write_next_field (session_id,data,fdb) SESSION_ID_DEF session_id; char *data; struct field_def *fdb; { STATUS_RTN status_ret[SNA3270_C_SV_SIZE]; STATUS_RTN return_code; int length; char tmp_buf[128]; fdb->req_ext_attr.attr_pro = 0; fdb->op.req_op = SNA3270_C_SEARCH_NEXT; fdb->ext_attr_mask.attr_pro = 1; length = 0; return_code = jsna3270_read_field (session_id, tmp_buf, length, status_ret); if (return_code != SNA3270_S_OK && return_code != SNA3270_S_OK_TRUNC) { error_handler (session_id,status_ret); exit(1); } sna_as2eb (data,data,strlen(data)); return_code = jsna3270_write_field(session_id, data, strlen(data), status_ret); if (return_code != SNA3270_S_OK && return_code != SNA3270_S_OK_TRUNC) { error_handler (session_id,status_ret); exit(1); } } /* write_next_field */ 2-32 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 プログラム全体のテキスト プログラムの全テキストは,オンラインで /usr/i18n/usr/examples/jsna3270/amnu.c にあります。 2.6.4 FDBの使用例(2) 次に示すCプログラミングの例は,別サブセットで提供されている DEC/IBMコード変換ライブラリを使用した,日本語DSPIのプログラ ミング例です。完全なサンプル・プログラムは,オンラインによ って以下のディレクトリで提供されています。 /usr/i18n/usr/examples/jsna3270/ispf.c このサンプル・プログラムは,IBMとのセッションを確立し,ユー ザ名/パスワードをIBMホストに渡した後,ISPFメニュー画面を受 信します。その後,ISPFメニューから"6"を指定し,"ADMCHART"プ ログラムを起動します。そこで受信された画面から漢字フィール ドを読み込み,そのフィールドに漢字データを書き込んだ後で, 変更された画面イメージ・データをIBMホストに返します。 このサンプル・プログラムでは: - DEC/IBMコード変換ライブラリで使用する,アイテム・リス トの設定 - DEC/IBMコード変換ライブラリによる1バイト/2バイトのコー ド変換 - 漢字フィールドの読取り - 漢字フィールドへの漢字データの書込み を示すことを目的としています。 まず日本語DSPI,DEC/IBMコード変換ライブラリを使用するために は,以下のヘッダー・ファイルを,プログラムの最初で取り込む 必要があります。 日本語3270 DSPIの使用方法 2-33 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 #include #include /* include j3270 definition */ #include /* include tra definition */ #define BUF_SIZE 1920 /* buffer size for PS/55 emulation */ DEC/IBMコード変換ライブラリを使用するために,アイテム・リス トの定義を行います。 long context; struct TRA_ITEM_LIST item[2]; struct TRA_MODE *tmode; DEC/IBMコード変換ライブラリで使用するアイテム・リストの初期 設定を行います。初期設定は,省略時設定を1バイトコード変換 用にするため,IBM文字列初期モードをカナ文字列モードにしてあ ります。 /* setting up for Eisu-Kana field */ item[0].TRA_w_code = TRA_k_trans_mode; item[0].TRA_l_value = 0; item[1].TRA_w_code = TRA_k_end_of_list; tmode = (struct TRA_MODE *)(&item[0].TRA_l_value); /* setting for Eisu-kana field */ tmode->TRA_v_dec_first_mode = TRA_k_kanji_mode; /* default mode Kanji */ tmode->TRA_v_dec_last_mode = TRA_k_first_mode; tmode->TRA_v_dec_shift = TRUE; tmode->TRA_v_ibm_first_mode = TRA_k_kana_mode; /* default mode Eisu-kana */ tmode->TRA_v_ibm_last_mode = TRA_k_first_mode; tmode->TRA_v_ibm_shift = TRUE; tmode->TRA_v_replace = TRUE; /* replace SO, SI with space */ 変換ルーチン使用環境の初期設定を行うため,tra_dec_ibm_init ルーチンを呼び出します。この例では,ライブラリの省略時変換 テーブルが使用されます。 2-34 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 return = tra_dec_ibm_init ("","",(&context),item); switch (return_code) { case TRA_s_normal: printf ("TRA: init was success \n"); break; case TRA_s_cantalloc: printf ("TRA: can not allocate \n"); exit(1); default: printf ("TRA: init failed \n"); exit(1); } 無保護フィールドを検索してから,読み取ったフィールドにユー ザ名/パスワードを書き込みます。この時DEC/IBMコード変換ライ ブラリが,1バイトコードの変換を行うように,knj_flagフラグ を"0"にセットしてから後述のwrite_next_fieldルーチンを呼び出 します(前出の"3.6.3 FDBの使用例(1)"とは異なりますのでご注 意ください)。 /* * Find the next unprotected field */ fdb.op.req_op = SNA3270_C_SEARCH_NEXT; fdb.ext_attr_mask.attr_pro = 1; fdb.req_ext_attr.attr_pro = 0; length = 0; return_code = jsna3270_read_field (session_id, field_data, length, status_ret); if (return_code != SNA3270_S_OK && return_code != SNA3270_S_OK_TRUNC) { error_handler (session_id,status_ret); exit(1); } printf ("JDSPI: Writing the user ID# and password at the field \n"); strcpy (field_data,"@U12P04/DEC"); 日本語3270 DSPIの使用方法 2-35 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 knj_flag = 0; /* setting kanji flag for Eisu-Kana field */ write_next_field (session_id,field_data,&fdb, knj_flag); 無保護の漢字フィールドを検索してから,読み取ったフィールド に漢字データを書き込みます。この時DEC/IBMコード変換ライブ ラリが,2バイトコードの変換を行うように,knj_flagフラグを "1"にセットしてからwrite_next_fieldルーチンを呼び出します。 漢字フィールド内の漢字データには,SO/SIといったシフトコー ドを使用しないのでIBM文字列初期モードに注意しないと文字化 けを起こします。更新後の画面イメージは,jsna3270_transmit_ screenルーチンでIBMホストに送信されます。 /* * Find the next unprotected field */ fdb.op.req_op = SNA3270_C_SEARCH_NEXT; /* setting for unprotected Kanji field */ fdb.ext_attr_mask.attr_pro = 1; fdb.req_ext_attr.attr_pro = 0; fdb.ext_attr_mask.attr_chs = MASK; fdb.req_ext_attr.attr_chs = SNA3270_C_CHS_KANJI; length = 0; printf ("JDSPI: Writing a Kanji data \n"); strcpy (field_data,"漢字のデータ"); knj_flag=1; /* setting kanji flag for Kanji field */ write_next_field (session_id,field_data,&fdb, knj_flag); printf ("JDSPI: Sending the updated screen image \n"); return_code = jsna3270_transmit_screen (session_id, idx, SNA3270_C_AID_ENTER, status_ret, 0); 2-36 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 if (return_code != SNA3270_S_OK) { error_handler (session_id,status_ret); exit(1); } 変換ルーチン使用環境を解放してから,PF3をホストに返した後で セッションを終了します。 return_code = tra_dec_ibm_free (&context); return_code = jsna3270_transmit_screen (session_id, idx, SNA3270_C_AID_PF3, status_ret, 0); printf ("JDSPI: Disconnecting \n"); return_code = jsna3270_request_disconnect (session_id, status_ret); if (return_code != SNA3270_S_OK) { error_handler (session_id,status_ret); exit (1); } write_next_filedルーチンによるデータ書き込み 以下のサンプル・プログラムは,前に出てきたプログラム内で 呼び出されていたwrite_next_fieldルーチンです。このルーチン は,次の無保護フィールドを検索してから,読み取ったフィール ドに1バイト・コードまたは,2バイトの漢字コードを書き込み ます。更新された画面データは,IBMホストに送信されます。 void write_next_field (session_id,dec_buf,fdb, knj_flag) /* write in the next field */ SESSION_ID_DEF session_id; char dec_buf[BUF_SIZE]; struct field_def_dbcs *fdb; int knj_flag; { 日本語3270 DSPIの使用方法 2-37 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 STATUS_RTN status_ret[SNA3270_C_SV_SIZE]; STATUS_RTN return_code; int length; char ibm_buf[BUF_SIZE]; char tmp_buf[BUF_SIZE]; fdb->op.req_op = SNA3270_C_SEARCH_NEXT; fdb->ext_attr_mask.attr_pro = 1; fdb->req_ext_attr.attr_pro = 0; length = 0; printf ("JDSPI: Searching the next unprotected field \n"); return_code = jsna3270_read_field (session_id, tmp_buf, length, status_ret); if (return_code != SNA3270_S_OK && return_code != SNA3270_S_OK_TRUNC) { error_handler (session_id,status_ret); exit(1); } /* * Convert string to IBM code */ length = strlen(dec_buf); if (length >0) /* skip if no field to translate */ { ibm_buf[length] = 0; /* initializing the parameter */ knj_flagがセットされている場合には,コード変換されるデータ が2バイトの漢字コードであることを示しているので,アイテム・ リストのIBM文字列初期モードを漢字文字列モードに上書きしてか ら,更新されたアイテム・リストを指定してtra_dec_ibmルーチン を呼び出します。また,knj_flagがクリアの場合は,1バイトコ ード変換を行なうために省略時の設定でtra_dec_ibmルーチンが呼 び出されます。 2-38 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 /* if Kanji then overwrite item list, otherwise use the default */ if (knj_flag) { /* set up item list for Kanji */ tmode->TRA_v_ibm_first_mode = TRA_k_kanji_mode; tmode->TRA_v_ibm_last_mode = TRA_k_any_mode; return_code = tra_dec_ibm( dec_buf, strlen(dec_buf), ibm_buf,BUF_SIZE, &length,&context,item); } else return_code = tra_dec_ibm( dec_buf, strlen(dec_buf), ibm_buf,BUF_SIZE, &length,&context,0); switch (return_code) { case TRA_s_normal: printf ("TRA: tra was success \n"); break; case TRA_s_truncate: printf ("TRA: truncation occured \n"); break; case TRA_s_invparam: printf ("TRA: invalid parameter \n"); exit(1); case TRA_s_badctx: printf ("TRA: bad context \n"); exit(1); default: printf ("TRA: tra was failed \n"); exit(1); } } /* * Update the screen image */ printf ("JDSPI: Writing in the unprotected field \n"); 日本語3270 DSPIの使用方法 2-39 日本語3270 DSPIの使用方法 2.6 3270画面イメージからフィールドを検索する方法 return_code = jsna3270_write_field(session_id, ibm_buf, strlen(ibm_buf), status_ret); if (return_code != SNA3270_S_OK && return_code != SNA3270_S_OK_TRUNC) { error_handler (session_id,status_ret); exit(1); } } /* write_next_field */ 2.6.5 3270画面イメージへフィールドを書き込む 表示ベクタにフィールドを書き込むには,OSF/1アプリケーショ ンは jsna3270_write_field プロシージャを呼び出してフィー ルドが入っているバッファを指定し,フィールド・ディスクリプ タ・ブロックを使用してacutual displacementフィールド(field_ def.act_disp)にフィールドのアドレスを指定します。jsna3270_ read_field プロシージャを使用すれば,jsna3270_write_fieldの FDBをセットアップすることができます。jsna3270_read_fieldプ ロシージャは,jsna3270_write_fieldへの入力となる実際の属性 と実際のオフセット値を設定します。日本語3270 DSPIは,指定 されたフィールドが保護されているか,異なるデータ・タイプで ない限り,そのフィールドにバッファの内容を書き込みます。指 定されたデータが画面イメージの中のフィールドより大きい場合 には,プロシージャはSNA3270_S_OK_TRUNCステータス値を返しま す。 _________________________________________________________________ 2.7 3270画面イメージを送信する方法 3270画面イメージをIBMホストに送信するには,OSF/1アプリケー ションは jsna3270_transmit_screenプロシージャを呼び出してセ ッションを指定します。日本語3270 DSPIは,セッションに割り 当てられた表示ベクタの内容から3270データ・ストリームを構築 して,そのデータ・ストリームをIBMホストに送信します。write structured fieldをIBMホストに送信するには,アプリケーション はコールバック・ルーチンを提供しなければなりません。コール 2-40 日本語3270 DSPIの使用方法 日本語3270 DSPIの使用方法 2.7 3270画面イメージを送信する方法 バック・ルーチンによって,日本語3270 DSPIはホストに送信する インバウンド構造化フィールドを構築することができます。 ________________________ 注意 ________________________ LU2セッションでは,通常,OSF/1アプリケーションは,画面 の受信と画面の送信を交互に行います。アプリケーションが 続けて2つの jsna3270_transmit_screen要求を出すと,日 本語3270 DSPIは,送信する順番ではないことを示すステー タス・メッセージSNA3270_S_NYTXMITを戻します。OSF/1ア プリケーションは,第4章で説明する jsna3270_transmit_ sna_cmdプロシージャを使用して,OSF/1アプリケシーョ ンがもう一度送信できるようにIBMアプリケシーョンに要 求することができます。OSF/1アプリケーションは,次の jsna3270_transmit_screen を出す前にIBMアプリケシーョン が,誰が送信できるかを示すフラグを返すのを待たなくては なりません。 ______________________________________________________ _________________________________________________________________ 2.8 セッションの終了方法 LU-LUセッションを終了するために,OSF/1アプリケーションは, jsna3270_request_disconnectプロシージャを呼び出してセッショ ンを指定します。 この呼び出しの結果,日本語3270 DSPIはセッションの終了を要求 し,セッションに割り当てられたすべての資源の割り当てを解放 します。jsna3270_request_disconnectプロシージャを呼び出す と,日本語3270 DSPIはTERM_SELFをIBMシステムに送信し,その 結果IBMシステム上にログ・メッセージが残されます。jsna3270_ request_disconnectプロシージャは,セッションを順番にシャッ トダウンしたり,IBMサブシステムをログオフしたりしません。ア プリケーションが jsna3270_request_disconnectプロシージャを 呼び出したときにセッションがすでにアクティブでなくなってい る場合には,プロダクトは資源の割り当て解放だけを行います。 この時点で,OSF/1アプリケーションは,次にIBMホストに接続す る前にこのセッションに割り当てたすべての資源(文字および属 性ベクタ,SDB,FDBなど)の割り当てを解放しなければなりませ ん。 日本語3270 DSPIの使用方法 2-41 3 _________________________________________________________________ 日本語3270 DSPIの機能 日本語3270 DSPIは,アプリケーションの作成や実行を助ける次の ような機能を備えています。 o ステータス情報を返す−第3.1節 o アクセス情報をIBMホストに提供する−第3.2節 o OSF/1 3270インタフェース・コールバック機能を使用する− 第3.3節 o ブロックおよび非ブロック受信を使用する−第3.4節 このような機能を使用してOSF/1システム・アプリケシーョンを作 成する方法については,それぞれの項で説明します。 _________________________________________________________________ 3.1 リターン・ステータス情報 日本語3270 DSPIは,次のいずれかによってステータス・コードを OSF/1アプリケーションに返すことができます。 o 関数の戻り値 o ステータス・ベクタ 日本語3270 DSPIのプロシージャは,成功コードか情報またはエラ ー・コードのいずれかの第1 レベルのステータス・コードを返し ます。エラー・コードの場合,日本語3270 DSPIは,ステータス・ ベクタを介してさらに多くのステータス情報をOSF/1アプリケーシ ョンに提供します。たとえば,接続タイプのパラメータに不適切 な値を指定して, OSF/1アプリケーションが接続ルーチンを呼び出 した時,日本語3270 DSPIが戻り値としてSNA3270_S_CONFAI(接続 失敗)を受け取ったとします。この場合,日本語3270 DSPIはステ ータス・ベクタにステータス・コードSNA3270_S_ILLCONTYP(非合 法接続タイプ)を設定します。 日本語3270 DSPIの機能 3-1 日本語3270 DSPIの機能 3.1リターン・ステータス情報 日本語3270 DSPIによって返されるステータス・コードについて は,付録 Bと付録 Dを参照してください。 3.1.1 関数の戻り値 プロシージャは,操作の実行が終了すると,戻り値としてステ ータス情報を呼び出し側に返します。ステータス・コードが SNA3270_S_OKの場合には,正しく実行されたことを示しています が,それ以外のステータスが返された場合には,何らかのイベン トまたはエラーが生じたことを示しています。このような場合に は,ステータス・ベクタからさらに詳しい情報を入手するとよい でしょう。 特定の条件下でのテストを作成するときには,常にステータス・ コード用に定義されたシンボル名を使用します。 3.1.2 ステータス・ベクタの使用方法 すべてのプロシージャは,ステータス構造を介して,ステータ ス・コードをOSF/1アプリケーションに返します。このステータス 構造はエラー状態の完全な情報をOSF/1アプリケーションに提供し ます。ステータス・ベクタは,サイズがSNA3270_C_SV_SIZEのデー タ・タイプSTATUS_RTNの配列になっています。ステータス・ベク タは,OSF/1アプリケーションによって割り当てられ日本語3270 DSPIを呼び出す前に0に初期化しておく必要があります。ステータ ス・コードには,次のいずれか一方または両方が入っています。 o エラー・コード o 情報コード エラーのタイプによって,ステータス・ベクタには2つ以上のステ ータス・コードが入る事があります。場合によっては,ステータ ス・ベクタにIBMセンス・コードが入っていることもあります。 3-2 日本語3270 DSPIの機能 日本語3270 DSPIの機能 3.1リターン・ステータス情報 エラーが生じると,それに関連するネットワークの各構成要素が 日本語3270 DSPIにメッセージを渡します。日本語3270 DSPIは, この情報をステータス・ベクタに格納します。図 3-1は,ステー タス・ベクタのダイアグラムを示しています。 重大なエラーが生じてセッションが切断されると,アプリケーシ ョンは,セッションを終了する代わりに,セッションに再接続し ようとします。アクティブ接続要求またはパッシブ接続要求を出 す方法については,第2.2.1項と第2.2.2項を参照してください。 ________________________ 注意 ________________________ アプリケーションを作成する場合は,日本語3270 DSPIが返 すすべてのステータス・メッセージについてチェックしてく ださい。原則として,SNA3270_S_OKステータス・コードだけ でなく,日本語3270 DSPIが返すと考えられる個々のステー タス・コードについてチェックしてください。成功ステータ ス・メッセージについては,付録 Bを参照してください。 ______________________________________________________ 図 3-1 ステータス・ベクタ _________________________________________________________________ 3.2 IBMホストにアクセス情報を提供する方法 IBMアプリケーションとのセッションを確立するには,OSF/1アプ リケーションは次のような情報をIBMホストに提供しなければなり ません。 o PU識別−セッションを確立するのに使用されるゲートウェイ PU(たとえば,SNA-0)を識別する値。 o アプリケーション名−IBMホストで接続したいPLUアプリケー ション(たとえば,CICS)を識別するASCII文字列。 o LU名−IBMホストとのセッションを確立するのに使用したい SLUを示す値。 日本語3270 DSPIの機能 3-3 日本語3270 DSPIの機能 3.2 IBMホストにアクセス情報を提供する方法 o ログオン・モード名−セッションの一連のBINDパラメータを 提供するログオン・モード・テーブルにあるエントリを指定 するASCII文字列(詳しくは,VTAMシステム・プログラマに 問い合わせてください)。 o IBMユーザ識別−IBMセッションへのユーザを識別する値。 o IBMパスワード−IBMユーザIDに対応する文字列(IBMアプリ ケーションには,パスワードが必要なものとそうでないもの があります)。 o 省略可能なユーザ・データ−IBMアプリケシーョンに渡され るデータ(データの意味は,IBMアプリケーションによって 異なります)。 アプリケーションは,jsna2370_request_connectプロシージャを 呼び出すたびにこれらの情報をパラメータとして提供します。こ のプロシージャ呼出しの一般的な形式は,第5章に示してありま す。 ゲートウェイ管理者は,IBMアクセス情報の完全な,または一部 のリストを定義して,そのリストをアクセス名と対応付けるこ とができます。アプリケーションがjsna3270_request_connectを 呼び出すときのパラメータ・リストにアクセス名を指定すると, 対応リスト中の値がすべてのIBMアクセス情報の省略時の設定値 となります。アクセス名に既に対応付けられた値に対して上書 きするには,jsna3270_request_connect呼出し時に新しい値を 指定します。IBMアクセス情報とアクセス名については,『DEC SNA Peer Server Network Control Language Reference』または, 『DECnet/SNA Gateway-CT and Gateway-ST Management』などを参 照してください。 _________________________________________________________________ 3.3 コールバック機能の使用方法 OSF/1アプリケーションがreceive_screenまたはtransmit_screen を呼び出す場合に,ユーザ作成のコールバック・ルーチンを提供 できます。日本語3270 DSPIは,IBMから構造化フィールド(SF)デ ータを受信した後か,インバウンドSFデータをIBMに送信する前に コールバック・ルーチンを呼び出します。データを受信する場合 には,日本語3270 DSPIがSFデータをコールバック・ルーチンに渡 して処理し,データを送信する場合には,コールバック・ルーチ 3-4 日本語3270 DSPIの機能 日本語3270 DSPIの機能 3.3コールバック機能の使用方法 ンがSFデータ・パラメータを介してインバウンドSFデータを日本 語3270 DSPIに渡します。 例 3-1は,コールバック・ルーチンの構文を示しています。こ の例では,callback_routine がreceive_screenまたはtransmit_ screenコールで指定されたコールバック・ルーチンの名前を表 していることに注意してください。アプリケーションを作成する 際,コールバック・ルーチンにどのような名前を付けてもかまい ません。 例 3-1 コールバック・ルーチンのシンタックス SENSE_CODE Callback-routine (sf_data_ptr) struct sf_struct *sp_data_ptr; Argument sf_struct pointer to the structured field data structure. Return Value SNA3270_S_OK for success sense code when error occurred. 構造化フィールド・データ構造については,付録 Eの例 E-1を参 照してください。3270データ・ストリーム構造化フィールドにつ いての詳細は,『IBM 3270 Information Display System: 3274 Conrtol Unit Description and Programmer's Guide』を参照して ください。 _________________________________________________________________ 3.4 ブロックおよび非ブロック受信の使用方法 日本語3270 DSPIは非同期プログラミングはサポートしませんが, ブロックおよび非ブロックの接続と受信をサポートします。アプ リケーションを作成する際には,日本語3270 DSPIを呼び出すたび にブロック・モードまたは非ブロック・モードを指定することが できます。 日本語3270 DSPIの機能 3-5 日本語3270 DSPIの機能 3.4ブロックおよび非ブロック受信の使用方法 ブロック・モードの場合,アプリケーションは,データを受信す るまでデータを待ち続け,その間他の活動は行いません。逆に, アプリケーションが非ブロック・モードで受信を行なうと,受信 データが存在するかどうかにかかわらず,受信はただちに戻り値 を返します。 アプリケーションが非ブロック・モードを指定し,受信するデー タがない場合は,通常SNA3270_S_OK_SELECTが返されます。この場 合,アプリケーションは,日本語3270 DSPIがデータ・ストリーム を受信するまで,jsna3270_receive_streamルーチンをさらに呼び 出さなくてはなりません。したがって,呼び出し側は,それ以降 に受信したメッセージのソケットを監視し続けるようにします。 Selectの使用は,そのための1つの方法です。 SNA3270_OK_SELECTのステータスが返される状態は,通常,受信す るデータがないことを示していますが,例外もあります。日本語 3270 DSPIが受信するすべてのメッセージがアプリケーションに渡 されるわけではないのでjsna3270_receive_screenルーチンは,受 信するデータがあるにもかかわらず,SNA3270_OK_SELECTのステー タス・メッセージを返すことがあります。したがって,アプリケ ーションは,SNA3270_OK_SELECTが返された場合でも,データのソ ケットを監視し続けるようにします。 ブロック・モードを使用するか,非ブロック・モードを使用する かは,アプリケーションの特定のポイントでシステム資源をどの ように使用したいかによって決まります。非ブロック・モードで 呼び出しを行うと,アプリケーションは延期された待ち状態で時 間を無駄にすることがないので,厳密には,2つのモードのうちで は非ブロック・モードの方が効率的です。これとは対照的に,ブ ロック・モードで呼び出しを行うと,アプリケーションは受信を 待ち続けるので,資源を拘束することがあります。ただし,アプ リケーションがIBMホストからデータを受信するまで何も実行でき ない場合には,ブロック・モードで呼び出しを行う方がよいでし ょう。 3-6 日本語3270 DSPIの機能 4 _________________________________________________________________ OSF/1アプリケーション・プログラムの作成 この章では,アプリケーションを日本語3270 DSPIのインタフェ ース・プロシージャとリンクする方法について説明します。ま た,日本語3270 DSPIソフトウェアでオンラインで提供される6 つのサンプル・プログラムについての説明とその格納場所を示 します。これらのプログラムはASCII形式になっています。この6 つのプログラムをすべて表示するには,/usr/i18n/usr/examples /jsna3270ディレクトリにある以下のファイルを印刷します。この ディレクトリの中の6つのプログラムは,個別に印刷することもで きます。プログラム名は次のとおりです。 o stream.c o amnu.c o mult_sess.c o wsf.c o ispf.c それぞれのプログラムについては,第4.2節を参照してください。 _________________________________________________________________ 4.1 アプリケーションのリンク方法 アプリケーション・モジュールを作成してコンパイルしておけ ば,いつでもアプリケーションを日本語3270 DSPIのサブルーチン とリンクすることができます。日本語3270 DSPIはライセンス・チ ェッキング・ユーティリティを使用しているので,アプリケーシ ョン・モジュールをLMFライブラリ liblmf.aともリンクしなけれ ばなりません。 次の例は,オブジェクト・ファイルprogname.oとアーカイ ブ・ランダム・ライブラリlibjsna3270.aをリンクしていま す。jsna3270, lmf,traアーカイブ・ランダム・ライブラリと リンクするには,-lオプションを使用しなければなりません。 OSF/1アプリケーション・プログラムの作成 4-1 OSF/1アプリケーション・プログラムの作成 4.1アプリケーションのリンク方法 # cc -o progname progname.c -ljsna3270 -llmf ________________________ 注意 ________________________ jsna3270,lmf,traアーカイブ・ランダム・ライブラリを-l オプションによってリンクする時はリンクする順番に注意 し,例に示されている順番でリンクを行なってください。 ______________________________________________________ ccコマンドと補足オプションについての詳細は,『DEC OSF/1オペ レーティング・システムプログラミング・ガイド』を参照してく ださい。 _________________________________________________________________ 4.2 プログラミング例 ここでは,オンラインで提供される5つのサンプル・プログラムに ついて説明します。各プログラムはCプログラミング言語で書かれ ています。最初の1つはストリーム・モード,他の3つはさらに複 雑なフィールド・モードになっています。5つのサンプル・プログ ラムは,次のような目的で書かれています。 o プログラム1−ストリーム・モードを使用してデータを送受 信する方法を示すとともに,CICSのもとで動作するCSFEトラ ンザクションを使用してIBMホストに肯定応答します。この プログラムは,/usr/i18n/usr/examples/jsna3270/stream.c にあります。 o プログラム2−CICSのもとで動作するデータベース・アプリ ケーション(AMNUトランザクション)に接続する方法と,ア プリケーションの操作員画面に示される指示に従ってデータ ベースをブラウジングする方法を示します。このプログラム はブラウジング操作への応答として送信されたそれぞれの情 報フィールドを読み取って,各フィールドの内容と長さを 表示します。このプログラムは,/usr/i18n/usr/examples /jsna3270/amnu.c にあります。 o プログラム3−複数セッションの例で,資源を割り当て,同 時にIBMホストとの間に2つのセッションを確立する方法を示 します。このプログラムは,IBMホスト上のCSMGトランザク ションを使用して2つのセッションが相互に通信する方法を 4-2 OSF/1アプリケーション・プログラムの作成 OSF/1アプリケーション・プログラムの作成 4.2プログラミング例 示しています。このプログラムは,/usr/i18n/usr/examples /jsna3270/mult_sess.cにあります。 o プログラム4−グラフィック・アプリケーションで,write structured fieldと拡張属性を使用します。このプログラム は,次のことを目標としています。 - OSF/1アプリケーションがTCBデータ構造を使用して,そ の端末特性を 日本語3270 DSPIに伝える方法を示す。 日本語3270 DSPIは,TCBブロックにある情報を使用し て,IBMホスト にからの端末特性についての照会に応答 する。 - コールバック・ルーチンを使用(送信と受信の両方)し てwrite structured field データを処理する方法を示 しています。 このプログラムは,/usr/i18n/usr/examples/jsna3270 /wsf.c にあります。 o プログラム5−DEC/IBMコード変換ライブラリを使用して2バ イトコードを含むコード変換の例を示します。このプログラ ムは,日本語ISPFメニューのフィールドを読み取り,漢字フ ィールドに漢字コードを書き込みます。このプログラムは, 次のことを目標としています。 - DEC/IBMコード変換ライブラリで使用するアイテム・リ ストの設定 - DEC/IBMコード変換ライブラリによる1バイト/2バイト のコード変換 - 漢字フィールドの読み取り - 漢字フィールドへの漢字データの書き込み このプログラムは,/usr/i18n/usr/examples/jsna3270 /ispf.cにあります。 o プログラム6−TCBデータ構造を使用して,日本語と英語とい った異なる言語環境で複数のセッションを確立する例を示し ます。このプログラムは,日本語と英語用に2つのセッショ ンを同時に張り,それぞれの言語のISPFメニューを表示しま す。このプログラムでは,次のことを目標としています。 - 複数セッション用の資源とデータ構造の定義 OSF/1アプリケーション・プログラムの作成 4-3 OSF/1アプリケーション・プログラムの作成 4.2プログラミング例 - TCBによる複数言語の端末特性の設定 ________________________ 注意 ________________________ DEC/IBMコード変換ライブラリを使用し,日本語環境で日 本語3270 DSPIを使用する際には,サンプル・プログラム ispf.cとmulti_sess.cを参照してください。プログラム1〜4 は,標準版(英語版)3270 DSPIで提供されている英語環境 用のサンプル・プログラムを日本語3270 DSPIとリンクする ために変更したものです。 ______________________________________________________ _________________________________________________________________ 4.3 DEC/IBMコード変換 日本語3270 DSPIでは,EBCDIC文字セット/ISO Latin文字セットの 1バイト・コード変換ルーチンとしてsna_as2eb,sna_eb2asの2つ のルーチンを提供しています。 また,1バイトコードおよび2バイトコードが混在したDECコード, IBMコード相互間の変換を行うルーチン群として,DEC/IBMコード 変換ライブラリを別サブセットで提供しています。詳細は,第I.1 節を参照してください。 4.3.1 IBM付加文字とIBMユーザ定義文字 IBM付加文字とIBMユーザ定義文字といったいわゆる外字の変換に は,別サブセットで提供されているjsnaknjdefユーティリティに より作成された外字管理ファイルを利用してDEC/IBMコード変換ラ イブラリによって変換を行います。詳細は,第I.1節を参照してく ださい。 4.3.2 カスタマイズされた変換テーブルの作成方法 日本語3270 DSPIソフトウェアは,EBCDICをISO Latin文字セット に変換する変換テーブルを備えています。第5章では,この変換テ ーブルを使用できるようにする2つのプログラム呼出しについて説 明します。 4-4 OSF/1アプリケーション・プログラムの作成 OSF/1アプリケーション・プログラムの作成 4.3 DEC/IBMコード変換 日本語3270 DSPIにあるISO Latin文字セットは,主として北米で 使用されるもので,要件に合わないこともあるかもしれません。 そのような場合には,ゲートウェイ管理者に新しい変換テーブル を作成してもらってください。新しい変換テーブルを作成する場 合は,それを使用するためのサブルーチンを作成する必要があり ます。 カスタマイズされた変換テーブルの作成については,付録 Hを参 照してください。 OSF/1アプリケーション・プログラムの作成 4-5 5 _________________________________________________________________ プロシージャ呼び出し形式 この章では,日本語3270 DSPIのプロシージャの呼び出し形式につ いて説明します。日本語3270 DSPIには,次のようなプロシージャ があります。 o jsna3270_acknowledge o jsna3270_free_buffer o jsna3270_lock_screen o jsna3270_read_field o jsna3270_receive_screen o jsna3270_receive_stream o jsna3270_request_connect o jsna3270_request_disconnect o jsna3270_return_io_port o jsna3270_set_owner o jsna3270_transmit_screen o jsna3270_transmit_sna_cmd o jsna3270_transmit_stream o jsna3270_write_field o sna_as2eb o sna_eb2as o jsna_get_msg o jsna_put_msg プロシージャ呼び出し形式 5-1 プロシージャ呼び出し形式 5.1日本語3270 DSPIを呼び出す場合の一般形式 _________________________________________________________________ 5.1 日本語3270 DSPIを呼び出す場合の一般形式 日本語3270 DSPIプロシージャを呼び出す際は,次のような一般形 式を使用します。 status=jsna3270_procedure-name(argument1, argument2,...) status 関数値として返されるステータス・コード。 procedure- 呼び出したいプロシージャの名前。 name () 引数リストを指定する。 argument アプリケシーョンが日本語3270 DSPIに渡したり日本 語3270 DSPIから受け取る情報が入っている変数。こ の章で説明する各プロシージャに対する引数は,簡 略表記を使用して引数の特性を説明しています。こ れらの表記規則の要約は付録 Bにあります。 5.1.1 session_id session_id引数は,ほとんどすべての日本語3270 DSPIプロダク トのプロシージャで使用されます。(この引数を使用しないプロ シージャは,2つの変換ユーティリティsna_as2ebとsna_eb2as,2 つのメッセージ・ユーティリティjsna_get_msgとjsna_put_msgで す。) 5-2 プロシージャ呼び出し形式 jsna3270_acknowledge _________________________________________________________________ jsna3270_acknowledge _________________________________________________________________ 名称 jsna3270_acknowledge -受信データの確認応答 _________________________________________________________________ 形式 #include jsna3270_acknowledge (session_id, sense, status_vec) SESSION_ID_DEF session_id; SENSE_CODE *sense; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session-id 接続時に割り当てられたセッション識別子。 sense PLUに送信されるセンス・コード応答が入っている longword。 プロシージャ呼び出し形式 5-3 jsna3270_acknowledge status_vec OSF/1アプリケーションがメモリを割り当てて,日本 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサ イズSNA3270_C_SV_SIZEのベクタ。ステータス・ベク タには,status_vec[0]からstatus_vec[15]までの 最大16個のエントリが入っている。最初のエントリ (status_vec[0])には,ベクタの中で返されるステー タス・コード数が入っている。 _________________________________________________________________ 機能説明 jsna3270_acknowledgeプロシージャは,jsna3270_receive_ streamから受信したデータが受け入れ可能かどうかをIBMアプ リケシーョン・サブシステムに知らせます。OSF/1アプリケーショ ンは,日本語3270 DSPIがデータをIBMホストに返信する事を許可 する前に受信したデータを確認応答しなければなりません。 アプリケーションがフィールド・モードを使用して(つま り,jsna3270_receive_screen プロシージャを使用して),IBMホストからデータを受信する 場合には,プロシージャは受信した画面を自動的に確認応答し ます。したがって,ほとんどの場合,OSF/1アプリケーションは acknowledgeを特に呼び出す必要がありません。 _________________________________________________________________ 診断項目 jsna3270_acknowledgeプロシージャは,次のステータスを返しま す。 [SNA3270_S_OK] 成功。保留されている応答がないときに もこのステータス・メッセージが返され る。 [SNA3270_S_ACKFAI] 呼び出しが失敗した。 5-4 プロシージャ呼び出し形式 jsna3270_acknowledge 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッション識別子。 NOSUCHSOCK] _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 jsna3270_receive_streamプロシージャを参照してください。 プロシージャ呼び出し形式 5-5 jsna3270_free_buffer _________________________________________________________________ jsna3270_free_buffer _________________________________________________________________ 名称 jsna3270_free_buffer - jsna3270_receive_streamによって割り 当てられたバッファを解放する。 _________________________________________________________________ 形式 #include jsna3270_free_buffer (session_id, buf, status_vec) SESSION_ID_DEF session_id; char *buf; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id buf OSF/1アプリケーションがjsna3270_receive_streamプ ロシージャを呼び出したときに,割り当てられたバッフ ァ・ポインタのアドレス 5-6 プロシージャ呼び出し形式 jsna3270_free_buffer status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_free_bufferプロシージャを呼び出すことによって,日 本語3270 DSPIは,それ以前にjsna3270_receive_streamプロシー ジャによって割り当てられたバッファ領域を解放します。 _________________________________________________________________ 診断項目 jsna3270_free_bufferプロシージャは,次のステータスを返しま す。 [SNA3270_S_OK] 成功。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_SVOMIT] ステータス・ベクタが割り当てられてい ない。 [SNA3270_S_ 無効なセッション識別子。 NOSUCHSOCK] [SNA3270_S_FREEFAI] バッファの解放に失敗。詳細はステータ ス・ベクタを参照。 プロシージャ呼び出し形式 5-7 jsna3270_free_buffer _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 jsna3270_receive_streamも参照してください。 5-8 プロシージャ呼び出し形式 jsna3270_lock_screen _________________________________________________________________ jsna3270_lock_screen _________________________________________________________________ 名称 jsna3270_lock_screen -これ以降の画面処理をロックする _________________________________________________________________ 形式 #include jsna3270_lock_screen (session_id, status_vec) SESSION_ID_DEF session_id; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 プロシージャ呼び出し形式 5-9 jsna3270_lock_screen _________________________________________________________________ 機能説明 jsna3270_lock_screenプロシージャを呼び出すことによって,日 本語3270 DSPIは,IBMホストから受信したBID要求に対して否定応 答を送信します。画面ロック状態は,これ以降のストリームまた は画面送信要求によって解除されます。 _________________________________________________________________ 診断項目 jsna3270_lock_screenプロシージャは,次のステータスを返しま す。 [SNA3270_S_OK] 成功。 [SNA3270_S_LOCFAI] 画面ロックに失敗した。詳細は,ステー タス・ベクタを参照。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッション識別子。 NOSUCHSOCK] [SNA3270_S_NYTXMIT] 送信する番になっていない。 _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 jsna3270_transmit_screenと jsna3270_transmit_stream要求も参 照してください。 5-10 プロシージャ呼び出し形式 jsna3270_read_field _________________________________________________________________ jsna3270_read_field _________________________________________________________________ 名称 jsna3270_read_field -表示ベクタから指定フィールドを読み取る _________________________________________________________________ 形式 #include jsna3270_read_field (session_id, buf, length, status_vec) SESSION_ID_DEF session_id; char *buf; unsigned int length; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id buf フィールド・ディスクリプタ・ブロックに指定されたフ ィールドを受け取るバッファのアドレス。nullの場合 には,データはバッファにコピーされず,日本語3270 DSPIはFDBの中のフィールド・オフセットとサイズだけ をそのフィールドに返す。 length read_fieldに渡されるデータ・バッファの長さ。 プロシージャ呼び出し形式 5-11 jsna3270_read_field status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_read_fieldプロシージャは,表示ベクタからフィールド を読み取ります。OSF/1アプリケーションは,フィールドの特徴を FDBの中で指定します。 _________________________________________________________________ 診断項目 jsna3270_read_fieldプロシージャは,次のステータス・メッセー ジを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_OK_TRUNC] データの切り捨てを行って成功した。 [SNA3270_S_RDFLDFAI] フィールドの読み取りに失敗。詳細は, ステータス・ベクタを参照。 呼び出しに失敗したときには,プロシージャは,ステータス・ベ クタの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ FDB中のバッファ・オフセットが間違って BADOFFSET] いる。 5-12 プロシージャ呼び出し形式 jsna3270_read_field [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] [SNA3270_S_NOFIELD] 文字ベクタ内にフィールドがみつからな い。 [SNA3270_S_ フィールド・モードになっていない。 NOTINFMOD] _________________________________________________________________ 制限事項 フィールド・モードでのみ使用可能。 _________________________________________________________________ 関連項目 jsna3270_receive_screenとjsna3270_write_screenプロシージャ も参照してください。 プロシージャ呼び出し形式 5-13 jsna3270_receive_screen _________________________________________________________________ jsna3270_receive_screen _________________________________________________________________ 名称 jsna3270_receive_screen -表示ベクタに画面イメージを受信する _________________________________________________________________ 形式 #include jsna3270_receive_screen (session_id, sesidx, io_typ, status_vec, wsf_cb) SESSION_ID_DEF session_id; unsigned int *sesidx; unsigned long int io_typ; STATUS_RTN status_vec[]; SENSE_CODE (*wsf_cb)( ); _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id sesidx データをSSCPから受信した場合にはSNA3270_C_SSCPに設 定し,それ以外の場合にはSNA3270_C_LULUに設定する。 5-14 プロシージャ呼び出し形式 jsna3270_receive_screen io_type 受信をブロック・モードにするか,非ブロック・モー ドにするかを指定するフラグ。SNA3270_C_BLOCKまたは SNA3270_C_NON_BLOCKのいずれかを指定する。 status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 wsf_cb WSFデータを受信したときに,日本語3270 DSPIによって 呼び出されるユーザ作成プロシージャ。 _________________________________________________________________ 機能説明 jsna3270_receive_screenプロシージャは,完全な3270画面イメ ージを受信して,セッションに指定された表示ベクタに格納しま す。このプロシージャは,ブロック・モードと非ブロック・モー ドでの受信をサポートします。非ブロック・モード受信では,プ ロシージャは受信するデータがないとSNA3270_OK_SELECTを返しま す。受信する構造化フィールド・データがあると,OSF/1アプリ ケーションで用意されたコールバック・ルーチンを呼び出して, write structured fieldデータをそのルーチンに渡します。 _________________________________________________________________ 診断項目 jsna3270_receive_screenプロシージャは,次のステータス・メッ セージを返します。 [SNA3270_S_OK] 成功。 プロシージャ呼び出し形式 5-15 jsna3270_receive_screen [SNA3270_S_OK_ 成功。受信されたデータはない。 SELECT] [SNA3270_S_ 画面受信要求に失敗した。さらに詳しい RECVSCRFAI] ステータス情報はステータス・ベクタに 格納されている。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] [SNA3270_S_ フィールド・モードになっていない。 NOTINFMOD] [SNA3270_S_EVT_ BIND要求を受信した。 BINDRCV] [SNA3270_S_EVT_ 送信する番になっていない。 TURNGONE] [SNA3270_S_EVT_ CLEARコマンドによって要求がアボートさ CLEAR] れた。 [SNA3270_S_EVT_ UNBIND要求を受信した。 UNBIND] [SNA3270_S_EVT_ セッションが終了された。 SESSTERM] [SNA3270_S_BADQR] 未知の照会要求を受信した。 上記以外のステータス・コードを受信した場合は,付録 Bまたは 付録 Dを参照してください。 5-16 プロシージャ呼び出し形式 jsna3270_receive_screen _________________________________________________________________ 制限事項 なし プロシージャ呼び出し形式 5-17 jsna3270_receive_stream _________________________________________________________________ jsna3270_receive_stream _________________________________________________________________ 名称 jsna3270_receive_stream - IBMホストからデータを受信する _________________________________________________________________ 形式 #include jsna3270_receive_stream (session_id, sesidx, io_typ, buf, length, status_vec) SESSION_ID_DEF session_id; unsigned int *sesidx; unsigned long int io_typ; char **buf; unsigned int *length; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ jsna3270_request_connectによって返されたセッション id 識別子の値。 sesidx データをSSCPから受信した場合にはSNA3270_C_SSCPに設 定し,それ以外の場合にはSNA3270_C_LULUに設定する。 5-18 プロシージャ呼び出し形式 jsna3270_receive_stream io_typ 受信をブロック・モードにするか,非ブロック・モー ドにするかを指定するフラグ。SNA3270_C_BLOCKまたは SNA3270_C_NON_BLOCKのいずれかを指定する。 buf バッファ・ポインタのアドレス。ポインタには,日本語 3270 DSPIがIBMホストから受信したデータ用に割り当て たバッファ位置のアドレスが入っている。 length 受信したデータの長さ。 status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_receive_streamプロシージャは,IBMホストから送信さ れた3270データ・ストリームを受信します。 _________________________________________________________________ 診断項目 jsna3270_receive_streamプロシージャは,次のステータス・メッ セージを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_OK- 成功。 SELECT] プロシージャ呼び出し形式 5-19 jsna3270_receive_stream [SNA3270_S_ 受信に失敗。 RECVSTRFAI] 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセツションID。 NOSUCHSOCK] [SNA3270_S_ フィールド・モードになっていない。 NOTINFMOD] [SNA3270_S_EVT_ BIND要求を受信した。 BINDRCV] [SNA3270_S_EVT_ 送信する番ではない。 TURNGONE] [SNA3270_S_EVT_ CLEARコマンドによって要求がアボートさ CLEAR] れた。 [SNA3270_S_EVT_ UNBIND要求を受信した。 UNBIND] [SNA3270_S_EVT_ セッションが終了された。 SESSTERM] 上記以外のステータス・コードを受信した場合は,付録 Bまたは 付録 Dを参照してください。 _________________________________________________________________ 制限事項 フィールド・モードでのみ使用可能。 5-20 プロシージャ呼び出し形式 jsna3270_receive_stream _________________________________________________________________ 関連項目 jsna3270_acknowledgeプロシージャを参照してください。 プロシージャ呼び出し形式 5-21 jsna3270_request_connect _________________________________________________________________ jsna3270_request_connect _________________________________________________________________ 名称 jsna3270_request_connect - IBMホストに接続要求をする _________________________________________________________________ 形式 #include jsna3270_request_connect (session_id, conn_typ, mode_typ, io_typ, transport, gateway, accname, luname, pluname, logmode, userdata, authpwd, char_vec, attr_vec, fdb, sdb, tcb_flag, tcb, status_vec) SESSION_ID_DEF session_id; unsigned int conn_typ; unsigned long int mode_typ, io_typ, transport; char *gateway, *accname, *luname, *pluname; char *logmode, *userdata, *authpwd, *char_vec; struct ext_attr_def_dbcs *attr_vec; struct field_def_dbcs *fdb; struct sdb_def_dbcs *sdb; struct tcb_flg_dbcs *tcb_flag; struct tcb_def_dbcs *tcb; STATUS_RTN status_vec[]; 5-22 プロシージャ呼び出し形式 jsna3270_request_connect _________________________________________________________________ 引数 session_ セッションに固有なセッション識別子値を受け取る場 id 所。 conn_ 希望する接続タイプ。 typ SNA3270_C_ACTはアクティブ接続を示し,SNA3270_C_ PASSはパッシブ接続を示す。 mode_ 希望する接続モード。接続は,SNA3270_C_STREAM_MODE typ 接続またはSNA3270_C_FIELD_MODE接続になる。 io_typ 接続要求をブロック・モードにするか,非ブロック・モ ードにするかを指定するフラグ。SNA3270_C_BLOCKのみ 指定可能。 trans- DEC SNA GatewayとOSF/1アプリケーション間のトランス port ポートプロトコルを指定する。 gateway ゲートウェイ・ノード名文字列。 accname アクセス名文字列。このパラメータがNULL文字列のとき には,パラメータ・リストに必要なIBMアクセス情報を 提供しなければならない。文字列の最大長は16バイト。 luname このセッションで使用するLUの名前。LU名の最大長は32 バイト。このパラメータはNULLでもよい。 IBMホストの中で接続したいPLUアプリケーション名(た pluname とえばCICS)。最大長は8バイト。このパラメータは NULLでもよい。 logmode セッションに関する一連のBIND要求パラメータに対応付 けられたログオン・モード名。最大長は8バイト。この パラメータはNULLでもよい。 user- オプションのユーザ・データ。最大長は128バイト。こ data のパラメータはNULLでもよい。 プロシージャ呼び出し形式 5-23 jsna3270_request_connect authpwd LUを承認するのに使用するパスワード。このパラメータ はNULLでもよい。 char_ 日本語3270 DSPIが画面イメージを構築するのに使用す vec るデータ構造である文字ベクタへのポインタ。OSF/1ア プリケーションは,このデータ構造にメモリ・スペース を割り当てなければなりません。 attr_ 日本語3270 DSPIが画面イメージの属性を格納するのに vec 使用するデータ構造である属性ベクタへのポインタ。属 性ベクタは,文字ベクタと同じサイズでなければなりま せん。OSF/1アプリケーションは,このデータ構造にメ モリ・スペースを割り当てなければなりません。 fdb OSF/1アプリケーションがフィールド属性と操作を指定 するのに使用するデータ構造であるフィールド・ディス クリプタ・ブロックへのポインタ。OSF/1アプリケーシ ョンは,このデータ構造にメモリ・スペースを割り当て なければなりません。 sdb 完全な画面を表わすのに使用するデータ構造であるスク リーン・ディスクリプタ・ブロックへのポインタ。フィ ールド・モード接続の場合には,OSF/1アプリケーショ ンは,jsna3270_request_connectプロシージャを呼び出 す前に,属性ベクタと文字ベクタのサイズに合わせて SDB画面サイズを初期化する必要があります。OSF/1アプ リケーションは,このデータ構造にメモリ・スペースを 割り当てなければなりません。 tcb_ OSF/1アプリケーションと日本語3270 DSPIがアプリケー flag ションの機能特性を指定したりIBMホストからの照会に 応答するのに使用する端末特性フラグへのポインタ。 OSF/1アプリケーションは,このデータ構造にメモリ・ スペースを割り当てなければなりません。 tcb OSF/1アプリケーションと日本語3270 DSPIがOSF/1アプ リケーションの機能特性を指定したりIBMホストからの 照会に応答するのに使用する端末特性ブロックへのポイ ンタ。OSF/1アプリケーションは,このデータ構造にメ モリ・スペースを割り当てなければなりません。 5-24 プロシージャ呼び出し形式 jsna3270_request_connect status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_request_connectプロシージャは,アクティブ要求ま たはパッシブ要求を出して,OSF/1アプリケーションとIBMアプリ ケーションとの間にデータ・ストリーム・モードまたはフィール ド・モードのセッションを確立します。 _________________________________________________________________ 診断項目 jsna3270_request_connectプロシージャは,次のステータス・メ ッセージを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_CONFAI] ゲートウェイとの接続に失敗。詳細はス テータス・ベクタを参照。 [SNA3270_S_ 無効な接続モード。 ILLMODTYP] 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_SVOMIT] ステータス・ベクタが割り当てら れていない。 プロシージャ呼び出し形式 5-25 jsna3270_request_connect [SNA3270_S_CHARVEC] CHAR_VECが短かすぎる。少なくと も'nn'バイトの長さがなければな らない。 [SNA3270_S_ILLCONTYP] 無効な接続タイプ。 [SNA3270_S_INVTRANSTYP] 無効なトランスポート。 [SNA3270_S_PARERR] パラメータが間違っている。 [SNA3270_S_FUNNOTIMP] 指定されたパラメータは現在使用 不可。 [SNA3270_S_NOSUCHSOCK] 無効なセッションID。 [SNA3270_S_INSRES] 資源が不十分。 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 なし 5-26 プロシージャ呼び出し形式 jsna3270_request_disconnect _________________________________________________________________ jsna3270_request_disconnect _________________________________________________________________ 名称 jsna3270_request_disconnect - IBMホストからのセッションを終 了する _________________________________________________________________ 形式 #include jsna3270_request_disconnect (session_id, io_typ, status_ vec) SESSION_ID_DEF session_id; unsigned long int io_typ; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id io_typ 接続要求をブロック・モードにするか,非ブロック・モ ードにするかを指定するフラグ。SNA3270_C_BLOCKのみ 指定可能。 プロシージャ呼び出し形式 5-27 jsna3270_request_disconnect status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_request_disconnectプロシージャは,それが呼び出され るとすぐにセッションを終了します。日本語3270 DSPIは,IBMネ ットワークからセッションを切り離し,セッションのために割り 当てられた資源を解放します。OSF/1アプリケーションは,割り当 てられたすべての資源を解放しなければなりません。 _________________________________________________________________ 診断項目 jsna3270_request_disconnectプロシージャは,次のステータス・ メッセージを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_DISFAI] 切り離しに失敗。ステータス・ベクタを 参照。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] 5-28 プロシージャ呼び出し形式 jsna3270_request_disconnect [SNA3270_S_ 指定されたパラメータは現在使用不可。 FUNNOTIMP] 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 jsna3270_request_connectプロシージャを参照してください。 プロシージャ呼び出し形式 5-29 jsna3270_return_io_port _________________________________________________________________ jsna3270_return_io_port _________________________________________________________________ 名称 jsna3270_return_io_port -データの送受信で使用されるI/Oポー トを返す。 _________________________________________________________________ 形式 #include jsna3270_return_io_port (session_id, io_port, status_vec) SESSION_ID_DEF session_id; unsigned long int *io_port; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id io_port プロシージャがI/Oポートを返す変数へのポインタ。 5-30 プロシージャ呼び出し形式 jsna3270_return_io_port status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_return_io_portプロシージャを呼び出すことによって, 日本語3270 DSPIは,下層レイヤでのデータの送受信に使用される I/Oポート(OSF/1の場合socket id)を返します。 _________________________________________________________________ 診断項目 jsna3270_return_io_portプロシージャは,次のステータス・メッ セージを返します。 [SNA3270_S_OK] 成功。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_SVOMIT] ステータスベクタが割り当てられていな い。 [SNA3270_S_ 無効なセッション識別子。 NOSUCHSOCK] [SNA3270_S_RETIOFAI] I/Oポートの取得に失敗。詳細は,ステー タス・ベクタを参照。 プロシージャ呼び出し形式 5-31 jsna3270_return_io_port _________________________________________________________________ 制限事項 なし 5-32 プロシージャ呼び出し形式 jsna3270_set_owner _________________________________________________________________ jsna3270_set_owner _________________________________________________________________ 名称 jsna3270_set_owner -アプリケーションはこのプロシージャを使 用して,セッションがSSCPまたはLUのどちらによって所有されて いるか,あるいは所有されていないかを日本語3270 DSPIに知らせ る _________________________________________________________________ 形式 #include jsna3270_set_owner (session_id, owner, status_vec) SESSION_ID_DEF session_id; unsigned int owner; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ jsna3270_request_connectによって返されるセッション id 識別子値。 owner SNA3270_C_SSCP_OWNED,SNA3270_C_LU_OWNED,SNA3270_ C_UNOWNEDのいずれかに設定する。 プロシージャ呼び出し形式 5-33 jsna3270_set_owner status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 OSF/1アプリケーションは,jsna3270_set_ownerプロシージャを使 用して,セッションがSSCPまたはLUのどちらによって所有されて いるのか,あるいは所有されていないのかを日本語3270 DSPIに知 らせます。 _________________________________________________________________ 診断項目 jsna3270_set_ownerプロシージャは,次のステータス・メッセー ジを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_SETFAI] 画面所有者を要求された所有者に設定で きなかった。 [SNA3270_S_LUSTAT_ ユーザがLUステータスをIBMホストに送信 DUE] しなければならない。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 5-34 プロシージャ呼び出し形式 jsna3270_set_owner [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] [SNA3270_S_PARERR] パラメータが間違っている。 [SNA3270_S_NO_SSCP] SSCPセッションが使用できない。 [SNA3270_S_NYT] 送信する番になっていない。 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 なし プロシージャ呼び出し形式 5-35 jsna3270_transmit_screen _________________________________________________________________ jsna3270_transmit_screen _________________________________________________________________ 名称 jsna3270_transmit_screen -画面を作成し送信する _________________________________________________________________ 形式 #include jsna3270_transmit_screen (session_id, sesidx, io_typ, aid, status_vec, wsf_cb) SESSION_ID_DEF session_id; unsigned int sesidx; unsigned long int io_typ; unsigned char aid; STATUS_RTN status_vec[]; SENSE_CODE (*wsf_cb)( ); _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッションID。 id sesidx データをSSCPに送信するときにはSNA3270_SSCPに設定 し,それ以外のときにはSNA3270_LULUに設定する。 5-36 プロシージャ呼び出し形式 jsna3270_transmit_screen io_typ 接続要求をブロック・モードにするか,非ブロック・モ ードにするかを指定するフラグ。SNA3270_C_BLOCKのみ 指定可能。 aid アテンション識別(AID)は,アプリケーションがホスト に送信して,データ・ストリームを送信した処置や機能 に注意を向けさせるコード。 status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 wsf_cb 画面送信コールバック・ルーチン。write structured fieldをIBMホストに送信する前に,このプロシージャが 呼び出されて,インバウンドwrite structured fieldデ ータを作成する。アプリケーションがコールバック・ル ーチンを必要としないときにはNULLを使用する。 _________________________________________________________________ 機能説明 jsna3270_transmit_screenプロシージャは,文字ベクタと属性 ベクタを解析して,3270データ・ストリームを生成し,完全なス トリームをIBMホストに送信します。データをIBMホストに送信す る前に,日本語3270 DSPIは,送信するインバウンド構造化フィ ールド・データがあるかどうかをチェックします。そしてwrite structured fieldデータを受けるコールバック・ルーチンが呼び 出されます。この時,インバウンド構造化フィールド・データを 送信するコールバック・ルーチンがアプリケーションになければ なりません。 プロシージャ呼び出し形式 5-37 jsna3270_transmit_screen _________________________________________________________________ 診断項目 jsna3270_transmit_screenプロシージャは,次のステータス・メ ッセージを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_ 画面送信に失敗した。ステータス・ベク XMITSCRFAI] タを参照。 [SNA3270_S_NOT_ セッションの所有者でない。 OWNER] 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] [SNA3270_S_ フィールド・モードになっていない。 NOTINFMOD] [SNA3270_S_INSRES] 資源が不十分。 [SNA3270_S_PARERR] パラメータが間違っている。 [SNA3270_S_NYT] 送信する番になっていない。 [SNA3270_S_NO_SSCP] SSCPセッションが使用できない。 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 フィールド・モードでのみ使用可能。 5-38 プロシージャ呼び出し形式 jsna3270_transmit_screen _________________________________________________________________ 関連項目 jsna3270_write_fieldプロシージャを参照してください。 プロシージャ呼び出し形式 5-39 jsna3270_transmit_sna_cmd _________________________________________________________________ jsna3270_transmit_sna_cmd _________________________________________________________________ 名称 jsna3270_transmit_sna_cmd - out-of-band要求を送信する _________________________________________________________________ 形式 #include jsna3270_transmit_sna_cmd (session_id, io_typ, cmd, status_ vec) SESSION_ID_DEF session_id; unsigned long int io_typ; unsigned int cmd; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id io_typ 接続要求をブロック・モードにするか,非ブロック・モ ードにするかを指定するフラグ。SNA3270_C_BLOCKのみ 指定可能。 5-40 プロシージャ呼び出し形式 jsna3270_transmit_sna_cmd cmd SNAコマンド。有効なコマンドには次のものがある。 o SNA3270_CMD_NOTIFY_ON o SNA3270_CMD_NOTIFY_OFF o SNA3270_CMD_LUSTAT o SNA3270_CMD_SIGNAL status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_transmit_sna_cmdプロシージャは,OSF/1アプリケーシ ョンにSNA要求をIBMホストに送信するメカニズムを提供します。 アプリケーションがNOTIFY,LUSTAT,SIGNALなどのコマンドを送 信する必要がある場合にこのプロシージャを使用します。 _________________________________________________________________ 診断項目 jsna3270_transmit_sna_cmdプロシージャは,次のステータス・メ ッセージを返します。 [SNA3270_S_OK] 成功。 プロシージャ呼び出し形式 5-41 jsna3270_transmit_sna_cmd [SNA3270_S_ コマンドの送信に失敗した。ステータ XMITSNAFAI] ス・ベクタを参照。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_NO_SSCP] SSCP-LUセッションがない。 [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] [SNA3270_S_INSRES] 資源が不十分。 [SNA3270_S_PARERR] パラメータが間違っている。 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 jsna3270_transmit_screenとjsna3270_transmit_streamプロシー ジャを参照してください。 5-42 プロシージャ呼び出し形式 jsna3270_transmit_stream _________________________________________________________________ jsna3270_transmit_stream _________________________________________________________________ 名称 jsna3270_transmit_stream -完全な3270データ・ストリームをIBM ホストに送信する _________________________________________________________________ 形式 #include jsna3270_transmit_stream (session_id, sesidx, io_typ, buf, length, last_flag, status_vec) SESSION_ID_DEF session_id; unsigned int *sesidx; unsigned long int io_typ; char *buf; unsigned int length; unsigned int last_flag; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられたセッション識別子。 id sesidx データをSSCPに送信するときにはSNA3270_SSCPに設定 し,それ以外のときにはSNA3270_LULUに設定する。 プロシージャ呼び出し形式 5-43 jsna3270_transmit_stream io_typ 接続要求をブロック・モードにするか,非ブロック・モ ードにするかを指定するフラグ。SNA3270_C_BLOCKのみ 指定可能。 buf アプリケーションが用意している3270データ・ストリー ムの入ったバッファへのポインタ。 length 3270データ・ストリームの長さ。 last- RU/チェイン状態を示すのに使用されるフラグ。このフ flag ラグは,次のように設定する。 o SNA3270_C_NOT_LAST−送信されるRUが最後のRUで ない。 o SNA3270_C_LAST_RU−これは送信される最後のRU。 これによって,ECIとCDIがセットされる。 o SNA3270_C_LAST_IN_CHAIN−送信されるRUがチェイ ンの中の最後のRU。まだ送信されていないチェイ ン・データがある。これによって,ECIがセットさ れる。 status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_transmit_streamプロシージャは,完全な3270データ・ ストリームをIBMホストに送信します。 5-44 プロシージャ呼び出し形式 jsna3270_transmit_stream _________________________________________________________________ 診断項目 jsna3270_transmit_streamプロシージャは,次のステータス・メ ッセージを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_ 送信に失敗した。ステータス・ベクタを XMITSTRFAI] 参照。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] [SNA3270_S_NYT] 送信する番になっていない。 [SNA3270_S_NO_SSCP] SSCPセッションが使用できない。 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 なし プロシージャ呼び出し形式 5-45 jsna3270_write_field _________________________________________________________________ jsna3270_write_field _________________________________________________________________ 名称 jsna3270_write_field - 3270画面イメージにフィールドを書き込 む _________________________________________________________________ 形式 #include jsna3270_write_field (session_id, buf, length, status_vec) SESSION_ID_DEF session_id; char *buf; unsigned int length; STATUS_RTN status_vec[]; _________________________________________________________________ 引数 session_ 接続時に割り当てられるセッション識別子。 id buf 指定されたフィールドに書き込まれるデータが入ってい るバッファへのポインタ。 length データの長さ。 5-46 プロシージャ呼び出し形式 jsna3270_write_field status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 _________________________________________________________________ 機能説明 jsna3270_write_fieldプロシージャは,3270画面イメージにフィ ールドを書き込みます。jsna3270_read_fieldと同様に,呼び出し 側がFDBデータ構造の中でフィールドを指定します。 _________________________________________________________________ 診断項目 jsna3270_write_fieldプロシージャは,次のステータス・メッセ ージを返します。 [SNA3270_S_OK] 成功。 [SNA3270_S_OK_TRUNC] 成功。データが切り捨てられている。 [SNA3270_S_WTFLDFAI] フィールドの書き込みに失敗した。ステ ータス・ベクタを参照。 呼び出しに失敗したときには,プロシージャはステータス・ベク タの中に関連コード(1つまたは複数)を返します。 [SNA3270_S_ 無効なセッションID。 NOSUCHSOCK] プロシージャ呼び出し形式 5-47 jsna3270_write_field [SNA3270_S_ フィールド・モードになっていない。 NOTINFMOD] [SNA3270_S_NOINPUT] WRITE_FIELDの入力データがない。 [SNA3270_S_ FDBの中のバッファ・オフセットがフィー BADOFFSET] ルドの先頭になっていない。 [SNA3270_S_BADLEN] 読取り/書込みフィールド要求で間違っ たバッファの長さが指定された。 [SNA3270_S_ フィールドが保護されており,変更でき PROTECTED] ない。 [SNA3270_S_NUMERIC] データは数値でなければならない。 上記以外のステータス・コードを受信したときには,付録 Bまた は付録 Dを参照してください。 _________________________________________________________________ 制限事項 フィールド・モードでのみ使用可能。 _________________________________________________________________ 関連項目 jsna3270_read_fieldプロシージャも参照してください。 5-48 プロシージャ呼び出し形式 sna_as2eb _________________________________________________________________ sna_as2eb _________________________________________________________________ 名称 sna_as2eb -与えられたバッファ・データを,ISO Latinから EBCDIC文字セットに変換します _________________________________________________________________ 形式 #include sna_as2eb (inbuf, outbuf, length) char *inbuf; char *outbuf; unsigned int length; _________________________________________________________________ 引数 inbuf ISO Latinデータの入った入力バッファ。 outbuf EBCDICデータの入った出力バッファ。 length 入力データの長さを指定する。 プロシージャ呼び出し形式 5-49 sna_as2eb _________________________________________________________________ 機能説明 as2ebユーティリティは,ISO LatinデータのバッファをEBCDIC文 字セットに変換します。 _________________________________________________________________ 診断項目 sna_as2ebユーティリティは,次のステータス・メッセージを返し ます。 [SNA_S_OK] 成功。 [SNA_S_LENGTH] バッファの長さが無効。 _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 sna_eb2asも参照してください。変換テーブルの変更あるいは新規 の作成に関しては,第4.3.2項を参照してください。 5-50 プロシージャ呼び出し形式 sna_eb2as _________________________________________________________________ sna_eb2as _________________________________________________________________ 名称 sna_eb2as -与えられたバッファ・データをEBCDICからISO Latin 文字セットに変換します。 _________________________________________________________________ 形式 #include sna_eb2as (inbuf, outbuf, length) char *inbuf; char *outbuf; unsigned int length; _________________________________________________________________ 引数 inbuf EBCDICデータの入った入力バッファ。 outbuf ISO Latinデータの入った出力バッファ。 length 入力データの長さを指定する。 プロシージャ呼び出し形式 5-51 sna_eb2as _________________________________________________________________ 機能説明 eb2asユーティリティは,EBCDICデータのバッファをISO Latin文 字セットに変換します。 _________________________________________________________________ 診断項目 sna_eb2asユーティリティは,次のステータス・メッセージを返し ます。 [SNA_S_OK] 成功。 [SNA_S_LENGTH] バッファの長さが無効。 _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 sna_as2ebも参照してください。変換テーブルの変更あるいは新規 の作成に関しては,第4.3.2項を参照してください。 5-52 プロシージャ呼び出し形式 jsna_put_msg _________________________________________________________________ jsna_put_msg _________________________________________________________________ 名称 jsna_put_msg -エラー・コードが与えられると,jsna_put_msgユ ーティリティは,エラー・メッセージまたは情報メッセージを標 準エラー・ファイルに書き込みます。 _________________________________________________________________ 形式 #include jsna_put_msg (facility, status_vec, locale) char *facility; STATUS_RTN status_vec[]; const char *locale; _________________________________________________________________ 引数 facility SNAなどのファシリティ名を指定する。 プロシージャ呼び出し形式 5-53 jsna_put_msg status_ OSF/1アプリケーションがメモリを割り当てて,日本 vec 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサイ ズSNA3270_C_SV_SIZEのベクタ。ステータス・ベクタ には,status_vec[0]からstatus_vec[15]までの最大16 個のエントリが入っている。最初のエントリ(status_ vec[0])には,ベクタの中で返されるステータス・コー ド数が入っている。 locale 将来の拡張用に予約。 _________________________________________________________________ 機能説明 jsna_put_msgユーティリティは,指定されたエラー・コード(1つ または複数)のエラー・メッセージまたは情報メッセージを標準 エラー・ファイルに書き込みます。 _________________________________________________________________ 診断項目 jsna_put_msgユーティリティは,次のステータス・メッセージを 返します。 [SNA_S_OK] 成功。 [SNA_S_NOTFOUND] 所定のステータス・コードのメッセージ がみつからない。 [SNA_S_OPENFAIL] メッセージ・ファイルのオープンに失敗 した。 _________________________________________________________________ 制限事項 なし 5-54 プロシージャ呼び出し形式 jsna_put_msg _________________________________________________________________ 関連項目 jsna_get_msgユーティリティも参照してください。 プロシージャ呼び出し形式 5-55 jsna_get_msg _________________________________________________________________ jsna_get_msg _________________________________________________________________ 名称 jsna_get_msg - jsna_get_msgユーティリティは,所定のエラー・ コードのエラー・メッセージまたは情報メッセージを返します。 _________________________________________________________________ 形式 #include jsna_get_msg (facility, status_vec, buffer_return, buffer_ length, locale) char *facility; STATUS_RTN status_vec[]; char *buffer_return; unsigned int buffer_length; const char *locale; _________________________________________________________________ 引数 facility SNAなどのファシリティ名を指定する。 5-56 プロシージャ呼び出し形式 jsna_get_msg status_vec OSF/1アプリケーションがメモリを割り当てて,日本 語3270 DSPIがユーザに完全なステータス情報を提供 するために使用するデータ・タイプSTATUS_RTNとサ イズSNA3270_C_SV_SIZEのベクタ。ステータス・ベク タには,status_vec[0]からstatus_vec[15]までの 最大16個のエントリが入っている。最初のエントリ (status_vec[0])には,ベクタの中で返されるステー タス・コード数が入っている。 buffer_ エラー・メッセージを格納するバッファへのポイン return タ。 buffer_ リターン・バッファの長さを指定する。 length locale 将来の拡張用に予約。 _________________________________________________________________ 機能説明 jsna_get_msgユーティリティは,所定のエラー・コード(1つま たは複数)のエラー・メッセージまたは情報メッセージを返しま す。 _________________________________________________________________ 診断項目 jsna_get_msgユーティリティは,次のステータス・メッセージを 返します。 [SNA_S_OK] 成功。 [SNA_S_NOTFOUND] 指定されたステータス・コードのメッセ ージがみつからない。 [SNA_S_OPENFAIL] メッセージ・ファイルのオープンに失敗 した。 プロシージャ呼び出し形式 5-57 jsna_get_msg [SNA_S_TRUNC] 出力バッファが適切な大きさではない。 [SNA_S_LENGTH] バッファの長さが無効。 _________________________________________________________________ 制限事項 なし _________________________________________________________________ 関連項目 jsna_put_msgユーティリティも参照してください。 5-58 プロシージャ呼び出し形式 6 _________________________________________________________________ 日本語3270 DSPIのインストレーション この章では,setldインストレーション・プロシージャを使用して OSF/1システム上に日本語DEC SNA 3270データ・ストリーム・プロ グラミング・インタフェースfor DEC OSF/1(日本語3270 DSPI) をインストールする方法について説明します。第6.9節では,イン ストレーション時に作成される日本語3270 DSPIファイルについ て,第6.10節では,システム上で実行されるインストレーション について説明します。 _________________________________________________________________ 6.1 インストレーション必要事項の確認 表 6-1を参照して,ホスト・システムが必要なすべてのソフトウ ェア,十分なディスク領域,ならびにDEC SNA Gateway製品のいず れか1つをアクセスする能力を備えているかどうかを確認してく ださい。 表 6-1 日本語3270 DSPIのインストレーション必要事項 ___________________________________________________________ 必要事項______________項目_________________________________ 配布メディア CD-ROM 必須ソフトウェア OSF/1 V3.0A 以下のDEC SNA Gateway製品の内,いずれ か1つが必要 DEC SNA Peer Server V1.2 DECnet/SNA Gateway-ST V1.2A DECnet/SNA Gateway-CT V2.1A 特権 スーパーユーザ・レベル ___________________________________________________________ (次ページに続く) 日本語3270 DSPIのインストレーション 6-1 日本語3270 DSPIのインストレーション 6.1インストレーション必要事項の確認 表 6-1 (続き) 日本語3270 DSPIのインストレーション必要事項 ___________________________________________________________ 必要事項______________項目_________________________________ ディスク・スぺース 3200 KB インストレーションに 約10分 必要な時間 PAK___________________ソフトウェア・ライセンス_____________ ________________________ 注意 ________________________ 本書における, 'DEC SNA Gateway'とは,特に断らない限り, DEC SNA Peer Server, DECnet/SNA Gateway-ST ,DECnet/SNA Gateway-CTを意味します。 ______________________________________________________ _________________________________________________________________ 6.2 必須ソフトウェア・サブセットの確認 日本語3270 DSPIをインストールする前に,表 6-1に示すソフトウ ェアがインストールされていなければなりません。 次の表 6-2に,日本語DEC OSF/1の必要なサブセットを示します。 表 6-2 必要なサブセット ___________________________________________________________ サブセット______説明_______________________________________ _________________日本語DEC_OSF/1サブセット_________________ OSFBASEnnn Base System OSFDCMTnnn______Preparation_Tools__________________________ 6-2 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.2必須ソフトウェア・サブセットの確認 ________________________ 注意 ________________________ o nnnは現在のメジャーバージョンと現在のメンテナンス バージョンを示します。 o OSFDCMTnnnは日本語リファレンス・ページをインスト ールする時に必要となるサブセットです。 o トランスポートとしてDECnetを使用する場合, DECnet/OSI(DNABASEnnn)が必要です。 ______________________________________________________ 表 6-2のサブセットがシステムにインストールされているかどう かを調べるには,日本語3270 DSPIをインストールする予定のシス テムにログインし,次のコマンドを入力してください。 # /etc/setld -i | grep subset-name subset- 検索するサブセット名 name DEC OSF/1環境で,レイヤード製品をインストールする場合の詳細 については,日本語DEC OSF/1 AXPのドキュメントを参照してくだ さい。 インストレーションに必要な時間は,システム構成により約5〜 10分掛かります。 _________________________________________________________________ 6.3 IBMホスト・システムへのアクセスの確認 日本語3270 DSPIの機能を使用するにはDEC SNA Gatewayを介して IBMシステムにアクセスする必要があります。本製品をインストー ルして使用する前に,あらかじめDEC SNA Gatewayを確実にインス トールしておく必要があります。これらの製品のインストールに 関する詳細は,各製品のインストレーション・ガイドを参照して ください。 日本語3270 DSPIのインストレーション 6-3 日本語3270 DSPIのインストレーション 6.4システム・ディスクのバックアップ _________________________________________________________________ 6.4 システム・ディスクのバックアップ ソフトウェアをインストールする前に,システム・ディスクのバ ックアップをとっておくことをお勧めします。このためには,そ れぞれのサイトで設定されたバックアップ・プロシージャを使用 してください。システム・ディスク・バックアップの実行方法に ついては,OSF/1のドキュメントを参照してください。 _________________________________________________________________ 6.5 ライセンスPAKの登録 日本語3270 DSPIプロダクトは,OSF/1ライセンス管理機能(LMF)を サポートしています。新しくライセンスが承認されたノードで日 本語3270 DSPIを使用するには,ライセンス・データベース(LDB) にライセンス・プロダクト・オーソライゼイション・キー(ライセ ンスPAK=Product Authorization Key)を登録しなければなりませ ん。 ライセンスとメディアを一緒に注文した場合は,ライセンスPAKが キットと共に配布されます。それ以外の場合には,PAKはライセン ス注文書に示された場所に別個に配布されます。すでにライセン スをもっているノード上に更新として日本語3270 DSPIをインスト ールする場合には,ライセンスPAK登録は既に完了しています。 第6.7節では,PAKの登録方法について説明します。詳しくは, 『DEC OSF/1 Guide to Software Licensing』またはリファレン ス・ページのlmf(8)を参照してください. _________________________________________________________________ 6.6 問題点の通知 本ソフトウェアについては,日本DEC所定のソフトウェア保証基準 に定められた保証が提供されますので,その内容にしたがった処 置をとってください。 なお,ご不明な点につきましては,日本DECの各支店/営業所にお 問い合せください。 6-4 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.7インストレーション方法 _________________________________________________________________ 6.7 インストレーション方法 ソフトウェアをインストールするには,setld インストレーシ ョン・プロシージャを使用します。このプロシージャを実行する と,一連の質問とともにプロンプトが出されます。ほとんどのプ ロンプトは,肯定(yまたはY)または否定(nまたはN)の答を求 めるものです。を入力すれば,いつでもインストレーシ ョン・プロシージャを中断できます。 OSF/1ホストに配布キットをインストールするには,スーパーユー ザ・アカウントにログインすることが必要です。 6.7.1 CD-ROMからのインストレーション 日本語3270 DSPIをインストールするには、配布キットのCD-ROMを マウントしてから、setldインストレーション・プロシージャを使 用します。以下に、詳細にそのプロシージャを記載します。 1. まず、CD-ROM中の日本語3270 DSPIのファイルのロケーショ ンを確認します。CD-ROMに含まれるファイルの一覧につい ては、Consolidated Software Distribution Disk User's Guideの索引表を参照してください。 2. CD-ROMをCDドライブに設置し、CDドライブのデバイス名でマ ウントします。 # mount -r -d /dev/dev_name /mnt dev_name CDドライブのデバイス名 3. setldインストレーション・プロシージャを使用して日本語 3270 DSPIをインストールします。 # setld -l /mnt/SJD100/kit インストレーション・プロシージャは次のメッセージを表示 します。 Please make sure your installation tape is mounted and on-line. Are you ready? (y/n) 日本語3270 DSPIのインストレーション 6-5 日本語3270 DSPIのインストレーション 6.7インストレーション方法 サブセットの選択 インストレーションを続ける場合は,yを入力します。プロ シージャは以下に示す,メッセージとサブセット・メニュー を表示します。 DEC SNA 3270 Data Stream Programming Interface/Japanese for DEC OSF/1, V1.0 Copyright Digital Equipment Corporation. 1995. All Rights Reserved. This software is proprietary to and embodies the confidential technology of Digital Equipment Corporation. Possession, use, duplication or dissemination of this software and media is authorized only pursuant to a valid written license from Digital Equipment Corporation or an authorized sublicensor. The subsets listed below are optional: There may be more optional subsets than can be presented on a single screen. If this is the case, you can choose subsets screen by screen or all at once on the last screen. All of the choices you make will be collected for your confirmation before any subsets are installed. 1) DEC SNA 3270 DSPI/J Man Pages 2) DEC SNA 3270 DSPI/Japanese 3) DEC/IBM Code conv Man Pages 4) DEC/IBM Code conv Utility 5) DEC/IBM DBCS TRA Library 6) DEC/IBM DBCS TRA Man Pages 7) DEC/IBM ext-KANJI def Man Pages 8) DEC/IBM ext-KANJI def Utility 9) EBCDIC-ASCII Transtable Man Pages 10) EBCDIC-ASCII Transtable Utility Or you may choose one of the following options: 11) ALL of the above 12) CANCEL selections and redisplay menus 13) EXIT without installing any subsets Enter your choices or press RETURN to redisplay menus. Choices (for example, 1 2 4-6): 11 インストレーションを続行する場合は,1〜13のオプション を選択します。 o 1を選択すると,日本語3270 DSPIのアプリケーション・ インターフェイスについて記述したオンライン・リファ 6-6 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.7インストレーション方法 レンス・ページ(マニュアル・ページ)をインストール します。 o 2を選択すると,日本語3270 DSPIのアプリケーション・ インターフェイスのライブラリをインストールします。 o 3を選択すると,jsnacodeユーティリティのオンライ ン・リファレンス・ページ(マニュアル・ページ)をイ ンストールします。 o 4を選択すると,jsnacodeユーティリティのイメージを インストールします。 o 5を選択すると,DEC/IBMコード変換ライブラリをインス トールします。 o 6を選択すると,DEC/IBMコード変換ライブラリのオンラ イン・リファレンス・ページ(マニュアル・ページ)を インストールします。 o 7を選択すると,jsnaknjdefユーティリティのイメージ をインストールします。 o 8を選択すると,jsnaknjdefユーティリティのオンライ ン・リファレンス・ページ(マニュアル・ページ)をイ ンストールします。 o 9を選択すると,jsnatratblユーティリティのイメージ をインストールします。 o 10を選択すると,jsnatratblユーティリティのオンライ ン・リファレンス・ページ(マニュアル・ページ)をイ ンストールします。 o 11を選択すると,1)から10)の全てを指定したことにな り,日本語3270 DSPIのすべての機能を利用できます。 o 12を選択すると,再びメニュー画面を表示し,最初から 選択をやり直すことができます。 o 13を選択すると,サブセットのインストールを行わず に,プロシージャを終了します。 日本語3270 DSPIのインストレーション 6-7 日本語3270 DSPIのインストレーション 6.7インストレーション方法 サブセットの確認 もし,1〜11を選択すると,インストールするサブセットの 一覧を表示し,利用者が行った選択が正しいかどうか,質問 があります。例えば,11を選択した場合には,次のメッセー ジが表示されます。 You are installing the following optional subsets: DEC SNA 3270 DSPI/J Man Pages DEC SNA 3270 DSPI/Japanese DEC/IBM Code conv Man Pages DEC/IBM Code conv Utility DEC/IBM DBCS TRA Library DEC/IBM DBCS TRA Man Pages DEC/IBM ext-KANJI def Man Pages DEC/IBM ext-KANJI def Utility EBCDIC-ASCII Transtable Man Pages EBCDIC-ASCII Transtable Utility Is this correct? (y/n): y yを入力すると,インストレーション・プロシージャはそれ ぞれのサブセット毎にコピーと確認を実施します。nを入力 すると,再びサブセットの一覧を表示します。次の例は,11 を選択し,実行した結果として表示されるメッセージです。 Checking file system space required to install selected subsets: File system space checked OK. DEC/IBM ext-KANJI def Utility Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM ext-KANJI def Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM Code conv Utility Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM Code conv Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying 6-8 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.7インストレーション方法 DEC/IBM DBCS TRA Library Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM DBCS TRA Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying EBCDIC-ASCII Transtable Utility Copying from /mnt/dspi_kits/ (disk) Verifying EBCDIC-ASCII Transtable Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying DEC SNA 3270 DSPI/Japanese Copying from /mnt/dspi_kits/ (disk) Verifying DEC SNA 3270 DSPI/J Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying Creating softlinks for SNJAKDEF210 ... done. インストレーション中のIVPの実行 インストレーション・プロシージャの一部として,インス トレーション検証プロシジャ(IVP)を実行することをお勧 めします。それには,次のメッセージに対してyを入力しま す。 IVPは利用者が選択したサブセットが正しくインストールさ れたかどうか確認します。IVPが終了すると,インストレー ションは完了します。オプション11を選択した場合には,次 のようにメッセージが表示されます。 Would you like to run IVP for SNJAKDEF210? (y/n) [y]: y Beginning the IVP for SNJAKDEF210... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SNJAKDEF210 finished successfully. DEC/IBM ext-KANJI def Utility Configuring "DEC/IBM ext-KANJI def Utility" (SNJAKDEF210) Creating softlinks for SNJAKDMAN210 ... done. 日本語3270 DSPIのインストレーション 6-9 日本語3270 DSPIのインストレーション 6.7インストレーション方法 Would you like to run IVP for SNJAKDMAN210? (y/n) [y]: y Beginning the IVP for SNJAKDMAN210... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SNJAKDMAN210 finished successfully. DEC/IBM ext-KANJI def Man Pages Configuring "DEC/IBM ext-KANJI def Man Pages" (SNJAKDMAN210) ********************* N O T E *********************** * * * You must register a licensed DEC SNA 3270 Data Stream * * Programming Interface /Japanese for DEC OSF/1 PAK * * first before you can begin using the CODE CONV UTIL. * * * * After the installation, please modify the template to * * include your specific PAK data, register, and load * * the license with the following commands: * * * * lmf register /usr/var/adm/lmf/SNA-3270-DSPI-OA-JAPAN * * lmf reset * * * ********************************************************** [ Press the RETURN key to continue ]: Creating softlinks for SJRCODE100 ... done. Would you like to run IVP for SJRCODE100? (y/n) [y]: y Beginning the IVP for SJRCODE100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRCODE100 finished successfully. DEC/IBM Code conv Utility Configuring "DEC/IBM Code conv Utility" (SJRCODE100) Creating softlinks for SJRCMAN100 ... done. Would you like to run IVP for SJRCMAN100? (y/n) [y]: y Beginning the IVP for SJRCMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRCMAN100 finished successfully. DEC/IBM Code conv Man Pages Configuring "DEC/IBM Code conv Man Pages" (SJRCMAN100) 6-10 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.7インストレーション方法 ********************* N O T E *********************** * * * You must register a licensed DEC SNA 3270 Data Stream * * Programming Interface /Japanese for DEC OSF/1 PAK * * first before you can begin using the TRA Library. * * * * After the installation, please modify the template to * * include your specific PAK data, register, and load * * the license with the following commands: * * * * lmf register /usr/var/adm/lmf/SNA-3270-DSPI-OA-JAPAN * * lmf reset * * * ********************************************************** [ Press the RETURN key to continue ]: Creating softlinks for SJRTRA100 ... done. Would you like to run IVP for SJRTRA100? (y/n) [y]: y Beginning the IVP for SJRTRA100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTRA100 finished successfully. DEC/IBM DBCS TRA Library Configuring "DEC/IBM DBCS TRA Library" (SJRTRA100) Creating softlinks for SJRTRMAN100 ... done. Would you like to run IVP for SJRTRMAN100? (y/n) [y]: y Beginning the IVP for SJRTRMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTRMAN100 finished successfully. DEC/IBM DBCS TRA Man Pages Configuring "DEC/IBM DBCS TRA Man Pages" (SJRTRMAN100) Creating softlinks for SJRTTBL100 ... done. Would you like to run IVP for SJRTTBL100? (y/n) [y]: y Beginning the IVP for SJRTTBL100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTTBL100 finished successfully. EBCDIC-ASCII Transtable Utility Configuring "EBCDIC-ASCII Transtable Utility" (SJRTTBL100) Creating softlinks for SJRTTMAN100 ... done. 日本語3270 DSPIのインストレーション 6-11 日本語3270 DSPIのインストレーション 6.7インストレーション方法 Would you like to run IVP for SJRTTMAN100? (y/n) [y]: y Beginning the IVP for SJRTTMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTTMAN100 finished successfully. EBCDIC-ASCII Transtable Man Pages Configuring "EBCDIC-ASCII Transtable Man Pages" (SJRTTMAN100) ********************* N O T E *********************** * * * You must register a licensed DEC SNA 3270 Data Stream * * Programming Interface /Japanese for DEC OSF/1 PAK * * first before you can begin using the DSPI. * * * * After the installation, please modify the template to * * include your specific PAK data, register, and load * * the license with the following commands: * * * * lmf register /usr/var/adm/lmf/SNA-3270-DSPI-OA-JAPAN * * lmf reset * * * ********************************************************** [ Press the RETURN key to continue ]: Creating softlinks for SJDDSPI100 ... done. Would you like to run IVP for SJDDSPI100? (y/n) [y]: y Beginning the IVP for SJDDSPI100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJDDSPI100 finished successfully. DEC SNA 3270 DSPI/Japanese Configuring "DEC SNA 3270 DSPI/Japanese" (SJDDSPI100) Creating softlinks for SJDDSMAN100 ... done. Would you like to run IVP for SJDDSMAN100? (y/n) [y]: y Beginning the IVP for SJDDSMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJDDSMAN100 finished successfully. DEC SNA 3270 DSPI/J Man Pages Configuring "DEC SNA 3270 DSPI/J Man Pages" (SJDDSMAN100) 6-12 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.7インストレーション方法 サブセットが正常にインストールされなかった場合には, IVPは次のメッセージを表示して,インストレーションが失 敗したことを知らせます。 Running IVP for SJDDSPI100 IVP for SJDDSPI100 failed. 6.7.2 IVPの実行方法 日本語3270 DSPIソフトウェア・サブセットをインストールした後 であれば,いつでもインストレーション検証プロシージャ(IVP)を 実行できます。そのためには,スーパーユーザとしてログインし なければなりません。setld -vと入力した後に,次の例に示すよ うに,確認したいサブセット名を入力します。 # setld -v SJDDSPI100 SJDDSMAN100 この例でわかるように,一度に複数のサブセットの名前を指定す ることができます。それぞれのサブセット名は大文字で指定し, スペースで区切るようにします。IVPを正しく実行できた例を次に 示します。 # setld -v SJDDSPI100 DEC SNA 3270 DSPI/Japanese(SJDDSPI100) Beginning the IVP for SJDDSPI100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJDDSPI100 finished successfully. DEC SNA 3270 DSPI/Japanese 6.7.3 IVPが失敗した場合 IVPが失敗した場合には,次のようなメッセージが出されます。 DEC SNA 3270 DSPI/Japanese(SJDDSPI100) Beginning the IVP for SJDDSPI100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJDDSPI100 failed DEC SNA 3270 DSPI/Japanese 日本語3270 DSPIのインストレーション 6-13 日本語3270 DSPIのインストレーション 6.8内部コマンド・テーブルの再構築 _________________________________________________________________ 6.8 内部コマンド・テーブルの再構築 日本語3270 DSPIをインストールしたら,OSF/1スーパーユーザ・ プロンプトに対して rehashコマンドを入力します。このコマンド は,パスにあるディレクトリに存在する内部コマンド・テーブル を再構築するようにOSF/1シェルに指示します。このコマンドにつ いては,『OSF/1 Reference Pages』のrehash(1)を参照してくだ さい。 # rehash _________________________________________________________________ 6.9 インストレーション後の日本語3270 DSPIファイルの配置 setldインストレーション・プロシージャは,日本語3270 DSPIフ ァイルをシステム上に配置します。表 6-3は,日本語3270 DSPIフ ァイルと説明を一覧にしたもので,それぞれの位置も示してあり ます。 表 6-3 日本語3270 DSPIファイル _________________________________________________________________ ディレクトリおよびファイル名______説明___________________________ サブセットSJDDSPI100______________日本語3270_DSPI________________ /usr/i18n/usr/examples/jsna3270 サンプル・プログラム用Makefile /Makefile /usr/i18n/usr/examples/jsna3270 AMNUトランザクション・プログラ /amnu.c ミング例 /usr/i18n/usr/examples/jsna3270 DEC/IBMコード変換ライブラリ・プ /ispf.c ログラミング例 /usr/i18n/usr/examples/jsna3270 マルチ・セッション・プログラミ /mult_sess.c ング例 _________________________________________________________________ (次ページに続く) 6-14 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ ディレクトリおよびファイル名______説明___________________________ サブセットSJDDSPI100______________日本語3270_DSPI________________ /usr/i18n/usr/examples/jsna3270 ストリーム・モード・プログラミ /stream.c ング例 /usr/i18n/usr/examples/jsna3270 Write Structured Fieldプログラ /wsf.c ミング例 /usr/i18n/usr/include/sna 3270 DSPIの定義が含まれているヘ /jsna3270.h ッダー・ファイル /usr/i18n/usr/lib/libjsna3270.a 日本語DEC SNA DSPIライブラリ /usr/lib/sna/ja_JP/jsna3270_ メッセージ・ファイル msg.cat _________________________________________________________________ (次ページに続く) 日本語3270 DSPIのインストレーション 6-15 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ _________________________________________________________________ 日本語3270 DSPIリファレンス・ペ サブセットSJDDSMAN100_____________ージ___________________________ /usr/i18n/usr/share/ja_ jsna3270_acknowledge サブルーチ JP.deckanji/man/man3/jsna3270_ ン・マンページ acknowledge.3 /usr/i18n/usr/share/ja_ jsna3270_free_buffer サブルーチ JP.deckanji/man/man3/jsna3270_ ン・マンページ free_buffer.3 /usr/i18n/usr/share/ja_ jsna3270_lock_screen サブルーチ JP.deckanji/man/man3/jsna3270_ ン・マンページ lock_screen.3 /usr/i18n/usr/share/ja_ jsna3270_read_field サブルーチ JP.deckanji/man/man3/jsna3270_ ン・マンページ read_field.3 _________________________________________________________________ (次ページに続く) 6-16 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ ディレクトリおよびファイル名______説明___________________________ 日本語3270 DSPIリファレンス・ペ サブセットSJDDSMAN100_____________ージ___________________________ /usr/i18n/usr/share/ja_ jsna3270_receive_screen サブル JP.deckanji/man/man3/jsna3270_ ーチン・マンページ receive_screen.3 /usr/i18n/usr/share/ja_ jsna3270_receive_stream サブル JP.deckanji/man/man3/jsna3270_ ーチン・マンページ receive_stream.3 /usr/i18n/usr/share/ja_ jsna3270_request_connect サブル JP.deckanji/man/man3/jsna3270_ ーチン・マンページ request_connect.3 /usr/i18n/usr/share/ja_ jsna3270_request_disconnect サ JP.deckanji/man/man3/jsna3270_ ブルーチン・マンページ request_disconnect.3 _________________________________________________________________ (次ページに続く) 日本語3270 DSPIのインストレーション 6-17 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ ディレクトリおよびファイル名______説明___________________________ 日本語3270 DSPIリファレンス・ペ サブセットSJDDSMAN100_____________ージ___________________________ /usr/i18n/usr/share/ja_ jsna3270_return_io_port サブル JP.deckanji/man/man3/jsna3270_ ーチン・マンページ return_io_port.3 /usr/i18n/usr/share/ja_ jsna3270_set_owner サブルーチ JP.deckanji/man/man3/jsna3270_ ン・マンページ set_owner.3 /usr/i18n/usr/share/ja_ jsna3270_transmit_screen サブル JP.deckanji/man/man3/jsna3270_ ーチン・マンページ transmit_screen.3 /usr/i18n/usr/share/ja_ jsna3270_transmit_sna_cmd サブ JP.deckanji/man/man3/jsna3270_ ルーチン・マンページ transmit_sna_cmd.3 _________________________________________________________________ (次ページに続く) 6-18 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ ディレクトリおよびファイル名______説明___________________________ 日本語3270 DSPIリファレンス・ペ サブセットSJDDSMAN100_____________ージ___________________________ /usr/i18n/usr/share/ja_ jsna3270_transmit_stream サブル JP.deckanji/man/man3/jsna3270_ ーチン・マンページ transmit_stream.3 /usr/i18n/usr/share/ja_ jsna3270_write_field サブルーチ JP.deckanji/man/man3/jsna3270_ ン・マンページ write_field.3 /usr/i18n/usr/share/ja_ jsna_get_msgサブルーチン・マン JP.deckanji/man/man3/jsna_get_ ページ msg.3 /usr/i18n/usr/share/ja_ jsna_put_msgサブルーチン・マン JP.deckanji/man/man3/jsna_put_ ページ msg.3 /usr/i18n/usr/share/ja_ sna_as2ebサブルーチン・マンペー JP.deckanji/man/man3/sna_as2eb.3 ジ /usr/i18n/usr/share/ja_ sna_eb2asサブルーチン・マンペー JP.deckanji/man/man3/sna_eb2as.3 ジ _________________________________________________________________ サブセットSJRTRA100______________________________________________ /usr/i18n/usr/lib/libtra.a DEC/IBMコード変換ライブラリ /usr/i18n/usr/include/sna/tra_ DEC/IBMコード変換ライブラリ用ヘ def.h ッダー・ファイル _________________________________________________________________ (次ページに続く) 日本語3270 DSPIのインストレーション 6-19 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ _________________________________________________________________ DEC/IBMコード変換ライブラリ・リ サブセットSJRTRMAN100_____________ファレンス・ページ_____________ /usr/i18n/usr/share/ja_ JP.deckanji/man/man3/tra_dec_ ibm_init.3 /usr/i18n/usr/share/ja_ JP.deckanji/man/man3/tra_dec_ ibm_free.3 /usr/i18n/usr/share/ja_ JP.deckanji/man/man3/tra_ibm_ dec.3 /usr/i18n/usr/share/ja_ JP.deckanji/man/man3/tra_dec_ ibm.3 _________________________________________________________________ サブセットSNJAKDEF210____________________________________________ /usr/i18n/usr/bin/jsnaknjdef jsnaknjdefユーティリティ _________________________________________________________________ サブセットSNJAKDMAN210___________________________________________ /usr/i18n/usr/share/ja_ jsnaknjdef日本語リファレンス・ JP.deckanji/man/man8 ページ /jsnaknjdef.8 _________________________________________________________________ (次ページに続く) 6-20 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.9インストレーション後の日本語3270 DSPIファイルの配置 表 6-3 (続き) 日本語3270 DSPIファイル _________________________________________________________________ _________________________________________________________________ サブセットSJRCODE100_____________________________________________ /usr/i18n/usr/bin/jsnacode jsnacodeユーティリティ /usr/lib/sna/ja_JP jsnacodeユーティリティ・1バイ /jsnarjetra.tbl トコード変換テーブル /usr/lib/sna/ja_JP jsnacodeユーティリティ・1バイ /jsnarjetra.mar トコード変換テーブル・テンプレ ート・ファイル _________________________________________________________________ サブセットSJRCMAN100_____________________________________________ /usr/i18n/usr/share/ja_ jsnacodeユーティリティ日本語リ JP.deckanji/man/man1/jsnacode.1 ファレンス・ページ _________________________________________________________________ サブセットSJRTTBL100_____________________________________________ /usr/i18n/usr/bin/jsnatratbl jsnatratblユーティリティ _________________________________________________________________ サブセットSJRTTMAN100____________________________________________ /usr/i18n/usr/share/ja_ jsnatratblユーティリティ日本語 JP.deckanji/man/man8 リファレンス・ページ /jsnatratbl.8____________________________________________________ 日本語3270 DSPIのインストレーション 6-21 日本語3270 DSPIのインストレーション 6.10インストレーション例 _________________________________________________________________ 6.10 インストレーション例 ここでは,日本語3270 DSPIのインストレーション例を示します。 これはインストレーションの一例ですので,実際のインストレー ション・プロシージャは多少異なることに注意してください。 # setld -l /mnt/dspi_kits/ DEC SNA 3270 Data Stream Programming Interface/Japanese for DEC OSF/1, V1.0 Copyright Digital Equipment Corporation. 1995. All Rights Reserved. This software is proprietary to and embodies the confidential technology of Digital Equipment Corporation. Possession, use, duplication or dissemination of this software and media is authorized only pursuant to a valid written license from Digital Equipment Corporation or an authorized sublicensor. The subsets listed below are optional: There may be more optional subsets than can be presented on a single screen. If this is the case, you can choose subsets screen by screen or all at once on the last screen. All of the choices you make will be collected for your confirmation before any subsets are installed. 1) DEC SNA 3270 DSPI/J Man Pages 2) DEC SNA 3270 DSPI/Japanese 3) DEC/IBM Code conv Man Pages 4) DEC/IBM Code conv Utility 5) DEC/IBM DBCS TRA Library 6) DEC/IBM DBCS TRA Man Pages 7) DEC/IBM ext-KANJI def Man Pages 8) DEC/IBM ext-KANJI def Utility 9) EBCDIC-ASCII Transtable Man Pages 10) EBCDIC-ASCII Transtable Utility Or you may choose one of the following options: 11) ALL of the above 12) CANCEL selections and redisplay menus 13) EXIT without installing any subsets Enter your choices or press RETURN to redisplay menus. Choices (for example, 1 2 4-6): 11 You are installing the following optional subsets: 6-22 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.10インストレーション例 DEC SNA 3270 DSPI/J Man Pages DEC SNA 3270 DSPI/Japanese DEC/IBM Code conv Man Pages DEC/IBM Code conv Utility DEC/IBM DBCS TRA Library DEC/IBM DBCS TRA Man Pages DEC/IBM ext-KANJI def Man Pages DEC/IBM ext-KANJI def Utility EBCDIC-ASCII Transtable Man Pages EBCDIC-ASCII Transtable Utility Is this correct? (y/n): y Checking file system space required to install selected subsets: File system space checked OK. DEC/IBM ext-KANJI def Utility Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM ext-KANJI def Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM Code conv Utility Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM Code conv Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM DBCS TRA Library Copying from /mnt/dspi_kits/ (disk) Verifying DEC/IBM DBCS TRA Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying EBCDIC-ASCII Transtable Utility Copying from /mnt/dspi_kits/ (disk) Verifying EBCDIC-ASCII Transtable Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying 日本語3270 DSPIのインストレーション 6-23 日本語3270 DSPIのインストレーション 6.10インストレーション例 DEC SNA 3270 DSPI/Japanese Copying from /mnt/dspi_kits/ (disk) Verifying DEC SNA 3270 DSPI/J Man Pages Copying from /mnt/dspi_kits/ (disk) Verifying Creating softlinks for SNJAKDEF210 ... done. Would you like to run IVP for SNJAKDEF210? (y/n) [y]: y Beginning the IVP for SNJAKDEF210... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SNJAKDEF210 finished successfully. DEC/IBM ext-KANJI def Utility Configuring "DEC/IBM ext-KANJI def Utility" (SNJAKDEF210) Creating softlinks for SNJAKDMAN210 ... done. Would you like to run IVP for SNJAKDMAN210? (y/n) [y]: y Beginning the IVP for SNJAKDMAN210... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SNJAKDMAN210 finished successfully. DEC/IBM ext-KANJI def Man Pages Configuring "DEC/IBM ext-KANJI def Man Pages" (SNJAKDMAN210) ********************* N O T E *********************** * * * You must register a licensed DEC SNA 3270 Data Stream * * Programming Interface /Japanese for DEC OSF/1 PAK * * first before you can begin using the CODE CONV UTIL. * * * * After the installation, please modify the template to * * include your specific PAK data, register, and load * * the license with the following commands: * * * * lmf register /usr/var/adm/lmf/SNA-3270-DSPI-OA-JAPAN * * lmf reset * * * ********************************************************** [ Press the RETURN key to continue ]: Creating softlinks for SJRCODE100 ... done. 6-24 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.10インストレーション例 Would you like to run IVP for SJRCODE100? (y/n) [y]: y Beginning the IVP for SJRCODE100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRCODE100 finished successfully. DEC/IBM Code conv Utility Configuring "DEC/IBM Code conv Utility" (SJRCODE100) Creating softlinks for SJRCMAN100 ... done. Would you like to run IVP for SJRCMAN100? (y/n) [y]: y Beginning the IVP for SJRCMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRCMAN100 finished successfully. DEC/IBM Code conv Man Pages Configuring "DEC/IBM Code conv Man Pages" (SJRCMAN100) ********************* N O T E *********************** * * * You must register a licensed DEC SNA 3270 Data Stream * * Programming Interface /Japanese for DEC OSF/1 PAK * * first before you can begin using the TRA Library. * * * * After the installation, please modify the template to * * include your specific PAK data, register, and load * * the license with the following commands: * * * * lmf register /usr/var/adm/lmf/SNA-3270-DSPI-OA-JAPAN * * lmf reset * * * ********************************************************** [ Press the RETURN key to continue ]: Creating softlinks for SJRTRA100 ... done. Would you like to run IVP for SJRTRA100? (y/n) [y]: y Beginning the IVP for SJRTRA100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTRA100 finished successfully. DEC/IBM DBCS TRA Library Configuring "DEC/IBM DBCS TRA Library" (SJRTRA100) Creating softlinks for SJRTRMAN100 ... done. 日本語3270 DSPIのインストレーション 6-25 日本語3270 DSPIのインストレーション 6.10インストレーション例 Would you like to run IVP for SJRTRMAN100? (y/n) [y]: y Beginning the IVP for SJRTRMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTRMAN100 finished successfully. DEC/IBM DBCS TRA Man Pages Configuring "DEC/IBM DBCS TRA Man Pages" (SJRTRMAN100) Creating softlinks for SJRTTBL100 ... done. Would you like to run IVP for SJRTTBL100? (y/n) [y]: y Beginning the IVP for SJRTTBL100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTTBL100 finished successfully. EBCDIC-ASCII Transtable Utility Configuring "EBCDIC-ASCII Transtable Utility" (SJRTTBL100) Creating softlinks for SJRTTMAN100 ... done. Would you like to run IVP for SJRTTMAN100? (y/n) [y]: y Beginning the IVP for SJRTTMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJRTTMAN100 finished successfully. EBCDIC-ASCII Transtable Man Pages Configuring "EBCDIC-ASCII Transtable Man Pages" (SJRTTMAN100) ********************* N O T E *********************** * * * You must register a licensed DEC SNA 3270 Data Stream * * Programming Interface /Japanese for DEC OSF/1 PAK * * first before you can begin using the DSPI. * * * * After the installation, please modify the template to * * include your specific PAK data, register, and load * * the license with the following commands: * * * * lmf register /usr/var/adm/lmf/SNA-3270-DSPI-OA-JAPAN * * lmf reset * * * ********************************************************** [ Press the RETURN key to continue ]: Creating softlinks for SJDDSPI100 ... done. 6-26 日本語3270 DSPIのインストレーション 日本語3270 DSPIのインストレーション 6.10インストレーション例 Would you like to run IVP for SJDDSPI100? (y/n) [y]: y Beginning the IVP for SJDDSPI100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJDDSPI100 finished successfully. DEC SNA 3270 DSPI/Japanese Configuring "DEC SNA 3270 DSPI/Japanese" (SJDDSPI100) Creating softlinks for SJDDSMAN100 ... done. Would you like to run IVP for SJDDSMAN100? (y/n) [y]: y Beginning the IVP for SJDDSMAN100... Copyright Digital Equipment Corporation. 1995. All Rights Reserved. IVP for SJDDSMAN100 finished successfully. DEC SNA 3270 DSPI/J Man Pages Configuring "DEC SNA 3270 DSPI/J Man Pages" (SJDDSMAN100) # 日本語3270 DSPIのインストレーション 6-27 A _________________________________________________________________ アテンション識別の値 表 A-1は,OSF/1アプリケーションがIBMホストに送信するアテン ション識別コードの値を示しています。 表 A-1 アテンション識別の値 ___________________________________________________________ 16進数の文 シンボル___________字(EBCDIC)__相当するキー________________ SNA3270_C_AID_ 7D 実行キーを押す ENTER SNA3270_C_AID_ 6E 最大PA MAX_PA SNA3270_C_AID_ 6B 最小PA MIN_PA SNA3270_C_AID_ 60 AIDを生成しない(表示) NONE SNA3270_C_AID_PF1 F1 PF1キーを押す SNA3270_C_AID_PF2 F2 PF2キーを押す SNA3270_C_AID_PF3 F3 PF3キーを押す SNA3270_C_AID_PF4 F4 PF4キーを押す SNA3270_C_AID_PF5 F5 PF5キーを押す ___________________________________________________________ (次ページに続く) アテンション識別の値 A-1 アテンション識別の値 表 A-1 (続き) アテンション識別の値 ___________________________________________________________ 16進数の文 シンボル___________字(EBCDIC)__相当するキー________________ SNA3270_C_AID_PF6 F6 PF6キーを押す SNA3270_C_AID_PF7 F7 PF7キーを押す SNA3270_C_AID_PF8 F8 PF8キーを押す SNA3270_C_AID_PF9 F9 PF9キーを押す SNA3270_C_AID_ 7A PF10キーを押す PF10 SNA3270_C_AID_ 7B PF11キーを押す PF11 SNA3270_C_AID_ 7C PF12キーを押す PF12 SNA3270_C_AID_ C1 PF13キーを押す PF13 SNA3270_C_AID_ C2 PF14キーを押す PF14 SNA3270_C_AID_ C3 PF15キーを押す PF15 SNA3270_C_AID_ C4 PF16キーを押す PF16 SNA3270_C_AID_ C5 PF17キーを押す PF17 ___________________________________________________________ (次ページに続く) A-2 アテンション識別の値 アテンション識別の値 表 A-1 (続き) アテンション識別の値 ___________________________________________________________ 16進数の文 シンボル___________字(EBCDIC)__相当するキー________________ SNA3270_C_AID_ C6 PF18キーを押す PF18 SNA3270_C_AID_ C7 PF19キーを押す PF19 SNA3270_C_AID_ C8 PF20キーを押す PF20 SNA3270_C_AID_ C9 PF21キーを押す PF21 SNA3270_C_AID_ 4A PF22キーを押す PF22 SNA3270_C_AID_ 4B PF23キーを押す PF23 SNA3270_C_AID_ 4C PF24キーを押す PF24 SNA3270_C_AID_PEN 7E 選択用ライト・ペン・アテンシ ョン SNA3270_C_AID_PA1 6C PA1キーを押す SNA3270_C_AID_PA2 6E PA2キーを押す SNA3270_C_AID_PA3 6B PA3キーを押す SNA3270_C_AID_ 6D Clearを押す CLEAR ___________________________________________________________ (次ページに続く) アテンション識別の値 A-3 アテンション識別の値 表 A-1 (続き) アテンション識別の値 ___________________________________________________________ 16進数の文 シンボル___________字(EBCDIC)__相当するキー________________ SNA3270_C_AID_REQ__F0__________Requestを押す_______________ A-4 アテンション識別の値 B _________________________________________________________________ 日本語3270 DSPIの定義 この付録の表には,アプリケーションを作成するときに使用する シンボルと値が示されています。表の名前は次のとおりです。 o 表 B-1:接続関連定数 o 表 B-2:省略時の拡張属性タイプと値 o 表 B-3:リプライ・モード定数 o 表 B-4:カラー定数 o 表 B-5:文字セット定数 o 表 B-6:GCID定数 o 表 B-7:フィールド/文字属性 o 表 B-8:アウトバウンド構成化フィールド o 表 B-9:区分読取りでのアウトバウンド構造化フィールド o 表 B-10:アウトバウンド/インバウンド構造化フィールド o 表 B-11:インバウンド構造化フィールド o 表 B-12:セッション送信状態 o 表 B-13:セッション受信連鎖状態 o 表 B-14:セッション送信連鎖状態 o 表 B-15:ブラケット状態 o 表 B-16:LUSTATを使用したフラグ o 表 B-17:アウト・オブ・バウンド要求のSNAコマンド o 表 B-18:画面所有権 o 表 B-19:フィールド操作 o 表 B-20:区画定数 o 表 B-21:3270指令定義 o 表 B-22:3270副指令定義 日本語3270 DSPIの定義 B-1 日本語3270 DSPIの定義 o 表 B-23:拡張属性タイプ o 表 B-24:AIDキー定義 日本語3270 DSPIにある定義ファイルをご使用になることをお勧め します。これは,本製品の将来のリリースによる変更に影響され ないためです。 表 B-1 接続関連定数 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ACT 1 アクティブ接続 SNA3270_C_PASS 0 パッシブ接続 SNA3270_C_STREAM_MODE 0 ストリーム・モード SNA3270_C_FIELD_MODE 2 フィールド・モード SNA3270_C_NON_BLOCK 0 非ブロック SNA3270_C_BLOCK 1 ブロック SNA3270_C_DEF_SCR_ 1920 省略時画面サイズ SIZE SNA3270_C_DEF_ROWS 24 省略時行数 SNA3270_C_DEF_COLS_____80______省略時桁数__________________ B-2 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-2 省略時の拡張属性タイプと値 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_DEF_COL 0 省略時カラー SNA3270_C_DEF_VAL 0 省略時field validation SNA3270_C_DEF_OUT 0 省略時罫線 SNA3270_C_DEF_FCOL 0 省略時前景カラー SNA3270_C_DEF_BCOL 0 省略時背景カラー SNA3270_C_DEF_BTRN 0 省略時透過 SNA3270_C_DEF_HLT 0 省略時強調表示 SNA3270_C_DEF_CHS______0_______省略時文字セット____________ 表 B-3 リプライ・モード定数 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_RP_FMODE 0 フィールド・モード SNA3270_C_RP_EXTMODE 1 拡張フィールドモード SNA3270_C_RP_CMODE_____2_______文字モード__________________ 表 B-4 カラー定数 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_BLUE 241 青 SNA3270_C_RED 242 赤 SNA3270_C_PINK 243 ピンク ___________________________________________________________ (次ページに続く) 日本語3270 DSPIの定義 B-3 日本語3270 DSPIの定義 表 B-4 (続き) カラー定数 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_GREEN 244 緑 SNA3270_C_TURQUOISE 245 空色 SNA3270_C_YELLOW 246 黄色 SNA3270_C_NEUTRAL______247_____白__________________________ 表 B-5 文字セット定数 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_CHS_APL 241 APL文字 SNA3270_C_CHS_KANJI____248_____漢字________________________ 表 B-6 GCID定数 ___________________________________________________________ 値(16進 シンボル_________________数)________意味__________________ SNA3270_C_GCID_DEF 0x00650025 英小文字セット SNA3270_C_GCID_KANA 0x014c0122 英数カナ文字セット SNA3270_C_GCID_KANJI 0x0172012c 漢字 SNA3270_C_GCID_APL_______0x03c30136__APL文字_______________ 表 B-7 フィールド/文字属性 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ATTR_NORM 0 普通輝度 ___________________________________________________________ (次ページに続く) B-4 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-7 (続き) フィールド/文字属性 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ATTR_PEN_ 1 探知可能 DET SNA3270_C_ATTR_HIGH 2 高輝度 SNA3270_C_ATTR_INVIS 3 非表示 SNA3270_C_NORMAL 240 標準 SNA3270_C_BLINK 241 明滅 SNA3270_C_REVERSE 242 反転表示 SNA3270_C_UNDRSCR 244 下線 SNA3270_C_INTENSE______248_____Intensive_display___________ 表 B-8 アウトバウンド構造化フィールド ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_SF_RESET_ 0 Reset Partition PAR SNA3270_C_SF_READ_PAR 1 Read Partition SNA3270_C_SF_ERASE_ 3 Erase/Reset PAR SNA3270_C_SF_LOAD_ 6 Load programmed symbols PSYM SNA3270_C_SF_SET_ 9 Set reply mode REMODE ___________________________________________________________ (次ページに続く) 日本語3270 DSPIの定義 B-5 日本語3270 DSPIの定義 表 B-8 (続き) アウトバウンド構造化フィールド ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_SF_CREATE_ 12 Create partition PARTN SNA3270_C_SF_SET_WIN_ 11 Set window origin OR SNA3270_C_SF_DESTROY_ 0 Destroy partition PAR SNA3270_C_SF_ACT_PAR 14 Activate partition SNA3270_C_SF_OUTB_ 64 Outbound 3270DS 3270DS SNA3270_C_SF_SCS 65 SCS outbound SNA3270_C_SF_SEL_ 74 Select format group FORM_GP SNA3270_C_SF_PREST_ 75 Present absolute format ABS_FORM SNA3270_C_SF_PREST_ 76 Present relative format REL_FORM SNA3270_C_SF_SET_MSR_ 3841 Set magnetic slot reader CTRL___________________________control_____________________ B-6 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-9 区分読取りでのアウトバウンド構造化フィールド ___________________________________________________________ 記号___________________値______意味________________________ SNA3270_C_RP_QUERY 2 Read partition query SNA3270_C_RP_QUERY_ 3 Read partition query list LST SNA3270_C_RP_RMODALL 10 Read part read modified all SNA3270_C_RP_READBUF 242 Read part read buffer SNA3270_C_RP_READMOD___246_____Read_part_and_read_modified_ 表 B-10 アウトバウンド/インバウンド構造化フィールド ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_SF_DEST_ 3842 Destination/origin ORIGIN SNA3270_C_SF_OBJ_DATA 3855 Object data SNA3270_C_SF_OBJ_ 3857 Object control CONTROL SNA3270_C_SF_OBJ_ 3856 Object picture PICTURE____________________________________________________ 日本語3270 DSPIの定義 B-7 日本語3270 DSPIの定義 表 B-11 インバウンド構造化フィールド ___________________________________________________________ Symbol_________________Value___Meaning_____________________ SNA3270_C_INB_STRUC_ 136 インバウンド構造化フィールド FLD (AID) SNA3270_C_SF_INB_ 128 インバウンド3270DS 3270DS SNA3270_C_QUERY_REPLY 129 Query reply SNA3270_C_QR_SUM 128 Query reply-サマリー SNA3270_C_QR_AREA 129 Query reply-使用可能域 SNA3270_C_QR_TXT_PART 131 Query reply-text partitions SNA3270_C_QR_APAR 132 Query reply-英数字区画 SNA3270_C_QR_CHS 133 Query reply-文字セット(文字 モード) SNA3270_C_QR_COLOR 134 Query reply-カラー(文字モー ド) SNA3270_C_QR_HLT 135 Query reply-強調表示 SNA3270_C_QR_RMODE 136 Query reply-応答モード SNA3270_C_QR_FLDVAL 138 Query reply-field validation SNA3270_C_QR_MSR_CTRL 139 Query reply-MSR control SNA3270_C_QR_FLDOUTL 140 Query reply-罫線情報 SNA3270_C_QR_OEMDEV 143 Query reply-OEM補助装置 ___________________________________________________________ (次ページに続く) B-8 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-11 (続き) インバウンド構造化フィールド ___________________________________________________________ Symbol_________________Value___Meaning_____________________ SNA3270_C_QR_FORM_ 144 Query reply-format present PREST SNA3270_C_QR_DBCS 145 Query reply-SO/SI生成可能情 報 SNA3270_C_QR_SPOOLS 150 Query reply-symbol store SNA3270_C_QR_AUXDEV 153 Query reply-補助装置 SNA3270_C_QR_BCKTRN 168 Query reply-透過 SNA3270_C_QR_IMPAR 166 Query reply-暗黙区画 SNA3270_C_QR_GXCOL 180 Query reply-カラー(グラフィ ック・モード) SNA3270_C_QR_GXSYM 182 Query reply-記号セット(グラ フィック・モード) SNA3270_C_QR_SEGMNT 176 Query reply-セグメント SNA3270_C_QR_PROC 177 Query reply-プロシージャー SNA3270_C_QR_LINTYP 178 Query reply-線タイプ SNA3270_C_QR_PORT______179_____Query_reply-ポート__________ 表 B-12 セッション送信状態 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_CANNOT_SEND 0 送信不可能 ___________________________________________________________ (次ページに続く) 日本語3270 DSPIの定義 B-9 日本語3270 DSPIの定義 表 B-12 (続き) セッション送信状態 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_CAN_SEND 1 送信可能 SNA3270_C_MORE_TO_ 1 さらに構造化フィールドを送信 SEND___________________________する(第3.3節を参照)_______ 表 B-13 セッション受信連鎖状態 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_BETC 0 最終連鎖受信が完了した SNA3270_C_NOT__BETC____1_______最終連鎖受信が完了していない 表 B-14 セッション送信連鎖状態 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_NOT_LAST 0 最終RUが送信されていない SNA3270_C_LAST_RU 1 最終RUが送信された SNA3270_C_LAST_IN_ 2 最終RUが連鎖していて,もう一 CHAIN__________________________つの連鎖が続いている________ 表 B-15 ブラケット状態 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_BETB 0 ブラケット間 SNA3270_C_NOT_BETB_____1_______ブラケット間ではない________ B-10 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-16 LUSTATで使用するフラグ ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ERR_STATE -1 どの状態でもない SNA3270_C_LUSTAT_DUE 3 LUSTATコマンドを送信する必要 がある SNA3270_C_SSCP 0 SSCPからデータを受信した SNA3270_C_LULU 1 LU-LUセッションからデータを _______________________________受信した____________________ 表 B-17 アウト・オブ・バウンド要求のSNAコマンド ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_CMD_ 0 装置がオンラインであることを NOTIFYON 知らせる通知コマンド SNA3270_C_CMD_ 1 装置がオフラインであることを NOTIFYOFF 知らせる通知コマンド SNA3270_C_CMD_LUSTAT 2 LUSTATコマンド SNA3270_C_CMD_SIGNAL___3_______信号コマンド________________ 表 B-18 画面所有権 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_SSCP_OWNED 0 SSCP所有 SNA3270_C_LU_OWNED 1 LU所有 SNA3270_C_UNOWNED______2_______非所有______________________ 日本語3270 DSPIの定義 B-11 日本語3270 DSPIの定義 表 B-19 フィールド操作 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_READ 0 読取り SNA3270_C_SEARCH 1 検索 SNA3270_C_READ_NEXT 2 次のフィールドを読み取る SNA3270_C_SEARCH_NEXT__2_______次のフィールドを検索する____ 表 B-20 区画定数 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_IMP_PARTN 0 暗黙区画状態 SNA3270_C_EXP_PARTN____1_______明示区画状態________________ 表 B-21 3270指令定義 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_CMD_NULL 0 No command SNA3270_C_CMD_ 111 Erase all unprotected ERALLUNP SNA3270_C_CMD_ERWRITE 245 Erase/write SNA3270_C_CMD_READ 242 Read buffer SNA3270_C_CMD_READMOD 246 Read modified SNA3270_C_CMD_ 110 Read modified all READMODALL SNA3270_C_CMD_WRITE 241 Write ___________________________________________________________ (次ページに続く) B-12 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-21 (続き) 3270指令定義 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_CMD_ 243 Write structured field WRITESTRF__________________________________________________ 日本語3270 DSPIの定義 B-13 日本語3270 DSPIの定義 表 B-22 3270副指令定義 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ORD_NUL 0 Null (A)* SNA3270_C_ORD_MIN 1 副指令コード範囲の最低値* SNA3270_C_ORD_PT 5 Program tab* SNA3270_C_ORD_GE 8 Graphics escape* SNA3270_C_ORD_FF 12 Form feed (P)* SNA3270_C_ORD_CR 13 Carriage return (P)* SNA3270_C_ORD_SO 14 SO SNA3270_C_ORD_SI 15 SI SNA3270_C_ORD_SBA 17 Set buffer address* SNA3270_C_ORD_EUA 18 Erase unprotected to address* SNA3270_C_ORD_IC 19 Insert cursor* SNA3270_C_ORD_NL 21 New line (P)* SNA3270_C_ORD_EM 25 End message (P)* SNA3270_C_ORD_DUP 28 Duplicate (A)* SNA3270_C_ORD_SF 29 Start field* SNA3270_C_ORD_FM 30 Field mark (A)* SNA3270_C_ORD_SA 40 Set attribute* ___________________________________________________________ (次ページに続く) B-14 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-22 (続き) 3270副指令定義 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ORD_SFE 41 Start field extended* SNA3270_C_ORD_MF 44 Modify field* SNA3270_C_ORD_RA 60 Repeat to address* SNA3270_C_ORD_SUB 63 Substitution character* SNA3270_C_ORD_MAX 63 副指令コード範囲の最高値* SNA3270_C_ORD_SPACE 64 Space character (A)* SNA3270_C_ORD_HYPHEN___96______Hyphen_character_(A)*_______ ________________________ 注意 ________________________ * write副指令は全ての書込み指令のデータ・フィールド中 に存在する事が考えられます。それらは3F(16進数)より大 きな値をもっていないので,表示可能な文字と見分けること ができます。(P)のついた副指令はプリンタをサポートして います。(A)のついた副指令は実際の3270副指令ではなく適 用業務プログラムで使用される特殊文字です。 ______________________________________________________ 表 B-23 拡張属性タイプ ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ATTR_CHATT 0 全ての文字属性 SNA3270_C_ATTR_FCOL 66 拡張カラー SNA3270_C_ATTR_BCOL 69 背景色 ___________________________________________________________ (次ページに続く) 日本語3270 DSPIの定義 B-15 日本語3270 DSPIの定義 表 B-23 (続き) 拡張属性タイプ ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_ATTR_BTRN 70 透過 SNA3270_C_ATTR_CHS 67 文字セット SNA3270_C_ATTR_HLT 65 拡張強調表示 SNA3270_C_ATTR_FATT 192 基本属性 SNA3270_C_ATTR_FVLD 193 field validation SNA3270_C_ATTR_FOUT____194_____罫線________________________ B-16 日本語3270 DSPIの定義 日本語3270 DSPIの定義 表 B-24 AIDキー定義 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_AID_CLEAR 109 CLEAR (_) SNA3270_C_AID_ENTER 125 CLEAR (') SNA3270_C_AID_NONE 96 No AID pressed (-) SNA3270_C_AID_PA1 108 PA 1 (%) SNA3270_C_AID_PA2 110 PA 2 (>) SNA3270_C_AID_PA3 107 PA 3 (,) SNA3270_C_AID_PF1 241 PF 1 (1) SNA3270_C_AID_PF2 242 PF 2 (2) SNA3270_C_AID_PF3 243 PF 3 (3) SNA3270_C_AID_PF4 244 PF 4 (4) SNA3270_C_AID_PF5 245 PF 5 (5) SNA3270_C_AID_PF6 246 PF 6 (6) SNA3270_C_AID_PF7 247 PF 7 (7) SNA3270_C_AID_PF8 248 PF 8 (8) SNA3270_C_AID_PF9 249 PF 9 (9) SNA3270_C_AID_PF10 122 PF10 (:) SNA3270_C_AID_PF11 123 PF11 (#) SNA3270_C_AID_PF12 124 PF12 (@) ___________________________________________________________ (次ページに続く) 日本語3270 DSPIの定義 B-17 日本語3270 DSPIの定義 表 B-24 (続き) AIDキー定義 ___________________________________________________________ シンボル_______________値______意味________________________ SNA3270_C_AID_PF13 193 PF13 (A) SNA3270_C_AID_PF14 194 PF14 (B) SNA3270_C_AID_PF15 195 PF15 (C) SNA3270_C_AID_PF16 196 PF16 (D) SNA3270_C_AID_PF17 197 PF17 (E) SNA3270_C_AID_PF18 198 PF18 (F) SNA3270_C_AID_PF19 199 PF19 (G) SNA3270_C_AID_PF20 200 PF20 (H) SNA3270_C_AID_PF21 201 PF21 (I) SNA3270_C_AID_PF22 74 PF22 (¢) SNA3270_C_AID_PF23 75 PF23 (.) SNA3270_C_AID_PF24 76 PF24 (<) SNA3270_C_AID_MAX_PA 110 PAキーコードの最大値 (読み取るため) SNA3270_C_AID_MIN_PA 107 PAキーコードの最小値 (読み取るため) SNA3270_C_AID_SYSREQ___240_____Sys_Request_(0)_____________ B-18 日本語3270 DSPIの定義 C _________________________________________________________________ ステータス・コード 日本語3270 DSPIは,次の4つのタイプのステータス・コードを返 します。 成功コード C.1節−行った操作が成功したことを示してい ます。 情報コード C.2節−行った操作の成功についての補足情報 を提供します。 エラー・コード C.3節−行った操作が失敗したが,回復可能で あることを示しています。 重大エラー・コ C.4節−行った操作が失敗し,回復不可能であ ード ることを示しています。 _________________________________________________________________ C.1 成功コード normal successful completion 説明: このメッセージはすべてのルーチンから返され,操作が完了 したことを示します。 対処法: jsna3270_recive_screenまたはjsna3270_receive_ streamによってこのステータス・コードが返されたときには, IBMホストにデータを送信しようとする前にSDB送信状態をチェック する必要があります。 data truncated, destination string too small 説明: 読み取りまたは書き込みフィールド・プロシージャが通常ど おりに完了しましたが,受け取りバッファが小さすぎて,指定され たすべてのデータを受け取ることができません。 対処法: より大きいバッファを割り当てて,操作をもう一度実行し ます。 ステータス・コード C-1 ステータス・コード C.2情報コード _________________________________________________________________ C.2 情報コード A BIND request has been received 説明: 日本語3270 DSPIがPLUからBINDを受信しました。 対処法: なし。ソフトウェアが自動的にBINDを処理します。 CLEAR received, data traffic now reset 説明: IBMシステムがクリア・コマンドを送信しました。 対処法: データ・トラフィック・リセット状態を入力します。詳細 は,ネットワーク管理者に問い合わせてください。 Successful completion, no data was received 説明: ソフトウェアがセッションをチェックしたが,受信するデー タがみつかりませんでした。 対処法: 別の受信を行います。 session terminated 説明: セッションが終了されました。 対処法: 詳細は,通知ベクタを参照。 not your turn to send anymore 説明: IBMシステムによってBINDが送信され,インタフェースによ って受け取られました。 対処法: データを受信するための受信要求を出します。あるいは, 画面ロック・コマンドを使用するように,アプリケーションのロジ ックを設計し直すことによってこのような状態が生じないようにし ます。 An UNBIND request has been received 説明: ソフトウェアがPLUからUNBINDを受信しました。 対処法: アプリケーションは,disconnect要求を出すか,ソフトウ ェアが再接続するのを待ちます。 The SSCP session is not available 説明: SSCP-LUセッションがありません。 対処法: アプリケーション・コードをチェックします。SSCP-LUセ ッションは,パッシブ接続でしか確立できません。 C-2 ステータス・コード ステータス・コード C.3エラー・コード _________________________________________________________________ C.3 エラー・コード failed to acknowledge data 説明: acknowledge要求が失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 Bad buffer length was specified on a read/write field request 説明: 負のバッファ長が指定されました。 対処法: バッファ長を正の整数に変更します。 buffer offset in FDB is not the start of field 説明: フィールド・ディスクリプタ・ブロックに指定されたバッフ ァ・オフセットがフィールドの先頭になっていません。 対処法: オフセットをフィールドの先頭になるように変更してか ら,もう一度コマンドを出します。あるいは,検索モードをREAD_ NEXTまたはSEARCHに変更します。 Unknown query request 説明: ソフトウェアが未知の照会要求を受け取りました。 対処法: ソフトウェアは,IBM 3279S3G,3192Gグラフィック表示シ ステム,IBMパーソナルシステム/55の日本語3270 PCによってサポ ートされる構造化フィールドしかサポートしません。 CHAR_VEC is too short 説明: 文字ベクタが画面イメージの構築を行うには短かすぎます。 対処法: 文字ベクタと属性ベクタにより大きなメモリ量を割り当て てから,もう一度コマンドを実行します。 connect failed 説明: 接続要求に失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 disconnect failed 説明: disconnect要求に失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 ステータス・コード C-3 ステータス・コード C.3エラー・コード request aborted due to CLEAR command 説明: PLUからクリア要求を受け取りました。 対処法: アプリケーションは,disconnectしてからもう一度セッシ ョンを確立しなければなりません。その様な状態が引き続き発生す る場合,PLUはプロトコル・エラーまたはデータ・ストリーム・エ ラーを検出します。トレース機能を使用して,問題点を突きとめま す。 error communicating with Gateway node 説明: 重大な通信エラーが生じて,セッションをロストしました。 対処法: 詳細は,このメッセージに続く2次的なエラー・コードを 参照してください。さらに情報が必要な場合は,ネットワーク管理 者に問い合わせてください。 illegal connection type 説明: jsna3270_request_connectプロシージャ・コールの中 のCONN_TYPパラメータ値がSNA3270_C_ACTIVEまたはSNA3270_C_ PASSIVEのどちらにも等しくありませんでした。 対処法: SNA3270_C_ACTIVEまたはSNA3270_C_PASSIVEのいずれかに 等しいCONN_TYP値をもつjsna3270_request_connectを出します。 illegal mode type 説明: jsna3270_request_connectプロシージャ・コール中のMODE_ TYPパラメータ値がSNA3270_C_FIELD_MODEまたはSNA3270_C_STREAM_ MODEのどちらにも等しくありませんでした。 対処法: SNA3270_C_FIELD_MODEまたはSNA3270_C_STREAM_MODEのい ずれかに等しいMODE_TYP値をもつjsna3270_request_connectを出し ます。 invalid session ID 説明: アプリケーションによって渡されたSESSION_IDに対応するセ ッションがありません。 対処法: セッションがすでにアクティブでなくなっているか,間違 ったSESSION_IDが指定されています。 lock screen failed 説明: 画面ロック要求が失敗しました。 対処法: エンド・ブラケット表示(EBI)を受け取ったかどうかを調 べます。EBIを受け取っていない場合には,それを受け取るまで待 つ必要があります。詳細は,ステータス・ベクタを参照。 C-4 ステータス・コード ステータス・コード C.3エラー・コード negative response received, sense code %X'nn' 説明: 送信がIBMシステムによって拒否されました。 対処法: センス・コードにもとづいてデータが拒否された理由を判 別して,アプリケーション・ロジックを変更してから,プログラム をもう一度実行します。 network node is not accepting connects 説明: ゲートウェイDECnetエグゼクティブ状態がSHUTまたはOFFに 変更されました。 対処法: システムまたはネットワーク管理者に問い合わせて,ゲー トウェイが使用できない理由を調査してください。 no field was found 説明: FDB内の属性フィールドとオフセット・フィールドによって 指定されたフィールドが存在しないか,文字ベクタの終わりが検出 されるまでにみつからなかったために,文字ベクタ中のフィールド の読取り/書込みができません。 対処法: 開始位置を0にリセットしてから,フィールドを検索しま す。 no input data for WRITE_FIELD verb 説明: 書き込みフィールドの入力データがありません。 対処法: アプリケーション・ロジックを変更してから,もう一度実 行します。 No LU-LU session is active 説明: IBMホストとのセッションが確立されていません。 対処法: jsna3270_connect_requestルーチンを呼び出してセッショ ンを確立します。パッシブ接続を要求した場合には,第2.1節を参 照してLU-LUセッションを確立します。 No such session corresponds to the session ID 説明: 無効なセッションIDがソフトウェアに渡されました。 対処法: セッションIDをチェックします。 not in field mode 説明: このプロシージャはフィールド・モードでのみ有効です。 対処法: 正しいモード(フィールド・モードの場合はSNA3270_C_ FIELD_MODE)を判別して,それに応じて接続の中でCONN_MODEパラ メータを設定します。 ステータス・コード C-5 ステータス・コード C.3エラー・コード data must be numeric 説明: 数字フィールドに非数字データを書き込もうとしました。 対処法: アプリケーション・ロジックを調べて変更してから,もう 一度実行します。 not your turn to receive|transmit data 説明: このメッセージの意味は,現在の状態によって決まります。 受信状態にある場合は,データを受信する番ではなく,送信状態に あるときには,送信する番ではないことを示しています。 対処法: アプリケーションは受信状態または送信状態のいずれかに なります。受信状態になっている場合は,プロシージャが完了して ステータスがSNA3270_S_OKになるように受信を出し続けなければな りません。送信状態になっている場合は,アプリケーション・ロジ ックを調べて変更してから,もう一度実行します。 A parameter error was detected when calling the routine 説明: ソフトウェアが間違ったパラメータを検出しました。 対処法: アプリケーションがソフトウェアに渡したパラメータをチ ェックします。 field is protected, no modification allowed 説明: 保護フィールドにデータを書き込もうとしました。 対処法: アプリケーション・ロジックを調べて変更してから,プロ グラムをもう一度実行します。 SNA protocol error 説明: SNAレイヤでプロトコル・エラーが生じています。 対処法: 詳細は,このメッセージに続く2次的エラー・コードを参 照。さらに情報が必要な場合は,ネットワーク管理者に問い合わせ てください。 failed to read field 説明: フィールド読み取り要求が失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 failed to receive a screen of data 説明: 画面受信要求が失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 C-6 ステータス・コード ステータス・コード C.3エラー・コード failed to receive 3270 data stream 説明: ストリーム受信要求が失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 invalid data received, rejected with sense code %X'nn' 説明: IBMシステムから無効な3270データを受信しました。 対処法: 詳細は,ネットワーク管理者に問い合わせてください。 Failed to set screen owner to the requested owner 説明: jsna3270_set_ownerコールが失敗しました。 対処法: 詳細は,isobをチェックしてください。 The inbound SSCP message exceeds the maximum RU size 説明: インバウンドSSCP要求はすべて「チェィン専用」で,最大RU サイズを超えてはなりません。 対処法: システム管理者に問い合わせてください。 unacceptable BIND image, I/O status block has the sense code 説明: 記述されたデータが受け取り可能ではありません。 対処法: IBMシテスム・プログラマは,エラーのあるパラメータを 『DEC SNA Peer Server Guide to IBM Resource Definition』また は『DECnet/SNA Gateway Guide to IBM Parameters』に指定された ように再定義しなければなりません。 failed to write field 説明: フィールド書き込み要求が失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 failed to transmit a screen of data 対処法: 画面送信要求が失敗しました。 説明: 詳細は,ステータス・ブロックを参照。 failed to transmit SNA command 説明: SNAコマンド送信要求が失敗しました。 対処法: 詳細は,ステータス・ベクタを参照。 failed to transmit 3270 data stream 説明: ストリーム送信要求が失敗しました。 対処法: 詳細は,ステータス・ブロックを参照。 ステータス・コード C-7 ステータス・コード C.4重大エラー・コード _________________________________________________________________ C.4 重大エラー・コード internal error detected 説明: 内部エラーが検出されました。 対処法: この時点で画面に現れるすべてのメッセージを記録して, 問題点をシステム管理者に報告してください。 上位レベルのSNALU3270_S_BUGCHKエラーとともに,次のような2次 エラー・メッセージが現れます。このようなエラー・メッセージが 現れた場合は,3270データ・ストリーム・プログラミング・インタ フェースの動作が異常であることを意味しています。 問題を解決するには,重大エラー・コードに関連するすべてのメ ッセージをコピーします。システム管理者である場合には,『DEC SNA Peer Server Management Guide』や『DECnet/SNA Gateway Problem Determination Guide』などを参照してください。問題を 解決できないときには,ソフトウェア・パフォーマンス・レポート (SPR)を提出してください。 A protocol processing error has been detected formatted FMD data received invalid Data Flow Control (DFC) RU received, RU code %X'nn' insufficient resources to perform requested operation. Error allocating dynamic buffer invalid session control (SC) RU received, RU code %X'nn' C-8 ステータス・コード D _________________________________________________________________ 下位レベルのステータス・コード 付録Dでは,日本語3270 DSPIの下位レイヤから受け取るエラー・ コードやメッセージについて説明します。 o 一般的なエラー・コード(D.1節) o 一般的な2次障害コード(D.2節) o ゲートウェイから返されるアボート理由のステータス・コー ド( D.3節) o 重大なエラー・コード(D.4節) これらのメッセージのテキストは,/usr/lib/sna/ja_JP /jsna3270_msg.catにあります。 _________________________________________________________________ D.1 一般的なエラー・コード MU generated a receive check, sense code IBM sense code 説明: メッセージ・ユニットが受信チェック・センス・コードを返 しました。 対処法: センス・コードに基づいて対処してください。 MU generated a send check, sense code IBM sense code 説明: メッセージ・ユニット送信チェック・センス・コードを返し ました。 対処法: センス・コードに基づいて対処してください。 PLU violated SNA protocol rules, sense code IBM sense code 説明: 1次論理装置がSNAプロトコル規則に違反しました。 対処法: センス・コードに基づいて対処してください。 下位レベルのステータス・コード D-1 下位レベルのステータス・コード D.2一般的な2次障害コード _________________________________________________________________ D.2 一般的な2次障害コード abnormal session termination 説明: ゲートウェイとIBMホスト間のリンクが切れているか,ホス トが物理装置(PU)またはゲートウェイにつながる回線を非活動化し ました。 対処法: リンクが切れた理由を判別します。IBMホストへの接続が 再確立されたら,再試行します。 port aborted 説明: リンクがゲートウェイによってアボートされました。 対処法: SNATRACE機能を使用して,セッション・アボートの原因を 判別します。 failed to establish a DECnet link to the Gateway 説明: 日本語3270 DSPIがゲートウェイに接続できません。 対処法: これに続くDECnetエラー・メッセージを調べて,適切な処 置をします。 function not valid with port in current state 説明: ポートが現在の状態では日本語3270 DSPIが無効です。プロ シージャ・コールを出す順番が間違っています。 対処法: アプリケーション中のコードを訂正します。 GAP violation detected by the Gateway 説明: 重大エラーが生じました。 対処法: エラーをシステム管理者に報告します。 GAP violation detected by Access 説明: GAPアクセス・ルーチンによる違反が検出されたために,リ ンクがアボートされました。 対処法: 『DECnet/SNA Gateway Troubleshooting Manual』を参 照。 error communicating with Gateway node 説明: ゲートウェイ・ノードとのDECnet通信エラー。 対処法: これに続くDECnetエラー・メッセージを調べて,適切な処 置をします。 D-2 下位レベルのステータス・コード 下位レベルのステータス・コード D.2一般的な2次障害コード Gateway access routines are incompatible with the Gateway 説明: ゲートウェイ上のソフトウェアがローカルDECnetノード上の SNAソフトウェアと互換性がありません。 対処法: ゲートウェイとDECnetノードの両方に正しいソフトウェ ア・バージョンをインストールします。 failed to allocate memory for a buffer 説明: 日本語3270 DSPIが内部バッファに動的メモリを割り当てら れませんでした。未使用メモリがないことが原因の場合が多い。 対処法: 使用中バッファを解放してフリーなメモリ資源に戻しま す。 Internal error in the Gateway access routines 説明: 重大エラー。 対処法: 画面に現れるエラー・メッセージを記録して,問題点をシ ステム管理者に報告してください。 insufficient resources to establish session 説明: 日本語3270 DSPIがセッションを確立するのに十分なシステ ム資源を割り当てられません。 対処法: 詳細は,これに続くメッセージを参照。 parameter GWY-NODE is invalid 説明: GWY-NODEパラメータに無効な値を入力しました。 対処法: エラーを返したコールを調べて,適切な処置をします。 SLU deactivated via DACTLU 説明: IBM SSCPがDACTLUコマンドを送信することによって,セッシ ョンを非活動化しました。アプリケーションの中には,UNBINDコマ ンドを送信するのではなく,LUを非活動化することによってセッシ ョンを非活動化するものがあります。 対処法: disconnect要求を出して,アプリケーションとそのステー タスをリセットします。SSCPがまだ使用できる場合には別の接続要 求を出し,SSCPが使用できない場合には終了します。 maximum number of sessions already active 説明: 許容最大数のセッションをすでに確立済みです。 対処法: 終了したセッションごとにdisconnectプロシージャを呼び 出したかどうかを調べます。 下位レベルのステータス・コード D-3 下位レベルのステータス・コード D.2一般的な2次障害コード no event pending 説明: 日本語3270 DSPIがイベントを読み取ろうとしましたが,待 ち状態のイベントがありません。 対処法: なし。 port was not assigned 説明: アプリケーションによって指定されたソケットにポートが割 り当てられていません。 対処法: 日本語3270 DSPIにアクティブなソケットIDを渡します。 no SSCP session 説明: SSCPが確立されていないか,アプリケーションによって無効 なsession_idが指定されています。 対処法: アクティブ・セッションを確立したかどうかと,アプリケ ーションが有効なsession_idを指定しているかどうかを確認しま す。 parameter error 説明: 日本語3270 DSPIに渡されたパラメータが間違っています。 対処法: パラメータをチェックします。 PLU name not specified 説明: アプリケーションが接続要求時にPLUを指定しませんでし た。 対処法: PLU名はパラメータ・リスト中で明示的に指定するか,ア クセス名を介して暗黙に指定しなければなりません。 event pending 説明: イベントが待ち状態です。 対処法: イベントについては,IOSBを参照。 link or PU reinitialized 説明: リンクまたはPUが再度初期化されたことを示す情報メッセー ジ。 対処法: なし。 would block 説明: 受信するデータがありません。 対処法: 時間をおいて,データを受信してみます。 D-4 下位レベルのステータス・コード 下位レベルのステータス・コード D.2一般的な2次障害コード access to LU denied 説明: 日本語3270 DSPIがこのセッションをアクセスする権限をも っていません。 対処法: ゲートウェイ管理者に問い合わせてください。 session (SLU) not activated 説明: IBMホストによってセッションが活動化されていません。 対処法: IBM VTAM操作員に問い合わせて,IBMホストから論理装置 を調べて,必要であればそれを活動化します。 SLU in use 説明: このソケットはすでに使用中です。 対処法: 別のソケット・アドレスを使用して再試行します。どのソ ケットが有効かわからないときには,システム管理者に問い合わせ てください。 failed to get a socket 説明: 日本語3270 DSPIがシステムからソケットを得られませんで した。 対処法: 詳細は,IOSBを調べてください。 unknown node 説明: 接続要求時に渡されたゲートウェイ・ノード名がネットワー クに対して未知です。 対処法: ゲートウェイ・ノード名をチェックします。 user issued abort 説明: アプリケーションがdisconnect要求を出してソケットをアボ ートしました。 対処法: なし。 user issued reject 説明: 日本語3270 DSPIが受信したバインドを受け入れないため, GAP V1.0セッションのリンクをアボートしました。 対処法: トレース機能を実行して,ゲートウェイがBIND要求を拒否 した理由を調べます。ホストが,受け入れ不可能な大きなアウトバ ウンドRUまたは非合法な機能管理または送信サービス・プロファイ ルを指定したか,範囲外のペーシング値を送信したのが原因と考え られます。 下位レベルのステータス・コード D-5 下位レベルのステータス・コード D.3ゲートウェイから返される異常終了理由のステータス・コード _________________________________________________________________ D.3 ゲートウェイから返される異常終了理由のステータス・コード 日本語3270 DSPIが次のいずれかのコードを返したときは,セッシ ョンはアクティブではなくなります。アプリケーションは,別のセ ッションを確立しようとする前にdisconnect要求を出す必要があり ます。 gateway protocol error 説明: 重大エラー。 対処法: この時点で画面に表れるエラー・メッセージをコピーし て,問題点をシステム管理者に報告してください。 session terminated abnormally 説明: ゲートウェイとIBM間のリンクがロストしているか,IBMが物 理装置(PU)またはゲートウェイにつながる回線を非活動化しまし た。 対処法: リンクがロストした理由を判別します。IBMへの接続が返 ったら,再試行します。 IBM application name was not specified 説明: IBMアプリケーション名が接続要求またはアクセス名に指定 されていません。 対処法: IBMアプリケーションは,パラメータ・リスト内に明示的 に指定するか,アクセス名を介して暗黙に指定しなければなりませ ん。 the BIND image specified unacceptable values 説明: ゲートウェイがBIND要求イメージを拒否しました。 対処法: トレース機能を実行して,ゲートウェイがBIND要求を拒否 した理由を判別します。IBMアプリケーションが大きすぎるアウト バウンドRUまたは非合法な機能管理または送信サービス・プロファ イルを指定したか,範囲外のペーシング値を送信したのが原因と 考えられます(『DECnet/SNA Gateway Installation Guide』を参 照)。 PU has not been activated 説明: ゲートウェイ上のPUがIBMによって活動化されていません。 対処法: VTAM操作員に問い合わせて,IBMホストからの回線と物理 装置をチェックして,必要であればそれを活動化してください。活 動化されているときには,ゲートウェイと IBMホスト間にハードウ ェアの問題がある場合があります。 D-6 下位レベルのステータス・コード 下位レベルのステータス・コード D.3ゲートウェイから返される異常終了理由のステータス・コード PU name was not specified 説明: PU名が接続要求またはアクセス名に指定されていません。 対処法: PUは,パラメータ・リストの中に明示的に指定するか,ア クセス名を介して暗黙に指定しなければなりません。 connect request rejected by the IBM host, sense code %X'IBM sense code' 説明: IBMホストがセンス・コードに指定された理由から接続要求 を拒否しました。 対処法: IBMドキュメントからセンス・コードの意味を判別して, それに応じて対処します。 internal error in Gateway node 説明: 重大エラー。 対処法: エラーをシステム管理者に報告します。また,ゲートウェ イ・コンソールからの次の形式のメッセージログがセーブされるよ うにします。 GAS -- Fatal Session Error FSE$xxx Gateway access routines are incompatible with the Gateway 説明: ゲートウェイ上のソフトウェアがローカルDECnetノード上の SNAソフトウェアと互換性がありません。 対処法: ゲートウェイとDECnetノードの両方に正しいソフトウェ ア・バージョンがインストールされるようにします。 insufficient Gateway resources for session establishment 説明: セッションを確立するための資源がゲートウェイに不足して います。ゲートウェイで現在アクティブなセッションが使用可能な すべての資源を使用しています。 対処法: 一部のセッションが終了するのを待ってから,再試行しま す。 SSCP has deactivated the session 説明: IBM SSCPがDACTLUコマンドを送信することによってセッショ ンを非活動化しました。アプリケーションによっては,UNBINDコマ ンドを送信するのではなく,論理装置を非活動化することによっ て,セッションを非活動化するものがあります。 下位レベルのステータス・コード D-7 下位レベルのステータス・コード D.3ゲートウェイから返される異常終了理由のステータス・コード access name not recognized by Gateway node 説明: 存在しないアクセス名を指定しました。 対処法: どのアクセス名が必要かをシステム管理者に問い合わせま す。 PU name not recognized by Gateway node 説明: ユーザまたは使用したアクセス名が存在しないPUを指定しま した。 対処法: どのPU名またはアクセス名が必要かをシステム管理者に問 い合わせます。 session address not recognized by Gateway node 説明: ユーザまたは使用したアクセス名が存在しないセッション・ アドレスを指定しました。 対処法: どのセッション・アドレスまたはアクセス名が必要かをシ ステム管理者に問い合わせます。 IBM application detected a protocol error, sense code %X'IBM sense code' 説明: IBMアプリケーションが,コードによって指定されたプロト コル・エラーを検出したために,指定されているセンス・コードを 付けてUNBIND要求を送信しました。 対処法: IBMのマニュアルからセンス・コードの意味を判別して, それに応じて対処します。 session address is already in use 説明: 別のユーザがこのセッション・アドレスを使用しています。 対処法: 別のセッション・アドレスを使用して再試行します。有効 な選択値がわからない場合には,システム管理者に問い合わせてく ださい。 session address has not been activated 説明: SLUがIBM側から活動化されていません。 対処法: IBM VTAM操作員に問い合わせて,IBMホストから論理装置 をチェックして,必要であればそれを活動化します。 UNBIND request received from IBM application 説明: IBMアプリケーションが通常のUNBIND RUを送信することによ ってセッションを終了しました。 D-8 下位レベルのステータス・コード 下位レベルのステータス・コード D.3ゲートウェイから返される異常終了理由のステータス・コード UNBIND of type %X'type' received from IBM application 説明: IBMアプリケーションが指定されたタイプのUNBIND要求を送 信しました。 対処法: IBMのマニュアルからUNBIND要求での意味を判別して,そ れに応じて対処します。 下位レベルのステータス・コード D-9 下位レベルのステータス・コード D.4重大エラー・コード _________________________________________________________________ D.4 重大エラー・コード Bad profile 説明: 無効な機能管理または送信サービス・プロファイルが検出さ れました。 対処法: BINDの中のプロファイルをチェックします。 internal error in Gateway access routines 説明: 重大エラー。 対処法: この時点で画面に現れるすべてのメッセージを記録して, 問題点をシステム管理者に報告します。 次のいずれかのエラー・メッセージが現れたときには,日本語3270 DSPIの動作が異常であることを意味しています。重大エラー・コー ドに関連するすべてのメッセージを記録して,それをシステム管理 者に知らせます。システム管理者である場合には,『DECnet/SNA Gateway Troubleshooting』を参照してください。問題を解決でき ない場合には,ソフトウェア・パフォーマンス・レポート(SPR)を 提出してください。 failed to free data buffer internal send error Finite state machine state reached contained unrecognized data a cannot occur state was reached in FSM port is in an unknown state Change to exception response D-10 下位レベルのステータス・コード E _________________________________________________________________ 日本語3270 DSPIデータ構造 この付録では日本語3270 DSPI環境で構成されるデータ構造を示し ます。ここで示すデータ構造には次のものがあります。 o 例 E-1-構造化フィールド・データ構造 o 例 E-2-拡張フィールド属性データ構造 o 例 E-3-フィールド属性データ構造 o 例 E-4-フラグ定義データ構造 o 例 E-5-スクリーン・ディスクリプタ・ブロック・データ構 造 o 例 E-6-書込み制御文字(WCC)データ構造 o 例 E-7-フィールド・ディスクリプタ・ブロック・データ構 造 例 E-1 構造化フィールド・データ構造 struct sf_struct { UINT32 sf_prm; UINT8 sf_flag; /* SF flag */ UINT16 sf_wsf_cmd; /* write structure field command */ UINT8 *data_ptr; /* pointer to SF data buffer */ UINT16 data_len; /* SF data length */ }; 日本語3270 DSPIデータ構造 E-1 日本語3270 DSPIデータ構造 例 E-2 拡張フィールド属性データ構造 /* * Extended Field Attribute Definition */ typedef unsigned int BIT; typedef unsigned char UINT8; struct ext_attr_def_dbcs { BIT attr_mdt : 1; /* Modified Data Tag */ BIT attr_fil1 : 1; /* Reserved Field */ BIT attr_dsp : 2; /* Display */ BIT attr_num : 1; /* Numeric Field */ BIT attr_pro : 1; /* Protected Field */ BIT attr_grh : 2; /* graphic converter */ BIT attr_mbh : 1; /* Modified by Host */ BIT attr_sof : 1; /* Start of field */ BIT attr_ext : 1; /* have the ext attrs changed */ BIT attr_sosi : 1; /* SO/SI creation enabled/disabled */ BIT filler : 4; /* word align */ UINT8 attr_hlt; /* extended highlighting */ UINT8 attr_btrn; /* background transparency */ UINT8 attr_fcol; /* forground color */ UINT8 attr_bcol; /* background color */ UINT8 attr_chs; /* character set */ union { struct eattr_bits attr_bits; UINT8 attr_fbit; } attr_fb; /* field bits */ }; E-2 日本語3270 DSPIデータ構造 日本語3270 DSPIデータ構造 例 E-3 フィールド属性データ構造 struct eattr_bits { BIT attr_trigger : 1; BIT attr_man_entry : 1; BIT attr_mand_fill : 1; BIT attr_filler2 : 1; BIT attr_underscore : 1; BIT attr_rightbar : 1; BIT attr_overscore : 1; BIT attr_leftbar : 1; }; 日本語3270 DSPIデータ構造 E-3 日本語3270 DSPIデータ構造 例 E-4 フラグ定義データ構造 struct sdb_flg_def { BIT reset_inhib : 1; /* Reset keyboard inhibit */ BIT psa_pend : 1; /* Presentation Space Altered BIT scr_erased : 1; /* Screen was Erased */ BIT size_changed : 1; /* Screen Size Changed */ BIT format_scr : 1; /* Formated screen */ BIT wrap_scr : 1; /* Wrapped Screen */ BIT sscp_avail : 1; /* Set if the SSCP-LU session is available */ BIT base_color : 1; /* 1 = no extended color */ BIT graphic_erased : 1; /* Reserved */ }; E-4 日本語3270 DSPIデータ構造 日本語3270 DSPIデータ構造 例 E-5 スクリーン・ディスクリプタ・ブロック・データ構造 struct sdb_def_dbcs { INT16 cur_add; /* Cursor Address */ UINT16 scr_size; /* Screen Size */ UINT8 def_col; /* Default number of columns */ UINT8 def_row; /* Default number of rows */ UINT8 alt_col; /* Alternate number of columns */ UINT8 alt_row; /* Alternate number of rows */ UINT8 cur_col; /* Current number of columns */ UINT8 cur_row; /* Current number of rows */ union { struct wcc_def wcc; /* Write control character */ UINT8 wctl; } wrt_ctl; struct sdb_flg_def flags; /* Flags byte */ struct part_def partition; /* partition information */ UINT8 send_state; /* SLU can or cannot send now */ UINT8 rcv_chain_state; /* are we in chain or not */ UINT8 bracket_state; /* In brackets or between brackets */ UINT8 scr_owner; /* Screen ownership */ UINT8 partition_state; /* partition state */ char *char_vec; /* Pointer to character vector */ struct attr_def *attr_vec; /* Pointer to attribute vector */ struct ext_attr_def_dbcs *ext_vec /* Pointer to ext attr vec */ struct field_def_dbcs *fdb; /* Pointer to FDB */ UINT8 char_sets[8]; /* Table of character sets */ struct tcb_def_dbcs *tcb; /* Pointer to TCB */ struct tcb_flg_dbcs *tcbflg; /* Pointer to TCB flags */ UINT8 tcb_num_oemdev; /* Number of OEM devices */ UINT8 tcb_num_ports; /* Number of ports, maximum 3 */ UINT8 tcb_num_gxcsd; /* Number of graphic char sets, maximum 8 */ UINT8 tcb_num_csd; /* Number of alpha char sets, maximum 9 */ }; 日本語3270 DSPIデータ構造 E-5 日本語3270 DSPIデータ構造 例 E-6 書込み制御文字(WCC)データ構造 struct wcc_def { BIT wcc_mdt : 1; /* Reset Modified Data Tag */ BIT wcc_key : 1; /* Restore Keyboard */ BIT wcc_alr : 1; /* Sound alarm */ BIT wcc_spo : 1; /* Start Print */ BIT wcc_prt : 2; /* Print format */ BIT wcc_rset : 1; /* Reset Indicator */ BIT wcc_rsv : 1; /* Reserved */ }; 例 E-7 フィールド・ディスクリプタ・ブロック・データ構造 /* * field_def - Field descriptor block */ struct field_def_dbcs { struct ext_attr_def_dbcs req_ext_attr; /* Requested Attributes */ struct ext_attr_def_dbcs ext_attr_mask; /* Attributes Mask */ UINT16 req_disp; /* Requested Displacement */ UINT16 rsv_cust; /* Reserved for Customer */ struct ext_attr_def_dbcs act_attr; /* Actual Attributes */ UINT16 act_disp; /* Actual Displacement */ UINT16 byte_cnt; /* Byte count */ UINT16 lfr_disp; /* Last field read displacement */ UINT16 fld_ext; /* extended field attribute */ union { UINT8 req_op; /* Requested Operation */ struct op_def opbits; } op; }; E-6 日本語3270 DSPIデータ構造 F _________________________________________________________________ jsnacodeユーティリティ _________________________________________________________________ F.1 jsnacodeユーティリティ jsnacodeユーティリティは,日本語DEC SNA 3270データ・ストリ ーム・プログラミング・インタフェースfor DEC OSF/1 (以下日本 語3270 DSPI)の本体となる部分のソフトウェアです。OSF/1のシェ ル・コマンドにより起動され,その際に指定された入力ファイル を指定されたコマンドオプションに従って変換し,出力ファイル を作成します。 F.1.1 起動方法 次のようなコマンドでjsnacodeは起動されます。 % jsnacode -ip dec -op ibm -i 入力ファイル名 -o 出力ファ イル名 または % jsnacode -ip ibm -op dec -i 入力ファイル名 -o 出力ファ イル名 F.1.2 jsnacodeコマンド形式 jsnacodeコマンドの形式は次の通りです。 ___________________________________________________________ jsnacode jsnacodeユーティリティ F-1 jsnacodeユーティリティ F.1 jsnacodeユーティリティ 入力ファイルをコマンドオプションの指示に従い 変換し,出力ファイルを作成します ___________________________________________________________ (形式) % jsnacode -i入力ファイル名 -o出力ファイル名 F-2 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ ___________________________________________________________ (オプション)_______________(省略値)________________________ -ip keyword -ip dec -op keyword -op dec -cファイル名 -c jsnarjetra -e [ss|ls] -e ss(-kを指定した場合は無視さ れます) -x 外字管理ファイル名 なし -f(s:n, e:n, l:n, kanji|kana) -k KMAPレコード数 なし(レコード数の省略値は1) -t なし -i 変換対象のファイル名 標準入力 -o_変換結果のファイル名____標準出力________________________ KMAPファイルについては, 第F.1.3項を参照してください。 (コマンドオプション) -ip keyword 入力ファイルのコード体系を指定します。ここで指定でき るkeywordは o ibm o dec です。 -op keyword jsnacodeユーティリティ F-3 jsnacodeユーティリティ F.1 jsnacodeユーティリティ 出力ファイルのコード体系を指定します。ここで指定でき るkeywordは o ibm o dec です。 -c 1バイトコード変換テーブルのファイル名 jsnatratblユーティリティにより作成された,1バイトコー ド変換テーブルのファイル名です。jsnatratblユーティリテ ィについては第H.1節を参照してください。 ________________________ 注意 ________________________ jsnacodeユーティリティが,ファイルへのアクセス中に何ら かのエラーを検出した場合はその旨を告げるメッセージを表 示し,出力ファイルは消去されます。 ______________________________________________________ -e [ss|ls] 1. -e ssの場合 o -ip dec -op ibmの場合 入力ファイルのデータ中にSS2(X'8E') が現われ場合, 次の1バイトをJISカタカナ・コードセットと解釈しま す。SS2が付加されずにX'A1'以上X'FE'以下のコード が現れた場合は,2バイトコードの上位バイトと解釈 します。-eと-kは同時には指定できません。この指定 がない場合は,-kの指定に従います。変換したIBMコ ードの2バイトコード文字列の前後にはシフトコード (X'0E',X'0F') が挿入されます。 F-4 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ o -ip ibm -op decの場合 JISカタカナ・コードセットに変換された場合は,前に SS2を付加してからファイルに出力します。この出力フ ァイルは,端末またはプリンタに直接出力する最終形式 のファイルを想定しています。-eと-kは同時には指定で きません。指定がない場合は,-kの指定に従います。 2. -e lsの場合 o -ip dec -op ibmの場合 入力ファイルのデータ中にLS3R(ESC|) が現われたと き以後,X'A1'以上X'FE'以下のコードを2バイトコー ドの上位バイトと解釈します。LS2R(ESC}) が現われ たとき以後のコードを,すべて1バイト・コードと解 釈します。-eと-kは同時には指定できません。この指 定がない場合は,-kの指定に従います。変換したIBMコ ードの2バイトコード文字列の前後にはシフトコード (X'0E',X'0F') が挿入されます。 o -ip ibm -op decの場合 JISカタカナ・コードに変換された場合は,その1バイト 文字列の前後にLS2R, LS3Rを付加してからファイルに出 力します。この出力ファイルは,端末またはプリンタに 直接出力する最終形式のファイルを想定しています。-e と-kは同時には指定できません。指定がない場合は,-k の指定に従います。 -eオプションを指定せずに,環境変数JSNACODE_ESCAPEをss, またはlsに定義することにより,-e ssまたは-e lsと指定し た場合と同じ結果が得られます。以下はC-shellの場合の環 境変数の定義例です。 % setenv JSNACODE_ESCAPE ss ただし,明示的に-e [ss|ls]を指定した場合は,環境変数よ り優先されます。 -x外字管理ファイル名 IBM付加文字やIBMユーザ定義文字を,DECユーザ定義領域の どの文字コードに割り当てるかを定めた外字管理ファイル名 を指定します。外字管理ファイルは,jsnaknjdefユーティリ jsnacodeユーティリティ F-5 jsnacodeユーティリティ F.1 jsnacodeユーティリティ ティにより作成,管理されるファイルです。-xを指定した場 合は,必ず外字管理ファイル名を指定しなければなりませ ん。-xの指定がない場合,IBMからDECへの変換の場合はIBM 付加文字やIBMユーザ定義文字はすべて"□" (X'A2A2')に, DECからIBMへの変換の場合も,DEC拡張漢字セットの文字は すべて"□"(X'A2A2')に変換します。 -f [s:pos] [e:pos | l:len] [kanji | kana] 1レコード内の変換の範囲を指定します。s:posは変換の開 始位置をバイト単位で表します。e:posは変換の終了位置を バイト単位で表します。l:lenは長さをバイト単位で表しま す。この1コマンド列で規定すべきフィールド数が指定でき ない場合は,複数回のjsnacodeコマンドを使用してくださ い。各々の-fオプションで指定する範囲が重なってはいけま せん。-fオプションの指定がない時は,1レコード全体が変 換の対象になります。sの省略値はレコードの先頭で,e, l の省略値はレコードの最後の位置を示す値です。eとlは同時 には指定できません。-fオプションを33個以上指定しても, 33個目からのオプションは無視されます。-fオプションは-e とは同時に指定できません。また, s:, e:, l:と値の間にス ペースが入ってはいけません。 モード指定のkanaとkanjiは,同時に指定することはできま せん。 o -ip dec -op ibmの場合 モード指定のkeywordは,出力ファイルの開始・終了モ ードを指定します。DEC側の開始モードは,KMAPファイ ルの指定に依存します。 o -ip ibm -op decの場合 モード指定のkeywordは,入力ファイルの開始・終了モ ードを指定します。-fオプションを指定しない場合は, 先頭レコードが2バイト・コード開始のシフト・コード (X'0E') で始まらない限り,英数字モードから始まるも のと見なします。 F-6 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ -k kmapレコード数 KMAPレコード数の省略値は1です。 o -ip dec -op ibmの場合 -kを指定した時,入力ファイル名に".kmap"を付加した 名前のファイルが,入力ファイルの2バイトコード・1 バイトコード混在情報を示すKMAPファイルであるとみな されます。ただし,環境変数JSNACODE_KMAPFILE にKMAP ファイル名が定義されている場合には,そのファイル名 が優先的に使用されます。以下はC-shellの場合の環境 変数の定義例です。 % setenv JSNACODE_KMAPFILE KMAPファイル名 コード変換はKMAPファイルに定義されている情報に従っ て実行されます。KMAPレコード数の指定がある場合, KMAPファイルの先頭レコードから指定されたレコード数 を変換する際に使用します。KMAPファイル内の全KMAPレ コード数が指定された値より小さい場合は,全KMAPレコ ード数が指定されているものとして処理されます。-kと -eは同時には指定できません。 この指定がない場合は,-eの指定に従います。 またKMAPコードが"Xk"で対応する入力コードが漢字コー ドだった場合は,KMAPコードは"XX"であると見なしま す。 入力ファイルとして,標準入力を使用した場合は, jsnacode_stdio.kmapという名前のKMAPファイルを参 照します。このファイルが無い場合はエラーとなりま す。 o -ip ibm -op decの場合 -kの指定がある場合,コマンド・パラメータで指定した 出力ファイル中に1バイトコードがあっても,エスケー プ・シーケンス(SS2,またはLS2R,LS3R) を挿入せず, 出力ファイルの後に".kmap"を付加したファイルを作成 し,2バイトコード・1バイトコードの混在情報を出力 します。ただし,もし環境変数JSNACODE_KMAPFILEにKMAP ファイル名が割り当てられている場合は,そのファイル 名でKMAPファイルが作成されます。KMAPレコード数の指 定がある場合,KMAPファイルに出力されるのは出力ファ jsnacodeユーティリティ F-7 jsnacodeユーティリティ F.1 jsnacodeユーティリティ イルの先頭レコードから数えてKMAPレコード数分のレコ ードに対する2バイトコード・1バイトコードの混在情 報です。 -kと-eは同時には指定できません。この指定がない場合 は-eの指定に従います。 出力ファイルとして標準出力を使用した場合は, jsnacode_stdio.kmapという名前のKMAPファイルが作 成されます。 ________________________ 注意 ________________________ -kオプションを指定し, IBM→DEC→IBMのように変換させよ うとして, jsnacodeコマンドをパイプでつないで連続実行さ せると,出力中のKMAPファイルが参照できずにエラーとなり ます。この場合は,コマンドを複数回に分けて実行してくだ さい。 ______________________________________________________ -t このオプションは-ip dec -op ibmの指定の場合に有効で す。 -tの指定がある場合は,タブをそれ自体有効なコードと解釈 し,タブ・コードを空白文字列へ変換することを行いませ ん。 -tの指定が無い場合は,タブ・コードを次の文字位置が8の 倍数となるようにタブ文字を空白文字に変換します。 空白文字列の変換は,DECコードからIBMコードへの変換の前 に行われます。したがって2バイトコードの前後に挿入され るシフトコード文字(X'0E', X'0F') はタブ位置の計算には 含まれません。 -i入力ファイル 変換対象のファイル名を指定します。このオプションを省略 した場合は,入力として標準入力が割り当てられます。 F-8 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ -o出力ファイル 変換した結果のファイル名を指定します。このオプションを 省略した場合は,出力として標準出力が割り当てられます。 jsnacodeユーティリティ F-9 jsnacodeユーティリティ F.1 jsnacodeユーティリティ F.1.3 KMAPファイル KMAPファイルは,DEC漢字セットの2バイト文字列と1バイト文字列 (ASCII+半角カタカナ)がLS2R ,LS3R またはSS2 のコードなしで 混在したファイルを読み込む(または書き込む)際に使用する(また は作成する)ファイルです。KMAPファイルの中では,変換対象ファ イルのレコードに含まれる漢字を"XX",英数字を"X"で表し,半角 カタカナを"k"で表します。 -k KMAPレコード数で指定したKMAPファイルには,変換対象ファイ ルの先頭レコードから指定されたレコード数分の情報が含まれま す。 図 F-1 -k 2の場合のKMAPファイルと変更対象ファイル F-10 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ % jsnacode-f s:1 l:30 -f s:41 -l:20 - _%-ip ibm -op dec -k 入力ファイル名 出力ファイル名 上記のような1レコード内のある部分のみを変換対象とした場合, 作成されるKMAPレコードは次のような図のものとなり,変換対象 となっていない部分については空白文字(X'20')が埋め込まれま す。 図 F-2 KMAPファイルの出力例 F.1.4 1バイトコード変換テーブル OSF/1システム上ではASCIIとJISカタカナが用いられます。一方, IBMシステム上では,EBCDICが用いられます。jsnacodeユーティリ ティでは,これらの文字コードを相互に変換するために,変換テ ーブルを用います。 jsnacodeユーティリティがデフォルトで提供する変換テーブルを 図 F-3に示します。 変換テーブルは最上段の0〜Fは,EBCDICコードでの上位4ビットを 表し,最左段の0〜FはEBCDICコードでの下位4ビットを表します。 上位4ビットに対応する行と下位4ビットに対応する列の交わる位 置に書き込まれている文字および16進コードが,OSF/1システム上 での文字および16進コードを表しています。 もし,ユーザが独自の変換テーブルを定義して使用したい場合は, jsnatratblユーティリティを使用して,変換テーブルを作成し, jsnacodeユーティリティでそれを使用することが可能です。 詳細は第H.1節を参照してください。 jsnacodeユーティリティ F-11 jsnacodeユーティリティ F.1 jsnacodeユーティリティ 図 F-3 jsnacodeが提供する変換テーブル(EBCDICJIS) 注:EBCDICJISの場合,未定義のEBCDICコードはJISコードの SUB(X'1A')に変換されます。JISEBCDICの場合,未定義のJISコー ドはEBCDICコードのSUB(X'3F')に変換されます。 F-12 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ F.1.5 jsnacodeエラーメッセージ一覧 jsnacodeユーティリテイにおいてエラーが発生したとき,以下に示 すようなエラーメッセージが出力されます。エラーが発生したと きは,出力されたエラーメッセージについての説明と利用者の対応 をよく読み,適切な処置を行ってください。 Abnormal input file read, 説明: 入力ファイルを読もうとしたところエラーが生じました。 利用者の対応: 入力ファイルのプロテクション等を確認して下さ い。 Abnormal output file write, 説明: 出力ファイルに書き込もうとしたところエラーが生じまし た。 利用者の対応: 出力ファイルが作成されるディレクトリのプロテク ション等を確認して下さい。 Abnormal KMAP file read or write, 説明: KMAPファイルにアクセスしようとしてエラーが生じました。 利用者の対応: KMAPファイルの内容,プロテクション等をチェック して下さい。 Abnormal GAIJI control file read, 説明: 外字管理ファイルを読み込もうとしてエラーが生じました。 利用者の対応: 外字管理ファイルのプロテクション等を確認して下 さい。 FIELD parameter mismatch, 説明: -fオプションで指定した変換範囲が,漢字の第2バイト目で 終了している等のエラーです。 利用者の対応: -fオプションで指定した値を確認して下さい。 Insufficient dynamic memory, 説明: ファイルを読み込むためのバッファが確保できません。 利用者の対応: しばらく時間が経った後,再実行し,同じエラーメッ セージが表示される場合は,システム管理者に問い合わせて下さ い。 jsnacodeユーティリティ F-13 jsnacodeユーティリティ F.1 jsnacodeユーティリティ Invalid parameter value specified, 説明: jsnacodeの修飾子,コマンド・パラメータで無効な値が指定 されました。 利用者の対応: 指定した値を再確認して,正しい値を指定して下さ い。 Input file not found, 説明: 入力ファイルが見つかりません。 利用者の対応: 指定した入力ファイル名を確認して下さい。 KMAP file not found, 説明: -kオプションで指定したKMAPファイルが見つかりません。 利用者の対応: 指定したKMAPファイル名を確認して下さい。 GAIJI control file not found, 説明: -xオプションで指定した外字管理ファイルが見つかりませ ん。 利用者の対応: 指定した外字管理ファイル名を確認して下さい。 No record in input file, 説明: 入力ファイルの中にレコードが存在していません。 利用者の対応: 入力ファイルの内容を確認して下さい。 No record in KMAP file, 説明: KMAPファイルの中にレコードが存在していません。 利用者の対応: KMAPファイルの内容を確認して下さい。 Translation table load error, 説明: -cオプションで指定した1バイトコード・テーブルを読み込 む際に,エラーが生じました。 利用者の対応: 指定した1バイトコード・テーブル・ファイルの構 造,プロテクション等を確認して下さい。 Invalid Combination of parameter, 説明: パラメータの組み合せが正しくありません。 利用者の対応: 正しい組み合せで実行してください。 Parameter value is not specified, 説明: パラメータ値が指定されていません。 利用者の対応: パラメータ値を指定してください。 F-14 jsnacodeユーティリティ jsnacodeユーティリティ F.1 jsnacodeユーティリティ Invalid keyword, 説明: パラメータのキーワード名が間違っています。 利用者の対応: 正しいキーワード名を指定してください。 jsnacodeユーティリティ F-15 G _________________________________________________________________ jsnaknjdefユーティリティ _________________________________________________________________ G.1 jsnaknjdefユーティリティ jsnaknjdefユーティリティは,OSF/1ユーザがIBM付加文字および IBMユーザ定義文字とDEC拡張漢字セットのユーザ定義領域の文字 との対応を設定,管理するためのソフトウェアです。このプログ ラムはjsnaknjdefコマンドにより起動されます。 G.1.1 起動方法 次のようなOSF/1のオペレーションにより起動されます。 % jsnaknjdef [ファイル名] (jsnaknjdefユーティリティの起動) jsnaknjdef> (jsnaknjdefのプロンプト) G.1.2 jsnaknjdefコマンド形式 jsnaknjdefコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ jsnaknjdef_________________________________________________ (形式) jsnaknjdef (コマンド・パラメー 外字管理ファイル名(省略可) タ) (コマンド・オプショ なし ン)_______________________________________________________ jsnaknjdefユーティリティ G-1 jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ G.1.3 jsnaknjdefユーティリティ内のコマンド形式 jsnaknjdef>プロンプトに対し,ユーザは次のコマンドを入力する ことができます。 o use o list o define o undefine o help o exit o quit 以下にこれらのコマンド形式について説明します。 G.1.3.1 useコマンド useコマンドは,使用する外字管理ファイルを指定します。 useコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ use_____________________________________________________ (形式) use 外字管理ファイル名 ___________________________________________________________ (コマンド・パラメー タ)__________________(Default)____________________________ 外字管理ファイル名____なし_________________________________ 指定されたファイル名により既存のファイルがあれば,そのファ イルを使用対象とし,なければ新しい外字管理ファイルを作成し ます。ただし,新しいファイルを作成する場合は,スーパー・ユ ーザでなければなりません。外字管理ファイルは,IBM付加文字お よびIBMユーザ定義文字を,DECユーザ定義領域のどの部分と対応 付けるかの情報を保存するファイルです。 G-2 jsnaknjdefユーティリティ jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ ________________________ 注意 ________________________ useコマンドにより選択された外字管理ファイルは, jsnaknjdefユーティリティ内で次にuseコマンドを発行 するまで,define,undefine,listコマンドの対象ファイル となります。 また,現在指定されているファイルを再度指定した場合, jsnaknjdef起動時のファイル内容から編集し直すことができ ます。 ______________________________________________________ G.1.3.2 listコマンド listコマンドは,useコマンドにより指定された外字管理ファイル の内容をoutputで指定したファイルに表形式で出力します。 listコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ list___________________________________________________ (形式) list ___________________________________________________________ (コマンド・オプショ ン)__________________(Default)____________________________ outputファイル名______標準出力_____________________________ jsnaknjdefユーティリティ G-3 jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ (コマンド・オプション) outputファイル名 このオプションが省略された場合は,標準出力(端末画面) に出力します。 図 G-1 list表示例−1 jsnaknjdef> use extern.tbl jsnaknjdef> list List of the DEC-IBM external Kanji File: extern.tbl DEC Extended IBM Kanji DEC Extended IBM Kanji Kanji Kanji 1 External 17 User 6d 2 External 18 User 6d 3 External 19 User 6e 4 External 20 User 6e 5 External 21 User 6f 6 External 22 User 6f 7 User 69 23 User 70 8 User 69 24 User 70 9 undefined 25 User 71 10 undefined 26 User 71 11 User 6a 27 User 72 12 User 6a 28 User 72 13 User 6b 29 undefined 14 User 6b 30 undefined 15 User 6c 31 undefined 16 User 6c (END of list) Note : DEC Ku No. is decimal. IBM Ku No. is Hexa-decimal. 表中の”External”は,IBM付加文字を表し,”User xx”は,IBM ユーザ定義文字の第xx区を示しています。 G-4 jsnaknjdefユーティリティ jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ G.1.3.3 defineコマンド defineコマンドは,useコマンドにより指定された外字管理ファイ ルの情報を定義します。 defineコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ define_______________________________________________ (形式) define (制限) このコマンドはスーパー・ユーザのみ実 行することができます ___________________________________________________________ (コマンド・オプショ ン)__________________(Default)____________________________ external なし user IBMユーザ定義文 なし 字区番号 to DECユーザ定義領域 なし 区番号_____________________________________________________ (コマンド・オプション) external IBM付加文字(386文字)について定義をする場合に指定しま す。 externalとuserを同時に指定した場合は,最後に指定したも のが有効になります。 user IBMユーザ定義文字区番号 IBMユーザ定義文字について定義をする場合に使用します。 続くオプションは,IBMユーザ定義文字区番号で69〜7Fまで を16進数で指定します。externalとuserを同時に指定した場 合は,最後に指定したものが有効になります。 jsnaknjdefユーティリティ G-5 jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ to DECユーザ定義領域区番号 o externalが指定されている場合 1〜26までの区番号を10進数で指定します。指定された 区番号を始めとした連続6区間にIBM付加文字が対応付け られます。たとえばto 21を指定した場合は,DECユー ザ定義領域の21〜26区にIBM付加文字が対応付けられま す。 o userが指定されている場合 1〜29までの区番号を10進数で指定します。指定された 区番号を始めとした連続2区間にIBMユーザ定義文字が対 応付けられます。たとえばuser 69,to 1を指定した場 合は,IBMユーザ定義文字69区が,DECユーザ定義領域の 1,2区に対応付けられます。 defineコマンド使用例を示します。 o 新規にファイルを作成する場合 # jsnaknjdef jsnaknjdef> use mytbl.tbl jsnaknjdef> define external to 21 jsnaknjdef> define user 69 to 1 jsnaknjdef> define user 6A to 3 jsnaknjdef> define user 6B to 5 jsnaknjdef> define user 6C to 7 jsnaknjdef> exit 上記のコマンドにより新規に作成されたmytbl.tblの中に は、次のような指定がされることになります。 _______________________________________________________ IBM漢字_______________DEC漢字__________________________ IBM付加文字 DEC拡張漢字セットの第21区〜第26 区 IBMユーザ定義文字の DEC拡張漢字セットの第1区〜第2区 第69区 IBMユーザ定義文字の DEC拡張漢字セットの第3区〜第4区 第6A区 IBMユーザ定義文字の DEC拡張漢字セットの第5区〜第6区 第6B区 G-6 jsnaknjdefユーティリティ jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ _______________________________________________________ IBM漢字_______________DEC漢字__________________________ IBMユーザ定義文字の DEC拡張漢字セットの第7区〜第8区 第6C区_________________________________________________ o 外字管理ファイルを更新する場合 # jsnaknjdef jsnaknjdef> use mytbl.tbl jsnaknjdef> define use 69 to 9 jsnaknjdef> exit 上記のコマンドにより既存のmytbl.tblは、次のように更新 されることになります。 _______________________________________________________ IBM漢字_______________DEC漢字__________________________ IBM付加文字 DEC拡張漢字セットの第21区〜第26 区 IBMユーザ定義文字の DEC拡張漢字セットの第9区〜第10区 第69区 IBMユーザ定義文字の DEC拡張漢字セットの第3区〜第4区 第6A区 IBMユーザ定義文字の DEC拡張漢字セットの第5区〜第6区 第6B区 IBMユーザ定義文字の DEC拡張漢字セットの第7区〜第8区 第6C区_________________________________________________ jsnaknjdefユーティリティ G-7 jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ G.1.3.4 undefineコマンド undefineコマンドは,useコマンドにより指定された外字管理ファ イルの情報をクリア(初期化)します。 undefineコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ undefine___________________________________________ (形式) undefine (制限) このコマンドはスーパー・ユーザのみ 実行することができます ___________________________________________________________ (コマンド・オプショ ン)_____________________(Default)_________________________ all なし external なし user IBMユーザ定義文字 なし 区番号_____________________________________________________ (コマンド・オプション) all 現在定義されているすべてのIBMユーザ定義文字およびIBM付 加文字を未定義にする場合に指定します。 allとexternalとuserを同時に指定した場合は,最後に指定 したものが有効になります。 external IBM付加文字(386文字)を未定義にする場合に指定します。 allとexternalとuserを同時に指定した場合は,最後に指定 したものが有効になります。 user IBMユーザ定義文字区番号 G-8 jsnaknjdefユーティリティ jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ IBMユーザ定義文字を未定義にする場合に使用します。続く オプションは,IBMユーザ定義文字区番号で69〜7Fまでを16 進数で指定します。allとexternalとuserを同時に指定した 場合は,最後に指定したものが有効になります。 undefineコマンド使用例 o 現在定義されているすべてのIBMユーザ定義文字およびIBM付 加文字を未定義にする場合 jsnaknjdef> undefine all o IBM付加文字を未定義にする場合 jsnaknjdef> undefine external o IBMユーザ定義文字を未定義にする場合 jsnaknjdef> define user 69 G.1.3.5 helpコマンド helpコマンドによりjsnaknjdefユーティリティのコマンド説明を 端末装置に表示します。 helpコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ help___________________________________________________ (形式)______________help_________________________________ G.1.3.6 exitコマンド exitコマンドにより修正した箇所を保存してjsnaknjdefユーティ リティを終了します。 exitコマンドのフォーマットは,次のとおりです。 jsnaknjdefユーティリティ G-9 jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ ___________________________________________________________ exit___________________________________________________ (形式)______________exit_________________________________ G.1.3.7 quitコマンド quitコマンドにより修正した箇所を保存せずに jsnaknjdefユーテ ィリティを終了します。 quitコマンドのフォーマットは,次のとおりです。 ___________________________________________________________ quit___________________________________________________ (形式)______________quit_________________________________ G-10 jsnaknjdefユーティリティ jsnaknjdefユーティリティ G.1 jsnaknjdefユーティリティ G.1.4 jsnaknjdefエラーメッセージ一覧 この節では,コマンドの正常終了を受け入れられない可能性のある 条件を示すエラーメッセージをまとめます。 DECの区番号は1〜31の10進数で指定してください。IBMの区番号はで指 定してください, 説明: 入力されたコードが10進数でないか,入力されたコードが規 定された範囲を越えています。 利用者の対応: 入力コードを確認してください。 USEコマンドでファイルを指定してください, 説明: 外字管理ファイル名が指定されていません。 利用者の対応: USEコマンドを使用して,外字管理ファイルを指定 してください。 jsnaknjdefユーティリティ G-11 H _________________________________________________________________ jsnatratblユーティリティ _________________________________________________________________ H.1 jsnatratblユーティリティ IBMシステムでは,文字コードセットとしてEBCDICコードを使用 します。OSF/1システムではDEC Multi Character Set(DMCS)を使 用します。DMCSは標準的なASCII文字セットのスーパーセットで す。日本語3270 DSPIではDMCSと他の文字コードセットとの間で文 字を変換するテーブルを使用します。利用者はjsnatratblユーテ ィリティを用いて利用者独自の変換テーブルを作成することがで きます。その際,利用者は,日本語3270 DSPIで提供するテンプレ ート・ファイルを用います。利用者は,テンプレートファイルを 修正することにより,独自の変換テーブルを作成します。日本語 3270 DSPIで提供するテンプレートファイルは/usr/lib/sna/ja_JP /jsnarjetra.marにありますので参照してください。 H.1.1 変換テーブル修正マクロ もし,日本語3270 DSPIで提供されている変換テーブルが利用者 の要求を満たしていない場合は,テンプレートファイル中にマ クロを定義することにより,目的とする変換テーブルを作成でき ます。変更するには,テンプレートファイル/usr/lib/sna/ja_JP /jsnarjetra.marを利用者のディレクトリ下にコピーしてからvi等 のエディタで変更してください。定義できるマクロは5種類あり ます。また,各マクロの引き数として共通に以下の引き数を指定 できます。 o eb EBCDICコードを16進数2桁で指定します。 jsnatratblユーティリティ H-1 jsnatratblユーティリティ H.1 jsnatratblユーティリティ o as DMCSコードを16進数2桁またはシングル・クオーテイシ ョンマーク(')の後に文字付けて指定します。 ________________________ 注意 ________________________ シングル・クオーテイションマークを使用してasを指定する 場合, DMCS文字にカンマ(,)とセミコロン(;)は指定できませ ん。 カンマは引き数の区切り記号として,またセミコロンは コメント開始記号として解釈されるので,シングル・ク オーテイションのみが指定されたと判断されます。(エ ラーにはならず, 00(ヌルコード)が定義されたと解釈 されます。)よって,カンマ,セミコロンをDMCSコードと して指定する場合は,直接, 16進コード(カンマの場合 は2C,セミコロンの場合は3B )を指定してください。 ______________________________________________________ H.1.1.1 マクロ 1. EB2AS eb,as EB2ASマクロはEBCDICからDMCSに変換する場合のEBCDICコー ドとDMCSコードの対応を定義します。ebで定義されたEBCDIC コードは,asで定義されたDMCSコードに変換されます。この マクロはEBCDICコードからDMCSコードに変換する場合の対応 を定義するだけですので,DMCSコードからEBCDICコードへの 変換には影響を与えません。 例: EB2AS 5A,'! この例ではEBCDICコードの16進数5AをDMCSコードの文字'!' (16進数21)に変換することを定義しています。DMCSコードか らEBCDICコードへの変換時の'!'文字の変換には影響を与え ません。 2. AS2EB as,eb H-2 jsnatratblユーティリティ jsnatratblユーティリティ H.1 jsnatratblユーティリティ AS2EBマクロはDMCSからEBCDICに変換する場合のDMCSコード とEBCDICコードの対応を定義します。asで定義されたDMCSコ ードは,ebで定義されたEBCDICコードに変換されます。この マクロはDMCSコードからEBCDICコードに変換する場合の対応 を定義するだけですので,EBCDICコードからDMCSコードへの 変換には影響を与えません。 例: AS2EB '[,5F この例ではDMCSコードの文字'['(16進数5B)をEBCDICコード の16進数5Fに変換することを定義しています。EBCDICコード からDMCSコードへの変換時の16進数5Fの変換には影響を与え ません。 3. REVTRA eb,as REVTRAマクロはEB2ASマクロとAS2EBマクロを併せたマクロで す。EBCDICコードとDMCSコードの双方向の変換を定義するこ とができます。このマクロで定義されたEBCDICコードとDMCS コードは,EBCDICコードからDMCSコードへの変換時及びDMCS コードからEBCDICコードへの変換時の両方の場合に対応付け られます。 例: REVTRA 4A,A2 この例では,EBCDICコードからDMCSコードへの変換時には, EBCDICコードの16進数4Aは,DMCSコードの16進数A2に変換 し,DMCSコードからEBCDICコードへの変換時には,DMCSコー ドの16進数A2は,EBCDICコードの16進数4Aに変換することを 定義しています。この例は以下のように定義した場合と同じ 意味を持つことになります。 AS2EB A2,4A EB2AS 4A,A2 4. DMFILL = code. jsnatratblユーティリティ H-3 jsnatratblユーティリティ H.1 jsnatratblユーティリティ 文字の割り当てられていないDMCSコードに割り当てるコード を10進数で指定します。通常は,ASCII SUBコード(10進数 26)を指定します。 例: DMFILL = 26. 5. END. 変換テーブルの終わりを示します。 ________________________ 注意 ________________________ マクロは1行に1つしか指定できません。 ______________________________________________________ H.1.1.2 コメント 定義ファイル中の任意の場所にコメント文字列を入れることがで きます。コメントはセミコロン(;)で始まり,行末で終わります。 例: ; This is a comment line. H.1.2 変換テーブルの作成 作成するには,テンプレートファイル/usr/lib/sna/ja_JP /jsnarjetra.marを利用者のディレクトリ下にコピーしてから vi等のエディタで変更してください。テンプレートファイル/usr /lib/sna/ja_JP/jsnarjetra.marを直接修正しないことをお勧めし ます。 変換テーブルの作成は,修正したテンプレートファイルについて 以下に示すコマンドを実行することにより行ないます。 % jsnatratbl [-l] [-d] [入力ファイル名 [出力ファイル名]] H-4 jsnatratblユーティリティ jsnatratblユーティリティ H.1 jsnatratblユーティリティ -lオプショ 作成された変換テーブルの内容が,表形式のテキ ン ストファイルで出力されます。入力ファィル名に ".lis"を付加したファイルが作成されます。ただし, -dオプションを指定した場合は, "tratbldef.lis"が 作成されます。 -dオプショ jsnatratblユーティリティの省略時のテーブルを出 ン 力します。この省略時のテーブルは,入力ファイル中 に何もコマンドを指定しなかった場合と同じもので す。このオプションを指定すると入力ファイル,出力 ファイル指定共に無効になります。変換テーブルは, "tratbldef.tbl"という出力ファイル名で作成されま す。 入力ファイ jsnatratblユーティリティの入力ファイルとなる変 ル 換テーブル定義ファイル名です。このパラメータは 省略できません。ただし, -dオプションを指定した 場合は無効になり,この場合は省略可能です。 出力ファイ jsnatratblユーティリティの出力ファイルとなる変 ル 換テーブルファイル名です。このパラメータを省略 した場合は,入力ファイル名に".tbl"を付加したファ イル名で出力ファイルが作成されます。ただし, -d オプションを指定した場合は無効になります。 jsnatratblユーティリティ H-5 jsnatratblユーティリティ H.1 jsnatratblユーティリティ H.1.3 変換テーブル作成例 ここで示す変換テーブルの作成例は,カナ文字用変換テーブルに EBCDICコードからDMCSコードに変換する場合は,16進数C0及び16 進数DOを'{'及び'}'に変換し,DMCSコードからEBCDICコードに変 換する場合は,'{'及び'}'を16進数4D及び16進数5Dに変換するよ うに修正する場合を示しています。 DMFILL = 26. ・ ・ ・ ;EB2AS C0,1A ;EB2AS D0,1A ;AS2EB 7B,3F ;AS2EB 7D,3F EB2AS C0,'{ EB2AS D0,'} AS2EB '{,4D AS2EB '},5D ・ ・ ・ .END H-6 jsnatratblユーティリティ jsnatratblユーティリティ H.1 jsnatratblユーティリティ H.1.4 jsnatratblエラーメッセージ一覧 jsnatratblユーティリティにおいてエラーが発生したとき,以下に 示すようなエラーメッセージが出力されます。エラーが発生した ときは,出力されたエラーメッセージについての説明と利用者の対 応をよく読み,適切な処置を行ってください。 Invalid option specified xxx, 説明: jsnatratblコマンドに間違ったオプションが指定されていま す。 利用者の対応: 正しいオプションを指定してください。 Too many parameters are specified, 説明: jsnatratblコマンドのパラメータ指定が多すぎます。 利用者の対応: 指定するパラメータの数を確認してコマンドを入力 し直してください。 Input file name is not specified, 説明: jsnatratblコマンドの入力ファイル名が指定されていませ ん。 利用者の対応: 入力ファイル名を指定してください。 Invalid output file name specification, 説明: jsnatratblコマンドの出力ファイル指定が間違っています。 利用者の対応: 出力ファイル名を確認してコマンドを入力し直して ください。 Cannot open xxx, 説明: ファイルxxxをオープンできません。 利用者の対応: ファイル名またはファイルの保護属性が正しいか確 認してください。 Invalid command name specification - at line nn, 説明: nn行目に間違ったコマンドが指定されています。 利用者の対応: 正しいコマンドに修正してください。 Command parameter not found - at line nn, 説明: nn行目のコマンドのパラメータが指定されていません。 利用者の対応: パラメータを指定してください。 jsnatratblユーティリティ H-7 jsnatratblユーティリティ H.1 jsnatratblユーティリティ Invalid character or string exists - at line nn, 説明: nn行目のコマンドの後に不正な文字列があります。 利用者の対応: 不正文字を取り除くか,またはコマンドのパラメー タが正しいかどうか確認してください。 Too many parameter specified - at line nn, 説明: nn行目のコマンドのパラメータ数が多すぎます。 利用者の対応: パラメータの数を修正するか,またはパラメータ値 にカンマ(,)が指定されていないか確認してください。 Invalid value specification - at line nn, 説明: nn行目のコマンドのパラメータ値が正しくありません。 利用者の対応: 正しいパラメータ値を指定してください。 No value is specified - at line nn, 説明: nn行目のコマンドのパラメータ値が指定されていません。 利用者の対応: パラメータを指定してください。 Invalid decimal number specification - at line nn, 説明: nn行目のコマンドのパラメータ値が正しい10進数で指定され ていません。 利用者の対応: 正しい10進数を指定してください。 Specified value is too large - at line nn, 説明: nn行目のコマンドのパラメータ値が範囲を越えています。 利用者の対応: 正しいパラメータ値を指定してください。 equal(=)specification not found, 説明: コマンドのパラメータ指定にイコール(=)記号が指定され ていません。 利用者の対応: パラメータ値の前にイコール記号を指定してくださ い。 less arguments, 説明: コマンドのパラメータ数が足りません。 利用者の対応: パラメータの数が正しいかを,またはパラメータ値 にセミコロン(;)が指定されていないかを確認してください。 H-8 jsnatratblユーティリティ jsnatratblユーティリティ H.1 jsnatratblユーティリティ value string is too long, 説明: コマンドのパラメータ指定が長すぎます。 利用者の対応: 正しいパラメータ値を指定してください。 invalid hexadecimal value, 説明: パラメータ指定に正しくない16進数が指定されています。 利用者の対応: 正しい16進数を指定してください。 invalid specification of EBCDIC code, 説明: EBCDICコード指定に間違った値が指定されています。 利用者の対応: EBCDICコード指定が正しいか,またはEBCDICパラメ ータにASCII文字を指定していないか確認してください。 jsnatratblユーティリティ H-9 I _________________________________________________________________ DEC/IBMコード変換ライブラリ _________________________________________________________________ I.1 DEC/IBMコード変換ライブラリ ここではDECコードとIBMコード間の変換を行うライブラリの使用 方法を説明します。 漢字コードについては以下の関連資料を参照してください。 IBM関連資料 1. 漢字コード一覧表(N:GC18-2040-3) DEC関連資料 1. 漢字コード表(AA-A056B-TE-JO) 2. VT282 programmer Reference Manual (YJ-CT82C-01) 3. jsnaknjdefユーティリティについては本書の第G.1節をご覧 ください。 I.1.1 コード変換ライブラリの概要 DEC/IBMコード変換ライブラリはDECコード,IBMコード相互間の変 換を行うルーチン群です。 DECコード,IBMコードには1バイトコードおよび2バイトコードを 混在させることが可能です。 DEC/IBMコード変換ライブラリ I-1 DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ I.1.1.1 サポートされる漢字コード DEC,IBMともにJIS X0208-1983準拠の漢字コードをサポートしま す。それぞれの詳細は,関連資料を参照してください。 I.1.1.2 ライブラリ構成 コード変換ライブラリは以下のリンク・ライブラリとして提供さ れています。 /usr/i18n/usr/lib/libtra.a I.1.1.3 リンク方法 DEC/IBMコード変換ライブラリは,日本語3270 DSPIのライセンスが 無いと動作しません。コンパイル時には以下の例のようにリンク ライブラリにLMFライブラリを指定してください。 cc user_prog -ltra -llmf I.1.2 コード変換ライブラリの詳細 I.1.2.1 Item List いくつかのルーチンで使用されるItem Listは各Itemごとに下記の 構造を持ちます。プログラム言語用定義ファイル内でItem List のテンプレートが設定されています。Item Listの最後にはitem code = 0(TRA_k_end_of_list)を指定しなければなりません。 図 I-1 Item List structure _______________________________________________________________ ____________reserved______________________item_code____________ 0 |__________________________item_|alue__________________________| 4 | | | | | I-2 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ I.1.2.2 Item Code 次の表は利用可能なItem Codeの一覧を示しています。記号の値は 各言語用定義ファイル内に定義されています。 表 I-1 Item Code一覧 ___________________________________________________________ Item_Code___________Item_Value______Description____________ TRA_k_end_of_list アイテムリストの終了 TRA_k_trans_mode 変換モード 変換モードの初期値を設 Bitmask 定します。Item Valueは 表 I-2を参照してくださ い。 TRA_k_asc_ebc_tbl 変換テーブルの DECからIBMへの1バイトコ 先頭アドレス ード変換テーブル(256バ イト)を設定します。 TRA_k_ebc_asc_tbl 変換テーブルの IBMからDECへの1バイトコ 先頭アドレス ード変換テーブル(256バ イト)を設定します。 TRA_k_load_sna jsnatratblユーティリ ティで作成したtbl_file をロードすることを指 定します。tbl_fileは tra_dec_ibm_initルーチ ンの2番目の引き数で指 ____________________________________定します。_____________ ________________________ 注意 ________________________ TRA_k_asc_ebc_tbl, TRA_k_ebc_asc_tblで指定される1バイ トコード変換テーブルとはプログラマがソースコード中に配 列として設定するコード変換テーブルのことを意味します。 jsnatratbleユーティリティで作成される変換テーブルでは ありませんので注意が必要です。1バイトコード変換テーブ ルの具体例については, 第I.1.4項プログラム例を参照して ください。 また, Item CodeでTRA_k_load_snaが指定されていても,同時 にTRA_k_asc_ebc_tbl, TRA_k_ebc_asc_tblが指定されていれ ば, TRA_k_load_snaの指定は無視され,プログラマがソース DEC/IBMコード変換ライブラリ I-3 DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ コード中に配列として設定するコード変換テーブルが優先的 に使用されますので御注意ください。 ______________________________________________________ I.1.2.3 変換モードBitmask TRA_k_trans_modeのItem valueはbitmaskとなっています。各フィ ールドのオフセットを表 I-2に示します。文字列の初期,最終モ ードを除くフィールドの値が1の場合,その機能を有効(enable)に します。変換モードを指定する際には必要な機能全てを設定する 必要があります。 TRA_vのかわりにTRA_mのprefixを使うことにより,各フィールド のbit mask patternを利用することができます。 表 I-2 変換モード ___________________________________________________________ Number of Bit_Offset______________bits____Description________________ TRA_v_dec_first_mode + 2 DEC文字列初期モード TRA_v_dec_last_mode + 2 DEC文字列最終モード TRA_v_dec_shift 1 DECロッキング・シフト・コー ドの解釈 TRA_v_dec_shift_ss 1 DECシングル・シフト・コード の解釈 TRA_v_ibm_first_mode + 2 IBM文字列初期モード TRA_v_ibm_last_mode + 2 IBM文字列最終モード TRA_v_ibm_shift 1 IBMシフト・コードの解釈 TRA_v_tab_expand 1 TABコードを空白コードに展開 する TRA_v_replace 1 シフト・コード位置に空白を 入れる +表_I-3参照のこと__________________________________________ I-4 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ ___________________________________________________________ I.1.2.3.1 文字列の初期/最終モード 文字列の初期モード 入力側ではどのような文字セットより文字列が開始されている か,出力側ではどのような文字セットとして出力を受け取るかを 規定します。 文字列の最終モード 出力側ではどのような文字セットとして出力を終了するかを規定 します。入力側においては実際の変換対象文字列に依存するため 意味をもちません。 入出力両方のシフト・コードの解釈が有効である場合,上記モー ド設定に従い必要なシフト・コードが付加されます。 変換モードbitmaskの文字列の初期/最終モードのフィールドは以 下の値をとります。 表 I-3 文字列モードの値 ___________________________________________________________ Value_____________Description______________________________ TRA_k_kanji_mode 漢字文字列モード DEC文字列においては ASCII/漢字文字列を示し ます。 IBM文字列においてはDBCS コード列を示します TRA_k_kana_mode カナ文字列モード DEC文字列においては半角 カナ文字列を示します。 IBM文字列においてはSBCS コード列を示します TRA_k_any_mode 抑制終了モード 変換終了時のモード合わ せを抑制します TRA_k_first_mode 初期モード 最終モードを文字列初期 ____________________________________モードと同じとします___ DEC/IBMコード変換ライブラリ I-5 DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ I.1.2.3.2 シフト・コード DECコード列 半角カナ・コードと漢字コードが混在する文字列において両者を 識別するために使用するシフト・コードには2種類あります。 1. ロッキング・シフト o LS2R (%x'1B7D') 半角カタカナ・コード列の前に使用します o LS3R (%x'1B7C') 漢字コード列の前に使用します DEC漢字コード・セットでは で囲まれた文字 列が半角カタカナを表現します。半角カタカナ以外の1バイ ト・コード(アルファベット等)はどちらに含まれていてもか まいません。 2. シングル・シフト o SS2 (%x'8E') 半角カタカナ・コードの直前に使用します。ロッキン グ・シフトと異なり文字単位に使用するシフト・コード です。 それぞれTRA_v_dec_shift,TRA_v_dec_shift_ssにより指定しま す。ともに設定されているときは入力時はどちらのシフト・コー ドも解釈されますが,出力においてはシングル・シフトのみ出力 対象となります。 IBMコード列 SBCSとDBCSが混在する文字列において,両者を識別するために使 用するシフト・コードは以下のとおりです。 o SO(%x'0E') 漢字コード列の前に使用します o SI(%x'0F') I-6 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ 漢字コード列の直後に使用します I.1.2.3.3 Replaceモード(IBMからDECへの変換の場合のみ) 入力データのシフト・コード位置に空白文字を出力します。空白 文字は%x'40'です。とりわけ漢字とアルファベットが混在するよ うな変換において,変換後のレコード長,および各文字位置を変 えないようにできます。 I.1.2.4 コード変換の例 IBM /DEC漢字コード変換は 次のような変換が行われます。 図 I-2 変換例 o IBMコードからDECコードへ 1 SO/SIコードは削除されます 2 SO/SIコード位置に空白文字が入ります 3 **サポートしていません** 4 **サポートしていません** o DECコードからIBMコードへ 1 SO/SIコードを付加します 2 **サポートしていません** 3 SO/SIコードを付加しません 4 **サポートしていません** DEC/IBMコード変換ライブラリ I-7 DEC/IBMコード変換ライブラリ I.1 DEC/IBMコード変換ライブラリ I.1.2.5 外字の変換 ユーザ定義文字,ベンダー定義文字などのいわゆる外字の変換に はjsnaknjdefユーティリティにより作成された外字管理ファイル を利用して変換を行います。jsnaknjdefユーティリティの詳細は 本書の第G.1節を参照してください。 I.1.2.6 制限事項 シフト・コードを利用した混在文字列を入力として与えた場合, 設定されている1バイトコードテーブルの内容によらず,半角カ ナ・コードを含んだテーブルが設定されているとみなした変換が 行なわれることがあります。 I.1.2.7 DEC/IBMコード変換ルーチンのインタフェース 以下にコード変換ルーチンのインタフェースを示します。 I-8 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_dec_ibm_init _________________________________________________________________ tra_dec_ibm_init 変換ルーチン使用環境の初期設定を行います _________________________________________________________________ C binding tra_dec_ibm_init ( ext_file, tbl_file, context, itemlist ) _________________________________________________________________ 戻り値 状態値を返します _________________________________________________________________ 引数 char *ext_file (Input) 外字管理ファイル名 jsnaknjdefユーティリティにより作成された外字管理ファイルを 指定してユーザ定義文字,IBM付加文字の変換を行うことができま す。 char *tbl_file (Input) jsnatratblユーティリティで作成される1バイトコード変換テーブ ル・ファイル名 itemlistにTRA_k_asc_ebc_tbl, TRA_k_ebc_asc_tblを指定した場 合は,プログラマがソースコード中に配列として宣言したコード変 換テーブルを使用するものと見なされるため, tbl_fileを指定し ても無視されます。 void *context (Output) 変換コンテキスト・ハンドル DEC/IBMコード変換ライブラリ I-9 DEC/IBMコード変換ライブラリ tra_dec_ibm_init 変換コンテキスト・ハンドルが返されます。以降の呼び出しにお いてこのハンドルを用います。 struct TRA_ITEM_LIST *itemlist (Input) 初期設定を行うパラメータ・リスト 指定可能なItem Codeは次の表 I-4を参照してください。 表 I-4 指定可能なItem Code ___________________________________________________________ Item_Code_______Item_Value__________Description____________ TRA_k_end_of_ アイテム・リストの終了 list TRA_k_trans_ 変換モードBitmask 変換モードの初期値を設 mode 定します。Item Valueの 詳細は表 I-2を参照して ください。 TRA_k_asc_ebc_ テーブルの先頭アド DECからIBMへの1バイ tbl レス トコード変換テーブル (256バイト)を設定しま す。tbl_fileの指定は無 視されます。 TRA_k_ebc_asc_ テーブルの先頭アド IBMからDECへの1バイ tbl レス トコード変換テーブル (256バイト)を設定しま す。tbl_fileの指定は無 視されます。 TRA_k_load_sna jsnatratblユーティリ ティで作成したtbl_file をロードすることを指 定します。tbl_fileは tra_dec_ibm_initルーチ ンの2番目の引き数で指 ____________________________________定します。_____________ I-10 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_dec_ibm_init ________________________ 注意 ________________________ TRA_k_asc_ebc_tbl, TRA_k_ebc_asc_tblで指定される1バイ トコード変換テーブルとはプログラマがソースコード中に配 列として設定するコード変換テーブルのことを意味します。 jsnatratblユーティリティで作成される変換テーブルではあ りませんので注意が必要です。1バイトコード変換テーブル の具体例については, 第I.1.4項プログラム例を参照してく ださい。 また, Item CodeでTRA_k_load_snaが指定されていても,同時 にTRA_k_asc_ebc_tbl, TRA_k_ebc_asc_tblが指定されていれ ば, TRA_k_load_snaの指定は無視され,プログラマがソース コード中に配列として設定するコード変換テーブルが優先的 に使用されますので御注意ください。 ______________________________________________________ _________________________________________________________________ 戻り値 TRA_s_normal 正常終了 TRA_s_extnotacc 外字管理ファイルにアクセスできません TRA_s_cantalloc 変換環境を割り当てできません _________________________________________________________________ 機能説明 o 変換テーブル無指定時は図 I-3,図 I-4が設定されます。 o 変換モード無指定時のデフォルト設定は次のとおりです。 DEC/IBMコード変換ライブラリ I-11 DEC/IBMコード変換ライブラリ tra_dec_ibm_init _______________________________________________________ Field___________Value__________________________________ dec_first_mode TRA_k_kanji_mode dec_last_mode TRA_k_kanji_mode dec_shift 1 ibm_first_mode TRA_k_kana_mode ibm_last_mode TRA_k_kana_mode ibm_shift_______1______________________________________ I-12 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_dec_ibm_free _________________________________________________________________ tra_dec_ibm_free 変換ルーチン使用環境を解放します _________________________________________________________________ C binding tra_dec_ibm_free ( context ) _________________________________________________________________ 戻り値 状態値を返します _________________________________________________________________ 引数 void *context (Input) 変換コンテキスト・ハンドル tra_dec_ibm_initにより取得したハンドルを指定します。 _________________________________________________________________ 戻り値 TRA_s_normal 正常終了 TRA_s_badctx 変換コンテキストが正しくありません TRA_s_invparam パラメータが正しくありません TRA_s_cantfree 変換環境が解放できません DEC/IBMコード変換ライブラリ I-13 DEC/IBMコード変換ライブラリ tra_dec_ibm_free _________________________________________________________________ 機能説明 tra_dec_ibm_initにより取得した変換環境は,このルーチンによ り解放する必要があります。 I-14 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_dec_ibm _________________________________________________________________ tra_dec_ibm DECコードの文字列をIBMコードの文字列に変換します _________________________________________________________________ C binding tra_dec_ibm ( src_buf, src_len, dst_buf, dst_len, ret_len, context, itemlist ) _________________________________________________________________ 戻り値 状態値を返します _________________________________________________________________ 引数 char *src_buf (Input) 変換対象バッファの先頭アドレス 変換すべきDECコード文字列を含んだバッファ int src_len (Input) src_bufのバイト長 char *dst_str (Output) 変換結果出力バッファの先頭アドレス 変換後のIBMコード文字列を含むバッファ int dst_len (Input) dst_bufのバイト長 int *ret_len (Output) 変換結果文字列のバイト長 DEC/IBMコード変換ライブラリ I-15 DEC/IBMコード変換ライブラリ tra_dec_ibm void *context (Input) 変換コンテキスト・ハンドル struct TRA_ITEM_LIST *itemlist (Input) 変換時設定を行うパラメータ・リスト tra_dec_ibm_initにおいて設定した初期値を一時的に変更するこ とが可能です。初期値は変更されませんので,呼び出しごとの設 定が必要です。 指定可能なItem Codeは表 I-5を参照してください。 表 I-5 指定可能なItem Code ___________________________________________________________ Item_Code___________Description____________________________ TRA_k_end_of_list アイテム・リストの終了 TRA_k_trans_mode 変換モードを設定します。Item Valueの詳 細は 表 I-2を参照してください。 TRA_k_asc_ebc_tbl DECからIBMへの1バイトコード変換テーブル ____________________(256バイト)を設定します。______________ _________________________________________________________________ 戻り値 TRA_s_normal 正常終了 TRA_s_truncate 結果文字列の切り詰めが行なわれました (正常終了) TRA_s_invparam パラメータが正しくありません TRA_s_badctx 変換コンテキストが正しくありません I-16 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_dec_ibm _________________________________________________________________ 機能説明 o DEC漢字文字セット中の未定義コードは%x'44E9'('□')に変 換します。 o DEC拡張漢字文字セットのコードの変換は使用する外字管理 ファイルの設定に依存します。未定義コードは%x'44E9'('□ ')に変換します。 o 入力バッファ(src_buf),出力バッファ(dst_buf)が同じ文字 列領域を指示していた場合の変換結果は不定です。 o 変換対象文字列に漢字および半角カナ・コードが混在する場 合には,それぞれを識別するためにシフト・コードにより明 示されている必要があります(シフト・コードとしてロッキ ング・シフト( LS2R,LS3R )またはシングル・シフト( SS2 )を使用します)。 o 正しい変換結果を得るためには変換モード設定および1バイ トコード変換テーブルが適切に設定されている必要がありま す。 DEC/IBMコード変換ライブラリ I-17 DEC/IBMコード変換ライブラリ tra_ibm_dec _________________________________________________________________ tra_ibm_dec IBMコードの文字列をDECコードの文字列に変換します _________________________________________________________________ C binding tra_ibm_dec ( src_buf, src_len, dst_buf, dst_len, ret_len, context, itemlist ) _________________________________________________________________ 戻り値 状態値を返します _________________________________________________________________ 引数 char *src_buf (Input) 変換対象バッファの先頭アドレス 変換すべきIBMコード文字列を含んだバッファ int src_len (Input) src_bufのバイト長 char *dst_str (Output) 変換結果出力バッファの先頭アドレス 変換後のDECコード文字列を含むバッファ int dst_len (Input) dst_bufのバイト長 int *ret_len (Output) 変換結果文字列のバイト長 I-18 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_ibm_dec void *context (Input) 変換コンテキスト・ハンドル struct TRA_ITEM_LIST *itemlist (Input) 変換時設定を行うパラメータ・リスト tra_ibm_dec_initにおいて設定した初期値を一時的に変更するこ とが可能です。初期値は変更されませんので,呼び出しごとの設 定が必要です。 指定可能なItem Codeは表 I-6を参照してください。 表 I-6 指定可能なItem Code ___________________________________________________________ Item_Code___________Description____________________________ TRA_k_end_of_list アイテム・リストの終了 TRA_k_trans_mode 変換モードを設定します。Item Valueの詳 細は表 I-2を参照してください。 TRA_k_ebc_asc_tbl IBMからDECへの1バイトコード変換テーブル ____________________(256バイト)を設定します。______________ _________________________________________________________________ 戻り値 TRA_s_normal 正常終了 TRA_s_truncate 結果文字列の切り詰めが行なわれました (正常終了) TRA_s_invparam パラメータが正しくありません TRA_s_badctx 変換コンテキストが正しくありません DEC/IBMコード変換ライブラリ I-19 DEC/IBMコード変換ライブラリ tra_ibm_dec _________________________________________________________________ 機能説明 o 未定義漢字コードは%x'A2A2'('□')に変換します。 o ユーザ定義文字,IBM付加文字コードの変換は使用する 外字管理ファイルの設定に依存します。未定義コード は%x'A2A2'('□')に変換します。 o 入力バッファ(src_buf),出力バッファ(dst_buf)が同じ文字 列領域を指示していた場合の変換結果は不定です。 o 正しい変換結果を得るためには変換モード設定および1バイ トコード変換テーブルが適切に設定されている必要がありま す。 I-20 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_ibm_dec I.1.3 省略時変換テーブル 図 I-3 DEC -> IBM 1バイトコード変換テーブル 0 1 2 3 4 5 6 7 8 9 A B C D E F -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 0 00 10 40 F0 7C D7 79 D7 - - - 58 91 A5 - - 1 01 11 4F F1 C1 D8 C1 D8 - - 41 81 92 A6 - - 2 02 12 7F F2 C2 D9 C2 D9 - - 42 82 93 A7 - - 3 03 13 7B F3 C3 E2 C3 E2 - - 43 83 94 A8 - - 4 37 3C E0 F4 C4 E3 C4 E3 - - 44 84 95 A9 - - 5 2D 3D 6C F5 C5 E4 C5 E4 - - 45 85 96 AA - - 6 2E 32 50 F6 C6 E5 C6 E5 - - 45 86 97 AC - - 7 2F 26 7D F7 C7 E6 C7 E6 - - 47 87 98 AD - - 8 16 18 4D F8 C8 E7 C8 E7 - - 48 88 99 AE - - 9 05 19 5D F9 C9 E8 C9 E8 - - 49 89 9A AF - - A 25 - 5C 7A D1 E9 D1 E9 - - 51 8A 9D BA - - B 0B 27 4E 5E D2 C0 D2 C0 - - 52 8C 9E BB - - C 0C 1C 6B 4C D3 6A D3 6A - - 53 8D 9F BC - - D 0D 1D 60 7E D4 D0 D4 D0 - - 54 8E A2 BD - - E 0E 1E 4B 6E D5 A1 D5 A1 - - 55 8F A3 BE - - F 0F 1F 61 6F D6 07 D6 07 - - 56 90 A4 BF - - ---------------------------------------------------- ※ '-'は %x'3F' DEC/IBMコード変換ライブラリ I-21 DEC/IBMコード変換ライブラリ tra_ibm_dec 図 I-4 IBM -> DEC 1バイトコード変換テーブル 0 1 2 3 4 5 6 7 8 9 A B C D E F -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 0 00 10 - - 20 26 2D - - BF - - 7B 7D 24 30 1 01 11 - - A1 AA 2F - B1 C0 7E - 41 4A - 31 2 02 12 - 16 A2 AB - - B2 C1 CD - 42 4B 53 32 3 03 13 - - A3 AC - - B3 C2 CE - 43 4C 54 33 4 - - - - A4 AD - - B4 C3 CF - 44 4D 55 34 5 09 - 0A - A5 AE - - B5 C4 D0 - 45 4E 56 35 6 - 08 17 - A6 AF - - B6 C5 D1 - 46 4F 57 36 7 7F - 1B 04 A7 - - - B7 C6 D2 - 47 50 58 37 8 - 18 - - A8 B0 - - B8 C7 D3 - 48 51 59 38 9 - 19 - - A9 - - 60 B9 C8 D4 - 49 52 5A 39 A - - - - 5B 5D 7C 3A BA C9 D5 DA - - - - B 0B - - - 2E - 2C 23 - - - DB - - - - C 0C 1C - 14 3C 2A 25 40 BB - D6 DC - - - - D 0D 1D 05 15 28 29 5F 27 BC CA D7 DD - - - - E 0E 1E 06 - 2B 3B 3E 3D BD CB D8 DE - - - - F 0F 1F 07 1A 21 5E 3F 22 BE CC D9 DF - - - FF ---------------------------------------------------- ※ '-'は %x'1A' I-22 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_ibm_dec I.1.4 プログラム例 DEC/IBMコード変換ライブラリの使用例 /* **++ ** ** Sample proram for DEC/IBM code-conversion library ** **-- */ #include #include "tra_def.h" #define TRUE 1 #define FALSE 0 #define BUF_SIZ 256 static unsigned char dec_string[] = "Dec 漢字コード JIS X0208-1983 準拠" ; main () { int status; long context; struct TRA_ITEM_LIST item[2]; struct TRA_MODE *tmode; char ibm_buf[BUF_SIZ], dec_buf[BUF_SIZ]; int ret_len ; /* Init Item list */ item[0].TRA_w_code = TRA_k_trans_mode; item[0].TRA_l_value = 0; item[1].TRA_w_code = TRA_k_end_of_list; /* Define translation mode */ DEC/IBMコード変換ライブラリ I-23 DEC/IBMコード変換ライブラリ tra_ibm_dec tmode = (struct TRA_MODE *)(&item[0].TRA_l_value); tmode->TRA_v_dec_first_mode = TRA_k_kanji_mode; tmode->TRA_v_dec_last_mode = TRA_k_kanji_mode; tmode->TRA_v_dec_shift = TRUE; tmode->TRA_v_ibm_first_mode = TRA_k_kana_mode; tmode->TRA_v_ibm_last_mode = TRA_k_kana_mode; tmode->TRA_v_ibm_shift = TRUE; /* INITialization */ status = tra_dec_ibm_init ( "", "", (&context), item ); printf( "INIT %x\n", status ); /* DEC -> IBM translation */ status = tra_dec_ibm ( dec_string, strlen(dec_string), ibm_buf, BUF_SIZ, &ret_len, &context, 0) ; printf( "DEC -> IBM %x (%d bytes)\n", status, ret_len ); ibm_buf[ret_len] = 0; /* IBM -> DEC translation */ status = tra_ibm_dec ( ibm_buf, (unsigned short)ret_len, dec_buf, BUF_SIZ, &ret_len, &context, 0) ; printf( "IBM - > DEC %x (%d bytes)\n", status, ret_len ); dec_buf[ret_len] = 0; /* Output Before & After */ printf( "前 : %s\n", dec_string ); printf( "後 : %s\n", dec_buf ); /* Release context */ status = tra_dec_ibm_free ( &context ); printf( "FREE %x\n", status ); } I-24 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_ibm_dec 1バイトコード変換テーブル(配列)の定義例 /* **++ ** ** DEC-->IBM ** 1-byte code-conversion table example ** **-- */ unsigned char asc_ebc_tbl[256] = { 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, 0x40, 0x4f, 0x7f, 0x7b, 0xe0, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, 0x79, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x58, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9d, 0x9e, 0x9f, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xac, 0xad, 0xae, 0xaf, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, DEC/IBMコード変換ライブラリ I-25 DEC/IBMコード変換ライブラリ tra_ibm_dec 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; I-26 DEC/IBMコード変換ライブラリ DEC/IBMコード変換ライブラリ tra_ibm_dec /* **++ ** ** IBM-->DEC ** 1-byte code-conversion table example ** **-- */ unsigned char ebc_asc_tbl[256] = { 0x00, 0x01, 0x02, 0x03, 0x1a, 0x09, 0x1a, 0x7f, 0x1a, 0x1a, 0x1a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1a, 0x08, 0x1a, 0x18, 0x19, 0x1a, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x0a, 0x17, 0x1b, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x05, 0x06, 0x07, 0x1a, 0x1a, 0x16, 0x1a, 0x1a, 0x1a, 0x1a, 0x04, 0x1a, 0x1a, 0x1a, 0x1a, 0x14, 0x15, 0x1a, 0x1a, 0x20, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x5b, 0x2e, 0x3c, 0x28, 0x2b, 0x21, 0x26, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0x1a, 0xb0, 0x1a, 0x5d, 0x1a, 0x2a, 0x29, 0x3b, 0x5e, 0x2d, 0x2f, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x7c, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, 0x1a, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0x1a, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0x1a, 0x1a, 0xca, 0xcb, 0xcc, 0x1a, 0x7e, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0x1a, 0xd6, 0xd7, 0xd8, 0xd9, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x24, 0x1a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, DEC/IBMコード変換ライブラリ I-27 DEC/IBMコード変換ライブラリ tra_ibm_dec 0x38, 0x39, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0xff }; I-28 DEC/IBMコード変換ライブラリ J _________________________________________________________________ DEC拡張漢字セット内のIBM付加文字 jsnaknjdefユーティリティでdefine/externalコマンドを発行した 際に IBM付加文字が,どのようにDEC拡張漢字セットに割り当てら れているかを以下に表で示します。 DEC拡張漢字セット 【第N区】 0 1 2 3 4 5 6 7 8 9 A B C D E F XX2 41B1 41B2 41B3 41B4 41B5 41B6 41B7 41B8 41B9 41BA 41F1 41F2 41F3 41F4 41F5 XX3 41F6 41F7 41F8 41F9 41FA 425F 426A 427D 427F 446D 446E 446F 4478 51BF 51DA 51F7 XX4 524B 527B 5294 529E 52EB 5386 5394 5397 53C7 5644 565D 5662 5665 5666 566A 566E XX5 5670 5671 5674 567B 5686 568A 5691 5694 5698 56A2 56A3 56A4 56A8 56B2 56B5 56C9 XX6 56CE 56DC 56E8 56EF 56F7 574F 5750 5756 5758 5761 5763 576B 577C 5780 5787 578B XX7 578E 57A9 57AE 57BD 57C0 57DE 5860 5863 586C 5870 5873 5877 5882 588A 588C 【第N+1区】 0 1 2 3 4 5 6 7 8 9 A B C D E F XX2 58A1 58AD 58B0 58B1 58B2 58BE 58C0 58EC 58FC 58FE 5942 5944 5951 5967 5968 XX3 5970 5978 597F 5980 5984 5987 5993 5995 5997 59C7 59CB 59D8 59E8 59F1 5A44 5A51 XX4 5A57 5A5F 5A65 5A67 5A68 5A76 5A79 5A7E 5A94 5AB5 5ADA 5AFB 5B50 5B53 5B54 5B7E XX5 5B97 5B98 5B99 5B9D 5BA0 5BA1 5BA4 5BA7 5BA8 5BAB 5BAE 5BAF 5BB4 5BB6 5BB8 5BBB XX6 5BC7 5BC8 5BC9 5BD8 5BE3 5BEC 5BF0 5BF3 5BF9 5C5F 5C66 5C6E 5C78 5C79 5C90 5C9A XX7 5C9B 5CA6 5CA9 5CAF 5CB9 5CBC 5CEA 5CF6 5CF9 5CFD 5CFE 5D4E 5D58 5D60 5D62 DEC拡張漢字セット内のIBM付加文字 J-1 DEC拡張漢字セット内のIBM付加文字 【第N+2区】 0 1 2 3 4 5 6 7 8 9 A B C D E F XX2 5D6B 5D72 5D74 5D7A 5D7F 5D80 5D8A 5D8E 5D93 5D95 5DA6 5DC1 5DCA 5DD5 5DD7 XX3 5DD8 5DE3 5DEA 5DED 5DF5 5DF6 5DFB 5DFC 5DFD 5E49 5E4B 5E5A 5E73 5E75 5E86 5E8A XX4 5E94 5E99 5E9E 5E9F 5EA1 5EA2 5EA7 5EA8 5EAA 5EAB 5EAD 5EAE 5EBC 5EBD 5EC0 5ED1 XX5 5EE7 5F69 5F70 5F71 5F72 5F73 5F7A 5F8E 5FAA 5FAE 5FB2 5FB3 5FB6 5FD1 5FD2 5FD5 XX6 5FD9 5FDC 5FDD 5FDF 604F 6058 6059 605A 6082 60AD 60C4 60C6 60D4 60DA 60E1 60FD XX7 6157 616E 6177 61F8 6248 625B 6267 6274 627E 628A 629E 62A1 62A8 62B9 62BB 【第N+3区】 0 1 2 3 4 5 6 7 8 9 A B C D E F XX2 62CE 62E2 635E 6390 63C5 63CB 63D4 63DF 63E1 63ED 63EE 63EF 6445 6450 647C XX3 647D 6485 648D 648E 64C9 6AF1 6549 6553 6564 6566 6567 656B 6583 6585 6586 658A XX4 658C 658D 658F 6590 6593 6595 659B 659E 659F 65A1 65A3 65A5 65A6 65A8 65AB 65AC XX5 65AD 65B4 65B5 65B6 65B7 65B8 65B9 65BC 65BD 65C1 65C3 65C5 65C6 65C8 65C9 65CC XX6 65CE 65D0 65D5 65D8 65DD 65E4 65E8 65F0 65F4 65F6 664A 6674 6678 6679 667F 6697 XX7 6699 669E 66A2 66A3 66A4 66A5 66CB 66CC 66DD 66DF 66E5 66E6 66F9 6759 676B 【第N+4区】 0 1 2 3 4 5 6 7 8 9 A B C D E F XX2 676C 678F 6791 6793 679B 679F 67B1 67E2 67E4 67F4 67FE 6856 XX3 XX4 XX5 XX6 XX7 J-2 DEC拡張漢字セット内のIBM付加文字 DEC拡張漢字セット内のIBM付加文字 ________________________ 注意 ________________________ 第N+5区には,該当するIBM付加文字は割り当てられません が,将来のための保留領域として扱われます。 ______________________________________________________ DEC拡張漢字セット内のIBM付加文字 J-3 _________________________________________________________________ 索引 _A_____________________________ _F_____________________________ AIDキー定義, B-17 FDB例(1), 2-25 AMNUトランザクション, 4-2 FDB例(2), 2-33 -fオプション _C_____________________________ jsnacodeユーティリティ, F-6 -cオプション 指定可能オプションの最大数, jsnacodeユーティリティ, F-4 F-6 _______________________________ _G_____________________________ DEC拡張漢字セット, J-1 GCID定数, B-4 DECコード列, I-6 DECユーザ定義領域, F-5 _H_____________________________ defineコマンド, G-5 helpコマンド, G-9 使用例, G-6 E _I_____________________________ _______________________________ IBMアクセス情報, 2-2 EBCDIC/DMCS変換テーブルの作成, IBMコード列, I-6 H-1 IBMパスワード, 3-4 exitコマンド, G-9 IBM付加文字, F-5, J-1 -eオプション IBMユーザ識別, 3-4 jsnacodeユーティリティ, F-4 IBMユーザ定義文字, F-5 -ipオプション jsnacodeユーティリティ, F-3 ISO-Latin文字セット, 4-4 Item Code, I-3 索引-1 Item List, I-2 IVP _K_____________________________ 例, 6-13 KMAPファイル, F-7, F-10 -iオプション 環境変数JSNACODE_KMAPFILE, jsnacodeユーティリティ, F-8, F-7 F-9 KMAPレコード数, F-7 -kオプション _J_____________________________ jsnacodeユーティリティ, F-7 jsna3270_acknowledge, 5-3 jsnaknjdefユーティリティ, jsna3270_free_buffer, 5-6 F-10 jsna3270_lock_screen, 5-9 jsna3270_read_field, 5-11 _L_____________________________ jsna3270_receive_screen, 5-14 listコマンド, G-3 jsna3270_receive_stream, 5-18 LMF, 6-4 jsna3270_request_connect, ライブラリとのリンク, 4-1 5-22, 5-25 LS2R, F-5, F-10 jsna3270_request_disconnect, LS3R, F-4, F-5, F-10 5-27 LU-LUタイプ2セッション jsna3270_return_io_port, 5-30 確立, 2-1 jsna3270_set_owner, 5-33 LUSTATを使用したフラグ, B-11 jsna3270_transmit_screen, LUタイプ2 5-36 通信, 2-7 jsna3270_transmit_sna_cmd, データ・ストリーム・モードで 5-40 の, 1-3 jsna3270_transmit_stream, LU名, 3-3 5-43 jsna3270_write_field, 5-46 _O_____________________________ jsna_get_msg, 5-56 -opオプション jsna_put_msg, 5-53 jsnacodeユーティリティ, F-3 jsnacodeユーティリティ, F-1 OSF/1システム 起動, F-1 rehashコマンド, 6-14 コマンド・ラインの最大長, outputオプション F-6 listコマンド, G-4 コマンドオプション, F-3 コマンド形式, F-1 jsnaknjdefコマンド形式, G-1 jsnaknjdefユーティリティ, G-1 索引-2 _P_____________________________ _U_____________________________ PLUアプリケーション名, 3-3 undefineコマンド, G-8 Product Authorization Key useコマンド, G-2 (PAK), 6-4 PUゲートウェイ識別, 3-3 _W_____________________________ Q write structured fieldの使用, _______________________________ 4-3 quitコマンド, G-10 Write副指令,書込み順序 表示可能文字との区別, B-15 _R_____________________________ rehashコマンド, 6-14 _X_____________________________ Replaceモード, I-7 -xオプション jsnacodeユーティリティ, F-5 _S_____________________________ session_id, 2-3, 5-2 _ア____________________________ setld アウト・オブ・バウンド要求の IVP例, 6-5 SNAコマンド, B-11 SIGNAL要求, 2-7 アウトバウンド/インバウンド構 SLU, 3-3 造化フィールド, B-7 sna3270_request_connect アウトバウンド構造化フィール アクティブまたはパッシブ接続 ド, B-5 要求, 2-2 アクセス情報,IBM, 3-3 sna_as2eb, 5-49 LU名, 3-3 sna_eb2as, 5-51 PLUアプリケーション名, 3-3 SNA概念, 1-4 PUゲートウェイ識別, 3-3 SS2, F-10 アクセス名, 3-4 省略可能なユーザ・データ, _T_____________________________ 3-4 tra_dec_ibm, I-15 パスワード, 3-4 tra_dec_ibm_free, I-13 ユーザ識別, 3-4 tra_dec_ibm_init, I-9 ログオン・モード名, 3-3 tra_ibm_dec, I-18 アクセス名, 3-4 -tオプション アクティブ接続要求, 2-2 jsnacodeユーティリティ, F-8 例, 2-3 値 索引-3 値 (続き) アプリケーション作成時に使用, _カ____________________________ B-1 外字管理ファイル, F-5 アテンション識別の値, A-1 外字の変換, I-8 アプリケーションのリンク, 4-1 拡張属性 値, B-3 _イ____________________________ タイプ, B-3, B-15 1バイトコード変換テーブル, マスク定数, 2-21 F-11 3270拡張データ・ストリーム, インストレーション, 6-22 2-5 IVPの実行, 6-13 画面イメージ setldプロシージャ, 6-5 送信, 2-40 システム・ディスクのバックア フィールドの書き込み, 2-40 ップ, 6-4 画面所有権, B-11 ファイルの配置, 6-14 カラー属性, 2-14 ライセンス登録, 6-4 カラー定数, B-3 インストレーション 環境変数JSNACODE_KMAPFILE, 必須ソフトウェア・サブセット, F-7 6-2 関数の戻り値, 3-2 インストレーション必要事項, ク 6-1 _______________________________ インバウンド構造化フィールド, 区画定数, B-12 B-8 グラフィック・アプリケーショ ン, 4-3 _エ____________________________ グラフィック・データ・ストリー エスケープ・シーケンス, F-7, ム・サポート, 1-2 F-10 ケ LS2R, F-5 _______________________________ LS3R, F-4, F-5 罫線属性構造, 2-15 エラーメッセージ ゲートウェイ・マネジメント・ソ jsnacodeユーティリティ, F-13 フトウェア, 6-3 jsnaknjdefユーティリティ, G-11 jsnatratblユーティリティ, H-7 索引-4 ステータス・コード (続き) _コ____________________________ 一般的なエラー・コード, D-1 国際化ツール・ライブラリとのリ 一般的な2次障害コード, D-2 ンク, 4-1 エラー・コード, C-3 コード変換ライブラリ, I-1 下位レベルのステータス・コー コード変換ライブラリの概要, ド, D-1 I-1 関数戻り値, 3-2 コード変換ライブラリの詳細, ゲートウェイから返される異常 I-2 終了理由, D-6 コールバック・ルーチン 重大エラー・コード, C-8, 構文, 3-5 D-10 使用方法, 3-4, 4-3 情報コード, C-2 ステータス・ベクタ, 3-2 サ 成功コード, C-1 _______________________________ ステータス・ベクタ, 3-2 サンプル・プログラム, 4-1 使用, 3-3 説明, 2-3 _シ____________________________ ストリーム・モード, 4-2 システム・ディスクのバックアッ プ, 6-4 _セ____________________________ シフト・コード, F-4, F-5, セッション F-6, F-8 アクティブ接続要求, 2-2 シフト・コード, I-6 確立, 2-1 重大エラー・コード, C-8 識別子, 2-3 出力パラメータ, 2-3 終了, 2-41 指令定義, B-12 接続, 2-2 シンボル パッシブ接続要求, 2-2 アプリケーション書き込み時に セッション送信状態, B-9 使用, B-1 接続関連定数, B-2 接続時間経過パラメータ, 2-2 _ス____________________________ 接続モード スクリーン・ディスクリプタ・ブ 指定方法, 2-5 ロック, 2-10 タイプ指示, 2-2 スクリーン・ディスクリプタ・ブ ロック, 2-17 ステータス・コード, 3-1, C-1 アプリケーション・チェック, 3-3 索引-5 データ・ストリーム・モード (続 _ソ____________________________ き) 属性ベクタ, 2-12 複数連続データ・ストリームの ソケット・ファイル記述子, 2-3 送信, 2-9 ソケット・ファイル・ディスクリ プタとsession_id, 5-2 _ト____________________________ ソフトウェア・サブセットの確 透過, 2-17 認, 6-2 タ _ニ____________________________ _______________________________ 日本語3270 DSPIプロダクト 端末特性ブロック(TCB), 2-11 AIDキー定義, B-17 GCID定数, B-4 _テ____________________________ IBMトランザクションへの接続, 定義テーブル, B-1 1-2 定義ファイル, B-2 LUSTATを使用したフラグ, B-11 データ構造 アウト・オブ・バウンド要求の 書込み制御文字, 2-19, E-6 SNAコマンド, B-11 拡張フィールド属性, E-2 アウトバウンド/インバウンド構 拡張フィールド属性, 2-13 造化フィールド, B-7 スクリーン・ディスクリプタ・ アウトバウンド構造化フィール ブロック, E-5 ド, B-5 フィールド, E-1 インターフェース・アプリケー フィールド属性, E-2 ション, 1-2 フィールド・ディスクリプタ, インバウンド構造化フィールド, E-6 B-8 フラグ定義, E-4 開発アプリケーション, 1-1 3270データ・ストリーム機能サポ 拡張属性タイプ, B-15 ート, 1-1 拡張属性タイプと値, B-3 データ・ストリーム・モード, 画面所有権, B-11 1-3, 2-5 カラー定数, B-3 3270拡張データ・ストリームの 区画定数, B-12 受け入れ, 2-9 グラフィック・ディスプレイ・ 3270拡張データ・ストリームの ステーションのサポート, 受信, 2-8 1-2 3270拡張データ・ストリームの グラフィック・データ・ストリ 送信, 2-7 ームのサポート, 1-2 索引-6 日本語3270 DSPIプロダクト (続 き) _フ____________________________ 照会/応答トランザクション, フィールド操作, B-12 1-2 フィールド・ディスクリプタ・ブ 指令定義, B-12 ロック シンボルと値, B-1 読み取り/検索操作, 2-23 セッション送信状態, B-9 フィールド・ディスクリプタ・ブ 接続関連定数, B-2 ロック, 2-11, 2-20 定義ファイル, B-2 操作選択フィールドのシンボル 3270データ・ストリームのサポ と意味, 2-23 ート, 1-1 フィールド/文字属性, B-4 データ・ストリーム・モード, フィールド・モード, 1-3, 2-10 1-3 拡張属性ベクタ, 2-12 データへのアクセス, 1-1 スクリーン・ディスクリプタ・ フィールド操作, B-12 ブロック, 2-10 フィールド/文字属性, B-4 スクリーン・ディスクリプタ・ フィールド・モード, 1-3 ブロック, 2-17 副指令定義, B-14 端末特性ブロック(TCB), ブラケット状態, B-10 2-11 分散データベースの更新, 1-2 ディスクリプタ・ブロック, 文字セット定数, B-4 2-11 呼び出しの一般形式, 5-2 フィールド検索, 2-20 リプライ・モード定数, B-3 文字ベクタ, 2-11 入力パラメータ, 2-2 副指令定義, B-14 ハ 複数セッション・プログラム例, _______________________________ 4-3 パッシブ接続要求, 2-2 複数連続データ・ストリームの送 例, 2-4 信, 2-9 半2重フリップフロップ通信, ブラウジング操作, 4-2 1-4 ブラケット状態, B-10 ブロッキング受信, 2-8 _ヒ____________________________ ブロッキングと非ブロッキングの 必須ソフトウェア・サブセット, 受信, 2-8 6-2 ブロックおよび非ブロック受信の 否定応答, 2-9 使用, 3-5 非ブロッキング受信, 2-8 ブロックまたは非ブロック・モー 非ブロック受信の使用, 3-5 ド, 2-3 索引-7 プログラミング例, 4-2 分散データベースの更新, 1-2 _モ____________________________ 文字セット属性, 2-15 _ヘ____________________________ 文字セット定数, B-4 ヘッダ・ファイルの読込み, 文字ベクタ, 2-11, 2-12 2-26 文字列モード 変換テーブル作成例, H-6 最終, I-5 変換テーブル修正マクロ, H-1 初期, I-5 コメント, H-4 マクロ, H-2 _ラ____________________________ 変換テーブルの作成, 4-4, H-4 ライセンス登録, 6-4 変換モード, I-4 コード変換の例, I-7 リ _______________________________ _ホ____________________________ リプライ・モード定数, B-3 ホスト・システムへのアクセス確 ロ 認, 6-3 _______________________________ ログオン・モード名, 3-3 索引-8 日本語DEC SNA 3270データ・ストリーム・プログラミング・インタフェ ース ユーザーズ・ガイド/インストレーション・ガイド _________________________________________________________________ 1995年1月 発行 日本ディジタル イクイップメント株式会社 〒167 東京都杉並区上荻1-2-1 電話 (03)5349-7111 (大代表) _________________________________________________________________ AA-QCZ5A-TE