Seq # *Modification Id* Act
----------------------------+
00001 M00S00001.comcmtp +++| CTEXT COMCMTP - MANAGED TABLE PROCESSORS.
00002 M00S00002.comcmtp +++| SPACE 4
00003 M00S00003.comcmtp +++| IF -DEF,FTAB,1
00004 M00S00004.comcmtp +++| TABLES HERE
00005 M00S00005.comcmtp +++| SPACE 4
00006 M00S00006.comcmtp +++| IF -DEF,QUAL$,1
00007 M00S00007.comcmtp +++| QUAL COMCMTP
00008 M00S00008.comcmtp +++| BASE D
Line S00009 Modification History |
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00009 M01S00009.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1970.
Line S00001 Modification History |
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act
----------------------------+
00010 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
00011 M00S00010.comcmtp +++| SPACE 4
00012 M00S00011.comcmtp +++|*** COMCMTP - MANAGED TABLE PROCESSORS.
00013 M00S00012.comcmtp +++|* G. R. MANSFIELD. 70/12/20.
00014 M00S00013.comcmtp +++| SPACE 4
00015 M00S00014.comcmtp +++|*** COMCMTP CONTAINS ROUTINES FOR PROCESSING MANAGED
00016 M00S00015.comcmtp +++|* TABLES. MACROS FOR CALLS AND GENERATION ARE CONTAINED
00017 M00S00016.comcmtp +++|* IN COMCMTM.
00018 M00S00017.comcmtp +++|*
00019 M00S00018.comcmtp +++|*
00020 M00S00019.comcmtp +++|* THE MANAGED TABLE PROCESSORS ALLOW THE PARTIONING OF
00021 M00S00020.comcmtp +++|* CENTRAL MEMORY INTO VARIABLE REGIONS (CALLED TABLES).
00022 M00S00021.comcmtp +++|* THESE TABLES ARE REFERENCED BY POINTERS WHICH INDICATE
00023 M00S00022.comcmtp +++|* THE FIRST ADDRESS OF THE TABLE AND THE TABLE LENGTH.
00024 M00S00023.comcmtp +++|* MEMORY IS ALLOCATED TO EACH TABLE AS IT IS REQUIRED AND
00025 M00S00024.comcmtp +++|* THE USER MAY DELETE SPACE FROM THE TABLES. THE USER IS
00026 M00S00025.comcmtp +++|* EXPECTED TO PROVIDE CERTAIN CONSTANTS FOR USE BY THE
00027 M00S00026.comcmtp +++|* TABLE PROCESSORS. EACH TABLE IS ALLOWED AT LEAST 1 WORD
00028 M00S00027.comcmtp +++|* OF EXPANSION SPACE TO ALLOW A DUMMY WORD BETWEEN EACH
00029 M00S00028.comcmtp +++|* TABLE. THIS ALLOWS EFFICIENT SEARCH METHODS TO BE USED.
00030 M00S00029.comcmtp +++|*
00031 M00S00030.comcmtp +++|*
00032 M00S00031.comcmtp +++|*
00033 M00S00032.comcmtp +++|*
00034 M00S00033.comcmtp +++|* *MEML* = LOWEST ADDRESS OF MANAGED MEMORY.
00035 M00S00034.comcmtp +++|* *TOV* = ADDRESS OF TABLE OVERFLOW PROCESSOR.
00036 M00S00035.comcmtp +++|*
00037 M00S00036.comcmtp +++|* DATA PROVIDED BY *COMCMTM*.
00038 M00S00037.comcmtp +++|*
00039 M00S00038.comcmtp +++|* *NTAB* = NUMBER OF MANAGED TABLES.
00040 M00S00039.comcmtp +++|* *FTAB* = START OF TABLE ADDRESSES.
00041 M00S00040.comcmtp +++|* *LTAB* = START OF TABLE LENGTHS.
00042 M00S00041.comcmtp +++|* *F.TNAM* = ADDRESS POINTER FOR TABLE *TNAM*.
00043 M00S00042.comcmtp +++|* *L.TNAM* = LENGTH POINTER FOR TABLE *TNAM*.
00044 M00S00043.comcmtp +++|* *C.TNAM* = WORDS/ENTRY FOR SEARCH ROUTINES.
00045 M00S00044.comcmtp +++|*
00046 M00S00045.comcmtp +++|* DATA DYNAMICALLY CHANGABLE.
00047 M00S00046.comcmtp +++|*
00048 M00S00047.comcmtp +++|* (TN) = NUMBER OF MANAGED TABLES. SET TO *NTAB* BY
Line S00048 Modification History |
M01 (Removed by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00049 M01S00048.cmtp1 ---|* *COMCMTM*. VALUE MUST BE ;*NTAB* DURING USE.
Line S00001 Modification History |
M01 (Added by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00050 M01S00001.cmtp1 +++|* *COMCMTM*. VALUE MUST BE .LE. *NTAB* DURING USE.
00051 M00S00049.comcmtp +++|* (TO) = TABLE OVERFLOW PROCESSOR. SET TO *TOV* BY
00052 M00S00050.comcmtp +++|* *COMCMTM*.
00053 M00S00051.comcmtp +++|* (LM) = LOW MEMORY LIMIT. VALUE SET TO *MEML* BY *COMCMTM*.
00054 M00S00052.comcmtp +++|* IF THIS VALUE IS RAISED, *MTU* SHOULD BE CALLED
00055 M00S00053.comcmtp +++|* TO ALLOW ROOM FOR CHANGE.
00056 M00S00054.comcmtp +++|* (F.TEND) = HIGH MEMORY LIMIT. VALUE MUST BE INITIALIZED
00057 M00S00055.comcmtp +++|* BY USER. IF THIS VALUE IS LOWERED, *MTD* SHOULD
00058 M00S00056.comcmtp +++|* BE CALLED TO ALLOW ROOM FOR CHANGE.
00059 M00S00057.comcmtp +++| ADW SPACE 4
00060 M00S00058.comcmtp +++|*** ADW - ADD WORD TO TABLE.
00061 M00S00059.comcmtp +++|*
00062 M00S00060.comcmtp +++|* ENTRY (A0) = TABLE NUMBER.
00063 M00S00061.comcmtp +++|* (X1) = WORD.
00064 M00S00062.comcmtp +++|*
00065 M00S00063.comcmtp +++|* EXIT (X1) = WORD.
00066 M00S00064.comcmtp +++|* (X6) = WORD.
00067 M00S00065.comcmtp +++|* (A6) = ADDRESS OF WORD.
00068 M00S00066.comcmtp +++|* (X2) = FWA TABLE.
00069 M00S00067.comcmtp +++|* (X3) = LENGTH OF TABLE.
00070 M00S00068.comcmtp +++|*
00071 M00S00069.comcmtp +++|* USES X - 1, 2, 3, 4, 6, 7.
00072 M00S00070.comcmtp +++|* B - NONE.
00073 M00S00071.comcmtp +++|* A - 1,2,3,4,6,7.
00074 M00S00072.comcmtp +++|*
00075 M00S00073.comcmtp +++|* CALLS ATS.
00076 M00S00074.comcmtp +++|
00077 M00S00075.comcmtp +++|
00078 M00S00076.comcmtp +++| ADW1 BX6 X1 PLACE ENTRY IN TABLE
00079 M00S00077.comcmtp +++| IX7 X2+X3
00080 M00S00078.comcmtp +++| SA6 X7
00081 M00S00079.comcmtp +++| SX3 X3+B1
00082 M00S00080.comcmtp +++|
00083 M00S00081.comcmtp +++| ADW PS ENTRY/EXIT
00084 M00S00082.comcmtp +++| SA2 FTAB+A0 SET TABLE DIFFERENTIAL
00085 M00S00083.comcmtp +++| SA4 A2+B1
00086 M00S00084.comcmtp +++| IX7 X4-X2
00087 M00S00085.comcmtp +++| SA3 LTAB+A0 CURRENT LENGTH
00088 M00S00086.comcmtp +++| SX6 X3+B1 ADD NEW ENTRY
00089 M00S00087.comcmtp +++| IX7 X6-X7
00090 M00S00088.comcmtp +++| SA6 A3 UPDATE LENGTH
00091 M00S00089.comcmtp +++| NG X7,ADW1 IF ROOM FOR ENTRY + 1 WORD
00092 M00S00090.comcmtp +++| BX6 X1 SAVE ENTRY
00093 M00S00091.comcmtp +++| LX7 X3 RESTORE LENGTH
00094 M00S00092.comcmtp +++| SA6 ADWA
00095 M00S00093.comcmtp +++| SA7 A3
00096 M00S00094.comcmtp +++| ALLOC A0,1 ALLOCATE 1 WORD
00097 M00S00095.comcmtp +++| SA1 ADWA RESTORE ENTRY
00098 M00S00096.comcmtp +++| SX3 X3-1 SET ORIGINAL LENGTH
00099 M00S00097.comcmtp +++| EQ ADW1 PROCESS ENTRY
00100 M00S00098.comcmtp +++|
00101 M00S00099.comcmtp +++| ADWA CON 0
00102 M00S00100.comcmtp +++| AMU SPACE 4
00103 M00S00101.comcmtp +++|*** AMU - ACCUMULATE MEMORY USED.
00104 M00S00102.comcmtp +++|*
00105 M00S00103.comcmtp +++|* ENTRY NONE.
00106 M00S00104.comcmtp +++|*
00107 M00S00105.comcmtp +++|* EXIT MU = MAX(MU,CURRENT ASSIGNED LENGTH)
00108 M00S00106.comcmtp +++|*
00109 M00S00107.comcmtp +++|* USES X - 1, 2, 3, 6.
00110 M00S00108.comcmtp +++|* B - 2.
00111 M00S00109.comcmtp +++|* A - 1, 2, 6.
00112 M00S00110.comcmtp +++|*
00113 M00S00111.comcmtp +++|* CALLS NONE.
00114 M00S00112.comcmtp +++|
00115 M00S00113.comcmtp +++|
00116 M00S00114.comcmtp +++| AMU1 IX6 X6+X2 ACCUMULATE LENGTH
00117 M00S00115.comcmtp +++| SB2 B2-B1
00118 M00S00116.comcmtp +++| SA2 A2+B1 NEXT TABLE
00119 M00S00117.comcmtp +++| NE B2,B1,AMU1 LOOP FOR ALL TABLES
00120 M00S00118.comcmtp +++| SA1 MU SET MAX LENGTH
00121 M00S00119.comcmtp +++| IX3 X6-X1
00122 M00S00120.comcmtp +++| NG X3,AMU
00123 M00S00121.comcmtp +++| SA6 A1
00124 M00S00122.comcmtp +++|
00125 M00S00123.comcmtp +++| AMU PS ENTRY/EXIT
00126 M00S00124.comcmtp +++| SA1 TN (B2) = NUMBER OF TABLES
00127 M00S00125.comcmtp +++| MX6 0 CLEAR ACCUMULATION
00128 M00S00126.comcmtp +++| SB2 X1
00129 M00S00127.comcmtp +++| SA2 LTAB FIRST TABLE
00130 M00S00128.comcmtp +++| EQ AMU1
00131 M00S00129.comcmtp +++| ATS SPACE 4
00132 M00S00130.comcmtp +++|*** ATS - ALLOCATE TABLE SPACE.
00133 M00S00131.comcmtp +++|*
00134 M00S00132.comcmtp +++|* ENTRY (A0) = TABLE INDEX.
00135 M00S00133.comcmtp +++|* (X1) = CHANGE (+ OR -) TO TABLE SIZE.
00136 M00S00134.comcmtp +++|*
00137 M00S00135.comcmtp +++|* EXIT (X1) = CHANGE.
00138 M00S00136.comcmtp +++|* (X2) = FWA OF TABLE.
00139 M00S00137.comcmtp +++|* (X3) = NEW LENGTH OF TABLE.
Line S00138 Modification History |
M01 (Removed by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00140 M01S00138.cmtp1 ---|* (X7) < 0 IF TABLES MOVED.
Line S00002 Modification History |
M01 (Added by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00141 M01S00002.cmtp1 +++|* (X7) .LT. 0 IF TABLES MOVED.
00142 M00S00139.comcmtp +++|*
00143 M00S00140.comcmtp +++|* IF TABLES NOT MOVED -
00144 M00S00141.comcmtp +++|* USES X - 2, 3, 4, 6, 7.
00145 M00S00142.comcmtp +++|* B - NONE.
00146 M00S00143.comcmtp +++|* A - 2, 3, 4, 6.
00147 M00S00144.comcmtp +++|*
00148 M00S00145.comcmtp +++|* IF TABLES MOVED -
00149 M00S00146.comcmtp +++|* USES X - 0, 1, 2, 3, 4, 5, 6, 7.
00150 M00S00147.comcmtp +++|* B - 2, 3, 4, 5, 6, 7.
00151 M00S00148.comcmtp +++|* A - 1, 2, 3, 4, 6, 7.
00152 M00S00149.comcmtp +++|*
00153 M00S00150.comcmtp +++|* RESTORES X - 0, 1, 5.
00154 M00S00151.comcmtp +++|* B - 2, 3, 4, 5, 6, 7. (EXCEPT -0)
00155 M00S00152.comcmtp +++|*
00156 M00S00153.comcmtp +++|* CALLS AMU, MVE, TOV.
00157 M00S00154.comcmtp +++|*
00158 M00S00155.comcmtp +++|* ENTRY CONDITIONS FOR USER ROUTINE *TOV*.
00159 M00S00156.comcmtp +++|*
00160 M00S00157.comcmtp +++|* (B1) = 1.
00161 M00S00158.comcmtp +++|* (B5) = COMPLEMENT OF NUMBER OF WORDS REQUIRED.
00162 M00S00159.comcmtp +++|* (B6) = RETURN ADDRESS TO CONTINUE PROCESSING, I.E.,
00163 M00S00160.comcmtp +++|* EXIT FROM *TOV* VIA * JP B6 * INSTRUCTION.
00164 M00S00161.comcmtp +++|*
Line S00162 Modification History |
M01 (Removed by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00165 M01S00162.cmtp1 ---|* THE LOCATION *TOV* MUST CONTAIN EXECUTABLE CODE. *TOV*
00166 M01S00163.cmtp1 ---|* IS ENTERED VIA A *JP*, NOT VIA *RJ*.
Line S00003 Modification History |
M01 (Added by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00167 M01S00003.cmtp1 +++|* THE LOCATION *TOV* MUST CONTAIN EXECUTABLE CODE.
00168 M01S00004.cmtp1 +++|* *TOV* IS ENTERED VIA A *JP*, NOT VIA *RJ*.
00169 M00S00164.comcmtp +++|*
00170 M00S00165.comcmtp +++|* EXIT CONDITIONS FOR *TOV*.
00171 M00S00166.comcmtp +++|*
00172 M00S00167.comcmtp +++|* ONLY B1 MUST BE PRESERVED.
00173 M00S00168.comcmtp +++|*
00174 M00S00169.comcmtp +++|* A POINTER WORD MUST BE INCREMENTED BY THE NUMBER OF
Line S00170 Modification History |
M01 (Removed by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00175 M01S00170.cmtp1 ---|* WORDS NEWLY AVAILABLE. IF *NT* HAS NOT BEEN ALTERED
Line S00005 Modification History |
M01 (Added by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00176 M01S00005.cmtp1 +++|* WORDS NEWLY AVAILABLE. IF *TN* HAS NOT BEEN ALTERED
00177 M00S00171.comcmtp +++|* DURING EXECUTION, THE ADDRESS OF THE POINTER WORD IS
00178 M00S00172.comcmtp +++|* *F.TEND*.
Line S00173 Modification History |
M01 (Removed by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
00179 M01S00173.cmtp1 ---|* IF *NT* HAS CHANGED, THE ADDRESS OF THE POINTER WORD
00180 M01S00174.cmtp1 ---|* = FTAB-1 PLUS THE CONTENTS OF *NT*.
Line S00006 Modification History |
M01 (Added by) | cmtp1 |
Seq # *Modification Id* Act
----------------------------+
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 M00S00175.comcmtp +++|
00184 M00S00176.comcmtp +++|
00185 M00S00177.comcmtp +++| ATS PS ENTRY/EXIT
00186 M00S00178.comcmtp +++| ATS1 SA2 FTAB+A0 CURRENT FWA
00187 M00S00179.comcmtp +++| SA3 LTAB+A0 CURRENT LENGTH
00188 M00S00180.comcmtp +++| SA4 A2+B1 NEXT TABLE FWA
00189 M00S00181.comcmtp +++| IX6 X1+X3 NEW LENGTH
00190 M00S00182.comcmtp +++| IX7 X4-X2 ROOM BETWEEN TABLES
00191 M00S00183.comcmtp +++| SA6 A3 SET NEW LENGTH
00192 M00S00184.comcmtp +++| IX7 X6-X7
00193 M00S00185.comcmtp +++| BX3 X6
00194 M00S00186.comcmtp +++| NG X7,ATS RETURN IF ROOM FOR CHANGE + 1 WORD
00195 M00S00187.comcmtp +++| IX7 X6-X1 SET PREVIOUS LENGTH
00196 M00S00188.comcmtp +++|
00197 M00S00189.comcmtp +++|* INITIALIZE FOR TABLE MOVE.
00198 M00S00190.comcmtp +++|
00199 M00S00191.comcmtp +++| BX6 X0 SAVE (X0)
00200 M00S00192.comcmtp +++| SA7 A3
00201 M00S00193.comcmtp +++| SA6 ATSB
00202 M00S00194.comcmtp +++| BX7 X1 SAVE (X1)
00203 M00S00195.comcmtp +++| LX6 X5 SAVE (X5)
00204 M00S00196.comcmtp +++| SA7 A6+B1
00205 M00S00197.comcmtp +++| SA6 A7+B1
00206 M00S00198.comcmtp +++| SX7 B2 SAVE B REGISTERS
00207 M00S00199.comcmtp +++| SX6 B3
00208 M00S00200.comcmtp +++| SA7 A6+B1
00209 M00S00201.comcmtp +++| SA6 A7+B1
00210 M00S00202.comcmtp +++| SX7 B4
00211 M00S00203.comcmtp +++| SX6 B5
00212 M00S00204.comcmtp +++| SA7 A6+B1
00213 M00S00205.comcmtp +++| SA6 A7+B1
00214 M00S00206.comcmtp +++| SX7 B6
00215 M00S00207.comcmtp +++| SX6 B7
00216 M00S00208.comcmtp +++| SA7 A6+1
00217 M00S00209.comcmtp +++| SA6 A7+1
00218 M00S00210.comcmtp +++|
00219 M00S00211.comcmtp +++|* COMPUTE REMAINING TABLE SPACE.
00220 M00S00212.comcmtp +++|
00221 M00S00213.comcmtp +++| ATS1.1 SA2 TN (B2) = NUMBER OF TABLES
00222 M00S00214.comcmtp +++| SB2 X2
00223 M00S00215.comcmtp +++| IX4 X1+X2 LENGTH = NUMBER OF TABLES + INCREASE
00224 M00S00216.comcmtp +++| SB3 B2-1
00225 M00S00217.comcmtp +++| ATS2 SB3 B3-B1 LENGTH = LENGTH + TABLE LENGTH
00226 M00S00218.comcmtp +++| SA3 LTAB+B3
00227 M00S00219.comcmtp +++| IX4 X4+X3
00228 M00S00220.comcmtp +++| NZ B3,ATS2 LOOP FOR ALL TABLES
00229 M00S00221.comcmtp +++| SA2 LM SET AVAILABLE LENGTH
00230 M00S00222.comcmtp +++| SA3 FTAB-1+B2
00231 M00S00223.comcmtp +++| IX6 X3-X2
00232 M00S00224.comcmtp +++| SB4 X4 (B4) = TOTAL ASSIGNED LENGTH
00233 M00S00225.comcmtp +++| IX7 X6-X4
00234 M00S00226.comcmtp +++| SB5 X7 (B5) = REMAINING SPACE
00235 M00S00227.comcmtp +++| NG X7,ATS6 IF NO REMAINING SPACE
00236 M00S00228.comcmtp +++| RJ MTD MOVE TABLES DOWN
00237 M00S00229.comcmtp +++| SA1 ATSB+1 INCREMENT SIZE OF REQUESTED TABLE
00238 M00S00230.comcmtp +++| SA2 LTAB+A0
00239 M00S00231.comcmtp +++| IX6 X2+X1
00240 M00S00232.comcmtp +++| SA6 A2
00241 M00S00233.comcmtp +++|
00242 M00S00234.comcmtp +++|* REALLOCATE TABLES.
00243 M00S00235.comcmtp +++|* ALLOCATE INTERSPACE. (LA/2N) + ((TL*LA)/2) + 1
00244 M00S00236.comcmtp +++|
00245 M00S00237.comcmtp +++| SA1 FTAB-1+B2 (X0) = LWA+1 LAST TABLE
00246 M00S00238.comcmtp +++| SB6 B2-B1
00247 M00S00239.comcmtp +++| BX0 X1
00248 M00S00240.comcmtp +++| ATS3 LE B6,B1,ATS5 IF TABLE RELOCATION COMPLETE
00249 M00S00241.comcmtp +++| SB6 B6-B1 I = I-1
00250 M00S00242.comcmtp +++| SX4 B5 LA (LENGTH AVAILABLE)
00251 M00S00243.comcmtp +++| SA2 FTAB+B6 FWA(I)
00252 M00S00244.comcmtp +++| SA1 LTAB+B6 TL (LENGTH OF TABLE)
00253 M00S00245.comcmtp +++| SX3 B2-B1 N (NUMBER OF TABLES)
00254 M00S00246.comcmtp +++| AX5 X4,B1 LA/2
00255 M00S00247.comcmtp +++| IX6 X4/X3 L1 = LA/N
00256 M00S00248.comcmtp +++| ZR B4,ATS4 IF NO TABLES ASSIGNED, L = L1
00257 M00S00249.comcmtp +++| SX3 B4 AL (TOTAL ASSIGNED LENGTH)
00258 M00S00250.comcmtp +++| IX7 X5*X1 (LA/2)*TL
00259 M00S00251.comcmtp +++| AX6 1 L1 = LA/2N
00260 M00S00252.comcmtp +++| IX7 X7/X3 L2 = (TL*LA)/2
00261 M00S00253.comcmtp +++| IX6 X6+X7 L = L1+L2
00262 M00S00254.comcmtp +++| ATS4 SX6 X6+B1 L = L+1
00263 M00S00255.comcmtp +++| IX4 X0-X6 FWA(I+1)-L
00264 M00S00256.comcmtp +++| UX1 X1 RESET LENGTH
00265 M00S00257.comcmtp +++| IX7 X4-X1 FWA(I) = FWA(I+1)-L-TL
00266 M00S00258.comcmtp +++| BX3 X7 DESTINATION = FWA(I)
00267 M00S00259.comcmtp +++| SA7 A2
00268 M00S00260.comcmtp +++| LX0 X7 FWA(I+1) = FWA(I)
00269 M00S00261.comcmtp +++| BX4 X2-X3 CHECK MOVE DIFFERENTIAL
00270 M00S00262.comcmtp +++| ZR X4,ATS3 IF NO MOVE REQUIRED
00271 M00S00263.comcmtp +++| RJ MVE= MOVE TABLE
00272 M00S00264.comcmtp +++| EQ ATS3 CONTINUE RELOCATING TABLES
00273 M00S00265.comcmtp +++|
00274 M00S00266.comcmtp +++| ATS5 RJ AMU ACCUMULATE MEMORY USED
00275 M00S00267.comcmtp +++|
00276 M00S00268.comcmtp +++|* RESTORE REGISTERS.
00277 M00S00269.comcmtp +++|
00278 M00S00270.comcmtp +++| SA1 ATSA COUNT MOVES
00279 M00S00271.comcmtp +++| SX6 X1+B1
00280 M00S00272.comcmtp +++| SA6 A1
00281 M00S00273.comcmtp +++| SA2 ATSB RESTORE (X0)
00282 M00S00274.comcmtp +++| SA1 A2+B1 RESTORE (X1)
00283 M00S00275.comcmtp +++| BX0 X2
00284 M00S00276.comcmtp +++| SA3 A1+B1 RESTORE (X5)
00285 M00S00277.comcmtp +++| SA2 A3+B1 RESTORE B REGISTERS
00286 M00S00278.comcmtp +++| BX5 X3
00287 M00S00279.comcmtp +++| SB2 X2
00288 M00S00280.comcmtp +++| SA3 A2+B1
00289 M00S00281.comcmtp +++| SB3 X3
00290 M00S00282.comcmtp +++| SA4 A3+B1
00291 M00S00283.comcmtp +++| SB4 X4
00292 M00S00284.comcmtp +++| SA2 A4+B1
00293 M00S00285.comcmtp +++| SB5 X2
00294 M00S00286.comcmtp +++| SA3 A2+B1
00295 M00S00287.comcmtp +++| SB6 X3
00296 M00S00288.comcmtp +++| SA4 A3+B1
00297 M00S00289.comcmtp +++| SB7 X4
00298 M00S00290.comcmtp +++| SA2 FTAB+A0 SET TABLE FWA
00299 M00S00291.comcmtp +++| SA3 LTAB+A0 SET TABLE LENGTH
00300 M00S00292.comcmtp +++| SX7 -B1 FLAG TABLES MOVED
00301 M00S00293.comcmtp +++| EQ ATS RETURN
00302 M00S00294.comcmtp +++|
00303 M00S00295.comcmtp +++| ATS6 SA3 TO PROCESS TABLE OVERFLOW
00304 M00S00296.comcmtp +++| SB2 X3
00305 M00S00297.comcmtp +++| SX6 A0 PRESERVE (A0) FROM USER DEPREDATIONS
00306 M00S00298.comcmtp +++| SB6 ATS7 PASS RETURN ADDRESS TO USER
00307 M00S00299.comcmtp +++| SA6 ATSC
00308 M00S00300.comcmtp +++| JP B2
00309 M00S00301.comcmtp +++|
00310 M00S00302.comcmtp +++|* RETURN FROM USER ROUTINE *TOV*.
00311 M00S00303.comcmtp +++|
00312 M00S00304.comcmtp +++| ATS7 SA1 ATSC RESTORE (A0), (X1)
00313 M00S00305.comcmtp +++| SA0 X1+
00314 M00S00306.comcmtp +++| SA1 ATSB+1
00315 M00S00307.comcmtp +++| JP ATS1.1 RE-COMPUTE WITH NEW MEMORY
00316 M00S00308.comcmtp +++|
00317 M00S00309.comcmtp +++| ATSA CON 0 COUNT OF TABLE MOVES
00318 M00S00310.comcmtp +++|
00319 M00S00311.comcmtp +++| ATSB CON 0,0,0 (X0, X1, X5) SAVE
00320 M00S00312.comcmtp +++| CON 0,0,0,0,0,0 (B2 - B7) SAVE
00321 M00S00313.comcmtp +++| ATSC CON 0 (A0) SAVE IF TABLE OVERFLOW
00322 M00S00314.comcmtp +++| EQS SPACE 4
00323 M00S00315.comcmtp +++|*** EQS - EQUALITY SEARCH TABLE.
00324 M00S00316.comcmtp +++|*
00325 M00S00317.comcmtp +++|* ENTRY (X6) = ENTRY FOR SEARCH.
00326 M00S00318.comcmtp +++|* (B7) = WORD COUNT/ENTRY.
00327 M00S00319.comcmtp +++|* (A0) = TABLE NUMBER.
00328 M00S00320.comcmtp +++|*
00329 M00S00321.comcmtp +++|* EXIT (X2) = ENTRY FOUND.
00330 M00S00322.comcmtp +++|*
00331 M00S00323.comcmtp +++|* USES X - 1,2,3,7.
00332 M00S00324.comcmtp +++|* B - NONE.
00333 M00S00325.comcmtp +++|* A - 1,2,6.
00334 M00S00326.comcmtp +++|*
00335 M00S00327.comcmtp +++|* CALLS NONE.
00336 M00S00328.comcmtp +++|
00337 M00S00329.comcmtp +++|
00338 M00S00330.comcmtp +++| EQS PS ENTRY/EXIT
00339 M00S00331.comcmtp +++| SA1 FTAB+A0 SET TABLE PARAMETERS
00340 M00S00332.comcmtp +++| SA2 LTAB+A0
00341 M00S00333.comcmtp +++| IX3 X1+X2 SET SEARCH KEY IN LWA+1
00342 M00S00334.comcmtp +++| SA6 X3
00343 M00S00335.comcmtp +++| NO
00344 M00S00336.comcmtp +++| SA1 X1 FIRST ENTRY
00345 M00S00337.comcmtp +++| + BX2 X1-X6 COMPARE ENTRIES
00346 M00S00338.comcmtp +++| SA1 A1+B7 NEXT ENTRY
00347 M00S00339.comcmtp +++| NZ X2,* LOOP TO MATCH
00348 M00S00340.comcmtp +++| SX7 A1-B7 CHECK SEARCH
00349 M00S00341.comcmtp +++| BX2 X7-X3
00350 M00S00342.comcmtp +++| ZR X2,EQS RETURN IF NOT FOUND
00351 M00S00343.comcmtp +++| SA2 A1-B7 RETURN ENTRY
00352 M00S00344.comcmtp +++| EQ EQS
00353 M00S00345.comcmtp +++| MES SPACE 4
00354 M00S00346.comcmtp +++|*** MES - MASKED EQUALITY SEARCH TABLE.
00355 M00S00347.comcmtp +++|*
00356 M00S00348.comcmtp +++|* ENTRY (X6) = ENTRY FOR SEARCH.
00357 M00S00349.comcmtp +++|* (X0) = MASK.
00358 M00S00350.comcmtp +++|* (B7) = WORD COUNT/ENTRY.
00359 M00S00351.comcmtp +++|* (A0) = TABLE NUMBER.
00360 M00S00352.comcmtp +++|*
00361 M00S00353.comcmtp +++|* EXIT (X2) = ENTRY FOUND.
00362 M00S00354.comcmtp +++|*
00363 M00S00355.comcmtp +++|* USES X - 1,2,3,4,7.
00364 M00S00356.comcmtp +++|* B - NONE.
00365 M00S00357.comcmtp +++|* A - 1,2,6.
00366 M00S00358.comcmtp +++|*
00367 M00S00359.comcmtp +++|* CALLS NONE.
00368 M00S00360.comcmtp +++|
00369 M00S00361.comcmtp +++|
00370 M00S00362.comcmtp +++| MES1 BX4 X0*X2
00371 M00S00363.comcmtp +++| SA1 A1+B7 NEXT ENTRY
00372 M00S00364.comcmtp +++| BX2 X6-X1 COMPARE ENTRIES
00373 M00S00365.comcmtp +++| NZ X4,MES1 LOOP TO MATCH
00374 M00S00366.comcmtp +++| SX7 A1-B7 CHECK SEARCH
00375 M00S00367.comcmtp +++| BX2 X7-X3
00376 M00S00368.comcmtp +++| ZR X2,MES RETURN IF NOT FOUND
00377 M00S00369.comcmtp +++| SA2 X7+ RETURN ENTRY
00378 M00S00370.comcmtp +++|
00379 M00S00371.comcmtp +++| MES PS ENTRY/EXIT
00380 M00S00372.comcmtp +++| SA1 FTAB+A0 SET TABLE PARAMETERS
00381 M00S00373.comcmtp +++| SA2 LTAB+A0
00382 M00S00374.comcmtp +++| IX3 X1+X2 SET SEARCH KEY IN LWA+1
00383 M00S00375.comcmtp +++| SA6 X3
00384 M00S00376.comcmtp +++| SA1 X1 FIRST ENTRY
00385 M00S00377.comcmtp +++| BX2 X6-X1
00386 M00S00378.comcmtp +++| EQ MES1
00387 M00S00379.comcmtp +++| MTD SPACE 4
00388 M00S00380.comcmtp +++|*** MTD - MOVE TABLES DOWN.
00389 M00S00381.comcmtp +++|*
00390 M00S00382.comcmtp +++|* ENTRY NONE.
00391 M00S00383.comcmtp +++|*
00392 M00S00384.comcmtp +++|* EXIT (B2) = NUMBER OF TABLES.
00393 M00S00385.comcmtp +++|*
00394 M00S00386.comcmtp +++|* USES X - 0, 1, 2, 3, 4, 7.
00395 M00S00387.comcmtp +++|* B - 2, 3.
00396 M00S00388.comcmtp +++|* A - 1,2,3,7.
00397 M00S00389.comcmtp +++|*
00398 M00S00390.comcmtp +++|* CALLS MVE=.
00399 M00S00391.comcmtp +++|
00400 M00S00392.comcmtp +++|
00401 M00S00393.comcmtp +++| MTD PS ENTRY/EXIT
00402 M00S00394.comcmtp +++| SA1 LM LOW MEMORY LIMIT
00403 M00S00395.comcmtp +++| SA2 TN (B2) = NUMBER OF TABLES
00404 M00S00396.comcmtp +++| BX0 X1
00405 M00S00397.comcmtp +++| SB2 X2
00406 M00S00398.comcmtp +++| SB3 1
00407 M00S00399.comcmtp +++| MTD1 SA2 FTAB-1+B3 ORIGIN = PREVIOUS FWA
00408 M00S00400.comcmtp +++| SA3 LTAB-1+B3 WORD COUNT = LENGTH + 1
00409 M00S00401.comcmtp +++| BX4 X2-X0 MOVE DIFFERENTIAL
00410 M00S00402.comcmtp +++| SX1 X3+B1
00411 M00S00403.comcmtp +++| SX7 X0 SET NEW FWA
00412 M00S00404.comcmtp +++| IX0 X0+X1 NEXT FWA
00413 M00S00405.comcmtp +++| SB3 B3+B1 ADVANCE TABLE NUMBER
00414 M00S00406.comcmtp +++| ZR X4,MTD2 IF NO MOVE REQUIRED
00415 M00S00407.comcmtp +++| SA7 A2
00416 M00S00408.comcmtp +++| MOVE X1,X2,X7 MOVE MEMORY BLOCK
00417 M00S00409.comcmtp +++| MTD2 LT B3,B2,MTD1 LOOP TO LAST TABLE
00418 M00S00410.comcmtp +++| EQ MTD RETURN
00419 M00S00411.comcmtp +++| MTU SPACE 4
00420 M00S00412.comcmtp +++|*** MTU - MOVE TABLES UP.
00421 M00S00413.comcmtp +++|*
00422 M00S00414.comcmtp +++|* ENTRY NONE.
00423 M00S00415.comcmtp +++|*
00424 M00S00416.comcmtp +++|* EXIT NONE.
00425 M00S00417.comcmtp +++|*
00426 M00S00418.comcmtp +++|* USES X - 0, 1, 2, 3, 7.
00427 M00S00419.comcmtp +++|* B - 3.
00428 M00S00420.comcmtp +++|* A - 1, 2, 7.
00429 M00S00421.comcmtp +++|*
00430 M00S00422.comcmtp +++|* CALLS MVE.
00431 M00S00423.comcmtp +++|
00432 M00S00424.comcmtp +++|
00433 M00S00425.comcmtp +++| MTU1 SB3 B3-B1 DECREMENT TABLE COUNT
00434 M00S00426.comcmtp +++| SA2 FTAB+B3
00435 M00S00427.comcmtp +++| SA1 LTAB+B3
00436 M00S00428.comcmtp +++| IX7 X0-X1 NEW FWA = L - LENGTH
00437 M00S00429.comcmtp +++| LX0 X7 L = NEW FWA
00438 M00S00430.comcmtp +++| SA7 A2
00439 M00S00431.comcmtp +++| BX3 X0 MOVE TABLE
00440 M00S00432.comcmtp +++| RJ MVE=
00441 M00S00433.comcmtp +++| NZ B3,MTU1
00442 M00S00434.comcmtp +++|
00443 M00S00435.comcmtp +++| MTU PS ENTRY/EXIT
00444 M00S00436.comcmtp +++| SA1 F.TEND (X0) = LWA+1 ALL TABLES (L)
00445 M00S00437.comcmtp +++| SB3 NTAB-1 (B3) = NUMBER OF TABLES - 1
00446 M00S00438.comcmtp +++| BX0 X1
00447 M00S00439.comcmtp +++| EQ MTU1
00448 M00S00440.comcmtp +++| SPACE 4
00449 M00S00441.comcmtp +++| BASE *
00450 M00S00442.comcmtp +++| QUAL$ IF -DEF,QUAL$
00451 M00S00443.comcmtp +++| QUAL *
00452 M00S00444.comcmtp +++| ADW EQU /COMCMTP/ADW
00453 M00S00445.comcmtp +++| AMU EQU /COMCMTP/AMU
00454 M00S00446.comcmtp +++| ATS EQU /COMCMTP/ATS
00455 M00S00447.comcmtp +++| EQS EQU /COMCMTP/EQS
00456 M00S00448.comcmtp +++| MES EQU /COMCMTP/MES
00457 M00S00449.comcmtp +++| MTD EQU /COMCMTP/MTD
00458 M00S00450.comcmtp +++| MTU EQU /COMCMTP/MTU
00459 M00S00451.comcmtp +++| QUAL$ ENDIF
00460 M00S00452.comcmtp +++| ENDX