cdc:nos2.source:opl.opl871:deck:fsesubs
Deck FSESUBS
18 Modifications
Listing Sections
- Deck FSESUBS Start
- Deck FSESUBS Part 1 (Line 1856)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.fsesubs +++|PROC FSESUBS; 00002 M01S00002.fsesubs +++| BEGIN 00003 M01S00003.fsesubs +++| 00004 M01S00004.fsesubs +++| 00005 M01S00005.fsesubs +++|# 00006 M01S00006.fsesubs +++|*** FSESUBS -- SUBROUTINES OF FULL SCREEN EDITOR. 00007 M01S00007.fsesubs +++|*
Line S00008 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00008 M02S00008.281l803 ---|* COPYRIGHT CONTROL DATA CORPORATION, 1983. 00009 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00010 M01S00009.fsesubs +++|* 00011 M01S00010.fsesubs +++|* FSESUBS PROVIDES SUBROUTINES WHICH ARE UNIVERSAL TO THE 00012 M01S00011.fsesubs +++|* SINGLE AND MULTI-USER VERSIONS OF THE EDITOR, AND WHICH ARE 00013 M01S00012.fsesubs +++|* ALSO REGARDED AS LIKELY TO BE UNIVERSAL TO ALL OVERLAYS IF 00014 M01S00013.fsesubs +++|* THE SINGLE-USER EDITOR WERE TO BE CONVERTED INTO AN OVERLAY 00015 M01S00014.fsesubs +++|* STRUCTURE. FSESUBS SPECIFICALLY INCLUDES THE INTERFACES BY 00016 M01S00015.fsesubs +++|* WHICH THE WORKFILE MANAGER IS CALLED, AND INTERFACES FOR 00017 M01S00016.fsesubs +++|* MANAGEMENT OF THE AUDIT TRAIL AND OF INTERNAL FILE IMAGES. 00018 M01S00017.fsesubs +++|# 00019 M01S00018.fsesubs +++| 00020 M01S00019.fsesubs +++| DEF LISTCON #0#; 00021 M01S00020.fsesubs +++| 00022 M01S00021.fsesubs +++|CONTROL EJECT; # UNIVERSAL DECLARES # 00023 M01S00022.fsesubs +++| 00024 M01S00023.fsesubs +++|*IFCALL SINGLE,COMFSGL 00025 M01S00024.fsesubs +++|*IFCALL ONLY,COMFONL 00026 M01S00025.fsesubs +++|*IFCALL MULTI,COMFMLT 00027 M01S00026.fsesubs +++|*CALL COMFFSE 00028 M01S00027.fsesubs +++| 00029 M01S00028.fsesubs +++| # EXTERNAL REF'S AND DEF'S # 00030 M01S00029.fsesubs +++| 00031 M01S00030.fsesubs +++| 00032 M01S00031.fsesubs +++|CONTROL IFEQ MULTI,1; 00033 M01S00032.fsesubs +++| XREF ARRAY RENTSTK [1:MAXREENT]; # SUBROUTINE STACK # 00034 M01S00033.fsesubs +++| BEGIN 00035 M01S00034.fsesubs +++| ITEM RSTK; 00036 M01S00035.fsesubs +++| END 00037 M01S00036.fsesubs +++| XREF ITEM RSTKPTR; 00038 M01S00037.fsesubs +++|CONTROL FI; 00039 M01S00038.fsesubs +++| 00040 M01S00039.fsesubs +++|XDEF ITEM LINSIZ=BUFWIDP1; # MAX LINE SIZ IN WORDS # 00041 M01S00040.fsesubs +++| 00042 M01S00041.fsesubs +++|XDEF 00043 M01S00042.fsesubs +++| BEGIN 00044 M01S00043.fsesubs +++|*CALL COMFXSB 00045 M01S00044.fsesubs +++| END 00046 M01S00045.fsesubs +++| 00047 M01S00046.fsesubs +++|XREF 00048 M01S00047.fsesubs +++| BEGIN 00049 M01S00048.fsesubs +++|*CALL COMFXED 00050 M01S00049.fsesubs +++|*CALL COMFXSC 00051 M01S00050.fsesubs +++|*CALL COMFXTI 00052 M01S00051.fsesubs +++|*CALL COMFXFO 00053 M01S00052.fsesubs +++|*CALL COMFXVT 00054 M01S00053.fsesubs +++|*CALL COMFXWK 00055 M01S00054.fsesubs +++| PROC ZEROWD; 00056 M01S00055.fsesubs +++| PROC WRITER; 00057 M01S00056.fsesubs +++| PROC ABORT; 00058 M01S00057.fsesubs +++| PROC ENDRUN; 00059 M01S00058.fsesubs +++| PROC FASTCAI; 00060 M01S00059.fsesubs +++| PROC FASTCNI; 00061 M01S00060.fsesubs +++| FUNC LENGTH; 00062 M01S00061.fsesubs +++| PROC FASTCAO; 00063 M01S00062.fsesubs +++| PROC FASTCNO; 00064 M01S00063.fsesubs +++| PROC FASTRLC; 00065 M01S00064.fsesubs +++| FUNC FASTLNB; 00066 M01S00065.fsesubs +++| FUNC NOSWDSZ; 00067 M01S00066.fsesubs +++| PROC MOVEWD; 00068 M01S00067.fsesubs +++| FUNC LINESZ; 00069 M01S00068.fsesubs +++| FUNC MOVELN; 00070 M01S00069.fsesubs +++| CONTROL IFEQ MULTI,1; 00071 M01S00070.fsesubs +++| LABEL QQSINGLE; 00072 M01S00071.fsesubs +++| PROC VOLUNTEER; 00073 M01S00072.fsesubs +++| PROC FATALTRAP; 00074 M01S00073.fsesubs +++| PROC SMFRCL; 00075 M01S00074.fsesubs +++| PROC SMFDLY; 00076 M01S00075.fsesubs +++| CONTROL FI; 00077 M01S00076.fsesubs +++| CONTROL IFEQ SINGLE,1; 00078 M01S00077.fsesubs +++|*CALL COMFXFL 00079 M01S00078.fsesubs +++| PROC MESSAGE; 00080 M01S00079.fsesubs +++| PROC CSETA; 00081 M01S00080.fsesubs +++| PROC CSETN; 00082 M01S00081.fsesubs +++| PROC WRITEC; 00083 M01S00082.fsesubs +++| PROC READC; 00084 M01S00083.fsesubs +++| PROC EVICT; 00085 M01S00084.fsesubs +++| PROC GETJN; 00086 M01S00085.fsesubs +++| PROC RTIME; 00087 M01S00086.fsesubs +++| PROC RETERN; 00088 M01S00087.fsesubs +++| CONTROL FI; 00089 M01S00088.fsesubs +++| END # OF XREF # 00090 M01S00089.fsesubs +++| 00091 M01S00090.fsesubs +++| # COMMON DATA AREAS # 00092 M01S00091.fsesubs +++| 00093 M01S00092.fsesubs +++|*CALL COMFDS1 00094 M01S00093.fsesubs +++|*CALL COMFVD2 00095 M01S00094.fsesubs +++|*CALL COMFDS2 00096 M01S00095.fsesubs +++| 00097 M01S00096.fsesubs +++|*CALL COMFTAB 00098 M01S00097.fsesubs +++|PAGE # MINOR UTILITY ROUTINES # 00099 M01S00098.fsesubs +++| 00100 M01S00099.fsesubs +++| 00101 M01S00100.fsesubs +++|FUNC TRIMNAME(NAME) C(7); 00102 M01S00101.fsesubs +++| BEGIN 00103 M01S00102.fsesubs +++|# 00104 M01S00103.fsesubs +++|** TRIMNAME - CONVERT TRAILING BLANKS TO ZEROS. 00105 M01S00104.fsesubs +++|* 00106 M01S00105.fsesubs +++|* ENTRY (NAME) - LEFT-JUSTIFIED STRING UP TO SEVEN CHARS. 00107 M01S00106.fsesubs +++|* 00108 M01S00107.fsesubs +++|* EXIT (NAME) - CONVERTED. 00109 M01S00108.fsesubs +++|# 00110 M01S00109.fsesubs +++| ITEM NAME C(7), TMP1, NEWNAME C(7); 00111 M01S00110.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 00112 M01S00111.fsesubs +++| BEGIN 00113 M01S00112.fsesubs +++| IF C<TMP1,1>NAME EQ " " THEN C<TMP1,1>NEWNAME=0; 00114 M01S00113.fsesubs +++| ELSE C<TMP1,1>NEWNAME=C<TMP1,1>NAME; 00115 M01S00114.fsesubs +++| END 00116 M01S00115.fsesubs +++| TRIMNAME=NEWNAME; 00117 M01S00116.fsesubs +++| END 00118 M01S00117.fsesubs +++| 00119 M01S00118.fsesubs +++| 00120 M01S00119.fsesubs +++|FUNC PADNAME(NAME) C(7); 00121 M01S00120.fsesubs +++| BEGIN 00122 M01S00121.fsesubs +++|# 00123 M01S00122.fsesubs +++|** PADNAME - CONVERT TRAILING ZEROS TO BLANKS. 00124 M01S00123.fsesubs +++|* 00125 M01S00124.fsesubs +++|* ENTRY (NAME) - LEFT-JUSTIFIED STRING UP TO SEVEN CHARS. 00126 M01S00125.fsesubs +++|* 00127 M01S00126.fsesubs +++|* EXIT (NAME) - CONVERTED. 00128 M01S00127.fsesubs +++|# 00129 M01S00128.fsesubs +++| ITEM NAME C(7), TMP1, NEWNAME C(7); 00130 M01S00129.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 00131 M01S00130.fsesubs +++| BEGIN 00132 M01S00131.fsesubs +++| IF C<TMP1,1>NAME EQ 0 THEN C<TMP1,1>NEWNAME=" "; 00133 M01S00132.fsesubs +++| ELSE C<TMP1,1>NEWNAME=C<TMP1,1>NAME; 00134 M01S00133.fsesubs +++| END 00135 M01S00134.fsesubs +++| PADNAME=NEWNAME; 00136 M01S00135.fsesubs +++| END 00137 M01S00136.fsesubs +++| 00138 M01S00137.fsesubs +++| 00139 M01S00138.fsesubs +++|FUNC MIN(A1,A2); 00140 M01S00139.fsesubs +++| BEGIN 00141 M01S00140.fsesubs +++|# 00142 M01S00141.fsesubs +++|** MIN - COMPUTE LESSER OF TWO VALUES. 00143 M01S00142.fsesubs +++|* 00144 M01S00143.fsesubs +++|* ENTRY (A1) AND (A2) - VALUES TO CHOOSE. 00145 M01S00144.fsesubs +++|* 00146 M01S00145.fsesubs +++|* EXIT (MIN) - LESSER INTEGER VALUE. 00147 M01S00146.fsesubs +++|# 00148 M01S00147.fsesubs +++| ITEM A1,A2; 00149 M01S00148.fsesubs +++| IF A1 LQ A2 THEN MIN = A1; 00150 M01S00149.fsesubs +++| ELSE MIN = A2; 00151 M01S00150.fsesubs +++| END 00152 M01S00151.fsesubs +++| 00153 M01S00152.fsesubs +++|FUNC MAX(A1,A2); 00154 M01S00153.fsesubs +++| BEGIN 00155 M01S00154.fsesubs +++|# 00156 M01S00155.fsesubs +++|** MAX - COMPUTE GREATER OF TWO VALUES. 00157 M01S00156.fsesubs +++|* 00158 M01S00157.fsesubs +++|* ENTRY (A1) AND (A2) - VALUES TO CHOOSE. 00159 M01S00158.fsesubs +++|* 00160 M01S00159.fsesubs +++|* EXIT (MAX) - GREATER INTEGER VALUE. 00161 M01S00160.fsesubs +++|# 00162 M01S00161.fsesubs +++| ITEM A1,A2; 00163 M01S00162.fsesubs +++| IF A1 GQ A2 THEN MAX = A1; 00164 M01S00163.fsesubs +++| ELSE MAX = A2; 00165 M01S00164.fsesubs +++| END 00166 M01S00165.fsesubs +++| 00167 M01S00166.fsesubs +++| 00168 M01S00167.fsesubs +++|PROC PUSHTEMP; 00169 M01S00168.fsesubs +++| BEGIN 00170 M01S00169.fsesubs +++|# 00171 M01S00170.fsesubs +++|** PUSHTEMP - PRESERVE VALUE ON MISCELLANEOUS STACK. 00172 M01S00171.fsesubs +++|* 00173 M01S00172.fsesubs +++|* ENTRY (TEMP) - VALUE TO BE PRESERVED. 00174 M01S00173.fsesubs +++|* 00175 M01S00174.fsesubs +++|* EXIT DATA STACK IS PUSHED. 00176 M01S00175.fsesubs +++|* 00177 M01S00176.fsesubs +++|* USES DATAPTR, DATASTK. 00178 M01S00177.fsesubs +++|# 00179 M01S00178.fsesubs +++| IF DATAPTR GQ MAXDATA THEN 00180 M01S00179.fsesubs +++| BEGIN 00181 M01S00180.fsesubs +++| FATAL(" REENTRANT DATA STACK OVERFLOWED.$"); 00182 M01S00181.fsesubs +++| END 00183 M01S00182.fsesubs +++| DATAPTR=DATAPTR+1; 00184 M01S00183.fsesubs +++| DATASTK[DATAPTR]=TEMP; 00185 M01S00184.fsesubs +++| END # OF PUSHTEMP # 00186 M01S00185.fsesubs +++| 00187 M01S00186.fsesubs +++|PROC POPTEMP; 00188 M01S00187.fsesubs +++| BEGIN 00189 M01S00188.fsesubs +++|# 00190 M01S00189.fsesubs +++|** POPTEMP - RETREIVE VALUE FROM MISCELLANEOUS STACK. 00191 M01S00190.fsesubs +++|* 00192 M01S00191.fsesubs +++|* ENTRY DATA STACK ASSUMED TO HAVE DATA. 00193 M01S00192.fsesubs +++|* 00194 M01S00193.fsesubs +++|* EXIT (TEMP) - RETRIEVED VALUE. 00195 M01S00194.fsesubs +++|* 00196 M01S00195.fsesubs +++|* USES DATAPTR, DATASTK 00197 M01S00196.fsesubs +++|# 00198 M01S00197.fsesubs +++| IF DATAPTR LS 0 THEN FATAL(" REENTRANT DATA STACK UNDERFLOWED.$"); 00199 M01S00198.fsesubs +++| TEMP=DATASTK[DATAPTR]; 00200 M01S00199.fsesubs +++| DATAPTR=DATAPTR-1; 00201 M01S00200.fsesubs +++| END # OF POPTEMP # 00202 M01S00201.fsesubs +++| 00203 M01S00202.fsesubs +++| 00204 M01S00203.fsesubs +++|PROC STARTCMD; 00205 M01S00204.fsesubs +++| BEGIN 00206 M01S00205.fsesubs +++|# 00207 M01S00206.fsesubs +++|** STARTCMD - INITIALIZE SYNTAX SCANNER FOR NEW COMMANDS. 00208 M01S00207.fsesubs +++|* 00209 M01S00208.fsesubs +++|* ENTRY (CMDLINE) ALREADY FILLED IN WITH NEW STRING. 00210 M01S00209.fsesubs +++|* 00211 M01S00210.fsesubs +++|* EXIT (CMDLINE) TRIMMED. 00212 M01S00211.fsesubs +++|* SCANPOS, TOKENPOS, CMDMARKER, KEYWDTYPE INITIALIZED. 00213 M01S00212.fsesubs +++|* EXPANDAT INITIALIZED. 00214 M01S00213.fsesubs +++|# 00215 M01S00214.fsesubs +++| TRIM(CMDLIN,0); 00216 M01S00215.fsesubs +++| SCANPOS=0; 00217 M01S00216.fsesubs +++| TOKENPOS=0; 00218 M01S00217.fsesubs +++| CMDMARKER=0; 00219 M01S00218.fsesubs +++| KEYWDTYPE=1; 00220 M01S00219.fsesubs +++| EXPANDAT=-1; 00221 M01S00220.fsesubs +++| END # OF STARTCMD # 00222 M01S00221.fsesubs +++| 00223 M01S00222.fsesubs +++| 00224 M01S00223.fsesubs +++|FUNC TABFN(TABNUM); 00225 M01S00224.fsesubs +++| BEGIN 00226 M01S00225.fsesubs +++|# 00227 M01S00226.fsesubs +++|** TABFN - COMPUTE TAB COLUMN BY ORDINAL. 00228 M01S00227.fsesubs +++|* 00229 M01S00228.fsesubs +++|* ENTRY (TABNUM) INTEGER ORDINAL OF TAB STOP. 00230 M01S00229.fsesubs +++|* 00231 M01S00230.fsesubs +++|* EXIT (TABFN) COLUMN OFFSET. 00232 M01S00231.fsesubs +++|# 00233 M01S00232.fsesubs +++| ITEM TABNUM;
Line S00233 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00234 M02S00233.ns2129 ---| IF TABNUM LS 1 OR TABNUM GR 14 THEN TABFN=0;
Line S00234 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00235 M02S00234.ns2129 ---| ELSE IF TABNUM LQ 7 THEN TABFN=B<TABNUM*8-8,8>TABS1;
Line S00235 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00236 M02S00235.ns2129 ---| ELSE TABFN=B<TABNUM*8-64,8>TABS2; 00237 M01S00001.ns2129 +++| ITEM TMP1, TMP2; 00238 M01S00002.ns2129 +++| IF TABNUM LS 1 OR TABNUM GR TABSTOPS THEN TABFN=0; 00239 M01S00003.ns2129 +++| ELSE 00240 M01S00004.ns2129 +++| BEGIN 00241 M01S00005.ns2129 +++| TMP2=TABNUM-1; 00242 M01S00006.ns2129 +++| TMP1=TMP2/7; 00243 M01S00007.ns2129 +++| TMP2=MOD(TMP2,7); 00244 M01S00008.ns2129 +++| TABFN=B<TMP2*8,8>TABVCTWRD[TMP1+1]; 00245 M01S00009.ns2129 +++| END 00246 M01S00236.fsesubs +++| END # OF TABFN # 00247 M01S00237.fsesubs +++| 00248 M01S00238.fsesubs +++| 00249 M01S00239.fsesubs +++|PROC COPYTABS; 00250 M01S00240.fsesubs +++| IOBEGIN(COPYTABS) 00251 M01S00241.fsesubs +++|# 00252 M01S00242.fsesubs +++|** COPYTABS - COPY/CONVERT TABS, TABVECTOR->VIRTERM. 00253 M01S00243.fsesubs +++|* 00254 M01S00244.fsesubs +++|* ENTRY TABVECTOR ALREADY SET UP. 00255 M01S00245.fsesubs +++|* 00256 M01S00246.fsesubs +++|* EXIT TERMINAL CONFIGURED, VIRTERM DITTO. 00257 M01S00247.fsesubs +++|* 00258 M01S00248.fsesubs +++|* CALLS VDTCTS, VDTSTS. 00259 M01S00249.fsesubs +++|* 00260 M01S00250.fsesubs +++|* USES LINCTR, LINNUM1. 00261 M01S00251.fsesubs +++|# 00262 M01S00252.fsesubs +++| VDTCTS; # CLEAR OLD TABS # 00263 M01S00253.fsesubs +++| VDTSTS(0); # ALWAYS #
Line S00254 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00264 M02S00254.ns2129 ---| IF TABS1 EQ 0 THEN IORET 00265 M01S00010.ns2129 +++| IF TABVCTWRD[1] EQ 0 THEN IORET 00266 M01S00255.fsesubs +++| VDTSTS(TABFN(1));
Line S00256 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2129 |
Seq # *Modification Id* Act ----------------------------+ 00267 M02S00256.ns2129 ---| FOR LINCTR=2 STEP 1 UNTIL 14 DO 00268 M01S00011.ns2129 +++| FOR LINCTR=2 STEP 1 UNTIL TABSTOPS DO 00269 M01S00257.fsesubs +++| BEGIN 00270 M01S00258.fsesubs +++| LINNUM1=TABFN(LINCTR); 00271 M01S00259.fsesubs +++| IF LINNUM1 NQ 0 THEN 00272 M01S00260.fsesubs +++| BEGIN 00273 M01S00261.fsesubs +++| VDTSTS(LINNUM1); 00274 M01S00262.fsesubs +++| END 00275 M01S00263.fsesubs +++| ELSE IORET 00276 M01S00264.fsesubs +++| END 00277 M01S00265.fsesubs +++| 00278 M01S00266.fsesubs +++| IOEND # COPYTABS # 00279 M01S00267.fsesubs +++| 00280 M01S00268.fsesubs +++| 00281 M01S00269.fsesubs +++|PROC MAKEFET(AFET,NAME,BUFFER,LENGTH); 00282 M01S00270.fsesubs +++| BEGIN 00283 M01S00271.fsesubs +++|# 00284 M01S00272.fsesubs +++|** MAKEFET - INITIALIZE A FET. 00285 M01S00273.fsesubs +++|* 00286 M01S00274.fsesubs +++|* ENTRY AFET - FET TO BE INITIALIZED. 00287 M01S00275.fsesubs +++|* NAME - NAME OF FILE. 00288 M01S00276.fsesubs +++|* BUFFER - THE CIRCULAR BUFFER. 00289 M01S00277.fsesubs +++|* LENGTH - LENGTH OF CIRCULAR BUFFER. 00290 M01S00278.fsesubs +++|* 00291 M01S00279.fsesubs +++|* NOTE USES THEN RESTORES BASE ADDRESS FOR "FET" ARRAY. 00292 M01S00280.fsesubs +++|# 00293 M01S00281.fsesubs +++| ARRAY AFET;; 00294 M01S00282.fsesubs +++| ITEM NAME C(7); 00295 M01S00283.fsesubs +++| ARRAY BUFFER;; 00296 M01S00284.fsesubs +++| ITEM LENGTH; 00297 M01S00285.fsesubs +++| ITEM TMP,TMP2, NEWNAME C(7); 00298 M01S00286.fsesubs +++| 00299 M01S00287.fsesubs +++| ZEROWD(AFET,FETSIZ); 00300 M01S00288.fsesubs +++| TMP=LOC(FET); 00301 M01S00289.fsesubs +++| P<FET>=LOC(AFET); 00302 M01S00290.fsesubs +++| NEWNAME=TRIMNAME(NAME); 00303 M01S00291.fsesubs +++| FETNAM=NEWNAME; 00304 M01S00292.fsesubs +++| FETFIR=LOC(BUFFER); 00305 M01S00293.fsesubs +++| FETIN=FETFIR; 00306 M01S00294.fsesubs +++| FETOUT=FETFIR; 00307 M01S00295.fsesubs +++| FETLIM=FETFIR+LENGTH; 00308 M01S00296.fsesubs +++| IF TRIMNAME(NAME) NQ 0 THEN 00309 M01S00297.fsesubs +++| BEGIN 00310 M01S00298.fsesubs +++| FETCOD=1; 00311 M01S00299.fsesubs +++| FETL=2; 00312 M01S00300.fsesubs +++| END 00313 M01S00301.fsesubs +++| P<FET>=TMP; 00314 M01S00302.fsesubs +++| 00315 M01S00303.fsesubs +++| END # OF MAKEFET # 00316 M01S00304.fsesubs +++| 00317 M01S00305.fsesubs +++| 00318 M01S00306.fsesubs +++|PROC TTLFN(PARM); 00319 M01S00307.fsesubs +++| IOBEGIN(TTLFN) 00320 M01S00308.fsesubs +++|# 00321 M01S00309.fsesubs +++|** TTLFN - PRINT OUT A ZERO-TERMINATED NAME. 00322 M01S00310.fsesubs +++|* 00323 M01S00311.fsesubs +++|* ENTRY (PARM) - NAME TO BE PRINTED. 00324 M01S00312.fsesubs +++|* 00325 M01S00313.fsesubs +++|* CALLS TTST. 00326 M01S00314.fsesubs +++|# 00327 M01S00315.fsesubs +++| ITEM TMP1; 00328 M01S00316.fsesubs +++| ITEM PARM; 00329 M01S00317.fsesubs +++| TMP1=0; 00330 M01S00318.fsesubs +++| WHYLE C<TMP1,1>PARM NQ 0 AND TMP1 LQ 7 DO TMP1=TMP1+1; 00331 M01S00319.fsesubs +++| TTST(PARM,TMP1); 00332 M01S00001.ns2346 +++| WHYLE TMP1 LQ 7 DO 00333 M01S00002.ns2346 +++| BEGIN # WHILE NOT BLANK FILLED # 00334 M01S00003.ns2346 +++| TMP1=TMP1+1; 00335 M01S00004.ns2346 +++| TTSTR(" $"); 00336 M01S00005.ns2346 +++| END 00337 M01S00320.fsesubs +++| IOEND # OF TTLFN # 00338 M01S00321.fsesubs +++| 00339 M01S00322.fsesubs +++| 00340 M01S00323.fsesubs +++|CONTROL IFEQ SINGLE,1; 00341 M01S00324.fsesubs +++| 00342 M01S00325.fsesubs +++| PROC SETCSET(WHICH); 00343 M01S00326.fsesubs +++| BEGIN 00344 M01S00327.fsesubs +++|# 00345 M01S00328.fsesubs +++|** SETCSET - ISSUE CSET MACRO. 00346 M01S00329.fsesubs +++|* 00347 M01S00330.fsesubs +++|* ENTRY (WHICH) - INDICATES ASCII OR NORMAL. 00348 M01S00331.fsesubs +++|* 00349 M01S00332.fsesubs +++|* USES ORIGIN. 00350 M01S00333.fsesubs +++|* 00351 M01S00334.fsesubs +++|* CALLS CSETA, CSETN. 00352 M01S00335.fsesubs +++|# 00353 M01S00336.fsesubs +++| ITEM WHICH B; 00354 M01S00337.fsesubs +++| IF ORIGIN EQ TXOT THEN 00355 M01S00338.fsesubs +++| BEGIN 00356 M01S00339.fsesubs +++| IF WHICH THEN CSETA; 00357 M01S00340.fsesubs +++| ELSE CSETN; 00358 M01S00341.fsesubs +++| END 00359 M01S00342.fsesubs +++| END # OF SETCSET # 00360 M01S00343.fsesubs +++| 00361 M01S00344.fsesubs +++|CONTROL FI; 00362 M01S00345.fsesubs +++|PAGE # ABORT ROUTINES # 00363 M01S00346.fsesubs +++| 00364 M01S00347.fsesubs +++| 00365 M01S00348.fsesubs +++|PROC FATAL(STR); 00366 M01S00349.fsesubs +++| IOBEGIN(FATAL) 00367 M01S00350.fsesubs +++|# 00368 M01S00351.fsesubs +++|** FATAL - ABORT THE EDITOR WITH MESSAGE. 00369 M01S00352.fsesubs +++|* MORTAL - SIMILAR FOR PROBLEMS WITHIN TERMINAL I/O. 00370 M01S00353.fsesubs +++|* 00371 M01S00354.fsesubs +++|* FATAL IS THE PRINCIPAL ROUTINE TO ABORT AN EDIT SESSION 00372 M01S00355.fsesubs +++|* FOR EITHER AN INTERNAL INCONSISTENCY OR A USER ERROR SO 00373 M01S00356.fsesubs +++|* SEVERE THAT NO MEANINGFUL FUNCTION CAN BE SALVAGED. TO 00374 M01S00357.fsesubs +++|* PREVENT CIRCULAR (RECURSIVE) SUBROUTINE LINKAGES, THE 00375 M01S00358.fsesubs +++|* WORKIO MODULE IS RESTRICTED TO INTERFACE VIA THE TRAGIC 00376 M01S00359.fsesubs +++|* ROUTINE AND THE TERMIO MODULE IS RESTRICTED TO USE THE 00377 M01S00360.fsesubs +++|* MORTAL ENTRY POINT. 00378 M01S00361.fsesubs +++|* 00379 M01S00362.fsesubs +++|* ENTRY STR - THE ABORT MESSAGE. 00380 M01S00363.fsesubs +++|* 00381 M01S00364.fsesubs +++|* EXIT TO ABORT ROUTINE, WITH WORKFILE EVICTED. 00382 M01S00365.fsesubs +++|* 00383 M01S00366.fsesubs +++|* USES LINPTR1, P<FROM>. 00384 M01S00367.fsesubs +++|* 00385 M01S00368.fsesubs +++|* CALLS TTSTR, TTLIN, MESSAGE, TTSYNC, VDTCLO, EVICT, 00386 M01S00369.fsesubs +++|* CHECKIO, FATALTRAP. 00387 M01S00370.fsesubs +++|# 00388 M01S00371.fsesubs +++| ITEM STR C(40); 00389 M01S00372.fsesubs +++| ERRSTRING=STR; # HANDLE PARM REENTRANTLY #
Line S00373 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00390 M02S00373.v23l617 ---| IF SCREENMODE THEN CLEARSCREEN; 00391 M01S00001.v23l617 +++| CONTROL IFEQ SINGLE,1; 00392 M01S00002.v23l617 +++| IF SCREENMODE THEN CLEARSCREEN; 00393 M01S00003.v23l617 +++| CONTROL FI;
Line S00374 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00394 M02S00374.v23l617 ---| TTLIN(" INTERNAL ERROR.$"); 00395 M01S00004.v23l617 +++| TTLIN(" FSE INTERNAL ERROR.$"); 00396 M01S00375.fsesubs +++| TTLIN(ERRSTRING);
Line S00376 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | v23l617 |
Seq # *Modification Id* Act ----------------------------+ 00397 M02S00376.v23l617 ---| TTLIN(" CONTACT SITE ANALYST.$"); 00398 M01S00377.fsesubs +++| CONTROL IFEQ SINGLE,1; 00399 M01S00378.fsesubs +++| GOTO FATAL2; 00400 M01S00379.fsesubs +++| CONTROL FI; 00401 M01S00380.fsesubs +++| 00402 M01S00381.fsesubs +++|ENTRY PROC MORTAL(STR); 00403 M01S00382.fsesubs +++| 00404 M01S00383.fsesubs +++| CONTROL IFEQ SINGLE,1; 00405 M01S00384.fsesubs +++| ITEM MSGBUF C(40)=0; 00406 M01S00385.fsesubs +++| ITEM TMP1; 00407 M01S00386.fsesubs +++| ERRSTRING=STR; 00408 M01S00387.fsesubs +++|FATAL2: 00409 M01S00388.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 37 DO 00410 M01S00389.fsesubs +++| BEGIN 00411 M01S00390.fsesubs +++| IF C<TMP1,1>STR NQ "$" THEN C<TMP1,1>MSGBUF=C<TMP1,1>STR; 00412 M01S00391.fsesubs +++| ELSE TMP1=38; 00413 M01S00392.fsesubs +++| END 00414 M01S00393.fsesubs +++| MESSAGE(MSGBUF,3,1); 00415 M01S00394.fsesubs +++| TTSYNC; 00416 M01S00395.fsesubs +++| VDTCLO(0); 00417 M01S00396.fsesubs +++| EVICT(FET,1); 00418 M01S00397.fsesubs +++| ABORT; 00419 M01S00398.fsesubs +++| CONTROL FI; 00420 M01S00399.fsesubs +++| CONTROL IFEQ MULTI,1; 00421 M01S00400.fsesubs +++| IF NOT ABORTED THEN 00422 M01S00401.fsesubs +++| BEGIN 00423 M01S00402.fsesubs +++| ABORTED=TRUE; 00424 M01S00403.fsesubs +++| CHECKIO; 00425 M01S00404.fsesubs +++| END 00426 M01S00405.fsesubs +++| FATALTRAP; 00427 M01S00406.fsesubs +++| CONTROL FI; 00428 M01S00407.fsesubs +++| IOEND # OF FATAL # 00429 M01S00408.fsesubs +++| 00430 M01S00409.fsesubs +++| 00431 M01S00410.fsesubs +++|PROC TRAGIC(STR); 00432 M01S00411.fsesubs +++| IOBEGIN(TRAGIC) 00433 M01S00412.fsesubs +++|# 00434 M01S00413.fsesubs +++|** TRAGIC - ABORT EDITOR DUE TO WORKFILE PROBLEM. 00435 M01S00414.fsesubs +++|* 00436 M01S00415.fsesubs +++|* TRAGIC IS USED BY WORKIO FOR SELF-ABORT SITUATIONS. BY 00437 M01S00416.fsesubs +++|* SETTING THE "ABORTED" FLAG, WE DIRECT "FATAL" TO IMMEDIATELY 00438 M01S00417.fsesubs +++|* EVICT THE WORKFILE WITHOUT FURTHER WORKIO CALLS. 00439 M01S00418.fsesubs +++|* 00440 M01S00419.fsesubs +++|* ENTRY STR - ERROR MESSAGE. 00441 M01S00420.fsesubs +++|* 00442 M01S00421.fsesubs +++|* EXIT TO FATAL, WITH "ABORTED" SET. 00443 M01S00422.fsesubs +++|# 00444 M01S00423.fsesubs +++| ITEM STR C(80); 00445 M01S00424.fsesubs +++| ABORTED=TRUE; 00446 M01S00425.fsesubs +++| FATAL(STR); 00447 M01S00426.fsesubs +++| IOEND # OF TRAGIC # 00448 M01S00427.fsesubs +++|PAGE # SUPPORT ROUTINES FOR INTERNAL CHARSET # 00449 M01S00428.fsesubs +++| 00450 M01S00429.fsesubs +++| 00451 M01S00430.fsesubs +++|PROC COPYLIN(LIN1,LIN2); 00452 M01S00431.fsesubs +++| BEGIN 00453 M01S00432.fsesubs +++|# 00454 M01S00433.fsesubs +++|** COPYLIN - COPY LINE IMAGE, INTERNAL CHARSET. 00455 M01S00434.fsesubs +++|* 00456 M01S00435.fsesubs +++|* ENTRY LIN1 IS SOURCE, LIN2 IS TARGET. 00457 M01S00436.fsesubs +++|# 00458 M01S00437.fsesubs +++| ARRAY LIN1;; ARRAY LIN2;; 00459 M01S00438.fsesubs +++| DUMB=LINESZ(LIN1); # FIX EOL BITS # 00460 M01S00439.fsesubs +++| DUMB=MOVELN(LIN1,LIN2); # ACTUAL COPY # 00461 M01S00440.fsesubs +++| END # OF COPYLIN # 00462 M01S00441.fsesubs +++| 00463 M01S00442.fsesubs +++| 00464 M01S00443.fsesubs +++|PROC EXTENDC(TEXTLIN,X); 00465 M01S00444.fsesubs +++| BEGIN 00466 M01S00445.fsesubs +++|# 00467 M01S00446.fsesubs +++|** EXTENDC - EXTEND INTERNAL LINE IMAGE TO DESIRED LENGTH. 00468 M01S00447.fsesubs +++|* 00469 M01S00448.fsesubs +++|* ENTRY TEXTLIN - TRIMMED LINE IMAGE. 00470 M01S00449.fsesubs +++|* X - LENGTH TO BE PADDED TO. 00471 M01S00450.fsesubs +++|* 00472 M01S00451.fsesubs +++|* MACROS SETCHAR. 00473 M01S00452.fsesubs +++|* 00474 M01S00453.fsesubs +++|* CALLS LENGTH. 00475 M01S00454.fsesubs +++|# 00476 M01S00455.fsesubs +++| ARRAY TEXTLIN[0:99]; ITEM TEXTLINE; 00477 M01S00456.fsesubs +++| ITEM TMP1, TMP2, X; 00478 M01S00457.fsesubs +++| IF X GQ LENGTH(TEXTLIN) THEN 00479 M01S00458.fsesubs +++| BEGIN 00480 M01S00459.fsesubs +++| TMP1=LENGTH(TEXTLIN); 00481 M01S00460.fsesubs +++| FOR TMP2=TMP1 STEP 1 UNTIL X 00482 M01S00461.fsesubs +++| DO SETCHAR(TEXTLINE,TMP2,CBLANK); 00483 M01S00462.fsesubs +++| SETCHAR(TEXTLINE,X+1,CENDLINE); 00484 M01S00463.fsesubs +++| END 00485 M01S00464.fsesubs +++| END # OF EXTENDC # 00486 M01S00465.fsesubs +++| 00487 M01S00466.fsesubs +++| 00488 M01S00467.fsesubs +++|PROC LSHIFT(TEXTLIN,X,N); 00489 M01S00468.fsesubs +++| BEGIN 00490 M01S00469.fsesubs +++|# 00491 M01S00470.fsesubs +++|** LSHIFT - SHIFT INTERNAL LINE IMAGE LEFT. 00492 M01S00471.fsesubs +++|* 00493 M01S00472.fsesubs +++|* CHARACTER POSITION "X" GOES TO "X-N", X+1 TO X+1-N, ETC. 00494 M01S00473.fsesubs +++|* 00495 M01S00474.fsesubs +++|* ENTRY TEXTLIN - INTERNAL LINE IMAGE. 00496 M01S00475.fsesubs +++|* X - FIRST SHIFTABLE POSITION. 00497 M01S00476.fsesubs +++|* N - DISTANCE OF SHIFT. 00498 M01S00477.fsesubs +++|* 00499 M01S00478.fsesubs +++|* MACROS GETCHAR, SETCHAR. 00500 M01S00479.fsesubs +++|* 00501 M01S00480.fsesubs +++|* CALLS LENGTH, EXTENDC. 00502 M01S00481.fsesubs +++|# 00503 M01S00482.fsesubs +++| ARRAY TEXTLIN[0:99]; ITEM TEXTLINE; 00504 M01S00483.fsesubs +++| ITEM X,N,NN,I,L,C; 00505 M01S00484.fsesubs +++| IF N NQ 0 THEN 00506 M01S00485.fsesubs +++| BEGIN 00507 M01S00486.fsesubs +++| EXTENDC(TEXTLIN,X-1); 00508 M01S00487.fsesubs +++| L=LENGTH(TEXTLIN); 00509 M01S00488.fsesubs +++| NN=N; 00510 M01S00489.fsesubs +++| IF X LS N THEN NN=X; 00511 M01S00490.fsesubs +++| FOR I=X STEP 1 UNTIL L DO 00512 M01S00491.fsesubs +++| BEGIN 00513 M01S00492.fsesubs +++| GETCHAR(TEXTLINE,I,C); 00514 M01S00493.fsesubs +++| SETCHAR(TEXTLINE,I-NN,C); 00515 M01S00494.fsesubs +++| END 00516 M01S00495.fsesubs +++| END 00517 M01S00496.fsesubs +++| END # OF LSHIFT # 00518 M01S00497.fsesubs +++| 00519 M01S00498.fsesubs +++| 00520 M01S00499.fsesubs +++|PROC RSHIFT(TEXTLIN,X,N); 00521 M01S00500.fsesubs +++| BEGIN 00522 M01S00501.fsesubs +++| # RSHIFT - RIGHT SHIFT LINE (MOVE X TO X+N, X+1 TO X+1+N, ETC.) # 00523 M01S00502.fsesubs +++|# 00524 M01S00503.fsesubs +++|** RSHIFT - RIGHT SHIFT OF INTERNAL LINE IMAGE. 00525 M01S00504.fsesubs +++|* 00526 M01S00505.fsesubs +++|* RSHIFT MOVES POSITION "X" TO "X+N", "X+1" TO "X+1+N", ETC. 00527 M01S00506.fsesubs +++|* 00528 M01S00507.fsesubs +++|* ENTRY SAME CONDITIONS AS LSHIFT ROUTINE. 00529 M01S00508.fsesubs +++|* 00530 M01S00509.fsesubs +++|* MACROS GETCHAR, SETCHAR. 00531 M01S00510.fsesubs +++|* 00532 M01S00511.fsesubs +++|* CALLS EXTENDC, LENGTH. 00533 M01S00512.fsesubs +++|# 00534 M01S00513.fsesubs +++| ARRAY TEXTLIN[0:99]; ITEM TEXTLINE; 00535 M01S00514.fsesubs +++| ITEM X,N,I,L,C; 00536 M01S00515.fsesubs +++| IF N NQ 0 THEN 00537 M01S00516.fsesubs +++| BEGIN 00538 M01S00517.fsesubs +++| EXTENDC(TEXTLIN,X-1); 00539 M01S00518.fsesubs +++| L=LENGTH(TEXTLIN); 00540 M01S00519.fsesubs +++| EXTENDC(TEXTLIN,X+N); 00541 M01S00520.fsesubs +++| IF L+N GR BUFCHAR THEN 00542 M01S00521.fsesubs +++| BEGIN 00543 M01S00522.fsesubs +++| L=BUFCHAR-N; 00544 M01S00523.fsesubs +++| SETCHAR(TEXTLINE,L,CENDLINE); 00545 M01S00524.fsesubs +++| END 00546 M01S00525.fsesubs +++| FOR I=L STEP -1 UNTIL X DO 00547 M01S00526.fsesubs +++| BEGIN 00548 M01S00527.fsesubs +++| GETCHAR(TEXTLINE,I,C); 00549 M01S00528.fsesubs +++| SETCHAR(TEXTLINE,I+N,C); 00550 M01S00529.fsesubs +++| END 00551 M01S00530.fsesubs +++| SETCHAR(TEXTLINE,L+N,CENDLINE); 00552 M01S00531.fsesubs +++| END 00553 M01S00532.fsesubs +++| END # OF RSHIFT # 00554 M01S00533.fsesubs +++| 00555 M01S00534.fsesubs +++| 00556 M01S00535.fsesubs +++|PROC CONVIN(TEXTLINE,CHARTYPE); 00557 M01S00536.fsesubs +++| BEGIN 00558 M01S00537.fsesubs +++|# 00559 M01S00538.fsesubs +++|** CONVIN - CONVERT INPUT LINE TO INTERNAL FORMAT. 00560 M01S00539.fsesubs +++|* 00561 M01S00540.fsesubs +++|* ENTRY TMPLIN - ALREADY CONTAINS NOS-FORMAT LINE IMAGE.
Line S00541 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00562 M02S00541.ns2582 ---|* CHARTYPE - INDICATES CONVERSION ALGORITHM, 0=6-BIT,
Line S00542 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00563 M02S00542.ns2582 ---|* 1=6/12, 2=8/12. 00564 M01S00001.ns2582 +++|* CHARTYPE - CHARACTER SET CONVERSION MODE. 00565 M01S00002.ns2582 +++|* 0 = 6 BIT DISPLAY, 00566 M01S00003.ns2582 +++|* 1 = 6 BIT DISPLAY, 00567 M01S00004.ns2582 +++|* 2 = 6/12 ASCII, 00568 M01S00005.ns2582 +++|* 3 = 8/12 ASCII. 00569 M01S00543.fsesubs +++|* 00570 M01S00544.fsesubs +++|* EXIT TEXTLINE - CONTAINS INTERNAL FORMAT LINE IMAGE. 00571 M01S00001.ns2225 +++|* ZEROCOLIN - FORCED TRUE IF AND ONLY IF 6/12 AND 00572 M01S00002.ns2225 +++|* A 00 COLON IS ENCOUNTERED. OTHERWISE UNCHANGED. 00573 M01S00545.fsesubs +++|* 00574 M01S00546.fsesubs +++|* CALLS FASTCNI, FASTCAI, SLOWC8I. 00575 M01S00547.fsesubs +++|# 00576 M01S00548.fsesubs +++| ARRAY TEXTLINE[0:99]; ITEM TEXT; 00577 M01S00549.fsesubs +++| ITEM CHARTYPE; 00578 M01S00003.ns2225 +++| ITEM TMP1; 00579 M01S00550.fsesubs +++| SWITCH CONVINSW CINORM,CINORM,CIASC,CI812; 00580 M01S00551.fsesubs +++| 00581 M01S00552.fsesubs +++| GOTO CONVINSW[CHARTYPE]; 00582 M01S00553.fsesubs +++| 00583 M01S00554.fsesubs +++|CINORM: 00584 M01S00555.fsesubs +++| FASTCNI(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00585 M01S00556.fsesubs +++| RETURN; 00586 M01S00557.fsesubs +++| 00587 M01S00558.fsesubs +++|CIASC:
Line S00559 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00588 M02S00559.ns2225 ---| FASTCAI(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00589 M01S00004.ns2225 +++| TMP1=0; 00590 M01S00005.ns2225 +++| FASTCAI(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,TMP1);
Line S00006 Modification History | |
---|---|
M01 (Added by) | ns2225 |
M02 (Updated by) | ns2623 |
Seq # *Modification Id* Act ----------------------------+ 00591 M02S00006.ns2623 ---| IF TMP1 NQ 0 THEN ZEROCOLIN=TRUE; 00592 M01S00001.ns2623 +++| IF TMP1 LAN 1 NQ 0 THEN ZEROCOLIN = TRUE; 00593 M01S00002.ns2623 +++| IF TMP1 LAN 2 NQ 0 THEN 00594 M01S00003.ns2623 +++| BEGIN # IF UNKNOWN CHARACTER(S) # 00595 M01S00004.ns2623 +++| ERRSTRING = "UNKNOWN CHARACTER(S) FOUND - CONVERTED TO ;"; 00596 M01S00005.ns2623 +++| END 00597 M01S00560.fsesubs +++| RETURN; 00598 M01S00561.fsesubs +++| 00599 M01S00562.fsesubs +++|CI812: 00600 M01S00563.fsesubs +++| SLOWC8I(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00601 M01S00564.fsesubs +++| RETURN; 00602 M01S00565.fsesubs +++| 00603 M01S00566.fsesubs +++| END # OF CONVIN # 00604 M01S00567.fsesubs +++| 00605 M01S00568.fsesubs +++| 00606 M01S00569.fsesubs +++|PROC CONVOUT(TEXTLINE,CHARTYPE); 00607 M01S00570.fsesubs +++| BEGIN 00608 M01S00571.fsesubs +++|# 00609 M01S00572.fsesubs +++|** CONVOUT - CONVERT INTERNAL LINE IMAGE TO NOS FORMAT. 00610 M01S00573.fsesubs +++|* 00611 M01S00574.fsesubs +++|* ENTRY TEXTLINE - INTERNAL LINE IMAGE.
Line S00575 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00612 M02S00575.ns2582 ---|* CHARTYPE - SAME AS "CONVOUT" ROUTINE. 00613 M01S00006.ns2582 +++|* CHARTYPE - CHARACTER SET CONVERSION MODE. 00614 M01S00007.ns2582 +++|* 0 = 6 BIT DISPLAY, 00615 M01S00008.ns2582 +++|* 1 = 6 BIT DISPLAY, 00616 M01S00009.ns2582 +++|* 2 = 6/12 ASCII, 00617 M01S00010.ns2582 +++|* 3 = 8/12 ASCII, 00618 M01S00011.ns2582 +++|* 4 = 8/12 ASCII, IGNORE COLON CONVERSION. 00619 M01S00007.ns2225 +++|* ZEROCOLOUT - 7404 VERSUS 00 FORMAT FOR COLONS WHEN 00620 M01S00008.ns2225 +++|* 6/12 CHARACTER SET DETECTED. 00621 M01S00576.fsesubs +++|* 00622 M01S00577.fsesubs +++|* EXIT TMPLIN - CONTAINS NOS LINE IMAGE. 00623 M01S00578.fsesubs +++|* 00624 M01S00579.fsesubs +++|* MACROS GETCHAR, SETCHAR. 00625 M01S00580.fsesubs +++|* 00626 M01S00581.fsesubs +++|* CALLS LENGTH, FASTCAO, FASTCNO, NOSWDSZ, SLOWC8O. 00627 M01S00582.fsesubs +++|# 00628 M01S00583.fsesubs +++| ARRAY TEXTLINE[0:99]; ITEM TEXT; 00629 M01S00584.fsesubs +++| ITEM CHARTYPE;
Line S00585 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2225 |
Seq # *Modification Id* Act ----------------------------+ 00630 M02S00585.ns2225 ---| ITEM TMP1, TMP2; 00631 M01S00009.ns2225 +++| ITEM TMP1, TMP2, BOOL B;
Line S00586 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00632 M02S00586.ns2582 ---| SWITCH CONVOUTSW CONORM,CONORM,COASC,CO812; 00633 M01S00012.ns2582 +++| SWITCH CONVOUTSW CONORM,CONORM,COASC,CO812,COAINT; 00634 M01S00587.fsesubs +++| 00635 M01S00588.fsesubs +++| TMP1=LENGTH(TEXTLINE);
Line S00589 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00636 M02S00589.fsesu1 ---| IF TMP1 NQ 0 THEN 00637 M01S00001.fsesu1 +++| IF TMP1 EQ 0 THEN 00638 M01S00002.fsesu1 +++| BEGIN # EMPTY LINE IS TWO BLANKS #
Line S00003 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Updated by) | fsesu2 |
Seq # *Modification Id* Act ----------------------------+ 00639 M02S00003.fsesu2 ---| TMPLINE[0]=O"5555 0000 0000 0000 0000";
Line S00004 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Updated by) | fsesu2 |
Seq # *Modification Id* Act ----------------------------+ 00640 M02S00004.fsesu2 ---| RETURN; 00641 M01S00001.fsesu2 +++| IF CHARTYPE NQ 3 THEN 00642 M01S00002.fsesu2 +++| BEGIN # IF DISPLAY OR 6/12 ASCII # 00643 M01S00003.fsesu2 +++| TMPLINE[0]=O"5555 0000 0000 0000 0000"; 00644 M01S00004.fsesu2 +++| END 00645 M01S00005.fsesu2 +++| ELSE 00646 M01S00006.fsesu2 +++| BEGIN # 8/12 ASCII # 00647 M01S00007.fsesu2 +++| TMPLINE[0]=O"0040 0040 0000 0000 0000"; 00648 M01S00008.fsesu2 +++| END 00649 M01S00009.fsesu2 +++| RETURN; 00650 M01S00005.fsesu1 +++| END
Line S00006 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00651 M02S00006.ns2582 ---| ELSE 00652 M01S00013.ns2582 +++| IF CHARTYPE LS 3 THEN # IF DISPLAY OR STANDARD ASCII # 00653 M01S00590.fsesubs +++| BEGIN 00654 M01S00591.fsesubs +++| GETCHAR(TEXT,TMP1-1,TMP2);
Line S00592 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00655 M02S00592.fsesu1 ---| IF TMP2 EQ CCOLON THEN # EXPLICIT COLONS NEED BLANK #
Line S00593 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu1 |
Seq # *Modification Id* Act ----------------------------+ 00656 M02S00593.fsesu1 ---| BEGIN
Line S00007 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00657 M02S00007.ns2582 ---| IF TMP2 EQ CCOLON AND CHARTYPE NQ 3 THEN 00658 M01S00014.ns2582 +++| IF TMP2 EQ CCOLON THEN 00659 M01S00008.fsesu1 +++| BEGIN # TRAILING COLONS NEED A BLANK # 00660 M01S00594.fsesubs +++| SETCHAR(TEXT,TMP1,CBLANK); 00661 M01S00595.fsesubs +++| TMP1=TMP1+1; 00662 M01S00596.fsesubs +++| SETCHAR(TEXT,TMP1,CENDLINE); 00663 M01S00597.fsesubs +++| END
Line S00009 Modification History | |
---|---|
M01 (Added by) | fsesu1 |
M02 (Updated by) | ns2582 |
Seq # *Modification Id* Act ----------------------------+ 00664 M02S00009.ns2582 ---| GOTO CONVOUTSW[CHARTYPE]; 00665 M01S00598.fsesubs +++| END 00666 M01S00015.ns2582 +++| GOTO CONVOUTSW[CHARTYPE]; 00667 M01S00016.ns2582 +++| 00668 M01S00017.ns2582 +++|COAINT: 00669 M01S00018.ns2582 +++| BOOL = TRUE; # FORCE COLONS TO BE 7404B # 00670 M01S00019.ns2582 +++| FASTCAO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,BOOL); 00671 M01S00020.ns2582 +++| RETURN;
Line S00599 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00672 M02S00599.fsesu3 ---|
Line S00600 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu1 |
M03 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00673 M03S00600.fsesu3 ---| GOTO CONVOUTSW[CHARTYPE];
Line S00601 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00674 M02S00601.fsesu3 ---|
Line S00602 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00675 M02S00602.fsesu3 ---|COASC:
Line S00603 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2225 |
M03 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00676 M03S00603.fsesu3 ---| FASTCAO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,TRUE);
Line S00010 Modification History | |
---|---|
M01 (Added by) | ns2225 |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00677 M02S00010.fsesu3 ---| BOOL=NOT ZEROCOLOUT;
Line S00011 Modification History | |
---|---|
M01 (Added by) | ns2225 |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00678 M02S00011.fsesu3 ---| FASTCAO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,BOOL);
Line S00604 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00679 M02S00604.fsesu3 ---| GOTO COLAST;
Line S00605 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00680 M02S00605.fsesu3 ---|
Line S00606 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00681 M02S00606.fsesu3 ---|CONORM:
Line S00607 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00682 M02S00607.fsesu3 ---| FASTCNO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2);
Line S00608 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00683 M02S00608.fsesu3 ---| GOTO COLAST;
Line S00609 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00684 M02S00609.fsesu3 ---|
Line S00610 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00685 M02S00610.fsesu3 ---|COLAST: # ASSURE NO 66-BIT TERMINATORS #
Line S00611 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu3 |
Seq # *Modification Id* Act ----------------------------+ 00686 M02S00611.fsesu3 ---| TMP1=NOSWDSZ(BUFWIDE2,TMPLIN); 00687 M01S00001.fsesu3 +++| 00688 M01S00002.fsesu3 +++|COASC: 00689 M01S00003.fsesu3 +++| BOOL=NOT ZEROCOLOUT; 00690 M01S00004.fsesu3 +++| FASTCAO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2,BOOL); 00691 M01S00005.fsesu3 +++| RETURN; 00692 M01S00006.fsesu3 +++| 00693 M01S00007.fsesu3 +++|CONORM: 00694 M01S00008.fsesu3 +++| FASTCNO(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00695 M01S00009.fsesu3 +++| TMP1=NOSWDSZ(BUFWIDE2,TMPLIN); # PREVENT 66 BIT END OF LINE # 00696 M01S00612.fsesubs +++| IF TMP1 GR 1 AND TMPLINE[TMP1-1] EQ 0 00697 M01S00613.fsesubs +++| AND TMPLINE[TMP1-2] LAN O"00000000000000007700" NQ 0 00698 M01S00614.fsesubs +++| AND TMPLINE[TMP1-2] LAN O"00000000000000000077" EQ 0 00699 M01S00615.fsesubs +++| THEN TMPLINE[TMP1-2]=TMPLINE[TMP1-2] LOR O"00000000000000000055"; 00700 M01S00616.fsesubs +++| RETURN; 00701 M01S00617.fsesubs +++| 00702 M01S00618.fsesubs +++|CO812: 00703 M01S00619.fsesubs +++| SLOWC8O(TEXTLINE,TMPLIN,BUFWIDE,BUFWIDE2); 00704 M01S00620.fsesubs +++| RETURN; 00705 M01S00621.fsesubs +++| 00706 M01S00622.fsesubs +++| END # OF CONVOUT # 00707 M01S00623.fsesubs +++| 00708 M01S00624.fsesubs +++| 00709 M01S00625.fsesubs +++|PROC SLOWC8I(TEXTLIN,BUFLIN,SIZE1,SIZE2); 00710 M01S00626.fsesubs +++| BEGIN 00711 M01S00627.fsesubs +++|# 00712 M01S00628.fsesubs +++|** SLOWC8I - CONVERT 8/12 INPUT LINE TO INTERNAL CHARSET. 00713 M01S00629.fsesubs +++|* 00714 M01S00630.fsesubs +++|* ENTRY BUFLIN - NOS LINE IMAGE. 00715 M01S00631.fsesubs +++|* SIZE1 - CAPACITY OF TEXTLIN IN WORDS. 00716 M01S00632.fsesubs +++|* SIZE2 - CAPACITY OF BUFLIN IN WORDS. 00717 M01S00633.fsesubs +++|* 00718 M01S00634.fsesubs +++|* EXIT TEXTLIN - INTERNAL LINE IMAGE. 00719 M01S00635.fsesubs +++|* 00720 M01S00636.fsesubs +++|* MACROS SETCHAR, MOD. 00721 M01S00637.fsesubs +++|* 00722 M01S00638.fsesubs +++|* NOTE ALGORITHM SENSITIVE TO INTERNAL FORMAT DEFINITION. 00723 M01S00639.fsesubs +++|# 00724 M01S00640.fsesubs +++| ARRAY TEXTLIN [0:99]; ITEM TEXTLINE; 00725 M01S00641.fsesubs +++| ARRAY BUFLIN [0:99]; ITEM BUFLINE; 00726 M01S00642.fsesubs +++| ITEM SIZE1, SIZE2; 00727 M01S00643.fsesubs +++| ITEM TMP1, TMP2; 00728 M01S00644.fsesubs +++| 00729 M01S00645.fsesubs +++| SETCHAR(TEXTLINE,BUFCM1,CENDLINE); 00730 M01S00646.fsesubs +++| TMP1=0; 00731 M01S00647.fsesubs +++| TMP2=CLETTERA; 00732 M01S00648.fsesubs +++| WHYLE TMP1/8 LQ SIZE1 AND TMP1/5 LQ SIZE2 AND TMP2 NQ CENDLINE DO 00733 M01S00649.fsesubs +++| BEGIN 00734 M01S00650.fsesubs +++| TMP2=B<MOD(TMP1,5)*12,12>BUFLINE[TMP1/5]; 00735 M01S00651.fsesubs +++| IF TMP2 EQ 0 THEN TMP2=CENDLINE; 00736 M01S00652.fsesubs +++| ELSE TMP2=XLTXPINT[TMP2 LAN O"177"]; 00737 M01S00653.fsesubs +++| SETCHAR(TEXTLINE,TMP1,TMP2); 00738 M01S00654.fsesubs +++| TMP1=TMP1+1; 00739 M01S00655.fsesubs +++| END 00740 M01S00656.fsesubs +++| END # OF SLOWC8I # 00741 M01S00657.fsesubs +++| 00742 M01S00658.fsesubs +++| 00743 M01S00659.fsesubs +++|PROC SLOWC8O(TEXTLIN,BUFLIN,SIZE1,SIZE2); 00744 M01S00660.fsesubs +++| BEGIN 00745 M01S00661.fsesubs +++|# 00746 M01S00662.fsesubs +++|** SLOWC8O - CONVERT INTERNAL LINE IMAGE TO 8/12 FORMAT. 00747 M01S00663.fsesubs +++|* 00748 M01S00664.fsesubs +++|* ENTRY TEXTLIN - INTERNAL LINE IMAGE. 00749 M01S00665.fsesubs +++|* SIZE1, SIZE2 - SIMILAR TO "SLOWC8I" ROUTINE. 00750 M01S00666.fsesubs +++|* 00751 M01S00667.fsesubs +++|* EXIT BUFLIN - 8/12 FORMAT LINE IMAGE. 00752 M01S00668.fsesubs +++|* 00753 M01S00669.fsesubs +++|* MACROS SETCHAR, GETCHAR. 00754 M01S00670.fsesubs +++|* 00755 M01S00671.fsesubs +++|* NOTE ALGORITHM SENSITIVE TO INTERNAL FORMAT DEFINITION. 00756 M01S00672.fsesubs +++|# 00757 M01S00673.fsesubs +++| ARRAY TEXTLIN [0:99]; ITEM TEXTLINE; 00758 M01S00674.fsesubs +++| ARRAY BUFLIN [0:99]; ITEM BUFLINE; 00759 M01S00675.fsesubs +++| ITEM SIZE1, SIZE2; 00760 M01S00676.fsesubs +++| ITEM TMP1, TMP2; 00761 M01S00677.fsesubs +++| 00762 M01S00678.fsesubs +++| SETCHAR(TEXTLINE,BUFCM1,CENDLINE); 00763 M01S00679.fsesubs +++| FOR TMP1=1 STEP 1 UNTIL SIZE2 DO BUFLINE[TMP1-1]=0; 00764 M01S00680.fsesubs +++| TMP1=0; 00765 M01S00681.fsesubs +++| TMP2=1; 00766 M01S00682.fsesubs +++| WHYLE TMP1/8 LQ SIZE1 AND TMP1/5 LQ SIZE2 AND TMP2 NQ 0 DO 00767 M01S00683.fsesubs +++| BEGIN 00768 M01S00684.fsesubs +++| GETCHAR(TEXTLINE,TMP1,TMP2); 00769 M01S00685.fsesubs +++| IF TMP2 EQ CENDLINE THEN TMP2=0; 00770 M01S00686.fsesubs +++| ELSE TMP2=XLTINTXP[TMP2] LAN O"3777"; 00771 M01S00687.fsesubs +++| B<MOD(TMP1,5)*12,12>BUFLINE[TMP1/5]=TMP2; 00772 M01S00688.fsesubs +++| TMP1=TMP1+1; 00773 M01S00689.fsesubs +++| END 00774 M01S00690.fsesubs +++| 00775 M01S00691.fsesubs +++| END # OF SLOWC8O # 00776 M01S00692.fsesubs +++| 00777 M01S00693.fsesubs +++| 00778 M01S00694.fsesubs +++|PROC GETLNUM; 00779 M01S00695.fsesubs +++| BEGIN 00780 M01S00696.fsesubs +++|# 00781 M01S00697.fsesubs +++|** GETLNUM - ANALYZE INTERNAL LINE IMAGE FOR SEQUENCE NUM. 00782 M01S00698.fsesubs +++|* 00783 M01S00699.fsesubs +++|* GETLNUM IS USED TO RECOGNIZE A LINE NUMBER ON THE CURRENT 00784 M01S00700.fsesubs +++|* LINE. WE SET LINENO TO ITS BINARY VALUE. WE ALSO SET 00785 M01S00701.fsesubs +++|* WIDTHFOUND TO THE NUMBER OF DIGITS. NOTE THAT IF 00786 M01S00702.fsesubs +++|* THERE IS NO NUMBER, WE RETURN WIDTHFOUND=0, LINENO=0. 00787 M01S00703.fsesubs +++|* 00788 M01S00704.fsesubs +++|* ENTRY (LIN) - ALREADY CONTAINS LINE IMAGE. 00789 M01S00705.fsesubs +++|* 00790 M01S00706.fsesubs +++|* EXIT LINENO, WIDTHFOUND ARE SET. 00791 M01S00707.fsesubs +++|* 00792 M01S00708.fsesubs +++|* MACROS GETCHAR. 00793 M01S00709.fsesubs +++|# 00794 M01S00710.fsesubs +++| ITEM QUIT B; 00795 M01S00711.fsesubs +++| ITEM TMP2, TMP3; 00796 M01S00712.fsesubs +++| 00797 M01S00713.fsesubs +++| LINENO=0; 00798 M01S00714.fsesubs +++| WIDTHFOUND=0; 00799 M01S00715.fsesubs +++| QUIT=FALSE; 00800 M01S00716.fsesubs +++| FOR TMP2=0 STEP 1 WHILE TMP2 LS NUMWIDTH AND NOT QUIT DO 00801 M01S00717.fsesubs +++| BEGIN 00802 M01S00718.fsesubs +++| GETCHAR(LINE,TMP2,TMP3); 00803 M01S00719.fsesubs +++| IF TMP3 GQ CDIGIT0 AND TMP3 LQ CDIGIT9 THEN 00804 M01S00720.fsesubs +++| BEGIN 00805 M01S00721.fsesubs +++| LINENO=LINENO*10 + TMP3-CDIGIT0; 00806 M01S00722.fsesubs +++| WIDTHFOUND=WIDTHFOUND+1; 00807 M01S00723.fsesubs +++| END 00808 M01S00724.fsesubs +++| ELSE QUIT=TRUE; 00809 M01S00725.fsesubs +++| END 00810 M01S00726.fsesubs +++| 00811 M01S00727.fsesubs +++| END # OF GETLNUM # 00812 M01S00728.fsesubs +++| 00813 M01S00729.fsesubs +++| 00814 M01S00730.fsesubs +++|PROC SETLNUM; 00815 M01S00731.fsesubs +++| BEGIN 00816 M01S00732.fsesubs +++|# 00817 M01S00733.fsesubs +++|** SETLNUM - FORMAT SEQUENCE NUMBER ONTO INTERNAL LINE. 00818 M01S00734.fsesubs +++|* 00819 M01S00735.fsesubs +++|* SETLNUM ADJUSTS THE WIDTH OF ANY EXISTING SEQUENCE 00820 M01S00736.fsesubs +++|* NUMBER, THEN PLACES THE NEW SEQUENCE NUMBER VALUE ON 00821 M01S00737.fsesubs +++|* THE LINE. 00822 M01S00738.fsesubs +++|* 00823 M01S00739.fsesubs +++|* ENTRY (LIN) - EXISTING INTERNAL FORMAT LINE IMAGE. 00824 M01S00740.fsesubs +++|* (LINENO) - NEW SEQUENCE VALUE. 00825 M01S00741.fsesubs +++|* 00826 M01S00742.fsesubs +++|* EXIT (LIN) - FIXED UP. 00827 M01S00743.fsesubs +++|* 00828 M01S00744.fsesubs +++|* MACROS SETCHAR. 00829 M01S00745.fsesubs +++|* 00830 M01S00746.fsesubs +++|* CALLS GETLNUM, LSHIFT, RSHIFT. 00831 M01S00747.fsesubs +++|* 00832 M01S00748.fsesubs +++|* NOTES USES LINENO THEN RESTORES IT. 00833 M01S00749.fsesubs +++|# 00834 M01S00750.fsesubs +++| ITEM TMP1,TMP2,TMP3; 00835 M01S00751.fsesubs +++| 00836 M01S00752.fsesubs +++| IF NUMBERED[CURFILE] EQ 0 THEN RETURN; 00837 M01S00753.fsesubs +++| TMP2=LINENO; 00838 M01S00754.fsesubs +++| GETLNUM; # CHECK EXISTING NUMBER DIGITS # 00839 M01S00755.fsesubs +++| LINENO=TMP2; # RESTORE # 00840 M01S00756.fsesubs +++| IF WIDTHFOUND NQ NUMWIDTH THEN 00841 M01S00757.fsesubs +++| BEGIN 00842 M01S00758.fsesubs +++| LSHIFT(LIN,WIDTHFOUND,WIDTHFOUND); 00843 M01S00759.fsesubs +++| RSHIFT(LIN,0,NUMWIDTH); 00844 M01S00760.fsesubs +++| END 00845 M01S00761.fsesubs +++| FOR TMP1=NUMWIDTH-1 STEP -1 UNTIL 0 DO 00846 M01S00762.fsesubs +++| BEGIN 00847 M01S00763.fsesubs +++| TMP3=MOD(TMP2,10)+CDIGIT0; 00848 M01S00764.fsesubs +++| SETCHAR(LINE,TMP1,TMP3); 00849 M01S00765.fsesubs +++| TMP2=TMP2/10; 00850 M01S00766.fsesubs +++| END 00851 M01S00767.fsesubs +++| IF BLANKS NQ 0 THEN 00852 M01S00768.fsesubs +++| BEGIN 00853 M01S00769.fsesubs +++| GETCHAR(LINE,NUMWIDTH,TMP1); 00854 M01S00770.fsesubs +++| IF TMP1 NQ CBLANK THEN RSHIFT(LIN,NUMWIDTH,1); 00855 M01S00771.fsesubs +++| SETCHAR(LINE,NUMWIDTH,CBLANK); 00856 M01S00772.fsesubs +++| END 00857 M01S00773.fsesubs +++| END # OF SETLNUM # 00858 M01S00774.fsesubs +++| 00859 M01S00775.fsesubs +++| 00860 M01S00776.fsesubs +++|PROC TRIMPAD; 00861 M01S00777.fsesubs +++| BEGIN 00862 M01S00778.fsesubs +++|# 00863 M01S00779.fsesubs +++|** TRIMPAD - TRIM OFF TRAILING BLANKS, PAD SEQUENCE. 00864 M01S00780.fsesubs +++|* 00865 M01S00781.fsesubs +++|* TRIMPAD TRIMS ALL TRAILING BLANKS FOR A LINE IMAGE IN 00866 M01S00782.fsesubs +++|* THE INTERNAL CHARACTER SET, AND FOR SEQUENCE-NUMBERED 00867 M01S00783.fsesubs +++|* FILES IT ALSO PADS A BLANK ON LINES CONSISTING ONLY OF 00868 M01S00784.fsesubs +++|* A SEQUENCE NUMBER. 00869 M01S00785.fsesubs +++|* 00870 M01S00786.fsesubs +++|* ENTRY (LIN) - LINE IMAGE TO BE PROCESSED. 00871 M01S00787.fsesubs +++|* NUMBERED[CURFILE] - INDICATES SEQUENCE PADDING. 00872 M01S00788.fsesubs +++|* 00873 M01S00789.fsesubs +++|* EXIT (LIN) - UPDATED. 00874 M01S00790.fsesubs +++|* 00875 M01S00791.fsesubs +++|* MACROS SETCHAR. 00876 M01S00792.fsesubs +++|* 00877 M01S00793.fsesubs +++|* CALLS TRIM, PAD, GETLNUM. 00878 M01S00794.fsesubs +++|* 00879 M01S00795.fsesubs +++|* USES WIDTHFOUND. 00880 M01S00796.fsesubs +++|* 00881 M01S00797.fsesubs +++|* NOTES USES LINENO THEN RESTORES IT. 00882 M01S00798.fsesubs +++|# 00883 M01S00799.fsesubs +++| ITEM TMP1; 00884 M01S00800.fsesubs +++| IF NUMBERED[CURFILE] NQ 0 THEN 00885 M01S00801.fsesubs +++| BEGIN 00886 M01S00802.fsesubs +++| TMP1=LINENO; 00887 M01S00803.fsesubs +++| GETLNUM; 00888 M01S00804.fsesubs +++| LINENO=TMP1; 00889 M01S00805.fsesubs +++| IF LENGTH(LIN) LS WIDTHFOUND+BLANKS THEN PAD(LIN); 00890 M01S00806.fsesubs +++| TRIM(LIN,WIDTHFOUND+BLANKS); 00891 M01S00807.fsesubs +++| END 00892 M01S00808.fsesubs +++| ELSE SETCHAR(LINE,FASTLNB(LIN),CENDLINE); 00893 M01S00809.fsesubs +++| END # OF TRIMPAD # 00894 M01S00810.fsesubs +++| 00895 M01S00811.fsesubs +++| 00896 M01S00812.fsesubs +++|PROC TRIM(ALIN,MINIMUM); 00897 M01S00813.fsesubs +++| BEGIN 00898 M01S00814.fsesubs +++|# 00899 M01S00815.fsesubs +++|** TRIM - TRIM OFF TRAILING BLANKS. 00900 M01S00816.fsesubs +++|* 00901 M01S00817.fsesubs +++|* ENTRY ALIN - LINE IMAGE TO PROCESS. 00902 M01S00818.fsesubs +++|* MINIMUM - MINIMUM LENGTH TO RESPECT. 00903 M01S00819.fsesubs +++|* 00904 M01S00820.fsesubs +++|* EXIT ALIN - UPDATED. 00905 M01S00821.fsesubs +++|* 00906 M01S00822.fsesubs +++|* MACROS SETCHAR. 00907 M01S00823.fsesubs +++|* 00908 M01S00824.fsesubs +++|* CALLS FASTLNB. 00909 M01S00825.fsesubs +++|# 00910 M01S00826.fsesubs +++| ARRAY ALIN[0:99]; ITEM ALINE; 00911 M01S00827.fsesubs +++| ITEM MINIMUM; 00912 M01S00828.fsesubs +++| SETCHAR(ALINE,MAX(MINIMUM,FASTLNB(ALIN)),CENDLINE); 00913 M01S00829.fsesubs +++| END # OF TRIM # 00914 M01S00830.fsesubs +++| 00915 M01S00831.fsesubs +++| 00916 M01S00832.fsesubs +++|PROC PAD(ALIN); 00917 M01S00833.fsesubs +++| BEGIN 00918 M01S00834.fsesubs +++|# 00919 M01S00835.fsesubs +++|** PAD - ADD TRAILING BLANKS TO INTERNAL LINE IMAGE. 00920 M01S00836.fsesubs +++|* 00921 M01S00837.fsesubs +++|* ENTRY ALIN - LINE IMAGE TO PROCESS. 00922 M01S00838.fsesubs +++|* 00923 M01S00839.fsesubs +++|* EXIT ALIN - PADDED TO MAXIMUM WIDTH. 00924 M01S00840.fsesubs +++|* 00925 M01S00841.fsesubs +++|* MACROS SETCHAR. 00926 M01S00842.fsesubs +++|* 00927 M01S00843.fsesubs +++|* CALLS LENGTH. 00928 M01S00844.fsesubs +++|# 00929 M01S00845.fsesubs +++| ARRAY ALIN [0:99]; ITEM ALINE; 00930 M01S00846.fsesubs +++| ITEM TMP1,TMP2,TMP3; 00931 M01S00847.fsesubs +++| ARRAY CHARMASKS [0:7]; ITEM MASK=[ 00932 M01S00848.fsesubs +++| O"03777777777777777777", 00933 M01S00849.fsesubs +++| O"00017777777777777777", 00934 M01S00850.fsesubs +++| O"00000077777777777777", 00935 M01S00851.fsesubs +++| O"00000000377777777777", 00936 M01S00852.fsesubs +++| O"00000000001777777777", 00937 M01S00853.fsesubs +++| O"00000000000007777777", 00938 M01S00854.fsesubs +++| O"00000000000000037777", 00939 M01S00855.fsesubs +++| O"00000000000000000177"]; 00940 M01S00856.fsesubs +++| TMP2=LENGTH(ALIN); 00941 M01S00857.fsesubs +++| TMP3=TMP2/8; 00942 M01S00858.fsesubs +++| TMP2=MASK[TMP2 LAN 7]; 00943 M01S00859.fsesubs +++| ALINE[TMP3]=(ALINE[TMP3] LAN (LNO TMP2)) LOR (ALLBLANKS LAN TMP2); 00944 M01S00860.fsesubs +++| FOR TMP1=TMP3+1 STEP 1 UNTIL BUFWID DO ALINE[TMP1]=ALLBLANKS; 00945 M01S00861.fsesubs +++| SETCHAR(ALINE,BUFCHAR,CENDLINE); 00946 M01S00862.fsesubs +++| END # OF PAD # 00947 M01S00863.fsesubs +++|PAGE # BASIC IO ROUTINES # 00948 M01S00864.fsesubs +++| 00949 M01S00865.fsesubs +++|# 00950 M01S00866.fsesubs +++|** WORKIO INTERFACE ROUTINES. 00951 M01S00867.fsesubs +++|* 00952 M01S00868.fsesubs +++|* THE WORKIO ENTRY POINTS (POS,FWD,BAK,INS,DEL,REP) ALL NEED 00953 M01S00869.fsesubs +++|* ADDITIONAL PROCESSING FOR MOST EDITOR OPERATIONS, SO THE 00954 M01S00870.fsesubs +++|* EDITOR CONTAINS SEVERAL INTERFACE ROUTINES. THOSE NAMED 00955 M01S00871.fsesubs +++|* WITH "X" APPEAR IN THE SCREEN MODULE AND SYNCHRONIZE THE 00956 M01S00872.fsesubs +++|* SCREEN. "Y" ENTRY POINTS PERFORM SECRET CHANGES WITHOUT 00957 M01S00873.fsesubs +++|* FLAGGING EITHER FILE BRACKET AS CHANGED. "Z" ENTRY POINTS 00958 M01S00874.fsesubs +++|* PERFORM POINTER VECTOR RELOCATION AND FLAG THE CURRENT FILE 00959 M01S00875.fsesubs +++|* BRACKET AS CHANGED. NOTE THAT THE "X" INTERFACES USE "Z". 00960 M01S00876.fsesubs +++|* 00961 M01S00877.fsesubs +++|* "Z" INTERFACES ALSO PERFORM AUDIT TRAIL MAINTENANCE WHEN 00962 M01S00878.fsesubs +++|* THE "UNDO" FACILITY IS ENABLED. "TMPLINE" IS USED FOR THIS. 00963 M01S00879.fsesubs +++|* 00964 M01S00880.fsesubs +++|* THUS ALL INTERFACES EXCEPT "Y" REQUIRE "CURFILE" SETUP AS 00965 M01S00881.fsesubs +++|* AN IMPLIED PARAMETER UPON ENTRY. 00966 M01S00882.fsesubs +++|* 00967 M01S00883.fsesubs +++|* LINEBUF IS A BASED ARRAY WHICH IS POINTED TO THE DESIRED 00968 M01S00884.fsesubs +++|* LINE BUFFER FOR WORKIO. REDEFINITION OF LINEBUF IS 00969 M01S00885.fsesubs +++|* RESTRICTED IN THAT IT MUST POINT TO "LIN" ANY TIME THE 00970 M01S00886.fsesubs +++|* MULTI-USER EDITOR CODE REACHES AN INTERNAL SWAP EVENT. THE 00971 M01S00887.fsesubs +++|* RESULT OF THIS RESTRICTION IS THAT LINEBUF ALMOST ALWAYS 00972 M01S00888.fsesubs +++|* IS POINTED AT "LIN", EXCEPT FOR SPECIAL SEQUENCES (AUDIT 00973 M01S00889.fsesubs +++|* TRAIL FOR UNDO) WHICH ARE KNOWN TO NOT PERMIT INTERNAL SWAP. 00974 M01S00890.fsesubs +++|* ALSO, THE POS ENTRY TO WORKIO WILL NOT COPY TEXT INTO THE 00975 M01S00891.fsesubs +++|* LINE BUFFER IF THE LINE ORDINAL IN NEWCURL IS COMPLEMENTED. 00976 M01S00892.fsesubs +++|# 00977 M01S00893.fsesubs +++| 00978 M01S00894.fsesubs +++|PROC POSZ(PARM); 00979 M01S00895.fsesubs +++| IOBEGIN(POSZ) 00980 M01S00896.fsesubs +++| ITEM PARM; 00981 M01S00897.fsesubs +++| NEWCURL=PARM; 00982 M01S00898.fsesubs +++| POS; 00983 M01S00899.fsesubs +++| IOEND # OF POSZ # 00984 M01S00900.fsesubs +++| 00985 M01S00901.fsesubs +++| 00986 M01S00902.fsesubs +++|PROC FWDZ; 00987 M01S00903.fsesubs +++| IOBEGIN(FWDZ) 00988 M01S00904.fsesubs +++| FWD; 00989 M01S00905.fsesubs +++| IOEND # OF FWDZ # 00990 M01S00906.fsesubs +++| 00991 M01S00907.fsesubs +++| 00992 M01S00908.fsesubs +++|PROC BAKZ; 00993 M01S00909.fsesubs +++| IOBEGIN(BAKZ) 00994 M01S00910.fsesubs +++| BAK; 00995 M01S00911.fsesubs +++| IOEND # OF BAKZ # 00996 M01S00912.fsesubs +++| 00997 M01S00913.fsesubs +++| 00998 M01S00914.fsesubs +++|PROC INSZ; 00999 M01S00915.fsesubs +++| IOBEGIN(INSZ) 01000 M01S00916.fsesubs +++| AUDITINS; # AUDIT INSERTION # 01001 M01S00917.fsesubs +++| CHANGED[CURFILE] = 1 LAN (LNO LOCKED[CURFILE]) ; 01002 M01S00918.fsesubs +++| INS; 01003 M01S00919.fsesubs +++| RELOCATE(+1); 01004 M01S00920.fsesubs +++| IOEND # OF INSZ # 01005 M01S00921.fsesubs +++| 01006 M01S00922.fsesubs +++| 01007 M01S00923.fsesubs +++|PROC DELZ; 01008 M01S00924.fsesubs +++| IOBEGIN(DELZ) 01009 M01S00925.fsesubs +++| AUDITDEL; # AUDIT DELETION # 01010 M01S00926.fsesubs +++| CHANGED[CURFILE] = 1 LAN (LNO LOCKED[CURFILE]) ; 01011 M01S00927.fsesubs +++| DELETEDONE=TRUE; 01012 M01S00928.fsesubs +++| RELOCATE(-1); 01013 M01S00929.fsesubs +++| DEL; 01014 M01S00930.fsesubs +++| POSZ(CURRENT); 01015 M01S00931.fsesubs +++| IOEND # OF DELZ # 01016 M01S00932.fsesubs +++| 01017 M01S00933.fsesubs +++| 01018 M01S00934.fsesubs +++|PROC REPZ; 01019 M01S00935.fsesubs +++| IOBEGIN(REPZ) 01020 M01S00936.fsesubs +++| AUDITREP; # AUDIT REPLACE # 01021 M01S00937.fsesubs +++| CHANGED[CURFILE] = 1 LAN (LNO LOCKED[CURFILE]) ; 01022 M01S00938.fsesubs +++| REP; 01023 M01S00939.fsesubs +++| IOEND # OF REPZ # 01024 M01S00940.fsesubs +++| 01025 M01S00941.fsesubs +++| 01026 M01S00942.fsesubs +++|PROC INSY; 01027 M01S00943.fsesubs +++| IOBEGIN(INSY) 01028 M01S00944.fsesubs +++| INS; 01029 M01S00945.fsesubs +++| RELOCATE(+1); 01030 M01S00946.fsesubs +++| IOEND # OF INSY # 01031 M01S00947.fsesubs +++| 01032 M01S00948.fsesubs +++| 01033 M01S00949.fsesubs +++|PROC DELY; 01034 M01S00950.fsesubs +++| IOBEGIN(DELY) 01035 M01S00951.fsesubs +++| DELETEDONE=TRUE; 01036 M01S00952.fsesubs +++| RELOCATE(-1); 01037 M01S00953.fsesubs +++| DEL; 01038 M01S00954.fsesubs +++| POSZ(CURRENT); 01039 M01S00955.fsesubs +++| IOEND # OF DELY # 01040 M01S00956.fsesubs +++| 01041 M01S00957.fsesubs +++| 01042 M01S00958.fsesubs +++|PROC REPY; 01043 M01S00959.fsesubs +++| IOBEGIN(REPY) 01044 M01S00960.fsesubs +++| REP; 01045 M01S00961.fsesubs +++| IOEND # OF REPY # 01046 M01S00962.fsesubs +++| 01047 M01S00963.fsesubs +++| 01048 M01S00964.fsesubs +++|PAGE # BASIC ROUTINES FOR POSITION STACK # 01049 M01S00965.fsesubs +++| 01050 M01S00966.fsesubs +++| 01051 M01S00967.fsesubs +++|PROC PUSH; 01052 M01S00968.fsesubs +++| BEGIN 01053 M01S00969.fsesubs +++|# 01054 M01S00970.fsesubs +++|** PUSH - PUSH CURRENT LINE/FILE ONTO STACK. 01055 M01S00971.fsesubs +++|* 01056 M01S00972.fsesubs +++|* ENTRY CURRENT - LINE POSITION TO SAVE. 01057 M01S00973.fsesubs +++|* CURFILE - FILE ASSOCIATION TO SAVE. 01058 M01S00974.fsesubs +++|* 01059 M01S00975.fsesubs +++|* EXIT STACKPTR, REGLINE, STKFILE - UPDATED. 01060 M01S00976.fsesubs +++|# 01061 M01S00977.fsesubs +++| IF STACKPTR GQ MAXSTACK THEN 01062 M01S00978.fsesubs +++| BEGIN 01063 M01S00979.fsesubs +++| FATAL(" FILE POSITION STACK OVERFLOWED.$"); 01064 M01S00980.fsesubs +++| END 01065 M01S00981.fsesubs +++| STACKPTR=STACKPTR+1; 01066 M01S00982.fsesubs +++| REGLINE[STACKPTR]=CURRENT; 01067 M01S00983.fsesubs +++| STKFILE[STACKPTR]=CURFILE; 01068 M01S00984.fsesubs +++| END # OF PUSH # 01069 M01S00985.fsesubs +++| 01070 M01S00986.fsesubs +++| 01071 M01S00987.fsesubs +++|PROC POP; 01072 M01S00988.fsesubs +++| IOBEGIN(POP) 01073 M01S00989.fsesubs +++|# 01074 M01S00990.fsesubs +++|** POP - POP LINE/FILE POSITION FROM STACK. 01075 M01S00991.fsesubs +++|* 01076 M01S00992.fsesubs +++|* ENTRY REGLINE, STACKPTR, STKFILE - CONTAIN SAVED POSITION. 01077 M01S00993.fsesubs +++|* 01078 M01S00994.fsesubs +++|* EXIT LIN, CURRENT, CURFILE - RESTORED POSITION/TEXT. 01079 M01S00995.fsesubs +++|* STACKPTR - UPDATED. 01080 M01S00996.fsesubs +++|# 01081 M01S00997.fsesubs +++| IF STACKPTR LS 0 THEN 01082 M01S00998.fsesubs +++| BEGIN 01083 M01S00999.fsesubs +++| FATAL(" FILE POSITION STACK UNDERFLOWED (1).$"); 01084 M01S01000.fsesubs +++| END 01085 M01S01001.fsesubs +++| POSZ(REGLINE[STACKPTR]); 01086 M01S01002.fsesubs +++| CURFILE=STKFILE[STACKPTR]; 01087 M01S01003.fsesubs +++| STACKPTR=STACKPTR-1; 01088 M01S01004.fsesubs +++| IOEND # OF POP # 01089 M01S01005.fsesubs +++| 01090 M01S01006.fsesubs +++| 01091 M01S01007.fsesubs +++|PROC RELOCATE(PARM); 01092 M01S01008.fsesubs +++| BEGIN 01093 M01S01009.fsesubs +++| ITEM PARM; 01094 M01S01010.fsesubs +++|# 01095 M01S01011.fsesubs +++|** RELOCATE - INTERFACE TO UPDATE VECTOR OF RELOCATABLES. 01096 M01S01012.fsesubs +++|* 01097 M01S01013.fsesubs +++|* ENTRY PARM - RELOCATION FACTOR. 01098 M01S01014.fsesubs +++|* CURRENT - RELOCATION THRESHHOLD. 01099 M01S01015.fsesubs +++|* 01100 M01S01016.fsesubs +++|* EXIT REGSTACK - UPDATED. 01101 M01S01017.fsesubs +++|* 01102 M01S01018.fsesubs +++|* CALLS FASTRLC. 01103 M01S01019.fsesubs +++|# 01104 M01S01020.fsesubs +++| FASTRLC(REGSTACK,MAXREG+1,CURRENT,PARM); 01105 M01S01021.fsesubs +++| END # OF RELOCATE # 01106 M01S01022.fsesubs +++| 01107 M01S01023.fsesubs +++| 01108 M01S01024.fsesubs +++|PAGE # AUDIT TRAIL ROUTINES # 01109 M01S01025.fsesubs +++| 01110 M01S01026.fsesubs +++| 01111 M01S01027.fsesubs +++|# 01112 M01S01028.fsesubs +++|** AUDIT TRAIL FACILITY. 01113 M01S01029.fsesubs +++|* 01114 M01S01030.fsesubs +++|* AUDIT TRAIL ROUTINES PRESERVE THE CURRENT POSITION AND THE 01115 M01S01031.fsesubs +++|* "LIN" BUFFER. "TMPLIN" IS USED WIDELY. 01116 M01S01032.fsesubs +++|* 01117 M01S01033.fsesubs +++|* FOR AN INSERTION, THE AUDIT RECORD IS A SINGLE DESCRIPTOR 01118 M01S01034.fsesubs +++|* LINE WITH "I" TYPE AND THE FLOAT POSITION. 01119 M01S01035.fsesubs +++|* 01120 M01S01036.fsesubs +++|* FOR A DELETION, WE WRITE THE OLD VERSION OF THE LINE THEN A 01121 M01S01037.fsesubs +++|* DESCRIPTOR WITH "D" TYPE, FILE ID, AND FILE POSITION. 01122 M01S01038.fsesubs +++|* 01123 M01S01039.fsesubs +++|* FOR A REPLACEMENT, WE WRITE THE OLD VERSION OF THE LINE AND 01124 M01S01040.fsesubs +++|* AN "R" DESCRIPTOR, FILE ID, AND FILE POSITION. 01125 M01S01041.fsesubs +++|* 01126 M01S01042.fsesubs +++|* TO CHECK POINT A MAJOR STOPPING POINT, WE WRITE A "C" 01127 M01S01043.fsesubs +++|* DESCRIPTOR. THIS INCLUDES FILE ID'S FOR BOTH OPEN 01128 M01S01044.fsesubs +++|* BRACKETS, AND SPLIT SCREEN DIMENSIONS. 01129 M01S01045.fsesubs +++|* 01130 M01S01046.fsesubs +++|* TO TERMINATE A SERIES OF MAJOR STOPPING POINTS, WE WRITE 01131 M01S01047.fsesubs +++|* A "E" DESCRIPTOR. THIS HAS NO PARAMETERS ON IT. 01132 M01S01048.fsesubs +++|* 01133 M01S01049.fsesubs +++|* THIS AUDIT TRAIL FORMAT IS VIABLE ONLY WHEN SCANNED IN 01134 M01S01050.fsesubs +++|* REVERSE ORDER, AND WHEN IT IS ASSURED TO REPRESENT ALL 01135 M01S01051.fsesubs +++|* CHANGES. THIS IMPLIES THAT THE "AUDITOFF" FLAG CAN BE SET 01136 M01S01052.fsesubs +++|* TO DISABLE THE FACILITY, BUT IN ORDER TO CLEAR THE FLAG AND 01137 M01S01053.fsesubs +++|* RE-ENABLE THE FACILITY, IT IS MANDATORY TO ISSUE AN "END" 01138 M01S01054.fsesubs +++|* DESCRIPTOR AS DESCRIBED IN THE PREVIOUS PARAGRAPH. THE 01139 M01S01055.fsesubs +++|* UNDO INTERPRETER MUST NOT GO BEYOND THIS POINT. 01140 M01S01056.fsesubs +++|* 01141 M01S01057.fsesubs +++|* NOTE THAT ENTRY POINTS AUDITEVENT AND AUDITNUM AND AUDITTEXT 01142 M01S01058.fsesubs +++|* ARE USED ONLY BY AUDIT ROUTINES. ENTRY POINTS AUDITINS, 01143 M01S01059.fsesubs +++|* AUDITDEL, AND AUDITREP ARE INTENDED TO BE USED ONLY BY INSZ, 01144 M01S01060.fsesubs +++|* DELZ, AND REPZ. AUDITCHECK AND AUDITSYNCH ARE THE ENTRY 01145 M01S01061.fsesubs +++|* POINTS SUITABLE FOR GENERAL USAGE. AUDITTRAIL IS USED ONLY 01146 M01S01062.fsesubs +++|* BY AUDIT ROUTINES. AUDITTRAIL AND AUDITSYNCH ARE THE ONLY 01147 M01S01063.fsesubs +++|* ROUTINES TO ACTUALLY MANIPULATE THE AUDIT BUFFERING AREA. 01148 M01S01064.fsesubs +++|* 01149 M01S01065.fsesubs +++|* ROUTINES WHICH CALL AUDITTRAIL MUST SET UP THE BASE 01150 M01S01066.fsesubs +++|* ADDRESS FOR LINEBUF, AND RESTORE IT. SUCH ROUTINES 01151 M01S01067.fsesubs +++|* CURRENTLY RESTORE THAT BASE ADDRESS BY ASSUMING THE 01152 M01S01068.fsesubs +++|* CORRECT ADDRESS IS "LIN" RATHER THAN BY ACTUALLY 01153 M01S01069.fsesubs +++|* SAVING AND RESTORING. THUS, WE IMPOSE A GENERAL 01154 M01S01070.fsesubs +++|* RESTRICTION THAT ANY EDITOR CODE WHICH CAUSES AUDITABLE 01155 M01S01071.fsesubs +++|* WORKFILE CHANGES MUST USE "LIN" AS THE ADDRESS OF LINEBUF. 01156 M01S01072.fsesubs +++|* 01157 M01S01073.fsesubs +++|* THE AUDIT TRAIL IS STAGED THRU A DEDICATED MEMORY BUFFER. 01158 M01S01074.fsesubs +++|* AUDITSYNCH PURGES THIS BUFFER INTO THE AUDIT BRACKET OF 01159 M01S01075.fsesubs +++|* THE WORKFILE, SO ANY ROUTINE THAT NEEDS TO ACCESS THE 01160 M01S01076.fsesubs +++|* AUDIT TRAIL (I.E, THE UNDO FACILITY) MUST CALL AUDITSYNCH. 01161 M01S01077.fsesubs +++|* THE STAGING AREA PROVIDES PERFORMANCE OPTIMIZATION BY 01162 M01S01078.fsesubs +++|* DEFERRING AND BATCHING WORKFILE ACCESSES. 01163 M01S01079.fsesubs +++|* 01164 M01S01080.fsesubs +++|* ALL AUDIT ROUTINES, WHICH ARE ALLOWED TO BE CALLED FROM 01165 M01S01081.fsesubs +++|* OUTSIDE OF OTHER AUDIT ROUTINES, INSPECT THE AUDITOFF 01166 M01S01082.fsesubs +++|* FLAG TO SEE IF THE FACILITY IS DISABLED. ROUTINES WHICH 01167 M01S01083.fsesubs +++|* ARE LOCAL TO THE AUDIT FACILITY DO NOT CHECK THIS FLAG, 01168 M01S01084.fsesubs +++|* BOTH FOR EFFICIENCY AND TO ASSURE THAT STAGED DATA CAN 01169 M01S01085.fsesubs +++|* BE HANDLED RIGOROUSLY. 01170 M01S01086.fsesubs +++|# 01171 M01S01087.fsesubs +++| 01172 M01S01088.fsesubs +++| 01173 M01S01089.fsesubs +++|PROC AUDITINS; 01174 M01S01090.fsesubs +++| IOBEGIN(AUDITINS) 01175 M01S01091.fsesubs +++|# 01176 M01S01092.fsesubs +++|** AUDITINS - AUDIT INTERFACE FOR INSZ. 01177 M01S01093.fsesubs +++|* 01178 M01S01094.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01179 M01S01095.fsesubs +++|# 01180 M01S01096.fsesubs +++| IF AUDITOFF THEN IORET 01181 M01S01097.fsesubs +++| AUDITEVENT(CLETTERI); 01182 M01S01098.fsesubs +++| IOEND # OF AUDITINS # 01183 M01S01099.fsesubs +++| 01184 M01S01100.fsesubs +++| 01185 M01S01101.fsesubs +++|PROC AUDITDEL; 01186 M01S01102.fsesubs +++| IOBEGIN(AUDITDEL) 01187 M01S01103.fsesubs +++|# 01188 M01S01104.fsesubs +++|** AUDITDEL - AUDIT INTERFACE FOR DELZ. 01189 M01S01105.fsesubs +++|* 01190 M01S01106.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01191 M01S01107.fsesubs +++|# 01192 M01S01108.fsesubs +++| IF AUDITOFF THEN IORET 01193 M01S01109.fsesubs +++| AUDITTEXT; 01194 M01S01110.fsesubs +++| AUDITEVENT(CLETTERD); 01195 M01S01111.fsesubs +++| IOEND # OF AUDITDEL # 01196 M01S01112.fsesubs +++| 01197 M01S01113.fsesubs +++| 01198 M01S01114.fsesubs +++|PROC AUDITREP; 01199 M01S01115.fsesubs +++| IOBEGIN(AUDITREP) 01200 M01S01116.fsesubs +++|# 01201 M01S01117.fsesubs +++|** AUDITREP - AUDIT INTERFACE FOR REPZ. 01202 M01S01118.fsesubs +++|* 01203 M01S01119.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01204 M01S01120.fsesubs +++|# 01205 M01S01121.fsesubs +++| IF AUDITOFF THEN IORET 01206 M01S01122.fsesubs +++| AUDITTEXT; 01207 M01S01123.fsesubs +++| AUDITEVENT(CLETTERR); 01208 M01S01124.fsesubs +++| IOEND # OF AUDITREP # 01209 M01S01125.fsesubs +++| 01210 M01S01126.fsesubs +++| 01211 M01S01127.fsesubs +++|PROC AUDITNUM(POS,NUM); 01212 M01S01128.fsesubs +++| BEGIN 01213 M01S01129.fsesubs +++|# 01214 M01S01130.fsesubs +++|** AUDITNUM - FORMAT NUMERIC VALUE INTO AUDIT DESCRIPTOR. 01215 M01S01131.fsesubs +++|* 01216 M01S01132.fsesubs +++|* ENTRY NUM, POS - VALUE AND CHARACTER POSITION. 01217 M01S01133.fsesubs +++|* 01218 M01S01134.fsesubs +++|* EXIT TMPLIN - CONTAINS FORMATTED VALUE. 01219 M01S01135.fsesubs +++|* 01220 M01S01136.fsesubs +++|* MACROS SETCHAR. 01221 M01S01137.fsesubs +++|* 01222 M01S01138.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01223 M01S01139.fsesubs +++|# 01224 M01S01140.fsesubs +++| ITEM POS, NUM, TMP2, TMP3, TMP4; 01225 M01S01141.fsesubs +++| TMP2=NUM; 01226 M01S01142.fsesubs +++| FOR TMP3=9 STEP -1 UNTIL 0 DO 01227 M01S01143.fsesubs +++| BEGIN 01228 M01S01144.fsesubs +++| TMP4=CDIGIT0+MOD(TMP2,10); 01229 M01S01145.fsesubs +++| TMP2=TMP2/10; 01230 M01S01146.fsesubs +++| SETCHAR(TMPLINE,POS+TMP3,TMP4); 01231 M01S01147.fsesubs +++| END 01232 M01S01148.fsesubs +++| SETCHAR(TMPLINE,POS+10,CBLANK); 01233 M01S01149.fsesubs +++| END # OF AUDITNUM # 01234 M01S01150.fsesubs +++| 01235 M01S01151.fsesubs +++| 01236 M01S01152.fsesubs +++|PROC AUDITEVENT(PARM); 01237 M01S01153.fsesubs +++| IOBEGIN(AUDITEVENT) 01238 M01S01154.fsesubs +++|# 01239 M01S01155.fsesubs +++|** AUDITEVENT - FORMAT AND TRANSMIT DESCRIPTOR. 01240 M01S01156.fsesubs +++|* 01241 M01S01157.fsesubs +++|* ENTRY PARM - TYPE OF DESCRIPTOR. 01242 M01S01158.fsesubs +++|* 01243 M01S01159.fsesubs +++|* EXIT DESCRIPTOR TRANSMITTED TO AUDIT TRAIL. 01244 M01S01160.fsesubs +++|* 01245 M01S01161.fsesubs +++|* MACROS SETCHAR. 01246 M01S01162.fsesubs +++|* 01247 M01S01163.fsesubs +++|* CALLS AUDITNUM, AUDITTRAIL. 01248 M01S01164.fsesubs +++|* 01249 M01S01165.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01250 M01S01166.fsesubs +++|* 01251 M01S01167.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01252 M01S01168.fsesubs +++|# 01253 M01S01169.fsesubs +++| ITEM PARM; 01254 M01S01170.fsesubs +++| 01255 M01S01171.fsesubs +++| SETCHAR(TMPLINE,0,PARM); 01256 M01S01172.fsesubs +++| # END OF PARAMETER USAGE # 01257 M01S01173.fsesubs +++| AUDITNUM(1,CURFILE); 01258 M01S01174.fsesubs +++| AUDITNUM(12,FDLF(CURFILE)); 01259 M01S01175.fsesubs +++| AUDITNUM(23,CURRENT-TOPF(CURFILE)); 01260 M01S01176.fsesubs +++| SETCHAR(TMPLINE,34,CENDLINE); 01261 M01S01177.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01262 M01S01178.fsesubs +++| AUDITTRAIL; 01263 M01S01179.fsesubs +++| P<LINEBUF>=LOC(LIN); 01264 M01S01180.fsesubs +++| IOEND # OF AUDITEVENT # 01265 M01S01181.fsesubs +++| 01266 M01S01182.fsesubs +++| 01267 M01S01183.fsesubs +++|PROC AUDITTEXT; 01268 M01S01184.fsesubs +++| IOBEGIN(AUDITTEXT) 01269 M01S01185.fsesubs +++|# 01270 M01S01186.fsesubs +++|** AUDITTEXT - TRANSMIT TEXT LINE TO AUDIT TRAIL. 01271 M01S01187.fsesubs +++|* 01272 M01S01188.fsesubs +++|* ENTRY CURRENT - POINTS TO OLD LINE IMAGE IN WORKFILE. 01273 M01S01189.fsesubs +++|* 01274 M01S01190.fsesubs +++|* CALLS POSZ, AUDITTRAIL. 01275 M01S01191.fsesubs +++|* 01276 M01S01192.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01277 M01S01193.fsesubs +++|* 01278 M01S01194.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01279 M01S01195.fsesubs +++|# 01280 M01S01196.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01281 M01S01197.fsesubs +++| POSZ(CURRENT); # READ OLD VERSION # 01282 M01S01198.fsesubs +++| AUDITTRAIL; 01283 M01S01199.fsesubs +++| P<LINEBUF>=LOC(LIN); 01284 M01S01200.fsesubs +++| IOEND # OF AUDITTEXT # 01285 M01S01201.fsesubs +++| 01286 M01S01202.fsesubs +++| 01287 M01S01203.fsesubs +++|PROC AUDITCHECK; 01288 M01S01204.fsesubs +++| IOBEGIN(AUDITCHECK) 01289 M01S01205.fsesubs +++|# 01290 M01S01206.fsesubs +++|** AUDITCHECK - ISSUE CHECKPOINT TO AUDIT TRAIL. 01291 M01S01207.fsesubs +++|* 01292 M01S01208.fsesubs +++|* ENTRY AUDITUSED - INDICATES IF ANYTHING AUDITED SINCE 01293 M01S01209.fsesubs +++|* LAST CHECKPOINT. 01294 M01S01210.fsesubs +++|* 01295 M01S01211.fsesubs +++|* EXIT AUDITUSED - CLEAR TO SHOW CHECKPOINT IS MOST 01296 M01S01212.fsesubs +++|* RECENT AUDIT ENTRY. 01297 M01S01213.fsesubs +++|* 01298 M01S01214.fsesubs +++|* MACROS SETCHAR. 01299 M01S01215.fsesubs +++|* 01300 M01S01216.fsesubs +++|* CALLS AUDITNUM, AUDITTRAIL. 01301 M01S01217.fsesubs +++|* 01302 M01S01218.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01303 M01S01219.fsesubs +++|* 01304 M01S01220.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01305 M01S01221.fsesubs +++|# 01306 M01S01222.fsesubs +++| IF AUDITOFF THEN IORET 01307 M01S01223.fsesubs +++| IF NOT AUDITUSED THEN IORET 01308 M01S01224.fsesubs +++| SETCHAR(TMPLINE,0,CLETTERC); 01309 M01S01225.fsesubs +++| AUDITNUM(1,FDLF(1)); 01310 M01S01226.fsesubs +++| AUDITNUM(12,FDLF(2)); 01311 M01S01227.fsesubs +++| AUDITNUM(23,NUMROWS[2]); 01312 M01S01228.fsesubs +++| SETCHAR(TMPLINE,34,CENDLINE); 01313 M01S01229.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01314 M01S01230.fsesubs +++| AUDITTRAIL; 01315 M01S01231.fsesubs +++| P<LINEBUF>=LOC(LIN); 01316 M01S01232.fsesubs +++| AUDITUSED=FALSE; 01317 M01S01233.fsesubs +++| IOEND # OF AUDITCHECK # 01318 M01S01234.fsesubs +++| 01319 M01S01235.fsesubs +++| 01320 M01S01236.fsesubs +++|PROC AUDITEND; 01321 M01S01237.fsesubs +++| IOBEGIN(AUDITEND) 01322 M01S01238.fsesubs +++|# 01323 M01S01239.fsesubs +++|** AUDITEND - ISSUE TERMINATOR TO AUDIT TRAIL. 01324 M01S01240.fsesubs +++|* 01325 M01S01241.fsesubs +++|* EXIT AUDITUSED - CLEAR TO SHOW CHECKPOINT IS MOST 01326 M01S01242.fsesubs +++|* RECENT AUDIT ENTRY. 01327 M01S01243.fsesubs +++|* 01328 M01S01244.fsesubs +++|* MACROS SETCHAR. 01329 M01S01245.fsesubs +++|* 01330 M01S01246.fsesubs +++|* CALLS AUDITTRAIL. 01331 M01S01247.fsesubs +++|* 01332 M01S01248.fsesubs +++|* USES TMPLIN, P<LINEBUF>. 01333 M01S01249.fsesubs +++|* 01334 M01S01250.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01335 M01S01251.fsesubs +++|# 01336 M01S01252.fsesubs +++| IF AUDITOFF THEN IORET 01337 M01S01253.fsesubs +++| SETCHAR(TMPLINE,0,CLETTERE); 01338 M01S01254.fsesubs +++| SETCHAR(TMPLINE,1,CENDLINE); 01339 M01S01255.fsesubs +++| P<LINEBUF>=LOC(TMPLIN); 01340 M01S01256.fsesubs +++| AUDITTRAIL; 01341 M01S01257.fsesubs +++| P<LINEBUF>=LOC(LIN); 01342 M01S01258.fsesubs +++| AUDITUSED=FALSE; 01343 M01S01259.fsesubs +++| IOEND # OF AUDITEND # 01344 M01S01260.fsesubs +++| 01345 M01S01261.fsesubs +++| 01346 M01S01262.fsesubs +++|PROC AUDITTRAIL; 01347 M01S01263.fsesubs +++| IOBEGIN(AUDITTRAIL); 01348 M01S01264.fsesubs +++|# 01349 M01S01265.fsesubs +++|** AUDITTRAIL - TRANSMIT LINE IMAGE TO AUDIT TRAIL. 01350 M01S01266.fsesubs +++|* 01351 M01S01267.fsesubs +++|* ENTRY P<LINEBUF> - POINTS TO INTERNAL LINE IMAGE. 01352 M01S01268.fsesubs +++|* 01353 M01S01269.fsesubs +++|* EXIT LINE IMAGE IS STAGED IN BUFFER. 01354 M01S01270.fsesubs +++|* AUDITUSED - SET TO SHOW SOMETHING AUDITED SINCE 01355 M01S01271.fsesubs +++|* MOST RECENT CHECKPOINT. 01356 M01S01272.fsesubs +++|* AUDITNEXT - UPDATED. 01357 M01S01273.fsesubs +++|* 01358 M01S01274.fsesubs +++|* CALLS LINESZ, MOVELN, AUDITSYNCH. 01359 M01S01275.fsesubs +++|* 01360 M01S01276.fsesubs +++|* USES P<TOO>. 01361 M01S01277.fsesubs +++|* 01362 M01S01278.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01363 M01S01279.fsesubs +++|# 01364 M01S01280.fsesubs +++| ITEM TMP1; # USE INSTANTLY # 01365 M01S01281.fsesubs +++| TMP1=LINESZ(LINEBUF); # MEASURE TEXT, FIX EOL BITS # 01366 M01S01282.fsesubs +++| IF TMP1 GQ AUDITSIZE-AUDITNEXT THEN AUDITSYNCH; # ASSURE ROOM # 01367 M01S01283.fsesubs +++| P<TOO>=LOC(AUDITWORD[AUDITNEXT]); 01368 M01S01284.fsesubs +++| AUDITNEXT=AUDITNEXT+MOVELN(LINEBUF,TOO); # QUEUE THIS RECORD # 01369 M01S01285.fsesubs +++| AUDITUSED=TRUE; 01370 M01S01286.fsesubs +++| IOEND # OF AUDITTRAIL # 01371 M01S01287.fsesubs +++| 01372 M01S01288.fsesubs +++| 01373 M01S01289.fsesubs +++|PROC AUDITSYNCH; 01374 M01S01290.fsesubs +++| IOBEGIN(AUDITSYNCH); 01375 M01S01291.fsesubs +++|# 01376 M01S01292.fsesubs +++|** AUDITSYNCH - FLUSH STAGING BUFFER INTO WORKFILE. 01377 M01S01293.fsesubs +++|* 01378 M01S01294.fsesubs +++|* EXIT CURA(AUDITCTL), AUDITNEXT - UPDATED. 01379 M01S01295.fsesubs +++|* 01380 M01S01296.fsesubs +++|* USES P<LINEBUF> WITH RESTORATION. 01381 M01S01297.fsesubs +++|* "TEMP" WITH RESTORATION. 01382 M01S01298.fsesubs +++|* 01383 M01S01299.fsesubs +++|* CALLS PUSHTEMP, POPTEMP, PUSH, POP, POSZ, INS, 01384 M01S01300.fsesubs +++|* RELOCATE. 01385 M01S01301.fsesubs +++|* 01386 M01S01302.fsesubs +++|* NOTE REFER TO FACILITY HEADER. 01387 M01S01303.fsesubs +++|* REQUIRES WORKIO CAPABILITY TO POSITION FILE WITH 01388 M01S01304.fsesubs +++|* NO COPY OF LINE IMAGE. 01389 M01S01305.fsesubs +++|# 01390 M01S01306.fsesubs +++| PUSHTEMP; 01391 M01S01307.fsesubs +++| TEMP=LOC(LINEBUF); # SAVE # 01392 M01S01308.fsesubs +++| PUSHTEMP; 01393 M01S01309.fsesubs +++| PUSH; 01394 M01S01310.fsesubs +++| P<LINEBUF>=0; 01395 M01S01311.fsesubs +++| POSZ(CURA(AUDITCTL)); # INVISIBLY # 01396 M01S01312.fsesubs +++| TEMP=0; 01397 M01S01313.fsesubs +++| WHYLE TEMP LS AUDITNEXT DO 01398 M01S01314.fsesubs +++| BEGIN 01399 M01S01315.fsesubs +++| P<LINEBUF>=LOC(AUDITWORD[TEMP]); # TAKE DIRECTLY FROM QUEUE # 01400 M01S01316.fsesubs +++| TEMP=TEMP+LINESZ(LINEBUF); # MEASURE, FIX EOL BITS # 01401 M01S01317.fsesubs +++| INS; 01402 M01S01318.fsesubs +++| RELOCATE(+1); 01403 M01S01319.fsesubs +++| END 01404 M01S01320.fsesubs +++| CURA(AUDITCTL)=CURRENT; 01405 M01S01321.fsesubs +++| P<LINEBUF>=0; 01406 M01S01322.fsesubs +++| POP; # INVISIBLY # 01407 M01S01323.fsesubs +++| POPTEMP; 01408 M01S01324.fsesubs +++| P<LINEBUF>=TEMP; # RESTORE # 01409 M01S01325.fsesubs +++| POPTEMP; 01410 M01S01326.fsesubs +++| AUDITNEXT=0; 01411 M01S01327.fsesubs +++| IOEND # OF AUDITSYNCH # 01412 M01S01328.fsesubs +++|PAGE # FILE MANAGEMENT # 01413 M01S01329.fsesubs +++| 01414 M01S01330.fsesubs +++| 01415 M01S01331.fsesubs +++|PROC FORMFDL(FILEPARM); 01416 M01S01332.fsesubs +++| BEGIN 01417 M01S01333.fsesubs +++|# 01418 M01S01334.fsesubs +++|** FORMFDL - FORMAT FILE DESCRIPTOR LINE. 01419 M01S01335.fsesubs +++|* 01420 M01S01336.fsesubs +++|* FORMFDL CREATES A FILE DESCRIPTOR LINE BASED ON THE CURRENT 01421 M01S01337.fsesubs +++|* ATTRIBUTES OF A FILE IMAGE WHICH IS ONE OF THE TWO BRACKETED 01422 M01S01338.fsesubs +++|* FILES. THE FORMAT OF THE FDL IS- CHARACTER POSITION 0 = 01423 M01S01339.fsesubs +++|* FILE NAME, 8 = YES/NO FOR THE WRITE LOCKOUT, 10 = YES/NO FOR 01424 M01S01340.fsesubs +++|* CHANGES MADE, 12 = YES/NO FOR 6/12 ASCII CHARACTER SET, 14 = 01425 M01S01341.fsesubs +++|* YES/NO FOR NUMBERED MODE, 16 = SIZE OF FILE, AND 27 = 01426 M01S01342.fsesubs +++|* CURRENT POSITION IN FILE. IF THIS FORMAT IS TO BE CHANGED, 01427 M01S01343.fsesubs +++|* CODE MUST ALSO BE CHANGED IN THE "GET STATUS" COMMAND AND IN 01428 M01S01344.fsesubs +++|* THE SESSION RESUMPTION LOGIC OF FSEMAIN. 01429 M01S01345.fsesubs +++|* 01430 M01S01346.fsesubs +++|* ENTRY FILEPARM - WHICH FILE BRACKET TO SUMMARIZE. 01431 M01S01347.fsesubs +++|* 01432 M01S01348.fsesubs +++|* EXIT LIN - CONTAINS DESCRIPTOR TEXT. 01433 M01S01349.fsesubs +++|* 01434 M01S01350.fsesubs +++|* MACROS SETCHAR. 01435 M01S01351.fsesubs +++|* 01436 M01S01352.fsesubs +++|* CALLS FORMNUM(INTERNAL). 01437 M01S01353.fsesubs +++|# 01438 M01S01354.fsesubs +++| 01439 M01S01355.fsesubs +++| ITEM FILEPARM, TMP1,TMP2,TMP3,TMP4; 01440 M01S01356.fsesubs +++| 01441 M01S01357.fsesubs +++| PROC FORMNUM(PARM); 01442 M01S01358.fsesubs +++| BEGIN 01443 M01S01359.fsesubs +++| ITEM PARM; 01444 M01S01360.fsesubs +++| TMP4=PARM; 01445 M01S01361.fsesubs +++| FOR TMP1=9 STEP -1 UNTIL 0 DO 01446 M01S01362.fsesubs +++| BEGIN 01447 M01S01363.fsesubs +++| C<TMP1,1>TMP3=MOD(TMP4,10)+O"33"; 01448 M01S01364.fsesubs +++| TMP4=TMP4/10; 01449 M01S01365.fsesubs +++| END 01450 M01S01366.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 9 DO 01451 M01S01367.fsesubs +++| BEGIN 01452 M01S01368.fsesubs +++| TMP4=C<TMP1,1>TMP3; 01453 M01S01369.fsesubs +++| TMP4=XLTDSPINT[TMP4]; 01454 M01S01370.fsesubs +++| SETCHAR(LINE,TMP2,TMP4); 01455 M01S01371.fsesubs +++| TMP2=TMP2+1; 01456 M01S01372.fsesubs +++| END 01457 M01S01373.fsesubs +++| SETCHAR(LINE,TMP2,CBLANK); 01458 M01S01374.fsesubs +++| TMP2=TMP2+1; 01459 M01S01375.fsesubs +++| END 01460 M01S01376.fsesubs +++| 01461 M01S01377.fsesubs +++| 01462 M01S01378.fsesubs +++| # START OF FORMFDL # 01463 M01S01379.fsesubs +++| 01464 M01S01380.fsesubs +++| TMP2=0; 01465 M01S01381.fsesubs +++| FOR TMP1=0 STEP 1 UNTIL 6 DO 01466 M01S01382.fsesubs +++| BEGIN 01467 M01S01383.fsesubs +++| C<0,7>TMP3=PADNAME(FILENAM[FILEPARM]); 01468 M01S01384.fsesubs +++| TMP3=C<TMP1,1>TMP3; 01469 M01S01385.fsesubs +++| TMP3=XLTDSPINT[TMP3]; 01470 M01S01386.fsesubs +++| SETCHAR(LINE,TMP2,TMP3); 01471 M01S01387.fsesubs +++| TMP2=TMP2+1; 01472 M01S01388.fsesubs +++| END 01473 M01S01389.fsesubs +++| FOR TMP2=7 STEP 1 UNTIL 15 DO SETCHAR(LINE,TMP2,CBLANK); 01474 M01S01390.fsesubs +++| SETCHAR(LINE,8,LOCKED[FILEPARM]+CDIGIT0); 01475 M01S01391.fsesubs +++| SETCHAR(LINE,10,CHANGED[FILEPARM]+CDIGIT0); 01476 M01S01392.fsesubs +++| SETCHAR(LINE,12,ASCII[FILEPARM]+CDIGIT0);
Line S01393 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01477 M02S01393.ns2607 ---| SETCHAR(LINE,14,NUMBERED[FILEPARM]+CDIGIT0); 01478 M01S00001.ns2607 +++| SETCHAR(LINE,14,INITNMBR[FILEPARM]+CDIGIT0); 01479 M01S01394.fsesubs +++| TMP2=16; 01480 M01S01395.fsesubs +++| FORMNUM(BOTF(FILEPARM)-TOPF(FILEPARM)-1); 01481 M01S01396.fsesubs +++| FORMNUM(CURF(FILEPARM)-TOPF(FILEPARM)); 01482 M01S01397.fsesubs +++| SETCHAR(LINE,TMP2,CENDLINE); 01483 M01S01398.fsesubs +++| 01484 M01S01399.fsesubs +++| END # OF FORMFDL # 01485 M01S01400.fsesubs +++| 01486 M01S01401.fsesubs +++| 01487 M01S01402.fsesubs +++|PROC SCANFDL(NAME); 01488 M01S01403.fsesubs +++| BEGIN 01489 M01S01404.fsesubs +++|# 01490 M01S01405.fsesubs +++|** SCANFDL - ANALYZE FILE DESCRIPTOR LINE. 01491 M01S01406.fsesubs +++|* 01492 M01S01407.fsesubs +++|* ENTRY LIN - CONTAINS FDL TEXT. 01493 M01S01408.fsesubs +++|* 01494 M01S01409.fsesubs +++|* EXIT NAME - FILE NAME. 01495 M01S01410.fsesubs +++|* SCNFDLOCK, SCNFDCHNG, SCNFDASCI, SCNFDNUMB, 01496 M01S01411.fsesubs +++|* SCNFDSIZE, SCNFDCURF - UPDATED. 01497 M01S01412.fsesubs +++|* 01498 M01S01413.fsesubs +++|* USES TMPLIN. 01499 M01S01414.fsesubs +++|* CMDLIN, SCANPOS, KEYWDTYPE - WITH RESTORATION. 01500 M01S01415.fsesubs +++|* 01501 M01S01416.fsesubs +++|* CALLS COPYLIN, TOKEN. 01502 M01S01417.fsesubs +++|* 01503 M01S01418.fsesubs +++|* NOTE CALLER MUST NON-REENTRANTLY USE SCNFDXXXX. 01504 M01S01419.fsesubs +++|# 01505 M01S01420.fsesubs +++| ITEM NAME C(7); 01506 M01S01421.fsesubs +++| ITEM HOLDSCAN, HOLDSEARCH; 01507 M01S01422.fsesubs +++| 01508 M01S01423.fsesubs +++| COPYLIN(CMDLIN,TMPLIN); 01509 M01S01424.fsesubs +++| HOLDSCAN=TOKENPOS; 01510 M01S01425.fsesubs +++| HOLDSEARCH=KEYWDTYPE; 01511 M01S01426.fsesubs +++| COPYLIN(LIN,CMDLIN); 01512 M01S01427.fsesubs +++| SCANPOS=0; 01513 M01S01428.fsesubs +++| KEYWDTYPE=0; 01514 M01S01429.fsesubs +++| TOKEN; 01515 M01S01430.fsesubs +++| NAME=TOKENSYM; 01516 M01S01431.fsesubs +++| KEYWDTYPE=1; 01517 M01S01432.fsesubs +++| TOKEN; 01518 M01S01433.fsesubs +++| SCNFDLOCK=TOKENVAL; 01519 M01S01434.fsesubs +++| TOKEN; 01520 M01S01435.fsesubs +++| SCNFDCHNG=TOKENVAL; 01521 M01S01436.fsesubs +++| TOKEN; 01522 M01S01437.fsesubs +++| SCNFDASCI=TOKENVAL; 01523 M01S01438.fsesubs +++| TOKEN;
Line S01439 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2607 |
Seq # *Modification Id* Act ----------------------------+ 01524 M02S01439.ns2607 ---| SCNFDNUMB=TOKENVAL; 01525 M01S00002.ns2607 +++| SCNFDNUMB=TOKENVAL LAN 1; 01526 M01S00003.ns2607 +++| SCNFDINIT=TOKENVAL/2; 01527 M01S01440.fsesubs +++| TOKEN; 01528 M01S01441.fsesubs +++| SCNFDSIZE=TOKENVAL; 01529 M01S01442.fsesubs +++| TOKEN; 01530 M01S01443.fsesubs +++| SCNFDCURF=TOKENVAL; 01531 M01S01444.fsesubs +++| 01532 M01S01445.fsesubs +++| COPYLIN(TMPLIN,CMDLIN); 01533 M01S01446.fsesubs +++| SCANPOS=HOLDSCAN; 01534 M01S01447.fsesubs +++| KEYWDTYPE=HOLDSEARCH; 01535 M01S01448.fsesubs +++| TOKEN; 01536 M01S01449.fsesubs +++| 01537 M01S01450.fsesubs +++| END # OF SCANFDL # 01538 M01S01451.fsesubs +++| 01539 M01S01452.fsesubs +++| 01540 M01S01453.fsesubs +++|PROC OPENFILE; 01541 M01S00001.ns2172 +++|# TITLE OPENFILE - BRACKET AN INTERNAL FILE IMAGE. # 01542 M01S00002.ns2172 +++| 01543 M01S01454.fsesubs +++| IOBEGIN(OPENFILE) 01544 M01S00003.ns2172 +++| 01545 M01S01455.fsesubs +++|# 01546 M01S01456.fsesubs +++|** OPENFILE - BRACKET AN INTERNAL FILE IMAGE. 01547 M01S01457.fsesubs +++|* 01548 M01S01458.fsesubs +++|* OPENFILE GETS THE REQUESTED FILE INTO ONE OF THE INTERNAL 01549 M01S01459.fsesubs +++|* FILE BRACKETS, BY HOOK OR BY CROOK. VALUES OF THE 01550 M01S01460.fsesubs +++|* CHARPARM AND GETPARM ENTRIES CAN FORCE DISPOSAL OF AN 01551 M01S01461.fsesubs +++|* EXTANT INTERNAL FILE IMAGE WITH A FRESH FILE BUILD. 01552 M01S01462.fsesubs +++|* FOR CASES WHERE ANY INTERNAL IMAGE IS UNACCEPTABLE, THE 01553 M01S01463.fsesubs +++|* RESULTS OF THE FIRST OPENFILE ARE COMPARED WITH THE ENTRY 01554 M01S01464.fsesubs +++|* CONDITIONS, AND OPENFILE MIGHT THEN BE CALLED ONCE MORE. 01555 M01S01465.fsesubs +++|* 01556 M01S01466.fsesubs +++|* ENTRY READNAM - FILE NAME. 01557 M01S01467.fsesubs +++|* FILNUM - BRACKET TO OPEN INTO. 01558 M01S01468.fsesubs +++|* CHARPARM - CHARACTER SET PREFERENCE. 01559 M01S01469.fsesubs +++|* GETPARM - PREFERENCE FOR INTERNAL/LOCAL/PERMANENT. 01560 M01S01470.fsesubs +++|* 01561 M01S01471.fsesubs +++|* EXIT DESIRED FILE IS IN BRACKET. OTHER BRACKET MAY 01562 M01S01472.fsesubs +++|* BE NULLED OUT IF OTHER BRACKET WAS SAME AS THIS 01563 M01S01473.fsesubs +++|* BRACKET, AND THE CURRENT BRACKET REQUIRES NULLOUT. 01564 M01S01474.fsesubs +++|*
Line S01475 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01565 M02S01475.ns2172 ---|* CALLS ACCESSFILE, PUSHTEMP, POPTEMP. 01566 M01S00004.ns2172 +++|* CALLS ACCESSFILE, FORCEPAINT, POPTEMP, PUSHTEMP. 01567 M01S01476.fsesubs +++|* 01568 M01S01477.fsesubs +++|* USES TEMP WITH RESTORATION. 01569 M01S01478.fsesubs +++|#
Line S01479 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01570 M02S01479.ns2172 ---| ACCESSFILE; # REALLY DOES THE WORK #
Line S01480 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01571 M02S01480.ns2172 ---| IF CHARPARM NQ 0 OR GETPARM GQ 2 THEN
Line S01481 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01572 M02S01481.ns2172 ---| BEGIN # MAKE SURE GOT IT RIGHT #
Line S01482 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01573 M02S01482.ns2172 ---| IF GETPARM GQ 2 OR (ASCII[FILNUM] NQ CHARPARM AND
Line S01483 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01574 M02S01483.ns2172 ---| (ASCII[FILNUM] GQ 2 OR CHARPARM GQ 2)) THEN
Line S01484 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01575 M02S01484.ns2172 ---| BEGIN # RE-OPENED OLD FILE ... #
Line S01485 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01576 M02S01485.ns2172 ---| PUSHTEMP;
Line S01486 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01577 M02S01486.ns2172 ---| TEMP=FILNUM;
Line S01487 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01578 M02S01487.ns2172 ---| FOR FILNUM=1 STEP 1 UNTIL 2 DO
Line S01488 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01579 M02S01488.ns2172 ---| BEGIN # ZAP ANY BRACKETS WITH OLD FILE #
Line S01489 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01580 M02S01489.ns2172 ---| IF FDLF(FILNUM) EQ FDLF(TEMP) THEN
Line S01490 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01581 M02S01490.ns2172 ---| BEGIN
Line S01491 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01582 M02S01491.ns2172 ---| FILENAM[FILNUM]="ZZZNULL";
Line S01492 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01583 M02S01492.ns2172 ---| LOCKED[FILNUM]=1;
Line S01493 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01584 M02S01493.ns2172 ---| CLOSEFILE;
Line S01494 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01585 M02S01494.ns2172 ---| END 01586 M01S00005.ns2172 +++| 01587 M01S00006.ns2172 +++| PROC FORCEPAINT; 01588 M01S00007.ns2172 +++|# TITLE FORCEPAINT - FORCE A SCREEN PAINT. # 01589 M01S00008.ns2172 +++| 01590 M01S00009.ns2172 +++| BEGIN # FORCEPAINT # 01591 M01S00010.ns2172 +++| 01592 M01S00011.ns2172 +++|# 01593 M01S00012.ns2172 +++|** FORCEPAINT - FORCE A SCREEN PAINT. 01594 M01S00013.ns2172 +++|* 01595 M01S00014.ns2172 +++|* PROC FORCEPAINT 01596 M01S00015.ns2172 +++|* 01597 M01S00016.ns2172 +++|* ENTRY FILENAM[1-2] - SETUP. 01598 M01S00017.ns2172 +++|* 01599 M01S00018.ns2172 +++|* EXIT SCREEN REPAINTED. 01600 M01S00019.ns2172 +++|* 01601 M01S00020.ns2172 +++|* CALLS PAINTSPLIT. 01602 M01S00021.ns2172 +++|* 01603 M01S00022.ns2172 +++|* USES CURSPLIT. 01604 M01S00023.ns2172 +++|# 01605 M01S00024.ns2172 +++| 01606 M01S00025.ns2172 +++| ITEM ONE I=1; # SPLIT ONE # 01607 M01S00026.ns2172 +++| ITEM TWO I=2; # SPLIT TWO # 01608 M01S00027.ns2172 +++| 01609 M01S00028.ns2172 +++| IF SCREENMODE THEN 01610 M01S00029.ns2172 +++| BEGIN 01611 M01S00030.ns2172 +++| IF LASTNAME[1] EQ FILENAM[FILNUM] THEN 01612 M01S00031.ns2172 +++| BEGIN 01613 M01S00032.ns2172 +++| TITLE1LINE[0]=NULLIN; 01614 M01S00033.ns2172 +++| CURSPLIT = = ONE; 01615 M01S00034.ns2172 +++| PAINTSPLIT; 01616 M01S00035.ns2172 +++| CURSPLIT = = ONE; 01617 M01S00036.ns2172 +++| END 01618 M01S00037.ns2172 +++| IF LASTNAME[2] EQ FILENAM[FILNUM] THEN 01619 M01S00038.ns2172 +++| BEGIN 01620 M01S00039.ns2172 +++| TITLE2LINE[0]=NULLIN; 01621 M01S00040.ns2172 +++| CURSPLIT = = TWO; 01622 M01S00041.ns2172 +++| PAINTSPLIT; 01623 M01S00042.ns2172 +++| CURSPLIT = = TWO; 01624 M01S00043.ns2172 +++| END 01625 M01S00044.ns2172 +++| END 01626 M01S00045.ns2172 +++| 01627 M01S00046.ns2172 +++| END # FORCEPAINT # 01628 M01S00047.ns2172 +++| 01629 M01S00048.ns2172 +++| 01630 M01S00049.ns2172 +++| # MAIN OPENFILE CODE STARTS HERE # 01631 M01S00050.ns2172 +++| 01632 M01S00001.fsesu5 +++| 01633 M01S00002.fsesu5 +++| CONTROL IFEQ MULTI,1; 01634 M01S00003.fsesu5 +++| IF GETPARM GQ 2 THEN GOTO QQSINGLE; # IF GET/READ WILL BE NEEDED # 01635 M01S00004.fsesu5 +++| CONTROL FI; 01636 M01S00005.fsesu5 +++| 01637 M01S00051.ns2172 +++| ACCESSFILE; # ACCESS THE FILE # 01638 M01S00006.fsesu5 +++| 01639 M01S00007.fsesu5 +++| CONTROL IFEQ SINGLE,1; 01640 M01S00004.ns2607 +++| SCNFDINIT = 0; # PRESET NOT INITIAL FILE # 01641 M01S00052.ns2172 +++| IF GETPARM GQ 2 THEN # IF GET OR READ PARAMETER # 01642 M01S00053.ns2172 +++| BEGIN 01643 M01S00054.ns2172 +++| FORCEPAINT;
Line S00055 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01644 M02S00055.fsesu5 ---| PUSHTEMP;
Line S00056 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01645 M02S00056.fsesu5 ---| TEMP=FILNUM;
Line S00057 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01646 M02S00057.fsesu5 ---| FOR FILNUM=1 STEP 1 UNTIL 2 DO # REMOVE BRACKETS FOR OLD FILE #
Line S00058 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01647 M02S00058.fsesu5 ---| BEGIN
Line S00059 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01648 M02S00059.fsesu5 ---| IF FDLF(FILNUM) EQ FDLF(TEMP) THEN
Line S00060 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01649 M02S00060.fsesu5 ---| BEGIN
Line S00061 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01650 M02S00061.fsesu5 ---| FILENAM[FILNUM]="ZZZNULL";
Line S00062 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01651 M02S00062.fsesu5 ---| LOCKED[FILNUM]=1;
Line S00063 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01652 M02S00063.fsesu5 ---| CLOSEFILE; # CLOSE OLD FILE #
Line S01495 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01653 M02S01495.fsesu5 ---| END
Line S01496 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
M03 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01654 M03S01496.fsesu5 ---| FILNUM=TEMP;
Line S01497 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
M03 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01655 M03S01497.fsesu5 ---| POPTEMP;
Line S01498 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
M03 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01656 M03S01498.fsesu5 ---| LASTSIZE[1]=-1;
Line S01499 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
M03 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01657 M03S01499.fsesu5 ---| LASTSIZE[2]=-1;
Line S01500 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
M03 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01658 M03S01500.fsesu5 ---| ACCESSFILE; # THIS TIME GUARANTEED RIGHT #
Line S01501 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01659 M02S01501.fsesu5 ---| END
Line S00064 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01660 M02S00064.fsesu5 ---| FILNUM=TEMP;
Line S00065 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01661 M02S00065.fsesu5 ---| POPTEMP;
Line S00066 Modification History | |
---|---|
M01 (Added by) | ns2172 |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01662 M02S00066.fsesu5 ---| ACCESSFILE; # ACCESS THE OLD FILE # 01663 M01S00008.fsesu5 +++| IF FILNUM NQ 0 THEN 01664 M01S00009.fsesu5 +++| BEGIN # IF FILE IS IN A BRACKET # 01665 M01S00010.fsesu5 +++| FOR FILNUM=1 STEP 1 UNTIL 2 DO 01666 M01S00011.fsesu5 +++| BEGIN # REMOVE BRACKETS FOR OLD FILE # 01667 M01S00012.fsesu5 +++| IF FDLF(FILNUM) EQ FDLF(CURFILE) THEN 01668 M01S00013.fsesu5 +++| BEGIN 01669 M01S00005.ns2607 +++| SCNFDINIT == INITFILE[FILNUM]; # CLEAR/SET INITIAL FILE # 01670 M01S00014.fsesu5 +++| FILENAM[FILNUM]="ZZZNULL"; 01671 M01S00015.fsesu5 +++| LOCKED[FILNUM]=1; 01672 M01S00016.fsesu5 +++| CLOSEFILE; # CLOSE OLD FILE # 01673 M01S00017.fsesu5 +++| END 01674 M01S00018.fsesu5 +++| END 01675 M01S00019.fsesu5 +++| FILNUM = 0; # INDICATE FILE ACCESS NEEDED # 01676 M01S00020.fsesu5 +++| END 01677 M01S01502.fsesubs +++| END 01678 M01S00021.fsesu5 +++| IF FILNUM EQ 0 THEN 01679 M01S00022.fsesu5 +++| BEGIN # IF FILE ACCESS NEEDED # 01680 M01S00023.fsesu5 +++| FILNUM = CURFILE; 01681 M01S00024.fsesu5 +++| ADDFILE; # ACCESS THE FILE # 01682 M01S00025.fsesu5 +++| END 01683 M01S00026.fsesu5 +++| CONTROL FI; 01684 M01S00027.fsesu5 +++|
Line S01503 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | ns2172 |
Seq # *Modification Id* Act ----------------------------+ 01685 M02S01503.ns2172 ---| IOEND # OF OPENFILE # 01686 M01S00067.ns2172 +++| IF ASCII[FILNUM] NQ CHARPARM AND CHARPARM NQ 0 THEN 01687 M01S00068.ns2172 +++| BEGIN # IF CHARACTER SET CHANGED # 01688 M01S00069.ns2172 +++| FORCEPAINT; 01689 M01S00028.fsesu5 +++| PUSHTEMP; 01690 M01S00070.ns2172 +++| FOR TEMP = 1 STEP 1 UNTIL 2 DO # IF SPLIT IS USED THEN RESET # 01691 M01S00071.ns2172 +++| BEGIN 01692 M01S00072.ns2172 +++| IF FDLF(TEMP) EQ FDLF(FILNUM) THEN ASCII[TEMP]=CHARPARM; 01693 M01S00073.ns2172 +++| END 01694 M01S00029.fsesu5 +++| POPTEMP; 01695 M01S00074.ns2172 +++| END 01696 M01S00075.ns2172 +++| 01697 M01S00076.ns2172 +++| IOEND # OPENFILE # 01698 M01S01504.fsesubs +++| 01699 M01S01505.fsesubs +++| 01700 M01S01506.fsesubs +++|PROC ACCESSFILE; 01701 M01S01507.fsesubs +++| IOBEGIN(ACCESSFILE) 01702 M01S01508.fsesubs +++|# 01703 M01S01509.fsesubs +++|** ACCESSFILE - ACCESS A FILE. 01704 M01S01510.fsesubs +++|* 01705 M01S01511.fsesubs +++|* ACCESSFILE ATTEMPTS TO LOGICALLY OPEN A FILE BY IDENTIFYING 01706 M01S01512.fsesubs +++|* IT AS ALREADY OPEN IN ONE OR BOTH FILE BRACKETS, OR AS 01707 M01S01513.fsesubs +++|* AVAILABLE FOR QUICK OPEN FROM THE FILE DIRECTORY LINES. IF
Line S01514 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01708 M02S01514.fsesu5 ---|* THESE METHODS FAIL THEN WE CALL ADDFILE. NOTE THAT THERE
Line S01515 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01709 M02S01515.fsesu5 ---|* CAN BE SITUATIONS WHERE THE USER ACTUALLY WANTS THE FILE
Line S01516 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01710 M02S01516.fsesu5 ---|* BRACKETS AND DIRECTORY IGNORED SO THAT ADDFILE WILL BE
Line S01517 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01711 M02S01517.fsesu5 ---|* CALLED TO READ THE LOCAL FILE AFRESH. TO ALLOW FOR THIS,
Line S01518 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01712 M02S01518.fsesu5 ---|* THE RULE IS THAT ACCESSFILE IS ONLY CALLED BY OPENFILE, AND
Line S01519 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01713 M02S01519.fsesu5 ---|* THE USER ALWAYS USES OPENFILE. OPENFILE IS THEN CONSIDERED
Line S01520 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01714 M02S01520.fsesu5 ---|* RESPONSIBLE TO HANDLE OVERRIDE. 01715 M01S00030.fsesu5 +++|* THESE METHODS FAIL, THE MULTI-USER EDITOR PASSES CONTROL TO 01716 M01S00031.fsesu5 +++|* THE SINGLE-USER EDITOR VIA *QQSINGLE*, WHEREUPON THE SINGLE- 01717 M01S00032.fsesu5 +++|* USER EDITOR WILL WORK IT-S WAY TO THIS POINT BY REPROCESSING 01718 M01S00033.fsesu5 +++|* THE SAME COMMAND. THE SINGLE-USER EDITOR NOTES THAT THE FILE 01719 M01S00034.fsesu5 +++|* WAS NOT FOUND BY ZEROING THE FILE NUMBER. *OPENFILE* WILL 01720 M01S00035.fsesu5 +++|* RECOGNIZE THAT AS AN INDICATION THAT *ADDFILE* MUST BE CALLED 01721 M01S00036.fsesu5 +++|* TO GET AND/OR READ THE FILE. 01722 M01S01521.fsesubs +++|* 01723 M01S01522.fsesubs +++|* ENTRY SEE OPENFILE. 01724 M01S01523.fsesubs +++|*
Line S01524 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01725 M02S01524.fsesu5 ---|* EXIT ALL FILE BRACKET STRUCTURES UPDATED. 01726 M01S00037.fsesu5 +++|* EXIT IF FILE FOUND, ALL FILE BRACKET STRUCTURES UPDATED. 01727 M01S00038.fsesu5 +++|* IF NOT, MULTI-USER EDITOR EXITS TO SINGLE-USER EDITOR, 01728 M01S00039.fsesu5 +++|* SINGLE-USER RETURNS ZERO IN FILNUM. 01729 M01S01525.fsesubs +++|*
Line S01526 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01730 M02S01526.fsesu5 ---|* CALLS PADNAME, CLOSEFILE, PUSHTEMP, POPTEMP, QQSINGLE,
Line S01527 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01731 M02S01527.fsesu5 ---|* POSZ, PUSH, POP, SCANFDL, NOPOP, ADDFILE.
Line S01528 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01732 M02S01528.fsesu5 ---|*
Line S01529 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01733 M02S01529.fsesu5 ---|* NOTE IN MULTI-USER MODE, THIS ROUTINE IS CAPABLE OF
Line S01530 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01734 M02S01530.fsesu5 ---|* ACCESSING AN EXTANT INTERNAL FILE IMAGE, BUT CANNOT
Line S01531 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01735 M02S01531.fsesu5 ---|* READ LOCAL FILES WHEN NEEDED. QQSINGLE IS THEN CALLED
Line S01532 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01736 M02S01532.fsesu5 ---|* TO WORK OUR WAY INTO THE SAME CODE IN THE SINGLE-USER
Line S01533 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01737 M02S01533.fsesu5 ---|* EDITOR VIA REDUNDANT PROCESSING OF SAME COMMAND.
Line S01534 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01738 M02S01534.fsesu5 ---|* THIS RESTRICTS THE MULTI-USER CALLER TO BE A
Line S01535 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01739 M02S01535.fsesu5 ---|* BONA-FIDE COMMAND PROCESSOR, OR TO HAVE ABSOLUTE
Line S01536 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01740 M02S01536.fsesu5 ---|* CONFIDENCE THAT AN INTERNAL IMAGE IS AVAILABLE. 01741 M01S00040.fsesu5 +++|* CALLS ADDFILE, CLOSEFILE, NOPOP, PADNAME, POP, POPTEMP, 01742 M01S00041.fsesu5 +++|* POSZ, PUSH, PUSHTEMP, QQSINGLE, SCANFDL. 01743 M01S01537.fsesubs +++|# 01744 M01S01538.fsesubs +++| ITEM NAME1 C(7), NAME2 C(7); # USE INSTANTLY # 01745 M01S01539.fsesubs +++| 01746 M01S01540.fsesubs +++| CURFILE=FILNUM; 01747 M01S01541.fsesubs +++| 01748 M01S01542.fsesubs +++| NAME1=PADNAME(READNAM); 01749 M01S01543.fsesubs +++| NAME2=PADNAME(FILENAM[FILNUM]); 01750 M01S01544.fsesubs +++| IF NAME2 NQ " " AND NAME1 NQ NAME2 THEN CLOSEFILE; 01751 M01S01545.fsesubs +++| 01752 M01S01546.fsesubs +++| PUSHTEMP; 01753 M01S01547.fsesubs +++| FOR TEMP=1 STEP 1 UNTIL 2 DO 01754 M01S01548.fsesubs +++| BEGIN 01755 M01S01549.fsesubs +++| NAME1=PADNAME(READNAM); # RECOMPUTE SINCE REENTERED # 01756 M01S01550.fsesubs +++| NAME2=PADNAME(FILENAM[TEMP]); 01757 M01S01551.fsesubs +++| IF NAME1 EQ NAME2 THEN 01758 M01S01552.fsesubs +++| BEGIN 01759 M01S01553.fsesubs +++| IF TEMP NQ FILNUM THEN 01760 M01S01554.fsesubs +++| BEGIN 01761 M01S01555.fsesubs +++| FILEATTR[FILNUM] = FILEATTR[TEMP]; 01762 M01S01556.fsesubs +++| TOPF(FILNUM) = TOPF(TEMP); 01763 M01S01557.fsesubs +++| BOTF(FILNUM) = BOTF(TEMP); 01764 M01S01558.fsesubs +++| CURF(FILNUM) = CURF(TEMP); 01765 M01S01559.fsesubs +++| FDLF(FILNUM) = FDLF(TEMP); 01766 M01S01560.fsesubs +++| END 01767 M01S01561.fsesubs +++| POSZ(CURF(FILNUM)); 01768 M01S01562.fsesubs +++| POPTEMP; 01769 M01S01563.fsesubs +++| IORET 01770 M01S01564.fsesubs +++| END 01771 M01S01565.fsesubs +++| END 01772 M01S01566.fsesubs +++| POPTEMP; 01773 M01S01567.fsesubs +++| 01774 M01S01568.fsesubs +++| FILNUM=FILNUM LXR 3; # REVERSE VALUE # 01775 M01S01569.fsesubs +++| NAME1=PADNAME(FILENAM[FILNUM]); 01776 M01S01570.fsesubs +++| IF NAME1 NQ " " THEN CLOSEFILE; # ASSURES FDL UP TO DATE # 01777 M01S01571.fsesubs +++| FILNUM=FILNUM LXR 3; # RESTORE VALUE # 01778 M01S01572.fsesubs +++| 01779 M01S01573.fsesubs +++| PUSH; 01780 M01S01574.fsesubs +++| POSZ(TOPC(FILECTL)+1); 01781 M01S01575.fsesubs +++| LINENO=BOTC(FILECTL); 01782 M01S01576.fsesubs +++| WHYLE CURRENT LS BOTC(FILECTL) DO 01783 M01S01577.fsesubs +++| BEGIN 01784 M01S01578.fsesubs +++| # ONCE SCANFDL IS CALLED MUST USE RESULTS INSTANTLY # 01785 M01S01579.fsesubs +++| SCANFDL(NAME2); 01786 M01S01580.fsesubs +++| NAME1=PADNAME(READNAM); # RECOMPUTE SINCE REENTERED # 01787 M01S01581.fsesubs +++| IF NAME2 EQ NAME1 THEN 01788 M01S01582.fsesubs +++| BEGIN 01789 M01S01583.fsesubs +++| FILENAM[FILNUM]=TRIMNAME(NAME2); 01790 M01S00006.ns2607 +++| INITFILE[FILNUM]=SCNFDINIT; 01791 M01S01584.fsesubs +++| LOCKED[FILNUM]=SCNFDLOCK; 01792 M01S01585.fsesubs +++| CHANGED[FILNUM]=SCNFDCHNG; 01793 M01S01586.fsesubs +++| ASCII[FILNUM]=SCNFDASCI; 01794 M01S01587.fsesubs +++| NUMBERED[FILNUM]=SCNFDNUMB; 01795 M01S01588.fsesubs +++| TOPF(FILNUM)=LINENO; 01796 M01S01589.fsesubs +++| BOTF(FILNUM)=LINENO+1+SCNFDSIZE; 01797 M01S01590.fsesubs +++| CURF(FILNUM)=TOPF(FILNUM)+SCNFDCURF; 01798 M01S01591.fsesubs +++| FDLF(FILNUM)=CURRENT; 01799 M01S01592.fsesubs +++| POSZ(CURF(FILNUM)); 01800 M01S01593.fsesubs +++| NOPOP; 01801 M01S01594.fsesubs +++| IORET 01802 M01S01595.fsesubs +++| END 01803 M01S01596.fsesubs +++| LINENO=LINENO+1+SCNFDSIZE; 01804 M01S01597.fsesubs +++| # END OF INSTANTANEOUS COMPUTATION # 01805 M01S01598.fsesubs +++| FWDZ; 01806 M01S01599.fsesubs +++| END 01807 M01S01600.fsesubs +++| POP; 01808 M01S01601.fsesubs +++| 01809 M01S01602.fsesubs +++| CONTROL IFEQ SINGLE,1;
Line S01603 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01810 M02S01603.fsesu5 ---| ADDFILE; 01811 M01S00042.fsesu5 +++| FILNUM = 0; # INDICATE FILE ACCESS NEEDED # 01812 M01S01604.fsesubs +++| CONTROL FI; 01813 M01S01605.fsesubs +++| CONTROL IFEQ MULTI,1;
Line S01606 Modification History | |
---|---|
M01 (Added by) | fsesubs |
M02 (Updated by) | fsesu5 |
Seq # *Modification Id* Act ----------------------------+ 01814 M02S01606.fsesu5 ---| GOTO QQSINGLE; 01815 M01S00043.fsesu5 +++| GOTO QQSINGLE; # EXIT TO SINGLE-USER EDITOR # 01816 M01S01607.fsesubs +++| CONTROL FI; 01817 M01S01608.fsesubs +++| 01818 M01S01609.fsesubs +++| IOEND # OF ACCESSFILE # 01819 M01S01610.fsesubs +++| 01820 M01S01611.fsesubs +++| 01821 M01S01612.fsesubs +++|PROC CLOSEFILE; 01822 M01S01613.fsesubs +++| IOBEGIN(CLOSEFILE) 01823 M01S01614.fsesubs +++|# 01824 M01S01615.fsesubs +++|** CLOSEFILE - SAVE CURRENT FILE STATUS IN DESCRIPTOR LINE. 01825 M01S01616.fsesubs +++|* 01826 M01S01617.fsesubs +++|* ENTRY FILNUM - BRACKET TO CLOSE. 01827 M01S01618.fsesubs +++|* ALL BRACKET STRUCTURES CONTAIN VALID STATUS. 01828 M01S01619.fsesubs +++|* 01829 M01S01620.fsesubs +++|* EXIT FILE DESCRIPTOR LINE UPDATED INTO FILE DIRECTORY. 01830 M01S01621.fsesubs +++|* 01831 M01S01622.fsesubs +++|* CALLS PUSH, POP, POSZ, REPY, FORMFDL. 01832 M01S01623.fsesubs +++|* 01833 M01S01624.fsesubs +++|* NOTE IF BOTH BRACKETS OPEN TO SAME FILE, CERTAIN 01834 M01S01625.fsesubs +++|* ATTRIBUTES MUST BE MERGED. 01835 M01S01626.fsesubs +++|# 01836 M01S01627.fsesubs +++| PUSH; 01837 M01S01628.fsesubs +++| POSZ(FDLF(FILNUM)); 01838 M01S01629.fsesubs +++| IF FDLF(1) EQ FDLF(2) THEN 01839 M01S01630.fsesubs +++| BEGIN 01840 M01S00007.ns2607 +++| INITFILE[1]=INITFILE[1] LOR INITFILE[2]; 01841 M01S01631.fsesubs +++| LOCKED[1]=LOCKED[1] LOR LOCKED[2]; 01842 M01S01632.fsesubs +++| CHANGED[1]=CHANGED[1] LOR CHANGED[2]; 01843 M01S00008.ns2607 +++| INITFILE[2]=INITFILE[1]; 01844 M01S01633.fsesubs +++| LOCKED[2]=LOCKED[1]; 01845 M01S01634.fsesubs +++| CHANGED[2]=CHANGED[1]; 01846 M01S01635.fsesubs +++| END 01847 M01S01636.fsesubs +++| FORMFDL(FILNUM); 01848 M01S01637.fsesubs +++| REPY; 01849 M01S01638.fsesubs +++| PUSHTEMP; 01850 M01S01639.fsesubs +++| IF FILENAM[FILNUM] NQ "ZZZNULL" THEN 01851 M01S01640.fsesubs +++| BEGIN 01852 M01S01641.fsesubs +++| FOR TEMP=2 STEP 1 UNTIL 4 DO 01853 M01S01642.fsesubs +++| BEGIN 01854 M01S01643.fsesubs +++| NONTRIVFILE[FILNUM,TEMP]=NONTRIVFILE[FILNUM,TEMP-1]; 01855 M01S01644.fsesubs +++| END
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/fsesubs.txt ยท Last modified: by 127.0.0.1