cdc:nos2.source:opl.opl871:common:comcsnf
Common COMCSNF
1 Modification
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.comcsnf +++| CTEXT COMCSNF - SORT NUMBERED FILE. 00002 M01S00002.comcsnf +++| SPACE 4,10 00003 M01S00003.comcsnf +++| IF -DEF,QUAL$,1 00004 M01S00004.comcsnf +++| QUAL COMCSNF 00005 M01S00005.comcsnf +++| BASE D
Line S00006 Modification History | |
---|---|
M01 (Added by) | comcsnf |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00006 M02S00006.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1980. 00007 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00008 M01S00007.comcsnf +++| SNF SPACE 4,10 00009 M01S00008.comcsnf +++|*** SNF - SORT NUMBERED FILE. 00010 M01S00009.comcsnf +++|* R. E. TATE 71/03/01. 00011 M01S00010.comcsnf +++|* W. T. SACKETT 71/03/01. 00012 M01S00011.comcsnf +++|* L. K. TUTTLE. 79/04/27. 00013 M01S00012.comcsnf +++| SPACE 4,40 00014 M01S00013.comcsnf +++|*** COMCSNF SORTS A CODED, LINE NUMBERED FILE. THE FILE 00015 M01S00014.comcsnf +++|* IS READ IN SEGMENTS. EACH SEGMENT IS SORTED AND THE RESULT 00016 M01S00015.comcsnf +++|* MERGED WITH THE PREVIOUSLY SORTED PORTION OF THE FILE. THE 00017 M01S00016.comcsnf +++|* SORT IS BASED ON THE FIRST N DIGITS OF THE LINE NUMBER FOR 00018 M01S00017.comcsnf +++|* EACH LINE. THE LINE ENTERED LAST FOR A GIVEN NUMBER IS THE 00019 M01S00018.comcsnf +++|* CORRECTION LINE TO REPLACE ANY LINE HAVING THE SAME NUMBER. 00020 M01S00019.comcsnf +++|* A LINE NUMBER FOLLOWED BY AN EMPTY LINE (CR OR ONE BLANK AND 00021 M01S00020.comcsnf +++|* CR) IS CONSIDERED A LINE DELETE. A LINE NUMBER WITH MORE 00022 M01S00021.comcsnf +++|* THAN N DIGITS IS NOT CHECKED FOR LINE DELETE. THE CHARACTER 00023 M01S00022.comcsnf +++|* SET IS DETERMINED FROM THE FIRST CHARACTER OF THE FILE IF 00024 M01S00023.comcsnf +++|* NOT PASSED IN AS A PARAMETER. IF AN ERROR CONDITION IS 00025 M01S00024.comcsnf +++|* DETECTED THE FILE IS REWOUND UNALTERED AND THE ERROR CODE 00026 M01S00025.comcsnf +++|* IS RETURNED IN B2. 00027 M01S00026.comcsnf +++|* 00028 M01S00027.comcsnf +++|* COMCSNF HAS THE ABILITY TO HANDLE THEORETICALLY IN- 00029 M01S00028.comcsnf +++|* FINITE LENGTH LINES BY PROCESSING THEM A SECTION AT A TIME. 00030 M01S00029.comcsnf +++|* THERE ARE OF COURSE PRACTICAL LIMITATIONS IMPOSED BY THE 00031 M01S00030.comcsnf +++|* LENGTH OF THE CIRCULAR I/O BUFFER. FOR MORE INFORMATION 00032 M01S00031.comcsnf +++|* ON THIS SEE ROUTINE *CEB*. ALSO PERFORMANCE WILL BE DOWN- 00033 M01S00032.comcsnf +++|* GRADED BY MANY LONG LINES. 00034 M01S00033.comcsnf +++|* 00035 M01S00034.comcsnf +++|* IF SNF$ IS DEFINED BY THE CALLING PROGRAM THEN THE 00036 M01S00035.comcsnf +++|* NUMBER OF LINES IN THE FILE AFTER SORTING WILL BE RETURNED 00037 M01S00036.comcsnf +++|* IN (X6). 00038 M01S00037.comcsnf +++| SPACE 4,10 00039 M01S00038.comcsnf +++|* DATA AND EQUIVALENCES. 00040 M01S00039.comcsnf +++| 00041 M01S00040.comcsnf +++| LIMT CON 0 00042 M01S00041.comcsnf +++| WKSTL EQU 33 WORKING STORAGE BUFFER LENGTH 00043 M01S00042.comcsnf +++| PLAD CON 0 ADDRESS OF PARTIAL LINE IN I/O BUFFER 00044 M01S00043.comcsnf +++| PLWC CON 0 NUMBER OF WORDS IN PARTIAL LINE 00045 M01S00044.comcsnf +++| FNT2 CON 0 FNT NAME FROM FET *SCR1* 00046 M01S00045.comcsnf +++| FTYP CON 0 FILE TYPE (0 = DIRECT ACCESS FILE) 00047 M01S00046.comcsnf +++| INPF CON 0 INPUT FILE FET ADDRESS 00048 M01S00047.comcsnf +++| LAST CON -1 LAST LINE ON SCR 00049 M01S00048.comcsnf +++| NDIG CON 5 NUMBER OF DIGITS TO SORT ON 00050 M01S00049.comcsnf +++| CPAR CON -1 CHARACTER SET FLAG 00051 M01S00050.comcsnf +++| DRFG CON 0 DATA READ FLAG 00052 M01S00051.comcsnf +++| LLFG CON 0 LONG LINE FLAG 00053 M01S00052.comcsnf +++| ERFG CON 0 TEMPORARY STORAGE FOR ERROR FLAG 00054 M01S00053.comcsnf +++| SNF$ IF DEF,SNF$ 00055 M01S00054.comcsnf +++| NLSF CON 0 NUMBER OF LINES IN FILE AFTER SORT 00056 M01S00055.comcsnf +++| SNF$ ENDIF 00057 M01S00056.comcsnf +++| SNF SPACE 4,10 00058 M01S00057.comcsnf +++|** TABLE OF CHARACTER SET PARAMETERS. 00059 M01S00058.comcsnf +++|* 00060 M01S00059.comcsnf +++|*T, 6/ SHIFT CNT, 18/ CHAR MASK, 18/ ZERO CHAR, 18/ BLANK CHAR.
Figure
00061 M01S00060.comcsnf +++| 00062 M01S00061.comcsnf +++| 00063 M01S00062.comcsnf +++| TPAR VFD 6/06,18/0077B,18/33B,18/55B 6/12 DISPLAY CODE 00064 M01S00063.comcsnf +++| VFD 6/12,18/7777B,18/60B,18/40B ASCII8 00065 M01S00064.comcsnf +++| WKST BSS WKSTL WORKING STORAGE FOR SCR TRANSFER TO SCR1 00066 M01S00065.comcsnf +++| SNF SPACE 4,25 00067 M01S00066.comcsnf +++|** SNF - SORT NUMBERED FILE. 00068 M01S00067.comcsnf +++|* 00069 M01S00068.comcsnf +++|* ENTRY (X1) = FILE TYPE (0=DIRECT ACCESS). 00070 M01S00069.comcsnf +++|* (X2) = ADDRESS OF FET FOR INPUT FILE. 00071 M01S00070.comcsnf +++|* (X6) = NUMBER OF DIGITS TO SORT ON. 00072 M01S00071.comcsnf +++|* (X7) = CHARACTER SET. 00073 M01S00072.comcsnf +++|* < 0, NOT DETERMINED. 00074 M01S00073.comcsnf +++|* = 0, 6/12 DISPLAY CODE. 00075 M01S00074.comcsnf +++|* = 1, ASCII8. 00076 M01S00075.comcsnf +++|* 00077 M01S00076.comcsnf +++|* EXIT (X1) = 0, SORT COMPLETE, FILE REWRITTEN. 00078 M01S00077.comcsnf +++|* = NON-ZERO, ERROR ENCOUNTERED. 00079 M01S00078.comcsnf +++|* (B2) = ERROR CODE. 00080 M01S00079.comcsnf +++|* -1, SORT FILE EMPTY. 00081 M01S00080.comcsnf +++|* 0, LINE WITHOUT LINE NUMBER ENCOUNTERED. 00082 M01S00081.comcsnf +++|* 1, DIRECT ACCESS FILE NOT IN WRITE MODE. 00083 M01S00082.comcsnf +++|* 2, NOT ENOUGH BUFFER SPACE AVAILABLE. 00084 M01S00083.comcsnf +++|* (X6) = THE NUMBER OF LINES IN THE FILE AFTER THE SORT 00085 M01S00084.comcsnf +++|* IS COMPLETE (IF SNF$ IS DEFINED). 00086 M01S00085.comcsnf +++|* 00087 M01S00086.comcsnf +++|* USES X - ALL. 00088 M01S00087.comcsnf +++|* A - ALL. 00089 M01S00088.comcsnf +++|* B - 2, 7. 00090 M01S00089.comcsnf +++|* 00091 M01S00090.comcsnf +++|* CALLS CEB, GLT, MER. 00092 M01S00091.comcsnf +++|* 00093 M01S00092.comcsnf +++|* MACROS READEI, READW, RECALL, RENAME, RETURN, REWIND, WRITE, 00094 M01S00093.comcsnf +++|* WRITER, WRITEW. 00095 M01S00094.comcsnf +++|* 00096 M01S00095.comcsnf +++|* REQUIRES COMCCIO, COMCLFM, COMCMAC, COMCRDC, COMCRDW, 00097 M01S00096.comcsnf +++|* COMCSST, COMCSYS, COMCWTC, COMCWTW. 00098 M01S00097.comcsnf +++|* 00099 M01S00098.comcsnf +++|* NOTES THE I/O BUFFER OF THE FILE TO BE SORTED IS SPLIT 00100 M01S00099.comcsnf +++|* INTO TWO SECTIONS. THE TOP SECTION IS HALF THE 00101 M01S00100.comcsnf +++|* BUFFER MINUS ONE WORD AND IS USED TO READ IN 00102 M01S00101.comcsnf +++|* LINES FROM THE SORT FILE. A LINE NUMBER TABLE WILL 00103 M01S00102.comcsnf +++|* WILL BE GENERATED IN THE BOTTOM SECTION AND 00104 M01S00103.comcsnf +++|* DUE TO OVERHEAD IN *GLT* IT HAS TO BE AT LEAST TWO 00105 M01S00104.comcsnf +++|* WORDS LONGER THAN THE TOP SECTION. ALSO THE 00106 M01S00105.comcsnf +++|* TOP SECTION MUST STILL BE AT LEAST 101B WORDS 00107 M01S00106.comcsnf +++|* TO ALLOW A PRU TO BE READ IN, SO THE MINIMUM 00108 M01S00107.comcsnf +++|* BUFFER SIZE IS 204B WORDS, AND OPTIMUM IS (200B)N +4. 00109 M01S00108.comcsnf +++| 00110 M01S00109.comcsnf +++| 00111 M01S00110.comcsnf +++| SNF SUBR ENTRY/EXIT 00112 M01S00111.comcsnf +++| 00113 M01S00112.comcsnf +++|* SAVE ENTRY PARAMETERS. 00114 M01S00113.comcsnf +++| 00115 M01S00114.comcsnf +++| SA7 CPAR CHARACTER SET 00116 M01S00115.comcsnf +++| SA6 NDIG NUMBER OF DIGITS TO SORT ON 00117 M01S00116.comcsnf +++| BX7 X1 00118 M01S00117.comcsnf +++| BX6 X2 00119 M01S00118.comcsnf +++| SA7 FTYP FILE TYPE 00120 M01S00119.comcsnf +++| SA6 INPF ADDRESS OF FET 00121 M01S00120.comcsnf +++| SA3 SCR 00122 M01S00121.comcsnf +++| SA4 SCR1 00123 M01S00122.comcsnf +++| MX1 42 MASK IN FILE NAMES 00124 M01S00123.comcsnf +++| BX6 X1*X3 00125 M01S00124.comcsnf +++| BX7 X1*X4 00126 M01S00125.comcsnf +++| SX3 B1 SET FILE NOT BUSY 00127 M01S00126.comcsnf +++| BX7 X7+X3 00128 M01S00127.comcsnf +++| BX6 X6+X3 00129 M01S00128.comcsnf +++| SA7 FNT2 STORE FILE NAMES 00130 M01S00129.comcsnf +++| SA6 A4 CHANGE *SCR1* FILE NAME 00131 M01S00130.comcsnf +++| BX6 X6-X6 INTIALIZE FLAGS AND COUNTERS 00132 M01S00131.comcsnf +++| SA6 DRFG 00133 M01S00132.comcsnf +++| SX7 -1 START LAST LINE NUMBER AT -1 00134 M01S00133.comcsnf +++| SNF$ IF DEF,SNF$ 00135 M01S00134.comcsnf +++| SA6 NLSF CLEAR NUMBER OF SORTED LINES 00136 M01S00135.comcsnf +++| SNF$ ENDIF 00137 M01S00136.comcsnf +++| SA7 LAST 00138 M01S00137.comcsnf +++| SA6 ERFG CLEAR ERROR FLAG 00139 M01S00138.comcsnf +++| REWIND X2,R REWIND SORT FILE 00140 M01S00139.comcsnf +++| REWIND SCR1,R REWIND SCR1 00141 M01S00140.comcsnf +++| REWIND SCR,R REWIND SCR 00142 M01S00141.comcsnf +++| SA2 INPF 00143 M01S00142.comcsnf +++| SA1 X2+1 FIRST 00144 M01S00143.comcsnf +++| MX6 -18 00145 M01S00144.comcsnf +++| BX1 -X6*X1 00146 M01S00145.comcsnf +++| SA3 X2+4 LIMIT 00147 M01S00146.comcsnf +++| BX7 -X6*X3 00148 M01S00147.comcsnf +++| BX6 X6*X3 00149 M01S00148.comcsnf +++| IX4 X7-X1 SIZE OF BUFFER 00150 M01S00149.comcsnf +++| SB2 B1+B1 00151 M01S00150.comcsnf +++| SX0 X4-204B CHECK FOR BUFFER .LT. 204B WORDS 00152 M01S00151.comcsnf +++| NG X0,SNF7 IF BUFFER IS .LT. 204B WORDS 00153 M01S00152.comcsnf +++| SA7 LIMT 00154 M01S00153.comcsnf +++| AX4 1 00155 M01S00154.comcsnf +++| IX4 X1+X4 NEW LIMIT 00156 M01S00155.comcsnf +++| SX4 X4-1 LEAVE TWO EXTRA WORDS FOR *LNT* OVERHEAD 00157 M01S00156.comcsnf +++| BX6 X6+X4 00158 M01S00157.comcsnf +++| SA6 A3 00159 M01S00158.comcsnf +++| EQ SNF2 BEGIN READING IN FILE 00160 M01S00159.comcsnf +++| 00161 M01S00160.comcsnf +++|* ENTER MAIN LOOP. 00162 M01S00161.comcsnf +++| 00163 M01S00162.comcsnf +++| SNF1 SA1 X2+B1 00164 M01S00163.comcsnf +++| SX6 X1 00165 M01S00164.comcsnf +++| SA6 A1+B1 RESET IN AND OUT ON INPUT FILE 00166 M01S00165.comcsnf +++| SA6 A6+B1 00167 M01S00166.comcsnf +++| SA4 PLWC CHECK FOR PARTIAL LINE 00168 M01S00167.comcsnf +++| ZR X4,SNF2 IF NO PARTIAL LINE 00169 M01S00168.comcsnf +++| SA3 PLAD 00170 M01S00169.comcsnf +++| WRITEW X2,X3,X4 MOVE PARTIAL LINE TO TOP OF BUFFER 00171 M01S00170.comcsnf +++| SNF2 READEI X2 READ NEXT SEGMENT FROM INPUT FILE 00172 M01S00171.comcsnf +++| RECALL SCR 00173 M01S00172.comcsnf +++| SA1 X2 00174 M01S00173.comcsnf +++| SA2 SCR1 00175 M01S00174.comcsnf +++| BX1 X1-X2 00176 M01S00175.comcsnf +++| AX1 18 00177 M01S00176.comcsnf +++| ZR X1,SNF3 IF *SCR* ALREADY HAS ITS OWN FNT NAME 00178 M01S00177.comcsnf +++| RENAME SCR,SCR1,R 00179 M01S00178.comcsnf +++| SNF3 SA2 INPF CHECK FOR DATA READ 00180 M01S00179.comcsnf +++| SA1 X2+2 IN 00181 M01S00180.comcsnf +++| SA3 A1+B1 OUT 00182 M01S00181.comcsnf +++| IX0 X1-X3 00183 M01S00182.comcsnf +++| ZR X0,SNF4 IF NO DATA READ 00184 M01S00183.comcsnf +++| RJ CEB CHECK END OF BUFFER FOR END OF LINE 00185 M01S00184.comcsnf +++| NZ X1,SNF7 IF ERROR 00186 M01S00185.comcsnf +++| RJ GLT GENERATE LINE NUMBER TABLE 00187 M01S00186.comcsnf +++| NZ X1,SNF7 IF ERROR 00188 M01S00187.comcsnf +++| RJ MER MERGE SCR1 AND I TO SCR 00189 M01S00188.comcsnf +++| WRITE SCR 00190 M01S00189.comcsnf +++| SNF4 SA2 INPF 00191 M01S00190.comcsnf +++| SA1 X2 00192 M01S00191.comcsnf +++| LX1 59-9 00193 M01S00192.comcsnf +++| PL X1,SNF1 IF NOT *EOI* ON INPUT FILE 00194 M01S00193.comcsnf +++| 00195 M01S00194.comcsnf +++|* PROCESS SORTED FILE. 00196 M01S00195.comcsnf +++| 00197 M01S00196.comcsnf +++| SA1 DRFG CHECK IF DATA WAS EVER READ 00198 M01S00197.comcsnf +++| SB2 -B1 00199 M01S00198.comcsnf +++| ZR X1,SNF7 IF EMPTY FILE 00200 M01S00199.comcsnf +++| SA1 LIMT RESTORE LIMIT IN FET 00201 M01S00200.comcsnf +++| SA2 INPF 00202 M01S00201.comcsnf +++| SA2 X2+4 00203 M01S00202.comcsnf +++| MX6 -18 00204 M01S00203.comcsnf +++| BX6 X6*X2 00205 M01S00204.comcsnf +++| BX6 X6+X1 00206 M01S00205.comcsnf +++| SA6 A2 00207 M01S00206.comcsnf +++| WRITER SCR,R 00208 M01S00207.comcsnf +++| SA1 FTYP 00209 M01S00208.comcsnf +++| ZR X1,SNF5 IF INPUT WAS DIRECT ACCESS FILE 00210 M01S00209.comcsnf +++| SA1 INPF 00211 M01S00210.comcsnf +++| SA1 X1 00212 M01S00211.comcsnf +++| RENAME X2,X1 00213 M01S00212.comcsnf +++| EQ SNF8 RETURN/REWIND FILES 00214 M01S00213.comcsnf +++| 00215 M01S00214.comcsnf +++| SNF5 REWIND X2,R COPY SCR TO INPUT 00216 M01S00215.comcsnf +++| READEI X2 00217 M01S00216.comcsnf +++| SA5 SCR1+1 00218 M01S00217.comcsnf +++| SA0 X5 00219 M01S00218.comcsnf +++| SA2 INPF 00220 M01S00219.comcsnf +++| REWIND X2,R 00221 M01S00220.comcsnf +++| SNF6 SA5 SCR1+4 00222 M01S00221.comcsnf +++| SX6 A0+B1 00223 M01S00222.comcsnf +++| IX5 X5-X6 00224 M01S00223.comcsnf +++| READW SCR,A0,X5 00225 M01S00224.comcsnf +++| SB7 A0 00226 M01S00225.comcsnf +++| SB7 B6-B7 00227 M01S00226.comcsnf +++| SA2 INPF 00228 M01S00227.comcsnf +++| BX5 X1 00229 M01S00228.comcsnf +++| WRITEW X2,A0,B7 00230 M01S00229.comcsnf +++| PL X5,SNF6 IF COPY NOT COMPLETE 00231 M01S00230.comcsnf +++| WRITER X2 EMPTY BUFFER 00232 M01S00231.comcsnf +++| EQ SNF8 RETURN/REWIND FILES 00233 M01S00232.comcsnf +++| 00234 M01S00233.comcsnf +++| SNF7 SX6 1 SET ERROR FLAG 00235 M01S00234.comcsnf +++| SA6 ERFG 00236 M01S00235.comcsnf +++| SNF8 SA2 SCR1 RESTORE FET NAMES 00237 M01S00236.comcsnf +++| BX6 X2 00238 M01S00237.comcsnf +++| SA6 SCR 00239 M01S00238.comcsnf +++| SA2 FNT2 00240 M01S00239.comcsnf +++| BX6 X2 00241 M01S00240.comcsnf +++| SA6 SCR1 00242 M01S00241.comcsnf +++| RETURN SCR,R RETURN SCRATCH FILES 00243 M01S00242.comcsnf +++| RETURN SCR1,R 00244 M01S00243.comcsnf +++| SA2 INPF REWIND SORT FILE 00245 M01S00244.comcsnf +++| REWIND X2,R 00246 M01S00245.comcsnf +++| SA1 ERFG RESTORE SAVED VALUE OF ERROR FLAG 00247 M01S00246.comcsnf +++| SNF$ IF DEF,SNF$ 00248 M01S00247.comcsnf +++| SA3 NLSF NUMBER OF LINES IN SORTED FILE 00249 M01S00248.comcsnf +++| BX6 X3 00250 M01S00249.comcsnf +++| SNF$ ENDIF 00251 M01S00250.comcsnf +++| EQ SNFX RETURN 00252 M01S00251.comcsnf +++| GLT SPACE 4,20 00253 M01S00252.comcsnf +++|** GLT - GENERATE LINE NUMBER TABLE. 00254 M01S00253.comcsnf +++|* 00255 M01S00254.comcsnf +++|* EXIT (X0) = FWA OF SORTED LINE NUMBER TABLE. 00256 M01S00255.comcsnf +++|* (X1) = 0, IF NORMAL RETURN. 00257 M01S00256.comcsnf +++|* = 1, IF ERROR RETURN. 00258 M01S00257.comcsnf +++|* (B2) = ERROR CODE, IF (X1) = 1. 00259 M01S00258.comcsnf +++|* (DRFG) = 1. 00260 M01S00259.comcsnf +++|* 00261 M01S00260.comcsnf +++|* USES X - 0, 1, 2, 3, 5, 6, 7. 00262 M01S00261.comcsnf +++|* A - 1, 2, 3, 5, 7. 00263 M01S00262.comcsnf +++|* B - 2, 3, 6, 7. 00264 M01S00263.comcsnf +++|* 00265 M01S00264.comcsnf +++|* CALLS DCP, GLN, SST=. 00266 M01S00265.comcsnf +++| 00267 M01S00266.comcsnf +++| 00268 M01S00267.comcsnf +++| GLT SUBR ENTRY/EXIT 00269 M01S00268.comcsnf +++| SA1 INPF 00270 M01S00269.comcsnf +++| SA1 X1+B1 *FIRST* 00271 M01S00270.comcsnf +++| SA2 A1+B1 *IN* 00272 M01S00271.comcsnf +++| SA3 A2+B1 *OUT* 00273 M01S00272.comcsnf +++| SA5 A3+B1 *LIMIT* 00274 M01S00273.comcsnf +++| SX0 X5 *LNT* WILL START AT *LIMIT* 00275 M01S00274.comcsnf +++| MX5 -18 00276 M01S00275.comcsnf +++| SX7 B1 00277 M01S00276.comcsnf +++| IX2 X2-X1 *IN* - *FIRST* 00278 M01S00277.comcsnf +++| SA7 DRFG SET DATA READ FLAG 00279 M01S00278.comcsnf +++| BX5 -X5*X2 NUMBER OF WORDS TO READ 00280 M01S00279.comcsnf +++| SA2 X3 READ FIRST WORD 00281 M01S00280.comcsnf +++| RJ DCP DEFINE CHARACTER SET PARAMETERS 00282 M01S00281.comcsnf +++| ZR X2,GLT9 IF NO LINE NUMBER FOUND 00283 M01S00282.comcsnf +++| BX7 X7-X7 ZERO WORD TABLE DELIMITER 00284 M01S00283.comcsnf +++| SA7 X0 00285 M01S00284.comcsnf +++| GLT1 BX1 X2 00286 M01S00285.comcsnf +++| NX6,B3 X7 (X6) = 0, (B3) = 48 00287 M01S00286.comcsnf +++| RJ GLN GET LINE NUMBER 00288 M01S00287.comcsnf +++| SB2 47 00289 M01S00288.comcsnf +++| SX7 A2 ADDRESS OF LINE 00290 M01S00289.comcsnf +++| LX6 18 POSITION LINE NUMBER 00291 M01S00290.comcsnf +++| EQ B2,B3,GLT9 IF NO LINE NUMBER 00292 M01S00291.comcsnf +++| ZR X1,GLT4 IF POSSIBLE NULL LINE 00293 M01S00292.comcsnf +++| GLT2 BX6 X6+X7 00294 M01S00293.comcsnf +++| LX7 X6,B1 LEAVE BIT 0 FOR LINE DELETE FLAG 00295 M01S00294.comcsnf +++| SA7 A7+B1 STORE TABLE ENTRY 00296 M01S00295.comcsnf +++| MX1 -12 00297 M01S00296.comcsnf +++| GLT3 BX7 -X1*X2 00298 M01S00297.comcsnf +++| SA2 A2+B1 READ NEXT WORD 00299 M01S00298.comcsnf +++| SX5 X5-1 DECREMENT NUMBER OF WORDS TO READ 00300 M01S00299.comcsnf +++| NZ X7,GLT3 IF NOT END OF LINE 00301 M01S00300.comcsnf +++| PL X5,GLT1 IF MORE WORDS TO READ 00302 M01S00301.comcsnf +++| SA7 A7+1 SET TERMINATOR ZERO WORD 00303 M01S00302.comcsnf +++| SX0 X0+1 STARTING ADDRESS OF *LNT* FOR SORT 00304 M01S00303.comcsnf +++| SB7 X0 00305 M01S00304.comcsnf +++| SX1 A7-B7 NUMBER OF ENTRIES IN *LNT* 00306 M01S00305.comcsnf +++| RJ SST= SORT TABLE 00307 M01S00306.comcsnf +++| SX1 B0 SET NO ERROR ENCOUNTERED 00308 M01S00307.comcsnf +++| SB2 B0 SET *LNT* GENERATED 00309 M01S00308.comcsnf +++| EQ GLTX RETURN 00310 M01S00309.comcsnf +++| 00311 M01S00310.comcsnf +++|* CHECK POSSIBLE LINE DELETE. 00312 M01S00311.comcsnf +++| 00313 M01S00312.comcsnf +++| GLT4 SA1 CPAR 00314 M01S00313.comcsnf +++| SA1 X1+TPAR GET CHARACTER SET PARAMETERS 00315 M01S00314.comcsnf +++| SB6 -B6 ZERO CHARACTER 00316 M01S00315.comcsnf +++| SB2 X1 BLANK CHARACTER 00317 M01S00316.comcsnf +++| SB2 -B2 00318 M01S00317.comcsnf +++| SX3 X3+B6 ADD ON CODED ZERO 00319 M01S00318.comcsnf +++| SX1 X3+B2 SUBTRACT BLANK 00320 M01S00319.comcsnf +++| SB6 -B6 RESTORE -0 00321 M01S00320.comcsnf +++| ZR X3,GLT5 IF PROBABLE LINE DELETE 00322 M01S00321.comcsnf +++| NZ X1,GLT2 IF NOT DELETE 00323 M01S00322.comcsnf +++| GLT5 SA1 CPAR 00324 M01S00323.comcsnf +++| SA3 A2+1 00325 M01S00324.comcsnf +++| SB3 B3-43 00326 M01S00325.comcsnf +++| NZ X1,GLT7 IF ASCII8 CODE SET 00327 M01S00326.comcsnf +++| GLT6 SB3 B3+5 SET TO CHECK NINE AND TEN DIGITS 00328 M01S00327.comcsnf +++| SX1 X1-2 00329 M01S00328.comcsnf +++| GLT7 GE B3,B1,GLT8 IF < 9 OR < 4 00330 M01S00329.comcsnf +++| ZR X3,GLT8 IF EOL FOUND 00331 M01S00330.comcsnf +++| ZR B3,GLT2 IF EXACTLY 9 OR 4 00332 M01S00331.comcsnf +++| LX3 X3,B7 00333 M01S00332.comcsnf +++| SX3 X3+B2 COMPARE TO BLANK 00334 M01S00333.comcsnf +++| ZR X3,GLT8 IF LINE DELETE 00335 M01S00334.comcsnf +++| SA3 A3+1 00336 M01S00335.comcsnf +++| PL X1,GLT6 IF ASCII8 00337 M01S00336.comcsnf +++| EQ GLT2 NOT LINE DELETE 00338 M01S00337.comcsnf +++| 00339 M01S00338.comcsnf +++| GLT8 MX1 1 SET DELETE FLAG 00340 M01S00339.comcsnf +++| BX6 X6+X1 00341 M01S00340.comcsnf +++| EQ GLT2 LOOP TO BUILD ENTRY 00342 M01S00341.comcsnf +++| 00343 M01S00342.comcsnf +++|* ERROR EXITS. 00344 M01S00343.comcsnf +++| 00345 M01S00344.comcsnf +++| GLT9 SX1 B1 SET UP ERROR RETURN 00346 M01S00345.comcsnf +++| SB2 B0 NO LINE NUMBER ERROR CODE 00347 M01S00346.comcsnf +++| EQ GLT RETURN 00348 M01S00347.comcsnf +++| EQ GLTX RETURN 00349 M01S00348.comcsnf +++| SPACE 4,10 00350 M01S00349.comcsnf +++|** CEB - CHECK END OF BUFFER FOR END OF LINE. 00351 M01S00350.comcsnf +++|* 00352 M01S00351.comcsnf +++|* *CEB* STORES THE ADDRESS OF A PARTIAL LINE ( IF ONE WAS 00353 M01S00352.comcsnf +++|* LEFT IN THE I/O BUFFER WHEN THE LAST SEGMENT WAS READ) 00354 M01S00353.comcsnf +++|* IN *PLAD* AND RESETS *IN* TO KEEP THE PARTIAL LINE 00355 M01S00354.comcsnf +++|* FROM BEING SEEN BY *GLT* AND *MER*. *SNF* WILL MOVE THE 00356 M01S00355.comcsnf +++|* PARTIAL LINE TO THE TOP OF THE BUFFER BEFORE THE NEXT 00357 M01S00356.comcsnf +++|* READ AND RESET THE FET POINTERS. IN ADDITION *CEB* MAKES 00358 M01S00357.comcsnf +++|* SURE THAT THERE WILL BE AT LEAST 101B WORDS OF ROOM LEFT IN 00359 M01S00358.comcsnf +++|* THE BUFFER ONCE THE PARTIAL LINE IS MOVED TO THE TOP OF 00360 M01S00359.comcsnf +++|* THE BUFFER TO ALLOW AT LEAST ONE PRU TO BE READ IN. 00361 M01S00360.comcsnf +++|* 00362 M01S00361.comcsnf +++|* EXIT (PLAD) = ADDRESS OF PARTIAL LINE. 00363 M01S00362.comcsnf +++|* (PLWC) = NUMBER OF WORDS IN PARTIAL LINE. 00364 M01S00363.comcsnf +++|* (X1) = 0 IF NO ERROR. 00365 M01S00364.comcsnf +++|* (X1) = 1 IF NOT ENOUGH BUFFER SPACE AVAILABLE. 00366 M01S00365.comcsnf +++|* (B2) = 2 IF NOT ENOUGH BUFFER SPACE AVAILABLE. 00367 M01S00366.comcsnf +++|* 00368 M01S00367.comcsnf +++|* USES X - ALL. 00369 M01S00368.comcsnf +++|* A - 2, 3, 4, 5, 7. 00370 M01S00369.comcsnf +++|* B - 2, 3 ,4, 5 00371 M01S00370.comcsnf +++|* 00372 M01S00371.comcsnf +++|* MACROS RECALL. 00373 M01S00372.comcsnf +++| 00374 M01S00373.comcsnf +++| CEB2 SX7 B3+B1 00375 M01S00374.comcsnf +++| SA7 A4 RESET *IN* TO EXCLUDE PARTIAL LINE 00376 M01S00375.comcsnf +++| SA7 PLAD STORE ADDRESS OF PARTIAL LINE 00377 M01S00376.comcsnf +++| CEB3 SX7 B5 00378 M01S00377.comcsnf +++| SA7 PLWC STORE NUMBER OF WORDS 00379 M01S00378.comcsnf +++| BX1 X1-X1 CLEAR ERROR FLAG 00380 M01S00379.comcsnf +++| 00381 M01S00380.comcsnf +++| CEB SUBR ENTRY/EXIT 00382 M01S00381.comcsnf +++| SA2 INPF 00383 M01S00382.comcsnf +++| RECALL X2 00384 M01S00383.comcsnf +++| SB5 B0 START NUMBER OF WORDS AT ZERO 00385 M01S00384.comcsnf +++| SA2 X2 00386 M01S00385.comcsnf +++| LX2 59-9 00387 M01S00386.comcsnf +++| SA3 A2+B1 *FIRST* 00388 M01S00387.comcsnf +++| NG X2,CEB3 IF EOI ENCOUNTERED 00389 M01S00388.comcsnf +++| SA4 A3+1 *IN* 00390 M01S00389.comcsnf +++| SA5 A2+4 *LIMIT* 00391 M01S00390.comcsnf +++| IX0 X5-X3 *LIMIT*-*FIRST* 00392 M01S00391.comcsnf +++| MX2 -12 00393 M01S00392.comcsnf +++| SB4 X0-101B NUMBER OF WORDS THAT CAN BE READ 00394 M01S00393.comcsnf +++| SB3 X4-1 00395 M01S00394.comcsnf +++| CEB1 SA3 B3 GET WORD FROM END OF DATA 00396 M01S00395.comcsnf +++| BX6 -X2*X3 00397 M01S00396.comcsnf +++| ZR X6,CEB2 IF *EOL* FOUND 00398 M01S00397.comcsnf +++| SB3 B3-B1 00399 M01S00398.comcsnf +++| SB5 B5+B1 INCREMENT NUMBER OF WORDS READ 00400 M01S00399.comcsnf +++| LE B5,B4,CEB1 IF MORE WORDS CAN BE READ 00401 M01S00400.comcsnf +++| SB2 B1+B1 SET ERROR CODE FOR NOT ENOUGH BUFFER SPACE 00402 M01S00401.comcsnf +++| SX1 B1 SET ERROR FLAG 00403 M01S00402.comcsnf +++| EQ CEBX RETURN 00404 M01S00403.comcsnf +++| DCP SPACE 4,20 00405 M01S00404.comcsnf +++|** DCP - DEFINE CHARACTER PARAMETERS. 00406 M01S00405.comcsnf +++|* DETERMINE CHARACTER SET OF INPUT FILE AND SET 00407 M01S00406.comcsnf +++|* UP PARAMETERS ACCORDINGLY. 00408 M01S00407.comcsnf +++|* 00409 M01S00408.comcsnf +++|* ENTRY (X2) = FIRST WORD OF INPUT BUFFER. 00410 M01S00409.comcsnf +++|* (CPAR) = -1, CHARACTER SET TO BE DETERMINED. 00411 M01S00410.comcsnf +++|* = 0, CHARACTER SET = 6/12 DISPLAY CODE. 00412 M01S00411.comcsnf +++|* = 1, CHARACTER SET = ASCII8. 00413 M01S00412.comcsnf +++|* 00414 M01S00413.comcsnf +++|* EXIT (X2) = NON ZERO IF NORMAL RETURN. 00415 M01S00414.comcsnf +++|* 0, IF ERROR RETURN. 00416 M01S00415.comcsnf +++|* (X4) = CHARACTER MASK. 00417 M01S00416.comcsnf +++|* (B4) = 48 - NDIG - 1. 00418 M01S00417.comcsnf +++|* (B5) = -(FIRST NON-NUMERIC CHARACTER). 00419 M01S00418.comcsnf +++|* (B6) = -(FIRST NUMERIC CHARACTER). 00420 M01S00419.comcsnf +++|* (B7) = SHIFT COUNT. 00421 M01S00420.comcsnf +++|* 00422 M01S00421.comcsnf +++|* USES X - 1, 2, 4, 7. 00423 M01S00422.comcsnf +++|* A - 1, 7. 00424 M01S00423.comcsnf +++|* B - 3, 4, 5, 6, 7. 00425 M01S00424.comcsnf +++| 00426 M01S00425.comcsnf +++| 00427 M01S00426.comcsnf +++| DCP4 SA1 X1+TPAR GET PARAMETER WORD 00428 M01S00427.comcsnf +++| AX1 18 GET ZERO CHARACTER 00429 M01S00428.comcsnf +++| SB6 X1 00430 M01S00429.comcsnf +++| SB6 -B6 00431 M01S00430.comcsnf +++| AX1 18 00432 M01S00431.comcsnf +++| SB5 B6-10 GET FIRST NON-NUMERIC 00433 M01S00432.comcsnf +++| SX4 X1 GET CHARACTER MASK 00434 M01S00433.comcsnf +++| AX1 18 00435 M01S00434.comcsnf +++| SB7 X1 GET SHIFT COUNT 00436 M01S00435.comcsnf +++| SA1 NDIG SET UP CHARACTER COUNT CONSTANT 00437 M01S00436.comcsnf +++| SB4 X1+B1 00438 M01S00437.comcsnf +++| SB3 48 00439 M01S00438.comcsnf +++| SX1 B0 00440 M01S00439.comcsnf +++| SB4 B3-B4 00441 M01S00440.comcsnf +++| 00442 M01S00441.comcsnf +++| DCP SUBR ENTRY/EXIT 00443 M01S00442.comcsnf +++| SA1 CPAR CHECK CHARACTER SET 00444 M01S00443.comcsnf +++| PL X1,DCP4 IF ALREADY DETERMINED 00445 M01S00444.comcsnf +++| 00446 M01S00445.comcsnf +++|* CHECK IF 6/12 DISPLAY CODE. 00447 M01S00446.comcsnf +++| 00448 M01S00447.comcsnf +++| LX2 6 00449 M01S00448.comcsnf +++| MX4 -6 00450 M01S00449.comcsnf +++| BX4 -X4*X2 FIRST CHARACTER 00451 M01S00450.comcsnf +++| LX2 6 00452 M01S00451.comcsnf +++| SX4 X4-33B 00453 M01S00452.comcsnf +++| NG X4,DCP1 IF ALPHABETIC 00454 M01S00453.comcsnf +++| SX4 X4-10 00455 M01S00454.comcsnf +++| PL X4,DCP1 IF NON-NUMERIC 00456 M01S00455.comcsnf +++| LX2 -12 00457 M01S00456.comcsnf +++| SX1 B0 SET 6/12 DISPLAY CODE FLAG VALUE 00458 M01S00457.comcsnf +++| EQ DCP2 COMPLETE PARAMETER SETUP 00459 M01S00458.comcsnf +++| 00460 M01S00459.comcsnf +++|* CHECK IF ASCII8. 00461 M01S00460.comcsnf +++| 00462 M01S00461.comcsnf +++| DCP1 MX4 -12 00463 M01S00462.comcsnf +++| BX4 -X4*X2 FIRST CHARACTER 00464 M01S00463.comcsnf +++| SX1 B1 SET ASCII8 FLAG VALUE 00465 M01S00464.comcsnf +++| LX2 -12 00466 M01S00465.comcsnf +++| SX4 X4-60B 00467 M01S00466.comcsnf +++| NG X4,DCP3 IF NOT NUMERIC 00468 M01S00467.comcsnf +++| SX4 X4-10 00469 M01S00468.comcsnf +++| PL X4,DCP3 IF NOT NUMERIC 00470 M01S00469.comcsnf +++| DCP2 BX7 X1 00471 M01S00470.comcsnf +++| SA7 A1 CHARACTER SET FLAG 00472 M01S00471.comcsnf +++| EQ DCP4 SET UP PARAMETERS 00473 M01S00472.comcsnf +++| 00474 M01S00473.comcsnf +++| DCP3 SX2 B0+ SET ERROR EXIT 00475 M01S00474.comcsnf +++| EQ DCPX RETURN 00476 M01S00475.comcsnf +++| GLN SPACE 4,20 00477 M01S00476.comcsnf +++|** GLN - GET LINE NUMBER. 00478 M01S00477.comcsnf +++|* 00479 M01S00478.comcsnf +++|* ENTRY (X1) = (X2) = FIRST WORD OF LINE. 00480 M01S00479.comcsnf +++|* (X4) = CHARACTER MASK. 00481 M01S00480.comcsnf +++|* (X6) = ZERO. 00482 M01S00481.comcsnf +++|* (A2) = ADDRESS FIRST WORD OF LINE. 00483 M01S00482.comcsnf +++|* (B3) = 48. 00484 M01S00483.comcsnf +++|* (B4) = 48 - NDIG - 1. 00485 M01S00484.comcsnf +++|* (B5) = -(FIRST NON-NUMERIC). 00486 M01S00485.comcsnf +++|* (B6) = -(ZERO CHARACTER). 00487 M01S00486.comcsnf +++|* (B7) = SHIFT COUNT. 00488 M01S00487.comcsnf +++|* 00489 M01S00488.comcsnf +++|* EXIT (X1) = DATA FOLLOWING LINE NUMBER. 00490 M01S00489.comcsnf +++|* (X6) = PSEUDO-HEX LINE NUMBER. 00491 M01S00490.comcsnf +++|* 00492 M01S00491.comcsnf +++|* USES X - 1, 3, 6, 7. 00493 M01S00492.comcsnf +++|* A - 1, 3. 00494 M01S00493.comcsnf +++|* B - 2, 3. 00495 M01S00494.comcsnf +++| 00496 M01S00495.comcsnf +++| 00497 M01S00496.comcsnf +++| GLN SUBR ENTRY/EXIT 00498 M01S00497.comcsnf +++| GLN1 LX1 B7 00499 M01S00498.comcsnf +++| BX3 X4*X1 GET NEXT CHARACTER 00500 M01S00499.comcsnf +++| SX7 X3+B5 SUBTRACT FIRST NON-DIGIT 00501 M01S00500.comcsnf +++| BX1 -X4*X1 CLEAR CHARACTER BEING PROCESSED 00502 M01S00501.comcsnf +++| SX3 X3+B6 SUBTRACT ZERO CHARACTER 00503 M01S00502.comcsnf +++| BX7 -X7+X3 00504 M01S00503.comcsnf +++| SB3 B3-1 00505 M01S00504.comcsnf +++| NG X7,GLNX IF NOT NUMERIC 00506 M01S00505.comcsnf +++| EQ B3,B4,GLNX IF MAXIMUM NUMBER OF DIGITS PROCESSED 00507 M01S00506.comcsnf +++| LX6 4 00508 M01S00507.comcsnf +++| IX6 X6+X3 ACCUMULATE DIGIT 00509 M01S00508.comcsnf +++| NZ X1,GLN1 IF WORD NOT USED NOT UP 00510 M01S00509.comcsnf +++| SA3 CPAR 00511 M01S00510.comcsnf +++| ZR X3,GLN1 IF NOT ASCII8 00512 M01S00511.comcsnf +++| SB2 B3-43 00513 M01S00512.comcsnf +++| NZ B2,GLN1 IF NOT EXACTLY FIVE DIGITS PROCESSED 00514 M01S00513.comcsnf +++| SA1 A2+1 00515 M01S00514.comcsnf +++| EQ GLN1 CONTINUE PROCESSING 00516 M01S00515.comcsnf +++| MER SPACE 4,15 00517 M01S00516.comcsnf +++|** MER - MERGE LAST SORTED SEGMENT WITH NEW INPUT USING DATA 00518 M01S00517.comcsnf +++|* FROM LINE NUMBER TABLE TO WRITE TO SCR. 00519 M01S00518.comcsnf +++|* 00520 M01S00519.comcsnf +++|* ENTRY (X0) = FWA LINE NUMBER TABLE. 00521 M01S00520.comcsnf +++|* (LAST) = LAST LINE NUMBER FROM PREVIOUS SEGMENT. 00522 M01S00521.comcsnf +++|* 00523 M01S00522.comcsnf +++|* EXIT SEGMENTS MERGED ONTO SCR. 00524 M01S00523.comcsnf +++|* 00525 M01S00524.comcsnf +++|* USES X - ALL. 00526 M01S00525.comcsnf +++|* A - ALL. 00527 M01S00526.comcsnf +++|* B - 2, 3, 7. 00528 M01S00527.comcsnf +++|* 00529 M01S00528.comcsnf +++|* CALLS DCP, GLN. 00530 M01S00529.comcsnf +++|* 00531 M01S00530.comcsnf +++|* MACROS READ, READC, REWIND, WRITEC, WRITER, WRITEW. 00532 M01S00531.comcsnf +++| 00533 M01S00532.comcsnf +++| 00534 M01S00533.comcsnf +++| MER SUBR ENTRY/EXIT 00535 M01S00534.comcsnf +++| SA5 X0 FIRST ENTRY IN LINE NUMBER TABLE 00536 M01S00535.comcsnf +++| LX5 59-0 00537 M01S00536.comcsnf +++| SA1 LAST GET LAST LINE NUMBER OF PREVIOUS SEGMENT 00538 M01S00537.comcsnf +++| SA0 X5 (A0) = BUFFER ADDRESS OF LINE M 00539 M01S00538.comcsnf +++| MX7 1 00540 M01S00539.comcsnf +++| PL X5,MER1 IF NOT NULL LINE 00541 M01S00540.comcsnf +++| SA0 -1 LINE DELETE FLAG 00542 M01S00541.comcsnf +++| BX5 X7-X5 CLEAR LINE DELETE FLAG 00543 M01S00542.comcsnf +++| MER1 AX5 18 (X5) = M, LINE NUMBER ON MERGE SEGMENT 00544 M01S00543.comcsnf +++| IX0 X1-X5 00545 M01S00544.comcsnf +++| NG X0,MER18 IF NO OVERLAP OF FILES 00546 M01S00545.comcsnf +++| WRITER SCR EMPTY SCR BUFFER 00547 M01S00546.comcsnf +++| REWIND X2,R 00548 M01S00547.comcsnf +++| SA3 FNT2 00549 M01S00548.comcsnf +++| BX6 X3 00550 M01S00549.comcsnf +++| SA6 X2 SCR FNT NAME SCR1 00551 M01S00550.comcsnf +++| SA3 SCR1+B1 SET IN=OUT=FIRST FOR SCR1 00552 M01S00551.comcsnf +++| SX6 X3 00553 M01S00552.comcsnf +++| SA6 A3+B1 00554 M01S00553.comcsnf +++| SA6 A6+B1 00555 M01S00554.comcsnf +++| READ A3-B1 READ SCR1, OLD FILE SEGMENT 00556 M01S00555.comcsnf +++| 00557 M01S00556.comcsnf +++|* GET LINE NUMBER S FROM SCR1 AND WRITE LINE TO WKST. 00558 M01S00557.comcsnf +++| 00559 M01S00558.comcsnf +++| MER2 SX7 B0+ CLEAR LONG LINE FLAG 00560 M01S00559.comcsnf +++| SA7 LLFG 00561 M01S00560.comcsnf +++| READC SCR1,WKST,WKSTL 00562 M01S00561.comcsnf +++| NZ X1,MER17 IF EOR ON SCR1 00563 M01S00562.comcsnf +++| MX7 -12 00564 M01S00563.comcsnf +++| BX7 -X7*X4 00565 M01S00564.comcsnf +++| ZR X7,MER3 IF LINE FIT INTO *WKST* 00566 M01S00565.comcsnf +++| SA7 LLFG SET LONG LINE FLAG TO TRUE 00567 M01S00566.comcsnf +++| BX7 X4 REPLACE FORCED *EOL* WORD 00568 M01S00567.comcsnf +++| SA7 WKST+WKSTL-1 00569 M01S00568.comcsnf +++| MER3 RJ DCP DEFINE CHARACTER PARAMETERS 00570 M01S00569.comcsnf +++| SA2 WKST GET LINE NUMBER S 00571 M01S00570.comcsnf +++| NX6,B3 X1 (X6) = 0, (B3) = 48 00572 M01S00571.comcsnf +++| BX1 X2 00573 M01S00572.comcsnf +++| RJ GLN 00574 M01S00573.comcsnf +++| MER4 IX0 X5-X6 M - S 00575 M01S00574.comcsnf +++| NG X0,MER9 IF M .LT. S 00576 M01S00575.comcsnf +++| NZ X0,MER6 IF M .NE. S 00577 M01S00576.comcsnf +++| SNF$ IF DEF,SNF$ 00578 M01S00577.comcsnf +++| SA1 NLSF DECREMENT NUMBER OF SORTED LINES 00579 M01S00578.comcsnf +++| SX7 X1-1 00580 M01S00579.comcsnf +++| SA7 A1+ 00581 M01S00580.comcsnf +++| SNF$ ENDIF 00582 M01S00581.comcsnf +++| SA1 LLFG 00583 M01S00582.comcsnf +++| ZR X1,MER2 IF (M=S) .AND. *LLFG* IS FALSE 00584 M01S00583.comcsnf +++| MER5 READC SCR1,WKST,WKSTL CLEAR OUT REST OF LINE 00585 M01S00584.comcsnf +++| MX7 -12 00586 M01S00585.comcsnf +++| BX6 -X7*X4 00587 M01S00586.comcsnf +++| NZ X6,MER5 IF *EOL* NOT YET REACHED 00588 M01S00587.comcsnf +++| EQ MER2 PROCESS NEXT LINE 00589 M01S00588.comcsnf +++| 00590 M01S00589.comcsnf +++| MER6 SA3 LAST LAST LINE NUMBER 00591 M01S00590.comcsnf +++| IX0 X3-X5 00592 M01S00591.comcsnf +++| NG X0,MER12 IF M .GT. *LAST* S 00593 M01S00592.comcsnf +++| SA1 LLFG 00594 M01S00593.comcsnf +++| ZR X1,MER8 IF LINE WAS NOT TOO LONG 00595 M01S00594.comcsnf +++| MER7 WRITEW SCR,WKST,WKSTL TRANSFER LINE SO FAR 00596 M01S00595.comcsnf +++| READC SCR1,WKST,WKSTL 00597 M01S00596.comcsnf +++| MX7 -12 00598 M01S00597.comcsnf +++| BX6 -X7*X4 00599 M01S00598.comcsnf +++| BX7 X4 REPLACE POSSIBLE FORCED *EOL* WORD 00600 M01S00599.comcsnf +++| SA7 WKST+WKSTL-1 00601 M01S00600.comcsnf +++| NZ X6,MER7 IF NOT END OF LINE 00602 M01S00601.comcsnf +++| MER8 WRITEC SCR,WKST TRANSFER LINE 00603 M01S00602.comcsnf +++| EQ MER2 PROCESS NEXT LINE 00604 M01S00603.comcsnf +++| 00605 M01S00604.comcsnf +++|* MERGE LINE M. 00606 M01S00605.comcsnf +++| 00607 M01S00606.comcsnf +++| MER9 SB2 A0 BUFFER ADDRESS FOR MERGE FILE 00608 M01S00607.comcsnf +++| BX0 X5 00609 M01S00608.comcsnf +++| SA5 A5+B1 GET NEXT M 00610 M01S00609.comcsnf +++| LX5 59-0 CHECK LINE DELETE FLAG (BIT 0) 00611 M01S00610.comcsnf +++| ZR X5,MER11 IF END OF LINE NUMBER TABLE 00612 M01S00611.comcsnf +++| SA0 X5 BUFFER ADDRESS OF LINE M 00613 M01S00612.comcsnf +++| MX7 1 00614 M01S00613.comcsnf +++| PL X5,MER10 IF NOT LINE DELETE 00615 M01S00614.comcsnf +++| SA0 -B1 00616 M01S00615.comcsnf +++| BX5 X7-X5 00617 M01S00616.comcsnf +++| MER10 AX5 18 NEXT M TO X5 00618 M01S00617.comcsnf +++| BX2 X5-X0 00619 M01S00618.comcsnf +++| ZR X2,MER9 IF SAME, DELETE EARLIER M 00620 M01S00619.comcsnf +++| NG B2,MER4 IF DELETE LINE FLAG SET 00621 M01S00620.comcsnf +++| BX0 X6 00622 M01S00621.comcsnf +++| WRITEC SCR,B2 TRANSFER LINE M TO SCR 00623 M01S00622.comcsnf +++| SNF$ IF DEF,SNF$ 00624 M01S00623.comcsnf +++| SA4 NLSF INCREMENT NUMBER OF SORTED LINES 00625 M01S00624.comcsnf +++| SX6 X4+B1 00626 M01S00625.comcsnf +++| SA6 A4 00627 M01S00626.comcsnf +++| SNF$ ENDIF 00628 M01S00627.comcsnf +++| BX6 X0 00629 M01S00628.comcsnf +++| EQ MER4 LOOP TO PROCESS NEXT M 00630 M01S00629.comcsnf +++| 00631 M01S00630.comcsnf +++|* DUMP REST OF SCR1 TO SCR. 00632 M01S00631.comcsnf +++| 00633 M01S00632.comcsnf +++| MER11 NG B2,MER12 IF NULL LINE 00634 M01S00633.comcsnf +++| WRITEC SCR,B2 WRITE LAST LINE OF LINE NUMBER TABLE 00635 M01S00634.comcsnf +++| MER12 SA1 LLFG CHECK LONG LINE FLAG 00636 M01S00635.comcsnf +++| MX0 -12 00637 M01S00636.comcsnf +++| ZR X1,MER15 IF LONG LINE FLAG FALSE 00638 M01S00637.comcsnf +++| EQ MER14 TRANSFER THE FIRST SECTION OF LONG LINE 00639 M01S00638.comcsnf +++| 00640 M01S00639.comcsnf +++| MER13 BX7 -X0*X4 00641 M01S00640.comcsnf +++| ZR X7,MER15 IF LINE FIT INTO *WKST* 00642 M01S00641.comcsnf +++| BX7 X4 REPLACE FORCED *EOL* WORD 00643 M01S00642.comcsnf +++| SA7 WKST+WKSTL-1 00644 M01S00643.comcsnf +++| MER14 WRITEW SCR,WKST,WKSTL TRANSFER THIS SECTION 00645 M01S00644.comcsnf +++| EQ MER16 READ NEXT SECTION OF LONG LINE 00646 M01S00645.comcsnf +++| 00647 M01S00646.comcsnf +++| MER15 WRITEC SCR,WKST TRANSFER LINE OR LAST PART 00648 M01S00647.comcsnf +++| MER16 READC SCR1,WKST,WKSTL 00649 M01S00648.comcsnf +++| ZR X1,MER13 IF NOT *EOR* 00650 M01S00649.comcsnf +++| 00651 M01S00650.comcsnf +++|* DUMP REST OF LINE NUMBER TABLE TO SCR AND EXIT 00652 M01S00651.comcsnf +++| 00653 M01S00652.comcsnf +++| MER17 ZR X5,MER20 IF END OF *LNT* 00654 M01S00653.comcsnf +++| MER18 SB7 A0 00655 M01S00654.comcsnf +++| BX0 X5 CHECK MERGE 00656 M01S00655.comcsnf +++| SA5 A5+B1 NEXT LINE FROM LINE NUMBER TABLE 00657 M01S00656.comcsnf +++| LX5 59-0 CHECK LINE DELETE FLAG (BIT 0) 00658 M01S00657.comcsnf +++| SA0 X5+ 00659 M01S00658.comcsnf +++| PL X5,MER19 IF NO LINE DELETE 00660 M01S00659.comcsnf +++| SA0 -1 00661 M01S00660.comcsnf +++| MX7 1 REMOVE SIGN EXTENSION 00662 M01S00661.comcsnf +++| BX5 X7-X5 00663 M01S00662.comcsnf +++| MER19 AX5 18 NEXT M TO X5 00664 M01S00663.comcsnf +++| BX3 X5-X0 00665 M01S00664.comcsnf +++| ZR X3,MER17 IF SAME LINE NUMBERS 00666 M01S00665.comcsnf +++| NG B7,MER17 IF LINE DELETE 00667 M01S00666.comcsnf +++| WRITEC SCR,B7 TRANSFER LINE M TO SCR 00668 M01S00667.comcsnf +++| SNF$ IF DEF,SNF$ 00669 M01S00668.comcsnf +++| SA4 NLSF INCREMENT NUMBER OF SORTED LINES 00670 M01S00669.comcsnf +++| SX6 X4+B1 00671 M01S00670.comcsnf +++| SA6 A4 00672 M01S00671.comcsnf +++| SNF$ ENDIF 00673 M01S00672.comcsnf +++| EQ MER17 DUMP NEXT LINE OF LINE NUMBER TABLE 00674 M01S00673.comcsnf +++| 00675 M01S00674.comcsnf +++|* EXIT 00676 M01S00675.comcsnf +++| 00677 M01S00676.comcsnf +++| MER20 BX6 X0 00678 M01S00677.comcsnf +++| SA3 LAST LAST LINE NUMBER FROM PREVIOUS SEGMENT 00679 M01S00678.comcsnf +++| IX4 X6-X3 00680 M01S00679.comcsnf +++| NG X4,MER IF LAST LINE MERGED < *LAST* 00681 M01S00680.comcsnf +++| SA6 A3+ 00682 M01S00681.comcsnf +++| EQ MERX RETURN 00683 M01S00682.comcsnf +++| ELK SPACE 4,10 00684 M01S00683.comcsnf +++| SPACE 4,10 00685 M01S00684.comcsnf +++| BASE * 00686 M01S00685.comcsnf +++| QUAL$ IF -DEF,QUAL$ 00687 M01S00686.comcsnf +++| QUAL * 00688 M01S00687.comcsnf +++| SNF EQU /COMCSNF/SNF 00689 M01S00688.comcsnf +++| QUAL$ ENDIF 00690 M01S00689.comcsnf +++| ENDX
cdc/nos2.source/opl.opl871/common/comcsnf.txt ยท Last modified: by 127.0.0.1