ibm:vm370-lib:cp:dmknes.assemble_src
Table of Contents
DMKNES Source
References
- Fixes Applied : 4
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [HRC101DK]
Source Listing
- DMKNES.ASSEMBLE.txt
- NES TITLE 'DMKNES (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
- * DMKNES 00009000
- * 00010000
- * CONTENTS - 00011000
- * 00012000
- * DMKNESHD - PROCESS THE 'NETWORK SHUTDOWN' COMMAND 00013000
- * DMKNESTR - PROCESS THE 'NETWORK TRACE' COMMAND 00014000
- * DMKNESDS - PROCESS THE 'NETWORK DISPLAY' COMMAND 00015000
- * DMKNESEP - PROCESS THE 'NETWORK VARY EP' COMMAND 00016000
- * DMKNESWN - PROCESS THE 'NETWORK VARY NCP' COMMAND 00017000
- * DMKNESPL - PROCESS THE 'NETWORK POLLDLAY' COMMAND 00018000
- *. 00019000
- SPACE 2 00020000
- DMKNES START 0 @V200820 00021000
- SPACE 00022000
- USING PSA,0 @V200820 00023000
- USING CONTASK,R6 @V250820 00024000
- USING NICBLOK,R7 @V250820 00025000
- USING RDEVBLOK,R8 @V250820 00026000
- USING VMBLOK,R11 @V200820 00027000
- USING SAVEAREA,R13 @V200820 00028000
- SPACE 2 00029000
- EXTRN DMKRNHND,DMKERMSG,DMKRGBEN,DMKCVTDB @V305798 00030000
- EXTRN DMKSCNFD,DMKCVTHB,DMKSCNRU,DMKCVTBH @V200820 00031000
- EXTRN DMKSCNRD,DMKQCNCL,DMKQCNTO @V200820 00032000
- EXTRN DMKRIORN DEVICE TABLE FOR SYSTEM 370X'S @V200820 00033000
- EXTRN DMKRNHTR HOLD FIELD FOR TRACE USERID @V200820 00034000
- EXTRN DMKIOESR @VA03757 00034100
- SPACE 00035000
- MODID DC CL8'DMKNES ' PAGEABLE MODULE IDENTIFIER @V200820 00036000
- EJECT 00037000
- *. 00038000
- * SUBROUTINE NAME - 00039000
- * 00040000
- * DMKNESHD - PROCESS THE 'NETWORK SHUTDOWN' COMMAND 00041000
- * 00042000
- * ATTRIBUTES - 00043000
- * 00044000
- * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00045000
- * 00046000
- * ENTRY CONDITIONS - 00047000
- * 00048000
- * GR13 = STANDARD SAVEAREA ADDRESS 00049000
- * GR12 = ADDRESS OF DMKNESHD 00050000
- * GR11 = VALID VMBLOK ADDRESS 00051000
- * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00052000
- * 00053000
- * EXIT CONDITIONS - 00054000
- * 00055000
- * GR0-1, 3-13 RESTORED 00056000
- * GR2 = ZERO --> SUCCESSFULL EXECUTION 00057000
- * GR2 ยฌ= ZERO -> ERROR MESSAGE HAS BEEN ISSUED 00058000
- * 00059000
- * CALLS TO OTHER ROUTINES - 00060000
- * 00061000
- * DMKSCNFD - TO LOCATE COMMAND OPERANDS 00062000
- * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00063000
- * DMKCVTHB - TO CONVERT HEXADECIMAL TO BINARY 00064000
- * DMKQCNCL - TO RESET ANY ACTIVE CONSOLE TASKS (CONTASK) 00065000
- * DMKQCNTO - TO DISCONNECT AN ACTIVE VIRTUAL MACHINE 00066000
- * 00067000
- * EXTERNAL REFERENCES - 00068000
- * 00069000
- * DMKRIORN - TABLE OF 370X DEVICES IN DMKRIO 00070000
- * 00071000
- * TABLES / WORK AREAS - NONE 00072000
- * 00073000
- * REGISTER USAGE - 00074000
- * 00075000
- * GR14-15 EXTERNAL LINKAGE REGISTERS 00076000
- * GR13 - SAVEAREA ADDRESSABILITY 00077000
- * GR12 - MODULE BASE ADDRESSABILITY 00078000
- * GR11 - VMBLOK ADDRESSABILITY 00079000
- * GR10 - INTERNAL LINKAGE REGISTER 00080000
- * GR 9 - COMMAND BUFFER ADDRESSABILITY 00081000
- * GR 8 - RDEVBLOK ADDRESSABILITY 00082000
- * GR 7 - NICBLOK ADDRESSABILITY 00083000
- * GR 0-6 WORK REGISTERS 00084000
- * 00085000
- * NOTES - NONE 00086000
- * 00087000
- * OPERATION - 00088000
- * 00089000
- * 1. VALIDATE THE OPERAND SPECIFIED. IF NONE, ASSUME 'ALL'. 00090000
- * 2. FOR EACH 370X WHICH HAS AN ACTIVE NETWORK CONTROL 00091000
- * PROGRAM OR PARTITIONED EMULATOR PROGRAM, DISABLE CP 00092000
- * USE OF THE NCP INTERFACE BY SETTING APPROPRIATE FLAGS 00093000
- * IN THE RDEVBLOK FOR THE 370X. 00094000
- * 3. RESET ANY ACTIVE OR QUEUED CONTASK'S FOR EACH NICBLOK 00095000
- * VIA CALLS TO DMKQCNCL. 00096000
- * 4. DISCONNECT ANY ACTIVE VIRTUAL MACHINES VIA CALLS TO 00097000
- * DMKQCNTO. MARK THE 370X AS FREE. 00098000
- * 00099000
- * RESPONSES - 00100000
- * 00101000
- * COMMAND COMPLETE 00102000
- * 00103000
- * ERROR MESSAGES - 00104000
- * 00105000
- * DMKNES002E INVALID OPERAND - OPERAND 00106000
- * DMKNES006E INVALID DEVICE TYPE - XXX 00107000
- * DMKNES021E RADDR MISSING OR INVALID 00108000
- * DMKNES040E DEV XXX DOES NOT EXIST 00109000
- * DMKNES046E CTLR XXX OFFLINE 00110000
- * DMKNES140E CTLR XXX ATTACHED TO USERIDXX 00111000
- *. 00112000
- SPACE 2 00113000
- DMKNESHD RELOC , NETWORK SHUTDOWN RADDR @V250820 00114000
- SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00114500
- MVI SAVEWRK1,SHUT INDICATE 3270 REMOTE SUPPORT @V2D3931 00115000
- SPACE 00116000
- CALL DMKSCNFD WAS AN ADDRESS SPECIFIED ? @V200820 00117000
- BNZ NETSHUT NO -- SHUTDOWN EVERYTHING @V200820 00118000
- CL R0,F3 MUST BE LESS THAN THREE CHARS @V200820 00119000
- BH NET002E INVALID OPERAND @V200820 00120000
- CLC 0(3,R1),=C'ALL ' WAS "ALL" TYPED IN ? @V200820 00121000
- BE NETSHUT YES - DO JUST THAT @V200820 00122000
- BAL R10,GETRDEV FIND AND VALIDATE REAL DEVICE @V240820 00123000
- BAL R10,NETDEAD SHUTDOWN NCP COMMUNICATION @V200820 00124000
- B CMDCOMP ALL DONE - GET OUT @V200820 00125000
- SPACE 00126000
- NETSHUT EQU * SHUTDOWN ALL 370X NCP ACTIVITY @V200820 00127000
- BAL R10,NETWALL FIND THE FIRST NCP @V200820 00128000
- BNZ CMDCOMP IF NONE, OUR JOB IS DONE @V200820 00129000
- NETSHUT1 EQU * QUIESCE AND DESIST @V200820 00130000
- BAL R10,NETDEAD TURN OFF THIS NCP @V200820 00131000
- BAL R10,NETFALL LOOK FOR ANOTHER ONE @V200820 00132000
- BZ NETSHUT1 TURN OFF ALL THE LIGHTS @V200820 00133000
- B CMDCOMP @V200820 00134000
- EJECT 00135000
- NETDEAD EQU * QUIESCE HOST COMMUNICATIONS @V200820 00136000
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 00137000
- BE NETLINE YES, GO DISABLE BISYNC LINE @V2D3931 00138000
- TM RDEVFLAG,RDEVRCVY IN RECOVERY PROCESS NOW ? @V200820 00139000
- BOR R10 YES - DON'T TOUCH IT @V200820 00140000
- NI RDEVSTAT,255-RDEVRSVD TURN OFF DMKRNHIN @V200820 00141000
- OI RDEVSTAT,RDEVNRDY . . . @V200820 00142000
- OI RDEVFLAG,RDEVRCVY . . . @V200820 00143000
- LH R5,RDEVMAX SETUP TO LOOP THRU NICBLOK'S @V200820 00144000
- MH R5,=AL2(NICSIZE*8) . . . @V200820 00145000
- L R7,RDEVNICL GR7 = START OF NICBLOK LIST @VM08768 00146000
- ALR R5,R7 . . . @V200820 00147000
- LA R4,NICSIZE*8 . . . @V200820 00148000
- CALL DMKQCNCL CLEAR CONTASKS FROM RDEVBLOK @V200820 00149000
- SLR R0,R0 CONSTANT @V200820 00150000
- NETFLSH EQU * CLEAR ALL ACTIVE CONTASK'S @V200820 00151000
- L R1,NICQPNT NICBLOK CHAIN OF CONTASKS @V200820 00152000
- LTR R1,R1 ARE THERE ANY ? @V200820 00153000
- BNP NETFLSN NO --- @V200820 00154000
- ST R1,RDEVCON PUT IT DOWN FOR DMKQCN @V200820 00155000
- CALL DMKQCNCL FLUSH ALL THE TASKS @V200820 00156000
- ST R0,NICQPNT CLEAR NICBLOK POINTER @V200820 00157000
- NETFLSN EQU * @V200820 00158000
- BXLE R7,R4,NETFLSH CONTINUE . . . @V200820 00159000
- SPACE 00160000
- L R7,RDEVNICL RESTART AT THE BEGINNING @V200820 00161000
- L R3,ASYSVM SYSTEM VMBLOK FOR CONVENIENCE @V200820 00162000
- NETFLSU EQU * DISCONNECT ANY ACTIVE USERS @V200820 00163000
- CL R3,NICUSER IS THERE AN ACTIVE USER ? @V200820 00164000
- BE NETFLSF NO --- @V200820 00165000
- L R1,NICUSER LOAD ADDR OF NEW VMBLOK @V407511 00166100
- SWTCHVM OPT=STAY SWITCH VMBLOK LOCKING & CHARGING @V407511 00166300
- CALL DMKQCNTO,AFFINITY DISCONNECT THIS GUY @V407511 00169100
- ST R3,NICUSER SET NICUSER TO SYSTEM VMBLOK @V200820 00170000
- NETFLSF EQU * RESET NICBLOK STATUS, FLAGS @V200820 00171000
- NI NICSTAT,NICDISA+NICEPMD+NICSWEP LEAVE THESE @V200820 00172000
- MVI NICFLAG,NICPSUP SET ONLY THIS @V200820 00173000
- BXLE R7,R4,NETFLSU CONTINUE . . . @V200820 00174000
- L R1,SAVER11 LOAD ADDR OF NEW VMBLOK @V407511 00175500
- SWTCHVM OPT=STAY SWITCH VMBLOK LOCKING & CHARGING @V407511 00176000
- NI RDEVFLAG,255-(RDEVRCVY+RDEVWAIT+RDEVSLOW) @V200820 00178000
- BR R10 RETURN INTERNALLY @V200820 00179000
- NETLINE EQU * DISABLE THE BISYNC LINE @V2D3931 00180000
- TM RDEVFLAG,RDEVENAB IS THIS LINE ENABLED ? @V2D3931 00181000
- BZR R10 NO, NOTHING TO DO @V2D3931 00182000
- TM RDEVSTAT,RDEVDED+RDEVDISA+RDEVNRDY IS LINE AVAIL@V2D3931 00183000
- BNZR R10 NO, RETURN @V2D3931 00184000
- OI RDEVFLAG,RDEVDISB SET THE DISABLE FLAG @V2D3931 00185000
- L R0,F255 SET PARM REG FOR BISYNC LINE @V2D3931 00186000
- CALL DMKRGBEN,PARM=0,AFFINITY @V407511 00187100
- BR R10 RETURN @V2D3931 00188000
- EJECT 00189000
- *. 00190000
- * SUBROUTINE NAME - 00191000
- * 00192000
- * DMKNESEP - SWITCH LINE MODE TO EMULATION MODE 00193000
- * 00194000
- * ATTRIBUTES - 00195000
- * 00196000
- * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00197000
- * 00198000
- * ENTRY CONDITIONS - 00199000
- * 00200000
- * GR13 = STANDARD SAVEAREA ADDRESS 00201000
- * GR12 = ADDRESS OF DMKNESEP 00202000
- * GR11 = VALID VMBLOK ADDRESS 00203000
- * GR 8 = RDEVBLOK ADDRESS OF THE REFERENCED 370X 00204000
- * GR 7 = NICBLOK ADDRESS FOR THE SPECIFIED RESOURCE 00205000
- * GR 1 = RESOURCE REFERENCE IN EBCDIC (4 CHARS) 00206000
- * 00207000
- * EXIT CONDITIONS - 00208000
- * 00209000
- * GR0-1,3-13 RESTORED 00210000
- * GR2 = ZERO --> SUCCESSFUL COMPLETION 00211000
- * GR2 ยฌ= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00212000
- * 00213000
- * CALLS TO OTHER ROUTINES - 00214000
- * 00215000
- * DMKRNHND - TO SCHEDULE CONTROL FUNCTIONS FOR THE 370X NCP 00216000
- * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00217000
- * DMKSCNRD - TO DETERMINE DEVICE ADDRESS FROM AN RDEVBLOK 00218000
- * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00219000
- * 00220000
- * EXTERNAL REFERENCES - NONE 00221000
- * 00222000
- * TABLES / WORK AREAS - NONE 00223000
- * 00224000
- * REGISTER USAGE - 00225000
- * 00226000
- * GR14,15 EXTERNAL LINKAGE REGISTERS 00227000
- * GR13 - SAVEAREA ADDRESSABILITY 00228000
- * GR12 - MODULE BASE ADDRESSABILITY 00229000
- * GR11 - VMBLOK ADDRESSABILITY 00230000
- * GR10 - UNUSED 00231000
- * GR 9 - PARAMETER REGISTER FOR DMKRNHND 00232000
- * GR 8 - RDEVBLOK ADDRESSABILITY 00233000
- * GR 7 - RCUBLOK AND NICBLOK ADDRESSABILITY 00234000
- * GR 0-6 WORK REGISTERS 00235000
- * 00236000
- * NOTES - NONE 00237000
- * 00238000
- EJECT 00239000
- * OPERATION - 00240000
- * 00241000
- * 1. MAKE SURE THAT THE SPECIFIED RESOURCE IS A LINE, AND 00242000
- * THAT THE LINE IS CAPABLE OF BEING SWITCHED TO EP-MODE. 00243000
- * MAKE SURE THAT THERE ARE NO ACTIVE TERMINALS WHICH 00244000
- * DEPEND ON THIS LINE RESOURCE. ERROR MESSAGES ARE 00245000
- * ISSUED IF ANY OF THE ABOVE TESTS FAIL. 00246000
- * 00247000
- * 2. IF THE NCP LINE TRACE IS ACTIVE, TERMINATE THE TRACE 00248000
- * VIA A CALL TO DMKRNHND FOR THE 'CTRMLTR' COMMAND. 00249000
- * 00250000
- * 3. PERFORM A VARY ONLINE FUNCTION FOR THE RDEVBLOK WHICH 00251000
- * REFERS TO THE EP-MODE ADDRESS OF THE LINE BEING 00252000
- * SWITCHED. THIS MAY INVOLVE USING ONE OF THE DUMMY BLOCKS 00253000
- * GENERATED BY THE 'MAXDIAL' OPERAND OF RDEVICE MACRO. 00254000
- * 00255000
- * 4. INITIALIZE THE LINE RDEVBLOK ACCORDING TO THE TERMINAL 00256000
- * TYPE (IBM1 OR TELE2), SETTING UP FOR EP-MODE USE. 00257000
- * 00258000
- * 5. SWITCH THE LINE TO EP-MODE VIA CALL DMKRNHND. 00259000
- * 00260000
- * ERROR MESSAGES - 00261000
- * 00262000
- * DMKNES006E INVALID DEVICE TYPE - XXXX 00263000
- * DMKNES049E DEV XXXX IN USE 00264000
- * DMKNES098E DEV XXXX MODE SWITCH NOT POSSIBLE 00265000
- *. 00266000
- EJECT 00267000
- DMKNESEP RELOC , NETWORK VARY EP-MODE @V250820 00268000
- ST R1,SAVEWRK9 SAVE RESOURCE I.D. IN EBCDIC @VA01918 00269000
- SPACE 00270000
- TM NICTYPE,NICLINE IS THIS A LINE RESOURCE ? @V240820 00271000
- BZ NET006R NO -- INVALID DEVICE TYPE @V240820 00272000
- TM NICSTAT,NICEPMD+NICSWEP SWITCHABLE, NCP MODE ? @V240820 00273000
- BNM NET098E NO -- CANNOT SWITCH MODE @V240820 00274000
- LR R6,R7 SAVE THE LINE NICBLOK ADDRESS @V240820 00275000
- LA R7,NICSIZE*8(0,R7) ADVANCE TO NEXT NICBLOK @V240820 00276000
- TM NICFLAG,NICSESN+NICENAB RESOURCE IN USE ? @V240820 00277000
- BNZ NET049E YES - ERROR @V240820 00278000
- OI NICSTAT,NICDISA TEMPORARILY OFFLINE @VA01918 00279000
- CHKSWCH EQU * SETUP FOR THE MODE SWITCH @V240820 00280000
- LR R7,R6 BACK TO THE LINE NICBLOK @V240820 00281000
- TM NICSTAT,NICLTRC IS LINE TRACE ACTIVE ? @V240820 00282000
- BZ MODESWT NO -- O.K. TO CONTINUE @V240820 00283000
- LR R9,R7 NICBLOK TO GR9 FOR DMKRNHND @V240820 00284000
- LA R0,CTRMLTR TERMINATE LINE TRACE @V240820 00285000
- CALL DMKRNHND,PARM=NORET . . . @VA01918 00286000
- BNZ RETCOMP BAIL OUT IN CASE OF NCP FAILURE @VA01918 00287000
- NI NICSTAT,255-NICLTRC . . . @VA01918 00288000
- MODESWT EQU * SWITCH LINE MODE TO EMULATION @V240820 00289000
- STM R7,R8,SAVEWRK3 SAVE THE NICBLOK AND RDEVBLOK @V240820 00290000
- LH R1,NICEPAD ADDRESS WHEN IN EP-MODE @V240820 00291000
- CALL DMKSCNRU SEE IF THE BLOCKS EXIST FOR IT @V240820 00292000
- BC 4+2,NET098E CHANNEL OR CTL UNIT IS MISSING @V240820 00293000
- SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00293100
- NI RCUSTAT-RCUBLOK(R7),255-RCUDISA VARY ON C.U. @V240820 00294000
- LTR R8,R8 IS THERE ALREADY AN RDEVBLOK ? @V240820 00295000
- BP SETRDEV YES - USE IT @V240820 00296000
- L R8,SAVEWRK4 370X BASE RDEVBLOK AGAIN @V240820 00297000
- ICM R15,15,RDEVEPDV TRY FOR A DYNAMIC RDEVBLOK @V240820 00298000
- BZ NET098E NOPE -- CAN'T DO IT @V240820 00299000
- MVC RDEVEPDV(4),RDEVEPDV-RDEVBLOK(R15) TAKE ONE @V240820 00300000
- LR R8,R15 WORK WITH THE DYNAMIC BLOCK NOW @V240820 00301000
- LA R5,X'00F8' CONTROL UNIT ADDRESS MASK @V240820 00302000
- NR R5,R1 DEVICE ADDRESS IS STILL IN GR1 @V240820 00303000
- SRL R5,2(0) SHIFT FOR INDEXING IN RCHCUTBL @V240820 00304000
- LH R7,RCHCUTBL-RCHBLOK(R5,R6) TRY THIS ONE @V240820 00305000
- LTR R7,R7 IS THIS THE CORRECT SLOT ? @V240820 00306000
- BNM *+8 YES - USE IT @V240820 00307000
- LH R7,RCHCUTBL-RCHBLOK-2(R5,R6) BACK UP ONE SLOT @V240820 00308000
- AL R7,ARIOCU GR7 = PHYSICAL RCUBLOK ADDRESS @V240820 00309000
- LA R5,X'000F' DEVICE ADDRESS MASK @V240820 00310000
- NR R5,R1 EXTRACT THE DEVICE ADDRESS @V240820 00311000
- STH R5,RDEVADD SET ADDRESS IN THE RDEVBLOK @V240820 00312000
- SLL R5,1(0) SHIFT FOR RCUDVTBL INDEX @V240820 00313000
- SL R15,ARIODV COMPUTE RDEVBLOK DISPLACEMENT @V240820 00314000
- SRL R15,3(0) . . .IN DOUBLE-WORDS @V240820 00315000
- STH R15,RCUDVTBL-RCUBLOK(R5,R7) CONNECT RDEVBLOK @V240820 00316000
- ST R7,RDEVCUA . . . @V240820 00317000
- SETRDEV EQU * INITIALIZE RDEVBLOK FIELDS @V240820 00318000
- MVI RDEVSTAT,X'00' COMPLETELY FREE NOW @V240820 00319000
- MVI RDEVFLAG,RDEVEPMD SWITCHED INTO EP-MODE @V240820 00320000
- MVI RDEVTYPC,CLASTERM TERMINAL-CLASS DEVICE @V240820 00321000
- XC RDEVTCTL(8),RDEVTCTL RESET CONTROL BYTES @V240820 00322000
- MVI RDEVSADN,4 DO NOT USE 'SAD' COMMANDS @V240820 00323000
- L R7,SAVEWRK3 LINE NICBLOK ADDRESS @V240820 00324000
- MVI RDEVTYPE,TYP2700 MAYBE IT'S A BISYNCH LINE @V240820 00325000
- TM NICTYPE,NICLBSC IS THAT CORRECT ? @V240820 00326000
- BO SWCHMOD YES - SWITCH THE LINE MODE @V240820 00327000
- LA R6,NICSIZE*8(0,R7) TRY THE NEXT NICBLOK @V240820 00328000
- MVI RDEVTYPE,TYPUNDEF ASSUME IBM1 ADAPTER TYPE @V240820 00329000
- MVI RDEVTMCD,RDEVPTTC . . . @V240820 00330000
- TM NICTYPE-NICBLOK(R6),NICCIBM CORRECT ? @V240820 00331000
- BO SWCHMOD YES -- @V240820 00332000
- MVI RDEVTYPE,TYPTTY MUST BE TELEGRAPH TERMINAL @V240820 00333000
- MVI RDEVTMCD,RDEVUSC8 USASCII-8 @V240820 00334000
- SWCHMOD EQU * PERFORM THE MODE SWITCH @V240820 00335000
- OI NICSTAT,NICEPMD LINE WILL BE IN EP-MODE @V240820 00336000
- LR R9,R8 SAVE THE DYNAMIC RDEVBLOK @V240820 00337000
- L R8,SAVEWRK4 370X BASE RDEVBLOK FOR DMKRNH @V240820 00338000
- CALL DMKSCNRD GET THE BASE ADDRESS IN GR1 @V240820 00339000
- STH R1,RDEVBASE-RDEVBLOK(,R9) SET RDEVBASE @V240820 00340000
- OI RDEVFLAG,RDEVEPLN 370X HAS EP-MODE LINE ACTIVE@V240820 00341000
- LA R0,CSWLMEP SWITCH LINE MODE TO EMULATION @V240820 00342000
- LR R9,R7 NICBLOK TO GR9 FOR DMKRNH @VA01918 00343000
- CALL DMKRNHND,PARM=NORET SWITCH THE LINE MODE @VA01918 00344000
- B RETCOMP RETURN TO DMKNET @VA01918 00345000
- EJECT 00346000
- *. 00347000
- * SUBROUTINE NAME - 00348000
- * 00349000
- * DMKNESWN - SWITCH LINE MODE TO NCP-MODE 00350000
- * 00351000
- * ATTRIBUTES - 00352000
- * 00353000
- * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00354000
- * 00355000
- * ENTRY CONDITIONS - 00356000
- * 00357000
- * GR13 = STANDARD SAVEAREA ADDRESS 00358000
- * GR12 = ADDRESS OF DMKNESWN 00359000
- * GR11 = VALID VMBLOK ADDRESS 00360000
- * GR 8 = ADDRESS OF THE 370X RDEVBLOK 00361000
- * GR 7 = ADDRESS OF THE SPECIFIED NICBLOK 00362000
- * GR 1 = RESOURCE REFERENCE IN EBCDIC (4 CHARS) 00363000
- * 00364000
- * EXIT CONDITIONS - 00365000
- * 00366000
- * GR 0-1,3-13 RESTORED 00367000
- * GR2 = ZERO --> SUCCESSFUL COMPLETION 00368000
- * GR2 ยฌ= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00369000
- * 00370000
- * CALLS TO OTHER ROUTINES - 00371000
- * 00372000
- * DMKRNHND - TO SCHEDULE CONTROL FUNCTIONS FOR THE 370X NCP 00373000
- * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00374000
- * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00375000
- * 00376000
- * EXTERNAL REFERENCES - NONE 00377000
- * 00378000
- * TABLES / WORK AREAS - NONE 00379000
- * 00380000
- * REGISTER USAGE - 00381000
- * 00382000
- * GR14,15 EXTERNAL LINKAGE REGISTERS 00383000
- * GR13 - SAVEAREA ADDRESSABILITY 00384000
- * GR12 - MODULE BASE ADDRESSABILITY 00385000
- * GR11 - VMBLOK ADDRESSABILITY 00386000
- * GR 8 - RDEVBLOK ADDRESSABILITY 00387000
- * GR 7 - NICBLOK AND RCUBLOK ADDRESSABILITY 00388000
- * GR0-6,9 WORK REGISTERS 00389000
- * 00390000
- * NOTES - NONE 00391000
- * 00392000
- EJECT 00393000
- * OPERATION - 00394000
- * 00395000
- * 1. MAKE SURE THAT THE SPECIFIED RESOURCE IS A LINE, AND 00396000
- * THAT IT IS SWITCHABLE, AND IN EP-MODE AT THE MOMENT. 00397000
- * MAKE SURE THAT THE EP-MODE LINE IS NOT IN USE. 00398000
- * 00399000
- * 2. SWITCH THE LINE BACK TO NCP-MODE VIA CALL DMKRNHND. 00400000
- * 00401000
- * 3. IF THE RDEVBLOK IN EP-MODE WAS DYNAMICALLY ASSIGNED, 00402000
- * RETURN THE RDEVBLOK TO THE CHAIN OF DUMMY BLOCKS. 00403000
- * 00404000
- * ERROR MESSAGES - 00405000
- * 00406000
- * DMKNES006E INVALID DEVICE TYPE - XXXX 00407000
- * DMKNES049E DEV XXXX IN USE 00408000
- * DMKNES098E DEV XXXX MODE SWITCH NOT POSSIBLE 00409000
- *. 00410000
- EJECT 00411000
- DMKNESWN RELOC , NETWORK VARY NCP-MODE @V250820 00412000
- ST R1,SAVEWRK9 SAVE RESOURCE I.D. IN EBCDIC @VA01918 00413000
- SPACE 00414000
- TM NICTYPE,NICLINE IS THIS A LINE RESOURCE ? @V240820 00415000
- BZ NET006R NO -- CANNOT SWITCH IT @V240820 00416000
- TM NICSTAT,NICEPMD+NICSWEP SWITCHABLE, EP-MODE ? @V240820 00417000
- BNO NET098E NO -- ERROR @V240820 00418000
- STM R7,R8,SAVEWRK3 SAVE NICBLOK AND BASE RDEVBLOK @V240820 00419000
- LH R1,NICEPAD EMULATION SUB-CHANNEL ADDRESS @V240820 00420000
- CALL DMKSCNRU FIND THE REAL DEVICE BLOCKS @V240820 00421000
- BNZ NET098E NOT THERE - CANNOT SWITCH IT @V240820 00422000
- SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00422100
- TM RDEVFLAG,RDEVENAB IS THE EP-MODE LINE ENABLED @V240820 00423000
- BO NET049E YES - LINE IS IN USE @V240820 00424000
- TM RDEVSTAT,RDEVDED+RDEVIRM CHECK AGAIN @V240820 00425000
- BNZ NET049E YUP - IN USE @V240820 00426000
- OI RDEVSTAT,RDEVDISA VARY IT OFFLINE @V240820 00427000
- L R9,SAVEWRK3 NICBLOK TO GR9 FOR DMKRNHND @V240820 00428000
- ST R8,SAVEWRK3 SAVE THE RDEVBLOK ADDRESS @V240820 00429000
- L R8,SAVEWRK4 BASE RDEVBLOK TO GR8 @V240820 00430000
- LA R0,CSWLNCP SWITCH LINE MODE TO THE NCP @V240820 00431000
- CALL DMKRNHND,PARM=NORET,AFFINITY ... @V407511 00432100
- LR R7,R9 NICBLOK TO GR7 AGAIN @V240820 00433000
- NI NICSTAT,255-NICEPMD NO LONGER IN EP-MODE @V240820 00434000
- LA R7,NICSIZE*8(0,R7) POINT TO TERMINAL NICBLOK @VA01918 00435000
- NI NICSTAT,255-NICDISA VARY IT BACK ONLINE @VA01918 00436000
- L R8,SAVEWRK3 LINE RDEVBLOK AGAIN @V240820 00437000
- TM RDEVFLAG,RDEVEPMD WAS THE RDEVBLOK SWITCHED ? @V240820 00438000
- BZ RETCOMP NO -- JUST RETURN @VA01918 00439000
- L R7,RDEVCUA PHYSICAL CONTROL UNIT ADDRESS @V240820 00440000
- LH R1,RDEVADD DEVICE ADDRESS BY ITSELF @V240820 00441000
- SLL R1,1(0) SHIFT FOR RCUDVTBL INDEX @V240820 00442000
- L R2,FFS X'FFFFFFFF' @V240820 00443000
- STH R2,RCUDVTBL-RCUBLOK(R1,R7) DETACH RDEVBLOK @V240820 00444000
- STH R2,RDEVADD . . . @V240820 00445000
- L R7,SAVEWRK4 BASE RDEVBLOK TO GR7 @V240820 00446000
- L R6,RDEVEPDV-RDEVBLOK(,R7) START OF CHAIN @V240820 00447000
- ST R8,RDEVEPDV-RDEVBLOK(,R7) ADD THIS ONE @V240820 00448000
- ST R6,RDEVEPDV . . . @V240820 00449000
- B RETCOMP CONTINUE VARY IN DMKNET @VA01918 00450000
- EJECT 00451000
- *. 00452000
- * SUBROUTINE NAME - 00453000
- * 00454000
- * DMKNESDS - PROCESS NETWORK DISPLAY COMMAND OPTION 00455000
- * 00456000
- * ATTRIBUTES - 00457000
- * 00458000
- * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00459000
- * 00460000
- * ENTRY CONDITIONS - 00461000
- * 00462000
- * GR13 = STANDARD SAVEAREA ADDRESS 00463000
- * GR12 = ADDRESS OF DMKNESDS 00464000
- * GR11 = VALID VMBLOK ADDRESS 00465000
- * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00466000
- * 00467000
- * EXIT CONDITIONS - 00468000
- * 00469000
- * GR0-1,3-13 RESTORED 00470000
- * GR2 = ZERO --> COMPLETED SUCCESSFULLY 00471000
- * GR2 ยฌ= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00472000
- * 00473000
- * CALLS TO OTHER ROUTINES - 00474000
- * 00475000
- * DMKSCNFD - TO LOCATE COMMAND-LINE OPERANDS 00476000
- * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00477000
- * DMKCVTHB - TO CONVERT HEXADECIMAL TO BINARY VALUES 00478000
- * DMKCVTBH - TO CONVERT BINARY DATA FOR OUTPUT 00479000
- * DMKRNHND - TO READ 370X STORAGE VIA CONTROL COMMAND 00480000
- * DMKQCNWT - TO TYPE OUT 370X STORAGE CONTENTS 00481000
- * 00482000
- * EXTERNAL REFERENCES - NONE 00483000
- * 00484000
- * TABLES / WORK AREAS - NONE 00485000
- * 00486000
- * REGISTER USAGE - 00487000
- * 00488000
- * GR14-15 EXTERNAL LINKAGE REGISTERS 00489000
- * GR13 - SAVEAREA ADDRESSABILITY 00490000
- * GR12 - MODULE BASE ADDRESSABILITY 00491000
- * GR11 - VMBLOK ADDRESSABILITY 00492000
- * GR10 - BUFFER INDEX FOR BINARY DATA TO BE TYPED 00493000
- * GR 9 - PARM REG FOR DMKRNHND, OUTPUT BUFFER ADDRESS 00494000
- * GR 8 - RDEVBLOK ADDRESSABILITY 00495000
- * GR 7 - BUFFER INDEX FOR OUTPUT BUFFER FORMATTING 00496000
- * GR 6 - ADDRESSABILITY TO BUFFER FROM DMKRNHND 00497000
- * GR 4-5 DISPLAY ADDRESS CONTROL REGISTERS 00498000
- * GR 0-3 WORK REGISTERS 00499000
- * 00500000
- * NOTES - NONE 00501000
- * 00502000
- EJECT 00503000
- * OPERATION - 00504000
- * 00505000
- * 1. SCAN AND INTERPRET THE COMMAND LINE TO DETERMINE 00506000
- * WHICH 370X IS TO BE REFERENCED, AND WHICH ADDRESSES 00507000
- * ARE TO BE DISPLAYED. MAKE SURE THAT THE SPECIFIED 370X 00508000
- * HAS AN ACTIVE NETWORK CONTROL PROGRAM (OR PEP). 00509000
- * 00510000
- * 2. RETRIEVE THE REQUESTED DATA 32 BYTES AT A TIME VIA 00511000
- * CALLS TO DMKRNHND WITH THE 'DISPLAY STORAGE' COMMAND. 00512000
- * 00513000
- * 3. FORMAT THE DATA IN HEXADECIMAL FOR TYPING VIA CALLS 00514000
- * TO DMKQCNWT. STOP PROCESSING IF THE USER HITS THE 00515000
- * 'ATTN' KEY, OR IF AN ERROR IS RECEIVED FROM THE NCP. 00516000
- * 00517000
- * RESPONSES - 00518000
- * 00519000
- * ADDRES DATADATA DATADATA DATADATA DATADATA 00520000
- * 00521000
- * ERROR MESSAGES - 00522000
- * 00523000
- * DMKNES021E RADDR MISSING OR INVALID 00524000
- * DMKNES004E HEXLOC MISSING OR INVALID 00525000
- * DMKNES040E DEV XXX DOES NOT EXIST 00526000
- * DMKNES006E INVALID DEVICE TYPE - XXX 00527000
- * DMKNES046E CTLR XXX OFFLINE 00528000
- * DMKNES140E CTLR XXX ATTACHED TO USERIDXX 00529000
- * DMKNES009E INVALID RANGE - RANGE 00530000
- * DMKNES160E HEXLOC XXXXXX EXCEEDS STORAGE 00531000
- *. 00532000
- EJECT 00533000
- DMKNESDS RELOC , NETWORK DISPLAY - 370X STORAGE @V250820 00534000
- MVI SAVEWRK1,X'00' CLEAR FLAG FIELD @V2D3931 00535000
- SPACE 00536000
- CALL DMKSCNFD LOCATE THE RADDR OPERAND @V200820 00537000
- BNZ NET021E MISSING OR INVALID @V200820 00538000
- BAL R10,GETRDEV FIND AND VALIDATE THE RDEVBLOK @V240820 00539000
- SLR R1,R1 COMPUTE STORAGE SIZE OF THIS 370X@V200820 00540000
- IC R1,RDEVMDL MODEL NUMBER 1 - 8 @V200820 00541000
- SLL R1,14(0) MODEL TIMES 16K = STORAGE SIZE @V240820 00542000
- ST R1,SAVEWRK9 PUT IT DOWN FOR LATER @V200820 00543000
- CALL DMKSCNFD FIND THE STORAGE ADDRESS @V200820 00544000
- BNZ NET033E HEXLOC MISSING @V200820 00545000
- STM R0,R1,SAVEWRK2 SAVE THE FIRST SCAN RESULTS @V200820 00546000
- LR R3,R1 @V200820 00547000
- LR R2,R0 @V200820 00548000
- HEXSCAN EQU * SCAN FOR IMBEDDED DELIMITER @V200820 00549000
- MVI SAVEWRK1,DSPRANG ASSUME A RANGE FORMAT @V200820 00550000
- CLI 0(R1),C'-' CHECK FOR VALID DELIMITERS @V200820 00551000
- BE HEXDASH @V200820 00552000
- CLI 0(R1),C':' . . . @V200820 00553000
- BE HEXDASH @V200820 00554000
- MVI SAVEWRK1,DSPLNTH SHOW LENGTH SPECIFICATION @V200820 00555000
- CLI 0(R1),C'.' . . . @V200820 00556000
- BE HEXDASH @V200820 00557000
- LA R1,1(0,R1) NEXT CHARACTER @V200820 00558000
- BCT R0,HEXSCAN . . . @V200820 00559000
- MVI SAVEWRK1,DSPSCAN CALL TO DMKSCNFD NEEDED @V200820 00560000
- HEXDASH EQU * @V200820 00561000
- STH R0,SAVEWRK1+2 SAVE RESIDUAL LENGTH @V200820 00562000
- ST R1,SAVEWRK4 AND THE RESIDUAL ADDRESS @V200820 00563000
- SR R1,R3 R1 = LENGTH OF FIRST HEXLOC @V200820 00564000
- BNP NET004E INVALID IF NOT SOMETHING @V200820 00565000
- LR R0,R1 LENGTH TO GR0 @V200820 00566000
- LR R1,R3 START ADDRESS TO GR1 @V200820 00567000
- CALL DMKCVTHB ATTEMPT CONVERSION @V200820 00568000
- BNZ NET004E @V200820 00569000
- LR R4,R1 SAVE STARTING ADDRESS @V200820 00570000
- N R4,=F'-4' ROUND DOWN TO A FULL-WORD @V200820 00571000
- CL R4,SAVEWRK9 WITHIN BOUNDS OF 370X STORAGE ? @V200820 00572000
- BL HEXLOC1 YES -- @V200820 00573000
- L R2,SAVEWRK4 RESIDUAL ADDRESS FROM SCAN @V200820 00574000
- SR R2,R3 GR2 = LENGTH OF INVALID FIELD @V200820 00575000
- B NET160E @V200820 00576000
- SPACE 2 00577000
- HEXLOC1 EQU * CHECK FOR NEXT HALF OF RANGE @V200820 00578000
- LR R5,R4 DEFAULT ENDING = START ADDRESS @V200820 00579000
- LH R0,SAVEWRK1+2 RESIDUAL SCAN COUNT @V200820 00580000
- L R1,SAVEWRK4 ...AND ADDRESS @V200820 00581000
- CLI SAVEWRK1,DSPSCAN NEED TO CALL DMKSCNFD ? @V200820 00582000
- BNE HEXLOC2 NO -- @V200820 00583000
- CALL DMKSCNFD TRY TO FIND THE DELIMITER @V200820 00584000
- BNZ HEXLOCK NOPE - SINGLE ADDRESS @V200820 00585000
- MVI SAVEWRK1,DSPRANG ASSUME RANGE FORMAT @V200820 00586000
- CLI 0(R1),C'-' @V200820 00587000
- BE HEXLOC2 @V200820 00588000
- CLI 0(R1),C':' @V200820 00589000
- BE HEXLOC2 @V200820 00590000
- MVI SAVEWRK1,DSPLNTH MUST BE LENGTH FORMAT @V200820 00591000
- CLI 0(R1),C'.' @V200820 00592000
- BNE NET002E NOPE - INVALID OPERAND @V200820 00593000
- HEXLOC2 EQU * @V200820 00594000
- LA R1,1(0,R1) SKIP OVER THE DELIMITER @V200820 00595000
- LR R7,R1 SAVE LAST UN-SCANNED ADDRESS@V200820 00596000
- AR R7,R0 . . . @V200820 00597000
- ST R7,SAVEWRK4 . . . @V200820 00598000
- BCT R0,HEXLOC3 DECREMENT AND TEST COUNT @V200820 00599000
- CALL DMKSCNFD LOOK FOR SECOND RANGE OPERAND @V200820 00600000
- BNZ HEXLOC4 NOPE - DEFAULT TO END OF STORAGE @V200820 00601000
- HEXLOC3 EQU * @V200820 00602000
- CL R0,F3 MIGHT IT BE 'END' OPTION ? @V200820 00603000
- BNE HEXLOC5 NO -- TRY TO CONVERT IT @V200820 00604000
- CLC 0(3,R1),=C'END ' . . . @V200820 00605000
- BNE HEXLOC5 NO -- @V200820 00606000
- HEXLOC4 EQU * DEFAULT TO END OF 370X STORAGE @V200820 00607000
- L R5,SAVEWRK9 END OF STORAGE ADDRESS @V200820 00608000
- B HEXLOCD GO START THE DISPLAY @V200820 00609000
- SPACE 2 00610000
- * BITS DEFINED IN SAVEWRK1 FOR NETWORK DISPLAY: 00611000
- DSPRANG EQU X'80' DISPLAY - RANGE SPECIFIED @V200820 00612000
- DSPLNTH EQU X'40' DISPLAY - LENGTH SPECIFIED @V200820 00613000
- DSPSCAN EQU X'20' DISPLAY - CALL DMKSCNFD NEEDED @V200820 00614000
- DSPFRET EQU X'10' BTU BUFFER TO BE RELEASED @VA01893 00615000
- SPACE 1 00616000
- * BITS DEFINED IN SAVEWRK1 FOR 3270 REMOTE SUPPORT 00617000
- SHUT EQU X'01' PROCESS 3270 REMOTE SUPPORT @V2D3931 00618000
- POLLDLY EQU X'03' PROCESS POLLDLAY SUB-COMMAND @VM01029 00619000
- EJECT 00620000
- HEXLOC5 EQU * SETUP FOR SECOND PART OF RANGE @V200820 00621000
- LR R2,R0 SAVE THE LENGTH @V200820 00622000
- LR R3,R1 ...AND ADDRESS @V200820 00623000
- LA R7,0(R2,R3) GR7 = LAST UNSCANNED BYTE @V200820 00624000
- ST R7,SAVEWRK4 @V200820 00625000
- CALL DMKCVTHB TRY TO CONVERT @V200820 00626000
- BNZ NET004E NO GOOD @V200820 00627000
- S R1,F1 SUBTRACT 1 FROM LENGTH @VA02255 00628000
- BM NET004E MUST HAVE BEEN LENGTH OF ZERO!! @VA02255 00629000
- A R1,F1 RESTORE IT. @VA02255 00630000
- LR R5,R1 ENDING ADDRESS TO GR5 @V200820 00631000
- CL R5,SAVEWRK9 VALID ADDRESS ? @V200820 00632000
- BH NET160E NO -- @V200820 00633000
- TM SAVEWRK1,DSPLNTH IS IT REALLY A LENGTH ? @V200820 00634000
- BZ HEXLOCK NO -- ALL SET AS IS @V200820 00635000
- LA R5,0(R4,R5) ADD TO STARTING ADDRESS @V200820 00636000
- CL R5,SAVEWRK9 MAKE SURE THE LENGTH WAS O.K. @V200820 00637000
- BNH HEXLOCD YES -- START DISPLAY @VM01080 00638000
- LA R4,8(0,R5) FORCE AN INVALID RANGE @VM01080 00639000
- SPACE 00640000
- HEXLOCK EQU * VALIDATE THE SPECIFIED RANGE @V200820 00641000
- L R0,SAVEWRK4 SETUP IN CASE OF ERROR @V200820 00642000
- L R1,SAVEWRK3 @V200820 00643000
- SR R0,R1 LENGTH OF RANGE, INCLUDING BLANKS@V200820 00644000
- CLR R5,R4 IS THIS A VALID RANGE ? @V200820 00645000
- BL NET009E NO -- @V200820 00646000
- HEXLOCD EQU * START OF DISPLAY ROUTINE @V200820 00647000
- BCTR R5,0 DECREMENT END FOR TESTING @V200820 00648000
- LA R0,6 GET A DISPLAY BUFFER @V200820 00649000
- CALL DMKFREE @V200820 00650000
- LR R9,R1 ADDRESS VIA GR9 @V200820 00651000
- ST R9,SAVEWRK8 SAVE BUFFER ADDRESS HERE, ALSO @V240820 00652000
- HEXLOCW EQU * DISPLAY 16 BYTES OF 370X STORAGE @V200820 00653000
- L R9,RDEVNICL GR9 = ADDRESS OF BASE NICBLOK @V240820 00654000
- ST R4,SAVEWRK4 DISPLAY ADDRESS INTO SAVEAREA @V240820 00655000
- L R1,SAVEWRK9 END OF STORAGE TO GR1 @VA02195 00656000
- SR R1,R4 SEE IF WE ARE CLOSE TO THE END @VA02195 00657000
- CH R1,=H'32' WITHIN 32 BYTES OF THE END ? @VA02195 00658000
- BNL *+8 NO -- EVERYTHING'S O.K. @VA02195 00659000
- NI SAVEWRK4+3,X'E0' FORCE DOWN TO 32-BYTE BND @VA02195 00660000
- LA R1,SAVEWRK4 GR1 = ADDRESS OF BTU DATA FIELD @V240820 00661000
- LA R0,CDISPLY GR0 = DISPLAY STORAGE COMMAND @V240820 00662000
- CALL DMKRNHND,PARM=4(0) GR2 = DATA FIELD LENGTH @V240820 00663000
- LR R6,R1 SAVE RETURNED BTU ADDRESS @V200820 00664000
- CH R2,=H'12' 370X FAILURE ? @V200820 00665000
- BE HEXFRTX YES - QUIT RAPIDLY @V200820 00666000
- USING CONCCW3,R6 @V200820 00667000
- OI SAVEWRK1,DSPFRET BUFFER MUST BE RELEASED @VA01893 00668000
- CLI CONSYSR,X'60' COMPLETE WITHOUT ERROR ? @V200820 00669000
- BNE HEXFRTX NO -- BAIL OUT RIGHT AWAY @VA01893 00670000
- SPACE 00671000
- LR R10,R4 NEXT DISPLAY ADDRESS TO GR10 @VA02195 00672000
- SL R10,SAVEWRK4 COMPUTE BUFFER INDEX @VA02195 00673000
- HEXLOCT EQU * EDIT DATA FOR OUTPUT @V200820 00674000
- L R9,SAVEWRK8 POINTER TO THE DISPLAY BUFFER @VM01080 00675000
- MVC 0(8,R9),BLANKS CLEAR THE BUFFER @VM01080 00676000
- MVC 8(5*8,R9),0(R9) . . . @VM01080 00677000
- LR R1,R4 GR4 = START ADDR FOR THIS LINE @VA02195 00678000
- CALL DMKCVTBH CONVERT ADDRESS TO EBCDIC @V200820 00679000
- STH R0,0(0,R9) USE SIX BYTES FOR ADDRESS @V200820 00680000
- STCM R1,15,2(R9) @V200820 00681000
- LA R7,10(0,R9) FIRST DATA WORD SLOT @V200820 00682000
- LA R3,4(0,0) NUMBER OF TIMES THROUGH LOOP @V200820 00683000
- HEXLOCE EQU * @V200820 00684000
- L R1,CONDATA+4(R10) NEXT DATA WORD @V200820 00685000
- CALL DMKCVTBH @V200820 00686000
- STCM R0,15,0(R7) @V200820 00687000
- STCM R1,15,4(R7) @V200820 00688000
- LA R4,4(0,R4) NEXT STORAGE ADDRESS @V200820 00689000
- LA R7,10(0,R7) NEXT OUTPUT SLOT @V200820 00690000
- CR R4,R5 HAVE WE HIT THE END YET ? @V200820 00691000
- BH HEXLOCC YES - CLEAN UP AND GET OUT @V200820 00692000
- LA R10,4(0,R10) NEXT RETURNED DATA WORD @V200820 00693000
- BCT R3,HEXLOCE @V200820 00694000
- SPACE 00695000
- HEXLOCC EQU * WRITE ONE CONSOLE LINE @V200820 00696000
- LA R0,6*8 LENGTH FOR WRITE @V200820 00697000
- LR R1,R9 START ADDRESS @V200820 00698000
- CALL DMKQCNWT,PARM=0 WAIT FOR THE RESPONSE @V200820 00699000
- BNZ HEXFRTX SOMETHING WRONG - QUIT NOW @V200820 00700000
- CR R4,R5 WAS THAT THE LAST ONE ? @V200820 00701000
- BNL HEXFRTX YES -- RELEASE BUFFERS + EXIT @VA01893 00702000
- CH R10,=H'32' ANY MORE IN THIS BUFFER ? @VA02195 00703000
- BL HEXLOCT YES -- FORMAT ANOTHER LINE @VA02195 00704000
- LH R0,CONCCW3 SIZE OF THE BTU BUFFER @VA01893 00705000
- LR R1,R6 . . . @VA01893 00706000
- CALL DMKFRET RELEASE THIS BTU @VA01893 00707000
- NI SAVEWRK1,255-DSPFRET . . . @VA01893 00708000
- B HEXLOCW GO GET SOME MORE DATA @VA01893 00709000
- EJECT 00710000
- HEXFRTX EQU * CLEAN UP AND EXIT TO DMKCFM @V200820 00711000
- L R1,SAVEWRK8 ADDRESS OF THE DISPLAY BUFFER @V240820 00712000
- LA R0,6 @V200820 00713000
- CALL DMKFRET RELEASE THE DISPLAY BUFFER @V200820 00714000
- SPACE 00715000
- TM SAVEWRK1,DSPFRET BTU BUFFER TO BE RELEASED ? @VA01893 00716000
- BZ RETCOMP NOPE - ALL FINISHED @VA01893 00717000
- LH R0,CONCCW3 SIZE OF THE BUFFER @VA01893 00718000
- LR R1,R6 . . . @VA01893 00719000
- CALL DMKFRET RETURN IT TO FREE STORAGE @VA01893 00720000
- B RETCOMP COMMAND IS COMPLETE - NO MSG @V200820 00721000
- DROP R6 @VA01893 00722000
- EJECT 00723000
- *. 00724000
- * SUBROUTINE NAME - 00725000
- * 00726000
- * DMKNESTR - PROCESS THE 'NETWORK TRACE' COMMAND OPTIONS 00727000
- * 00728000
- * ATTRIBUTES - 00729000
- * 00730000
- * SERIALLY REUSEABLE, PAGEABLE, CALLED VIA SVC FROM DMKNET 00731000
- * 00732000
- * ENTRY CONDITIONS - 00733000
- * 00734000
- * GR13 = STANDARD SAVEAREA ADDRESS 00735000
- * GR12 = ADDRESS OF DMKNESTR 00736000
- * GR11 = VALID VMBLOK ADDRESS 00737000
- * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00738000
- * 00739000
- * EXIT CONDITIONS - 00740000
- * 00741000
- * GR0-1,3-13 RESTORED 00742000
- * GR2 = ZERO --> SUCCESSFUL COMPLETION 00743000
- * GR2 ยฌ= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00744000
- * 00745000
- * CALLS TO OTHER ROUTINES - 00746000
- * 00747000
- * DMKSCNFD - TO LOCATE COMMAND-LINE OPERANDS 00748000
- * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00749000
- * DMKCVTHB - TO CONVERT HEXADECIMAL FIELDS TO BINARY 00750000
- * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00751000
- * DMKQCNWT - TO WRITE COMPLETION RESPONSE 00752000
- * 00753000
- * EXTERNAL REFERENCES - 00754000
- * 00755000
- * DMKRIORN - TABLE OF 370X INTERFACES IN DMKRIO 00756000
- * DMKRNHTR - HOLD FIELD FOR TRACE USERID IN DMKRNH 00757000
- * 00758000
- * TABLES / WORK AREAS - NONE 00759000
- * 00760000
- * REGISTER USAGE - 00761000
- * 00762000
- * GR14-15 EXTERNAL LINKAGE REGISTERS 00763000
- * GR13 - SAVEAREA ADDRESSABILITY 00764000
- * GR12 - MODULE BASE ADDRESSABILITY 00765000
- * GR11 - VMBLOK ADDRESSABILITY 00766000
- * GR10 - INTERNAL LINKAGE REGISTER 00767000
- * GR 9 - CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00768000
- * GR 8 - RDEVBLOK ADDRESSABILITY 00769000
- * GR 7 - NICBLOK ADDRESSABILITY 00770000
- * GR 0-6 WORK REGISTERS 00771000
- * 00772000
- * NOTES - NONE 00773000
- * 00774000
- EJECT 00775000
- * OPERATION - 00776000
- * 00777000
- * 1. VALIDATE THE SPECIFIED OPTION. IF TRACE IS ALREADY 00778000
- * ACTIVE, MAKE SURE THIS IS THE SAME USER WHO PREVIOUSLY 00779000
- * ISSUED THE NETWORK TRACE COMMAND(S). 00780000
- * 00781000
- * 2. IF 'END' SPECIFIED, TERMINATE TRACING BY MOVING 00782000
- * BLANKS INTO 'DMKRNHTR' - DMKRNH WILL STOP TRACING LATER 00783000
- * 00784000
- * 3. IF 'BTU' TRACE REQUESTED, TURN ON 'RDEVTBTU' IN THE 00785000
- * 370X RDEVBLOK, MOVE THE USERID INTO DMKRNHTR. 00786000
- * 00787000
- * 4. IF LINE TRACE REQUESTED, FILL IN DMKRNHTR, THEN START 00788000
- * THE TRACE VIA A CALL TO DMKRNHND FOR 'CACTLTR' COMMAND. 00789000
- * 00790000
- * RESPONSES - 00791000
- * 00792000
- * TRACE STARTED - FOR NETWORK TRACE BTU OR RESOURCE 00793000
- * COMMAND COMPLETE - FOR NETWORK TRACE END 00794000
- * 00795000
- * ERROR MESSAGES - 00796000
- * 00797000
- * DMKNES006E INVALID DEVICE TYPE - XXX 00798000
- * DMKNES026E OPERAND MISSING OR INVALID 00799000
- * DMKNES021E RADDR MISSING OR INVALID 00800000
- * DMKNES040E DEV XXX DOES NOT EXIST 00801000
- * DMKNES046E DEV XXX OFFLINE 00802000
- * DMKNES140E CTLR XXX ATTACHED TO USERIDXX 00803000
- * DMKNES002E INVALID OPERAND - OPERAND 00804000
- * DMKNES049E DEV XXXX IN USE 00805000
- * DMKNES175E NETWORK TRACE ALREADY IN USE BY USERIDXX 00806000
- *. 00807000
- EJECT 00808000
- DMKNESTR RELOC , NETWORK TRACE BTU RADDR @V250820 00809000
- MVI SAVEWRK1,X'00' CLEAR FLAG FIELD @V2D3931 00810000
- SPACE 00811000
- CALL DMKSCNFD LOCATE THE SECOND PARM @V200820 00812000
- BNZ NET026E IT IS A REQUIRED OPERAND @V200820 00813000
- L R4,=A(DMKRNHTR) HOLD FIELD FOR TRACE USERID @V200820 00814000
- CLC 0(8,R4),BLANKS IN USE AT ALL ? @V200820 00815000
- BE NETRA01A NO -- O.K. @V200820 00816000
- CLC 0(8,R4),VMUSER IN USE BY SOMEONE ELSE ? @V200820 00817000
- BNE NET175E YES -- ERROR @V200820 00818000
- NETRA01A EQU * @V200820 00819000
- CL R0,F3 PARM LONGER THAN 'BTU' ? @V200820 00820000
- BNE NETRA02 YES -- CHECK FOR RESOURCE I.D. @V200820 00821000
- CLC 0(3,R1),=C'BTU ' BTU TRACE REQUEST ? @V200820 00822000
- BNE NETRA01 NO -- CHECK FOR TRACE END @VM01006 00823000
- CALL DMKSCNFD SCAN FOR THE DEVICE ADDRESS @V200820 00824000
- BNZ NET021E RADDR MISSING OR INVALID @V200820 00825000
- BAL R10,GETRDEV FIND AND VALIDATE THE RDEVBLOK @V240820 00826000
- L R4,=A(DMKRNHTR) HOLD FIELD FOR TRACE USERID @V200820 00827000
- MVC 0(8,R4),VMUSER TRACE FOR THIS USER @V200820 00828000
- SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00828100
- OI RDEVFLAG,RDEVTBTU TURN ON BTU TRACING @V200820 00829000
- B NETRAST GIVE VERIFICATION MESSAGE @V200820 00830000
- SPACE 00831000
- NETRA01 EQU * CHECK FOR TRACE TERMINATION @VM01006 00832000
- CLC 0(3,R1),=C'END ' TERMINATION REQUEST ? @VM01006 00833000
- BNE NET002E NO -- INVALID OPERAND @VM01006 00834000
- MVC 0(8,R4),BLANKS CLEAR OUT USERID (DMKRNHTR) @VM01006 00835000
- B CMDCOMP COMMAND IS COMPLETE @VM01006 00836000
- EJECT 00837000
- NETRA02 EQU * MAYBE 'TRACE RESOURCE' FORM @V200820 00838000
- BAL R10,SCANCVT VALIDATE R.I.D. AND GET NICBLOK @V200820 00839000
- TM NICTYPE,NICLINE IS THIS A LINE ? @V200820 00840000
- BZ NET006R NO -- NOT VALID FOR TERMINAL@V200820 00841000
- TM NICSTAT,NICEPMD IN EMULATOR MODE ? @V200820 00842000
- BO NET049E YES - CALL IT IN USE @V200820 00843000
- TM NICSTAT,NICDISA IS THE LINE ACTIVE ? @VM01011 00844000
- BO NET046R NO -- CAN'T USE LINE TRACE @VM01011 00845000
- TM NICSTAT,NICLTRC IS TRACE ALREADY ACTIVE ? @V200820 00846000
- BO RETCOMP YES - JUST EXIT @V200820 00847000
- OI NICSTAT,NICLTRC LINE TRACE IS ACTIVE @V200820 00848000
- L R4,=A(DMKRNHTR) HOLD FIELD FOR TRACE USERID @V200820 00849000
- MVC 0(8,R4),VMUSER TRACE FOR THIS USER @V200820 00850000
- LA R0,CACTLTR ACTIVATE LINE TRACE @V200820 00851000
- LA R1,F4+3 TIME INTERVAL = 0.4 SECONDS @VM01016 00852000
- LR R9,R7 NICBLOK TO GR9 FOR DMKRNHND @VM01016 00853000
- CALL DMKRNHND,PARM=NORET+1 DATA LENGTH = ONE BYTE @VM01016 00854000
- NETRAST EQU * MESSAGE AT END OF COMMAND @V200820 00855000
- MSG 'TRACE STARTED' @V200820 00856000
- CALL DMKQCNWT,PARM=NORET @V200820 00857000
- B RETCOMP RETURN TO DMKCFM @V200820 00858000
- EJECT 00859000
- *. 00860000
- * SUBROUTINE NAME - 00861000
- * 00862000
- * DMKNESPL - PROCESS THE 'NETWORK POLLDLAY' COMMAND 00863000
- * 00864000
- * ATTRIBUTES - 00865000
- * 00866000
- * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00867000
- * 00868000
- * ENTRY CONDITIONS - 00869000
- * 00870000
- * GR13 = STANDARD SAVEAREA ADDRESS 00871000
- * GR12 = ADDRESS OF DMKNESHD 00872000
- * GR11 = VALID VMBLOK ADDRESS 00873000
- * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00874000
- * 00875000
- * EXIT CONDITIONS - 00876000
- * 00877000
- * GR0-1, 3-13 RESTORED 00878000
- * GR2 = ZERO --> SUCCESSFULL EXECUTION 00879000
- * GR2 ยฌ= ZERO -> ERROR MESSAGE HAS BEEN ISSUED 00880000
- * 00881000
- * CALLS TO OTHER ROUTINES - 00882000
- * 00883000
- * DMKSCNFD - TO LOCATE COMMAND OPERANDS 00884000
- * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00885000
- * DMKCVTDB - TO CONVERT DECIMAL TO BINARY 00886000
- * 00887000
- * EXTERNAL REFERENCES - 00888000
- * 00889000
- * DMKRIORN - TABLE OF 3270 REMOTE BISYNC LINES IN DMKRIO 00890000
- * 00891000
- * TABLES / WORK AREAS - NONE 00892000
- * 00893000
- * REGISTER USAGE - 00894000
- * 00895000
- * GR14-15 EXTERNAL LINKAGE REGISTERS 00896000
- * GR13 - SAVEAREA ADDRESSABILITY 00897000
- * GR12 - MODULE BASE ADDRESSABILITY 00898000
- * GR11 - VMBLOK ADDRESSABILITY 00899000
- * GR10 - INTERNAL LINKAGE REGISTER 00900000
- * GR 9 - COMMAND BUFFER ADDRESSABILITY 00901000
- * GR 8 - RDEVBLOK ADDRESSABILITY 00902000
- * GR 7 - NICBLOK ADDRESSABILITY 00903000
- * GR 0-6 WORK REGISTERS 00904000
- * 00905000
- * NOTES - NONE 00906000
- * 00907000
- * OPERATION - 00908000
- * 00909000
- * 1. VALIDATE THE OPERAND SPECIFIED. IF NONE, ASSUME 'ALL'. 00910000
- * DMKQCNTO. MARK THE 370X AS FREE. 00911000
- * 00912000
- * RESPONSES - 00913000
- * 00914000
- * COMMAND COMPLETE 00915000
- * 00916000
- * ERROR MESSAGES - 00917000
- * 00918000
- * DMKNES002E INVALID OPERAND - OPERAND 00919000
- * DMKNES006E INVALID DEVICE TYPE - XXX 00920000
- * DMKNES021E RADDR MISSING OR INVALID 00921000
- * DMKNES040E DEV XXX DOES NOT EXIST 00922000
- * DMKNES046E LINE XXX OFFLINE 00923000
- * DMKNES706E LINE XXX NOT ENABLED 00924000
- *. 00925000
- SPACE 2 00926000
- DMKNESPL RELOC , NETWORK POLLDLAY NNNN RADDR @V2D3931 00927000
- MVI SAVEWRK1,POLLDLY SET INDICATOR FOR POLL DELAY @VM01029 00928000
- CALL DMKSCNFD WAS AN INTERVAL TIME SPECIFIED @V2D3931 00929000
- BNZ NET026E IT IS A REQUIRED OPERAND @V2D3931 00930000
- CL R0,F4 MUST BE LESS THAN FIVE CHARS @V2D3931 00931000
- BH NET002E NO, INVALID OPERAND @V2D3931 00932000
- STM R0,R1,SAVEWRK2 SAVE PARAMETER REGISTERS @V2D3931 00933000
- CALL DMKCVTDB CONVERT DECIMAL TO BINARY @V2D3931 00934000
- BNZ NET026E INVALID OPERAND @V2D3931 00935000
- LTR R5,R1 TIME INTERVAL (IN TENTHS OF A @VA13093 00936100
- * SECOND) GREATER THAN ZERO? 00936200
- LM R0,R1,SAVEWRK2 GET PARAMETER REGISTERS @V2D3931 00938000
- BNP NET002E NO - ISSUE ERROR MESSAGE @VA13093 00938100
- CALL DMKSCNFD WAS AN ADDRESS SPECIFIED @V2D3931 00939000
- BNZ NESPOLL NO, DEFAULT IS -ALL- @V2D3931 00940000
- CL R0,F3 MUST BE LESS THAN FOUR CHARS @V2D3931 00941000
- BH NET002E NO, INVALID OPERAND @V2D3931 00942000
- CLC 0(3,R1),=C'ALL ' WAS ALL SPECIFIED ? @V2D3931 00943000
- BE NESPOLL YES, GO SET TIME FOR ALL LINES @V2D3931 00944000
- BAL R10,GETRDEV FIND AND VALIDATE REAL DEVICE @V2D3931 00945000
- TM RDEVFLAG,RDEVDISB IS THE LINE DISABLED @VM01024 00946000
- BO NES706E YES, SEND DISABLED LINE MESSAGE @VM01024 00947000
- ST R5,RDEVPDLY SAVE THE INTERVAL TIME (SECONDS) @V2D3931 00948000
- B CMDCOMP ALL DONE - GET OUT @V2D3931 00949000
- NESPOLL EQU * PROCESS ALL BISYNC LINES @V2D3931 00950000
- BAL R10,NETWALL FIND THE FIRST BISYNC LINE @V2D3931 00951000
- BNZ CMDCOMP IF NONE, GET OUT @V2D3931 00952000
- NESPOLL1 EQU * SET TIME VALUE IN RDEVBLOK @V2D3931 00953000
- CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE ? @V2D3931 00954000
- BNE *+16 NO, BYPASS SETTING INTERVAL @VM01024 00955000
- TM RDEVFLAG,RDEVDISB IS THE LINE DISABLED @VM01024 00956000
- BO *+8 YES, BYPASS SAVING INTERVAL @VM01024 00957000
- ST R5,RDEVPDLY SAVE INTERVAL TIME IN RDEVBLOK @V2D3931 00958000
- BAL R10,NETFALL LOOK FOR ANOTHER BISYNC LINE @V2D3931 00959000
- BZ NESPOLL1 SET INTERVAL TIME FOR THIS DEVICE@V2D3931 00960000
- B CMDCOMP ALL DONE @V2D3931 00961000
- EJECT 00962000
- NETWALL EQU * SETUP TO LOOP THROUGH 370X DEVICE@V2D3931 00963000
- L R8,=A(DMKRIORN) DEVICE TABLE FOR 3705'S @V200820 00964000
- L R7,0(0,R8) COUNT OF 370X DEVICE ENTRIES @V200820 00965000
- LTR R7,R7 ARE THERE ANY AT ALL ? @V200820 00966000
- BNP NETMALL NO -- ALL HAVE BEEN PROCESSED @V200820 00967000
- SLL R7,2(0) CONVERT TO MAXIMUM INDEX @V200820 00968000
- LA R7,0(R7,R8) POINT TO LAST ENTRY @V200820 00969000
- STM R7,R8,SAVEWRK7 SAVE POINTERS IN SAVE-AREA @V200820 00970000
- MVI SAVEWRK1+1,X'FF' SET DEVICE CODE TO X'-1' @V200820 00971000
- SPACE 2 00972000
- NETFALL EQU * LOOP THRU ALL DEVICES, ALL LINES @V200820 00973000
- LM R7,R8,SAVEWRK7 PICK UP DMKRIO POINTERS @V200820 00974000
- LA R8,4(0,R8) NEXT ENTRY IN DEVICE TABLE @V200820 00975000
- CLR R8,R7 HAVE WE HIT THE END ? @V200820 00976000
- BH NETMALL YES - ALL HAVE BEEN PROCESSED @V200820 00977000
- STM R7,R8,SAVEWRK7 RESET POINTERS FOR NEXT PASS @V200820 00978000
- SLR R7,R7 @V200820 00979000
- IC R7,SAVEWRK1+1 PICK UP PREVIOUS DEVICE CODE @V200820 00980000
- LA R7,1(0,R7) THIS IS THE NEXT 370X @V200820 00981000
- STC R7,SAVEWRK1+1 RESET FOR FORMATTING USE @V200820 00982000
- OI SAVEWRK1+1,X'F0' BINARY TO DECIMAL (CHEATING)@V200820 00983000
- LH R8,0(0,R8) PICK UP DISPLACEMENT TO RDEVBLOK @V200820 00984000
- SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00985000
- AL R8,ARIODV INDEX TO THE RDEVBLOK @V200820 00986000
- TM RDEVSTAT,RDEVDED+RDEVDISA+RDEVNRDY O.K. ? @V200820 00987000
- BNZ NETFALL NO -- @V200820 00988000
- ICM R7,15,RDEVCTRS DO WE HAVE SDR COUNTERS ?? @VA03757 00988050
- BNP CONTINLP NO @VA03757 00988100
- CALL DMKIOESR,AFFINITY YES, GO BUILD AND RECORD OBR @V407511 00988160
- * SYNCHRONOUSLY 00988200
- CONTINLP EQU * @VA03757 00988250
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 00989000
- BE *+12 YES, BYPASS TEST @V2D3931 00990000
- TM RDEVFLAG,RDEVLNCP IS THERE AN NCP ACTIVE ? @V200820 00991000
- BZ NETFALL NO -- NO RESOURCES @V200820 00992000
- L R7,RDEVNICL FIRST NICBLOK = RESOURCE ZERO @V200820 00993000
- CR R7,R7 SET CONDITION CODE ZERO @V200820 00994000
- BR R10 RETURN TO CALLER @V200820 00995000
- SPACE 00996000
- NETMALL EQU * ALL 370X DEVICES HAVE BEEN DONE @V200820 00997000
- SLR R8,R8 SET CONDITION CODE TWO (LOGICAL) @V200820 00998000
- BR R10 RETURN @V200820 00999000
- EJECT 01000000
- SCANRID EQU * SCAN FOR RID - LOCATE NICBLOK @V200820 01001000
- L R9,SAVER9 MAKE SURE WE HAVE THE BUFFER @V240820 01002000
- CALL DMKSCNFD SCAN FOR NEXT PARAMETER @V200820 01003000
- BCR 7,R10 IF NO MORE - RETURN @V200820 01004000
- SCANCVT EQU * ENTRY AFTER CALL TO DMKSCNFD @V200820 01005000
- LR R2,R0 SAVE LENGTH AND ADDRESS FOR MSGS @V200820 01006000
- LR R3,R1 ... @V200820 01007000
- CL R0,F4 FIELD MUST BE FOUR CHARACTERS @V240820 01008000
- BNE NET002R NOPE - ERROR @V240820 01009000
- MVC SAVEWRK9(4),0(R1) SAVE THE RESOURCE I.D. @V240820 01010000
- CALL DMKCVTHB CONVERT ENTIRE FIELD TO BINARY @V200820 01011000
- BNZ NET002R INVALID OPERAND @V200820 01012000
- LR R7,R1 @V200820 01013000
- N R7,F4095 ISOLATE RESOURCE ID PORTION @V200820 01014000
- SRL R1,12(0) ...AND DEVICE CODE INDICATOR @V200820 01015000
- STC R1,SAVEWRK1+1 SAVE DEVICE CODE FOR LATER @V200820 01016000
- OI SAVEWRK1+1,X'F0' FAST BINARY TO DECIMAL @V200820 01017000
- LA R1,1(0,R1) ADD ONE FOR INDEXING @V200820 01018000
- L R4,=A(DMKRIORN) TABLE OF 3705 RDEVBLOK'S @V200820 01019000
- CL R1,0(0,R4) IS THIS A VALID CODE ? @V200820 01020000
- BH NET040E NO -- DEVICE DOES NOT EXIST @V200820 01021000
- SLL R1,2(0) CONVERT TO FULL-WORD INDEX @V200820 01022000
- LH R8,0(R1,R4) PICK UP DISPLACEMENT TO RDEVBLOK @V200820 01023000
- SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 01024000
- AL R8,ARIODV ...COMPUTE RDEVBLOK ADDRESS @V200820 01025000
- TM RDEVSTAT,RDEVDISA IS THE 3705 OFFLINE ? @V200820 01026000
- BO NET046E YES -- DMKNES046E @V200820 01027000
- TM RDEVSTAT,RDEVDED IS 3705 ATTACHED TO A USER ?@V200820 01028000
- BO NET140E YES -- DMKNES140E @V200820 01029000
- TM RDEVFLAG,RDEVLNCP IS THERE AN NCP ACTIVE ? @V200820 01030000
- BZ NET040E NO -- DEV DOES NOT EXIST @V200820 01031000
- CH R7,RDEVMAX WITHIN DEFINED RANGE ? @V200820 01032000
- BH NET040E NO -- @V200820 01033000
- MH R7,=AL2(NICSIZE*8) COMPUTE INDEX TO NICBLOK @V200820 01034000
- AL R7,RDEVNICL ...AND ADDRESS @V200820 01035000
- SR R0,R0 SET CC = 0 @V200820 01036000
- BR R10 RETURN TO CALLER @V200820 01037000
- EJECT 01038000
- CMDCOMP EQU * COMMAND IS COMPLETE @V200820 01039000
- TM VMOSTAT,VMVIRCF DIAGNOSE CONSOLE FUNCTION ? @V200820 01040000
- BO RETCOMP YES - SUPPRESS THE MESSAGE @V200820 01041000
- MSG 'COMMAND COMPLETE' VERIFICATION MESSAGE @V200820 01042000
- CALL DMKQCNWT,PARM=NORET @V200820 01043000
- RETCOMP EQU * SET RETURN CODE, EXIT @V200820 01044000
- SLR R2,R2 RETURN CODE = ZERO @V200820 01045000
- ST R2,SAVER2 @V200820 01046000
- EXIT , RETURN TO DMKCFM @V200820 01047000
- SPACE 2 01048000
- GETRDEV EQU * CHECK VALIDITY OF 370X ADDRESS @V240820 01049000
- CL R0,F3 THREE CHARACTERS MAX FOR ADDRESS @V240820 01050000
- BH NET021E INVALID DEVICE ADDRESS @V240820 01051000
- LR R2,R0 SAVE LENGTH AND ADDRESS FOR MSGS @V240820 01052000
- LR R3,R1 . . . @V240820 01053000
- CALL DMKCVTHB ATTEMPT BINARY CONVERSION @V240820 01054000
- BNZ NET021E NOPE - ERROR @V240820 01055000
- CALL DMKSCNRU FIND THE REAL DEVICE BLOCKS @V240820 01056000
- BNZ NET040E DEVICE DOES NOT EXIST @V240820 01057000
- SPACE 01058000
- USING RDEVBLOK,R8 @V200820 01059000
- TM SAVEWRK1,SHUT IS THIS FOR 3270 REMOTE SUPPORT @V2D3931 01060000
- BZ CONTIN NO, CONTINUE @V2D3931 01061000
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 01062000
- BNE CONTIN NO, CONTINUE PROCESSING @V2D3931 01063000
- TM RDEVTYPE,TYPBSC IS THIS A BISYNC LINE ? @V2D3931 01064000
- BO BYPAS YES, BYPASS TEST FOR 370X @V2D3931 01065000
- CONTIN EQU * @V2D3931 01066000
- TM SAVEWRK1,POLLDLY IS THIS A POLL DELAY FUNCTION @VM01029 01067000
- BO NET006E YES, SEND INVALID DEVICE TYPE @VM01029 01068000
- LA R0,CLASSPEC*256+TYP3705 @V200820 01069000
- CH R0,RDEVTYPC IS THIS REALLY A 370X ? @V200820 01070000
- BNE NET006E NO -- @V200820 01071000
- BYPAS EQU * @V2D3931 01072000
- TM RDEVSTAT,RDEVDISA OFFLINE ? @V200820 01073000
- BO NET046E YES -- @V200820 01074000
- TM RDEVSTAT,RDEVDED DEDICATED ? @V200820 01075000
- BO NET140E YES -- @V200820 01076000
- TM RDEVSTAT,RDEVNRDY IS THE FUNCTION AVAILABLE ? @V200820 01077000
- BO NET006E NO -- FOR NOW, INVALID TYPE @V200820 01078000
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 01079000
- BER R10 YES, RETURN TO IN LINE CODE @V2D3931 01080000
- TM RDEVFLAG,RDEVLNCP SAME TEST @V200820 01081000
- BZ NET006E SAME ERROR @V200820 01082000
- BR R10 @V240820 01083000
- EJECT 01084000
- NET002R EQU * @V200820 01085000
- LR R0,R2 RECOVER ORIGINAL LENGTH @V200820 01086000
- LR R1,R3 ...AND DATA ADDRESS @V200820 01087000
- NET002E EQU * DMKNES002E INVALID OPERAND - OPERAND @V200820 01088000
- LA R2,002(0) MESSAGE NUMBER @V200820 01089000
- B MSGSEND R0, R1 ALREADY SETUP @V200820 01090000
- SPACE 01091000
- NET004E EQU * DMKNES004E INVALID HEXLOC - HEXLOC @V200820 01092000
- LR R0,R2 PARM LENGTH @V200820 01093000
- LR R1,R3 PARM ADDRESS @V200820 01094000
- LA R2,004(0) MESSAGE NUMBER @V200820 01095000
- B MSGSEND @V200820 01096000
- SPACE 01097000
- NET006E EQU * DMKNES006E INVALID DEVICE TYPE - RADDR @V200820 01098000
- BAL R9,CVTRADD GET DEVICE ADDRESS IN EBCDIC @V200820 01099000
- LA R2,006(0) MESSAGE NUMBER @V200820 01100000
- B MSGSEND @V200820 01101000
- SPACE 01102000
- NET006R EQU * DMKNES006E INVALID DEVICE TYPE - RID @V200820 01103000
- LA R1,SAVEWRK9 POINT TO THE OPERAND @V240820 01104000
- LA R0,4(0) LENGTH OF FOUR BYTES @V240820 01105000
- LA R2,006(0) MESSAGE= DMKNES006E @V200820 01106000
- B MSGSEND GO TYPE THE MESSAGE @V200820 01107000
- SPACE 01108000
- NET009E EQU * DMKNES009E INVALID RANGE - RANGE @V200820 01109000
- LA R2,009(0) MESSAGE NUMBER @V200820 01110000
- B MSGSEND @V200820 01111000
- SPACE 01112000
- NET021E EQU * DMKNES021E RADDR MISSING OR INVALID @V200820 01113000
- LA R2,021(0) MESSAGE NUMBER @V200820 01114000
- B MSGONLY NO VARIABLE DATA @V200820 01115000
- SPACE 01116000
- NET026E EQU * DMKNES026E OPERAND MISSING OR INVALID @V200820 01117000
- LA R2,026(0) MESSAGE NUMBER @V200820 01118000
- B MSGONLY NO VARIABLE DATA @V200820 01119000
- SPACE 01120000
- NET033E EQU * DMKNES033E HEXLOC MISSING OR INVALID @V200820 01121000
- LA R2,033(0) MESSAGE NUMBER @V200820 01122000
- B MSGONLY NO VARIABLE DATA @V200820 01123000
- SPACE 01124000
- NET040E EQU * DMKNES040E DEV ADDR DOES NOT EXIST @V200820 01125000
- LR R0,R2 PARAMETER LENGTH @V200820 01126000
- LR R1,R3 ...AND START ADDRESS @V200820 01127000
- LA R2,040(0) MESSAGE NUMBER @V200820 01128000
- B MSGSEND @V200820 01129000
- EJECT 01130000
- NET046R EQU * DMKNES046E DEV RID OFFLINE @VM01011 01131000
- BAL R10,CVTRESD BUILD 'DEV RID' IN THE SAVEAREA @VM01011 01132000
- B NET046 SETUP TO TYPE ERROR MESSAGE @VM01011 01133000
- SPACE 01134000
- NET046E EQU * DMKNES046E CTLR RADDR OFFLINE @V200820 01135000
- BAL R10,TYPRADD BUILD PARMS FOR DMKERMSG @VM01011 01136000
- NET046 EQU * @VM01011 01137000
- LA R0,8 @V200820 01138000
- LA R2,046(0) MESSAGE NUMBER @V200820 01139000
- B MSGSEND @V200820 01140000
- SPACE 01141000
- NET049E EQU * DMKNES049E LINE RID IN USE @V200820 01142000
- BAL R10,CVTRESD BUILD PARM STRING FOR DMKERM @VM01011 01143000
- LA R2,049(0) MESSAGE NUMBER @V200820 01144000
- B MSGSEND @V200820 01145000
- SPACE 01146000
- NET098E EQU * DMKNES098E MODE SWITCH NOT POSSIBLE @V240820 01147000
- LA R1,SAVEWRK9 POINT TO THE RESOURCE I.D. @V240820 01148000
- LA R0,4(0) FOR FOUR BYTES @V240820 01149000
- LA R2,098(0) MSG= DMKNES098E @V240820 01150000
- B MSGSEND @V240820 01151000
- SPACE 01152000
- NET140E EQU * DMKNES140E CTLR XXX ATTACHED TO USERID @V200820 01153000
- BAL R10,TYPRADD BUILD PARM STRING FOR DMKERM @VM01011 01154000
- L R2,RDEVUSER-RDEVBLOK(,R8) GET USER'S VMBLOK @V200820 01155000
- MVC SAVEWRK4+1(8),VMUSER-VMBLOK(R2) MOVE IN USERID @V200820 01156000
- MVI SAVEWRK4,X'00' FIELD DELIMITER @V200820 01157000
- LA R0,17 VARIABLE DATA LENGTH @V200820 01158000
- LA R2,140(0) MESSAGE NUMBER @V200820 01159000
- B MSGSEND @V200820 01160000
- SPACE 01161000
- NET160E EQU * DMKNES160E HEXLOC XXXXX EXCEEDS STORAGE @V200820 01162000
- LR R0,R2 PARM LENGTH @V200820 01163000
- LR R1,R3 PARM ADDRESS @V200820 01164000
- LA R2,160(0) MESSAGE NUMBER @V200820 01165000
- B MSGSEND R0, R1 ALREADY SETUP @V200820 01166000
- SPACE 01167000
- NET175E EQU * DMKNES175E NETWORK TRACE ALREADY IN USE @V200820 01168000
- MVC SAVEWRK5+2(8),0(R4) MOVE IN USERID FROM DMKRNH @V200820 01169000
- MVC SAVEWRK2(14),=C'NETWORK TRACE ' @V200820 01170000
- MVI SAVEWRK5+1,X'00' FIELD DELIMITER @V200820 01171000
- LA R1,SAVEWRK2 POINT TO VARIABLE DATA @V200820 01172000
- LA R0,22 DATA LENGTH @V200820 01173000
- LA R2,175(0) MSG= DMKRNH175E @V200820 01174000
- B MSGSEND GO FORMAT THE MESSAGE @V200820 01175000
- NES706E EQU * DMKNES706E LINE XXX NOT ENABLED @VM01024 01176000
- BAL R9,CVTRADD GET DEVICE ADDRESS IN SAVEWRK3 @VM01024 01177000
- LA R2,706(0) MESSAGE NUMBER @VM01024 01178000
- B MSGSEND ... @VM01024 01179000
- EJECT 01180000
- TYPRADD EQU * BUILD PARMS FOR 'TYPE RADDR' @VM01011 01181000
- BAL R9,CVTRADD GET DEVICE ADDRESS IN SAVEWRK3 @VM01011 01182000
- MVC SAVEWRK2(4),=C'CTLR' DEVICE TYPE NAME @VM01011 01183000
- LA R1,SAVEWRK2 POINT TO STRING START @VM01011 01184000
- LA R0,8(0) LENGTH @VM01011 01185000
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 01186000
- BNER R10 NO, RETURN TO IN LINE CODE @V2D3931 01187000
- MVC SAVEWRK2(4),=C'LINE' LINE TYPE NAME @V2D3931 01188000
- BR R10 . . . @VM01011 01189000
- SPACE 01190000
- CVTRADD EQU * CONVERT RADDR TO EBCDIC @V200820 01191000
- CALL DMKSCNRD GET ADDRESS IN BINARY @V200820 01192000
- CALL DMKCVTBH CONVERT IT TO EBCDIC HEX @V200820 01193000
- ST R1,SAVEWRK3 PUT IT IN THE SAVE-AREA @VM01011 01194000
- MVI SAVEWRK3,X'00' INSERT A DELIMITER @VM01011 01195000
- LA R1,SAVEWRK3+1 START OF THE ACTUAL ADDRESS @VM01011 01196000
- LA R0,3(0) GIVE IT'S LENGTH... @V200820 01197000
- BR R9 RETURN TO CALLER @V200820 01198000
- SPACE 01199000
- CVTRESD EQU * BUILD PARMS FOR 'DEV RESOURCE' @VM01011 01200000
- MVC SAVEWRK8(3),=C'DEV ' RID IS A 'DEV' @VM01011 01201000
- MVI SAVEWRK8+3,X'00' RESOURCE IS IN SAVEWRK9 @VM01011 01202000
- LA R1,SAVEWRK8 POINT TO THE DATA STRING @VM01011 01203000
- LA R0,8(0) EIGHT BYTES LONG @VM01011 01204000
- BR R10 @VM01011 01205000
- SPACE 01206000
- MSGONLY EQU * ERROR MSG WITH NO VARIABLE DATA @V200820 01207000
- SLR R1,R1 NO VARIABLE DATA @V200820 01208000
- SPACE 01209000
- MSGSEND EQU * TYPE AN ERROR MESSAGE @V200820 01210000
- ICM R0,B'1110',MODID+3 PICK UP MODULE IDENTIFIER @V200820 01211000
- CALL DMKERMSG GO TO ERROR MESSAGE ROUTINE @V200820 01212000
- * HE WILL RETURN DIRECTLY TO DMKNET 01213000
- EJECT 01214000
- LTORG @V200820 01215000
- EJECT 01216000
- COPY NETWORK @V200820 01217000
- COPY IOBLOKS @V200820 01218000
- COPY RBLOKS @V200820 01219000
- COPY VMBLOK @V200820 01220000
- COPY BTUCMD @V200820 01221000
- COPY EQU @V200820 01222000
- COPY DEVTYPES @V200820 01223000
- COPY SAVE @V200820 01224000
- PSA @V200820 01225000
- END DMKNES 01226000
ibm/vm370-lib/cp/dmknes.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator