DFP31ビットモード・プロセッシング

MVSでは当初からQSAM、BSAM、BPAM等によるデータセットのアクセスは24ビットモード・プロセッシングが基本でした。LOWレベルなI/OメカニズムはCCWも含めMVS/XAの時点で既に31ビット化されていましたが、QSAMなどのアクセス方式レベルではMVSがESAになってDFPがDFSMSに統合された時から31ビットモード・プロセッシングが可能になりました。APIのパラメーター(1部を除く)やデータセットのI/Oバッファーが16MBラインの上へ配置できるようになったことはプログラムを作成する上でも恩恵が大きいです。しかしながら、従来の24ビットモード・インタフェースではMVSとMSPおよびVOS3にはほぼ完全な互換がありましたが、31ビットモード・インタフェースでは各社各様の仕様になっておりAPIの互換はありません。なお、MSPでは31ビットモード・インタフェースはサポートされていません。

DCBの大きさ(QSAM)

    MVS/DFP  96バイト(24ビットモードAPI)
    MSP/データ管理  96バイト(24ビットモードAPI)
    VOS3/データ管理  96バイト(24ビットモードAPI)
    XSP/データ管理 100バイト(24ビットモードAPI)
    MVS/DFSMS  96バイト(31ビットモードAPI)
    ※ただしDCB領域は16MBラインの下に置かねばならない
    VOS3/データ管理 104バイト(31ビットモードAPI)
    ※ただしDCB領域は16MBラインの下に置かねばならない

拡張DCB(DCBE)の大きさ(QSAM)

    MVS/DFSMS  56バイト(31ビットモードAPI)
    VOS3/データ管理 なし(不要)

QSAMバッファプールの解放

従来はCLOSEマクロの後でFREEPOOLが必要であったが、DCBEでQSAM I/Oバッファを31ビットにする場合はCLOSEルーチン内で自動的に解放されるため不要となった。(FREEPOOLマクロはエンハンスされず24ビットモードのバッファしか解放できないため:DFSMS/MVS Macro Instructions for Data Sets SC26-4913)

サンプルコード

MVS/DFSMS

VOS3

MSPでは従来通りのため、AMODE=31のプログラムではGET,PUT発行前にAMODEを24に変更しなければならない。EODADも24ビットのまま入ってくるので注意しなければならない。