EXCP (Execute Channel Program) Macro
The macro requests physical IOCS to start an input/output operation for a particular I/O device.
Physical IOCS determines the device from the CCB or IORB control block that is specified by blockname. Physical IOCS places the block in a queue and returns control to the problem program. Physical IOCS causes the channel program to be executed as soon as the channel and device are available. I/O interruptions are used to process I/O completion and to start I/O requests if the channel or device was busy at the time the EXCP was executed.
Format
Requirements for the caller
- AMODE:
- 24 or 31
- RMODE:
- 24 or ANY
- ASC Mode:
- Primary
Parameters
- ccbname | (1)
- Is the virtual address of the control block that is established
for the device. It can be given as a symbol or in register notation.
The address of the CCB or IORB must be a 24-bit address.
- REAL
- Indicates that the addresses in the CCWs and the address in the
control block pointing to the first CCW have already been translated
into real addresses. The operand causes the CCW translation routine
to be skipped. (For a program running in real mode, the operand is
ignored.) In your program, the EXCP macro with the REAL operand must be preceded by the PFIX macro that causes the system to:
- Page in those program pages that contain the associated control block, channel program, I/O areas, and IDA (indirect address) words (if used).
- Fix these pages in storage.
Note:
- With option REAL, if the I/O area being used crosses page boundaries, the data address in your CCWs must point to the required indirect data address words within your program. In addition, bit 37 (the IDA bit) of these CCWs must be set to 1. If REAL is not specified, the IDA bit must be set to 0.
- A channel program must start with:
- A long seek command in the case of a CKD disk.
- A define extent command in the case of an FBA disk.
The data chaining must be set to zero for these commands.