マップ・ソースコードの作成

本章では、マップ・ソースコードの作成に必要なIBMアセンブラー言語マクロのフォーマットについて説明します。

1. マップの作成ルール

マップ・ソースコードには、1つ以上のフィールド、マップ、マップ・セットを定義することができます。

フィールド < マップ < マップ・セットの階層構造になっています。各項目についての説明は以下のとおりです。

区分 説明

フィールド

フィールドは端末画面に表示される個別項目に対応し、属性と値で構成されます。マップ・ソースコードにデフォルト値を定義し、アプリケーションで新しい値を指定することができます。

マップ

マップは端末に表示される1つの画面に対応します。マップ全体に適用される属性以外に、マップに属しているフィールドに基本的に使用できるいくつかの属性を指定できます。個別フィールドの属性が存在する場合、フィールドの属性が優先します。

マップ・セット

マップの集合を意味する論理的な概念です。1つのマップ・セットには1つ以上のマップの定義が含まれている必要があります。マップ・セットに含まれているマップやフィールドのデフォルト属性を指定することができます。属性の優先順位は最も低いです。

マップ・ソースコードは、IBMアセンブラー言語マクロのフォーマットで作成されるため、IBMアセンブラー言語マクロの構文と制約に従います。IBMアセンブラー言語マクロの構文と制約以外に、マップ・ソースコードを作成時には以下のルールを守る必要があります。

  • 名前(フィールド名、マップ名、マップ・セット名)は最初の列から始まります。マップ名とマップ・セット名は最大7文字まで指定できます。フィールド名は7文字を超えることも可能ですが、マップを使用するアプリケーション・プログラムの言語がサポートする変数名の最大長を超えることはできません(COBOLの場合は29バイト)。

  • マップ・コマンドは10番目の列から始まります。

    マップ・コマンドの先頭には、次の3つのマクロ構文を記述します。

    マクロ 説明

    DFHMDF

    フィールドを宣言します。

    DFHMDI

    マップを宣言します。

    DFHMSD

    マップ・セットを宣言します。

  • 各マクロの後にはキーワードが位置します。マクロとキーワードは1つの空白で区切ります。マクロによって使用可能なキーワードの種類は、マクロ・キーワードを参照してください。

  • 複数のキーワードが使用される場合は、それぞれのキーワードをコンマ(,)で区切ります。キーワードの間には空白があってはなりません。

  • オプション値が受けられるキーワードは、キーワードとオプション値を等号(=)で結びます。オプション値に複数の属性を指定できる場合は、オプションの最初と最後を丸カッコ(())で囲み、それぞれのオプションはコンマ(,)で区切ります。オプションの間にも空白があってはなりません。

  • キーワードは71番目の列まで作成できます。71番目の列を超えて作成する場合は、行を分割することができます。行はキーワードを区切るコンマ(,)記号を基準に分割し、次の行に続くことを示すために72番目の列に空白以外の文字を入力する必要があります。次の行に続けて作成するときは、16番目の列から残りの部分を作成します。

  • フィールドの初期値を入力するキーワード(INITIAL、XINIT、GINIT)のオプションの途中で行を分割しなければならない場合は、前項のルールが適用されません。この場合は、71番目の列まで文字を入力した後、72番目の列に空白以外の文字を入力して行を分割することができます。次の行の16番目の列から残りの部分を続けて入力します。

  • 初期値を入力するときは、初期値の先頭と末尾を引用符(' ')で囲みます。初期値に引用符を使用する場合は、引用符を2つ使用します(1つはマップ・コンパイラーによって削除されます)。丸カッコ(())の場合も、マップ・コンパイラーが特殊な用途として認識するため、カッコを2つ入力する必要があります。

  • 1つの行を注釈にしたい場合は、1番目の列にアスタリスク(*)をつけると、2番目の列から71番目の列までをユーザー注釈として使用することができます。

  • 初期値を除くすべてのキーワードとオプション値には大文字のみ使用できます。

2. マクロ・キーワード

本節では、DFHMDF/DFHMDI/DFHMSDマクロに使用できるキーワードについて説明します。

2.1. DFHMDF

DFHMDFは、マップを構成するフィールドを定義するマクロです。DFHMDFマクロには、以下のようなキーワードを指定できます。

  • ATTRB

    • フィールド属性を指定するキーワードです。以下のオプションで指定できます。

    • 属性は、'(ASKIP,PROT,(UNPROT{,NUM}))'、'(BRT,NORM,DRK)'、'(DET,IC,FSET)'の3つのグループでグループごとに1つずつ指定できます。

      オプション 内容

      ASKIP

      フィールドにカーソルが位置できないようにします。カーソルを位置させると、次のフィールドに自動的に移ります。PROT属性、UNPROT属性と一緒に使用できません。

      PROT

      フィールドの値を変更不可にします。ASKIP属性、UNPROT属性と一緒に使用できません。

      UNPROT

      フィールドにカーソルが位置し、値が変更できます。ASKIP属性、PROT属性と一緒に使用できません。

      NUM

      フィールドに数字のみ指定できます。UNPROT属性が指定されている場合にのみ、NUM属性が指定できます。

      BRT

      フィールドを明るく表示します。DRK属性、NORM属性と一緒に使用できません。

      NORM

      フィールドを標準の明るさで表示します。省略可能。BRT属性、DRK属性と一緒に使用できません。

      DRK

      フィールドを画面に表示しません。BRT属性、NORM属性、DET属性と一緒に使用できません。

      DET

      フィールドをdetectable属性で指定します。DRK属性と一緒に使用できません。

      IC

      カーソルの位置を該当フィールドに指定します。ICが複数のフィールドに現れる場合、最後に定義されたフィールドのICが動作します。

      FSET

      フィールドの変更データ・タグ(MDT)のビットを指定します。

  • CASE

    • 端末のTYPETERMリソース定義に「KATAKANA=YES」を指定した場合、フィールドに英語の小文字を使用するかどうかを指定します。

    • フィールドに英語の小文字を使用する場合はMIXEDに指定し、カタカナを使用する場合は指定しません。

      KATAKANAキーワードはマップで使用されるキーワードではなく、CICSのリソースのうちTYPETERMリソースを定義する際に使用されるキーワードです。TYPETERMにKATAKANAという設定が存在する理由は、メインフレームで使用されるEBCDICコードで半角カタカナの領域と英小文字の領域が重複するためです。そのため、日本語の端末では英小文字がすべて半角カタカナに誤って表示され、英小文字のメッセージをユーザーが読めなくなる問題が発生します。SIT(System Initialization Table、CICSのコンフィグ・ファイルとして機能)に「MSGCASE=UPPER」という設定が存在するか、またはデータを出力する端末で使用するTYPETERMリソース定義に「KATAKANA=YES」設定が存在する場合は、英語の小文字を大文字に変更します。したがって、カタカナと英小文字を使用する場合は、「CASE=MIXED」に指定します。

  • COLOR

    • フィールドの文字色を指定します。

    • DEFAULT、またはBLUE、RED、PINK、GREEN、TURQUOISE、YELLOW、NEUTRALのうち1つを指定することができます。

    • COLORをCOLOR=で指定した場合は、DEFAULTと同様に処理されます。

    • COLORを指定しないと3270ストリームが作成される際、COLOR領域に値が埋められません。(0x00も埋められずに空の値になります。DEFAULTの設定とは異なります)

  • GINIT

    • フィールドのデフォルト値を指定します。

    • 文字列は引用符(' ')で囲みます。

    • 2バイト文字のみ入力可能であり、先頭と末尾にSO/SIを示す空白を入れる必要があります。グラフィック・データ型を使用する場合、(PS=X’F8’) PIC G型の変数が作成されます。INITIAL、XINITとは一緒に使用できません。

  • HILIGHT

    • フィールドの強調属性を指定します。

    • 以下のオプションから1つを指定することができます。

      オプション 内容

      OFF

      強調属性を使用しません。

      BLINK

      フィールドの点滅を指定します。

      REVERSE

      フィールドの色を反転します。

      (例: 黒の背景に緑色の文字の場合、緑色の背景に黒文字で表現されます。)

      UNDERLINE

      フィールドにアンダーラインを表示します。

  • INITIAL

    • フィールドのデフォルト値を指定します。

    • 文字列は引用符(' ')で囲みます。

    • GINIT、XINITと一緒に使用できません。

      INITIALキーワードでは1バイト文字と2バイト文字を混用することが可能であり、GINITキーワードでは2バイト文字のみ使用できます。GINITに1バイト文字を挿入すると、マップを変換する際にコードが誤って変換され、データが正しく出力されません。

  • JUSTIFY

    • フィールドに入力されたデータの位置合わせを行います。

    • 以下のオプションを指定することができます。

      オプション 内容

      LEFT

      フィールドを左寄せします。BLANKまたはZEROを一緒に指定しない場合、BLANKが適用されます。

      RIGHT

      フィールドを右寄せします。BLANKまたはZEROを一緒に指定しない場合、ZEROが適用されます。

      BLANK

      フィールドの余白に空白を挿入します。LEFTまたはRIGHTを一緒に指定しない場合、LEFTが適用されます。

      ZERO

      フィールドの余白にゼロを挿入します。LEFTまたはRIGHTを一緒に指定しない場合、RIGHTが適用されます。

      LEFTとRIGHT、そしてBLANKとZEROは一緒に使用できません。オプションのうち1つだけ使用された場合は、上の表で説明された対応するオプションが適用されます。JUSTIFYが省略された場合は、ATTRBのNUM属性が記述されたフィールドはRIGHTとZEROを、NUM属性が記述されていないフィールドはLEFTとBLANKを仮定します。

  • LENGTH

    • フィールド長を指定します。

    • 1~256の数字を入力できます。

    • PICIN、PICOUTが指定された場合は、LENGTHを指定しなくても構いません。

    • フィールド名が指定されていない場合は「0」に指定できます。

    • 該当フィールドの内容はシンボリック・マップを作成するときに含まれないため、プログラムからアクセスできません。

  • OUTLINE

    • フィールドの枠線を指定します。

    • LEFT、RIGHT、OVER、UNDERの4つの値から1つ以上を指定できます。

    • BOXを指定すると、LEFT、RIGHT、OVER、UNDERの4つの値をすべて指定した場合と同様に動作します。

  • PICIN

    • 該当のフィールドがアプリケーションに渡されるときに使用されるデータ型を定義します。

    • PICINとPICOUTの両方が定義され、LENGTHが定義されていない場合は、PICINに設定されたデータ型の長さとPICOUTに設定されたデータ型の長さが一致しないとエラーが発生します。

  • PICOUT

    • 該当のフィールドがアプリケーションから端末に送信されるときに使用されるデータ型を定義します。

  • POS

    • 端末でフィールドが表示される位置を指定します。

    • numberで指定するか、(line、column)の形式で指定することができます。numberで指定する場合は、ゼロから始まる相対アドレスに設定されます(80 x 24画面で3番目の行の第4列は、(80 x (3-1) + (4-1))=163になります)。

  • PS

    • プログラム式シンボルの使用可否を指定します。

    • 1バイトの文字、またはX’nn’の形式でプログラム式シンボルのIDを指定します。デフォルトのシンボル・セットを使用するには、「BASE」を指定します。

  • SOSI

    • フィールドに1バイト文字と2バイト文字が混在することを表示します。

  • TRANSP

    • フィールドの背景を透明にするか不透明にするかを指定します。

  • XINIT

    • フィールドのデフォルト値を16進数形式で指定します。

    • 引用符(' ')は使用しません。GINIT、INITIALと一緒に使用できません。

  • OCCURS

    • 指定された数のフィールドを生成します。生成されたフィールドは添え字を使用して同じ名前でアクセスできます。

2.2. DFHMDI

DFHMDIはマップを定義するマクロです。DFHMDIマクロには、以下のようなキーワードを指定できます。

  • COLOR

    • マップの基本色を指定します。DEFAULT、またはBLUE、RED、PINK、GREEN、TURQUOISE、YELLOW、NEUTRALのうち1つを指定することができます。

    • DFHMDFのCOLOR項目が設定されている場合、DFHMDFの設定が優先されます。

  • CTRL

    • マップの特性を指定します。

    • 以下のオプションから1つを指定できます。

      オプション 内容

      PRINT

      送信するマップ・データをプリントします。

      LENGTH

      プリンターに送信するとき、行の最大文字数を指定します。

      FREEKB

      マップを送信するとき、キーボードのロックを解除します。

      ALARM

      TN3270端末にアラームが設定されている場合、アラームを発生させます。

      FRSET

      マップを送信するとき、マップに属する全フィールドの変更データ・タグ(MDT)のビットをリセットします。

  • CURSLOC

    • 入力マップのカーソルが位置するフィールドのフラグ値に「X'02'」を指定します。

  • HEADER

    • SEND MAP ACCUMコマンドを使用して画面を構成する場合に、画面上部に固定させるマップであることを指定します。

  • HILIGHT

    • マップのデフォルトの強調属性を指定します。

    • DFHMDFのHILIGHT項目が設定されている場合、DFHMDFの設定が優先されます。

    • 以下のオプションから1つを指定できます。

      オプション 内容

      OFF

      強調を使用しません。

      BLINK

      フィールドが点滅するように指定します。

      REVERSE

      フィールドの色を反転します。

      (例: 黒の背景に緑色の文字の場合、緑色の背景に黒文字で表現されます。)

      UNDERLINE

      フィールドにアンダーラインを表示します。

  • OUTLINE

    • フィールドの枠線を指定します。

    • LEFT、RIGHT、OVER、UNDERの4つの値から1つ以上を指定できます。

    • BOXを指定すると、LEFT、RIGHT、OVER、UNDERの4つの値をすべて指定した場合と同様に動作します。

    • DFHMDFのOUTLINE項目が設定されている場合、優先順位は低いです。

  • PS

    • プログラム式シンボルの使用可否を指定します。

    • 1バイトの文字、またはX’nn’の形式でプログラム式シンボルのIDを指定します。デフォルトのシンボル・セットを使用するには、「BASE」を指定します。

    • DFHMDFのPS項目が設定されている場合、優先順位は低いです。

  • SOSI

    • フィールドに1バイト文字と2バイト文字が混在することを表示します。

    • DFHMDFのSOSI項目が設定されている場合、優先順位は低いです。

  • TRAILER

    • SEND MAP ACCUMコマンドを使用して画面を構成する場合に、画面下部に固定させるマップであることを指定します。

  • TRANSP

    • マップに属するすべてのフィールドの背景を透明にするか不透明にするかを指定します。

2.3. DFHMSD

DFHMSDは、マップ・セットを定義するマクロです。DFHMSDマクロには、以下のようなキーワードを指定できます。

  • COLOR

    • マップ・セットの基本色を指定します。DEFAULT、またはBLUE、RED、PINK、GREEN、TURQUOISE、YELLOW、NEUTRALのうち1つを指定することができます。

    • DFHMDI、DFHMDFのCOLOR項目が設定されている場合、優先順位は最も低いです。

  • CTRL

    • マップ・セットに属するすべてのマップの特性を指定します。

    • 以下のオプションから1つを指定できます。

      オプション 内容

      PRINT

      送信するマップ・データをプリントします。

      LENGTH

      プリンターに送信するとき、行の最大文字数を指定します。

      FREEKB

      マップを送信するとき、キーボードのロックを解除します。

      ALARM

      TN3270端末にアラームが設定されている場合、アラームを発生させます。

      FRSET

      マップを送信するとき、マップに属する全フィールドの変更データ・タグ(MDT)のビットをリセットします。

  • HILIGHT

    • マップ・セットのデフォルトの強調属性を指定します。

    • DFHMDI、DFHMDFのHILIGHT項目が設定されている場合、優先順位は最も低いです。

    • 以下のオプションから1つを指定できます。

      オプション 内容

      OFF

      強調を使用しません。

      BLINK

      フィールドが点滅するように指定します。

      REVERSE

      フィールドの色を反転します。

      (例: 黒の背景に緑色の文字の場合、緑色の背景に黒文字で表現されます。)

      UNDERLINE

      フィールドにアンダーラインを表示します。

  • LANG

    • 該当のマップ・セットを使用する言語を指定します。

    • COBOL、PL/Iのいずれかを指定することができます。COBOLを指定していない場合は、コンパイル時にシンボリック・マップを作成しません。

  • MODE

    • マップ・セットの入出力モードを指定します。IN、OUT、INOUTのいずれかを指定することができます。

  • OUTLINE

    • フィールドの枠線を指定します。

    • LEFT、RIGHT、OVER、UNDERの4つの値から1つ以上を指定できます。

    • BOXを設定すると、LEFT、RIGHT、OVER、UNDERの4つの値をすべて指定した場合と同様に動作します。

    • DFHMDI、DFHMDFのOUTLINE項目が設定されている場合、優先順位は最も低いです。

  • PS

    • プログラム式シンボルの使用可否を指定します。

    • 1バイトの文字、またはX’nn’形式でプログラム式シンボルのIDを指定します。デフォルトのシンボル・セットを使用するには、「BASE」を指定します。

    • DFHMDI、DFHMDFのPS項目が設定されている場合、優先順位は最も低いです。

  • SOSI

    • フィールドに1バイト文字と2バイト文字が混在することを表示します。

    • DFHMDI、DFHMDFのSOSI項目が設定されている場合、優先順位は最も低いです。

  • TRANSP

    • マップ・セットに属するすべてのフィールドの背景を透明にするか不透明にするかを指定します。

  • TYPE

    • 以下のオプションから1つを指定できます。

      オプション 内容

      MAP

      マップ・セット定義の開始を示します。

      DSECT

      マップ・セット定義の開始を示します。

      FINAL

      マップ・セット定義の終了を示します。FINALを指定した場合、他の追加属性は指定できません。

    • マップ・セットの開始を示すオプション(MAP、DSECT)は空白を許容し、現在はオプション値に関係なく同様に動作します。