*COPY VCTCA 00001000 PUSH PRINT 00001200 AIF ('&SYSPARM' NE 'SUP').VCT01 00001400 PRINT OFF,NOGEN 00001600 .VCT01 ANOP 00001800 CHXBLOK DSECT 00002000 SPACE 1 00003000 *** CHXBLOK/CHYBLOK - VIRTUAL CHANNEL-TO-CHANNEL ADAPTER 00004000 * 00005000 * 0 +-----------------------+-----------------------+ 00006000 * | CHXOTHR | CHYOTHR | 00007000 * 8 +-----+-----+-----+-----+-----+-----+-----+-----+ 00008000 * | X*1 | X*2 | X*3 | X*4 | Y*1 | Y*2 | Y*3 | Y*4 | 00009000 * 10 +-----+-----+-----+-----+-----+-----+-----+-----+ 00010000 * | CHXNCCW | CHYNCCW | 00011000 * 18 +-----------------------+-----------------------+ 00012000 * | CHXRCNT | CHYRCNT | 00013000 * 20 +-----------+-----------+-----------+-----------+ 00014000 * | CHXSTAT | CHXYADD | CHYSTAT | CHYXADD | 00015000 * 28 +-----------+-----------+-----------+-----------+ 00016000 * | CHXIDAW | CHYIDAW | 00017000 * 30 +-----------------------+-----------------------+ 00018000 * | CHXCNCT | CHYCNCT | 00019000 * 38 +-----------------------+-----------------------+ 00020000 * | CHXDATN | CHYDATN | 00021000 * 40 +-----------------------+-----------------------+ 00022000 * 00023000 *** CHXBLOK/CHYBLOK - VIRTUAL CHANNEL-TO-CHANNEL ADAPTER 00024000 SPACE 1 00025000 CHXBLOK DSECT , X-SIDE CHANNEL ADAPTER BLOCK 00026000 CHXOTHR DS 2F VMBLOK ADDRESS OF Y-SIDE ADAPTER USER 00027000 CHXFLAG DS 1X X*1 INTERNAL PROCESSING FLAGS 00028000 CHXCMDB DS 1X X*2 ACTIVE CCW COMMAND BYTE BUFFER 00029000 CHXCMDT DS 1X X*3 ACTIVE CCW COMMAND TYPE (RD, WR, ETC.) 00030000 CHXPKEY DS 1X X*4 VIRTUAL CAW PROTECTION KEY 00031000 DS 4X 00032000 CHXNCCW DS 2F NEXT CCW FETCH ADDRESS (REAL) 00033000 CHXRCNT DS 2F REMAINING CCW DATA COUNT 00034000 CHXSTAT DS 1H DEVICE STATUS ACCUMULATION FIELD 00035000 CHXYADD DS 1H VIRTUAL ADDRESS OF Y-SIDE ADAPTER 00036000 DS 2H 00037000 CHXIDAW DS 2F ACTIVE INDIRECT-DATA-LIST WORD 00038000 CHXCNCT DS 2F CPEXBLOK FOR CHANNEL RE-CONNECT 00039000 CHXDATN DS 2F IOBLOK ADDRESS FOR DEFERRED ATTENTION 00040000 SPACE 00041000 CHBSIZE EQU (*-CHXBLOK)/8 TOTAL BLOCK SIZE IN DBL-WDS 00042000 SPACE 00043000 CHYBLOK DSECT , Y-SIDE CHANNEL ADAPTER BLOCK 00044000 CHYOTHR DS 2F VMBLOK ADDRESS OF X-SIDE ADAPTER USER 00045000 CHYFLAG DS 1X Y*1 INTERNAL PROCESSING FLAGS 00046000 CHYCMDB DS 1X Y*2 ACTIVE CCW COMMAND BYTE BUFFER 00047000 CHYCMDT DS 1X Y*3 ACTIVE CCW COMMAND TYPE 00048000 CHYPKEY DS 1X Y*4 VIRTUAL CAW PROTECTION KEY 00049000 DS 4X 00050000 CHYNCCW DS 2F NEXT CCW FETCH ADDRESS 00051000 CHYRCNT DS 2F REMAINING CCW DATA COUNT 00052000 CHYSTAT DS 1H DEVICE STATUS ACCUMULATION FIELD 00053000 CHYXADD DS 1H VIRTUAL ADDRESS OF X-SIDE ADAPTER 00054000 DS 2H 00055000 CHYIDAW DS 2F ACTIVE INDIRECT-DATA-LIST WORD 00056000 CHYCNCT DS 2F CPEXBLOK FOR CHANNEL RE-CONNECT 00057000 CHYDATN DS 2F IOBLOK ADDRESS FOR DEFERRED ATTENTION 00058000 SPACE 2 00059000 * SPECIAL NOTE: 00060000 * AS INDICATED IN THE BLOCK 'PICTURE' ABOVE, THE 'CHXBLOK' 00061000 * AND 'CHYBLOK' ARE INTERLEAVED WITH A 4-BYTE DISPLACEMENT. 00062000 * THE X-SIDE VDEVBLOK POINTS TO THE +0 SLOT, THE Y-SIDE 00063000 * VDEVBLOK POINTS TO THE +4 SLOT. HOWEVER, ONCE THE VIRTUAL 00064000 * 'CONNECTION' IS MADE, EITHER SIDE CAN BE THE X-SIDE OR 00065000 * Y-SIDE, SINCE THIS INTERLEAVED ARRANGEMENT MAKES THE 00066000 * CONTROL BLOCK REFERENCES COMPLETELY SYMMETRICAL. THE DUAL 00067000 * DSECT DEFINITION ALLOWS THE ACTIVE ADAPTER (DEFINED TO BE 00068000 * THE X-SIDE, ARBITRARILY) TO REFERENCE BOTH ADAPTER SIDES 00069000 * CONCURRENTLY WITHOUT KNOWING WHICH IS AT +0 OR +4. 00070000 * 00071000 SPACE 00072000 * BITS DEFINED IN 'CHXFLAG' AND 'CHYFLAG': 00073000 CHBMNOP EQU X'80' MODIFIED 'NOP' ISSUED (ALSO IN CMDT) 00074000 CHBM370 EQU X'40' CTCA OPERATING IN S/370 MODE 00075000 CHBATTN EQU X'20' ATTENTION PENDING FROM Y-SIDE 00076000 CHBREST EQU X'10' CTCA HAS BEEN RESET - X-SIDE AND Y-SIDE 00077000 CHBEOFL EQU X'08' FORCE END-OF-FILE TO NEXT READ 00078000 CHBHIO EQU X'04' HALT I/O OR HALT DEVICE ISSUED 00079000 CHBWAIT EQU X'02' CPEXBLOK AVAILABLE FOR CHANNEL RECONNECT 00080000 CHBCENT EQU X'01' CHANNEL END HAS BEEN PRESENTED ON SIO 00081000 SPACE 00082000 * BITS DEFINED IN 'CHXCMDT' AND 'CHYCMDT': 00083000 CHBCNTL EQU X'40' CONTROL, OTHER THAN 'NOP' 00084000 CHBRDBK EQU X'20' READ BACKWARD 00085000 CHBWEOF EQU X'10' WRITE END OF FILE 00086000 CHBSCMD EQU X'08' SENSE COMMAND BYTE 00087000 CHBSADS EQU X'04' SENSE ADAPTER STATUS 00088000 CHBREAD EQU X'02' READ 00089000 CHBWRIT EQU X'01' WRITE 00090000 EJECT 00091000 POP PRINT 00092000 SPACE 00093000