ibm:vm370-lib:cp:dmkvde.assemble_src
Table of Contents
DMKVDE Source
References
- Fixes Applied : 10
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [HRC039DK]
Source Listing
- DMKVDE.ASSEMBLE.txt
- VDE TITLE 'DMKVDE (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE SEQUENCING OF SYSIN @V407466 00002000
- *. 00003000
- * MODULE NAME - 00004000
- * 00005000
- * DMKVDE 00006000
- * 00007000
- * CONTENTS - 00008000
- * 00008500
- * DMKVDEDC - SUBROUTINE TO VERIFY DEVICE EXISTENCE FOR DEVICE 00009000
- * WHICH IS BEING ATTACHED. 00009500
- * 00010000
- * DMKVDERR - SUBROUTINE TO ISSUE ATTACH ERROR MESSAGES. 00010500
- *. 00011000
- EJECT 00012000
- PUNCH 'SPB' TELL LOADER TO START AT NEXT PAGE BOUNDRY 00013000
- DMKVDE START 00014000
- SPACE 00015000
- DC CL8'DMKVDE' MODULE IDENTIFICATION @V407466 00016000
- SPACE 00017000
- USING PSA,R0 @V407466 00018000
- USING SAVEAREA,R13 @V407466 00019000
- EXTRN DMKIOSQR @V407466 00020000
- EXTRN DMKSCNRU @V407466 00021000
- EXTRN DMKCVTBD @VA13651 00021100
- EXTRN DMKCVTBH @VA13651 00021200
- EXTRN DMKERMSG @VA13651 00021300
- EXTRN DMKLOCKD @VA13651 00021400
- EXTRN DMKSCNRD @VA13651 00021500
- EXTRN DMKSCNRN @VA13651 00021600
- SPACE 00022000
- *. 00022100
- * SUBROUTINE NAME - 00022200
- * DMKVDEDC - VERIFY DEVICE EXISTENCE 00022300
- * 00022400
- * FUNCTION - 00022500
- * TO VERIFY THE EXISTENCE OF A DEVICE WHICH IS BEING ATTACHED. 00022600
- * 00023000
- * ATTRIBUTES - 00024000
- * 00025000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00026000
- * 00027000
- * ENTRY CONDITIONS - 00028000
- * 00029000
- * GPR 6 = VADDR FOR DEVICE BEING ATTACHED 00030000
- * GPR 8 = ADDRESS OF RDEVBLOK 00031000
- * GPR 10 = ATTACHEE'S VMBLOK 00032000
- * GPR 11 = ATTACHER'S VMBLOK 00033000
- * GPR 12 = ADDRESS OF DMKVDEDC 00034000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00035000
- SPACE 00036000
- * PARM = 1 PASSED ON THE CALL MACRO INDICATES THAT 00037000
- * DEVICE IS DASD AND ALLOCATION DATA IS TO BE READ. 00038000
- SPACE 00039000
- * 00040000
- * EXIT CONDITIONS - 00041000
- * 00042000
- * 00043000
- * RETURN IS TO DMKVDA 00044000
- * 00045000
- * GPR 2 = 0 IF LABEL/ALLOC. RECORD HAS BEEN READ 00046000
- * SUCCESSFULLY. 00047000
- * GPR 2 = ERROR CODE IS LABEL/ALLOC READ UNSUCCESSFUL. 00048000
- * 00049000
- * CALLS TO OTHER ROUTINES - 00050000
- * 00051000
- * DMKIOSQR 00052000
- * DMKDSPCH 00053000
- * DMKSCNRU 00054000
- * DMKFREE 00055000
- * DMKFRET 00056000
- * 00057000
- * EXTERNAL REFERENCES - 00058000
- * 00059000
- * NONE 00060000
- * 00061000
- * TABLES / WORK AREAS - 00062000
- * 00063000
- * VMBLOK 00064000
- * 00065000
- * REGISTER USAGE - 00066000
- * 00067000
- * GPR 2 = RETURN CODE FOR DMKVDA 00068000
- * GPR 3 = WORK 00069000
- * GPR 4 = WORK 00070000
- * GPR 5 = WORK 00071000
- * GPR 6 = VADDR OF DEVICE BEING ATTACHED 00072000
- * GPR 7 = WORK 00073000
- * GPR 8 = ADDRESS OF RDEVBLOK 00074000
- * GPR 10 = ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00075000
- * GPR 11 = ADDRESS OF CALLER'S OR USER'S VMBLOK 00076000
- * GPR 12 = BASE REGISTER 00077000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00078000
- * 00079000
- * 00080000
- * 00081000
- * OPERATION - 00082000
- * 00083000
- * DMKVDEDC - SUBROUTINE TO VERIFY DEVICE EXISTENCE. * 00084000
- * SETS UP AN I/O TASK (TIO) TO SEE IF DEVICE EXISTS. * 00085000
- * IF THE DEVICE DOES NOT EXIST, IT IS MARKED OFFLINE * 00086000
- * AND THE APPROPRIATE RETURN CODE IS PLACED IN SAVER2 * 00087000
- * TO BE PASSED BACK TO DMKVDA. A 'DOES NOT EXIST' MESSAGE * 00088000
- * WILL BE ISSUED BY DMKVDA. * 00089000
- * ------------------------------- * 00090000
- * IN ADDITION, FOR DASD DMKVDE * 00091000
- * SETS UP AND EXECUTES AN I/O TASK TO READ THE DASD VOLUME * 00092000
- * LABEL OF THE DEVICE BEING ATTACH'ED. IF SUCCESSFUL, THE * 00093000
- * VOLUME SERIAL IS INSERTED INTO THE 'RDEVSER' FIELD OF THE * 00094000
- * REAL DEVICE BLOCK. RETURN CODES ARE SET IN SAVER2 TO * 00095000
- * INDICATE FAILURE OF THE READ. IF A CP/370 OWNED VOLUME IS * 00096000
- * ENCOUNTERED, A FLAG IS SET IN THE DMKVDA SAVE AREA. * 00097000
- * IF DMKVDE HAS BEEN CALLED WITH PARM=1, MEANING ALLOCATION * 00098000
- * DATA IS PRESENT, DMKVDE WILL READ THE ALLOCATION RECORD * 00099000
- * INTO FREE STORAGE. * 00100000
- *---------------------------------------------------------------------* 00101000
- *. 00102000
- COPY OPTIONS @VA08059 00102300
- COPY LOCAL OPTIONS @VA08059 00102700
- EJECT 00103000
- DMKVDEDC RELOC ATTACH A REAL DEVICE OR CHANNEL TO @V407466 00104000
- * USER'S VM 00105000
- USING RDEVBLOK,R8 RDEVBLOK ADDRESSABILITY @V407466 00106000
- SLR R3,R3 CLEAR R3 @V407466 00107000
- LA R0,IOBSIZE SIZE OF IOBLOK IN DWDS. @V407466 00108000
- CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00109000
- BNE RDLAIOB NO, IOBLOK IS RIGHT SIZE @V407466 00110000
- LA R0,ALLOLEN+IOBSIZE SIZE FOR ALLOC DATA BLOCK @V407466 00111000
- C R2,F1 READING ALLOCATION DATA ? @V407466 00112000
- BE RDLAIOB YES - ALL SET TO GO @V407466 00113000
- LA R0,VDELLEN SMALLER IOBLOK FOR LABEL READ @V407466 00114000
- RDLAIOB EQU * GET AN IOB + BUFFER FROM FREE STG@V407466 00115000
- CALL DMKFREE @V407466 00116000
- XC 0(IOBSIZE*8,R1),0(R1) CLEAR IOBLOK TO ZEROES @V407466 00117000
- ST R10,IOBMISC-IOBLOK(,R1) SAVE ATTACHEE'S VMBLOK @V407466 00118000
- LR R10,R1 @V407466 00119000
- USING IOBLOK,R10 STANDARD IOBLOK ADDRESSABILITY @V407466 00120000
- LA R7,X'100' LOAD TIO LOOP COUNT @VA09204 00120100
- RDLCPEX1 OI IOBSPEC,IOBTIO FLAG REQUEST FOR SPECIAL 'TIO' @VA07221 00121100
- SPACE 00122000
- RDLCPEX EQU * GET CPEXBLOK FOR REGISTERS @V407466 00123000
- LA R0,CPEXSIZE GET A CPEXBLOK... @V407466 00124000
- CALL DMKFREE ...TO USE AS A SAVE-AREA @V407466 00125000
- USING CPEXBLOK,R1 ...ACROSS THE CALL TO 'IOS' @V407466 00126000
- STM R0,R15,CPEXR0 SAVE ALL CURRENT REGISTERS @V407466 00127000
- ST R1,IOBMISC2 SAVE THE CPEXBLOK HERE @V407466 00128000
- DROP R1 @V407466 00129000
- SPACE 00130000
- ST R11,IOBUSER ATTACHER'S VMBLOK @V407466 00131000
- LA R1,RDLBIRA INTERRUPT RETURN ADDRESS @V407466 00132000
- ST R1,IOBIRA ... @V407466 00133000
- TM IOBSPEC,IOBTIO SPECIAL 'TIO' @V407466 00134000
- BO RDLIOSR YES, TEST THE DEVICE NOW @V407466 00135000
- LA R4,VDELCCW-VDELOK(,R10) CCW START @V407466 00136000
- ST R4,IOBCAW ... @V407466 00137000
- MVC 0(LABLSZ,R4),LABLCCW MOVE IN MODEL CCW'S @V407466 00138000
- XC VDELSNS-VDELOK(IOERSNSZ,R10),VDELSNS-VDELOK CLR @V407466 00139000
- C R2,F1 READING ALLOCATION RECORD ? @V407466 00140000
- BNE RDLACCW NO - RELOCATE CCW'S @V407466 00141000
- MVC VDELCNT-VDELOK(8,R10),ALLOCNT DIFF RECORD NO. @V407466 00142000
- OI 52(R4),SKIP PREVENT TRANSFER OF SENSE DATA @V407466 00143000
- LA R1,1024 ...ALSO LONGER RECORD @V407466 00144000
- STH R1,46(,R4) ...INTO 'READ DATA' CCW @V407466 00145000
- RDLACCW EQU * @V407466 00146000
- LR R5,R4 ...START ADDRESS @V407466 00147000
- LA R1,7 NUMBER TO BE RELOCATED @V407466 00148000
- RDLABL1 EQU * RELOCATE CCW ADDRESSES @V407466 00149000
- L R0,0(,R5) @V407466 00150000
- ALR R0,R4 ADD CCW BASE ADDRESS @V407466 00151000
- ST R0,0(,R5) @V407466 00152000
- LA R5,8(,R5) NEXT CCW @V407466 00153000
- BCT R1,RDLABL1 CONTINUE @V407466 00154000
- L R1,IOBMISC2 GET CPEXBLOK ADDRESS @V407466 00155000
- USING CPEXBLOK,R1 ADDRESSABILITY @V407466 00156000
- ST R5,CPEXR5 PTR TO LAST CCW + 8 @V407466 00157000
- DROP R1 @V407466 00158000
- RDLIOSR EQU * QUEUE IOBLOK FOR EXECUTION @V407466 00159000
- MVI IOBFLAG,IOBCP CP-GENERATED I/O @V407466 00160000
- CALL DMKIOSQR R8 = RDEVBLOK, R10 = IOBLOK @V407466 00161000
- GOTO DMKDSPCH WAIT FOR IT @V407466 00162000
- SPACE 4 00163000
- RDLBIRA EQU * INTERRUPT RETURN POINT @V407466 00164000
- USING *,R12 @V407466 00165000
- SL R12,=A(RDLBIRA-DMKVDE) ADJUST ADDRESSABILITY @V407466 00166000
- USING DMKVDE,R12 @V407466 00167000
- SPACE 00168000
- L R1,IOBMISC2 GET CPEXBLOK ADDRESS @V407466 00169000
- USING CPEXBLOK,R1 @V407466 00170000
- LM R0,R9,CPEXR0 RELOAD OUR REGISTERS @V407466 00171000
- L R13,CPEXR13 ... @V407466 00172000
- LA R0,CPEXSIZE RETURN TO FREE STORAGE @V407466 00173000
- CALL DMKFRET ... @V407466 00174000
- DROP R1 @V407466 00175000
- SPACE 00176000
- SWITCH CONTINUE ON THE I/O PROCESSOR @V407508 00177000
- TM IOBSPEC,IOBTIO WAS THIS A SPECIAL 'TIO' REQUEST?@V407466 00178000
- BO CKREADY YES - CHECK IF DASD DEV IS READY @V407466 00179000
- TM IOBSTAT,IOBFATAL FATAL DISK ERROR ? @V407466 00180000
- BZ RDLABL2 NO - O.K. @V407466 00181000
- DATMODER LA R3,BADLABL2 LABEL READ FAILED @V407466 00182000
- C R2,F1 IF THIS IS ALLOC RECORD... @V407466 00183000
- BE RDLFRET ... DON'T CLEAR THE SERIAL @V407466 00184000
- LA R3,BADLABL READING REGL LABEL, NOT ALLOC @V407466 00185000
- CYLFAULT MVC RDEVSER(6),BLANKS CLEAR VOLUME SERIAL @V407466 00186000
- B RDLFRET GO RELEASE THE IOBLOK @V407466 00187000
- SPACE 00188000
- CKREADY NI IOBSPEC,X'FF'-IOBTIO RESET TIO FLAG @V407466 00189000
- TM IOBSTAT,IOBCC3 IS DRIVE AVAILABLE? @V407466 00190000
- BZ VDECC0 YES, GO READ VOLUME LABEL IF DASD@V407466 00191000
- BO VDECC3 NO, DEVICE DOES NOT EXIST @V407466 00192000
- * CC = 1, MAYBE UC 00193000
- CLI RDEVTYPC,CLASDASD DASD DEVICE TYPE @V407466 00194000
- BNE CKTAP NO, SKIP CHECK FOR CC=1, UC @V407466 00195000
- TM IOBCSW+4,UC UNIT CHECK @V407466 00196000
- BO CKMORE YES-CONTINUE CHECK @VA09204 00197200
- BCT R7,RDLCPEX1 NO-RETRY TIO 256 TIMES @VA09204 00197300
- LA R3,BUSY151 BUSY CONDITION? @VA11952 00197320
- ST R10,SAVER8 SAVE POINTER TO IOBLOK @VA11952 00197340
- B EXIT GET RC BACK TO DMKVDA @VA11952 00197360
- CKMORE EQU * @VA09204 00197400
- TM RDEVFTR,FTRVIRT 3330V DEVICE? @V407466 00198000
- BZ NOTREADY NO, SKIP CHECK FOR CC=1, UC @V407466 00199000
- TM IOBSTAT,IOBCC1 CC = 1 - CYLINDER FAULT @V407466 00200000
- BZ NOTREADY NO, SOMETHING ELSE WENT WRONG @V407466 00201000
- TM IOBCSW+4,UC CC=1, UC - CYLINDER FAULT @V407466 00202000
- BO CYLFAULT YES, ATTACH ANYWAY @V407466 00203000
- NOTREADY LA R3,NOTREDY FLAG DEVICE AS NOT READY @V407466 00204000
- B RDLFRET GO TO EXIT @VA07700 00204500
- SPACE 00205000
- CKTAP CLI RDEVTYPC,CLASTAPE MIXED - CC=1,CSW STORED @V407466 00206000
- BNE VDECC0 NOT TAPE, ASSUME DEVICE THERE @V407466 00207000
- L R1,IOBIOER CHECK TO SEE IF IOERBLOK @V407466 00208000
- LTR R1,R1 IS THERE ONE? @V407466 00209000
- BZ RDLFRET NO, RETURN TO CALLER @V407466 00210000
- USING IOERBLOK,R1 @V407466 00211000
- TM IOERDATA,X'40' INTERVENTION REQUIRED @V407466 00212000
- BZ RDLFRET NO @V407466 00213000
- TM IOERDATA+1,X'60' STATUS A & B ON @V407466 00214000
- BNZ RDLFRET SOMETHING ON, DEVICE THERE @V407466 00215000
- OI IOBSTAT,IOBCC3 MAKE SURE BOTH BITS ARE ON @V407466 00216000
- VDECC3 LR R1,R6 GET CCU FORM OF ADDR @V407466 00217000
- * PASSED FROM DMKVDA 00218000
- LA R3,1 NO. OF EXPOSURES TO VARY @VA10201 00219100
- CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00220000
- BNE VARYOFF NO @V407466 00221000
- CLI RDEVTYPE,TYP2305 DRUM @V407466 00222000
- BNE VARYOFF NO @V407466 00223000
- LA R3,8 NO. OF EXPOSURES FOR DRUM @VA10201 00224100
- LA R1,7(,R1) CONSTRUCT HIGHEST EXPOSURE ADDR @V407466 00225000
- VARYLOOP CALL DMKSCNRU GET BLOCKS @V407466 00226000
- BCTR R1,0 ... @V407466 00227000
- VARYOFF OI RDEVSTAT,RDEVDISA MARK DEVICE OFFLINE @V407466 00228000
- BCT R3,VARYLOOP CONTINUE @VA10201 00229100
- LA R3,UNKNOWN ISSUE MESSAGE @V407466 00230000
- B RDLFRET FRET BLOCKS FIRST @V407466 00231000
- SPACE 00232000
- VDECC0 CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00233000
- BE RDLCPEX YES, GO READ LABEL @V407466 00234000
- CLI RDEVTYPC,CLASTERM TERMINAL DEVICE @V407466 00235000
- BNE RDLFRET NO RELEASE BLOCKS @V407466 00236000
- TM RDEVTYPE,TYPBSC IS THIS BISYNC LINE @V407466 00237000
- BZ RDLFRET NO @V407466 00238000
- NI RDEVSTAT,X'FF'-RDEVNRDY CLEAR NOT READY FLAG @V407466 00239000
- B RDLFRET RELEASE STORAGE @V407466 00240000
- SPACE 00241000
- RDLABL2 EQU * CHECK LABEL FORMAT @V407466 00242000
- TM RDEVFTR,FTRVIRT 3330V DEVICE ADDRESS @V407466 00243000
- BZ RDLABL2B NO, GO LOOK AT LABEL @V407466 00244000
- L R1,IOBCSW ADDR LAST CCW EXECUTED @V407466 00245000
- LA R1,0(,R1) CLEAR HI-ORDER GARBAGE @V407466 00246000
- CR R5,R1 DID WE CYL FAULT? @V407466 00247000
- BE RDLABL2B NO CYL FAULT SITUATION @V407466 00248000
- MVC RDEVSER(6),BLANKS BLANK VOLID IN RDEVBLOK @V407466 00249000
- B RDLFRET RELEASE BLOCKS @V407466 00250000
- RDLABL2B C R2,F1 READING ALLOCATION RECORD ? @V407466 00251000
- BE EXIT2 YES - JUST RETURN FOR NOW @V407466 00252000
- USING VDELOK,R10 SWITCH DSECTS @V407466 00253000
- CLI RDEVTYPE,TYP3340 3340 TYPE @V407466 00254000
- BNE RDLABL3 NO - BRANCH @V407466 00255000
- NI RDEVFTR,X'FF'-(FTRRPS+FTR35MB+FTR70MB) RESET @V407466 00256000
- TM VDELSNS+2,X'80' RPS FEATURE INSTALLED ? @V407466 00257000
- BZ *+8 NO - @V407466 00258000
- OI RDEVFTR,FTRRPS INDICATE RPS INSTALLED @V407466 00259000
- TM VDELSNS+2,X'03' 35MB OR 70MB MODULE MOUNTED? @V407466 00260000
- BNM DATMODER DATA MODULE TYPE ERROR @V407466 00261000
- TM VDELSNS+2,X'02' 3340 70MB PACK MOUNTED ? @V407466 00262000
- BZ SET35MB NO - MUST BE 35MB PACK @V407466 00263000
- OI RDEVFTR,FTR70MB INDICATE 70MB PACK MOUNTED @V407466 00264000
- B RDLABL3 .. @V407466 00265000
- SET35MB OI RDEVFTR,FTR35MB INDICATE 35MB PACK MOUNTED @V407466 00266000
- RDLABL3 EQU * INTERPRET LABEL RECORD @V407466 00267000
- LA R14,VDELBUF+4 POINT TO STD LABEL SERIAL START @V407466 00268000
- CLC VDELBUF(4),=C'VOL1' IS IT STANDARD FORMAT ? @V407466 00269000
- BNE RDLBCMS NO - CHECK FOR CMS LABEL @V407466 00270000
- CLC VDELBUF+46(5),=C'CP370' ALLOCATION DATA PRESENT?@V407466 00271000
- BNE RDLABSR NO - MOVE VOLID TO RDEVBLOK @V407466 00272000
- LR R7,R13 SAVE PTR TO VDE SAVEAREA @V407466 00273000
- L R13,SAVER13 PICK UP PTR TO VDA SAVEAREA @V407466 00274000
- OI SAVEWRK1+1,CPOWND CP/370 OWNED VOLUME FORMAT @V407466 00275000
- LR R13,R7 RESTORE VDE SAVEAREA ADDRESS @V407466 00276000
- B RDLABSR MOVE VOLID TO RDEVBLOK @V407466 00277000
- RDLBCMS EQU * SEE IF RECOGNIZABLE LABEL FORMAT @V407466 00278000
- CLC VDELBUF(4),=C'CMS=' CMS FORMAT ? @V407466 00279000
- BE RDLABSR YES @V407466 00280000
- LA R14,VDELBUF NON-STANDARD LABEL START @V407466 00281000
- SPACE 00282000
- RDLABSR EQU * FILL IN RDEVBLOK SERIAL FIELD @V407466 00283000
- MVC RDEVSER(6),0(R14) ... @V407466 00284000
- EJECT 00285000
- RDLFRET EQU * RELEASE IOBLOK @V407466 00286000
- USING IOBLOK,R10 @V407466 00287000
- L R1,IOBIOER SEE IF IOERBLOK TO RELEASE @V407466 00288000
- LTR R1,R1 IS THERE ONE? @V407466 00289000
- BZ IOBONLY NO, RELEASE IOBLOK ONLY @V407466 00290000
- LA R0,IOERSIZE SIZE OF IOERBLOK @V407466 00291000
- AH R0,IOEREXT ...PLUS EXTENSION SIZE @VA07361 00291100
- CALL DMKFRET RELEASE IOERBLOK @V407466 00292000
- IOBONLY LR R1,R10 IOBLOK ADDRESS TO R1 @V407466 00293000
- DROP R10 @V407466 00294000
- L R10,IOBMISC-IOBLOK(,R1) ATTACHEE'S VMBLOK @V407466 00295000
- LA R0,IOBSIZE SIZE OF REGL. IOBLOK @V407466 00296000
- CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00297000
- BNE RDFRIOB NO, IOBSIZE IS OK @V407466 00298000
- LA R0,VDELLEN BLOCK SIZE @V407466 00299000
- C R2,F1 ...EXCEPT THAT THE ALLOCATION @V407466 00300000
- BNE RDFRIOB ...RECORD IS MUCH BIGGER @V407466 00301000
- LA R0,IOBSIZE+ALLOLEN @V407466 00302000
- RDFRIOB EQU * RELEASE THE IOBLOCK @V407466 00303000
- CALL DMKFRET RELEASE IT... @V407466 00304000
- EXIT ST R3,SAVER2 SAVE BAD RETURN CODE OR ZERO @V407466 00305000
- EXIT RETURN TO DMKVDA @V407466 00306000
- SPACE 00307000
- EXIT2 ST R10,SAVER10 SAVE IOBLOK ADDRESS @V407466 00308000
- * WHEN READING ALLOCATION RECORD @V407466 00309000
- B EXIT AND GO EXIT @V407466 00310000
- SPACE 2 00311000
- NOTREDY EQU 68 'NOTREADY' @V407466 00312000
- BADLABL EQU 72 READ FAILED FOR DASD LABEL @V407466 00313000
- BADLABL2 EQU 76 READ FAILED FOR ALLOC. RECORD @V407466 00314000
- UNKNOWN EQU 80 DEVICE DOES NOT EXIST @V407466 00315000
- BUSY151 EQU 120 @VA11952 00315100
- SPACE 00316000
- * BITS DEFINED IN VDABITS+1: 00317000
- CPOWND EQU X'20' ALLOCATION DATA PRESENT ON VOLUME@V407466 00318000
- SPACE 00319000
- LABLCCW CCW X'07',LABLCNT-LABLCCW,CC+SILI,6 SEEK @V407466 00320000
- CCW X'08',LABLSRCH-LABLCCW,CC+SILI,1 TIC @V407466 00321000
- CCW X'03',0,SILI,1 NOP @V407466 00322000
- LABLSRCH CCW X'31',LABLCNT-LABLCCW+2,CC+SILI,5 SEARCH @V407466 00323000
- CCW X'08',*-8-LABLCCW,CC,1 TIC @V407466 00324000
- CCW X'06',LABLBUF-LABLCCW,CC+SILI,80 RD DATA @V407466 00325000
- CCW X'04',LABLSNS-LABLCCW,SILI,IOERSNSZ SENSE @V407466 00326000
- LABLEND EQU * END OF CCWS @V407466 00327000
- LABLCNT DC AL2(0,0,0,3*256) BB,CC,HH,RX @V407466 00328000
- LABLSZ EQU *-LABLCCW SIZE OF EXTENSION @V407466 00329000
- LABLBUF DS 0D LABEL BUFFER LOCATION @V407466 00330000
- ORG *+80 @V407466 00331000
- LABLSNS EQU * @V407466 00332000
- ORG *-80 @V407466 00333000
- SPACE 3 00334000
- ALLOCNT DC AL2(0,0,0,4*256) BB,CC,HH,RX @V407466 00335000
- ALLOLEN EQU 1024/8+(LABLBUF-LABLCCW)/8 EXTRA SIZE FOR ALLOC @V407466 00336000
- SPACE 2 00337000
- EJECT 00338000
- *. 00339000
- * SUBROUTINE NAME - 00340000
- * 00341000
- * DMKVDERR - ISSUE ATTACH ERROR MESSAGES 00342000
- * 00343000
- * FUNCTION - 00344000
- * TO ISSUE ERROR MESSAGES FOR THE 'ATTACH' COMMAND 00345000
- * 00346000
- * ATTRIBUTES - 00347000
- * 00348000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00349000
- * 00350000
- * ENTRY CONDITIONS - 00351000
- * 00352000
- * GPR 2 - ERROR MESSAGE INDEX 00353000
- * GPR 7 - ADDRESS OF ERROR MESSAGE AREA 00354000
- * GPR 9 - ADDRESS OF UDEVBLOK 00355000
- * GPR 10 - ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00356000
- * GPR 11 - ADDRESS OF CALLER'S VMBLOK 00357000
- * GPR 12 - BASE REGISTER 00358000
- * GPR 13 - ADDRESS OF STANDARD SAVE AREA 00359000
- * 00360000
- * EXIT CONDITIONS - 00361000
- * 00362000
- * GPR 2 = BRANCH TABLE INDEX FOR DMKVDA TO CONTINUE PROCESSING 00363000
- * 00364000
- * CALLS TO OTHER ROUTINES - 00365000
- * 00366000
- * DMKCVTBD 00367000
- * DMKCVTBH 00368000
- * DMKERMSG 00369000
- * DMKLOCKD 00370000
- * DMKSCNRD 00371000
- * DMKSCNRN 00372000
- * DMKSCNRU 00373000
- * 00374000
- * EXTERNAL REFERENCES - 00375000
- * 00376000
- * NONE 00377000
- * 00378000
- * TABLES / WORK AREAS - 00379000
- * 00380000
- * ERROR MESSAGE AREA 00381000
- * DMKVDA'S SAVEAREA 00382000
- * 00383000
- * REGISTER USAGE - 00384000
- * 00385000
- * GPR 2 - ERROR INDEX CODE 00386000
- * GPR 4 - ADDRESS OF SAVEAREA 00387000
- * GPR 7 - ADDRESS OF ERROR MESSAGE AREA 00388000
- * GPR 9 - UDEVBLOK ADDRESS 00389000
- * GPR 10 - ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00390000
- * GPR 11 - ADDRESS OF CALLER'S OR USER'S VMBLOK 00391000
- * GPR 12 - BASE REGISTER 00392000
- * GPR 13 - ADDRESS OF DMKVDA'S SAVE AREA 00393000
- * 00394000
- * ALL OTHER REGISTERS ARE WORK REGISTERS 00395000
- * 00396000
- * NOTES - NONE 00397000
- * 00398000
- * OPERATION - 00399000
- * 00400000
- * 1. THE ERROR INDEX PASSED FROM DMKVDA IS USED AS AN INDEX 00401000
- * INTO A BRANCH TABLE TO BRANCH TO THE APPROPRIATE ERROR 00402000
- * MESSAGE PROCESSING. FOR EACH MESSAGE, THE VARIABLE DATA 00403000
- * (IF ANY) IS SUPPLIED, THE MESSAGE NUMBER IS SET, AND 00404000
- * DMKERMSG IS CALLED. IF DMKVDA DOES NOT NEED TO RECEIVE 00405000
- * CONTROL BACK AFTER THE ERROR MESSAGE IS WRITTEN, DMKVDERR 00406000
- * RELEASES ITS OWN SAVEAREA BEFORE CALLING DMKERMSG. 00407000
- * DMKERMSG WILL THEN RELEASE DMKVDA'S SAVEAREA BEFORE 00408000
- * RETURNING TO THE CALLER OF DMKVDA. 00409000
- * 00410000
- * RESPONSES - 00411000
- * NONE 00412000
- * 00413000
- * ERROR MESSAGES - 00414000
- * 00415000
- * DMKVDE003E INVALID OPTION - $OPTION$ 00416000
- * DMKVDE006E INVALID DEVICE TYPE - RADDR 00417000
- * DMKVDE020E USERID MISSING OR INVALID 00418000
- * DMKVDE021E RADDR MISSING OR INVALID 00419000
- * DMKVDE022E VADDR MISSING OR INVALID 00420000
- * DMKVDE023E VOLID MISSING OR INVALID 00421000
- * DMKVDE034E CHANNEL MISSING OR INVALID 00422000
- * DMKVDE040E DEV ADDR DOES NOT EXIST 00423000
- * DMKVDE045E $USERID$ NOT LOGGED ON 00424000
- * DMKVDE046E TYPE RADDR OFFLINE 00425000
- * DMKVDE120E TYPE RADDR NOT ATTACHED; USERID VADDR ALREADY 00426000
- * DEFINED 00427000
- * DMKVDE121E TYPE RADDR NOT ATTACHED TO $USERID$ 00428000
- * DMKVDE122E TYPE RADDR ALREADY ATTACHED TO $USERID$ 00429000
- * DMKVDE123E DASD RADDR CP OWNED 00430000
- * DMKVDE124E DASD RADDR IN USE BY NNN USERS 00431000
- * DMKVDE125E DASD RADDR VOLID $VOLID$ ALREADY ATTACHED 00432000
- * TO SYSTEM 00433000
- * DMKVDE126E DASD RADDR ERROR READING VOLID 00434000
- * DMKVDE127E DASD RADDR VOLID $VOLID$ DOES NOT MATCH 00435000
- * DMKVDE128E DASD RADDR ERROR READING ALLOCATION RECORD 00436000
- * DMKVDE131E INSUFFICIENT FREE STORAGE AVAILABLE FOR 00437000
- * ATTACH REQUEST 00438000
- * DMKVDE133E DASD RADDR NOT READY 00439000
- * DMKVDE134E TYPE RADDR NOT ATTACHED; CHAN XX DEDICATED 00440000
- * DMKVDE142E TYPE RADDR NOT DRAINED 00441000
- * DMKVDE143E TYPE RADDR IN USE BY SYSTEM 00442000
- * DMKVDE151I DASD RADDR NOT ATTACHED,BUSY PERSISTS, 00442100
- * IOBSTAT=XX, IOBCSW+4=YYYY 00442200
- * DMKVDE153E DEVICE RADDR EXCEEDS MAX NUM OF VIRTUAL DEVICES 00442300
- *. 00443000
- EJECT 00444000
- DMKVDERR RELOC @VA13651 00445000
- MVC SAVEWRK1,ZEROES CLEAR FOR FLAG BYTE 00445500
- LR R4,R13 SAVE R13 SAVEAREA ADDR FOR LATER @VA13651 00446000
- L R13,SAVER13 USE DMKVDA'S SAVEAREA @VA13651 00447000
- USING WRK2,R7 GET ADDRESSABILITY TO MSG AREA @VA13651 00448000
- USING VMBLOK,R11 GET ADDRESSABILITY TO VMBLOK @VA13651 00449000
- USING UDEVBLOK,R9 GET ADDRESSABILITY TO UDEVBLOK @VA13651 00450000
- B ERRTABL-8(R2) BRANCH TO PROPER ERROR ROUTINE; @VA13651 00451000
- * R2 IS ERROR INDEX SET BY DMKVDA 00452000
- SPACE 2 00453000
- *---------------------------------------------------------------------* 00454000
- * CVTRADD - CONVERT DEVICE ADDRESS TO HEXADECIMAL * 00455000
- * ZAPVOLD - REMOVE VOLUME SERIAL FROM REAL DEVICE BLOCK * 00456000
- *---------------------------------------------------------------------* 00457000
- SPACE 2 00458000
- CVTRADD EQU * CONVERT REAL DEVICE ADDRESS @V407466 00459000
- L R1,DEVADDR @V407466 00460000
- TM VDABITS,RANGE+MULTR RANGE/MULTIPLES BEING PROC @V407466 00461000
- BZ CONVERT NO, USE ADDR IN DEVADDR FIELD @V407466 00462000
- LH R1,UDEVADD DEVICE ADDRESS @V407466 00463000
- CONVERT CALL DMKCVTBH @V407466 00464000
- BR R5 @V407466 00465000
- SPACE 00466000
- ZAPVOLD EQU * REMOVE VOLID FROM RDEVBLOK @V407466 00467000
- L R1,SAVEWRK9 REAL DEVICE BLOCK POINTER - SAVED@V407466 00468000
- SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00469000
- USING RDEVBLOK,R1 @V407466 00470000
- MVC RDEVUSER(4),ASYSVM IN USE BY SYSTEM @V407466 00471000
- BR R5 @V407466 00472000
- DROP R1 @V407466 00473000
- EJECT 00474000
- *---------------------------------------------------------------------* 00475000
- * FREUSER AND SWPUSER - UNLOCK USERID AND SWAP VMBLOKS * 00476000
- *---------------------------------------------------------------------* 00477000
- SPACE 2 00478000
- FREUSER EQU * UNLOCK ATTACHEE'S USERID @V407466 00479000
- LA R1,VMUSER @V407466 00480000
- CALL DMKLOCKD DIRECTORY UNLOCK SUBROUTINE @V407466 00481000
- L R1,SAVER11 GET CALLER'S VMBLOK ADDRESS @V407508 00482000
- SWTCHVM SWITCH TO CALLER'S VMBLOK @V4M0193 00483000
- BR R5 ...RETURN TO CALLER @V407466 00484000
- SPACE 2 00485000
- SWPUSER EQU * SWAP TO TARGET USER'S VMBLOK @V407466 00486000
- LR R1,R10 GET USER'S VMBLOK ADDRESS @V407508 00487000
- SWTCHVM SWITCH TO SPECIFIED USER @V4M0193 00488000
- BR R5 @V407466 00489000
- EJECT 00490000
- *---------------------------------------------------------------------* 00491000
- * GETRDEV, GETRTYP - GET REAL DEVICE BLOCK + TYPE NAME * 00492000
- *---------------------------------------------------------------------* 00493000
- SPACE 2 00494000
- GETRDEV EQU * LOCATE REAL DEVICE BLOCK @V407466 00495000
- TM VDABITS,RANGE+MULTR RANGE OR MULTIPLES @V407466 00496000
- BM GETRDEV2 YES, R1 ALREADY SET UP @V407466 00497000
- L R1,DEVADDR REAL DEVICE ADDRESS @V407466 00498000
- GETRDEV2 CALL DMKSCNRU ...FIND THE RDEVBLOK @V407466 00499000
- BNZ UNKNOWN2 REAL DEVICE DOES NOT EXIST @VA13651 00500000
- ST R8,SAVEWRK9 SAVE THE RDEVBLOK POINTER @V407466 00501000
- BR R5 @V407466 00502000
- SPACE 00503000
- GETRTYP EQU * GET EBCDIC TYPE-NAME OF REAL DEV @V407466 00504000
- L R8,SAVEWRK9 RDEVBLOK ADDRESS @V407466 00505000
- CALL DMKSCNRN ...GET IT'S TYPE-NAME @V407466 00506000
- LR R3,R1 ...INTO R4 @V407466 00507000
- BR R5 @V407466 00508000
- EJECT 00509000
- * 00510000
- * ERROR INDEX = 28 00511000
- * 00512000
- INVOPTS EQU * INVALID OPTION - OPTION @V407466 00513000
- LA R2,EMSG003 MSG= DMKVDE003E @VA13651 00514000
- B MSGSEND3 (R0,R1 STILL SET FROM SCAN) @V407490 00515000
- * 00516000
- * ERROR INDEX = 88 00517000
- * 00518000
- INVOPTS2 EQU * @V407466 00519000
- LA R2,EMSG003 MSG= DMKVDE003E @VA13651 00520000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00521000
- B MSGSEND3 (R0,R1 STILL SET FROM SCAN) @VA13651 00522000
- * 00523000
- * ERROR INDEX = 92 00524000
- * 00525000
- INVTYPE EQU * INVALID DEVICE TYPE - RADDR @V407466 00526000
- BAL R5,CVTRADD GET REAL ADDRESS @V407466 00527000
- STCM R1,B'0111',ATTCUU ADDR @V407466 00528000
- LA R0,ATTSIZE1 DATA LENGTH @V407466 00529000
- LA R2,EMSG006 MSG= DMKVDE006E @VA13651 00530000
- B MSGSEND2 @V407466 00531000
- * 00532000
- * ERROR INDEX = 48 00533000
- * 00534000
- INVUSID EQU * USERID MISSING OR INVALID @V407466 00535000
- LA R2,EMSG020 MSG= DMKVDE020E @VA13651 00536000
- B MSGONLY @V407466 00537000
- * 00538000
- * ERROR INDEX = 52 00539000
- * 00540000
- INVADD1 EQU * FIRST ADDR MISSING OR INVALID @V407466 00541000
- TM VDABITS,CHANNEL MESSAGE FOR CAHNNEL COMMAND @V407466 00542000
- BZ VDA021 BRANCH IF NOT @V407466 00543000
- LA R2,EMSG034 LOAD CHANNEL ERROR CODE @V407490 00544000
- B MSGONLY . . . . @V407466 00545000
- VDA021 EQU * RADDR MISSING OR INVALID @V407490 00546000
- MVC 0(L'VMUSER,R7),CMDUSER MOVE IN INVALID PARM @V407490 00547000
- LA R0,L'VMUSER SET UP LENGTH @V407490 00548000
- LA R2,EMSG021 SET UP ERROR CODE @V407490 00549000
- B MSGSEND2 GO SEND MSG WITH NO RETURN @V407490 00550000
- * 00551000
- * ERROR INDEX = 96 00552000
- * 00553000
- VDE021A EQU * RADDR MISSING OR INVALID @VA13651 00554000
- TM VDABITS,RANGE RANGE ?? @V407490 00555000
- BZ VDA021B NO, BYPASS RANGE PROCESSING @V407490 00556000
- BAL R5,SWPUSER SET UP TO UNLOCK ATTACHEE @V407490 00557000
- BAL R5,FREUSER UNLOCK USERS CONTROL BLOCKS @V407490 00558000
- VDA021B LH R1,UDEVADD PICK UP DEVICE ADDRESS @V407490 00559000
- CALL DMKCVTBH CONVERT IT BACK @V407490 00560000
- STCM R1,B'0111',ATTCUU STORE ADDRESS @V407490 00561000
- LA R0,ATTSIZE1 SET UP SIZE OF ERROR MSG @V407490 00562000
- LA R2,EMSG021 LOAD ERROR CODE FOR DMKVDE021 @VA13651 00563000
- TM VDABITS,MULTR MULTIPLE DEVICES ????? @V407490 00564000
- BO MSGSEND YES, SEND MSG AND RETURN TO VDE @VA13651 00565000
- B MSGSEND2 GO SEND MSG, NO RETURN @V407490 00566000
- * 00567000
- * ERROR INDEX = 36 00568000
- * 00569000
- INVADD2 EQU * VADDR MISSING OR INVALID @V407466 00570000
- TM VDABITS,ATTSYST ATTACH TO SYSTEM ? @V407466 00571000
- BO INVOLID YES - ADD2 IS REALLY A VOLID @V407466 00572000
- VDA022 LA R2,EMSG022 VADDR MISSING OR INVALID @V407490 00573000
- B MSGONLY @V407466 00574000
- * 00575000
- * ERROR INDEX = 100 00576000
- * 00577000
- VDE022B EQU * @VA13651 00578000
- LA R2,EMSG022 VADDR MISSING OR INVALID @V407490 00579000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00580000
- B MSGONLY ISSUE MESSAGE @V407466 00581000
- * 00582000
- * ERROR INDEX = 40 00583000
- * 00584000
- INVOLID EQU * VOLID MISSING OR INVALID @V407466 00585000
- LA R2,EMSG023 MSG= DMKVDE023E @VA13651 00586000
- B MSGONLY @V407466 00587000
- * 00588000
- * ERROR INDEX = 80 00589000
- * 00590000
- UNKNOWN2 EQU * DEV ADDR DOES NOT EXIST @VA13651 00591000
- BAL R5,CVTRADD CONVERT ADDRESS TO HEX @V407466 00592000
- STCM R1,B'0111',ATTCUU @V407466 00593000
- LA R0,ATTSIZE1 DATA LENGTH @V407466 00594000
- LA R2,EMSG040 MSG= DMKVDE040E @VA13651 00595000
- B MSGSEND GO BUILD + TYPE MESSAGE @V407466 00596000
- * 00597000
- * ERROR INDEX = 44 00598000
- * 00599000
- NOTLOGD EQU * USERID NOT LOGGED ON @V407466 00600000
- MVC 0(L'VMUSER,R7),CMDUSER USERID @VA13651 00601000
- LA R0,L'VMUSER DATA LENGTH @V407466 00602000
- LA R2,EMSG045 MSG= DMKVDE045E @VA13651 00603000
- B MSGSEND2 @V407466 00604000
- * 00605000
- * ERROR INDEX = 12 00606000
- * 00607000
- DEVOFFL EQU * TYPE RADDR OFFLINE @V407466 00608000
- LA R2,EMSG046 MSG= DMKVDE046E @VA13651 00609000
- TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00610000
- BO TYPRADD YES, DO NOT WANT TO RETURN @V407490 00611000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00612000
- B TYPRADD GO BUILD VARIABLE STRING @V407490 00613000
- * 00614000
- * ERROR INDEX = 60 00615000
- * 00616000
- BAD05 EQU * @VA13651 00617000
- * 00618000
- * ERROR INDEX = 56 00619000
- * 00620000
- DALREDY EQU * TYPE RADDR NOT ATTACHED; USERID @V407466 00621000
- * VADDR ALREADY DEFINED 00622000
- BAL R5,FREUSER ONLOCK USER'S CONTROL BLOCKS @V407466 00623000
- BAL R6,USERDEV SET UP 'TYPE RADDR USERID' STRING@V407466 00624000
- LH R1,VIRTADD VIRTUAL ADDRESS @V407466 00625000
- TM VDABITS,RANGE+MULTR RANGE OR MULTIPLES @V407466 00626000
- BZ CVT NO, ADDRESS IN 'VIRTADD' @V407466 00627000
- LH R1,UDEVADD ADDRESS IN UDEVBLOK @V407466 00628000
- CVT CALL DMKCVTBH CONVERT FOR MESSAGE @V407466 00629000
- MVI ATTDEL2,BIN0 DELIMITER AFTER 'USERID' @V407466 00630000
- STCM R1,B'0111',ATTVADDR ...ADD 'VADDR' @V407466 00631000
- LA R0,ATTSIZE3 DATA LENGTH @V407466 00632000
- LA R2,EMSG120 MSG= DMKVDE120E @VA13651 00633000
- B MSGSEND @V407466 00634000
- * 00635000
- * ERROR INDEX = 20 00636000
- * 00637000
- DEVOWND EQU * DASD RADDR CP OWNED @V407466 00638000
- BAL R5,CVTRADD CONVERT ADDRESS @V407466 00639000
- STCM R1,B'0111',ATTCUU @V407466 00640000
- LA R0,ATTSIZE1 DATA LENGTH @V407466 00641000
- LA R2,EMSG123 MSG= DMKVDE123E @VA13651 00642000
- TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00643000
- BO MSGSEND2 YES, DO NOT RETURN TO DMKVDE @VA13651 00644000
- B MSGSEND @V407466 00645000
- * 00646000
- * ERROR INDEX = 16 00647000
- * 00648000
- SHRCHEK EQU * CHECK DIFF VARIETIES OF 'SHARED' @V407466 00649000
- L R8,SAVEWRK9 GET RDEVBLOK ADDRESS @V407466 00650000
- USING RDEVBLOK,R8 @V407466 00651000
- LA R2,EMSG143 MSG= DMKVDE143 @VA13651 00654000
- TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00655000
- BO TYPRADD YES, DO NOT RETURN AFTER MSG @V407466 00656000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00657000
- SHRCHEK2 B TYPRADD @V407466 00658000
- * 00659000
- * ERROR INDEX = 64 00660000
- * 00661000
- CHANDED EQU * ERROR FOR DEDICATED CHANNELS @V407490 00662000
- AIF (NOT &DEDCH).NOTDED3 **AIF** @V407466 00663000
- LR R6,R8 RESTORE R6 @V407466 00664000
- BAL R5,FREUSER UNLOCK USER'S CONTROL BLOCKS @V407466 00665000
- USING VCHBLOK,R6 @V407466 00666000
- LH R1,VCHADD GET ADDRESS OF VIRTUAL CHANNEL @V407466 00667000
- SRL R1,8(0) ... @V407466 00668000
- CALL DMKCVTBD CONVERT TO DECIMAL @V407466 00669000
- DROP R6 @V407466 00670000
- MVI ATTDEL1,BIN0 DELIMITER @V407466 00671000
- STCM R1,B'0011',ATTCHAN STORE CHANNEL NUMBER @V407466 00672000
- TM ATTCHAN,HEX0F CHANNEL NUMBER > 9 @V407466 00673000
- BNZ *+8 YES - LEAVE CHANNEL NUMBER ALONE @V407466 00674000
- MVI ATTCHAN,BIN0 CLEAR HI ORDER BYTE @V407466 00675000
- BAL R5,GETRDEV GET REAL DEVICE BOLCKS @V407466 00676000
- BAL R5,GETRTYP GO GET THE TYPE OF DEVICE @V407466 00677000
- BAL R5,CVTRADD ... @V407466 00678000
- ST R3,ATTCUU SAVE IT. @V407466 00679000
- ST R1,ATTNO STORE DEVICE ADDRESS @V407466 00680000
- MVI ATTNO,BIN0 DELIMITER @V407466 00681000
- LA R0,ATTSIZE4 MESSAGE LENGTH @V407466 00682000
- LA R2,EMSG134 MSG= DMKVDE134E @VA13651 00683000
- B MSGSEND @V407466 00684000
- .NOTDED3 ANOP 00685000
- * 00686000
- * ERROR INDEX = 8 00687000
- * 00688000
- NODRAIN EQU * TYPE RADDR NOT DRAINED @V407466 00689000
- LA R2,EMSG142 MSG= DMKVDE142E @VA13651 00690000
- TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00691000
- BO TYPRADD YES, DO NOT RETURN @V407466 00692000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00693000
- TYPRADD EQU * @V407466 00694000
- BAL R5,GETRTYP @V407466 00695000
- BAL R5,CVTRADD @V407466 00696000
- ST R3,ATTCUU @V407466 00697000
- ST R1,ATTNO @V407466 00698000
- MVI ATTNO,BIN0 DELIMITER @V407466 00699000
- LA R0,L'SAVEWRK2+L'SAVEWRK3 DATA LENGTH @V407466 00700000
- B MSGSEND2 GO SEND IT @V407490 00701000
- * 00702000
- * ERROR INDEX = 84 00703000
- * 00704000
- DEVSHRD EQU * DASD RADDR IN USE BY NNN USERS @V407466 00705000
- CLC RDEVSER(6),CMDUSER IS VOLID CORRECT? @VA11349 00706000
- BNE WRNGVOL YES, CONTINUE. @VA11139 00707000
- BAL R5,CVTRADD CONVERT ADDRESS @V407466 00708000
- STCM R1,B'0111',ATTCUU @V407466 00709000
- MVI ATTDEL4,BIN0 DELIMITER @V407466 00710000
- L R8,SAVEWRK9 SAVED RDEVBLOK ADDRESS @V407466 00711000
- LH R1,RDEVLNKS-RDEVBLOK(,R8) NO. OF USERS @V407466 00712000
- CALL DMKCVTBD CONVERT TO DECIMAL @V407466 00713000
- STCM R1,B'0111',ATTNO NUMBER OF USERS @V407466 00714000
- LA R0,ATTSIZE5 DATA LENGTH @V407466 00715000
- LA R2,EMSG124 MSG= DMKVDE124E @VA13651 00716000
- TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00717000
- BO MSGSEND2 DO NOT RETURN TO DMKVDE AFTER MSG@VA13651 00718000
- B MSGSEND @V407466 00719000
- * 00720000
- * ERROR INDEX = 104 00721000
- * 00722000
- DUPVOL EQU * DASD RADDR VOLID $VOL$ ALRDY ATT @V407466 00723000
- MSG125E CALL DMKSCNRD GET REAL DEVICE ADDRESS @V407466 00724000
- CALL DMKCVTBH CONVERT TO HEX @V407466 00725000
- STCM R1,B'0111',ATTCUU @V407466 00726000
- MVI ATTDEL4,BIN0 DELIMITER @V407466 00727000
- * VOLID IS IN 'CMDUSER' = SAVEWRK3,4 00728000
- MVC ATTNO(L'SAVEWRK3+L'SAVEWRK4),CMDUSER @V407466 00729000
- LA R0,L'SAVEWRK2+L'SAVEWRK3+L'SAVEWRK4 LENGTH @V407466 00730000
- LA R2,EMSG125 MSG= DMKVDE125 @VA13651 00731000
- B MSGSEND2 @V407466 00732000
- * 00733000
- * ERROR INDEX = 72 00734000
- * 00735000
- LABLERR EQU * DASD RADDR ERROR RDING VOL LABEL @V407466 00736000
- BAL R5,CVTRADD @V407466 00737000
- STCM R1,B'0111',ATTCUU @V407466 00738000
- LA R0,ATTSIZE1 DATA LENGTH @V407466 00739000
- LA R2,EMSG126 MSG= DMKVDE126 @VA13651 00740000
- B MSGSEND2 @V407466 00741000
- * 00742000
- * ERROR INDEX = 108 00743000
- * 00744000
- WRNGVOL EQU * DASD RADDR VOL1 VOL2 DON'T MATCH @V407466 00745000
- BAL R5,CVTRADD GET DEVICE ADDRESS @V407466 00746000
- STCM R1,B'0111',ATTCUU @V407466 00747000
- MVI ATTDEL4,BIN0 DELIMITER @V407466 00748000
- MVC ATTNO(6),RDEVSER-RDEVBLOK(R8) VOLID FROM DEV @V407466 00749000
- BAL R5,ZAPVOLD CLEAR VOLID FROM RDEVBLOK @V407466 00750000
- LA R0,L'SAVEWRK2+L'SAVEWRK3+L'SAVEWRK4-2 LENGTH @V407466 00751000
- LA R2,EMSG127 MSG= DMKVDE127E @VA13651 00752000
- B MSGSEND2 @V407466 00753000
- * 00754000
- * ERROR INDEX = 32 00755000
- * 00756000
- NOSTOR MVC ATTCUU(L'ATTACHED-2),ATTACHED INSUFFICIENT @V407466 00757000
- LA R2,EMSG131 FREE STORAGE AVAILABLE FOR @V407490 00758000
- LA R0,L'ATTACHED-2 ATTACH REQUEST @V407466 00759000
- B MSGSEND ISSUE MESSAGE @V407466 00760000
- * 00761000
- * ERROR INDEX = 68 00762000
- * 00763000
- INTREQD EQU * DASD RADDR NOT READY @V407466 00764000
- BAL R5,CVTRADD GET REAL DEVICE ADDRESS @V407466 00765000
- STCM R1,B'0111',ATTCUU DATA FOR DMKERMSG @V407466 00766000
- LA R0,ATTSIZE1 DATA LENGTH @V407466 00767000
- LA R2,EMSG133 MSG= DMKVDE133E @VA13651 00768000
- B MSGSEND @V407466 00769000
- * 00770000
- * ERROR INDEX = 76 00771000
- * 00772000
- NOALLOC EQU * DASD RADDR ERR READING ALLOC REC.@V407466 00773000
- BAL R5,CVTRADD @V407466 00774000
- STCM R1,B'0111',ATTUSER2+3 SAVE ADDR OUT OF THE WAY @V407466 00775000
- LA R0,ATTSIZE1 DATA LENGTH @V407466 00776000
- LA R2,EMSG128 MSG= DMKVDE128E @VA13651 00777000
- LA R1,ATTUSER2+3 DATA START @V407466 00778000
- ICM R2,B'1100',=X'80E6' RETURN HERE, 'W' ACTION CODE@V407466 00779000
- ICM R0,B'1110',DMKVDE+3 MODULE IDENTIFIER @VA13651 00780000
- CALL DMKERMSG GO DO IT @V407466 00781000
- B RESPATT ISSUE RESPONSES @V407466 00782000
- * 00783000
- * ERROR INDEX = 24 00784000
- * 00785000
- DEVDEDD EQU * TYPE RADDR ALREADY ATT TO USERID @V407466 00786000
- LA R2,EMSG122 MGS=DMKVDE122E @VA13651 00787000
- TM VDABITS,ATTSYST ATTACHING TO THE 'SYSTEM' @V407466 00788000
- BO DEVDEDD3 YES, DO NOT RETURN @V407466 00789000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00790000
- DEVDEDD3 DS 0H @V4M0236 00791000
- BAL R6,USERDEV SET UP DATA STRING FOR 'ERMSG' @V407466 00792000
- L R8,SAVEWRK9 GET RDEVBLOK ADDRESS @V4M0236 00793000
- L R8,RDEVUSER-RDEVBLOK(,R8) GET USERS VMBLOK ADDR @V4M0236 00794000
- MVC ATTUSE(L'VMUSER),VMUSER-VMBLOK(R8) MOVE IN @V4M0236 00795000
- * CORRECT USERID @V4M0236 00796000
- B MSGSEND2 @V407490 00797000
- * 00797300
- * ERROR INDEX=120 00797310
- * 00797320
- MSG151 EQU * BUSY CONDITION PERSISTS @VA11952 00797330
- USING IOBLOK,R8 @VA11952 00797340
- BAL R5,CVTRADD GET DEVICE ADDRESS @VA11952 00797350
- STCM R1,B'0111',ATTCUU STORE DEVICE ADDRESS @VA11952 00797360
- MVI ATTDEL4,BIN0 DELIMITER @VA11952 00797370
- SR R1,R1 ZERO OUT R1 @VA11952 00797380
- ICM R1,B'0001',IOBSTAT GET IOB STATUS @VA11952 00797390
- CALL DMKCVTBH CONVERT IOB STATUS @VA11952 00797400
- STH R1,ATTNO STORE IOB STATUS @VA11952 00797410
- MVI ATTNO+2,BIN0 DELIMITER @VA11952 00797420
- SR R1,R1 ZERO OUT R1 @VA11952 00797430
- ICM R1,B'0011',IOBCSW+4 GET IOB SENSE @VA11952 00797440
- CALL DMKCVTBH CONVERT IOB SENSE @VA11952 00797450
- STCM R1,B'1111',ATTNO+4 STORE IOB SENSE @VA11952 00797460
- LA R0,L'ATTCUU+L'ATTDEL4+8 MSG LENGTH @VA11952 00797470
- ICM R2,B'1111',IMSG SET UP FOR 151I MSG @VA11952 00797480
- LR R1,R7 ADDRESS OF MSG AREA @VA11952 00797490
- ICM R0,B'1110',DMKVDE+3 MODULE ID @VA11952 00797500
- LR R10,R8 R10 POINTS TO IOBLOK @VA11952 00797510
- DROP R8 @VA11952 00797520
- CALL DMKERMSG PRINT MSG @VA11952 00797530
- B RDLFRET CLEAN UP @VA11952 00797540
- SPACE 2 00798000
- MAXDEV DS 0H PROCESS MAX DEVICES EXCEEDED @VA13217 00798050
- MVC ATTCUU(3),=C'RNG' SETUP FOR POSSIBLE RANGE ERR @VA13217 00798150
- TM VDABITS,RANGE PROCESSING RANGE OF DEVICES? @VA13217 00798250
- BO MAXDEVR YES - SKIP ADDRESS CONVERT @VA13217 00798350
- LH R1,UDEVADD PICK UP DEVICE ADDRESS @VA13217 00798450
- CALL DMKCVTBH CONVERT TO HEXADECIMAL @VA13217 00798550
- STCM R1,7,ATTCUU DVC ADDR TO INSERT IN MSG @VA13217 00798650
- MAXDEVR LA R0,ATTSIZE1 SIZE OF DATA TO INSERT @VA13217 00798750
- LA R2,EMSG153 MESSAGE NUMBER @VA13217 00798850
- B MSGSEND2 SEND MSG AND EXIT @VA13217 00798950
- MSGONLY EQU * NO EXTRA DATA FOR MESSAGE @V407466 00799000
- SLR R1,R1 @V407466 00800000
- SLR R0,R0 @V407466 00801000
- B MSGSEND3 GO SEND MESSAGE @VA11361 00802000
- SPACE 2 00803000
- MSGSEND EQU * BUILD + TYPE ERROR MESSAGE @V407466 00804000
- ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00805000
- MSGSEND2 LR R1,R7 GET ADDRESS OF ERROR MSG AREA @VA13651 00806000
- MSGSEND3 EQU * @V407490 00807000
- LTR R2,R2 CHECK TO SEE IF WE ARE RETURNING @V407490 00808000
- BM WILLRET YES, WE SHALL RETURN..... @V407490 00809000
- ICM R2,B'1000',=X'40' NOT RETURNING,SET UP FRET @V407490 00810000
- LA R3,MSGSIZE+MULTSIZE+VOLSIZE BUFFER SIZE @V60B6B8 00811000
- SLL R3,24 GET IT TO THE HI-ORDER @V407490 00812000
- ICM R3,B'0111',SAVEWRK5+1 GET THE ADDRESS TO FRET @V407490 00813000
- LR R13,R4 RESTORE DMKVDE SAVEAREA ADDR @VA13651 00814000
- SVC 16 RELEASE THIS SAVEAREA @VA13651 00815000
- WILLRET EQU * @V407490 00816000
- ICM R0,B'1110',DMKVDE+3 MODULE IDENTIFIER @VA13651 00817000
- CALL DMKERMSG GO DO IT @V407466 00818000
- ST R2,SAVER2 SAVE ERROR NUMBER @V407490 00819000
- * SAVED IN DMKVDA'S SAVEAREA 00820000
- CH R2,=H'131' INSUFFICIENT STORAGE MSG? @V407466 00822000
- BE CLEANXT YES, UNLOCK USER'S BLOCKS @V407466 00823000
- TM VDABITS,MULTR MULTIPLES BEING PROCESSED? @V407466 00824000
- BO MULTCONT YES, CONTINUE @V407466 00825000
- TM VDABITS,RANGE IS RANGE BEING PROCESSED @V407466 00826000
- BZ CLEANXT NO, EXIT @V407466 00827000
- LH R1,UDEVADD UDEVADD TO R1 @V407466 00828000
- LA R1,1(,R1) UP BY ONE @V407466 00829000
- CH R1,VDABITS+2 END OF RANGE @V407466 00830000
- BNH PROCESS NO, KEEP PROCESSING @V407466 00831000
- * B CLEANXT GET OUT @VA13651 00832000
- SPACE 2 00833000
- CLEANXT EQU * @VA13651 00834000
- LA R2,VDEXIT SET BRANCH INDEX FOR RETURN @VA13651 00835000
- B ERREXIT GO EXIT FROM DMKVDERR @VA13651 00836000
- PROCESS EQU * @VA13651 00837000
- LA R2,VDEPROC SET BRANCH INDEX FOR RETURN @VA13651 00838000
- LR R13,R4 RESTORE VDE'S SAVEAREA 00838100
- ST R1,SAVER1 SAVE NEW R1 VALUE FOR DMKVDA @VA13651 00839000
- B ERREXIT GO EXIT FROM DMKVDERR @VA13651 00840000
- MULTCONT EQU * @VA13651 00841000
- LA R2,VDEMULT SET BRANCH INDEX FOR RETURN @VA13651 00842000
- B ERREXIT GO EXIT FROM DMKVDERR @VA13651 00843000
- RESPATT EQU * @VA13651 00844000
- LA R2,VDERESP SET BRANCH INDEX FOR RETURN @VA13651 00845000
- L R4,SAVER13 RE-OBTAIN ADDR OF VDA'S SAVEAREA @VA13651 00846000
- L R4,SAVEWRK5-SAVEAREA(,R4) ADDR OF VDA MSG AREA @VA13651 00847000
- LA R4,0(,R4) CLEAR HIGH ORDER BYTE @VA13651 00848000
- ST R4,SAVER4 SET NEW R4 VALUE FOR DMKVDA @VA13651 00849000
- ERREXIT EQU * RETURN TO DMKVDA @VA13651 00850000
- LR R13,R4 RESTORE VDE SAVEAREA ADDRESS 00850500
- ST R2,SAVER2 SET BRANCH RETURN FOR DMKVDA @VA13651 00851000
- EXIT RETURN TO DMKVDA @VA13651 00852000
- * 00853000
- * BRANCH TABLE FOR ERROR INDEX CODES FROM DMKVDA 00854000
- * 00855000
- ERRTABL DS 0H ERROR NUMBERS 8,12,16,20,24 @V407466 00856000
- B NODRAIN 8 @V407466 00857000
- B DEVOFFL 12 @V407466 00858000
- B SHRCHEK 16 @V407466 00859000
- B DEVOWND 20 @V407466 00860000
- B DEVDEDD 24 @V407466 00861000
- B INVOPTS 28 @V407466 00862000
- B NOSTOR 32 @V407466 00863000
- B INVADD2 36 @V407466 00864000
- B INVOLID 40 @V407466 00865000
- B NOTLOGD 44 @V407466 00866000
- B INVUSID 48 @V407466 00867000
- B INVADD1 52 @V407466 00868000
- B DALREDY 56 @V407466 00869000
- B BAD05 60 @V407466 00870000
- B CHANDED 64 @V407466 00871000
- B INTREQD 68 DEVICE NOT READY @V407466 00872000
- B LABLERR 72 ERROR READING LABEL @V407466 00873000
- B NOALLOC 76 ERROR READING ALLOC. RECORD @V407466 00874000
- B UNKNOWN2 80 DEVICE DOES NOT EXIST @VA13651 00875000
- B DEVSHRD 84 @VA13651 00876000
- B INVOPTS2 88 @VA13651 00877000
- B INVTYPE 92 @VA13651 00878000
- B VDE021A 96 @VA13651 00879000
- B VDE022B 100 @VA13651 00880000
- B DUPVOL 104 @VA13651 00881000
- B WRNGVOL 108 @VA13651 00882000
- B MSG076 112 @VA13651 00883000
- B MSG151 120 BUSY CONDITION PERSISTS @VA11952 00883100
- B MAXDEV 124 @VA13217 00883200
- SPACE 2 00884000
- *---------------------------------------------------------------------* 00885000
- * USERDEV - BUILD STRING FOR DMKERMSG = "TYPE RADDR USERID" * 00886000
- *---------------------------------------------------------------------* 00887000
- SPACE 2 00888000
- USERDEV EQU * @V407466 00889000
- BAL R5,GETRTYP GET 'TYPE' IN GPR 3 @V407466 00890000
- BAL R5,CVTRADD GET 'RADD' IN GPR 1 @V407466 00891000
- MVC ATTUSE(L'VMUSER),CMDUSER USERID TO MESSAGE @V407466 00892000
- ST R3,ATTCUU DEVICE 'TYPE' TO MSG @V407466 00893000
- ST R1,ATTNO DEVICE 'CUU' TO MSG @V407466 00894000
- MVI ATTNO,BIN0 DELIMITER @V407490 00895000
- MVI ATTDEL1,BIN0 DELIMITER @V407466 00896000
- LA R0,ATTSIZE2 DATA LENGTH @V407466 00897000
- BR R6 RETURN @V407466 00898000
- SPACE 2 00899000
- MSG076 EQU * SET UP MSG DMKVDA076E @VMI2020 00900000
- L R2,OPTION76 DMKERMSG OPTIONS @VMI2020 00901000
- TM VDABITS,ATTSYST IS IT ATT TO SYSTEM @V60B6B8 00902000
- BO ADDCMDU YES, GET VOLID PTR @V60B6B8 00903000
- L R1,SAVEWRK5 WORKAREA ADDR @V60B6B8 00904000
- LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00905000
- LA R0,MSGSIZE+MULTSIZE OFFSET IN D-WORDS @V60B6B8 00906000
- SLL R0,3 INTO BYTES @V60B6B8 00907000
- AR R1,R0 POINT TO VOLID IN WORKAREA @V60B6B8 00908000
- B SETPL GET PARM LENGTH @V60B6B8 00909000
- ADDCMDU EQU * GET VOLID PTR @V60B6B8 00910000
- LA R1,CMDUSER VOLID IF ATT TO SYSTEM @V60B6B8 00911000
- SETPL EQU * PARM LENGTH @V60B6B8 00912000
- LA R0,VOLIDSIZ VOLSER 6 BYTES LONG @V60B6B8 00913000
- B WILLRET AND CALL DMKERMSG @V60B6B8 00914000
- DS 0F @V60B6B8 00915000
- OPTION76 EQU * @VMI2020 00916000
- DC X'80' RETURN FROM ERMSG TO VDA @V60B6B8 00917000
- DC C'E' ERROR MESSAGE @V60B6B8 00918000
- DC X'004C' MSG ID OF DEC. 76 @VMI2020 00919000
- ATTACHED DC CL8'ATTACHED' CONSTANT FOR MESSAGE @VA13651 00920000
- VOLSIZE EQU 1 @V60B6B8 00921000
- IMSG DC X'80C90097' @VA11952 00921500
- EJECT 00922000
- LTORG @V407466 00923000
- EJECT 00924000
- COPY SAVE @V407466 00925000
- EJECT 00926000
- COPY EQU @V407466 00927000
- COPY DEVTYPES @V407466 00928000
- PSA @V407466 00929000
- COPY RBLOKS @V407466 00930000
- COPY IOBLOKS @V407466 00931000
- COPY IOER @V407466 00932000
- VDELOK DSECT , DSECT FOR EXPANDED IOBLOK @V407466 00933000
- DS (IOBSIZE)D @V407466 00934000
- VDELCCW DS 7D @V407466 00935000
- * SEEK,TIC/NOP/SEARCH/TIC/READ/SENSE 00936000
- VDELCNT DS 1D SEEK AND SEARCH ARGS @V407466 00937000
- VDELBUF DS 10D 80-BYTE LABEL-RECORD BUFFER @V407466 00938000
- VDELSNS DS CL(IOERSNSZ) SENSE AREA @V407466 00939000
- VDELLEN EQU (*-VDELOK)/8 BLOCK LENGTH IN DBL-WDS @V407466 00940000
- SPACE 00941000
- *----------------------------* 00942000
- * 00943000
- WRK2 DSECT ERROR MESSAGE DSECT @V407466 00944000
- ATTCUU DS CL3 CUU @V407466 00945000
- ATTSIZE1 EQU *-ATTCUU DATA LENGTH @V407466 00946000
- ATTDEL4 DS X DELIMITER @V407466 00947000
- ATTNO DS CL3 NUMBER OF USERS @V407466 00948000
- ATTSIZE5 EQU *-ATTCUU DATA LENGTH @V407466 00949000
- DS X ... @V407466 00950000
- ATTDEL1 DS X DELIMITER @V407466 00951000
- ATTUSE DS CL3 USERID @V407466 00952000
- ATTDEL5 DS X DELIMITER @V407466 00953000
- ATTUSER2 DS CL4 USERID @V407466 00954000
- ATTSIZE2 EQU *-ATTCUU DATA LENGTH @V407466 00955000
- ATTDEL2 DS X DELIMITER @V407466 00956000
- ATTVADDR DS CL3 VADDR @V407466 00957000
- ATTSIZE3 EQU *-ATTCUU DATA LENGTH @V407466 00958000
- MSGSIZE EQU (*-ATTCUU+7)/8 @V407466 00959000
- ORG ATTDEL1 SAVEWRK4 @V407466 00960000
- ATTDEL3 DS X DELIMITER @V407466 00961000
- ATTCHAN DS CL2 CHANNEL @V407466 00962000
- ATTSIZE4 EQU *-ATTCUU DATA LENGTH @V407466 00963000
- ORG ATTCUU @V407466 00964000
- DS CL4 @V407466 00965000
- ATTCON DS CL8 CONSTANT 'ATTACHED' @V407466 00966000
- *----------------------------* 00967000
- * 00968000
- VDABITS EQU SAVEWRK1 FLAGS USED WITHIN VDA @V407466 00969000
- MULTCUU EQU SAVEWRK1+2 NO. MULT. ADDRS IN MSG @V407466 00970000
- DEVADDR EQU SAVEWRK2 REAL/VIRTUAL DEVICE ADDRESS @V407466 00971000
- CMDUSER EQU SAVEWRK3 AND SAVEWRK4 - USERID @V407466 00972000
- VIRTADD EQU SAVEWRK1+2 VIRTUAL DEVICE ADDRESS @V407466 00973000
- SPACE 00974000
- * EQUATES 00975000
- BIN0 EQU X'00' DELIMTER @V407466 00976000
- HEX0F EQU X'0F' @V407466 00977000
- EMSG003 EQU 3 @V407490 00978000
- EMSG006 EQU 6 @V407490 00979000
- EMSG020 EQU 20 @V407490 00980000
- EMSG021 EQU 21 @V407490 00981000
- EMSG022 EQU 22 @V407490 00982000
- EMSG023 EQU 23 @V407490 00983000
- EMSG034 EQU 34 @V407490 00984000
- EMSG040 EQU 40 @V407490 00985000
- EMSG045 EQU 45 @V407490 00986000
- EMSG046 EQU 46 @V407490 00987000
- EMSG120 EQU 120 @V407490 00988000
- EMSG122 EQU 122 @V407490 00989000
- EMSG123 EQU 123 @V407490 00990000
- EMSG124 EQU 124 @V407490 00991000
- EMSG125 EQU 125 @V407490 00992000
- EMSG126 EQU 126 @V407490 00993000
- EMSG127 EQU 127 @V407490 00994000
- EMSG128 EQU 128 @V407490 00995000
- EMSG131 EQU 131 @V407490 00996000
- EMSG133 EQU 133 @V407490 00997000
- EMSG134 EQU 134 @V407490 00998000
- EMSG142 EQU 142 @V407490 00999000
- EMSG143 EQU 143 @V407490 01000000
- EMSG153 EQU 153 @VA13217 01000500
- VOLIDSIZ EQU 6 @V407490 01001000
- VDEXIT EQU 0 BRANCH INDEX FOR RETURN TO VDA @VA13651 01002000
- VDEPROC EQU 4 BRANCH INDEX FOR RETURN TO VDA @VA13651 01003000
- VDEMULT EQU 8 BRANCH INDEX FOR RETURN TO VDA @VA13651 01004000
- VDERESP EQU 12 BRANCH INDEX FOR RETURN TO VDA @VA13651 01005000
- SPACE 01006000
- * 01007000
- * FLAGS DEFINED IN "VDABITS" : 01008000
- * 01009000
- CHANNEL EQU X'80' "CHANNEL" OPTION SPECIFIED @V407466 01010000
- NSYSOP EQU X'40' CALLER IS NOT SYSTEM OPERATOR @V407466 01011000
- MULTR EQU X'20' MULTIPLE RADDR ON COMMAND LINE @V407466 01012000
- ATTSYST EQU X'10' ATTACH/DETACH TO/FROM "SYSTEM" @V407466 01013000
- ATTREAD EQU X'08' ATTACH "R/O" @V407466 01014000
- ATTCTCA EQU X'02' ATTACH REAL CHAN-TO-CHAN ADAPTER @V407466 01015000
- DED2305 EQU X'01' ATTACH/DEDICATE MULTI EXP DEVICE @V407466 01016000
- RANGE EQU X'04' RANGE ON COMMAND LINE @V407466 01017000
- SPACE 01018000
- MDSECT DSECT @V407466 01019000
- MULTADD DS F @V407466 01020000
- DS 47F UP TO 48 CCU ON ONE COMMAND EXEC.@V407466 01021000
- DS 4D @V407466 01022000
- MULTSIZE EQU (*-MULTADD+7)/8 @V407466 01023000
- MSGAREA EQU *-MULTADD @V407466 01024000
- EJECT 01025000
- COPY VMBLOK @V407466 01026000
- COPY UDIRECT @V407466 01027000
- COPY VBLOKS @VA13651 01028000
- DMKVDE CSECT RE-ENTER MAIN CSECT @VA13651 01029000
- END DMKVDE @VA13651 01030000
ibm/vm370-lib/cp/dmkvde.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator