cdc:nos2.source:opl.opl871:common:comcmtp
Common COMCMTP
2 Modifications
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.comcmtp +++| CTEXT COMCMTP - MANAGED TABLE PROCESSORS. 00002 M01S00002.comcmtp +++| SPACE 4 00003 M01S00003.comcmtp +++| IF -DEF,FTAB,1 00004 M01S00004.comcmtp +++| TABLES HERE 00005 M01S00005.comcmtp +++| SPACE 4 00006 M01S00006.comcmtp +++| IF -DEF,QUAL$,1 00007 M01S00007.comcmtp +++| QUAL COMCMTP 00008 M01S00008.comcmtp +++| BASE D
Line S00009 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00009 M02S00009.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1970. 00010 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00011 M01S00010.comcmtp +++| SPACE 4 00012 M01S00011.comcmtp +++|*** COMCMTP - MANAGED TABLE PROCESSORS. 00013 M01S00012.comcmtp +++|* G. R. MANSFIELD. 70/12/20. 00014 M01S00013.comcmtp +++| SPACE 4 00015 M01S00014.comcmtp +++|*** COMCMTP CONTAINS ROUTINES FOR PROCESSING MANAGED 00016 M01S00015.comcmtp +++|* TABLES. MACROS FOR CALLS AND GENERATION ARE CONTAINED 00017 M01S00016.comcmtp +++|* IN COMCMTM. 00018 M01S00017.comcmtp +++|* 00019 M01S00018.comcmtp +++|* 00020 M01S00019.comcmtp +++|* THE MANAGED TABLE PROCESSORS ALLOW THE PARTIONING OF 00021 M01S00020.comcmtp +++|* CENTRAL MEMORY INTO VARIABLE REGIONS (CALLED TABLES). 00022 M01S00021.comcmtp +++|* THESE TABLES ARE REFERENCED BY POINTERS WHICH INDICATE 00023 M01S00022.comcmtp +++|* THE FIRST ADDRESS OF THE TABLE AND THE TABLE LENGTH. 00024 M01S00023.comcmtp +++|* MEMORY IS ALLOCATED TO EACH TABLE AS IT IS REQUIRED AND 00025 M01S00024.comcmtp +++|* THE USER MAY DELETE SPACE FROM THE TABLES. THE USER IS 00026 M01S00025.comcmtp +++|* EXPECTED TO PROVIDE CERTAIN CONSTANTS FOR USE BY THE 00027 M01S00026.comcmtp +++|* TABLE PROCESSORS. EACH TABLE IS ALLOWED AT LEAST 1 WORD 00028 M01S00027.comcmtp +++|* OF EXPANSION SPACE TO ALLOW A DUMMY WORD BETWEEN EACH 00029 M01S00028.comcmtp +++|* TABLE. THIS ALLOWS EFFICIENT SEARCH METHODS TO BE USED. 00030 M01S00029.comcmtp +++|* 00031 M01S00030.comcmtp +++|* 00032 M01S00031.comcmtp +++|* 00033 M01S00032.comcmtp +++|* 00034 M01S00033.comcmtp +++|* *MEML* = LOWEST ADDRESS OF MANAGED MEMORY. 00035 M01S00034.comcmtp +++|* *TOV* = ADDRESS OF TABLE OVERFLOW PROCESSOR. 00036 M01S00035.comcmtp +++|* 00037 M01S00036.comcmtp +++|* DATA PROVIDED BY *COMCMTM*. 00038 M01S00037.comcmtp +++|* 00039 M01S00038.comcmtp +++|* *NTAB* = NUMBER OF MANAGED TABLES. 00040 M01S00039.comcmtp +++|* *FTAB* = START OF TABLE ADDRESSES. 00041 M01S00040.comcmtp +++|* *LTAB* = START OF TABLE LENGTHS. 00042 M01S00041.comcmtp +++|* *F.TNAM* = ADDRESS POINTER FOR TABLE *TNAM*. 00043 M01S00042.comcmtp +++|* *L.TNAM* = LENGTH POINTER FOR TABLE *TNAM*. 00044 M01S00043.comcmtp +++|* *C.TNAM* = WORDS/ENTRY FOR SEARCH ROUTINES. 00045 M01S00044.comcmtp +++|* 00046 M01S00045.comcmtp +++|* DATA DYNAMICALLY CHANGABLE. 00047 M01S00046.comcmtp +++|* 00048 M01S00047.comcmtp +++|* (TN) = NUMBER OF MANAGED TABLES. SET TO *NTAB* BY
Line S00048 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00049 M02S00048.cmtp1 ---|* *COMCMTM*. VALUE MUST BE ;*NTAB* DURING USE. 00050 M01S00001.cmtp1 +++|* *COMCMTM*. VALUE MUST BE .LE. *NTAB* DURING USE. 00051 M01S00049.comcmtp +++|* (TO) = TABLE OVERFLOW PROCESSOR. SET TO *TOV* BY 00052 M01S00050.comcmtp +++|* *COMCMTM*. 00053 M01S00051.comcmtp +++|* (LM) = LOW MEMORY LIMIT. VALUE SET TO *MEML* BY *COMCMTM*. 00054 M01S00052.comcmtp +++|* IF THIS VALUE IS RAISED, *MTU* SHOULD BE CALLED 00055 M01S00053.comcmtp +++|* TO ALLOW ROOM FOR CHANGE. 00056 M01S00054.comcmtp +++|* (F.TEND) = HIGH MEMORY LIMIT. VALUE MUST BE INITIALIZED 00057 M01S00055.comcmtp +++|* BY USER. IF THIS VALUE IS LOWERED, *MTD* SHOULD 00058 M01S00056.comcmtp +++|* BE CALLED TO ALLOW ROOM FOR CHANGE. 00059 M01S00057.comcmtp +++| ADW SPACE 4 00060 M01S00058.comcmtp +++|*** ADW - ADD WORD TO TABLE. 00061 M01S00059.comcmtp +++|* 00062 M01S00060.comcmtp +++|* ENTRY (A0) = TABLE NUMBER. 00063 M01S00061.comcmtp +++|* (X1) = WORD. 00064 M01S00062.comcmtp +++|* 00065 M01S00063.comcmtp +++|* EXIT (X1) = WORD. 00066 M01S00064.comcmtp +++|* (X6) = WORD. 00067 M01S00065.comcmtp +++|* (A6) = ADDRESS OF WORD. 00068 M01S00066.comcmtp +++|* (X2) = FWA TABLE. 00069 M01S00067.comcmtp +++|* (X3) = LENGTH OF TABLE. 00070 M01S00068.comcmtp +++|* 00071 M01S00069.comcmtp +++|* USES X - 1, 2, 3, 4, 6, 7. 00072 M01S00070.comcmtp +++|* B - NONE. 00073 M01S00071.comcmtp +++|* A - 1,2,3,4,6,7. 00074 M01S00072.comcmtp +++|* 00075 M01S00073.comcmtp +++|* CALLS ATS. 00076 M01S00074.comcmtp +++| 00077 M01S00075.comcmtp +++| 00078 M01S00076.comcmtp +++| ADW1 BX6 X1 PLACE ENTRY IN TABLE 00079 M01S00077.comcmtp +++| IX7 X2+X3 00080 M01S00078.comcmtp +++| SA6 X7 00081 M01S00079.comcmtp +++| SX3 X3+B1 00082 M01S00080.comcmtp +++| 00083 M01S00081.comcmtp +++| ADW PS ENTRY/EXIT 00084 M01S00082.comcmtp +++| SA2 FTAB+A0 SET TABLE DIFFERENTIAL 00085 M01S00083.comcmtp +++| SA4 A2+B1 00086 M01S00084.comcmtp +++| IX7 X4-X2 00087 M01S00085.comcmtp +++| SA3 LTAB+A0 CURRENT LENGTH 00088 M01S00086.comcmtp +++| SX6 X3+B1 ADD NEW ENTRY 00089 M01S00087.comcmtp +++| IX7 X6-X7 00090 M01S00088.comcmtp +++| SA6 A3 UPDATE LENGTH 00091 M01S00089.comcmtp +++| NG X7,ADW1 IF ROOM FOR ENTRY + 1 WORD 00092 M01S00090.comcmtp +++| BX6 X1 SAVE ENTRY 00093 M01S00091.comcmtp +++| LX7 X3 RESTORE LENGTH 00094 M01S00092.comcmtp +++| SA6 ADWA 00095 M01S00093.comcmtp +++| SA7 A3 00096 M01S00094.comcmtp +++| ALLOC A0,1 ALLOCATE 1 WORD 00097 M01S00095.comcmtp +++| SA1 ADWA RESTORE ENTRY 00098 M01S00096.comcmtp +++| SX3 X3-1 SET ORIGINAL LENGTH 00099 M01S00097.comcmtp +++| EQ ADW1 PROCESS ENTRY 00100 M01S00098.comcmtp +++| 00101 M01S00099.comcmtp +++| ADWA CON 0 00102 M01S00100.comcmtp +++| AMU SPACE 4 00103 M01S00101.comcmtp +++|*** AMU - ACCUMULATE MEMORY USED. 00104 M01S00102.comcmtp +++|* 00105 M01S00103.comcmtp +++|* ENTRY NONE. 00106 M01S00104.comcmtp +++|* 00107 M01S00105.comcmtp +++|* EXIT MU = MAX(MU,CURRENT ASSIGNED LENGTH) 00108 M01S00106.comcmtp +++|* 00109 M01S00107.comcmtp +++|* USES X - 1, 2, 3, 6. 00110 M01S00108.comcmtp +++|* B - 2. 00111 M01S00109.comcmtp +++|* A - 1, 2, 6. 00112 M01S00110.comcmtp +++|* 00113 M01S00111.comcmtp +++|* CALLS NONE. 00114 M01S00112.comcmtp +++| 00115 M01S00113.comcmtp +++| 00116 M01S00114.comcmtp +++| AMU1 IX6 X6+X2 ACCUMULATE LENGTH 00117 M01S00115.comcmtp +++| SB2 B2-B1 00118 M01S00116.comcmtp +++| SA2 A2+B1 NEXT TABLE 00119 M01S00117.comcmtp +++| NE B2,B1,AMU1 LOOP FOR ALL TABLES 00120 M01S00118.comcmtp +++| SA1 MU SET MAX LENGTH 00121 M01S00119.comcmtp +++| IX3 X6-X1 00122 M01S00120.comcmtp +++| NG X3,AMU 00123 M01S00121.comcmtp +++| SA6 A1 00124 M01S00122.comcmtp +++| 00125 M01S00123.comcmtp +++| AMU PS ENTRY/EXIT 00126 M01S00124.comcmtp +++| SA1 TN (B2) = NUMBER OF TABLES 00127 M01S00125.comcmtp +++| MX6 0 CLEAR ACCUMULATION 00128 M01S00126.comcmtp +++| SB2 X1 00129 M01S00127.comcmtp +++| SA2 LTAB FIRST TABLE 00130 M01S00128.comcmtp +++| EQ AMU1 00131 M01S00129.comcmtp +++| ATS SPACE 4 00132 M01S00130.comcmtp +++|*** ATS - ALLOCATE TABLE SPACE. 00133 M01S00131.comcmtp +++|* 00134 M01S00132.comcmtp +++|* ENTRY (A0) = TABLE INDEX. 00135 M01S00133.comcmtp +++|* (X1) = CHANGE (+ OR -) TO TABLE SIZE. 00136 M01S00134.comcmtp +++|* 00137 M01S00135.comcmtp +++|* EXIT (X1) = CHANGE. 00138 M01S00136.comcmtp +++|* (X2) = FWA OF TABLE. 00139 M01S00137.comcmtp +++|* (X3) = NEW LENGTH OF TABLE.
Line S00138 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00140 M02S00138.cmtp1 ---|* (X7) < 0 IF TABLES MOVED. 00141 M01S00002.cmtp1 +++|* (X7) .LT. 0 IF TABLES MOVED. 00142 M01S00139.comcmtp +++|* 00143 M01S00140.comcmtp +++|* IF TABLES NOT MOVED - 00144 M01S00141.comcmtp +++|* USES X - 2, 3, 4, 6, 7. 00145 M01S00142.comcmtp +++|* B - NONE. 00146 M01S00143.comcmtp +++|* A - 2, 3, 4, 6. 00147 M01S00144.comcmtp +++|* 00148 M01S00145.comcmtp +++|* IF TABLES MOVED - 00149 M01S00146.comcmtp +++|* USES X - 0, 1, 2, 3, 4, 5, 6, 7. 00150 M01S00147.comcmtp +++|* B - 2, 3, 4, 5, 6, 7. 00151 M01S00148.comcmtp +++|* A - 1, 2, 3, 4, 6, 7. 00152 M01S00149.comcmtp +++|* 00153 M01S00150.comcmtp +++|* RESTORES X - 0, 1, 5. 00154 M01S00151.comcmtp +++|* B - 2, 3, 4, 5, 6, 7. (EXCEPT -0) 00155 M01S00152.comcmtp +++|* 00156 M01S00153.comcmtp +++|* CALLS AMU, MVE, TOV. 00157 M01S00154.comcmtp +++|* 00158 M01S00155.comcmtp +++|* ENTRY CONDITIONS FOR USER ROUTINE *TOV*. 00159 M01S00156.comcmtp +++|* 00160 M01S00157.comcmtp +++|* (B1) = 1. 00161 M01S00158.comcmtp +++|* (B5) = COMPLEMENT OF NUMBER OF WORDS REQUIRED. 00162 M01S00159.comcmtp +++|* (B6) = RETURN ADDRESS TO CONTINUE PROCESSING, I.E., 00163 M01S00160.comcmtp +++|* EXIT FROM *TOV* VIA * JP B6 * INSTRUCTION. 00164 M01S00161.comcmtp +++|*
Line S00162 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00165 M02S00162.cmtp1 ---|* THE LOCATION *TOV* MUST CONTAIN EXECUTABLE CODE. *TOV*
Line S00163 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00166 M02S00163.cmtp1 ---|* IS ENTERED VIA A *JP*, NOT VIA *RJ*. 00167 M01S00003.cmtp1 +++|* THE LOCATION *TOV* MUST CONTAIN EXECUTABLE CODE. 00168 M01S00004.cmtp1 +++|* *TOV* IS ENTERED VIA A *JP*, NOT VIA *RJ*. 00169 M01S00164.comcmtp +++|* 00170 M01S00165.comcmtp +++|* EXIT CONDITIONS FOR *TOV*. 00171 M01S00166.comcmtp +++|* 00172 M01S00167.comcmtp +++|* ONLY B1 MUST BE PRESERVED. 00173 M01S00168.comcmtp +++|* 00174 M01S00169.comcmtp +++|* A POINTER WORD MUST BE INCREMENTED BY THE NUMBER OF
Line S00170 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00175 M02S00170.cmtp1 ---|* WORDS NEWLY AVAILABLE. IF *NT* HAS NOT BEEN ALTERED 00176 M01S00005.cmtp1 +++|* WORDS NEWLY AVAILABLE. IF *TN* HAS NOT BEEN ALTERED 00177 M01S00171.comcmtp +++|* DURING EXECUTION, THE ADDRESS OF THE POINTER WORD IS 00178 M01S00172.comcmtp +++|* *F.TEND*.
Line S00173 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00179 M02S00173.cmtp1 ---|* IF *NT* HAS CHANGED, THE ADDRESS OF THE POINTER WORD
Line S00174 Modification History | |
---|---|
M01 (Added by) | comcmtp |
M02 (Updated by) | cmtp1 |
Seq # *Modification Id* Act ----------------------------+ 00180 M02S00174.cmtp1 ---|* = FTAB-1 PLUS THE CONTENTS OF *NT*. 00181 M01S00006.cmtp1 +++|* IF *TN* HAS CHANGED, THE ADDRESS OF THE POINTER WORD 00182 M01S00007.cmtp1 +++|* IS FTAB-1 PLUS THE CONTENTS OF *TN*. 00183 M01S00175.comcmtp +++| 00184 M01S00176.comcmtp +++| 00185 M01S00177.comcmtp +++| ATS PS ENTRY/EXIT 00186 M01S00178.comcmtp +++| ATS1 SA2 FTAB+A0 CURRENT FWA 00187 M01S00179.comcmtp +++| SA3 LTAB+A0 CURRENT LENGTH 00188 M01S00180.comcmtp +++| SA4 A2+B1 NEXT TABLE FWA 00189 M01S00181.comcmtp +++| IX6 X1+X3 NEW LENGTH 00190 M01S00182.comcmtp +++| IX7 X4-X2 ROOM BETWEEN TABLES 00191 M01S00183.comcmtp +++| SA6 A3 SET NEW LENGTH 00192 M01S00184.comcmtp +++| IX7 X6-X7 00193 M01S00185.comcmtp +++| BX3 X6 00194 M01S00186.comcmtp +++| NG X7,ATS RETURN IF ROOM FOR CHANGE + 1 WORD 00195 M01S00187.comcmtp +++| IX7 X6-X1 SET PREVIOUS LENGTH 00196 M01S00188.comcmtp +++| 00197 M01S00189.comcmtp +++|* INITIALIZE FOR TABLE MOVE. 00198 M01S00190.comcmtp +++| 00199 M01S00191.comcmtp +++| BX6 X0 SAVE (X0) 00200 M01S00192.comcmtp +++| SA7 A3 00201 M01S00193.comcmtp +++| SA6 ATSB 00202 M01S00194.comcmtp +++| BX7 X1 SAVE (X1) 00203 M01S00195.comcmtp +++| LX6 X5 SAVE (X5) 00204 M01S00196.comcmtp +++| SA7 A6+B1 00205 M01S00197.comcmtp +++| SA6 A7+B1 00206 M01S00198.comcmtp +++| SX7 B2 SAVE B REGISTERS 00207 M01S00199.comcmtp +++| SX6 B3 00208 M01S00200.comcmtp +++| SA7 A6+B1 00209 M01S00201.comcmtp +++| SA6 A7+B1 00210 M01S00202.comcmtp +++| SX7 B4 00211 M01S00203.comcmtp +++| SX6 B5 00212 M01S00204.comcmtp +++| SA7 A6+B1 00213 M01S00205.comcmtp +++| SA6 A7+B1 00214 M01S00206.comcmtp +++| SX7 B6 00215 M01S00207.comcmtp +++| SX6 B7 00216 M01S00208.comcmtp +++| SA7 A6+1 00217 M01S00209.comcmtp +++| SA6 A7+1 00218 M01S00210.comcmtp +++| 00219 M01S00211.comcmtp +++|* COMPUTE REMAINING TABLE SPACE. 00220 M01S00212.comcmtp +++| 00221 M01S00213.comcmtp +++| ATS1.1 SA2 TN (B2) = NUMBER OF TABLES 00222 M01S00214.comcmtp +++| SB2 X2 00223 M01S00215.comcmtp +++| IX4 X1+X2 LENGTH = NUMBER OF TABLES + INCREASE 00224 M01S00216.comcmtp +++| SB3 B2-1 00225 M01S00217.comcmtp +++| ATS2 SB3 B3-B1 LENGTH = LENGTH + TABLE LENGTH 00226 M01S00218.comcmtp +++| SA3 LTAB+B3 00227 M01S00219.comcmtp +++| IX4 X4+X3 00228 M01S00220.comcmtp +++| NZ B3,ATS2 LOOP FOR ALL TABLES 00229 M01S00221.comcmtp +++| SA2 LM SET AVAILABLE LENGTH 00230 M01S00222.comcmtp +++| SA3 FTAB-1+B2 00231 M01S00223.comcmtp +++| IX6 X3-X2 00232 M01S00224.comcmtp +++| SB4 X4 (B4) = TOTAL ASSIGNED LENGTH 00233 M01S00225.comcmtp +++| IX7 X6-X4 00234 M01S00226.comcmtp +++| SB5 X7 (B5) = REMAINING SPACE 00235 M01S00227.comcmtp +++| NG X7,ATS6 IF NO REMAINING SPACE 00236 M01S00228.comcmtp +++| RJ MTD MOVE TABLES DOWN 00237 M01S00229.comcmtp +++| SA1 ATSB+1 INCREMENT SIZE OF REQUESTED TABLE 00238 M01S00230.comcmtp +++| SA2 LTAB+A0 00239 M01S00231.comcmtp +++| IX6 X2+X1 00240 M01S00232.comcmtp +++| SA6 A2 00241 M01S00233.comcmtp +++| 00242 M01S00234.comcmtp +++|* REALLOCATE TABLES. 00243 M01S00235.comcmtp +++|* ALLOCATE INTERSPACE. (LA/2N) + ((TL*LA)/2) + 1 00244 M01S00236.comcmtp +++| 00245 M01S00237.comcmtp +++| SA1 FTAB-1+B2 (X0) = LWA+1 LAST TABLE 00246 M01S00238.comcmtp +++| SB6 B2-B1 00247 M01S00239.comcmtp +++| BX0 X1 00248 M01S00240.comcmtp +++| ATS3 LE B6,B1,ATS5 IF TABLE RELOCATION COMPLETE 00249 M01S00241.comcmtp +++| SB6 B6-B1 I = I-1 00250 M01S00242.comcmtp +++| SX4 B5 LA (LENGTH AVAILABLE) 00251 M01S00243.comcmtp +++| SA2 FTAB+B6 FWA(I) 00252 M01S00244.comcmtp +++| SA1 LTAB+B6 TL (LENGTH OF TABLE) 00253 M01S00245.comcmtp +++| SX3 B2-B1 N (NUMBER OF TABLES) 00254 M01S00246.comcmtp +++| AX5 X4,B1 LA/2 00255 M01S00247.comcmtp +++| IX6 X4/X3 L1 = LA/N 00256 M01S00248.comcmtp +++| ZR B4,ATS4 IF NO TABLES ASSIGNED, L = L1 00257 M01S00249.comcmtp +++| SX3 B4 AL (TOTAL ASSIGNED LENGTH) 00258 M01S00250.comcmtp +++| IX7 X5*X1 (LA/2)*TL 00259 M01S00251.comcmtp +++| AX6 1 L1 = LA/2N 00260 M01S00252.comcmtp +++| IX7 X7/X3 L2 = (TL*LA)/2 00261 M01S00253.comcmtp +++| IX6 X6+X7 L = L1+L2 00262 M01S00254.comcmtp +++| ATS4 SX6 X6+B1 L = L+1 00263 M01S00255.comcmtp +++| IX4 X0-X6 FWA(I+1)-L 00264 M01S00256.comcmtp +++| UX1 X1 RESET LENGTH 00265 M01S00257.comcmtp +++| IX7 X4-X1 FWA(I) = FWA(I+1)-L-TL 00266 M01S00258.comcmtp +++| BX3 X7 DESTINATION = FWA(I) 00267 M01S00259.comcmtp +++| SA7 A2 00268 M01S00260.comcmtp +++| LX0 X7 FWA(I+1) = FWA(I) 00269 M01S00261.comcmtp +++| BX4 X2-X3 CHECK MOVE DIFFERENTIAL 00270 M01S00262.comcmtp +++| ZR X4,ATS3 IF NO MOVE REQUIRED 00271 M01S00263.comcmtp +++| RJ MVE= MOVE TABLE 00272 M01S00264.comcmtp +++| EQ ATS3 CONTINUE RELOCATING TABLES 00273 M01S00265.comcmtp +++| 00274 M01S00266.comcmtp +++| ATS5 RJ AMU ACCUMULATE MEMORY USED 00275 M01S00267.comcmtp +++| 00276 M01S00268.comcmtp +++|* RESTORE REGISTERS. 00277 M01S00269.comcmtp +++| 00278 M01S00270.comcmtp +++| SA1 ATSA COUNT MOVES 00279 M01S00271.comcmtp +++| SX6 X1+B1 00280 M01S00272.comcmtp +++| SA6 A1 00281 M01S00273.comcmtp +++| SA2 ATSB RESTORE (X0) 00282 M01S00274.comcmtp +++| SA1 A2+B1 RESTORE (X1) 00283 M01S00275.comcmtp +++| BX0 X2 00284 M01S00276.comcmtp +++| SA3 A1+B1 RESTORE (X5) 00285 M01S00277.comcmtp +++| SA2 A3+B1 RESTORE B REGISTERS 00286 M01S00278.comcmtp +++| BX5 X3 00287 M01S00279.comcmtp +++| SB2 X2 00288 M01S00280.comcmtp +++| SA3 A2+B1 00289 M01S00281.comcmtp +++| SB3 X3 00290 M01S00282.comcmtp +++| SA4 A3+B1 00291 M01S00283.comcmtp +++| SB4 X4 00292 M01S00284.comcmtp +++| SA2 A4+B1 00293 M01S00285.comcmtp +++| SB5 X2 00294 M01S00286.comcmtp +++| SA3 A2+B1 00295 M01S00287.comcmtp +++| SB6 X3 00296 M01S00288.comcmtp +++| SA4 A3+B1 00297 M01S00289.comcmtp +++| SB7 X4 00298 M01S00290.comcmtp +++| SA2 FTAB+A0 SET TABLE FWA 00299 M01S00291.comcmtp +++| SA3 LTAB+A0 SET TABLE LENGTH 00300 M01S00292.comcmtp +++| SX7 -B1 FLAG TABLES MOVED 00301 M01S00293.comcmtp +++| EQ ATS RETURN 00302 M01S00294.comcmtp +++| 00303 M01S00295.comcmtp +++| ATS6 SA3 TO PROCESS TABLE OVERFLOW 00304 M01S00296.comcmtp +++| SB2 X3 00305 M01S00297.comcmtp +++| SX6 A0 PRESERVE (A0) FROM USER DEPREDATIONS 00306 M01S00298.comcmtp +++| SB6 ATS7 PASS RETURN ADDRESS TO USER 00307 M01S00299.comcmtp +++| SA6 ATSC 00308 M01S00300.comcmtp +++| JP B2 00309 M01S00301.comcmtp +++| 00310 M01S00302.comcmtp +++|* RETURN FROM USER ROUTINE *TOV*. 00311 M01S00303.comcmtp +++| 00312 M01S00304.comcmtp +++| ATS7 SA1 ATSC RESTORE (A0), (X1) 00313 M01S00305.comcmtp +++| SA0 X1+ 00314 M01S00306.comcmtp +++| SA1 ATSB+1 00315 M01S00307.comcmtp +++| JP ATS1.1 RE-COMPUTE WITH NEW MEMORY 00316 M01S00308.comcmtp +++| 00317 M01S00309.comcmtp +++| ATSA CON 0 COUNT OF TABLE MOVES 00318 M01S00310.comcmtp +++| 00319 M01S00311.comcmtp +++| ATSB CON 0,0,0 (X0, X1, X5) SAVE 00320 M01S00312.comcmtp +++| CON 0,0,0,0,0,0 (B2 - B7) SAVE 00321 M01S00313.comcmtp +++| ATSC CON 0 (A0) SAVE IF TABLE OVERFLOW 00322 M01S00314.comcmtp +++| EQS SPACE 4 00323 M01S00315.comcmtp +++|*** EQS - EQUALITY SEARCH TABLE. 00324 M01S00316.comcmtp +++|* 00325 M01S00317.comcmtp +++|* ENTRY (X6) = ENTRY FOR SEARCH. 00326 M01S00318.comcmtp +++|* (B7) = WORD COUNT/ENTRY. 00327 M01S00319.comcmtp +++|* (A0) = TABLE NUMBER. 00328 M01S00320.comcmtp +++|* 00329 M01S00321.comcmtp +++|* EXIT (X2) = ENTRY FOUND. 00330 M01S00322.comcmtp +++|* 00331 M01S00323.comcmtp +++|* USES X - 1,2,3,7. 00332 M01S00324.comcmtp +++|* B - NONE. 00333 M01S00325.comcmtp +++|* A - 1,2,6. 00334 M01S00326.comcmtp +++|* 00335 M01S00327.comcmtp +++|* CALLS NONE. 00336 M01S00328.comcmtp +++| 00337 M01S00329.comcmtp +++| 00338 M01S00330.comcmtp +++| EQS PS ENTRY/EXIT 00339 M01S00331.comcmtp +++| SA1 FTAB+A0 SET TABLE PARAMETERS 00340 M01S00332.comcmtp +++| SA2 LTAB+A0 00341 M01S00333.comcmtp +++| IX3 X1+X2 SET SEARCH KEY IN LWA+1 00342 M01S00334.comcmtp +++| SA6 X3 00343 M01S00335.comcmtp +++| NO 00344 M01S00336.comcmtp +++| SA1 X1 FIRST ENTRY 00345 M01S00337.comcmtp +++| + BX2 X1-X6 COMPARE ENTRIES 00346 M01S00338.comcmtp +++| SA1 A1+B7 NEXT ENTRY 00347 M01S00339.comcmtp +++| NZ X2,* LOOP TO MATCH 00348 M01S00340.comcmtp +++| SX7 A1-B7 CHECK SEARCH 00349 M01S00341.comcmtp +++| BX2 X7-X3 00350 M01S00342.comcmtp +++| ZR X2,EQS RETURN IF NOT FOUND 00351 M01S00343.comcmtp +++| SA2 A1-B7 RETURN ENTRY 00352 M01S00344.comcmtp +++| EQ EQS 00353 M01S00345.comcmtp +++| MES SPACE 4 00354 M01S00346.comcmtp +++|*** MES - MASKED EQUALITY SEARCH TABLE. 00355 M01S00347.comcmtp +++|* 00356 M01S00348.comcmtp +++|* ENTRY (X6) = ENTRY FOR SEARCH. 00357 M01S00349.comcmtp +++|* (X0) = MASK. 00358 M01S00350.comcmtp +++|* (B7) = WORD COUNT/ENTRY. 00359 M01S00351.comcmtp +++|* (A0) = TABLE NUMBER. 00360 M01S00352.comcmtp +++|* 00361 M01S00353.comcmtp +++|* EXIT (X2) = ENTRY FOUND. 00362 M01S00354.comcmtp +++|* 00363 M01S00355.comcmtp +++|* USES X - 1,2,3,4,7. 00364 M01S00356.comcmtp +++|* B - NONE. 00365 M01S00357.comcmtp +++|* A - 1,2,6. 00366 M01S00358.comcmtp +++|* 00367 M01S00359.comcmtp +++|* CALLS NONE. 00368 M01S00360.comcmtp +++| 00369 M01S00361.comcmtp +++| 00370 M01S00362.comcmtp +++| MES1 BX4 X0*X2 00371 M01S00363.comcmtp +++| SA1 A1+B7 NEXT ENTRY 00372 M01S00364.comcmtp +++| BX2 X6-X1 COMPARE ENTRIES 00373 M01S00365.comcmtp +++| NZ X4,MES1 LOOP TO MATCH 00374 M01S00366.comcmtp +++| SX7 A1-B7 CHECK SEARCH 00375 M01S00367.comcmtp +++| BX2 X7-X3 00376 M01S00368.comcmtp +++| ZR X2,MES RETURN IF NOT FOUND 00377 M01S00369.comcmtp +++| SA2 X7+ RETURN ENTRY 00378 M01S00370.comcmtp +++| 00379 M01S00371.comcmtp +++| MES PS ENTRY/EXIT 00380 M01S00372.comcmtp +++| SA1 FTAB+A0 SET TABLE PARAMETERS 00381 M01S00373.comcmtp +++| SA2 LTAB+A0 00382 M01S00374.comcmtp +++| IX3 X1+X2 SET SEARCH KEY IN LWA+1 00383 M01S00375.comcmtp +++| SA6 X3 00384 M01S00376.comcmtp +++| SA1 X1 FIRST ENTRY 00385 M01S00377.comcmtp +++| BX2 X6-X1 00386 M01S00378.comcmtp +++| EQ MES1 00387 M01S00379.comcmtp +++| MTD SPACE 4 00388 M01S00380.comcmtp +++|*** MTD - MOVE TABLES DOWN. 00389 M01S00381.comcmtp +++|* 00390 M01S00382.comcmtp +++|* ENTRY NONE. 00391 M01S00383.comcmtp +++|* 00392 M01S00384.comcmtp +++|* EXIT (B2) = NUMBER OF TABLES. 00393 M01S00385.comcmtp +++|* 00394 M01S00386.comcmtp +++|* USES X - 0, 1, 2, 3, 4, 7. 00395 M01S00387.comcmtp +++|* B - 2, 3. 00396 M01S00388.comcmtp +++|* A - 1,2,3,7. 00397 M01S00389.comcmtp +++|* 00398 M01S00390.comcmtp +++|* CALLS MVE=. 00399 M01S00391.comcmtp +++| 00400 M01S00392.comcmtp +++| 00401 M01S00393.comcmtp +++| MTD PS ENTRY/EXIT 00402 M01S00394.comcmtp +++| SA1 LM LOW MEMORY LIMIT 00403 M01S00395.comcmtp +++| SA2 TN (B2) = NUMBER OF TABLES 00404 M01S00396.comcmtp +++| BX0 X1 00405 M01S00397.comcmtp +++| SB2 X2 00406 M01S00398.comcmtp +++| SB3 1 00407 M01S00399.comcmtp +++| MTD1 SA2 FTAB-1+B3 ORIGIN = PREVIOUS FWA 00408 M01S00400.comcmtp +++| SA3 LTAB-1+B3 WORD COUNT = LENGTH + 1 00409 M01S00401.comcmtp +++| BX4 X2-X0 MOVE DIFFERENTIAL 00410 M01S00402.comcmtp +++| SX1 X3+B1 00411 M01S00403.comcmtp +++| SX7 X0 SET NEW FWA 00412 M01S00404.comcmtp +++| IX0 X0+X1 NEXT FWA 00413 M01S00405.comcmtp +++| SB3 B3+B1 ADVANCE TABLE NUMBER 00414 M01S00406.comcmtp +++| ZR X4,MTD2 IF NO MOVE REQUIRED 00415 M01S00407.comcmtp +++| SA7 A2 00416 M01S00408.comcmtp +++| MOVE X1,X2,X7 MOVE MEMORY BLOCK 00417 M01S00409.comcmtp +++| MTD2 LT B3,B2,MTD1 LOOP TO LAST TABLE 00418 M01S00410.comcmtp +++| EQ MTD RETURN 00419 M01S00411.comcmtp +++| MTU SPACE 4 00420 M01S00412.comcmtp +++|*** MTU - MOVE TABLES UP. 00421 M01S00413.comcmtp +++|* 00422 M01S00414.comcmtp +++|* ENTRY NONE. 00423 M01S00415.comcmtp +++|* 00424 M01S00416.comcmtp +++|* EXIT NONE. 00425 M01S00417.comcmtp +++|* 00426 M01S00418.comcmtp +++|* USES X - 0, 1, 2, 3, 7. 00427 M01S00419.comcmtp +++|* B - 3. 00428 M01S00420.comcmtp +++|* A - 1, 2, 7. 00429 M01S00421.comcmtp +++|* 00430 M01S00422.comcmtp +++|* CALLS MVE. 00431 M01S00423.comcmtp +++| 00432 M01S00424.comcmtp +++| 00433 M01S00425.comcmtp +++| MTU1 SB3 B3-B1 DECREMENT TABLE COUNT 00434 M01S00426.comcmtp +++| SA2 FTAB+B3 00435 M01S00427.comcmtp +++| SA1 LTAB+B3 00436 M01S00428.comcmtp +++| IX7 X0-X1 NEW FWA = L - LENGTH 00437 M01S00429.comcmtp +++| LX0 X7 L = NEW FWA 00438 M01S00430.comcmtp +++| SA7 A2 00439 M01S00431.comcmtp +++| BX3 X0 MOVE TABLE 00440 M01S00432.comcmtp +++| RJ MVE= 00441 M01S00433.comcmtp +++| NZ B3,MTU1 00442 M01S00434.comcmtp +++| 00443 M01S00435.comcmtp +++| MTU PS ENTRY/EXIT 00444 M01S00436.comcmtp +++| SA1 F.TEND (X0) = LWA+1 ALL TABLES (L) 00445 M01S00437.comcmtp +++| SB3 NTAB-1 (B3) = NUMBER OF TABLES - 1 00446 M01S00438.comcmtp +++| BX0 X1 00447 M01S00439.comcmtp +++| EQ MTU1 00448 M01S00440.comcmtp +++| SPACE 4 00449 M01S00441.comcmtp +++| BASE * 00450 M01S00442.comcmtp +++| QUAL$ IF -DEF,QUAL$ 00451 M01S00443.comcmtp +++| QUAL * 00452 M01S00444.comcmtp +++| ADW EQU /COMCMTP/ADW 00453 M01S00445.comcmtp +++| AMU EQU /COMCMTP/AMU 00454 M01S00446.comcmtp +++| ATS EQU /COMCMTP/ATS 00455 M01S00447.comcmtp +++| EQS EQU /COMCMTP/EQS 00456 M01S00448.comcmtp +++| MES EQU /COMCMTP/MES 00457 M01S00449.comcmtp +++| MTD EQU /COMCMTP/MTD 00458 M01S00450.comcmtp +++| MTU EQU /COMCMTP/MTU 00459 M01S00451.comcmtp +++| QUAL$ ENDIF 00460 M01S00452.comcmtp +++| ENDX
cdc/nos2.source/opl.opl871/common/comcmtp.txt · Last modified: by 127.0.0.1