*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