Now we create our second IPL card containing additional CCWs for reading the cards containing the executable program.  The first CCW contained on this card is branched to by the channel because of the TIC (Transfer In Command) CCW in the previous card.

CARD1    DS    0D
*
CCW3     DC    X’02’         * Read
         DC    AL3(1024)     * Storage Address For Data
         DC    X’60’         * SLI + CC
         DC    X’00’
         DC    AL2(80)       * Length
*
*
CCW4     DC    X’02’         * Read
         DC    AL3(1024+80)  * Storage Address For Data
         DC    X’60’         * SLI + CC
         DC    X’00’
         DC    AL2(80)       * Length
*
*
CCW5     DC    X’02’         * Read
         DC    AL3(1024+160) * Storage Address For Data
         DC    X’20’         * SLI
         DC    X’00’
         DC    AL2(80)       * Length
*
*

There are three CCWs used to read the next three cards.  The first card will be read into location 1024.  The second card will be read into location 1104 (1024+80) and the third to location 1184 (1024+160).  The final CCW does not have the Command Chain bit set.  This will cause the channel program to end after this read is completed.

When the CCWs on this card have executed we will have read 240 bytes of data into memory beginning at location 1024.  This is the same address we specified as the beginning execution address in our load PSW on the first card.

When the final IPL CCW has completed successfully, the CPU will complete the IPL process by loading the initial PSW and begin execution at the address specified.  This will cause our small program to begin executing.

[Next – 80-80 List Executable Code]