//FSUPP17F JOB (ACCT#),CLASS=F,MSGCLASS=0,NOTIFY=FSUPP17 //A EXEC PGM=IEV90,PARM=OBJECT,REGION=2000K //SYSIN DD * START DC C'<< Loadmodule Map >> _ KIMU _ &SYSDATE _ &SYSTIME *' DC C'< Loadmodule Configuration Report . ( MODMAP 0.0.0 ) >' PRINT NOGEN MODMAP CSECT SAVE (14,12),T,* BALR R03,0 USING *,R03,R04 BASE REG. R03 LA R04,2048(R03) 2'ND BASE REG LA R04,2048(R04) ST R13,SAVEAREA+4 SAVE A(OLD SAVEAREA) LR R12,R13 LA R13,SAVEAREA ST R13,8(R12) SAVE A(NEW SAVEAREA) * === Start Main Routine === XC TRN_CONT,TRN_CONT Clear Continue Flag XC WKTRANSL,WKTRANSL Clear Work Area Length * --- Csect Table Area Getmain --- L R01,D$CSTNUM STH R01,WKH LA R01,D$CSTL MH R01,WKH ST R01,GETM_L Save Getmain Length GETMAIN RC,LV=(1) CSECT Table Area LTR R15,R15 BNZ GETM_ERR ST R01,GETM_A Save Getmain Address ST R15,WKF * OPEN (PDSFD,,PDSF,,OUTDCB,(OUTPUT)) * *+ XC BSZ_FLG,BSZ_FLG Clear Block Size Flag * --- Dataset Information --- RDJFCB PDSF Get Dataset Information USING JFCBSECT,R02 LA R02,JFCB MVC O$DSNAME,DSN Copy Dataset Name MVC O$SERIAL,JFCBVOLS Copy Serial XR R01,R01 Copy Block Size LH R01,PDSF+X'3E' CVD R01,PK_AREA MVC EDWORK,EDMASK ED EDWORK,PK_AREA MVC O$BLKSZ(5),EDWORK+11 DROP R02 PUT OUTDCB,O$DSINT1 PUT OUTDCB,O$DSINT2 PUT OUTDCB,O$DSINFO * --- Getmain Record Buffer Field --- LH R01,PDSF+X'3E' LOAD BLKSIZE CL R01,=F'32740' BNH @BSZSKP OI BSZ_FLG,X'80' * --- IEBCOPY BUG FIX --- LA R01,20(R01) Plus 20 Byte . * --- IEBCOPY BUG FIX --- @BSZSKP EQU * ST R01,GETM_L2 SAVE GETMAIN LENGTH 2 GETMAIN RC,LV=(1) READ WORK SPACE LTR R15,R15 BNZ GETM_ER2 ST R01,GETM_A2 SAVE GETMAIN ADDRESS 2 * --- Directory Process --- * R10:Member Routine Return Address * R12:Directory Pointer @D_READ EQU * READ DECB01,SF,PDSFD,DIR,'S' READ DIRECTORY CHECK DECB01 LH R12,DIR LOAD READ LENGTH LA R12,DIR(R12) ST R12,D_ENDP SAVE DIRECTORY END ADDR LA R12,DIR+2 MEMBER START POINT @D_LOP01 EQU * CL R12,D_ENDP IF DIRECTORY END ADDR BNL @D_READ CLI 0(R12),X'FF' IF MEMBER END NAME BE @BYE * MVI O$MEMBER,X'40' Member Area Clear * MVC O$MEMBER+1(132),O$MEMBER MVC O$MEM(8),0(R12) Copy Member Name MVC W_TTR(3),8(R12) Copy TTR CALL @OS#6HC,(W_TTR,O$MEMTTR,3) BAL R10,MEMBERS Branch Member Process IC R01,11(R12) LOAD 'C' N R01,=X'0000001F' USER DATA LENGTH SLL R01,1 * 2 LA R12,12(R12,R01) POINT MEXT MEMBER B @D_LOP01 * --- Member Process --- MEMBERS EQU * R10 <- Return Address NI R_FLG,X'00' Read FLag Clear MVC GETM_P,GETM_A Clear CSECT Pointer POINT PDSF,W_TTR First Data Address @M_READ EQU * L R07,GETM_A2 R07 <- DataArea P TM BSZ_FLG,X'80' BO @M_READ2 @M_READ1 EQU * READ DECB11,SF,PDSF,(R07),'S' Data Area Read CHECK DECB11 L R01,DECB11+16 LH R01,14(R01) L R09,GETM_L2 SR R09,R01 R09 <- Read Length B @M_READX @M_READ2 EQU * Block Size = 32760 READ DECB12,SF,PDSF,(R07),30000 Data Area Read CHECK DECB12 L R01,DECB12+16 LH R01,14(R01) LH R09,DECB12+6 * L R09,GETM_L2 SR R09,R01 R09 <- Read Length @M_READX EQU * * TM R_FLG,X'80' If Already Control Record Read BO @M_NEXT * --- Check ID Column --- CLI 0(R07),X'20' CESD Record BE @M_CESD * CLC 0(2,R07),=X'8011' If X'8011' then * BE @M_CREDT goto Creation Line CLI 0(R07),X'80' CSECT Identification Record BE @M_CID goto Creation Line * @M_NEXT EQU * B @M_READ Goto Next Record @M_CID EQU * CSECT Identification Record TM 2(R07),X'80' BNO @M_CID2 OI R_FLG,X'80' Set Last Flag . @M_CID2 EQU * CSECT Identification Record XR R01,R01 IC R01,2(R07) N R01,=X'0000000F' CL R01,=XL4'00000008' User(System)-Supplied Data CL R01,=XL4'00000004' Translator-Supplies Data BE @M_TRANS goto Creation Line CL R01,=XL4'00000002' Linkage Editer Data BE @M_CREDT goto Creation Line CL R01,=XL4'00000001' HMASPZAP B @M_NEXT Goto Next Record * * ----------------------- * R07:Read Buffer Address * R09:Length of Read Record * R10:x * R11:DSECT Base * R12:x * --- CESD Record Process --- @M_CESD EQU * L R11,GETM_P Load CESD Table Pointer USING D$CSECT,R11 * MVC WKCESDFL,1(R07) Copy CESD Flag to Work Area * LH R08,6(R07) Load ESD Byte SRL R08,4 Num of ESD = ESD Byte / 16 LA R07,8(R07) Shift ESD Area @M_ESDLP EQU * MVC D$CESD(16),0(R07) Copy CESD Area XC D$TRNS,D$TRNS Clear Translator Area MVC D$CESDFL(1),WKCESDFL Copy CESD Flag Area * LA R07,16(R07) Shift Next CESD LA R11,D$CSTL(R11) BCT R08,@M_ESDLP ST R11,GETM_P B @M_NEXT Goto Next Record DROP R11 * ----------------------- * R07:Read Buffer Address * R09:Length of Read Record * R10:x * R11:DSECT Base * R12:x * --- CSECT Identification Data ( Translator-Supplied ) TRN_CONT DS XL1 * B'.... ....' * = : Translator Data Progress Flag * = : Translator Descroption Progress Flag * = : Translator Data Reserved . DS 0D @M_TRANS EQU * LA R09,0(R07,R09) LA R07,3(R07) Shift Trans Field . * TM TRN_CONT,X'C0' Translator Description Area BO @M_TRAN39 TM TRN_CONT,X'80' Translator Data Area BO @M_TRAN22 @M_TRAN1 EQU * LA R08,TRANSTBL XR R06,R06 * @M_TRAN2 EQU * CLR R07,R09 Record End ? BNL @M_TRANX goto Next Record OI TRN_CONT,X'80' Process Flag On LA R01,2(R07) CLR R01,R09 BNH @M_TRAN24 * MVC WKTRF(1),0(R07) OI TRN_CONT,X'20' Process Reserved Flag . * DEBUG * * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+1,C'C' * MVI @DEBUGL+2,C'|' * ST R06,@DEBUGL+3 * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(2),WKTRF * MVI @DEBUGL+10,C'|' * ST R07,@DEBUGL+11 * PUT OUTDCB,@DEBUGL * DEBUG * B @M_TRANX goto Next Record @M_TRAN22 EQU * TM TRN_CONT,X'20' BO @M_TRAN23 MVC WKTRF(2),0(R07) LA R07,2(R07) B @M_TRAN25 @M_TRAN23 EQU * MVC WKTRF+1(1),0(R07) LA R07,1(R07) NI TRN_CONT,X'DF' Clear Process Reserved Flag * DEBUG * * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+1,C'D' * MVI @DEBUGL+2,C'|' * ST R06,@DEBUGL+3 * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(2),WKTRF * MVI @DEBUGL+10,C'|' * ST R07,@DEBUGL+11 * PUT OUTDCB,@DEBUGL * DEBUG * B @M_TRAN25 @M_TRAN24 EQU * MVC WKTRF(2),0(R07) LA R07,2(R07) @M_TRAN25 EQU * LH R01,WKTRF Load CSECT Number N R01,=X'00007FFF' LA R02,D$CSTL STH R02,W_X02 BCTR R01,0 MH R01,W_X02 L R02,GETM_A LA R02,0(R01,R02) ST R02,0(R08) Store CSECT Table Address * LA R06,1(R06) LA R08,4(R08) * DEBUG * * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+1,C'B' * MVI @DEBUGL+2,C'|' * ST R06,@DEBUGL+3 * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(2),WKTRF * MVI @DEBUGL+10,C'|' * ST R07,@DEBUGL+11 * MVI @DEBUGL+15,C'|' * ST R09,@DEBUGL+16 * PUT OUTDCB,@DEBUGL * DEBUG * TM WKTRF,X'80' BO @M_TRAN3 B @M_TRAN2 @M_TRAN3 EQU * * DEBUG * * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+1,C'4' * MVI @DEBUGL+2,C'|' * ST R06,@DEBUGL+3 * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(64),TRANSTBL * MVI @DEBUGL+73,C'|' * PUT OUTDCB,@DEBUGL * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(64),TRANSTBL+64 * MVI @DEBUGL+73,C'|' * PUT OUTDCB,@DEBUGL * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(64),TRANSTBL+128 * MVI @DEBUGL+73,C'|' * PUT OUTDCB,@DEBUGL * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(64),TRANSTBL+192 * MVI @DEBUGL+73,C'|' * PUT OUTDCB,@DEBUGL * XC @DEBUGL,@DEBUGL * DEBUG * OI TRN_CONT,X'40' End of ESD ID Field . * CLI 0(R07),X'01' BE @M_TRAN31 LA R01,16(R07) End of Translator Description B @M_TRAN32 @M_TRAN31 EQU * LA R01,31(R07) End of Translator Description @M_TRAN32 EQU * CLR R01,R09 If Not End of Record BNH @M_TRAN3909 goto Current Field Process * LR R01,R09 If Translator Data Incomplete SR R01,R07 XC WKTRANS,WKTRANS STC R01,*+5 MVC WKTRANS(0),0(R07) Copy First Translator Area STH R01,WKTRANSL * DEBUG * * XC @DEBUGL,@DEBUGL * MVI @DEBUGL+1,C'3' * MVI @DEBUGL+2,C'|' * ST R01,@DEBUGL+3 * MVI @DEBUGL+7,C'|' * MVC @DEBUGL+8(31),WKTRANS * MVI @DEBUGL+39,C'|' * PUT OUTDCB,@DEBUGL * DEBUG * B @M_TRANX * @M_TRAN39 EQU * LH R01,WKTRANSL If Old Translator Data is LTR R01,R01 Complete BZ @M_TRAN3909 goto @M_TRAN3909 * * If Old Translator Data is * Incomplete LA R02,WKTRANS(R01) Shift Latter Half CLI WKTRANS,X'01' BE @M_TRAN301 LA R01,16 End of Translator Description B @M_TRAN302 @M_TRAN301 EQU * LA R01,31 End of Translator Description @M_TRAN302 EQU * SH R01,WKTRANSL Remainder Length * STC R01,*+5 MVC 0(0,R02),0(R07) Copy First Translator Area LA R07,0(R07,R01) B @M_TRAN4 * @M_TRAN3909 EQU * All Translator Data is CLI 0(R07),X'01' Complete BE @M_TRAN391 MVC WKTRANS(16),0(R07) Copy Translator Description LA R07,16(R07) B @M_TRAN4 @M_TRAN391 EQU * MVC WKTRANS(31),0(R07) Copy Translator Description LA R07,31(R07) B @M_TRAN4 @M_TRAN4 EQU * LA R08,TRANSTBL USING D$CSECT,R01 @M_TRAN5 EQU * L R01,0(R08) MVC D$TRNS(16),WKTRANS LA R08,4(R08) BCT R06,@M_TRAN5 XC WKTRANSL,WKTRANSL Clear Work Area Length XC TRN_CONT,TRN_CONT Clear Continue Flag B @M_TRAN1 DROP R01 @M_TRANX EQU * B @M_NEXT Goto Next Record * ----------------------------------------------------------------- * ----------------------------------------------------------------- * ----------------------------------------------------------------- CLC 0(1,R07),=X'01' If X'01' then BNE @M_RDSK2 End of Control Section OI R_FLG,X'80' Set Flag . * WTO 'SET' @M_RDSK2 EQU * * * WTO 'CHECK' CLC 0(1,R07),=X'20' If X'8011' then BE @M_RDSK1 goto Creation Line CLC 0(2,R07),=X'8011' If X'8011' then BE @M_CREDT goto Creation Line CLC 0(1,R07),=X'80' If X'8011' then BNE @M_RDSK1 goto Creation Line CLC 2(1,R07),=X'84' If X'8011' then BE @M_RDSK1 goto Creation Line @M_RDSK1 EQU * * @M_NEXTL EQU * B @M_READ Goto Next Line * --- Create Date --- @M_CREDT EQU * * WTO 'CREDT' MVC W_X01(01),02(R07) CALL @OS#6HC,(W_X01,O$MEMX03,1) CLC 03(10,R07),=CL10'566528408 ' BNE @M_CRPS1 MVC O$MEMPRO(10),=CL10'LINKXA' B @M_CRPSX @M_CRPS1 EQU * CLC 03(10,R07),=CL10'5695DF108 ' BNE @M_CRPS2 MVC O$MEMPRO(10),=CL10'BINDER' B @M_CRPSX @M_CRPS2 EQU * CLC 03(10,R07),=CL10'5752SC104 ' BNE @M_CRPS3 MVC O$MEMPRO(10),=CL10'LINK-F' B @M_CRPSX @M_CRPS3 EQU * CLC 03(10,R07),=CL10'566529508 ' BNE @M_CRPS4 MVC O$MEMPRO(10),=CL10'DFP ' B @M_CRPSX @M_CRPS4 EQU * MVC O$MEMPRO(10),03(R07) Copy LKED Product @M_CRPSX EQU * MVC W_X02(02),13(R07) CALL @OS#6HC,(W_X02,O$MEMX14,2) MVC W_YY(01),15(R07) CALL @OS#6HC,(W_YY,O$MEMYY,1) MVC W_DDD(02),16(R07) CALL @OS#6HC,(W_DDD,O$MEMDDD,2) ST R09,W_LEN CALL @OS#6HC,(W_LEN,O$MEMLEN,4) B @M_NEXTL * --- CSECT Create Date --- @M_CSTDT EQU * LA R08,3(R07) Csect Offset @M_CDLP0 EQU * LR R01,R08 @M_CDLP1 EQU * CLI 0(R01),X'80' BE @M_CDLX1 LA R01,2(R01) B @M_CDLP1 @M_CDLX1 EQU * LA R01,2(R01) MVC W_CSTX02(01),00(R01) CLC 1(10,R01),=CL10'569623400' BNE @M_CDS01 MVC W_CSTPRO(10),=CL10'HLASM' B @M_CDS0X @M_CDS01 EQU * CLC 1(10,R01),=CL10'566896201' BNE @M_CDS02 MVC W_CSTPRO(10),=CL10'ASM-H' B @M_CDS0X @M_CDS02 EQU * CLC 1(10,R01),=CL10'5741SC103' BNE @M_CDS03 MVC W_CSTPRO(10),=CL10'ASM-XF' B @M_CDS0X @M_CDS03 EQU * CLC 1(10,R01),=CL10'360SAS037' BNE @M_CDS04 MVC W_CSTPRO(10),=CL10'ASM-F' B @M_CDS0X @M_CDS04 EQU * MVC W_CSTPRO(10),01(R01) @M_CDS0X EQU * MVC W_CSTX13(02),11(R01) MVC W_CSTYY(01),13(R01) MVC W_CSTDDD(02),14(R01) * @M_CDLP2 EQU * LA R01,D$CSTL STH R01,W_X02 XR R09,R09 IC R09,1(R08) BCTR R09,0 MH R09,W_X02 L R01,GETM_A LA R09,0(R01,R09) * L R09,GETM_A CLI 0(R08),X'80' BE @M_CDLX2 LA R08,2(R08) B @M_CDLP2 @M_CDLX2 EQU * LA R08,18(R08) XR R01,R01 IC R01,1(R07) LA R01,0(R01,R07) CLR R08,R01 BNL @M_NEXTL B @M_CDLP0 * --- CSECT --- @M_CSECT EQU * XR R08,R08 Csect Offset IC R08,7(R07) SRL R08,4 LA R09,8(R07) L R05,GETM_P USING D$CSECT,R05 @M_CSTL1 EQU * LA R09,16(R09) LA R05,D$CSTL(R05) BCT R08,@M_CSTL1 ST R05,GETM_P B @M_NEXTL DROP R05 @M_EOF EQU * PUT OUTDCB,O$MEMBER L R08,GETM_A USING D$CSECT,R08 @M_ENDLP EQU * CL R08,GETM_P BNL @M_ENDSK MVC O$SYMBOL(8),D$CESDSY MVC O$PRODCT(10),D$TRNSPG MVC W_CADR(3),D$CESDAD CALL @OS#6HC,(W_CADR,O$CADR,3) MVC W_CLEN(3),D$CESDLN CALL @OS#6HC,(W_CLEN,O$CLEN,3) MVC W_CSTYY(1),D$TRNSDY CALL @OS#6HC,(W_CSTYY,O$CSTYY,1) MVC W_CSTDDD(2),D$TRNSDD CALL @OS#6HC,(W_CSTDDD,O$CSTDDD,2) PUT OUTDCB,O$CSECT LA R08,D$CSTL(R08) B @M_ENDLP @M_ENDSK EQU * XC WKTRANSL,WKTRANSL Clear Work Area Length XC TRN_CONT,TRN_CONT Clear Continue Flag DROP R08 BR R10 * @BYE EQU * CLOSE (PDSFD,,PDSF,,OUTDCB) FREEMAIN RC,LV=GETM_L2,A=GETM_A2 FREEMAIN RC,LV=GETM_L,A=GETM_A L R13,SAVEAREA+4 RETURN (14,12),RC=0 GETM_ERR EQU * GETMAIN ERROR CLOSE (PDSFD,,PDSF,,OUTDCB) WTO '* ERR * CSECT TABLE AREA GETMAIN FAIL .' L R13,SAVEAREA+4 RETURN (14,12),RC=8 * GETM_ER2 EQU * GETMAIN ERROR CLOSE (PDSFD,,PDSF,,OUTDCB) FREEMAIN RC,LV=GETM_L,A=GETM_A WTO '* ERR * BLKSIZE BUFFER GETMAIN FAIL .' L R13,SAVEAREA+4 RETURN (14,12),RC=8 * IOERR_S EQU * SYNADAF ACSMETH=BPAM LA R01,91(R01) * B @IOERR MVC ERRMSG04+23(15),0(R01) LA R07,W_TTR LA R08,ERRMSG04+16 LA R09,3 * BAL R14,@CO_HEX CALL CONVERT HEX-CHAR PUT OUTDCB,ERRMSG04 B @IOERR @IOERR EQU * SYNADRLS CLOSE (PDSFD,,PDSF,,OUTDCB) FREEMAIN RC,LV=GETM_L2,A=GETM_A2 FREEMAIN RC,LV=GETM_L,A=GETM_A WTO '* ERR * I/O ERROR HAPPEND .' L R13,SAVEAREA+4 RETURN (14,12),RC=8 * PDSFD DCB DSORG=PS,MACRF=(RP),DDNAME=INDD,NCP=1,BLKSIZE=256, * SYNAD=IOERR_S,EODAD=@BYE,RECFM=F PDSF DCB DSORG=PO,MACRF=(R),DDNAME=INDD,NCP=1,EXLST=EXLST, * SYNAD=IOERR_S,EODAD=@M_EOF,RECFM=U EXLST DC X'87',AL3(JFCB) OUTDCB DCB DSORG=PS,MACRF=(PM),DDNAME=OUTDD,RECFM=FA,LRECL=133, * BLKSIZE=133 DSCBFMT1 CAMLST SEARCH,JFCB,VOLSER,DSCB DS 0F JFCB DS 0CL176 JOB FILE CONTROL BLOCK DSN DS CL44 DATASET NAME DSCB DC CL140' ' DATASET CONTROL BLOCK VOLSER DS CL6 VOLUME SELIAL * DS 0F SAVEAREA DS 18F SAVEAREA REGS DS 18F WORK SAVEAREA WKCESDFL DS XL1 DS 0F WKF DS F WKH DS H DS 0F WKTRANS DS CL31 WKTRANSL DS H WKTRF DS XL2 @DEBUGL DC CL133' ' DS 0D * DS 0F ERRMSG04 DC CL133'------------------------------' * 0....+....1....+....2....+....3....+....4....+... ************************************************************** DS 0F R_FLG DS BL1 TTR Save Area DS 0F BSZ_FLG DS BL1 TTR Save Area DS 0F PATT DC XL16'40202020202020202020202020202020' EDAREA DS XL16 DS 0F PK_AREA DS PL8 DS 0F UPK_AREA DS XL8 DS 0F W_TTR DS XL4 TTR Save Area DS 0F W_YY DS XL2 DS 0F W_DDD DS XL3 DS 0F W_X01 DS XL1 DS 0F W_X02 DS XL2 DS 0F W_X03 DS XL3 DS 0F W_X04 DS XL4 DS 0F W_LEN DS F DS 0F W_CADR DS XL3 DS 0F W_CLEN DS XL3 DS 0F W_CSTX02 DS XL1 DS 0F W_CSTPRO DC CL10'ABCDEFG' DS 0F W_CSTX13 DS XL2 DS 0F W_CSTYY DS XL1 DS 0F W_CSTDDD DS XL2 DS 0F DIR DS CL256 Directory Save Area DS 0F D_ENDP DS F Directory End Point GETM_A DS F CSECT Table Adr GETM_L DS F CSECT Table Len GETM_P DS F CSECT Table Pos GETM_A2 DS F Block Read Adr GETM_L2 DS F Block Read Len DS 0D * 1 * 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 EDMASK DC XL16'40202020202020202020202020202120' EDMASK2 DC XL17'40202020202020202020202021204B2020' EDMASK3 DC XL16'60202020202020202020202020202120' EDWORK DS XL16 EDWORK2 DS XL17 DS 0D * --- Dataset Information --- O$DSINT1 DS 0CL133 DC CL02' ' T$DSNAME DC CL44'DATASET NAME' DC CL01' ' T$SERIAL DC CL06'SERIAL' DC CL01' ' T$BLKSZ DC CL05'BLKSZ' DC CL01' ' DC CL133' ' O$DSINT2 DS 0CL133 DC CL02' ' DC CL44'-------------------------------------------' DC CL01' ' DC CL06'------' DC CL01' ' DC CL05'-----' DC CL01' ' DC CL133' ' * --- Dataset Information --- O$DSINFO DS 0CL133 DC CL02' ' O$DSNAME DC CL44' ' DC CL01' ' O$SERIAL DC CL06' ' DC CL01' ' O$BLKSZ DC CL05' ' DC CL01' ' DC CL133' ' * ------------------- O$MEMBER DS 0CL133 DC CL02' ' O$MEM DS CL08 DC CL02' ' DC CL10'PRODUCT : ' O$MEMPRO DS CL10' ' DC CL02' ' DC CL09'CREATE : ' O$MEMYY DS CL02'YY' DC CL01'/' O$MEMDDD DS CL04'DDD' DC CL02' ' DC CL06'TTR : ' O$MEMTTR DS CL06'T T R ' DC CL02' ' DC CL06'X03 : ' O$MEMX03 DS CL02' ' DC CL02' ' DC CL06'X14 : ' O$MEMX14 DS CL04' ' DC CL02' ' DC CL06'LEN : ' O$MEMLEN DS CL08' ' DC CL133' ' DS 0D * ------------------- O$CSECT DS 0CL133 DC CL03' ' O$SYMBOL DS CL08 DC CL01' ' O$TYPE DS CL04 DC CL01' ' O$PRODCT DS CL10 DC CL01' ' O$CADR DS CL06 DC CL01' ' O$CLEN DS CL06 DC CL01' ' O$AMODE DS CL03 DC CL01' ' O$RMODE DS CL03 DC CL01' ' O$CSTYY DS CL02'YY' DC CL01'/' O$CSTDDD DS CL03'DDD' DC CL133' ' D$CSTNUM DC F'32767' DS 0F LTORG TRANSTBL DS 1024F Trans Table D$CSECT DSECT D$CESDFL DS XL1 CESD Flag Byte * X'00' : Segment Number * X'80' : AMODE/RMODE/RSECT D$CESD DS 0CL16 CESD Area D$CESDSY DS CL8 CESD Symbol D$CESDTY DS XL1 CESD Type ?0 : SD * ?2 : ER * ?3 : LR * ?4 : PC * ?5 : CM * ?6 : PR * 07 : Null * ?A : WX D$CESDAD DS XL3 CESD Address D$CESDSG DS XL1 CESD Segment Number * AMODE/RMODE/RSECT * ???? xraa * .... =... : 1 RESCT Read * .... .=.. : 1 RMODE Any * 0 24 * .... ..== : 00 AMODE 24 * 01 24 * 10 31 * 11 Any * D$CESDLN DS XL3 CESD Length/ID * Length : SD,PC,CM,PR * ID : LR * Zero : WX,Null,ER D$TRNS DS 0XL16 Translator Indicator D$TRNSID DS XL1 Translator Indicator D$TRNSPG DS CL10 Program Name D$TRNSVE DS CL2 Version and Modification Level D$TRNSDT DS 0CL3 Date D$TRNSDY DS CL1 Date D$TRNSDD DS CL2 Date *$TRNSPR DS CL15 if Indicator is X'01' * D$CSTL EQU *-D$CSECT JFCBSECT DSECT IEFJFCBN LIST=YES DSCBSECT DSECT IECSDSL1 (1) DCBD DSORG=PO R00 EQU 00 R01 EQU 01 R02 EQU 02 R03 EQU 03 R04 EQU 04 R05 EQU 05 R06 EQU 06 R07 EQU 07 R08 EQU 08 R09 EQU 09 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 END MODMAP /* //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR //* DD DSN=SYS1.MODGEN,DISP=SHR //SYSUT1 DD UNIT=(SYSDA,SEP=SYSLIB),SPACE=(CYL,(10,5)),DSN=&SYSUT1 //SYSPUNCH DD DUMMY //*YSPUNCH DD SYSOUT=*,DCB=(BLKSIZE=800),SPACE=(CYL,(5,5,0)) //SYSPRINT DD SYSOUT=*,DCB=(BLKSIZE=3509), // UNIT=(,SEP=(SYSUT1,SYSPUNCH)) //SYSLIN DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(5,5,0)), // DCB=(BLKSIZE=400),DSN=&&LOADSET //L EXEC PGM=IEWL,PARM='MAP,LET,LIST', // REGION=1M,COND=(8,LT,A) //SYSLIB DD DSN=DDMS.V1R2M1.OBJLIB,DISP=SHR //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //*YSLMOD DD DISP=SHR,UNIT=SYSDA, //* DSN=FSUPP17.TEST.LOADLIB(@8011) //SYSLMOD DD DISP=(,PASS),UNIT=SYSDA, // SPACE=(CYL,(2,1,2)),DSN=&GOSET(GO) //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1 //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509) //SYSIN DD DUMMY //G EXEC PGM=*.L.SYSLMOD,COND=((9,LT,A),(9,LT,L)), // REGION=8M //STEPCAT DD DSN=TSOCAT,DISP=SHR //*NDD DD DSN=SYS1.LPALIB,DISP=SHR //INDD DD DSN=SYS1.LINKLIB,DISP=SHR //*NDD DD DSN=DDMSL.V1R2M1.LOADLIB,DISP=SHR //OUTDD DD SYSOUT=* //