NCP TITLE 'DMSNCP (CMS) VM/370 - RELEASE 6' 00001000
ISEQ 73,80 VALIDATE INPUT FILE SEQUENCING @V200820 00002000
*. 00003000
* MODULE NAME - 00004000
* 00005000
* DMSNCP 00006000
* 00007000
* FUNCTION - 00008000
* 00009000
* TO READ A 3705 CONTROL PROGRAM MODULE (EMULATOR PROGRAM OR 00010000
* NETWORK CONTROL PROGRAM) IN OS LOAD MODULE FORMAT AND 00011000
* WRITE A PAGE-FORMAT CORE IMAGE COPY ON VM/370 SYSTEM VOLUME. 00012000
* 00013000
* ATTRIBUTES - 00014000
* 00015000
* SERIALLY RE-USABLE, EXECUTES IN CMS USER AREA. 00016000
* 00017000
* ENTRY CONDITIONS - 00018000
* 00019000
* R1 POINTS TO A STANDARD PARAMETER LIST. 00020000
* 00021000
* COMMAND FORMAT: SAVENCP FNAME < (OPTION... <)> > 00022000
* 00023000
* OPTIONS: 00024000
* 00025000
* ENTRY EEEEEEEE 00026000
* LIBE LLLLLLLL 00027000
* NAME NNNNNNNN 00028000
* CAMOD X 00029000
* 00030000
* EEEEEEEE DEFINES THE 370X CONTROL PROGRAM'S SYMBOLIC 00031000
* ENTRY POINT. THE DEFAULT VALUE IS 'CXFINIT'. 00032000
* 00033000
* LLLLLLLL DEFINES THE FILE NAME OF THE OS-FORMAT LOAD 00034000
* LIBRARY CONTAINING THE 370X CONTROL PROGRAM MODULE. 00035000
* THE FILE TYPE OF THIS LIBRARY MUST BE 'LOADLIB'. 00036000
* THE DEFAULT LIBRARY NAME IS FNAME. 00037000
* 00038000
* NNNNNNNN SPECIFIEDS THE CONTROL PROGRAM NAME TO BE USED 00039000
* WHEN THE DIAGNOSE PARAMETER LIST (CCPARM) IS BUILT. 00040000
* THIS NAME MUST AGREE WITH THE 'CPNAME' PARAMETER 00041000
* SPECIFIED FOR A NAMENCP MACRO CODED IN MODULE DMKSNT 00042000
* DURING VM/370 SYSTEM GENERATION. 00043000
* 00044000
* X SPECIFIES THE CHANNEL VECTOR TABLE TO BE USED. 00045000
* ACCEPTABLE VALUES FOR X ARE 0 OR 1. THESE VALUES 00046000
* CORRESPOND TO THE ADAPTER IDENTIFICATION WHICH WAS 00047000
* USED ON THE 'ADDRESS' PARAMETER OF THE 'LINE' 00048000
* MACRO IN THE STAGE I GEN FOR AN EP. OMISSION 00049000
* OF THE CAMOD OPTION CAUSES A SEARCH FOR THE TYPE1 00050000
* CHVT (CYACHVT). CAMOD 0 CAUSES A SEARCH FOR THE 00051000
* FIRST TYPE4 CHVT (CYECHVT1). CAMOD 1 CAUSES A 00052000
* SEARCH FOR THE SECOND TYPE4 CHVT (CYECHVT2). 00053000
* 00054000
* EXIT CONDITIONS - 00055000
* 00056000
* GPR 15 = 0 SUCCESSFUL COMPLETION 00057000
* GPR 15 > 0 ERRORS (SEE MESSAGE SECTION) 00058000
* 00059000
* CALLS TO OTHER ROUTINES - 00060000
* 00061000
* DMKSNC VIA DIAGNOSE. 00062000
* 00063000
* EXTERNAL REFERENCES - 00064000
* 00065000
* NONE 00066000
* 00067000
* TABLE/WORKAREAS - 00068000
* 00069000
* CCPARM - COMMUNICATIONS AREA USED WITH DIAGNOSE, CREATED 00070000
* IN GOTTEN STORAGE. 00071000
* 00072000
* NOTES - 00073000
* 00074000
* THIS MODULE REQUIRES FOR ASSEMBLY THE FOLLOWING MACRO 00075000
* LIBRARIES: CMSLIB DMKMAC OSMACRO NCPMAC01 NCPMAC02. 00076000
* THE LAST TWO NAMED ARE GENERATED BY THE INSTALLATION OF 00077000
* THE NCP/VS DISTRIBUTION TAPE. 00078000
* 00079000
* REGISTER USAGE - 00080000
* 00081000
* R0,R1 = WORK/PARAMETER REGISTERS. 00082000
* R2 = WORK REGISTER, POINTER TO INPUT RECORD. 00083000
* R3 = WORK REGISTER, LENGTH OF INPUT RECORD. 00084000
* R4,R5,R6 = WORK REGISTERS. 00085000
* R10 = ADDRESS OF INPUT FILE DCB DURING READ, 00086000
* THEN ADDRESS OF CONTROL PROGRAM CORE IMAGE. 00087000
* R11 = ADDRESS OF CCPARM PARAMETER LIST. 00088000
* R12 = BASE REGISTER. 00089000
* R13 = SAVE AREA ADDRESS. 00090000
* R14 = LINK REGISTER. 00091000
* R15 = WORK/LINK REGISTER. 00092000
* 00093000
* OPERATION - 00094000
* 00095000
* A GETMAIN IS ISSUED FOR MAXIMUM POSSIBLE CORE IMAGE 00096000
* BUFFER, BUT ANYTHING OVER THREE PAGES IS ACCEPTED. 00097000
* A BUFFER FOR INPUT LOAD MODULE RECORDS IS RESERVED AT 00098000
* THE BEGINING OF THIS AREA, THEN THE NEXT EVEN PAGE BOUNDARY 00099000
* IS COMPUTED - THIS IS THE ORIGIN OF THE 370X CONTROL 00100000
* PROGRAM CORE IMAGE WHICH WILL BE GENERATED. 00101000
* 00102000
* THE PARAMETER LIST IS THEN PROCESSED TO EXTRACT OPTION 00103000
* VALUES AND IDENTIFICATION OF INPUT FILE. IF ANY 00104000
* IRREGULARITIES IN THE COMMAND ARE FOUND, A MESSAGE 00105000
* IS TYPED AND PROGRAM EXITS WITH AN APPROPRIATE 00106000
* ERROR CODE. OTHERWISE, A FILEDEF WITH DDNAME 'DMSNCP1' 00107000
* IS ISSUED FOR THE INPUT DATASET. 00108000
* 00109000
* THE INPUT FILE IS THEN OPENED, AND A FIND PERFORMED FOR 00110000
* THE REQUIRED INPUT MEMBER. RECORDS ARE READ, 00111000
* CLASSIFIED ACCORDING TO TYPE (CESD, CONTROL OR TEXT) 00112000
* AND PROCESSED. CESD RECORDS ARE USED TO RESOLVE 00113000
* THE SYMBOLICALLY SPECIFIED ENTRY POINT 00114000
* AND CHANNEL VECTOR TABLE. CONTROL RECORDS 00115000
* GOVERN THE READING OF SUBSEQUENT TEXT RECORDS. TEXT 00116000
* RECORDS ARE MOVED FROM THE INPUT BUFFER INTO THE 00117000
* PROPER SPOT IN THE CORE IMAGE BEING CREATED. 00118000
* 00119000
* AFTER THE LAST TEXT RECORD IS READ, THE INPUT FILE 00120000
* IS CLOSED AND ANY REMAINING UNUSED 00121000
* PORTION OF THE GOTTEN CORE IMAGE BUFFER IS RELEASED. 00122000
* THE TYPE OF CONTROL PROGRAM CORE IMAGE IS DETERMINED, 00123000
* AND THE SIZE OF THE REQUIRED COMMUNICATIONS CONTROLLER 00124000
* PARAMETER LIST COMPUTED. THIS AMOUNT OF STORAGE (WITH 00125000
* SUFFICIENT ADDITIONAL BYTES TO ALLOW ALIGNMENT ON A PAGE 00126000
* BOUNDARY) IS GOTTEN. 00127000
* 00128000
* FINALLY, THE CCPARM LIST IS FILLED IN BY EXAMINING THE 00129000
* 370X CONTROL PROGRAM CORE IMAGE, AND, IF IT IS A NETWORK 00130000
* CONTROL PROGRAM, ATTRIBUTES REQUIRED FOR USE BY VM/370 00131000
* ARE VERIFIED. IF INCORRECT, A WARNING MESSAGE IS TYPED 00132000
* AND RETURN CODE ESTABLISHED, BUT PROCESSING CONTINUES. 00133000
* A DIAGNOSE IS ISSUED TO INVOKE DMKSNC FOR COPYING 00134000
* THE PARAMETER LIST AND CORE IMAGE ONTO A VM SYSTEM VOLUME 00135000
* IN PAGE FORMAT. 00136000
* 00137000
* FINALLY, EXIT PROCESSING FREES ANY GOTTEN STORAGE AREAS 00138000
* AND RETURNS TO CALLING PROGRAM. 00139000
* 00140000
* ERROR MESSAGES - 00141000
* 00142000
* DMSNCP001E NO FILENAME SPECIFIED 00143000
* RETURN CODE = 24 00144000
* 00145000
* DMSNCP003E INVALID OPTION - 'OPTION' 00146000
* RETURN CODE = 24 00147000
* 00148000
* DMSNCP002E FILE 'FNAME FTYPE FMODE' NOT FOUND 00149000
* RETURN CODE = 28 00150000
* 00151000
* DMSNCP013E MEMBER 'NAME' NOT FOUND IN LIBRARY 'FNAME FTYPE' 00152000
* RETURN CODE = 4 00153000
* 00154000
* DMSNCP021E ENTRY POINT 'SYMBOL' NOT FOUND 00155000
* RETURN CODE = 40 00156000
* 00157000
* DMSNCP025E INVALID DATA IN 370X CONTROL PROGRAM 00158000
* RETURN CODE = 16 00159000
* 00160000
* DMSNCP045E UNSUPPORTED 370X CONTROL PROGRAM TYPE 00161000
* RETURN CODE = 16 00162000
* 00163000
* DMSNCP056E FILE 'FNAME FTYPE' CONTAINS INVALID RECORD FORMATS 00164000
* RETURN CODE = 32 00165000
* 00166000
* DMSNCP109S VIRTUAL STORAGE CAPACITY EXCEEDED 00167000
* RETURN CODE = 104 00168000
* 00169000
* DMSNCP099W GENERATION PARAMETERS INCOMPATIBLE WITH VM/370 00170000
* RETURN CODE = 99 00171000
*. 00172000
EJECT 00173000
MACRO 00174000
DVT &CODE,&VALUE 00175000
.* DEFINE TRANSLATE TABLE ENTRY FOR ARGUMENT VALUE OF &CODE. 00176000
.* TABLE ENTRY WILL HAVE VALUE &VALUE. ANY TABLE ENTRIES NOT 00177000
.* EXPLICITLY DEFINED WILL HAVE VALUE ZERO. 00178000
.* 00179000
GBLC &OLDVAL 00180000
AIF ('&OLDVAL' NE '').NOT1 BRANCH IF NOT FIRST TIME. 00181000
&OLDVAL SETC '0' INITIALIZE GLOBAL VARIABLE. 00182000
AGO .ADMIN 00183000
.NOT1 ANOP 00184000
&OLDVAL SETC '&OLDVAL'.'-1' ADJUST FOR FILL LENGTH 00185000
.ADMIN ANOP 00186000
DC (&CODE-&OLDVAL)X'00',AL1(&VALUE) 00187000
&OLDVAL SETC '&CODE' 00188000
AIF ('&OLDVAL' NE '255').EXIT 00189000
&OLDVAL SETC '' RESET GLOBAL VARIABLE TO PERMIT 00190000
.* STARTING A NEW TABLE. 00191000
.EXIT ANOP 00192000
MEND 00193000
SPACE 2 00194000
MACRO 00195000
&DUM1 EQUR &DUM2 DUMMY MACRO FOR 370X DSECTS 00196000
MEND 00197000
EJECT 00198000
DMSNCP CSECT 00199000
ENTRY SAVENCP @V200820 00200000
USING NUCON,0 @V200820 00201000
SPACE 2 00202000
NOT EQU X'FF' FOR NI INSTRUCTION @VA08846 00202100
NCPLEVEL EQU X'F0' NCP LEVEL OF MODULE @VA08846 00202200
CCPPEPB EQU X'0B' PEP(NEW BASE) MODULE TYPE @VA08846 00202300
CCPDIAG EQU X'0050' DIAGNOSE CODE FOR WRITING 370X CORE 00203000
* IMAGE ON VM/370 SYSTEM VOLUME. 00204000
SAVENCP STM R14,R12,12(R13) STANDARD SAVE PROCEDURES. @V200820 00205000
LR R12,R15 @V200820 00206000
USING SAVENCP,R12 @V200820 00207000
LA R2,SAVE @V200820 00208000
ST R13,SAVE+4 HSA LINK. @V200820 00209000
ST R2,8(R13) LSA LINK. @V200820 00210000
LR R13,R2 @V200820 00211000
SPACE 00212000
MVI ENTRYADR,X'FF' SHOW ENTRY POINT NOT RESOLVE@V200820 00213000
MVI CHVTADR,X'FF' ...AND CHANNEL VECTOR TABLE @V200820 00214000
MVI LASTIND,0 INITIALIZE LAST TEXT RECORD FLAG@V200820 00215000
* PROCESS PARAMETER LIST. @V200820 00216000
LA R2,8(0,R1) R2 = PARAMETER ADDRESS. @V200820 00217000
* INITIALIZE DEFAULT VALUES. @V200820 00218000
MVC CPNAME,0(R2) @V200820 00219000
MVC LIBNAME,0(R2) @V200820 00220000
CLI 0(R2),X'FF' BRANCH IF REQUIRED PARAMETER @V200820 00221000
BE ERR1 IS NOT PRESENT @V200820 00222000
MVC FILENAME,0(R2) KEEP MEMBER NAME FOR FIND. @V200820 00223000
CLI 8(R2),X'FF' BRANCH IF END OF PARM LIST. @V200820 00224000
BE DOSTATE NO PARMS, BR. @V366838 00225000
CLI 8(R2),C'(' BRANCH IF OPTION LIST DOESN'T@V200820 00226000
BNE ERR3 START HERE. @V200820 00227000
LA R2,16(0,R2) MOVE POINTER TO FIRST OPTION.@V200820 00228000
SPACE 00229000
OPTLOOP CLI 0(R2),X'FF' BRANCH IF END OF PARM LIST. @V200820 00230000
BE ENDPARMS @V200820 00231000
LA R3,OPTABLE R3 = START OF OPTION TABLE @V200820 00232000
LA R4,12(0,0) R4 = LENGTH OF EACH TABLE ENTRY @V200820 00233000
LA R5,OPTABND R5 = LAST ENTRY IN THE TABLE @V200820 00234000
TESTOPT EQU * @V200820 00235000
CLC 0(8,R3),0(R2) IS THIS THE OPTION ? @V200820 00236000
BE FOUNDOPT YES -- @V200820 00237000
BXLE R3,R4,TESTOPT SCAN . . . @V200820 00238000
CLI 0(R2),C')' END OF PARMS? @V366838 00239000
BE ENDPARMS YES, GO PROCESS WHAT WE HAVE @V366838 00240000
B ERR3 NOPE, GARBAGE IN, GARBAGE OUT @V366838 00241000
SPACE 2 00242000
OPTABLE DS 0F OPTION TABLE FOR PARAMETER SCAN @V200820 00243000
DC C'LIBE ',A(LIBNAME) @V200820 00244000
DC C'NAME ',A(CPNAME) @V200820 00245000
DC C'CAMOD ',A(CAMOD) @V366838 00246000
OPTABND DC C'ENTRY ',A(ENTRYNAM) @V200820 00247000
OPTABLN EQU *-OPTABND @V200820 00248000
EJECT 00249000
FOUNDOPT L R6,8(0,R3) R6 = ADDRESS OF DATA FIELD. @V200820 00250000
CLI 8(R2),X'FF' BRANCH IF OPTION NOT SPECIFIE@V200820 00251000
BE ENDPARMS (USE DEFAULT VALUE.) @V200820 00252000
SPACE 00253000
MVC 0(8,R6),8(R2) MOVE OPTION VALUE. @V200820 00254000
LA R2,16(0,R2) INCREMENT FOR NEXT OPTION. @V200820 00255000
B OPTLOOP @V200820 00256000
SPACE 2 00257000
ENDPARMS EQU * END OF PARAMETER SCAN @V200820 00258000
CLI CAMOD,X'FF' WAS 'CAMOD' OPTION SPECIFIED? @V366838 00259000
BE DOSTATE NOPE, BR. @V366838 00260000
CLC CAMOD(4),=CL4'0' FIRST ADAPTER SPECIFIED? @V366838 00261000
BNE TRYONE NOPE, BR @V366838 00262000
MVC CHVTNAME(8),=C'CYECHVT1' 1ST ADAPTER CHVT NAME @V366838 00263000
B DOSTATE CONTINUE @V366838 00264000
TRYONE CLC CAMOD(4),=CL4'1' SECOND ADAPTER SPECIFIED? @V366838 00265000
BNE ERR3A NOPE, GARBAGE IN, GARBAGE OUT @V366838 00266000
MVC CHVTNAME(8),=C'CYECHVT2' 2ND ADAPTER CHVT NAME @V366838 00267000
SPACE 00268000
DOSTATE EQU * @V366838 00269000
LA R2,LIBNAME CHECK IF INPUT FILE EXISTS. @V200820 00270000
FSSTATE (R2),ERROR=ERR2 @V200820 00271000
MVC FILEMODE(2),FSTFMODE-FSTD(R1) MODE FOR MSGS @V200820 00272000
LA R1,FILEDEF ISSUE FILEDEF FOR INPUT FILE.@V200820 00273000
SVC X'CA' @V200820 00274000
DC AL4(*+4) @V200820 00275000
EJECT 00276000
* OPEN THE INPUT DATASET AND FIND THE SPECIFIED MEMBER. @V200820 00277000
OPEN (INDCB,(INPUT)) @V200820 00278000
FIND INDCB,FILENAME,D @V200820 00279000
LTR R15,R15 WAS THE MEMBER FOUND ? @V200820 00280000
BNZ ERR13 NO -- ERROR MESSAGE @V200820 00281000
SPACE 00282000
* READ RECORDS FROM LOAD MODULE FILE. @V200820 00283000
READ1 EQU * READ FROM THE LOADLIB FILE @V200820 00284000
LA R10,INDCB POINT TO THE INPUT DCB @V200820 00285000
USING IHADCB,R10 . . . @V200820 00286000
READ INDECB,SF,,READBUF,MF=E READ AN INPUT RECORD. @V200820 00287000
CHECK INDECB @V200820 00288000
L R1,INDECB+16 R1 = ADDRESS OF IOB. @V200820 00289000
LH R3,DCBBLKSI COMPUTE LENGHT OF BLOCK READ,@V200820 00290000
SH R3,14(0,R1) = BLOCK SIZE - CSW RESIDUAL C@V200820 00291000
SPACE 00292000
* DETERMINE TYPE OF LOAD MODULE RECORD AND PROCESS. 00293000
CLI READBUF,X'20' BRANCH IF CESD RECORD. @V200820 00294000
BE CESD @V200820 00295000
TM READBUF,X'F0' BRANCH IF INFREQUENT TYPE. @V200820 00296000
BNZ READ1 @V200820 00297000
TM READBUF,X'01' BRANCH IF CONTROL RECORD. @V200820 00298000
BO CONTROL @V200820 00299000
TM READBUF,X'0C' LAST RECORD IN THE FILE ? @V200820 00300000
BO CLOSE YES - ALL DONE HERE @V200820 00301000
B READ1 MUST BE RLD RECORD -- IGNORE @V200820 00302000
EJECT 00303000
CONTROL CLI ENTRYADR,X'00' BRANCH IF ENTRY NOT RESOLVED@V200820 00304000
BNE ERR21 NOPE - STOP NOW @V200820 00305000
TM READBUF,X'0C' BRANCH IF NOT LAST RECORD. @V200820 00306000
BZ NOTLAST @V200820 00307000
MVI LASTIND,1 SET LAST RECORD INDICATOR. @V200820 00308000
NOTLAST LH R3,READBUF+14 R3 = LENGTH OF TEXT RECORD @V200820 00309000
L R5,READBUF+8 R5 = LOAD ADDRESS OF FOLLOWIN@V200820 00310000
LA R5,0(0,R5) TEXT RECORD. @V200820 00311000
READ INDECB,SF,,READBUF,MF=E READ NEXT (TEXT) RECORD@V200820 00312000
CHECK INDECB @V200820 00313000
L R15,INDECB+16 R15 = ADDRESS OF IOB. @V200820 00314000
LH R1,DCBBLKSI COMPUTE SIZE OF BLOCK READ. @V200820 00315000
SH R1,14(0,R15) @V200820 00316000
SPACE 00317000
CR R3,R1 BRANCH IF CONTROL RECORD DISA@V200820 00318000
BNE ERR66 WITH TEXT RECORD REGARDING LE@V200820 00319000
* OF TEXT. @V200820 00320000
* R5 = 3705 LOAD ADDRESS CORRESPONDING 00321000
* TO TEXT POINTED TO BY R2. 00322000
L R4,LOADADR COMPUTE STARTING ADDRESS IN @V200820 00323000
AR R4,R5 STORAGE OF THIS TEXT RECORD. @V200820 00324000
LR R0,R4 TEST WHETHER THIS TEXT RECORD@V200820 00325000
AR R0,R3 EXCEEDS GOTTEN STORAGE. @V200820 00326000
CL R0,FREELOWE CHECK AGAINST CMS EXTEND LIMIT @V200820 00327000
BNL ERR109 BRANCH IF STORAGE EXHAUSTED. @V200820 00328000
CL R0,HIGHADR CHECK FOR THE HIGHEST LOAD SO FAR@V200820 00329000
BNH *+8 NO -- @V200820 00330000
ST R0,HIGHADR KEEP TRACK OF HIGHEST ADDRESS @V200820 00331000
LR R5,R3 R5 = LENGTH OF MOVE. @V200820 00332000
LA R2,READBUF R2 = START OF TEXT DATA @V200820 00333000
MVCL R4,R2 TEXT FROM INPUT BUFFER INTO @V200820 00334000
* PROPER SPOT IN CORE IMAGE BUF@V200820 00335000
CLI LASTIND,0 BRANCH IF LAST TEXT RECORD @V200820 00336000
BNE CLOSE LOADED. @V200820 00337000
B READ1 LOOP FOR NEXT INPUT RECORD. @V200820 00338000
EJECT 00339000
CESD EQU * @V200820 00340000
LH R3,READBUF+6 R3 = COUNT OF ESD DATA BYTES.@V200820 00341000
LA R2,READBUF+8 R2 = PTR TO CURRENT ESD ITEM.@V200820 00342000
SRL R3,4 R3 = NUMBER OF ESD DATA ITEMS@V200820 00343000
* (16 BYTES PER ITEM). @V200820 00344000
CESDL MVC CESDBUFF(16),0(R2) @V200820 00345000
CLC CESDBUFF(8),=CL8' ' IGNORE BLANK NAME @V200820 00346000
BE CESDNEXT @V200820 00347000
CLC CESDBUFF(8),=XL8'00' IGNORE NULL NAME @V200820 00348000
BE CESDNEXT @V200820 00349000
TM CESDBUFF+8,X'0C' IGNORE ALL TYPES BUT LABEL @V200820 00350000
BNZ CESDNEXT REFERENCE AND SECTION @V200820 00351000
TM CESDBUFF+8,X'03' DEFINITIONS. @V200820 00352000
BM CESDNEXT @V200820 00353000
SPACE 00354000
CESDENT CLC ENTRYNAM(8),CESDBUFF IS THIS ENTRY POINT ? @V200820 00355000
BNE CESDCHVT NO. @V200820 00356000
MVC ENTRYADR+1(3),CESDBUFF+9 SAVE ENTRY POINT ADDR.@V200820 00357000
MVI ENTRYADR,0 CLEAR HIGH-ORDER BYTE. @V200820 00358000
B CESDNEXT @V200820 00359000
SPACE 00360000
CESDCHVT CLC CHVTNAME(8),=C'CYACHVT ' IS CH VEC TAB=CA TYPE1 @V366838 00361000
BNE CESDCHV2 NOPE, BR. @V366838 00362000
CLC CESDBUFF(8),=C'CYECHVT1' EVIDENCE OF CA TYPE4? @V366838 00363000
BE ERR25 YES, THAT'S BAD NEWS. @V366838 00364000
CESDCHV2 CLC CHVTNAME(8),CESDBUFF FIND CHAN VECT TABLE? @V366838 00365000
BNE CESDNEXT NO -- @V200820 00366000
MVC CHVTADR+1(3),CESDBUFF+9 MOVE IN RESOLVED ADDR @V200820 00367000
MVI CHVTADR,0 CLEAR HIGH-ORDER BYTE @V200820 00368000
SPACE 00369000
CESDNEXT EQU * ADVANCE TO NEXT CESD ITEM @V200820 00370000
LA R2,16(0,R2) . . . @V200820 00371000
BCT R3,CESDL LOOP FOR ITEMS IN RECORD. @V200820 00372000
B READ1 THEN GO FOR NEXT INPUT RECORD@V200820 00373000
SPACE 00374000
CLOSE CLOSE (INDCB) CORE IMAGE HAS BEEN LOADED @V200820 00375000
DROP R10 @V200820 00376000
EJECT 00377000
L R11,PARMADR ADDRESS OF PARAMETER BLOCK @V200820 00378000
L R10,LOADADR START OF CONTROL PROGRAM IMAGE @V200820 00379000
USING COREIMG,R10 @V200820 00380000
USING CCPARM,R11 @V200820 00381000
XC CCPARM(CCPRESID-CCPARM),CCPARM CLEAR HEADER @V200820 00382000
SPACE 00383000
L R1,HIGHADR HIGHEST ADDRESS FROM THE LOAD @V200820 00384000
SR R1,R10 COMPUTE SIZE OF THE CORE IMAGE @V200820 00385000
BNP ERR66 INVALID FORMAT IF NO TEXT DATA @V200820 00386000
ST R1,CCPSIZE SET IN CCPARM FOR DMKSNC @V200820 00387000
ST R10,CCPADDR SET ORIGIN OF CONTROL PROGRAM @V200820 00388000
L R1,ENTRYADR ENTRY POINT ADDRESS @V200820 00389000
ST R1,CCPENTRY . . . @V200820 00390000
MVC CCPNAME(8),CPNAME NCPNAME TO CCPARM BLOCK @V200820 00391000
L R1,UTILSTSZ+CXTXDA 370X SYSGEN STORAGE SIZE @V200820 00392000
ST R1,CCPSTOR . . . @V200820 00393000
SPACE 00394000
IC R1,SYSFLG1+CXTXDB 370X CONTROL PROGRAM TYPE @V200820 00395000
STC R1,CCPTYPE . . . @V200820 00396000
NI CCPTYPE,NOT-NCPLEVEL MASK OUT NCP LEVEL @VA08846 00396500
CLI CCPTYPE,CCPTPEP PARTITIONED EMULATION PGM ? @V200820 00397000
BE SCANCEP YES -- SCAN THE CHVT FIRST @V200820 00398000
CLI CCPTYPE,CCPTNCP NETWORK CONTROL PROGRAM ? @V200820 00399000
BE SCANNCP YES -- SCAN RESOURCE TABLE @V200820 00400000
CLI CCPTYPE,CCPTEP 270X EMULATION PROGRAM ? @V200820 00401000
BE SCANCEP BRANCH IF YES @VA06393 00402000
LA R1,CCPTEP EP TYPE @VA08846 00403200
CLI CCPTYPE,CCPTEP4 EP NEW BASE @VA08846 00403400
BE GOODTYPE YES , OK @VA08846 00403600
LA R1,CCPTPEP PEP TYPE @VA08846 00403800
CLI CCPTYPE,CCPPEPB PEP NEW BASE @VA08846 00404000
BNE ERR45 NO, UNSUPPORTED @VA08846 00404200
GOODTYPE EQU * SET TYPE FOR DIAGNOSE @VA08846 00404400
STC R1,CCPTYPE SAVE MODULE TYPE @VA08846 00404600
SCANCEP EQU * EXTRACT INFORMATION FROM EMULATOR@V200820 00406000
CLI CHVTADR,X'00' CHANNEL VECTOR TABLE FOUND ? @V200820 00407000
BNE ERR25 NO -- INVALID PROGRAM IMAGE DATA @VA04472 00408000
MVI CCPCAONE,CCPTYPE1 EMULATOR REQUIRES TYPE 1 CA @V200820 00409000
L R9,CHVTADR ADDRESS OF CHANNEL VECTOR TABLE @V200820 00410000
ALR R9,R10 ADJUST FOR EMULATOR ORIGIN @V200820 00411000
SLR R1,R1 @V200820 00412000
IC R1,0(0,R9) LOWEST DEFINED LINE ADDRESS @V200820 00413000
SLR R3,R3 @V200820 00414000
IC R3,1(0,R9) HIGHEST DEFINED LINE ADDRESS @V200820 00415000
SR R3,R1 R3 = NUMBER OF LINES MINUS ONE @V200820 00416000
SLL R3,1(0) ONE HALFWORD PER LINE IN CHVT @V200820 00417000
LA R3,2(R3,R9) R3 = LAST VALID CHVT ENTRY @V200820 00418000
LA R2,2(0,0) CHVT ENTRY INCREMENT @V200820 00419000
LA R9,2(0,R9) FIRST ENTRY @V200820 00420000
LA R5,CCPRESID START OF CONTROL INFORMATION @V200820 00421000
USING CCPRESID,R5 @V200820 00422000
CEPCHVT EQU * SCAN THE CHANNEL VECTOR TABLE @V200820 00423000
TM 1(R9),X'01' DUMMY ENTRY IN THE CHVT ? @V200820 00424000
BZ CEPCHVR NO, REAL ENTRY, PROCESS ACORDN'LY@V366838 00425000
LH R4,0(R9) GET ADDR OF USCCB @V366838 00426000
N R4,=X'0000FFFF' LOAD LOGICAL HALF @V366838 00427000
ALR R4,R10 ADDR OF USCCB @V366838 00428000
TM 13-1(R4),X'01' MSLA SUBCHANNEL ADDRESS? @V366838 00429000
BZ CEPCHVS NOPE, DUMMY, BR. @V366838 00430000
CEPCHVR EQU * @V366838 00431000
MVI CCPRSTYP,NICLINE CALL IT A LINE @V200820 00432000
MVI CCPRSTAT,NICEPMD EP-MODE, NOT SWITCHABLE @V200820 00433000
STH R1,CCPRSTEP SAVE THE SUBCHANNEL ADDRESS @V200820 00434000
LA R5,4(0,R5) NEXT CONTROL INFORMATION SLOT @V200820 00435000
CEPCHVS EQU * @V200820 00436000
LA R1,1(0,R1) NEXT SUBCHANNEL ADDRESS @V200820 00437000
BXLE R9,R2,CEPCHVT SCAN THE ENTIRE TABLE @V200820 00438000
SLR R5,R11 COMPUTE SIZE OF THE CCPARM BLOCK @V200820 00439000
ST R5,CCPPSIZE . . . @V200820 00440000
CLI CCPTYPE,CCPTPEP PARTITIONED EMULATOR ? @V200820 00441000
BE SCANNCP YES - SCAN THE RESOURCE TABL@V200820 00442000
B SAVECCP SAVE THE PROGRAM IMAGE FOR CP @V200820 00443000
DROP R5 @V200820 00444000
EJECT 00445000
SCANNCP EQU * EXTRACT INFO FROM RESOURCE TABLE @V200820 00446000
L R9,SYSRVTAD+CXTXDA START OF RESOURCE VECTOR TAB@V200820 00447000
ALR R9,R10 CORRECT FOR NCP LOAD ADDRESS.@V200820 00448000
LH R5,0(0,R9) R5 = MAXIMUM RESOURCE I.D. @V200820 00449000
STH R5,CCPMAXID . . . @V200820 00450000
CH R5,=H'4086' DO WE HAVE ENOUGH STORAGE ? @V200820 00451000
BNL ERR25 NO -- THAT IS AN INVALID NUMBER @VA04472 00452000
SLL R5,2(0) FOUR BYTES PER ENTRY @V200820 00453000
LA R9,2(0,R9) POINT TO FIRST RVT ENTRY @V200820 00454000
ALR R5,R9 R5 = LAST RVT ENTRY @V200820 00455000
LA R4,4(0,0) R4 = INCREMENT FOR TABLE SCAN @V200820 00456000
CLI 0(R9),X'00' FIRST RESOURCE MUST BE THE 370X @V200820 00457000
BNE ERR25 NO -- INVALID CONTROL PROGRAM @VA04472 00458000
SLR R0,R0 CONVENIENT CONSTANT @V200820 00459000
LA R3,CCPRESID START OF RESOURCE INFO TABLE @V200820 00460000
CLI CCPTYPE,CCPTPEP PARTITIONED EMULATOR ? @V200820 00461000
BNE SCANRVT NO -- JUST AN NCP @V200820 00462000
L R3,CCPPSIZE PICK UP WHERE CHVT LEFT OFF @V200820 00463000
ALR R3,11 READJUST FOR CCPARM BASE @V200820 00464000
SPACE 00465000
USING CCPRESID,R3 @V200820 00466000
USING XXCXTRVT,R9 NCP RESOURCE VECTOR TABLE @V200820 00467000
SCANRVT EQU * SCAN THE RESOURCE VECTOR TABLE @V200820 00468000
MVC CCPRSTYP(1),RVTTYPE MOVE TYPE CODE TO CCPARM @V200820 00469000
* LEAVE ON ONLY THOSE BITS DEFINED FOR VM/370 @V200820 00470000
NI CCPRSTYP,NICLINE+NICTERM+NICLGRP @V200820 00471000
SPACE 00472000
CLI RVTTYPE,NICCTLR 370X ENTRY ? @V200820 00473000
BE SCANCTL YES -- @V200820 00474000
TM RVTTYPE,NICLGRP LINE GROUP RESOURCE ? @V200820 00475000
BZ SCANLIN NO -- CHECK FOR LINE ENTRY @V200820 00476000
SCANCTL EQU * @V200820 00477000
MVI CCPRSTAT,NICDISA NORMALLY NOT REFERENCED @V200820 00478000
STH R0,CCPRSTEP NO EMULATOR SUBCHANNEL ADDR @V200820 00479000
B SCANEXT @V200820 00480000
EJECT 00481000
SCANLIN EQU * @V200820 00482000
TM RVTTYPE,NICLINE IS THIS A T.P. LINE ? @V200820 00483000
BZ SCANDEV NO -- @V200820 00484000
L R8,RVTRP POINTER TO THE LINE CONTROL BLOCK@V200820 00485000
LA R8,0(R8,R10) CLEAR HIGH BYTE, ADJUST ORIGIN @V200820 00486000
USING XXCXTLCB,R8 @V200820 00487000
TM LCBTYPEC,LCBTSDLM SYNCH. DATA LINK CONTROL ? @V200820 00488000
BZ *+8 NO -- @V200820 00489000
OI CCPRSTYP,NICSDLC LINE CONTROL = SDLC @V200820 00490000
TM LCBTYPEC,LCBTBSCM BINARY SYNCH. CONTROL ? @V200820 00491000
BZ *+8 NO -- @V200820 00492000
OI CCPRSTYP,NICLBSC LINE CONTROL = BSC @V200820 00493000
TM LCBTYPEC,LCBTMPTM MULTI-POINT LINE ? @V200820 00494000
BZ *+8 NO -- @V200820 00495000
OI CCPRSTYP,NICMLTP ... @V200820 00496000
TM LCBTYPEC,LCBTSWM SWITCHED LINE ? @V200820 00497000
BZ *+8 NO -- @V200820 00498000
OI CCPRSTYP,NICSWCH ... @V200820 00499000
SPACE 00500000
TM LCBLSTAT,LCBSACTM IS THE LINE ACTIVE INITIALLY@V200820 00501000
BO *+8 YES - ACTIVATE NOT NECESSARY@V200820 00502000
MVI CCPRSTAT,NICDISA INITIALLY INACTIVE @V200820 00503000
SLR R1,R1 @V200820 00504000
IC R1,LCBPEPSC SUBCHANNEL ADDRESS IF PEP LINE @V200820 00505000
STH R1,CCPRSTEP . . . @V200820 00506000
ICM R8,B'0111',LCBACBP+1 POINTER TO THE ACB @V200820 00507000
ALR R8,R10 ADJUST FOR PROGRAM ORIGIN @V200820 00508000
USING XXCXTACB,R8 SWITCH TO ADAPTER CONTROL BLOCK @V200820 00509000
TM IOBPFLAG,IOBPSWM SWITCHABLE PEP LINE ? @V200820 00510000
BZ *+8 NO -- @V200820 00511000
OI CCPRSTAT,NICSWEP REMEMBER THAT. . . @V200820 00512000
LH R1,CCBBAR POINTER TO THE BAR VECTOR @V200820 00513000
CH R1,=X'800' WHAT MODE IS THE LINE IN NOW ? @V200820 00514000
BNL SCANEXT NCP MODE - O.K. AS IS @V200820 00515000
OI CCPRSTAT,NICEPMD+NICDISA START IN EP-MODE @V200820 00516000
B SCANEXT ALL DONE FOR A LINE @V200820 00517000
EJECT 00518000
SCANDEV EQU * CHECK FOR A DEVICE ENTRY @V200820 00519000
TM RVTTYPE,NICTERM TERMINAL ENTRY ? @V200820 00520000
BZ SCANEXT NO -- @V200820 00521000
ST R0,CCPRESID CLEAR THE ENTRY INITIALLY @V200820 00522000
L R8,RVTRP POINTER TO THE DEVICE BASE BLOCK @V200820 00523000
LA R8,0(R8,R10) CLEAR HIGH BYTE, ADJUST ORIGIN @V200820 00524000
USING XXCXTDVB,R8 . . . @V200820 00525000
SLR R1,R1 @V200820 00526000
IC R1,DVBTYPE DEVICE TYPE CODE @V200820 00527000
IC R1,DVBTABLE(R1) PICK UP TERMINAL TYPE CODE @V200820 00528000
STC R1,CCPRSTYP . . . @V200820 00529000
OI CCPRSTYP,NICTERM PUT THE TERMINAL FLAG BACK @V200820 00530000
TM DVBSTAT,DVBSACTM INITIALLY ACTIVE ? @V200820 00531000
BO SCANEXT YES - @V200820 00532000
OI CCPRSTAT,NICDISA INITIALLY INACTIVE @V200820 00533000
DROP R8 @V200820 00534000
SPACE 00535000
SCANEXT EQU * SCAN THROUGH THE ENTIRE RVT @V200820 00536000
LA R3,4(0,R3) NEXT SLOT IN CCPARM LIST @V200820 00537000
BXLE R9,R4,SCANRVT . . . @V200820 00538000
SLR R3,R11 COMPUTE SIZE OF THE PARM LIST @V200820 00539000
ST R3,CCPPSIZE . . . @V200820 00540000
SPACE 00541000
LH R8,CHSVCHB+CXTXDH CHANNEL CONTROL BLOCK @V200820 00542000
N R8,=X'0000FFFF' LOAD LOGICAL HALFWORD @V200820 00543000
ALR R8,R10 ADJUST FOR PROGRAM ORIGIN @V200820 00544000
L R6,CHBECBAD-XXCXTCHB(,R8) ECB FOR BUFFER LEASIN@V200820 00545000
LA R6,8(0,R6) IF TYPE 2 ADAPTER, THIS WILL BE @V200820 00546000
CLM R6,2+1,CHSVCHB+CXTXDH ...SAME AS CHAN BLOCK @V200820 00547000
BE SCANCA2 YES - MUST BE TYPE TWO CA @V200820 00548000
* B SCANCA1 NO -- ASSUME TYPE ONE CA @V200820 00549000
EJECT 00550000
SCANCA1 EQU * EXTRACT HOST VALUES FOR TYPE1 CA @V200820 00551000
USING XXCXTCOB,R8 @V200820 00552000
MVI CCPCAONE,CCPTYPE1 THIS IS A TYPE 1 ADAPTER @V200820 00553000
IC R1,COBHPAD HOST HEADER PAD @V200820 00554000
STC R1,CCPPAD0 . . . @V200820 00555000
IC R1,COBTPAD HOST TEXT PAD @V200820 00556000
STC R1,CCPPAD1 . . . @V200820 00557000
LH R1,COBFCCW NUMBER OF HOST READ CCW'S @V200820 00558000
STH R1,CCPHBFNO . . . @V200820 00559000
LH R1,COBFHAC SIZE OF EACH READ BUFFER @V200820 00560000
STH R1,CCPHBFSZ . . . @V200820 00561000
B CHEKVMV GO CHECK FOR VM/370 VALUES @V200820 00562000
DROP R8 @V200820 00563000
SPACE 00564000
SCANCA2 EQU * EXTRACT HOST VALUES FOR TYPE2 CA @V200820 00565000
USING XXCXTCHB,R8 @V200820 00566000
MVI CCPCAONE,CCPTYPE2 THIS IS A TYPE 2 ADAPTER @V200820 00567000
IC R1,CHBPAD1 HOST HEADER PAD @V200820 00568000
STC R1,CCPPAD0 . . . @V200820 00569000
IC R1,CHBPAD2 HOST TEXT PAD @V200820 00570000
STC R1,CCPPAD1 . . . @V200820 00571000
IC R1,CHBHBAL NUMBER OF HOST READ CCW'S @V200820 00572000
STC R1,CCPHBFNO+1 . . . @V200820 00573000
LH R1,CHBHBS SIZE OF EACH READ BUFFER @V200820 00574000
STH R1,CCPHBFSZ . . . @V200820 00575000
* B CHEKVMV GO CHECK FOR VM/370 VALUES @V200820 00576000
DROP R8,R10 @V200820 00577000
EJECT 00578000
* CHECK CERTAIN CCP GENERATION OPTIONS - HOST BUFFER SIZE, @V200820 00579000
* NUMBER OF BUFFERS, AND PAD SPECIFICATION - FOR COMPATIBILITY@V200820 00580000
* WITH VM/370 REQUIREMENTS. @V200820 00581000
SPACE 00582000
CHEKVMV EQU * CHECK NCP VALUES FOR VM/370 @V200820 00583000
CLI CCPPAD0,CCPVPAD0 BRANCH IF NOT USUAL. @V200820 00584000
BNE WARNING @V200820 00585000
CLI CCPPAD1,CCPVPAD1 @V200820 00586000
BNE WARNING @V200820 00587000
CLC CCPHBFSZ(2),=AL2(RDBUFLN) @V200820 00588000
BNE WARNING @V200820 00589000
CLC CCPHBFNO(2),=AL2(RDBUFNO) @V200820 00590000
BE SAVECCP O.K. -- SAVE THE IMAGE @V200820 00591000
WARNING EQU * @V200820 00592000
PRINT NOGEN @V200820 00593000
DMSERR TEXT='GENERATION PARAMETERS INCOMPATIBLE WITH VM/370', *00594000
NUM=99,LET=W @V200820 00595000
MVI INDWARN,1 SET WARNING INDICATOR. @V200820 00596000
SPACE 00597000
SAVECCP EQU * ISSUE DIAGNOSE TO SAVE CONTROL PROGM @V200820 00598000
DC X'83B2',S(CCPDIAG) INVOKE DMKSNC VIA DIAG @V200820 00599000
LTR R15,R2 CHECK RETURN CODE FROM DIAG. @V200820 00600000
BNZ EXIT IF NON-ZERO, RETURN @V200820 00601000
CLI INDWARN,0 BRANCH IF NO MSGS GENERATED. @V200820 00602000
BE EXIT @V200820 00603000
LA R15,099(0) RETURN CODE FOR WARNING MESSAGE @V200820 00604000
SPACE 00605000
EXIT EQU * RESTORE REGS, ERTURN TO CMS @V200820 00606000
L R13,SAVE+4 @V200820 00607000
L R14,12(0,R13) @V200820 00608000
LM R0,R12,20(R13) @V200820 00609000
BR R14 @V200820 00610000
EJECT 00611000
PRINT NOGEN @V200820 00612000
ERR25 DMSERR TEXT='INVALID DATA IN 370X CONTROL PROGRAM', @VA04472*00613000
NUM=25,LET=E @VA04472 00614000
LA R15,16 SET ERROR CODE. @V200820 00615000
B EXIT @V200820 00616000
SPACE 00617000
ERR45 DMSERR TEXT='UNSUPPORTED 370X CONTROL PROGRAM TYPE', @VA04472*00618000
NUM=45,LET=E @VA04472 00619000
LA R15,16 RETURN CODE = 16 @V200820 00620000
B EXIT @V200820 00621000
SPACE 00622000
ERR66 DMSERR TEXT='FILE ''....................'' CONTAINS INVALID RE*00623000
CORD FORMATS',NUM=56,LET=E,SUB=(CHAR8A,LIBNAME) @V200820 00624000
LA R15,32 @V200820 00625000
B EXIT @V200820 00626000
SPACE 00627000
ERR21 DMSERR TEXT='ENTRY POINT ''........'' NOT FOUND', @V200820*00628000
NUM=21,LET=E,SUB=(CHARA,ENTRYNAM) @V200820 00629000
LA R15,40 @V200820 00630000
B EXIT @V200820 00631000
SPACE 00632000
ERR13 DMSERR TEXT='MEMBER ''........'' NOT FOUND IN LIBRARY ''......*00633000
..............''',NUM=13,LET=E,RENT=NO, @V200820*00634000
SUB=(CHARA,FILENAME,CHAR8A,LIBNAME) @V200820 00635000
LA R15,4 @V200820 00636000
B EXIT @V200820 00637000
SPACE 00638000
ERR2 DMSERR LET=E,TEXT='FILE ''.................'' NOT FOUND', *00639000
NUM=2,SUB=(CHAR8A,(R2)) @V200820 00640000
LA R15,28 @V200820 00641000
B EXIT @V200820 00642000
SPACE 00643000
ERR109 DMSERR NUM=109,LET=S,TEXT='VIRTUAL STORAGE CAPACITY EXCEEDED' 00644000
LA R15,104 @V200820 00645000
B EXIT @V200820 00646000
SPACE 00647000
ERR3A LA R2,CAMODERR ADDRESS OF ERROR MSG DATA @V366838 00648000
ERR3 EQU * @V366838 00649000
DMSERR NUM=3,LET=E,TEXT='INVALID OPTION ''................''',*00650000
SUB=(CHARA,(R2)) @V200820 00651000
LA R15,24 SET ERROR CODE. @V200820 00652000
B EXIT @V200820 00653000
SPACE 00654000
ERR1 DMSERR NUM=1,LET=E,TEXT='NO FILENAME SPECIFIED' @V200820 00655000
LA R15,24 @V200820 00656000
B EXIT @V200820 00657000
EJECT 00658000
FILEDEF DS 0D FILEDEF PLIST FOR LOADLIB INPUT FILE 00659000
DC CL8'FILEDEF' @V200820 00660000
DC CL8'DMSNCP' @V200820 00661000
DC CL8'DISK' @V200820 00662000
LIBNAME DS CL8 @V200820 00663000
DC CL8'LOADLIB' @V200820 00664000
FILEMODE DC CL8'*' @V200820 00665000
DC 8X'FF' @V200820 00666000
SPACE 00667000
PARMADR DC A(PAGEBND) START OF CCPARM PARAMETER BLOCK @V200820 00668000
LOADADR DC A(PAGEBND+4*4096) START OF CCP CORE IMAGE @V200820 00669000
HIGHADR DC F'0' HIGHEST ADDRESS FOR IMAGE LOAD @V200820 00670000
CPNAME DS CL8 NCPNAME FOR CP DIAGNOSE @V200820 00671000
ENTRYNAM DC CL8'CXFINIT' ENTRY POINT EXTERNAL SYMBOL @V200820 00672000
ENTRYADR DS F ADDRESS OF ENTRY POINT (FROM CESD@V200820 00673000
CHVTNAME DC CL8'CYACHVT' CHANNEL VECTOR TABLE ESD SYMBOL @V200820 00674000
CHVTADR DS F CHANNEL VECTOR TABLE ADDR (CESD) @V200820 00675000
FILENAME DS CL8 MEMBER NAME OF INPUT MODULE. @V200820 00676000
CAMODERR DC CL8'CAMOD' FOR THE ERROR MESSAGE @V366838 00677000
CAMOD DC 8X'FF' CHANNEL VECTOR TABLE IDENT @V366838 00678000
SPACE 00679000
INDWARN DS X NON-ZERO IF WARNING MESSAGE @V200820 00680000
* HAS BEEN GENERATED. @V200820 00681000
LASTIND DS X @V200820 00682000
DS 0F @V200820 00683000
SPACE 00684000
PRINT GEN @V200820 00685000
READ INDECB,SF,INDCB,,'S',MF=L GENERATE A DECB. @V200820 00686000
SPACE 00687000
PRINT NOGEN @V200820 00688000
INDCB DCB BLKSIZE=260,RECFM=U,DSORG=PO, @V200820*00689000
EODAD=ERR66,MACRF=(R),DDNAME=DMSNCP @V200820 00690000
SPACE 00691000
SAVE DS 18F STANDARD OS-FORMAT SAVE AREA @V200820 00692000
CESDBUFF DS CL16 SCAN BUFFER FOR CESD RECORDS @V200820 00693000
READBUF DS CL260 INPUT BUFFER FOR LOAD MODULE FILE@V200820 00694000
SPACE 00695000
LTORG @V200820 00696000
EJECT 00697000
COPY CCPARM @V200820 00698000
EJECT 00699000
PRINT GEN @V200820 00700000
REGEQU @V200820 00701000
COPY XXCXTRVT NCP RESOURCE VECTOR TABLE @V200820 00702000
EJECT 00703000
COPY XXCXTLCB NCP LINE CONTROL BLOCK @V200820 00704000
EJECT 00705000
COPY XXCXTDVB NCP DEVICE BASE CONTROL BLOCK @V200820 00706000
EJECT 00707000
XXCXTCHB DSECT MACRO LEVEL 2.3 NOT SUPPORTED @VA07605 00708000
* 00709000
* TYPE 2 CHANNEL ADAPTER,RELEASE 1,FEB/73,J.L.ASHTON. 00710000
* 00711000
CHBCND DS 0H . CHANNEL CONDITION FLAGS 00712000
* 00713000
CHBSTATE DC X'00' . CHANNEL ADAPTER OUTBOUND STATE FIELD 00714000
* 00715000
* 0,ATTNF NEED TO PRESENT ATTENTION TO HOST * 00716000
* 1,DLAC ATTENTION DELAY ACTIVE 00717000
* 2, RESERVED 00718000
* 3,ATO ALLOW ATTENTION TIMEOUT * 00719000
* * 00720000
* 4,ATPR ATTENTION HAS BEEN PRESENTED * 00721000
* 5, RESERVED 00722000
* 6,COCA CHANNEL OUT CW CHAIN IS ACTIVE 00723000
* 7,COQA CHANNEL WORK QUE IS ACTIVE 00724000
* * 00725000
ATTNF DEFMSK 0 00726000
DLAC DEFMSK 1 00727000
ATO DEFMSK 3 00728000
ATPR DEFMSK 4 00729000
COCA DEFMSK 6 00730000
COQA DEFMSK 7 00731000
* 00732000
CHBTRIG DC X'00' . CHANNEL TRIGGER FIELD 00733000
* * 00734000
* 0,SMRNB SLOW DOWN MODE REJECT NEXT BLOCK 00735000
* 1,SMNBR SLOW DOWN MODE NEXT BLOCK REJECTED 00736000
* 2,SMDE SLOWDOWN MODE INDICATOR * 00737000
* 3,SIPF SWITCH IN PROGRESS FLAG(SCMS FROM LV5) 00738000
* * 00739000
* 4,TRMF TERMINATE FLAG (YOU ARE SEC RSP PENDN) 00740000
* 5,SRPF SECONDARY READ PENDING * 00741000
* 6, RESERVED 00742000
* 7,LMBO SWITCH READ PENDING (YOU ARE PRIMARY RSP) 00743000
* * 00744000
** THE CA SLOW DOWN MUST MATCH FOR TYPE1 AND TYPE2 FOR ROUTER USE. 00745000
SMRNB DEFMSK 0 00746000
SMNBR DEFMSK 1 00747000
SMDE DEFMSK 2 SLOWDOWN MODE INDICATOR 00748000
SIPF DEFMSK 3 00749000
TRMF DEFMSK 4 00750000
SRPF DEFMSK 5 00751000
SYSCWU DEFMSK 6 00752000
LMBO DEFMSK 7 00753000
* 00754000
DC X'00' . RESERVED 00755000
CHBCASEL DC X'00' . CA SELECT BYTE - INDICATES CURRENT CA 00756000
* 00757000
* X'08' IS TYPE 2 CA ONE 00758000
* X'00' IS TYPE 2 CA TWO 00759000
* 00760000
* 00761000
* TYPE 2 EXTERNAL REGISTER WORK AREA 00762000
* 00763000
CHBXR50 DC H'0' . SAVE AREA FOR EXTERNAL REG X'50' 00764000
CHBXR51 DC H'0' . SAVE AREA FOR EXTERNAL REG X'51' 00765000
CHBXR52 DC H'0' . SAVE AREA FOR EXTERNAL REG X'52' 00766000
CHBXR53 DC H'0' . SAVE AREA FOR EXTERNAL REG X'53' 00767000
CHBXR54 DC H'0' . SAVE AREA FOR EXTERNAL REG X'54' 00768000
CHBXR55 DC H'0' . SAVE AREA FOR EXTERNAL REG X'55' 00769000
CHBXR57 DC H'0' . SAVE AREA FOR EXTERNAL REG X'57' 00770000
CHBXR5C DC H'0' . SAVE AREA FOR EXTERNAL REG X'5C' 00771000
* 00772000
* INBOUND TRANSFER INFORMATION 00773000
* HOST WRITE/WRITE BREAK 00774000
* 00775000
CHBIM1SV DC F'0' . INPUT MGR LINK REG SAVE AREA (CXCACIM1) 00776000
CHBIM3SV DC F'0' . INPUT MGR LINK REG SAVE AREA (CXCACIM3) 00777000
CHBECBAD DC A(0) . ADDRESS OF ECB FOR LEASEING BUFFERS 00778000
CHBEQSV DC A(0) . ADR OF A COMPLETE BLOCK TO PASS TO SYS RTR 00779000
CHBEQSVN DC A(0) . ADR OF LAST BUF OF BLK TO ENQUE 00780000
CHBBSVS DC A(0) . ADR OF FIRST BUFFER ON BLOCK SAVE CHAIN 00781000
CHBBSVE DC A(0) . ADR OF LAST BUFFER ON BLOCK SAVE CHAIN 00782000
CHBICFB DC A(0) . ADR OF FIRST BUFFER ON IN CW CHAIN 00783000
CHBICPS DC AL2(0) . PTR TO INPUT CW CHAIN 00784000
CHBICFE DC AL2(0) . ADR OF FIRST CW ON INBOUND CW CHAIN 00785000
CHBICLE DC AL2(0) . ADR OF LAST CW ON INBOUND CW CHAIN 00786000
CHBLEXCW DC AL2(0) . ADDRESS OF LAST EXECUTED CW 00787000
CHBRNBS DC H'0' . NCP BUFFER SIZE (MAX NO. OF DATA BYTES* 4) 00788000
CHBLBCNT DC H'0' . DATA COUNT FOR LAST INBOUND BUFFER 00789000
CHBRCNT DC H'0' . ORGINAL DATA COUNT IN LAST EXECUTED CW 00790000
CHBRNBAL DC X'00' . NO. OF BUFS TO LEASE FOR INBOUND XFERS 00791000
CHBBLC DC X'00' . CURRENT BUFFER LEASE COUNT 00792000
* 00793000
* OUTBOUND TRANSFER INFORMATION 00794000
* HOST READ 00795000
* 00796000
CHBCOMSV DC A(0) . LINK REG SAVE AREA FOR CXCACOM 00797000
CHBHQBS DC A(0) . ADR OF LAST OUTBOUND BLOCK GIVEN CXCAOUT 00798000
CHBWQAD DC A(0) . ADDRESS OF THE CHANNEL WORK QCB 00799000
CHBHQAD DC A(0) . ADDRESS OF THE CHANNEL HOLD QCB 00800000
CHBOCFB DC A(0) . ADR OF FIRST BUF ON OUTPUT CW CHAIN 00801000
CHBOCPS DC AL2(0) . PTR TO OUTPUT CW CHAIN 00802000
CHBOCFE DC AL2(0) . ADR OF FIRST CW ON OUTPUT CHAIN 00803000
CHBOCLE DC AL2(0) . ADR OF LAST CW ON OUTPUT CHAIN 00804000
CHBWKA DC H'0' . SAVE AREA 00805000
CHBHBS DC H'0' . HOST BUFFER SIZE (NO. DATA BYRES) 00806000
CHBHBAL DC X'00' . NO. HOST BUFFERS ALLOCATED FOR READ LISTS 00807000
CHBOCR DC X'00' . NUMBER OF HOST BUFFERS REMAINING FOR COC USE 00808000
* 00809000
* HOST BUFFER PAD SUPPORT 00810000
* 00811000
CHBP1PT DC AL2(0) . POINTER TO START OF PAD0 00812000
CHBPAD1 DC X'00' . NUMBER OF BYTES IN PAD0 00813000
DC X'00' . RESERVED 00814000
CHBP2PT DC AL2(0) . POINTER TO START OF PAD1 00815000
CHBPAD2 DC X'00' . NUMBER OF BYTES IN PAD1 00816000
DC X'00' . RESERVED 00817000
* 00818000
* ATTENTION DELAY OPTION (ATD) 00819000
* 00820000
CHBDLAY DC H'0' . SYSGEN VALUE FOR ATTENTION DELAY IN TENTHS 00821000
* OF A SECOND. 00822000
* 00823000
* ATTENTION TIMEOUT (ATO) 00824000
* 00825000
CHBATTO DC H'0' . FIRST ATTENTION TIMEOUT INTERVAL 00826000
CHBATT2 DC H'0' . SECOND ATTENTION TIMEOUT INTERVAL 00827000
* 00828000
* THIS FLAG IS SET BY LEVEL 1 TO INDICATE THAT THE BACKUP 00829000
* CHANNEL ADAPTER IS NOT OPERATIVE.THIS BYTE MUST NOT BE 00830000
* SHARED FOR ANY OTHER PURPOSE. 00831000
* 00832000
CHBSSICF DC X'00' . CA SICK FLAG FOR LEVEL 1 ONLY 00833000
SSICF DEFMSK 0 00834000
* 00835000
* 00836000
DC X'00' . RESERVED 00837000
DC F'0' . RESERVED 00838000
CHBERPSV DC A(0) . ERROR REC PRO SAVE AREA 00839000
CHBSCBA DC A(0) . ADDRESS OF SECONDARY CA CONTROL BLK 00840000
* 00841000
* SECONDARY CHANNEL ADAPTER CONTROL BLOCK 00842000
* 00843000
CHBSCBD DSECT 00844000
DC F'0' . RESERVED 00845000
CHBSXR50 DC H'0' . EXTERNAL REG SAVE AREA 00846000
CHBSXR51 DC H'0' . EXTERNAL REG SAVE AREA 00847000
CHBSXR53 DC H'0' . EXTERNAL REG SAVE AREA 00848000
CHBSXR54 DC H'0' . EXTERNAL REG SAVE AREA 00849000
CHBSXR55 DC H'0' . EXTERNAL REG SAVE AREA 00850000
CHBSXR56 DC H'0' . EXTERNAL REG SAVE AREA 00851000
CHBSXR57 DC H'0' . EXTERNAL REG SAVE AREA 00852000
CHBSXR5C DC H'0' . EXTERNAL REG SAVE AREA 00853000
* 00854000
CHBSICV DC AL2(0) . SECONDARY INCWAR VALUE 00855000
CHBSOCV DC AL2(0) . SECONDARY OUTCWAR VALUE 00856000
* 00857000
CHBSSINA DC AL2(0) . ADR OF AN IN CW FOR READING SW CMDS 00858000
CHBYRPR DC AL2(0) . ADR OF OUT CW FOR YOU ARE PRI RESP BTU 00859000
CHBYRSR DC AL2(0) . ADR OF OUT CW FOR YOU ARE SEC RESP BTU 00860000
CHBSSATA DC AL2(0) . ADR OF CW FOR ATO ON PRIMARY BTU 00861000
* 00862000
CHBSBPT DC A(0) . SECOND CA BUFFER POINTER 00863000
* 00864000
DC F'0' . RESERVED 00865000
CHBSINCW DC F'0' . IN/ZCO FOR SWITCH COMMANDS 00866000
* 00867000
DC F'0' . RESERVED FOR PAD CW 00868000
CHBPRCW DC F'0' . OUT STOP/NO CHAINING FOR RESP1 00869000
* 00870000
DC F'0' . RESERVED FOR PAD CW 00871000
CHBSRCW DC F'0' . OUT STOP/NO CHAINING FOR RESP2 00872000
* 00873000
DC F'0' . RESERVED FOR PAD CW 00874000
CHBSARCW DC F'0' . OUT STOP/NO CHAINING FOR RESP4 00875000
* 00876000
CHBSRSP1 DC XL14'00' . YOU ARE PRIMARY BTU 00877000
CHBSRSP2 DC XL14'00' . YOU ARE SECONDARY BTU 00878000
DC XL14'00' . RESERVED 00879000
CHBSRSP4 DC XL14'00' . PRIMARY ATO BTU 00880000
* 00881000
DC F'0' . RESERVED 00882000
* 00883000
* CAIOS CW WORK AREA 00884000
* 00885000
* VARIBLE AREA FOR OUT CW'S 00886000
* DC C'COCW' . ID 00887000
CHBCOCWS DSECT 00888000
* DC X*F'0' . VARIBLE LEN 00889000
* 00890000
* VARIBLE AREA FOR IN CW'S 00891000
* DC C'CICW' . ID 00892000
CHBCICWS DSECT 00893000
* DC X*F'0' . VARIBLE LEN 00894000
* 00895000
** END OF CHANCB AREA 00896000
* 00897000
EJECT 00898000
XXCXTCOB DSECT MACRO LEVEL 2.3 NOT SUPPORTED @VA07605 00899000
* 00900000
* TYPE 1 CHANNEL ADAPTER,RELEASE 1,FEB/73,J.L.ASHTON. 00901000
* 00902000
COBCND DC H'0' . CHANNEL CONDITION FLAGS 00903000
* 00904000
* 0,NAT ATTENTION STATUS REQUIRED 00905000
* 1,DLAY ATTENTION DELAY ACTIVE 00906000
* 2,MSO MONITORING SUPPRESS OUT 00907000
* 3,IAT INHIBIT ATTENTION TIMEOUTS 00908000
* 00909000
* 4,ATPD ATTENTION HAS BEEN PRESENTED 00910000
* 5,NCEDE CHANNEL END/DEVICE END STATUS NEEDED 00911000
* 6,HQAC HOLD QUEUE ACTIVE FLAG 00912000
* 7,WQAC WORK QCB ACTIVE 00913000
SPACE 2 00914000
NAT DEFMSK 0 00915000
DLAY DEFMSK 1 00916000
MSO DEFMSK 2 00917000
IAT DEFMSK 3 00918000
ATPD DEFMSK 4 00919000
NCEDE DEFMSK 5 00920000
HQAC DEFMSK 6 00921000
WQAC DEFMSK 7 00922000
SPACE 2 00923000
* 8, RESERVED 00924000
* 9,BRJ BLOCK REJECTED FLAG 00925000
* 10,CSD CHANNEL SLOW DOWN MODE BIT 00926000
* 11,ABS ABORT SENT INDICATION 00927000
* 00928000
* 12, RESERVED 00929000
* 13, RESERVED 00930000
* 14, RESERVED 00931000
* 15, RESERVED 00932000
SPACE 2 00933000
** THE CA SLOW DOWN MUST MATCH FOR TYPE1 AND TYPE2 FOR ROUTER USE. 00934000
BRJ DEFMSK 1 00935000
CSD DEFMSK 2 00936000
ABS DEFMSK 3 00937000
* 00938000
COBICND DC H'0' . CONDITION FLAGS ON LAST ENTRY 00939000
* 00940000
* 00941000
* TYPE1 EXTERNAL REGISTER WORK AREA 00942000
* 00943000
COBXR77 DC H'0' . SAVE AREA FOR EXT REG X'77' 00944000
COBXR60 DC H'0' . SAVE AREA FOR EXTERNAL REG X'60' 00945000
COBXR61 DC H'0' . SAVE AREA FOR EXTERNAL REG X'61' 00946000
COBXR62I DC H'0' . SAVE AREA FOR INPUT FROM EXT REG X'62' 00947000
COBXR62O DC H'0' . SAVE AREA FOR OUTPUT TO EXT REG X'62' 00948000
COBXR63 DC H'0' . SAVE AREA FOR EXTERNAL REG X'63' 00949000
COBXR64 DC H'0' . SAVE AREA FOR EXTERNAL REG X'64' 00950000
COBXR65 DC H'0' . SAVE AREA FOR EXTERNAL REG X'65' 00951000
COBXR66 DC H'0' . SAVE AREA FOR EXTERNAL REG X'66' 00952000
COBXR67 DC H'0' . SAVE AREA FOR EXTERNAL REG X'67' 00953000
* 00954000
* REGISTER SAVE AND WORK AREAS 00955000
* 00956000
COBSENSE DC X'00' . SENSE BYTE TO XFER FOR SENSE COMMANDS 00957000
DC X'00' . RESERVED 00958000
COBCCMD DC H'0' . CURRENT CHANNEL COMMAND 00959000
COBERPSV DC A(0) . ERROR RECOVERY PROCEDURE SAVE AREA 00960000
COBRELSV DC A(0) . RELEASE SUBROUTINE SAVE AREA 00961000
* 00962000
* INBOUND WORK AREA 00963000
* 00964000
COBNINSV DC A(0) . SAVE FOR INBOUND BLK PROCESSOR 00965000
COBLESV DC A(0) . LEASE SUBROUTINE SAVE AREA 00966000
COBPIB DC A(0) . ADDRESS OF FIRST INBOUND BUFFER 00967000
COBIPBF DC A(0) . POINTER TO PREVIOUS IN BFR 00968000
COBCIB DC A(0) . PTR TO CURRENT BUFFER 00969000
COBCID DC A(0) . CURRENT DISPLACEMENT 00970000
COBCBLK DC A(0) . ADR OF LAST COMPLETE BLK GIVEN SYSRTR 00971000
COBIBCD DC H'0' . NUMBER OF DATA BYTES IN CURRENT BLK 00972000
COBMDO DC X'00' . MAX DATA COUNT FOR CURRENT IN BUFFER 00973000
DC X'00' . RESERVED 00974000
COBMLCNT DC X'00' . SYSGEN BUFFER LEASE COUNT FOR IN DATA 00975000
COBCLCNT DC X'00' . CURRENT BUFFER LEASE COUNT 00976000
COBECBAD DC AL2(0) . ADDRESS OF AN ECB FOR LEASEING BUFFERS 00977000
* 00978000
* OUTBOUND WORK AREA 00979000
* 00980000
COBWQAD DC AL2(0) . ADDRESS OF CHANNEL ADAPTER WORK QCB 00981000
COBHQAD DC AL2(0) . ADDRESS OF CHANNEL ADAPTER HOLD QCB 00982000
COBOXSV DC A(0) . SAVE AREA FOR OUTBOUND TRANSFER ROUTINE 00983000
COBROTSV DC A(0) . REFRESH OUTBOUND XFER SAVE AREA 00984000
COBOBLKA DC A(0) . OUTBOUND BLOCK ADDRESS 00985000
COBOBUFA DC A(0) . OUTBOUND BUFFER ADDRESS 00986000
COBODATA DC A(0) . OUTBOUND DATA ADDRESS 00987000
COBFCCW DC H'0' . NUMBER HOST CCW'S (FULL) 00988000
COBRCCW DC H'0' . NUMBER HOST CCW'S (RESIDUAL) 00989000
COBFHAC DC H'0' . HOST READ CCW BYTE COUNT (FULL SYSGEN) 00990000
COBRHAC DC H'0' . HOST READ CCW BYTE COUNT RESIDUAL OUT OP 00991000
COBRDCNT DC H'0' . OUTBOUND BUFFER RESIDUAL DATA COUNT 00992000
COBOXCNT DC H'0' . NUMBER OF BYTES TO XFER NEXT OUT DATA SERVICE 00993000
* 00994000
* ATTENTION TIMEOUT OPTION (ATO) 00995000
* 00996000
COBATTO DC H'0' . ATTENTION TIMEOUT DURATION 00997000
* 00998000
* 00999000
* HOST BUFFER PAD SUPPORT 01000000
* 01001000
COBHPTR DC AL2(0) . PTR TO DUMMY HDR BUFFER 01002000
DC F'0' . DUMMY HDR BUFFER 01003000
COBHPAD DC X'00' . HEADER PAD SIZE 01004000
DC X'00' . RESERVED 01005000
COBTPTR DC AL2(0) . PTR TO DUMMY TXT BUFFER 01006000
DC F'0' . DUMMY TXT BUFFER 01007000
COBTPAD DC X'00' . TEXT PAD SIZE 01008000
DC X'00' . RESERVED 01009000
* 01010000
* ATTENTION DELAY OPTION (ATD) 01011000
* 01012000
COBDELAY DC H'0' . ATTENTION DELAY INTERVAL 01013000
* 01014000
SPACE 2 01015000
* 01016000
COBEND EQU * 01017000
* END OF XXCXTCOB 01018000
EJECT 01019000
XCXTACB , LINE ADAPTER CONTROL BLOCK @V200820 01020000
EJECT 01021000
COREIMG DSECT , 370X CONTROL PROGRAM STORAGE DSEC@V200820 01022000
ORG COREIMG+X'680' START OF FIXED STORAGE AREAS @V200820 01023000
XCXTXDB BYTE-ADDRESSABLE FIXED STORAGE @V200820 01024000
XCXTXDH HALFWORD-ADDRESSABLE FIXED STORAG@V200820 01025000
XCXTXDA WORD-ADDRESSABLE FIXED STORAGE @V200820 01026000
EJECT 01027000
DCBD DSORG=(QS),DEVD=(DA) @V200820 01028000
EJECT 01029000
COPY NETWORK @V200820 01030000
EJECT 01031000
DMSNCP CSECT , RE-ENTER THE PROGRAM CSECT @V200820 01032000
SPACE 01033000
DVBTABLE EQU * TRANSLATE TABLE FOR NCP DEVIC@V200820 01034000
PRINT NOGEN BASE TYPE CODES. @V200820 01035000
DVT DVBTR05M,NICRCPU 3705 REMOTE @V200820 01036000
DVT DVBT980M,NICRCPU 2980 @V200820 01037000
DVT DVBT328M,NICGRAF 3275, 3277, 3284, 3286 @V200820 01038000
DVT DVBT050M,NICCIBM 1050 @V200820 01039000
DVT DVBT740M,NICCIBM 2740 MODEL 1 @V200820 01040000
DVT DVBT741M,NICCIBM 2741 @V200820 01041000
DVT DVBT402M,NICCIBM 2740 MODEL 2 @V200820 01042000
DVT DVBT15AM,NICTELE 115A @V200820 01043000
DVT DVBT3B3M,NICTELE 83B3 @V200820 01044000
DVT DVBTTWXM,NICTELE TWX @V200820 01045000
DVT DVBTWTYM,NICTELE WTTY @V200820 01046000
DVT DVBT130M,NICRCPU 1130 @V200820 01047000
DVT DVBT180M,NICRCPU 1800 @V200820 01048000
DVT DVBT701M,NICRCPU 2701 @V200820 01049000
DVT DVBT703M,NICRCPU 2703 @V200820 01050000
DVT DVBT715M,NICRCPU 2715 @V200820 01051000
DVT DVBT770M,NICRSPL 2770 @V200820 01052000
DVT DVBT780M,NICRSPL 2780 @V200820 01053000
DVT DVBT972M,NICRCPU 2972 @V200820 01054000
DVT DVBT7RNM,NICRCPU 3705 LOCAL @V200820 01055000
DVT DVBT020M,NICRCPU 2020 @V200820 01056000
DVT DVBT025M,NICRCPU 2025 @V200820 01057000
DVT DVBT327M,NICGRAF 3271, 3275 @V200820 01058000
DVT DVBT378M,NICRSPL 3780 @V200820 01059000
DVT DVBT735M,NICRCPU 3735 @V200820 01060000
DVT DVBT371M,NICRCPU 3741 @V200820 01061000
DVT DVBT377M,NICRCPU 3747 @V200820 01062000
DVT 255,0 @V200820 01063000
PRINT GEN @V200820 01064000
SPACE 2 01065000
ALIGN4K DS (DMSNCP+4096-*)C WILL CAUSE ERROR IF PROGRAM @V200820 01066000
* LARGER THAN 4096 BYTES @V200820 01067000
PAGEBND DS 0C PAGE BOUNDARY FOLLOWING SAVENCP @V200820 01068000
EJECT 01069000
FSTD @V200820 01070000
PRINT NOGEN @V200820 01071000
NUCON , CMS PREFIX STORAGE AREA @V200820 01072000
SPACE 2 01073000
END DMSNCP @V200820 01074000