//KIMUA JOB (ACCT#),CLASS=F,MSGCLASS=W,NOTIFY=KIMU
//* ***************************************************************
//* SMF RECORD EDIT PROGRAM !
//*      rec type   record name              dd name
//*          74-4 : CF activities        .   TYPE74
//*               : Structure requests   .   TYPE74S
//*            -2 : XCF activities       .   TYPE72X
//*               : XCF Path             .   TYPE72P
//*
//* ---------------------------------------------------------------
//* 99.08.12 : Bug Fix Zero devide of CF Cpu used percent
//* 99.09.27 : Bug Fix No data contain subtype-2 record
//* 99.10.05 : Bug Fix No data contain subtype-4 storucure request data
//*
//* ***************************************************************
//JOBCAT   DD  DSN=USER.CATALOG,DISP=SHR
//A       EXEC PGM=ASMA90,PARM=OBJECT,REGION=2000K
//SYSIN    DD  *
         START
         PRINT NOGEN
SMFEDIT  CSECT
         SAVE  (14,12),T,*
         BALR  R03,0
         USING *,R03,R04,R05,R08           BASE REG. R03
         LA    R04,2048(R03)
         LA    R04,2048(R04)               2ND BASE REG. R04
         LA    R05,2048(R04)
         LA    R05,2048(R05)               3ND BASE REG. R05
         LA    R08,2048(R05)
         LA    R08,2048(R08)               4ND BASE REG. R08
         ST    R13,SAVEAREA+4              SAVE A(OLD SAVEAREA)
         LR    R12,R13
         LA    R13,SAVEAREA
         ST    R13,8(R12)                  SAVE A(NEW SAVEAREA)
*--- end of incantation ---
*----------------------------------------------------------------------
*--- parameter ---
         MVI   PARMWA,X'40'             space clear
         MVC   PARMWA+1(L'PARMWA-1),PARMWA
         MVI   STRNAME,X'40'
         MVC   STRNAME+1(L'STRNAME-1),STRNAME
         MVI   CFNAME,X'40'
         MVC   CFNAME+1(L'CFNAME-1),CFNAME
         MVI   RTNAME,X'40'
         MVC   RTNAME+1(L'RTNAME-1),RTNAME
         MVI   PTHNAME,X'40'
         MVC   PTHNAME+1(L'PTHNAME-1),PTHNAME
*
         L     R01,0(R01)
         LH    R02,0(R01)
         LTR   R02,R02
         BZ    PRM_EXIT
         BCTR  R02,0
*--> PARMMVC  MVC   PARMWA(0),2(R01)
         EX    R02,PARMMVC
*
         LA    R01,PARMWA
         LA    R02,L'PARMWA
PRM_LOP1 EQU   *
         CLC   0(07,R01),=CL07'CFNAME('
         BNE   PRM_SKP1
         LA    R15,CFNAME
         LA    R01,7(R01)
         B     PRM_LOP2
PRM_SKP1 EQU   *
         CLC   0(08,R01),=CL08'STRNAME('
         BNE   PRM_SKP2
         LA    R15,STRNAME
         LA    R01,8(R01)
         B     PRM_LOP2
PRM_SKP2 EQU   *
         CLC   0(06,R01),=CL06'ROUTE('
         BNE   PRM_SKP3
         LA    R15,RTNAME
         LA    R01,6(R01)
         B     PRM_LOP2
PRM_SKP3 EQU   *
         CLC   0(05,R01),=CL05'PATH('
         BNE   PRM_SKP4
         LA    R15,PTHNAME
         LA    R01,5(R01)
         B     PRM_LOP2
PRM_SKP4 EQU   *
         LA    R01,1(R01)
         BCT   R02,PRM_LOP1
         B     PRM_EXIT
*
PRM_LOP2 EQU   *
         CLI   0(R01),C')'
         BE    PRM_SKP20
         MVC   0(1,R15),0(R01)
         LA    R15,1(R15)
         LA    R01,1(R01)
         BCT   R02,PRM_LOP2
         B     PRM_EXIT
PRM_SKP20 EQU  *
         LA    R01,1(R01)
         BCT   R02,PRM_LOP1
         B     PRM_EXIT
*
PRM_EXIT EQU   *
         MVC   MSG#0000(15),=CL15'SE74 : CFNAME ='
         MVC   MSG#0000+15(65),CFNAME
         WTO   TEXT=MSG#A000,MF=(E,WTOINFO)
         MVC   MSG#0000(15),=CL15'SE74 : STRNAME='
         MVC   MSG#0000+15(65),STRNAME
         WTO   TEXT=MSG#A000,MF=(E,WTOINFO)
         MVC   MSG#0000(15),=CL15'SE74 : ROUTE  ='
         MVC   MSG#0000+15(65),RTNAME
         WTO   TEXT=MSG#A000,MF=(E,WTOINFO)
         MVC   MSG#0000(15),=CL15'SE74 : PATH   ='
         MVC   MSG#0000+15(65),PTHNAME
         WTO   TEXT=MSG#A000,MF=(E,WTOINFO)
*--- Header Base Regs ---
         LA    R09,RECAREA
         USING SMF74HDR,R09
*--- File open ---
         OPEN  (INDCB,,TYPE74,(OUTPUT),TYPE74S,(OUTPUT))
         OPEN  (TYPE72X,(OUTPUT),TYPE72P,(OUTPUT))
*--- Title ---
         PUT   TYPE74,#74TTL
         PUT   TYPE74S,#74STTL
         PUT   TYPE72X,#72XTTL
         PUT   TYPE72P,#72PTTL
*-- Read ---
LOOP01   EQU   *
         GET   INDCB,RECAREA
         CLI   SMF74RTY,X'4A'            Type  74 ( RMF activity )
         BE    EDIT74
         B     LOOP01
*--- Record type 74 process -------------------------------------------
EDIT74   EQU   *
         BAL   R14,EDIT74RMF
*
         CLC   RECAREA+22(2),=XL2'0002'  XCF signalling section
         BE    EDIT742
         CLC   RECAREA+22(2),=XL2'0004'  CF section
         BE    EDIT744
EDIT74X  EQU   *
         B     LOOP01
*--- Record type 74 subtype 2 -----------------------------------------
EDIT742  EQU   *
         B     EDIT742_XCF
EDIT742_XCFR EQU *
         B     EDIT742_XCF2
EDIT742_XCF2R EQU *
         B     EDIT74X
*--- Record type 74 subtype 4 -----------------------------------------
EDIT744  EQU   *
         B     EDIT744_CF
EDIT744_CFR EQU *
         B     EDIT744_STR
EDIT744_STRR EQU *
         B     EDIT74X
*======================================================================
* --- Record type 74 RMF Product Section ------------------------------
*======================================================================
EDIT74RMF EQU  *
         L     R10,SMF74PRS              SMF74PRS
*                                         : 'RMF product section' ptr
         LA    R10,RECAREA(R10)
         USING SMF74PRO,R10              Based RMF product section
*
         MVI   #H74DAT,C' '
         MVC   #H74DAT+1(L'#H74DAT-1),#H74DAT
         L     R01,SMF74DAT
         SRL   R01,12
         O     R01,=X'0000000F'
         XC    WK#D1,WK#D1
         ST    R01,WK#DF2
         CVB   R01,WK#D1
         ST    R01,WK#F1
*
         MVC   #H74DAT+5(4),WK#F1
*
         CL    R01,=F'100'
         BL    E74RMF_SKP01
         L     R01,WK#F1
         S     R01,=F'100'
         LA    R01,2000(R01)
         B     E74RMF_SKP02
E74RMF_SKP01 EQU *
         LA    R01,1900(R01)
E74RMF_SKP02 EQU *
         XC    PK_AREA,PK_AREA
         CVD   R01,PK_AREA
         UNPK  UPK_AREA(8),PK_AREA(8)
         OI    UPK_AREA+7,X'F0'
         MVC   #H74DAT(4),UPK_AREA+4
         MVI   #H74DAT+4,C'/'
*
         LR    R06,R01
         SRDA  R06,32
         D     R06,=F'400'               Year / 400
         LTR   R06,R06
         BZ    E74RMF_SKP04
         LR    R06,R01
         SRDA  R06,32
         D     R06,=F'100'               Year / 100
         LTR   R06,R06
         BZ    E74RMF_SKP03
         LR    R06,R01
         SRDA  R06,32
         D     R06,=F'4'                 Year / 4
         LTR   R06,R06
         BZ    E74RMF_SKP04
E74RMF_SKP03 EQU *
         MVC   MONTH(12),MONTH1
         B     E74RMF_SKP05
E74RMF_SKP04 EQU *
         MVC   MONTH(12),MONTH2
         B     E74RMF_SKP05
E74RMF_SKP05 EQU *
*
         L     R01,SMF74DAT
         N     R01,=X'0000FFFF'
         XC    WK#D1,WK#D1
         ST    R01,WK#DF2
         CVB   R01,WK#D1
         ST    R01,WK#F1                 julian date
         LA    R02,MONTH                 Month Table
         LA    R06,1                     Month
*        B     E74RMF_SKP0X
E74RMF_SKP06 EQU *
         XR    R15,R15
         IC    R15,0(R02)
         CLR   R01,R15
         BNH   E74RMF_SKP07
         SR    R01,R15                   substruct day
         LA    R02,1(R02)                Shift Month Table
         LA    R06,1(R06)                Month + 1
         B     E74RMF_SKP06
E74RMF_SKP07 EQU *
*        B     E74RMF_SKP0X
         XC    PK_AREA,PK_AREA
         CVD   R06,PK_AREA
         UNPK  UPK_AREA(8),PK_AREA(8)
         OI    UPK_AREA+7,X'F0'
         MVC   #H74DAT+5(2),UPK_AREA+6
         MVI   #H74DAT+7,C'/'
*
         XC    PK_AREA,PK_AREA
         CVD   R01,PK_AREA
         UNPK  UPK_AREA(8),PK_AREA(8)
         OI    UPK_AREA+7,X'F0'
         MVC   #H74DAT+8(2),UPK_AREA+6
E74RMF_SKP0X EQU *
*
         XC    PK_AREA,PK_AREA           SMF74IST
*                                         : Monitor start time
         L     R01,SMF74IST
         ST    R01,PK_AREA+12
         UNPK  UPK_AREA(16),PK_AREA(16)
         OI    UPK_AREA+15,X'F0'
*                 0123456789012345
*        EDWORK : .........hhmmssF
         MVC   #H74IST(2),UPK_AREA+10
         MVI   #H74IST+2,C':'
         MVC   #H74IST+3(2),UPK_AREA+12
         MVI   #H74IST+5,C':'
         MVC   #H74IST+6(2),UPK_AREA+14
*
*        SMF74INT : mmsstttF
         L     R01,SMF74INT              SMF74INT
*                                         : Interval
         SRL   R01,20
         O     R01,=X'0000000F'
         XC    WK#D1,WK#D1
         ST    R01,WK#DF2
         CVB   R01,WK#D1
         MH    R01,=H'60'                ss <- mm * 60
         L     R02,SMF74INT
         N     R02,=X'00FF0000'
         SRL   R02,12
         O     R02,=X'0000000F'
         XC    WK#D1,WK#D1
         ST    R02,WK#DF2
         CVB   R02,WK#D1
         LA    R01,0(R01,R02)            ss <- mm * 60 + ss
         L     R02,SMF74INT
         N     R02,=X'0000FFFF'
         XC    WK#D1,WK#D1
         ST    R02,WK#DF2
         CVB   R02,WK#D1
         CL    R02,=F'500'               if 0.5ms > ttt
         BL    E74RMF_SKP1
         LA    R01,1(R01)                round
E74RMF_SKP1 EQU *
         ST    R01,#H74INT
         BR    R14
         DROP  R10
*======================================================================
*--- record type 74 - 2 XCF Section -----------------------------------
*======================================================================
#SMF742SN DS   H
EDIT742_XCF EQU *
* --- Request Data section ---
         L     R10,SMF742SO
         LH    R01,SMF742SN
         LTR   R01,R01
         BZ    E742XCF_NEXT
         STH   R01,#SMF742SN
*
         LA    R10,RECAREA(R10)
         USING R742SYS,R10
E742XCF  EQU   *
         LA    R01,L'#72X                Length
         LA    R02,#72X                  Address
         MVI   #72X,X'40'                OUT AREA SPACE CLEAR
E742XCF_CLR EQU *
         CL    R01,=F'256'
         BNH   E742XCF_CLRX
*
         MVC   1(256,R02),0(R02)
         S     R01,=F'256'
         LA    R02,256(R02)
         B     E742XCF_CLR
E742XCF_CLRX EQU *
         BCTR  R01,0
         BCTR  R01,0
         EX    R01,EXCLR
*EXCLR    MVC   1(0,R02),0(R02)
*
         LA    R01,PARTX
E742XCF_INIT EQU *
         CLC   0(4,R01),=X'FFFFFFFF'
         BE    E742XCF_INITX
         L     R02,0(R01)
         MVI   0(R02),C','
         LA    R01,4(R01)
         B     E742XCF_INIT
E742XCF_INITX EQU *
*
         MVC   #72XDAT,#H74DAT           Monitor start time
         MVC   #72XIST,#H74IST           Monitor start time
         L     R01,#H74INT               Interval time
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #72XINT,EDWORK+12
* --- R742SNME ---------------------------------------------------
         MVC   #742SNME,R742SNME         R742SNME
*
* --- R742STCN ---------------------------------------------------
         CLC   R742STCN,=CL8' '
         BE    E742XCF_STCN_SKP1
         MVC   #742STCN,R742STCN         R742STCN
         B     E742XCF_STCN_SKP2
E742XCF_STCN_SKP1 EQU *
         MVC   #742STCN,=CL8'INBOUND'    R742STCN
E742XCF_STCN_SKP2 EQU *
*
* --- R742SPTH ---------------------------------------------------
         L     R01,R742SPTH              R742SPTH
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SPTH,EDWORK+8
*
* --- R742SBSY ---------------------------------------------------
         L     R01,R742SBSY              R742SBSY
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SBSY,EDWORK+8
*
* --- R742SNOP ---------------------------------------------------
         L     R01,R742SNOP              R742SNOP
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SNOP,EDWORK+8
*
* --- R742SMXB ---------------------------------------------------
         L     R01,R742SMXB              R742SMXB
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SMXB,EDWORK+8
*
* --- R742SBIG ---------------------------------------------------
         L     R01,R742SBIG              R742SBIG
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SBIG,EDWORK+8
*
* --- R742SFIT ---------------------------------------------------
         L     R01,R742SFIT              R742SFIT
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SFIT,EDWORK+8
*
* --- R742SSML ---------------------------------------------------
         L     R01,R742SSML              R742SSML
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SSML,EDWORK+8
*
* --- R742SOVR ---------------------------------------------------
         L     R01,R742SOVR              R742SOVR
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742SOVR,EDWORK+8
*
* --- R742STCL ---------------------------------------------------
         L     R01,R742STCL              R742STCL
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742STCL,EDWORK+8
*
* ----------------------------------------------------------------
         PUT   TYPE72X,#72X
         LH    R01,SMF742SL
         LA    R10,0(R10,R01)
         LH    R01,#SMF742SN
         BCTR  R01,0
         STH   R01,#SMF742SN
         LTR   R01,R01
         BNZ   E742XCF
*        BCT   R12,E742XCF
E742XCF_NEXT EQU *
         B     EDIT742_XCFR
         DROP  R10
*
*======================================================================
*--- record type 74 - 2 XCF Section -----------------------------------
*======================================================================
#SMF742PN DS   H
EDIT742_XCF2 EQU *
* --- Route data section ---
         L     R10,SMF742PO
         LH    R01,SMF742PN
         LTR   R01,R01
         BZ    E742XCF2_X
         STH   R01,#SMF742PN
*
         LA    R10,RECAREA(R10)
         USING R742PTH,R10
E742XCF2 EQU   *
         LA    R01,L'#72P                Length
         LA    R02,#72P                  Address
         MVI   #72P,X'40'                OUT AREA SPACE CLEAR
E742XCF_CLR2 EQU *
         CL    R01,=F'256'
         BNH   E742XCF_CLRX2
*
         MVC   1(256,R02),0(R02)
         S     R01,=F'256'
         LA    R02,256(R02)
         B     E742XCF_CLR2
E742XCF_CLRX2 EQU *
         BCTR  R01,0
         BCTR  R01,0
         EX    R01,EXCLR
*EXCLR    MVC   1(0,R02),0(R02)
*
         LA    R01,PARTP
E742XCF2_INIT EQU *
         CLC   0(4,R01),=X'FFFFFFFF'
         BE    E742XCF2_INITX
         L     R02,0(R01)
         MVI   0(R02),C','
         LA    R01,4(R01)
         B     E742XCF2_INIT
E742XCF2_INITX EQU *
*
         MVC   #72PDAT,#H74DAT           Monitor start time
         MVC   #72PIST,#H74IST           Monitor start time
         L     R01,#H74INT               Interval time
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #72PINT,EDWORK+12
* ----------------------------------------------------------------
         CLI   RTNAME,C' '
         BE    E742XCF_PDIR0_SKPX
*
         CLC   RTNAME(8),=CL8'INBOUND '
         BE    E742XCF_PDIR0_SKP1
         CLC   RTNAME(8),=CL8'OUTBOUND'
         BE    E742XCF_PDIR0_SKP2
         B     E742XCF2_NEXT
E742XCF_PDIR0_SKP1 EQU *
         TM    R742PDIR,X'80'
         BO    E742XCF_PDIR0_SKPX
         B     E742XCF2_NEXT
E742XCF_PDIR0_SKP2 EQU *
         TM    R742PDIR,X'40'
         BO    E742XCF_PDIR0_SKPX
         B     E742XCF2_NEXT
E742XCF_PDIR0_SKPX EQU *
* ----------------------------------------------------------------
         CLI   PTHNAME,C' '
         BE    E742XCF_PTH_FOUND
         CLC   PTHNAME(03),=CL3'ALL'
         BE    E742XCF_PTH_FOUND
*
         LA    R01,R742PDEV              PDEV : R01
         LA    R15,L'R742PDEV
         LA    R01,0(R01,R15)
         BCTR  R01,0
E742XCF_PTH_LOOP1 EQU *
         CLI   0(R01),C' '
         BNE   E742XCF_PTH_LOOP1_EXIT
         BCTR  R01,0
         BCT   R15,E742XCF_PTH_LOOP1
E742XCF_PTH_LOOP1_EXIT EQU *
         LTR   R15,R15
         BZ    E742XCF_NEXTCHK1
         BCTR  R15,0
         LA    R02,L'PTHNAME
         LA    R01,PTHNAME
E742XCF_PTH_LOOP2 EQU *
         CLI   0(R01),C' '
         BE    E742XCF_NEXTCHK1
         EX    R15,EXCLCPDEV
         BE    E742XCF_PTH_FOUND
         LA    R01,1(R01)
         BCT   R02,E742XCF_PTH_LOOP2
         B     E742XCF_NEXTCHK1
EXCLCPDEV CLC   0(0,R01),R742PDEV
*
E742XCF_NEXTCHK1 EQU *
         LA    R01,R742PODV              PODV : R01
         LA    R15,L'R742PODV
         LA    R01,0(R01,R15)
         BCTR  R01,0
E742XCF_PTH_LOOP3 EQU *
         CLI   0(R01),C' '
         BNE   E742XCF_PTH_LOOP3_EXIT
         BCTR  R01,0
         BCT   R15,E742XCF_PTH_LOOP3
E742XCF_PTH_LOOP3_EXIT EQU *
         LTR   R15,R15
         BZ    E742XCF_NEXTCHK2
         BCTR  R15,0
         LA    R02,L'PTHNAME
         LA    R01,PTHNAME
E742XCF_PTH_LOOP4 EQU *
         CLI   0(R01),C' '
         BE    E742XCF_NEXTCHK2
         EX    R15,EXCLCPODV
         BE    E742XCF_PTH_FOUND
         LA    R01,1(R01)
         BCT   R02,E742XCF_PTH_LOOP4
         B     E742XCF_NEXTCHK2
EXCLCPODV CLC   0(0,R01),R742PODV
*
E742XCF_NEXTCHK2 EQU *
         LA    R01,R742PSTR              PSTR : R01
         LA    R15,L'R742PSTR
         LA    R01,0(R01,R15)
         BCTR  R01,0
E742XCF_PTH_LOOP5 EQU *
         CLI   0(R01),C' '
         BNE   E742XCF_PTH_LOOP5_EXIT
         BCTR  R01,0
         BCT   R15,E742XCF_PTH_LOOP5
E742XCF_PTH_LOOP5_EXIT EQU *
         LTR   R15,R15
         BZ    E742XCF_NEXTCHK3
         BCTR  R15,0
         LA    R02,L'PTHNAME
         LA    R01,PTHNAME
E742XCF_PTH_LOOP6 EQU *
         CLI   0(R01),C' '
         BE    E742XCF_NEXTCHK3
         EX    R15,EXCLCPSTR
         BE    E742XCF_PTH_FOUND
         LA    R01,1(R01)
         BCT   R02,E742XCF_PTH_LOOP6
         B     E742XCF_NEXTCHK3
EXCLCPSTR CLC   0(0,R01),R742PSTR
*
E742XCF_NEXTCHK3 EQU *
         B     E742XCF2_NEXT
*
E742XCF_PTH_FOUND EQU *
*
* --- R742PNME ---------------------------------------------------
         MVC   #742PNME,R742PNME         R742PNME
*
* --- R742PDEV ---------------------------------------------------
         TM    R742PDIR,X'80'
         BO    E742XCF_PDEV_SKP1
         MVC   #742PODV,R742PDEV         R742PDEV ( outbound )
         B     E742XCF_PDEV_SKPX
E742XCF_PDEV_SKP1 EQU *
         MVC   #742PDEV,R742PDEV         R742PDEV ( inbound )
E742XCF_PDEV_SKPX EQU *
*
*
* --- R742PTCN ---------------------------------------------------
         CLC   R742PTCN,=CL8' '
         BE    E742XCF_PTCN_SKP1
         MVC   #742PTCN,R742PTCN         R742PTCN
         B     E742XCF_PTCN_SKP2
E742XCF_PTCN_SKP1 EQU *
*        MVC   #742PTCN,=CL8'INBOUND'    R742PTCN
E742XCF_PTCN_SKP2 EQU *
*
* --- R742PSTR ---------------------------------------------------
         CLC   R742PSTR,=CL16' '
         BE    E742XCF_PSTR_SKP1
         MVC   #742PSTR,R742PSTR         R742PSTR
         B     E742XCF_PSTR_SKP2
E742XCF_PSTR_SKP1 EQU *
*        MVC   #742PSTR,=CL16'CTC'       R742PSTR
E742XCF_PSTR_SKP2 EQU *
*
* --- R742PSTF ---------------------------------------------------
         TM    R742PSTF,X'80'
         BO    E742XCF_PSTF_SKP1
         TM    R742PSTF,X'40'
         BO    E742XCF_PSTF_SKP2
         TM    R742PSTF,X'20'
         BO    E742XCF_PSTF_SKP3
         B     E742XCF_PSTF_SKP4
E742XCF_PSTF_SKP1 EQU *
         MVC   #742PSTF,=CL8'ACTIVE'
         B     E742XCF_PSTF_SKP4
E742XCF_PSTF_SKP2 EQU *
         MVC   #742PSTF,=CL8'DEACTIVE'
         B     E742XCF_PSTF_SKP4
E742XCF_PSTF_SKP3 EQU *
         MVC   #742PSTF,=CL8'RESET '
         B     E742XCF_PSTF_SKP4
E742XCF_PSTF_SKP4 EQU *
*
* --- R742PDIR ---------------------------------------------------
         TM    R742PDIR,X'80'
         BO    E742XCF_PDIR_SKP1
         TM    R742PDIR,X'40'
         BO    E742XCF_PDIR_SKP2
         B     E742XCF_PDIR_SKP3
E742XCF_PDIR_SKP1 EQU *
         MVC   #742PDIR,=CL8'INBOUND'
         B     E742XCF_PDIR_SKP3
E742XCF_PDIR_SKP2 EQU *
         MVC   #742PDIR,=CL8'OUTBOUND'
         B     E742XCF_PDIR_SKP3
E742XCF_PDIR_SKP3 EQU *
*
* --- R742PTYP ---------------------------------------------------
         CLI   R742PTYP,X'01'
         BE    E742XCF_PTYP_SKP1
         CLI   R742PTYP,X'03'
         BE    E742XCF_PTYP_SKP2
         B     E742XCF_PTYP_SKP3
E742XCF_PTYP_SKP1 EQU *
         MVC   #742PTYP,=CL3'CTC'
         B     E742XCF_PTYP_SKP3
E742XCF_PTYP_SKP2 EQU *
         MVC   #742PTYP,=CL3'STR'
         B     E742XCF_PTYP_SKP3
E742XCF_PTYP_SKP3 EQU *
*
* --- R742PONA ---------------------------------------------------
         TM    R742PDIR,X'80'
         BO    E742XCF_PONA_SKP1
         MVC   #742PONAT,R742PONA         R742PONA ( inbound )
         MVC   #742PONAF,R742PNME         R742PNME
         B     E742XCF_PONA_SKPX
E742XCF_PONA_SKP1 EQU *
         MVC   #742PONAF,R742PONA         R742PONA ( outbound )
         MVC   #742PONAT,R742PNME         R742PNME
E742XCF_PONA_SKPX EQU *
*
* --- R742PODV ---------------------------------------------------
         TM    R742PDIR,X'80'
         BO    E742XCF_PODV_SKP1
         MVC   #742PDEV,R742PODV         R742PODV ( outbound )
         B     E742XCF_PODV_SKPX
E742XCF_PODV_SKP1 EQU *
         MVC   #742PODV,R742PODV         R742PODV ( inbound )
E742XCF_PODV_SKPX EQU *
*
* --- R742PSTA ---------------------------------------------------
         TM    R742PSTA,X'80'
         BO    E742XCF_PSTA_SKP1
         TM    R742PSTA,X'40'
         BO    E742XCF_PSTA_SKP2
         TM    R742PSTA,X'20'
         BO    E742XCF_PSTA_SKP3
         TM    R742PSTA,X'10'
         BO    E742XCF_PSTA_SKP4
         TM    R742PSTA,X'08'
         BO    E742XCF_PSTA_SKP5
         B     E742XCF_PSTA_SKP6
E742XCF_PSTA_SKP1 EQU *
         MVC   #742PSTA,=CL8'START'
         B     E742XCF_PSTA_SKP6
E742XCF_PSTA_SKP2 EQU *
         MVC   #742PSTA,=CL8'RESTART'
         B     E742XCF_PSTA_SKP6
E742XCF_PSTA_SKP3 EQU *
         MVC   #742PSTA,=CL8'ACTIVE'
         B     E742XCF_PSTA_SKP6
E742XCF_PSTA_SKP4 EQU *
         MVC   #742PSTA,=CL8'STOP'
         B     E742XCF_PSTA_SKP6
E742XCF_PSTA_SKP5 EQU *
         MVC   #742PSTA,=CL8'WAIT'
         B     E742XCF_PSTA_SKP6
E742XCF_PSTA_SKP6 EQU *
*
* --- R742PRET ---------------------------------------------------
         L     R01,R742PRET              R742PRET
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PRET,EDWORK+8
*
* --- R742PRST ---------------------------------------------------
         TM    R742PDIR,X'40'            if not outbound then ,
         BNO   E742XCF_PRST_SKP1
         L     R01,R742PRST              R742PRST
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PRST,EDWORK+8
E742XCF_PRST_SKP1 EQU *
*
* --- R742PMXM ---------------------------------------------------
         L     R01,R742PMXM              R742PMXM
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PMXM,EDWORK+8
*
* --- R742PSIG ---------------------------------------------------
         L     R01,R742PSIG              R742PSIG
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PSIG,EDWORK+8
*
* --- R742PQLN ---------------------------------------------------
         L     R01,R742PQLN              R742PQLN
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PQLN,EDWORK+8
*
* --- R742PIBR ---------------------------------------------------
         TM    R742PDIR,X'80'            if not inbound then ,
         BNO   E742XCF_PIBR_SKP1
         L     R01,R742PIBR              R742PIBR
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PIBR,EDWORK+8
E742XCF_PIBR_SKP1 EQU *
*
* --- R742PSUS ---------------------------------------------------
         TM    R742PDIR,X'40'            if not outbound then ,
         BNO   E742XCF_PSUS_SKP1
         L     R01,R742PSUS              R742PSUS
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PSUS,EDWORK+8
E742XCF_PSUS_SKP1 EQU *
*
* --- R742PAPP ---------------------------------------------------
         TM    R742PDIR,X'40'            if not outbound then ,
         BNO   E742XCF_PAPP_SKP1
         L     R01,R742PAPP              R742PAPP
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #742PAPP,EDWORK+8
E742XCF_PAPP_SKP1 EQU *
*
* ----------------------------------------------------------------
         PUT   TYPE72P,#72P
E742XCF2_NEXT EQU *
         LH    R01,SMF742PL
         LA    R10,0(R10,R01)
         LH    R01,#SMF742PN
         BCTR  R01,0
         STH   R01,#SMF742PN
         LTR   R01,R01
         BNZ   E742XCF2
*        BCT   R12,E742XCF2
E742XCF2_X EQU *
         B     EDIT742_XCF2R
         DROP  R10
*
*======================================================================
*--- record type 74 - 4 CF Section ------------------------------------
*======================================================================
* R10 : CF section base.
* R11 : CF section loop counter.
EDIT744_CF EQU *
         MVI   #74,X'40'                 OUT AREA SPACE CLEAR
         MVC   #74+1(L'#74-1),#74
*
         LA    R01,PARTCF
E744CF_INIT EQU *
         CLC   0(4,R01),=X'FFFFFFFF'
         BE    E744CF_INITX
         L     R02,0(R01)
         MVI   0(R02),C','
         LA    R01,4(R01)
         B     E744CF_INIT
E744CF_INITX EQU *
*
         MVC   #74CDAT,#H74DAT           Monitor start time
         MVC   #74CIST,#H74IST           Monitor start time
         L     R01,#H74INT               Interval time
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #74CINT,EDWORK+12
* --- Local Coupling Facility Data Section ---
         L     R10,SMF74DCS              SMF74DCS
         LH    R11,SMF74DCL              SMF74DCL
         LA    R10,RECAREA(R10)
         USING R744FLCF,R10
*
* --- R744FNAM ---------------------------------------------------
         MVC   #744FNAM,R744FNAM         R744FNAM
         CLI   CFNAME,C' '
         BE    E744CF_FNAM_LOOP2_FOUND
         CLC   STRNAME(03),=CL3'ALL'
         BE    E744CF_FNAM_LOOP2_FOUND
*
         LA    R01,#744FNAM
         LA    R15,L'R744FNAM
         LA    R01,0(R01,R15)
         BCTR  R01,0
E744CF_FNAM_LOOP1 EQU *
         CLI   0(R01),C' '
         BNE   E744CF_FNAM_LOOP1_EXIT
         BCTR  R01,0
         BCT   R15,E744CF_FNAM_LOOP1
E744CF_FNAM_LOOP1_EXIT EQU *
         LTR   R15,R15
         BZ    E744CF_NEXT
         BCTR  R15,0
         LA    R02,L'CFNAME
         LA    R01,CFNAME
E744CF_FNAM_LOOP2 EQU *
         CLI   0(R01),C' '
         BE    E744CF_NEXT
         EX    R15,EXCLCF
         BE    E744CF_FNAM_LOOP2_FOUND
         LA    R01,1(R01)
         BCT   R02,E744CF_FNAM_LOOP2
         B     E744CF_NEXT
EXCLCF   CLC   0(0,R01),R744FNAM
E744CF_FNAM_LOOP2_FOUND EQU *
* --- R744FSYS ---------------------------------------------------
         MVC   #744FSYS,R744FSYS         R744FSYS
* --- R744FFLG ---------------------------------------------------
         TM    R744FFLG,X'80'            R744FFLG
         BNO   E744FFLG_SKP1
         MVC   #744FFLG,=CL4'CONN'
E744FFLG_SKP1 EQU *
         TM    R744FFLG,X'40'            R744FFLG
         BNO   E744FFLG_SKP2
         MVC   #744FFLG,=CL4'ACT '
E744FFLG_SKP2 EQU *
* --- R744FPAM ---------------------------------------------------
         L     R01,R744FPAM              R744FPAM
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744FPAM,EDWORK+12
*
* --- R744FPBC ---------------------------------------------------
         MVC   WKFP(8),R744FPBC
         LA    R01,WKFP
         LA    R02,#744FPBC
         BAL   R14,DF
*
* --- R744FSCG ---------------------------------------------------
         L     R01,R744FSCG              R744FSCG
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744FSCG,EDWORK+12
*
* --- R744FSCU ---------------------------------------------------
         L     R01,R744FSCU              R744FSCU
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744FSCU,EDWORK+12
*
* --- R744FSCL ---------------------------------------------------
         L     R01,R744FSCL              R744FSCL
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744FSCL,EDWORK+12
*
* --- R744FSCC ---------------------------------------------------
         MVC   WKFP(8),R744FSCC
         LA    R01,WKFP
         LA    R02,#744FSCC
         BAL   R14,DF
*
* --- R744FTOR ---------------------------------------------------
         MVC   WKFP(8),R744FTOR
         LA    R01,WKFP
         LA    R02,#744FTOR
         BAL   R14,DF
*
* --- R744FAIL ---------------------------------------------------
         MVC   WKFP(8),R744FAIL
         LA    R01,WKFP
         LA    R02,#744FAIL
         BAL   R14,DF
*
* --- R744FTIM ---------------------------------------------------
         MVC   WKFP(8),R744FTIM
         LA    R01,WKFP
         LA    R02,#744FTIM
         BAL   R14,DF
*
* --- R744FSQU ---------------------------------------------------
         MVC   WKFP(8),R744FSQU
         LA    R01,WKFP
         LA    R02,#744FSQU
         BAL   R14,DF
*
* --- R744FCTM ---------------------------------------------------
         MVC   WKFP(8),R744FCTM
         LA    R01,WKFP
         LA    R02,#744FCTM
         BAL   R14,DF
*
* --- R744FCSQ ---------------------------------------------------
         MVC   WKFP(8),R744FCSQ
         LA    R01,WKFP
         LA    R02,#744FCSQ
         BAL   R14,DF
*
* --- Processer Data Section ---
         L     R10,SMF744PO
         LH    R11,SMF744PN
         LA    R10,RECAREA(R10)
         USING R744PROC,R10
         XC    #CF#CPUT,#CF#CPUT
         XC    #CF#USET,#CF#USET
*
* -- Loop All CPU --
*
* #CF#CPUT (long fixed) <- R744PBSY of all CPU
* #CF#USET (long fixed) <- R744PBSY + R744PWAI of all CPU
*
* ??? maximam interval is 71 minitus ?
*
E744CPU  EQU   *
* Total CPU Used time.
         L     R01,R744PBSY              calculate X'....????'
         N     R01,=X'0000FFFF'
         LH    R14,#CF#USET+6            #CF#USET : X'............xxxx'
         N     R14,=X'0000FFFF'
         AR    R01,R14
         STH   R01,#CF#USET+6
         SRL   R01,16
         L     R02,R744PBSY              calculate X'????....'
         SRL   R02,16
         AR    R01,R02
         LH    R14,#CF#USET+4            #CF#USET : X'........xxxx....'
         N     R14,=X'0000FFFF'
         AR    R01,R14
         STH   R01,#CF#USET+4
         SRL   R01,16
         L     R14,#CF#USET              #CF#USET : X'xxxxxxxx........'
         AR    R01,R14
         ST    R01,#CF#USET
* Total CPU time.
         L     R01,R744PBSY
         L     R06,R744PWAI
         AR    R06,R01                   Total CPU Time.
         LR    R01,R06                   calculate X'....????'
         N     R01,=X'0000FFFF'
         XR    R14,R14
         LH    R14,#CF#CPUT+6            #CF#CPUT : X'............xxxx'
         N     R14,=X'0000FFFF'
         AR    R01,R14
         STH   R01,#CF#CPUT+6
         SRL   R01,16
         LR    R02,R06                   calculate X'????....'
         SRL   R02,16
         AR    R01,R02
         XR    R14,R14
         LH    R14,#CF#CPUT+4            #CF#CPUT : X'........xxxx....'
         N     R14,=X'0000FFFF'
         AR    R01,R14
         STH   R01,#CF#CPUT+4
         SRL   R01,16
         L     R14,#CF#CPUT              #CF#CPUT : X'xxxxxxxx........'
         AR    R01,R14
         ST    R01,#CF#CPUT
*
* CPU NO
*+       LA    R01,R744PNUM
*+       CALL  @HC,((R01),#74CPU,4)
* CPU USE
*+       LA    R01,R744PBSY
*+       CALL  @HC,((R01),#74USE,4)
* CPU UN-USE
*+       LA    R01,R744PWAI
*+       CALL  @HC,((R01),#74UNU,4)
* -- Caricurate CPU% --
*         R744PBSY <used time>           / x
*  ----------------------------------------- * 10000 = percentage * 100
*  ( R744PWAI + R744PBSY ) <total time>  / x
*
*+       L     R01,R744PWAI
*+       L     R06,R744PBSY
*+       AR    R01,R06
E744CF_USE_LOP1 EQU *
*+       CL    R01,=X'0000FFFF'
*+       BNH   E744CF_USE_LOP1X
*+       SRL   R01,1                     denominator / 2
*+       SRL   R06,1                     numerator / 2
*+       B     E744CF_USE_LOP1
E744CF_USE_LOP1X EQU *
*+       MH    R06,=H'10000'
*+       SRDA  R06,32
*+       DR    R06,R01
*
*+       CVD   R07,PK_AREA
*+       MVC   EDW100,EDM100
*+       ED    EDW100,PK_AREA             100.00
*+       MVC   #74PCT,EDW100+9
*
*+       PUT   TYPE74,#74
         LH    R01,SMF744PL
         LA    R10,0(R10,R01)
         BCT   R11,E744CPU
* --- Averaged CPU Used percentage of Interval
*        MVC   #74CPU,=CL8'????????'
* CPU USE
*
* I see "Re:Cool Asm Tricks (was MVC)" of ASSEMBLER-L.
*                            posted by Bill Fairchild.
*
* > how to convert a string of hex byte into printable,
* > eyeball-readable EBCDIC
*
*        CALL  @HC,(#CF#USET,#74USE2,8)
         UNPK  EBCDIC_A(9),#CF#USET(5)
         UNPK  EBCDIC_A+8(9),#CF#USET+4(5)
         TR    EBCDIC_A(16),=C'0123456789ABCDEF'-X'F0'
         MVC   #74USE2(8),EBCDIC_A
         MVC   #74USE2+9(8),EBCDIC_A+8
* CPU UN-USE
*        CALL  @HC,(#CF#CPUT,#74UNU2,8)
         UNPK  EBCDIC_A(9),#CF#CPUT(5)
         UNPK  EBCDIC_A+8(9),#CF#CPUT+4(5)
         TR    EBCDIC_A(16),=C'0123456789ABCDEF'-X'F0'
         MVC   #74UNU2(8),EBCDIC_A
         MVC   #74UNU2+9(8),EBCDIC_A+8
*
* -- Caricurate CPU% --
*         R744PBSY <used time>           / x
*  ----------------------------------------- * 10000 = percentage * 100
*  ( R744PWAI + R744PBSY ) <total time>  / x
*
         LM    R14,R15,#CF#USET
         LM    R06,R07,#CF#CPUT
E744CF_USE_LOP2 EQU *
         LTR   R06,R06
         BNZ   E744CF_USE_LOP21
         CL    R07,=X'7FFFFFFF'
         BNH   E744CF_USE_LOP2X
E744CF_USE_LOP21 EQU *
         SRDL  R06,1                     denominator / 2
         SRDL  R14,1                     numerator / 2
         B     E744CF_USE_LOP2
E744CF_USE_LOP2X EQU *
         M     R14,=F'1000000'
         LTR   R07,R07
         BZ    E744CF_USE_LOP2Z
         DR    R14,R07
         B     E744CF_USE_LOP2ZX
E744CF_USE_LOP2Z EQU *
         XR    R15,R15
*
E744CF_USE_LOP2ZX EQU *
         CVD   R15,PK_AREA
         MVC   EDW101,EDM101
         ED    EDW101,PK_AREA             100.00
         MVC   #74PCT,EDW101+7
*
         PUT   TYPE74,#74
E744CF_NEXT EQU *
         B     EDIT744_CFR
*--- record type 74 - 4 Structure request section ---------------------
* R10 : Structure request section base.
* R11 : Cache data section base.
* R12 : Structure request section loop counter
EDIT744_STR EQU *
* --- Request Data section ---
         L     R10,SMF744SO
         LH    R12,SMF744SN
         LTR   R12,R12
         BZ    EDIT744_STRX
         LA    R10,RECAREA(R10)
         USING R744SREQ,R10
E744STR  EQU   *
         LA    R01,L'#74S                Length
         LA    R02,#74S                  Address
         MVI   #74S,X'40'                OUT AREA SPACE CLEAR
E744STR_CLR EQU *
         CL    R01,=F'256'
         BNH   E744STR_CLRX
*
         MVC   1(256,R02),0(R02)
         S     R01,=F'256'
         LA    R02,256(R02)
         B     E744STR_CLR
E744STR_CLRX EQU *
         BCTR  R01,0
         BCTR  R01,0
         EX    R01,EXCLR
*        STC   R01,*+5
*        MVC   1(0,R02),0(R02)
*EXCLR    MVC   1(0,R02),0(R02)
*
         LA    R01,PART
E744STR_INIT EQU *
         CLC   0(4,R01),=X'FFFFFFFF'
         BE    E744STR_INITX
         L     R02,0(R01)
         MVI   0(R02),C','
         LA    R01,4(R01)
         B     E744STR_INIT
E744STR_INITX EQU *
*
         MVC   #74SDAT,#H74DAT           Monitor start time
         MVC   #74SIST,#H74IST           Monitor start time
         L     R01,#H74INT               Interval time
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #74SINT,EDWORK+12
* --- R744SNAM ---------------------------------------------------
         MVC   #744SNAM,R744SNAM         R744SNAM
         CLI   STRNAME,C' '
         BE    E744STR_SNAM_LOOP2_FOUND
         CLC   STRNAME(03),=CL3'ALL'
         BE    E744STR_SNAM_LOOP2_FOUND
*
         LA    R01,#744SNAM
         LA    R15,L'R744SNAM
         LA    R01,0(R01,R15)
         BCTR  R01,0
E744STR_SNAM_LOOP1 EQU *
         CLI   0(R01),C' '
         BNE   E744STR_SNAM_LOOP1_EXIT
         BCTR  R01,0
         BCT   R15,E744STR_SNAM_LOOP1
E744STR_SNAM_LOOP1_EXIT EQU *
         LTR   R15,R15
         BZ    E744STR_NEXT
         BCTR  R15,0
         LA    R02,L'STRNAME
         LA    R01,STRNAME
E744STR_SNAM_LOOP2 EQU *
         CLI   0(R01),C' '
         BE    E744STR_NEXT
*        STC   R15,*+5
*        CLC   0(0,R01),R744SNAM
         EX    R15,EXCLCS
         BE    E744STR_SNAM_LOOP2_FOUND
         LA    R01,1(R01)
         BCT   R02,E744STR_SNAM_LOOP2
         B     E744STR_NEXT
EXCLCS   CLC   0(0,R01),R744SNAM
E744STR_SNAM_LOOP2_FOUND EQU *
* --- R744STYP ---------------------------------------------------
*        LA    R01,R744STYP
*        CALL  @HC,((R01),#744STYP,1)
         UNPK  EBCDIC_A(3),R744STYP(2)
         TR    EBCDIC_A(2),=C'0123456789ABCDEF'-X'F0'
         MVC   #744STYP(2),EBCDIC_A
*
         CLI   R744STYP,X'01'
         BE    E744STR_STYP_LIST
         CLI   R744STYP,X'02'
         BE    E744STR_STYP_LIST
         CLI   R744STYP,X'03'
         BE    E744STR_STYP_LOCK
         CLI   R744STYP,X'04'
         BE    E744STR_STYP_CACHE
E744STR_STYP_LIST EQU *
         MVC   #744STYC,=CL5'LIST'
         B     E744STR_STYP_X
E744STR_STYP_LOCK EQU *
         MVC   #744STYC,=CL5'LOCK'
         B     E744STR_STYP_X
E744STR_STYP_CACHE EQU *
         MVC   #744STYC,=CL5'CACHE'
         B     E744STR_STYP_X
E744STR_STYP_X EQU *
*
* --- R744SLEL and R744SLEM --------------------------------------
         CLI   R744STYP,X'01'            List Structure
         BE    E744STR_SLE_CALC
         CLI   R744STYP,X'02'            List Structure
         BE    E744STR_SLE_CALC
         CLI   R744STYP,X'03'            Lock Structure
         BE    E744STR_SLE_CALC
*
         MVC   #744SLEM,=CL8'     N/A'
*        MVI   #744SLE@,C'/'
         MVC   #744SLEL,=CL8'     N/A'
         B     E744STR_SLEX
E744STR_SLE_CALC EQU *
         L     R01,R744SLEM              R744SLEM
         CL    R01,=F'100000000'
         BNL   E744STR_SLEMOV
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLEM,EDWORK+8
         B     E744STR_SLEMX
E744STR_SLEMOV EQU *
         MVC   #744SLEM,=CL8'OVER.'
E744STR_SLEMX EQU *
*        MVI   #744SLE@,C'/'
*
         L     R01,R744SLEL              R744SLEL
         CL    R01,=F'100000000'
         BNL   E744STR_SLELOV
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLEL,EDWORK+8
         B     E744STR_SLELX
E744STR_SLELOV EQU *
         MVC   #744SLEL,=CL8'OVER.'
E744STR_SLELX EQU *
         L     R01,R744SLEL              R744SLEL
         LTR   R01,R01                   if 0 ?
         BZ    E744STR_SLEX
         XR    R06,R06
         L     R07,R744SLEM              R07 <- R744SLEM*1000/R744SLEL
         M     R06,=F'1000'
         DR    R06,R01
         LR    R15,R07                   R15 <- Use% * 10
         XR    R06,R06
         D     R06,=F'10'                R07 <- Use% /10 *10
         MH    R07,=H'10'
         SR    R15,R07
         CL    R15,=F'5'                 If last figure < 5
         BL    E744STR_SLEP_1
         XR    R06,R06
         D     R06,=F'10'
         LA    R07,1(R07)
         B     E744STR_SLEP_2
E744STR_SLEP_1 EQU *
         XR    R06,R06
         D     R06,=F'10'
E744STR_SLEP_2 EQU *
         CVD   R07,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLEP,EDWORK+13
         MVI   #744SLEZ,C'%'
E744STR_SLEX  EQU *
*
* --- R744SLTL and R744SLTM --------------------------------------
         CLI   R744STYP,X'03'            Lock Structure
         BE    E744STR_SLT_CALC
         CLI   R744STYP,X'02'            List Structure
         BE    E744STR_SLT_CALC
*
         MVC   #744SLTM,=CL8'     N/A'
*        MVI   #744SLT@,C'/'
         MVC   #744SLTL,=CL8'     N/A'
         B     E744STR_SLTX
E744STR_SLT_CALC EQU *
         L     R01,R744SLTM              R744SLTM
         CL    R01,=F'100000000'
         BNL   E744STR_SLTMOV
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLTM,EDWORK+8
         B     E744STR_SLTMX
E744STR_SLTMOV EQU *
         MVC   #744SLTM,=CL8'OVER.'
E744STR_SLTMX EQU *
*        MVI   #744SLT@,C'/'
*
         L     R01,R744SLTL              R744SLTL
         CL    R01,=F'100000000'
         BNL   E744STR_SLTLOV
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLTL,EDWORK+8
         B     E744STR_SLTLX
E744STR_SLTLOV EQU *
         MVC   #744SLTL,=CL8'OVER.'
E744STR_SLTLX EQU *
*
         L     R01,R744SLTL              R744SLTL
         LTR   R01,R01                   if 0 ?
         BZ    E744STR_SLTX
         XR    R06,R06
         L     R07,R744SLTM              R07 <- R744SLTM*1000/R744SLTL
         M     R06,=F'1000'
         DR    R06,R01
         LR    R15,R07                   R15 <- Use% * 10
         XR    R06,R06
         D     R06,=F'10'                R07 <- Use% /10 *10
         MH    R07,=H'10'
         SR    R15,R07
         CL    R15,=F'5'                 If last figure < 5
         BL    E744STR_SLTP_1
         XR    R06,R06
         D     R06,=F'10'
         LA    R07,1(R07)
         B     E744STR_SLTP_2
E744STR_SLTP_1 EQU *
         XR    R06,R06
         D     R06,=F'10'
E744STR_SLTP_2 EQU *
         CVD   R07,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLTP,EDWORK+13
         MVI   #744SLTZ,C'%'
E744STR_SLTX  EQU *
* --- R744SSTA ---------------------------------------------------
* Long Float : iinnnnnn nnnnnnnn
*              ~~                : index   ( 1byte,  8bit )
*                ~~~~~~ ~~~~~~~~ : decimal ( 7byte, 56bit )
*
* decimal point : 56bit - ((index - 64) * 4)
*
         MVC   WKFP(8),R744SSTA
         LA    R01,WKFP
         LA    R02,#744SSTA
         BAL   R14,DF
*
* --- R744STRC ---------------------------------------------------
         MVC   WKFP,R744STRC
         LA    R01,WKFP
         LA    R02,#744STRC
         BAL   R14,DF
*
* --- R744STAC ---------------------------------------------------
         MVC   WKFP(8),R744STAC
         LA    R01,WKFP
         LA    R02,#744STAC
         BAL   R14,DF
*
* --- R744SARC ---------------------------------------------------
         MVC   WKFP(8),R744SARC
         LA    R01,WKFP
         LA    R02,#744SARC
         BAL   R14,DF
*
* --- R744SATM ---------------------------------------------------
         L     R01,R744SATM
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SATM+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SATM(20),EDWORK2+12
*
         L     R01,#H74SARC
         LTR   R01,R01
         BZ    E744STR_SATM1
         CVD   R01,PK_AREA
         DP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK,EDMASK
         ED    EDWORK(16),PK_AREA2
         MVC   #744SATMA(10),EDWORK+6
         B     E744STR_SATMX
E744STR_SATM1 EQU *
         MVC   #744SATMA(10),=CL10'         0'
E744STR_SATMX EQU *
*
* --- R744SASQ ---------------------------------------------------
         L     R01,R744SASQ
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SASQ+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SASQ(20),EDWORK2+12
*
* --- R744SSRC ---------------------------------------------------
         MVC   WKFP(8),R744SSRC
         LA    R01,WKFP
         LA    R02,#744SSRC
         BAL   R14,DF
*
* --- R744SSTM ---------------------------------------------------
         L     R01,R744SSTM
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SSTM+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SSTM(20),EDWORK2+12
*
         L     R01,#H74SSRC
         LTR   R01,R01
         BZ    E744STR_SSTM1
         CVD   R01,PK_AREA
         DP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK,EDMASK
         ED    EDWORK(16),PK_AREA2
         MVC   #744SSTMA(10),EDWORK+6
         B     E744STR_SSTMX
E744STR_SSTM1 EQU *
         MVC   #744SSTMA(10),=CL10'         0'
E744STR_SSTMX EQU *
*
* --- R744SSSQ ---------------------------------------------------
         L     R01,R744SSSQ
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SSSQ+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SSSQ(20),EDWORK2+12
*
* --- R744SQRC ---------------------------------------------------
         MVC   WKFP(8),R744SQRC
         LA    R01,WKFP
         LA    R02,#744SQRC
         BAL   R14,DF
*
* --- R744SQTM ---------------------------------------------------
         L     R01,R744SQTM
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SQTM+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SQTM(20),EDWORK2+12
*
         L     R01,#H74SQRC
         LTR   R01,R01
         BZ    E744STR_SQTM1
         CVD   R01,PK_AREA
         DP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK,EDMASK
         ED    EDWORK(16),PK_AREA2
         MVC   #744SQTMA(10),EDWORK+6
         B     E744STR_SQTMX
E744STR_SQTM1 EQU *
         MVC   #744SQTMA(10),=CL10'         0'
E744STR_SQTMX EQU *
*
* --- R744SQSQ ---------------------------------------------------
         L     R01,R744SQSQ
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SQSQ+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SQSQ(20),EDWORK2+12
*
* --- R744SDRC ---------------------------------------------------
         MVC   WKFP(8),R744SDRC
         LA    R01,WKFP
         LA    R02,#744SDRC
         BAL   R14,DF
*
* --- R744SDTM ---------------------------------------------------
         L     R01,R744SDTM
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SDTM+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SDTM(20),EDWORK2+12
*
* --- R744SDSQ ---------------------------------------------------
         L     R01,R744SDSQ
         CVD   R01,PK_AREA
         MVC   PK_AREA2(16),=PL16'4294967296'
         MP    PK_AREA2(16),PK_AREA(8)
         L     R01,R744SDSQ+4
         CVD   R01,PK_AREA
         AP    PK_AREA2(16),PK_AREA(8)
         MVC   EDWORK2,EDMASK32
         ED    EDWORK2(32),PK_AREA2
         MVC   #744SDSQ(20),EDWORK2+12
*
* --- R744SDMP ---------------------------------------------------
         MVC   WKFP(8),R744SDMP
         LA    R01,WKFP
         LA    R02,#744SDMP
         BAL   R14,DF
*
* --- R744SHTO ---------------------------------------------------
         MVC   WKFP(8),R744SHTO
         LA    R01,WKFP
         LA    R02,#744SHTO
         BAL   R14,DF
*
* --- R744SHMN ---------------------------------------------------
         L     R01,R744SHMN
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SHMN,EDWORK+8
*
* --- R744SHMX ---------------------------------------------------
         L     R01,R744SHMX
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SHMX,EDWORK+8
*
* --- R744SLTO ---------------------------------------------------
         MVC   WKFP(8),R744SLTO
         LA    R01,WKFP
         LA    R02,#744SLTO
         BAL   R14,DF
*
* --- R744SLMN ---------------------------------------------------
         L     R01,R744SLMN
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLMN,EDWORK+8
*
* --- R744SLMX ---------------------------------------------------
         L     R01,R744SLMX
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SLMX,EDWORK+8
*
* --- R744SDTO ---------------------------------------------------
         MVC   WKFP(8),R744SDTO
         LA    R01,WKFP
         LA    R02,#744SDTO
         BAL   R14,DF
*
* --- R744SDMN ---------------------------------------------------
         L     R01,R744SDMN
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SDMN,EDWORK+8
*
* --- R744SDMX ---------------------------------------------------
         L     R01,R744SDMX
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SDMX,EDWORK+8
*
* --- R744SCN ----------------------------------------------------
         MVC   WKFP(8),R744SCN
         LA    R01,WKFP
         LA    R02,#744SCN
         BAL   R14,DF
*
* --- R744SFCN ---------------------------------------------------
         MVC   WKFP(8),R744SFCN
         LA    R01,WKFP
         LA    R02,#744SFCN
         BAL   R14,DF
*
* --- R744SSIZ ---------------------------------------------------
         L     R01,R744SSIZ
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SSIZ,EDWORK+8
*
* --- R744SMAS ---------------------------------------------------
         L     R01,R744SMAS
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SMAS,EDWORK+8
*
* --- R744SMIS ---------------------------------------------------
         L     R01,R744SMIS
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SMIS,EDWORK+8
*
* --- R744SDEC ---------------------------------------------------
         L     R01,R744SDEC
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SDEC,EDWORK+8
*
* --- R744SDEL ---------------------------------------------------
         L     R01,R744SDEL
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SDEL,EDWORK+8
*
* --- R744SNLH ---------------------------------------------------
         L     R01,R744SNLH
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SNLH,EDWORK+8
*
* --- R744SMAE and R744SCUE --------------------------------------
         CLI   R744STYP,X'01'            List Structure
         BE    E744STR_SCUE_CALC
         CLI   R744STYP,X'02'            List Structure
         BE    E744STR_SCUE_CALC
*
         MVC   #744SMAE,=CL8'     N/A'
         MVC   #744SCUE,=CL8'     N/A'
         B     E744STR_SCUX
E744STR_SCUE_CALC EQU *
         L     R01,R744SCUE              R744SLEM
         CL    R01,=F'100000000'
         BNL   E744STR_SCUEOV
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SCUE,EDWORK+8
         B     E744STR_SCUEX
E744STR_SCUEOV EQU *
         MVC   #744SCUE,=CL8'OVER.'
E744STR_SCUEX EQU *
*
         L     R01,R744SMAE              R744SLEL
         CL    R01,=F'100000000'
         BNL   E744STR_SMAEOV
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SMAE,EDWORK+8
         B     E744STR_SMAEX
E744STR_SMAEOV EQU *
         MVC   #744SMAE,=CL8'OVER.'
E744STR_SMAEX EQU *
         L     R01,R744SMAE              R744SCUE
         LTR   R01,R01                   if 0 ?
         BZ    E744STR_SCUEX
         XR    R06,R06
         L     R07,R744SCUE              R07 <- R744SCUE*1000/R744SMAE
         M     R06,=F'1000'
         DR    R06,R01
         LR    R15,R07                   R15 <- Use% * 10
         XR    R06,R06
         D     R06,=F'10'                R07 <- Use% /10 *10
         MH    R07,=H'10'
         SR    R15,R07
         CL    R15,=F'5'                 If last figure < 5
         BL    E744STR_SCUEP_1
         XR    R06,R06
         D     R06,=F'10'
         LA    R07,1(R07)
         B     E744STR_SCUEP_2
E744STR_SCUEP_1 EQU *
         XR    R06,R06
         D     R06,=F'10'
E744STR_SCUEP_2 EQU *
         CVD   R07,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744SCUP,EDWORK+13
         MVI   #744SCUZ,C'%'
E744STR_SCUX  EQU *
*
* ---------------------------------------------------------------------
*--- record type 74 - 4 cache data section ----------------------------
* ---------------------------------------------------------------------
         CLI   R744STYP,X'04'            Cache Structure
         BE    E744STR_CACHE
*
         B     E744STR_CACHEX
E744STR_CACHE EQU *
* --- R744CDSI and R744CDNE --------------------------------------
         LH    R01,R744CDSI              cache data section index
         BCTR  R01,0
         MH    R01,SMF744CL              cache data section length
         L     R02,SMF744CO              cache data section offset
         LA    R01,0(R01,R02)
         LA    R11,RECAREA(R01)
         USING R744CACH,R11
*
* --- R744CRHC ---------------------------------------------------
         MVC   WKFP(8),R744CRHC
         LA    R01,WKFP
         LA    R02,#744CRHC
         BAL   R14,DF
*
* --- R744CRMD ---------------------------------------------------
         MVC   WKFP(8),R744CRMD
         LA    R01,WKFP
         LA    R02,#744CRMD
         BAL   R14,DF
*
* --- R744CRMA ---------------------------------------------------
         MVC   WKFP(8),R744CRMA
         LA    R01,WKFP
         LA    R02,#744CRMA
         BAL   R14,DF
*
* --- R744CRMN ---------------------------------------------------
         MVC   WKFP(8),R744CRMN
         LA    R01,WKFP
         LA    R02,#744CRMN
         BAL   R14,DF
*
* --- R744CRMT ---------------------------------------------------
         MVC   WKFP(8),R744CRMT
         LA    R01,WKFP
         LA    R02,#744CRMT
         BAL   R14,DF
*
* --- R744CWH0 ---------------------------------------------------
         MVC   WKFP(8),R744CWH0
         LA    R01,WKFP
         LA    R02,#744CWH0
         BAL   R14,DF
*
* --- R744CWH1 ---------------------------------------------------
         MVC   WKFP(8),R744CWH1
         LA    R01,WKFP
         LA    R02,#744CWH1
         BAL   R14,DF
*
* --- R744CWH? ( R744CWH0 + R744CWH1 ) ---------------------------
         LD    FR06,R744CWH0
         AD    FR06,R744CWH1
         STD   FR06,WKFP
         LA    R01,WKFP
         LA    R02,#744CWHX
         BAL   R14,DF
*
* --- R744CWMN ---------------------------------------------------
         MVC   WKFP(8),R744CWMN
         LA    R01,WKFP
         LA    R02,#744CWMN
         BAL   R14,DF
*
* --- R744CWMI ---------------------------------------------------
         MVC   WKFP(8),R744CWMI
         LA    R01,WKFP
         LA    R02,#744CWMI
         BAL   R14,DF
*
* --- R744CWMT ---------------------------------------------------
         MVC   WKFP(8),R744CWMT
         LA    R01,WKFP
         LA    R02,#744CWMT
         BAL   R14,DF
*
* --- R744CDER ---------------------------------------------------
         MVC   WKFP(8),R744CDER
         LA    R01,WKFP
         LA    R02,#744CDER
         BAL   R14,DF
*
* --- R744CDTR ---------------------------------------------------
         MVC   WKFP(8),R744CDTR
         LA    R01,WKFP
         LA    R02,#744CDTR
         BAL   R14,DF
*
* --- R744CXDR ---------------------------------------------------
         MVC   WKFP(8),R744CXDR
         LA    R01,WKFP
         LA    R02,#744CXDR
         BAL   R14,DF
*
* --- R744CXFW ---------------------------------------------------
         MVC   WKFP(8),R744CXFW
         LA    R01,WKFP
         LA    R02,#744CXFW
         BAL   R14,DF
*
* --- R744CXNI ---------------------------------------------------
         MVC   WKFP(8),R744CXNI
         LA    R01,WKFP
         LA    R02,#744CXNI
         BAL   R14,DF
*
* --- R744CXCI ---------------------------------------------------
         MVC   WKFP(8),R744CXCI
         LA    R01,WKFP
         LA    R02,#744CXCI
         BAL   R14,DF
*
* --- XI'S -------------------------------------------------------
         LD    FR06,R744CXDR
         AD    FR06,R744CXFW
         AD    FR06,R744CXNI
         AD    FR06,R744CXCI
         STD   FR06,WKFP
         LA    R01,WKFP
         LA    R02,#744XIS
         BAL   R14,DF
*
* --- R744CCOC ---------------------------------------------------
         MVC   WKFP(8),R744CCOC
         LA    R01,WKFP
         LA    R02,#744CCOC
         BAL   R14,DF
*
* --- R744CRSM ---------------------------------------------------
         MVC   WKFP(8),R744CRSM
         LA    R01,WKFP
         LA    R02,#744CRSM
         BAL   R14,DF
*
* --- R744CTSF ---------------------------------------------------
         MVC   WKFP(8),R744CTSF
         LA    R01,WKFP
         LA    R02,#744CTSF
         BAL   R14,DF
*
* --- R744CDEC ---------------------------------------------------
         L     R01,R744CDEC
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744CDEC,EDWORK+8
*
* --- R744CDAC ---------------------------------------------------
         L     R01,R744CDAC
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744CDAC,EDWORK+8
*
* --- R744CTCC ---------------------------------------------------
         L     R01,R744CTCC
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744CTCC,EDWORK+8
*
* --- R744CDTA ---------------------------------------------------
         L     R01,R744CDTA
         CVD   R01,PK_AREA
         MVC   EDWORK,EDMASK
         ED    EDWORK,PK_AREA
         MVC   #744CDTA,EDWORK+8
*
* --- R744CRLC ---------------------------------------------------
         MVC   WKFP(8),R744CRLC
         LA    R01,WKFP
         LA    R02,#744CRLC
         BAL   R14,DF
*
* --- R744CPRL ---------------------------------------------------
         MVC   WKFP(8),R744CPRL
         LA    R01,WKFP
         LA    R02,#744CPRL
         BAL   R14,DF
*
* --- R744CXRL ---------------------------------------------------
         MVC   WKFP(8),R744CXRL
         LA    R01,WKFP
         LA    R02,#744CXRL
         BAL   R14,DF
*
* --- R744CWUC ---------------------------------------------------
         MVC   WKFP(8),R744CWUC
         LA    R01,WKFP
         LA    R02,#744CWUC
         BAL   R14,DF
E744STR_CACHEX EQU *
*
         PUT   TYPE74S,#74S
E744STR_NEXT EQU *
         LH    R01,SMF744SL
         LA    R10,0(R10,R01)
         BCT   R12,E744STR
EDIT744_STRX EQU *
         B     EDIT744_STRR
         DROP  R10
* --- decimal to fixed -------------------------------------
DF       EQU   *
* R01 <- from
* R02 <- to
         XR    R00,R00                   clear
         IC    R00,0(R01)                load index
         LTR   R00,R00                   if all zero
         BZ    DF_NOFD                     not floating decimal
         CH    R00,=H'64'                less 1
         BL    DF_LOW
         SH    R00,=H'64'
         SLL   R00,2
         LA    R15,56
         SR    R15,R00
         LM    R00,R01,0(R01)
         N     R00,=X'00FFFFFF'
* unnnn... how should I do coding.
DF_LOP1  EQU   *
         SRDA  R00,1
         BCT   R15,DF_LOP1
*        EX    R15,EXSHIFT
*        STC   R02,*+7
*        SRDA  R00,0
         CVD   R01,DF_PKA
         MVC   DF_EDW,DF_EDM
         ED    DF_EDW,DF_PKA
         MVC   0(8,R02),DF_EDW+8
         BR    R14
DF_NOFD  EQU   *
         MVC   0(8,R02),=CL8'       0'
         BR    R14
DF_LOW   EQU   *
         MVC   MSG#0000(09),=CL09'DF ERROR:'
*        CALL  @HC,((R01),MSG#0000+9,8)
         UNPK  EBCDIC_A(9),0(5,R01)
         UNPK  EBCDIC_A+8(9),4(5,R01)
         TR    EBCDIC_A(16),=C'0123456789ABCDEF'-X'F0'
         MVC   MSG#0000+9(8),EBCDIC_A
         MVC   MSG#0000+18(8),EBCDIC_A+8
*
         WTO   TEXT=MSG#A000,MF=(E,WTOINFO)
         ABEND 1,DUMP
EXSHIFT  SRDA  R00,0
         DS    0D
DF_PKA   DS    PL16
*                    6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1
DF_EDM   DC    XL16'40202020202020202020202020202120'
DF_EDW   DS    XL16
WKFP     DS    XL8
*
*** END OF PROCESS ***********************************************
@BYE     EQU   *
         CLOSE (INDCB,,TYPE74)
         L     R13,SAVEAREA+4
         RETURN (14,12),RC=0
*** DCB **********************************************************
INDCB    DCB   DSORG=PS,MACRF=(GM),DDNAME=INDD,                        *
               EODAD=@BYE
TYPE74   DCB   DSORG=PS,MACRF=(PM),DDNAME=TYPE74
TYPE74S  DCB   DSORG=PS,MACRF=(PM),DDNAME=TYPE74S
TYPE72X  DCB   DSORG=PS,MACRF=(PM),DDNAME=TYPE72X
TYPE72P  DCB   DSORG=PS,MACRF=(PM),DDNAME=TYPE72P
*** DEFINE STORAGE ***********************************************
         DS    0F
SAVEAREA DS    18F                       Savearea
* --- month translation table ---
*                   1       2       3       4       5       6
*                   7       8       9      10      11      12
MONTH1   DC    FL1'31',FL1'28',FL1'31',FL1'30',FL1'31',FL1'30'
         DC    FL1'31',FL1'31',FL1'30',FL1'31',FL1'30',FL1'31'
MONTH2   DC    FL1'31',FL1'29',FL1'31',FL1'30',FL1'31',FL1'30'
         DC    FL1'31',FL1'31',FL1'30',FL1'31',FL1'30',FL1'31'
MONTH    DC    FL1'00',FL1'00',FL1'00',FL1'00',FL1'00',FL1'00'
         DC    FL1'00',FL1'00',FL1'00',FL1'00',FL1'00',FL1'00'
         DS    0D
UPK_AREA DS    XL16                      un-pack area
         DS    XL16                      un-pack area
EBCDIC_A DS    CL32                      ebcdic area
PK_AREA  DS    PL16                      pack work area
PK_AREA2 DS    PL16
*                                1
*                    6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1
EDMASK   DC    XL16'40202020202020202020202020202120'
EDMASK32 DS    0XL32
         DC    XL16'40202020202020202020202020202020'
         DC    XL16'20202020202020202020202020202120'
EDMASK2  DC    XL16'40202020202020202020202020202020'
EDM100   DC    XL17'40202020202020202020202021204B2020'
EDW100   DS    XL17
EDM101   DC    XL17'4020202020202020202021204B20202020'
EDW101   DS    XL17
EDWORK   DS    XL16
EDWORK2  DS    XL32
*
WK#D1    DS    0D
WK#DF1   DS    F
WK#DF2   DS    F
WK#F1    DS    F
WK#F2    DS    F
WK#H1    DS    H
* --- MVC ---
PARMMVC  MVC   PARMWA(0),2(R01)
EXCLR    MVC   1(0,R02),0(R02)
* --- parameter ---
PARMWA   DS    CL100
STRNAME  DS    CL100
CFNAME   DS    CL100
RTNAME   DS    CL100
PTHNAME  DS    CL100
*
* --- R744 work area ---
#H74DAT  DS    XL10                      RMF Section Start Date
#H74IST  DS    CL08'HH.MM.SS'            RMF Section Start Time
#H74INT  DS    F                         RMF Section Interval Sec
#H74SARC DS    F                         R744SARC
#H74SSRC DS    F                         R744SSRC
#H74SQRC DS    F                         R744SQRC
#WK#XI   DS    F                         R744SQRC
#WK#WRIT DS    F                         R744SQRC
#CF#CPUT DS    D                         Total CPU time
#CF#USET DS    D                         Total CPU used time
         DS    0F
* --- WTO messages ---
WTOINFO  WTO   TEXT=,             WTO parameter list                   X
               DESC=(6),          descriptor code 6 is Job Status      X
               MF=L
MSG#A000 DC    AL2(L'MSG#0000)
MSG#0000 DC    CL80'R74EDIT PARM:'
*
*--- Title - CF ------------------------------------------------------
#74TTL   DS    0CL256
         DC    CL10'DATE'               Start Date yyyy.mm.dd
         DC    CL1','
         DC    CL8'TIME'                 Start Time
         DC    CL1','
         DC    CL4'INTV'                 Interval
         DC    CL1','
         DC    CL8'CF-NAME'              CF Name
         DC    CL1','
         DC    CL8'SYSTEM'               System Name
         DC    CL1','
         DC    CL4'FLAG'                 Status Flag
         DC    CL1','
         DC    CL10'CPU%'                CPU Used%
         DC    CL1','
         DC    CL17'CPU USED TIME(HEX)'  CPU Used Time
         DC    CL1','
         DC    CL17'TOTAL TIME(HEX)'     CPU Un-Used Time
         DC    CL1','
         DC    CL4'LINK'                 CF Link#
         DC    CL1','
         DC    CL8'FAIL'                 Fail#
         DC    CL1','
         DC    CL4'SUBC'                 Deinfe sub-channel
         DC    CL1','
         DC    CL4'USED'                 Used sub-channel
         DC    CL1','
         DC    CL4'USFL'                 useful sub-channel
         DC    CL1','
         DC    CL8'CONTAINT'             containtion
         DC    CL1','
         DC    CL8'REQUEST'              total request
         DC    CL1','
         DC    CL8'FAIL REQ'             fail count
         DC    CL1','
         DC    CL8'FAIL TME'             fail service time
         DC    CL1','
         DC    CL8'FAIL T*2'
         DC    CL1','
         DC    CL8'R744FCTM'
         DC    CL1','
         DC    CL8'R744FCSQ'
         DC    CL256' '
*--- CF output area --------------------------------------------------
#74      DS    0CL256
#74CDAT  DS    0CL10                     Start Date yyyy.mm.dd
#74CDATY DS    CL4                       Start Date yyyy
#74CDAT1 DS    CL1                       Start Date
#74CDATM DS    CL2                       Start Date mm
#74CDAT2 DS    CL1                       Start Date
#74CDATD DS    CL2                       Start Date dd
#101     DS    CL1
#74CIST  DS    CL8                       Start Time
#102     DS    CL1
#74CINT  DS    CL4                       Interval
#103     DS    CL1
#744FNAM DS    CL8                       CF Name
#107     DS    CL1
#744FSYS DS    CL8                       System Name
#108     DS    CL1
#744FFLG DS    CL4                       Status Flag
#109     DS    CL1
#74PCT   DS    CL10                      CPU Used%
#104     DS    CL1
#74USE2  DS    CL17                      CPU Used Time
#105     DS    CL1
#74UNU2  DS    CL17                      CPU Un-Used Time
#106     DS    CL1
*74UNU3  DS    CL17                      CPU Un-Used Time
*106A    DS    CL1
#744FPAM DS    CL4                       CF Link#
#110     DS    CL1
#744FPBC DS    CL8                       Fail#
#111     DS    CL1
#744FSCG DS    CL4                       Deinfe sub-channel
#112     DS    CL1
#744FSCU DS    CL4                       Used sub-channel
#113     DS    CL1
#744FSCL DS    CL4                       useful sub-channel
#114     DS    CL1
#744FSCC DS    CL8                       containtion
#115     DS    CL1
#744FTOR DS    CL8                       total request
#116     DS    CL1
#744FAIL DS    CL8                       fail count
#117     DS    CL1
#744FTIM DS    CL8                       fail service time
#118     DS    CL1
#744FSQU DS    CL8                       useful sub-channel
#119     DS    CL1
#744FCTM DS    CL8                       useful sub-channel
#120     DS    CL1
#744FCSQ DS    CL8                       useful sub-channel
         DS    CL1
         DS    CL156
*--- Title - Structure -----------------------------------------------
#74STTL  DS    0CL1024
         DC    CL10'DATE'                Start Date yyyy.mm.dd
         DC    CL1','
         DC    CL8'TIME'                 Start Time
         DC    CL1','
         DC    CL4'INTV'                 Interval
         DC    CL1','
         DC    CL16'R744SNAM'            Structure Name
         DC    CL1','
         DC    CL8'STYP,'                          Type
         DC    CL1','
         DC    CL8'R744SLEM'             R744SLEM
         DC    CL1','
         DC    CL8'R744SLEL'             R744SLEL
         DC    CL1','
         DC    CL3' '                    R744SLEM / R744SLEL * 100
         DC    CL1'%'
         DC    CL1','
         DC    CL8'R744SLTM'             R744SLTM
         DC    CL1','
         DC    CL8'R744SLTL'             R744SLTL
         DC    CL1','
         DC    CL3' '                    R744SLTM / R755SLEL * 100
         DC    CL1'%'
         DC    CL1','
         DC    CL8'R744SSTA'             R744SSTA
         DC    CL1','
         DC    CL8'R744STRC'             R744STRC
         DC    CL1','
         DC    CL8'R744STAC'             R744STAC
         DC    CL1','
         DC    CL8'R744SARC'             R744SARC
         DC    CL1','
         DC    CL20'R744SATM'            R744SATM
         DC    CL1','
         DC    CL10'SATM/SARC'           R744SATM
         DC    CL1','
         DC    CL20'R744SASQ'            R744SASQ
         DC    CL1','
         DC    CL8'R744SSRC'             R744SSRC
         DC    CL1','
         DC    CL20'R744SSTM'            R744SSTM
         DC    CL1','
         DC    CL10'SSTM/SSRC'           R744SSTM
         DC    CL1','
         DC    CL20'R744SSSQ'            R744SSSQ
         DC    CL1','
         DC    CL8'R744SQRC'             R744SQRC
         DC    CL1','
         DC    CL20'R744SQTM'            R744SQTM
         DC    CL1','
         DC    CL10'SQTM/SQRC'           R744SQTM
         DC    CL1','
         DC    CL20'R744SQSQ'            R744SQSQ
         DC    CL1','
         DC    CL8'R744SDRC'             R744SDRC
         DC    CL1','
         DC    CL20'R744SDTM'            R744SDTM
         DC    CL1','
         DC    CL20'R744SDSQ'            R744SDSQ
         DC    CL1','
         DC    CL8'R744SDMP'             R744SDMP
         DC    CL1','
         DC    CL8'R744SHTO'             R744SHTO
         DC    CL1','
         DC    CL8'R744SHMN'             R744SHMN
         DC    CL1','
         DC    CL8'R744SHMX'             R744SHMX
         DC    CL1','
         DC    CL8'R744SLTO'             R744SLTO
         DC    CL1','
         DC    CL8'R744SLMN'             R744SLMN
         DC    CL1','
         DC    CL8'R744SLMX'             R744SLMX
         DC    CL1','
         DC    CL8'R744SDTO'             R744SDTO
         DC    CL1','
         DC    CL8'R744SDMN'             R744SDMN
         DC    CL1','
         DC    CL8'R744SDMX'             R744SDMX
         DC    CL1','
         DC    CL8'R744SCN'              R744SCN
         DC    CL1','
         DC    CL8'R744SFCN'             R744SFCN
         DC    CL1','
         DC    CL8'R744SSIZ'             R744SSIZ
         DC    CL1','
         DC    CL8'R744SMAS'             R744SMAS
         DC    CL1','
         DC    CL8'R744SMIS'             R744SMIS
         DC    CL1','
         DC    CL8'R744SDEC'             R744SDEC
         DC    CL1','
         DC    CL8'R744SDEL'             R744SDEL
         DC    CL1','
         DC    CL8'R744SNLH'             R744SNLH
         DC    CL1','
         DC    CL8'R744SMAE'             R744SMAE
         DC    CL1','
         DC    CL8'R744SCUE'             R744SCUE
         DC    CL1','
         DC    CL4'   %'
         DC    CL1','
         DC    CL8'R744CRHC'             R744CRHC
         DC    CL1','
         DC    CL8'R744CRMD'             R744CRMD
         DC    CL1','
         DC    CL8'R744CRMA'             R744CRMA
         DC    CL1','
         DC    CL8'R744CRMN'             R744CRMN
         DC    CL1','
         DC    CL8'R744CRMT'             R744CRMT
         DC    CL1','
         DC    CL8'R744CWH0'             R744CWH0
         DC    CL1','
         DC    CL8'R744CWH1'             R744CWH1
         DC    CL1','
         DC    CL8'R744CWH?'             R744CWH0 + R744CWH1
         DC    CL1','
         DC    CL8'R744CWMN'             R744CWMN
         DC    CL1','
         DC    CL8'R744CWMI'             R744CWMI
         DC    CL1','
         DC    CL8'R744CWMT'             R744CWMT
         DC    CL1','
         DC    CL8'R744CDER'             R744CDER
         DC    CL1','
         DC    CL8'R744CDTR'             R744CDTR
         DC    CL1','
         DC    CL8'R744CXDR'             R744CXDR
         DC    CL1','
         DC    CL8'R744CXFW'             R744CXFW
         DC    CL1','
         DC    CL8'R744CXNI'             R744CXNI
         DC    CL1','
         DC    CL8'R744CXCI'             R744CXCI
         DC    CL1','
         DC    CL8'XI''S'                CXDR + XCFW + XCNI + XCCI
         DC    CL1','
         DC    CL8'R744CCOC'             R744CCOC
         DC    CL1','
         DC    CL8'R744CRSM'             R744CRSM
         DC    CL1','
         DC    CL8'R744CTSF'             R744CTSF
         DC    CL1','
         DC    CL8'R744CDEC'             R744CDEC
         DC    CL1','
         DC    CL8'R744CDAC'             R744CDAC
         DC    CL1','
         DC    CL8'R744CTCC'             R744CTCC
         DC    CL1','
         DC    CL8'R744CDTA'             R744CDTA
         DC    CL1','
         DC    CL8'R744CRLC'             R744CRLC
         DC    CL1','
         DC    CL8'R744CPRL'             R744CPRL
         DC    CL1','
         DC    CL8'R744CXRL'             R744CXRL
         DC    CL1','
         DC    CL8'R744CWUC'             R744CWUC
         DC    256CL1' '
*--- Structure output area -------------------------------------------
#74S     DS    0CL1024
#74SDAT  DS    0CL10                     Start Date yyyy.mm.dd
#74SDATY DS    CL4                       Start Date yyyy
#74SDAT1 DS    CL1                       Start Date
#74SDATM DS    CL2                       Start Date mm
#74SDAT2 DS    CL1                       Start Date
#74SDATD DS    CL2                       Start Date dd
#002A    DS    CL1
#74SIST  DS    CL8                       Start Time
#002     DS    CL1
#74SINT  DS    CL4                       Interval
#003     DS    CL1
#744SNAM DS    CL16                      Structure Name
#004     DS    CL1
#744STYP DS    CL2                                 Type
#005     DS    CL1
#744STYC DS    CL5                                 Type
#006     DS    CL1
*744LTOT DS    CL8                       lst/dir entries tot
*006A    DS    CL1                (LIST:SLEL,LOCK:SLEL,CACHE:SDEC)
*744LCUR DS    CL8                       lst/dir entries cur
*006B    DS    CL1                (LIST:SLEM,LOCK:SLEM,CACHE:CDEC)
*744DTOT DS    CL8                       data element tot
*006C    DS    CL1                (LIST:SMAE,LOCK:????,CACHE:SDEL)
*744DCUR DS    CL8                       data element cur
*006D    DS    CL1                (LIST:SCUE,LOCK:????,CACHE:CDAC)
*744OTOT DS    CL8                       lock entries tot
*006E    DS    CL1                (LIST:N/A ,LOCK:SLTL,CACHE:N/A )
*744OCUR DS    CL8                       lock entries cur
*006F    DS    CL1                (LIST:N/A ,LOCK:SLTM,CACHE:N/A )
#744SLEM DS    CL8                       R744SLEM
#744SLE@ DS    CL1'/'
#744SLEL DS    CL8                       R744SLEL
#007     DS    CL1
#744SLEP DS    CL3                       R744SLEM / R744SLEL * 100
#744SLEZ DS    CL1'%'
#008     DS    CL1
#744SLTM DS    CL8                       R744SLTM
#744SLT@ DS    CL1'/'
#744SLTL DS    CL8                       R744SLTL
#009     DS    CL1
#744SLTP DS    CL3                       R744SLTM / R755SLEL * 100
#744SLTZ DS    CL1'%'
#010     DS    CL1
#744SSTA DS    CL8                       R744SSTA
#011     DS    CL1
#744STRC DS    CL8                       R744STRC
#012     DS    CL1
#744STAC DS    CL8                       R744STAC
#013     DS    CL1
#744SARC DS    CL8                       R744SARC
#014     DS    CL1
#744SATM DS    CL20                      R744SATM
#015     DS    CL1
#744SATMA DS   CL10                      R744SATM
#015A    DS    CL1
#744SASQ DS    CL20                      R744SASQ
#016     DS    CL1
#744SSRC DS    CL8                       R744SSRC
#017     DS    CL1
#744SSTM DS    CL20                      R744SSTM
#018     DS    CL1
#744SSTMA DS   CL10                      R744SSTM
#018A    DS    CL1
#744SSSQ DS    CL20                      R744SSSQ
#019     DS    CL1
#744SQRC DS    CL8                       R744SQRC
#020     DS    CL1
#744SQTM DS    CL20                      R744SQTM
#021     DS    CL1
#744SQTMA DS   CL10                      R744SQTM
#021A    DS    CL1
#744SQSQ DS    CL20                      R744SQSQ
#022     DS    CL1
#744SDRC DS    CL8                       R744SDRC
#023     DS    CL1
#744SDTM DS    CL20                      R744SDTM
#024     DS    CL1
#744SDSQ DS    CL20                      R744SDSQ
#025     DS    CL1
#744SDMP DS    CL8                       R744SDMP
#026     DS    CL1
#744SHTO DS    CL8                       R744SHTO
#027     DS    CL1
#744SHMN DS    CL8                       R744SHMN
#028     DS    CL1
#744SHMX DS    CL8                       R744SHMX
#029     DS    CL1
#744SLTO DS    CL8                       R744SLTO
#030     DS    CL1
#744SLMN DS    CL8                       R744SLMN
#031     DS    CL1
#744SLMX DS    CL8                       R744SLMX
#032     DS    CL1
#744SDTO DS    CL8                       R744SDTO
#033     DS    CL1
#744SDMN DS    CL8                       R744SDMN
#034     DS    CL1
#744SDMX DS    CL8                       R744SDMX
#035     DS    CL1
#744SCN  DS    CL8                       R744SCN
#036     DS    CL1
#744SFCN DS    CL8                       R744SFCN
#037     DS    CL1
#744SSIZ DS    CL8                       R744SSIZ
#038     DS    CL1
#744SMAS DS    CL8                       R744SMAS
#039     DS    CL1
#744SMIS DS    CL8                       R744SMIS
#040     DS    CL1
#744SDEC DS    CL8                       R744SDEC
#041     DS    CL1
#744SDEL DS    CL8                       R744SDEL
#042     DS    CL1
#744SNLH DS    CL8                       R744SNLH
#043     DS    CL1
#744SMAE DS    CL8                       R744SMAE
#044     DS    CL1
#744SCUE DS    CL8                       R744SCUE
#045     DS    CL1
#744SCUP DS    CL3
#744SCUZ DS    CL1
#045A    DS    CL1
#744CRHC DS    CL8                       R744CRHC
#046     DS    CL1
#744CRMD DS    CL8                       R744CRMD
#047     DS    CL1
#744CRMA DS    CL8                       R744CRMA
#048     DS    CL1
#744CRMN DS    CL8                       R744CRMN
#049     DS    CL1
#744CRMT DS    CL8                       R744CRMT
#050     DS    CL1
#744CWH0 DS    CL8                       R744CWH0
#051     DS    CL1
#744CWH1 DS    CL8                       R744CWH1
#052     DS    CL1
#744CWHX DS    CL8                       R744CWH1
#052A    DS    CL1
#744CWMN DS    CL8                       R744CWMN
#053     DS    CL1
#744CWMI DS    CL8                       R744CWMI
#054     DS    CL1
#744CWMT DS    CL8                       R744CWMT
#055     DS    CL1
#744CDER DS    CL8                       R744CDER
#056     DS    CL1
#744CDTR DS    CL8                       R744CDTR
#057     DS    CL1
#744CXDR DS    CL8                       R744CXDR
#058     DS    CL1
#744CXFW DS    CL8                       R744CXFW
#059     DS    CL1
#744CXNI DS    CL8                       R744CXNI
#060     DS    CL1
#744CXCI DS    CL8                       R744CXCI
#061     DS    CL1
#744XIS  DS    CL8                       XI'S
#061A    DS    CL1
#744CCOC DS    CL8                       R744CCOC
#062     DS    CL1
#744CRSM DS    CL8                       R744CRSM
#063     DS    CL1
#744CTSF DS    CL8                       R744CTSF
#064     DS    CL1
#744CDEC DS    CL8                       R744CDEC
#065     DS    CL1
#744CDAC DS    CL8                       R744CDAC
#066     DS    CL1
#744CTCC DS    CL8                       R744CTCC
#067     DS    CL1
#744CDTA DS    CL8                       R744CDTA
#068     DS    CL1
#744CRLC DS    CL8                       R744CRLC
#069     DS    CL1
#744CPRL DS    CL8                       R744CPRL
#070     DS    CL1
#744CXRL DS    CL8                       R744CXRL
#071     DS    CL1
#744CWUC DS    CL8                       R744CWUC
         DS    256C
*--- Title - XCF -----------------------------------------------------
#72XTTL  DS    0CL256
         DC    CL10'DATE'               Start Date yyyy.mm.dd
         DC    CL1','
         DC    CL8'TIME'                 Start Time
         DC    CL1','
         DC    CL4'INTV'                 Interval
         DC    CL1','
         DC    CL8'SYSTEM'               System Name
         DC    CL1','
         DC    CL8'TRN CLAS'             Transport Class
         DC    CL1','
         DC    CL8'R742SPTH'             Available Path
         DC    CL1','
         DC    CL8'R742SBSY'             Busy
         DC    CL1','
         DC    CL8'R742SNOP'             no path available
         DC    CL1','
         DC    CL8'R742SMXB'             maxmam message buffer space
         DC    CL1','
         DC    CL8'R742SBIG'             big message
         DC    CL1','
         DC    CL8'R742SFIT'             fit message
         DC    CL1','
         DC    CL8'R742SSML'             small message
         DC    CL1','
         DC    CL8'R742SOVR'             over message
         DC    CL1','
         DC    CL8'R742STCL'             message length
         DC    256CL1' '
*---------------------------------------------------------------------
#72PTTL  DS    0CL512
         DC    CL10'DATE'               Start Date yyyy.mm.dd
         DC    CL1','
         DC    CL8'TIME'                 Start Time
         DC    CL1','
         DC    CL4'INTV'                 Interval
         DC    CL1','
         DC    CL8'SYSTEM'               System Name
         DC    CL1','
         DC    CL8'I/O'                  inbound/outbound
         DC    CL1','
         DC    CL8'TRA CLAS'             Transport Class
         DC    CL1','
         DC    CL3'TYP'                  CTC/Structure
         DC    CL1','
         DC    CL16'STRUCTURE NAME'      Structure Name
         DC    CL1','
         DC    CL4'FROM'                 From Device
         DC    CL1','
         DC    CL4'TO'                   To Device
         DC    CL1','
         DC    CL8'FROM'                 partner system ( from )
         DC    CL1','
         DC    CL8'TO'                   partner system ( to )
         DC    CL1','
         DC    CL8'R742PQLN'             outbound hold
         DC    CL1','
         DC    CL8'R742PSIG'             request
         DC    CL1','
         DC    CL8'R742PSUS'             avail
         DC    CL1','
         DC    CL8'R742PAPP'             busy
         DC    CL1','
         DC    CL8'R742PRST'             retry
         DC    CL1','
         DC    CL8'R742PRET'             max retries
         DC    CL1','
         DC    CL8'R742PMXM'             buffer space
         DC    CL1','
         DC    CL8'R742PIBR'             inbound reject
         DC    CL1','
         DC    CL8'R742PSTA'             status
         DC    CL1','
         DC    CL8'R742PSTF'             flag
         DC    256C' '
*--- XCF output area -------------------------------------------------
#72X     DS    0CL256
#72XDAT  DS    0CL10                     Start Date yyyy.mm.dd
#72XDATY DS    CL4                       Start Date yyyy
#72XDAT1 DS    CL1                       Start Date
#72XDATM DS    CL2                       Start Date mm
#72XDAT2 DS    CL1                       Start Date
#72XDATD DS    CL2                       Start Date dd
#201     DS    CL1
#72XIST  DS    CL8                       Start Time
#202     DS    CL1
#72XINT  DS    CL4                       Interval
#203     DS    CL1
#742SNME DS    CL8                       System Name
#204     DS    CL1
#742STCN DS    CL8                       Transport Class
#205     DS    CL1
#742SPTH DS    CL8                       Available Path
#206     DS    CL1
#742SBSY DS    CL8                       Busy
#207     DS    CL1
#742SNOP DS    CL8                       no path available
#208     DS    CL1
#742SMXB DS    CL8                       maxmam message buffer space
#209     DS    CL1
#742SBIG DS    CL8                       big message
#210     DS    CL1
#742SFIT DS    CL8                       fit message
#211     DS    CL1
#742SSML DS    CL8                       small message
#212     DS    CL1
#742SOVR DS    CL8                       over message
#213     DS    CL1
#742STCL DS    CL8                       message length
         DS    256C
*--- XCF output area -------------------------------------------------
#72P     DS    0CL512
#72PDAT  DS    0CL10                     Start Date yyyy.mm.dd
#72PDATY DS    CL4                       Start Date yyyy
#72PDAT1 DS    CL1                       Start Date
#72PDATM DS    CL2                       Start Date mm
#72PDAT2 DS    CL1                       Start Date
#72PDATD DS    CL2                       Start Date dd
#301     DS    CL1
#72PIST  DS    CL8                       Start Time
#302     DS    CL1
#72PINT  DS    CL4                       Interval
#303     DS    CL1
#742PNME DS    CL8                       System Name
#304     DS    CL1
#742PDIR DS    CL8                       inbound/outbound
#305     DS    CL1
#742PTCN DS    CL8                       Transport Class
#306     DS    CL1
#742PTYP DS    CL3                       CTC/Structure
#307     DS    CL1
#742PSTR DS    CL16                      Structure Name
#308     DS    CL1
#742PODV DS    CL4                       From Device
#309     DS    CL1
#742PDEV DS    CL4                       To Device
#310     DS    CL1
#742PONAF DS   CL8                       from
#311     DS    CL1
#742PONAT DS   CL8                       to
#311A    DS    CL1
#742PQLN DS    CL8                       outbound hold
#312     DS    CL1
#742PSIG DS    CL8                       request
#313     DS    CL1
#742PSUS DS    CL8                       avail
#314     DS    CL1
#742PAPP DS    CL8                       used
#315     DS    CL1
#742PRST DS    CL8                       restart
#316     DS    CL1
#742PRET DS    CL8                       max retries
#317     DS    CL1
#742PMXM DS    CL8                       buffer space
#318     DS    CL1
#742PIBR DS    CL8                       inbound reject
#319     DS    CL1
#742PSTA DS    CL8                       status
#320     DS    CL1
#742PSTF DS    CL8                       flag
         DS    512C
* --- conmma ---------------------------------------------------------
PART     DC    A(#002),A(#003),A(#004),A(#006),A(#007),A(#008)
         DC    A(#009),A(#010),A(#011),A(#012),A(#013),A(#014),A(#015)
         DC    A(#016),A(#017),A(#018),A(#019),A(#020),A(#021),A(#022)
         DC    A(#023),A(#024),A(#025),A(#026),A(#027),A(#028),A(#029)
         DC    A(#030),A(#031),A(#032),A(#033),A(#034),A(#035),A(#036)
         DC    A(#037),A(#038),A(#039),A(#040),A(#041),A(#042),A(#043)
         DC    A(#044),A(#045),A(#046),A(#047),A(#048),A(#049),A(#050)
         DC    A(#051),A(#052),A(#053),A(#054),A(#055),A(#056),A(#057)
         DC    A(#058),A(#059),A(#060),A(#061),A(#062),A(#063),A(#064)
         DC    A(#065),A(#066),A(#067),A(#068),A(#069),A(#070),A(#071)
         DC    A(#002A),A(#744SLE@),A(#744SLT@),A(#005),A(#015A)
         DC    A(#018A),A(#021A),A(#061A),A(#052A),A(#045A)
*        DC    A(#006A),A(#006B),A(#006C),A(#006D),A(#006E),A(#006F)
         DC    X'FFFFFFFF'
PARTCF   DC    A(#101),A(#102),A(#103),A(#104),A(#105),A(#106)
         DC    A(#107),A(#108),A(#109),A(#110),A(#111),A(#112)
         DC    A(#113),A(#114),A(#115),A(#116),A(#117),A(#118)
         DC    A(#119),A(#120)
         DC    X'FFFFFFFF'
PARTX    DC    A(#201),A(#202),A(#203),A(#204),A(#205),A(#206)
         DC    A(#207),A(#208),A(#209),A(#210),A(#211),A(#212)
         DC    A(#213)
         DC    X'FFFFFFFF'
PARTP    DC    A(#301),A(#302),A(#303),A(#304),A(#305),A(#306)
         DC    A(#307),A(#308),A(#309),A(#310),A(#311),A(#312)
         DC    A(#313),A(#314),A(#315),A(#316),A(#317),A(#318)
         DC    A(#319),A(#320),A(#311A)
         DC    X'FFFFFFFF'
*--- literal origin --------------------------------------------------
         LTORG
         DS    0D
RECAREA  DS    32750C
         PRINT GEN
SMF74DST DSECT
         ERBSMF74
         PRINT NOGEN
*----------------------------------------------------------------------
*----------------------------------------------------------------------
*         CSECT
*         DC   C'<< Convert binnaries to hexa char >>'
*HCV      DC   CL6'v0r0m0'
*         DC   C' ) _ Kimu  // Compiled Date : &SYSDATE _ &SYSTIME '
*         PRINT NOGEN
*@HC      CSECT
*         SAVE  (14,12),T,*
*         BALR  R03,0
*         USING *,R03                       Base Reg. R03
*         ST    R13,HC_SA+4                 Save A(OLD Savearea)
*         LR    R12,R13
*         LA    R13,HC_SA
*         ST    R13,8(R12)                  Save A(NEW SaveArea)
** --- from characher ---
*         L     R07,0(R01)
** --- to character ---
*         L     R08,4(R01)
** --- convert length ---
*         L     R09,8(R01)
*@CO_HEX  EQU   *                               CONVERT HEX-CHARACTER
*         LA    R15,5
*@CO_HC   EQU   *
*         LTR   R09,R09
*         BZ    @CO_EXIT
*         BCT   R15,@CO_SKIP
**
*         MVI   0(R08),X'40'
*         LA    R08,1(R08)
*         LA    R15,4
*@CO_SKIP EQU   *
*         SR    R01,R01
*         IC    R01,0(R07)
*         SRL   R01,4
*         A     R01,A_TR
*         ICM   R02,B'0010',0(R01)
*         IC    R01,0(R07)
*         N     R01,=F'15'
*         A     R01,A_TR
*         ICM   R02,B'0001',0(R01)
*         STCM  R02,B'0011',0(R08)
*         LA    R07,1(R07)
*         LA    R08,2(R08)
*         BCTR  R09,0
*         B     @CO_HC
*@CO_EXIT EQU   *
*         L     R13,HC_SA+4
*         RETURN (14,12),RC=0
**
*HC_SA    DS    18F                               WORK SAVEAREA
*TR       DC    C'0123456789ABCDEF'               CHAR TRUNC TABLE
*A_TR     DC    A(TR)
*         LTORG
*----------------------------------------------------------------------
*----------------------------------------------------------------------
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
FR00     EQU   00
FR02     EQU   02
FR04     EQU   04
FR06     EQU   06
         END   SMFEDIT
/*
//SYSLIB   DD  DSN=SYS1.MACLIB,DISP=SHR
//         DD  DSN=SYS1.AMODGEN,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)
//SYSLIN   DD  DSN=&&LOADSET,DISP=(OLD,DELETE)
//         DD  DDNAME=SYSIN
//*YSLMOD  DD  DISP=(,PASS),UNIT=SYSDA,
//*        SPACE=(CYL,(2,1,2)),DSN=&GOSET(GO)
//SYSLMOD  DD  DSN=LOAD.MODULE(@SE#743),DISP=SHR
//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1
//SYSPRINT DD  SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509)
//SYSIN    DD  DUMMY
//DEL     EXEC PGM=IEFBR14
//DD1      DD  DSN=KIMUA.TYPE74,DISP=(OLD,DELETE),
//         UNIT=DASD,VOL=SER=VOLSER
//DD2      DD  DSN=KIMUA.TYPE74S,DISP=(OLD,DELETE),
//         UNIT=DASD,VOL=SER=VOLSER
//DD3      DD  DSN=KIMUA.TYPE72X,DISP=(OLD,DELETE),
//         UNIT=DASD,VOL=SER=VOLSER
//DD4      DD  DSN=KIMUA.TYPE72P,DISP=(OLD,DELETE),
//         UNIT=DASD,VOL=SER=VOLSER
//*********************
//*********************
//        EXEC PGM=*.L.SYSLMOD,COND=((9,LT,A),(9,LT,L))
//*        PARM='STRNAME(CKPTMVS1)'
//*       EXEC PGM=*.L.SYSLMOD,COND=((9,LT,A),(9,LT,L)),
//*        PARM='STRNAME(IXC_XCF1,IXC_XCF2,IXC_XCF3),CFNAME(CF01,CF02),
//*            ROUTE(OUTBOUND),PATH(IXC_XCF1)'
//*        PARM='STRNAME(IXC_XCF1),CFNAME(NONE)'
//STEPCAT  DD  DSN=USER.CATALOG,DISP=SHR
//*NDD     DD DSN=SMF74.MVS1.KINOU3,DISP=SHR,                           00034907
//*        UNIT=DASD,VOL=SER=VOLSER                                     00035002
//INDD     DD  DSN=KIMU.XCF2,DISP=SHR
//TYPE74   DD  DSN=KIMUA.TYPE74,DISP=(,CATLG),
//         UNIT=DASD,VOL=SER=VOLSER,SPACE=(CYL,(10,10),RLSE),
//         DCB=(RECFM=FB,LRECL=256,BLKSIZE=0)
//TYPE74S  DD  DSN=KIMUA.TYPE74S,DISP=(,CATLG),
//         UNIT=DASD,VOL=SER=VOLSER,SPACE=(CYL,(10,10),RLSE),
//         DCB=(RECFM=FB,LRECL=1024,BLKSIZE=0)
//TYPE72X  DD  DSN=KIMUA.TYPE72X,DISP=(,CATLG),
//         UNIT=DASD,VOL=SER=VOLSER,SPACE=(CYL,(10,10),RLSE),
//         DCB=(RECFM=FB,LRECL=256,BLKSIZE=0)
//TYPE72P  DD  DSN=KIMUA.TYPE72P,DISP=(,CATLG),
//         UNIT=DASD,VOL=SER=VOLSER,SPACE=(CYL,(10,10),RLSE),
//         DCB=(RECFM=FB,LRECL=512,BLKSIZE=0)
//
//
//STEP1   EXEC PGM=UFASMFDP                                             00000200
//STEPCAT  DD DSN=USER.CATALOG,DISP=SHR
//SYSPRINT DD SYSOUT=*                                                  00000300
//SYSOUT   DD SYSOUT=*                                                  00000400
//INDD     DD  DSN=SYS1.MAN1,DISP=SHR
//OUTDD    DD DSN=SMF74.MVS1.KINOU2,DISP=(,CATLG),                      00034907
//         UNIT=DASD,VOL=SER=VOLSER,SPACE=(CYL,(50,50),RLSE)            00035002
//SYSIN DD *                                                            00035100
 SID(MVS1)                                                              00035402
 INDD(INDD,OPTIONS(DUMP))                                               00035500
 OUTDD(OUTDD,TYPE(74))                                                  00035602
//*********************
