User Tools

Site Tools


cdc:nos2.source:opl.opl871:common:comcvde

Common COMCVDE

2 Modifications

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.comcvde +++|          CTEXT  COMCVDE - VALIDATE DATE OR TIME EXPRESSION.
00002  M01S00002.comcvde +++|          SPACE  4,10
00003  M01S00003.comcvde +++|          IF     -DEF,QUAL$
00004  M01S00004.comcvde +++|          QUAL   COMCVDE
00005  M01S00005.comcvde +++|          ENDIF
00006  M01S00006.comcvde +++|          BASE   D
Line S00007 Modification History
M01 (Added by) comcvde
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00007  M02S00007.281l803 ---|*         COMMENT  COPYRIGHT CONTROL DATA CORPORATION, 1987.
00008  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00009  M01S00008.comcvde +++| VDE      SPACE  4,10
00010  M01S00009.comcvde +++|***       COMCVDE - VALIDATE DATE OR TIME EXPRESSION.
00011  M01S00010.comcvde +++|*
00012  M01S00011.comcvde +++|*         G. S. YODER.       89/05/11.
00013  M01S00012.comcvde +++|          SPACE  4,15
00014  M01S00013.comcvde +++|***       VDE - VALIDATE DATE OR TIME EXPRESSION.
00015  M01S00014.comcvde +++|*
00016  M01S00015.comcvde +++|*         *VDE* CONVERTS A DISPLAY CODED DATE OR TIME EXPRESSION TO A
00017  M01S00016.comcvde +++|*         PACKED FORMAT DATE OR A PACKED FORMAT DATE AND TIME.  A DATE
00018  M01S00017.comcvde +++|*         MAY BE SPECIFIED EXPLICITLY OR AS THE NUMBER OF DAYS BEFORE
00019  M01S00018.comcvde +++|*         OR AFTER A BASE DATE.  A TIME MAY BE SPECIFIED EXPLICITLY OR
00020  M01S00019.comcvde +++|*         AS THE NUMBER OF DAYS, HOURS, MINUTES, OR SECONDS BEFORE OR
00021  M01S00020.comcvde +++|*         AFTER A BASE DATE AND TIME.  STATUS IS RETURNED INDICATING
00022  M01S00021.comcvde +++|*         WHETHER THE ENTERED DATE OR TIME IS BEFORE OR AFTER THE BASE
00023  M01S00022.comcvde +++|*         DATE AND TIME AND WHETHER AN EXPLICIT VALUE WAS SPECIFIED.
00024  M01S00023.comcvde +++|*
00025  M01S00024.comcvde +++|*         THE BASE DATE AND TIME WILL BE SET TO THE CURRENT DATE AND
00026  M01S00025.comcvde +++|*         TIME ON THE FIRST CALL TO *VDT* IF NOT PRESET BY THE CALLER.
00027  M01S00026.comcvde +++| VDE      SPACE  4,75
00028  M01S00027.comcvde +++|**        VDE - VALIDATE RELATIVE OR EXPLICIT DATE OR TIME EXPRESSION.
00029  M01S00028.comcvde +++|*
00030  M01S00029.comcvde +++|*         ENTRY  (X1) = DATE OR TIME PARAMETER, LEFT JUSTIFIED.
00031  M01S00030.comcvde +++|*                (X2) = 0 IF TO CONVERT DATE.
00032  M01S00031.comcvde +++|*                (X2) = 1 IF TO CONVERT TIME.
00033  M01S00032.comcvde +++|*                (VDTA) = 0 IF TO USE CURRENT SYSTEM DATE AND TIME AS
00034  M01S00033.comcvde +++|*                           BASE.
00035  M01S00034.comcvde +++|*                (VDTA) = PACKED FORMAT BASE DATE AND TIME IF .NE. 0.
00036  M01S00035.comcvde +++|*
00037  M01S00036.comcvde +++|*         EXIT   (X6) = 18 BIT PACKED FORMAT DATE OR TIME IF NOT
00038  M01S00037.comcvde +++|*                         RELATIVE TIME ENTRY.
00039  M01S00038.comcvde +++|*                (X6) = 36 BIT PACKED FORMAT DATE AND TIME IF
00040  M01S00039.comcvde +++|*                         RELATIVE TIME ENTRY.
00041  M01S00040.comcvde +++|*                (X6) .LT. 0 IF ERROR IN DATE OR TIME ENTRY.
00042  M01S00041.comcvde +++|*                (X1) .LT. 0 IF DATE OR TIME EARLIER THAN BASE DATE AND
00043  M01S00042.comcvde +++|*                     TIME.
00044  M01S00043.comcvde +++|*                (X1) .GE. 0 IF DATE OR TIME LATER THAN BASE DATE AND
00045  M01S00044.comcvde +++|*                     TIME.
00046  M01S00045.comcvde +++|*                (X2) = 0 IF EXPLICIT DATE OR TIME ENTRY.
00047  M01S00046.comcvde +++|*                (X2) .NE. 0 IF RELATIVE DATE OR TIME ENTRY.
00048  M01S00047.comcvde +++|*                (VDTA) = BASE DATE AND TIME.
00049  M01S00048.comcvde +++|*
00050  M01S00049.comcvde +++|*         USES   X - 1, 2, 3, 5, 6, 7.
00051  M01S00050.comcvde +++|*                A - 1, 2, 6, 7.
00052  M01S00051.comcvde +++|*                B - 6, 7.
00053  M01S00052.comcvde +++|*
00054  M01S00053.comcvde +++|*         CALLS  DXB, EDP, ETP, PDE, PTE, VDT.
00055  M01S00054.comcvde +++|*
00056  M01S00055.comcvde +++|*         NOTES  THE FOLLOWING RULES ARE USED TO DETERMINE THE VALIDITY
00057  M01S00056.comcvde +++|*                OF THE ENTERED DATE AND TIME.
00058  M01S00057.comcvde +++|*
00059  M01S00058.comcvde +++|*                1. A DATE CAN BE ENTERED EXPLICITLY IN YYMMDD FORMAT
00060  M01S00059.comcvde +++|*                   OR IN ONE OF THE FOLLOWING RELATIVE FORMS -
00061  M01S00060.comcvde +++|*
00062  M01S00061.comcvde +++|*                   BDNNN    NNN = NUMBER OF DAYS BEFORE BASE DATE.
00063  M01S00062.comcvde +++|*                   ADNNN    NNN = NUMBER OF DAYS AFTER BASE DATE.
00064  M01S00063.comcvde +++|*                   BNNN     NNN = NUMBER OF DAYS BEFORE BASE DATE.
00065  M01S00064.comcvde +++|*                   ANNN     NNN = NUMBER OF DAYS AFTER BASE DATE.
00066  M01S00065.comcvde +++|*
00067  M01S00066.comcvde +++|*                   THE INCREMENT *NNN* IS ONE TO EIGHT DIGITS FOR THE
00068  M01S00067.comcvde +++|*                   *BD* AND *AD* FORMS AND ONE TO NINE DIGITS FOR THE
00069  M01S00068.comcvde +++|*                   *B* OR *A* FORM.  THE ASSUMED BASE IS DECIMAL.  IF
00070  M01S00069.comcvde +++|*                   A DATE INCREMENT PRODUCES A DATE BEFORE 70/01/01 OR
00071  M01S00070.comcvde +++|*                   AFTER 33/12/31 THE RESULT WILL BE SET TO 70/01/01
00072  M01S00071.comcvde +++|*                   OR 33/12/31 RESPECTIVELY.
00073  M01S00072.comcvde +++|*
00074  M01S00073.comcvde +++|*                2. A TIME CAN BE ENTERED EXPLICITLY IN HHMMSS FORMAT
00075  M01S00074.comcvde +++|*                   OR IN ONE OF THE FOLLOWING RELATIVE FORMS -
00076  M01S00075.comcvde +++|*
00077  M01S00076.comcvde +++|*                   BDNNN    NNN = NUMBER OF DAYS BEFORE BASE DATE AND
00078  M01S00077.comcvde +++|*                                  TIME.
00079  M01S00078.comcvde +++|*                   ADNNN    NNN = NUMBER OF DAYS AFTER BASE DATE AND
00080  M01S00079.comcvde +++|*                                  TIME.
00081  M01S00080.comcvde +++|*                   BHNNN    NNN = NUMBER OF HOURS BEFORE BASE DATE AND
00082  M01S00081.comcvde +++|*                                  TIME.
00083  M01S00082.comcvde +++|*                   AHNNN    NNN = NUMBER OF HOURS AFTER BASE DATE AND
00084  M01S00083.comcvde +++|*                                  TIME.
00085  M01S00001.ns2786  +++|*                   BMNNN    NNN = NUMBER OF MINUTES BEFORE BASE DATE
00086  M01S00002.ns2786  +++|*                                  AND TIME.
00087  M01S00003.ns2786  +++|*                   AMNNN    NNN = NUMBER OF MINUTES AFTER BASE DATE
00088  M01S00004.ns2786  +++|*                                  AND TIME.
00089  M01S00084.comcvde +++|*                   BSNNN    NNN = NUMBER OF SECONDS BEFORE BASE DATE
00090  M01S00085.comcvde +++|*                                  AND TIME.
00091  M01S00086.comcvde +++|*                   ASNNN    NNN = NUMBER OF SECONDS AFTER BASE DATE
00092  M01S00087.comcvde +++|*                                  AND TIME.
00093  M01S00088.comcvde +++|*                   BNNN     NNN = NUMBER OF HOURS BEFORE BASE DATE AND
00094  M01S00089.comcvde +++|*                                  TIME.
00095  M01S00090.comcvde +++|*                   ANNN     NNN = NUMBER OF HOURS AFTER BASE DATE AND
00096  M01S00091.comcvde +++|*                                  TIME.
00097  M01S00092.comcvde +++|*
00098  M01S00093.comcvde +++|*                   THE INCREMENT *NNN* IS ONE TO EIGHT DIGITS FOR THE
Line S00094 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00099  M02S00094.ns2786  ---|*                   *BD*, *AD*, *BH*, *AH*, *BS*, AND *AS* FORMS AND
Line S00095 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00100  M02S00095.ns2786  ---|*                   ONE TO NINE DIGITS FOR THE *B* OR *A* FORM.  THE
Line S00096 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00101  M02S00096.ns2786  ---|*                   ASSUMED BASE IS DECIMAL.  A TIME INCREMENT WILL
Line S00097 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00102  M02S00097.ns2786  ---|*                   PRODUCE A RESULT OF 70/01/01 00.00.00 OR 33/12/31
Line S00098 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00103  M02S00098.ns2786  ---|*                   23.59.59 IF THE RESULTING DATE AND TIME IS
Line S00099 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00104  M02S00099.ns2786  ---|*                   RESPECTIVELY LESS THAN OR GREATER THAN THESE
Line S00100 Modification History
M01 (Added by) comcvde
M02 (Updated by) ns2786
Seq #  *Modification Id* Act 
----------------------------+
00105  M02S00100.ns2786  ---|*                   LIMITS.
00106  M01S00005.ns2786  +++|*                   *BD*, *AD*, *BH*, *AH*, *BM*, *AM*, *BS*, AND *AS*
00107  M01S00006.ns2786  +++|*                   FORMS, AND ONE TO NINE DIGITS FOR THE *B* OR *A*
00108  M01S00007.ns2786  +++|*                   FORM.  A DECIMAL BASE IS ASSUMED.  A TIME INCREMENT
00109  M01S00008.ns2786  +++|*                   PRODUCES A RESULT OF 70/01/01 00.00.00 OR 33/12/31
00110  M01S00009.ns2786  +++|*                   23.59.59 RESPECTIVELY IF THE RESULTING DATE AND
00111  M01S00010.ns2786  +++|*                   TIME IS LESS THAN OR GREATER THAN THESE LIMITS.
00112  M01S00101.comcvde +++|*
00113  M01S00102.comcvde +++|*                   A TIME ENTERED IN RELATIVE FORMAT DEFINES BOTH A
00114  M01S00103.comcvde +++|*                   DATE AND TIME.  IT IS THE RESPONSIBILITY OF THE
00115  M01S00104.comcvde +++|*                   CALLING PROGRAM TO DETECT A CONFLICT IF BOTH A DATE
00116  M01S00105.comcvde +++|*                   AND AN RELATIVE TIME PARAMETER ARE ENTERED.
00117  M01S00106.comcvde +++|*
00118  M01S00107.comcvde +++|*         XREF   COMCDTC, COMCDXB, COMCVDT.
00119  M01S00108.comcvde +++|
00120  M01S00109.comcvde +++|
00121  M01S00110.comcvde +++| VDE11    SX6    -1          SET ERROR IN ENTRY
00122  M01S00111.comcvde +++|
00123  M01S00112.comcvde +++| VDE      SUBR               ENTRY/EXIT
00124  M01S00113.comcvde +++|
00125  M01S00114.comcvde +++|*         CHECK FOR EXPLICIT DATE OR TIME ENTRY.
00126  M01S00115.comcvde +++|
00127  M01S00116.comcvde +++|          BX6    X1          SAVE ENTERED VALUE
00128  M01S00117.comcvde +++|          BX7    X2          SAVE DATE/TIME FLAG
00129  M01S00118.comcvde +++|          SA6    VDEC
00130  M01S00119.comcvde +++|          SA7    VDED
00131  M01S00120.comcvde +++|          RJ     VDT         CHECK FOR EXPLICIT ENTRY
00132  M01S00121.comcvde +++|          SX2    0           SET EXPLICIT ENTRY
00133  M01S00122.comcvde +++|          PL     X6,VDEX     IF VALID DATE OR TIME ENTERED
00134  M01S00123.comcvde +++|
00135  M01S00124.comcvde +++|*         UPDATE BASE DATE AND TIME FOR RELATIVE ENTRIES.
00136  M01S00125.comcvde +++|
00137  M01S00126.comcvde +++|          SA1    VDTA
00138  M01S00127.comcvde +++|          SA2    VDEA
00139  M01S00128.comcvde +++|          BX2    X1-X2
00140  M01S00129.comcvde +++|          ZR     X2,VDE1     IF BASE ELAPSED DAYS AND SECONDS CURRENT
00141  M01S00130.comcvde +++|          BX6    X1
00142  M01S00131.comcvde +++|          AX1    18
00143  M01S00132.comcvde +++|          SA6    VDEA        SAVE BASE DATE AND TIME
00144  M01S00133.comcvde +++|          RJ     PDE         COMPUTE BASE ELAPSED DAYS
00145  M01S00134.comcvde +++|          SA6    VDEB        SET ELAPSED DAYS
00146  M01S00135.comcvde +++|          SA1    VDTA        COMPUTE BASE ELAPSED SECONDS
00147  M01S00136.comcvde +++|          RJ     PTE
00148  M01S00137.comcvde +++|          SA6    VDEB+1      SET ELAPSED SECONDS
00149  M01S00138.comcvde +++|
00150  M01S00139.comcvde +++|*         VALIDATE RELATIVE ENTRY.
00151  M01S00140.comcvde +++|
00152  M01S00141.comcvde +++| VDE1     SA1    VDEC        RESTORE DATE OR TIME ENTRY
00153  M01S00142.comcvde +++|          SA2    VDED        RESTORE DATE/TIME FLAG
00154  M01S00143.comcvde +++|          MX6    -6
00155  M01S00144.comcvde +++|          LX1    6
00156  M01S00145.comcvde +++|          BX7    -X6*X1      ISOLATE *A* OR *B*
00157  M01S00146.comcvde +++|          MX6    6
00158  M01S00147.comcvde +++|          SB6    X7-1RA      SET BEFORE/AFTER FLAG
00159  M01S00148.comcvde +++|          SX7    X7-1RB
00160  M01S00149.comcvde +++|          ZR     B6,VDE2     IF *AFTER* ENTRY
00161  M01S00150.comcvde +++|          NZ     X7,VDE11    IF NOT *BEFORE* ENTRY
00162  M01S00151.comcvde +++| VDE2     BX3    X6*X1       CHECK UNITS IDENTIFIER
00163  M01S00152.comcvde +++|          LX3    6
00164  M01S00153.comcvde +++|          SX7    X3-1R0
00165  M01S00154.comcvde +++|          SB7    60*60       PRESET SECONDS MULTIPLIER FOR HOURS
00166  M01S00155.comcvde +++|          PL     X7,VDE4     IF NOT ALPHABETIC
00167  M01S00156.comcvde +++|          SX7    X3-1RD
00168  M01S00157.comcvde +++|          LX1    6
00169  M01S00158.comcvde +++|          ZR     X2,VDE3     IF DATE ENTRY
00170  M01S00159.comcvde +++|          SX2    X3-1RH
00171  M01S00160.comcvde +++|          ZR     X2,VDE4     IF HOURS ENTRY
00172  M01S00161.comcvde +++|          SX2    X3-1RM
00173  M01S00162.comcvde +++|          SB7    60
00174  M01S00163.comcvde +++|          ZR     X2,VDE4     IF MINUTES ENTRY
00175  M01S00164.comcvde +++|          SX2    X3-1RS
00176  M01S00165.comcvde +++|          SB7    1
00177  M01S00166.comcvde +++|          ZR     X2,VDE4     IF SECONDS ENTRY
00178  M01S00167.comcvde +++|          SB7    60*60*24
00179  M01S00168.comcvde +++| VDE3     NZ     X7,VDE11    IF NOT DAYS ENTRY
00180  M01S00169.comcvde +++|
00181  M01S00170.comcvde +++|*         CONVERT RELATIVE ENTRY.
00182  M01S00171.comcvde +++|
00183  M01S00172.comcvde +++| VDE4     MX6    48
00184  M01S00173.comcvde +++|          BX5    X6*X1       ISOLATE INCREMENT
00185  M01S00174.comcvde +++|          RJ     DXB         CONVERT INCREMENT
00186  M01S00175.comcvde +++|          SA2    VDED        RESTORE DATE/TIME FLAG
00187  M01S00176.comcvde +++|          NZ     X4,VDE11    IF ERROR IN CONVERSION
00188  M01S00177.comcvde +++|          ZR     X6,VDE5     IF ZERO INCREMENT
00189  M01S00178.comcvde +++|          ZR     B6,VDE5     IF *AFTER* ENTRY
00190  M01S00179.comcvde +++|          BX6    -X6         COMPLEMENT INCREMENT
00191  M01S00180.comcvde +++|          SB6    -B1         FLAG BEFORE BASE DATE OR TIME
00192  M01S00181.comcvde +++| VDE5     NZ     X2,VDE8     IF TIME ENTRY
00193  M01S00182.comcvde +++|          SA1    VDEB
00194  M01S00183.comcvde +++|          IX1    X1+X6       ADD DAYS INCREMENT TO BASE
00195  M01S00184.comcvde +++|          PL     X1,VDE6     IF VALUE .GE. 70/01/01
00196  M01S00185.comcvde +++|          SX1    B0          SET MINIMUM VALUE
00197  M01S00186.comcvde +++|          EQ     VDE7        CONVERT ENTRY
00198  M01S00187.comcvde +++|
00199  M01S00188.comcvde +++| VDE6     SX3    X1-23375-1
00200  M01S00189.comcvde +++|          NG     X3,VDE7     IF VALUE .LE. 33/12/31
00201  M01S00190.comcvde +++|          SX1    23375       SET MAXIMUM VALUE
00202  M01S00191.comcvde +++| VDE7     RJ     EDP         CONVERT INCREMENTED DATE TO PACKED FORMAT
00203  M01S00192.comcvde +++|          SX1    B6          SET BEFORE/AFTER BASE DATE FLAG
00204  M01S00193.comcvde +++|          SX2    B1          SET RELATIVE ENTRY FLAG
00205  M01S00194.comcvde +++|          EQ     VDEX        RETURN
00206  M01S00195.comcvde +++|
00207  M01S00196.comcvde +++| VDE8     SA1    VDEB+1      GET BASE DATE AND TIME
00208  M01S00197.comcvde +++|          SA2    VDEF
00209  M01S00198.comcvde +++|          SX7    B7+         SET SECONDS MULTIPLIER
00210  M01S00199.comcvde +++|          IX6    X6*X7
00211  M01S00200.comcvde +++|          IX1    X1+X6
00212  M01S00201.comcvde +++|          PL     X1,VDE9     IF VALUE .GE. 70/01/01 00.00.00
00213  M01S00202.comcvde +++|          SX1    B0+         SET MINIMUM VALUE
00214  M01S00203.comcvde +++|          EQ     VDE10       CONVERT VALUE
00215  M01S00204.comcvde +++|
00216  M01S00205.comcvde +++| VDE9     IX3    X2-X1
00217  M01S00206.comcvde +++|          PL     X3,VDE10    IF VALUE .LE. 33/12/31 23.59.59
00218  M01S00207.comcvde +++|          BX1    X2          SET MAXIMUM VALUE
00219  M01S00208.comcvde +++| VDE10    RJ     ETP         CONVERT SECONDS TO PACKED DATE AND TIME
00220  M01S00209.comcvde +++|          SX1    B6          SET BEFORE/AFTER BASE DATE AND TIME FLAG
00221  M01S00210.comcvde +++|          SX2    B1          SET RELATIVE ENTRY FLAG
00222  M01S00211.comcvde +++|          EQ     VDEX        RETURN
00223  M01S00212.comcvde +++|
00224  M01S00213.comcvde +++|
00225  M01S00214.comcvde +++| VDEA     CON    0           BASE DATE AND TIME FOR ELAPSED VALUES
00226  M01S00215.comcvde +++| VDEB     CON    0           BASE ELAPSED DAYS
00227  M01S00216.comcvde +++|          CON    0           BASE ELAPSED SECONDS
00228  M01S00217.comcvde +++| VDEC     CON    0           ENTERED VALUE
00229  M01S00218.comcvde +++| VDED     CON    0           DATE/TIME FLAG
00230  M01S00219.comcvde +++| VDEF     CON    2019686399
00231  M01S00220.comcvde +++|
00232  M01S00221.comcvde +++|
00233  M01S00222.comcvde +++| QUAL$    IF     -DEF,QUAL$
00234  M01S00223.comcvde +++|          QUAL   *
00235  M01S00224.comcvde +++| VDE      EQU    /COMCVDE/VDE
00236  M01S00225.comcvde +++| QUAL$    ENDIF
00237  M01S00226.comcvde +++| VDE      ENDX
cdc/nos2.source/opl.opl871/common/comcvde.txt · Last modified: by 127.0.0.1