Jump to content

Execute Direct Access Program

From Alfawiki
Execute Direct Access Program (XDAP)
IndustryComputer software
ProductsPseudo access method for block-level operations on direct access datasets

In IBM mainframe operating system environments, Execute Direct Access Program (XDAP) functions as a pseudo access method designed for block-level operations on direct access datasets. Comprehensive information about XDAP is available in the OS System Programmer's Guide.

Existing blocks

While XDAP facilitates reading and modifying existing data blocks, it does not support the creation or extension of datasets; these operations require genuine access methods. XDAP can operate alongside BSAM or BPAM, and several components within the OS utilize this mechanism.

DASD address computation

Developers are responsible for calculating the complete direct access block identifier, known as MBBCCHHR. The system uses algorithms to translate TTRNs into MBBCCHHR, with "track capacity tables" aiding in converting block numbers to TTRNs across various device types. Support for large-capacity devices in later OS releases is provided through the TRKADDR macro.

List and Execute Forms

XDAP provides both List and Execute forms: the List Form expands into data, whereas the Execute Form expands into executable instructions. Additionally, there is a conventional combined form that expands both elements inline. These forms are instrumental in creating re-entrant programs.

XDAP implicitly invokes EXCP

Internally, XDAP calls the EXCP supervisor routine, effectively embedding EXCP within its process. The IOB parameter required by EXCP is incorporated during XDAP’s macro expansion together with channel command words.

OPENing an XDAP dataset

To use XDAP, a DCB must be OPENed along with a complete direct access identifier. The DCB can be opened for input, output, or INOUT; however, output operations are limited to updating existing blocks since XDAP does not permit format writes. Format writes that add new blocks are managed by BSAM and BPAM.

IOBSPSVC flag for XDAP and SAM and PAM coexistence

The IOBSPSVC flag allows bypassing Sequential Access Methods appendages, enabling processing of datasets already OPENed under BSAM or BPAM when accessed via XDAP. Introduced with SVS and not backported to earlier OS versions, this flag prevents random supervisor storage overlays caused by pre-SVS SAM and PAM appendages interacting with certain XDAP channel programs, particularly those utilizing RPS. To maintain system stability on pre-SVS platforms, it was customary to restrict XDAP channel programs to non-RPS types.

References