Executing Your Own Channel Programs
This information describes the execute-channel-program (EXCP) and execute-channel-program-virtual-real (EXCPVR) macro instructions and is provided for compatibility with other IBM® operating systems. References to EXCP apply equally to EXCPVR unless otherwise stated. IBM recommends using an access method such as VSAM in place of EXCP or EXCPVR.
The EXCP and EXCPVR macro instructions allow you to control the data organization based on device characteristics. The exceptions to this capability are partitioned data sets extended (PDSEs), extended format data sets, spooled and dummy data sets, TSO terminals, and z/OS® UNIX files and file systems. They are not supported for user-written applications using EXCP. This information covers EXCP macro instruction application and function and includes descriptions of specific control blocks and macro instructions. Factors that affect the operation of EXCP, such as device variations and program modification, are also discussed.
- HLASM Programmer's GuideHLASM Programmer's GuideHLASM Programmer's Guide contains information about coding programs in the assembler language.
- z/Architecture Principles of Operation, SA22-7832, describes channel command words (CCWs) and channel programs.
- z/OS DFSMS Using Data Sets contains the standard procedures for I/O processing under the operating system.
- z/OS DFSMS Macro Instructions for Data Sets describes the system macro instructions that can be used in programs coded in the assembler language.
EXCP is primarily for I/O programming situations that cannot be dealt with using standard access methods. When writing your own access method, include EXCP for I/O operations. You must also use EXCP for processing nonstandard magnetic tape labels, including reading and writing labels and positioning volumes.
To issue EXCP, provide a channel program and control blocks in your program area. The I/O process then schedules I/O requests for the specified device, executes commands, handles interruptions, directs error recovery procedures, and posts the results of I/O requests.