# 外字テーブルの作成

外字テーブル生成用定義カードの作成を行い、外字テーブル登録プログラムを使用して、外字テーブルを作成します。

## プログラム名

XRECTBL

## 実行（EXECステートメント）パラメーター

    SOURCE=XXXXXXXX, OBJIN=XXXXXXXX, OBJOUT=XXXXXXXX

SOURCE

  ソースDD名

  アセンブルプログラムソースDD名を指定します。指定しない場合は、初期値の“SYSIN”となります。

OBJIN

  オブジェクトプログラム入力元DD名

  アセンブルプログラムのオブジェクトプログラム入力元DD名を指定します。指定しない場合は、初期値の“SYSLIN”となります。

OBJOUT

  オブジェクトプログラム出力先DD名

  アセンブルプログラムのオブジェクトプログラム出力先DD名を指定します。指定しない場合は、初期値の“SYSLIN”となります。

## XRSYSIN定義カード

定義カードの形式

    OPLSELECT=操作ログ出力選択 (*1)

*1 | : | 操作ログ出力機能を使用する場合は、操作ログ関連の設定が必要です。詳細は、以下を参照してください。 HULFT10 for zOS オペレーション マニュアル : 操作ログ制御

## XRCRD定義カード

各外字テーブルを作成するための定義カードの形式について説明します。

XRCRD定義カード内には複数の外字テーブルを定義できます。

【外字テーブル名の指定】

変換したい文字コードに合わせて、表3.13 の外字テーブル一覧から外字テーブル名を指定してください。

    外字テーブル名

表3.13 外字テーブル一覧

入力コード | 出力コード | 外字 テーブル名 | 未定義時の 初期値
--- | --- | --- | ---
IBM漢字 | Shift-JIS | ITSTBL | X'81A0'
IBM漢字 | EUC-JP | ITETBL | X'A2A2'
IBM漢字 | JEF | ITJTBL | X'A2A2'
IBM漢字 | UTF-8 | ITU8TBL | X'E296A1'
Shift-JIS | IBM漢字 | STITBL | X'44E9'
EUC-JP | IBM漢字 | ETITBL | X'44E9'
JEF | IBM漢字 | JTITBL | X'44E9'
UTF-8 | IBM漢字 | U8TITBL (*1) | X'44E9'

*1 | : | 外字テーブル名にU8TITBLを指定すると、外字テーブルU8TITBLと外字テーブルU8TITBL2が作成されます。

【デフォルトコードの指定】

外字テーブルに定義されていない外字を変換する場合に使用するデフォルトコードを指定します。

デフォルトコードを指定した場合、外字テーブルに定義されていない外字コードはデフォルトコードへ変換されます。

    [DEFAULT XXXX]

【変換内容の指定】

変換前コードおよび変換後コードは文字コードを4桁の16進数（X'xxxx'）で表して指定します。

    XXXX(変換前コード)  XXXX(変換後コード)

= 備考 =

- 変換前コードまたは変換後コードがEUC-JPの場合、6桁の16進コードも指定できます。

- 変換前コードがUTF-8の場合、4～8桁の16進コードを指定できます。

- 変換後コードがUTF-8の場合、2～8桁の16進コードを指定できます。

【定義終了文の指定】

1つの外字テーブルの定義を終了するときに以下を指定します。

    END

注意

- 外字テーブル名はテーブル内容の前に必ず定義してください。

- 1つの外字テーブルの定義は、「END」で区切ってください。

- 最大定義文字数は65535文字です。65536文字以上を定義した場合、動作は保証されません。

- 1つの外字テーブル内で定義されているコードが重複していた場合は、後から定義した内容が有効になります。

  ただし、入力コードまたは出力コードがEUC-JPの場合は、先に定義した内容が有効になります。

- []で囲まれている項目は省略できます。

- デフォルト指定は、外字テーブル名の次に指定してください。

- 外字テーブルは上書き更新します。登録する外字を追加したい場合は、すでに登録されている外字もXRCRD定義カードに指定してください。

- 変換前コードや変換後コードとして、以下のコードはサポートしておりません。

  X'FF'、X'FFFF'、X'FFFFFF'、X'FFFFFFFF'

- UTF-8からIBM漢字へ外字変換するテーブル（U8TITBL）を登録する場合、XRCRD定義カードにUTF-8のコード体系に存在しないコードを指定しないでください。

- 1つのXRCRD定義カード内に定義されている外字テーブルが重複していた場合、最後に定義した外字テーブルの内容が有効になります。

- EUC-JPからIBM漢字へ外字変換するテーブル（ETITBL）を登録する場合、XRCRD定義カードにEUC-JPのコード体系に存在しないコードを指定しないでください。

## JCL例

外字テーブルを作成するためのJCL例は以下のとおりです。

作成例として、IBM漢字からShift-JISへ変換するときに、「㈱」（IBM漢字:0x446D,Shift-JIS:0x878A）を変換するための外字テーブル作成方法を記述します。

    //XRECTBL  JOB  CLASS=A,MSGCLASS=B
    //XRECTBL  EXEC PGM=XRECTBL,REGION=1024K
    //STEPLIB  DD   DSN=HULFT.LOAD,DISP=SHR
    //XRSYSIN  DD   DSN=HULFT.PARMLIB(HULPRM),DISP=SHR
    //SYSLMOD  DD   DSN=HULFT.LOAD,DISP=SHR
    //SYSIN    DD   DSN=&&OBJECT,DISP=(,PASS,DELETE),UNIT=SYSDA,
    //             SPACE=(CYL,(010))
    //SYSLIB   DD   DSN=SYS1.MACLIB,DISP=SHR
    //SYSUT1   DD   UNIT=SYSDA,SPACE=(CYL,(10))
    //SYSUT2   DD   UNIT=SYSDA,SPACE=(CYL,(10))
    //SYSUT3   DD   UNIT=SYSDA,SPACE=(CYL,(10))
    //SYSLIN   DD   DSN=&&OBJECT2,DISP=(,PASS,DELETE),UNIT=SYSDA,
    //             SPACE=(CYL,(010))
    //SORTWK01 DD   UNIT=SYSDA,SPACE=(CYL,(10))
    //SYSOUT   DD   SYSOUT=*
    //SYSPRINT DD   SYSOUT=*
    //XRCRD    DD   *
    ITSTBL
    DEFAULT  81A0
    446D     878A
    END
    /*
    //

DD名 | 項目名 | 説明
--- | --- | ---
STEPLIB | HULFT.LOAD | HULFTロードモジュールライブラリー
XRSYSIN | HULFT.PARMLIB(HULPRM) | システム動作環境設定ファイル
SYSLMOD | HULFT.LOAD | HULFTロードモジュールライブラリー

パラメーター名 | 項目名 | 説明
--- | --- | ---
UNIT | SYSDA | UNIT

注意

外字テーブルを作成するとき、HULFTロードモジュールライブラリーがデータオーバーフローすると、正しく外字テーブルを作成できません。HULFTロードモジュールライブラリーの容量を確認してから、外字テーブル登録プログラム（XRECTBL）を実行してください。