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