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