ibm:vm370-lib:cp:dmkvda.assemble_src
Table of Contents
DMKVDA Source
References
- Fixes Applied : 21
- This Source Date : Thursday, December 14, 1978
- Last Fix ID : [HRC039DK]
Source Listing
- DMKVDA.ASSEMBLE.txt
- VDA TITLE 'DMKVDA (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE SEQUENCING OF SYSIN @V407466 00002000
- COPY OPTIONS @V407466 00003000
- COPY LOCAL @V407466 00004000
- *. 00005000
- * MODULE NAME - 00006000
- * 00007000
- * DMKVDA 00008000
- * 00009000
- * FUNCTION - 00010000
- * TO 'ATTACH' A REAL DEVICE TO A USER AS A VIRTUAL DEVICE, 00011000
- * OR TO DEDICATE ALL DEVICES ON A PARTICULAR CHANNEL TO A 00012000
- * SPECIFIED USER. 00013000
- *. 00014000
- SPACE 2 00015000
- DMKVDA START 00016000
- SPACE 00017000
- DC CL8'DMKVDA' MODULE IDENTIFICATION @V407466 00018000
- SPACE 00019000
- USING PSA,R0 @V407466 00020000
- USING VMBLOK,R11 @V407466 00021000
- USING SAVEAREA,R13 @V407466 00022000
- SPACE 00023000
- EXTRN DMKCVTBH @VA13651 00024000
- EXTRN DMKSCNRU,DMKSCNVU @VA13651 00025000
- EXTRN DMKSCNVS,DMKSCNRN,DMKSCNAU @V407466 00026000
- EXTRN DMKLOCKQ,DMKLOCKD,DMKVDSAT @V407466 00027000
- EXTRN DMKVCHDC @VA13651 00028000
- EXTRN DMKSSSVA,DMKSSSAS,DMKSTKCP @V60B6B8 00030000
- EXTRN DMKVDCPS,DMKVDCAL,DMKVDCSC @V407466 00031000
- EXTRN DMKSYSOW,DMKSYSOC @V407466 00032000
- EXTRN DMKVDEDC READ LABEL/ALLOC RECORD @V407466 00033000
- EXTRN DMKVDERR ERROR MESSAGE ROUTINE @VA13651 00033500
- *. 00034000
- * 00035000
- * COMMAND LINE FORMAT - 00036000
- * 00037000
- * +--------+-----------------------------------------------+ 00038000
- * | | | 00039000
- * | ATTACH | RADDR <TO> USERID <AS> <VADDR> <R/O> | 00040000
- * | | <3330V> <VOLID XXXXXX> | 00040500
- * | | RADDR <TO> SYSTEM <AS> VOLID | 00041000
- * | | RADDR1-RADDR2 <TO> USERID <R/O> | 00042000
- * | | RADDR1 RADDR2 ... <TO> USERID <R/O> | 00043000
- * | | | 00044000
- * | | CHANNEL X <TO> USERID | 00045000
- * | | | 00046000
- * +--------+-----------------------------------------------+ 00047000
- * 00048000
- * ATTRIBUTES - 00049000
- * 00050000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00051000
- * 00052000
- * ENTRY CONDITIONS - 00053000
- * 00054000
- * GPR 2 = 0 00055000
- * GPR 9 = ADDRESS OF COMMAND BUFFER 00056000
- * GPR 11 = ADDRESS OF CALLER'S VMBLOK 00057000
- * GPR 12 = ADDRESS OF DMKVDAAT 00058000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00059000
- * 00060000
- * EXIT CONDITIONS - 00061000
- * 00062000
- * GPR 2 = 0 IF DEVICE HAS BEEN ATTACHED, OR 00063000
- * ERROR-CODE (SEE ERROR MESSAGES) IF UNSUCCESSFUL. 00064000
- * 00065000
- * CALLS TO OTHER ROUTINES - 00066000
- * 00067000
- * DMKSSSVA 00068000
- * DMKSSSAS 00069000
- * DMKSTKCP 00070000
- * DMKSCNRN 00072000
- * DMKSCNRU 00074000
- * DMKSCNAU 00075000
- * DMKSCNVU 00076000
- * DMKSCNVS 00077000
- * DMKVDSAT 00078000
- * DMKCVTBH 00079000
- * DMKQCNWT 00080000
- * DMKFREE 00081000
- * DMKLOCKQ - LOCK USERID 00082000
- * DMKLOCKD - UNLOCK USERID 00083000
- * DMKVCHDC 00084000
- * DMKVDCPS - PRESCAN 00085000
- * DMKVDCAL - ALLOCATION ROUTINE 00086000
- * DMKVDCSC - SCAN COMMAND LINE 00087000
- * DMKSYSOW 00088000
- * DMKSYSOC 00089000
- * DMKVDERR - PUT OUR 'ATTACH' ERROR MESSAGES 00089500
- * DMKVDEDC - READ LABEL/ALLOCATION RECORD 00090000
- * 00091000
- * EXTERNAL REFERENCES - 00092000
- * 00093000
- * DMKSYSOW - OWNED LIST START 00094000
- * DMKSYSOC - COUNT OF OWNED LIST VOLUMES 00094500
- * 00095000
- * TABLES / WORK AREAS - 00096000
- * 00097000
- * VMBLOK 00098000
- * UDEVBLOK (DUMMY FOR USE BY DMKVDSAT SUBROUTINE) 00099000
- * ATTMSG - WORK AREA FOR RANGE MESSAGES 00100000
- * MDSECT - WORK AREA FOR MULTIPLE DEVICE ADDRESSES 00101000
- * 00102000
- * REGISTER USAGE - 00103000
- * 00104000
- * GPR 8 = ADDRESS OF RDEVBLOK 00105000
- * GPR 9 = ADDRESS OF COMMAND BUFFER 00106000
- * GPR 10 = ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00107000
- * GPR 11 = ADDRESS OF CALLER'S OR USER'S VMBLOK 00108000
- * GPR 12 = BASE REGISTER 00109000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00110000
- * 00111000
- * GPRS 0-7 AND 14-15 ARE WORK REGISTERS. 00112000
- * 00113000
- * 00114000
- * OPERATION - 00115000
- * 00116000
- * 1. THE INPUT LINE IS SCANNED VIA A CALL TO DMKVDCSC. 00117000
- * DMKVDCSC WILL SCAN THE COMMAND LINE VIA DMKSCNFD AND DMKCVTHB 00118000
- * TO OBTAIN AND CONVERT FROM HEX TO BINARY (WHERE APPROPRIATE) 00119000
- * THE REAL DEVICE, USERID, AND VIRTUAL DEVICE. IF ANY FIELDS 00120000
- * ARE OMITTED OR INVALID, AN ERROR CODE IS RETURNED TO THE 00121000
- * CALLER AND DMKVDA WILL ISSUE AN APPROPRIATE ERROR MESSAGE 00122000
- * BASED ON THE RETURN CODE RECEIVED. DMKCFCSC IS CALLED BY 00123000
- * DMKVDCSC TO SCAN THE FIRST COMMAND OPERAND TO DETERMINE IF 00124000
- * A RANGE OF REAL DEVICE ADDRESSES WAS SPECIFIED. IF MULTIPLE 00125000
- * ADDRESSES ARE SPECIFIED ON THE COMMAND LINE, A WORK AREA 00126000
- * IS OBTAINED AND ALL MULTIPLE REAL ADDRESSES ARE STORED IN 00127000
- * BINARY FORM IN THIS WORK AREA FOR LATER PROCESSING. 00128000
- * 00129000
- * 2. DMKVDCPS WILL BE CALLED TO PERFORM A PRESCAN WHEN A RANGE 00130000
- * OF REAL ADDRESSES OR MULTIPLE REAL ADDRESSES WERE SPECIFIED 00131000
- * ON THE COMMAND LINE. THE PURPOSE OF THE PRESCAN IS TO 00132000
- * DETERMINE THE NUMBER OF REAL DEVICES WHICH ARE LIKELY TO BE 00133000
- * ATTACHED ON THIS COMMAND EXECUTION AND TO ACQUIRE STORAGE 00134000
- * FOR VIRTUAL BLOCKS IN ADVANCE TO MINIMIZE REPEATED CALLS 00135000
- * TO DMKFRE LATER BY DMKVDS. DMKVDCPS WILL BE CALLED ONLY 00136000
- * WHEN MULTIPLE REAL ADDRESSES OR A RANGE OF REAL ADDRESSES 00137000
- * WERE SPECIFIED ON THE COMMAND LINE. 00138000
- * 00139000
- * 3. DMKSCNRU IS CALLED TO FIND RDEVBLOK FOR THE REAL DEVICE 00140000
- * (ERROR RETURNED IF NOT FOUND). DMKSCNAU IS CALLED TO FIND 00141000
- * THE ACTIVE USER FOR WHOM THE ATTACH IS SPECIFIED (ERROR 00142000
- * RETURNED IF HE IS NOT LOGGED ON). DMKSCNVU IS CALLED TO 00143000
- * ENSURE THAT THE VIRTUAL DEVICE DOES NOT ALREADY EXIST 00144000
- * (ERROR RETURNED IF IT DOES). 00145000
- * 00146000
- * 4. A CALL IS MADE TO DMKVDEDC TO VERIFY DEVICE 00147000
- * EXISTENCE. SETS UP AN I/O TASK (TIO) TO SEE IF 00148000
- * THE DEVICE EXISTS. IF THE DEVICE DOES NOT EXIST, 00149000
- * IT IS MARKED OFFLINE AND A 'DOES NOT EXIST' MESSAGE 00150000
- * IS ISSUED FROM DMKVDA. 00151000
- * 00152000
- * FOR DASD, DMKVDEDC WILL SET UP AND EXECUTE AN 00153000
- * I/O TASK TO READ THE DASD VOLUME LABEL OF THE DEVICE 00154000
- * BEING ATTACHED. IF SUCCESSFUL, THE VOLUME SERIAL 00155000
- * IS INSERTED INTO THE 'RDEVSER' FIELD OF THE REAL 00156000
- * DEVICE BLOCK. AN ERROR RETURN CODE IS PASSED BACK TO 00157000
- * DMKVDA IF FAILURE ENCOUNTERED ON THE READ. A FLAG 00158000
- * IS SET IF IT IS A CP/370 OWNED VOLUME. 00159000
- * IF DMKVDEDC WAS CALLED WITH PARM = 1, INDICATING 00160000
- * ALLOCATION DATA IS PRESENT, THE ALLOCATION 00161000
- * RECORD IS READ INTO FREE STORAGE. 00162000
- * 00163000
- * 5. IF THESE TESTS ARE SATISFACTORY, THEN DMKVDSAT IS CALLED 00164000
- * TO ATTACH THE GIVEN REAL DEVICE AS A VIRTUAL DEVICE. IF AN 00165000
- * ERROR RETURN OCCURS FROM DMKVDSAT, THEN THE ERROR CODE IS 00166000
- * RETURNED TO THE CALLER OF DMKVDAAT AND AN ERROR MESSAGE IS 00167000
- * SENT. 00168000
- * 00169000
- * 6. IF DMKVDSAT WAS SUCCESSFUL, A MESSAGE IS 00170000
- * SENT TO THE USER INDICATING THE DEVICE HAS BEEN ATTACHED; 00171000
- * AN ADDITIONAL MESSAGE IS SENT TO THE CALLER INDICATING THAT 00172000
- * THE DEVICE HAS BEEN ATTACHED. IF THE CALLER IS NOT THE 00173000
- * SYSTEM OPERATOR, A MESSAGE IS SENT TO THE SYSTEM OPERATOR 00174000
- * INDICATING WHAT DEVICE WAS ATTACHED BY WHAT CALLER TO WHAT 00175000
- * USER. 00176000
- * 00177000
- * 7. PROCESSING WILL CONTINUE IF AN ERROR IS ENCOUNTERED WHILE 00178000
- * PROCESSING MULTIPLE REAL ADDRESSES OR A RANGE. AN ERROR 00179000
- * MESSAGE WILL BE ISSUED FOR THE DEVICE ADDRESSES IN ERROR. 00180000
- * A RESPONSE TYPE MESSAGE WILL ALSO BE ISSUED FOR THOSE REAL 00181000
- * ADDRESSES IN THE RANGE WHICH COULD BE ATTACHED OR THOSE 00182000
- * MULTIPLE ADDRESS IN THE COMMAND LINE WHICH COULD BE 00183000
- * ATTACHED. 00184000
- * 00185000
- * 8. FOR THE ATTACH CHANNEL COMMAND, A CHECK IS MADE TO ENSURE 00186000
- * THAT THE COMMAND LINE IS CORRECT VIA A CALL TO DMKVDCSC. 00187000
- * DMKVCHDC IS THEN CALLED TO ATTACH THE CHANNEL AND MARK ALL 00188000
- * CONTROL UNITS AND DEVICES ON THE CHANNEL AS DEDICATED. 00189000
- * 00190000
- * RESPONSES - 00191000
- * 00192000
- * 'TYPE VADDR ATTACHED' 00193000
- * OR 00194000
- * 'DASD VADDR ATTACHED R/O' (IF READONLY OPTION WAS SPECIFIED) 00195000
- * 00196000
- * 'TYPE RADDR ATTACH TO $USERID$ VADDR' 00197000
- * 00198000
- * 'TYPE RADDR ATTACH TO $USERID$ VADDR BY $USERID$' 00199000
- * 00200000
- * 'DASD RADDR ATTACH TO SYSTEM $VOLID$' 00201000
- * 00202000
- * 'DASD RADDR ATTACH TO SYSTEM $VOLID$ BY $USERID$' 00203000
- * 00204000
- * 'RADDR ... ATTACHED' 00205000
- * 'RADDR ... ATTACHED TO $USERID$' 00206000
- * 'RADDR ... ATTACHED TO $USERID$ BY $USERID$' 00207000
- * 00208000
- * 'RADDR-RADDR ATTACHED' 00209000
- * 'RADDR-RADDR ATTACHED TO $USERID$' 00210000
- * 'RADDR-RADDR ATTACHED TO $USERID$ BY $USERID$' 00211000
- * 00212000
- * 00213000
- * ERROR MESSAGES - 00214000
- * 00215000
- * SEE DMKVDERR FOR ERROR MESSAGE TEXT. 00216000
- EJECT 00246000
- DMKVDAAT RELOC ATTACH A REAL DEV/CHANNEL TO USER'S VM @V407490 00247000
- XC VDABITS(4),VDABITS CLEAR FLAG-BIT WORD @V407466 00248000
- * (SAVEWRK1) 00249000
- SLR R10,R10 CLEAR R10 FOR LATER @V407466 00250000
- SLR R4,R4 CLEAR R4 @V407466 00251000
- ST R4,SAVER2 CLEAR R2 FOR ZERO RETURN CODE @V407466 00252000
- LA R0,MULTSIZE+MSGSIZE+VOLSIZE LARGE PIECE OF @V60B6B8 00253000
- * STORAGE 00254000
- CALL DMKFREE GO GET IT @V407466 00255000
- LR R4,R1 R4 CONTAINS ADDR OF AREA @V407466 00256000
- USING ATTMSG,R4 ESTABLISH ADDRESSABILITY @V407466 00257000
- MVI ATTMSG,BLANK PROPAGATE BLANKS THROUGH AREA @V407466 00258000
- MVC ATTMSG+1((MULTSIZE*8+MSGSIZE*8)-1),ATTMSG @V407466 00259000
- ST R4,SAVEWRK5 SAVE ADDR OF WORKAREA @V407466 00260000
- EJECT 00261000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00262000
- * DMKVDCSC WILL SCAN THE COMMAND LINE AND PERFORM SYNTAX CHECKING. * 00263000
- * R9 POINTS TO THE COMMAND LINE AT ENTRY TO DMKVDCSC. DMKVDCSC WILL * 00264000
- * USE THE DMKVDA SAVEAREA TO STORE COMMAND LINE OPERANDS AND FLAGS. * 00265000
- * UPON RETURN FROM DMKVDCSC R2 = 0 IF A SUCCESSFUL SYNTAX CHECK WAS * 00266000
- * PERFORMED. OTHERWISE R2 WILL CONTAIN THE APPROPRIATE ERROR CODE. * 00267000
- * UPON RETURN R4 STILL POINTS TO LARGE WORK AREA. * 00268000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00269000
- SPACE 2 00270000
- CALL DMKVDCSC SCAN COMMAND LINE @V407466 00271000
- LTR R2,R2 ANY SYNTAX ERRORS @V407466 00272000
- BNZ ERROR JUMP TO ERROR MESSAGE CODE @V407466 00273000
- TM VDABITS,CHANNEL ATTACHING A CHANNEL? @V407466 00274000
- BO DEDCHAN YES, TRANSFER TO DMKVCHDC @V407466 00275000
- LA R0,MULTSIZE+MSGSIZE CONSTRUCT VOLID OFFSET @V60B6B8 00276000
- SLL R0,3 ...NO OF BYTES INTO MSG BUFFER @V60B6B8 00277000
- LR R3,R4 BUFFER ADDR @V60B6B8 00278000
- AR R3,R0 ACTUAL ADDR OF OFFSET @V60B6B8 00279000
- MVC 0(VOLIDSIZ,R3),SAVEWRK6 VOLID SET BY DMKVDCSC @V60B6B8 00280000
- LR R3,R4 WORK AREA ADDR TO R3 @V407466 00281000
- TM VDABITS,MULTR MULTIPLE ADDRESSES ON COMMAND @V407466 00282000
- BO GOODCMD2 YES, PREPARE FOR PRESCAN @V407466 00283000
- TM VDABITS,RANGE MULTIPLE ADDRESSES ON COMMAND @V407466 00285000
- BO GOODCMD YES, RANGE PROCESSING @V407466 00286000
- LH R1,VIRTADD VIRTUAL ADDR TO R1 IF SINGLE @V407466 00287000
- MVC SAVEWRK5(FLAGLEN),SAVEWRK9 SAVE FLAG SET IN DMKVDC 00287100
- TM VMOSTAT,VMSYSOP THE SYSTEM OPERATOR @V407466 00288000
- BO PROCESS YES @V407466 00289000
- OI VDABITS,NSYSOP ATTACH BY OTHER THAN PRIMARY OP. @V407466 00290000
- B PROCESS KEEP PROCESSING SINGLE ADDR @V407466 00291000
- SPACE 2 00292000
- GOODCMD EQU * SCAN DID NOT FAIL @V407466 00293000
- SLR R3,R3 ZERO R3 TO INDICATE RANGE @V407466 00294000
- GOODCMD2 EQU * ENSURE PARAMETER VALIDITY @V60B6B8 00295000
- TM SAVEWRK9,VOLPRES WAS 'VOLID' PRESENT WITH @V60B6B8 00296000
- * RANGE OR MULT 00297000
- BO MSG076 YES, INVALID, SET UP ERROR MSG @VMI2020 00298000
- BAL R5,SWPUSER SWITCH TO ATTACHEE'S VMBLOK @V60B6B8 00299000
- BAL R5,LOKUSER LOCK USER'S DEVICE BLOCKS @V407466 00300000
- BAL R5,SWPCALL BACK TO CALLER'S VMBLOK @V407466 00301000
- EJECT 00302000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00303000
- * R3 POINTS TO FREE STORAGE CONTAINING MULTIPLE ADDRESSES. * 00304000
- * IF R3 = 0, THEN DMKVDCPS IS PROCESSING A RANGE OF ADDRESSES. * 00305000
- * R2 UPON RETURN CONTAINS AN ERROR CODE IF APPROPRIATE. * 00306000
- * R4 REMAINS UNCHANGED ACROSS THE CALL TO DMKVDCPS. * 00307000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00308000
- SPACE 2 00309000
- CALL DMKVDCPS DO PRESCAN FOR RANGE/MULTIPLES @V407466 00310000
- CH R2,=H'124' EXCEEDED MAX DEVICES? @VA13217 00310300
- BE ERR153 YES - ISSUE ERROR MSG @VA13217 00310600
- LTR R2,R2 INSUFFICIENT STORAGE FOR REQUEST @V407466 00311000
- BNZ ERROR JUMP TO ERROR MSG CODE IF SO @V407466 00312000
- LA R0,MULTSIZE+MSGSIZE LENGTH OF MSG BUFFER @V60B6B8 00313000
- L R15,SAVEWRK5 BUFFER ADDR @VMI2002 00314000
- SLL R0,3 MSG BUFFER LENGTH IN BYTES @V60B6B8 00315000
- AR R15,R0 BUMP OVER MSG BUFFER @VMI2002 00316000
- MVC 0(VOLIDSIZ,R15),SAVEWRK3 VOLID IF PASSED FROM @VMI2002 00317000
- * DMKVDC 00318000
- TM VMOSTAT,VMSYSOP THE SYSTEM OPERATOR ???? @V407490 00319000
- BO ATTSYSOP YES, GO CONTINUE PROCESSING @V407490 00320000
- OI VDABITS,NSYSOP ATTACH BY OTHER THAN PRIMARY OP @V407490 00321000
- ATTSYSOP EQU * @V407490 00322000
- MVC SAVEWRK5(FLAGLEN),SAVEWRK9 SAVE FLAG SET IN @VA10488 00322100
- * DMKVDC 00322200
- TM VDABITS,RANGE PROCESSING RANGE @V407466 00323000
- BNO CHKMULT NO, SEE IF MULTIPLE ADDRESSES @V407466 00324000
- L R1,DEVADDR RADDR1 IN RANGE @V407466 00325000
- PROCESS DS 0H @V4M0193 00326000
- LR R9,R1 SAVE R1 @V4M0193 00327000
- BAL R5,SWPCALL SWITCH BACK TO CALLER'S VMBLOK @V4M0193 00328000
- LR R1,R9 RESTORE R1 @V4M0193 00329000
- LA R9,SAVEWRK6 SAVEWRK6,7,8 = UDEVBLOK @V407466 00330000
- USING UDEVBLOK,R9 @V407466 00331000
- MVC UDEVBLOK(12),ZEROES CLEAR TO ZERO @V407466 00332000
- STH R1,UDEVADD ... INTO UDEVBLOK @V407466 00333000
- BAL R5,GETRDEV GET RDEVBLOK @V407466 00336000
- USING RDEVBLOK,R8 @V407466 00337000
- CLI RDEVTYPC,CLASDASD IS THIS DASD DEVICE @V60B6B8 00338000
- BNE TSTDISA NO, CONTINUE @V60B6B8 00339000
- CLI RDEVTYPE,TYP3330 IS IT A 3330 DASD @V60B6B8 00340000
- BNE TSTDISA NO, CONTINUE @V60B6B8 00341000
- TM RDEVFTR,VIRTUAL+SYSVIRT IS IT AN MSS VUA @V60B6B8 00342000
- BZ TSTDISA NO, CONTINUE @V60B6B8 00343000
- TM VDABITS,ATTSYST ATT TO THE SYSTEM @VMI2002 00346000
- BO TSTSYSV YES, TEST DEVICE FEATURE @VMI2002 00347000
- TM RDEVFTR,VIRTUAL ATT TO USER, IS RDEV A VIRT @VMI2002 00348000
- BZ INVTYPE NO, INVALID DEV TYPE @VMI2002 00349000
- B TSTVOLPR DEV TYPE OK, SEE IF SPECIFIC @VMI2002 00350000
- * VOL NEEDED 00351000
- TSTSYSV EQU * @VMI2002 00352000
- TM RDEVFTR,SYSVIRT ATT TO SYS, IS RDEV A SYSV @VMI2002 00353000
- BZ INVTYPE NO, INVALID DEV TYPE @VMI2002 00354000
- TSTVOLPR EQU * @VMI2002 00355000
- TM SAVEWRK5,VOLPRES WAS 'VOLID' PRESENT FOR VUA @VMI2002 00356000
- BZ TSTDISA NO, CONTINUE @V60B6B8 00357000
- TM PSAMSS,MSSPRES MSS PRESENT IN THIS SYSTEM? @VA09319 00357010
- * VMI2040 00357020
- BZ TSTDISA NO,DON'T TRY TO CALL DMKSSS @VA09319 00357030
- * VMI2040 00357040
- L R7,SAVEWRK5 ADDR OF THE NEEDED VOLID @V60B6B8 00358000
- LA R7,0(,R7) CLEAR HIGH ORDER BYTE @VA13651 00358500
- LA R0,MULTSIZE+MSGSIZE LENG OF MSG AREA IN D-WORDS @V60B6B8 00359000
- SLL R0,3 INTO BYTES @V60B6B8 00360000
- AR R7,R0 ADDR OF VOLID IF ONE EXISTS @V60B6B8 00361000
- CALL DMKSSSVA FIND 'VOLID' FOR VUA @V60B6B8 00362000
- LTR R0,R0 WAS THERE AN ERROR @V60B6B8 00363000
- BNZ CHKRETC POSSIBLY, TEST RETURN CODE @V60B6B8 00364000
- TSTDISA EQU * TEST FOR OFFLINE DEVICE @V60B6B8 00365000
- TM RDEVSTAT,RDEVDISA IS DEVICE OFFLINE? @V407466 00366000
- BO ERR12 YES - ERROR MESSAGE @V407466 00367000
- TM VDABITS,ATTSYST ATTACH TO SYSTEM ? @V407466 00368000
- BO ATTVOLD YES @V407466 00369000
- TM RDEVSTAT,RDEVDED IS DEVICE ALREADY DED.? @V407466 00370000
- BO ERR24 YES, GO INFORM @V407466 00371000
- TM RDEVFTR,VIRTUAL THIS AN MSS VIRTUAL VUA? @VA11344 00371100
- BNO TSTDISA1 NO - THEN DON'T WORRY @VA11344 00371200
- TM SAVEWRK5,VOLPRES VOL PRESENT IN COMMAND? @VA11344 00371300
- BO TSTDISA1 YES - THEN DON'T RESET FLAG @VA11344 00371400
- NI RDEVFLAG,X'FF'-RDEVVMNT ELSE RESET 'MTD-BY-CP' @VA11344 00371500
- TSTDISA1 DS 0H @VA11344 00371600
- LA R1,CLASSPEC*256+TYPCTCA CHECK FOR REAL CTCA @V407466 00372000
- CH R1,RDEVTYPC TRYING TO ATTACH A CTCA ? @V407466 00373000
- BNE NOTCTCA NO -- NORMAL HANDLING @V407466 00374000
- OI VDABITS,ATTCTCA NEEDS SOME SPECIAL HANDLING @V407466 00375000
- NOTCTCA EQU * TEST FOR DASD READ-ONLY OPTION @V407466 00376000
- TM VDABITS,ATTREAD "R/O" SPECIFIED ? @V407466 00377000
- BZ NOTREAD NO @V407466 00378000
- CLI RDEVTYPC,CLASDASD VALID ONLY FOR DASD DEVICES @V407466 00379000
- BE CHKDRUM O.K. AS IT SITS @V407466 00380000
- TM VDABITS,RANGE+MULTR RANGE OR MULTIPLE ADDRESSES @V407490 00381000
- BM NOTREAD YES, CONTINUE PROCESSING @V407490 00382000
- MSG 'R/O' SET REGS FOR ERROR MSG ROUTINE @V407466 00383000
- B INVOPTS2 INVALID OPTION @V407466 00384000
- CHKRETC EQU * TEST RETURN CODE FROM DMKSSS @V60B6B8 00385000
- LA R15,RC4 EXPECTED RC @V60B6B8 00386000
- CR R15,R0 COMPARE TO ACTUAL @V60B6B8 00387000
- BE SAVEINFO IF RC=4, SAVE PERTINENT INFO @V60B6B8 00388000
- B INVTYPE PUT OUT ERROR MESSAGE @V60B6B8 00391000
- SAVEINFO EQU * SAVE PERTINENT INFO (FLAGS @V60B6B8 00392000
- * ETC.) 00393000
- TM MSSFLAG2-OSVSCOM(R1),MSGPROC PCI YET @VA09302 00394000
- BZ PCINOW YES, PROCESS @VMI2018 00395000
- NI MSSFLAG2-OSVSCOM(R1),X'FF'-MSGPROC @VA09302 00396000
- L R3,MSSTASK1-OSVSCOM(R1) SAVE POINTER TO @V60B6B8 00397000
- * MSSTASK1 00398000
- LA R0,SAVESIZE GET A DUPLICATE SAVE AREA @V60B6B8 00399000
- CALL DMKFREE @V60B6B8 00400000
- MVC SAVEWRK1-SAVEAREA(4,R1),SAVEWRK1 SAVE FLAGS @V60B6B8 00401000
- MVC SAVEWRK2-SAVEAREA(WORKAREA,R1),SAVEWRK2 HOLLY @V60B6B8 00402000
- * SAVE REMAINING INFO 00403000
- ST R1,CPEXR1-CPEXBLOK(R3) PUT PTR TO INFO IN @V60B6B8 00404000
- * MSSTASK1 CPEXBLOK 00405000
- B VDAATEXT EXIT FOR NOW, WAIT FOR MSS MOUNT @V60B6B8 00406000
- * 00407000
- * THE FOLLOWING ROUTINE IS ENTERED AFTER AN MSS VOLUME 00408000
- * MOUNT. 00409000
- * 00410000
- DMKVDAS1 RELOC @V60B6B8 00411000
- USING OSVSCOM,R3 GPR 3 WAS SET BY DMKSSS @V60B6B8 00412000
- MVC SAVEWRK1,SAVEWRK1-SAVEAREA(R1) RESTORE FLAGS @V60B6B8 00413000
- * TO CURRENT SAVEAREA 00414000
- MVC SAVEWRK2(WORKAREA),SAVEWRK2-SAVEAREA(R1) @V60B6B8 00415000
- * RESTORE OTHER WORKING INFO 00416000
- LA R0,SAVESIZE SIZE OF SAVE AREA @V60B6B8 00417000
- CALL DMKFRET GIVE IT BACK @V60B6B8 00418000
- L R1,MSSTASK3 IS THERE A PENDING I/O @V60B6B8 00419000
- LTR R1,R1 REPRESENTED BY A CPEXBLOK @V60B6B8 00420000
- BZ FRECOM2 NO @V60B6B8 00421000
- CALL DMKSTKCP STACK THE CPEXBLOK FOR THE I/O @V60B6B8 00422000
- FRECOM2 EQU * @V60B6B8 00423000
- LA R0,MSSSIZE NO OF D-WORDS IN AN MSSCOM @V60B6B8 00424000
- LR R1,R3 MSSCOM ADDR @V60B6B8 00425000
- CALL DMKFRET RETURN CORE TO THE SYSTEM @V60B6B8 00426000
- B TSTDISA AND COMPLETE THE ATTACH @V60B6B8 00427000
- PCINOW EQU * MSS VOLUME IS NOW MOUNTED @VMI2018 00428000
- L R14,=V(DMKSSSMQ) ADDR OF MSSCOM Q PTR @VMI2018 00429000
- L R15,0(R14) FIRST MSSCOM IN Q @VMI2018 00430000
- CHKNEXT EQU * SEE IF OUR MSSCOM IS IN Q @VMI2018 00431000
- CR R15,R1 IS Q ENTRY OURS? @VMI2018 00432000
- BE DEQIT YES, REMOVE IT @VMI2018 00433000
- LA R14,MSSNEXT-OSVSCOM(R15) NEXT CHAIN PTR @VMI2018 00434000
- L R15,MSSNEXT-OSVSCOM(R15) NEXT MSSCOM @VMI2018 00435000
- B CHKNEXT AND CHECK IT @VMI2018 00436000
- DEQIT EQU * @VMI2018 00437000
- MVC 0(4,R14),MSSNEXT-OSVSCOM(R15) RECHAIN @VMI2018 00438000
- LA R0,MSSSIZE SIZE OF THE MSSCOM @VMI2018 00439000
- CALL DMKFRET RELEASE IT @VMI2018 00440000
- B TSTDISA AND COMPLETE THE ATTACH @VMI2018 00441000
- EJECT 00442000
- USING MDSECT,R4 @V407466 00443000
- CHKMULT L R2,MULTADD FIRST MULTIPLE ADDRESS @V407466 00444000
- USING ATTMSG,R4 @V407466 00445000
- GOODCMD3 LR R1,R2 DEVICE ADDRESS TO R1 @V407466 00446000
- NI VDABITS,X'FF'-DED2305 RESET DRUM FLAG @V407490 00447000
- B PROCESS PROCESS MULTIPLE ADDRESSES @V407466 00448000
- SPACE 00449000
- NOTREAD EQU * @V407466 00450000
- CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL DEVICE @V407466 00451000
- BNE NOTLINE NO @V407466 00452000
- TM RDEVFLAG,RDEVENAB+RDEVPREP IS LINE ACTIVE @V407466 00453000
- BNZ ERR16 SEND MSG = VDA143E @V407466 00454000
- TM RDEVSTAT,RDEVBUSY IS IT BUSY @V407466 00455000
- BO ERR16 YES, SEND MSG VDA143E @V407466 00456000
- B GOODOPT CHECK DEVICE STATUS @V407466 00457000
- SPACE 00458000
- NOTLINE EQU * ... @V407466 00459000
- CLI RDEVTYPC,CLASGRAF IS IT A GRAF DEVICE ? @VA08560 00459100
- BNE NOTGRAF NO,CHECK NEXT TYPE @VA08560 00459130
- CLC RDEVNAME,TST3138 IS IT A 3138 CONSOLE ? @VA08560 00459160
- BE GRAFCONS YES IT IS @VA08560 00459190
- CLC RDEVNAME,TST3148 IS IT A 3148 CONSOLE ? @VA08560 00459220
- BE GRAFCONS YES IT IS @VA08560 00459250
- CLC RDEVNAME,TST3158 IS IT A 3158 CONSOLE ? @VA08560 00459280
- BE GRAFCONS YES IT IS @VA08560 00459310
- CLC RDEVNAME,TST3036 IS IT A 3036 CONSOLE ? @VA08560 00459340
- BE GRAFCONS YES IT IS @VA08560 00459370
- CLC RDEVNAME,TST3066 IS IT A 3066 CONSOLE ? @VA08560 00459400
- BE GRAFCONS YES IT IS @VA08560 00459430
- B GOODOPT CHECK DEVICE STATUS @VA08560 00459460
- DS 0D @VA08560 00459490
- TST3036 DC X'3036' @VA08560 00459520
- TST3066 DC X'3066' @VA08560 00459550
- TST3138 DC X'3138' @VA08560 00459580
- TST3148 DC X'3148' @VA08560 00459610
- TST3158 DC X'3158' @VA08560 00459640
- SPACE 00459670
- GRAFCONS EQU * @VA08560 00459700
- OI UDEVSTAT,UDEV3158 INDICATE CONSOLE DEVICE @VA08560 00459730
- B GOODOPT CHECK DEVICE STATUS @VA08560 00459760
- SPACE 00459790
- NOTGRAF EQU * @VA08560 00459820
- TM RDEVTYPC,CLASURI+CLASURO UNIT RECORD DEVICE @V407466 00460000
- BZ NOTUR NO, CHECK NEXT TYPE @V407466 00461000
- TM RDEVFLAG,RDEVDRAN IS THE DEVICE DRAINED @V407466 00462000
- BZ ERR08 NO, CANNOT ATTACH @V407466 00463000
- ICM R15,15,RDEVSPL CHECK FOR ACTIVE SFBLOK @V407466 00464000
- BNZ ERR08 YES, CANNOT ATTACH @V407466 00465000
- B GOODOPT ATTACH THE DEVICE @V407466 00466000
- SPACE 00467000
- NOTUR EQU * ... @V407466 00468000
- CLI RDEVTYPC,CLASDASD IS THIS A DASD DEVICE @V407466 00469000
- BNE GOODOPT NO, CHECK DEVICE EXISTENCE @V407466 00470000
- OI UDEVMODE,UDEVW YES- SET ACCESS MODE TO R/W @V407466 00471000
- CHKDRUM EQU * SPECIAL TEST FOR 2305 ATTACH @V407466 00472000
- CLI RDEVTYPE,TYP2305 MULTIPLE-EXPOSURE DEVICE ? @V407466 00473000
- BNE GOODOPT NO -- ALL SET @V407466 00474000
- TM RDEVADD+1,X'07' ATTACHING BASE EXPOSURE? @V407466 00475000
- BNZ VDA021A NOPE, BAD NEWS... @V407490 00476000
- TM UDEVADD+1,X'07' ATTACHING AS BASE EXPOSURE? @V407466 00477000
- BNZ VDA022B NOPE, ALSO BAD NEWS. @V407466 00478000
- OI VDABITS,DED2305 IND. MESSING WITH DEDICATED 2305@V407466 00479000
- SPACE 00480000
- GOODOPT EQU * FIND THE VOLUME LABEL @V407466 00481000
- BAL R7,DEVCHECK FIND THE VOLUME LABEL @V407466 00482000
- DROP R8 @V407466 00483000
- SPACE 00484000
- CHEKLOK EQU * CHK USERID FOR LOCKED OR IN LOGON@V407466 00485000
- LA R1,CMDUSER ATTACHEE'S USERID @V407466 00486000
- BAL R5,CHKUSER ENSURE STILL THERE @V407466 00487000
- LR R10,R1 ENSURE USE OF CURRENT VMBLOK @VA08223 00488000
- BAL R5,SWPUSER SWITCH TO ATTACHEE'S VMBLOK @V407466 00489000
- TM VDABITS,RANGE+MULTR MORE THAN 1 ADDRESS @V407466 00490000
- BM SKIPLOCK YES, ALREADY LOCKED @V407466 00491000
- BAL R5,LOKUSER LOCK THE USER'S DEVICE BLOCKS @V407466 00492000
- SPACE 00493000
- SKIPLOCK LH R1,UDEVADD VIRTUAL DEVICE ADDRESS @V407466 00494000
- CALL DMKSCNVU SEE IF ALREADY DEFINED @V407466 00495000
- BZ ERR56 ALREADY DEFINED @V407466 00496000
- BC 4,NOTDEDCH CHANNEL NOT FOUND @V407466 00497000
- BC 2,CHKDEDCH CONTROL UNIT NOT FOUND @V407466 00498000
- TM VDABITS,ATTCTCA ATTACHING A CTCA ? @V407466 00499000
- BO ERR56 YES - CANNOT DO IT IF C.U. EXISTS@V407466 00500000
- TM VDABITS,DED2305 DEDICATED 2305 TYPE ATTACH? @V407466 00501000
- BZ CHKDEDCH NOPE, SKIP @V407466 00502000
- USING VCUBLOK,R7 ADDRESS THE VCUBLOK @V407466 00503000
- N R1,F8 OBTAIN BASE ADDR INDEX @V407466 00504000
- SLL R1,1 CONVERT TO VCUDVTBL 2 BYTE INDEX @V407466 00505000
- LR R5,R3 SAVE R3 TEMPORARILY @V407466 00506000
- LA R3,VCUDVTBL+2*7(R1) TABLE ADDR OF LAST EXPOSURE @V407466 00507000
- LA R1,VCUDVTBL(R1) TABLE ADDR OF FIRST EXPOSURE @V407466 00508000
- LA R2,COUNT2 TABLE ENTRY LENGTH FOR BXLE @V407490 00509000
- PRESCAN CLI 0(R1),X'FF' IS THIS DEVICE DEFINED? @V407466 00510000
- BE EXPOS LOOK AT ALL 8 EXPOSURES @V407466 00511000
- LA R2,RC60 ERROR 56 @V407466 00512000
- LR R3,R5 RESTORE VIRTUAL ADDRESS @VA11421 00512500
- B ERROR COMMON ERROR PROCESSING @V407466 00513000
- SPACE 2 00514000
- EXPOS BXLE R1,R2,PRESCAN NO, LOOK AT ALL 8 EXPOSURES @V407466 00515000
- LR R3,R5 RESTORE R3 @V407466 00516000
- CHKDEDCH EQU * CANNOT ATTACH TO DED CHANNEL @V407466 00517000
- AIF (NOT &DEDCH).NOTDED1 **AIF** @V407466 00518000
- USING VCHBLOK,R6 @V407466 00519000
- TM VCHSTAT,VCHDED IS CHANNEL DEDICATED @V407466 00520000
- BNO NOTDEDCH NO, KEEP GOING @V407466 00521000
- LA R2,RC64 CHANNEL DEDICATED ERROR @V407466 00522000
- B ERROR GO TO COMMON ERROR PROCESSING @V407466 00523000
- SPACE 2 00524000
- DROP R6,R7 NO MORE VCHBLOK OR VCUBLOK @V407466 00525000
- .NOTDED1 ANOP 00526000
- NOTDEDCH EQU * ALL CLEAR - FIRE AT WILL @V407466 00527000
- L R1,SAVEWRK9 RDEVBLOK ADDRESS @V407466 00528000
- LR R2,R9 ...UDEVBLOK @V407466 00529000
- CALL DMKVDSAT PERFORM REAL ATTACH @V407466 00530000
- TM VDABITS,RANGE+MULTR MORE THAN ONE ADDRESS @V407466 00531000
- BM SKIPFRE YES, SKIP 'FREUSER' @V407466 00532000
- BAL R5,FREUSER UNLOCK AND SWAP R11 @V407466 00533000
- SKIPFRE BAL R5,SWPCALL SWITCH TO CALLER'S VMBLOK @V407466 00534000
- CH R2,=H'124' MAX DEVICES EXCEEDED? @VA13217 00534300
- BE ERR153 YES - ISSUE ERROR MSG @VA13217 00534600
- LTR R2,R2 DID VDSAT GIVE AN ERROR ? @V407466 00535000
- BNZ ERROR JUMP TO ERROR MESSAGE CODE @V407466 00536000
- OI VDEVSTAT-VDEVBLOK(R8),VDEVCATT ATTACH VIA CMD @V407466 00537000
- TM SAVEWRK5,VIRTPRES WAS 3330V REQUESTED @V60B6B8 00538000
- BZ TSTMLT NO, CONTINUE @V60B6B8 00539000
- OI VDEVFLG2-VDEVBLOK(R8),VDEVVIRT SET FLAG @VA09758 00540010
- L R1,SAVEWRK9 RDEVBLOK ADDR @V60B6B8 00541000
- OI RDEVFLAG-RDEVBLOK(R1),RDEV333V @V60B6B8 00542000
- TSTMLT EQU * TEST FOR MULT @V60B6B8 00543000
- TM VDABITS,MULTR PROCESSING MULTIPLE ADDRESSES @V407466 00544000
- BO MULTMSG SPECIAL FORMAT FOR MULTMSG @V407466 00545000
- TM VDABITS,RANGE PROCESSING A RANGE @V407466 00546000
- BNO RESPATT NO, FORMAT MESSAGE @V407466 00547000
- LH R1,UDEVADD SEE IF ANY MORE ADDRESSES IN @V407466 00548000
- LR R2,R1 POSSIBLE MORE ADDRS TO PROCESS @V407490 00549000
- CALL DMKCVTBH RADDR1 TO PRINT HEX @V407466 00550000
- USING ATTMSG,R4 MSG BUFFER ADDRESSABILITY @V407466 00551000
- CLC ATTRADD1(3),=CL3' ' RADDR1 IN MESSAGE @V407466 00552000
- BE STORADD1 NO, STORE IN RADDR1 FIELD @V407466 00553000
- STCM R1,B'0111',ATTRADD2 STORE IN MSG BUFFER @V407466 00554000
- CHKEND EQU * @V407490 00555000
- TM VDABITS,DED2305 WORKING WITH DRUM ?? @V407490 00556000
- BZ CHKEND1 NO , TEST WITH WHAT WE HAVE @V407490 00557000
- LA R2,7(,R2) BUMP FOR EIGHT EXPOSURES @V407490 00558000
- CHKEND1 CH R2,VDABITS+2 AT THE END OF THE RANGE @V407490 00559000
- BNL RESPOND2 YES, ALL DONE, PROCESS MSG @V407490 00560000
- LA R2,1(,R2) BUMP FOR NEXT ADDR TO PROCESS @V407490 00561000
- B GOODCMD3 GO PROCESS NEXT ADDR @V407490 00562000
- SPACE 2 00563000
- RESPOND2 CLC ATTRADD1,=CL3' ' RADDR1 = BLANK @V407466 00564000
- BCR 8,R6 DO NOT ISSUE ANY MESSAGE @V407466 00565000
- CLC ATTRADD2,=CL3' ' RADDR2 BLANK IN MSG @V407466 00566000
- BE SINGMSG YES, ISSUE MSG FOR SINGLE ADDR @V407466 00567000
- CLC ATTRADD1,ATTRADD2 RADDR1=RADDR2 IN MSG BUF @V407466 00568000
- BE SINGMSG YES, ISSUE SINGLE MESSAGE @V407466 00569000
- MVC ATTDASH,DASH PLACE '-' IN MSG @V407466 00570000
- MVC ATTFLD1(L'ATTACHED),ATTACHED 'ATTACHED' TO MSG @V407466 00571000
- TM VDABITS,ATTSYST ATTACH TO 'SYSTEM' @V407466 00572000
- BO OPERMSG SKIP SHORT MESSAGE @V407466 00573000
- LA R0,ATTFLD1+8-ATTMSG CURRENT LENGTH @V407466 00574000
- B SNDUSR1 SWITCH TO TARGET USER'S VMBLOK @V407466 00575000
- SPACE 2 00576000
- STORADD1 STCM R1,B'0111',ATTRADD1 STORE ADDR1 IN MSG @V407466 00577000
- B CHKEND SEE IF END OF RANGE @V407466 00578000
- SPACE 00579000
- SINGMSG MVC ATTADD1(3),ATTRADD1 PREPARE FOR SINGLE MESSAGE @V407466 00580000
- MVI ATTADD1-1,BLANK BLANK CHAR BEFORE ADDR @V407466 00581000
- RESPATT EQU * CONTRUCT MSGS FOR 'ATTACH REAL' @V407466 00582000
- BAL R5,GETRTYP GET EBCDIC TYPE-NAME OF DEVICE @V407466 00583000
- TM VDABITS,RANGE RANGE BEING PROCESSED @V407466 00584000
- BO STORTYPE YES, STORE DEVICE TYPE @V407466 00585000
- EJECT 00586000
- * 00587000
- * CONSTRUCT AND TYPE VARIOUS CONSOLE MESSAGES 00588000
- * 00589000
- MVI ATTMSG,X'40' CLEAR TO BLANKS @V407466 00590000
- MVC ATTMSG+1((ATTSIZE*8)-1),ATTMSG @V407466 00591000
- STORTYPE MVC ATTFLD1(8),ATTACHED USER/OPERATOR CUE @V407466 00592000
- ST R3,ATTDTYP TYPE-NAME OF AFFECTED DEVICE @V407466 00593000
- TM VDABITS,ATTSYST ATTACH TO SYSTEM ? @V407466 00594000
- BO OPERMSG YES - SKIP USER MESSAGE @V407466 00595000
- TM VDABITS,RANGE RANGE BEING PROCESSED @V407466 00596000
- BO LENGTH SKIP FOLLOWING CONVERT @V407466 00597000
- LH R1,VIRTADD VIRTUAL ADDRESS @V407466 00599000
- CALL DMKCVTBH ...INTO PRINTABLE FORM @V407466 00600000
- STCM R1,B'0111',ATTADD1 INTO TWO PLACES @V407466 00601000
- LENGTH LA R0,ATTFLD1+8-ATTMSG CURRENT LENGTH @V407466 00602000
- TM VDABITS,ATTREAD ATTACHED R/O ? @V407466 00603000
- BZ SNDUSR1 NO @V407466 00604000
- LA R0,ATTUSER+3-ATTMSG EXTRA LENGTH @V407466 00605000
- MVC ATTUSER(3),=C'R/O' ADD THIS TO MESSAGE @V407466 00606000
- SNDUSR1 EQU * SWITCH TO TARGET USER'S VMBLOK @V407466 00607000
- CLR R10,R11 ATTACH TO/FROM HIMSELF ? @V407466 00608000
- BE OPERMSG YES - SKIP SHORT MESSAGE @V407466 00609000
- SNDUSR2 EQU * SEND INFORMATION MESSAGE TO USER @V407466 00610000
- LR R4,R0 SAVE R0 @V4M0193 00611000
- BAL R5,SWPUSER SW TO USER'S VMBLOK @VA07393 00612000
- LR R0,R4 RESTORE R0 @V4M0193 00613000
- L R4,SAVEWRK5 RESTORE R4 @V4M0193 00614000
- LA R4,0(,R4) CLEAR HIGH ORDER BYTE @VA13651 00614500
- LR R1,R4 MESSAGE START @V407466 00615000
- L R2,=A(NOTRESP) INDICATE NON-COMMAND MSG @V60C2B8 00616000
- CALL DMKQCNWT,PARM=NORET(,R2) @V60C2B8 00617000
- BAL R5,SWPCALL BACK TO CALLER'S VMBLOK @V407466 00618000
- OPERMSG EQU * BUILD MSG FOR ATTACHER/DETACHER @V407466 00619000
- MVC ATTFLD1+6(8),BLANKS CLEAN UP AFTER USER MSG @V407466 00620000
- MVC ATTFLD2(2),=C'TO' @V407466 00621000
- TM VDABITS,RANGE RANGE MESSAGE FORMAT? @V407466 00622000
- BNO OPRMSG1 NO, CONTINUE TO FORMAT @V407466 00623000
- LA R0,ATTADD2-ATTMSG CURRENT LENGTH @V407466 00624000
- B OPRMSG2 CONTINUE TO FORMAT @V407466 00625000
- SPACE 2 00626000
- OPRMSG1 EQU * @V407466 00627000
- MVC ATTADD2(4),ATTADD1 MOVE VADDR FURTHER OUT @V407466 00628000
- MVI ATTADD2-1,X'40' FIX UP BLANKS FOR SPACING @V407466 00629000
- MVI ATTFLD2+2,X'40' ... @V407466 00630000
- BAL R5,CVTRADD CONVERT REAL ADDRESS TO HEX @V407466 00631000
- STCM R1,B'0111',ATTADD1 ...INTO OPERATOR MESSAGES @V407466 00632000
- LA R0,ATTFLD3-ATTMSG CURRENT LENGTH @V407466 00633000
- OPRMSG2 MVC ATTUSER(8),CMDUSER USERID OF ATTACHEE @V407466 00634000
- TM VDABITS,ATTSYST ATTACH TO SYSTEM ? @V407466 00635000
- BZ SNDOPER NO @V407466 00636000
- MVC ATTUSER(8),=CL8'SYSTEM' @V407466 00637000
- MVC ATTADD2-2(6),CMDUSER THIS IS THE VOLID @V407466 00638000
- B SNDOPMG @V407466 00639000
- SPACE 2 00640000
- SNDOPER EQU * @V407466 00641000
- TM VDABITS,RANGE RANGE MESSAGE? @V407466 00642000
- BO SNDOPMG SKIP R/O IN MESSAGE @V407466 00643000
- TM VDABITS,ATTREAD ATTACH READ/ONLY ? @V407466 00644000
- BZ SNDOPMG NO @V407466 00645000
- MVC ATTFLD3(3),=C'R/O' @V407466 00646000
- LA R0,ATTOPER-ATTMSG @V407466 00647000
- SNDOPMG EQU * TYPE MESSAGE TO ATTACHER @V407466 00648000
- LR R1,R4 MESSAGE START @V407466 00649000
- CALL DMKQCNWT,PARM=NORET @V407466 00650000
- TM VDABITS,NSYSOP ATTACH BY SYSTEM OPERATOR ? @V407466 00651000
- BZ VERERR NECESSARY TO ISSUE ERROR MSG @V407466 00652000
- TM VDABITS,RANGE RANGE MESSAGE @V407466 00653000
- BZ SNDOPMG2 NO, SLIGHTLY DIFFERENT FORMAT @V407466 00654000
- MVC ATTADD2(3),=C'BY ' SUBSTITUTE 'BY ' @V407466 00655000
- MVI ATTADD2-1,BLANK DELIMITER @V407466 00656000
- MVC ATTFLD3(8),VMUSER ATTACHER @V407466 00657000
- LA R0,ATTFLD3-ATTMSG+L'ATTOPER MSG LENGTH @V407466 00658000
- B SNDOPMG3 CONTINUE BELOW ... @V407466 00659000
- SPACE 2 00660000
- SNDOPMG2 MVC ATTFLD3(3),=C'BY ' @V407466 00661000
- MVC ATTOPER(8),VMUSER ATTACHER @V407466 00662000
- LA R0,ATTOPER-ATTMSG+L'ATTOPER MSG LENGTH @V407466 00663000
- SNDOPMG3 LR R1,R4 MESSAGE START @V407466 00664000
- CALL DMKQCNWT,PARM=NORET+OPERATOR @V407466 00665000
- TM VDABITS+1,ATTERR ISSUE ERROR AFTER RESPONSE ? @V407466 00666000
- BZ CLEANXT NO, FRET THE BUFFER @V407466 00667000
- BLDBUFF MVI ATTMSG,BLANK PROPAGATE BLANKS THROUGH @V407466 00668000
- MVC ATTMSG+1((ATTSIZE*8)-1),ATTMSG MESSAGE AREA @V407466 00669000
- LH R1,UDEVADD ERROR ADDRESS @V407466 00670000
- BR R6 RETURN TO ISSUE ERROR MESSAGE @V407466 00671000
- EJECT 00672000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00673000
- * WHEN MULTIPLE ADDRESSES ARE BEING PROCESSED, THE MESSAGE * 00674000
- * IDENTIFYING THOSE DEVICES SUCCESSFULLY ATTACHED WILL ASSUME TWO * 00675000
- * FORMATS. * 00676000
- * THE USER WILL RECEIVE THE MESSAGE - R1 R2 ... ATTACHED * 00677000
- * THE OPERATOR WILL RECEIVE THE MESSAGE - * 00678000
- * R1 R2 ... ATTACHED TO USERID * 00679000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00680000
- SPACE 2 00681000
- MULTMSG EQU * @V407490 00682000
- USING MDSECT,R6 CHANGE ADDRESSABILITY @V407466 00683000
- SLR R7,R7 ZERO R7 @V407466 00684000
- IC R7,MULTCUU NUMBER OF MULTIPLES IN MSG @V407466 00685000
- LA R1,1(,R7) INCREMENT BY 1 @V407466 00686000
- STCM R1,B'0001',MULTCUU COUNT OF MULTIPLES IN MSG @V407466 00687000
- LA R8,L'MULTADD L'CUU + L'DELIMITER @V407490 00688000
- MR R6,R8 R7*R8 INTO R6-R7 @V407466 00689000
- AR R7,R3 PLUS ADDR OF WORK AREA @V407466 00690000
- LR R6,R7 NEXT SLOT FOR ADDR @V407466 00691000
- LH R1,UDEVADD MULT. ADDR FOR MESSAGE @V407466 00692000
- CALL DMKCVTBH CONVERT TO HEX FOR MSG @V407466 00693000
- STCM R1,B'0111',MULTADD STORE IN MESSAGE @V407466 00694000
- MVI DELIM1,BLANK SEPARATE HDR FROM CCU @V407466 00695000
- DROP R6 @V407466 00696000
- USING MDSECT,R4 WORK AREA ADDRESSABILITY @V407466 00697000
- MULTCONT LA R4,4(,R4) TO SEE IF MORE MULT. ADDRS @V407466 00698000
- L R2,MULTADD TO BE PROCESSED @V407466 00699000
- C R2,FFS END OF MULTIPLES? @V407466 00700000
- BNE GOODCMD3 THERE ARE MORE, KEEP GOING @V407466 00701000
- DROP R4 @V407466 00702000
- USING MDSECT,R6 @V407466 00703000
- SLR R7,R7 CLEAR R7 @V407466 00704000
- IC R7,MULTCUU NO. MULTIPLES @V407466 00705000
- LTR R7,R7 ANY MULTIPLES? @V407466 00706000
- BZ CLEANXT NO MULTS, RELEASE STG AND EXIT @V407466 00707000
- LA R8,L'MULTADD LENGTH OF MULTIPLE @V407490 00708000
- MR R6,R8 R7*R8 INTO R6-R7 @V407466 00709000
- AR R7,R3 ADD BEG. MSG BUFFER ADDR @V407466 00710000
- LR R6,R7 AND PUT INTO R6 @V407466 00711000
- MVC MULTADD(L'MULTADD*2),=C'ATTACHED' SUBST. CONST @V407466 00712000
- MVI DELIM2,BLANK SEPARATE CCU FROM 'ATTACHED' @V407466 00713000
- MVC CONTO,=C'TO ' CONSTANT 'TO' @V407466 00714000
- MVC USERID,CMDUSER USERID @V407466 00715000
- TM VDABITS,ATTSYST ATTACH TO 'SYSTEM' @V407466 00716000
- BZ NOTSYS NO, USERID OK @V407466 00717000
- MVC USERID,=CL8'SYSTEM' SUBSTITUTE 'SYSTEM' @V407466 00718000
- NOTSYS MVI DELIM3,BLANK DELIMITER @V407466 00719000
- MVC CONBY,=CL3'BY ' CONSTANT 'BY' @V407466 00720000
- MVC ATTACHER,VMUSER ATTACHER USERID @V407466 00721000
- SLR R7,R7 CLEAR R7 AGAIN @V407466 00722000
- IC R7,MULTCUU NO. OF MULTIPLES @V407466 00723000
- CLR R10,R11 ATTACH TO HIMSELF? @V407466 00724000
- BE SKIPMSG YES @V407466 00725000
- BAL R5,SWPUSER SEND INFORMATION MSG TO USER @V407466 00726000
- CH R7,=H'10' IF EXCEEDS 10 - MULTIPLE LINES @V407466 00727000
- BH MANY1 YES, ISSUE MULTIPLE LINES @V407466 00728000
- MR R6,R8 R7 * R8 INTO R6-R7 @V407466 00729000
- LA R0,USERSIZE(,R7) + L'ATTACHED @V407466 00730000
- L R1,SAVEWRK5 ADDR OF MSG BUFFER @V407466 00731000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00731500
- CALL DMKQCNWT,PARM=NORET @V407466 00732000
- BAL R5,SWPCALL BACK TO CALLER'S VMBLOK @V407466 00733000
- L R1,SAVEWRK5 POINT TO BEGINNING OF MSG AREA @V4M0193 00734000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00734500
- LA R0,OPERSIZE(,R7) + L'TO + L'USERID @V407466 00735000
- MULTMSG5 CALL DMKQCNWT,PARM=NORET @V407466 00736000
- TM VDABITS,NSYSOP ATTACH BY SYSTEM OPERATOR @V407466 00737000
- BZ CLEANXT YES, RELEASE MULTIPLE WORK AREA @V407466 00738000
- LA R2,OPERATOR NO, SEND MSG TO SYSTEM OPERATOR @V407466 00739000
- LA R0,ASIZE(,R7) + L'BY + L'USERID @V407466 00740000
- LASTLINE CALL DMKQCNWT,PARM=NORET+0(,R2) @V407466 00741000
- B CLEANXT FREE USER'S BLOCKS AND SWITCH R11@V407466 00742000
- SPACE 2 00743000
- MANY1 BAL R5,MULTLINE ISSUE REPEATED LINES OF 10 CUU @V407466 00744000
- LA R0,USERSIZE(,R7) ... @V407466 00745000
- CALL DMKQCNWT,PARM=NORET LAST LINE @V407466 00746000
- BAL R5,SWPCALL BACK TO CALLER'S VMBLOK @V407466 00747000
- L R1,SAVEWRK5 POINT TO BEGIN OF MSG AREA @V407466 00748000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00748500
- IC R7,MULTCUU NUMBER OF CUU IN MSG @V407466 00749000
- MANY2 BAL R5,MULTLINE REPEATED LINES FOR NEXT MSG @V407466 00750000
- LA R0,OPERSIZE(,R7) +L'TO + L'USERID @V407466 00751000
- CALL DMKQCNWT,PARM=NORET LAST LINE @V407466 00752000
- TM VDABITS,NSYSOP ATTACH BY SYSTEM OPERATOR? @V407466 00753000
- BZ CLEANXT YES, RELEASE STORAGE @V407466 00754000
- LA R2,OPERATOR SEND MSG TO SYSTEM OPERATOR @V407466 00755000
- L R1,SAVEWRK5 POINT TO BEG OF MSG AREA @V407466 00756000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00756500
- IC R7,MULTCUU NUMBER OF CUU'S IN MSG @V407466 00757000
- BAL R5,MULTLINE ISSUE REPEATED LINES @V407466 00758000
- LA R0,ASIZE(,R7) + L'TO + L'USERID @V407466 00759000
- B LASTLINE VERY, VERY LAST LINE @V407466 00760000
- SPACE 2 00761000
- SKIPMSG CH R7,=H'10' EXCEEDS 10 - MULTIPLE LINES @V407466 00762000
- BH MANY2 YES @V407466 00763000
- MR R6,R8 R7*R8 INTO R6-R7 @V407466 00764000
- LA R0,OPERSIZE(,R7) PLUS FIXED LENGTH @V407466 00765000
- L R1,SAVEWRK5 BEGINNING OF MSG AREA @V407466 00766000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00766500
- B MULTMSG5 ISSUE SINGLE LINE MSG @V407466 00767000
- SPACE 2 00768000
- MULTLINE LA R0,MAXCUU MAX 10 CUU PER LINE @V407490 00769000
- L R1,SAVEWRK5 BEGINNING OF MSG AREA @V407466 00770000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00770500
- NEXTLINE CALL DMKQCNWT,PARM=NORET @V407466 00771000
- LA R1,MAXCUU(,R1) NEXT LINE POINTER @V407490 00772000
- SH R7,=H'10' SUBTRACT 10 @V407466 00773000
- CH R7,=H'10' STILL MORE THAN 10 LEFT @V407466 00774000
- BH NEXTLINE YES, ISSUE ANOTHER LINE @V407466 00775000
- MR R6,R8 R7*R8 INTO R6-R7 @V407466 00776000
- BR R5 PUT OUT LAST LINE @V407466 00777000
- SPACE 2 00778000
- VERERR TM VDABITS+1,ATTERR WAS ERROR MESSAGE ISSUED? @V407466 00779000
- BO BLDBUFF YES, CLEAR MSG BUFFER @V407466 00780000
- SPACE 2 00781000
- CLEANXT EQU * @V407466 00782000
- L R1,SAVEWRK5 MESSAGE BUFFER TO FRET @V407466 00783000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00783500
- LA R0,MULTSIZE+MSGSIZE+VOLSIZE WORKAREA SIZE @V60B6B8 00784000
- CALL DMKFRET @V407466 00785000
- DROP R6 @V407466 00786000
- BAL R5,SWPUSER SWITCH TO ATTACHEE'S VMBLOK @V407466 00787000
- UNLOCK BAL R5,FREUSER UNLOCK USER'S BLOCKS @V407466 00788000
- SPACE 3 00789000
- VDAATEXT EQU * @V407466 00790000
- EXIT RETURN TO CALLER @V407466 00791000
- EJECT 00792000
- ATTMSG DSECT NORMAL RESPONSES FOR 'ATTACH/DETACH' @V407466 00793000
- ATTDTYP DC C'DEVX ' EBCDIC DEVICE TYPE-NAME @V407466 00794000
- ATTADD1 DC C'CCU ' ADDRESS 1 @V407466 00795000
- ATTFLD1 DC C'ATTACH ' FIRST VARIABLE FIELD @V407466 00796000
- ATTFLD2 DC C'TO ' ... @V407466 00797000
- ATTUSER DC C'$USERID$ ' ATTACHEE USERID @V407466 00798000
- ATTADD2 DC C'CCU ' ADDRESS 2 @V407466 00799000
- ATTFLD3 DC C'BY ' @V407466 00800000
- ATTOPER DC C'$USERID$' USERID OF ATTACHER (NOT SYSOP) @V407466 00801000
- SPACE 00802000
- ATTSIZE EQU (*-ATTMSG+7)/8 BUFFER SIZE IN DBL-WDS @V407466 00803000
- SPACE 00804000
- * RANGE MESSAGE FORMAT FOLLOWS 00805000
- ORG ATTDTYP @V407466 00806000
- ATTRADD1 DC C'CUU' RADDR1 @V407466 00807000
- ATTDASH DC C'-' - @V407466 00808000
- ATTRADD2 DC C'CUU' RADDR2 @V407466 00809000
- SPACE 2 00810000
- SPACE 00811000
- DMKVDA CSECT , RE-ENTER PREVIOUS CSECT @V407466 00812000
- ATTACHED DC CL8'ATTACHED' CONSTANT FOR MESSAGE @V407466 00813000
- SPACE 2 00814000
- *---------------------------------------------------------------------* 00815000
- * CVTRADD - CONVERT DEVICE ADDRESS TO HEXADECIMAL * 00816000
- * ZAPVOLD - REMOVE VOLUME SERIAL FROM REAL DEVICE BLOCK * 00817000
- *---------------------------------------------------------------------* 00818000
- SPACE 2 00819000
- CVTRADD EQU * CONVERT REAL DEVICE ADDRESS @V407466 00820000
- L R1,DEVADDR @V407466 00821000
- TM VDABITS,RANGE+MULTR RANGE/MULTIPLES BEING PROC @V407466 00822000
- BZ CONVERT NO, USE ADDR IN DEVADDR FIELD @V407466 00823000
- LH R1,UDEVADD DEVICE ADDRESS @V407466 00824000
- CONVERT CALL DMKCVTBH @V407466 00825000
- BR R5 @V407466 00826000
- EJECT 00835000
- ATTVOLD EQU * ATTACH TO SYSTEM AS VOLID @V407466 00836000
- USING RDEVBLOK,R8 @V407466 00837000
- LA R7,MSGAREA(R4) USED IN CASE ERROR MSG @V407466 00838000
- CLI RDEVTYPC,CLASDASD IS IT A DASD DEVICE ? @V407466 00839000
- BNE INVTYPE NO - CANNOT ATTACH TO SYSTEM @V407466 00840000
- TM PSAMSS,MSSPRES MSS PRESENT IN THIS SYSTEM? @VA09319 00840010
- * VMI2040 00840020
- BZ ATTVOLD2 NO,DON'T TRY TO CAL DMKSSS @VA09319 00840030
- * VMI2040 00840040
- TM RDEVFTR,VIRTUAL+SYSVIRT IS THIS A 3330V @V60B6B8 00841000
- BNZ SYS3330V YES, CALL DMKSSS @V60B6B8 00842000
- SPACE 2 00843000
- * CANNOT ATTACH 3330V DEVICE ADDRESSES TO 'SYSTEM' 00844000
- SPACE 00845000
- * RDEVSYS RDEVOWN RDEVMOUT MEANING 00846000
- * FLAG 0 0 1 DEV FREE; VOLUME MOUNTED, 00847000
- * NOT ATTACHED 00848000
- * 0 0 0 DEVICE ATTACHED TO SYSTEM 00849000
- * EXCEPT IF THE VOLID IS 00850000
- * BLANK 00851000
- * 1 0 0 DEVICE ATTACHED TO SYSTEM 00852000
- * WITH OR WITHOUT LINKS HRC039DK 00853100
- * 1 1 0 DEV ATTACHED TO SYSTEM & 00854000
- * IS A SYSTEM OWNED VOLUME 00855000
- SPACE 00856000
- .SYSTEM ANOP 00857000
- ATTVOLD2 TM RDEVSTAT,RDEVDISA IS THE DEVICE OFFLINE ? @V407466 00858000
- BO ERR12 YES -- SEND OFFLINE MESSAGE @VA13651 00859000
- TM RDEVSTAT,RDEVDED DEDICATED TO A USER ? @V407466 00860000
- BO ERR24 YES -- SEND DEDICATED MESSAGE @VA13651 00861000
- TM RDEVFLAG,RDEVOWN CP-OWNED VOLUME ? @V407466 00862000
- BO DEVOWND YES -- @V407466 00863000
- CLC RDEVLNKS,=H'0' Does dasd have existing links? HRC039DK 00864100
- BNE DEVSHRD Minidisks in use on dasd HRC039DK 00864200
- TM RDEVFLAG,RDEVSYS Dasd already attached to sys.? HRC039DK 00864300
- BZ ALLOK No. Can be attached now. HRC039DK 00864400
- TM RDEVFLAG,RDEVMOUT VOL ALREADY ATTACHED TO SYS? @V407466 00866000
- BO ALLOK NO- DEV NOT MOUNTED AFTER IPL @V407466 00867000
- CLC RDEVSER(6),BLANKS VOLID BLANK (NOT RDY AT IPL) @V407466 00868000
- BE ALLOK @V407466 00869000
- MVC CMDUSER(6),RDEVSER SEND MSG WITH RDEVSER @V407466 00870000
- B MSG125E SEND THE MESSAGE @V407466 00871000
- SPACE 2 00872000
- SYS3330V EQU * ATTACH A VUA TO THE SYSTEM @V60B6B8 00873000
- LA R0,CMDUSER ADDR OF VOLID @V60B6B8 00874000
- CALL DMKSSSAS VERIFY PARMS, MOUNT VOID IF @V60B6B8 00875000
- * NECESSARY 00876000
- LTR R0,R0 WAS THERE AN ERROR @V60B6B8 00877000
- BZ ALLOK NO, VOLUME NOW AVAILABLE @V60B6B8 00878000
- LA R15,RC4 EXPECTED RETURN CODE @V60B6B8 00879000
- CR R0,R15 AGAINST ACTUAL @V60B6B8 00880000
- BE SAVEINFO OK, WAIT FOR MSS MOUNT @V60B6B8 00881000
- B WRNGVOL @V60B6B8 00882000
- * 00883000
- * THE FOLLOWING ENTRY POINT IS REACHED AFTER AN 00884000
- * MSS VOLUME MOUNT TO SATISFY AN ATTACH 00885000
- * REQUEST. SCHEDULE A PENDING I/O REQUEST 00886000
- * IF THERE IS ONE, THEN FREE UP THE MSSCOM 00887000
- * BLOCK WHICH REPRESENTED THE MOUNT. 00888000
- * 00889000
- DMKVDAS2 RELOC @V60B6B8 00890000
- USING OSVSCOM,R3 R3 SET BY DMKSSS @V60B6B8 00891000
- MVC SAVEWRK1,SAVEWRK1-SAVEAREA(R1) RESTORE FLAGS @V60B6B8 00892000
- * TO CURRENT SAVEAREA 00893000
- MVC SAVEWRK2(WORKAREA),SAVEWRK2-SAVEAREA(R1) @V60B6B8 00894000
- * RESTORE OTHER WORKING INFO 00895000
- LA R0,SAVESIZE SIZE OF SAVE AREA @V60B6B8 00896000
- CALL DMKFRET GIVE IT BACK @V60B6B8 00897000
- L R1,MSSTASK3 ADDR OF CPEXBLOK, IF IT EXISTS @V60B6B8 00898000
- LTR R1,R1 IS THERE PENDING I/O @V60B6B8 00899000
- BZ FRECOM1 NO @V60B6B8 00900000
- CALL DMKSTKCP STACK THE CPEXBLOK FOR I/O @V60B6B8 00901000
- FRECOM1 EQU * @V60B6B8 00902000
- LA R0,MSSSIZE NO OF D-WORDS IN MSSCOM @V60B6B8 00903000
- LR R1,R3 ADDR OF MSSCOM @V60B6B8 00904000
- CALL DMKFRET RETURN STORAGE TO SYSTEM @V60B6B8 00905000
- ALLOK EQU * @V407466 00906000
- LA R1,CMDUSER THIS IS THE VOLID @V407466 00907000
- LA R0,VOLIDSIZ ... LENGTH @V407490 00908000
- TM RDEVFTR,VIRTUAL+SYSVIRT IS IT A 3330V ? @VA09301 00908100
- BZ SKPON NO, DON'T TURN THE FLAG ON @VA09301 00908200
- OI RDEVFLAG,RDEVMOUT TELL SCNVS THIS VOL OK @V60B6B8 00909000
- SKPON CALL DMKSCNVS SEARCH FOR DUPLICATE VOLID @VA09301 00910000
- BZ DUPVOL DUPLICATE VOLID - MSG DMKVDA125E @V407466 00911000
- TM RDEVFTR,VIRTUAL+SYSVIRT IS IT A 3330V ? @VA09301 00911100
- BZ SKPOFF NO,DON'T TURN THE FLAG OFF @VA09301 00911200
- NI RDEVFLAG,X'FF'-RDEVMOUT @V60B6B8 00912000
- SKPOFF BAL R7,DEVCHECK VERIFY DEVICE EXISTENCE @VA09301 00913100
- LTR R2,R2 ERROR ENCOUNTERED ON LABEL READ? @V407466 00914000
- BNZ ERROR YES, ISSUE MESSAGE @V407466 00915000
- LA R7,MSGAREA(R4) RESTORE R7 FOR MSG BUFFER @V407466 00916000
- CLC CMDUSER(6),RDEVSER DO THE LABELS MATCH ? @V407466 00917000
- BNE WRNGVOL NO @V407466 00918000
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00919000
- TM VDABITS+1,CPOWND ALLOCATION DATA PRESENT ? @V407466 00920000
- BZ RESMOUT NO - ALL FINISHED EXCEPT MSGS @V407466 00921000
- SPACE 1 00922000
- * SEARCH OWNED-VOLUME LIST TO SEE IF THE ALLOCATION DATA 00923000
- * IS PERTINENT TO THE RUNNING SYSTEM 00924000
- SPACE 00925000
- L R4,=A(DMKSYSOW) OWNED LIST START @V407466 00926000
- USING OWNDLIST,R4 @V407466 00927000
- L R3,=A(DMKSYSOC) COUNT OF VOLUMES @V407466 00928000
- L R3,0(,R3) ... @V407466 00929000
- VOLSRCH EQU * SEE IF ACTUALLY OWNED @V407466 00930000
- CLC OWNDVSER(6),RDEVSER @V407466 00931000
- BE VOLCHAN FOUND IT @V407466 00932000
- LA R4,8(,R4) NEXT ENTRY IN LIST @V407466 00933000
- BCT R3,VOLSRCH LOOP THRU OWNED LIST @V407466 00934000
- RESMOUT NI RDEVFLAG,X'FF'-RDEVMOUT INDICATE ATTACHED TO SYS@V407466 00935000
- OI RDEVFLAG,RDEVSYS Device now attached to system HRC039DK 00935100
- L R4,SAVEWRK5 MSGAREA ADDRESS @V407466 00936000
- LA R4,0(,R4) CLEAR HIGH ORDER BYTE @VA13651 00936500
- B RESPATT NOT PERTINENT - GIVE RESPONSES @V407466 00937000
- SPACE 00938000
- VOLCHAN EQU * VOLUME IS CP-OWNED @V407466 00939000
- OI VDABITS+1,ALLOCN READ ALLOCATION RECORD @V407466 00940000
- BAL R7,DEVCHECK VERIFY DEVICE EXISTENCE @V407466 00941000
- LTR R2,R2 ERROR READING ALLOC. DATA @V407466 00942000
- BNZ ERROR YES, ISSUE ERROR MESSAGE @V407466 00943000
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00944000
- OI RDEVFLAG,RDEVOWN+RDEVSYS @V407466 00945000
- NI RDEVFLAG,X'FF'-RDEVMOUT INDICATE VOLUME ATTACHED@V407466 00946000
- LH R15,OWNDPREF SEE IF PAGING VOLUME @V407466 00947000
- LTR R15,R15 THIS BETTER BE MINUS... @V407466 00948000
- BM VDA2A OR ELSE SOMETHING IS REALLY WRONG@V407466 00949000
- SPACE 00950000
- ABEND 2 ...LIKE I SAID.. @V407466 00951000
- SPACE 00952000
- VDA2A EQU * @V407466 00953000
- LPR R15,R15 MAKE -1, -2 INTO +1, +2 @V407466 00954000
- SLL R15,2 ...INTO +4, +8 @V407466 00955000
- B *(R15) SKIP FLAG SET IF NOT PREFERRED @V407466 00956000
- SPACE 2 00957000
- OI RDEVFLAG,RDEVPREF @V407466 00958000
- SPACE 00959000
- * SET UP TO CHAIN IN ALLOCATION TABLES 00960000
- * R10 - ADDRESS OF IOBLOK 00961000
- * R4 OWNDLIST POINTER 00962000
- * R8 - RDEVBLOK POINTER 00963000
- * R3 - INDEX 00964000
- SPACE 00965000
- LR R3,R15 MOVE INDEX TO R3 @V407466 00966000
- CALL DMKVDCAL @V407466 00967000
- L R4,SAVEWRK5 RESTORE MSGAREA ADDRESS @V407466 00968000
- LA R4,0(,R4) CLEAR HIGH ORDER BYTE @VA13651 00968500
- B RESPATT ISSUE RESPONSE MESSAGES @V407466 00969000
- EJECT 00970000
- EJECT 00971000
- *********************************************************************** 00972000
- * CALL TO DMKVDEDC 00973000
- * SUBROUTINE TO VERIFY DEVICE EXISTENCE. 00974000
- * 00975000
- * A CALL IS MADE TO DMKVDEDC TO VERIFY DEVICE 00976000
- * EXISTENCE. SETS UP AN I/O TASK (TIO) TO SEE IF 00977000
- * THE DEVICE EXISTS. IF THE DEVICE DOES NOT EXIST, 00978000
- * IT IS MARKED OFFLINE AND A 'DOES NOT EXIST' MESSAGE 00979000
- SPACE 2 00980000
- * IS ISSUED FROM DMKVDA. 00981000
- * 00982000
- * FOR DASD, DMKVDEDC WILL SET UP AND EXECUTE AN 00983000
- * I/O TASK TO READ THE DASD VOLUME LABEL OF THE DEVICE 00984000
- * BEING ATTACHED. IF SUCCESSFUL, THE VOLUME SERIAL 00985000
- * IS INSERTED INTO THE 'RDEVSER' FIELD OF THE REAL 00986000
- * DEVICE BLOCK. AN ERROR RETURN CODE IS PASSED BACK TO 00987000
- * DMKVDA IF FAILURE ENCOUNTERED ON THE READ. A FLAG 00988000
- * IS SET IF IT IS A CP/370 OWNED VOLUME. 00989000
- * IF DMKVDEDC WAS CALLED WITH PARM = 1, INDICATING 00990000
- * ALLOCATION DATA IS PRESENT, THE ALLOCATION 00991000
- * RECORD IS READ INTO FREE STORAGE. 00992000
- *********************************************************************** 00993000
- SPACE 00994000
- DEVCHECK EQU * CHECK DEVICE EXISTENCE ROUT. @V407466 00995000
- L R6,DEVADDR GET VADDR IN CUU FORM @V407466 00997000
- TM VDABITS,RANGE+MULTR RANGE OR MULTIPLES? @V407466 00998000
- BZ TSTALLOC SEE IF READING ALLOC. DATA @V407466 00999000
- LH R6,UDEVADD MUST GET VADDR FROM UDEVBLOK @V407466 01000000
- TSTALLOC TM VDABITS+1,ALLOCN READING ALLOC. REC. THIS TIME? 01001000
- BZ VDE NO, REGL LABEL READ @V407466 01002000
- SPACE 01003000
- * R8 POINTS TO RDEVBLOK @V407466 01004000
- * R6 CONTAINS RADDR OF DEVICE BEING ATTACHED @V407466 01005000
- * R10 AND R11 CONTAIN VMBLOK ADDRESSES @V407466 01006000
- SPACE 01007000
- CALL DMKVDEDC,PARM=1 IND. ALLOC READ @V407466 01008000
- B CHKRC NOW CHECK FOR ERRORS @V407466 01009000
- SPACE 01010000
- VDE CALL DMKVDEDC GO VERIFY DEVICE EXISTENCE @V407466 01011000
- SPACE 01012000
- * UPON RETURN FROM DMKVDEDC, R2 CONTAINS ERROR CODE OR @V407466 01013000
- * ZERO INDICATING SUCCESSFUL COMPLETION. @V407466 01014000
- SPACE 01015000
- CHKRC CH R2,=H'68' DEVICE NOT READY? @V407466 01016000
- BE ERROR ... @VA07393 01017000
- CH R2,=H'80' DEVICE UNKNOWN @V407466 01018000
- BE ERROR YES, ISSUE ERROR MSG @V407466 01019000
- CH R2,=H'120' BUSY CONDITION @VA11952 01019100
- BE ERROR @VA11952 01019150
- * THERE MAY HAVE BEEN A BAD LABEL READ BUT THIS @V407466 01020000
- * ERROR MESSAGE IS ISSUED ONLY WHEN ATTACHING TO THE SYSTEM @V407466 01021000
- BR R7 CONTINUE TO PROCESS @V407466 01022000
- SPACE 2 01023000
- * BITS DEFINED IN VDABITS+1 : 01024000
- * 01025000
- CPOWND EQU X'20' ALLOCATION DATA PRESENT ON VOLUME@V407466 01026000
- ALLOCN EQU X'10' READING ALLOCATION DATA @V407466 01027000
- NOTREDY EQU X'08' 'NOTREADY' @V407466 01028000
- ATTERR EQU X'02' ERROR MSG TO FOLLOW RESPONSE @V407466 01029000
- SPACE 01030000
- BLANK EQU X'40' BLANK @V407466 01031000
- SPACE 01032000
- DASH DC C'-' RANGE DELIMITER @V407466 01033000
- SPACE 01034000
- SPACE 01035000
- EJECT 01036000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01037000
- * DEDCHAN - ATTACH DEDICATED CHANNEL(S); CONTROL TRANSFERS * 01038000
- * TO THE MODULE DMKVCHDC FOR TESTING THE AVAILABILITY * 01039000
- * OF THE CHANNEL AND DEVICES, AND FOR THE ACTUAL ATTACH * 01040000
- * FUNCTION. FLAGS AND COMMAND INE DATA ARE PASSED TO * 01041000
- * DMKVCHDC IN REGISTERS 1-4. * 01042000
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01043000
- DS 0F 01044000
- SPACE 2 01045000
- DEDCHAN EQU * PROCESSING FOR DEDICATED CHANNELS@V407466 01046000
- L R1,VDABITS FLAGS USED WITHIN DMKVDA @V407466 01047000
- L R2,DEVADDR BYTE 3 HAS CHANNEL NUMBER @V407466 01048000
- LM R3,R4,CMDUSER USERID WANTING THE CHANNEL @V407466 01049000
- SPACE 01050000
- CALL DMKVCHDC @V407466 01051000
- BAL R5,SWPCALL SWITCH TO CALLER'S VMBLOK @V407466 01052000
- ST R2,SAVER2 SAVE RETURN CODE @V407490 01053000
- LA R0,MULTSIZE+MSGSIZE+VOLSIZE WORKAREA SIZE @V60B6B8 01054000
- L R1,SAVEWRK5 ADDR OF WORK AREA @V407466 01055000
- CALL DMKFRET RELEASE STORAGE @V407466 01056000
- B VDAATEXT EXIT @V407466 01057000
- EJECT 01058000
- *---------------------------------------------------------------------* 01059000
- * FREUSER AND SWPUSER - UNLOCK USERID AND SWAP VMBLOKS * 01060000
- * LOKUSER AND SWPCALL - LOCK A USERID AND SWAP VMBLOKS * 01061000
- *---------------------------------------------------------------------* 01062000
- SPACE 2 01063000
- FREUSER EQU * UNLOCK ATTACHEE'S USERID @V407466 01064000
- LA R1,VMUSER @V407466 01065000
- CALL DMKLOCKD DIRECTORY UNLOCK SUBROUTINE @V407466 01066000
- SWPCALL EQU * GO BACK TO CALLER'S VMBLOK @V407466 01067000
- L R1,SAVER11 GET CALLER'S VMBLOK ADDRESS @V407508 01068000
- SWTCHVM SWITCH TO CALLER'S VMBLOK @V4M0193 01069000
- BR R5 ...RETURN TO CALLER @V407466 01070000
- SPACE 2 01071000
- LOKUSER EQU * THROW A LOCK ON DEVICE BLOCKS @V407466 01072000
- LA R1,VMUSER POINT TO THE USERID @V407466 01073000
- CALL DMKLOCKQ ...AND LOCK IT @V407466 01074000
- LA R0,L'VMUSER LENGTH OF USERID @VA08223 01075000
- CALL DMKSCNAU USER STILL LOGGED ON? @V407466 01076000
- BNZ NOTLOGD NO - ERROR @V407466 01077000
- BR R5 @V407466 01078000
- SPACE 2 01079000
- SWPUSER EQU * SWAP TO TARGET USER'S VMBLOK @V407466 01080000
- LR R1,R10 GET USER'S VMBLOK ADDRESS @V407508 01081000
- SWTCHVM SWITCH TO SPECIFIED USER @V4M0193 01082000
- BR R5 @V407466 01083000
- EJECT 01084000
- CHKUSER EQU * ... @V407466 01085000
- LA R0,8 LENGTH OF USERID @V407466 01086000
- CALL DMKSCNAU USER STILL LOGGED ON @V407466 01087000
- BNZ NOTLOGD NOT LOGGED ON - ERROR @V407466 01088000
- BR R5 RETURN TO MAINLINE CODE @V407466 01089000
- SPACE 3 01090000
- *---------------------------------------------------------------------* 01091000
- * GETRDEV, GETRTYP - GET REAL DEVICE BLOCK + TYPE NAME * 01092000
- *---------------------------------------------------------------------* 01093000
- SPACE 2 01094000
- GETRDEV EQU * LOCATE REAL DEVICE BLOCK @V407466 01095000
- TM VDABITS,RANGE+MULTR RANGE OR MULTIPLES @V407466 01096000
- BM GETRDEV2 YES, R1 ALREADY SET UP @V407466 01097000
- L R1,DEVADDR REAL DEVICE ADDRESS @V407466 01098000
- GETRDEV2 CALL DMKSCNRU ...FIND THE RDEVBLOK @V407466 01099000
- BNZ UNKNOWN REAL DEVICE DOES NOT EXIST @V407466 01100000
- ST R8,SAVEWRK9 SAVE THE RDEVBLOK POINTER @V407466 01101000
- BR R5 @V407466 01102000
- SPACE 01103000
- GETRTYP EQU * GET EBCDIC TYPE-NAME OF REAL DEV @V407466 01104000
- L R8,SAVEWRK9 RDEVBLOK ADDRESS @V407466 01105000
- CALL DMKSCNRN ...GET IT'S TYPE-NAME @V407466 01106000
- LR R3,R1 ...INTO R4 @V407466 01107000
- BR R5 @V407466 01108000
- EJECT 01109000
- ERR08 LA R2,RC8 DEVICE NOT DRAINED @V407466 01110000
- B ERROR ISSUE ERROR MSG @V407466 01111000
- SPACE 01112000
- ERR12 LA R2,RC12 DEVICE OFFLINE @V407466 01113000
- CLI RDEVTYPC,CLASDASD DASD DEVICE ?? @V407490 01114000
- BNE ERROR NO @V407490 01115000
- CLI RDEVTYPE,TYP2305 HOW ABOUT A DRUM ?? @V407490 01116000
- BNE ERROR NOPE @V407490 01117000
- TM RDEVADD+1,X'07' IS THIS A BASE ADDRESS ?? @V407490 01118000
- BNZ VDA021A INVALID BASE ADDRESS,GIVE VDA021 @V407490 01119000
- B ERROR COMMON ERROR PROCESSING @V407490 01120000
- SPACE 01121000
- ERR16 LA R2,RC16 DEVICE SHARED @V407466 01122000
- B ERROR ISSUE ERROR MSG @V407466 01123000
- SPACE 01123200
- DEVOWND EQU * DEVICE ALREADY CP OWNED @VA13651 01123400
- LA R2,RC20 SET UP ERROR INDEX @VA13651 01123600
- B ERROR ISSUE ERROR MESSAGE @VA13651 01123800
- SPACE 2 01124000
- ERR24 LA R2,RC24 DEVICE ALREADY DEDICATED @V407466 01125000
- B ERROR COMMON ERROR PROCESSING @V407466 01126000
- SPACE 01126200
- NOTLOGD EQU * USERID NOT LOGGED ON @VA13651 01126400
- LA R2,RC44 SET UP ERROR INDEX @VA13651 01126600
- B ERROR ISSUE ERROR MESSAGE @VA13651 01126800
- SPACE 2 01127000
- ERR56 LA R2,RC56 DEVICE ALREADY DEFINED @V407466 01128000
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128020
- SPACE 1 01128040
- UNKNOWN EQU * DEV ADDR DOES NOT EXIST @VA13651 01128060
- LA R2,RC80 SET UP ERROR INDEX @VA13651 01128080
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128100
- SPACE 1 01128120
- DEVSHRD EQU * DASD RADDR IN USE BY NNN USERS @VA13651 01128140
- LA R2,RC84 SET UP ERROR INDEX @VA13651 01128160
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128180
- SPACE 1 01128200
- INVOPTS2 EQU * INVALID OPTION @VA13651 01128220
- LA R2,RC88 SET UP ERROR INDEX @VA13651 01128240
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128260
- SPACE 1 01128280
- INVTYPE EQU * INVALID DEVICE TYPE @VA13651 01128300
- LA R2,RC92 SET UP ERROR INDEX @VA13651 01128320
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128340
- SPACE 1 01128360
- VDA021A EQU * RADDR MISSING OR INVALID @VA13651 01128380
- LA R2,RC96 SET UP ERROR INDEX @VA13651 01128400
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128420
- SPACE 1 01128440
- VDA022B EQU * VADDR MISSING OR INVALID @VA13651 01128460
- LA R2,RC100 SET UP ERROR INDEX @VA13651 01128480
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128500
- SPACE 1 01128520
- DUPVOL EQU * VOLID ALREADY ATTACHED @VA13651 01128540
- LR R8,R1 PICK UP ADDR OF DEV CONT VOLID @VA13651 01128560
- MSG125E EQU * @VA13651 01128580
- LA R2,RC104 SET UP ERROR INDEX @VA13651 01128600
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128620
- SPACE 1 01128640
- WRNGVOL EQU * @VA13651 01128660
- LA R2,RC108 SET UP ERROR INDEX @VA13651 01128680
- B ERROR ISSUE ERROR MESSAGE @VA13651 01128700
- SPACE 1 01128720
- MSG076 EQU * INVALID PARAMETERS @VA13651 01128740
- LA R2,RC112 SET UP ERROR INDEX @VA13651 01128760
- B ERROR ISSUE ERROR MESSAGE @VA13217 01128790
- SPACE 1 01128820
- ERR153 EQU * MAXIMUM DEVICES EXCEEDED @VA13217 01128850
- LA R2,RC124 SET UP ERROR INDEX @VA13217 01128880
- B ERROR ISSUE ERROR MESSAGE @VA13217 01128910
- SPACE 1 01128940
- ERROR EQU * COMMON ERROR MESSAGE ROUTINE @V407466 01129000
- ST R2,SAVEWRK7 SAVE ERROR INDEX @VA13651 01130000
- B ERRTABL-8(R2) BRANCH TO ERROR ROUTINE @V407466 01133000
- SPACE 2 01134000
- ERRTABL EQU * JUMP TABLE FOR R2 ERROR INDEX @VA13651 01135000
- B CHKRANGE INDEX = 8 @VA13651 01138000
- B CHKRANGE INDEX = 12 @VA13651 01141000
- B CHKRANGE INDEX = 16 @VA13651 01144000
- B CHKRANGE INDEX = 20 @VA13651 01147000
- B CHKRANGE INDEX = 24 @VA13651 01150000
- B SENDEMSG INDEX = 28 @VA13651 01153000
- B SENDEMSG INDEX = 32 @VA13651 01156000
- B SENDEMSG INDEX = 36 @VA13651 01159000
- B SENDEMSG INDEX = 40 @VA13651 01162000
- B SENDEMSG INDEX = 44 @VA13651 01165000
- B SENDEMSG INDEX = 48 @VA13651 01168000
- B SENDEMSG INDEX = 52 @VA13651 01171000
- B CHKRANGE INDEX = 56 @VA13651 01174000
- B BAD05 INDEX = 60 @VA13651 01177000
- B CHANDED INDEX = 64 @VA13651 01180000
- B CHKRANGE INDEX = 68 @VA13651 01183000
- B SENDEMSG INDEX = 72 @VA13651 01186000
- B SENDEMSG INDEX = 76 @VA13651 01189000
- B CHKRANGE INDEX = 80 @VA13651 01192000
- B CHKRANGE INDEX = 84 @VA13651 01195000
- B CHKRANGE INDEX = 88 @VA13651 01198000
- B SENDEMSG INDEX = 92 @VA13651 01201000
- B CHKRANGE INDEX = 96 @VA13651 01204000
- B CHKRANGE INDEX = 100 @VA13651 01207000
- B SENDEMSG INDEX = 104 @VA13651 01210000
- B SENDEMSG INDEX = 108 @VA13651 01213000
- B SENDEMSG INDEX = 112 @VA13651 01216000
- B SENDEMSG INDEX = 120 @VA11952 01217000
- B CHKRANGE INDEX = 124 @VA13217 01218000
- EJECT 01239000
- BAD05 LA R6,VCUDVTBL-VCUBLOK(R7) POINT TO DEVICE TABLE @V407466 01240000
- SLR R1,R6 CALC BAD DEVICE TABLE INDEX @V407466 01241000
- SRL R1,1 CONVERT INDEX TO 'DEV' ADDR @V407466 01242000
- LH R2,VIRTADD VIRTUAL ADDRESS TO R2 @V407466 01244000
- OR R1,R2 ADD BAD DEV ADDR TO BASE FOR MSG @V407466 01245000
- STH R1,VIRTADD AND RESAVE @V407466 01246000
- B CHKRANGE GO TEST FOR RANGE @VA13651 01247000
- SPACE 01287000
- CHANDED EQU * ERROR FOR DEDICATED CHANNELS @V407490 01288000
- AIF (NOT &DEDCH).NOTDED3 **AIF** @V407466 01289000
- LR R8,R6 SAVE R6 FOR LATER @V407466 01290000
- .NOTDED3 ANOP **ANOP** 01291000
- SPACE 1 01298000
- CHKRANGE EQU * @VA13651 01305000
- BAL R5,TSTRANGE TEST FOR RANGE BEING PROCESSED @VA13651 01312000
- SENDEMSG EQU * CALL VDE ROUTINE TO ISSUE MSG @VA13651 01319000
- LR R2,R0 SAVE PARM COUNT FOR VDERR MSG @VA13651 01326000
- LR R7,R1 SAVE PARM ADDRESS FOR VDERR MSG @VA13651 01333000
- BAL R5,SWPCALL ENSURE VMBLOK SWITCH BEFORE CALL @VA13651 01340000
- LR R0,R2 RESTORE PARM COUNT FOR VDERR MSG @VA13651 01347000
- LR R1,R7 RESTORE PARM ADDR FOR VDERR MSG @VA13651 01354000
- L R2,SAVEWRK7 RELOAD ERROR INDEX FOR VDERR @VA13651 01361000
- L R7,SAVEWRK5 LOAD ADDRESS OF WORKAREA @VA13651 01368000
- LA R7,MSGAREA(,R7) GET ADDRESS OF MESSAGE AREA @VA13651 01375000
- CALL DMKVDERR CALL ERROR MESSAGE ROUTINE @VA13651 01382000
- B BRTABLE(R2) CONTINUE AT APPROPRIATE PLACE @VA13651 01389000
- SPACE 1 01396000
- BRTABLE EQU * @VA13651 01403000
- B CLEANXT EXIT @VA13651 01410000
- B PROCESS CONTINUE PROCESSING RANGE @VA13651 01417000
- B MULTCONT CONTINUE PROCESSING MULTIPLES @VA13651 01424000
- B RESPATT ISSUE RESPONSES @VA13651 01431000
- SPACE 2 01449000
- TSTRANGE TM VDABITS,RANGE RANGE BEING PROCESSED @V407466 01450000
- BCR 14,R5 NO, JUST ISSUE ERROR MESSAGE @V407466 01451000
- OI VDABITS+1,ATTERR ISSUE SUCCESSFUL MSG FIRST @V407466 01452000
- ST R5,SAVEWRK8 STORE R5 TEMPORARILY @V407466 01453000
- BAL R6,RESPOND2 GO ISSUE RESPONSE MESSAGES @V407466 01454000
- NI VDABITS+1,X'FF'-ATTERR TURN OFF SWITCH @V407466 01455000
- L R5,SAVEWRK8 RESTORE R5 @V407466 01456000
- BR R5 RETURN TO MAINLINE @V407466 01457000
- SPACE 2 01458000
- SPACE 01481000
- * THE FOLLOWING ERROR CODE EQUATES ARE USED IN THIS MODULE 01482000
- RC12 EQU 12 DEVICE IS OFFLINE @V407466 01483000
- RC8 EQU 8 DEVICE NOT DRAINED @V407466 01484000
- RC16 EQU 16 DEVICE SHARED @V407466 01485000
- RC20 EQU 20 DEVICE ALREADY CP OWNED @VA13651 01485500
- RC24 EQU 24 DEVICE ALREADY ATTACHED @V407466 01486000
- RC44 EQU 44 USERID NOT LOGGED ON @VA13651 01486500
- RC56 EQU 56 DEVICE ALREADY DEFINED @V407466 01487000
- RC60 EQU 60 BAD LABEL READ @V407466 01488000
- RC64 EQU 64 CHANNEL DEDICATED @V407466 01489000
- RC80 EQU 80 DEVICE DOES NOT EXIST @VA13651 01490000
- RC84 EQU 84 DEVICE ALREADY IN USE @VA13651 01490100
- RC88 EQU 88 INVALID OPTION @VA13651 01490200
- RC92 EQU 92 INVALID DEVICE TYPE @VA13651 01490300
- RC96 EQU 96 RADDR MISSING OR INVALID @VA13651 01490400
- RC100 EQU 100 VADDR MISSING OR INVALID @VA13651 01490500
- RC104 EQU 104 DUPLICATE VOLUME @VA13651 01490600
- RC108 EQU 108 VOLUMES DON'T MATCH @VA13651 01490700
- RC112 EQU 112 INVALID PARAMETERS @VA13651 01490800
- RC124 EQU 124 MAXIMUM DEVICES EXCEEDED @VA13217 01490900
- * FLAGS SET IN SAVEWRK9 BY DMKVDC 01491000
- VIRTPRES EQU X'40' 3330V PARM PRESENT @V60B6B8 01492000
- VOLPRES EQU X'80' VOLID PARM PRESENT @V60B6B8 01493000
- EJECT 01494000
- RC4 EQU 4 @V60B6B8 01530000
- VOLSIZE EQU 1 @V60B6B8 01532000
- FLAGLEN EQU 1 LENGTH OF FLAGS IN SAVEWRK @V60B6B8 01533000
- EJECT 01535000
- LTORG @V407466 01536000
- EJECT 01537000
- COPY SAVE @V407466 01538000
- WORKAREA EQU ((SAVEWRK9+L'SAVEWRK9)-SAVEWRK2) LNGTH OF WORKAR@V60B6B8 01539000
- EJECT 01540000
- *----------------------------* 01541000
- * 01542000
- WRK2 DSECT ERROR MESSAGE DSECT @V407466 01543000
- ATTCUU DS CL3 CUU @V407466 01544000
- ATTSIZE1 EQU *-ATTCUU DATA LENGTH @V407466 01545000
- ATTDEL4 DS X DELIMITER @V407466 01546000
- ATTNO DS CL3 NUMBER OF USERS @V407466 01547000
- ATTSIZE5 EQU *-ATTCUU DATA LENGTH @V407466 01548000
- DS X ... @V407466 01549000
- ATTDEL1 DS X DELIMITER @V407466 01550000
- ATTUSE DS CL3 USERID @V407466 01551000
- ATTDEL5 DS X DELIMITER @V407466 01552000
- ATTUSER2 DS CL4 USERID @V407466 01553000
- ATTSIZE2 EQU *-ATTCUU DATA LENGTH @V407466 01554000
- ATTDEL2 DS X DELIMITER @V407466 01555000
- ATTVADDR DS CL3 VADDR @V407466 01556000
- ATTSIZE3 EQU *-ATTCUU DATA LENGTH @V407466 01557000
- MSGSIZE EQU (*-ATTCUU+7)/8 @V407466 01558000
- ORG ATTDEL1 SAVEWRK4 @V407466 01559000
- ATTDEL3 DS X DELIMITER @V407466 01560000
- ATTCHAN DS CL2 CHANNEL @V407466 01561000
- ATTSIZE4 EQU *-ATTCUU DATA LENGTH @V407466 01562000
- ORG ATTCUU @V407466 01563000
- DS CL4 @V407466 01564000
- ATTCON DS CL8 CONSTANT 'ATTACHED' @V407466 01565000
- *----------------------------* 01566000
- * 01567000
- VDABITS EQU SAVEWRK1 FLAGS USED WITHIN VDA @V407466 01568000
- MULTCUU EQU SAVEWRK1+2 NO. MULT. ADDRS IN MSG @V407466 01569000
- DEVADDR EQU SAVEWRK2 REAL/VIRTUAL DEVICE ADDRESS @V407466 01570000
- CMDUSER EQU SAVEWRK3 AND SAVEWRK4 - USERID @V407466 01571000
- VIRTADD EQU SAVEWRK1+2 VIRTUAL DEVICE ADDRESS @V407466 01572000
- SPACE 01573000
- * EQUATES 01574000
- MAXCUU EQU 40 @V407490 01601000
- VOLIDSIZ EQU 6 @V407490 01602000
- COUNT2 EQU 2 @V407490 01603000
- SPACE 01605000
- * 01606000
- * FLAGS DEFINED IN "VDABITS" : 01607000
- * 01608000
- CHANNEL EQU X'80' "CHANNEL" OPTION SPECIFIED @V407466 01609000
- NSYSOP EQU X'40' CALLER IS NOT SYSTEM OPERATOR @V407466 01610000
- MULTR EQU X'20' MULTIPLE RADDR ON COMMAND LINE @V407466 01611000
- ATTSYST EQU X'10' ATTACH/DETACH TO/FROM "SYSTEM" @V407466 01612000
- ATTREAD EQU X'08' ATTACH "R/O" @V407466 01613000
- ATTCTCA EQU X'02' ATTACH REAL CHAN-TO-CHAN ADAPTER @V407466 01614000
- DED2305 EQU X'01' ATTACH/DEDICATE MULTI EXP DEVICE @V407466 01615000
- RANGE EQU X'04' RANGE ON COMMAND LINE @V407466 01616000
- SPACE 01617000
- MDSECT DSECT @V407466 01618000
- MULTADD DS F @V407466 01619000
- DS 47F UP TO 48 CCU ON ONE COMMAND EXEC.@V407466 01620000
- DS 4D @V407466 01621000
- MULTSIZE EQU (*-MULTADD+7)/8 @V407466 01622000
- MSGAREA EQU *-MULTADD @V407466 01623000
- SPACE 01624000
- ORG MULTADD @V407466 01625000
- DS CL3 ... @V407466 01626000
- DELIM1 DS XL1 @V407466 01627000
- DS CL4 CONSTANT - 'ATTACH' @V407466 01628000
- DELIM2 DS XL1 @V407466 01629000
- USERSIZE EQU *-MULTADD SIZE OF USER MSG IN BYTES @V407466 01630000
- CONTO DS CL3 CONSTANT - 'TO ' @V407466 01631000
- USERID DS CL8 USERID @V407466 01632000
- OPERSIZE EQU *-MULTADD SIZE OF OPERATOR MSG IN BYTES @V407466 01633000
- DELIM3 DS XL1 @V407466 01634000
- CONBY DS CL3 CONSTANT - 'BY ' @V407466 01635000
- ATTACHER DS CL8 ATTACHER @V407466 01636000
- ASIZE EQU *-MULTADD SIZE OF ATTACHER MSG IN BYTES @V407466 01637000
- EJECT 01638000
- COPY EQU @V407466 01639000
- OSVSCOM MSSCOM @V60B6B8 01640000
- DMKVDA CSECT @V60B6B8 01641000
- COPY DEVTYPES @V407466 01642000
- PSA @V407466 01643000
- COPY VMBLOK @V407466 01644000
- COPY RBLOKS @V407466 01645000
- COPY VBLOKS @V407466 01646000
- COPY IOBLOKS @V407466 01647000
- COPY IOER @V407466 01648000
- EJECT 01649000
- COPY ALLOC @V407466 01650000
- COPY UDIRECT @V407466 01651000
- END DMKVDA 01652000
ibm/vm370-lib/cp/dmkvda.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator