User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:acpd.001

Deck ACPD Part 001

9 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
02081  M00S01992.acpd    +++|#
02082  M00S01993.acpd    +++|*     THE CURRENT FILE IS DONE. CHECK IF THERE IS ANOTHER FILE
02083  M00S01994.acpd    +++|*     TO REPORT.
02084  M00S01995.acpd    +++|#
02085  M00S01996.acpd    +++|
02086  M00S01997.acpd    +++|      IF (P$ET LQ TM)                # ENDING TIME REACHED #
Line S00002 Modification History
M01 (Added by) acpd2
Seq #  *Modification Id* Act 
----------------------------+
02087  M01S00002.acpd2   +++|        OR (STAT EQ EOIC)            # EOI ENCOUNTERED ON FILE #
02088  M00S01998.acpd    +++|      THEN
02089  M00S01999.acpd    +++|        BEGIN
Line S02000 Modification History
M01 (Removed by) acpd2
Seq #  *Modification Id* Act 
----------------------------+
02090  M01S02000.acpd2   ---|        EDTM=TRUE;                   # ENDING TIME REACHED #
Line S00003 Modification History
M01 (Added by) acpd2
Seq #  *Modification Id* Act 
----------------------------+
02091  M01S00003.acpd2   +++|        EDTM=TRUE;                   # ENDING TIME REACHED OR EOI #
02092  M00S02001.acpd    +++|        END
02093  M00S02002.acpd    +++|
02094  M00S02003.acpd    +++|      ELSE                           # DONE WITH THE CURRENT FILE #
02095  M00S02004.acpd    +++|        BEGIN
02096  M00S02005.acpd    +++|        LSTM=TM;                     # TIME OF LAST RECORD #
02097  M00S02006.acpd    +++|        END
02098  M00S02007.acpd    +++|
02099  M00S02008.acpd    +++|      RETURN;
02100  M00S02009.acpd    +++|      END  # DATBLK #
02101  M00S02010.acpd    +++|
02102  M00S02011.acpd    +++|      TERM
02103  M00S02012.acpd    +++|PROC DATELM(FLG,MS1,MS2,(WFA),(WFP),(POS),(DTY),(FWA),(NSF));
02104  M00S02013.acpd    +++|# TITLE DATELM - PROCESS ONE DATA BLOCK ELEMENT.  #
02105  M00S02014.acpd    +++|
02106  M00S02015.acpd    +++|      BEGIN  # DATELM #
02107  M00S02016.acpd    +++|
02108  M00S02017.acpd    +++|#
02109  M00S02018.acpd    +++|**    DATELM - PROCESS ONE DATA BLOCK ELEMENT.
02110  M00S02019.acpd    +++|*
02111  M00S02020.acpd    +++|*     COMPUTE AND PRINT ONE DATA BLOCK ELEMENT-S STATISTICAL
02112  M00S02021.acpd    +++|*     VALUES (AVERAGE, STANDARD DEVIATION, AND PERCENTAGE).
02113  M00S02022.acpd    +++|*
02114  M00S02023.acpd    +++|*     PROC DATELM(FLG,MS1,MS2,(WFA),(WFP),(POS),(DTY),(FWA),(NSF))
02115  M00S02024.acpd    +++|*
02116  M00S02025.acpd    +++|*     ENTRY      FLG = TRUE IF SUB BLOCK TITLE IS TO BE PRINTED.
02117  M00S02026.acpd    +++|*                MS1 = SUB BLOCK TITLE.
02118  M00S02027.acpd    +++|*                MS2 = DATA ELEMENT NAME.
02119  M00S02028.acpd    +++|*                WFA = WEIGHT FACTOR INFORMATION.
02120  M00S02029.acpd    +++|*                WFP = WEIGHT FACTOR.
02121  M00S02030.acpd    +++|*                POS = RELATIVE POSITION OF WEIGHT FACTOR.
02122  M00S02031.acpd    +++|*                DTY = DATA TYPE.
02123  M00S02032.acpd    +++|*                FWA = ADDRESS OF THE ELEMENT IN TABLE *DCDT*.
02124  M00S02033.acpd    +++|*                NSF = NUMBER OF RECORDS PER INTERVAL.
02125  M00S02034.acpd    +++|*                NIPP = (COMMON BLOCK *CIOCOMM*) NUMBER OF INTERVALS
02126  M00S02035.acpd    +++|*                      PER PAGE.
02127  M00S02036.acpd    +++|*
02128  M00S02037.acpd    +++|*     EXIT       THE AVERAGE, STANDARD DEVIATION, AND PERCENTAGE
02129  M00S02038.acpd    +++|*                OF THE DATA ELEMENT AT TEN INTERVALS ARE COMPUTED
02130  M00S02039.acpd    +++|*                AND PRINTED.
02131  M00S02040.acpd    +++|*                IF THE WEIGHT FACTOR IS THE CONSTANT 1, THE AVERAGE
02132  M00S02041.acpd    +++|*                WILL NOT BE PRINTED.
02133  M00S02042.acpd    +++|*                THE PERCENTAGE WILL NOT BE PRINTED IF THE ELEMENT
02134  M00S02043.acpd    +++|*                DOES NOT HAVE A WEIGHT FACTOR, OR THE WEIGHT FACTOR
02135  M00S02044.acpd    +++|*                IS THE CONSTANT 100.
02136  M00S02045.acpd    +++|#
02137  M00S02046.acpd    +++|
02138  M00S02047.acpd    +++|#
02139  M00S02048.acpd    +++|*     PARAMETER LIST.
02140  M00S02049.acpd    +++|#
02141  M00S02050.acpd    +++|
02142  M00S02051.acpd    +++|      ITEM FLG        B;             # SUBBLOCK TITLE FLAG #
02143  M00S02052.acpd    +++|      ITEM MS1        C(40);         # SUBBLOCK TITLE #
02144  M00S02053.acpd    +++|      ITEM MS2        C(30);         # DATA ELEMENT NAME #
02145  M00S02054.acpd    +++|      ITEM WFA        U;             # WEIGHT FACTOR INFORMATION #
02146  M00S02055.acpd    +++|      ITEM WFP        U;             # WEIGHT FACTOR #
02147  M00S02056.acpd    +++|      ITEM POS        I;             # RELATIVE POSITIN OF *WFP* #
02148  M00S02057.acpd    +++|      ITEM DTY        U;             # DATA TYPE #
02149  M00S02058.acpd    +++|      ITEM FWA        U;             # ADDRESS OF ENTRY #
02150  M00S02059.acpd    +++|      ITEM NSF        I;             # NUMBER OF SAMPLES PER INTERVAL #
02151  M00S02060.acpd    +++|
02152  M00S02061.acpd    +++|#
02153  M00S02062.acpd    +++|****  PROC DATELM - XREF LIST BEGIN.
02154  M00S02063.acpd    +++|#
02155  M00S02064.acpd    +++|
02156  M00S02065.acpd    +++|      XREF
02157  M00S02066.acpd    +++|        BEGIN
02158  M00S02067.acpd    +++|        PROC ACMSTA;                 # COMPUTE TOTAL STATISTICS #
02159  M00S02068.acpd    +++|        PROC COMPWF;                 # COMPUTE WEIGHT FACTOR #
02160  M00S02069.acpd    +++|        PROC PRDTEL;                 # PRINT ONE ROW OF DATA ELEMENT #
02161  M00S02070.acpd    +++|        FUNC SQRT R;                 # SQUARE ROOT #
02162  M00S02071.acpd    +++|        PROC WRITEV;                 # WRITE ONE VALUE #
02163  M00S02072.acpd    +++|        END
02164  M00S02073.acpd    +++|
02165  M00S02074.acpd    +++|#
02166  M00S02075.acpd    +++|****  PROC DATELM - XREF LIST END.
02167  M00S02076.acpd    +++|#
02168  M00S02077.acpd    +++|
02169  M00S02078.acpd    +++|      DEF AVGC       #"AV"#;         # AVERAGE #
02170  M00S02079.acpd    +++|      DEF PCTC       #"PC"#;         # PERCENTAGE #
02171  M00S02080.acpd    +++|      DEF SDVC       #"SD"#;         # STANDARD DEVIATION #
02172  M00S02081.acpd    +++|      DEF ZOPC       #"Z"#;          # *Z* OPTION #
02173  M00S02082.acpd    +++|
02174  M00S02083.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
02175  M00S02084.acpd    +++|
02176  M00S02085.acpd    +++|*CALL     COMUCPD
02177  M00S02086.acpd    +++|
02178  M00S02087.acpd    +++|#
02179  M00S02088.acpd    +++|*     LOCAL VARIABLES.
02180  M00S02089.acpd    +++|#
02181  M00S02090.acpd    +++|
02182  M00S02091.acpd    +++|      ITEM AV         R;             # AVERAGE VALUE #
02183  M00S02092.acpd    +++|      ITEM BCL        I;             # BEGIN COLUMN TO PRINT #
02184  M00S02093.acpd    +++|      ITEM I          I;             # FOR LOOP CONTROL #
02185  M00S02094.acpd    +++|      ITEM NIP        R;             # NUMBER OF COLUMNS PER PAGE #
02186  M00S02095.acpd    +++|      ITEM NSR        R;             # NUMBER OF BLOCKS PER COLUMN #
02187  M00S02096.acpd    +++|      ITEM PRFLG      B;             # PROCESS FLAG #
02188  M00S02097.acpd    +++|      ITEM SM         R;             # INTERVAL SUM #
02189  M00S02098.acpd    +++|      ITEM SQ         R;             # INTERVAL SUM SQUARED #
02190  M00S02099.acpd    +++|      ITEM SSM        R;             # SUM OF SUBTOTAL #
02191  M00S02100.acpd    +++|      ITEM SSQ        R;             # SQUARED SUM OF SUBTOTAL #
02192  M00S02101.acpd    +++|      ITEM SWF        R;             # SUM OF WEIGHT FACTOR #
02193  M00S02102.acpd    +++|      ITEM WFT        R;             # WEIGHT FACTOR #
02194  M00S02103.acpd    +++|
02195  M00S02104.acpd    +++|      ARRAY TEM [1:11] P(3);         # COMPUTED STATISTIC VALUES #
02196  M00S02105.acpd    +++|        BEGIN
02197  M00S02106.acpd    +++|        ITEM TEM$AV     R(00,00,60);  # AVERAGE #
02198  M00S02107.acpd    +++|        ITEM TEM$SD     R(01,00,60);  # STANDARD DEVIATION #
02199  M00S02108.acpd    +++|        ITEM TEM$PC     R(02,00,60);  # PERCENTAGE #
02200  M00S02109.acpd    +++|        END
02201  M00S02110.acpd    +++|
02202  M00S02111.acpd    +++|
02203  M00S02112.acpd    +++|
02204  M00S02113.acpd    +++|#
02205  M00S02114.acpd    +++|*     BEGIN DATELM PROC.
02206  M00S02115.acpd    +++|#
02207  M00S02116.acpd    +++|
02208  M00S02117.acpd    +++|      COMPWF(WFA,WFP,POS,WFT,PRFLG);   # COMPUTE WEIGHT FACTOR #
02209  M00S02118.acpd    +++|      IF (NOT PRFLG)                 # NOT TO PROCESS THIS ELEMENT #
02210  M00S02119.acpd    +++|      THEN
02211  M00S02120.acpd    +++|        BEGIN
02212  M00S02121.acpd    +++|        RETURN;
02213  M00S02122.acpd    +++|        END
02214  M00S02123.acpd    +++|
02215  M00S02124.acpd    +++|      P<DCHD>=LOC(DBUF);
02216  M00S02125.acpd    +++|      P<DCDT>=LOC(DBUF[DCHL]);
02217  M00S02126.acpd    +++|      P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
02218  M00S02127.acpd    +++|      P<DDSC>=LOC(DDDT);
02219  M00S02128.acpd    +++|
02220  M00S02129.acpd    +++|#
02221  M00S02130.acpd    +++|*     CHECK IF ENTIRE LINE IS ZERO. IF SO, DO NOT PRINT THIS LINE.
02222  M00S02131.acpd    +++|#
02223  M00S02132.acpd    +++|
02224  M00S02133.acpd    +++|      SM=0;
02225  M00S02134.acpd    +++|      SLOWFOR I=1 STEP 1 UNTIL NIPP
02226  M00S02135.acpd    +++|      DO
02227  M00S02136.acpd    +++|        BEGIN
02228  M00S02137.acpd    +++|        SM=SM + DCDT$SM[(I-1)*DCDL + FWA];
02229  M00S02138.acpd    +++|        END
02230  M00S02139.acpd    +++|
02231  M00S02140.acpd    +++|      IF (SM EQ 0.0) AND (P$LO NQ ZOPC) AND (NIPP GR (DCDC-3))
02232  M00S02141.acpd    +++|      THEN
02233  M00S02142.acpd    +++|        BEGIN
02234  M00S02143.acpd    +++|        RETURN;
02235  M00S02144.acpd    +++|        END
02236  M00S02145.acpd    +++|
02237  M00S02146.acpd    +++|      IF (NIPP LQ (DCDC-3))          # PRINT TOTAL ON THIS PAGE #
02238  M00S02147.acpd    +++|      THEN                           # CHECK IF TOTAL IS 0 #
02239  M00S02148.acpd    +++|        BEGIN
02240  M00S02149.acpd    +++|        IF (DDSM$IM[FWA] EQ 0) AND (P$LO NQ ZOPC)
02241  M00S02150.acpd    +++|        THEN
02242  M00S02151.acpd    +++|          BEGIN
02243  M00S02152.acpd    +++|          RETURN;
02244  M00S02153.acpd    +++|          END
02245  M00S02154.acpd    +++|
02246  M00S02155.acpd    +++|        END
02247  M00S02156.acpd    +++|
02248  M00S02157.acpd    +++|#
02249  M00S02158.acpd    +++|*     CHECK IF SUBTITLE HAS BEEN PRINTED.
02250  M00S02159.acpd    +++|#
02251  M00S02160.acpd    +++|
02252  M00S02161.acpd    +++|      IF (FLG)                       # SUBTITLE NOT PRINTED #
02253  M00S02162.acpd    +++|      THEN                           # PRINT SUBTITLE #
02254  M00S02163.acpd    +++|        BEGIN
02255  M00S02164.acpd    +++|        WRITEV(MS1,CHRC,1,22,LFDC);
02256  M00S02165.acpd    +++|        FLG=FALSE;                   # INDICATE SUBTITLE WAS PRINTED #
02257  M00S02166.acpd    +++|        END
02258  M00S02167.acpd    +++|
02259  M00S02168.acpd    +++|      WRITEV(MS2,CHRC,1,22,NLFC);    # WRITE DATA ELEMENT NAME #
02260  M00S02169.acpd    +++|
02261  M00S02170.acpd    +++|#
02262  M00S02171.acpd    +++|*     COMPUTE AVERAGE, STANDARD DEVIATION, AND PERCENTAGE
02263  M00S02172.acpd    +++|*     FOR *NIPP* INTERVALS. THE COMPUTED VALUES ARE SAVED
02264  M00S02173.acpd    +++|*     IN ARRAY *TEM*.
02265  M00S02174.acpd    +++|#
02266  M00S02175.acpd    +++|
02267  M00S02176.acpd    +++|      BCL=BCLC;                      # BEGIN COLUMN TO PRINT #
02268  M00S02177.acpd    +++|      NSR=NSF;                       # CONVERT TO REAL #
02269  M00S02178.acpd    +++|      NIP=NIPP;                      # CONVERT TO REAL #
02270  M00S02179.acpd    +++|      SSM=0.0;
02271  M00S02180.acpd    +++|      SSQ=0.0;
02272  M00S02181.acpd    +++|      SWF=0.0;
02273  M00S02182.acpd    +++|
02274  M00S02183.acpd    +++|      IF (NIPP GR 0)
02275  M00S02184.acpd    +++|      THEN
02276  M00S02185.acpd    +++|        BEGIN  # COMPUTE INTERVAL STATISTICS #
02277  M00S02186.acpd    +++|        FASTFOR I=1 STEP 1 UNTIL NIPP
02278  M00S02187.acpd    +++|        DO
02279  M00S02188.acpd    +++|          BEGIN  # COMPUTE *AV*, *SD*, *PC* #
02280  M00S02189.acpd    +++|          SM=DCDT$SM[(I-1)*DCDL + FWA];
02281  M00S02190.acpd    +++|          SSM=SSM+SM;
02282  M00S02191.acpd    +++|          SQ=DCDT$SQ[(I-1)*DCDL+DCDC*DCDL+FWA];
02283  M00S02192.acpd    +++|          SSQ=SSQ+SQ;
02284  M00S02193.acpd    +++|          AV=SM/NSR;                 # AVERAGE #
02285  M00S02194.acpd    +++|          TEM$AV[I]=AV;
02286  M00S02195.acpd    +++|          TEM$SD[I]=SQRT(SQ/NSR - AV*AV);   # STANDARD DEVIATION #
02287  M00S02196.acpd    +++|          DCDT$SQ[(I-1)*DCDL+DCDC*DCDL+FWA]=TEM$SD[I];  # SAVE *SD* #
Line S00001 Modification History
M01 (Added by) acpd1
Seq #  *Modification Id* Act 
----------------------------+
02288  M01S00001.acpd1   +++|          DCDT$SM[(I-1)*DCDL+FWA]=TEM$AV[I];  # SAVE *AV* #
02289  M00S02197.acpd    +++|
02290  M00S02198.acpd    +++|          IF (WFA EQ IWFC)           # INDIRECT WEIGHT FACTOR #
02291  M00S02199.acpd    +++|          THEN                       # GET WEIGHT FACTOR #
02292  M00S02200.acpd    +++|            BEGIN
02293  M00S02201.acpd    +++|            WFT=DCDT$SM[(I-1)*DCDL + DDSC$FW[WFP]]/NSR;
02294  M00S02202.acpd    +++|            SWF=SWF+WFT;
02295  M00S02203.acpd    +++|            END
02296  M00S02204.acpd    +++|
02297  M00S02205.acpd    +++|          IF (WFT LQ 0)
02298  M00S02206.acpd    +++|          THEN
02299  M00S02207.acpd    +++|            BEGIN
02300  M00S02208.acpd    +++|            TEM$PC[I]=0.0;
02301  M00S02209.acpd    +++|            END
02302  M00S02210.acpd    +++|
02303  M00S02211.acpd    +++|          ELSE
02304  M00S02212.acpd    +++|            BEGIN
02305  M00S02213.acpd    +++|            TEM$PC[I]=(AV/WFT)*100.0;  # PERCENTAGE #
02306  M00S02214.acpd    +++|            END
02307  M00S02215.acpd    +++|
02308  M00S02216.acpd    +++|          END  # COMPUTE *AV*, *SD*, *PC* #
02309  M00S02217.acpd    +++|
02310  M00S02218.acpd    +++|#
02311  M00S02219.acpd    +++|*     COMPUTE AVERAGE, STANDARD DEVIATION, AND PERCENTAGE
02312  M00S02220.acpd    +++|*     OF SUBTOTAL. THE PRECEDING INTERVALS ARE CONSIDERED
02313  M00S02221.acpd    +++|*     AS ONE INTERVAL.
02314  M00S02222.acpd    +++|#
02315  M00S02223.acpd    +++|
02316  M00S02224.acpd    +++|        IF (TCOL GR (DCDC-3))        # PRINT SUBTOTAL #
02317  M00S02225.acpd    +++|        THEN
02318  M00S02226.acpd    +++|          BEGIN  # COMPUTE SUBTOTAL STATISTICS #
02319  M00S02227.acpd    +++|          I=NIPP+1;
02320  M00S02228.acpd    +++|          TEM$AV[I]=SSM/(NIP*NSR);   # AVERAGE #
02321  M00S02229.acpd    +++|          TEM$SD[I]=SQRT(SSQ/(NIP*NSR)-(TEM$AV[I]*TEM$AV[I]));
02322  M00S02230.acpd    +++|          IF (WFA EQ IWFC)           # INDIRECT WEIGHT FACTOR #
02323  M00S02231.acpd    +++|          THEN
02324  M00S02232.acpd    +++|            BEGIN
02325  M00S02233.acpd    +++|            WFT=SWF/NIP;             # WEIGHT FACTOR #
02326  M00S02234.acpd    +++|            END
02327  M00S02235.acpd    +++|
02328  M00S02236.acpd    +++|          IF (WFT LQ 0)
02329  M00S02237.acpd    +++|          THEN
02330  M00S02238.acpd    +++|            BEGIN
02331  M00S02239.acpd    +++|            TEM$PC[I]=0.0;
02332  M00S02240.acpd    +++|            END
02333  M00S02241.acpd    +++|
02334  M00S02242.acpd    +++|          ELSE
02335  M00S02243.acpd    +++|            BEGIN
02336  M00S02244.acpd    +++|            TEM$PC[I]=(TEM$AV[I]/WFT)*100.0;
02337  M00S02245.acpd    +++|            END
02338  M00S02246.acpd    +++|
02339  M00S02247.acpd    +++|          BCL=BCL + I*10;
02340  M00S02248.acpd    +++|          END  # COMPUTE SUBTOTAL STATISTICS #
02341  M00S02249.acpd    +++|
02342  M00S02250.acpd    +++|        ELSE                         # NO SUBTOTAL #
02343  M00S02251.acpd    +++|          BEGIN
02344  M00S02252.acpd    +++|          BCL=BCL + NIPP*10;
02345  M00S02253.acpd    +++|          END
02346  M00S02254.acpd    +++|
02347  M00S02255.acpd    +++|        END  # COMPUTE INTERVAL STATISTICS #
02348  M00S02256.acpd    +++|
02349  M00S02257.acpd    +++|#
02350  M00S02258.acpd    +++|*     PRINT VALUES SAVED IN ARRAY *TEM*.
02351  M00S02259.acpd    +++|*     AVERAGE VALUES ARE NOT PRINTED IF THE WEIGHT FACTOR
02352  M00S02260.acpd    +++|*     IS 1.
02353  M00S02261.acpd    +++|*     PERCENTAGE VALUES ARE NOT PRINTED IF *WFT* IS LESS THAN 0.
02354  M00S02262.acpd    +++|*     THE TOTAL STATISTIC VALUES ARE NOT PRINTED IF THERE ARE
02355  M00S02263.acpd    +++|*     MORE THAN 7 COLUMNS PRINTED ON A PAGE, I.E. IF THE NUMBER
02356  M00S02264.acpd    +++|*     OF INTERVALS PER PAGE *NIPP* IS GREATER THAN 7.
02357  M00S02265.acpd    +++|#
02358  M00S02266.acpd    +++|
02359  M00S02267.acpd    +++|      IF (WFA NQ CWFC) OR (WFP NQ 1)
02360  M00S02268.acpd    +++|      THEN
02361  M00S02269.acpd    +++|        BEGIN  # PRINT *AV* #
02362  M00S02270.acpd    +++|        WRITEV(AVGC,CHRC,BCLC-2,2,NLFC);
02363  M00S02271.acpd    +++|        IF (NIPP GR 0)               # MORE THAN 1 COLUMN #
02364  M00S02272.acpd    +++|        THEN
02365  M00S02273.acpd    +++|          BEGIN
02366  M00S02274.acpd    +++|          PRDTEL(LOC(TEM$AV[1]),DTY,LOC(DDSM$AX[FWA]));
02367  M00S02275.acpd    +++|          END
02368  M00S02276.acpd    +++|
02369  M00S02277.acpd    +++|        IF (NIPP LQ (DCDC-3))        # PRINT TOTAL ON SAME PAGE #
02370  M00S02278.acpd    +++|        THEN
02371  M00S02279.acpd    +++|          BEGIN
02372  M00S02280.acpd    +++|          ACMSTA(STVAL"AVST",FWA,DTY,BCL,0);  # TOTAL AVERAGE #
02373  M00S02281.acpd    +++|          END
02374  M00S02282.acpd    +++|
02375  M00S02283.acpd    +++|        END  # PRINT *AV* #
02376  M00S02284.acpd    +++|
02377  M00S02285.acpd    +++|      WRITEV(SDVC,CHRC,BCLC-2,2,NLFC);
02378  M00S02286.acpd    +++|      IF (NIPP GR 0)                 # MORE THAN 1 COLUMN #
02379  M00S02287.acpd    +++|      THEN
02380  M00S02288.acpd    +++|        BEGIN  # PRINT *SD* #
02381  M00S02289.acpd    +++|        PRDTEL(LOC(TEM$SD[1]),FLPC,LOC(DDSM$SX[FWA]));
02382  M00S02290.acpd    +++|        END  # PRINT *SD* #
02383  M00S02291.acpd    +++|
02384  M00S02292.acpd    +++|      IF (NIPP LQ (DCDC-3))          # PRINT TOTAL ON SAME PAGE #
02385  M00S02293.acpd    +++|      THEN
02386  M00S02294.acpd    +++|        BEGIN
02387  M00S02295.acpd    +++|        ACMSTA(STVAL"SDST",FWA,FLPC,BCL,0);  # STANDARD DEVIATION #
02388  M00S02296.acpd    +++|        END
02389  M00S02297.acpd    +++|
02390  M00S02298.acpd    +++|      IF (WFT GQ 0.0)                # PERCENTAGE TO BE PRINTED #
02391  M00S02299.acpd    +++|      THEN
02392  M00S02300.acpd    +++|        BEGIN  # PRINT *PC* #
02393  M00S02301.acpd    +++|        WRITEV(PCTC,CHRC,BCLC-2,2,NLFC);
02394  M00S02302.acpd    +++|        IF (NIPP GR 0)               # MORE THAN 1 COLUMN #
02395  M00S02303.acpd    +++|        THEN
02396  M00S02304.acpd    +++|          BEGIN
02397  M00S02305.acpd    +++|          PRDTEL(LOC(TEM$PC[1]),FLPC,LOC(DDSM$PX[FWA]));
02398  M00S02306.acpd    +++|          END
02399  M00S02307.acpd    +++|
02400  M00S02308.acpd    +++|        IF (WFA EQ IWFC)             # INDIRECT WEIGHT FACTOR #
02401  M00S02309.acpd    +++|        THEN
02402  M00S02310.acpd    +++|          BEGIN
02403  M00S02311.acpd    +++|          WFT=DDSM$SM[DDSC$FW[WFP]]/ACNS;  # TOTAL WEIGHT FACTOR #
02404  M00S02312.acpd    +++|          END
02405  M00S02313.acpd    +++|
02406  M00S02314.acpd    +++|        IF (NIPP LQ (DCDC-3))        # TOTAL IS PRINTED ON SAME PAGE #
02407  M00S02315.acpd    +++|        THEN
02408  M00S02316.acpd    +++|          BEGIN
02409  M00S02317.acpd    +++|          ACMSTA(STVAL"PCST",FWA,FLPC,BCL,WFT);  # TOTAL PERCENTAGE #
02410  M00S02318.acpd    +++|          END
02411  M00S02319.acpd    +++|
02412  M00S02320.acpd    +++|        END  # PRINT *PC* #
02413  M00S02321.acpd    +++|
02414  M00S02322.acpd    +++|      RETURN;
02415  M00S02323.acpd    +++|      END  # DATELM #
02416  M00S02324.acpd    +++|
02417  M00S02325.acpd    +++|      TERM
02418  M00S02326.acpd    +++|PROC DECODE((DTA),(BFA));
02419  M00S02327.acpd    +++|# TITLE DECODE - DECODE DATA.  #
02420  M00S02328.acpd    +++|
02421  M00S02329.acpd    +++|      BEGIN  # DECODE #
02422  M00S02330.acpd    +++|
02423  M00S02331.acpd    +++|#
02424  M00S02332.acpd    +++|**    DECODE - DECODE DATA.
02425  M00S02333.acpd    +++|*
02426  M00S02334.acpd    +++|*     DECODE DATA IN *CIO* INPUT BUFFER, AND PUT THEM
02427  M00S02335.acpd    +++|*     IN CORRESPONDING DECODED BUFFER.
02428  M00S02336.acpd    +++|*
02429  M00S02337.acpd    +++|*     PROC DECODE((DTA),(BFA))
02430  M00S02338.acpd    +++|*
02431  M00S02339.acpd    +++|*     ENTRY      DTA = ADDRESS OF DATA DESCRIPTION TABLE
02432  M00S02340.acpd    +++|*                      (*DDHD* OR *DDDT*).
02433  M00S02341.acpd    +++|*                BFA = ADDRESS OF THE BUFFER WHERE THE DECODED DATA
02434  M00S02342.acpd    +++|*                      ARE TO BE SAVED (*DCHD* OR *DCDT*).
02435  M00S02343.acpd    +++|*                IBWA = CURRENT *CIO* INPUT BUFFER ADDRESS.
02436  M00S02344.acpd    +++|*
02437  M00S02345.acpd    +++|*     EXIT       IBWA = ADDRESS OF NEXT *CIO* INPUT BUFFER WORD.
02438  M00S02346.acpd    +++|*                DECODED DATA ARE ACCUMULATED IN THE APPROPRIATE
02439  M00S02347.acpd    +++|*                BUFFER.
02440  M00S02348.acpd    +++|#
02441  M00S02349.acpd    +++|
02442  M00S02350.acpd    +++|#
02443  M00S02351.acpd    +++|*     PARAMETER LIST.
02444  M00S02352.acpd    +++|#
02445  M00S02353.acpd    +++|
02446  M00S02354.acpd    +++|      ITEM BFA        I;             # BUFFER ADDRESS #
02447  M00S02355.acpd    +++|      ITEM DTA        I;             # DATA DESCRIPTOR TABLE ADDRESS #
02448  M00S02356.acpd    +++|
02449  M00S02357.acpd    +++|#
02450  M00S02358.acpd    +++|****  PROC DECODE - XREF LIST BEGIN.
02451  M00S02359.acpd    +++|#
02452  M00S02360.acpd    +++|
02453  M00S02361.acpd    +++|      XREF
02454  M00S02362.acpd    +++|        BEGIN
02455  M00S02363.acpd    +++|        FUNC GETVAL I;               # GET VALUE FROM *CIO* BUFFER #
02456  M00S02364.acpd    +++|        PROC PERROR;                 # PROCESS ERROR #
02457  M00S02365.acpd    +++|        END
02458  M00S02366.acpd    +++|
02459  M00S02367.acpd    +++|#
02460  M00S02368.acpd    +++|**** PROC DECODE - XREF LIST END.
02461  M00S02369.acpd    +++|#
02462  M00S02370.acpd    +++|
02463  M00S02371.acpd    +++|      DEF CNIC       #"CNIL"#;       # FAST LOOP SAMPLE #
02464  M00S02372.acpd    +++|      DEF CPWC       #5#;            # NUMBER OF BYTES #
02465  M00S02373.acpd    +++|      DEF CTMC       #"CTML"#;       # MEDIUM LOOP SAMPLE #
02466  M00S02374.acpd    +++|      DEF CTOC       #"CTOL"#;       # SLOW LOOP SAMPLE #
02467  M00S02375.acpd    +++|      DEF HDLC       #0#;            # HEADER LOOP FLAG #
02468  M00S02376.acpd    +++|      DEF PDTC       #"PDTM"#;       # PACKED DATE AND TIME #
02469  M00S02377.acpd    +++|      DEF SNLC       #4#;            # SNAP SHOT LOOP FLAG #
02470  M00S02378.acpd    +++|
02471  M00S02379.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
02472  M00S02380.acpd    +++|
02473  M00S02381.acpd    +++|*CALL     COMUCPD
02474  M00S02382.acpd    +++|
02475  M00S02383.acpd    +++|#
02476  M00S02384.acpd    +++|*     LOCAL VARIABLES.
02477  M00S02385.acpd    +++|#
02478  M00S02386.acpd    +++|
02479  M00S02387.acpd    +++|      ITEM AV         R;             # AVERAGE VALUE #
02480  M00S02388.acpd    +++|      ITEM BA         I;             # BYTE ADDRESS OF *CIO* BUFFER #
02481  M00S02389.acpd    +++|      ITEM BASE       I;             # BEGIN ADDRESS OF REPEAT GROUP #
02482  M00S02390.acpd    +++|      ITEM C          I;             # DECODED DATA BUFFER ADDRESS #
02483  M00S02391.acpd    +++|      ITEM CQ         I;             # DECODED DATA BUFFER ADDRESS #
02484  M00S02392.acpd    +++|      ITEM I          I;             # FOR LOOP CONTROL #
02485  M00S02393.acpd    +++|      ITEM IC         I;             # INCREMENTOR #
02486  M00S02394.acpd    +++|      ITEM J          I;             # FOR LOOP CONTROL #
02487  M00S02395.acpd    +++|      ITEM K          I;             # FOR LOOP CONTROL #
02488  M00S02396.acpd    +++|      ITEM L          I;             # FOR LOOP CONTROL #
02489  M00S02397.acpd    +++|      ITEM LMP        I;             # LENGTH MULTIPLIER #
02490  M00S02398.acpd    +++|      ITEM LN         I;             # LENGTH OF ENTRY #
02491  M00S02399.acpd    +++|      ITEM M          I;             # FOR LOOP CONTROL #
02492  M00S02400.acpd    +++|      ITEM NM         C(4);          # DATA ELEMENT NAME #
02493  M00S02401.acpd    +++|      ITEM OF         I;             # OFFSET #
02494  M00S02402.acpd    +++|      ITEM PR         I;             # NUMBER OF PP WORDS OCCUPIED #
02495  M00S02403.acpd    +++|      ITEM TP         U;             # DATA TYPE OF ELEMENT #
02496  M00S02404.acpd    +++|      ITEM VL         I;             # DECODED VALUE #
02497  M00S02405.acpd    +++|      ITEM VLR        R;             # DECODED VALUE #
02498  M00S02406.acpd    +++|
02499  M00S02407.acpd    +++|      BASED
02500  M00S02408.acpd    +++|      ARRAY BUF [0:0] P(1);          # DECODED BUFFER #
02501  M00S02409.acpd    +++|        BEGIN  # ARRAY BUF #
02502  M00S02410.acpd    +++|        ITEM BUF$WD     U(00,00,60);  # DECODED DATA #
02503  M00S02411.acpd    +++|        ITEM BUF$SQ     R(00,00,60);  # SUM SQUARE #
02504  M00S02412.acpd    +++|        ITEM BUF$SM     R(00,00,60);  # SUM #
02505  M00S02413.acpd    +++|        ITEM BUF$ET     U(00,00,30);  # INTERVAL START TIME #
02506  M00S02414.acpd    +++|        ITEM BUF$BT     U(00,30,30);  # INTERVAL END TIME #
02507  M00S02415.acpd    +++|        END  # ARRAY BUF #
02508  M00S02416.acpd    +++|
02509  M00S02417.acpd    +++|      ARRAY SPT [1:3] P(1);          # LOOP SAMPLE TIMES #
02510  M00S02418.acpd    +++|        BEGIN  # ARRAY SPT #
02511  M00S02419.acpd    +++|        ITEM SPT$WD     I(00,00,60);  # SAMPLE TIME #
02512  M00S02420.acpd    +++|        END  # ARRAY SPT #
02513  M00S02421.acpd    +++|
02514  M00S02422.acpd    +++|
02515  M00S02423.acpd    +++|
02516  M00S02424.acpd    +++|
02517  M00S02425.acpd    +++|
02518  M00S02426.acpd    +++|
02519  M00S02427.acpd    +++|#
02520  M00S02428.acpd    +++|*     BEGIN DECODE PROC.
02521  M00S02429.acpd    +++|#
02522  M00S02430.acpd    +++|
02523  M00S02431.acpd    +++|      P<DCHD>=LOC(DBUF);
02524  M00S02432.acpd    +++|      P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
02525  M00S02433.acpd    +++|      P<MPAR>=DTA;
02526  M00S02434.acpd    +++|      P<DDSC>=LOC(DDHD);
02527  M00S02435.acpd    +++|      P<BUF>=BFA;
02528  M00S02436.acpd    +++|      BA=IBWA*CPWC;
02529  M00S02437.acpd    +++|
02530  M00S02438.acpd    +++|      IF (MPAR$TP[0] NQ HDLC)        # NOT HEADER BLOCK #
02531  M00S02439.acpd    +++|      THEN
02532  M00S02440.acpd    +++|        BEGIN  # GET LOOP SAMPLE TIMES #
02533  M00S02441.acpd    +++|        FASTFOR I=1 STEP 1 UNTIL 3
02534  M00S02442.acpd    +++|        DO
02535  M00S02443.acpd    +++|          BEGIN
02536  M00S02444.acpd    +++|          SPT$WD[I]=GETVAL(BA+SPLA$WD[I],2);
02537  M00S02445.acpd    +++|          END
02538  M00S02446.acpd    +++|
02539  M00S02447.acpd    +++|        END  # GET LOOP SAMPLE TIMES #
02540  M00S02448.acpd    +++|
02541  M00S02449.acpd    +++|#
02542  M00S02450.acpd    +++|*     FOLLOW TABLE *MPAR* TO EXTRACT DATA FROM *CIO* BUFFER AND PUT
02543  M00S02451.acpd    +++|*     THEM IN THE DECODED DATA BUFFER.
02544  M00S02452.acpd    +++|*     THE VALUES STORED IN THE DECODED DATA BUFFER FOR THE DATA
02545  M00S02453.acpd    +++|*     BLOCK ELEMENTS ARE THE CUMULATIVE AVERAGES. THE AVERAGE OF
02546  M00S02454.acpd    +++|*     EACH DATA BLOCK ELEMENT IS COMPUTED BY TAKING THE EXTRACTED
02547  M00S02455.acpd    +++|*     VALUE AND DIVIDING IT BY THE RESPECTIVE LOOP-S SAMPLE TIME
02548  M00S02456.acpd    +++|*     (*SPT* ARRAY). THE SQUARED AVERAGES ARE ALSO COMPUTED FOR
02549  M00S02457.acpd    +++|*     THE DATA BLOCK ELEMENTS.
02550  M00S02458.acpd    +++|#
02551  M00S02459.acpd    +++|
02552  M00S02460.acpd    +++|      C=0;                           # BEGIN ADDRESS TO STORE AVERAGE #
02553  M00S02461.acpd    +++|      OF=DCDL*DCDC;                  # OFFSET #
02554  M00S02462.acpd    +++|      J=0;
02555  M00S02463.acpd    +++|
02556  M00S02464.acpd    +++|      SLOWFOR M=0 WHILE (MPAR$WD[J] NQ 0)
02557  M00S02465.acpd    +++|      DO
02558  M00S02466.acpd    +++|        BEGIN  # FOLLOW TABLE *MPAR* #
02559  M00S02467.acpd    +++|        BASE=J;
02560  M00S02468.acpd    +++|        LMP=1;
02561  M00S02469.acpd    +++|        IF (MPAR$LMP[J] NQ NULL)
02562  M00S02470.acpd    +++|        THEN
02563  M00S02471.acpd    +++|          BEGIN
02564  M00S02472.acpd    +++|          LMP=DCHD$WD[DDSC$FW[MPAR$LMP[J]]];  # REPEAT GROUP LENGTH #
02565  M00S02473.acpd    +++|          END
02566  M00S02474.acpd    +++|
02567  M00S02475.acpd    +++|#
02568  M00S02476.acpd    +++|*     *LMP* IS GREATER THAN 1 IF THE REPEAT GROUP HAS
02569  M00S02477.acpd    +++|*     MULTIPLE ENTRIES.
02570  M00S02478.acpd    +++|#
02571  M00S02479.acpd    +++|
02572  M00S02480.acpd    +++|        FASTFOR K=1 STEP 1 UNTIL LMP
02573  M00S02481.acpd    +++|        DO
02574  M00S02482.acpd    +++|          BEGIN  # COLLECT REPEAT GROUP VALUES #
02575  M00S02483.acpd    +++|          J=BASE;
02576  M00S02484.acpd    +++|          IC=MPAR$IC[J];
02577  M00S02485.acpd    +++|
02578  M00S02486.acpd    +++|#
02579  M00S02487.acpd    +++|*     *IC* IS THE SIZE OF THE REPEAT GROUP.
02580  M00S02488.acpd    +++|*     SINGLE ELEMENTS HAVE *IC* EQUAL TO 1.
02581  M00S02489.acpd    +++|#
02582  M00S02490.acpd    +++|
02583  M00S02491.acpd    +++|          FASTFOR L=1 STEP 1 UNTIL IC
02584  M00S02492.acpd    +++|          DO
02585  M00S02493.acpd    +++|            BEGIN  # COLLECT ONE ENTRY OF REPEAT GROUP #
02586  M00S02494.acpd    +++|            NM=MPAR$NM[J];           # NAME #
02587  M00S02495.acpd    +++|            TP=MPAR$TP[J];           # TYPE #
02588  M00S02496.acpd    +++|            LN=MPAR$LN[J];           # LENGTH #
02589  M00S02497.acpd    +++|            PR=MPAR$PR[J];           # PRECISION #
02590  M00S02498.acpd    +++|            IF (PR GR CPWC)
02591  M00S02499.acpd    +++|            THEN
02592  M00S02500.acpd    +++|              BEGIN
02593  M00S02501.acpd    +++|              LN=(PR/CPWC)*LN;
02594  M00S02502.acpd    +++|              PR=CPWC;
02595  M00S02503.acpd    +++|              END
02596  M00S02504.acpd    +++|
02597  M00S02505.acpd    +++|#
02598  M00S02506.acpd    +++|*     *LN* IS GREATER THAN 1 IF THE ELEMENT HAS MULTIPLE
02599  M00S02507.acpd    +++|*     ENTRIES.
02600  M00S02508.acpd    +++|#
02601  M00S02509.acpd    +++|
02602  M00S02510.acpd    +++|            FASTFOR I=1 STEP 1 UNTIL LN
02603  M00S02511.acpd    +++|            DO
02604  M00S02512.acpd    +++|              BEGIN  # COLLECT VALUE OF ONE ENTRY #
02605  M00S02513.acpd    +++|              CQ=C + OF;             # ADDRESS OF SQUARED AVERAGE #
02606  M00S02514.acpd    +++|              VL=GETVAL(BA,PR);      # GET VALUE FROM *CIO* BUFFER #
02607  M00S02515.acpd    +++|
02608  M00S02516.acpd    +++|              IF (TP EQ HDLC)        # HEADER BLOCK #
02609  M00S02517.acpd    +++|                OR (TP EQ SNLC)      # SNAPSHOT LOOP #
02610  M00S02518.acpd    +++|              THEN
02611  M00S02519.acpd    +++|                BEGIN  # COLLECT VALUES #
02612  M00S02520.acpd    +++|
02613  M00S02521.acpd    +++|#
02614  M00S02522.acpd    +++|*     HEADER BLOCK AND SNAPSHOT LOOP DATA ELEMENTS ARE NOT CUMULATIVE
02615  M00S02523.acpd    +++|*     VALUES.
02616  M00S02524.acpd    +++|#
02617  M00S02525.acpd    +++|
02618  M00S02526.acpd    +++|                IF (NM EQ PDTC)      # PACKED DATE AND TIME #
02619  M00S02527.acpd    +++|                THEN
02620  M00S02528.acpd    +++|                  BEGIN  # GET TIME #
02621  M00S02529.acpd    +++|                  BUF$ET[CQ]=VL-(VL/SHFC)*SHFC;  # INTERVAL END TIME #
02622  M00S02530.acpd    +++|                  IF (DDSM$BT[C] EQ 0) # TOTAL *BT* NOT COLLECTED #
02623  M00S02531.acpd    +++|                  THEN
02624  M00S02532.acpd    +++|                    BEGIN
02625  M00S02533.acpd    +++|                    DDSM$BT[C]=VL;  # TOTAL BEGIN TIME #
02626  M00S02534.acpd    +++|                    END
02627  M00S02535.acpd    +++|
02628  M00S02536.acpd    +++|                  IF (BUF$BT[CQ] EQ 0) # INTERVAL *BT* NOT COLLECTED #
02629  M00S02537.acpd    +++|                  THEN
02630  M00S02538.acpd    +++|                    BEGIN
02631  M00S02539.acpd    +++|                    BUF$BT[CQ]=BUF$ET[CQ];  # INTERVAL BEGIN TIME #
02632  M00S02540.acpd    +++|                    END
02633  M00S02541.acpd    +++|
02634  M00S02542.acpd    +++|                  END  # GET TIME #
02635  M00S02543.acpd    +++|
02636  M00S02544.acpd    +++|                BUF$WD[C]=VL;
02637  M00S02545.acpd    +++|                IF (TP EQ SNLC)      # SNAPSHOT LOOP #
02638  M00S02546.acpd    +++|                THEN
02639  M00S02547.acpd    +++|                  BEGIN
02640  M00S02548.acpd    +++|                  DDSM$IM[C]=VL;
02641  M00S02549.acpd    +++|                  END
02642  M00S02550.acpd    +++|
02643  M00S02551.acpd    +++|                END  # COLLECT VALUES #
02644  M00S02552.acpd    +++|
02645  M00S02553.acpd    +++|              ELSE                   # FAST, MEDIUM, SLOW LOOP #
02646  M00S02554.acpd    +++|                BEGIN  # DECODE DATA BLOCK VALUES #
02647  M00S02555.acpd    +++|
02648  M00S02556.acpd    +++|#
02649  M00S02557.acpd    +++|*     THE FAST, MEDIUM, AND SLOW LOOP DATA ELEMENTS ARE CUMULATIVE
02650  M00S02558.acpd    +++|*     VALUES. THE VALUES SAVED IN THE DECODED BUFFER ARE CUMULATIVE
02651  M00S02559.acpd    +++|*     AVERAGE VALUES. THE AVERAGE VALUE IS COMPUTED BY TAKING THE
02652  M00S02560.acpd    +++|*     VALUE DECODED FROM THE INPUT BUFFER (READ IN FROM THE DATA
02653  M00S02561.acpd    +++|*     FILE) AND DEVIDE IT BY THE RESPECTIVE LOOP SAMPLE TIME.
02654  M00S02562.acpd    +++|*     THE AVERAGE SQUARE IS ALSO COMPUTED AND SAVED IN THE DECODED
02655  M00S02563.acpd    +++|*     BUFFER FOR EACH DATA BLOCK ELEMENTS.
02656  M00S02564.acpd    +++|#
02657  M00S02565.acpd    +++|
02658  M00S02566.acpd    +++|                IF (NM EQ CNIC)
02659  M00S02567.acpd    +++|                  OR (NM EQ CTMC)
02660  M00S02568.acpd    +++|                  OR (NM EQ CTOC)    # LOOP SAMPLE TIMES #
02661  M00S02569.acpd    +++|                THEN                 # ACCUMULATE SAMPLE TIMES #
02662  M00S02570.acpd    +++|                  BEGIN
02663  M00S02571.acpd    +++|                  BUF$WD[C]=BUF$WD[C] + VL;
02664  M00S02572.acpd    +++|                  DDSM$IM[C]=DDSM$IM[C] + VL;
02665  M00S02573.acpd    +++|                  END
02666  M00S02574.acpd    +++|
02667  M00S02575.acpd    +++|                ELSE
02668  M00S02576.acpd    +++|                  BEGIN  # COMPUTE CUMULATIVE *AV* AND SQUARED *AV* #
02669  M00S02577.acpd    +++|                  IF (SPT$WD[TP] NQ 0)  # NUMBER OF SAMPLES .NE. 0 #
02670  M00S02578.acpd    +++|                  THEN
02671  M00S02579.acpd    +++|                    BEGIN
02672  M00S02580.acpd    +++|                    VLR=VL;
02673  M00S02581.acpd    +++|                    AV=VLR/SPT$WD[TP];
02674  M00S02582.acpd    +++|                    BUF$SM[C]=BUF$SM[C] + AV;
02675  M00S02583.acpd    +++|                    BUF$SQ[CQ]=BUF$SQ[CQ] + AV*AV;
02676  M00S02584.acpd    +++|                    DDSM$SM[C]=DDSM$SM[C] + AV;
02677  M00S02585.acpd    +++|                    DDSM$SQ[C]=DDSM$SQ[C] + AV*AV;
02678  M00S02586.acpd    +++|                    END
02679  M00S02587.acpd    +++|
02680  M00S02588.acpd    +++|                  END  # COMPUTE CUMULATIVE *AV* AND SQUARED *AV* #
02681  M00S02589.acpd    +++|
02682  M00S02590.acpd    +++|                END  # DECODE DATA BLOCK VALUES #
02683  M00S02591.acpd    +++|
02684  M00S02592.acpd    +++|              C=C+1;                 # NEXT DECODED BUFFER ADDRESS #
02685  M00S02593.acpd    +++|              BA=BA+PR;              # NEXT *CIO* BUFFER BYTE ADDRESS #
02686  M00S02594.acpd    +++|              END  # COLLECT VALUE OF ONE ENTRY #
02687  M00S02595.acpd    +++|
02688  M00S02596.acpd    +++|            J=J+1;
02689  M00S02597.acpd    +++|            END  # COLLECT ONE ENTRY OF REPEAT GROUP #
02690  M00S02598.acpd    +++|
02691  M00S02599.acpd    +++|          END  # COLLECT REPEAT GROUP VALUES #
02692  M00S02600.acpd    +++|
02693  M00S02601.acpd    +++|        END  # FOLLOW TABLE *MPAR* #
02694  M00S02602.acpd    +++|
02695  M00S02603.acpd    +++|#
02696  M00S02604.acpd    +++|*     CHECK IF THERE IS ANY MISSING ELEMENTS. THE VALUE OF
02697  M00S02605.acpd    +++|*     *IBWA* HAS TO BE A MULTIPLE OF *IBNW*, FOR THE *CIO* BUFFER
02698  M00S02606.acpd    +++|*     HAS TO CONTAIN A MULTIPLE NUMBER OF DATA BLOCKS OR
02699  M00S02607.acpd    +++|*     HEADER BLOCK.
02700  M00S02608.acpd    +++|#
02701  M00S02609.acpd    +++|
02702  M00S02610.acpd    +++|      C=BA/CPWC;
02703  M00S02611.acpd    +++|      IBWA=C+1;                      # NEXT *CIO* BUFFER ADDRESS #
02704  M00S02612.acpd    +++|      J=BA - (C*CPWC);
02705  M00S02613.acpd    +++|      IF (J NQ 0)
02706  M00S02614.acpd    +++|      THEN
02707  M00S02615.acpd    +++|        BEGIN
02708  M00S02616.acpd    +++|        C=C+1;
02709  M00S02617.acpd    +++|        END
02710  M00S02618.acpd    +++|
02711  M00S02619.acpd    +++|      I=IBNW - (IBNW/C)*C;
02712  M00S02620.acpd    +++|      IF (I NQ 0)                    # NOT A MULTIPLE OF *IBNW* #
02713  M00S02621.acpd    +++|      THEN
02714  M00S02622.acpd    +++|        BEGIN
02715  M00S02623.acpd    +++|        PERROR(ERM6,FATAL,NULL);     # DATA FILE CONTENT ERROR #
02716  M00S02624.acpd    +++|        END
02717  M00S02625.acpd    +++|
02718  M00S02626.acpd    +++|      RETURN;
02719  M00S02627.acpd    +++|      END  # DECODE #
02720  M00S02628.acpd    +++|
02721  M00S02629.acpd    +++|      TERM
02722  M00S02630.acpd    +++|PROC DETMXM(MXP,MNP,(MXI),(MNI),(DTY));
02723  M00S02631.acpd    +++|# TITLE DETMXM - DETERMINE MAXIMUM AND MINIMUM VALUES.  #
02724  M00S02632.acpd    +++|
02725  M00S02633.acpd    +++|      BEGIN  # DETMXM #
02726  M00S02634.acpd    +++|
02727  M00S02635.acpd    +++|#
02728  M00S02636.acpd    +++|**    DETMXM - DETERMINE MAXIMUM AND MINIMUM VALUES.
02729  M00S02637.acpd    +++|*
02730  M00S02638.acpd    +++|*     DETERMINE THE MINIMUM AND MAXIMUM VALUES OF ONE
02731  M00S02639.acpd    +++|*     REPORT LINE. THE MAXIMUM VALUE IS INDICATED BY BRACKETS,
02732  M00S02640.acpd    +++|*     THE MINIMUM VALUE IS INDICATED BY PARENTHESES.
02733  M00S02641.acpd    +++|*
02734  M00S02642.acpd    +++|*     PROC DETMXM(MXP,MNP,(MXI),(MNI),(DTY))
02735  M00S02643.acpd    +++|*
02736  M00S02644.acpd    +++|*     ENTRY      MXP = MAXIMUM VALUE ADDRESS.
02737  M00S02645.acpd    +++|*                MNP = MINIMUM VALUE ADDRESS.
02738  M00S02646.acpd    +++|*                MXI = INTERVAL CONTAINING MAXIMUM VALUE.
02739  M00S02647.acpd    +++|*                MNI = INTERVAL CONTAINING MINIMUM VALUE.
02740  M00S02648.acpd    +++|*                DTY = DATA TYPE.
02741  M00S02649.acpd    +++|*
02742  M00S02650.acpd    +++|*     EXIT       MAXIMUM AND MINIMUM VALUES ARE INDICATED BY
02743  M00S02651.acpd    +++|*                BRACKETS AND PARENTHESES, RESPECTIVELY.
02744  M00S02652.acpd    +++|#
02745  M00S02653.acpd    +++|
02746  M00S02654.acpd    +++|#
02747  M00S02655.acpd    +++|*     PARAMETER LIST.
02748  M00S02656.acpd    +++|#
02749  M00S02657.acpd    +++|
02750  M00S02658.acpd    +++|      ITEM MXP        U;             # ADDRESS OF MAXIMUM VALUE #
02751  M00S02659.acpd    +++|      ITEM MNP        U;             # ADDRESS OF MINIMUM VALUE #
02752  M00S02660.acpd    +++|      ITEM MXI        I;             # COLUMN OF MAXIMUM VALUE #
02753  M00S02661.acpd    +++|      ITEM MNI        I;             # COLUMN OF MINIMUM VALUE #
02754  M00S02662.acpd    +++|      ITEM DTY        U;             # DATA TYPE #
02755  M00S02663.acpd    +++|
02756  M00S02664.acpd    +++|#
02757  M00S02665.acpd    +++|****  PROC DETMXM - XREF LIST BEGIN.
02758  M00S02666.acpd    +++|#
02759  M00S02667.acpd    +++|
02760  M00S02668.acpd    +++|      XREF
02761  M00S02669.acpd    +++|        BEGIN
02762  M00S02670.acpd    +++|        FUNC XCDD C(10);             # BINARY TO DISPLAY DECIMAL #
02763  M00S02671.acpd    +++|        FUNC XCED C(10);             # BINARY TO *E* FORMAT #
02764  M00S02672.acpd    +++|        FUNC XCOD C(10);             # BINARY TO DISPLAY OCTAL #
02765  M00S02673.acpd    +++|        FUNC XCFD C(10);             # BINARY TO DISPLAY REAL #
02766  M00S02674.acpd    +++|        PROC WRITEV;                 # WRITE DATA ELEMENT #
02767  M00S02675.acpd    +++|        END
02768  M00S02676.acpd    +++|
02769  M00S02677.acpd    +++|#
02770  M00S02678.acpd    +++|****  PROC DETMXM - XREF LIST END.
02771  M00S02679.acpd    +++|#
02772  M00S02680.acpd    +++|
02773  M00S02681.acpd    +++|      DEF BLKC       #" "#;          # BLANK #
02774  M00S02682.acpd    +++|      DEF LBKC       #"["#;          # LEFT BRACKET #
02775  M00S02683.acpd    +++|      DEF LPRC       #"("#;          # LEFT PARENTHESIS #
02776  M00S02684.acpd    +++|      DEF MAXF       #1.0E4#;        # MAXIMUM VALUE OF *F* FORMAT #
02777  M00S02685.acpd    +++|      DEF RBKC       #"]"#;          # RIGHT BRACKET #
02778  M00S02686.acpd    +++|      DEF RPRC       #")"#;          # RIGHT  PARENTHESIS #
02779  M00S02687.acpd    +++|
02780  M00S02688.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
02781  M00S02689.acpd    +++|
02782  M00S02690.acpd    +++|*CALL     COMUCPD
02783  M00S02691.acpd    +++|
02784  M00S02692.acpd    +++|#
02785  M00S02693.acpd    +++|*     LOCAL VARIABLES.
02786  M00S02694.acpd    +++|#
02787  M00S02695.acpd    +++|
02788  M00S02696.acpd    +++|      ITEM I          I;             # FOR LOOP CONTROL #
02789  M00S02697.acpd    +++|      ITEM MN         I;             # TEMPORARY VALUE #
02790  M00S02698.acpd    +++|      ITEM MNF        R;             # TEMPORARY VALUE #
02791  M00S02699.acpd    +++|      ITEM MX         I;             # TEMPORARY VALUE #
02792  M00S02700.acpd    +++|      ITEM MXF        R;             # TEMPORARY VALUE #
02793  M00S02701.acpd    +++|
02794  M00S02702.acpd    +++|      ARRAY OCV [0:0] P(1);          # OCTAL VALUE #
02795  M00S02703.acpd    +++|        BEGIN  # ARRAY OCV #
02796  M00S02704.acpd    +++|        ITEM OC$WD      C(00,00,10);  # VALUE #
02797  M00S02705.acpd    +++|        ITEM OC$NP      C(00,06,09);  # NO POSTFIX #
02798  M00S02706.acpd    +++|        END  # ARRAY OCV #
02799  M00S02707.acpd    +++|
02800  M00S02708.acpd    +++|      ARRAY TM [0:0] P(1);           # TEMPORARY BUFFER #
02801  M00S02709.acpd    +++|        BEGIN  # ARRAY TM #
02802  M00S02710.acpd    +++|        ITEM TM$WD      C(00,00,10);  # DISPLAY CODE MINIMUM VALUE #
02803  M00S02711.acpd    +++|        ITEM TM$W1      C(00,00,09);  # VALUE WITH NO POSTFIX #
02804  M00S02712.acpd    +++|        END  # ARRAY TM #
02805  M00S02713.acpd    +++|
02806  M00S02714.acpd    +++|      ARRAY TX [0:0] P(1);           # TEMPORARY BUFFER #
02807  M00S02715.acpd    +++|        BEGIN  # ARRAY TX #
02808  M00S02716.acpd    +++|        ITEM TX$WD      C(00,00,10);  # DISPLAY CODE MAXIMUM VALUE #
02809  M00S02717.acpd    +++|        ITEM TX$W1      C(00,00,09);  # VALUE WITH NO POSTFIX #
02810  M00S02718.acpd    +++|        END  # ARRAY TX #
02811  M00S02719.acpd    +++|
02812  M00S02720.acpd    +++|      BASED
02813  M00S02721.acpd    +++|      ARRAY VLMN [0:0] P(1);         # MINIMUM VALUE #
02814  M00S02722.acpd    +++|        BEGIN  # ARRAY VLMN #
02815  M00S02723.acpd    +++|        ITEM VLMN$F     R(00,00,60);  # REAL VALUE #
02816  M00S02724.acpd    +++|        ITEM VLMN$N     I(00,00,60);  # INTEGER VALUE #
02817  M00S02725.acpd    +++|        END  # ARRAY VLMN #
02818  M00S02726.acpd    +++|
02819  M00S02727.acpd    +++|      BASED
02820  M00S02728.acpd    +++|      ARRAY VLMX [0:0] P(1);         # MAXIMUM VALUE #
02821  M00S02729.acpd    +++|        BEGIN  # ARRAY VLMX #
02822  M00S02730.acpd    +++|        ITEM VLMX$F     R(00,00,60);  # REAL VALUE #
02823  M00S02731.acpd    +++|        ITEM VLMX$N     I(00,00,60);  # INTEGER VALUE #
02824  M00S02732.acpd    +++|        END  # ARRAY VLMX #
02825  M00S02733.acpd    +++|
02826  M00S02734.acpd    +++|
02827  M00S02735.acpd    +++|
02828  M00S02736.acpd    +++|
02829  M00S02737.acpd    +++|
02830  M00S02738.acpd    +++|#
02831  M00S02739.acpd    +++|*     BEGIN DETMXM PROC.
02832  M00S02740.acpd    +++|#
02833  M00S02741.acpd    +++|
02834  M00S02742.acpd    +++|      IF (P$L EQ NULL)               # NO REPORT FILE #
02835  M00S02743.acpd    +++|      THEN
02836  M00S02744.acpd    +++|        BEGIN
02837  M00S02745.acpd    +++|        RETURN;
02838  M00S02746.acpd    +++|        END
02839  M00S02747.acpd    +++|
02840  M00S02748.acpd    +++|#
02841  M00S02749.acpd    +++|*     CONVERT MAXIMUM AND MINIMUM VALUES TO DISPLAY CODE.
02842  M00S02750.acpd    +++|#
02843  M00S02751.acpd    +++|
02844  M00S02752.acpd    +++|      P<VLMX>=LOC(MXP);
02845  M00S02753.acpd    +++|      P<VLMN>=LOC(MNP);
02846  M00S02754.acpd    +++|      IF (DTY EQ FLPC)               # REAL VALUE #
02847  M00S02755.acpd    +++|      THEN
02848  M00S02756.acpd    +++|        BEGIN
02849  M00S02757.acpd    +++|        IF (VLMX$F[0] GQ MAXF)
02850  M00S02758.acpd    +++|        THEN
02851  M00S02759.acpd    +++|          BEGIN  # CONVERT TO *E* FORMAT #
02852  M00S02760.acpd    +++|          MXF=VLMX$F[0];
02853  M00S02761.acpd    +++|          TX$WD[0]=XCED(MXF);
02854  M00S02762.acpd    +++|          END  # CONVERT TO *E* FORMAT #
02855  M00S02763.acpd    +++|
02856  M00S02764.acpd    +++|        ELSE
02857  M00S02765.acpd    +++|          BEGIN  # CONVERT TO *F* FORMAT #
02858  M00S02766.acpd    +++|          MX=VLMX$F[0]*1000.0 + 0.5;
02859  M00S02767.acpd    +++|          TX$WD[0]=XCFD(MX);
02860  M00S02768.acpd    +++|          END  # CONVERT TO *F* FORMAT #
02861  M00S02769.acpd    +++|
02862  M00S02770.acpd    +++|        IF (VLMN$F[0] GQ MAXF)
02863  M00S02771.acpd    +++|        THEN
02864  M00S02772.acpd    +++|          BEGIN  # CONVERT TO *E* FORMAT #
02865  M00S02773.acpd    +++|          MNF=VLMN$F[0];
02866  M00S02774.acpd    +++|          TM$WD[0]=XCED(MNF);
02867  M00S02775.acpd    +++|          END  # CONVERT TO *E* FORMAT #
02868  M00S02776.acpd    +++|
02869  M00S02777.acpd    +++|        ELSE
02870  M00S02778.acpd    +++|          BEGIN  # CONVERT TO *F* FORMAT #
02871  M00S02779.acpd    +++|          MN=VLMN$F[0]*1000.0 + 0.5;
02872  M00S02780.acpd    +++|          TM$WD[0]=XCFD(MN);
02873  M00S02781.acpd    +++|          END  # CONVERT TO *F* FORMAT #
02874  M00S02782.acpd    +++|
02875  M00S02783.acpd    +++|        END
02876  M00S02784.acpd    +++|
02877  M00S02785.acpd    +++|      ELSE
02878  M00S02786.acpd    +++|        BEGIN
02879  M00S02787.acpd    +++|        IF (DTY EQ INTC)             # INTEGER VALUE #
02880  M00S02788.acpd    +++|        THEN
02881  M00S02789.acpd    +++|          BEGIN
02882  M00S02790.acpd    +++|          TX$WD[0]=XCDD(VLMX$N[0]);
02883  M00S02791.acpd    +++|          TM$WD[0]=XCDD(VLMN$N[0]);
02884  M00S02792.acpd    +++|          END
02885  M00S02793.acpd    +++|
02886  M00S02794.acpd    +++|        ELSE                         # OCTAL VALUE #
02887  M00S02795.acpd    +++|          BEGIN
02888  M00S02796.acpd    +++|          OC$WD[0]=XCOD(VLMX$N[0]);
02889  M00S02797.acpd    +++|          TX$W1[0]=OC$NP[0];
02890  M00S02798.acpd    +++|          OC$WD[0]=XCOD(VLMN$N[0]);
02891  M00S02799.acpd    +++|          TM$W1[0]=OC$NP[0];
02892  M00S02800.acpd    +++|          END
02893  M00S02801.acpd    +++|
02894  M00S02802.acpd    +++|        END
02895  M00S02803.acpd    +++|
02896  M00S02804.acpd    +++|#
02897  M00S02805.acpd    +++|*     ENCLOSE THE MAXIMUM AND MINIMUM VALUES BY BRACKETS AND
02898  M00S02806.acpd    +++|*     PARENTHESES, RESPECTIVELY.
02899  M00S02807.acpd    +++|#
02900  M00S02808.acpd    +++|
02901  M00S02809.acpd    +++|      SLOWFOR I=0 STEP 1 WHILE (C<I,1>TX$WD[0] EQ BLKC) DO;
02902  M00S02810.acpd    +++|      MX=MXI*10 + I + 14;
02903  M00S02811.acpd    +++|      WRITEV(LBKC,CHRC,MX,1,NLFC);
02904  M00S02812.acpd    +++|      MX=BCLC + MXI*10;
02905  M00S02813.acpd    +++|      WRITEV(RBKC,CHRC,MX,1,NLFC);
02906  M00S02814.acpd    +++|
02907  M00S02815.acpd    +++|      SLOWFOR I=0 STEP 1 WHILE (C<I,1>TM$WD[0] EQ BLKC) DO;
02908  M00S02816.acpd    +++|      MN=MNI*10 + I + 14;
02909  M00S02817.acpd    +++|      WRITEV(LPRC,CHRC,MN,1,NLFC);
02910  M00S02818.acpd    +++|      MN=BCLC + MNI*10;
02911  M00S02819.acpd    +++|      WRITEV(RPRC,CHRC,MN,1,NLFC);
02912  M00S02820.acpd    +++|      RETURN;
02913  M00S02821.acpd    +++|      END  # DETMXM #
02914  M00S02822.acpd    +++|
02915  M00S02823.acpd    +++|      TERM
Line S02824 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02916  M01S02824.ns2786  ---|FUNC DTMNUM((VALUE),(FORM)) I;
Line S00009 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02917  M01S00009.ns2786  +++|FUNC DTMNUM((VALUE),(FORM),(PDOS)) I;
02918  M00S02825.acpd    +++|# TITLE DTMNUM - CONVERT DATE/TIME TO NUMBER.  #
02919  M00S02826.acpd    +++|
02920  M00S02827.acpd    +++|      BEGIN  # DTMNUM #
02921  M00S02828.acpd    +++|
02922  M00S02829.acpd    +++|#
02923  M00S02830.acpd    +++|**    DTMNUM - CONVERT DATE/TIME TO NUMBER.
02924  M00S02831.acpd    +++|*
02925  M00S02832.acpd    +++|*     CONVERT DISPLAY DATE/TIME TO THE PACKED FORMAT.
02926  M00S02833.acpd    +++|*
Line S02834 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02927  M01S02834.ns2786  ---|*     FUNC DTMNUM((VALUE),(FORM))
Line S00010 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02928  M01S00010.ns2786  +++|*     FUNC DTMNUM((VALUE),(FORM),(PDOS))
02929  M00S02835.acpd    +++|*
02930  M00S02836.acpd    +++|*     ENTRY      VALUE = VALUE TO BE CONVERTED.
02931  M00S02837.acpd    +++|*                FORM = IF TRUE, THE VALUE IS IN FORMAT
02932  M00S02838.acpd    +++|*                       XX.YY.ZZ.
02933  M00S02839.acpd    +++|*                       IF FALSE, THE VALUE IS IN FORMAT
02934  M00S02840.acpd    +++|*                       XXYYZZ.
Line S00011 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02935  M01S00011.ns2786  +++|*                PDOS = IF TRUE, THE PACKED DATE 1970 OFFSET APPLIES.
02936  M01S00012.ns2786  +++|*                       IF FALSE, NO OFFSET IS APPLIED.
02937  M00S02841.acpd    +++|*
02938  M00S02842.acpd    +++|*     EXIT       VALUE IS CONVERTED TO PACKED FORMAT, AS IN
02939  M00S02843.acpd    +++|*                THE PACKED DATE AND TIME FORMAT.
02940  M00S02844.acpd    +++|#
02941  M00S02845.acpd    +++|
02942  M00S02846.acpd    +++|#
02943  M00S02847.acpd    +++|*     PARAMETER LIST.
02944  M00S02848.acpd    +++|#
02945  M00S02849.acpd    +++|
02946  M00S02850.acpd    +++|      ITEM VALUE       C(10);         # VALUE TO BE CONVERTED #
Line S02851 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02947  M01S02851.ns2786  ---|      ITEM FORM       B;             # FORMAT, DATE OR TIME #
Line S00013 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
02948  M01S00013.ns2786  +++|      ITEM FORM       B;             # FORMAT OF DATE OR TIME #
02949  M01S00014.ns2786  +++|      ITEM PDOS       B;             # APPLY PACKED DATE OFFSET #
02950  M00S02852.acpd    +++|
02951  M00S02853.acpd    +++|#
02952  M00S02854.acpd    +++|****  FUNC DTMNUM - XREF LIST BEGIN.
02953  M00S02855.acpd    +++|#
02954  M00S02856.acpd    +++|
02955  M00S02857.acpd    +++|      XREF
02956  M00S02858.acpd    +++|        BEGIN
02957  M00S02859.acpd    +++|        PROC PERROR;                 # PROCESS ERROR #
02958  M00S02860.acpd    +++|        END
02959  M00S02861.acpd    +++|
02960  M00S02862.acpd    +++|#
02961  M00S02863.acpd    +++|****  FUNC DTMNUM - XREF LIST END.
02962  M00S02864.acpd    +++|#
02963  M00S02865.acpd    +++|
02964  M00S02866.acpd    +++|      DEF ZERC       #"0"#;          # CHARACTER 0 #
02965  M00S02867.acpd    +++|
02966  M00S02868.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
02967  M00S02869.acpd    +++|
02968  M00S02870.acpd    +++|*CALL     COMUCPD
02969  M00S02871.acpd    +++|
02970  M00S02872.acpd    +++|#
02971  M00S02873.acpd    +++|*     LOCAL VARIABLES.
02972  M00S02874.acpd    +++|#
02973  M00S02875.acpd    +++|
02974  M00S02876.acpd    +++|      ITEM E          I;             # EXPONENTIAL #
02975  M00S02877.acpd    +++|      ITEM I          I;             # FOR LOOP CONTROL #
02976  M00S02878.acpd    +++|      ITEM N          I;             # TEMPORARY VARIABLE #
02977  M00S02879.acpd    +++|      ITEM T          U;             # TIME #
02978  M00S02880.acpd    +++|
02979  M00S02881.acpd    +++|      ARRAY TM [0:0] P(1);           # VALUE TO BE CONVERTED #
02980  M00S02882.acpd    +++|        BEGIN  # ARRAY TM #
02981  M00S02883.acpd    +++|        ITEM TM$WD      C(00,00,10);  # VALUE #
02982  M00S02884.acpd    +++|        ITEM TM$XX      C(00,00,02);  # XX OF XXYYZZ #
02983  M00S02885.acpd    +++|        ITEM TM$YY      C(00,12,02);  # YY OF XXYYZZ #
02984  M00S02886.acpd    +++|        ITEM TM$ZZ      C(00,24,02);  # ZZ OF XXYYZZ #
02985  M00S02887.acpd    +++|
02986  M00S02888.acpd    +++|        ITEM TM$X1      C(00,06,02);  # XX OF XX.YY.ZZ #
02987  M00S02889.acpd    +++|        ITEM TM$D1      C(00,18,01);  # DELIMITER #
02988  M00S02890.acpd    +++|        ITEM TM$Y1      C(00,24,02);  # YY OF XX.YY.ZZ #
02989  M00S02891.acpd    +++|        ITEM TM$D2      C(00,36,01);  # DELIMITER #
02990  M00S02892.acpd    +++|        ITEM TM$Z1      C(00,42,02);  # ZZ OF XX.YY.ZZ #
02991  M00S02893.acpd    +++|        END  # ARRAY TM #
02992  M00S02894.acpd    +++|
02993  M00S02895.acpd    +++|
02994  M00S02896.acpd    +++|
02995  M00S02897.acpd    +++|
02996  M00S02898.acpd    +++|
02997  M00S02899.acpd    +++|#
02998  M00S02900.acpd    +++|*     BEGIN DTMNUM FUNC.
02999  M00S02901.acpd    +++|#
03000  M00S02902.acpd    +++|
03001  M00S02903.acpd    +++|      TM$WD[0]=VALUE;
03002  M00S02904.acpd    +++|
03003  M00S02905.acpd    +++|      IF (FORM)                      # FORMAT XX.YY.ZZ #
03004  M00S02906.acpd    +++|      THEN                           # CONVERT TO FORMAT XXYYZZ #
03005  M00S02907.acpd    +++|        BEGIN
03006  M00S02908.acpd    +++|        TM$XX[0]=TM$X1[0];
03007  M00S02909.acpd    +++|        TM$YY[0]=TM$Y1[0];
03008  M00S02910.acpd    +++|        TM$ZZ[0]=TM$Z1[0];
03009  M00S02911.acpd    +++|        END
03010  M00S02912.acpd    +++|
03011  M00S02913.acpd    +++|      IF (TM$WD[0] EQ 0)
03012  M00S02914.acpd    +++|      THEN
03013  M00S02915.acpd    +++|        BEGIN
03014  M00S02916.acpd    +++|        DTMNUM=0;
03015  M00S02917.acpd    +++|        RETURN;
03016  M00S02918.acpd    +++|        END
03017  M00S02919.acpd    +++|
03018  M00S02920.acpd    +++|#
03019  M00S02921.acpd    +++|*     CONVERT TO THE PACKED FORMAT.
03020  M00S02922.acpd    +++|#
03021  M00S02923.acpd    +++|
03022  M00S02924.acpd    +++|      N=0;
03023  M00S02925.acpd    +++|      E=1;
03024  M00S02926.acpd    +++|      FASTFOR I=0 STEP 2 UNTIL 5
03025  M00S02927.acpd    +++|      DO
03026  M00S02928.acpd    +++|        BEGIN
03027  M00S02929.acpd    +++|        T=C<5-I,1>TM$WD[0] - ZERC;
03028  M00S02930.acpd    +++|        T=(C<4-I>TM$WD[0] - ZERC)*10 + T;
03029  M00S02931.acpd    +++|        N=N+T*E;
03030  M00S02932.acpd    +++|        E=E*64;
03031  M00S02933.acpd    +++|        END
03032  M00S02934.acpd    +++|
Line S00015 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03033  M01S00015.ns2786  +++|      IF (PDOS)                      # CONVERTING DATE #
03034  M01S00016.ns2786  +++|      THEN                           # CHECK DATE RANGE #
03035  M01S00017.ns2786  +++|        BEGIN
03036  M01S00018.ns2786  +++|        IF (N LS Y70C)               # DATE IN 21ST CENTURY #
03037  M01S00019.ns2786  +++|        THEN
03038  M01S00020.ns2786  +++|          BEGIN
03039  M01S00021.ns2786  +++|          N=N+Y30C;                  # BIAS 21ST CENTURY DATES #
03040  M01S00022.ns2786  +++|          END
03041  M01S00023.ns2786  +++|        ELSE                         # DATE IN 20TH CENTURY #
03042  M01S00024.ns2786  +++|          BEGIN
03043  M01S00025.ns2786  +++|          N=N-Y70C;                  # BIAS 20TH CENTURY DATES #
03044  M01S00026.ns2786  +++|          END
03045  M01S00027.ns2786  +++|        END
03046  M01S00028.ns2786  +++|
03047  M00S02935.acpd    +++|      DTMNUM=N;
03048  M00S02936.acpd    +++|      RETURN;
03049  M00S02937.acpd    +++|      END  # DTMNUM #
03050  M00S02938.acpd    +++|
03051  M00S02939.acpd    +++|      TERM
03052  M00S02940.acpd    +++|PROC GETMSG((ENT),MSG);
03053  M00S02941.acpd    +++|# TITLE GETMSG - GET REPORT MESSAGE.  #
03054  M00S02942.acpd    +++|
03055  M00S02943.acpd    +++|      BEGIN  # GETMSG #
03056  M00S02944.acpd    +++|
03057  M00S02945.acpd    +++|#
03058  M00S02946.acpd    +++|**    GETMSG - GET REPORT MESSAGE.
03059  M00S02947.acpd    +++|*
03060  M00S02948.acpd    +++|*     GET MESSAGES FROM COMMON BLOCK *DSPTTXT*.
03061  M00S02949.acpd    +++|*
03062  M00S02950.acpd    +++|*     PROC GETMSG((ENT),MSG)
03063  M00S02951.acpd    +++|*
03064  M00S02952.acpd    +++|*     ENTRY      ENT = INDEX OF TABLE *DSPT* ENTRY.
03065  M00S02953.acpd    +++|*
03066  M00S02954.acpd    +++|*     EXIT       MSG = MESSAGE EXTRACTED FROM COMMON BLOCK *DSPTTXT*.
03067  M00S02955.acpd    +++|#
03068  M00S02956.acpd    +++|
03069  M00S02957.acpd    +++|#
03070  M00S02958.acpd    +++|*     PARAMETER LIST.
03071  M00S02959.acpd    +++|#
03072  M00S02960.acpd    +++|
03073  M00S02961.acpd    +++|      ITEM ENT        I;             # INDEX OF TABLE *DSPT* #
03074  M00S02962.acpd    +++|      ITEM MSG        C(50);         # REPORT TITLES #
03075  M00S02963.acpd    +++|
03076  M00S02964.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
03077  M00S02965.acpd    +++|
03078  M00S02966.acpd    +++|*CALL     COMUCPD
03079  M00S02967.acpd    +++|
03080  M00S02968.acpd    +++|#
03081  M00S02969.acpd    +++|*     LOCAL VARIABLES.
03082  M00S02970.acpd    +++|#
03083  M00S02971.acpd    +++|
03084  M00S02972.acpd    +++|      ITEM BA         I;             # BYTE ADDRESS #
03085  M00S02973.acpd    +++|      ITEM BC         I;             # BEGINNING CHARACTER POSITION #
03086  M00S02974.acpd    +++|      ITEM LN         I;             # MESSAGE LENGTH IN CHARACTER #
03087  M00S02975.acpd    +++|
03088  M00S02976.acpd    +++|      BASED
03089  M00S02977.acpd    +++|      ARRAY TXT [0:0] P(1);          # MESSAGE BUFFER #
03090  M00S02978.acpd    +++|        BEGIN  # ARRAY TXT #
03091  M00S02979.acpd    +++|        ITEM TXT$MS     C(00,00,60);  # MESSAGE #
03092  M00S02980.acpd    +++|        END  # ARRAY TXT #
03093  M00S02981.acpd    +++|
03094  M00S02982.acpd    +++|
03095  M00S02983.acpd    +++|
03096  M00S02984.acpd    +++|
03097  M00S02985.acpd    +++|
03098  M00S02986.acpd    +++|#
03099  M00S02987.acpd    +++|*     BEGIN GETMSG PROC.
03100  M00S02988.acpd    +++|#
03101  M00S02989.acpd    +++|
03102  M00S02990.acpd    +++|      LN=DSPT$LN[ENT];               # NUMBER OF CHARACTERS #
03103  M00S02991.acpd    +++|      BC=DSPT$BC[ENT];               # BEGINNING CHARACTER POSITION #
03104  M00S02992.acpd    +++|      BA=BC - (BC/10)*10;
03105  M00S02993.acpd    +++|      P<TXT>=LOC(DSTX$TX[BC/10]);
03106  M00S02994.acpd    +++|      MSG=C<BA,LN>TXT$MS[0];
03107  M00S02995.acpd    +++|      RETURN;
03108  M00S02996.acpd    +++|      END  # GETMSG #
03109  M00S02997.acpd    +++|
03110  M00S02998.acpd    +++|      TERM
03111  M00S02999.acpd    +++|FUNC GETVAL((BA),(PR)) I;
03112  M00S03000.acpd    +++|# TITLE GETVAL - GET VALUE FROM *CIO* BUFFER.  #
03113  M00S03001.acpd    +++|
03114  M00S03002.acpd    +++|      BEGIN  # GETVAL #
03115  M00S03003.acpd    +++|
03116  M00S03004.acpd    +++|#
03117  M00S03005.acpd    +++|**    GETVAL - GET VALUE FROM *CIO* BUFFER.
03118  M00S03006.acpd    +++|*
03119  M00S03007.acpd    +++|*     EXTRACT VALUES FROM THE *CIO* BUFFER OF THE DATA FILE.
03120  M00S03008.acpd    +++|*
03121  M00S03009.acpd    +++|*     FUNC GETVAL((BA),(PR)) I
03122  M00S03010.acpd    +++|*
03123  M00S03011.acpd    +++|*     ENTRY      BA = BYTE ADDRESS OF THE VALUE TO BE EXTRACTED.
03124  M00S03012.acpd    +++|*                PR = NUMBER OF BYTES TO BE EXTRACTED.
03125  M00S03013.acpd    +++|*
03126  M00S03014.acpd    +++|*     EXIT       THE VALUE IS EXTRACTED FROM BUFFER *WSAI*.
03127  M00S03015.acpd    +++|#
03128  M00S03016.acpd    +++|
03129  M00S03017.acpd    +++|#
03130  M00S03018.acpd    +++|*     PARAMETER LIST.
03131  M00S03019.acpd    +++|#
03132  M00S03020.acpd    +++|
03133  M00S03021.acpd    +++|      ITEM BA         I;             # BYTE ADDRESS #
03134  M00S03022.acpd    +++|      ITEM PR         I;             # PRECISION #
03135  M00S03023.acpd    +++|
03136  M00S03024.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
03137  M00S03025.acpd    +++|
03138  M00S03026.acpd    +++|*CALL     COMUCPD
03139  M00S03027.acpd    +++|
03140  M00S03028.acpd    +++|#
03141  M00S03029.acpd    +++|*     LOCAL VARIABLES.
03142  M00S03030.acpd    +++|#
03143  M00S03031.acpd    +++|
03144  M00S03032.acpd    +++|      ITEM BC         I;             # BYTE ADDRESS #
03145  M00S03033.acpd    +++|      ITEM T          I;             # TEMPORARY VALUE #
03146  M00S03034.acpd    +++|      ITEM WA         I;             # *CIO* BUFFER WORD ADDRESS #
03147  M00S03035.acpd    +++|
03148  M00S03036.acpd    +++|      BASED
03149  M00S03037.acpd    +++|      ARRAY WSA [0:0] P(1);          # WORKING BUFFER #
03150  M00S03038.acpd    +++|        BEGIN  # ARRAY WSA #
03151  M00S03039.acpd    +++|        ITEM WSA$C      C(00,00,20);  # BUFFER ENTRY #
03152  M00S03040.acpd    +++|        END  # ARRAY WSA #
03153  M00S03041.acpd    +++|
03154  M00S03042.acpd    +++|
03155  M00S03043.acpd    +++|
03156  M00S03044.acpd    +++|
03157  M00S03045.acpd    +++|
03158  M00S03046.acpd    +++|#
03159  M00S03047.acpd    +++|*     BEGIN GETVAL FUNC.
03160  M00S03048.acpd    +++|#
03161  M00S03049.acpd    +++|
03162  M00S03050.acpd    +++|      WA=BA/5;                       # ADDRESS TO EXTRACT THE VALUE #
03163  M00S03051.acpd    +++|      P<WSA>=LOC(WSAI$WD[WA]);
03164  M00S03052.acpd    +++|      T=BA*2;                        # NUMBER OF CHARACTERS #
03165  M00S03053.acpd    +++|      BC=T - (T/10)*10;              # BEGIN CHARACTER POSITION #
03166  M00S03054.acpd    +++|      GETVAL=C<BC,PR*2>WSA$C[0];
03167  M00S03055.acpd    +++|      RETURN;
03168  M00S03056.acpd    +++|      END  # GETVAL #
03169  M00S03057.acpd    +++|
03170  M00S03058.acpd    +++|      TERM
03171  M00S03059.acpd    +++|PROC HDRELM((ENP),(FCL),(LCL));
03172  M00S03060.acpd    +++|# TITLE HDRELM - PRINT HEADER BLOCK ELEMENT.  #
03173  M00S03061.acpd    +++|
03174  M00S03062.acpd    +++|      BEGIN  # HDRELM #
03175  M00S03063.acpd    +++|
03176  M00S03064.acpd    +++|#
03177  M00S03065.acpd    +++|**    HDRELM - PRINT HEADER BLOCK ELEMENT.
03178  M00S03066.acpd    +++|*
03179  M00S03067.acpd    +++|*     PRINT ONE ELEMENT OF HEADER BLOCK.
03180  M00S03068.acpd    +++|*
03181  M00S03069.acpd    +++|*     PROC HDRELM((ENP),(FCL),(LCL))
03182  M00S03070.acpd    +++|*
03183  M00S03071.acpd    +++|*     ENTRY      ENP = INDEX OF THE *DSPT* ENTRY POINTING TO
03184  M00S03072.acpd    +++|*                      THE HEADER BLOCK ELEMENT BEING PROCESSED.
03185  M00S03073.acpd    +++|*                FCL = BEGINNING COLUMN TO PRINT THE HEADER BLOCK
03186  M00S03074.acpd    +++|*                      ELEMENT NAME.
03187  M00S03075.acpd    +++|*                LCL = BEGINNING COLUMN TO PRINT THE HEADER BLOCK
03188  M00S03076.acpd    +++|*                      ELEMENT VALUE.
03189  M00S03077.acpd    +++|*
03190  M00S03078.acpd    +++|*     EXIT       THE HEADER BLOCK ELEMENT IS PRINTED TO THE REPORT
03191  M00S03079.acpd    +++|*                FILE.
03192  M00S03080.acpd    +++|#
03193  M00S03081.acpd    +++|
03194  M00S03082.acpd    +++|#
03195  M00S03083.acpd    +++|*     PARAMETER LIST.
03196  M00S03084.acpd    +++|#
03197  M00S03085.acpd    +++|
03198  M00S03086.acpd    +++|      ITEM ENP        I;             # INDEX OF DSPT ENTRY #
03199  M00S03087.acpd    +++|      ITEM FCL        I;             # BEGIN COLUMN TO PRINT NAME #
03200  M00S03088.acpd    +++|      ITEM LCL        I;             # BEGIN COLUMN TO PRINT VALUE #
03201  M00S03089.acpd    +++|
03202  M00S03090.acpd    +++|#
03203  M00S03091.acpd    +++|****  PROC HDRELM - XREF LIST BEGIN.
03204  M00S03092.acpd    +++|#
03205  M00S03093.acpd    +++|
03206  M00S03094.acpd    +++|      XREF
03207  M00S03095.acpd    +++|        BEGIN
03208  M00S03096.acpd    +++|        PROC GETMSG;                 # GET TITLE FROM TABLE *DSPTTXT* #
03209  M00S03097.acpd    +++|        PROC WRITEV;                 # WRITE DATA ELEMENT #
03210  M00S03098.acpd    +++|        END
03211  M00S03099.acpd    +++|
03212  M00S03100.acpd    +++|#
03213  M00S03101.acpd    +++|****  PROC HDRELM - XREF LIST END.
03214  M00S03102.acpd    +++|#
03215  M00S03103.acpd    +++|
03216  M00S03104.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
03217  M00S03105.acpd    +++|
03218  M00S03106.acpd    +++|*CALL     COMUCPD
03219  M00S03107.acpd    +++|
03220  M00S03108.acpd    +++|#
03221  M00S03109.acpd    +++|*     LOCAL VARIABLES.
03222  M00S03110.acpd    +++|#
03223  M00S03111.acpd    +++|
03224  M00S03112.acpd    +++|      ITEM BL         I;             # BIT LENGTH #
03225  M00S03113.acpd    +++|      ITEM BT         I;             # BIT POSITION #
03226  M00S03114.acpd    +++|      ITEM D          I;             # DATA TYPE #
03227  M00S03115.acpd    +++|      ITEM J          I;             # POINTER TO *DDHD* TABLE #
03228  M00S03116.acpd    +++|      ITEM L          I;             # TITLE LENGTH IN CHARACTERS #
03229  M00S03117.acpd    +++|      ITEM MSG        C(50);         # TEMPORARY BUFFER #
03230  M00S03118.acpd    +++|      ITEM T          I;             # POINTER TO *DCHD* TABLE #
03231  M00S03119.acpd    +++|      ITEM VALUE      I;             # TEMPORARY VALUE #
03232  M00S03120.acpd    +++|      ITEM WC         I;             # WORD COUNT #
03233  M00S03121.acpd    +++|
03234  M00S03122.acpd    +++|
03235  M00S03123.acpd    +++|
03236  M00S03124.acpd    +++|
03237  M00S03125.acpd    +++|
03238  M00S03126.acpd    +++|#
03239  M00S03127.acpd    +++|*     BEGIN HDRELM PROC.
03240  M00S03128.acpd    +++|#
03241  M00S03129.acpd    +++|
03242  M00S03130.acpd    +++|      P<DCHD>=LOC(DBUF);
03243  M00S03131.acpd    +++|      P<DDSC>=LOC(DDHD);
03244  M00S03132.acpd    +++|      J=DSPT$PT[ENP];                # INDEX OF TABLE *DDSC* #
03245  M00S03133.acpd    +++|      L=DSPT$LN[ENP];
03246  M00S03134.acpd    +++|      T=DDSC$FW[J];                  # INDEX OF TABLE *DCHD* #
03247  M00S03135.acpd    +++|      D=DDSC$TY[J];                  # DATA TYPE #
03248  M00S03136.acpd    +++|      GETMSG(ENP,MSG);
03249  M00S03137.acpd    +++|      WRITEV(MSG,CHRC,FCL,L,NLFC);
03250  M00S03138.acpd    +++|      BL=DSPT$BL[ENP];               # GET BIT LENGTH #
03251  M00S03139.acpd    +++|      WC=DSPT$WC[ENP];               # WORD COUNT #
03252  M00S03140.acpd    +++|      IF (BL EQ 0)                   # ACCESS FULL WORD #
03253  M00S03141.acpd    +++|      THEN
03254  M00S03142.acpd    +++|        BEGIN
03255  M00S03143.acpd    +++|        VALUE=DCHD$WD[T+WC];
03256  M00S03144.acpd    +++|        END
03257  M00S03145.acpd    +++|
03258  M00S03146.acpd    +++|      ELSE                           # ACCESS PARTIAL WORD #
03259  M00S03147.acpd    +++|        BEGIN
03260  M00S03148.acpd    +++|        BT=DSPT$BT[ENP];
03261  M00S03149.acpd    +++|        VALUE=B<BT,BL>DCHD$WD[T+WC];
03262  M00S03150.acpd    +++|        END
03263  M00S03151.acpd    +++|
03264  M00S03152.acpd    +++|      WRITEV(VALUE,D,LCL,10,LFDC);
03265  M00S03153.acpd    +++|      RETURN;
03266  M00S03154.acpd    +++|      END  # HDRELM #
03267  M00S03155.acpd    +++|      TERM
03268  M00S03156.acpd    +++|PROC HEADER(TMED,HDDC,(LSTM));
03269  M00S03157.acpd    +++|# TITLE HEADER - PROCESS HEADER BLOCK.  #
03270  M00S03158.acpd    +++|
03271  M00S03159.acpd    +++|      BEGIN  # HEADER #
03272  M00S03160.acpd    +++|
03273  M00S03161.acpd    +++|#
03274  M00S03162.acpd    +++|**    HEADER - PROCESS HEADER BLOCK.
03275  M00S03163.acpd    +++|*
03276  M00S03164.acpd    +++|*     *HEADER* BUILDS THE REPORT TITLE AND PROCESSES THE HEADER BLOCK
03277  M00S03165.acpd    +++|*     OF EACH FILE IN THE DATA FILE.
03278  M00S03166.acpd    +++|*
03279  M00S03167.acpd    +++|*     PROC HEADER(TMED,HDDC,(LSTM))
03280  M00S03168.acpd    +++|*
03281  M00S03169.acpd    +++|*     ENTRY      HDDC = TRUE IF HEADER BLOCK HAS BEEN DECODED.
03282  M00S03170.acpd    +++|*                LSTM = TIME OF LAST RECORD.
03283  M00S03171.acpd    +++|*
03284  M00S03172.acpd    +++|*     EXIT       TMED = TRUE IF *N* PARAMETER EXCEEDS NUMBER OF FILES.
03285  M00S03173.acpd    +++|*                HDDC = FALSE
03286  M00S03174.acpd    +++|*                ELEMENTS IN HEADER BLOCK ARE PRINTED TO THE
03287  M00S03175.acpd    +++|*                REPORT FILE.
03288  M00S03176.acpd    +++|#
03289  M00S03177.acpd    +++|
03290  M00S03178.acpd    +++|#
03291  M00S03179.acpd    +++|*     PARAMETER LIST.
03292  M00S03180.acpd    +++|#
03293  M00S03181.acpd    +++|
03294  M00S03182.acpd    +++|      ITEM TMED       B;             # EOI FLAG #
03295  M00S03183.acpd    +++|      ITEM HDDC       B;             # DECODE HEADER BLOCK FLAG #
03296  M00S03184.acpd    +++|      ITEM LSTM       U;             # ENDING TIME OF PREVIOUS FILE #
03297  M00S03185.acpd    +++|
03298  M00S03186.acpd    +++|#
03299  M00S03187.acpd    +++|****  PROC HEADER - XREF LIST BEGIN.
03300  M00S03188.acpd    +++|#
03301  M00S03189.acpd    +++|
03302  M00S03190.acpd    +++|      XREF
03303  M00S03191.acpd    +++|        BEGIN
03304  M00S03192.acpd    +++|        PROC ADJUST;                 # ADJUST TABLES AND FIELD LENGTH #
03305  M00S03193.acpd    +++|        PROC BZFILL;                 # BLANK/ZERO FILL ITEM #
03306  M00S03194.acpd    +++|        PROC DECODE;                 # DECODE *CIO* INPUT BUFFER DATA #
03307  M00S03195.acpd    +++|        FUNC DTMNUM U;               # CONVERT DATE/TIME TO BINARY #
03308  M00S03196.acpd    +++|        PROC PERROR;                 # PROCESS ERROR #
03309  M00S03197.acpd    +++|        PROC PUTEST;                 # PRINT EST #
03310  M00S03198.acpd    +++|        PROC PUTHDR;                 # PRINT HEADER ELEMENTS #
03311  M00S03199.acpd    +++|        PROC PUTSCI;                 # PRINT JOB CONTROL BLOCK #
03312  M00S03200.acpd    +++|        PROC READRC;                 # READ AND SKIP #
03313  M00S03201.acpd    +++|        PROC RPHEAD;                 # PRINT *ACPD* TITLE #
03314  M00S03202.acpd    +++|        PROC WRITER;                 # *CIO* WRITER #
03315  M00S03203.acpd    +++|        PROC WRITEW;                 # *CIO* WRITEW #
03316  M00S03204.acpd    +++|        END
03317  M00S03205.acpd    +++|
03318  M00S03206.acpd    +++|#
03319  M00S03207.acpd    +++|****  PROC HEADER - XREF LIST END.
03320  M00S03208.acpd    +++|#
03321  M00S03209.acpd    +++|
03322  M00S03210.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
03323  M00S03211.acpd    +++|
03324  M00S03212.acpd    +++|*CALL     COMUCPD
03325  M00S03213.acpd    +++|*CALL     COMABZF
03326  M00S03214.acpd    +++|
03327  M00S03215.acpd    +++|#
03328  M00S03216.acpd    +++|*     LOCAL VARIABLES.
03329  M00S03217.acpd    +++|#
03330  M00S03218.acpd    +++|
03331  M00S03219.acpd    +++|      ITEM D          I;             # TEMPORARY VARIABLE #
03332  M00S03220.acpd    +++|      ITEM L          I;             # TEMPORARY VARIABLE #
03333  M00S03221.acpd    +++|      ITEM STAT       I;             # I/O STATUS #
03334  M00S03222.acpd    +++|      ITEM T          I;             # TEMPORARY VARIABLE #
03335  M00S03223.acpd    +++|
03336  M00S03224.acpd    +++|      BASED
03337  M00S03225.acpd    +++|      ARRAY HEAD [0:0] P(1);         # HEADER SYSTEM DESIGNATOR #
03338  M00S03226.acpd    +++|        BEGIN  # ARRAY HEAD #
03339  M00S03227.acpd    +++|        ITEM HEAD$SD    C(00,00,70);  # SYSTEM DESIGNATOR #
03340  M00S03228.acpd    +++|        END  # ARRAY HEAD #
03341  M00S03229.acpd    +++|
03342  M00S03230.acpd    +++|      ARRAY TEXT [0:0] S(10);        # HEADER TEXT #
03343  M00S03231.acpd    +++|        BEGIN  # ARRAY TEXT #
03344  M00S03232.acpd    +++|        ITEM TXT$H1     C(00,00,16);  # *ACPD* VERSION #
03345  M00S03233.acpd    +++|        ITEM TXT$VR     C(01,00,10);  # VERSION NUMBER #
03346  M00S03234.acpd    +++|        ITEM TXT$H2     C(02,00,10)=["          "];  # BLANK FILL #
03347  M00S03235.acpd    +++|        ITEM TXT$SD     C(03,00,70);  # SYSTEM DESIGNATOR #
03348  M00S03236.acpd    +++|        END  # ARRAY TEXT #
03349  M00S03237.acpd    +++|
03350  M00S03238.acpd    +++|
03351  M00S03239.acpd    +++|
03352  M00S03240.acpd    +++|
03353  M00S03241.acpd    +++|
03354  M00S03242.acpd    +++|#
03355  M00S03243.acpd    +++|*     BEGIN HEADER PROC.
03356  M00S03244.acpd    +++|#
03357  M00S03245.acpd    +++|
03358  M00S03246.acpd    +++|      P<MPAR>=LOC(HDTR);
03359  M00S03247.acpd    +++|      P<DDSC>=LOC(DDHD);
03360  M00S03248.acpd    +++|      P<DCHD>=LOC(DBUF);
03361  M00S03249.acpd    +++|
03362  M00S03250.acpd    +++|#
03363  M00S03251.acpd    +++|*     *HDDC* IS NOT TRUE IF *HEADER* IS CALLED TO PROCESS THE NEXT
03364  M00S03252.acpd    +++|*     DATA FILE. *HDDC* IS TRUE IF THE FIRST FILE IS BEING PROCESSED.
03365  M00S03253.acpd    +++|*     IF THE LATER IS TRUE, ALL THE ERROR CHECKING HAS BEEN DONE BY
03366  M00S03254.acpd    +++|*     *INITLZ*.
03367  M00S03255.acpd    +++|#
03368  M00S03256.acpd    +++|
03369  M00S03257.acpd    +++|      IF (NOT HDDC)                  # HEADER BLOCK NOT DECODED #
03370  M00S03258.acpd    +++|      THEN
03371  M00S03259.acpd    +++|        BEGIN  # READ HEADER BLOCK OF NEXT FILE #
03372  M00S03260.acpd    +++|        READRC(STAT);                # READ HEADER BLOCK #
03373  M00S03261.acpd    +++|        IF (STAT NQ EORC)            # EOF OR EOI ENCOUNTERED #
03374  M00S03262.acpd    +++|        THEN
03375  M00S03263.acpd    +++|          BEGIN
03376  M00S03264.acpd    +++|          IF (IBNW GR 0)             # INPUT BUFFER NOT EMPTY #
03377  M00S03265.acpd    +++|          THEN
03378  M00S03266.acpd    +++|            BEGIN
03379  M00S03267.acpd    +++|            PERROR(ERM4,FATAL,NULL);   # DATA BLOCKS MISSING #
03380  M00S03268.acpd    +++|            END
03381  M00S03269.acpd    +++|
Line S03270 Modification History
M01 (Removed by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03382  M01S03270.v23l617 ---|          IF (P$N LS MXFC)           # NOT *N* WITH NO EQUIVALENCE #
Line S00070 Modification History
M01 (Added by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03383  M01S00070.v23l617 +++|          IF (P$N LS 9999999)        # EQUIVALENCED *N* PARAMETER #
03384  M00S03271.acpd    +++|          THEN
03385  M00S03272.acpd    +++|            BEGIN
03386  M00S03273.acpd    +++|            PERROR(ERM9,INFOM,NULL);   # *N* EXCEEDS NUMBER OF FILES #
03387  M00S03274.acpd    +++|            END
03388  M00S03275.acpd    +++|
03389  M00S03276.acpd    +++|          TMED=TRUE;
03390  M00S03277.acpd    +++|          RETURN;
03391  M00S03278.acpd    +++|          END
03392  M00S03279.acpd    +++|
03393  M00S03280.acpd    +++|        IF (P$VERS NQ WSAI$VS[0])    # *CPD* AND *ACPD* INCOMPATBLE #
03394  M00S03281.acpd    +++|        THEN
03395  M00S03282.acpd    +++|          BEGIN
03396  M00S03283.acpd    +++|          PERROR(ERM13,FATAL,NULL);  # CPD/ACPD VERSIONS MISMATCH #
03397  M00S03284.acpd    +++|          END
03398  M00S03285.acpd    +++|
03399  M00S03286.acpd    +++|        IBWA=0;
03400  M00S03287.acpd    +++|        DECODE(LOC(HDTR),LOC(DCHD));  # DECODE HEADER BLOCK #
03401  M00S03288.acpd    +++|        ADJUST;                      # ADJUST TABLES AND FIELD LENGTH #
03402  M00S03289.acpd    +++|
03403  M00S03290.acpd    +++|#
03404  M00S03291.acpd    +++|*     CHECK IF FILES IN CHRONOLOGICAL ORDER.
03405  M00S03292.acpd    +++|#
03406  M00S03293.acpd    +++|
Line S03294 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03407  M01S03294.ns2786  ---|        T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE);
03408  M01S03295.ns2786  ---|        D=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
Line S00029 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03409  M01S00029.ns2786  +++|        T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE,FALSE);
03410  M01S00030.ns2786  +++|        D=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03411  M00S03296.acpd    +++|        IF (LSTM GR (D+T))           # DATA FILE NOT IN ORDER #
03412  M00S03297.acpd    +++|        THEN
03413  M00S03298.acpd    +++|          BEGIN
03414  M00S03299.acpd    +++|          PERROR(ERM8,FATAL,NULL);
03415  M00S03300.acpd    +++|          END
03416  M00S03301.acpd    +++|
03417  M00S03302.acpd    +++|        END  # READ HEADER BLOCK OF NEXT FILE #
03418  M00S03303.acpd    +++|
03419  M00S03304.acpd    +++|      ELSE                           # HEADER BLOCK HAS BEEN DECODED #
03420  M00S03305.acpd    +++|        BEGIN
03421  M00S03306.acpd    +++|        HDDC=FALSE;
03422  M00S03307.acpd    +++|        END
03423  M00S03308.acpd    +++|
03424  M00S03309.acpd    +++|#
03425  M00S03310.acpd    +++|*     BUILD THE REPORT TITLE.
03426  M00S03311.acpd    +++|#
03427  M00S03312.acpd    +++|
03428  M00S03313.acpd    +++|      T=DDSC$FW[CPDV];               # *ACPD* VERSION POINTER #
03429  M00S03314.acpd    +++|      TXT$VR[0]=DCHD$CW[T];
03430  M00S03315.acpd    +++|      TXT$H1[0]=" A C P D - VER  ";
03431  M00S03316.acpd    +++|
03432  M00S03317.acpd    +++|      T=DDSC$FW[SYSV];               # SYSTEM DESIGNATOR POINTER #
03433  M00S03318.acpd    +++|      P<HEAD>=LOC(DCHD$CW[T]);
03434  M00S03319.acpd    +++|      T=MPAR$PR[SYSV]*2;
03435  M00S03320.acpd    +++|      BZFILL(HEAD,TYPFILL"BFILL",T);
03436  M00S03321.acpd    +++|      TXT$SD[0]=HEAD$SD[0];
03437  M00S03322.acpd    +++|
03438  M00S03323.acpd    +++|      IF (P$L NQ NULL)               # REPORT FILE SPECIFIED #
03439  M00S03324.acpd    +++|      THEN
03440  M00S03325.acpd    +++|        BEGIN
03441  M00S03326.acpd    +++|        L=30 + T;                    # LENGTH OF HEADER TEXT #
03442  M00S03327.acpd    +++|        RPHEAD(OFFA,TEXT,2,L);       # SET UP *ACPD* TITLE #
03443  M00S03328.acpd    +++|        PUTHDR;                      # PRINT HEADER BLOCK ELEMENTS #
03444  M00S03329.acpd    +++|        PUTEST;                      # PRINT EST #
03445  M00S03330.acpd    +++|        PUTSCI;                      # PRINT JOB CONTROL BLOCK #
03446  M00S03331.acpd    +++|        END
03447  M00S03332.acpd    +++|
03448  M00S03333.acpd    +++|      IF (P$S NQ NULL)               # SUMMARY FILE SPECIFIED #
03449  M00S03334.acpd    +++|      THEN                           # WRITE SUMMARY FILE #
03450  M00S03335.acpd    +++|        BEGIN
03451  M00S03336.acpd    +++|        WRITEW(FETS,DCHD,DCHL,0);
03452  M00S03337.acpd    +++|        WRITER(FETS,1);
03453  M00S03338.acpd    +++|        END
03454  M00S03339.acpd    +++|
03455  M00S03340.acpd    +++|      RETURN;
03456  M00S03341.acpd    +++|      END  # HEADER #
03457  M00S03342.acpd    +++|
03458  M00S03343.acpd    +++|      TERM
03459  M00S03344.acpd    +++|PROC INITLZ(HDDC,DTDC,EDTM);
03460  M00S03345.acpd    +++|# TITLE INITLZ - INITIALIZE PARAMETERS AND OPEN FILES.  #
03461  M00S03346.acpd    +++|
03462  M00S03347.acpd    +++|      BEGIN  # INITLZ #
03463  M00S03348.acpd    +++|
03464  M00S03349.acpd    +++|#
03465  M00S03350.acpd    +++|**    INITLZ - INITIALIZE PARAMETERS AND OPEN FILES.
03466  M00S03351.acpd    +++|*
Line S03352 Modification History
M01 (Removed by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03467  M01S03352.v23l617 ---|*     PROCESS *ACPD* CONTROL STATEMENT PARAMETERS, INITIALIZE *ACPD*,
Line S00071 Modification History
M01 (Added by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03468  M01S00071.v23l617 +++|*     PROCESS *ACPD* COMMAND PARAMETERS, INITIALIZE *ACPD*,
03469  M00S03353.acpd    +++|*     AND OPEN FILES.
03470  M00S03354.acpd    +++|*
03471  M00S03355.acpd    +++|*     PROC INITLZ(HDDC,DTDC,EDTM)
03472  M00S03356.acpd    +++|*
03473  M00S03357.acpd    +++|*     ENTRY      NONE.
03474  M00S03358.acpd    +++|*
03475  M00S03359.acpd    +++|*     EXIT       HDDC = INDICATE IF HEADER BLOCK HAS BEEN DECODED.
03476  M00S03360.acpd    +++|*                DTDC = INDICATE IF DATA BLOCK HAS BEEN DECODED.
03477  M00S03361.acpd    +++|*                TIME = TRUE IF BEGINNING TIME GREATER THAN
03478  M00S03362.acpd    +++|*                       ENDING TIME.
03479  M00S03363.acpd    +++|#
03480  M00S03364.acpd    +++|
03481  M00S03365.acpd    +++|#
03482  M00S03366.acpd    +++|*     PARAMETER LIST.
03483  M00S03367.acpd    +++|#
03484  M00S03368.acpd    +++|
03485  M00S03369.acpd    +++|      ITEM HDDC       B;             # DECODED HEADER BLOCK FLAG #
03486  M00S03370.acpd    +++|      ITEM DTDC       B;             # DECODED DATA BLOCK FLAG #
03487  M00S03371.acpd    +++|      ITEM EDTM       B;             # ENDING TIME FLAG #
03488  M00S03372.acpd    +++|
03489  M00S03373.acpd    +++|#
03490  M00S03374.acpd    +++|****  PROC INITLZ - XREF LIST BEGIN.
03491  M00S03375.acpd    +++|#
03492  M00S03376.acpd    +++|
03493  M00S03377.acpd    +++|      XREF
03494  M00S03378.acpd    +++|        BEGIN
03495  M00S03379.acpd    +++|        PROC ADJUST;                 # ADJUST TABLES AND FIELD LENGTH #
03496  M00S03380.acpd    +++|        PROC DECODE;                 # DECODE *CIO* INPUT BUFFER DATA #
03497  M00S03381.acpd    +++|        FUNC DTMNUM I;               # CONVERT TIME/DATE TO BINARY #
03498  M00S03382.acpd    +++|        PROC FILINFO;                # GET FILE INFORMATION #
03499  M00S03383.acpd    +++|        PROC MEMORY;                 # REQUEST MEMORY #
03500  M00S03384.acpd    +++|        PROC PAP;                    # PROCESS *ACPD* PARAMETER #
03501  M00S03385.acpd    +++|        PROC PERROR;                 # PROCESS ERROR #
03502  M00S03386.acpd    +++|        PROC READRC;                 # READ ONE RECORD FROM DATA FILE #
03503  M00S03387.acpd    +++|        PROC REPTLE;                 # PRINT REPORT SUBTITLE #
03504  M00S03388.acpd    +++|        PROC RPOPEN;                 # OPEN FILES #
03505  M00S03389.acpd    +++|        PROC ZSETFET;                # INITIALIZE *CIO* FET #
03506  M00S03390.acpd    +++|        END
03507  M00S03391.acpd    +++|
03508  M00S03392.acpd    +++|#
03509  M00S03393.acpd    +++|****  PROC INITLZ - XREF LIST END.
03510  M00S03394.acpd    +++|#
03511  M00S03395.acpd    +++|
03512  M00S03396.acpd    +++|      DEF CNIC       #"CNIL"#;       # FAST LOOP SAMPLE #
03513  M00S03397.acpd    +++|      DEF CTMC       #"CTML"#;       # MEDIUM LOOP SAMPLE #
03514  M00S03398.acpd    +++|      DEF CTOC       #"CTOL"#;       # SLOW LOOP SAMPLE #
03515  M00S03399.acpd    +++|      DEF MXVC       #1.0E20#;       # MAXIMUM VALUE #
03516  M00S03400.acpd    +++|      DEF NA         #"NA"#;         # NO ABORT FLAG #
03517  M00S03401.acpd    +++|      DEF RECALL     #1#;            # RECALL FLAG #
03518  M00S03402.acpd    +++|
03519  M00S03403.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
03520  M00S03404.acpd    +++|
03521  M00S03405.acpd    +++|*CALL     COMUCPD
03522  M00S03406.acpd    +++|
03523  M00S03407.acpd    +++|#
03524  M00S03408.acpd    +++|*     LOCAL VARIABLES.
03525  M00S03409.acpd    +++|#
03526  M00S03410.acpd    +++|
03527  M00S03411.acpd    +++|      ITEM BA         I;             # BYTE ADDRESS #
03528  M00S03412.acpd    +++|      ITEM CM         C(10)="CM";    # REQUEST CM FLAG #
03529  M00S03413.acpd    +++|      ITEM D          I;             # TEMPORARY VARIABLE #
03530  M00S03414.acpd    +++|      ITEM DM         I;             # TEMPORARY VARIABLE #
03531  M00S03415.acpd    +++|      ITEM I          I;             # FOR LOOP CONTROL #
03532  M00S03416.acpd    +++|      ITEM J          I;             # FOR LOOP CONTROL #
03533  M00S03417.acpd    +++|      ITEM STAT       I;             # I/O STATUS #
03534  M00S03418.acpd    +++|      ITEM T          I;             # TEMPORARY VARIABLE #
03535  M00S03419.acpd    +++|      ITEM TM         I;             # TIME #
03536  M00S03420.acpd    +++|
03537  M00S03421.acpd    +++|      ARRAY FINFO [0:0] P(5);        # *FILINFO* PARAMETER BLOCK #
03538  M00S03422.acpd    +++|        BEGIN  # ARRAY FINFO #
03539  M00S03423.acpd    +++|        ITEM FIN$FN     C(00,00,07);  # FILE NAME #
03540  M00S03424.acpd    +++|        ITEM FIN$LN     U(00,42,06)=[5];  # PARAMETER BLOCK LENGTH #
03541  M00S03425.acpd    +++|        ITEM FIN$US     U(00,48,12)=[1];  # COMPLETION STATUS #
03542  M00S03426.acpd    +++|        ITEM FIN$WD     U(01,00,60);  # PARAMETER BLOCK WORD #
03543  M00S03427.acpd    +++|        ITEM FIN$EI     B(01,36,01);  # EOI STATUS #
03544  M00S03428.acpd    +++|        ITEM FIN$EF     B(01,37,01);  # EOF STATUS #
03545  M00S03429.acpd    +++|        ITEM FIN$BI     B(01,38,01);  # BOI STATUS #
03546  M00S03430.acpd    +++|        END  # ARRAY FINFO #
03547  M00S03431.acpd    +++|
03548  M00S03432.acpd    +++|      ARRAY STT [0:0] P(1);          # MEMORY ARGUMENT #
03549  M00S03433.acpd    +++|        BEGIN  # ARRAY STT #
03550  M00S03434.acpd    +++|        ITEM STT$RFL    U(00,00,30);  # REQUEST FIELD LENGTH #
03551  M00S03435.acpd    +++|        END  # ARRARY STT #
03552  M00S03436.acpd    +++|
03553  M00S03437.acpd    +++|
03554  M00S03438.acpd    +++|
03555  M00S03439.acpd    +++|
03556  M00S03440.acpd    +++|
03557  M00S03441.acpd    +++|
03558  M00S03442.acpd    +++|
03559  M00S03443.acpd    +++|#
03560  M00S03444.acpd    +++|*     BEGIN INITLZ PROC.
03561  M00S03445.acpd    +++|#
03562  M00S03446.acpd    +++|
03563  M00S03447.acpd    +++|      PAP;                           # PROCESS *ACPD* PARAMETERS #
03564  M00S03448.acpd    +++|
03565  M00S03449.acpd    +++|#
03566  M00S03450.acpd    +++|*     OPEN FILES.
03567  M00S03451.acpd    +++|#
03568  M00S03452.acpd    +++|
03569  M00S03453.acpd    +++|      ZSETFET(LOC(FETI),P$FN,LOC(WSAI),WSAL+1,FENL+1);
03570  M00S03454.acpd    +++|      FIN$FN[0]=P$FN;
03571  M00S03455.acpd    +++|      FILINFO(FINFO);                # CHECK STATUS OF INPUT FILE #
03572  M00S03456.acpd    +++|      IF (FIN$WD[0] EQ NULL)        # NO STATUS #
03573  M00S03457.acpd    +++|      THEN
03574  M00S03458.acpd    +++|        BEGIN
03575  M00S03459.acpd    +++|        PERROR(ERM11,FATAL,P$FN);    # DATA FILE NOT FOUND #
03576  M00S03460.acpd    +++|        END
03577  M00S03461.acpd    +++|
03578  M00S03462.acpd    +++|      IF (FIN$EI[0])                 # EOI #
03579  M00S03463.acpd    +++|      THEN
03580  M00S03464.acpd    +++|        BEGIN
03581  M00S03465.acpd    +++|        PERROR(ERM12,FATAL,NULL);    # DATA FILE POSITIONED AT EOI #
03582  M00S03466.acpd    +++|        END
03583  M00S03467.acpd    +++|
03584  M00S03468.acpd    +++|      IF (NOT (FIN$EF[0] OR FIN$BI[0]))  # NOT AT EOF NOR BOI #
03585  M00S03469.acpd    +++|      THEN
03586  M00S03470.acpd    +++|        BEGIN
03587  M00S03471.acpd    +++|        PERROR(ERM7,FATAL,NULL);
03588  M00S03472.acpd    +++|        END
03589  M00S03473.acpd    +++|
03590  M00S03474.acpd    +++|      OFFA=LOC(FETO);
03591  M00S03475.acpd    +++|      IF (P$L NQ NULL)               # REPORT FILE SPECIFIED #
03592  M00S03476.acpd    +++|      THEN                           # OPEN REPORT FILE #
03593  M00S03477.acpd    +++|        BEGIN
03594  M00S03478.acpd    +++|        RPOPEN(P$L,OFFA,REPTLE);
03595  M00S03479.acpd    +++|        END
03596  M00S03480.acpd    +++|
03597  M00S03481.acpd    +++|      IF (P$S NQ NULL)               # SUMMARY FILE SPECIFIED #
03598  M00S03482.acpd    +++|      THEN                           # OPEN SUMMARY FILE #
03599  M00S03483.acpd    +++|        BEGIN
03600  M00S03484.acpd    +++|        ZSETFET(LOC(FETS),P$S,LOC(WSAS),WSAL+1,FENL+1);
03601  M00S03485.acpd    +++|        END
03602  M00S03486.acpd    +++|
03603  M00S03487.acpd    +++|#
03604  M00S03488.acpd    +++|*     REQUEST CURRENT FIELD LENGTH.
03605  M00S03489.acpd    +++|#
03606  M00S03490.acpd    +++|
03607  M00S03491.acpd    +++|      MEMORY(CM,STT,RECALL,NA);
03608  M00S03492.acpd    +++|      CRFL=STT$RFL[0];               # CURRENT FIELD LENGTH #
03609  M00S03493.acpd    +++|      HGAD=CRFL;                     # HIGHEST ADDRESS #
03610  M00S03494.acpd    +++|
03611  M00S03495.acpd    +++|#
03612  M00S03496.acpd    +++|*     CHECK IF *CPD* AND *ACPD* VERSIONS ARE THE SAME.
03613  M00S03497.acpd    +++|#
03614  M00S03498.acpd    +++|
03615  M00S03499.acpd    +++|      READRC(STAT);                  # READ HEADER BLOCK #
03616  M00S03500.acpd    +++|      IF (STAT NQ EORC)              # EOF OR EOI ENCOUNTERED #
03617  M00S03501.acpd    +++|      THEN
03618  M00S03502.acpd    +++|        BEGIN
03619  M00S03503.acpd    +++|        PERROR(ERM5,FATAL,NULL);     # DATA FILE EMPTY #
03620  M00S03504.acpd    +++|        END
03621  M00S03505.acpd    +++|
03622  M00S03506.acpd    +++|      IF (P$VERS NQ WSAI$VS[0])      # *CPD* AND *ACPD* INCOMPATBLE #
03623  M00S03507.acpd    +++|      THEN
03624  M00S03508.acpd    +++|        BEGIN
03625  M00S03509.acpd    +++|        PERROR(ERM13,FATAL,NULL);    # CPD/ACPD VERSIONS MISMATCH #
03626  M00S03510.acpd    +++|        END
03627  M00S03511.acpd    +++|
03628  M00S03512.acpd    +++|#
03629  M00S03513.acpd    +++|*     VALIDATE BEGIN AND END TIMES.
03630  M00S03514.acpd    +++|*     IF NO *BD* SPECIFIED, BEGIN DATE IS THE DATE OF THE
03631  M00S03515.acpd    +++|*     HEADER RECORD OF THE CURRENT FILE.
03632  M00S03516.acpd    +++|*     IF NO *ED* SPECIFIED, END DATE IS THE SAME AS BEGIN DATE.
03633  M00S03517.acpd    +++|*     IF NO *ET*/*ED* SPECIFIED, END DATE IS SET TO MAXIMUM.
03634  M00S03518.acpd    +++|#
03635  M00S03519.acpd    +++|
03636  M00S03520.acpd    +++|      P<DCHD>=LOC(DBUF);
03637  M00S03521.acpd    +++|      P<DDSC>=LOC(DDHD);
03638  M00S03522.acpd    +++|
03639  M00S03523.acpd    +++|      IBWA=0;
03640  M00S03524.acpd    +++|      DECODE(LOC(HDTR),LOC(DCHD));   # DECODE HEADER BLOCK #
03641  M00S03525.acpd    +++|      ADJUST;                        # ADJUST TABLES AND FIELD LENGTH #
03642  M00S03526.acpd    +++|      HDDC=TRUE;                     # HEADER BLOCK HAS BEEN DECODED #
03643  M00S03527.acpd    +++|
03644  M00S03528.acpd    +++|      IF (P$BD EQ NULL)              # NO BEGINNING DATE #
03645  M00S03529.acpd    +++|      THEN
03646  M00S03530.acpd    +++|        BEGIN
Line S03531 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03647  M01S03531.ns2786  ---|        DM=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
Line S00031 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03648  M01S00031.ns2786  +++|        DM=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03649  M00S03532.acpd    +++|        END
03650  M00S03533.acpd    +++|
03651  M00S03534.acpd    +++|      ELSE                           # *BD* SPECIFIED #
03652  M00S03535.acpd    +++|        BEGIN
Line S03536 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03653  M01S03536.ns2786  ---|        DM=(DTMNUM(P$BD,FALSE) - Y70C)*SHFC;
Line S00032 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03654  M01S00032.ns2786  +++|        DM=DTMNUM(P$BD,FALSE,TRUE)*SHFC;
03655  M00S03537.acpd    +++|        END
03656  M00S03538.acpd    +++|
Line S03539 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03657  M01S03539.ns2786  ---|      P$BT=DM + DTMNUM(P$BT,FALSE);
Line S00033 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03658  M01S00033.ns2786  +++|      P$BT=DM + DTMNUM(P$BT,FALSE,FALSE);
03659  M00S03540.acpd    +++|
03660  M00S03541.acpd    +++|      IF (P$ED NQ NULL)              # END DATE SPECIFIED #
03661  M00S03542.acpd    +++|      THEN
03662  M00S03543.acpd    +++|        BEGIN
Line S03544 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03663  M01S03544.ns2786  ---|        P$ET=((DTMNUM(P$ED,FALSE) - Y70C)*SHFC) + DTMNUM(P$ET,FALSE);
Line S00034 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03664  M01S00034.ns2786  +++|        P$ET=(DTMNUM(P$ED,FALSE,TRUE)*SHFC) + DTMNUM(P$ET,FALSE,FALSE);
03665  M00S03545.acpd    +++|        END
03666  M00S03546.acpd    +++|
03667  M00S03547.acpd    +++|      ELSE                           # NO END DATE #
03668  M00S03548.acpd    +++|        BEGIN
03669  M00S03549.acpd    +++|        IF (P$ET NQ NULL)            # END TIME SPECIFIED #
03670  M00S03550.acpd    +++|        THEN
03671  M00S03551.acpd    +++|          BEGIN
Line S03552 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03672  M01S03552.ns2786  ---|          P$ET=DM + DTMNUM(P$ET,FALSE);
Line S00035 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03673  M01S00035.ns2786  +++|          P$ET=DM + DTMNUM(P$ET,FALSE,FALSE);
03674  M00S03553.acpd    +++|          END
03675  M00S03554.acpd    +++|
03676  M00S03555.acpd    +++|        ELSE                         # *ET*/*ED* ARE NOT SPECIFIED #
03677  M00S03556.acpd    +++|          BEGIN
Line S03557 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03678  M01S03557.ns2786  ---|          P$ET=MXDC*SHFC + MXTC;     # 99/12/31  23.59.59 #
Line S00036 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03679  M01S00036.ns2786  +++|          P$ET=MXDC*SHFC + MXTC;     # 33/12/31  23.59.59 #
03680  M00S03558.acpd    +++|          END
03681  M00S03559.acpd    +++|
03682  M00S03560.acpd    +++|        END
03683  M00S03561.acpd    +++|
03684  M00S03562.acpd    +++|      IF (P$BT GQ P$ET)              # BEGIN TIME .GE. END TIME #
03685  M00S03563.acpd    +++|      THEN
03686  M00S03564.acpd    +++|        BEGIN
03687  M00S03565.acpd    +++|        EDTM=TRUE;                   # ENDING TIME REACHED #
03688  M00S03566.acpd    +++|        RETURN;
03689  M00S03567.acpd    +++|        END
03690  M00S03568.acpd    +++|
Line S03569 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03691  M01S03569.ns2786  ---|      TM=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
03692  M01S03570.ns2786  ---|      TM=TM + DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE);
Line S00037 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03693  M01S00037.ns2786  +++|      TM=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03694  M01S00038.ns2786  +++|      TM=TM + DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE,FALSE);
03695  M00S03571.acpd    +++|      IF (P$BT GR TM)                # *BT* .GT. TIME OF FIRST
03696  M00S03572.acpd    +++|                                       DATA RECORD #
03697  M00S03573.acpd    +++|      THEN
03698  M00S03574.acpd    +++|        BEGIN
03699  M00S03575.acpd    +++|        DTDC=TRUE;                   # DECODE DATA BLOCK #
03700  M00S03576.acpd    +++|        END
03701  M00S03577.acpd    +++|
03702  M00S03578.acpd    +++|      ELSE
03703  M00S03579.acpd    +++|        BEGIN
03704  M00S03580.acpd    +++|        DTDC=FALSE;                  # NOT DECODE DATA BLOCK #
03705  M00S03581.acpd    +++|        END
03706  M00S03582.acpd    +++|
03707  M00S03583.acpd    +++|#
03708  M00S03584.acpd    +++|*     COMPUTE BYTE ADDRESSES OF SAMPLE TIMES IN
03709  M00S03585.acpd    +++|*     INPUT FILE-S WORKING STORAGE AREA.
03710  M00S03586.acpd    +++|#
03711  M00S03587.acpd    +++|
03712  M00S03588.acpd    +++|      BA=0;
03713  M00S03589.acpd    +++|      P<MPAR>=LOC(DATT);
03714  M00S03590.acpd    +++|      SLOWFOR I=0 STEP 1 WHILE (MPAR$NM[I] NQ CTOC)
03715  M00S03591.acpd    +++|      DO
03716  M00S03592.acpd    +++|        BEGIN  # COMPUTE SAMPLE TIME BYTE ADDRESS #
03717  M00S03593.acpd    +++|        IF (MPAR$NM[I] EQ CNIC)      # FAST LOOP SAMPLE #
03718  M00S03594.acpd    +++|        THEN
03719  M00S03595.acpd    +++|          BEGIN
03720  M00S03596.acpd    +++|          SPLA$WD[MPAR$TP[I]]=BA;
03721  M00S03597.acpd    +++|          END
03722  M00S03598.acpd    +++|
03723  M00S03599.acpd    +++|        ELSE
03724  M00S03600.acpd    +++|          BEGIN
03725  M00S03601.acpd    +++|          IF (MPAR$NM[I] EQ CTMC)    # MEDIUM LOOP SAMPLE #
03726  M00S03602.acpd    +++|          THEN
03727  M00S03603.acpd    +++|            BEGIN
03728  M00S03604.acpd    +++|            SPLA$WD[MPAR$TP[I]]=BA;
03729  M00S03605.acpd    +++|            END
03730  M00S03606.acpd    +++|
03731  M00S03607.acpd    +++|          END
03732  M00S03608.acpd    +++|
03733  M00S03609.acpd    +++|        BA=MPAR$LN[I]*MPAR$PR[I] + BA;
03734  M00S03610.acpd    +++|        END  # COMPUTE SAMPLE TIME BYTE ADDRESS #
03735  M00S03611.acpd    +++|
03736  M00S03612.acpd    +++|      SPLA$WD[MPAR$TP[I]]=BA;        # SLOW LOOP SAMPLE #
03737  M00S03613.acpd    +++|
03738  M00S03614.acpd    +++|      READRC(STAT);                  # READ FIRST DATA BLOCK #
03739  M00S03615.acpd    +++|      IF (STAT NQ EORC)              # NO DATA BLOCKS #
03740  M00S03616.acpd    +++|      THEN
03741  M00S03617.acpd    +++|        BEGIN
03742  M00S03618.acpd    +++|        PERROR(ERM4,FATAL,NULL);     # DATA BLOCKS MISSING #
03743  M00S03619.acpd    +++|        END
03744  M00S03620.acpd    +++|
03745  M00S03621.acpd    +++|      P<DCDT>=LOC(DBUF[DCHL]);
03746  M00S03622.acpd    +++|      P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
03747  M00S03623.acpd    +++|
03748  M00S03624.acpd    +++|#
03749  M00S03625.acpd    +++|*     POSITION FILE AT CORRECT RECORD.
03750  M00S03626.acpd    +++|#
03751  M00S03627.acpd    +++|
03752  M00S03628.acpd    +++|      STAT=0;
03753  M00S03629.acpd    +++|      IBWA=0;
03754  M00S03630.acpd    +++|
03755  M00S03631.acpd    +++|      SLOWFOR J=0 WHILE (P$BT GR TM) AND (STAT NQ EOIC)
03756  M00S03632.acpd    +++|      DO
03757  M00S03633.acpd    +++|        BEGIN  # READ FILE #
03758  M00S03634.acpd    +++|        IF (IBWA GQ IBNW)            # INPUT BUFFER EXHAUSTED #
03759  M00S03635.acpd    +++|        THEN
03760  M00S03636.acpd    +++|          BEGIN  # GET NEXT BUFFER #
03761  M00S03637.acpd    +++|          READRC(STAT);              # READ NEXT RECORD #
03762  M00S03638.acpd    +++|          IBWA=0;
03763  M00S03639.acpd    +++|          IF (STAT NQ EORC)          # END OF CURRENT FILE #
03764  M00S03640.acpd    +++|          THEN
03765  M00S03641.acpd    +++|            BEGIN  # CHECK IF EOF OR EOI #
03766  M00S03642.acpd    +++|            IF (STAT EQ EOFC)        # PREVIOUS READ ENCOUNTERED EOF #
03767  M00S03643.acpd    +++|            THEN
03768  M00S03644.acpd    +++|              BEGIN  # GET NEXT FILE #
03769  M00S03645.acpd    +++|              READRC(STAT);          # READ HEADER BLOCK OF NEXT FILE #
03770  M00S03646.acpd    +++|              IF (STAT NQ EORC)      # NO DATA BLOCKS FOLLOW #
03771  M00S03647.acpd    +++|              THEN
03772  M00S03648.acpd    +++|                BEGIN
03773  M00S03649.acpd    +++|                PERROR(ERM4,FATAL,NULL);   # DATA BLOCKS MISSING #
03774  M00S03650.acpd    +++|                END
03775  M00S03651.acpd    +++|
03776  M00S03652.acpd    +++|              DECODE(LOC(HDTR),LOC(DCHD));  # DECODE HEADER BLOCK #
03777  M00S03653.acpd    +++|              ADJUST;                # ADJUST TABLES AND FIELD LENGTH #
03778  M00S03654.acpd    +++|              P<DCDT>=LOC(DBUF[DCHL]);
03779  M00S03655.acpd    +++|              P<DDSM>=LOC(DBUF[DCHL + DCDC*DCDL*2]);
03780  M00S03656.acpd    +++|              P<DDSC>=LOC(DDHD);
03781  M00S03657.acpd    +++|
Line S03658 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03782  M01S03658.ns2786  ---|              D=(DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE) - Y70C)*SHFC;
Line S00039 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03783  M01S00039.ns2786  +++|              D=DTMNUM(DCHD$WD[DDSC$FW[DATE]],TRUE,TRUE)*SHFC;
03784  M00S03659.acpd    +++|                                     # GET DATE ON RECORD #
Line S03660 Modification History
M01 (Removed by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03785  M01S03660.ns2786  ---|              T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE);
Line S00040 Modification History
M01 (Added by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
03786  M01S00040.ns2786  +++|              T=DTMNUM(DCHD$WD[DDSC$FW[TIME]],TRUE,FALSE);
03787  M00S03661.acpd    +++|                                     # GET TIME ON RECORD #
03788  M00S03662.acpd    +++|              IF (TM GR (D+T))       # PREVIOUS TIME .GT.
03789  M00S03663.acpd    +++|                                       CURRENT TIME #
03790  M00S03664.acpd    +++|              THEN
03791  M00S03665.acpd    +++|                BEGIN
03792  M00S03666.acpd    +++|                PERROR(ERM8,FATAL,NULL);
03793  M00S03667.acpd    +++|                END
03794  M00S03668.acpd    +++|
03795  M00S03669.acpd    +++|              TM=D + T;              # SET TO CURRENT TIME #
03796  M00S03670.acpd    +++|              TEST J;                # GO PROCESS DATA BLOCKS #
03797  M00S03671.acpd    +++|              END  # GET NEXT FILE #
03798  M00S03672.acpd    +++|
03799  M00S03673.acpd    +++|            ELSE                     # PREVIOUS READ ENCOUNTERD *EOI* #
03800  M00S03674.acpd    +++|              BEGIN
03801  M00S03675.acpd    +++|              PERROR(ERM3,FATAL,NULL);   # BT/BD NOT FOUND #
03802  M00S03676.acpd    +++|              END
03803  M00S03677.acpd    +++|
03804  M00S03678.acpd    +++|            END  # CHECK IF EOF OR EOI #
03805  M00S03679.acpd    +++|
03806  M00S03680.acpd    +++|          END  # GET NEXT BUFFER #
03807  M00S03681.acpd    +++|
03808  M00S03682.acpd    +++|        DECODE(LOC(DATT),LOC(DCDT));
03809  M00S03683.acpd    +++|        P<DDSC>=LOC(DDDT);
03810  M00S03684.acpd    +++|        TM=DCDT$WD[DDSC$FW[PDTM]];   # GET TIME #
03811  M00S03685.acpd    +++|
03812  M00S03686.acpd    +++|#
03813  M00S03687.acpd    +++|*     REINITIALIZE BUFFER OF FIRST COLUMN.
03814  M00S03688.acpd    +++|#
03815  M00S03689.acpd    +++|
03816  M00S03690.acpd    +++|        FASTFOR I=0 STEP 1 UNTIL DCDL - 1
03817  M00S03691.acpd    +++|        DO
03818  M00S03692.acpd    +++|          BEGIN
03819  M00S03693.acpd    +++|          DCDT$WD[I]=0;
03820  M00S03694.acpd    +++|          DCDT$WD[I + DCDL*DCDC]=0;
03821  M00S03695.acpd    +++|          DDSM$IM[I]=0;
03822  M00S03696.acpd    +++|          DDSM$IQ[I]=0;
03823  M00S03697.acpd    +++|          END
03824  M00S03698.acpd    +++|
03825  M00S03699.acpd    +++|        END  # READ FILE #
03826  M00S03700.acpd    +++|
03827  M00S03701.acpd    +++|      IF (P$ET LQ TM)                # READ PAST ENDING TIME #
03828  M00S03702.acpd    +++|      THEN
03829  M00S03703.acpd    +++|        BEGIN
03830  M00S03704.acpd    +++|        EDTM=TRUE;
03831  M00S03705.acpd    +++|        END
03832  M00S03706.acpd    +++|
03833  M00S03707.acpd    +++|      RETURN;
03834  M00S03708.acpd    +++|      END  # INITLZ #
03835  M00S03709.acpd    +++|
03836  M00S03710.acpd    +++|      TERM
03837  M00S03711.acpd    +++|PROC PERROR((ERCD),(EROR),(ERNM));
03838  M00S03712.acpd    +++|# TITLE PERROR - ISSUE ERROR MESSAGE.  #
03839  M00S03713.acpd    +++|
03840  M00S03714.acpd    +++|      BEGIN  # PERROR #
03841  M00S03715.acpd    +++|
03842  M00S03716.acpd    +++|#
03843  M00S03717.acpd    +++|**    PERROR - ISSUE ERROR MESSAGE.
03844  M00S03718.acpd    +++|*
03845  M00S03719.acpd    +++|*     ISSUE ERROR MESSAGE TO THE USER DAYFILE AND ABORT
03846  M00S03720.acpd    +++|*     THE JOB IF THE ERROR IS FATAL.
03847  M00S03721.acpd    +++|*
03848  M00S03722.acpd    +++|*     PROC PERROR(ERCD,EROR,ERNM)
03849  M00S03723.acpd    +++|*
03850  M00S03724.acpd    +++|*     ENTRY      ERCD = ERROR CODE.
03851  M00S03725.acpd    +++|*                EROR = ERROR LEVEL.
03852  M00S03726.acpd    +++|*                ERNM = ERROR NAME.
03853  M00S03727.acpd    +++|*
03854  M00S03728.acpd    +++|*     EXIT       JOB ABORTED IF *EROR*=FATAL.
03855  M00S03729.acpd    +++|*                OTHERWISE, RETURN TO CALLING PROGRAM.
03856  M00S03730.acpd    +++|*
03857  M00S03731.acpd    +++|*     MESSAGES
03858  M00S03732.acpd    +++|*
03859  M00S03733.acpd    +++|*     1. ACPD ARGUMENT ERROR - XX.
03860  M00S03734.acpd    +++|*     2. ACPD/CPD VERSIONS MISMATCH.
03861  M00S03735.acpd    +++|*     3. BT/BD NOT FOUND.
03862  M00S03736.acpd    +++|*     4. DATA BLOCKS MISSING.
03863  M00S03737.acpd    +++|*     5. DATA ELEMENT NAME UNDEFINED - XXXX.
03864  M00S03738.acpd    +++|*     6. DATA FILE CONTENT ERROR.
03865  M00S03739.acpd    +++|*     7. DATA FILE EMPTY.
03866  M00S03740.acpd    +++|*     8. DATA FILE NOT AT BEGINNING OF FILE.
03867  M00S03741.acpd    +++|*     9. DATA FILE NOT FOUND - XXXXXXX.
03868  M00S03742.acpd    +++|*    10. DATA FILE NOT IN CHRONOLOGICAL ORDER.
03869  M00S03743.acpd    +++|*    11. DATA FILE POSITIONED AT EOI.
Line S03744 Modification History
M01 (Removed by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03870  M01S03744.v23l617 ---|*    12. IN LESS THAN FILE WRITE TIME.
03871  M01S03745.v23l617 ---|*    13. N EXCEEDS NUMBER OF FILES.
Line S00072 Modification History
M01 (Added by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03872  M01S00072.v23l617 +++|*    12. IN AND IC PARAMETER CONFLICT.
03873  M01S00073.v23l617 +++|*    13. IN LESS THAN FILE WRITE TIME.
03874  M01S00074.v23l617 +++|*    14. N EXCEEDS NUMBER OF FILES.
03875  M00S03746.acpd    +++|#
03876  M00S03747.acpd    +++|
03877  M00S03748.acpd    +++|#
03878  M00S03749.acpd    +++|*     PARAMETER LIST.
03879  M00S03750.acpd    +++|#
03880  M00S03751.acpd    +++|
03881  M00S03752.acpd    +++|      ITEM ERCD       I;             # ERROR CODE #
03882  M00S03753.acpd    +++|      ITEM EROR       I;             # ERROR LEVEL #
03883  M00S03754.acpd    +++|      ITEM ERNM       C(10);         # ERROR NAME #
03884  M00S03755.acpd    +++|
03885  M00S03756.acpd    +++|#
03886  M00S03757.acpd    +++|****  PROC PERROR - XREF LIST BEGIN.
03887  M00S03758.acpd    +++|#
03888  M00S03759.acpd    +++|
03889  M00S03760.acpd    +++|      XREF
03890  M00S03761.acpd    +++|        BEGIN
03891  M00S03762.acpd    +++|        PROC ABORT;                  # ABORT JOB #
03892  M00S03763.acpd    +++|        PROC MESSAGE;                # ISSUE DAYFILE MESSAGES #
03893  M00S03764.acpd    +++|        END
03894  M00S03765.acpd    +++|
03895  M00S03766.acpd    +++|#
03896  M00S03767.acpd    +++|****  PROC PERROR - XREF LIST END.
03897  M00S03768.acpd    +++|#
03898  M00S03769.acpd    +++|
03899  M00S03770.acpd    +++|      DEF BLKC       #" "#;          # BLANK #
03900  M00S03771.acpd    +++|      DEF DOLC       #"$"#;          # DOLLAR SIGN #
03901  M00S03772.acpd    +++|      DEF PRDC       #"."#;          # PERIOD #
03902  M00S03773.acpd    +++|
03903  M00S03774.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
03904  M00S03775.acpd    +++|
03905  M00S03776.acpd    +++|*CALL     COMUCPD
03906  M00S03777.acpd    +++|
03907  M00S03778.acpd    +++|#
03908  M00S03779.acpd    +++|*     LOCAL VARIABLES.
03909  M00S03780.acpd    +++|#
03910  M00S03781.acpd    +++|
03911  M00S03782.acpd    +++|      ITEM J          I;             # FOR LOOP CONTROL #
03912  M00S03783.acpd    +++|      ITEM L          I;             # FOR LOOP CONTROL #
03913  M00S03784.acpd    +++|
03914  M00S03785.acpd    +++|      ARRAY ERMS [1:ERMSC] S(4);     # ERROR MESSSAGES #
03915  M00S03786.acpd    +++|        BEGIN  # ARRAY ERMS #
03916  M00S03787.acpd    +++|        ITEM ER$MS      C(00,00,38) =  # ERROR MESSAGES #
03917  M00S03788.acpd    +++|
03918  M00S03789.acpd    +++|                      [" ACPD ARGUMENT ERROR - $.",
03919  M00S03790.acpd    +++|                       " DATA ELEMENT NAME UNDEFINED - $.",
03920  M00S03791.acpd    +++|                       " BT/BD NOT FOUND.",
03921  M00S03792.acpd    +++|                       " DATA BLOCKS MISSING.",
03922  M00S03793.acpd    +++|                       " DATA FILE EMPTY.",
03923  M00S03794.acpd    +++|                       " DATA FILE CONTENT ERROR.",
03924  M00S03795.acpd    +++|                       " DATA FILE NOT AT BEGINNING OF FILE.",
03925  M00S03796.acpd    +++|                       " DATA FILE NOT IN CHRONOLOGICAL ORDER.",
03926  M00S03797.acpd    +++|                       " N EXCEEDS NUMBER OF FILES.",
03927  M00S03798.acpd    +++|                       " IN LESS THAN FILE WRITE TIME.",
03928  M00S03799.acpd    +++|                       " DATA FILE NOT FOUND - $.",
03929  M00S03800.acpd    +++|                       " DATA FILE POSITIONED AT EOI.",
Line S03801 Modification History
M01 (Removed by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03930  M01S03801.v23l617 ---|                       " ACPD/CPD VERSIONS MISMATCH."];
Line S00075 Modification History
M01 (Added by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03931  M01S00075.v23l617 +++|                       " ACPD/CPD VERSIONS MISMATCH.",
03932  M01S00076.v23l617 +++|                       " IN AND IC PARAMETER CONFLICT."];
03933  M00S03802.acpd    +++|
Line S03803 Modification History
M01 (Removed by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03934  M01S03803.v23l617 ---|        ITEM ER$ZR      C(03,48,02) = [0,0,0,0,0,0,0,0,0,0,0,0,0];
Line S00077 Modification History
M01 (Added by) v23l617
Seq #  *Modification Id* Act 
----------------------------+
03935  M01S00077.v23l617 +++|        ITEM ER$ZR      C(03,48,02) = [0,0,0,0,0,0,0,0,0,0,0,0,0,0];
03936  M00S03804.acpd    +++|                                     # ZERO FILLED LAST BYTE #
03937  M00S03805.acpd    +++|        END  # ARRAY ERMS #
03938  M00S03806.acpd    +++|
03939  M00S03807.acpd    +++|
03940  M00S03808.acpd    +++|
03941  M00S03809.acpd    +++|
03942  M00S03810.acpd    +++|
03943  M00S03811.acpd    +++|#
03944  M00S03812.acpd    +++|*     BEGIN PERROR PROC.
03945  M00S03813.acpd    +++|#
03946  M00S03814.acpd    +++|
03947  M00S03815.acpd    +++|      IF (ERNM NQ 0)                 # NAME SPECIFIED #
03948  M00S03816.acpd    +++|      THEN
03949  M00S03817.acpd    +++|        BEGIN  # FILL IN ERROR NAME #
03950  M00S03818.acpd    +++|        SLOWFOR J=2 STEP 1 WHILE (C<J,1>ER$MS[ERCD] NQ DOLC)
03951  M00S03819.acpd    +++|        DO;                          # LOOK FOR DOLLAR SIGN #
03952  M00S03820.acpd    +++|
03953  M00S03821.acpd    +++|        SLOWFOR L=0 STEP 1 WHILE (C<L,1>ERNM NQ 0)
03954  M00S03822.acpd    +++|          AND (C<L,1>ERNM NQ BLKC)
03955  M00S03823.acpd    +++|        DO
03956  M00S03824.acpd    +++|          BEGIN
03957  M00S03825.acpd    +++|          C<J,1>ER$MS[ERCD]=C<L,1>ERNM;
03958  M00S03826.acpd    +++|          J=J+1;
03959  M00S03827.acpd    +++|          END
03960  M00S03828.acpd    +++|
03961  M00S03829.acpd    +++|        C<J,1>ER$MS[ERCD]=PRDC;
03962  M00S03830.acpd    +++|        END  # FILL IN ERROR NAME #
03963  M00S03831.acpd    +++|
03964  M00S03832.acpd    +++|      MESSAGE(ER$MS[ERCD],3);        # ISSUE ERROR MESSAGE #
03965  M00S03833.acpd    +++|      IF (EROR NQ FATAL)
03966  M00S03834.acpd    +++|      THEN
03967  M00S03835.acpd    +++|        BEGIN
03968  M00S03836.acpd    +++|        RETURN;                      # TO CALLING PROGRAM #
03969  M00S03837.acpd    +++|        END
03970  M00S03838.acpd    +++|
03971  M00S03839.acpd    +++|      ABORT;
03972  M00S03840.acpd    +++|      END  # PERROR #
03973  M00S03841.acpd    +++|
03974  M00S03842.acpd    +++|      TERM
03975  M00S03843.acpd    +++|PROC PRDTEL((PVL),(DTY),(TMX));
03976  M00S03844.acpd    +++|# TITLE PRDTEL - PRINT ONE LINE OF DATA ELEMENT.  #
03977  M00S03845.acpd    +++|
03978  M00S03846.acpd    +++|      BEGIN  # PRDTEL #
03979  M00S03847.acpd    +++|
03980  M00S03848.acpd    +++|#
03981  M00S03849.acpd    +++|**    PRDTEL - PRINT ONE LINE OF DATA ELEMENT.
03982  M00S03850.acpd    +++|*
03983  M00S03851.acpd    +++|*     PRINT VALUES IN ONE LINE OF ONE DATA ELEMENT.
03984  M00S03852.acpd    +++|*
03985  M00S03853.acpd    +++|*     PROC PRDTEL((PVL),(DTY),(TMX))
03986  M00S03854.acpd    +++|*
03987  M00S03855.acpd    +++|*     ENTRY      PVL = POINTER TO VALUES.
03988  M00S03856.acpd    +++|*                DTY = DATA TYPE.
03989  M00S03857.acpd    +++|*                TMX = POINTER TO CURRENT TOTAL MAXIMUM AND
03990  M00S03858.acpd    +++|*                      MINIMUM VALUES.
03991  M00S03859.acpd    +++|*
03992  M00S03860.acpd    +++|*     EXIT       ONE ROW OF THE DATA ELEMENT-S VALUES ARE PRINTED.
03993  M00S03861.acpd    +++|*                THE SUBTOTAL IS ALSO PRINTED, ALONG WITH THE
03994  M00S03862.acpd    +++|*                MAXIMUM AND MIN VALUES OF THAT ROW.
03995  M00S03863.acpd    +++|#
03996  M00S03864.acpd    +++|
03997  M00S03865.acpd    +++|#
03998  M00S03866.acpd    +++|*     PARAMETER LIST.
03999  M00S03867.acpd    +++|#
04000  M00S03868.acpd    +++|
04001  M00S03869.acpd    +++|      ITEM PVL        U;             # POINTER TO VALUES #
04002  M00S03870.acpd    +++|      ITEM DTY        I;             # DATA TYPE #
04003  M00S03871.acpd    +++|      ITEM TMX        U;             # POINTER TO TOTAL MAXIMUM VALUE #
04004  M00S03872.acpd    +++|
04005  M00S03873.acpd    +++|#
04006  M00S03874.acpd    +++|****  PROC PRDTEL - XREF LIST BEGIN.
04007  M00S03875.acpd    +++|#
04008  M00S03876.acpd    +++|
04009  M00S03877.acpd    +++|      XREF
04010  M00S03878.acpd    +++|        BEGIN
04011  M00S03879.acpd    +++|        PROC DETMXM;                 # DETERMINE MAXIMUM AND MINIMUM #
04012  M00S03880.acpd    +++|        PROC WRITEV;                 # WRITE VALUE #
04013  M00S03881.acpd    +++|        END
04014  M00S03882.acpd    +++|
04015  M00S03883.acpd    +++|#
04016  M00S03884.acpd    +++|****  PROC PRDTEL - XREF LIST END.
04017  M00S03885.acpd    +++|#
04018  M00S03886.acpd    +++|
04019  M00S03887.acpd    +++|      DEF LISTCON    #0#;            # TURN OFF COMMON DECK LISTING #
04020  M00S03888.acpd    +++|
04021  M00S03889.acpd    +++|*CALL     COMUCPD
04022  M00S03890.acpd    +++|
04023  M00S03891.acpd    +++|#
04024  M00S03892.acpd    +++|*     LOCAL VARIABLES.
04025  M00S03893.acpd    +++|#
04026  M00S03894.acpd    +++|
04027  M00S03895.acpd    +++|      ITEM CL         I;             # COLUMN #
04028  M00S03896.acpd    +++|      ITEM CR         I;             # CARRIAGE CONTROL #
04029  M00S03897.acpd    +++|      ITEM I          I;             # FOR LOOP CONTROL #
04030  M00S03898.acpd    +++|      ITEM IC         I;             # INCREMENTOR #
04031  M00S03899.acpd    +++|      ITEM MN         I;             # MINIMUM INTERVAL #
04032  M00S03900.acpd    +++|      ITEM MX         I;             # MAXIMUM INTERVAL #
04033  M00S03901.acpd    +++|      ITEM X          R;             # TEMPORARY VARIABLE #
04034  M00S03902.acpd    +++|
04035  M00S03903.acpd    +++|      BASED
04036  M00S03904.acpd    +++|      ARRAY MXN [0:0] S(2);          # TOTAL MAXIMUM/MINIMUM VALUES #
04037  M00S03905.acpd    +++|        BEGIN  # ARRAY MXN #
04038  M00S03906.acpd    +++|        ITEM MXN$MX     R(00,00,60);  # TOTAL MAXIMUM VALUE #
04039  M00S03907.acpd    +++|        ITEM MXN$MN     R(01,00,60);  # TOTAL MINIMUM VALUE #
04040  M00S03908.acpd    +++|        END  # ARRAY MXN #
04041  M00S03909.acpd    +++|
04042  M00S03910.acpd    +++|      BASED
04043  M00S03911.acpd    +++|      ARRAY VAL [1:11] P(1);         # VALUES TO BE PRINTED #
04044  M00S03912.acpd    +++|        BEGIN  # ARRAY VAL #
04045  M00S03913.acpd    +++|        ITEM VL$F       R(00,00,60);  # REAL VALUE #
04046  M00S03914.acpd    +++|        ITEM VL$N       I(00,00,60);  # INTEGER VALUE #
04047  M00S03915.acpd    +++|        END  # ARRAY VAL #
04048  M00S03916.acpd    +++|
04049  M00S03917.acpd    +++|
04050  M00S03918.acpd    +++|
04051  M00S03919.acpd    +++|
04052  M00S03920.acpd    +++|
04053  M00S03921.acpd    +++|#
04054  M00S03922.acpd    +++|*     BEGIN PRDTEL PROC.
04055  M00S03923.acpd    +++|#
04056  M00S03924.acpd    +++|
04057  M00S03925.acpd    +++|      IF (NIPP LQ (DCDC-3))          # PRINT TOTAL ON SAME LINE #
04058  M00S03926.acpd    +++|      THEN                           # DO NOT LINE FEED #
04059  M00S03927.acpd    +++|        BEGIN
04060  M00S03928.acpd    +++|        CR=NLFC;
04061  M00S03929.acpd    +++|        END
04062  M00S03930.acpd    +++|
04063  M00S03931.acpd    +++|      ELSE
04064  M00S03932.acpd    +++|        BEGIN
04065  M00S03933.acpd    +++|        CR=LFDC;                     # LINE FEED #
04066  M00S03934.acpd    +++|        END
04067  M00S03935.acpd    +++|
04068  M00S03936.acpd    +++|#
04069  M00S03937.acpd    +++|*     DETERMINE MINIMUM AND MAXIMUM INTERVALS.
04070  M00S03938.acpd    +++|#
04071  M00S03939.acpd    +++|
04072  M00S03940.acpd    +++|      P<VAL>=PVL;
04073  M00S03941.acpd    +++|      P<MXN>=TMX;
04074  M00S03942.acpd    +++|      MX=1;
04075  M00S03943.acpd    +++|      MN=1;
04076  M00S03944.acpd    +++|      FASTFOR I=1 STEP 1 UNTIL NIPP
04077  M00S03945.acpd    +++|      DO
04078  M00S03946.acpd    +++|        BEGIN  # FIND MAXIMUM AND MINIMUM COLUMNS #
04079  M00S03947.acpd    +++|        IF (VL$F[I] GR VL$F[MX])
04080  M00S03948.acpd    +++|        THEN
04081  M00S03949.acpd    +++|          BEGIN
04082  M00S03950.acpd    +++|          MX=I;                      # CURRENT MAXIMUM POSITION #
04083  M00S03951.acpd    +++|          END
04084  M00S03952.acpd    +++|
04085  M00S03953.acpd    +++|        IF (VL$F[I] LS VL$F[MN])
04086  M00S03954.acpd    +++|        THEN
04087  M00S03955.acpd    +++|          BEGIN
04088  M00S03956.acpd    +++|          MN=I;                      # CURRENT MINIMUM POSITION #
04089  M00S03957.acpd    +++|          END
04090  M00S03958.acpd    +++|
04091  M00S03959.acpd    +++|        END  # FIND MAXIMUM AND MINIMUM COLUMNS #
04092  M00S03960.acpd    +++|
04093  M00S03961.acpd    +++|#
04094  M00S03962.acpd    +++|*     UPDATE CURRENT VALUES OF TOTAL MAXIMUM AND MINIMUM.
04095  M00S03963.acpd    +++|#
04096  M00S03964.acpd    +++|
04097  M00S03965.acpd    +++|      IF (VL$F[MX] GR MXN$MX[0])     # INTERVAL MAXIMUM .GT.
04098  M00S03966.acpd    +++|                                       TOTAL MAXIMUM #
04099  M00S03967.acpd    +++|      THEN
04100  M00S03968.acpd    +++|        BEGIN
04101  M00S03969.acpd    +++|        MXN$MX[0]=VL$F[MX];          # UPDATE TOTAL MAXIMUM #
04102  M00S03970.acpd    +++|        END
04103  M00S03971.acpd    +++|
04104  M00S03972.acpd    +++|      IF (VL$F[MN] LS MXN$MN[0])     # INTERVAL MINIMUM .LT.
04105  M00S03973.acpd    +++|                                       TOTAL MINIMUM #
04106  M00S03974.acpd    +++|      THEN
04107  M00S03975.acpd    +++|        BEGIN
04108  M00S03976.acpd    +++|        MXN$MN[0]=VL$F[MN];          # UPDATE TOTAL MINIMUM #
04109  M00S03977.acpd    +++|        END
04110  M00S03978.acpd    +++|
04111  M00S03979.acpd    +++|      IF (DTY NQ FLPC)               # NOT FLOATING POINT #
04112  M00S03980.acpd    +++|      THEN                           # CONVERT VALUES TO INTEGER #
04113  M00S03981.acpd    +++|        BEGIN
04114  M00S03982.acpd    +++|        FASTFOR I=1 STEP 1 UNTIL NIPP+1
04115  M00S03983.acpd    +++|        DO
04116  M00S03984.acpd    +++|          BEGIN
04117  M00S03985.acpd    +++|          X=VL$F[I];
04118  M00S03986.acpd    +++|          VL$N[I]=X;
04119  M00S03987.acpd    +++|          END
04120  M00S03988.acpd    +++|
04121  M00S03989.acpd    +++|        END
04122  M00S03990.acpd    +++|
04123  M00S03991.acpd    +++|#
04124  M00S03992.acpd    +++|*     NOW PRINT THE VALUES IN ONE LINE STARTING FROM
04125  M00S03993.acpd    +++|*     COLUMN *BCLC*.
04126  M00S03994.acpd    +++|#
04127  M00S03995.acpd    +++|
04128  M00S03996.acpd    +++|      CL=BCLC;
04129  M00S03997.acpd    +++|      FASTFOR I=1 STEP 1 UNTIL NIPP
04130  M00S03998.acpd    +++|      DO
04131  M00S03999.acpd    +++|        BEGIN
04132  M00S04000.acpd    +++|        WRITEV(VL$F[I],DTY,CL,10,NLFC);
04133  M00S04001.acpd    +++|        CL=CL+10;
04134  M00S04002.acpd    +++|        END
04135  M00S04003.acpd    +++|
04136  M00S04004.acpd    +++|#
04137  M00S04005.acpd    +++|*     INDICATE MINIMUM AND MAXIMUM INTERVAL VALUES BY ENCLOSING
04138  M00S04006.acpd    +++|*     THEM IN PARENTHESES AND BRACKETS, RESPECTIVELY.
04139  M00S04007.acpd    +++|#
04140  M00S04008.acpd    +++|
04141  M00S04009.acpd    +++|      IF (MX NQ MN)
04142  M00S04010.acpd    +++|      THEN
04143  M00S04011.acpd    +++|        BEGIN
04144  M00S04012.acpd    +++|        DETMXM(VL$F[MX],VL$F[MN],MX,MN,DTY);
04145  M00S04013.acpd    +++|        END
04146  M00S04014.acpd    +++|
04147  M00S04015.acpd    +++|      IF (TCOL GR (DCDC-3))
04148  M00S04016.acpd    +++|      THEN
04149  M00S04017.acpd    +++|        BEGIN
04150  M00S04018.acpd    +++|        WRITEV(VL$F[NIPP+1],DTY,CL+1,9,CR);   # WRITE SUBTOTAL #
04151  M00S04019.acpd    +++|        END
04152  M00S04020.acpd    +++|
04153  M00S04021.acpd    +++|      RETURN;
04154  M00S04022.acpd    +++|      END  # PRDTEL #
04155  M00S04023.acpd    +++|
04156  M00S04024.acpd    +++|      TERM
04157  M00S04025.acpd    +++|PROC PUTBLK((NSF),(FWA),(LWA));
04158  M00S04026.acpd    +++|# TITLE PUTBLK - PRINT ELEMENTS OF ONE LOOP OF DATA BLOCK.  #
04159  M00S04027.acpd    +++|
04160  M00S04028.acpd    +++|      BEGIN  # PUTBLK #
04161  M00S04029.acpd    +++|
04162  M00S04030.acpd    +++|#
04163  M00S04031.acpd    +++|**    PUTBLK - PRINT ELEMENTS OF ONE LOOP OF DATA BLOCK.
04164  M00S04032.acpd    +++|*
04165  M00S04033.acpd    +++|*     PUTBLK IS THE DRIVER IN PRINTING THE DATA BLOCK ELMENTS
04166  M00S04034.acpd    +++|*     (FAST LOOP, MEDIUM LOOP, SLOW LOOP).
04167  M00S04035.acpd    +++|*
04168  M00S04036.acpd    +++|*     PROC PUTBLK((NSF),(FWA),(LWA))
04169  M00S04037.acpd    +++|*
04170  M00S04038.acpd    +++|*     ENTRY      NSF = NUMBER OF RECORDS PER INTERVAL.
04171  M00S04039.acpd    +++|*                FWA = FIRST WORD ADDRESS OF LOOP IN TABLE *DSPT*.
04172  M00S04040.acpd    +++|*                LWA = LAST WORD ADDRESS OF LOOP IN TABLE *DSPT*.
04173  M00S04041.acpd    +++|*
04174  M00S04042.acpd    +++|*     EXIT       DATA ELEMENTS OF ONE LOOP ARE PRINTED BY THE
04175  M00S04043.acpd    +++|*                ORDER SPECIFIED IN TABLE *DSPT*.
04176  M00S04044.acpd    +++|#
04177  M00S04045.acpd    +++|
04178  M00S04046.acpd    +++|#
04179  M00S04047.acpd    +++|*     PARAMETER LIST.
04180  M00S04048.acpd    +++|#
04181  M00S04049.acpd    +++|
04182  M00S04050.acpd    +++|      ITEM NSF        I;             # NUMBER OF RECORDS PER INTERVAL #
04183  M00S04051.acpd    +++|      ITEM FWA        I;             # *FWA* OF BLOCK IN *DSPT* TABLE #
04184  M00S04052.acpd    +++|      ITEM LWA        I;             # *LWA* OF BLOCK IN *DSPT* TABLE #
04185  M00S04053.acpd    +++|
04186  M00S04054.acpd    +++|#
04187  M00S04055.acpd    +++|****  PROC PUTBLK - XREF LIST BEGIN.
Proceed to Part 2
cdc/nos2.source/opl.opl871/deck/acpd.001.txt ยท Last modified: by 127.0.0.1