Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.compups +++| CTEXT COMPUPS - UNPACK STATEMENT.
00002 M00S00002.compups +++| UPS SPACE 4
00003 M00S00003.compups +++| IF -DEF,QUAL$,1
00004 M00S00004.compups +++| QUAL COMPUPS
Line S00005 Modification History |
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00005 M01S00005.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
Line S00001 Modification History |
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00006 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00007 M00S00006.compups +++| UPS SPACE 4
00008 M00S00007.compups +++|*** UPS - UNPACK STATEMENT.
00009 M00S00008.compups +++|* G. R. MANSFIELD. 70/10/18.
00010 M00S00009.compups +++|* D. A. HIVELEY. 73/12/07.
00011 M00S00010.compups +++|* R. A. LARSEN. 76/05/20.
00012 M00S00011.compups +++| UPS SPACE 4
00013 M00S00012.compups +++|*** UPS UNPACKS A STATEMENT FROM A WORD BUFFER TO A
00014 M00S00013.compups +++|* CHARACTER BUFFER.
00015 M00S00014.compups +++|*
00016 M00S00015.compups +++|* CHARACTER PROCESSING WITHOUT LITERALS -
00017 M00S00016.compups +++|* IMBEDDED SPACES ARE DELETED.
00018 M00S00017.compups +++|* THE STRING TERMINATES WITH A BYTE OF 0000.
00019 M00S00018.compups +++|* THE TERMINATION CONDITION IS A *.* OR *)*.
00020 M00S00019.compups +++|*
00021 M00S00020.compups +++|* CHARACTER PROCESSING WITH LITERALS -
00022 M00S00021.compups +++|* LITERALS ARE DELIMITED BY A *$*.
00023 M00S00022.compups +++|* A *$$* IS VALID WITHIN A LITERAL AND IS NOT CONSIDERED
00024 M00S00023.compups +++|* A DELIMITER.
00025 M00S00024.compups +++|* A *.*, *)*, OR * * WITHIN A LITERAL HAS NO SPECIAL
00026 M00S00025.compups +++|* MEANING.
00027 M00S00026.compups +++|* OUTSIDE THE LITERAL IMBEDDED SPACES ARE DELETED.
00028 M00S00027.compups +++|* THE STRING TERMINATES WITH A BYTE OF 0000.
00029 M00S00028.compups +++|*
00030 M00S00029.compups +++|* ERROR CONDITIONS -
00031 M00S00030.compups +++|* NO TERMINATOR FOUND.
00032 M00S00031.compups +++|* BYTE VALUE = 0 (DOUBLE COLON).
00033 M00S00032.compups +++|* UNDELIMITED LITERAL.
00034 M00S00033.compups +++|*
00035 M00S00034.compups +++|* ENTRY (STMT - STMT+N) = STATEMENT TERMINATED WITH A 0 WORD.
00036 M00S00035.compups +++|*
00037 M00S00036.compups +++|* EXIT (A) = 0, IF N0 ERROR FOUND.
00038 M00S00037.compups +++|* (T1) = ADDRESS OF LAST BYTE GOTTEN FROM (STMT).
00039 M00S00038.compups +++|* (T2) = ADDRESS OF LAST CHARACTER STORED IN (CHAR).
00040 M00S00039.compups +++|* (T3) = CHARACTER POSITION INDICATOR
00041 M00S00040.compups +++|* (1 = UPPER, 0 = LOWER).
00042 M00S00041.compups +++|* (CHAR - CHAR+N) = UNPACKED STATEMENT.
00043 M00S00042.compups +++|*
00044 M00S00043.compups +++|* USES T1 - T3.
00045 M00S00044.compups +++|*
00046 M00S00045.compups +++|* CALLS GNC.
00047 M00S00046.compups +++|
00048 M00S00047.compups +++|
00049 M00S00048.compups +++| UPS SUBR ENTRY/EXIT
00050 M00S00049.compups +++| LDN 0 CLEAR CHARACTER POSITION INDICATOR
00051 M00S00050.compups +++| STD T3
00052 M00S00051.compups +++| LDC STMT-1 SET STATEMENT ADDRESS
00053 M00S00052.compups +++| STD T1
00054 M00S00053.compups +++| LDC CHAR SET CHARACTER ADDRESS
00055 M00S00054.compups +++| STD T2
00056 M00S00055.compups +++|
00057 M00S00056.compups +++|* CHECK FIRST CHARACTER, DELETING IMBEDDED BLANKS.
00058 M00S00057.compups +++|
00059 M00S00058.compups +++| UPS1 RJM GNC GET NEXT CHARACTER
00060 M00S00059.compups +++| ZJN UPS7 IF COLON
00061 M00S00060.compups +++| SBN 1R$
00062 M00S00061.compups +++| ZJN UPS8 IF *$*
00063 M00S00062.compups +++| SBN 1R -1R$
00064 M00S00063.compups +++| ZJN UPS1 IF BLANK
00065 M00S00064.compups +++| ADN -1RZ-1+1R
00066 M00S00065.compups +++| MJN UPS8 IF ALPHABETIC
00067 M00S00066.compups +++| SBN 1R9+1-1RZ-1
00068 M00S00067.compups +++| PJN UPS7 IF NON-NUMERIC
00069 M00S00068.compups +++|
00070 M00S00069.compups +++|* SKIP SEQUENCE NUMBER, DELETING IMBEDDED BLANKS.
00071 M00S00070.compups +++|
00072 M00S00071.compups +++| UPS2 AOD T2 ADVANCE CHARACTER ADDRESS
00073 M00S00072.compups +++| UPS3 RJM GNC GET NEXT CHARACTER
00074 M00S00073.compups +++| ZJN UPS5 IF COLON
00075 M00S00074.compups +++| SBN 1R9+1
00076 M00S00075.compups +++| MJN UPS2 IF ALPHANUMERIC
00077 M00S00076.compups +++| SBN 1R)-1R9-1
00078 M00S00077.compups +++| ZJN UPS4 IF *)*
00079 M00S00078.compups +++| SBN 1R -1R)
00080 M00S00079.compups +++| ZJN UPS3 IF BLANK
00081 M00S00080.compups +++| SBN 1R.-1R
00082 M00S00081.compups +++| NJN UPS5 IF NOT *.*
00083 M00S00082.compups +++| UPS4 STI T2 TERMINATE BUFFER
00084 M00S00083.compups +++| LJM UPSX RETURN
00085 M00S00084.compups +++|
00086 M00S00085.compups +++|* CHECK FIRST CHARACTER AFTER SEQUENCE NUMBER TERMINATOR.
00087 M00S00086.compups +++|
00088 M00S00087.compups +++| UPS5 AOD T2 ADVANCE CHARACTER ADDRESS
00089 M00S00088.compups +++| UPS6 RJM GNC GET NEXT CHARACTER
00090 M00S00089.compups +++| LMN 1R
00091 M00S00090.compups +++| ZJN UPS6 IF BLANK
00092 M00S00091.compups +++| LMN 1R$&1R
00093 M00S00092.compups +++| ZJN UPS8 IF *$*
00094 M00S00093.compups +++| UPS7 LDI T2 GET CURRENT CHARACTER
00095 M00S00094.compups +++| UJN UPS10 SEARCH FOR TERMINATOR
00096 M00S00095.compups +++|
00097 M00S00096.compups +++|* SEARCH FOR TERMINATOR, DELETING IMBEDDED BLANKS.
00098 M00S00097.compups +++|
00099 M00S00098.compups +++| UPS8 AOD T2 ADVANCE CHARACTER ADDRESS
00100 M00S00099.compups +++| UPS9 RJM GNC GET NEXT CHARACTER
00101 M00S00100.compups +++| UPS10 LMN 1R
00102 M00S00101.compups +++| ZJN UPS9 IF BLANK
00103 M00S00102.compups +++| LMN 1R.&1R
00104 M00S00103.compups +++| ZJN UPS4 IF *.*
00105 M00S00104.compups +++| LMN 1R)&1R.
00106 M00S00105.compups +++| ZJN UPS4 IF *)*
00107 M00S00106.compups +++| LMN 1R$&1R)
00108 M00S00107.compups +++| NJN UPS8 IF NOT *$*
00109 M00S00108.compups +++|
00110 M00S00109.compups +++|* PROCESS LITERAL CHARACTER STRING.
00111 M00S00110.compups +++|
00112 M00S00111.compups +++| UPS11 AOD T2 ADVANCE CHARACTER ADDRESS
00113 M00S00112.compups +++| RJM GNC GET NEXT CHARACTER
00114 M00S00113.compups +++| LMN 1R$
00115 M00S00114.compups +++| NJN UPS11 IF NOT *$*
00116 M00S00115.compups +++| AOD T2 ADVANCE CHARACTER ADDRESS
00117 M00S00116.compups +++| RJM GNC GET NEXT CHARACTER
00118 M00S00117.compups +++| LMN 1R$
00119 M00S00118.compups +++| ZJN UPS11 IF *$$*
00120 M00S00119.compups +++| UJN UPS7 END OF LITERAL STRING
00121 M00S00120.compups +++| GNC SPACE 4,15
00122 M00S00121.compups +++|** GNC - GET NEXT CHARACTER.
00123 M00S00122.compups +++|*
00124 M00S00123.compups +++|* ENTRY (T1) = ADDRESS OF NEXT BYTE OF CONTROL CARD - 1.
00125 M00S00124.compups +++|* (T2) = ADDRESS TO STORE NEXT CHARACTER.
00126 M00S00125.compups +++|* (T3) = NEXT CHARACTER INDICATOR.
00127 M00S00126.compups +++|*
00128 M00S00127.compups +++|* EXIT (A) = NEXT CHARACTER.
00129 M00S00128.compups +++|* (T1) ADVANCED IF NEW BYTE NEEDED.
00130 M00S00129.compups +++|* ((T2)) = NEXT CHARACTER.
00131 M00S00130.compups +++|* (T3) = TOGGLED TO INDICATE NEXT CHARACTER.
00132 M00S00131.compups +++|* TO *UPSX* IF ERROR ENCOUNTERED.
00133 M00S00132.compups +++|*
00134 M00S00133.compups +++|* USES T1, T2, T3.
00135 M00S00134.compups +++|
00136 M00S00135.compups +++|
00137 M00S00136.compups +++| GNC2 SHN -6 POSITION UPPER CHARACTER
00138 M00S00137.compups +++| UJN GNC4 STORE CHARACTER
00139 M00S00138.compups +++|
00140 M00S00139.compups +++| GNC3 LDI T1 GET LOWER CHARACTER
00141 M00S00140.compups +++| LPN 77
00142 M00S00141.compups +++| GNC4 STI T2 STORE CHARACTER
00143 M00S00142.compups +++|
00144 M00S00143.compups +++| GNC SUBR ENTRY/EXIT
00145 M00S00144.compups +++| LDD T3 DETERMINE UPPER/LOWER CHARACTER
00146 M00S00145.compups +++| LMN 1
00147 M00S00146.compups +++| STD T3
00148 M00S00147.compups +++| ZJN GNC3 IF LOWER CHARACER
00149 M00S00148.compups +++| AOD T1 ADVANCE STATEMENT ADDRESS
00150 M00S00149.compups +++| LMC STMT+9D*5
00151 M00S00150.compups +++| ZJN GNC1 IF END OF STATEMENT
00152 M00S00151.compups +++| LDI T1 GET NEXT WORD OF STATEMENT
00153 M00S00152.compups +++| NJN GNC2 IF NOT DOUBLE COLON OR END OF STATEMENT
00154 M00S00153.compups +++| GNC1 STI T2 TERMINATE STRING BUFFER
00155 M00S00154.compups +++| LDN 1 INDICATE ERROR
00156 M00S00155.compups +++| LJM UPSX RETURN
00157 M00S00156.compups +++| SPACE 4
00158 M00S00157.compups +++| QUAL$ IF -DEF,QUAL$
00159 M00S00158.compups +++| QUAL *
00160 M00S00159.compups +++| UPS EQU /COMPUPS/UPS
00161 M00S00160.compups +++| QUAL$ ENDIF
00162 M00S00161.compups +++| ENDX