IOB TITLE 'DMMIOB (IPCS) VM/370 - RELEASE 6' 00001000 * 00002000 * 00003000 * MODULE NAME: 00004000 * DMMIOB SUBROUTINE OF DUMPSCAN 00005000 * 00006000 * FUNCTION: 00007000 * DISPLAYS IO BLOCKS 00008000 * 00009000 * ATTRIBUTES: 00010000 * REUSABLE 00011000 * NON-REENTRANT 00012000 * 00013000 * ENTRY POINTS: 00014000 * DMMIOB 00015000 * 00016000 * ENTRY CONDITIONS: 00017000 * R2 POINTS TO THE PLIST WITH THE TOKENIZED INPUT 00018000 * 00019000 * EXIT CONDITIONS: 00020000 * RETURN CODE IN R15 0 - GOOD 00021000 * 4 - WARNING 00022000 * 8 - FATAL 00023000 * 00024000 * CALLS TO OTHER ROUTINES: 00025000 * DMMGET TO FETCH DATA INTO CORE 00026000 * DMMHEX TO CONVERT EBCDIC TO HEX 00027000 * 00028000 * EXTERNAL REFERENCES: 00029000 * 00030000 * TABLES/WORKAREAS: 00031000 * 00032000 * REGISTER USAGE: 00033000 * R15 ADDRESSES OF EXTERNAL ROUTINES 00034000 * R14 RETURNS FROM EXTERNAL ROUTINES 00035000 * R13 SAVE AREA ADDRESS 00036000 * R12 BASE 00037000 * R11 VMBLOK ADDRESS FOR EXTRACT 00038000 * R10 INTERNAL LINKS 00039000 * R9-R2 WORK REGISTERS 00040000 * 00041000 * OPERATION: 00042000 * THE PLIST ADDRESS IS PASSED IN R2. THE PLIST 00043000 * CONTAINS THE SUBCOMMAND, ONE OF :- 00044000 * RIO CUU 00045000 * VIO CUU USERID 00046000 * VIO CUU 00047000 * THE CHANNEL, CONTROL UNIT AND DEVICE BLOKS 00048000 * ARE SCANNED, AND THE CONTENST OF THE APPROPRIATE 00049000 * BLOCKS ARE DISPLAYED. IF NO USERID IS ENTERED 00050000 * FOR A VIRTUAL DEVICE, THE DEFAULT IS 'OPERATOR', 00051000 * OR THE LAST USERID ENTERED. 00052000 * 00053000 * ERROR MESSAGES: 00054000 * DMMIOB712I 'CUU' ADDRESS NOT FOUND 00055000 * DMMIOB713I USER 'USERID' VMBLOK NOT FOUND 00056000 * 00057000 * * * * * * * *------- -------- -------- -------- ------* 00058000 DMMIOB CSECT @VA04250 00059000 EXTRN DMMGET BRING DATA INTO CORE @VA04250 00060000 EXTRN DMMINT HEX TO EBCDIC @VA04250 00061000 EXTRN DMMHEX EBCDIC TO HEX @VA04250 00062000 STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @VA04250 00063000 LR R12,R15 ADDRESSABILITY @VA04250 00064000 USING DMMIOB,R12 USE IT @VA04250 00065000 ST R13,SAVEBACK CALLERS SAVE AREA @VA04250 00066000 B EYECATCH BYPASS EYECATCHER @VA04250 00067000 DS 0D ALIGN @VA04250 00068000 DC CL8'DMMIOB' EYECATCHER @VA04250 00069000 RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00070000 EYECATCH LA R13,SAVEAREA IOB SAVEAREA @VA04250 00071000 XC RETCODE(WORKL),RETCODE CLEAR RETURN CODE @VA04250 00072000 MVC SUBCUMSG,BLANKOUT CLEAR SUBORD CU MSG @VA04830 00073500 * * * * * * * * ------- -------- -------- ------- * 00074000 * * * * * * * * R2 POINTS TO THE PLIST. 00075000 * * * * * * * * COMMAND HAS 'CUU' AS SECOND PARM, 00076000 * * * * * * * * WHICH IS AT 8 INTO THE PLIST 00077000 * * * * * * * * IN EBCDIC, FIRST RIGHT JUSTIFY THE 00078000 * * * * * * * * ADDRESS, THEN CHECK CHARACTERS ARE 00079000 * * * * * * * * VALID HEX, THEN TRANSLATE TO HEX 00080000 * * * * * * * * AND PUT THE HEX VALUE INTO 00081000 * * * * * * * * R3 FOR THE BLOK EXTRACTION ROUTINE 00082000 * * * * * * * * ------- -------- -------- ------- * 00083000 MVC PLISTCMD(PLISTL),0(R2) MOVE PLIST IN. @VA04250 00084000 MVC HEADER(CMDL),PLISTCMD PLUG CMD INTO HEADER @VA04250 00085000 MVC HEADER+CUU(CUUL),PLISTCUU PLUG ADDRESS INTO HDR @VA04250 00086000 LA R4,PLISTCUU GET ADDRESS OF ADDRESS @VA04250 00087000 ST R4,ADDPOINT SAVE ADDRESS OF ADDRESS @VA04250 00088000 L R15,HEXADD ADDRESS OF HEX ROUTINE @VA04250 00089000 BALR R14,R15 LINK TO HEX @VA04250 00090000 LTR R15,R15 TEST RETURN @VA04250 00091000 BNZ CODECHEK FIND HOW BAD @VA04250 00092000 ST R5,CUUHEX SAVE THE HEX ADDRESS @VA04250 00093000 CLC PLISTCMD(L'V),V IS IT A VIO REQUEST? @VA04250 00094000 BE VIO YES @VA04250 00095000 * * * * * * * * ------- -------- -------- ------- * 00096000 * * * * * * * * THIS MUST BE A REAL DEVICE REQUEST. 00097000 * * * * * * * * THIS ROUTINE ACCEPTS A DEVICE ADDRESS 00098000 * * * * * * * * IN R3, AND LOCATES THE CHANNEL, CONTROL 00099000 * * * * * * * * UNIT, AND DEVICE BLOCKS, AND PLUGS THE 00100000 * * * * * * * * ADDRESSES IN R6, R7 AND R8. 00101000 * * * * * * * * ------- -------- -------- ------- * 00102000 MVC CHRCH(L'R),R PLUG 'R' INTO OUTPUT AREA HDRS @VA04250 00103000 MVC CURCU(L'R),R FOR THE CHANNEL, CONTROL UNIT, @VA04250 00104000 MVC DVRDV(L'R),R AND DEVICE BLOCKS @VA04250 00105000 LR R3,R5 GET THE HEX ADDRESS FOR EXTRACT @VA04250 00106000 LA R6,CHMASK ISOLATE CHAN ADDRESS @VA04250 00107000 NR R6,R3 FROM CUU @VA04250 00108000 SRL R6,7 CHAN ADD * 2 @VA04250 00109000 LA R2,ARIOCT-PSA DISP TO CHANN TABLE ADDRESS @VA04250 00110000 BAL R10,GOGET FETCH IT INTO CORE @VA04250 00111000 A R6,0(R2) ADD CHAN TABLE ADDRESS @VA04250 00112000 LR R2,R6 SET UP FOR GET @VA04250 00113000 BAL R10,GOGET GET THAT INTO CORE @VA04250 00114000 LH R6,0(R2) GET RCHBLOK INDEX @VA04250 00115000 LTR R7,R6 DOES CHAN EXIST? @VA04250 00116000 BM NOCHAN NO @VA04250 00117000 LA R2,ARIOCH-PSA DISP TO REAL CH BLOK ADD @VA04250 00118000 BAL R10,GOGET GET IT INTO CORE @VA04250 00119000 A R6,0(R2) NOW R6 HAS REAL CHAN BLOCK @VA04250 00120000 * * * * * * * * ------- -------- -------- ------- * 00121000 LA R7,CUMASK1 ISOLATE CU BITS @VA04250 00122000 NR R7,R3 FROM CUU @VA04250 00123000 SRL R7,2 CU ADD * 2 @VA04250 00124000 LA R7,RCHCUTBL-RCHBLOK(R7) IN TO INDEX TABLE @V4075A2 00125500 AR R7,R6 PLUS RCH BLOK @VA04250 00126000 LR R2,R7 SET UP FOR GET @VA04250 00127000 BAL R10,GOGET FETCH INTO CORE @VA04250 00128000 LH R7,0(R2) GET THE INDEX @VA04250 00129000 LTR R7,R7 CU EXIST? @VA04250 00130000 BNM COMPRCUB YES @VA04250 00131000 LA R7,CUMASK2 ISOLAT CU @VA04250 00132000 NR R7,R3 FROM CUU @VA04250 00133000 SRL R7,R2 ALTERNATE CU ADDRESS @VA04250 00134000 LA R7,RCHCUTBL-RCHBLOK(R7) IN TO INDEX TABLE @V4075A2 00135500 AR R7,R6 PLUS RCH BLOK @VA04250 00136000 LR R2,R7 SET UP FOR GET @VA04250 00137000 BAL R10,GOGET FETCH INTO CORE @VA04250 00138000 LH R7,0(R2) LOAD CONTROL UNIT INDEX @VA04250 00139000 LTR R8,R7 CU EXIST? @VA04250 00140000 BM NOCU NO @VA04250 00141000 COMPRCUB LA R2,ARIOCU-PSA GET DISP TO CU BLOCK @VA04250 00142000 BAL R10,GOGET INTO CORE @VA04250 00143000 A R7,0(R2) NOW R7 HAS RCUBLOK ADDRESS @VA04250 00144000 * * * * * * * * ------- -------- -------- ------- * 00145000 LA R8,DVMASK GET DEV @VA04250 00146000 NR R8,R3 FROM CUU @VA04250 00147000 AR R8,R8 DEV ADD * 2 @VA04250 00148000 LA R8,RCUDVTBL-RCUBLOK(R8) DEVBLOK INDEX @VA04250 00149000 AR R8,R7 ADD DEVBLOK ADDRESS @VA04250 00150000 LR R2,R8 SET FOR GET @VA04250 00151000 BAL R10,GOGET GET INTO CORE @VA04250 00152000 LH R8,0(R2) AND GET THE INDEX @VA04250 00153000 LR R2,R7 GET CU BLOCK @VA04250 00154000 LA R2,RCUTYPE-RCUBLOK(R2) ADD 5, POINT TO SUB BIT @VA04250 00155000 BAL R10,GOGET GETIT IN COR @VA04250 00156000 TM 0(R2),RCUSUB SUBORDINATE CUBLOK? @VA04250 00157000 BZ TESTDEV NO - BRANCH @VA04250 00158000 MVI SUBCUSW,SUB YES - SET SUB-CU SWITCH @VA04250 00159000 ST R7,SUBCUADX SAVE HEX ADDRESS TO TRANSLATE @VA04250 00160000 MVC SUBCUMSG,SUBCUM PLUB SUBCU MESSAGE @VA04250 00161000 LR R2,R7 GET CUBLOK ADDRESS @VA04250 00162000 LA R2,RCUCHA-RCUBLOK(R2) IN TO SUB CU ADDRESS @VA04250 00163000 BAL R10,GOGET GET IT IN CORE @VA04250 00164000 L R7,0(R2) GET IT IN R7 @VA04250 00165000 TESTDEV LTR R8,R8 DEVICE EXIST? @VA04250 00166000 BM NODEV NO @VA04250 00167000 SLL R8,3 CONVERT TO BYTES @VA04250 00168000 LA R2,ARIODV-PSA GET DISP TO DEV TABLE ADDRESS @VA04250 00169000 BAL R10,GOGET INTO CORE @VA04250 00170000 A R8,0(R2) ADD OFFSET - R8 NOW HAS DEV BLK @VA04250 00171000 MVC HEADER+UID(UID),BLANKER BLANK ANY USERID @VA04250 00172000 B DISPLAY NOW GO TO DISPLAY THEM @VA04250 00173000 * * * * * * * * ------- -------- -------- ------- * 00174000 * * * * * * * * IN ORDER TO FIND VIRTUAL DEVICE BLOCKS 00175000 * * * * * * * * WE NEED THE ADDRESS OF THE USERS VMBLOK 00176000 * * * * * * * * AND THE DEVICE ADDRESS. 00177000 * * * * * * * * FIRST GET THE ADDRESS OF THE USER VMBLOK 00178000 * * * * * * * * GO TO GETREC TO GET THE SYSTEM 00179000 * * * * * * * * VMBLOCK ADDRESS 00180000 * * * * * * * *------- -------- -------- -------- ------* 00181000 VIO CLC PLISTUSR,FENCE USER IN THE PLIST? @VA04250 00182000 BE PLUGUSER NO GO PLUG ONE @VA04250 00183000 CLC PLISTUSR,BLANKER USER IN THE PLIST? @VA04250 00184000 BNE GETSYSVM YES - CONTINUE @VA04250 00185000 PLUGUSER MVC PLISTUSR,USERSAVE USE LAST USERID @VA04250 00186000 GETSYSVM MVC USERSAVE,PLISTUSR SAVE THE CURRENT USERID @VA04250 00187000 MVC CHRCH(L'V),V PLUG 'V' IN MESSAGE HEADERS @VA04250 00188000 MVC CURCU(L'V),V FOR CHAN, CU, AND @VA04250 00189000 MVC DVRDV(L'V),V DEVICE BLOCKS @VA04250 00190000 LA R2,ASYSVM-PSA DISP TO SYSVMBLOCK ADDRESS @VA04250 00191000 BAL R10,GOGET GO FETCH @VA04250 00192000 L R2,0(R2) GET TRUE VMBLOCK ADDRESS @VA04250 00193000 ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00194000 LA R2,VMUSER-VMBLOK(R2) @VA04834 00194500 BAL R10,GOGET GO FETCH @VA04250 00195000 CLC PLISTUSR,0(R2) DOES THIS VMBLOK MATCH THE INPUT?@VA04834 00196100 BE GOTUSER YES - GO GET ADDRESS @VA04250 00198000 L R2,BLOCKADD NO - GO AFTER NEXT BLOK IN CHAIN @VA04834 00199100 LA R2,NEXTBLK(R2) IN 8 BYTES TO NEXT BLOK PTR @VA04834 00199300 BAL R10,GOGET AND FETCH IT INTO CORE @VA04834 00199500 L R2,0(R2) PICK IT UP @VA04834 00199700 LTR R2,R2 IS IT ZEROS @VA04250 00200000 BNZ SAVEOC NO - KEEP ON @VA04250 00201000 B NOUSER YES - END OF VMBLOKS @VA04250 00202000 SAVEOC ST R2,OPVMADD SAVE 'END-OF-CHAIN' ADDRESS @VA04250 00203000 ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00204000 * * * * * * * *------- -------- -------- -------- ------* 00205000 * * * * * * * * NOW PROCESS THE REMAINING VMBLOCKS 00206000 * * * * * * * *------- -------- -------- -------- ------* 00207000 LA R6,MAXUSERS MAX OF 500 USERS @VA04250 00208000 BALGET LA R2,VMUSER-VMBLOK(R2) INCREMENT TO USER ID @VA04834 00209100 BAL R10,GOGET GET THE USERID INTO CORE @VA04834 00209800 CLC PLISTUSR,0(R2) IS THIS THE REQUESTED VMBLOK? @VA04834 00210500 BE GOTUSER YES - GO PROCESS HIM @VA04250 00211000 L R2,BLOCKADD NO - GO FOR NEXT BLOK @VA04834 00212100 LA R2,NEXTBLK(R2) GET CYCLIC POINTER @VA04834 00212300 BAL R10,GOGET FETCH IT INTO CORE @VA04834 00212500 L R2,0(R2) PICK IT UP @VA04834 00212700 ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00213000 C R2,OPVMADD POINT TO END OF CHAIN? @VA04250 00214000 BE NOUSER YES - WRITE 'NOT FOUND' LINE @VA04250 00215000 BCT R6,BALGET GET NEXT VMBLOCK @VA04250 00216000 NOUSER MVC ERUSER(L'PLISTUSR),PLISTUSR USERID INTO ERR MSG @VA04250 00217000 LA R8,ERMSG713 USER NOT FOUND MSG @VA04250 00218000 LA R9,E713L LENGTH @VA04250 00219000 BAL R10,WRTERM WRITE ONE ENTRY @VA04250 00220000 MVC RETCODE,CODE4 WARNING RETURN @VA04250 00221000 B RETURN QUIT @VA04250 00222000 * * * * * * * * ------- -------- -------- ------- * 00223000 * * * * * * * * NOW WE HAVE A MATCH ON THE USERID. 00224000 * * * * * * * * THE VMBLOK ADDRESS IS IN 'BLOCKADD' 00225000 * * * * * * * * THE VIRTUAL 'CUU' IS IN 'CUUHEX' 00226000 * * * * * * * * PASS THESE TO THE VIRTBLOK 00227000 * * * * * * * * ROUTINE FOR VIRTUAL BLOKS. 00228000 * * * * * * * * ------- -------- -------- ------- * 00229000 GOTUSER LA R2,VMCHTBL-VMBLOK DISP OF CHAN TBL INTO VMBLOK @VA04837 00231100 A R2,BLOCKADD PLUS BASE ADDRESS OF VMBLOK @VA04837 00231800 L R3,CUUHEX GET THE HEX DEVICE ADDRESS @VA04837 00232500 L R6,CHANMASK MASK OUT THE NON CHANNEL BITS @VA04837 00233200 NR R6,R3 STRIP THEM OFF @VA04837 00233900 SRL R6,7 AND SLIDE IT TO LOW ORDER @VA04837 00234600 AR R2,R6 ADD THIS TO TABLE START ADDRESS @VA04837 00235300 BAL R10,GOGET FETCH THE CHAN ENTRY INTO CORE @VA04837 00236000 LH R6,0(R2) LOAD IT @VA04837 00236700 LTR R7,R6 DOES THIS CHANNEL EXIST ? @VA04837 00237400 BM NOVCHAN NO - STOP SEARCHING @VA04837 00238100 LA R2,VMCHSTRT-VMBLOK DISP TO VCHAN BLOK @VA04837 00238800 A R2,BLOCKADD PLUS BASE GIVES CH START ADDRESS @VA04837 00239500 BAL R10,GOGET GO GET IT INTO CORE @VA04837 00240200 A R6,0(R2) ADD TO CHANNEL ADDRESS @VA04837 00240900 ST R6,VCHSAVE STORE IT FOR LATER @VA04837 00241600 * * * * * * * * ------- -------- -------- ------- * 00244000 * * * * * * * * SINCE WE ARE GOING TO READ IN THE 00245000 * * * * * * * * VCHBLOK AND THE VDEVBLOK WE MUST 00246000 * * * * * * * * SAVE THE VMCUSTRT AND VMDVSTRT FIELDS 00247000 * * * * * * * * ------- -------- -------- ------- * 00248000 LA R2,VMCUSTRT-VMBLOK DISP TO CUSTRT @VA04837 00249100 A R2,BLOCKADD PLUS BASE ADDRESS @VA04837 00249700 BAL R10,GOGET FETCH INTO CORE @VA04837 00250300 MVC VMCUSAVE,0(R2) SAVE THE FIELD @VA04837 00250900 LA R2,VMDVSTRT-VMBLOK AND THE SAME FOR VMDVSTRT @VA04837 00251500 A R2,BLOCKADD POINT TO VMDVSTRT @VA04837 00252100 BAL R10,GOGET FETCH IT IN @VA04837 00252700 MVC VMDVSAVE,0(R2) AND SAVE IT @VA04837 00253300 LA R2,VCHCUTBL-VCHBLOK DISPLACEMENT @VA04837 00253900 AR R2,R6 PLUS THE OFFSET @VA04837 00254500 BAL R10,GOGET FETCH IT @VA04837 00255100 L R7,CUMASK MASK OUT THE NON - CU BITS @VA04837 00255700 NR R7,R3 STRIP THEM OUT @VA04837 00256300 SRL R7,3 PUT CTL UNIT ADDRESS INT R7 @VA04837 00256900 AR R2,R7 ADD TO START OF TABLE @VA04837 00257500 LH R7,0(R2) LOAD THE ENTRY @VA04837 00258100 LTR R8,R7 IS THERE AN ENTRY @VA04837 00258700 BM NOVCU NO - QUIT @VA04837 00259300 A R7,VMCUSAVE ADD THE SAVED VALUE @VA04837 00259900 ST R7,VCUSAVE AND SAVE THAT @VA04837 00260500 ********** NOW THE CONTROL UNIT ************* @VA04837 00261100 LA R2,VCUDVTBL-VCUBLOK DEVICE TABLE DISP @VA04837 00261700 AR R2,R7 PLUS ADDRESS OF TABLE @VA04837 00262300 L R8,DEVMASK MASK OUT NON DEVICE BITS @VA04837 00262900 NR R8,R3 STRIP OUT @VA04837 00263500 AR R8,R8 DOUBLE IT FOR HALFWORD TABLE @VA04837 00264100 AR R2,R8 POINT TO DEVICE ENTRY @VA04837 00264700 BAL R10,GOGET FETCH IT @VA04837 00265300 LH R8,0(R2) PICK IT UP @VA04837 00265900 LTR R8,R8 DEV EXIST? @VA04250 00271000 BM NOVDEV NO @VA04250 00272000 A R8,VMDVSAVE GET VDEVBLOK ADDRESS @VA04250 00273000 LM R6,R7,VCHSAVE GET BACK THE ADDRESSES @VA04250 00274000 MVC HEADER+UID(L'USERSAVE),USERSAVE PLUG USERID @VA04250 00275000 B DISPLAY GO SHOW EM @VA04250 00276000 * * * * * * * * ------- -------- -------- ------- * 00277000 * * * * * * * * IF WE DIDNT FIND THE VIRTUAL DEVICE 00278000 * * * * * * * * ------- -------- -------- ------- * 00279000 NOVCHAN SR R6,R6 SET R6 @VA04250 00280000 BCTR R6,R0 NEGATIVE @VA04250 00281000 NOVCU SR R7,R7 MAKE R7 @VA04250 00282000 BCTR R7,R0 NEGATIVE @VA04250 00283000 NOVDEV SR R8,R8 MAKE R8 @VA04250 00284000 BCTR R8,R0 NEGATIVE @VA04250 00285000 MVC RETCODE,CODE4 SET RETURN @VA04250 00286000 B WRITERR GO WRITE THE ERROR @VA04250 00287000 * * * * * * * * ------- -------- -------- ------- * 00289000 * * * * * * * * NOW CHBLOK ADDRESS IS IN R6, 00290000 * * * * * * * * THE CUBLOK ADDRESS IS IN R7, 00291000 * * * * * * * * AND DVBLOK ADDRESS IS IN R8. 00292000 * * * * * * * * FORMAT AND DISPLAY THEM. 00293000 * * * * * * * * ------- -------- -------- ------- * 00294000 DISPLAY STM R6,R8,CHADSTOR PUT ADDRESSES IN CORE @VA04250 00295000 LA R4,CHADSTOR GET ADDRESS FOR INT @VA04250 00296000 LA R3,TRANL AND LENGTH - 16 @VA04250 00297000 BAL R10,GOINT GO TRANSLATE @VA04250 00298000 MVC CHBLKADD(TRADL),CHB(R5) PLUG CHAN BLK ADDRESS @VA04250 00299000 MVC CUBLKADD(TRADL),CUB(R5) CU BLOK ADDRESS @VA04250 00300000 MVC DVBLKADD(TRADL),DVB(R5) DEV BLK ADDRESS @VA04250 00301000 CLI SUBCUSW,SUB IS IT A SUBORD CU? @VA04250 00302000 BNE CHANTRAN NO -- DONT PLUG ADDRESS IN MSG @VA04250 00303000 MVC SUBCUADD(TRADL),SUBDISP(R5) YES - PLUG IT @VA04250 00304000 MVI SUBCUSW,PRIME TURN OFF SUBCUSW @VA04250 00305000 * * * * * * * * ------- -------- -------- ------- * 00306000 * * * * * * * * NOW TRANSLATE LINES FROM THE 00307000 * * * * * * * * VARIOUS BLOCKS AND FORMAT THEM 00308000 * * * * * * * * INTO THE OUTPUT AREA 00309000 * * * * * * * * FIRST THE CHANNEL BLOK 00310000 * * * * * * * * ------- -------- -------- ------- * 00311000 CHANTRAN LA R6,CHLINES 3 CH LINES @VA04250 00312000 CLC PLISTCMD(L'V),V ARE THESE 'VIRTUAL' BLOCKS? @VA04250 00313000 BNE PLUGCH NO - LEAVE IT AT 3 LINES @VA04250 00314000 BCTR R6,R0 YES - MUST ONLY FETCH 2 LINES @VA04250 00315000 PLUGCH MVC ADSTOR,CHADSTOR PLUG CH BLOK ADDRESS @VA04250 00316000 LA R2,CHLINE1 GET CHAN LINE 1 ADDRESS @VA04250 00317000 ST R2,LINE1ADD PLUG IT FOR TRANSLATE/FORMAT @VA04250 00318000 BAL R11,GETLINE GO FORMAT IT @VA04250 00319000 * * * * * * * * ------- -------- -------- ------- * 00320000 * * * * * * * * NOW THE CU BLOCK 00321000 * * * * * * * * ------- -------- -------- ------- * 00322000 LA R6,CULINES TWO CU LINES @VA04250 00323000 MVC ADSTOR,CUADSTOR CU BLOK ADDRESS @VA04250 00324000 LA R2,CULINE1 CU BLOK @VA04250 00325000 ST R2,LINE1ADD PLUG FOR FORMAT @VA04250 00326000 BAL R11,GETLINE GO FORMAT @VA04250 00327000 * * * * * * * * ------- -------- -------- ------- * 00328000 * * * * * * * * NOW THE DEV BLOCK 00329000 * * * * * * * * ------- -------- -------- ------- * 00330000 LA R6,DVLINES 3 DEV LINES @VA04250 00331000 CLC PLISTCMD(L'V),V ARE THESE VIRTUAL BLOCKS? @VA04250 00332000 BNE PLUGDV NO - LEAVE IT AT 3 LINES @VA04250 00333000 BCTR R6,R0 YES - MUST REDUCE TO 2 LINES @VA04250 00334000 PLUGDV MVC ADSTOR,DVADSTOR DEV BLOK ADDRESS @VA04250 00335000 LA R2,DVLINE1 DEV BLOK OUTPUT AREA @VA04250 00336000 ST R2,LINE1ADD PLUG IT @VA04250 00337000 BAL R11,GETLINE GO DO DEVICE @VA04250 00338000 * * * * * * * * ------- -------- -------- ------- * 00339000 * * * * * * * * NOW PLUG THE ADDRESS OF THE SOUGHT DEVICE 00340000 * * * * * * * * ------- -------- -------- ------- * 00341000 MVC CHCHANAD(ADL),CHLINE1+ONE PLUG CHAN INTO CHBLOK @VA04250 00342000 MVC CUUNITAD(ADL),CHLINE1+ONE AND INT CUBLOK @VA04250 00343000 MVC CUUNITAD+ONE(ADL),CULINE1+TWO CU ADD INTO CUBLOK@VA04250 00344000 MVC DVDEVAD(CUUL),PLISTCUU PLUG DEV ADD IN DEVBLK @VA04250 00345000 * * * * * * * * ------- -------- -------- ------- * 00346000 * * * * * * * * NOW ALL THE LINES ARE BUILT - GO WRITE THEM 00347000 * * * * * * * * ------- -------- -------- ------- * 00348000 B WRITE WRITE THE LINES @VA04250 00349000 * * * * * * * * ------- -------- -------- ------- * 00350000 * * * * * * * * THIS GETS THE TEXT OF THE VARIOUS CONTROL 00351000 * * * * * * * * BLOCKS INTO CORE, TRANSLATES AND FORMATS 00352000 * * * * * * * * THEM INTO EIGHT BYTE BLOCKS. THE DATA IS 00353000 * * * * * * * * FETCHED 8 BYTES AT A TIME, AS THERE IS 00354000 * * * * * * * * THE POSSIBILITY THAT A REAL IO BLOCK 00355000 * * * * * * * * MAY CROSS A PAGE BOUNDARY AND SUFFER 00356000 * * * * * * * * GARBAGE. R6 HAS THE NUMBER OF LINES TO 00357000 * * * * * * * * BE PRINTED. THE REST SHOULD BE OBLIVIOUS. 00358000 * * * * * * * * ------- -------- -------- ------- * 00359000 GETLINE L R7,LINE1ADD ADDRESS OF FIRST LINE @VA04250 00360000 LA R8,BLOX 4 BLOCKS OF 16 BYTES @VA04250 00361000 L R2,ADSTOR GET ADDRESS OF BLOCK @VA04250 00362000 GOGOGET BAL R10,GOGET GET IT INTO CORE @VA04250 00363000 LR R4,R2 GET THE ADDRESS TO TRANSLATE @VA04250 00364000 LA R3,WORDL AND THE LENGTH - 8 @VA04250 00365000 BAL R10,GOINT GO TRANSLATE IT @VA04250 00366000 MVC 0(WORDL,R7),0(R5) MOVE IN AN 8 BYTE BLOCK @VA04250 00367000 LA R7,WORDL+ONE(R7) BUMP OUTPUT PLUS A SPACE @VA04250 00368000 LA R5,WORDL(R5) BUMP INPUT @VA04250 00369000 MVC 0(WORDL,R7),0(R5) MOVE THE SECOND 8 BYTE BLOCK @VA04250 00370000 LA R7,WORDL+ONE(R7) NEXT OUTPUT SLOT @VA04250 00371000 L R2,ADSTOR GET CURRENT INPUT PTR @VA04250 00372000 LA R2,WORDL(R2) BUMP IT BY 8 INPUT BYTES @VA04250 00373000 ST R2,ADSTOR AND RE-STORE IT @VA04250 00374000 BCT R8,GOGOGET GO FINISH THE LINE @VA04250 00375000 L R7,LINE1ADD WEVE DONE THE FIRST LINE. NOW @VA04250 00376000 LA R7,LINEL(R7) UPDATE TO POINT TO THE NEXT LINE @VA04250 00377000 ST R7,LINE1ADD AND RESTORE IT @VA04250 00378000 BCT R6,GETLINE NOW GET THE NEXT LINE @VA04250 00379000 BR R11 DONE ALL LINES - RETURN @VA04250 00380000 * * * * * * * * ------- -------- -------- ------- * 00381000 * * * * * * * * NOW WRITE THE LINES. WRITE THREE, THEN CHECK 00382000 * * * * * * * * IF IT IS A VIRTUAL DISPLAY. IF SO SKIP A 00383000 * * * * * * * * LINE IN THE FORMATTED AREA, SINCE THE VCHBLOK 00384000 * * * * * * * * IS A LINE SHORTER THAN THE RCHBLOK. 00385000 * * * * * * * * ------- -------- -------- ------- * 00386000 WRITE MVC DVLINE3+SEC(L'DVLINE3-SEC),BLANKOUT CLR 2ND @VA04830 00387500 CLC PLISTCMD(L'V),V ARE THESE VIRTUAL BLOKS? @VA04250 00388000 BNE REAL NO - PROCESS AS IS @VA04250 00389000 MVI CHLINE2+NUCH,BLANK SET @VA04830 00390100 MVI CULINE2+NUCU,BLANK UP @VA04830 00390400 MVI DVLINE2+NUDV,BLANK TO @VA04830 00390700 MVC CHLINE2+NUCH+1(NUCHL-1),CHLINE2+NUCH CLEAR @VA04830 00391000 MVC CULINE2+NUCU+1(NUCUL-1),CULINE2+NUCU CTL @VA04830 00391300 MVC DVLINE2+NUDV+1(NUDVL-1),DVLINE2+NUDV BLOCKS @VA04830 00391600 REAL LA R8,HEADER ADDRESS OF HEADER @VA04250 00393000 LA R9,L'HEADER AND LENGTH @VA04250 00394000 BAL R10,WRTERM WRITE HEADER @VA04250 00395000 LA R2,FIRSTSET 3 DISPLAY LINES @VA04250 00396000 LA R8,CHRCH OUTPUT AREA @VA04250 00397000 LA R9,EIGHTY LINE LENGTH @VA04250 00398000 GOWRITE BAL R10,WRTERM GO WRITE A LINE @VA04250 00399000 LA R8,LINEL(R8) NEXT OUTPUT LINE @VA04250 00400000 BCT R2,GOWRITE WRITE ANOTHER LINE @VA04250 00401000 LA R2,NEXTSET GET 10 FOR LAST SET OF LINES @VA04250 00402000 CLC V,PLISTCMD ARE THESE VIRT BLOKS? @VA04250 00403000 BNE LASTSET NO - WRITE AS IS @VA04250 00404000 LA R8,LINEL(R8) YES - SKIP A LINE @VA04250 00405000 BCTR R2,R0 AND DECREMENT THE LINE COUNT @VA04250 00406000 LASTSET BAL R10,WRTERM WRITE ONE OF THE LAST GROUP @VA04250 00407000 LA R8,LINEL(R8) BUMP A LINE @VA04250 00408000 BCT R2,LASTSET GO WRITE IT @VA04250 00409000 B RETURN GET OUT @VA04250 00410000 * * * * * * * * ------- -------- -------- ------- * 00411000 * * * * * * * * COMMON WRTERM 00412000 * * * * * * * * ------- -------- -------- ------- * 00413000 WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00414100 ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00414200 LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00414300 L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00414400 BALR R14,R15 GO WRITE THE LINE @V4075A2 00414500 BR R10 AND RETURN @V4075A2 00414600 PARMLIS1 DS F PARM1 @V4075A2 00414700 PARMLIS2 DS F PARM2 @V4075A2 00414800 FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00414900 * * * * * * * * ------- -------- -------- ------- * 00416000 * * * * * * * * GOINT - COMMON BALR TO INTERPRET 00417000 * * * * * * * * ------- -------- -------- ------- * 00418000 GOINT L R15,INTADD INT ROUTINE @VA04250 00419000 BALR R14,R15 LINK @VA04250 00420000 LTR R15,R15 TEST RETURN @VA04250 00421000 BNZ CODECHEK TEST NON-ZERO RET @VA04250 00422000 BR R10 BACK TO CALLER @VA04250 00423000 * * * * * * * * ------- -------- -------- ------- * 00424000 * * * * * * * * COMMON BAL TO DMMGET 00425000 * * * * * * * * ------- -------- -------- ------- * 00426000 GOGET L R15,GETADD ADDRESS OF DMMGET @VA04250 00427000 BALR R14,R15 LINK @VA04250 00428000 LTR R15,R15 TEST RETURN @VA04250 00429000 BNZ CODECHEK GO TEST A NON ZERO RETURN @VA04250 00430000 BR R10 RETURN TO GO GETTER @VA04250 00431000 * * * * * * * * ------- -------- -------- ------- * 00432000 * * * * * * * * ERROR ROUTINES 00433000 * * * * * * * * ------- -------- -------- ------- * 00434000 NOCHAN SR R6,R6 ZERO R6 @VA04250 00435000 BCTR R6,R0 MAKE IT MINUS @VA04250 00436000 NOCU SR R7,R7 ZERO IT @VA04250 00437000 BCTR R7,R0 MAKE IT MINUS @VA04250 00438000 NODEV SR R8,R8 ZERO DEV REG @VA04250 00439000 BCTR R8,R0 MAKE IT MINUS @VA04250 00440000 B WRITERR GO WRITE THE ERROR MSG @VA04250 00441000 * * * * * * * * ------- -------- -------- ------- * 00442000 * * * * * * * * WRITE THE ERROR MSG 00443000 * * * * * * * * ------- -------- -------- ------- * 00444000 WRITERR MVC ERRORADD,PLISTCUU PLUG ADDRESS IN ERROR MSG @VA04250 00445000 LA R8,ERMSG712 GET ADDRESS OF ER MSG @VA04250 00446000 LA R9,E712L LENGTH OF ERROR @VA04250 00447000 BAL R10,WRTERM WRITE ERROR MSG @VA04250 00448000 MVC RETCODE,CODE4 SET WARNING RETCODE @VA04250 00449000 B RETURN @VA04250 00450000 * * * * * * * * ------- -------- -------- ------- * 00451000 * * * * * * * * CODECHECK 00452000 * * * * * * * * ------- -------- -------- ------- * 00453000 CODECHEK C R15,CODE4 IS IT A WARNING? @VA04250 00454000 BE WARNING PLUG A 4 @VA04250 00455000 MVC RETCODE,CODE8 PLUG 8 @VA04250 00456000 B RETURN FATAL RETURN @VA04250 00457000 WARNING MVC RETCODE,CODE4 PLUG A 4 @VA04250 00458000 B RETURN @VA04250 00459000 * * * * * * * * ------- -------- -------- ------- * 00460000 * * * * * * * * CLOSE 00461000 * * * * * * * * ------- -------- -------- ------- * 00462000 RETURN L R13,SAVEBACK RESTORE CALLER SAVE PTR @VA04250 00463000 MVC SAVREG15(L'RETCODE,R13),RETCODE PLUG RETCODE @VA04250 00464000 LM R14,R12,SAVEDISP(R13) RESTORE CALLERS REGS @VA04250 00465000 BR R14 RETURN @VA04250 00466000 * * * * * * * * ------- -------- -------- ------- * 00467000 * * * * * * * * CONSTANTS 00468000 * * * * * * * * ------- -------- -------- ------- * 00469000 * * * * * * * * SAVEAREA 00470000 * * * * * * * * ------- -------- -------- ------- * 00471000 SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00472000 SAVEUSR DS F USER WORD @VA04250 00473000 SAVEFWD DS F FORWARD POINTER @VA04250 00474000 SAVEBACK DS F BACKWARD POINTER @VA04250 00475000 SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00476000 SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00477000 SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00478000 SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00479000 SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00480000 SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00481000 SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00482000 SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00483000 SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00484000 SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00485000 SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00486000 SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00487000 SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00488000 SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00489000 SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00490000 * * * * * * * * ------- -------- -------- ------- * 00491000 DUM DS 4F @VA04250 00492000 CODE4 DC F'4' WARNING @VA04250 00493000 CODE8 DC F'8' FATAL @VA04250 00494000 GETADD DC AL4(DMMGET) DMMGET @VA04250 00495000 HEXADD DC AL4(DMMHEX) EBC TO HEX TRANS @VA04250 00496000 INTADD DC AL4(DMMINT) HEX TO EBC TRANS @VA04250 00497000 ADDPOINT DS F POINTER TO 'CUU' ADDRESS @VA04250 00498000 RETCODE DS F RETURN CODE @VA04250 00499000 CHADSTOR DS F STORE CH BLOK ADDRESS @VA04250 00500000 CUADSTOR DS F STORE CUBLOK ADDRESS @VA04250 00501000 DVADSTOR DS F STORE DVBLOK ADDRESS @VA04250 00502000 SUBCUADX DS F HEX ADDRESS OF ANY SUBORD CU @VA04250 00503000 WORKL EQU 20 LENGTH OF WORK AREAS @VA04250 00504000 LINE1ADD DS F ADDRESS OF FIRST LINE OF OUTPUT @VA04250 00505000 ADSTOR DS F CURRENT FORMAT ADDRESS @VA04250 00506000 VMCUSAVE DS F SAVE FOR VMCUSTRT @VA04250 00507000 VMDVSAVE DS F SAVE FOR VMDVSTRT @VA04250 00508000 VCHSAVE DS F VCHBLOK ADDRESS @VA04250 00509000 VCUSAVE DS F VCUBLOK @VA04250 00510000 CUUHEX DS F CUU IN HEX @VA04250 00511000 BLOCKADD DS F ADDRESS OF CURRENT VMBLOK @VA04250 00512000 OPVMADD DS F ADDRESS OF OPERATORS VMBLOK @VA04250 00513000 * * * * * * * * ------- -------- -------- ------- * 00514000 * * * * * * * * FORMATTING AREAS TO DISPLAY THE 00515000 * * * * * * * * BLOCK CHAINS 00516000 * * * * * * * * ------- -------- -------- ------- * 00517000 CHRCH DC CL12'RCHBLOK' HEADER @VA04250 00518000 CHCHAN DC CL5'CHAN' HDR @VA04250 00519000 CHCHANAD DC CL8'XXX' CHANNEL ADDRESS @VA04250 00520000 CHADD DC CL8'ADDRESS' HDR @VA04250 00521000 CHBLKADD DC CL47' ' ADDRESS OF CHBLOK @VA04250 00522000 CHL1HDR DC CL4'000' ADDRESS LINE 1 @VA04250 00523000 CHLINE1 DC CL76' ' LINE 1 @VA04250 00524000 CHL2HDR DC CL4'020' ADD L2 @VA04250 00525000 CHLINE2 DC CL76' ' LINE2 @VA04250 00526000 CHL3HDR DC CL4'040' ADLINE3 @VA04250 00527000 CHLINE3 DC CL76' ' LINE 3 @VA04250 00528000 SPACE1 DC CL80' ' SPACE @VA04250 00529000 CURCU DC CL12'RCUBLOK' HEADER @VA04250 00530000 CUUNIT DC CL5'UNIT' HDR @VA04250 00531000 CUUNITAD DC CL8'0XX' CONTROL UNIT ADDRESS @VA04250 00532000 CUADD DC CL8'ADDRESS' HDR @VA04250 00533000 CUBLKADD DC CL7' ' ADDRESS OF CUBLOK @VA04250 00534000 SUBCUMSG DC CL40' ' MESSAGE RE SUBORDINATE CU @VA04250 00535000 ORG SUBCUMSG+29 @VA04250 00536000 SUBCUADD DC CL11' ' ADDRESS OF ABOVE @VA04250 00537000 CUL1HDR DC CL4'000' ADDRESS LINE 1 @VA04250 00538000 CULINE1 DC CL76' ' LINE 1 @VA04250 00539000 CUL2HDR DC CL4'020' ADD L2 @VA04250 00540000 CULINE2 DC CL76' ' LINE2 @VA04250 00541000 SPACE2 DC CL80' ' SPACE @VA04250 00542000 DVRDV DC CL12'RDEVBLOK' HEADER @VA04250 00543000 DVDEV DC CL5'DEV' HDR @VA04250 00544000 DVDEVAD DC CL8'00X' DEV ADDRESS @VA04250 00545000 DVADD DC CL8'ADDRESS' HDR @VA04250 00546000 DVBLKADD DC CL47' ' ADDRESS OF DVBLOK @VA04250 00547000 DVL1HDR DC CL4'000' ADDRESS LINE 1 @VA04250 00548000 DVLINE1 DC CL76' ' LINE 1 @VA04250 00549000 DVL2HDR DC CL4'020' ADD L2 @VA04250 00550000 DVLINE2 DC CL76' ' LINE2 @VA04250 00551000 DVL3HDR DC CL4'040' ADLINE3 @VA04250 00552000 DVLINE3 DC CL80' ' LINE 3 @VA04250 00553000 * * * * * * * * ------- -------- -------- ------- * 00554000 V DC C'V' V TO PLUG IN MESSAGE HEADER @VA04250 00555000 R DC C'R' R DITTO @VA04250 00556000 TRANL EQU 16 LENGTH OF LINE TO TRANSLATE @VA04250 00557000 TLINEL EQU 32 LENGTH AFTER TRANS @VA04250 00558000 LINEL EQU 80 LINE LENGTH @VA04250 00559000 MAXUSERS EQU 500 MAXUSERS ALLOWED - LOOP ASSUMED @VA04250 00560000 CHLINES EQU 3 THREE CHANNEL LINES @VA04250 00561000 CULINES EQU 2 CU BLOK LINES @VA04250 00562000 DVLINES EQU 3 DEVICE LINES @VA04250 00563000 EIGHTY EQU 80 LINE LENGTH @VA04250 00564000 FIRSTSET EQU 3 SOME OF LINES IN OUTPUT DISPLAY @VA04250 00565000 NEXTSET EQU 10 REST OF THE LINES @VA04250 00566000 * * * * * * * * ------- -------- -------- ------- * 00567000 ADL EQU 1 LENGTH OF EACH SEG OF 'CUU' @VA04250 00568000 ONE EQU 1 BUMP COUNTER @VA04250 00569000 TWO EQU 2 INDEX @VA04250 00570000 CHB EQU 2 CHANNEL BLOCK @VA04250 00571000 CMDL EQU 3 LENGTH OF CMD @VA04250 00572000 CUUL EQU 3 LENGTH OF 'CUU' @VA04250 00573000 CUU EQU 4 ADDRESS DISP @VA04250 00574000 BLOX EQU 4 4 X 16 BYTE BLOCKS ON OUT_LINE @VA04250 00575000 TRADL EQU 6 LENGTH OF TRANSLATED ADDRESS @VA04250 00576000 UID EQU 8 USERID DISP @VA04250 00577000 NEXTBLK EQU 8 ADDRESS OF NEXT BLOK @VA04250 00578000 WORDL EQU 8 LENGTH OF A TRANSLATED WORD @VA04250 00579000 CUB EQU 10 CU BLOCK @VA04250 00580000 SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00581000 SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00582000 DVB EQU 18 DEVICE BLOK @VA04250 00583000 NUCH EQU 18 NOT USED PART OF CHBLOK @VA04250 00584000 NUCU EQU 18 NOT USED PART OF CU BLOK @VA04250 00585000 SUBDISP EQU 26 DISP TO SUB CU ADDR @VA04250 00586000 SEC EQU 54 DISP TO SEC HALF OF LINE @VA08869 00587100 BLANK EQU X'40' FILL FOR CLEAR @VA04830 00587500 NUDV EQU 71 UNUSED PORTION OF VDEVBLOK @V4075A2 00588000 NUCHL EQU X'DA' LENGTH TO CLEAR @VA04250 00589000 NUCUL EQU X'8A' LENGTH TO CLEAR @VA04250 00590000 NUDVL EQU X'59' LENGTH TO CLEAR @V4075A2 00591000 CHMASK EQU X'F00' CHANNEL MASK @VA04250 00592000 CUMASK1 EQU X'0F8' MASK FOR CU PORTION OF 'CUU' @VA04250 00593000 CUMASK2 EQU X'0F0' SAME @VA04250 00594000 DVMASK EQU X'00F' SAME - FOR DEVICE @VA04250 00595000 * * * * * * * * ------- -------- -------- ------- * 00596000 PLISTCMD DC CL8' ' COMMAND @VA04250 00597000 PLISTCUU DC CL8' ' CUU @VA04250 00598000 PLISTUSR DC CL8' ' USERID @VA04250 00599000 PLISTFNC DC 8X'FF' FENCE @VA04250 00600000 PLISTL EQU *-PLISTCMD LENGTH OF PLIST @VA04250 00601000 * * * * * * * * ------- -------- -------- ------- * 00602000 FENCE DC 8X'FF' FENCE @VA04250 00603000 BLANKER DC CL8' ' BLANKS X '40' @VA04250 00604000 USERSAVE DC CL8'OPERATOR' DEFAULT USERID @VA04250 00605000 * * * * * * * * ------- -------- -------- ------- * 00606000 ERMSG712 DC C'DMMIOB712I DEVICE ''' MSG NUMBER @VA04250 00607000 ERRORADD DC CL3' ' BAD ADDRESS @VA04250 00608000 RESTERR DC C''' NOT FOUND' BALANCE OF THE MESSAGE @VA04250 00609000 E712L EQU *-ERMSG712 LENGTH @VA04250 00610000 * * * * * * * * ------- -------- -------- ------- * 00611000 ERMSG713 DC C'DMMIOB713I USER ''' MESSAGE NUMBER @VA04250 00612000 ERUSER DC CL8' ' USER @VA04250 00613000 EREST DC C''' VMBLOK NOT FOUND' @VA04428 00614000 E713L EQU *-ERMSG713 LENGTH @VA04250 00615000 * * * * * * * * ------- -------- -------- ------- * 00616000 HEADER DC CL16' ' HEADER @VA04250 00617000 SUBCUM DC CL40'REPLACES SUBORDINATE CUBLOK- ' @V4075A2 00618500 * * * * * * * * ------- -------- -------- ------- * 00619000 SUBCUSW DC X'00' SUBORDINATE CU BLOCK SWITCH @VA04250 00620000 SUB EQU X'FF' SUBORDINATE @VA04250 00621000 PRIME EQU X'00' PRIME CU @VA04250 00622000 * * * * * * * * ------- -------- -------- ------- * 00623000 DS 0F @VA04250 00624000 CHANMASK DC XL4'F00' MASK TO SEPARATE CHAN FROM CUU @VA04250 00625000 CUMASK DC XL4'0F0' CONTROL UNIT @VA04250 00626000 DEVMASK DC XL4'00F' DEVICE @VA04250 00627000 BLANKOUT DC CL80' ' BLANKS FOR FILL @VA04830 00627500 PATCH DC 50F'0' PATCH @VA04250 00628000 LTORG @VA04250 00629000 COPY VMBLOK @VA04250 00630000 COPY VBLOKS @VA04250 00631000 PSA PSA DSECT @VA04250 00632000 COPY RBLOKS REAL IO BLOCKS @VA04250 00633000 R0 EQU 0 R0 EQUALS REGISTER 0 @VA04250 00634000 R1 EQU 1 R1 EQUALS REGISTER 1 @VA04250 00635000 R2 EQU 2 R2 EQUALS REGISTER 2 @VA04250 00636000 R3 EQU 3 R3 EQUALS REGISTER 3 @VA04250 00637000 R4 EQU 4 R4 EQUALS REGISTER 4 @VA04250 00638000 R5 EQU 5 R5 EQUALS REGISTER 5 @VA04250 00639000 R6 EQU 6 R6 EQUALS REGISTER 6 @VA04250 00640000 R7 EQU 7 R7 EQUALS REGISTER 7 @VA04250 00641000 R8 EQU 8 R8 EQUALS REGISTER 8 @VA04250 00642000 R9 EQU 9 R9 EQUALS REGISTER 9 @VA04250 00643000 R10 EQU 10 R10 EQUALS REGISTER 10 @VA04250 00644000 R11 EQU 11 R11 EQUALS REGISTER 11 @VA04250 00645000 R12 EQU 12 R12 EQUALS REGISTER 12 @VA04250 00646000 R13 EQU 13 R13 EQUALS REGISTER 13 @VA04250 00647000 R14 EQU 14 R14 EQUALS REGISTER 14 @VA04250 00648000 R15 EQU 15 R15 EQUALS REGISTER 15 @VA04250 00649000 END 00650000