ibm:vm370-lib:cms:dmslds.assemble_src
Table of Contents
DMSLDS Source
References
- Fixes Applied : 5
- This Source Date : Tuesday, December 12, 1978
- Last Fix ID : [HRC004DS]
Source Listing
- DMSLDS.ASSEMBLE.txt
- LDS TITLE 'DMSLDS (CMS) VM/370 - RELEASE 6' 00001000
- SPACE 2 00002000
- *. 00003000
- * 00004000
- * MODULE NAME: 00005000
- * 00006000
- * DMSLDS (LISTDS) 00007000
- * 00008000
- * FUNCTION: 00009000
- * 00010000
- * TO LIST INFORMATION ABOUT SPECIFIED DATA SETS RESIDING 00011000
- * ON AN O/S DISK. THIS FUNCTION IS PROVIDED BY INVOKING 00012000
- * THE COMMAND 'LISTDS'. 00013000
- * 00014000
- * ATTRIBUTES: 00015000
- * 00016000
- * DISK RESIDENT 00017000
- * 00018000
- * ENTRY POINTS 00019000
- * 00020000
- * DMSLDS 00021000
- * 00022000
- * ENTRY CONDITIONS: 00023000
- * 00024000
- * LA R1,PLIST 00025000
- * SVC 202 00026000
- * DC AL4(ERROR) 00027000
- * 00028000
- * 00029000
- * R1 MUST POINT TO THE PARAMETER LIST AS USUAL: 00030000
- * 00031000
- * DS 0D 00032000
- * PLIST DC CL8'LISTDS' 00033000
- * DC CL8'QUAL1' 1ST. QUALIFIER OF DATA SET NAME 00034000
- * DC CL8'QUAL2' 2ND. QUALIFIER OF DATA SET NAME 00035000
- * DC CL8'QUALN' NTH. QUALIFIER OF DATA SET NAME 00036000
- * DC CL8'FMODE' FILE MODE OF O/S DISK 00037000
- * DC CL8'(' BEGINNING OF OPTIONS 00038000
- * DC CL8'PDS' TYPE ALL MEMBERS OF PO DATA SET 00039000
- * DC CL8'FORMAT' TYPE EXTENDED INFORMATION 00040000
- * DC CL8'FREE' TYPE FREESPACE EXTENTS 00041000
- * DC CL8'EXTENT' TYPE DATA SET EXTENTS 00042000
- * DC XL8'FF' FENCE 00043000
- * 00044000
- * EXIT CONDITIONS: 00045000
- * 00046000
- * NORMAL RETURN - 00047000
- * 00048000
- * R15 = 0 00049000
- * 00050000
- * ERROR RETURNS - 00051000
- * 00052000
- * R15 = 4: WARNING 00053000
- * INVALID EXTENT FOUND 00054000
- * 00055000
- * R15 = 24: SYNTAX ERROR 00056000
- * INVALID FILE MODE SPECIFIED, 00057000
- * NO FILEMODE SPECIFIED, 00058000
- * INVALID OPTION FOUND, 00059000
- * INVAID DATA SET NAME 00060000
- * INVALID DATA SET NAME WITH FREE OPTION 00061000
- * INVALID DATA SET NAME WITH EXTENT OPTION 00062000
- * 00063000
- * R15 = 28: DISK ERRORS 00064000
- * I/O ERROR READING O/S DISK, 00065000
- * DATA SET NOT FOUND. 00066000
- * 00067000
- * CALLS TO OTHER ROUTINES: 00068000
- * 00069000
- * DMSLAD, DMSROS, DMSSTT, DMSFLD, DMSCWR, DMSERR 00070000
- * 00071000
- * EXTERNAL REFERENCES: 00072000
- * 00073000
- * NUCON, ADT, CMSCB 00074000
- * 00075000
- * TABLES/WORK AREAS: 00076000
- * 00077000
- * NONE 00078000
- * 00079000
- * 00080000
- * REGISTER USAGE 00081000
- * 00082000
- * R1 PLIST ADDRESS 00083000
- * R5 ADT ADDRESSABILITY 00084000
- * R7 FCBSECT ADDRESSABILITY 00085000
- * R11+12 LISTDS ADDRESSABILITY 00086000
- * R14 LINKAGE REGISTER 00087000
- * R15 RETURN CODE 00088000
- * REST WORK 00089000
- * 00090000
- * OPERATION: 00091000
- * 00092000
- * LISTDS SAVES RETURN REGISTER, SETS ITSELF IN NUCLEUS 00093000
- * PROTECT KEY, CLEARS THE DSNAME KEY, AND INITIALIZES 00094000
- * ITS INTERNAL FLAG. 00095000
- * 00096000
- * THE PARAMETER LIST IS CHECKED FOR ERRORS. THE 00097000
- * DATA SET NAME MUST NOT EXCEED 44 CHARACTERS, AND THE 00098000
- * DISK - MODE, (THE LAST PARAMETER BEFORE THE OPTIONS) 00099000
- * MUST BE ALPHABETIC. THE QUALIFIERS ARE JOINED WITH 00100000
- * DOTS (.) TO FORM VALID DSNAME 'S. (IF THE DSNAME IS 00101000
- * SPECIFIED AS A QUESTION MARK (?), THE USER IS PROMP- 00102000
- * TED TO ENTER THE DSNAME INTERACTIVELY IN EXACTLY THE 00103000
- * SAME FORM AS THE DSNAME APPEARS ON THE O/S DISK.) 00104000
- * 00105000
- * DMSLAD IS CALLED TO FIND THE ACTIVE DISK TABLE (ADT) 00106000
- * BLOCK. IF FMODE IS SPECIFIED AS ASTERICK , THEN THE 00107000
- * SEARCH IS MADE FOR ALL ADT BLOCKS. IF THE FMODE IS 00108000
- * SPECIFIED AS ALPHABETIC, THEN ONLY THE ADT BLOCK FOR 00109000
- * THE SPECIFIED FMODE IS ACQUIRED. 00110000
- * 00111000
- * IF THE DSNAME IS SPECIFIED (WHICH IS OPTIONAL), THEN 00112000
- * THE CHANNEL PROGRAMS ARE SET TO READ BY KEY, IF NOT 00113000
- * THE WHOLE VTOC IS SEARCHED FOR FORMAT 1 DSCB AND ALL 00114000
- * THE NEEDED INFORMATION IN THE DSCB IS TYPED TO THE 00115000
- * USER'S CONSOLE. IF THE FORMAT OPTION IS SPECIFIED,WE 00116000
- * TYPE THE RECFM, LRECL, BLKSI, DSORG, DATE, LABEL, FM 00117000
- * AND DATA SET NAME; OTHERWISE WE ONLY TYPE THE FMODE 00118000
- * AND DATA SET NAME. 00119000
- * 00120000
- * IF THE PDS OPTION IS SPECIFIED, WE LET THE 'FIND' 00121000
- * ROUTINE IN DMSROS READ THE MEMBER DIRECTORY AND GIVE 00122000
- * US IN THE FCBMEMBR FIELD OF 'CMSCB' THE NAME OF EACH 00123000
- * MEMBER IN THE DATA SET (PROVIDED THE DATA SET IS PO) 00124000
- * 00125000
- * IF THE FREE OPTION IS SPECIFIED, A CHECK IS MADE 00126000
- * TO ENSURE THAT NO DATA SET NAME HAS BEEN SPECIFIED, 00127000
- * A VALID , UNIQUE DISK HAS BEEN SPECIFIED, AND NO 00128000
- * OTHER OPTIONS ARE PRESENT. THE DEVICE TYPE AND NUMBER 00129000
- * OF CYLINDERS ARE OBTAINED FROM THE ADT, AND THE 00130000
- * NUMBER OF TRACKS IS CALCULATED. 00131000
- * A GETMAIN IS ISSUED FOR ENOUGH FREE STORAGE TO MAP 00132000
- * EACH TRACK ON THE DISK TO A BIT. THE VTOC IS MAPPED 00133000
- * USING THE EXTENTS IN THE ADT. ALL DSCB'S IN THE VTOC 00134000
- * ARE READ IN ONE AT A TIME AND THE FORMAT 1 AND FORMAT 00135000
- * 3 DSCB'S ARE SCANNED FOR EXTENTS. THE TRACKS 00136000
- * SPECIFIED BY THE EXTENTS ARE MAPPED IN THE FREE 00137000
- * STORAGE AREA. 00138000
- * WHEN THE END OF THE VTOC IS REACHED, THE TRACK MAP 00139000
- * IS SCANNED FOR NON-ALLOCATED TRACKS. CONTIGUOUS 00140000
- * NON-ALLOCATED TRACKS MAKE UP AN EXTENT WHICH IS TYPED 00141000
- * TO THE TERMINAL. 00142000
- * 00143000
- * IF THE EXTENT OPTION IS SPECIFIED, A CHECK IS MADE 00144000
- * THAT NO OTHER OPTIONS ARE PRESENT. VTOC INFORMATION 00145000
- * IS OBTAINED FROM THE ADT AND A SEARCH ON KEY IS 00146000
- * DONE FOR THE FORMAT 1 DSCB. THE EXTENT INFORMATION 00147000
- * IS ANALYZED FOR TYPE AND NUMBER AND OUTPUT LINES 00148000
- * ARE BUILT, 3 EXTENTS TO EACH LINE. IF MORE THAN 3 00149000
- * EXTENTS EXIST FOR THE DATA SET, THE FORMAT 3 DSCB IS 00150000
- * READ IN USING THE POINTER AT THE END OF THE FORMAT 1 00151000
- * DSCB. WHEN A LINE IS FILLED IT IS TYPED TO THE 00152000
- * TERMINAL. 00153000
- * 00154000
- * AFTER ALL THE PROCESSING HAS BEEN DONE,LISTDS RESETS 00155000
- * THE NUCLEUS KEY TO USER KEY, GETS THE RETURN CODE IN 00156000
- * REG. 15 AND RETURN TO ITS CALLER. 00157000
- * 00158000
- *. 00159000
- EJECT 00160000
- DMSLDS CSECT @V201101 00161000
- USING NUCON,R0 NUCON ADDRESSABILITY @V201101 00162000
- USING ADTSECT,R5 ADT ADDRESSABILITY @V201101 00163000
- USING DMSLDS,R11 LISTDS ADDRESSABILITY 1ST PAGE @V305114 00164000
- USING DMSLDS+4096,R12 AND 2ND PAGE @V305114 00165000
- SPACE 1 00166000
- LR R11,R15 SETUP BASE REGISTERS @V305114 00167000
- LA R15,4095 ...... @V305114 00168000
- LA R12,1(R11,R15) ...... @V305114 00169000
- ST R14,SAVR14 SAVE RETURN ADDRESS @V201101 00170000
- MVI LVSW,0 INITIALIZE OUR FLAGS @V201101 00171000
- DMSKEY NUCLEUS DISABLE NUCLEUS PROTECT @V201101 00172000
- * 00173000
- MVC SAVDOS(1),DOSFLAGS RESET DOS INDICATORS @V305114 00174000
- NI DOSFLAGS,255-DOSSVC FOR PROPER SVC HANDLING @V305114 00175000
- CLI 8(R1),FENCE ANYTHING SPECIFIED ? @V201101 00176000
- BE NOFMODE NO..ERROR @V201101 00177000
- CLI 8(R1),LPAR ANY FILEMODE SPECIFIED ? @VM03015 00178000
- BE NOFMODE NO..ERROR @VM03015 00179000
- CLC 8(2,R1),=C'? ' USER WANTS TO ENTER DSNAME ? @V201101 00180000
- BE GETDSN YES..GO GET IT @V201101 00181000
- LA R2,DSNAME GET DSNAME ADDRESS @V201101 00182000
- MVI 0(R2),BLANK PREPARE TO BLANK @V201101 00183000
- MVC 1(43,R2),0(R2) OUT DSNAME FIELD @V201101 00184000
- SR R3,R3 ZERO DSNAME COUNT @V201101 00185000
- * 00186000
- CHKQUALS LA R1,8(,R1) GET QUALIFIER OF DSN @V201101 00187000
- CLI 8(R1),FENCE END OF LINE ? @V201101 00188000
- BE CHKMODE YES..GO CHECK FMODE @V201101 00189000
- CLI 8(R1),LPAR BEGINNING OF OPTIONS ? @V201101 00190000
- BE CHKMODE YES..GO CHECK FMODE @V201101 00191000
- * 00192000
- LA R5,9 SET QUALIFIER LENGTH+1 @V201101 00193000
- LR R4,R1 GET QUALIFIER BEGIN @V201101 00194000
- LOOP CLI 0(R4),BLANK BLANK CHAR. ? @V201101 00195000
- BE CHKLEN YES..CHECK LENGTH @V201101 00196000
- CLI 0(R4),DOT PERIOD SPECIFIED? @V201101 00197000
- BE BADDSN YES, THEN BAD DATA SET NAME @V201101 00198000
- LA R4,1(,R4) BUMP TO NEXT CHAR. @V201101 00199000
- BCT R5,LOOP KEEP SEARCHING @V201101 00200000
- BCTR R4,0 ... @V201101 00201000
- * 00202000
- CHKLEN SR R4,R1 BEGIN LESS END @V201101 00203000
- LTR R4,R4 IS LENGTH ZERO ? @V201101 00204000
- BZ CHKQUALS YES..GET NEXT QUALIFIER @V201101 00205000
- LA R3,1(R4,R3) GET DSNAME TOTAL LENGTH @V201101 00206000
- CH R3,H45 EXCEEDS MAXIMUN ? @V201101 00207000
- BH BADDSN YES..ERROR @V201101 00208000
- TM LVSW,DSN IS THIS THE FIRST QUALIFIER ?@V201101 00209000
- BO SETDOT NO..INSERT DOT @V201101 00210000
- OI LVSW,DSN SET NOT FIRST @V201101 00211000
- B SETDSN MOVE THE QUALIFIER @V201101 00212000
- * 00213000
- SETDOT MVI 0(R2),DOT INSERT DOT AFTER LAST QUAL. @V201101 00214000
- LA R2,1(,R2) BUMP DSNAME POINTER BY ONE @V201101 00215000
- SETDSN BCTR R4,0 LENGTH LESS ONE FOR EXECUTE @V201101 00216000
- EX R4,MVEDSN MOVE DSNAME TO KEY @V201101 00217000
- LA R2,1(R4,R2) BUMP DSNAME POINTER BY LENGTH@V201101 00218000
- B CHKQUALS GET NEXT QUALIFIER @V201101 00219000
- * 00220000
- MVEDSN MVC 0(0,R2),0(R1) MOVE DSNAME TO KEY @V201101 00221000
- EJECT 1 00222000
- * 00223000
- GETDSN LA R1,16(,R1) BUMP POINTER TO MODE @V201101 00224000
- CLI 0(R1),FENCE ANYTHING THERE ? @V201101 00225000
- BE NOFMODE NO..ERROR @V201101 00226000
- CLI 0(R1),LPAR TRY AGAIN @V201101 00227000
- BE NOFMODE NO..ERROR @V201101 00228000
- LR R3,R1 SAVE R1 TEMPORARILY @V201101 00229000
- BAL R14,DSNMSG LET USER KNOW YOUR WHEREABOUT@V201101 00230000
- LA R1,CONRD GET CONSOLE READ PLIST @V201101 00231000
- SVC 202 GET DSNAME FROM CONSOLE @V201101 00232000
- DC AL4(*+4) ... @V201101 00233000
- LR R1,R3 RESTORE R1 @V201101 00234000
- LH R3,CONCNT+2 GET NUMBER BYTES READ @V201101 00235000
- LTR R3,R3 ANYTHING READ ? @V201101 00236000
- BZ CHKMODE NO..LIST ALL DATA SETS THEN @V201101 00237000
- LA R3,1(,R3) MY FOOLNESS @V201101 00238000
- SH R3,H45 EXCEEDS MAX DSNAME LEN ? @V201101 00239000
- BNP DSNOK NO..GOOD DSNAME @V201101 00240000
- CKOVR44 LA R5,DSNAME+43(R3) GET END TYPED LINE @V201101 00241000
- CLI 0(R5),BLANK IS IT BLANK ? @V201101 00242000
- BNE BADDSN NO..ERROR @V201101 00243000
- BCT R3,CKOVR44 KEEP LOOKING PAST 44 @V201101 00244000
- DSNOK OI LVSW,DSN SET TO SEARCH VTOC BY KEY @V201101 00245000
- * 00246000
- CHKMODE CLI 2(R1),BLANK TWO CHAR. MODE ? @V201101 00247000
- BNE BADMODE NO..INVALID FMODE @V201101 00248000
- CLI 1(R1),BLANK ONE CHAR. MODE ? @V201101 00249000
- BE CHKSTAR YES..SEE IF ASTERICK @V201101 00250000
- CLI 1(R1),X'F0' IS MODE NO. VALID ? @V201101 00251000
- BL BADMODE NO..INVALID FMODE @V201101 00252000
- CLI 1(R1),X'F5' ... @V201101 00253000
- BH BADMODE DITTO @V201101 00254000
- CHKSTAR CLI 0(R1),STAR SEARCH ALL DISKS ? @V201101 00255000
- BNE CHKABLE NO..SEE IF MODE ALPHA @V201101 00256000
- OI LVSW,ALLOS SEARCH ALL ADTS @V201101 00257000
- B SETMODE CONTINUE.. @V201101 00258000
- * 00259000
- CHKABLE CLI 0(R1),ABLE IS IT MODE A ? @V201101 00260000
- BL BADMODE IF LOWER..ERROR @V201101 00261000
- CLI 0(R1),ZEBRA IS IT MODE Z ? @V201101 00262000
- BH BADMODE IF HIGHER..ERROR @V201101 00263000
- * 00264000
- SETMODE MVC FMODE(1),0(R1) SAVE FMODE FOR ADTLKUP @V201101 00265000
- LA R5,SETLNTH LOAD FOR FUTURE BRANCH @V305114 00266000
- EJECT 1 00267000
- LA R6,LVMOD-LVBUF GET DEFAULT BUFFER INDEX @V201101 00268000
- LA R7,LVEND-LVMOD GET DEFAULT BUFFER LENGTH @V201101 00269000
- CLI 8(R1),FENCE ANY OPTIONS ? @V201101 00270000
- BER R5 NO ... SET TYPLIN BUFFER LENGTH @V305114 00271000
- LA R1,16(,R1) UP TO OPTION @V201101 00272000
- CLC 0(5,R1),FREE FREE OPTION SPECIFIED ? @V305114 00273000
- BE SETFREE YES ... BR @V305114 00274000
- CLC 0(7,R1),XTNT EXTENT OPTION SPECIFIED ? @V305114 00275000
- BE SETXTNT YES ... BR @V305114 00276000
- CLC 0(4,R1),EX ALLOW EXTENT ABBREVIATION @V305114 00277000
- BE SETXTNT ....... @V305114 00278000
- CHKOPTS CLC 0(8,R1),FORMAT IS IT VALID OPTION ? @V201101 00279000
- BE SETINDX YES..SET NEW BUFF INDEX @V201101 00280000
- CLC 0(4,R1),FO ONE MORE CHANCE.. @V201101 00281000
- BE SETINDX YES..SET NEW BUFF INDEX @V201101 00282000
- CLC 0(4,R1),PDS IS IT PDS OPTION ? @V201101 00283000
- BE SETMEMSW YES, CHECK NEXT OPTION @V201101 00284000
- CLI 0(R1),C')' RIGHT PAREN? @V201101 00285000
- BNE BADOPT NO..ERROR @V201101 00286000
- B CHKNXT YES, THROUGH WITH LINE @V201101 00287000
- SETMEMSW OI LVSW,MEM SET PDS OPTION FLAG @V201101 00288000
- B CHKNXT GO SEE IF MORE OPTIONS @V201101 00289000
- SETFREE TM LVSW,DSN NO DSN ALLOWED @V305114 00290000
- BO FREERR ELSE ERROR @V305114 00291000
- LA R1,8(,R1) BUMP PTR FOR POSSIBLE ERROR MSG @VM03091 00292000
- CLI 0(R1),FENCE NO OTHER OPTIONS ALLOWED @VM03091 00293000
- BE FOPTOK BR IF FENCE @V305114 00294000
- CLI 0(R1),RTPAREN RIGHT PAREN OK TOO @VM03091 00295000
- BNE BADOPT ERROR IF NEITHER @V305114 00296000
- FOPTOK OI LVSW,FREESW FLAG FREESPACE REQUEST @V305114 00297000
- LA R7,LEN70 PRESET LENGTH OF OUTPUT @V305066 00298000
- BR R5 SET TYPLIN BUFFER LENGTH @V305114 00299000
- SPACE 1 00300000
- SETXTNT LA R1,8(,R1) BUMP PTR FOR POSSIBLE ERROR MSG @VM03091 00301000
- CLI 0(R1),FENCE NO OTHER OPTIONS ALLOWED @VM03091 00302000
- BE XOPTOK BR IF FENCE @V305114 00303000
- CLI 0(R1),RTPAREN RIGHT PAREN IS OK @VM03091 00304000
- BNE BADOPT ERROR IF NEITHER @V305114 00305000
- XOPTOK OI LVSW,XTNTSW FLAG EXTENT REQUEST @V305114 00306000
- LA R7,LEN30 PRESET LENGTH OF OUTPUT @V305066 00307000
- BR R5 SET TYPLIN BUFFER LENGTH @V305114 00308000
- SPACE 1 00309000
- SETINDX AR R7,R6 SET OPTIONAL BUFFER LENGTH @V201101 00310000
- SR R6,R6 SET OPTIONAL BUFFER INDEX @V201101 00311000
- CHKNXT CLI 8(R1),FENCE ANY MORE OPTIONS ? @V201101 00312000
- BER R5 NO ... SET TYPLIN BUFFER LENGTH @V305114 00313000
- LA R1,8(,R1) BUMP TO NEXT OPTION @V201101 00314000
- B CHKOPTS GO AND CHECK IT.. @V201101 00315000
- SETLNTH STCM R7,B'0111',LVLNTH+1 BUFFER LENGTH IN PLIST @V201101 00316000
- LA R1,RDDSCB1 GET GENERAL CHAN PROG. @V201101 00317000
- TM LVSW,FREESW FREE SPECIFIED ? @V305114 00318000
- BO SETCHAN YES ... ALL SET @V305114 00319000
- TM LVSW,DSN SEARCHING BY KEY ? @V201101 00320000
- BZ SETCHAN NO..USE THIS ONE @V201101 00321000
- LA R1,RDDSCB1K GET CHAN PROG TO SEARCH BY KE@V201101 00322000
- SETCHAN ST R1,CHNPROG SAVE CHAN PROG ADDRESS @V201101 00323000
- SR R5,R5 ... @V201101 00324000
- * 00325000
- TM LVSW,ALLOS SEARCHING ALL ADTS ? @V201101 00326000
- BO SRCHADTS YES..USE ADTNXT @V201101 00327000
- LA R1,FMODE-24 GET PLIST FOR ADTLKP @V201101 00328000
- L R15,VCADTLKP GET ADTLKP ADDRESS @VM03093 00329000
- BALR R14,R15 FIND ADT FOR ASSOCIATED MODE @V201101 00330000
- BZ CHKMORE DO MORE CHECKS @VA02610 00331000
- LA R1,FMODE GET FILEMODE ADDRESS @VA02610 00332000
- B BADMODE GIVE ERROR MSG @VA02610 00333000
- CHKMORE LR R5,R1 GET ADT ADDRESS IN REG 5 @VA02610 00334000
- TM ADTFLG2,ADTFROS IS IT AN O/S DISK ? @V201101 00335000
- BNZ SETSEEK YES..GO SET VTOC SEEK ADDR. @V201101 00336000
- LA R1,FMODE GET FILEMODE DISK IN ERROR @V201101 00337000
- B BADMODE2 GIVE ERROR MSG @VA02610 00338000
- * 00339000
- SRCHADTS LR R1,R5 GET NEXT ADT ADDRESS @V201101 00340000
- L R15,VCADTNXT GET ADTNXT ADDRESS @VM03093 00341000
- BALR R14,R15 FIND NEXT ADT @V201101 00342000
- BZ TESTADT FOUND..TEST FOR O/S DISK @V201101 00343000
- B TSTDSNF THAT IS ALL FOLKS @VA05780 00344000
- TESTADT LR R5,R1 GET ADT ADDR IN R5 @V201101 00346000
- TM ADTFLG2,ADTFROS IS IT O/S DISK ? @V201101 00347000
- BZ SRCHADTS NO..GET NEXT ONE THEN @V201101 00348000
- SETSEEK MVC CCHHR(5),OSADTVTA SET SEEK ADDRESS @V201101 00349000
- TM LVSW,FREESW+XTNTSW FREE OR EXTENT REQUEST ? @V305114 00350000
- BZ GOTDSN NO ... BR @V305114 00351000
- ************************************************************** 00352000
- * DETERMINE THE NUMBER OF TRACKS PER CYLINDER FOR FREE 00353000
- * REQUEST AND EXTENT REQUEST. 00354000
- ************************************************************** 00355000
- LA R7,CON20 PLUG 2314 TYPE TRKS PER CYL @V305066 00356000
- CLI OSADTDSK+3,T2314 2314 ? @V305114 00357000
- BE SETTC YES ... BR @V305114 00358000
- LA R7,CON19 PLUG 3330 TYPE TRACKS PER CYL @V305066 00359000
- CLI OSADTDSK+3,T3330 3330 ? @V305114 00360000
- BE SETTC YES ... BR @V305114 00361000
- CLI OSADTDSK+3,T333B 3330-11? @V505098 00361080
- BE SETTC YES ... BR @V505098 00361160
- LA R7,CON30 PLUG 3350 TRK/CYL @VA06168 00361250
- CLI OSADTDSK+3,T3350 IS IT A 3350? @VA06168 00361500
- BE SETTC YES ---- BRANCH @VA06168 00361750
- LA R7,CON15 PLUG 3380 TRK/CYL HRC004DS 00361810
- CLI OSADTDSK+3,T3380 IS IT A 3380? HRC004DS 00361870
- BE SETTC YES ---- BRANCH HRC004DS 00361930
- LA R7,CON12 PLUG 3340 TYPE TRACKS PER CYL @V305066 00362000
- SETTC STH R7,TRKCYL SET TRACKS PER CYL @V305114 00363000
- TM LVSW,DSN DSN SPECIFIED ? @V305114 00364000
- BO GOTDSN YES ... BR @V305114 00365000
- OI LVSW,DSFND INDICATE DATA SET FOUND @V305114 00366000
- TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 00367000
- BNO MAPVTOC MUST BE FREESPACE REQUEST @V305114 00368000
- SPACE 1 00369000
- OI LVSW,DSFND DATA SET AUTOMATICALLY FOUND @V305114 00370000
- OI XTNTFLG,VTOCFLG SET VTOC INDICATOR ON @V305114 00371000
- MVC DSNAME(5),VTOC PLUG 'VTOC' INTO DSN @V305114 00372000
- MVC DSNAME+5(39),DSNAME+4 CLEAR THE REST @V305114 00373000
- USING FMT1,R9 WE'LL FOOL THE XTNT ROUTINE @V305114 00374000
- LA R9,DSCB AND BUILD AN EXTENT FOR VTOC @V305114 00375000
- SPACE 1 00376000
- MVI X1SEQ,SEQ0 FORCE SEQ. NUM. TO ZERO @V305066 00377000
- MVC X1LCC(4),OSADTVTA PLUG LOW CYL AND HEAD @V305114 00378000
- MVC X1HCC(4),OSADTVTB PLUG HIGH CYL AND HEAD @V305114 00379000
- MVI XTNUM,EXT1 ONLY ONE EXTENT FOR VTOC @V305066 00380000
- B VTOCENT GET INTO NORMAL EXTENT ROUTINE @V305114 00381000
- DROP R9 @V305114 00382000
- SPACE 1 00383000
- ************************************************************** 00384000
- * THIS ROUTINE IS USED TO DETERMINE THE FREE SPACE EXTENTS ON 00385000
- * THE VTOC AND SET THE TRACK MAP BITS FOR THE VTOC. 00386000
- ************************************************************** 00387000
- MAPVTOC L R7,ADTCYL GET NUMBER OF CYLINDERS AND @V305114 00388000
- MH R7,TRKCYL CALCULATE TOTAL TRACKS ON DISK @V305114 00389000
- STH R7,TRKTOTAL SAVE THE TOTAL @V305114 00390000
- SRL R7,3 DIVIDE BY EIGHT FOR TRACK MAP @V305114 00391000
- LA R7,1(,R7) ADD 1 FOR POSSIBLE REMAINDER @V305114 00392000
- STH R7,MAPNUM AND SAVE THE BYTE COUNT @V305114 00393000
- SPACE 1 00394000
- GETMAIN R,LV=(7) @V305114 00395000
- LR R6,R1 SET ADR FOR CLEAR OP @V305114 00396000
- SR R8,R8 THIS WILL RESULT @V305114 00397000
- SR R9,R9 IN A CLEAR OPERATION @V305114 00398000
- MVCL R6,R8 BY MVCL @V305114 00399000
- SPACE 1 00400000
- ST R1,MAPAD SAVE TRACK MAP ADDRESS @V305114 00401000
- OI 0(R1),HEX80 TRACK 0 IS NEVER AVAILABLE @V305066 00402000
- LH R7,OSADTVTA GET LOW CYL @V305114 00403000
- MH R7,TRKCYL MULTIPLY BY TRACKS PER CYL @V305114 00404000
- LH R8,OSADTVTA+2 INSERT LOW TRACK NUMBER @V305114 00405000
- AR R7,R8 AND ADD TO THE REST @V305114 00406000
- LH R8,OSADTVTB DO THE SAME FOR @V305114 00407000
- MH R8,TRKCYL THE HIGH EXTENT @V305114 00408000
- LH R6,OSADTVTB+2 THEN DETERMINE THE @V305114 00409000
- AR R8,R6 NUMBER OF TRACKS @V305114 00410000
- SR R8,R7 IN THE EXTENT @V305114 00411000
- LA R8,1(,R8) PLUS 1 FOR TRUE TOTAL @V305114 00412000
- SPACE 1 00413000
- BAL R14,FILLMAP SET PROPER BITS ON IN TRACK MAP @V305114 00414000
- SPACE 1 00415000
- EJECT 1 00416000
- *************************************************************** 00417000
- * 00418000
- * READ AND VERIFY FORMAT 1 DSCB FOR DATA SET 00419000
- * 00420000
- *************************************************************** 00421000
- SPACE 1 00422000
- GOTDSN L R0,CHNPROG CHAN PROG TO READ FORMAT 1 DS@V201101 00423000
- BAL R14,DISKIO GO READ IT @V201101 00424000
- B DSCB1UC UNIT CHECK DURING I/O @V201101 00425000
- B DSCB1SLI POSSIBLE INCORRECT LENGTH @V201101 00426000
- B GOTDSCB1 DATA SET FOUND @V201101 00427000
- * 00428000
- DSCB1UC BAL R14,CHKSENSE GO CHECK SENSE DATA @V201101 00429000
- TM SNSEBYTE,X'09' NO REC FOUND OR OVERFLOW ? @V201101 00430000
- BNZ VTOCERR IF ANY..VTOC I/O ERROR @V201101 00431000
- TM SNSEBYTE,X'20' WAS IT CYLINDER END ? @V201101 00432000
- BZ VTOCERR NO..ASSUME VTOC I/O ERROR @V201101 00433000
- BAL R14,INCRCYL GO INCREMENT CYLINDER ADDRESS@V201101 00434000
- * 00435000
- CHKXTNT1 CLC CCHHR(4),OSADTVTB EXCEEDS UPPER LIM OF VTOC? @VA03666 00436000
- BNH GOTDSN NO.. GO TRY NEXT CYLINDER @VA03666 00437000
- TM LVSW,FREESW FREE OPTION PROCESSING ? @V305101 00438000
- BO TYPFREE YES, FINISH UP FREE LIST @V305101 00439000
- SRCHDISK TM LVSW,ALLOS MORE DISKS TO SEARCH ? @VA05780 00440000
- BO SRCHADTS YES - GET NEXT ADT @VA05780 00440200
- B TSTDSNF GO TEST FOR DATA SET FOUND @VA05780 00440400
- * 00445000
- DSCB1SLI EQU * @VA06431 00446500
- TM LVSW,FREESW FREE OPTION SPECIFIED ? @VA05780 00447200
- BO TYPFREE YES - FREE OPTION PROCESSING @VA05780 00447400
- B SRCHDISK GO TEST FOR MORE DISKS @VA05780 00447600
- * 00449000
- GOTDSCB1 TM LVSW,FREESW FREE OPTION SPECIFIED ? @V305114 00450000
- BO FREEREQ YES ... BR @V305114 00451000
- TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 00452000
- BO XTNTREQ YES ... BR @V305114 00453000
- CLI DSCB1+44-44,C'1' IS IT FORMAT 1 DSCB ? @V201101 00454000
- BE CHKDSCB1 YES..CHECK ALL FIELDS @V201101 00455000
- * 00456000
- GETNXT TM LVSW,DSN SEARCHING BY KEY ? @V201101 00457000
- BNO BLNKDSN NO..BLANK OUT DSNAME @V201101 00458000
- TM LVSW,ALLOS SEARCHING ALL DISKS ? @V201101 00459000
- BO SRCHADTS YES..GET NEXT O/S DISK @V201101 00460000
- B EXIT IF NOT..RETURN @V201101 00461000
- BLNKDSN NI LVSW,255-MEMHDG SET TO TYPE MEMBER HEADING @V201101 00462000
- LA R2,DSNAME GET DSNAME ADDRESS @V201101 00463000
- MVI 0(R2),BLANK PREPARE TO BLANK @V201101 00464000
- MVC 1(43,R2),0(R2) OUT DSNAME FIELD @V201101 00465000
- MVC CCHHR(5),NEXTSEEK GET NEXT FROMAT 1 DSCB @V201101 00466000
- B CHKXTNT1 ..... @V305114 00467000
- EJECT 1 00468000
- CHKDSCB1 TM LVSW,DSHDNG FIRST TIME THROUGH ? @V201101 00469000
- BO CHKDSN NO..PROCESS DSCB1 @V201101 00470000
- OI LVSW,DSHDNG+DSFND MAIN HEADING TYPED..DATA SET @V201101 00471000
- LA R10,LVHEAD(R6) GET HEADING ADDRESS @V201101 00472000
- STCM R10,B'0111',LVBUFF+1 STORE IN TYPLIN LIST @V201101 00473000
- LA R1,LVLINE GET HEADING ADDRESS @V201101 00474000
- SVC 202 TYPE HEADING @V201101 00475000
- DC AL4(*+4) ... @V201101 00476000
- * 00477000
- CHKDSN LA R10,LVDSN GET DSNAME AREA @V201101 00478000
- MVC 0(44,R10),DSNAME MOVE FOUND DSNAME @V201101 00479000
- * 00480000
- LA R10,LVREC GET LRECL AREA @V201101 00481000
- TM DSCB1+84-44,U IS RECFM U ? @V201101 00482000
- BM CHKF NO..CHECK FOR FIXED @V201101 00483000
- BZ CHKLREC IF ZERO..NO RECFM SPEC. @V201101 00484000
- MVI 0(R10),C'U' SET RECFM U @V201101 00485000
- LA R10,1(,R10) UP RECFM POINTER @V201101 00486000
- B CHKS KEEP CHECKING @V201101 00487000
- * 00488000
- CHKF TM DSCB1+84-44,F IS RECFM FIXED ? @V201101 00489000
- BZ CHKV NO..MUST BE VAR. @V201101 00490000
- MVI 0(R10),C'F' MOVE F TO RECFM @V201101 00491000
- B CHKV+4 KEEP CHECKING @V201101 00492000
- * 00493000
- CHKV MVI 0(R10),C'V' MOVE V TO RECFM @V201101 00494000
- LA R10,1(,R10) UP RECFM POINTER @V201101 00495000
- * 00496000
- CHKB TM DSCB1+84-44,B BLOCKED RECORDS ? @V201101 00497000
- BZ CHKS NO..SEE IF SPANNED @V201101 00498000
- MVI 0(R10),C'B' MOVE B TO RECFM @V201101 00499000
- LA R10,1(,R10) UP RECFM POINTER @V201101 00500000
- * 00501000
- CHKS TM DSCB1+84-44,S SPANNED RECORDS ? @V201101 00502000
- BZ CHKT NO..SEE IF TRK OVFLW @V201101 00503000
- MVI 0(R10),C'S' MOVE S TO RECFM @V201101 00504000
- LA R10,1(,R10) UP RECFM POINTER @V201101 00505000
- * 00506000
- CHKT TM DSCB1+84-44,T TRK OVFLW ? @V201101 00507000
- BZ CHKA NO..CHECK CONTROL CHAR. @V201101 00508000
- MVI 0(R10),C'T' MOVE T TO RECFM @V201101 00509000
- LA R10,1(,R10) UP RECFM POINTER @V201101 00510000
- * 00511000
- CHKA TM DSCB1+84-44,A+M CONTROL A OR M ? @V201101 00512000
- BZ CHKLREC NONE..PROCESS LRECL @V201101 00513000
- TM DSCB1+84-44,A IS IT A ? @V201101 00514000
- BZ CHKM NO..MUST BE MACHINE CODE @V201101 00515000
- MVI 0(R10),C'A' MOVE A TO RECFM @V201101 00516000
- B CHKLREC GO CHECK LRECL @V201101 00517000
- CHKM MVI 0(R10),C'M' MOVE M TO RECFM @V201101 00518000
- EJECT 1 00519000
- * 00520000
- CHKLREC LH R9,DSCB1+88-44 GET LRECL FROM DSCB @V201101 00521000
- LA R10,LVLRL GET LRECL POINTER @V201101 00522000
- BAL R14,CONVERT CONVERT LRECL @V201101 00523000
- * 00524000
- LH R9,DSCB1+86-44 GET BLKSIZE FROM DSCB @V201101 00525000
- LA R10,LVBLK GET BLKSIZE POINTER @V201101 00526000
- BAL R14,CONVERT CONVERT BLKSIZE @V201101 00527000
- * 00528000
- SR R9,R9 ... @V201101 00529000
- IC R9,DSCB1+53-44 GET YEAR FROM DSCB @V201101 00530000
- LA R10,LVYY GET YEAR POINTER @V201101 00531000
- BAL R14,CONVERT CONVERT YEAR @V201101 00532000
- * 00533000
- SR R8,R8 ... @V201101 00534000
- D R8,=F'4' DIVIDE YEAR BY 4 @V201101 00535000
- LTR R8,R8 IS IT LEAP YEAR ? @V201101 00536000
- BZ LEAPYR YES..BRANCH @V201101 00537000
- MVI FEB+1,X'1C' MAKE FEB 28 DAYS @V201101 00538000
- B CHKMMDD BRANCH.. @V201101 00539000
- LEAPYR MVI FEB+1,X'1D' MAKE FEB 29 DAYS @V201101 00540000
- CHKMMDD LA R8,1 GET FIRST MONTH @V201101 00541000
- LH R9,DSCB1+54-44 GET DAYS FROM DSCB @V201101 00542000
- LA R10,JAN GET FIRST MONTH ADDRESS @V201101 00543000
- * 00544000
- MMDDLUP CH R9,0(,R10) HIGHER THAN DAYS IN MO ? @V201101 00545000
- BNH DONE NO..ALL DONE WITH MMDD @V201101 00546000
- SH R9,0(,R10) SUB DAYS IN LAST MO. @V201101 00547000
- LA R8,1(,R8) UP TO NEXT MO. @V201101 00548000
- LA R10,2(,R10) ... @V201101 00549000
- B MMDDLUP @V201101 00550000
- * 00551000
- DONE LA R10,LVDD GET DAY POINTER @V201101 00552000
- BAL R14,CONVERT CONVERT DAYS @V201101 00553000
- LR R9,R8 GET MONTH NUMBER @V201101 00554000
- LA R10,LVMM GET MONTH POINTER @V201101 00555000
- BAL R14,CONVERT CONVERT MONTH @V201101 00556000
- MVI LVSL1,SLASH MOVE / TO BUFFER @V201101 00557000
- MVI LVSL2,SLASH .... @V201101 00558000
- * 00559000
- LA R9,LOOP7 @VA06395 00560100
- LA R10,DSORGS GET DSORG TABLE @V201101 00561000
- CHKDSORG CLC DSCB1+82-44(2),0(R10) FIND DSORG CODE @V305114 00562000
- BE MVDSORG IF FOUND..MOVE IT @V201101 00563000
- LA R10,6(,R10) POINT TO NEXT CODE @V305114 00564000
- BCT R9,CHKDSORG LOOP TILL FOUND @V201101 00565000
- B MVEMODE NO DSORG.. @V201101 00566000
- * 00567000
- MVDSORG MVC LVDSO(4),2(R10) MOVE DSORG TO BUFFER @V305114 00568000
- MVEMODE MVC LVMOD(1),ADTM MOVE FMODE TO BUFFER @V201101 00569000
- MVC LVLAB(6),ADTID MOVE LABEL TO BUFFER @V201101 00570000
- * 00571000
- EJECT 1 00572000
- * 00573000
- LINEOK LA R10,LVBUF(R6) GET LINE TO TYPE @V201101 00574000
- STCM R10,B'0111',LVBUFF+1 STORE IN TYPLIN LIST @V201101 00575000
- LH R7,LVLNTH+2 GET LENGTH OF LINE @VA04829 00575500
- LA R1,LVLINE GET TYPLIN LIST @V201101 00576000
- SVC 202 TYPE THE LINE @V201101 00577000
- DC AL4(*+4) ... @V201101 00578000
- * 00579000
- MVI 0(R10),C' ' PREPARE TO BLANK BUFFER @V201101 00580000
- SH R7,=H'2' LESS 2 FOR MVC @V201101 00581000
- EX R7,BLNKBUF ... @V201101 00582000
- AH R7,=H'2' RESET REG. @V201101 00583000
- TM LVSW,MEM USER WANTS MEMBERS LISTED ? @V201101 00584000
- BZ GETNXT NO..GET NEXT FORMAT 1 DSCB @V201101 00585000
- CLI DSCB1+82-44,PO IS DATA SET PARTITIONED ? @V201101 00586000
- BE MEMBERS YES - LIST MEMBERS @VA06395 00587100
- CLI DSCB1+82-44,POU IS DATA SET PARTITIONED? @VA06395 00587600
- BE MEMBERS YES - LIST MEMBERS @VA06395 00588100
- B GETNXT NO - GET NEXT FORMAT 1 DSCB @VA06395 00588600
- * 00589000
- BLNKBUF MVC 1(0,R10),0(R10) MVC TO BLANK BUFFER @V201101 00590000
- * 00591000
- CONVERT CVD R9,CVDWK CONVERT TO DECIMAL @V201101 00592000
- UNPK UNPKWK(5),CVDWK+3(5) MOVE TO WORK AREA @V201101 00593000
- OI UNPKWK+4,X'F0' FIX LAST BYTE @V201101 00594000
- LA R1,UNPKWK AREA ADDRESS @V201101 00595000
- LA R2,4 AREA LENGHT LESS 1 @V201101 00596000
- CHKZERO CLI 0(R1),X'F0' IS BYTE ZERO ? @V201101 00597000
- BNE MOVEIT NO..MOVE KEY WORD @V201101 00598000
- LA R1,1(0,R1) UP AREA BY ONE @V201101 00599000
- BCT R2,CHKZERO KEEP SEARCHING.. @V201101 00600000
- CLI 0(R1),X'F0' IS LAST BYTE ZERO ? @V201101 00601000
- BCR 8,R14 YES..RETURN @V201101 00602000
- BCTR R1,0 PRECEDE ONLY NON-ZERO @V201101 00603000
- LA R2,1(,R2) BYTE WITH A ZERO @V201101 00604000
- MOVEIT EX R2,KEYMOVE MOVE TO BUFFER @V201101 00605000
- BR R14 RETURN TO CALLER @V201101 00606000
- * 00607000
- KEYMOVE MVC 0(0,R10),0(R1) ... @V201101 00608000
- * 00609000
- EJECT 1 00610000
- *************************************************************** 00611000
- * 00612000
- * TO PROCESS MEMBERS WE LET 'FIND' ROUTINE IN 00613000
- * DMSROS DO THE WORK..UPON RETURN, THE MEMBER 00614000
- * NAME WILL BE IN THE FCBMEMBR FIELD OF THE FCB. 00615000
- * 00616000
- *************************************************************** 00617000
- SPACE 1 00618000
- MEMBERS LA R1,FINDFDF GET $LISTDS$ FILEDEF LIST @V201101 00619000
- IC R3,FMODE SAVE FMODE TEMPORARILY @V201122 00620000
- MVC FMODE(1),ADTM SET FMODE TO ADT MODE @V201101 00621000
- SVC 202 FILEDEF IT @V201101 00622000
- DC AL4(*+4) ... @V201101 00623000
- LPR R7,R0 GET FCB ADDRESS @V305114 00624000
- USING FCBSECT,R7 FCB ADDRESSABILITY @V305114 00625000
- OI FCBIOSW2,FCBMVPDS SET FLAG FOR MEMBER FIND @V201101 00626000
- XC FCBMEMBR(8),FCBMEMBR CLEAR MEMBER FIELD @V201101 00627000
- LA R1,DSNAME GET DSNAME ADDRESS @V201101 00628000
- ST R1,FCBOSDSN SAVE IF FCB @V201101 00629000
- MVC STTFM,FMODE SET FILEMODE IS STATE PLIST @V201101 00630000
- LA R1,FINDSTT GET STATE PLIST ADDR @V201101 00631000
- SVC 202 STATE WITH DSN @V201101 00632000
- DC AL4(*+4) ... @V201101 00633000
- STC R3,FMODE RESTORE FMODE @V201122 00634000
- LR R10,R5 SAVE ADT ADDR. @V201101 00635000
- MEMINT LA R2,MNAMES GET MEMBER NAMES BUFFER @V201101 00636000
- LA R3,8 GET NUMBER NAMES IN BUFF @V201101 00637000
- GETMEM L R15,ADMSROS GET DMSROS ADDRESS @V201101 00638000
- LA R9,FCBMEMBR PASS ADDR OF CURRENT MEMBR NA@V201101 00639000
- LR R1,R11 SAVE BASE REG FROM DMSROS @V305114 00640000
- LR R11,R7 GET FCBSECT ADDRESSABILITY @V305114 00641000
- BAL R14,12(,R15) GO TO FIND ROUTINE IN DMSROS @V201101 00642000
- LR R11,R1 RESTORE BASE @V305114 00643000
- LTR R14,R15 ANY ERRORS ? @V201101 00644000
- BNZ TYPELINE YES..GO PRINT BUFFER @V201101 00645000
- TM LVSW,MEMHDG MEMBER HEADING TYPED ? @V201101 00646000
- BO MEMOK YES..BRANCH @V201101 00647000
- LA R1,MEMBER GET MEMBER HEADING @V201101 00648000
- STCM R1,B'0111',MEMBUFF+1 SAVE ADDR IN TYPLIN LIST @V201101 00649000
- LA R1,L'MEMBER GET LENGTH MEMBER HEADING @V201101 00650000
- STCM R1,B'0111',MEMLNTH+1 SAVE LNTH IN TYPLIN LIST @V201101 00651000
- LA R1,MEMLINE GET TYPLIN LIST ADDR @V201101 00652000
- SVC 202 TYPE MEMBER HEADING @V201101 00653000
- DC AL4(*+4) ... @V201101 00654000
- OI LVSW,MEMHDG SET MEMBER HDNG TYPED @V201101 00655000
- MEMOK MVC 0(8,R2),FCBMEMBR MOVE MEMBER NAME TO BUFFER @V201101 00656000
- LA R2,9(,R2) UP BUFFER POINTER @V201101 00657000
- BCT R3,GETMEM KEEP SEARCHING @V201101 00658000
- EJECT 1 00659000
- TYPELINE LA R3,MNAMES GET BEGIN OF BUFFER @V201101 00660000
- SR R2,R3 GET LENGTH OF BUFFER @V201101 00661000
- LTR R2,R2 ANYTHING IN BUFFER ? @V201101 00662000
- BZ POSSEOF NO..DO NOT TYPE LINE @V201101 00663000
- STCM R2,B'0111',MEMLNTH+1 SAVE BUFF LNTH IN TYPLIN L@V201101 00664000
- STCM R3,B'0111',MEMBUFF+1 SAVE BUFF ADDR IN TYPLIN L@V201101 00665000
- LA R1,MEMLINE GET TYPLIN LIST ADDR @V201101 00666000
- SVC 202 TYPE MEMBER NAMES @V201101 00667000
- DC AL4(*+4) ... @V201101 00668000
- POSSEOF LTR R15,R14 ANY RETURN CODE FROM FIND ? @V201101 00669000
- BZ MEMINT NO..KEEP LOOKING FOR MEMBERS @V201101 00670000
- XC FCBOSDSN,FCBOSDSN CLEAR DSN POINTER IN FCB @V201101 00671000
- LR R5,R10 RESTORE ADT ADDR @V201122 00672000
- CH R15,H8 I/O ERROR IN FIND ROUTINE ? @V201101 00673000
- BE IOERROR YES..GIVE ERROR MSG @V201101 00674000
- TM LVSW,MEMHDG ANY MEMBERS FOUND @V201101 00675000
- BZ NOMEMS NO..TELL USER @V201101 00676000
- SRCHON XC MEMLNTH+1(3),MEMLNTH+1 ZERO LNTH IN TYPLIN LIST@V201122 00677000
- LA R1,MEMLINE GET TYPLIN LIST ADDRESS @V201101 00678000
- SVC 202 JUST TYPE A NULL LINE @V201101 00679000
- DC AL4(*+4) ... @V201101 00680000
- NI LVSW,255-DSHDNG TYPE MAIN HEADING FOR NEXT D.@V201101 00681000
- B GETNXT RETURN..IT IS EOF @V201101 00682000
- EJECT 00683000
- FREEREQ EQU * @V305114 00684000
- LA R9,DSCB ADDRESS DSCB READ @V305114 00685000
- MVC CCHHR(5),NEXTSEEK GET NEXT DSCB @V305114 00686000
- CLI DSCB+44,DSCBONE FORMAT 1 DSCB ? @V305066 00687000
- BNE FREEFM3 NO ... SEE IF FORMAT 3 @V305114 00688000
- SPACE 1 00689000
- USING FMT1,R9 @V305114 00690000
- LA R3,POSEXT EXTENTS POSSIBLE THIS DSCB @V305066 00691000
- MVC XTNUM(1),F1XNUM SAVE NUMBER OF EXTENTS @V305114 00692000
- SR R4,R4 CLEAR FOR ICM @V305114 00693000
- ICM R4,BIN0001,XTNUM EXTENT COUNT HERE TOO @V305066 00694000
- LA R1,X1TYP POINT TO EXTENT TYPE @V305114 00695000
- XLOOP CLI 0(R1),SPLITX SPLIT CYLINDERS ? @V305114 00696000
- BNE XLOOP1 NO ... BR @V305114 00697000
- OI FREEFLG,SPLIT TELL XCALC @V305114 00698000
- SPACE 1 00699000
- XLOOP1 BAL R14,XCALC SET EXTENT BITS IN TRKMAP @V305114 00700000
- CLI 0(R1),LABX LABEL EXTENTS NOT COUNTED @V305114 00701000
- BE MOREX IN EXTENT COUNT FIELD @V305114 00702000
- BCT R4,MOREX MORE EXTENTS ? @V305114 00703000
- B CHKXTNT1 NO ... GET NEXT DSCB @V305114 00704000
- MOREX BCT R3,NEXTX YES, GET ALL FROM THIS DSCB ? @V305114 00705000
- B CHKXTNT1 YES ... GET NEXT DSCB @V305114 00706000
- NEXTX LA R1,10(,R1) BUMP TO NEXT TYPE @V305114 00707000
- B XLOOP AND CONTINUE @V305114 00708000
- SPACE 1 00709000
- FREEFM3 EQU * @V305114 00710000
- CLI DSCB+44,FORM3 FORMAT 3 ? @V305066 00711000
- BNE CHKXTNT1 NO ... GET ANOTHER ONE @V305114 00712000
- SPACE 1 00713000
- USING FMT3,R9 @V305114 00714000
- LA R3,MAXEXT13 MAX EXTENTS THIS DSCB @V305066 00715000
- LA R1,X4TYP POINT TO 1ST FMT3 EXTENT @V305114 00716000
- SPACE 1 00717000
- F3LOOP CLI 0(R1),CHAR3 WE MUST SKIP OVER @V305066 00718000
- BNE NOSKIP THE FMTID BYTE @V305114 00719000
- LA R1,1(,R1) .... @V305114 00720000
- NOSKIP EQU * @VA09107 00720400
- CLI 0(R1),HEX00 NO EXTENT INDICATOR? @VA09107 00720800
- BE CHKXTNT1 GET NEXT DSCB @VA09107 00721200
- CLI 0(R1),SPLITCYL SPLIT CYLINDER EXTENT? @VA09107 00721600
- BNE NOSPLIT NO ... BR @V305114 00722000
- OI FREEFLG,SPLIT TELL XCALC @V305114 00723000
- SPACE 1 00724000
- NOSPLIT BAL R14,XCALC SET EXTENT BITS IN TRKMAP @V305114 00725000
- SPACE 1 00728000
- MORE3X BCT R3,NEXT3X GET ALL FROM THIS DSCB ? @V305114 00729000
- B CHKXTNT1 YES, GET NEXT DSCB @V305114 00730000
- NEXT3X LA R1,10(,R1) BUMP EXTENT POINTER @V305114 00731000
- B F3LOOP AND CONTINUE @V305114 00732000
- EJECT 00733000
- ************************************************************** 00734000
- * THE TYPFREE ROUTINE SEARCHES THE TRACK MAP FOR FREE SPACE 00735000
- * AND ASSEMBLES THE OUTPUT LINES CONTAINING THE FREESPACE 00736000
- * EXTENTS FOR THE TERMINAL. 00737000
- ************************************************************** 00738000
- TYPFREE EQU * @V305114 00739000
- ST R5,SAVADT SAVE CURRENT ADT ADDRESS @V305114 00740000
- LINEDIT TEXT='FREESPACE EXTENTS FOR ''..'' DISK:',DOT=NO,SUB=(X00741000
- CHARA,(ADTM,1)) @V305114 00742000
- LA R10,LVBUF ESTABLISH ADDRESSABILITY @V305114 00743000
- USING FDATA,R10 FOR DATA LINE BUFFER @V305114 00744000
- L R4,MAPAD POINT TO TRACK MAP @V305114 00745000
- SR R5,R5 CLEAR CYL NUMBER @V305114 00746000
- SR R6,R6 CLEAR HEAD NUMBER @V305114 00747000
- LH R8,TRKTOTAL AND NUMBER OF BITS IN TRKMAP @V305114 00748000
- INITBIT LA R7,EIGHT INITIALIZE BIT COUNTER @V305066 00749000
- LA R9,CON128 INITIALIZE BIT COMPARE REG @V305066 00750000
- SPACE 1 00751000
- FREELOOP EX R9,FREETM TEST FOR BIT ALLOCATED @V305114 00752000
- BO BITON BRANCH IF ALLOCATED @V305114 00753000
- OI FREEFLG,SPACE THERE IS SOME SPACE HERE @V305114 00754000
- SPACE 1 00755000
- TM FREEFLG,HDG HEADING TYPED YET ? @V305114 00756000
- BO HDTYPD YES ... BR @V305114 00757000
- OI FREEFLG,HDG OTHERWISE, SET THE FLAG.. @V305114 00758000
- LA R2,CON41 SET THE HEADING LINE LENGTH @V305066 00759000
- LA R3,FHEAD POINT TO THE HEADING @V305114 00760000
- BAL R14,TYPF AND TYPE IT @V305114 00761000
- SPACE 1 00762000
- HDTYPD TM FREEFLG,ON IF SWITCH IS OFF, THIS IS THE @V305114 00763000
- BO INFREE 1ST BIT OF A FREE SPACE @V305114 00764000
- SPACE 1 00765000
- OI FREEFLG,ON TURN SWITCH ON @V305114 00766000
- SR R3,R3 INITIALIZE TRACK COUNT @V305114 00767000
- LR R1,R5 GET CYL NUMBER @V305114 00768000
- STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00769000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00770000
- MVC LCYL(3),2(R1) AND MOVE TO DATA LINE @V305114 00771000
- SPACE 1 00772000
- LR R1,R6 GET HEAD NUMBER @V305114 00773000
- STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00774000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00775000
- MVC LHD(2),3(R1) AND MOVE TO DATA LINE @V305114 00776000
- SPACE 1 00777000
- LH R1,TRKCYL NUMBER OF TRACKS PER CYL @V305114 00778000
- MH R1,CYLTEMP TIMES CYLINDER NUMBER @V305114 00779000
- AH R1,HDTEMP PLUS HEAD NUMBER @V305114 00780000
- BAL R14,EDCNT1 UNPACK AND EDIT @V305114 00781000
- MVC RELTRK1(5),UNPKWK+3 PLUG RELTRK INTO LINE @V305114 00782000
- SPACE 1 00783000
- INFREE LA R3,1(,R3) ADD 1 TO TRACK COUNT @V305114 00784000
- B NOTFUL GO ADVANCE POINTERS @V305114 00785000
- SPACE 1 00786000
- BITON EQU * TRACK IS ALLOCATED @V305114 00787000
- TM FREEFLG,ON START OF AN ALLOCATED EXTENT ? @V305114 00788000
- BNO NOTFUL NO ... BR @V305114 00789000
- NI FREEFLG,255-ON RESET THE SWITCH @V305114 00790000
- LTR R1,R6 GET HEAD NUMBER @V305114 00791000
- BNZ NOADJ IF CURRENTLY 0 ADJUST CYL @V305114 00792000
- SPACE 1 00793000
- LH R1,TRKCYL GET THE LARGEST HEAD VALUE @V305114 00794000
- BCTR R1,R0 ........ @V305114 00795000
- STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00796000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00797000
- MVC HHD(2),3(R1) AND MOVE TO DATA LINE @V305114 00798000
- LR R1,R5 GET CYLINDER NUMBER @V305114 00799000
- BCTR R1,R0 AND DECREMENT @V305114 00800000
- STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00801000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00802000
- MVC HCYL(3),2(R1) AND MOVE TO DATA LINE @V305114 00803000
- B SETTRKS GO SET TRKS FIELD @V305114 00804000
- SPACE 1 00805000
- NOADJ BCTR R1,R0 DECREMENT HEAD NUMBER @V305114 00806000
- LASFIL2 STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00807000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00808000
- MVC HHD(2),3(R1) AND MOVE TO DATA LINE @V305114 00809000
- LR R1,R5 GET CYLINDER NUMBER @V305114 00810000
- STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00811000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00812000
- MVC HCYL(3),2(R1) AND MOVE TO DATA LINE @V305114 00813000
- SPACE 1 00814000
- SETTRKS LH R1,TRKCYL TRACKS PER CYLINDER @V305114 00815000
- MH R1,CYLTEMP TIMES CYLINDER NUMBER @V305114 00816000
- AH R1,HDTEMP PLUS HEAD NUMBER @V305114 00817000
- BAL R14,EDCNT1 UNPACK AND EDIT @V305114 00818000
- MVC RELTRK2(5),UNPKWK+3 PLUG RELTRKS INTO LINE @V305114 00819000
- SPACE 1 00820000
- CVD R3,CVDWK MAKE NUMBER OF TRACKS @V305114 00821000
- BAL R14,EDCNT3 NOW GO EDIT @V305114 00822000
- MVC FTRKS(5),UNPKWK+3 MOVE TO DATA LINE @V305114 00823000
- SPACE 1 00824000
- LA R2,CON41 SET LINE LENGTH @V305066 00825000
- LA R3,LVBUF NOW POINT TO DATA LINE @V305114 00826000
- BAL R14,TYPF AND TYPE LINE @V305114 00827000
- SPACE 1 00828000
- NOTFUL BCTR R8,R0 DECREMENT MAP BIT COUNT @V305114 00829000
- LTR R8,R8 IF ZERO ... @V305114 00830000
- BZ LASFIL1 WE'RE DONE @V305114 00831000
- BM CHKANY MINUS IF END OF PACK FREE @V305114 00832000
- SPACE 1 00833000
- LA R6,1(,R6) BUMP HEAD NUMBER @V305114 00834000
- CH R6,TRKCYL WAS THAT LAST HEAD ON CYL ? @V305114 00835000
- BL BITDECR NO ... BR @V305114 00836000
- SR R6,R6 YES, ZERO HEAD NUMBER @V305114 00837000
- LA R5,1(,R5) AND BUMP THE CYLINDER NUMBER @V305114 00838000
- SPACE 1 00839000
- BITDECR BCT R7,INBYTE BR IF STILL IN BYTE BOUNDARY @V305114 00840000
- LA R4,1(,R4) BUMP MAP POINTER @V305114 00841000
- B INITBIT AND INITIALIZE BIT COMPARE REG @V305114 00842000
- SPACE 1 00843000
- INBYTE SRL R9,1 SHIFT BIT COMPARE REG @V305114 00844000
- B FREELOOP AND CHECK NEXT BIT @V305114 00845000
- SPACE 1 00846000
- LASFIL1 TM FREEFLG,ON LAST TRACK ALLOCATED ? @V305114 00847000
- BNO CHKANY YES ... BR @V305114 00848000
- LR R1,R6 NECESSARY FOR FREESPACE AT @V305114 00849000
- B LASFIL2 END OF PACK @V305114 00850000
- SPACE 1 00851000
- CHKANY L R5,SAVADT RESTORE ADT POINTER @V305114 00852000
- TM FREEFLG,SPACE ANY SPACE AVAILABLE @V305114 00853000
- BNO NOSPACE TELL USER ABOUT IT @V305114 00854000
- SPACE 1 00855000
- FEXIT L R7,MAPAD POINT TO FREE STOR ADDRESS @V305114 00856000
- LH R6,MAPNUM AND ITS' LENGTH @V305114 00857000
- FREEMAIN R,LV=(6),A=(7) @V305114 00858000
- NI FREEFLG,255-(SPACE+HDG+ON) RESET FLAG BITS @V305114 00859000
- TM LVSW,ALLOS MULTI-DISK REQUEST ? @V305114 00860000
- BO SRCHADTS YES, BR @V305114 00861000
- B EXIT NOW EXIT LISTDS @V305114 00862000
- SPACE 1 00863000
- FREETM TM 0(R4),HEX00 TEST FOR BIT ALLOCATED @V305066 00864000
- EJECT 00865000
- XTNTREQ EQU * @V305114 00866000
- TM XTNTFLG,FM3SW DON'T CHECK FOR END OF VTOC @V305114 00867000
- BO SKENDCK IF A FORMAT 3 DSCB IS EXPECTED @V305114 00868000
- CLC NEXTSEEK(4),OSADTVTB AT END OF VTOC ? @V305114 00869000
- BH PREEXIT YES ... BR @V305114 00870000
- SKENDCK LA R9,DSCB POINT TO DSCB READ IN AREA @V305114 00871000
- CLI DSCB+44,DSCBONE FORMAT 1 ? @V305066 00872000
- BNE CHKFM3X NO ... BR @V305114 00873000
- SPACE 1 00874000
- OI LVSW,DSFND FOUND A DATA SET @V305114 00875000
- USING FMT1,R9 ESTABLISH ADDRESSABILITY @V305114 00876000
- MVC TCCHHR(5),NEXTSEEK SAVE FOR NEXT FMT1 SEARCH @V305114 00877000
- MVC XTNUM(1),F1XNUM GET NUMBER OF EXTENTS @V305114 00878000
- VTOCENT SR R4,R4 ALSO SAVE THAT NUMBER @V305114 00879000
- ICM R4,BIN0001,XTNUM .... @V305066 00880000
- SPACE 1 00881000
- SR R2,R2 SPACE A LINE BETWEEN @V305114 00882000
- BAL R14,TYPF GROUPS OF EXTENTS @V305114 00883000
- SPACE 1 00884000
- LINEDIT SUB=(CHARA,DSNAME,CHARA,(ADTM,1)),TEXT='EXTENT INFORMAX00885000
- TION FOR ''............................................'X00886000
- ' ON ''..'' DISK:',DOT=NO,RENT=NO @V305114 00887000
- LA R2,CON51 SET LINE LENGTH PERMANENTLY @V305066 00888000
- LA R3,XHEAD POINT TO EXTENT HEADER @V305114 00889000
- BAL R14,TYPF AND TYPE @V305114 00890000
- SPACE 1 00891000
- LA R3,LVBUF POINT TO DATA AREA @V305114 00892000
- USING XDATA,R3 ESTABLISH DSECT ADDRESSABILITY @V305114 00893000
- LA R7,X1TYP POINT TO EXTENT TYPE @V305114 00894000
- LA R6,MAXEXT3 MAX EXTENTS THIS DSCB @V305066 00895000
- SPACE 1 00896000
- TYLOOP1 BAL R14,TYLOOP BUILD AND TYPE THE EXTENT DATA @V305114 00897000
- CLI 0(R7),LABX LABEL EXTENT NOT COUNTED @V305114 00898000
- BE MOREA IN EXTENT COUNT FIELD @V305114 00899000
- BCT R4,MOREA BRANCH IF MORE DS EXTENTS @V305114 00900000
- B EXEXIT OTHERWISE, WE MAY BE DONE @V305114 00901000
- SPACE 1 00902000
- MOREA LA R7,10(,R7) BUMP TO NEXT EXTENT @V305114 00903000
- BCT R6,TYLOOP1 LOOP IF MORE FMT1 EXTENTS @V305114 00904000
- SKIPF2 EQU * RESET AFTER FORMAT2 DSCB @VA09881 00904500
- LA R1,RDDSCB3 BETTER CHANGE THE CCW CHAIN @V305114 00905000
- ST R1,CHNPROG .... @V305114 00906000
- OI XTNTFLG,FM3SW DON'T IGNORE FORMAT 3 DSCB @V305114 00907000
- MVC CCHHR(5),F1PTR PLUG FMT3 CCHHR @V305114 00908000
- B GOTDSN AND GO GET FMT3 DSCB @V305114 00909000
- SPACE 1 00910000
- ************************************************************** 00911000
- * PROCESS FORMAT 3 DSCB EXTENTS. 00912000
- ************************************************************** 00913000
- CHKFM3X EQU * @V305114 00914000
- TM XTNTFLG,FM3SW EXPECTING A FORMAT 3 DSCB ? @V305114 00915000
- BNO EXEXIT NO, JUST LOOKING FOR FORMAT 1 @V305114 00916000
- CLI DSCB+44,FORM2 FORMAT 2 DSCB (ISAM)? @VA09881 00916300
- BE SKIPF2 YES, SKIP AND GET FORMAT 3 @VA09881 00916600
- CLI DSCB+44,FORM3 THIS HAS TO BE A FORMAT 3 DSCB @V305066 00917000
- BNE VTOCERR ELSE, ERROR @V305114 00918000
- USING FMT3,R9 ESTABLISH ADDRESSABILITY @V305114 00919000
- LA R6,MAXEXT13 MAX EXTENTS THIS DSCB @V305066 00920000
- LA R7,X4TYP POINT TO 1ST FMT3 EXTENT @V305114 00921000
- SPACE 1 00922000
- TYLOOP3 BAL R14,TYLOOP BUILD AND TYPE LINE @V305114 00923000
- LA R7,10(,R7) BUMP EXTENT POINTER @V305114 00924000
- CLI 0(R7),HEXF3 WE MUST SKIP OVER @V305066 00925000
- BNE SKFID THE FORMAT IDENTIFIER @V305114 00926000
- LA R7,1(,R7) ...... @V305114 00927000
- SPACE 1 00928000
- SKFID BCT R4,MORE3A ANY EXTENTS LEFT THIS DS ? @V305114 00929000
- B EXEXIT NO, WE'RE DONE @V305114 00930000
- MORE3A BCT R6,TYLOOP3 MORE THIS DSCB ? @V305114 00931000
- MVC CCHHR(5),F3PTR NO,POINT TO NEXT DSCB @V305114 00932000
- LA R1,RDDSCB3 POINT TO CCW CHAIN @V305114 00933000
- ST R1,CHNPROG FOR FORMAT 3 DSCB @V305114 00934000
- OI XTNTFLG,FM3SW FORMAT 3 EXPECTED @V305114 00935000
- B GOTDSN AND GET THE NEXT ONE @V305114 00936000
- SPACE 1 00937000
- EXEXIT TM XTNTFLG,VTOCFLG VTOC JUST LISTED ? @V305114 00938000
- BNO NOTVTOC NO ... BR @V305114 00939000
- NI XTNTFLG,255-VTOCFLG RESET INDICATOR @V305114 00940000
- B CHKXTNT1 AND START GETTING EXTENTS @V305114 00941000
- SPACE 1 00942000
- NOTVTOC TM LVSW,DSN DSN SPECIFIED ? @V305114 00943000
- BO PREEXIT YES ... WE'RE DONE @V305114 00944000
- TM XTNTFLG,FM3SW FORMAT 3 DSCB READ ? @V305114 00945000
- BNO RDNEXT NO ... BR @V305114 00946000
- MVC CCHHR(5),TCCHHR YES, FM3 MAY NOT BE IN @V305114 00947000
- B SETCCW SEQUENCE AFTER FM1 @V305114 00948000
- SPACE 1 00949000
- RDNEXT MVC CCHHR(5),NEXTSEEK POINT TO NEXT CCHHR @V305114 00950000
- SETCCW NI XTNTFLG,255-FM3SW RESET FM3 FLAG @V305114 00951000
- LA R1,RDDSCB1 SET UP FOR SEARCH FOR @V305114 00952000
- ST R1,CHNPROG NEXT FORMAT 1 DSCB @V305114 00953000
- B CHKXTNT1 NOW GET IT @V305114 00954000
- SPACE 1 00955000
- EJECT 00956000
- ************************************************************** 00957000
- * TYLOOP RECEIVES A POINTER TO A SET OF EXTENTS AND BUILDS 00958000
- * A DATA LINE FOR OUTPUT TO THE TERMINAL. IT THEN CALLS THE 00959000
- * TYPF ROUTINE TO TYPE TO THE TERMINAL. 00960000
- ************************************************************** 00961000
- TYLOOP EQU * @V305114 00962000
- ST R14,RETSAVE SAVE THE RETURN ADDRESS @VA07903 00962070
- USING EXTNT,R7 @VA06034 00962140
- CLI DSCB+44,DSCBONE IS THIS A FORMAT 1 LABEL? @VA06034 00962280
- BNE XTNTLOOP NO, DON'T LOOK FOR A MODEL DSCB @VA06034 00962420
- CLI TYPX,MODL IS THIS ONE A MODEL DSCB? @VA06034 00962560
- BNE XTNTLOOP NO, BUILD EXTENT DATA @VA06034 00962700
- MVI XDATA,BLANK MOVE BLANK TO FIRST BYTE @VA09250 00962790
- MVC XDATA+1(50),XDATA RESET FIELD TO BLANKS @VA09250 00962880
- MVC XTYPE(5),MCONST INDICATE MODEL DSCB WITH @VA06034 00962980
- MVI XTRKS+4,CHAR0 NO TRACKS USED @VA06034 00963120
- LA R4,EXT1 USE SAME COUNT AS SINGLE EXTENT @VA06034 00963260
- B SETYP TYPE OUTPUT LINE @VA06034 00963400
- SPACE 00963540
- XTNTLOOP EQU * @VA06034 00963680
- SR R1,R1 CLEAR FOR ICM @V305114 00965000
- ICM R1,BIN0001,SEQX GET SEQUENCE NUMBER @V305066 00966000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00967000
- MVC XSEQ(3),2(R1) PLUG INTO DATA LINE @V305114 00968000
- SPACE 1 00969000
- SR R1,R1 CLEAR FOR ICM @V305114 00970000
- ICM R1,BIN0011,LCYLX GET LOW CYLINDER @V305066 00971000
- STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00972000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00973000
- MVC XLCYL(3),2(R1) PLUG INTO DATA LINE @V305114 00974000
- SPACE 1 00975000
- SR R1,R1 CLEAR FOR ICM @V305114 00976000
- ICM R1,BIN0011,LHDX GET LOW HEAD @V305066 00977000
- STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00978000
- BAL R14,CNVRT CONVERT TO PRINTABE FORM @V305114 00979000
- MVC XLHD(2),3(R1) PLUG INTO DATA LINE @V305114 00980000
- SPACE 1 00981000
- LH R1,TRKCYL TRACKS PER CYLINDER @V305114 00982000
- MH R1,CYLTEMP TIMES TRACK NUMBER @V305114 00983000
- AH R1,HDTEMP PLUS HEAD NUMBER @V305114 00984000
- BAL R14,EDCNT1 CONVERT AND EDIT @V305114 00985000
- MVC XRTRK1(5),UNPKWK+3 PLUG INTO LINE @V305114 00986000
- SPACE 1 00987000
- SR R1,R1 CLEAR FOR ICM @V305114 00988000
- ICM R1,BIN0011,HCYLX GET HIGH CYLINDER @V305066 00989000
- STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00990000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00991000
- MVC XHCYL(3),2(R1) PLUG INTO DATA LINE @V305114 00992000
- SPACE 1 00993000
- SR R1,R1 CLEAR FOR ICM @V305114 00994000
- ICM R1,BIN0011,HHDX GET HIGH HEAD @V305066 00995000
- STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00996000
- BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00997000
- MVC XHHD(2),3(R1) PLUG INTO DATA LINE @V305114 00998000
- SPACE 1 00999000
- LH R1,TRKCYL TRACKS PER CYLINDER @V305114 01000000
- MH R1,CYLTEMP TIMES TRACK NUMBER @V305114 01001000
- AH R1,HDTEMP PLUS HEAD NUMBER @V305114 01002000
- BAL R14,EDCNT1 CONVERT AND EDIT @V305114 01003000
- MVC XRTRK2(5),UNPKWK+3 PLUG INTO LINE @V305114 01004000
- SPACE 1 01005000
- CLI TYPX,SPLITX SPLIT CYLINDER EXTENT ? @V305114 01006000
- BNE NOTSPLT NO ... BR @V305114 01007000
- OI FREEFLG,SPLIT LET XCALC KNOW @V305114 01008000
- NOTSPLT LR R1,R7 USE THE XCALC @V305114 01009000
- BAL R14,XCALC ROUTINE TO GIVE US THE NUMBER @V305114 01010000
- SPACE 1 01011000
- LR R1,R8 TRANSFER NUMBER OF TRACKS @V305114 01012000
- BAL R14,EDCNT1 CONVERT AND EDIT @V305114 01013000
- MVC XTRKS(5),UNPKWK+3 PLUG INTO LINE @V305114 01014000
- SPACE 1 01015000
- MVC XTYPE(5),DCONST PLUG DATA TYPE @V305114 01016000
- TM 0(R7),DATX DATA EXTENT ? @V305114 01017000
- BO SETYP YES ... BR @V305114 01018000
- MVC XTYPE(5),SCONST PLUG SPLIT CYL TYPE @V305114 01019000
- CLI 0(R7),SPLITX SPLIT CYL EXTENT ? @V305114 01020000
- BE SETYP YES ... BR @V305114 01021000
- MVC XTYPE(5),LCONST PLUG LABEL CONSTANT @V305114 01022000
- CLI 0(R7),LABX USER LABEL EXTENT ? @V305114 01023000
- BE SETYP YES ... BR @V305114 01024000
- MVC XTYPE(5),ICONST PLUG INDEX TYPE @V305114 01025000
- CLI 0(R7),INDX INDEX EXTENT ? @V305114 01026000
- BE SETYP YES ... BR @V305114 01027000
- MVC XTYPE(5),VTOC PLUG VTOC TYPE @V305114 01028000
- TM XTNTFLG,VTOCFLG VTOC EXTENT ? @V305114 01029000
- BO SETYP YES ... BR @V305114 01030000
- MVC XTYPE(5),OCONST MUST BE ISAM OVFLO @V305114 01031000
- SPACE 1 01032000
- SETYP LA R3,XDATA POINT TO DATA LINE @V305114 01033000
- BAL R14,TYPF AND TYPE IT @V305114 01034000
- L R14,RETSAVE RESTORE THE RETURN REG @V305114 01035000
- BR R14 RETURN TO CALLER @V305114 01036000
- DROP R7 @V305114 01037000
- SPACE 1 01038000
- ************************************************************** 01039000
- * FILLMAP SETS BITS ON IN THE TRACK MAP ACCORDING TO THE 01040000
- * FOLLOWING INPUT: 01041000
- * R7 = DISPLACEMENT INTO TRKMAP OF THE 1ST BIT 01042000
- * R8 = NUMBER OF TRACKS IN THE EXTENT 01043000
- ************************************************************** 01044000
- FILLMAP EQU * @V305114 01045000
- LA R3,CON8 CONSTANT FOR DIVIDE + 1ST BYTE @V305066 01046000
- SR R6,R6 CLEAR FOR DIVIDE @V305114 01047000
- DR R6,R3 CALC TRKMAP BYTES + REMAINDER @V305114 01048000
- SPACE 1 01049000
- L R4,MAPAD POINT TO 1ST BYTE @V305114 01050000
- AR R7,R4 AFFECTED BY THIS EXTENT @V305114 01051000
- LA R4,CON128 SET SHIFT BIT @V305066 01052000
- SRL R4,0(R6) TO 1ST TRACK BIT @V305114 01053000
- SR R3,R6 CALC BITS SETTABLE IN 1ST BYTE @V305114 01054000
- B GETBYT 1ST BIT IS ALREADY SET @V305114 01055000
- SPACE 1 01056000
- SHFTBIT SRL R4,1 SHIFT 'OR' BIT FOR NEXT TRACK @V305114 01057000
- GETBYT ICM R1,BIN0001,0(R7) GET TRKMAP BYTE @V305066 01058000
- OR R1,R4 TURN ON BIT @V305114 01059000
- STCM R1,BIN0001,0(R7) SET TRKMAP BYTE @V305066 01060000
- SPACE 1 01061000
- BCT R8,CHKBIT GET OUT IF ALL BITS ARE SET @V305114 01062000
- BR R14 ----- @V305114 01063000
- CHKBIT BCT R3,SHFTBIT THROUGH WITH THIS BYTE ? @V305114 01064000
- LA R4,CON128 YES, RESET 'OR' BIT @V305066 01065000
- LA R7,1(,R7) UPDATE BYTE POINTER @V305114 01066000
- LA R3,EIGHT AND RESET BIT COUNT @V305066 01067000
- B GETBYT STAY IN LOOP @V305114 01068000
- SPACE 1 01069000
- ************************************************************** 01070000
- * XCALC USES THE LOW AND HIGH EXTENTS OF A FORMAT 1 OR 01071000
- * FORMAT 3 DSCB TO CALCULATE THE NUMBER OF TRACKS IN THE 01072000
- * EXTENT AND THE BIT DISPLACEMENT OF THE 1ST ALLOCATED 01073000
- * BIT INTO THE TRACK MAP. IT CALLS FILLMAP TO EXECUTE THE 01074000
- * TRACK MAP ALLOCATION. 01075000
- * UPON ENTRY REG1 POINTS TO THE 10 BYTE EXTENT FIELD. 01076000
- ************************************************************** 01077000
- XCALC EQU * @V305114 01078000
- USING EXTNT,R1 @V305114 01079000
- STM R9,R7,0(R13) SAVE CALLERS REGS @V305114 01080000
- SR R2,R2 CLEAR .. @V305114 01081000
- SR R3,R3 REGISTERS .. @V305114 01082000
- SR R7,R7 FOR .. @V305114 01083000
- SR R8,R8 ICM @V305114 01084000
- ICM R7,BIN0011,LCYLX GET LOW CYLINDER @V305066 01085000
- ICM R8,BIN0011,HCYLX AND HIGH CYLINDER @V305066 01086000
- SR R8,R7 CALC POSSIBLE FULL CYLS @V305114 01087000
- SPACE 1 01088000
- SR R4,R4 CLEAR LOW EXTENT OVERLAP @V305114 01089000
- ICM R2,BIN0011,LHDX GET LOW HEAD @V305066 01090000
- ICM R3,BIN0011,HHDX AND HIGH HEAD @V305066 01091000
- SPACE 1 01092000
- LTR R8,R8 CHECK FOR VALID EXTENT @V305114 01093000
- BM XTNTERR1 ...... @V305114 01094000
- BP XTNTOK ...... @V305114 01095000
- CR R2,R3 ...... @V305114 01096000
- BH XTNTERR1 ...... @V305114 01097000
- SPACE 1 01098000
- XTNTOK LA R3,1(,R3) BUMP HIGH HH BY ONE @V305114 01099000
- CR R2,R3 HIGH HH = OR > LOW HH ? @V305114 01100000
- BH XCALC1 NO ... BR, CALC BOTH OVERLAPS @V305114 01101000
- SR R3,R2 CALC TRKS OVER CYL BOUNDARY @V305114 01102000
- B ADTRKS ......... @V305114 01103000
- DROP R1 @V305114 01104000
- SPACE 1 01105000
- XCALC1 BCTR R8,R0 DECREMENT CYL COUNT @V305114 01106000
- LH R4,TRKCYL TRKS PER CYL MINUS LOW HH @V305114 01107000
- SR R4,R2 PLUS 1 = LOW EXTENT OVERLAP @V305114 01108000
- SPACE 1 01110000
- ADTRKS AR R4,R3 LOW + HIGH OVERLAP TRKS @V305114 01111000
- TM FREEFLG,SPLIT SPLIT CYLINDERS ? @V305114 01112000
- BO SCALC YES ...BR @V305114 01113000
- MH R8,TRKCYL CALC TRACKS IN FULL CYLINDERS @V305114 01114000
- AR R8,R4 ADD OVERLAP TRACKS @V305114 01115000
- TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 01116000
- BO XEXIT YES ... BR @V305114 01117000
- SPACE 1 01118000
- MH R7,TRKCYL GET DISPL IN BITS OF @V305114 01119000
- AR R7,R2 1ST ALLOCATED BIT @V305114 01120000
- BAL R14,FILLMAP SET ALLOCATED TRACK BITS @V305114 01121000
- XEXIT NI FREEFLG,255-SPLIT RESET SPLIT CYL INDICATOR @V305114 01122000
- LM R9,R7,0(R13) RESTORE REGS @V305114 01123000
- BR R14 RETURN TO CALLER @V305114 01124000
- SPACE 1 01125000
- SCALC EQU * FOR SPLIT CYLINDERS ONLY @V305114 01126000
- LA R5,1(R8) BUMP FOR LOOP COUNT @V305114 01127000
- STH R4,STRKCYL SAVE SPLIT TRKS PER CYL @V305114 01128000
- LR R9,R7 SAVE FOR INCREMENT @V305114 01129000
- TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 01130000
- BNO SLOOP NO ... BR @V305114 01131000
- LA R8,1(,R8) BUMP CYL NUMBER FOR CALC @V305114 01132000
- MH R8,STRKCYL CALC NUMBER OF TRACKS @V305114 01133000
- B XEXIT AND RETURN @V305114 01134000
- SPACE 1 01135000
- SLOOP MH R7,TRKCYL CALC DISPLACEMENT IN BITS @V305114 01136000
- AR R7,R2 OF 1ST ALLOCATED BIT @V305114 01137000
- LH R8,STRKCYL SET TRKS PER CYL @V305114 01138000
- BAL R14,FILLMAP SET A CYL WORTH OF BITS @V305114 01139000
- LA R9,1(,R9) BUMP CYLINDER NUMBER @V305114 01140000
- LR R7,R9 TRANSFER FOR FILLMAP @V305114 01141000
- BCT R5,SLOOP DO FOR EACH SPLIT CYL @V305114 01142000
- B XEXIT RETURN TO CALLER @V305114 01143000
- EJECT 01144000
- TYPF EQU * @V305114 01145000
- STCM R2,BIN0111,LVLNTH+1 SET LENGTH @V305066 01146000
- STCM R3,BIN0111,LVBUFF+1 AND ADDRESS OF LINE @V305066 01147000
- LA R1,LVLINE POINT TO PLIST @V305114 01148000
- SVC 202 AND TYPE @V305114 01149000
- DC AL4(*+4) ...... @V305114 01150000
- BR R14 RETURN TO CALLER @V305114 01151000
- SPACE 1 01152000
- CNVRT EQU * @V305114 01153000
- CVD R1,CVDWK CONVERT @V305114 01154000
- UNPK UNPKWK(5),CVDWK+3(5) TO PRINTABLE @V305114 01155000
- OI UNPKWK+4,SIGN FORM ... @V305066 01156000
- LA R1,UNPKWK POINT TO IT AND @V305114 01157000
- BR R14 RETURN @V305114 01158000
- SPACE 1 01159000
- EDCNT1 EQU * @V305114 01160000
- CVD R1,CVDWK CONVERT AND @V305114 01161000
- EDCNT3 MVC UNPKWK(8),PATTERN EDIT LEADING @V305114 01162000
- ED UNPKWK(8),HALF ZEROES @V305114 01163000
- BR R14 RETURN TO CALLER @V305114 01164000
- SPACE 1 01165000
- *************************************************************** 01166000
- * 01167000
- * DISK I/O SUBROUTINE 01168000
- * 01169000
- *************************************************************** 01170000
- SPACE 1 01171000
- DISKIO L R1,CCHHR GET SEARCH INFO @V201101 01172000
- ST R1,SEEK+2 AND USE IT FOR SEEKING AS WELL @V201101 01173000
- ST R1,NEXTSEEK SAVE TRACK ADDRESS CURRENTLY IN V@V201101 01174000
- LH R1,OSADTDSK GET DEVICE ADDRESS @V201101 01175000
- XC CSW(8),CSW RESET CSW @V201101 01176000
- DC X'83100020' DIAGNOSE READ TO CP @V201101 01177000
- BC 8,8(,R14) NORMAL RETURN..ALL OK @V201101 01178000
- BC 4,VTOCERR DISK NOT ATTACHED @V201101 01179000
- BC 2,4(,R14) INCORR LENGTH OR UNIT EXEC @V201101 01180000
- STH R0,SNSEDATA UNIT CHECK @V201101 01181000
- BR R14 RETURN @V201101 01182000
- SPACE 1 01183000
- *************************************************************** 01184000
- * 01185000
- * TEST INFORMATION RETURNED BY SENSE FOR UNEXPECTED STAT 01186000
- * 01187000
- *************************************************************** 01188000
- SPACE 1 01189000
- CHKSENSE TM SNSEDATA,X'FD' ANYTHING BUT TRACK CONDITION @V201101 01190000
- BNZ VTOCERR YES..VTOC I/O ERROR @V201101 01191000
- TRKBYTE TM SNSEDATA+1,X'D6' ALLOW CYLEND, NOREC, OVERINC @V201101 01192000
- BNZ VTOCERR VTOC I/O ERROR @V201101 01193000
- MVC SNSEBYTE(1),SNSEDATA MAKE A COMPOUND BYTE @V201101 01194000
- OC SNSEBYTE(1),SNSEDATA+1 OUT OF BOTH FOR EASY INSP@V201101 01195000
- BR R14 NOW RETURN TO CALLER @V201101 01196000
- SPACE 1 01197000
- *************************************************************** 01198000
- * 01199000
- * INCREMENT DASD ADDRESS TO TRK 0, REC 0 OF NEXT CYL 01200000
- * 01201000
- *************************************************************** 01202000
- SPACE 1 01203000
- INCRCYL LH R1,CCHHR GET CYLINDER ADDRESS @V201101 01204000
- LA R1,1(,R1) ADD ONE TO IT @V201101 01205000
- SLL R1,16 CREATE CCHH WITH HEAD ZERO @V201101 01206000
- ST R1,CCHHR PUT INTO SEARCH DATA AREA @V201101 01207000
- STC R1,CCHHR+4 R0 ON TRK 0 BECOMES TARGET @V201101 01208000
- BR R14 RETURN TO USER @V201101 01209000
- EJECT 1 01210000
- *************************************************************** 01211000
- * 01212000
- * CHANNEL PROGRAMS FOR DISK PACK FORMATTED FOR OS 01213000
- * 01214000
- *************************************************************** 01215000
- SPACE 1 01216000
- RDDSCB1 CCW 7,SEEK,CC,6 CONTROL - SEEK @V201101 01217000
- CCW 31,MASK,CC,1 CONTROL - SET FILE MASK @V201101 01218000
- CCW 49,CCHHR,CC,5 SEARCH - ID EQUAL @V201101 01219000
- CCW 8,*-8,CC+SLI,1 CONTROL - T.I.C. @V201101 01220000
- CCW 146,NEXTSEEK,CC,8 READ - COUNT (M-T ON) @V201101 01221000
- CCW 14,DSNAME,0,140 READ - KEY AND DATA @V305114 01222000
- SPACE 1 01223000
- RDDSCB1K CCW 7,SEEK,CC,6 CONTROL - SEEK @V201101 01224000
- CCW 31,MASK,CC,1 CONTROL - SET FILE MASK @V201101 01225000
- CCW 49,CCHHR,CC,5 SEARCH - ID EQUAL @V201101 01226000
- CCW 8,*-8,CC+SLI,1 CONTROL - T.I.C. @V201101 01227000
- CCW 146,NEXTSEEK,CC,8 READ - COUNT (M-T ON) @V201101 01228000
- CCW 41,DSNAME,CC,44 SEARCH - KEY EQUAL @V201101 01229000
- CCW 8,*-16,CC+SLI,1 CONTROL - T.I.C. @V201101 01230000
- CCW 6,DSCB1,0,96 READ - DATA @V305114 01231000
- SPACE 1 01232000
- RDDSCB3 CCW 7,SEEK,CC,6 SEEK FORMAT 3 DSCB @V305114 01233000
- CCW 31,MASK,CC,1 SET FILE MASK @V305114 01234000
- CCW 49,CCHHR,CC,5 SEARCH ID EQUAL @V305114 01235000
- CCW 8,*-8,CC+SLI,1 TIC @V305114 01236000
- CCW 14,DSNAME,0,140 READ KEY + DATA @V305114 01237000
- EJECT 1 01238000
- * 01239000
- BADMODE LR R2,R1 GET MODE ADDRESS @V201101 01240000
- DMSERR TEXT='INVALID MODE ''........''', @V201101*01241000
- NUM=048,LET=E,SUB=(CHARA,(R2)) @V201101 01242000
- B RET24 GO SET RETURN CODE @V305114 01243000
- * 01244000
- BADMODE2 TM ADTFLG1,ADTFRO+ADTFRW CMS DISK? @VA02610 01245000
- BZ BADMODE3 NO @VA02610 01246000
- LA R1,FMODE GET FILEMODE ADDRESS @VA02610 01247000
- B BADMODE GIVE ERROR MSG @VA02610 01248000
- BADMODE3 LA R2,FMODE GET FILEMODE @VA02610 01249000
- DMSERR TEXT='DISK ''........'' NOT ACCESSED', @VA02610*01250000
- NUM=069,LET=E,SUB=(CHARA,(R2)) @VA02610 01251000
- LA R10,36 GET RETURN CODE @VA02610 01252000
- B LEAVE EXIT @VA02610 01253000
- * 01254000
- BADDSN EQU * @V201101 01255000
- DMSERR TEXT='INVALID DATA SET NAME',NUM=221,LET=E @V201101 01256000
- B RET24 GO SET RETURN CODE @V305114 01257000
- EJECT 1 01258000
- * 01259000
- NOFMODE EQU * @V201101 01260000
- DMSERR TEXT='NO FILEMODE SPECIFIED',NUM=223,LET=E @V201101 01261000
- B RET24 GO SET RETURN CODE @V305114 01262000
- * 01263000
- XTNTERR1 EQU * @V305114 01264000
- DMSERR TEXT='INVALID EXTENT FOUND FOR ''......................X01265000
- ......................'' ON ''..'' DISK',NUM=227,LET=W,SX01266000
- UB=(CHARA,DSNAME,CHARA,(ADTM,1)),RENT=NO @V305114 01267000
- LA R10,RCFOUR SAVE RETURN CODE FOR LATER @VM03219 01268000
- ST R10,RCSAVE ..... @VM03219 01269000
- B XEXIT AND CONTINUE @VM03219 01270000
- SPACE 1 01271000
- FREERR EQU * @V305114 01272000
- DMSERR TEXT='NO DATA SET NAME ALLOWED WITH FREE OPTION',NUM=22X01273000
- 6,LET=E @V305114 01274000
- B RET24 GO SET RETURN CODE @V305114 01275000
- SPACE 1 01276000
- BADOPT LR R2,R1 GET OPTION ADDRESS @V201101 01277000
- DMSERR TEXT='INVALID OPTION ''........''',NUM=003,LET=E, *01278000
- SUB=(CHARA,(R2)) @V201101 01279000
- SPACE 1 01280000
- RET24 EQU * @V305114 01281000
- LA R10,TWENTY4 SET RETURN CODE 24 @V305066 01282000
- B LEAVE AND USE COMMON EXIT @V305114 01283000
- NOMEMS EQU * @V201101 01284000
- DMSERR TEXT='NO MEMBERS FOUND',LET=I,NUM=229 @V305114 01285000
- B GETNXT RETURN.. @V201101 01286000
- SPACE 1 01287000
- NOSPACE EQU * @V305114 01288000
- DMSERR TEXT='NO FREE SPACE AVAILABLE ON ''..'' DISK',NUM=233,LX01289000
- ET=I,SUB=(CHARA,(ADTM,1)) @V305114 01290000
- B FEXIT NOW FREE UP STORAGE @V305114 01291000
- EJECT 1 01292000
- * 01293000
- IOERROR EQU * @V201101 01294000
- DMSERR NUM=222,LET=E,SUB=(CHARA,DSNAME,CHARA,(ADTM,1)), X01295000
- TEXT='I/O ERROR READING ''..............................*01296000
- ..............'' FROM ''..'' DISK',RENT=NO @V305114 01297000
- LA R10,28 GET RETURN CODE @VA13586 01298000
- B LEAVE RETURN.. @VA13586 01298300
- * 01299000
- VTOCERR EQU * @V201101 01300000
- DMSERR NUM=231,LET=E,SUB=(CHARA,FMODE), @V201101*01301000
- TEXT='I/O ERROR READING VTOC FROM ''....'' DISK' 01302000
- LA R10,28 GET RETURN CODE @V201101 01303000
- B LEAVE RETURN.. @V201101 01304000
- EJECT 1 01305000
- * 01306000
- DSNMSG EQU * @V201101 01307000
- DMSERR TEXT='ENTER DATA SET NAME:',LET=R,NUM=220,DOT=NO 01308000
- BR R14 @V201101 01309000
- * 01310000
- TSTDSNF TM LVSW,DSFND WAS ANY DATA SET FOUND ? @VA05780 01311000
- BO EXIT YES, NOT AN ERROR, JUST EOF @VA04298 01316200
- DMSERR TEXT='DATA SET NOT FOUND',NUM=002,LET=E @V201101 01317000
- LA R10,28 GET RETURN CODE @V201101 01318000
- B LEAVE RETURN.. @V201101 01319000
- SPACE 1 01320000
- PREEXIT TM LVSW,ALLOS ALL DISKS REQUESTED ? @V305114 01321000
- BNO EXIT NO, WE'RE ALL THROUGH @V305614 01322000
- TM LVSW,FREESW FREE SPECIFIED ? @V305614 01323000
- BO SRCHADTS YES, BACK TO LOOP @V305614 01324000
- TM LVSW,DSN DATA SET NAME SPECIFIED ? @V305614 01325000
- BNO SRCHADTS NO, BACK TO LOOP @V305614 01326000
- * 01327000
- EXIT L R10,RCSAVE GET RETURN CODE @VM03219 01328000
- * 01329000
- LEAVE EQU * @V201101 01330000
- MVC DOSFLAGS(1),SAVDOS RESTORE DOSFLAGS @V305114 01331000
- DMSKEY RESET ENABLE NUCLEUS PROTECT @V201101 01332000
- * 01333000
- LA R1,FINDCLR GET FILEDEF CLEAR LIST ADDR @V201101 01334000
- SVC 202 CLEAR $LISTDS$ FILEDEF @V201101 01335000
- DC AL4(*+4) ... @V201101 01336000
- LR R15,R10 GET RETURN CODE @V201101 01337000
- L R14,SAVR14 GET RETURN ADDR @V201101 01338000
- BR R14 RETURN TO CALLER @V201101 01339000
- EJECT 1 01340000
- *************************************************************** 01341000
- * 01342000
- * CONSTANTS AND STORAGE AREAS 01343000
- * 01344000
- *************************************************************** 01345000
- SPACE 1 01346000
- DS 0D @V305114 01347000
- CVDWK DS 1F CONVERT TO DECIMAL WORK AREA @V305114 01348000
- HALF DS 1F EDIT FROM HERE @V305114 01349000
- UNPKWK DS 1D UNPACK WORK AREA @V201101 01350000
- CCHHR DC 2H'0',X'02',X'00' DISK SEARCH ADDRESS @V201101 01351000
- NEXTSEEK DS 2F DISK ADDRESS FOR NEXT SEEK @V201101 01352000
- SNSEDATA DC 6X'00' SENSE INFO. FOR DISK ERRORS @V201101 01353000
- H45 DC H'45' CONSTANT TO CONTROL DSNAME LE@V201101 01354000
- H8 DC H'8' CONSTANT TO CONTROL I/O ERROR@V201101 01355000
- SEEK DC H'0' DISK SEEK ADDRESS @V201101 01356000
- DS 1F DITTO @V201101 01357000
- SAVR14 DS 1F RETURN REGISTER SAVE AREA @V201101 01358000
- SAVADT DS 1F ADDRESS OF CURRENT ADT @V305114 01359000
- CHNPROG DS 1F ADDRESS OF CURRENT CHAN PROG @V201101 01360000
- MAPAD DS 1F TRACK MAP ADDRESS @V305114 01361000
- MAPNUM DS 1H TRACK MAP BYTE COUNT @V305114 01362000
- TRKTOTAL DS 1H TOTAL TRACKS THIS DISK @V305114 01363000
- TRKCYL DS 1H TRACKS PER CYLINDER @V305114 01364000
- STRKCYL DS 1H SPLIT TRACKS PER CYLINDER @V305114 01365000
- XTNUM DS 1X NUMBER OF EXTENTS FOR A DS @V305114 01366000
- TCCHHR DS 5X SAVE AREA FOR NEXT FMT1 SEARCH @V305114 01367000
- SAVDOS DS 1X SAVE AREA FOR DOSFLAGS @V305114 01368000
- SPACE 1 01369000
- T2314 EQU X'08' 2314 DEVICE TYPE @V305114 01370000
- T3330 EQU X'09' 3330 DEVICE TYPE @V305114 01371000
- T333B EQU X'05' 3330-11 DEVICE TYPE @V505098 01371500
- T3380 EQU X'0E' 3380 DEVICE TYPE HRC004DS 01371700
- DSCB DS 0D @V305114 01372000
- DSNAME DC 44C' ' FORMAT 1 DSCB KEY @V201101 01373000
- DSCB1 DS 24F REST OF DSCB @V201101 01374000
- RETSAVE DC F'0' SAVE AREA FOR A RETURN ADDRESS @V305114 01375000
- RCSAVE DC F'0' RETURN CODE SAVE AREA @VM03219 01376000
- PATTERN DC X'4020202020202021' PATTERN FOR EDIT @V305114 01377000
- MASK DC B'01010000' SET FILE MASK CONTROL @V201101 01378000
- SNSEBYTE DC X'00' SENSE INFO. FOR DISK ERRORS @V201101 01379000
- MEMBER DC CL13'MEMBER NAMES:' TYPED MSG FOR MEMBERS @V201101 01380000
- FORMAT DC CL8'FORMAT' OPTION FOR EXTENDED INFO. @V201101 01381000
- FO DC CL8'FO' ABBREV. OF ABOVE @V201101 01382000
- PDS DC CL4'PDS' OPTION TO TYPE MEMBERS OF PO @V201101 01383000
- FREE DC CL5'FREE' OPTION FOR FREE SPACE DISPLAY @V305114 01384000
- XTNT DC CL7'EXTENT' OPTION FOR DSN EXTENT DISPLAY @V305114 01385000
- EX DC CL4'EX' EXTENT ABBREVIATION @V305114 01386000
- VTOC DC C'VTOC ' DSNAME FOR VTOC EXTENT @V305114 01387000
- DCONST DC C'DATA ' FOR EXTENT DATA LINE @V305114 01388000
- SCONST DC C'SPLIT' FOR EXTENT DATA LINE @V305114 01389000
- LCONST DC C'LABEL' FOR EXTENT DATA LINE @V305114 01390000
- ICONST DC C'INDEX' FOR EXTENT DATA LINE @V305114 01391000
- OCONST DC C'OVFLO' FOR EXTENT DATA LINE @V305114 01392000
- MCONST DC C'MODEL' FOR EXTENT DATA LINE @VA06034 01392500
- SPACE 1 01393000
- *************************************************************** 01394000
- * 01395000
- * SOME COMMONLY USED EQUATES 01396000
- * 01397000
- *************************************************************** 01398000
- SPACE 1 01399000
- ABLE EQU C'A' @V201101 01400000
- ZEBRA EQU C'Z' @V201101 01401000
- BLANK EQU C' ' @V201101 01402000
- LPAR EQU C'(' @V201101 01403000
- RPAR EQU C')' @V201101 01404000
- DOT EQU C'.' @V201101 01405000
- STAR EQU C'*' @V201101 01406000
- SLASH EQU C'/' @V201101 01407000
- FENCE EQU X'FF' @V201101 01408000
- * 01409000
- F EQU X'80' FIXED @V201101 01410000
- V EQU X'40' VARIABLE @V201101 01411000
- U EQU X'C0' UNDEFINED @V201101 01412000
- B EQU X'10' BLOCKED @V201101 01413000
- S EQU X'08' SPANNED @V201101 01414000
- T EQU X'20' TRACK OVERFLOW @V201101 01415000
- A EQU X'04' ASA CONTROL CHAR. @V201101 01416000
- M EQU X'02' MACHINE CONTROL CHAR. @V201101 01417000
- EJECT 1 01418000
- * 01419000
- DSORGS DC X'8000',CL4'IS' INDEX SEQUENTIAL @V305114 01420000
- DC X'4000',CL4'PS' PHYSICAL SEQUENTIAL @V305114 01421000
- DC X'2000',CL4'DA' DIRECT ACCESS @V305114 01422000
- DC X'0300',CL4'POU' PARTITIONED UNMOVEABLE @VA06395 01422500
- DC X'0200',CL4'PO' PARTITIONED ORGANIZATION @V305114 01423000
- DC X'0100',CL4'U' UNMOVABLE @V305114 01424000
- DC X'0008',CL4'VSAM' VSAM @V305114 01425000
- * 01426000
- LVHEAD DC C'RECFM LRECL BLKSI DSORG DATE LABEL FM ' @V201101 01427000
- DC C'DATA SET NAME ' @V201101 01428000
- * 01429000
- LVBUF EQU * DATA SET INFO. TO BE TYPED @V201101 01430000
- LVREC DC CL6' ' RECORD FORMAT @V201101 01431000
- LVLRL DC CL6' ' RECORD LENGTH @V201101 01432000
- LVBLK DC CL6' ' BLOCK SIZE @V201101 01433000
- LVDSO DC CL6' ' DATA SET ORGANIZATION @V201101 01434000
- LVMM DC CL2' ' DATE - MONTH @V201101 01435000
- LVSL1 DC CL1' ' @V201101 01436000
- LVDD DC CL2' ' DATE - DAY @V201101 01437000
- LVSL2 DC CL1' ' @V201101 01438000
- LVYY DC CL3' ' DATE - YEAR @V201101 01439000
- LVLAB DC CL7' ' DISK LABEL @V201101 01440000
- LVMOD DC CL3' ' DISK FILE MODE @V201101 01441000
- LVDSN DC CL44' ' DATA SET NAME @V201101 01442000
- LVEND EQU * END OF INFO. @V201101 01443000
- * 01444000
- JAN DC H'31' DAYS IN JANUARY @V201101 01445000
- FEB DC H'29' DAYS IN FEBRARY @V201101 01446000
- DC H'31',H'30',H'31',H'30',H'31' MARCH - JULY @V201101 01447000
- DC H'31',H'30',H'31',H'30',H'31' AUGUST - DECEM@V201101 01448000
- * 01449000
- HDTEMP DC H'0' RELATIVE TRACK SAVE AREA @V305114 01450000
- CYLTEMP DC H'0' RELATIVE TRACK SAVE AREA @V305114 01451000
- FHEAD DC C'CYL-HD(RELTRK) TO CYL-HD(RELTRK) TRACKS' @V305114 01452000
- XHEAD DC C'SEQ TYPE CYL-HD(RELTRK) TO CYL-HD(RELTRK) TRACKS' 01453000
- LVSW DC X'00' LIST VTOC SWITCH @V201101 01454000
- DSHDNG EQU X'80' DATA SET HEADING TYPED @V201101 01455000
- DSN EQU X'40' SEARCH BY DSNAME KEY @V201101 01456000
- ALLOS EQU X'20' SEARCH ALL ADTS @V201101 01457000
- MEM EQU X'10' PDS OPTION SPECIFIED @V201101 01458000
- MEMHDG EQU X'08' MEMBER HEADING TYPED @V201101 01459000
- RTPAREN EQU C')' PARENTHESES @V305066 01460000
- LTPAREN EQU C'(' LEFT PAREN @V305066 01461000
- LEN70 EQU 70 OUTPUT LENGTH @V305066 01462000
- LEN30 EQU 30 OUTPUT LENGTH @V305066 01463000
- DSCBONE EQU C'1' FORMAT 1 DSCB @V305066 01464000
- POSEXT EQU 3 POSSIBLE EXTENTS WITH DSCB @V305066 01465000
- BIN0001 EQU B'0001' MASK @V305066 01466000
- BIN0011 EQU B'0011' MASK @V305066 01467000
- BIN0111 EQU B'0111' MASK @V305066 01468000
- FORM3 EQU C'3' FORMAT 3 DSCB @V305066 01469000
- FORM2 EQU C'2' FORMAT 2 DSCB NOT SUPPORTED @VA09881 01469500
- MAXEXT3 EQU 3 MAX EXTENTS - 3 @V305066 01470000
- MAXEXT13 EQU 13 MAX EXTENTS - 13 @V305066 01471000
- CHAR3 EQU C'3' ... @V305066 01472000
- SPLITCYL EQU X'80' SPLIT CYLINDER EXTENT @V305066 01473000
- EIGHT EQU 8 INITIALIZE BIT COUNTER @V305066 01474000
- RCFOUR EQU 4 WARNING RETURN CODE @VM03219 01475000
- CON128 EQU 128 INITIALIZE BIT COMPARE REG @V305066 01476000
- CON41 EQU 41 HEADING LINE LEN @V305066 01477000
- HEX00 EQU X'00' ... @V305066 01478000
- CON51 EQU 51 LINE LENGTH - PERMANENT @V305066 01479000
- HEXF3 EQU X'F3' ... @V305066 01480000
- CON8 EQU 8 CONSTANT FOR DIVIDE @V305066 01481000
- SIGN EQU X'F0' PRINTABLE CHAR @V305066 01482000
- TWENTY4 EQU 24 RETURN CODE @V305066 01483000
- TWENTY8 EQU 28 RETURN CODE @V305066 01484000
- CON20 EQU 20 TRKS/CYL - 2314 @V305066 01485000
- CON19 EQU 19 TRKS/CYL - 3330 @V305066 01486000
- CON15 EQU 15 TRKS/CYL - 3380 HRC004DS 01486500
- CON12 EQU 12 TRKS/CYL - 3340 @V305066 01487000
- CON30 EQU 30 3350 TRK/CYL @VA06168 01487300
- T3350 EQU X'0B' 3350 DEVICE TYPE CODE @VA06168 01487400
- SEQ0 EQU X'0' ZERO EXT SEQ NUMBER @V305066 01488000
- EXT1 EQU X'1' ONE EXTENT @V305066 01489000
- HEX80 EQU X'80' ... @V305066 01490000
- LOOP7 EQU 7 LOOP COUNTER @VA06395 01491100
- DSFND EQU X'04' DATA SET FOUND @V201101 01492000
- XTNTSW EQU X'02' EXTENT OPTION SPECIFIED @V305114 01493000
- FREESW EQU X'01' FREE SPACE OPTION SPECIFIED @V305114 01494000
- CHAR0 EQU C'0' ZERO CHARACTER @VA06034 01494500
- SPACE 1 01495000
- FREEFLG DC X'00' FREE OPTION FLAGS @V305114 01496000
- ON EQU X'80' LAST BIT TESTED WAS ALLOCATED @V305114 01497000
- SPACE EQU X'40' FREE SPACE DETECTED THIS DISK @V305114 01498000
- HDG EQU X'20' HEADING WAS TYPED @V305114 01499000
- SPLIT EQU X'10' SPLIT CYLINDER ALLOCATION @V305114 01500000
- ANY EQU X'08' SOME FREE SPACE AVAILABLE @V305114 01501000
- SPACE 1 01502000
- XTNTFLG DC X'00' EXTENT OPTION FLAGS @V305114 01503000
- FM3SW EQU X'80' FORMAT 3 DSCB EXPECTED @V305114 01504000
- VTOCFLG EQU X'40' VTOC EXTENT BEING TYPED @V305114 01505000
- EJECT 1 01506000
- * 01507000
- DS 0D @V201101 01508000
- LVLINE DC CL8'TYPLIN' TYPE DATA SET INFO. @V201101 01509000
- LVBUFF DC AL1(1),AL3(0) @V201101 01510000
- LVLNTH DC CL1'B',AL3(0) @V201101 01511000
- * 01512000
- DS 0D @V201101 01513000
- MEMLINE DC CL8'TYPLIN' TYPE MEMBERS OF PO @V201101 01514000
- MEMBUFF DC AL1(1),AL3(0) @V201101 01515000
- MEMLNTH DC CL1'B',AL3(0) @V201101 01516000
- * 01517000
- DS 0D @V201101 01518000
- CONRD DC CL8'CONREAD' READ DSNAME FROM CONSOLE @V201101 01519000
- DC AL1(1),AL3(DSNAME) @V201101 01520000
- CONCNT DC CL1'U',AL3(0) @V201101 01521000
- * 01522000
- DS 0D @V201101 01523000
- FINDFDF DC CL8'FILEDEF' FILEDEF FOR MEMBERS @V201101 01524000
- DC CL8'$LISTDS$' @V201101 01525000
- DC CL8'DISK' @V201101 01526000
- DC CL8'$LISTDS$' @V201101 01527000
- DC CL8'CMSUT1' @V201101 01528000
- FMODE DC CL8' ' @V201101 01529000
- DC 8X'FF' @V201101 01530000
- * 01531000
- DS 0D @V201101 01532000
- FINDCLR DC CL8'FILEDEF' FILEDEF CLEAR FOR ABOVE @V201101 01533000
- DC CL8'$LISTDS$' @V201101 01534000
- DC CL8'CLEAR' @V201101 01535000
- DC 8X'FF' @V201101 01536000
- * 01537000
- DS 0D @V201101 01538000
- FINDSTT DC CL8'STATE' STATE TO TIE UP FST @V201101 01539000
- DC CL8'$LISTDS$' @V201101 01540000
- DC CL8'CMSUT1' @V201101 01541000
- STTFM DC CL4' ' @V201101 01542000
- DC A(0) @V201101 01543000
- * 01544000
- MNAMES DC CL72' ' MEMBER NAMES BUFFER @V201101 01545000
- EJECT 1 01546000
- LTORG @V201101 01547000
- SPACE 1 01548000
- CD EQU X'80' CHAIN DATA @V201101 01549000
- CC EQU X'40' CHAIN COMMAND @V201101 01550000
- SLI EQU X'20' SUPPRESS LENGTH IND. @V201101 01551000
- SKIP EQU X'10' SKIP COMMAND @V201101 01552000
- SPACE 1 01553000
- DATX EQU X'01' DATA FLAG IN EXTENT TYPE @V305114 01554000
- SPLITX EQU X'80' SPLIT CYL FLAG IN EXTENT TYPE @V305114 01555000
- LABX EQU X'40' LABEL FLAG IN EXTENT TYPE @V305114 01556000
- INDX EQU X'04' INDEX FLAG IN EXTENT TYPE @V305114 01557000
- MODL EQU X'00' MODEL DSCB FLAG @VA06034 01557500
- SPACE 1 01558000
- FMT1 DSECT @V305114 01559000
- DS CL51 @V305114 01560000
- VOLSEQ1 DS 2X NUMBER OF VOL IN MULTIVOL FILE @V305114 01561000
- DS CL6 @V305114 01562000
- F1XNUM DS X NUMBER OF EXTENTS FOR THIS FILE @V305114 01563000
- DS CL45 @V305114 01564000
- X1TYP DS X TYPE OF EXTENT @V305114 01565000
- X1SEQ DS X EXTENT SEQUENCE NUMBER @V305114 01566000
- X1LCC DS 2X LO CYL LIMIT @V305114 01567000
- X1LHH DS 2X LO HEAD LIMIT @V305114 01568000
- X1HCC DS 2X HI CYL LIMIT @V305114 01569000
- X1HHH DS 2X HI HEAD LIMIT @V305114 01570000
- X2TYP DS X TYPE OF EXTENT @V305114 01571000
- X2SEQ DS X SEQUENCE NUMBER OF EXTENT @V305114 01572000
- X2LCC DS 2X LO CYL LIMIT @V305114 01573000
- X2LHH DS 2X LO HEAD LIMIT @V305114 01574000
- X2HCC DS 2X HI CYL LIMIT @V305114 01575000
- X2HHH DS 2X HI HEAD LIMIT @V305114 01576000
- X3TYP DS X TYPE OF EXTENT @V305114 01577000
- X3SEQ DS X SEQUENCE NUMBER OF EXTENT @V305114 01578000
- X3LCC DS 2X LO CYL LIMIT @V305114 01579000
- X3LHH DS 2X LO HEAD LIMIT @V305114 01580000
- X3HCC DS 2X HI CYL LIMIT @V305114 01581000
- X3HHH DS 2X HI HEAD LIMIT @V305114 01582000
- F1PTR DS 5X CCHHR NEXT LABEL OF THIS FILE @V305114 01583000
- SPACE 1 01584000
- FMT3 DSECT @V305114 01585000
- DS CL4 @V305114 01586000
- X4TYP DS X TYPE OF EXTENT @V305114 01587000
- X4SEQ DS X SEQUENCE NUMBER FO THIS EXTENT @V305114 01588000
- X4LCC DS 2X LO CYL LIMIT @V305114 01589000
- X4LHH DS 2X LO HEAD LIMIT @V305114 01590000
- X4HCC DS 2X HI CYL LIMIT @V305114 01591000
- X4HHH DS 2X HI HEAD LIMIT @V305114 01592000
- DS CL121 @V305114 01593000
- F3PTR DS 5X CCHHR OF FOLLOWING FMT 3 @V305114 01594000
- SPACE 1 01595000
- FDATA DSECT @V305114 01596000
- LCYL DS 3C LOW CYLINDER NUMBER @V305114 01597000
- DS 1C @V305114 01598000
- LHD DS 2C LOW HEAD NUMBER @V305114 01599000
- DS 2C @V305114 01600000
- RELTRK1 DS 5C RELATIVE TRACK @V305114 01601000
- DS 5C @V305114 01602000
- HCYL DS 3C HIGH CYLINDER NUMBER @V305114 01603000
- DS 1C @V305114 01604000
- HHD DS 2C HIGH HEAD NUMBER @V305114 01605000
- DS 2C @V305114 01606000
- RELTRK2 DS 5C RELATIVE TRACKS @V305114 01607000
- DS 5C @V305114 01608000
- FTRKS DS 5C NUMBER OF EXTENT TRACKS @V305114 01609000
- SPACE 1 01610000
- XDATA DSECT @V305114 01611000
- XSEQ DS 3C SEQUENCE NUMBER @V305114 01612000
- DS 1C @V305114 01613000
- XTYPE DS 4C EXTENT TYPE @V305114 01614000
- DS 2C @V305114 01615000
- XLCYL DS 3C LOW CYLINDER @V305114 01616000
- DS 1C @V305114 01617000
- XLHD DS 2C LOW HEAD @V305114 01618000
- DS 2C @V305114 01619000
- XRTRK1 DS 5C RELATIVE TRACK NUMBER @V305114 01620000
- DS 5C @V305114 01621000
- XHCYL DS 3C HIGH CYLINDER @V305114 01622000
- DS 1C @V305114 01623000
- XHHD DS 2C HIGH HEAD @V305114 01624000
- DS 2C @V305114 01625000
- XRTRK2 DS 5C RELATIVE TRACK NUMBER @V305114 01626000
- DS 5C @V305114 01627000
- XTRKS DS 5C NUMBER OF TRACKS @V305114 01628000
- SPACE 1 01629000
- EXTNT DSECT @V305114 01630000
- TYPX DS X EXTENT TYPE @V305114 01631000
- SEQX DS X EXTENT SEQUENCE NUMBER @V305114 01632000
- LCYLX DS 2X LOW CYLINDER @V305114 01633000
- LHDX DS 2X LOW HEAD @V305114 01634000
- HCYLX DS 2X HIGH CYLINDER @V305114 01635000
- HHDX DS 2X HIGH HEAD @V305114 01636000
- EJECT 01637000
- NUCON @V201101 01638000
- ADT @V201101 01639000
- CMSCB @V201101 01640000
- REGEQU @V201101 01641000
- END 01642000
ibm/vm370-lib/cms/dmslds.assemble_src.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator