Table of Contents

DMKNES Source

References

Source Listing

DMKNES.ASSEMBLE.txt
  1. NES TITLE 'DMKNES (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE SEQUENCING OF INPUT 00002000
  3. COPY OPTIONS @V200820 00003000
  4. COPY LOCAL OPTIONS @V306638 00004000
  5. SPACE 2 00005000
  6. *. 00006000
  7. * MODULE NAME - 00007000
  8. * 00008000
  9. * DMKNES 00009000
  10. * 00010000
  11. * CONTENTS - 00011000
  12. * 00012000
  13. * DMKNESHD - PROCESS THE 'NETWORK SHUTDOWN' COMMAND 00013000
  14. * DMKNESTR - PROCESS THE 'NETWORK TRACE' COMMAND 00014000
  15. * DMKNESDS - PROCESS THE 'NETWORK DISPLAY' COMMAND 00015000
  16. * DMKNESEP - PROCESS THE 'NETWORK VARY EP' COMMAND 00016000
  17. * DMKNESWN - PROCESS THE 'NETWORK VARY NCP' COMMAND 00017000
  18. * DMKNESPL - PROCESS THE 'NETWORK POLLDLAY' COMMAND 00018000
  19. *. 00019000
  20. SPACE 2 00020000
  21. DMKNES START 0 @V200820 00021000
  22. SPACE 00022000
  23. USING PSA,0 @V200820 00023000
  24. USING CONTASK,R6 @V250820 00024000
  25. USING NICBLOK,R7 @V250820 00025000
  26. USING RDEVBLOK,R8 @V250820 00026000
  27. USING VMBLOK,R11 @V200820 00027000
  28. USING SAVEAREA,R13 @V200820 00028000
  29. SPACE 2 00029000
  30. EXTRN DMKRNHND,DMKERMSG,DMKRGBEN,DMKCVTDB @V305798 00030000
  31. EXTRN DMKSCNFD,DMKCVTHB,DMKSCNRU,DMKCVTBH @V200820 00031000
  32. EXTRN DMKSCNRD,DMKQCNCL,DMKQCNTO @V200820 00032000
  33. EXTRN DMKRIORN DEVICE TABLE FOR SYSTEM 370X'S @V200820 00033000
  34. EXTRN DMKRNHTR HOLD FIELD FOR TRACE USERID @V200820 00034000
  35. EXTRN DMKIOESR @VA03757 00034100
  36. SPACE 00035000
  37. MODID DC CL8'DMKNES ' PAGEABLE MODULE IDENTIFIER @V200820 00036000
  38. EJECT 00037000
  39. *. 00038000
  40. * SUBROUTINE NAME - 00039000
  41. * 00040000
  42. * DMKNESHD - PROCESS THE 'NETWORK SHUTDOWN' COMMAND 00041000
  43. * 00042000
  44. * ATTRIBUTES - 00043000
  45. * 00044000
  46. * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00045000
  47. * 00046000
  48. * ENTRY CONDITIONS - 00047000
  49. * 00048000
  50. * GR13 = STANDARD SAVEAREA ADDRESS 00049000
  51. * GR12 = ADDRESS OF DMKNESHD 00050000
  52. * GR11 = VALID VMBLOK ADDRESS 00051000
  53. * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00052000
  54. * 00053000
  55. * EXIT CONDITIONS - 00054000
  56. * 00055000
  57. * GR0-1, 3-13 RESTORED 00056000
  58. * GR2 = ZERO --> SUCCESSFULL EXECUTION 00057000
  59. * GR2 ¬= ZERO -> ERROR MESSAGE HAS BEEN ISSUED 00058000
  60. * 00059000
  61. * CALLS TO OTHER ROUTINES - 00060000
  62. * 00061000
  63. * DMKSCNFD - TO LOCATE COMMAND OPERANDS 00062000
  64. * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00063000
  65. * DMKCVTHB - TO CONVERT HEXADECIMAL TO BINARY 00064000
  66. * DMKQCNCL - TO RESET ANY ACTIVE CONSOLE TASKS (CONTASK) 00065000
  67. * DMKQCNTO - TO DISCONNECT AN ACTIVE VIRTUAL MACHINE 00066000
  68. * 00067000
  69. * EXTERNAL REFERENCES - 00068000
  70. * 00069000
  71. * DMKRIORN - TABLE OF 370X DEVICES IN DMKRIO 00070000
  72. * 00071000
  73. * TABLES / WORK AREAS - NONE 00072000
  74. * 00073000
  75. * REGISTER USAGE - 00074000
  76. * 00075000
  77. * GR14-15 EXTERNAL LINKAGE REGISTERS 00076000
  78. * GR13 - SAVEAREA ADDRESSABILITY 00077000
  79. * GR12 - MODULE BASE ADDRESSABILITY 00078000
  80. * GR11 - VMBLOK ADDRESSABILITY 00079000
  81. * GR10 - INTERNAL LINKAGE REGISTER 00080000
  82. * GR 9 - COMMAND BUFFER ADDRESSABILITY 00081000
  83. * GR 8 - RDEVBLOK ADDRESSABILITY 00082000
  84. * GR 7 - NICBLOK ADDRESSABILITY 00083000
  85. * GR 0-6 WORK REGISTERS 00084000
  86. * 00085000
  87. * NOTES - NONE 00086000
  88. * 00087000
  89. * OPERATION - 00088000
  90. * 00089000
  91. * 1. VALIDATE THE OPERAND SPECIFIED. IF NONE, ASSUME 'ALL'. 00090000
  92. * 2. FOR EACH 370X WHICH HAS AN ACTIVE NETWORK CONTROL 00091000
  93. * PROGRAM OR PARTITIONED EMULATOR PROGRAM, DISABLE CP 00092000
  94. * USE OF THE NCP INTERFACE BY SETTING APPROPRIATE FLAGS 00093000
  95. * IN THE RDEVBLOK FOR THE 370X. 00094000
  96. * 3. RESET ANY ACTIVE OR QUEUED CONTASK'S FOR EACH NICBLOK 00095000
  97. * VIA CALLS TO DMKQCNCL. 00096000
  98. * 4. DISCONNECT ANY ACTIVE VIRTUAL MACHINES VIA CALLS TO 00097000
  99. * DMKQCNTO. MARK THE 370X AS FREE. 00098000
  100. * 00099000
  101. * RESPONSES - 00100000
  102. * 00101000
  103. * COMMAND COMPLETE 00102000
  104. * 00103000
  105. * ERROR MESSAGES - 00104000
  106. * 00105000
  107. * DMKNES002E INVALID OPERAND - OPERAND 00106000
  108. * DMKNES006E INVALID DEVICE TYPE - XXX 00107000
  109. * DMKNES021E RADDR MISSING OR INVALID 00108000
  110. * DMKNES040E DEV XXX DOES NOT EXIST 00109000
  111. * DMKNES046E CTLR XXX OFFLINE 00110000
  112. * DMKNES140E CTLR XXX ATTACHED TO USERIDXX 00111000
  113. *. 00112000
  114. SPACE 2 00113000
  115. DMKNESHD RELOC , NETWORK SHUTDOWN RADDR @V250820 00114000
  116. SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00114500
  117. MVI SAVEWRK1,SHUT INDICATE 3270 REMOTE SUPPORT @V2D3931 00115000
  118. SPACE 00116000
  119. CALL DMKSCNFD WAS AN ADDRESS SPECIFIED ? @V200820 00117000
  120. BNZ NETSHUT NO -- SHUTDOWN EVERYTHING @V200820 00118000
  121. CL R0,F3 MUST BE LESS THAN THREE CHARS @V200820 00119000
  122. BH NET002E INVALID OPERAND @V200820 00120000
  123. CLC 0(3,R1),=C'ALL ' WAS "ALL" TYPED IN ? @V200820 00121000
  124. BE NETSHUT YES - DO JUST THAT @V200820 00122000
  125. BAL R10,GETRDEV FIND AND VALIDATE REAL DEVICE @V240820 00123000
  126. BAL R10,NETDEAD SHUTDOWN NCP COMMUNICATION @V200820 00124000
  127. B CMDCOMP ALL DONE - GET OUT @V200820 00125000
  128. SPACE 00126000
  129. NETSHUT EQU * SHUTDOWN ALL 370X NCP ACTIVITY @V200820 00127000
  130. BAL R10,NETWALL FIND THE FIRST NCP @V200820 00128000
  131. BNZ CMDCOMP IF NONE, OUR JOB IS DONE @V200820 00129000
  132. NETSHUT1 EQU * QUIESCE AND DESIST @V200820 00130000
  133. BAL R10,NETDEAD TURN OFF THIS NCP @V200820 00131000
  134. BAL R10,NETFALL LOOK FOR ANOTHER ONE @V200820 00132000
  135. BZ NETSHUT1 TURN OFF ALL THE LIGHTS @V200820 00133000
  136. B CMDCOMP @V200820 00134000
  137. EJECT 00135000
  138. NETDEAD EQU * QUIESCE HOST COMMUNICATIONS @V200820 00136000
  139. CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 00137000
  140. BE NETLINE YES, GO DISABLE BISYNC LINE @V2D3931 00138000
  141. TM RDEVFLAG,RDEVRCVY IN RECOVERY PROCESS NOW ? @V200820 00139000
  142. BOR R10 YES - DON'T TOUCH IT @V200820 00140000
  143. NI RDEVSTAT,255-RDEVRSVD TURN OFF DMKRNHIN @V200820 00141000
  144. OI RDEVSTAT,RDEVNRDY . . . @V200820 00142000
  145. OI RDEVFLAG,RDEVRCVY . . . @V200820 00143000
  146. LH R5,RDEVMAX SETUP TO LOOP THRU NICBLOK'S @V200820 00144000
  147. MH R5,=AL2(NICSIZE*8) . . . @V200820 00145000
  148. L R7,RDEVNICL GR7 = START OF NICBLOK LIST @VM08768 00146000
  149. ALR R5,R7 . . . @V200820 00147000
  150. LA R4,NICSIZE*8 . . . @V200820 00148000
  151. CALL DMKQCNCL CLEAR CONTASKS FROM RDEVBLOK @V200820 00149000
  152. SLR R0,R0 CONSTANT @V200820 00150000
  153. NETFLSH EQU * CLEAR ALL ACTIVE CONTASK'S @V200820 00151000
  154. L R1,NICQPNT NICBLOK CHAIN OF CONTASKS @V200820 00152000
  155. LTR R1,R1 ARE THERE ANY ? @V200820 00153000
  156. BNP NETFLSN NO --- @V200820 00154000
  157. ST R1,RDEVCON PUT IT DOWN FOR DMKQCN @V200820 00155000
  158. CALL DMKQCNCL FLUSH ALL THE TASKS @V200820 00156000
  159. ST R0,NICQPNT CLEAR NICBLOK POINTER @V200820 00157000
  160. NETFLSN EQU * @V200820 00158000
  161. BXLE R7,R4,NETFLSH CONTINUE . . . @V200820 00159000
  162. SPACE 00160000
  163. L R7,RDEVNICL RESTART AT THE BEGINNING @V200820 00161000
  164. L R3,ASYSVM SYSTEM VMBLOK FOR CONVENIENCE @V200820 00162000
  165. NETFLSU EQU * DISCONNECT ANY ACTIVE USERS @V200820 00163000
  166. CL R3,NICUSER IS THERE AN ACTIVE USER ? @V200820 00164000
  167. BE NETFLSF NO --- @V200820 00165000
  168. L R1,NICUSER LOAD ADDR OF NEW VMBLOK @V407511 00166100
  169. SWTCHVM OPT=STAY SWITCH VMBLOK LOCKING & CHARGING @V407511 00166300
  170. CALL DMKQCNTO,AFFINITY DISCONNECT THIS GUY @V407511 00169100
  171. ST R3,NICUSER SET NICUSER TO SYSTEM VMBLOK @V200820 00170000
  172. NETFLSF EQU * RESET NICBLOK STATUS, FLAGS @V200820 00171000
  173. NI NICSTAT,NICDISA+NICEPMD+NICSWEP LEAVE THESE @V200820 00172000
  174. MVI NICFLAG,NICPSUP SET ONLY THIS @V200820 00173000
  175. BXLE R7,R4,NETFLSU CONTINUE . . . @V200820 00174000
  176. L R1,SAVER11 LOAD ADDR OF NEW VMBLOK @V407511 00175500
  177. SWTCHVM OPT=STAY SWITCH VMBLOK LOCKING & CHARGING @V407511 00176000
  178. NI RDEVFLAG,255-(RDEVRCVY+RDEVWAIT+RDEVSLOW) @V200820 00178000
  179. BR R10 RETURN INTERNALLY @V200820 00179000
  180. NETLINE EQU * DISABLE THE BISYNC LINE @V2D3931 00180000
  181. TM RDEVFLAG,RDEVENAB IS THIS LINE ENABLED ? @V2D3931 00181000
  182. BZR R10 NO, NOTHING TO DO @V2D3931 00182000
  183. TM RDEVSTAT,RDEVDED+RDEVDISA+RDEVNRDY IS LINE AVAIL@V2D3931 00183000
  184. BNZR R10 NO, RETURN @V2D3931 00184000
  185. OI RDEVFLAG,RDEVDISB SET THE DISABLE FLAG @V2D3931 00185000
  186. L R0,F255 SET PARM REG FOR BISYNC LINE @V2D3931 00186000
  187. CALL DMKRGBEN,PARM=0,AFFINITY @V407511 00187100
  188. BR R10 RETURN @V2D3931 00188000
  189. EJECT 00189000
  190. *. 00190000
  191. * SUBROUTINE NAME - 00191000
  192. * 00192000
  193. * DMKNESEP - SWITCH LINE MODE TO EMULATION MODE 00193000
  194. * 00194000
  195. * ATTRIBUTES - 00195000
  196. * 00196000
  197. * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00197000
  198. * 00198000
  199. * ENTRY CONDITIONS - 00199000
  200. * 00200000
  201. * GR13 = STANDARD SAVEAREA ADDRESS 00201000
  202. * GR12 = ADDRESS OF DMKNESEP 00202000
  203. * GR11 = VALID VMBLOK ADDRESS 00203000
  204. * GR 8 = RDEVBLOK ADDRESS OF THE REFERENCED 370X 00204000
  205. * GR 7 = NICBLOK ADDRESS FOR THE SPECIFIED RESOURCE 00205000
  206. * GR 1 = RESOURCE REFERENCE IN EBCDIC (4 CHARS) 00206000
  207. * 00207000
  208. * EXIT CONDITIONS - 00208000
  209. * 00209000
  210. * GR0-1,3-13 RESTORED 00210000
  211. * GR2 = ZERO --> SUCCESSFUL COMPLETION 00211000
  212. * GR2 ¬= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00212000
  213. * 00213000
  214. * CALLS TO OTHER ROUTINES - 00214000
  215. * 00215000
  216. * DMKRNHND - TO SCHEDULE CONTROL FUNCTIONS FOR THE 370X NCP 00216000
  217. * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00217000
  218. * DMKSCNRD - TO DETERMINE DEVICE ADDRESS FROM AN RDEVBLOK 00218000
  219. * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00219000
  220. * 00220000
  221. * EXTERNAL REFERENCES - NONE 00221000
  222. * 00222000
  223. * TABLES / WORK AREAS - NONE 00223000
  224. * 00224000
  225. * REGISTER USAGE - 00225000
  226. * 00226000
  227. * GR14,15 EXTERNAL LINKAGE REGISTERS 00227000
  228. * GR13 - SAVEAREA ADDRESSABILITY 00228000
  229. * GR12 - MODULE BASE ADDRESSABILITY 00229000
  230. * GR11 - VMBLOK ADDRESSABILITY 00230000
  231. * GR10 - UNUSED 00231000
  232. * GR 9 - PARAMETER REGISTER FOR DMKRNHND 00232000
  233. * GR 8 - RDEVBLOK ADDRESSABILITY 00233000
  234. * GR 7 - RCUBLOK AND NICBLOK ADDRESSABILITY 00234000
  235. * GR 0-6 WORK REGISTERS 00235000
  236. * 00236000
  237. * NOTES - NONE 00237000
  238. * 00238000
  239. EJECT 00239000
  240. * OPERATION - 00240000
  241. * 00241000
  242. * 1. MAKE SURE THAT THE SPECIFIED RESOURCE IS A LINE, AND 00242000
  243. * THAT THE LINE IS CAPABLE OF BEING SWITCHED TO EP-MODE. 00243000
  244. * MAKE SURE THAT THERE ARE NO ACTIVE TERMINALS WHICH 00244000
  245. * DEPEND ON THIS LINE RESOURCE. ERROR MESSAGES ARE 00245000
  246. * ISSUED IF ANY OF THE ABOVE TESTS FAIL. 00246000
  247. * 00247000
  248. * 2. IF THE NCP LINE TRACE IS ACTIVE, TERMINATE THE TRACE 00248000
  249. * VIA A CALL TO DMKRNHND FOR THE 'CTRMLTR' COMMAND. 00249000
  250. * 00250000
  251. * 3. PERFORM A VARY ONLINE FUNCTION FOR THE RDEVBLOK WHICH 00251000
  252. * REFERS TO THE EP-MODE ADDRESS OF THE LINE BEING 00252000
  253. * SWITCHED. THIS MAY INVOLVE USING ONE OF THE DUMMY BLOCKS 00253000
  254. * GENERATED BY THE 'MAXDIAL' OPERAND OF RDEVICE MACRO. 00254000
  255. * 00255000
  256. * 4. INITIALIZE THE LINE RDEVBLOK ACCORDING TO THE TERMINAL 00256000
  257. * TYPE (IBM1 OR TELE2), SETTING UP FOR EP-MODE USE. 00257000
  258. * 00258000
  259. * 5. SWITCH THE LINE TO EP-MODE VIA CALL DMKRNHND. 00259000
  260. * 00260000
  261. * ERROR MESSAGES - 00261000
  262. * 00262000
  263. * DMKNES006E INVALID DEVICE TYPE - XXXX 00263000
  264. * DMKNES049E DEV XXXX IN USE 00264000
  265. * DMKNES098E DEV XXXX MODE SWITCH NOT POSSIBLE 00265000
  266. *. 00266000
  267. EJECT 00267000
  268. DMKNESEP RELOC , NETWORK VARY EP-MODE @V250820 00268000
  269. ST R1,SAVEWRK9 SAVE RESOURCE I.D. IN EBCDIC @VA01918 00269000
  270. SPACE 00270000
  271. TM NICTYPE,NICLINE IS THIS A LINE RESOURCE ? @V240820 00271000
  272. BZ NET006R NO -- INVALID DEVICE TYPE @V240820 00272000
  273. TM NICSTAT,NICEPMD+NICSWEP SWITCHABLE, NCP MODE ? @V240820 00273000
  274. BNM NET098E NO -- CANNOT SWITCH MODE @V240820 00274000
  275. LR R6,R7 SAVE THE LINE NICBLOK ADDRESS @V240820 00275000
  276. LA R7,NICSIZE*8(0,R7) ADVANCE TO NEXT NICBLOK @V240820 00276000
  277. TM NICFLAG,NICSESN+NICENAB RESOURCE IN USE ? @V240820 00277000
  278. BNZ NET049E YES - ERROR @V240820 00278000
  279. OI NICSTAT,NICDISA TEMPORARILY OFFLINE @VA01918 00279000
  280. CHKSWCH EQU * SETUP FOR THE MODE SWITCH @V240820 00280000
  281. LR R7,R6 BACK TO THE LINE NICBLOK @V240820 00281000
  282. TM NICSTAT,NICLTRC IS LINE TRACE ACTIVE ? @V240820 00282000
  283. BZ MODESWT NO -- O.K. TO CONTINUE @V240820 00283000
  284. LR R9,R7 NICBLOK TO GR9 FOR DMKRNHND @V240820 00284000
  285. LA R0,CTRMLTR TERMINATE LINE TRACE @V240820 00285000
  286. CALL DMKRNHND,PARM=NORET . . . @VA01918 00286000
  287. BNZ RETCOMP BAIL OUT IN CASE OF NCP FAILURE @VA01918 00287000
  288. NI NICSTAT,255-NICLTRC . . . @VA01918 00288000
  289. MODESWT EQU * SWITCH LINE MODE TO EMULATION @V240820 00289000
  290. STM R7,R8,SAVEWRK3 SAVE THE NICBLOK AND RDEVBLOK @V240820 00290000
  291. LH R1,NICEPAD ADDRESS WHEN IN EP-MODE @V240820 00291000
  292. CALL DMKSCNRU SEE IF THE BLOCKS EXIST FOR IT @V240820 00292000
  293. BC 4+2,NET098E CHANNEL OR CTL UNIT IS MISSING @V240820 00293000
  294. SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00293100
  295. NI RCUSTAT-RCUBLOK(R7),255-RCUDISA VARY ON C.U. @V240820 00294000
  296. LTR R8,R8 IS THERE ALREADY AN RDEVBLOK ? @V240820 00295000
  297. BP SETRDEV YES - USE IT @V240820 00296000
  298. L R8,SAVEWRK4 370X BASE RDEVBLOK AGAIN @V240820 00297000
  299. ICM R15,15,RDEVEPDV TRY FOR A DYNAMIC RDEVBLOK @V240820 00298000
  300. BZ NET098E NOPE -- CAN'T DO IT @V240820 00299000
  301. MVC RDEVEPDV(4),RDEVEPDV-RDEVBLOK(R15) TAKE ONE @V240820 00300000
  302. LR R8,R15 WORK WITH THE DYNAMIC BLOCK NOW @V240820 00301000
  303. LA R5,X'00F8' CONTROL UNIT ADDRESS MASK @V240820 00302000
  304. NR R5,R1 DEVICE ADDRESS IS STILL IN GR1 @V240820 00303000
  305. SRL R5,2(0) SHIFT FOR INDEXING IN RCHCUTBL @V240820 00304000
  306. LH R7,RCHCUTBL-RCHBLOK(R5,R6) TRY THIS ONE @V240820 00305000
  307. LTR R7,R7 IS THIS THE CORRECT SLOT ? @V240820 00306000
  308. BNM *+8 YES - USE IT @V240820 00307000
  309. LH R7,RCHCUTBL-RCHBLOK-2(R5,R6) BACK UP ONE SLOT @V240820 00308000
  310. AL R7,ARIOCU GR7 = PHYSICAL RCUBLOK ADDRESS @V240820 00309000
  311. LA R5,X'000F' DEVICE ADDRESS MASK @V240820 00310000
  312. NR R5,R1 EXTRACT THE DEVICE ADDRESS @V240820 00311000
  313. STH R5,RDEVADD SET ADDRESS IN THE RDEVBLOK @V240820 00312000
  314. SLL R5,1(0) SHIFT FOR RCUDVTBL INDEX @V240820 00313000
  315. SL R15,ARIODV COMPUTE RDEVBLOK DISPLACEMENT @V240820 00314000
  316. SRL R15,3(0) . . .IN DOUBLE-WORDS @V240820 00315000
  317. STH R15,RCUDVTBL-RCUBLOK(R5,R7) CONNECT RDEVBLOK @V240820 00316000
  318. ST R7,RDEVCUA . . . @V240820 00317000
  319. SETRDEV EQU * INITIALIZE RDEVBLOK FIELDS @V240820 00318000
  320. MVI RDEVSTAT,X'00' COMPLETELY FREE NOW @V240820 00319000
  321. MVI RDEVFLAG,RDEVEPMD SWITCHED INTO EP-MODE @V240820 00320000
  322. MVI RDEVTYPC,CLASTERM TERMINAL-CLASS DEVICE @V240820 00321000
  323. XC RDEVTCTL(8),RDEVTCTL RESET CONTROL BYTES @V240820 00322000
  324. MVI RDEVSADN,4 DO NOT USE 'SAD' COMMANDS @V240820 00323000
  325. L R7,SAVEWRK3 LINE NICBLOK ADDRESS @V240820 00324000
  326. MVI RDEVTYPE,TYP2700 MAYBE IT'S A BISYNCH LINE @V240820 00325000
  327. TM NICTYPE,NICLBSC IS THAT CORRECT ? @V240820 00326000
  328. BO SWCHMOD YES - SWITCH THE LINE MODE @V240820 00327000
  329. LA R6,NICSIZE*8(0,R7) TRY THE NEXT NICBLOK @V240820 00328000
  330. MVI RDEVTYPE,TYPUNDEF ASSUME IBM1 ADAPTER TYPE @V240820 00329000
  331. MVI RDEVTMCD,RDEVPTTC . . . @V240820 00330000
  332. TM NICTYPE-NICBLOK(R6),NICCIBM CORRECT ? @V240820 00331000
  333. BO SWCHMOD YES -- @V240820 00332000
  334. MVI RDEVTYPE,TYPTTY MUST BE TELEGRAPH TERMINAL @V240820 00333000
  335. MVI RDEVTMCD,RDEVUSC8 USASCII-8 @V240820 00334000
  336. SWCHMOD EQU * PERFORM THE MODE SWITCH @V240820 00335000
  337. OI NICSTAT,NICEPMD LINE WILL BE IN EP-MODE @V240820 00336000
  338. LR R9,R8 SAVE THE DYNAMIC RDEVBLOK @V240820 00337000
  339. L R8,SAVEWRK4 370X BASE RDEVBLOK FOR DMKRNH @V240820 00338000
  340. CALL DMKSCNRD GET THE BASE ADDRESS IN GR1 @V240820 00339000
  341. STH R1,RDEVBASE-RDEVBLOK(,R9) SET RDEVBASE @V240820 00340000
  342. OI RDEVFLAG,RDEVEPLN 370X HAS EP-MODE LINE ACTIVE@V240820 00341000
  343. LA R0,CSWLMEP SWITCH LINE MODE TO EMULATION @V240820 00342000
  344. LR R9,R7 NICBLOK TO GR9 FOR DMKRNH @VA01918 00343000
  345. CALL DMKRNHND,PARM=NORET SWITCH THE LINE MODE @VA01918 00344000
  346. B RETCOMP RETURN TO DMKNET @VA01918 00345000
  347. EJECT 00346000
  348. *. 00347000
  349. * SUBROUTINE NAME - 00348000
  350. * 00349000
  351. * DMKNESWN - SWITCH LINE MODE TO NCP-MODE 00350000
  352. * 00351000
  353. * ATTRIBUTES - 00352000
  354. * 00353000
  355. * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00354000
  356. * 00355000
  357. * ENTRY CONDITIONS - 00356000
  358. * 00357000
  359. * GR13 = STANDARD SAVEAREA ADDRESS 00358000
  360. * GR12 = ADDRESS OF DMKNESWN 00359000
  361. * GR11 = VALID VMBLOK ADDRESS 00360000
  362. * GR 8 = ADDRESS OF THE 370X RDEVBLOK 00361000
  363. * GR 7 = ADDRESS OF THE SPECIFIED NICBLOK 00362000
  364. * GR 1 = RESOURCE REFERENCE IN EBCDIC (4 CHARS) 00363000
  365. * 00364000
  366. * EXIT CONDITIONS - 00365000
  367. * 00366000
  368. * GR 0-1,3-13 RESTORED 00367000
  369. * GR2 = ZERO --> SUCCESSFUL COMPLETION 00368000
  370. * GR2 ¬= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00369000
  371. * 00370000
  372. * CALLS TO OTHER ROUTINES - 00371000
  373. * 00372000
  374. * DMKRNHND - TO SCHEDULE CONTROL FUNCTIONS FOR THE 370X NCP 00373000
  375. * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00374000
  376. * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00375000
  377. * 00376000
  378. * EXTERNAL REFERENCES - NONE 00377000
  379. * 00378000
  380. * TABLES / WORK AREAS - NONE 00379000
  381. * 00380000
  382. * REGISTER USAGE - 00381000
  383. * 00382000
  384. * GR14,15 EXTERNAL LINKAGE REGISTERS 00383000
  385. * GR13 - SAVEAREA ADDRESSABILITY 00384000
  386. * GR12 - MODULE BASE ADDRESSABILITY 00385000
  387. * GR11 - VMBLOK ADDRESSABILITY 00386000
  388. * GR 8 - RDEVBLOK ADDRESSABILITY 00387000
  389. * GR 7 - NICBLOK AND RCUBLOK ADDRESSABILITY 00388000
  390. * GR0-6,9 WORK REGISTERS 00389000
  391. * 00390000
  392. * NOTES - NONE 00391000
  393. * 00392000
  394. EJECT 00393000
  395. * OPERATION - 00394000
  396. * 00395000
  397. * 1. MAKE SURE THAT THE SPECIFIED RESOURCE IS A LINE, AND 00396000
  398. * THAT IT IS SWITCHABLE, AND IN EP-MODE AT THE MOMENT. 00397000
  399. * MAKE SURE THAT THE EP-MODE LINE IS NOT IN USE. 00398000
  400. * 00399000
  401. * 2. SWITCH THE LINE BACK TO NCP-MODE VIA CALL DMKRNHND. 00400000
  402. * 00401000
  403. * 3. IF THE RDEVBLOK IN EP-MODE WAS DYNAMICALLY ASSIGNED, 00402000
  404. * RETURN THE RDEVBLOK TO THE CHAIN OF DUMMY BLOCKS. 00403000
  405. * 00404000
  406. * ERROR MESSAGES - 00405000
  407. * 00406000
  408. * DMKNES006E INVALID DEVICE TYPE - XXXX 00407000
  409. * DMKNES049E DEV XXXX IN USE 00408000
  410. * DMKNES098E DEV XXXX MODE SWITCH NOT POSSIBLE 00409000
  411. *. 00410000
  412. EJECT 00411000
  413. DMKNESWN RELOC , NETWORK VARY NCP-MODE @V250820 00412000
  414. ST R1,SAVEWRK9 SAVE RESOURCE I.D. IN EBCDIC @VA01918 00413000
  415. SPACE 00414000
  416. TM NICTYPE,NICLINE IS THIS A LINE RESOURCE ? @V240820 00415000
  417. BZ NET006R NO -- CANNOT SWITCH IT @V240820 00416000
  418. TM NICSTAT,NICEPMD+NICSWEP SWITCHABLE, EP-MODE ? @V240820 00417000
  419. BNO NET098E NO -- ERROR @V240820 00418000
  420. STM R7,R8,SAVEWRK3 SAVE NICBLOK AND BASE RDEVBLOK @V240820 00419000
  421. LH R1,NICEPAD EMULATION SUB-CHANNEL ADDRESS @V240820 00420000
  422. CALL DMKSCNRU FIND THE REAL DEVICE BLOCKS @V240820 00421000
  423. BNZ NET098E NOT THERE - CANNOT SWITCH IT @V240820 00422000
  424. SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00422100
  425. TM RDEVFLAG,RDEVENAB IS THE EP-MODE LINE ENABLED @V240820 00423000
  426. BO NET049E YES - LINE IS IN USE @V240820 00424000
  427. TM RDEVSTAT,RDEVDED+RDEVIRM CHECK AGAIN @V240820 00425000
  428. BNZ NET049E YUP - IN USE @V240820 00426000
  429. OI RDEVSTAT,RDEVDISA VARY IT OFFLINE @V240820 00427000
  430. L R9,SAVEWRK3 NICBLOK TO GR9 FOR DMKRNHND @V240820 00428000
  431. ST R8,SAVEWRK3 SAVE THE RDEVBLOK ADDRESS @V240820 00429000
  432. L R8,SAVEWRK4 BASE RDEVBLOK TO GR8 @V240820 00430000
  433. LA R0,CSWLNCP SWITCH LINE MODE TO THE NCP @V240820 00431000
  434. CALL DMKRNHND,PARM=NORET,AFFINITY ... @V407511 00432100
  435. LR R7,R9 NICBLOK TO GR7 AGAIN @V240820 00433000
  436. NI NICSTAT,255-NICEPMD NO LONGER IN EP-MODE @V240820 00434000
  437. LA R7,NICSIZE*8(0,R7) POINT TO TERMINAL NICBLOK @VA01918 00435000
  438. NI NICSTAT,255-NICDISA VARY IT BACK ONLINE @VA01918 00436000
  439. L R8,SAVEWRK3 LINE RDEVBLOK AGAIN @V240820 00437000
  440. TM RDEVFLAG,RDEVEPMD WAS THE RDEVBLOK SWITCHED ? @V240820 00438000
  441. BZ RETCOMP NO -- JUST RETURN @VA01918 00439000
  442. L R7,RDEVCUA PHYSICAL CONTROL UNIT ADDRESS @V240820 00440000
  443. LH R1,RDEVADD DEVICE ADDRESS BY ITSELF @V240820 00441000
  444. SLL R1,1(0) SHIFT FOR RCUDVTBL INDEX @V240820 00442000
  445. L R2,FFS X'FFFFFFFF' @V240820 00443000
  446. STH R2,RCUDVTBL-RCUBLOK(R1,R7) DETACH RDEVBLOK @V240820 00444000
  447. STH R2,RDEVADD . . . @V240820 00445000
  448. L R7,SAVEWRK4 BASE RDEVBLOK TO GR7 @V240820 00446000
  449. L R6,RDEVEPDV-RDEVBLOK(,R7) START OF CHAIN @V240820 00447000
  450. ST R8,RDEVEPDV-RDEVBLOK(,R7) ADD THIS ONE @V240820 00448000
  451. ST R6,RDEVEPDV . . . @V240820 00449000
  452. B RETCOMP CONTINUE VARY IN DMKNET @VA01918 00450000
  453. EJECT 00451000
  454. *. 00452000
  455. * SUBROUTINE NAME - 00453000
  456. * 00454000
  457. * DMKNESDS - PROCESS NETWORK DISPLAY COMMAND OPTION 00455000
  458. * 00456000
  459. * ATTRIBUTES - 00457000
  460. * 00458000
  461. * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00459000
  462. * 00460000
  463. * ENTRY CONDITIONS - 00461000
  464. * 00462000
  465. * GR13 = STANDARD SAVEAREA ADDRESS 00463000
  466. * GR12 = ADDRESS OF DMKNESDS 00464000
  467. * GR11 = VALID VMBLOK ADDRESS 00465000
  468. * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00466000
  469. * 00467000
  470. * EXIT CONDITIONS - 00468000
  471. * 00469000
  472. * GR0-1,3-13 RESTORED 00470000
  473. * GR2 = ZERO --> COMPLETED SUCCESSFULLY 00471000
  474. * GR2 ¬= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00472000
  475. * 00473000
  476. * CALLS TO OTHER ROUTINES - 00474000
  477. * 00475000
  478. * DMKSCNFD - TO LOCATE COMMAND-LINE OPERANDS 00476000
  479. * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00477000
  480. * DMKCVTHB - TO CONVERT HEXADECIMAL TO BINARY VALUES 00478000
  481. * DMKCVTBH - TO CONVERT BINARY DATA FOR OUTPUT 00479000
  482. * DMKRNHND - TO READ 370X STORAGE VIA CONTROL COMMAND 00480000
  483. * DMKQCNWT - TO TYPE OUT 370X STORAGE CONTENTS 00481000
  484. * 00482000
  485. * EXTERNAL REFERENCES - NONE 00483000
  486. * 00484000
  487. * TABLES / WORK AREAS - NONE 00485000
  488. * 00486000
  489. * REGISTER USAGE - 00487000
  490. * 00488000
  491. * GR14-15 EXTERNAL LINKAGE REGISTERS 00489000
  492. * GR13 - SAVEAREA ADDRESSABILITY 00490000
  493. * GR12 - MODULE BASE ADDRESSABILITY 00491000
  494. * GR11 - VMBLOK ADDRESSABILITY 00492000
  495. * GR10 - BUFFER INDEX FOR BINARY DATA TO BE TYPED 00493000
  496. * GR 9 - PARM REG FOR DMKRNHND, OUTPUT BUFFER ADDRESS 00494000
  497. * GR 8 - RDEVBLOK ADDRESSABILITY 00495000
  498. * GR 7 - BUFFER INDEX FOR OUTPUT BUFFER FORMATTING 00496000
  499. * GR 6 - ADDRESSABILITY TO BUFFER FROM DMKRNHND 00497000
  500. * GR 4-5 DISPLAY ADDRESS CONTROL REGISTERS 00498000
  501. * GR 0-3 WORK REGISTERS 00499000
  502. * 00500000
  503. * NOTES - NONE 00501000
  504. * 00502000
  505. EJECT 00503000
  506. * OPERATION - 00504000
  507. * 00505000
  508. * 1. SCAN AND INTERPRET THE COMMAND LINE TO DETERMINE 00506000
  509. * WHICH 370X IS TO BE REFERENCED, AND WHICH ADDRESSES 00507000
  510. * ARE TO BE DISPLAYED. MAKE SURE THAT THE SPECIFIED 370X 00508000
  511. * HAS AN ACTIVE NETWORK CONTROL PROGRAM (OR PEP). 00509000
  512. * 00510000
  513. * 2. RETRIEVE THE REQUESTED DATA 32 BYTES AT A TIME VIA 00511000
  514. * CALLS TO DMKRNHND WITH THE 'DISPLAY STORAGE' COMMAND. 00512000
  515. * 00513000
  516. * 3. FORMAT THE DATA IN HEXADECIMAL FOR TYPING VIA CALLS 00514000
  517. * TO DMKQCNWT. STOP PROCESSING IF THE USER HITS THE 00515000
  518. * 'ATTN' KEY, OR IF AN ERROR IS RECEIVED FROM THE NCP. 00516000
  519. * 00517000
  520. * RESPONSES - 00518000
  521. * 00519000
  522. * ADDRES DATADATA DATADATA DATADATA DATADATA 00520000
  523. * 00521000
  524. * ERROR MESSAGES - 00522000
  525. * 00523000
  526. * DMKNES021E RADDR MISSING OR INVALID 00524000
  527. * DMKNES004E HEXLOC MISSING OR INVALID 00525000
  528. * DMKNES040E DEV XXX DOES NOT EXIST 00526000
  529. * DMKNES006E INVALID DEVICE TYPE - XXX 00527000
  530. * DMKNES046E CTLR XXX OFFLINE 00528000
  531. * DMKNES140E CTLR XXX ATTACHED TO USERIDXX 00529000
  532. * DMKNES009E INVALID RANGE - RANGE 00530000
  533. * DMKNES160E HEXLOC XXXXXX EXCEEDS STORAGE 00531000
  534. *. 00532000
  535. EJECT 00533000
  536. DMKNESDS RELOC , NETWORK DISPLAY - 370X STORAGE @V250820 00534000
  537. MVI SAVEWRK1,X'00' CLEAR FLAG FIELD @V2D3931 00535000
  538. SPACE 00536000
  539. CALL DMKSCNFD LOCATE THE RADDR OPERAND @V200820 00537000
  540. BNZ NET021E MISSING OR INVALID @V200820 00538000
  541. BAL R10,GETRDEV FIND AND VALIDATE THE RDEVBLOK @V240820 00539000
  542. SLR R1,R1 COMPUTE STORAGE SIZE OF THIS 370X@V200820 00540000
  543. IC R1,RDEVMDL MODEL NUMBER 1 - 8 @V200820 00541000
  544. SLL R1,14(0) MODEL TIMES 16K = STORAGE SIZE @V240820 00542000
  545. ST R1,SAVEWRK9 PUT IT DOWN FOR LATER @V200820 00543000
  546. CALL DMKSCNFD FIND THE STORAGE ADDRESS @V200820 00544000
  547. BNZ NET033E HEXLOC MISSING @V200820 00545000
  548. STM R0,R1,SAVEWRK2 SAVE THE FIRST SCAN RESULTS @V200820 00546000
  549. LR R3,R1 @V200820 00547000
  550. LR R2,R0 @V200820 00548000
  551. HEXSCAN EQU * SCAN FOR IMBEDDED DELIMITER @V200820 00549000
  552. MVI SAVEWRK1,DSPRANG ASSUME A RANGE FORMAT @V200820 00550000
  553. CLI 0(R1),C'-' CHECK FOR VALID DELIMITERS @V200820 00551000
  554. BE HEXDASH @V200820 00552000
  555. CLI 0(R1),C':' . . . @V200820 00553000
  556. BE HEXDASH @V200820 00554000
  557. MVI SAVEWRK1,DSPLNTH SHOW LENGTH SPECIFICATION @V200820 00555000
  558. CLI 0(R1),C'.' . . . @V200820 00556000
  559. BE HEXDASH @V200820 00557000
  560. LA R1,1(0,R1) NEXT CHARACTER @V200820 00558000
  561. BCT R0,HEXSCAN . . . @V200820 00559000
  562. MVI SAVEWRK1,DSPSCAN CALL TO DMKSCNFD NEEDED @V200820 00560000
  563. HEXDASH EQU * @V200820 00561000
  564. STH R0,SAVEWRK1+2 SAVE RESIDUAL LENGTH @V200820 00562000
  565. ST R1,SAVEWRK4 AND THE RESIDUAL ADDRESS @V200820 00563000
  566. SR R1,R3 R1 = LENGTH OF FIRST HEXLOC @V200820 00564000
  567. BNP NET004E INVALID IF NOT SOMETHING @V200820 00565000
  568. LR R0,R1 LENGTH TO GR0 @V200820 00566000
  569. LR R1,R3 START ADDRESS TO GR1 @V200820 00567000
  570. CALL DMKCVTHB ATTEMPT CONVERSION @V200820 00568000
  571. BNZ NET004E @V200820 00569000
  572. LR R4,R1 SAVE STARTING ADDRESS @V200820 00570000
  573. N R4,=F'-4' ROUND DOWN TO A FULL-WORD @V200820 00571000
  574. CL R4,SAVEWRK9 WITHIN BOUNDS OF 370X STORAGE ? @V200820 00572000
  575. BL HEXLOC1 YES -- @V200820 00573000
  576. L R2,SAVEWRK4 RESIDUAL ADDRESS FROM SCAN @V200820 00574000
  577. SR R2,R3 GR2 = LENGTH OF INVALID FIELD @V200820 00575000
  578. B NET160E @V200820 00576000
  579. SPACE 2 00577000
  580. HEXLOC1 EQU * CHECK FOR NEXT HALF OF RANGE @V200820 00578000
  581. LR R5,R4 DEFAULT ENDING = START ADDRESS @V200820 00579000
  582. LH R0,SAVEWRK1+2 RESIDUAL SCAN COUNT @V200820 00580000
  583. L R1,SAVEWRK4 ...AND ADDRESS @V200820 00581000
  584. CLI SAVEWRK1,DSPSCAN NEED TO CALL DMKSCNFD ? @V200820 00582000
  585. BNE HEXLOC2 NO -- @V200820 00583000
  586. CALL DMKSCNFD TRY TO FIND THE DELIMITER @V200820 00584000
  587. BNZ HEXLOCK NOPE - SINGLE ADDRESS @V200820 00585000
  588. MVI SAVEWRK1,DSPRANG ASSUME RANGE FORMAT @V200820 00586000
  589. CLI 0(R1),C'-' @V200820 00587000
  590. BE HEXLOC2 @V200820 00588000
  591. CLI 0(R1),C':' @V200820 00589000
  592. BE HEXLOC2 @V200820 00590000
  593. MVI SAVEWRK1,DSPLNTH MUST BE LENGTH FORMAT @V200820 00591000
  594. CLI 0(R1),C'.' @V200820 00592000
  595. BNE NET002E NOPE - INVALID OPERAND @V200820 00593000
  596. HEXLOC2 EQU * @V200820 00594000
  597. LA R1,1(0,R1) SKIP OVER THE DELIMITER @V200820 00595000
  598. LR R7,R1 SAVE LAST UN-SCANNED ADDRESS@V200820 00596000
  599. AR R7,R0 . . . @V200820 00597000
  600. ST R7,SAVEWRK4 . . . @V200820 00598000
  601. BCT R0,HEXLOC3 DECREMENT AND TEST COUNT @V200820 00599000
  602. CALL DMKSCNFD LOOK FOR SECOND RANGE OPERAND @V200820 00600000
  603. BNZ HEXLOC4 NOPE - DEFAULT TO END OF STORAGE @V200820 00601000
  604. HEXLOC3 EQU * @V200820 00602000
  605. CL R0,F3 MIGHT IT BE 'END' OPTION ? @V200820 00603000
  606. BNE HEXLOC5 NO -- TRY TO CONVERT IT @V200820 00604000
  607. CLC 0(3,R1),=C'END ' . . . @V200820 00605000
  608. BNE HEXLOC5 NO -- @V200820 00606000
  609. HEXLOC4 EQU * DEFAULT TO END OF 370X STORAGE @V200820 00607000
  610. L R5,SAVEWRK9 END OF STORAGE ADDRESS @V200820 00608000
  611. B HEXLOCD GO START THE DISPLAY @V200820 00609000
  612. SPACE 2 00610000
  613. * BITS DEFINED IN SAVEWRK1 FOR NETWORK DISPLAY: 00611000
  614. DSPRANG EQU X'80' DISPLAY - RANGE SPECIFIED @V200820 00612000
  615. DSPLNTH EQU X'40' DISPLAY - LENGTH SPECIFIED @V200820 00613000
  616. DSPSCAN EQU X'20' DISPLAY - CALL DMKSCNFD NEEDED @V200820 00614000
  617. DSPFRET EQU X'10' BTU BUFFER TO BE RELEASED @VA01893 00615000
  618. SPACE 1 00616000
  619. * BITS DEFINED IN SAVEWRK1 FOR 3270 REMOTE SUPPORT 00617000
  620. SHUT EQU X'01' PROCESS 3270 REMOTE SUPPORT @V2D3931 00618000
  621. POLLDLY EQU X'03' PROCESS POLLDLAY SUB-COMMAND @VM01029 00619000
  622. EJECT 00620000
  623. HEXLOC5 EQU * SETUP FOR SECOND PART OF RANGE @V200820 00621000
  624. LR R2,R0 SAVE THE LENGTH @V200820 00622000
  625. LR R3,R1 ...AND ADDRESS @V200820 00623000
  626. LA R7,0(R2,R3) GR7 = LAST UNSCANNED BYTE @V200820 00624000
  627. ST R7,SAVEWRK4 @V200820 00625000
  628. CALL DMKCVTHB TRY TO CONVERT @V200820 00626000
  629. BNZ NET004E NO GOOD @V200820 00627000
  630. S R1,F1 SUBTRACT 1 FROM LENGTH @VA02255 00628000
  631. BM NET004E MUST HAVE BEEN LENGTH OF ZERO!! @VA02255 00629000
  632. A R1,F1 RESTORE IT. @VA02255 00630000
  633. LR R5,R1 ENDING ADDRESS TO GR5 @V200820 00631000
  634. CL R5,SAVEWRK9 VALID ADDRESS ? @V200820 00632000
  635. BH NET160E NO -- @V200820 00633000
  636. TM SAVEWRK1,DSPLNTH IS IT REALLY A LENGTH ? @V200820 00634000
  637. BZ HEXLOCK NO -- ALL SET AS IS @V200820 00635000
  638. LA R5,0(R4,R5) ADD TO STARTING ADDRESS @V200820 00636000
  639. CL R5,SAVEWRK9 MAKE SURE THE LENGTH WAS O.K. @V200820 00637000
  640. BNH HEXLOCD YES -- START DISPLAY @VM01080 00638000
  641. LA R4,8(0,R5) FORCE AN INVALID RANGE @VM01080 00639000
  642. SPACE 00640000
  643. HEXLOCK EQU * VALIDATE THE SPECIFIED RANGE @V200820 00641000
  644. L R0,SAVEWRK4 SETUP IN CASE OF ERROR @V200820 00642000
  645. L R1,SAVEWRK3 @V200820 00643000
  646. SR R0,R1 LENGTH OF RANGE, INCLUDING BLANKS@V200820 00644000
  647. CLR R5,R4 IS THIS A VALID RANGE ? @V200820 00645000
  648. BL NET009E NO -- @V200820 00646000
  649. HEXLOCD EQU * START OF DISPLAY ROUTINE @V200820 00647000
  650. BCTR R5,0 DECREMENT END FOR TESTING @V200820 00648000
  651. LA R0,6 GET A DISPLAY BUFFER @V200820 00649000
  652. CALL DMKFREE @V200820 00650000
  653. LR R9,R1 ADDRESS VIA GR9 @V200820 00651000
  654. ST R9,SAVEWRK8 SAVE BUFFER ADDRESS HERE, ALSO @V240820 00652000
  655. HEXLOCW EQU * DISPLAY 16 BYTES OF 370X STORAGE @V200820 00653000
  656. L R9,RDEVNICL GR9 = ADDRESS OF BASE NICBLOK @V240820 00654000
  657. ST R4,SAVEWRK4 DISPLAY ADDRESS INTO SAVEAREA @V240820 00655000
  658. L R1,SAVEWRK9 END OF STORAGE TO GR1 @VA02195 00656000
  659. SR R1,R4 SEE IF WE ARE CLOSE TO THE END @VA02195 00657000
  660. CH R1,=H'32' WITHIN 32 BYTES OF THE END ? @VA02195 00658000
  661. BNL *+8 NO -- EVERYTHING'S O.K. @VA02195 00659000
  662. NI SAVEWRK4+3,X'E0' FORCE DOWN TO 32-BYTE BND @VA02195 00660000
  663. LA R1,SAVEWRK4 GR1 = ADDRESS OF BTU DATA FIELD @V240820 00661000
  664. LA R0,CDISPLY GR0 = DISPLAY STORAGE COMMAND @V240820 00662000
  665. CALL DMKRNHND,PARM=4(0) GR2 = DATA FIELD LENGTH @V240820 00663000
  666. LR R6,R1 SAVE RETURNED BTU ADDRESS @V200820 00664000
  667. CH R2,=H'12' 370X FAILURE ? @V200820 00665000
  668. BE HEXFRTX YES - QUIT RAPIDLY @V200820 00666000
  669. USING CONCCW3,R6 @V200820 00667000
  670. OI SAVEWRK1,DSPFRET BUFFER MUST BE RELEASED @VA01893 00668000
  671. CLI CONSYSR,X'60' COMPLETE WITHOUT ERROR ? @V200820 00669000
  672. BNE HEXFRTX NO -- BAIL OUT RIGHT AWAY @VA01893 00670000
  673. SPACE 00671000
  674. LR R10,R4 NEXT DISPLAY ADDRESS TO GR10 @VA02195 00672000
  675. SL R10,SAVEWRK4 COMPUTE BUFFER INDEX @VA02195 00673000
  676. HEXLOCT EQU * EDIT DATA FOR OUTPUT @V200820 00674000
  677. L R9,SAVEWRK8 POINTER TO THE DISPLAY BUFFER @VM01080 00675000
  678. MVC 0(8,R9),BLANKS CLEAR THE BUFFER @VM01080 00676000
  679. MVC 8(5*8,R9),0(R9) . . . @VM01080 00677000
  680. LR R1,R4 GR4 = START ADDR FOR THIS LINE @VA02195 00678000
  681. CALL DMKCVTBH CONVERT ADDRESS TO EBCDIC @V200820 00679000
  682. STH R0,0(0,R9) USE SIX BYTES FOR ADDRESS @V200820 00680000
  683. STCM R1,15,2(R9) @V200820 00681000
  684. LA R7,10(0,R9) FIRST DATA WORD SLOT @V200820 00682000
  685. LA R3,4(0,0) NUMBER OF TIMES THROUGH LOOP @V200820 00683000
  686. HEXLOCE EQU * @V200820 00684000
  687. L R1,CONDATA+4(R10) NEXT DATA WORD @V200820 00685000
  688. CALL DMKCVTBH @V200820 00686000
  689. STCM R0,15,0(R7) @V200820 00687000
  690. STCM R1,15,4(R7) @V200820 00688000
  691. LA R4,4(0,R4) NEXT STORAGE ADDRESS @V200820 00689000
  692. LA R7,10(0,R7) NEXT OUTPUT SLOT @V200820 00690000
  693. CR R4,R5 HAVE WE HIT THE END YET ? @V200820 00691000
  694. BH HEXLOCC YES - CLEAN UP AND GET OUT @V200820 00692000
  695. LA R10,4(0,R10) NEXT RETURNED DATA WORD @V200820 00693000
  696. BCT R3,HEXLOCE @V200820 00694000
  697. SPACE 00695000
  698. HEXLOCC EQU * WRITE ONE CONSOLE LINE @V200820 00696000
  699. LA R0,6*8 LENGTH FOR WRITE @V200820 00697000
  700. LR R1,R9 START ADDRESS @V200820 00698000
  701. CALL DMKQCNWT,PARM=0 WAIT FOR THE RESPONSE @V200820 00699000
  702. BNZ HEXFRTX SOMETHING WRONG - QUIT NOW @V200820 00700000
  703. CR R4,R5 WAS THAT THE LAST ONE ? @V200820 00701000
  704. BNL HEXFRTX YES -- RELEASE BUFFERS + EXIT @VA01893 00702000
  705. CH R10,=H'32' ANY MORE IN THIS BUFFER ? @VA02195 00703000
  706. BL HEXLOCT YES -- FORMAT ANOTHER LINE @VA02195 00704000
  707. LH R0,CONCCW3 SIZE OF THE BTU BUFFER @VA01893 00705000
  708. LR R1,R6 . . . @VA01893 00706000
  709. CALL DMKFRET RELEASE THIS BTU @VA01893 00707000
  710. NI SAVEWRK1,255-DSPFRET . . . @VA01893 00708000
  711. B HEXLOCW GO GET SOME MORE DATA @VA01893 00709000
  712. EJECT 00710000
  713. HEXFRTX EQU * CLEAN UP AND EXIT TO DMKCFM @V200820 00711000
  714. L R1,SAVEWRK8 ADDRESS OF THE DISPLAY BUFFER @V240820 00712000
  715. LA R0,6 @V200820 00713000
  716. CALL DMKFRET RELEASE THE DISPLAY BUFFER @V200820 00714000
  717. SPACE 00715000
  718. TM SAVEWRK1,DSPFRET BTU BUFFER TO BE RELEASED ? @VA01893 00716000
  719. BZ RETCOMP NOPE - ALL FINISHED @VA01893 00717000
  720. LH R0,CONCCW3 SIZE OF THE BUFFER @VA01893 00718000
  721. LR R1,R6 . . . @VA01893 00719000
  722. CALL DMKFRET RETURN IT TO FREE STORAGE @VA01893 00720000
  723. B RETCOMP COMMAND IS COMPLETE - NO MSG @V200820 00721000
  724. DROP R6 @VA01893 00722000
  725. EJECT 00723000
  726. *. 00724000
  727. * SUBROUTINE NAME - 00725000
  728. * 00726000
  729. * DMKNESTR - PROCESS THE 'NETWORK TRACE' COMMAND OPTIONS 00727000
  730. * 00728000
  731. * ATTRIBUTES - 00729000
  732. * 00730000
  733. * SERIALLY REUSEABLE, PAGEABLE, CALLED VIA SVC FROM DMKNET 00731000
  734. * 00732000
  735. * ENTRY CONDITIONS - 00733000
  736. * 00734000
  737. * GR13 = STANDARD SAVEAREA ADDRESS 00735000
  738. * GR12 = ADDRESS OF DMKNESTR 00736000
  739. * GR11 = VALID VMBLOK ADDRESS 00737000
  740. * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00738000
  741. * 00739000
  742. * EXIT CONDITIONS - 00740000
  743. * 00741000
  744. * GR0-1,3-13 RESTORED 00742000
  745. * GR2 = ZERO --> SUCCESSFUL COMPLETION 00743000
  746. * GR2 ¬= ZERO --> ERROR MESSAGE HAS BEEN ISSUED 00744000
  747. * 00745000
  748. * CALLS TO OTHER ROUTINES - 00746000
  749. * 00747000
  750. * DMKSCNFD - TO LOCATE COMMAND-LINE OPERANDS 00748000
  751. * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00749000
  752. * DMKCVTHB - TO CONVERT HEXADECIMAL FIELDS TO BINARY 00750000
  753. * DMKERMSG - TO FORMAT AND TYPE ERROR MESSAGES 00751000
  754. * DMKQCNWT - TO WRITE COMPLETION RESPONSE 00752000
  755. * 00753000
  756. * EXTERNAL REFERENCES - 00754000
  757. * 00755000
  758. * DMKRIORN - TABLE OF 370X INTERFACES IN DMKRIO 00756000
  759. * DMKRNHTR - HOLD FIELD FOR TRACE USERID IN DMKRNH 00757000
  760. * 00758000
  761. * TABLES / WORK AREAS - NONE 00759000
  762. * 00760000
  763. * REGISTER USAGE - 00761000
  764. * 00762000
  765. * GR14-15 EXTERNAL LINKAGE REGISTERS 00763000
  766. * GR13 - SAVEAREA ADDRESSABILITY 00764000
  767. * GR12 - MODULE BASE ADDRESSABILITY 00765000
  768. * GR11 - VMBLOK ADDRESSABILITY 00766000
  769. * GR10 - INTERNAL LINKAGE REGISTER 00767000
  770. * GR 9 - CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00768000
  771. * GR 8 - RDEVBLOK ADDRESSABILITY 00769000
  772. * GR 7 - NICBLOK ADDRESSABILITY 00770000
  773. * GR 0-6 WORK REGISTERS 00771000
  774. * 00772000
  775. * NOTES - NONE 00773000
  776. * 00774000
  777. EJECT 00775000
  778. * OPERATION - 00776000
  779. * 00777000
  780. * 1. VALIDATE THE SPECIFIED OPTION. IF TRACE IS ALREADY 00778000
  781. * ACTIVE, MAKE SURE THIS IS THE SAME USER WHO PREVIOUSLY 00779000
  782. * ISSUED THE NETWORK TRACE COMMAND(S). 00780000
  783. * 00781000
  784. * 2. IF 'END' SPECIFIED, TERMINATE TRACING BY MOVING 00782000
  785. * BLANKS INTO 'DMKRNHTR' - DMKRNH WILL STOP TRACING LATER 00783000
  786. * 00784000
  787. * 3. IF 'BTU' TRACE REQUESTED, TURN ON 'RDEVTBTU' IN THE 00785000
  788. * 370X RDEVBLOK, MOVE THE USERID INTO DMKRNHTR. 00786000
  789. * 00787000
  790. * 4. IF LINE TRACE REQUESTED, FILL IN DMKRNHTR, THEN START 00788000
  791. * THE TRACE VIA A CALL TO DMKRNHND FOR 'CACTLTR' COMMAND. 00789000
  792. * 00790000
  793. * RESPONSES - 00791000
  794. * 00792000
  795. * TRACE STARTED - FOR NETWORK TRACE BTU OR RESOURCE 00793000
  796. * COMMAND COMPLETE - FOR NETWORK TRACE END 00794000
  797. * 00795000
  798. * ERROR MESSAGES - 00796000
  799. * 00797000
  800. * DMKNES006E INVALID DEVICE TYPE - XXX 00798000
  801. * DMKNES026E OPERAND MISSING OR INVALID 00799000
  802. * DMKNES021E RADDR MISSING OR INVALID 00800000
  803. * DMKNES040E DEV XXX DOES NOT EXIST 00801000
  804. * DMKNES046E DEV XXX OFFLINE 00802000
  805. * DMKNES140E CTLR XXX ATTACHED TO USERIDXX 00803000
  806. * DMKNES002E INVALID OPERAND - OPERAND 00804000
  807. * DMKNES049E DEV XXXX IN USE 00805000
  808. * DMKNES175E NETWORK TRACE ALREADY IN USE BY USERIDXX 00806000
  809. *. 00807000
  810. EJECT 00808000
  811. DMKNESTR RELOC , NETWORK TRACE BTU RADDR @V250820 00809000
  812. MVI SAVEWRK1,X'00' CLEAR FLAG FIELD @V2D3931 00810000
  813. SPACE 00811000
  814. CALL DMKSCNFD LOCATE THE SECOND PARM @V200820 00812000
  815. BNZ NET026E IT IS A REQUIRED OPERAND @V200820 00813000
  816. L R4,=A(DMKRNHTR) HOLD FIELD FOR TRACE USERID @V200820 00814000
  817. CLC 0(8,R4),BLANKS IN USE AT ALL ? @V200820 00815000
  818. BE NETRA01A NO -- O.K. @V200820 00816000
  819. CLC 0(8,R4),VMUSER IN USE BY SOMEONE ELSE ? @V200820 00817000
  820. BNE NET175E YES -- ERROR @V200820 00818000
  821. NETRA01A EQU * @V200820 00819000
  822. CL R0,F3 PARM LONGER THAN 'BTU' ? @V200820 00820000
  823. BNE NETRA02 YES -- CHECK FOR RESOURCE I.D. @V200820 00821000
  824. CLC 0(3,R1),=C'BTU ' BTU TRACE REQUEST ? @V200820 00822000
  825. BNE NETRA01 NO -- CHECK FOR TRACE END @VM01006 00823000
  826. CALL DMKSCNFD SCAN FOR THE DEVICE ADDRESS @V200820 00824000
  827. BNZ NET021E RADDR MISSING OR INVALID @V200820 00825000
  828. BAL R10,GETRDEV FIND AND VALIDATE THE RDEVBLOK @V240820 00826000
  829. L R4,=A(DMKRNHTR) HOLD FIELD FOR TRACE USERID @V200820 00827000
  830. MVC 0(8,R4),VMUSER TRACE FOR THIS USER @V200820 00828000
  831. SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00828100
  832. OI RDEVFLAG,RDEVTBTU TURN ON BTU TRACING @V200820 00829000
  833. B NETRAST GIVE VERIFICATION MESSAGE @V200820 00830000
  834. SPACE 00831000
  835. NETRA01 EQU * CHECK FOR TRACE TERMINATION @VM01006 00832000
  836. CLC 0(3,R1),=C'END ' TERMINATION REQUEST ? @VM01006 00833000
  837. BNE NET002E NO -- INVALID OPERAND @VM01006 00834000
  838. MVC 0(8,R4),BLANKS CLEAR OUT USERID (DMKRNHTR) @VM01006 00835000
  839. B CMDCOMP COMMAND IS COMPLETE @VM01006 00836000
  840. EJECT 00837000
  841. NETRA02 EQU * MAYBE 'TRACE RESOURCE' FORM @V200820 00838000
  842. BAL R10,SCANCVT VALIDATE R.I.D. AND GET NICBLOK @V200820 00839000
  843. TM NICTYPE,NICLINE IS THIS A LINE ? @V200820 00840000
  844. BZ NET006R NO -- NOT VALID FOR TERMINAL@V200820 00841000
  845. TM NICSTAT,NICEPMD IN EMULATOR MODE ? @V200820 00842000
  846. BO NET049E YES - CALL IT IN USE @V200820 00843000
  847. TM NICSTAT,NICDISA IS THE LINE ACTIVE ? @VM01011 00844000
  848. BO NET046R NO -- CAN'T USE LINE TRACE @VM01011 00845000
  849. TM NICSTAT,NICLTRC IS TRACE ALREADY ACTIVE ? @V200820 00846000
  850. BO RETCOMP YES - JUST EXIT @V200820 00847000
  851. OI NICSTAT,NICLTRC LINE TRACE IS ACTIVE @V200820 00848000
  852. L R4,=A(DMKRNHTR) HOLD FIELD FOR TRACE USERID @V200820 00849000
  853. MVC 0(8,R4),VMUSER TRACE FOR THIS USER @V200820 00850000
  854. LA R0,CACTLTR ACTIVATE LINE TRACE @V200820 00851000
  855. LA R1,F4+3 TIME INTERVAL = 0.4 SECONDS @VM01016 00852000
  856. LR R9,R7 NICBLOK TO GR9 FOR DMKRNHND @VM01016 00853000
  857. CALL DMKRNHND,PARM=NORET+1 DATA LENGTH = ONE BYTE @VM01016 00854000
  858. NETRAST EQU * MESSAGE AT END OF COMMAND @V200820 00855000
  859. MSG 'TRACE STARTED' @V200820 00856000
  860. CALL DMKQCNWT,PARM=NORET @V200820 00857000
  861. B RETCOMP RETURN TO DMKCFM @V200820 00858000
  862. EJECT 00859000
  863. *. 00860000
  864. * SUBROUTINE NAME - 00861000
  865. * 00862000
  866. * DMKNESPL - PROCESS THE 'NETWORK POLLDLAY' COMMAND 00863000
  867. * 00864000
  868. * ATTRIBUTES - 00865000
  869. * 00866000
  870. * RE-ENTRANT, PAGEABLE, CALLED VIA SVC FROM DMKNETWK 00867000
  871. * 00868000
  872. * ENTRY CONDITIONS - 00869000
  873. * 00870000
  874. * GR13 = STANDARD SAVEAREA ADDRESS 00871000
  875. * GR12 = ADDRESS OF DMKNESHD 00872000
  876. * GR11 = VALID VMBLOK ADDRESS 00873000
  877. * GR 9 = CONSOLE FUNCTION COMMAND BUFFER ADDRESS 00874000
  878. * 00875000
  879. * EXIT CONDITIONS - 00876000
  880. * 00877000
  881. * GR0-1, 3-13 RESTORED 00878000
  882. * GR2 = ZERO --> SUCCESSFULL EXECUTION 00879000
  883. * GR2 ¬= ZERO -> ERROR MESSAGE HAS BEEN ISSUED 00880000
  884. * 00881000
  885. * CALLS TO OTHER ROUTINES - 00882000
  886. * 00883000
  887. * DMKSCNFD - TO LOCATE COMMAND OPERANDS 00884000
  888. * DMKSCNRU - TO LOCATE REAL DEVICE CONTROL BLOCKS 00885000
  889. * DMKCVTDB - TO CONVERT DECIMAL TO BINARY 00886000
  890. * 00887000
  891. * EXTERNAL REFERENCES - 00888000
  892. * 00889000
  893. * DMKRIORN - TABLE OF 3270 REMOTE BISYNC LINES IN DMKRIO 00890000
  894. * 00891000
  895. * TABLES / WORK AREAS - NONE 00892000
  896. * 00893000
  897. * REGISTER USAGE - 00894000
  898. * 00895000
  899. * GR14-15 EXTERNAL LINKAGE REGISTERS 00896000
  900. * GR13 - SAVEAREA ADDRESSABILITY 00897000
  901. * GR12 - MODULE BASE ADDRESSABILITY 00898000
  902. * GR11 - VMBLOK ADDRESSABILITY 00899000
  903. * GR10 - INTERNAL LINKAGE REGISTER 00900000
  904. * GR 9 - COMMAND BUFFER ADDRESSABILITY 00901000
  905. * GR 8 - RDEVBLOK ADDRESSABILITY 00902000
  906. * GR 7 - NICBLOK ADDRESSABILITY 00903000
  907. * GR 0-6 WORK REGISTERS 00904000
  908. * 00905000
  909. * NOTES - NONE 00906000
  910. * 00907000
  911. * OPERATION - 00908000
  912. * 00909000
  913. * 1. VALIDATE THE OPERAND SPECIFIED. IF NONE, ASSUME 'ALL'. 00910000
  914. * DMKQCNTO. MARK THE 370X AS FREE. 00911000
  915. * 00912000
  916. * RESPONSES - 00913000
  917. * 00914000
  918. * COMMAND COMPLETE 00915000
  919. * 00916000
  920. * ERROR MESSAGES - 00917000
  921. * 00918000
  922. * DMKNES002E INVALID OPERAND - OPERAND 00919000
  923. * DMKNES006E INVALID DEVICE TYPE - XXX 00920000
  924. * DMKNES021E RADDR MISSING OR INVALID 00921000
  925. * DMKNES040E DEV XXX DOES NOT EXIST 00922000
  926. * DMKNES046E LINE XXX OFFLINE 00923000
  927. * DMKNES706E LINE XXX NOT ENABLED 00924000
  928. *. 00925000
  929. SPACE 2 00926000
  930. DMKNESPL RELOC , NETWORK POLLDLAY NNNN RADDR @V2D3931 00927000
  931. MVI SAVEWRK1,POLLDLY SET INDICATOR FOR POLL DELAY @VM01029 00928000
  932. CALL DMKSCNFD WAS AN INTERVAL TIME SPECIFIED @V2D3931 00929000
  933. BNZ NET026E IT IS A REQUIRED OPERAND @V2D3931 00930000
  934. CL R0,F4 MUST BE LESS THAN FIVE CHARS @V2D3931 00931000
  935. BH NET002E NO, INVALID OPERAND @V2D3931 00932000
  936. STM R0,R1,SAVEWRK2 SAVE PARAMETER REGISTERS @V2D3931 00933000
  937. CALL DMKCVTDB CONVERT DECIMAL TO BINARY @V2D3931 00934000
  938. BNZ NET026E INVALID OPERAND @V2D3931 00935000
  939. LTR R5,R1 TIME INTERVAL (IN TENTHS OF A @VA13093 00936100
  940. * SECOND) GREATER THAN ZERO? 00936200
  941. LM R0,R1,SAVEWRK2 GET PARAMETER REGISTERS @V2D3931 00938000
  942. BNP NET002E NO - ISSUE ERROR MESSAGE @VA13093 00938100
  943. CALL DMKSCNFD WAS AN ADDRESS SPECIFIED @V2D3931 00939000
  944. BNZ NESPOLL NO, DEFAULT IS -ALL- @V2D3931 00940000
  945. CL R0,F3 MUST BE LESS THAN FOUR CHARS @V2D3931 00941000
  946. BH NET002E NO, INVALID OPERAND @V2D3931 00942000
  947. CLC 0(3,R1),=C'ALL ' WAS ALL SPECIFIED ? @V2D3931 00943000
  948. BE NESPOLL YES, GO SET TIME FOR ALL LINES @V2D3931 00944000
  949. BAL R10,GETRDEV FIND AND VALIDATE REAL DEVICE @V2D3931 00945000
  950. TM RDEVFLAG,RDEVDISB IS THE LINE DISABLED @VM01024 00946000
  951. BO NES706E YES, SEND DISABLED LINE MESSAGE @VM01024 00947000
  952. ST R5,RDEVPDLY SAVE THE INTERVAL TIME (SECONDS) @V2D3931 00948000
  953. B CMDCOMP ALL DONE - GET OUT @V2D3931 00949000
  954. NESPOLL EQU * PROCESS ALL BISYNC LINES @V2D3931 00950000
  955. BAL R10,NETWALL FIND THE FIRST BISYNC LINE @V2D3931 00951000
  956. BNZ CMDCOMP IF NONE, GET OUT @V2D3931 00952000
  957. NESPOLL1 EQU * SET TIME VALUE IN RDEVBLOK @V2D3931 00953000
  958. CLI RDEVTYPC,CLASTERM IS THIS A BISYNC LINE ? @V2D3931 00954000
  959. BNE *+16 NO, BYPASS SETTING INTERVAL @VM01024 00955000
  960. TM RDEVFLAG,RDEVDISB IS THE LINE DISABLED @VM01024 00956000
  961. BO *+8 YES, BYPASS SAVING INTERVAL @VM01024 00957000
  962. ST R5,RDEVPDLY SAVE INTERVAL TIME IN RDEVBLOK @V2D3931 00958000
  963. BAL R10,NETFALL LOOK FOR ANOTHER BISYNC LINE @V2D3931 00959000
  964. BZ NESPOLL1 SET INTERVAL TIME FOR THIS DEVICE@V2D3931 00960000
  965. B CMDCOMP ALL DONE @V2D3931 00961000
  966. EJECT 00962000
  967. NETWALL EQU * SETUP TO LOOP THROUGH 370X DEVICE@V2D3931 00963000
  968. L R8,=A(DMKRIORN) DEVICE TABLE FOR 3705'S @V200820 00964000
  969. L R7,0(0,R8) COUNT OF 370X DEVICE ENTRIES @V200820 00965000
  970. LTR R7,R7 ARE THERE ANY AT ALL ? @V200820 00966000
  971. BNP NETMALL NO -- ALL HAVE BEEN PROCESSED @V200820 00967000
  972. SLL R7,2(0) CONVERT TO MAXIMUM INDEX @V200820 00968000
  973. LA R7,0(R7,R8) POINT TO LAST ENTRY @V200820 00969000
  974. STM R7,R8,SAVEWRK7 SAVE POINTERS IN SAVE-AREA @V200820 00970000
  975. MVI SAVEWRK1+1,X'FF' SET DEVICE CODE TO X'-1' @V200820 00971000
  976. SPACE 2 00972000
  977. NETFALL EQU * LOOP THRU ALL DEVICES, ALL LINES @V200820 00973000
  978. LM R7,R8,SAVEWRK7 PICK UP DMKRIO POINTERS @V200820 00974000
  979. LA R8,4(0,R8) NEXT ENTRY IN DEVICE TABLE @V200820 00975000
  980. CLR R8,R7 HAVE WE HIT THE END ? @V200820 00976000
  981. BH NETMALL YES - ALL HAVE BEEN PROCESSED @V200820 00977000
  982. STM R7,R8,SAVEWRK7 RESET POINTERS FOR NEXT PASS @V200820 00978000
  983. SLR R7,R7 @V200820 00979000
  984. IC R7,SAVEWRK1+1 PICK UP PREVIOUS DEVICE CODE @V200820 00980000
  985. LA R7,1(0,R7) THIS IS THE NEXT 370X @V200820 00981000
  986. STC R7,SAVEWRK1+1 RESET FOR FORMATTING USE @V200820 00982000
  987. OI SAVEWRK1+1,X'F0' BINARY TO DECIMAL (CHEATING)@V200820 00983000
  988. LH R8,0(0,R8) PICK UP DISPLACEMENT TO RDEVBLOK @V200820 00984000
  989. SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00985000
  990. AL R8,ARIODV INDEX TO THE RDEVBLOK @V200820 00986000
  991. TM RDEVSTAT,RDEVDED+RDEVDISA+RDEVNRDY O.K. ? @V200820 00987000
  992. BNZ NETFALL NO -- @V200820 00988000
  993. ICM R7,15,RDEVCTRS DO WE HAVE SDR COUNTERS ?? @VA03757 00988050
  994. BNP CONTINLP NO @VA03757 00988100
  995. CALL DMKIOESR,AFFINITY YES, GO BUILD AND RECORD OBR @V407511 00988160
  996. * SYNCHRONOUSLY 00988200
  997. CONTINLP EQU * @VA03757 00988250
  998. CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 00989000
  999. BE *+12 YES, BYPASS TEST @V2D3931 00990000
  1000. TM RDEVFLAG,RDEVLNCP IS THERE AN NCP ACTIVE ? @V200820 00991000
  1001. BZ NETFALL NO -- NO RESOURCES @V200820 00992000
  1002. L R7,RDEVNICL FIRST NICBLOK = RESOURCE ZERO @V200820 00993000
  1003. CR R7,R7 SET CONDITION CODE ZERO @V200820 00994000
  1004. BR R10 RETURN TO CALLER @V200820 00995000
  1005. SPACE 00996000
  1006. NETMALL EQU * ALL 370X DEVICES HAVE BEEN DONE @V200820 00997000
  1007. SLR R8,R8 SET CONDITION CODE TWO (LOGICAL) @V200820 00998000
  1008. BR R10 RETURN @V200820 00999000
  1009. EJECT 01000000
  1010. SCANRID EQU * SCAN FOR RID - LOCATE NICBLOK @V200820 01001000
  1011. L R9,SAVER9 MAKE SURE WE HAVE THE BUFFER @V240820 01002000
  1012. CALL DMKSCNFD SCAN FOR NEXT PARAMETER @V200820 01003000
  1013. BCR 7,R10 IF NO MORE - RETURN @V200820 01004000
  1014. SCANCVT EQU * ENTRY AFTER CALL TO DMKSCNFD @V200820 01005000
  1015. LR R2,R0 SAVE LENGTH AND ADDRESS FOR MSGS @V200820 01006000
  1016. LR R3,R1 ... @V200820 01007000
  1017. CL R0,F4 FIELD MUST BE FOUR CHARACTERS @V240820 01008000
  1018. BNE NET002R NOPE - ERROR @V240820 01009000
  1019. MVC SAVEWRK9(4),0(R1) SAVE THE RESOURCE I.D. @V240820 01010000
  1020. CALL DMKCVTHB CONVERT ENTIRE FIELD TO BINARY @V200820 01011000
  1021. BNZ NET002R INVALID OPERAND @V200820 01012000
  1022. LR R7,R1 @V200820 01013000
  1023. N R7,F4095 ISOLATE RESOURCE ID PORTION @V200820 01014000
  1024. SRL R1,12(0) ...AND DEVICE CODE INDICATOR @V200820 01015000
  1025. STC R1,SAVEWRK1+1 SAVE DEVICE CODE FOR LATER @V200820 01016000
  1026. OI SAVEWRK1+1,X'F0' FAST BINARY TO DECIMAL @V200820 01017000
  1027. LA R1,1(0,R1) ADD ONE FOR INDEXING @V200820 01018000
  1028. L R4,=A(DMKRIORN) TABLE OF 3705 RDEVBLOK'S @V200820 01019000
  1029. CL R1,0(0,R4) IS THIS A VALID CODE ? @V200820 01020000
  1030. BH NET040E NO -- DEVICE DOES NOT EXIST @V200820 01021000
  1031. SLL R1,2(0) CONVERT TO FULL-WORD INDEX @V200820 01022000
  1032. LH R8,0(R1,R4) PICK UP DISPLACEMENT TO RDEVBLOK @V200820 01023000
  1033. SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 01024000
  1034. AL R8,ARIODV ...COMPUTE RDEVBLOK ADDRESS @V200820 01025000
  1035. TM RDEVSTAT,RDEVDISA IS THE 3705 OFFLINE ? @V200820 01026000
  1036. BO NET046E YES -- DMKNES046E @V200820 01027000
  1037. TM RDEVSTAT,RDEVDED IS 3705 ATTACHED TO A USER ?@V200820 01028000
  1038. BO NET140E YES -- DMKNES140E @V200820 01029000
  1039. TM RDEVFLAG,RDEVLNCP IS THERE AN NCP ACTIVE ? @V200820 01030000
  1040. BZ NET040E NO -- DEV DOES NOT EXIST @V200820 01031000
  1041. CH R7,RDEVMAX WITHIN DEFINED RANGE ? @V200820 01032000
  1042. BH NET040E NO -- @V200820 01033000
  1043. MH R7,=AL2(NICSIZE*8) COMPUTE INDEX TO NICBLOK @V200820 01034000
  1044. AL R7,RDEVNICL ...AND ADDRESS @V200820 01035000
  1045. SR R0,R0 SET CC = 0 @V200820 01036000
  1046. BR R10 RETURN TO CALLER @V200820 01037000
  1047. EJECT 01038000
  1048. CMDCOMP EQU * COMMAND IS COMPLETE @V200820 01039000
  1049. TM VMOSTAT,VMVIRCF DIAGNOSE CONSOLE FUNCTION ? @V200820 01040000
  1050. BO RETCOMP YES - SUPPRESS THE MESSAGE @V200820 01041000
  1051. MSG 'COMMAND COMPLETE' VERIFICATION MESSAGE @V200820 01042000
  1052. CALL DMKQCNWT,PARM=NORET @V200820 01043000
  1053. RETCOMP EQU * SET RETURN CODE, EXIT @V200820 01044000
  1054. SLR R2,R2 RETURN CODE = ZERO @V200820 01045000
  1055. ST R2,SAVER2 @V200820 01046000
  1056. EXIT , RETURN TO DMKCFM @V200820 01047000
  1057. SPACE 2 01048000
  1058. GETRDEV EQU * CHECK VALIDITY OF 370X ADDRESS @V240820 01049000
  1059. CL R0,F3 THREE CHARACTERS MAX FOR ADDRESS @V240820 01050000
  1060. BH NET021E INVALID DEVICE ADDRESS @V240820 01051000
  1061. LR R2,R0 SAVE LENGTH AND ADDRESS FOR MSGS @V240820 01052000
  1062. LR R3,R1 . . . @V240820 01053000
  1063. CALL DMKCVTHB ATTEMPT BINARY CONVERSION @V240820 01054000
  1064. BNZ NET021E NOPE - ERROR @V240820 01055000
  1065. CALL DMKSCNRU FIND THE REAL DEVICE BLOCKS @V240820 01056000
  1066. BNZ NET040E DEVICE DOES NOT EXIST @V240820 01057000
  1067. SPACE 01058000
  1068. USING RDEVBLOK,R8 @V200820 01059000
  1069. TM SAVEWRK1,SHUT IS THIS FOR 3270 REMOTE SUPPORT @V2D3931 01060000
  1070. BZ CONTIN NO, CONTINUE @V2D3931 01061000
  1071. CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 01062000
  1072. BNE CONTIN NO, CONTINUE PROCESSING @V2D3931 01063000
  1073. TM RDEVTYPE,TYPBSC IS THIS A BISYNC LINE ? @V2D3931 01064000
  1074. BO BYPAS YES, BYPASS TEST FOR 370X @V2D3931 01065000
  1075. CONTIN EQU * @V2D3931 01066000
  1076. TM SAVEWRK1,POLLDLY IS THIS A POLL DELAY FUNCTION @VM01029 01067000
  1077. BO NET006E YES, SEND INVALID DEVICE TYPE @VM01029 01068000
  1078. LA R0,CLASSPEC*256+TYP3705 @V200820 01069000
  1079. CH R0,RDEVTYPC IS THIS REALLY A 370X ? @V200820 01070000
  1080. BNE NET006E NO -- @V200820 01071000
  1081. BYPAS EQU * @V2D3931 01072000
  1082. TM RDEVSTAT,RDEVDISA OFFLINE ? @V200820 01073000
  1083. BO NET046E YES -- @V200820 01074000
  1084. TM RDEVSTAT,RDEVDED DEDICATED ? @V200820 01075000
  1085. BO NET140E YES -- @V200820 01076000
  1086. TM RDEVSTAT,RDEVNRDY IS THE FUNCTION AVAILABLE ? @V200820 01077000
  1087. BO NET006E NO -- FOR NOW, INVALID TYPE @V200820 01078000
  1088. CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS @V2D3931 01079000
  1089. BER R10 YES, RETURN TO IN LINE CODE @V2D3931 01080000
  1090. TM RDEVFLAG,RDEVLNCP SAME TEST @V200820 01081000
  1091. BZ NET006E SAME ERROR @V200820 01082000
  1092. BR R10 @V240820 01083000
  1093. EJECT 01084000
  1094. NET002R EQU * @V200820 01085000
  1095. LR R0,R2 RECOVER ORIGINAL LENGTH @V200820 01086000
  1096. LR R1,R3 ...AND DATA ADDRESS @V200820 01087000
  1097. NET002E EQU * DMKNES002E INVALID OPERAND - OPERAND @V200820 01088000
  1098. LA R2,002(0) MESSAGE NUMBER @V200820 01089000
  1099. B MSGSEND R0, R1 ALREADY SETUP @V200820 01090000
  1100. SPACE 01091000
  1101. NET004E EQU * DMKNES004E INVALID HEXLOC - HEXLOC @V200820 01092000
  1102. LR R0,R2 PARM LENGTH @V200820 01093000
  1103. LR R1,R3 PARM ADDRESS @V200820 01094000
  1104. LA R2,004(0) MESSAGE NUMBER @V200820 01095000
  1105. B MSGSEND @V200820 01096000
  1106. SPACE 01097000
  1107. NET006E EQU * DMKNES006E INVALID DEVICE TYPE - RADDR @V200820 01098000
  1108. BAL R9,CVTRADD GET DEVICE ADDRESS IN EBCDIC @V200820 01099000
  1109. LA R2,006(0) MESSAGE NUMBER @V200820 01100000
  1110. B MSGSEND @V200820 01101000
  1111. SPACE 01102000
  1112. NET006R EQU * DMKNES006E INVALID DEVICE TYPE - RID @V200820 01103000
  1113. LA R1,SAVEWRK9 POINT TO THE OPERAND @V240820 01104000
  1114. LA R0,4(0) LENGTH OF FOUR BYTES @V240820 01105000
  1115. LA R2,006(0) MESSAGE= DMKNES006E @V200820 01106000
  1116. B MSGSEND GO TYPE THE MESSAGE @V200820 01107000
  1117. SPACE 01108000
  1118. NET009E EQU * DMKNES009E INVALID RANGE - RANGE @V200820 01109000
  1119. LA R2,009(0) MESSAGE NUMBER @V200820 01110000
  1120. B MSGSEND @V200820 01111000
  1121. SPACE 01112000
  1122. NET021E EQU * DMKNES021E RADDR MISSING OR INVALID @V200820 01113000
  1123. LA R2,021(0) MESSAGE NUMBER @V200820 01114000
  1124. B MSGONLY NO VARIABLE DATA @V200820 01115000
  1125. SPACE 01116000
  1126. NET026E EQU * DMKNES026E OPERAND MISSING OR INVALID @V200820 01117000
  1127. LA R2,026(0) MESSAGE NUMBER @V200820 01118000
  1128. B MSGONLY NO VARIABLE DATA @V200820 01119000
  1129. SPACE 01120000
  1130. NET033E EQU * DMKNES033E HEXLOC MISSING OR INVALID @V200820 01121000
  1131. LA R2,033(0) MESSAGE NUMBER @V200820 01122000
  1132. B MSGONLY NO VARIABLE DATA @V200820 01123000
  1133. SPACE 01124000
  1134. NET040E EQU * DMKNES040E DEV ADDR DOES NOT EXIST @V200820 01125000
  1135. LR R0,R2 PARAMETER LENGTH @V200820 01126000
  1136. LR R1,R3 ...AND START ADDRESS @V200820 01127000
  1137. LA R2,040(0) MESSAGE NUMBER @V200820 01128000
  1138. B MSGSEND @V200820 01129000
  1139. EJECT 01130000
  1140. NET046R EQU * DMKNES046E DEV RID OFFLINE @VM01011 01131000
  1141. BAL R10,CVTRESD BUILD 'DEV RID' IN THE SAVEAREA @VM01011 01132000
  1142. B NET046 SETUP TO TYPE ERROR MESSAGE @VM01011 01133000
  1143. SPACE 01134000
  1144. NET046E EQU * DMKNES046E CTLR RADDR OFFLINE @V200820 01135000
  1145. BAL R10,TYPRADD BUILD PARMS FOR DMKERMSG @VM01011 01136000
  1146. NET046 EQU * @VM01011 01137000
  1147. LA R0,8 @V200820 01138000
  1148. LA R2,046(0) MESSAGE NUMBER @V200820 01139000
  1149. B MSGSEND @V200820 01140000
  1150. SPACE 01141000
  1151. NET049E EQU * DMKNES049E LINE RID IN USE @V200820 01142000
  1152. BAL R10,CVTRESD BUILD PARM STRING FOR DMKERM @VM01011 01143000
  1153. LA R2,049(0) MESSAGE NUMBER @V200820 01144000
  1154. B MSGSEND @V200820 01145000
  1155. SPACE 01146000
  1156. NET098E EQU * DMKNES098E MODE SWITCH NOT POSSIBLE @V240820 01147000
  1157. LA R1,SAVEWRK9 POINT TO THE RESOURCE I.D. @V240820 01148000
  1158. LA R0,4(0) FOR FOUR BYTES @V240820 01149000
  1159. LA R2,098(0) MSG= DMKNES098E @V240820 01150000
  1160. B MSGSEND @V240820 01151000
  1161. SPACE 01152000
  1162. NET140E EQU * DMKNES140E CTLR XXX ATTACHED TO USERID @V200820 01153000
  1163. BAL R10,TYPRADD BUILD PARM STRING FOR DMKERM @VM01011 01154000
  1164. L R2,RDEVUSER-RDEVBLOK(,R8) GET USER'S VMBLOK @V200820 01155000
  1165. MVC SAVEWRK4+1(8),VMUSER-VMBLOK(R2) MOVE IN USERID @V200820 01156000
  1166. MVI SAVEWRK4,X'00' FIELD DELIMITER @V200820 01157000
  1167. LA R0,17 VARIABLE DATA LENGTH @V200820 01158000
  1168. LA R2,140(0) MESSAGE NUMBER @V200820 01159000
  1169. B MSGSEND @V200820 01160000
  1170. SPACE 01161000
  1171. NET160E EQU * DMKNES160E HEXLOC XXXXX EXCEEDS STORAGE @V200820 01162000
  1172. LR R0,R2 PARM LENGTH @V200820 01163000
  1173. LR R1,R3 PARM ADDRESS @V200820 01164000
  1174. LA R2,160(0) MESSAGE NUMBER @V200820 01165000
  1175. B MSGSEND R0, R1 ALREADY SETUP @V200820 01166000
  1176. SPACE 01167000
  1177. NET175E EQU * DMKNES175E NETWORK TRACE ALREADY IN USE @V200820 01168000
  1178. MVC SAVEWRK5+2(8),0(R4) MOVE IN USERID FROM DMKRNH @V200820 01169000
  1179. MVC SAVEWRK2(14),=C'NETWORK TRACE ' @V200820 01170000
  1180. MVI SAVEWRK5+1,X'00' FIELD DELIMITER @V200820 01171000
  1181. LA R1,SAVEWRK2 POINT TO VARIABLE DATA @V200820 01172000
  1182. LA R0,22 DATA LENGTH @V200820 01173000
  1183. LA R2,175(0) MSG= DMKRNH175E @V200820 01174000
  1184. B MSGSEND GO FORMAT THE MESSAGE @V200820 01175000
  1185. NES706E EQU * DMKNES706E LINE XXX NOT ENABLED @VM01024 01176000
  1186. BAL R9,CVTRADD GET DEVICE ADDRESS IN SAVEWRK3 @VM01024 01177000
  1187. LA R2,706(0) MESSAGE NUMBER @VM01024 01178000
  1188. B MSGSEND ... @VM01024 01179000
  1189. EJECT 01180000
  1190. TYPRADD EQU * BUILD PARMS FOR 'TYPE RADDR' @VM01011 01181000
  1191. BAL R9,CVTRADD GET DEVICE ADDRESS IN SAVEWRK3 @VM01011 01182000
  1192. MVC SAVEWRK2(4),=C'CTLR' DEVICE TYPE NAME @VM01011 01183000
  1193. LA R1,SAVEWRK2 POINT TO STRING START @VM01011 01184000
  1194. LA R0,8(0) LENGTH @VM01011 01185000
  1195. CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V2D3931 01186000
  1196. BNER R10 NO, RETURN TO IN LINE CODE @V2D3931 01187000
  1197. MVC SAVEWRK2(4),=C'LINE' LINE TYPE NAME @V2D3931 01188000
  1198. BR R10 . . . @VM01011 01189000
  1199. SPACE 01190000
  1200. CVTRADD EQU * CONVERT RADDR TO EBCDIC @V200820 01191000
  1201. CALL DMKSCNRD GET ADDRESS IN BINARY @V200820 01192000
  1202. CALL DMKCVTBH CONVERT IT TO EBCDIC HEX @V200820 01193000
  1203. ST R1,SAVEWRK3 PUT IT IN THE SAVE-AREA @VM01011 01194000
  1204. MVI SAVEWRK3,X'00' INSERT A DELIMITER @VM01011 01195000
  1205. LA R1,SAVEWRK3+1 START OF THE ACTUAL ADDRESS @VM01011 01196000
  1206. LA R0,3(0) GIVE IT'S LENGTH... @V200820 01197000
  1207. BR R9 RETURN TO CALLER @V200820 01198000
  1208. SPACE 01199000
  1209. CVTRESD EQU * BUILD PARMS FOR 'DEV RESOURCE' @VM01011 01200000
  1210. MVC SAVEWRK8(3),=C'DEV ' RID IS A 'DEV' @VM01011 01201000
  1211. MVI SAVEWRK8+3,X'00' RESOURCE IS IN SAVEWRK9 @VM01011 01202000
  1212. LA R1,SAVEWRK8 POINT TO THE DATA STRING @VM01011 01203000
  1213. LA R0,8(0) EIGHT BYTES LONG @VM01011 01204000
  1214. BR R10 @VM01011 01205000
  1215. SPACE 01206000
  1216. MSGONLY EQU * ERROR MSG WITH NO VARIABLE DATA @V200820 01207000
  1217. SLR R1,R1 NO VARIABLE DATA @V200820 01208000
  1218. SPACE 01209000
  1219. MSGSEND EQU * TYPE AN ERROR MESSAGE @V200820 01210000
  1220. ICM R0,B'1110',MODID+3 PICK UP MODULE IDENTIFIER @V200820 01211000
  1221. CALL DMKERMSG GO TO ERROR MESSAGE ROUTINE @V200820 01212000
  1222. * HE WILL RETURN DIRECTLY TO DMKNET 01213000
  1223. EJECT 01214000
  1224. LTORG @V200820 01215000
  1225. EJECT 01216000
  1226. COPY NETWORK @V200820 01217000
  1227. COPY IOBLOKS @V200820 01218000
  1228. COPY RBLOKS @V200820 01219000
  1229. COPY VMBLOK @V200820 01220000
  1230. COPY BTUCMD @V200820 01221000
  1231. COPY EQU @V200820 01222000
  1232. COPY DEVTYPES @V200820 01223000
  1233. COPY SAVE @V200820 01224000
  1234. PSA @V200820 01225000
  1235. END DMKNES 01226000