User Tools

Site Tools


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

Common COMPUPS

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.compups +++|          CTEXT  COMPUPS - UNPACK STATEMENT.
00002  M01S00002.compups +++| UPS      SPACE  4
00003  M01S00003.compups +++|          IF     -DEF,QUAL$,1
00004  M01S00004.compups +++|          QUAL   COMPUPS
Line S00005 Modification History
M01 (Added by) compups
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00005  M02S00005.281l803 ---|*         COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
00006  M01S00001.281l803 +++|*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00007  M01S00006.compups +++| UPS      SPACE  4
00008  M01S00007.compups +++|***       UPS - UNPACK STATEMENT.
00009  M01S00008.compups +++|*         G. R. MANSFIELD.   70/10/18.
00010  M01S00009.compups +++|*         D. A. HIVELEY.     73/12/07.
00011  M01S00010.compups +++|*         R. A. LARSEN.      76/05/20.
00012  M01S00011.compups +++| UPS      SPACE  4
00013  M01S00012.compups +++|***              UPS UNPACKS A STATEMENT FROM A WORD BUFFER TO A
00014  M01S00013.compups +++|*         CHARACTER BUFFER.
00015  M01S00014.compups +++|*
00016  M01S00015.compups +++|*         CHARACTER PROCESSING WITHOUT LITERALS -
00017  M01S00016.compups +++|*                IMBEDDED SPACES ARE DELETED.
00018  M01S00017.compups +++|*                THE STRING TERMINATES WITH A BYTE OF 0000.
00019  M01S00018.compups +++|*                THE TERMINATION CONDITION IS A *.* OR *)*.
00020  M01S00019.compups +++|*
00021  M01S00020.compups +++|*         CHARACTER PROCESSING WITH LITERALS -
00022  M01S00021.compups +++|*                LITERALS ARE DELIMITED BY A *$*.
00023  M01S00022.compups +++|*                A *$$* IS VALID WITHIN A LITERAL AND IS NOT CONSIDERED
00024  M01S00023.compups +++|*                A DELIMITER.
00025  M01S00024.compups +++|*                A *.*, *)*, OR * * WITHIN A LITERAL HAS NO SPECIAL
00026  M01S00025.compups +++|*                MEANING.
00027  M01S00026.compups +++|*                OUTSIDE THE LITERAL IMBEDDED SPACES ARE DELETED.
00028  M01S00027.compups +++|*                THE STRING TERMINATES WITH A BYTE OF 0000.
00029  M01S00028.compups +++|*
00030  M01S00029.compups +++|*         ERROR CONDITIONS -
00031  M01S00030.compups +++|*                NO TERMINATOR FOUND.
00032  M01S00031.compups +++|*                BYTE VALUE = 0 (DOUBLE COLON).
00033  M01S00032.compups +++|*                UNDELIMITED LITERAL.
00034  M01S00033.compups +++|*
00035  M01S00034.compups +++|*         ENTRY  (STMT - STMT+N) = STATEMENT TERMINATED WITH A 0 WORD.
00036  M01S00035.compups +++|*
00037  M01S00036.compups +++|*         EXIT   (A) = 0, IF N0 ERROR FOUND.
00038  M01S00037.compups +++|*                (T1) = ADDRESS OF LAST BYTE GOTTEN FROM (STMT).
00039  M01S00038.compups +++|*                (T2) = ADDRESS OF LAST CHARACTER STORED IN (CHAR).
00040  M01S00039.compups +++|*                (T3) = CHARACTER POSITION INDICATOR
00041  M01S00040.compups +++|*                       (1 = UPPER, 0 = LOWER).
00042  M01S00041.compups +++|*                (CHAR - CHAR+N) = UNPACKED STATEMENT.
00043  M01S00042.compups +++|*
00044  M01S00043.compups +++|*         USES   T1 - T3.
00045  M01S00044.compups +++|*
00046  M01S00045.compups +++|*         CALLS  GNC.
00047  M01S00046.compups +++|
00048  M01S00047.compups +++|
00049  M01S00048.compups +++| UPS      SUBR               ENTRY/EXIT
00050  M01S00049.compups +++|          LDN    0           CLEAR CHARACTER POSITION INDICATOR
00051  M01S00050.compups +++|          STD    T3
00052  M01S00051.compups +++|          LDC    STMT-1      SET STATEMENT ADDRESS
00053  M01S00052.compups +++|          STD    T1
00054  M01S00053.compups +++|          LDC    CHAR        SET CHARACTER ADDRESS
00055  M01S00054.compups +++|          STD    T2
00056  M01S00055.compups +++|
00057  M01S00056.compups +++|*         CHECK FIRST CHARACTER, DELETING IMBEDDED BLANKS.
00058  M01S00057.compups +++|
00059  M01S00058.compups +++| UPS1     RJM    GNC         GET NEXT CHARACTER
00060  M01S00059.compups +++|          ZJN    UPS7        IF COLON
00061  M01S00060.compups +++|          SBN    1R$
00062  M01S00061.compups +++|          ZJN    UPS8        IF *$*
00063  M01S00062.compups +++|          SBN    1R -1R$
00064  M01S00063.compups +++|          ZJN    UPS1        IF BLANK
00065  M01S00064.compups +++|          ADN    -1RZ-1+1R
00066  M01S00065.compups +++|          MJN    UPS8        IF ALPHABETIC
00067  M01S00066.compups +++|          SBN    1R9+1-1RZ-1
00068  M01S00067.compups +++|          PJN    UPS7        IF NON-NUMERIC
00069  M01S00068.compups +++|
00070  M01S00069.compups +++|*         SKIP SEQUENCE NUMBER, DELETING IMBEDDED BLANKS.
00071  M01S00070.compups +++|
00072  M01S00071.compups +++| UPS2     AOD    T2          ADVANCE CHARACTER ADDRESS
00073  M01S00072.compups +++| UPS3     RJM    GNC         GET NEXT CHARACTER
00074  M01S00073.compups +++|          ZJN    UPS5        IF COLON
00075  M01S00074.compups +++|          SBN    1R9+1
00076  M01S00075.compups +++|          MJN    UPS2        IF ALPHANUMERIC
00077  M01S00076.compups +++|          SBN    1R)-1R9-1
00078  M01S00077.compups +++|          ZJN    UPS4        IF *)*
00079  M01S00078.compups +++|          SBN    1R -1R)
00080  M01S00079.compups +++|          ZJN    UPS3        IF BLANK
00081  M01S00080.compups +++|          SBN    1R.-1R
00082  M01S00081.compups +++|          NJN    UPS5        IF NOT *.*
00083  M01S00082.compups +++| UPS4     STI    T2          TERMINATE BUFFER
00084  M01S00083.compups +++|          LJM    UPSX        RETURN
00085  M01S00084.compups +++|
00086  M01S00085.compups +++|*         CHECK FIRST CHARACTER AFTER SEQUENCE NUMBER TERMINATOR.
00087  M01S00086.compups +++|
00088  M01S00087.compups +++| UPS5     AOD    T2          ADVANCE CHARACTER ADDRESS
00089  M01S00088.compups +++| UPS6     RJM    GNC         GET NEXT CHARACTER
00090  M01S00089.compups +++|          LMN    1R
00091  M01S00090.compups +++|          ZJN    UPS6        IF BLANK
00092  M01S00091.compups +++|          LMN    1R$&1R
00093  M01S00092.compups +++|          ZJN    UPS8        IF *$*
00094  M01S00093.compups +++| UPS7     LDI    T2          GET CURRENT CHARACTER
00095  M01S00094.compups +++|          UJN    UPS10       SEARCH FOR TERMINATOR
00096  M01S00095.compups +++|
00097  M01S00096.compups +++|*         SEARCH FOR TERMINATOR, DELETING IMBEDDED BLANKS.
00098  M01S00097.compups +++|
00099  M01S00098.compups +++| UPS8     AOD    T2          ADVANCE CHARACTER ADDRESS
00100  M01S00099.compups +++| UPS9     RJM    GNC         GET NEXT CHARACTER
00101  M01S00100.compups +++| UPS10    LMN    1R
00102  M01S00101.compups +++|          ZJN    UPS9        IF BLANK
00103  M01S00102.compups +++|          LMN    1R.&1R
00104  M01S00103.compups +++|          ZJN    UPS4        IF *.*
00105  M01S00104.compups +++|          LMN    1R)&1R.
00106  M01S00105.compups +++|          ZJN    UPS4        IF *)*
00107  M01S00106.compups +++|          LMN    1R$&1R)
00108  M01S00107.compups +++|          NJN    UPS8        IF NOT *$*
00109  M01S00108.compups +++|
00110  M01S00109.compups +++|*         PROCESS LITERAL CHARACTER STRING.
00111  M01S00110.compups +++|
00112  M01S00111.compups +++| UPS11    AOD    T2          ADVANCE CHARACTER ADDRESS
00113  M01S00112.compups +++|          RJM    GNC         GET NEXT CHARACTER
00114  M01S00113.compups +++|          LMN    1R$
00115  M01S00114.compups +++|          NJN    UPS11       IF NOT *$*
00116  M01S00115.compups +++|          AOD    T2          ADVANCE CHARACTER ADDRESS
00117  M01S00116.compups +++|          RJM    GNC         GET NEXT CHARACTER
00118  M01S00117.compups +++|          LMN    1R$
00119  M01S00118.compups +++|          ZJN    UPS11       IF *$$*
00120  M01S00119.compups +++|          UJN    UPS7        END OF LITERAL STRING
00121  M01S00120.compups +++| GNC      SPACE  4,15
00122  M01S00121.compups +++|**        GNC - GET NEXT CHARACTER.
00123  M01S00122.compups +++|*
00124  M01S00123.compups +++|*         ENTRY  (T1) = ADDRESS OF NEXT BYTE OF CONTROL CARD - 1.
00125  M01S00124.compups +++|*                (T2) = ADDRESS TO STORE NEXT CHARACTER.
00126  M01S00125.compups +++|*                (T3) = NEXT CHARACTER INDICATOR.
00127  M01S00126.compups +++|*
00128  M01S00127.compups +++|*         EXIT   (A) = NEXT CHARACTER.
00129  M01S00128.compups +++|*                (T1) ADVANCED IF NEW BYTE NEEDED.
00130  M01S00129.compups +++|*                ((T2)) = NEXT CHARACTER.
00131  M01S00130.compups +++|*                (T3) = TOGGLED TO INDICATE NEXT CHARACTER.
00132  M01S00131.compups +++|*                TO *UPSX* IF ERROR ENCOUNTERED.
00133  M01S00132.compups +++|*
00134  M01S00133.compups +++|*         USES   T1, T2, T3.
00135  M01S00134.compups +++|
00136  M01S00135.compups +++|
00137  M01S00136.compups +++| GNC2     SHN    -6          POSITION UPPER CHARACTER
00138  M01S00137.compups +++|          UJN    GNC4        STORE CHARACTER
00139  M01S00138.compups +++|
00140  M01S00139.compups +++| GNC3     LDI    T1          GET LOWER CHARACTER
00141  M01S00140.compups +++|          LPN    77
00142  M01S00141.compups +++| GNC4     STI    T2          STORE CHARACTER
00143  M01S00142.compups +++|
00144  M01S00143.compups +++| GNC      SUBR               ENTRY/EXIT
00145  M01S00144.compups +++|          LDD    T3          DETERMINE UPPER/LOWER CHARACTER
00146  M01S00145.compups +++|          LMN    1
00147  M01S00146.compups +++|          STD    T3
00148  M01S00147.compups +++|          ZJN    GNC3        IF LOWER CHARACER
00149  M01S00148.compups +++|          AOD    T1          ADVANCE STATEMENT ADDRESS
00150  M01S00149.compups +++|          LMC    STMT+9D*5
00151  M01S00150.compups +++|          ZJN    GNC1        IF END OF STATEMENT
00152  M01S00151.compups +++|          LDI    T1          GET NEXT WORD OF STATEMENT
00153  M01S00152.compups +++|          NJN    GNC2        IF NOT DOUBLE COLON OR END OF STATEMENT
00154  M01S00153.compups +++| GNC1     STI    T2          TERMINATE STRING BUFFER
00155  M01S00154.compups +++|          LDN    1           INDICATE ERROR
00156  M01S00155.compups +++|          LJM    UPSX        RETURN
00157  M01S00156.compups +++|          SPACE  4
00158  M01S00157.compups +++| QUAL$    IF     -DEF,QUAL$
00159  M01S00158.compups +++|          QUAL   *
00160  M01S00159.compups +++| UPS      EQU    /COMPUPS/UPS
00161  M01S00160.compups +++| QUAL$    ENDIF
00162  M01S00161.compups +++|          ENDX
cdc/nos2.source/opl.opl871/common/compups.txt ยท Last modified: by 127.0.0.1