s_370_ I_O

=S/370 I/O=

When the Hercules ARCHMODE config variable is set to s/370, the emulator will execute I/O operations in "s/370" mode.(as opposed to "390 I/O" mode, when the ARCHMODE is set to ESA/390 or ESAME).

In s/370 mode, I/o operations are initiated with the SIO or SIOF instructions.

On executing a SIO / SIOF instruction, the following events occur :

- The contents of the CAW at address 72 (x'48) are fetched, which is the address of the first CCW (channel command word) to be executed.

- The CCW contains the device command, data address, flags, and data count to be written / read from the device

- The CCW is sent to the channel associated with the I/O device that is specified as the operand of the SIO / SIOF instruction.

- Status information from the operation is stored in the CSW

E.g.

Starting an I/O write to device 009.

- The CAW contains address 2040, which is assumed to be the first CCW.

- Address 2040 contains a CCW which is composed of :

--- A cmd code of '09' (a write with carriage return) -- The flags field set to 00 - The address field set to x'2050'

00 00 05 ||<  ||<   ||
 * < 00000048 ||< 00002040 ||< 00000000 ||< 0000000 ||
 * < 0000200A ||< SIO ||< 9(0) ||<  ||
 * < 00002040 ||< 09 002050 00
 * < 00002040 ||< 09 002050 00
 * < 00002040 ||< 09 002050 00
 * < 00002050 ||<  ||<   ||<   ||