cdc:nos2.source:opl.opl871:common:comcsnf
Common COMCSNF
Library Member Format: MODIFY
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.comcsnf +++| CTEXT COMCSNF - SORT NUMBERED FILE. 00002 M00S00002.comcsnf +++| SPACE 4,10 00003 M00S00003.comcsnf +++| IF -DEF,QUAL$,1 00004 M00S00004.comcsnf +++| QUAL COMCSNF 00005 M00S00005.comcsnf +++| BASE D
Line S00006 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00006 M01S00006.281l803 ---|* COMMENT COPYRIGHT CONTROL DATA CORP. 1980.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00007 M01S00001.281l803 +++|* COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00008 M00S00007.comcsnf +++| SNF SPACE 4,10 00009 M00S00008.comcsnf +++|*** SNF - SORT NUMBERED FILE. 00010 M00S00009.comcsnf +++|* R. E. TATE 71/03/01. 00011 M00S00010.comcsnf +++|* W. T. SACKETT 71/03/01. 00012 M00S00011.comcsnf +++|* L. K. TUTTLE. 79/04/27. 00013 M00S00012.comcsnf +++| SPACE 4,40 00014 M00S00013.comcsnf +++|*** COMCSNF SORTS A CODED, LINE NUMBERED FILE. THE FILE 00015 M00S00014.comcsnf +++|* IS READ IN SEGMENTS. EACH SEGMENT IS SORTED AND THE RESULT 00016 M00S00015.comcsnf +++|* MERGED WITH THE PREVIOUSLY SORTED PORTION OF THE FILE. THE 00017 M00S00016.comcsnf +++|* SORT IS BASED ON THE FIRST N DIGITS OF THE LINE NUMBER FOR 00018 M00S00017.comcsnf +++|* EACH LINE. THE LINE ENTERED LAST FOR A GIVEN NUMBER IS THE 00019 M00S00018.comcsnf +++|* CORRECTION LINE TO REPLACE ANY LINE HAVING THE SAME NUMBER. 00020 M00S00019.comcsnf +++|* A LINE NUMBER FOLLOWED BY AN EMPTY LINE (CR OR ONE BLANK AND 00021 M00S00020.comcsnf +++|* CR) IS CONSIDERED A LINE DELETE. A LINE NUMBER WITH MORE 00022 M00S00021.comcsnf +++|* THAN N DIGITS IS NOT CHECKED FOR LINE DELETE. THE CHARACTER 00023 M00S00022.comcsnf +++|* SET IS DETERMINED FROM THE FIRST CHARACTER OF THE FILE IF 00024 M00S00023.comcsnf +++|* NOT PASSED IN AS A PARAMETER. IF AN ERROR CONDITION IS 00025 M00S00024.comcsnf +++|* DETECTED THE FILE IS REWOUND UNALTERED AND THE ERROR CODE 00026 M00S00025.comcsnf +++|* IS RETURNED IN B2. 00027 M00S00026.comcsnf +++|* 00028 M00S00027.comcsnf +++|* COMCSNF HAS THE ABILITY TO HANDLE THEORETICALLY IN- 00029 M00S00028.comcsnf +++|* FINITE LENGTH LINES BY PROCESSING THEM A SECTION AT A TIME. 00030 M00S00029.comcsnf +++|* THERE ARE OF COURSE PRACTICAL LIMITATIONS IMPOSED BY THE 00031 M00S00030.comcsnf +++|* LENGTH OF THE CIRCULAR I/O BUFFER. FOR MORE INFORMATION 00032 M00S00031.comcsnf +++|* ON THIS SEE ROUTINE *CEB*. ALSO PERFORMANCE WILL BE DOWN- 00033 M00S00032.comcsnf +++|* GRADED BY MANY LONG LINES. 00034 M00S00033.comcsnf +++|* 00035 M00S00034.comcsnf +++|* IF SNF$ IS DEFINED BY THE CALLING PROGRAM THEN THE 00036 M00S00035.comcsnf +++|* NUMBER OF LINES IN THE FILE AFTER SORTING WILL BE RETURNED 00037 M00S00036.comcsnf +++|* IN (X6). 00038 M00S00037.comcsnf +++| SPACE 4,10 00039 M00S00038.comcsnf +++|* DATA AND EQUIVALENCES. 00040 M00S00039.comcsnf +++| 00041 M00S00040.comcsnf +++| LIMT CON 0 00042 M00S00041.comcsnf +++| WKSTL EQU 33 WORKING STORAGE BUFFER LENGTH 00043 M00S00042.comcsnf +++| PLAD CON 0 ADDRESS OF PARTIAL LINE IN I/O BUFFER 00044 M00S00043.comcsnf +++| PLWC CON 0 NUMBER OF WORDS IN PARTIAL LINE 00045 M00S00044.comcsnf +++| FNT2 CON 0 FNT NAME FROM FET *SCR1* 00046 M00S00045.comcsnf +++| FTYP CON 0 FILE TYPE (0 = DIRECT ACCESS FILE) 00047 M00S00046.comcsnf +++| INPF CON 0 INPUT FILE FET ADDRESS 00048 M00S00047.comcsnf +++| LAST CON -1 LAST LINE ON SCR 00049 M00S00048.comcsnf +++| NDIG CON 5 NUMBER OF DIGITS TO SORT ON 00050 M00S00049.comcsnf +++| CPAR CON -1 CHARACTER SET FLAG 00051 M00S00050.comcsnf +++| DRFG CON 0 DATA READ FLAG 00052 M00S00051.comcsnf +++| LLFG CON 0 LONG LINE FLAG 00053 M00S00052.comcsnf +++| ERFG CON 0 TEMPORARY STORAGE FOR ERROR FLAG 00054 M00S00053.comcsnf +++| SNF$ IF DEF,SNF$ 00055 M00S00054.comcsnf +++| NLSF CON 0 NUMBER OF LINES IN FILE AFTER SORT 00056 M00S00055.comcsnf +++| SNF$ ENDIF 00057 M00S00056.comcsnf +++| SNF SPACE 4,10 00058 M00S00057.comcsnf +++|** TABLE OF CHARACTER SET PARAMETERS. 00059 M00S00058.comcsnf +++|* 00060 M00S00059.comcsnf +++|*T, 6/ SHIFT CNT, 18/ CHAR MASK, 18/ ZERO CHAR, 18/ BLANK CHAR.
Figure
00061 M00S00060.comcsnf +++| 00062 M00S00061.comcsnf +++| 00063 M00S00062.comcsnf +++| TPAR VFD 6/06,18/0077B,18/33B,18/55B 6/12 DISPLAY CODE 00064 M00S00063.comcsnf +++| VFD 6/12,18/7777B,18/60B,18/40B ASCII8 00065 M00S00064.comcsnf +++| WKST BSS WKSTL WORKING STORAGE FOR SCR TRANSFER TO SCR1 00066 M00S00065.comcsnf +++| SNF SPACE 4,25 00067 M00S00066.comcsnf +++|** SNF - SORT NUMBERED FILE. 00068 M00S00067.comcsnf +++|* 00069 M00S00068.comcsnf +++|* ENTRY (X1) = FILE TYPE (0=DIRECT ACCESS). 00070 M00S00069.comcsnf +++|* (X2) = ADDRESS OF FET FOR INPUT FILE. 00071 M00S00070.comcsnf +++|* (X6) = NUMBER OF DIGITS TO SORT ON. 00072 M00S00071.comcsnf +++|* (X7) = CHARACTER SET. 00073 M00S00072.comcsnf +++|* < 0, NOT DETERMINED. 00074 M00S00073.comcsnf +++|* = 0, 6/12 DISPLAY CODE. 00075 M00S00074.comcsnf +++|* = 1, ASCII8. 00076 M00S00075.comcsnf +++|* 00077 M00S00076.comcsnf +++|* EXIT (X1) = 0, SORT COMPLETE, FILE REWRITTEN. 00078 M00S00077.comcsnf +++|* = NON-ZERO, ERROR ENCOUNTERED. 00079 M00S00078.comcsnf +++|* (B2) = ERROR CODE. 00080 M00S00079.comcsnf +++|* -1, SORT FILE EMPTY. 00081 M00S00080.comcsnf +++|* 0, LINE WITHOUT LINE NUMBER ENCOUNTERED. 00082 M00S00081.comcsnf +++|* 1, DIRECT ACCESS FILE NOT IN WRITE MODE. 00083 M00S00082.comcsnf +++|* 2, NOT ENOUGH BUFFER SPACE AVAILABLE. 00084 M00S00083.comcsnf +++|* (X6) = THE NUMBER OF LINES IN THE FILE AFTER THE SORT 00085 M00S00084.comcsnf +++|* IS COMPLETE (IF SNF$ IS DEFINED). 00086 M00S00085.comcsnf +++|* 00087 M00S00086.comcsnf +++|* USES X - ALL. 00088 M00S00087.comcsnf +++|* A - ALL. 00089 M00S00088.comcsnf +++|* B - 2, 7. 00090 M00S00089.comcsnf +++|* 00091 M00S00090.comcsnf +++|* CALLS CEB, GLT, MER. 00092 M00S00091.comcsnf +++|* 00093 M00S00092.comcsnf +++|* MACROS READEI, READW, RECALL, RENAME, RETURN, REWIND, WRITE, 00094 M00S00093.comcsnf +++|* WRITER, WRITEW. 00095 M00S00094.comcsnf +++|* 00096 M00S00095.comcsnf +++|* REQUIRES COMCCIO, COMCLFM, COMCMAC, COMCRDC, COMCRDW, 00097 M00S00096.comcsnf +++|* COMCSST, COMCSYS, COMCWTC, COMCWTW. 00098 M00S00097.comcsnf +++|* 00099 M00S00098.comcsnf +++|* NOTES THE I/O BUFFER OF THE FILE TO BE SORTED IS SPLIT 00100 M00S00099.comcsnf +++|* INTO TWO SECTIONS. THE TOP SECTION IS HALF THE 00101 M00S00100.comcsnf +++|* BUFFER MINUS ONE WORD AND IS USED TO READ IN 00102 M00S00101.comcsnf +++|* LINES FROM THE SORT FILE. A LINE NUMBER TABLE WILL 00103 M00S00102.comcsnf +++|* WILL BE GENERATED IN THE BOTTOM SECTION AND 00104 M00S00103.comcsnf +++|* DUE TO OVERHEAD IN *GLT* IT HAS TO BE AT LEAST TWO 00105 M00S00104.comcsnf +++|* WORDS LONGER THAN THE TOP SECTION. ALSO THE 00106 M00S00105.comcsnf +++|* TOP SECTION MUST STILL BE AT LEAST 101B WORDS 00107 M00S00106.comcsnf +++|* TO ALLOW A PRU TO BE READ IN, SO THE MINIMUM 00108 M00S00107.comcsnf +++|* BUFFER SIZE IS 204B WORDS, AND OPTIMUM IS (200B)N +4. 00109 M00S00108.comcsnf +++| 00110 M00S00109.comcsnf +++| 00111 M00S00110.comcsnf +++| SNF SUBR ENTRY/EXIT 00112 M00S00111.comcsnf +++| 00113 M00S00112.comcsnf +++|* SAVE ENTRY PARAMETERS. 00114 M00S00113.comcsnf +++| 00115 M00S00114.comcsnf +++| SA7 CPAR CHARACTER SET 00116 M00S00115.comcsnf +++| SA6 NDIG NUMBER OF DIGITS TO SORT ON 00117 M00S00116.comcsnf +++| BX7 X1 00118 M00S00117.comcsnf +++| BX6 X2 00119 M00S00118.comcsnf +++| SA7 FTYP FILE TYPE 00120 M00S00119.comcsnf +++| SA6 INPF ADDRESS OF FET 00121 M00S00120.comcsnf +++| SA3 SCR 00122 M00S00121.comcsnf +++| SA4 SCR1 00123 M00S00122.comcsnf +++| MX1 42 MASK IN FILE NAMES 00124 M00S00123.comcsnf +++| BX6 X1*X3 00125 M00S00124.comcsnf +++| BX7 X1*X4 00126 M00S00125.comcsnf +++| SX3 B1 SET FILE NOT BUSY 00127 M00S00126.comcsnf +++| BX7 X7+X3 00128 M00S00127.comcsnf +++| BX6 X6+X3 00129 M00S00128.comcsnf +++| SA7 FNT2 STORE FILE NAMES 00130 M00S00129.comcsnf +++| SA6 A4 CHANGE *SCR1* FILE NAME 00131 M00S00130.comcsnf +++| BX6 X6-X6 INTIALIZE FLAGS AND COUNTERS 00132 M00S00131.comcsnf +++| SA6 DRFG 00133 M00S00132.comcsnf +++| SX7 -1 START LAST LINE NUMBER AT -1 00134 M00S00133.comcsnf +++| SNF$ IF DEF,SNF$ 00135 M00S00134.comcsnf +++| SA6 NLSF CLEAR NUMBER OF SORTED LINES 00136 M00S00135.comcsnf +++| SNF$ ENDIF 00137 M00S00136.comcsnf +++| SA7 LAST 00138 M00S00137.comcsnf +++| SA6 ERFG CLEAR ERROR FLAG 00139 M00S00138.comcsnf +++| REWIND X2,R REWIND SORT FILE 00140 M00S00139.comcsnf +++| REWIND SCR1,R REWIND SCR1 00141 M00S00140.comcsnf +++| REWIND SCR,R REWIND SCR 00142 M00S00141.comcsnf +++| SA2 INPF 00143 M00S00142.comcsnf +++| SA1 X2+1 FIRST 00144 M00S00143.comcsnf +++| MX6 -18 00145 M00S00144.comcsnf +++| BX1 -X6*X1 00146 M00S00145.comcsnf +++| SA3 X2+4 LIMIT 00147 M00S00146.comcsnf +++| BX7 -X6*X3 00148 M00S00147.comcsnf +++| BX6 X6*X3 00149 M00S00148.comcsnf +++| IX4 X7-X1 SIZE OF BUFFER 00150 M00S00149.comcsnf +++| SB2 B1+B1 00151 M00S00150.comcsnf +++| SX0 X4-204B CHECK FOR BUFFER .LT. 204B WORDS 00152 M00S00151.comcsnf +++| NG X0,SNF7 IF BUFFER IS .LT. 204B WORDS 00153 M00S00152.comcsnf +++| SA7 LIMT 00154 M00S00153.comcsnf +++| AX4 1 00155 M00S00154.comcsnf +++| IX4 X1+X4 NEW LIMIT 00156 M00S00155.comcsnf +++| SX4 X4-1 LEAVE TWO EXTRA WORDS FOR *LNT* OVERHEAD 00157 M00S00156.comcsnf +++| BX6 X6+X4 00158 M00S00157.comcsnf +++| SA6 A3 00159 M00S00158.comcsnf +++| EQ SNF2 BEGIN READING IN FILE 00160 M00S00159.comcsnf +++| 00161 M00S00160.comcsnf +++|* ENTER MAIN LOOP. 00162 M00S00161.comcsnf +++| 00163 M00S00162.comcsnf +++| SNF1 SA1 X2+B1 00164 M00S00163.comcsnf +++| SX6 X1 00165 M00S00164.comcsnf +++| SA6 A1+B1 RESET IN AND OUT ON INPUT FILE 00166 M00S00165.comcsnf +++| SA6 A6+B1 00167 M00S00166.comcsnf +++| SA4 PLWC CHECK FOR PARTIAL LINE 00168 M00S00167.comcsnf +++| ZR X4,SNF2 IF NO PARTIAL LINE 00169 M00S00168.comcsnf +++| SA3 PLAD 00170 M00S00169.comcsnf +++| WRITEW X2,X3,X4 MOVE PARTIAL LINE TO TOP OF BUFFER 00171 M00S00170.comcsnf +++| SNF2 READEI X2 READ NEXT SEGMENT FROM INPUT FILE 00172 M00S00171.comcsnf +++| RECALL SCR 00173 M00S00172.comcsnf +++| SA1 X2 00174 M00S00173.comcsnf +++| SA2 SCR1 00175 M00S00174.comcsnf +++| BX1 X1-X2 00176 M00S00175.comcsnf +++| AX1 18 00177 M00S00176.comcsnf +++| ZR X1,SNF3 IF *SCR* ALREADY HAS ITS OWN FNT NAME 00178 M00S00177.comcsnf +++| RENAME SCR,SCR1,R 00179 M00S00178.comcsnf +++| SNF3 SA2 INPF CHECK FOR DATA READ 00180 M00S00179.comcsnf +++| SA1 X2+2 IN 00181 M00S00180.comcsnf +++| SA3 A1+B1 OUT 00182 M00S00181.comcsnf +++| IX0 X1-X3 00183 M00S00182.comcsnf +++| ZR X0,SNF4 IF NO DATA READ 00184 M00S00183.comcsnf +++| RJ CEB CHECK END OF BUFFER FOR END OF LINE 00185 M00S00184.comcsnf +++| NZ X1,SNF7 IF ERROR 00186 M00S00185.comcsnf +++| RJ GLT GENERATE LINE NUMBER TABLE 00187 M00S00186.comcsnf +++| NZ X1,SNF7 IF ERROR 00188 M00S00187.comcsnf +++| RJ MER MERGE SCR1 AND I TO SCR 00189 M00S00188.comcsnf +++| WRITE SCR 00190 M00S00189.comcsnf +++| SNF4 SA2 INPF 00191 M00S00190.comcsnf +++| SA1 X2 00192 M00S00191.comcsnf +++| LX1 59-9 00193 M00S00192.comcsnf +++| PL X1,SNF1 IF NOT *EOI* ON INPUT FILE 00194 M00S00193.comcsnf +++| 00195 M00S00194.comcsnf +++|* PROCESS SORTED FILE. 00196 M00S00195.comcsnf +++| 00197 M00S00196.comcsnf +++| SA1 DRFG CHECK IF DATA WAS EVER READ 00198 M00S00197.comcsnf +++| SB2 -B1 00199 M00S00198.comcsnf +++| ZR X1,SNF7 IF EMPTY FILE 00200 M00S00199.comcsnf +++| SA1 LIMT RESTORE LIMIT IN FET 00201 M00S00200.comcsnf +++| SA2 INPF 00202 M00S00201.comcsnf +++| SA2 X2+4 00203 M00S00202.comcsnf +++| MX6 -18 00204 M00S00203.comcsnf +++| BX6 X6*X2 00205 M00S00204.comcsnf +++| BX6 X6+X1 00206 M00S00205.comcsnf +++| SA6 A2 00207 M00S00206.comcsnf +++| WRITER SCR,R 00208 M00S00207.comcsnf +++| SA1 FTYP 00209 M00S00208.comcsnf +++| ZR X1,SNF5 IF INPUT WAS DIRECT ACCESS FILE 00210 M00S00209.comcsnf +++| SA1 INPF 00211 M00S00210.comcsnf +++| SA1 X1 00212 M00S00211.comcsnf +++| RENAME X2,X1 00213 M00S00212.comcsnf +++| EQ SNF8 RETURN/REWIND FILES 00214 M00S00213.comcsnf +++| 00215 M00S00214.comcsnf +++| SNF5 REWIND X2,R COPY SCR TO INPUT 00216 M00S00215.comcsnf +++| READEI X2 00217 M00S00216.comcsnf +++| SA5 SCR1+1 00218 M00S00217.comcsnf +++| SA0 X5 00219 M00S00218.comcsnf +++| SA2 INPF 00220 M00S00219.comcsnf +++| REWIND X2,R 00221 M00S00220.comcsnf +++| SNF6 SA5 SCR1+4 00222 M00S00221.comcsnf +++| SX6 A0+B1 00223 M00S00222.comcsnf +++| IX5 X5-X6 00224 M00S00223.comcsnf +++| READW SCR,A0,X5 00225 M00S00224.comcsnf +++| SB7 A0 00226 M00S00225.comcsnf +++| SB7 B6-B7 00227 M00S00226.comcsnf +++| SA2 INPF 00228 M00S00227.comcsnf +++| BX5 X1 00229 M00S00228.comcsnf +++| WRITEW X2,A0,B7 00230 M00S00229.comcsnf +++| PL X5,SNF6 IF COPY NOT COMPLETE 00231 M00S00230.comcsnf +++| WRITER X2 EMPTY BUFFER 00232 M00S00231.comcsnf +++| EQ SNF8 RETURN/REWIND FILES 00233 M00S00232.comcsnf +++| 00234 M00S00233.comcsnf +++| SNF7 SX6 1 SET ERROR FLAG 00235 M00S00234.comcsnf +++| SA6 ERFG 00236 M00S00235.comcsnf +++| SNF8 SA2 SCR1 RESTORE FET NAMES 00237 M00S00236.comcsnf +++| BX6 X2 00238 M00S00237.comcsnf +++| SA6 SCR 00239 M00S00238.comcsnf +++| SA2 FNT2 00240 M00S00239.comcsnf +++| BX6 X2 00241 M00S00240.comcsnf +++| SA6 SCR1 00242 M00S00241.comcsnf +++| RETURN SCR,R RETURN SCRATCH FILES 00243 M00S00242.comcsnf +++| RETURN SCR1,R 00244 M00S00243.comcsnf +++| SA2 INPF REWIND SORT FILE 00245 M00S00244.comcsnf +++| REWIND X2,R 00246 M00S00245.comcsnf +++| SA1 ERFG RESTORE SAVED VALUE OF ERROR FLAG 00247 M00S00246.comcsnf +++| SNF$ IF DEF,SNF$ 00248 M00S00247.comcsnf +++| SA3 NLSF NUMBER OF LINES IN SORTED FILE 00249 M00S00248.comcsnf +++| BX6 X3 00250 M00S00249.comcsnf +++| SNF$ ENDIF 00251 M00S00250.comcsnf +++| EQ SNFX RETURN 00252 M00S00251.comcsnf +++| GLT SPACE 4,20 00253 M00S00252.comcsnf +++|** GLT - GENERATE LINE NUMBER TABLE. 00254 M00S00253.comcsnf +++|* 00255 M00S00254.comcsnf +++|* EXIT (X0) = FWA OF SORTED LINE NUMBER TABLE. 00256 M00S00255.comcsnf +++|* (X1) = 0, IF NORMAL RETURN. 00257 M00S00256.comcsnf +++|* = 1, IF ERROR RETURN. 00258 M00S00257.comcsnf +++|* (B2) = ERROR CODE, IF (X1) = 1. 00259 M00S00258.comcsnf +++|* (DRFG) = 1. 00260 M00S00259.comcsnf +++|* 00261 M00S00260.comcsnf +++|* USES X - 0, 1, 2, 3, 5, 6, 7. 00262 M00S00261.comcsnf +++|* A - 1, 2, 3, 5, 7. 00263 M00S00262.comcsnf +++|* B - 2, 3, 6, 7. 00264 M00S00263.comcsnf +++|* 00265 M00S00264.comcsnf +++|* CALLS DCP, GLN, SST=. 00266 M00S00265.comcsnf +++| 00267 M00S00266.comcsnf +++| 00268 M00S00267.comcsnf +++| GLT SUBR ENTRY/EXIT 00269 M00S00268.comcsnf +++| SA1 INPF 00270 M00S00269.comcsnf +++| SA1 X1+B1 *FIRST* 00271 M00S00270.comcsnf +++| SA2 A1+B1 *IN* 00272 M00S00271.comcsnf +++| SA3 A2+B1 *OUT* 00273 M00S00272.comcsnf +++| SA5 A3+B1 *LIMIT* 00274 M00S00273.comcsnf +++| SX0 X5 *LNT* WILL START AT *LIMIT* 00275 M00S00274.comcsnf +++| MX5 -18 00276 M00S00275.comcsnf +++| SX7 B1 00277 M00S00276.comcsnf +++| IX2 X2-X1 *IN* - *FIRST* 00278 M00S00277.comcsnf +++| SA7 DRFG SET DATA READ FLAG 00279 M00S00278.comcsnf +++| BX5 -X5*X2 NUMBER OF WORDS TO READ 00280 M00S00279.comcsnf +++| SA2 X3 READ FIRST WORD 00281 M00S00280.comcsnf +++| RJ DCP DEFINE CHARACTER SET PARAMETERS 00282 M00S00281.comcsnf +++| ZR X2,GLT9 IF NO LINE NUMBER FOUND 00283 M00S00282.comcsnf +++| BX7 X7-X7 ZERO WORD TABLE DELIMITER 00284 M00S00283.comcsnf +++| SA7 X0 00285 M00S00284.comcsnf +++| GLT1 BX1 X2 00286 M00S00285.comcsnf +++| NX6,B3 X7 (X6) = 0, (B3) = 48 00287 M00S00286.comcsnf +++| RJ GLN GET LINE NUMBER 00288 M00S00287.comcsnf +++| SB2 47 00289 M00S00288.comcsnf +++| SX7 A2 ADDRESS OF LINE 00290 M00S00289.comcsnf +++| LX6 18 POSITION LINE NUMBER 00291 M00S00290.comcsnf +++| EQ B2,B3,GLT9 IF NO LINE NUMBER 00292 M00S00291.comcsnf +++| ZR X1,GLT4 IF POSSIBLE NULL LINE 00293 M00S00292.comcsnf +++| GLT2 BX6 X6+X7 00294 M00S00293.comcsnf +++| LX7 X6,B1 LEAVE BIT 0 FOR LINE DELETE FLAG 00295 M00S00294.comcsnf +++| SA7 A7+B1 STORE TABLE ENTRY 00296 M00S00295.comcsnf +++| MX1 -12 00297 M00S00296.comcsnf +++| GLT3 BX7 -X1*X2 00298 M00S00297.comcsnf +++| SA2 A2+B1 READ NEXT WORD 00299 M00S00298.comcsnf +++| SX5 X5-1 DECREMENT NUMBER OF WORDS TO READ 00300 M00S00299.comcsnf +++| NZ X7,GLT3 IF NOT END OF LINE 00301 M00S00300.comcsnf +++| PL X5,GLT1 IF MORE WORDS TO READ 00302 M00S00301.comcsnf +++| SA7 A7+1 SET TERMINATOR ZERO WORD 00303 M00S00302.comcsnf +++| SX0 X0+1 STARTING ADDRESS OF *LNT* FOR SORT 00304 M00S00303.comcsnf +++| SB7 X0 00305 M00S00304.comcsnf +++| SX1 A7-B7 NUMBER OF ENTRIES IN *LNT* 00306 M00S00305.comcsnf +++| RJ SST= SORT TABLE 00307 M00S00306.comcsnf +++| SX1 B0 SET NO ERROR ENCOUNTERED 00308 M00S00307.comcsnf +++| SB2 B0 SET *LNT* GENERATED 00309 M00S00308.comcsnf +++| EQ GLTX RETURN 00310 M00S00309.comcsnf +++| 00311 M00S00310.comcsnf +++|* CHECK POSSIBLE LINE DELETE. 00312 M00S00311.comcsnf +++| 00313 M00S00312.comcsnf +++| GLT4 SA1 CPAR 00314 M00S00313.comcsnf +++| SA1 X1+TPAR GET CHARACTER SET PARAMETERS 00315 M00S00314.comcsnf +++| SB6 -B6 ZERO CHARACTER 00316 M00S00315.comcsnf +++| SB2 X1 BLANK CHARACTER 00317 M00S00316.comcsnf +++| SB2 -B2 00318 M00S00317.comcsnf +++| SX3 X3+B6 ADD ON CODED ZERO 00319 M00S00318.comcsnf +++| SX1 X3+B2 SUBTRACT BLANK 00320 M00S00319.comcsnf +++| SB6 -B6 RESTORE -0 00321 M00S00320.comcsnf +++| ZR X3,GLT5 IF PROBABLE LINE DELETE 00322 M00S00321.comcsnf +++| NZ X1,GLT2 IF NOT DELETE 00323 M00S00322.comcsnf +++| GLT5 SA1 CPAR 00324 M00S00323.comcsnf +++| SA3 A2+1 00325 M00S00324.comcsnf +++| SB3 B3-43 00326 M00S00325.comcsnf +++| NZ X1,GLT7 IF ASCII8 CODE SET 00327 M00S00326.comcsnf +++| GLT6 SB3 B3+5 SET TO CHECK NINE AND TEN DIGITS 00328 M00S00327.comcsnf +++| SX1 X1-2 00329 M00S00328.comcsnf +++| GLT7 GE B3,B1,GLT8 IF < 9 OR < 4 00330 M00S00329.comcsnf +++| ZR X3,GLT8 IF EOL FOUND 00331 M00S00330.comcsnf +++| ZR B3,GLT2 IF EXACTLY 9 OR 4 00332 M00S00331.comcsnf +++| LX3 X3,B7 00333 M00S00332.comcsnf +++| SX3 X3+B2 COMPARE TO BLANK 00334 M00S00333.comcsnf +++| ZR X3,GLT8 IF LINE DELETE 00335 M00S00334.comcsnf +++| SA3 A3+1 00336 M00S00335.comcsnf +++| PL X1,GLT6 IF ASCII8 00337 M00S00336.comcsnf +++| EQ GLT2 NOT LINE DELETE 00338 M00S00337.comcsnf +++| 00339 M00S00338.comcsnf +++| GLT8 MX1 1 SET DELETE FLAG 00340 M00S00339.comcsnf +++| BX6 X6+X1 00341 M00S00340.comcsnf +++| EQ GLT2 LOOP TO BUILD ENTRY 00342 M00S00341.comcsnf +++| 00343 M00S00342.comcsnf +++|* ERROR EXITS. 00344 M00S00343.comcsnf +++| 00345 M00S00344.comcsnf +++| GLT9 SX1 B1 SET UP ERROR RETURN 00346 M00S00345.comcsnf +++| SB2 B0 NO LINE NUMBER ERROR CODE 00347 M00S00346.comcsnf +++| EQ GLT RETURN 00348 M00S00347.comcsnf +++| EQ GLTX RETURN 00349 M00S00348.comcsnf +++| SPACE 4,10 00350 M00S00349.comcsnf +++|** CEB - CHECK END OF BUFFER FOR END OF LINE. 00351 M00S00350.comcsnf +++|* 00352 M00S00351.comcsnf +++|* *CEB* STORES THE ADDRESS OF A PARTIAL LINE ( IF ONE WAS 00353 M00S00352.comcsnf +++|* LEFT IN THE I/O BUFFER WHEN THE LAST SEGMENT WAS READ) 00354 M00S00353.comcsnf +++|* IN *PLAD* AND RESETS *IN* TO KEEP THE PARTIAL LINE 00355 M00S00354.comcsnf +++|* FROM BEING SEEN BY *GLT* AND *MER*. *SNF* WILL MOVE THE 00356 M00S00355.comcsnf +++|* PARTIAL LINE TO THE TOP OF THE BUFFER BEFORE THE NEXT 00357 M00S00356.comcsnf +++|* READ AND RESET THE FET POINTERS. IN ADDITION *CEB* MAKES 00358 M00S00357.comcsnf +++|* SURE THAT THERE WILL BE AT LEAST 101B WORDS OF ROOM LEFT IN 00359 M00S00358.comcsnf +++|* THE BUFFER ONCE THE PARTIAL LINE IS MOVED TO THE TOP OF 00360 M00S00359.comcsnf +++|* THE BUFFER TO ALLOW AT LEAST ONE PRU TO BE READ IN. 00361 M00S00360.comcsnf +++|* 00362 M00S00361.comcsnf +++|* EXIT (PLAD) = ADDRESS OF PARTIAL LINE. 00363 M00S00362.comcsnf +++|* (PLWC) = NUMBER OF WORDS IN PARTIAL LINE. 00364 M00S00363.comcsnf +++|* (X1) = 0 IF NO ERROR. 00365 M00S00364.comcsnf +++|* (X1) = 1 IF NOT ENOUGH BUFFER SPACE AVAILABLE. 00366 M00S00365.comcsnf +++|* (B2) = 2 IF NOT ENOUGH BUFFER SPACE AVAILABLE. 00367 M00S00366.comcsnf +++|* 00368 M00S00367.comcsnf +++|* USES X - ALL. 00369 M00S00368.comcsnf +++|* A - 2, 3, 4, 5, 7. 00370 M00S00369.comcsnf +++|* B - 2, 3 ,4, 5 00371 M00S00370.comcsnf +++|* 00372 M00S00371.comcsnf +++|* MACROS RECALL. 00373 M00S00372.comcsnf +++| 00374 M00S00373.comcsnf +++| CEB2 SX7 B3+B1 00375 M00S00374.comcsnf +++| SA7 A4 RESET *IN* TO EXCLUDE PARTIAL LINE 00376 M00S00375.comcsnf +++| SA7 PLAD STORE ADDRESS OF PARTIAL LINE 00377 M00S00376.comcsnf +++| CEB3 SX7 B5 00378 M00S00377.comcsnf +++| SA7 PLWC STORE NUMBER OF WORDS 00379 M00S00378.comcsnf +++| BX1 X1-X1 CLEAR ERROR FLAG 00380 M00S00379.comcsnf +++| 00381 M00S00380.comcsnf +++| CEB SUBR ENTRY/EXIT 00382 M00S00381.comcsnf +++| SA2 INPF 00383 M00S00382.comcsnf +++| RECALL X2 00384 M00S00383.comcsnf +++| SB5 B0 START NUMBER OF WORDS AT ZERO 00385 M00S00384.comcsnf +++| SA2 X2 00386 M00S00385.comcsnf +++| LX2 59-9 00387 M00S00386.comcsnf +++| SA3 A2+B1 *FIRST* 00388 M00S00387.comcsnf +++| NG X2,CEB3 IF EOI ENCOUNTERED 00389 M00S00388.comcsnf +++| SA4 A3+1 *IN* 00390 M00S00389.comcsnf +++| SA5 A2+4 *LIMIT* 00391 M00S00390.comcsnf +++| IX0 X5-X3 *LIMIT*-*FIRST* 00392 M00S00391.comcsnf +++| MX2 -12 00393 M00S00392.comcsnf +++| SB4 X0-101B NUMBER OF WORDS THAT CAN BE READ 00394 M00S00393.comcsnf +++| SB3 X4-1 00395 M00S00394.comcsnf +++| CEB1 SA3 B3 GET WORD FROM END OF DATA 00396 M00S00395.comcsnf +++| BX6 -X2*X3 00397 M00S00396.comcsnf +++| ZR X6,CEB2 IF *EOL* FOUND 00398 M00S00397.comcsnf +++| SB3 B3-B1 00399 M00S00398.comcsnf +++| SB5 B5+B1 INCREMENT NUMBER OF WORDS READ 00400 M00S00399.comcsnf +++| LE B5,B4,CEB1 IF MORE WORDS CAN BE READ 00401 M00S00400.comcsnf +++| SB2 B1+B1 SET ERROR CODE FOR NOT ENOUGH BUFFER SPACE 00402 M00S00401.comcsnf +++| SX1 B1 SET ERROR FLAG 00403 M00S00402.comcsnf +++| EQ CEBX RETURN 00404 M00S00403.comcsnf +++| DCP SPACE 4,20 00405 M00S00404.comcsnf +++|** DCP - DEFINE CHARACTER PARAMETERS. 00406 M00S00405.comcsnf +++|* DETERMINE CHARACTER SET OF INPUT FILE AND SET 00407 M00S00406.comcsnf +++|* UP PARAMETERS ACCORDINGLY. 00408 M00S00407.comcsnf +++|* 00409 M00S00408.comcsnf +++|* ENTRY (X2) = FIRST WORD OF INPUT BUFFER. 00410 M00S00409.comcsnf +++|* (CPAR) = -1, CHARACTER SET TO BE DETERMINED. 00411 M00S00410.comcsnf +++|* = 0, CHARACTER SET = 6/12 DISPLAY CODE. 00412 M00S00411.comcsnf +++|* = 1, CHARACTER SET = ASCII8. 00413 M00S00412.comcsnf +++|* 00414 M00S00413.comcsnf +++|* EXIT (X2) = NON ZERO IF NORMAL RETURN. 00415 M00S00414.comcsnf +++|* 0, IF ERROR RETURN. 00416 M00S00415.comcsnf +++|* (X4) = CHARACTER MASK. 00417 M00S00416.comcsnf +++|* (B4) = 48 - NDIG - 1. 00418 M00S00417.comcsnf +++|* (B5) = -(FIRST NON-NUMERIC CHARACTER). 00419 M00S00418.comcsnf +++|* (B6) = -(FIRST NUMERIC CHARACTER). 00420 M00S00419.comcsnf +++|* (B7) = SHIFT COUNT. 00421 M00S00420.comcsnf +++|* 00422 M00S00421.comcsnf +++|* USES X - 1, 2, 4, 7. 00423 M00S00422.comcsnf +++|* A - 1, 7. 00424 M00S00423.comcsnf +++|* B - 3, 4, 5, 6, 7. 00425 M00S00424.comcsnf +++| 00426 M00S00425.comcsnf +++| 00427 M00S00426.comcsnf +++| DCP4 SA1 X1+TPAR GET PARAMETER WORD 00428 M00S00427.comcsnf +++| AX1 18 GET ZERO CHARACTER 00429 M00S00428.comcsnf +++| SB6 X1 00430 M00S00429.comcsnf +++| SB6 -B6 00431 M00S00430.comcsnf +++| AX1 18 00432 M00S00431.comcsnf +++| SB5 B6-10 GET FIRST NON-NUMERIC 00433 M00S00432.comcsnf +++| SX4 X1 GET CHARACTER MASK 00434 M00S00433.comcsnf +++| AX1 18 00435 M00S00434.comcsnf +++| SB7 X1 GET SHIFT COUNT 00436 M00S00435.comcsnf +++| SA1 NDIG SET UP CHARACTER COUNT CONSTANT 00437 M00S00436.comcsnf +++| SB4 X1+B1 00438 M00S00437.comcsnf +++| SB3 48 00439 M00S00438.comcsnf +++| SX1 B0 00440 M00S00439.comcsnf +++| SB4 B3-B4 00441 M00S00440.comcsnf +++| 00442 M00S00441.comcsnf +++| DCP SUBR ENTRY/EXIT 00443 M00S00442.comcsnf +++| SA1 CPAR CHECK CHARACTER SET 00444 M00S00443.comcsnf +++| PL X1,DCP4 IF ALREADY DETERMINED 00445 M00S00444.comcsnf +++| 00446 M00S00445.comcsnf +++|* CHECK IF 6/12 DISPLAY CODE. 00447 M00S00446.comcsnf +++| 00448 M00S00447.comcsnf +++| LX2 6 00449 M00S00448.comcsnf +++| MX4 -6 00450 M00S00449.comcsnf +++| BX4 -X4*X2 FIRST CHARACTER 00451 M00S00450.comcsnf +++| LX2 6 00452 M00S00451.comcsnf +++| SX4 X4-33B 00453 M00S00452.comcsnf +++| NG X4,DCP1 IF ALPHABETIC 00454 M00S00453.comcsnf +++| SX4 X4-10 00455 M00S00454.comcsnf +++| PL X4,DCP1 IF NON-NUMERIC 00456 M00S00455.comcsnf +++| LX2 -12 00457 M00S00456.comcsnf +++| SX1 B0 SET 6/12 DISPLAY CODE FLAG VALUE 00458 M00S00457.comcsnf +++| EQ DCP2 COMPLETE PARAMETER SETUP 00459 M00S00458.comcsnf +++| 00460 M00S00459.comcsnf +++|* CHECK IF ASCII8. 00461 M00S00460.comcsnf +++| 00462 M00S00461.comcsnf +++| DCP1 MX4 -12 00463 M00S00462.comcsnf +++| BX4 -X4*X2 FIRST CHARACTER 00464 M00S00463.comcsnf +++| SX1 B1 SET ASCII8 FLAG VALUE 00465 M00S00464.comcsnf +++| LX2 -12 00466 M00S00465.comcsnf +++| SX4 X4-60B 00467 M00S00466.comcsnf +++| NG X4,DCP3 IF NOT NUMERIC 00468 M00S00467.comcsnf +++| SX4 X4-10 00469 M00S00468.comcsnf +++| PL X4,DCP3 IF NOT NUMERIC 00470 M00S00469.comcsnf +++| DCP2 BX7 X1 00471 M00S00470.comcsnf +++| SA7 A1 CHARACTER SET FLAG 00472 M00S00471.comcsnf +++| EQ DCP4 SET UP PARAMETERS 00473 M00S00472.comcsnf +++| 00474 M00S00473.comcsnf +++| DCP3 SX2 B0+ SET ERROR EXIT 00475 M00S00474.comcsnf +++| EQ DCPX RETURN 00476 M00S00475.comcsnf +++| GLN SPACE 4,20 00477 M00S00476.comcsnf +++|** GLN - GET LINE NUMBER. 00478 M00S00477.comcsnf +++|* 00479 M00S00478.comcsnf +++|* ENTRY (X1) = (X2) = FIRST WORD OF LINE. 00480 M00S00479.comcsnf +++|* (X4) = CHARACTER MASK. 00481 M00S00480.comcsnf +++|* (X6) = ZERO. 00482 M00S00481.comcsnf +++|* (A2) = ADDRESS FIRST WORD OF LINE. 00483 M00S00482.comcsnf +++|* (B3) = 48. 00484 M00S00483.comcsnf +++|* (B4) = 48 - NDIG - 1. 00485 M00S00484.comcsnf +++|* (B5) = -(FIRST NON-NUMERIC). 00486 M00S00485.comcsnf +++|* (B6) = -(ZERO CHARACTER). 00487 M00S00486.comcsnf +++|* (B7) = SHIFT COUNT. 00488 M00S00487.comcsnf +++|* 00489 M00S00488.comcsnf +++|* EXIT (X1) = DATA FOLLOWING LINE NUMBER. 00490 M00S00489.comcsnf +++|* (X6) = PSEUDO-HEX LINE NUMBER. 00491 M00S00490.comcsnf +++|* 00492 M00S00491.comcsnf +++|* USES X - 1, 3, 6, 7. 00493 M00S00492.comcsnf +++|* A - 1, 3. 00494 M00S00493.comcsnf +++|* B - 2, 3. 00495 M00S00494.comcsnf +++| 00496 M00S00495.comcsnf +++| 00497 M00S00496.comcsnf +++| GLN SUBR ENTRY/EXIT 00498 M00S00497.comcsnf +++| GLN1 LX1 B7 00499 M00S00498.comcsnf +++| BX3 X4*X1 GET NEXT CHARACTER 00500 M00S00499.comcsnf +++| SX7 X3+B5 SUBTRACT FIRST NON-DIGIT 00501 M00S00500.comcsnf +++| BX1 -X4*X1 CLEAR CHARACTER BEING PROCESSED 00502 M00S00501.comcsnf +++| SX3 X3+B6 SUBTRACT ZERO CHARACTER 00503 M00S00502.comcsnf +++| BX7 -X7+X3 00504 M00S00503.comcsnf +++| SB3 B3-1 00505 M00S00504.comcsnf +++| NG X7,GLNX IF NOT NUMERIC 00506 M00S00505.comcsnf +++| EQ B3,B4,GLNX IF MAXIMUM NUMBER OF DIGITS PROCESSED 00507 M00S00506.comcsnf +++| LX6 4 00508 M00S00507.comcsnf +++| IX6 X6+X3 ACCUMULATE DIGIT 00509 M00S00508.comcsnf +++| NZ X1,GLN1 IF WORD NOT USED NOT UP 00510 M00S00509.comcsnf +++| SA3 CPAR 00511 M00S00510.comcsnf +++| ZR X3,GLN1 IF NOT ASCII8 00512 M00S00511.comcsnf +++| SB2 B3-43 00513 M00S00512.comcsnf +++| NZ B2,GLN1 IF NOT EXACTLY FIVE DIGITS PROCESSED 00514 M00S00513.comcsnf +++| SA1 A2+1 00515 M00S00514.comcsnf +++| EQ GLN1 CONTINUE PROCESSING 00516 M00S00515.comcsnf +++| MER SPACE 4,15 00517 M00S00516.comcsnf +++|** MER - MERGE LAST SORTED SEGMENT WITH NEW INPUT USING DATA 00518 M00S00517.comcsnf +++|* FROM LINE NUMBER TABLE TO WRITE TO SCR. 00519 M00S00518.comcsnf +++|* 00520 M00S00519.comcsnf +++|* ENTRY (X0) = FWA LINE NUMBER TABLE. 00521 M00S00520.comcsnf +++|* (LAST) = LAST LINE NUMBER FROM PREVIOUS SEGMENT. 00522 M00S00521.comcsnf +++|* 00523 M00S00522.comcsnf +++|* EXIT SEGMENTS MERGED ONTO SCR. 00524 M00S00523.comcsnf +++|* 00525 M00S00524.comcsnf +++|* USES X - ALL. 00526 M00S00525.comcsnf +++|* A - ALL. 00527 M00S00526.comcsnf +++|* B - 2, 3, 7. 00528 M00S00527.comcsnf +++|* 00529 M00S00528.comcsnf +++|* CALLS DCP, GLN. 00530 M00S00529.comcsnf +++|* 00531 M00S00530.comcsnf +++|* MACROS READ, READC, REWIND, WRITEC, WRITER, WRITEW. 00532 M00S00531.comcsnf +++| 00533 M00S00532.comcsnf +++| 00534 M00S00533.comcsnf +++| MER SUBR ENTRY/EXIT 00535 M00S00534.comcsnf +++| SA5 X0 FIRST ENTRY IN LINE NUMBER TABLE 00536 M00S00535.comcsnf +++| LX5 59-0 00537 M00S00536.comcsnf +++| SA1 LAST GET LAST LINE NUMBER OF PREVIOUS SEGMENT 00538 M00S00537.comcsnf +++| SA0 X5 (A0) = BUFFER ADDRESS OF LINE M 00539 M00S00538.comcsnf +++| MX7 1 00540 M00S00539.comcsnf +++| PL X5,MER1 IF NOT NULL LINE 00541 M00S00540.comcsnf +++| SA0 -1 LINE DELETE FLAG 00542 M00S00541.comcsnf +++| BX5 X7-X5 CLEAR LINE DELETE FLAG 00543 M00S00542.comcsnf +++| MER1 AX5 18 (X5) = M, LINE NUMBER ON MERGE SEGMENT 00544 M00S00543.comcsnf +++| IX0 X1-X5 00545 M00S00544.comcsnf +++| NG X0,MER18 IF NO OVERLAP OF FILES 00546 M00S00545.comcsnf +++| WRITER SCR EMPTY SCR BUFFER 00547 M00S00546.comcsnf +++| REWIND X2,R 00548 M00S00547.comcsnf +++| SA3 FNT2 00549 M00S00548.comcsnf +++| BX6 X3 00550 M00S00549.comcsnf +++| SA6 X2 SCR FNT NAME SCR1 00551 M00S00550.comcsnf +++| SA3 SCR1+B1 SET IN=OUT=FIRST FOR SCR1 00552 M00S00551.comcsnf +++| SX6 X3 00553 M00S00552.comcsnf +++| SA6 A3+B1 00554 M00S00553.comcsnf +++| SA6 A6+B1 00555 M00S00554.comcsnf +++| READ A3-B1 READ SCR1, OLD FILE SEGMENT 00556 M00S00555.comcsnf +++| 00557 M00S00556.comcsnf +++|* GET LINE NUMBER S FROM SCR1 AND WRITE LINE TO WKST. 00558 M00S00557.comcsnf +++| 00559 M00S00558.comcsnf +++| MER2 SX7 B0+ CLEAR LONG LINE FLAG 00560 M00S00559.comcsnf +++| SA7 LLFG 00561 M00S00560.comcsnf +++| READC SCR1,WKST,WKSTL 00562 M00S00561.comcsnf +++| NZ X1,MER17 IF EOR ON SCR1 00563 M00S00562.comcsnf +++| MX7 -12 00564 M00S00563.comcsnf +++| BX7 -X7*X4 00565 M00S00564.comcsnf +++| ZR X7,MER3 IF LINE FIT INTO *WKST* 00566 M00S00565.comcsnf +++| SA7 LLFG SET LONG LINE FLAG TO TRUE 00567 M00S00566.comcsnf +++| BX7 X4 REPLACE FORCED *EOL* WORD 00568 M00S00567.comcsnf +++| SA7 WKST+WKSTL-1 00569 M00S00568.comcsnf +++| MER3 RJ DCP DEFINE CHARACTER PARAMETERS 00570 M00S00569.comcsnf +++| SA2 WKST GET LINE NUMBER S 00571 M00S00570.comcsnf +++| NX6,B3 X1 (X6) = 0, (B3) = 48 00572 M00S00571.comcsnf +++| BX1 X2 00573 M00S00572.comcsnf +++| RJ GLN 00574 M00S00573.comcsnf +++| MER4 IX0 X5-X6 M - S 00575 M00S00574.comcsnf +++| NG X0,MER9 IF M .LT. S 00576 M00S00575.comcsnf +++| NZ X0,MER6 IF M .NE. S 00577 M00S00576.comcsnf +++| SNF$ IF DEF,SNF$ 00578 M00S00577.comcsnf +++| SA1 NLSF DECREMENT NUMBER OF SORTED LINES 00579 M00S00578.comcsnf +++| SX7 X1-1 00580 M00S00579.comcsnf +++| SA7 A1+ 00581 M00S00580.comcsnf +++| SNF$ ENDIF 00582 M00S00581.comcsnf +++| SA1 LLFG 00583 M00S00582.comcsnf +++| ZR X1,MER2 IF (M=S) .AND. *LLFG* IS FALSE 00584 M00S00583.comcsnf +++| MER5 READC SCR1,WKST,WKSTL CLEAR OUT REST OF LINE 00585 M00S00584.comcsnf +++| MX7 -12 00586 M00S00585.comcsnf +++| BX6 -X7*X4 00587 M00S00586.comcsnf +++| NZ X6,MER5 IF *EOL* NOT YET REACHED 00588 M00S00587.comcsnf +++| EQ MER2 PROCESS NEXT LINE 00589 M00S00588.comcsnf +++| 00590 M00S00589.comcsnf +++| MER6 SA3 LAST LAST LINE NUMBER 00591 M00S00590.comcsnf +++| IX0 X3-X5 00592 M00S00591.comcsnf +++| NG X0,MER12 IF M .GT. *LAST* S 00593 M00S00592.comcsnf +++| SA1 LLFG 00594 M00S00593.comcsnf +++| ZR X1,MER8 IF LINE WAS NOT TOO LONG 00595 M00S00594.comcsnf +++| MER7 WRITEW SCR,WKST,WKSTL TRANSFER LINE SO FAR 00596 M00S00595.comcsnf +++| READC SCR1,WKST,WKSTL 00597 M00S00596.comcsnf +++| MX7 -12 00598 M00S00597.comcsnf +++| BX6 -X7*X4 00599 M00S00598.comcsnf +++| BX7 X4 REPLACE POSSIBLE FORCED *EOL* WORD 00600 M00S00599.comcsnf +++| SA7 WKST+WKSTL-1 00601 M00S00600.comcsnf +++| NZ X6,MER7 IF NOT END OF LINE 00602 M00S00601.comcsnf +++| MER8 WRITEC SCR,WKST TRANSFER LINE 00603 M00S00602.comcsnf +++| EQ MER2 PROCESS NEXT LINE 00604 M00S00603.comcsnf +++| 00605 M00S00604.comcsnf +++|* MERGE LINE M. 00606 M00S00605.comcsnf +++| 00607 M00S00606.comcsnf +++| MER9 SB2 A0 BUFFER ADDRESS FOR MERGE FILE 00608 M00S00607.comcsnf +++| BX0 X5 00609 M00S00608.comcsnf +++| SA5 A5+B1 GET NEXT M 00610 M00S00609.comcsnf +++| LX5 59-0 CHECK LINE DELETE FLAG (BIT 0) 00611 M00S00610.comcsnf +++| ZR X5,MER11 IF END OF LINE NUMBER TABLE 00612 M00S00611.comcsnf +++| SA0 X5 BUFFER ADDRESS OF LINE M 00613 M00S00612.comcsnf +++| MX7 1 00614 M00S00613.comcsnf +++| PL X5,MER10 IF NOT LINE DELETE 00615 M00S00614.comcsnf +++| SA0 -B1 00616 M00S00615.comcsnf +++| BX5 X7-X5 00617 M00S00616.comcsnf +++| MER10 AX5 18 NEXT M TO X5 00618 M00S00617.comcsnf +++| BX2 X5-X0 00619 M00S00618.comcsnf +++| ZR X2,MER9 IF SAME, DELETE EARLIER M 00620 M00S00619.comcsnf +++| NG B2,MER4 IF DELETE LINE FLAG SET 00621 M00S00620.comcsnf +++| BX0 X6 00622 M00S00621.comcsnf +++| WRITEC SCR,B2 TRANSFER LINE M TO SCR 00623 M00S00622.comcsnf +++| SNF$ IF DEF,SNF$ 00624 M00S00623.comcsnf +++| SA4 NLSF INCREMENT NUMBER OF SORTED LINES 00625 M00S00624.comcsnf +++| SX6 X4+B1 00626 M00S00625.comcsnf +++| SA6 A4 00627 M00S00626.comcsnf +++| SNF$ ENDIF 00628 M00S00627.comcsnf +++| BX6 X0 00629 M00S00628.comcsnf +++| EQ MER4 LOOP TO PROCESS NEXT M 00630 M00S00629.comcsnf +++| 00631 M00S00630.comcsnf +++|* DUMP REST OF SCR1 TO SCR. 00632 M00S00631.comcsnf +++| 00633 M00S00632.comcsnf +++| MER11 NG B2,MER12 IF NULL LINE 00634 M00S00633.comcsnf +++| WRITEC SCR,B2 WRITE LAST LINE OF LINE NUMBER TABLE 00635 M00S00634.comcsnf +++| MER12 SA1 LLFG CHECK LONG LINE FLAG 00636 M00S00635.comcsnf +++| MX0 -12 00637 M00S00636.comcsnf +++| ZR X1,MER15 IF LONG LINE FLAG FALSE 00638 M00S00637.comcsnf +++| EQ MER14 TRANSFER THE FIRST SECTION OF LONG LINE 00639 M00S00638.comcsnf +++| 00640 M00S00639.comcsnf +++| MER13 BX7 -X0*X4 00641 M00S00640.comcsnf +++| ZR X7,MER15 IF LINE FIT INTO *WKST* 00642 M00S00641.comcsnf +++| BX7 X4 REPLACE FORCED *EOL* WORD 00643 M00S00642.comcsnf +++| SA7 WKST+WKSTL-1 00644 M00S00643.comcsnf +++| MER14 WRITEW SCR,WKST,WKSTL TRANSFER THIS SECTION 00645 M00S00644.comcsnf +++| EQ MER16 READ NEXT SECTION OF LONG LINE 00646 M00S00645.comcsnf +++| 00647 M00S00646.comcsnf +++| MER15 WRITEC SCR,WKST TRANSFER LINE OR LAST PART 00648 M00S00647.comcsnf +++| MER16 READC SCR1,WKST,WKSTL 00649 M00S00648.comcsnf +++| ZR X1,MER13 IF NOT *EOR* 00650 M00S00649.comcsnf +++| 00651 M00S00650.comcsnf +++|* DUMP REST OF LINE NUMBER TABLE TO SCR AND EXIT 00652 M00S00651.comcsnf +++| 00653 M00S00652.comcsnf +++| MER17 ZR X5,MER20 IF END OF *LNT* 00654 M00S00653.comcsnf +++| MER18 SB7 A0 00655 M00S00654.comcsnf +++| BX0 X5 CHECK MERGE 00656 M00S00655.comcsnf +++| SA5 A5+B1 NEXT LINE FROM LINE NUMBER TABLE 00657 M00S00656.comcsnf +++| LX5 59-0 CHECK LINE DELETE FLAG (BIT 0) 00658 M00S00657.comcsnf +++| SA0 X5+ 00659 M00S00658.comcsnf +++| PL X5,MER19 IF NO LINE DELETE 00660 M00S00659.comcsnf +++| SA0 -1 00661 M00S00660.comcsnf +++| MX7 1 REMOVE SIGN EXTENSION 00662 M00S00661.comcsnf +++| BX5 X7-X5 00663 M00S00662.comcsnf +++| MER19 AX5 18 NEXT M TO X5 00664 M00S00663.comcsnf +++| BX3 X5-X0 00665 M00S00664.comcsnf +++| ZR X3,MER17 IF SAME LINE NUMBERS 00666 M00S00665.comcsnf +++| NG B7,MER17 IF LINE DELETE 00667 M00S00666.comcsnf +++| WRITEC SCR,B7 TRANSFER LINE M TO SCR 00668 M00S00667.comcsnf +++| SNF$ IF DEF,SNF$ 00669 M00S00668.comcsnf +++| SA4 NLSF INCREMENT NUMBER OF SORTED LINES 00670 M00S00669.comcsnf +++| SX6 X4+B1 00671 M00S00670.comcsnf +++| SA6 A4 00672 M00S00671.comcsnf +++| SNF$ ENDIF 00673 M00S00672.comcsnf +++| EQ MER17 DUMP NEXT LINE OF LINE NUMBER TABLE 00674 M00S00673.comcsnf +++| 00675 M00S00674.comcsnf +++|* EXIT 00676 M00S00675.comcsnf +++| 00677 M00S00676.comcsnf +++| MER20 BX6 X0 00678 M00S00677.comcsnf +++| SA3 LAST LAST LINE NUMBER FROM PREVIOUS SEGMENT 00679 M00S00678.comcsnf +++| IX4 X6-X3 00680 M00S00679.comcsnf +++| NG X4,MER IF LAST LINE MERGED < *LAST* 00681 M00S00680.comcsnf +++| SA6 A3+ 00682 M00S00681.comcsnf +++| EQ MERX RETURN 00683 M00S00682.comcsnf +++| ELK SPACE 4,10 00684 M00S00683.comcsnf +++| SPACE 4,10 00685 M00S00684.comcsnf +++| BASE * 00686 M00S00685.comcsnf +++| QUAL$ IF -DEF,QUAL$ 00687 M00S00686.comcsnf +++| QUAL * 00688 M00S00687.comcsnf +++| SNF EQU /COMCSNF/SNF 00689 M00S00688.comcsnf +++| QUAL$ ENDIF 00690 M00S00689.comcsnf +++| ENDX
cdc/nos2.source/opl.opl871/common/comcsnf.txt ยท Last modified: by 127.0.0.1