* /* START OF SPECIFICATIONS *** * 00010002 *01* PROCESSOR = ASSEM; * 00012002 **** END OF SPECIFICATIONS ***/ * 00014002 TITLE 'IEHLIST1-IEHLIST ROOT,CONTROL CARD ANALYZER,PRINTER' 00020001 *********************************************************************** 00022002 * MODULE NAME--IEHLIST1 YL026VC* 00024002 * YL026VC* 00026002 * DESCRIPTIVE NAME--IEHLIST ROOT,CONTROL CARD ANALYZER, PRINTERYL026VC* 00028002 * YL026VC* 00030002 * COPYRIGHT--NONE YL026VC* 00032002 * * 00040002 * STATUS--VS2 REL2 PROGRAM MODIFICATION SEPTEMBER 1975 @Z40CSJH 00050000 * VS1 RELEASE 5.0 DELETEIONS/CHANGES @Z30RSAG 00060000 * RACF CHANGES @Z40CSJH 00070000 *A 595300,684100,726900,733500 @Z30RSAG 00080000 * * 00090000 * FUNCTION--THIS PROGRAM PRODUCES OUTPUT THAT DESCRIBES THE CONTENTS * 00100000 * OF A VTOC, OR PDS, OR AN OS CATALOG(SYSCTLG) DATASET. @Z40CSJH 00110000 * THIS IS ACCOMPLISHED BY @Z40CSJH 00120000 * OPENING THE DESIRED DATA SET, READING IT VIA THE BSAM ACCESS * 00180001 * METHOD, FORMATTING THE INPUT, AND WRITING OUTPUT ON SYSPRINT * 00210001 * LISTVTOC OPTIONS: * 00240001 * 1.DUMP - THIS OPTION CREATES A HEXADECIMAL LISTING OF ALL THE * 00270001 * DATA SET CONTROL BLOCKS IN THE VTOC. THE PROCESSING OF THE VTOC * 00300001 * IS ACCOMPLISHED IN IEHLISTS. PARTIAL OR ENTIRE VTOC REQUESTS * 00330001 * ARE HANDLED IN THIS CSECT. * 00360001 * * 00390001 * 2.FORMAT - THIS OPTION GENERATES A DECIMAL LISTING OF THE DSCBS * 00420001 * IN THE VTOC. ALL FIELDS WHICH ARE CONVERTED ARE LABELED. IN * 00450001 * SOME CASES ABBREVIATIONS ARE USED TO LESSEN THE GENERATED OUT- * 00480001 * PUT. ALL PROCESSING OF THE VTOC AND GENERATION OF THE SYSOUT * 00510001 * DATA SET IS ACCOMPLISHED IN IEHLISTD. * 00540001 * * 00570001 * 3.DEFAULT - THE DEFAULT OPTION IS AN ABBREVIATION OF THE FORMAT * 00600001 * OPTION. THE OUTPUT GENERATED LISTS VOLUME SERIAL,VOLUME SE- * 00630001 * QUENCE NO, CREATION AND PURGE DATES, FILE TYPE, DATA SET NAME, * 00660001 * FILE SECURITY, AND EXTENTS USED. ALL REQUESTS ARE PROCESSED * 00690001 * IN IEHLISTR. * 00720001 * * 00750001 * ENTRY POINTS--THE PROGRAM IS ONLY ENTERED AT THE FIRST CSECT OF THE * 00780001 * ROOT SEGMENT (IE: IEHLISTR) * 00810001 * * 00840001 * INPUT--THE ONLY INPUT TO THIS PROGRAM IS INPUT CONTROL STATEMENTS * 00870001 * WHICH ARE FOUND ON A DEVICE DEFINED BY THE SYSIN DD CARD * 00900001 * * 00930001 * OUTPUT--A LISTING OF INFORMATION RELATIVE TO THE INPUT REQUESTS * 00960001 * IS WRITTEN ON THE OUTPUT DEVICE DEFINED BY THE SYSPRINT DD CARD * 00990001 * * 01020001 * EXTERNAL REFERENCES--IEHLISTC,WHICH SCANS INPUT CARDS. IEHVOLMT, * 01050001 * WHICH HANDLES VOLUME MOUNTING. IEHLISTM, WHICH CONTAINS ALL * 01080001 * MESSAGES * 01110001 * * 01140001 * EXITS,NORMAL--RETURN MACRO IS ISSUED WITH RETURN CODE OF 0 * 01170001 * * 01200001 * EXITS,ERROR--RETURN MACRO IS ISSUED WITH FOLLOWING RETURN CODES: * 01230001 * RETURN CODE OF 8 - I/O ERROR OR OTHER ERROR ON DATA SET * 01260001 * RETURN CODE OF 12- I/O ERROR ON SYSIN * 01290001 * RETURN CODE OF 16- UNCORRECTABLE ERROR WITH TERMINATION * 01320001 * * 01350001 * TABLES/WORKAREAS--1) TABLE OF COMMAND WORDS 2)TABLE OF KEYWORDS * 01380001 * 3) TABLE OF DATA SET NAMES FROM INPUT CONTROL CARDS * 01410001 * ALL WORK AREAS ARE IN ROOT SEGMENT (IEHLISTR) * 01440001 * * 01470001 * ATTRIBUTES--REUSABLE * 01500001 * * 01530001 * NOTES--OTHER MODULES USED ARE DEVNAMET, WHICH CONTAINS DEVICE NAME * 01560001 * TABLE AND DEVMASKT, WHICH CONTAINS DEVICE MASK TABLE * 01590001 * * 01760001 * CHANGE ACTIVITY--FOLLOWS THIS PROLOG YL026VC* 01770002 * * 01780001 ********************************************************************** 01800001 * * 01820001 * RELEASE 20 01821002 *A 592800-594000,595400-596800,597600-600200,687600-701800, A29716 01822002 *A 725000-726200,727000-727400,729600-732200 A29716 01823002 *A 169600-170000 A29736 01824002 *A 559400,721600-721800 A32555 01825002 *A 545800-549400,554200,721000,721400 A34989 01826002 *A 678400-678600 A38019 01827002 *A 649200-649400 PM0405 01828002 *A 059800 A38584 01829002 *A 187800 A38611 01830002 * RELEASE 21 01831002 *A 585200,585600 A38621 01832002 *A 063400 A40921 01833002 *A 444800-445000 A42343 01840002 *A 202400-202600 A42351 01842002 * RELEASE OS/VS-1 AND 2 01848002 *A 466300,473803-473929,474032-474128,474600,476200,480600, XM4744 01850002 *A 481200-481600,482400-482600,483500,484300,485200-485400, XM4744 01852002 *A 486000-486400,487200-487400,488600-488700,489630,491200, XM4744 01854002 *A 497650-497750 XM4744 01860002 *A 473930-474008,474152,496500 YM2247 01861002 *A 036984,582700-582720 YA00065 01861102 *A 581100,581700-581780,585400,734100-734160 YA00066 01861202 *A 581120-581140,593300-593399,597500-597588,734180-734184 YA00067 01861402 *C 583400,592800,649200 YA00067 01861802 *A 36984-36985,582620-582698 YA00068 01861902 *A 036988,474500 YA00062 01863402 *A 182300-182320 YL026VC 01865002 *A 413900-414260,415700-415720,548800,549300-549388 YL026VC 01866502 *C 147000,192600,194000,366400-368200,521800-523600 YL026VC 01868002 *D 147200-147400,148600,192200-192400,193600-193800, YL026VC 01869502 *D 234400-234600,235400-237400 YL026VC 01871002 *A 593385-593386 YL026VC 01872502 *A 596900-596920,684700-684760,726900,733500-733520 YL026VC 01874002 *C 667800 YM5559 01874802 *A 532700-532720,667900-667920 YM5559 01874902 *C 216800 @YA01685 01875102 *A 216700 @YA01685 01875302 *A 707500,710900,745900 @YA02531 01875502 *A 36803-36806,364203,425403,519603 YM06989 01875802 *D563200-563600 YM08143 01876202 *A563700-563792 YM08143 01876602 *C 061600,062400,063000 @ZA01245 01876702 *D 063200-063600 @ZA01245 01876802 *C 676600 @ZA01652 01876902 *C218800,224400 @ZM30153 01877000 *C219000 @ZM30161 01877200 *C 563792 @ZA01480 01877400 *A 640100-640120 @ZA07324 01878000 *A 500,1500-1700,146900-146920,148500 @Z40CSJH 01878100 *A 192500-192600,193900-193920,234700-234720 @Z40CSJH 01878200 *A 235700-237580,254550-254890 @Z40CSJH 01878300 *A 427300-427380 @XA15411=@YA13995=(ORG)@ZA11934 01878499 *C 427400,433800 @XA15411=@YA13995=(ORG)@ZA11934 01878599 *A 267460 @ZA18372 01878699 * SU60 CHANGES/DELETIONS @G60ASBJ 01878899 *A 544210-544300 @G60ASBJ 01879360 *C 540000,541000,542200,545400,545700-546000,546400,546800 @G60ASBJ 01879460 *C 547200,547600,547800,548100,551400,551700,552000,552300 @G60ASBJ 01879560 *C 719600,719800,720000,720200,720400 @G60ASBJ 01879660 *C 497880 (ORG)@XA19271=@YA19145=@ZA25524 01879799 *C 522602-522604 (ORG)@XA20229=@YA19937=@ZA28588 01880299 *C 522985,522986 @SA80149=@XA21270=@YA20405=(ORG)@ZA30116 01880799 *C 125800,125900,126100,126300 @SA80150=@XA21288=@YA20423=(ORG)@ZA28980 01881399 *C 129400,129600,129800 @SA80150=@XA21288=@YA20423=(ORG)@ZA28980 01881999 *C 522082,522083,522203,522204 @SA80150=@XA21288=@YA20423=(ORG)@ZA28980 01882599 ********************************************************************** 01883799 * @G60ASBJ 01887799 * 01896099 * REG,DISPLACEMENT, AND MASK EQUATES ARE ALL FOUND HERE 01900001 * 01920001 * 01940001 ********************************************************************** 01960001 * 01980001 PARAREG1 EQU 0 02000001 KEEPRET EQU 0 02020001 PARAREG2 EQU 1 02040001 SCANADD EQU 1 CONTROL CARD SCAN PARAMETER ADDRESS 02060001 MSGLEN EQU 1 02080001 MSGRET EQU 1 02100001 SCANLEN EQU 2 CONTROL CARD SCAN PARAMETER LENGTH 02120001 WORK1 EQU 2 02140001 WORK2 EQU 3 02160001 HLFWD EQU 3 VF0I 02180001 WORK3 EQU 4 02200001 JOB EQU 4 02220001 ONEBYTE EQU 5 VF0I 02240001 WORK4 EQU 5 02260001 ELEMLEN EQU 5 02280001 KEEPC EQU 5 02300001 WORK5 EQU 6 02320001 BLOCPNT EQU 6 02340001 LOCPNT EQU 6 02360001 UNPKDSCB EQU 6 02380001 EMPTYCNT EQU 7 02400001 WORK6 EQU 7 02420001 NAMEPTR EQU 7 02440001 TOBE EQU 7 02460001 UNPKPR EQU 7 02480001 COUNT EQU 7 02500001 TABPNT EQU 8 02520001 TTRPTR EQU 8 02540001 TABEND EQU 9 02560001 COMEBACK EQU 9 02580001 RECCNT EQU 10 02600001 BASEREG2 EQU 11 02620001 BASEREG1 EQU 12 02640001 SAVEREG EQU 13 02660001 RETURN EQU 14 02680001 MSGFROM EQU 14 02700001 BRANCHTO EQU 15 02720001 ECREG EQU 15 02740001 LOCERR EQU 15 02760001 MSGTO EQU 15 02780001 STRIP2 EQU X'1F' 02800001 ERRORCD EQU X'80' 02820001 BYPASS EQU X'40' 02840001 COMMAND EQU X'08' 02860001 KEYSW EQU X'04' 02880001 PARAM EQU X'02' 02900001 LC EQU X'20' 02920001 DATESW EQU X'01' 02940001 DUMPSW EQU X'02' 02960001 NODESW EQU X'04' 02980001 DSNAMESW EQU X'08' 03000001 OPENSW EQU X'10' 03020001 SECURITY EQU X'50' @Z40RSSA 03040000 PSWD EQU X'10' @Z40RSSA 03041000 RACF EQU X'40' @Z40RSSA 03042000 * @Z40RSSA 03043000 * SECURITY INDICES INTO MESSAGE TABLE @Z40RSSA 03044000 IBOTH EQU 336 @Z40RSSA 03045000 INONE EQU 340 @Z40RSSA 03046000 IPASS EQU 344 @Z40RSSA 03047000 IRACF EQU 348 @Z40RSSA 03048000 *********************************************************************** 03049000 SPACE 1 03050000 TYPESAM EQU X'40' 03060001 TYPEISAM EQU X'80' 03080001 TYPEDAM EQU X'20' 03100001 TYPEPDS EQU X'02' 03120001 FIRST5 EQU X'80' 03140001 FORMAT1 EQU X'F1' 03160001 FORMAT4 EQU X'F4' 03180001 FORMAT5 EQU X'F5' 03200001 SLASH EQU X'61' DT0I 03220001 INDISIN EQU 34 03240001 INDISPR EQU 42 03260001 INDISVOL EQU 82 03280001 ASACC EQU NODESW VF0I 03300001 BLOCKED EQU OPENSW VF01 03320001 CHAINCK EQU TYPEDAM VF0I 03340001 DATACHK EQU TYPESAM VF0I 03360001 FMTSW EQU X'01' VF0I 03380001 FORMAT2 EQU X'F2' VF0I 03400001 FORMAT3 EQU X'F3' VF0I 03420001 FORMAT6 EQU X'F6' VF0I 03440001 MACHCC EQU TYPEPDS VF0I 03460001 STND EQU DSNAMESW VF0I 03480001 TALX EQU DUMPSW VF0I 03500001 TCONT EQU DSNAMESW VF0I 03520001 TCYL EQU X'C0' VF0I 03540001 TMXIG EQU NODESW VF0I 03560001 TPFIXED EQU TYPEISAM VF0I 03580001 TPVAR EQU TYPESAM VF0I 03600001 TREC EQU TYPESAM VF0I 03620001 TRKOFLO EQU TYPEDAM VF0I 03640001 TTRK EQU TYPEISAM VF0I 03660001 WRITECK EQU TYPEISAM VF0I 03680001 IND2 EQU 87 YM06989 03680302 SHR EQU X'08' YM06989 03680602 ** EQUATES FOR LISTPDS CODE 03681001 ALIASMSK EQU X'04' PDSFMTSW-ALIAS ONLY 03682001 ARRMSK EQU X'20' PDSFMTSW-ALIAS,RENT,REUS MASK 03683001 SCATMSK EQU X'10' PDSFMTSW-SCATTER LOAD 03684001 OFFMSK EQU X'C3' PDSFMTSW-BITS OFF 03685001 MEMMSK EQU X'24' PDSFMTSW-04 & 20 03686001 HWORDMSK EQU X'1F' PDS LENGTH 03687001 AOSLE EQU X'80' AOS LINK-EDIT BIT 03688001 SCATBIT EQU X'04' SCATTER LOADED 03689001 SSIBIT EQU X'10' SSI FOR AOS L/E 03690001 APFBIT EQU X'08' PRESENCE OF APF 03691001 SIZEBIT EQU X'01' SIZE OF APF FIELD AND SW 03692001 * 03693001 BLANK EQU X'40' BLANK-EBCDIC 03694001 COMMA EQU X'6B' COMMA-EBCDIC 03695001 TRBLANK EQU X'EF' TRANS BLANK 03696001 TRCOMMA EQU X'EE' TRANS COMMA 03697001 SIGN EQU X'F0' POS SIGN 03698001 RTTRLL EQU X'00' RECORD # OF TTRLL YA00068 03698402 ALOCBLK EQU X'80' ALLOC MSK FOR TRK & CYL YA00068 03698502 OSBIT EQU X'FB' OS L/E BIT MASK YA00062 03698802 ********************************************************************** 03700001 ** 03720001 ** IEHLISTR 03740001 ** 03760001 ********************************************************************** 03780001 IEHLISTR CSECT 03800001 SAVE (14,12),T,IEHLIST1-OZ28980 @ZA28980 03850099 BALR BASEREG1,PARAREG1 ESTABLISH ADDRESSABILITY 04380001 USING *,BASEREG1 04400001 IEHBAS01 ST 13,SAVE13 SAVE REG 13 2564 04420001 LR WORK3,PARAREG2 SAVE REGISTER 1 I276 04440001 LOAD EP=DEVNAMET LOAD DEVICE NAME TABLE I276 04460001 LR PARAREG2,WORK3 RESTORE REGISTER 1 I276 04480001 ST KEEPRET,DEVTABAD SAVE PTR TO TABLE I276 04500001 L 15,INVEECON LOAD ADDR OF INVOLKER CONTROL 04520001 BR 15 SECTION AND BRANCH 04540001 PEKING STM WORK2,WORK3,TAIPEI -* SAVE DATA IN TAIPEI. VF01 04560001 LA WORK2,UNPKFLD -* WORK2 POINTS TO THE DATA VF01 04580001 * TO BE PROCESSED. VF01 04600001 LA WORK3,5 -* NUMBER OF BYTES TO BE VF01 04620001 * PROCESSED. VF01 04640001 TRY CLI 0(WORK2),X'F0' -* IS THIS BYTE A ZERO? VF01 04660001 BNE OUT -* NO,GET OUT OF THIS ROUTINVF01 04680001 BCTR WORK3,0 -* SUBTRACT THE COUNTER BY 1VF01 04700001 LTR WORK3,WORK3 -* TEST COUNTER AGAIN. VF01 04720001 BZ OUT -* NO MORE BYTES TO SEARCH. VF01 04740001 MVI 0(WORK2),X'40' -* OVERLAY WITH BLANK. VF01 04760001 LA WORK2,1(WORK2) -* INCRESE PTR TO NEXT BYTE.VF01 04780001 B TRY -* TRY OVER AGAIN. VF01 04800001 OUT LM WORK2,WORK3,TAIPEI -* RESTORE THE CONTAINS. VF01 04820001 BR RETURN -* BRANCH TO CALLING RTN. VF01 04840001 TAIPEI DS 2F -* FOR SAVING REGISTERS. VF01 04860001 NO7 DC F'9' -* COUNTER FOR AVOIDING. VF01 04880001 NO12 DC F'16' -* SPREAD DATA ON PAGES. VF01 04900001 TU DS 1X -* FETCH BYTE FOR TESTING . VF01 04920001 INVEECON DC V(IEHLISTI) VCON FOR IEHLISTI 04940001 ********************************************************************* 04960001 ** 04980001 ** IEHLISTI 05000001 ** 05020001 ********************************************************************* 05040001 IEHLISTI CSECT 05060001 BALR BASEREG2,0 ESTABLISH ADDRESSABILITY 05080001 USING *,BASEREG2 05100001 *********************************************************************** 05120001 ** 05140001 ** THIS SECTION OF THE PROGRAM SEES TO IT THAT THE INPUT CONTROL 05160001 ** CARDS ARE READ AND THE TABLES AND SWITCHES ARECORRECTLY SET 05180001 ** 05200001 *********************************************************************** 05220001 ** 05240001 LR 5,1 05260001 MVI SWITCHRD,X'00' RESET SWITCHRD 05280001 LA TABEND,TABLE+440 SET POINTER TO TABLE END 05300001 BAL RETURN,CLPR GO TO CLEAR PRINT AREA 05320001 MVI ZLINEPER,X'3A' SET LINES PER PAGE 05340001 MVI ZLINECNT,X'99' SET UP FOR SKIP 05360001 MVI RETCODE,X'00' 05380001 MVI ZSW,X'00' RESET MSG WRITER SWITCH 05400001 MVI RONSW,X'80' RESET VOLUME MNT SW 05420001 MVI MODLJFCB+124,X'40' 05440001 MVC MODLJFCB+125(19),MODLJFCB+124 05460001 MVC GENLST(16),DDNAME1 SET UP DDNAMES 05480001 MVC RONTAB(4),RONTAB1 05500001 LA MSGTO,ZSAVEHD 05520001 LA MSGFROM,132 05540001 BAL MSGRET,MVMSG MOVE MESSAGE 05560001 LR 1,5 05580001 ********************************************************************** 05600001 ** 05620001 ** THIS ROUTINE CHECKS FOR & MOVES INVOKE PARAMETERS 05640001 ** IT IS WRITTEN TO GO IN LINE WITH A PROGRAMS INITIAL CODE, 05660001 ** IS NOT REINTRANT,AND IS NOT TRANSPARENT (IE BOMBS REGS 2-7) 05680001 ** 05700001 ********************************************************************** 05720001 L 2,0(1) LOAD ADDR OF PARM FIELD 05740001 LTR 2,2 CHECK IF LAST PARAM 05760001 BM INLDDONE IF SO --- 05780001 L 3,4(1) LOAD ADDR OF DD NAMES 05800001 LTR 3,3 CHECK IF LAST PARAM 05820001 BM INLDDONE IF SO --- 05840001 L 4,8(1) LOAD ADDR OF HEAD INFO 05860001 INLDDONE EQU * 05880001 BAL 14,INLNCNT GO TO SCAN FOR LINECOUNT 05900001 LTR 2,2 CHECK FOR LAST ENTRY 05920001 BM INDONE IF SO ---- 05940001 BAL 14,INGETDD GO TO GET DDNAMES 05960001 L 3,4(1) RESTORE R3 DD NAMES A38584 05980001 LTR 3,3 CHECK FOR LAST ENTRY 06000001 BM INDONE IF SO ---- 06020001 BAL 14,INGETHD GO TO GET HEADDER 06040001 B INDONE 06060001 INLNCNT LH 5,0(2) GET LENGTH OF PARAMETER 06080001 LTR 5,5 CHECK IF = TO O 06100001 BCR 8,14 IF SO ---- 06120001 CLI 1(2),X'0A' IMBEDDED CHARS? M5844 06140001 BCR 7,14 YES,DEFAULT @ZA01245 06160002 AR 5,2 ADDR OF PARM END MINUS 2 M5844 06180001 LA 5,0(5) CLEAR HIGH ORDER BYTE M5844 06200001 LA WORK6,2(WORK4) ADDR OF PARM END M5844 06220001 LA 6,8 SET REG TO LAST POSSIBLE @ZA01245 06240002 SR 5,6 POSITION OF KEYWORD 06260001 INCOMP1 CLC INNAME(8),0(5) COMPARE FOR KEYWORD 06280001 BCR 7,14 NOT EQU, DEFAULT @ZA01245 06300002 INCOMP2 LA WORK5,8 LEN OF KEYWORD M5844 06380001 AR WORK4,WORK5 ADDR OF NO M5844 06400001 SR WORK6,WORK4 LEN OF NO TO USE IN EX M5844 06420001 LA WORK5,2 MAX NO OF BYTES M5844 06440001 CR WORK5,WORK6 IS LENGTH 2 M5844 06460001 BCR 7,14 IF NOT,RETURN M5844 06480001 CLI 0(WORK4),X'F9' IS FIRST BYTE TOO HIGH M5844 06500001 BCR 2,14 YES,RETURN M5844 06520001 CLI 0(WORK4),X'F0' IS FIRST BYTE TOO LOW M5844 06540001 BCR 4,14 YES,RETURN M5844 06560001 CLI 1(WORK4),X'F9' IS SECOND BYTE TOO HIGH M5844 06580001 BCR 2,14 YES,RETURN M5844 06600001 CLI 1(WORK4),X'F0' IS SECOND BYTE TOO LOW M5844 06620001 BCR 4,14 YES,RETURN M5844 06640001 PACK INCON(8),0(2,5) PACK LINECNT M5844 06660001 CVB WORK5,INCON MAKE BINARY M5844 06680001 STC WORK5,INLINCNT STORE IN SAVEAREA M5844 06700001 BR 14 06720001 INGETDD LH 5,0(3) LOAD LEN OF PARAM 06740001 LA 6,INDISIN LOAD DISP OF DDNAME SYSIN 06760001 CR 6,5 CHECK LIST LEN 06780001 BH ININNONE IN CANT INCLUDE ---- 06800001 CLI INDISIN(3),X'00' CHECK FOR NO DDNAME 06820001 BE ININNONE IF NOT ------ 06840001 MVC INSYSIN(8),INDISIN(3) IF DD NAME IN LIST -- SAVE 06860001 ININNONE LA 6,INDISPR LOAD DISP OF DDNAME SYSPR 06880001 CR 6,5 CHECK LIST LEN 06900001 BCR 2,14 IF CANT INCLUDE ---- 06920001 CLI INDISPR(3),X'00' CHECK FOR NO DDNAME 06940001 BE INCHKVOL IF NANE ------ 06960001 MVC INSYSPR(8),INDISPR(3) IF DD NAME IN LIST -- SAVE 06980001 INCHKVOL LA 6,INDISVOL CHECK IF LIST LONG ENOUGH 07000001 CR 6,5 TO INCLUDE VOLS NOT TO 07020001 BCR 2,14 DISMOUNT ---- IF SO 07040001 MVC INDISVOL-16(16,3),INSYSIN BRANCH OTHERWISE SAVE 07060001 LA 3,INDISVOL-16(3) CALC ADDR OF VOL LIST 07080001 ST 3,RONTAB 07100001 SRL 5,3 CALC NO OF DDNAMES 07120001 LA 3,8 07140001 SR 5,3 SUB 8 07160001 STC 5,RONTAB 07180001 BR 14 07200001 INGETHD LH 5,0(4) LOAD PARAM LEN 07220001 LTR 5,5 CHECH LEN = 0 07240001 BCR 8,14 IF SO ---- RETURN 07260001 LA 7,7 07280001 NR 5,7 INSURE NO LESS THAN 7 DIG 07300001 SR 7,7 SET REGISTER TO ZERO 0783 07320001 LA 4,2(4) POINT REG AT NO 07340001 INBLA2 IC 7,0(4) INSERT DIGIT OF NO 07360001 BCT 5,INBLA1 07380001 ST 7,CONVERT 07400001 MVC ZPGNO(4),CONVERT MOVE NO TO HEADDER 07420001 BR 14 RETURN 07440001 INBLA1 LA 4,1(4) POINT TO NEXT DIGIT 07460001 SLL 7,8 MOVE ONE BYTE A TIME 0783 07480001 B INBLA2 07500001 DS 0D 07520001 INNAME DC CL8'LINECNT=' NAME OF KEY WORD TO SCAN 07540001 INCON DS 8X WORK SPACE TO CONVERT 07560001 INDONE EQU * COME HERE AT END TO CONTIN 07580001 MVC PRINTOUT+40(8),GENLST+8 MOVE DDNAME TO DCB 07600001 MVC CARDIN+40(8),GENLST 07620001 MVI DFLG,X'00' BS0H 07640001 MVI DFLAG,X'00' BS0H 07660001 OPEN (PRINTOUT,OUTPUT) 07680001 TM PRINTOUT+48,X'10' TEST FOR OPENABILITY 07700001 BZ NOOPEN1 IF NOT OPENED --- 07720001 TM DFLG,X'10' CHECK FOR BLKSIZE ERROR BS0H 07740001 BZ NOFLG IF NONE -- BRANCH BS0H 07760001 MVI RETCODE,X'10' SET RETURN CODE TO 16 BS0H 07780001 B NOFREE BRANCH TO CLOSE DCB BS0H 07800001 NOFLG EQU * NO ERROR,OPEN 07820001 OPEN (CARDIN) 07840001 TM CARDIN+48,X'10' TEST FOR OPENABILITY 07860001 BZ NOOPEN2 IF NOT OPENED --- 07880001 TM DFLAG,X'10' CHECK FOR BLKSIZE ERROR BS0H 07900001 BC 1,INVBLK IF ERROR -- BS0H 07920001 B PBEGIN 07940001 INVBLK LA MSGFROM,148 BS0H 07960001 LA MSGTO,0 BS0H 07980001 BAL MSGRET,MVMSG MOVE THE MESSAGE BS0H 08000001 BAL RETURN,LINEPR PRINT MSG - INVALID DCB PARAMETER BS0H 08020001 MVI RETCODE,X'10' SET RETURN CODE TO 16 BS0H 08040001 B NOFREE3 CLOSE SYSIN BS0H 08060001 NOOPEN1 MVI RETCODE,X'10' SET RETURN CODE TO 16 08080001 B NOFREE2 08100001 NOOPEN2 LA MSGFROM,104 08120001 LA MSGTO,0 08140001 BAL MSGRET,MVMSG 08160001 BAL RETURN,LINEPR PRINT MSG - NO SYSIN DD CARD 08180001 MVI RETCODE,X'10' SET RETURN CODE TO 16 08200001 B NOFREE 08220001 PEXIT LH WORK4,PRINTOUT+62 LOAD BLKSIZE BS0H 08240001 OR WORK4,WORK4 BS0H 08260001 BC 8,DCBSIZ IF NONE SPECIFIED -- BS0H 08280001 LA WORK5,121 CHECK FOR MODULAR BLKSIZE BS0H 08300001 SR WORK3,WORK3 BS0H 08320001 DR WORK3,WORK5 BS0H 08340001 LTR WORK3,WORK3 CHECK FOR MODULAR BLKSIZE BS0H 08360001 BCR 8,RETURN IF MODULAR -- BS0H 08380001 MVI DFLG,X'10' SET ERROR FLAG -- PRINTOUT DCB BS0H 08400001 MVC PRINTOUT+62(2),PRINTOUT+82 MOVE LRECL TO BLKSIZE BS0H 08420001 RETURN 08440001 DCBSIZ MVI PRINTOUT+63,X'79' INSERT BLKSIZE -- 121 BS0H 08460001 RETURN 08480001 CEXIT LH WORK4,CARDIN+62 LOAD BLKSIZE BS0H 08500001 OR WORK4,WORK4 BS0H 08520001 BC 8,DCBSZ IF NONE SPECIFIED -- BS0H 08540001 LA WORK5,80 CHECK FOR MODULAR BLKSIZE BS0H 08560001 SR WORK3,WORK3 BS0H 08580001 DR WORK3,WORK5 BS0H 08600001 LTR WORK3,WORK3 CHECK FOR MODULAR BLKSIZE BS0H 08620001 BCR 8,RETURN IF MODULAR -- BS0H 08640001 MVI DFLAG,X'10' SET ERROR FLAG -- CARDIN DCB BS0H 08660001 MVC CARDIN+62(2),CARDIN+82 MOVE LRECL TO BLKSIZE BS0H 08680001 RETURN 08700001 DCBSZ MVI CARDIN+63,X'50' INSERT BLKSIZE -- 80 BS0H 08720001 RETURN 08740001 IEHLISTR CSECT 08760001 ********************************************************************** 08780001 ** 08800001 ** INVALID CONTROL STATEMENTS ARE TAKEN CARE OF HERE 08820001 ** 08840001 ********************************************************************** 08860001 PERRPR LA MSGFROM,0 08880001 LA MSGTO,0 08900001 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 08920001 BH *+8 BRANCH IF YES TO LET IT STAND 08940001 MVI RETCODE,X'08' SET RETURN CODE TO 8 08960001 BAL MSGRET,MVMSG GO TO MOVE MESSAGE 08980001 MVC 0(80,MSGTO),SWITCHRD+1 MOVE CARD TO PRINT 09000001 BAL RETURN,LINEPR GO TO PRINT A LINE 09020001 OI SWITCHRD,BYPASS TURN ON BYPASS SWITCH 09040001 TM SWITCHRD,LC TEST FOR LAST CARD 09060001 BO PTERM BRANCH IF LAST CARD 09080001 B PBEGIN CLOSE 09100001 PCLOSE TM SW,OPENSW IS WORKIN OPEN--- 09120001 MVI ZSW,X'01' 09140001 BZ PBEGIN IF NOT BRANCH 09160001 CLOSE (WORKIN) 09180001 B PBEGIN 09200001 ********************************************************************** 09220001 ** 09240001 ** THIS SECTION HANDLES ALL SYNSD EXITS ---- IT PRINTS A MESSAGE, 09260001 ** SETS THE APPROPRIATE RETURN CODE, AND TAKES THE CORROSPONDING 09280001 ** ACTION 09300001 ** 09320001 ********************************************************************** 09340001 WORKERR1 EQU * EP FOR SYNAD EXIT A24122 09360001 USING WORKERR1,15 USE EP FOR BASE - ONE INSTR A24122 09380001 L BASEREG1,ADDRCONT RE-LOAD ORGINAL BASE REG A24122 09400001 DROP 15 FOR CONTINUED A24122 09420001 USING IEHBAS01,BASEREG1 ADDRESSABILITY A24122 09440001 WORKERR EQU * EP FOR I/O ERR FROM I/O MACROS A24122 09460001 MVI RETCODE,X'0C' SET RETURN CODE TO 12 A24122 09480001 LA MSGTO,0 09500001 LA MSGFROM,144 09520001 BAL MSGRET,MVMSG 09540001 BAL RETURN,LINEPR PRINT ERROR MSG 09560001 B PCLOSE 09580001 SYSINERR EQU * 2564 09600001 USING SYSINERR,15 USE ENTRY PT FOR BASE-ONE INSTR 2564 09620001 L BASEREG1,ADDRCONT RE-LOAD ORGINAL BASE REG FOR 2564 09640001 DROP 15 2564 09660001 USING IEHBAS01,BASEREG1 CONTINUED ADDRESSABILITY 2564 09680001 MVI RETCODE,X'10' SET RETURN CODE TO 16 2564 09700001 LA MSGTO,0 09720001 LA MSGFROM,140 LOAD ERROR MSG. ADCON DISPLACEMENT 09740001 BAL MSGRET,MVMSG 09760001 MVC 0(8,15),INDD MOVE INPUT DDNAME TO PR 2564 09780001 BAL RETURN,LINEPR PRINT IO ERR MSG 09800001 B PTERM 09820001 ADDRCONT DC A(IEHBAS01) BASE ADDR OF IEHROOT CSECT 2564 09840001 INDD DC C' SYSIN ' 2564 09860001 ********************************************************************** 09880001 ** 09900001 ** THIS ROUTINE RECEIVES CONTROL AT END OF JOB 09920001 ** 09940001 *********************************************************************** 09960001 PTERM EQU * END OF JOB 09980001 CLOSE CARDIN CLOSE INPUT 10000001 FREEPOOL CARDIN 10020001 CLOSE (WORKIN) 10040001 TM RONSW,X'10' HAS THE VOL MOUNT ROUTINE 10060001 BZ NOFREE GOTTEN CORE 10080001 L 1,RONTAB+4 SET UP PARAMETERS TO FREE 10100001 LA 1,0(1) CORE USED BY THE VOLUME 10120001 LH 0,0(1) MOUNTING ROUTINE 10140001 FREEMAIN R,LV=(0),A=(1) 10160001 DELETE EP=DEVMASKT DELETE DEVICE MASK TABLE I276 10180001 DELETE EP=DEVNAMET DELETE DEVICE NAME TABLE I276 10200001 NOFREE EQU * CLOSE SYSPRINT 10220001 CLOSE PRINTOUT 10240001 FREEPOOL PRINTOUT 10260001 NOFREE2 EQU * READY TO GET OUT 10280001 L 13,SAVE13 10300001 SR 15,15 10320001 IC 15,RETCODE SET RETURN CODE 10340001 RETURN (14,12),RC=(15) 10360001 NOFREE3 EQU * CLOSE INPUT 10380001 CLOSE CARDIN BS0H 10400001 FREEPOOL CARDIN BS0H 10420001 B NOFREE CLOSE SYSPRINT BS0H 10440001 ********************************************************************** 10460001 ** 10480001 ** THIS IS A GENERALIZED MESSAGE WRITER IT WILL COUNT LINES 10500001 ** AND PAGES -- SAVE THE HEADDER -- AND SKIP TO ONE 10520001 ** 10540001 ********************************************************************** 10560001 LINEPR ST RETURN,ZSAVE14 SAVE RETURN ADDR 10580001 STM WORK2,WORK3,ZSAVE34 SAVE WORK REG CONTENTS A27416 10600001 TM ZSW,X'03' TEST FOR TRIPLE SPACE I282 10620001 BO ZSET3 YES, GO SET CARR CNTL I282 10640001 TM ZSW,X'02' TEST FOR DOUBLE SPACE 10660001 BO ZSET2 IF SO BRANCH 10680001 MVI PRINT-1,X'40' SET CARR CODE TO 1 SPACE 10700001 ZTEST1 TM ZSW,X'01' TEST FOR SKIP 10720001 BO ZSETSK IF SO -- BRANCH 10740001 ZTESTO CLC ZLINEPER(1),ZLINECNT IS PAGE FULL I282 10760001 BL ZSETSK IF SO -- BRANCH 10780001 ZSETZPR LA ZPR,PRINT-1 LOAD ADDR OF PRINT AREA 10800001 BAL RETURN,ZWRITE GO TO PRINT 10820001 NI ZSW,X'00' RESET SW 10840001 IC ZPR,ZLINECNT LOAD LINES ON PAGE 10860001 LA ZPR,1(ZPR) INCREMENT BY ONE 10880001 STC ZPR,ZLINECNT STORE NEW LINECOUNT 10900001 LM WORK2,WORK3,ZSAVE34 RESTORE WORK REGISTERS A27416 10920001 L RETURN,ZSAVE14 LOAD RETURN ADDR 10940001 CLPR MVI PRINT,X'40' CLEAR PRINT AREA 10960001 MVC PRINT+1(119),PRINT CLEAR PRINT AREA 10980001 BR RETURN 11000001 ZSET3 MVI PRINT-1,X'60' SET CARR CODE TO 3 SPACE I282 11020001 IC ZPR,ZLINECNT CURR NO. LINES/PAGE I282 11040001 LA ZPR,2(ZPR) ADD TWO LINES I282 11060001 STC ZPR,ZLINECNT UPDATE CUR LINE COUNT I282 11080001 B ZTESTO GO CHECK FOR END OF PP I282 11100001 ZSET2 MVI PRINT-1,X'F0' SET CARR CODE TO 2 SPACE 11120001 IC ZPR,ZLINECNT VF0I 11140001 LA ZPR,1(ZPR) VF0I 11160001 STC ZPR,ZLINECNT VF0I 11180001 B ZTEST1 11200001 ZSETSK LA ZPR,ZCTRLHD SET REG TO HEADDER 11220001 MVI ZCTRLHD,X'F1' SET CARR CODE TO SKIP TO 1 11240001 BAL RETURN,ZWRITE PRINT BLANKS AND SKIP 11260001 MVI ZLINECNT,X'04' RESET LINECOUNT 11280001 PACK CONVERT(8),ZPGNO(4) PACK PAGE NUMBER 11300001 CVB ZPR,CONVERT MAKE BINARY 11320001 LA ZPR,1(ZPR) INCREMENT BY ONE 11340001 CVD ZPR,CONVERT MAKE DECIMAL 11360001 UNPK ZPGNO(4),CONVERT(8) UNPACK 11380001 LA WORK2,ZPGNO -* ADDRESS OF PAGE NUMBER INFORMATION.VF01 11400001 LA WORK3,4 -* NO.OF DIGIT OT BE CONVERTED. VF01 11420001 BAL RETURN,TRY -* GO TO RTN TO RID OF LEADING ZERO VF01 11440001 OI ZPGNO+3,X'F0' CLEAR SIGN 11460001 MVI PRINT-1,X'60' SET CODE FOR 3 SPACE 11480001 B ZSETZPR 11500001 DS 0F 11520001 ZSAVE14 DS 4X 11540001 ZSAVE34 DS D SAVE AREA FOR WORK REGISTERS A27416 11560001 ZCTRLHD DS 1X 11580001 ZSAVEHD DS 120X 11600001 ZLINEPER DS 1X 11620001 ZLINECNT DS 1X 11640001 ZSW DS 1X 11660001 ZPR EQU 3 11680001 ZPGNO EQU ZSAVEHD+101 11700001 ZWRITE ST RETURN,STORRET SAVE RETURN ADDR 11720001 LA SAVEREG,SAVEAREA LOAD ADDR OF REG SAVE AREA 11740001 PUT PRINTOUT,(ZPR) 11760001 L RETURN,STORRET LOAD RETURN ADDR 11780001 BR RETURN RETURN 11800001 *******************************************************************VF0I 11820001 ** VF0I 11840001 ** THIS SECTION HANDLES END OF DATA SUMMARY VF0I 11860001 ** VF0I 11880001 *******************************************************************VF0I 11900001 DEODAD NI WORKIN+44,X'00' RESET ERROR BITS IN DCB VF0I 11920001 DRDFORM5 NOP 0(0) VF0I 11940001 LA PARAREG1,FORM5TTR VF0I 11960001 BAL RETURN,DOPOINT VF0I 11980001 DREAD5 BAL WORK2,DREAD VF0I 12000001 SR WORK5,WORK5 VF0I 12020001 LR WORK4,WORK5 VF0I 12040001 DSCAN LA WORK3,READIN+4 VF0I 12060001 DADDCYL MVC CONVERT(8),CLEAR CLEAR CONVERT VF0I 12080001 MVC CONVERT+7(1),4(WORK3) READY SPACE INFO FOR SUMMRYVF0I 12100001 A WORK4,CONVERT+4 ADD CYLINDERS VF0I 12120001 MVC CONVERT+6(2),2(WORK3) VF0I 12140001 A WORK5,CONVERT+4 ADD TRACKS VF0I 12160001 LA WORK3,5(WORK3) VF0I 12180001 C WORK3,RDPOS45 VF0I 12200001 BE DADD VF0I 12220001 DCHKEND C WORK3,RDPOS136 VF0I 12240001 BE DENDDSCB VF0I 12260001 B DADDCYL VF0I 12280001 DADD LA WORK3,1(WORK3) VF0I 12300001 B DADDCYL VF0I 12320001 DENDDSCB CLC CLEAR(5),0(WORK3) CHECK -MULTIPLE FORMAT 5'S VF0I 12340001 BE DFINAL VF0I 12360001 IC WORK2,4(WORK3) PICK UP RECORD ADDRESS VF0I 12380001 BCTR WORK2,0 DECREMENT BY ONE VF0I 12400001 STC WORK2,4(WORK3) RESTORE IN POINTER VF0I 12420001 MVC WORKIN+8(5),0(WORK3) MOVE CHAIN ADDR TO DCB VF0I 12440001 BAL WORK2,DREAD VF0I 12460001 B DSCAN VF0I 12480001 DFINAL EQU * PRINT SUMMARY 12500001 LA MSGFROM,48 VF0I 12520001 LA MSGTO,0 VF0I 12540001 BAL MSGRET,MVMSG VF0I 12560001 CVD WORK4,CONVERT MOVE AVAIL TRKS TO PRINT @ZA28980 12580099 UNPK PRINT+37(5),CONVERT+5(3) @ZA28980 12590099 LA WORK2,PRINT+37 -* ADR OF AVAIL TRACK TO PRINT. VF01 12600099 LA WORK3,5 -* NO.OF DIGIT TO BE PROCESSED. @ZA28980 12610099 BAL RETURN,TRY -* TO GET RID OF LEADING ZEROS. VF01 12620099 OI PRINT+41,X'F0' -* OVERLAP. @ZA28980 12630099 CVD WORK5,CONVERT -* CONVERT TO DECIMAL FOR PRINT. VF01 12700001 UNPK PRINT+11(4),CONVERT+5(3) VF0I 12720001 LA WORK2,PRINT+11 -* ADR OF AVAIL CYLINDER TO PRINT. VF01 12740001 LA WORK3,4 -*NO OF DIGITS TO BE PROCESSED. VF01 12760001 BAL RETURN,TRY -* GO TO GET RID OF LEADING ZEROS RTN.VF01 12780001 OI PRINT+14,X'F0' -* OVERLAP. VF01 12800001 BAL RETURN,LINEPR -* PRINT A SUMMARY INFORMATION. VF01 12820001 LA MSGFROM,52 VF0I 12840001 LA MSGTO,0 VF0I 12860001 BAL MSGRET,MVMSG VF0I 12880001 LH WORK3,VOIDDSCB+2 MOVE AVAILABLE DSCBS TO PRINT VF0I 12900001 CVD WORK3,CONVERT VF0I 12920001 UNPK PRINT+11(5),CONVERT+5(3) @ZA28980 12940099 LA WORK2,PRINT+11 -* ADR OF AVAIL DSCB FOR PRINT. VF01 12950099 LA WORK3,5 -* NO.OF DIGITS TO BE PROCESSED. @ZA28980 12960099 BAL RETURN,TRY -* GO TO GET RID OF LEADING ZEROS RTN.VF01 12970099 OI PRINT+15,X'F0' -* OVERLAP. @ZA28980 12980099 BAL RETURN,LINEPR -* PRINT ANOTHER SUMMARY INFORMATION.VF01 13040001 B PCLOSE VF0I 13060001 DREAD NOP 0(0) VF0I 13080001 LA SAVEREG,SAVEAREA VF0I 13100001 READ DSCBA,SF,WORKIN,READIN VF0I 13120001 CHECK DSCBA VF0I 13140001 OI READIN+44,X'F0' VF0I 13160001 BR WORK2 VF0I 13180001 ********************************************************************** 13200001 ** 13220001 ** THIS IS A GENERALIZED MESSAGE MOVER ITS PARAMETERS ARE 13240001 ** REG MSGTO=ADDR OF CORE TO RECEIVE MSG 13260001 ** IF 0 PRINT AREA WILL RECEIVE 13280001 ** REG MSGFROM= INDEX FACTOR OF CORRECT MSG ADCON 13300001 ** REG MSGRET= RETURN ADDR 13320001 ** 13340001 ********************************************************************** 13360001 MVMSG LR KEEPRET,MSGRET SAVE RETURN ADDRESS 13380001 L MSGLEN,IEHMSGAD GET ADDR OF MSG CSECT 13400001 AR MSGFROM,MSGLEN ADD TO DISP OF MSG ADCON 13420001 L MSGFROM,0(MSGFROM) GET ADDR OF MSG 13440001 SR MSGLEN,MSGLEN 13460001 IC MSGLEN,0(MSGFROM) PUT LENGTH OF MESSAGE IN MSGLEN 13480001 BCTR MSGLEN,0 DOWN LENGTH BY ONE 13500001 LTR MSGTO,MSGTO TEST FOR -- TO -- ADDR 13520001 BZ MSGTOSET BRANCH TO SET MSGTO 13540001 MSGEX EX MSGLEN,MSGMOVE MOVE MESSAGE 13560001 AR MSGTO,MSGLEN ADD LENGTH TO MSGTO 13580001 LR MSGRET,KEEPRET LOAD RETURN ADDR 13600001 BR MSGRET RETURN 13620001 MSGTOSET LA MSGTO,PRINT SET T/ ADDR TO PRINT AREA 13640001 B MSGEX 13660001 MSGMOVE MVC 0(1,MSGTO),1(MSGFROM) 13680001 ********************************************************************** 13700001 ** THIS IS A GENERAL POINT ROUTINE IT IS USED WHENEVER A 13720001 ** POINT IS TO BE ISSUED IT IS LINKED TO BY A ----BAL 14,15 13740001 ** REGISTER -- PARAREG 1 -- WILL CONTAIN THE ADDR OF THE TTR 13760001 ********************************************************************** 13780001 DOPOINT ST 14,PNTSTOR STORE RETURN ADDR 13800001 LR 1,PARAREG1 13820001 MVC CONVERT(3),0(1) 13840001 MVI CONVERT+3,X'00' 13860001 POINT WORKIN,CONVERT 13880001 L 14,PNTSTOR LOAD RETURN ADDR 13900001 BR 14 RETURN 13920001 ********************************************************************** 13940001 ** 13960001 ** THIS SECTION CONTAINS TABLES AND CONSTANTS REQUIRED BY AND FOR 13980001 ** THE VOLUME MOUNTING ROUTINE 14000001 ** 14020001 ********************************************************************** 14040001 DS 0F 14060001 PNTSTOR DS 4X 14080001 DS 0F 14100001 RONTAB DC AL1(2) 14120001 DC AL3(GENLST) 14140001 DC A(1) 14160001 DC A(1) 14180001 DEVCODE DS 4X 14200001 VOLID DS 6X 14220001 RTA DS 2X 14240001 UNIT DC 5X'00' DT0I 14260001 GENLST DS 16X 14280001 DDNAME1 DC CL8'SYSIN' 14300001 DDNAME2 DC CL8'SYSPRINT' 14320001 RONTAB1 DC AL1(2) 14340001 DC AL3(GENLST) 14360001 RONSEECT DC V(IEHMVESF) 14380001 DEVTABAD DC F'0' ADDRESS OF DEVICE NAME TABLE I276 14400001 ********************************************************************** 14420001 ** 14440001 ** THIS SECTION OF THE ROOT SEGMENT HANDLES THE PASSING OF 14460001 ** CONTROL FROM ONE SEGMENT TO ANOTHER 14480001 ** 14500001 ********************************************************************** 14520001 RONGO BALR 14,15 LINK TO VOLUME MNT RTN 14540001 L 15,RONVEECO 14560001 BR 15 14580001 RONVEECO DC V(RONBACK) 14600001 PBEGIN L 15,PVEECON 14620001 BR 15 14640001 RSTART L 15,RVEECON 14660001 BR 15 14680001 QSTART L 15,QVEECON @Z40CSJH 14686000 BR 15 @Z40CSJH 14692000 SSTART L 15,SVEECON YL026VC 14700002 BR 15 14760001 DSTART L 15,DVEECON VF0I 14780001 BR 15 VF0I 14800001 DVEECON DC V(IEHLISTD) VCON FOR IEHLISTD 14820001 PVEECON DC V(IEHLISTP) VCON FOR IEHLISTP 14840001 QVEECON DC V(IEHLISTQ) VCON FOR IEHLISTQ @Z40CSJH 14860000 RVEECON DC V(IEHLISTU) VCON FOR IEHLISTU 14880001 SVEECON DC V(IEHLISTS) VCON FOR IEHLISTS 14900001 DS 0D 14920001 ********************************************************************** 14940001 ** 14960001 ** THIS SECTION CONTAINS THE WORK AREAS AND DCB NECESSARY FOR 14980001 ** READING SYSIN AND SCANNING THE CONTROL CARDS 15000001 ** 15020001 ********************************************************************** 15040001 SWITCHRD DS 192X 15060001 CDDECB DS 24X 15080001 SAVEAREA DS 72X 15100001 CARDIN DCB DSORG=PS, -15120001 MACRF=(GM), -15140001 RECFM=FB, -15160001 LRECL=80, -15180001 EXLST=DCBEXITC, BS0H*15200001 BFTEK=S, -15220001 BUFNO=1, -15240001 SYNAD=SYSINERR 15260001 DS 0D 15280001 ********************************************************************** 15300001 ** 15320001 ** HERE IS THE SYSPRINT DCB 15340001 ** 15360001 ********************************************************************** 15380001 PRINTOUT DCB DSORG=PS, -15400001 MACRF=(PM), -15420001 RECFM=FBA, -15440001 LRECL=121, -15460001 EXLST=DCBEXITP, BS0H*15480001 BFTEK=S, -15500001 BUFNO=1 15520001 ********************************************************************** 15540001 ** 15560001 ** HERE IS THE DCB USED FOR READING A VTOC, OR PDS YL026VC 15580002 ** 15600001 ********************************************************************** 15620001 WORKIN DCB DDNAME=WORKDD, -15640001 DSORG=PS, -15660001 EXLST=EXIT, -15680001 RECFM=F, -15700001 SYNAD=WORKERR1, A24122-15720001 MACRF=RP, -15740001 BLKSIZE=256 15760001 SETEO3 DC AL3(SEODAD) 15780001 SETEO2 DC AL3(REODAD) 15800001 SETEO4 DC AL3(DEODAD) VF0I 15820001 SETEO1 DC AL3(1) 15840001 SETBLK1 DC AL2(96) 15860001 SETBLK2 DC AL2(256) 15880001 SETKEY1 DC AL1(8) 15900001 SETKEY2 DC AL1(44) 15920001 ********************************************************************** 15940001 ** 15960001 ** THIS SECTION CONTAINS CONSTANTS AND TABLES THAT ARE NOT RESET 15980002 ** 16000001 ********************************************************************** 16020001 DS 0F 16040001 OBLIST1 CAMLST SEARCH,OBTAININ,VOLID,DSCBIN 16060001 DS 0F VF0I 16080001 OBLIST3 CAMLST SEEK,TRACK,VOLID,HOLDAREA VF0I 16100001 DS 0F 16120001 FF DC 8X'FF' 16140001 DCBEXITC DC X'85' BS0H 16160001 DC AL3(CEXIT) BS0H 16180001 DCBEXITP DC X'85' BS0H 16200001 DC AL3(PEXIT) BS0H 16220001 CLEAR DC X'0000000000000000' 16240001 SW DC CL1'0' 16260001 * THE VALUES THAT 'FMT' CAN ASSUME ARE AS VF0I 16280001 * FOLLOWS - VF0I 16300001 * 1. X'01' - SIGNIFIES 'FORMAT' OPTION VF0I 16320001 * HAS BEEN SPECIFIED. VF0I 16340001 * 2. X'02' - SIGNIFIES THAT LL FIELD OF VF0I 16360001 * TTRLL IS NEGATIVE AND THAT VF0I 16380001 * WARNING MESSAGE IEH109I SHOULD VF0I 16400001 * BE GENERATED. VF0I 16420001 * 3. X'04' - SIGNIFIES THAT THE DEVICE IS VF0I 16440001 * A 2321 DATACELL. VF0I 16460001 * 4. X'08' - SPECIFIES THAT HALFWORD BEING VF0I 16480001 * CONVERTED IS A HH ADDRESS AND VF0I 16500001 * MUST BE TRANSPOSED BEFORE VF0I 16520001 * CONVERSION IF DEVICE IS 2321. VF0I 16540001 FMT DC CL1'0' VF0I 16560001 RDPOS45 DC A(READIN+44) VF0I 16580001 RDPOS136 DC A(READIN+135) VF0I 16600001 DSCBRET DC F'0' VF0I 16620001 FORM5TTR DC F'0' VF0I 16640001 VOIDDSCB DC F'0' VF0I 16660001 STRIP DC X'1F' 16680001 FIVE DC F'5' 16700001 RETCODE DS 1X 16720001 RDCARDAD DC V(IEHLISTC) VCON FOR IEHLISTC 16740001 PRINTEND DC A(PRINT+120) 16760001 TABAD DC A(TABLE) 16780001 PRPOS110 DC A(PRINT+110) 16800001 IEHMSGAD DC V(IEHLISTM) VCON FOR IEHLISTM 16820001 EXTRN IEHLISTM 16840001 DS 0F 16860001 DC X'6B' TRANSLATE X'EE' TO A COMMA I282 16880001 DC X'40' 16900001 TRANTAB DC X'F0F1F2F3F4F5F6F7F8F9C1C2C3C4C5C6' 16920001 CATNAME DC CL8'SYSCTLG' 16940001 MODLJFCB DC 13F'0' A29736 16960001 DC X'08000000' A29736 16980001 DC 30F'0' A29736 17000001 EXIT DC X'87' 17020001 DC AL3(MODLJFCB) 17040001 *********************************************************************** 17060001 ** 17080001 ** CONSTANTS --------- RESET TO ZEROS 17100001 ** 17120001 *********************************************************************** 17140001 * 17160001 DS 0D 17180001 DFLG DS X BS0H 17200001 DFLAG DS X BS0H 17220001 KEY DS 1X 17240001 VOLSW DS 1X 17260001 COMMSW DS 1X 17280001 DATE DS 5X 17300001 DS 0D 17320001 DEVTYPE DS 8X 17340001 CONVERT DS 8X 17360001 STORRET DS 4X 17380001 PDSSPACE DS 8X 17400001 SAVE13 DS F 17420001 DS 0D 17440001 DS 7X 17460001 CONTROL DC X'09' 17480001 PRINT DS 120X 17500001 TABLE DS 44X 17520001 DS 8X 17540001 DS 0D LOCATE WORK AREA ALIGNED 17560001 CATIN DS 440X 17580001 DS 0D VF0I 17600001 DS 4X VF0I 17620001 OBTAININ DS 8X 17640001 BLOCKIN DS 36X 17660001 DSCBIN DS 500X 17680001 SRDSW DS 1X 17700001 ZEROS EQU CLEAR 17720001 TRANSLAT EQU TRANTAB-240 17740001 DSYSUCB EQU X'0C' DISPLACE OF SYS RES UCB AD 17760001 DVOLID EQU X'0C' DISPLACE OF VOL ID IN UCB 17780001 LOCIN EQU CATIN 17800001 READIN EQU OBTAININ 17820001 VCBIN EQU CATIN 17840001 INDXNAME EQU DSCBIN+48 NOTE-- INDXNAME MUST BE LOCATED A27713 17860001 * 48 BYTES PAST DSCBIN A27713 17880001 STOREG EQU INDXNAME+44 17900001 QSTOREG EQU INDXNAME+84 17920001 LOCTAB EQU CATIN+256 17940001 DCBDDNAM EQU WORKIN+40 17960001 DCBBLKSI EQU WORKIN+62 17980001 KEYLE EQU WORKIN+16 18000001 DCBEODAD EQU WORKIN+33 18020001 INHEAD EQU ZSAVEHD HEADDER GOES HERE 18040001 INSYSPR EQU GENLST+8 SYSPRINT DD NAME GOES HERE 18060001 INSYSIN EQU GENLST SYSIN DD NAME GOES HERE 18080001 INLINCNT EQU ZLINEPER ONE BYTE BINARY GOES HERE 18100001 MAX DC A(PRINT+100) VF0I 18120001 UND DC C'UN' VF0I 18140001 CPS DC C'PS' VF0I 18160001 CIS DC C'IS' VF0I 18180001 CDA DC C'DA' VF0I 18200001 CPO DC C'PO' VF0I 18220001 CVS DC C'VS' YL026VC 18226002 TYPEVSAM DC X'0008' YL026VC 18232002 HOLDAREA EQU DSCBIN+144 VF0I 18240001 PHOLD EQU DSCBIN+350 LENGTH OF 28 BYTES VF0I 18260001 XHOLD EQU DSCBIN+400 LENGTH OF 10 BYTES VF0I 18280001 UNPKFLD EQU DSCBIN+420 LENGTH OF 5 BYTES VF0I 18300001 WK2321 EQU DSCBIN+440 LENGTH OF 2 BYTES VF0I 18320001 HLD2321 EQU DSCBIN+450 LENGTH OF 1 BYTE VF0I 18340001 PRINT1 DS 1X VF0I 18360001 SAVECCHH DS 5X VF0I 18380001 TRACK DS 5X VF0I 18400001 FMT1END DC A(HOLDAREA+20) VF0I 18420001 HOLDEND DC A(HOLDAREA+130) VF0I 18440001 ********************************************************************** 18460001 ** 18480001 ** IEHLISTP 18500001 ** 18520001 ********************************************************************** 18540001 IEHLISTP CSECT 18560001 ********************************************************************** 18580001 ** 18600001 ** HERE IS WHERE THE INPUT CARDS ARE READ, TABLES BUILT, 18620001 ** AND SWITCHES SET 18640001 ** 18660001 ********************************************************************** 18680001 BALR BASEREG2,0 18700001 USING *,BASEREG2 18720001 LA TABPNT,TABLE LOAD ADDR OF TABLE 18740001 MVI VOLSW,X'00' RESET VOLMUME SPEC SW 18760001 XC UNIT(5),UNIT ZERO FIELD FOR UNITADDR A38611 18780001 MVI SW,X'00' SET SWITCHES OFF 18800001 MVI FMT,X'00' VF0I 18820001 MVI TABLE,X'40' CLEAR TABLE 18840001 MVC TABLE+1(250),TABLE 18860001 MVC TABLE+251(250),TABLE+250 18880001 MVC TABLE+501(250),TABLE+500 18900001 MVI KEY,X'00' RESET KEY SW 18920001 MVI OBTAININ,X'00' CLEAR WORK AREA 18940001 MVC OBTAININ+1(250),OBTAININ CLEAR WORK AREA 18960001 L SAVEREG,KENS LOAD ADDR OF CARD READ 18980001 L BRANCHTO,RDCARDAD WORK AREA AND ADDR OF SCAN 19000001 BALR RETURN,BRANCHTO LINK TO CONTROL CARD SCAN 19020001 TM SWITCHRD,ERRORCD TEST FOR ERROR RETURN 19040001 BO PERRPR IF SO BRANCH 19060001 TM SWITCHRD,LC TEST FOR LAST CARD 19080001 BO PTERM IF SO --- EOJ 19100001 TM SWITCHRD,COMMAND TEST FOR COMMAND SCANNED 19120001 BZ PERRPR 19140001 TM SWITCHRD,KEYSW+PARAM TEST FOR NO KEY OR PARAM 19160001 BO PERRPR 19180001 BM PERRPR 19200001 CLC 0(8,SCANADD),COMMTAB IS COMMAND = LISTCTLG @Z40CSJH 19260000 BE PCAT @Z40CSJH 19265000 CLC 0(8,SCANADD),COMMTAB+8 IS COMMAND = LISTVTOC @Z40CSJH 19270000 BE PVTOC 19280001 CLC 0(8,SCANADD),COMMTAB+16 LISTPDS 19300001 BE PPDS 19320001 B PERRPR IF NONE GO TO ERROR 19340001 PCAT MVI COMMSW,X'01' SET SW TO 1 @Z40CSJH 19360000 B PON @Z40CSJH 19380000 PVTOC MVI COMMSW,X'02' SET SW TO 2 YL026VC 19400002 B PON 19420001 PPDS MVI COMMSW,X'03' 3 19440001 PON TM SWITCHRD,BYPASS ARE ALL PARAMETERS PASSED 19460001 BO PWORKIN IF SO BRANCH 19480001 L SAVEREG,KENS IF NOT --- LOAD REGISTERS 19500001 L BRANCHTO,RDCARDAD AND RETURN TO CARD CCANNER 19520001 BALR RETURN,BRANCHTO 19540001 TM SWITCHRD,ERRORCD+COMMAND TEST FOR ERROR OR COMMAND 19560001 BO PERRPR 19580001 BM PERRPR 19600001 CLI KEY,X'FF' WAS LAST KEY = VOL 19620001 BE PDEVICE IF SO BRANCH 19640001 LTR SCANLEN,SCANLEN TEST FOR PARAM LEN = 0 19660001 BE PBYPASS 19680001 TM SWITCHRD,KEYSW TEST FOR KEY 19700001 BO PKEY 19720001 TM SWITCHRD,PARAM TEST FOR PARAMETER 19740001 BO PPARAM 19760001 PBYPASS TM SWITCHRD,BYPASS TEST FOR LAST PARAMETER 19780001 BO PWORKIN 19800001 B PON 19820001 PKEY CLC 0(4,SCANADD),KEYS CHECK KEY FOR 19840001 BE PDATEKEY DATE 19860001 CLC 0(6,SCANADD),KEYS+7 19880001 BE POPTKEY OPTION 19900001 CLC 0(4,SCANADD),KEYS+14 19920001 BE PNODEKEY NODE 19940001 CLC 0(3,SCANADD),KEYS+21 19960001 BE PDSNKEY DSNAME 19980001 CLC 0(3,SCANADD),KEYS+28 20000001 BE PVOLKEY 20020001 B PERRPR IF INVALID KEY 20040001 PDATEKEY MVI KEY,X'04' FOR KEY=DATE 20060001 OI SW,DATESW 20080001 CLI COMMSW,X'02' IS THIS LISTVTOC @YM04802 20090002 BNE PERRPR NO -INVALID PARAM @YM04802 20092002 B PBYPASS 20100001 POPTKEY MVI KEY,X'08' FOR KEY=OPTION 20120001 B PBYPASS 20140001 PVOLKEY MVI KEY,X'FF' 20160001 B PBYPASS 20180001 PNODEKEY MVI KEY,X'0C' FOR KEY=NODE 20200001 OI SW,NODESW 20220001 CLI COMMSW,X'01' A42351 20240001 BNE PERRPR MUST BE LISTCTLG A42351 20260001 B PBYPASS 20280001 PDSNKEY MVI KEY,X'0C' FOR KEY = DSNAME YL026VC 20300002 OI SW,DSNAMESW 20320001 B PBYPASS 20340001 PDEVICE NOP 0(0) 20360001 TM SWITCHRD,KEYSW TEST FOR KEY = VOL 20380002 BZ PERRPR 20400001 MVI KEY,X'10' RESET KEY SW FOR VOL ID 20420001 BCTR SCANLEN,0 REDUCE LENGTH OF PARAMETER 20440001 MVI DEVTYPE,X'40' 20460001 MVC DEVTYPE+1(7),DEVTYPE 20480001 EX SCANLEN,PMVDEV MOVE DEVICE TYPE TO SAVE 20500001 B PBYPASS 20520001 PMVDEV MVC DEVTYPE(1),0(SCANADD) MOVE DEVICE TYPE TO SAVE 20540001 PPARAM LR WORK2,SCANADD 20560001 AR WORK2,SCANLEN 20580001 CLI 0(WORK2),C'(' 20600001 BE PERRPR 20620001 BCTR SCANLEN,0 20640001 SR WORK2,WORK2 20660001 IC WORK2,KEY PUT KEY IN REG 20680001 B PBRANCH(WORK2) BRANCH TO INDEXED BRANCH 20700001 PBRANCH B POPT 20720001 B PDATE KEY=4 20740001 B PERRPR 20760001 B PBLDTAB KEY=12 20780001 B PVOL 20800001 PDATE LA WORK2,4 20820001 CR WORK2,SCANLEN CHECH DATE LENGTH 20840001 BNE PERRPR GO TO ERROR IF WRONG LEN 20860001 MVC DATE(5),0(SCANADD) MOVE DATE 20880001 MVI KEY,X'00' RESET KEY 20900001 B PBYPASS 20920001 POPT LA WORK2,2 CHECK PARAM LENGTH 8173 20940001 CR WORK2,SCANLEN IF 3 CHARACTERS, 8173 20960001 BE PKEY CHECK FOR VOL PARAM 8173 20980001 LA WORK2,3 8173 21000001 CR WORK2,SCANLEN 21020001 BNE POPT1 21040001 CLC OPTION(4),0(SCANADD) 21060001 BE POPDUMP 21080001 POPT1 LA WORK2,5 21100001 CR WORK2,SCANLEN 21120001 BNE PERRPR 21140001 CLC OPTION+4(6),0(SCANADD) = FORMAT 21160001 BE POPLIST 21180001 B PERRPR ERROR IF BAD OPTION 21200001 POPDUMP OI SW,DUMPSW TURN ON DUMP SW 21220001 B *+8 VF0I 21240001 POPLIST MVI FMT,X'01' VF0I 21260001 MVI KEY,X'00' VF0I 21280001 B PBYPASS 21300001 PBLDTAB LA WORK2,43 21320001 CR WORK2,SCANLEN CHECK PARAMETER LENGTH 21340001 BL PERRPR LENGTH OVER 44 BYTES 21360001 EX SCANLEN,PTABLE EXECUTE MOVE DSNAME - NODE 21380001 TM SWITCHRD+129,X'FF' IS THERE A PARAN COUNT 8173 21400001 BZ PRESET NO,RESET KEY 8173 21420001 TM SWITCHRD,X'01' IS THERE A PARAN IN SWITCHRD8173 21440001 BZ PBLDMOR NO,MORE PDS NAMES TO FOLLOW 8173 21460001 PRESET MVI KEY,X'00' INSERT LAST PDS IN TABLE 8173 21480001 PBLDMOR LA TABPNT,44(TABPNT) UP TABLE POINTER 21500001 CR TABPNT,TABEND CHECK IF TABLE FULL 21520001 BNE PBYPASS IF SO BRANCH 21540001 MVI KEY,X'00' IF FULL RESET KEY 21560001 B PBYPASS 21580001 PTABLE MVC 0(0,TABPNT),0(SCANADD) MOVE DSNAME - NODE TO TAB 21600001 PVOL LA WORK2,5 CHECK LEN OF VOL ID 21620001 CR WORK2,SCANLEN 21640001 BL PERRPR CHECK LEN OVER 6 21660001 MVI VOLID,X'40' CLEAR VOLID FIELD @YA01685 21670002 MVC VOLID+1(5),VOLID @YA01685 21680002 EX SCANLEN,PMVID 21700001 MVI KEY,X'00' RESET KEY 21720001 MVI VOLSW,X'FF' TURN ON VOL SPEC SW 21740001 B PBYPASS 21760001 PMVID MVC VOLID(1),0(SCANADD) MOVE VOL ID TO SAVE AREA 21780001 PWORKIN CLI VOLSW,X'FF' WAS VOL SPEC IN CTRL CD 21800001 BE PFINDVOL IF SO ------ 21820001 L WORK2,CVTPTR IF VOL NOT SPEC IN 21840001 L WORK2,40(WORK2) CARD FIND SYSRES UCB AND 21860001 VON ICM WORK3,3,0(WORK2) GET VOLID AND DEVICE @ZM30153 21880003 N WORK3,FOXES ZERO LEFT HALF OF REG @ZM30153 21890003 C WORK3,FOXES CODE @ZM30161 21900003 BE PDEVNONE 21920001 LTR WORK3,WORK3 21940001 BZ NOTAUCB 21960001 TM 18(WORK3),X'20' TEST FOR D.A. 21980001 BZ NOTAUCB 22000001 TM 3(WORK3),X'02' 22020001 BO VFIND 22040001 NOTAUCB EQU * 22060001 LA WORK2,2(WORK2) 22080001 B VON 22100001 VFIND MVC VOLID(6),28(WORK3) MOVE VOL ID TO SAVE 22120001 MVC DEVCODE(4),16(WORK3) 22140001 B PCALLRON 22160001 PFINDVOL L WORK2,DEVTABAD GET ADDR OF DEVICE NAME TAB 22180001 L WORK3,0(WORK2) GET NUMBER OF ENTRIES 22200001 LA WORK2,4(WORK2) UP POINTER TO FIRST ENTRY 22220001 PDEVCOMP CLC DEVTYPE(8),0(WORK2) COMPARE 22240001 BE PDEVFIND BRANCH ON FIND 22260001 LA WORK2,12(WORK2) UP POINTER TO NEXT ELEMENT 22280001 BCT WORK3,PDEVCOMP CONTINUE SEARCH IF NOT END 22300001 * DT0I 22320001 * IF NO ENTRY IS FOUND IN THE DEVICE NAME TABLE CHECK THE DT0I 22340001 * UCB'S TO SEE IF IT WAS A UNIT ADDR DT0I 22360001 * DT0I 22380001 L WORK2,CVTPTR GET PTR TO UCB LUT 22400001 L WORK2,40(WORK2) DT0I 22420001 UCB ICM WORK3,3,0(WORK2) GET UCB PTR @ZM30153 22440003 N WORK3,FOXES ZERO LEFT HALF OF REG @ZM30153 22450003 TM 0(WORK2),X'FF' TEST IF END OF UCB LUT DT0I 22460001 BC 12,NOTEND DT0I 22480001 TM 1(WORK2),X'FF' DT0I 22500001 BC 1,PDEVNONE BRANCH IF END -- THIS INDICATES DT0I 22520001 * DEVICE NOT FOUND DT0I 22540001 NOTEND LTR WORK3,WORK3 TEST FOR ZERO ENTRY DT0I 22560001 BZ NEXTPTR BRANCH ON YES DT0I 22580001 CLC 13(3,WORK3),DEVTYPE IS THIS THE CORRECT DEV TYPE DT0I 22600001 BE UNITFND BRANCH ON YES DT0I 22620001 NEXTPTR LA WORK2,2(WORK2) POINT TO NEXT UCBLUT ENTRY DT0I 22640001 B UCB DT0I 22660001 UNITFND MVC DEVCODE(4),16(WORK3) MOVE IN DEV TYPE FROM UCB DT0I 22680001 CLI DEVTYPE+3,SLASH IS THIS A 2321 BIN NUMB DT0I 22700001 BE MOVE5 YES DT0I 22720001 MVC UNIT(3),13(WORK3) MOVE IN UNIT NAME FROM UCB DT0I 22740001 B PCALLRON DT0I 22760001 MOVE5 MVC UNIT(5),DEVTYPE MOVE IN DEVICE TYPE FORM DT0I 22780001 * REQUEST DT0I 22800001 B PCALLRON DT0I 22820001 PDEVFIND MVC DEVCODE(4),8(WORK2) SAVE DEVICE CODE 22840001 B PCALLRON 22860001 PDEVNONE LA MSGTO,0 PRINT ERROR MSG 22880001 LA MSGFROM,136 IF BAD DEVICE OR 22900001 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 22920001 BH *+8 BRANCH IF YES TO LET IT STAND 22940001 MVI RETCODE,X'08' SET RETURN CODE TO 8 22960001 BAL MSGRET,MVMSG VOL ID 22980001 BAL RETURN,LINEPR 23000001 B PCLOSE 23020001 PCALLRON LA 1,RONTAB SET UP REGISTERS FOR LINK 23040001 LA 13,DSCBIN LOAD ADDR OF REG SAVE AREA 23060001 L 15,RONSEECT 23080001 CLI DEVCODE+3,X'05' IS DEVICE 2321 23100001 BNE RONGO 23120001 OI FMT,X'04' DEVICE IS 2321 SET BIT 5 ON VF0I 23140001 B RONGO 23160001 RONBACK EQU * 23180001 ENTRY RONBACK 23200001 LA 13,SAVEAREA RESET REG SAVE AREA ADDR 23220001 TM RONSW,X'01' TEST FOR VOLUME MOUNTED 23240001 BZ PDEVNONE IF NOT BRANCH 23260001 NI RONSW,X'FE' 23280001 L WORK2,RONTAB+4 GET ADDR OF ADDR OF DDNAME 23300001 AH WORK2,RTA 23320001 L WORK2,0(WORK2) LOAD ADDR OF DDNAME 23340001 MVC DCBDDNAM(8),0(WORK2) MOVE DDNAME TO SAVE 23360001 B PHEAD 23380001 PHEAD NOP 0(0) 23400001 MVI ZSW,X'01' 23420001 CLI COMMSW,X'01' GO TO @Z40CSJH 23480000 BE PHDCAT PRINT CATALOG HEAD @Z40CSJH 23490000 CLI COMMSW,X'03' 23500000 BE PHDPDS PRINT PDS HEAD 23510000 B PHDVTOC PRINT VTOC HEAD 23520000 PHDCAT LA MSGFROM,20 @Z40CSJH 23530000 LA MSGTO,0 @Z40CSJH 23540000 BAL MSGRET,MVMSG @Z40CSJH 23550000 LA MSGTO,1(MSGTO) @Z40CSJH 23560000 MVC 0(6,15),VOLID @Z40CSJH 23570000 BAL RETURN,LINEPR GO TO PRINT A LINE @Z40CSJH 23580000 LA MSGFROM,60 @Z40CSJH 23590000 LA MSGTO,0 @Z40CSJH 23600000 BAL MSGRET,MVMSG @Z40CSJH 23610000 BAL RETURN,LINEPR @Z40CSJH 23620000 B QSTART @Z40CSJH 23630000 PHDPDS TM SW,DSNAMESW 23760001 BZ PERRPR 23780001 LA MSGFROM,28 23800001 LA MSGTO,0 23820001 BAL MSGRET,MVMSG 23840001 LA MSGTO,1(MSGTO) 23860001 MVC 0(6,15),VOLID 23880001 BAL RETURN,LINEPR GO TO PRINT A LINE 23900001 LA TABPNT,TABLE 23920001 B SSTART GO TO PDS ROUTINE 23940001 PHDVTOC LA MSGFROM,24 23960001 LA MSGTO,0 23980001 BAL MSGRET,MVMSG 24000001 LA MSGTO,1(MSGTO) 24020001 MVC 0(6,15),VOLID 24040001 BAL RETURN,LINEPR GO TO PRINT A LINE 24060001 TM SW,DUMPSW TEST OPTION 24080001 BO PHDDUMP IF DUMP 24100001 TM FMT,FMTSW VF0I 24120001 BO DSTART VF0I 24140001 B PHDLIST IF LIST 24160001 PHDDUMP TM FMT,FMTSW PREVENT DUMP AND FORMAT 24180001 BO PERRPR ON SAME CARD 24200001 LA MSGFROM,36 24220001 LA MSGTO,0 24240001 BAL MSGRET,MVMSG 24260001 BAL RETURN,LINEPR GO TO PRINT A LINE 24280001 LA MSGFROM,40 24300001 LA MSGTO,0 24320001 BAL MSGRET,MVMSG 24340001 BAL RETURN,LINEPR GO TO PRINT A LINE 24360001 LA MSGFROM,44 24380001 LA MSGTO,0 24400001 BAL MSGRET,MVMSG 24420001 BAL RETURN,LINEPR GO TO PRINT A LINE 24440001 B RSTART GO TO VTOC PROGRAM 24460001 PHDLIST LA MSGFROM,32 24480001 LA MSGTO,0 24500001 BAL MSGRET,MVMSG 24520001 BAL RETURN,LINEPR GO TO PRINT A LINE 24540001 B RSTART GO TO VTOC SECTION 24560001 DS 0F ALIGN TO FULLWORD @ZM30153 24570003 FOXES DC X'0000FFFF' ZEROS LEFT HALF OF REG @ZM30153 24572003 RONSW EQU RONTAB+4 24580001 KENS DC A(SWITCHRD) 24600001 COMMTAB DC CL8'LISTCTLG' 24620001 DC CL8'LISTVTOC' 24640001 DC CL8'LISTPDS' 24660001 OPTION DC CL10'DUMPFORMAT' 24680001 KEYS DC CL6'DATE' 24700001 DC X'04' 24720001 DC CL6'OPTION' 24740001 DC X'08' 24760001 DC CL6'NODE' 24780001 DC X'0C' 24800001 DC CL6'DSN' 24820001 DC X'0C' 24840001 DC CL6'VOL' 24860001 DC X'10' 24880001 * COMMUNICATION VECTOR TABLE DEFINITION 24885001 CVT DSECT 24890001 CVT SYS=MIN 24895001 ********************************************************************** 34980001 ** 35000001 ** IEHLISTQ 35020000 ** 35070000 ********************************************************************** 35120000 IEHLISTQ CSECT 35170000 *********************************************************************** 35220000 ** 35270000 ** THIS SECTION HANDLES THE SCANNING OF GENERAL 35320000 ** INFORMATION FROM THE CATALOG 35370000 ** 35420000 ** @Z40CSJH 35470000 ** THE ENTIRE CSECT IEHLISTQ WAS REACTIVATED @Z40CSJH 35520000 ** FOR EXTENDED MVS CVOL SUPPORT IN ORDER TO LIST AN OS @Z40CSJH 35570000 ** SYSCTLG DATASET, RESIDING ON A CONTROL @Z40CSJH 35620000 ** VOLUME (CVOL). THE FEATURE IS INITIATED @Z40CSJH 35670000 ** VIA THE LISTCTLG CONTROL FUNCTION @Z40CSJH 35720000 ** @Z40CSJH 35770000 *********************************************************************** 42240001 ** 42260001 BALR BASEREG2,0 ESTABLISH ADDRESSABILITY 42280001 USING *,BASEREG2 42300001 MVI OBTAININ,X'40' CLEAR WORK AREA 42310000 MVC OBTAININ+1(43),OBTAININ 42313000 MVC OBTAININ(8),CATNAME MOVE -- SYSCTLG -- TO 42316000 OBTAIN OBLIST1 WORK AREA AND OBTAIN DSCB 42319000 B QTEST(ECREG) TEST RETURN 42322000 QTEST B QOPEN CATALOG IS ON VOLUME 42325000 B QERR EITHER NO CATALOG OR PERM 42328000 B QERR I/O ERROE WILL CAUSE 42331000 B WORKERR PERM I/O ERROR 42334000 QERR LA MSGTO,0 ERROR MESSAGE 42337000 LA MSGFROM,8 42340000 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 42343000 BH *+8 BRANCH IF YES TO LET IT STAND 42346000 MVI RETCODE,X'08' SET RETURN CODE TO 8 42349000 BAL MSGRET,MVMSG MOVE ERROR MESSAGE 42352000 BAL RETURN,LINEPR PRINT ERROR MSG 42355000 B PCLOSE 42358000 QOPEN MVC MODLJFCB(44),OBTAININ SET UP JFCB FOR OPEN 42361000 CLI DSCBIN+56,X'FF' CHECK FOR CATALOG FORMATTED 42364000 BNE LERRLOC IF NOT ---- 42367000 MVI MODLJFCB+117,X'01' 42370000 MVI MODLJFCB+44,X'40' 42373000 MVI MODLJFCB+IND2,SHR SET SHARE BIT @AZ18372 42376000 MVC MODLJFCB+118(6),VOLID 42379000 MVC DCBBLKSI(2),SETBLK2 SET BLOCKSIZE IN DCB 42382000 MVC KEYLE(1),SETKEY1 SET KEYLEN IN DCB 42385000 MVC DCBEODAD(3),SETEO1 SET EODAD ADDR IN DCB 42388000 OI SW,OPENSW SET OPEN SWITCH ON 42391000 OPEN (WORKIN),TYPE=J OPEN DCB FOR INPUT 42394000 BAL RETURN,QCATREAD GO TO READ CATALOG 42397000 LA BLOCPNT,CATIN SET REG TO READ IN AREA 42400000 LA WORK2,24 LOAD REG WITH NO. OF BYTES 42403000 LNR WORK2,WORK2 TO SKIP AND INVERT 42406000 AH WORK2,CATIN ADD NO. OF BYTES USED 42409000 ST WORK2,ENTRYCNT STORE IN SAVE AREA 42412000 LA BLOCPNT,24(BLOCPNT) UP POIMTER PAST FIRST 42415000 QCHECK1 C BLOCPNT,CATEND COMP POINTER TO END ADDR. 42418000 BH QREAD1 BRANCH IF PAST LAST ENTRY 42421000 L WORK2,ENTRYCNT LOAD NUMBER OF BYTES TO 42424000 LTR WORK2,WORK2 BE SCANNED ADD CHECK IF D 42427000 BZ QREAD1 DONE 42430000 CLC FF(8),0(BLOCPNT) CHECK IF AT NAME=FFFFFFFF 42433000 BE QEND1 42436000 SR WORK2,WORK2 42439000 IC WORK2,11(BLOCPNT) PUT C INTO REG 42442000 LA WORK3,31 42445000 NR WORK2,WORK3 STRIP HI THREE BITS 42448000 SLL WORK2,2 MULT BY 4 42451000 LA WORK3,20 LOAD REG WITH 4 TIMES 5 UC0H 42454000 CR WORK2,WORK3 CHECK C LARGER THAN 4 42457000 BH QPRDS1 IF POINTER TO DATA SET 42460000 B QBRANCH1(WORK2) BRANCH TO INDEXED BRANCH 42463000 QBRANCH1 B QSCAN1 IF C=0 INITIAL,LAST,INDEX 42466000 B QPRDS1 C=1 VCB POINTER 42469000 B QSCAN1 C=2 INDEX POINTER 42472000 B QPRCVOL C=3 CVOL POINTER 42475000 B QPRCVOL C=4 ALIAS ENTRY UC0H 42478000 B QPRCVOL C=5 NEW CVOL POINTER UC0H 42481000 QSCAN1 SRL WORK2,1 DIVID BY 2 42484000 LA WORK2,12(WORK2) ADD USER DATE LEN TO 42487000 AR BLOCPNT,WORK2 ENTRY LEN -- UP POINTER 42490000 L WORK3,ENTRYCNT SUB BYTES SCANNED FROM 42493000 SR WORK3,WORK2 BYTE COUNT 42496000 ST WORK3,ENTRYCNT SAVE DIFFERANCE 42499000 B QCHECK1 42502000 QREAD1 EQU * ANOTHER BLOCK NEEDED 42505000 BAL RETURN,QCATREAD GO TO READ CATALOG 42508000 L BLOCPNT,CATINAD SET BLOCPNT TO START 42511000 LH WORK2,CATIN LOAD NO. OF BYTES TO 42514000 BCTR WORK2,0 SCAN AND REDUCE BY 2 42517000 BCTR WORK2,0 42520000 ST WORK2,ENTRYCNT 42523000 LA BLOCPNT,2(BLOCPNT) UP POINTER TO FIRST ENTRY 42526000 B QCHECK1 42529000 QEND1 CLC CLEAR(4),8(BLOCPNT) CHECK IF TTR = 000 42532000 BE QHEAD IF SO DONE WITH SCAN1 42535000 MVC KEEPTTR(3),8(BLOCPNT) IF NOT MOVE TTR 42538000 LA PARAREG1,KEEPTTR LOAD THE ADDR OF THE TTR 42541000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 42544000 B QREAD1 42547000 QPRCVOL B QPRGEN 42550000 QPRDS1 MVC INDXNAME(8),0(BLOCPNT) ON DATD SET ENTRY MOVE 42553000 MVC PRINT(8),INDXNAME NAME TO PRINT 42556000 LA MSGTO,PRINT+26 42559000 LA MSGFROM,128 42562000 BAL MSGRET,MVMSG MOVE DESCRIPTION TO PRINT 42565000 BAL RETURN,LPRDATA GO TO VOL ID SCAN 42568000 B QSCAN1 42571000 ********************************************************************** 42574000 ** 42577000 ** THIS SECTION PRINTS A CATALOG HEADDER AFTER THE GENERAL 42580000 ** INFORMATION IS PRINTER 42583000 ** 42586000 ********************************************************************** 42589000 QHEAD TM SW,NODESW 42592000 BO QHEAD2 BRANCH IF NODE SPECIFIED 42595000 LA MSGFROM,64 42598000 LA MSGTO,PRINT+13 42601000 BAL MSGRET,MVMSG MOVE ENTIRE PRINT HEADDER 42604000 BAL RETURN,LINEPR 42607000 B QALL 42610000 QHEAD2 L TABPNT,TABAD 42613000 LA MSGFROM,56 42616000 LA MSGTO,0 42619000 BAL MSGRET,MVMSG MOVE PARTIAL PRINT HEADDER 42622000 MVC 1(44,MSGTO),0(TABPNT) 42625000 BAL RETURN,LINEPR GO TO PRINT HEADDER 42628000 MVC INDXNAME(44),0(TABPNT) 42631000 MVC LOCTAB(3),PRINT SET TTR FIELD TO BLANKS 42634000 BAL WORK3,QLOCATE LINK TO SCAR ROUTINE 42637000 B PCLOSE 42640000 *********************************************************************** 42643000 ** 42646000 ** FOR ENTIRE CATALOG PRINTS THIS SECTION SCANS HIGH 42649000 ** LEVEL NODE POINTS AND HANDS THEM TO QLOCATE 42652000 ** 42655000 *********************************************************************** 42658000 QALL EQU * 42661000 LA WORK2,256 SET UP TTR = 1 42664000 ST WORK2,KEEPTTR FOR POINT 42667000 LA PARAREG1,KEEPTTR LOAD THE ADDR OF THE TTR 42670000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 42673000 BAL RETURN,QCATREAD GO TO READ CATALOG 42676000 LA BLOCPNT,CATIN SET REG FOR SCAN 42679000 LA WORK2,24 42682000 LNR WORK2,WORK2 CALC NO. OF BYTES TO SCAN 42685000 AH WORK2,CATIN MINUS BYTES IN FIRST ENTRY 42688000 ST WORK2,ENTRYCNT AND SAVE 42691000 LA BLOCPNT,24(BLOCPNT) UP POINTER TO FIRST ENTRY 42694000 QCHECK2 C BLOCPNT,CATEND COMP IF AT END OF BLOCK 42697000 MVI INDXNAME,X'40' 42700000 MVC INDXNAME+1(43),INDXNAME 42703000 BH QREAD2 42706000 L WORK2,ENTRYCNT CHECK IF BYTES TO SCAN = 0 42709000 LTR WORK2,WORK2 42712000 BZ QREAD2 42715000 CLC FF(8),0(BLOCPNT) CHECK IF AT NAME=FFFF 42718000 BE QEND2 42721000 SR WORK2,WORK2 42724000 IC WORK2,11(BLOCPNT) PUT C IN REG 42727000 LA WORK3,31 STRIP HI 3 BITS 42730000 NR WORK2,WORK3 42733000 SLL WORK2,2 MULT BY 4 42736000 LA WORK3,16 42739000 CR WORK2,WORK3 COMPARE C BIGGER THAN 4 42742000 BH QSCAN2 42745000 B QBRANCH2(WORK2) BRANCH TO INDEXED BRANCH 42748000 QBRANCH2 B QFIND IF C=0 42751000 B QSCAN2 C=1 42754000 B QFIND C=2 42757000 B QSCAN2 C=3 42760000 B QSCAN2 C=4 42763000 QFIND MVC INDXNAME(8),0(BLOCPNT) MOVE NAME TO SAVE AREA 42766000 NOTE WORKIN GET TTR OF LAST READ RECORD 42769000 ST PARAREG2,KEEPTTR 42772000 MVC PRINT(44),INDXNAME MOVE NAME TO PRINT 42775000 MVC LOCTAB(4),8(BLOCPNT) SAVE TTR OF INDEX 42778000 BAL WORK3,QLOCATE LINK TO SCANNER 42781000 LA PARAREG1,KEEPTTR SET UP ADDR OF TTR 42784000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 42787000 BAL RETURN,QCATREAD REREAD INDEX BLOCK 42790000 B QSCAN2 42793000 QSCAN2 SRL WORK2,1 DIVID BY 2 42796000 LA WORK2,12(WORK2) SET REG TO LEN OF ENTRY 42799000 AR BLOCPNT,WORK2 UPDATE BLOCPNT TO NEXT 42802000 L WORK3,ENTRYCNT RECALC NO. OF BYTES TO SCAN 42805000 SR WORK3,WORK2 42808000 ST WORK3,ENTRYCNT AND SAVE 42811000 B QCHECK2 42814000 QREAD2 EQU * 42817000 BAL RETURN,QCATREAD READ CATALOG 42820000 L BLOCPNT,CATINAD RESET BLOCK POINTER 42823000 LH WORK2,CATIN GET NO. OF BYTES TO SCAN 42826000 BCTR WORK2,0 AND REDUCE BY 2 42829000 BCTR WORK2,0 42832000 ST WORK2,ENTRYCNT AND SAVE 42835000 LA BLOCPNT,2(BLOCPNT) UP POINTER TO FIRST ENTRY 42838000 B QCHECK2 42841000 QEND2 CLC CLEAR(4),8(BLOCPNT) COMPARE FOR TTR 42844000 BE PCLOSE IF NONE ----- 42847000 MVC KEEPTTR(3),8(BLOCPNT) IF ONE ---- SAVE 42850000 LA PARAREG1,KEEPTTR SET UP ADDR OF TTR 42853000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 42856000 B QREAD2 42859000 *********************************************************************** 42862000 ** 42865000 ** WHEN HANDED A NODEPOINT THIS ROUTINE WILL SCAN OFF 42868000 ** ALL DATA SET POINTERS 42871000 ** 42874000 *********************************************************************** 42877000 ** 42880000 QLOCATE STM 0,9,QSTOREG SAVE REGISTERS 42883000 LA LOCPNT,LOCIN+20 SET UP REG TO START SCAN 42886000 LA TTRPTR,LOCTAB SET REG TO TTR TABLE 42889000 LA NAMEPTR,INDXNAME SET REG TO START OF NAME 42892000 LUPPTR2 CLI 0(NAMEPTR),X'40' 42895000 BE LUPON2 THIS ROUTINE UPS THE REG TO 42898000 LA NAMEPTR,1(NAMEPTR) THE FIRST BLANK FOLLOWIN 42901000 B LUPPTR2 THE NAME 42904000 LUPON2 EQU * CHECK FOR TTR 42907000 CLC LOCTAB(3),PRINT WAS A TTR OF NODE PASSED 42910000 BE LFIRSTLO IF NOT ----- 42913000 B LFIRSTRD IF SO ----- 42916000 LFIRSTLO MVC DSCBIN(44),INDXNAME 42919000 LOCATE LOCLIST2 LOCATE SPEC NODE 42922000 CLC VOLID(6),LOCIN+259 WAS NODE POINT FOUND VIA A CVOL 42925000 BNE LERRLOC POINTER ---- IF SO BRANCH 42928000 B LBRANCH(LOCERR) 42931000 LBRANCH B LERRLOC 42934000 B LERRLOC =4 42937000 B LERRLOC =8 42940000 B LFINDX =12 42943000 B LERRLOC =16 42946000 B LERRLOC =20 42949000 B WORKERR 42952000 LFINDX EQU * SAVE TTR OF THIS INDEX 42955000 MVC 0(3,TTRPTR),LOCIN+14 42958000 LFIRSTRD EQU * USE TTR TO READ 42961000 LA PARAREG1,LOCTAB LOAD THE ADDR OF THE TTR 42964000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 42967000 LREAD1 BAL RETURN,QCATREAD READ INDEX BLOCK 42970000 LREAD3 LA WORK2,20 42973000 LNR WORK2,WORK2 42976000 AH WORK2,CATIN CALC NO. OF BYTES TO 42979000 ST WORK2,QENTRCNT SCAN AND SAVE 42982000 B LCHKELEM 42985000 LCHKELEM C LOCPNT,LOCINEND CHECK FOR POINTER AT END 42988000 BH LREAD A28823 42991000 L WORK2,QENTRCNT CHECK NO. OF BYTES TO 42994000 LTR WORK2,WORK2 SCAN = 0 42997000 BZ LREAD 43000000 CLC FF(8),0(LOCPNT) COMP FOR LAST RECORD 43003000 BE LFF 43006000 SR KEEPC,KEEPC 43009000 IC KEEPC,11(LOCPNT) PUT '"' CHAR IN REG 43012000 LA JOB,31 43015000 NR KEEPC,JOB STRIP HI 3 BITS 43018000 SLL KEEPC,2 MULT BY 4 43021000 LR WORK2,KEEPC TO USE AS INDEX FACTOR 43024000 LA JOB,16 43027000 CR KEEPC,JOB COMPARE TO C 43030000 BH LDSPRINT IF C = 5 OR MORE 43033000 B LCHKC(KEEPC) 43036000 LCHKC B LINDEX IF C = O 43039000 B LDSPRINT C = 1 43042000 B LINDEX 43045000 B LERRLOC 43048000 B LERRLOC 43051000 LDSPRINT MVI 0(NAMEPTR),C'.' PUT . IN NAME 43054000 MVC 1(8,NAMEPTR),0(LOCPNT) ADD NEW NAME 43057000 TM 2(NAMEPTR),X'F0' IS THIS A GDG NAME 43060000 BZ GDG IF SO ---- 43063000 B GDGON 43066000 GDG XC 2(4,NAMEPTR),FF MAKE GDG NAME PRINTABLE 43069000 GDGON EQU * 43072000 MVC PRINT(44),INDXNAME MOVE NAME TO PRINT 43075000 BAL RETURN,LPRDATA PRINT IT 43078000 MVC 0(9,NAMEPTR),PRINT STRIP OFF . AND NAME 43081000 SRL KEEPC,1 DIVID C BY 2 43084000 LA KEEPC,12(KEEPC) CALC SIZE OF ERTRY 43087000 AR LOCPNT,KEEPC UP POINTER TO NEXT ENTRY 43090000 L WORK2,QENTRCNT 43093000 SR WORK2,KEEPC RECALC NO. OF BYTES TO SCAN 43096000 ST WORK2,QENTRCNT AND SAVE 43099000 B LCHKELEM 43102000 LINDEX EQU * ADD NAME 43105000 MVC 12(4,TTRPTR),8(LOCPNT) MOVE TTR OF NEXT INDEX 43108000 MVI 0(NAMEPTR),C'.' TO SAVE AND PUT . IN NAME 43111000 MVC 1(8,NAMEPTR),0(LOCPNT) ADD INDEX NAME 43114000 LUPPTR CLI 0(NAMEPTR),X'40' 43117000 BE LUPON 43120000 LA NAMEPTR,1(NAMEPTR) UP NAME POINTER PAST NAME 43123000 B LUPPTR 43126000 LUPON EQU * GET NEXT ENTRY 43129000 SRL KEEPC,1 43132000 AR LOCPNT,KEEPC 43135000 LA LOCPNT,12(LOCPNT) UP POINTER TO NEXT ENTRY 43138000 ST LOCPNT,4(TTRPTR) TO SCAN AND SAVE ADDR 43141000 LA WORK2,12 43144000 LNR WORK2,WORK2 RECALC NO. OF BYTES TO SCAN 43147000 A WORK2,QENTRCNT 43150000 STH WORK2,8(TTRPTR) 43153000 LA TTRPTR,12(TTRPTR) UP POINTER TO TTR TABLE 43156000 LR PARAREG1,TTRPTR LOAD THE ADDR OF THE TTR 43159000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 43162000 LA LOCPNT,LOCIN+20 SET POINTER TO FIRST ENTRY 43165000 B LREAD1 OF LOWER INDEX 43168000 LPAST EQU * CALC NO BYTES TO SCAN 43171000 LSET LA LOCPNT,LOCIN+2 UP POINTER PAST BYTE COUNT 43174000 LH WORK2,CATIN 43177000 BCTR WORK2,0 CALC AND SAVE THE NO. 43180000 BCTR WORK2,0 OF BYTES TO SAAN IN 43183000 ST WORK2,QENTRCNT THIS INDEX 43186000 B LCHKELEM 43189000 LREAD EQU * GET ANOTHER BLOCK 43192000 BAL RETURN,QCATREAD READ CATALOG BLOCK 43195000 NOTE WORKIN GET TTR OF LAST READ RECORD 43198000 ST PARAREG2,0(TTRPTR) SANE TTR 43201000 B LPAST 43204000 LR PARAREG1,TTRPTR LOAD THE ADDR OF THE TTR 43207000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 43210000 B LSET 43213000 LFF CLC ZEROS(3),8(LOCPNT) CHECK TTR FOR ZEROS 43216000 BE LEND IF SO ---- 43219000 B LCONT 43222000 LCONT EQU * POINT TO TTR 43225000 MVC LOCIN(4),8(LOCPNT) MOVE TTR TO POINT LOCATION 43228000 LA PARAREG1,LOCIN LOAD THE ADDR OF THE TTR 43231000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 43234000 B LREAD 43237000 LEND C TTRPTR,LOCTABAD CHECK FOR END OF SCAN 43240000 BE QLEAVE 43243000 LA JOB,12 IF NOT -- BACK UP POINTER 43246000 SR TTRPTR,JOB TO TTR TABLE 43249000 LH WORK2,8(TTRPTR) LOAD NO. OF BYTES TO SCAN 43252000 ST WORK2,QENTRCNT AND SAVE 43255000 LR PARAREG1,TTRPTR LOAD THE ADDR OF THE TTR 43258000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 43261000 LDNPTR CLI 0(NAMEPTR),C'.' 43264000 BE LDNON 43267000 BCTR NAMEPTR,0 BACK UP POINTER TO DSNAME 43270000 B LDNPTR 43273000 LDNON MVI 0(NAMEPTR),X'40' STRIP OFF NAME OF INDEX 43276000 MVC 1(9,NAMEPTR),0(NAMEPTR) JUST SCANNED 43279000 L LOCPNT,4(TTRPTR) 43282000 BAL RETURN,QCATREAD REREAD BLOCK 43285000 B LCHKELEM 43288000 LERRLOC LA MSGTO,0 43291000 LA MSGFROM,68 MOVE ERROR MSG TO PRINT 43294000 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 43400001 BH *+8 BRANCH IF YES TO LET IT STAND 43420001 MVI RETCODE,X'08' SET RETURN CODE TO 8 43440001 BAL MSGRET,MVMSG 43460001 BAL RETURN,LINEPR 43480000 B PCLOSE 43510000 QLEAVE LM 0,9,QSTOREG RESTORE REGISTERS 43540000 BR WORK3 AND RETURN 43570000 * ************************************************************* 43600000 * ** 43630000 * ** THIS SECTION OF THE PROGRAM WILL BE LINKED TO WHENEVER 43660000 * ** A DATA SET POINTER IS FOUND WITHIN THE CATALOG. THESE 43690000 * ** POINTERS CAN BE OF TWO TYPES ---(1) A STANDARD DATA SET 43720000 * ** POINTER WITH UP TO FIVE VOLUME ID.S AND(2) A VCB POINTER 43750000 * ** THE ONLY PARAMETER PASSED TO THIS ROUTINE WILL BE THE 43780000 * ** CONTENTS OF REGISTER BLOCPNT OR LOCPNT WHICH POINTS TO 43810000 * ** THE CATALOG POINTER WHICH POINTS TO VOLUMES OR VCB'S. 43840000 * ** THE NAME OF THE DATA SET BEING INVESTIGATED WILL BE 43870000 * ** AT LOCATION 'INDXNAME' 43900000 * ** 43930000 * ************************************************************* 43960000 LPRDATA ST 14,STOREG+28 SAVE REGISTERS 43990000 STM 3,9,STOREG 44020000 SR WORK3,WORK3 CHECK TO SEE IF THIS IS 44050000 IC WORK3,11(LOCPNT) A VCB POINTER 44080000 LA WORK4,31 44110000 NR WORK3,WORK4 STRIP HI 3 BITS 44140000 LA WORK4,1 44170000 CR WORK3,WORK4 44200000 BE QVCBPRNT IF VCB PTR ---- 44230000 B QDSPRNT IF NON VCB PTR ---- 44260000 QEND ST WORK6,LOCIN 44290000 LA PARAREG1,LOCIN LOAD THE ADDR OF THE TTR 44320000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 44350000 BAL RETURN,QCATREAD 44380000 QEND3 LM 3,9,STOREG RESTORE REG 44410000 L 14,STOREG+28 44440000 BR 14 RETURN 44470000 QDSPRNT EQU * GET CATLG INFO 44500000 LA WORK3,14(LOCPNT) SET POINTER TO DEVICE PTR 44530000 QREDO MVC PRINT+50(6),4(WORK3) MOVE VOL ID 44560000 SR WORK4,WORK4 44590000 IC WORK4,10(WORK3) PUT FILE SEQ IN REG 44620000 SLL WORK4,8 44650000 IC WORK4,11(WORK3) 44680000 CVD WORK4,CONVERT CONVERT AND MOVE FILE SEQ 44710000 L WORK4,CONVERT+4 44740000 SRL WORK4,4 44770000 ST WORK4,CONVERT+4 44800000 UNPK PRINT+60(7),CONVERT+2(7) MOVE FILE SEQ TO PRINT 44830000 MVI PRINT+66,X'40' 44860000 UNPK CONVERT(5),0(3,WORK3) UNPACK DEV TYPE 44890000 UNPK CONVERT+4(5),2(3,WORK3) 44920000 TR CONVERT(8),TRANSLAT TRANSLATE TO HEX 44950000 MVC PRINT+70(8),CONVERT MOVE DEV TYPE TO PRINT 44980000 LA WORK4,24 45010000 SR WORK2,WORK4 45040000 BAL RETURN,LINEPR PRINT LINE 45070000 CR WORK2,WORK4 CHECK FOR END OF VOL PTRS 45100000 BL QEND3 45130000 LA WORK3,12(WORK3) UP PTR TO NEXT ENTRY 45160000 B QREDO 45190000 QVCBPRNT EQU * GET BLOCK OF VCB'S 45220000 NOTE WORKIN GET TTR OF LAST READ RECORD 45250000 LR WORK6,PARAREG2 SAVE TTR OF NOTED RECORD 45280000 MVC LOCTTR(4),8(BLOCPNT) 45310000 LA PARAREG1,LOCTTR 45340000 BAL RETURN,DOPOINT 45370000 BAL RETURN,QCATREAD READ BLOCK OF CATALOG 45400000 B QLOCFIND 45430000 QLOCFIND LH WORK2,VCBIN PUT COUNT OF VOLUME PTRS IN REG 45460000 LA WORK3,VCBIN+2 POINT REG TO VOLUME POINTER 45490000 QREDOING SR WORK4,WORK4 45520000 MVC PRINT+50(6),4(WORK3) MOVE VOL ID TO PRINT 45550000 SR WORK4,WORK4 45580000 IC WORK4,10(WORK3) 45610000 SLL WORK4,8 PICK UP FILE SEQ 45640000 IC WORK4,11(WORK3) AND 45670000 CVD WORK4,CONVERT CONVERT TO DEC 45700000 L WORK4,CONVERT+4 45730000 SRL WORK4,4 45760000 ST WORK4,CONVERT+4 45790000 UNPK PRINT+60(7),CONVERT+2(7) MOVE TO PRINT AREA 45820000 MVI PRINT+66,X'40' 45850000 UNPK CONVERT(5),0(3,WORK3) 45880000 UNPK CONVERT+4(5),2(3,WORK3) PUT DEV CODE IN HEX FORM AN 45910000 TR CONVERT(8),TRANSLAT MOVE IT TO PRINE AREA 45940000 MVC PRINT+70(8),CONVERT 45970000 LA WORK4,1 46000000 SR WORK2,WORK4 46030000 BAL RETURN,LINEPR PRINT LINE 46060000 LTR WORK2,WORK2 CHECK FOR END OF VCB 46090000 BZ QENDVCB 46120000 LA WORK4,VCBIN+230 46150000 CR WORK4,WORK3 46180000 BE QENDVCB 46210000 LA WORK3,12(WORK3) 46240000 B QREDOING 46270000 QENDVCB CLC VCBIN+252(3),CLEAR 46300000 BE QEND 46330000 MVC LOCIN(4),VCBIN+252 MOVE TTR OF NEXT VCB 46360000 LA PARAREG1,LOCIN LOAD THE ADDR OF THE TTR 46390000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 46420000 BAL RETURN,QCATREAD READ NEXT VCB 46450000 B QLOCFIND 46480000 ********************************************************************** 46510000 ** 46540000 ** THIS SECTION HANDLES PRINTING OF GENERAL CATALOG 46570000 ** INFORMATION FOR CVOL AND ALIAS POINTERS 46600000 ** 46630000 ********************************************************************** 46660000 ** 46690000 QPRGEN LA WORK3,16 CHECK ENTRY TYPE UC0H 46720000 CR WORK2,WORK3 46750000 BE QALIAS BRANCH IF ALIAS POINTER UC0H 46780000 QCVOL LA MSGFROM,120 46810000 LA MSGTO,PRINT+26 46840000 BAL MSGRET,MVMSG MOVE CVOL MSG TO PRINT 46870000 MVC PRINT+1(8),0(BLOCPNT) MOVE INDEX NAME TO PRINT UC0H 46900000 LA WORK3,20 UC0H 46930000 CR WORK2,WORK3 IS THIS A NEW CVOL POINTER UC0H 46960000 BE QNEWCVOL YES, BRANCH UC0H 46990000 MVC PRINT+50(6),12(BLOCPNT) NO, MOVE VOL ID TO PRINT UC0H 47020000 B QGENPR 47050000 QNEWCVOL LA WORK3,12(BLOCPNT) GET POINTER TO DEVICE TYPE UC0H 47080000 UNPK CONVERT(5),0(3,WORK3) UNPACK DEVICE TYPE UC0H 47110000 UNPK CONVERT+4(5),2(3,WORK3) UC0H 47140000 TR CONVERT(8),TRANSLAT TRANSLATE TO HEX UC0H 47170000 MVC PRINT+70(8),CONVERT MOVE DEV TYPE TO PRINT UC0H 47200000 MVC PRINT+50(6),16(BLOCPNT) MOVE VOL ID TO PRINT UC0H 47230000 B QGENPR UC0H 47260000 QALIAS LA MSGFROM,124 47290000 LA MSGTO,PRINT+26 MOVE ALIAS MSG TO PRINT 47320000 BAL MSGRET,MVMSG 47350000 MVC PRINT+1(8),0(BLOCPNT) 47380000 MVC PRINT+80(8),12(BLOCPNT) 47410000 QGENPR BAL RETURN,LINEPR PRINT LINE 47440000 B QSCAN1 47470000 ********************************************************************** 47500000 ** 47530000 ** THIS SECTION CONTAINS THE READ AND CHECK MACROS 47560000 ** FOR READING THE CATALOG 47590000 ** 47620000 ********************************************************************** 47650000 ** 47680000 QCATREAD ST RETURN,STORRET SAVE REG 47710000 LA SAVEREG,SAVEAREA 47740000 READ CATDECB,SF,WORKIN,CATIN-8 READ CATALOG 47770000 CHECK CATDECB 47800000 L RETURN,STORRET RESTORE REG 47830000 BR 14 AND RETURN 47860000 LOCLIST2 CAMLST NAME,DSCBIN,VOLID,LOCIN 47890000 LOCINEND DC A(LOCIN+244) 47920000 LOCTABAD DC A(LOCTAB) 47950000 CATINAD DC A(CATIN) 47980000 CATEND DC A(CATIN+244) 48010000 ENTRYCNT DC F'0' 48040000 QENTRCNT DC F'0' 48070000 LOCTTR DC F'0' 48100000 KEEPTTR DC F'0' 48130000 ********************************************************************** 48160000 ** 48190000 ** IEHLISTU 48220000 ** 48250000 ********************************************************************** 48280000 IEHLISTU CSECT 48310000 *********************************************************************** 48340000 ** 48370000 ** HERE IT IS DECIDED WEATHER AN ENTIRE OR PARTIALPRINTOUT 48400000 ** OF THE VTOC HAS BEEN REQUESTED 48430000 ** 48460000 *********************************************************************** 48490000 ** 48520000 BALR BASEREG2,0 ESTABLISH ARRRESSABILITY 48550000 USING *,BASEREG2 48580000 TM SW,DSNAMESW TEST IF ENTIRE VTOC PRINT 48610000 BO RPARTIAL IF NOT ------ 48640000 B RENTIRE IF SO ----- 48670000 *********************************************************************** 48700000 ** 48730000 ** REQUESTS FOR PARTIAL VTOC PRINTOUTS ARE HANDLED HERE 48760000 ** 48790000 *********************************************************************** 48820000 ** 48850000 RPARTIAL LA TABPNT,TABLE SET REG TO START OF 48880000 ROBTAIN MVC OBTAININ(44),0(TABPNT) DSNAME TABLE MOVE NAME 48910000 LA SAVEREG,DSCBIN 48940000 OBTAIN OBLIST1 OBTAIN DSCB 48970000 B RTEST(ECREG) 49000000 RTEST B RLINK1 OK RETURN 49030000 B RERRD VOL NOT MOUNTED 49060000 B RERRD DSCB NOT FOUND 49090000 B WORKERR PERM I/O ERROR 49120000 RERRD LA MSGFROM,12 49150000 LA MSGTO,0 49180000 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 49210000 BH *+8 BRANCH IF YES TO LET IT STAND 49240000 MVI RETCODE,X'08' SET RETURN CODE TO 8 49270000 BAL MSGRET,MVMSG MOVE ERROR MSG TO PRINT 49300000 MVC 0(44,15),0(TABPNT) MOVE DSNAME TO PRINT 49330000 BAL RETURN,LINEPR GO TO PRINT A LINE 49360000 B RBACK 49390000 RLINK1 BAL RETURN,RPRDSCB LINK TO PRINT DSCB 49420000 CLC ZEROS(5),DSCBIN+91 POINTER TO FMT 2 OR 3 VF0I 49450000 BE RBACK VF0I 49480000 TM SW,DUMPSW TEST FOR DUMP OPTION VF0I 49510000 BZ RBACK VF0I 49540000 MVC TRACK(5),DSCBIN+91 LOAD CCHHR INTO TRACK VF0I 49570000 OBTAIN OBLIST3 SEEK FORMAT 2 OR 3 DSCB VF0I 49600000 B DFMERR2(ECREG) VF0I 49630000 DFMERR2 B DPRFMT2 VF0I 49660000 B RERRD VF0I 49690000 B RERRD VF0I 49720000 B WORKERR VF0I 49750000 DPRFMT2 MVC READIN(140),HOLDAREA MOVE DSCB TO READIN AREA VF0I 49780000 MVC DSCBIN+96(5),TRACK ADDR OF THIS DSCB TO INPUT VF0I 49810000 B RLINK1 PRINT DSCB VF0I 49840000 RBACK LA TABPNT,44(TABPNT) UPDATE TABLE POINTER 49870000 CR TABPNT,TABEND COMPARE FOR TABLE END 49900000 BNL PCLOSE IF DONE ---- 49930000 CLC 0(44,TABPNT),0(TABEND) CHECK IF NO MORE NAMES 49960000 BE PCLOSE IF SO ------ 49990000 B ROBTAIN IF NOT RETURN TO OBTAIN 50020000 *********************************************************************** 50050000 ** 50080000 ** REQUESTS FOR ENTIRE VTOC PRINTOUTS ANE HANDLED HERE 50110000 ** 50140000 *********************************************************************** 50170000 ** 50200000 RENTIRE EQU * SET UP JFCB FOR OPEN 50230000 MVI MODLJFCB,X'04' 50260000 MVC MODLJFCB+1(43),MODLJFCB 50290000 MVI MODLJFCB+44,X'40' 50320000 MVI MODLJFCB+IND2,SHR SET SHARE BIT YM06989 50350000 MVI MODLJFCB+117,X'01' 50380000 MVC MODLJFCB+118(6),VOLID 50410000 MVC DCBBLKSI(2),SETBLK1 SET BLOCKSIZE IN DCB 50440000 MVC KEYLE(1),SETKEY2 SET KEYLEN IN DCB 50470000 MVC DCBEODAD(3),SETEO2 SET EODAD ADDR IN DCB 50500000 OI SW,OPENSW SET OPEN SWITCH ON 50530000 OPEN (WORKIN),TYPE=J OPEN DCB FOR INPUT 50560000 L WORK2,WORKIN+44 GET ADDR OF DEB A25709 52120001 L WORK2,32(WORK2) GET UCB ADDR A25709 52140001 USING UCBD,WORK2 A25709 52160001 * CLI UCBTBYT4,X'05' IS DEVICE 2321 YL026VC 52180002 * BC 7,NOT2321A NO,GO CHECK TTR OF VTOC START YL026VC 52200000 *SUBUCBA CLC VOLID(6),DCELVOLI YES, FIND SUB UCB FOR THIS VOLYL026VC 52200100 * BE THISUCBA THIS IS THE SUB UCB, CHECK TTRYL026VC 52200200 * LA WORK2,16(WORK2) POINT TO NEXT 2321 SUB UCB YL026VC 52200300 * BNE SUBUCBA NOT THIS SUB UCB, CHECK NEXT YL026VC 52200400 *THISUCBACLI DCELVTOC+2,X'01' DOES VTOC START ON RECORD ONE YL026VC 52200500 * BE RGOREAD YES, GO DO READ, BYPASS POINT YL026VC 52200600 * MVC FORM5TTR(3),DCELVTOC NO, TTR OF VTOC FOR POINTYL026VC 52200700 * B SETUPA GO SET UP TO DO POINT YL026VC 52200800 NOT2321A CLI SRTEFSCT+2,X'01' VTOC START ON OTHER THAN RCD 1 A27506 52200900 BE RGOREAD NO, PROCEED NORMALLY A25709 52201000 MVC FORM5TTR(3),SRTEFSCT YES A25709 52201100 SETUPA LA PARAREG1,FORM5TTR SET UP ADDR OF TTR FOR POINT A27506 52201200 BAL RETURN,DOPOINT GO TO ISSUE POINT A25709 52201300 DROP WORK2 A25709 52201400 RGOREAD BAL WORK2,RREAD LINK TO THE READ MACRO 52201500 MVC TABLE(44),READIN 52201600 CLI READIN+44,FORMAT4 CHECK THE DSCB FOR FORMAT 4 52201700 BE RFORM4 52201800 CLI READIN+44,FORMAT5 CHECK FOR FORMAT 5 52201900 BE RFORM5 52202000 RCHKDUMP TM SW,DUMPSW TEST FOR DUMP SWITCH ON 52202100 BO RLINK 52202200 CLI READIN+44,FORMAT1 CHECK FOR FROMAT 1 52202300 BE RLINK 52202400 B RGOREAD RETURN TO WHERE WE LINK TO READ 52202500 RFORM4 TM SW,DUMPSW TEST FOR DUMP SWITCH OFF 52202600 BZ RSPACE 52202700 BAL RETURN,RPRDSCB GO TO PRINT DSCB 52202800 B RSPACE 52202900 RSPACE MVC VOIDDSCB+2(2),READIN+50 SAVE THE NUMBER OF EMPTY DSCBS 52203000 B RGOREAD 52203100 RFORM5 TM SW,FIRST5 IS THIS THE FIRST FORMAT 5 52203200 BO RCHKDUMP IF SO ----- 52203300 NOTE WORKIN GET TTR OF LAST READ RECORD 52203400 ST PARAREG2,FORM5TTR STORE NOTED TTR 52203500 OI SW,FIRST5 TURN ON FIRST FORMAT 5 SW 52203600 B RCHKDUMP 52203700 RLINK CLI READIN+44,FORMAT1 CHECK FOR FORMAT ZERO 52203800 BL RGOREAD IF SO --- 52203900 BAL RETURN,RPRDSCB IF NOT -- LINK TO PRINT 52204000 B RGOREAD 52204100 ********************************************************************** 52204200 ** 52204300 ** THIS SECTION CALCULATES AND PRINTS THE SPACE INFORMATION 52204400 ** ABOUT THE VTOC AND VOLUME 52204500 ** 52204600 ********************************************************************** 52204700 ** 52204800 REODAD NI WORKIN+44,X'00' RESET ERROR BITS IN DCB 52204900 LA PARAREG1,FORM5TTR LOAD THE ADDR OF THE TTR 52205000 BAL RETURN,DOPOINT BRANCH TO POINT ROUTINE 52205100 RREAD5 BAL WORK2,RREAD 52205200 SR WORK5,WORK5 CLEAR TRACK COUNT REG 52205300 SR WORK4,WORK4 CLEAR CYLINDER COUNT REG 52205400 RSCAN LA WORK3,READIN+4 52205500 RADDCYL MVC CONVERT(8),CLEAR CLEAR CONVERT 52205600 MVC CONVERT+7(1),4(WORK3) READY SP ACE INFO FOR SUMMA 52205700 A WORK4,CONVERT+4 52205800 MVC CONVERT+6(2),2(WORK3) 52205900 A WORK5,CONVERT+4 ADD UP TRACK COUNT 52206000 LA WORK3,5(WORK3) UP DSCB POINTER 52206100 C WORK3,RDPOS45 CHECK IF AT POSITION 45 52206200 BE RADD IF SO GO TO RADD 52206300 RCHKEND C WORK3,RDPOS136 CHECK IF AT POSITION 136 52206400 BE RENDDSCB 52206500 B RADDCYL 52206600 RADD LA WORK3,1(WORK3) SKIP OVER FORMAT 5 ID 52206700 B RCHKEND 52206800 RENDDSCB CLC CLEAR(5),0(WORK3) CHECK FOR CHAIN ADDRESS 52206900 BE RFINAL IF NONE GO TO 52207000 IC WORK2,4(WORK3) PICK UP 'R' OF CHAIN ADDR 52207100 BCTR WORK2,0 DECREMENT BY ONE 52207200 STC WORK2,4(WORK3) RESTORE IN CHAIN AADR 52207300 MVC WORKIN+8(5),0(WORK3) MOVE CHAIN ADDR TO DCB 52207400 BAL WORK2,RREAD READ NEXT DSCB 52207500 B RSCAN 52207600 RFINAL EQU * PRINT STATISTICS 52207700 LA MSGFROM,48 52207800 LA MSGTO,0 MOVE SPACE MSG TO PRINT 52207900 BAL MSGRET,MVMSG 52208000 CVD WORK4,CONVERT 52208100 UNPK PRINT+37(5),CONVERT+5(3) MOVE AVAIL TRKS TO PRNT @ZA28980 52208299 OI PRINT+41,X'F0' @ZA28980 52208399 CVD WORK5,CONVERT 52219499 UNPK PRINT+11(4),CONVERT+5(3) MOVE AVAIL CYL. 6547 52219599 OI PRINT+14,X'F0' 52219699 BAL RETURN,LINEPR GO TO PRINT LINE 52219799 LA MSGFROM,52 52219899 LA MSGTO,0 MOVE EMPTY DSCB MSG TO PRIN 52219999 BAL MSGRET,MVMSG 52220099 LH WORK3,VOIDDSCB+2 52220199 CVD WORK3,CONVERT 52220299 UNPK PRINT+11(5),CONVERT+5(3) MOVE NO. OF EMPTY DSCB @ZA28980 52220399 OI PRINT+15,X'F0' @ZA28980 52220499 BAL RETURN,LINEPR GO TO PRINT LINE 52240499 B PCLOSE 52240599 *********************************************************************** 52240699 ** 52240799 ** THIS ROUTINE WILL FORMAT AND PRINT THE DSCBS THAT HAVE BEEN 52240899 ** READ BY THE ENTIRE OR PARTIAL VTOC DEFLONK ROUTINES 52240999 ** 52241099 *********************************************************************** 52241199 ** 52241299 RPRDSCB SR WORK2,WORK2 52241399 ST RETURN,SAVERET SAVE RETURN ADDR 52241499 TM SW,DUMPSW TEST FOR DUMP OPTION VF0I 52241599 BO RHEX VF0I 52241699 IC WORK2,DSCBIN+12 LOAD BINARY YEAR 52241799 CVD WORK2,CONVERT 52241899 L WORK2,CONVERT+4 AND SAVE 52241999 SRL WORK2,4 52242099 ST WORK2,CONVERT+4 52242199 MVC DSCBDATE+4(1),CONVERT+7 52242299 SR WORK2,WORK2 CLEAR WORK2 52242399 IC WORK2,DSCBIN+13 LOAD BINARY DAY 52242499 SLL WORK2,8 52242599 IC WORK2,DSCBIN+14 52242699 CVD WORK2,CONVERT CONVERT TO DECIMAL 52242799 L WORK2,CONVERT+4 AND SAVE 52242899 SLL WORK2,4 52242999 ST WORK2,CONVERT+4 52243099 MVC CONVERT+7(1),DSCBDATE+4 COMBINE YEAR AND DAY 52243199 UNPK DSCBDATE(6),CONVERT+3(6) UNPACK AND SAVE 52243299 TM SW,DATESW TEST FOT DATE OPTION 52243399 BO RTSTDATE IF SO ------ 52243499 B RDUMP 52243599 RTSTDATE MVC PRINT(2),DSCBDATE+3 MOVE SPEC DATE 52243699 MVC PRINT+2(3),DSCBDATE 52243799 MVC PRINT+10(2),DATE+3 MOVE DATE IN DSCB 52243899 MVC PRINT+12(3),DATE 52243999 CLC PRINT(5),PRINT+10 COMPARE DATES 52244099 BL RFLAG IF PURGE PAST ----- 52244199 B RDUMP 52244299 RFLAG MVI PRINT+62,C'*' MOVE FLAG TO PRINT 10569 52244399 RDUMP MVC PRINT(44),0(TABPNT) MOVE NAME TO PRINT VF0I 52244499 B REDIT 52244599 RHEX CLI READIN+44,FORMAT1 TEST FOR FORMAT ONE 52244699 BNE ROTHER IF NOT --- 52244799 MVC PRINT(44),0(TABPNT) IF SO MOVE NAME TO PRINT 52244899 B RHEX3 52244999 ROTHER LA MSGFROM,72 MOVE FORMAT MSG TO PRINT 52245099 LA MSGTO,0 52245199 BAL MSGRET,MVMSG 52245299 MVC PRINT+8(1),READIN+44 MOVE FORMAT I.D. 52245399 B RHEX2 52245499 RHEX2 LA UNPKPR,PRINT+32 52245599 LA UNPKDSCB,READIN 52245699 RUNPK0 UNPK 0(13,UNPKPR),0(7,UNPKDSCB) VIA THE UNPACK ANDTRANSLATE 52245799 LA UNPKPR,12(UNPKPR) INSTRUCTIONS PUT KEY IN 52245899 LA UNPKDSCB,6(UNPKDSCB) HEX FORM AND PRINT 52245999 C UNPKPR,PRINTEND 52246099 BL RUNPK0 52246199 TR PRINT+32(88),TRANSLAT 52246299 B RHEX3 52246399 RHEX3 BAL RETURN,LINEPR 52246499 LA UNPKPR,PRINT+10 52246599 LA UNPKDSCB,DSCBIN 52246699 RUNPK1 UNPK 0(13,UNPKPR),0(7,UNPKDSCB) VIA THE UNPACK AND TRANSLAT 52246799 LA UNPKPR,12(UNPKPR) INSTRUCTIONS PUT THE FIRS 52246899 LA UNPKDSCB,6(UNPKDSCB) PORTION OF THE DSCB IN 52246999 C UNPKPR,PRINTEND HEX AND PRINT 52247099 BL RUNPK1 52247199 TR PRINT+10(110),TRANSLAT 52247299 BAL RETURN,LINEPR GO TO PRINT A LINE 52247399 LA UNPKPR,PRINT+10 52247499 LA UNPKDSCB,DSCBIN+55 52247599 RUNPK2 UNPK 0(13,UNPKPR),0(7,UNPKDSCB) DO SAME FOR LAST PART 52247699 LA UNPKPR,12(UNPKPR) OF DSCB 52247799 LA UNPKDSCB,6(UNPKDSCB) 52247899 C UNPKPR,PRINTEND 52247999 BL RUNPK2 52248099 TR PRINT+10(82),TRANSLAT 52248199 MVI PRINT+92,X'00' 52248299 MVC PRINT+93(28),PRINT+92 52248399 UNPK PRINT+103(11),WORKIN+8(6) MOVE DSCB ADDR TO PRINT2213 52248499 TM SW,DSNAMESW TEST FOR PARTIAL VTOC 7456 52248599 BO PARTIAL OBTAIN MACRO HAS DSCB 7456 52248699 B ENTIRE 7456 52248799 PARTIAL UNPK PRINT+103(11),DSCBIN+96(6) MOVE DSCB ADDRESS 7456 52248899 ENTIRE TR PRINT+103(11),TRANSLAT 7456 52248999 MVI PRINT+113,X'00' 52249099 BAL RETURN,LINEPR GO TO PRINT A LINE 52249199 L RETURN,SAVERET LOAD RETURN ADDR 52249299 BR RETURN RETURN 52249399 REDIT MVC PRINT+55(5),DSCBDATE 52249499 SR WORK2,WORK2 52249599 IC WORK2,DSCBIN+9 LOAD CREATION YEAR 52249699 CVD WORK2,CONVERT CONVERT TO DECIMAL 52249799 L WORK2,CONVERT+4 52249899 SRL WORK2,4 52249999 ST WORK2,CONVERT+4 52250099 MVC PRINT+51(1),CONVERT+7 MOVE YEAR TO PRINT 52250199 SR WORK2,WORK2 52250299 IC WORK2,DSCBIN+10 LOAD CREATION DAY 52250399 SLL WORK2,8 52250499 IC WORK2,DSCBIN+11 52250599 CVD WORK2,CONVERT CONVERT TO DECIMAL 52250699 L WORK2,CONVERT+4 52250799 SLL WORK2,4 52250899 ST WORK2,CONVERT+4 52250999 MVC CONVERT+7(1),PRINT+51 MOVE DAY TO PRINT 52251099 UNPK PRINT+47(6),CONVERT+3(6) 52251199 MVI PRINT+52,X'40' 52251299 SR WORK2,WORK2 52251399 IC WORK2,DSCBIN+15 LOAD NO. OF EXTENTS 52251499 CVD WORK2,CONVERT CONVERT TO DECIMAL 52251599 UNPK PRINT+78(5),CONVERT+3(5) PUT IN PRINT AREA 52251699 OI PRINT+82,X'F0' 52251799 MVC PRINT+88(6),DSCBIN+1 MOVE FILE SERIAL TO 52251899 SR WORK2,WORK2 PRINT 52251999 IC WORK2,DSCBIN+7 LOAD VOL SEQ 52252099 SLL WORK2,8 52252199 IC WORK2,DSCBIN+8 52252299 CVD WORK2,CONVERT CONVERT TO DECIMAL 52252399 UNPK PRINT+101(5),CONVERT+3(5) MOVE VOL SEQ TO PRINT 52252499 OI PRINT+105,X'F0' 52252599 LA MSGTO,PRINT+110 TARGET @Z40RSSA 52252699 LA MSGFROM,IBOTH RACF/PWD @Z40RSSA 52252799 TM DSCBIN+49,SECURITY TEST SECURITY @Z40RSSA 52252899 BO MSMSG RACF AND PASSWORD PROTECTED 52252999 LA MSGFROM,INONE NONE @Z40RSSA 52253099 BZ MSMSG NO PROTECTION @Z40RSSA 52253199 * RACF OR PASSWORD PROTECTED (NOT BOTH) @Z40RSSA 52253299 LA MSGFROM,IPASS PWD @Z40RSSA 52253399 TM DSCBIN+49,PSWD PSWD BIT ONLY @Z40RSSA 52253499 BO MSMSG PWD @Z40RSSA 52253599 LA MSGFROM,IRACF RACF @Z40RSSA 52253699 MSMSG BAL MSGRET,MVMSG @Z40RSSA 52253799 B RTYPE 52253899 RTYPE TM DSCBIN+38,TYPESAM TEST FILE TYPE 52253999 BO RSAM = SAM 52254099 TM DSCBIN+38,TYPEISAM 52254199 BO RISAM = ISAM 52254299 TM DSCBIN+38,TYPEDAM 52254399 BO RDAM = DAM 52254499 TM DSCBIN+38,TYPEPDS 52254599 BO RPDS = PDS 52254699 CLC DSCBIN+38(2),TYPEVSAM YL026VC 52254799 BE RVSAM = VSAM YL026VC 52254899 B RNOT = NOT DEFINED 52254999 RSAM LA MSGFROM,84 52255099 B RPRINT 52255199 RISAM LA MSGFROM,88 52255299 B RPRINT 52255399 RDAM LA MSGFROM,92 52255499 B RPRINT 52255599 RPDS LA MSGFROM,96 52255699 B RPRINT 52255799 RVSAM LA MSGFROM,332 YL026VC 52255899 B RPRINT YL026VC 52255999 RNOT LA MSGFROM,100 52256099 RPRINT LA MSGTO,PRINT+64 52256199 BAL MSGRET,MVMSG 52256299 BAL RETURN,LINEPR 52256399 L RETURN,SAVERET 52256499 BR RETURN 52256599 ********************************************************************** 52256699 ** 52256799 ** THIS SECTION CONTAINS THE READ AND CHECK MACROS USED TO 52256899 ** READ THE VTOC 52256999 ** 52257099 ********************************************************************** 52257199 ** 52257299 RREAD EQU * READ 52257399 LA SAVEREG,SAVEAREA LOAD SAVE AREA ADDR 52257499 READ DSCBDECB,SF,WORKIN,READIN 52257599 CHECK DSCBDECB 52257699 OI READIN+44,X'F0' 52257799 BR WORK2 RETURN 52257899 SAVERET DC F'0' 52257999 DSCBDATE DS 6X 52258099 UCBD DSECT , A25709 52258199 IEFUCBOB , A25709 52258299 ********************************************************************** 52258399 ** 52258499 ** IEHLISTS 52258599 ** 52258699 ********************************************************************** 52258799 IEHLISTS CSECT 52258899 *********************************************************************** 52258999 ** 52259099 ** THIS ROUTINE HANDLES ALL REQUESTS FOR PDS PRINTOUTS 52259199 ** 52259299 *********************************************************************** 52259399 ** 52259499 BALR BASEREG2,0 ESTABLISH ADDRESSABILITY 52259599 USING *,BASEREG2 52259699 USING PDS,BLOCPNT 52259799 L TABPNT,TABAD PUT ADDR OF NAME IN REG 52259899 SRESTART MVC OBTAININ(44),0(TABPNT) MOVE NAME TO WORK AREA 52259999 OBTAIN OBLIST1 OBTAIN DSCB 52260099 B SBRANCH(ECREG) CHECK RETURN FROM OBTAIN 52260199 SBRANCH B SCHKPDS IF OK RETURN 52260299 B SERRD IF VOL NOT MOUNTED 52260399 B SERRD IF NO SUCH DSNAME 52260499 B WORKERR PERM I/O ERROR 52260599 SCHKPDS TM DSCBIN+38,X'02' CHECK IF PDS 52260699 BZ SERRH IF NOT A PDS 52260799 MVC MODLJFCB(44),0(TABPNT) PREPARE JFCB FOR OPEN 52260899 MVI MODLJFCB+44,X'40' 52260999 MVI MODLJFCB+IND2,SHR SET SHARE BIT YM06989 52261099 MVI MODLJFCB+117,X'01' 52261199 MVC MODLJFCB+118(6),VOLID 52261299 MVC DCBBLKSI(2),SETBLK2 SET BLOCKSIZE IN DCB 52261399 MVC KEYLE(1),SETKEY1 SET KEYLEN IN DCB 52261499 MVC DCBEODAD(3),SETEO3 SET EODAD ADDR IN DCB 52261599 MVI SRDSW,X'00' RESET LAST MEMBER NAME PASSED 52261699 SR RECCNT,RECCNT ZERO OUT RECORD COUNTER 52261799 OI SW,OPENSW TURN ON OPEN SWITCH 52261899 OPEN (WORKIN),TYPE=J OPEN DCB FOR INPUT 52261999 TM WORKIN+48,X'10' IS DCB OPEN? @ZA11934 52262099 BO DSOPENOK YES,GO ON @ZA11934 52262199 NI SW,X'EF' NO,RESET OPEN SW @ZA11934 52262299 LA MSGFROM,352 ISSUE ERRORMESSAGE @ZA11934 52262399 B OPENERR GO ISSUE MSG NOTOPEN @ZA11934 52262499 DSOPENOK MVC PRINT(44),0(TABPNT) MOVE DSNAME TO PRINT @ZA11934 52262599 BAL RETURN,LINEPR GO TO PRINT 52262699 TM FMT,X'01' IS IT PDS FORMAT OPTION I282 52262799 BZ DMPOPT NO, GO PRINT DUMP SUB HEADING I282 52262899 MVI PDSFMTSW,X'C0' YES, SET FMT OPTION, FIRST ENTRY I282 52262999 B CONTINUE BY-PASS PRINT OF DUMP HEADING I282 52263099 DMPOPT MVI ZSW,X'02' SPACE BEFORE PRINT SUB HEADING I282 52263199 LA MSGTO,0 52263299 LA MSGFROM,116 MOVE SUB HEAD TO PRINT 52263399 BAL MSGRET,MVMSG 52263499 BAL RETURN,LINEPR PRINT SUB HEAD 52263599 CONTINUE SR WORK2,WORK2 I282 52263699 MVC PDSSPACE(1),DSCBIN+16 SAVE LAST BLK SPACE INFO 52263799 SREAD1 SR TOBE,TOBE 52263899 SREAD EQU * READ PDS 52263999 READ PDSDECB,SF,WORKIN,OBTAININ READ PDS 52264099 CHECK PDSDECB 52264199 LA RECCNT,1(RECCNT) BUMP RECORD COUNTER 52264299 CLI SRDSW,X'00' HAS LAST MEMBER BEEN PRINTED 52264399 BE TESTOPT NO, GO TEST OPTION REQUESTED I282 52264499 LA EMPTYCNT,1(EMPTYCNT) BUMP ENPTY RECORD CNT BY ONE 52264599 B SREAD 52264699 SERRD LA MSGFROM,12 52264799 LA MSGTO,0 52264899 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 52264999 BH *+8 BRANCH IF YES TO LET IT STAND 52265099 MVI RETCODE,X'08' SET RETURN CODE TO 8 52265199 BAL MSGRET,MVMSG MOVE NO DATA SET FOUND ERR 52265299 MVC 0(44,15),0(TABPNT) MOVE DSNAME 52265399 BAL RETURN,LINEPR GO TO PRINT 52265499 B SUPDATE 52265599 SERRH LA MSGFROM,16 MOVE ERROR MSG FOR DATA SET 52265699 OPENERR LA MSGTO,0 @ZA11934 52265799 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET? 52265899 BH *+8 BRANCH IF YES TO LET IT STAND 52265999 MVI RETCODE,X'08' SET RETURN CODE TO 8 52266099 BAL MSGRET,MVMSG 52266199 MVC 0(44,15),0(TABPNT) MOVE DSNAME TO PRINT 52266299 BAL RETURN,LINEPR GO TO PRINT 52266399 B SUPDATE 52266499 TESTOPT TM PDSFMTSW,X'C0' FORMAT OPTION REQUESTED I282 52266599 BM SECNDENT YES, NOT FIRST ENTRY I282 52266699 BO FIRSTENT YES, FIRST ENTRY I282 52266799 SSCAN SR TOBE,TOBE NO, DUMP OPTION - CONTINUE I282 52266899 LH TOBE,BLOCKIN NO. OF USEFUL BYTES IN DIRECTORY BLK 11386 52266999 LA BLOCPNT,BLOCKIN SET REG TO START SCAN 52267099 LA ELEMLEN,2 LOAD REG WITH 2 52267199 SRESCAN SR TOBE,ELEMLEN SUB ELEMENT LEN. FROM TOBE 52267299 AR BLOCPNT,ELEMLEN AND UP BLOCKPNT 52267399 SR WORK2,WORK2 52267499 CR WORK2,TOBE CHECK FOR END OF BLOCK 52267599 BNL SREAD1 52267699 CLC 0(8,BLOCPNT),FF CHECK FOR LAST RECORD 52267799 BE SDONE 52267899 TEMPDUMP ST RETURN,SRETURN SAVE RETURN REG I282 52267999 MVC PRINT+10(8),0(BLOCPNT) MOVE MEMBER NAME I282 52268099 UNPK PRINT+20(9),8(5,BLOCPNT) PUT TTRC IN PRINT AREA 52268199 MVI PRINT+28,X'40' 52268299 TR PRINT+20(8),TRANSLAT PUT TTRC IN HEX 52268399 SR WORK2,WORK2 52268499 IC WORK2,11(BLOCPNT) LOAD 'C' INTO REG 52268599 SR WORK3,WORK3 52268699 IC WORK3,STRIP STRIP HI 3 BITS 52268799 NR WORK2,WORK3 52268899 AR WORK2,WORK2 DOUBLE COUNT OF HALFWORDS 52268999 LTR WORK2,WORK2 CHECK FOR NO USER DATA 52269099 BE SNOUSE 52269199 MVI PRINT+30,X'EF' PAD PRINT AREA FOR TRANSLAT 52269299 MVC PRINT+31(87),PRINT+30 1264 52269399 LR WORK1,WORK2 52269499 LA WORK3,PRINT+30 52269599 LA ELEMLEN,12(BLOCPNT) 52269699 SUNPKPDS UNPK 0(11,WORK3),0(6,ELEMLEN) UNPK USER DATA 52269799 MVI 10(WORK3),X'EF' TO PRINT AREA 52269899 LA WORK3,11(WORK3) 52269999 LA ELEMLEN,5(ELEMLEN) 52270099 S WORK1,FIVE 52270199 BZ STRAN 52270299 BM STOFAR 52270399 C WORK3,PRPOS110 CHECK FOR END OF PRINT LINE 52270499 BL SUNPKPDS 52270599 STRAN TR PRINT+30(88),TRANSLAT PUT IN HEX FORM 1264 52270699 BAL RETURN,LINEPR GO TO PRINT 52270799 LTR WORK1,WORK1 CHECK FOR DONE 52270899 BZ SNOUSE2 52270999 BM SNOUSE2 52271099 LA WORK3,PRINT+30 SET POINTER TO CONTINUE 52271199 MVI PRINT+30,X'EF' 42343 52271299 MVC PRINT+31(87),PRINT+30 42343 52271399 B SUNPKPDS 52271499 SNOUSE BAL RETURN,LINEPR PRINT NAME IF NO USER DATA 52271599 SNOUSE2 LA ELEMLEN,12 52271699 AR ELEMLEN,WORK2 UP POINTER TO NEXT ENTRY 52271799 TM PDSFMTSW,X'80' FORMAT WITH < 34 BYTES I282 52271899 BO GOFORMAT GO CONTINUE FORMAT OPTION I282 52271999 B SRESCAN 52272099 GOFORMAT L RETURN,SRETURN RESTORE RETURN REG I282 52272199 BR RETURN CONTINUE FORMAT OPTION I282 52272299 STOFAR AR WORK1,WORK1 52272399 AR WORK3,WORK1 CHECK FOR UNPK TO FAR AND I 52272499 BCTR WORK3,0 IF SO BLANK OUT EXCESS 52272599 MVI 0(WORK3),X'EF' 52272699 LPR WORK1,WORK1 LOAD OVERFLOW POSITIVE 6715 52272799 BCTR WORK1,0 6715 52272899 EX WORK1,CLEANUP MOVE EF TO OVERFLOW 6715 52272999 SR WORK1,WORK1 INDICATE DONE 6715 52273099 B STRAN 52273199 CLEANUP MVC 1(1,WORK3),0(WORK3) 6715 52273299 SFINAL EQU * CLOSE PDS 52273399 MVI ZSW,X'01' 52273499 NI SW,X'7F' RESET OPEN SWITCH 52273599 CLOSE (WORKIN) CLOSE PDS 52273699 SUPDATE LA TABPNT,44(TABPNT) UPDATE TABLE POINTER 52273799 CR TABPNT,TABEND CHECK FOR END OF TABLE 52273899 BE PCLOSE IF SO ---- 52273999 CLC 0(44,TABPNT),0(TABEND) CHECK FOR NO MORE NAMES 52274099 BE PCLOSE IF NONE ----- 52274199 B SRESTART 52274299 SDONE MVI SRDSW,X'FF' SET LAST MEMBER PASSED SW 52274399 MVI PDSFMTSW,X'00' TURN PDS FORMAT SWITCH OFF I282 52274499 B SREAD1 52274599 SEODAD BAL RETURN,LINEPR 52274699 LA MSGFROM,4 52274799 LA MSGTO,0 52274899 BAL MSGRET,MVMSG 52274999 CVD RECCNT,CONVERT 52275099 UNPK PRINT+7(5),CONVERT+5(3) DIRECTORY BLOCKS ALLOCATED 9734 52275199 OI PRINT+11,X'F0' 9734 52275299 CVD EMPTYCNT,CONVERT 52275399 UNPK PRINT+53(5),CONVERT+5(3) DIRECTORY BLOCKS UNUSED 9734 52275499 OI PRINT+57,X'F0' 9734 52275599 BAL RETURN,LINEPR 52275699 B SFINAL 52275799 ** 52275899 ********************************************************************** 52275999 ** 52276099 ** THIS SECTION OF CSECT IEHLISTS HANDLES LISTPDS FORMAT REQUESTS 52276199 ** 52276299 ********************************************************************** 52276399 ** 52276499 * THIS ROUTINE IS ENTERED AT THE BEGINNING OF EACH PDS. 52276599 * A CHECK FOR PDS CREATED BY THE LINKAGE EDITOR IS MADE. 52276699 * PDS FORMAT HEADINGS ARE PRINTED. 52276799 * 52276899 FIRSTENT NI PDSFMTSW,X'BF' YES, TURN OFF FIRST ENTRY SWITCH I282 52276999 LA MSGFROM,260 INDEX FOR FIRST HEADING LINE I282 52277099 LA WORK3,260 INDEX IN WORK REGISTER I282 52277199 LA WORK1,13 THIRTEEN LINES IN HEADING I282 52277299 LA WORK2,SP+12 END ADDR OF CARR CNTRL CHAR CONS I282 52277399 HEADPRIN MVC ZSW(1),0(WORK2) NUMBER OF SPACES PIOR TO PRINT I282 52277499 LA MSGTO,0 PDS FORMAT HEADING TO PRINTER I282 52277599 BAL MSGRET,MVMSG MOVE LINE TO PRINT BUFFER I282 52277699 BAL RETURN,LINEPR PRINT HEADING LINE I282 52277799 LA MSGFROM,4(WORK3) INDEX FOR NEXT HEADING LINE I282 52277899 LR WORK3,MSGFROM SAVE INDEX FOR NEXT HEADING I282 52277999 BCTR WORK2,0 POINT TO NEXT CARR CNTRL CHAR I282 52278099 BCT WORK1,HEADPRIN PRINT THIRTEEN LINES I282 52278199 BAL RETURN,LINEPR SPACE BETWEEN COL HEAD,MEMBERS I282 52278299 * 52278399 * THIS ROUTINE IS ENTERED AT THE BEGINNING OF EACH DIRECTORY 52278499 * ENTRY. CHECKS ARE MADE FOR AN ALIAS NAME AND THE POSSIBLE 52278599 * NEED FOR A SECOND LINE. 52278699 * 52278799 SECNDENT LA BLOCPNT,BLOCKIN ADDR OF BEG OF DIRECTORY RECORD I282 52278899 LA BLOCPNT,2(BLOCPNT) ADDR OF BEG OF FIRST ENTRY I282 52278999 LH ELEMLEN,BLOCKIN NO. OF USED BYTES IN DIR RCD I282 52279099 BCTR ELEMLEN,0 NO. OF USED BYTES I282 52279199 BCTR ELEMLEN,0 MINUS COUNT FIELD I282 52279299 FMTENTRY SR WORK1,WORK1 CLEAR REGISTER FOR COMPARE I282 52279399 CR WORK1,ELEMLEN END OF DIRECTORY RECORD I282 52279499 BNL SREAD YES, GO READ ANOTHER DIR RCD I282 52279599 CLC 0(8,BLOCPNT),FF LAST MEMBER BEEN PROCESSED I282 52279699 BE SDONE YES, GO CALCULATE END INFORMATON I282 52279799 CLC ZLINECNT,ZLINEPER IS IT END OF PAGE TIME M5844 52279899 BL ONWARD NO, GO FORMAT DIRECTORY ENTRY I282 52279999 LA MSGTO,0 YES, PRINT FMT SUB HEADING I282 52280099 LA MSGFROM,304 INDEX FOR FIRST FMT SUB HEADING I282 52280199 BAL MSGRET,MVMSG MOVE TO PRINT BUFFER I282 52280299 MVI ZSW,X'01' SET CARR CODE TO SKIP TO NEXT PP I282 52280399 BAL RETURN,LINEPR PRINT FIRST FMT SUB HEADING LINE I282 52280499 LA MSGTO,0 SECOND LINE TO PRINT BUFFER I282 52280599 LA MSGFROM,308 SECOND LINE INDEX FACTOR I282 52280699 BAL MSGRET,MVMSG MOVE TO PRINT BUFFER I282 52280799 BAL RETURN,LINEPR PRINT SECND FMT SUB HEADING LINE I282 52280899 BAL RETURN,LINEPR SPACE BETWEEN COL HEAD,MEMBERS I282 52280999 ONWARD SR WORK2,WORK2 CLEAR REG FOR IC INSTRUCTION I282 52281099 IC WORK2,11(BLOCPNT) INSERT LENGTH BYTE I282 52281199 SR WORK3,WORK3 CLEAR REG FOR IC INSTRUCTION I282 52281299 IC WORK3,STRIP INSERT AND FIELD FOR NR INSTR I282 52281399 NR WORK2,WORK3 STRIP OFF NON LENGTH BITS I282 52281499 L WORK3,ELEVEN LOAD CONSTANT FOR CR INSTRUCTION I282 52281599 CR WORK2,WORK3 COMPARE FOR ENTRIES < 34 BYTES I282 52281699 BL DOFMTDMP DO DUMP OPTION FOR THIS ENTRY I282 52281799 CONFMTOP TM 11(BLOCPNT),X'80' NO, IS MEMBER AN ALIAS I282 52281899 BZ MNAME NO, GO PUT NAME IN PRINT LINE I282 52281999 OI PDSFMTSW,ALIASMSK TURN ON ALIAS BIT-AOS XM4744 52282099 TM 20(BLOCPNT),X'C0' YES, IS MEMBER ALSO RENT OR REUS I282 52282199 BZ MASTERIC NO, GO MOVE IN ASTERISK I282 52282299 TM 20(BLOCPNT),X'04' ALSO SCATTER LOAD I282 52282399 BZ SETBIT NO, GO SET ALIAS AND RENT-REUS I282 52282499 OI PDSFMTSW,X'08' SET SCAT, ALIAS AND RENT OR REUS I282 52282599 SETBIT OI PDSFMTSW,X'20' SET MEMBER ALIAS AND RENT-REUS I282 52282699 MASTERIC MVI PRINT+9,C'*' REFLECT NAME IS AN ALIAS I282 52282799 * 52282899 * THIS ROUTINE BUILDS THE STANDARD FIELDS OF THE DIRECTORY 52282999 * ENTRY IN THE PRINT LINE. 52283099 * 52283199 MNAME MVC PRINT+1(8),0(BLOCPNT) MEMBER NAME I282 52283299 UNPK PRINT+15(7),27(4,BLOCPNT) ENTRY POINT I282 52283399 MVI PRINT+21,X'EF' EXTRA BYTE TR-BLANK I282 52283499 TR PRINT+15(7),TRANSLAT MAKE EP PRINTABLE I282 52283599 UNPK PRINT+24(5),20(3,BLOCPNT) ATTRIBUTES I282 52283699 MVI PRINT+28,X'EF' EXTRA BYTE TR-BLANK I282 52283799 TR PRINT+24(5),TRANSLAT MAKE ATTR PRINTABLE I282 52283899 UNPK PRINT+31(7),8(4,BLOCPNT) TTR OF BEG OF MEMBER I282 52283999 MVI PRINT+37,X'EF' EXTRA BYTE TR-BLANK I282 52284099 TR PRINT+31(7),TRANSLAT MAKE TTR PRINTABLE I282 52284199 UNPK PRINT+39(7),12(4,BLOCPNT) TTR OF FIRST BLOCK TXT I282 52284299 MVI PRINT+45,X'EF' EXTRA BYTE TR-BLANK I282 52284399 TR PRINT+39(7),TRANSLAT MAKE TTR PRINTABLE I282 52284499 XC CONVERT(8),CONVERT SET D WORD TO ZEROES I282 52284599 MVC CONVERT+1(3),22(BLOCPNT) ALIGN CONTIG STORAGE I282 52284699 L WORK1,CONVERT INTO REG I282 52284799 CVD WORK1,CONVERT AND CVD I282 52284899 UNPK PRINT+48(8),CONVERT+4(4) MAKE PRINTABLE I282 52284999 OI PRINT+55,X'F0' INCLUDING SIGN I282 52285099 MVC CONVERT+6(2),25(BLOCPNT) ALIGN LEN FIRST TEXT I282 52285199 LH WORK1,CONVERT+6 INTO REG I282 52285299 CVD WORK1,CONVERT AND CVD I282 52285399 UNPK PRINT+60(5),CONVERT+5(3) MAKE PRINTABLE I282 52285499 OI PRINT+64,X'F0' INCLUDING SIGN I282 52285599 UNPK PRINT+69(7),30(4,BLOCPNT) ORGIN FIRST TEXT BLOCK I282 52285699 MVI PRINT+75,X'EF' EXTRA BYTE TR-BLANK I282 52285799 TR PRINT+69(7),TRANSLAT MAKE PRINTABLE I282 52285899 * XM4744 52285999 * CALCULATE THE LENGTH OF THE COMPLETE ENTRY XM4744 52286099 * XM4744 52286199 NI BITS,HWORDMSK TURN HI 3 BITS OFF XM4744 52286299 SR WORK3,WORK3 ZERO WORK3 XM4744 52286399 IC WORK3,BITS NO OF HALFWORDS XM4744 52286499 AR WORK3,WORK3 NO OF BYTES OF USER DATA XM4744 52286599 LA WORK3,12(WORK3) TOTAL LENGTH OF ENTRY XM4744 52286699 * XM4744 52286799 * CHECK FOR AOS L/E CREATED PDS BY CHECKING ORG-FIRST-TEXT XM4744 52286899 * FIELD. IF AOS CREATED,THEN CHECK AOS ATTRIBUTES. XM4744 52286999 * XM4744 52287099 TM 30(BLOCPNT),AOSLE AOS L/E CREATED? XM4744 52287199 BZ NOTAOS NOT AOS,BRANCH XM4744 52287299 MVC PRINT+89(6),PRINT+69 MOVE AOS ATTR TO NEW FLD XM4744 52287399 MVI PRINT+69,BLANK BLANK ORG-FST-TXT XM4744 52287499 MVC PRINT+70(5),PRINT+69 FIELD XM4744 52287599 * XM4744 52287699 * LENGTH CALCULATIONS FOR AOS PDS XM4744 52287799 * XM4744 52287899 LA WORK1,END-BEG(BLOCPNT) MIN PDS LENGTH XM4744 52287999 TM PDSFMTSW,ALIASMSK IS MEMBER AN ALIAS? XM4744 52288099 BZ NOMEM NO,BRANCH XM4744 52288199 LA WORK1,10(WORK1) ADD LENGTH MEM+TTR XM4744 52288299 NOMEM TM ATTR,SCATBIT IS MEMBER SCATTER LOADED? XM4744 52288399 BZ NOTSCTR NO,BRANCH TO CHECK SSI XM4744 52288499 LA WORK1,8(WORK1) ADD SCTR INFO LENGTH XM4744 52288599 OI PDSFMTSW,SCATMSK SET SCTR LOADED BIT XM4744 52288699 * XM4744 52288799 * CHECK FOR SSI XM4744 52288899 * XM4744 52288999 NOTSCTR TM AOSATTR,SSIBIT SSI PRESENT? XM4744 52289099 BZ NOSSIH NO,CONTINUE XM4744 52289199 UNPK PRINT+79(9),0(5,WORK1) SSI TO PRINT LINE XM4744 52289299 MVI PRINT+87,TRBLANK MAKE BLANK XM4744 52289399 TR PRINT+79(9),TRANSLAT MAKE SSI PRINTABLE XM4744 52289499 LA WORK1,4(WORK1) FOR APF TEST XM4744 52289599 B APF TEST FOR APF XM4744 52289699 NOSSIH LA MSGTO,PRINT+79 MOVE ABSENT IN XM4744 52289799 LA MSGFROM,316 MOVE ABSENT XM4744 52289899 BAL MSGRET,MVMSG TO PRINT XM4744 52289999 APF TM AOSATTR,APFBIT APF PRESENT? XM4744 52290099 BZ OTHERINF NO,BRANCH XM4744 52290199 * YM2247 52290299 * CHECK FOR SSI & ALIAS - WHEN NOT PRESENT REPOSITION POINTER TO APF 52290399 * 52290499 TM AOSATTR,SSIBIT SSI PRESENT? YM2247 52290599 BO LECNT YES, BRANCH YM2247 52290699 TM PDSFMTSW,ALIASMSK ALIAS? YM2247 52290799 BO LECNT YES,BRANCH YM2247 52290899 SH WORK1,DEADBYTE SUBT 1 BYTE TO REPOSITION YM2247 52290999 LECNT CLI 0(WORK1),SIZEBIT IS IT CORRECT SIZE? YM2247 52291099 BL OTHERINF NO, GET OUT @ZA28588 52291199 CLI 1(WORK1),SIZEBIT AUTH REQD? @ZA28588 52291299 BL NOAPF PRINT 'NO' @ZA28588 52291399 MVC PRINT+97(3),YES PRINT 'YES' XM4744 52291499 B OTHERINF ANYTHING ELSE? XM4744 52291599 NOAPF MVC PRINT+97(2),NO PRINT 'NO' XM4744 52291699 B OTHERINF YM2247 52291799 * 52291899 * THIS ROUTINE CREATES THE SSI INFO FIELD IN THE PRINT LINE. 52291999 * 52292099 NOTAOS NI PDSFMTSW,OSBIT TURN OFF ALIAS BIT - AOS YA00062 52292199 LA WORK1,END-BEG MINIMUM PDS ENTRY LENGTH XM4744 52292299 TM PDSFMTSW,X'20' IS MEMBER ALIAS AND RENT OR REUS I282 52292399 BZ NOTARR NO, BYPASS ADDITION OF THAT LEN I282 52292499 LA WORK1,10(WORK1) YES, ADD ALIAS, RENT/REUS LENGTH I282 52292599 NOTARR TM 20(BLOCPNT),X'04' IS MEMBER SCATTER LOADED I282 52292699 BZ NOTSCATR NO, BYPASS ADDITION OF THAT LEN I282 52292799 LA WORK1,8(WORK1) YES, ADD SCATTER INFO LEN I282 52292899 OI PDSFMTSW,X'10' SET SCATTER LOADED BIT I282 52292999 NOTSCATR CR WORK1,WORK3 IS SSI PRESENT XM4744 52293099 BE NOSSI NO, GO PUT ABSENT IN PRINT LINE I282 52293199 LA WORK1,0(WORK1,BLOCPNT) ADDRESS OF SSI I282 52293299 UNPK PRINT+79(9),0(5,WORK1) SSI TO PRINT LINE I282 52293399 MVI PRINT+87,X'EF' EXTRA BYTE TR-BLANK I282 52293499 TR PRINT+79(9),TRANSLAT MAKE SSI PRINTABLE I282 52293599 B OTHERINF GO CHECK FOR OTHER INFORMATION I282 52293699 NOSSI LA MSGTO,PRINT+79 MOVE I282 52293799 LA MSGFROM,316 ABSENT TO I282 52293899 BAL MSGRET,MVMSG PRINT LINE I282 52293999 * 52294099 * THIS ROUTINE HANDLES THE OTHER INFORMATION FIELD. 52294199 * 52294299 OTHERINF TM 20(BLOCPNT),X'24' IS MEMBER IN OVLY OR SCAT LOAD I282 52294399 BZ PRINTLNE NO, GO PRINT LINE I282 52294499 TM 20(BLOCPNT),X'20' IS MEMBER IN OVLY I282 52294599 BO OVLYINFO YES, GO CREATE OVLY INFO I282 52294699 LA MSGTO,PRINT+103 NO,MOVE SCTR= XM4744 52294799 LA MSGFROM,320 TO I282 52294899 BAL MSGRET,MVMSG PRINT LINE I282 52294999 UNPK PRINT+108(7),TTRNOTE SCTR TTR XM4744 52295099 MVI PRINT+114,TRCOMMA COMMA XM4744 52295199 TR PRINT+108(7),TRANSLAT MAKE TTR PRINTABLE XM4744 52295299 MVC PDSFMTWK(8),33(BLOCPNT) ALIGN OTHER SCAT INFO I282 52295399 LH WORK1,PDSFMTWK SCATTER LIST SIZE I282 52295499 CVD WORK1,CONVERT CONVERT TO DECIMAL I282 52295599 UNPK PRINT+115(5),CONVERT+5(3) MAKE PRINTABLE XM4744 52295699 OI PRINT+119,SIGN INCLUDING SIGN XM4744 52295799 BAL RETURN,LINEPR PRINT FIRST LINE XM4744 52295899 LH WORK1,PDSFMTWK+2 TRANSLATION TABLE SIZE I282 52295999 CVD WORK1,CONVERT CONVERT TO DECIMAL I282 52296099 UNPK PRINT+108(5),CONVERT+5(3) MAKE PRINTABLE I282 52296199 OI PRINT+112,X'F0' INCLUDING SIGN I282 52296299 MVI PRINT+113,COMMA COMMA XM4744 52296399 LH WORK1,PDSFMTWK+4 ESDID OF 1ST TXT CSECT I282 52296499 CVD WORK1,CONVERT CONVERT TO DECIMAL I282 52296599 UNPK PRINT+114(2),CONVERT+6(2) MAKE PRINTABLE I282 52296699 OI PRINT+115,X'F0' INCLUDING SIGN I282 52296799 MVI PRINT+116,COMMA COMMA XM4744 52296899 LH WORK1,PDSFMTWK+6 ESDID OF E.P. CSECT I282 52296999 CVD WORK1,CONVERT CONVERT TO DECIMAL I282 52297099 UNPK PRINT+117(2),CONVERT+6(2) MAKE PRINTABLE I282 52297199 OI PRINT+118,X'F0' INCLUDING SIGN I282 52297299 TM PDSFMTSW,MEMMSK IS TRUE NAME NEEDED? XM4744 52297399 BZ PRINTLNE NO,PRINT LINE XM4744 52297499 B NEXTLINE YES,GET TRUE NAME XM4744 52297599 OVLYINFO LA MSGTO,PRINT+103 OVLY= XM4744 52297699 LA MSGFROM,324 TO I282 52297799 BAL MSGRET,MVMSG PRINT LINE I282 52297899 UNPK PRINT+108(7),TTRNOTE OVERLAY TTR XM4744 52297999 MVI PRINT+114,TRCOMMA COMMA XM4744 52298099 TR PRINT+108(7),TRANSLAT MAKE TTR PRINTABLE XM4744 52298199 SR WORK1,WORK1 CLEAR REG FOR IC INSTR I282 52298299 IC WORK1,19(BLOCPNT) NO. ENTR IN NOTE LIST I282 52298399 CVD WORK1,CONVERT NO. ENTRIES IN DEC I282 52298499 UNPK PRINT+115(3),CONVERT+6(2) MAKE PRINTABLE @ZA30116 52298599 OI PRINT+117,SIGN SIGN @ZA30116 52298699 * 52318699 * A POSSIBLE SECOND LINE AND END OF A DIRECTORY ENTRY PROCESSING 52318799 * IS DONE HERE. 52318899 * 52318999 PRINTLNE BAL RETURN,LINEPR GO PRINT FIRST LINE I282 52319099 NEXTLINE TM PDSFMTSW,MEMMSK SHOULD OS OR AOS ALIAS XM4744 52319199 * BE PRINTED? XM4744 52319299 BZ ENDENTRY NO, GO END ENTRY I282 52319399 LA WORK1,33(BLOCPNT) MIMUMN ADDR OF TRUE EP I282 52319499 TM PDSFMTSW,X'10' IS MEMBER SCATTER LOADED I282 52319599 BZ MTRUE NO, GO MOVE TRUE NAME TO PRINT I282 52319699 LA WORK1,8(WORK1) YES, ADD SCAT INFO LEN I282 52319799 * XM4744 52319899 * A MEMBER AND TTR IS PRESENT FOR AN ALIAS FOR AOS IF THE 52319999 * PDSFMTSW = X'04' -- A MEMBER IS PRESENT FOR AN ALIAS, 52320099 * RENT,REUS ATTRIBUTE FOR OS IF THE PDSFMTSW = X'20' 52320199 * 52320299 MTRUE MVC PRINT+3(8),3(WORK1) TRUE NAME I282 52320399 UNPK PRINT+15(7),0(4,WORK1) TRUE ENTRY POINT I282 52320499 MVI PRINT+21,X'EF' EXTRA BYTE TR-BLANK I282 52320599 TR PRINT+15(7),TRANSLAT MAKE PRINTABLE I282 52320699 BAL RETURN,LINEPR GO PRINT SECOND LINE I282 52320799 ENDENTRY AR BLOCPNT,WORK3 POINT TO NEXT ENTRY IN DIR RCD I282 52320899 SR ELEMLEN,WORK3 REMAING BYTES IN DIRECTORY RCD I282 52320999 NI PDSFMTSW,OFFMSK RESET ENTRY CONTENTS BITS XM4744 52321099 B FMTENTRY GO FORMAT NEXT ENTRY I282 52321199 * 52321299 * THIS ROUTINE IS ENTERED WHEN THE PDS FORMAT IS REQUESTED FOR 52321399 * A PDS NOT CREATED BY THE LINKAGE EDITOR. 52321499 * 52321599 DOFMTDMP LA MSGTO,0 MESSAGE TO PRINTER I282 52321699 LA MSGFROM,312 ERROR MESSAGE INDEX FACTOR I282 52321799 BAL MSGRET,MVMSG MOVE MESSAGE TO PRINT BUFFER I282 52321899 MVI ZSW,X'02' SPACE BEFORE PRINTING MESSAGE I282 52321999 BAL RETURN,LINEPR PRINT MESSAGE I282 52322099 ST ELEMLEN,SELEMLEN SAVE ELEMLEN INDICATOR I282 52322199 BAL RETURN,TEMPDUMP GO DO DUMP OPTION FOR ENTRY I282 52322299 L ELEMLEN,SELEMLEN RESTORE ELEMLEN INDICATOR I282 52322399 NI 11(BLOCPNT),X'1F' TURN OFF NON LENGTH BITS I282 52322499 SR WORK3,WORK3 CLEAR REG FOR IC INSTRUCTION I282 52322599 IC WORK3,11(BLOCPNT) LEN USER DATA FIELD IN HALFWORDS I282 52322699 AR WORK3,WORK3 LEN USER DATA FIELD IN BYTES I282 52322799 LA WORK3,12(WORK3) LEN OF COMPLETE DIRECTORY ENTRY I282 52322899 B ENDENTRY GO TO NORMAL END OF ENTRY I282 52322999 * 52323099 * CONSTANTS AND WORK AREAS FOR PDS FORMAT OPTION 52323199 * 52323299 PDSFMTWK DS D WORK AREA FOR SCATTER LOAD 52323399 SELEMLEN DS F SAVE AREA FOR ELEMLEN I282 52323499 SRETURN DS F SAVE AREA FOR RETURN I282 52323599 ELEVEN DC XL4'0B' I282 52323699 DEADBYTE DC X'0001' LENGTH OF DEAD BYTE YM2247 52323799 PDSFMTSW DC X'00' MEANING OF BITS I282 52323899 * BIT 0 FORMAT OPTION REQUESTED I282 52323999 * BIT 1 FIRST ENTRY FOR A PDS I282 52324099 * BIT 2 MEMBER IS ALIAS AND RENT OR REUS I282 52324199 * BIT 3 SCATTER LOADED I282 52324299 * BIT 4 SCAT, ALIAS AND RENT OR REUS I282 52324399 * BIT 5 ALIAS USE ONLY FOR AOS XM4744 52324499 YES DC CL3'YES' APF XM4744 52324599 NO DC CL2'NO' APF XM4744 52324699 SP DC X'00030000000203030202000202' SPACE CHAR, HEAD I282 52324799 * 52324899 * PDS DSECT FOR L/E CREATED ENTRIES 52324999 * 52325099 PDS DSECT 52325199 BEG DS 0X START 52325299 NAME DS 8X NAME 52325399 TTRBEG DS 3X BEGINNING TTR 52325499 BITS DS 1X INDICATOR FLAGS 52325599 TTRTXT DS 4X TTR FIRST TXT 52325699 TTRNOTE DS XL4 TTR NOTE/SCATTER @ZA25524 52325799 ATTR DS 2X ATTRIBUTES 52331499 STORAG DS 3X CONTIGUOUS STORAGE 52331699 FTXTL DS 2X LENGTH FIRST TXT 52331899 EPA DS 3X ENTRY POINT ADDR 52332099 FSTXT DS 3X FIRST TEXT BLOCK 52332299 ORG FSTXT AOS L/E ATTR 52332499 AOSATTR DS 3X AOS L/E ATTR 52332699 DUM1 DS 1X DUMMY LENGTH 52332899 END DS 0X END OF MIN PDS 52333099 * LOAD MODULE-ALIAS RENT,REUS-OS 52333299 * ALIAS ONLY-AOS 52333499 ORG DUM1 ACTUAL START POINT 52333699 TTR DS 3X TTR OF MEMBER 52333899 MEMBER DS 8X MEMBER NAME 52334099 *******************************************************************VF0I 52334299 ** VF0I 52334499 ** IEHLISTD 52334699 ** 52334899 *******************************************************************VF0I 52335099 IEHLISTD CSECT 52335299 *******************************************************************VF0I 52335499 ** VF0I 52335699 ** REQUESTS FOR FORMATTED-DSCBS ARE HANDLED HERE VF0I 52335899 ** VF0I 52336099 *******************************************************************VF0I 52336299 BALR BASEREG2,0 VF0I 52336499 USING *,BASEREG2,RECCNT -* MUTIPLE BASE REGISTERS VFOI 52336699 BASE L RECCNT,BASEADR -* LOAD RIGHT ADDRESS TO REG. VFOI 52336899 B SET -* SKIP BASEADR. VFOI 52337099 BASEADR DC A(BASE+4096) -* FOR SETTING MULTI-BASE. VFOI 52337299 SET TM FMT,X'04' -* IS DEVICE 2321? VFOI 52337499 BZ CANTON VF01 52337699 LA MSGFROM,256 DEV2321 MESSAGE VF0I 52337899 LA MSGTO,0 VF0I 52338099 BAL MSGRET,MVMSG VF0I 52338299 MVI ZSW,X'02' VF0I 52338499 BAL RETURN,LINEPR VF0I 52338699 B CANTON GO SAVE DSNAME FOR PARTIAL FMT PRNT VF0I 52338899 NOTAP LA MSGFROM,160 -* UNABLE TO CALCULATE SPACE MSG. VF01 52339099 LA MSGTO,PRINT+32 -* STARTING OF PRINTING POSITION. VF01 52339299 BAL MSGRET,MVMSG -* MOVE MSG TO PRINT AREA. VF01 52339499 BAL RETURN,LINEPR -* TO PRINT A LINE ROUTINE. VF01 52339699 COME MVI ZSW,X'02' -* SET UP SWITCH TO SPACE A LINE. VF01 52339899 LA MSGFROM,240 -* ONE MORE BLANK LINE. VF01 52340099 LA MSGTO,0 -* PRINT POSITION 0. VF01 52340299 BAL MSGRET,MVMSG -* MOVE MSG TO PRINT AREA. VF01 52340499 BAL RETURN,LINEPR -* TO PRINT A LINE ROUTINE. VF01 52340699 NOCOME L RETURN,SAVE1 -* PICK UP DATA. VF01 52340899 BR RETURN -* BACK TO THE CALLING ROUTINE. VF01 52341099 XZ A WORK1,NO7 -* CHECK THE NO.OF LINE LEFT. VF01 52341299 B STC -* BRACH TO COMPARISON. VF01 52341499 BER MVI PRINT+47,X'40' -* PAD THE REST OF LINE WITH BLANKS. VF01 52341699 MVC PRINT+48(54),PRINT+47 -* VF01 52341899 B UNION -* RETURN TO MAIN STREAM. VF01 52342099 NARD MVI PRINT+75,X'40' -* BLANK THE FIRST BYTE. VF01 52342299 MVC PRINT+76(26),PRINT+75 -* PAD THE REST OF LINE BLANKVF01 52342499 B UNION -* RETURN TO MAIN STREAM. VF01 52342699 XYZ LA RETURN,ABC -* FORCE TO BRANCH TO ABC. VF01 52342899 ST RETURN,ZSAVE14 -* STORE ADR OF ABC IN ZSAVE14. VF01 52343099 B ZSETSK -* SET SKIP PAGE ROUTINE. VF01 52343299 CANTON MVC HONGKONG(44),TABLE -* DSNAME IS SAVED. VF01 52343499 B DENTIRE -* TO DENTIRE RTN TO HAVE NECE. INFO. VF01 52343699 *******************************************************************VF0I 52343899 ** VF0I 52344099 ** PARTIAL FORMATTED DSCB PRINT OUTS HANDLED HERE VF0I 52344299 ** VF0I 52344499 *******************************************************************VF0I 52344699 DPARTIAL LA TABPNT,TABLE SET REG TO START OF VF0I 52344899 MVC TABLE(44),HONGKONG -* DSNAME IS UNTOUCHED. VF01 52345099 DOBTAIN MVC OBTAININ(44),0(TABPNT) DSNAME TABLE MOVE NAME VF0I 52345299 LA SAVEREG,DSCBIN VF0I 52345499 OBTAIN OBLIST1 VF0I 52345699 B DTEST(ECREG) VF0I 52345899 DTEST B DLINK1 VF0I 52346099 B DERRD VF0I 52346299 B DERRD VF0I 52346499 B WORKERR VF0I 52346699 DERRD LA MSGFROM,12 VF0I 52346899 LA MSGTO,0 VF0I 52347099 CLI RETCODE,X'08' IS HIGHER RETURN CODE SET VF0I 52347299 BH *+8 VF0I 52347499 MVI RETCODE,X'08' VF0I 52347699 BAL MSGRET,MVMSG VF0I 52347899 MVC 0(44,15),0(TABPNT) VF0I 52348099 BAL RETURN,LINEPR VF0I 52348299 B DBACK VF0I 52348499 DLINK1 MVC WORKIN+8(5),READIN+140 VF0I 52348699 BAL RETURN,DFORMAT1 VF0I 52348899 DOBTAIN2 CLC ZEROS(5),DSCBIN+91 POINTER TO FMT 2 OR DSCB VALID VF0I 52349099 BE DBACK VF0I 52349299 MVC TRACK(5),DSCBIN+91 LOAD CCHHR INTO TRACK VF0I 52349499 MVC WORKIN+8(5),TRACK VF0I 52349699 OBTAIN OBLIST3 SEEK FORMAT 2 OR 3 DSCB VF0I 52349899 B DFMERR(ECREG) VF0I 52350099 DFMERR B DPRFMT VF0I 52350299 B DERRD VF0I 52350499 B DERRD VF0I 52350699 B WORKERR VF0I 52350899 DPRFMT MVC READIN(140),HOLDAREA MOVE DSCB TO READIN AREA VF0I 52351099 CLI READIN+44,FORMAT2 VF0I 52351299 BNE DCHECK3 NO VF0I 52351499 BAL RETURN,DFORMAT2 YES PRINT FORMAT 2 VF0I 52351699 B DOBTAIN2 SEE IF FORMAT 3 POINTER - VALID VF0I 52351899 DCHECK3 CLI READIN+44,FORMAT3 IS DSCB FORMAT 3 VF0I 52352099 BNE DERRD VF0I 52352299 BAL RETURN,DFORMAT3 YES - PRINT FORMAT 3 VF0I 52352499 TM SAVE3+5,X'02' 52352699 BO DOBTAIN2 52352899 DBACK LA TABPNT,44(TABPNT) UPDATE TABLE POINTER VF0I 52353099 CR TABPNT,TABEND COMPARE FOR TABLE END VF0I 52353299 BNL PCLOSE VF0I 52353499 CLC 0(44,TABPNT),0(TABEND) VF0I 52353699 BE PCLOSE VF0I 52353899 B DOBTAIN VF0I 52354099 *******************************************************************VF0I 52354299 ** VF0I 52354499 ** REQUESTS FOR ALL DSCBS TO BE FORMATTED HANDLED HERE VF0I 52354699 ** VF0I 52354899 *******************************************************************VF0I 52355099 DENTIRE EQU * SET UP JFCB FOR OPEN 52355299 MVI MODLJFCB,X'04' VF0I 52355499 MVC MODLJFCB+1(43),MODLJFCB VF0I 52355699 MVI MODLJFCB+44,X'40' VF0I 52355899 MVI MODLJFCB+IND2,SHR SET SHARE BIT YM06989 52356099 MVI MODLJFCB+117,X'01' VF0I 52356299 MVC MODLJFCB+118(6),VOLID VF0I 52356499 MVC DCBBLKSI(2),SETBLK1 SET BLOCKSIZE VF0I 52356699 MVC KEYLE(1),SETKEY2 SET KEYLEN VF0I 52356899 MVC DCBEODAD(3),SETEO4 VF0I 52357099 OI SW,OPENSW VF0I 52357299 OPEN (WORKIN),TYPE=J VF0I 52357499 L WORK2,WORKIN+44 GET ADDR OF DEB A25709 52357699 L WORK2,32(WORK2) GET UCB ADDR A25709 52357899 USING UCBD,WORK2 A25709 52358099 * CLI UCBTBYT4,X'05' IS DEVICE 2321 YL026VC 52358299 * BC 7,NOT2321B NO,GO CHECK TTR OF VTOC START YL026VC 52358499 *SUBUCBB CLC VOLID(6),DCELVOLI YES, FIND SUB UCB FOR THIS VOLYL026VC 52358699 * BE THISUCBB THIS IS THE SUB UCB, CHECK TTRYL026VC 52358899 * LA WORK2,16(WORK2) POINT TO NEXT 2321 SUB UCB YL026VC 52359099 * BNE SUBUCBB NOT THIS SUB UCB, CHECK NEXT YL026VC 52359299 *THISUCBBCLI DCELVTOC+2,X'01' DOES VTOC START ON RECORD ONE YL026VC 52359499 * BE DGOREAD YES, GO DO READ, BYPASS POINT YL026VC 52359699 * MVC FORM5TTR(3),DCELVTOC NO, TTR OF VTOC FOR POINTYL026VC 52359899 * B SETUPB GO SET UP TO DO POINT YL026VC 52360002 NOT2321B CLI SRTEFSCT+2,X'01' VTOC START ON OTHER THAN RCD 1 A27506 52380001 BE DGOREAD NO, PROCEED NORMALLY A25709 52400001 MVC FORM5TTR(3),SRTEFSCT YES A25709 52420001 SETUPB LA PARAREG1,FORM5TTR SET UP ADDR OF TTR FOR POINT A27506 52440001 BAL RETURN,DOPOINT GO TO ISSUE POINT A25709 52460001 DROP WORK2 A25709 52480001 DGOREAD BAL WORK2,DREAD LINK TO READ MACRO VF0I 52500001 MVC TABLE(44),READIN VF0I 52520001 CLI READIN+44,FORMAT4 CHECK IF FORMAT 4 DSCB VF0I 52540001 BE DFORM4 VF0I 52560001 CLI READIN+44,FORMAT5 CHECK FOR FORMAT 5 DSCB VF0I 52580001 BE DFORM5 VF0I 52600001 CLI READIN+44,FORMAT1 CHECK FOR FORMAT 1 DSCB VF0I 52620001 BNE DGOREAD VF0I 52640001 BAL RETURN,DFORMAT1 PRINT FORMAT 1 DSCB VF0I 52660001 HUPEI MVC SAVECCHH(5),WORKIN+8 -* VFOI 52680001 DGET23 CLC ZEROS(5),READIN+135 CHECK IF ANY RELATED DSCBS VF0I 52700001 BE EXIT2 NO A29293 52720001 SR WORK2,WORK2 READ EITHER THE FORMAT 2 OR VF0I 52740001 IC WORK2,READIN+139 FORMAT 3 DSCBS & PRINT THEM VF0I 52760001 BCTR WORK2,0 VF0I 52780001 STC WORK2,READIN+139 VF0I 52800001 MVC WORKIN+8(5),READIN+135 VF0I 52820001 BAL WORK2,DREAD VF0I 52840001 CLI READIN+44,FORMAT2 VF0I 52860001 BNE CHK23 VF0I 52880001 BAL RETURN,DFORMAT2 VF0I 52900001 B DGET23 VF0I 52920001 CHK23 CLI READIN+44,FORMAT3 VF0I 52940001 BNE EXIT1 VF0I 52960001 BAL RETURN,DFORMAT3 VF0I 52980001 EXIT1 TM SAVE3+5,X'02' 53000001 BO DGET23 53020001 EXIT2 MVC WORKIN+8(5),SAVECCHH A29293 53040001 B DGOREAD VF0I 53060001 DFORM4 MVC VOIDDSCB+2(2),READIN+50 SAVE NO. AVAILABLE DSCB VF0I 53080001 BAL RETURN,DFORMAT4 VF0I 53100001 B DGOREAD VF0I 53120001 DFORM5 TM SW,FIRST5 VF0I 53140001 BO DGOREAD VF0I 53160001 NOTE WORKIN VF0I 53180001 ST PARAREG2,FORM5TTR SAVE ADDR OF FORMAT 5 VF0I 53200001 OI SW,FIRST5 VF0I 53220001 MVC SAVECCHH(5),WORKIN+8 SAVE CURRENT READ ADDR IN DCB VF0I 53240001 BAL RETURN,DFMT56 VF0I 53260001 * THIS TEST ALSO USED FOR YM5559 53270002 * MORE THAN ONE FORMAT6 YM5559 53272002 REPEAT CLC ZEROS(5),READIN+135 TEST IF MORE THAN ONE FORMAT 5 VF0I 53280001 BE EXIT5 VF0I 53300001 SR WORK2,WORK2 VF0I 53320001 IC WORK2,READIN+139 RECORD ADDR OF NEXT FORMAT VF0I 53340001 BCTR WORK2,0 REDUCE BY 1 VF0I 53360001 STC WORK2,READIN+139 VF0I 53380001 MVC WORKIN+8(5),READIN+135 PUT ADDR IN DCB VF0I 53400001 BAL WORK2,DREAD VF0I 53420001 BAL RETURN,DFMT56 VF0I 53440001 B REPEAT VF0I 53460001 EXIT5 MVC WORKIN+8(5),SAVECCHH RESTORE ORIGINAL DCB ADDR VF0I 53480001 B DGOREAD VF0I 53500001 DFORMAT1 ST RETURN,SAVE1 VF0I 53520001 TM READIN+82,X'80' -* IS IT A ISAM DATA SET. VFOI 53540001 BZ TENN -* NO,GO TO NORMAL CASE. VFOI 53560001 CLI READIN+59,X'03' -* ISAM WITH FMT 3? VFOI 53580001 BH HARBIN -* THIS DATA SET HAS FMT 1,2,3. VFOI 53600001 TENN IC WORK1,ZLINECNT -* CHECK NO OF PAGES. VFOI 53620001 L WORK2,DSCBIN+92 -* TEST NEXT DSCB POINTER. VF01 53640001 LTR WORK2,WORK2 -* IS MORE DSCB TO BE PROCESSED. VF01 53660001 BC 8,XZ -* NO.GO TO COMPARE A SMALLER COUNTERVF01 53680001 A WORK1,NO12 -* ADD THIS COUNTER BY |6. VF01 53700001 STC STC WORK1,TU -* STORE THIS NO.TO A SPOT. VF01 53720001 CLC ZLINEPER(1),TU -* COMPARE WHICH IS LOWER. VF01 53740001 BL XYZ -* LOWER GO TO XYZ. VF01 53760001 ABC LA MSGFROM,152 -* PRINT A LINE IN FMT 1A. VF01 53780001 LA MSGTO,PRINT -* PRINT POSITION IS ZERO. VF01 53800001 BAL MSGRET,MVMSG VF0I 53820001 MVI ZSW,X'02' VF0I 53840001 BAL RETURN,LINEPR VF0I 53860001 SR ONEBYTE,ONEBYTE VF0I 53880001 MVC PRINT(44),OBTAININ DSNAME VF0I 53900001 MVI PRINT+46,C'1' IDENTIFICATION TO PRINT VF0I 53920001 MVC PRINT+49(6),DSCBIN+1 VOLUME SERIAL NO. VF0I 53940001 IC ONEBYTE,DSCBIN+15 NO. OF EXTENTS VF0I 53960001 BAL RETURN,CONVB CONVERT ONE BYTE VF0I 53980001 MVC PRINT+88(2),UNPKFLD+3 NO. OF EXTENTS OT PRINT@G60ASBJ 54000060 IC ONEBYTE,DSCBIN+12 EXPIRATION YEAR VF0I 54020001 CVD ONEBYTE,CONVERT -* CONVERT TO DECIMAL. VF01 54040001 UNPK UNPKFLD(5),CONVERT+5(3) -* UNPACK FOR PRINTABL. VF01 54060001 OI UNPKFLD+4,X'F0' -* OVERLAP WRONG INFORMATION. VF01 54080001 MVC PRINT+75(2),UNPKFLD+3 EXPIRATION YEAR TO PRIN@G60ASBJ 54100060 MVC XHOLD(2),DSCBIN+13 EXPIRATION DATE VF0I 54120001 LH HLFWD,XHOLD -* LOAD EXP DATE. VF01 54140001 CVD HLFWD,CONVERT -* CONVERT TO DECIAML. VF01 54160001 UNPK UNPKFLD(5),CONVERT+5(3) -* UNPACK FOR PRINTABLE. VF01 54180001 OI UNPKFLD+4,X'F0' -* OVERLAP WRONG INFORMATION. VF01 54200001 MVC PRINT+72(3),UNPKFLD+2 EXPIRATION DAY TO PRINT@G60ASBJ 54220060 IC ONEBYTE,DSCBIN+9 CREATION YEAR VF0I 54240001 CVD ONEBYTE,CONVERT -* CONVERT TO DECIMAL. VF01 54260001 UNPK UNPKFLD(5),CONVERT+5(3) -* UNPACK FOR PRINTABLE. VF01 54280001 OI UNPKFLD+4,X'F0' -* OVERLAP WRONG INFORMATION. VF01 54300001 MVC PRINT+68(2),UNPKFLD+3 -*CREATION YEAR TO PRINT. VF01 54320001 LH HLFWD,DSCBIN+10 CREATION DATE VF0I 54340001 CVD HLFWD,CONVERT -* CONVERT TO DECIMAL. VF01 54360001 UNPK UNPKFLD(5),CONVERT+5(3) -* UNPACK FOR PRINTABLE. VF01 54380001 OI UNPKFLD+4,X'F0' -* OVERLAP THE WRONG INFORMATIONVF01 54400001 MVC PRINT+65(3),UNPKFLD+2 -* CREATION DAY TO PRINT. VF01 54420001 IC ONEBYTE,DSCBIN+31 LAST REFERENCED YEAR @G60ASBJ 54421060 CVD ONEBYTE,CONVERT CONVERT TO DECIMAL @G60ASBJ 54422060 UNPK UNPKFLD(5),CONVERT+5(3) UNPACK LAST REF YEAR @G60ASBJ 54423060 OI UNPKFLD+4,X'F0' CONVERT SIGN BITS @G60ASBJ 54424060 MVC PRINT+82(2),UNPKFLD+3 LAST REF YEAR TO PRINT @G60ASBJ 54425060 LH HLFWD,DSCBIN+32 LAST REFERENCED DAY @G60ASBJ 54426060 CVD HLFWD,CONVERT CONVERT TO DECIMAL @G60ASBJ 54427060 UNPK UNPKFLD(5),CONVERT+5(3) UNPACK LAST REF DAY @G60ASBJ 54428060 OI UNPKFLD+4,X'F0' CONVERT SIGN BITS @G60ASBJ 54429060 MVC PRINT+79(3),UNPKFLD+2 LAST REF DAY TO PRINT @G60ASBJ 54430060 MVC XHOLD(2),DSCBIN+7 VOLUME SEQUENCE NO. VF0I 54440001 BAL RETURN,CONVCA VF0I 54460001 MVC PRINT+58(4),UNPKFLD+1 VOLUME SEQ TO PRINT VF0I 54480001 LH HLFWD,DSCBIN+42 BLOCK SIZE VF0I 54500001 BAL RETURN,CONVCH VF0I 54520001 MVC PRINT+114(5),UNPKFLD BLOCK SIZE TO PRINT @G60ASBJ 54540060 TM DSCBIN+38,TYPESAM PHYSICAL SEQUENTIAL X'40' VF0I 54550060 BZ MVIS NO,CHECK ISAM A34989 54560060 MVC PRINT+95(2),CPS MOVE PS TO LINE @G60ASBJ 54570060 CHKOPTCD UNPK PRINT+108(3),DSCBIN+41(2) @G60ASBJ 54580060 MVI PRINT+110,X'EF' @G60ASBJ 54590060 TR PRINT+108(3),TRANSLAT @G60ASBJ 54600060 B CHKMVE CHECK UNMOVABLE A34989 54610060 MVIS TM DSCBIN+38,TYPEISAM INDEXED SEQ X'80' A34989 54620060 BZ MVDA NO,CHECK DA A34989 54630060 MVC PRINT+95(2),CIS MOVE IS TO LINE @G60ASBJ 54640060 B CHKOPTCD A34989 54650060 MVDA TM DSCBIN+38,TYPEDAM DIRECT ACCESS X'20' A34989 54660060 BZ MVPO NO,CHECK PO A34989 54670060 MVC PRINT+95(2),CDA MOVE DA TO LINE @G60ASBJ 54680060 B CHKOPTCD A34989 54690060 MVPO TM DSCBIN+38,TYPEPDS PARTITIONED X'02' A34989 54700060 BZ MVVS NO, CHECK VSAM YL026VC 54710060 MVC PRINT+95(2),CPO @G60ASBJ 54720060 B CHKOPTCD CHECK OPTCD A34989 54730060 MVVS CLC DSCBIN+38(2),TYPEVSAM VSAM X'0008' YL026VC 54740060 BNE UNDEF NO, CHECK UNDEF YL026VC 54750060 MVC PRINT+95(2),CVS MOVE VS TO PRINT LINE @G60ASBJ 54760060 B CHKOPTCD YL026VC 54770060 UNDEF MVC PRINT+95(2),UND UNDEFINED ORG @G60ASBJ 54780060 CHKMVE TM DSCBIN+38,X'01' DATA SET UNMOVABLE VF0I 54790060 BZ CHKRFM VF0I 54800060 MVI PRINT+97,C'U' @G60ASBJ 54810060 CHKRFM TM DSCBIN+40,TCYL -* UNDEFINED RECORD FORMAT. VF01 55020001 BO MVEU VF0I 55040001 TM DSCBIN+40,TPVAR VARIABLE FORMAT VF0I 55060001 BO MVEV VF0I 55080001 TM DSCBIN+40,TPFIXED FIXED LENGTH FORMAT VF0I 55100001 BO MVEF VF0I 55120001 MVI PRINT+101,C'*' ERROR CONDITION INVALID FORMA@G60ASBJ 55140060 CHKTOFL TM DSCBIN+40,TRKOFLO TRACK OVERFLOW VF0I 55150060 BZ *+8 VF0I 55160060 MVI PRINT+103,C'T' @G60ASBJ 55170060 TM DSCBIN+40,BLOCKED BLOCKED FORMAT HEX 10 VF0I 55180060 BZ *+8 VF0I 55190060 MVI PRINT+102,C'B' @G60ASBJ 55200060 TM DSCBIN+40,STND NO TRUNCATED BLKS OR UNFILLED TRKS VF0I 55210060 BZ *+8 VF0I 55220060 MVI PRINT+104,C'S' @G60ASBJ 55230060 TM DSCBIN+40,ASACC ASA CONTROL CHARACTER HEX 04 VF0I 55340001 BO MVEA YES VF0I 55360001 TM DSCBIN+40,MACHCC MACHINE CONTROL CHARACTER HEX 02 VF0I 55380001 BO MVEM YES VF0I 55400001 PRINTLN BAL RETURN,LINEPR PRINT FIRST LINE A34989 55420001 LA MSGFROM,156 FMT1B VF0I 55440001 LA MSGTO,PRINT+12 VF0I 55460001 BAL MSGRET,MVMSG VF0I 55480001 MVI ZSW,X'02' VF0I 55500001 BAL RETURN,LINEPR VF0I 55520001 LH HLFWD,DSCBIN+44 RECORD LENGTH VF0I 55540001 BAL RETURN,CONVCH VF0I 55560001 MVC PRINT+12(5),UNPKFLD VF0I 55580001 CLC ZEROS(1),DSCBIN+46 KEY LENGTH ZERO VF0I 55600001 BE BYPSS VF0I 55620001 IC ONEBYTE,DSCBIN+46 KEY LENGTH VF0I 55640001 BAL RETURN,CONVB VF0I 55660001 MVC PRINT+20(3),UNPKFLD+2 VF0I 55680001 BYPSS CLC ZEROS(5),DSCBIN+54 TTRLL EQUAL TO ZERO VF0I 55700001 BE BYPASS1 YES VF0I 55720001 LH HLFWD,DSCBIN+54 VF0I 55740001 BAL RETURN,CONVCH VF0I 55760001 MVC PRINT+55(5),UNPKFLD RELATIVE TRACK TO PRINT VF0I 55780001 IC ONEBYTE,DSCBIN+56 VF0I 55800001 BAL RETURN,CONVB VF0I 55820001 MVC PRINT+61(3),UNPKFLD+2 BLOCK NO. ON THAT TRACK TO PRTVF0I 55840001 MVC XHOLD(2),DSCBIN+57 BYTES REMAINING ON TRACK VF0I 55860001 LH HLFWD,XHOLD VF0I 55880001 LTR HLFWD,HLFWD VF0I 55900001 BM ERRLL IS LL NEGATIVE VF0I 55920001 CONVLL BAL RETURN,CONVCH CONVERT HALFWORD A32555 55940001 MVC PRINT+65(5),UNPKFLD VF0I 55960001 BYPASS1 CLI DSCBIN+16,X'00' BYTES USED IN LAST PDS ENTRY = 0VF0I 55980001 BE BYPASS2 YES VF0I 56000001 IC ONEBYTE,DSCBIN+16 VF0I 56020001 BAL RETURN,CONVB VF0I 56040001 MVC PRINT+80(3),UNPKFLD+2 VF0I 56060001 BYPASS2 CLC ZEROS(5),DSCBIN+91 POINTER TO FORMAT 203 DSCB = 0 VF0I 56080001 BE BYPASS3 VF0I 56100001 MVC XHOLD(2),DSCBIN+91 MOVE IN CYLINDER ADDR NEXT DSCB VF0I 56120001 BAL RETURN,CONVA VF0I 56140001 MVC PRINT+94(3),UNPKFLD+2 VF0I 56160001 MVC XHOLD(2),DSCBIN+93 MOVE IN HEAD ADDR OF POINTER VF0I 56180001 OI FMT,X'08' VF0I 56200001 BAL RETURN,CONVA VF0I 56220001 MVC PRINT+98(3),UNPKFLD+2 VF0I 56240001 IC ONEBYTE,DSCBIN+95 RECORD NUMBER VF0I 56260001 BAL RETURN,CONVB VF0I 56280001 MVC PRINT+102(3),UNPKFLD+2 VF0I 56300001 BYPASS3 MVC CONVERT(4),DSCBIN+50 ALIGN YM8143 56370402 L WORK2,CONVERT SECONDARY ALLOCATION YM8143 56370802 LA WORK2,0(WORK2) CLEAR HIGH BYTE YM8143 56372002 CVD WORK2,CONVERT CONVERT IT. YM8143 56374002 UNPK PRINT+42(7),CONVERT+4(4) UNPACK INTO PRINTLINE YM8143 56376002 LA WORK2,PRINT+42 ADDR OF FIELD YM8143 56378002 LA WORK3,7 NO. OF DIGITS TO PROCESS YM8143 56378402 BAL RETURN,TRY GET RID OF LEADING ZEROS YM8143 56378802 OI PRINT+48,X'F0' OVERLAP @ZA01480 56379202 BAL RETURN,CONVDSCB CONVERT ADDR OF THE DSCB VF0I 56380001 MVC PRINT+108(11),PHOLD VF0I 56400001 TM DSCBIN+50,TCYL VF0I 56420001 BNO *+12 VF0I 56440001 LA MSGFROM,184 ALLOC CYLINDER FMT1I VF0I 56460001 B PRT VF0I 56480001 TM DSCBIN+50,TREC VF0I 56500001 BZ *+12 VF0I 56520001 LA MSGFROM,176 ALLOC RECORDS FMT1G VF0I 56540001 B PRT VF0I 56560001 TM DSCBIN+50,TTRK VF0I 56580001 BZ *+12 VF0I 56600001 LA MSGFROM,180 ALLOC TRACKS FMT1H VF0I 56620001 B PRT VF0I 56640001 LA MSGFROM,172 ALLOC ABSTR FMT1F VF0I 56660001 PRT LA MSGTO,PRINT+28 VF0I 56680001 BAL MSGRET,MVMSG VF0I 56700001 TM DSCBIN+50,TCONT VF0I 56720001 BZ *+12 VF0I 56740001 LA MSGFROM,188 ALLOC CONTIG FMT1J VF0I 56760001 B PRT1 VF0I 56780001 TM DSCBIN+50,TMXIG VF0I 56800001 BZ *+12 VF0I 56820001 LA MSGFROM,192 ALLOC MXIG FMT1K VF0I 56840001 B PRT1 VF0I 56860001 TM DSCBIN+50,TALX VF0I 56880001 BZ *+12 VF0I 56900001 LA MSGFROM,196 ALLOC ALX FMT1L VF0I 56920001 B PRT1 VF0I 56940001 TM DSCBIN+50,X'01' VF0I 56960001 BZ *+16 VF0I 56980001 LA MSGFROM,200 ALLOC ROUND FMT1M VF0I 57000001 PRT1 LA MSGTO,PRINT+34 VF0I 57020001 BAL MSGRET,MVMSG VF0I 57040001 BAL RETURN,LINEPR VF0I 57060001 LA MSGFROM,164 FMT1D VF0I 57080001 LA MSGTO,PRINT+12 VF0I 57100001 BAL MSGRET,MVMSG VF0I 57120001 MVI ZSW,X'02' VF0I 57140001 CLI DSCBIN+15,X'01' -* THE NO.OF EXTENT IS 1? VF01 57160001 BE BER -* YES,SO BLANK THE REST OF HEADVF01 57180001 CLI DSCBIN+15,X'02' -* THE NO.OF EXTENT IS 2? VF01 57200001 BE NARD -* YES,BLANK THE REST OF HEADINGVF01 57220001 UNION BAL RETURN,LINEPR -* GO TO PRINT A LINE. VF01 57240001 MVC HOLDAREA(30),DSCBIN+61 MOVE EXTENTS TO HOLD VF0I 57260001 MVI PHOLD,X'40' BLANK OUT PHOLD 57280001 MVC PHOLD+1(22),PHOLD 57300001 SR WORK1,WORK1 VF0I 57320001 SR WORK3,WORK3 VF0I 57340001 LA WORK1,HOLDAREA VF0I 57360001 LA WORK3,PRINT+21 VF0I 57380001 SR WORK2,WORK2 -* CLEAR REGISTER WORK2. VF01 57400001 ST WORK2,SAVL -* CLEAR COUNTER FOR CYLINDER. VF01 57420001 ST WORK2,SAVT -* CLEAR COUNTER FOR TRACK. VF01 57440001 GETEXT CLI 0(WORK1),X'00' VF0I 57460001 BE WRTEXT VF0I 57480001 MVC XHOLD(10),0(WORK1) VF0I 57500001 IC ONEBYTE,XHOLD+1 NO. OF EXTENT VF0I 57520001 BAL RETURN,CONVB VF0I 57540001 MVC PHOLD(2),UNPKFLD+3 VF0I 57560001 LH HLFWD,XHOLD+2 LOW LIMIT CYL ADDR VF0I 57580001 BAL RETURN,CONVH VF0I 57600001 MVC PHOLD+5(3),UNPKFLD+2 VF0I 57620001 LH HLFWD,XHOLD+4 LOW LIMIT HEAD ADDR VF0I 57640001 OI FMT,X'08' VF0I 57660001 BAL RETURN,CONVH VF0I 57680001 MVC PHOLD+9(3),UNPKFLD+2 VF0I 57700001 LH HLFWD,XHOLD+6 HIGH LIMIT CYL ADDR VF0I 57720001 BAL RETURN,CONVH VF0I 57740001 MVC PHOLD+17(3),UNPKFLD+2 VF0I 57760001 LH HLFWD,XHOLD+8 HIGH LIMIT HEAD ADDR VF0I 57780001 OI FMT,X'08' VF0I 57800001 BAL RETURN,CONVH VF0I 57820001 MVC PHOLD+21(3),UNPKFLD+2 VF0I 57840001 MVC 0(24,WORK3),PHOLD VF0I 57860001 LA WORK3,28(WORK3) INCREASE PRINT ADDR VF0I 57880001 INCRS LA WORK1,10(WORK1) VF0I 57900001 BAL RETURN,MYRTN -* GO TO RTN FOR CALCULATION. VF01 57920001 C WORK1,FMT1END HAS END OF HOLDAREA BEEN VF0I 57940001 BH WRTEXT VF0I 57960001 B GETEXT VF0I 57980001 WRTEXT BAL RETURN,LINEPR VF0I 58000001 EXITF1 MVC ORG(1),DSCBIN+38 -* SAVE DATA SET ORGANIZATION. VF01 58020001 MVC CTB(1),DSCBIN+50 -* SAVE MARK FOR CYL,RECORD,TRK. VF01 58040001 MVC SAVERS+2(2),DSCBIN+54 -* REL ADR OF TRK. VF01 58060001 MVC SAVER+2(2),DSCBIN+42 -* BLOCK LENGTH. VF01 58080001 MVC SA+2(2),DSCBIN+57 -* NO.OF BYTES REMAINING ON TRACKVF01 58100001 MVC TTRLL(5),DSCBIN+54 SAVE FOR SPACE CALCULATION YA00066 58110002 MVC EXTNO(1),DSCBIN+61 SAVE # OF EXTENTS YA00067 58112002 MVC KEYLENTH(1),DSCBIN+46 SAVE THE KEY LENGTH YA00067 58114002 L WORK2,DSCBIN+92 -* IS ANY OTHER FORMAT? VF01 58120001 LTR WORK2,WORK2 VF01 58140001 BC 7,NOCOME -* YES,MORE TO COME. VF01 58160001 * YA00066 58170002 * BEGINNING OF SPACE CALCULATIONS - DSCBIN MAY CONTAIN EITHER F1 58172001 * OR F3 MODIFIED. VARIABLE TTRLL CONTAINS THE PROPER BLOCK PTR. 58176001 * YA00066 58178002 MORE TM SAVE3+5,X'01' -* MORE TO BE READ. VFOI 58180001 BO TAICHUNG -* GO TO SET SWITCH. VFOI 58200001 NEWYORK L WORK2,SAVL -* ACCESS THE NO OF CYLINDERS. VFOI 58220001 M WORK1,HANKOW+4 -* CONVERT IN TERM OF TRACKS. VF01 58240001 A WORK2,SAVT -* ADD UP THE NO.OF TRK IN TRK CTVF01 58260001 * YA00068 58262002 * SAVT SHOULD BE DECREMENTED BY ONE FOR PROPER BLOCK CALCULATIONS * 58264002 * FOR THE FOLLOWING CONDITIONS: * 58266002 * 1. SPACE ALLOCATED IN BLOCKS (RECS) * 58268002 * 2. SPACE ALLOCATED IN TRACKS OR CYLINDERS WHERE R OF TTRLL * 58268402 * IS NON-ZERO * 58268802 * YA00068 58269202 TM CTB,ALOCBLK SP ALLOC IN TRKS OR CYLS? YA00068 58269602 BO TRACKT YES - BRANCH TO TRACK TEST YA00068 58269702 B SUBBLK SPACE ALLOCATED IN BLOCKS YA00068 58269802 TRACKT CLI TTRLL+2,RTTRLL CHECK FOR EMPTY TRACK. YA00065 58270002 BE SUBTRK YA00065 58272002 SUBBLK BCTR WORK2,0 -* MINUS THE TOTAL NO TRK BY 1. VF01 58280002 SUBTRK S WORK2,SAVERS -* MINUS THE NO OF TRK USED. VF01 58300001 ST WORK2,SAV -* SAVE THE RESULT. VF01 58320001 CLI EXTNO,X'00' ARE THERE ANY EXTENTS? YA00067 58340002 BNE TESTORG YES, GO TEST ORGANIZATION A27725 58360001 LA MSGFROM,328 NO, GIVE NO EXTENTS MESSAGE A27725 58380001 LA MSGTO,PRINT+32 MESG POSITION IN PRINT BUFFER A27725 58400001 BAL MSGRET,MVMSG MOVE MESG TO PRINT BUFFER A27725 58420001 BAL RETURN,LINEPR PRINT NO EXTENTS MESSAGE A27725 58440001 B COME GO FORMAT NEXT DSCB A27725 58460001 TESTORG TM ORG,X'42' TEST ORGANIZATION OF DATASET A27725 58480001 BC 8,NOTAP -* MUST BE PS OR PO ORGANIZATION.VF01 58500001 XC CONST1(5),CONST1 ZERO FIELD FOR COMPARE A38621 58520001 CLC TTRLL(5),CONST1 LAST BLOCK PTR APPLY? YA00066 58540002 BE NOTAP NO,UNABLE TO CALCULATE A38621 58560001 LA MSGFROM,204 ABLE TO CALCULATE MESSAGE VF0I 58580001 LA MSGTO,PRINT+32 -* PRINT POSITION. VF01 58600001 BAL MSGRET,MVMSG -* MOVE MSG TO PRINT POSITION. VF01 58620001 TM CTB,X'C0' -* IS THIS A CYLINDER SPECIFIED? VF01 58640001 BC 1,CYL -* YES,GO TO CYLINDER CAL. ROUTINE. VF01 58660001 TM CTB,X'40' -* IS IT A TRK SPECIFIED? VF01 58680001 BC 1,BLK -* YES,SO GO TO BLK CALCULATION RTN. VF01 58700001 MVC XHOLD(2),SAV+2 -* THEN THIS IS TRACK SPECIFIED. VF01 58720001 LH HLFWD,XHOLD -* FIT FOR CONVERTION ROUTINE. VF01 58740001 BAL RETURN,CONVCA -* GO TO RTN. VF01 58760001 MVC PRINT+67(5),UNPKFLD -* MOVE DATA TO PRINT. VF01 58780001 MVC PRINT+73(15),MTRK -* MOVE CONSTANT TO PRINT. VF01 58800001 BAL RETURN,LINEPR -* GO TO PRINT RTN. VF01 58820001 B COME VF01 58840001 CYL SR WORK1,WORK1 -* CLEAN REG BEFORE DEVIDING DATA. VF01 58860001 L WORK2,SAV -* SAV CONTAINS THE NO OF TRACKS. VF01 58880001 D WORK1,HANKOW+4 -* OBTAIN UNIT IN TERM OF CYL AND TKVF01 58900001 ST WORK2,SAV -* CYLINDERS. VF01 58920001 MVC XHOLD(2),SAV+2 -* CONVERT TO PRINTABLE. VF01 58940001 LH HLFWD,XHOLD -* FIT FOR CONVERTION RTN. VF01 58960001 BAL RETURN,CONVCA -* GO TO RTN. VF01 58980001 MVC PRINT+67(5),UNPKFLD -* MOVE DATA TO PRINT AREA. VF01 59000001 MVC PRINT+73(17),MCYL -* MOVE CONSTANT TO PRINT. VF01 59020001 ST WORK1,SAV -* THE REMAIDER IS TRACKS. VF01 59040001 MVC XHOLD(2),SAV+2 -* LOAD TO AREA SO RTN CAN HANDLE. VF01 59060001 LH HLFWD,XHOLD -* FIT FOR CONVERTION. VF01 59080001 BAL RETURN,CONVCA -* GO TO CONVT RTN. VF01 59100001 MVC PRINT+91(4),MPLUS -* MOVE CONSTANT FOR MSG PRINT. VF01 59120001 MVC PRINT+95(5),UNPKFLD -* NUMBER OF TRACKS. VF01 59140001 MVC PRINT+101(15),MTRK -* MOVE CONSTANT TO MSG PRINT VF01 59160001 BAL RETURN,LINEPR -* GO TO PRINT A LINE. VF01 59180001 B COME -* PROCEED TO NEXT. VF01 59200001 BLK SR WORK1,WORK1 -* CLEAR REG. PRIOR TO DIVISION. VF01 59220001 C WORK1,SAVER IS BLKSIZE ZERO M0128 59240001 BE NOTAP YES-PRNT UNABLE TO CALC MESG M0128 59260001 IC WORK1,KEYLENTH KEY LENGTH OF DATA SET YA00067 59280002 STH WORK1,KEYLE1 SAVE THE KEY LENGTH A29716 59300002 L WORK2,HANKOW+8 BYTES PER TRACK A29716 59320001 C WORK2,B14568 IS DEVICE A 2305-1? YA00067 59330002 BE CALCBLK BRANCH IF YES YA00067 59332002 C WORK2,B14858 IS DEVICE A 2305-2? YA00067 59334002 BE CALCBLK BRANCH IF YES YA00067 59336002 C WORK2,B13165 IS DEVICE A 3330? YA00067 59338002 BE CALCBLK BRANCH IF YES YA00067 59338402 C WORK2,B8368 IS DEVICE 3340? YL026VC 59338502 BE CALCBLK BRANCH IF YES YL026VC 59338602 SH WORK2,C53 SUB DEV CONST FR TRKSIZE YA00067 59338802 SR WORK2,WORK1 SUB KEYLENGTH FR TRKSIZE YA00067 59339202 C WORK2,SAVER IS BLOCKSIZE > TRACKSIZE YA00067 59339602 BL NOTAP PRINT UNABLE TO CALC MSG YA00067 59339702 AH WORK2,C53 ADD DEV CONST TO TRKSIZE YA00067 59339802 AR WORK2,WORK1 ADD KEYLENGTH TO TRKSIZE YA00067 59339902 DEVICE C WORK2,B7294 DEVICE 2314 A29716 59340002 BE UN2314 DEVICE IS A 2314 A29716 59360001 C WORK2,B3625 DEVICE 2311 A29716 59380001 BE UN2311 DEVICE IS A 2311 A29716 59400001 C WORK2,B14568 IS DEVICE 2305-1 59420001 BE UN23051 IF YES,BRANCH 59440001 C WORK2,B14858 IS DEVICE 2305-2 59460001 BE UN23052 IF YES,BRANCH 59480001 C WORK2,B13165 IS DEVICE 3330 59500001 BE UN3330 IF YES,BRANCH 59520001 C WORK2,B19254 IS IT 3350? @Z30RSAG 59526000 BE UN3350 BRANCH IF YES @Z30RSAG 59532000 C WORK2,B4984 IS DEVICE A 2302 A29716 59540001 BE UN2311 SAME BLOCK SPACE AS 2311 A29716 59560001 C WORK2,B4892 IS DEVICE A 2303 A29716 59580001 BE UN2303 IF SO BRANCH TO BLK CALC. A29716 59600001 C WORK2,B2000 IS A DATA CELL SPECIFIED A29716 59620001 BE UN2321 IF SO BRANCH A29716 59640001 C WORK2,B20483 IS DEVICE A 2301 A29716 59660001 BE UN2301 IF SO --- BRANCH A29716 59680001 C WORK2,B8368 IS DEVICE 3340 YL026VC 59686002 BE UN3340 IF SO BRANCH YL026VC 59692002 MVI PRINT,X'40' BLANK PRINT LINE 59700001 MVC PRINT+1(119),PRINT MAKE VOLUME INDEPENDENT 59720001 B COME GO TO NEXT DSCB 59740001 CALCBLK SH WORK2,C634 SUB DEV CONST FR TRKSIZE YA00067 59750002 SR WORK2,WORK1 SUB KEYLENGTH FR TRKSIZE YA00067 59752002 C WORK2,SAVER IS BLOCKSIZE > TRACKSIZE YA00067 59754002 BL NOTAP PRINT UNABLE TO CALC MSG YA00067 59756002 AH WORK2,C634 ADD DEV CONST TO TRKSIZE YA00067 59758002 AR WORK2,WORK1 ADD KEYLENGTH TO TRKSIZE YA00067 59758402 B DEVICE BR TO DEVICE DETERMINE YA00067 59758802 BLKLEFT SR WORK2,WORK1 SUB LAST RECORD LEN. FROM A29716 59760001 SR WORK1,WORK1 TR. CAPACITY AND DIVIDE BYA29716 59780001 DR WORK1,WORK3 LEN. OF EACH PHYSICAL REC.A29716 59800001 LA WORK2,1(WORK2) TOTAL RECORDS PER TRACK A29716 59820001 LR WORK5,WORK2 SAVE RECORDS PER TRACK A29716 59840001 SR WORK1,WORK1 ZERO THE REGISTER A29716 59860001 M WORK1,SAV EMPTY BLKS ON EMPTY TRKS A29716 59880001 LH WORK4,SA+2 EMPTY BYTES ON TRACK A29716 59900001 SR WORK3,WORK3 ZERO MULTIPLY REG. A29716 59920001 MR WORK3,WORK5 CALCULATE THE A29716 59940001 D WORK3,HANKOW+8 UNUSED BLOCKS ON THE A29716 59960001 * PARTIALLY USED TRACK A29716 59980001 AR WORK2,WORK4 TOTAL EMPTY BLOCKS A29716 60000001 ST WORK2,SAV STORE THE EMPTY BLOCK CNT.A29716 60020001 MVC XHOLD(2),SAV+2 -* CONVERT TO DECIMAL. VF01 60040001 LH HLFWD,XHOLD -* FULL THE RTN.REQUIREMENT. VF01 60060001 BAL RETURN,CONVCA -* GO TO RTN. VF01 60080001 MVC PRINT+77(5),UNPKFLD M-* MOVE DATA TO PRINT AREA. VF01 60100001 MVC PRINT+83(15),MBLK -* MOVE CONSTANT FOR PRINT. VF01 60120001 BAL RETURN,LINEPR -* GO TO PRINT A LINE. VF01 60140001 B COME -* PROCEED TO NEXT. VF01 60160001 DFORMAT2 ST RETURN,SAVE1 VF0I 60180001 TM SAVE3+5,X'01' -* 1ST TIME ENTRY? VFOI 60200001 BO NOCOME -* FIRST TIME ENTRY. VFOI 60220001 NANKING MVI ZSW,X'02' -* SET A BLANK LINE PRINT VFOI 60240001 LA MSGFROM,236 FMT2A VF0I 60260001 LA MSGTO,PRINT+5 VF0I 60280001 BAL MSGRET,MVMSG VF0I 60300001 BAL RETURN,LINEPR VF0I 60320001 SR ONEBYTE,ONEBYTE INITIALIZE REGISTER 4 VF0I 60340001 IC ONEBYTE,READIN+1 2MIND - ADDR 2ND LEVEL MASTER VF0I 60360001 BAL RETURN,CONVB INDEX VF0I 60380001 MVC PRINT+5(3),UNPKFLD+2 M - EXTENT VF0I 60400001 LH HLFWD,READIN+2 VF0I 60420001 BAL RETURN,CONVCH VF0I 60440001 MVC PRINT+9(1),UNPKFLD+4 B - BIN VF0I 60460001 LH HLFWD,READIN+4 VF0I 60480001 BAL RETURN,CONVH VF0I 60500001 MVC PRINT+11(3),UNPKFLD+2 C -CYLINDER VF0I 60520001 LH HLFWD,READIN+6 VF0I 60540001 OI FMT,X'08' VF0I 60560001 BAL RETURN,CONVH VF0I 60580001 MVC PRINT+15(3),UNPKFLD+2 H - HEAD VF0I 60600001 IC ONEBYTE,READIN+13 3MIND - ADDR 3RD LEVEL MASTER VF0I 60620001 BAL RETURN,CONVB INDEX VF0I 60640001 MVC PRINT+20(3),UNPKFLD+2 M - EXTENT VF0I 60660001 LH HLFWD,READIN+14 VF0I 60680001 BAL RETURN,CONVCH VF0I 60700001 MVC PRINT+24(1),UNPKFLD+4 B - BIN VF0I 60720001 LH HLFWD,READIN+16 VF0I 60740001 BAL RETURN,CONVH VF0I 60760001 MVC PRINT+26(3),UNPKFLD+2 C - CYLINDER VF0I 60780001 LH HLFWD,READIN+18 VF0I 60800001 OI FMT,X'08' VF0I 60820001 BAL RETURN,CONVH VF0I 60840001 MVC PRINT+30(3),UNPKFLD+2 H - HEAD VF0I 60860001 LH HLFWD,READIN+8 L2MEN -CCHHR OF LAST ACTIVEVF0I 60880001 BAL RETURN,CONVH INDEX ENTRY IN THE SECOND VF0I 60900001 MVC PRINT+35(3),UNPKFLD+2 LEVEL MASTER INDEX VF0I 60920001 LH HLFWD,READIN+10 VF0I 60940001 OI FMT,X'08' VF0I 60960001 BAL RETURN,CONVH VF0I 60980001 MVC PRINT+39(3),UNPKFLD+2 H - HEAD VF0I 61000001 IC ONEBYTE,READIN+12 VF0I 61020001 BAL RETURN,CONVB VF0I 61040001 MVC PRINT+43(3),UNPKFLD+2 R - RECORD VF0I 61060001 LH HLFWD,READIN+20 L3MIN - CCHHR OF LAST ACTIVE VF0I 61080001 BAL RETURN,CONVH ENTRY IN THE THIRD LEVEL VF0I 61100001 MVC PRINT+48(3),UNPKFLD+2 MASTER INDEX VF0I 61120001 LH HLFWD,READIN+22 VF0I 61140001 OI FMT,X'08' VF0I 61160001 BAL RETURN,CONVH VF0I 61180001 MVC PRINT+52(3),UNPKFLD+2 H - HEAD VF0I 61200001 IC ONEBYTE,READIN+24 VF0I 61220001 BAL RETURN,CONVB VF0I 61240001 MVC PRINT+56(3),UNPKFLD+2 R - RECORD VF0I 61260001 IC ONEBYTE,READIN+72 CYLAD - ADDR OF FIRST TRACK OF VF0I 61280001 BAL RETURN,CONVB CYLINDER INDEX - MBBCCHH VF0I 61300001 MVC PRINT+61(3),UNPKFLD+2 M - EXTENT VF0I 61320001 MVC XHOLD(2),READIN+73 VF0I 61340001 BAL RETURN,CONVCA -* GO TO CONVERTION ROUTINE. VF01 61360001 MVC PRINT+65(1),UNPKFLD+4 -* B-BIN. VF01 61380001 MVC XHOLD(2),READIN+75 VF0I 61400001 BAL RETURN,CONVA VF0I 61420001 MVC PRINT+67(3),UNPKFLD+2 C - CYLINDER VF0I 61440001 MVC XHOLD(2),READIN+77 VF0I 61460001 OI FMT,X'08' VF0I 61480001 BAL RETURN,CONVA VF0I 61500001 MVC PRINT+71(3),UNPKFLD+2 H - HEAD VF0I 61520001 IC ONEBYTE,READIN+79 ADLIN - ADDR OF FIRST TRACK OF VF0I 61540001 BAL RETURN,CONVB LOWEST LEVEL MASTER INDEX VF0I 61560001 MVC PRINT+76(3),UNPKFLD+2 MBBCCHH VF0I 61580001 LH HLFWD,READIN+80 VF0I 61600001 BAL RETURN,CONVCH VF0I 61620001 MVC PRINT+80(1),UNPKFLD+4 -* B-BIN. VF01 61640001 LH HLFWD,READIN+82 VF0I 61660001 BAL RETURN,CONVH VF0I 61680001 MVC PRINT+82(3),UNPKFLD+2 C - CYLINDER VF0I 61700001 LH HLFWD,READIN+84 VF0I 61720001 OI FMT,X'08' VF0I 61740001 BAL RETURN,CONVH VF0I 61760001 MVC PRINT+86(3),UNPKFLD+2 H - HEAD VF0I 61780001 IC ONEBYTE,READIN+86 ADHIN - ADDR OF FIRST TRACK OF VF0I 61800001 BAL RETURN,CONVB HIGHEST LEVEL MASTER INDEX VF0I 61820001 MVC PRINT+91(3),UNPKFLD+2 MBBCCHH VF0I 61840001 MVC XHOLD(2),READIN+87 VF0I 61860001 BAL RETURN,CONVCA VF0I 61880001 MVC PRINT+95(1),UNPKFLD+4 -* B-BIN. VF01 61900001 MVC XHOLD(2),READIN+89 VF0I 61920001 BAL RETURN,CONVA VF0I 61940001 MVC PRINT+97(3),UNPKFLD+2 C - CYLINDER VF0I 61960001 MVC XHOLD(2),READIN+91 VF0I 61980001 OI FMT,X'08' VF0I 62000001 BAL RETURN,CONVA VF0I 62020001 MVC PRINT+101(3),UNPKFLD+2 H - HEAD VF0I 62040001 LH HLFWD,READIN+64 NOBYT - NO. BYTES NEEDED TOVF0I 62060001 BAL RETURN,CONVCH HOLD HIGHEST LEVEL INDEX INVF0I 62080001 MVC PRINT+106(5),UNPKFLD MAIN STORAGE VF0I 62100001 IC ONEBYTE,READIN+66 NOTRK - NO, TRACKS OCCUPIEDVF0I 62120001 BAL RETURN,CONVB BY HIGHEST LEVEL INDEX VF0I 62140001 MVC PRINT+114(3),UNPKFLD+2 VF0I 62160001 BAL RETURN,LINEPR PRINT FIRST LINE OF FORMAT 2 VF0I 62180001 LA MSGFROM,244 FMT2C VF0I 62200001 LA MSGTO,PRINT+5 VF0I 62220001 MVI ZSW,X'02' VF0I 62240001 BAL MSGRET,MVMSG VF0I 62260001 BAL RETURN,LINEPR VF0I 62280001 MVC XHOLD(2),READIN+101 LTRAD - CCHHR OF LAST NORMAL VF0I 62300001 BAL RETURN,CONVA ENTRY IN TRACK INDEX ON LAST VF0I 62320001 MVC PRINT+5(3),UNPKFLD+2 CYLINDER VF0I 62340001 MVC XHOLD(2),READIN+103 VF0I 62360001 OI FMT,X'08' VF0I 62380001 BAL RETURN,CONVA VF0I 62400001 MVC PRINT+9(3),UNPKFLD+2 H - HEAD VF0I 62420001 IC ONEBYTE,READIN+105 VF0I 62440001 BAL RETURN,CONVB VF0I 62460001 MVC PRINT+13(3),UNPKFLD+2 R - RECORD VF0I 62480001 LH HLFWD,READIN+106 LCYAD - CCHHR OF LAST INDEXVF0I 62500001 BAL RETURN,CONVH ENTRY IN CYLINDER INDEX VF0I 62520001 MVC PRINT+18(3),UNPKFLD+2 VF0I 62540001 LH HLFWD,READIN+108 VF0I 62560001 OI FMT,X'08' VF0I 62580001 BAL RETURN,CONVH VF0I 62600001 MVC PRINT+22(3),UNPKFLD+2 H - HEAD VF0I 62620001 IC ONEBYTE,READIN+110 VF0I 62640001 BAL RETURN,CONVB VF0I 62660001 MVC PRINT+26(3),UNPKFLD+2 R - RECORD VF0I 62680001 MVC XHOLD(2),READIN+111 LMSAD - CCHHR OF LAST INDEXVF0I 62700001 BAL RETURN,CONVA ENTRY IN THE MASTER INDEX VF0I 62720001 MVC PRINT+31(3),UNPKFLD+2 C - CYLINDER VF0I 62740001 MVC XHOLD(2),READIN+113 VF0I 62760001 OI FMT,X'08' VF0I 62780001 BAL RETURN,CONVA VF0I 62800001 MVC PRINT+35(3),UNPKFLD+2 H - HEAD VF0I 62820001 IC ONEBYTE,READIN+115 VF0I 62840001 BAL RETURN,CONVB VF0I 62860001 MVC PRINT+39(3),UNPKFLD+2 R - RECORD VF0I 62880001 IC ONEBYTE,READIN+93 LPRAD - MBBCCHHR OF LAST RCD VF0I 62900001 BAL RETURN,CONVB IN THE PRIME DATA AREA VF0I 62920001 MVC PRINT+44(3),UNPKFLD+2 M - EXTENT VF0I 62940001 LH HLFWD,READIN+94 VF0I 62960001 BAL RETURN,CONVCH VF0I 62980001 MVC PRINT+48(1),UNPKFLD+4 B - BIN VF0I 63000001 LH HLFWD,READIN+96 VF0I 63020001 BAL RETURN,CONVH VF0I 63040001 MVC PRINT+50(3),UNPKFLD+2 C - CYLINDER VF0I 63060001 LH HLFWD,READIN+98 VF0I 63080001 OI FMT,X'08' VF0I 63100001 BAL RETURN,CONVH VF0I 63120001 MVC PRINT+54(3),UNPKFLD+2 H - HEAD VF0I 63140001 IC ONEBYTE,READIN+100 VF0I 63160001 BAL RETURN,CONVB VF0I 63180001 MVC PRINT+58(3),UNPKFLD+2 R - RECORD VF0I 63200001 IC ONEBYTE,READIN+45 NOLEV - NO. OF INDEX LEVELSVF0I 63220001 BAL RETURN,CONVB VF0I 63240001 MVC PRINT+63(3),UNPKFLD+2 VF0I 63260001 IC ONEBYTE,READIN+52 CYLOV - NO. OF TRACKS OF VF0I 63280001 BAL RETURN,CONVB CYL OVERFLOW ON EACH VF0I 63300001 MVC PRINT+70(3),UNPKFLD+2 CYLINDER VF0I 63320001 MVC XHOLD(2),READIN+59 TAGDT - NO. RCDS TAGGED FOR VF0I 63340001 BAL RETURN,CONVCA DELETION VF0I 63360001 MVC PRINT+76(3),UNPKFLD VF0I 63380001 MVC XHOLD(4),READIN+67 PRCTR - NO. RCDS IN PRIME VF0I 63400001 L WORK2,XHOLD DATA AREA VF0I 63420001 CVD WORK2,CONVERT VF0I 63440001 UNPK PRINT+79(9),CONVERT+3(5) -* FOR PRINTABLE. VF02 63460001 LA WORK3,9 -* NO OF BYTES PROCESSED. VF01 63480001 LA WORK2,PRINT+79 -* ADDRESS OF DATA TO BE PROCESSVF01 63500001 BAL RETURN,TRY -* GO TO GET RID OF ZERO. VF01 63520001 OI PRINT+87,X'F0' -* FOR PRINTABLE. VF01 63540001 LH HLFWD,READIN+128 OVRCT - NO. RECORDS IN VF0I 63560001 BAL RETURN,CONVCH OVERFLOW AREA VF0I 63580001 MVC PRINT+94(5),UNPKFLD VF0I 63600001 LH HLFWD,READIN+130 RORG1 - NO. CYL OVERFLOW VF0I 63620001 BAL RETURN,CONVCH AREAS THAT ARE FULL VF0I 63640001 MVC PRINT+101(5),UNPKFLD VF0I 63660001 CLC CLEAR(5),READIN+135 VF0I 63680001 BE WRITE2 VF0I 63700001 MVC XHOLD(2),READIN+135 CCHHR OF POINTR TO FRMAT 3 VF0I 63720001 BAL RETURN,CONVA DSCB IF APPLICABLE VF0I 63740001 MVC PRINT+108(3),UNPKFLD+2 C - CYLINDER VF0I 63760001 MVC XHOLD(2),READIN+137 VF0I 63780001 OI FMT,X'08' VF0I 63800001 BAL RETURN,CONVA VF0I 63820001 MVC PRINT+112(3),UNPKFLD+2 H - HEAD VF0I 63840001 IC ONEBYTE,READIN+139 VF0I 63860001 BAL RETURN,CONVB VF0I 63880001 MVC PRINT+116(3),UNPKFLD+2 R - RECORD VF0I 63900001 TM SAVE3+5,X'02' -* FORMAT 3 EXIST? VFOI 63920001 BO HUNAN -* YES,GO TO SET OFF THE SWITCH. VFOI 63940001 WRITE2 BAL RETURN,LINEPR -* GO TO PRINT A LINE. VF01 63960001 B MORE -* PROCEED TO NEXT. VF01 63980001 DFORMAT3 ST RETURN,SAVE1 VF0I 64000001 TM SAVE3+5,X'02' -* FORMAT 3 EXIST? @ZA07324 64006000 BO HUNAN -* YES,GO TO SET OFF THE SWITCH. @ZA07324 64012000 SR ONEBYTE,ONEBYTE VF0I 64020001 MVC HOLDAREA(40),READIN+4 VF0I 64040001 MVC HOLDAREA+40(90),READIN+45 VF0I 64060001 MVI PHOLD,X'40' BLANK OUT PHOLD 64080001 MVC PHOLD+1(22),PHOLD 64100001 SR WORK1,WORK1 VF0I 64120001 LR WORK3,WORK1 VF0I 64140001 LA WORK1,HOLDAREA VF0I 64160001 LA WORK3,PRINT+21 -* ADDRESS TO PROPER PRINT POSITVF01 64180001 MVI PRINT1,X'00' VF0I 64200001 NEXTEXT CLI 1(WORK1),X'00' VF0I 64220001 BE CHKWRT VF0I 64240001 C WORK3,MAX PRINT LINE FILLED VF0I 64260001 BH PRNTEXT YES VF0I 64280001 CONTPRT MVI PRINT1,X'01' SET VALID EXTENT PRINT SW VF0I 64300001 MVC XHOLD(10),0(WORK1) VF0I 64320001 IC ONEBYTE,XHOLD+1 NO. OF EXTENT VF0I 64340001 BAL RETURN,CONVB VF0I 64360001 MVC PHOLD(2),UNPKFLD+3 VF0I 64380001 LH HLFWD,XHOLD+2 LOW LIMIT CYL ADDR VF0I 64400001 BAL RETURN,CONVH VF0I 64420001 MVC PHOLD+5(3),UNPKFLD+2 VF0I 64440001 LH HLFWD,XHOLD+4 LOW LIMIT HEAD ADDR VF0I 64460001 OI FMT,X'08' VF0I 64480001 BAL RETURN,CONVH VF0I 64500001 MVC PHOLD+9(3),UNPKFLD+2 VF0I 64520001 LH HLFWD,XHOLD+6 HIGH LIMIT CYL ADDR VF0I 64540001 BAL RETURN,CONVH VF0I 64560001 MVC PHOLD+17(3),UNPKFLD+2 VF0I 64580001 LH HLFWD,XHOLD+8 HIGH LIMIT HEAD ADDR VF0I 64600001 OI FMT,X'08' VF0I 64620001 BAL RETURN,CONVH VF0I 64640001 MVC PHOLD+21(3),UNPKFLD+2 VF0I 64660001 MVC 0(24,WORK3),PHOLD MOVE EXTENTS TO PRINT AREA VF0I 64680001 LA WORK3,28(WORK3) VF0I 64700001 BAL RETURN,MYRTN -* TO SPACE CALCULATION ROUTINE.VF01 64720001 CLI XHOLD+1,X'0F' -* IS THIS THE LAST ONE IN FM3 VF01 64740001 BNL CHKWRT 64760001 UPCOMP C WORK1,HOLDEND PROCESSED ALL EXTENTS VF0I 64780001 BNL CHKWRT VF0I 64800001 LA WORK1,10(WORK1) UP EXTENT POINTER VF0I 64820001 B NEXTEXT GET NEXT EXTENT VF0I 64840001 CHKWRT CLI PRINT1,X'01' ANY TO BE PRINTED IN PRINT LINE VF0I 64860001 BNE CONVADD NO VF0I 64880001 BAL RETURN,LINEPR VF0I 64900001 CONVADD MVI EXTNO,X'04' EXTENTS ARE PRESENT YA00067 64920002 B MORE EMPTY SPACE CALC PM0405 64940001 PRNTEXT BAL RETURN,LINEPR PRINT LINE VF0I 64960001 MVI PRINT1,X'00' RESET PRINT SWITCH VF0I 64980001 LA WORK3,PRINT+21 -* SET THE PRINT POSITION. VF01 65000001 B CONTPRT RETURN TO CONVERT RTN VF0I 65020001 DFORMAT4 ST RETURN,SAVE4A VF0I 65040001 MVC HANKOW+2(2),DSCBIN+18 -* SAVE THE NUMBER OF CYLINDEVF01 65060001 MVC HANKOW+6(2),DSCBIN+20 -* SAVE THE NO OF TRACKS. VF01 65080001 MVC HANKOW+10(2),DSCBIN+22 -* SAVE THE NO OF BYTES. VF01 65100001 TM SW,DSNAMESW VF01 65120001 BO DPARTIAL VF01 65140001 LA MSGFROM,212 FMT4A VF0I 65160001 LA MSGTO,PRINT -* SET UP THE PRINT POSITION. VF01 65180001 BAL MSGRET,MVMSG VF0I 65200001 MVI ZSW,X'02' VF0I 65220001 BAL RETURN,LINEPR VF0I 65240001 LA MSGFROM,216 FMT4B VF0I 65260001 LA MSGTO,PRINT+11 65280001 BAL MSGRET,MVMSG VF0I 65300001 BAL RETURN,LINEPR VF0I 65320001 UNPK PRINT+11(3),DSCBIN+14(2) VTOC INDICATORS 65340001 MVI PRINT+13,X'EF' 65360001 TR PRINT+11(3),TRANSLAT 65380001 SR ONEBYTE,ONEBYTE VF0I 65400001 LH HLFWD,DSCBIN+6 NO. AVAILABLE DSCS VF0I 65420001 BAL RETURN,CONVCH VF0I 65440001 MVC PRINT+16(5),UNPKFLD VF0I 65460001 IC ONEBYTE,DSCBIN+30 MAX NO. DSCB PER TRACK VF0I 65480001 BAL RETURN,CONVB VF0I 65500001 MVC PRINT+27(3),UNPKFLD+2 VF0I 65520001 IC ONEBYTE,DSCBIN+31 MAX NO. FULL DRCTRY BLKS PER TRKVF0I 65540001 BAL RETURN,CONVB VF0I 65560001 MVC PRINT+38(3),UNPKFLD+2 VF0I 65580001 LH HLFWD,DSCBIN+12 NO. ALT TRACKS AVAILABLE VF0I 65600001 BAL RETURN,CONVCH VF0I 65620001 MVC PRINT+47(5),UNPKFLD VF0I 65640001 LH HLFWD,DSCBIN+8 CYL ADDR OF NEXT ALT TRACK VF0I 65660001 BAL RETURN,CONVH VF0I 65680001 MVC PRINT+56(3),UNPKFLD+2 VF0I 65700001 LH HLFWD,DSCBIN+10 HEAD ADDR OF NEXT ALT TRACK VF0I 65720001 OI FMT,X'08' VF0I 65740001 BAL RETURN,CONVH VF0I 65760001 MVC PRINT+60(3),UNPKFLD+2 VF0I 65780001 MVC XHOLD(2),DSCBIN+1 CYL ADDR OF LAST ACTIVE FMT1 VF0I 65800001 BAL RETURN,CONVA VF0I 65820001 MVC PRINT+79(3),UNPKFLD+2 VF0I 65840001 MVC XHOLD(2),DSCBIN+3 HEAD ADDR OF LAST ACTIVE FMT1 VF0I 65860001 OI FMT,X'08' VF0I 65880001 BAL RETURN,CONVA VF0I 65900001 MVC PRINT+83(3),UNPKFLD+2 VF0I 65920001 IC ONEBYTE,DSCBIN+5 RECORD ADDR OF LAST ACTIVE FMT1 VF0I 65940001 BAL RETURN,CONVB VF0I 65960001 MVC PRINT+87(3),UNPKFLD+2 VF0I 65980001 BAL RETURN,CONVDSCB CONVERT ADDR OF THE DSCB VF0I 66000001 MVC PRINT+109(11),PHOLD VF0I 66020001 MVC XHOLD(2),DSCBIN+63 LOW CYL OF VTOC EXTENT VF0I 66040001 BAL RETURN,CONVA VF0I 66060001 MVC PRINT+92(3),UNPKFLD+2 VF0I 66080001 MVC XHOLD(2),DSCBIN+65 LOW HEAD OF VTOC EXTENT VF0I 66100001 OI FMT,X'08' VF0I 66120001 BAL RETURN,CONVA VF0I 66140001 MVC PRINT+96(3),UNPKFLD+2 VF0I 66160001 MVC XHOLD(2),DSCBIN+67 HIGH CYL OF VTOC EXTENT VF0I 66180001 BAL RETURN,CONVA VF0I 66200001 MVC PRINT+100(3),UNPKFLD+2 VF0I 66220001 MVC XHOLD(2),DSCBIN+69 HIGH HEAD OF VTOC EXTENT VF0I 66240001 OI FMT,X'08' VF0I 66260001 BAL RETURN,CONVA VF0I 66280001 MVC PRINT+104(3),UNPKFLD+2 VF0I 66300001 CLC CLEAR(5),DSCBIN+56 POINTER TO FORMAT 6 DSCB VF0I 66320001 BE PRT4 VF0I 66340001 LH HLFWD,DSCBIN+56 CYL OF FMT 6 DSCB VF0I 66360001 BAL RETURN,CONVH VF0I 66380001 MVC PRINT+66(3),UNPKFLD+2 VF0I 66400001 LH HLFWD,DSCBIN+58 HEAD ADDR OF FMT 6 DSCB VF0I 66420001 OI FMT,X'08' VF0I 66440001 BAL RETURN,CONVH VF0I 66460001 MVC PRINT+70(3),UNPKFLD+2 VF0I 66480001 IC ONEBYTE,DSCBIN+60 RECORD ADDR OF FMT 6 DSCB VF0I 66500001 BAL RETURN,CONVB VF0I 66520001 MVC PRINT+74(3),UNPKFLD+2 VF0I 66540001 PRT4 BAL RETURN,LINEPR -* GO TO PRINT A LINE. VF01 66560001 MVC SAVECCHH(5),WORKIN+8 SAVE ADDR OF THIS RECORD VF0I 66580001 DCHAIN CLC CLEAR(5),READIN+100 VF0I 66600001 BE GETOUT VF0I 66620001 SR WORK2,WORK2 VF0I 66640001 IC WORK2,READIN+104 PUT RECORD ADDR IN REG 3 VF0I 66660001 BCTR WORK2,0 DECREMENT REGISTER BY 1 VF0I 66680001 STC WORK2,READIN+104 VF0I 66700001 MVC WORKIN+8(5),READIN+100 VF0I 66720001 BAL WORK2,DREAD VF0I 66740001 BAL RETURN,DFMT56 VF0I 66760001 B REPEAT USE TEST FOR MULTIPLE YM5559 66780002 * FORMAT5 TO ALSO TEST YM5559 66790002 * FOR MULTIPLE FORMAT6 YM5559 66792002 GETOUT MVC WORKIN+8(5),SAVECCHH VF0I 66800001 L RETURN,SAVE4A VF0I 66820001 BR RETURN VF0I 66840001 DFMT56 ST RETURN,SAVE1 VF0I 66860001 LA MSGFROM,72 VF0I 66880001 LA MSGTO,0 VF0I 66900001 BAL MSGRET,MVMSG VF0I 66920001 MVC PRINT+8(1),READIN+44 VF0I 66940001 CLI READIN+44,FORMAT6 VF0I 66960001 BE *+12 VF0I 66980001 LA MSGFROM,220 FMT5A VF0I 67000001 B *+8 VF0I 67020001 LA MSGFROM,232 FMT6A VF0I 67040001 LA MSGTO,PRINT+19 VF0I 67060001 BAL MSGRET,MVMSG VF0I 67080001 MVI ZSW,X'02' VF0I 67100001 BAL RETURN,LINEPR VF0I 67120001 LA MSGFROM,224 FMT5B VF0I 67140001 LA MSGTO,PRINT+6 VF0I 67160001 BAL MSGRET,MVMSG VF0I 67180001 BAL RETURN,LINEPR VF0I 67200001 LA MSGFROM,228 FMT5C VF0I 67220001 LA MSGTO,PRINT+6 VF0I 67240001 BAL MSGRET,MVMSG VF0I 67260001 BAL RETURN,LINEPR VF0I 67280001 SR ONEBYTE,ONEBYTE VF0I 67300001 MVC HOLDAREA(40),READIN+4 VF0I 67320001 MVC HOLDAREA+40(90),READIN+45 VF0I 67340001 MVI PHOLD,X'40' BLANK OUT PHOLD 67360001 MVC PHOLD+1(22),PHOLD 67380001 SR WORK1,WORK1 INITIALIZE REGISTERS TO 0 VF0I 67400001 LR WORK3,WORK1 VF0I 67420001 LA WORK1,HOLDAREA VF0I 67440001 LA WORK3,PRINT+5 VF0I 67460001 MVI PRINT1,X'00' VF0I 67480001 NXTEXT5 CLC ZEROS(5),0(WORK1) VF0I 67500001 BE CHKWRT5 VF0I 67520001 C WORK3,MAX END OF PRINT LINE REACHED VF0I 67540001 BH PRTEXT5 YES - PRINT LINE VF0I 67560001 CONTPT5 MVI PRINT1,X'01' VF0I 67580001 MVC XHOLD(5),0(WORK1) VF0I 67600001 LH HLFWD,XHOLD RELATIVE TRACK ADDR VF0I 67620001 BAL RETURN,CONVCH VF0I 67640001 MVC PHOLD(5),UNPKFLD @ZA01652 67660002 LH HLFWD,XHOLD+2 NO. OF FULL CYLS VF0I 67680001 BAL RETURN,CONVCH FMT5 = FULL CYL AVAILABLE VF0I 67700001 MVC PHOLD+8(3),UNPKFLD+2 FMT6 # FULL CYL BEING SHAREDVF0I 67720001 IC ONEBYTE,XHOLD+4 VF0I 67740001 BAL RETURN,CONVB FMT5 = # OF ADDITIONAL TRKSVF0I 67760001 MVC PHOLD+13(3),UNPKFLD+2 FMT6 = # DATA SETS SHARING EXTVF0I 67780001 MVC 0(16,WORK3),PHOLD MOVE TO PRINT AREA VF0I 67800001 LA WORK3,19(WORK3) VF0I 67820001 UPADD LA WORK1,5(WORK1) A38019 67840001 C WORK1,HOLDEND A38019 67860001 BNL CHKWRT5 VF0I 67880001 B NXTEXT5 GET NEXT EXTENT VF0I 67900001 CHKWRT5 CLI PRINT1,X'01' ANY EXTENTS LEFT IN PRINT VF0I 67920001 BNE CONV5 NO VF0I 67940001 BAL RETURN,LINEPR YES - PRINT THEM VF0I 67960001 CONV5 LA MSGFROM,208 FMT3B VF0I 67980001 MVI ZSW,X'02' -* PRINT A BLANK LINK. VF01 68000001 LA MSGTO,PRINT+17 VF0I 68020001 BAL MSGRET,MVMSG VF0I 68040001 BAL RETURN,CONVDSCB CONVERT ADDR OF THE DSCB VF0I 68060001 MVC PRINT+29(11),PHOLD VF0I 68080001 BAL RETURN,LINEPR VF0I 68100001 MVI ZSW,X'02' -* PRINT A BLANK LINK. VF01 68120001 LA MSGFROM,240 -* PRINT A MSG. VF01 68140001 LA MSGTO,0 -* SET UP PRINT POSITION. VF01 68160001 BAL MSGRET,MVMSG -* MOVE MSG TO PRINT AREA. VF01 68180001 BAL RETURN,LINEPR -* GO TO PRINT A LINE. VF01 68200001 L RETURN,SAVE1 VF0I 68220001 BR RETURN VF0I 68240001 UN23051 MVC CONST1(2),C634 MOVE FORMULA CONST 68260001 MVC CONST2(2),C634 MOVE FORMULA CONST 68280001 MVC CONST3(2),C432 MOVE FORMULA CONST 68300001 B CMNCAL B TO DO BLKS LEFT CALC 68320001 UN23052 MVC CONST1(2),C289 MOVE FORMULA CONSTANT 68340001 MVC CONST2(2),C289 MOVE FORMULA CONSTANT 68360001 MVC CONST3(2),C198 MOVE FORMULA CONSTANT 68380001 B CMNCAL B TO DO BLKS LEFT CALC 68400001 UN3350 MVC CONST1(2),C267 MOVE FORMULA CONSTANT @Z30RSAG 68404000 MVC CONST2(2),C267 MOVE FORMULA CONSTANT @Z30RSAG 68408000 MVC CONST3(2),C185 MOVE FORMULA CONSTANT @Z30RSAG 68412000 B CMNCAL @Z30RSAG 68416000 UN3330 MVC CONST1(2),C193 MOVE FORMULA CONSTANT 68420001 MVC CONST2(2),C193 MOVE FORMULA CONSTANT 68440001 MVC CONST3(2),C135 MOVE FORMULA CONSTANT 68460001 B CMNCAL B TO DO BLKS LEFT CALC YL026VC 68464002 UN3340 MVC CONST1(2),C242 MOVE FORMULA CONSTANT YL026VC 68468002 MVC CONST2(2),C242 MOVE FORMULA CONSTANT YL026VC 68472002 MVC CONST3(2),C167 MOVE FORMULA CONSTANT YL026VC 68476002 CMNCAL L WORK4,C1000 MULTIPLYINF FACTOR 68480001 LTR WORK2,WORK1 IS THE KEY LENGTH 0 68500001 BC 8,NOKEYH BRANCH TO KEY EQUAL 0 68520001 A WORK2,SAVER ADD BLOCKSIZE TO KEY LEN. 68540001 BAL RETURN,BLKCAL GO TO BLOCK CALC 68560001 AH WORK1,KEYLE1 ADD KEY LENGTH 68580001 AH WORK1,CONST1 ADD FORMULA CONSTANT 68600001 AH WORK3,CONST2 ADD FORMULA CONSTANT 68620001 B BLKLEFT 68640001 NOKEYH L WORK2,SAVER LOAD BLOCKSIZE 68660001 BAL RETURN,BLKCAL GO TO BLK CALC 68680001 AH WORK3,CONST3 ADD FORMULA CONSTANT 68700001 AH WORK1,CONST3 LENGTH LAST RECORD 68720001 B BLKLEFT GO TO REMAINING BLK CALC 68740001 UN2314 L WORK4,C1043 MULTIPLYING FACTOR A29716 68760001 LTR WORK2,WORK1 IS THE KEY LENGTH 0 A29716 68780001 BC 8,NOKEYA BRANCH TO KEY EQUAL 0 A29716 68800001 A WORK2,SAVER ADD BLOCKSIZE TO KEY LEN. A29716 68820001 BAL RETURN,BLKCAL GO TO BLOCK CALCULATION A29716 68840001 AH WORK1,KEYLE1 ADD KEY LEN. A29716 68860001 AH WORK1,C45 ADD FORMULA CONSTANT A29716 68880001 AH WORK3,C146 ADD FORMULA CONSTANT A29716 68900001 B BLKLEFT GO TO REMAINING BLK CALC A29716 68920001 NOKEYA L WORK2,SAVER LOAD BLOCKSIZE A29716 68940001 BAL RETURN,BLKCAL GO TO BLK. CALC. A29716 68960001 AH WORK3,C101 ADD FORMULA CONSTANT A29716 68980001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69000001 UN2311 L WORK4,C1049 MULTIPLYING FACTOR A29716 69020001 LTR WORK2,WORK1 IS THE KEY LENGTH 0 A29716 69040001 BC 8,NOKEYB BRANCH TO KEY EQUAL 0 A29716 69060001 A WORK2,SAVER ADD BLOCKSIZE TO KEY LEN. A29716 69080001 BAL RETURN,BLKCAL GO TO BLOCK CALCULATION A29716 69100001 AH WORK1,KEYLE1 ADD KEY LEN. A29716 69120001 AH WORK1,C20 ADD FORMULA CONSTANT A29716 69140001 AH WORK3,C81 ADD FORMULA CONSTANT A29716 69160001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69180001 NOKEYB L WORK2,SAVER LOAD BLOCKSIZE A29716 69200001 BAL RETURN,BLKCAL A29716 69220001 AH WORK3,C61 ADD FORMULA CONSTANT A29716 69240001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69260001 UN2303 L WORK4,C1000 MULTIPLYING FACTOR A29716 69280001 LTR WORK2,WORK1 IS THE KEY LENGTH 0 A29716 69300001 BC 8,NOKEYC BRANCH TO KEY EQUAL 0 A29716 69320001 A WORK2,SAVER ADD BLOCKSIZE TO KEY LEN. A29716 69340001 BAL RETURN,BLKCAL GO TO BLOCK CALCULATION A29716 69360001 AH WORK1,KEYLE1 ADD KEY LEN. A29716 69380001 AH WORK1,C38 ADD FORMULA CONSTANT A29716 69400001 AH WORK3,C146 ADD FORMULA CONSTANT A29716 69420001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69440001 NOKEYC L WORK2,SAVER LOAD BLOCKSIZE A29716 69460001 BAL RETURN,BLKCAL A29716 69480001 AH WORK3,C108 ADD FORMULA CONSTANT A29716 69500001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69520001 UN2301 L WORK4,C1000 MULTIPLYING FACTOR A29716 69540001 LTR WORK2,WORK1 IS THE KEY LENGTH 0 A29716 69560001 BC 8,NOKEYD BRANCH TO KEY EQUAL 0 A29716 69580001 A WORK2,SAVER ADD BLOCKSIZE TO KEY LEN. A29716 69600001 BAL RETURN,BLKCAL GO TO BLOCK CALCULATION A29716 69620001 AH WORK1,KEYLE1 ADD KEY LEN. A29716 69640001 AH WORK1,C53 ADD FORMULA CONSTANT A29716 69660001 AH WORK3,C186 ADD FORMULA CONSTANT A29716 69680001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69700001 NOKEYD L WORK2,SAVER LOAD BLOCKSIZE A29716 69720001 BAL RETURN,BLKCAL A29716 69740001 AH WORK3,C133 ADD FORMULA CONSTANT A29716 69760001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69780001 UN2321 L WORK4,C1049 MULTIPLYING FACTOR A29716 69800001 LTR WORK2,WORK1 IS THE KEY LENGTH 0 A29716 69820001 BC 8,NOKEYE BRANCH TO KEY EQUAL 0 A29716 69840001 A WORK2,SAVER ADD BLOCKSIZE TO KEY LEN. A29716 69860001 BAL RETURN,BLKCAL GO TO BLOCK CALCULATION A29716 69880001 AH WORK1,KEYLE1 ADD KEY LEN. A29716 69900001 AH WORK1,C16 ADD FORMULA CONSTANT A29716 69920001 AH WORK3,C100 ADD FORMULA CONSTANT A29716 69940001 B BLKLEFT GO TO REMAINING BLK CALC A29716 69960001 NOKEYE L WORK2,SAVER LOAD BLOCKSIZE A29716 69980001 BAL RETURN,BLKCAL A29716 70000001 AH WORK3,C84 ADD FORMULA CONSTANT A29716 70020001 B BLKLEFT GO TO REMAINING BLK CALC A29716 70040001 BLKCAL SR WORK1,WORK1 ZERO REGISTER FOR DIVIDE A29716 70060001 MR WORK1,WORK4 MULT BY FORMULA CONSTANT A29716 70080001 D WORK1,C1000 MOVE DECIMAL 3 DIGITS A29716 70100001 LR WORK3,WORK2 SAVE VALUE A29716 70120001 L WORK2,HANKOW+8 LOAD TRACK SIZE A29716 70140001 L WORK1,SAVER LOAD BLOCKSIZE A29716 70160001 BR RETURN A29716 70180001 PRTEXT5 BAL RETURN,LINEPR VF0I 70200001 MVI PRINT1,X'00' RESET PRINT SWITCH VF0I 70220001 LA WORK3,PRINT+5 RESET PRINT ADDR VF0I 70240001 B CONTPT5 RETURN VF0I 70260001 * CONVB IS LINKED TO WHENEVER ONE BYTE OF DATA REQUIRES CONVERSIONVF0I 70280001 CONVB ST RETURN,SAVE2 -* SAVE RETURN ADDRESS. VF01 70300001 CVD ONEBYTE,CONVERT VF0I 70320001 UNPK UNPKFLD(5),CONVERT+5(3) VF0I 70340001 TM FMT,X'0C' IS IT HEAD ADDR FOR 2321 VF0I 70360001 BO BYPASSSP BYPASS SUPRESSION OF ZEROES VF0I 70380001 BAL RETURN,PEKING -* GO TO GET RID LEADING ZERO VF01 70400001 BYPASSSP OI UNPKFLD+4,X'F0' VF0I 70420001 L RETURN,SAVE2 -* RELOAD RETURN ADDRESS. VF01 70440001 BR RETURN VF0I 70460001 * VF0I 70480001 * CONVCA IS LINKED TO WHEN VF0I 70500001 * 1. A HALFWORD OF DATA, NOT ON A HALFWORD BUNDRY, REQUIRESVF0I 70520001 * CONVERSION AND VF0I 70540001 * 2. IS NOT PART OF AN ADDRESS AND THERFORE REQUIRES VF0I 70560001 * NO SPECIAL HANDLING IF THE DEVICE IS A 2321 VF0I 70580001 * CONVCH IS LINKED TO WHEN VF0I 70600001 * 1. A HALFWORD OF DATE, ON A HALFWORD BOUNDARY REQUIRES VF0I 70620001 * CONVERSION AND VF0I 70640001 * 2. IS NOT PART OF AN ADDRESS AND THEREFORE REQUIRES VF0I 70660001 * NO SPECIAL HANDLING IF THE DEVICE IS A 2321. VF0I 70680001 CONVCA ST RETURN,RET VF0I 70700001 LH HLFWD,XHOLD VF0I 70720001 CONVCH ST RETURN,RET VF0I 70740001 N HLFWD,HBCLEAR CLEAR THE 2 HIGH ORDER BYTES @YA02531 70750002 CVD HLFWD,CONVERT VF0I 70760001 UNPK UNPKFLD(5),CONVERT+5(3) VF0I 70780001 BAL RETURN,PEKING -* GO TO GET RID LEADING ZERO VF01 70800001 OI UNPKFLD+4,X'F0' VF0I 70820001 L RETURN,RET VF0I 70840001 BR RETURN VF0I 70860001 * CONVA IS LINKED TO WHEN VF0I 70880001 * 1. HALFWORD OF DATA, NOT ON PROPER BOUNDARY ALIGNMENT VF0I 70900001 * REQUIRES CONVERSION AND VF0I 70920001 * 2. REQUIRES SPECIAL HANDLING IF DEVICE IS 2321 VF0I 70940001 * CONVH IS LINKED TO WHEN VF0I 70960001 * 1. HALFWORD OF DATA, ON PROPER BOUNDARY ALIGNMENT VF0I 70980001 * REQUIRES CONVERSION AND VF0I 71000001 * 2. DATA REQUIRES SPECIAL HANDLING IF DEVICE IS 2321 VF0I 71020001 CONVA ST RETURN,RET VF0I 71040001 LH HLFWD,XHOLD VF0I 71060001 CONVH ST RETURN,RET VF0I 71080001 N HLFWD,HBCLEAR CLEAR THE 2 HIGH ORDER BYTES @YA02531 71090002 TM FMT,X'04' IS DEVICE 2321 VF0I 71100001 BZ DREGCONV VF0I 71120001 TM FMT,X'08' VF0I 71140001 BO REVERSE TRANSPOSE THE 2 BYTES IN HLFWD VF0I 71160001 STH HLFWD,WK2321 VF0I 71180001 C2321A IC ONEBYTE,WK2321 PICK UP SUBCELL OR TRACK ADDR VF0I 71200001 BAL RETURN,CONVB VF0I 71220001 MVC HLD2321(2),UNPKFLD+3 SAVE SUBCEL/TRK ADDR FOR 2321 VF0I 71240001 IC ONEBYTE,WK2321+1 VF0I 71260001 BAL RETURN,CONVB VF0I 71280001 TM FMT,X'08' TRANSPOSE UNPKFLD FOR PRINTING VF0I 71300001 BO REVERSEA VF0I 71320001 MVC UNPKFLD+2(2),HLD2321 COMBINE SUBCELL-STRIP FOR PRINTVF0I 71340001 C2321B NI FMT,X'F7' VF0I 71360001 B CONVH1 VF0I 71380001 DREGCONV CVD HLFWD,CONVERT VF0I 71400001 UNPK UNPKFLD(5),CONVERT+5(3) VF0I 71420001 BAL RETURN,PEKING -* GO TO GET RID LEADING ZERO VF01 71440001 OI UNPKFLD+4,X'F0' VF0I 71460001 CONVH1 L RETURN,RET VF0I 71480001 BR RETURN VF0I 71500001 REVERSE STC HLFWD,WK2321 INVERT THE 2 BYTES OF HLFWD VF0I 71520001 SRL HLFWD,8 SO ROUTINE CAN BE USED TO VF0I 71540001 STC HLFWD,WK2321+1 CONVERT 2321 ADDRESSES VF0I 71560001 B C2321A VF0I 71580001 REVERSEA MVC UNPKFLD+2(1),UNPKFLD+4 REARRANGE CHARS FOR PRINT VF0I 71600001 MVC UNPKFLD+3(2),HLD2321 COMBINE CYLINDER AND TRACK VF0I 71620001 B C2321B VF0I 71640001 CONVDSCB ST RETURN,DSCBRET VF0I 71660001 MVI PHOLD,X'40' BLANK OUT PHOLD 71680001 MVC PHOLD+1(10),PHOLD 71700001 LH HLFWD,WORKIN+8 CONVERT CYLINDER ADDR VF0I 71720001 BAL RETURN,CONVH VF0I 71740001 MVC PHOLD(3),UNPKFLD+2 VF0I 71760001 LH HLFWD,WORKIN+10 CONVERT HEAD ADDR VF0I 71780001 OI FMT,X'08' VF0I 71800001 BAL RETURN,CONVH VF0I 71820001 MVC PHOLD+4(3),UNPKFLD+2 VF0I 71840001 IC ONEBYTE,WORKIN+12 VF0I 71860001 BAL RETURN,CONVB VF0I 71880001 MVC PHOLD+8(3),UNPKFLD+2 VF0I 71900001 L RETURN,DSCBRET VF0I 71920001 BR RETURN VF0I 71940001 MVEU MVI PRINT+101,C'U' UNDEFINED RECORD FORMAT@G60ASBJ 71960060 B CHKTOFL VF0I 71970060 MVEV MVI PRINT+101,C'V' @G60ASBJ 71980060 B CHKTOFL VF0I 71990060 MVEF MVI PRINT+101,C'F' @G60ASBJ 72000060 B CHKTOFL VF0I 72010060 MVEA MVI PRINT+105,C'A' @G60ASBJ 72020060 B PRINTLN BRANCH TO PRINT LINE A34989 72030060 MVEM MVI PRINT+105,C'M' @G60ASBJ 72040060 B PRINTLN BRANCH TO PRINT LINE A34989 72140001 ERRLL SR HLFWD,HLFWD MAKE LL ZERO A32555 72160001 MVC DSCBIN+57(2),ZEROS PUT '0000'X IN DSCB-LL A32555 72180001 B CONVLL VF0I 72200001 TAICHUNG MVC SAVE4(5),READIN+135 -* SAVE ADR OF FMT 3 VFOI 72220001 MVC READIN+135(5),SAVE3 -* FORCE NEXT TO READ FMT2. VFOI 72240001 NI SAVE3+5,X'00' -* CLEAR SWITCH. VFOI 72260001 OI SAVE3+5,X'02' -* SWITCH TO NEXT DATA SET ADDRESS. VFOI 72280001 B NOCOME -* GO BACK TO REREAD. VFOI 72300001 HUNAN MVC READIN+135(5),SAVE4 -* PTR TO NXT DATA SET VFOI 72320001 NI SAVE3+5,X'00' -* CLEAR SWITH. VFOI 72340001 B WRITE2 -* GO TO PRINT A LINE RTN. VFOI 72360001 RET DC F'0' VF0I 72380001 SAVE1 DC F'0' VF0I 72400001 SAVE2 DC F'0' VF01 72420001 SAVE3 DC F'0' VFOI 72440001 DC X'0000' VFOI 72460001 SAVE4 DS 5X VFOI 72480001 KEYLE1 DC H'0' KEY LENGTH OF DATA SET A29716 72500001 B7294 DC F'7294' BYTES PER TRK.--2314 A29716 72520001 B3625 DC F'3625' B.P.T. ON DEVICE 2311 A29716 72540001 B4984 DC F'4984' B.P.T. ON DEVICE 2302 A29716 72560001 B4892 DC F'4892' B.P.T. ON DEVICE 2303 A29716 72580001 B2000 DC F'2000' B.P.T. ON DATA CELL A29716 72600001 B20483 DC F'20483' B.P.T. ON DEVICE 2301 A29716 72620001 B14568 DC F'14568' B.P.T. ON DEVICE 2305-1 72640001 B14858 DC F'14858' B.P.T. ON DEVICE 2305-2 72660001 B13165 DC F'13165' B.P.T. ON DEVICE 3330 72680001 B8368 DC F'8368' B.P.T. ON DEVICE 3340 YL026VC 72690000 B19254 DC F'19254' B.P.T. ON DEVICE 3350 @Z30RSPC 72693000 C1049 DC F'1049' FORMULA CONSTANT FOR 2311 A29716 72700001 C1043 DC F'1043' FORMULA CONSTANT FOR 2314 A29716 72720001 C1000 DC F'1000' FORMULA CONSTANT FOR 2303 A29716 72740001 *********************************************************************** 72760001 * * 72780001 * THE FOLLOWINF HALFWORD CONSTANTS ARE CONSTANTS USED BY THE * 72800001 * FORMULAS FOR THE DIFFERENT DEVICES: 2314,2311,2301,2302, * 72820001 * 2303, AND 2321,TO DETERMINE THE NUMBER OF BLOCKS ON ONE TRACK * 72840001 * * 72860001 *********************************************************************** 72880001 CONST1 DC H'0' USED FOR DEVICES HAVING 72900001 CONST2 DC H'0' RECS/TRACK OF 72920001 CONST3 DC H'0' (KL+DL+CONST) 72940001 C61 DC H'61' A29716 72960001 C101 DC H'101' A29716 72980001 C108 DC H'108' A29716 73000001 C133 DC H'133' A29716 73020001 C84 DC H'84' A29716 73040001 C20 DC H'20' A29716 73060001 C45 DC H'45' A29716 73080001 C38 DC H'38' A29716 73100001 C53 DC H'53' A29716 73120001 C16 DC H'16' A29716 73140001 C81 DC H'81' A29716 73160001 C146 DC H'146' A29716 73180001 C186 DC H'186' A29716 73200001 C100 DC H'100' A29716 73220001 C634 DC H'634' FORMULA CONSTANT 2305-1 73240001 C432 DC H'432' FORMULA CONSTANT 2305-1 73260001 C289 DC H'289' FORMULA CONSTANT 2305-2 73280001 C198 DC H'198' FORMULA CONSTANT 2305-2 73300001 C193 DC H'193' FORMULA CONSTANT 3330 73320001 C135 DC H'135' FORMULA CONSTANT 3330 73340001 C242 DC H'242' FORMULA CONSTANT 3340 YL026VC 73346002 C167 DC H'167' FORMULA CONSTANT 3340 YL026VC 73352002 C267 DC H'267' FORMULA CONSTANT 3350 @Z30RSPC 73354000 C185 DC H'185' FORMULA CONSTANT 3350 @Z30RSPC 73356000 HARBIN OI SAVE3+5,X'01' -* SET SWITCH FOR FMT 1,2,3. VFOI 73360001 MVC SAVE3(5),READIN+135 -* SAVE ADR OF FMT 2. VFOI 73380001 B TENN -* GO TO READ FMT 1. VFOI 73400001 * YA00066 73410002 * SPACE CALCULATIONS YA00066 73412002 * YA00066 73414002 TTRLL DC CL5'0' SPACE CALC. WORK AREA YA00066 73416002 EXTNO DC H'0' NUMBER OF EXTENTS YA00067 73418002 KEYLENTH DC H'0' KEY LENGTH OF D/S YA00067 73418402 SAVE4A DC F'0' VF0I 73420001 SAVL DC F'0' -* FOR SAVING CYLINDER ONLY.VF01 73440001 SAVT DC F'0' -* FOR SAVING NO OF TRACK. VF01 73460001 HONGKONG DS 44X -* FOR DSNAME SAVING. VF01 73480001 SA DC F'0' -* VF01 73500001 SAVERS DC F'0' VF01 73520001 HANKOW DC F'0' VF01 73540001 DC F'0' VF01 73560001 DC F'0' VF01 73580001 AREA DC F'0' VF01 73600001 DC F'0' VF01 73620001 SAV DC F'0' VF01 73640001 MBLK DC C'EMPTY BLOCK(S).' -* MESSAGE FILLER. VF01 73660001 MPLUS DC C'PLUS' -* MESSAGE FILLER. VF01 73680001 MCYL DC C'EMPTY CYLINDER(S)' -* MESSAGE FILLER. VF01 73700001 MTRK DC C'EMPTY TRACK(S).' -* MESSAGE FILLER. VF01 73720001 ORG DC X'00' VF01 73740001 CTB DC X'00' VF01 73760001 SAVER DC F'0' VF01 73780001 MYRTN STM KEEPRET,MSGTO,SAVE5 -* SAVE ALL REGISTERS VFOI 73800001 MVC MBBCCHHR+3(4),XHOLD+2 -* MOVE CCHH FOR CONVERSION VFOI 73820001 L MSGRET,WORKIN+44 -* INFO FROM DCB VFOI 73840001 LA WORK1,MBBCCHHR -* DATA AREA POINTED BY WORK1. VFOI 73860001 LA WORK3,SAVE5 -* CONVERSION RTN NOT USES REG3. VFOI 73880001 ST RECCNT,40(WORK3) -* STORE UPDATED BASE REGISTER. VFOI 73900001 ST BASEREG2,44(WORK3) -* STORE UPDATED BASE REGISTER. VFOI 73920001 L MSGTO,16 -* LOAD THE CVT. VFOI 73940001 L MSGTO,32(MSGTO) -* ACCESS THE CONVERSION RTNVFOI 73960001 BALR RETURN,MSGTO -* BRANCH TO CONVERSION RTN. VFOI 73980001 L RECCNT,40(WORK3) -* RETURN THE BASE REGISTER. VFOI 74000001 L BASEREG2,44(WORK3) -* RETURN THE BASE REGISTER. VFOI 74020001 L BASEREG1,48(WORK3) -* RETURN THE BASE REGISTER. VFOI 74040001 SRL KEEPRET,16 -* NO. OF TT IS RIGHT JUSTIFIED. VFOI 74060001 ST KEEPRET,SAVE6 -* SAVE NO. OF LOW CCHH. VFOI 74080001 MVC MBBCCHHR+3(4),XHOLD+6 -* MOVE CCHH FOR CONVERSION VFOI 74100001 L MSGRET,WORKIN+44 -* INFO FROM DCB VFOI 74120001 LA WORK1,MBBCCHHR -* DATA AREA POINTED BY WORK1. VFOI 74140001 ST RECCNT,40(WORK3) -* STORE UPDATED BASE REGISTER. VFOI 74160001 ST BASEREG2,44(WORK3) -* STORE UPDATED BASE REGISTER. VFOI 74180001 L MSGTO,16 -* LOAD THE CVT. VFOI 74200001 L MSGTO,32(MSGTO) -* ACCESS THE CONVERSION RTNVFOI 74220001 BALR RETURN,MSGTO -* BRANCH TO CONVERSION RTN. VFOI 74240001 L RECCNT,40(WORK3) -* RETURN THE BASE REGISTER. VFOI 74260001 L BASEREG2,44(WORK3) -* RETURN THE BASE REGISTER. VFOI 74280001 L BASEREG1,48(WORK3) -* RETURN THE BASE REGISTER. VFOI 74300001 SRL KEEPRET,16 -* NO. OF TT IS RIGHT JUSTIFIED. VFOI 74320001 S KEEPRET,SAVE6 -* SUBTRACT LOW TT FROM THE HIGH.VFOI 74340001 LR WORK2,KEEPRET -* LOAD NEW REG FOR INCREMENT. VFOI 74360001 LA WORK2,1(WORK2) -* INCREMENT BY ONE. VFOI 74380001 A WORK2,SAVT -* ADD TO TRACK COUNTER. VFOI 74400001 ST WORK2,SAVT -* STORE TRACK COUNTER. VFOI 74420001 ST RECCNT,40(WORK3) -* STORE UPDATED BASE REGISTER. VFOI 74440001 ST BASEREG2,44(WORK3) -* STORE UPDATED BASE REGISTER. VFOI 74460001 LM KEEPRET,MSGTO,SAVE5 -* RETURN THE CONTENT OF REGVFOI 74480001 BR RETURN -* BACK WHERE IT BELONGS. VFOI 74500001 SAVE5 DS 16F -* FOR SAVING REGISTERS. VFOI 74520001 MBBCCHHR DC F'0' -* WORK AREA FOR CONVERSION RTN. VFOI 74540001 DC F'0' -* WORK AREA FOR CONVERSION RTN. VFOI 74560001 SAVE6 DC F'0' -* VFOI 74580001 HBCLEAR DC X'0000FFFF' @YA02531 74590002 END , VF0I 74600001