NET TITLE 'DMKNET (CP) VM/370 - RELEASE 6' 00001000 ISEQ 73,80 VALIDATE SEQUENCING OF INPUT 00002000 COPY OPTIONS @V200820 00003000 COPY LOCAL OPTIONS @V306638 00004000 SPACE 2 00005000 *. 00006000 * MODULE NAME - 00007000 * 00008000 * DMKNET 00009000 * 00010000 * CONTENTS - 00011000 * 00012000 * DMKNETWK - PROCESS THE 'NETWORK' CONSOLE FUNCTION COMMAND 00013000 *. 00014000 SPACE 2 00015000 DMKNET START 0 @V200820 00016000 SPACE 00017000 USING PSA,0 @V200820 00018000 USING VMBLOK,R11 @V200820 00019000 USING SAVEAREA,R13 @V200820 00020000 SPACE 2 00021000 EXTRN DMKNLDR,DMKNLEMP @V407511 00022100 EXTRN DMKNESHD,DMKNESDS,DMKNESEP,DMKNESWN @VA13376 00023000 EXTRN DMKRNHND,DMKERMSG,DMKRGBEN,DMKNESPL @V305798 00024000 EXTRN DMKSCNFD,DMKCVTHB,DMKSCNRU,DMKCVTBH,DMKSCNRD @V200820 00025000 EXTRN DMKRIORN DEVICE TABLE FOR SYSTEM 370X'S @V200820 00026000 EXTRN DMKIOESR SYNCHRONOUS OBR PROCESSING @VA03757 00026100 SPACE 00027000 MODID DC CL8'DMKNET ' PAGEABLE MODULE IDENTIFIER @V200820 00028000 EJECT 00029000 *. 00030000 * SUBROUTINE NAME - 00031000 * 00032000 * DMKNETWK 00033000 * 00034000 * FUNCTION - 00035000 * 00036000 * TO PROVIDE OPERATOR CONTROL FUNCTIONS FOR THE USE OF THE 3704 00037000 * AND 3705 PROGRAMMABLE COMMUNICATIONS CONTROL UNITS AND THE 00038000 * 3270 REMOTE DISPLAY SYSTEM. 00039000 * 00040000 * ATTRIBUTES - 00041000 * 00042000 * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKCFM 00043000 * 00044000 * COMMAND FORMAT - 00045000 * 00046000 * +----------+-------------------------------------------------+ 00047000 * | | | 00048000 * | NETWORK | LOAD RADDR NCPNAME | 00049000 * | NET | DUMP RADDR < IMMED | AUTO | OFF > | 00050000 * | | ENABLE < ALL | RESOURCE < RESOURCE...>> | 00051000 * | | DISABLE < ALL | RESOURCE < RESOURCE...>> | 00052000 * | | QUERY < RESOURCE < RESOURCE ... >> | 00053000 * | | < ACTIVE | FREE | OFFLINE | ALL > | 00054000 * | | DISPLAY RADDR HEXLOC1 < :|- < HEXLOC2|END >> | 00055000 * | | VARY RESOURCE < ONLINE|OFFLINE|EP|NCP > | 00056000 * | | SHUTDOWN RADDR | ALL | 00059000 * | | POLLDLAY NNNN RADDR | ALL | 00060000 * | | | 00061000 * +----------+-------------------------------------------------+ 00062000 * 00063000 * ENTRY CONDITIONS - 00064000 * 00065000 * GPR 13 = ADDRESS OF A STANDARD SAVE AREA 00066000 * GPR 12 = ADDRESS OF DMKNETWK 00067000 * GPR 11 = VMBLOK ADDRESS 00068000 * GPR 9 = CONBUF ADDRESS (COMMAND BUFFER) 00069000 * 00070000 * EXIT CONDITIONS - 00071000 * 00072000 * GPRS 0-1, 3-13 RESTORED 00073000 * GPR 2 CONTAINS AN ERROR CODE (IF ANY ERROR) 00074000 * 00075000 EJECT 00076000 * CALLS TO OTHER ROUTINES - 00077000 * 00078000 * DMKNLDR - TO PERFORM THE NETWORK LOAD FUNCTION 00079000 * DMKNLDMP - TO PERFORM THE NETWORK DUMP FUNCTION 00080000 * DMKNESHD - TO PERFORM THE NETWORK SHUTDOWN FUNCTION 00081000 * DMKNESDS - TO PERFORM THE NETWORK DISPLAY FUNCTION 00083000 * DMKNESEP - TO PERFORM THE NETWORK VARY EP FUNCTION 00084000 * DMKNESWN - TO PERFORM THE NETWORK VARY NCP FUNCTION 00085000 * DMKNESPL - TO PERFORM THE NETWORK POLLDLAY FUNCTION 00086000 * DMKRGBEN - TO EXECUTE 3270 REMOTE CONTROL FUNCTIONS 00087000 * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00088000 * DMKQCNWT - TO TYPE RESPONSE MESSAGES FOR THE USER 00089000 * DMKFREE - TO ALLOCATE FREE STORAGE WORK AREAS 00090000 * DMKFRET - TO RELEASE FREE STORAGE WORK AREAS 00091000 * DMKRNHND - TO EXECUTE 370X NCP CONTROL COMMANDS 00092000 * DMKSCNFD - TO SCAN PARAMETERS FROM THE COMMAND LINE 00093000 * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00094000 * DMKSCNRD - TO DETERMINE A REAL DEVICE ADDRESS 00095000 * DMKCVTBH - TO CONVERT BINARY VALUES FOR OUTPUT 00096000 * DMKCVTHB - TO CONVERT HEXADECIMAL VALUES TO BINARY 00097000 * DMKQCNCL - TO CLEAR THE CONTASK STACK FOR A DEVICE 00098000 * DMKQCNTO - TO DISCONNECT AN ACTIVE VIRTUAL MACHINE 00099000 * 00100000 * EXTERNAL REFERENCES - 00101000 * 00102000 * DMKRIORN - TABLE OF 370X RDEVBLOK'S DEFINED IN DMKRIO 00104000 * 00105000 * TABLES / WORK AREAS - NONE 00106000 * 00107000 * REGISTER USAGE - 00108000 * 00109000 * GPR 14-15 ARE EXTERNAL LINK REGISTERS 00110000 * GPR 13 = SAVEAREA ADDRESSABILITY 00111000 * GPR 12 = MODULE BASE ADDRESSABILITY 00112000 * GPR 11 = VMBLOK ADDRESSABILITY 00113000 * GPR 10 = IOBLOK ADDRESSABILITY 00114000 * GPR 9 = CONBUF ADDRESSABILITY 00115000 * GPR 8 = RDEVBLOK ADDRESSABILITY 00116000 * GPR 7 = NICBLOK ADDRESSABILITY 00117000 * GPRS 0-6 ARE WORK REGISTERS 00118000 * 00119000 * NOTES - NONE 00120000 * 00121000 EJECT 00122000 * OPERATION - 00123000 * 00124000 * NETWORK DUMP - CALL DMKNLDMP 00125000 * NETWORK LOAD - CALL DMKNLDR 00126000 * NETWORK SHUTDOWN - CALL DMKNESHD 00127000 * NETWORK DISPLAY - CALL DMKNESDS 00129000 * NETWORK POLLDLAY - CALL DMKNESPL 00130000 * 00131000 * NETWORK QUERY - IF NO OPTION SPECIFIED, ASSUME 'ACTIVE' 00132000 * 1. FOR 'ACTIVE', SEARCH ALL 370X'S AND RESOURCES FOR 00133000 * TERMINAL RESOURCES WITH LOGGED-ON USERS, AND FORMAT 00134000 * THE OUTPUT LINES FOR LATER TYPING BY DMKCFM. 00135000 * 2. FOR 'FREE', SEARCH FOR TERMINAL RESOURCES WHICH ARE 00136000 * NEITHER ACTIVE NOR OFFLINE, AND FORMAT THE OUTPUT. 00137000 * 3. FOR 'OFFLINE', SEARCH FOR OFFLINE TERMINAL RESOURCES. 00138000 * 4. FOR 'ALL', DO STEPS 1, 2, AND 3, IN THAT ORDER. 00139000 * 5. FOR A SPECIFIC RESOURCE, FORMAT THE OUTPUT ACCORDING 00140000 * TO THE RESOURCE STATUS, INDICATING WHETHER THE RESOURCE 00141000 * IS A LINE OR A TERMINAL (DEV). 00142000 * 00143000 * NETWORK ENABLE - IF NO OPTION SPECIFIED, ASSUME 'ALL' 00144000 * 1. 'ENABLE ALL' - SCAN ALL 370X'S (VIA DMKRIORN TABLE) 00145000 * FOR TERMINAL RESOURCES WHICH ARE NOT ALREADY ENABLED 00146000 * AND ARE NOT CURRENTLY ACTIVE OR OFFLINE. 00147000 * 2. 'ENABLE XXXX' - VALIDATE THAT THE RESOURCE IS A 00148000 * TERMINAL, AND THAT IT IS NOT OFFLINE. 00149000 * 3. FOR EACH VALID TERMINAL RESOURCE - ACTIVATE THE LINE 00150000 * ASSOCIATED WITH THE TERMINAL (IF NECESSARY), AND START 00151000 * THE ENABLE SEQUENCE BY ISSUING A 'CONTACT' COMMAND. 00152000 * 00153000 * NETWORK DISABLE - IF NO OPTION SPECIFIED, ASSUME 'ALL' 00154000 * 1. 2. - SAME AS NETWORK ENABLE 00155000 * 3. FOR EACH VALID TERMINAL RESOURCE - TURN ON 'NICDISB' 00156000 * FLAG TO INDICATE DISABLE REQUEST. IF THERE IS NOT 00157000 * AN ACTIVE USER, RESET THE 'CONTACT' COMMAND VIA A 00158000 * 'RESET IMMEDIATE' - ISSUED VIA CALL DMKRNHND. 00159000 * 00160000 * NETWORK VARY - 00161000 * 1. 'EP' OPTION - CALL DMKNESEP 00162000 * 2. 'NCP' OPTION - CALL DMKNESWN 00163000 * 3. 'ONLINE' OPTION - FOR A LINE RESOURCE, ISSUE THE 00164000 * 'ACTIVATE LINE' COMMAND VIA CALL DMKRNHND. 00165000 * FOR A TERMINAL RESOURCE, MAKE SURE THE LINE IS 00166000 * ACTIVE, THEN VARY ONLINE BY RESETTING 'NICDISA'. 00167000 * 4. 'OFFLINE' OPTION - FOR A LINE RESOURCE, CHECK FOR 00168000 * ANY ACTIVE TERMINALS ON THE LINE. IF NONE, ISSUE 00169000 * THE 'DEACTIVATE LINE' COMMAND VIA CALL DMKRNHND. 00170000 * FOR A TERMINAL RESOURCE, TURN ON 'NICDISA'. 00171000 * 00172000 * 00174000 EJECT 00175000 * RESPONSES - 00176000 * 00177000 * FOR NETWORK ENABLE, DISABLE, VARY: 00178000 * COMMAND COMPLETE 00179000 * 00180000 * FOR NETWORK QUERY: 00184000 * LINE XXXX ACTIVE 00185000 * LINE XXXX OFFLINE 00186000 * LINE XXXX EP-MODE XXX 00187000 * DEV XXXX LOGON AS USERIDXX 00188000 * DEV XXXX ENABLED, DEV XXXX DISABLE, DEV XXXX OFFLINE, . . . 00189000 * 00190000 * RESOURCE(S) NOT FOUND 00191000 * ACTIVE RESOURCE(S) NOT FOUND 00192000 * FREE RESOURCE(S) NOT FOUND 00193000 * OFFLINE RESOURCE(S) NOT FOUND 00194000 * 00195000 * ERROR MESSAGES - 00196000 * 00197000 * DMKNET002E INVALID OPERAND - OPERAND 00198000 * DMKNET003E INVALID OPTION - OPTION 00199000 * DMKNET006E INVALID DEVICE TYPE - XXXX 00200000 * DMKNET026E OPERAND MISSING OR INVALID 00201000 * DMKNET040E DEV XXXX DOES NOT EXIST 00202000 * DMKNET046E DEV XXXX OFFLINE 00203000 * DMKNET046E CTLR RADDR OFFLINE 00204000 * DMKNET046E LINE RADDR OFFLINE 00205000 * DMKNET049E DEV XXXX IN USE 00206000 * DMKNET140E CTLR RADDR ATTACHED TO USERIDXX 00207000 *. 00208000 EJECT 00209000 DMKNETWK RELOC , PROCESS THE 'NETWORK' COMMAND @V200820 00210000 SLR R0,R0 @V200820 00211000 ST R0,SAVEWRK1 CLEAR A FLAG AREA @V200820 00212000 SPACE 2 00213000 CALL DMKSCNFD SCAN FOR THE FUNCTION PARAMETER @V200820 00214000 BNZ NET026E OPERAND MISSING OR INVALID @V200820 00215000 LR R2,R0 PARAMETER LENGTH @V200820 00216000 CL R2,F8 GREATER THAN THE MAXIMUM PARM ? @V200820 00217000 BH NET002E YES - INVALID OPERAND @V200820 00218000 BCTR R2,0 ...MINUS ONE FOR COMPARE @V200820 00219000 LA R3,PARMTBL PARAMETER SCAN TABLE @V200820 00220000 LA R4,PARMENT LENGTH OF ONE ENTRY @V200820 00221000 LA R5,PARMEND LAST ENTRY IN TABLE @V200820 00222000 SPACE 00223000 NETSRCH EQU * SCAN TABLE FOR FUNCTION PARM MATC@V200820 00224000 EX R2,CLCR1R3 "CLC 0(*-*,R1),0(R3)" @V200820 00225000 BNE NEXSRCH NO MATCH - SKIP TO NEXT ENTRY @V200820 00226000 CLM R2,1,9(R3) CHECK FOR MINIMUM ABBREVIATION @V200820 00227000 BL NEXSRCH NO MATCH - SKIP TO NEXT ENTRY @V200820 00228000 SLR R6,R6 @V200820 00229000 ICM R6,8,VMCLEVEL CHECK FOR ALLOWED COMMAND @V200820 00230000 N R6,8(0,R3) . . .IN CASE RESTRICTED @V200820 00231000 BZ NET002E INVALID OPERAND IF IT IS @V200820 00232000 LH R4,10(0,R3) PICK UP VECTOR DISPLACEMENT @V200820 00233000 B DMKNET(R4) GO TO FUNCTIONAL SUBROUTINE @V200820 00234000 NEXSRCH EQU * SKIP TO NEXT TABLE ENTRY @V200820 00235000 BXLE R3,R4,NETSRCH ... @V200820 00236000 B NET002E INVALID OPERAND @V200820 00237000 SPACE 2 00238000 PARMTBL DS 0F FUNCTION PARAMETER TABLE @V200820 00239000 DC C'LOAD ',AL1(A+B,3),AL2(NETLOAD-DMKNET) @V200820 00240000 DC C'DUMP ',AL1(A+B,3),AL2(NETDUMP-DMKNET) @V240820 00241000 DC C'ENABLE ',AL1(A+B,1),AL2(NETENAB-DMKNET) @V240820 00242000 DC C'DISABLE ',AL1(A+B,3),AL2(NETDISA-DMKNET) @V240820 00243000 DC C'QUERY ',AL1(A+B,0),AL2(NETQERY-DMKNET) @V240820 00244000 DC C'DISPLAY ',AL1(A+B,0),AL2(NETDISP-DMKNET) @V240820 00245000 DC C'VARY ',AL1(A+B,3),AL2(NETVARY-DMKNET) @V240820 00246000 DC C'SHUTDOWN',AL1(A,7),AL2(NETKILL-DMKNET) @V240820 00248000 PARMEND DC C'POLLDLAY',AL1(A+B,3),AL2(NETPOLL-DMKNET) @V2D3931 00250000 PARMENT EQU *-PARMEND LENGTH OF ONE ENTRY = 12 BYTES @V200820 00251000 SPACE 00252000 CLCR1R3 CLC 0(*-*,R1),0(R3) EXECUTED COMPARE @V200820 00253000 EJECT 00254000 NETLOAD EQU * "NETWORK LOAD RADDR NCPNAME" @V200820 00255000 CALL DMKNLDR,PARM=0 CALL THE LOAD PROCESSOR @V200820 00256000 * HE WILL RETURN DIRECTLY TO DMKCFM 00257000 SPACE 2 00258000 NETDUMP EQU * "NETWORK DUMP RADDR IMMED|AUTO|OFF" @V200820 00259000 CALL DMKNLEMP,PARM=0 CALL THE DUMP PROCESSOR @V407511 00260100 * HE WILL RETURN DIRECTLY TO DMKCFM 00261000 SPACE 2 00262000 NETKILL EQU * NETWORK SHUTDOWN RADDR @VA01918 00263000 CALL DMKNESHD CALL THE SHUTDOWN PROCESSOR @VA01918 00264000 B NETCOMP COMPLETE, MSG ALREADY GIVEN @VA01918 00265000 SPACE 2 00266000 NETDISP EQU * NETWORK DISPLAY RADDR HEXLOC @VA01918 00271000 CALL DMKNESDS CALL TO DISPLAY 370X STORAGE @VA01918 00272000 B NETCOMP COMPLETE, MSG ALREADY GIVEN @VA01918 00273000 SPACE 2 00274000 NETPOLL EQU * NETWORK POLLDLAY COMMAND @V2D3931 00275000 CALL DMKNESPL NETWORK POLLDLAY NNNN RADDR @V2D3931 00276000 B NETCOMP COMPLETE, MSG ALREADY GIVEN @V2D3931 00277000 EJECT 00278000 USING NICBLOK,R7 @V200820 00279000 USING RDEVBLOK,R8 @V200820 00280000 NETQERY EQU * NETWORK QUERY RESOURCE @V200820 00281000 MVI SAVEWRK1,QRYACTV DEFAULT IS QUERY ACTIVE @V200820 00282000 CALL DMKSCNFD SCAN FOR THIRD OPERAND @V200820 00283000 BNZ NETQRYS NONE SPECIFIED - USE DEFAULT @V200820 00284000 CL R0,F8 EIGHT CHARS MAXIMUM @V200820 00285000 BH NET002E @V200820 00286000 CL R0,F3 THREE CHARS MINIMUM @V200820 00287000 BL NET002E @V200820 00288000 LR R2,R0 OPERAND LENGTH @V200820 00289000 BCTR R2,0 DECREMENT FOR COMPARES @V200820 00290000 EX R2,CLCACTV NETWORK QUERY ACTIVE @V200820 00291000 BE NETQRYS YES --- @V200820 00292000 MVI SAVEWRK1,QRYALL @V200820 00293000 EX R2,CLCQALL NETWORK QUERY ALL @V200820 00294000 BE NETQRYS YES --- @V200820 00295000 MVI SAVEWRK1,QRYOFFL @V200820 00296000 EX R2,CLCOFFL NETWORK QUERY OFFLINE @V200820 00297000 BE NETQRYS YES --- @V200820 00298000 MVI SAVEWRK1,QRYFREE @V200820 00299000 EX R2,CLCFREE NETWORK QUERY FREE @V200820 00300000 BE NETQRYS YES --- @V200820 00301000 SPACE 00302000 MVI SAVEWRK1,QRYRIDS MUST BE SPECIFIC RESOURCES @V200820 00303000 LA R6,SAVEWRK2 POINT TO SAVEAREA BUFFER @V200820 00304000 SLR R5,R5 BUFFER INDEX SET TO ZERO @V200820 00305000 MVC SAVEWRK2(8),BLANKS CLEAR THE PSEUDO-BUFFER @V200820 00306000 MVC SAVEWRK4(24),SAVEWRK2 . . . @V200820 00307000 BAL R10,SCANCVT CONVERT THE FIRST RESOURCE ID @V200820 00308000 NETQRYR EQU * FORMAT INDIVIDUAL LINES @V200820 00309000 BAL R10,QRYFRMT FORMAT ONE OUTPUT LINE @V200820 00310000 BAL R10,SCANRID SCAN AND CONVERT NEXT RESOURCE @V200820 00311000 BZ NETQRYR CONTINUE . . . @V200820 00312000 B RETCOMP . . .UNTIL THERE ARE NO MORE @V200820 00313000 EJECT 00314000 NETQRYS EQU * GENERAL NETWORK QUERY @V200820 00315000 LA R0,9(0,0) SIZE OF BUFFER (DBL-WDS) @V200820 00316000 CALL DMKFREE GET A FORMATTING BUFFER @V200820 00317000 LR R6,R1 BASE IT ON GR6 @V200820 00318000 SLR R5,R5 BUFFER INDEX STARTS AT ZERO @V200820 00319000 MVC 0(8,R6),BLANKS CLEAR THE BUFFER @V200820 00320000 MVC 8(8*8,R6),0(R6) . . . @V200820 00321000 SPACE 00322000 NETQRYC EQU * NETWORK QUERY BY SITUATION @V200820 00323000 BAL R10,NETWALL GET THE FIRST 370X WITH AN NCP @V200820 00324000 BZ NETQRYA THERE IS AT LEAST ONE @V200820 00325000 LR R5,R6 NO HEADER FOR FAILURE MESSAGE @V200820 00326000 B NETQRYZ GIVE MSG - NO RESOURCES AT ALL @V200820 00327000 SPACE 2 00328000 NETQRYA EQU * FORMAT ACTIVE RESOURCES @V200820 00329000 TM SAVEWRK1,QRYACTV ACTIVE DEVICES WANTED ? @V200820 00330000 BZ NETQRYF NO -- CHECK FOR 'FREE' @V200820 00331000 B NETQRA2 GO HANDLE THE FIRST 370X @V200820 00332000 SPACE 00333000 NETQRA1 EQU * PROCESS SUBSEQUENT 370X NCP'S @V200820 00334000 BAL R10,NETFALL NEXT 370X, IF ANY @V200820 00335000 BZ NETQRA2 THERE IS ANOTHER ONE - DO IT @V200820 00336000 NI SAVEWRK1,255-QRYACTV ACTIVE HAS BEEN DONE @V200820 00337000 BNZ NETQRYC GO GET NEXT SITUATION FORMATTED @V200820 00338000 MVC 0(8,R6),=C'ACTIVE ' ACTIVE NOT FOUND @V200820 00339000 LA R5,8(0,R6) START ADDR FOR MESSAGE TEXT @V200820 00340000 B NETQRYZ GIVE FAILURE MESSAGE TO USER @V200820 00341000 SPACE 00342000 NETQRA2 EQU * LOOP THROUGH THE NICBLOK LIST @V200820 00343000 LH R1,NICNAME CURRENT RESOURCE I.D. @V200820 00344000 LA R1,1(0,R1) INCREMENT FOR NEXT NICBLOK @V200820 00345000 CH R1,RDEVMAX HAVE WE REACHED THE END ? @V200820 00346000 BH NETQRA1 YES - LOOK FOR ANOTHER 370X @V200820 00347000 AH R7,=AL2(NICSIZE*8) ADVANCE TO NEXT NICBLOK @V200820 00348000 TM NICTYPE,NICTERM IS THIS A TERMINAL ? @V200820 00349000 BZ NETQRA2 NO -- SKIP OVER IT @V200820 00350000 CLC NICUSER(4),ASYSVM IS THERE AN ACTIVE USER ? @V240820 00351000 BE NETQRA2 NO -- SKIP OVER THIS ONE @V240820 00352000 BAL R10,QRYFRMT FORMAT AND STACK OUTPUT LINE @V200820 00353000 B NETQRA2 CONTINUE . . . @V200820 00354000 EJECT 00355000 NETQRYF EQU * FORMAT FREE DEVICES @V200820 00356000 TM SAVEWRK1,QRYFREE FREE DEVICES WANTED ? @V200820 00357000 BZ NETQRYO NO -- TRY FOR 'OFFLINE' @V200820 00358000 B NETQRF2 GO HANDLE FIRST 370X @V200820 00359000 SPACE 00360000 NETQRF1 EQU * ADVANCE TO NEXT 370X WITH NCP @V200820 00361000 BAL R10,NETFALL LOCATE ANOTHER NCP @V200820 00362000 BZ NETQRF2 THERE IS ANOTHER ONE - DO IT @V200820 00363000 BAL R10,QRYSTAK STACK ANY PARTIAL LINE BUFFER @V200820 00364000 NI SAVEWRK1,255-QRYFREE FREE HAS BEEN DONE @V200820 00365000 BNZ NETQRYC GO TRY THE NEXT SITUATION @V200820 00366000 MVC 0(6,R6),=C'FREE ' FAILURE KEYWORD @V200820 00367000 LA R5,6(0,R6) START ADDR FOR MESSAGE TEXT @V200820 00368000 B NETQRYZ GIVE FAILURE MESSAGE TO USER @V200820 00369000 SPACE 00370000 NETQRF2 EQU * LOOP THROUGH NICBLOK LIST @V200820 00371000 LH R1,NICNAME CURRENT RESOURCE I.D. @V200820 00372000 LA R1,1(0,R1) INCREMENT FOR NEXT NICBLOK @V200820 00373000 CH R1,RDEVMAX REACHED THE END YET ? @V200820 00374000 BH NETQRF1 YES - GET THE NEXT 370X NCP @V200820 00375000 AH R7,=AL2(NICSIZE*8) BUMP TO NEXT NICBLOK @V200820 00376000 TM NICTYPE,NICTERM IS THIS A TERMINAL ? @V200820 00377000 BZ NETQRF2 NO -- SKIP OVER IT @V200820 00378000 TM NICSTAT,NICDISA IS IT CURRENTLY ACTIVE ? @V200820 00379000 BO NETQRF2 NO -- SKIP OVER IT @V200820 00380000 CLC NICUSER(4),ASYSVM IS THERE AN ACTIVE USER ? @V240820 00381000 BNE NETQRF2 YES - SKIP OVER THIS ONE @V240820 00382000 BAL R10,QRYFRMT FORMAT THE OUTPUT DATA @V200820 00383000 B NETQRF2 CONTINUE . . . @V200820 00384000 EJECT 00385000 NETQRYO EQU * FORMAT OFFLINE RESOURCES @V200820 00386000 TM SAVEWRK1,QRYOFFL OFFLINE DEVICES WANTED ? @V200820 00387000 BZ QRYFINS NO -- COMMAND COMPLETE @V200820 00388000 B NETQRO2 GO HANDLE THE FIRST 370X NCP @V200820 00389000 SPACE 00390000 NETQRO1 EQU * PROCESS THE NEXT 370X, IF ANY @V200820 00391000 BAL R10,NETFALL FIND ANOTHER 370X WITH THE NCP @V200820 00392000 BZ NETQRO2 THERE IS ANOTHER ONE - DO IT @V200820 00393000 BAL R10,QRYSTAK STACK ANY PARTIAL LINE BUFFER @V200820 00394000 NI SAVEWRK1,255-QRYOFFL OFFLINE HAS BEEN DONE @V200820 00395000 BNZ QRYFINS ALL DONE IF SOMETHING STACKED @V200820 00396000 MVC 0(8,R6),=C'OFFLINE ' OFFLINE NOT FOUND @V200820 00397000 LA R5,8(0,R6) START ADDR FOR MESSAGE TEXT @V200820 00398000 B NETQRYZ GIVE FAILURE MESSAGE TO USER @V200820 00399000 SPACE 00400000 NETQRO2 EQU * LOOP THROUGH THE NICBLOK LIST @V200820 00401000 LH R1,NICNAME CURRENT RESOURCE I.D. @V200820 00402000 LA R1,1(0,R1) INCREMENT FOR NEXT NICBLOK @V200820 00403000 CH R1,RDEVMAX REACHED THE END YET ? @V200820 00404000 BH NETQRO1 YES - GET THE NEXT 370X NCP @V200820 00405000 AH R7,=AL2(NICSIZE*8) BUMP TO NEXT NICBLOK @V200820 00406000 TM NICTYPE,NICTERM IS THIS A TERMINAL ? @V200820 00407000 BZ NETQRO2 NO -- SKIP OVER IT @V200820 00408000 TM NICSTAT,NICDISA IS IT OFFLINE NOW ? @V200820 00409000 BZ NETQRO2 NO -- SKIP OVER IT @V200820 00410000 BAL R10,QRYFRMT FORMAT THE OUTPUT DATA @V200820 00411000 B NETQRO2 CONTINUE . . . @V200820 00412000 SPACE 2 00413000 NETQRYZ EQU * SPECIFIED SITUATION NOT FOUND @V200820 00414000 MVC 0(21,R5),=C'RESOURCE(S) NOT FOUND' MSG TEXT @V200820 00415000 SR R5,R6 GET LENGTH OF HEADER @V200820 00416000 LA R0,21(0,R5) LENGTH OF TOTAL MESSAGE @V200820 00417000 LR R1,R6 START OF DATA BUFFER @V200820 00418000 CALL DMKQCNWT,PARM=NORET FAILURE MESSAGE @V200820 00419000 SPACE 00420000 QRYFINS EQU * NETWORK QUERY IS COMPLETE @V200820 00421000 LR R1,R6 START OF FORMATTING BUFFER @V200820 00422000 LA R0,9(0) SIZE IN DBL-WDS @V200820 00423000 CALL DMKFRET RELEASE THE BUFFER @V200820 00424000 B RETCOMP @V200820 00425000 EJECT 00426000 QRYFRMT EQU * FORMAT RESOURCE QUERY OUTPUT @V200820 00427000 OI SAVEWRK1,QRYDONE WILL CREATE SOME OUTPUT @V200820 00428000 LH R1,NICNAME NCP RESOURCE IDENTIFIER @V200820 00429000 SLR R14,R14 CLEAR FOR DEVICE CODE @VA04763 00429100 IC R14,SAVEWRK1+1 GET 370X DEVICE CODE @VA04763 00429200 SLL R14,12 POSITION FOR CONVERT @VA04763 00429300 OR R1,R14 ADD DEVICE CODE TO RID. @VA04763 00429400 CALL DMKCVTBH CONVERT FOR OUTPUT @V200820 00430000 TM NICTYPE,NICLINE+NICLGRP IS THIS A LINE OR C.U. @VM01055 00432000 BZ QRYFMTD NO -- PROBABLY A TERMINAL @V200820 00433000 MVC 0(4,R6),=C'LINE' DEVICE DESCRIPTION @V200820 00434000 STCM R1,15,5(R6) INSERT THE RESOURCE REFERENCE @V200820 00435000 TM NICTYPE,NICLGRP IS THIS A CONTROL UNIT FOR DISP.@VM01055 00436000 BO *+12 YES, SKIP TEST..... @VM01055 00437000 TM NICSTAT,NICEPMD IS THIS LINE IN EP-MODE ? @V240820 00438000 BO QRYFMTE YES - SAY SO @V240820 00439000 LA R5,18(0) COMMON OUTPUT LENGTH @V200820 00440000 MVC 10(8,R6),=C'OFFLINE ' @V200820 00441000 TM NICSTAT,NICDISA IS THE LINE ACTIVE ? @V240820 00442000 BO QRYSTAK NO -- CALL IT OFFLINE @V240820 00443000 MVC 10(8,R6),=C'ACTIVE ' @V200820 00444000 B QRYSTAK GO STACK THE OUTPUT @V240820 00445000 QRYFMTE EQU * LINE RESOURCE IS IN EP-MODE @V240820 00446000 MVC 10(8,R6),=C'EP-MODE ' @V200820 00447000 LH R1,NICEPAD EMULATOR LINE ADDRESS @V200820 00448000 CALL DMKCVTBH CONVERT @V200820 00449000 STCM R1,7,19(R6) SET IN OUTPUT LINE @V200820 00450000 LA R5,24(0) LINE LENGTH @V200820 00451000 B QRYSTAK STACK LINE FOR OUTPUT @V200820 00452000 SPACE 2 00453000 QRYFMTD EQU * FORMAT FOR NON-LINE RESOURCES @V200820 00454000 LA R4,0(R5,R6) GR4 = BUFFER SLOT @V200820 00455000 CR R4,R6 ARE WE AT THE BEGINNING ? @V200820 00456000 BE QRYFMT1 YES - ALL SET @V200820 00457000 MVI 0(R4),C',' ADD OPTICAL DELIMITER @V200820 00458000 LA R5,2(0,R5) MOVE INDEX OVER A BIT @V200820 00459000 LA R4,2(0,R4) MOVE OUTPUT SLOT OVER @V200820 00460000 QRYFMT1 EQU * @V200820 00461000 MVC 0(4,R4),=C'DEV ' NON-LINE IS A "DEV" @V200820 00462000 ST R1,4(0,R4) SET THE RESOURCE REFERENCE @V200820 00463000 MVC 9(8,R4),=C'OFFLINE ' @V200820 00464000 TM NICSTAT,NICDISA OFFLINE RESOURCE ? @V200820 00465000 BO QRYFMTB YES --- @V200820 00466000 MVC 9(8,R4),=C'DISABLE ' @V200820 00467000 TM NICFLAG,NICENAB ENABLED ? @V200820 00468000 BZ QRYFMTB NO ---- @V200820 00469000 MVC 9(8,R4),=C'ENABLED ' @V200820 00470000 CLC NICUSER(4),ASYSVM IS THERE AN ACTIVE USER ? @V240820 00471000 BE QRYFMTB NO ---- @V240820 00472000 MVC 9(10,R4),=C'LOGON AS ' @V200820 00473000 L R1,NICUSER VMBLOK POINTER @V200820 00474000 MVC 19(8,R4),VMUSER-VMBLOK(R1) MOVE USERID @V200820 00475000 LA R5,28(0) LINE LENGTH @V200820 00476000 B QRYSTAK STACK LINE AND CLEAR BUFFER @V200820 00477000 EJECT 00478000 QRYFMTB EQU * ADJUST POINTERS, STACK LINE @V200820 00479000 LA R5,16(0,R5) POINT TO NEXT SLOT @V200820 00480000 CL R5,F60 WAS THAT THE LAST ONE ? @V200820 00481000 BH QRYSTAK YES - STACK LINE AND RESTART @V200820 00482000 TM SAVEWRK1,QRYRIDS INDIVIDUAL RESOURCE QUERY ? @V200820 00483000 BZR R10 NO -- RETURN FOR NEXT ONE @V200820 00484000 SPACE 2 00485000 QRYSTAK EQU * STACK LINES FOR LATER OUTPUT @V200820 00486000 LTR R5,R5 ANYTHING TO BE STACKED ? @V200820 00487000 BZR R10 NO -- JUST RETURN @V200820 00488000 LA R0,8+7(0,R5) ROUND UP AND ADD 8 BYTES @V200820 00489000 SRL R0,3(0) . . .SIZE IN DBL-WDS @V200820 00490000 CALL DMKFREE GET A STACK BUFFER @V200820 00491000 STH R5,4(0,R1) SET OUTPUT LINE LENGTH @V200820 00492000 STH R0,6(0,R1) SET BUFFER SIZE FOR FRET @V200820 00493000 BCTR R5,0 @V200820 00494000 EX R5,MOVESTK MOVE DATA TO STACK BUFFER @V200820 00495000 LA R14,VMSTKO VMBLOK OUTPUT STACK @V200820 00496000 QRYSTKI EQU * SEARCH FOR END OF CHAIN @V200820 00497000 ICM R15,15,0(R14) LOAD AND TEST POINTER @V200820 00498000 BZ QRYSTKT FOUND THE END @V200820 00499000 LR R14,R15 @V200820 00500000 B QRYSTKI @V200820 00501000 QRYSTKT EQU * STACK THE LINE AT THE END @V200820 00502000 ST R1,0(0,R14) CHAIN IN THE NEW BUFFER @V200820 00503000 ST R15,0(0,R1) CLEAR THE FORWARD POINTER @V200820 00504000 MVC 0(8,R6),BLANKS CLEAR THE FORMAT BUFFER @V200820 00505000 LR R1,R6 . . . @V200820 00506000 S R5,F8 . . . @V200820 00507000 EX R5,MOVESTK . . . FOR THE NEXT ITERATION @V200820 00508000 SLR R5,R5 RESET BUFFER INDEX TO ZERO @V200820 00509000 BR R10 RETURN @V200820 00510000 SPACE 2 00511000 MOVESTK MVC 8(*-*,R1),0(R6) EXECUTED @V200820 00512000 CLCFREE CLC 0(*-*,R1),=C'FREE ' NETWORK QUERY FREE @V200820 00513000 CLCOFFL CLC 0(*-*,R1),=C'OFFLINE ' NETWORK QUERY OFFLINE @V200820 00514000 CLCQALL CLC 0(*-*,R1),=C'ALL ' NETWORK QUERY ALL @V200820 00515000 CLCACTV CLC 0(*-*,R1),=C'ACTIVE ' NETWORK QUERY ACTIVE @V200820 00516000 EJECT 00517000 NETENAB EQU * "NETWORK ENABLE RESOURCE|ALL" @V200820 00518000 MVI SAVEWRK1,ENABLE FLAG THIS AS 'ENABLE' CMD @V200820 00519000 SPACE 00520000 NETDISA EQU * "NETWORK DISABLE RESOURCE|ALL" @V200820 00521000 CALL DMKSCNFD SCAN IN CASE IT IS 'ALL' @V200820 00522000 BNZ NETEALL THE DEFAULT IS 'ALL' @V200820 00523000 LA R10,NETENRS RETURN IF NOT 'ALL' @V200820 00524000 CL R0,F3 LONGER THAN THE WORD 'ALL' ? @V200820 00525000 BNE SCANCVT YES - MUST BE A RESOURCE I.D. @V200820 00526000 CLC 0(3,R1),=C'ALL ' THIS MUST BE FIRST AND ONLY @V200820 00527000 BNE SCANCVT NO -- CONVERT RESOURCE ID @V200820 00528000 NETEALL EQU * ENABLE ALL RESOURCES IN SYSTEM @V200820 00529000 BAL R10,NETWALL SETUP AND GET FIRST RDEVBLOK @V200820 00530000 BNZ CMDCOMP COMMAND COMPLETE IF NONE TO DO @V200820 00531000 B NETENAN ENABLE ALL ON THE FIRST 370X @V200820 00532000 NETENAL EQU * PROCESS NEXT 370X WITH THE NCP @V200820 00533000 BAL R10,NETFALL GET NEXT 370X TO BE ENABLED @V200820 00534000 BNZ CMDCOMP COMMAND COMPLETE IF ALL DONE @V200820 00535000 NETENAN EQU * ENABLE ALL RESOURCES ON THIS 370X@V200820 00536000 TM SAVEWRK1+2,CPIALL IS THIS A WARMSTART @V2D3931 00537000 BZ NOWARM NO, CONTINUE @V2D3931 00538000 CLI RDEVTYPC,CLASSPEC IS THIS A RDEVBLOK FOR 370X ? @V2D3931 00539000 BE NETENAL YES, GET NEXT RDEVBLOK ADDRESS @V2D3931 00540000 NOWARM EQU * @V2D3931 00541000 LH R1,NICNAME RESOURCE ID OF CURRENT NICBLOK @V200820 00542000 LA R1,1(0,R1) GET THE NEXT ONE @V200820 00543000 CH R1,RDEVMAX HAVE WE DONE THEM ALL ? @V200820 00544000 BH NETENAL YES - GET NEXT RDEVBLOK @V200820 00545000 TM NICTYPE,NICLGRP IS THIS A CONTROL UNIT ? @V2D3931 00546000 BZ NOCONT NO, CONTINUE @V2D3931 00547000 TM SAVEWRK1,ENABLE IS THIS AN ENABLE REQUEST @V2D3931 00548000 BZ NOCONT NO, CONTINUE PROCESSING @V2D3931 00549000 CLI RDEVTYPC,CLASSPEC IS THIS A RDEVBLOK FOR 370X ? @V2D3931 00550000 BE NOCONT YES, CONTINUE PROCESSING @V2D3931 00551000 BAL R10,NETVRON1 GO ENABLE BISYNC LINE @V2D3931 00552000 TM SAVEWRK1,INACTV WAS THERE AN ERROR ON ENABLE @V2D3931 00553000 BZ NOCONT NO, CONTINUE PROCESSING @V2D3931 00554000 OI SAVEWRK1,SKIPBSC BYPASS ENABLING REMOTE STATIONS@V2D3931 00555000 NI SAVEWRK1,X'FF'-INACTV CLEAR ERROR FLAG @V2D3931 00556000 NOCONT EQU * @V2D3931 00557000 AH R7,=AL2(NICSIZE*8) INDEX FOR NEXT NICBLOK @V200820 00558000 TM NICTYPE,NICLINE IS THIS A T.P. LINE ? @V200820 00559000 BZ NETENTP NO -- CHECK FOR TERMINAL @V200820 00560000 OI SAVEWRK1,SKIPBSC ASSUME BSC SKIP @V200820 00561000 TM NICTYPE,NICLBSC BINARY SYNCHRONOUS LINE ? @V200820 00562000 BO NETENAN YES - SKIP TO NEXT S/S LINE @V200820 00563000 TM NICSTAT,NICEPMD IS THE LINE IN EP-MODE ? @V240820 00564000 BO NETENAN YES - SKIP ALL OF IT @V240820 00565000 NI SAVEWRK1,255-SKIPBSC PROCESS FOLLOWING DEV @V200820 00566000 TM SAVEWRK1,ENABLE IS THIS AN ENABLE REQUEST ? @V200820 00567000 BZ NETENAN NO -- JUST CONTINUE @V200820 00568000 CLI RDEVTYPC,CLASSPEC IS THIS A RDEVBLOK FOR 370X ? @V2D3931 00569000 BE *+12 YES, BYPASS 3270 SUPPORT @V2D3931 00570000 BAL R10,NETVRON1 GO ENABLE BISYNC LINE @V2D3931 00571000 B TSTEROR GO TEST FOR ERROR CONDITION @V2D3931 00572000 BAL R10,NETVRON ISSUE 'ACTIVATE LINE' IF NEEDED @V200820 00573000 TSTEROR EQU * @V2D3931 00574000 TM SAVEWRK1,INACTV DID ACTIVATE SUCCEED ? @V200820 00575000 BZ NETENAN YES - CONTINUE @V200820 00576000 OI SAVEWRK1,SKIPBSC SKIP ENABLING THIS LINE @V200820 00577000 NI SAVEWRK1,255-INACTV RESET ACTIVATE ERROR BIT @V200820 00578000 B NETENAN @V200820 00579000 SPACE 00580000 NETENTP EQU * @V200820 00581000 TM NICTYPE,NICTERM IS THIS A TERMINAL RESOURCE @V200820 00582000 BZ NETENAN NO -- SKIP IT @V200820 00583000 TM SAVEWRK1,SKIPBSC SKIPPING OVER BISYNCH LINE ?@V200820 00584000 BO NETENAN YES -- SKIP @V200820 00585000 TM NICSTAT,NICDISA IS THE DEVICE ACTIVE ? @V240820 00586000 BO NETENAN NO -- SKIP IT @V240820 00587000 LA R10,NETENAN RETURN ADDRESS AFTER ACTION @V200820 00588000 B NETENDS GO PREFORM ENABLE OR DISABLE @V200820 00589000 EJECT 00590000 NETENLR EQU * ENABLE A RESOURCE ID LIST @V200820 00591000 TM SAVEWRK1,ENDONE WAS THAT A VALID RESOURCE ? @V200820 00592000 BZ NET006R NO -- ERROR @V200820 00593000 NI SAVEWRK1,255-ENDONE TURN OFF FLAG BIT @V200820 00594000 BAL R10,SCANRID SCAN AND CONVERT NEXT RESOURCE ID@V200820 00595000 BNZ CMDCOMP COMMAND COMPLETE IF NO MORE @V200820 00596000 NETENRS EQU * @V200820 00597000 TM NICTYPE,NICTERM IS THIS A DEVICE ? @V200820 00598000 BZ NET006R NO -- INVALID DEVICE TYPE @V200820 00599000 TM NICSTAT,NICDISA IS THE RESOURCE OFFLINE ? @VM01011 00600000 BO NET046R YES - CANNOT REFERENCE IT @VM01011 00601000 TM SAVEWRK1,ENABLE ENABLE REQUEST ? @V200820 00602000 BZ NETENRN NO -- NOTHING EXTRA TO DO @V200820 00603000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE ? @V2D3931 00604000 BNE *+12 NO, BYPASS 3270 SUPPORT @V2D3931 00605000 BAL R10,NETVRON1 MAKE SURE THE LINE IS ACTIVE @V2D3931 00606000 B *+8 GO TEST STATUS OF LINE @V2D3931 00607000 BAL R10,NETVRON MAKE SURE THE LINE IS ACTIVE @V200820 00608000 TM SAVEWRK1,INACTV DID THE ACTIVATE FAIL ? @V200820 00609000 BZ NETENRN NO --- CONTINUE @V200820 00610000 OI NICSTAT,NICDISA TERMINAL IS OFFLINE @VA01918 00611000 B NET046R GO TELL THE USER THAT @VA01918 00612000 SPACE 00613000 NETENRN EQU * @V200820 00614000 LA R10,NETENLR RETURN FROM ENABLE OF ONE RESOURC@V200820 00615000 NETENDS EQU * ENABLE OR DISABLE A SINGLE RESOUR@V200820 00616000 TM SAVEWRK1,ENABLE ENABLE COMMAND ? @V200820 00617000 BO NETENRD YES -- @V200820 00618000 B NETDSRD DISABLE -- @V200820 00619000 EJECT 00620000 CTLCALL EQU * ISSUE CONTROL COMMAND VIA DMKRNH @V200820 00621000 LR R9,R7 NICBLOK TO GR9 FOR DMKRNH @V240820 00622000 CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 00623000 BNE BYPAS5 NO, CONTINUE @V2D3931 00624000 CALL DMKRGBEN,PARM=NORET @V305798 00625000 BR R10 RETURN @V2D3931 00626000 BYPAS5 EQU * @V2D3931 00627000 CALL DMKRNHND,PARM=NORET ISSUE COMMAND IN GR0 @V200820 00628000 SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00628500 OI RDEVSTAT,RDEVRSVD 370X NOW IN USE BY SYSTEM @V200820 00629000 BR R10 RETURN @V200820 00630000 SPACE 3 00631000 NETENRD EQU * ENABLE A SINGLE RESOURCE @V200820 00632000 CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 00633000 BNE CONTN NO, BYPASS BISYNC SUPPORT @V2D3931 00634000 TM NICTYPE,NICTERM IS THIS A DISPLAY/PRINTER @V2D3931 00635000 BZR R10 NO, RETURN @V2D3931 00636000 OI SAVEWRK1,ENDONE @V2D3931 00637000 TM SAVEWRK1+2,CPIALL IS THIS AN AUTOMATIC WARMSTART@V2D3931 00638000 BZ *+14 NO, CONTINUE @V2D3931 00639000 TM NICFLAG,NICENAB IS THIS RESOURCE ENABLE @V2D3931 00640000 BZR R10 NO, RETURN @V2D3931 00641000 B ENABRQ GO ENABLE RESOURCE @V2D3931 00642000 NI NICFLAG,X'FF'-NICDISB TURN OFF DISABLE FLAG @V2D3931 00643000 TM NICFLAG,NICENAB IS THIS RESOURCE ACTIVE ? @V2D3931 00644000 BOR R10 YES, RETURN @V2D3931 00645000 CLC NICUSER(4),ASYSVM IS THIS SYSTEM VMBLOK POINTER @V2D3931 00646000 BNER R10 NO, SOMEBODY IS USING IT @V2D3931 00647000 ENABRQ EQU * ENABLE THE RESOURCE @V2D3931 00648000 OI NICFLAG,NICENAB CALL IT ENABLED @V2D3931 00649000 TM NICTYPE,NICGRAF IS THIS A REMOTE DISPLAY STATION@V2D3931 00650000 BZR R10 NO, ALREADY ENABLE @V2D3931 00651000 SR R0,R0 SET PARM REGISTER FOR STATION @V2D3931 00652000 B CTLCALL GO CALL DMKRGFEN @V2D3931 00653000 CONTN EQU * @V2D3931 00654000 CLI NICTYPE,NICTERM MULTIPLE TERMINAL ACCESS ? @V200820 00655000 BE NETEND1 YES - DO THIS ONE @V200820 00656000 TM NICTYPE,NICCIBM+NICTELE SUPPORTED TERMINAL ? @V200820 00657000 BCR 8,R10 NO -- RETURN WITHOUT ENABLIN@V200820 00658000 NETEND1 EQU * @V200820 00659000 OI SAVEWRK1,ENDONE HAVE PROCESSED THIS ONE @V200820 00660000 NI NICFLAG,255-NICDISB TURN OFF DISABLE FLAG @V240820 00661000 TM NICFLAG,NICENAB+NICSESN IS DEVICE ACTIVE ? @V200820 00662000 BCR 7,R10 YES -- JUST RETURN @V200820 00663000 OI NICFLAG,NICENAB CALL IT ENABLED @V200820 00664000 LA R0,CONTACT TRY TO ESTABLISH THE CONNECTION @V200820 00665000 B CTLCALL GO CALL DMKRNHND @V200820 00666000 SPACE 2 00667000 NETDSRD EQU * DISABLE A SINGLE RESOURCE @V200820 00668000 OI SAVEWRK1,ENDONE HAVE PROCESSED THIS ONE @V200820 00669000 OI NICFLAG,NICDISB TO BE DISABLED WHEN POSSIBLE@V200820 00670000 CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 00671000 BNE CONTN1 NO, BYPASS @V2D3931 00672000 TM NICFLAG,NICENAB ACTIVE STATION @V2D3931 00673000 BZR R10 NO, RETURN @V2D3931 00674000 TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V2D3931 00675000 BZ *+10 NO, CHECK RESOURCE IN SESSION @V2D3931 00676000 NI NICFLAG,X'FF'-NICENAB CLEAR ENABLE FLAG @V2D3931 00677000 BR R10 RETURN TO IN LINE CODE @V2D3931 00678000 CLC NICUSER(4),ASYSVM IS THIS SYSTEM VMBLOK POINTER @V2D3931 00679000 BNER R10 NO, SOMEBODY IS USING IT @V2D3931 00680000 SR R0,R0 SET PARM REGISTER FOR STATION @V2D3931 00681000 B CTLCALL GO CALL DMKRGFEN @V2D3931 00682000 CONTN1 EQU * @V2D3931 00683000 TM NICFLAG,NICSESN IS IT ONLY ENABLED RIGHT NOW@V200820 00684000 BCR 1,R10 NO -- SOMEBODY IS USING IT @V200820 00685000 LA R0,CRESIMD RESET IMMED WILL CLEAR CONTACT @V200820 00686000 B CTLCALL GO CALL DMKRNHND @V200820 00687000 EJECT 00688000 NETVARY EQU * "NETWORK VARY RESOURCE ON|OFF|EP|NCP" @V200820 00689000 CALL DMKSCNFD LOCATE THE OPTION WORD @V200820 00690000 BNZ NET026E @V200820 00691000 LR R4,R0 LENGTH... @V200820 00692000 CL R4,F8 VALID ? @V200820 00693000 BH NET026E NO -- @V200820 00694000 BCTR R4,0 @V200820 00695000 LA R5,VARYTBL TABLE OF POSSIBILITIES @V200820 00696000 LA R14,VARYLEN @V200820 00697000 LA R15,VARYEND @V200820 00698000 NETVSCN EQU * SCAN FOR MATCH OF OPTION WORD @V200820 00699000 EX R4,CLCR1R5 @V200820 00700000 BNE NETVNXT NOT THIS ONE - SCAN FOR NEXT @V200820 00701000 CH R4,8(0,R5) IS THE ABBREVIATION VALID ? @V200820 00702000 BNL NETVRYF YES - GO PROCESS RESOURCES @V200820 00703000 NETVNXT EQU * NEXT ENTRY IN TABLE @V200820 00704000 BXLE R5,R14,NETVSCN SCAN THEM ALL @V200820 00705000 B NET003E INVALID OPTION @V200820 00706000 SPACE 00707000 NETVRYF EQU * CHECK OUT SPECIFIED RESOURCES @V200820 00708000 LH R5,10(0,R5) DISPLACEMENT TO SUBROUTINE @V200820 00709000 ST R5,SAVEWRK5 SAVE FOR REPEATED USE @V200820 00710000 BAL R10,SCANRID GET THE FIRST RESOURCE ID @V200820 00711000 BNZ NET026E THERE MUST BE AT LEAST ONE @V200820 00712000 B NETVRYS GO HANDLE ONE RESOURCE I.D. @V200820 00713000 NETVRYN EQU * SCAN FOR THE NEXT RESOURCE I.D. @V200820 00714000 TM SAVEWRK1,INACTV DID THE ACTIVATE FAIL ? @V200820 00715000 BO NET040E YES - DEVICE IS STILL OFFLINE @V200820 00716000 BAL R10,SCANRID SCAN AGAIN @V200820 00717000 BNZ CMDCOMP ALL DONE IF NO MORE @V200820 00718000 NETVRYS EQU * VARY ONE RESOURCE @V200820 00719000 CL R7,RDEVNICL WAS THAT RESOURCE ZERO ? @V200820 00720000 BE NET002R YES - NOT VALID @V200820 00721000 L R5,SAVEWRK5 DISPLACMENT TO VARY SUBROUTINE @V200820 00722000 LA R10,NETVRYN RETURN FROM THE SUBROUTINE @V200820 00723000 B DMKNET(R5) DO IT TO IT @V200820 00724000 SPACE 00725000 CLCR1R5 CLC 0(*-*,R1),0(R5) EXECUTED COMPARE CHARACTER @V200820 00726000 SPACE 2 00727000 VARYTBL DS 0F NETWORK VARY OPTION TABLE @V200820 00728000 DC C'ONLINE ',H'1',AL2(NETVRON-DMKNET) @V200820 00729000 DC C'OFFLINE ',H'2',AL2(NETVOFF-DMKNET) @V200820 00730000 DC C'EP ',H'1',AL2(NETVREP-DMKNET) @V200820 00731000 VARYEND DC C'NCP ',H'2',AL2(NETVNCP-DMKNET) @V200820 00732000 VARYLEN EQU *-VARYEND @V200820 00733000 EJECT 00734000 NETVRON EQU * NETWORK VARY RESOURCE ONLINE @V200820 00735000 LR R6,R7 CURRENT NICBLOK POINTER @V200820 00736000 NETVLIN EQU * FIND LINE ASSOCIATED WITH RESOURC@V200820 00737000 TM NICTYPE-NICBLOK(R6),NICLINE IS THIS A LINE ? @V200820 00738000 BO NETVLNB YES - GOT IT @V200820 00739000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE ? @V2D3931 00740000 BNE *+12 NO, GET ADDRESS OF NICBLOK @V2D3931 00741000 TM NICTYPE-NICBLOK(R6),NICLGRP IS THIS A CLUSTER @V2D3931 00742000 BO NETVLNB YES, GOT IT... @V2D3931 00743000 SH R6,=AL2(NICSIZE*8) BACK UP ONE NICBLOK @V200820 00744000 B NETVLIN KEEP LOOKING FOR A LINE@V200820 00745000 NETVLNB EQU * CHECK FOR INACTIVE LINE @V200820 00746000 OI SAVEWRK1,INACTV TURN ON FAILURE BIT FIRST @V240820 00747000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE ? @V2D3931 00748000 BNE *+12 NO, BYPASS 3270 SUPPORT @V2D3931 00749000 NI NICSTAT-NICBLOK(R6),X'FF'-NICDISA CU ACTIVE @V2D3931 00750000 B NETVRID GO ACTIVATE RESOURCE @V2D3931 00751000 TM NICSTAT-NICBLOK(R6),NICEPMD LINE IN EP-MODE ? @V240820 00752000 BOR R10 YES - CANNOT VARY @V240820 00753000 TM NICSTAT-NICBLOK(R6),NICDISA ALREADY ACTIVE ? @V240820 00754000 BZ NETVRID YES - ALL SET @V240820 00755000 LR R9,R6 NICBLOK TO GR9 FOR DMKRNHND @V240820 00756000 LA R0,CACTLIN ACTIVATE LINE COMMAND @V240820 00757000 CALL DMKRNHND,PARM=0 WAIT FOR COMPLETION @VA01918 00758000 BNZR R10 QUIT IF THE NCP FAILED @VA01918 00759000 IC R2,CONSYSR-CONCCW3(,R1) SYSTEM RESPONSE CODE @VA01918 00760000 LH R0,0(0,R1) SIZE OF THE BTU BUFFER @VA01918 00761000 CALL DMKFRET RELEASE THE FREE STORAGE @VA01918 00762000 STC R2,TEMPSAVE PUT THE RESPONSE CODE DOWN @VA01918 00763000 CLI TEMPSAVE,X'60' DID THE ACTIVATE WORK ? @VA01918 00764000 BE NETACTV YES -- LINE IS ACTIVE @VA01918 00765000 CLI TEMPSAVE,X'99' WAS IT ALREADY ACTIVE ? @VA01918 00766000 BNER R10 NO -- MUST HAVE FAILED @VA01918 00767000 NETACTV EQU * LINE RESOURCE IS NOW ACTIVE @VA01918 00768000 NI NICSTAT-NICBLOK(R6),255-NICDISA NOW ACTIVE @V240820 00769000 B NETVRID GO CLEAR ERROR AND OFFLINE FLAGS @V2D3931 00770000 SPACE 2 00771000 NETVRON1 EQU * ENABLE THE BISYNC LINE @V2D3931 00772000 OI SAVEWRK1,INACTV SET FAILURE FLAG @V2D3931 00773000 TM SAVEWRK1+2,CPIALL IS THIS AN AUTOMATIC WARMSTART@V2D3931 00774000 BZ ENABDEV NO, GO ENABLE BISYNC LINE @V2D3931 00775000 TM RDEVFLAG,RDEVENAB IS THIS LINE ACTIVE ? @V2D3931 00776000 BZR R10 NO, RETURN @V2D3931 00777000 B ENABL GO ENABLE BISYNC LINE @V2D3931 00778000 ENABDEV EQU * @V2D3931 00779000 BAL R14,NET37XLD SEE IF 3705 LOADED @VA04552 00779300 BNZR R10 NOT LOADED..RETURN @VA04552 00779600 SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00779800 NI RDEVFLAG,X'FF'-RDEVDISB CLEAR DISABLE FLAG @V2D3931 00780000 TM RDEVFLAG,RDEVENAB IS THIS BISYNC LINE ACTIVE @V2D3931 00781000 BO NETVRID YES, GO CLEAR OFFLINE FLAG @V2D3931 00782000 OI RDEVFLAG,RDEVENAB ENABLE BISYNC LINE @V2D3931 00783000 ENABL EQU * @V2D3931 00784000 LR R9,R7 GET ADDRESS OF NICBLOK @V2D3931 00785000 L R0,F255 SET PARM REG FOR BISYNC LINE @V2D3931 00786000 CALL DMKRGBEN,PARM=NORET @V305798 00787000 BNZR R10 IF ERROR EXISTS @V2D3931 00788000 NETVRID EQU * CHECK FOR ACTIVE DEVICE @V2D3931 00789000 NI SAVEWRK1,X'FF'-INACTV ACTIVATED LINE O.K. @V2D3931 00790000 NI NICSTAT,X'FF'-NICDISA RESOURCE WILL BE ACTIVATED@V2D3931 00791000 BR R10 CONTINUE @V2D3931 00792000 EJECT 00793000 NETVOFF EQU * NETWORK VARY RESOURCE OFFLINE @V200820 00794000 TM NICSTAT,NICDISA IS IT ALREADY OFFLINE ? @V200820 00795000 BCR 1,R10 YES - COMMAND COMPLETE @V200820 00796000 TM NICTYPE,NICLINE IS THE RESOURCE A LINE ? @V200820 00797000 BZ NETVDOF NO -- THAT'S MUCH EASIER @V200820 00798000 TM NICSTAT,NICEPMD IS THE LINE IN EP-MODE ? @V240820 00799000 BO NET049E YES - CALL IT IN USE @V240820 00800000 LR R6,R7 NICBLOK ADDRESS TO GR6 @V200820 00801000 LA R14,NICSIZE*8 SIZE OF ONE NICBLOK @V200820 00802000 LH R15,RDEVMAX HIGHEST RESOURCE ID VALID @V200820 00803000 MH R15,=AL2(NICSIZE*8) COMPUTE HIGHEST VALID INDEX @V200820 00804000 AL R15,RDEVNICL ...AND LAST NICBLOK ADDRESS @V200820 00805000 BCTR R15,0 @V200820 00806000 NETVLOF EQU * CHECK FOR ANY ACTIVE DEVICES @V200820 00807000 BXH R6,R14,NETVLOK BRANCH IF AT THE END @V200820 00808000 TM NICTYPE-NICBLOK(R6),NICLINE IS THIS NEXT LINE @V200820 00809000 BO NETVLOK YES - MUST BE O.K.@V200820 00810000 TM NICFLAG-NICBLOK(R6),NICENAB+NICSESN IN USE ?@V200820 00811000 BNZ NET049E YES -- ERROR @V200820 00812000 B NETVLOF KEEP CHECKING @V200820 00813000 SPACE 2 00814000 NETVLOK EQU * NO ACTIVE DEVICES ON THIS LINE @V200820 00815000 LA R0,CDCTLIN DEACTIVATE LINE @V200820 00816000 OI NICSTAT,NICDISA LINE WILL BE INACTIVE @V200820 00817000 BAL R3,CHKSDR GO CHECK FOR SDR DATA @VA03757 00817100 B CTLCALL GO CALL DMKRNHND @V200820 00818000 SPACE 00819000 NETVDOF EQU * VARY A DEVICE OFFLINE @V200820 00820000 TM NICFLAG,NICENAB IS THIS RESOURCE ACTIVE @V2D3931 00821000 BO NET049E YES, SEND ERROR MESSAGE @V2D3931 00822000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE @V2D3931 00823000 BE *+12 YES, BYPASS @V2D3931 00824000 TM NICFLAG,NICSESN IS THIS RESOURCE ACTIVE @V2D3931 00825000 BO NET049E YES, GO SEND ERROR MESSAGE @V2D3931 00826000 OI NICSTAT,NICDISA DEVICE WILL BE OFFLINE @V200820 00827000 BAL R3,CHKSDR GO CHECK FOR SDR DATA @VA03757 00827100 BR R10 CONTINUE @VA01918 00828000 EJECT 00829000 *** TEST FOR POSSIBLE SDR DATA, IF PRESENT GO 00829100 *** RECORD OBR RECORD SYNCHRONOUSLY.... 00829200 SPACE 1 00829300 CHKSDR EQU * @VA03757 00829400 ICM R5,15,RDEVCTRS GET POINTER TO SDRBLOK @VA03757 00829500 BNPR R3 RETURN IF NO SDRBLOK @VA03757 00829600 CALL DMKIOESR GO RECORD OBR RECORD @VA03757 00829700 BR R3 RETURN TO IN LINE CODE @VA03757 00829800 SPACE 2 00829900 NETVREP EQU * NETWORK VARY RESOURCE EP-MODE @V240820 00830000 L R1,SAVEWRK9 PASS RESOURCE I.D. IN EBCDIC @VA01918 00831000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE @V2D3931 00832000 BE NET006E YES, SEND ERROR MESSAGE @V2D3931 00833000 CALL DMKNESEP SWITCH THE LINE TO EP-MODE @VA01918 00834000 LTR R2,R2 WERE THERE ANY ERRORS ? @VA01918 00835000 BNZ NETCOMP YES - PASS BACK RETURN CODE @VA01918 00836000 BR R10 CONTINUE COMMAND PROCESSING @VA01918 00837000 SPACE 2 00838000 NETVNCP EQU * NETWORK VARY RESOURCE NCP-MODE @V240820 00839000 L R1,SAVEWRK9 PASS RESOURCE I.D. IN EBCDIC @VA01918 00840000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE @V2D3931 00841000 BE NET006E YES, SEND ERROR MESSAGE @V2D3931 00842000 CALL DMKNESWN SWITCH LINE TO NCP-MODE @VA01918 00843000 LTR R2,R2 WERE THERE ANY ERRORS ? @VA01918 00844000 BNZ NETCOMP YES - PASS BACK RETURN CODE @VA01918 00845000 BR R10 CONTINUE COMMAND PROCESSING @VA01918 00846000 SPACE 2 00847000 EJECT 00863000 NETWALL EQU * SETUP TO LOOP THROUGH 370X DEVICE@V200820 00864000 L R8,=A(DMKRIORN) DEVICE TABLE FOR 3705'S @V200820 00865000 L R7,0(0,R8) COUNT OF 370X DEVICE ENTRIES @V200820 00866000 LTR R7,R7 ARE THERE ANY AT ALL ? @V200820 00867000 BNP NETMALL NO -- ALL HAVE BEEN PROCESSED @V200820 00868000 SLL R7,2(0) CONVERT TO MAXIMUM INDEX @V200820 00869000 LA R7,0(R7,R8) POINT TO LAST ENTRY @V200820 00870000 STM R7,R8,SAVEWRK7 SAVE POINTERS IN SAVE-AREA @V200820 00871000 MVI SAVEWRK1+1,X'FF' SET DEVICE CODE TO X'-1' @V200820 00872000 SPACE 2 00873000 NETFALL EQU * LOOP THRU ALL DEVICES, ALL LINES @V200820 00874000 LM R7,R8,SAVEWRK7 PICK UP DMKRIO POINTERS @V200820 00875000 LA R8,4(0,R8) NEXT ENTRY IN DEVICE TABLE @V200820 00876000 CLR R8,R7 HAVE WE HIT THE END ? @V200820 00877000 BH NETMALL YES - ALL HAVE BEEN PROCESSED @V200820 00878000 STM R7,R8,SAVEWRK7 RESET POINTERS FOR NEXT PASS @V200820 00879000 SLR R7,R7 @V200820 00880000 IC R7,SAVEWRK1+1 PICK UP PREVIOUS DEVICE CODE @V200820 00881000 LA R7,1(0,R7) THIS IS THE NEXT 370X @V200820 00882000 STC R7,SAVEWRK1+1 RESET FOR FORMATTING USE @V200820 00883000 LH R8,0(0,R8) PICK UP DISPLACEMENT TO RDEVBLOK @V200820 00885000 SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00886000 AL R8,ARIODV INDEX TO THE RDEVBLOK @V200820 00887000 TM RDEVSTAT,RDEVDED OK? @VA13702 00888100 BNZ NETFALL NO -- @V200820 00889000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE @V2D3931 00890000 BNE NETE375 NO..CHECK OUT NCP @VA04552 00891100 BAL R14,NET37XLD SEE IF 3705 LOADED @VA04552 00891200 BNZ NETFALL NOT LOADED..SKIP THIS ENTRY @VA04552 00891300 B NETNICL CONTINUE... @VA04552 00891400 NETE375 EQU * @VA04552 00891500 TM RDEVFLAG,RDEVLNCP IS THERE AN NCP ACTIVE ? @V200820 00892000 BZ NETFALL NO -- NO RESOURCES @V200820 00893000 NETNICL EQU * @VA04552 00893500 L R7,RDEVNICL FIRST NICBLOK = RESOURCE ZERO @V200820 00894000 CR R7,R7 SET CONDITION CODE ZERO @V200820 00895000 BR R10 RETURN TO CALLER @V200820 00896000 SPACE 00897000 NETMALL EQU * ALL 370X DEVICES HAVE BEEN DONE @V200820 00898000 SLR R8,R8 SET CONDITION CODE TWO (LOGICAL) @V200820 00899000 BR R10 RETURN @V200820 00900000 EJECT 00901000 SCANRID EQU * SCAN FOR RID - LOCATE NICBLOK @V200820 00902000 L R9,SAVER9 MAKE SURE WE HAVE THE BUFFER @V240820 00903000 CALL DMKSCNFD SCAN FOR NEXT PARAMETER @V200820 00904000 BCR 7,R10 IF NO MORE - RETURN @V200820 00905000 SCANCVT EQU * ENTRY AFTER CALL TO DMKSCNFD @V200820 00906000 LR R2,R0 SAVE LENGTH AND ADDRESS FOR MSGS @V200820 00907000 LR R3,R1 ... @V200820 00908000 CL R0,F4 FIELD MUST BE FOUR CHARACTERS @V240820 00909000 BNE NET002R NOPE - ERROR @V240820 00910000 MVC SAVEWRK9(4),0(R1) SAVE THE RESOURCE I.D. @V240820 00911000 CALL DMKCVTHB CONVERT ENTIRE FIELD TO BINARY @V200820 00913000 BNZ NET002R INVALID OPERAND @V200820 00914000 LR R7,R1 @V200820 00915000 N R7,F4095 ISOLATE RESOURCE ID PORTION @V200820 00916000 SRL R1,12(0) ...AND DEVICE CODE INDICATOR @V200820 00917000 STC R1,SAVEWRK1+1 SAVE DEVICE CODE @VA04763 00917100 LA R1,1(0,R1) ADD ONE FOR INDEXING @V200820 00918000 L R4,=A(DMKRIORN) TABLE OF 3705 RDEVBLOK'S @V200820 00919000 CL R1,0(0,R4) IS THIS A VALID CODE ? @V200820 00920000 BH NET040E NO -- DEVICE DOES NOT EXIST @V200820 00921000 SLL R1,2(0) CONVERT TO FULL-WORD INDEX @V200820 00922000 LH R8,0(R1,R4) PICK UP DISPLACEMENT TO RDEVBLOK @V200820 00923000 SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00924000 AL R8,ARIODV ...COMPUTE RDEVBLOK ADDRESS @V200820 00925000 TM SAVEWRK1+2,NOTACPT IS NOT ACCEPTED FLAG ON ? @VM01055 00926000 BZ *+12 NO, CONTINUE PROCESSING @VM01055 00927000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE ? @VM01055 00928000 BE NET006R YES, SEND INVALID DEVICE TYPE @VM01055 00929000 TM RDEVSTAT,RDEVDISA IS THE 3705 OFFLINE ? @V200820 00930000 BO NET046E YES -- DMKNET046E @V200820 00931000 TM RDEVSTAT,RDEVDED IS 3705 ATTACHED TO A USER ?@V200820 00932000 BO NET140E YES -- DMKNET140E @V200820 00933000 CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE @V2D3931 00934000 BE *+12 YES, BYPASS @V2D3931 00935000 TM RDEVFLAG,RDEVLNCP IS THERE AN NCP ACTIVE ? @V200820 00936000 BZ NET040E NO -- DEV DOES NOT EXIST @V200820 00937000 CH R7,RDEVMAX WITHIN DEFINED RANGE ? @V200820 00938000 BH NET040E NO -- @V200820 00939000 MH R7,=AL2(NICSIZE*8) COMPUTE INDEX TO NICBLOK @V200820 00940000 AL R7,RDEVNICL ...AND ADDRESS @V200820 00941000 SR R0,R0 SET CC = 0 @V200820 00942000 BR R10 RETURN TO CALLER @V200820 00943000 EJECT 00944000 CMDCOMP EQU * COMMAND IS COMPLETE @V200820 00945000 TM SAVEWRK1+2,CPIALL IS THIS AN AUTOMATIC WARMSTART@V2D3931 00946000 BO RETCOMP YES, BYPASS SEND COMPLETE MESSAGE@V2D3931 00947000 TM VMOSTAT,VMVIRCF DIAGNOSE CONSOLE FUNCTION ? @V200820 00948000 BO RETCOMP YES - SUPPRESS THE MESSAGE @V200820 00949000 MSG 'COMMAND COMPLETE' VERIFICATION MESSAGE @V200820 00950000 CALL DMKQCNWT,PARM=NORET @V200820 00951000 SPACE 00952000 RETCOMP EQU * SET RETURN CODE, EXIT @V200820 00953000 SLR R2,R2 RETURN CODE = ZERO @V200820 00954000 NETCOMP EQU * @VA01918 00955000 ST R2,SAVER2 @V200820 00956000 EXIT , RETURN TO DMKCFM @V200820 00957000 SPACE 00957050 NET37XLD EQU * @VA04552 00957100 STM R0,R15,TEMPSAVE SAVE REGS @VA04552 00957150 LH R1,RDEVBASE 370X BASE ADDRESS @VA04552 00957200 CALL DMKSCNRU SEE IF IT EXISTS @VA04552 00957250 BNZ NETLDC0 ASSUME 270X LINE @VA04552 00957300 CLC RDEVTYPC(2),=AL2(CLASSPEC*256+TYP3705) 3705 ? @VA04552 00957350 BNE NETLDC0 NO..ASSUME 270X... @VA04552 00957400 TM RDEVSTAT,RDEVDISA 3705 ONLINE ? @VA04552 00957450 BNZ NETLDC0 NO..ASSUME 270X IS... @VA04552 00957500 TM RDEVFLAG,RDEVAUTO AUTO LOAD ENABLED? @VA08830 00957510 BZ NETLDC0 NO, ASSUME UNIT IS PRELOADED @VA08830 00957520 TM RDEVSTAT,RDEVNRDY 370X LOADED YET ? @VA04552 00957550 BNZ NETLDRT NO...EXIT WITH NON ZERO CC @VA04552 00957600 NETLDC0 SR R0,R0 SET CC = 0 @VA04552 00957650 NETLDRT LM R0,R15,TEMPSAVE RESTORE REGS @VA04552 00957700 BR R14 RETURN @VA04552 00957750 EJECT 00958000 NET002R EQU * @V200820 00959000 LR R0,R2 RECOVER ORIGINAL LENGTH @V200820 00960000 LR R1,R3 ...AND DATA ADDRESS @V200820 00961000 NET002E EQU * DMKNET002E INVALID OPERAND - OPERAND @V200820 00962000 LA R2,002(0) MESSAGE NUMBER @V200820 00963000 B MSGSEND R0, R1 ALREADY SETUP @V200820 00964000 SPACE 00965000 NET003E EQU * DMKNET003E INVALID OPTION - OPTION @V200820 00966000 LA R2,003(0) MESSAGE NUMBER @V200820 00967000 B MSGSEND R0, R1 ALREADY SETUP @V200820 00968000 SPACE 00969000 NET006E EQU * DMKNET006E INVALID DEVICE TYPE - XXX @V200820 00970000 BAL R9,CVTRADD GET DEVICE ADDRESS IN EBCDIC @V200820 00971000 LA R2,006(0) MESSAGE NUMBER @V200820 00972000 B MSGSEND @V200820 00973000 SPACE 00974000 NET006R EQU * DMKNET006E INVALID DEVICE TYPE - XXXX @V200820 00975000 LA R1,SAVEWRK9 POINT TO THE OPERAND @V240820 00976000 LA R0,4(0) LENGTH OF FOUR BYTES @V240820 00977000 LA R2,006(0) MESSAGE= DMKNET006E @V200820 00978000 B MSGSEND GO TYPE THE MESSAGE @V200820 00979000 SPACE 00980000 NET026E EQU * DMKNET026E OPERAND MISSING OR INVALID @V200820 00981000 LA R2,026(0) MESSAGE NUMBER @V200820 00982000 B MSGONLY NO VARIABLE DATA @V200820 00983000 SPACE 00984000 NET040E EQU * DMKNET040E DEV ADDR DOES NOT EXIST @V200820 00985000 LA R1,SAVEWRK9 RESOURCE REFERENCE IN SAVEWRK9 @VA01918 00986000 LA R0,4(0) FOUR-BYTE FIELD @VA01918 00987000 LA R2,040(0) MESSAGE NUMBER @V200820 00988000 B MSGSEND @V200820 00989000 EJECT 00990000 NET046R EQU * DMKNET046E DEV RID OFFLINE @VM01011 00991000 BAL R10,CVTRESD BUILD 'DEV RID' IN THE SAVEAREA @VM01011 00992000 B NET046 SETUP TO TYPE ERROR MESSAGE @VM01011 00993000 SPACE 00994000 NET046E EQU * DMKNET046E CTLR RADDR OFFLINE @V200820 00995000 BAL R10,TYPRADD BUILD PARMS FOR DMKERMSG @VM01011 00996000 NET046 EQU * @VM01011 00997000 LA R0,8 @V200820 00998000 LA R2,046(0) MESSAGE NUMBER @V200820 00999000 B MSGSEND @V200820 01000000 SPACE 01001000 NET049E EQU * DMKNET049E LINE RID IN USE @V200820 01002000 BAL R10,CVTRESD BUILD PARM STRING FOR DMKERM @VM01011 01003000 LA R2,049(0) MESSAGE NUMBER @V200820 01004000 B MSGSEND @V200820 01005000 SPACE 01006000 NET140E EQU * DMKNET140E CTLR XXX ATTACHED TO USERID @V200820 01007000 BAL R10,TYPRADD BUILD PARM STRING FOR DMKERM @VM01011 01008000 L R2,RDEVUSER-RDEVBLOK(,R8) GET USER'S VMBLOK @V200820 01009000 MVC SAVEWRK4+1(8),VMUSER-VMBLOK(R2) MOVE IN USERID @V200820 01010000 MVI SAVEWRK4,X'00' FIELD DELIMITER @V200820 01011000 LA R0,17 VARIABLE DATA LENGTH @V200820 01012000 LA R2,140(0) MESSAGE NUMBER @V200820 01013000 B MSGSEND @V200820 01014000 EJECT 01015000 TYPRADD EQU * BUILD PARMS FOR 'TYPE RADDR' @VM01011 01016000 BAL R9,CVTRADD GET DEVICE ADDRESS IN SAVEWRK3 @VM01011 01017000 MVC SAVEWRK2(4),=C'CTLR' DEVICE TYPE NAME @VM01011 01018000 LA R1,SAVEWRK2 POINT TO STRING START @VM01011 01019000 LA R0,8(0) LENGTH @VM01011 01020000 CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 01021000 BNER R10 NO, RETURN TO IN LINE CODE @V2D3931 01022000 MVC SAVEWRK2(4),=C'LINE' LINE TYPE NAME @V2D3931 01023000 BR R10 . . . @VM01011 01024000 SPACE 01025000 CVTRADD EQU * CONVERT RADDR TO EBCDIC @V200820 01026000 CALL DMKSCNRD GET ADDRESS IN BINARY @V200820 01027000 CALL DMKCVTBH CONVERT IT TO EBCDIC HEX @V200820 01028000 ST R1,SAVEWRK3 PUT IT IN THE SAVE-AREA @VM01011 01029000 MVI SAVEWRK3,X'00' INSERT A DELIMITER @VM01011 01030000 LA R1,SAVEWRK3+1 START OF THE ACTUAL ADDRESS @VM01011 01031000 LA R0,3(0) GIVE IT'S LENGTH... @V200820 01032000 BR R9 RETURN TO CALLER @V200820 01033000 SPACE 01034000 CVTRESD EQU * BUILD PARMS FOR 'DEV RESOURCE' @VM01011 01035000 MVC SAVEWRK8(3),=C'DEV ' RID IS A 'DEV' @VM01011 01036000 MVI SAVEWRK8+3,X'00' RESOURCE IS IN SAVEWRK9 @VM01011 01037000 LA R1,SAVEWRK8 POINT TO THE DATA STRING @VM01011 01038000 LA R0,8(0) EIGHT BYTES LONG @VM01011 01039000 BR R10 @VM01011 01040000 SPACE 01041000 MSGONLY EQU * ERROR MSG WITH NO VARIABLE DATA @V200820 01042000 SLR R1,R1 NO VARIABLE DATA @V200820 01043000 SPACE 01044000 MSGSEND EQU * TYPE AN ERROR MESSAGE @V200820 01045000 ICM R0,B'1110',MODID+3 PICK UP MODULE IDENTIFIER @V200820 01046000 CALL DMKERMSG GO TO ERROR MESSAGE ROUTINE @V200820 01047000 * HE WILL RETURN DIRECTLY TO DMKCFM 01048000 EJECT 01049000 **************************************************************** 01050000 * 01051000 * SUBROUTINE NAME - 01052000 * 01053000 * DMKNETAE - ENABLE SYSTEM BISYNC LINES AND REMOTE STATIONS. 01054000 * 01055000 * ATTRIBUTES - 01056000 * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKCPI 01057000 * 01058000 * ENTRY CONDITIONS - 01059000 * 01060000 * GR13 = STANDARD SAVEAREA ADDRESS 01061000 * GR12 = ADDRESS OF DMKNETAE 01062000 * 01063000 * EXIT CONDITIONS - 01064000 * 01065000 * GR0-13 RESTORED 01066000 * 01067000 * CALLS TO OTHER ROUTINES - 01068000 * 01069000 * DMKRGBEN - TO ENABLE THE BISYNC LINES AND REMOTE STATIONS 01070000 * 01071000 * EXTERNAL REFERENCES - 01072000 * 01073000 * NONE 01074000 * 01075000 * TABLES / WORK AREAS - 01076000 * 01077000 * NONE 01078000 * 01079000 * REGISTER USAGE - 01080000 * 01081000 * GR14,15 EXTERNAL LINKAGE REGISTERS 01082000 * GR13 - SAVEAREA ADDRESSABILITY 01083000 * GR12 - MODULE BASE ADDRESSABILITY 01084000 * GR11 - VMBLOK ADDRESSABILITY 01085000 * GR 9 - NICBLOK ADDRESSABILITY 01086000 * GR 8 - RDEVBLOK ADDRESSABILITY 01087000 * GR 2 - PARM FIELD INDICATOR WHEN CALLING DMKRGBEN 01088000 * GR 0 - INDICATE REMOTE STATION OR BISYNC LINE REQUEST 01089000 * 01090000 * NOTES - 01091000 * 01092000 * NONE 01093000 * 01094000 * OPERATION - 01095000 * 01096000 * 1. SET FLAG (CPIALL) IN SAVEAREA1+2 TO INDICATE ENABLE 01097000 * OPERATION VIA CALL FROM DMKCPI. THEN ENTER ENABLE 01098000 * ROUTINE AT LABEL NETEALL. 01099000 * 01100000 * 2. THE ENABLE SUBROUTINE WILL SCAN ALL BISYNC LINE 01101000 * RDEVBLOKS. ONLY THE RDEVBLOK S HAVING THE ENABLE 01102000 * FLAG ON WILL BE ENABLED. (THE ENABLE FLAG IS SET 01103000 * ON BY DMKWRM DURING SYSTEM RESTART.) 01104000 * 01105000 * RESPONSES - 01106000 * 01107000 * NONE 01108000 * 01109000 * ERROR MESSAGES - 01110000 * 01111000 * NONE 01112000 * 01113000 ****************************************************************** 01114000 EJECT 01115000 DMKNETAE RELOC @V2D3931 01116000 MVC SAVEWRK1(4),ZEROES ZERO FLAG FIELD @V2D3931 01117000 MVI SAVEWRK1,ENABLE SET THE ENABLE FLAG @V2D3931 01118000 MVI SAVEWRK1+2,CPIALL CALLED FROM DMKCPI @V2D3931 01119000 B NETEALL GO TO ENABLE SECTION @V2D3931 01120000 EJECT 01121000 * BITS DEFINED IN SAVEWRK1 FOR NETWORK QUERY: 01122000 QRYACTV EQU X'80' FORMAT ACTIVE DEVICES ONLY @V200820 01123000 QRYOFFL EQU X'40' FORMAT OFFLINE DEVICES ONLY @V200820 01124000 QRYFREE EQU X'20' FORMAT FREE DEVICES ONLY @V200820 01125000 QRYRIDS EQU X'10' FORMAT INDIVIDUAL RESOURCES @V200820 01126000 QRYALL EQU X'08'+QRYACTV+QRYFREE+QRYOFFL QUERY ALL @V200820 01127000 QRYDONE EQU X'04' HAVE CREATED SOME OUTPUT @V200820 01128000 SPACE 01129000 * BITS DEFINED IN SAVEWRK1 FOR ENABLE / DISABLE / VARY: 01130000 ENABLE EQU X'80' NETWORK ENABLE COMMAND @V200820 01131000 SKIPBSC EQU X'40' SKIPPING OVER BISYNCH LINE @V200820 01132000 INACTV EQU X'20' ACTIVATE FAILED FOR LINE @V200820 01133000 ENDONE EQU X'10' RESOURCE WAS ENABLED OR DISABLED @V200820 01134000 SPACE 1 01135000 * BIT DEFINED IN SAVEWRK1+2 FOR AUTOMATIC WARMSTART 01136000 CPIALL EQU X'80' CALLED FROM DMKCPI (AUTOMATIC @V2D3931 01137000 * WARMSTART) 01138000 NOTACPT EQU X'40' COMMAND NOT ACCEPTED FOR 3270R @VM01055 01139000 SPACE 01140000 LTORG @V200820 01141000 EJECT 01142000 COPY NETWORK @V200820 01143000 COPY IOBLOKS @V306638 01144000 COPY RBLOKS @V200820 01145000 COPY VMBLOK @V200820 01146000 * EQUATES USED FOR COMMAND CLASSES: 01147000 A EQU VMCLASSA SYSTEM OPERATOR @V200820 01148000 B EQU VMCLASSB RESOURCE CONTROL OPERATOR @V200820 01149000 C EQU VMCLASSC SYSTEM PROGRAMMER @V200820 01150000 D EQU VMCLASSD SPOOL CONTROL OPERATOR @V200820 01151000 E EQU VMCLASSE SYSTEM EXAMINER @V200820 01152000 F EQU VMCLASSF PROGRAM SUPPORT REPRESENTATIVE @V200820 01153000 G EQU VMCLASSG GENERAL USERS @V200820 01154000 EJECT 01155000 COPY BTUCMD @V200820 01156000 COPY EQU @V200820 01157000 COPY DEVTYPES @V200820 01158000 COPY SAVE @V200820 01159000 PSA @V200820 01160000 END DMKNET 01161000