ISPF パック・コンパイラー・リスト
ISPF には、PACK データ・セットを対象とする機能があります。このフォーマットでは ISPF は、反復文字を、文字の反復回数を示すシーケンスで置き換えます。この機能により、直接アクセス・ストレージ・デバイス (DASD) をさらに効率的に使用できます。コンパイラー・リストを開くと、Z Abend Investigator によって、リストが PACKed フォーマットであるかどうかが検出され、使用前にアンパックされます。
ISPF 環境でコンパイラー・リストをパックするには、EDIT セッション内からリストに対して PACK 基本コマンドを実行し、リストを保管します。
また、パック・コンパイラー・リストの作成は、追加ステップをコンパイル・ジョブに挿入することによって自動化できます。ジョブの例を以下に示します。この例では、REXX exec から ISPF LMCOPY コマンドを使用し、PACK オプションを指定してデータ・セット間でリストをコピーします。
//PACKLIST EXEC PGM=IKJEFT01
//SYSPROC DD DSN=rexx-exec-library,DISP=SHR
//ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
//ISPSLIB DD DISP=SHR,DSN=ISP.SISPSLIB
//ISPTLIB DD DISP=SHR,DSN=ISP.SISPTENU
//ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
//ISPLOG DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=1210)
//ISPLIST DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=1210)
//SYSTSPRT DD SYSOUT=*,DCB=(RECFM=FBA,LRECL=121,BLKSIZE=1210)
//SYSPRINT DD SYSOUT=*
//LMIN DD DISP=SHR,DSN=compile-step-listing-data-set
//LMOUT DD DISP=SHR,DSN=packed-listing-data-set
//ISPPROF DD SPACE=(TRK,(5,1,4)),UNIT=SYSALLDA,
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=6160)
//SYSTSIN DD *
ISPSTART CMD(LMCOPY member-name)
/*compile-step-listing-data-set と packed-listing-data-set の両方が PDS または PDSE データ・セットの名前です。メンバー指定はなく、member-name はコンパイラー・リストのメンバー名です (通常は、コンパイルされるプログラム名に一致します。コンパイラー・リストまたはサイド・ファイルの命名を参照してください)。LMCOPY REXX exec は、メンバー LMCOPY として rexx-exec-library データ・セットに存在する必要があります。以下に例を示します。
/* LMCOPY Rexx */
Address ISPEXEC
Arg member
'LMINIT DATAID(INDD) DDNAME(LMIN) ENQ(SHRW)'
'LMINIT DATAID(OUTDD) DDNAME(LMOUT) ENQ(SHRW)'
'LMCOPY FROMID('INDD') TODATAID('OUTDD')
FROMMEM('member') TOMEM('member') REPLACE PACK'
'LMFREE DATAID('INDD')'
'LMFREE DATAID('OUTDD')'ISPF PACK はコンパイラー・リストで使用される DASD スペースを節約しますが、コンパイラー・リストを LANGX サイド・ファイルに変換してリストを破棄すると、より多くのスペースを節約できます。HFZLANGX ユーティリティーを使用したサイド・ファイルの作成 を参照してください。
オリジナルのコンパイラー・リスト情報の大半を LANGX サイド・ファイルから再印刷できます。HFZLANGP ユーティリティーを使用したサイド・ファイルのフォーマットを参照してください。